From 272fff25af0685f02d52343f0669fe72e6bd977a Mon Sep 17 00:00:00 2001 From: Brian Park Date: Tue, 21 Oct 2025 13:33:47 -0700 Subject: [PATCH 1/3] docs: remove pregenerated doxygen docs; too much maintenance, interferes with refactoring --- docs/html/AceTime_8h_source.html | 151 - docs/html/BasicZoneProcessor_8h_source.html | 809 - docs/html/BrokerCommon_8cpp_source.html | 126 - docs/html/BrokerCommon_8h.html | 226 - docs/html/BrokerCommon_8h__dep__incl.map | 52 - docs/html/BrokerCommon_8h__dep__incl.md5 | 1 - docs/html/BrokerCommon_8h__dep__incl.png | Bin 414972 -> 0 bytes docs/html/BrokerCommon_8h__incl.map | 4 - docs/html/BrokerCommon_8h__incl.md5 | 1 - docs/html/BrokerCommon_8h__incl.png | Bin 5074 -> 0 bytes docs/html/BrokerCommon_8h_source.html | 106 - .../html/CompleteZoneProcessor_8h_source.html | 117 - docs/html/DateConv_8cpp_source.html | 97 - docs/html/DateConv_8h_source.html | 99 - docs/html/DateStrings_8cpp_source.html | 132 - docs/html/DateStrings_8h_source.html | 151 - docs/html/DateTuple_8h_source.html | 271 - .../html/EpochConverterHinnant_8h_source.html | 149 - docs/html/EpochConverterJulian_8h_source.html | 136 - docs/html/Epoch_8cpp_source.html | 90 - docs/html/Epoch_8h_source.html | 149 - .../html/ExtendedZoneProcessor_8h_source.html | 1124 - docs/html/LocalDateTime_8cpp_source.html | 178 - docs/html/LocalDateTime_8h_source.html | 324 - docs/html/LocalDate_8cpp_source.html | 164 - docs/html/LocalDate_8h_source.html | 404 - docs/html/LocalTime_8cpp_source.html | 151 - docs/html/LocalTime_8h_source.html | 249 - docs/html/OffsetDateTime_8cpp_source.html | 155 - docs/html/OffsetDateTime_8h_source.html | 336 - docs/html/TimeOffset_8cpp_source.html | 170 - docs/html/TimeOffset_8h_source.html | 220 - docs/html/TimePeriod_8cpp_source.html | 120 - docs/html/TimePeriod_8h_source.html | 229 - docs/html/TimeZoneData_8h_source.html | 153 - docs/html/TimeZone_8cpp_source.html | 159 - docs/html/TimeZone_8h_source.html | 557 - docs/html/Transition_8h_source.html | 670 - docs/html/ZoneInfoHigh_8h.html | 216 - docs/html/ZoneInfoHigh_8h__dep__incl.map | 52 - docs/html/ZoneInfoHigh_8h__dep__incl.md5 | 1 - docs/html/ZoneInfoHigh_8h__dep__incl.png | Bin 439671 -> 0 bytes docs/html/ZoneInfoHigh_8h__incl.map | 11 - docs/html/ZoneInfoHigh_8h__incl.md5 | 1 - docs/html/ZoneInfoHigh_8h__incl.png | Bin 23164 -> 0 bytes docs/html/ZoneInfoHigh_8h_source.html | 626 - docs/html/ZoneInfoLow_8h.html | 215 - docs/html/ZoneInfoLow_8h__dep__incl.map | 52 - docs/html/ZoneInfoLow_8h__dep__incl.md5 | 1 - docs/html/ZoneInfoLow_8h__dep__incl.png | Bin 439626 -> 0 bytes docs/html/ZoneInfoLow_8h__incl.map | 11 - docs/html/ZoneInfoLow_8h__incl.md5 | 1 - docs/html/ZoneInfoLow_8h__incl.png | Bin 23126 -> 0 bytes docs/html/ZoneInfoLow_8h_source.html | 670 - docs/html/ZoneInfoMid_8h.html | 216 - docs/html/ZoneInfoMid_8h__dep__incl.map | 52 - docs/html/ZoneInfoMid_8h__dep__incl.md5 | 1 - docs/html/ZoneInfoMid_8h__dep__incl.png | Bin 439735 -> 0 bytes docs/html/ZoneInfoMid_8h__incl.map | 11 - docs/html/ZoneInfoMid_8h__incl.md5 | 1 - docs/html/ZoneInfoMid_8h__incl.png | Bin 23200 -> 0 bytes docs/html/ZoneInfoMid_8h_source.html | 624 - docs/html/ZoneManager_8h_source.html | 249 - docs/html/ZoneProcessorCache_8h_source.html | 216 - docs/html/ZoneProcessor_8cpp_source.html | 198 - docs/html/ZoneProcessor_8h_source.html | 227 - docs/html/ZoneRegistrar_8h_source.html | 297 - docs/html/ZoneSorterByName_8h_source.html | 158 - .../ZoneSorterByOffsetAndName_8h_source.html | 180 - docs/html/Zone_8h_source.html | 166 - docs/html/ZonedDateTime_8cpp_source.html | 108 - docs/html/ZonedDateTime_8h_source.html | 323 - docs/html/ZonedExtra_8cpp_source.html | 118 - docs/html/ZonedExtra_8h_source.html | 220 - docs/html/annotated.html | 163 - docs/html/bc_s.png | Bin 676 -> 0 bytes docs/html/bdwn.png | Bin 147 -> 0 bytes ...e__time_1_1BasicZoneProcessor-members.html | 106 - .../classace__time_1_1BasicZoneProcessor.html | 208 - ...me_1_1BasicZoneProcessorCache-members.html | 88 - ...sace__time_1_1BasicZoneProcessorCache.html | 141 - ..._1BasicZoneProcessorCache__coll__graph.map | 4 - ..._1BasicZoneProcessorCache__coll__graph.md5 | 1 - ..._1BasicZoneProcessorCache__coll__graph.png | Bin 5928 -> 0 bytes ...asicZoneProcessorCache__inherit__graph.map | 4 - ...asicZoneProcessorCache__inherit__graph.md5 | 1 - ...asicZoneProcessorCache__inherit__graph.png | Bin 5928 -> 0 bytes ...1_1BasicZoneProcessorTemplate-members.html | 112 - ...e__time_1_1BasicZoneProcessorTemplate.html | 592 - ...asicZoneProcessorTemplate__coll__graph.map | 4 - ...asicZoneProcessorTemplate__coll__graph.md5 | 1 - ...asicZoneProcessorTemplate__coll__graph.png | Bin 5607 -> 0 bytes ...cZoneProcessorTemplate__inherit__graph.map | 4 - ...cZoneProcessorTemplate__inherit__graph.md5 | 1 - ...cZoneProcessorTemplate__inherit__graph.png | Bin 5607 -> 0 bytes ...ime_1_1BasicZoneProcessor__coll__graph.map | 5 - ...ime_1_1BasicZoneProcessor__coll__graph.md5 | 1 - ...ime_1_1BasicZoneProcessor__coll__graph.png | Bin 7461 -> 0 bytes ..._1_1BasicZoneProcessor__inherit__graph.map | 5 - ..._1_1BasicZoneProcessor__inherit__graph.md5 | 1 - ..._1_1BasicZoneProcessor__inherit__graph.png | Bin 7461 -> 0 bytes ...time_1_1CompleteZoneProcessor-members.html | 115 - ...assace__time_1_1CompleteZoneProcessor.html | 240 - ...1_1CompleteZoneProcessorCache-members.html | 88 - ...e__time_1_1CompleteZoneProcessorCache.html | 141 - ...ompleteZoneProcessorCache__coll__graph.map | 4 - ...ompleteZoneProcessorCache__coll__graph.md5 | 1 - ...ompleteZoneProcessorCache__coll__graph.png | Bin 6471 -> 0 bytes ...leteZoneProcessorCache__inherit__graph.map | 4 - ...leteZoneProcessorCache__inherit__graph.md5 | 1 - ...leteZoneProcessorCache__inherit__graph.png | Bin 6471 -> 0 bytes ..._1_1CompleteZoneProcessor__coll__graph.map | 5 - ..._1_1CompleteZoneProcessor__coll__graph.md5 | 1 - ..._1_1CompleteZoneProcessor__coll__graph.png | Bin 7838 -> 0 bytes ...1CompleteZoneProcessor__inherit__graph.map | 5 - ...1CompleteZoneProcessor__inherit__graph.md5 | 1 - ...1CompleteZoneProcessor__inherit__graph.png | Bin 7838 -> 0 bytes ...classace__time_1_1DateStrings-members.html | 89 - docs/html/classace__time_1_1DateStrings.html | 278 - .../html/classace__time_1_1Epoch-members.html | 91 - docs/html/classace__time_1_1Epoch.html | 252 - ...time_1_1EpochConverterHinnant-members.html | 88 - ...assace__time_1_1EpochConverterHinnant.html | 298 - ..._time_1_1EpochConverterJulian-members.html | 88 - ...lassace__time_1_1EpochConverterJulian.html | 295 - ...time_1_1ExtendedZoneProcessor-members.html | 115 - ...assace__time_1_1ExtendedZoneProcessor.html | 240 - ...1_1ExtendedZoneProcessorCache-members.html | 88 - ...e__time_1_1ExtendedZoneProcessorCache.html | 141 - ...xtendedZoneProcessorCache__coll__graph.map | 4 - ...xtendedZoneProcessorCache__coll__graph.md5 | 1 - ...xtendedZoneProcessorCache__coll__graph.png | Bin 6717 -> 0 bytes ...ndedZoneProcessorCache__inherit__graph.map | 4 - ...ndedZoneProcessorCache__inherit__graph.md5 | 1 - ...ndedZoneProcessorCache__inherit__graph.png | Bin 6717 -> 0 bytes ...ExtendedZoneProcessorTemplate-members.html | 131 - ...time_1_1ExtendedZoneProcessorTemplate.html | 806 - ...ndedZoneProcessorTemplate__coll__graph.map | 4 - ...ndedZoneProcessorTemplate__coll__graph.md5 | 1 - ...ndedZoneProcessorTemplate__coll__graph.png | Bin 5933 -> 0 bytes ...dZoneProcessorTemplate__inherit__graph.map | 4 - ...dZoneProcessorTemplate__inherit__graph.md5 | 1 - ...dZoneProcessorTemplate__inherit__graph.png | Bin 5933 -> 0 bytes ..._1_1ExtendedZoneProcessor__coll__graph.map | 5 - ..._1_1ExtendedZoneProcessor__coll__graph.md5 | 1 - ..._1_1ExtendedZoneProcessor__coll__graph.png | Bin 7826 -> 0 bytes ...1ExtendedZoneProcessor__inherit__graph.map | 5 - ...1ExtendedZoneProcessor__inherit__graph.md5 | 1 - ...1ExtendedZoneProcessor__inherit__graph.png | Bin 7826 -> 0 bytes .../classace__time_1_1FindResult-members.html | 94 - docs/html/classace__time_1_1FindResult.html | 277 - .../classace__time_1_1LocalDate-members.html | 128 - docs/html/classace__time_1_1LocalDate.html | 866 - ...assace__time_1_1LocalDateTime-members.html | 118 - .../html/classace__time_1_1LocalDateTime.html | 727 - .../classace__time_1_1LocalTime-members.html | 105 - docs/html/classace__time_1_1LocalTime.html | 556 - ...ce__time_1_1ManualZoneManager-members.html | 85 - .../classace__time_1_1ManualZoneManager.html | 137 - ...ssace__time_1_1OffsetDateTime-members.html | 123 - .../classace__time_1_1OffsetDateTime.html | 806 - .../classace__time_1_1TimeOffset-members.html | 104 - docs/html/classace__time_1_1TimeOffset.html | 546 - .../classace__time_1_1TimePeriod-members.html | 103 - docs/html/classace__time_1_1TimePeriod.html | 640 - .../classace__time_1_1TimeZone-members.html | 120 - docs/html/classace__time_1_1TimeZone.html | 1022 - ...lassace__time_1_1TimeZone__coll__graph.map | 4 - ...lassace__time_1_1TimeZone__coll__graph.md5 | 1 - ...lassace__time_1_1TimeZone__coll__graph.png | Bin 5404 -> 0 bytes ...lassace__time_1_1ZoneInfoHigh-members.html | 87 - docs/html/classace__time_1_1ZoneInfoHigh.html | 226 - ...InfoHigh_1_1ZoneContextBroker-members.html | 99 - ..._1_1ZoneInfoHigh_1_1ZoneContextBroker.html | 147 - ...ZoneInfoHigh_1_1ZoneEraBroker-members.html | 97 - ...time_1_1ZoneInfoHigh_1_1ZoneEraBroker.html | 141 - ...oneInfoHigh_1_1ZoneInfoBroker-members.html | 98 - ...ime_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html | 240 - ...ZoneInfoHigh_1_1ZoneInfoStore-members.html | 84 - ...time_1_1ZoneInfoHigh_1_1ZoneInfoStore.html | 137 - ...eInfoHigh_1_1ZonePolicyBroker-members.html | 89 - ...e_1_1ZoneInfoHigh_1_1ZonePolicyBroker.html | 117 - ...nfoHigh_1_1ZoneRegistryBroker-members.html | 87 - ...1_1ZoneInfoHigh_1_1ZoneRegistryBroker.html | 112 - ...oneInfoHigh_1_1ZoneRuleBroker-members.html | 96 - ...ime_1_1ZoneInfoHigh_1_1ZoneRuleBroker.html | 138 - ...classace__time_1_1ZoneInfoLow-members.html | 87 - docs/html/classace__time_1_1ZoneInfoLow.html | 291 - ...eInfoLow_1_1ZoneContextBroker-members.html | 99 - ...e_1_1ZoneInfoLow_1_1ZoneContextBroker.html | 147 - ...1ZoneInfoLow_1_1ZoneEraBroker-members.html | 98 - ..._time_1_1ZoneInfoLow_1_1ZoneEraBroker.html | 148 - ...ZoneInfoLow_1_1ZoneInfoBroker-members.html | 98 - ...time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html | 240 - ...1ZoneInfoLow_1_1ZoneInfoStore-members.html | 84 - ..._time_1_1ZoneInfoLow_1_1ZoneInfoStore.html | 137 - ...neInfoLow_1_1ZonePolicyBroker-members.html | 89 - ...me_1_1ZoneInfoLow_1_1ZonePolicyBroker.html | 117 - ...InfoLow_1_1ZoneRegistryBroker-members.html | 87 - ..._1_1ZoneInfoLow_1_1ZoneRegistryBroker.html | 112 - ...ZoneInfoLow_1_1ZoneRuleBroker-members.html | 97 - ...time_1_1ZoneInfoLow_1_1ZoneRuleBroker.html | 145 - ...classace__time_1_1ZoneInfoMid-members.html | 87 - docs/html/classace__time_1_1ZoneInfoMid.html | 297 - ...eInfoMid_1_1ZoneContextBroker-members.html | 99 - ...e_1_1ZoneInfoMid_1_1ZoneContextBroker.html | 147 - ...1ZoneInfoMid_1_1ZoneEraBroker-members.html | 97 - ..._time_1_1ZoneInfoMid_1_1ZoneEraBroker.html | 141 - ...ZoneInfoMid_1_1ZoneInfoBroker-members.html | 98 - ...time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html | 240 - ...1ZoneInfoMid_1_1ZoneInfoStore-members.html | 84 - ..._time_1_1ZoneInfoMid_1_1ZoneInfoStore.html | 137 - ...neInfoMid_1_1ZonePolicyBroker-members.html | 89 - ...me_1_1ZoneInfoMid_1_1ZonePolicyBroker.html | 117 - ...InfoMid_1_1ZoneRegistryBroker-members.html | 87 - ..._1_1ZoneInfoMid_1_1ZoneRegistryBroker.html | 112 - ...ZoneInfoMid_1_1ZoneRuleBroker-members.html | 96 - ...time_1_1ZoneInfoMid_1_1ZoneRuleBroker.html | 138 - ...classace__time_1_1ZoneManager-members.html | 84 - docs/html/classace__time_1_1ZoneManager.html | 140 - ...__time_1_1ZoneManagerTemplate-members.html | 95 - ...classace__time_1_1ZoneManagerTemplate.html | 429 - ...me_1_1ZoneManagerTemplate__coll__graph.map | 4 - ...me_1_1ZoneManagerTemplate__coll__graph.md5 | 1 - ...me_1_1ZoneManagerTemplate__coll__graph.png | Bin 5732 -> 0 bytes ...1_1ZoneManagerTemplate__inherit__graph.map | 4 - ...1_1ZoneManagerTemplate__inherit__graph.md5 | 1 - ...1_1ZoneManagerTemplate__inherit__graph.png | Bin 5732 -> 0 bytes ...e__time_1_1ZoneManager__inherit__graph.map | 4 - ...e__time_1_1ZoneManager__inherit__graph.md5 | 1 - ...e__time_1_1ZoneManager__inherit__graph.png | Bin 5757 -> 0 bytes ...assace__time_1_1ZoneProcessor-members.html | 102 - .../html/classace__time_1_1ZoneProcessor.html | 496 - ...oneProcessorCacheBaseTemplate-members.html | 87 - ...ime_1_1ZoneProcessorCacheBaseTemplate.html | 168 - ...essorCacheBaseTemplate__inherit__graph.map | 6 - ...essorCacheBaseTemplate__inherit__graph.md5 | 1 - ...essorCacheBaseTemplate__inherit__graph.png | Bin 15970 -> 0 bytes ..._time_1_1ZoneProcessor__inherit__graph.map | 11 - ..._time_1_1ZoneProcessor__inherit__graph.md5 | 1 - ..._time_1_1ZoneProcessor__inherit__graph.png | Bin 29409 -> 0 bytes ...time_1_1ZoneRegistrarTemplate-members.html | 115 - ...assace__time_1_1ZoneRegistrarTemplate.html | 497 - ...ace__time_1_1ZoneSorterByName-members.html | 88 - .../classace__time_1_1ZoneSorterByName.html | 210 - ..._1_1ZoneSorterByOffsetAndName-members.html | 89 - ...ce__time_1_1ZoneSorterByOffsetAndName.html | 270 - ...lassace__time_1_1ZoneTemplate-members.html | 93 - docs/html/classace__time_1_1ZoneTemplate.html | 245 - ...assace__time_1_1ZonedDateTime-members.html | 123 - .../html/classace__time_1_1ZonedDateTime.html | 813 - .../classace__time_1_1ZonedExtra-members.html | 103 - docs/html/classace__time_1_1ZonedExtra.html | 522 - ..._1_1TransitionStorageTemplate-members.html | 117 - ...extended_1_1TransitionStorageTemplate.html | 785 - docs/html/classes.html | 112 - docs/html/closed.png | Bin 132 -> 0 bytes docs/html/common_8h.html | 208 - docs/html/common_8h__dep__incl.map | 33 - docs/html/common_8h__dep__incl.md5 | 1 - docs/html/common_8h__dep__incl.png | Bin 417620 -> 0 bytes docs/html/common_8h__incl.map | 4 - docs/html/common_8h__incl.md5 | 1 - docs/html/common_8h__incl.png | Bin 4911 -> 0 bytes docs/html/common_8h_source.html | 109 - docs/html/compat_8cpp_source.html | 89 - docs/html/compat_8h.html | 179 - docs/html/compat_8h__dep__incl.map | 52 - docs/html/compat_8h__dep__incl.md5 | 1 - docs/html/compat_8h__dep__incl.png | Bin 457244 -> 0 bytes docs/html/compat_8h__incl.map | 7 - docs/html/compat_8h__incl.md5 | 1 - docs/html/compat_8h__incl.png | Bin 10523 -> 0 bytes docs/html/compat_8h_source.html | 168 - docs/html/dir_000001_000002.html | 76 - docs/html/dir_000001_000009.html | 76 - docs/html/dir_000002_000009.html | 76 - docs/html/dir_000003_000009.html | 76 - docs/html/dir_000004_000009.html | 76 - docs/html/dir_000005_000009.html | 76 - docs/html/dir_000006_000009.html | 76 - docs/html/dir_000007_000009.html | 76 - docs/html/dir_000008_000009.html | 76 - .../dir_173dd563440c1e02d7e3957b90659cd7.html | 112 - ...r_173dd563440c1e02d7e3957b90659cd7_dep.map | 8 - ...r_173dd563440c1e02d7e3957b90659cd7_dep.md5 | 1 - ...r_173dd563440c1e02d7e3957b90659cd7_dep.png | Bin 4672 -> 0 bytes .../dir_1f0cdc36437962ae32413c3b11b65679.html | 91 - ...r_1f0cdc36437962ae32413c3b11b65679_dep.map | 6 - ...r_1f0cdc36437962ae32413c3b11b65679_dep.md5 | 1 - ...r_1f0cdc36437962ae32413c3b11b65679_dep.png | Bin 4386 -> 0 bytes .../dir_4087a17cae141e7242c9415587ae2d90.html | 91 - ...r_4087a17cae141e7242c9415587ae2d90_dep.map | 6 - ...r_4087a17cae141e7242c9415587ae2d90_dep.md5 | 1 - ...r_4087a17cae141e7242c9415587ae2d90_dep.png | Bin 3747 -> 0 bytes .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 107 - ...r_68267d1309a1af8e8297ef4c3efbcdba_dep.map | 18 - ...r_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 | 1 - ...r_68267d1309a1af8e8297ef4c3efbcdba_dep.png | Bin 18199 -> 0 bytes .../dir_87a9f0716831ec146f37160adfa15576.html | 91 - ...r_87a9f0716831ec146f37160adfa15576_dep.map | 6 - ...r_87a9f0716831ec146f37160adfa15576_dep.md5 | 1 - ...r_87a9f0716831ec146f37160adfa15576_dep.png | Bin 4566 -> 0 bytes .../dir_afb2025690de77b1a5b5001a410c869c.html | 98 - ...r_afb2025690de77b1a5b5001a410c869c_dep.map | 6 - ...r_afb2025690de77b1a5b5001a410c869c_dep.md5 | 1 - ...r_afb2025690de77b1a5b5001a410c869c_dep.png | Bin 3380 -> 0 bytes .../dir_c01eb8a6ec38f632322c131502e3a308.html | 91 - ...r_c01eb8a6ec38f632322c131502e3a308_dep.map | 6 - ...r_c01eb8a6ec38f632322c131502e3a308_dep.md5 | 1 - ...r_c01eb8a6ec38f632322c131502e3a308_dep.png | Bin 4557 -> 0 bytes .../dir_c458c1a7ede63e0a4ba7e7b60e917e99.html | 99 - .../dir_d45698bd535a97711c8831def10fdb23.html | 91 - ...r_d45698bd535a97711c8831def10fdb23_dep.map | 6 - ...r_d45698bd535a97711c8831def10fdb23_dep.md5 | 1 - ...r_d45698bd535a97711c8831def10fdb23_dep.png | Bin 3876 -> 0 bytes .../dir_df46910787f3e07390b8f19cc6a1d1b6.html | 91 - ...r_df46910787f3e07390b8f19cc6a1d1b6_dep.map | 6 - ...r_df46910787f3e07390b8f19cc6a1d1b6_dep.md5 | 1 - ...r_df46910787f3e07390b8f19cc6a1d1b6_dep.png | Bin 3924 -> 0 bytes docs/html/doc.png | Bin 746 -> 0 bytes docs/html/doxygen.css | 1793 - docs/html/doxygen.svg | 26 - docs/html/dynsections.js | 128 - docs/html/files.html | 182 - docs/html/folderclosed.png | Bin 616 -> 0 bytes docs/html/folderopen.png | Bin 597 -> 0 bytes docs/html/functions.html | 104 - docs/html/functions_b.html | 87 - docs/html/functions_c.html | 127 - docs/html/functions_d.html | 129 - docs/html/functions_e.html | 105 - docs/html/functions_f.html | 234 - docs/html/functions_func.html | 91 - docs/html/functions_func_b.html | 82 - docs/html/functions_func_c.html | 120 - docs/html/functions_func_d.html | 112 - docs/html/functions_func_e.html | 96 - docs/html/functions_func_f.html | 217 - docs/html/functions_func_g.html | 129 - docs/html/functions_func_h.html | 83 - docs/html/functions_func_i.html | 132 - docs/html/functions_func_k.html | 79 - docs/html/functions_func_l.html | 113 - docs/html/functions_func_m.html | 95 - docs/html/functions_func_n.html | 79 - docs/html/functions_func_o.html | 82 - docs/html/functions_func_p.html | 116 - docs/html/functions_func_r.html | 97 - docs/html/functions_func_s.html | 120 - docs/html/functions_func_t.html | 173 - docs/html/functions_func_y.html | 82 - docs/html/functions_func_z.html | 107 - docs/html/functions_g.html | 129 - docs/html/functions_h.html | 83 - docs/html/functions_i.html | 140 - docs/html/functions_k.html | 232 - docs/html/functions_l.html | 129 - docs/html/functions_m.html | 122 - docs/html/functions_n.html | 103 - docs/html/functions_o.html | 114 - docs/html/functions_p.html | 122 - docs/html/functions_r.html | 106 - docs/html/functions_rela.html | 82 - docs/html/functions_s.html | 141 - docs/html/functions_t.html | 216 - docs/html/functions_type.html | 93 - docs/html/functions_u.html | 113 - docs/html/functions_vars.html | 91 - docs/html/functions_vars_b.html | 81 - docs/html/functions_vars_c.html | 83 - docs/html/functions_vars_d.html | 93 - docs/html/functions_vars_e.html | 85 - docs/html/functions_vars_f.html | 95 - docs/html/functions_vars_i.html | 84 - docs/html/functions_vars_k.html | 229 - docs/html/functions_vars_l.html | 92 - docs/html/functions_vars_m.html | 102 - docs/html/functions_vars_n.html | 100 - docs/html/functions_vars_o.html | 100 - docs/html/functions_vars_p.html | 82 - docs/html/functions_vars_r.html | 85 - docs/html/functions_vars_s.html | 97 - docs/html/functions_vars_t.html | 103 - docs/html/functions_vars_u.html | 113 - docs/html/functions_vars_y.html | 79 - docs/html/functions_vars_z.html | 92 - docs/html/functions_y.html | 83 - docs/html/functions_z.html | 121 - docs/html/globals.html | 77 - docs/html/globals_defs.html | 77 - docs/html/graph_legend.html | 136 - docs/html/graph_legend.md5 | 1 - docs/html/graph_legend.png | Bin 20615 -> 0 bytes docs/html/hierarchy.html | 166 - docs/html/index.html | 79 - docs/html/infos_8h_source.html | 119 - docs/html/inherit_graph_0.map | 3 - docs/html/inherit_graph_0.md5 | 1 - docs/html/inherit_graph_0.png | Bin 2528 -> 0 bytes docs/html/inherit_graph_1.map | 3 - docs/html/inherit_graph_1.md5 | 1 - docs/html/inherit_graph_1.png | Bin 1823 -> 0 bytes docs/html/inherit_graph_10.map | 3 - docs/html/inherit_graph_10.md5 | 1 - docs/html/inherit_graph_10.png | Bin 3999 -> 0 bytes docs/html/inherit_graph_11.map | 3 - docs/html/inherit_graph_11.md5 | 1 - docs/html/inherit_graph_11.png | Bin 2739 -> 0 bytes docs/html/inherit_graph_12.map | 3 - docs/html/inherit_graph_12.md5 | 1 - docs/html/inherit_graph_12.png | Bin 2440 -> 0 bytes docs/html/inherit_graph_13.map | 3 - docs/html/inherit_graph_13.md5 | 1 - docs/html/inherit_graph_13.png | Bin 1620 -> 0 bytes docs/html/inherit_graph_14.map | 3 - docs/html/inherit_graph_14.md5 | 1 - docs/html/inherit_graph_14.png | Bin 1429 -> 0 bytes docs/html/inherit_graph_15.map | 3 - docs/html/inherit_graph_15.md5 | 1 - docs/html/inherit_graph_15.png | Bin 1645 -> 0 bytes docs/html/inherit_graph_16.map | 3 - docs/html/inherit_graph_16.md5 | 1 - docs/html/inherit_graph_16.png | Bin 1271 -> 0 bytes docs/html/inherit_graph_17.map | 3 - docs/html/inherit_graph_17.md5 | 1 - docs/html/inherit_graph_17.png | Bin 2161 -> 0 bytes docs/html/inherit_graph_18.map | 3 - docs/html/inherit_graph_18.md5 | 1 - docs/html/inherit_graph_18.png | Bin 1741 -> 0 bytes docs/html/inherit_graph_19.map | 3 - docs/html/inherit_graph_19.md5 | 1 - docs/html/inherit_graph_19.png | Bin 1757 -> 0 bytes docs/html/inherit_graph_2.map | 3 - docs/html/inherit_graph_2.md5 | 1 - docs/html/inherit_graph_2.png | Bin 1427 -> 0 bytes docs/html/inherit_graph_20.map | 3 - docs/html/inherit_graph_20.md5 | 1 - docs/html/inherit_graph_20.png | Bin 1594 -> 0 bytes docs/html/inherit_graph_21.map | 3 - docs/html/inherit_graph_21.md5 | 1 - docs/html/inherit_graph_21.png | Bin 1657 -> 0 bytes docs/html/inherit_graph_22.map | 3 - docs/html/inherit_graph_22.md5 | 1 - docs/html/inherit_graph_22.png | Bin 1564 -> 0 bytes docs/html/inherit_graph_23.map | 3 - docs/html/inherit_graph_23.md5 | 1 - docs/html/inherit_graph_23.png | Bin 1661 -> 0 bytes docs/html/inherit_graph_24.map | 3 - docs/html/inherit_graph_24.md5 | 1 - docs/html/inherit_graph_24.png | Bin 1787 -> 0 bytes docs/html/inherit_graph_25.map | 3 - docs/html/inherit_graph_25.md5 | 1 - docs/html/inherit_graph_25.png | Bin 1751 -> 0 bytes docs/html/inherit_graph_26.map | 3 - docs/html/inherit_graph_26.md5 | 1 - docs/html/inherit_graph_26.png | Bin 1778 -> 0 bytes docs/html/inherit_graph_27.map | 3 - docs/html/inherit_graph_27.md5 | 1 - docs/html/inherit_graph_27.png | Bin 2428 -> 0 bytes docs/html/inherit_graph_28.map | 3 - docs/html/inherit_graph_28.md5 | 1 - docs/html/inherit_graph_28.png | Bin 2740 -> 0 bytes docs/html/inherit_graph_29.map | 3 - docs/html/inherit_graph_29.md5 | 1 - docs/html/inherit_graph_29.png | Bin 2001 -> 0 bytes docs/html/inherit_graph_3.map | 3 - docs/html/inherit_graph_3.md5 | 1 - docs/html/inherit_graph_3.png | Bin 2186 -> 0 bytes docs/html/inherit_graph_30.map | 3 - docs/html/inherit_graph_30.md5 | 1 - docs/html/inherit_graph_30.png | Bin 2290 -> 0 bytes docs/html/inherit_graph_31.map | 3 - docs/html/inherit_graph_31.md5 | 1 - docs/html/inherit_graph_31.png | Bin 1910 -> 0 bytes docs/html/inherit_graph_32.map | 3 - docs/html/inherit_graph_32.md5 | 1 - docs/html/inherit_graph_32.png | Bin 2219 -> 0 bytes docs/html/inherit_graph_33.map | 3 - docs/html/inherit_graph_33.md5 | 1 - docs/html/inherit_graph_33.png | Bin 2359 -> 0 bytes docs/html/inherit_graph_34.map | 3 - docs/html/inherit_graph_34.md5 | 1 - docs/html/inherit_graph_34.png | Bin 2257 -> 0 bytes docs/html/inherit_graph_35.map | 3 - docs/html/inherit_graph_35.md5 | 1 - docs/html/inherit_graph_35.png | Bin 2553 -> 0 bytes docs/html/inherit_graph_36.map | 3 - docs/html/inherit_graph_36.md5 | 1 - docs/html/inherit_graph_36.png | Bin 2754 -> 0 bytes docs/html/inherit_graph_37.map | 3 - docs/html/inherit_graph_37.md5 | 1 - docs/html/inherit_graph_37.png | Bin 2132 -> 0 bytes docs/html/inherit_graph_38.map | 3 - docs/html/inherit_graph_38.md5 | 1 - docs/html/inherit_graph_38.png | Bin 2432 -> 0 bytes docs/html/inherit_graph_39.map | 3 - docs/html/inherit_graph_39.md5 | 1 - docs/html/inherit_graph_39.png | Bin 1752 -> 0 bytes docs/html/inherit_graph_4.map | 3 - docs/html/inherit_graph_4.md5 | 1 - docs/html/inherit_graph_4.png | Bin 2211 -> 0 bytes docs/html/inherit_graph_40.map | 3 - docs/html/inherit_graph_40.md5 | 1 - docs/html/inherit_graph_40.png | Bin 2401 -> 0 bytes docs/html/inherit_graph_41.map | 3 - docs/html/inherit_graph_41.md5 | 1 - docs/html/inherit_graph_41.png | Bin 2713 -> 0 bytes docs/html/inherit_graph_42.map | 3 - docs/html/inherit_graph_42.md5 | 1 - docs/html/inherit_graph_42.png | Bin 1971 -> 0 bytes docs/html/inherit_graph_43.map | 3 - docs/html/inherit_graph_43.md5 | 1 - docs/html/inherit_graph_43.png | Bin 2266 -> 0 bytes docs/html/inherit_graph_44.map | 3 - docs/html/inherit_graph_44.md5 | 1 - docs/html/inherit_graph_44.png | Bin 1882 -> 0 bytes docs/html/inherit_graph_45.map | 3 - docs/html/inherit_graph_45.md5 | 1 - docs/html/inherit_graph_45.png | Bin 2199 -> 0 bytes docs/html/inherit_graph_46.map | 3 - docs/html/inherit_graph_46.md5 | 1 - docs/html/inherit_graph_46.png | Bin 2329 -> 0 bytes docs/html/inherit_graph_47.map | 3 - docs/html/inherit_graph_47.md5 | 1 - docs/html/inherit_graph_47.png | Bin 2226 -> 0 bytes docs/html/inherit_graph_48.map | 3 - docs/html/inherit_graph_48.md5 | 1 - docs/html/inherit_graph_48.png | Bin 2531 -> 0 bytes docs/html/inherit_graph_49.map | 3 - docs/html/inherit_graph_49.md5 | 1 - docs/html/inherit_graph_49.png | Bin 2854 -> 0 bytes docs/html/inherit_graph_5.map | 3 - docs/html/inherit_graph_5.md5 | 1 - docs/html/inherit_graph_5.png | Bin 2107 -> 0 bytes docs/html/inherit_graph_50.map | 3 - docs/html/inherit_graph_50.md5 | 1 - docs/html/inherit_graph_50.png | Bin 2104 -> 0 bytes docs/html/inherit_graph_51.map | 3 - docs/html/inherit_graph_51.md5 | 1 - docs/html/inherit_graph_51.png | Bin 2404 -> 0 bytes docs/html/inherit_graph_52.map | 3 - docs/html/inherit_graph_52.md5 | 1 - docs/html/inherit_graph_52.png | Bin 1969 -> 0 bytes docs/html/inherit_graph_53.map | 3 - docs/html/inherit_graph_53.md5 | 1 - docs/html/inherit_graph_53.png | Bin 2688 -> 0 bytes docs/html/inherit_graph_54.map | 3 - docs/html/inherit_graph_54.md5 | 1 - docs/html/inherit_graph_54.png | Bin 3047 -> 0 bytes docs/html/inherit_graph_55.map | 3 - docs/html/inherit_graph_55.md5 | 1 - docs/html/inherit_graph_55.png | Bin 2226 -> 0 bytes docs/html/inherit_graph_56.map | 3 - docs/html/inherit_graph_56.md5 | 1 - docs/html/inherit_graph_56.png | Bin 2523 -> 0 bytes docs/html/inherit_graph_57.map | 3 - docs/html/inherit_graph_57.md5 | 1 - docs/html/inherit_graph_57.png | Bin 2122 -> 0 bytes docs/html/inherit_graph_58.map | 3 - docs/html/inherit_graph_58.md5 | 1 - docs/html/inherit_graph_58.png | Bin 2458 -> 0 bytes docs/html/inherit_graph_59.map | 3 - docs/html/inherit_graph_59.md5 | 1 - docs/html/inherit_graph_59.png | Bin 2639 -> 0 bytes docs/html/inherit_graph_6.map | 3 - docs/html/inherit_graph_6.md5 | 1 - docs/html/inherit_graph_6.png | Bin 2866 -> 0 bytes docs/html/inherit_graph_60.map | 3 - docs/html/inherit_graph_60.md5 | 1 - docs/html/inherit_graph_60.png | Bin 2475 -> 0 bytes docs/html/inherit_graph_61.map | 3 - docs/html/inherit_graph_61.md5 | 1 - docs/html/inherit_graph_61.png | Bin 2815 -> 0 bytes docs/html/inherit_graph_62.map | 3 - docs/html/inherit_graph_62.md5 | 1 - docs/html/inherit_graph_62.png | Bin 3154 -> 0 bytes docs/html/inherit_graph_63.map | 3 - docs/html/inherit_graph_63.md5 | 1 - docs/html/inherit_graph_63.png | Bin 2343 -> 0 bytes docs/html/inherit_graph_64.map | 3 - docs/html/inherit_graph_64.md5 | 1 - docs/html/inherit_graph_64.png | Bin 2687 -> 0 bytes docs/html/inherit_graph_65.map | 4 - docs/html/inherit_graph_65.md5 | 1 - docs/html/inherit_graph_65.png | Bin 4393 -> 0 bytes docs/html/inherit_graph_66.map | 11 - docs/html/inherit_graph_66.md5 | 1 - docs/html/inherit_graph_66.png | Bin 27518 -> 0 bytes docs/html/inherit_graph_67.map | 6 - docs/html/inherit_graph_67.md5 | 1 - docs/html/inherit_graph_67.png | Bin 13482 -> 0 bytes docs/html/inherit_graph_68.map | 3 - docs/html/inherit_graph_68.md5 | 1 - docs/html/inherit_graph_68.png | Bin 2698 -> 0 bytes docs/html/inherit_graph_69.map | 3 - docs/html/inherit_graph_69.md5 | 1 - docs/html/inherit_graph_69.png | Bin 2772 -> 0 bytes docs/html/inherit_graph_7.map | 3 - docs/html/inherit_graph_7.md5 | 1 - docs/html/inherit_graph_7.png | Bin 2931 -> 0 bytes docs/html/inherit_graph_70.map | 3 - docs/html/inherit_graph_70.md5 | 1 - docs/html/inherit_graph_70.png | Bin 3743 -> 0 bytes docs/html/inherit_graph_71.map | 3 - docs/html/inherit_graph_71.md5 | 1 - docs/html/inherit_graph_71.png | Bin 2144 -> 0 bytes docs/html/inherit_graph_8.map | 3 - docs/html/inherit_graph_8.md5 | 1 - docs/html/inherit_graph_8.png | Bin 3272 -> 0 bytes docs/html/inherit_graph_9.map | 3 - docs/html/inherit_graph_9.md5 | 1 - docs/html/inherit_graph_9.png | Bin 4157 -> 0 bytes docs/html/inherits.html | 452 - docs/html/jquery.js | 35 - .../html/local__date__mutation_8h_source.html | 137 - docs/html/logging_8h_source.html | 126 - docs/html/menu.js | 51 - docs/html/menudata.js | 101 - docs/html/nav_f.png | Bin 153 -> 0 bytes docs/html/nav_g.png | Bin 95 -> 0 bytes docs/html/nav_h.png | Bin 98 -> 0 bytes .../html/offset__date__time__mutation_8h.html | 152 - ...et__date__time__mutation_8h__dep__incl.map | 4 - ...et__date__time__mutation_8h__dep__incl.md5 | 1 - ...et__date__time__mutation_8h__dep__incl.png | Bin 7248 -> 0 bytes .../offset__date__time__mutation_8h__incl.map | 15 - .../offset__date__time__mutation_8h__incl.md5 | 1 - .../offset__date__time__mutation_8h__incl.png | Bin 69793 -> 0 bytes ...ffset__date__time__mutation_8h_source.html | 140 - docs/html/open.png | Bin 123 -> 0 bytes docs/html/search/all_0.html | 37 - docs/html/search/all_0.js | 13 - docs/html/search/all_1.html | 37 - docs/html/search/all_1.js | 10 - docs/html/search/all_10.html | 37 - docs/html/search/all_10.js | 20 - docs/html/search/all_11.html | 37 - docs/html/search/all_11.js | 45 - docs/html/search/all_12.html | 37 - docs/html/search/all_12.js | 10 - docs/html/search/all_13.html | 37 - docs/html/search/all_13.js | 5 - docs/html/search/all_14.html | 37 - docs/html/search/all_14.js | 36 - docs/html/search/all_2.html | 37 - docs/html/search/all_2.js | 21 - docs/html/search/all_3.html | 37 - docs/html/search/all_3.js | 19 - docs/html/search/all_4.html | 37 - docs/html/search/all_4.js | 17 - docs/html/search/all_5.html | 37 - docs/html/search/all_5.js | 41 - docs/html/search/all_6.html | 37 - docs/html/search/all_6.js | 19 - docs/html/search/all_7.html | 37 - docs/html/search/all_7.js | 4 - docs/html/search/all_8.html | 37 - docs/html/search/all_8.js | 26 - docs/html/search/all_9.html | 37 - docs/html/search/all_9.js | 49 - docs/html/search/all_a.html | 37 - docs/html/search/all_a.js | 19 - docs/html/search/all_b.html | 37 - docs/html/search/all_b.js | 18 - docs/html/search/all_c.html | 37 - docs/html/search/all_c.js | 10 - docs/html/search/all_d.html | 37 - docs/html/search/all_d.js | 13 - docs/html/search/all_e.html | 37 - docs/html/search/all_e.js | 11 - docs/html/search/all_f.html | 37 - docs/html/search/all_f.js | 13 - docs/html/search/classes_0.html | 37 - docs/html/search/classes_0.js | 7 - docs/html/search/classes_1.html | 37 - docs/html/search/classes_1.js | 5 - docs/html/search/classes_2.html | 37 - docs/html/search/classes_2.js | 5 - docs/html/search/classes_3.html | 37 - docs/html/search/classes_3.js | 11 - docs/html/search/classes_4.html | 37 - docs/html/search/classes_4.js | 4 - docs/html/search/classes_5.html | 37 - docs/html/search/classes_5.js | 6 - docs/html/search/classes_6.html | 37 - docs/html/search/classes_6.js | 6 - docs/html/search/classes_7.html | 37 - docs/html/search/classes_7.js | 4 - docs/html/search/classes_8.html | 37 - docs/html/search/classes_8.js | 12 - docs/html/search/classes_9.html | 37 - docs/html/search/classes_9.js | 4 - docs/html/search/classes_a.html | 37 - docs/html/search/classes_a.js | 28 - docs/html/search/close.svg | 31 - docs/html/search/defines_0.html | 37 - docs/html/search/defines_0.js | 4 - docs/html/search/files_0.html | 37 - docs/html/search/files_0.js | 4 - docs/html/search/files_1.html | 37 - docs/html/search/files_1.js | 5 - docs/html/search/files_2.html | 37 - docs/html/search/files_2.js | 4 - docs/html/search/files_3.html | 37 - docs/html/search/files_3.js | 5 - docs/html/search/files_4.html | 37 - docs/html/search/files_4.js | 7 - docs/html/search/functions_0.html | 37 - docs/html/search/functions_0.js | 8 - docs/html/search/functions_1.html | 37 - docs/html/search/functions_1.js | 5 - docs/html/search/functions_10.html | 37 - docs/html/search/functions_10.js | 15 - docs/html/search/functions_11.html | 37 - docs/html/search/functions_11.js | 27 - docs/html/search/functions_12.html | 37 - docs/html/search/functions_12.js | 4 - docs/html/search/functions_13.html | 37 - docs/html/search/functions_13.js | 13 - docs/html/search/functions_2.html | 37 - docs/html/search/functions_2.js | 15 - docs/html/search/functions_3.html | 37 - docs/html/search/functions_3.js | 13 - docs/html/search/functions_4.html | 37 - docs/html/search/functions_4.js | 8 - docs/html/search/functions_5.html | 37 - docs/html/search/functions_5.js | 37 - docs/html/search/functions_6.html | 37 - docs/html/search/functions_6.js | 19 - docs/html/search/functions_7.html | 37 - docs/html/search/functions_7.js | 4 - docs/html/search/functions_8.html | 37 - docs/html/search/functions_8.js | 24 - docs/html/search/functions_9.html | 37 - docs/html/search/functions_9.js | 4 - docs/html/search/functions_a.html | 37 - docs/html/search/functions_a.js | 13 - docs/html/search/functions_b.html | 37 - docs/html/search/functions_b.js | 7 - docs/html/search/functions_c.html | 37 - docs/html/search/functions_c.js | 5 - docs/html/search/functions_d.html | 37 - docs/html/search/functions_d.js | 5 - docs/html/search/functions_e.html | 37 - docs/html/search/functions_e.js | 9 - docs/html/search/functions_f.html | 37 - docs/html/search/functions_f.js | 10 - docs/html/search/mag_sel.svg | 74 - docs/html/search/nomatches.html | 13 - docs/html/search/pages_0.html | 37 - docs/html/search/pages_0.js | 4 - docs/html/search/related_0.html | 37 - docs/html/search/related_0.js | 4 - docs/html/search/search.css | 257 - docs/html/search/search.js | 816 - docs/html/search/search_l.png | Bin 567 -> 0 bytes docs/html/search/search_m.png | Bin 158 -> 0 bytes docs/html/search/search_r.png | Bin 553 -> 0 bytes docs/html/search/searchdata.js | 39 - docs/html/search/typedefs_0.html | 37 - docs/html/search/typedefs_0.js | 4 - docs/html/search/typedefs_1.html | 37 - docs/html/search/typedefs_1.js | 4 - docs/html/search/typedefs_2.html | 37 - docs/html/search/typedefs_2.js | 7 - docs/html/search/variables_0.html | 37 - docs/html/search/variables_0.js | 6 - docs/html/search/variables_1.html | 37 - docs/html/search/variables_1.js | 4 - docs/html/search/variables_10.html | 37 - docs/html/search/variables_10.js | 10 - docs/html/search/variables_11.html | 37 - docs/html/search/variables_11.js | 4 - docs/html/search/variables_12.html | 37 - docs/html/search/variables_12.js | 6 - docs/html/search/variables_2.html | 37 - docs/html/search/variables_2.js | 5 - docs/html/search/variables_3.html | 37 - docs/html/search/variables_3.js | 7 - docs/html/search/variables_4.html | 37 - docs/html/search/variables_4.js | 5 - docs/html/search/variables_5.html | 37 - docs/html/search/variables_5.js | 7 - docs/html/search/variables_6.html | 37 - docs/html/search/variables_6.js | 5 - docs/html/search/variables_7.html | 37 - docs/html/search/variables_7.js | 48 - docs/html/search/variables_8.html | 37 - docs/html/search/variables_8.js | 7 - docs/html/search/variables_9.html | 37 - docs/html/search/variables_9.js | 11 - docs/html/search/variables_a.html | 37 - docs/html/search/variables_a.js | 8 - docs/html/search/variables_b.html | 37 - docs/html/search/variables_b.js | 9 - docs/html/search/variables_c.html | 37 - docs/html/search/variables_c.js | 5 - docs/html/search/variables_d.html | 37 - docs/html/search/variables_d.js | 6 - docs/html/search/variables_e.html | 37 - docs/html/search/variables_e.js | 8 - docs/html/search/variables_f.html | 37 - docs/html/search/variables_f.js | 10 - docs/html/splitbar.png | Bin 314 -> 0 bytes .../structace__time_1_1MonthDay-members.html | 85 - docs/html/structace__time_1_1MonthDay.html | 105 - ...ructace__time_1_1TimeZoneData-members.html | 93 - .../html/structace__time_1_1TimeZoneData.html | 157 - ..._1ZoneInfoHigh_1_1ZoneContext-members.html | 100 - ...__time_1_1ZoneInfoHigh_1_1ZoneContext.html | 305 - ...me_1_1ZoneInfoHigh_1_1ZoneEra-members.html | 93 - ...tace__time_1_1ZoneInfoHigh_1_1ZoneEra.html | 321 - ..._1ZoneInfoHigh_1_1ZoneEra__coll__graph.map | 5 - ..._1ZoneInfoHigh_1_1ZoneEra__coll__graph.md5 | 1 - ..._1ZoneInfoHigh_1_1ZoneEra__coll__graph.png | Bin 7814 -> 0 bytes ...e_1_1ZoneInfoHigh_1_1ZoneInfo-members.html | 89 - ...ace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html | 209 - ...1ZoneInfoHigh_1_1ZoneInfo__coll__graph.map | 7 - ...1ZoneInfoHigh_1_1ZoneInfo__coll__graph.md5 | 1 - ...1ZoneInfoHigh_1_1ZoneInfo__coll__graph.png | Bin 16679 -> 0 bytes ...1_1ZoneInfoHigh_1_1ZonePolicy-members.html | 85 - ...e__time_1_1ZoneInfoHigh_1_1ZonePolicy.html | 115 - ...oneInfoHigh_1_1ZonePolicy__coll__graph.map | 4 - ...oneInfoHigh_1_1ZonePolicy__coll__graph.md5 | 1 - ...oneInfoHigh_1_1ZonePolicy__coll__graph.png | Bin 5289 -> 0 bytes ...e_1_1ZoneInfoHigh_1_1ZoneRule-members.html | 92 - ...ace__time_1_1ZoneInfoHigh_1_1ZoneRule.html | 275 - ...1_1ZoneInfoLow_1_1ZoneContext-members.html | 105 - ...e__time_1_1ZoneInfoLow_1_1ZoneContext.html | 307 - ...ime_1_1ZoneInfoLow_1_1ZoneEra-members.html | 92 - ...ctace__time_1_1ZoneInfoLow_1_1ZoneEra.html | 324 - ...1_1ZoneInfoLow_1_1ZoneEra__coll__graph.map | 5 - ...1_1ZoneInfoLow_1_1ZoneEra__coll__graph.md5 | 1 - ...1_1ZoneInfoLow_1_1ZoneEra__coll__graph.png | Bin 7707 -> 0 bytes ...me_1_1ZoneInfoLow_1_1ZoneInfo-members.html | 89 - ...tace__time_1_1ZoneInfoLow_1_1ZoneInfo.html | 209 - ..._1ZoneInfoLow_1_1ZoneInfo__coll__graph.map | 7 - ..._1ZoneInfoLow_1_1ZoneInfo__coll__graph.md5 | 1 - ..._1ZoneInfoLow_1_1ZoneInfo__coll__graph.png | Bin 18272 -> 0 bytes ..._1_1ZoneInfoLow_1_1ZonePolicy-members.html | 85 - ...ce__time_1_1ZoneInfoLow_1_1ZonePolicy.html | 115 - ...ZoneInfoLow_1_1ZonePolicy__coll__graph.map | 4 - ...ZoneInfoLow_1_1ZonePolicy__coll__graph.md5 | 1 - ...ZoneInfoLow_1_1ZonePolicy__coll__graph.png | Bin 5222 -> 0 bytes ...me_1_1ZoneInfoLow_1_1ZoneRule-members.html | 92 - ...tace__time_1_1ZoneInfoLow_1_1ZoneRule.html | 276 - ...1_1ZoneInfoMid_1_1ZoneContext-members.html | 100 - ...e__time_1_1ZoneInfoMid_1_1ZoneContext.html | 305 - ...ime_1_1ZoneInfoMid_1_1ZoneEra-members.html | 92 - ...ctace__time_1_1ZoneInfoMid_1_1ZoneEra.html | 324 - ...1_1ZoneInfoMid_1_1ZoneEra__coll__graph.map | 5 - ...1_1ZoneInfoMid_1_1ZoneEra__coll__graph.md5 | 1 - ...1_1ZoneInfoMid_1_1ZoneEra__coll__graph.png | Bin 8755 -> 0 bytes ...me_1_1ZoneInfoMid_1_1ZoneInfo-members.html | 89 - ...tace__time_1_1ZoneInfoMid_1_1ZoneInfo.html | 209 - ..._1ZoneInfoMid_1_1ZoneInfo__coll__graph.map | 7 - ..._1ZoneInfoMid_1_1ZoneInfo__coll__graph.md5 | 1 - ..._1ZoneInfoMid_1_1ZoneInfo__coll__graph.png | Bin 18587 -> 0 bytes ..._1_1ZoneInfoMid_1_1ZonePolicy-members.html | 85 - ...ce__time_1_1ZoneInfoMid_1_1ZonePolicy.html | 115 - ...ZoneInfoMid_1_1ZonePolicy__coll__graph.map | 4 - ...ZoneInfoMid_1_1ZonePolicy__coll__graph.md5 | 1 - ...ZoneInfoMid_1_1ZonePolicy__coll__graph.png | Bin 5845 -> 0 bytes ...me_1_1ZoneInfoMid_1_1ZoneRule-members.html | 92 - ...tace__time_1_1ZoneInfoMid_1_1ZoneRule.html | 276 - ..._1basic_1_1TransitionTemplate-members.html | 92 - ...__time_1_1basic_1_1TransitionTemplate.html | 234 - ...time_1_1extended_1_1DateTuple-members.html | 91 - ...uctace__time_1_1extended_1_1DateTuple.html | 126 - ...tended_1_1MatchingEraTemplate-members.html | 90 - ...me_1_1extended_1_1MatchingEraTemplate.html | 191 - ...ed_1_1MatchingEraTemplate__coll__graph.map | 4 - ...ed_1_1MatchingEraTemplate__coll__graph.md5 | 1 - ...ed_1_1MatchingEraTemplate__coll__graph.png | Bin 9721 -> 0 bytes ...TransitionForDateTimeTemplate-members.html | 86 - ...nded_1_1TransitionForDateTimeTemplate.html | 122 - ...1TransitionForSecondsTemplate-members.html | 86 - ...ended_1_1TransitionForSecondsTemplate.html | 136 - ...xtended_1_1TransitionTemplate-members.html | 99 - ...ime_1_1extended_1_1TransitionTemplate.html | 346 - ...ded_1_1TransitionTemplate__coll__graph.map | 4 - ...ded_1_1TransitionTemplate__coll__graph.md5 | 1 - ...ded_1_1TransitionTemplate__coll__graph.png | Bin 9043 -> 0 bytes ...1_1extended_1_1YearMonthTuple-members.html | 85 - ...e__time_1_1extended_1_1YearMonthTuple.html | 105 - docs/html/sync_off.png | Bin 853 -> 0 bytes docs/html/sync_on.png | Bin 845 -> 0 bytes docs/html/tab_a.png | Bin 142 -> 0 bytes docs/html/tab_b.png | Bin 169 -> 0 bytes docs/html/tab_h.png | Bin 177 -> 0 bytes docs/html/tab_s.png | Bin 184 -> 0 bytes docs/html/tabs.css | 1 - ...estingzonedb_2zone__infos_8cpp_source.html | 635 - .../testingzonedb_2zone__infos_8h_source.html | 859 - ...ingzonedb_2zone__policies_8cpp_source.html | 671 - ...stingzonedb_2zone__policies_8h_source.html | 323 - ...ingzonedb_2zone__registry_8cpp_source.html | 206 - ...stingzonedb_2zone__registry_8h_source.html | 178 - ...stingzonedbc_2zone__infos_8cpp_source.html | 929 - ...testingzonedbc_2zone__infos_8h_source.html | 877 - ...ngzonedbc_2zone__policies_8cpp_source.html | 2969 -- ...tingzonedbc_2zone__policies_8h_source.html | 329 - ...ngzonedbc_2zone__registry_8cpp_source.html | 214 - ...tingzonedbc_2zone__registry_8h_source.html | 178 - ...stingzonedbx_2zone__infos_8cpp_source.html | 899 - ...testingzonedbx_2zone__infos_8h_source.html | 877 - ...ngzonedbx_2zone__policies_8cpp_source.html | 2969 -- ...tingzonedbx_2zone__policies_8h_source.html | 329 - ...ngzonedbx_2zone__registry_8cpp_source.html | 214 - ...tingzonedbx_2zone__registry_8h_source.html | 178 - docs/html/time__offset__mutation_8h.html | 155 - .../time__offset__mutation_8h__dep__incl.map | 4 - .../time__offset__mutation_8h__dep__incl.md5 | 1 - .../time__offset__mutation_8h__dep__incl.png | Bin 7753 -> 0 bytes docs/html/time__offset__mutation_8h__incl.map | 5 - docs/html/time__offset__mutation_8h__incl.md5 | 1 - docs/html/time__offset__mutation_8h__incl.png | Bin 9264 -> 0 bytes .../time__offset__mutation_8h_source.html | 107 - docs/html/time__period__mutation_8h.html | 136 - .../time__period__mutation_8h__dep__incl.map | 4 - .../time__period__mutation_8h__dep__incl.md5 | 1 - .../time__period__mutation_8h__dep__incl.png | Bin 7627 -> 0 bytes docs/html/time__period__mutation_8h__incl.map | 6 - docs/html/time__period__mutation_8h__incl.md5 | 1 - docs/html/time__period__mutation_8h__incl.png | Bin 11620 -> 0 bytes .../time__period__mutation_8h_source.html | 125 - docs/html/zoned__date__time__mutation_8h.html | 174 - ...ed__date__time__mutation_8h__dep__incl.map | 4 - ...ed__date__time__mutation_8h__dep__incl.md5 | 1 - ...ed__date__time__mutation_8h__dep__incl.png | Bin 7109 -> 0 bytes .../zoned__date__time__mutation_8h__incl.map | 37 - .../zoned__date__time__mutation_8h__incl.md5 | 1 - .../zoned__date__time__mutation_8h__incl.png | Bin 374222 -> 0 bytes ...zoned__date__time__mutation_8h_source.html | 135 - .../html/zonedb_2zone__infos_8cpp_source.html | 10735 ----- docs/html/zonedb_2zone__infos_8h_source.html | 1547 - .../zonedb_2zone__policies_8cpp_source.html | 5279 --- .../zonedb_2zone__policies_8h_source.html | 330 - .../zonedb_2zone__registry_8cpp_source.html | 842 - .../zonedb_2zone__registry_8h_source.html | 176 - .../zonedbc_2zone__infos_8cpp_source.html | 36379 ---------------- docs/html/zonedbc_2zone__infos_8h_source.html | 3035 -- .../zonedbc_2zone__policies_8cpp_source.html | 28869 ------------ .../zonedbc_2zone__policies_8h_source.html | 397 - .../zonedbc_2zone__registry_8cpp_source.html | 1118 - .../zonedbc_2zone__registry_8h_source.html | 176 - .../zonedbx_2zone__infos_8cpp_source.html | 18677 -------- docs/html/zonedbx_2zone__infos_8h_source.html | 1920 - .../zonedbx_2zone__policies_8cpp_source.html | 10093 ----- .../zonedbx_2zone__policies_8h_source.html | 342 - .../zonedbx_2zone__registry_8cpp_source.html | 1118 - .../zonedbx_2zone__registry_8h_source.html | 176 - 953 files changed, 199575 deletions(-) delete mode 100644 docs/html/AceTime_8h_source.html delete mode 100644 docs/html/BasicZoneProcessor_8h_source.html delete mode 100644 docs/html/BrokerCommon_8cpp_source.html delete mode 100644 docs/html/BrokerCommon_8h.html delete mode 100644 docs/html/BrokerCommon_8h__dep__incl.map delete mode 100644 docs/html/BrokerCommon_8h__dep__incl.md5 delete mode 100644 docs/html/BrokerCommon_8h__dep__incl.png delete mode 100644 docs/html/BrokerCommon_8h__incl.map delete mode 100644 docs/html/BrokerCommon_8h__incl.md5 delete mode 100644 docs/html/BrokerCommon_8h__incl.png delete mode 100644 docs/html/BrokerCommon_8h_source.html delete mode 100644 docs/html/CompleteZoneProcessor_8h_source.html delete mode 100644 docs/html/DateConv_8cpp_source.html delete mode 100644 docs/html/DateConv_8h_source.html delete mode 100644 docs/html/DateStrings_8cpp_source.html delete mode 100644 docs/html/DateStrings_8h_source.html delete mode 100644 docs/html/DateTuple_8h_source.html delete mode 100644 docs/html/EpochConverterHinnant_8h_source.html delete mode 100644 docs/html/EpochConverterJulian_8h_source.html delete mode 100644 docs/html/Epoch_8cpp_source.html delete mode 100644 docs/html/Epoch_8h_source.html delete mode 100644 docs/html/ExtendedZoneProcessor_8h_source.html delete mode 100644 docs/html/LocalDateTime_8cpp_source.html delete mode 100644 docs/html/LocalDateTime_8h_source.html delete mode 100644 docs/html/LocalDate_8cpp_source.html delete mode 100644 docs/html/LocalDate_8h_source.html delete mode 100644 docs/html/LocalTime_8cpp_source.html delete mode 100644 docs/html/LocalTime_8h_source.html delete mode 100644 docs/html/OffsetDateTime_8cpp_source.html delete mode 100644 docs/html/OffsetDateTime_8h_source.html delete mode 100644 docs/html/TimeOffset_8cpp_source.html delete mode 100644 docs/html/TimeOffset_8h_source.html delete mode 100644 docs/html/TimePeriod_8cpp_source.html delete mode 100644 docs/html/TimePeriod_8h_source.html delete mode 100644 docs/html/TimeZoneData_8h_source.html delete mode 100644 docs/html/TimeZone_8cpp_source.html delete mode 100644 docs/html/TimeZone_8h_source.html delete mode 100644 docs/html/Transition_8h_source.html delete mode 100644 docs/html/ZoneInfoHigh_8h.html delete mode 100644 docs/html/ZoneInfoHigh_8h__dep__incl.map delete mode 100644 docs/html/ZoneInfoHigh_8h__dep__incl.md5 delete mode 100644 docs/html/ZoneInfoHigh_8h__dep__incl.png delete mode 100644 docs/html/ZoneInfoHigh_8h__incl.map delete mode 100644 docs/html/ZoneInfoHigh_8h__incl.md5 delete mode 100644 docs/html/ZoneInfoHigh_8h__incl.png delete mode 100644 docs/html/ZoneInfoHigh_8h_source.html delete mode 100644 docs/html/ZoneInfoLow_8h.html delete mode 100644 docs/html/ZoneInfoLow_8h__dep__incl.map delete mode 100644 docs/html/ZoneInfoLow_8h__dep__incl.md5 delete mode 100644 docs/html/ZoneInfoLow_8h__dep__incl.png delete mode 100644 docs/html/ZoneInfoLow_8h__incl.map delete mode 100644 docs/html/ZoneInfoLow_8h__incl.md5 delete mode 100644 docs/html/ZoneInfoLow_8h__incl.png delete mode 100644 docs/html/ZoneInfoLow_8h_source.html delete mode 100644 docs/html/ZoneInfoMid_8h.html delete mode 100644 docs/html/ZoneInfoMid_8h__dep__incl.map delete mode 100644 docs/html/ZoneInfoMid_8h__dep__incl.md5 delete mode 100644 docs/html/ZoneInfoMid_8h__dep__incl.png delete mode 100644 docs/html/ZoneInfoMid_8h__incl.map delete mode 100644 docs/html/ZoneInfoMid_8h__incl.md5 delete mode 100644 docs/html/ZoneInfoMid_8h__incl.png delete mode 100644 docs/html/ZoneInfoMid_8h_source.html delete mode 100644 docs/html/ZoneManager_8h_source.html delete mode 100644 docs/html/ZoneProcessorCache_8h_source.html delete mode 100644 docs/html/ZoneProcessor_8cpp_source.html delete mode 100644 docs/html/ZoneProcessor_8h_source.html delete mode 100644 docs/html/ZoneRegistrar_8h_source.html delete mode 100644 docs/html/ZoneSorterByName_8h_source.html delete mode 100644 docs/html/ZoneSorterByOffsetAndName_8h_source.html delete mode 100644 docs/html/Zone_8h_source.html delete mode 100644 docs/html/ZonedDateTime_8cpp_source.html delete mode 100644 docs/html/ZonedDateTime_8h_source.html delete mode 100644 docs/html/ZonedExtra_8cpp_source.html delete mode 100644 docs/html/ZonedExtra_8h_source.html delete mode 100644 docs/html/annotated.html delete mode 100644 docs/html/bc_s.png delete mode 100644 docs/html/bdwn.png delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessor-members.html delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessor.html delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorCache-members.html delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorCache.html delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorCache__coll__graph.map delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorCache__coll__graph.md5 delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorCache__coll__graph.png delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorCache__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorCache__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorCache__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorTemplate-members.html delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorTemplate.html delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorTemplate__coll__graph.map delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorTemplate__coll__graph.md5 delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorTemplate__coll__graph.png delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorTemplate__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorTemplate__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessorTemplate__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessor__coll__graph.map delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessor__coll__graph.md5 delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessor__coll__graph.png delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessor__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessor__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1BasicZoneProcessor__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessor-members.html delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessor.html delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessorCache-members.html delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessorCache.html delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessorCache__coll__graph.map delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessorCache__coll__graph.md5 delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessorCache__coll__graph.png delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessorCache__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessorCache__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessorCache__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessor__coll__graph.map delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessor__coll__graph.md5 delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessor__coll__graph.png delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessor__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessor__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1CompleteZoneProcessor__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1DateStrings-members.html delete mode 100644 docs/html/classace__time_1_1DateStrings.html delete mode 100644 docs/html/classace__time_1_1Epoch-members.html delete mode 100644 docs/html/classace__time_1_1Epoch.html delete mode 100644 docs/html/classace__time_1_1EpochConverterHinnant-members.html delete mode 100644 docs/html/classace__time_1_1EpochConverterHinnant.html delete mode 100644 docs/html/classace__time_1_1EpochConverterJulian-members.html delete mode 100644 docs/html/classace__time_1_1EpochConverterJulian.html delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessor-members.html delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessor.html delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorCache-members.html delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorCache.html delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorCache__coll__graph.map delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorCache__coll__graph.md5 delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorCache__coll__graph.png delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorCache__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorCache__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorCache__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorTemplate-members.html delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorTemplate.html delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__coll__graph.map delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__coll__graph.md5 delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__coll__graph.png delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessor__coll__graph.map delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessor__coll__graph.md5 delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessor__coll__graph.png delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessor__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessor__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1ExtendedZoneProcessor__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1FindResult-members.html delete mode 100644 docs/html/classace__time_1_1FindResult.html delete mode 100644 docs/html/classace__time_1_1LocalDate-members.html delete mode 100644 docs/html/classace__time_1_1LocalDate.html delete mode 100644 docs/html/classace__time_1_1LocalDateTime-members.html delete mode 100644 docs/html/classace__time_1_1LocalDateTime.html delete mode 100644 docs/html/classace__time_1_1LocalTime-members.html delete mode 100644 docs/html/classace__time_1_1LocalTime.html delete mode 100644 docs/html/classace__time_1_1ManualZoneManager-members.html delete mode 100644 docs/html/classace__time_1_1ManualZoneManager.html delete mode 100644 docs/html/classace__time_1_1OffsetDateTime-members.html delete mode 100644 docs/html/classace__time_1_1OffsetDateTime.html delete mode 100644 docs/html/classace__time_1_1TimeOffset-members.html delete mode 100644 docs/html/classace__time_1_1TimeOffset.html delete mode 100644 docs/html/classace__time_1_1TimePeriod-members.html delete mode 100644 docs/html/classace__time_1_1TimePeriod.html delete mode 100644 docs/html/classace__time_1_1TimeZone-members.html delete mode 100644 docs/html/classace__time_1_1TimeZone.html delete mode 100644 docs/html/classace__time_1_1TimeZone__coll__graph.map delete mode 100644 docs/html/classace__time_1_1TimeZone__coll__graph.md5 delete mode 100644 docs/html/classace__time_1_1TimeZone__coll__graph.png delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneContextBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneContextBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneEraBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneEraBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZonePolicyBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZonePolicyBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRegistryBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRegistryBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRuleBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRuleBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneContextBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneContextBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneEraBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneEraBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZonePolicyBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZonePolicyBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRegistryBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRegistryBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRuleBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRuleBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneContextBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneContextBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneEraBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneEraBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZonePolicyBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZonePolicyBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRegistryBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRegistryBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRuleBroker-members.html delete mode 100644 docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRuleBroker.html delete mode 100644 docs/html/classace__time_1_1ZoneManager-members.html delete mode 100644 docs/html/classace__time_1_1ZoneManager.html delete mode 100644 docs/html/classace__time_1_1ZoneManagerTemplate-members.html delete mode 100644 docs/html/classace__time_1_1ZoneManagerTemplate.html delete mode 100644 docs/html/classace__time_1_1ZoneManagerTemplate__coll__graph.map delete mode 100644 docs/html/classace__time_1_1ZoneManagerTemplate__coll__graph.md5 delete mode 100644 docs/html/classace__time_1_1ZoneManagerTemplate__coll__graph.png delete mode 100644 docs/html/classace__time_1_1ZoneManagerTemplate__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1ZoneManagerTemplate__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1ZoneManagerTemplate__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1ZoneManager__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1ZoneManager__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1ZoneManager__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1ZoneProcessor-members.html delete mode 100644 docs/html/classace__time_1_1ZoneProcessor.html delete mode 100644 docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate-members.html delete mode 100644 docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate.html delete mode 100644 docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1ZoneProcessor__inherit__graph.map delete mode 100644 docs/html/classace__time_1_1ZoneProcessor__inherit__graph.md5 delete mode 100644 docs/html/classace__time_1_1ZoneProcessor__inherit__graph.png delete mode 100644 docs/html/classace__time_1_1ZoneRegistrarTemplate-members.html delete mode 100644 docs/html/classace__time_1_1ZoneRegistrarTemplate.html delete mode 100644 docs/html/classace__time_1_1ZoneSorterByName-members.html delete mode 100644 docs/html/classace__time_1_1ZoneSorterByName.html delete mode 100644 docs/html/classace__time_1_1ZoneSorterByOffsetAndName-members.html delete mode 100644 docs/html/classace__time_1_1ZoneSorterByOffsetAndName.html delete mode 100644 docs/html/classace__time_1_1ZoneTemplate-members.html delete mode 100644 docs/html/classace__time_1_1ZoneTemplate.html delete mode 100644 docs/html/classace__time_1_1ZonedDateTime-members.html delete mode 100644 docs/html/classace__time_1_1ZonedDateTime.html delete mode 100644 docs/html/classace__time_1_1ZonedExtra-members.html delete mode 100644 docs/html/classace__time_1_1ZonedExtra.html delete mode 100644 docs/html/classace__time_1_1extended_1_1TransitionStorageTemplate-members.html delete mode 100644 docs/html/classace__time_1_1extended_1_1TransitionStorageTemplate.html delete mode 100644 docs/html/classes.html delete mode 100644 docs/html/closed.png delete mode 100644 docs/html/common_8h.html delete mode 100644 docs/html/common_8h__dep__incl.map delete mode 100644 docs/html/common_8h__dep__incl.md5 delete mode 100644 docs/html/common_8h__dep__incl.png delete mode 100644 docs/html/common_8h__incl.map delete mode 100644 docs/html/common_8h__incl.md5 delete mode 100644 docs/html/common_8h__incl.png delete mode 100644 docs/html/common_8h_source.html delete mode 100644 docs/html/compat_8cpp_source.html delete mode 100644 docs/html/compat_8h.html delete mode 100644 docs/html/compat_8h__dep__incl.map delete mode 100644 docs/html/compat_8h__dep__incl.md5 delete mode 100644 docs/html/compat_8h__dep__incl.png delete mode 100644 docs/html/compat_8h__incl.map delete mode 100644 docs/html/compat_8h__incl.md5 delete mode 100644 docs/html/compat_8h__incl.png delete mode 100644 docs/html/compat_8h_source.html delete mode 100644 docs/html/dir_000001_000002.html delete mode 100644 docs/html/dir_000001_000009.html delete mode 100644 docs/html/dir_000002_000009.html delete mode 100644 docs/html/dir_000003_000009.html delete mode 100644 docs/html/dir_000004_000009.html delete mode 100644 docs/html/dir_000005_000009.html delete mode 100644 docs/html/dir_000006_000009.html delete mode 100644 docs/html/dir_000007_000009.html delete mode 100644 docs/html/dir_000008_000009.html delete mode 100644 docs/html/dir_173dd563440c1e02d7e3957b90659cd7.html delete mode 100644 docs/html/dir_173dd563440c1e02d7e3957b90659cd7_dep.map delete mode 100644 docs/html/dir_173dd563440c1e02d7e3957b90659cd7_dep.md5 delete mode 100644 docs/html/dir_173dd563440c1e02d7e3957b90659cd7_dep.png delete mode 100644 docs/html/dir_1f0cdc36437962ae32413c3b11b65679.html delete mode 100644 docs/html/dir_1f0cdc36437962ae32413c3b11b65679_dep.map delete mode 100644 docs/html/dir_1f0cdc36437962ae32413c3b11b65679_dep.md5 delete mode 100644 docs/html/dir_1f0cdc36437962ae32413c3b11b65679_dep.png delete mode 100644 docs/html/dir_4087a17cae141e7242c9415587ae2d90.html delete mode 100644 docs/html/dir_4087a17cae141e7242c9415587ae2d90_dep.map delete mode 100644 docs/html/dir_4087a17cae141e7242c9415587ae2d90_dep.md5 delete mode 100644 docs/html/dir_4087a17cae141e7242c9415587ae2d90_dep.png delete mode 100644 docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html delete mode 100644 docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map delete mode 100644 docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 delete mode 100644 docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png delete mode 100644 docs/html/dir_87a9f0716831ec146f37160adfa15576.html delete mode 100644 docs/html/dir_87a9f0716831ec146f37160adfa15576_dep.map delete mode 100644 docs/html/dir_87a9f0716831ec146f37160adfa15576_dep.md5 delete mode 100644 docs/html/dir_87a9f0716831ec146f37160adfa15576_dep.png delete mode 100644 docs/html/dir_afb2025690de77b1a5b5001a410c869c.html delete mode 100644 docs/html/dir_afb2025690de77b1a5b5001a410c869c_dep.map delete mode 100644 docs/html/dir_afb2025690de77b1a5b5001a410c869c_dep.md5 delete mode 100644 docs/html/dir_afb2025690de77b1a5b5001a410c869c_dep.png delete mode 100644 docs/html/dir_c01eb8a6ec38f632322c131502e3a308.html delete mode 100644 docs/html/dir_c01eb8a6ec38f632322c131502e3a308_dep.map delete mode 100644 docs/html/dir_c01eb8a6ec38f632322c131502e3a308_dep.md5 delete mode 100644 docs/html/dir_c01eb8a6ec38f632322c131502e3a308_dep.png delete mode 100644 docs/html/dir_c458c1a7ede63e0a4ba7e7b60e917e99.html delete mode 100644 docs/html/dir_d45698bd535a97711c8831def10fdb23.html delete mode 100644 docs/html/dir_d45698bd535a97711c8831def10fdb23_dep.map delete mode 100644 docs/html/dir_d45698bd535a97711c8831def10fdb23_dep.md5 delete mode 100644 docs/html/dir_d45698bd535a97711c8831def10fdb23_dep.png delete mode 100644 docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6.html delete mode 100644 docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6_dep.map delete mode 100644 docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6_dep.md5 delete mode 100644 docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6_dep.png delete mode 100644 docs/html/doc.png delete mode 100644 docs/html/doxygen.css delete mode 100644 docs/html/doxygen.svg delete mode 100644 docs/html/dynsections.js delete mode 100644 docs/html/files.html delete mode 100644 docs/html/folderclosed.png delete mode 100644 docs/html/folderopen.png delete mode 100644 docs/html/functions.html delete mode 100644 docs/html/functions_b.html delete mode 100644 docs/html/functions_c.html delete mode 100644 docs/html/functions_d.html delete mode 100644 docs/html/functions_e.html delete mode 100644 docs/html/functions_f.html delete mode 100644 docs/html/functions_func.html delete mode 100644 docs/html/functions_func_b.html delete mode 100644 docs/html/functions_func_c.html delete mode 100644 docs/html/functions_func_d.html delete mode 100644 docs/html/functions_func_e.html delete mode 100644 docs/html/functions_func_f.html delete mode 100644 docs/html/functions_func_g.html delete mode 100644 docs/html/functions_func_h.html delete mode 100644 docs/html/functions_func_i.html delete mode 100644 docs/html/functions_func_k.html delete mode 100644 docs/html/functions_func_l.html delete mode 100644 docs/html/functions_func_m.html delete mode 100644 docs/html/functions_func_n.html delete mode 100644 docs/html/functions_func_o.html delete mode 100644 docs/html/functions_func_p.html delete mode 100644 docs/html/functions_func_r.html delete mode 100644 docs/html/functions_func_s.html delete mode 100644 docs/html/functions_func_t.html delete mode 100644 docs/html/functions_func_y.html delete mode 100644 docs/html/functions_func_z.html delete mode 100644 docs/html/functions_g.html delete mode 100644 docs/html/functions_h.html delete mode 100644 docs/html/functions_i.html delete mode 100644 docs/html/functions_k.html delete mode 100644 docs/html/functions_l.html delete mode 100644 docs/html/functions_m.html delete mode 100644 docs/html/functions_n.html delete mode 100644 docs/html/functions_o.html delete mode 100644 docs/html/functions_p.html delete mode 100644 docs/html/functions_r.html delete mode 100644 docs/html/functions_rela.html delete mode 100644 docs/html/functions_s.html delete mode 100644 docs/html/functions_t.html delete mode 100644 docs/html/functions_type.html delete mode 100644 docs/html/functions_u.html delete mode 100644 docs/html/functions_vars.html delete mode 100644 docs/html/functions_vars_b.html delete mode 100644 docs/html/functions_vars_c.html delete mode 100644 docs/html/functions_vars_d.html delete mode 100644 docs/html/functions_vars_e.html delete mode 100644 docs/html/functions_vars_f.html delete mode 100644 docs/html/functions_vars_i.html delete mode 100644 docs/html/functions_vars_k.html delete mode 100644 docs/html/functions_vars_l.html delete mode 100644 docs/html/functions_vars_m.html delete mode 100644 docs/html/functions_vars_n.html delete mode 100644 docs/html/functions_vars_o.html delete mode 100644 docs/html/functions_vars_p.html delete mode 100644 docs/html/functions_vars_r.html delete mode 100644 docs/html/functions_vars_s.html delete mode 100644 docs/html/functions_vars_t.html delete mode 100644 docs/html/functions_vars_u.html delete mode 100644 docs/html/functions_vars_y.html delete mode 100644 docs/html/functions_vars_z.html delete mode 100644 docs/html/functions_y.html delete mode 100644 docs/html/functions_z.html delete mode 100644 docs/html/globals.html delete mode 100644 docs/html/globals_defs.html delete mode 100644 docs/html/graph_legend.html delete mode 100644 docs/html/graph_legend.md5 delete mode 100644 docs/html/graph_legend.png delete mode 100644 docs/html/hierarchy.html delete mode 100644 docs/html/index.html delete mode 100644 docs/html/infos_8h_source.html delete mode 100644 docs/html/inherit_graph_0.map delete mode 100644 docs/html/inherit_graph_0.md5 delete mode 100644 docs/html/inherit_graph_0.png delete mode 100644 docs/html/inherit_graph_1.map delete mode 100644 docs/html/inherit_graph_1.md5 delete mode 100644 docs/html/inherit_graph_1.png delete mode 100644 docs/html/inherit_graph_10.map delete mode 100644 docs/html/inherit_graph_10.md5 delete mode 100644 docs/html/inherit_graph_10.png delete mode 100644 docs/html/inherit_graph_11.map delete mode 100644 docs/html/inherit_graph_11.md5 delete mode 100644 docs/html/inherit_graph_11.png delete mode 100644 docs/html/inherit_graph_12.map delete mode 100644 docs/html/inherit_graph_12.md5 delete mode 100644 docs/html/inherit_graph_12.png delete mode 100644 docs/html/inherit_graph_13.map delete mode 100644 docs/html/inherit_graph_13.md5 delete mode 100644 docs/html/inherit_graph_13.png delete mode 100644 docs/html/inherit_graph_14.map delete mode 100644 docs/html/inherit_graph_14.md5 delete mode 100644 docs/html/inherit_graph_14.png delete mode 100644 docs/html/inherit_graph_15.map delete mode 100644 docs/html/inherit_graph_15.md5 delete mode 100644 docs/html/inherit_graph_15.png delete mode 100644 docs/html/inherit_graph_16.map delete mode 100644 docs/html/inherit_graph_16.md5 delete mode 100644 docs/html/inherit_graph_16.png delete mode 100644 docs/html/inherit_graph_17.map delete mode 100644 docs/html/inherit_graph_17.md5 delete mode 100644 docs/html/inherit_graph_17.png delete mode 100644 docs/html/inherit_graph_18.map delete mode 100644 docs/html/inherit_graph_18.md5 delete mode 100644 docs/html/inherit_graph_18.png delete mode 100644 docs/html/inherit_graph_19.map delete mode 100644 docs/html/inherit_graph_19.md5 delete mode 100644 docs/html/inherit_graph_19.png delete mode 100644 docs/html/inherit_graph_2.map delete mode 100644 docs/html/inherit_graph_2.md5 delete mode 100644 docs/html/inherit_graph_2.png delete mode 100644 docs/html/inherit_graph_20.map delete mode 100644 docs/html/inherit_graph_20.md5 delete mode 100644 docs/html/inherit_graph_20.png delete mode 100644 docs/html/inherit_graph_21.map delete mode 100644 docs/html/inherit_graph_21.md5 delete mode 100644 docs/html/inherit_graph_21.png delete mode 100644 docs/html/inherit_graph_22.map delete mode 100644 docs/html/inherit_graph_22.md5 delete mode 100644 docs/html/inherit_graph_22.png delete mode 100644 docs/html/inherit_graph_23.map delete mode 100644 docs/html/inherit_graph_23.md5 delete mode 100644 docs/html/inherit_graph_23.png delete mode 100644 docs/html/inherit_graph_24.map delete mode 100644 docs/html/inherit_graph_24.md5 delete mode 100644 docs/html/inherit_graph_24.png delete mode 100644 docs/html/inherit_graph_25.map delete mode 100644 docs/html/inherit_graph_25.md5 delete mode 100644 docs/html/inherit_graph_25.png delete mode 100644 docs/html/inherit_graph_26.map delete mode 100644 docs/html/inherit_graph_26.md5 delete mode 100644 docs/html/inherit_graph_26.png delete mode 100644 docs/html/inherit_graph_27.map delete mode 100644 docs/html/inherit_graph_27.md5 delete mode 100644 docs/html/inherit_graph_27.png delete mode 100644 docs/html/inherit_graph_28.map delete mode 100644 docs/html/inherit_graph_28.md5 delete mode 100644 docs/html/inherit_graph_28.png delete mode 100644 docs/html/inherit_graph_29.map delete mode 100644 docs/html/inherit_graph_29.md5 delete mode 100644 docs/html/inherit_graph_29.png delete mode 100644 docs/html/inherit_graph_3.map delete mode 100644 docs/html/inherit_graph_3.md5 delete mode 100644 docs/html/inherit_graph_3.png delete mode 100644 docs/html/inherit_graph_30.map delete mode 100644 docs/html/inherit_graph_30.md5 delete mode 100644 docs/html/inherit_graph_30.png delete mode 100644 docs/html/inherit_graph_31.map delete mode 100644 docs/html/inherit_graph_31.md5 delete mode 100644 docs/html/inherit_graph_31.png delete mode 100644 docs/html/inherit_graph_32.map delete mode 100644 docs/html/inherit_graph_32.md5 delete mode 100644 docs/html/inherit_graph_32.png delete mode 100644 docs/html/inherit_graph_33.map delete mode 100644 docs/html/inherit_graph_33.md5 delete mode 100644 docs/html/inherit_graph_33.png delete mode 100644 docs/html/inherit_graph_34.map delete mode 100644 docs/html/inherit_graph_34.md5 delete mode 100644 docs/html/inherit_graph_34.png delete mode 100644 docs/html/inherit_graph_35.map delete mode 100644 docs/html/inherit_graph_35.md5 delete mode 100644 docs/html/inherit_graph_35.png delete mode 100644 docs/html/inherit_graph_36.map delete mode 100644 docs/html/inherit_graph_36.md5 delete mode 100644 docs/html/inherit_graph_36.png delete mode 100644 docs/html/inherit_graph_37.map delete mode 100644 docs/html/inherit_graph_37.md5 delete mode 100644 docs/html/inherit_graph_37.png delete mode 100644 docs/html/inherit_graph_38.map delete mode 100644 docs/html/inherit_graph_38.md5 delete mode 100644 docs/html/inherit_graph_38.png delete mode 100644 docs/html/inherit_graph_39.map delete mode 100644 docs/html/inherit_graph_39.md5 delete mode 100644 docs/html/inherit_graph_39.png delete mode 100644 docs/html/inherit_graph_4.map delete mode 100644 docs/html/inherit_graph_4.md5 delete mode 100644 docs/html/inherit_graph_4.png delete mode 100644 docs/html/inherit_graph_40.map delete mode 100644 docs/html/inherit_graph_40.md5 delete mode 100644 docs/html/inherit_graph_40.png delete mode 100644 docs/html/inherit_graph_41.map delete mode 100644 docs/html/inherit_graph_41.md5 delete mode 100644 docs/html/inherit_graph_41.png delete mode 100644 docs/html/inherit_graph_42.map delete mode 100644 docs/html/inherit_graph_42.md5 delete mode 100644 docs/html/inherit_graph_42.png delete mode 100644 docs/html/inherit_graph_43.map delete mode 100644 docs/html/inherit_graph_43.md5 delete mode 100644 docs/html/inherit_graph_43.png delete mode 100644 docs/html/inherit_graph_44.map delete mode 100644 docs/html/inherit_graph_44.md5 delete mode 100644 docs/html/inherit_graph_44.png delete mode 100644 docs/html/inherit_graph_45.map delete mode 100644 docs/html/inherit_graph_45.md5 delete mode 100644 docs/html/inherit_graph_45.png delete mode 100644 docs/html/inherit_graph_46.map delete mode 100644 docs/html/inherit_graph_46.md5 delete mode 100644 docs/html/inherit_graph_46.png delete mode 100644 docs/html/inherit_graph_47.map delete mode 100644 docs/html/inherit_graph_47.md5 delete mode 100644 docs/html/inherit_graph_47.png delete mode 100644 docs/html/inherit_graph_48.map delete mode 100644 docs/html/inherit_graph_48.md5 delete mode 100644 docs/html/inherit_graph_48.png delete mode 100644 docs/html/inherit_graph_49.map delete mode 100644 docs/html/inherit_graph_49.md5 delete mode 100644 docs/html/inherit_graph_49.png delete mode 100644 docs/html/inherit_graph_5.map delete mode 100644 docs/html/inherit_graph_5.md5 delete mode 100644 docs/html/inherit_graph_5.png delete mode 100644 docs/html/inherit_graph_50.map delete mode 100644 docs/html/inherit_graph_50.md5 delete mode 100644 docs/html/inherit_graph_50.png delete mode 100644 docs/html/inherit_graph_51.map delete mode 100644 docs/html/inherit_graph_51.md5 delete mode 100644 docs/html/inherit_graph_51.png delete mode 100644 docs/html/inherit_graph_52.map delete mode 100644 docs/html/inherit_graph_52.md5 delete mode 100644 docs/html/inherit_graph_52.png delete mode 100644 docs/html/inherit_graph_53.map delete mode 100644 docs/html/inherit_graph_53.md5 delete mode 100644 docs/html/inherit_graph_53.png delete mode 100644 docs/html/inherit_graph_54.map delete mode 100644 docs/html/inherit_graph_54.md5 delete mode 100644 docs/html/inherit_graph_54.png delete mode 100644 docs/html/inherit_graph_55.map delete mode 100644 docs/html/inherit_graph_55.md5 delete mode 100644 docs/html/inherit_graph_55.png delete mode 100644 docs/html/inherit_graph_56.map delete mode 100644 docs/html/inherit_graph_56.md5 delete mode 100644 docs/html/inherit_graph_56.png delete mode 100644 docs/html/inherit_graph_57.map delete mode 100644 docs/html/inherit_graph_57.md5 delete mode 100644 docs/html/inherit_graph_57.png delete mode 100644 docs/html/inherit_graph_58.map delete mode 100644 docs/html/inherit_graph_58.md5 delete mode 100644 docs/html/inherit_graph_58.png delete mode 100644 docs/html/inherit_graph_59.map delete mode 100644 docs/html/inherit_graph_59.md5 delete mode 100644 docs/html/inherit_graph_59.png delete mode 100644 docs/html/inherit_graph_6.map delete mode 100644 docs/html/inherit_graph_6.md5 delete mode 100644 docs/html/inherit_graph_6.png delete mode 100644 docs/html/inherit_graph_60.map delete mode 100644 docs/html/inherit_graph_60.md5 delete mode 100644 docs/html/inherit_graph_60.png delete mode 100644 docs/html/inherit_graph_61.map delete mode 100644 docs/html/inherit_graph_61.md5 delete mode 100644 docs/html/inherit_graph_61.png delete mode 100644 docs/html/inherit_graph_62.map delete mode 100644 docs/html/inherit_graph_62.md5 delete mode 100644 docs/html/inherit_graph_62.png delete mode 100644 docs/html/inherit_graph_63.map delete mode 100644 docs/html/inherit_graph_63.md5 delete mode 100644 docs/html/inherit_graph_63.png delete mode 100644 docs/html/inherit_graph_64.map delete mode 100644 docs/html/inherit_graph_64.md5 delete mode 100644 docs/html/inherit_graph_64.png delete mode 100644 docs/html/inherit_graph_65.map delete mode 100644 docs/html/inherit_graph_65.md5 delete mode 100644 docs/html/inherit_graph_65.png delete mode 100644 docs/html/inherit_graph_66.map delete mode 100644 docs/html/inherit_graph_66.md5 delete mode 100644 docs/html/inherit_graph_66.png delete mode 100644 docs/html/inherit_graph_67.map delete mode 100644 docs/html/inherit_graph_67.md5 delete mode 100644 docs/html/inherit_graph_67.png delete mode 100644 docs/html/inherit_graph_68.map delete mode 100644 docs/html/inherit_graph_68.md5 delete mode 100644 docs/html/inherit_graph_68.png delete mode 100644 docs/html/inherit_graph_69.map delete mode 100644 docs/html/inherit_graph_69.md5 delete mode 100644 docs/html/inherit_graph_69.png delete mode 100644 docs/html/inherit_graph_7.map delete mode 100644 docs/html/inherit_graph_7.md5 delete mode 100644 docs/html/inherit_graph_7.png delete mode 100644 docs/html/inherit_graph_70.map delete mode 100644 docs/html/inherit_graph_70.md5 delete mode 100644 docs/html/inherit_graph_70.png delete mode 100644 docs/html/inherit_graph_71.map delete mode 100644 docs/html/inherit_graph_71.md5 delete mode 100644 docs/html/inherit_graph_71.png delete mode 100644 docs/html/inherit_graph_8.map delete mode 100644 docs/html/inherit_graph_8.md5 delete mode 100644 docs/html/inherit_graph_8.png delete mode 100644 docs/html/inherit_graph_9.map delete mode 100644 docs/html/inherit_graph_9.md5 delete mode 100644 docs/html/inherit_graph_9.png delete mode 100644 docs/html/inherits.html delete mode 100644 docs/html/jquery.js delete mode 100644 docs/html/local__date__mutation_8h_source.html delete mode 100644 docs/html/logging_8h_source.html delete mode 100644 docs/html/menu.js delete mode 100644 docs/html/menudata.js delete mode 100644 docs/html/nav_f.png delete mode 100644 docs/html/nav_g.png delete mode 100644 docs/html/nav_h.png delete mode 100644 docs/html/offset__date__time__mutation_8h.html delete mode 100644 docs/html/offset__date__time__mutation_8h__dep__incl.map delete mode 100644 docs/html/offset__date__time__mutation_8h__dep__incl.md5 delete mode 100644 docs/html/offset__date__time__mutation_8h__dep__incl.png delete mode 100644 docs/html/offset__date__time__mutation_8h__incl.map delete mode 100644 docs/html/offset__date__time__mutation_8h__incl.md5 delete mode 100644 docs/html/offset__date__time__mutation_8h__incl.png delete mode 100644 docs/html/offset__date__time__mutation_8h_source.html delete mode 100644 docs/html/open.png delete mode 100644 docs/html/search/all_0.html delete mode 100644 docs/html/search/all_0.js delete mode 100644 docs/html/search/all_1.html delete mode 100644 docs/html/search/all_1.js delete mode 100644 docs/html/search/all_10.html delete mode 100644 docs/html/search/all_10.js delete mode 100644 docs/html/search/all_11.html delete mode 100644 docs/html/search/all_11.js delete mode 100644 docs/html/search/all_12.html delete mode 100644 docs/html/search/all_12.js delete mode 100644 docs/html/search/all_13.html delete mode 100644 docs/html/search/all_13.js delete mode 100644 docs/html/search/all_14.html delete mode 100644 docs/html/search/all_14.js delete mode 100644 docs/html/search/all_2.html delete mode 100644 docs/html/search/all_2.js delete mode 100644 docs/html/search/all_3.html delete mode 100644 docs/html/search/all_3.js delete mode 100644 docs/html/search/all_4.html delete mode 100644 docs/html/search/all_4.js delete mode 100644 docs/html/search/all_5.html delete mode 100644 docs/html/search/all_5.js delete mode 100644 docs/html/search/all_6.html delete mode 100644 docs/html/search/all_6.js delete mode 100644 docs/html/search/all_7.html delete mode 100644 docs/html/search/all_7.js delete mode 100644 docs/html/search/all_8.html delete mode 100644 docs/html/search/all_8.js delete mode 100644 docs/html/search/all_9.html delete mode 100644 docs/html/search/all_9.js delete mode 100644 docs/html/search/all_a.html delete mode 100644 docs/html/search/all_a.js delete mode 100644 docs/html/search/all_b.html delete mode 100644 docs/html/search/all_b.js delete mode 100644 docs/html/search/all_c.html delete mode 100644 docs/html/search/all_c.js delete mode 100644 docs/html/search/all_d.html delete mode 100644 docs/html/search/all_d.js delete mode 100644 docs/html/search/all_e.html delete mode 100644 docs/html/search/all_e.js delete mode 100644 docs/html/search/all_f.html delete mode 100644 docs/html/search/all_f.js delete mode 100644 docs/html/search/classes_0.html delete mode 100644 docs/html/search/classes_0.js delete mode 100644 docs/html/search/classes_1.html delete mode 100644 docs/html/search/classes_1.js delete mode 100644 docs/html/search/classes_2.html delete mode 100644 docs/html/search/classes_2.js delete mode 100644 docs/html/search/classes_3.html delete mode 100644 docs/html/search/classes_3.js delete mode 100644 docs/html/search/classes_4.html delete mode 100644 docs/html/search/classes_4.js delete mode 100644 docs/html/search/classes_5.html delete mode 100644 docs/html/search/classes_5.js delete mode 100644 docs/html/search/classes_6.html delete mode 100644 docs/html/search/classes_6.js delete mode 100644 docs/html/search/classes_7.html delete mode 100644 docs/html/search/classes_7.js delete mode 100644 docs/html/search/classes_8.html delete mode 100644 docs/html/search/classes_8.js delete mode 100644 docs/html/search/classes_9.html delete mode 100644 docs/html/search/classes_9.js delete mode 100644 docs/html/search/classes_a.html delete mode 100644 docs/html/search/classes_a.js delete mode 100644 docs/html/search/close.svg delete mode 100644 docs/html/search/defines_0.html delete mode 100644 docs/html/search/defines_0.js delete mode 100644 docs/html/search/files_0.html delete mode 100644 docs/html/search/files_0.js delete mode 100644 docs/html/search/files_1.html delete mode 100644 docs/html/search/files_1.js delete mode 100644 docs/html/search/files_2.html delete mode 100644 docs/html/search/files_2.js delete mode 100644 docs/html/search/files_3.html delete mode 100644 docs/html/search/files_3.js delete mode 100644 docs/html/search/files_4.html delete mode 100644 docs/html/search/files_4.js delete mode 100644 docs/html/search/functions_0.html delete mode 100644 docs/html/search/functions_0.js delete mode 100644 docs/html/search/functions_1.html delete mode 100644 docs/html/search/functions_1.js delete mode 100644 docs/html/search/functions_10.html delete mode 100644 docs/html/search/functions_10.js delete mode 100644 docs/html/search/functions_11.html delete mode 100644 docs/html/search/functions_11.js delete mode 100644 docs/html/search/functions_12.html delete mode 100644 docs/html/search/functions_12.js delete mode 100644 docs/html/search/functions_13.html delete mode 100644 docs/html/search/functions_13.js delete mode 100644 docs/html/search/functions_2.html delete mode 100644 docs/html/search/functions_2.js delete mode 100644 docs/html/search/functions_3.html delete mode 100644 docs/html/search/functions_3.js delete mode 100644 docs/html/search/functions_4.html delete mode 100644 docs/html/search/functions_4.js delete mode 100644 docs/html/search/functions_5.html delete mode 100644 docs/html/search/functions_5.js delete mode 100644 docs/html/search/functions_6.html delete mode 100644 docs/html/search/functions_6.js delete mode 100644 docs/html/search/functions_7.html delete mode 100644 docs/html/search/functions_7.js delete mode 100644 docs/html/search/functions_8.html delete mode 100644 docs/html/search/functions_8.js delete mode 100644 docs/html/search/functions_9.html delete mode 100644 docs/html/search/functions_9.js delete mode 100644 docs/html/search/functions_a.html delete mode 100644 docs/html/search/functions_a.js delete mode 100644 docs/html/search/functions_b.html delete mode 100644 docs/html/search/functions_b.js delete mode 100644 docs/html/search/functions_c.html delete mode 100644 docs/html/search/functions_c.js delete mode 100644 docs/html/search/functions_d.html delete mode 100644 docs/html/search/functions_d.js delete mode 100644 docs/html/search/functions_e.html delete mode 100644 docs/html/search/functions_e.js delete mode 100644 docs/html/search/functions_f.html delete mode 100644 docs/html/search/functions_f.js delete mode 100644 docs/html/search/mag_sel.svg delete mode 100644 docs/html/search/nomatches.html delete mode 100644 docs/html/search/pages_0.html delete mode 100644 docs/html/search/pages_0.js delete mode 100644 docs/html/search/related_0.html delete mode 100644 docs/html/search/related_0.js delete mode 100644 docs/html/search/search.css delete mode 100644 docs/html/search/search.js delete mode 100644 docs/html/search/search_l.png delete mode 100644 docs/html/search/search_m.png delete mode 100644 docs/html/search/search_r.png delete mode 100644 docs/html/search/searchdata.js delete mode 100644 docs/html/search/typedefs_0.html delete mode 100644 docs/html/search/typedefs_0.js delete mode 100644 docs/html/search/typedefs_1.html delete mode 100644 docs/html/search/typedefs_1.js delete mode 100644 docs/html/search/typedefs_2.html delete mode 100644 docs/html/search/typedefs_2.js delete mode 100644 docs/html/search/variables_0.html delete mode 100644 docs/html/search/variables_0.js delete mode 100644 docs/html/search/variables_1.html delete mode 100644 docs/html/search/variables_1.js delete mode 100644 docs/html/search/variables_10.html delete mode 100644 docs/html/search/variables_10.js delete mode 100644 docs/html/search/variables_11.html delete mode 100644 docs/html/search/variables_11.js delete mode 100644 docs/html/search/variables_12.html delete mode 100644 docs/html/search/variables_12.js delete mode 100644 docs/html/search/variables_2.html delete mode 100644 docs/html/search/variables_2.js delete mode 100644 docs/html/search/variables_3.html delete mode 100644 docs/html/search/variables_3.js delete mode 100644 docs/html/search/variables_4.html delete mode 100644 docs/html/search/variables_4.js delete mode 100644 docs/html/search/variables_5.html delete mode 100644 docs/html/search/variables_5.js delete mode 100644 docs/html/search/variables_6.html delete mode 100644 docs/html/search/variables_6.js delete mode 100644 docs/html/search/variables_7.html delete mode 100644 docs/html/search/variables_7.js delete mode 100644 docs/html/search/variables_8.html delete mode 100644 docs/html/search/variables_8.js delete mode 100644 docs/html/search/variables_9.html delete mode 100644 docs/html/search/variables_9.js delete mode 100644 docs/html/search/variables_a.html delete mode 100644 docs/html/search/variables_a.js delete mode 100644 docs/html/search/variables_b.html delete mode 100644 docs/html/search/variables_b.js delete mode 100644 docs/html/search/variables_c.html delete mode 100644 docs/html/search/variables_c.js delete mode 100644 docs/html/search/variables_d.html delete mode 100644 docs/html/search/variables_d.js delete mode 100644 docs/html/search/variables_e.html delete mode 100644 docs/html/search/variables_e.js delete mode 100644 docs/html/search/variables_f.html delete mode 100644 docs/html/search/variables_f.js delete mode 100644 docs/html/splitbar.png delete mode 100644 docs/html/structace__time_1_1MonthDay-members.html delete mode 100644 docs/html/structace__time_1_1MonthDay.html delete mode 100644 docs/html/structace__time_1_1TimeZoneData-members.html delete mode 100644 docs/html/structace__time_1_1TimeZoneData.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneContext-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra__coll__graph.map delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra__coll__graph.md5 delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra__coll__graph.png delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo__coll__graph.map delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo__coll__graph.md5 delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo__coll__graph.png delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy__coll__graph.map delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy__coll__graph.md5 delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy__coll__graph.png delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneRule-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneContext-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneContext.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra__coll__graph.map delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra__coll__graph.md5 delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra__coll__graph.png delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo__coll__graph.map delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo__coll__graph.md5 delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo__coll__graph.png delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy__coll__graph.map delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy__coll__graph.md5 delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy__coll__graph.png delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneRule-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneRule.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneContext-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneContext.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra__coll__graph.map delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra__coll__graph.md5 delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra__coll__graph.png delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo__coll__graph.map delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo__coll__graph.md5 delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo__coll__graph.png delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy__coll__graph.map delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy__coll__graph.md5 delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy__coll__graph.png delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneRule-members.html delete mode 100644 docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneRule.html delete mode 100644 docs/html/structace__time_1_1basic_1_1TransitionTemplate-members.html delete mode 100644 docs/html/structace__time_1_1basic_1_1TransitionTemplate.html delete mode 100644 docs/html/structace__time_1_1extended_1_1DateTuple-members.html delete mode 100644 docs/html/structace__time_1_1extended_1_1DateTuple.html delete mode 100644 docs/html/structace__time_1_1extended_1_1MatchingEraTemplate-members.html delete mode 100644 docs/html/structace__time_1_1extended_1_1MatchingEraTemplate.html delete mode 100644 docs/html/structace__time_1_1extended_1_1MatchingEraTemplate__coll__graph.map delete mode 100644 docs/html/structace__time_1_1extended_1_1MatchingEraTemplate__coll__graph.md5 delete mode 100644 docs/html/structace__time_1_1extended_1_1MatchingEraTemplate__coll__graph.png delete mode 100644 docs/html/structace__time_1_1extended_1_1TransitionForDateTimeTemplate-members.html delete mode 100644 docs/html/structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html delete mode 100644 docs/html/structace__time_1_1extended_1_1TransitionForSecondsTemplate-members.html delete mode 100644 docs/html/structace__time_1_1extended_1_1TransitionForSecondsTemplate.html delete mode 100644 docs/html/structace__time_1_1extended_1_1TransitionTemplate-members.html delete mode 100644 docs/html/structace__time_1_1extended_1_1TransitionTemplate.html delete mode 100644 docs/html/structace__time_1_1extended_1_1TransitionTemplate__coll__graph.map delete mode 100644 docs/html/structace__time_1_1extended_1_1TransitionTemplate__coll__graph.md5 delete mode 100644 docs/html/structace__time_1_1extended_1_1TransitionTemplate__coll__graph.png delete mode 100644 docs/html/structace__time_1_1extended_1_1YearMonthTuple-members.html delete mode 100644 docs/html/structace__time_1_1extended_1_1YearMonthTuple.html delete mode 100644 docs/html/sync_off.png delete mode 100644 docs/html/sync_on.png delete mode 100644 docs/html/tab_a.png delete mode 100644 docs/html/tab_b.png delete mode 100644 docs/html/tab_h.png delete mode 100644 docs/html/tab_s.png delete mode 100644 docs/html/tabs.css delete mode 100644 docs/html/testingzonedb_2zone__infos_8cpp_source.html delete mode 100644 docs/html/testingzonedb_2zone__infos_8h_source.html delete mode 100644 docs/html/testingzonedb_2zone__policies_8cpp_source.html delete mode 100644 docs/html/testingzonedb_2zone__policies_8h_source.html delete mode 100644 docs/html/testingzonedb_2zone__registry_8cpp_source.html delete mode 100644 docs/html/testingzonedb_2zone__registry_8h_source.html delete mode 100644 docs/html/testingzonedbc_2zone__infos_8cpp_source.html delete mode 100644 docs/html/testingzonedbc_2zone__infos_8h_source.html delete mode 100644 docs/html/testingzonedbc_2zone__policies_8cpp_source.html delete mode 100644 docs/html/testingzonedbc_2zone__policies_8h_source.html delete mode 100644 docs/html/testingzonedbc_2zone__registry_8cpp_source.html delete mode 100644 docs/html/testingzonedbc_2zone__registry_8h_source.html delete mode 100644 docs/html/testingzonedbx_2zone__infos_8cpp_source.html delete mode 100644 docs/html/testingzonedbx_2zone__infos_8h_source.html delete mode 100644 docs/html/testingzonedbx_2zone__policies_8cpp_source.html delete mode 100644 docs/html/testingzonedbx_2zone__policies_8h_source.html delete mode 100644 docs/html/testingzonedbx_2zone__registry_8cpp_source.html delete mode 100644 docs/html/testingzonedbx_2zone__registry_8h_source.html delete mode 100644 docs/html/time__offset__mutation_8h.html delete mode 100644 docs/html/time__offset__mutation_8h__dep__incl.map delete mode 100644 docs/html/time__offset__mutation_8h__dep__incl.md5 delete mode 100644 docs/html/time__offset__mutation_8h__dep__incl.png delete mode 100644 docs/html/time__offset__mutation_8h__incl.map delete mode 100644 docs/html/time__offset__mutation_8h__incl.md5 delete mode 100644 docs/html/time__offset__mutation_8h__incl.png delete mode 100644 docs/html/time__offset__mutation_8h_source.html delete mode 100644 docs/html/time__period__mutation_8h.html delete mode 100644 docs/html/time__period__mutation_8h__dep__incl.map delete mode 100644 docs/html/time__period__mutation_8h__dep__incl.md5 delete mode 100644 docs/html/time__period__mutation_8h__dep__incl.png delete mode 100644 docs/html/time__period__mutation_8h__incl.map delete mode 100644 docs/html/time__period__mutation_8h__incl.md5 delete mode 100644 docs/html/time__period__mutation_8h__incl.png delete mode 100644 docs/html/time__period__mutation_8h_source.html delete mode 100644 docs/html/zoned__date__time__mutation_8h.html delete mode 100644 docs/html/zoned__date__time__mutation_8h__dep__incl.map delete mode 100644 docs/html/zoned__date__time__mutation_8h__dep__incl.md5 delete mode 100644 docs/html/zoned__date__time__mutation_8h__dep__incl.png delete mode 100644 docs/html/zoned__date__time__mutation_8h__incl.map delete mode 100644 docs/html/zoned__date__time__mutation_8h__incl.md5 delete mode 100644 docs/html/zoned__date__time__mutation_8h__incl.png delete mode 100644 docs/html/zoned__date__time__mutation_8h_source.html delete mode 100644 docs/html/zonedb_2zone__infos_8cpp_source.html delete mode 100644 docs/html/zonedb_2zone__infos_8h_source.html delete mode 100644 docs/html/zonedb_2zone__policies_8cpp_source.html delete mode 100644 docs/html/zonedb_2zone__policies_8h_source.html delete mode 100644 docs/html/zonedb_2zone__registry_8cpp_source.html delete mode 100644 docs/html/zonedb_2zone__registry_8h_source.html delete mode 100644 docs/html/zonedbc_2zone__infos_8cpp_source.html delete mode 100644 docs/html/zonedbc_2zone__infos_8h_source.html delete mode 100644 docs/html/zonedbc_2zone__policies_8cpp_source.html delete mode 100644 docs/html/zonedbc_2zone__policies_8h_source.html delete mode 100644 docs/html/zonedbc_2zone__registry_8cpp_source.html delete mode 100644 docs/html/zonedbc_2zone__registry_8h_source.html delete mode 100644 docs/html/zonedbx_2zone__infos_8cpp_source.html delete mode 100644 docs/html/zonedbx_2zone__infos_8h_source.html delete mode 100644 docs/html/zonedbx_2zone__policies_8cpp_source.html delete mode 100644 docs/html/zonedbx_2zone__policies_8h_source.html delete mode 100644 docs/html/zonedbx_2zone__registry_8cpp_source.html delete mode 100644 docs/html/zonedbx_2zone__registry_8h_source.html diff --git a/docs/html/AceTime_8h_source.html b/docs/html/AceTime_8h_source.html deleted file mode 100644 index 070b11f6d..000000000 --- a/docs/html/AceTime_8h_source.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/AceTime.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
AceTime.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
17 #ifndef ACE_TIME_ACE_TIME_H
-
18 #define ACE_TIME_ACE_TIME_H
-
19 
-
20 // Blacklist boards using new Arduino API due to incompatibilities. This
-
21 // currently includes all megaAVR boards and SAMD21 boards using arduino::samd
-
22 // >= 1.8.10. Boards using arduino:samd <= 1.8.9 or SparkFun:samd are fine.
-
23 #if defined(ARDUINO_API_VERSION)
-
24 #error Platforms using ArduinoCore-API not supported
-
25 #endif
-
26 
-
27 #include "zoneinfo/compat.h"
-
28 #include "zoneinfo/infos.h"
-
29 //
-
30 #include "ace_time/common/common.h"
-
31 #include "ace_time/common/DateStrings.h"
-
32 #include "ace_time/common/DateConv.h"
-
33 #include "ace_time/EpochConverterJulian.h"
-
34 #include "ace_time/EpochConverterHinnant.h"
-
35 #include "ace_time/Epoch.h"
-
36 #include "ace_time/LocalDate.h"
-
37 #include "ace_time/local_date_mutation.h"
-
38 #include "ace_time/LocalTime.h"
-
39 #include "ace_time/LocalDateTime.h"
-
40 #include "ace_time/TimeOffset.h"
- -
42 #include "ace_time/OffsetDateTime.h"
- -
44 //
-
45 #include "ace_time/ZoneProcessor.h"
-
46 #include "ace_time/BasicZoneProcessor.h"
-
47 #include "ace_time/ExtendedZoneProcessor.h"
-
48 #include "ace_time/CompleteZoneProcessor.h"
-
49 #include "ace_time/ZoneProcessorCache.h"
-
50 #include "ace_time/ZoneRegistrar.h"
-
51 #include "ace_time/Zone.h"
-
52 #include "ace_time/ZoneManager.h"
-
53 #include "ace_time/ZoneSorterByName.h"
-
54 #include "ace_time/ZoneSorterByOffsetAndName.h"
-
55 #include "ace_time/TimeZoneData.h"
-
56 #include "ace_time/TimeZone.h"
-
57 #include "ace_time/ZonedDateTime.h"
- -
59 #include "ace_time/TimePeriod.h"
- -
61 //
-
62 #include "zonedb/zone_policies.h"
-
63 #include "zonedb/zone_infos.h"
-
64 #include "zonedb/zone_registry.h"
-
65 #include "zonedbx/zone_policies.h"
-
66 #include "zonedbx/zone_infos.h"
-
67 #include "zonedbx/zone_registry.h"
-
68 #include "zonedbc/zone_policies.h"
-
69 #include "zonedbc/zone_infos.h"
-
70 #include "zonedbc/zone_registry.h"
-
71 
-
72 // Version format: xxyyzz == "xx.yy.zz"
-
73 #define ACE_TIME_VERSION 30000
-
74 #define ACE_TIME_VERSION_STRING "3.0.0"
-
75 
-
76 #endif
-
Identifiers used by implementation code which need to be publically exported.
-
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
-
Methods that mutate an OffsetDateTime object.
-
Methods that mutate a TimeOffset object.
-
Methods that mutate a TimePeriod object.
-
Methods that mutate a ZonedDateTime object.
-
- - - - diff --git a/docs/html/BasicZoneProcessor_8h_source.html b/docs/html/BasicZoneProcessor_8h_source.html deleted file mode 100644 index b8f9182c0..000000000 --- a/docs/html/BasicZoneProcessor_8h_source.html +++ /dev/null @@ -1,809 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/BasicZoneProcessor.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
BasicZoneProcessor.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_BASIC_ZONE_PROCESSOR_H
-
7 #define ACE_TIME_BASIC_ZONE_PROCESSOR_H
-
8 
-
9 #include <stdint.h>
-
10 #include <AceCommon.h> // strncpy_T()
-
11 #include "../zoneinfo/infos.h"
-
12 #include "common/common.h" // kAbbrevSize
-
13 #include "common/logging.h"
-
14 #include "TimeOffset.h"
-
15 #include "LocalDate.h"
-
16 #include "OffsetDateTime.h"
-
17 #include "ZoneProcessor.h"
-
18 
-
19 #ifndef ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG
-
20 #define ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG 0
-
21 #endif
-
22 
-
23 class BasicZoneProcessorTest_priorYearOfRule;
-
24 class BasicZoneProcessorTest_compareRulesBeforeYear;
-
25 class BasicZoneProcessorTest_findLatestPriorRule;
-
26 class BasicZoneProcessorTest_findZoneEra;
-
27 class BasicZoneProcessorTest_init_primitives;
-
28 class BasicZoneProcessorTest_initForLocalDate;
-
29 class BasicZoneProcessorTest_setZoneKey;
-
30 class BasicZoneProcessorTest_calcRuleOffsetMinutes;
-
31 
-
32 class Print;
-
33 
-
34 namespace ace_time {
-
35 namespace basic {
-
36 
-
54 template <typename D>
- -
61  typename D::ZoneEraBroker era;
-
62 
-
72  typename D::ZoneRuleBroker rule;
-
73 
- -
76 
-
81  int16_t offsetMinutes;
-
82 
-
84  int16_t deltaMinutes;
-
85 
-
87  int16_t year;
-
88 
-
94  uint8_t month;
-
95 
- -
104 
-
106  void log() const {
-
107  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
108  logging::printf("(%d/%d)", year, month);
-
109  if (sizeof(acetime_t) == sizeof(int)) {
-
110  logging::printf("; stEps: %d", startEpochSeconds);
-
111  } else {
-
112  logging::printf("; stEps: %ld", startEpochSeconds);
-
113  }
-
114  logging::printf("; offMin: %d", offsetMinutes);
-
115  logging::printf("; abbrev: %s", abbrev);
-
116  if (! rule.isNull()) {
-
117  logging::printf("; r.fromYear: %d", rule.fromYear());
-
118  logging::printf("; r.toYear: %d", rule.toYear());
-
119  logging::printf("; r.inMonth: %d", rule.inMonth());
-
120  logging::printf("; r.onDayOfMonth: %d", rule.onDayOfMonth());
-
121  }
-
122  logging::printf("\n");
-
123  }
-
124  }
-
125 };
-
126 
-
128 inline int8_t compareYearMonth(int16_t aYear, uint8_t aMonth,
-
129  int16_t bYear, uint8_t bMonth) {
-
130  if (aYear < bYear) return -1;
-
131  if (aYear > bYear) return 1;
-
132  if (aMonth < bMonth) return -1;
-
133  if (aMonth > bMonth) return 1;
-
134  return 0;
-
135 }
-
136 
-
137 } // namespace basic
-
138 
-
190 template <typename D>
- -
192  public:
- -
195 
-
196  bool isLink() const override {
-
197  return ! mZoneInfoBroker.targetInfo().isNull();
-
198  }
-
199 
-
200  uint32_t getZoneId() const override {
-
201  return mZoneInfoBroker.zoneId();
-
202  }
-
203 
- -
233  const LocalDateTime& ldt) const override {
-
234  FindResult result;
-
235  bool success = initForLocalDate(ldt.localDate());
-
236  if (!success) return result;
-
237 
-
238  // 0) Use the UTC epochSeconds to get intial guess of offset.
-
239  acetime_t epochSeconds0 = ldt.toEpochSeconds();
-
240  auto result0 = findByEpochSeconds(epochSeconds0);
-
241  if (result0.type == FindResult::kTypeNotFound) return result;
-
242  auto offset0 = TimeOffset::forSeconds(
-
243  result0.reqStdOffsetSeconds + result0.reqDstOffsetSeconds);
-
244 
-
245  // 1) Use offset0 to get the next epochSeconds and offset.
-
246  auto odt = OffsetDateTime::forLocalDateTimeAndOffset(ldt, offset0);
-
247  acetime_t epochSeconds1 = odt.toEpochSeconds();
-
248  auto result1 = findByEpochSeconds(epochSeconds1);
-
249  if (result1.type == FindResult::kTypeNotFound) return result;
-
250  auto offset1 = TimeOffset::forSeconds(
-
251  result1.reqStdOffsetSeconds + result1.reqDstOffsetSeconds);
-
252 
-
253  // 2) Use offset1 to get the next epochSeconds and offset.
-
254  odt = OffsetDateTime::forLocalDateTimeAndOffset(ldt, offset1);
-
255  acetime_t epochSeconds2 = odt.toEpochSeconds();
-
256  auto result2 = findByEpochSeconds(epochSeconds2);
-
257  if (result2.type == FindResult::kTypeNotFound) return result;
-
258  auto offset2 = TimeOffset::forSeconds(
-
259  result2.reqStdOffsetSeconds + result2.reqDstOffsetSeconds);
-
260 
-
261  // If offset1 and offset2 are equal, then we have an equilibrium
-
262  // and odt(1) must equal odt(2).
-
263  if (offset1 == offset2) {
-
264  // I think this happens for kTypeExact or kTypeOverlap, but the current
-
265  // algorithm cannot distinguish between the two, so let's pretend that
-
266  // it is kTypeExact. Pick either of result1 or result2.
-
267  result = result1;
-
268  } else {
-
269  // If the offsets don't match, then I think we have a kTypeGap.
-
270  // Pick the stdOffset and dstOffset that generate the later epochSeconds
-
271  // (the earlier transition), but convert into the LocalDateTime of the
-
272  // earlier epochSeconds (the later transition).
-
273  if (epochSeconds1 > epochSeconds2) {
-
274  result = result1;
-
275  } else {
-
276  result = result2;
-
277  }
-
278  result.type = FindResult::kTypeGap;
-
279  }
-
280 
-
281  return result;
-
282  }
-
283 
-
284  FindResult findByEpochSeconds(acetime_t epochSeconds) const override {
-
285  FindResult result;
-
286  const Transition* transition = getTransition(epochSeconds);
-
287  if (!transition) return result;
-
288 
-
289  result.dstOffsetSeconds = transition->deltaMinutes * kSecPerMin;
-
290  result.stdOffsetSeconds = transition->offsetMinutes * kSecPerMin;
-
291  result.reqStdOffsetSeconds = result.stdOffsetSeconds;
-
292  result.reqDstOffsetSeconds = result.dstOffsetSeconds;
-
293  result.type = FindResult::kTypeExact;
-
294  result.abbrev = transition->abbrev;
-
295 
-
296  return result;
-
297  }
-
298 
-
299  void printNameTo(Print& printer) const override {
-
300  mZoneInfoBroker.printNameTo(printer);
-
301  }
-
302 
-
303  void printShortNameTo(Print& printer) const override {
-
304  mZoneInfoBroker.printShortNameTo(printer);
-
305  }
-
306 
-
307  void printTargetNameTo(Print& printer) const override {
-
308  if (isLink()) {
-
309  mZoneInfoBroker.targetInfo().printNameTo(printer);
-
310  }
-
311  }
-
312 
-
313  void setZoneKey(uintptr_t zoneKey) override {
-
314  if (! mZoneInfoStore) return;
-
315  if (mZoneInfoBroker.equals(zoneKey)) return;
-
316 
-
317  mZoneInfoBroker = mZoneInfoStore->createZoneInfoBroker(zoneKey);
- -
319  mNumTransitions = 0;
-
320  }
-
321 
-
322  bool equalsZoneKey(uintptr_t zoneKey) const override {
-
323  return mZoneInfoBroker.equals(zoneKey);
-
324  }
-
325 
-
327  void log() const {
-
328  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
329  logging::printf("BasicZoneProcessor:\n");
-
330  logging::printf(" mEpochYear: %d\n", mEpochYear);
-
331  logging::printf(" mYear: %d\n", mYear);
-
332  logging::printf(" mNumTransitions: %d\n", mNumTransitions);
-
333  for (int i = 0; i < mNumTransitions; i++) {
-
334  logging::printf(" mT[%d]=", i);
-
335  mTransitions[i].log();
-
336  }
-
337  }
-
338  }
-
339 
-
346  void setZoneInfoStore(const typename D::ZoneInfoStore* zoneInfoStore) {
-
347  mZoneInfoStore = zoneInfoStore;
-
348  }
-
349 
-
350  protected:
-
351 
- -
364  uint8_t type,
-
365  const typename D::ZoneInfoStore* zoneInfoStore /*nullable*/,
-
366  uintptr_t zoneKey
-
367  ) :
-
368  ZoneProcessor(type),
-
369  mZoneInfoStore(zoneInfoStore)
-
370  {
-
371  setZoneKey(zoneKey);
-
372  }
-
373 
-
374  private:
-
375  friend class ::BasicZoneProcessorTest_priorYearOfRule;
-
376  friend class ::BasicZoneProcessorTest_compareRulesBeforeYear;
-
377  friend class ::BasicZoneProcessorTest_findLatestPriorRule;
-
378  friend class ::BasicZoneProcessorTest_findZoneEra;
-
379  friend class ::BasicZoneProcessorTest_init_primitives;
-
380  friend class ::BasicZoneProcessorTest_initForLocalDate;
-
381  friend class ::BasicZoneProcessorTest_setZoneKey;
-
382  friend class ::BasicZoneProcessorTest_calcRuleOffsetMinutes;
-
383 
-
394  static const uint8_t kMaxCacheEntries = 5;
-
395 
-
401  static const acetime_t kMinEpochSeconds = INT32_MIN + 1;
-
402 
-
403  // Disable copy constructor and assignment operator.
- - -
406  delete;
-
407 
-
408  bool equals(const ZoneProcessor& other) const override {
-
409  return mZoneInfoBroker.equals(
-
410  ((const BasicZoneProcessorTemplate&) other).mZoneInfoBroker);
-
411  }
-
412 
-
414  const Transition* getTransition(acetime_t epochSeconds) const {
-
415  bool success = initForEpochSeconds(epochSeconds);
-
416  return (success) ? findMatch(epochSeconds) : nullptr;
-
417  }
-
418 
-
447  bool initForLocalDate(const LocalDate& ld) const {
-
448  int16_t year = ld.year();
-
449  if (ld.month() == 1 && ld.day() == 1) {
-
450  year--;
-
451  }
-
452  // Restrict to [1,9999], even though LocalDate should be able to handle
-
453  // [0,10000].
-
454  if (year <= LocalDate::kMinYear || LocalDate::kMaxYear <= year) {
-
455  return false;
-
456  }
-
457 
-
458  if (isFilled(year)) return true;
-
459  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
460  logging::printf("initForLocalDate(): %d (new year %d)\n",
-
461  ld.year(), year);
-
462  }
-
463 
-
464  mYear = year;
- -
466  mNumTransitions = 0; // clear cache
-
467 
-
468  typename D::ZoneEraBroker priorEra = addTransitionPriorToYear(year);
-
469  typename D::ZoneEraBroker currentEra =
-
470  addTransitionsForYear(year, priorEra);
-
471  addTransitionAfterYear(year, currentEra);
-
472  calcTransitions();
-
473  calcAbbreviations();
-
474 
-
475  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
476  log();
-
477  }
-
478 
-
479  return true;
-
480  }
-
481 
-
487  bool initForEpochSeconds(acetime_t epochSeconds) const {
-
488  LocalDate ld = LocalDate::forEpochSeconds(epochSeconds);
-
489  return initForLocalDate(ld);
-
490  }
-
491 
-
498  typename D::ZoneEraBroker addTransitionPriorToYear(int16_t year) const {
-
499  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
500  logging::printf("addTransitionPriorToYear(): %d\n", year);
-
501  }
-
502 
-
503  const typename D::ZoneEraBroker era =
-
504  findZoneEra(mZoneInfoBroker, year - 1);
-
505 
-
506  // If the prior ZoneEra has a ZonePolicy), then find the latest rule
-
507  // within the ZoneEra. Otherwise, add a Transition using a rule==nullptr.
-
508  typename D::ZoneRuleBroker latest =
-
509  findLatestPriorRule(era.zonePolicy(), year);
-
510  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
511  logging::printf("addTransitionsPriorToYear(): adding latest prior ");
-
512  if (latest.isNull()) {
-
513  logging::printf("ZR(null)\n");
-
514  } else {
-
515  logging::printf("ZR[%d,%d]\n", latest.fromYear(), latest.toYear());
-
516  }
-
517  }
-
518  addTransition(year - 1, 0 /*month*/, era, latest);
-
519 
-
520  return era;
-
521  }
-
522 
-
528  static typename D::ZoneRuleBroker findLatestPriorRule(
-
529  const typename D::ZonePolicyBroker& zonePolicy, int16_t year) {
-
530  typename D::ZoneRuleBroker latest;
-
531  if (zonePolicy.isNull()) return latest;
-
532 
-
533  uint8_t numRules = zonePolicy.numRules();
-
534  for (uint8_t i = 0; i < numRules; i++) {
-
535  const typename D::ZoneRuleBroker rule = zonePolicy.rule(i);
-
536  // Check if rule is effective prior to the given year
-
537  if (rule.fromYear() < year) {
-
538  if ((latest.isNull()) ||
-
539  compareRulesBeforeYear(year, rule, latest) > 0) {
-
540  latest = rule;
-
541  }
-
542  }
-
543  }
-
544 
-
545  return latest;
-
546  }
-
547 
-
549  static int8_t compareRulesBeforeYear(
-
550  int16_t year,
-
551  const typename D::ZoneRuleBroker& a,
-
552  const typename D::ZoneRuleBroker& b) {
-
553  return basic::compareYearMonth(
-
554  priorYearOfRule(year, a), a.inMonth(),
-
555  priorYearOfRule(year, b), b.inMonth());
-
556  }
-
557 
-
566  static int16_t priorYearOfRule(int16_t year,
-
567  const typename D::ZoneRuleBroker& rule) {
-
568  if (rule.toYear() < year) {
-
569  return rule.toYear();
-
570  }
-
571  return year - 1;
-
572  }
-
573 
-
578  typename D::ZoneEraBroker addTransitionsForYear(
-
579  int16_t year, const typename D::ZoneEraBroker& priorEra) const {
-
580  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
581  logging::printf("addTransitionsForYear(): %d\n", year);
-
582  }
-
583 
-
584  const typename D::ZoneEraBroker era = findZoneEra(mZoneInfoBroker, year);
-
585 
-
586  // If the ZonePolicy has no rules, then add a Transition which takes
-
587  // effect at the start time of the current year.
-
588  const typename D::ZonePolicyBroker zonePolicy = era.zonePolicy();
-
589  if (zonePolicy.isNull()) {
-
590  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
591  logging::printf("addTransitionsForYear(): adding ZE.untilY=%d\n",
-
592  era.untilYear());
-
593  }
-
594  addTransition(year, 0 /*month*/, era, typename D::ZoneRuleBroker());
-
595  return era;
-
596  }
-
597 
-
598  if (! era.equals(priorEra)) {
-
599  // The ZoneEra has changed, so we need to find the Rule in effect at
-
600  // the start of the current year of the current ZoneEra. This may be a
-
601  // rule far in the past, but shift the rule forward to {year, 1, 1}.
-
602  typename D::ZoneRuleBroker latestPrior =
-
603  findLatestPriorRule(era.zonePolicy(), year);
-
604  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
605  logging::printf(
-
606  "addTransitionsForYear(): adding latest prior ");
-
607  if (latestPrior.isNull()) {
-
608  logging::printf("ZR(null)\n");
-
609  } else {
-
610  logging::printf("ZR[%d,%d]\n",
-
611  latestPrior.fromYear(), latestPrior.toYear());
-
612  }
-
613  }
-
614  addTransition(year, 1 /*month*/, era, latestPrior);
-
615  }
-
616 
-
617  // Find all directly matching transitions (i.e. the [from, to] overlap
-
618  // with the current year) and add them to mTransitions, in sorted order
-
619  // according to the ZoneRule::inMonth field.
-
620  uint8_t numRules = zonePolicy.numRules();
-
621  for (uint8_t i = 0; i < numRules; i++) {
-
622  const typename D::ZoneRuleBroker rule = zonePolicy.rule(i);
-
623  if ((rule.fromYear() <= year) && (year <= rule.toYear())) {
-
624  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
625  logging::printf(
-
626  "addTransitionsForYear(): adding rule ");
-
627  if (rule.isNull()) {
-
628  logging::printf("ZR(null)\n");
-
629  } else {
-
630  logging::printf("ZR[%d,%d]\n", rule.fromYear(), rule.toYear());
-
631  }
-
632  }
-
633  addTransition(year, 0 /*month*/, era, rule);
-
634  }
-
635  }
-
636 
-
637  return era;
-
638  }
-
639 
-
641  void addTransitionAfterYear(
-
642  int16_t year, const typename D::ZoneEraBroker& currentEra) const {
-
643  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
644  logging::printf("addTransitionAfterYear(): %d\n", year);
-
645  }
-
646 
-
647  const typename D::ZoneEraBroker eraAfter =
-
648  findZoneEra(mZoneInfoBroker, year + 1);
-
649 
-
650  // If the current era is the same as the following year, then we'll just
-
651  // assume that the latest ZoneRule carries over to Jan 1st of the next
-
652  // year. tzcompiler.py guarantees no ZoneRule occurs on Jan 1st.
-
653  if (currentEra.equals(eraAfter)) {
-
654  return;
-
655  }
-
656 
-
657  // If the ZoneEra did change, find the latest transition prior to
-
658  // {year + 1, 1, 1}, then shift that Transition to Jan 1st of the
-
659  // following year.
-
660  typename D::ZoneRuleBroker latest =
-
661  findLatestPriorRule(eraAfter.zonePolicy(), year + 1);
-
662  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
663  logging::printf(
-
664  "addTransitionsAfterYear(): adding latest prior ");
-
665  if (latest.isNull()) {
-
666  logging::printf("ZR(null)\n");
-
667  } else {
-
668  logging::printf("ZR[%d,%d]\n", latest.fromYear(), latest.toYear());
-
669  }
-
670  }
-
671  addTransition(year + 1, 1 /*month*/, eraAfter, latest);
-
672  }
-
673 
-
697  void addTransition(int16_t year, uint8_t month,
-
698  const typename D::ZoneEraBroker& era,
-
699  const typename D::ZoneRuleBroker& rule) const {
-
700 
-
701  // If a zone needs more transitions than kMaxCacheEntries, the check below
-
702  // will cause the DST transition information to be inaccurate, and it is
-
703  // highly likely that this situation would be caught in the
-
704  // AceTimeValidation tests. Since these integration tests pass, I feel
-
705  // confident that those zones which need more than kMaxCacheEntries are
-
706  // already filtered out by tzcompiler.py.
-
707  //
-
708  // Ideally, the tzcompiler.py script would explicitly remove those zones
-
709  // which need more than kMaxCacheEntries Transitions. But this would
-
710  // require a Python version of the BasicZoneProcessor, and unfortunately,
-
711  // zone_processor.py implements only the ExtendedZoneProcessor algorithm
-
712  // An early version of zone_processor.py may have implemented something
-
713  // close to BasicZoneProcessor, and it may be available in the git
-
714  // history. But it seems like too much work right now to try to dig that
-
715  // out, just to implement the explicit check for kMaxCacheEntries. It
-
716  // would mean maintaining another version of zone_processor.py.
-
717  if (mNumTransitions >= kMaxCacheEntries) return;
-
718 
-
719  // Insert new element at the end of the list.
-
720  // NOTE: It is probably tempting to pass a pointer (or reference) to
-
721  // mTransitions[mNumTransitions] into createTransition(), instead of
-
722  // returning it by value. However, MemoryBenchmark shows that directly
-
723  // updating the Transition through the pointer increases flash memory
-
724  // consumption by ~110 bytes on AVR processors. It seems that creating a
-
725  // local copy of Transition on the stack, filling it, and then copying it
-
726  // by value takes fewer instructions.
-
727  mTransitions[mNumTransitions] = createTransition(year, month, era, rule);
-
728  mNumTransitions++;
-
729 
-
730  // perform an insertion sort based on ZoneRule.inMonth()
-
731  for (uint8_t i = mNumTransitions - 1; i > 0; i--) {
-
732  Transition& left = mTransitions[i - 1];
-
733  Transition& right = mTransitions[i];
-
734  // assume only 1 rule per month
-
735  if (basic::compareYearMonth(left.year, left.month,
-
736  right.year, right.month) > 0) {
-
737  Transition tmp = left;
-
738  left = right;
-
739  right = tmp;
-
740  }
-
741  }
-
742  }
-
743 
-
749  static Transition createTransition(
-
750  int16_t year,
-
751  uint8_t month,
-
752  const typename D::ZoneEraBroker& era,
-
753  const typename D::ZoneRuleBroker& rule) {
-
754 
-
755  Transition transition;
-
756  int16_t deltaMinutes;
-
757  uint8_t mon;
-
758  if (rule.isNull()) {
-
759  mon = 1; // RULES is either '-' or 'hh:mm' so takes effect in Jan
-
760  deltaMinutes = era.deltaSeconds() / kSecPerMin;
-
761  transition.abbrev[0] = '\0';
-
762  } else {
-
763  mon = rule.inMonth();
-
764  deltaMinutes = rule.deltaSeconds() / kSecPerMin;
-
765  ace_common::strncpy_T(
-
766  transition.abbrev, rule.letter(), kAbbrevSize - 1);
-
767  transition.abbrev[kAbbrevSize - 1] = '\0';
-
768  }
-
769  // Clobber the month if specified.
-
770  if (month != 0) {
-
771  mon = month;
-
772  }
-
773  int16_t offsetMinutes = era.offsetSeconds() / kSecPerMin;
-
774 
-
775  transition.era = era;
-
776  transition.rule = rule;
-
777  transition.startEpochSeconds = 0;
-
778  transition.offsetMinutes = offsetMinutes;
-
779  transition.deltaMinutes = deltaMinutes;
-
780  transition.year = year;
-
781  transition.month = mon;
-
782  return transition;
-
783  }
-
784 
-
789  static typename D::ZoneEraBroker findZoneEra(
-
790  const typename D::ZoneInfoBroker& info,
-
791  int16_t year) {
-
792  for (uint8_t i = 0; i < info.numEras(); i++) {
-
793  const typename D::ZoneEraBroker era = info.era(i);
-
794  if (year < era.untilYear()) return era;
-
795  }
-
796  // Return the last ZoneEra if we run off the end.
-
797  return info.era(info.numEras() - 1);
-
798  }
-
799 
-
807  void calcTransitions() const {
-
808  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
809  logging::printf("calcTransitions():\n");
-
810  }
-
811 
-
812  // Set the initial startEpochSeconds to be -Infinity
-
813  Transition* prevTransition = &mTransitions[0];
-
814  prevTransition->startEpochSeconds = kMinEpochSeconds;
-
815 
-
816  for (uint8_t i = 1; i < mNumTransitions; i++) {
-
817  Transition& transition = mTransitions[i];
-
818  const int16_t year = transition.year;
-
819 
-
820  if (transition.rule.isNull()) {
-
821  // If the transition is simple (has no named rule), then the
-
822  // ZoneEra applies for the entire year (since BasicZoneProcessor
-
823  // supports only whole year in the UNTIL field). The whole year UNTIL
-
824  // field has an implied 'w' suffix on 00:00, we don't need to call
-
825  // calcRuleOffsetMinutes() with a 'w', we can just use the previous
-
826  // transition's offset to calculate the startDateTime of this
-
827  // transition.
-
828  //
-
829  // Also, when transition.rule == nullptr, the mNumTransitions should
-
830  // be 1, since only a single transition is added by
-
831  // addTransitionsForYear().
-
832  const int16_t prevTotalOffsetMinutes = prevTransition->offsetMinutes
-
833  + prevTransition->deltaMinutes;
-
834  OffsetDateTime startDateTime = OffsetDateTime::forComponents(
-
835  year, 1, 1, 0, 0, 0,
-
836  TimeOffset::forMinutes(prevTotalOffsetMinutes));
-
837  transition.startEpochSeconds = startDateTime.toEpochSeconds();
-
838  } else {
-
839  // In this case, the transition points to a named ZonePolicy, which
-
840  // means that there could be multiple ZoneRules associated with the
-
841  // given year. For each transition, determine the startEpochSeconds,
-
842  // and the effective offset time.
-
843 
-
844  // Determine the start date of the rule.
-
845  const MonthDay monthDay = calcStartDayOfMonth(
-
846  year, transition.month, transition.rule.onDayOfWeek(),
-
847  transition.rule.onDayOfMonth());
-
848 
-
849  // Determine the offset of the 'atTimeSuffix'. The 'w' suffix
-
850  // requires the offset of the previous transition.
-
851  const int16_t prevTotalOffsetMinutes = calcRuleOffsetMinutes(
-
852  prevTransition->offsetMinutes + prevTransition->deltaMinutes,
-
853  transition.era.offsetSeconds() / kSecPerMin,
-
854  transition.rule.atTimeSuffix());
-
855 
-
856  // startDateTime
-
857  const uint16_t minutes = transition.rule.atTimeSeconds() / 60;
-
858  const uint8_t atHour = minutes / 60;
-
859  const uint8_t atMinute = minutes % 60;
-
860  OffsetDateTime startDateTime = OffsetDateTime::forComponents(
-
861  year, monthDay.month, monthDay.day,
-
862  atHour, atMinute, 0 /*second*/,
-
863  TimeOffset::forMinutes(prevTotalOffsetMinutes));
-
864  transition.startEpochSeconds = startDateTime.toEpochSeconds();
-
865  }
-
866 
-
867  prevTransition = &transition;
-
868  }
-
869  }
-
870 
-
877  static int16_t calcRuleOffsetMinutes(int16_t prevTotalOffsetMinutes,
-
878  int16_t currentBaseOffsetMinutes, uint8_t atSuffix) {
-
879  if (atSuffix == basic::Info::ZoneContext::kSuffixW) {
-
880  return prevTotalOffsetMinutes;
-
881  } else if (atSuffix == basic::Info::ZoneContext::kSuffixS) {
-
882  return currentBaseOffsetMinutes;
-
883  } else { // 'u', 'g' or 'z'
-
884  return 0;
-
885  }
-
886  }
-
887 
-
889  void calcAbbreviations() const {
-
890  if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) {
-
891  logging::printf("calcAbbreviations():\n");
-
892  }
-
893 
-
894  for (uint8_t i = 0; i < mNumTransitions; i++) {
-
895  Transition* transition = &mTransitions[i];
-
896  createAbbreviation(
-
897  transition->abbrev,
-
898  kAbbrevSize,
-
899  transition->era.format(),
-
900  transition->offsetMinutes * kSecPerMin,
-
901  transition->deltaMinutes * kSecPerMin,
-
902  transition->abbrev);
-
903  }
-
904  }
-
905 
-
907  const Transition* findMatch(acetime_t epochSeconds) const {
-
908  const Transition* closestMatch = nullptr;
-
909  for (uint8_t i = 0; i < mNumTransitions; i++) {
-
910  const Transition* m = &mTransitions[i];
-
911  if (closestMatch == nullptr || m->startEpochSeconds <= epochSeconds) {
-
912  closestMatch = m;
-
913  }
-
914  }
-
915  return closestMatch;
-
916  }
-
917 
-
918  private:
-
919  static const int32_t kSecPerMin = 60;
-
920 
-
921  const typename D::ZoneInfoStore* mZoneInfoStore; // nullable
-
922  typename D::ZoneInfoBroker mZoneInfoBroker;
-
923 
-
924  mutable uint8_t mNumTransitions = 0;
-
925  mutable Transition mTransitions[kMaxCacheEntries];
-
926 };
-
927 
-
932 class BasicZoneProcessor: public BasicZoneProcessorTemplate<basic::Info> {
-
933 
-
934  public:
-
936  static const uint8_t kTypeBasic = 3;
-
937 
-
938  explicit BasicZoneProcessor(const basic::Info::ZoneInfo* zoneInfo = nullptr)
-
939  : BasicZoneProcessorTemplate<basic::Info>(
-
940  kTypeBasic, &mZoneInfoStore, (uintptr_t) zoneInfo)
-
941  {}
-
942 
-
943  private:
-
944  basic::Info::ZoneInfoStore mZoneInfoStore;
-
945 };
-
946 
-
947 } // namespace ace_time
-
948 
-
949 #endif
-
An implementation of ZoneProcessor that supports a subset of the zones containing in the TZ Database.
-
FindResult findByEpochSeconds(acetime_t epochSeconds) const override
Return the search results at given epochSeconds.
-
void log() const
Used only for debugging.
-
void setZoneInfoStore(const typename D::ZoneInfoStore *zoneInfoStore)
Set the zone info store at runtime.
-
basic::TransitionTemplate< D > Transition
Exposed only for testing purposes.
-
bool equalsZoneKey(uintptr_t zoneKey) const override
Return true if ZoneProcessor is associated with the given opaque zoneKey.
-
FindResult findByLocalDateTime(const LocalDateTime &ldt) const override
Return the search results at given LocalDateTime.
-
uint32_t getZoneId() const override
Return the unique stable zoneId.
-
void printShortNameTo(Print &printer) const override
Print a short human-readable identifier (e.g.
-
void printTargetNameTo(Print &printer) const override
Print the full identifier (e.g.
-
void printNameTo(Print &printer) const override
Print a human-readable identifier (e.g.
-
BasicZoneProcessorTemplate(uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)
Constructor.
-
void setZoneKey(uintptr_t zoneKey) override
Set the opaque zoneKey of this object to a new value, reseting any internally cached information.
-
bool isLink() const override
Return true if timezone is a Link entry pointing to a Zone entry.
-
A specific implementation of BasicZoneProcessorTemplate that uses ZoneXxxBrokers which read from zone...
-
static const uint8_t kTypeBasic
Unique TimeZone type identifier for BasicZoneProcessor.
-
static int16_t currentEpochYear()
Get the current epoch year.
Definition: Epoch.h:27
-
Result of a search for transition at a specific epochSeconds or a specific LocalDateTime.
Definition: ZoneProcessor.h:23
-
int32_t stdOffsetSeconds
STD offset of the resulting OffsetDateTime.
Definition: ZoneProcessor.h:79
-
int32_t dstOffsetSeconds
DST offset of the resulting OffsetDateTime.
Definition: ZoneProcessor.h:82
-
int32_t reqDstOffsetSeconds
DST offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(),...
-
const char * abbrev
Pointer to the abbreviation stored in the transient Transition::abbrev variable.
-
int32_t reqStdOffsetSeconds
STD offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(),...
Definition: ZoneProcessor.h:95
-
uint8_t type
Result of the findByEpochSeconds() or findByLocalDateTime() search methods.
Definition: ZoneProcessor.h:65
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
const LocalDate & localDate() const
Return the LocalDate.
-
acetime_t toEpochSeconds() const
Return seconds since the current AceTime epoch defined by Epoch::currentEpochYear().
-
static const int16_t kMaxYear
The largest year that is expected to be handled by LocalDate.
Definition: LocalDate.h:78
-
static const int16_t kMinYear
The smallest year that is expected to be handled by LocalDate.
Definition: LocalDate.h:69
-
static LocalDate forEpochSeconds(acetime_t epochSeconds)
Factory method using the number of seconds since the current epoch year given by currentEpochYear().
Definition: LocalDate.h:205
-
static const int16_t kInvalidYear
Sentinel year which indicates one or more of the following conditions:
Definition: LocalDate.h:58
-
static OffsetDateTime forLocalDateTimeAndOffset(const LocalDateTime &localDateTime, TimeOffset timeOffset)
Factory method from LocalDateTime and TimeOffset.
-
static OffsetDateTime forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, TimeOffset timeOffset, uint8_t fold=0)
Factory method using separated date, time, and UTC offset fields.
-
static TimeOffset forSeconds(int32_t seconds)
Create TimeOffset from seconds from 00:00.
Definition: TimeOffset.h:96
-
static TimeOffset forMinutes(int16_t minutes)
Create TimeOffset from minutes from 00:00.
Definition: TimeOffset.h:91
-
A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo.
Definition: ZoneInfoLow.h:807
-
Base interface for ZoneProcessor classes.
-
int16_t mYear
Year that was used to calculate the transitions in the current cache.
-
bool isFilled(int16_t year) const
Check if the Transition cache is filled for the given year and current epochYear.
-
int16_t mEpochYear
Epoch year that was used to calculate the transitions in the current cache.
-
Identifiers used by implementation code which need to be publically exported.
-
const uint8_t kAbbrevSize
Size of the c-string buffer needed to hold a time zone abbreviation.
Definition: common.h:44
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
static const uint8_t kSuffixW
Represents 'w' or wall time.
Definition: ZoneInfoLow.h:88
-
static const uint8_t kSuffixS
Represents 's' or standard time.
Definition: ZoneInfoLow.h:91
-
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoLow.h:324
-
Data structure that defines the start of a specific UTC offset as described by the matching ZoneEra a...
-
acetime_t startEpochSeconds
The calculated transition time of the given rule.
-
uint8_t month
Month of the transition.
-
D::ZoneRuleBroker rule
The Zone transition rule that matched for the the given year.
-
int16_t deltaMinutes
The deltaMinutes from "standard time" at the start of transition.
-
void log() const
Used only for debugging.
-
char abbrev[kAbbrevSize]
The calculated effective time zone abbreviation, e.g.
-
int16_t offsetMinutes
The standard time offset minutes at the start of transition, not including DST offset.
-
int16_t year
Year of the Transition.
-
D::ZoneEraBroker era
The ZoneEra that matched the given year.
-
- - - - diff --git a/docs/html/BrokerCommon_8cpp_source.html b/docs/html/BrokerCommon_8cpp_source.html deleted file mode 100644 index 457fe8d30..000000000 --- a/docs/html/BrokerCommon_8cpp_source.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/BrokerCommon.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
BrokerCommon.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2021 Brian T. Park
-
4  */
-
5 
-
6 #include <stddef.h> // size_t
-
7 #include <string.h> // strlen()
-
8 #include "compat.h" // strlen_P()
-
9 #include "BrokerCommon.h"
-
10 
-
11 namespace ace_time {
-
12 namespace zoneinfo {
-
13 
-
14 const char* findShortName(const char* name) {
-
15  size_t len = strlen(name);
-
16  const char* begin = name + len;
-
17  while (len--) {
-
18  begin--;
-
19  char c = *begin;
-
20  if (c == '/' || (0 < c && c < 32)) {
-
21  begin++;
-
22  break;
-
23  }
-
24  }
-
25  return begin;
-
26 }
-
27 
-
28 const __FlashStringHelper* findShortName(const __FlashStringHelper* fname) {
-
29  const char* name = (const char*) fname;
-
30  size_t len = strlen_P(name);
-
31  const char* begin = name + len;
-
32  while (len--) {
-
33  begin--;
-
34  char c = pgm_read_byte(begin);
-
35  if (c == '/' || (0 < c && c < 32)) {
-
36  begin++;
-
37  break;
-
38  }
-
39  }
-
40  return (const __FlashStringHelper*) begin;
-
41 }
-
42 
-
43 } // zoneinfo
-
44 } // ace_time
-
Helper functions are used in both Basic brokers and Extended brokers.
-
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
-
- - - - diff --git a/docs/html/BrokerCommon_8h.html b/docs/html/BrokerCommon_8h.html deleted file mode 100644 index 89aee180f..000000000 --- a/docs/html/BrokerCommon_8h.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/BrokerCommon.h File Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
BrokerCommon.h File Reference
-
-
- -

Helper functions are used in both Basic brokers and Extended brokers. -More...

-
#include <stdint.h>
-
-Include dependency graph for BrokerCommon.h:
-
-
- - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - -

-Functions

const char * ace_time::zoneinfo::findShortName (const char *name)
 Return a pointer to the short name of a full ZoneName. More...
 
-const __FlashStringHelper * ace_time::zoneinfo::findShortName (const __FlashStringHelper *fname)
 Same as fineShortName(const char*) but for flash strings (const __FlashStringHelper*).
 
- - - - -

-Variables

const int ace_time::zoneinfo::kAbbrevSize = 6 + 1
 Size of the c-string buffer needed to hold a time zone abbreviation. More...
 
-

Detailed Description

-

Helper functions are used in both Basic brokers and Extended brokers.

- -

Definition in file BrokerCommon.h.

-

Function Documentation

- -

◆ findShortName()

- -
-
- - - - - - - - -
const char * ace_time::zoneinfo::findShortName (const char * name)
-
- -

Return a pointer to the short name of a full ZoneName.

-

The short name is the last component, which usually begins after the last separator '/'. If the string has been compressed to be compatible with ace_common::KString, then the last component begins just after the last keyword reference (i.e. a non-printable character < ASCII 32). If the fully qualified name has no '/' or a keyword reference, then the short name is the entire string. The last component of the full ZoneName is never compressed, so we do not need to decompress it using ace_common::KString.

-

For example:

-
    -
  • "America/Los_Angeles" returns a pointer to "Los_Angeles",
  • -
  • "\x01Denver" returns a pointer to "Denver", and
  • -
  • "UTC" returns "UTC".
  • -
- -

Definition at line 14 of file BrokerCommon.cpp.

- -
-
-

Variable Documentation

- -

◆ kAbbrevSize

- -
-
- - - - -
const int ace_time::zoneinfo::kAbbrevSize = 6 + 1
-
- -

Size of the c-string buffer needed to hold a time zone abbreviation.

-

Longest abbreviation currently seems to be 5 characters (https://www.timeanddate.com/time/zones/) but the TZ database spec says that abbreviations are 3 to 6 characters (https://data.iana.org/time-zones/theory.html#abbreviations), so use 6 as the maximum. Plus one for the terminating NUL character.

- -

Definition at line 30 of file BrokerCommon.h.

- -
-
-
- - - - diff --git a/docs/html/BrokerCommon_8h__dep__incl.map b/docs/html/BrokerCommon_8h__dep__incl.map deleted file mode 100644 index e665aa958..000000000 --- a/docs/html/BrokerCommon_8h__dep__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/html/BrokerCommon_8h__dep__incl.md5 b/docs/html/BrokerCommon_8h__dep__incl.md5 deleted file mode 100644 index 1f76eca91..000000000 --- a/docs/html/BrokerCommon_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -4ae01b1edaa43f1b0bbfecc302ed1145 \ No newline at end of file diff --git a/docs/html/BrokerCommon_8h__dep__incl.png b/docs/html/BrokerCommon_8h__dep__incl.png deleted file mode 100644 index e5487de141a0d1ff6f53958fc80bf9ed3d1984a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414972 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

`h8d+J0Dt&b`zH@ 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%0As{YaN=upVjJ$R9EhhNJi8hFRo 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ð?oV=b6A?w~ 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 diff --git a/docs/html/BrokerCommon_8h__incl.map b/docs/html/BrokerCommon_8h__incl.map deleted file mode 100644 index 3c8e9f978..000000000 --- a/docs/html/BrokerCommon_8h__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/BrokerCommon_8h__incl.md5 b/docs/html/BrokerCommon_8h__incl.md5 deleted file mode 100644 index 67d01fa1d..000000000 --- a/docs/html/BrokerCommon_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -a92014eefd1a26824a05fbb27dd0081c \ No newline at end of file diff --git a/docs/html/BrokerCommon_8h__incl.png b/docs/html/BrokerCommon_8h__incl.png deleted file mode 100644 index 0f2780b2c1841a2cc4dbae2612b66dfa03ae6b0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5074 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 P(m~ql25KKwY{UKo5+%1l diff --git a/docs/html/BrokerCommon_8h_source.html b/docs/html/BrokerCommon_8h_source.html deleted file mode 100644 index 595c08577..000000000 --- a/docs/html/BrokerCommon_8h_source.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/BrokerCommon.h Source File - - - - - - - - - -

-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
BrokerCommon.h
-
-
-Go to the documentation of this file.
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_BROKER_COMMON_H
-
7 #define ACE_TIME_BROKER_COMMON_H
-
8 
-
15 #include <stdint.h>
-
16 
-
17 class __FlashStringHelper;
-
18 
-
19 namespace ace_time {
-
20 namespace zoneinfo {
-
21 
-
30 const int kAbbrevSize = 6 + 1;
-
31 
-
48 const char* findShortName(const char* name);
-
49 
-
54 const __FlashStringHelper* findShortName(const __FlashStringHelper* fname);
-
55 
-
56 } // zoneinfo
-
57 } // ace_time
-
58 
-
59 #endif
-
const uint8_t kAbbrevSize
Size of the c-string buffer needed to hold a time zone abbreviation.
Definition: common.h:44
-
- - - - diff --git a/docs/html/CompleteZoneProcessor_8h_source.html b/docs/html/CompleteZoneProcessor_8h_source.html deleted file mode 100644 index c07d3cc53..000000000 --- a/docs/html/CompleteZoneProcessor_8h_source.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/CompleteZoneProcessor.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
CompleteZoneProcessor.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2023 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_COMPLETE_ZONE_PROCESSOR_H
-
7 #define ACE_TIME_COMPLETE_ZONE_PROCESSOR_H
-
8 
-
9 #include <stdint.h> // uintptr_t
-
10 #include "ExtendedZoneProcessor.h"
-
11 
-
12 namespace ace_time {
-
13 
-
19 class CompleteZoneProcessor: public
-
20  ExtendedZoneProcessorTemplate<complete::Info> {
-
21 
-
22  public:
-
24  static const uint8_t kTypeComplete = 5;
-
25 
-
26  explicit CompleteZoneProcessor(
-
27  const complete::Info::ZoneInfo* zoneInfo = nullptr)
-
28  : ExtendedZoneProcessorTemplate<complete::Info>(
-
29  kTypeComplete, &mZoneInfoStore, (uintptr_t) zoneInfo)
-
30  {}
-
31 
-
32  private:
-
33  complete::Info::ZoneInfoStore mZoneInfoStore;
-
34 };
-
35 
-
36 }
-
37 
-
38 #endif
-
A specific implementation of ExtendedZoneProcessorTemplate that uses the complete::ZoneXxxBrokers cla...
-
static const uint8_t kTypeComplete
Unique TimeZone type identifier for CompleteZoneProcessor.
-
An implementation of ZoneProcessor that supports for all zones defined by the TZ Database.
-
A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo.
Definition: ZoneInfoHigh.h:745
-
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoHigh.h:303
-
- - - - diff --git a/docs/html/DateConv_8cpp_source.html b/docs/html/DateConv_8cpp_source.html deleted file mode 100644 index d83265920..000000000 --- a/docs/html/DateConv_8cpp_source.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common/DateConv.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
DateConv.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2024 Brian T. Park
-
4  */
-
5 
-
6 #include "DateConv.h"
-
7 
-
8 namespace ace_time {
-
9 
-
10 void secondsToHms(uint32_t secs, uint16_t* hh, uint16_t* mm, uint16_t* ss) {
-
11  *ss = secs % 60;
-
12  uint32_t minutes = secs / 60;
-
13  *mm = uint16_t(minutes % 60);
-
14  *hh = uint16_t(minutes / 60);
-
15 }
-
16 
-
17 }
-
- - - - diff --git a/docs/html/DateConv_8h_source.html b/docs/html/DateConv_8h_source.html deleted file mode 100644 index 11da8d475..000000000 --- a/docs/html/DateConv_8h_source.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common/DateConv.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
DateConv.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2024 Brian T. Park
-
4  *
-
5  * Low-level date conversion routines.
-
6  */
-
7 
-
8 #ifndef ACE_TIME_COMMON_DATE_CONV_H
-
9 #define ACE_TIME_COMMON_DATE_CONV_H
-
10 
-
11 #include <stdint.h>
-
12 
-
13 namespace ace_time {
-
14 
-
16 void secondsToHms(uint32_t secs, uint16_t* hh, uint16_t* mm, uint16_t* ss);
-
17 
-
18 }
-
19 
-
20 #endif
-
- - - - diff --git a/docs/html/DateStrings_8cpp_source.html b/docs/html/DateStrings_8cpp_source.html deleted file mode 100644 index 4c059f12c..000000000 --- a/docs/html/DateStrings_8cpp_source.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common/DateStrings.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
DateStrings.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #include "DateStrings.h"
-
7 
-
8 namespace ace_time {
-
9 
-
10 static const char kError[] PROGMEM = "Error";
-
11 static const char kJanuary[] PROGMEM = "January";
-
12 static const char kFebruary[] PROGMEM = "February";
-
13 static const char kMarch[] PROGMEM = "March";
-
14 static const char kApril[] PROGMEM = "April";
-
15 static const char kMay[] PROGMEM = "May";
-
16 static const char kJune[] PROGMEM = "June";
-
17 static const char kJuly[] PROGMEM = "July";
-
18 static const char kAugust[] PROGMEM = "August";
-
19 static const char kSeptember[] PROGMEM = "September";
-
20 static const char kOctober[] PROGMEM = "October";
-
21 static const char kNovember[] PROGMEM = "November";
-
22 static const char kDecember[] PROGMEM = "December";
-
23 
-
24 // Place pointers into PROGMEM as well, saving 26 bytes of RAM.
-
25 // Use getStringAt() to access.
-
26 const char* const DateStrings::kMonthNames[] PROGMEM = {
-
27  kError, kJanuary, kFebruary, kMarch, kApril, kMay, kJune,
-
28  kJuly, kAugust, kSeptember, kOctober, kNovember, kDecember
-
29 };
-
30 
-
31 const uint8_t DateStrings::kNumMonthNames =
-
32  sizeof(kMonthNames) / sizeof(const char *);
-
33 
-
34 static const char kMonday[] PROGMEM = "Monday";
-
35 static const char kTuesday[] PROGMEM = "Tuesday";
-
36 static const char kWednesday[] PROGMEM = "Wednesday";
-
37 static const char kThursday[] PROGMEM = "Thursday";
-
38 static const char kFriday[] PROGMEM = "Friday";
-
39 static const char kSaturday[] PROGMEM = "Saturday";
-
40 static const char kSunday[] PROGMEM = "Sunday";
-
41 
-
42 // Place pointers into PROGMEM as well, saving 16 bytes of RAM.
-
43 // Use getStringAt() to access.
-
44 // ISO8601 says Monday=1, Sunday=7.
-
45 const char* const DateStrings::kDayOfWeekNames[] PROGMEM = {
-
46  kError, kMonday, kTuesday, kWednesday, kThursday, kFriday, kSaturday, kSunday
-
47 };
-
48 
-
49 const uint8_t DateStrings::kNumDayOfWeekNames =
-
50  sizeof(kDayOfWeekNames) / sizeof(const char *);
-
51 
-
52 }
-
- - - - diff --git a/docs/html/DateStrings_8h_source.html b/docs/html/DateStrings_8h_source.html deleted file mode 100644 index 0d3f476e7..000000000 --- a/docs/html/DateStrings_8h_source.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common/DateStrings.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
DateStrings.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_COMMON_DATE_STRINGS_H
-
7 #define ACE_TIME_COMMON_DATE_STRINGS_H
-
8 
-
9 #include <stdint.h>
-
10 #include <string.h>
-
11 #include "../../zoneinfo/compat.h" // strncpy_P()
-
12 
-
13 namespace ace_time {
-
14 
-
26 class DateStrings {
-
27  public:
-
31  static const uint8_t kBufferSize = 10;
-
32 
-
37  static const uint8_t kShortNameLength = 3;
-
38 
-
40  const char* monthLongString(uint8_t month) {
-
41  uint8_t index = (month < kNumMonthNames) ? month : 0;
-
42  strncpy_P(mBuffer, getStringAt(kMonthNames, index), kBufferSize);
-
43  mBuffer[kBufferSize - 1] = '\0';
-
44  return mBuffer;
-
45  }
-
46 
-
48  const char* monthShortString(uint8_t month) {
-
49  uint8_t index = (month < kNumMonthNames) ? month : 0;
-
50  strncpy_P(mBuffer, getStringAt(kMonthNames, index), kShortNameLength);
-
51  mBuffer[kShortNameLength] = '\0';
-
52  return mBuffer;
-
53  }
-
54 
-
56  const char* dayOfWeekLongString(uint8_t dayOfWeek) {
-
57  uint8_t index = (dayOfWeek < kNumDayOfWeekNames) ? dayOfWeek : 0;
-
58  strncpy_P(mBuffer, getStringAt(kDayOfWeekNames, index), kBufferSize);
-
59  mBuffer[kBufferSize - 1] = '\0';
-
60  return mBuffer;
-
61  }
-
62 
-
64  const char* dayOfWeekShortString(uint8_t dayOfWeek) {
-
65  uint8_t index = (dayOfWeek < kNumDayOfWeekNames) ? dayOfWeek : 0;
-
66  strncpy_P(mBuffer, getStringAt(kDayOfWeekNames, index), kShortNameLength);
-
67  mBuffer[kShortNameLength] = '\0';
-
68  return mBuffer;
-
69  }
-
70 
-
71  private:
-
72  static const char* getStringAt(const char* const* strings, uint8_t i) {
-
73  return (const char*) pgm_read_ptr(&strings[i]);
-
74  }
-
75 
-
76  static const char * const kDayOfWeekNames[];
-
77  static const char * const kMonthNames[];
-
78  static const uint8_t kNumDayOfWeekNames;
-
79  static const uint8_t kNumMonthNames;
-
80 
-
81  char mBuffer[kBufferSize];
-
82 };
-
83 
-
84 }
-
85 
-
86 #endif
-
Class that translates a numeric month (1-12) or dayOfWeek (1-7) into a human readable string.
Definition: DateStrings.h:26
-
const char * dayOfWeekLongString(uint8_t dayOfWeek)
Return the short dayOfWeek name.
Definition: DateStrings.h:56
-
const char * dayOfWeekShortString(uint8_t dayOfWeek)
Return the short dayOfWeek name.
Definition: DateStrings.h:64
-
const char * monthLongString(uint8_t month)
Return the long month name.
Definition: DateStrings.h:40
-
const char * monthShortString(uint8_t month)
Return the short month name.
Definition: DateStrings.h:48
-
static const uint8_t kShortNameLength
Number of prefix characters to use to create a short name.
Definition: DateStrings.h:37
-
static const uint8_t kBufferSize
Length of the longest month or week name, including the '\0' terminator.
Definition: DateStrings.h:31
-
- - - - diff --git a/docs/html/DateTuple_8h_source.html b/docs/html/DateTuple_8h_source.html deleted file mode 100644 index fca9ae74b..000000000 --- a/docs/html/DateTuple_8h_source.html +++ /dev/null @@ -1,271 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/DateTuple.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
DateTuple.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_DATE_TUPLE_H
-
7 #define ACE_TIME_DATE_TUPLE_H
-
8 
-
9 #include <stdint.h> // uint8_t
-
10 #include "common/logging.h"
-
11 #include "local_date_mutation.h"
-
12 
-
13 #ifndef ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG
-
14 #define ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG 0
-
15 #endif
-
16 
-
17 namespace ace_time {
-
18 namespace extended {
-
19 
-
24 enum class CompareStatus : uint8_t {
-
25  kFarPast, // 0
-
26  kPrior, // 1
-
27  kExactMatch, // 2
-
28  kWithinMatch, // 3
-
29  kFarFuture, // 4
-
30 };
-
31 
-
36 struct DateTuple {
-
37  DateTuple() = default;
-
38 
-
39  DateTuple(int16_t y, uint8_t mon, uint8_t d, int32_t secs, uint8_t mod)
-
40  : year(y), month(mon), day(d), seconds(secs), suffix(mod)
-
41  {}
-
42 
-
43  int16_t year; // [-1,10000]
-
44  uint8_t month; // [1,12]
-
45  uint8_t day; // [1,31]
-
46  int32_t seconds; // negative values allowed
-
47  uint8_t suffix; // kSuffixS, kSuffixW, kSuffixU
-
48 
-
50  void log() const {
-
51  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
52  int16_t minutes = seconds / 60;
-
53  int8_t second = seconds - int32_t(60) * minutes;
-
54  int8_t hour = minutes / 60;
-
55  int8_t minute = minutes - hour * 60;
-
56  char c = "wsu"[(suffix>>4)];
-
57  if (second) {
-
58  logging::printf("%04d-%02u-%02uT%02d:%02d:%02d%c",
-
59  year, month, day, hour, minute, second, c);
-
60  } else {
-
61  logging::printf("%04d-%02u-%02uT%02d:%02d%c",
-
62  year, month, day, hour, minute, c);
-
63  }
-
64  }
-
65  }
-
66 };
-
67 
-
69 inline bool operator<(const DateTuple& a, const DateTuple& b) {
-
70  if (a.year < b.year) return true;
-
71  if (a.year > b.year) return false;
-
72  if (a.month < b.month) return true;
-
73  if (a.month > b.month) return false;
-
74  if (a.day < b.day) return true;
-
75  if (a.day > b.day) return false;
-
76  if (a.seconds < b.seconds) return true;
-
77  if (a.seconds > b.seconds) return false;
-
78  return false;
-
79 }
-
80 
-
81 inline bool operator>=(const DateTuple& a, const DateTuple& b) {
-
82  return ! (a < b);
-
83 }
-
84 
-
85 inline bool operator<=(const DateTuple& a, const DateTuple& b) {
-
86  return ! (b < a);
-
87 }
-
88 
-
89 inline bool operator>(const DateTuple& a, const DateTuple& b) {
-
90  return (b < a);
-
91 }
-
92 
-
94 inline bool operator==(const DateTuple& a, const DateTuple& b) {
-
95  return a.year == b.year
-
96  && a.month == b.month
-
97  && a.day == b.day
-
98  && a.seconds == b.seconds
-
99  && a.suffix == b.suffix;
-
100 }
-
101 
-
112 inline void normalizeDateTuple(DateTuple* dt) {
-
113  const int32_t kOneDayAsSeconds = int32_t(60) * 60 * 24;
-
114  if (dt->seconds <= -kOneDayAsSeconds) {
-
115  LocalDate ld = LocalDate::forComponents(dt->year, dt->month, dt->day);
-
116  local_date_mutation::decrementOneDay(ld);
-
117  dt->year = ld.year();
-
118  dt->month = ld.month();
-
119  dt->day = ld.day();
-
120  dt->seconds += kOneDayAsSeconds;
-
121  } else if (kOneDayAsSeconds <= dt->seconds) {
-
122  LocalDate ld = LocalDate::forComponents(dt->year, dt->month, dt->day);
-
123  local_date_mutation::incrementOneDay(ld);
-
124  dt->year = ld.year();
-
125  dt->month = ld.month();
-
126  dt->day = ld.day();
-
127  dt->seconds -= kOneDayAsSeconds;
-
128  } else {
-
129  // do nothing
-
130  }
-
131 }
-
132 
-
138 inline void expandDateTuple(
-
139  const DateTuple* tt,
-
140  int32_t offsetSeconds,
-
141  int32_t deltaSeconds,
-
142  DateTuple* ttw,
-
143  DateTuple* tts,
-
144  DateTuple* ttu) {
-
145 
-
146  if (tt->suffix == Info::ZoneContext::kSuffixS) {
-
147  *tts = *tt;
-
148  *ttu = {tt->year, tt->month, tt->day,
-
149  tt->seconds - offsetSeconds,
- -
151  *ttw = {tt->year, tt->month, tt->day,
-
152  tt->seconds + deltaSeconds,
- -
154  } else if (tt->suffix == Info::ZoneContext::kSuffixU) {
-
155  *ttu = *tt;
-
156  *tts = {tt->year, tt->month, tt->day,
-
157  tt->seconds + offsetSeconds,
- -
159  *ttw = {tt->year, tt->month, tt->day,
-
160  tt->seconds + (offsetSeconds + deltaSeconds),
- -
162  } else {
-
163  // Explicit set the suffix to 'w' in case it was something else.
-
164  *ttw = *tt;
-
165  ttw->suffix = Info::ZoneContext::kSuffixW;
-
166  *tts = {tt->year, tt->month, tt->day,
-
167  tt->seconds - deltaSeconds,
- -
169  *ttu = {tt->year, tt->month, tt->day,
-
170  tt->seconds - (deltaSeconds + offsetSeconds),
- -
172  }
-
173 
-
174  normalizeDateTuple(ttw);
-
175  normalizeDateTuple(tts);
-
176  normalizeDateTuple(ttu);
-
177 }
-
178 
-
185 inline acetime_t subtractDateTuple(const DateTuple& a, const DateTuple& b) {
-
186  int32_t epochDaysA = LocalDate::forComponents(
-
187  a.year, a.month, a.day).toEpochDays();
-
188 
-
189  int32_t epochDaysB = LocalDate::forComponents(
-
190  b.year, b.month, b.day).toEpochDays();
-
191 
-
192  // Perform the subtraction of the days first, before converting to seconds, to
-
193  // prevent overflow if a.year or b.year is more than 68 years from the current
-
194  // epoch year.
-
195  return (epochDaysA - epochDaysB) * 86400 + a.seconds - b.seconds;
-
196 }
-
197 
-
210 inline CompareStatus compareDateTupleFuzzy(
-
211  const DateTuple& t,
-
212  const DateTuple& start,
-
213  const DateTuple& until) {
-
214  // Use int32_t because a delta year of 2730 or greater will exceed
-
215  // the range of an int16_t.
-
216  int32_t tMonths = t.year * (int32_t) 12 + t.month;
-
217  int32_t startMonths = start.year * (int32_t) 12 + start.month;
-
218  if (tMonths < startMonths - 1) return CompareStatus::kPrior;
-
219  int32_t untilMonths = until.year * 12 + until.month;
-
220  if (untilMonths + 1 < tMonths) return CompareStatus::kFarFuture;
-
221  return CompareStatus::kWithinMatch;
-
222 }
-
223 
-
224 } // namespace extended
-
225 } // namespace ace_time
-
226 
-
227 #endif
-
static LocalDate forComponents(int16_t year, uint8_t month, uint8_t day)
Factory method using separated year, month and day fields.
Definition: LocalDate.h:153
-
int32_t toEpochDays() const
Return number of days since the current epoch year sCurrentEpochYear.
Definition: LocalDate.h:352
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
static const uint8_t kSuffixW
Represents 'w' or wall time.
Definition: ZoneInfoLow.h:88
-
static const uint8_t kSuffixS
Represents 's' or standard time.
Definition: ZoneInfoLow.h:91
-
static const uint8_t kSuffixU
Represents 'u' or UTC time.
Definition: ZoneInfoLow.h:94
-
A tuple that represents a date and time.
Definition: DateTuple.h:36
-
void log() const
Used only for debugging.
Definition: DateTuple.h:50
-
- - - - diff --git a/docs/html/EpochConverterHinnant_8h_source.html b/docs/html/EpochConverterHinnant_8h_source.html deleted file mode 100644 index 3df538c52..000000000 --- a/docs/html/EpochConverterHinnant_8h_source.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/EpochConverterHinnant.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
EpochConverterHinnant.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2022 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_EPOCH_CONVERTER_HINNANT_H
-
7 #define ACE_TIME_EPOCH_CONVERTER_HINNANT_H
-
8 
-
9 #include <stdint.h>
-
10 
-
11 namespace ace_time {
-
12 
- -
19  public:
-
24  static const int16_t kInternalEpochYear = 2000;
-
25 
-
30  static const int32_t kDaysToInternalEpochFromUnixEpoch = 10957;
-
31 
-
47  static int32_t toEpochDays(int16_t year, uint8_t month, uint8_t day) {
-
48  uint16_t yearPrime = year - ((month <= 2) ? 1 : 0);
-
49  uint16_t era = yearPrime / 400; // [0,24]
-
50  uint16_t yearOfEra = yearPrime - 400 * era; // [0,399]
-
51 
-
52  uint8_t monthPrime = (month <= 2) ? month + 9 : month - 3; // [0,11]
-
53  uint16_t daysUntilMonthPrime = toDaysUntilMonthPrime(monthPrime);
-
54  uint16_t dayOfYearPrime = daysUntilMonthPrime + day - 1; // [0,365]
-
55  uint32_t dayOfEra = (uint32_t) 365 * yearOfEra + (yearOfEra / 4)
-
56  - (yearOfEra / 100) + dayOfYearPrime; // [0, 146096]
-
57 
-
58  int32_t dayOfEpochPrime = dayOfEra + 146097 * era;
-
59  return dayOfEpochPrime
-
60  - (kInternalEpochYear / 400) * 146097 /*relative to 2000-03-01*/
-
61  + 60 /*relative to 2000-01-01, 2000 is a leap year*/;
-
62  }
-
63 
-
75  static void fromEpochDays(int32_t epochDays,
-
76  int16_t& year, uint8_t& month, uint8_t& day) {
-
77 
-
78  int32_t dayOfEpochPrime = epochDays
-
79  + (kInternalEpochYear / 400) * 146097 - 60;
-
80  uint16_t era = (uint32_t) dayOfEpochPrime / 146097; // [0,24]
-
81  uint32_t dayOfEra = dayOfEpochPrime - 146097 * era; // [0,146096]
-
82  uint16_t yearOfEra = (dayOfEra - dayOfEra / 1460 + dayOfEra / 36524
-
83  - dayOfEra / 146096) / 365; // [0,399]
-
84  uint16_t yearPrime = yearOfEra + 400 * era; // [0,9999]
-
85  uint16_t dayOfYearPrime = dayOfEra - (365 * yearOfEra + yearOfEra/4
-
86  - yearOfEra/100);
-
87  uint8_t monthPrime = (5 * dayOfYearPrime + 2) / 153;
-
88  uint16_t daysUntilMonthPrime = toDaysUntilMonthPrime(monthPrime);
-
89 
-
90  day = dayOfYearPrime - daysUntilMonthPrime + 1; // [1,31]
-
91  month = (monthPrime < 10) ? monthPrime + 3 : monthPrime - 9; // [1,12]
-
92  year = yearPrime + ((month <= 2) ? 1 : 0); // [1,9999]
-
93  }
-
94 
-
99  static uint16_t toDaysUntilMonthPrime(uint8_t monthPrime) {
-
100  return (153 * monthPrime + 2) / 5;
-
101  }
-
102 };
-
103 
-
104 }
-
105 
-
106 #endif
-
Utility class that converts AceTime epoch days to (year, month, day) in the Gregorian calendar and vi...
-
static const int32_t kDaysToInternalEpochFromUnixEpoch
Number of days from Unix epoch (1970-01-01 00:00:00 UTC) to the internal epoch (2000-01-01 00:00:00 U...
-
static uint16_t toDaysUntilMonthPrime(uint8_t monthPrime)
Return the number days before the given monthPrime.
-
static void fromEpochDays(int32_t epochDays, int16_t &year, uint8_t &month, uint8_t &day)
Extract the (year, month, day) fields from AceTime epochDays.
-
static int32_t toEpochDays(int16_t year, uint8_t month, uint8_t day)
Convert (year, month, day) in the Gregorian calendar to days since the internal epoch (2000-01-01).
-
static const int16_t kInternalEpochYear
Epoch year used by this epoch converter.
-
- - - - diff --git a/docs/html/EpochConverterJulian_8h_source.html b/docs/html/EpochConverterJulian_8h_source.html deleted file mode 100644 index d0a1a34a1..000000000 --- a/docs/html/EpochConverterJulian_8h_source.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/EpochConverterJulian.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
EpochConverterJulian.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2022 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_EPOCH_CONVERTER_JULIAN_H
-
7 #define ACE_TIME_EPOCH_CONVERTER_JULIAN_H
-
8 
-
9 #include <stdint.h>
-
10 
-
11 namespace ace_time {
-
12 
- -
20  public:
-
25  static const int16_t kInternalEpochYear = 2000;
-
26 
-
31  static const int32_t kDaysToInternalEpochFromUnixEpoch = 10957;
-
32 
-
40  static const int32_t kDaysToInternalEpochFromJulianEpoch = 1721060
-
41  + (kInternalEpochYear / 400) * 146097; // 2451545
-
42 
-
70  static int32_t toEpochDays(int16_t year, uint8_t month, uint8_t day) {
-
71  int8_t mm = (month - 14)/12;
-
72  int32_t jdn = ((int32_t) 1461 * (year + 4800 + mm))/4
-
73  + (367 * (month - 2 - 12 * mm))/12
-
74  - (3 * ((year + 4900 + mm)/100))/4
-
75  + day - 32075;
- -
77  }
-
78 
-
86  static void fromEpochDays(int32_t epochDays,
-
87  int16_t& year, uint8_t& month, uint8_t& day) {
-
88 
-
89  uint32_t J = epochDays + kDaysToInternalEpochFromJulianEpoch;
-
90  uint32_t f = J + 1401 + (((4 * J + 274277 ) / 146097) * 3) / 4 - 38;
-
91  uint32_t e = 4 * f + 3;
-
92  uint32_t g = e % 1461 / 4;
-
93  uint32_t h = 5 * g + 2;
-
94  day = (h % 153) / 5 + 1;
-
95  month = (h / 153 + 2) % 12 + 1;
-
96  year = (e / 1461) - 4716 + (12 + 2 - month) / 12;
-
97 
-
98  // 2000-01-01 is Saturday (7)
-
99  //dayOfWeek = (epochDays + 6) % 7 + 1;
-
100  }
-
101 };
-
102 
-
103 }
-
104 
-
105 #endif
-
Utility class that converts AceTime epoch days to (year, month, day) in the Gregorian calendar and vi...
-
static int32_t toEpochDays(int16_t year, uint8_t month, uint8_t day)
Convert (year, month, day) in the Gregorian calendar to days since the internal epoch (2000-01-01).
-
static const int32_t kDaysToInternalEpochFromJulianEpoch
Number of days from the modified proleptic Julian calendar epoch (4713 BC 01-01, modified to start at...
-
static const int32_t kDaysToInternalEpochFromUnixEpoch
Number of days from Unix epoch (1970-01-01 00:00:00 UTC) to the internal epoch (2000-01-01 00:00:00 U...
-
static const int16_t kInternalEpochYear
Epoch year used by this epoch converter.
-
static void fromEpochDays(int32_t epochDays, int16_t &year, uint8_t &month, uint8_t &day)
Extract the (year, month, day) fields from AceTime epochDays.
-
- - - - diff --git a/docs/html/Epoch_8cpp_source.html b/docs/html/Epoch_8cpp_source.html deleted file mode 100644 index 36ce3e97d..000000000 --- a/docs/html/Epoch_8cpp_source.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Epoch.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Epoch.cpp
-
-
-
1 #include "Epoch.h"
-
2 
-
3 namespace ace_time {
-
4 
-
5 int16_t Epoch::sCurrentEpochYear = 2050;
-
6 
-
7 // Number of days from 2000-01-01 to 2050-01-01: 50*365 + 13 leap days = 18263.
-
8 int32_t Epoch::sDaysToCurrentEpochFromInternalEpoch = 18263;
-
9 
-
10 }
-
- - - - diff --git a/docs/html/Epoch_8h_source.html b/docs/html/Epoch_8h_source.html deleted file mode 100644 index 1e37ef666..000000000 --- a/docs/html/Epoch_8h_source.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Epoch.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Epoch.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2022 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_EPOCH_H
-
7 #define ACE_TIME_EPOCH_H
-
8 
-
9 #include <stdint.h>
-
10 #include "EpochConverterHinnant.h"
-
11 
-
15 #define ACE_TIME_EPOCH_CONVERTER EpochConverterHinnant
-
16 
-
17 namespace ace_time {
-
18 
-
24 class Epoch {
-
25  public:
-
27  static int16_t currentEpochYear() {
-
28  return sCurrentEpochYear;
-
29  }
-
30 
-
32  static void currentEpochYear(int16_t year) {
-
33  sCurrentEpochYear = year;
-
34  sDaysToCurrentEpochFromInternalEpoch = daysFromInternalEpoch(year);
-
35  }
-
36 
-
41  static int32_t daysFromInternalEpoch(int16_t year) {
-
42  return ACE_TIME_EPOCH_CONVERTER::toEpochDays(year, 1, 1);
-
43  }
-
44 
- -
51  return sDaysToCurrentEpochFromInternalEpoch;
-
52  }
-
53 
- -
59  return ACE_TIME_EPOCH_CONVERTER::kDaysToInternalEpochFromUnixEpoch
-
60  + sDaysToCurrentEpochFromInternalEpoch;
-
61  }
-
62 
- -
70  return daysToCurrentEpochFromUnixEpoch() * (int64_t) 86400;
-
71  }
-
72 
-
89  static int16_t epochValidYearLower() {
-
90  return currentEpochYear() - 50;
-
91  }
-
92 
-
109  static int16_t epochValidYearUpper() {
-
110  return currentEpochYear() + 50;
-
111  }
-
112 
-
113  private:
-
115  static int16_t sCurrentEpochYear;
-
116 
-
118  static int32_t sDaysToCurrentEpochFromInternalEpoch;
-
119 };
-
120 
-
121 }
-
122 
-
123 #endif
-
Utility functions for setting, retrieving, and converting the current epoch.
Definition: Epoch.h:24
-
static int32_t daysToCurrentEpochFromInternalEpoch()
Number of days from the internal epoch (2000-01-01) to the current epoch.
Definition: Epoch.h:50
-
static int16_t epochValidYearLower()
The smallest year (inclusive) for which calculations involving the 32-bit epoch_seconds and time zone...
Definition: Epoch.h:89
-
static void currentEpochYear(int16_t year)
Set the current epoch year.
Definition: Epoch.h:32
-
static int16_t currentEpochYear()
Get the current epoch year.
Definition: Epoch.h:27
-
static int16_t epochValidYearUpper()
The largest year (exclusive) for which calculations involving the 32-bit epoch_seconds and time zone ...
Definition: Epoch.h:109
-
static int32_t daysToCurrentEpochFromUnixEpoch()
Return the number of days from the Unix epoch (1970-01-01T00:00:00) to the current epoch.
Definition: Epoch.h:58
-
static int32_t daysFromInternalEpoch(int16_t year)
Return number of days to the given {year}-01-01 from the converter epoch of 2000-01-01.
Definition: Epoch.h:41
-
static int64_t secondsToCurrentEpochFromUnixEpoch64()
Return the number of seconds from the Unix epoch (1970-01-01T00:00:00) to the current epoch.
Definition: Epoch.h:69
-
- - - - diff --git a/docs/html/ExtendedZoneProcessor_8h_source.html b/docs/html/ExtendedZoneProcessor_8h_source.html deleted file mode 100644 index a13c93017..000000000 --- a/docs/html/ExtendedZoneProcessor_8h_source.html +++ /dev/null @@ -1,1124 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ExtendedZoneProcessor.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ExtendedZoneProcessor.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_EXTENDED_ZONE_PROCESSOR_H
-
7 #define ACE_TIME_EXTENDED_ZONE_PROCESSOR_H
-
8 
-
9 #include <stdint.h> // uintptr_t
-
10 #include <AceCommon.h> // copyReplaceString()
-
11 #include "../zoneinfo/infos.h"
-
12 #include "common/common.h" // kAbbrevSize
-
13 #include "common/logging.h"
-
14 #include "LocalDate.h"
-
15 #include "ZoneProcessor.h"
-
16 #include "Transition.h"
-
17 
-
18 #ifndef ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG
-
19 #define ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG 0
-
20 #endif
-
21 
-
22 class ExtendedZoneProcessorTest_compareEraToYearMonth;
-
23 class ExtendedZoneProcessorTest_compareEraToYearMonth2;
-
24 class ExtendedZoneProcessorTest_createMatchingEra;
-
25 class ExtendedZoneProcessorTest_findMatches_simple;
-
26 class ExtendedZoneProcessorTest_findMatches_named;
-
27 class ExtendedZoneProcessorTest_findCandidateTransitions;
-
28 class ExtendedZoneProcessorTest_createTransitionsFromNamedMatch;
-
29 class ExtendedZoneProcessorTest_getTransitionTime;
-
30 class ExtendedZoneProcessorTest_createTransitionForYear;
-
31 class ExtendedZoneProcessorTest_calcInteriorYears;
-
32 class ExtendedZoneProcessorTest_getMostRecentPriorYear;
-
33 class ExtendedZoneProcessorTest_compareTransitionToMatchFuzzy;
-
34 class ExtendedZoneProcessorTest_compareTransitionToMatch;
-
35 class ExtendedZoneProcessorTest_processTransitionCompareStatus;
-
36 class ExtendedZoneProcessorTest_fixTransitionTimes_generateStartUntilTimes;
-
37 class ExtendedZoneProcessorTest_setZoneKey;
-
38 class ExtendedTransitionValidation;
-
39 class CompleteTransitionValidation;
-
40 
-
41 class Print;
-
42 
-
43 namespace ace_time {
-
44 
-
45 namespace extended {
-
46 
- -
49  int16_t year;
-
50  uint8_t month;
-
51 };
-
52 
-
53 }
-
54 
-
80 template <typename D>
- -
82  public:
-
94  static const uint8_t kMaxTransitions = 8;
-
95 
- -
98 
- - -
102 
- - -
106 
- -
109 
- - -
113 
-
114  bool isLink() const override {
-
115  return ! mZoneInfoBroker.targetInfo().isNull();
-
116  }
-
117 
-
118  uint32_t getZoneId() const override {
-
119  return mZoneInfoBroker.zoneId();
-
120  }
-
121 
-
122  FindResult findByLocalDateTime(const LocalDateTime& ldt) const override {
-
123  FindResult result;
-
124 
-
125  bool success = initForYear(ldt.year());
-
126  if (! success) {
-
127  return result;
-
128  }
-
129 
-
130  // Find the Transition(s) in the gap or overlap.
-
131  TransitionForDateTime transitionForDateTime =
-
132  mTransitionStorage.findTransitionForDateTime(ldt);
-
133 
-
134  // Extract the target Transition, depending on the requested ldt.fold
-
135  // and the result.num.
-
136  const Transition* transition;
-
137  if (transitionForDateTime.num == 1) {
-
138  transition = transitionForDateTime.curr;
-
139  result.type = FindResult::kTypeExact;
-
140  result.reqStdOffsetSeconds = transition->offsetSeconds;
-
141  result.reqDstOffsetSeconds = transition->deltaSeconds;
-
142  } else { // num = 0 or 2
-
143  if (transitionForDateTime.prev == nullptr
-
144  || transitionForDateTime.curr == nullptr) {
-
145  // ldt was far past or far future
-
146  transition = nullptr;
-
147  result.type = FindResult::kTypeNotFound;
-
148  } else { // gap or overlap
-
149  if (transitionForDateTime.num == 0) { // num==0, Gap
-
150  result.type = FindResult::kTypeGap;
-
151  if (ldt.fold() == 0) {
-
152  // ldt wants to use the 'prev' transition to convert to
-
153  // epochSeconds.
-
154  result.reqStdOffsetSeconds =
-
155  transitionForDateTime.prev->offsetSeconds;
-
156  result.reqDstOffsetSeconds =
-
157  transitionForDateTime.prev->deltaSeconds;
-
158  // But after normalization, it will be shifted into the curr
-
159  // transition, so select 'curr' as the target transition.
-
160  transition = transitionForDateTime.curr;
-
161  } else {
-
162  // ldt wants to use the 'curr' transition to convert to
-
163  // epochSeconds.
-
164  result.reqStdOffsetSeconds =
-
165  transitionForDateTime.curr->offsetSeconds;
-
166  result.reqDstOffsetSeconds =
-
167  transitionForDateTime.curr->deltaSeconds;
-
168  // But after normalization, it will be shifted into the prev
-
169  // transition, so select 'prev' as the target transition.
-
170  transition = transitionForDateTime.prev;
-
171  }
-
172  } else { // num==2, Overlap
-
173  transition = (ldt.fold() == 0)
-
174  ? transitionForDateTime.prev
-
175  : transitionForDateTime.curr;
-
176  result.type = FindResult::kTypeOverlap;
-
177  result.reqStdOffsetSeconds = transition->offsetSeconds;
-
178  result.reqDstOffsetSeconds = transition->deltaSeconds;
-
179  result.fold = ldt.fold();
-
180  }
-
181  }
-
182  }
-
183 
-
184  if (! transition) {
-
185  return result;
-
186  }
-
187 
-
188  result.stdOffsetSeconds = transition->offsetSeconds;
-
189  result.dstOffsetSeconds = transition->deltaSeconds;
-
190  result.abbrev = transition->abbrev;
-
191 
-
192  return result;
-
193  }
-
194 
-
203  FindResult findByEpochSeconds(acetime_t epochSeconds) const override {
-
204  FindResult result;
-
205  bool success = initForEpochSeconds(epochSeconds);
-
206  if (!success) return result;
-
207 
-
208  TransitionForSeconds transitionForSeconds =
-
209  mTransitionStorage.findTransitionForSeconds(epochSeconds);
-
210  const Transition* transition = transitionForSeconds.curr;
-
211  if (!transition) return result;
-
212 
-
213  result.stdOffsetSeconds = transition->offsetSeconds;
-
214  result.dstOffsetSeconds = transition->deltaSeconds;
-
215  result.reqStdOffsetSeconds = transition->offsetSeconds;
-
216  result.reqDstOffsetSeconds = transition->deltaSeconds;
-
217  result.abbrev = transition->abbrev;
-
218  result.fold = transitionForSeconds.fold;
-
219  if (transitionForSeconds.num == 2) {
-
220  result.type = FindResult::kTypeOverlap;
-
221  } else {
-
222  result.type = FindResult::kTypeExact;
-
223  }
-
224  return result;
-
225  }
-
226 
-
227  void printNameTo(Print& printer) const override {
-
228  mZoneInfoBroker.printNameTo(printer);
-
229  }
-
230 
-
231  void printShortNameTo(Print& printer) const override {
-
232  mZoneInfoBroker.printShortNameTo(printer);
-
233  }
-
234 
-
235  void printTargetNameTo(Print& printer) const override {
-
236  if (isLink()) {
-
237  mZoneInfoBroker.targetInfo().printNameTo(printer);
-
238  }
-
239  }
-
240 
-
242  void log() const {
-
243  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
244  logging::printf("ExtendedZoneProcessor:\n");
-
245  logging::printf(" mEpochYear: %d\n", mEpochYear);
-
246  logging::printf(" mYear: %d\n", mYear);
-
247  logging::printf(" mNumMatches: %d\n", mNumMatches);
-
248  for (int i = 0; i < mNumMatches; i++) {
-
249  logging::printf(" Match %d: ", i);
-
250  mMatches[i].log();
-
251  logging::printf("\n");
-
252  }
-
253  mTransitionStorage.log();
-
254  }
-
255  }
-
256 
- -
259  mTransitionStorage.resetAllocSize();
-
260  }
-
261 
-
263  uint8_t getTransitionAllocSize() const {
-
264  return mTransitionStorage.getAllocSize();
-
265  }
-
266 
-
267  void setZoneKey(uintptr_t zoneKey) override {
-
268  if (! mZoneInfoStore) return;
-
269  if (mZoneInfoBroker.equals(zoneKey)) return;
-
270 
-
271  mZoneInfoBroker = mZoneInfoStore->createZoneInfoBroker(zoneKey);
- -
273  mNumMatches = 0;
-
274  resetTransitionAllocSize(); // clear the alloc size for new zone
-
275  }
-
276 
-
277  bool equalsZoneKey(uintptr_t zoneKey) const override {
-
278  return mZoneInfoBroker.equals(zoneKey);
-
279  }
-
280 
-
287  void setZoneInfoStore(const typename D::ZoneInfoStore* zoneInfoStore) {
-
288  mZoneInfoStore = zoneInfoStore;
-
289  }
-
290 
-
296  bool initForEpochSeconds(acetime_t epochSeconds) const {
-
297  LocalDate ld = LocalDate::forEpochSeconds(epochSeconds);
-
298  return initForYear(ld.year());
-
299  }
-
300 
-
306  bool initForYear(int16_t year) const {
-
307  // Restrict to [1,9999] even though LocalDate should be able to handle
-
308  // [0,10000].
-
309  if (year <= LocalDate::kMinYear || LocalDate::kMaxYear <= year) {
-
310  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
311  logging::printf(
-
312  "initForYear(): Year %d outside range [%d, %d]\n",
- -
314  }
-
315  return false;
-
316  }
-
317 
-
318  if (isFilled(year)) return true;
-
319  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
320  logging::printf("initForYear(): %d\n", year);
-
321  }
-
322  mYear = year;
- -
324  mNumMatches = 0; // clear cache
-
325  mTransitionStorage.init();
-
326 
-
327  // Fill transitions over a 14-month window straddling the given year.
-
328  extended::YearMonthTuple startYm = { (int16_t) (year - 1), 12 };
-
329  extended::YearMonthTuple untilYm = { (int16_t) (year + 1), 2 };
-
330 
-
331  // Step 1. The equivalent steps for the Python version are in the
-
332  // acetimepy project, under zone_processor.ZoneProcessor.init_for_year().
-
333  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
334  logging::printf("==== Step 1: findMatches()\n");
-
335  }
-
336  mNumMatches = findMatches(mZoneInfoBroker, startYm, untilYm, mMatches,
-
337  kMaxMatches);
-
338  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) { log(); }
-
339 
-
340  // Step 2
-
341  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
342  logging::printf("==== Step 2: createTransitions()\n");
-
343  }
-
344  createTransitions(mTransitionStorage, mMatches, mNumMatches);
-
345  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) { log(); }
-
346 
-
347  // Step 3
-
348  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
349  logging::printf("==== Step 3: fixTransitionTimes()\n");
-
350  }
-
351  Transition** begin = mTransitionStorage.getActivePoolBegin();
-
352  Transition** end = mTransitionStorage.getActivePoolEnd();
-
353  fixTransitionTimes(begin, end);
-
354  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) { log(); }
-
355 
-
356  // Step 4
-
357  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
358  logging::printf("==== Step 4: generateStartUntilTimes()\n");
-
359  }
-
360  generateStartUntilTimes(begin, end);
-
361  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) { log(); }
-
362 
-
363  // Step 5
-
364  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
365  logging::printf("==== Step 5: calcAbbreviations()\n");
-
366  }
-
367  calcAbbreviations(begin, end);
-
368  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) { log(); }
-
369 
-
370  return true;
-
371  }
-
372 
-
373  protected:
- -
386  uint8_t type,
-
387  const typename D::ZoneInfoStore* zoneInfoStore /*nullable*/,
-
388  uintptr_t zoneKey
-
389  ) :
-
390  ZoneProcessor(type),
-
391  mZoneInfoStore(zoneInfoStore)
-
392  {
-
393  setZoneKey(zoneKey);
-
394  }
-
395 
-
396  private:
-
397  friend class ::ExtendedZoneProcessorTest_compareEraToYearMonth;
-
398  friend class ::ExtendedZoneProcessorTest_compareEraToYearMonth2;
-
399  friend class ::ExtendedZoneProcessorTest_createMatchingEra;
-
400  friend class ::ExtendedZoneProcessorTest_findMatches_simple;
-
401  friend class ::ExtendedZoneProcessorTest_findMatches_named;
-
402  friend class ::ExtendedZoneProcessorTest_findCandidateTransitions;
-
403  friend class ::ExtendedZoneProcessorTest_createTransitionsFromNamedMatch;
-
404  friend class ::ExtendedZoneProcessorTest_getTransitionTime;
-
405  friend class ::ExtendedZoneProcessorTest_createTransitionForYear;
-
406  friend class ::ExtendedZoneProcessorTest_calcInteriorYears;
-
407  friend class ::ExtendedZoneProcessorTest_getMostRecentPriorYear;
-
408  friend class ::ExtendedZoneProcessorTest_compareTransitionToMatchFuzzy;
-
409  friend class ::ExtendedZoneProcessorTest_compareTransitionToMatch;
-
410  friend class ::ExtendedZoneProcessorTest_processTransitionCompareStatus;
-
411  friend class ::ExtendedZoneProcessorTest_fixTransitionTimes_generateStartUntilTimes;
-
412  friend class ::ExtendedZoneProcessorTest_setZoneKey;
-
413  friend class ::ExtendedTransitionValidation;
-
414  friend class ::CompleteTransitionValidation;
-
415 
-
416  // Disable copy constructor and assignment operator.
- -
418  const ExtendedZoneProcessorTemplate&) = delete;
- -
420  const ExtendedZoneProcessorTemplate&) = delete;
-
421 
-
426  static const uint8_t kMaxMatches = 4;
-
427 
-
432  static const uint8_t kMaxInteriorYears = 4;
-
433 
-
434  bool equals(const ZoneProcessor& other) const override {
-
435  return mZoneInfoBroker.equals(
-
436  ((const ExtendedZoneProcessorTemplate&) other).mZoneInfoBroker);
-
437  }
-
438 
-
446  static uint8_t findMatches(
-
447  const typename D::ZoneInfoBroker& zoneInfo,
-
448  const extended::YearMonthTuple& startYm,
-
449  const extended::YearMonthTuple& untilYm,
-
450  MatchingEra* matches,
-
451  uint8_t maxMatches
-
452  ) {
-
453  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
454  logging::printf("findMatches()\n");
-
455  }
-
456  uint8_t iMatch = 0;
-
457  MatchingEra* prevMatch = nullptr;
-
458  for (uint8_t iEra = 0; iEra < zoneInfo.numEras(); iEra++) {
-
459  const typename D::ZoneEraBroker era = zoneInfo.era(iEra);
-
460  if (eraOverlapsInterval(prevMatch, era, startYm, untilYm)) {
-
461  if (iMatch < maxMatches) {
-
462  matches[iMatch] = createMatchingEra(
-
463  prevMatch, era, startYm, untilYm);
-
464  prevMatch = &matches[iMatch];
-
465  iMatch++;
-
466  }
-
467  }
-
468  }
-
469  return iMatch;
-
470  }
-
471 
-
497  static bool eraOverlapsInterval(
-
498  const MatchingEra* prevMatch,
-
499  const typename D::ZoneEraBroker& era,
-
500  const extended::YearMonthTuple& startYm,
-
501  const extended::YearMonthTuple& untilYm) {
-
502  return (prevMatch == nullptr || compareEraToYearMonth(
-
503  prevMatch->era, untilYm.year, untilYm.month) < 0)
-
504  && compareEraToYearMonth(era, startYm.year, startYm.month) > 0;
-
505  }
-
506 
-
508  static int8_t compareEraToYearMonth(const typename D::ZoneEraBroker& era,
-
509  int16_t year, uint8_t month) {
-
510  if (era.untilYear() < year) return -1;
-
511  if (era.untilYear() > year) return 1;
-
512  if (era.untilMonth() < month) return -1;
-
513  if (era.untilMonth() > month) return 1;
-
514  if (era.untilDay() > 1) return 1;
-
515  //if (era.untilTimeSeconds() < 0) return -1; // never possible
-
516  if (era.untilTimeSeconds() > 0) return 1;
-
517  return 0;
-
518  }
-
519 
-
526  static MatchingEra createMatchingEra(
-
527  MatchingEra* prevMatch,
-
528  const typename D::ZoneEraBroker& era,
-
529  const extended::YearMonthTuple& startYm,
-
530  const extended::YearMonthTuple& untilYm) {
-
531 
-
532  // If prevMatch is null, set startDate to be earlier than all valid
-
533  // ZoneEra.
-
534  extended::DateTuple startDate = (prevMatch == nullptr)
-
535  ? extended::DateTuple{
- -
537  1,
-
538  1,
-
539  0,
- -
541  }
-
542  : extended::DateTuple{
-
543  prevMatch->era.untilYear(),
-
544  prevMatch->era.untilMonth(),
-
545  prevMatch->era.untilDay(),
-
546  (int32_t) prevMatch->era.untilTimeSeconds(),
-
547  prevMatch->era.untilTimeSuffix()
-
548  };
-
549  extended::DateTuple lowerBound{
-
550  startYm.year,
-
551  startYm.month,
-
552  1,
-
553  0,
- -
555  };
-
556  if (startDate < lowerBound) {
-
557  startDate = lowerBound;
-
558  }
-
559 
-
560  extended::DateTuple untilDate{
-
561  era.untilYear(),
-
562  era.untilMonth(),
-
563  era.untilDay(),
-
564  (int32_t) era.untilTimeSeconds(),
-
565  era.untilTimeSuffix()
-
566  };
-
567  extended::DateTuple upperBound{
-
568  untilYm.year,
-
569  untilYm.month,
-
570  1,
-
571  0,
- -
573  };
-
574  if (upperBound < untilDate) {
-
575  untilDate = upperBound;
-
576  }
-
577 
-
578  return {startDate, untilDate, era, prevMatch, 0, 0};
-
579  }
-
580 
-
585  static void createTransitions(
-
586  TransitionStorage& transitionStorage,
-
587  MatchingEra* matches,
-
588  uint8_t numMatches) {
-
589  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
590  logging::printf("createTransitions()\n");
-
591  }
-
592 
-
593  for (uint8_t i = 0; i < numMatches; i++) {
-
594  createTransitionsForMatch(transitionStorage, &matches[i]);
-
595  }
-
596  }
-
597 
-
599  static void createTransitionsForMatch(
-
600  TransitionStorage& transitionStorage,
-
601  MatchingEra* match) {
-
602  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
603  logging::printf("== createTransitionsForMatch()\n");
-
604  }
-
605  const typename D::ZonePolicyBroker policy = match->era.zonePolicy();
-
606  if (policy.isNull()) {
-
607  createTransitionsFromSimpleMatch(transitionStorage, match);
-
608  } else {
-
609  createTransitionsFromNamedMatch(transitionStorage, match);
-
610  }
-
611  }
-
612 
-
613  // Step 2A
-
614  static void createTransitionsFromSimpleMatch(
-
615  TransitionStorage& transitionStorage,
-
616  MatchingEra* match) {
-
617  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
618  logging::printf("== createTransitionsFromSimpleMatch()\n");
-
619  }
-
620 
-
621  Transition* freeTransition = transitionStorage.getFreeAgent();
-
622  createTransitionForYear(freeTransition, 0 /*not used*/,
-
623  typename D::ZoneRuleBroker() /*rule*/, match);
-
624  freeTransition->compareStatus = extended::CompareStatus::kExactMatch;
-
625  match->lastOffsetSeconds = freeTransition->offsetSeconds;
-
626  match->lastDeltaSeconds = freeTransition->deltaSeconds;
-
627  transitionStorage.addFreeAgentToActivePool();
-
628  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
629  transitionStorage.log();
-
630  }
-
631  }
-
632 
-
633  // Step 2B
-
634  static void createTransitionsFromNamedMatch(
-
635  TransitionStorage& transitionStorage,
-
636  MatchingEra* match) {
-
637  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
638  logging::printf("== createTransitionsFromNamedMatch()\n");
-
639  }
-
640 
-
641  transitionStorage.resetCandidatePool();
-
642  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
643  match->log(); logging::printf("\n");
-
644  }
-
645 
-
646  // Pass 1: Find candidate transitions using whole years.
-
647  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
648  logging::printf("---- Pass 1: findCandidateTransitions()\n");
-
649  }
-
650  findCandidateTransitions(transitionStorage, match);
-
651  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
652  transitionStorage.log();
-
653  }
-
654 
-
655  // Pass 2: Fix the transitions times, converting 's' and 'u' into 'w'
-
656  // uniformly.
-
657  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
658  logging::printf("---- Pass 2: fixTransitionTimes()\n");
-
659  }
-
660  fixTransitionTimes(
-
661  transitionStorage.getCandidatePoolBegin(),
-
662  transitionStorage.getCandidatePoolEnd());
-
663 
-
664  // Pass 3: Select only those Transitions which overlap with the actual
-
665  // start and until times of the MatchingEra.
-
666  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
667  logging::printf("---- Pass 3: selectActiveTransitions()\n");
-
668  }
-
669  selectActiveTransitions(
-
670  transitionStorage.getCandidatePoolBegin(),
-
671  transitionStorage.getCandidatePoolEnd());
-
672  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
673  transitionStorage.log();
-
674  }
-
675  Transition* lastTransition =
-
676  transitionStorage.addActiveCandidatesToActivePool();
-
677  match->lastOffsetSeconds = lastTransition->offsetSeconds;
-
678  match->lastDeltaSeconds = lastTransition->deltaSeconds;
-
679  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
680  transitionStorage.log();
-
681  }
-
682  }
-
683 
-
684  // Step 2B: Pass 1
-
685  static void findCandidateTransitions(
-
686  TransitionStorage& transitionStorage,
-
687  const MatchingEra* match) {
-
688  using extended::CompareStatus;
-
689 
-
690  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
691  logging::printf("findCandidateTransitions(): \n");
-
692  match->log();
-
693  logging::printf("\n");
-
694  }
-
695  const typename D::ZonePolicyBroker policy = match->era.zonePolicy();
-
696  uint8_t numRules = policy.numRules();
-
697  int16_t startY = match->startDateTime.year;
-
698  int16_t endY = match->untilDateTime.year;
-
699 
-
700  // The prior is referenced through a handle (i.e. pointer to pointer)
-
701  // because the actual pointer to the prior could change through the
-
702  // transitionStorage.setFreeAgentAsPriorIfValid() method.
-
703  Transition** prior = transitionStorage.reservePrior();
-
704  (*prior)->isValidPrior = false; // indicates "no prior transition"
-
705  for (uint8_t r = 0; r < numRules; r++) {
-
706  const typename D::ZoneRuleBroker rule = policy.rule(r);
-
707 
-
708  // Add Transitions for interior years
-
709  int16_t interiorYears[kMaxInteriorYears];
-
710  uint8_t numYears = calcInteriorYears(interiorYears, kMaxInteriorYears,
-
711  rule.fromYear(), rule.toYear(), startY, endY);
-
712  for (uint8_t y = 0; y < numYears; y++) {
-
713  int16_t year = interiorYears[y];
-
714  Transition* t = transitionStorage.getFreeAgent();
-
715  createTransitionForYear(t, year, rule, match);
-
716  CompareStatus status = compareTransitionToMatchFuzzy(t, match);
-
717  if (status == CompareStatus::kPrior) {
-
718  transitionStorage.setFreeAgentAsPriorIfValid();
-
719  } else if (status == CompareStatus::kWithinMatch) {
-
720  transitionStorage.addFreeAgentToCandidatePool();
-
721  } else {
-
722  // Must be kFarFuture.
-
723  // Do nothing, allowing the free agent to be reused.
-
724  }
-
725  }
-
726 
-
727  // Add Transition for prior year
-
728  int16_t priorYear = getMostRecentPriorYear(
-
729  rule.fromYear(), rule.toYear(), startY, endY);
-
730  if (priorYear != LocalDate::kInvalidYear) {
-
731  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
732  logging::printf(
-
733  "findCandidateTransitions(): priorYear: %d\n", priorYear);
-
734  }
-
735  Transition* t = transitionStorage.getFreeAgent();
-
736  createTransitionForYear(t, priorYear, rule, match);
-
737  transitionStorage.setFreeAgentAsPriorIfValid();
-
738  }
-
739  }
-
740 
-
741  // Add the reserved prior into the Candidate pool only if 'isValidPrior'
-
742  // is true.
-
743  if ((*prior)->isValidPrior) {
-
744  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
745  logging::printf(
-
746  "findCandidateTransitions(): adding prior to Candidate pool\n");
-
747  logging::printf(" ");
-
748  (*prior)->log();
-
749  logging::printf("\n");
-
750  }
-
751  transitionStorage.addPriorToCandidatePool();
-
752  }
-
753  }
-
754 
-
774  static uint8_t calcInteriorYears(
-
775  int16_t* interiorYears,
-
776  uint8_t maxInteriorYears,
-
777  int16_t fromYear, int16_t toYear,
-
778  int16_t startYear, int16_t endYear) {
-
779  uint8_t i = 0;
-
780  for (int16_t year = startYear; year <= endYear; year++) {
-
781  if (fromYear <= year && year <= toYear) {
-
782  interiorYears[i] = year;
-
783  i++;
-
784  if (i >= maxInteriorYears) break;
-
785  }
-
786  }
-
787  return i;
-
788  }
-
789 
-
795  static void createTransitionForYear(
-
796  Transition* t,
-
797  int16_t year,
-
798  const typename D::ZoneRuleBroker& rule,
-
799  const MatchingEra* match) {
-
800  t->match = match;
-
801  t->offsetSeconds = match->era.offsetSeconds();
-
802  #if ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG
-
803  t->rule = rule;
-
804  #endif
-
805 
-
806  if (rule.isNull()) {
-
807  // Create a Transition using the MatchingEra for the transitionTime.
-
808  // Used for simple MatchingEra.
-
809  t->transitionTime = match->startDateTime;
-
810  t->deltaSeconds = match->era.deltaSeconds();
-
811  t->abbrev[0] = '\0';
-
812  } else {
-
813  t->transitionTime = getTransitionTime(year, rule);
-
814  t->deltaSeconds = rule.deltaSeconds();
-
815  ace_common::strncpy_T(
-
816  t->abbrev, rule.letter(), kAbbrevSize - 1);
-
817  t->abbrev[kAbbrevSize - 1] = '\0';
-
818  }
-
819  }
-
820 
-
833  static int16_t getMostRecentPriorYear(
-
834  int16_t fromYear, int16_t toYear,
-
835  int16_t startYear, int16_t /*endYear*/) {
-
836 
-
837  if (fromYear < startYear) {
-
838  if (toYear < startYear) {
-
839  return toYear;
-
840  } else {
-
841  return startYear - 1;
-
842  }
-
843  } else {
- -
845  }
-
846  }
-
847 
-
852  static extended::DateTuple getTransitionTime(
-
853  int16_t year, const typename D::ZoneRuleBroker& rule) {
-
854 
-
855  MonthDay monthDay = calcStartDayOfMonth(
-
856  year,
-
857  rule.inMonth(),
-
858  rule.onDayOfWeek(),
-
859  rule.onDayOfMonth());
-
860  return {
-
861  year,
-
862  monthDay.month,
-
863  monthDay.day,
-
864  (int32_t) rule.atTimeSeconds(),
-
865  rule.atTimeSuffix()
-
866  };
-
867  }
-
868 
-
879  static extended::CompareStatus compareTransitionToMatchFuzzy(
-
880  const Transition* t, const MatchingEra* match) {
-
881  return compareDateTupleFuzzy(
-
882  t->transitionTime,
-
883  match->startDateTime,
-
884  match->untilDateTime);
-
885  }
-
886 
-
895  static void fixTransitionTimes(Transition** begin, Transition** end) {
-
896  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
897  logging::printf("fixTransitionTimes(): START; #transitions=%d\n",
-
898  (int) (end - begin));
-
899  Transition::printTransitions(" ", begin, end);
-
900  }
-
901 
-
902  // extend first Transition to -infinity
-
903  Transition* prev = *begin;
-
904 
-
905  for (Transition** iter = begin; iter != end; ++iter) {
-
906  Transition* curr = *iter;
-
907  expandDateTuple(
-
908  &curr->transitionTime,
-
909  prev->offsetSeconds,
-
910  prev->deltaSeconds,
-
911  &curr->transitionTime,
-
912  &curr->transitionTimeS,
-
913  &curr->transitionTimeU);
-
914  prev = curr;
-
915  }
-
916  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
917  logging::printf("fixTransitionTimes(): FIXED\n");
-
918  Transition::printTransitions(" ", begin, end);
-
919  logging::printf("fixTransitionTimes(): END\n");
-
920  }
-
921  }
-
922 
-
927  static void selectActiveTransitions(Transition** begin, Transition** end) {
-
928  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
929  logging::printf("selectActiveTransitions(): #candidates: %d\n",
-
930  (int) (end - begin));
-
931  }
-
932 
-
933  Transition* prior = nullptr;
-
934  for (Transition** iter = begin; iter != end; ++iter) {
-
935  Transition* transition = *iter;
-
936  processTransitionCompareStatus(transition, &prior);
-
937  }
-
938 
-
939  // If the latest prior transition is found, shift it to start at the
-
940  // startDateTime of the current match.
-
941  if (prior) {
-
942  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
943  logging::printf(
-
944  "selectActiveTransitions(): found latest prior\n");
-
945  }
-
946  #if ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG
-
947  prior->originalTransitionTime = prior->transitionTime;
-
948  #endif
-
949  prior->transitionTime = prior->match->startDateTime;
-
950  }
-
951  }
-
952 
-
959  static void processTransitionCompareStatus(
-
960  Transition* transition,
-
961  Transition** prior) {
-
962  using extended::CompareStatus;
-
963 
-
964  CompareStatus status = compareTransitionToMatch(
-
965  transition, transition->match);
-
966  transition->compareStatus = status;
-
967 
-
968  if (status == CompareStatus::kExactMatch) {
-
969  if (*prior) {
-
970  (*prior)->compareStatus = CompareStatus::kFarPast;
-
971  }
-
972  (*prior) = transition;
-
973  } else if (status == CompareStatus::kPrior) {
-
974  if (*prior) {
-
975  if ((*prior)->transitionTimeU <= transition->transitionTimeU) {
-
976  (*prior)->compareStatus = CompareStatus::kFarPast;
-
977  (*prior) = transition;
-
978  } else {
-
979  transition->compareStatus = CompareStatus::kFarPast;
-
980  }
-
981  } else {
-
982  (*prior) = transition;
-
983  }
-
984  }
-
985  }
-
986 
-
995  static extended::CompareStatus compareTransitionToMatch(
-
996  const Transition* transition,
-
997  const MatchingEra* match) {
-
998 
-
999  // Find the previous Match offsets.
-
1000  int32_t prevMatchOffsetSeconds;
-
1001  int32_t prevMatchDeltaSeconds;
-
1002  if (match->prevMatch) {
-
1003  prevMatchOffsetSeconds = match->prevMatch->lastOffsetSeconds;
-
1004  prevMatchDeltaSeconds = match->prevMatch->lastDeltaSeconds;
-
1005  } else {
-
1006  prevMatchOffsetSeconds = match->era.offsetSeconds();
-
1007  prevMatchDeltaSeconds = 0;
-
1008  }
-
1009 
-
1010  // Expand start times.
-
1011  extended::DateTuple stw;
-
1012  extended::DateTuple sts;
-
1013  extended::DateTuple stu;
-
1014  expandDateTuple(
-
1015  &match->startDateTime,
-
1016  prevMatchOffsetSeconds,
-
1017  prevMatchDeltaSeconds,
-
1018  &stw,
-
1019  &sts,
-
1020  &stu);
-
1021 
-
1022  // Transition times.
-
1023  const extended::DateTuple& ttw = transition->transitionTime;
-
1024  const extended::DateTuple& tts = transition->transitionTimeS;
-
1025  const extended::DateTuple& ttu = transition->transitionTimeU;
-
1026 
-
1027  // Compare Transition to Match, where equality is assumed if *any* of the
-
1028  // 'w', 's', or 'u' versions of the DateTuple are equal. This prevents
-
1029  // duplicate Transition instances from being created in a few cases.
-
1030  if (ttw == stw || tts == sts || ttu == stu) {
-
1031  return extended::CompareStatus::kExactMatch;
-
1032  }
-
1033 
-
1034  if (ttu < stu) {
-
1035  return extended::CompareStatus::kPrior;
-
1036  }
-
1037 
-
1038  // Now check if the transition occurs after the given match. The
-
1039  // untilDateTime of the current match uses the same UTC offsets as the
-
1040  // transitionTime of the current transition, so no complicated adjustments
-
1041  // are needed. We just make sure we compare 'w' with 'w', 's' with 's',
-
1042  // and 'u' with 'u'.
-
1043  const extended::DateTuple& matchUntil = match->untilDateTime;
-
1044  const extended::DateTuple* transitionTime;
-
1045  if (matchUntil.suffix == extended::Info::ZoneContext::kSuffixS) {
-
1046  transitionTime = &tts;
-
1047  } else if (matchUntil.suffix == extended::Info::ZoneContext::kSuffixU) {
-
1048  transitionTime = &ttu;
-
1049  } else { // assume 'w'
-
1050  transitionTime = &ttw;
-
1051  }
-
1052  if (*transitionTime < matchUntil) {
-
1053  return extended::CompareStatus::kWithinMatch;
-
1054  }
-
1055  return extended::CompareStatus::kFarFuture;
-
1056  }
-
1057 
-
1063  static void generateStartUntilTimes(Transition** begin, Transition** end) {
-
1064  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
1065  logging::printf(
-
1066  "generateStartUntilTimes(): #transitions=%d\n",
-
1067  (int) (end - begin));
-
1068  }
-
1069 
-
1070  // It is possible that there are no matching transitions. This can happen
-
1071  // if the zonedbx is corrupted and ZoneInfo contains invalid fields.
-
1072  if (begin == end) return;
-
1073 
-
1074  Transition* prev = *begin;
-
1075  bool isAfterFirst = false;
-
1076 
-
1077  for (Transition** iter = begin; iter != end; ++iter) {
-
1078  Transition* const t = *iter;
-
1079 
-
1080  // 1) Update the untilDateTime of the previous Transition
-
1081  const extended::DateTuple& tt = t->transitionTime;
-
1082  if (isAfterFirst) {
-
1083  prev->untilDateTime = tt;
-
1084  }
-
1085 
-
1086  // 2) Calculate the current startDateTime by shifting the
-
1087  // transitionTime (represented in the UTC offset of the previous
-
1088  // transition) into the UTC offset of the *current* transition.
-
1089  int32_t seconds = tt.seconds + (
-
1090  - prev->offsetSeconds - prev->deltaSeconds
-
1091  + t->offsetSeconds + t->deltaSeconds);
-
1092  t->startDateTime = {tt.year, tt.month, tt.day, seconds, tt.suffix};
-
1093  extended::normalizeDateTuple(&t->startDateTime);
-
1094 
-
1095  // 3) The epochSecond of the 'transitionTime' is determined by the
-
1096  // UTC offset of the *previous* Transition. However, the
-
1097  // transitionTime can be represented by an illegal time (e.g. 24:00).
-
1098  // So, it is better to use the properly normalized startDateTime
-
1099  // (calculated above) with the *current* UTC offset.
-
1100  //
-
1101  // NOTE: We should also be able to calculate this directly from
-
1102  // 'transitionTimeU' which should still be a valid field, because it
-
1103  // hasn't been clobbered by 'untilDateTime' yet. Not sure if this saves
-
1104  // any CPU time though, since we still need to mutiply by 900.
-
1105  const extended::DateTuple& st = t->startDateTime;
-
1106  const acetime_t offsetSeconds =
-
1107  st.seconds - (t->offsetSeconds + t->deltaSeconds);
-
1108  LocalDate ld = LocalDate::forComponents(st.year, st.month, st.day);
-
1109  t->startEpochSeconds = ld.toEpochSeconds() + offsetSeconds;
-
1110 
-
1111  prev = t;
-
1112  isAfterFirst = true;
-
1113  }
-
1114 
-
1115  // The last Transition's until time is the until time of the MatchingEra.
-
1116  extended::DateTuple untilTimeW;
-
1117  extended::DateTuple untilTimeS;
-
1118  extended::DateTuple untilTimeU;
-
1119  expandDateTuple(
-
1120  &prev->match->untilDateTime,
-
1121  prev->offsetSeconds,
-
1122  prev->deltaSeconds,
-
1123  &untilTimeW,
-
1124  &untilTimeS,
-
1125  &untilTimeU);
-
1126  prev->untilDateTime = untilTimeW;
-
1127  }
-
1128 
-
1132  static void calcAbbreviations(Transition** begin, Transition** end) {
-
1133  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
1134  logging::printf("calcAbbreviations(): #transitions: %d\n",
-
1135  (int) (end - begin));
-
1136  }
-
1137  for (Transition** iter = begin; iter != end; ++iter) {
-
1138  Transition* const t = *iter;
-
1139  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
1140  logging::printf(
-
1141  "calcAbbreviations(): format:%s, deltaSeconds:%d, letter:%s\n",
-
1142  t->format(), t->deltaSeconds, t->abbrev);
-
1143  }
-
1144  createAbbreviation(
-
1145  t->abbrev,
-
1146  kAbbrevSize,
-
1147  t->format(),
-
1148  t->offsetSeconds,
-
1149  t->deltaSeconds,
-
1150  t->abbrev);
-
1151  }
-
1152  }
-
1153 
-
1154  private:
-
1155  const typename D::ZoneInfoStore* mZoneInfoStore; // nullable
-
1156  typename D::ZoneInfoBroker mZoneInfoBroker;
-
1157 
-
1158  // NOTE: Maybe move mNumMatches and mMatches into a MatchStorage object.
-
1159  mutable uint8_t mNumMatches = 0; // actual number of matches
-
1160  mutable MatchingEra mMatches[kMaxMatches];
-
1161  mutable TransitionStorage mTransitionStorage;
-
1162 };
-
1163 
- -
1170  public ExtendedZoneProcessorTemplate<extended::Info> {
-
1171 
-
1172  public:
-
1174  static const uint8_t kTypeExtended = 4;
-
1175 
-
1176  explicit ExtendedZoneProcessor(
-
1177  const extended::Info::ZoneInfo* zoneInfo = nullptr)
-
1178  : ExtendedZoneProcessorTemplate<extended::Info>(
-
1179  kTypeExtended, &mZoneInfoStore, (uintptr_t) zoneInfo)
-
1180  {}
-
1181 
-
1182  private:
-
1183  extended::Info::ZoneInfoStore mZoneInfoStore;
-
1184 };
-
1185 
-
1186 } // namespace ace_time
-
1187 
-
1188 #endif
-
static int16_t currentEpochYear()
Get the current epoch year.
Definition: Epoch.h:27
-
An implementation of ZoneProcessor that supports for all zones defined by the TZ Database.
-
void printTargetNameTo(Print &printer) const override
Print the full identifier (e.g.
-
static const uint8_t kMaxTransitions
Max number of Transitions required for all Zones supported by this class.
-
FindResult findByEpochSeconds(acetime_t epochSeconds) const override
-
uint8_t getTransitionAllocSize() const
Get the largest allocation size of TransitionStorage.
-
extended::TransitionForDateTimeTemplate< D > TransitionForDateTime
Exposed only for testing purposes.
-
void resetTransitionAllocSize()
Reset the TransitionStorage high water mark.
-
void printShortNameTo(Print &printer) const override
Print a short human-readable identifier (e.g.
-
extended::TransitionTemplate< D > Transition
Exposed only for testing purposes.
-
ExtendedZoneProcessorTemplate(uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)
Constructor.
-
bool equalsZoneKey(uintptr_t zoneKey) const override
Return true if ZoneProcessor is associated with the given opaque zoneKey.
-
extended::MatchingEraTemplate< D > MatchingEra
Exposed only for testing purposes.
-
bool initForEpochSeconds(acetime_t epochSeconds) const
Initialize using the epochSeconds.
-
void setZoneKey(uintptr_t zoneKey) override
Set the opaque zoneKey of this object to a new value, reseting any internally cached information.
-
uint32_t getZoneId() const override
Return the unique stable zoneId.
-
void printNameTo(Print &printer) const override
Print a human-readable identifier (e.g.
-
void log() const
Used only for debugging.
-
extended::TransitionForSecondsTemplate< D > TransitionForSeconds
Exposed only for testing purposes.
-
extended::TransitionStorageTemplate< kMaxTransitions, D > TransitionStorage
Exposed only for testing purposes.
-
FindResult findByLocalDateTime(const LocalDateTime &ldt) const override
Return the search results at given LocalDateTime.
-
void setZoneInfoStore(const typename D::ZoneInfoStore *zoneInfoStore)
Set the zone info store at runtime.
-
bool initForYear(int16_t year) const
Initialize the zone rules cache, keyed by the "current" year.
-
bool isLink() const override
Return true if timezone is a Link entry pointing to a Zone entry.
-
A specific implementation of ExtendedZoneProcessorTemplate that uses the extended::Info::ZoneXxxBroke...
-
static const uint8_t kTypeExtended
Unique TimeZone type identifier for ExtendedZoneProcessor.
-
Result of a search for transition at a specific epochSeconds or a specific LocalDateTime.
Definition: ZoneProcessor.h:23
-
uint8_t fold
For findByLocalDateTime(), when type==kTypeOverlap, this is a copy of the requested LocalDateTime::fo...
Definition: ZoneProcessor.h:76
-
int32_t stdOffsetSeconds
STD offset of the resulting OffsetDateTime.
Definition: ZoneProcessor.h:79
-
int32_t dstOffsetSeconds
DST offset of the resulting OffsetDateTime.
Definition: ZoneProcessor.h:82
-
int32_t reqDstOffsetSeconds
DST offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(),...
-
const char * abbrev
Pointer to the abbreviation stored in the transient Transition::abbrev variable.
-
int32_t reqStdOffsetSeconds
STD offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(),...
Definition: ZoneProcessor.h:95
-
uint8_t type
Result of the findByEpochSeconds() or findByLocalDateTime() search methods.
Definition: ZoneProcessor.h:65
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
uint8_t fold() const
Return the fold.
-
int16_t year() const
Return the year.
-
The date (year, month, day) representing the date without regards to time zone.
Definition: LocalDate.h:46
-
static LocalDate forComponents(int16_t year, uint8_t month, uint8_t day)
Factory method using separated year, month and day fields.
Definition: LocalDate.h:153
-
static const int16_t kMaxYear
The largest year that is expected to be handled by LocalDate.
Definition: LocalDate.h:78
-
static const int16_t kMinYear
The smallest year that is expected to be handled by LocalDate.
Definition: LocalDate.h:69
-
int16_t year() const
Return the year.
Definition: LocalDate.h:301
-
static LocalDate forEpochSeconds(acetime_t epochSeconds)
Factory method using the number of seconds since the current epoch year given by currentEpochYear().
Definition: LocalDate.h:205
-
static const int16_t kInvalidYear
Sentinel year which indicates one or more of the following conditions:
Definition: LocalDate.h:58
-
A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo.
Definition: ZoneInfoLow.h:807
-
Base interface for ZoneProcessor classes.
-
int16_t mYear
Year that was used to calculate the transitions in the current cache.
-
bool isFilled(int16_t year) const
Check if the Transition cache is filled for the given year and current epochYear.
-
int16_t mEpochYear
Epoch year that was used to calculate the transitions in the current cache.
- -
uint8_t getAllocSize() const
Return the maximum number of transitions which was allocated.
Definition: Transition.h:766
-
void resetAllocSize()
Reset the current allocation size.
Definition: Transition.h:759
-
TransitionForDateTime findTransitionForDateTime(const LocalDateTime &ldt) const
Return the candidate Transitions matching the given dateTime.
Definition: Transition.h:677
-
TransitionForSeconds findTransitionForSeconds(acetime_t epochSeconds) const
Return the Transition matching the given epochSeconds.
Definition: Transition.h:561
-
void init()
Initialize all pools to 0 size, usually when a new year is initialized.
Definition: Transition.h:382
-
void log() const
Verify that the indexes are valid.
Definition: Transition.h:733
-
Identifiers used by implementation code which need to be publically exported.
-
const uint8_t kAbbrevSize
Size of the c-string buffer needed to hold a time zone abbreviation.
Definition: common.h:44
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
static const uint8_t kSuffixW
Represents 'w' or wall time.
Definition: ZoneInfoLow.h:88
-
static const uint8_t kSuffixS
Represents 's' or standard time.
Definition: ZoneInfoLow.h:91
-
static const uint8_t kSuffixU
Represents 'u' or UTC time.
Definition: ZoneInfoLow.h:94
-
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoLow.h:324
-
Data structure that captures the matching ZoneEra and its ZoneRule transitions for a given year.
Definition: Transition.h:47
-
The result of the findTransitionForDateTime(const LocalDatetime& ldt) method which can return 0,...
Definition: Transition.h:309
-
const TransitionTemplate< D > * curr
The matching transition, or null if not found or in gap.
Definition: Transition.h:315
-
const TransitionTemplate< D > * prev
The previous transition.
Definition: Transition.h:312
-
uint8_t num
Number of matches: 0, 1, 2.
Definition: Transition.h:318
-
Tuple of a matching Transition and its 'fold'.
Definition: Transition.h:279
-
const TransitionTemplate< D > * curr
The matching transition, or null if not found.
Definition: Transition.h:281
-
uint8_t num
Number of occurrences of the resulting LocalDateTime: 0, 1, or 2.
Definition: Transition.h:292
-
uint8_t fold
1 if corresponding datetime occurred the second time
Definition: Transition.h:284
-
Represents an interval of time where the time zone obeyed a certain UTC offset and DST delta.
Definition: Transition.h:112
-
int32_t deltaSeconds
The DST delta seconds.
Definition: Transition.h:180
-
char abbrev[kAbbrevSize]
The calculated effective time zone abbreviation, e.g.
Definition: Transition.h:188
-
static void printTransitions(const char *prefix, const TransitionTemplate *const *begin, const TransitionTemplate *const *end)
Print an iterable of Transitions from 'begin' to 'end'.
Definition: Transition.h:258
-
int32_t offsetSeconds
The standard time offset seconds, not the total offset.
Definition: Transition.h:177
-
A simple tuple to represent a year/month pair.
-
- - - - diff --git a/docs/html/LocalDateTime_8cpp_source.html b/docs/html/LocalDateTime_8cpp_source.html deleted file mode 100644 index 1a6417972..000000000 --- a/docs/html/LocalDateTime_8cpp_source.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalDateTime.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
LocalDateTime.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #include <string.h> // strlen()
-
7 #include <Arduino.h> // strncpy_P()
-
8 #include <AceCommon.h>
-
9 #include "common/DateStrings.h"
-
10 #include "LocalDateTime.h"
-
11 
-
12 using ace_common::printPad2To;
-
13 
-
14 namespace ace_time {
-
15 
-
16 void LocalDateTime::printTo(Print& printer) const {
-
17  if (isError()) {
-
18  printer.print(F("<Invalid LocalDateTime>"));
-
19  return;
-
20  }
-
21 
-
22  // Date
-
23  printer.print(mLocalDate.year());
-
24  printer.print('-');
-
25  printPad2To(printer, mLocalDate.month(), '0');
-
26  printer.print('-');
-
27  printPad2To(printer, mLocalDate.day(), '0');
-
28 
-
29  // 'T' separator
-
30  printer.print('T');
-
31 
-
32  // Time
-
33  printPad2To(printer, mLocalTime.hour(), '0');
-
34  printer.print(':');
-
35  printPad2To(printer, mLocalTime.minute(), '0');
-
36  printer.print(':');
-
37  printPad2To(printer, mLocalTime.second(), '0');
-
38 }
-
39 
- -
41  if (strlen(dateString) < kDateTimeStringLength) {
-
42  return LocalDateTime::forError();
-
43  }
-
44  return forDateStringChainable(dateString);
-
45 }
-
46 
- -
48  const __FlashStringHelper* dateString) {
-
49  // Copy the F() string into a buffer. Use strncpy_P() because ESP32 and
-
50  // ESP8266 do not have strlcpy_P(). We need +1 for the '\0' character and
-
51  // another +1 to determine if the dateString is too long to fit.
-
52  char buffer[kDateTimeStringLength + 2];
-
53  strncpy_P(buffer, (const char*) dateString, sizeof(buffer));
-
54  buffer[kDateTimeStringLength + 1] = 0;
-
55 
-
56  // check if the original F() was too long
-
57  size_t len = strlen(buffer);
-
58  if (len > kDateTimeStringLength) {
-
59  return forError();
-
60  }
-
61 
-
62  return forDateString(buffer);
-
63 }
-
64 
- -
66  const char* s = dateString;
-
67 
-
68  // date
- -
70 
-
71  // 'T'
-
72  s++;
-
73 
-
74  // time
- -
76 
-
77  dateString = s;
-
78  return LocalDateTime(ld, lt);
-
79 }
-
80 
-
81 }
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
void printTo(Print &printer) const
Print LocalDateTime to 'printer' in ISO 8601 format.
-
LocalDateTime()
Constructor.
-
bool isError() const
Return true if any component indicates an error condition.
-
static LocalDateTime forError()
Factory method that returns an instance where isError() returns true.
-
static LocalDateTime forDateString(const char *dateString)
Factory method.
-
static LocalDateTime forDateStringChainable(const char *&dateString)
Variant of forDateString() that updates the pointer to the next unprocessed character.
-
The date (year, month, day) representing the date without regards to time zone.
Definition: LocalDate.h:46
-
int16_t year() const
Return the year.
Definition: LocalDate.h:301
-
static LocalDate forDateStringChainable(const char *&dateString)
Variant of forDateString() that updates the pointer to the next unprocessed character.
Definition: LocalDate.h:260
-
uint8_t month() const
Return the month with January=1, December=12.
Definition: LocalDate.h:307
-
uint8_t day() const
Return the day of the month.
Definition: LocalDate.h:313
-
The time (hour, minute, second) fields representing the time without regards to the day or the time z...
Definition: LocalTime.h:27
-
static LocalTime forTimeStringChainable(const char *&timeString)
Variant of forTimeString() that updates the pointer to the next unprocessed character.
Definition: LocalTime.cpp:36
-
uint8_t hour() const
Return the hour.
Definition: LocalTime.h:118
-
uint8_t minute() const
Return the minute.
Definition: LocalTime.h:124
-
uint8_t second() const
Return the second.
Definition: LocalTime.h:130
-
- - - - diff --git a/docs/html/LocalDateTime_8h_source.html b/docs/html/LocalDateTime_8h_source.html deleted file mode 100644 index 01790a6a1..000000000 --- a/docs/html/LocalDateTime_8h_source.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalDateTime.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
LocalDateTime.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_LOCAL_DATE_TIME_H
-
7 #define ACE_TIME_LOCAL_DATE_TIME_H
-
8 
-
9 #include <stddef.h> // size_t
-
10 #include <stdint.h> // uint8_t, etc
-
11 #include <string.h> // strlen()
-
12 #include "LocalDate.h"
-
13 #include "LocalTime.h"
-
14 
-
15 class Print;
-
16 class __FlashStringHelper;
-
17 
-
18 namespace ace_time {
-
19 
- -
31  public:
-
32 
-
44  static LocalDateTime forComponents(int16_t year, uint8_t month,
-
45  uint8_t day, uint8_t hour, uint8_t minute, uint8_t second,
-
46  uint8_t fold = 0) {
- - -
49  return LocalDateTime(ld, lt);
-
50  }
-
51 
- -
64  acetime_t epochSeconds, uint8_t fold = 0) {
-
65  if (epochSeconds == LocalDate::kInvalidEpochSeconds) {
-
66  return forError();
-
67  }
-
68 
-
69  // Integer floor-division towards -infinity
-
70  int32_t days = (epochSeconds < 0)
-
71  ? (epochSeconds + 1) / 86400 - 1
-
72  : epochSeconds / 86400;
-
73 
-
74  // Avoid % operator, because it's slow on an 8-bit process and because
-
75  // epochSeconds could be negative.
-
76  int32_t seconds = epochSeconds - 86400 * days;
-
77 
- -
79  LocalTime lt = LocalTime::forSeconds(seconds, fold);
-
80  return LocalDateTime(ld, lt);
-
81  }
-
82 
- -
91  int64_t unixSeconds, uint8_t fold = 0) {
-
92  if (unixSeconds == LocalDate::kInvalidUnixSeconds64) {
-
93  return forError();
-
94  }
-
95 
-
96  int64_t epochSeconds64 = unixSeconds
- -
98 
-
99  // Integer floor-division towards -infinity
-
100  int32_t days = (epochSeconds64 < 0)
-
101  ? (epochSeconds64 + 1) / 86400 - 1
-
102  : epochSeconds64 / 86400;
-
103  int32_t seconds = epochSeconds64 - (int64_t) 86400 * days;
-
104 
- -
106  LocalTime lt = LocalTime::forSeconds(seconds, fold);
-
107  return LocalDateTime(ld, lt);
-
108  }
-
109 
-
125  static LocalDateTime forDateString(const char* dateString);
-
126 
-
131  static LocalDateTime forDateString(const __FlashStringHelper* dateString);
-
132 
-
140  static LocalDateTime forDateStringChainable(const char*& dateString);
-
141 
- - -
145  }
-
146 
-
148  explicit LocalDateTime() {}
-
149 
-
151  bool isError() const {
-
152  return mLocalDate.isError() || mLocalTime.isError();
-
153  }
-
154 
-
156  int16_t year() const { return mLocalDate.year(); }
-
157 
-
159  void year(int16_t year) { mLocalDate.year(year); }
-
160 
-
162  uint8_t month() const { return mLocalDate.month(); }
-
163 
-
165  void month(uint8_t month) { mLocalDate.month(month); }
-
166 
-
168  uint8_t day() const { return mLocalDate.day(); }
-
169 
-
171  void day(uint8_t day) { mLocalDate.day(day); }
-
172 
-
174  uint8_t hour() const { return mLocalTime.hour(); }
-
175 
-
177  void hour(uint8_t hour) { mLocalTime.hour(hour); }
-
178 
-
180  uint8_t minute() const { return mLocalTime.minute(); }
-
181 
-
183  void minute(uint8_t minute) { mLocalTime.minute(minute); }
-
184 
-
186  uint8_t second() const { return mLocalTime.second(); }
-
187 
-
189  void second(uint8_t second) { mLocalTime.second(second); }
-
190 
-
192  uint8_t fold() const { return mLocalTime.fold(); }
-
193 
-
195  void fold(uint8_t fold) { mLocalTime.fold(fold); }
-
196 
-
198  uint8_t dayOfWeek() const { return mLocalDate.dayOfWeek(); }
-
199 
-
201  const LocalDate& localDate() const { return mLocalDate; }
-
202 
-
204  const LocalTime& localTime() const { return mLocalTime; }
-
205 
-
211  int32_t toEpochDays() const {
- -
213  return mLocalDate.toEpochDays();
-
214  }
-
215 
-
217  int32_t toUnixDays() const {
- - -
220  }
-
221 
- - -
232  int32_t days = mLocalDate.toEpochDays();
-
233  int32_t seconds = mLocalTime.toSeconds();
-
234  return (int32_t) 86400 * days + seconds;
-
235  }
-
236 
-
245  int64_t toUnixSeconds64() const {
- -
247  int32_t days = toUnixDays();
-
248  int32_t seconds = mLocalTime.toSeconds();
-
249  return (int64_t) 86400 * days + seconds;
-
250  }
-
251 
-
258  int8_t compareTo(const LocalDateTime& that) const {
-
259  int8_t dateCompare = localDate().compareTo(that.localDate());
-
260  if (dateCompare != 0) return dateCompare;
-
261  int8_t timeCompare = localTime().compareTo(that.localTime());
-
262  if (timeCompare != 0) return timeCompare;
-
263  return 0;
-
264  }
-
265 
-
271  void printTo(Print& printer) const;
-
272 
-
273  // Use default copy constructor and assignment operator.
-
274  LocalDateTime(const LocalDateTime&) = default;
-
275  LocalDateTime& operator=(const LocalDateTime&) = default;
-
276 
-
277  private:
-
278  friend bool operator==(const LocalDateTime& a, const LocalDateTime& b);
-
279 
-
281  static const uint8_t kDateTimeStringLength = 19;
-
282 
-
284  explicit LocalDateTime(const LocalDate& ld, const LocalTime& lt):
-
285  mLocalDate(ld),
-
286  mLocalTime(lt) {}
-
287 
-
288  LocalDate mLocalDate;
-
289  LocalTime mLocalTime;
-
290 };
-
291 
-
297 inline bool operator==(const LocalDateTime& a, const LocalDateTime& b) {
-
298  return a.mLocalDate == b.mLocalDate
-
299  && a.mLocalTime == b.mLocalTime;
-
300 }
-
301 
-
303 inline bool operator!=(const LocalDateTime& a, const LocalDateTime& b) {
-
304  return ! (a == b);
-
305 }
-
306 
-
307 }
-
308 
-
309 #endif
-
static int32_t daysToCurrentEpochFromUnixEpoch()
Return the number of days from the Unix epoch (1970-01-01T00:00:00) to the current epoch.
Definition: Epoch.h:58
-
static int64_t secondsToCurrentEpochFromUnixEpoch64()
Return the number of seconds from the Unix epoch (1970-01-01T00:00:00) to the current epoch.
Definition: Epoch.h:69
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
int64_t toUnixSeconds64() const
Return 64-bit seconds from Unix epoch 1970-01-01 00:00:00 UTC, after assuming that the date and time ...
-
void hour(uint8_t hour)
Set the hour.
-
void printTo(Print &printer) const
Print LocalDateTime to 'printer' in ISO 8601 format.
-
static LocalDateTime forEpochSeconds(acetime_t epochSeconds, uint8_t fold=0)
Factory method.
Definition: LocalDateTime.h:63
-
LocalDateTime()
Constructor.
-
void fold(uint8_t fold)
Set the fold.
-
static LocalDateTime forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint8_t fold=0)
Factory method using separated date and time components.
Definition: LocalDateTime.h:44
-
void minute(uint8_t minute)
Set the minute.
-
uint8_t day() const
Return the day of the month.
-
const LocalDate & localDate() const
Return the LocalDate.
-
bool isError() const
Return true if any component indicates an error condition.
-
int8_t compareTo(const LocalDateTime &that) const
Compare 'this' LocalDateTime with 'that' LocalDateTime, and return (<0, 0, >0) according to whether '...
-
static LocalDateTime forUnixSeconds64(int64_t unixSeconds, uint8_t fold=0)
Factory method that takes the 64-bit number of seconds since Unix Epoch of 1970-01-01.
Definition: LocalDateTime.h:90
-
void month(uint8_t month)
Set the month.
-
static LocalDateTime forError()
Factory method that returns an instance where isError() returns true.
-
uint8_t month() const
Return the month with January=1, December=12.
-
uint8_t fold() const
Return the fold.
-
static LocalDateTime forDateString(const char *dateString)
Factory method.
-
uint8_t second() const
Return the second.
-
void day(uint8_t day)
Set the day of the month.
-
uint8_t minute() const
Return the minute.
-
void year(int16_t year)
Set the year.
-
int32_t toUnixDays() const
Return the number of days since Unix epoch (1970-01-01 00:00:00).
-
const LocalTime & localTime() const
Return the LocalTime.
-
int32_t toEpochDays() const
Return number of whole days since AceTime epoch.
-
uint8_t hour() const
Return the hour.
-
static LocalDateTime forDateStringChainable(const char *&dateString)
Variant of forDateString() that updates the pointer to the next unprocessed character.
-
uint8_t dayOfWeek() const
Return the day of the week, Monday=1, Sunday=7 (per ISO 8601).
-
friend bool operator==(const LocalDateTime &a, const LocalDateTime &b)
Return true if two LocalDateTime objects are equal in all components.
-
void second(uint8_t second)
Set the second.
-
acetime_t toEpochSeconds() const
Return seconds since the current AceTime epoch defined by Epoch::currentEpochYear().
-
int16_t year() const
Return the year.
-
The date (year, month, day) representing the date without regards to time zone.
Definition: LocalDate.h:46
-
static LocalDate forComponents(int16_t year, uint8_t month, uint8_t day)
Factory method using separated year, month and day fields.
Definition: LocalDate.h:153
-
static const int32_t kInvalidEpochDays
Sentinel epochDays which indicates an error.
Definition: LocalDate.h:81
-
bool isError() const
Return true if any component indicates an error condition.
Definition: LocalDate.h:337
-
static LocalDate forError()
Factory method that returns a LocalDate which represents an error condition.
Definition: LocalDate.h:291
-
static const int64_t kInvalidUnixSeconds64
Sentinel unixSeconds64 which indicates an error.
Definition: LocalDate.h:87
-
uint8_t dayOfWeek() const
Calculate the day of week given the (year, month, day).
Definition: LocalDate.h:324
-
int8_t compareTo(const LocalDate &that) const
Compare 'this' LocalDate to 'that' LocalDate, returning (<0, 0, >0) according to whether 'this' occur...
Definition: LocalDate.h:406
-
static const int32_t kInvalidEpochSeconds
Sentinel epochSeconds which indicates an error.
Definition: LocalDate.h:84
-
int16_t year() const
Return the year.
Definition: LocalDate.h:301
-
int32_t toEpochDays() const
Return number of days since the current epoch year sCurrentEpochYear.
Definition: LocalDate.h:352
-
static LocalDate forEpochDays(int32_t epochDays)
Factory method using the number of days since the current epoch (usually 2000-01-01).
Definition: LocalDate.h:166
-
uint8_t month() const
Return the month with January=1, December=12.
Definition: LocalDate.h:307
-
uint8_t day() const
Return the day of the month.
Definition: LocalDate.h:313
-
The time (hour, minute, second) fields representing the time without regards to the day or the time z...
Definition: LocalTime.h:27
-
static LocalTime forComponents(uint8_t hour, uint8_t minute, uint8_t second, uint8_t fold=0)
Factory method using separated date, time, and time zone fields.
Definition: LocalTime.h:43
-
uint8_t fold() const
Return the fold.
Definition: LocalTime.h:136
-
acetime_t toSeconds() const
Return the number of seconds since midnight.
Definition: LocalTime.h:145
-
static LocalTime forError()
Factory method that returns an instance which indicates an error condition.
Definition: LocalTime.h:95
-
uint8_t hour() const
Return the hour.
Definition: LocalTime.h:118
-
uint8_t minute() const
Return the minute.
Definition: LocalTime.h:124
-
static LocalTime forSeconds(acetime_t seconds, uint8_t fold=0)
Factory method.
Definition: LocalTime.h:56
-
uint8_t second() const
Return the second.
Definition: LocalTime.h:130
-
bool isError() const
Return true if any component is outside the normal time range of 00:00:00 to 23:59:59.
Definition: LocalTime.h:108
-
int8_t compareTo(const LocalTime &that) const
Compare 'this' LocalTime with 'that' LocalTime, and return (<0, 0, >0) according to whether 'this' oc...
Definition: LocalTime.h:162
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
- - - - diff --git a/docs/html/LocalDate_8cpp_source.html b/docs/html/LocalDate_8cpp_source.html deleted file mode 100644 index 996a2b351..000000000 --- a/docs/html/LocalDate_8cpp_source.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalDate.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
LocalDate.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #include <Arduino.h>
-
7 #include <AceCommon.h> // printPad2To()
-
8 #include "common/DateStrings.h" // DateStrings
-
9 #include "LocalDate.h"
-
10 
-
11 namespace ace_time {
-
12 
-
13 // Offsets used to calculate the day of the week of a particular (year, month,
-
14 // day). The element represents the number of days that the first of month of
-
15 // the given index was shifted by the cummulative days from the previous months.
-
16 // To determine the "day of the week", we must normalize the resulting "day of
-
17 // the week" modulo 7.
-
18 //
-
19 // January is index 0, but we also use a modified year, where the year starts in
-
20 // March to make leap years easier to handle, so the shift for March=3 is 0.
-
21 //
-
22 // For example:
-
23 // * atc_days_of_week[3] is 3 because April (index=3) 1st is shifted by 3
-
24 // days because March has 31 days (28 + 3).
-
25 // * atc_days_of_week[4] is 5 because May (index=4) 1st is shifted by 2
-
26 // additional days from April, because April has 30 days (28 + 2).
-
27 const uint8_t LocalDate::sDayOfWeek[12] = {
-
28  5 /*Jan=31*/,
-
29  1 /*Feb=28*/,
-
30  0 /*Mar=31, start of "year"*/,
-
31  3 /*Apr=30*/,
-
32  5 /*May=31*/,
-
33  1 /*Jun=30*/,
-
34  3 /*Jul=31*/,
-
35  6 /*Aug=31*/,
-
36  2 /*Sep=30*/,
-
37  4 /*Oct=31*/,
-
38  0 /*Nov=30*/,
-
39  2 /*Dec=31*/,
-
40 };
-
41 
-
42 // Using 0=Jan offset.
-
43 const uint8_t LocalDate::sDaysInMonth[12] = {
-
44  31 /*Jan=31*/,
-
45  28 /*Feb=28*/,
-
46  31 /*Mar=31*/,
-
47  30 /*Apr=30*/,
-
48  31 /*May=31*/,
-
49  30 /*Jun=30*/,
-
50  31 /*Jul=31*/,
-
51  31 /*Aug=31*/,
-
52  30 /*Sep=30*/,
-
53  31 /*Oct=31*/,
-
54  30 /*Nov=30*/,
-
55  31 /*Dec=31*/,
-
56 };
-
57 
-
58 void LocalDate::printTo(Print& printer) const {
-
59  if (isError()) {
-
60  printer.print(F("<Invalid LocalDate>"));
-
61  return;
-
62  }
-
63 
-
64  // Date
-
65  using ace_common::printPad2To;
-
66  printer.print(year());
-
67  printer.print('-');
-
68  printPad2To(printer, mMonth, '0');
-
69  printer.print('-');
-
70  printPad2To(printer, mDay, '0');
-
71  printer.print(' ');
-
72 
-
73  // Week day
-
74  DateStrings ds;
-
75  printer.print(ds.dayOfWeekLongString(dayOfWeek()));
-
76 }
-
77 
-
78 }
-
Class that translates a numeric month (1-12) or dayOfWeek (1-7) into a human readable string.
Definition: DateStrings.h:26
-
const char * dayOfWeekLongString(uint8_t dayOfWeek)
Return the short dayOfWeek name.
Definition: DateStrings.h:56
-
bool isError() const
Return true if any component indicates an error condition.
Definition: LocalDate.h:337
-
uint8_t dayOfWeek() const
Calculate the day of week given the (year, month, day).
Definition: LocalDate.h:324
-
void printTo(Print &printer) const
Print LocalDate to 'printer' in ISO 8601 format, along with the day of week.
Definition: LocalDate.cpp:58
-
int16_t year() const
Return the year.
Definition: LocalDate.h:301
-
- - - - diff --git a/docs/html/LocalDate_8h_source.html b/docs/html/LocalDate_8h_source.html deleted file mode 100644 index e9f62c7fb..000000000 --- a/docs/html/LocalDate_8h_source.html +++ /dev/null @@ -1,404 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalDate.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
LocalDate.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_LOCAL_DATE_H
-
7 #define ACE_TIME_LOCAL_DATE_H
-
8 
-
9 #include <stdint.h>
-
10 #include <string.h> // strlen()
-
11 #include "Epoch.h"
-
12 #include "common/common.h"
-
13 
-
14 class Print;
-
15 
-
16 namespace ace_time {
-
17 
-
46 class LocalDate {
-
47  public:
-
58  static const int16_t kInvalidYear = INT16_MIN;
-
59 
-
69  static const int16_t kMinYear = 0;
-
70 
-
78  static const int16_t kMaxYear = 10000;
-
79 
-
81  static const int32_t kInvalidEpochDays = INT32_MIN;
-
82 
-
84  static const int32_t kInvalidEpochSeconds = INT32_MIN;
-
85 
-
87  static const int64_t kInvalidUnixSeconds64 = INT64_MIN;
-
88 
-
95  static const acetime_t kMinEpochSeconds = INT32_MIN + 1;
-
96 
-
102  static const acetime_t kMaxEpochSeconds = INT32_MAX;
-
103 
-
105  static const uint8_t kMonday = 1;
-
106 
-
108  static const uint8_t kTuesday = 2;
-
109 
-
111  static const uint8_t kWednesday = 3;
-
112 
-
114  static const uint8_t kThursday = 4;
-
115 
-
117  static const uint8_t kFriday = 5;
-
118 
-
120  static const uint8_t kSaturday = 6;
-
121 
-
123  static const uint8_t kSunday = 7;
-
124 
-
125  // Utility functions
-
126  public:
-
128  static bool isLeapYear(int16_t year) {
-
129  return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
-
130  }
-
131 
-
133  static uint8_t daysInMonth(int16_t year, uint8_t month) {
-
134  uint8_t days = sDaysInMonth[month - 1];
-
135  return (month == 2 && isLeapYear(year)) ? days + 1 : days;
-
136  }
-
137 
-
139  static bool isYearValid(int16_t year) {
-
140  return kMinYear <= year && year <= kMaxYear;
-
141  }
-
142 
-
143  // Factory methods.
-
144  public:
- -
154  int16_t year, uint8_t month, uint8_t day) {
- -
156  return LocalDate(year, month, day);
-
157  }
-
158 
-
166  static LocalDate forEpochDays(int32_t epochDays) {
-
167  int16_t year;
-
168  uint8_t month;
-
169  uint8_t day;
-
170  if (epochDays == kInvalidEpochDays) {
-
171  year = kInvalidYear;
-
172  month = 0;
-
173  day = 0;
-
174  } else {
-
175  // shift relative to Epoch::kInternalEpochYear
- -
177  ACE_TIME_EPOCH_CONVERTER::fromEpochDays(epochDays, year, month, day);
-
178  }
-
179  return forComponents(year, month, day);
-
180  }
-
181 
-
183  static LocalDate forUnixDays(int32_t unixDays) {
-
184  if (unixDays == kInvalidEpochDays) {
-
185  return forError();
-
186  }
-
187 
-
188  int32_t days = unixDays - Epoch::daysToCurrentEpochFromUnixEpoch();
-
189  return forEpochDays(days);
-
190  }
-
191 
-
205  static LocalDate forEpochSeconds(acetime_t epochSeconds) {
-
206  if (epochSeconds == kInvalidEpochSeconds) {
-
207  return forError();
-
208  }
-
209 
-
210  // integer floor-division towards -infinity
-
211  int32_t days = (epochSeconds < 0)
-
212  ? (epochSeconds + 1) / 86400 - 1
-
213  : epochSeconds / 86400;
-
214  return forEpochDays(days);
-
215  }
-
216 
-
224  static LocalDate forUnixSeconds64(int64_t unixSeconds) {
-
225  if (unixSeconds == kInvalidUnixSeconds64) {
-
226  return forError();
-
227  } else {
-
228  int64_t epochSeconds64 = unixSeconds
- -
230  int32_t days = (epochSeconds64 < 0)
-
231  ? (epochSeconds64 + 1) / 86400 - 1
-
232  : epochSeconds64 / 86400;
-
233  return forEpochDays(days);
-
234  }
-
235  }
-
236 
-
246  static LocalDate forDateString(const char* dateString) {
-
247  if (strlen(dateString) < kDateStringLength) {
-
248  return forError();
-
249  }
-
250  return forDateStringChainable(dateString);
-
251  }
-
252 
-
260  static LocalDate forDateStringChainable(const char*& dateString) {
-
261  const char* s = dateString;
-
262 
-
263  // year (assumes 4 digit year)
-
264  int16_t year = (*s++ - '0');
-
265  year = 10 * year + (*s++ - '0');
-
266  year = 10 * year + (*s++ - '0');
-
267  year = 10 * year + (*s++ - '0');
-
268 
-
269  // '-'
-
270  s++;
-
271 
-
272  // month
-
273  uint8_t month = (*s++ - '0');
-
274  month = 10 * month + (*s++ - '0');
-
275 
-
276  // '-'
-
277  s++;
-
278 
-
279  // day
-
280  uint8_t day = (*s++ - '0');
-
281  day = 10 * day + (*s++ - '0');
-
282 
-
283  dateString = s;
-
284  return forComponents(year, month, day);
-
285  }
-
286 
-
291  static LocalDate forError() {
-
292  return LocalDate(kInvalidYear, 0, 0);
-
293  }
-
294 
-
295  // Instance methods.
-
296  public:
-
298  explicit LocalDate() = default;
-
299 
-
301  int16_t year() const { return mYear; }
-
302 
-
304  void year(int16_t year) { mYear = year; }
-
305 
-
307  uint8_t month() const { return mMonth; }
-
308 
-
310  void month(uint8_t month) { mMonth = month; }
-
311 
-
313  uint8_t day() const { return mDay; }
-
314 
-
316  void day(uint8_t day) { mDay = day; }
-
317 
-
324  uint8_t dayOfWeek() const {
-
325  // The "year" starts in March to shift leap year calculation to end.
-
326  int16_t y = year() - (mMonth < 3);
-
327 
-
328  // Each year shifts the day of week by one. Each leap year by one.
-
329  // Except every 100 years. Unless divisible by 400.
-
330  int16_t d = y + y/4 - y/100 + y/400 + sDayOfWeek[mMonth-1] + mDay;
-
331 
-
332  // 2000-01-01 was a Saturday=6, so set the offsets accordingly
-
333  return (d < -1) ? (d + 1) % 7 + 8 : (d + 1) % 7 + 1;
-
334  }
-
335 
-
337  bool isError() const {
-
338  return mYear == kInvalidYear
-
339  || mDay < 1 || mDay > 31
-
340  || mMonth < 1 || mMonth > 12;
-
341  }
-
342 
-
352  int32_t toEpochDays() const {
-
353  if (isError()) return kInvalidEpochDays;
-
354  int32_t days = ACE_TIME_EPOCH_CONVERTER::toEpochDays(mYear, mMonth, mDay)
- -
356  return days;
-
357  }
-
358 
-
360  int32_t toUnixDays() const {
-
361  if (isError()) return kInvalidEpochDays;
- -
363  }
-
364 
- -
372  if (isError()) return kInvalidEpochSeconds;
-
373  return (int32_t) 86400 * toEpochDays();
-
374  }
-
375 
-
379  int64_t toUnixSeconds64() const {
-
380  if (isError()) return kInvalidUnixSeconds64;
-
381  return (int64_t) 86400 * toUnixDays();
-
382  }
-
383 
-
391  int16_t daysUntil(uint8_t month, uint8_t day) const {
-
392  int16_t y = year();
- -
394  if (this->compareTo(target) > 0) {
-
395  target.year(y + 1);
-
396  }
-
397  return target.toEpochDays() - this->toEpochDays();
-
398  }
-
399 
-
406  int8_t compareTo(const LocalDate& that) const {
-
407  if (mYear < that.mYear) return -1;
-
408  if (mYear > that.mYear) return 1;
-
409  if (mMonth < that.mMonth) return -1;
-
410  if (mMonth > that.mMonth) return 1;
-
411  if (mDay < that.mDay) return -1;
-
412  if (mDay > that.mDay) return 1;
-
413  return 0;
-
414  }
-
415 
-
422  void printTo(Print& printer) const;
-
423 
-
424  // Use default copy constructor and assignment operator.
-
425  LocalDate(const LocalDate&) = default;
-
426  LocalDate& operator=(const LocalDate&) = default;
-
427 
-
428  private:
-
429  friend bool operator==(
-
430  const LocalDate& a, const LocalDate& b);
-
431 
-
433  explicit LocalDate(int16_t year, uint8_t month, uint8_t day):
-
434  mYear(year),
-
435  mMonth(month),
-
436  mDay(day) {}
-
437 
-
438  private:
-
440  static const uint8_t kDateStringLength = 10;
-
441 
-
447  static const uint8_t sDayOfWeek[12];
-
448 
-
450  static const uint8_t sDaysInMonth[12];
-
451 
-
452  int16_t mYear; // [0,10000], INT16_MIN indicates error
-
453  uint8_t mMonth; // [1, 12], 0 indicates error
-
454  uint8_t mDay; // [1, 31], 0 indicates error
-
455 };
-
456 
-
458 inline bool operator==(const LocalDate& a, const LocalDate& b) {
-
459  return a.mDay == b.mDay
-
460  && a.mMonth == b.mMonth
-
461  && a.mYear == b.mYear;
-
462 }
-
463 
-
465 inline bool operator!=(const LocalDate& a, const LocalDate& b) {
-
466  return ! (a == b);
-
467 }
-
468 
-
469 }
-
470 
-
471 #endif
-
static int32_t daysToCurrentEpochFromInternalEpoch()
Number of days from the internal epoch (2000-01-01) to the current epoch.
Definition: Epoch.h:50
-
static int32_t daysToCurrentEpochFromUnixEpoch()
Return the number of days from the Unix epoch (1970-01-01T00:00:00) to the current epoch.
Definition: Epoch.h:58
-
static int64_t secondsToCurrentEpochFromUnixEpoch64()
Return the number of seconds from the Unix epoch (1970-01-01T00:00:00) to the current epoch.
Definition: Epoch.h:69
-
The date (year, month, day) representing the date without regards to time zone.
Definition: LocalDate.h:46
-
friend bool operator==(const LocalDate &a, const LocalDate &b)
Return true if two LocalDate objects are equal in all components.
Definition: LocalDate.h:458
-
static const uint8_t kWednesday
Wednesday ISO 8601 number.
Definition: LocalDate.h:111
-
static LocalDate forComponents(int16_t year, uint8_t month, uint8_t day)
Factory method using separated year, month and day fields.
Definition: LocalDate.h:153
-
static const int16_t kMaxYear
The largest year that is expected to be handled by LocalDate.
Definition: LocalDate.h:78
-
static bool isLeapYear(int16_t year)
True if year is a leap year.
Definition: LocalDate.h:128
-
static const int32_t kInvalidEpochDays
Sentinel epochDays which indicates an error.
Definition: LocalDate.h:81
-
bool isError() const
Return true if any component indicates an error condition.
Definition: LocalDate.h:337
-
static const uint8_t kTuesday
Tuesday ISO 8601 number.
Definition: LocalDate.h:108
-
int32_t toUnixDays() const
Return the number of days since Unix epoch (1970-01-01 00:00:00).
Definition: LocalDate.h:360
-
static LocalDate forError()
Factory method that returns a LocalDate which represents an error condition.
Definition: LocalDate.h:291
-
static const acetime_t kMinEpochSeconds
Minimum valid epochSeconds.
Definition: LocalDate.h:95
-
static LocalDate forDateString(const char *dateString)
Factory method.
Definition: LocalDate.h:246
-
static LocalDate forUnixSeconds64(int64_t unixSeconds)
Factory method that takes the 64-bit number of seconds since Unix Epoch of 1970-01-01.
Definition: LocalDate.h:224
-
void day(uint8_t day)
Set the day of the month.
Definition: LocalDate.h:316
-
static const int64_t kInvalidUnixSeconds64
Sentinel unixSeconds64 which indicates an error.
Definition: LocalDate.h:87
-
uint8_t dayOfWeek() const
Calculate the day of week given the (year, month, day).
Definition: LocalDate.h:324
-
static const uint8_t kFriday
Friday ISO 8601 number.
Definition: LocalDate.h:117
-
static const int16_t kMinYear
The smallest year that is expected to be handled by LocalDate.
Definition: LocalDate.h:69
-
int64_t toUnixSeconds64() const
Return the number of seconds since Unix epoch (1970-01-01 00:00:00).
Definition: LocalDate.h:379
-
void printTo(Print &printer) const
Print LocalDate to 'printer' in ISO 8601 format, along with the day of week.
Definition: LocalDate.cpp:58
-
int8_t compareTo(const LocalDate &that) const
Compare 'this' LocalDate to 'that' LocalDate, returning (<0, 0, >0) according to whether 'this' occur...
Definition: LocalDate.h:406
-
static uint8_t daysInMonth(int16_t year, uint8_t month)
Return the number of days in the given (year, month).
Definition: LocalDate.h:133
-
void month(uint8_t month)
Set the month.
Definition: LocalDate.h:310
-
static bool isYearValid(int16_t year)
Return true if year is within the range of [0,10000]
Definition: LocalDate.h:139
-
static const int32_t kInvalidEpochSeconds
Sentinel epochSeconds which indicates an error.
Definition: LocalDate.h:84
-
int16_t year() const
Return the year.
Definition: LocalDate.h:301
-
static const acetime_t kMaxEpochSeconds
Maximum valid epochSeconds.
Definition: LocalDate.h:102
-
static LocalDate forEpochSeconds(acetime_t epochSeconds)
Factory method using the number of seconds since the current epoch year given by currentEpochYear().
Definition: LocalDate.h:205
-
int32_t toEpochDays() const
Return number of days since the current epoch year sCurrentEpochYear.
Definition: LocalDate.h:352
-
static const uint8_t kThursday
Thursday ISO 8601 number.
Definition: LocalDate.h:114
-
static const uint8_t kSaturday
Saturday ISO 8601 number.
Definition: LocalDate.h:120
-
static const uint8_t kMonday
Monday ISO 8601 number.
Definition: LocalDate.h:105
-
static LocalDate forUnixDays(int32_t unixDays)
Factory method using the number of days since Unix epoch 1970-01-01.
Definition: LocalDate.h:183
-
LocalDate()=default
Default constructor does nothing.
-
int16_t daysUntil(uint8_t month, uint8_t day) const
Calculate number of days from current LocalDate to the next target (month, day).
Definition: LocalDate.h:391
-
static const int16_t kInvalidYear
Sentinel year which indicates one or more of the following conditions:
Definition: LocalDate.h:58
-
static LocalDate forEpochDays(int32_t epochDays)
Factory method using the number of days since the current epoch (usually 2000-01-01).
Definition: LocalDate.h:166
-
static LocalDate forDateStringChainable(const char *&dateString)
Variant of forDateString() that updates the pointer to the next unprocessed character.
Definition: LocalDate.h:260
-
uint8_t month() const
Return the month with January=1, December=12.
Definition: LocalDate.h:307
-
acetime_t toEpochSeconds() const
Return the number of seconds since the currentEpochYear().
Definition: LocalDate.h:371
-
static const uint8_t kSunday
Sunday ISO 8601 number.
Definition: LocalDate.h:123
-
void year(int16_t year)
Set the year.
Definition: LocalDate.h:304
-
uint8_t day() const
Return the day of the month.
Definition: LocalDate.h:313
-
Identifiers used by implementation code which need to be publically exported.
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
- - - - diff --git a/docs/html/LocalTime_8cpp_source.html b/docs/html/LocalTime_8cpp_source.html deleted file mode 100644 index 52aa07085..000000000 --- a/docs/html/LocalTime_8cpp_source.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalTime.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
LocalTime.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #include <string.h> // strlen()
-
7 #include <AceCommon.h>
-
8 #include "LocalTime.h"
-
9 
-
10 using ace_common::printPad2To;
-
11 
-
12 namespace ace_time {
-
13 
-
14 void LocalTime::printTo(Print& printer) const {
-
15  if (isError()) {
-
16  printer.print(F("<Invalid LocalTime>"));
-
17  return;
-
18  }
-
19 
-
20  // Time
-
21  printPad2To(printer, mHour, '0');
-
22  printer.print(':');
-
23  printPad2To(printer, mMinute, '0');
-
24  printer.print(':');
-
25  printPad2To(printer, mSecond, '0');
-
26 }
-
27 
-
28 LocalTime LocalTime::forTimeString(const char* timeString) {
-
29  if (strlen(timeString) < kTimeStringLength) {
-
30  return forError();
-
31  }
-
32  return forTimeStringChainable(timeString);
-
33 }
-
34 
-
35 // This assumes that the dateString is always long enough.
-
36 LocalTime LocalTime::forTimeStringChainable(const char*& timeString) {
-
37  const char* s = timeString;
-
38 
-
39  // hour
-
40  uint8_t hour = (*s++ - '0');
-
41  hour = 10 * hour + (*s++ - '0');
-
42 
-
43  // ':'
-
44  s++;
-
45 
-
46  // minute
-
47  uint8_t minute = (*s++ - '0');
-
48  minute = 10 * minute + (*s++ - '0');
-
49 
-
50  // ':'
-
51  s++;
-
52 
-
53  // second
-
54  uint8_t second = (*s++ - '0');
-
55  second = 10 * second + (*s++ - '0');
-
56 
-
57  timeString = s;
-
58  return LocalTime(hour, minute, second);
-
59 }
-
60 
-
61 }
-
The time (hour, minute, second) fields representing the time without regards to the day or the time z...
Definition: LocalTime.h:27
-
static LocalTime forTimeStringChainable(const char *&timeString)
Variant of forTimeString() that updates the pointer to the next unprocessed character.
Definition: LocalTime.cpp:36
-
static LocalTime forError()
Factory method that returns an instance which indicates an error condition.
Definition: LocalTime.h:95
-
static LocalTime forTimeString(const char *timeString)
Factory method.
Definition: LocalTime.cpp:28
-
void printTo(Print &printer) const
Print LocalTime to 'printer' in ISO 8601 format.
Definition: LocalTime.cpp:14
-
LocalTime()
Default constructor does nothing.
Definition: LocalTime.h:100
-
uint8_t hour() const
Return the hour.
Definition: LocalTime.h:118
-
uint8_t minute() const
Return the minute.
Definition: LocalTime.h:124
-
uint8_t second() const
Return the second.
Definition: LocalTime.h:130
-
bool isError() const
Return true if any component is outside the normal time range of 00:00:00 to 23:59:59.
Definition: LocalTime.h:108
-
- - - - diff --git a/docs/html/LocalTime_8h_source.html b/docs/html/LocalTime_8h_source.html deleted file mode 100644 index 2e26b2b68..000000000 --- a/docs/html/LocalTime_8h_source.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalTime.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
LocalTime.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_LOCAL_TIME_H
-
7 #define ACE_TIME_LOCAL_TIME_H
-
8 
-
9 #include <stdint.h>
-
10 #include "common/common.h"
-
11 
-
12 class Print;
-
13 
-
14 namespace ace_time {
-
15 
-
27 class LocalTime {
-
28  public:
-
30  static const int32_t kInvalidSeconds = INT32_MIN;
-
31 
-
43  static LocalTime forComponents(uint8_t hour, uint8_t minute,
-
44  uint8_t second, uint8_t fold = 0) {
-
45  return LocalTime(hour, minute, second, fold);
-
46  }
-
47 
-
56  static LocalTime forSeconds(acetime_t seconds, uint8_t fold = 0) {
-
57  uint8_t second, minute, hour;
-
58 
-
59  if (seconds == kInvalidSeconds) {
-
60  second = minute = hour = kInvalidValue; // causes isError() to be true
-
61  } else {
-
62  second = seconds % 60;
-
63  uint16_t minutes = seconds / 60;
-
64  minute = minutes % 60;
-
65  hour = minutes / 60;
-
66  }
-
67 
-
68  // Return a single object to allow return value optimization.
-
69  return LocalTime(hour, minute, second, fold);
-
70  }
-
71 
-
80  static LocalTime forTimeString(const char* timeString);
-
81 
-
89  static LocalTime forTimeStringChainable(const char*& timeString);
-
90 
-
95  static LocalTime forError() {
-
96  return LocalTime(kInvalidValue, kInvalidValue, kInvalidValue);
-
97  }
-
98 
-
100  explicit LocalTime() {}
-
101 
-
108  bool isError() const {
-
109  if (mSecond >= 60) return true;
-
110  if (mMinute >= 60) return true;
-
111  if (mHour == 24) {
-
112  return mSecond != 0 || mMinute != 0;
-
113  }
-
114  return mHour > 24;
-
115  }
-
116 
-
118  uint8_t hour() const { return mHour; }
-
119 
-
121  void hour(uint8_t hour) { mHour = hour; }
-
122 
-
124  uint8_t minute() const { return mMinute; }
-
125 
-
127  void minute(uint8_t minute) { mMinute = minute; }
-
128 
-
130  uint8_t second() const { return mSecond; }
-
131 
-
133  void second(uint8_t second) { mSecond = second; }
-
134 
-
136  uint8_t fold() const { return mFold; }
-
137 
-
139  void fold(uint8_t fold) { mFold = fold; }
-
140 
- -
146  if (isError()) {
-
147  return kInvalidSeconds;
-
148  } else {
-
149  return ((mHour * (int16_t) 60) + mMinute)
-
150  * (int32_t) 60 + mSecond;
-
151  }
-
152  }
-
153 
-
162  int8_t compareTo(const LocalTime& that) const {
-
163  if (mHour < that.mHour) return -1;
-
164  if (mHour > that.mHour) return 1;
-
165  if (mMinute < that.mMinute) return -1;
-
166  if (mMinute > that.mMinute) return 1;
-
167  if (mSecond < that.mSecond) return -1;
-
168  if (mSecond > that.mSecond) return 1;
-
169  return 0;
-
170  }
-
171 
-
177  void printTo(Print& printer) const;
-
178 
-
179  // Use default copy constructor and assignment operator.
-
180  LocalTime(const LocalTime&) = default;
-
181  LocalTime& operator=(const LocalTime&) = default;
-
182 
-
183  private:
-
184  friend bool operator==(const LocalTime& a, const LocalTime& b);
-
185 
-
187  static const uint8_t kTimeStringLength = 8;
-
188 
-
190  static const uint8_t kInvalidValue = UINT8_MAX;
-
191 
-
193  explicit LocalTime(
-
194  uint8_t hour,
-
195  uint8_t minute,
-
196  uint8_t second,
-
197  uint8_t fold = 0
-
198  ):
-
199  mHour(hour),
-
200  mMinute(minute),
-
201  mSecond(second),
-
202  mFold(fold)
-
203  {}
-
204 
-
205  private:
-
206  uint8_t mHour; // [0, 23]
-
207  uint8_t mMinute; // [0, 59]
-
208  uint8_t mSecond; // [0, 59]
-
209 
-
210  // Use a separate byte for fold. If we implemented this using a C++ bit
-
211  // field (e.g. the upper bit of 'mHour'), it causes BasicZoneProcessor and
-
212  // ExtendedZoneProcessor to consume 200 extra bytes of flash due to the bit
-
213  // masking operations on accesses and mutations. Even on AVR processors, I
-
214  // think the increase in static memory is better than paying the 200 bytes
-
215  // of flash memory. Using a separate byte is also faster.
-
216  uint8_t mFold; // [0, 1]
-
217 };
-
218 
-
220 inline bool operator==(const LocalTime& a, const LocalTime& b) {
-
221  return a.mSecond == b.mSecond
-
222  && a.mMinute == b.mMinute
-
223  && a.mHour == b.mHour;
-
224 }
-
225 
-
227 inline bool operator!=(const LocalTime& a, const LocalTime& b) {
-
228  return ! (a == b);
-
229 }
-
230 
-
231 }
-
232 
-
233 #endif
-
The time (hour, minute, second) fields representing the time without regards to the day or the time z...
Definition: LocalTime.h:27
-
static const int32_t kInvalidSeconds
An invalid seconds marker that indicates isError() true.
Definition: LocalTime.h:30
-
static LocalTime forComponents(uint8_t hour, uint8_t minute, uint8_t second, uint8_t fold=0)
Factory method using separated date, time, and time zone fields.
Definition: LocalTime.h:43
-
uint8_t fold() const
Return the fold.
Definition: LocalTime.h:136
-
friend bool operator==(const LocalTime &a, const LocalTime &b)
Return true if two LocalTime objects are equal.
Definition: LocalTime.h:220
-
acetime_t toSeconds() const
Return the number of seconds since midnight.
Definition: LocalTime.h:145
-
static LocalTime forTimeStringChainable(const char *&timeString)
Variant of forTimeString() that updates the pointer to the next unprocessed character.
Definition: LocalTime.cpp:36
-
void minute(uint8_t minute)
Set the minute.
Definition: LocalTime.h:127
-
void hour(uint8_t hour)
Set the hour.
Definition: LocalTime.h:121
-
static LocalTime forError()
Factory method that returns an instance which indicates an error condition.
Definition: LocalTime.h:95
-
static LocalTime forTimeString(const char *timeString)
Factory method.
Definition: LocalTime.cpp:28
-
void printTo(Print &printer) const
Print LocalTime to 'printer' in ISO 8601 format.
Definition: LocalTime.cpp:14
-
LocalTime()
Default constructor does nothing.
Definition: LocalTime.h:100
-
uint8_t hour() const
Return the hour.
Definition: LocalTime.h:118
-
void second(uint8_t second)
Set the second.
Definition: LocalTime.h:133
-
uint8_t minute() const
Return the minute.
Definition: LocalTime.h:124
-
static LocalTime forSeconds(acetime_t seconds, uint8_t fold=0)
Factory method.
Definition: LocalTime.h:56
-
uint8_t second() const
Return the second.
Definition: LocalTime.h:130
-
bool isError() const
Return true if any component is outside the normal time range of 00:00:00 to 23:59:59.
Definition: LocalTime.h:108
-
void fold(uint8_t fold)
Set the fold.
Definition: LocalTime.h:139
-
int8_t compareTo(const LocalTime &that) const
Compare 'this' LocalTime with 'that' LocalTime, and return (<0, 0, >0) according to whether 'this' oc...
Definition: LocalTime.h:162
-
Identifiers used by implementation code which need to be publically exported.
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
- - - - diff --git a/docs/html/OffsetDateTime_8cpp_source.html b/docs/html/OffsetDateTime_8cpp_source.html deleted file mode 100644 index b3119169d..000000000 --- a/docs/html/OffsetDateTime_8cpp_source.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/OffsetDateTime.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
OffsetDateTime.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #include <string.h> // strlen()
-
7 #include <Arduino.h> // strncpy_P()
-
8 #include "LocalDateTime.h"
-
9 #include "OffsetDateTime.h"
-
10 #include "TimeOffset.h"
-
11 
-
12 namespace ace_time {
-
13 
-
14 void OffsetDateTime::printTo(Print& printer) const {
-
15  if (isError()) {
-
16  printer.print(F("<Invalid OffsetDateTime>"));
-
17  return;
-
18  }
-
19 
-
20  // LocalDateTime
-
21  mLocalDateTime.printTo(printer);
-
22 
-
23  // TimeOffset "+/-hh:mm
-
24  mTimeOffset.printTo(printer);
-
25 }
-
26 
- -
28  if (strlen(dateString) < kDateStringLength) {
-
29  return forError();
-
30  }
-
31  return forDateStringChainable(dateString);
-
32 }
-
33 
- -
35  const __FlashStringHelper* dateString) {
-
36  // Copy the F() string into a buffer. Use strncpy_P() because ESP32 and
-
37  // ESP8266 do not have strlcpy_P(). We need +1 for the '\0' character and
-
38  // another +1 to determine if the dateString is too long to fit.
-
39  char buffer[kDateStringLength + 2];
-
40  strncpy_P(buffer, (const char*) dateString, sizeof(buffer));
-
41  buffer[kDateStringLength + 1] = 0;
-
42 
-
43  // check if the original F() was too long
-
44  size_t len = strlen(buffer);
-
45  if (len > kDateStringLength) {
-
46  return forError();
-
47  }
-
48 
-
49  return forDateString(buffer);
-
50 }
-
51 
- -
53  const char* s = dateString;
-
54 
- - -
57 
-
58  dateString = s;
-
59  return OffsetDateTime(ldt, offset);
-
60 }
-
61 
-
62 }
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
void printTo(Print &printer) const
Print LocalDateTime to 'printer' in ISO 8601 format.
-
static LocalDateTime forDateStringChainable(const char *&dateString)
Variant of forDateString() that updates the pointer to the next unprocessed character.
-
The date (year, month, day), time (hour, minute, second) and fixed offset from UTC (timeOffset).
-
static OffsetDateTime forDateStringChainable(const char *&dateString)
Variant of forDateString() that updates the pointer to the next unprocessed character.
-
bool isError() const
Return true if any component indicates an error condition.
-
OffsetDateTime()
Constructor.
-
void printTo(Print &printer) const
Print OffsetDateTime to 'printer' in ISO 8601 format.
-
static OffsetDateTime forError()
Factory method that returns an instance whose isError() is true.
-
static OffsetDateTime forDateString(const char *dateString)
Factory method.
-
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC,...
Definition: TimeOffset.h:56
-
void printTo(Print &printer) const
Print the human readable string, including a "-" or "+" prefix, in the form of "+/-hh:mm" or "+/-hh:m...
Definition: TimeOffset.cpp:15
-
static TimeOffset forOffsetStringChainable(const char *&offsetString)
Variant of forOffsetString() that updates the string pointer to the next unprocessed character.
Definition: TimeOffset.cpp:48
-
- - - - diff --git a/docs/html/OffsetDateTime_8h_source.html b/docs/html/OffsetDateTime_8h_source.html deleted file mode 100644 index 9bac87225..000000000 --- a/docs/html/OffsetDateTime_8h_source.html +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/OffsetDateTime.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
OffsetDateTime.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_OFFSET_DATE_TIME_H
-
7 #define ACE_TIME_OFFSET_DATE_TIME_H
-
8 
-
9 #include <stdint.h>
-
10 #include "TimeOffset.h"
-
11 #include "LocalDateTime.h"
-
12 
-
13 class Print;
-
14 
-
15 namespace ace_time {
-
16 
- -
38  public:
-
39 
- - - -
44  }
-
45 
-
61  static OffsetDateTime forComponents(int16_t year, uint8_t month,
-
62  uint8_t day, uint8_t hour, uint8_t minute, uint8_t second,
-
63  TimeOffset timeOffset, uint8_t fold = 0) {
- - -
66  return OffsetDateTime(ldt, timeOffset);
-
67  }
-
68 
- -
80  TimeOffset timeOffset, uint8_t fold = 0) {
-
81  if (epochSeconds != LocalDate::kInvalidEpochSeconds) {
-
82  epochSeconds += timeOffset.toSeconds();
-
83  }
-
84  auto ldt = LocalDateTime::forEpochSeconds(epochSeconds, fold);
-
85  return OffsetDateTime(ldt, timeOffset);
-
86  }
-
87 
- -
99  int64_t unixSeconds, TimeOffset timeOffset, int8_t fold = 0) {
-
100  if (unixSeconds != LocalDate::kInvalidUnixSeconds64) {
-
101  unixSeconds += timeOffset.toSeconds();
-
102  }
-
103  auto ldt = LocalDateTime::forUnixSeconds64(unixSeconds, fold);
-
104  return OffsetDateTime(ldt, timeOffset);
-
105  }
-
106 
-
123  static OffsetDateTime forDateString(const char* dateString);
-
124 
-
130  static OffsetDateTime forDateString(const __FlashStringHelper* dateString);
-
131 
-
139  static OffsetDateTime forDateStringChainable(const char*& dateString);
-
140 
- - -
144  }
-
145 
-
147  explicit OffsetDateTime() {}
-
148 
-
150  bool isError() const {
-
151  // Check mTimeOffset first because it's expected to be invalid more often.
-
152  return mTimeOffset.isError() || mLocalDateTime.isError();
-
153  }
-
154 
-
156  int16_t year() const { return mLocalDateTime.year(); }
-
157 
-
159  void year(int16_t year) { mLocalDateTime.year(year); }
-
160 
-
162  uint8_t month() const { return mLocalDateTime.month(); }
-
163 
-
165  void month(uint8_t month) { mLocalDateTime.month(month); }
-
166 
-
168  uint8_t day() const { return mLocalDateTime.day(); }
-
169 
-
171  void day(uint8_t day) { mLocalDateTime.day(day); }
-
172 
-
174  uint8_t hour() const { return mLocalDateTime.hour(); }
-
175 
-
177  void hour(uint8_t hour) { mLocalDateTime.hour(hour); }
-
178 
-
180  uint8_t minute() const { return mLocalDateTime.minute(); }
-
181 
-
183  void minute(uint8_t minute) { mLocalDateTime.minute(minute); }
-
184 
-
186  uint8_t second() const { return mLocalDateTime.second(); }
-
187 
-
189  void second(uint8_t second) { mLocalDateTime.second(second); }
-
190 
-
192  uint8_t fold() const { return mLocalDateTime.fold(); }
-
193 
-
195  void fold(uint8_t fold) { mLocalDateTime.fold(fold); }
-
196 
-
198  uint8_t dayOfWeek() const { return mLocalDateTime.dayOfWeek(); }
-
199 
-
201  TimeOffset timeOffset() const { return mTimeOffset; }
-
202 
-
204  void timeOffset(TimeOffset timeOffset) { mTimeOffset = timeOffset; }
-
205 
-
207  const LocalDateTime& localDateTime() const { return mLocalDateTime; }
-
208 
-
210  const LocalDate& localDate() const { return mLocalDateTime.localDate(); }
-
211 
-
213  const LocalTime& localTime() const { return mLocalDateTime.localTime(); }
-
214 
- -
222  acetime_t epochSeconds = toEpochSeconds();
-
223  return OffsetDateTime::forEpochSeconds(epochSeconds, timeOffset);
-
224  }
-
225 
-
231  int32_t toEpochDays() const {
- -
233 
-
234  int32_t epochDays = mLocalDateTime.localDate().toEpochDays();
-
235 
-
236  // Increment or decrement the day count depending on the time offset.
-
237  acetime_t timeOffset = mLocalDateTime.localTime().toSeconds()
-
238  - mTimeOffset.toSeconds();
-
239  if (timeOffset >= 86400) {
-
240  epochDays++;
-
241  } else if (timeOffset < 0) {
-
242  epochDays--;
-
243  }
-
244 
-
245  return epochDays;
-
246  }
-
247 
-
249  int32_t toUnixDays() const {
- - -
252  }
-
253 
- - -
261  acetime_t epochSeconds = mLocalDateTime.toEpochSeconds();
-
262  if (epochSeconds == LocalDate::kInvalidEpochSeconds) {
-
263  return epochSeconds;
-
264  }
-
265  return epochSeconds - mTimeOffset.toSeconds();
-
266  }
-
267 
-
275  int64_t toUnixSeconds64() const {
- -
277  return mLocalDateTime.toUnixSeconds64() - mTimeOffset.toSeconds();
-
278  }
-
279 
-
296  int8_t compareTo(const OffsetDateTime& that) const {
-
297  acetime_t thisSeconds = toEpochSeconds();
-
298  acetime_t thatSeconds = that.toEpochSeconds();
-
299  if (thisSeconds < thatSeconds) return -1;
-
300  if (thisSeconds > thatSeconds) return 1;
-
301  return 0;
-
302  }
-
303 
-
309  void printTo(Print& printer) const;
-
310 
-
311  // Use default copy constructor and assignment operator.
-
312  OffsetDateTime(const OffsetDateTime&) = default;
-
313  OffsetDateTime& operator=(const OffsetDateTime&) = default;
-
314 
-
315  private:
-
316  friend bool operator==(const OffsetDateTime& a, const OffsetDateTime& b);
-
317 
-
319  static const uint8_t kDateStringLength = 25;
-
320 
-
322  explicit OffsetDateTime(const LocalDateTime& ldt, TimeOffset timeOffset):
-
323  mLocalDateTime(ldt),
-
324  mTimeOffset(timeOffset) {}
-
325 
-
326  LocalDateTime mLocalDateTime;
-
327  TimeOffset mTimeOffset;
-
328 };
-
329 
-
335 inline bool operator==(const OffsetDateTime& a, const OffsetDateTime& b) {
-
336  return a.mLocalDateTime == b.mLocalDateTime
-
337  && a.mTimeOffset == b.mTimeOffset;
-
338 }
-
339 
-
341 inline bool operator!=(const OffsetDateTime& a, const OffsetDateTime& b) {
-
342  return ! (a == b);
-
343 }
-
344 
-
345 }
-
346 
-
347 #endif
-
static int32_t daysToCurrentEpochFromUnixEpoch()
Return the number of days from the Unix epoch (1970-01-01T00:00:00) to the current epoch.
Definition: Epoch.h:58
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
int64_t toUnixSeconds64() const
Return 64-bit seconds from Unix epoch 1970-01-01 00:00:00 UTC, after assuming that the date and time ...
-
static LocalDateTime forEpochSeconds(acetime_t epochSeconds, uint8_t fold=0)
Factory method.
Definition: LocalDateTime.h:63
-
static LocalDateTime forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint8_t fold=0)
Factory method using separated date and time components.
Definition: LocalDateTime.h:44
-
uint8_t day() const
Return the day of the month.
-
const LocalDate & localDate() const
Return the LocalDate.
-
bool isError() const
Return true if any component indicates an error condition.
-
static LocalDateTime forUnixSeconds64(int64_t unixSeconds, uint8_t fold=0)
Factory method that takes the 64-bit number of seconds since Unix Epoch of 1970-01-01.
Definition: LocalDateTime.h:90
-
static LocalDateTime forError()
Factory method that returns an instance where isError() returns true.
-
uint8_t month() const
Return the month with January=1, December=12.
-
uint8_t fold() const
Return the fold.
-
uint8_t second() const
Return the second.
-
uint8_t minute() const
Return the minute.
-
const LocalTime & localTime() const
Return the LocalTime.
-
uint8_t hour() const
Return the hour.
-
uint8_t dayOfWeek() const
Return the day of the week, Monday=1, Sunday=7 (per ISO 8601).
-
acetime_t toEpochSeconds() const
Return seconds since the current AceTime epoch defined by Epoch::currentEpochYear().
-
int16_t year() const
Return the year.
-
The date (year, month, day) representing the date without regards to time zone.
Definition: LocalDate.h:46
-
static const int32_t kInvalidEpochDays
Sentinel epochDays which indicates an error.
Definition: LocalDate.h:81
-
static const int64_t kInvalidUnixSeconds64
Sentinel unixSeconds64 which indicates an error.
Definition: LocalDate.h:87
-
static const int32_t kInvalidEpochSeconds
Sentinel epochSeconds which indicates an error.
Definition: LocalDate.h:84
-
int32_t toEpochDays() const
Return number of days since the current epoch year sCurrentEpochYear.
Definition: LocalDate.h:352
-
The time (hour, minute, second) fields representing the time without regards to the day or the time z...
Definition: LocalTime.h:27
-
acetime_t toSeconds() const
Return the number of seconds since midnight.
Definition: LocalTime.h:145
-
The date (year, month, day), time (hour, minute, second) and fixed offset from UTC (timeOffset).
-
static OffsetDateTime forUnixSeconds64(int64_t unixSeconds, TimeOffset timeOffset, int8_t fold=0)
Factory method that takes the number of seconds (64-bit) since Unix Epoch of 1970-01-01.
-
const LocalTime & localTime() const
Return the LocalTime.
-
uint8_t day() const
Return the day of the month.
-
TimeOffset timeOffset() const
Return the UTC offset of the OffsetDateTime.
-
int64_t toUnixSeconds64() const
Return the 64-bit number of seconds from Unix epoch 1970-01-01 00:00:00 UTC.
-
static OffsetDateTime forDateStringChainable(const char *&dateString)
Variant of forDateString() that updates the pointer to the next unprocessed character.
-
void month(uint8_t month)
Set the month.
-
bool isError() const
Return true if any component indicates an error condition.
-
const LocalDateTime & localDateTime() const
Return the LocalDateTime.
-
uint8_t hour() const
Return the hour.
-
void timeOffset(TimeOffset timeOffset)
Set the UTC offset.
-
OffsetDateTime()
Constructor.
-
uint8_t month() const
Return the month with January=1, December=12.
-
void printTo(Print &printer) const
Print OffsetDateTime to 'printer' in ISO 8601 format.
-
void minute(uint8_t minute)
Set the minute.
-
static OffsetDateTime forLocalDateTimeAndOffset(const LocalDateTime &localDateTime, TimeOffset timeOffset)
Factory method from LocalDateTime and TimeOffset.
-
acetime_t toEpochSeconds() const
Return seconds since AceTime epoch taking into account the UTC offset.
-
static OffsetDateTime forError()
Factory method that returns an instance whose isError() is true.
-
uint8_t fold() const
Return the fold.
-
int8_t compareTo(const OffsetDateTime &that) const
Compare 'this' OffsetDateTime with 'that' OffsetDateTime, and return (<0, 0, >0) according to whether...
-
void hour(uint8_t hour)
Set the hour.
-
uint8_t minute() const
Return the minute.
-
OffsetDateTime convertToTimeOffset(TimeOffset timeOffset) const
Create a OffsetDateTime in a different UTC offset code (with the same epochSeconds).
-
int16_t year() const
Return the year.
-
void day(uint8_t day)
Set the day of the month.
-
const LocalDate & localDate() const
Return the LocalDate.
-
friend bool operator==(const OffsetDateTime &a, const OffsetDateTime &b)
Return true if two OffsetDateTime objects are equal in all components.
-
static OffsetDateTime forDateString(const char *dateString)
Factory method.
-
uint8_t dayOfWeek() const
Return the day of the week, Monday=1, Sunday=7 (per ISO 8601).
-
int32_t toEpochDays() const
Return number of whole days since AceTime epoch taking into account the UTC offset.
-
int32_t toUnixDays() const
Return the number of days since Unix epoch (1970-01-01 00:00:00).
-
static OffsetDateTime forEpochSeconds(acetime_t epochSeconds, TimeOffset timeOffset, uint8_t fold=0)
Factory method.
-
void year(int16_t year)
Set the year.
-
void second(uint8_t second)
Set the second.
-
void fold(uint8_t fold)
Set the fold.
-
uint8_t second() const
Return the second.
-
static OffsetDateTime forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, TimeOffset timeOffset, uint8_t fold=0)
Factory method using separated date, time, and UTC offset fields.
-
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC,...
Definition: TimeOffset.h:56
-
static TimeOffset forError()
Return an error indicator.
Definition: TimeOffset.h:122
-
int32_t toSeconds() const
Return the time offset as seconds.
Definition: TimeOffset.h:131
-
bool isError() const
Return true if this TimeOffset represents an error.
Definition: TimeOffset.h:165
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
- - - - diff --git a/docs/html/TimeOffset_8cpp_source.html b/docs/html/TimeOffset_8cpp_source.html deleted file mode 100644 index 477382deb..000000000 --- a/docs/html/TimeOffset_8cpp_source.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimeOffset.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
TimeOffset.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #include <string.h> // strlen()
-
7 #include <AceCommon.h>
-
8 #include "common/DateStrings.h"
-
9 #include "TimeOffset.h"
-
10 
-
11 using ace_common::printPad2To;
-
12 
-
13 namespace ace_time {
-
14 
-
15 void TimeOffset::printTo(Print& printer) const {
-
16  int8_t hour;
-
17  int8_t minute;
-
18  int8_t second;
-
19  toHourMinuteSecond(hour, minute, second);
-
20 
-
21  if (mSeconds < 0) {
-
22  printer.print('-');
-
23  hour = -hour;
-
24  minute = -minute;
-
25  second = -second;
-
26  } else {
-
27  printer.print('+');
-
28  }
-
29  printPad2To(printer, hour, '0');
-
30  printer.print(':');
-
31  printPad2To(printer, minute, '0');
-
32  if (second != 0) {
-
33  printer.print(':');
-
34  printPad2To(printer, second, '0');
-
35  }
-
36 }
-
37 
-
38 TimeOffset TimeOffset::forOffsetString(const char* offsetString) {
-
39  // Verify length of ISO 8601 string, either 6 ("-hh:mm") or 9 ("-hh:mm:ss").
-
40  uint8_t len = strlen(offsetString);
-
41  if (len != 6 && len != 9) {
-
42  return forError();
-
43  }
-
44 
-
45  return forOffsetStringChainable(offsetString);
-
46 }
-
47 
- -
49  const char* s = offsetString;
-
50 
-
51  // '+' or '-'
-
52  char sign = *s++;
-
53  if (sign != '-' && sign != '+') {
-
54  return forError();
-
55  }
-
56 
-
57  // hour
-
58  int8_t hour = (*s++ - '0');
-
59  hour = 10 * hour + (*s++ - '0');
-
60  s++; // skip ':'
-
61 
-
62  // minute
-
63  int8_t minute = (*s++ - '0');
-
64  minute = 10 * minute + (*s++ - '0');
-
65 
-
66  // second if necessary
-
67  int8_t second = 0;
-
68  if (*s) {
-
69  s++; // skip ':'
-
70  second = (*s++ - '0');
-
71  second = 10 * second + (*s++ - '0');
-
72  s++;
-
73  }
-
74 
-
75  offsetString = s;
-
76  if (sign == '+') {
-
77  return forHourMinuteSecond(hour, minute, second);
-
78  } else {
-
79  return forHourMinuteSecond(-hour, -minute, -second);
-
80  }
-
81 }
-
82 
-
83 }
-
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC,...
Definition: TimeOffset.h:56
-
void toHourMinuteSecond(int8_t &hour, int8_t &minute, int8_t &second) const
Extract hour, minute, second from the offset.
Definition: TimeOffset.h:149
-
static TimeOffset forOffsetString(const char *offsetString)
Create from an offset string (e.g.
Definition: TimeOffset.cpp:38
-
static TimeOffset forError()
Return an error indicator.
Definition: TimeOffset.h:122
-
static TimeOffset forHourMinuteSecond(int8_t hour, int8_t minute, int8_t second)
Create a TimeOffset fro (hour, minute, second) offset.
Definition: TimeOffset.h:84
-
void printTo(Print &printer) const
Print the human readable string, including a "-" or "+" prefix, in the form of "+/-hh:mm" or "+/-hh:m...
Definition: TimeOffset.cpp:15
-
static TimeOffset forOffsetStringChainable(const char *&offsetString)
Variant of forOffsetString() that updates the string pointer to the next unprocessed character.
Definition: TimeOffset.cpp:48
-
- - - - diff --git a/docs/html/TimeOffset_8h_source.html b/docs/html/TimeOffset_8h_source.html deleted file mode 100644 index 83b567c1a..000000000 --- a/docs/html/TimeOffset_8h_source.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimeOffset.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
TimeOffset.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_TIME_OFFSET_H
-
7 #define ACE_TIME_TIME_OFFSET_H
-
8 
-
9 #include <stdint.h>
-
10 
-
11 class Print;
-
12 
-
13 namespace ace_time {
-
14 
-
15 // These functions need to set the mSeconds and it seemed inefficient to
-
16 // go through the factory method and assignment operator, so I expose
-
17 // setMinutes() to them for efficiency.
-
18 class TimeOffset;
-
19 namespace time_offset_mutation {
-
20 void incrementHour(TimeOffset& offset);
-
21 void increment15Minutes(TimeOffset& offset);
-
22 }
-
23 
-
56 class TimeOffset {
-
57  public:
-
62  static TimeOffset forHours(int8_t hours) {
-
63  return TimeOffset::forMinutes(hours * int16_t(60));
-
64  }
-
65 
-
74  static TimeOffset forHourMinute(int8_t hour, int8_t minute) {
-
75  int32_t minutes = (hour * int32_t(60) + minute) * 60;
-
76  return TimeOffset(minutes);
-
77  }
-
78 
- -
85  int8_t hour, int8_t minute, int8_t second) {
-
86  int32_t seconds = (hour * int32_t(60) + minute) * 60 + second;
-
87  return TimeOffset(seconds);
-
88  }
-
89 
-
91  static TimeOffset forMinutes(int16_t minutes) {
-
92  return TimeOffset(minutes * int32_t(60));
-
93  }
-
94 
-
96  static TimeOffset forSeconds(int32_t seconds) {
-
97  return TimeOffset(seconds);
-
98  }
-
99 
-
109  static TimeOffset forOffsetString(const char* offsetString);
-
110 
-
119  static TimeOffset forOffsetStringChainable(const char*& offsetString);
-
120 
-
122  static TimeOffset forError() { return TimeOffset(kErrorSeconds); }
-
123 
-
125  explicit TimeOffset() {}
-
126 
-
128  int16_t toMinutes() const { return mSeconds / 60; }
-
129 
-
131  int32_t toSeconds() const { return mSeconds; }
-
132 
-
138  void toHourMinute(int8_t& hour, int8_t& minute) const {
-
139  int32_t minutes = mSeconds / 60;
-
140  hour = minutes / 60;
-
141  minute = minutes % 60;
-
142  }
-
143 
- -
150  int8_t& hour, int8_t& minute, int8_t& second) const {
-
151  int32_t minutes = mSeconds / 60;
-
152  second = mSeconds % 60;
-
153  hour = minutes / 60;
-
154  minute = minutes % 60;
-
155  }
-
156 
-
162  bool isZero() const { return mSeconds == 0; }
-
163 
-
165  bool isError() const {
-
166  return mSeconds == kErrorSeconds;
-
167  }
-
168 
-
175  void printTo(Print& printer) const;
-
176 
-
177  // Use default copy constructor and assignment operator.
-
178  TimeOffset(const TimeOffset&) = default;
-
179  TimeOffset& operator=(const TimeOffset&) = default;
-
180 
-
181  private:
-
182  friend bool operator==(const TimeOffset& a, const TimeOffset& b);
-
183 
-
184  // Give access to setMinutes()
-
185  friend void time_offset_mutation::incrementHour(TimeOffset& offset);
-
186  friend void time_offset_mutation::increment15Minutes(TimeOffset& offset);
-
187 
-
189  explicit TimeOffset(int32_t seconds):
-
190  mSeconds(seconds) {}
-
191 
-
193  void setMinutes(int16_t minutes) {
-
194  mSeconds = minutes * int32_t(60);
-
195  }
-
196 
-
198  void setSeconds(int32_t seconds) {
-
199  mSeconds = seconds;
-
200  }
-
201 
-
202  private:
-
204  static const int32_t kErrorSeconds = INT32_MIN;
-
205 
-
210  int32_t mSeconds = 0;
-
211 };
-
212 
-
213 inline bool operator==(const TimeOffset& a, const TimeOffset& b) {
-
214  return a.mSeconds == b.mSeconds;
-
215 }
-
216 
-
217 inline bool operator!=(const TimeOffset& a, const TimeOffset& b) {
-
218  return ! (a == b);
-
219 }
-
220 
-
221 }
-
222 
-
223 #endif
-
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC,...
Definition: TimeOffset.h:56
-
void toHourMinuteSecond(int8_t &hour, int8_t &minute, int8_t &second) const
Extract hour, minute, second from the offset.
Definition: TimeOffset.h:149
-
int16_t toMinutes() const
Return the time offset as minutes.
Definition: TimeOffset.h:128
-
TimeOffset()
Constructor.
Definition: TimeOffset.h:125
-
void toHourMinute(int8_t &hour, int8_t &minute) const
Extract hour and minute representation of the offset.
Definition: TimeOffset.h:138
-
static TimeOffset forOffsetString(const char *offsetString)
Create from an offset string (e.g.
Definition: TimeOffset.cpp:38
-
bool isZero() const
Returns true if offset is 00:00.
Definition: TimeOffset.h:162
-
static TimeOffset forError()
Return an error indicator.
Definition: TimeOffset.h:122
-
int32_t toSeconds() const
Return the time offset as seconds.
Definition: TimeOffset.h:131
-
static TimeOffset forSeconds(int32_t seconds)
Create TimeOffset from seconds from 00:00.
Definition: TimeOffset.h:96
-
static TimeOffset forHourMinuteSecond(int8_t hour, int8_t minute, int8_t second)
Create a TimeOffset fro (hour, minute, second) offset.
Definition: TimeOffset.h:84
-
static TimeOffset forHours(int8_t hours)
Create TimeOffset with the corresponding hour offset.
Definition: TimeOffset.h:62
-
static TimeOffset forHourMinute(int8_t hour, int8_t minute)
Create TimeOffset from (hour, minute) offset.
Definition: TimeOffset.h:74
-
static TimeOffset forMinutes(int16_t minutes)
Create TimeOffset from minutes from 00:00.
Definition: TimeOffset.h:91
-
void printTo(Print &printer) const
Print the human readable string, including a "-" or "+" prefix, in the form of "+/-hh:mm" or "+/-hh:m...
Definition: TimeOffset.cpp:15
-
static TimeOffset forOffsetStringChainable(const char *&offsetString)
Variant of forOffsetString() that updates the string pointer to the next unprocessed character.
Definition: TimeOffset.cpp:48
-
bool isError() const
Return true if this TimeOffset represents an error.
Definition: TimeOffset.h:165
-
void incrementHour(OffsetDateTime &dateTime)
Increment the hour by one within the interval [0, 23].
-
void increment15Minutes(TimeOffset &offset)
Increment the TimeOffset by 15 minute interval.
-
- - - - diff --git a/docs/html/TimePeriod_8cpp_source.html b/docs/html/TimePeriod_8cpp_source.html deleted file mode 100644 index e7da62491..000000000 --- a/docs/html/TimePeriod_8cpp_source.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimePeriod.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
TimePeriod.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #include <Print.h>
-
7 #include <AceCommon.h>
-
8 #include "TimePeriod.h"
-
9 
-
10 using ace_common::printPad2To;
-
11 
-
12 namespace ace_time {
-
13 
-
14 void TimePeriod::printTo(Print& printer) const {
-
15  if (isError()) {
-
16  const __FlashStringHelper* message;
-
17  if (mSign == 1) {
-
18  message = F("<+Inf>");
-
19  } else if (mSign == -1) {
-
20  message = F("<-Inf>");
-
21  } else {
-
22  message = F("<Error>");
-
23  }
-
24  printer.print(message);
-
25  return;
-
26  }
-
27 
-
28  if (mSign < 0) {
-
29  printer.print('-');
-
30  }
-
31  printPad2To(printer, mHour, '0');
-
32  printer.print(':');
-
33  printPad2To(printer, mMinute, '0');
-
34  printer.print(':');
-
35  printPad2To(printer, mSecond, '0');
-
36 }
-
37 
-
38 }
-
void printTo(Print &printer) const
Print to given printer.
Definition: TimePeriod.cpp:14
-
bool isError() const
Return true if this represents an error.
Definition: TimePeriod.h:153
-
- - - - diff --git a/docs/html/TimePeriod_8h_source.html b/docs/html/TimePeriod_8h_source.html deleted file mode 100644 index 09dae720d..000000000 --- a/docs/html/TimePeriod_8h_source.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimePeriod.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
TimePeriod.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_TIME_PERIOD_H
-
7 #define ACE_TIME_TIME_PERIOD_H
-
8 
-
9 #include <stdint.h>
-
10 
-
11 class Print;
-
12 
-
13 namespace ace_time {
-
14 
-
27 class TimePeriod {
-
28  public:
-
30  static const int32_t kInvalidPeriodSeconds = INT32_MIN;
-
31 
-
37  static const int32_t kMaxPeriodSeconds = 921599;
-
38 
-
46  static TimePeriod forError(int8_t sign = 0) {
-
47  return TimePeriod(255, 255, 255, sign);
-
48  }
-
49 
-
60  explicit TimePeriod(uint8_t hour, uint8_t minute, uint8_t second,
-
61  int8_t sign = 1):
-
62  mHour(hour),
-
63  mMinute(minute),
-
64  mSecond(second),
-
65  mSign(sign) {}
-
66 
-
75  explicit TimePeriod(int32_t seconds = 0) {
-
76  if (seconds == kInvalidPeriodSeconds) {
-
77  mHour = mMinute = mSecond = 255;
-
78  mSign = 0;
-
79  return;
-
80  } else if (seconds < -kMaxPeriodSeconds) {
-
81  mHour = mMinute = mSecond = 255;
-
82  mSign = -1;
-
83  return;
-
84  } else if (seconds > kMaxPeriodSeconds) {
-
85  mHour = mMinute = mSecond = 255;
-
86  mSign = 1;
-
87  return;
-
88  }
-
89 
-
90  if (seconds < 0) {
-
91  mSign = -1;
-
92  seconds = -seconds;
-
93  } else {
-
94  mSign = 1;
-
95  }
-
96  mSecond = seconds % 60;
-
97  seconds /= 60;
-
98  mMinute = seconds % 60;
-
99  seconds /= 60;
-
100  mHour = seconds;
-
101  }
-
102 
-
104  uint8_t hour() const { return mHour; }
-
105 
-
107  void hour(uint8_t hour) { mHour = hour; }
-
108 
-
110  uint8_t minute() const { return mMinute; }
-
111 
-
113  void minute(uint8_t minute) { mMinute = minute; }
-
114 
-
116  uint8_t second() const { return mSecond; }
-
117 
-
119  void second(uint8_t second) { mSecond = second; }
-
120 
-
122  int8_t sign() const { return mSign; }
-
123 
-
129  void sign(int8_t sign) { mSign = sign; }
-
130 
-
136  int32_t toSeconds() const {
-
137  if (isError()) {
-
138  return kInvalidPeriodSeconds;
-
139  }
-
140  int32_t seconds = ((mHour * (int16_t) 60) + mMinute) * (int32_t) 60
-
141  + mSecond;
-
142  return (mSign > 0) ? seconds : -seconds;
-
143  }
-
144 
-
153  bool isError() const {
-
154  return mSign == 0 || mSecond == 255 || mMinute == 255;
-
155  }
-
156 
-
162  int8_t compareTo(const TimePeriod& that) const {
-
163  int32_t thisSeconds = toSeconds();
-
164  int32_t thatSeconds = that.toSeconds();
-
165  if (thisSeconds < thatSeconds) {
-
166  return -1;
-
167  } else if (thisSeconds > thatSeconds) {
-
168  return 1;
-
169  } else {
-
170  return 0;
-
171  }
-
172  }
-
173 
-
185  void printTo(Print& printer) const;
-
186 
-
187  // Use default copy constructor and assignment operator.
-
188  TimePeriod(const TimePeriod&) = default;
-
189  TimePeriod& operator=(const TimePeriod&) = default;
-
190 
-
191  private:
-
192  friend bool operator==(const TimePeriod& a, const TimePeriod& b);
-
193 
-
194  uint8_t mHour; // [0, 255], normally hour < 24
-
195  uint8_t mMinute; // [0, 59], normally minute < 60
-
196  uint8_t mSecond; // [0, 59], normally second < 60
-
197 
-
204  int8_t mSign;
-
205 };
-
206 
-
211 inline bool operator==(const TimePeriod& a, const TimePeriod& b) {
-
212  return a.mSecond == b.mSecond
-
213  && a.mMinute == b.mMinute
-
214  && a.mHour == b.mHour
-
215  && a.mSign == b.mSign;
-
216 }
-
217 
-
219 inline bool operator!=(const TimePeriod& a, const TimePeriod& b) {
-
220  return ! (a == b);
-
221 }
-
222 
-
223 }
-
224 
-
225 #endif
-
Represents a period of time relative to some known point in time, potentially represented by a DateTi...
Definition: TimePeriod.h:27
-
int8_t sign() const
Return the sign bit.
Definition: TimePeriod.h:122
-
static const int32_t kInvalidPeriodSeconds
An invalid time period seconds.
Definition: TimePeriod.h:30
-
TimePeriod(int32_t seconds=0)
Constructor from number of seconds.
Definition: TimePeriod.h:75
-
static TimePeriod forError(int8_t sign=0)
Factory method that creates a TimePeriod representing a generic error so that isError() returns true.
Definition: TimePeriod.h:46
-
void minute(uint8_t minute)
Set the minute.
Definition: TimePeriod.h:113
-
static const int32_t kMaxPeriodSeconds
The largest period that can be represented by this class, in seconds, corresponding to +/- 255h59m59s...
Definition: TimePeriod.h:37
-
int8_t compareTo(const TimePeriod &that) const
Compare 'this' TimePeriod with 'that' TimePeriod and return (<0, 0, >0) according to (this<that,...
Definition: TimePeriod.h:162
-
void hour(uint8_t hour)
Set the hour.
Definition: TimePeriod.h:107
-
TimePeriod(uint8_t hour, uint8_t minute, uint8_t second, int8_t sign=1)
Constructor.
Definition: TimePeriod.h:60
-
uint8_t second() const
Return the second.
Definition: TimePeriod.h:116
-
void sign(int8_t sign)
Set the sign bit.
Definition: TimePeriod.h:129
-
friend bool operator==(const TimePeriod &a, const TimePeriod &b)
Return true if two TimePeriod objects are equal.
Definition: TimePeriod.h:211
-
uint8_t minute() const
Return the minute.
Definition: TimePeriod.h:110
-
void printTo(Print &printer) const
Print to given printer.
Definition: TimePeriod.cpp:14
-
void second(uint8_t second)
Set the second.
Definition: TimePeriod.h:119
-
uint8_t hour() const
Return the hour.
Definition: TimePeriod.h:104
-
int32_t toSeconds() const
Convert to number of seconds.
Definition: TimePeriod.h:136
-
bool isError() const
Return true if this represents an error.
Definition: TimePeriod.h:153
-
- - - - diff --git a/docs/html/TimeZoneData_8h_source.html b/docs/html/TimeZoneData_8h_source.html deleted file mode 100644 index c5a13a065..000000000 --- a/docs/html/TimeZoneData_8h_source.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimeZoneData.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
TimeZoneData.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_TIME_ZONE_DATA_H
-
7 #define ACE_TIME_TIME_ZONE_DATA_H
-
8 
-
9 #include <stdint.h>
-
10 #include "ZoneProcessor.h"
-
11 
-
12 namespace ace_time {
-
13 
-
38 struct TimeZoneData {
-
39  static const uint8_t kTypeError = 0;
-
40  static const uint8_t kTypeManual = 1;
-
41  static const uint8_t kTypeZoneId = 2;
-
42 
-
47  TimeZoneData(uint32_t zid)
-
48  : type(kTypeZoneId),
-
49  zoneId(zid)
-
50  {}
-
51 
-
53  TimeZoneData(int16_t stdMinutes, int16_t dstMinutes)
-
54  : type(kTypeManual),
-
55  stdOffsetMinutes(stdMinutes),
-
56  dstOffsetMinutes(dstMinutes)
-
57  {}
-
58 
- -
61  : type(kTypeError),
-
62  zoneId(0)
-
63  {}
-
64 
-
65  uint8_t type;
-
66 
-
67  union {
-
76  struct {
-
77  int16_t stdOffsetMinutes;
-
78  int16_t dstOffsetMinutes;
-
79  };
-
80 
-
85  uint32_t zoneId;
-
86  };
-
87 };
-
88 
-
89 inline bool operator==(const TimeZoneData& a, const TimeZoneData& b) {
-
90  if (a.type != b.type) return false;
-
91  switch (a.type) {
-
92  case TimeZoneData::kTypeManual:
-
93  return (a.stdOffsetMinutes == b.stdOffsetMinutes)
-
94  && (a.dstOffsetMinutes == b.dstOffsetMinutes);
-
95  case TimeZoneData::kTypeZoneId:
-
96  return (a.zoneId == b.zoneId);
-
97  case TimeZoneData::kTypeError:
-
98  return true;
-
99  default:
-
100  return false;
-
101  }
-
102 }
-
103 
-
104 inline bool operator!=(const TimeZoneData& a, const TimeZoneData& b) {
-
105  return ! (a == b);
-
106 }
-
107 
-
108 }
-
109 
-
110 #endif
-
Data structure that captures the internal state of a TimeZone object with enough information so that ...
Definition: TimeZoneData.h:38
-
uint32_t zoneId
Both TimeZone::kTypeBasic and TimeZone::kTypeExtended are mapped to a TimeZoneData::kTypeZoneId.
Definition: TimeZoneData.h:85
-
TimeZoneData()
Default constructor gives kTypeError sentinel.
Definition: TimeZoneData.h:60
-
TimeZoneData(uint32_t zid)
Constructor for kTypeZoneId needed because C+11 does not have member initialization,...
Definition: TimeZoneData.h:47
-
TimeZoneData(int16_t stdMinutes, int16_t dstMinutes)
Constructor for kTypeManual.
Definition: TimeZoneData.h:53
-
- - - - diff --git a/docs/html/TimeZone_8cpp_source.html b/docs/html/TimeZone_8cpp_source.html deleted file mode 100644 index 07696965f..000000000 --- a/docs/html/TimeZone_8cpp_source.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimeZone.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
TimeZone.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #include <Print.h>
-
7 #include "TimeZone.h"
-
8 #include "TimeOffset.h"
-
9 
-
10 namespace ace_time {
-
11 
-
12 void TimeZone::printTo(Print& printer) const {
-
13  switch (mType) {
-
14  case kTypeError:
-
15  case kTypeReserved:
-
16  printer.print("<Error>");
-
17  break;
-
18 
-
19  case kTypeManual:
-
20  if (isUtc()) {
-
21  printer.print("UTC");
-
22  } else {
-
23  TimeOffset::forMinutes(mStdOffsetMinutes).printTo(printer);
-
24  TimeOffset::forMinutes(mDstOffsetMinutes).printTo(printer);
-
25  }
-
26  break;
-
27 
-
28  default:
-
29  getBoundZoneProcessor()->printNameTo(printer);
-
30  break;
-
31  }
-
32 }
-
33 
-
34 void TimeZone::printShortTo(Print& printer) const {
-
35  switch (mType) {
-
36  case kTypeError:
-
37  case kTypeReserved:
-
38  printer.print("<Error>");
-
39  break;
-
40 
-
41  case kTypeManual:
-
42  if (isUtc()) {
-
43  printer.print("UTC");
-
44  } else {
-
45  auto utcOffset = TimeOffset::forMinutes(
-
46  mStdOffsetMinutes + mDstOffsetMinutes);
-
47  utcOffset.printTo(printer);
-
48  printer.print('(');
-
49  printer.print((mDstOffsetMinutes != 0) ? "D" : "S");
-
50  printer.print(')');
-
51  }
-
52  break;
-
53 
-
54  default:
-
55  getBoundZoneProcessor()->printShortNameTo(printer);
-
56  break;
-
57  }
-
58 }
-
59 
-
60 void TimeZone::printTargetNameTo(Print& printer) const {
-
61  if (isLink()) {
-
62  getBoundZoneProcessor()->printTargetNameTo(printer);
-
63  }
-
64 }
-
65 
-
66 }
-
static TimeOffset forMinutes(int16_t minutes)
Create TimeOffset from minutes from 00:00.
Definition: TimeOffset.h:91
-
void printTo(Print &printer) const
Print the human readable string, including a "-" or "+" prefix, in the form of "+/-hh:mm" or "+/-hh:m...
Definition: TimeOffset.cpp:15
-
void printTo(Print &printer) const
Print the text representation of the time zone using the full canonical time zone name or UTC offset ...
Definition: TimeZone.cpp:12
-
void printTargetNameTo(Print &printer) const
Print the name of the target zone if the current time zone is a Link.
Definition: TimeZone.cpp:60
-
bool isUtc() const
Return true if UTC (+00:00+00:00).
Definition: TimeZone.h:463
-
bool isLink() const
Return true if timezone is a Link entry pointing to a Zone entry.
Definition: TimeZone.h:271
-
void printShortTo(Print &printer) const
Print the short human readable representation of the time zone.
Definition: TimeZone.cpp:34
-
static const uint8_t kTypeError
A TimeZone that represents an invalid condition.
Definition: TimeZone.h:89
-
static const uint8_t kTypeReserved
Reserved for future use.
Definition: TimeZone.h:95
-
static const uint8_t kTypeManual
Manual STD offset and DST offset.
Definition: TimeZone.h:92
-
virtual void printTargetNameTo(Print &printer) const =0
Print the full identifier (e.g.
-
virtual void printNameTo(Print &printer) const =0
Print a human-readable identifier (e.g.
-
virtual void printShortNameTo(Print &printer) const =0
Print a short human-readable identifier (e.g.
-
- - - - diff --git a/docs/html/TimeZone_8h_source.html b/docs/html/TimeZone_8h_source.html deleted file mode 100644 index 803febb6d..000000000 --- a/docs/html/TimeZone_8h_source.html +++ /dev/null @@ -1,557 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimeZone.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
TimeZone.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_TIME_ZONE_H
-
7 #define ACE_TIME_TIME_ZONE_H
-
8 
-
9 #include <stdint.h> // uintptr_t
-
10 #include "TimeOffset.h"
-
11 #include "ZoneProcessor.h"
-
12 #include "BasicZoneProcessor.h"
-
13 #include "ExtendedZoneProcessor.h"
-
14 #include "CompleteZoneProcessor.h"
-
15 #include "TimeZoneData.h"
-
16 #include "ZonedExtra.h"
-
17 
-
18 class Print;
-
19 
-
20 namespace ace_time {
-
21 
-
86 class TimeZone {
-
87  public:
-
89  static const uint8_t kTypeError = 0;
-
90 
-
92  static const uint8_t kTypeManual = 1;
-
93 
-
95  static const uint8_t kTypeReserved = 2;
-
96 
-
98  static TimeZone forUtc() {
-
99  return TimeZone();
-
100  }
-
101 
- -
116  TimeOffset stdOffset,
-
117  TimeOffset dstOffset = TimeOffset()
-
118  ) {
-
119  return TimeZone(stdOffset, dstOffset);
-
120  }
-
121 
-
128  static TimeZone forHours(int8_t stdHours, int8_t dstHours = 0) {
- -
130  TimeOffset::forHours(stdHours),
-
131  TimeOffset::forHours(dstHours)
-
132  );
-
133  }
-
134 
-
141  static TimeZone forMinutes(int16_t stdMinutes, int16_t dstMinutes = 0) {
- -
143  TimeOffset::forMinutes(stdMinutes),
-
144  TimeOffset::forMinutes(dstMinutes)
-
145  );
-
146  }
-
147 
- -
155  int8_t stdHour,
-
156  int8_t stdMinute,
-
157  int8_t dstHour = 0,
-
158  int8_t dstMinute = 0
-
159  ) {
- -
161  TimeOffset::forHourMinute(stdHour, stdMinute),
-
162  TimeOffset::forHourMinute(dstHour, dstMinute)
-
163  );
-
164  }
-
165 
- -
175  const basic::Info::ZoneInfo* zoneInfo,
-
176  BasicZoneProcessor* zoneProcessor
-
177  ) {
-
178  return TimeZone(
-
179  zoneProcessor->getType(),
-
180  (uintptr_t) zoneInfo,
-
181  zoneProcessor
-
182  );
-
183  }
-
184 
- -
194  const extended::Info::ZoneInfo* zoneInfo,
-
195  ExtendedZoneProcessor* zoneProcessor
-
196  ) {
-
197  return TimeZone(
-
198  zoneProcessor->getType(),
-
199  (uintptr_t) zoneInfo,
-
200  zoneProcessor
-
201  );
-
202  }
-
203 
- -
213  const complete::Info::ZoneInfo* zoneInfo,
-
214  CompleteZoneProcessor* zoneProcessor
-
215  ) {
-
216  return TimeZone(
-
217  zoneProcessor->getType(),
-
218  (uintptr_t) zoneInfo,
-
219  zoneProcessor
-
220  );
-
221  }
-
222 
-
233  static TimeZone forZoneKey(uintptr_t zoneKey, ZoneProcessor* processor) {
-
234  return TimeZone(processor->getType(), zoneKey, processor);
-
235  }
-
236 
-
241  static TimeZone forError() {
-
242  return TimeZone(kTypeError);
-
243  }
-
244 
- -
247  mType(kTypeManual),
-
248  mStdOffsetMinutes(0),
-
249  mDstOffsetMinutes(0) {}
-
250 
-
258  uint8_t getType() const { return mType; }
-
259 
- -
262  return TimeOffset::forMinutes(mStdOffsetMinutes);
-
263  }
-
264 
- -
267  return TimeOffset::forMinutes(mDstOffsetMinutes);
-
268  }
-
269 
-
271  bool isLink() const {
-
272  switch (mType) {
-
273  case kTypeError:
-
274  case kTypeReserved:
-
275  case kTypeManual:
-
276  return false;
-
277 
-
278  default:
-
279  return getBoundZoneProcessor()->isLink();
-
280  }
-
281  }
-
282 
-
288  uint32_t getZoneId() const {
-
289  switch (mType) {
-
290  case kTypeError:
-
291  case kTypeReserved:
-
292  case kTypeManual:
-
293  return 0;
-
294 
-
295  default:
-
296  return getBoundZoneProcessor()->getZoneId();
-
297  }
-
298  }
-
299 
-
301  bool isError() const { return mType == kTypeError; }
-
302 
- -
305  switch (mType) {
-
306  case kTypeError:
-
307  case kTypeReserved:
-
308  return ZonedExtra::forError();
-
309 
-
310  case kTypeManual:
-
311  const char* abbrev;
-
312  if (isUtc()) {
-
313  abbrev = "UTC";
-
314  } else {
-
315  abbrev = (mDstOffsetMinutes != 0) ? "DST" : "STD";
-
316  }
-
317  return ZonedExtra(
- -
319  mStdOffsetMinutes * 60,
-
320  mDstOffsetMinutes * 60,
-
321  mStdOffsetMinutes * 60,
-
322  mDstOffsetMinutes * 60,
-
323  abbrev);
-
324 
-
325  default: {
-
326  FindResult result = getBoundZoneProcessor()->findByLocalDateTime(ldt);
-
327  if (result.type == FindResult::kTypeNotFound) {
-
328  return ZonedExtra::forError();
-
329  }
-
330  return ZonedExtra(
-
331  result.type, // ZonedExtra::type is identical to FindResult::type
-
332  result.stdOffsetSeconds,
-
333  result.dstOffsetSeconds,
-
334  result.reqStdOffsetSeconds,
-
335  result.reqDstOffsetSeconds,
-
336  result.abbrev);
-
337  }
-
338  }
-
339  }
-
340 
-
342  ZonedExtra getZonedExtra(acetime_t epochSeconds) const {
-
343  switch (mType) {
-
344  case kTypeError:
-
345  case kTypeReserved:
-
346  return ZonedExtra::forError();
-
347 
-
348  case kTypeManual:
-
349  const char* abbrev;
-
350  if (isUtc()) {
-
351  abbrev = "UTC";
-
352  } else {
-
353  abbrev = (mDstOffsetMinutes != 0) ? "DST" : "STD";
-
354  }
-
355  return ZonedExtra(
- -
357  mStdOffsetMinutes * 60,
-
358  mDstOffsetMinutes * 60,
-
359  mStdOffsetMinutes * 60,
-
360  mDstOffsetMinutes * 60,
-
361  abbrev);
-
362 
-
363  default: {
-
364  FindResult result =
-
365  getBoundZoneProcessor()->findByEpochSeconds(epochSeconds);
-
366  if (result.type == FindResult::kTypeNotFound) {
-
367  return ZonedExtra::forError();
-
368  }
-
369  return ZonedExtra(
-
370  result.type, // ZonedExtra::type is identical to FindResult::type
-
371  result.stdOffsetSeconds,
-
372  result.dstOffsetSeconds,
-
373  result.reqStdOffsetSeconds,
-
374  result.reqDstOffsetSeconds,
-
375  result.abbrev);
-
376  }
-
377  }
-
378  }
-
379 
- - -
388  switch (mType) {
-
389  case kTypeError:
-
390  case kTypeReserved:
-
391  break;
-
392 
-
393  case kTypeManual:
- -
395  ldt,
-
396  TimeOffset::forMinutes(mStdOffsetMinutes + mDstOffsetMinutes));
-
397  break;
-
398 
-
399  default: {
-
400  FindResult result = getBoundZoneProcessor()->findByLocalDateTime(ldt);
-
401  if (result.type == FindResult::kTypeNotFound) {
-
402  break;
-
403  }
-
404 
-
405  // Convert FindResult into OffsetDateTime using the requested offset.
- -
407  result.reqStdOffsetSeconds + result.reqDstOffsetSeconds);
-
408  odt = OffsetDateTime::forLocalDateTimeAndOffset(ldt, reqOffset);
-
409  odt.fold(result.fold);
-
410 
-
411  // Special processing for kTypeGap: Convert to epochSeconds using the
-
412  // reqStdOffsetMinutes and reqDstOffsetMinutes, then convert back to
-
413  // OffsetDateTime using the target stdOffsetMinutes and
-
414  // dstOffsetMinutes.
-
415  if (result.type == FindResult::kTypeGap) {
-
416  acetime_t epochSeconds = odt.toEpochSeconds();
-
417  TimeOffset targetOffset = TimeOffset::forSeconds(
-
418  result.stdOffsetSeconds + result.dstOffsetSeconds);
-
419  odt = OffsetDateTime::forEpochSeconds(epochSeconds, targetOffset);
-
420  }
-
421  break;
-
422  }
-
423  }
-
424  return odt;
-
425  }
-
426 
- - -
434  switch (mType) {
-
435  case kTypeError:
-
436  case kTypeReserved:
-
437  break;
-
438 
-
439  case kTypeManual:
- -
441  epochSeconds,
-
442  TimeOffset::forMinutes(mStdOffsetMinutes + mDstOffsetMinutes));
-
443  break;
-
444 
-
445  default: {
-
446  FindResult result =
-
447  getBoundZoneProcessor()->findByEpochSeconds(epochSeconds);
-
448  if (result.type == FindResult::kTypeNotFound) {
-
449  break;
-
450  }
-
451 
- -
453  result.reqStdOffsetSeconds + result.reqDstOffsetSeconds);
- -
455  epochSeconds, offset, result.fold);
-
456  break;
-
457  }
-
458  }
-
459  return odt;
-
460  }
-
461 
-
463  bool isUtc() const {
-
464  if (mType != kTypeManual) return false;
-
465  return mStdOffsetMinutes == 0 && mDstOffsetMinutes == 0;
-
466  }
-
467 
-
475  bool isDst() const {
-
476  if (mType != kTypeManual) return false;
-
477  return mDstOffsetMinutes != 0;
-
478  }
-
479 
- -
487  TimeZoneData d;
-
488  switch (mType) {
-
489  case kTypeError:
-
490  case kTypeReserved:
-
491  d.type = TimeZoneData::kTypeError;
-
492  break;
-
493 
- -
495  d.stdOffsetMinutes = mStdOffsetMinutes;
-
496  d.dstOffsetMinutes = mDstOffsetMinutes;
-
497  d.type = TimeZoneData::kTypeManual;
-
498  break;
-
499 
-
500  default:
-
501  d.zoneId = getZoneId();
-
502  d.type = TimeZoneData::kTypeZoneId;
-
503  break;
-
504  }
-
505  return d;
-
506  }
-
507 
-
517  void printTo(Print& printer) const;
-
518 
-
537  void printShortTo(Print& printer) const;
-
538 
-
543  void printTargetNameTo(Print& printer) const;
-
544 
-
545  // Use default copy constructor and assignment operator.
-
546  TimeZone(const TimeZone&) = default;
-
547  TimeZone& operator=(const TimeZone&) = default;
-
548 
-
549  private:
-
550  friend bool operator==(const TimeZone& a, const TimeZone& b);
-
551 
-
558  explicit TimeZone(TimeOffset stdOffset, TimeOffset dstOffset):
-
559  mType(kTypeManual),
-
560  mStdOffsetMinutes(stdOffset.toMinutes()),
-
561  mDstOffsetMinutes(dstOffset.toMinutes()) {}
-
562 
-
564  explicit TimeZone(uint8_t type):
-
565  mType(type) {}
-
566 
-
576  explicit TimeZone(
-
577  uint8_t type,
-
578  uintptr_t zoneKey,
-
579  ZoneProcessor* zoneProcessor
-
580  ):
-
581  mType(type),
-
582  mZoneKey(zoneKey),
-
583  mZoneProcessor(zoneProcessor)
-
584  {}
-
585 
-
593  ZoneProcessor* getBoundZoneProcessor() const {
- -
595  return mZoneProcessor;
-
596  }
-
597 
-
598  private:
-
599  uint8_t mType;
-
600 
-
601  // 3 combinations:
-
602  // (kTypeError)
-
603  // (kTypeManual, mStdOffsetMinutes, mDstOffsetMinutes)
-
604  // (type, mZoneKey, mZoneProcessor)
-
605  union {
-
607  struct {
-
608  int16_t mStdOffsetMinutes;
-
609  int16_t mDstOffsetMinutes;
-
610  };
-
611 
-
613  struct {
-
625  uintptr_t mZoneKey;
-
626 
- -
632  };
-
633  };
-
634 };
-
635 
-
636 inline bool operator==(const TimeZone& a, const TimeZone& b) {
-
637  if (a.mType != b.mType) return false;
-
638  switch (a.mType) {
- - -
641  return true;
-
642 
- -
644  return a.mStdOffsetMinutes == b.mStdOffsetMinutes
-
645  && a.mDstOffsetMinutes == b.mDstOffsetMinutes;
-
646 
-
647  default:
-
648  return (a.mZoneKey == b.mZoneKey);
-
649  }
-
650 }
-
651 
-
652 inline bool operator!=(const TimeZone& a, const TimeZone& b) {
-
653  return ! (a == b);
-
654 }
-
655 
-
656 }
-
657 
-
658 #endif
-
A specific implementation of BasicZoneProcessorTemplate that uses ZoneXxxBrokers which read from zone...
-
A specific implementation of ExtendedZoneProcessorTemplate that uses the complete::ZoneXxxBrokers cla...
-
A specific implementation of ExtendedZoneProcessorTemplate that uses the extended::Info::ZoneXxxBroke...
-
Result of a search for transition at a specific epochSeconds or a specific LocalDateTime.
Definition: ZoneProcessor.h:23
-
uint8_t fold
For findByLocalDateTime(), when type==kTypeOverlap, this is a copy of the requested LocalDateTime::fo...
Definition: ZoneProcessor.h:76
-
int32_t stdOffsetSeconds
STD offset of the resulting OffsetDateTime.
Definition: ZoneProcessor.h:79
-
int32_t dstOffsetSeconds
DST offset of the resulting OffsetDateTime.
Definition: ZoneProcessor.h:82
-
int32_t reqDstOffsetSeconds
DST offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(),...
-
const char * abbrev
Pointer to the abbreviation stored in the transient Transition::abbrev variable.
-
int32_t reqStdOffsetSeconds
STD offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(),...
Definition: ZoneProcessor.h:95
-
uint8_t type
Result of the findByEpochSeconds() or findByLocalDateTime() search methods.
Definition: ZoneProcessor.h:65
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
The date (year, month, day), time (hour, minute, second) and fixed offset from UTC (timeOffset).
-
static OffsetDateTime forLocalDateTimeAndOffset(const LocalDateTime &localDateTime, TimeOffset timeOffset)
Factory method from LocalDateTime and TimeOffset.
-
acetime_t toEpochSeconds() const
Return seconds since AceTime epoch taking into account the UTC offset.
-
static OffsetDateTime forError()
Factory method that returns an instance whose isError() is true.
-
uint8_t fold() const
Return the fold.
-
static OffsetDateTime forEpochSeconds(acetime_t epochSeconds, TimeOffset timeOffset, uint8_t fold=0)
Factory method.
-
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC,...
Definition: TimeOffset.h:56
-
static TimeOffset forSeconds(int32_t seconds)
Create TimeOffset from seconds from 00:00.
Definition: TimeOffset.h:96
-
static TimeOffset forHours(int8_t hours)
Create TimeOffset with the corresponding hour offset.
Definition: TimeOffset.h:62
-
static TimeOffset forHourMinute(int8_t hour, int8_t minute)
Create TimeOffset from (hour, minute) offset.
Definition: TimeOffset.h:74
-
static TimeOffset forMinutes(int16_t minutes)
Create TimeOffset from minutes from 00:00.
Definition: TimeOffset.h:91
-
Class that describes a time zone.
Definition: TimeZone.h:86
-
ZonedExtra getZonedExtra(acetime_t epochSeconds) const
Return the ZonedExtra information at epochSeconds.
Definition: TimeZone.h:342
-
static TimeZone forZoneInfo(const complete::Info::ZoneInfo *zoneInfo, CompleteZoneProcessor *zoneProcessor)
Convenience factory method to create from a zoneInfo and an associated ExtendedZoneProcessor.
Definition: TimeZone.h:212
-
void printTo(Print &printer) const
Print the text representation of the time zone using the full canonical time zone name or UTC offset ...
Definition: TimeZone.cpp:12
-
uint32_t getZoneId() const
Return the zoneId for kTypeBasic, kTypeExtended.
Definition: TimeZone.h:288
-
ZoneProcessor * mZoneProcessor
An instance of a ZoneProcessor, for example, BasicZoneProcessor or ExtendedZoneProcessor.
Definition: TimeZone.h:631
-
static TimeZone forZoneInfo(const basic::Info::ZoneInfo *zoneInfo, BasicZoneProcessor *zoneProcessor)
Convenience factory method to create from a zoneInfo and an associated BasicZoneProcessor.
Definition: TimeZone.h:174
-
void printTargetNameTo(Print &printer) const
Print the name of the target zone if the current time zone is a Link.
Definition: TimeZone.cpp:60
-
static TimeZone forZoneInfo(const extended::Info::ZoneInfo *zoneInfo, ExtendedZoneProcessor *zoneProcessor)
Convenience factory method to create from a zoneInfo and an associated ExtendedZoneProcessor.
Definition: TimeZone.h:193
-
OffsetDateTime getOffsetDateTime(const LocalDateTime &ldt) const
Return the best estimate of the OffsetDateTime at the given LocalDateTime for the current TimeZone.
Definition: TimeZone.h:386
-
OffsetDateTime getOffsetDateTime(acetime_t epochSeconds) const
Return the best estimate of the OffsetDateTime at the given epochSeconds.
Definition: TimeZone.h:432
-
bool isUtc() const
Return true if UTC (+00:00+00:00).
Definition: TimeZone.h:463
-
static TimeZone forUtc()
Factory method to create a UTC TimeZone.
Definition: TimeZone.h:98
-
static TimeZone forHours(int8_t stdHours, int8_t dstHours=0)
Factory method to create from UTC hour offset and optional DST hour offset.
Definition: TimeZone.h:128
-
uint8_t getType() const
Return the type of TimeZone, used to determine the behavior of certain methods at runtime.
Definition: TimeZone.h:258
-
bool isLink() const
Return true if timezone is a Link entry pointing to a Zone entry.
Definition: TimeZone.h:271
-
uintptr_t mZoneKey
An opaque zone key.
Definition: TimeZone.h:625
-
static TimeZone forMinutes(int16_t stdMinutes, int16_t dstMinutes=0)
Factory method to create from UTC minute offset and optional DST minute offset.
Definition: TimeZone.h:141
-
void printShortTo(Print &printer) const
Print the short human readable representation of the time zone.
Definition: TimeZone.cpp:34
-
static const uint8_t kTypeError
A TimeZone that represents an invalid condition.
Definition: TimeZone.h:89
-
static TimeZone forError()
Return a TimeZone representing an error condition.
Definition: TimeZone.h:241
-
static TimeZone forZoneKey(uintptr_t zoneKey, ZoneProcessor *processor)
Factory method to create from a generic zoneKey and a generic zoneProcessor.
Definition: TimeZone.h:233
-
TimeOffset getDstOffset() const
Return the DST TimeOffset.
Definition: TimeZone.h:266
-
bool isError() const
Return true if TimeZone is an error.
Definition: TimeZone.h:301
-
bool isDst() const
Return if mDstOffsetMinutes is not zero.
Definition: TimeZone.h:475
-
static TimeZone forTimeOffset(TimeOffset stdOffset, TimeOffset dstOffset=TimeOffset())
Factory method to create from a UTC offset and an optional DST offset.
Definition: TimeZone.h:115
-
static const uint8_t kTypeReserved
Reserved for future use.
Definition: TimeZone.h:95
-
ZonedExtra getZonedExtra(const LocalDateTime &ldt) const
Return the ZonedExtra information at epochSeconds.
Definition: TimeZone.h:304
-
static TimeZone forHourMinute(int8_t stdHour, int8_t stdMinute, int8_t dstHour=0, int8_t dstMinute=0)
Factory method to create from UTC (hour, minute) pair and optional DST (hour, minute) pair.
Definition: TimeZone.h:154
-
TimeZoneData toTimeZoneData() const
Convert to a TimeZoneData object, which can be fed back into ZoneManager::createForTimeZoneData() to ...
Definition: TimeZone.h:486
-
TimeOffset getStdOffset() const
Return the Standard TimeOffset.
Definition: TimeZone.h:261
-
static const uint8_t kTypeManual
Manual STD offset and DST offset.
Definition: TimeZone.h:92
-
TimeZone()
Default constructor creates a UTC TimeZone.
Definition: TimeZone.h:246
-
Base interface for ZoneProcessor classes.
-
uint8_t getType() const
Return the kTypeXxx of the current instance.
-
virtual FindResult findByEpochSeconds(acetime_t epochSeconds) const =0
Return the search results at given epochSeconds.
-
virtual uint32_t getZoneId() const =0
Return the unique stable zoneId.
-
virtual FindResult findByLocalDateTime(const LocalDateTime &ldt) const =0
Return the search results at given LocalDateTime.
-
virtual bool isLink() const =0
Return true if timezone is a Link entry pointing to a Zone entry.
-
virtual void setZoneKey(uintptr_t zoneKey)=0
Set the opaque zoneKey of this object to a new value, reseting any internally cached information.
- -
static ZonedExtra forError()
Return an instance that indicates an error.
Definition: ZonedExtra.h:55
-
static const uint8_t kTypeExact
The given LocalDateTime matches a single epochSeconds.
Definition: ZonedExtra.h:35
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
Data structure that captures the internal state of a TimeZone object with enough information so that ...
Definition: TimeZoneData.h:38
-
uint32_t zoneId
Both TimeZone::kTypeBasic and TimeZone::kTypeExtended are mapped to a TimeZoneData::kTypeZoneId.
Definition: TimeZoneData.h:85
-
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoHigh.h:303
-
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoLow.h:324
-
- - - - diff --git a/docs/html/Transition_8h_source.html b/docs/html/Transition_8h_source.html deleted file mode 100644 index 8c8ac4c45..000000000 --- a/docs/html/Transition_8h_source.html +++ /dev/null @@ -1,670 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Transition.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Transition.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_EXTENDED_TRANSITION_H
-
7 #define ACE_TIME_EXTENDED_TRANSITION_H
-
8 
-
9 #include <stdint.h> // uint8_t
-
10 #include "common/logging.h"
-
11 #include "local_date_mutation.h"
-
12 #include "DateTuple.h"
-
13 
-
14 class TransitionStorageTest_getFreeAgent;
-
15 class TransitionStorageTest_getFreeAgent2;
-
16 class TransitionStorageTest_addFreeAgentToActivePool;
-
17 class TransitionStorageTest_reservePrior;
-
18 class TransitionStorageTest_addPriorToCandidatePool;
-
19 class TransitionStorageTest_addFreeAgentToCandidatePool;
-
20 class TransitionStorageTest_setFreeAgentAsPriorIfValid;
-
21 class TransitionStorageTest_addActiveCandidatesToActivePool;
-
22 class TransitionStorageTest_findTransitionForDateTime;
-
23 class TransitionStorageTest_resetCandidatePool;
-
24 
-
25 class Print;
-
26 
-
27 #ifndef ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG
-
28 #define ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG 0
-
29 #endif
-
30 
-
31 namespace ace_time {
-
32 namespace extended {
-
33 
-
34 inline bool isCompareStatusActive(CompareStatus status) {
-
35  return status == CompareStatus::kExactMatch
-
36  || status == CompareStatus::kWithinMatch
-
37  || status == CompareStatus::kPrior;
-
38 }
-
39 
-
46 template<typename D>
- - -
53 
- -
56 
-
58  typename D::ZoneEraBroker era;
-
59 
- -
62 
- -
65 
- -
68 
-
69  void log() const {
-
70  logging::printf("MatchingEra(");
-
71  logging::printf("start="); startDateTime.log();
-
72  logging::printf("; until="); untilDateTime.log();
-
73  logging::printf("; era=%c", (era.isNull()) ? '-' : '*');
-
74  logging::printf("; prevMatch=%c", (prevMatch) ? '*' : '-');
-
75  logging::printf(")");
-
76  }
-
77 };
-
78 
-
79 //---------------------------------------------------------------------------
-
80 
-
111 template <typename D>
- -
113 
- -
116 
-
117 #if ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG
-
124  typename D::ZoneRuleBroker rule;
-
125 #endif
-
126 
- -
134 
-
135  union {
- -
142 
- -
148  };
-
149 
-
150  union {
- -
157 
- -
163  };
-
164 
-
165 #if ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG
-
170  DateTuple originalTransitionTime;
-
171 #endif
-
172 
- -
175 
-
177  int32_t offsetSeconds;
-
178 
-
180  int32_t deltaSeconds;
-
181 
- -
189 
-
190  union {
- -
198 
-
203  CompareStatus compareStatus;
-
204  };
-
205 
-
206  const char* format() const {
-
207  return match->era.format();
-
208  }
-
209 
-
211  void log() const {
-
212  logging::printf("Transition(");
-
213  if (sizeof(acetime_t) <= sizeof(int)) {
-
214  logging::printf("start=%d", startEpochSeconds);
-
215  } else {
-
216  logging::printf("start=%ld", startEpochSeconds);
-
217  }
-
218  logging::printf("; status=%d", compareStatus);
-
219  logging::printf("; UTC");
- - -
222  logging::printf("; tt="); transitionTime.log();
-
223  logging::printf("; tts="); transitionTimeS.log();
-
224  logging::printf("; ttu="); transitionTimeU.log();
-
225  #if ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG
-
226  if (rule.isNull()) {
-
227  logging::printf("; rule=-");
-
228  } else {
-
229  logging::printf("; rule=");
-
230  logging::printf("[%d,%d]", rule.fromYear(), rule.toYear());
-
231  }
-
232  #endif
-
233  }
-
234 
-
236  static void logHourMinuteSecond(int32_t seconds) {
-
237  char sign;
-
238  if (seconds < 0) {
-
239  sign = '-';
-
240  seconds = -seconds;
-
241  } else {
-
242  sign = '+';
-
243  }
-
244  uint16_t minutes = seconds / 60;
-
245  uint8_t second = seconds - minutes * int32_t(60);
-
246  uint8_t hour = minutes / 60;
-
247  uint8_t minute = minutes - hour * 60;
-
248  if (second == 0) {
-
249  logging::printf("%c%02u:%02u", sign, (unsigned) hour, (unsigned) minute);
-
250  } else {
-
251  logging::printf("%c%02u:%02u:%02u",
-
252  sign, (unsigned) hour, (unsigned) minute, (unsigned) second);
-
253  }
-
254  }
-
255 
-
256 #ifdef ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG
-
258  static void printTransitions(
-
259  const char* prefix,
-
260  const TransitionTemplate* const* begin,
-
261  const TransitionTemplate* const* end) {
-
262  for (const TransitionTemplate* const* iter = begin; iter != end; ++iter) {
-
263  logging::printf(prefix);
-
264  (*iter)->log();
-
265  logging::printf("\n");
-
266  }
-
267  }
-
268 #endif
-
269 };
-
270 
-
278 template <typename D>
- - -
282 
-
284  uint8_t fold;
-
285 
-
292  uint8_t num;
-
293 };
-
294 
-
308 template <typename D>
- - - -
316 
-
318  uint8_t num;
-
319 };
-
320 
-
350 template<uint8_t SIZE, typename D>
- -
352  public:
- -
358 
- -
365 
- -
372 
- -
375 
-
382  void init() {
-
383  for (uint8_t i = 0; i < SIZE; i++) {
-
384  mTransitions[i] = &mPool[i];
-
385  }
-
386  mIndexPrior = 0;
-
387  mIndexCandidates = 0;
-
388  mIndexFree = 0;
-
389  }
-
390 
- -
393  return mTransitions[mIndexPrior];
-
394  }
-
395 
- -
405  mIndexCandidates = mIndexPrior;
-
406  mIndexFree = mIndexPrior;
-
407  }
-
408 
-
409  Transition** getCandidatePoolBegin() {
-
410  return &mTransitions[mIndexCandidates];
-
411  }
-
412  Transition** getCandidatePoolEnd() {
-
413  return &mTransitions[mIndexFree];
-
414  }
-
415 
-
416  Transition** getActivePoolBegin() {
-
417  return &mTransitions[0];
-
418  }
-
419  Transition** getActivePoolEnd() {
-
420  return &mTransitions[mIndexFree];
-
421  }
-
422 
- -
429  if (mIndexFree < SIZE) {
-
430  // Allocate a free transition.
-
431  if (mIndexFree >= mAllocSize) {
-
432  mAllocSize = mIndexFree + 1;
-
433  }
-
434  return mTransitions[mIndexFree];
-
435  } else {
-
436  // No more transition available in the buffer, so just return the last
-
437  // one. This will probably cause a bug in the timezone calculations, but
-
438  // I think this is better than triggering undefined behavior by running
-
439  // off the end of the mTransitions buffer.
-
440  return mTransitions[SIZE - 1];
-
441  }
-
442  }
-
443 
- -
452  if (mIndexFree >= SIZE) return;
-
453  mIndexFree++;
-
454  mIndexPrior = mIndexFree;
-
455  mIndexCandidates = mIndexFree;
-
456  }
-
457 
- -
467  getFreeAgent(); // allocate a new Transition
-
468 
-
469  mIndexCandidates++;
-
470  mIndexFree++;
-
471  return &mTransitions[mIndexPrior];
-
472  }
-
473 
- -
476  Transition* ft = mTransitions[mIndexFree];
-
477  Transition* prior = mTransitions[mIndexPrior];
-
478  if ((prior->isValidPrior && prior->transitionTime < ft->transitionTime)
-
479  || !prior->isValidPrior) {
-
480  ft->isValidPrior = true;
-
481  prior->isValidPrior = false;
-
482  swap(mTransitions[mIndexPrior], mTransitions[mIndexFree]);
-
483  }
-
484  }
-
485 
- -
492  mIndexCandidates--;
-
493  }
-
494 
- -
502  if (mIndexFree >= SIZE) return;
-
503 
-
504  // This implementation makes pair-wise swaps to shift the current
-
505  // Transition leftwards into its correctly sorted position. At first
-
506  // glance, this seem inefficient compared to the alternative
-
507  // implementation where we save the current Transition, then slide all the
-
508  // elements to the left by one position rightwards. However,
-
509  // MemoryBenchmark shows that this implementation is 46 bytes smaller on
-
510  // an AVR processor.
-
511  for (uint8_t i = mIndexFree; i > mIndexCandidates; i--) {
-
512  Transition* curr = mTransitions[i];
-
513  Transition* prev = mTransitions[i - 1];
-
514  if (curr->transitionTime >= prev->transitionTime) break;
-
515  mTransitions[i] = prev;
-
516  mTransitions[i - 1] = curr;
-
517  }
-
518  mIndexFree++;
-
519  }
-
520 
- -
528  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
529  logging::printf("addActiveCandidatesToActivePool()\n");
-
530  }
-
531 
-
532  // Shift active candidates to the left into the Active pool.
-
533  uint8_t iActive = mIndexPrior;
-
534  uint8_t iCandidate = mIndexCandidates;
-
535  for (; iCandidate < mIndexFree; iCandidate++) {
-
536  if (isCompareStatusActive(mTransitions[iCandidate]->compareStatus)) {
-
537  if (iActive != iCandidate) {
-
538  // Must use swap(), because we are moving pointers instead of the
-
539  // actual Transition objects.
-
540  swap(mTransitions[iActive], mTransitions[iCandidate]);
-
541  }
-
542  ++iActive;
-
543  }
-
544  }
-
545 
-
546  mIndexPrior = iActive;
-
547  mIndexCandidates = iActive;
-
548  mIndexFree = iActive;
-
549 
-
550  return mTransitions[iActive - 1];
-
551  }
-
552 
- -
562  const {
-
563  if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) {
-
564  logging::printf(
-
565  "findTransitionForSeconds(): mIndexFree: %d\n", mIndexFree);
-
566  }
-
567 
-
568  const Transition* prev = nullptr;
-
569  const Transition* curr = nullptr;
-
570  const Transition* next = nullptr;
-
571  for (uint8_t i = 0; i < mIndexFree; i++) {
-
572  next = mTransitions[i];
-
573  if (next->startEpochSeconds > epochSeconds) break;
-
574  prev = curr;
-
575  curr = next;
-
576  next = nullptr;
-
577  }
-
578 
-
579  uint8_t fold;
-
580  uint8_t num;
-
581  calcFoldAndOverlap(&fold, &num, prev, curr, next, epochSeconds);
-
582  //fprintf(stderr, "prev=%p;curr=%p;next=%p;fold=%d;num=%d\n",
-
583  // prev, curr, next, fold, num);
-
584  return TransitionForSeconds{curr, fold, num};
-
585  }
-
586 
-
606  static void calcFoldAndOverlap(
-
607  uint8_t* fold,
-
608  uint8_t* num,
-
609  const Transition* prev,
-
610  const Transition* curr,
-
611  const Transition* next,
-
612  acetime_t epochSeconds) {
-
613 
-
614  if (curr == nullptr) {
-
615  *fold = 0;
-
616  *num = 0;
-
617  return;
-
618  }
-
619 
-
620  // Check if within forward overlap shadow from prev
-
621  bool isOverlap;
-
622  if (prev == nullptr) {
-
623  isOverlap = false;
-
624  } else {
-
625  // Extract the shift from prev transition. Can be 0 in some cases where
-
626  // the zone changed from DST of one zone to the STD into another zone,
-
627  // causing the overall UTC offset to remain unchanged.
-
628  acetime_t shiftSeconds = subtractDateTuple(
-
629  curr->startDateTime, prev->untilDateTime);
-
630  if (shiftSeconds >= 0) {
-
631  // spring forward, or unchanged
-
632  isOverlap = false;
-
633  } else {
-
634  // Check if within the forward overlap shadow from prev
-
635  isOverlap = epochSeconds - curr->startEpochSeconds < -shiftSeconds;
-
636  }
-
637  }
-
638  if (isOverlap) {
-
639  *fold = 1; // epochSeconds selects the second match
-
640  *num = 2;
-
641  return;
-
642  }
-
643 
-
644  // Check if within backward overlap shawdow from next
-
645  if (next == nullptr) {
-
646  isOverlap = false;
-
647  } else {
-
648  // Extract the shift to next transition. Can be 0 in some cases where
-
649  // the zone changed from DST of one zone to the STD into another zone,
-
650  // causing the overall UTC offset to remain unchanged.
-
651  acetime_t shiftSeconds = subtractDateTuple(
-
652  next->startDateTime, curr->untilDateTime);
-
653  if (shiftSeconds >= 0) {
-
654  // spring forward, or unchanged
-
655  isOverlap = false;
-
656  } else {
-
657  // Check if within the backward overlap shadow from next
-
658  isOverlap = next->startEpochSeconds - epochSeconds <= -shiftSeconds;
-
659  }
-
660  }
-
661  if (isOverlap) {
-
662  *fold = 0; // epochSeconds selects the first match
-
663  *num = 2;
-
664  return;
-
665  }
-
666 
-
667  // Normal single match, no overlap.
-
668  *fold = 0;
-
669  *num = 1;
-
670  }
-
671 
- -
678  const LocalDateTime& ldt) const {
-
679  // Convert LocalDateTime to DateTuple.
-
680  DateTuple localDate{
-
681  ldt.year(),
-
682  ldt.month(),
-
683  ldt.day(),
-
684  ((ldt.hour() * int32_t(60) + ldt.minute()) * 60 + ldt.second()),
- -
686  };
-
687 
-
688  // Examine adjacent pairs of Transitions, looking for an exact match, gap,
-
689  // or overlap.
-
690  const Transition* prev = nullptr;
-
691  const Transition* curr = nullptr;
-
692  uint8_t num = 0;
-
693  for (uint8_t i = 0; i < mIndexFree; i++) {
-
694  curr = mTransitions[i];
-
695 
-
696  const DateTuple& startDateTime = curr->startDateTime;
-
697  const DateTuple& untilDateTime = curr->untilDateTime;
-
698  bool isExactMatch = (startDateTime <= localDate)
-
699  && (localDate < untilDateTime);
-
700 
-
701  if (isExactMatch) {
-
702  // Check for a previous exact match to detect an overlap.
-
703  if (num == 1) {
-
704  num++;
-
705  break;
-
706  }
-
707 
-
708  // Loop again to detect an overlap.
-
709  num = 1;
-
710  } else if (startDateTime > localDate) {
-
711  // Exit loop since no more candidate transition.
-
712  break;
-
713  }
-
714 
-
715  prev = curr;
-
716 
-
717  // Set the curr to nullptr so that if the loop runs off the end of the
-
718  // list of Transitions, the curr is marked as nullptr.
-
719  curr = nullptr;
-
720  }
-
721 
-
722  // Check if the prev was an exact match, and set the curr to be identical.
-
723  // avoid confusion.
-
724  if (num == 1) {
-
725  curr = prev;
-
726  }
-
727 
-
728  // This should get optimized by RVO.
-
729  return TransitionForDateTime{prev, curr, num};
-
730  }
-
731 
-
733  void log() const {
-
734  logging::printf("TransitionStorage: ");
-
735  logging::printf("SIZE=%d, mAllocSize=%d\n", SIZE, mAllocSize);
-
736  int nActives = mIndexPrior;
-
737  int nPrior = mIndexCandidates - mIndexPrior;
-
738  int nCandidates = mIndexFree - mIndexCandidates;
-
739  int nAllocFree = mAllocSize - mIndexFree;
-
740  int nVirginFree = SIZE - mAllocSize;
-
741 
-
742  logging::printf(" Actives: %d\n", nActives);
- -
744  " ", &mTransitions[0], &mTransitions[mIndexPrior]);
-
745 
-
746  logging::printf(" Prior: %d\n", nPrior);
- -
748  " ", &mTransitions[mIndexPrior], &mTransitions[mIndexCandidates]);
-
749 
-
750  logging::printf(" Candidates: %d\n", nCandidates);
- -
752  " ", &mTransitions[mIndexCandidates], &mTransitions[mIndexFree]);
-
753 
-
754  logging::printf(" Allocated Free: %d\n", nAllocFree);
-
755  logging::printf(" Virgin Free: %d\n", nVirginFree);
-
756  }
-
757 
-
759  void resetAllocSize() { mAllocSize = 0; }
-
760 
-
766  uint8_t getAllocSize() const { return mAllocSize; }
-
767 
-
768  private:
-
769  friend class ::TransitionStorageTest_getFreeAgent;
-
770  friend class ::TransitionStorageTest_getFreeAgent2;
-
771  friend class ::TransitionStorageTest_addFreeAgentToActivePool;
-
772  friend class ::TransitionStorageTest_reservePrior;
-
773  friend class ::TransitionStorageTest_addPriorToCandidatePool;
-
774  friend class ::TransitionStorageTest_addFreeAgentToCandidatePool;
-
775  friend class ::TransitionStorageTest_setFreeAgentAsPriorIfValid;
-
776  friend class ::TransitionStorageTest_addActiveCandidatesToActivePool;
-
777  friend class ::TransitionStorageTest_findTransitionForDateTime;
-
778  friend class ::TransitionStorageTest_resetCandidatePool;
-
779 
-
781  Transition* getTransition(uint8_t i) {
-
782  return mTransitions[i];
-
783  }
-
784 
-
785  Transition mPool[SIZE];
-
786  Transition* mTransitions[SIZE];
-
787  uint8_t mIndexPrior;
-
788  uint8_t mIndexCandidates;
-
789  uint8_t mIndexFree;
-
790 
-
792  uint8_t mAllocSize = 0;
-
793 };
-
794 
-
795 } // namespace extended
-
796 } // namespace ace_time
-
797 
-
798 #endif
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
uint8_t day() const
Return the day of the month.
-
uint8_t month() const
Return the month with January=1, December=12.
-
uint8_t second() const
Return the second.
-
uint8_t minute() const
Return the minute.
-
uint8_t hour() const
Return the hour.
-
int16_t year() const
Return the year.
-
A heap manager which is specialized and tuned to manage a collection of Transitions,...
Definition: Transition.h:351
-
void setFreeAgentAsPriorIfValid()
Set the free agent transition as the most recent prior.
Definition: Transition.h:475
-
Transition * getFreeAgent()
Return a pointer to the first Transition in the free pool.
Definition: Transition.h:428
-
TransitionTemplate< D > Transition
Template instantiation of TransitionTemplate used by this class.
Definition: Transition.h:357
-
void addPriorToCandidatePool()
Add the current prior into the Candidates pool.
Definition: Transition.h:491
-
uint8_t getAllocSize() const
Return the maximum number of transitions which was allocated.
Definition: Transition.h:766
-
Transition * addActiveCandidatesToActivePool()
Add active candidates into the Active pool, and collapse the Candidate pool.
Definition: Transition.h:527
-
void resetCandidatePool()
Empty the Candidate pool by resetting the various indexes.
Definition: Transition.h:404
-
void resetAllocSize()
Reset the current allocation size.
Definition: Transition.h:759
-
void addFreeAgentToActivePool()
Immediately add the free agent Transition at index mIndexFree to the Active pool.
Definition: Transition.h:451
-
TransitionForSecondsTemplate< D > TransitionForSeconds
Template instantiation of TransitionForSecondsTemplate used by this class.
Definition: Transition.h:364
-
TransitionForDateTimeTemplate< D > TransitionForDateTime
Template instantiation of TransitionForDateTimeTemplate used by this class.
Definition: Transition.h:371
-
static void calcFoldAndOverlap(uint8_t *fold, uint8_t *num, const Transition *prev, const Transition *curr, const Transition *next, acetime_t epochSeconds)
Calculate the fold and num parameters of TransitionForSecond.
Definition: Transition.h:606
-
Transition * getPrior()
Return the current prior transition.
Definition: Transition.h:392
- -
TransitionForDateTime findTransitionForDateTime(const LocalDateTime &ldt) const
Return the candidate Transitions matching the given dateTime.
Definition: Transition.h:677
-
void addFreeAgentToCandidatePool()
Add the free agent Transition at index mIndexFree to the Candidate pool, sorted by transitionTime.
Definition: Transition.h:501
-
Transition ** reservePrior()
Allocate a free Transition then add it to the Prior pool.
Definition: Transition.h:466
-
TransitionForSeconds findTransitionForSeconds(acetime_t epochSeconds) const
Return the Transition matching the given epochSeconds.
Definition: Transition.h:561
-
void init()
Initialize all pools to 0 size, usually when a new year is initialized.
Definition: Transition.h:382
-
void log() const
Verify that the indexes are valid.
Definition: Transition.h:733
-
void swap(T &a, T &b)
Swap 2 parameters.
Definition: common.h:48
-
const uint8_t kAbbrevSize
Size of the c-string buffer needed to hold a time zone abbreviation.
Definition: common.h:44
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
static const uint8_t kSuffixW
Represents 'w' or wall time.
Definition: ZoneInfoLow.h:88
-
A tuple that represents a date and time.
Definition: DateTuple.h:36
-
void log() const
Used only for debugging.
Definition: DateTuple.h:50
-
Data structure that captures the matching ZoneEra and its ZoneRule transitions for a given year.
Definition: Transition.h:47
-
int32_t lastDeltaSeconds
The DST offset of the last Transition in this MatchingEra.
Definition: Transition.h:67
-
MatchingEraTemplate * prevMatch
The previous MatchingEra, needed to interpret startDateTime.
Definition: Transition.h:61
-
DateTuple startDateTime
The effective start time of the matching ZoneEra, which uses the UTC offsets of the previous matching...
Definition: Transition.h:52
-
int32_t lastOffsetSeconds
The STD offset of the last Transition in this MatchingEra.
Definition: Transition.h:64
-
DateTuple untilDateTime
The effective until time of the matching ZoneEra.
Definition: Transition.h:55
-
D::ZoneEraBroker era
The ZoneEra that matched the given year.
Definition: Transition.h:58
-
The result of the findTransitionForDateTime(const LocalDatetime& ldt) method which can return 0,...
Definition: Transition.h:309
-
const TransitionTemplate< D > * curr
The matching transition, or null if not found or in gap.
Definition: Transition.h:315
-
const TransitionTemplate< D > * prev
The previous transition.
Definition: Transition.h:312
-
uint8_t num
Number of matches: 0, 1, 2.
Definition: Transition.h:318
-
Tuple of a matching Transition and its 'fold'.
Definition: Transition.h:279
-
const TransitionTemplate< D > * curr
The matching transition, or null if not found.
Definition: Transition.h:281
-
uint8_t num
Number of occurrences of the resulting LocalDateTime: 0, 1, or 2.
Definition: Transition.h:292
-
uint8_t fold
1 if corresponding datetime occurred the second time
Definition: Transition.h:284
-
Represents an interval of time where the time zone obeyed a certain UTC offset and DST delta.
Definition: Transition.h:112
-
static void logHourMinuteSecond(int32_t seconds)
Print seconds as [+/-]hh:mm[:ss].
Definition: Transition.h:236
-
DateTuple transitionTimeU
Version of transitionTime in 'u' mode, using the UTC offset of the previous transition.
Definition: Transition.h:156
-
void log() const
Used only for debugging.
Definition: Transition.h:211
-
DateTuple transitionTime
The original transition time, usually 'w' but sometimes 's' or 'u'.
Definition: Transition.h:133
-
const MatchingEraTemplate< D > * match
The match which generated this Transition.
Definition: Transition.h:115
-
DateTuple startDateTime
Start time expressed using the UTC offset of the current Transition.
Definition: Transition.h:147
-
CompareStatus compareStatus
During processTransitionCompareStatus(), this flag indicates how the transition falls within the time...
Definition: Transition.h:203
-
int32_t deltaSeconds
The DST delta seconds.
Definition: Transition.h:180
-
bool isValidPrior
During findCandidateTransitions(), this flag indicates whether the current transition is a valid "pri...
Definition: Transition.h:197
-
char abbrev[kAbbrevSize]
The calculated effective time zone abbreviation, e.g.
Definition: Transition.h:188
-
acetime_t startEpochSeconds
The calculated transition time of the given rule.
Definition: Transition.h:174
-
DateTuple untilDateTime
Until time expressed using the UTC offset of the current Transition.
Definition: Transition.h:162
-
static void printTransitions(const char *prefix, const TransitionTemplate *const *begin, const TransitionTemplate *const *end)
Print an iterable of Transitions from 'begin' to 'end'.
Definition: Transition.h:258
-
DateTuple transitionTimeS
Version of transitionTime in 's' mode, using the UTC offset of the previous Transition.
Definition: Transition.h:141
-
int32_t offsetSeconds
The standard time offset seconds, not the total offset.
Definition: Transition.h:177
-
- - - - diff --git a/docs/html/ZoneInfoHigh_8h.html b/docs/html/ZoneInfoHigh_8h.html deleted file mode 100644 index 3c23faeea..000000000 --- a/docs/html/ZoneInfoHigh_8h.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h File Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ZoneInfoHigh.h File Reference
-
-
- -

Data structures that encodes the high resolution zoneinfo database persistence format. -More...

-
#include <stdint.h>
-#include <Arduino.h>
-#include <AceCommon.h>
-#include "compat.h"
-#include "BrokerCommon.h"
-
-Include dependency graph for ZoneInfoHigh.h:
-
-
- - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

class  ace_time::ZoneInfoHigh
 Wrapper class so that the entire collection can be referenced as a singel template parameter. More...
 
struct  ace_time::ZoneInfoHigh::ZoneContext
 Metadata about the zone database. More...
 
struct  ace_time::ZoneInfoHigh::ZoneRule
 A time zone transition rule. More...
 
struct  ace_time::ZoneInfoHigh::ZonePolicy
 A collection of transition rules which describe the DST rules of a given administrative region. More...
 
struct  ace_time::ZoneInfoHigh::ZoneEra
 An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. More...
 
struct  ace_time::ZoneInfoHigh::ZoneInfo
 Representation of a given time zone, implemented as an array of ZoneEra records. More...
 
class  ace_time::ZoneInfoHigh::ZoneContextBroker
 Data broker for accessing a ZoneContext. More...
 
class  ace_time::ZoneInfoHigh::ZoneRuleBroker
 Data broker for accessing ZoneRule. More...
 
class  ace_time::ZoneInfoHigh::ZonePolicyBroker
 Data broker for accessing ZonePolicy. More...
 
class  ace_time::ZoneInfoHigh::ZoneEraBroker
 Data broker for accessing ZoneEra. More...
 
class  ace_time::ZoneInfoHigh::ZoneInfoBroker
 Data broker for accessing ZoneInfo. More...
 
class  ace_time::ZoneInfoHigh::ZoneRegistryBroker
 Data broker for accessing the ZoneRegistry. More...
 
class  ace_time::ZoneInfoHigh::ZoneInfoStore
 A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo. More...
 
-

Detailed Description

-

Data structures that encodes the high resolution zoneinfo database persistence format.

-

It has a 1-second resolution for AT, UNTIL, STDOFF, and DST offsets. The year fiels use 2-bytes which supporting years [-32767,32765].

-

The BrokersHigh.h file provides an abtraction layer which converts these low-level fields into a semantically consistent API which can be used by the AceTime classes.

-

The various zoneinfo database files (e.g. zonedb, zonedbx, zonedbc) will use one of these persistence formats, as defined by infos.h.

-

See also DEVELOPER.md for an overview of the ZoneInfoXXX layer.

- -

Definition in file ZoneInfoHigh.h.

-
- - - - diff --git a/docs/html/ZoneInfoHigh_8h__dep__incl.map b/docs/html/ZoneInfoHigh_8h__dep__incl.map deleted file mode 100644 index 491faeddd..000000000 --- a/docs/html/ZoneInfoHigh_8h__dep__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/html/ZoneInfoHigh_8h__dep__incl.md5 b/docs/html/ZoneInfoHigh_8h__dep__incl.md5 deleted file mode 100644 index 0e3ef5caa..000000000 --- a/docs/html/ZoneInfoHigh_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -7dd88c3bd89466314ce04e5eae115328 \ No newline at end of file diff --git a/docs/html/ZoneInfoHigh_8h__dep__incl.png b/docs/html/ZoneInfoHigh_8h__dep__incl.png deleted file mode 100644 index 8397f84d5e4730fe96a5ba68b6a517e19fd772db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439671 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

P)gjvm-kjOs+<%3FX2F0?sB>-1d4_7UjI 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%0AvCKf&~Mt$RN-MTKVFj2T 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

rbLr7 zBzRcfA_`+|S(O?;ny0SN32Ip3Q+@v9R_2!FM@T39!v zrCqS}W6afw(is{g79xo%P4(-(z8JS6Zo~S=EfM^>^xM>qHF|MTa zp~C@f_$os5N;!qxFx~Sl7(W;fx(MU>T*F)5%tS!|mVQbv+4o>6{IiCDhzLZ39(N5U zO|%?y0?ml#JKe=@&7*K}a`ngeVk*lQB`podX8|R8dH&CgI{=n#v8-wP#mX#SU9MMVMS$TW=~bbN?b+n%`@lc z#KwwR&KcnhdN+9JQ||V<6su4pZQnQ1vBOmuI{le7T}_#SdcNlzoGGcVCB=gZ`$Buv zKNJ$g8FIg3j4!knFJY9$r>VsrR6&w3SWtkO>V z8eLP$eBBRJ2D*d&J|ffdU*k3W_cDo4QSri z067f%2S|YTmac0QuuT zCXuD@*;7@VZ~>spj<)&Y93H|aMtx8R$8VS{V3?Ey_x93(7vh(&5XjBJ%O0m+lMFfx zFS;K>15fw;s00qle0e^%GFPvN7($NjUuUmY#P;!{T6v2>PoEr7QPBesCBSW14hR9j zKz~0GbS{F#Z=~q(0S?3rzvtx4eyc2VC+o=#tX`KDXIXdvJ32C7x>wiM&iRoB&+gpM zlnQ%%>eB`vlM){@TSk;SDupGt(}ovCiURAT+l|P)(Sw^)4*~ui!5s*1D)2AhV?bNI z!OKfFImy{2BKYYT=k0wf7U&^LqmOj$$Z-=0#S>!&Yx*y=Sc!$R=hNZklH_jJ*GFbI z1=rW(u(BrtFhU}h;o(aTF6qG!ll&_V7n!x3c~B_kJ#vTz~^?5g8YRx_K^=C^_v;G9f^<%lN<)I*$8+;4x0A{F=gHI zOpNSUIZ&sb`EFt8$oNpgQX*kzT^`dUIrve8XcRFZ${X%C3l%F}sP|JQFm-_lMtfW9 z)f%chXX5I@Vb&G$pOq&q!C?0ShyBD-?TamaKDUpKU*6Z0rVG{v!tjA*n6`XHi7Vu2 z^<>z0Eu|8UYPqxp(0V072e$eDxfPa5)|K#ePmUOJ3h8TLN1Vh>RV;c-y=S0WRo^>~ zeIV`8>b(gv|B{F|ZAYTSQXRPHMO zv4r8+yI6Orf>gx8CA`R6zPQsiS>^8Es`Tu+ur(*gUY=s}_a9o%zDDdhfk1xyklDacjL4#x`#^7g1^Wnc@2#M!nkZ_2{IcF%U-YG1t0X)K?6k&h)-xk<13q zkrr#XnTiCIII3v6*e^i6beW8ZW)Afo@DUaqo`m-nsms+#LiNS6ijLed!yC-MKI0aI z`XHUc-(FWd`^R~U3}$+)XuCl`4C*tjH@(4}JcCQ;>uGOeA;Uw3y`Fmtd~ z_b;BP0#kMJUYWV9x(7Ts;6s8H112uWo85(NZRJq5YZ)yqIdCI#*#i)-(Tf)-&!3am zc{qW!U7-U^2{(HVfG|ZE5I{seSiTMfVfZPE&bg;0OeFsJY^B%3Mt`urbW1katm8FhMVOCh_tL8tT6W6FE?K9+dr81S%QJ#}MG!tR>7 zTb?zHpg~TiG@icO$|S_Ho8(_ex!zOV4`w`Is#x7N8Hpp@WGY;JZAHn7Y-?rTr~ zm@~nVQeW??*W5=nQDToC=2mYPT4UFqi8*iS>s@SdZ9i7V3PF(I3USi6pbEO$-0C** zG91p}BL$DfPiHAs4MT9;!CL}XEHD4DMXk^+RK8*g^#tzqnRPLRwJse(6n-_}KG)M`_{p>Nf6}1F?$*bCCdrWZIJY^izuK<8m zRLZ^t(pkD-4`R&8y)t`}kq@uK!gBG6$9aK3@?@<{))QLeR!-3 zQnyJz`hAPa%W5V2iM=7^(Ab@e~B&o~*n<8?RQK`Y6n4Z*!T$VuU*A)m%>KYMMcvRrH-D@GQ?Bd4D9FTB zPPwI2TPL}XTGY;B_Wm-E8dn&oaowH?bKp8Uq95Jnf5@1>wzKTyI!}mlaFVZMzU*>bJ3*|JMCbeDby)t(4Z z18W?$+|H>m$vfWw4#(vD#&xb_tipO30Rm$J8)%ZJXJqKXjDaERN>3ohIC{5u&0kf- zz|p!o_w$#dnyS=E%3x#AlKjWUbb8!?HcUt$0~>^fhRx)xor@3$m1b-|0~crZovdd) zTu0Efd%So1sLGy{%a@}oS!sR!>z3lc@G~ejgm71fUaqc&*WtpRi0~_b851ExC}5kI z_om7j&Ex75>S!^Wt59OpQApH=JTiMS;M=+qwhUeg_;mGk?dG)I??}GoHq#E? zI|nPsX$!7wI1NE8aM^%!h7ToVcPEG4DBLx}Ufz=OFMOP1?Hu#&F%JFM(=HQmjFAT9 z-~GIRYhOe@otgP>TEZ+sW(yySe@SVb{8Fj2I+Vr$zDgw`zq*Mq8XrOyJii z>sVQV4k?1~MN{bFBI_9^Y<`JACLFlGJQ4cyXYWa;tFX_0Kxq${7&Kl-t=;_nZCCz( z+N2|pOP%XS@T>G#)B)spjUQnetwl&e(F^Z(k@oxP=IYHr;nA$`=z6MU>6b}+jl5x# z$YYSCQIF$PAWczx)an%+W7oX7TdVa*XRf?;8vF_Dvn@|$C119_kPn=O-VP+ccT=$b zL5W4Ew|xl@SXtjJdfM5+$?7rmZLU*lcd0ZXxD^8J9xTOMj}8c>;ekc6_VN$By&i9Wl+l7Vq?4O;#JXndxg<(0~dm`g0+zabE>`d&pRq%HLkcM6|Nb7f|K>6w<~i3XtD zv<2S>NnDyN!FU{pN0Hw4m2=hJ$x6stRqrYISWz1d(!kg7u3axv13@xo@;#b33iOMl zJPeYYs?p~m16mZTD+P~W*EuDUTrZ}##(+lS*g-~aum?+jf~G$%MvIX^FL#`3*`)kK z%suJ1FpZfgjvhlhzvOn17d~p`xh!( z8QB+)gX-6JjMMqUqlI4TxNI$xVQ49L&P*k!k`|6E=*{k!xs7dN;NVeV>3D zvfnaZ-k{Snty8@0t4OZ~YlKrEwezzK_2b9R@JSM`nsE90wdy~sqapK)`T0Edkspn9 z1l#n_`Wso%`zNofUAxcmGn4jf76Xxl#1u+_1L-^w=1OY7KW!#fjL)%t>XC`29}UZp zIUHNcnC^#%UeI#gQsp)uP?y*9t?v*Z>rG(&{uP?sGgT9y(f?}C+luES<&b}S>+-U% zBMVVLVV_K%Np9=7t45N-C%ov&KY|$+VfNro3q#$iy`RFD`xO4dMp<2(p66dY{BP}W z5Kagmq3zAgWMAwEV)$4xj#TE20=X1Nh^NHI2ju!}Yb~}-bOTJ}1Wg|?Rrq3OUL+b2 zJq-W*z2Dz@!3a~=pS|J$OPrV+&nNYmJ znll)*|80UMl0*%uXND~ZK|YqD|CT1Or_sNQ{-Z=gTh!fh-~F5v_xH`(z3YZCpfHQ= zyHhljz|p?1JYZ{i<;kiXJ!YGmKKRM{m53M~<*ZekbLqS5ZIM{jCvk0UHTtaoh%1v0 zMiv&=NjMVA>a@i2Oxg|w-YbRE-H8v&(NZvVsiFn|ums%D!G5PHDcQ95Pt>K|Af}Cl zC6CO|0LZbSASho}J2#(Cjq%P^)H{I`-6l6c9p)J#aL0zFjv!dBE?5yhBbebT^=*q0 z^E%}-uTj+R7i-HvlQTK4$XtnK{m_@Kp6)>86cm%p5k_Ay&gU9f{=5VU3)mK^#INut zB!U(b>0@ZzqW8|BrO`Zqb8p~yxdWEJ`J2lPRga~xUPKA`M16IT1P3;>_`?vRE7OVL zyD(e#*T@w)L>!(i6hF(D?y3Bb_iWdt#663Km1m}S_SU3VD-A2%%w{HXQXfbMd;Iw5 z&{k%EQN!({@#2=+WJ7{RPdRM!wmPR;3k|w^giP@|G}UV=Wy~-c_fzaUbh_Bk7#-cj zJAsx*4MC6Jj>S&$zAj{;m38&bP!OQR9q)AsFP=Ht;VrnuP!3aPhhBw!VdWuH(9kI6 z4WcL>;WXBE_~5{?Gmve#GneH|7mNONlW)n%&3C9@Pl+;G8b6XHwC626_I+tmUW>&g z`>_(ME}o01sRwWU216uY6sU?Qx5>}XR=IVrKAR`%eIrh+EjP_PrSzd*(t11cqn>@! z%MqhGp9}dxl7ciHo`0o6a70mxk3hm#ntlbj!R|3ordE;^^op53;>_5@yn|Pe?D1qz ztx%oUO|yvY;Gqpqa#<;KJY4k}raeF(#l%&t^L>~Y6#coL3u4W?XSEey)#N023TZN; zFmkLwMB?c~b%U-d@VT}=H%ybWir74z_v`&JS&dAxI2S=63tY6p{>rV7xbEGjn++mA zjuNewJw?EOlDHbm+cfV+K@u5^(PJ!2<6(l4DAchnL)YH3vJ;1Ek47!sC^b5_Y{N6H zL0Kb1^O{h;96w{iJUM?=u zQN!Jq(xu*KdbRGl-=nYXv^9c>z2X7bJFa&(%yV6VZgL zacT*vgh!mePH{a0?^}{)0>Z#O+yf^X9}X*y9T^AF|E7?kcI`baAcde!`>$WzU_I-G zmhAq02B609>8;*CE$;zX2NIFLJw72}kRVLq1d?qC{As5b>ra+pDisfCzX+@Feo^ah zi>AX2+?b-(n}5f&!N!XPoYvOXk!a=|v1O$|%|0vZ^jbt_M;VPh`+yQ^gEbLs~?Cu(Yfd)VX>%mqV0vrND-BU z;^DDMm424v?%lPllSe|-MMdfZgZ5AbZ*#N?MNdr;A*7!c1BtiBuB-#EB_~b3w6p*l zSOIY$NG2e1Q+N^*+W$bNy>oB5Sx+D!5|fI6eKrA1Etgj>mD}8;Hx)NP7cc7)S_xd@ z4YX0_TVMYn&rPkEB@8PFYAGj<5FQw%td`e^5CDt?Jp7=c3sID&KSw?Lz&;~bXpqex zZKyUEK>>raZV=MZD^_nRkR8DD0D$>Z4;r|1VMO{3E`I({D3MQD^MS?R!-8iGgeezA zr$g@f2dB%+Fh%}*7*m$dLJ98c^BXOwL)+Tu zaNgP_PxpAd_|}sPU)()S7Dd`6tg8%%cWfjl`qBII974F*Ob?g#ym`s@PRaMrOiuY1 z-KvJ(fG6WN`-|(zj$=+jBNNW$JZ-37TlON(o@!|gc30>zlM!p&uV)p1^cIv*$w#{l zyRL)=zx+?OMwnZJWBmWr)mjOpFXZU*3=)cN2y6|fG^rC@3KCYy$XI%bqQ# zFFtW9kOqU#j(Za@C^T6n*75^)pko0`zf5XR6v+NJYMT6e{aEss}w5VXt%D-F2idHj7fS!_1 zIMAQ$*DzKAuo$F+gZc#%hZzeD?9(IRt43Zjg)f6W;d5<0D2eE@_`VPJW-6xwH@2qs zC<*t7uI4)n_tNileAmsi-zM@(Orb2 zAP%tHg9UW~X5_<(mOeBhLq=xrqW$Z3RlyvF;L3}~AX;AD&{uQs9;ngaNdZT3)Owx@ z8BjnQdlRtUxj5Tug068`#`H794!_T4{xwDCARM*42qf~~#%*Rk^V8;N5?C0+yLtYq zTT5ZG;QeIcl52soiWFq)F@~E;8(~f@$uwnzH$$P%zIB4aYJCROVO93x$6?_ zY;X=xVRC9iy0ma2o*kwuhw~#oqLrl*Xt+s(mNaqio;&@a*@w~rt0R&*3P?4<1kk(3;m+<2NW~C zY(!Fzg-S%#-zwkImhqy)XLNo}!8qqc!ALUA&UFn5;nIv3dey*aHs1S=IJ9KOR#K&4 zNOB8G46l6HI7}I%?&z2YWw}p}m{W+h24 zL$Kv;o|1sf=>J?F7m+bcshV~Y;)^1exv!s`@2g5@gCu@)j_r*_Pp)oY_m1hqlP2%H zR?953#O?M9y>g2R73&VCWRIwb;rcgG{ZBnR!gTD5+M?t?rCbb4=b3E(PER&tCy@DS zPEU|}>dlE1o;=^}*phC9|vXsFA*un^r-A7V+lpW(Jd7-SV&iX@ld9ew#r?mHgU z@>zN?6WS!ZnCNMBhkeKJro*TW|3lWKIr-es{koZqeOjSi2Y5-Ic8sBov1KyUNPVkr z{63VQTV@uIcJ@4NsuM$>V7|QSEM-7;={o+lW$|H_SmwTG1=jE(K&LO|oE|YG?H?u#?lAo81*q|%q$gnwnc;r=$hN=K+`HQRu-I+JN^KKQ-!`!~`^&(8W$W=Ovy;OQ5HZoWm~j&>z5lux`3EaA z=c|?$dPt3mrS$5LZt}s=y4gc{B|AMk7;?{e*}mCW;3dx!ASWr5*oSlDPMSH}tD^pd zEry3|C&;ZCj4R?XgA6lzb%Q@VWAey8S5-%4%O6v~4u|U>4uk^9rh((Md}ecoS{mAe zV>;F`CHh>jon`hAUuqPwI*C?Vhe>^oqZfNh4+hI0x1?YiaMywnFP{1PAWp$1L*{pP zv$sX^Rk+HU^oY1UYKqI65({KDh^T@O z7&>4?vKhW10*>IWt1;Ybxw_oz!QyE0d)TyyQ+u?&`|zj%b0U%^zP_F&OAvWDLNsop zXt^=r>PNE!?hk8)88Sk_l7@Ix1M za_!$5=NMSZ8o&?(lSR31zje*J~#C!r1Ou{^4-lZNgT*!Upnd*Cxzm zk&r^^k&WAJE3G>#C}Po(tgtldMW-wDNQ1`?gxKv@FFDWo?J{m8g>t_tBB7_5oU5Y_ z4pSwvN`392w?kU#svkfv`-)S2lhpf6;9}RQxe{k9zCJwxOSh9ili(>~S8)gvo3Xj( zFPy~}{)1f8M@_)Ekm20_map%?qeVX9DrI=ffqHlORN$vu%0wmq%`){s-}~TSHcJU3 z?a19Mo8@B-SE8SOjv^9bv^wOasOmpqH~$Ed!_)=L+$wj+=Yym!d*9uVij~qm)=!{c z6Y_o)&CxPUzaXmndvHBUZ)Nb^e2a{bD%hsy!>^jpJUV(9*fC2rrjn~j#2!#TI^_e= zPKH39`A)xGRy0P_)%wKF;(8yq_f2y0C6k+^k$p0ZV}F(5fA6sW!L{cg4WU4XGcc6M z34xo>B}go6zLq;{!TPM9qMlrW6#SePuo_BVxhiuBj%@f+325J+hRW(R*R$-%Et z4pYdaA?6AU|Jk-ZsC;zJ{L}NdVH5d3);O_Q6s^QjhA&W2Dla1=gD2P9V?kq*`QSYw z|HfB1miN(%MieuJ`0KHdN==`$szS*~mTANMkxb!-g@WCQ-BqQCPti?6bxcPbaianW z2lfE^af|Z{ExLB8Yh1L`N{nNoUy4C<3zr&%>MyuYQ@67^m2tG#R-ceC?P?wbZrpIX z>+RMe6g>g!)md)~5&bGekU&V}0*Wq20uEraYgLv(G$ohAzBjL$?Cp5UKsx(jgF{a4 z3Q|2nx^Ma32GTts4>qhH4-~~jvcz*@9>07k=kpzeC(t0BShJo0GyD|jd|m9$4%`=x zx96|^Fd$|ea5VFvb(X~pGQz2z((tA51|}f9tuneIR%KBakesp{8h{dxI(!I$2N-4N z2W|tf<8^~)NhwpPs`R1m_p3iAC`c{)K^)sN!+^3DTy>D}i{m+TATaoigSXe_POtga*DOGO>T48YYHV3$cAa7GVu5^t` z32A78OReZ*RPh9-|1v~vs*7U;$PysGLVuTT7yow)E*R?h9D15NI2GLb#+mouEf(DJ zE(=6&Vuu_(k?Z0L25ZVSj7fBVt4>KHDv*NV^4BaVYj$pI4QnkW>J(q^F?Nkw&ee11 zsG+1KvgJ*YnXIq_>-UV?hz&m|X8G1=zO%b|UybYcB43aUF}z954=ibaD^53;7%wGg z<}ec$HpL|+wC**G6|u1^-4VArhgtY6UzlWOCwP}%`}En=Wi8H?{>j&xQVvhU-p>## z5q3H8opTi`*KyCf?Jyy-Ygd4EQak55H#{fr@8?h>Px?iqrm>tiUC6I?s^Hn0{f6KJ z|2h%GD3allVw(r5dX_<@^>uBTNt7W+7_0|4_a2h%{C@mae>i^Gr51L&k!J_>H@-CD zqR{+qO=C!Z!^m2Oi*Z$|<`4Tp(CkuZ$JPIK8e<|$(# zQe)?Xg9dNiTR%BucE&Sq2az{}rI0Rl=IlGdxbuG=PL5SNyojVc*sfwMh6l=gUrkwEH!zpm336sr?>`g8bAOn>xiB-|;`j3RduoJKVdC2y1p@^z@Q*jFcC(+v zPTryK22%svKk3ckdY+eS`6JJ{rrgASFVbA>{5U^9LcuLu*^{pQ;K%WCM%D~3an|AF zkE2)f6CW{34qKh7_g}JgJ=y~2ZpFyqx!s63J;+z83wSfCUIO0CsS$N4;_5EBIG|6F-D(G(uXy8b>~7{4n9kHZZMs+$ zk85_{b93;}L!s#D&XKr3S-Zz~lj8GY+pD`ULV`oXY zff+>Bw<^%L8jRhh&#JO-Uk;ZcSW3o{(186}znJ$NGl2((6I){Q+^X|%+82cuZW9=Og8tDIHAtKYDQ0-$+8$Prj%Bll zA?x@ThtYXn%%BBt*T(hgrz~TOp7!S6&6O?V56fWIrW00dXqd;WzxnM~C$XU;+RtEL zaryIm&tCBKdxb)Z!RzW#2qYMj3aH%GUF+w>uDn&~kx;VPK%j>8mYWKD^e=OcG4o~K^Vg6BrPYvHh7PSns5_0H= zC?^WY8&w{jkF8$vEzIw!3ab=+8?o_J5mIs`xz0=AiBa!a@C{ukjh$rlTda&E3bzx> z;piqakD>&(bteywXV#PTYnLUz$ZrS3SSPZWsCd!zwNd4a{7lP#Zp;7v)AHJ|Eku%p zZc=AL6tI%d*-Yb1@J>K0W4v1ubK3Xls0z+BV=p+?12(?D8F(BxK>Fc_3CgBld1(j1 z54StWzn5Xn)JA9SNSG<1B%0huJp1#$(6HN}14lrpkkkhbi2gVk83 zJ-cI+q!Uh_nsFZtHIS;@Z9JTqe^H`b^x$a$k07B<(FcvR4`UQ>`d#11xqh=*^373} zsAgdt(kL=e82+reY8PXK@yUrs5P0E8I;tVS(Ijx8$ z>7I#0$?LN-Zb)(`XAsR;SoS-AWi{4j3=WPXy)6r+CM<{cfQ(Yn)RA+whC>StHg~A^@(99u#XHoI>d|bG!Spe=Xpv07!@xXYkl_m+SA&Z4Rpct z+G0sM@#$2#Zh_06_*11hHw4kqBsPdpbw7La`7w86pj;{lWeGemDxz$GCTw@>9eAZuR`}?1Z|K!tFKv~0DP@(4o?mQDhAk0d zY^5S;p9F`w(pV8kTTulyx%uMH(*ulrK3XfxzdRF=F z#OYS}*`0+x|9Ceq0D}H%g`KW5%t>36$okFi^%}H3%5zcnejth0h&Z}OGKGO$A0r)K zmu~iz9*YN?GAxiy%0JlHWyMY0f4!7sGZ4Jw1KlqkTQ+~!9`guRC-jCjjxSyD4DKz}77#Cx%i$=GOytdx-DG{+q7Yv~Icrqn;n`AKKN=CFJYnz>ZZ0u(K+|P*{3u5cmvkfF~7d+NM-gC;W_I3%~?u&@9s-% z=KB6TT>TocDs6sq0WJR^$+|g)5T(v23wPs;>q4kNqg8d1scN z#FLxt$-^o_@;JTiSbY<(u!8xYLoOie>H_`G-qj_dM0i4y1Y@!$Ota;uO4F{Z;KA>S zy%pP~YyNqYf1f{{NQbTTJx`<7$G6HKa@7cyHcZODYnSA}f9sXp$tpdf{45>7A^T2| z+do@PkXVbu3~i)MWSynkM6s_bq8qlw{985=_BRXFy@%St}l zXnfrRAPe$w-@#00ZlwF4F3oB)6=IeK|Fb#Vy0GLvsJ>`Ot`yBt?*66* zCm<62MJkT`StPG`lrjgv%7b=X%}R)Z;$+6{bT{U+nF)lK0ISSZJNO7a7gNfwONOEd zf-#2B(KlnEvlU~+_mx9+dIH{(CTC%{z3+i@jSo#ub`@d#+x`CcV?R0h>-|vB^2?sh zJ5lh(bpE+ig$O;x^bYUWP39U0%JwKq)5&IULiSc4O1IrvzgMp$hc6Jw#THAx{C2Q0 zDJ=T?7_zTe5-gaEtlkz4`}+qKwu=?1$7)mwhyRIEkquS6yKl%5DAOLd6Iz}e_&R1- z$7V~~nyDlmo#^WlTbaDvSINo}OY+q)`QKXx?wbF7Bp(L2 zHAWWPHB9zB-T(N;oSL8eUXMl`=M0HCuIbh|zTFJ(>+BH}*1hXE?^80<71}x_zDOgzlf{gFtgceW=#gp_z_{qIpULpgyp0b{8c(s`T3Z9FML`KQ#%iq5Bb~_ znzB+^+FYfkNTYQptE}r(HEs^- z_+wu3&M(TC`Mu&1&xwX@O|SmMpPmgzFQr&UEh4_4-+^m_kv_-UQ?KWL7c2hUYjB(wD+vXJ?p5h*pbIaNM{j$`uOD9YmoisWYLtI)B+p z*tRKKezH9k@B~h3_Lyk=Ud?jVuj42}ap$>l2f&uUH<1OG+EZPTz1m9>OhA(AcVA{7 zleh|o(PLg8VOK4!{e6R*;dk{;tV^-xdFHgH=(%|%7xqm?{4i3>{TUO|;Cc^c;;o7- ztzV@N&9V+=^|X&K5zkVh5x_OEbu(3w1RSWv8nz=1#&@wLlEi8H!)a2gz)WFA11CL8 zGSS%Hf|+hbyUJU{C4$LVIO=AyKMiP@tL`O`?F)?%0e_)&RLKkCd4lKNw3^w zKBUT^i}7dN$uGDQi)Sq}lqw@BxSquqBIEboI%YYO`B7YL#YVdE5VaS^e&<$4hp($| z>81DT%#-Q)JyImrso+WqnW54?9rYBRgqMCCFVrUrtdsgAhIo!(^MeJ#n7svI5 zH)hTKugt%aJaoxYYQOdE+`7SC6NPfbRc!t3R!zb$I`jaq<}c5S>WKBLbXp`ccF(1} z43k?3HmK63!@nKA9^&ff#*3bj^TPDWhD#gv__ZzV8fTu8Vf5IG>2vIrkLbyt0yO{w zf4h?Zi*DXu$Eb{^NNLZJpdZL=kG)gLJy~v_HreEf4%EW24-O8)@Xwd+oMM}v5Pbfh5Bt-)TLwyibZ`@S>T=q?C5s>n=8Upn&tH2(uqiq+HG1eWJ2 z_O#RN#9Nd(HCjyXrs?eSzUsO7nF~-#3GMb*j&72w6j({`+R?^_(xpXS|C&DRzr#sC zm>otLi zpB{KBC=AGZ9j^6ig?|BtP=fQs_n z-iGN$kQNXS5a|+-lJ4&AknWUj1*B8DySp0!K}JfX5kz80>HhBdopb){ob|mfP*7op znR)KLuh`cX4oXO%g~NsgwtY(heLTo|ecIS)_8v?xz%b4BxFNNmchaw7(4Bdg!I^xr_psz+4AtII@oHoYnmVbwl z=J;sGC$}rrW@qhI&fLr8No|)(sJ~vkgf7@)nVWx()mbur!=Ldd56kN5h>Oe4cdQ(r zJ$CRoMcCK(F zm|I55@jXNWs7|tS%j2+>@n^eRMDfqJ;E7>7>^fCie!rb<=WRhuw>{|PRT7)+u|7y*jw|ye_(%3++`Uaj&(quehxmL@L`PnRIb}Ti3nea@K z0(#6ufbB?5h`MOjvC5Poi;Jd8KWPhBkZOYJ5{-WZ_3sBpGh2(A4OQB>xlaf4ZO`@} zMtXvZG7Zu)Ei(EPiTF*uZ^4^QMHWqSc+>^zHqv<_WvP~Z4GKD`&vvY0q*$=9fTc_4 zlHw>hNJeRNGE_`T(+IRw2-NP0lKipJa>WZT%PzWFmgA7T&J+p* zD9|gkL*geQ18x+g(DuSc1?h9OX5f146DAQ8lau^NaSH@6zL@Bi5M)9-*z|t8eK4JT zQegkoJQ5IGlYU+K_&=y4uiT)P|oDDuR-Z zTYQEyEQx(qr&X4zrTpQY?6JO6F`?&%70uo!n_rgSVy-aBatU22(~PeWQO{F>X1U` zaZJEn2XLuA;O$srBMD$VENIacX8@{yZt4Pd^AP%+NgqXa&KCl;Lbth)hMH%HC> zCRF{QhY)xerMb^E`{1NxXO9QFsl=|yqQtGp^=!hJ-JJJ-NMP@DbVP7)phGjnt3dyc7r+#fqX+{` zFtEf_yWCf>|5~JQY5;IC-iPh@ZI`RP{Ws@Z>WOAYKkE_KZho{L`}SV?ZdVc98VE}9 zmuPow5ZdKjf~iyE^_koUF5s1O`t=r!fZ1#t*UmqU9=>sWgN0cAqg-)7p8@p=c^}AP zkrjNn+H@vI^}ReC2H~^}27&kIrO9jD^9G@De!pScjRdsLd3FCyH@p2g?&1NBaCXi7 zbAo7Yh6I(RJe#+&Rb(-#SZ6=1dH*4Nq1Ie_4Yj5Ws#)>c(iX<>vgNWeEJmKCfx$QE z5-PkWLLuOZXs!PpW=itzAg||JcsL_qvv^&oukDD7_T7XN2|t$jXeG^4#DtGKxeBz*0D*fif9VrJ0LV#VVBpvp1OS29YSmA% zC4jap?&AO4^fV^QGC~(aGp|_g^y^j!xi#C(?;(FebWcr=V#YCicrl3p+qHmNK@El+ z#(IKjqgJLk^_Qg0Cb}q#4llZ2V^uc_At=s#cWgCX68kPW9=qvz^Knsy&1(LfKg4#* z%a#NMygCGHvF8c@+Cc1>*80Cn2Fyar<=z0tJRBYx)Kwug{$>GwDhC(MPK}i)k|avx zr*a`QBiT+bRR%xx+Hj|AW7JGlrf|+JVNzeyqExPYw-rae+_05Jawa9p+ffDLl{i|l zF+cOPW%^pwTt7@fb(A9f=TjNl4&*u7u!(oW??pFL${@=PL)Uq7hOz_6Qz9w~fo z;yPNd6;Y({7s~2~)(@6bF<&;8I!}##IvLZoYPXG+2E}a8jh^)tY;G%ks3X_&?VT(&Dia;zBDM_#tkiBld>7wO4r$J zai8&z>;~x1+}Xv{i26_z-C>KTUEc1UOI;o^t6BXYko><7(%mpYudpEj@`EAfW@bWE z6GA|%X*W=fMgJ&86NOJ79Ycm%7vQhevsPysG!pxI91!yB?b}N03s$cLYSDpwFYruX*#3i&(Kh23oAGtCysxyQgjjdUSVY?nqzTD)uvN!I_p`Gq&Cgb>_N`? zV!Dq%TguV&d@=QHj(O0HZ)I~K5wml`L?-t39yE8!R0WE1PMK+ktcT;=kzyFi`VeL^M z$e<=@cUNuQXVhZjXM?589~Pr$Fj9ElxEB%jwXr2z79=As0*M=(@7~F&X($9*S;<;6 z|NerBIma5QBIpRTn&A9=+K31|SPu-SD1fFwLehUUiGlTZ!`0YHOhbb`5Lx_s= zhh3O$Zznul&IIonU}B3z^iwQxu#n~xOu!ONhF9UQqmz`RT~<8Oesw@ulc3<>x!Pij z1NbwH`PS+2qBnk=5dLGs!AmyXxXPNvpvoG(IM@^Euq4Iy(S&*%14w=IH8DS%?Pw?h zt{w%71uu@);{1f->}tC`Q{o)Yd5Pm(SmGG6TDRX{-OTsGHkl%}9rfI5Nk%=7kwU!0 z1`{v(3E$qiJlmj#3>+Lr7os;&hIU`90h7`**nZGXUC9^8&?n8G3XiITf zMo~z0YW!4Z%?F>A;1V196jHdwvbnG(g}XJy+3<0!;zYJvESe!-G163}Brd(tFA{-) zMR7WMMK8+N{)P=jWclF|;Teyf@l*O{&vZ|2&;8WyMp2S(t3k1*<14)RBm%X*``8gX z&C*iK=wIYfv7B=8@`P`Y9YJ%WDyle~q>;6iFxq25DKGU|1&Ml!LyKOIjyj=56qP|h z&$XZCHI^}Tb&EU@h@R00a3cuAiMDgas3V5_)zzfNhFhp2kuHal@;Fh5S(Pb^gvg5$ z1(`etE5^eu)RV=z=$-^Iw+=NJuhz>vE{nYFg+~hEI$NwUBBS=Nl=eCIXG#t@IgsB9 z?7-Wblfq^eJ<=Sr*ZE#0XLo=0aA7h1<)@Bbk9Mt%k8*<-6}=zoov+%>ex1x>%e^o1 zIVle1n>B5NtdG8yF5Mc86$W~LC9v!lIKx=k%_VdkUdZR+)!T`9?dEKp1z{OjHbbI{k z8Ng+q705e19r~Dz-!lLY;@X$VY_fWPfm{9b)#Ebif4G};H!O~8X1B!xD^e^2<{w}S zjVciL80S>W(Wcx$XJ4-)UQL%OUkuc46tHLW?=_>5_lwf~c^%h+Pw7Dn7Lx!^0XYwx ze_$G)2tR3S+NPd`qSRq3c60&6!ySCgqyf0Ik=iNC^118>Ku|jT?aMicq%p3P;Y_x21tXo#!nj=sM8k(j3OF<@&YB5Kf zi58uP5pJ929%&)xUPb#;%TgX3;F2#9?n5ZT5J{O|uD_H0vY}!)RSVxn{Hu?MRtM~V z6ce582W>mh9ZpYEa<)2rSQBM(Cfkj+t$4^VKW?#UMSMu|{$^JL;(XkS4YdD9X@uD# z+8!SsVOxV}&DIm;rRsbyrC`83&A8`@wqbK{A$E==#rxk+yG~-9!fK-b+B`nox1D?; zJ88_l$Jzvg8-LS!KY@J^9&n&Q+4$|7Qx4(;93xt1M8MpYZQD7%?7X~aa6cQZa2&f% zq=2%a4%R=E*1tb}=eJ3=))yCeXTIzPc}t%n=Y6}h77KFTEB}ISk@FCgi92ZT0~1C# zLQUr(KL}R1Cv34_n7$;*^*!W+wacJ@1V+lUbrTpr{7pNl(C(I_7$jS}l7e;CfZz;_ z?Y&>>9VYI*l7x{2U^AKkJY4Il4-cn_GqCIwROdlj3V&v zBxgP~~i zJ;%tjc#%1eN0+^i{#Z|*Y}7v9)Yf}IwFGbX8v$!kDwt|k|MN}nmS1mlz1PudpI7T* zuM2D1U^H9L#}AYNBxG+Kk>HlyXB69ZOEQ0R*e|y|1@y<8lg0TSA~+C#7p$1cV`^#& zzhKYf{0YQ63LJxU74jok?llN#!kIVnWdZBaBWE5c{?%1YYD?T&VTL0#$NVU^sL`k> zoH`E0zY)bI1M(}7L;+y|00SUW)$(2}8l@5$#ADH=G=N^4IZXkh-GK9%B9-57t|TY@;u*L?WhPxWb9FjFCj341PDwK%s^~ig<#TNn!?>a*+YwEvCgd zpNTVC(qzWKPKfMSQ@}NAFh&Fid*{U^>k4SdHZsoGHXHDnEO{)cwSj7h ze6aBY-B>?6kca?xBG!4(?*TtP4d}HDMbr`-v6-;sc%)eovICyqkF(ZIc~I&YXp2DN zE>NhY8+Y@jobv&q$cXgi*TxXT3{QDHs^DTzsKbpU3HF%Xejam!XEQZYjcj3QTF-S} zj~Cv@)b*{G4K#MxBByX5D)gU%V zZzTFNn*sHUUID1ZAwa&ix8!YFY!FKiL5>nK%)>}}Cp|G~=i-oy3l z2|3+p-?J1X`919qsdC)c%-)R5n#LCuo6O?|XF0y*_xF$kO6NajXgovz4~k@BIN0)Y z+wa7u2Cic=Yg|B_0VRxsqn;{!0TeKpp!smy3)W{;;F2T}Mv{|US4^I@qt^i$fA;IXeF=W0PN8q9`c)#V- z1!6zy+_t6mm)qe16P&YEXf^rD8;Sd$hHnBn%5>*B!=F95H!?fVQd=t2=IhQ=-8^L~7Lo+kP0+b8D$`Yt2kW@3M1iO-x0*i~)h->Ix4L5@47QALj-P@V74< z>>{-i+ue^|z|b|$N(KuP=3xpW`K-`&gcPM$9Vu4~-h##Q89_b~O4M)%R)|QgSboIy zb(Ehm<++ex==J+Ye-hO{bidonaz2;_w_HKlj7Nb?4%~T5$A8nD zlAyqvcM8cJa)V^=bkUvUK3-=fCjnnz7z`Zz0}^UTMhLY(nUANM=A5~sc>hk2KAwsT z(CB%*Xzh*pK;eTX;B`3k_HsGYtM_&#JtHHe#KwDRX*EKEI@l`bJz$Ap3q{yg?+?Ae zG9t>9+ea`Gj|nh_sX@T?*42)*a8#ya2RiJy1tOTx#J6w1BFG&36yL0bEjjf*hda)> z>_R>Fc`kf2701rS6$bJ9^BT;JuYJnB-?vh$AQ$=qD`{8Tfe%&&{^xU7nZ4I!%dX=r zyxzxDQc@DAQ()2b+ApwhB-i<%d47N$%kL!G80!x52+S5w;G7MKZ!Zo8msT%$?3Y@w zdv7~?JFAXF-Mpz_wQa>gnkz7%G>p z54iUcyjlI3R#oA=l&G!}5*vij681KQ9pi zOM+IMSv|^#3n(BU5l6gS11zU|26FL$qhNst$myz;e1PHt73+C<9c~|Y<`ZBrq50-9 zWsC0O(Yf-4Gi&ZS7bqx(#2dEbocw__A4kFo-hBS#8S)?%4^nHQKg-Y-WUqG<0dX|@ z;(+AKNO+&mO2>pGC6*T99yckgE%%FF{TiJPjlac^@u%{Y13g<&#qz}+1lhSZ^-X9^ zFNzFlQ;DF8_6r-R7FtUyEaRXVdX$|BvtIFdyW>MvVpFhSFFMbylM1dGbi;Yv$Q_`1 z13P2}oyANB9fDP>-iFW9wS2mx?%6dl13NJ+<+bPcD71M(gkeD=n?>P=nWSD;;`3Gf9U=+D4RS8U zM}xsC*w+Bjl^PP9@TP^keI77up%k z-mnE{lmZL^byS6xfBQ2O%TMzWv{(}$*^Da@g9(@ z;^OG-v4#|t5TLtlI)62{tpMB**dp_HbPEIcJD=d=pSo848kNCVYC(^@sWkF<2Gq;L zF3QwRT#`Q;Q;P>%%EUlG|HlF}C#4`|Q=n1?7Ah71Hv#MXKO04PK}YD?U?p^fsTnm) zN{Y?FQ3+%;kX)?=b zHbMz?fG1L82;8{4=IOt1$3?sYK4in|TW(S%tLcOfV)-cZgh>wJ6L}1;_@~zI#PaE0 z)h8VX(UlQLQ-5=PH8CY&x5R@Rt?O!Lz|TV0ZwUxBo0tG)(x16XBM3+^lxHLI9Op$t2l$nZE zYfI^u15h|=Xm%|nzu@CrLg@)?qhvZG&FbmKH*K52pR8N7a~1Th!`v$poM%Ocf3 zuoTj<#ql>cT;x;p#kw3khG@Vt4jwZO%*e2CjjzN`(f9W4PIUN~3SFilFpZDAb5T7{ zF~m!+G^eyXBkE?X!8h9%gr)arzmhUSQ&3{12RlN5Sxgof*)Sn?GSc6lE4Q$GBn z{CW@?8VXt`Ab9j$94xt99h=&(bP&P;MG68aH$z^R4Wut4BY>Qw=(_Aa8XggTaDnTK z3pk?z#+?{|+hl0*;DWrmp@snU;ve?hIw~kAn9P(Yre|dh-JC<=(ct^~`rraUy)g&h z?rq!&jCr#XzSX@B1T9$#*qta80Wf3eKNzw1-gDVw-q7`SwcFQaJKJkxQs8L+`t7ps zQTG)n{*;2peTZ;%JC}8)gAsik-zFzvckyaWIUvNa)6-+?xloSzNUZ62DhucziNPb2 z#(JHZ#p{9qlUZOm3+#AkZ|4IDmkbq$LV}q{p9_Y^hV<8Nv@9BRmjfT~g9QiHR`l+^ zBqb%a-5z$H+#dx}O2<(Q!<3nSEG^^us|awg2eaq;o6|;ft-r(iqn?hA2v6n#{};QO zb~>tIqp{065*(o`s?~>!)=TD@e>`{X$7m=Gr%Nitn6a(P?&m(0@)omk0RwwR{g}S8 zm4l)u1O2$={;}ZF)O|+lSYU!Yo67^kQ;S0bA!uDX^cnzTOi;H23KPtC zRHsHuiOWVfDtC?C^qdimke(L63BS;c3S$Zdpw;W;lOf92&gO`GyLbv-6+!p_KJF4M40;hB$ zMFl6<-sMFv+Y1JoU3V4FeR(NmWK9Wc-JXy7DG}fpvCjChJJ`Yx?XaAoMJT>)sg2&{&}q<4rl+va-7N^sH7qn5I=8^6>1K zPhota4GF|Et?1oStsw5n=o)W^F{Nyx_PTVAcuMNhQmN$Rg#>wMCiEgG}yG!Gm% z=i0T84%KL_VCPIiUwT5Fz3x6f_CCH)@7yi97!08V_!jP;M0!A}XCyRoy%kH8rRdV<;E)TSR^pIFcX)44d&b>3Oy`4uk(NivNSk zCaxu$7n3RSKs^CS1Xx7?iZJnP`LwVAd?QS-PaJEO3G)Jgl+Z8wi}Qu97Z20JO+eB* z|H+$xDYRzbvgo5Mys;=LjUL?!gYJOA1J`yl6LL5H=YvWH?78Q)Z)jVR?JOa)`~ePkwvPZ1@5+*^y8P) zNL$NbY(p#`W8MMyj|Mt z+ur(TSKV`5dp#SqEU$#7tT==~4FS_eK>c9;%mdJsPshiF1y0v?>UUO><_i;_J{q+E zm)xH}a_QOFJn@o+39tlcaZ<`c0)3G0BmbHw(Fw#0Tcq)_9eV#J2g<3kWMYidEsSsmj zG=^xjx1<6V3$)TeCtzCjYTw?N)qn?BRjnpBlj$<6$e(fhm)y{yRU$SS3OFv|96NRy z+b3NN$oaWKf#ZO`mK+d!&%pW`E`#|{o4ucPrf>qDRnV?4&evN|=LJi1@)PIqyOF>< zR2ctOqz1hD?(Q0_BW7ltCe>Plzkkyz%p{B1!>JAU-CenSii@@`qM@O2_2nW3D|XWw zEcCQ1BW1Tf;83E#+5fD|2Z`V0e6UmcT=0v-QVa65BLFn``1pVC|9s0NzVD^<*?F<- zf4Rczybi~hf&sU#S?i-orPzA}j~3umu7R<3J?V7}?#)PgcJ}b$O6Lh`;4$h|HSjCu zjJW+CeM%A$e6R%4CtHpmZ_jH3pO3@=e1i-*0GpmVVQM1N-jfJyvg4Fm zKV&!+W}=hJz{g9hGNjo5cmdk(FP2UQDIaiQxJ`MNMDxd*#L zUXG=eMdF~YM@6nI$a6dU#C&lQ57D;FByRptF8U|+UyFGblXsr+rZhZ_yy}18{7ll~ zL>X*D3hdu%4Wb9?O{@uZMRl*TV+XjfDP{rgbBjXbNQze!h>Zpp99Tdtt#tq}e4ZXQ z%1h=nz|@gHtE*dZ2fkV7EReZ^15SReaS$_iEchY?L5qT2cHU!$-y}myTF;@cM(~`&x&!{&=BDVTfKhv)WXw(7MQsK%?|c#Vw5L`|N2ERy<3c$T+zU!sYaOk zSROJ4TpPe2e+)HNMhMzRLcVlJVCC!E0=MB%stu0>jEo3l@_0#O0%PPjp2nLi>I5hWb8CA}OYy_zOh`Nn*?yiVh z4K{i9d@=H$bQzjB&F=nF!LzDNF{O(z?cHi*Augi`**1EYEqEU)p`O?4SZV(X$3;h?Q3py5aw^15O~vcwZTOPWR;d7^$yF5Pd!=ZejT3hAm}J z%~c$~?yIHodX=30-|Gqk?Q*W)NbnvFYif^_vi1ry@i+^#l*i%RW(5?ARCxG*-1$V= zk|IUt&ttKqi<%wOF|cRRRje>idWRBp?{gbpRm^G=mfSAsHE@Xfui51S`L~)bY%jXF zR%7pNc*Fh9OC#-G#b|UFL)CXZM{n3k&=QT89AF4T-#_%%>qRPTgF-~#u=0_?;z40 z8MFP~itO_ZZf?yXFdovNT5CM0%Sfn6y>Y#ySEwe8d9AnQV6jVEfMblhf9oT|)~(+;Xe zdfDe@d?`_$L+nJ;Hi6fE>lzSATZw~LQ$(sr!+(Kx22_k!mN!NP7&Eho1N-(otPtT0 z6{RWCIk%*Tobs`E2_J*U*^EDccVeA2`xcP8!ACC08v`?d5*v-e5`72{JC8V;^u$OS z-=E?F{A|FpYU~<$CBT`ucWOiYCJwAMaqK*3u`FHzAVja4DE7Gk-Af4Q@spR7!hzBw zGVh_FtZZ&=ZM`relW4y2Jzv~=CUcc`jqOK!!uZzlq*o6Y+bnu;dmOYmoK4uYGZVm{K-FYru<%?cD9XG%nMQiCO^8JDc-pJO*f4l@sJ@-Rm) zqQ=C2&yXYsJs?xQHreBV7;>{7NM+ZYg$CT3wJ+~9NouK<^QvjA*tdWkC+oZ{T%;_( zS)(OCT46X30@8pJO|W*wt!_&#-d%H^8_;fGaDjxM`l&byBbXTmZdWeFXIZIxn51Pu zr)M6Q0QDz3cF@HDSW=a4dx>xnqSgyGbOswtF|NMbz6U4Aubrv(z5uQ=P6KHoj2^1S zw25PP)nVPfuVIiT7CeqR%jie@8oAi=2RaQ^Q}6XkM!}LEUh0H8Pz+%Fk;_PC$Z}nEV_3QIIaR*=YQSMS>{O^dZXFV0P#zXY4Cgu#C&zZexjw&OE8I;=J^*PH7)5Nh z3^UzrRKCiB3-W++8XnO6LYFb^=l!n#m0SpQ_iFGGSFELH_5}5nWaM3ET&`()O5u+W zF%e|m6xfcKsi753!Un5sZ-Uf$Wz-)XRzx$jZm%on?>PzmZB;&Md`%r6D`G)}8{SN1 zCY#%S$?Y7c=U9&5r}`z5Q=`eha(v@6-<|!p%isS`Y=JchXEuS@{+_kd-d^%H(OCLk z{z)C+O-B3)Ff{o*e_x$kPiEmJNKG)Qx%{2CuvseKd-s>qR<)npSV?18&-(k-(uy)@&{63xQE0WGA635@t z=I7vH9xt)X_$lU!oyePDl1_K_EF#!~ljNzQLdO(tbflj(WnXT50G*^#L_S#b0}|D^ zz<}R<;x2GY0EH(#m(AQ!Ng@Lu!QsWX9ANGML&H#s0wym-1G!T3=fR%jh=`Gs^2|6- zrkS4Ulm-w3o)h>Erl!>KcYi>YM2wb|Z3Tsm6B7Q)xRU2&$pecf?5HKS<)TU8$QG_R zOQ+sl@I(TWK^TMKNH2OSELkJR<%%Pc?Z6ZcSb)mV%#b3}bpQ-*vJ8tuLtO?XQp$2O zOs+X{{LjN3q?6HtA6&T>yR#Hf=9fH?A|;%!4HD*{9dwYjl#PxY!R;H&=J56V_5K0^ z8#bcq1c@!$uYeEqM_&Bpv3s^F-^?;Tq^a%D2YUw_+T^!WW9~4}FyIE+ zeJD1ydv7$sAZzU)Oy~#S8wcPLn26I=1*w{|1;_qp1(a0FUy-kJ`hb$uxc~U#uKONH zIhd$J_BQ=|A;SONA?KW>T!g~DhQ{$grlMw zLJ5LZ5isUmdt7OJkJ0IQu$Q?8zO-ZK(r(EvFtBabNl-u_8pnS}{2zv_vbKk`qh>Q0 zm7*_!MjECSA;5uotx&LKl&tOH2C7O=a13ZL*C_}&xUC-lTkv3*Wc*1Sai;s1E~9H# zb`ZMQCG(Xa)>rYt4CjlS z6E4cNGOb$~f>J)Hl?QuvVgsw32mA^5Pn&Cz*EH(V8&I1%dgq?Xa;;z1`|Nz?JE!afaPkDN#r{wiR<1o4 zh1YBC%UHa;=UPc@+A4@LF30(#g1lZ)7F*+0U{Eu@CZ19o?JKJ(w2e7Xu1vV|;Gp@w zjnT)cHMIBEc3eUe-Qns+0|KupQu?(xI1fuBC93ked_d4}K3=Z8fL~Kg5qhpd`c)bS zjLBW7BJYb_@?oA4@kci>rc0$rO}{1=^>>Q)S8BUcx4hrbk-S$9lT7*L%5NYPR-9}n z%2r>^n2r=OPlwAK9qeesHs@7AAe3-iTWHj<3PzUS&7^GQ?|hgC@w^$|Quk|7zoU1o zBgei-s8eB$K2n?K)@67XP~{i1hx>~^-^8O)YziFq zPBqv^LvwR)K2=d5#&jZG1!Vm*Gx(2a@!xPHJ(}!qconi)4?>JNPOOV2V$G%4b27Y$ zFN={U>sk;lEVmbf{~0)p;FEr;mfcKjJUv7-@-)#>lR_e)(hol2)hpsZr`&wy$w=RT z-00?J$;X!xhRAhYH*YZ#@I91YF{AW@Z^qe_a+iIE*n}efAs2Q-eF(KqIh0!wibmA* zn$hrZWFgT7A1q=ccAN3NG1R;sRoiuI-zeBs*2K!gfSWxHoy6Asl2@Z{x%%)s--Ofy z@2}Zyd6JBJIlWprJq$+uI3dQ+1aULPT>5Cu{|q~r=0}BxV?24D@#U@ySM}2NPLA#% zh^w<#LEy#kOgG)Pn>BS5b8{x)6VjN}WJ2)O$#U2XAoFFo!5e+-?93hg0}f>La?90x zYHW9`C`N)hO5>{(CqvIRcr{q4brAsHbkLc`v8T^MVhb{>X0czH++c~lL5q4Fw7`X zsI}cmxSJ#kJOMIE3Q|v_b?Y29KcNHtBQ1ecIUHmFM1KGIym=~aRR>cB(1jhzPM07^ zaMGf{aKm12^4%u<$%UEP0hl#`)%vt9T6%8B)+OHe4M6}+I$za!Kj-I)4!mtGbvfI~ zVrD``#s8;5`0SPuSUIimfBKe*%4ThP0kf3Byi@wEj)oUPAb!>B%EI?tjy>1! z6qJl49vpUvvc0a=GAbe50v%PseoJOI?Peh)*S|5#pqdD9aN7XLNF z1ws4|-C$)8P=6@@cn2PDd*eWoGpfJvkuq4xC}V5N=s)jx&e&%moY zKMEr+MhCbGs_Hc%CL1z@yY0sS$OBLl%*}UmAcyxkmvdJ4_B=#rJ6`~C^Q`Ba+>ReWzhu zQyzvO6dqy+ESzAC0tA2Lr9_Ow`>buelJda@YBfK}`=??)*hOj_49+Ma1)`d?^6$&1 z`|Gfnm}Rg~2Mc?!LGqQnsC?wHiHxQS78*khqfE7i21gTHy9T0TlzTvC4-60Klz2SuNL4wvxF*iX=FX$~dw_iDZVJ%YzUc)J z)%hSi6sy#7h`mi)Isk1X7S``p2Vjh2821bmKu-K_vQ&~RAVp0F#+f~UH54qxgM-QJ3}?Rp)gv}osa3;Djxr6fvb z^UNB*zjHHPMjvFal)rjE;t>krHg(~ODWoBPMIU^)N|F3lJ&0bcnrQ%H-K?kngRQ$| zs!^SneL`>c)!w}wZ@Rp9=FM_()Meq64Asv>QfunFu9DQ&U)v7neDX+ebqGtdA`15{ z|JDNj{|Mq!6hB4D5+=91R9v_zD{a$7J5T1Pe;0*x%p71Hf!Kk3kFiKmu-{S7A#Z9Y z)ph1~E~tC>o&y6f6WLVsIP%LDxKFJ4(8|LZkO}0`+lPlT%Ch{##T@&H$$*~iZJw%QCy@7P`Msy2P3d-N>#e&}abY4nHPKKi4a)PmzLbZbIv7sVs z0g#9UTVh5$9vKEqkx|xM)U{i$V|*O9Pr2I-=x2Xl8`95erI#$a4Fr&!3qmY5{&s;B z>0md*l&_%m|Ey32H7L2?T^1&mn56X@+YYDg1epZ6wVwXDzZ`&t*v)NA64H5mUJ`)w z%Z|0n0XDkf^2Ze!mNEi!i~G1g8HxR7`uM;A2#=;@5dbj&)P&8H=(l_%W&s8%(sU%B zmUh6Q!^7dcJ^S7;{WwK=5Aq-22V`Ps3-M;7o=a&~3F}oFc!@HJ8b54fr#&~^7xl=S^hB?} zx*jh{U=5jRNmH2(0t08#R8V}tK;Oo{$-Z??R+8EnrkhmBO^|5aCw@HbY!)$Mg*J}Oli1}0-%+|U{=!*g<&~f(G~p`PefMx5O4}%g@f-Vh+_;e+d1!$RFat%6VM#3GjRQ_YyTo~V}+ZUG`0_HwU+gq67t)7Yxwr~UyOV%U&YH>41nrZRlw4x#@m zN=2#piFoqVz}m?ObBJ$oWlfiU7MFFS+(}b%^f0vl&C-GAdKVqNN&^Nmk|ugIVWd&8 zv(H#4@B(HiJ}wjYlZ9NL^KYMCuXCuAJ$wdijAi!^*yIUGa1crmF0VQ}G90@ib}Avd zA6vnZvUDeQlOBt82GMBg3Q=uc@>EMq-=n;TbtiVaQOb#r5m`*cOiEl0;#@^;T#3zh z4{Trs>O(77C3^heP3M3@J45}LayeYf-Tf6_5fi26cpi0}f!qJ+e3AOv9rYEFV z3NbCMDNK#jxojE_fw1Ul{j?m{uV2L#8WN9XxJ_ja2>x;$vU(q<)$FYq6(s0W^3)j1 z5SqTptFFpqgyE{ay6|7=?i6?pp|pbRe_mMV_N_fS?{4X(9Q(Vv^7*yZyUEG%cCP>{ z?tO9V%}u(xw^0f@3W>B8TH+r3vKM(im6jAWPOSpAt%@p>e_h$Qs+ko8uoPt$uDq+s zs2mWA6}^wrzl_jiyGqd(7l4bYJQ%AOx_v%{o?f-_C;(y zM;?Lp^#smAu>uF&v$~+24X)R(H#0AS+TVJ9gRt4XZ?7I6wq#+=*j!mQps~AkbHi@d zd(Ohz(lIi;x(!%YOiaaQy?P=d1?$_tu7Ya5E%4qK>408`#Hwy?YD%g~s;f8K`zk8V z5l9lo#A$Q$yo=SJnK|Fj|28Ij+K&F_O|DbZ!otgM-?+Ko%#RK%Z*OO2WZK!9=708o zC${#@iU%&hvxVc#fP+tW{6SIS%qa6nOYz*Nh*xRWKEwaboB7##^XQwk$Lx9K0M5(< zM98W8#e(``vz;$ds((N7QnTIslkC6;p8E-i!gdHJ&!Vk(J!~)n3Wfx_V6?WqMYGbV zR@J7|4;!W$HXpQMlpt3qU){9cHd93Zrvhec*Y73@OxQyjL==41Ij^gg;doa*Z>kAR zxVmsq4(Sou^1hj$Fx1ZQeK6Y5g3l0Y-dS%Cpfp)Uo!Tg($S%7UNsPG;ehltM8EW$^J6zI+jzgO=2`YgN)? zF=2=sA9xl3;8GbLwRy)+5SkS&+V>9k<0{1QdnLNu!NHnYCsPC#@t}6JL;n*w)9P7b zZ|bQ0-r-}}H_25beKshcNXWz9LDmi%3d-ht&9|G^vd6|Urf2=){MYVsUMQ-wurzB_ zYc=%bziZ59ns3r?>@FxP&|;c&fS8dOaZoKjd1qVA6QsAdCOz!$&DnG0xsGG^?#qg{ zsG~@S&)bP}`Hp;#VUroNpO?QaSTH@0a8f2eEP@w^o4=2vO69FDU3ss6o5PU>Lja`s z;es0b$pTAGQqjX{Vv)Vc=ZEXtUg+?#RC(_=x%*##x;^$Nt7cX)&*sYmvnQ@uzfHow z3z+Hc(H&qP6&pFY_l&fHQXqZf+8gIkJ|Q35=0!R6*WMxe zT8#@|QFL}rX03m>w%+?ShaxyMZMYO&1~fa}Vr2%{R%qSad&F_yZzU@mYsKELoR!UV z248?r(~RG#ly&=dJ-76Mx|`5#o_+v*SdlXkat_}T_D`i;I=@*x(g@x223lo_O+xI!I z*4~Jsr9`b^ubybuegN?(&3eVRxaN5$CwiB`BO*&JF-%bi;52Bg!&yRMBoxLZEuSxB zj_(%&>F3?YUSvF*5kolUp=W8SdSE$}o(?|*VQ0_$bs)##`{_@eqOq}6_t&q@SLPGwUfHd% z69md5A^eQ52uH?OFmGM?>nh#Y7{kmS;4@QmPYM|h0wlgt*Up8DN6z12y2|o_}=1RzF2QAMr=@L zxSi9f=zFpM{qb6O+Xj-;_~YQJb5X?}u2P(yC#bp)rJ&;%Gf&lb>}0n=or$-y*L~s_ zMn85d{?x9T6Q6L8;QgiuB%_(jlSuE&?McI3T@usX;sjGvAGoqBGH~m!2^5!mt-+y~=dwlPxL?JV_FgoOY16dy4@%oSZ3Mc8GBS)-krHQ1KM6 z{5MV+8&Nn;hD^+(Nz9{=xYzxiN&#hDFJ)ab)(u&w0D=~N<0|8=W`>aayHu?O_ADXB z5!~x@RS&FlsMN!%jS6QR$v`bFxa|UHPM_8rYyP$ZQtkieh|{Iq}ms zPZ%D|zf`>&ZS6YQE#ZN~+e% zo`U;}d8XvB@*xK?`ndzv7fv!Yx-&hikHxlnWNok=wPCVB_7HE9tuD-#&bQvV+AJWL zS>pf9AgjdR&9?LxOOh)Yfi&RZxm`P3IU(V`>c$s~C3GtL#$w-eD(kzp+5+Yz;o}jW z;*3aaX1|;x8#mkYU{`B|4*L(51iH0;7GXXB#wPha_{wu~Ch$$8ObmoPQL6QW=4?l& z_i}YWe!A1Ymod?<;Rkv~_?YIU504Dg-^Dk*u2O4c;)1+`bN`AQ(LT$4U0|B;x*uN# z{Plyx+GFO_Cf#fKjL@35WN#7g4o2pnoLVL}LX8;3Mwz0lOgXPyAMf%hI@ zkXjmDA%f{n!zW?i{pJYasj1%tlh1Jtd{%gOL<&-8z>m1pU8?=W|r zvuGy#wi1+)D@A;A?kgOdA?G6ZqP*}i0gEved$SWzI#DlRXNv^hZV$Z`a_(INCGvaW7u z;PdBN)2jHHnGBq7R;Ek&;1hV;(w)Mphh3b*&YggJDr@=jUAc-Ja@}A$&Q`mj4S~xq zt-kN!o6GVl@dnzF0qibeEAk{0V-2JOA`1=oU4?U5reQx8uE~T3tAhCfah+@OYdvZV z7^&AAInIcC;PFdJyXqk0X&+=0q>42tj|NQzzXByGFK0;9aoEj0PF$r}Yq~AD0QTr=BvGB5J7$9NOuvMjlkh?b*Io zBi7vOYnO`G#-9gamb7ZemNc(AVn<#zuyRa{vAp%Z`7Ow<(}eiKfb$#ROQ^^bH`xf2 z!4;KS@0LnEF}1r)iEJ&`?ULCx?M_BU7Vk}^jF(Q=`qbnX+gl7QqU_;?{HjgLWgdR# z5c<#VnDyGLsi~Fh7Z89x>Dv@?LipknCx%}8yV>ze#A}d+(O1Rh$0|-g?|uAIfICeE zQeQQH_d28(y$tc=;D=1W-aRfZ!Fj7D`gTO4pt&!ca$VT`G!peyk5`D9O5OC;tRwE5 zRwXV`#U++HAS^oi@3%`A`-aPzhmj0YY3L{A!Nk6(x@em`AX`F=$_|$f?UT}cncyzbb1r0SWoI<) zG`{c52}`4$iHyB>6Ph)VQ;qn&yUoFHtstx^kT;^@cAz`GL79J)lDpQh^F=QGMaEA+ zl^2)fy#Foh`pr&{#6x@O5h^>&ZTux}4gNcj`lQO%`ge<%J5q1Z`|yWdDckLba>GI; zNx4EKs=2B2FY!sBo1wH$#YrKJB($#$HK%vAl#`@HPEpcl$EiAcr9maK2<^xL!@UiDtD^@#{*$Xss(&eVQRQQxjau`vvCl8d zzqujnqLPO{hAb{l8H22iG5Ta;QPxF`jrN?jHkcY%@lIq3l=rjrNPGJe#V<|_u0_Gd zkC<;=he7DzwrATGQPp-flFK*q#KZ(DU$dF4?phwxD?V<^4#~)KfCo!G&o`B@LCyGx z@Ic|hSFX5(qVu=5N;tX90Fg(G#l;DH@pp1E=}M5QtEHXpYag7tv5y6VuJYB%D0G5XyGreNauQv|wm@DB{r*@YX zZZ*6nEl0K@_nZW8{|38%QJbgKBuy`)gz)^>S~!C3ClkwfgR)KMdf5f<;{iFP_V6nH zYZ2E3q)Q47E5t;PRXv6D0Xy%C>l-K$SPp{8O281j!qdaZxZa*$VRFv~b=H3Hw$4SC zU+{~*3(>!gPo>D8Z9M-Q9FFRr|6B*uGV`<|stFu7&yvYqbc%BxIh&py{59a(oJVoZ zTA=(QBm7cEuGNU17V0G^SkzJ6TfK(*+MX4E)}micMA+GPB$z!;IT*Q{yedbn*{r;Z zA|K*a2=?!#0_3X@8TZNXqdd~u+gqTZVjTp^jcNI?*cMh-;l;s^yfWVRK-u_G1|#2r z54O<56|%>kp1#)+vJ|b9iQQ;{T2dzbZkiL^d8Np&KF+bVe?qTBtBt$#)YfDSyTgRL zx-^t3g0yUy$j<{Q7oqnmg5>Sn?OLGyaa(w{;5r-Fa-IsbK@Ha?E**l4s5KXGmm=mE zaa={T;7^N&DcBm+zSin=FW<8^@M4p5+}jC2T)}r+-sDP-GEI$=gBdBlF-;GR+H=3> zCHF2yl=J3GyaF?Z^=!(1=r|Q+V;5ia<^C?}&( zK>4sB;h2LKdgT`l4W+uJODyy-S*zzP+HmF0<<*Y5(;{5QT*q~q35GnS1oU}Xw{pXZ z!gF7}4pf1!KcuXXg&1BS^9l`!FS*F(%$9weTe6}~Jjt2GMvhxKrHAHRu7^4~mq-u^ z6Ky`p_irOi-Nw^>)T!uJrwqYZ!A7r0w$IS|smi50Iv2;ooSap<<7}$IeTJPKe7?$w zWC~~uE?XxgTD?ou&^y`fOYQ5S3=(Ebgx?gu{*btJwaX*ym{(#^V*nlo>K3o23{k5e zN>iE_YKa)rssRdmxBHGx@rs=NY+Qj7+6}!1<*r#vJ|xPd3@r2&#;4=gckwrzJO{`t z&F2?J;(0k3n0R?OpBr=1<0_Jfeo)^=1{qG=>;3N0(6`sk#~IpYUPZp+OlEWDFZ0$G zs}I90cz0tEtqy+aL6qQhJIX}latH>q$jADA*X%%rtNX<=Z0XF{(*r4$wFmV1ojhyD zq?F8X5=yv6A}@YC1m@4H-7>;=F|EP8E9I4(G_iM za7x&{VaA1x61Hq7p(v-0_PWAkGg!@>#KyL`x{54d;~i9PKI zF3yzZPvfY0%Rr}B+_fk?r48v4+)}=}dJhOGLbIPOJAXog(aGBpz-0R-2jkv!Re6kW z^P+zBJhn;bKg-eofFX6U7GS(_B#w5|XW^N!gqjAx4S^s!vDJ929`L?*^mT!szN*gO zTrIqwuOaXT&&ZyB>=uUrG}2C;S69_iYO?F`e%k(BxBBE*m}uo?))3&SvN6^2Y`q7^aDrVN6JTcwCjT##yB@I_*V@cBoK0?#TUu-RAv&2v{5b-12^rO&ACe3D+ zPzS1yFEU?RQaMEOMKAIYH>>qbg3r#T?y|9NR@jNoV_w{%en8*y`4oi`_39JL*Oa7l z1q_>o1*J`miYl>p=zZlBiat-Y+K<5-9eF=-ITL|TvVmhE@KkndAAAIFta3f{R5jZf z1YXJUJ!4k}w$u8a-!UGkh7nSClksBpT><h)W0XOC+>QLfCtlN+R5K3Y zePx^^TiKo|BtNnz)BsCVX9dCbbfaaWF9$%WzTdx6Oi*%K3oZU^7io*52%WU@$ns?x z{nl(VJcC9Nmc23Xh#~v7Ch=ZuAF^xs-k^TAW>}iVM?Btf`nHb9iSd!XO0Tf~O14NZ zhP4o4-?p=>s7Hn%SJrqYvR=_ObFF2kPBrnehK8fxD?&PCadxa!w*PU6i0Z&{AUSk7 zIUjntDJvilb9x9wBrAFbbj@`45g+43QnbR#-5C;sTFkk9Z+=)(@~ReJudVr_jCra5 zXyBYpJ=-0f=TWc658R1W-%p;uaK$YCMk+aXs=X#LDlAj^ec)Qd?Bmr{XC(ge5zqCC z;r7L5TbNOh4~&)7T5`$H{Zy^&;6XVfafP!!9oZG-h8jw}WO7=$!J0`G zr_<~Q)g}CmvileN-`tX5iO9*R7Gmx7e)!NJ$|f&8z3EY#`t0=siIT>(TmnGXG#M9# z^ej@9UoSyiA z?UYTFCmjx$Ns`|^_R9R4C(2qI4((fOK9E+z7XNG*I60ea?$}7B$?6{SFCYF{LnEDO zm$d$}xlaiA*45D~q(rq3M#s`>>2&eA)(nE~iPO(^CDdIPr0RU*BJ-=&`VkSsbp| zwP_-FD~zVsq}$p2s#CYILIG(8o*|!DtmcCDn?XWG21f2D?pNl`@vWP2t(R4|K?P_D zC@3x5Zs$VhkwCT4V~m?*W;vF`pveA6DO+>4$aT<)im)2&@}A%sPC?h|!Cr-TsjZ@--l_|3X4Mb4ebP6s`&+Zs?{YRW z)SbY&psz2>tLdy-zL}nY8w)MPB=xSfRI)YWkuu$6D7UYHVCXy*6haZX-`6cUOZ3n$ zRsjP^smHJ)DGC;CqkR~4A2-qo^GDf85s z?Lcj_Q$zLy?GU4DbwtmOjpB*j1n!m<=lUt=4JRU1O>GIiWWC~pJmQtG=x3E0;>JV> z+9DkLymJjxy^=SDPj}Up20!cS6txqQVZWcyZLh>`+yaMbqOy@q+RKLXlI}$A6Q;8P zp`79JjCC1xG{EDsM;pd>m=3ET&Sv0_MP!>@9^QD;*o>N%Ot*D|uD*)rZHt#ElViF>Uy_fqXB^ILl&F4~GpukfF#c37pP zBm~-JyjIC!Ftxu`lNAX}`F|YN7mmfU(MH;wF0)1sE*!9vdj5)V_UxFvY$p5CSx)*J zip0zj#$8kBu}5roSvq3d`yc1w`aM(w=Zib9xSosWKy7|jsooRd$>+*?Ug8AZORh8J zMVMv}gd^AOZ)OJ*4=RjfB`ben6(U&ASDIF4o2MG{2Y%PK#juQ9s8avIV8`)!<_02%$uvr~BZ~kMnVE z%GMjH%&>AnR*iGCKnE96RNkVm{RD`Wyn1y{HPI0;+;d-jx_IlWoI+@TV!Vo>=Cles zY?CUo<+F@{YJu!>!%Zo?d*soxat&AWM-isN*cn>=w2Qs{9grPG1)*KshsTnh<$^hW z7dcFgSuq|=nl;_@zs}5@X$-gEV11#e)fD-d+zmFPprzWq-2>=Omm^Z5FHcpQn!nu% zet477&Al&S*g4NsSU)4<941h{`w{!nwei@32>^F>en?WtVH|mFD>P4Bf&>zcHNy)^ zMal3ri{j&7+K&h&pJS2S2od4>`3u$Z>gXtMkMcK0#@kgqn?sATF(qYk zj-oimC z!Hld$c5`50K6`eX;iiaupLrp2e3vQ|`|}nW>nC^ZK%Tu-#sN1O!h8qX{UwM*vB+v9 z@;562A&f>oFDVNqCe5ZFv*U=LDFd!ChYib2KgVw)Jc za53y#!I~7j!zMFb#m@zjgbzV zY}}JC3Gr}+-2xrtuAvR%g$4E-DLw1>8d9DOgKS#Fn{L?aw{Hs~uvQ>Ge6;0iEr88B zb0U86sQ8R0lZcQfQ=U({4=*`1pvDWgp3i$2z(fD@aCiR1tn~X(&GbpWB1KZ=6OHos zZ+~GqARKM@BI@>uj&m4#iJ4h$g3`xZAnb9cuo!5%z|Be!Z8Pq*cSBE4BL~EX+f~$@ zGRg<9DSxOkyt{-9fZP;-@b>nV0d1ZZ7xlhLucVa%RHds2b*{g*6cgLcKbn)uzMPXI zxgV2nb%x&%6fvt0Ion9hoj2g2Ae)(`R8K}LbGA7@I>F&1;~{0;sh5#K2jzZ|#_z;Q zru}J$sGwvCzDf2=9~Qj^a|ZNr3Yvr7j=y5YTnBLuBGrM_7w*Q-Rk?*!1h*<~{>@$R z97Q4S?-Bz+vLp?}Zhzo5mqif`9CgUWifXDlK=UPx)T0gdH{AA1R>JnFO-smeZ>)vi zJizMzZ8l&G6;uyx_{13UqcS4z!*|XRM?%@A^~uSkDxho9_DJZIxRoa8)uiwX5K|ha|dcjGc8}!u`fqHa4tWF z?4?NY!jZkaytV;MQ#p;B$b{}ROsvNH&57)N77-M3SQR$LzL4KB<-n2ND7TSDIl< zzV&wN-AHOva9ivHSrN?#9q7TjurcLs6%#Zz&#ATX0^W4 z79S^MsMER7bY}^kGbacY4lhk1UvrhxUMJr%69D0p)9W%mpdRF$baidSi|(TN zIf_+W9Oi=XIC!@Xczy(aVZ*vDrrZ!aNA?Q>5h}pQHoiD zt_|uU!8#eaZi1?bP;I|T`@zS_X-;N@wv%E@z)NRu2ilb_Hhy#z0`W0Af1XRY7O+hY zHK$R=3E_jboz^ESPI0>6zVdR^*)z=0^UB)O=X8j^qhA~lPhOdgG`z@h_%owjU=DL5 zTzMpsjn0R`RPUmyg7Mq6oytXDS;JBezYg*@J1QEuCkb5YQz@+tqdaFW!zTc971l1D zd-vOgrmdOGyE%LC+}+AOKmt0c7QX3wfVNHD0x)Le&8Y;J*$>%?MXg(ztsg;Sx05JP znqqkDVBoAQ@fTHK;;_qo4ga0A+F3+~+;&IY?Cdya|Dfv@0HHbLD!IPo7G@^vyVwu9 z+4GSWDqtfNG(}z>pmA;kl(9-00CV7Qg=O(RKsOr#u$-M}ZC5{D_Oo&?X<*H<1@~xB zmgL615Y5~@aw)uzxRyhi0}kE+5Su9kNSsD7M|lV8(d)uX#MUrJi|$9AcReTsKN7Gm zYAsh|jpjho^ho9eSpWrcvWGx%Pac<5uuiH~XyXLAL~1_6rP{Y>g~Gv<|HZ)#{^;oDR+4BnUX4p9mUVm+1nmHYWdT6FWyg^OX@+iO4jhg3uEu&wZR z4(JMTgJLrfc}AF$3=GvU7?NJfX?-Zf4!8GGr!mB&5ZJI0A@?J%i1-=uewKCqT8pXN zpX1_DO?=Apt1H5E^<9XYA-pkkX-Z$rnYc1){GvJM3_ok+z=7@VRD$AHtMt{?kJS-i zKk~_(iWVO`$7RQGylG+max?S_$H5!{foP`NusThFIseTjb&cVei6Ax>U8H6VI_wAf z1BAz+{73o+9i625DMpjFuAZI|=IvjnZn3Zkj9yaJ?d?s+I%PORt3QSa&-!E>I^VdW zhRSnQl?j#OOR1~r*XNs$%x(NcKp09tEJcUQp4RuGMntX^0pZ(XBn?Sby zAZ`EdF2ME{-mUE{uk2NaZl#8qB$8>!6TjQ4%`0d#sR{o={&`C13Wc13Z7Fd>pF2!u zY5mI51VCKL!>~{Zu2^};v#Nm`I0qlvZUy*BuRh3A%vA?yh6u$_A%I)rn*#)a zdoIH|Ub?&?8%Un(hX_worfVPp<@X0u;nD{SqL zzz7Nr3Z+B6QR=2zg9}iStyq z2A2HoWY>`P{?wIBQD-Use%3D!7_FIaDhiE9{}gRASs4j)UMKGid%)9MM?x3Mc6`d9OA|FOeQa+pGuxMr*P7qhO>=wFg*k8Cg7Mcg#-QPR6(W zRQM9xVPM6lu0CXl*voOCkG@->C9WHChgkw?cti?$hpj{sb5=O*%)d4~ope%mj+W%_ zQ8+rfn+GFuqkPl`kdUcN_KRpGLDP_xDJxe*WNLr6Rgqi9 zDjgI&k^%`N%hLDn-~Tq-2+HfJp`l7-fTv6S0-wGh+uTxw1sWO4&mmu1tivk6Z*gnA3Q>&+V z{qXr9N_9u)1-s|=Kq|V31Z%a_l3#!E=v+SrRGJuI?W*!e0VHRSCDvKu*|TR(!NGDA z%fgSNHGk~H%&aV)rmEr{G!If(%fQQPza$m4=&Wk$b=iieG-PeenyAykoOJ8{pmJB@ z>+>U>-=_Shrvq~8p$DE4j$?&+u3KrElD){vWt-5nXo+jr^0h)1^tNNdHe<|BceHl`$CogXvJT|B zBVc;PgXTWN2DIC~;D53QP)IFl5)>3QDH*5#HVkJ-$l5sox-$eEc z6t@c%2iCDxF!`X3%kdB8SKn|n%@xEMTBJTh{^WBCsTBvY9Yv;mqk4`aWgpq1nz^K(dk3jhTh2uiosCnMRN0pQ$NYgp?9 zDCAv;QQXM~hK$cRq<$WlMq{x)H%?0y9F5#?@}RPfk3=rWIGWLae~cerjTIk1_>-nb z2LQf>0!ZK88iPCZmCrN-i1qc~5`u350QKrUAbK=`BuD`5iA-dca^!=^pwd^DwyNS1 z62&y^yzOVi&1VMKb%2&PM01h~!CG`3azl^+^GU!0K&6A2<94yt_Ql?wp1E!z*bovj z?u`+yp93%$8EI*AW?cZvbpc#h6jF@+*#h7R%lLoIK{Fb-#-8_8C1S&Ep*nm0jlrdQaurk8~*Db zethG8^xX&^VDydy(Mye+?z1nvU`bWDq&>- zbPy-is{eSizs?;5R9?~2)WBgK7YNXjy#aU^P1jH12bA*<9~|c8urqKFQYiqlII{^9 z+SlgFW`Ah9!t}?-|I1&HQ~t+jxbOntNr5CYq99SqqLB#d66->!z9BPWxgV3X6w1JU zxh%Dd$7fCK?@>q&VH*wz$hhS0hn1apPA;yCssOGsaGy$q0lxsv{Rfs3OS2lDnx}?P zH|7EV=?k3zQw~~GurC0xFBDLp$lXS0T^ed~H4Uy9yEU5&1AKr0>L>3f@@F~-`_Q1F zy*p1DIXXMv2MyJP$TX340ekwtJjd@tZ6p6#Fjt+s@jM^*cB$~(|6;FPmD&xOSUbBr z$)wm%vsEtT2J6zaFEVhgs3m$6e6aJcy3P*Px9&pZcgcfI04v64eb{JLrNW2==zav0 z{g=$;5?`b4Ae+@1HibKvo?pfI(R0&qNm z@2J=3f82L90WB}ce?-OT=q`N(FqRioWr8=q3SezrfU%bLL2*A=et%~zBP(kN7+IyX z2?o`m+NYueS39|UXgcR=7oQQz5<94+SOpe@M0*zC5PBg*!a3v)AL264LR)t?%umxEFoJ=}d$R4oA5Nrk(4t|xjY;90 z>NbGut`e$lPyw*jXZZM1`B7jqkI-&T1Kq4Bk3{&bSX%fIe73fo@WN zHgl`ad#?YyMbHxBam=4A^Y2-v;9sLHIgtbGZ{k?Yetb}%C|a}cOTh#8q> ze4|*9Ma8hVq-4sW2ji48&)zZ*e*!S7A1tvXAJy*ega7(Xe-5}ipZ^c3=h2*Ub60AGo^g@P5 z+Fhyjn^3E#?!y1HHguC;{>JRm00f5?AP6)7xB#0Kh#~-`)Qz4mxI94f;sIH8Katk8 z!@~3Z#XvAAmB3-BO$3}|9dsR0PV@$q%?qF7L`IU0EX&}13T9FS?em+LR$W> zvy+fo;?#so{=P0V4Ko=o{Hg%NaN-sKW52)M|8L_z zye(Dyi|zk#>%l|IMie*}`P1aH3{aPNvEB^Isz7Kr) zGvxRE{J*`1v(38s{?Ci@{Uh$%|NrKyA-1R^(*m@t{J$Jo6MKq>FMW;a@D0V&{#Et1 L=B;WK>qq|wYfbgN diff --git a/docs/html/ZoneInfoHigh_8h__incl.map b/docs/html/ZoneInfoHigh_8h__incl.map deleted file mode 100644 index 7fd016eec..000000000 --- a/docs/html/ZoneInfoHigh_8h__incl.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/html/ZoneInfoHigh_8h__incl.md5 b/docs/html/ZoneInfoHigh_8h__incl.md5 deleted file mode 100644 index 98bf6b692..000000000 --- a/docs/html/ZoneInfoHigh_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -defaff193b484ca16d50ed79a7790473 \ No newline at end of file diff --git a/docs/html/ZoneInfoHigh_8h__incl.png b/docs/html/ZoneInfoHigh_8h__incl.png deleted file mode 100644 index e1dfe559dbe8b79d03397893ad05916d8768f70a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23164 zcmaI81yogS)HQkt5kwG>kVZrh5D-B+1!)11?v#}7?vN6YZV-_cq#Kb?Is~Lcy1U^n z-tYhJ9pjEWuATw!dpPX9pY^PmYt8u>A}=eBb%*2*0)fDiln_-wAdm~;zsJy#;cI3X zZ6bU_)0Y+(MO@$f&1lGtK_I9QlA^+j&M6yHPOA4;M-V%bna9`)uY`G?pmWIM;1kH> zPw3xnn_k}{*qHiLk*%tXOR%Av`GmpO`v(L1VCaDm>dT-{+mU}+;-#^0p3^TMZ+yQe z`)-Nf<$mX{Pj=RK(NK`!w%)TX2ITM^f%t|bdGn1bg9_v3J1RcSe?Rx8)+a}_Bcq_C z^ScE);3F>9=i5Sm|NgBij)cI$_f13n{Q0wgP*5bvi#zK=-Wdf21=6yz0ygugBR+7E z;0!t>bl(4tm7ANJn5cGdy^3yuMZudYJF;FY4;* zDlaeJceBPF9tmVs0wN;Lcij)ju!E>1-nd4612 zShzV+CFp))4R5f$>lVT>1oQ3g?sAdIzItVJcCZ>s$n^4fVRMt;az!Ul6U3bFzXh}y~+n>=VesaglHAi2J*jLfI#=S`p7uIA5+uStIPA)PoH4*Wo7!Zos%_o zPTSM(O-)0nB#ev}>s|I=iikXZ{5VmBlFOQkk#YTGccCMal9Qdi-hNd8wfi?v?7c(JmlQled?S@Znq)9#j*Oph_~NQ&@?h=>m#c&ulI zoSjc5s;m<4Ih;OCXa$$hX>>o06uff2x;S0?Q!rES(mMI=QZ?uvWp8h3P%kB|R8 z3r6=nIXhchU*8_DU<6m?7k}1l3=y6JVK2S5w)UKjEl~%HpO5eE-MgZqqVIZB)ZV@o zp^fSK{kzfQywYX=-K|@O-pwv6C@7GS zklgrZZ?726=d!Zrw6yOa8o)#6=jRJlN|@>CfA#fk^OYwjCkF%sR9Bz;2*8A07Vx|X zW_EIN;^g3HU#RmG-gT~r2M7Ba7#JjC@(P9?wc?_qQb#>uW(Fs=Ff=T8Jv3Vi>@Jm{ zQGg9D)~YM7r~q%!($ws~cXh-X^XuQnhJ~A(8~X`tSXFsB75d;}C4VW;ce%)$qksMseft)&gv~*ESy|c2J!)!d zbl>vwaz!O2coHQgCHtD%S{`4j*x1-RckXPC5)l#-;^GS5OUS+!6~qOz;h^sB?3f6e zxVY357h48p{uv%lVEmewr=+Z$CFnHjuryWYBrGia>eZ{Bo*s1HjNE&*ZiJiZd0><2 z2DcK;8U+mvUW>7B+;&TMNjVBzRUtVz^LciDe8?{|8cM_>K@%MlbANweWyQqUc$v9s zQ;(w7-7yu*FrR>c0J4Zb6{G|MQBnW&^qF+8D^oqamic}QcR~cBnfN2>HyUPUh+`Z6 z!i>T~nd|`x8oVua*_zj|=@b{Yitw_7RLE9Bu~(lRoJX>(iANl8hGiGRT-e;Gax5#{l^st*sx za(&=U08tH*Eahk)}=Mp>Ed4}T2)jmn&y zfEHcIYUmgkIk~w({{G*tWSZPh@o;eD6%=0PD8N$8%^6c=x5+i=Q zBs>C(9q~%a$cWswl;#ozoHU96nyK?xn|{IC`HH9!CC@^~gDCT4wY4Z;QT zSXWmU78VvRDzSk331m(PD@F!}i_6Qp$)fstcWrHoaItkgbPfUVPF+kcy#Bi3VMXxv zrOd0XlhaeJdgp^8<&@7;@hC=%G6!hOF1>9Zfy zy)-_TJxJ*AIPuI{^UdD@s`#{GoV@CS(tZ~UtHJ%$_TIW?t-U0eeqtio;Emo3c8$PR z>sn`$aVahqmPi-O#|Xq-4leTkI=OU#Lw9CxtH5_%)(>Qf;8FrULr4vEcFPgocYEUI zo~1BDRrWv@|6d#;lc(Y1_i90!PN0C&Q_*98c_Ue7UNm!6Rzx{J&3$Pn?uhyDb0rF%AJ?$g@n=G#O4$EAhls zSN11HryIXA|M$r%k99o?vxQKBgOverQ3}@4dYc8Yp!d9TR_DtT+tVEz9=?#oL^5KZ zsZ`-@F;d)#Wja|seaWbYKrFYcdQb1lTWQ|BiMn|TJL>lT^;Q%@Ks-kQ5*Lrh*}-C0 zyaBoNjP+An<+J-Q?}^+%%ST9jg(6B*%x&%M@7}!&^!JB+VEy!2rLOe9LK$2z$5U_$ z%-d(Q;^ztPDUcA}_k{4CJ*mzu(Gn3s39UNKWM$E=cm5UqxH|xf0%TLgH*ZXJti0J& zBgqg5q3fGZ_cuD;fKI@D=ZgSp%gW0O^YUt}=Uyr(;Q3OGjEq16iI0wciSu(}!VR)9 zr0Kry?oaXYGv%iD$B{GYdfmvAP8_Bk{|DZo`}zk4GOL$&c6AlhWkwZ`(>#9=CK81G z5Ph$M(kr9uFM*32N@V@*&0NS^Yr}bOP5#{GmFIA0uGNI#HX-k}!}JmC{r7i0whj&emX7xJ)?8M4-{V15j805+`PYg2jtH?8 zmh$TScsu^%$7;Y|;3~YDi=#$64QPKyA)LJ@0JwXmYG4Nj1p$~lgG>#j%E-tF9%BMF z$k*4mtZWY;D;^$Rr{VM3FF`>;K0ZFd!JU8&%+1W;z4g>%9;*qx0E)mZGCRmKu;xfI z?yRq0$JUn~h(%C!f_H9AobE1&FF%x$l4|t2ZUjeFQ&W5KqC%-a`H&t#IQpMGa#6-g zM7mm7bQ(|2&!Lf0hKw$ZgBK!7g_H0qctDope?WvpotV4Ha&lZ8;X!L)Y_D5t)#f*F zN2g$JZthdSzm1KJ&_xtlMCkoP_l2j-Z4K~|po8QL3tMUN`sYQ8SB8fOU5C|M`OtV@ zjvrTa{rbi2ezMczce|pzy#F!OLUxjHQR>Xg_tH{QIH+$F6xJ-QEG)K0Tl+T+u1@!J z)6>)A<5hytBqoWuL-7d+Aj6xPn-B11c!<1&;8wNf@$P}^7Jw1H8~4RAX~@XP{0D0i z6BASU-Qr|uV-|LK;Ujg(5CqmVaJwq9u#k|v{Cwyb3jVQYeJU`k@=CYx#dNoZ4 z_REz^KRP&2R8&k6@Nfm^o%BUV;8^#+`gY9h>+vJhW7C;+2}w#qf(wiWt0=|(*OU=T zh49{=wMQiH>g(`oht*JKWoJX5)IT+K*49>)r}@m>AcXateL)@^C& zE-+9UkAoCIp^=fwRxLppm~mPpk)N}5wf<-n za66Kd#g-Hn9-N-m9W7psp(Vc9?MUnIS1!zks)KmeyeuiCpfER-`-?@}osp&F&%m1$ zfvJsd;_q*=%dNS{>{7$R?gDDQ>u1Qqr>&?yUR=zaCYEh&A&-koPEr&nRkSn~to36q zxU6i5gd|!+Lz;`PENlKpW#xysxQn>BmuPvk%Pls}^`COtERV63{ zG+mauqlR*miAk_m>)%1VfccjnkWz;hw6kG# za;hpX9cWvyX|U=hx;kB6ZVz{Y?iHIdjo&zeU>RjLp9Zd8$uU0T)se!W!!H8d_R7`JbW(9s#dR}73^@+|OS z=3PTP`8RLQcjn^joE9+eh?NfETo}O}8cNP0m_kUh| zV&kMk`r6sat}{bNqcAmIakM`2nvj6t$Fm2|YpymYDBrwUwVJsyF*AF?I$&-4+}8Fv z2iwrkXAB5$#C$kS#^=vxOFfY-Eg?;wFJw}<^jnZgjg8;>@NCRzOG+NbF&)n@*m<~b zIBli0W9>IzN+R~IiSDHEok}Sv*dK4LQcx&wZsWI!f}1V(ox-l^>FF>sJW*G_g`|fr9l$BMl@X;9yg%q+pJ^ic3M!6>UU+Mf4dxFlpzP8+YRnX!7*CVJ;KA-r3f9VCT}jI^w+=MUFe4Q(5~f6uF`BBv#CuuF#cskCg6 zqnhnYQRC9{r5KsB|7j%>c$;*}>>e1pS41rePt!K7`4H2A{}g zvahcf@Ng6JauY+(gTH^D7=gHIekCa+Ec~a&?oA|xM^qf4M!CsGnbE>rzA5TDgV59Y zft$ek@@0gSQ@=MYTu~u<{JU{rLBXvNTn8Vi96CB8ND*#_3_0cHVsGBq4$`2gsDy^x z7e~jmQ<+Bww5l0}3a*^OOLTZ(S{4`g=V_sG~(`pRZs0{V`m@6W)GF zu>M1gg+P=vb76FLKB==`-Hf68)fz}&qOm-?WhqHB&l(owCZBiEboGJDjbm^``MOV# zNLT4r@T>YX)C}nDYMi!Xysqd|_$LNOoxWsIFDJ1ah$ty}*dIiG`)0L0V?1bLZ(!g+ zNB4-cD$3QBK{W^sF-x5A7-@AiN2OR)&@+Wy-+yiG&k?Ku4}E9%x}>mh4~ul`ow3Tr zRb6O&JkxPHVkr{Lh=b<03(@{a{6|u9-uftSq56xEa~ARUW@eWsth~>kGx1%x85xnQ zXF31IUnn&Q5|P3}tPrC~3PDN86v>2`BP3MUsFbm>XP>{i#~q=kjP#sck=LpBt%?f9 zda&vbPH^zj(!;&QDkA3kH!AV_`^l^S48t5mpX$Xui3mPPOVxTvN5`t?n+Bd;Zu%}| zBMTKV`;hE4GJsUMR96Cgd@BZ1pA@a8$v%DjSY;YBwAAy~d8Hpc z{V~$l!NDYh4sAa7lQyttGtx2cBgN8)ulM@#+M=RN(*+iB(4EcAwIJUS5!o>dmcUJ( zVLwK?p82yGn~>01`Ti{tbNO7R99J(o)@7}oaqx!^2dDdKU%rs21`Tn#C!%J|&)d3t zq=Vyhr(41F?k*(I!bfY#YiogDzaGGAWrgzakm>9!zqoh_+yH*l8WkJyY()~`*Mg3D z?s#IYYGgF^fuJ&(gS#c_7k1~rvs7L`ou;ea03~nLpB<72Un+Z^g@J6AAnbt3ih)YY z)LQpbRBahO4fU@fAuf<}{!gv%|Cr4F3n7J%LN$xVi6J4&d~oQocevi?vR?>w4ej{S ziI6-`7>*$Y)kM8Kf?hU(bngbj>OXR55?qHvF=ox@`x z2p@@SXDE5grX(;vY7K{l(4a%$3pVYImBwdg>OjtiXvxXW4t5YlQBXWszdY~m>@0_b z0UPu7%L88CWc}%QJeXwpMWgx$cudqCv&KptgOkkZwH;mV`+WZVBb;(>KN^85{8jPn@*JZhvdQq-gJe#*xdF^uJOSl+S)n3zMmT!d}3ls{roch zQ8jx|5KVf*}l8C1~yMl{^oakwH?)I~=@uQ`0{z>tjxb`hV`AjyP_!h}de_)m7rT!U5m`;w3ffHyt{)*^ zPnAAWef@gr;`9|Q?V4&3+Y>4bA=Xg+kkHVLzicq^|6tX7VlR}-*676&0i`2MMoyAG zI+mcS;*XO(dlJtdMfId*mKana>jOay-DeM$dtaq;?V1f_mEOKrE26XC3(-c->)YDe zRHCX^=TyQ-DThmgw5g=Rd2wp|vq%H%@B*7G0T3qsdN3N%cTpR6cV@qq2iyu1fBxv7 z*?)g1Vpxieh3F6Uq(x$48fMbi3JCDvx7Iy^!t|Gdkka}5sH5`zaezO%ao-h(C0U6w zl0Mua)#F-we*K*0;lsYRw#m`a*IHWGa09K^uOGRVQ9*Lm()!-mm=7Kl6Egr9>GUud z9Z_E_coT6ze^i8p?G>oRkB_h26I10YDlR^qZCUp5N!Qe3l1)pYLywnyiPxVB0R=mt zsPw1kf6MF)1(sRl|4%90+1-7HaDI~>H@f#Brcot@?)78dl1*`@XJV=}AGH@~l+TdvKEK=KPLD%Ckn~Kr@7FKqHO2dn zAJZ3#pdb!dF`lrLq_Qnj`%)cmmn=1%XP^bE-7=Z~iJL3Og7eia?;*yD(yLdSt3z|b z!n+3TcPE;>;!0V)w5iAaqNCSVR>ELS04Pn_dHyRs_xbq=;KD-IhYvBRV%Ddo`WALi zK7OqD*yi*x>P@9y>r}enFSp}bCUthgb!#rHXau3hx$-|SJbj+-kwsU7+Z5{lG0f}_ z7dk8s27O@F<)XWv=-UlCu<7tlH@DOf)no-XM(4Adetaiq^;gW{#hcYQtrdG1ewz?b zh3_x(-`W?Dgwa_L$0!V$T^t-1*8aqBSXkqa4gKrJYnz+P(zNMm6c0zsrt zk6~h-?c#d2yr?ALQijxvT&|*cU_SH(5Gk@}5%N!J3FNbUc(TEqDk7FfrMEFt4Q{pn zp&7j}m-M+@Ic`+s>2dYZU%$rM+BB628f_8Jf>ouEk2YLRpmZ4e%fouv-qnVaq;V~B~}BYDh>`WoB&3@_=EEmlL2WqY&yn!qH4kO`f{$q zyz4Y$fvFChZhLH(>iP5cr?vtm$iw79AJEZN*YLq5}Jq)$)KytP~0(O){W?$ zI~qr{{ltRJfL@AOM<8=wghl7e#w796hYxL`!oe;sxLZulrh9qzCfI!G3bN+<*{s`{ z%*o3|h9{RjL<~5R+nuXCC!o@^p*3GAX4WnuPb5U2nAnDww_LO|gbIHSp(}s*=>|-{ z>*edveU>ITLu29<&8+3>wj#fhBOPkoL(-<%S%~~^PS4?AaFDl7o#A_rZ`CI%%ZsAa zSI0A2DkW(@cY~d^4Gh*7yR29=owG9^Hd)Pd|B4CcDY^f`nfKs-wE#r%`$wCR*B2eJ z`*SvaSy?)O=)}anG`PhJ=d$&m-_3o^HuPt)pfUwv4QZ}9-78S1_JHHLEpPf^!{(pS z5#TtlJiIJQfenSXF|Tm`b;VzVllrZ#CqvK*I^<)Fuyk@Jp!0Uhs#Jk?cTPkZdJj=i zl7K|4mDCYO-m`|Uw=313h zbtn;y1Ml&^xgKu9J5Jk<7~@J->m#?I#v6IIKz}Y0#GtG^LeBNfZMuGd--^+MR+cX= zM#SuzkQ!%4Jkk~YBwo=`m<6B9d51f^eXPvrLr~Bke~h4lg5(Ex(I_JC<30=wwB&g1 zOX_%4;1Qyai<zqo%HGNsPZKU{zLLqOWqATwOBz3tm@Vvd{bJAP_wQKF0Vh`Mpk%(kJJ98-so6YTK=XcE z`_)>U`VYUySzpqNBji{lh%@DqtGc4_5pMb{1yeOO0;t&fxI`+X&qW>oNxbK~nmNYs z^Ko`o)g#4gs`ca#6k0hsm&h5kwPS2(u&NY%fHHocfB>3&0ULd7+r6vNk}6kc)wZ98 zJ?UP5CnrZcmbX8C>~nDF0oW`$--Lk#TqP`L{-*&3hRc{3Hp1B6hGrIkaIRdC*SVvR zkZXGO(YBZ4HCM%rA#`k@GBc>ZKZ4TGYnb{E3xRI@M)?6vY#kOW@uPRLai4k-$#!YlS-wtIb&F%eqT-^KxWU{T~)DOk6%@;Jo$>l71R3qH{d=CGCYpnFXg zlg=tHU$XOG;%M@6OFa4XrM!HwygV9SRx_UOjAKmLc_3m5X*oFG;`;lvK79G|XRaKl zs%kTFfxrXaBYC}tH9-VB&SZW*PjxKUmzUA3teU-eC@@ZriX?P&a%PByKrEn5!J;L9 zpDYEBG&!6qI4Nm3fmJ;&Zf$8vMD*2wX`ZB9$?7`x;lY7_!0jYKB^W|0DPdXDk!2UX z#>b1iy#F#_GUfAub^u;t{*&aCioFs>mht53p& zUTYvZuj5@9Jk#0BAS=8Lt*eiXd!@)wQC6lPEQ}Pn>{DPWC1qx3_e-N{TwOh%k?~%+ z18J-jAV><1Ff673(2sz^Yw_Pdv_?j393mnTPFc4-L;gY(JpxjlyicD#0qG@^*1bAp z?94~aJk7v7{abTz@TG+b)yODjlmw9U6~68WD0J~aoxFRDfqqZU{8|nfiH?EcDFXw| zQ<;x(gxLxjo);2I3eg03)HosbWY`a59uE(%q5DrylA|Zy}Dg}ANv`H*cTb%j^c(tfBpbNUTSUy%MvPEDK{+0g~`1tnza($*qP??|A~rsL!J4aAlfz0+5BI@?P9L9U1V$(0 zV=B4tY(5_I8_4(3T}O6FJZ)^|0s{$UUh0K{XayA&RhJxe5Qt_J9$F*-aDrY(whK?| z$aw70gIcE=J(9!E!y+S(kB;6gVAoJ;d|_o}wOQ&;1lbEnae&hV&dtiqOkc&n`R`w1 zCV|&9coh{D$6HeqnUu4-exvbCKxBcK0291LZY=?IWxc@ANXc4PmnRk2GzTDGyu7@y z?{<`oJr6I@X{!AGeQ0PXG&HmzKOgik`9(z_XfQHJ(H;8o`Yu{_O%3;xCo8~Vjh5&v zkM-}IAtP#sxH05=I-e{wH_y$@?d|OW(f_-z@A~SJ*RCcYppDY&g4J}8hMqp}hUANl zt*Ne-kd`JTCgyiN2(C#A3tp{uGEIi_Ae3V8Xq+;j*u65!VE?(QJSz(LI` zDFL<==IfOpqzVm{1`UcY)m=1$o}?Fy%7t7GYoCBi0x?)f$gikJ;!8crLH2?wAOO;+ zvIHZ7o{9bW^BWe)G$Wk6gB=`JFv(E5$dNqoj|4oNH=iL|I+k6?8YHrKKyj zL_|a&AnaHGA)V_=|HJZ?a}d^npeBw*C!%!@E;Pjbk~v+-o3;H~N}^Ng?LX_iOo9T3X|{Nn)o0dN>RW3|Im@m4dSJm!Va# z-2BgwA!y?0=}&=VY-qRy=_GH^=v1YJ%T~khU%x<1iOFd0$Qf>FX?dSk1~$5&xcKP! z_#QaXvjoCJ4aFP|Yl;UFLK+$qKnxlh z8oqq_GGVvMtM&L90Vqi685zHqm8mzlzNod0XE6!#xHG#BPvCKJva7B0N&7J^Ej4;H zXnXd}w62P=-1WhMfEqM6H;*LerDbAzO?`Q6^*mPUwX7`24Nrjn9C!?Og%r8*yxvoW zDsnEEpzfZYfxGc7 zy8r(Dqe54B^Ty}u{^i(Px(`jjG@87>)5!syC;g@Sm z1C=oNA}D$e2DY^OvCr|FN8@88g}{L=636)6j-EN0n3$|=Z_nthG+mvUgU)fKkDm_7 zBUMNO8C9xd2no7Yn8d<}$%4DPKNYkLL<9sFn3#|tU%hIB72Uo^@r?4%;8_)xI!Ji^ z{ry2?c-H5M?`CYtNJ|??B>{!_%^Tb(2}43cashWPU#gXvA?>Qo^%cLOI@705o>1YS zlYhZvLMtvVj?m5&qr!QDFC{GO6CDle38)yU$20qynWWU{)F7D!wc*2uEf>b;HERwP zY2tc|O0!ogcTTU(kxkgu!Bs)H`+EC1O5F%)KUFjmD_SpXldKs8QD~H1HOErjg`7Q z-KRT~JJ9v}^6uJ=Rxc;W6a*;3f)?W?B}GNy9Se|}$Ctff-H?-bczCp?CA$-A=95+Y z37q+~RaBhjegw#+@#!%eHqN=FeK6>VNK8uN;pSFSQF%1g1lb6qWIJPR&ncWquEqm1 zy}q6g3o9JT38=L|rWF?(JFt4dX51^Er)YmG&14L%`Yn-Fs_Br7kx`qU@BD4kPRRX_ z(De-se`@L*8^=y{1P3ItQ?`a-r&t92isw zAh`jdDG1siK`?1lK4oMqC@tLuZXc2g6B84t9QPKx;K^nh+?*gbKr#vJJk%as$QZ4f zrEdhq=89DE`O*B|$je(_UwPQs?e|6=@eznp??OP(($XFs9ns+B{lE4bgerTWU#_jK zeVZ!_y573FI?fj_23GBfiHY^}=1xvdz*5gtl;6IUmXy?6Lgi!kLD*^0AiaF)594?+ zSKhF2P3+&98L#nj)6IBvOiW%bE_;`l2@qZa2n)g@U7DXSGyH|Ovu)Di^a8N-@E43lu4%e4uQ&9FoVoBw30II=KK_R-Kf!~)301d~p zX9*ndlm15y1Bwn>kXup(fB(J@br)(n%wV&>eys+95j^_=?_=Yo4}#iJX_tqiIxE6% zAm9L1a7IQ3v&y;)1JKPC=A&d}WE&eBA3{Ux+=O|(N1fyyPU|>!a_d3pBY1UU018%6 za(nE~2SBBQoE>tXj*waN2@_KT2sw_tjvcoqLHx|f%38|2jg82l)6%AwS5?i)sn`Tg zyHQ)exm~*08JpJWwzuc(MSzcY441o8v#yX8+T2C;6K567PsM#SATPpW# zH>=C#R=JqQf6wdEY*t3-<_9naTbCgh;L}h|sCGSkPZFL@-Vfp+#Ivup4bMJGiiutP zj(z<7U8 zSy&h@Olvo~|0+D1K|%8y7<@@Y@c5gJNulApclzYWvnkUtz(+iNT7Gdc2}D!`Ne;iw ze6aRtUvDpkwXSb*ULHL^Kl%C-p>2R*OMU5)4)`8oG`|N-9PXmwBd@lBn$b-gDddqrWe# z%AaIzYWjE72NC&$^}$_2m8t68tpb(2mKJmIh+&f91O&qGLyImKPg;5TFt?39#YpMS zw-0xubaf|ztXN;yn4Ek%Qdr8#PByr%>~&3k4!m@+rrP|PS<9I!nEkuW!qm^74Gav= zJ?@lcWURsH3dp01a(w7j`HUlCKjH|I6(cqVgJ`_Pvd>R0E?3`f#n7!E9xB~_@f6WK z>vAn%H}``vDrzD;{7-2_0A0>!{9CB*&PN-RYHGWWrQ4Y_I6$Hu9gDR+BRAG~*>bem zo6Py$-Yhn+BG&A^hi(gU@>HGi!J}E2Baaq)px+I9tN3YeH?iDgKov?fuK{N5aL^6y zytGs~eq(moIyY6VNE8hL>+wiu~ zj-FIrby5GEn0$0!KIf0s?GG3pg+3zNuY*REp~{ z?|cAI2ns`Rro+oP^r*gX0p3EYkn=ZthY1H@j*(ii$F%8X;?Cw!f=Dr z%9Wd&*nk|fFGD`b*H2KV22V>{o7bf*s;VlrsK_(@Xy@W|)M0%Kh+dm*?W(IbA=*)x zjyCsMEe+-@oLAjm^0b^fbKV?xLqkz3GrXvEz%DDBNBR43*3?55831+B`-8pO(@l*i zAa8EpZUt%+@l3*T1O4iNez`S>-r2Zfbv^A-`M2ib-HhmOC)${m>EvGa4lf!k&M)%cg7o$cMoteD@)4dAwZ97{D zn3K4;O>py&%voPvEM2ZC0RivDqRqE8D}3y^{kh>)XmMqEd4PW*=}B>dx(38fdS6Ni zOkt9_?fwCgZSUa55{@_#xdugzMCbC1m)GaqT-((_eRA?wj^Jgwya#vo128)_#$S-H zt5(0!d&vE4=dJE69YgHWmcZ|c2}|!P;aB3uPjx&!ddUjj<}Q^!MiIjK*BaD)3$s{M z)Pj>$Z$FhB%$O?|bA84Lac0(jcmMswmmgZXzPcGVHikK?`N(8%U&+B?Y7Mx4r9a%a z?)><^GV z@nc~3b7|?Bj@M;-yT|i^)iB^TU^bi<^On`6Y#@&5?bD|j&+ZBuh~RlsNtiPpc1C?O z9~J0Mda*a#@)xE~C^K{j?*=k*Igl`=^YcETq^SQ|5qq}rR}f<3d^dZzTV|-MYh-FF zT4JLiTdG9By;HN6T^E#TURO0AH;HrwAkOTJcQR=0fK=~E20%j%Wx&+Dpvi8TU0OO- zm;_TdlwT6D1_%|7OPQEvZcVN8cs0JL!}dZ#fbJEwLPbr@30xA!e<0EN{(TjQgQrXt ze=GL={rP}26Bo}8B_g_yZXrR>^FVhlLjamc9-Db3AkbhIK3bA~w<>mz((%TZ*f}cG zxbNF6N|op2^p+Y>$V(s)%t*I<<@55|oVI=fc@r0nmnt~Z-qoe7RACk1>~?f&cV*Rd zIx#`2SzGSUbeo`-edmX;M|460C?+RB26g}bAr>haD6ZysDQ0x-@Vup7Gfmg9aq%|{ zcNh-_Vnrw@$bY(ncq;5eb#US+)EtzM@YKNI5ENE!&Z?yi_FM5Rr%jhjR>qw3zhiU! z;*qE}7|Dj|W}4zt1Sts!k9wMg91hLSVd!^zf$R3{H(^PL{>*`uDyxn(zEhIOj`x!* z6@PqU3-62a1fRyo;L$a2|w`eEq51|E@morlh=aN!V z_J8t27?sC9gkb!13rn}A#t>Tk_YwHg(>In zuqmL+8ORQDb(?sdZpkqw4si9!;ZC)oS-#DB98pjc);(?TtGvR(I@iO?a8g!%{g++w za;i19^BG?>y&JgVQ8Qqj#X6BSc674J$`*@KV54G!wTG7OfjOYvfkQ)~4 z@x0AuMqGbI+k_HD8f-#V3m4Qm(x7e5k`O>mU&713& zR}lF5y3^2zaBf3*mo|7h#*>$lG?>18z-C6!AD_a!DThQ z0&NHDsnTul+}+nc8Aok!nDec6t$ls&@`FO=Ct$=hw&ko(pG+h=$9yauN#zT31WJp8B;u{Q`Y*rRA(51He}>sXhX6#f>u>z~cl#QU znng~sh2*ug_TlHi`LfXGQ3z`HO-%F-44}7W`+=4M%m=e&mlJEI4rW2aTP2?Y-aUH& znlZ0Sg2WU}bn=jD)MHwtuaz7iaU6%MY)>2Epq~I?3UHB(JbbqOCBn6N{gyBI_||lI zlO0`zY%UN;(0)iJq{|i;7ACVTBl}WCQWU8u%-1H*JYxY@>y8jLVeo!$NjF=~kD;4i z^gb+D0u%E*@Er;;p3KZkZ0{2GS7x{nX!qp6k!8B;Ks~eAg^z_*^D4BRS)DzOw6{)0 zd88-REkq3D;ni?xmSo+!w)t^@-x=!bTUl9ySXh7D-D!ozsbzL#@S0)xPf2*h#D0(t zWdQ>N*Ub$Dgr%UWt{racxz^axVh3xdD*p)4l%H;}4Iq~2il;Bp@rsP>dxc}zouJp- zOAAuNuLWIt@&ywI*g<& zp{&RD-}sRVw)?j%2S|w$8D#;0gS&eM_d~iJ5xnN%ajEdoE|*K5L+BI$`U2W?bbPe2 zi3P9B4=-?VCUvOLi|)b6v>+CpJ&@@TvQTh3ZJ97%jEiTo1KU?qR<;EN29&s}L9KYj zOyB}0TBmhRf|3wk8XTUBza<9;AE+448@R`!mdD2`QIMzN!izF}VnmFMgF@fRipypm zosp5e*Zv&Md%wC~2q$0=pX}oFckIgE-Z;2peZ!{3`@>S~d~mnVs{CJ;^n}dUw zmX?>9IaxG6CXSGl*YQCTPS}IYJDmB*Y3%{Ge1V{|u(-hoU%%RuleaB)(On!(JYW`7 zm>L_ab>960{eRHC(be?=kiw?#N`afg3BnpDmbv*h&Od*`_m{$_%Z%=@XkT=uqB3Hb zlzjV0c0VTIO6Bd)6MFjRwx2624&_03NlL24WrV1n$&t1qCl61cRMb?W`r6pIxH|N& zKxJleNm(|*+XD~-oVa1uc4uPyelgeT@JMV&8_j!7o-0_U_!@F%EF+!%^ty@n|0jBm z{f7Nv8N(8MH+x`cPzn!k@8)%XA9SQ`Z2{upgTOFVloE5;ekN2-{eiTSSW{!Aq|{JU zG@bMU+n{}Ae2na0AhK{kz`y2ZInY>rRZOZoe`00DyLBOOxodC)>fX(GcFrm$HQUXO z$TDd50t3xdZ*f?6{}BH1!yi@=Oon9bokS^2N`e7lnnk$Vh?~31x|iffW^703G3jCkry9vncB76M2dxKHj+lE5Hl= z`GYkuz{}45tS%x|ZA0$O8<4lLPP#u<5f+Xu+8pRf&b64}AkZ2d5z{E0KU?m*1>L!G zLk~F=^=EVFQ4*a!MKpN3@87ed3WK_(^E9o?FG$w7-g$R(IByhqYjE^Ri$s0B%m4>@ zK8$GZv`_J)o~H^QKPkd1AxV9B@MUaF%(wDk3Q)xjDojjj#*p4gLT*u18RgUeNwFko z!-X2u3KX)dYsCIh<)Wb;FC>Uq#%)kUykHwT*ehGS%Ch2h3Piot#`fUgbuuV;xM7~T zwCTb2@ZoWbU&YcAUkXyjOf-mRVp6qy-UW3BSx)UGJ#Ry89YaGIPuYRe3n>uF(Do#E z&!EEX^$h2`G)RS63ajw^ed+u6@9!%peE44W8yEG>n<&u#v$G97V;d^})(=NpsJ(Rv z2%|e9_=jD%&sNvxSmB)Jvd_UR)TD;AA0UyggX%p}qJ_u?p(lk|(7mA4Nt8udG>5QsBdta6l;JQ1Xygn*8Ji_r1{blZTAEhJ6ZZA$I zp;gnxpUMdR-=;vgqz6OtbM3{26vTpTU`NmF9;Y&H$O#CQ#lz&a%1xg7Qqd@ANlCqd zmzmjagBu2D6CR;wWj-`E%h!ANCFDxyO;p|QbR^H0w4+WnDN;EL))Hc3r$X3mI`t=F z!os#N#n@7oc+J#kN5@R_@B61uE55flw6!ZWwH2!Py{?_Qw*}x#3DvCMhYvEk8TYo| z0lgd?j6?tF%i3ByGv#BP9Yb4`Adz_*4Gj-?l|LF7%s~P@CMgG3ZFPc^tl{Nlw$)8) z+VkN<+!99~^LuIfyYq>(B)zO8Jz&D#-eS;RZbsfuNHqPiS>zoKr)uJuu~zCeC4w`u zvrjHg+pkg!^q)NdIYoobLhH^P11OlbcAmH%yr7yDk&%fD2|0t)IdJC0x!{{QK#R^O zPr$F6MDx2`a($&85iZu(mzex;6JAGDLFbQSS5FaAFoy%3v|v+W0&2V7|GR%V>cN1+ zX-}DstIFkHi3Wojv9dCd4-xI%@W2(4Kp%SEOgLNL~49%Uium0!soHb5-z4wchn1-Ch{~YA8#ioN{6i! zI%OZ5=}1bWc$OxQJsSA;8ay}EgKlA31dCq$iYe($_Y%n&1Zl{(XLDOx={5_22ITbZ zR2Z}Vk!-=X6Ue3@^#$EucF3(Li3Bd2pQ*fz`}>SmlPAvG+I&9V z>70G8(BDkXNagZ^?k6tpyq5P}MC(ILqKLUezKkMB8*0r#_tePoM0t7PUmzLPB_L2P z`_9;#9_f0zK4)N{w9<&C@qx_!3roE&UU5#ClbHlrKXyLC<`wVy*7W80->hF)P$S~E?vNN3L zl2Tu#|Li8Kt6Fn&*L=I&MWCQmR9QLcKOhMF@WE57;q2<~cP}$DlJP!_e@N&wNSawd zKk(L3KgtGSHy?auEU2%pCK1K~=m#oQ6qFaxSn9QY0@yt=sPNxWEtcl#FRz6GLTAn# zp~E=q$u6W?TG~rfO3k-JTwYg;|5q7j9uDQ&$MLbGK?kXHWM?W_4xu`h2xFOK8!@(! zkhMfLjwRa&$sQux2pMZas4RtstdS7O&RB=BukWw-y#Ku}*To;M@!ZdIKfinXd_Ry0 zROD6X;uM~l5#8Kse^YsBgc3g~dMZ-cp^ezxJFo}#L%A77kB1?-@PC_!A&$w_zTNPsq~%W)O5Hm<)G+j=JH6yoDJ z{irtWZOQ&ndcWe{(xx-6RC`Vv`T6NgPu^E}3DuuMk$U|Pf|q%O8&H_tU7%A}U=tRG zVVIw`waKvLaI13MyqOghH3nS*W_gfYfNv%yXM^&9I^A^N6>>E8zh~!*LuT?$ajGg0 z5dOJTW05 zcI7Njva%+ik~!)HoH?A5!m{_?k=LDQ_;NiV$q30fv^LkegJWKt>&sx}vV?#F#rH@6 zbErB*!gRFzTj%<6rI+%68tQVq4=E+s6?VUE#IP%Y>U=p_FBuL`# zA)^;$WLrYn$&oy-78jM(G&F1je0XFXp61P5@mcZMOp8y#d2YJTZ?Bn%Xn7bm)C6|g z-M9hKI;?diEaZ%hFFwx!+JI1++{IO7X(+JE%+wo6LNoj*Ue`197>fWEGnxn2B+ii9U;4nuq8Ps*P> zk@GeOkBqs7hNh8GdS5hqS;X__{awV={b2(uy@9HGV=I%lc1qohj4brn7A7!w*ef_V z&@cCUo0OJTL?R9BccSZ{GmDDa`0rL{qs9kh1s<#gTB!^U4W%X}krQJ$I%++iKIPEW zmEUo`y9MRt0N&;1&EVj*_x5(OvpW@jJ(OR8lj{r{w{Su6Uy87#%+39flF}9< z=a*|bC9I4lybPWxCZa=+T zJ)ti@B1wHqmj=1*?JF=($r65f=0yd_kk-pE|_^}S=-kApErAOizI;Ks%gCNR;}1)>n{LC}Yi&HB>ZAbj(s)dlEbSd+p% zNVbF%Wotv#mS)j|&GRqNS>;RHVj?2Ng%UZLf}}!;qCC-aQc^-vQlv~lVkUK|b7h6o z)#=l9i$Ma{^UfAhe}#Bs-$u(p1-?X8*U|@3ukU55t=7CP#z7#A#D8tXiyk^puyuUh z#3u5j$2JuEYQ%<4r`L(BXm9SU!89N0aqltd8A&_2XHFaGC zLtxA^tv4GDly+TpPI@%|=mC$iT~gWf{8s0k^$fq%pOtrAoSi3DHK#JfLexg*<^~4` z-}`Q@aGNwu)5^-q*!dJDVorFT;o#N^)b3!`3gL@GNRyS6h6d&*UElV;OfymZ(Iea6 zcWHH%@)|4OKd6|Ebvn+n7JT@pSb}EGsl}zf6lKa6JM2BZD;(uHI!>)gJqJm`UC*zb zQZ-1vCZ=lO#vW4eb$88|5hGkPoY@;?a((EW)LrBsleNp5rmpk3X74|UaUh{Iz?Z|T z>MeHqF;Nc8Z!-W*AmLr(!$ceD7_nYyJ>>QL(OTumj6YO z<}@;8SvDTCwz4Aary=!N%i^8q^zyPqUHsLsDa(DxYAjD{+6u`}d!{Kaf1l4AM zr4teo!jg`kr2}S$DVR=R9*_)>34t)Irly7m7PKoXpW4&657o1H*)mFS@$)Zssw~w! zEb5HnQ~ml?h?#lN2rK;N&ARWZp|7D~can9kWlhRftJJ~F{O4f`P5=7yw)B0?OBj28{G{YBMeIXF0XCL=pi#>F+n?Z37C$Nc1;K7+%yl-7H7|{LI(SF9&;0O}nJ;*SiOEz;=0Y z3ZW9N9-^m9)5D1+@bU4PnVEq=1wIYvEPz~*!cIY*)8l0#0NJ%BO2SR^s;wAa-r5EH zgGzN*NUH_v7XVnGW&zj)uOg_Uf=5e;7th|Qx%eYa8+Dwe2{t+!Mkl7GPL4Tbi4ZM~>LZBy)ym7ZkMG*6|*D$cdoh+uLu{){-Umi_8-! zb3RWSdK z4BpU6x5398vkMESF&@($X@Fr>9f>BhB9V@+uDtyG9q@muJ#s$UJU2}^=MvFxU~T=Y zx7S`j)4?=4Ep~L-OIcYN8a_Tgp6y2muoyVO<|!1)%nV3hLeD?X%{`h7p1zcnQ)zma zDz2D<9YdLts2*nrkPMhnFmbM~u9kon!8AJfBj8IY3^d?3p@_nqI`X);09Us?TL9`B zhqjN_JOwrw%?>|0$CX=Bv2L}fO(72omnc&*Zu?Rqs_V)JRN#Ketg)lP8%2pCw zt#&dM<^Y9PfPJsVN~P4u=nq9FrxF4Rf$#*7CZkSZvut;Fc#Y(nJRVGwL4%W&@hrLw%ao>Ms&%KP2NLg0--@BhoV|Q{#HO6_jA};s?#_BBJHN=64#AU$7q2#^8;A~Dsw6XaJ2M>6~erz0mfXDYx?vM8*sD2L( zOskAN50o2L^f*)l&`wSP@ynqG8neW!InZ+8A2-S3YGF;beqi%J5}~63p++Du!WJAi zw|wa*4IWHS0z2$+w@$wGskCik+5Oni5PUVK+fi;DwU`!JgtxUo62Z))ue_BF*mMS! zot0G``QYJ0pvO`cmZAkzG?AsI{yc;4%gQ{*KSw&Gd1&{KrXvt-P8BbuKGe6j9JQ`X z-y2cAb93|~&T2rZ<_H2nY&iRyO;f}Z)NXp zo*!c0-E8wVV_L4kwiMhz%iR?W)*;e6CPn5I4(%y0sRQw;ufa){5G)CR;Kd&mE@Kv+ zAov6N_C@>Wq%5I0&CTW~Al>u#KS!-iB;q;a+Q56R}M_d%(zdS2w}aC z$Ah>OlheJw|ER(oe3C;01MsJMjInadO((5~pnAb4ftk{yT1i=XSaWIqrrTUaKi7Uq zW#vZPX&vClfq!>z0mWW8dS&XxT{y|U>s;{;bfM74f$8jjkH72T;bCF%!lYntYdQm} zmX@YwR~fS+7yaDg-NwX94JNLbEGOV>|&SU=jDgf2+viaX8v;M?t3?Q8>4f|^kJ{d@Pq z!@>+ikADuPi)d2tm}q{L@#xE>2LnAl2zjpR=q&rg^CXc-AQpo%Ar3{XxcKw!o!i}t zE*2$CZ~I->0T^fF{kz^q8jPVE3xl@{rwdAIe}GjML{J6>T`*_@+!x6KX8>a`fHm4K ze@PIBw>Tv=b$7_K)3tFGvm}B*nBJORxWU?5`18-d74r)Un1kH4jm!LRjeL+{7jZg> z3;nMj_)Ht6MwC`j@h|RkBzi1rE8v&r8E?}g5FHK!Z|r{$!*dnxOdUrd{JUtD zdLZF_yQt_N)(*zspkBnk=Hq(de|^NSwf{9UNnqV?2_j^(dME&%PkBr7!lJy*(D+=! z7a~zetM}q`?&Z~VjgHF6{?5`^Ur^V5;* - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h Source File - - - - - - - - - -

-
-
-
ZoneInfoHigh.h
-
-
-Go to the documentation of this file.
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2023 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONE_INFO_HIGH_H
-
7 #define ACE_TIME_ZONE_INFO_HIGH_H
-
8 
-
27 #include <stdint.h>
-
28 #include <Arduino.h> // pgm_read_xxx()
-
29 #include <AceCommon.h> // KString
-
30 #include "compat.h" // ACE_TIME_USE_PROGMEM
-
31 #include "BrokerCommon.h"
-
32 
-
33 class __FlashStringHelper;
-
34 class Print;
-
35 
-
36 namespace ace_time {
-
37 
-
42 class ZoneInfoHigh {
-
43 public:
-
44 
-
49 struct ZoneContext {
-
56  static const int16_t kMaxUntilYear = 32767;
-
57 
-
64  static const int16_t kMaxYear = kMaxUntilYear - 1;
-
65 
-
74  static const int16_t kMinYear = -32767;
-
75 
-
77  static const uint8_t kSuffixW = 0x00;
-
78 
-
80  static const uint8_t kSuffixS = 0x10;
-
81 
-
83  static const uint8_t kSuffixU = 0x20;
-
84 
-
86  int16_t const startYear;
-
87 
-
89  int16_t const untilYear;
-
90 
-
92  int16_t const startYearAccurate;
-
93 
-
95  int16_t const untilYearAccurate;
-
96 
-
98  int16_t const baseYear;
-
99 
-
101  int16_t const maxTransitions;
-
102 
-
104  const char* const tzVersion;
-
105 
-
107  uint8_t const numFragments;
-
108 
-
110  uint8_t const numLetters;;
-
111 
-
113  const char* const* const fragments;
-
114 
-
116  const char* const* const letters;
-
117 };
-
118 
-
124 struct ZoneRule {
-
126  int16_t const fromYear;
-
127 
-
129  int16_t const toYear;
-
130 
-
132  uint8_t const inMonth;
-
133 
-
144  uint8_t const onDayOfWeek;
-
145 
-
150  int8_t const onDayOfMonth;
-
151 
-
161  uint8_t const atTimeModifier;
-
162 
-
167  uint16_t const atTimeCode;
-
168 
-
174  int8_t const deltaMinutes;
-
175 
-
188  uint8_t const letterIndex;
-
189 };
-
190 
-
197 struct ZonePolicy {
-
198  const ZoneRule* const rules;
-
199  uint8_t const numRules;
-
200 };
-
201 
-
215 struct ZoneEra {
-
220  const ZonePolicy* const zonePolicy;
-
221 
-
246  const char* const format;
-
247 
-
252  int16_t const offsetCode;
-
253 
-
255  uint8_t const offsetRemainder;
-
256 
-
263  int8_t const deltaMinutes;
-
264 
-
268  int16_t const untilYear;
-
269 
-
271  uint8_t const untilMonth;
-
272 
-
278  uint8_t const untilDay;
-
279 
-
284  uint16_t const untilTimeCode;
-
285 
-
296  uint8_t const untilTimeModifier;
-
297 };
-
298 
-
303 struct ZoneInfo {
-
305  const char* const name;
-
306 
-
312  uint32_t const zoneId;
-
313 
-
315  const ZoneContext* const zoneContext;
-
316 
-
332  uint8_t const numEras;
-
333 
-
338  const ZoneEra* const eras;
-
339 
-
341  const ZoneInfo* const targetInfo;
-
342 };
-
343 
-
344 //-----------------------------------------------------------------------------
-
345 // Brokers are wrappers around the above data objects so that outside code
-
346 // can use the data objects with a consistent API.
-
347 //-----------------------------------------------------------------------------
-
348 
-
353 static int32_t toDeltaSeconds(uint8_t deltaMinutes) {
-
354  return int32_t(60) * (int8_t) deltaMinutes;
-
355 }
-
356 
-
360 static int32_t toOffsetSeconds(uint16_t offsetCode, uint8_t offsetRemainder) {
-
361  return int32_t(15) * (int16_t) offsetCode + (int32_t) offsetRemainder;
-
362 }
-
363 
-
370 static uint32_t timeCodeToSeconds(uint16_t code, uint8_t modifier) {
-
371  return code * (uint32_t) 15 + (modifier & 0x0f);
-
372 }
-
373 
-
379 static uint8_t toSuffix(uint8_t modifier) {
-
380  return modifier & 0xf0;
-
381 }
-
382 
-
383 //-----------------------------------------------------------------------------
-
384 
- -
389  public:
-
390  explicit ZoneContextBroker(const ZoneContext* zoneContext = nullptr)
-
391  : mZoneContext(zoneContext)
-
392  {}
-
393 
-
394  // use the default copy constructor
-
395  ZoneContextBroker(const ZoneContextBroker&) = default;
-
396 
-
397  // use the default assignment operator
-
398  ZoneContextBroker& operator=(const ZoneContextBroker&) = default;
-
399 
-
400  bool isNull() const { return mZoneContext == nullptr; }
-
401 
-
402  const ZoneContext* raw() const { return mZoneContext; }
-
403 
-
404  int16_t startYear() const {
-
405  return (int16_t) pgm_read_word(&mZoneContext->startYear);
-
406  }
-
407 
-
408  int16_t untilYear() const {
-
409  return (int16_t) pgm_read_word(&mZoneContext->untilYear);
-
410  }
-
411 
-
412  int16_t startYearAccurate() const {
-
413  return (int16_t) pgm_read_word(&mZoneContext->startYearAccurate);
-
414  }
-
415 
-
416  int16_t untilYearAccurate() const {
-
417  return (int16_t) pgm_read_word(&mZoneContext->untilYearAccurate);
-
418  }
-
419 
-
420  int16_t baseYear() const {
-
421  return (int16_t) pgm_read_word(&mZoneContext->baseYear);
-
422  }
-
423 
-
424  int16_t maxTransitions() const {
-
425  return (int16_t) pgm_read_word(&mZoneContext->maxTransitions);
-
426  }
-
427 
-
428  const __FlashStringHelper* tzVersion() const {
-
429  return (const __FlashStringHelper*)
-
430  pgm_read_ptr(&mZoneContext->tzVersion);
-
431  }
-
432 
-
433  uint8_t numFragments() const {
-
434  return (uint8_t) pgm_read_byte(&mZoneContext->numFragments);
-
435  }
-
436 
-
437  uint8_t numLetters() const {
-
438  return (uint8_t) pgm_read_byte(&mZoneContext->numLetters);
-
439  }
-
440 
-
441  const __FlashStringHelper* const* fragments() const {
-
442  return (const __FlashStringHelper* const*)
-
443  pgm_read_ptr(&mZoneContext->fragments);
-
444  }
-
445 
-
446  const __FlashStringHelper* letter(uint8_t i) const {
-
447  const char * const* letters = (const char* const*)
-
448  pgm_read_ptr(&mZoneContext->letters);
-
449  const char* letter = (const char*) pgm_read_ptr(letters + i);
-
450  return (const __FlashStringHelper*) letter;
-
451  }
-
452 
-
453  private:
-
454  const ZoneContext* mZoneContext;
-
455 };
-
456 
-
457 //-----------------------------------------------------------------------------
-
458 
- -
463  public:
-
464  explicit ZoneRuleBroker(
-
465  const ZoneContext* zoneContext = nullptr,
-
466  const ZoneRule* zoneRule = nullptr)
-
467  : mZoneContext(zoneContext)
-
468  , mZoneRule(zoneRule)
-
469  {}
-
470 
-
471  // use the default copy constructor
-
472  ZoneRuleBroker(const ZoneRuleBroker&) = default;
-
473 
-
474  // use the default assignment operator
-
475  ZoneRuleBroker& operator=(const ZoneRuleBroker&) = default;
-
476 
-
477  bool isNull() const { return mZoneRule == nullptr; }
-
478 
-
479  int16_t fromYear() const {
-
480  return pgm_read_word(&mZoneRule->fromYear);
-
481  }
-
482 
-
483  int16_t toYear() const {
-
484  return pgm_read_word(&mZoneRule->toYear);
-
485  }
-
486 
-
487  uint8_t inMonth() const {
-
488  return pgm_read_byte(&mZoneRule->inMonth);
-
489  }
-
490 
-
491  uint8_t onDayOfWeek() const {
-
492  return pgm_read_byte(&mZoneRule->onDayOfWeek);
-
493  }
-
494 
-
495  int8_t onDayOfMonth() const {
-
496  return pgm_read_byte(&mZoneRule->onDayOfMonth);
-
497  }
-
498 
-
499  uint32_t atTimeSeconds() const {
-
500  return timeCodeToSeconds(
-
501  pgm_read_word(&mZoneRule->atTimeCode),
-
502  pgm_read_byte(&mZoneRule->atTimeModifier));
-
503  }
-
504 
-
505  uint8_t atTimeSuffix() const {
-
506  return toSuffix(pgm_read_byte(&mZoneRule->atTimeModifier));
-
507  }
-
508 
-
509  int32_t deltaSeconds() const {
-
510  return toDeltaSeconds(pgm_read_byte(&mZoneRule->deltaMinutes));
-
511  }
-
512 
-
513  const __FlashStringHelper* letter() const {
-
514  uint8_t index = pgm_read_byte(&mZoneRule->letterIndex);
-
515  return ZoneContextBroker(mZoneContext).letter(index);
-
516  }
-
517 
-
518  private:
-
519  const ZoneContext* mZoneContext;
-
520  const ZoneRule* mZoneRule;
-
521 };
-
522 
- -
527  public:
-
528  explicit ZonePolicyBroker(
-
529  const ZoneContext* zoneContext,
-
530  const ZonePolicy* zonePolicy)
-
531  : mZoneContext(zoneContext)
-
532  , mZonePolicy(zonePolicy)
-
533  {}
-
534 
-
535  // use default copy constructor
-
536  ZonePolicyBroker(const ZonePolicyBroker&) = default;
-
537 
-
538  // use default assignment operator
-
539  ZonePolicyBroker& operator=(const ZonePolicyBroker&) = default;
-
540 
-
541  bool isNull() const { return mZonePolicy == nullptr; }
-
542 
-
543  uint8_t numRules() const {
-
544  return pgm_read_byte(&mZonePolicy->numRules);
-
545  }
-
546 
-
547  const ZoneRuleBroker rule(uint8_t i) const {
-
548  const ZoneRule* rules =
-
549  (const ZoneRule*) pgm_read_ptr(&mZonePolicy->rules);
-
550  return ZoneRuleBroker(mZoneContext, &rules[i]);
-
551  }
-
552 
-
553  private:
-
554  const ZoneContext* mZoneContext;
-
555  const ZonePolicy* mZonePolicy;
-
556 };
-
557 
-
558 //-----------------------------------------------------------------------------
-
559 
- -
564  public:
-
565  explicit ZoneEraBroker(
-
566  const ZoneContext* zoneContext = nullptr,
-
567  const ZoneEra* zoneEra = nullptr)
-
568  : mZoneContext(zoneContext)
-
569  , mZoneEra(zoneEra)
-
570  {}
-
571 
-
572  // use default copy constructor
-
573  ZoneEraBroker(const ZoneEraBroker&) = default;
-
574 
-
575  // use default assignment operator
-
576  ZoneEraBroker& operator=(const ZoneEraBroker&) = default;
-
577 
-
578  bool isNull() const { return mZoneEra == nullptr; }
-
579 
-
580  bool equals(const ZoneEraBroker& other) const {
-
581  return mZoneEra == other.mZoneEra;
-
582  }
-
583 
-
584  const ZonePolicyBroker zonePolicy() const {
-
585  return ZonePolicyBroker(
-
586  mZoneContext,
-
587  (const ZonePolicy*) pgm_read_ptr(&mZoneEra->zonePolicy));
-
588  }
-
589 
-
590  int32_t offsetSeconds() const {
-
591  return toOffsetSeconds(
-
592  pgm_read_word(&mZoneEra->offsetCode),
-
593  pgm_read_byte(&mZoneEra->offsetRemainder));
-
594  }
-
595 
-
596  int32_t deltaSeconds() const {
-
597  return toDeltaSeconds(pgm_read_byte(&mZoneEra->deltaMinutes));
-
598  }
-
599 
-
600  const char* format() const {
-
601  return (const char*) pgm_read_ptr(&mZoneEra->format);
-
602  }
-
603 
-
604  int16_t untilYear() const {
-
605  return pgm_read_word(&mZoneEra->untilYear);
-
606  }
-
607 
-
608  uint8_t untilMonth() const {
-
609  return pgm_read_byte(&mZoneEra->untilMonth);
-
610  }
-
611 
-
612  uint8_t untilDay() const {
-
613  return pgm_read_byte(&mZoneEra->untilDay);
-
614  }
-
615 
-
616  uint32_t untilTimeSeconds() const {
-
617  return timeCodeToSeconds(
-
618  pgm_read_word(&mZoneEra->untilTimeCode),
-
619  pgm_read_byte(&mZoneEra->untilTimeModifier));
-
620  }
-
621 
-
622  uint8_t untilTimeSuffix() const {
-
623  return toSuffix(pgm_read_byte(&mZoneEra->untilTimeModifier));
-
624  }
-
625 
-
626  private:
-
627  const ZoneContext* mZoneContext;
-
628  const ZoneEra* mZoneEra;
-
629 };
-
630 
- -
635  public:
-
636  explicit ZoneInfoBroker(const ZoneInfo* zoneInfo = nullptr):
-
637  mZoneInfo(zoneInfo) {}
-
638 
-
639  // use default copy constructor
-
640  ZoneInfoBroker(const ZoneInfoBroker&) = default;
-
641 
-
642  // use default assignment operator
-
643  ZoneInfoBroker& operator=(const ZoneInfoBroker&) = default;
-
644 
-
649  bool equals(uintptr_t zoneKey) const {
-
650  return mZoneInfo == (const ZoneInfo*) zoneKey;
-
651  }
-
652 
-
653  bool equals(const ZoneInfoBroker& zoneInfoBroker) const {
-
654  return mZoneInfo == zoneInfoBroker.mZoneInfo;
-
655  }
-
656 
-
657  bool isNull() const { return mZoneInfo == nullptr; }
-
658 
-
659  const ZoneContextBroker zoneContext() const {
-
660  const ZoneContext* context =
-
661  (const ZoneContext*) pgm_read_ptr(&mZoneInfo->zoneContext);
-
662  return ZoneContextBroker(context);
-
663  }
-
664 
-
665  const __FlashStringHelper* name() const {
-
666  return FPSTR(pgm_read_ptr(&mZoneInfo->name));
-
667  }
-
668 
-
669  uint32_t zoneId() const {
-
670  return pgm_read_dword(&mZoneInfo->zoneId);
-
671  }
-
672 
-
673  uint8_t numEras() const {
-
674  return pgm_read_byte(&mZoneInfo->numEras);
-
675  }
-
676 
-
677  const ZoneEraBroker era(uint8_t i) const {
-
678  auto eras = (const ZoneEra*) pgm_read_ptr(&mZoneInfo->eras);
-
679  return ZoneEraBroker(zoneContext().raw(), &eras[i]);
-
680  }
-
681 
-
682  bool isLink() const {
-
683  return mZoneInfo->targetInfo != nullptr;
-
684  }
-
685 
-
686  ZoneInfoBroker targetInfo() const {
-
687  return ZoneInfoBroker(
-
688  (const ZoneInfo*) pgm_read_ptr(&mZoneInfo->targetInfo));
-
689  }
-
690 
-
692  void printNameTo(Print& printer) const {
-
693  ZoneContextBroker zc = zoneContext();
-
694  ace_common::KString kname(name(), zc.fragments(), zc.numFragments());
-
695  kname.printTo(printer);
-
696  }
-
697 
-
702  void printShortNameTo(Print& printer) const {
-
703  ace_common::printReplaceCharTo(
-
704  printer, zoneinfo::findShortName(name()), '_', ' ');
-
705  }
-
706 
-
707  private:
-
708  const ZoneInfo* mZoneInfo;
-
709 };
-
710 
-
711 //-----------------------------------------------------------------------------
-
712 
- -
718  public:
-
719  ZoneRegistryBroker(const ZoneInfo* const* zoneRegistry):
-
720  mZoneRegistry(zoneRegistry) {}
-
721 
-
722  // use default copy constructor
-
723  ZoneRegistryBroker(const ZoneRegistryBroker&) = default;
-
724 
-
725  // use default assignment operator
-
726  ZoneRegistryBroker& operator=(const ZoneRegistryBroker&) = default;
-
727 
-
728  const ZoneInfo* zoneInfo(uint16_t i) const {
-
729  return (const ZoneInfo*) pgm_read_ptr(&mZoneRegistry[i]);
-
730  }
-
731 
-
732  private:
-
733  const ZoneInfo* const* mZoneRegistry;
-
734 };
-
735 
-
736 //-----------------------------------------------------------------------------
-
737 // A factory class for a ZoneInfoBroker.
-
738 //-----------------------------------------------------------------------------
-
739 
- -
746  public:
-
751  ZoneInfoBroker createZoneInfoBroker(uintptr_t zoneKey) const {
-
752  return ZoneInfoBroker((const ZoneInfo*) zoneKey);
-
753  }
-
754 };
-
755 
-
756 }; // ZoneInfoHigh
-
757 
-
758 } // ace_time
-
759 
-
760 #endif
-
Helper functions are used in both Basic brokers and Extended brokers.
-
Data broker for accessing a ZoneContext.
Definition: ZoneInfoHigh.h:388
-
Data broker for accessing ZoneEra.
Definition: ZoneInfoHigh.h:563
-
Data broker for accessing ZoneInfo.
Definition: ZoneInfoHigh.h:634
-
void printShortNameTo(Print &printer) const
Print a short human-readable identifier (e.g.
Definition: ZoneInfoHigh.h:702
-
void printNameTo(Print &printer) const
Print a human-readable identifier (e.g.
Definition: ZoneInfoHigh.h:692
-
bool equals(uintptr_t zoneKey) const
Definition: ZoneInfoHigh.h:649
-
A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo.
Definition: ZoneInfoHigh.h:745
-
ZoneInfoBroker createZoneInfoBroker(uintptr_t zoneKey) const
Definition: ZoneInfoHigh.h:751
-
Data broker for accessing ZonePolicy.
Definition: ZoneInfoHigh.h:526
-
Data broker for accessing the ZoneRegistry.
Definition: ZoneInfoHigh.h:717
-
Data broker for accessing ZoneRule.
Definition: ZoneInfoHigh.h:462
-
Wrapper class so that the entire collection can be referenced as a singel template parameter.
Definition: ZoneInfoHigh.h:42
-
static int32_t toOffsetSeconds(uint16_t offsetCode, uint8_t offsetRemainder)
Convert (code, remainder) holding the STDOFF field of ZoneEra into seconds.
Definition: ZoneInfoHigh.h:360
-
static int32_t toDeltaSeconds(uint8_t deltaMinutes)
Convert the deltaMinutes holding the RULES/DSTOFF field in ZoneEra or the SAVE field in ZoneRule to d...
Definition: ZoneInfoHigh.h:353
-
static uint32_t timeCodeToSeconds(uint16_t code, uint8_t modifier)
Convert (code, modifier) holding the UNTIL time in ZoneInfo or AT time in ZoneRule into seconds.
Definition: ZoneInfoHigh.h:370
-
static uint8_t toSuffix(uint8_t modifier)
Extract the 'w', 's' 'u' suffix from the 'modifier' field, so that they can be compared against kSuff...
Definition: ZoneInfoHigh.h:379
-
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
-
Metadata about the zone database.
Definition: ZoneInfoHigh.h:49
-
int16_t const startYearAccurate
Start year of accurate transitions.
Definition: ZoneInfoHigh.h:92
-
static const int16_t kMinYear
The minimum value of fromYear and toYear.
Definition: ZoneInfoHigh.h:74
-
static const uint8_t kSuffixW
Represents 'w' or wall time.
Definition: ZoneInfoHigh.h:77
-
int16_t const untilYear
Until year of the zone files as requested.
Definition: ZoneInfoHigh.h:89
-
static const int16_t kMaxUntilYear
The maximum value of untilYear.
Definition: ZoneInfoHigh.h:56
-
int16_t const untilYearAccurate
Until year of accurate transitions.
Definition: ZoneInfoHigh.h:95
-
int16_t const startYear
Start year of the zone files as requested.
Definition: ZoneInfoHigh.h:86
-
uint8_t const numLetters
Number of fragments.
Definition: ZoneInfoHigh.h:110
-
int16_t const baseYear
Base year for tiny years.
Definition: ZoneInfoHigh.h:98
-
int16_t const maxTransitions
Max number of transitions required in TransitionStorage.
Definition: ZoneInfoHigh.h:101
-
const char *const *const fragments
Zone Name fragment list.
Definition: ZoneInfoHigh.h:110
-
uint8_t const numFragments
Number of fragments.
Definition: ZoneInfoHigh.h:107
-
static const uint8_t kSuffixU
Represents 'u' or UTC time.
Definition: ZoneInfoHigh.h:83
-
static const int16_t kMaxYear
The maximum value fromYear and toYear.
Definition: ZoneInfoHigh.h:64
-
const char *const *const letters
Zone Rule letters list.
Definition: ZoneInfoHigh.h:116
-
static const uint8_t kSuffixS
Represents 's' or standard time.
Definition: ZoneInfoHigh.h:80
-
const char *const tzVersion
TZ Database version which generated the zone info.
Definition: ZoneInfoHigh.h:104
-
An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time per...
Definition: ZoneInfoHigh.h:215
-
int16_t const untilYear
Era is valid until currentTime < untilYear.
Definition: ZoneInfoHigh.h:268
-
const char *const format
Zone abbreviations (e.g.
Definition: ZoneInfoHigh.h:246
-
uint8_t const untilMonth
The month field in UNTIL (1-12).
Definition: ZoneInfoHigh.h:271
-
uint8_t const offsetRemainder
The remainder seconds from offsetCode.
Definition: ZoneInfoHigh.h:255
-
uint8_t const untilTimeModifier
The untilTimeModifier is a packed field containing 2 pieces of info:
Definition: ZoneInfoHigh.h:296
-
uint8_t const untilDay
The day field in UNTIL (1-31).
Definition: ZoneInfoHigh.h:278
-
const ZonePolicy *const zonePolicy
Zone policy, determined by the RULES column.
Definition: ZoneInfoHigh.h:220
-
uint16_t const untilTimeCode
The time field of UNTIL field in 15-second increments.
Definition: ZoneInfoHigh.h:284
-
int8_t const deltaMinutes
If zonePolicy is nullptr, this is the DST offset in minutes as defined by the RULES column in 'hh:mm'...
Definition: ZoneInfoHigh.h:263
-
int16_t const offsetCode
UTC offset in 15-second increments.
Definition: ZoneInfoHigh.h:252
-
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoHigh.h:303
-
const char *const name
Full name of zone (e.g.
Definition: ZoneInfoHigh.h:305
-
const ZoneInfo *const targetInfo
If Link, points to the target zone info.
Definition: ZoneInfoHigh.h:341
-
const ZoneContext *const zoneContext
ZoneContext metadata.
Definition: ZoneInfoHigh.h:315
-
const ZoneEra *const eras
A const ZoneEras* pointer to numEras ZoneEra entries in increasing order of UNTIL time.
Definition: ZoneInfoHigh.h:338
-
uint8_t const numEras
Number of ZoneEra entries.
Definition: ZoneInfoHigh.h:332
-
uint32_t const zoneId
Unique, stable ID of the zone name, created from a hash of the name.
Definition: ZoneInfoHigh.h:312
-
A collection of transition rules which describe the DST rules of a given administrative region.
Definition: ZoneInfoHigh.h:197
-
A time zone transition rule.
Definition: ZoneInfoHigh.h:124
-
uint8_t const letterIndex
Determined by the LETTER column.
Definition: ZoneInfoHigh.h:188
-
uint8_t const atTimeModifier
The atTimeModifier is a packed field containing 2 pieces of info:
Definition: ZoneInfoHigh.h:161
-
uint8_t const onDayOfWeek
Determined by the ON column.
Definition: ZoneInfoHigh.h:144
-
int16_t const fromYear
FROM year.
Definition: ZoneInfoHigh.h:126
-
int8_t const deltaMinutes
Determined by the SAVE column and contains the offset from UTC in minutes.
Definition: ZoneInfoHigh.h:174
-
int8_t const onDayOfMonth
Determined by the ON column.
Definition: ZoneInfoHigh.h:150
-
uint16_t const atTimeCode
Determined by the AT column in units of 15-seconds from 00:00.
Definition: ZoneInfoHigh.h:167
-
int16_t const toYear
TO year.
Definition: ZoneInfoHigh.h:129
-
uint8_t const inMonth
Determined by the IN column.
Definition: ZoneInfoHigh.h:132
-
- - - - diff --git a/docs/html/ZoneInfoLow_8h.html b/docs/html/ZoneInfoLow_8h.html deleted file mode 100644 index 46f06f05d..000000000 --- a/docs/html/ZoneInfoLow_8h.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h File Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ZoneInfoLow.h File Reference
-
-
- -

Data structures describe the low resolution zoneinfo persistence format. -More...

-
#include <stdint.h>
-#include <Arduino.h>
-#include <AceCommon.h>
-#include "compat.h"
-#include "BrokerCommon.h"
-
-Include dependency graph for ZoneInfoLow.h:
-
-
- - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

class  ace_time::ZoneInfoLow
 
struct  ace_time::ZoneInfoLow::ZoneContext
 Metadata about the zone database. More...
 
struct  ace_time::ZoneInfoLow::ZoneRule
 A time zone transition rule. More...
 
struct  ace_time::ZoneInfoLow::ZonePolicy
 A collection of transition rules which describe the DST rules of a given administrative region. More...
 
struct  ace_time::ZoneInfoLow::ZoneEra
 An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. More...
 
struct  ace_time::ZoneInfoLow::ZoneInfo
 Representation of a given time zone, implemented as an array of ZoneEra records. More...
 
class  ace_time::ZoneInfoLow::ZoneContextBroker
 Data broker for accessing a ZoneContext. More...
 
class  ace_time::ZoneInfoLow::ZoneRuleBroker
 Data broker for accessing ZoneRule. More...
 
class  ace_time::ZoneInfoLow::ZonePolicyBroker
 Data broker for accessing ZonePolicy. More...
 
class  ace_time::ZoneInfoLow::ZoneEraBroker
 Data broker for accessing ZoneEra. More...
 
class  ace_time::ZoneInfoLow::ZoneInfoBroker
 Data broker for accessing ZoneInfo. More...
 
class  ace_time::ZoneInfoLow::ZoneRegistryBroker
 Data broker for accessing the ZoneRegistry. More...
 
class  ace_time::ZoneInfoLow::ZoneInfoStore
 A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo. More...
 
-

Detailed Description

-

Data structures describe the low resolution zoneinfo persistence format.

-

It has a 1-minute resolution for AT, UNTIL, STDOFF; 15-minute resolution for DST offsets. The year fields use a 1-byte offset from a baseYear which gives a [-127,+126] range.

-

The BrokersLow.h file provides an abtraction layer which converts these low-level fields into a semantically consistent API which can be used by the AceTime classes.

-

The various zoneinfo database files (e.g. zonedb, zonedbx, zonedbc) will use one of these persistence formats, as defined by infos.h.

-

See also DEVELOPER.md for an overview of the ZoneInfoXXX layer.

- -

Definition in file ZoneInfoLow.h.

-
- - - - diff --git a/docs/html/ZoneInfoLow_8h__dep__incl.map b/docs/html/ZoneInfoLow_8h__dep__incl.map deleted file mode 100644 index 3aa1cf6cd..000000000 --- a/docs/html/ZoneInfoLow_8h__dep__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/html/ZoneInfoLow_8h__dep__incl.md5 b/docs/html/ZoneInfoLow_8h__dep__incl.md5 deleted file mode 100644 index 432d43414..000000000 --- a/docs/html/ZoneInfoLow_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -4ae63f16c9e439c7c9bd034ab0ae7781 \ No newline at end of file diff --git a/docs/html/ZoneInfoLow_8h__dep__incl.png b/docs/html/ZoneInfoLow_8h__dep__incl.png deleted file mode 100644 index c7d8ef20b56f468d62ce996e2a5d3b16956bc73e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439626 zcmeFZXH*pJ)-8&nfJzWWC8L0dNDxGFPzj2X70FqWNX{8W$w5RwvVeks&nzH9GtT_QsUR|ImZ6zGkt!4EQ)=o zJjUiy#ChuzxAAFi9pWSqHz}YlY!;Iel6=88{o^)c=#9Es=1(ezZ>17VEKXMMI7SZJ+~IG+h{7?UsaoN8?+Ne zk4#M5z0XW`^Z<UJ(%azQhWF!f zV)xHua_Clm^jsNj2)blPX#C6`j9sv#fu9Gu6f@$DeW#lIP~jy*m!MASpRDzw+*{wO;*_{rPu5?~y+3LAs`1#YyRQna@ zmC0C#0jC7)Hi_u=<%t9jcP}&wg<4)|mphZ`kWlonBV9U9;3_JD4b@2J5gRY;GM=81 z)!cL;p+Xt!(CXN4*EN=hVn-c5qahzy^6T=j@!>%0UrWPxEmNbED~8AH_P>_q?R9*; z20g>x%^x=spEuIFu%6L!)J@OGsD7T<&8A-Td3$qtCaW=+CZ?7|RH(S$9y1~0q8&te zl?4XhT)jI}J)TobjJlLv@xq7J**M!r@2?w&E4xPjwZ4{~>1koO2_c9p@r8qcq|5D z2P$1AQew<+!<|rl-dMv}7}fcbI*kVL!et@@$vNpS#MvrpdLO{Wd(e|-;51vCfB_oBfv+ZdPt=PQ0Jlh}LoX9+7Rc%d|E&IT@9^>L0!hz+pwXIQx z==eAo(0lD_5n<<*PeifNmZ^M2>z zRd&@pMl(!NOAGH{tcBZ*x)WUgYo>Z}8LN8HBa?-S$|(zdZz8Ju*$&z(yjs=nZUase zae;KABD0ucxfd{Z)mqv3B($*@i)!JWt<^g(zIAqvQw?rN!aan+;#Fuh2+mhr$*x>e zbKj_?8}||2)|C}ntdox78nap7Z@)NvjxQqxei=}X%hjt_)84;-U+zBQcVVe=-i;&Q z2;I6lk&tlYB-0ytW=5%oAgV~27#@S(0+T2KyN3@=O|R&FeCj;GrcrXa)`tZBqbI)| zj_Grr$y6=1Hb{|6h)=tlnv#;jgciX*>fiD^dBJdXx+6-+$(q*bdnmQbk6el?hSL3l z4w1QKWdehntqzJxO5yov5y521pk|nc>G-{^uIg5YYHa`KI6>YCSb6rVa(m|XX1d)4AH12kD@L+-Ft6h+F%w_!aJ2N5+RVfac00MW54x>N zxQ{Y~2ytna+qYEjV5-N$m9?6D=-fA=Y|b~WSMTktOtvu~BL*+JV$l3DY4!JczD(gy z^mCr^Uk6d~8g4F)O$}Ci^jBWWDxufjU5ac^SIW?^ZaUwSqbt^#sUGPt=*G)YwV`KT zHkDFf+Qm*IVEZo%8{AzhRxLKy?B7LkR11OK-2xZ41{*P$>C7zM-I{3!AF`e8z3PTt zL%in&V_{*TYKf(;dHHOS?OY%KsZ*yY1Z<7(XKTe34>)Jk1fJ1$wc1*l3iJ2(*KisO zHyNyQi+7nTEt`ncv{!Xroep1GYVat#r==AS);+O=;y^E>MYZQu#oW62@8%n}e64U= zzIX558}Q4io_r&3Vj8vi_i_`e`GztNA3o%I`0X9FL!TA@_CoD)VYXYQIl)@%YL!H3=bbm*xO97S!ugDfiJpo9dXU!S|6j~ zkIxeL2V4C+@PAGy@;db4TgA6ubMC3h22NJ#vMwtjA<Rn#?6^8!}hbivw78U3nm@uN@_5_^8*)f;|AT<`x!lGu2trPJ#j!Z z-ZsBtKi5|}(Ayd(m|9d+G*>3(LmbpusZ;YrXyuC-V)P;#LtczcQWxUxS;&aF-I`v{ zOiH5HZwPFHb49KXdWc?#wY*WayP7@m^rURJSv+#)v9U4!@mKoxF=i9a6D={3S4}&= z_t~H`i_LepH%o_}9HSJru-L+?y0#5&OeTl42JsHOVuUbs$9*|w@WGGn+|r47m#?XE z3Fw!L?SGq^2Y=;DYENWIEQdZ+s$mkvd>#!}37dAlPor9@fQ4q1!miDVwqphDre8wv z6WW?g<{$B8SQ8k%AQmj@<_130r3njjb)$84rfVXre6D$8akRbIVz9uZoe3Wo*^P5@!mIZr1Ia_dGP;P`cWvWk;{*&KIzv!%nD+MPwY5)_{{$Aa zgwo#SYNT<{=#Pd-J^mP<_7fzyFO!J>>0!DE!E8%czTR2>#1Mi+?y2@vIkm!vO1uvQ zrFb57f0?9!IZU|pTT-&LyfnCc;-{JDc=T4exkRw4zG!Z4u2dT=wV8-@U1~yN5#n#i zl&6aBn8*sw7J$FaT`_>LAto!jvmzbMeKF&HW;58%(sV|);pbPJo3IF!pH(z9lmpG>hX^x788!0j|5gi%I z6Qd!bt-&;cOT#{NhA<^Wof@jDQFJ?#H=O`Q7p_*guuqgu+dlaNa@JD;QYD48ot2g}h#C|GM9&wzQn5 z-WFI4io^-n_09RxYRh=mb^UVMPm5ZHB zuQI!th>WZ<7B;nlPjq`5js1odlSu(wX1xV~1*oPVF*C`=z5*w;&K~H3bfMwUZ&x~# zRh|d8fy7m#cqcQo~v*f?czB2%80fcYC8z zv=vEz$u~ogOzS!Mn2ptC`>gU=8egyS z*Qdw^e$0M^|BV;ok>btnWL!>t&MP#&s|WXgnfg)l9h&_+{@V6TLGJ^Y1cX#Ptjpsq zrVE?T&xtL450jf~6eo+ZK)BbhKklpEzo6oW>&9|oc`>~%>pqHI_ovr?n<6sxWyQZ@ zI;DNf)voV=-v-BaUtYX>`*{lA{LY&OtxD(fQs9B1;QvNo9Q^YY%OdNWkco9$MfbMx z5+WlbC#F&p1~`Oi_^lrV3$Jw((uuf68YQgm2(FX-8Wn5|T{GAh7hm7c(ue|R^VSF* z|29~WTd+%onQW9?mDAB*sN|* z8E)QR){!}gXt1m}Bt>ikaTLz0t@7vc{QTDpapMj*u%CJ56=aIah+h(W?f zM@I*Oj^f?7rX)>c{{a$aCS2CNasRzas8kr!7zFOt$f}jM+ruOt-TD#ehk#BfL|h#a zW`OXvPIZfx=I~2b+_qK_N(X;VYduEm>2wM8@l{h7b}%to^V@7xGw1gk<~2_8e@2UY zTJxnFBLR^45&&;~Z@!c*4GDW0fI^3G^^ZK%*9_(Cmyun2J@QUYPGt`B@d!dhi|)Br z8WGJ(y#Qv;3OF6Oow|U-Tr9vnLK*>XIHna@a>JJBw~%qt-o3j8%o9QJ@M%E}Wf$be zQ^OXJ@CT17zxf<-^BL ze^2zGZHDHU9k9V1s~bgRJcP|d#FaOlHh3O-96NH+1# z(`g9fMLZu&e7XZ78kfaD#r9HU^=GR_8s%aSNWM-(kMXT*4xf2*H&wPLSN|r$HX#%l zB;=E+b8>O7$vEutepUJB)!FZ`t7d>D??kXl85oR-%w}X|wFYohy#i(7J0JrkV2U;k z6h=SnXTf?DnaQlXb$#A~bOd}u85m!o-2BY{9&If_7=8drUbWKMPGomu6fiFX67}t2 z<4zEA-51WdxnbWgX>Z;}kWt0vc+3=>lI7B+$e+$WzbcxBQA|552_}2>@Pa+p7ZD%b43!WKdKV6`?>N9*ora z@h^R1a40W=Ni3Z!o3ZZFbT9ygYpN~zW~MyFGt3cq#wb%e!1g zt+9QOH%h_(toL@-jR0=-l-ZfK3e3ER#QZ2kbuF^8=`uL#=jf{$167bQ=hrH{tEO6a zOy74Anfz&z@`w`omiQNmlIa<$@w%(79s@9Jwqpy_EQH}9iOI?<{7a&|KIfFS+p*KE zpMV35PFU`rJxiTS`;^PqRj|+y7(j0GpO$}@`)cL4Jj_Ra^|vpBAn;P)MjOr1tEao4^cF6pUwnT+b^rK3y2FDV;>wISR(E%`@SOAK!+OenTuKFm2A z2C-c$x-C{|MCZD29pPEPC&oedz$PWRCyJQ6RdcvICs%9ov+1 zUkY29>EZzE`Gj^~%V*Ur%+g+QFBAURBRPSCw5IzC{8KXqp zoRJL>B$?v`9aaYpkcTx_D(G`oK$FyUKyK6b900~N`ECUIZz z0;RBQ&i!s$`MIE3Ves`l050!U^O>abAT&d4C^Yw61Kxxnfqvq;fxFuKZx6@b@UQH` ztxLsg{uwO0z1m~Xc|8FJEd=2c(Z3*?hW$UPOjZ9)pZedTi4L7A?^aA)WmC6&CFE%t zJ3BkLE4uGMn+H;_ka(9-<)v1F;v*A6D~#OIqn^C;NQBrkJriI2umipYqbR%nNm;|Ho}B{8@zfsMi{&j{U!2PGc_|!}=jT24u-mBW z?K@S#tW#aq=diBhHS!K(Ylarp?mNifsjccrktl#D2Yqk`BnTsX6|sGy`09PZ4Oyjq z*iJ?TAqK?MDh@kaGuep!Ahg%|M{Z+h|2*WbB8$OzkR{%L#3c0sE^t8#Qc!i{y6yD0 zivSOtKpL~DBfaTbqx8eAA#P@8es6akA;aKIX03dqfoNMped3p8qUZrgHe++;^RnQ= zh#gSdeN*5Eb>|AOU}W_Cpp^P6{^lc=lNa|5{52mk7SJHxbQ?s71NL$i z5yo!Pxvf0=mY*6Z*o8&l7_dHclu>+?1*lsIQ=h#O=g{TF4)X&)1+O;}(DEm6|`fyIG`BKU`hf zV^hgFJK7i$l2E%pg?@OPxnI&5Q7JH10EBdhM!%Z>+w|d|7eHS5y19Qd00^`S(*)R# z#QPlkzxJUfW#1Y1e}aQ!y!96g{{55Jlm9P2>26w^eWrNxx3d~s?>lLC(|gry%D`W$ zJMzti!*1P4? z-gZK@98|CJANBN`^p{DbG3;M09PT6gtDu&zyUSKWo^9?KIN5uD!2uH@}ud*G^9vB}7@1HeLsKD8hhq0Gud=MEJa$n zbE3H4ZzGC6y{~-z;&bd~Iitbq+-$ePr;++>qn7BPw?}?I`O|$Tr(S|W%KGxhV;+dC zYVUMkODm$(W>4kGz2B}O6Y$qve>gWUy0=UM3MOXuEw^R(&t8E1S!L9Gjcw~M~*sHJ?{bR<|_RScv323Ih+f#D$Z{)jo@Q@{_C{(FZ6>;`Pci`MXeX> z-EPzTHtVmOnD+&TU&s7wTX>rkxZ0$NIt!WHDzx%J(pndew|IxxwjcSFX z6{yMb)68EOk>WV0$iaUD2Kyq&heRD{VF1CE1?kX1D)p{VXJobetvsYd@;@sR{5CWk z|9u@Q|NRp_0%(-E0C09sYnnVrfSl{MU?nfGFE*aP0%L^^kj!tK#JBOq=83%n_n-H} zuKr(Si24IyxKJR^;s5T?0SamagjU-!X=Kf8A|K?yxtCCP28m|-M(ZAwuoTxkddioL zOPdc4VylI}3B{f}caHJ-q2nfMmzlKqTMQn`b3b=fUeWt7cb2Gh@{$-?u4*%;>dtqG z1FEEIZhoEw0dqJC#z#!#SDxU?yd)>})q3*$`Jr1kUf4{3({OR#bDZueT+h<1<>$XJ z!MN$x*?gPGCEaQM_B59HHcGTC3zxha+iD6W7L~jQM}UNSS5=7sZarST*^Zv2>O;Wb2@MZu79FXBM@u|JHk;&-y$_esRqzYLTm+s0ORTbu_#&VHC@bv zjuy|%g#R`YUt+d@917s@dZ_l|D4p7CnSi#RdMF!sJ>m&iuUfC%060D;Tkf)M?z+{U z&;X_8%Whk?uH#n{YCsb0n}K?{51{qaMzL0SU#GZ1^<~_ibEvMJEglSpY?qjtiVy7W z@FR@<1kiJpT)o4f&Ib()Xn{u&Aca(n+4ge69u#i*aC;t|1`OY5gBG5^K!v2_fKh@Q z4_6c+t@GqLLPEkJ=!>vQRV^?kC6joZp8iVEfgRd2nD~N6)f=jTBoS&=@=WoGoj)ro1{ld5+6i&+C{G`kipOcn|7{=|F=JU63JY@Ki7;Y4Qi`;pq0*T z;?p|f3~qH6=h#fhB0VZ9MUSGW0(ZZqiagU`_kpS@DJVuC)@Cuek9xQUmuOvna6-Xm zum+kWI4@uJ3~~L=;JDhMya>VvbbS#)v6>B(ri7AqZ8(`D^k6MObpf#L7+9Vm^fl-XW{0-tLIs3dc%qHuFo%PqY6#>NC^G;I~y&5(|zAwFWl z+7D32^~cUv(?MNhO{RU$eZjmPv?wcRni~ect^>klg)u9>%66$l80s9g(9x7@-Y)prZaJIY4%zc_*~X!fLh$ z%}iJJ&9{matM&&zh>-|Ch0_c{9Pt|EQvrRTq@U!!O}aQYKc~OUpPzCcAtEN$gGu6p z%4Q!53Qdnm+$P0tF@V1AeJ#C2{;37!}UA=<_dA8?=viDxjc0+Vls;X!n$ z5{S8$U!^W278joZFMUQ;Lp(50Jm^jZs#P5*T>Y5cu!QYHW7ZTnz3kaBSO@NgCC>X~ zhtWdIgodrLexOL7g8>(`%hnZ5$dG^R$H>~|+Suk``lypJ!&mxW|G~ty;(tu_%H{~c4{D8~v9?Mv{G+tcs zqn?8}ulQ}4ATlH|f8i#ot*z|_AqZtAwAQWfRy+!&nM`Is<(QH@PXFB{9Deuwxl;$C?R2qZLggVycw-JLKqC{*!|{a}J9jH0pw$x#8on zfv@2>{LB#wkvA)Yv_|bjkN=Sxe!Xq`UdPPy>)n4g+87J$XVqA>DoQd;LPWNVU#0kg zhE^K61I}QVO%(((wV09;h@$wxqZ_-QW{+YdDflCx!c7Eq2$XO(WH!6G-oj%@=L}LZ z9FB7scx;AIDYZT?-TuS5+zV6SxTq(z`t9xp1jP_2?BYWam+AIf#mO~LNAM#IhCwlz z|5u)Zu1_71#;dU7Q1fpd)^xMa! zPw#Pg%2G{UpoX)V_c6gl5%n+No~xaHidxe+E=#Jm^p)nwg^X@LaN`o#nwG z9uCN5(5^=T{I~jSBx)GMz6L0Nw-x+=&f23mh>LATSdB*+jf_QVH$Zi^&)z9+ZV)%I zou^{8Q(dLPk<)z>rLAXadAwAE7^;OI!PKk(863oc=;;GdmqbiV%n@QP5(0`fC!ln` z0O7neak;tLcd*GvVW zc5)yV6l;|d%X0|&fl2`-(p;dItAaAC81cVkSxdw_1T~0{NK>Y6f0-R0^sAMr4Z?XX zp{;ggB!EMbC#D`cC<5eMM^0*5SXjnDeT;QwZA}kW2}#9JE?$Hx?%6omVvPnb5)t1p zIS~q^2g?d#+z5%s1}-8>SDEx6lk)M|v6%4?$z(q0L(PFc?IILz?_f3l?Q%23^+nc8 z(Zdny<~2}U^??>4JVXbCl@M`-K3qH;qz|Gy--rZ>TYy3BTq|}r6ZR;eRK|8XQgNBZ~IBr&?=?mx4s zIR4|uj}JhDgfLrn0bAjs~fcfNV~iF{eq|;5-Nl( zqQ_soH=?H|Mu#ryV2Is!W?D)%MwChxKF-UmjQ`g`(eRMhGyS*bNdtT@7R0VWobTLF;3PNplW@!c-V=uu;@7*4B1*fot7{9@e{Rf1u#cMGj)CVEp zU*M$a!NM0Y5?#Qn@??k8(-8z-GL;fD#3ze!dNRZIPsl&TWe38x9|C&9Zw~_j_yA}S zGtiK*^TTLze!dYJyWJ3A2qK!l#n$k!?t7KogHX|m*6nR+uMd}uW;IHj+3|p+uuI~;hh;lisromg{<*`4=pWEbS%LGaGmhsdUyd0* zG|kU!On7K{L3rGw+FSN;Co%1;@Vt>IU^t@=ApA6&+PBq}|1r)cg_7qHzF^$i%L`D* z8-Y?y<8()c8;Y>?q;1pr$RP-`wb05P0B~Tq?xbAZi}QDMFg(z85eQ{1VoFObA+CoI4hvPC^N+f74j?2FsbFW#g|tnsylTb*UKH3+DJth6Igcrt zt%p7o{fhNUZD@9J#h>Y{eEP7%GMkss^k8xDpAqcm`^kl*e~M%@tlXJSgwCiFxuX*a zdza!pcI}{PRg7=u{mER%MIlzT6?euHZ3>yDkWLY11T8gPt3nCbz6nb}UAQ>#Fo-i0 z40aG0ZCQUx83!lpKTuj`*(BPV#B~U_WNSKOabq-Ov^`w0&W9oA z9mGLu-AD?9)c9OB703!8bkdMUgmOXHizr@1m;yp@0Bf$V#acICEP-P9^IMEL|3Tjf z^|FMPU|dfZjDQ&mo-pcL-I=sQFig#p!#Ls#TQ^0wNTD+lQ0}wcUH4dcETFr@ih;di z;iFZLw|z+3`YtBlNDhOgTo8?zokNKM<%33lpX!W~uyGN~Sdn&XwKrSPjILrx6m^7<^7JY;Xh$rtp-+(7<0`G8ClBpM) zKT9#;gUYF71zU2E9^D_D;JpTW2!^M?MY?ibn<>o1MH_ebU(TMR*nu2$Mx}Dg38WSa z@#S&rw^qIBJITx}c|9BA7I?p6`X3u@uXM>`{+Pv2wM8`Fm&a020rixGwM&|Y(Wm|E z$G_x`;?&l*pq@Xxdh)Ge=Gf|6#pSY!-g#6cA zZFbg7KI{;G`&EFF<{tAs9aa0T_L!8Q8@dm4rxeqA*Q%&FmPA;?3E!(OAM{M~t(O+s z+n(7dubyGQQSom&;3z&5u3$I?-5?(j$h%&V#5^|zwclX?VGSW3+xm$0+)8bS<`h9B zRBuKM$6YX9`_Ut>bP75}8lcPfMk*+kobc=wA*N^%sb(YadJ$SV&qhganJ1fJN}!`A z2c9*Ewf!nJw_Uwa&#?fHln^195Y`eGmA3$e^igmdy2YZv;>B(-QIiG!uX9y++aU(! z*d?8O)2_=^%W;vMZd((UD7G2N!a!)sp=xl0~ zSt0&9(}!ex{O2ufaWQ+-`2JS#qI);QYV)_IRM%=q5?mRB#_LAK`oj5U0ZY`qy*bIx?+L2C5X-G?X6qB{~c+&5LpYbgw^~OVC zP0UGcouQ(n;)ERZlJpNT1_7Qr8y*+ixKG`r>mTI$e39OFF#@%AA|%)A-t9vq%TDv7 zbFbB|>XM%ZQ;Rsv`zVw7TBhOVjjoP|L>=j4szuLk*L#`?%D)UO7pct|;u|Tw5YJ02 zeOH5ho&#g=in6EX%ytz%q>ay@kTK;r9wq8i1xO6J zD$d4}ZXC;fL@5yA15o4tXb`FCt(0*e3B4cTVTC8qr=|mF!>suHX-xIC36(y&BmzHrYwb!cXr@X%T)5s_Tv&89kj=4uLC_}bp?A+ht}r=BK2Yc?~V) zS9UB5-;$niBjT%aBal+4D=Q!7^VGGaC1drCx#kA!KvZWgdH_(fj2?chavtLfpZUE6~Z+n!Et0F{SMBCe-$DE+z zUV2R)HQCWqe8ln@emW~(twL#uH$?4V&a?BR^pQdh};1W3;09xExDJM*DFyE z5s^hdxgpT%>DmP7fKVenqX?mfF4Jf0@Q~+5vvSoF6;|*3R)J$4+oN>3mcus?O@MFs z>B)tEGviTc`(EvD0PEKU)+~eiivhE^u9pwiBeWTL0BU3Mrl`MOt}i^Aa2!NDmqs&w z`LZ5wkgIUv2|yoGXQ9Po>bgF6 zj$gwYdeYVO<>jkZ0%@b*rlpF=V)X&zgB}d00;TFlcRj6HJE(~kifJ+zFDwV&kIXmFU2Er_EITTpkeKe7 zHRCH@XOPY^qEnW2qwA_TJtaLUO{lM$Xy!TEuEZGuJx-c7<3nXxI;+!XaxApn>x$2v z&bRy?Dgn@bFW{ssU*6~nRB9uS2h>}Fa2DdIi62lq%oBWJz=MdRx&jwyCd;FK0YV+y z1O?EO=((Z}v7+pg-xfw6ksu{iAXO{s8?s^VBCvPXPe?K8z`y)F!9YnR;x65n59IB~ zQS?!SpQa*Hv^SMn;_l~VEIo+m@vJ;G4m zX|2-%63=BDg{{`duNiVtEKA7L;^7@3K6;{0j*yB_-29HEi-|2^?Txf={0o=x#M5kJ z*&khtzc21vvTVEQTF+}Nf2rTQr(F1c#=XzMoU5{&%d!e9dbvB>dYiKo7H4wKpe%$v ziaFPsZdYU%xbNHq(6R0#J5Lw)u{rb>cC-Gq?Cb;yd-eS*{b*4uH%Dnz1+q8oRxeR4 z=rKnPlAzn_5&c|wv;kMqciFpiFtRA@S;~%nG|9ZFHpK47Te8`H<^y66uV#$C)~FfX zy&Q)Zl*3v+iq*3Gk_V5cPORq)4Vhd|F)77Wp$#?uak5)a0N>>_-*++(x>p;y>gRWt4PnRdB0&pNhW?# zDe_HddZ!OyN@Y#urhCQpXq|T);SUc%{fAm+8Q+d8szfk>0B?FO?{1o;XG-dYsd!>M zV`t~>wkTTxVj0ueb@O9q#l8l4XoX0wMqE!@{K`%nj|x{{=B8aA9`>JK>@P1KisvOf zS+B<+s|>Ei&YQv(xl?02?|fj19t|O8`b)}}5tajaaLmScg{MO{Hx8k?%Xhq64_IH_Zr!&L^l^;lT)M)&cM#1dQ zWvH8ayZ#!xvURdwsYVk~a+7GO1_gwhs)#4;L_}9*QB!#Mcan)`OrwvY@`m|F>|V$g zhdh-+^neiem1Kp?WgRQNzJ|p*Y_{&!3N5wEqtg}@xo6S^%E*Ca4DO}Qm>4_~rR;cZ za$7h$``qdF;~_Vnw=hj7>X1%IGbY`7n{4i9o6%@!A!xYfh&RDKm9MU>d1qgEbU81#yD0SiO>_0PBOW4+dd}^$i^NAy zr<607PGM;;NT&{o4($za2AcFTpT^v5@)}frHnrkxNo{KvGw5n#fidZ=q$_aYFgqnK zN`7N9N}4*omwJU5L-(TBtugAhgnC0$CHA(~EFRs0dkEDxmXZPXf&uoNc-ask^8s@@ z_E2B?)5oegV0|zuLce<;@~$w24}V&j==WTP@5!sz%Z}46vw^0PCOSso%#blVk-eGZ zm3&^0E{N}@(15RpqnA((voG($Xl1Klh=b~E#F@aucKH>#{{2Oxm4j@k>mq{$t5B-W zp~_+*duXoFnDo4B@IyYnBk?bGlM`#?58rk8Bywrhz_+6sP`=tB%mxcO# zl_r)?k$XRLtr}^VvM$Y|vgZh|6Drjxr9E(ridd6_#miA($_%hH+d^nzvTOi@^WW6C>DEq<+nO>M6mB1pR3+8WcK%hPWQkX;oIWZ z|5K>&2NB_tdG(GFR4SEqRe8wX_8Y0x){^XLn_srH%<;XEIE}YB=5k*|`+DKSB>8tG z*f4M1#QXX38BsZ`#{h|Q)4YN{6)(|u=^H|A+=aA*_m2li91rlT!MD|{aF9qA03dmb zk^a`(kxzyvSJ7t|`Cqm)Al_YBdGSrVLfvR+R&9BlBST`!6rF25mB`C=inD7@6*Xd{ z7s%Qvyr+%@IFCLZIGesr9qR3asyd+i-KCKHcuKCtE3|UoS^MIIbNz~B^+Z~LK5vQJ z)qc~fzF}7^)lRlvWfd#=PW^`si&<@U<~x?-e&RTMzLE^`N~B>>+AhoL^cwZ2;tQ0t zn}kvpZSG$33=7Mt+8~zcvL|}E<9HdTB%bQiG+L!zjHJRg_$R&A$m+lsGZCW2Qqfv? zl!sqC^mQ@r46YA%R`~p}0kadhDuIJMlJwCWhc1r18(0oa(dR1-A@D8H&ls&7cfx27 z&N*6fqtJ#sUc{sd4i#Q+4v#H&e6h4lb^5-3y2eSZ-nD+hcG*Q6AS1e+ol=9jph`G% zd~uG-w%qL5jSZm)gUvNLrkMNl$u;X3^Kp|iM~R6~;QOLyb9Ag#bod{+s7VCm_c*qf zeLVPm$t7%jGp6_|tMvOBH59?}Zwy+pjTUZa4U6;t1#5xjwxf1aNH_fro#S9+49I7E5nL(~r*e4%nVzIeK_DyxKwe+AEG ztc*;8DCle8RZ^xC>js4nOBJro>)*|YBBx}j;Wm4Tx(dPfTB(MYuJ1xJ;jyTcF_EhW=li*@A+L8w{=mmtsO#~lwVxdvuS881hP{&?rO>#I{hD2>WVB9PAb zVn+nI&Qa)~%t_7$X(n&ud*I>Fa!74=&qDY{W^ys_V}{^c43t4YpFn+~U0FRJDjU!x zD?sCuvWY8G-~q${ayBoyXUY2?-a!yGEQSv7hdAUs9C+@t1XFH9`Tb`2(&Qyid7yT{VGxb~)<6Mj2ua0I1Yg_CatKOjKs zsFU|}^x~(>gz%#c)XjC6Ow4{nUT)}BDhGDzbOJQ+gQXj>Wa8TjG8;T^cE00 zJHPn!K-^Q1wyO<;@p-_-V>n+k+El)G44wjRA(}mm8@oh)_<1AK0FHyD0EM^tA!4tY zrG^`osIW$rqS@DqX^D!YoYS}Kt?{371~!;ryj`5Ry_OtDBlQxx(l{KxC+J2qt?hw+ zAt(2-|IACQ`;yb!8Ll$wXDMmE;@l7Nj{tG8)f8h*IR_FqQ}YU z>9_u>z-o`8YT0_|O=lM`UPE~k1>P|{5e4(3* zXq@%j>sF6luSPpE_}36*te5F5louDT+KKD4ooG`dmgl^Wt1NFcFkfHs1lP^cPsd?H zXqJ9Z_rTy#m00nN$yK=wdCLs5jQd0tn})elOBz}HIn+hMx@{vv?ycek0Xul2f;gL% zW;T<&tPL@@ug4}TnVy3l2fsU5ia1ox;^ z&5p5&$DWzt`#0^mTSK-)>6ElP7KI@fB8EMJ{0+FPfc>x zN**x=%5JWa9Bs2J#PVc~XY$Fe6Byml>(<+` zOzvwrATaOb!KWr9$>rNdAji9F>*1B8K;)kUXgkq_Wn|Hp>QyH2TUTGLV0~MS=Zl+l&+@o{b7D3;ifgKkd?Qz;%RI?dHh~3E8g|IptY8rVn&P zQ^jZ9BYcU%TiWEheV$Z-jVzs+EdAX*Lb3oQhh6JZZ;dPskLsyy5srkDQ?{Rjl$yy4 z36*6N;xk2k#J_0}Qx3)5l+@>n;!9GXfzQ{YEH6*a+|eDZ8aIBWT=;OL?Iy3@Z10&| zof-}Jm9oLt^1k%pM@h)rx+%%YKfn{1xvrZ_St)x{avuKhn{o#P?SEX8lS5z6mwkAd z@YqbJS?#y9Gs6v39s(nqcAB*T9Ohyk9!K5W(l|rJ{Laoic8Zm7%^a6R0oP#;XCbF% zJr{XN-}s%%;03nV_pgMamE|*3SJD2I%?7o?t(OT;iiur)l|qEdbMtx?XuBsNX(h3u zQum_XJ&;(Y{rN5NzM-NlQ(!cmqJks;hCsKN7@&QIP%({sWbu~pi}ws+eqvqq1p^06 zC2uQ`X+K@jA$;LH+CMOvuwL>tj~YGI!1>zYTC&b(YvXr6M0WM|YMzebczK=2f$U?? z5DT$OBdZj*_g==xDg!gy4~e}u|P-nPowGWe=%-~CGKu%vw5EO-z4GONi3g74)*g&uL7yDB(@O_cKOJ!Sj*WE{ zJ=v88t6henAY^t<&dhx!dT6eao%~2-qlIo)p*mB@ly7t)*4?uC<;sD+7h>8f1l@wh zzTa5VXLlYw`fS17Vu6u0e%CFi;^*P+G1-;({tNo@{A=a`)PNiBe7Ur1!hq`!x}sgh zv~gm>i-iGnbOdEt^x+RhXqyd3WfIQm4o>)P){2elCN3>}aa`UWczkJl8QVp7nq{5% z-jPpdb3DK#`_3?jNXA5-JguI(_QdOpBL_*|8 zY69z_8yxeVSwU0LxTCr?3qxnGW~LldA9$cPU&A$Y<`1&eR`Y#mQ{vqIy=?~~P=0(b z1C^TS-p3d+uruK*(%&#Et-07<(C_F?sO9_m+w^g#6*Lz0 zE&7RE4$upoOKr1jA(C?uJHy2e#k0hjbdKnmodczW3YYw!Ji7mRG>9!|t#O!MjXvo@ zL0I_hzeGpr?1c7J==H4BTc4x1}eC-)p1^bi$w zDebDu+Dj|-NJ6%GjPl0?%OhT15`;ub&(X@yQQ^FP&&}<(yBuOA?HZfpZd{{!a8!DMQk2Q0fN<5phJ{HQQVjyU{PtZqy5R zvWKUy>WgO3Iuz@uj*zz%(KyI6&*z>!o75c4fPb8_dXz~?>3ERjYi4>%ijbSrp$1l; z&*G4=-I+vQX{Ffh~0)=m{eH@h6}%Ot7d8S5j)aOQLe(Xr{G z7#{K&qJXWU82k5~9MwKF*{eR!J~fK*9vB`ny3c!H(0rt_|B#m#YKn=hPlmB1W_uxvuT`5Z(4?5?iKMGp6!#YV5|Wlo#@bY-@J*?xRjN zKHf!D;O@{G|1Y-Q0xHV3?HZ<}q;sUD!68LD6;QenkVd+tyOEGaK#(qJ5b2T@5fKqk z1{h#Kx?`w;|KxuDZ+*{uzu#K3P-g)S!*w0!KK928K$*3?k$kNXau~V5I6RCX6>-UXCZD3t zv03f~ny&d67&s*XUyxJ`ra&I+QG%|KGY(_)qg0`L6+=Z;Z?nShZ~RUM8Bt41f&@<_ zXI2~q^Qp&smMlmg18lc0e{Enk5LkTT7MiHaj;*Jc0;3nO6rZubT)DND5p2Q8a|yQxGOJ5BTI{EDWdB|bcUAn2br zGLZZ%#@tIdN0#~i0t{rUEi2YE{!#qZPP+4k>1`ZyTI|eP(kB!_!L)p9XQW9-bOSJG zL`N%sS^dhx2kVkZdMOCRn0EXJ8}0bR=-0zHXK27lu2iDk^h7)c1#-tM!3fB0b&_}e z8ng0BY`~Hw#0;JflbH3=4rn$RdNdOV0TDaAz(OR0sO`ubJQ}~DZ0E%uuv?8JFGF0y z&7y-Y<3OWrVfPFx4+lpDLg(~81d-sgl}S0@>)r{fQ&12Wc!MWqG9QC_2GHj*vivb$ zW~N$m{i_xswHlnhVd>}NCQ_$`1X z$pY>rREBr6%Pi_#ZVfCd8RVf(<^rEgEQ=8tycTy`v+2C#;xA~Y)$na;adujUhC^k(L?0)D9s8c1KLeUJXyzY z7FTyL$|Mt6ic;|72{bZL4GdO=tC23$cf^~o{kuWO@L z*M77%Lhk!RftS=f3~F?ePA0{%5sWdtsb}qbc|MCKd)EE^*Fp1(!JVxH_cO%`Z=@-M z-`xZ-i;-kK-#>v+5yP7tfBVo;3#FB0)@nI(o~FMbxc7)` z9l*~2asZJz_+PDy8H#EP00qiBvl+&6w^W-F2wQT%-Ll!hOb*CVqen}k*P&WX4xgLR zha2Y4Qk-G@YJNRpI83jYf<>VbKbJib!voC0SmSkSORR&60oWA6nqRx?K0mpv?Rr3m_inL@;nwk zhrd~gom{$K?_D=+TswDc^lep{#Xo_VD5IU|%P{z=fV9H8N3NU;m+jjdO5Trhad959 zdbN(MD!U}N>sB&nJ}B08kgr}nNjS1jS5AoW+P~0$`MJGCM2om~I9XM30+w@}n>ntw zcceQ|i+IKkfDp@SDSA?gD@l6Lg6W{MO`LT_p7%OC-*Zs5?c0<$Q$lWJ7F#=kvLlNvG!V1A(gcUOSOt%-Y)y65Z; zaC#3*p9)kPw~?VxD6~)z=4ElPJm?F?u|QHOHb|wzyt$~mi97l(L5!x!N%7Bw!)?w< z^607?@D(8f;Fk=5;vz(Y{NJuJaTH{Uklqdix*$Lbd1#JHdj&$+-*pd!DEY`v-$w0P zf+(ch7xH&JKk3$w0mdAOgP`K`uU{8EW$?pN$>enw&+uJ++v0YE8n+nBhIcd=)B&KU zKplkJGIv-(TBoxsLr8dTb+IrCSUkSko86A{G9*J=J}bs#?8OEapt(Rd3BVqMYJT2{ z$uvA)+Rkd0yu!o@*3t8T@kzs;X3g-#DjMVwaLo9i73vGAg_TtR?_YauZ!^6}XANf} zZFJ4ln~c$Yd3(Zdi-`!LQ<*9S+JY|Bah&rf?lRT)1_`!f4t11EX(*RLP! zuBG}Uiwc-bJv3oiTqAtd{31`}m%U*kUndXdL1;|qXzK^-Kivj_g_`axvrXAzm2%rg zDewcdWeH(1w=Cc=4s%=agL!Z6tpcYIL*ti%+NzjA<`ZXaK(el-(Os$J?QX<&z#opt zLC|hw0e{A$u+F#1`@EZ|bKDGVm&sBV5y18NhCUrBF;oAAiIh|=xHr_>fU{NikP!j8 z0PT^Uy1(-rXp0O_lq?#SK=*n5f{F=yh?C-K6wo8xB=tU@iTB#OUSAcrsUf&T3sQXG zWcwiuDjS{z+0$pW2HWEoI9hk3BUT%Xt=g0)yKVWW>5Y?+M>4Ihi}NzrSC4eygeo)T!O1kE@>!pJrv3O(Px( zr;b3BOC6*bY>EH@Yd|qk4$QF?x-~Z@9#+zCm4O@|>o7I2XpVO)IX%>>q2X8ihk?(j z)GKD-XtXe7c4G;S;S0A;#1x5nC{1BzM?)g>Oh!}7-W5$vQ3__lw}<2EX*3jf<)h^T ztL2QNO^Z_;^pMq~WKCoKN}k~GtXu($^KD$4OyAhcWk7ZP!v-W8jzGdhY}oQ`$>|#p zqd$1GY1>7LizZw(Ab)5gJb5|tKp`HZ{^;;@!R)Y!)2t2rV<2%OkR z+%W4#=2M>Xq+u5DU+h1Z@42U3giV@UU1U&g>D&4SxQr~du-H^evpHVzjK`Cd#+Ztj z!Q*5s>8oB>DGc~;{(8gVFdx_@nII-VWXYLw;yw^wYH$JbSSm zd7t&3o7|ZcatDEpZIeEY35Tc6f*D(LU{(*rn~Q_!#)k&==IEw@2MX1uUG3Hs9g{)6 zqJHp8o8@MhbktUz3?o?LA#rbt_Hc%R60^^07GxN2?YS?7?XV<%XAeC{kSaEOh*-y}}h%US@ zcBTk`^|k~Y^6kkkt)3>go@PyRVpA+a=Wg_UZ1j&%+SONM^dFu|*EVI}fl&>AYIdGU z3K*d|nTtXw^19S2jWLY>wxAPa*ZH<&n~Mo$&Vn znbEGx`p_$ps-ZP6{_nH|2{C2h zCDD0iW6oZG4%rv|5irL&9)LrN-;INXL!5fk@&uoViR4uJq0mZ52rdx;NuUXi8PYPe zu;I@hF?k@N0`v8ZD}O!T4LkxjS>OxDM8kqJb{>QXIQKoQxjEShG9!a6 z1@XmPEZF`JAtJ^ukn8&y%ILqx-q!0E6VRffoL}6D2zM`3pB$BSX_<|xp1o7)X>zMQ z4Ki!$eg23x`f-ktG#)qe480Wb`@@uKR$0QUKcN-||KZ({!oM6c_*9(@)r0O)sp<^0 zzpPi0FCYBq+(BBv5O9byfwP(aRhKgkQz4AjL5qTNxg{empbZ$x^(cYhWIsrrOBE7- z`4x;@pDh0R;`)S{G^*CIn=xq!p~Xrj_<{BDqug+1Ak#I_?j`jPo-o_6u&6V)mRtmX z<}Mnw%({jI{H~nUIrg(Das^KMkyR1p5AWTqT7+#r zlUERi;p)a`W&M>-l+XP#-c(rlkuQb=GcRGhLUCa7(s+DT88GurgiQg(c?;`BZ&n5^ zNsmw2#ZBR`oaLk`4z9f;PGGCBs_zHwZAZ%w3Wv0$%i|3xmtRJTrq)+R(dNSsul&az z-9$6q_(lYnD*nCx>uR%jlrKY_e>QOS137c+twpN`*@gn}vJrDIV01f23kqJ!$jiCW zy`G!kKrk3Q9Dn5EOnli8rNF5)khWZzA5)i82@I%1N7fVa}d+(#gvcP^FG%3P>7P5DPP3e_wlW zvcbK}#JccXI~lUh4$NDDe95YDRs+xEuO_@GQ)2X!oH3iSA)LwtBzJr?x%%q^FC*T@ z{qgeLkR52@xOD$psK_8fjjspnFMu)$snaD`IeL4sXdQjo`4-N2uJK&60>b&$0dk8? zgB=-5Tn2W@ft%9BT;iRRmysk=rvmbG!xz=|Q?y&1z1X>b$6{hd{b03z{i8@Lop29Q zB0~LW&vhGm=1-BSAX$#86WOy~u}%)Mo~w@{ zwiZ{TE&R*ydgeL;#ncKlPoRz3A@EEsR{^yq2T#hLJ$WJrV0{fT#~DO1=<4Z-tZ?x8 z(3M})H(jYy?D~AY1V(6*1mV1ZhAbilt+};QNGqRU<(lj7E!&dOMOz3dX+q}W^=tbJ ztM1+}&2u7e!{yur>Q$}Ge$j585D8<(?Cp0BSN8sJ+lP;JUh>Kw1=opS&~=(vsS)Y3 zjG()+?wLRAJ*%UOY!-0sqyI7>!5?FwzO~gkv9~C=YA#mu*U^ifUK&5D(zRY=uK{OK z#>MWvtFamHOyJFPHpl@n5hn>9u6f84L@$!PK`LQ~w(hJ)rl98R@xp>!J=%?(20q1p{vM$udwkc9 zh#*0T_ZM&FD^Z20tNVT-pJ!+{=tqQdExSWym?+f|H>@99qF%E!4c1AG2APid82p#ozQD7X`?)apX z{pAbdlK(%kqn$4X1tx>(Za0GD1)UnwfvBo~GCH2jc!^vQpn;h7&VYH4Re**zS@vjm z4VX4RXz^y=j+CLv+WqzeE0cI4CTcRM%W|9vI=T>T-*3ZK47&Uub%U2-1@baPLHcgJ zk}r3MEP2O?$@o43;I*Ro*0oJ?70~jZID7c>JljxZyNg>pFW->@rB)Rxi$5 z-?P`CMaB7EM#M%@ug#>6Rn_}1VZ%LVu5}#tR`yxWFO(&xou~K6{|E5IpN=6Z_ZiU0o0V`^v2sd?Be{a>&F!Qe3T!J7xBR;l=M@AhD&FD!ek6HmcHkr+AfceHh;q7Q-jk6GH22AY{y8P zC#4-YwhrO`3ZG0Co@e+-%!T(gSzD4BMS4+h|%bmw49oC99=~I+q4|e5=GPT`S zP(;zTlR(P?68jnUcNArpnOvP&`VngRjQP(S`+7mY0_(_KuC1nb`q-?NmC z;BY4JbN~0ln1(`CS-V)YOjb8Tw?3vFp8uhMkBE8eWQZG*aEAsJe80`c{imC#T|(^Kw=f{bh!AAOEx9-ahVrCIN!jGD4sfj|%F! zWjm+6$sYU_Etk)y#`W1*T+KW?)ZPfUpNkGG$6fyLOBI94}rn%sP`nF1laaG)50IY?(VclJ9u)@aa4wgzboD ztJQrnX*I2XdAK_-y}PjUKu){{sXU57}zo8=x{lth~wTFuK%Eq@p@_0ccvq+>lZTc z-ql~%Yj%);g{(NK3tWA0R>*j9{~u}qws0!kgaY&I@^r(k9&1EEAmT#%Y<9hBRvA?8 ze)LxjgcjxI(t}-xb88w6X93m03!}bcx6^RG@XLkQLTU#fXnqUuyVU!Cb6kriTDvjQ z8c7uJjFAFYU+b?Nq`d62yxpW|BMJgy13K z%4=$NCK5*OxbGU#y)#|o+~gb*;;RZB?YWz)j!8?qbLCS|NM@tkQd8S(Zup$#yw@vy zHsECPE^lbC$v5RnZM842++>-(O>Cs92z$S&v}$*GdoHa?0brDY^ zda<<9&4sc#mmGQ+nc^&`;F6Mbi0PURhbs$F0)gD2yGpNpx5EZIYV-;7Y>OxM4;#>F zbJgh+t%@hymM%Zl%-22`(WugkK>W6Ak~}$wInT21xD+L;>U3-dyVu1w8MM}9ifxG7 z9`8Mqve4K2B*oWDV&;0`Q;sljFy7?;IwmSs$V>2Ra2OR_FgsPOWjIiCm(Y-?Z1l?o zDwZZ>ex5!Z%L@9VykVVRX4ul|i=Jm2f6~28s}NQSp^i~iBB zdQXZcN|#*n=c|-6cm42ZU02ntDIB>^BHw{3lSK92bF;murIhR3hu;V8K5@DomKJO{!J=IC9(K172!hJux0LYMXxThf`8huipH(S^oQfAZw#mung?)|i7 z%1T`A7u;1`E!p~5B(4aelzLxDn^h@X zRGlRHs(Ms>IhDXpFjfG9rOe;R$y!ig&PTLvNgB2G$Bm9W5y54D=k5cW5$zyr$h$3-dlD;#%$zU zo|~W!8@zB_EpkXLNcoVRp=4v?G&3q$eW(Z0V1$YsJK)6pkVpst1_3r}?O$=ZO9L0R zRsXIAGV}4Y@+R1$Pexv!jKIexV@;EO9Sxo}?XAc9V_v1n2GlTl;q&!^_y<1T7rz(S z8@%)ayBa5lXmdkHM`jo(cnn~!SrAk zrxZkyJ~0g>A7=0!?nsd=iw=dL>TW1+HqB5E&_08tx&u%fse6u9dLnyHTCVjgK+2+Y z{H^!!<~aXa=jxE}Mi6{a66$x-(jc|j00>y|-gK0@OD(lq*veU&UJUyHScT_90mu5t^N5uxBUTrFQaF(N2+tDVOSigb_#_K`PIf7 zx{k>%88ZJi|v4w@K0?Oj@D(nUXwwm(-`?w$>THeKUS# zZS6z34x#r2GbejEDiL)Tj(Mjc(s&H9js-u}k-bk#dlBEXB7ralKBS8cJ$SrlQD=DKD zz=B%uEb6_hTNuh~(x5&Bh-z(jGVROe+8YG(Jqbt>yi3FN15gSTAm31C<=?ZgY z$}u{W?jG6<=I*2|y!g`!b8`!8h`SASVcs30-Q1YoCJw{vDBLB>1IZVty3ne36kC#- zA0Ieud1y-%7(WmDXb>WV|KKDo3U&_^)%Uz-)0YT;Gh8&&5R_)Z^DQs4JsrK(>*9$O zgPwKM0)MrWkEVQ^){n%fka}q91&>}_%saeYMIDvE16@YBS?5`|PZPVk7xLTil{)?( zmGm{^|E{EcluwDjT2$CThJM3nEk#*LfAsd^0+d#%q^kDuEmM}IxEep5I{!OWJx$^f zJnex43itP1VTXq1_vPLZM1@`iej}&lISgLEhh`w_{8!KcvsrBvluLdBwmfeW+FD1h zKj?QOprZqumBetLi5=mF_StZIZ4#2$maq}l$2EUJrT*;Y9JwS!t&#RA45QSN^3&jr z3elH1X8gP&*;-tsRPY&0Y7gn?G#6J4F*&)ujOd}K(yiMWVrP$Kr;3RtMomqzhcf%7 zL==dkeFSJhlxoxK`5h4Ok?2o|A5(lIXyDKhElUZU?z9Sm(Dz;74N zZ8zEjwe0$QI5D=((+_|o&C5EK{jz;GcWo1MKg0y7l*jxJWUlVh)?kn%oSMGdFx>77 zgRRf51vPFC7PHe)*^oyIBql0uiofi&(|a|)b?5iOF1^Ziq1kI_W36(nM6S57uz0I` z@q?N7ige{5(Fn8iVw1tt&ziWdyB%k^fhu+SPjeKj(m@yek_c=Cb1l@5cSk59$resl z4=;OeEzqY~HU~@C`?m}0*>qVJs-)re(FkwGn zqwb$HH6C!U?mQ3Ki4$_j5fXmut*q<07H@8D-mlOI!XL9a>h6C1nsU4mly2!LkeXw* zTpqkBvj|?1OsIvqMcWFw26SosdfN-^XQ(6-$F(ii_i#J9WiBNug(s3dX7gy|yH;iHZ_C^2<-w|-#twH%*?L$PTw1ms4$g8+?BT=|$*U+oMFdE?$dl9gm-+iqhuvP z9PfnUR!a49pRtq2;AP;$4((-<&o0C5e>^lS$g6Jpjy38>(yB2iWLTys>DV(r<0sSv zANj?UQd1ZApvf^oNpdm)f^$7R3Vu6y`r4W%1)? z-izyg8IOs}@eh zVwd>kQ#FBK+Fhq3usJ3NwjpacG>Q^kd`XHl=hqt65fn!~D!zI&`P1>#AKkZoyo+_C z;&J%AAG3>t51OWjmahcg(HvC)bP3>#MP7EZ2dpSS4On;kzj&SIj>*~dR(>U@>Bs68 zu?Gsr2I&l#jgwc5_S2`E0*&8?hviA7sKoMvdC~52>`D--&)uQGYqh&PU^UjYIXzV% z_scz@lNIp3WhVahFeZGnT^)V*-yMCcqFaFh1!b>!u~v+zx^kGE|7TpB^bI*j=o{RA z$mM0fq$p3HImzE%dvdmh0;VfyruOicj}-3T!j8CV|98ELsQL?)BD1$4Y}(}^gVvqi2?uzz~GMe6QzooX(Kli+R;%j&kkv$8tjbBAYX<% zy`VUVswc*hiYD9YyCs?aEwTFh*0$n{;i7E5gBuaf;(o-8-%WKvfkG0gR_{qD+ta|B zj|98bWLy3H2eC6X!3hgh>oIp|!}kkt!*N0P^V0X&_}N}!A_m(x#MAo|ch};UMH^&W zUOcyy%vhw{dIZW`;EVfTCy{siBmod@Zn=DDT_7P5_YJbO)l`1=Dizn$syHGc zq4`2OWV^wItH4+;4b)L?Kkv)d;oP*>fz1y-!M5O33 zz9vewEINn`9GBQnlR1|H)*`Q4_7Vr}Hb1>Pecbci)qutomgIQFXu0uDFnA>~A?r!|tQm4q*r8}=*vuy7WCb7k!g|1pNj*d!aWLyQd z#lEFveDFZ6$E%W zCdZ_I{+^O68OQ^X-um#z++g>hA%n z=ds`jB5cyWvi5m5d)TsR0dM)5K!7-P?AnQAHn|a+W>2AE23J_n{W4ZDRM!^{!idyf zn|pZo35#1pGOgbkX-sbCMb4uoxVP5U$nUT&dh4bVka_1A9sWTe+tk~UcfL{m8B6^= z62yOdtF{{0sYcE|Y>#=N@d1-UDIoL}tunRy)(&R@beVyOgWEy}VC*0jZXGD5b)iox zMbPU2rS;qAzjKP9C%-XpH=gx6b3}C3Ed^E#N>~mOn)s3*e6LsDO`J zaUORcH>XxDWHK2G#m97wGoN%bu6^jvJo<*n8B|d2+*|Vt?D2*VzX65tUvR4ypLy`# z%`9)asJZ}+mK&K00h)=T8U|G;#(?d}2eH;L%#vl%UOV|PHBf5!-=wf|ffMW5B!QNE zcr}k#oQIEQuc)!#u$|;`{oEQMoM{ z!HGZOr*JA>)cOeqTW0oaUJ{3vEjwW;A(~FpCyh$WOk`>)$(hI&BTv;X_3-;d^%Rj+ zk0C>pg2WylV>S6lsbpn9cOI+d#~RrmZ;{^&*bFUln+RdyY=W&pba zy4<_f$+iv22Gz?8Urx{S@=W^swZUqvg1TzR-r~j!NP@f4Rh*IBA?NHL$bOJ z_07}TKeyk$WuKm@+H$V0PBworgvG!kN@_as`rWsk(Qlh;-^fLpV85uGTH?Ev8vtjQ zqS|3Pds=Y8KZRxHPsW!qyZ+c+YJxh6Q9o)WP02X*ytVYm zReubADj!~+b2k%Gb)Lt1%yl;!RX0Ah#1~$@H+yNUFugxl)dS9Ye>$&2%uJkPOU`Kc zRieFQQf;W#a`HvVId>g%qx?o5#s?jxSzw5I&vja@2d2s&Sw!7AW_?$FS*-U?1U@4v zUbL0G+e0Pj+THS*+24d=WJYMGd6UDPFf!QQy=Pjc>&qClhNl8#^H; zD`O);XxS|pte?Ie<=Ba7?oe%Z6s2E9mMlfJ=2$Pb8w85;kbRiD+g=SrnoMCI1QCNK z25{SxCDLvkCaj|QY+HZDw9z!{Ivk*pYYH0}uIf(u+vUxSd(?g{Zhvme@`DYfF^^u3a6ibA%UT7SDdU^=6&*J#IMhFu89YW!FN+mdX9o^0riLXw|dB z!Jzx03fJt=QO(PfYr^>J6U0d{1*2;=7&73Az5BmPOY3v_IG+EBVBFNQ*f4*zpKjc;DU>MFa# zBigDeHK0}K>l<;)ZU`Bu&hKfYOBz$_qz$x_=x``ys8n;E#nr`5#FYG^Blx+8!)>5K zJRm~|03vt&`-nag$4z@N%njI@W4M1p}V&XBO@kD5gxqOoeG^ zqvfARd$a_P**-2iUzr${0s&yzgv#(y4ucU-#%{Z^@swTir}oK;;t6xS=6LmT_mL1v zIZ+8cJpDRqPV{Ld7)P3Kt*%|haom9GaMW|Xd(*Q<0ZVWVxvXIzKlu2B&d*DqBA>Pf zv?R^XqXU5Q8_sABo<;?wI_&NxDPxFC3e|u7sryrv%Ha@{kJ6Xf;3q$??a}x~W(IF> zN_f%I43-zX_84qt?OON@Tkw8z=OAwYv_P)Qa8w5$=SI474$w;Wf{`!wCuLAUzQYoE zlHT9EGA!@*>6vFxf`xZV`A7!p6pgr)OZ5QXLHw zy$Q4?q-%Io^HT8Om39p;xABmMKMDU{Hi@f->)Ekv1(7V&1uOa-uGL? zfZjorV5-%whw($hUK-Xnf>9^f4vq1Qe(aF(jAE7ElP>k2@4P!|OR{S8>GPhBAZK?D zU)B6AFfAASX(mO)@q7CO1Kbrfb%=(xUZ&3zTFFVU6a!Pn4n#wz;mvd9z-JhKG{uMk zL%=>V7}faau~tDkCev&WTJxCDMA^Sd*S!qL`_bXA>fSw=dPjF@PjJz5#9M1YjGeHS z;mKMK&+)WEzu>~be&ZLZ6~meO;B9+k?Jxot;r<~Qz7hNo9+6jx)xJjRg&Ar+A!Xdp zZ=MY*ku#RWUwTTRL4K4@dVUv@>Iuw#Ibq0~tQgE7-g9j<&_(o|woRTE z3~-kzp??P&V>3@{?Va()x4vzrK5qjv+GXw zoM4hi5)w+uKeq0aq8$Wq1!R22%3%8Cz)GA;sau1i>(g;Uu7KD0^&{E~65dq5L(W>3 z@*NnQ@%vj&T{i8&uICEc#yFLN6{T#9wGR%_mzI{Q1%Ch&&o9^avBDcqN5{d=#cpQ{W}`a?!f6<-#Gcaw@9^ol5?bbX6A*m zf7i#KUk7KT0hMiFc)+GLd`FA&SNAd5i2dH&AG2qgm!OH@4!!QYnym{WWxV(if|Yz< zNiY!B;=J^P@xnClNJQol5&|f;zQI?i;I`g;4*xuknhWV&lSWe4J7Z3A1(|_BamJys zoCmhSV@J4+EzQF9O-->mBG2Wsf(X}EPO&q7E(GEebNi$qwih7oYpIA7RhGuD+ z9%f|5do8qlT9GNx;4;?h;~$!sFksu=Jc+XnYJ(H&iUq-;72HVy^^jIr=~_{p@Rqw* z)NFb0a(OS4?g-Y?;*YWt1Y9XPkRjY~F6;<2i)YLCQav@mWqf`X^rpD@@y{SKsHc64 zV;dBv_iD$o4H7SI-v&veBxTopamuRHsofHg)-$ z)#f(-Bg?pi?A_*J^?#U;a9j(>1JVrM1xv#PUsX#f21GnU9EXU-_4{&2^@L#t$Pm*{U+JCi;!Y1?%dw95FlvD|*NphJC& z=a)7MRT>SutB`V@=e4|hyel0I>}v@^VtXTprrDU!GmzRcYu8@`)<%6yem8r$ob$H4 zwF^P~KDc-~)?Mu|4%y9oubA2WT%psLLw&ZT zd0HP158tm(X0@+Kbn7Z?f2i*jbDE$cC`80r)pyuvI9|Tv*uv(k(kgl8v${LqeY(E1 z&Iu$_Mo=b>{n49Sl78%IC=dJRC5(*`fs=IIn-(+!R#wFc>gAnRX9yK$-Y)qf&Y>LF zQ@1ts`(52Z0gOJo+lVbQ8BJ6v4qG+~1@DOh;eBR(9SbMW;LY-G>OKFN#&QN0Z70yW zQl(fvG&}!Fe>FFbGCS*|b^#P$=ha~kpaghHZSFP#^j4YMx8vndb*x95iyT*89@t4! zFRyJf+x-1|{lg9|E&W{U1m#Ah8#ho0V?PcL56tSt3M1K)5{Di}eK=_cARw`{G&&XA z2h?I7%2DWqsnOw)z`YwIB>h^#gRK$bfUZSVYXEo3@kQ6zmXNSjXJ(H*i>&(WG~yk(A@se}Z}N(PFQJzrb%#VL^+SLMw0$|C z6)^SuSu3esct6u;;saWs@D~&r^N(`!QVml+ebqbU&X}YeXRSGuOkHjm`0AAeZ>(B) zJ*nW|SB!p_-tcs2hUfE4U>qm+%VcOA0-h~2_RE)T{P~a7WK?i6$Im=wT;>w{%D3fW zWJ;+_xa#U(1c+h6dX_SiE9Y23nPCi?9(dnb3Owk@mKqCSLWHfnY*^`9cN#8UErPRt{PZ|~_8^T;0w7(jsrRM55AR$-Z1KeM9 z!;iCV+6b~Sl+v*H)ySUPybBX5o%trn$t5B+c^PY!YBbrrZQNUCefIEuAOrrh(nZ}1 zC?LGa^k=pb$+7`aw=ap4lj98j0cYJt)cnB>%jH?3FZZg20)P*+kVV`#Y=r&JSn<&iRpEb`1e!0C2wVGb_fv%gkas> zQ)qhn3Bl{MwnLNQLh%WgnIE@O=@d9Let?faGZl7R2U>WOZ+`jPqhHc^-$)p|qx&^u ztG&V=-K~v(df$jS?9a;YHYXT#s1yMeaDq!!Kfw-Q!JNF)k%|MV35_dLD1t811FaXt7R z--(>zaK;R>r}v`6{zEwew_HQRgtYrRYn*U5s>)dV%GmEVvEgfYxpxot4zO(W4mx7O z@UAb%mCwFB{@a*wUukWmr?@fldn4JS!!C4_3rUsc`JIdX&aLy1m4JKwOIWCD`GnHL zR{I{AUh~gZl|nUMl8>qR5b@mBi*1DC#LUN8S5bNWciEBi)nH7W6#^my#I zs*&MhPH-B7)?Ils*P4qxjjJf8WFekC(FQsiX`jvi=J9v6@n6D9I%J-hvUJ0u8m#ZP zjP@nL!DjCjw|kKPl)oh=OMT_l?Jc!$SIj}NERC!AEvFQv&`0hNQ0lPD!$I|PZRYTd z5NQY?eQZoz375Tfx2u1dUz(oiM2z)4yC%+FdJei*bmR%x^L2JD6wBe!CAqWSs{R{PJ}JX zc0V5RNjL9rJL8QDr|H97u_PzbRt+oApF8}q)6^DF7sb{LYJ%#pkz=aY9;LUw`6@!A z+oRMOa_IQ)!Z1VouS2>I)5dh)xuFjCbB)VnQdQp8CxkETC7G2_Hd7)s@uIce-nX|o}s=o1WoqPiR$?z?(PP& zQ--?;4KEELaShc-6(EyGM-z-)HXejk?*#x5eCT(2=IX-Fj?ss)HT+m{Tm= zz^?48wiSloS=oo-n9-2@C7W$}6|e#&@pZ7B>}Rc!j>FdYeSe+JUO2|Tlxx+7GPf`M z*#L8TiHTEDfC!ZLjoNSLE!ujZ4jBRqKc(i{n@m!B761t-;X{=E+s3N6=4D;`*#(d5 zA5HWWVu}CU*^=7ZRnPRYP(M{*n-ZR+7N-%a5GF|jn-iH2K~sFrdnZG`|J+O8#7Bx$ z?o=8&*PWaQ6Fj+q^qns`dYSgLw&z~rS@;@Pa|W$m-i^;5LOe^j95*T}@geO?Zua=8 z%>4w3saQ->td*6SFO~PjE&QwgXvEq?P`v)=Xqt+4k)*oNAD0lTe8_>FF*!b5AOkCX+hyX>Pz< z$NZ)%U%Kyf5A$%~8h8Gx1n#vYzeq*9dn7vAnK8Mk>hAPrf>WME9v1^;FiRaRP{b*% z(}j*N&|*)eG$V#5!ST3Ux-E=V>H8xYpj?^5GO}U4Bdvt}n&G0gu4RVLINF?_{1kgK zvc%cY66HTXwOMXb*?-cGIowb;2C4c7uOih`ewC0oHr8jZ`LQciM$WSy*r2<9_+F?I z81{IX7K^lxUopE3LhyKp4vJCcR}>-VRx3=|lx7#$hnzS5RTbYPl~q>pHwHtt{K={Y z+1{&wugyGfv(l4T3|ro{bU^LR@Q5iDP%00YcaPg!vx(eZNp2yNfC`3~n`0zg~ zk^bx$XQ=FZ^i8~*+`~9Yk*<#&cpP|S^=9aDM$rRNUx!Sv;{M%@iZOg98ur8pud@O-_ZJcUXKo$7#DE<21UV!|Y`J7(w1;y*sScnMm0A9tB07h|K z(A!S2+L<>%Vm{qyuTb@TCT*amt@T&~EiagU{i%WN>)s;z;0*N6C2_4VKM@~>cZ$DF z$VS-Y#Zhq`($JgdUB0)Qi2C}K#6qKsPvxt&wI*CkB_4G%SLo&p4%gaR-l}bJ6uS@6 zF}`C*N&6gQ^wYc40;V)Ho&k5q`(sb04vWu;GC6nWud%U@pWoeKe8>4+UlZIN%TwQ1 z?+$372^t6v{rL5cXbTYR#nojE(;aI@8kQP5xt7nKS=P_{U%tZ^2igTWMdaZPw;&}2 zN#7A>)oKjfW*uB5t6H|h@~W}65qQ);a^ia^%jm@j9B-(SvW>o#V%^t58~7D*gQ&ri zj~7Hu7mJxG?>}tf3v4z5kz;}p!weljD8JV~x}#CnpEdfu>zl_y#&|(~R^ql(b5+rT z^OE~BfbFf~f7S1FIzLG*6$D7N(i^b>NwXu z*Cfv+dn5*dg)Z5^aSB9fi!#wMh`z1^`;?}OB)kzScBA>TBotY$j_7-ZJ@ok7Wpmuc z{2xg7;p%kFJFi8a8bY+K-f%UaZhKsyXMS2bQ2UfNWU63wEii82tD7`bnNV;}5(^7w zNJ`_;`9uik{Pjz03H}`b6h_u;RZO+)t zL|jNfFCVg{<^-=~IYdHw2Va+JkUEea<`u#%lgtM!ncl=(d~6K4RERTFTr;c;M<{MX zd&(CttzffEn0Q2E)}hgc-3jO+bt?wP{IHQL{tV4lKc6jU>OJH>oFSBrLUNP5p{?~Q z$yi$S0kOWP;4ncCY@N^(*yqzXvKsoXON=TX%y5m9VMpW=dvfRR{%-@I`Oi)GU!T+D z5pcET%MJ-8x4|MN!f{=ukrQ2`lJ%iu{9&t}bXFuM6`lcMk&C6`<%#v1s(_|43aX+f zeX?k;c{pbFr~)e1yhGi`K3S9P`&$zs3XlH6*Z1w-$TClWsofj(P@chP2qRF`9iAd% zS%}2tJ=Q|La_UVhiDbCxsui!Hw55C-p(*<^_>uXe;9C|kU&}v4;w$hfpLh&Ethbq1 zPR>EV8L(mttbi!;#0H$$Y!q@p9>es-m;XW&X&^3dH`GBh3RXV^8phO3+ZK5wf4wbb zQ2ossY5)KjLYbU?Gbs@R2jB%bHP8lWi%&cW)oRsWpS2X$I5s}yd`jW5AW^9%R=C=3 zYk~XVvs<%vDgK1=YIWtWy-WnonE0HZ->@hGzmKO7AyYo^7VvRe^l3;2wh}K-#Xeis zEGo=g4hl)yL}n~lWSFCxVuvVPn$u2*3K(k^wX ziVoKoTS37qcK4o=XdPybn(EqDrs9-_c@`GFQjH5Pp(I%gDYc%P{xR3+i2@;Qvd!fG zc-J80UnE356~4%%>_H0OzD92+Ag6B!DxfU%)$6-ja8MDIo&BIe%Zph&oW}XyyvHFX zaKi(25$~c{lMi%OU^y6(_lotb$Dhk-dE)qK8z|p+?Q`<*{p!-@aInSA!2Xc#PAWvb zGjZ*GTe!%!gR@@VF%57i;0lZl`QC${wd>{v(|Px#yq5cCygQIE^o@gPr|(!!>6Io> zGLDZ)CMKp;wJg^T{*p`}G+dWs>3}Z{c!y!$usT*aL}|sc=l*oJU%-rjwv7vqkkdlO zu+8B~QqgN<4K)%DWcm z@$**+AspIo!jE%hxrbF%3?D<>QF1s{TE}yJy^S-L@Q)jYyq^z?DsoJJdU7tM<-MyR z{c3ku9!9~DC|=+ZhuXRHr~lAKs^7AMa{&G&`TJ83G2Z{PV*Cr>{oURsaXX%P4r^~vtOne;`%4&=~Qha|5 zF|r>#d^G#tnQMi37_yWqyAb1C`75fldXJ@xO*F)a)Vbdg{#BOVOy1iAawBkI0&y?6 z(b@g($ailHYHrr|^iKB=x=_3~R9Rjz(zRxU0ZcxYQ$3qzI9po~UQG@2?=z1@`aAof z`^VBOmMhuuHA)#iuFG4+#qR}9XD`0S)eABR-R!e0r{5mRDb?h-ioWu>K=j;Nsgb;R zj~3o@%M#eh^7&#JK{;CVUD=&!^Vr(Q(z(3xk}^7{he$~P8~VzVh1?iTWDk@H1bz<& z-o+~|Lf~Vy7RlUqN-%mJ$R_+G? zC0K>M_V<&f1_$l$HIP+8|Df2)VETj?xOms;8g zFZX$VA;snAf-}fOSO+9dAVWK+^eF2>qH%`xdqN)%1M7q&tqRX!#$UxlqyItR{(ZjF$`0NR zte7#7e7K>#1~ZHSM$l%-^QSkMaC{-e;N6EWhQ9|TR}@q7f(J=gkvP?dsoV3MwL#=T zaJ(lEXqoT%I5j@#Wc_VYXQRcRF1*uL(XW|j`E9(Qo%4N_deywegyO*qK9%zH8pOL& zYD_$il<07xaNC6lc!Wej%a&u})`n>h%9~P^G4JN6pDQnn+ijtoPtyv5P!t8T{}|HU zvGporj_=+n`{|*iJ{q4=4kJvF*JuBDT)KW$63X#C%h-^*^?!+c1kV2!4^2X2tjW>U z5s$yFQM^N4V``s0II+fkSAP5Xj{z$@Xety)UYnnvew;q!N$&?)hl0S&1 z*z-DO&~1(&c^YLdGgimO4srNOC_o4NTwXx9P zA=KmcR5;AJ#s2u-{P;LcDB;z4I^~kI&U81T#VHGtFMQ@_-QGA~ed4n)=a-2H1FM3s zusWhID7Lm7J+^8~R+3v??@LP~gwMw*uZNk1t~XT1$cEI;M&iAmMhUk#pzdy7e8;I& ziyLSqpy?-JhO>r)gTL*>iSqIi?eAY)pltTs+0F-IW__&i^N= zNsXDanf8RfFxy=fu>TX_lnJH^W(5wNW@f&fD)Ax@;mWy^@56f^NN&CM}J~ZIgF(Kn^3^_KmQ+!!C%tXJuyou^_vp8 z`vn^?u!k|In7}Bc550pS3v_%g~ z(m`XB8GQr)gy~xbF<#tCx&IIY%;>^IsgHPI;(moiJ7K#|>vU#LwG&K(%p8^*sjm3H995<+ab(klCEA5Z@c%OWJkc z^Tex8%8U~ndRs^<`bMNKv>!gOuAc~+mw%a*$7+D_xqo3p&2G*$!`!nm*w|k(@o=nN zZ97C_YXKbkptH|+@2I8=)dx-d7pQi8o~`FJUAc+xPfItoh*hcDz26syPM<8i?e zrEG^?h&x~4QnasR;Xhb_miO`g@ikJTWz`t0^9{oJ`WhGQA9s)S%>dpq2#Ang4N{Q9 z;LB0BXG*}+tkYqA^@GxYeaSY2IL>f6b+;*G$YV{C(iLkCj9SDvBfVV~rs@0EB>-?A z_{yGryqosMz0;fdg|xSIvUh z=pz0qI&++#U`IHHPM`F@m(}X8zc*?5&Afp1OwY@l(TxslGCWm`g&nT>q=P9g_ z<&A1sZoDD8rWKZ+SCP9*2V`k!tThcf@u3clj$dU?ylPKJIX|w%D(N{kHi`c zHt2vi%$%W3#G+>;9X&>Av z(vWSepvAuL^Wzd1&Fm@)8EgyR+29n3Lmf5s$l>*;dsqhLh*z!j5$J}!uoloOo+`=@DIn(@xVNT;y3(@S zULn(E8w$ouKsi_`Vi_6`IILtczjsyA>DP~cte*lo&=<}s7ZmUtC zqfb#3WO7ZJtLVy4Oo)M29R3zk{0IP>MTgJTyYBT_4ft+A*#I*ER7X3-8sA@TI!ewU z+fVZ?ns@%N?_GqH(gUZ|C-%gb8%SvW4s>eg=Ei2tSwpF$P})Jl;uYrMlSg78IZ)mz zoWiKLeC+2}4)3vP)Xa@$-q0r#j_*DL2j(9*ozAv3=Pbrv$o(a|VehSijxBAL4}JXn zehPNvLzUy!YWuUy#m%l(=G!bC!bJ6mYF=7vR zjW*8{jg`ym8433?cBdWFx)gf6E__4!hTTXbhgWQfkdB6~31uXDl6((t$UMXpW{ z7)L017O`;l0+cqr8RfLa;EGb5?=#{LUYZ6eTQE_z!Y#?fdENa zBmak?*})d~S`|XsA2Y3!Otqz)U(9{0<0 zP=fGFIW(>3-8tyCcNj-f{7TtBaZc_9~UPA4{i{+Q>K^7Y72&Y7= zcasIaI7cg; z_vn%c-oy=iv_jD?uD?O_woY;6xuvUD5+E~B=h1BIhP>p>8RA%&KZCl3Y?h@) znI+I6K}xc&BmmmC$ip?l>1R1Az$vSWNtPfBhN<8OVu6eBiM>06IuGi&!W$rPTA}Sc zb|r?WK0FW2A+(J(Nrr1YdBC~EC5;q#ogO1@x9XbuFUs*0$E3Ml zQlmS3g7eO@qu^WZLhkXBjomVt`eVU~PRHZPN0MRt3=@TRmO|QcUiwLN)7wdALomA+ zOY(~q-IvD2TVYbC$NpbWX=dXanE%^cD8TSPKIAA&@;pw8k8jZXG9)weh!xqM2E3f4 zff0fj3Ls|(y(N{jcOKLbM%Kpq``vDe!;wG54z-T0BmatK$XLB{Z&;x{xD z2R=yCYFqHzPEgE2ph3;3jWrs>{1b>tfo`G19EhV}Is&lv$&CK=1SK6x0(q_ZcZbL>vq!QIb049|LcIscRoA?7t#e}n0VuDD9Zj`80aFkOwDF+^B ztmdTeI#aXgS_2o4^_l7f44-mgPFMdn7gqMOhbked$pcS4(j!f)n>?1yRN>08{d_;O z$E%tVIPdJt-DHfg=}`+XuCzTC#4`0dZ8gWX6r;`>ezIR&k=Jo1ivMJ%ii{Qb)`+Q3 ziEDCi2YQ6%q-0wwRBkm)A>3nUDq~Q_a!2=Lk-<(i0_HTnKOU>ggB~y{&HHO63 z(nay{h48H(<(4#cL=><8mHV2U+Awf$j2AwYuE+wIpv#6VE^@Tn;Aov(qZQ;?w^t>< zY;d-Ni2z`5k7v`-2$vNgN4IA#>+Fqz8H${$PfB$kSf%bJ1AD@W*Q6VkP5ujA0=pm(*; zqcBQ9o_OV}%8AX^1lP{&RL}Ozk;_IlcX=fT${PbDx0S=VHOXz@{%#_O2Z68LvvGjR zKV+%YyaYKo>4nxx`1tyPu2)fMZMF_n6UMWYD8yBD$I(38-hO!3uC=%Cifw6VG8Bdn|=a$Eif2~rir+QpsR4JDtjYx^y6~hnHm?Q@Pzs{cz#mcYZyIjrYaj=#x>PcT|G8SOHmnEu5&4nU5C8$tqANEi` zsWnVI*L=;9UWwtjK-0&-2p%1vB$_7CL^3jJ6L+g9ll0j0{fmU%;f4&{`Ke#VU<(Fq zCK`AjC8UG@NpILu0+rx?XiNHF>`UHL8k^a7fFjsu8auU9x(v}b%(Dh_IQuFT(+f4h zM#=<^KI{(1z)fR$Jl9mBgs((QkKxyunNt;>ZaKRVo2O`{EZEY=^}C(d)C}#n3rpq`24)njY8`l30a`{W=0BfEcI}=^9gnUsN?{9j{ zjE`spE*kjan+dEkV;31^RrMf)-VpceM7xw95YPHymdSgba#%^I-)3lGud$L%z2gj7 z-=mqnYsZDb+gNddFbDbm2FuO+fv;|XZ%TovSz1a@da^L$Iyu^S?O^l3U!WPYjQt@XssH8Y(CIupYv>2R>-(% ze{(A3{&91&r)tBo;;PJy0DV2fJ#$UOXG3}XhZy&0VZIC*7pV|6Z48Eli>!;mkfeKP3lJ&ECMX#d1{Qds&5`FztB_3HZ`F%98b$**`(e(uF zY|PijF~6o*b>g-4%>4YGY8mV8kIJ$zLzafF!iM+w6#sHLZ)7wfbcCVR$A!lhX?t#t z)wCV@sJ1D~cMaRfZ;e_hpJHh;{?rFGHC%gFhsm_2>k|_opn^p8#ssKt${hItxXRYEO3XFPwAE-`?CFPVTaMV_cm@-985|-Uu*%5+wD-JbIk3 zcF7)f)+^ZjsK6CC|HJNuboL@FVe&*x1^8*9i{+q~T{gTB@tEU3@YQp-O<*w?ioOK>OCY-NoS|DG?FMwbcacs z=Q?+G-W=a|a%RMOB)q%*@SSg&`at`I8}-k5U|O{-4ge)e_9VqFHshNu|>_K1|6xww z_SwLG(Yw8Tp<#hZ@m_NGW_=-sp{UghX?xQlF1)H?8x%4SFhF@g-s5Zd1n{6WmelV# z{_#qHb_RGQaRDXd%Jos zXFf=vIhP>qPALMmwqW5_W(gPnRrmRyQa~CppPNKln-x`lvjY4S$=oac9x>zz{v31`VZe#yfzfr3%VCwZaOGZm< z@t?~8lNm;^#nFh7;AxN7u+Uaa$OhnD{=);gOcF5G{HF-*{p2uLm?&C|m!P*vRZLq& zgt42`#0ycI$MkB_f5iybWCb&eLjb5VTO7*xEN*<>MDIDFhWh4E2x)4lQOqavk*>J> zg9mHEH!uu{9PqyMAW9582yP%ESv)zvb^l)`%XUK~7@c7;b7#`S6~l6cLqy1a*!%Tp zB7Bj<)xS45zX&)ge_+EHI=oHkj*ynVk+B^yAt+toN%f~>Fx18IWWHpp1;ZV1qqygL9&2wo zmc2Y2kkEOgFs-qk4c<1#fQ@>&{#f9*r2He&af8EeD zG$3tWAg+Gaa_S@e`5O`F%9dHQdv>qqUwJIy+zPu}ldMQN&7a@E9{AzH3EFAv|0pER zX=NA1saG(oTjtHYjeF&)PA1K6v>&$pnVHi}H_P-H*|V|>E(fF@D;^hT8RRG4+@2rK zNq8DM46WbA!Ll0Cr$tu%>DBMLaRrrvf(8yIQuahmzfb6=mo_f4P))d+hO&{DFckq4 z$CDzyb|R$5!tP9$dFfo64W__;S4H%W(Dji7;&jLQW(~RTeKTZP{v7jce?1ciV42%z zfVVn;Y5qV1IA^{M^nCG>zhpdwC|eG`F7$8=X?nZ??6_{ya|??rM(lu#1k7m|)nZTU zg^Jwr(CyWNK%4XFqU+&+=M?~O3xFsR@t_c*+-o@%^u65|zVYK3no@4vkKo?Rq-=he zKEz#FOi168wfk!eaR>$D%YGTWa?m*`GvY z;dbTwkj5v~e$yy72_JYO`_$Ws#4fX(d0D$NfC?-*P%h-S&^ui5Xq@_F-{X-ylzeFa zuv0X1_-*0%XH%z~n^(#{Gipt06qb@*0;SGg2}4+0e94#3aUbLXQ~&9ufxY0MsFlY; zmD3uziqo%+)RkXN*RPm273%=GZQs+x77)9wzkUVmyT zPQ!lXC7dDu#H$sr{hPmTbhr2ezt8gF-|#;BP+s4leD<;Cj9VpI-d?i7?9;y%SAJv1 z!*Mbavast{@DlSu5ABT1Sq>Hcp2+BznBWX=I24xCq4Grholj!SR3p-PjG@9V_MU-C#`=K&Tv$Hf%h)^vO-J6$! zK+-ZZH*lr-AR)6GwFb5fc5P}v?xdA?c}SfapS%U#o^;MR$uEL2ptC*|TR`Q)vj z$KjR6Q5x|>^}i9*&O=Byu#fy-0i)ncQCMA($~C?ZlOa?@Y^}u*lF;`&^yP_6nRfT8 zoe3I3ie(Oy?9Q;dyou*6_%;7nM7t@Y!P5&bP%i|9Rl7S?#WekN`rQ5FI6j1NvEbVv zT8+cpqbwu>KP*6kl@zB0DWd6>XGZ4LO1aO2Q=+0&(BwsaagB=GNl0VNY`!L)X3>{D zsHr&+YiIr%XMj$cEYTnQLLsnd!?>!YLsUOhRx;e*TMvyMJe;yKVzzknf+C9Q=|d5v z&fsp*;O>qON*e3^Cqa_;kb5yB2in%Ga7F&^i8X&ufnEf0x>E5(5<|7ovgwnhvhWX5 zqO9wW)eXL+j7a8=lAeAwvbR&fmJ=OzynLF9$loFm&vX*4^i1h1bS31xFGPsWmg>|P zWLN+BU3NgH7}}~G5%~D}4!q)k*KsrRs@BhD)vwtSWtBR?v~IAtIRjIKhT!>j7!`%_ z<+goBaJSSCDg4pJA@;*}-jDE}8HkE8zpxGUs&nv~2C9#RSvASQIp3p4n?I4}nc2-+ zg^80hg>@~Ye(fk=qba_&9N}-nO1`+b z(6yvEd+%%|Oe%MrsO6qMiG~KPW@Al=If82+aM@U$Wo0#S9Y20FL~jkgv%8o@-jD!d znwyQRZ1;BI_IjZWY_}E`=01%BlQMVr&WCR2#zalw#BBiad<4-KFC=Pf{#1&aKJW9}y@NjQs5fmG=|e%lY=gH1y!K)rbv`n4 z@3-EbvWWA~Pvuh)#_ZqK9wrr4jhk$phCP&0--IBm+NkE{0tSZmt|?aw>v)?>C$(9X z3bpsdUlud|9v_n{D-&X(UrAm)_I0rV#0Bs;a?ydLrE&qPY2r;n)mBr>RTPFz2KJQ(sH2^r5Kz^J}BZ2%}04 zJx?ayCXmKFVu0tTxX&=Zcll8AXUP%pBdvs`l{O!MBJ5+^`an@;$LH@%=3!T*O) zw#w9uT>k-7Y(y0JA4)aIa09{b3A}=J#&gWc>quXt(ZAnDH@;8({Wh~5_AO04;?DKpiGLq3GMLp%#a6#p%ZyXO%WCDi`9|&%_kZYefcw5xhm#o6e4zv zdtP1odg%9rOp@-U4`IB=3G+d>Rs1Cf z96o($e#Bc&g)^EWtm>;ndW%aZowpiO#pkQb$_l@+>#gSC>4?*mRzTUWy9dLjdP=*r zdfmoUv36jF6ryu+`c?8O{*N0WDE~I9zL5L=D1lhTY8hg=o$zNlu;ThAUWzEp@0A6C z-?y+iEj_f9I+>@AZ40K|4P&a4Ld>dZ|4a;a5$=}j4=0d88DKZ^8hA8hM=$Vg=)F*6 z;48SQN&ei4Vu;6GD+JVO4s_1%`Qv2GzsShpca^U@UFIpOi`r>1bL?XfX>xZ9G2ds5 zPd2IMD_J1GJPW8wk}f*uBgLQWFxPN;kClhcmi#s|!q1QI9WC7oFAuAKaEpRzhN4+R z*U@~7G7q@}>`jUSKJy=2EBaXZO-cMN^ap;_p%Q2Tq7MUnUp3Cp6n%Dlqc1De9wvs<#cgn!C!^bv<92owYe+O5D-&>Alh|%epw7E( z;n!L{4){Pt{s`>B9tD&$Cxxd2YLs9c#r3DMGJO6eCaSe;MYF}mh33z9m2KPlmfYQ4 zNj#Gpw0%#(>~<`Vbul?z$Jeh(`*RkG6NliLx`bIhB$)=Tp%(C!JHJgKnV!EZS(CM~NX7XI$+ z%Sd6-Nt(&n#XQ8M4Gpf%(KJ-<0dBZR9sdyF++mlT*?7~9Wna2_NTY(f+ zWoJdrLb_0k$Jmab8j=r5C?RI`86ed025<}a{Q4RdWkOCosT8vmOTQsnyZk2m9b1KG zs9@y)4m?s56UxK#>DbEUZF@HIAI_eAqL@~c6}nlE`4frKU9+>noso}f`l>O z3-tUuMF6tWXLC>O7JEPtF@2dSPbfl=8|5}9TH3P`&?x%rM}TEhYIzNUh`r`*=ButS z04-ds<{zjvlFLBN*h8cs!MeXAc^^GUbkTsT_Gd#e03;y5hGn{{P+ob_%|1|tZrWg0 z&1eBr+jzS!tG{8n>fVaf%H(AX0j`~V3gsP$YFooeIE(0p^;Mw1|40Rc?j$d0sLobW z?z@PG#~e<|Aw7fsfkew9x@05|{7?&&i2T~${0UW4R{68|ByiPDdBszF9$APO7(Sf& zV_cmX4H3>5F8leqGN6H4oCca6+3T7e^GSuo^HrM0kBiVj4~`oddXdpQdnnuU#~G6^e$2Lc~QmS>FDq!^H0jd81(QZ-^HB5t9gt z_x5YfS?G9EQuV9Coi@(K7a<%toF#}?xItoyg?FzpN59Rg15y$(hWb0@mrdUr z=$mS(`1>SDC%G!QQB?IasTG>J93}mf(te(#G1gCbbwRV3EM1uBlZ=7RX6l&PE=1pH zL+@de@0h6<5m}48k#T8rgpv@Z2jm1$!%!tzPd;H)bGRgXI_)fO>;CqJp0nCoFNI_Y z_!uVrc2$6z7Eg%gk0m_)Mg#NOzmx+@*e8DGe~eIsCx|Y<WYF%Vl!y^h^@$^h~w zEvlckwrd)1OScHJM%kzjbSunHYd-os5BW*&kd1EZw%Bog?MYW-5!oAytx+S)#{M?v5&h>Isu)q1aI z8F5`yiY#kM>kPnwy>zg_E-zyC+ViX3+booczP#At-@Eh#b|ga!i=vfZU+)GmcJosR zuOB}+17k;?UF}oe9@@J`P0uqgtx(=d|J_#lZRV(X>XeRmb|`$yeYU;ewTZs4w6VC@ z)>eA6nf`6utT9yN>{h8%0kO1^w720pm@PJ%?o zB&lREMwcm4Xd+$FXGhm=c-wVRLOZg;gwo{%S{)iakKAMu)?Wn=gtiBjm9>TPK?n)5 z6rK`d)z+mAMHyCJcwQIXftpNH&gpe0kcYDzF4ZgZJPe*YJC$p;iqu!(f5A95JYvc0 z9`@GIzf)%Rhk=69>u{;A`60x)7juxomPKpE&lhUku=(IotSB@j+lpq>q={-qalJu7 zV`jqU1jBqv?^A$xpGI)07jyBYwn&dT5zBmHp?><1nz+Kyq5?{dzZbFg)*~812?@cf zGgK2TMFcJEcIvWr*I3E~Ffmsk3I=ATHFUIEa;Xqfa-ls(c;O3BdnZ#kKJYbZ?= z`kYM0KxF;>88|T+76dI={F91@3l;u1cZ`4F5+3gE**uhO*LEnm)_av??*TIIV9=i8 zu?Wo|$3TvjK>mVr-|?0sQR*Y2KaGcaJw0k?Tk6F%E{`~Iw|=(nenB4A^oAyt8^1ik zef)-VlR~Hb@Q~PF6e>5Fs3YBB`R|GYevw8Z|5bq8e`Xa7$@1<9wA0GQl+^N78J7R? zaiv&IQA%%af6-J>`4O`(yB@^YSPI@yD($P6BH3>;3$6gq8x!5Sj+ zAPNhBNuA?&#v0}HCY!$oOJy^(Yr876k(cxs&gULNF{(tk52#?MXC6Xl9%T2Cr^DMP z!&c727EU=2f(PL0{Dy;rx4GaMY$hsqtezGxH_;ujl!9MHuTuGn2;W0(m9p4Aez1Ou zQC76mwS_$J&{FAAKs?SXxTl5J7@2QI22T5eUnl13s=+5%;B>>tnG&g=CH9>K{efLQ zBjl;aT>ZifX-KyySOqJUodD&IDT~)kijfl6?8yVZkwXrc_|U4{;B_qI2wd)%vP<3i zlt`JkMC=clCx03_f`dJONCdy9t)e0GM1^SkcVly-h6n)4rAtE+vQK8F)v*B%nno_` zrx1pQxc^$xL*uq0w%HB9 z(j5uJRNC~}`>IC+KzmgUX*~mj=g*#PomK0&r|j^b`XIC$L*%>;N~3#C&g5=4be6#| zv{rvpCvaYZ`h5qL?zB9#GY?2?deH5KPHPyjIx#Juk0KA3gm01FAs#J}@!A($VEdLI z@Dt#TR<3G|Sk&yVP+BiNThKiX-rgo8miX~e?yifQ6kHbERr`Khn;X4k6AYTTvzu1O z!r)|XHAS5qEZ;VT|+FV^rd+rC+wyW1Sn8>RTJ zdj!t><1GoP;~zWF?h^i7o#c3m^(UmV%l5}pyhpeye*>L0{i2u-9Cs&Qh@{+avK1V~ z4wfUbiSK)Ft6j>iRW{J5JxkqtDF)k98XiTxv#sjC{sg+)$7Rs!J2ZUT9ky)yuilVw7u`;~nLQR}`=y*ui)c9UgqGU- zij{jR2kENckEWe*4U{l}6h@j5_Irb`-!g}z^H>K8-@2nErYdEhBiqq50i_lrg;_z4 z|22n^@$zWY%yEsFcV_Fj0c=4{IlE;cf5dlFYWuws58!dXc6@MPHEUDGb>BPIC>~^> znty1XEZ?;PoaG$t8P5DPp9Veh84jL%Q-FuJ`d7(U&quGyElX>=j1}`IVcFr-C?sR6 zhp6A9U!AV?TwVhrU1)lHUOc}VaxRHjjsrDh;^ep?D!;&273$D~ki$o})l9jMn(#AY z?c&k?4ioWa2||uZf00;&=M->_(W{NS$pl@l8KWB!7f>huKN(L-!;P#<`ADcJv0;ze z`(2(n{xTjhjkq@p;@ed-f{KL$AsHZ)Fd`nK&Pw)%{fT35$yAg(f9$Xnv(zkU1DI!a zQZPB&Z(z>>M0diPns+XMq9qP{fTGN>6eCGub8h#ju#mB+I2&MzZvKUObR}Bq1GQyv z?w_`L6Cp}0m%plb1&V$TRD2nzbN*Etv>QEO?kW#>+~}{lhKO}8M$FIpjaz*05W(3j z(hDOdI9x^B6^-)tOh=!GoQ4c{5h!ckd+V7Sv0jC_K<5gM@;VB0xjvpj@$tScT?k_F z+CN1>(YfBl+uxA$eljFrPr%ZA#J2AC2ePo4sBd2A5730|_B5Tgrz26dI!+(c~-Kv5e4$CEnWbU@)q8tFhUE%uCHG{ zdW2g(J5xxNUTWao`Z8;Ja6dtuCR8&LCRwRQH=wN@*(g4pl#{ZkM9_8pIV#2lNphwd zV&AOFsY!!^)I_5s9X`gi<9#1)esIkh2umRa?+Wk_XlC8!#6jH^E-I@J0GL>z_f7q* zX!Z!$94T7y)1c9<`KF6zfxI;xMgWd!&|i_@ydc2|>G+ecNW4)6zW-xn*jurZ<++9u zOh!ELsMt2tKU+GfvVZw?B8II(8+ELy!qRxQjH4x?ORh^zU%fGfwmw~MnM)_-7W$+m zhb`Ze3jYm+rgOK)Bzb%5^fDSk;yz<_x_F9~DoY9YJ@EL@M*Tg$U=8QudrlHRYf&@2 z{pdqs_1Z04Kd8`K%Y(8zKjni|a@0UU)qB-V5vU!s#P$R)++TXi)nvZ`zi{Nr=Ucm@@n|Y82 zcR`2$Atg%COzK0Er0o?hpc|xBICpq~uhlWT#&U|iu zMO{>ac%MKwqf>gvd6?8rAqQf+a66OExu=YYNYYWIQ7Y*})XJc-%95EiV{Y)OX|?9m ztZ^hpZnQ(qKS8r}4^R)ug3wVy;Vi zD?VyPQBkPm?6hi3^){u4d_-3(d_8OxrQ-)FN0)_R2cvJa`-Bv06!)TPS3t2$PvsHY zG9}cB5D|R(0cdaaWtu5=ehJa8=K^Ej@h^sD+kj80=(a(s$_QG&C50`Id9dDVT-_c= z--R-~ucY22gwP9Xc@WTK3?%hOMUiuJ*w_JlC#U9sLMAdq0HFeOLnNeAr}R3^fMqDd z?;KIM2OdwwmrlMaZ&T>81D z)w-nh%D776&y!<>Gd?!#Y*ojLSf!-M0Kg3(Nnu}KE?`V=Q)s&^^_@*4y!=T46L|+2 zN|5>gu*k;VC$(Vv(Lxtkw-hA1mzpL!?_o~~X0oL(?f1m*-60JdTGf`Di$`hhJ1-%O zK7}g6pL-~E1lpb5xHe8Pz{Er?>Yq2DQ^}awHt-Y-GEVor2fqKx^{#g~wqYupS#?}) zx;*|?Q$kLOq(3B?bVgNYXlc0{7ZO598&W9-`cNUAo_180Xhr+Sa&DK~G@Fj@gHvi< z{n}=rR}0C2F)?AiW1t)49CYH4{-*Wv_3y2zfY8*#I!UamkBnbitTFF_3;m|j^!o=^ z8=DWE?WoU?vvb86>Xv{N%h0s?HoT5W9c1XJWltp8zVb_-O_@p{CK%I|i_{RDRKcYR zN_3NJ_q)$siRmRk@iP1ELY}Qz z#^@PwH#sp6(?0sYy#Nw{89#qJ(zz)Rt9hIX`X=94YtCCk2yyP^JP2r_m zh1x7RRZkPLoyIQzb+zy;91k>|?$&hCi&wLGG6M;rAuVMLg?7yV(pZR69Cy#=XXw$x z2V!R)ZMv*&HtS-g2uiFP3>u{Gg0$+R`?1#ihfHR#Nw_`7+#gIX9Ic_+sHGGH65u}g zR-hNd^4(Mq-EU-FsB^h)W&h{;Y2D%dGh@+z(1UGj9i>F{uhq3Ka!&er8YzKOGxeBE z*TL_iQs{asuc94NY6J@>6+m%XpzObzi4A2KFq^3qzX%ckvK;bH9s7rY=|F{*191M& zClY$IsD2t%`dQV|->b>RDoRD28=x!vy;byEt2CKsGp1|zR76RwdfO)9zC3#(J5Gzy zxND+=x>BNpn!GRQp3waWIbY#|rx3CK&6>IF5&G4K@jbL_=q~5CWo_9y*-{yy1>Ob< zSE}?U`!*cpkL2^KKpFaw&j}i0`TR0RI!Z^JwEAyf7UY`t{9XZ>svnJxw98C4(QJ=BvYC~sPY#cOAPF7>R@`{Eif)xItQp`X}kvL^Oj z9319;tv5_X9;A7G6%w2?oH|apeV}By?Ps1(2SFEQ;eTN<#)WP3rzUudIJb5^5vW{N*g=+9Y z+<5nm*W-YWy1#tsrFwUqZut%&GcBR~A3GVF)ZTT2zOhNITZm8 z_+$EoIoPOCyC1-E#Vm9&e45tAFCgr4|LXQguJ$_vJJ{AnK)vWaPYRovX9mqOldpMj*9tw4l<;Rv{%4^XZT z%-kP}lMHMrfKvKB8WLKE7bGU%)P#5jn#qqVf0_=H2NPZiY9YqQklmFBe5qlw=heT)27fg%XOFB6@7ri9DwOgL*7zyRTVngyfXrw@wp?$t=-> zYg)}8F7Go4o)X^aIJP=_?_5(oGhy}VhbbI#3mZJ1t*)PD#&l>fxd*RYw8`^_%QRQm zihR_ZIS2Ja?CGQ0RZDmUSSp|q2Rdrn^h}CIr2H!@%vWSAExk2FQ`p$dr zKODqzmFRyc2p+WlB!<>l?Ajiz9Q3t9eL=>&gS_5jn}qj+ss2=L{AyEX<;MW`xy^xQ zS3=h{Q!ixYxPj64hemPaR%Mz5ga&7WJ3ai9$P%@`sE0l~5Mbg^acYa%V~p2&U6-7?>dpQ5Y-^h;vYaeF0UXN!ky?ar;jZ@|M}%IzhDBa8h4$b_)QW>M=)dhGY^tiIlW z*W&;FFUrlGzO~h@8*%RO__$%!t(XJL1O7Y7vT|`iQ#Nz?Il65;&*dA<|3}wbKtvb(!UTi=D>ECzafi2qb3=zFM=V_2K

qr*U8#;A@Y6qScpTgSTZi3a=ONWQjJNC>J!$pEpNHLai+J~%C01{}mnivnZ- z021kPb--Xsz{$*l`zB9FMsWx)M)d#SAKHB`04++hd>}J(@a)I(bO0&nAnXPI+&wwn ziXksUdjCZHozh5EoxuoC@6AiNVhvz=csOCc_a63I#uQPWB8FqPJ3aMsSK$cIyTwYR z9|=XCKV{uYoqoA&C2TnOTbOBGjef4aP4jhw7Qwa>=p6yh0jwf-m8myhyj?n;i;iBb zsWn6V?k*C|Db9YhN(IDhxmpRrWH34sc6LLIj`56yj9ag6+Z5V$t<68Vf^W$2u2oS2 z4aMZ~6ra+5?)WvySFd-522aIiwPIt6kRTHP20j>dd4&uZ_!xkVPc7GPi0G!E#Fl#b znuU|Qt9O|%Ygs{iO@c0p3F9+WdHRbv>11vEvxUFmWOBQA0v+~@FE*VlCWb(le_pfQ zYR(CJg;UIVds+C*!37pF(nr8|S!sQBTT1R_9jyQ8aP`rKJxQ;8Rti*%wp9XeaO&dp zJUKT|NFB)E8c%jT4jOWlDwh8UTG65t(kQm&T;?Yv_s+CgXpbLKl85%vf-4i~&e+Cv z##dBX!v+6z3zi^tB^8X{3Z^VPe}*<`@g#j-w74IYyy4!yS?5T(p@bW7oGbRNf%t%g z1)X~(G4XC$W09oZXjP>#WYc`#yDcwy9dow@3x;&O+m5!8KO{Kqx(*Go4)G`U{eRDJ zA;bNz)gzdj^8bzQqPK*ZrIVQorpbk{}bl zYH!e%Qp{0i=yRIW&0ASAfTzW6{*2$-r1UqG66_Aa@m@q!^^LDI!&a&E1{7Mt4wm8+Due%+d7vlo+}6qL!Ka1we_8 zw$p%9yp|q=LrNoy(&}LZA$B0lhW+m4>D&!1|xANStfGOruW~ z*LqVKQv%R*frc6B8K;(Wf%zpZett4SABR zrbnLcv40VK8$c|-vWMFejv3du8ZGs}Dx(x$!s*7Dr}7QL(!^VI;8jv172oSq<*bdmGXj1_V;B^7bn z$V#Oq8;=a?aoW`zfoX=~rfRaMgSk41Z*fp%kR!|?soVEk)+&6K)4I)e8g_Toq_ZGXA3YgNWyWPQWb8)__G zOubASshwz*^AC^*x4gEAxc`183Ag7xMq9US^QBCjhE6dtPOG{vLj&=F^{#TCu zA!+2tG@u!B;sp>$s%joD`9L*l8-V^?m`tBjzE-@qnB#Mk#aTo3k%Fi(&Pmn~}x)5MVJP7&CjqTSxAAD%3Rb;Za%r>7wlsV0Ijs%_gZUX!Aq^j zz;rPTf*O98fVB*4T(G7`MR7-=ow;6~_6S$H^xf!;3J47H?Dc&Fq=$AFb5gjFn9AlH z0?1F`kxJM!j^gAut_yir|6u92R*ch&= zbJzl~q6^RgVi1(xyNQJ4r2>S$-wB^P)M1l35}!NVgP!wfZG2m(Da!PX9};W#O1dg& zZ1-XhmCN7&A6^gfM7hd=ZpZQ{FOLIoA;3jv;@L)--|3w!>^rqk-&^E-rpTKzBy*?>@u+w&DA%=lDg>*8 ztRMXRAVl($3N4vEC-a<*yzGh<8xeZO*4#nawxEYYx5FgvBXE`!=eQY9#}qYBgO=CN zK^S)j85W25RRY+a2w<%k?8-G*7dT&ywJ045qWo%RuJCc%mRIc?^y^;UoG{PeWE@Kt zLm*qbCibl_&`w)xrC<%x;%{r2#QI3%-jaVO3rBc* z=G3+Yj3)H7Z-9S65)O1m zkt1lF4N=2Gl;+uRho+)7LmV#oWg^EI0#e{18`-(5=o*@^dUcKuIUV;%NIvCHP~F4| z$&@c2%r~u6SHRHMmoWFMpJ2C66q*%STfE`iIs?fS%z z3@D^A&iJjY%u_LvNB%$UUjOTKaOS4?*9hj!n58!6rc?UKdzw$S`l)=a6@QJ%x32vU zs71b+Mvad6shU+Su#UVPljxu=$wA^gOS&;mV&?jG4co~(fo%M@MPY^XqRK~E6TNv4 zhW&DCn#PztOTV%e&9KpY!onau^1zt4aV_dw&ibGMe3lz^@lh9fqFs7lrb0QBWjq2A zGk2C7m&BXQFO(UH=<%O{^bI)qN_9`&rxBr`>W*4)Wh`aa3G7bmdHC~O)q>_!5!#~Z zlQ+Fc`xpVN>H!@T1qD!mMUxQ`-U33AttYvhk!;1z4#_OI2Le#QRt(zg*o)N+7`Ph>$!DsRKq1B6X4pGfrk^ z80-pg(Vo+sqTQN)z=(u}O>U&8C?ez1R|>`bD2I7PupZymCI_fM002yFtEg8_7c|DW zgefPmu~8NR78g{gjJs)J7eHRH>4a4jf@XR+?&0TlWv9`)n0Eh8FdBf+yAgp#kPHtl z&#us@=QnR?i}Qc3(vgV)p`zU*4#o7(Ci%K}w}Y|$i*Vp~I(;2JMuz^sJNbg2x|C%A z$$)by@3{ibQdZ$!QUb6t$@k5#7gz|OWd@Eap1%@;_pT*9t_^sJuhR^nVc;?SeuSRD zKB?T5Y|x%2D$&n{Q{)g3L!GycED8=j(X{5v4k`XR!huDpR<#W0&*V*?2ngUM6&~Q; z@fR#=f}*c02gxy?J}!r>hf*99Or6@T*X}WV{z}%iKpSscS55sMfkgBJ5cB%`ALO91 zz|A7x;s5Xn0G_x&L*V4K)YmUcI%%WYbKrj-)5l8rCS zb(#f004&s0C0?{<7}lyc$9;0D?R=VYhF&J)d&6E=&qJ1=@_=(o4-n-uHZ96E*?_+; zCQmOIX!8yx=$ZUgc=SffOB zWo)xC?T>j+XVH=rxJ@~`6z7JFS)VzTn)RQ@c(VJkCBq?aA3;=3@Z*T{A`nB zMfR&wAF;v(auh6sr!GG<5J)5qy(G?gULTXjz8}Pqty+I2u#dCkO0p{TZw!m(lKdCt zA2Z31+RzC#>)2<~rl<&n&VF|nxQ?X}(<+WaHxO;60;id6UfmW}qT_tYFRkN1emmePq(JIw(iGZ?` z75k#tKuf8izR#?Vs;q8|!A(q{aD${$wk%P;jV_CV1P}!!i?Jsq7BCQhXdo5k zAOeh=C}U~<$}Jx_i4%tf_9892Slr^_lP8a(hu|C?NJ8)QEXF3MV4F(P0|O!78H4&t z7v!BLvGbunvQZH+Vco?*|5b4&kTjm?sH)?vppVu>FFL@=V9vPOZ`8gItBt3aA^q1x(`cv%EvTb^`AZu505qe zVePzuMAy)w4tA*;AlI5{4^SmAe>vMFfdgp6=`C=NMSq-3040;x5M)Kat4Nc7S8cH^NZB-T`heBjDSBOs~SgAeeB0(TUt>j+$}mb^k)Ct}RmpVJ`)I{Qrvz zpylg-J$!NC?RTEz_+?&`=QQDu7uu1>v^wsW#lU-K*5FZrR0Ou93x$jQIP-{{~Vu9{>*X1>G)6L!frH6I1{vcrTO2itO zjh&S}@mjYA4(&7s!5{f*HWjCbF@)FK>-2~9mR-+L9E}rxS8K-c>FJO}-U^ZEhbW+# zVVSdx?>$O8zafs6XsuIv4~4OVwzxt~9ye^%Z0YLrKuGkE1ntz+U#F|t&D3pL`n>zt z@AjZMqKKWeln&F>GBigE85yYC9224&nH+VIr@K8o4J?Pp_^z>E+hg^f#LhZ$uH;i< zF}D`v@pQiur>Bl0^asKcahjC#4WuDqDy*)*6E>xD|I|&d4uO!YFs-uS&q-w90I>@Z26O{ z_r^%>&a~>+zfm9D@}6Yb8@Y-A77cpTA$4pRbJ--h7h0wQ_P#(2vckCS9!Xn!mS*NO z+M{p$yN~{xWJm~-P5v{4he&n}L(E=+>32IQBHw+FM0kJddP8mWP3= zmWC#^{(?=J*1ml_ow*{8psVvcO~IN2EHe&9v3C?5YY&*K;sOHckyb#RPW7{xXvq^j zPTnDxkK#fLwwi6Yqb?e)16!P0T!) zk=k(yRm`aGqNc}^KswMqJi=8x`BkW9dA<@w3;`B7CW_K zLlW~U-6rkg8FZ&Zi_^)e59vZ)X9M$Ik}kU}*6e{ic71&zWs0&yZ~RdVVD}}D(kaL& z?zEkJJE>P%RD&)qS0ido#0?mxzgNEKZhWLgT}`J*chM2vw!wnBd9i09TCJ-=fN&7u zvdM+RwD%tuqpT#&-auo=HQZ4BAC!Lgvs~cEjo<&*$S8pn8VsBSFx;M>rHenZru`m~ z-;Da6LZ|Q1qfXus{VyMZ?5MZ&={l2Pp#PKLAdC|qf=*50+r!QubE*lSJXzUObZWR5 ztyG+To}9r!39u)CnUm7e>-U8+=ozeVizVC^A&%$~k{M*}QQxH6zixncdt2?aaLl5+ z0TP8}IpS>d?khNK$7YIeX~rGdG9j6mK&h^#2EBkdOL;={V;m&7o0*xIimxvC{=SkP z+1JY|vXn=Wiuf5&8sb5M06zoFT|nzNb1|Wwil@rcsF)VV95K>4oXZIa!YUT^cb&w`VRS-S{oH;wr>>;u;H^CW) zck3>;{py*0Yk^!#UeS@Yl@8&I)e_Cjg1b5OPRo_+OslI%Mr(yl=AHvG;&H$}^S701 zze3qkF7^6neaiLbE)NLOx3`ZA&d!f5gEO=_jyyW|JAMN{b?4;HcAVsMKn+}RPc)Y9 z`1#{EGK(tjG~AWJjZwx>g_N^NH7-GHmkFi$kC}-%!+Zb8Y>!yq!f2LTIXh{nS6jt9 zsZgta6iG83G-B$IN1f4gWqOyx-^fx8L8w-NvKyeX;?i_x|*y%M&3$gH6OTTYULB=dR!}9>aNI zRTDp<2q9RDNL#7SZLD3_L^12L7Gj)PT*`&2*3xzZqb)ehl>|O3IG4GJlWzP5vywD( z{4xSoLWiNU8(fX#yv{Z`C2eC-sAMF^!pDT0>C~)dQ>f?Ak=$|@Ko01yL=H<1;^Z-U z6$V;{9mMZu9H{Eg201%TWsDTxt*jf&t3y8X^?Rp&a5EOg3;E`qnYy!!=O=KLHZj@o zefRG7RES8a^2hg2WzIlJF5V!I96$#4ql%q$vyJHkVB+#x`u5j*{9Z!=(z;h<>zEWS z_U_o{sB3J%?Swk=HdIyZ1b2)7)*JNggl}mKsNj&?vv*|GA`5{|QH&vk_dz_q0fBPe zs(p6YBFwv=LE3EMziL(UqbNPE$(==NY3k!#U>d5`H#J%8{c~GTJOd`k{{nG16TcX6 z#KEb+_pMEaM6`2l5RKK3$nbV0;RhhxhtH=26QiNIDh43vriDE5z=+p;RYBi&0&6~i z>hWJdO9I&Yzrz(Zj`t+sX;P;s-+iy^c?dTcUKj?FFfm1?1mwUNz!c?XO&huddEymX z;Au<<<}VcpZbU;@I2C_zU z$QZ!m6%p|^^419Pi1;7=!o#zQ@^J{2OhCyjae8_tr!PP(V@>W2tQoTv-B>X8EH1j^ z&zHk;r`}w`8D$6CuA9ruwgq%pmi!9UM{#3$v}>2+19`lr60r4k{i}Y4;BodU-Ng#!9f$ZAnWi?wdPE6SI(y& zkkF1gD%?K@LYzx{?kC@TSD4EqGl>2UrJw%(nMA7}ri6jT?ik;R>Ik2uN<6G&dNhZ1 zAJ5U1Z>?)zX(R7%2Q5QFvy*qh%#(oDcU!$Td73bCWZ7h0WT2lQ_~lJFg(CU7CEuV` z@pAJ=I}egu=0(?>?&D&115>2zY4rXHa+@RHYa17MNHP3_mv~r=GX;RD2=LTgH~vpR#o#^e5210vVp55 zNebIsFlE>VhJ4k=+qA$^~MEFAc)AlAr zF2s)W@bVk*KPguI(>{H&eg=pb5QUwJ<@TrUzzp8B+z%I=Ltc7U(Y8V*44e_optS`&BIOo=3wx23H1PrlTu3Ih(W*l!pjUL1^?|}y`ufm64#|*gN zc?InXwK#$5uU{7f2A6=3m%0Ad67UZ|CLbEQ{+eGIef!<}Yak9x1_(6HPD-8^N7u=8 z`@ZIjf05wRiHTF?-kIZ7Ff;J=d}tf@P6m?>ti%QCIR|a_%0`_@VDDSt)M2h-np$jT z!zb7V+*~XYuQN02NH~I}HG}A*p~#nDFVF}mWH~wVKHV)tVG$y?%lU-Ua~F}A28KPk zgWnl($P7AC-%&Ed^p%;3;XZyiZ3bYo$ZKIkD(?dZOCZ+o=XXXQ9dW?Np4we@&t!UO zwpbX_h_C0$e-n$`jM;-h_}&=c_Uop*PmeTpa%%`4d1tLQ8p10aE;gyoYYu19C%fp6 z37$R%{y=M~jid`IR{ilQp(_c@{XCtT@S2+BDyzjy?$rRG`)i82TS9t(vcIsP5|3yA zWP=pyB}gO+pz75aXVHut95ZO~xjhNSW=EoTOJ|9PoUmY|efu+Lk7%1jc#Z7Oz62c! z2-*SnAJl}+UwDK5@mPGD%dq~bN48=WhJI%*^)y*VoMMIpIT<(bhSB~$w#HT|4|7Zp zOFcG)L+CCz;WevL)nY`b=v=ouR#)%JwDbvkUtTQvjxu8)%hDLlOWPn^b!+EC=a)Jf zEPOb<-$u+(!AMtbe2S_Q}6d3(jY46E{kD`L%rc zFcOgZogBqYCZ<*9Po64-q9qn9YpdBdS8+6&$}3HZFU(j;BOx(F3(|H7Cw#WY76nFl zw#-1p=^T1Cd&(f%6XdO_`s!LHqM4lB(Vg(^ElW$WdLGdvM^;uk3Yh>+#FDG4^RQ9B zo;_J!5IbOU87HvL6Z>Im#PqV>%K!XhZ4BLDMCZV}5NwGm@mljWy zAC{b;PaY%Oa()ClD_#;4-mrEI;G!oxMFe{1IM-nj1A{+wLOu zASLovwF+Yc^=H2xTBJp0ltlwzn#fRlN%+(V%-(Jl#e?zKpQMG9X(~w*)?z_$sEz(iFsuOnt>Pr%{q2p>5a+dltE3dZ5){y-ve!Y2H#uBw)nD~vodqU!Rn?aD_D zW^tKcIKx%^x@xBzE?=@(Nf|GNT!nU}xF|HVrFDw~9!Ijm4RW9bfM`VCyx5(9CLs$% z*l7rSYkQN6CEpZE{`-f0*Dpq#X1G-i@d5ezMXfm)@az0>*!1Sh+KItC>NVBz|GU+_ ziUdN>bim~S(6Su2Z}vqZ;U+nuCwXGPp-O)D<%KiG?{9BBzntIv0BiZ+7Tz=__zIaA zwb;0Jrugr!h_AS-jQ!V+ZC#u%SBU)`F=5VM&Uf`vC->^?lTMCS&9Sz(Qm0S$2`~8pX z*ZtzPi(1V%B>g=@GW)uchpeHxfbr~JzmqU1L&2xR3)0q7BF}DM*>}&euuN?;emCE^ z2hFvX>%q{YLCsP|ddI_VF;Uc3cES77cACw$YO z|BqmilI=+t$-V8|OgY&tH+P<0X#%~dbMlUrVAiQ)!wE9rsAo=eBq zmpzUx+kcNfzD3?$vN=b1sICq z2j>Jl0CD_fZ}Q>Y7Qv&>?amZPbd|)zLoq~p9jX1La@u-bnLy9d26|R@{+}pc#a@xV z=Z=Se6{la{X?ywb0f`5&`1eNWb-v|>@Qb3OidH+xY!P5-~TS>TE<*}!%t_#fO@ z&;3yWd>q<}GmNf4Z?I`vI2gnKD@yVz&ec4~i_N<)6EKUn|a~_Np=lubrgu zBxV67*fQ84j;vh^XhbsFJ3Zbvdba3$>l6FnP}nyf6Y5e6C`J(bto#g6nmht zVtIZ3N%5(CNV@>A2w-zwy*GzBdG($ zZ*z|$7C7XqxU_@%w;b07>~t$9uOh8Id;l9x=6;@|~gzl+=oPVdR}6;Ysm z`E1U0Cscfa$D2t#k>Yg%NwgXOUt=q*q_Hj{d-nk(eR;faA zOWTZ_72B+*US@}clT80%j{wnDvINiqlBl2?m?UIp8xNi93bwTytBP$EPkfB#X4@IE z)C~+3Glka3U{;uUIE3X|*dUG#_``_PhQ3t#qoW-HpL@WcWn`aT&7VG@Sz@-HKR#Wb z$}BxxG-kIRdR#XWzR+btjZ%ZMwew^AL)X?o+dAU_8?&=;L87ojkurdG0ONv*^}|Co z;8=3E%K$;)zNT3;g9+zn4dT%NW~wpyE7VeDJkQAHr`yW=G^bNTQyZ}{dv?S4-Tk&B zcX3bNWe4Z`-LLDgTxuC`lB!7I#l$!_m@N*cyODz+ zWOhwG^vR~bQta^sg92B)IP=i=LrlHv8+9GO5>mo0Y;74b4t<>2(G}1NzNBFx^;@_3 z0w$Rys=KLsqs#jXqb%?gWF(F)_rSFkZ5bsF24{yKvXANvr%hd(g2080jK6S!ys+5R z?#IW2jrNy3`fii_s}bf8hm&AZWav%H$^cla0p>_h;N4{0h8G>kPGDLk%2)jVYE+Ne zEprzQH~L+t^~0$jIbD3GgKs#2Lss9g^WXRX>^0Gocv`EcO^3zrY`C;m%1-b z;KuJ60uGKrS7yJ!deRX5{g)3u7-4n(rt;Qo8OfOdc%Mi}=A3Umh=6PaC~&=r)wT(- zur(-oSr-=e7N$u-fiaoG}qFB%21MW{Bu-YTWk00&98J|2c z0ZnA5sm_D-;*~O<+Ao6BGK$zMUJ`F-sUv_JN3$OR{ZDLGE}Jw5Tmjw+{`l>uI9W1} zW|X6AQmg0Kbe=dEuMVdun`j=)KZ?{U@1hRLR0R8W>=&k(++_kd1%UEOWTUBir2@NNf+e*={MLDVZ^rH-8G9+3~&L5 zW{6j$73a#*GDA$sGMEYii~!Ix;9^E#Z?wm1?Qr!07BfrZP8Tqxu#^LPU+|CwDY(kP zyd_qgqGGOnn=fDr1uvUACw{|SyGSztkpdQPNW!1GM=^4v_a6s9b{UDPi~jQ*-W*Mr z$vWLxT!dMPO+BQxCRMPI%K4tua)3(LruGQ#7bL|&a<(9XPgy*3?gax%s8B8@Vx^%? zW7BFaP=bn-UU5&PgF5TBV!*;Oj0I-N;Sg0gliEKs-Ru~~G)QACBr13}XY&GhqxFgo zj*gPOE}extPc2DxzZU_{hK3p&5GobZkx0(zz|O(rKw<>Sg5g~eMS#Nw3t*VwxKvjc z)1>dhoffsrjX};|cPn`2Kf{<{I79lP;P*G~|4w6ON?*XIF#}eJ%>M5-@PYFGpBj6W z39xFxy&VC3w(R+a*F%wCGpqk0c_E_#0F-iS%6--ZYde4uv)ws#q7khSNiaWQz4z!Z{|&`uP{QRbL_#G$^kZm|+*l%M?<1AV=)+sr8o2b4kUnCW(-_GAlOBK}cHhHf!L?HlfQrE4*W ze02dHEKio6pZ{8iBjT`;`r>34v7raG7Lnh6FKC!@oi*Y}x43d3Ia< zi1P>}Z`yVWk!(jAZ0JFAEC)7UMlFw2`5Xaz+Wu}%Kr}1%UwXZpLKforx4ikk{ZDyo z&%`g>t@$Zr-M7)`^L|l5{=0#E<)M)E$H0{^glBi;z>F9Pc3H`mM%kn(3v@Lc@(5q z6A+dFoKj*D^%wqpMYE{b-jx%m2rw*s3=p_>wy?v&j+u=596IJkGl_H(_jE)OkaW5@ ziS5DOCuRD%#OWqqPvL1)CXmHJ5hazQoQID9rteHjECPXdWLK^u5E~W>#%6)CW~^ zG^*dTBy)i|Jr_QGWG!GA+Oh9O?XVHI@7`wP9#IW0G82PKhkzkf+QpWo7iZ z=DQQZPFVs&&h+wR*3%DK=>!AZ=DMkN$5tV*h1;HDPd|e4joI?&&#<>b9{2sJ`##5a z@9~iL*_R{N^(+7U4V=jF5cV`1B!@PvfZnEVKBu4W-9Gs0H?DH#ywK~UjZ$INL;g~n z;8475x49!z$1Lmr`{p$vIHCS$MY7cBP)ytDimgb{TJ6Zq`Nr@ZIFzYe+#^e}7zjhZ zQKs^4`M^47ny!n5iPS?ot0ytq)}Ppg`2 zc;NJP^CFuaoK1M}MnQXrDO!fRZSJ#V*l7nP%`@H zq`x?E89^Y!Mvl^6ebH5e>5oMirkJom%|e-2kM402k9w7b;*+bc0!r2dxp?zZl?|0wQai1e6Rzs`R9{J% z)EI$vD6K~V1!>C>vfEPG`a-EbW&h$A%J2ZT7&7EGHP4F^X6sRmoIF%C_?3RdF6=W# zf&0^P5>wcAxV=B$)yuc8yiXrqKf?sy9fsN1TZo$j?()5wJD7YCvOR^Q57qDP!l9>8 z=iNwL<>CIN`6)k>Fw~&#ts>nc*{JSj_cpoJFcLL$HhFN$o9n0h2TM!uAt?+KF19jG z`pMyoVgYNNClWOpW5IS?j6NBLGq{`vE0D13xw95g_z2U_|t*i`_ap|(Y9Pkwso z_3PKK>sK$1cGMtjFZ&O;#!#wsj;@6Q4Y+l|aje+zdF5*A&Un*?t}gnL#j4E<*|B<$ zPBO`DYR+uu*m&7spHh`ar(O@D#2-|s0jTfx*>_E)O1)mIxqjKLUW*glVawsFU;cU4 zuv{IyRvR%?v^-;(!!f3LmmkvqR18w_f{b;vZvJ52sk3w=CADi#h6Q)*ZK@WQ7&?d8 z867H4B(+jQO>J2RD)W0aD)3m1gl$bkY(n6LpBVwiuo>y3Yh2EwkWi`*0Zt zd>FLa`GdIZZ_=Q**nPQWg3IG5sYEaRNi@`0rDqYp$gXz-rC|DlGZQ2s$fhOOiZcRG zx4`9ba!A3!63KTFk)(AM+CWw(kfQ3odr7vG2`|y6ZRW=^1;bI zL;JCDaRa-_sF+}}vphUzb!Oit15Gd=8sqJ&znYclq=5@k{+=T<4n4ECD9v z?7n79t7B&#lqguf@YXL6n}h+DK;AV$*Q>(xv5E;L9<%3>_x33WdU=}i{hCj zMyuI_`9|JVqf9%rCc4(hW`SuL`z}_9*?#H-7qs^h^`tXlLjPzB8erA3%|=M;Yj(Zn z;^$nzn2+QC%Xt#(!#+=agYw|8WVgOm;aeAIv;#}u zMfp9Txni2-24`H5lauy!(t-Sg3^BWU_cy?oP1UNN@qLw+4~ddF3cxWp;SkJVD%M+P zY|*HY+!_SO14vsVN1N*Lmtl zD3A*ua7wZ@-?F{G(7Zb{Vx6Q^#HL3M8yAh)qJ>vCt+wCMX{HA*ZwnL}rNzvOR#*BW zd|us}6;{qTk8H;+WXD~@yh2V!CfT$s)}r&8mdc;DOhsbuK;h;V@nE5vn`vLI=v2xD<;mjhE)vJ3{J1IENK5p3qmZ?` zQD7i)niVJv2|IkknD#4u=UX1N?Io=ZBTgkLy3lS`*dYg0&s%Oo9Tgk+b#=oQ756Vq zkS*%oxqRCrcU|P=iZ_q_v&}LpG@gSE3|Bw4$qff| z9lK)}4FjVJw2=^;c4aZ^dVI)=i>Y`6f3Na-eBk=3O4%vhv^>ya3t?tPa@rI_Aoq8B zUb8@}nES&hU_IfbCaTAA{X4gA%blOkdgt(d}#!$VXgSMGTW>PB61{CYy-;%ZLsUj@EXaJ*}4 zF8GQKj$Fba3B?gZhO!=Oeod9f@7#L*NFa?rijWgE4;d;VY`amT@%(HNw*Ba*4fV0+ zs72cW)T6pkrD8(D6Snc{?s#a!vV6K+WvC|{4V1Knx*zdYIDrD+POUcfZ;0eUjXKnC zWeS;lQ~v^$+?*rNw{P9I2Sn0MzH!y7PE~}8jdSL4(b4;2w?|R8zdPeL`0LhQ)wH&} z+K0h1nR^KC=gdC!nPuBK5<^d-J=i@c{)q|^Q3h^M{?3rS5{*Iw<~M?FF?b6Lzt1?; z^)?_YX|`UVDYY+dsE2{Hn%?I93Tdp_!)KOyA01N<$=P|X@fyUD|#}O=K@djWGX<>ZP7#knoXO#ngvCZh!LNsqO;h2HQ(%ulh$kT=Qxs&Z;65e(1Qqt!c)>+bb0UijiknlX zf)g(_U+^r0|JzPINnR44$9+$@H8}X*c^Gz3`cZ;e)a-#-i;7TEx@`%DpMLbk`|8fDEqc-ZWXlgSa8x=KeU>2D; z@?d5WF*yF3A2Skk$g~6%oP@NUutk#-r>{@^F2mert(u+geUQohoSuPqQq8)@?3|o) zG@SmM;e#a8Lc;)%b^ZG84JL6;!8AUa5NRz)G8~*vF z8Y)b~K_OepD12jvCvyLd%kM`&7x+OocJ{ZH1xL6VUS~3_L&#=tD8jn73=BT6*435I z*w~MoT0q7$)>mJO#wJR=aa86heRaD~lgXTj>)+yOAosz&0Raz!At`LAT+MEd6(wye z|4!-g-=f~igtBTe+rQ1;!c(j#Z_u1Inf;*WxfnV=h*0b(#itQkf6}%D8qa#brEOR| z6FYdsJ@AdQZ-xevJ&-Y5D}7X)-ND|A53(E+5w5rRZHisf3!BdZTtPZvS`?i5dTeJngd+V`L}> zto!|(h}@`I$8Gh`cIvAQ`LfwIU*!tPl@P8{x0=rB=n+}=9K{i>xx622G^?w4FEQ!Q zwNGegdKS-VQ{F!E1re4g6vBP<{K>yw0K(#n^@Aw(92XqZR=d`@G)wA_R>OE#UN~p> z1%z!Es9vQ)F^-sLg?4sx9l2cN!b}U#II^a$U*xesa$bP>X1g1MJZOf4ck6QXvd5tX zw=LmoML5pVB+P4OqPJs)WrSagB!RU>lWYml@&l6lt<#8L-cyd z`Y#TQ0o$_@(jo{hC!hX}ee9dOw*lcGr<{m8^ z_4u<)a~pi#qY+skCk^pTQt~Yb6}FeA>eLfD>_YbaA7aA`#=;UGN_4NMO0;j*r?xZ4 z(fDHjbi>}iNf#R?5+qpY`SxW=kQRS`SlLI%a8!;{-=YtM}*|N zXneEh=W+4z5#dc3L2rAoNkjBEYqY(68sl#ny?#GmPE#d^j{To)-6egTB${LIJx;E` zl`ELGkpr7aGra3$I%;_cSdbDY(u~^>?*4%S|JjPK2O5hPf$Man*O_9uhxf zW|4&F%t;Hh;^M&{Uhf3 z`X)Wx@6DwM! zK4A~ick_z#O@l_&+kUnOaTa>(KYh5|I#A-d;8Fg-sn<2(KHBNC?bOUBTl2|7?`f&g z!IBv(2G|u1bSa5?gp~o6BCUfA%`*(U6n6s@PP=1#OQxX}Sw3M?Y4FFv;j|dMa3+p~ z+-ip)&!E__#PW^;;@1)56)arN|fTtTwUV-}D(3K0z6Zq61U8`Cl z$;M^gzd7hZ!f!S-rzYidbiuKlhUvlvxCiO-n8=|sdr=Dmd^5>nKG?Q5QfOA~7i`b~ zLB{4xeO3@V^;yw4*Bq!ss8EOyy6?5Wk9dRc(hjQ1El{Gpu*3WEon62-R8h)X2yz>& zRvCHWF7pKkTy#%mN5rU$m`5!dtN>Z@+n18$;RU8BDMmyn9 zjV}A=4!qYCm_y*X1K639lLH8sq0K>V622`fM@14olM(RrQD2SrP-HQ0Z4J=?F!^IM zf(J9o%$URaM=2|563vouf%nI9nM=Zx9$&1D`{M*~Zs?oMJkOq}F&X?B$kpEcmB{dO z$F7Lka*XZIP{)R^)JfLdy6qk>sL>iletqTsenEQ|KsS{y6bwhDpy7-ypzuuxDaMJH zX`+#UfX4U|JW)^}5ZqAriC|AxPBj~z(t@}J61<_X~mF+6NC877Db zhxkj_<|5C+IrI^czzT$)n!EfhBc?^wW(7{YCOH96+`jvLRjnHSXm$_+eza#dsEy0m zpT4PNbjgs!T)K78w=s;6hA19u_I5wUkC7C{Kgu1X-T6JX%a6$2a3Or$oVGJU86gYO zbqQt-%7YvWxty;flpC%lAqQ(1IU2S&;R9eR3gh@LqiiV{lLQNsWObYMUstG!vMgdb z62v5H>5jIC8+9tZx4U(vr5nL5Iz;)W1)NZ^?+!rZ&(jI0o{60Zv4?zKuo`anPyo;K z5PRHPYHT^V^B@--d3P|Lgz2|{$jFirY}*wkNDW(2W=>x{T@htY-#GL4_>_=lfQowh zH$0_TQ%wLEU-sNN$19l~^7s+WQD2HPM=7*{;ssg}{S8wyvv#H+36h-2yc(X-A*0Mf zYKOj`Icf)ZIWhaU>Y2DHRwie|lgFuk%10UB1)ci6^>RS$l)BZA^v9*$ES7q{rBRJ_{8(`LXl>26^lD598;4!e|6= zLMvORCRo1AO>^_&mygbG<|oH5x-2LuA)!5Z#MdYJ}g-?xlJ{H5# z#Zq}cZb^UKg4?{zoF>)LSC@EzBlNpFMP<=LHUcaQlV%7Z5z)ZuHra>iTj$F|XJFT< z7G#xv|f>d0&i7YCwgM*6=VW%EbQxr ze!+?T9|c6{Cb7gp1{0%CO)|ys+22bYF{q0=M*^3JPK^RJwl`GCjGh`V5|AXwk7tie zlJdM=o3tM$NHIQLuCppxt|t1@3EBBl6f1X#+$3#^qhHP(3Y_P}=l$(fTq0coF985FnVwWA@02Cbf|7io+RNvG>a*}HDvSFy{F57H*f z_Pa447=4N-LJ}hQXGc0U0*>v5f7JKl7;l>gje}P0ce?jjsD3Y`$-Wkz+T~WNm|IN{ z2t2oGnWguJffoj#$lsVQ^ZIp`Wy_!dob7ERX1E#Et6djRHFZUSV|WR9|4 zCqCG91Ob4kp`B0y(6LT~Euno(9Eb2?6OiN&d32wBS@8modSjtR9aJy1=KhTzruZh;IF{yvsct$fSvI0 zg-ao>!G=O26E<>I?3>Xq@72BosOs`5fIbx*KBnUkBk6iZGW_EQCLnvd45;*2tj~P_ zW-T>M7(wdPmwJE;xs3#L*~JAXFn4MhzM07R$s4Mth}uI!OdJCAg1J;8;Q}I6Rs3r| z+G{^>Ye74Yc@~r^s}71^%8&-&9x;(&n5gCm(&3|FiN~W@Px8G6;;5uZ03?1W>?(Gg z08%sPFTs+!zHqb$cgLQdN>yBdvhBa?qQ<`;*Nkr{M1<0T&JNDP*xFkA{kh#3$a*RD z#9!8|AXyd33HO4*4T}v+&plis&he*fPkvqor#u!&4c%;e)3^=qlVn*wtV-xIB)Ke z?nei2KFF2fUxmdvhS?X;qk|DgvAPsHkXfcCf`jix35+q5pa~h5C~Cvc<214v|KQFe zM)m;Yhf^;ycxzfu-JT%s0%AN8+(x{VrWH7i+uknz;Z@@9+_s7gFa(@{UPVff@)6|Y zhmCj%_u+%X;PBlhLbaT};#+sbpVx6jJJV;kFfL|L zS|=Xq`2zn%tR(&`x*cQC9(0Ib50IDSdScyc{@izgE?fw`jfiLkZXVia)fz|m6|HM5 zlil+2PS2wMvYoxJ{=(CU==UJS;9(^YtcY!6V@DxwoeHW{V1Kf<4khaAV_EH;rG8X8OVz13riHmj@ey3J7B9dNTXhwn2-VT7y#y8TPQpLB?*!}JoI=7 zu=<=$oJXR157QDO$yA}%VXaHW(_Cy6UGxYtog-d=s8lK_{~x-(0xZh4>lziM8$kg< zLO?)DrOOczq(KQOC6(?jr9rx-rByLFNc99&$Z(b`gyQ`XjY6#NVIdp~ZbrJa3a@LHp?D!1b2<(`a6VD=iCvBpc;`V@LD z!lxMy{_+&MDrL-qsJ1E~oU62m;0vgqgyGfw=k@AY{XbDj5C^xbbrQ6WeRe9$*rnV1 zaONK;T2UYi)rc z(JdJGQVjFzea^)nt--^R-+lAl_A%ZTQz(U5(Nj3(2}iPXa#8@3Y9lHRmp@10q8r1SPA^A1yVnS0lpryXf`If92-~I7rTa ziWj-f(01`0^*nv#_^g@aeaVkavsH$|exsIBiK6`zt@n0|juDbhCXZxyE<>OODj~+a z>0Onh9{XT4q79+Ks-N#S^fqCQus{u}np{5bSea|_G7>-3mfnZ@ie)I8x127PjLQWG zpy)#}Dv}@kv{P_+{Uq=7d6rUbM%UW}kA^q5epTM%haLzx>I4kyDXQN-Yvg@a{f4Xp zQ{|uJ&fjgT-{r?N zv+yO7@lEhNA}e+=VVD0U32AdYu&b+!^+^ejEIl0Q6u6F%5EE0!$WXKozHDu^h+$O! zIMTUb_P%7|&vvp!r+8}v7~pL7hq}+6mrG?PO53F$MLn-xbq4*SPN%osn)!1+W^&kD zB1+ogSC3QdrQj9t5sXa`RjgFJY#zq3lw|zwv!n^z4A&0C5Ydm?O-)U;yKa3Sy}@j# zBLcPkxq9Dsx@t<$i>E5@9e#fCrQ}-Fy)a{z=%4_EVFO8Hx_OxjmA0cmMe{0NYWQMOp_!_3phO9K{3 zM+dtlq|#z1ofNqN+af3hw!NIE0u3PYmYOw<)^FkGY2nPS4Bjmq;q>wGfvU0DpNKMn zXS(jYE-UQ7#(_xh57>y-Bp~ByZmqRiG)#YEX~*#`0#;|o;jNzDEs!v^^68qQP|L$9 zhUUZP%9NQiNW8E=Y2|ox64-+c36V-utL*n6vaO89|Ic*j)!{gF$<~X1=z2T$r2BX3(HqzIe#^LyzIYE5Q*&hTpdK>uEtB1UZtpx_1<4XAZO9QVX~a0?3!l?fnU#id$N*Z7 zd+!^|a;n>PJgqB_t zKURXG_~?_EkoNM4)4Y?%($}%v>t!0^OZ!z>e}Sr_>R+H5LVbRfF*3sPvtSIfd6;7` z$f$awe14laNx&6aR0d%$j4?p%4U~i^&7EmmfO1BGqE?zWabJER0962fA}_&DgZ^Uu zywQ>+Ikc}YrEX(T>uKNhdYdXwQhPda2eucJ*+c-)aGq9bCuihTDyf4;upn(+;TB{^ zYLH_S6{0#bM2tl}zZ1ijKRX+uvbEj9d^8sU2T5HA?VQK4&oe7Iscundv7s&Ek07n{ zD>cay@9D3wd0%Q&lOc*ne+~~b22L(*G76{gnf`5ZYLz!4@9ep9mO z!yi<&?GZLYeO?k8y)DpDc*`|g*I?=V9_mN;<^($E?W1&Oz9=Kn=pknT#Tj76i-JOm z{79)!!?cd8cX)`~Ta&Np>ZVzgpGf6rWj%;ICfGs8|3F4vtEKS~h7!DvIU8N)YVR|q z_8Mc}g?dB!Qx^#&U8LBKMSAsUDQyg@0H_psoDWdD6Sil|7jd_fA_edVjjoy398r-CYo$t+trK=ne=^9b7 z8p0ASg%Rrjm|Wa+I}R&iq}4}QbwYx~afYtK!nO(PvcqzSXrl>lL#WrQi!!}L&`^t3 zso$#ttOG?srvVNNiDW%`l?K+CVJi zXk97Dn=}fcEhhe=Pbkyi2Lc0Wcje|gjjX)`Y&<+<0-JqUsX6&rmPnU7P>gS3l$aVX z8Ho2Jj%zC^#!V3k~1*}erI zk#`w59&S)k)Q;G$W6$FU*&U?HlY!NML>mj>F*`3WZlIWF&V4Lgs*;A)$6zP{DZMlh zWr=cWw?HFr8Z2A0+_mN2Awm^FUsayMQZ5*?g$AM90;k`8B=XIBzRGp_rQLKbqQ`tH zLQeT6;o4)MaFP4hZ9E9}Z}XxMw|4}CU~Ig#Jh~M6$io**`!(UKZi><(WVH9aV`*MT z>PRCFfZPDt*=)?M8f-qE-cDi%G{-N0I93x&ga73|F_Wg`*7Ff*U@(ZPq0HBR=iOsy zcIawp;?q>`$cmu6iMWvwsVx;=ivDHr2GU`$9a}Ls^elwWaxXiuEqYF*2*mn&1PT;l zXDcd!V88(x<$s9`a~}A(hRD4KY)La5B=8`C*V+b*Xt+FJ7MeWn#@lWY&YN|fJSBHI zUzNiF0D9$(B}YK=`5GDUK2wLawVpul{FOn@k!BcXZQf>7cB{L~3>`Ig50E(BqtFC# zK-8wEkkq099m(B^sDEwuvNZ7zu7&Dx_xF>iMGEp8H>`d8VP6@$JMp&96B-NkAcF~M_tx;AtS*G<0%vjzxK$^w>Vu0IdbWNB`^GEMtJGX?-y)UPV zvtv~e2P|p+YSA$49rIXurU*JU>XJr;*IN}0DDi^INScsQo_D}#f;W@qccDtz*T@|{ ziW|Ys=#HXuR{El8#}DdF^pk^IcEM7oPIvSQ^sA;9invW3*rHTwl$;aXyA zaa7N}2(d@;_A$m-YIcj3hpGmZiy%JionUmk1J}s=3lugxjKT;>>d`0-k?k_YOwD0M zKXVfkn?Uw4qo@RS9rL2)*TpNZzrS_Ryf;Sx`bwCzo#@f$+JJifWgCL+vVl^i9E3{u z$&-6tOWd!WWX(J030hfK^9`5?-1H zG;a#!_B><(TzJG6*4jbC9%YpNpoFUq6j=D0=WN|Ej_E*;mub1gK(y8%X_~l5p=(4K z?BcZM?6Y@vKFhgz#{{CHoLdc}0Ey7ITaQqDzJA8W#-If+L z^0~K{v%adTmU(Mm@_EP!se!=P*qbI>bu>c&lpuDJqXC(cQnc?y(WWnu{DGwAvp~b2 z9h6F;qv{Ngk9+kPHuuZP%`RtUZ6Ei@O}8<)62Bxs+z|g-43U6=A{T%m^0TNoF+Pd#=k`!@<}?=3pDp=mO3qMIbAC&XtsFh`OuIqZ1Ep!Ca;G^l><2( zb$D%f-6=u%a$WG@p){@#VCDZQ3GyzAQ!)WMa6f9`WYq`_kk%+CY;0}C2dvn7oj%Fc zF1n3+PNZKh+I8Ouot%8EqfjnsPshs2SP{4=vnE$KrQ~j1ApA8it{O?^T|Guk6 zjbUDY*8yZHOF+p=^s2u|2HAU1`2JclO<$QFey?NiH6!RW%5FYB;CEH>;ZE>SXr+C$P8JiX<0?z&w@;UF41(6W?3m{Ul>!&F|n@6O6 z6tD<_94KzBi6sC)1o)D1Gum&;55~=uoF~tR4f=7m62p9D%hrriE+(TCbnw zn3mG!`v9C>&E7rXwS#KQb)a>Tpzdhh{2m6<+z16H605>lHRy2o1isMa@jKPr(I?4F z)N>r4L5l{*%`Iu>#29>lR`B`?`u^; zz4l%N8!FBXCM{=hw9wNJ%eBqIso8%yVo>(_leHQ$q?m7!k=6SXg=g<}-WG?RIlJ){5S!KZRp1xc@ldWyw)Bms?MMsAJ~^=NVcgY>PnB z7^I=im+BADyxt?<>PTxDb6Z^JnOopfA@%w-%JT3wNE`&%q=XnXqX-9UW@1TfvNFVTSIibXBdb!vGC$UW-0t5jHuQSl!))5GCR#dkJ0 zD_6vLo0qwh6u!O$EqULyTd&U|0rr-jc44B6%Ew74{vn6gPn*Pukc$jerNolY#Ri2= z+=Hlc^~^zFl4L57L;VUQx!!CWja;sZ8fD^p5tvcS^BkX`nrxt6Pn0DQq(N?}KR${k z2y{o(M`RBgXT!Jn2$#|GX~S4(2$p%m7+Yz2rl+YvDhI1MaI)=rR1bkH1aqxsxbQqZ zJ>6fwpE$7O4%G%nE{R=#tw-`nBIqN#jHEAhzPrS%X}9J%lfEd4&}61^7NF;)&IZeV zznsc8a{c&HX@L`l;O(PXkaE=$gwB`l4Wn4hir>22!c*CTk!jae@_kZ<aC;z<5mk5TIpMyOjC2WPc%bOg2~jX8*PpU~XAq0#RX%8pfkcVi7;chMg#U2)j4{(M?V0dDd#(77|8-4)Hj6yy)2Pfx80Op`pcM zj325u0)F@Lnmf;O=rBxRKX5$MZR$XfLB5~+&2iJ9{#g#eKGl~9A?E5G-V6=d`&|l{ zi+#&|Bnr3%)o;6}*;{A&wdxW;=Ih3SeRTtUi4pPA1-K(@Kw^Oz) zQ2jQ8Tr^N>@Clu5@j(YnX4V6+?#oWCjm+}6I&Fk$8?$M?s=GX|b*~pbYq$w(7BucH zQg=(j%e7>|a%N%oEHGJYt!hu!%egz@z*HC8Mjc+TQ6vaDUxj9J4w#wzM%jtZOW*|v z3=pSOo_MXN5B+66uy?8p6kTL)(^EUc46f39Z=6jZJYaYq@RRg;J_hfR->PeExG<{%BGvM;?p%nEwt z&$+o_VBkaRV1Zh0&kzFpcytUPhoTz+i8_$2dm7pbc&wX4a_+Y`wQdmppG6uvN{;;A z|7HE$xdm3NZC_!Q+4}2};Q$u#p-={Q0WE1B91hjsZ15l?bRr#iTx2_EQ#MOSjV0{| z=)46Q2TIN9L;meXB324PrXVa3MC+&7u}=mtsQE=2SptMu7ffQJbr@srjreK_zmL1U z8tu@O_Dr*2EN)4n)l7luW#w;;CcX~nOab@-H8_fg_`_hR4-E{ySxw$_4)GOh#2Aqg z?KG*~@8!3jVI-*>dM2j9f^{w8{JD_!yAFbmo#?hm7(eGFojIG{S=eL2tXN$JR5)ey}b0f5~w zSyIrs@PnS$7fYl&yR#9*EB^dV@cs7d;^&-V?L}>A29@7fewVXSV-F zb&>_l>!m^q=akeTNr^nK0oleJVwRm&1v;$RkvsN0M;30re_>*uFZjmgB?z_hb2CO~ zR;ATHBu0zjd(heKILQ>YO5U$JaFB*Z9g0RldLRiw-)&ei0`I0IGIUlY{A_=&C`$wR zH#V_Y$7wWRMD0GKtKIJah@sphm`xA--RJQEv;#N16LH}`RiMO zk}_FEMKK>vgMO`2NxKajna<3H#B8Tgxqhs@Je30ng5``Cnqdzm_!1c`Rw6f_OkN1K zEixZXUY;tQO`+Ao{LnYhhGKEBhH*BpE#z&OoH+6DiVYMuwMR`jRfm75K-(GuV+4#C z6hiJh!=9v{Z4pUNl4+>*sL~=|2Y8$47pkzwhIxiMXAHILpiA%3=xxFiz_UpyVZ{%9 zL;%93>>>T%0-EL9HwkO4_8!l{m&=qQuZxYqO1gd`0Pb1er#&f;5jUh+q8sKrp1>wV znkFFu|3mqwfOc>9+eay@ipOaHqju6iE9ui`6#r1JYDCw6oGZje;nj8j-N2a{nYhLa zK>m;0DFcuF#v;2S*Fn^~moG zE9G-rF3MhgFGBoY+cYi`gc>Ed?n z=fsc+n1r6DrAkM_CNG@~(53Dp;V3=V$+>0z1eY*F(N^8xE-ROg$`ENX&UnCS3T2`} zQD*)lbqcATcdxnR>P>zZTmtI40#Z-O^~%Jv%(pMXdBkWG)p-)4ta+|TN~}O!w^*95 z9y5*HO>E@i;^O;hFWx#^ckVabDEM0V_*3gs%W_Hq;jmD&d9$6hzx-rPuBtkE*(r77 z=nc3inrJ?544{!T?#zWSXD!=q`1T?1CMeiz4a^Vf#c?fQ1kdKtV+Ieh# zMC#tB*O3%S$OGttgM&3#*rW(asoAvDByC?V{CHK2EN+iGO^=K5UrU+3df@3r#SJpp z)%U9W*#ZGTLz(^g2(A^BC0yB?{@OGmQQ^XfR;|z6DWc(V3;J<6sxI=lw(XmSFV20R!{a>Ez@S&?feNT;JVw1N+zZJR6m+)twQds?!ZIm|84c z&zvvdZU5((9%R@XuFt(pI{rtY^*O-@JK?XrI{h>0KaevjZ}mLxq1#0=VIO_+o5t~jVxsQ zmbk8|451;j?qe4rqRdQ|*iW1tP5yxH!GF#2;t4LxdAb$NLUpn|_jJxf{ucVko&N(Lv=l0~Er)-u{@&zfDEu-G6`n!$C)w6%TeN#y!0l zfP9))xgJ|y*yI&9&Ud_sYRL@6 zXF}RffYS!e8!AVWl8^8^>>tFNr+-K>Z(Z^Ywb4RpWkeL)%8HcjvG#(%IcYj@)EupDcLBqO}+xHH_* z?ar(*1gtT{d*Bv6kVa|EcPsWox+Q?4BLSPr#eA*H4fpdQZSahZMl_NcpB zuKNPw&z@OaoRwOx#TtV!fQ}-G>I7X%NLgVoYY6EHfZ%H}tmL@lqwSTO)dii zk#ysU@kK>HnW(R&Xyid7hJREPF?1sCY_AvFig2NgevbF0{|JbD| zG*A#j0y~s}P6xX1h!&IH>=%spZgt)z=_n4Qv|Ts=JqtV>({@s_*rj8Pq>`4<{KA*9 zO>wT^wT3%rl%_fUc2TS&(t78!#K_(ceJOIJ2?duP>4QEHgov3cFHWFG1w|P#x0#o| zKa9hJ_I*!^*Y11SM8LuUvQy27vyptts*MZ6uPqcd(bq_!yFVfH-i1As={R3s@=rZv z@Dj)a*#ru(k{7karm6Co%tuBpE-&(I?$e(}MzKS4>6+bnk_^xJR>SI1{^dRcnB~2Y zuE4I^W6qkBLETC+mV-d;@kaL(xl1e{Jwa_sZm2!AclQAyt@2>k9sw!>p8F9wvV#U- zAYe^5+{+d1#AYluiqRr>bwuk1_~G#V=jP@ZC0!n@!|C%@gD?L>fH&!cJ)snqkyF2M z242l-q>KTk3rQUk|1O#o6`+h;bi+?~kj6^w#bG@i&WF@!7#wDQEg7MWbcYoif#q!7 zafF5T{!LaeY>6@7Q=^8W5!No4*+BUN_&q&vKOf<-u1oL?vGJr_14%o==nZ7^Ijgpo z@2lK;B>M{e07#XrjiEY0o7Oqpf+rA3mw-tPhM}2HcgCfG?u`&4`u}Ke=pzVvrTTn# zS1jc2+lk>Oz%~Fi)5kC=E^PCrY~l{i$s>%B2*&wx9XBIT>C{XA3M#T$&1>Iq{*}G= zvLm)tLGtjTaJMZcYN;%tzp49Yd^~b7O^hNF-@b5?h!g3y1J+tuInuZ@@xvEjX+0uc z1o(}k#72B^N05|D>Qm)g*enUMt#{?~t{*mkxbAtooTq|OIrZbI4lWM0dfR;a*z+Q> zZ#9Jv;#k_xrGLp0W)T}5V$Q&52%x+?{%}CTNL0)jsI)4vW3nJT)C9aHo8=~@Aw;cb z4_@51zEcT0W~?7bejy=I43uVVVJN*FDOG4-JYJanI-ly?l`jC*9kw-0F?`aa*4 zwDiLSxZOAo4i2z?inSuyV+2hv!Q?Xczx?4SGyM zNluf{K_9$N2^kZ)x(C!~A?se(&b^NM1Y#nRvAou38(&G>y{mcXjcsE4_<9QM)rj9u5_oLe z1Hn0nW+mho`pjQZ%Ms=slxy6E)(EyLi?Rm=0=T{n>@d1SujPMLSov6UB3u8%oA{bt zo=N&Z=sds_(p7@MauXP+pr>XVT25o%O10ubQnRwm2J{WuF&IQa-|pD{pku`)$a>0nTGN~YR*lTAmuf0hTp@oG*`2M(a% zM6fda1kx5xnh*!Ffm;$9%YQUXe-wx&+@(eoFzZz+DIq?YPA&3LS9ZdNta~j^-O>Hy z)anLw`_;XEwb1|_vcSS?B3F4a_d@|nq8DGnuGG>Z4(QL*M|H+u9HT!iFVxH-S-hsyPj)D!655^w9qnue|;w%4QkMc)^s*NsDI6b$j&NYx92-n8Dorp zEe{->EoNd#&L<2CX>&rbCVz(i-gN+Wh1Ly=HI zPJ%ui_g(0Yn>+Sx36IFO&ID`D!_5k-dlBz??jN4Yy2@@3_BYuEvo21(#&UP(K05h= ze`^U>SorbT`5-#FMeT_&w}WH(t2qT4xcRSte`6~!9-535zSNRV77_{H-)dt(9z(3H zdv?TM@V57@8rMxpiPpNv`^E}NN}d@~3@O^RxQa2Nq7Uf2pf^QKLbk?lU_jtJCZw+) zD>OPfWM+mF#iO`5>LRuq$OI+ShvC@uZkDD^~CCM+o_q(6&o%3xi8`rlrF&N!0< z!T2Ef>${I1;|&hN%)A0Iy>wwdyS-;GA~)1n}g^OU2gich{U~4O*h}Di*dis)Ec*Jh#r%%4$ zz8Rx^IM`KMom|AkI}}%q<>s^55`&vmODjT``uQ{Gx#91=zC72YdyiiZiKHB?`u_Qo zhmMhR&Jwsd$a0#Z$#0(h!jw)6^Yd@9uMeKNxnW>pw#%!kI_)oxP97g;oYWe#DV_30 zyt1?7vaq-RP+9qKd?ImrI`wpYd0Au8oszP9YyV|kL&I&;(bi4tT~X28#Jnd;LY$m7 zIK!NrdFOftBr7fU{QU7>WrmE%H!9Lh)$zQ1oM>4(vEaFcY#3qsFcqn_lSNcn`F)Lo zoq<8BP>a5P#e(tg-^yFt3WLV6xyCM3WGmi3MeGC5gzkrN3~+VS*yLPoYMTFL)UjWi ze|c)K_^$XSceRY6AsT#|6y?&K-O7ziihQo$zaRJKnbvn*yGBS*%nDcV| zmwIW5@9-V{u@WZZHcQ}@qNlk%R^_<+pr_KMd?k~L>5HjXZtvUu7+X6#5fP90nqJ%2 zDf}+3#_?K}bwesRY;2^~Ea5YeQJQsgZN?T0(pb{EZI;4DtV zH?^m9IjJ15z-Q{vgb|`%Y{>6RN|G7N;@KpK8v=9UuTt|#@{9aa!c8$(-SJWS*tRxO z1qB5R6#1M{4O5$S@2S@zUxV@m^SNpc%BH0}V9zb@uaA*hFLb`!vqGRFZ+>lx`$d)b zrTzM>xU;kR57X861?>6or2NM}ad8hks$D12-m_^|5c}fZ;cT-aP-rlFoXo8v*`|M9 zl}}EdCy1MUUQqdJJ>A?vvv%9|yyc97)Nd~Bg2!_H`OWU6uI3yiH6GiQtFp;89{pKG zDTB&CM@KR1>XJ?th7=SomIm&lq{5`jbIy*`r@jR?%Zk>lxM4Hr=cS}SUQN8$(|}(5 zE}6sG8LQjBOOLu^zb~A|zX@)OB_tG3croXZoqaWXko%I8VGgS9ZWS{}L7FeC z2D^6fsp#kzraI%Wc$~S=Ffc}t?;I0L>I%x0D`rdMy!eTH*He_TP;53R{C@o+7xryE z9P*okXWHxQKkn<_wcJR^{BvqSy00y3V{b41B9e-R#s+8Cw)T8#BhMJUsby7k!LsQ1 zv^|O`J!5`|U;f+1=9-CSktRPsxtEs%4NX1X`si`WQ#5VY-P2Ke&V*Wj=}m*=kaCxD zObCuAnIl8oo!zaBzqsG+?N}iL(A%NzXYMG0cIz(q6l)mj>c%xaGI}=#2bEQ8&S;5= zBR{94?D-gs7GKudX{jap2%=2Q>EX%AksckD)i*R;M}~(3JMWknW&weO{Y6KomF};X zYTQN>M-Crb_f~`{i4a3&_XW?JH-8Me<>wxV=rFw`KR3i}sIS5&S#aHdHpCtu(&E>d zcCi|N{d&ep)ygLWQW`-)?MaEs66*ZKM4S(vf~&64sxi|L9?rH~6l!WD^=MwcRL=fV z_{6sOv3L+!NJJhN?oZ+|Gcpcx59PX!t2py9f5k5^kJ&>@-rMfI zoqw^)rmwHECsV|x@oQe?Fd&VWpStb{~|j=HV_)@KczX$;#BoFf%jn zE%&26dGaKaDc(v)|_&lcJfnM_X^;vt)IX(?JkN z!j#5Fiu9~ST51?4<6prx9TTl}BgNR_>uFye8x8F_KE=1wtLCQ%LfobfSQwq{q$<)L=3STniMq+4PeanKJSC z%xq0Jun)G-#z)vwf0I|#@vTQZLq&}&nC4d?dTjrPm6f&M zU6w;g=$gMj8N}%;a8U}1ir~U=!(~U5nwb*ZUiN)|&Aj1`z3A@wW18C>HW%Gp)n1K_ zCUkUj1IN8a9am5Q3HW{7^G%$%=d#_j>ry4Fhwu^DWM!-Uke(jMA2cW=SNX^{+u#A!a6L;Z5@Rk0!j7@GCjk~#ui;sdYz@&@AdVH>FINWZIf5W3_%oPf2Na zFInz8yuH#=lJau?;}fhf|Jak=X;C^HN}7*;uf830(7}B_M{DazDEBx!BUDvWqo!*l zny9$`X1r{yH$w`)!VbsC&Xc=P8lW+cEfW?RE}hQhg(!tkf>(RH5i%9f(_ejPcyaCg z#MYzIx#J*fq{uLSO{zzf&OM&Xw0<@u|LJ5+;Fa;=y$bhBbgpWy?}dfTu>y`bghbW_ z@A_+dzo*sG*;4R?`Y|M*VMj1b-XHTBW{}mJLPCiU$~x6rH!=!}PnVIwyOd#$!=qoe zyZISV5w zl^PX-^{}OZ$~Bt(9%fqFa~vlM_lJNR(uXo-P?hrpt`+m)5D?TL!==Mc+mof=xu!*U zAA0c(5?gJ^K5Yj1^U{aoEhM#C4Y;-S48+>g^uODv%2no{4(6}7Y`HUiaydvj#R=PQ zdpk}-y0dO)zA`LX`>M*2Tdd$IM@_9b9j#CIq>xbF*0!Zsts8;uMRKC1SEDEn02Xnb z&o})2ucPp|6UBv7_f(Gk`2H-0_5D)cy@Kw`uV0Nr!xTKM7j3!Bu!Xbl2natr3%mSE$>v*(iq;Z`VgOPbl^ajPVY$C_>#vsn;9xron->j3DnYFh zwc>2<%Zk@owW_>el|Z(pVcYB*?9X6iWPBnk%ORWC-j}TX^5r3lWl|FB)}GCKU*CsS za8&sEx>Ipm{O(}O0h5DsW&MzfH<#&Je6@g{lZ$}39-of@Wl>29VyuMn?bz>Y92~aV zwtSxp;-*3sKT?-h4_GGRRfB-b*{@vkM!152xtzu-22uEdjaT!ePIS z4y&%lD{-r=KMAnGDeBmFC%qY!T2Mgj?XBP1!}bJ$z{SMMKhHl%AuWb=u=1!Q?|iHw z&1}~M56{rSX(h>*m!JPprIsQ|H>qf*ZmY}m)a$R8W{$3~=v&*F2Dm%jj;1el4%QBj zkXz{1$%zyI<*U~wEQd7L&3S6!m5{qquBXM9iuH*DkG4BC=S^!@p#;CqKmhgGZ9hhL z_++$GBO-aS6qd*}Pun3Cfatso6&(8`Jw4B#Bw znu~~dZQfHwSbT$*xBF-{|IrWg%|N$vzPkeBXi!4XKvaOjO)=(~DE%Answ&L2KdzVn zGgQb8=BCDZaoXGSP*Bd!2K@ZC8ca)plC-SGCzuZOLl;itYGR-{u5jVK8Avh_{H~w= zxh8DfzrQBD0CpjBETkCAS*PX8WGK+Lwk%LWBvmK~;u30W$^f#E`_PK~FJq4_PlhIx!dn9C+93*QEIR?t|h{3?p0e zqvM?E*|ZPw>hXL%}zfD*EIlIMc zVgMbzsh(^fK8)YXONw0DnP;Nlv!SfCPp(fA%nA!rK(5nqM?>e%WOue3*nTEEXc>Nf z*e_qc^y^N%mciOE^S1b=!%}KUXq=iySNx@GKdt(whPa0#u{@TKPxeg+DyrL%hab+&eQqXm*u zp;=HE6%*0Wxb(u!Z2nk&CoIejDj*asEmp-CNl`+=&xCn-c8W1iMF08KMNF~gzhaa- zppXC0$|`n(=!K544ZM+I1go}&hED>;`k;YXg*Y4lSlr*YW4ZSh)5#o0Q-BFQSf?(P=<*vQkk>@MXwBDJ;WI5fQ zq<)~Du0Vb8D?{oo@~U{EJ%bg8T2k^Gc~wN|(+8t<>%BrkBhs2mOdk@E(05(Ix3Xq? zvorU2X`qdY%Jq?0^ls1g>~bupKF$rC6~8EEhK@pU@Qz>wew5D#`a~# zj4o>q(!@nP$RXZJSC{>Bp9~+@=|Z$`#^8o(u9Ua?32G8VpYdFhcI^$*7*A})RfHtoK9R>nLn?d+>rV|#l; z*yYqLo#cYfJ~S-ShxP#eUwq*rWV>EWkAcBET(n3GCvy;AoISjGa8R-|$c(+aI2kzI zP)U9Fr_2f=4&j|UL5{l%Z~D?D6=STVo@a;ou}DE|pqEzlhWe(&Eb%?W9LbgJ?Ci!L z?^a(M8wU-3rSkFgJWHZXORI zexpmfZg>_YilLkSUtTNyvzH6vwdVBn^i`meAi7O0FJn?ssQ~#5kFEmw3@@gCthx1D97Fdz z@}&X@cT(YFrKfv+M7|V_BCb$BgJKFqG!POoV2N=*s?IwlMN8CvI1W% zS^5h+dIBd)X%2h6&oWrWEF%jx;CdHp0d&8`e{fBs;>G*?S~nyO6h1)h^)rE2oBIAT z4Fvt$4o(#kiqD=xjMb_4ih4Ww2W@poZayqn#&7oX^gll)4!5-S-w!DduQl9%GjTsv zJe+ES+efLsLJ1M1M>$T4o#kbl+9>7|40Q>)6*s^V)rmO z7XS6W2du`s|NW42y!l@bQGufVIWlquXfm0KDgY%_Rgg$`cWlsD`_45#czIFG%_sUo zsiv&1wOGLvMeE`^hy;rO<)MN^(mNp`D@IREHFr&5y-+s#txP%S@Z9^x4;$n`gQ>~C zAGWOj`=RJgli{W)r!_Emz&}7x=PWV5#4;Y*Xj#p74{4#gBtD$1z3O_(D(-M(U3Pw; zVtIMa%-pe~r@nSgpT+R*vTjIH@axTCj#;`_a8vTa~becpz zQrylx@)?F?#ACA*I-vh3``%+pA(vq~Id!ji^zCgD(}W zZb#7P`Y5Xh=c;EI`{AH~S%4O>Dynk6+pX#8KjDLx%s@|5bJ^Yd@Ij!!a(33jsxamU zWw*1>bd@1R!l88FF&Fl(DMe?gBm1Jyo9-Y_-WY~pET8GJ*Ax__oxW<^*hOX(ofVes zEk198;a{U~SexHk_`?(HysPsEr=f}*ZTF8=XTh7;H?yyOG8)#%eMY!(4Ql6O-!!l{ zG}mF1qgk8WS{UYu)$Qm7rUQWx=>4j4%Li}MCr3$_-Tk5(=s#+g{XwGP%0tHl-d#RL zrOBr4+5Fdw-MmoxF)eggquEakUV+sT9?m*5W*#y-A5#iJda&$t!~R!B2NpU;obSej zcJr@PDGvSiSJ2i>&!SdHM9xJ~zcG=8PnCQnC{uOifeverQ6`S@53= zPfv4y#E(oYi2)+(BeBlG-)?_Z1=NQQUki1V`UhpmUyM*S|k8$lMCoujZ zt+zH97#JW|AU6M0XRyvk )}|9^zNby$?$*EWozqSB~zNU2DRl#~jBfPjJ^(jlO9 zNS8>rC^1Ogf}|iN-8ljSh#=iDNDD~UyDs#8e$Vr~?{|EEc#O=<6|=9s_FC&a&$YH$ zmgf*ZKfij3B^@ACeyX3;AiQYdtR|L`kvVI#L>LNyRegIqp&4wAwQ3;UpH8Jc0o0ACb}vas)N&tpKFP~ry{0Ae;ADvmvS-ZmyXI!E)Uc5mejR>PADnZsB5! zd5C-@EJ%;l@|Z@I?M|yRqfbx4jHb86JVHKtDoAf!H8YKhKt8fF7scf7wD78IwB$=; zN1b3|M;J!WzcUQQRIKu>a5AIadak0WWA&%>{ZbjxT0f9K+^6(6HKoILGL*vjZ!|PF z5R}Bz@+l|Lnmr2(^%qXtU0kx5Soq|Zn_FJj1}N*-7Pi*_PeA~F^Znq;8*-=;qFo$u z1x!W*!oP*wsp)6ouW$snw=>39R?aXm^nI#P1&_SYSy))eyJ0{bN{jw_{4;E(CWJ<9 zZ87(cf1v<9w$x}E6^?ww2S0(rzShuzC zG9QmtzZ1%k=`ESa99hwAeSJ0nLC3#FJlo$k6cyi@z8uXp;_HiF(`*>-{u-J0(1M9> zX;3UYAYkX`*pY(hui8D7upKj0iFqP{t*>t?+<{?#-e;7Ar;zx;??;P+{1l!C8`R&w zk2b)Pj4ZGQGp#LPUwf3qs+%WfkFl{%weoXPgt-`s4zF zO<-fAG`UhkVYo5xPfFt|^T`}m$swpNsoENacBI;eWMpJKPQUar9$%M|mYz&c^7yU` zHJ}v4V!uh;+}y?&7J}JS(jdOM?dkFIVN`2L0*TbLYI`;%KBpD80UX`Etfg)P46RwBUkmBEF@_5Yvh}TaM{UJ= za$htBT>|lycVQtPoX~o)KmW`^muV4--;5j%7++ovLo;~NrlzKrXpL%DH~^`N%iyui zsI08~YirE2FEjPSkXh@l#r*?&lSPZ{uIFzeBYn#3W|^*CJNxIA)}8&G*(BJ2RYnhdn7I2crI8qkc5Zq3nWMw4Ss@3G zOS&FAr+|2l$d2YS;TkWS6_{E@<6RcmBx;#2japk{ciNsP$^fK?LRa)e(V*=7TcH)3 zQ8SWRF(bq3*cCsXu^e2xj(9;I;gScm6hd4#eWva%)MfK65bF0vc?lbb(bUtHC}PCy z#z?T$_WGl-TYfw%YiI(#210#5O>X0)0jslx+@2U7zF`t$bt;r0wv-XW+Y&1`699-r zW22PbaH)>dd}c-dbHY&K-j&#-qcW_@HAzNm_#Nzc zk{=LSg-a)L1|-(k_g7`E_vQ?Rrzh^xA~8mlOO@Z7H_ku%Z5YoGxzXh3v#$=@#pOL~ zQAEN8Kuwu|V2I&Typ-6ZDxXy}^UV*hr!bcMSbvC;WICdIp7V4FX^tYB@4! z@bygx>SiW4wu3I{Ua+*`k1V$B&7pLgpWpD28(Uos{sqDUe{e#pV@HaOe4PY!|J->5 zG&k&^F*#mmr(QHqfqB1i+Q9IM!MA@(x~lfrpN}0n4?E8;Q1Z{$I86pBt$vpuf-0}0 zhG)A|yC4Ho!ah;r7hXagQ zN+FbM7WWJRNrOKz#nY!xf%elTpuTyZfI(c#Q?q2mA?_?8;U&-gRsYhLb8nG(?epo= zC#S`Hw3LTO_5BAAE_!%)7<8v8>@I}Ri)j$h2s~i9dNp`*(ty`-S*xqc)$x(GwtE}( z$jC_3Xq77fO8L+ytHehxm8`6+Y9R(xbz@rr9JgA zpZz@Go5hroV4USquHsfiVfe@b@bmsbd2}ZFoTP4vL2s-*BWfefAS~7ptG**_$%RcU zGg;=mx|Qa^fO0k&jdi4BmC%{pGXwMI2p8USiLZ%uH`d)5nB8wDz^@}<7j8&9bR!s> zHHI_Lsm!3pf}bA%xYHDPVGh>+L-Hig!#MRyrwVXR-jouDlDvAgn#tM~v-56!{5M}F z{_Hl1IDXp>dnVs$)nRpKwk9yiV^=d?D1r+xrT5yn4B^LmTmpO#dZW19G_6Av*s=!Nk36_nPt$*B}43;$5 zSsR&5jVXp2%fZW69&FzqcHa_7hWORW$*X1Th>Da-Sa;aIZ(*`}FFF{yE3jkRgD*fU zoD}s!h z%>bV&BrJR`M~&U*o7f%of@iV`>n8%h)kH)_vfu>8RM*OVV?kD4{sImR<*cR4 z&Td;=R21uAu?72Qtup9m!Nkq2bn4WpfP#VoX{%heg%UNpL@8=l8WUsVASyoNfX$^L zd=U{5B;3unUr;-k(cEPz5MKDeKmJa;J2Nwrv{Rx+_7q;{CD*OQh{|Xgh6DAN3!BMz z7)EdU`{I`bef#D-`LpZUyAixuu@2Y1smi|njc>HJRzdA<3p`^OM-{ewHUYcO4e@-l zoQ$)?MYdYwr4Jd<=mX@Jh>A*Nje1_XrFcOQeO!cU|!_0*&O!jZ^pW_nk20Y@?i+rMH+0)Pu9{dAbv^Zmn$iY&u5!W zkf8zNcj|bWZ;cKyCb|nKK1i&T9=7WwgE?`O7FxJcVO562@rXI(8@G$EjyR$riI!#J z=g;kMJiFr*GPS)S6ej2?cGE8${Sy4KdZsXTA?_BKXm$?)KI6&?@tYfwF}kFHj!u4! zU^za)-pUFocjd1l?rryy#Dgt=T3n>Qr6eU&!?Ijv5(qqEsMF?v(CXoyYh#*% zOcPKilZyl90Py!tQwxD1WQ4EZTkn%J-1eaS^9$V$?)gIm5%t~>={!rb+pO!g{x`Z3QVied{9zv=1Vvji{E-#%!sj=JU}pre|ansUsw zOwc=kWYWXh-u}l?CmJntBQV0?U;v$zQ%)#If$vcKlI>$?3&?=vY-&UOw5zUDH_DDIQ!|Df)7u zm$1;dz1{+RW4DX4iVDyj-VRHHBVUSl+bS$aZasVUtafy?x?={s!LMHp#DY$)3QueN zcs2!y2nZVYR%(cGzL^$n@2_|AS`G{C!z(4=7kBt|Iv+21adgsH?Y|18AvT0yo>GVh zJjHPiP_)1zV6iI*pwQc1TVxkUKFA`TWa}L8K$QQkoED5Cev6>aS&0f|g&iWnloarQ zr(i^__l8cLM4y(l)_O>9obXieR3R5PhS$#gELMF0<%%68!BpMgUBOf^q8xYh{9^Sb zc^X>Li+p>2dYd!eRK|XUbp&nrb{JZk*TPri)6_)nufi?g1P4T3RJU%vF(5q=HhzqU>;uh^YA2mZLX-SjELU?OFa)LTDRFYuXqJEJ|45 zlpO~HOmg$H#;C8>|KTLOW7xU45ZnziKsdkdL5@hmn>XILcw`7B2lH{G&&E2>Hz|o) zTs&*RRIXPXnmRh?kUYo> zH?Y58hB#Ye1D~9GG;E--rV*sNytdP}NB|fRqV)=iRYwml!5UvdDdE9t+%X(5)8;tk z&!Bi2rtjUeQqsEV5Q^f*SKw#hyAEEtQel6;jU z+%L+Eq)A znmlS}XJ?YTJv*5>3&#At;%pgF@$n&$f*s8H73WB&)cKsd@awxgHzP>Z5Tv5moGL3T z>%Era!F%a2+Q0;8U-7dmg;LasXLoBQ92WDq-V4;!5O|sb2+!|wjBZpoa4II;QZ*S_ z9Ic}H^d#5v_vZTo4~3jEe#jFsC|+D>`Yh!1>oU&ByY0cNsW@-q;)cfEH8lI&?_cxZ zxZPR;k*yn0#=pSmDS0Q0n{)N-o3OYNQ}~&3F7EslE+coJ&69=-hK`d zdhIPM0)r=x5^=m1&E-x)BPfn!JJ2)2YJ7jEB;RVx&3y1T%c!%7sDa_i?Z=T4KBeEY z_a=opY=(P;!u~y<`QHojMCgB}!(2N#)x1$3Lgi@KmE5IXWO}~(VDkk6tST#yHtBj+ z`6YS0_ebVTFondcd_z~p>#Ynx%x+JGU(D8a#j(S>`S$lmQQrJ%A$5e?Kcu8C6;tbw(AtDCA;=^cVn>Uv{^$&J&VM|y# zP*KQ(vjUKp>s~m0?q!x|^yT)hq~3Tn-f$I^AUDycCo2sQK3M~jmhr>lTcOEWdbd15 z9giK4Y+Z>MF{As4K3TdizmgKcJC6ErC z_d=o0y1z36acbrh!ia1H)fy;BBDt`B#gACmPrE`h|c8%cO?&5R~I3J z1^WAARaO1jjs!|x1F3ghu!CsW;lZ9^a|ji%q0-XQXA(VjUm!V$=i^lDc_N}__pK3s ze+CcAz`($3?CcG&P={QFyG#6yhQqWR0PyZlQq#gDc;kNnqXJ5ve@$bS6zvAb9L<3>0o?@7Qonqv7( z9%^ZYK*}->3wzB(vE%aaIh>z8nJNiGKgVh$6ca@Q-(6J_aB>aJ(Y1S??U$X+5kf0W zCULaScOD-fTyY4*UyS_xmmqdKgCiv)11*##q#r#Z{r>$sbT;i2bV@orJPZgA@2lat zj9AZR6NNvhd_dxEF zk0Y4{teaHvzL= zlFA*d`r{{Nac(q7S|5jtw&_Mv6Fa>y1%GfZ?Os$@ZqS*Tv4f5^8FU_qW&zY3O~Ykd z<4YxIXjjJ21RIxF?{Bl;S8%65hu6GL5SblE-u@cF=(gN@DxOpv$G;6&UC z9u^fa9j1_<*@DOkwzmloIR=d&ef{^;iahHHwFhy<^av^ey&G-~7P->X-NMK`z{F9C z?IM|fXC5q1i-Y!L;M10uJAU@%;wCy7kVJFF0g-Pq9;2Ix&QuAGc)!baxW8_+*w2dx zvkwhkV6~M!<=5}-qgqMgjXH>FkX0KYzCfI-oJ+)X@4IPRzVrG@K&W;g0`{5pE`s)J z=~ufT-|9jxex6=k)z3lxj8&R~hc$=0>=1B~P*V?1FF+b!*VJ@+q}*PzGf|9`k}?2z zk?ec+Zkq!p0YO3adHN0GQ&ZkB5ho}75yrKF(+oCuzD3TZ74Yg6j`?sYsl@&-+{&t| zxR;)=GK1ke^61x}Le}b7K0IR4U$@^ajcpm6T zAniFpvjK)NmC7}H=Gal-&x)-BVrFHhU!98N1=#v{c0BayFnnyi%^eNIQE-8yK!Sua z9`srrI0|h2uzWaV$?d+*f`rB>Dgg>(bsdzu@t79My&H*+?DYKA&Yls{>zxttYr3+t%DnU0rPop(44Y-^=C%$KB+#wB(k)S!A8of_3@~VmkPI z=C=^j;X>BwSb#t7YoC(MO-@Fp9_YjY7?%cQ8fqM%eg~MrCSQDC;5QstPX7<}=AlfE zL;3O-Y9KN|oEl->67UlsxW%EESDc!MwH*mp^(`!XJr4`+nV|WpyVVe&aaA)D|MGf9cDA&d8Y80ee*ZrF_wW5r z3c2fV5)+AYHU}S7KfVr9;!8)fer6QFfvD0^$W4f9%wzA%0JVW& z3|X@}44rd0=qL8x!q`;H%0}iXA>$ga!Nh5^3=z+oXWE2;O~X)0aT_Ao2ga^BD0>ih0hwIH(%%G%FVA`1Qz+xJQ+1Bnp)xMJKC6-uVhh?S}>w!u;vA9ETq?u>g=Xd zL5E{HPz$U!(-?l_nmL20C5p_pro4%-AiBiNwlY@MkbD@ob$T{0vQ1X_F>deP!nh%W zBwS=H*N-=Y5NyiSe`oSl;Yao2%*d=$zQMX^2uGG(WmT@PhTDjBe2dSz$PI5%T}f4` z_qc*kY5#fazYb)A_d=+UXC>4UNVZ7@*Q9-?bxq$Bc~(56PpMf$6p%YQ{r`F(j~1BR zOKzDK1Ej~oIy1SyqlHw;zzZOd$N)ojg;4Lnw?Xw7lTbfCFE1U8Y~Z+_HnX{);MGhD zuYi#IfTAzt9yRvnc#Z?41md0+~DgoXV0cIpwCEXWE zO6gq}4Uw?~aRl0%c(XZ6RV5FSA83XuKt!wls>qC??)B*{0}N`YD@RikR4(_cgruG^ zK@D3z5In!<3MnsKaq|IE9yST4q?I_lu9l4ofMftTGgpp$O=c}56cOc-G_YZK2~y0NrApk;)ulLZ8}b^c zZrLhx6VW-rzRw|NB);xUj(AuQIJq z3R(WWE*4Gu?{%Gd8=9|f6v(ass8sK{&V90b`MNUW%?@SfzvZlpze4Fn@CzA zavTz>GMt0Gn!u-p)wSF;@%Mnv#kSJ~Syjgd7MhGTdg0>d+0Hz}yyrg!`3w!{_k9x* zLVJSmNEus$DihKB0NDn_!xb3PkVh#lKxG{fgG0D^MPWV|Y!Q5YPjdix8<}rw_RMsqq)aI%j{O}Sm&kp%=7@4Aq#tK=BgL4 zkS`7G-Pcwu1bS1r!<0*_w8}9-OKeluRWvEPz zt)4--Dxb$z&7d6LlJO1OVtCj{3&(6R;;;~Wwvv6@>6aYlv!~jV}>Nd;o`fzn=49E=&(bl znW(*dyIERj*F%oLJ#EnnwLO`V&h-HuaeNX z;w@L?R`kr=jAIRX5x=F;Otu-(+e%hUw?1+sIxqZ-Lv$Wt?0R&*kGs!&fsaLp%?Be6 zeTMu~(Rp;S8_3&Ia~%3KylCi6x)+d|?_<$AToS^%$Q)fyR?NCSik#zGEUP(#aq01K zQqg(Zu?NS;wQ%U~@iZJC_x)+TfI*lhT$_}Mwa_QTmez_&zF#J?gRGd;ZuozlgE6`J zX}x+aXe!`F9^H`d7spt)sn?4qzl_ccMNJ*wY5)gCoI%_xl9QfC3BFP6Taytoy&uf_ zD7tEn;?zrjnLT@UQE&R|bI^s+r7P8VC3$*~Bg!45OaMx@^sTJe?RTVD7;}ng5g8Qd zko13kOYJXN;V{NfhDaQ_od&+@nsiu*Uk<0gWu^u6gaO;)&d#wKCI<;Z-C&W~!u|?) zfq=k3FS%4G!x6LoHGb#78QcLpWMH^yK~?_*WLr-Fv^bTWovmkK5t^6B!vW@WH{eXJ z%8`e>oE(o?F9!nIfgFfgI^?#7#{0wlOYCZwIXDP9Iy&Iou&o%HTC4g0AyFu+RQuGF z{j`vTocxTVqoe5I_S7{_P77tu(99ZhxC<1Y2@yyiAdq_`)?uG$mUD%2Z1f9di&rg-s+IUU9 zHqrxf(pY;32o4muDG(@h4r>x&6CmG;3WfYVR==$gfCWr-0WZ*UeA#Z08ewQJu+gAx zkVGpg9P+MMLnDv_=tJ!I{`LB4go^oaJlg5>eDm&| zHz-o{zP@3+fB*h%H#cPJ5Szmchw@8{@4GxwhC^Q*4)~3<`^KUPbL5#a&oLr`P^e^T zx|;L=icAxFSm&yC=N*5JicxM2ci)>=o(~8X38E93gc$2oY5Dc_RSATkgT;pXn84PQ zz{U%kKz8?st5!b)B!o%t--p?TptG2&89m^ovDyQG+oPz8A7I1_I~Un$AVcN@E&{+P z3~xliF=uR}^=I~|3BVVP{Q@)C5EcvQTyvN(K+!S4gyBO=J?lC}^|8EM8sVHrJw3w_ zLYkCT^vS8y?W9}7g;Ie15!p;il>_7#QT~AGEpMnadoH<>pp-Ur~`944z3`yjr#m_5Z=C z-hdWEFJ8Pj`3m~=4ilFAQ0MHU;WG|F0Zu|#VpC{e4i)zYbN?^;H%<#m0Ed~4+uz%F zZ*&b?xE$=7ng4yfHxj^a)%iCm6hfee4AB1OkaMPdCep|Q;iVB3OHXPKurAO~Wmf_K zuCe>tLG-g#%`uSh%!(Plutc(YjNp2^n_wr1HJaexCHo_cFkp)%@ny5?*zrHMFN$)B z=b5%=KYsXe{(neV`TF4n9(eq$JR5tpfH49N)VPJuQ7rh@T& zC;FGWB?9qrdT_tSc!i^>b)}KDLG$&$#Od~K8iGo)Lw%IQ?ViU7JZN3bBUa6TEEBCz zNB)Oj1;X>u!ZSkC0`@0aNG}(VI}!fuUAjj=SB}Uz*rD7#AL1(57~z(~a=dq$oqw`s zNil>!Z_A%Cz5OueArgKyar+|Znu3sY@NlnUs@Cgtf3d}t=I|Ayj4zcdf;!I-P4s)A zj~G;APzUYgv`v`K$H%vk?(OZp5MSfGZv6Xa7cSHo!)fbbHJ{fyG=_Q`Il1#Vmw9+d zAn-zDZlR%sUo<#@Wh5mh_v5bFCj<141174&gM?d`t}4ct&fNH{SwaMol)RD>|EMS^ zQK+<@s6P#`;R&4okdyosx3 zslhxT1aTT2JbYY?@Q)@~^iS5>)RFNlU~biBv(tfb;$res^_OE^UzL?ygeOkKvm%E) z7#u$HK!Dj8^fseHz^+ditIvU#pwtTsj0`~-!&g(K-;o8rmX@6go-Qt=x%?2r&EmgW z_kD|ai&}!er{^VoDj?8gDFuxj4!3IfK&8z6EoUeg3`LAf>)J8%vNAfmie})R0vg_M z`-4xc+j%Bj?GO7Lz0U#f_w4QY-@biIkk!=l;E|-{(3eB;@88PL%v-kk^|D4pLjDeTt9ZlDF0o%}MbvkKE6t3Fk^rNco>xAc(KFYNa;}7V8t> zv?sxEPmGu9okQ6h)9Lj_g@N}yf$jee1}j!Ota%>%HXh2674gQesEVav%_ipA`};7n zUxF_t;6Y2tHQU5b3Dw$Y{e7H&pDrqZ8odMlyLRVp3#|E+dVYUT50DT|oWU59i$Xmn z^mVoPIk0}|!TaAwizALs7gdMO{Bm{ZzVDC2=yOx3qJi^t|z5VYz*t(Wq_b@T~d$5ru(-frLFr?Xt*c zZ7^A9BV$MS#-J)vN_6L$?&9Fa8IQvqXVE=#&oAZ!_m>|A-k(rRQj~mv(RjJI4S|)1 zbew=!f9WbKM3{uY=iN@Y#bxV%U-h59g?#;nGr-|InRC|lJm5#@+W2@{OrjW#tgI|Z zzn+zax3{%!LK9i2y>D_gDJgCuCvtyWM1N`2A56Ola<%iclEd&|lWN-yezfH<*xS-_bpO?1_Wgon@ z{wmFt&T(D2x=?86Jx$aET0VxA>OJ=6u%$3A?fPk=^g*HJOH-w2o6attnqc0V*s-u6 zXPpq|4$*X`MT($&UA>y|uc(D4)B?udwMmq#S=5;R)9LkU%JoF&m7l1UCe#YX(Y2A5 ztC`lA=+im78cMsQGOKV@Llde2qyO&_7Y3L&r<(f13mHnDV5ST(hS+>D10o7TB0m4X z3~pp2;XtQSB)KL7sl z9LP>S{jN+;bUANTxq1fL1|dA*1gM5(yw4D}x|=_LehnP0uRp!Z+0oHaSahhDD^{wn zqjwLs#+aFyPD=U_+<{n**Lm&P0~8OG6?_I@nA^?Wo%h*SlAat*q@zz=YZUv$+}zW& z5PWiu+Bb}nt(Dcm!T8IS>xvxec{oT(ukshOJ|ei{UC0e>AocjYGB#$;QEVVf070ZL zi!7@L#35?S3#u<4$oJ_Q*=t9%&cD4+WK~l|6vJg?Fj0?&%3l^oAy(R3k*~yDJAhU> zVe7A4@4C`-H@zEHJ^vOuxlrq2_GX*#sl*h04+=vMz8bnq>y?!2@y?3(`nfL}*3^2` zMez0o^Y+CqYz8@Ng*anG)$p3cr3?mP{>M9Z++bIQKkzp)Jkqf<5iOF0MqjSPI~Tj9oD=0tzyhmhXJU3Rmcj7K=HfCCo zJxj0VVKjB?bA{}h`Fsb7M?copOohV!oTk-)ekk$JXYUP1|NZZL;ikPF*7fP%?-Xp7 zwlA2m{<+X6I@%fwrQ_eD`xO2w|M$PWp!UqQi%Ipnp>bg$mj&V~bFcOMw>=M~%?u8r zns!i2e{VE!R`9=$mpeR!S{osq$iIhi=nxlj@<(>PSNAkp-4Fh+L;4y5Xx~XM<4oJ` zzNFT1wYYTar4tP=uSANoohRs?)}fTXkH=#0vSomR6ge+t2rR0U^d3$pTsB-7%=+jX zFDU(PuJc|2tTqs;72;_OMBYFd9xSkJbbhLT?u%K*c24<QzzgPx2I=!6j?BFa?2EG)dEo^QZF z&NUqN@uS(#AD>QF@6JCWpdveW_3DpNtJ;YsG`fxM^^bo?@k1ZY>SEzoioT>3Y#b*B zv-)$A$6)a8hM3LPh{X(1)AVc-F%uUTDb#Vk6N%LL;3ux|=a(KRH{`1v-<`=(k2S%c zLCXxM4lDaRX#e<4WgHKh(oT3<+;JxZxEVA9z))SOzDE=mO*4X|Vn4 z8cf}fw?V)9hUFZ@;02;d*;lV$KQAA{6(vI8|9dX|NK#9S3ESy;%6`7|E1e=0T%j#y zrAd<5-oLO=ZP^+J=k#e8zz7+fe$`n%@B17$Jn`mk6unA+INODA{2u~X57GohU~17& ze2Q-|)O)DF*`tyBOawEtX1_8@2T*R#uzqCSlw>h1$cL+_N2{HUB^}%37K4F)gM(Oo?T!O#9ESuWqy>xbgtPfvbZ*A6%&hcNj<)_IMhBx z9XwsXpMC3d{{0sy^kz6ZBp~wDRG?9*1G6xX#3z3%S3499Jlnapf|j%ecJZ){Ka zYyTYCbB8V9l%5Y2pDQ+ZKF$6_JlG3&=ypoPG*LvrVq>-YET|*ozm=@`gMi>2?Ahei z4}0_Oj~#_dsjK6bH87w22M9)~XS$nWdc^>VPC$OhfsB^ zE?<-=A zvgBy=Tp!`lo80iXXk7h;x<%fx_rtqPK59aAjCWN%g0)|fmN-0fY9fAQmDj3;wxci5 z6c7EFX=A)!c3KFPA|=(@#7`dKVjX&Kni7>HB{knzL<4^=NgsbYok44>VqP^G0DcH! zuq~1ch2+o)u(2b7kH>1X;rWm2x0infd{qRoEGQ&Akl8lux+3~9%~=0%Uk36-f(P$k zQnvD_sO&E-{$&R4OOHd18-z(7O2ND9D4zgAcC4IV$H#}-sZCbkvjT(@|&bWePdB2wPM{Y-6HO%BgW zl>D4?r*lmus-iXZ_i&Cy{Ol0Xy3RmP^d8RaLUH}@6Mz{aCYN6wzC;=&!+G%Gds_=Xd6dlDQgLxc zYJ7=xXeyWKi!oES*`?BICMHc~6^T#33v8F9Q`xH8d#~_ET^b)$u;}Tj{_(h1v($r` zNoEF?(<0fkUj6;dDE&yM$=RJ6Q&TQdlUevLSaM7(&N9mFb3w%%0LOQ% zt$8$xOpOZFEq}N|yBKJ?Oc(+(vUH^+X$T4}$Z>@esrY)qU;uJ^UM89O(7}Pe*h<28 zpb!nyyk&n!^I>`zU!rqb&F}|x-$ArkS^l9cm$~bjZR2hy=%S%4XIMWYjJcTAwSM<1 zt3kzME_#{*@?y>z+eX6%XU`>@#?6UqPUc@V`imn&(f--K7V-nMtJ~HcI(A{OgWI`q zVqr2F)6THR(V9YOS#iuoFJ!LcKT;J|-gEp|KtlS%M`Kq~hU03VdRQmvkcD%PvZC_U zqAylOk?%~CbgUXfX?&qf{hi1~rh6(X5(@!FGlT8nPSX53qksT8j2`qjy8{)7EV58adPiNI(zql3sX_NN z(q98`5`BIB49yZQL@PLr#h%3ZtXmV7sglmb!g8v*x;h{%O#1HK*8^Lgzv}Ricv^I` z-w@VwFhV?>mwy-8IUDH6iA3}+Tg!w>N=jcWN2mc^1z6PW^%aHpwP-Y+lGw(@5b2aT z;poPft~=~@pfcRv+cTW|o|-l$2D{H8dO(6RlD;!M6q1i0Uqp%%L5o#CG(^LxS==<;UcW$Eg-huC7xcbiAvm7&f=83U`g5(BE=(C7hg{^>@~0j19A7H4i{q z2#C@dVq)Uo%Of<<6|~@|RdkQaoNc7Td{5^2g@`QU?ldS&=xadI!sDxBS;;q#-ND{pXESTlvLn-}1* zx8JgW{xFWbNq0c2Kom1lfNH}S*&*OM=ts}D>2no-mn-pV?R}rhp!u%I#JT@!Wca~r zw}ZPzJJx&ok6e=K%4!buNBLHSS4xyH+E}jHof*4n@mJ2=N~3WVY1+Hn*TlAjbxR~L z?$~Npqa1?S#bR`&(Wr)UZ>x2+VzjcHt6CdBUs&ejOL8x|Oa^ZdFHrDgc&soaYajMC@)jNQoZ)v;(TUA8+O)kOY8te`1%oQQg&W-wkm@O*Ut z67Y!nWs=OwqN%?ND;>0b%mm95lm|K13%85P98%^V%Iz6*QPc?ZS*^8vEe*36I&7lQ zHLvSd;+Br#I=Um(xbU^DyM>M#md^gN$jAra6UKs@Lv=5v$aGR%Rn&Sb!UB<_udfRT z5|08V8fJrDy`q2$T!vrdBzFPOP$rapJKUhlx0c!Z%xKeJva0T>>&vzZ6eDB`#=NUrQ)YDo5tY&4XB$x8m%M1j?r{LDPh?HAG=S@x<^Xu&1Wt8%Lu9lXc z->}GLYnF8U-bHTJ^XQ=D+rkEU)8mn1m-!wx=*$H%<}e$;f{n`~6;1NoRV+RvQHSl{ zU9M|~4aI(vkAfe^Q1&pf7 zHiT99w5`8E#QQK;)uod54czE3lc%u~dZxf^kv^j}><>hw=gIvYE`#)zn)%Y8Q$QJP-pBRuwaTcSV5= zn6HwhfD7_b=<0V_5%w^w~V;>25y% zi}0DKHu~e7SkDtN(1*MIU!QigS}*HH7wrWO3RyK(nvB|w>I$b~dF^7#+MGRhW(xeB z#n(p<*G7l=m%gKAIttYM);9{W-RV&48*fp2@r9aehpI+PHgSEOu_f`j>{iv5#8V|X z*HXnk&Ag9I3C}G4*tl9z%$BO~iB&?_VKBN#f`NH!*2*$Hax*tg3tPs%P?)~MHNee^ zL0?afJbcr~Ue=s-P9`CoEp_CEL|JozfQ)!eX5?nOD0a7XP_EOFkIxSD%&Q=tDhZlR z(!CCOuF|P9)z?m*)FHWZr~97uua~4Gzh0j`>vU&vz)me16)2~&wsYcNYcH9%Yh2Km zdr^q#ob1C6w!6@7><5#yz8J&Iz~8$$n^A&e3irQ~)Es$8At?nE8=r>SOhE;+qBn11 zr1ZvbB4>a8!_-f~kd>*8&F+$!SN+{8l%Q4N^WMcvPzHSzxUn!bO%xcg2ot&**zAg* zJ#%!Vl-tRm3-O)Itx;^DBX9X9>#Fx>ovQ25edV5mgF~5Tl8EDHO5mfwczk?LowyD9 z<8sUt*@X+IaU$a5&36;(^hf{@W8&)AM;Xt>`~&?9RJv?Kd(DN%e!ycnyl zg6%o`P~j=MG3Ct*+0dwjp)X?iphr!EiL_XYbm3W_Zjr&f+ubRTllQ4 zuS0oM64ah59NS@2qF|FTI7rTxgDhG;##WD?bz1w_!ACEOqAD&$?8!U-aQ4LBup9Vp zQ<-e5PNr$Z@FwGr;aU7Q!_z%@UFMdTF79o&vrXyquNL6wZT5&#&+p1hfbT+(?<@yc zEtg%)`hHNG5%Ibkw#t3xfHO+FyEuJ#)~$*q)pIVstaEraeniwPd`Q*Z9m}~My}r>3 zUrw4Ti0KSu1M{2vYkpt;njhP-`7v9av=&MI;#o9vqf`5-uKjGq>C?A>$1V8U+4q$3 zy6sKd&VTJN*g90zJxqu}MXtig<9wmfH1#Je7)zS+py0YXN+)iCec`@r%f-*1^(R-+ z5{O&L`PsjkKo*yA`t&8MSK6aW8X7yUN+hr;cCJ5LYSK*6f`L|rYEp_ev5H)rkq7zI zV0$?&KwW>V&p@l@hj>EAW%0d5kw@u@J|Kd!H<M!Si6B)Pf z;x_opAP_dk(;K8!uKsOw^aEZS3wCc9^@xdy zF|m1&+D426DUI*7@-Dx*bdQ7Gv>J(Z3?HH%fS3`9U)88{Q#Zcn=}UGW^<}Ey;k=27 zfu7SWP-Gdoy|=VswYV;Sw@$K;wKvV*NkP3O!X~t7$h|D=1ui?DfSwHfr zsKBRp|B?LgxXH;yr=uc>eP!MH&Zu zq~@)($gmRV7LZmZ<-EZy^OVEJ)ze~mgG0=+#}gRP8Bs6e_fX9r}61& zpNR(lm_4ncaBgsg9`=1Ksx5SOt54GDGQ}L_4Y~MYINN7}TJ>L;U&;i#d(S_}yysKU z&;7NJ8`XyAI?pGxRl<#N#fr@yYzCIK4bO-8^oZGha$fp{)lc9b!4r1eNrrpPQJO^-XD5h)J)~0 z4}(8zA9)+M>p;Vdq`Sx1O~zp4cZM|=qo&ekW$x53n%MN68@8eMECpfbC?NP#f{raFM)K1GE^F=jd7`>$AKc8 z^WJr@3QanrouLYqm4~PYN+6*}HFul`$Tx(8bs?cUF%C&i6E3mnE2MH~)OCgPg5<-8B)?t6 zKt1$)cLd&j;K_&neyg;IY6r|bANH8Of$t=H{qS~j8On4}4Z1~z5z+|gja9n?ry zt@>c`Px)&I-ln<^4&plQ_Lo2b_)dHHnK3%d>5CP^$AI<pgZ_Y7wZwX)?LpU+`5<=)T`Jkr6!PBAzb@F0TY2^X0 z!uy*i9u^ z{p?0_pJ7IVcpZg19Uo)%f(8r-t(M;xi_M77E^PXi=>owtyC~OGnL`N<#Xd`0?nS3* zg|XTNT9qG?Y!(_8J1zO|OyiUXYX)s&XFr=?<<2FM3BRJ>{vOxq=wOV;W4|P=Js0*b z7D)8;V5{CS77?(xdaQBWA zx2DqSEO(8ZGltDCAzTjTb$O|>z2jWp(z3??wx&iRh2!lTF!f)yu35E{`aKLLw&q(2*VMl%f>E_W^p{o zrwP!bRlF#1cOEzQnX!lO7K3$i(I71&p`#=G=O-7xbPB1sxVW{AO)U*!m#y1;P&C($|{sN0?n#Z3kt{U95Me%U@gT))4Q)MCOK^EFWW#iZfbwC^t$)_4);n%Z z&o2C0t}qgGdXk(Vq6Gfbx~u^QheH=y*Cmj`=xZ-O%ucKHsL48TFgm#Hoclx-9F`2o zK6#wirfv6@Aml~rHb3Q7*F&21XtJz#Ik!EOt;7uixBhB(5nEeZK=jO^fLee0YlP9f zZb!l6sIopj$6>io?GC@8RfIk?#DdaSiYtooXJ1XpzrY-{A{J7%-Co3uwVXk(=S* zRp>B!>>)~qb6Xc|s=2ta9y3Vp!%n(hY>UzC=*!%^mU-+X6s#Yp;;|OJD4My7R?Je6 zGd(hGo5`xA@6=WuX$pRl=VT*FE#P(%qFKK?-r}&km4rdv>!tq6vghk&DfvI~52aIX zdsKHkmY@#xaael)l}h|k=(S9V>5bOGI{xUXhsqF&z2|1`Q-4g)T4aT_+0Y4J_>^@c z*+j{6afHSj%Dhh!6AKo`8JZPQKQo&7;CU2ILbgVRP=L?KXknXR91WYElNm8H%NnY zgGdXClnN-_B_V>ebcv)=(kLYh{l5P>_l!Hvb?iNK581HZwSMb~ z`OIfdOW<^{z5_v zup9t^EREgW-G_BPS3v6e1*>H$u;rd#NPYi1ITDNs(GY+rFc&~DnGy)^xh>{`CkQg~ z>|}-0>5lJ>UQTy3lL@d)bK2ZJJQxK8h*HFyrHzg0LF)BFR}^o^oF`|!bO=_f8%IXS z5iAFwrSL-l`Kez)l$x3vcbzY^{=v#(rPmF>BYY6j$MW%kF@&k6>fihN<)6|+l!^ig zw5w0;!f2<^oHsn$X(EPVM|QMIW`suY2V31rU$$VGSy*I1oPd2(3b30&LqfzUfB~Vw z48x#x`zqsG1C8H5r~ENMF=CKrzkf?@q_V5_16&mr&CO5YP7Xj{DR9K=s`H~Wy7K#K zd7Ng_mLESgTy}`1O{K(nz<}N7Ek*YPw09YCeveS>suM5cooY z^3?8R+|qmhE54U9m{{0qNJy07=+c<0Z#^&>IJ^sDV#xA!@0ZFZ%4nwlL4XhcNlK4i z|L>&q`lnIW6yfThHw`e+ECNxm}#MT7bgfSlp=k! z)mNuwcsDxw9nfG(i#}R^m=z)+LCOUc{CLyd+2;e*XL&hPG&TF3PrWX-j6h9|_V#V9 zH<~PrCD8#DdE)|=j!R-JO1dAXs`_TL6VMSb^v}X#21X99!G#2)>xPvyyVkRVHE^F8 zhV5V^F=wneaY0qSC()omiv?0;!$eSi|1A#HT~jQ)#S zeG7SFm%p)*(s*y4brG+PkyCRMGSjctx|>>ja&lH3(=h~P!SfAasf{Nox9({dMu#wSOFjf1V9NoGzzN}y~p4!=1^sn^i)fq*FlrQS2)`f5zVgM&E z?rM%(wpT_~-GJxJZ&yK%-!M&s| zE}syJrakN*g5s0i0m+LV9zZ^gcP+3+Y{C zq`0*7B?0ZWuhW(0Au-YXtC~il?;+Jy9U5RP6pA1TiHN@5>*7@-ASLB;RglSg0Ucr6 ze2X}A2g-}fWX8=QY_M5J440ffnI7f;Aw0YV=DkaJkA#N5^eQCBo1Z2WuI5YwWR(ahdQQ z85uZI3p3oRz1)9>$P>V8s?(V1N*#MPVY*GM(Q7zP5{+$m`elsPRx@$4CBq5r%ushb^y@Tfe2r1X{9+w{ob5KDU zNuHciVmbDkaQx40kVEvd{KrC&uZICMv7UHY`X5B{JNR}g&qOmwSkqz$D!3EZnH($=6G*FXREesRB z-CPrb7zwk_#TF*O1;U{Dj|K@xYoi1O#S4T5LJeygpIu(>FHtwQeVd$Q6USwJo?|>! z>H8^8!=-prGoSJ3i;-SIgcwFN_3q@AkWO~062!?9cdR0uCh;Ui=JX;j8 z1q~1(Z>irrpjYdlBwgC5U&`~$@eH<6g+2zg3v7}vHdRP<1iJIm^YA`|&?ZMDd&Z|la>ouLQLjOO!+PqXx?#XnG^_8G7z6&I5MLA!o;ZfmcF+!y*4 zn@?F8eJe9Ww9}Zqy}Cf014l1>RE$#oD{gLX?7cnNq#{6M8HJ89dy~g7Ggay*s_=A6 z-2G|XdP$5U%`eQFBj(FQU+W-RhJ^3ktwtkE>8GkMG__-0kZqIeTXQ1EzRS%~zTayAI+KSMmF-^B;W zNRJ*JDGG~NO;z$E!Wg)YLhiA;FUjbcnaJ7g?jGp2T|rl9Gf@YynnXtCL>CPaA$#`+ z;)LC!5xpXpErwfApv z)AP!vrp#4WLqq4Mms36YXt0SA1W28mTY0Ae2_s{knEkB8@K4c@Kx|g%ntW_o_IB#n z*??^=AfPZT5!7l$%1^8ex)`^ z>ZcOEzH~6r{pz|i&wIGCxVW&`@r+rh%dqr~Fbt{@v6t&7GUMH(M4>L*e=MJ7M*eG* z5@0M{9B<0G-33lz@t&nTqm1ra4jT za65Nr{iog>`&?g7@1C6SIN0E_dEOo0ns|<=T++Wjw5zNg{%w9YAov14Bvd5f1l0QY z(M)4pE{vk=^IR<@))k3-b9Ex#Vz^xiQeZgwr4#WG+7ZmSr37E_`5^|T7!qus(gSEm z{6}|s?EOa^ihgu{erppx@W~~k7cTqSZ7N848yW#hr2(csW4=cCXT+6$e;?=a9Vwxx zM5fAYe%UZMsOcK7_A690eUBz)H0SXn}!2~FEH`geQjf+#O z5h1ar0E+@bfKDx9Pis&aU;<@6SZY~MSG?~;G(wh^-q4<^%$bJCA!iO4pOylC+7^wd7_+j>U^WsE zI3#~@{0Na>;5P)@a&pSRiW-|Rijo3H4$L~~Mb9WzRewXV6^P*d?RPz1#0wAMiUnkX zon1%xK!o`FcO44R-^5>pf1OQ+gjPtc`~s-xg`q_+5=1ah|GNQW`R3#lQZ$1EN!icxXGln0p&h1?FiY z=c)ydjJDTyRILs4uT-mT-bYNa`&~K-c9KjFEl8qZKg?TNp9= z_SI>H57;q*RAPb%o#0^QSGk7{l;O7+-rXkln9DDdt8ZB{r;=5WVM^N=!QS0#+W=CQ zH<)74yNdkxu}NQ=g+KZw3~JU3AfEc}r^BanXaPmUt(WlpLw>$HQ_7<4c4hp5d4a*$ z)=JH)icvF-$;#?(x2hns&rgXaNI5;4@}ESQ!GI{I-zW;*r! zeDrP$xgLlMq2_DCc!rWu;P-8)Srl)aot#Ro!enHg-VF#C9OMG4*ZVf*Z>~(AQ7yFSVf`FXgV7)78}_gX{U9IvTPRGU#*cfDLyW z2%gPdGY`Lpvc##IfpO^HT9}CEu>j&QMyvjrJIWU|mX=2U`}a2xDeXL}nVt|x&o<%9 zcTn8#=rQJ#&RbgPje`R-=w~hbTMO!4fP|M3|Ki2zO<=%r9YfAk`RZV5R1Av-qOa#5oB+uX_`DWEA0w<@LZpz9 zxi#8iAma)cQ)?HrZF$x^VNX>Y%}bg27>39SfXUmdKg%6f(d2 z$Hr2@GKLxmjmddUKVt%OP{drp06_1f$ z9Dd#)Nh}llUtECH2T2FdZm`S*pF*a8IaBKd->((EMY)$K#_QKDNyuhq`tq8ZscWKu zf&#J3#w_d$$Nq$!Jjjpmp`dO6BUI(~^t5w-m8*!y37+s351e2;y4sMt@~rJxZD0I!J`f;Qt1TUS49_RTes6C#>z3YLzJk=ezpz`D9Jz)pH$ zTf%7Z|h*_BPEq;+Nn0~O;uR;0~oOP2?cEeA56i18m_CpeOC69r$4GH&@?L?_BFi7bsg<@TIGLAMPGYlW#gCM}AVqN z%_oA8bM)}8@1Q_eZ+eh_e+`YWAHq5AKjl((5JeeA^WvLa`nXVKWnDOdDQdOtB~DMS-9b=;v0$7bqiIkbD?7$~=Z65e_z zdJ+AJBl_1s0<`vSef$)jDGPqiz&vX*6IIRq1iY2^YuETm%{Py!}P|1zo!XDAh z#|Px-=~8Kzjk|9izCEZVuPo1`d>tqU;NdGhvW|`(z08@li+rmWt95j-(bq4gHxD%! zMR3$E-mHGS{s+>;Vsd^awhmET`pu0PqAftb|h%+!ji&sQ^ zq-`i~V-YWq@$9k`FoIR6<>vObA&#@lL~yx_2Ct(z^}rx=@15obZvHT_ zZvIHm%}G#942(nYNl20(TP(BWx`!Pc(R}=TudcDgy2xA-TRP$q%}5`!Wr?A^?tXiaJT-xDhdY=67cF?9-aNV+ZvAyMbB9yDfN)5N0^xpEt=_FbT4~?*GGekyY zduQDDWv)h+C6dr7Cf!VV?o=mHAz3m!A;JmT7q)Y9{HyN1fNr=_D*5DZ<3tty$VCHLPYh(_%P?LXGG9Bb{B>AVU_`_(-|Hv!ky6{TCh4@0*H#DFZy^Gg zX6cxh=v{8sd0 zSVs&-I}KKp#!&u-%5sn#^pG$(MT40+D9VJ6Rvt0I9u7LZ%N|D(wzhxB-i+JltK40B zvzsSJ&AS;KEYFIBQc)2MJH*W`%$P^(;oyQqiTE^ye8^%3L6auzK}mWd@854fvMs=q zCYj30DeS)-?|~5;w;sCoA+5xXs<^&B%Iwk*cJyLESXkO39)_)L&)k9&IefMzY@2F^0se79*uo=f{u&+lDqGQ!5_nf;p^AlT0PTDkF5N%G z?ChU`{bXWt^z7%K4@=mUQ5_Jf^eirs zBB<`B*O%O&%2^K^BD>x9t_TQbIbAKYi~&f&z&CvOW|OeF_1eEH!HEFig{I)LHpp<` z;+6)pr%XPIk97gdi&=hhcjtP9*n34(Cc?w}f>y(@3+iGr>!Eo3H4B){Q&Z+=HJ3QECQ1E*MonuKGp zG3mWmtzcGBGg{1wo|<}GhRMy=f0t|19Dy@a2(M(1#g>Rr^`#}K-HqyyswmYzQ-O+Smc?CtuukY9!;{f+bdT`JR)eoI?# zW9f&Ox1~dpq?pryJw^lj@|=TtuY66_Y_uy61@Wlc>tmkFeO02mNZcVJAR!5$ec;i) zKV9Xz1J>ML!V2Xj)5ssUJ@jLDTFA}9Tlbx4kUWkLK}awl&aL_j-^^ATH}HKwRsAOj z&WijTdyW{OgMz=NyN#1A-HqLV<;UgAhXdt20p+6jY-f`^29#inp7bbBW98Jh>s1;} zQy}&Tv_DapIE(ikn4JbCN}D_5RtkN6D_`6AiigWpirxgTp-zG2$Ni$>l{CFj!ydmp>V_xbqzilPGe&=@Dyy+rEXL>tPLK_oX+4A}tCJPTv_9pcgV!}-Gd@)z zJxMWuI^(B$aG><|QdT@xrLm5fh;Sm*5nGgb;#lZ-1<-3z3nNZ>dUC zPq1%f0}bhRrhITZ%+B5YwchECEI*J)-h&eYO)I?eLuv=7`I=?D@{*VKPH)%#K1A#p zYW*UctvR{&YoMop0^8Bks{>7RQBg-CtZZ%9S8IUBNbDcvx!fg$21D(e*29dGKH%`_JlLb+3&#d?M{XY_thHON<&{PtY+CBGEekHRp?2Nddj=^Y1p!-(Szk!zOT}rC^ zXO<<)(Q2ZU+|X-Jo?6PMAv0N|m;uOb@~`3*R|sr&3Y?Y71bMr$9C8dQ=PJY#Ol z8r;EWi&K78-w~4l%8Bj}ieQoU_N(5k21^n^l7#aAA>e1I{?Ku&7xBjC9I6YY=zR6x zqIM)0MZ}6mM}tBvA(b%8XG!_Z?E=}2;iLW^alDO9-m^$db@`1bHRgkQr501AV1cy^a!rT^*;qF4^>${tt+iM}9bohm~3f6NK zQ_dG`jOGXE1qbnGybdUIOXd^$hrQ zIb0Jw+`3?3x(#8BR`aJDS$cX4Ys+@UiW36vfu|;o6!~D73Vfe>r~*D|WJCM=s_$fX z-1_m}VvP3^-Zx#uz+k0!hf&Cd12I2l4uVDmv>LvR{#j!NQ4Y3eI9bX~K|KvpH~PTw zt%Wre8>j?0MzDD=L(+UDF>7i!mvxpL9REVDf5D}*f6L2jP!zwjZzNqQNjNIaCEDW5;Yh@#Obz7gn6qUtR05$1q|VHAYs zE$y3a%^zmwfQJQA5CK~gMvv_a(6Qg-_v8-NgUVmBejGY=2E zY4;U!uuA|}60?Dv=g_m5UY(QM5Tuy?+XzS0Eui(~4-x^eA4Y+Lj;ZqJ^`F%)wB6zUJhmU6p(0E$B6&SM~B*2gKVR zRtAV*XaOp+V!|g%(56@IT)&6&W+~QY6a_2$1JFN1a}RzuN`PM1J6)D+wuVb1XcVyP zanN(7IpF1fwEkpuOzjTULaEh#R2`i&0QMWsk9ad=v8M@Cl*@*-VKzi2mNKx3Zf#H% zl`UE2Mgo~FzZ|7FhXd`etK&^I zCq5D7tVfjP%50UE@In=eqGNtRwDFrveOPI8WS13YK7fhhma)jMleW z_~px>yyL~sf7jlk|I~BEEVjs(fBJM_YUra>JBrsq&n+CPVZ&a6yk=uQph;<|Xy*n) zQ*Ud_gP2Ug5E&f_fiQzWyA?+!P=^W%dLfG=yX|+>zWHWGde7o#YY=W5XrWQrI~Dg; z+0cT9PSs9oc->8^Um>46&!X2}3mKxH4#uy`JI76Fcj-;82&?s$YR+fANb{|IAA&i( z=pVb%pAKY5UyA`#<|iPnxdnrb$oe6T8mF|;(I!yi+F=NImzPHzL6dYFAK%9~Dt2ee z)fa&Tcl)fVWJVzrv_Li`jCyQ9Zh)Qme?`3(1T)XBcFbbn6d&o{tLezw#M_0kmLFXq z47(34N^t)93ZkQ zz3H&MNYro5F&tiPM1=wf(n9~vXWBFHSR{jcCJ7C=e0i{5LG$l zEu;bnF!9s;CMUiAg-f-8mJ%3Hq!~#v{q}n8+^Idj1rKrQwfI zM7*KMHbo$>2&5B6&f$lLZ!Al`5DAyMx(v^!2UpJh2X!@n0%uUr`j{ht07iUoCfg5I zp2mE#M*{&{>Wkx)K!V)E$)dEhm78MMG-M?MZ;JXf&zM{`ksl%|w{Br{Arq3=bB5?m z>Yf-n4;tjjZsh7YXsA$=mXVTk;5{TDkRec4k8igZFk@zNm!fx<4bo;1_Pg1ky8S75 zIB61AB>EZ}14|1F`~CeMJ)opo3Q>qfm6sQ$mRP+VWU_eEw>@L@DD8PxW0XP`%#CD> zjd5rtLf+T;l4NAg__dkBx~cacyEMIMZjyD?H3IgNeIaC2qz5&XyZgGG4jGqb0(U^w ziOSHBFtGR8+=2Tig{)5ec0Vet|+%}cbxT}9AMt!;^I#7 z>sy&?@VA8B8)<_Y0Wi43ayrQ26CQaqQL6Oa_(X~*lv%|6FCCSTK6n)6T#6-_PzYM* ze5i7bTNxGLKf~Rb_C|?p%P_22FL$v)ULRCh5z`Dzh>d-p{j9HX>WZHNJuqTPD^K%| zi;Em4W{8|(x96@K7tENEoSY02lZ3OK$eHc8_3178Bze+K#H}@jEBmC|UC&SXX(DNB z8k>TPFtI+$!QF_Cx%Z+%fR2SFd`Z^Y!a_-<&ZlLPBv4&Zue99s;&=lIj+N)j>q|pw z)=pkY$vY|Hb`Ry`$g%GzxQ3=+e$3k+V(bL=mYkEmzc$q+R(cxO__Qd2OEkRr6)H@U zo%(-hJeI9yVvxDL7-zCG?o6B}X>Qt#iQSz#MdQ5jH%lWrO`W63A4A37$uq!d1tlsv z+7C#{KsJ6nI*}Cb_Km>vB0uD#N2ozn>sRZMc=O~hm*nm{*y1je^}+aSXe?d7x%^p_ ztePe~KUXWtY8^#-kAZ`+h^@=JU6edpLBpQtKdcW8iFELJof-}n7~m=^ zn~J!5tMXr6U!Xy9!GGz1cMF9Kn{3piH+fsXjWO$mL6t3x$mfO0#_uKaHBkCq@;_Ya z-FrH5x(9wNgb~Tq?Aq~uG5;t)2rOtrJHYE-SAw0fX>sjnON4vU4Ylb04eomm0kP@Z z46^Ab7#To-k!);iEE;w4rj0~yDztZ`R9Z+fvUfRdgtg~)GK^?xef}va{Ks2VUCvz6 zSk8+f`0?E02jQkE829fZD<>y@gnP-slZ@4_r;fE4k8L|63EoQ<)ZZ8b*g6x;D;{po zpFHqv{c0p7R>#`8us-xcG1(2XzD&4&b*Kx|^CSW-?RjY4zKmRLVBApJ{;xAHvh(vJ z*x|$({Gk!vWEQX}?6k~ZUV%ogCxNxtt41l@OKClfqy9o*i2uzft(&Jj{f-bOyk$yB zEcPy`3N8ErvFQN;W^Y#uVWmwJ3CX}f$<32@K}5sHDDA{Iyzdo5R69Vv#9BY_;zzID(+GuE$#wR25DEu>+IUmCa z)3Lenk{9Kb=X2Lru-i9^)`v_H^r*xt&f(@7>+&#WKe#$Jr z74=+491Z%I4*TV9R4yYQys@!)#!wDioOO_$qmlIPl-n9#x12H5^1&&4GgjExN30f5 zULKh!*l}lWZtv_V<@!)wL@>UVQ(_pw(%!KR<$HhAxg9z*-x~!9k3%d*6+HL?JmQ#E z0xV}^+X8KRc-@c`$Gs(QjP0FH(=wOU4QvH-W)h_m^gP{_Np|#@9w#& z-x#4oUQGQ(MJ3#Lc2LZzA65Okb3%rTnfdO_eX=eA7=bhE>$9LDO;Gq zR?HNXLhoPXVyC~rkWR<58qDn+Fv_Hq^igcvo+{frnQ^6$Nw2>Odm4A@c4{B@xBI~3 z^7OvP@#Ntd=N*cmmi;AfK2td@Wv3{8!Rw51c)vpL%6rjYy(AB=uLr6+vW%s{CGmb53_sPt7}6&u2XVUuVd)aKdEj$4z7j)r~BsE!M*dN%$EKD^;>Ie zVSTZ#dq%%kNgWPKwT@<4DP>eADV`L zr#mgJiZe5FL6%x%R>OE-v`gUAQ)Fyx0}(O2fOM0)Ey1iyy`Ws{|L&dTWKES!HaWLZ z^(n!quDz>Ky@P->md8F5 zEvII3aN10lH0#}airb9h@@po5zAZk8Lo z9tHZhp{+^SJ9l_?jucOx zd=K=wK5*k29ORfAE$V<5OH?7ZI_J66`)3KX9XC})Trks3c=-GmPg@5jJDboks+g-` zgr;Es~Y5^DjAq63vt}!u$>-r68LLx&B6f={M6}xZecG5UpW9}j|dRnbx4dLSc;2cK-5fdfz412fGZ{C>(@H{ z{kbUc+Q!HC7@MSHK=c&UlvDrmVl||^93RQCO(aKY1Io26QDu!!khH@nipXcI#1OCE zs^$E0PatXK>`6zATX)(H*btiFQ>wJan!KgA&F zt{bai^`@p^->;75OJ^sRHdm~MwO*VzU)oGfUcCzQzG(fMSQxFK)YI4+uH~@$iCmlP zlY$umrki$kxoZ@&n|fk<{_Lza4&@(g$Zq>5D729+M!vY&B{>1Heo))r!l;8~96=P+ zOhOV8|C1dl?`i$#*cKLIh~m1U0&gmhbxB&GopW^Dw&NtR>H;O3E9UxWL=Ea#-Wd@y z6E_L6;#aP}J|*2*>X>-DUpCXraQ89SPW^riihhwLf(R94{(QAXC+C-#ll@?+w92X1asLnVN_HU7G3QsQL1 zXYh|hAZ;J(%(w1mMKv{Pri<-0+U5OtPRnn3yAq)2@T(Tsg!-28?&AQ5g`a#*7FvTp zp9rhA-!QYjn*EzC4{$OP1aB~{WAQijLu^a7+=h7kwW-u^|+`!n7YiM7b3u0A02<0ep_D9R}m{N&>2F~k9efFvePSWrX+3lUK?cI>M?H!g?;7blUABWZ&` ze1fN-zz2*j%xV{s+Dr+F_JjX!3M#fIFy5V+KXoulhMzk)sQBk~W_W%5DhjqW1iddp zL(LHMR*To~{qHJpQ$Rol$d3f_5vTNmf_O?_E(1nKBTqg2A4{fTC@DE7ONgTOd{G%V z7#S}$2yAX9IU9jU0&52iy(yU@in0nmP_B!(^<$IsN(MZvmu8A4OC;!CDYhKUCF@Q8 z{6Q|<${|+Wy~aHzXgFVM*)y!~6)Y)RZ%#i5%2W>^kj26Ydo)u!vHu{x>hn9w$tm&- zlcq1!%y$=W8XFB^W6gJN;UJ^`FFI``n3D#Lmf3M}m$JPt+Ou=JxmK%fyM;pg=a1Fg zWQ9(yR%ENp?UTR%iut`xB?AJQ$#h3M7r;-t3-jVQT%$5W$J}A1S1pXX;#d8G1not| zu7e0VzUG#wNB~<>eZA%3MpSeDi!%WN8R&|re^(@{(OOVo-HRA`Ty(;pKz z{8kr=W4)&q0NsvhU#gxlg`8wtX>QAnyZLiOU2quouFjX~ckzu;w2f`5-l5r>pBi&d zYhJ#bZW?yM2GSFK9N7apcwmru$c1e$f4oh*0w5eDPbr({si8~yX+5GD3>N`m_rt>5 zEH+!)2JJtqB!B5~aUU6*4B+JCs7EWQ%fEPmbAH(2dy`>1wT>uWR8t@S(pd=dzSt(ITK)tL z@_5Oa<T?5(6Fd`jV#%hz3ZyBsZQmf|IQw!8R5;_@n!fPf$nn4}9$ z!SB(kmY2myZ4JtUa65FQ=E4XQKeF$HqDvrA zs*ZfQZ>L3tLp2fNe|OT#$JN!cPfyKHPi91+DQDm7BiBl_e3`*aCzamVOh-&}g;(Qg z*YNH6m=Wna0TFv+YIxu0xTqLNpFn}<{-`v~h$&T4>763_>c)tFU|@mQJ)tj|kJSf2 z^&k7yE4vVxiiIUO<}oZ|vt={q4#_{iLM%F5ExJ80U>C~Ox_qD`Xst=Uy^Z}EkLaE2 zj-<&_=K+|$VB(-ECK{v4xA`$&yK{_k>s#bt2IIM#PLxu$cM_564Z@qgJ*k7^edU3r zs9iledQw=Z9kat9)bZfDFC{4)@|oyUxmvje-X9CADs)g_<t|DkHsY?w-XVal2(qmW!k2CN2r5WTpVNMmsIQLd-(S7isXL3-Cz8T z@ch^&yud(@V=6#TwetP@mwazVx9#Fz7IXO@Z3G)1T0TR|;e3Ek*V;JkW1Zf&cgCft zNa=5`a|^A7MEp)l-z$~xM09$kIP!HqHk}+i>}{~JAc08tR~MY>J_HvKqeR3i=fE9K z)cvX_Y06<)5y{J2%YOen>m{X#Ju3=I#(}pcfFi^BPA|s#6jUW4kG6au_7QQImxLF| z*xEX5Ad}m~JUf#4S#SN&(DPcPSP02V`9u+PX*l92LX6q~>l4vqn9s%lrVv0(>j~yLzE-!TAWrOiNps&Pq zcCI9h3jSXuB3oYd!PP>WcT^OE^e;m>iU;FFG~(+`-ETmXUv-H%;M9xu?OQ7#qTl($ zAjdFWtK|QEtrI1(mX?(7UmLW{9v;ph=Ow{$ z$e4T^P!s6h><=tNaB!*S7us+jHjs~IefK=k9If+B?wrx$c?K_rtiAmkzcxq+l!Cb* zu*og{l@QJ;LifkRb5dxXfbsjcOki)%{GQwD-)zz36joJtEq+zCdjr3h_N9dhkSO?Y z5G@Orfz@-_vVd5W&x+`J6FqMGOzHK~OPTVlAP1^R&CEG&A2O%)Pt{3*@VU_>5yE~GG?UFgWazX^;oI0@&r#bq2mfShX~c)joyx^47(W{Ol(hs z)fK8P0qxSC_!ix(osYzpNa@nTWJ8q^$M^c$a}xiGhhr2CP82BRy1=M7GuJv_0wU6* zM|rWfJYaG-0Up2xvkpNfpc|_&e)zm2q=jg6e8~?U?_I&cz2IKXS{_B5+wROW#y=U! zS*}4Ii{x;-hID5-`wDb%#K^$$JHK$Ku1kq5^LECeBA@4)W8xfn(ta+$J`oSvd zsk!CUxofp&Lj2C&c*)S->HytS_qv6#VwuCuitp`8W@lcs1x7~i$haxlL_RxKIjyjh z@k)j-bzNi_)eYaAoxEtUE#TCW=5t;*QOFh`8Trz_QoK5`qMxE4KE_vj@4l=1+cF@>Vkmkf)+xvP#E7MfoJB-%mwzznV z7xNwK;d0pi+mYsqe`i7wMrrQnyg_YQoX6Y0r;N#tRU<`UesFYF3m^*O@8+5&R+3(T z0}3vpzZ4Z!g%}NpdBd1HO1J^p90KP1vZ!wy&79WPG}~Y?TInnz+@KJ6ygkJVMJe2v z>ZruT_qJ2ICV!czwDqXk>t1b+);U}pt1T`nG^`XuLWf9aCN>=Eupmd#8u8%8tOEc} z-@hZa;$@TPq)-nBzd4@d664(ULBpxCJz{=MqA-9wF(i z2zVmu<$l)(UZJXvD`Ah-ewnzG%yhQmS9EQG*pC8xoe44B5TOR{lUxkT+vfpn5s)7` zVy;Jjx6lAd3~*Z%=rG#ixwl1pE^DjJROx3MCiOAeBA;hhcrY8ku7J&)olvh-XyYIk zK^vFh;d~#B4pOhT^tjXAK$waY|d%_JLqkuvHh^K<0B75Q2XmcG9 zVn7@D#hWGDIYUphWDLDBP$cVTd?SHhE;n-}4mczf!(HT8o*r`a%*?3k>v01);X*LJ z==2`=*Aj{kBcK846-Mk^5-<~{R94OuRXDbhjr()^mV}!-clLo5sXg3EGA?`Q${T!B z^)8N3Mxh1-lpdsrnRt0X>s2(x$-AY8n*y%)odQ#b7T3-F|H7wg#sbovb>zI$^&=-} zUS5W?fB+~weJTq*n~7}!DkrD+=%}E4o+fVG@4}Dj5{NRvLfEMbl{$=nNP%`SlD`bR_3?@$70PkC`zl4ifI3-;cq=c zESH#QRsOfR#Bg}Ybq-kxcKOUgL_vNxXZG!kkXgI!WYtM^{Q^#mr_t)>n9ft3Fr$IE z7JkLR4^k|E23?)ov;hVlT7B&3YJ>!s78>i_01_6c-oJj;o~*ke^6`m6j8Py)IIrhI zq6rKPq#Z9C352{{X>s>y%g6~cI{viADi~_?sCFvx`b|y;lXCWwC9?MM;UF+s8gaRS zR>DB|OwbC(ohNU8)GhRcTMdJafMn{|>9XYyx9d8HS#ug&b1L5dBjvq+pO{;hMAD~k zrMQ2%ARLg#Ob_RED|I12|GW^0(CO}jPYPJRyf9;7p_MpI@izXD%#d^)M?I_ff4yBJ1R;*<4~+v(}QfWb~oEhUKt=#`qi)soBZS60nm*W{w2XwU8e z@@_o4lWSCmj?tkY%Mzsk-6Bd`#2L_M2?oDs;$dJoAqp&A-9X;qh>srFoOzQ|4hh`F zZQY-zNbcw`|GxnaWb)nv7+F6y1};79GZHhtke#;1^WV!b1_CxJWJjxPn$V(M+=>e~ zOq!{aeV012t+DNuD5dcA2Y<6HMl9U$CTQ73oR*O}H0Dj(2^eyexAa%fYRg=21>sGh z2ALS!*DKu2zL; zKREbEzvo_F-JM%}i;akF5PXU)oDnF%{)&@h7JNA_jB?(?Ftox6TSWZ%*S-rPSmVgE zcdXP{6_xx{MZfkf4gA|0-w4|1$~UYj$lfJ;26}%4rEeTy%S#{#m-uA^ir!$J7R|%$ z`*kl?F=41BnHKo{HF2`oeHtsPI1%Ln%H=-S7HAMYa#P$wLiIl{f4fFr>H56gH#RjD z7d!O+=_!9reWQ$IS_`b%7C9`ui1&%P@$%Z0cutIPanO0!InmIYi)3pN~Y?WH=v0C`^A!% z1_rfugo+19(?HIt?|fP(-6#J{si%2&&XbUuT5t0Nf+aW$AX^W!y_#cZSZaaDF}ra= zBq_-|yG7#%OyOKy41!IDl@VxSpK7#nE^XNXpV_CIFzsb+xDpbXk{%P^y61urRG;827QE z-+vH`f31cAY?;4=HM+&^&K%Wbt*uchsI2`=a+#9sU+vBRvv)q?EWCpaDLI623;d}F zBBH$~${jEqHil!olAOz|h6r$}hTm6tvcc=#@HgAra={jlM59oztN>k6DXIO}gl?H_ z#{Nk+B1Uy5UJ-n7#QHh#QU_frY1l7eL^a#PRRc13!e3nBw>@X*4-C2HxETUW3?UoVs-IgCJ673LHWgroY1cMn1XVES*fHC|XM z^i>pv^u_1cml$X*upvhS)z`u zm~jgRLUW`1MrV!ZK3C($mu{Td)eX}<#F+^3xhFpkwNGt^nlprbEi+Nt;3D=faJ zX)mCvqQIm&S$T8|!bs!9g(!$DLzKD~Mm16-6LVl-a5X!(cT3zgLOPBE1&v9Q+r=e` zkdhMPbpxK_?wJHkz=DNL=&@p;f`STWwx7X{iRHQu^IvaomP{y3YuFe*ggh7k%OStk zz^B;>_>|FqfjSorg)!J)Icz5K78v3_`hU3k>bNZ1rCXHl?vfHgx+O#&Ku{2+kq&7P zknZjlkd_n$q!b0|20>Z`l?D|AY3Vp~zwh4P`Of)k|6X;&^W67!&8%5#%}j;$iz`XV2L727=oF(APD-o}-wVP@l~OT6ca@Rcil; z!xHlpKJUCI*~f=<)jpJqTCH=Co9@p=cYU#1r~Rs`}I6oaj`Dp;{7bZyV~;^@~+ zDn99GAR!h<3Zk{5j8H&%LVLC*rdZ&GerLox=cS&@SwZ*u!{Gb<7)XRUSd?Ae{42j==*Aaz7Uyz|C1kByDi!j&33$$)8Um1j9zJ6_f_SWs~Ty6Z&p z4CYIKZO~(m2c$6G%q=psPlMTubAi9OCA2@rGkl;v*l12lrvS+?9N%{VA_oE-`S?;| zr-L%Csey+Bq=_~VN?Tg^w~zlSy(-lXNmk!5H>0OV#|dxXe%MDsLlcino>Nd-n$Qz( z-`UA#7$6P2?lZo3Fd4<@hT6k=Ao6Kwcoba*ra)i^wmIv%0HykE?{3EP^ADB>iOjun z+-V=F+p@CPAcipm_FtAPL;YA*hEU_^Fy;JrcM=o-8x0ol7E#8{aTJV+NqD@Q)1B~$ zJvXEk_4RdH6i>v&uwJ~O#bMzP1Z!fB4E=+AJzi?CDQ1R%Y<5jr_s(GM3Gq-KF~ShR zJFIGrFke>2S5RO#AIb?N0q|`(aBRA$V4v06QS+2)osQ_UH<_bX$gdo>GDW8McFtPD5(@_Gp~rskoTr?eT^N{GfO z)vl({dL;f9HrP@CXQv~6=1Mb_6sKom{)n+IjJyVrXUkolTTEy8BiY>Ff{*V>;Hw&QU z28=Qs9!wUCWSl7=Hd;ul1a) zYq5$yhgN{V)bs&y>**M|uoXiZv6i6fhAZ$6pbYf_P^VzdNyP`Lz!dn-tzB3;XJj0}yNrt_uMjl7^?ftzTK2PNiX8eJSEy9-t6Gcu zLJY4Q9M8^Oh<~m!kq-vExb<&I%Guho`K5vq5?^pyT0rzKNAL`UCnQ+Wa`MXl9F&5E zi%b*`GkTY5MkXpkv&E^o{w!jk`Vx<}SQtTXjyYqBFl$??srParO0#~d0VXDdfP4SA zIRVrEQ=(gHYWW5!@%(&Ufn zqtD8K(Y(_=n}A!w9DdHxHakn9lK!p8c3e{N{1f<+U@@r^!wsQ_9Mrr|RzId-xUIdf zX`D2Tb#!`M}>%j`Vg=B20q+l4XBZ(*Rj3b=;CpMALx=DV_53w1NIs?nm}64pHHhgjdf zxdXRs{^E=tM;zE&5(WnR`@_?3PT(0ubwBmPKbP`+tZpX8;kD003aVIV3g>px-QBrB ztA|)-X7;cA(n*M-6>cC3Gib38W)ZQ9XQ1tKEv}@y9T5ar*oK%|$$KXg{AmIrh6(rc z-r)NiL)qOHBnIO*Q$teH41IjW8r)CtYic%O@qr596UB4GSuE(OFb1l35OJ$y`4%W> zXujQAQRe}`t=(X%%bf;`ek|$(WC&nPBVero{+}2E5&?dA4Q}c~=0_h~FWNu21}hGk znLeb_D5U^Db~sqDAdmEKtaT_b=TU=BmC__I+EpwV)-g>O)4$e?4S$*;eFV@)h$W?< z@2G{K^U77LanFi6&@hSNBve;VZUH;|(i-FRl$C|-$MW~7KA<^7?Z>9@xTK&2Fk7Dr zMT^ll=$P+IzOyphoW^S5pMG*+($U_I_;92=;sESqo_+vQ-+Z=-ygu-P1B#IlV4-Y2 znM9|ihs*$A+1qSIhk4-g8X9;v13o1=u|F(|pkume7|*SZ!SIsDaJ&Scg^aQp7eBEV z#hTm!^p1mLJY`1QtB@U`^BuM?uz-A~(J9z0gH;UclO-tFq1c?)Alem+ym)EN295wY zJ3A+i(oAgNOt7#(!^fAA9OhBF+f3oR)Kd;yzlfxzspJeAJ#5eIP&nAd8nk>S0bzgF zs;=;Dpd&R2m=@jMW?W%krc7YmMQV>LBwHh`f%I|o*5NS7=m}%|wE}+p8Y82Z?VoD} z|5Yd+KYA2ZP@;p2@T37k-gm$x1`|+Zj+mBqA0qh4;0yLruK^fG5eM1fVG|mfR#{i% z+g*&V-oUPo@RzWQl?JvoN5mc~goANI&!9@aH(?NbkPj-CQnLcjKO|0+Uv$5XIL#k-W13ngF=%nTB$_gYKqz(FiF- zacN49{%yVtZbNK%6@bf^1i?@MZZ9GT@0!5~B->fl6eA#bM&Tvxv~&w3Rz%PcF6s1i z)VQUr4sS$Sx}(N+TvR&Xly0W6uA|9YrqsDPt{aN0@a`PznmHU~&K?c$5EdGB`dy zcr3LaN~`r*fBdyCMzFv0i{87kR=;yS4Gmbz@hwc;Y0UZbQ0oP+HTn~k=9l-RG}f=a zK?8a3QijCnZL<$izdstFW!KHiRyDl>r!SEIW{!?v;AIqXGR|9jWoh;2n+izdySsjx znSQgS$?9x|tu0C4ox_s+5NB1@CjN9i>D9TMBCEl&ox*oaG6d>X#_p9CPoFFzm2=KY z+@e}tnNCGmZ{p-NM?s1tU*c0}b!waOzbPUriYLtsK93u&2}?lvLYEZ@P}kR&>qsgA z4U#gQ>;J&>(EV3{aCXTIOJMv9t4L)L6$CudSt6x`%y~cV`VKpd7HUFq$S<(*w5}Zn zpff?|in43po#?dmj;>7>APOL*6EW`eoSpCkIg9z_sI(M!Ysa#kPz;x)jEhYkL$+1f z%l8*mMR;Uys2NR0hD|%fDx=2t#qsgVrP(*naNt^NE$cr4t_SGY8sEAnPLJMr?}~;+ za?a1UZ(}}(8UmQro6rMsS-=WNBLuY&Tk^tZn&ne*}DLIaF0`ZqglzX)^{MsXNUU zFYMU{LTe%Q=G@C*%ddXfVSv4X@q(F4W(+0lVW}nHZ$KbC)Ma2jOv=c(?EbgEy4E3L zC^x%ECHk(CN$PL?=PC!H)59S{OyH<^Wv{PE(-%#%Yhdm6?@zi^XgSy zb)9(k*o*zW5|ehsV!GIEDk0?yf+q&}?Rr*5pFtxoBfQ-%cj>}nyz5;<l&FMrm4zx9iyn0dlg@`*3gN9{ zrCvZD75e)s2@qUKyR5jmg>P6d01QlJ$D8CG4lXWA>mdvnnZvZWRLY>M{<>mv;m3gZ z+#w$pKJ|VF0tsR0kCO@2oJliXNM1lcZws@`x2Ix4JQn{G!ARk-_W;)};WtGOc2<#y z;Y-%m{I3nYnKW$A*L;G5up=&YnRCIh9h%F{Kx~W@4>7bU=Kc{<8Z1b@*Q+wzz{bG`_rbyfRer^4&rqtBbB-D z&CvrQ!TV$NNg~Fm@isM0Z1TrPhzJ3B#$r){{~#gI$33-UfSzve(^ zgBCvU9~!TW_fkM$mmAFLuPG(u(l>5@tgM`K`b{Mh&*S2Bmu!FiL%fV{!0o)7A9|yJ z4%qo&J-@gZN=P4J`YD45Z&+KS_3W9!N-lf`5bX4L8WT*?fIQT=Pl4aW#}JF!|4e4U`^gzE8KCeLhUy02Y%*@-wcw`X&j< zR-=X!%KBgK6TL6nm0PjdN3`0jh7pUvM(Lopk63emJAI6uN(F|k*n-73Y~7*8Pg()6 zFtA~-^+ki$qL44L*quGh@%4k^SHucAF`;md=4&^JTmtI*x9$c62V8IXT5Z=^(GGn*z-S^7r$u!s~04@Z=-WF53cwFzxNc z_r;1v%h@sihBkD@T*)7HN?e-bXami|Sn*%XdKwAKoj?VGk zW;FU>Ha~DWR5TI6AkNazeD3_aW(I{Q-=|MmPZ$$P3a{wv?*e)9;AH~V?F0wnf(O(^ zN}Ihf)EL-_UdTI(|6vxuH9`WWsr~(u!@s&x;B5*JyQ4!1^2cp+^O&amdhPOvl~J|} zX%bXGD)`$V!Qnv>12k7zF+r zLnU^F7nYBrz!G-3qtgTiQi#G;3f8T{SbSvhfZc)ms97jeb+s4g7u5BdFE6((3Bp3bW~UO6;332#<^=d30kOyI z`~p{&Tl=s7L2?iLn$uHbR#8#>tSma4nTF`5_1QjUl^uEEQWf0E*Dmn*>K>Gm5yL{_ z9w2q6-mP85xO@}(EnFBAQ{@#Yui{}y!wBsMEpnu~^zmn}5JwhxkRMO$MM1Nb%X|z&QSYTw!a^1XTE z2KvkU*sw85&GK1+2tu$!i8S*0b6bWWBiO$%d`}#wn!F_#7(Ue}DD|^gLRT67OoJm# zZTJQ~0eFx#Bz(o{-dX}D@+ogF7UDMvCNuzo{U#oIP(TuwK*=v5?m6h28!d`tf%>-K zh4$L_)+pyPh<-2@zU}m=5}FSlm|l`)Q4pQ}uuB1jhn$TK!||SAH}oxzOjh-}^K_7c z2kQPX4onWGhe`_xW+ketVK7Otz)t%|vx`cq(jB~-f$K`WvB(L7RFNv{@#8KI(*CwK zN!>P5O&V0lna{~--8LIQU#43Xvir-r=q_b&VIessc%lgkMo4`R&Ix>dHK7VEgIRKB zT~WjMq0Esq|l39jI<<%Y=O^9C5 z|H~KcVs8EjZ2C4|pZ@&x^ny=7fDXDf!$FM&k)hhHRL1djTfx?r7r0j-oab$Bzq99u z#%|xOJwudYZdhuepv8WX&)+hT5U81Chj{ym;Ml0;>YIXVrE=-48Z5)0ZN^Eue_mJ= z%B0dOtp>_zd&`VKT83?YlR5f7#8&K?qXWT6@tr?T7jMWA70jZS2@RCvZcB|1dXumn z!{w26EWDIM*GuoI8a(I1aLEzpx_ISM@{{$oLNPd2F!2*f6(GP}rq2e-47$700>+O- z?Wdg&tHpstp}cnL1zkmZdm?EKuaZeLM8MfpT@Aa}!j^sxI%8n>hFH=ZV0NOZogyWa_Fr^=rL?r%VbAsH4Ot2WK4%o%!&kp2j0 zT^r94DkL$Xz8dghG=mkNJWvbJHEMwwKn;V+vnlkx-0N;Pbos3urh8<4^m=+eB{-D-4l}*KXeF=D__S+fD6>Pg(~b9b83OHC4R60 zbMwbW;o83rQgV>euh)Lw{_|ZVBdf9tTx6z}FRH31IhIw%Uor=S4=Naa=|ciaD-M!A z_{m|ETfqa(^00t2eTxnZ`&ye(05r?O-0kcySpKaP=le*Rn_w6y^dp0kBMOMrU}FeZ zoA!T#N);Kort@h%Kg>gmgbunXWRjC)X%mUp~3g*wf9xxB5cLiK!Qd?+y8U@!u38pb0A0=efOtBpy&KcmFKMr z{eGkRyDb&3@jYH>&{_>jVtF3)I=koU@KqhmOosr_AeHvol5&hwl2HG$#BXWYpV|r5 zy6)~+*ZKq$j=Bc)|G|(DT;fE|tt}iSsPna|j4^X1-`(1ry$XY@Ilx`&%$Sm&dbeh> zqA?CGiSy>H(2KdR!6Z9@!+D%$<0bY8tMl#sL=VI!Q`zr04eEbf>l4nd*|A7p^}73iTIUZ>s=}V>@P;?@v6#?7OoESV`b+H_ zL$IHLo!wQWQ>Z=kIU<`NcMdo&n2-Yf+1&jaVw8?gZ*a-LFFM$e>8-J7If~ijRI5E2 zjwQwnyM1#U7@XFlMfNKzlbWkHm0+JGZY^Wq+r?5oT{}^l|NN+s!F*-Abzlwrx zq8v%eAaHS9VPVPa-_-t;CHfeiD6mqo5F>CF9>AnyuslS+v&Tl%QsiF2sN#5X&Qoxo z1;ZRufDW*wqXDLn>dzOh^BMVsm1-I}@BTzVYEN2|P*9ZieHO)QFbxZN*=lXaF^f+%hush;#(A*taK5 zjN1n8D z?KilmFKnFCcy5e%(JkowUtJ%(Krrx_K=j>R0UT=RB(gVG8W{!blIc?xd|- zYfuv2Z9vA*ol$8*9Gd-IzR5cU3v4Ybvoj?AC&<`@$XROT0`A4rVxXA8s&IW{+B*i^ zUJ!U1p9HEIjiy?)SAxz3L+CDn4u0P)57SujbVKFC+|t4B!WboLC41OG8JC_i;__*|%n4$z82C;4v8u9wfv&L;25 zBxQD}w7ovG>gtiE>9kjZAO9(bHH?D7rcS>DX6W$C7kJ$t!PZl{dKbZ1nlC*dy0UQB zw5tQY3_~d)l^Q5sKiJV(6#gnGwIYw+`Oi0t!{ZjTfj8APg8y8xuj5fZsWsQ3#lHcC`2!qrm)pEAvAs`C|2Jj=p6M#}+8y($r-pZ$jeF`^0 z>yVGc69jJQ-x#idsm`)rN61i5u3fIvvAv|JvIjfY=eqyt-}!|LiSJe1IH~qBTtpa% zgobopOiV0Gs+GbtZN#JmjCk>gV!m!=7*rRXK#Rs+Z6h5bU~Iq!KT}UnygVG}R6S^x zWRUt93;OS^EAz04PK-u;2(Ln4eLF;`JSyeW$3$=N2)?|30=+sWU^q*so|BTuD7Z^` zX>waxaK(!=j3RuNS@}+re|CiC%TpJap8y^KL?2MidW4SXJXH@^VAMnyv{;|_&gNow zWn8$R1$ri3(@nj;%1$89nf0@o<~{wLT>gVZ6uIwhK^w(&IHaiKoq` z;%rN_WaP|6`SWMQ_#We9I}0oI#GMhg7QIB)1?THc9)E7;>z4cRM=Od!k+e(x|Ad(#oG#czKzB4ZQ%-(XGkvh%{GfpuHmmi#|D!Gv>t< z+5;`E7|VenSTiG1Ur%E`!EFHZurpTm!jxKct55#Uem%hRn5;_dIzQ8`amu5QAl~er zzdql5w0oZwJ|mw|*037|>b#(G(!|Sl;8`pVK@)61PqUfM*bpX1*=;WM4oAffz$oxc z(2)50`?*J7CX&6b@CDwT{?B(!Y);v;9nKGl!<2vuDJ**FCY6{_IK<6?7r4F$#^F_) z?zN8BW8>-nEG$1l!^L$eDI&$1ZaM<{v0-Q0^@k5M>_UGGC_!79OoOt*?>M}gz@aAZ zXEZWC%<%L&`;`Ai2FhCAm4!@CCTxwhIDO;3+n;X<#9VjepPYJ;#l>rfd#J~xrm|;= zrgVI->-Lk`_+H0hGi#WISAtV?SLON@-h02Smh)m_`bkJ#=+Do$`-TE8IXWu7eke@l z;o-mP_nd^KW5L;FsYf0I>nbbvZ@%Ie^cG!Fvl$Y};g4s&2?L!5JJqH4+z;<5E91d# zYeDlcqUo8zm2al#6Ezkp6jT9dk)4#k3EhexOEBIw^bSm;t;7tl$A*Xi>hKd zMK}dhAV#X@ZX>txXjif5bt;MRNBG7Mzg}G#krNRkfgfcC*X4nBTJQ9ScCVdf-u(^t z(6~5?@lhON<-0NR1_q?xzQtq+E~((&wX%{Mym|pa05&_bKYCQ0UsQyFj!tRV=)wH( zVffbH+@Jz^U!gOy!xEV4@~Uj{3g<5lpZ)bNHwKj5HLj0xckU1o5&58)kk2;N*Ei0!q+o6h2KTiI}7iVuOm|Bpak)z|z10oxCBb%Ua#eVS#(SrkN+m7^y8)GCY} zW078>ogb=Uk#o?O$pCd^bTGQ8nb|1%*@Q71l_j83hmx7W7VT@aNx3@y|{ zBa^yjl5`8mi!rScX*2hymE3V`--sr60PDhqN&DkFcW7Z{aBy8+(FipxeS4+efP;4z z<*|=%V>fng#;W)G$ysLY6pkokpPmLBuh^|OgG#-oG4Ee5YkUfyY49PIOmT4Pu8%{Mfdai zVQ}?jSoHx@jh;g5itN?<8%msRtlT$mVjH|Syrut*+{XTT$4oA!RAY-)f?5DBrTJt+ zXeX1F&Jz-*n`yJi8avCewy2ItLVR80KzwK?s?@TiBLGrQpoFiih69g zMN~L4mn>}&#J(ea|6bD1$m^}6fk;QE6ARyC+_{81eRZD(>pG^Jq^S7cn@i%6l9{Pup{6I9DJXA=-0z5l!^^!BJ1rBsXCr8%C%Gg$GJ8k2TC@!fBi>qH1RfIRqT|5o`rhid-{Zg6>B`F$+!%L> z3cAM4-C3&X0NV};!^4?P%?lImq;JlbQ9UZuQ%l5;c3b*xte%( z(ksXqiIddPK@0*NnOcrA*taSKTz_7XxIsH2DZ_&N1lYwwBq)fVUs>4(H;nG}T%c@x zqbEKIsbKc%HNW(%tjK6`;v&cIKXGs}!qjqK&1-$u(skWh8MQAiUS{F`4PAS!iNEcL zvP5jPG%L%isxHH2E|}X@HyR9%=pl2M62MDHI9BatS$+wdE44I7o5|owg zz>&p@eQ`-s)4kSiVm&=UQ(ym*t1JIC?)SHytFdR~uY{e#P=#~}-+i%;j>jyr7ra_p z-^`c$ZdSkhgRZUp?KOXljsIBs(+YI#N^{6G0wP-7`+w9}g>#}$UlbQJ)H%ss%Fd0g zuV*MO`58QbIfv(g+5UUNnv~HWQ72!x-W{9wGswuuIHbYE+`JHc)iB%WX2JDZnTW@*xaGIoaBx2@1!L)G%wpIreRT?6xN(9e9q7w)MhPmjnVcyx!3G zc%q6M9E4+YRjq!_fj#Ayl#pS**xi`lvO|LUt!`;4s`mVm#oCwHK&mfU=0gnleSOM; zjPYBvk)7SJ%yerzT24oY<7-?pC0+PFzx=+Jb3$A zRWJLp!HXAZz-y6?3*vOPP%U9%OoMs<5`+)4jp=r0cTrR<)xFFFC7eL;#ADo}h4%w%(=Qi{z?Y)fNM)kDa!u%8*!%?7q}FMN8NI_Z{xxLt234B%=XIrBocD+P=KIbUKplBIjDvbm92e8 zTq1^gER(r4=rW*g%xG!d8U(MZ#6ke2 zt4o`l{2ahP^_MSFz`07fxk(B$#%?8tg-O6-$;ib;4TrB!E&;FK*%QC-wKdN%wQiUr z(H>FfDFP@0x?R}z{%V_Am0XgMu`DpSzyG&Y5uW9^I!-AiX86zQ_Zx)vYqMxAr$mQu zMrDb&w{Jj*zZ}^a{`4t>-fR9%6LRvu`svP(r<|EKXDQj(A4%qVlA!{W<%<}pcxYna zr7yOJrsELa0}DM_Q*%*4!6?y}FU|Aw`H@4pKQa>T;>^J_wdjeH6A)DIUH{rE=sa)5 zV<2|9vhud75}O}88yhC1P&>OF7;}jUW(Kn}AF1g^T{JN%YR>xsM}$4GAx3h7cBy>u z^db!Ep65Hw@j-Yf)?w%9E~u!$as1P|UwP3iAjrW%4A4rnwS8|d75NK)e@oamQmWJX zA|y10g^v%**Vo9n3AP0WKhsgNv32hX!Ia-V+_s1HTESae1`;0YS1BkBI)^IxZ^w_l z5PhMr+&3`5dc_o4`tNs?X)i>@4+0g(SBs_8b?q9=D|B~){JYebjPWVc;*y2MyR49z zwCkPf5Red{Gh=Xw#eiU@FYk#_D2-~HQ2}M;5lObOYQN_54s%Pz>v#~t4q#IwZH ztt2Z){>`G&TNCB1G&HZf8{9qIb|XnHX+re?P_e10aO?ccS~aJy<5MPjslYu9f8Ngh zotO>~Nd#>kc%JTObEHwF_{fJ(xm#N-h3ZsfE%cEd&h~3Y7cz}m`Tf(El9+Hl+;te-3|>8zfPDjTwonAJ_z`X0Rb+^A+CK# zx$xUA48AK$zd>+(TUjRmK#FDAcV$;GGCDaaa~?Wn+I#0GLP4>yr26lR zeQ$J>l*PcGVZzV}hkJsTNqHHFsC6qJwNHu@;o=gHzEGiuDH(X2oaiF#s)M>BR;ZUYoGFxNnpqXYsm&2Gy<>lQyJv!wY6p2jNhhWVmgCQ#_q=9 zfieH&Lv{652ozlVo6Nm#3>`_b=Z9hbCza4JNd!CBI%{pw=YLwo!MykL9;u!CtE zagoSjZbRV*P1tAkM5Y0Oz!r|Hs-}XB;evTL)8LxiLV&HYal)QAtNGCLX2Sc!SHM)y z*y!=$bV+h7g>$pb>KEAjiCtW7fCy(ah-C)12XMWBzyrnIpM-%^L#Ica$$1wrY5dfH z?JiDLT59Uj{vS@LpOC}`6ma32Hw`8E_e@MM&yL;03(eOyZ^9T~Ca^kyJtr3~Zg1~i z7>U`A``Z9L7$X9=17ZvfUD-cb^!*po7+2gK|Js|Y7isCb?E}~GPWHRarvw}wX4hez zXqF(vrjL!D8~|Ymq14K`A-v0MU)#bv)$FS`};o1v$@`+hBwxT$}v9eFSM#VI~xtpOn@cn}wwmzBD6(BirSuiHMGq z($g&^nHB_z6VcGxg3)VdF%F*uJ{rooQv6c3`}9a&0Jbtk#fpD&b=L58aUq6HZ}`;I zMS(df{sz_Ase3fTd9BoCmz0Q^TTrb5*(78_=vS}WA<<=aqW5pQ?*Se(nNq_jAzXQR z?VGKaQBl{*D}T=a98|)=z0)3!PYd-%zDa8(bQ4iSO{;j)8=#)6QX}rv613Dyp8WKU z#ka*ujz`J;i}!@po@lm7=; ziLffXA~~5?wUIs`Sy!y(Wy}jX1NK(zpYPDF^xE{x7|H+M_gY(A^ZJ?H! z{QQ@|pn|Qf?Hxy3L~Ly>ukU>QkxlZABYi(+x~!Pn@$9A+MWNeE_ePtg?(tKL?FDd# z`4Riyj4C-jt%Gcc+unZX8Xq6njAh_nU}$Ro#cF&QbIM>eGvVwhj$DC^1k~ZHSFZ?O zs@1rxjJQ)!G(|>7!{T(I&=208KEwDQV0;rq^$8rpT!^FkNvct=T%D&vpYdid0Dgb~ z;2t6cBPqsOvB)493q4QFcpEd5nxc3?F}K-O;C9E6$~(>soC) zj=4TVAG6jurqRL;Rhv5$o~r;KFs>2KX-41K_F!<2j{QC!a`WVK3D*_7w)Z( zPd|tNj6wXqqF99A@Z8-oF)&okC1h9>^t80JV4T4T4!%m~3zbZO6P;TN&GYLHNLp)% zW)$;t`<8+dZ!A zoU*so)gM*>rXAdv(XIA$;(>`k_c|G(M^3(WD6p}K*4pmA5D*j-qpz&QCZ%sA0l$a! zA#wvLBRduC?3hsUnlQW3(eGF*p~b(ktzC|oO=(~5t(AtV61()R7gHBn+TEbr>DE{d zDALfpGVdkgbXysD3Pe!v*#D-Ve(BH1o~XB1KGS)LZyU#|@NV3pgt{!xKM_ z2jF`l3Z}UQ^_Zw53dbTQc7Oy>UUKp(49uXvmwnf4Yo5v3d8DYh!(Hp8#`>E#cUOK_ z_H;$_AUTcy2`S2sOXiIBOGRuOtaU&t@4t2i4fA{l!9ZMH$+Iy!PfaD}uCw)~wt zz)33fJz&|df~s_7E>M_&K&#qvU`1cXtN8B2I!!-n|9IKXQ9i?9X2O3Yy|DL2I9e;i?a2be&j#=Y$sLpzsZu*78zENkW zmTv}D2EBMeMY)7~L;n$9R!q!YQc@S}NaEh5^E2v^FFL@?lCG~G7usrOonCvra;AoJ z#B}UO!U*|H{IPTx@H-GyuJF$>?C&>#B|NqAPc#Xznot#+|M`}T+?p)_Hw-tPpu+`C zN+OAbk^!6{#G<0!0FG~tjT@lDvGwvHvI06k%&efGG(&t714d(D-ncV1XyHoyazt@ zWK3JzhM)Z0@a{~l-s4hH&Di?mvb+QG%wIx^`IgmBNjkFgm%w`R7&G9hsPL{&ud2>* zqRN_@@LJEP;`;jB9KH(CK{@CiP&ru@o1Al6Z1CKc;FtI%9rVppHDvV?KM#{!dpV^~-* z47MQV=5~ZtM$Ay^jvdsH6#Tt2r>mtE;l9R7LX&|5(9vPq=00X9s_gY^vY{dDB*?G} z3vWk0xX$eBPeNffg0P}KKKAo#QkR}R(}x@qw%MYaaroC$Pi;sA*if2ZL*8N;9SW!@ z=j+$YyI!aqI3K&wRT?!WB5}&i=05!9nA0|OGx--&bLqK8QJKPtz}yo54_0QCewu59 zBh@G)Af(aV9=f#FG^<8~#lR@(#%OG;u6*Bwt(q2hA&uE6aCM@b99ex`sMrY!5Upg1 z426R>53@RO@Eal8X(s2MT?PWz?DMM@XAd!j-h_&bgh|uSr4%PqHQ9PC(ga*w*GJx0 z@F2G+KtrzGcYWHMR!;8D%1op1Gv2om1uRBwWQtHKfL(w=NEqMLasnS}qVO_q$4bt> ziFh?@!=pvw2;(!gPMMT`apYPCgbw%((1nCFaPYG^_QLy?=N=kt24!Vke(&T7l*+KB z6;)eD2R_W<35mEZ)xt2|(}UgY!(~25$IZ?93ApxK>Ml$~jC91;%Z=gTN^hg>sYF4#8wb0__bX1eelIlp2k`i+G z{|8GRHbd2&L?U+i^5c9^9#mC7Bd8Nf(^8WA829o55Ef3t&x;kxr9@{5L&FbGF@Y&$ zXO{-Qts_L^pc;$#(WVa~JYvKa!dzQ8|>^W(>TVX0RGe%9zQ7K_|kN&t_L5MwM=_${6HxCrkS9E>-ftSke! z3PN{4z5fXppsk0SzGDGe)hF++86*uYFfi=rYnNL|csWbMYcQLh!zWL9`UD}%(QF=s zM~9J&!UT)Fe{OO_$vmvt92v2}78kde`o1>mZ^wdUr3#2Ba7U15kH{b6SFyi^@;=(x znQa5Y0;=f5wziKp(|T`apEp9urIdKiJ#|lQ2wJTIarT0W>YP+YUJl=dv5{14xA&|- zg^W8n`J0YUEwr`Rjg3YE)0p5xq`{Si?J01nxo2B=+uMS(oLz-`f-Yt4(f&nu=k5j@ zfbjADpUX~8O2&^^!%oAH*fnXgR%R3*3#~bvZ9}@2G`#{5df)Z|YzR&g| zx|{nX%ptx*BcgmLj+UCPD|gS4bpMYl0EtsB?Dw^M5t$ElPtQ-BTNo0PoS;mQm$wkS zjQ-N}A1ImRlbU^k)eg<`!1w|W96_*(tEOE%EYsJo z{P|FE!{5W+4D7+IJFqEWi?n$TWGwkS;*QwCq3}Et>B7Pdq?lu1*b}gQN}HOxoRM&w zrWSB95(HJ!e?mF%`E6mLP>y7GPl5cT`hzW|t5<)67#^h2L|A?|&u=TvpHe*PjSXRL_&uZJYMH{&|8@ z!0EZ=y>@d$Ln7q&(9&{&^w|DsUFBiSay@wAuhVt&im`t*#PoE%|7y<9_ z{A-=&p00Wo69GIN_TDX_+5MHL;NXC)FG3i_v4e7wdFOf%R%k#Yf`PmQE$g9Yd!-DS znV5mkDt@rsxIwL`_~Np5weO;W&@&!fMW16jx*fH?xz`U}sX+c?yJ9+)C*OPCETC@C zn9@eX$QBj_!{JR9Rz|a7H6yLI_5_Wz9)1dE_9)sMR@~j1Ks6MKNLnToQE)2^lq|MP zc}v)meUOVYHFbE)xaEf0^PHaa<~l;Nwqz(#VY<^5pj_B`ITc6{CY!#hH(xHRx@MI0 zpIfE@v<7?~q-IIlA^{-1uxJhgT2wKuNFwt~|LUdI*7_|kH-#l83iAV<8IWIFdl?{= z#bhN7{AAOwLiTaYPIu{T6(0Zx_ND4Vqfo#m=_=@tkxVj@5SVZTfyoSnAP9FC$_VL_ z`^-@#_vkP7EVO|}{-tJJ-*{4_%dZ&6RMFd6tT2)zl}-d~kAU!6zZ*ph)KRdj>j}bN z%-yYlEYHHB9jM8UTUs$ThKCkZyEhytPSUOoj{+23By*uU%?d;OET_Hm<{_WO7h5U=v>YLW>ARXw?6w`$<8O@j0~0atc)QC5Y`3QuOBg4z8fE z4!DW1Uinh_t~2OT_QD!{r0qD?KUauF>I4%qYeoV~5?p!`+SO=U;RLhgKBKLDCUlT* zRC`%luRzU#kVu=exlki|wWK9{>{AZz9z%m#RNuCu^d77{*U(IL!RU@%Da*;NdZL;s2#UfP#di%HzMu zHeXcnfWe+{*b*0bAh*<0d!9+6Ar5=`IzZ{75xq<8?d?RukP`>Be2wn`B>{a&JeTIN zyi#Pudy<8507#cFUxlIkm@4VdZ#y_pdHi{zc(CE-UstgBr4uuVe_l1LTH7z0)IIJZ~c$5<|$Hy*{Gw_THk0?|=>;3kQ^l&NheuhAB_}90Ch$#Ya&M+RntZ8q83LIwS9>7y_h71J!H_i?2uAjM( zLgnr|5yAk?U?3>$&Ol2XX1y|x#mf5gmP%~QwqkgEJTYKH(_W%cS}kF-5HNkP*96K2 zmgHn*JB7n%=Fu04+HKA{QF3@KB+PQ8kw?sH5W#MDM@z_P9Tj*>L;%xnDn25P>>EUrX+vnvD-?HX;*j z^PC$gI+`(30Zm+vF>DtkMd>C4bnCi2+d*q)Utu_)}QfN~K%HhXgUe*b4dDx~}<^Ei`aq zI!D#>RwXW%13bEy&1bqfs|TxFNx)j5UZaM-43}NIyhG3`?vmK!TBV}fWU5MK|8Ehd zeCMM)X<3^4a z=48Ehh@jAb8qQ_+CmZ-2f@<9?0A+@?wBUXEBmx)eG8Y&3$E#tVjevg!gt0i^Zm+E3 zdl~E%^^I?#X~0DJ?wG!foYGo~-RA1JXNE8*4&sph4>@?u`vv9~dlDfv{rTDB>Nmf; z-EuB=4?J#Z2p}x%NEx8k(P^|Vh&LX04xzd&xWB&)*@R7ppiI6 zDL&+OL%!)+?A8JKNHK*8XIPy@Y?IfRAp|^5U?;Mzz!xenlK=w^zi}%c%56`YTZ{A( z=#Qx3=K~8+Aj?PWJ(47v1L2DF*U+|8XJ@t9cQc3A5tak5kDf@QTHG(r@d+5}G2twt zCM*ABB*@zpz{#7MayUHhVPRQdS^kmT388GMH+y7HStFDx6F;&w-4ysc;A^Q6W)Tch zFh zlPhI!vulq|!JG%X9{FHLH!dhsHKy$(8CiA$5W=c~;DBQQ^EaTS-qu+|z7sq^=YEo6 zjtxP-hA)DEu=zR6j8g1fmIW_GCtyRU6W9ct@gN3}+I;xnWNO!NNnO2F&LI0s(YZ2U zK|pNK@FG)V5lIf(pD<(eX;>LIkXWm#b9poDAB!)y#plYD2( zrm6Y6%iMO$!NU2`Bgv9`QZYF>@q3#&QN@dkLdbgnJg~62Y5ejRcy$;d4+B(yo$c6O z`|F8WPl^7w0CDg44PY;|p!N<0h6)@MuuK#-{Y3y3ToiwNIqnPR#65RWY%rO1KjWny zE!VX^Jd}X;b};|}vLAanv9iTY+JFb7>k_EUXnc&^geEdzC1&|B~;d;QGX>=Db|NF$zceB z3CP`Vjh`nbMeu;?rT031>%g;W+?$Ym(gcTPxfQ9@dJ|?8Krums7BMU+KU$SN$tKDu zPWD!{KIPKKeg3SSl>QQBjPl|Yev4MFt2EyeA4wyoN)JI)PVogVc=qzNwOtTER$;)8 zLZJv;f9XRikK*egX~{=9oc9g-qYJ-{N9YJF;xA=?mrR={WO)U*1%WZ2-&%;Su6=z*CxB8woDLb1X)#Xrp-{Vm2J`KmeK2q!D!2 zhlkt3&_Nf1^lA??O-feaQ(;U@Fg&uNf?O;QY8tR3TMM1Pvf|sVtmsC@HDQ&8M)SIT z-+(VVc?u!48S?oYY#0((1tmpTo}Z>f#Wci%KefQ|`|;PeNAHT4?7#Y}4Gm;HU9ZAq zgr89RGnz!h9tdmLW-1NF94s^mNjlS=N5cBMd_hp_Re`?_?CqDg*S|9BwfJEG>dHt^ z2)F`R2#E=0+V3-jUNDcl{0?KrY)ng=fW}cwt3jb&P-lLF!Zuc2{q;ljyP5FaU%yaF zF9Rx-1k{oAHMi(o9~J$vtHob8IVT67F?T3K%<)PD(H~q~+;9Jft@n=S@_paOMWJLx z_Q)tj8Ic*XLdr^|kkwETl94T&JdH|9B|D>#Qjxuih(aVg*%?`xzvJ%pdVjv3_vi8J z9~sYe-`91W=Xo5*d7NXyHcy$CzXCqB82S7~-^ez?tjP2)!X^;Cu8$%olxdZa&VvHX zFMnP?q*?y!)s=<5{%Z`{+VxMKwiiA&-@r#(KQm|(RJ`)K;I(UK`S`7*zZfiz!rBl0P1`|pmsP1p4Ap|D5F=E_mi~&!Sl*XH z=gf%3vqRDASh1bMj=9LnzJ6?MRCiV22cvFZp`@bndh?e33+=9%1e@p^mA9j(@!>)V zC^j?m@>ZT~4Q!tDrhmm?P2#9j7&zl;|A83;ZmK#F0eHpjI8-{~+>uh^U4{G5ruI_X zu*qxn*(5TrxVXL0IhI#fM^W}g$!qJ>2fv!r{r)D8xvoxX|5{6O077HFjw+h70GV=>O| z-n0?b@Rt#UaO%d?7HURQWHD@#7nJ8GUHzfJc+5RCH)aK1>-nCdQjZ0>s_N<|nM>!L zl>bK~cIzU{1}g|@myoU?l&xcKe`W-1ZLd#t+Q&*+9QAElN-;lm_AKo2c8_D(9@1`r(@2$~rDiW2qJkuX}WR%l%np zeY`~@zcBH)6T$QQcbO2<{2*uumA%wDF{Z!mj0Av&tCq|=o1Wc(zz6fK;?W|%K zo;Y2U`}k0f8q%V<{o_$B^upC^&Uy(Y{^=LRul9J~{PR25Vzgz05t*1T3MI?{gUR9E zfPjw-nahuQSjN*3i9g&n7ioW%oqc$+TSUUT<`6RTsM;J~hVr?Q<8n*$W}v1he_wyY zD)zh-lC)32S`Q;k;auI0QFH3+Yi2O#u^1i|mgJ7G_jXS;FfiD&Z5t1`yNhRk@~NlX zjXjB@(T(5$UcC6+{-&9yu`%fSHo=?3Z62ukE$jM=4$$v-r%XY)?rVNpCV1K;fV_fI z7|GJI{IO6N4Jds7ek;$-aW@c9RgH(Ldy&I&ab3SpDtCnp))%WBg#Dn-9+!cdnB5{- z{eK*(|2!r@lSAnIjbGDt8v}Ta6-FFrC<(C@xuNzYa-B;OWPGYtjn38647mgx`1;%^3Ny_PhgIwscE!`+I7F zK85ZAa^0N1=>Zw>1E~v&f1II4j*7jyRaznPNZw{XGG7VnSrlVFk0v)Wb>oc05F>8% z1QY2pA=ZF=L-mA}=3+hM=?@-EF z(6*1Z7KlrBhS+r`q4AX({2PB1P9aqSxM8E!1>4}TwqklT!JE0DK⁣VKaDFOL>+* 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

bdRbbxi4_(t*B)%N38~s0wW6xjySS$>pCmm z>A>#sVhJaIqtzvvtu(&*I0 zwISF{8T+)bg2=EMr>%oiTxtj0NQp}AG!Q7w|YMfWz z7$jdN`mA8t${=m81exSE#^tPQ?dB)c;+L*KDjN+jNAluTZElTcc|v=F6}1n%%n%9< zb|9*Jj0X#ex52qa)8?zeu zya75KHW+be>gs~XBvE7^H@;1KNah`oN}pE7!8^H^Pb$9tR`H=YoyBM^rz zU7vWe!yd3IJ;9E@eY<_Z>9GBLuL{TbL_;cxkA@J$aeHaMOz5hK$Vvn%2o6o<&crDx z=ap46Jlzkupi$g<#i!Pf?xv8~J7|o8i=V8t+j zcN(fd9qzGW;&+cz@VnbpNu&dRUyeJARM0j(JHiX$fga3bxiT`?p}=Q+YCZY)ZI)(| zr02dOn(o*+$S!IM^>DZPe?QX`(%j$sK}$SS?*03WL{1A`^uQOrWZ`oOIox5ZQ#No!(a(%#X5 z`SELRD6Xe#$1sH(z!~g0+0xR|o}S2J(S0cE_tt5s;=>0F=wV@#wq@Hwvo7;=zkmRR zbuB3{D@#Q9|6}Vrz_AX$zn_w1WfK{pGBZPVNXm}vy(^pSSypx>AtHrjkI3Gmco5lS zL?qk8WAmPG_51z*?|Z$Mx-P!Y^WFD-?sGopb3R9>AWHSM*z{n&PTCVafth$N9a4IF zA~@ewyJ1p=SVq4~&HW!VduzO06O)pd1q8@XoH(IdZl||iztI1If|3CD;lqcZuo#*o zXj8XwF=20O(PH%DeMgD2mjtiq7NHy*9J23zAb%VbMQ!eEiE@d7GNQsJJWvED8})=BBQugK&+;QhSN+Nv2w~a zG5|vO1O=OYR%^qckhFFO^ExG^$Z@jnhcw%zOET%|Qw!hTA9oDr>hPvW`O)FvoehTi z&+FF%6=QHtKpNs}*`h39^{2$$qvU7W95fU-+oam0wCS+?%Rc}!g7EGD(<6CjThQXB zjf5v?cy^u*uVV5Rf$AfgoF{r5-AZ=>Q($}y7 zd1k{2!wHJbbs0yx&3V&(MWL-*yYmcS?8BMmw5Qf*<{ghuJ*UFzV2ApO>T`^9waeCq zOmr@ee4;O6D`tximAuWU+nzVmR}|Cw?%lfv-ulfD;E{zA={*7_&~41q-^KMM^)EvY zwaOk01%Y5${{~} zHp=sR*hQS{Kq2P*HXj@ud?s1Mk@}Pj>Frb-9!fKH-jQCS%k0U;qS z*g)&9SNPEVi1c|}T*%lbN5U)mA4$Oqs@LRuZ~ev}$kC#JQF{rB(+J`HQbNHeH1-K2 zfM}T<*2+^pK0c5wiEd5%2CHVe-#!*3cOS1oq+<4?C0sV>G;uKG5=5*&e*8#zmj2oW z2_LL7Bu>g97~p|g@Haa%SS+@w_niXN#`wyRo`O;}6I~dR^>tX-FpW+UeEk0XduZ5K zrBfHv7t`FC1YJ%pLs1H$LJU1wNl8gC6#7qpQE#RabxNw7X#idX8*O z&o3!Kv6n|3c9H6o3=|uX1Pj>?o_T!XjG#?7rPS_h9CFn1ZJu@=(o^XMpB$Q|Ad+#5 z`a2Jx;|VS=FE3(71$wcrst zCdoKH`_(vk8ZWK&vLC({l{-c}OO5gQubKaT)4^Rh*p8v5i-(U;pU$0=jp; zSPM;X%lsjFx`+SNqxo}GAAGh~WVcto4>;^E;V$7mZZKA-HZKft`W^_gLi>1fffs;# zEH3cna~s;7axa@9dnxd z%|MSfa$LMH=O*BSaajhKPkGVqlkaPg74MM`-GM1&<~3Aw;fbpew8X3Wn%z4D43BAu z0H(*JWrFM{{k4(Xb&Cox3$TKpD{og0w_5!kLThQxA@|w9#oJ5pvtg_Tb?1wTZiY7; z7I~pkjc{cpE~Kz-G-t!Uv#ZFAE5xk1B{}vDH_S?ymn^?0OxRQ+$i*He>Z~khixy=Q*C8d{?0lr|`3w;k%x|TxH{P%8yK#R?Knvysy0hcabJQL5U#o2A3 z@kQd3!*_Djnf3Mc!o%%L^%JwRmW?ALdY`+xU>cBWXljP!XypQDw-kvNJI)J=uJ=O94hHz;KJs$rTH+FZ(voiBJWg%rQO^^U^ zJPvj-XR=`Oq21RVi4D4Zr`$0#B!uwY&3tO+-dxDX2VYjP*7{tR{ZP`In^J1uE)I-3 z2tuAq*Dq5G0gp<4#NXfl(bSBf3gq$iUo3OUCAAu)T2M|S!ew%EnjJ=?0f|>kn<}>rjc3w5lrmvR}IvMFCo+T4wvRi!9jsgyQ4) z!)rAv@@HH9H)boRrubB$geHw(B<-B1aa-M87{Md4a`!7@G=gEkytE}IeC#=-1rDQ< zlXDXL!A7T4yrY5Y)%)zi`?h4rp!3L#IC_`NUA%aGY^l>Rs&2 zny{})-WeFd+(Tm2u7_5gFTVk8dj=q<$hUSTJpcPR={ZMq41RZ<9@6u|YN@?q|3MHL z!0|1Ak7J%c#8vG#=tMTiXS-t*UUsCRtIJMAN6CEk-dcQislMA99k^538m&uiOwXgC z$1aYHj0~UP{^XFEt*ybqaa&s(DljjP8(={^Z*T8x?R@?9c1cOe6DW_BagL*EPOTiu zYv7XnvtQQ;$fAD{b+C~@%g6yeo6?*z)|x1iTN{{D=RC_nnQ_!)Ikmr zX_QRR>FI-AOrhQ4PYDs|-3BL-kdQD=&YvARPeukTpOuD&1{54ZSXdY$LLR{LC#q^a zMC&@#x3-6Sd&%k#HVA*r%s_w=A?3FRaDezgdbceA#DKCECW!k$o@PjXlBsqCGJe^2zo`E{ zSAvwdz$E~?5nL6h6oZTbW4VJQYX_E#pobr#IHFXGdyLqV*ppU8G}$!BIHt|B=xVEL zsCz?%#a(WaYLrSR!s2_G*OpGiH+m1LF3~K}bePtEm0F@&qUta$e98o_iVJKmr2-PGvS=`?UdA zGwWdk6iFdWhYvGP35vkw;0!t}^952F8E_1MwXVHWH^2aH$8!O2I}qENM>JUc8Fa zAC6ahkc5PUBuWQJZD25yq8?wA)6>(Tl{JaEg+*_Pl@d5d7X$?{WnN$gLmxjrIS!&b z`C~lX+$|+mo!~tD)QRbWMSgv;u)faCXVt~GReKP+r_G&{^uCJh@=hW4B>SG###_;o z4MBLBCVB7QVIF+RX?A}4E&PFoU^N#|Po#u1 zOJytqfXd!&g~IIvFCHM>A*;Q$^-YA#kHpraQc^o_PCz9NFo{dNp< zaCV^=5n)Tam^DLWv>Uhd65$e|xrND7X>fM&i;LB=Nx<1Pvdi=6YD89WVJu-+gK?uV z{6etRpl_2O8C_QJnw)~EX>^owZmvy3!HX3ujg>A2!xtMCmOn_`YHea}LVkY#c?Ggc z7Z-<4e*gUJ%GVk%VyLO01H4s_(F#b@>ZmF5zxYbRKj$e+8~Q`n&6e$n16d7Tbr8)f@ThAcxN_k=db){Pab5v+T~4q z*f=;ut*sp)EOVs&umgzc`1trBr{B&WaCG3&Z7A>!86d4RCQ}fH zfsCIV*wS^WiA^Do-~IUD_BIXV9`{W6Dd=cruHpnZaAx#UJikt$rJfN??(Ig3f9)!n z6J@WA!i|Oq^Q1eLly^>XJ$@(fQT;R(Ddi4}V(bM5j_1J_gUL@ahrF~rKAK8M9ry2+ z`nj9es{bl^9JAtw-5)P?d>&`flP-FTm=BLcv!s_t<(oP? zaq#hP=g_a_e+r%I|9}BM{u5{Wy9gIo$A-yC9e3I)0bfs_rIENNv$IMO5&`Wo(O*B_ zKl75i*T!UxE@XL_0(PZ=^uf`g69E|L7A{ClIh>vU5qOf#mput$={kQjmU$gH>j#%9d-)%q8#KH6k zsk{oF>gT|WQzloo7;50S0=i{}EutH4#+K@GCkidf%>Mk|l3RGB<}NyWa*hk5MT{Qm z*jgSV7jc-inD6dz47Rw5zG(fNF7Y;?e5J7i4N~Q4X=x-<#|LEe*PcEWbrtU52{UZ) zwW`Z`w5wm~f2a@TmB$VF2DlnAh4TN|)r_PxY@mVBU3sjW%yXsEXB|6c3ngQ(#?tDW zREizHb3&Wt-KshcY`Oi|*EcdaH{|6<4u!yxJ9Fkt!*`F#Xb5+L!@{7=WeCpzC^N~9 zJGV1{oFxjvetzd4H=wZ)bzNPZ)*zI4c`7Fh69ZFPx5kryFyA1|duwT5=4*B~I|P6f z?`}pzq(qwPht(ru5bIy@?i_+8Q@-a+$MGOfI?_VwZD~*1jLJL zb9Is_nobA_fqJVwRtb6}9VaA+&hfoz8rt94d83vlg)oo?=5g|R3ia~_NEsPp*wTE- zSL^n9kahgYlQZZvX(kiDEh?Bccqq^9?;cRJ@n~($33?8UNSN@}?Lb35lURsZS%rlM zt%>hyd+$NZI4pimjRb^Pr%vJFb?|&pMDx!j>L*(40gMoorLs6P)kvuoL&IQ15-ZV1 zC1`ULxU{sGLm$`C@ul)aKmgN-)i1?DV~;n+wWvJ(tz`3dprNyB=PQ2wX;L{abh?ng zzsZ)!-h!Hsu)m30{p^0CUmi8K*q@Ikk??^T&o3I+$D--fbHTn#9@uLA;nltN8dKx! z5U+GcG=X)9ej=4i@zBWP1GB>9o`r8TSN$~Y=9n;QSJ2Y)LJo#KcSTyQdH56hn+!Eh z`y@)jk&6x=2jKt>?^d4fGw?WKKl6m8v>+oVWLN*rty`okHG)LRB24ivzE{jI^T+i! zDQo=anhy0po@wPOY%yCIkB%5OjP7sz&wlm(9zT8$ECR{?B1iiWi#566?JMYuRz+bW z%@52-#OD^?@4q#wz6ErKmgRt`W|m;mOlhZ|ij4Z8!1J^77z&bKRc@IU6zOt5iH&W? zA(1e}xTg86i08h`D zOkTt{(Q7igMr}65kEdL7=7)|$t#9RLsIv3k=H*E|TsaVKi&+k(G0CeSW44mNDHS_X zs$ll(>$#E4Umc5ug>6|X3ZOc|1=rvZa1=>X+FN&6zt)IHVm@4ibqMfRK*l4hLd=ay zd!zWxHSereI>RzF zfiL^K?tk01Pofwe{ThhL7VBui!@J^_x8*x5j*^n;Rvlkpzo~_-|9W@a7*25klrV2uof?pP z`OI6`DqMcj3EO#6PfVmnFsdn~dj2?%YN+vwy;YFGJ(nw%SUC4{#dmq)aPrsWF;C6j z?+c$K(gxQKFS_x?p`+{Z7S6!|8HGj4{8Q)ANlL%Qwk0LjZ}3VSAJjVd7{_ifeeSM1 zi(1<*oGTB?wud+rx(me_g=*>N-TCtB<27S}*zxi6J7be`?~2qfNF6b0I6PTqm)wk^ zwzZ6TM*Hy|S;RYqo*efYI-vugx=Q;V?NVoC8fhPMeP%P zeLSpURRv2LIT>Nb-^`=Y(i)mGZH=U|7x?+*+&OZ-%8}fIgOlG6VH}Kv-ALl-pp_{> zWb5OABaFdF=2MEzubuFMcNJIqpidUu7?4WlEfe12d+Q#<_M{v7Z^MM%wbG5WXIv#A zA++vc3=y>9fr7z+=SF8mWk_oCTIrGsXL%0y%Am+r!73r0_P=|khi$!uJ)1K^pF9!s z-2M3oI?S-1rN8AohVhO+zOLF$i~^+9-?7dET3n7?8qR2?i_g0qIdjRi!Yvmy(;g80 z;)SyB_IJT-9bR?!+wQ$`J;=?ROOlDCHoNA*LkLPGAVO#oZy|N$Npi4VFTOV6vj_y7 zcUq#CPYe~#+y2-G~ zOU4>@`~csg$`J9^)qzd5s+L9?8mEC2-do{Z^nbmi8#fp{eSCg^lToo);571+U6n-g z4eYCwLFKK>3;RkcKR82>6GJN)YBpYRYzig@w9F0NZ_lD6H%s76);+KOXn+2ZnA=I< z)A3)m)i!Y#?OQNAw1rVZ{y)Quj)mnn=vMEq%_UD-tWA~Qn@AaA^nM#=JP3nD$0ec8 z&j54^)1VtiI0z1P@+gQ&<^{lnQfA5j+U(tH9=&9y(K%fFy~us}M9rG4#9(0nHDnrj zq-{cMK6h5bLJ<&fI6;~G1mGf4&*>1)ix)3K?I_zH@8uF1S!JG8r#cGgpbI$+-^Ru$ zG~Z8z!CL_N-EuIuc*nD| zhV8M^jM}riSEvcwq8DR+c2YR4o0qe+s}mOTqr>K3a5i)EF{NtGm@y^8QAe5#k-uCh zU7LJ8Rl6b&9i$}Q&vMU&?5?Fe7fhs@Yj%C0y5xqL7QN)5q}Xx2*89ZT_IA8cgj`|( ze3s+a+w1o1#lzd~w0(RDaQJ@R;bvsJ{kQid(EChJw`ht6tVARj;bvD(ou1S#pogac zT{~+@<7#-4C7i9TSxOi#VR>V%$h0lW44SFngJeRS(b>u;yAR;=4H)Mv!sTSgZ=O-1 zFT#}wf%^cL_rT!Y&8@ZV`t26+)q_CHd|}mrFO@^Y>oiAnvU!3H*Lak>q0nc>8N0Ui(fHL!RV=F4NzIscOO%lkVSOu(9KhupR0bO+Lu?x@`w2uJ>TG*Jn0LRbk)`vW}HI)aW(9)B~#jFxZc#iqe)?l z_rLr(>k&WAzmKEBM5q6KY_#OD9VaO~(#|$xZd{SJRQyFsik70Z>CiG(1-pJbd3bS! z&Bv}JR;?}J&y-sH%+qXzmj1U-yZp^Tc@2%wC4s9!m9zg2$%8HWcSeh*X4~lx@Ap8B zF70WmzdU&IH_(#Z?17HdHWS@wMOf~>q6Nmap@;jLu-tN>FAnj?-MWk|S{!c9 zpp=$os#$M4)UDhQp%;7cyU$h2MRVyS3i=uyIY#(F0v9U&a9@kLJvWLl?}#mi@ZQ9K z_Y$Me5ztlmo4yMI^XeVzT~D@|JdDAvrn}n* zfE%k&Yyn18#L~*B`S@rXA`C#Kk zPTfg_$gj+c=%Uk!6v(gqgn}tb*lJsJ(aq0N*1Cjf!l6Xy;$UyBi-#saeocHt+s*3p z9l5w!DGrVVQnK{eWbWuQ1M|f}X?Tsa*1C@H zCjXza)6fjj@$=u=8LF>yUGU-@->rf&GSt-1p9_5ywvDfZZ26p~u6ugkt!ebIv*V`b z)>WUg0Q3U@-S1?SlpusQYPOGEZjCL2?uXyNTPZZIg<72_0JJmn@SLTN#ARe;d=eAW zwz=?)S@C;WQAr_3z<5duz4EK8_z;_B>y=)HMCa3#6vKlZfX2xf7>EM`0)T=KdM3-I zVr@(T2V}rGX?vgM9{~wJfgua9;kEj{p?A6Ftmg-aAF<5L%k=ZgCQ$1ctNXNL51gxqzqkaX(N{!~_rcNP|uxGRksx(lq zft&9nmLCFP<)8cz1*36GLI8g;RZYa(e|^~P&*sC=n@EEuEWs;%tk;;whldsOd0nfz z@&e2@xT__dMTD4Gz+S$UfBrnC_x!obZI?^G%^(U+RN8A}v<4KUY_%}JKJw+2=Cy9| zMau-)v!-Gx zMne_x<`mOa&gi5TW%J7m=OMmEGY*E`|Mmm=NpKu&L}G?6P*v6Zy6KRbN`-UX5lX{@ z0RF3%KF0J&w;MRthV=K}jRKJs03w)pjB9iccEGh~f(E}hIt7M}K_pU7;N8lec?8Mf z>44*Xrn=p^^V~*NAJMKak6&#t`tO*fNO+M$`LbYlifEAdN(By3&1B5Xm=QwAd|Ciw zB=r^On4AE<^{STV(S}8eh$CZ`a?(jACMM-Xz7r;(gp<^BJT`e03dwUb;L+bwR=%OE zOjK?+VqQvZlW$y02XsSbNH2yB59^M*_DBM>bL}jn#FI(?ePY|eyhcEzmtK+B42!*& z$Jq23CP*g?&OPr>NcO>rl_){E{XPZdiA=&bLQeo_a?Ul1Q>WS;1(@7a8?k7Bl?`~e z&>$rIXXo}U(Ylcr6Wnn#ZBYwR5IfjS`fC(hD5oCKAb|}O%20`iR<9#KT}|5sWQ3Sf zpF05~1TB@dfsBy3lOs(qLipIwK`=sW>f>sW5i*B65(Fc}R67v|Mo70Yn@6RuD2=G7 z$k!q>`;pAy5EvyENB0dZEsb=!si9D8F>4roX^!0WcKvWOg3)31xT%$2i;+qnd7ksx zz6{o93BgJPOn&|zujGdirH!{f<*8A`Wxlw?+vtmj7J$x;w2#g&FNbqz?pchKe7~h! zb8nyU7DXbAm$_U}BoS&~t!JA7u%tw(_tf7(<_M?a^U-Azb9)esV0V+p#`6cY8#hEJ z{kE&2C!pa`bKeP40OH&O{H?9C)-V{*T`{JTJ=6O^lMTUyf3$ZV2P_Wew|4T@8_tR9 zf4s*GIIGUV4%n4^Mpqae=ChxlS*4a9484$YP*jXSU4T4U1QRbiJ1Jnt2*?UWpx>H+ z06{O|`L%#QD>D;!17pldDYG^-*9m$L0y38OK-Z;Za`xcIQK0U zv69-;qMXU!NFZ^rbNtC}goT?r5*WuEN5cSww*a+hxd34>nfGPfj_(e8H~(?-VC2=} z#(dwX;j3rw4i_AN;rip50`(K|)s)N6p9^FRm=U_7vFDO3(EO!NLLwf^dz!(as?_t{ zR+Yt^?aHsKWLsJeG!5(hmGp^kLI+9}GCDE6gUxSd;9waWj@zxz#!a$&M}3J)cmh3H zA|cqPlvMSCXZZHH{cEk7wmb^b?bPkFY#q0V|$6oL;^ zPbySKBbG#Pq&~s>_|Uagj-)Hj-8b|8mj4MDM1T)_DgIon5E%?+}nVem93Zb3;f_ z5CkyP$fOU{cWZuAO{yW7-;4IiAWJZlTPlM+7)sHH>{`JgDr5i(y8T|1G*t&rQ2~TSl?hB;>7I6`>EUy4-ZEL0@ex> z4gNu%9{|H#1pkL+>Lrg+1dXxh354= z^m#l{*EKZAB_t&wGPek`b=I!+-ikP`)-QVi6Ci^}!*s2^^UfSHGo^HT@E$VkC)xlNjJlN~MKo({1^gM~(`yPz{ECf?zYwnUXAi`KGqrI@i_i z^h-TwS?%%%#L@)r=HN>D2)7UBx8Koa2PlgQ7PC`)ahowcHlowWYI#n7Fjj~@&hO7M0MVh;l)^VmGTQ^icwt~M-< zNQ-W5h1POl5ijW8*9&2FS=mVu2o;Z*?kf9HKxC`N!6dN$+OzMxTiaVKWCaNjBryt? z1-Uaw5-k*R@B+~gJRq0VTs53e41eLk!`$y|0+rC+<{3x7|Q9#8-4$k{= zm{*Ms{(rdu6SOhIx)!w+eBijCU`+yRjgJB${ukPEw{8(jY^u|sUsvM~6;3|a4toX* z0I+#4u+3L3X*^s#+8=8g8X|-$ShZq{8}b9tzLtMytvM|Nn+mj|*iTLR$nlKFa6y zIM5p@pag^cNKfI4#S#B8YA%ft&L!`%acRUV`!U#vlZi^+h$n-yWG1;VRCo!-exRE4 zp)|z%#E6Ax@Ev$;T)T1|qzKM332!q|n8K_^SwEjBhSdqRud4=tQS8&F7tqPurAr#0 zPlGw2GOc?6wO3v1AWR5@Obk{geACMdwBXbb6@_hCcf6=KU7ffHT;b8_LZMleVhkie zA>{|D6VXjKpbCkWJA8*47CYz~L-^st2k72#D>Kb!c~pp!n))sHl>pT@Li~wjcEVz4 zfH(onXA9tnUUU9&YGY&L>C>ly%yOYqZPDk4E1X%4y?#=qh`AAfodH&s%(`=DtTS*j zP=PP67`zk(rqF*9jAsDv0a&;hF&j(6{77E$=wKJbj`F+o``_Fk)_VPI17l-fkegGM zQ+aV~>3eb%jj?Xb`?Qrvn9WuRGur54a>O~&nw@suKUw|e`ie=v|K38~=Z>n-OeGJc z{N~RGhq=sb3a^O-1p)$0T3X8*f3%8INp{bE*}fpUOa78~^4%|I!$#XEa%5QvP2wk1 z}lm4$xT5zEVw;oEUH^F#s){ANeFZDC6SHBqR~UiJ14sO=!*>)EI%vQ==8IEAe3buO)MCh|PY@WqrFqFc5(4Rw zF_Y^Wd?reWUt8j~Iza@*Lg1NkR8!thynP9AZ6wV}5=@ab;o{}X1h2(}nn3NrdB>L6 zOLNJ7tUMh^GQjUE~ z{HQ_J#;sxy7~4N$#8(;uPv8J0IVzlj%^XI>+SV2*Wk}vBwN`-)9|}mRO-m!CP{ikQ z>eQ*b=VofWFnp#BfdoCPGc!TJsxgIRGAd9$k~$r#E1?00G@a0c;98&Uw;<6cYIaL68+*0Yf zA@gWF?X@xWaW;guN*OVi|t51UFvKTHP=zd+;v{gOsD!GFdFtj^H+0`zv?!}>rh z_~8^1@8~Seki)`NoGP(n%I4|ibwNr>#+~CX?wl1hWGq|S!D*WwG51g2nP5p<+S_Ly;V~BNR`y74 z)BF1Q0a`^w#TnO3WO0{#zNeOcLCu4mo6_@FIhG^9Gr#s-yQkb_{xM`uD)}iY6v&`;k;he~u^`w#u8+^XDn3@d!-> zIDKN2Jc{05bqt$NT`b%yuH@zH{PSrci_pYmHhQA=%ekw+^!KC&xC--HdZd}!%k2vr znwwbw2Jre3?ubHR<|J7vpO+*S{=2RC%!hR`=hpFMPL6{HU2#is`c#) z16HB@oZ%RqXL)J!9K0YC#2{W5PR1%W^)mr)^w5owVDKWO{cK5TXxOTWd#|LGBBR_lbP}k2zk%R%q)W>i$F7s_LBqEXP$N^$Pqk? zbCq+a4dwTK$bGb3UmMYV|Fzf&nES>c{i{;p$!}0RbFGu8km>JBn==i?*!{UgVB=g< z__xs_)Yak7Mg?nKoWI-J%tBr7|J^2!E~5VXCeHA+i}C$=f`X?7QxpWF?%Yn1b_pgu zdH=o+DcKzZcMjnsGyA_|>b`=dB?IEwhR!O!unHBj`FmD->ub_~&oH|6RjwEkqA_lZ zXFv0VaGHfq@c%isrp{1-$}@<#@kp{dc;pEL^F;ohX<4vY^zRG&R-nMR5So!ebg;LG zKa#0_3H??4?@@pM?#tu=@w1F2feij;@4v(5o3LOC)4yZD(%g{9Ukv$B8ixt=r{hJ+ zyxXrR*rMvag#MiUTcQ1!s%dvhwCDb^87OC_FS$?xw)f!A<=Z&O137OyAwbg(1yhX# zTxAC6_X-VHT03~!)lcHUx(be!01;RPv8mS{gV3aGlFBGoO={#kA&o=(cxCe1pn)8v zc#I%=ZO`oQG0$3G>-qOc0P3^+yHU#e+Wg;*mZ3tXf49+FUrYGA?QRQ^ZR4N$6N_@q z!})t_7JSWKSO44ts{*vijkXBk!juF|8{hf;9zXyr0o0$Pc-<<4pStO>jUd1(21DC6~K4 zpmn6r5Qev2^yW64y%SsJ%b`W ze?AhIkoq%E(A~H3;}VdZ1sidODDQGLB?|hfsSrVqPfhy!<0e_=YI-?*qP);0y9vrM zqXz>U?U1i)`q5fVDH#KFq|^X^6zD2~%z8J6H}~^Z04yPJ1Lq#~=JgN(iv~^UR5=1= zJyT$mF*UugQnko4@{?3F*w0Y3ZdJy*&F}(?K_W%DbL{n-js70=+vJwoXhIf1`I@B0 z)t*ii54~=#4d&0tFg%HZwBa*De60{#xATP}oA1qtL((xEmKtcov5MGlG2O4vLq}81lFkb>e6CM6qa~NFt;|G$5bQbVbaAe- zQUvh8%Pj|GB-;+7U$azBK`BU)-~MfIt>Y3!ZvcSkes#hC?WeSAJI)v z8k}SmP9bZ*G3o-T{ZwBUX5d8e0m)|MXCk9d>aBv!O|CP9xwr@t`obKZCJlfA&|pet zB=ekNt@k64Rmy>BV1-WX1|9;fLQDpScM32*oabLpdu|O3L@+AwdM;l_4V`c%{`KtL z{8II5ot&)fNubj^@2r{OaU4;hQ3g*T-xNg^i!awR+5aI{9-kw0Ijj(Ig`70jV`j;z*xA&Uz5t* z$Gc(_HJ$3SazkC+4bu7kkb+G*z3sd=P-d$M>0)TG>kFH1x7v!c9R83}tzW6HzXCaP zxHIOzUv=1<1uX0=!`ofF=qC+}qAZd#6Dsw{n}Oc$PFuf)s--5^L|Pp{+87GrIF@%1 z2w=!0z-Z2*+I_icCRVzjV?DAh0J2d{=EV*057JYBjC(GZ4XNwu{(3nxES{y3EKD_Y zXQUq3ITe|V28uljFub6U2UJx*<+#|nbQ?JO0c?FOlDF<0AtY!zii{KloT>-%3_65 ziDL3_JPMU^=t{5ifteCEW4jbGiqIqMpYzy<+Khdzc0yEk@l4YTUCC) zcIbPw55Aw6>l``cCL6zfTdU78r(xa7A8c=0B%XD6O*$`}TAzJ-!vf!!jQ$ry!Mu zj1T7HMA(XDRx$PTMAr`bV?ozd?LZ$9Nq7%~DAR4Gs{)&9bVva;py4vW5(PI^es^6B zQX{fw0Qh52ddb}gHf9}gq8xqAdjG=?wfNf=+v*{r1+oSXjHp&9&U^~=Kq!5= z0Hp>1c0V)9F-Hc3^l?q#uV3CJo!O>8TKqvWo~Ybj973h$GiT4r-n@Bs1M?jdrhEo$ zAM_}p0H$9)W12W7PB;%h(gh=B42*K%Xq> z?n{tvl`dxKr$f1hSzQch<(A4mznkINw8pd{R!ke&8g{ z97Z)8@XAxK0Irawd7^Z_hF3= zL9_7`2%Tk6lvh*)UcfCGc+IRa@S2yOMC3%CCVpVH?|#Ji;mXaW){aE06iX>(*eaTAzlhVCjw>lFX|OD* zO>vKg@-FfBYLRB(Nt7>Qi2XE|AU6%Y(g5pPyKZPm&rMATr4^(M4AGF9PS_>93@~?V z#_c#{3t$}6;cThbp?D7wGQvYLT$Yv>9}MP&LsI1;8{3$~5t1^2pzlYo0#itJ4?Gn1kg5JEjaMf{wUixq|P7b4ak)8bvVth(U zOCyi>WI&yc&wljk=I;T*M~@ysC2msJD?>fG!MVXv3oKf5*ZGCV!OlA8{2f9bqmITG z97?2+sf0Xuf>F%xM2k=Dj>Wobu>l7-P#)Qwr&szlPY)V1?@kv~uQWx`3a&Nakf4eR z+3532VWfNhjMo8)TMy`bnGVS5FwoZHU9Ig6wYuK3&WBZcC6Bmbpr_KkiJH3K?PZxN z$!8ue^qorc!v>Tn@kdQfT>w!^fK0&}$k7UMQUiMnI%?oVFf9(~;IWEqpO)IY7x$yx ztS7h$VjynGqDzfw&C2oDq{T$0-R#R}LkRHvB&)&uj0>d1cd zp-)V_zlyS&nu4LBp|gE1^fchBha78}_pMPI^QV?s%3y)GozbeOw`4XO`lR)vD={ghFmRx#pdDz#j4y*9SEcFVK8yDkq7@v|p&9Qs zh})fFQPqqhClOS~Cp;qYe7uG6=P!|vuV=Y<@f0{;oJZr3%_oAvc@u6n1oLhSJ!O2- zU9!Li!F?nx%0l&v z0Aw?gdGERQUO#tI^R`@~-bz-yn`0K^+(byNVG@tgs|$QZbWqCyPMpS5ZI_72ggGhI z)vAa0A4A~ug+~tau`d!$zcPbP)$8u-7_}yGWokF(SxoiOe+wDz`Xg^yca99w{8{pV zvs1z=-!~Ums?W2)Ak!yixje(l5_CJ@z=+<^4VcO;KUyOrrKLRA zOhHpy#Ci5J8B!&{4+QUG>n=LxU{c6zk^woK^u1adwVs~dkIMN}3ILv{aB*>kZJ&gP zlL4<=D=8M*THgkicm2*Wc$!zB6sra3X_sMAwZ4m$;yj6i(>e(}2*Dbv&AKz4}(rhiKP@gbKpB&oDS2M=})4e}5{A>4^K@saShF-GM;$zD+<+Nj22!H7?@K1^2o<_6d$i@eAlCtKl)NcjYxpsSO5tH?ybTn@=?W zYQH-}L_`Uei)zvr6AjA(*}}qtRw`2xOnx8yZR?P}A)13DmeR-j;bWHDVt;ao4mHN} z#`&p%-~6B_5Vjh2 zkG1sUo>YY3$C8z<{^s%Od+!p;9v&Lct_B<{Mll{%E(wgw=57-{t?e05R9)Zi8*k^h z9qk((JIVU?Z7L0*oEn?g9;mz2{j(L8)-Sc|d96wE^X##F+s*<$de|)=t<%J>STCy? zvs4p(IwyT(%kO_M1fJ3Lxow<}&y@~D1IH>nG(+`w_deD8F&`am7gECDeSuu#KNAuc zr>B1)dCTXXl~HM!Qfjh~h-fW0X0MiWzT1e*%uKUou1mq*zrf5f;&oCI$HBot%RsIU zm!I#yq_*rCW)Kg+ML7dkjUWw}dn~9YQ1JgF7KF&2z!D2u(lW_z!~1gMOwf>Z{n&A& zL>|_dXK`_w2gLwCKKY>ee$+^FcYS+x(gekhafC(u$6$U=eXqKAjB1+Hm4m~>Tzc09 ze!b+LzPgmuHiZcs#U(P{Lhl!t-0X*!p5GFA-%t~Ey3i7g-+O4 z`{KnE_kGvS26|Vic7Mum~w1M32#2fSS1jukc;4ht4+U=}{_ znmGuFgpeX7K%~e_g$ZsGWCup(t-&W+Xi^;!;2A`pkl+D*rc|kug&Ce1MNCs}^)Urx zj2&6hz;lbJs32)=cvLFyU$;zL$C~1WDL)VjeOIVbjy;Vv7QY++o=q(^Z%ru|=m7|*94nI=Ep*9;MPn`b0`*Dd-zR@aW>_|?6|-6c`S z%%Mkui`gYZ3!r53B#hDf)*0p&Fn996jB5c-Nr!JtzGP0mtM#I@&%O094+Jy!DQS4- zdih4HqxM+N;7-h0i{hy*qK3clL~fE1i6n zhxHS@J7BFIPo}Ez2Z;R&TZKaQtz4*#sV|+ZOvt`PSef3MY%a(Xu9-A^(yu@GEZM2^EBx{^K|FmJRSTuPhAd; z^?Ox}3yrEFvPeKu{{q{U`d>KwP42nLOp%);*^@2 z+Es_~iY5#slTMe6imegx_}RbG33$OG`^b3N~SP7}!ut z1s@J}PM89Xgj5#Tuqc>=Y*5q92S@wSp5Jxn|4$}RY&W-;inN=kp`~C`Z9&S(Ac7T$ z&CJL^;DkGO?zA%5!Xei!ycJgx@u5mX?oRwI7hpm~4;S6@`bw=_|E9%xTjpwKgd zDfY>eqUy^!gHOvU%dm;Hn7iKe@gE*AT8aA~K=W&ppf7R9k0DoLmB5PYnrC?+-vgzi z+CSGJ)2#5DyAP6J1ji;|8`G&%JFr~mBFioif|Q=g3;xVcU2B!#lc2LsEi4nyv-LW@X z9r5|+T9@w2C=`U*53H_iC!+^Dk$h6EpW(o@rTlzO?4}i&M}fke%s?XHhD+mMRllaS z6O-vu9zx!#P~h`VqcQt4EuB^>tkJ}CA>-RLsHrb(X}~)Y7%jJtgk;}~T|-H$)7y|T z4Fq!62;ID$+>zS41duEhyENpvltPbDXGO+t9ez>C)dZy1$7OIgorB(yTK z$;$HfERxgcN&N=9b0hQa{V4!Iy0~rbS=pC{*~dQHugGB%DS>A1Gvk%q;4{52BB)H# zb_tipGiBIz*y~M~yUJsXzKJl(HLl*~^81YDi1ZP`SigMt5t(J!=s2HG$PoZ9F>R00 z6qfEO5@|Jtbm%%EVq2lT6?@Im-r_BYi-7QF-IE#(KqU$qIo(~4e%l!t6$O==cme_f z2qsc^K&WmdAu%r9itWGaeGoqY!7ghQoe%*`vD2nLF(^|g_Z%)V!@(|%AjwojqTq99 zXYSg;;2Z@C#7;?wn55{xy;o}oRAq=DRs=Moz$XQkweos92=r(jB#O`Bu~**qR8>6- z+#juJTtMoEjpA}`KaY-UZ~dJg-p&|nsmsbcya-$2cHGJ{qnNAc;^*t1?)9F8DG2Gw zJMldW58QP%A3oBY1v=WjuWue{&TvYnVSWEh5q()%^3hMRfMaX1D!4!X^a<}J&-W`3 zb%IRoBiDIPO*;>$r~Ol1S#UrMwXjOT^W(pst9O+^SwYyxibhit8ZO9CS>1hi>r0{m~>I0f`+SRAf_a2^pvJ%}vBV1ZF2)B+PRN}L1Hk5(WY zJWWUlgY-TTt-vV}hw&mkrF-|-f#j+?H`iBCq6NNT0$VV`IRnTj6wD}2k)#5s?6hzd z);xyD1Vq&gfIY;1^s3``?gJ@70Re;*PIO+F2nh}|x8SPINP2HJfSljc)YO<4FDNB2 zXhEcIT2@ZZD3!@(IOj{ekfpstzT_NQLK3Fiuc5*;P1iSB$e8W#R|beeZf*0brSeD% zJ(svYtVY1#CPK;vvQ%G3#IdOXF%!tz^o<|ye=CA4c0y_MD>yYh#IW-2?!ut4g%FM5 z?pmguPf*Q&8yw;jNlMQAIZyLrdor%K!05%2MjpYLwbmdK_og8eN01X}wZ(N&1~@5m z^2SK^&FBbu;5i(uHOpwlh*)))fVHr%+34WZiqT2xz!JpN36G4Pukc>}nsJ-r;mY`* zMYc7P24p_&*MKHXYb+ZZ8!PbL0WzYka$nY;vjs#4k+g(AB7nMH)i)Y(*KJwd|Hvw) z^-g(e&!87q&+ElsAKs@n0d1q$qWvr)xs2+l3pJ=-VK-m&?wMGWsWqk6ZRd7kGT0i^ zS6KR)QyiOb!89gv)}!A#mv@-~57Xd=#$9~TjcdE8;g~f28RN|Kh8K+wG^}yfbLl;i zMU(j!5T!Mavp3chsV>x@0s(Yn1;QaA4NnV*cky{`SOTH`-1Sxjt#SH4biH>V*8ST) zew9#JA$x_Q2qB3=$*9N*Nk(R(l!!7bdnXx{krgE&BV`qtl~Ebll9eLagx~S5KHulL zKlk&y{<_^Ra=l;UJkR4e&g1;D0F0f*+V}F?jpKrZ5M$O=xl4^zLGm$-3D%;)5~%|a z>Zs_&)^oiam&w6P@$P&q0LE=+G4-)#oy5B`j`N=DCEuJhG@P>@GaENQ&U5gbxQRI9lM^Q8p4Xh%0iKgq?kyS-E5A>z?YtPaiyFb zo$Hy=jr43r!Qgal@jLs@!mN3*=rzwKa^!KR6OjSPz?IogXE2GWNy0SGrkM{NaT}MH z=2X$UkHJAE)9?@`VQBRKj|adWyQ>iBfd+CV{0wt*bL}}&3hvg2m)C+y{hR3_aPY#z z5Gei{#30w%Z-HR?&7lJ#EDec(Huxq60}<}OUwm}85wcH0T1agAoy=;!Uhs)nM}nM$ zn3&+w>mhA!Zcg<3LrnC-$}`R?Q{YS+k(x#3+J0Z--HcgudvJkf|l z6xEnskWExsYD>#=mX>EsRp-W!S;d%tK)WSI;xe7iTJ1m9mx*fi6;^7I$=ezGPP|dpc;ue(< z)-@zTJqNvP1OQWb!p2-Z)`ik)vQ22=E-T)RjuGV3thfrV%=h~X?^o6P9ie6oIISAH zbT1=34a>4iSgr@Sj$xA*cAtHp`o1yOxqA&_lH(UwExK6pLUF3D8pGvr*Ybw}cUt5X3t<5pV&=Hg1NsdgoqOc-y-Ka-+k|)|8o~Ju~Q#%Ep|hNb|k)9bFC+*7Am@+P;}}4mhcv?Daxld^O?RGNbaprTZS^d5!YICY}pc zzQXTC^THE94j=Y1j6@lZQD=o%w*~u*qi(Slvmf5i6WArR607y1-qh8fy5gklN=KUd zO*iVMhG?hA!^r3@+Th3EC6?=9#_(Mb$95kc@bm3_dun25K|?1|c7rjidY`5izvz0Z&27Ahn`k7$ z;OZi^#{P!kwlPCX=9^Ns(@%?gRxj2}ja}x-4R1M9Jty_CmZ-AFMOEs^?WSGrl* zhgHWyE*ih|@W~w+{dG~SAJ&Xo1Iv^ySJ9LE`q~GT|%l3n9n7(qB`@2T5O~>w)ZH1cQ$$akZ)YtBJ z(pcU}H1KuR$f(*8h4snS!i4IF1#N~>Hfb>hzdRl#ddlvssCW?YCdSb!=JTz|fpTWF z!HX1!Y_xP&IH39bi;!ff-Z8^E4Y!Ot*~(Y%L_}oOPu{+d-~5mcyeDswi(_=OC*6B) zYr{5I_RMG#yO!iAlj!BC{jEqB%rU#-jJ`rmWxUJh)*z5(TSP@Q(D@td@hjEzLU}23 zjOZZrGk$MGm1XnhazE8*>P97c$%iG#P27a+gWI!+s_@(b89@Q6H5X)LyePWJ%Yi-^ z%NX;+um?PV&cRJQ<*Ef1WiV;*@o%g6peY93ZIW#b`ScV!2d)^%DtY(qVu)0TFxg$KfL+1Pp$eYqhepAru;#WF5(z5rW|gy)%9fX+qKD$My;?_0zan2Tt55J zC`UzXxcX!lAZZF>aPFzil-6IZZYD{yRGkso2WJu=avGwbD zFV63pvsW>D0FNbuBV{=EX1S!_jX%oA-+uI0;Srv*AF`ajY>&vLPr*wi*>jnlaG-$XJWD&pmGtsnu<+~3${P{<`^?Z&RCHC+ zG|FOe{)$;coH(Hup<@1(TrVCxGALDOTJC9(YfjF`&ri?7;*VmkZ+Wga#yI*-zQpQL zW3u|a7vOn_d9ZW4yjI|dAH2_hDtcbr zR@5LR%CXXebk<6wqayC6e;adkQk0Yx)sivy>^`RE`n&m6Ay?Pf4CCA$G&~tx2s5P5 zGrlW$`=<(%nBY>4*~6OU6^Ug2&Wo*F`4Y_5o0v9GWp3bI*AV{(U9i?RX`0;!g)MNE zrwU{}c5`W}$Do)4qPga<6S@2TPzZ_o3Wt`gN0F3s4T6#}aI zk~9G6w6j)mCH7m+kW*5Eaa-?Cml%bDJ5c}95gJ1_Vaaw*+mAmE0fFi&j!KD=*Y(z~ zt}o?y9;x42z@9ImZz6p&kElw8Py9sqjuKL+QLA#L78DYy|H@SpSS#Q5r2BR15j9Ms zQ={f+HF1`CP{EmZ9R%Y1@C~OE zlZ$UgzZs#X6`#aqC2Zs@Dtp+rj9BsnAtge zj^d;74YWefiozwsA@Z4ASyK2Jo))3oRTK65o$^oc&ZXVw*-E<)5lK)W(X(J3vMR?Un&Du0e>6&^L2f{VkgE%zRPN0>Ou4v4&pw z()5RAxJZ%VHf4bQOZL}XG>iV%t4n!3fP_DCpB+k;rwi_aCC48(YChUl@9A6)u{6L3RNQ3U; z$p`I9TU#*Q@AJJ2h5g^3`6qjNtZdp%uWco2R9l@O7s$FhBlMdNr+&F74fX)1@CgCv zWZIHb#(2dilM(38zl}A3q91c8zIMBJp#rW}vamV9yCh#9Q1C|o)Cj!n(YK}T-}FDIqHA599n zr$|9U!4+_B6txN5J_cT1mqa5h$V^7t_gh)LR_gAVGe%H!!&isJ)F@2e!|*h0lb*ie z<$M1a6WocX2t)^@vId)YG8xDWI!G>o-EBp0ylw z%N>3*V{{K)&*9(tua^tqBtt?xICN>7lBH9Bzmx-#?@v~QO~@-LTU|QR#i6&`>Y^}A z$5dT?tLLiRNoUNwRkBpn*1qhpa7h%MsJ}PW2kda7SK?b|4L$~bdJ+Evy=Qs#HMoEH zE@6n>HGh8|h=+!Lw0TZ93t&gQnjSsGlo1k8ySMeR%(e1ggBrS-L-<7LU2YeIp|vod z`C5u#o3(F(x&|I9M1K*sotl%@H$+j6 z3+U)bLCDa#+KeJ!F zhhGCku#EY<+tgGHEj88kQRQ`_%Fhf7sVis3o`EFb1+d2<`9KomgK`}P=v%^Fwc)d{m)FVu^Ry63SVVP8FHGs=GRK6XI{*?x6zfsP zvkV#6Q8>S<3Z}A(Sxfry^HJc7%RGuEJ!W6Nd_xCz!na#aNv<

(`G^Yc`S$b`GW- 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 diff --git a/docs/html/ZoneInfoLow_8h__incl.map b/docs/html/ZoneInfoLow_8h__incl.map deleted file mode 100644 index 6b8e4e37b..000000000 --- a/docs/html/ZoneInfoLow_8h__incl.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/html/ZoneInfoLow_8h__incl.md5 b/docs/html/ZoneInfoLow_8h__incl.md5 deleted file mode 100644 index e096f539c..000000000 --- a/docs/html/ZoneInfoLow_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -b63553c33bcc3c6740c740992ec5f7b9 \ No newline at end of file diff --git a/docs/html/ZoneInfoLow_8h__incl.png b/docs/html/ZoneInfoLow_8h__incl.png deleted file mode 100644 index 816ace82317844abb8d70227b8949ee118bee22d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23126 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

uuDpz5Vk$w?E_-6cih`2Z!Kv+MmX+LBYcK z%+~Z(te9_|zLFB!y1i$l1~$gwQy-uGAPj>dT@MYlQRr`E!v@#GVeg(BVLn4@K_If@ z%a=@N1}-i^-@bLdy{(-gi%$;hO7~L?c5=j)8$@Ps>?I6h4PwmPJS*QT;a!OA0s_QD zOoj#<(NBQge)jp~wdp4j-#XtD`TW+BR0CVc8#Q_EaY&+=c{DpJla zv8M}9Dd$kWeih1oNfF==GSu3dqng^`hYv!dqg)A{zaAcC{jc=4P5v31VqgJKMh{6R z6!NLh;1R&9FOJy6IPKYrs%kQZSBaRYmaYK7zCsq!vQ`! zS7_E*TCw&G?;rgx5{RZL;Ne-A$3nsRV-mY$aJ2bJ=8%)4+-$>Qd;20lf#BkIG1K!O+F0fqS?1cpE5xi2 zncn%{9qYzt=bM{jAr0{Eb&A*q z&_E+O0yrcQ&G&yGkrKyxoE;*lv-;DbY7r~3uM!ud6I-)wb6MQOjx`jFwiNttDS zwJ33QrC*nTM2AUFFZoTGA`fI?9{?F*ejZZcg~j9-9Ky#ylyuMMQ}X|Fmodim;cz#s z&WTx&t_f!kaVHVW5Fa~}OQfFnK@OCIobbw;m)LArE}~>;nTu3ah5Q&BUrDR7w`jrf z?%lx3$`-J?GuMK5&4wGZ*B4_2O091m_??w!O=ql(Ylt-}!QQE(!}3{Nl$%@Czk-&+ zii+p=WZe09%ggoNb}o>xQF!fr6FQ!49JqxZRN`bdmm%w5Q-quv91;eQ^v+Ron7kp? z(Z1Pk=Cj+-VmLTd8_O@TnM^Fs&7Eoas|?mF9Sl<9*TIat`2Gxrh7dWK8HpL0Nz<~R zBihwr!yP)$@BW?mCN2V21bF!Hb~ur%)~&@tolYasscR?KOsFZ0

_f|6LyhHL2Y%D$K(4xE49KFN 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 diff --git a/docs/html/ZoneInfoLow_8h_source.html b/docs/html/ZoneInfoLow_8h_source.html deleted file mode 100644 index b2bab255b..000000000 --- a/docs/html/ZoneInfoLow_8h_source.html +++ /dev/null @@ -1,670 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h Source File - - - - - - - - - -

-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZoneInfoLow.h
-
-
-Go to the documentation of this file.
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2023 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONE_INFO_LOW_H
-
7 #define ACE_TIME_ZONE_INFO_LOW_H
-
8 
-
27 #include <stdint.h>
-
28 #include <Arduino.h> // pgm_read_xxx()
-
29 #include <AceCommon.h> // KString
-
30 #include "compat.h" // ACE_TIME_USE_PROGMEM
-
31 #include "BrokerCommon.h"
-
32 
-
33 class __FlashStringHelper;
-
34 class Print;
-
35 
-
36 namespace ace_time{
-
37 
-
38 class ZoneInfoLow {
-
39 public:
-
40 
-
45 struct ZoneContext {
-
47  static const int16_t kInvalidYear = -32768;
-
48 
-
50  static const int8_t kInvalidYearTiny = -128;
-
51 
-
58  static const int16_t kMaxUntilYear = 32767;
-
59 
-
61  static const int8_t kMaxUntilYearTiny = 127;
-
62 
-
69  static const int16_t kMaxYear = kMaxUntilYear - 1;
-
70 
-
72  static const int8_t kMaxYearTiny = kMaxUntilYearTiny - 1;
-
73 
-
82  static const int16_t kMinYear = -32767;
-
83 
-
85  static const int8_t kMinYearTiny = -127;
-
86 
-
88  static const uint8_t kSuffixW = 0x00;
-
89 
-
91  static const uint8_t kSuffixS = 0x10;
-
92 
-
94  static const uint8_t kSuffixU = 0x20;
-
95 
-
97  int16_t const startYear;
-
98 
-
100  int16_t const untilYear;
-
101 
-
103  int16_t const startYearAccurate;
-
104 
-
106  int16_t const untilYearAccurate;
-
107 
-
109  int16_t const baseYear;
-
110 
-
112  int16_t const maxTransitions;
-
113 
-
115  const char* const tzVersion;
-
116 
-
118  uint8_t const numFragments;
-
119 
-
121  uint8_t const numLetters;;
-
122 
-
124  const char* const* const fragments;
-
125 
-
127  const char* const* const letters;
-
128 };
-
129 
-
135 struct ZoneRule {
-
137  int8_t const fromYear;
-
138 
-
140  int8_t const toYear;
-
141 
-
143  uint8_t const inMonth;
-
144 
-
155  uint8_t const onDayOfWeek;
-
156 
-
161  int8_t const onDayOfMonth;
-
162 
-
167  uint8_t const atTimeCode;
-
168 
-
178  uint8_t const atTimeModifier;
-
179 
-
190  uint8_t const deltaCode;
-
191 
-
204  uint8_t const letterIndex;
-
205 };
-
206 
-
213 struct ZonePolicy {
-
214  const ZoneRule* const rules;
-
215  uint8_t const numRules;
-
216 };
-
217 
-
231 struct ZoneEra {
-
236  const ZonePolicy* const zonePolicy;
-
237 
-
262  const char* const format;
-
263 
-
265  int8_t const offsetCode;
-
266 
-
284  uint8_t const deltaCode;
-
285 
-
289  int8_t const untilYear;
-
290 
-
292  uint8_t const untilMonth;
-
293 
-
299  uint8_t const untilDay;
-
300 
-
305  uint8_t const untilTimeCode;
-
306 
-
317  uint8_t const untilTimeModifier;
-
318 };
-
319 
-
324 struct ZoneInfo {
-
326  const char* const name;
-
327 
-
333  uint32_t const zoneId;
-
334 
-
336  const ZoneContext* const zoneContext;
-
337 
-
353  uint8_t const numEras;
-
354 
-
359  const ZoneEra* const eras;
-
360 
-
362  const ZoneInfo* const targetInfo;
-
363 };
-
364 
-
365 //-----------------------------------------------------------------------------
-
366 // Brokers are wrappers around the above data objects so that outside code
-
367 // can use the data objects with a consistent API.
-
368 //-----------------------------------------------------------------------------
-
369 
-
380 static int16_t toDeltaMinutes(uint8_t deltaCode) {
-
381  return ((int16_t)(deltaCode & 0x0f) - 4) * 15;
-
382 }
-
383 
-
390 static int16_t toOffsetMinutes(uint8_t offsetCode, uint8_t deltaCode) {
-
391  return ((int8_t)offsetCode * 15) + ((deltaCode & 0xf0) >> 4);
-
392 }
-
393 
-
394 
-
401 static uint16_t timeCodeToMinutes(uint8_t code, uint8_t modifier) {
-
402  return code * (uint16_t) 15 + (modifier & 0x0f);
-
403 }
-
404 
-
410 static uint8_t toSuffix(uint8_t modifier) {
-
411  return modifier & 0xf0;
-
412 }
-
413 
-
414 //-----------------------------------------------------------------------------
-
415 
- -
420  public:
-
421  explicit ZoneContextBroker(const ZoneContext* zoneContext = nullptr)
-
422  : mZoneContext(zoneContext)
-
423  {}
-
424 
-
425  // use the default copy constructor
-
426  ZoneContextBroker(const ZoneContextBroker&) = default;
-
427 
-
428  // use the default assignment operator
-
429  ZoneContextBroker& operator=(const ZoneContextBroker&) = default;
-
430 
-
431  bool isNull() const { return mZoneContext == nullptr; }
-
432 
-
433  const ZoneContext* raw() const { return mZoneContext; }
-
434 
-
435  int16_t startYear() const {
-
436  return (int16_t) pgm_read_word(&mZoneContext->startYear);
-
437  }
-
438 
-
439  int16_t untilYear() const {
-
440  return (int16_t) pgm_read_word(&mZoneContext->untilYear);
-
441  }
-
442 
-
443  int16_t startYearAccurate() const {
-
444  return (int16_t) pgm_read_word(&mZoneContext->startYearAccurate);
-
445  }
-
446 
-
447  int16_t untilYearAccurate() const {
-
448  return (int16_t) pgm_read_word(&mZoneContext->untilYearAccurate);
-
449  }
-
450 
-
451  int16_t baseYear() const {
-
452  return (int16_t) pgm_read_word(&mZoneContext->baseYear);
-
453  }
-
454 
-
455  int16_t maxTransitions() const {
-
456  return (int16_t) pgm_read_word(&mZoneContext->maxTransitions);
-
457  }
-
458 
-
459  const __FlashStringHelper* tzVersion() const {
-
460  return (const __FlashStringHelper*)
-
461  pgm_read_ptr(&mZoneContext->tzVersion);
-
462  }
-
463 
-
464  uint8_t numFragments() const {
-
465  return (uint8_t) pgm_read_byte(&mZoneContext->numFragments);
-
466  }
-
467 
-
468  uint8_t numLetters() const {
-
469  return (uint8_t) pgm_read_byte(&mZoneContext->numLetters);
-
470  }
-
471 
-
472  const __FlashStringHelper* const* fragments() const {
-
473  return (const __FlashStringHelper* const*)
-
474  pgm_read_ptr(&mZoneContext->fragments);
-
475  }
-
476 
-
477  const __FlashStringHelper* letter(uint8_t i) const {
-
478  const char * const* letters = (const char* const*)
-
479  pgm_read_ptr(&mZoneContext->letters);
-
480  const char* letter = (const char*) pgm_read_ptr(letters + i);
-
481  return (const __FlashStringHelper*) letter;
-
482  }
-
483 
-
484  private:
-
485  const ZoneContext* mZoneContext;
-
486 };
-
487 
-
488 //-----------------------------------------------------------------------------
-
489 
- -
494  public:
-
495  explicit ZoneRuleBroker(
-
496  const ZoneContext* zoneContext = nullptr,
-
497  const ZoneRule* zoneRule = nullptr)
-
498  : mZoneContext(zoneContext)
-
499  , mZoneRule(zoneRule)
-
500  {}
-
501 
-
502  // use the default copy constructor
-
503  ZoneRuleBroker(const ZoneRuleBroker&) = default;
-
504 
-
505  // use the default assignment operator
-
506  ZoneRuleBroker& operator=(const ZoneRuleBroker&) = default;
-
507 
-
508  bool isNull() const { return mZoneRule == nullptr; }
-
509 
-
510  int16_t fromYear() const {
-
511  int8_t yearTiny = (int8_t) pgm_read_byte(&mZoneRule->fromYear);
-
512  int16_t baseYear = ZoneContextBroker(mZoneContext).baseYear();
-
513  return toYearFromTiny(yearTiny, baseYear);
-
514  }
-
515 
-
516  int16_t toYear() const {
-
517  int8_t yearTiny = (int8_t) pgm_read_byte(&mZoneRule->toYear);
-
518  int16_t baseYear = ZoneContextBroker(mZoneContext).baseYear();
-
519  return toYearFromTiny(yearTiny, baseYear);
-
520  }
-
521 
-
522  static int16_t toYearFromTiny(int8_t yearTiny, int16_t baseYear) {
-
523  if (yearTiny == ZoneContext::kInvalidYearTiny)
- -
525  if (yearTiny == ZoneContext::kMinYearTiny)
-
526  return ZoneContext::kMinYear;
-
527 
-
528  // yearTiny should be a maximum of 126, and should never be as high as
-
529  // 127. But if it does have this value, what should we do? Let's peg the
-
530  // return value at 32766, so that it's always less than the 32767 maximum
-
531  // returned by untilYear().
-
532  if (yearTiny >= ZoneContext::kMaxYearTiny) return ZoneContext::kMaxYear;
-
533 
-
534  return baseYear + yearTiny;
-
535  }
-
536 
-
537  uint8_t inMonth() const {
-
538  return pgm_read_byte(&mZoneRule->inMonth);
-
539  }
-
540 
-
541  uint8_t onDayOfWeek() const {
-
542  return pgm_read_byte(&mZoneRule->onDayOfWeek);
-
543  }
-
544 
-
545  int8_t onDayOfMonth() const {
-
546  return pgm_read_byte(&mZoneRule->onDayOfMonth);
-
547  }
-
548 
-
549  uint32_t atTimeSeconds() const {
-
550  return 60 * timeCodeToMinutes(
-
551  pgm_read_byte(&mZoneRule->atTimeCode),
-
552  pgm_read_byte(&mZoneRule->atTimeModifier));
-
553  }
-
554 
-
555  uint8_t atTimeSuffix() const {
-
556  return toSuffix(pgm_read_byte(&mZoneRule->atTimeModifier));
-
557  }
-
558 
-
559  int32_t deltaSeconds() const {
-
560  return 60 * toDeltaMinutes(pgm_read_byte(&mZoneRule->deltaCode));
-
561  }
-
562 
-
563  const __FlashStringHelper* letter() const {
-
564  uint8_t index = pgm_read_byte(&mZoneRule->letterIndex);
-
565  return ZoneContextBroker(mZoneContext).letter(index);
-
566  }
-
567 
-
568  private:
-
569  const ZoneContext* mZoneContext;
-
570  const ZoneRule* mZoneRule;
-
571 };
-
572 
- -
577  public:
-
578  explicit ZonePolicyBroker(
-
579  const ZoneContext* zoneContext,
-
580  const ZonePolicy* zonePolicy)
-
581  : mZoneContext(zoneContext)
-
582  , mZonePolicy(zonePolicy)
-
583  {}
-
584 
-
585  // use default copy constructor
-
586  ZonePolicyBroker(const ZonePolicyBroker&) = default;
-
587 
-
588  // use default assignment operator
-
589  ZonePolicyBroker& operator=(const ZonePolicyBroker&) = default;
-
590 
-
591  bool isNull() const { return mZonePolicy == nullptr; }
-
592 
-
593  uint8_t numRules() const {
-
594  return pgm_read_byte(&mZonePolicy->numRules);
-
595  }
-
596 
-
597  const ZoneRuleBroker rule(uint8_t i) const {
-
598  const ZoneRule* rules =
-
599  (const ZoneRule*) pgm_read_ptr(&mZonePolicy->rules);
-
600  return ZoneRuleBroker(mZoneContext, &rules[i]);
-
601  }
-
602 
-
603  private:
-
604  const ZoneContext* mZoneContext;
-
605  const ZonePolicy* mZonePolicy;
-
606 };
-
607 
-
608 //-----------------------------------------------------------------------------
-
609 
- -
614  public:
-
615  explicit ZoneEraBroker(
-
616  const ZoneContext* zoneContext = nullptr,
-
617  const ZoneEra* zoneEra = nullptr)
-
618  : mZoneContext(zoneContext)
-
619  , mZoneEra(zoneEra)
-
620  {}
-
621 
-
622  // use default copy constructor
-
623  ZoneEraBroker(const ZoneEraBroker&) = default;
-
624 
-
625  // use default assignment operator
-
626  ZoneEraBroker& operator=(const ZoneEraBroker&) = default;
-
627 
-
628  bool isNull() const { return mZoneEra == nullptr; }
-
629 
-
630  bool equals(const ZoneEraBroker& other) const {
-
631  return mZoneEra == other.mZoneEra;
-
632  }
-
633 
-
634  const ZonePolicyBroker zonePolicy() const {
-
635  return ZonePolicyBroker(
-
636  mZoneContext,
-
637  (const ZonePolicy*) pgm_read_ptr(&mZoneEra->zonePolicy));
-
638  }
-
639 
-
640  int32_t offsetSeconds() const {
-
641  return 60 * toOffsetMinutes(
-
642  pgm_read_byte(&mZoneEra->offsetCode),
-
643  pgm_read_byte(&mZoneEra->deltaCode));
-
644  }
-
645 
-
646  int32_t deltaSeconds() const {
-
647  return 60 * toDeltaMinutes(pgm_read_byte(&mZoneEra->deltaCode));
-
648  }
-
649 
-
650  const char* format() const {
-
651  return (const char*) pgm_read_ptr(&mZoneEra->format);
-
652  }
-
653 
-
654  int16_t untilYear() const {
-
655  int8_t yearTiny = (int8_t) pgm_read_byte(&mZoneEra->untilYear);
-
656  int16_t baseYear = ZoneContextBroker(mZoneContext).baseYear();
-
657  return toUntilYearFromTiny(yearTiny, baseYear);
-
658  }
-
659 
-
660  static int16_t toUntilYearFromTiny(int8_t yearTiny, int16_t baseYear) {
-
661  if (yearTiny == ZoneContext::kInvalidYearTiny)
- -
663  if (yearTiny == ZoneContext::kMinYearTiny)
-
664  return ZoneContext::kMinYear;
-
665  if (yearTiny == ZoneContext::kMaxUntilYearTiny)
- -
667  return baseYear + yearTiny;
-
668  }
-
669 
-
670  uint8_t untilMonth() const {
-
671  return pgm_read_byte(&mZoneEra->untilMonth);
-
672  }
-
673 
-
674  uint8_t untilDay() const {
-
675  return pgm_read_byte(&mZoneEra->untilDay);
-
676  }
-
677 
-
678  uint32_t untilTimeSeconds() const {
-
679  return 60 * timeCodeToMinutes(
-
680  pgm_read_byte(&mZoneEra->untilTimeCode),
-
681  pgm_read_byte(&mZoneEra->untilTimeModifier));
-
682  }
-
683 
-
684  uint8_t untilTimeSuffix() const {
-
685  return toSuffix(pgm_read_byte(&mZoneEra->untilTimeModifier));
-
686  }
-
687 
-
688  private:
-
689  const ZoneContext* mZoneContext;
-
690  const ZoneEra* mZoneEra;
-
691 };
-
692 
- -
697  public:
-
698  explicit ZoneInfoBroker(const ZoneInfo* zoneInfo = nullptr):
-
699  mZoneInfo(zoneInfo) {}
-
700 
-
701  // use default copy constructor
-
702  ZoneInfoBroker(const ZoneInfoBroker&) = default;
-
703 
-
704  // use default assignment operator
-
705  ZoneInfoBroker& operator=(const ZoneInfoBroker&) = default;
-
706 
-
711  bool equals(uintptr_t zoneKey) const {
-
712  return mZoneInfo == (const ZoneInfo*) zoneKey;
-
713  }
-
714 
-
715  bool equals(const ZoneInfoBroker& zoneInfoBroker) const {
-
716  return mZoneInfo == zoneInfoBroker.mZoneInfo;
-
717  }
-
718 
-
719  bool isNull() const { return mZoneInfo == nullptr; }
-
720 
-
721  const ZoneContextBroker zoneContext() const {
-
722  const ZoneContext* context =
-
723  (const ZoneContext*) pgm_read_ptr(&mZoneInfo->zoneContext);
-
724  return ZoneContextBroker(context);
-
725  }
-
726 
-
727  const __FlashStringHelper* name() const {
-
728  return FPSTR(pgm_read_ptr(&mZoneInfo->name));
-
729  }
-
730 
-
731  uint32_t zoneId() const {
-
732  return pgm_read_dword(&mZoneInfo->zoneId);
-
733  }
-
734 
-
735  uint8_t numEras() const {
-
736  return pgm_read_byte(&mZoneInfo->numEras);
-
737  }
-
738 
-
739  const ZoneEraBroker era(uint8_t i) const {
-
740  auto eras = (const ZoneEra*) pgm_read_ptr(&mZoneInfo->eras);
-
741  return ZoneEraBroker(zoneContext().raw(), &eras[i]);
-
742  }
-
743 
-
744  bool isLink() const {
-
745  return mZoneInfo->targetInfo != nullptr;
-
746  }
-
747 
-
748  ZoneInfoBroker targetInfo() const {
-
749  return ZoneInfoBroker(
-
750  (const ZoneInfo*) pgm_read_ptr(&mZoneInfo->targetInfo));
-
751  }
-
752 
-
754  void printNameTo(Print& printer) const {
-
755  ZoneContextBroker zc = zoneContext();
-
756  ace_common::KString kname(name(), zc.fragments(), zc.numFragments());
-
757  kname.printTo(printer);
-
758  }
-
759 
-
764  void printShortNameTo(Print& printer) const {
-
765  ace_common::printReplaceCharTo(
-
766  printer, zoneinfo::findShortName(name()), '_', ' ');
-
767  }
-
768 
-
769  private:
-
770  const ZoneInfo* mZoneInfo;
-
771 };
-
772 
-
773 //-----------------------------------------------------------------------------
-
774 
- -
780  public:
-
781  ZoneRegistryBroker(const ZoneInfo* const* zoneRegistry):
-
782  mZoneRegistry(zoneRegistry) {}
-
783 
-
784  // use default copy constructor
-
785  ZoneRegistryBroker(const ZoneRegistryBroker&) = default;
-
786 
-
787  // use default assignment operator
-
788  ZoneRegistryBroker& operator=(const ZoneRegistryBroker&) = default;
-
789 
-
790  const ZoneInfo* zoneInfo(uint16_t i) const {
-
791  return (const ZoneInfo*) pgm_read_ptr(&mZoneRegistry[i]);
-
792  }
-
793 
-
794  private:
-
795  const ZoneInfo* const* mZoneRegistry;
-
796 };
-
797 
-
798 //-----------------------------------------------------------------------------
-
799 // A factory class for a ZoneInfoBroker.
-
800 //-----------------------------------------------------------------------------
-
801 
- -
808  public:
-
813  ZoneInfoBroker createZoneInfoBroker(uintptr_t zoneKey) const {
-
814  return ZoneInfoBroker((const ZoneInfo*) zoneKey);
-
815  }
-
816 };
-
817 
-
818 }; // ZoneInfoLow
-
819 
-
820 } // ace_time
-
821 
-
822 #endif
-
Helper functions are used in both Basic brokers and Extended brokers.
-
Data broker for accessing a ZoneContext.
Definition: ZoneInfoLow.h:419
-
Data broker for accessing ZoneEra.
Definition: ZoneInfoLow.h:613
-
Data broker for accessing ZoneInfo.
Definition: ZoneInfoLow.h:696
-
bool equals(uintptr_t zoneKey) const
Definition: ZoneInfoLow.h:711
-
void printNameTo(Print &printer) const
Print a human-readable identifier (e.g.
Definition: ZoneInfoLow.h:754
-
void printShortNameTo(Print &printer) const
Print a short human-readable identifier (e.g.
Definition: ZoneInfoLow.h:764
-
A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo.
Definition: ZoneInfoLow.h:807
-
ZoneInfoBroker createZoneInfoBroker(uintptr_t zoneKey) const
Definition: ZoneInfoLow.h:813
-
Data broker for accessing ZonePolicy.
Definition: ZoneInfoLow.h:576
-
Data broker for accessing the ZoneRegistry.
Definition: ZoneInfoLow.h:779
-
Data broker for accessing ZoneRule.
Definition: ZoneInfoLow.h:493
- -
static uint16_t timeCodeToMinutes(uint8_t code, uint8_t modifier)
Convert (code, modifier) fields representing the UNTIL time in ZoneInfo or AT time in ZoneRule in one...
Definition: ZoneInfoLow.h:401
-
static int16_t toOffsetMinutes(uint8_t offsetCode, uint8_t deltaCode)
Convert the offsetCode and deltaCode holding the STDOFF field of the ZoneEra into minutes.
Definition: ZoneInfoLow.h:390
-
static int16_t toDeltaMinutes(uint8_t deltaCode)
Convert the deltaCode holding the RULES/DSTOFF field in ZoneEra or the SAVE field in ZoneRule to the ...
Definition: ZoneInfoLow.h:380
-
static uint8_t toSuffix(uint8_t modifier)
Extract the 'w', 's' 'u' suffix from the 'modifier' field, so that they can be compared against kSuff...
Definition: ZoneInfoLow.h:410
-
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
-
Metadata about the zone database.
Definition: ZoneInfoLow.h:45
-
int16_t const maxTransitions
Max number of transitions required in TransitionStorage.
Definition: ZoneInfoLow.h:112
-
static const int8_t kMaxYearTiny
Maximum value of fromYearTiny or toYearTiny.
Definition: ZoneInfoLow.h:72
-
static const uint8_t kSuffixW
Represents 'w' or wall time.
Definition: ZoneInfoLow.h:88
-
static const int8_t kInvalidYearTiny
Sentinel value for an invalid 8-bit year field.
Definition: ZoneInfoLow.h:50
-
static const uint8_t kSuffixS
Represents 's' or standard time.
Definition: ZoneInfoLow.h:91
-
static const int16_t kMinYear
The minimum value of fromYear and toYear.
Definition: ZoneInfoLow.h:82
-
static const int16_t kMaxUntilYear
The maximum value of untilYear.
Definition: ZoneInfoLow.h:58
-
int16_t const untilYearAccurate
Until year of accurate transitions.
Definition: ZoneInfoLow.h:106
-
static const uint8_t kSuffixU
Represents 'u' or UTC time.
Definition: ZoneInfoLow.h:94
-
uint8_t const numFragments
Number of fragments.
Definition: ZoneInfoLow.h:118
-
static const int16_t kInvalidYear
Sentinel value for an invalid 16-bit year field.
Definition: ZoneInfoLow.h:47
-
int16_t const baseYear
Base year for tiny years.
Definition: ZoneInfoLow.h:109
-
const char *const tzVersion
TZ Database version which generated the zone info.
Definition: ZoneInfoLow.h:115
-
const char *const *const letters
Zone Rule letters list.
Definition: ZoneInfoLow.h:127
-
uint8_t const numLetters
Number of fragments.
Definition: ZoneInfoLow.h:121
-
static const int16_t kMaxYear
The maximum value fromYear and toYear.
Definition: ZoneInfoLow.h:69
-
int16_t const startYearAccurate
Start year of accurate transitions.
Definition: ZoneInfoLow.h:103
-
static const int8_t kMinYearTiny
The smallest value of a tiny year field.
Definition: ZoneInfoLow.h:85
-
static const int8_t kMaxUntilYearTiny
Maximum value of untilYearTiny.
Definition: ZoneInfoLow.h:61
-
int16_t const untilYear
Until year of the zone files as requested.
Definition: ZoneInfoLow.h:100
-
const char *const *const fragments
Zone Name fragment list.
Definition: ZoneInfoLow.h:121
-
int16_t const startYear
Start year of the zone files as requested.
Definition: ZoneInfoLow.h:97
-
An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time per...
Definition: ZoneInfoLow.h:231
-
uint8_t const untilTimeModifier
The untilTimeModifier is a packed field containing 2 pieces of info:
Definition: ZoneInfoLow.h:317
-
uint8_t const deltaCode
This is a composite of two 4-bit fields:
Definition: ZoneInfoLow.h:284
-
int8_t const untilYear
Era is valid until currentTime < untilYear.
Definition: ZoneInfoLow.h:289
-
int8_t const offsetCode
UTC offset in 15 min increments.
Definition: ZoneInfoLow.h:265
-
uint8_t const untilDay
The day field in UNTIL (1-31).
Definition: ZoneInfoLow.h:299
-
const ZonePolicy *const zonePolicy
Zone policy, determined by the RULES column.
Definition: ZoneInfoLow.h:236
-
uint8_t const untilMonth
The month field in UNTIL (1-12).
Definition: ZoneInfoLow.h:292
-
const char *const format
Zone abbreviations (e.g.
Definition: ZoneInfoLow.h:262
-
uint8_t const untilTimeCode
The time field of UNTIL field in 15-minute increments.
Definition: ZoneInfoLow.h:305
-
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoLow.h:324
-
const ZoneContext *const zoneContext
ZoneContext metadata.
Definition: ZoneInfoLow.h:336
-
const char *const name
Full name of zone (e.g.
Definition: ZoneInfoLow.h:326
-
uint8_t const numEras
Number of ZoneEra entries.
Definition: ZoneInfoLow.h:353
-
const ZoneEra *const eras
A const ZoneEras* pointer to numEras ZoneEra entries in increasing order of UNTIL time.
Definition: ZoneInfoLow.h:359
-
uint32_t const zoneId
Unique, stable ID of the zone name, created from a hash of the name.
Definition: ZoneInfoLow.h:333
-
const ZoneInfo *const targetInfo
If Link, points to the target zone info.
Definition: ZoneInfoLow.h:362
-
A collection of transition rules which describe the DST rules of a given administrative region.
Definition: ZoneInfoLow.h:213
-
A time zone transition rule.
Definition: ZoneInfoLow.h:135
-
int8_t const toYear
TO year.
Definition: ZoneInfoLow.h:140
-
int8_t const fromYear
FROM year.
Definition: ZoneInfoLow.h:137
-
uint8_t const letterIndex
Determined by the LETTER column.
Definition: ZoneInfoLow.h:204
-
uint8_t const atTimeModifier
The atTimeModifier is a packed field containing 2 pieces of info:
Definition: ZoneInfoLow.h:178
-
int8_t const onDayOfMonth
Determined by the ON column.
Definition: ZoneInfoLow.h:161
-
uint8_t const onDayOfWeek
Determined by the ON column.
Definition: ZoneInfoLow.h:155
-
uint8_t const deltaCode
Determined by the SAVE column and contains the offset from UTC, in 15-min increments.
Definition: ZoneInfoLow.h:190
-
uint8_t const inMonth
Determined by the IN column.
Definition: ZoneInfoLow.h:143
-
uint8_t const atTimeCode
Determined by the AT column in units of 15-minutes from 00:00.
Definition: ZoneInfoLow.h:167
-
- - - - diff --git a/docs/html/ZoneInfoMid_8h.html b/docs/html/ZoneInfoMid_8h.html deleted file mode 100644 index f9880561a..000000000 --- a/docs/html/ZoneInfoMid_8h.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h File Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ZoneInfoMid.h File Reference
-
-
- -

Data structures that describe the mid resolution zoneinfo persistence format. -More...

-
#include <stdint.h>
-#include <Arduino.h>
-#include <AceCommon.h>
-#include "compat.h"
-#include "BrokerCommon.h"
-
-Include dependency graph for ZoneInfoMid.h:
-
-
- - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

class  ace_time::ZoneInfoMid
 Wrapper class so that the entire collection can be referenced as a singel template parameter. More...
 
struct  ace_time::ZoneInfoMid::ZoneContext
 Metadata about the zone database. More...
 
struct  ace_time::ZoneInfoMid::ZoneRule
 A time zone transition rule. More...
 
struct  ace_time::ZoneInfoMid::ZonePolicy
 A collection of transition rules which describe the DST rules of a given administrative region. More...
 
struct  ace_time::ZoneInfoMid::ZoneEra
 An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. More...
 
struct  ace_time::ZoneInfoMid::ZoneInfo
 Representation of a given time zone, implemented as an array of ZoneEra records. More...
 
class  ace_time::ZoneInfoMid::ZoneContextBroker
 Data broker for accessing a ZoneContext. More...
 
class  ace_time::ZoneInfoMid::ZoneRuleBroker
 Data broker for accessing ZoneRule. More...
 
class  ace_time::ZoneInfoMid::ZonePolicyBroker
 Data broker for accessing ZonePolicy. More...
 
class  ace_time::ZoneInfoMid::ZoneEraBroker
 Data broker for accessing ZoneEra. More...
 
class  ace_time::ZoneInfoMid::ZoneInfoBroker
 Data broker for accessing ZoneInfo. More...
 
class  ace_time::ZoneInfoMid::ZoneRegistryBroker
 Data broker for accessing the ZoneRegistry. More...
 
class  ace_time::ZoneInfoMid::ZoneInfoStore
 A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo. More...
 
-

Detailed Description

-

Data structures that describe the mid resolution zoneinfo persistence format.

-

by the AceTimeTools compiler. It has a 1-minute resolution for AT, UNTIL, STDOFF; a 15-minute resolution for DST offset (similar to ZoneInfoLow). But it also uses 2-byte year fields supporting year range of [-32767,32765] (similar to ZoneInfoHigh).

-

The BrokersMid.h file provides an abtraction layer which converts these low-level fields into a semantically consistent API which can be used by the AceTime classes.

-

The various zoneinfo database files (e.g. zonedb, zonedbx, zonedbc) will use one of these persistence formats, as defined by infos.h. (The ZoneInfoMid.h persistence format was used at some point during the development, but it is current not used by any of the zone*db database files.)

-

See also DEVELOPER.md for an overview of the ZoneInfoXXX layer.

- -

Definition in file ZoneInfoMid.h.

-
- - - - diff --git a/docs/html/ZoneInfoMid_8h__dep__incl.map b/docs/html/ZoneInfoMid_8h__dep__incl.map deleted file mode 100644 index e1f8584c2..000000000 --- a/docs/html/ZoneInfoMid_8h__dep__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/html/ZoneInfoMid_8h__dep__incl.md5 b/docs/html/ZoneInfoMid_8h__dep__incl.md5 deleted file mode 100644 index 6816d4b75..000000000 --- a/docs/html/ZoneInfoMid_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -33d147a1c756539df0dafce598c17607 \ No newline at end of file diff --git a/docs/html/ZoneInfoMid_8h__dep__incl.png b/docs/html/ZoneInfoMid_8h__dep__incl.png deleted file mode 100644 index c730141cdfd69cf64f69a45cf74f792163c4eb8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439735 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 z 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�=?uKn64~jJpN?tXOZAUs> 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⁣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%0A$ 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

d(!yL+_Y%g=?#=aOSf6<{V zywDcy2RV1+us*lvC3)>9H&^j&I}ULRpnau>8a~elgM25UuJN>0x8EZ=bIQ2Z>1hf< z?+w?7s|QSe+v9vv2hO_7qtro93DGWc_Ln(CM5sV~{q$zm^@k6yvMGUf<~krHP=2dn z-#43=$D;}pVrFKB#MT+!^A{j7$HQ|Rt9Z<%m2;7e?POhD9g-}8z!6h-Bu6R@9sfwD zA?XigQ(7D;<;Hsn5~rQ{R43KgNDy0r?6tSVTHVXX=QU`ThN?aJWp-yNuiEw#$jHce z?frObc9mAGr-&^_vePt9C4~=K^e{nwCWKpsVs@mu$xMKzgEzF2=Jo5>&=@x;0JqmT zI!f1-DvE|3UM)}^a9j8qkUI1hTdDvVRHkP%Z!$TCUAupk76PMKJUqaStllR;)&Z!K z;5*ZLnFAb7&~Z%6sM@1z`igdrgO{)GOjfMS4G)j9AFFpYG&B%H1CcnBm$$cBYs7gg zi}$w;aR=BQ;3Q6yl9K*j9;Sps{NhEYh%MxXY=^D!m4xLv`4)xjQr)z(YehNNf&x9 z{}h5E7Nnd^t6th^Lh4q0FqD_s4;3DZXG_`}h8AdeOWT9VQC#R)CdHl%Y3O1Z4QTWX zX|k?=Ln;=$92xT$LEDi2vi2s%yNG8uTp``f2hLGW(r#|$ZNO)*Ky zNGQaL7#lM}>I>I5I{68i<(~$Ye9BNxp1D2$vsV*f#B(G9y!pu(OzLaMpjsmN4=;LN zvXb6g9E5r|s^@_(qk-P34{L9yalu;EjlI%)Q#E5^x$oeHdz3w+uTU8djAO)q@}erAshkG&h0)6K&m)EOR8<8xEl+s!jz8o=WBzZYE$F*Dv6{FW{t_<-HnbzOYkV%vhaZN5^N!w4cS_yc~(QPRBXQAq< z=6YksELUAKOg$=>%`$pw%Ij-HJ=Lmb*W*g^&QJN(UWF8S-mg|{US?rAxhBw3-*;?& z(`}x2VW}gvV6=J1fm_+8$F|aHe$nDRFPF7|Jlx@l}>iI=^U2#25m$UtaVk_&4%i^))QBm{| z(>>Yw`QhXAQ|jb!Mro^vhK3aRYYmYsmma(Tl8WQ_ag%e$j`2rG`*yce2x%xO%gDY= z3`ic#Cv;iSagXtmR^@U?-qrs-VpOdko0SnrenWgEwbBUwuK!k3JYP-C_a<^OP?kkz zZ;=$LnQ!#wbQ$K98r*8{WD#(FPe9)QnY8RXvA?tc)L?r-QD8Uy7^{!&HhOH^p>;sb!f&*3TK# nL%o#ZRj7pm?-kB#Sf;H< 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 kE1{14dFuc9Ul~n - - - - - - - - - - diff --git a/docs/html/ZoneInfoMid_8h__incl.md5 b/docs/html/ZoneInfoMid_8h__incl.md5 deleted file mode 100644 index d39e615ee..000000000 --- a/docs/html/ZoneInfoMid_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ad806c6349fc6bd6f43b844d974cb245 \ No newline at end of file diff --git a/docs/html/ZoneInfoMid_8h__incl.png b/docs/html/ZoneInfoMid_8h__incl.png deleted file mode 100644 index bb28abc240a09d9f07a216391bde18577670ef67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23200 zcmaI;1z43`)c1=n8U+DCLKpxNHUfdTBQGbdjzAz6!2ge9BE!EK z9~ctg8~SraS!u-e&420j*-;1tH9}rmQqwJYYsOWFU}F@qC!ayQQ6J*(tR_+7=bxTK z{big;nCY1P&yLpC%t(2r&a=COTP7JyEdIgGESQ5~hZ3ldgQ9mMCph91@8CURUOU

U8Q`H{Vh3(f#*(zX#7L5N-bc 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 diff --git a/docs/html/ZoneInfoMid_8h_source.html b/docs/html/ZoneInfoMid_8h_source.html deleted file mode 100644 index 595721a40..000000000 --- a/docs/html/ZoneInfoMid_8h_source.html +++ /dev/null @@ -1,624 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h Source File - - - - - - - - - -

-
-
-
ZoneInfoMid.h
-
-
-Go to the documentation of this file.
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONE_INFO_MID_H
-
7 #define ACE_TIME_ZONE_INFO_MID_H
-
8 
-
31 #include <stdint.h>
-
32 #include <Arduino.h> // pgm_read_xxx()
-
33 #include <AceCommon.h> // KString
-
34 #include "compat.h" // ACE_TIME_USE_PROGMEM
-
35 #include "BrokerCommon.h"
-
36 
-
37 class __FlashStringHelper;
-
38 class Print;
-
39 
-
40 namespace ace_time {
-
41 
-
46 class ZoneInfoMid {
-
47 public:
-
48 
-
53 struct ZoneContext {
-
60  static const int16_t kMaxUntilYear = 32767;
-
61 
-
68  static const int16_t kMaxYear = kMaxUntilYear - 1;
-
69 
-
78  static const int16_t kMinYear = -32767;
-
79 
-
81  static const uint8_t kSuffixW = 0x00;
-
82 
-
84  static const uint8_t kSuffixS = 0x10;
-
85 
-
87  static const uint8_t kSuffixU = 0x20;
-
88 
-
90  int16_t const startYear;
-
91 
-
93  int16_t const untilYear;
-
94 
-
96  int16_t const startYearAccurate;
-
97 
-
99  int16_t const untilYearAccurate;
-
100 
-
102  int16_t const baseYear;
-
103 
-
105  int16_t const maxTransitions;
-
106 
-
108  const char* const tzVersion;
-
109 
-
111  uint8_t const numFragments;
-
112 
-
114  uint8_t const numLetters;;
-
115 
-
117  const char* const* const fragments;
-
118 
-
120  const char* const* const letters;
-
121 };
-
122 
-
128 struct ZoneRule {
-
130  int16_t const fromYear;
-
131 
-
133  int16_t const toYear;
-
134 
-
136  uint8_t const inMonth;
-
137 
-
148  uint8_t const onDayOfWeek;
-
149 
-
154  int8_t const onDayOfMonth;
-
155 
-
160  uint8_t const atTimeCode;
-
161 
-
171  uint8_t const atTimeModifier;
-
172 
-
183  uint8_t const deltaCode;
-
184 
-
197  uint8_t const letterIndex;
-
198 };
-
199 
-
206 struct ZonePolicy {
-
207  const ZoneRule* const rules;
-
208  uint8_t const numRules;
-
209 };
-
210 
-
223 struct ZoneEra {
-
228  const ZonePolicy* const zonePolicy;
-
229 
-
254  const char* const format;
-
255 
-
257  int8_t const offsetCode;
-
258 
-
276  uint8_t const deltaCode;
-
277 
-
281  int16_t const untilYear;
-
282 
-
284  uint8_t const untilMonth;
-
285 
-
291  uint8_t const untilDay;
-
292 
-
297  uint8_t const untilTimeCode;
-
298 
-
309  uint8_t const untilTimeModifier;
-
310 };
-
311 
-
316 struct ZoneInfo {
-
318  const char* const name;
-
319 
-
325  uint32_t const zoneId;
-
326 
-
328  const ZoneContext* const zoneContext;
-
329 
-
345  uint8_t const numEras;
-
346 
-
351  const ZoneEra* const eras;
-
352 
-
354  const ZoneInfo* const targetInfo;
-
355 };
-
356 
-
357 //-----------------------------------------------------------------------------
-
358 // Brokers are wrappers around the above data objects so that outside code
-
359 // can use the data objects with a consistent API.
-
360 //-----------------------------------------------------------------------------
-
361 
-
372 static int16_t toDeltaMinutes(uint8_t deltaCode) {
-
373  return ((int16_t)(deltaCode & 0x0f) - 4) * 15;
-
374 }
-
375 
-
382 static int16_t toOffsetMinutes(uint8_t offsetCode, uint8_t deltaCode) {
-
383  return ((int8_t)offsetCode * 15) + ((deltaCode & 0xf0) >> 4);
-
384 }
-
385 
-
386 
-
393 static uint16_t timeCodeToMinutes(uint8_t code, uint8_t modifier) {
-
394  return code * (uint16_t) 15 + (modifier & 0x0f);
-
395 }
-
396 
-
402 static uint8_t toSuffix(uint8_t modifier) {
-
403  return modifier & 0xf0;
-
404 }
-
405 
-
406 //-----------------------------------------------------------------------------
-
407 
- -
412  public:
-
413  explicit ZoneContextBroker(const ZoneContext* zoneContext = nullptr)
-
414  : mZoneContext(zoneContext)
-
415  {}
-
416 
-
417  // use the default copy constructor
-
418  ZoneContextBroker(const ZoneContextBroker&) = default;
-
419 
-
420  // use the default assignment operator
-
421  ZoneContextBroker& operator=(const ZoneContextBroker&) = default;
-
422 
-
423  bool isNull() const { return mZoneContext == nullptr; }
-
424 
-
425  const ZoneContext* raw() const { return mZoneContext; }
-
426 
-
427  int16_t startYear() const {
-
428  return (int16_t) pgm_read_word(&mZoneContext->startYear);
-
429  }
-
430 
-
431  int16_t untilYear() const {
-
432  return (int16_t) pgm_read_word(&mZoneContext->untilYear);
-
433  }
-
434 
-
435  int16_t startYearAccurate() const {
-
436  return (int16_t) pgm_read_word(&mZoneContext->startYearAccurate);
-
437  }
-
438 
-
439  int16_t untilYearAccurate() const {
-
440  return (int16_t) pgm_read_word(&mZoneContext->untilYearAccurate);
-
441  }
-
442 
-
443  int16_t baseYear() const {
-
444  return (int16_t) pgm_read_word(&mZoneContext->baseYear);
-
445  }
-
446 
-
447  int16_t maxTransitions() const {
-
448  return (int16_t) pgm_read_word(&mZoneContext->maxTransitions);
-
449  }
-
450 
-
451  const __FlashStringHelper* tzVersion() const {
-
452  return (const __FlashStringHelper*)
-
453  pgm_read_ptr(&mZoneContext->tzVersion);
-
454  }
-
455 
-
456  uint8_t numFragments() const {
-
457  return (uint8_t) pgm_read_byte(&mZoneContext->numFragments);
-
458  }
-
459 
-
460  uint8_t numLetters() const {
-
461  return (uint8_t) pgm_read_byte(&mZoneContext->numLetters);
-
462  }
-
463 
-
464  const __FlashStringHelper* const* fragments() const {
-
465  return (const __FlashStringHelper* const*)
-
466  pgm_read_ptr(&mZoneContext->fragments);
-
467  }
-
468 
-
469  const __FlashStringHelper* letter(uint8_t i) const {
-
470  const char * const* letters = (const char* const*)
-
471  pgm_read_ptr(&mZoneContext->letters);
-
472  const char* letter = (const char*) pgm_read_ptr(letters + i);
-
473  return (const __FlashStringHelper*) letter;
-
474  }
-
475 
-
476  private:
-
477  const ZoneContext* mZoneContext;
-
478 };
-
479 
-
480 //-----------------------------------------------------------------------------
-
481 
- -
486  public:
-
487  explicit ZoneRuleBroker(
-
488  const ZoneContext* zoneContext = nullptr,
-
489  const ZoneRule* zoneRule = nullptr)
-
490  : mZoneContext(zoneContext)
-
491  , mZoneRule(zoneRule)
-
492  {}
-
493 
-
494  // use the default copy constructor
-
495  ZoneRuleBroker(const ZoneRuleBroker&) = default;
-
496 
-
497  // use the default assignment operator
-
498  ZoneRuleBroker& operator=(const ZoneRuleBroker&) = default;
-
499 
-
500  bool isNull() const { return mZoneRule == nullptr; }
-
501 
-
502  int16_t fromYear() const {
-
503  return pgm_read_word(&mZoneRule->fromYear);
-
504  }
-
505 
-
506  int16_t toYear() const {
-
507  return pgm_read_word(&mZoneRule->toYear);
-
508  }
-
509 
-
510  uint8_t inMonth() const {
-
511  return pgm_read_byte(&mZoneRule->inMonth);
-
512  }
-
513 
-
514  uint8_t onDayOfWeek() const {
-
515  return pgm_read_byte(&mZoneRule->onDayOfWeek);
-
516  }
-
517 
-
518  int8_t onDayOfMonth() const {
-
519  return pgm_read_byte(&mZoneRule->onDayOfMonth);
-
520  }
-
521 
-
522  uint32_t atTimeSeconds() const {
-
523  return 60 * timeCodeToMinutes(
-
524  pgm_read_byte(&mZoneRule->atTimeCode),
-
525  pgm_read_byte(&mZoneRule->atTimeModifier));
-
526  }
-
527 
-
528  uint8_t atTimeSuffix() const {
-
529  return toSuffix(pgm_read_byte(&mZoneRule->atTimeModifier));
-
530  }
-
531 
-
532  int32_t deltaSeconds() const {
-
533  return 60 * toDeltaMinutes(pgm_read_byte(&mZoneRule->deltaCode));
-
534  }
-
535 
-
536  const __FlashStringHelper* letter() const {
-
537  uint8_t index = pgm_read_byte(&mZoneRule->letterIndex);
-
538  return ZoneContextBroker(mZoneContext).letter(index);
-
539  }
-
540 
-
541  private:
-
542  const ZoneContext* mZoneContext;
-
543  const ZoneRule* mZoneRule;
-
544 };
-
545 
- -
550  public:
-
551  explicit ZonePolicyBroker(
-
552  const ZoneContext* zoneContext,
-
553  const ZonePolicy* zonePolicy)
-
554  : mZoneContext(zoneContext)
-
555  , mZonePolicy(zonePolicy)
-
556  {}
-
557 
-
558  // use default copy constructor
-
559  ZonePolicyBroker(const ZonePolicyBroker&) = default;
-
560 
-
561  // use default assignment operator
-
562  ZonePolicyBroker& operator=(const ZonePolicyBroker&) = default;
-
563 
-
564  bool isNull() const { return mZonePolicy == nullptr; }
-
565 
-
566  uint8_t numRules() const {
-
567  return pgm_read_byte(&mZonePolicy->numRules);
-
568  }
-
569 
-
570  const ZoneRuleBroker rule(uint8_t i) const {
-
571  const ZoneRule* rules =
-
572  (const ZoneRule*) pgm_read_ptr(&mZonePolicy->rules);
-
573  return ZoneRuleBroker(mZoneContext, &rules[i]);
-
574  }
-
575 
-
576  private:
-
577  const ZoneContext* mZoneContext;
-
578  const ZonePolicy* mZonePolicy;
-
579 };
-
580 
-
581 //-----------------------------------------------------------------------------
-
582 
- -
587  public:
-
588  explicit ZoneEraBroker(
-
589  const ZoneContext* zoneContext = nullptr,
-
590  const ZoneEra* zoneEra = nullptr)
-
591  : mZoneContext(zoneContext)
-
592  , mZoneEra(zoneEra)
-
593  {}
-
594 
-
595  // use default copy constructor
-
596  ZoneEraBroker(const ZoneEraBroker&) = default;
-
597 
-
598  // use default assignment operator
-
599  ZoneEraBroker& operator=(const ZoneEraBroker&) = default;
-
600 
-
601  bool isNull() const { return mZoneEra == nullptr; }
-
602 
-
603  bool equals(const ZoneEraBroker& other) const {
-
604  return mZoneEra == other.mZoneEra;
-
605  }
-
606 
-
607  const ZonePolicyBroker zonePolicy() const {
-
608  return ZonePolicyBroker(
-
609  mZoneContext,
-
610  (const ZonePolicy*) pgm_read_ptr(&mZoneEra->zonePolicy));
-
611  }
-
612 
-
613  int32_t offsetSeconds() const {
-
614  return 60 * toOffsetMinutes(
-
615  pgm_read_byte(&mZoneEra->offsetCode),
-
616  pgm_read_byte(&mZoneEra->deltaCode));
-
617  }
-
618 
-
619  int32_t deltaSeconds() const {
-
620  return 60 * toDeltaMinutes(pgm_read_byte(&mZoneEra->deltaCode));
-
621  }
-
622 
-
623  const char* format() const {
-
624  return (const char*) pgm_read_ptr(&mZoneEra->format);
-
625  }
-
626 
-
627  int16_t untilYear() const {
-
628  return pgm_read_word(&mZoneEra->untilYear);
-
629  }
-
630 
-
631  uint8_t untilMonth() const {
-
632  return pgm_read_byte(&mZoneEra->untilMonth);
-
633  }
-
634 
-
635  uint8_t untilDay() const {
-
636  return pgm_read_byte(&mZoneEra->untilDay);
-
637  }
-
638 
-
639  uint32_t untilTimeSeconds() const {
-
640  return 60 * timeCodeToMinutes(
-
641  pgm_read_byte(&mZoneEra->untilTimeCode),
-
642  pgm_read_byte(&mZoneEra->untilTimeModifier));
-
643  }
-
644 
-
645  uint8_t untilTimeSuffix() const {
-
646  return toSuffix(pgm_read_byte(&mZoneEra->untilTimeModifier));
-
647  }
-
648 
-
649  private:
-
650  const ZoneContext* mZoneContext;
-
651  const ZoneEra* mZoneEra;
-
652 };
-
653 
- -
658  public:
-
659  explicit ZoneInfoBroker(const ZoneInfo* zoneInfo = nullptr):
-
660  mZoneInfo(zoneInfo) {}
-
661 
-
662  // use default copy constructor
-
663  ZoneInfoBroker(const ZoneInfoBroker&) = default;
-
664 
-
665  // use default assignment operator
-
666  ZoneInfoBroker& operator=(const ZoneInfoBroker&) = default;
-
667 
-
672  bool equals(uintptr_t zoneKey) const {
-
673  return mZoneInfo == (const ZoneInfo*) zoneKey;
-
674  }
-
675 
-
676  bool equals(const ZoneInfoBroker& zoneInfoBroker) const {
-
677  return mZoneInfo == zoneInfoBroker.mZoneInfo;
-
678  }
-
679 
-
680  bool isNull() const { return mZoneInfo == nullptr; }
-
681 
-
682  const ZoneContextBroker zoneContext() const {
-
683  const ZoneContext* context =
-
684  (const ZoneContext*) pgm_read_ptr(&mZoneInfo->zoneContext);
-
685  return ZoneContextBroker(context);
-
686  }
-
687 
-
688  const __FlashStringHelper* name() const {
-
689  return FPSTR(pgm_read_ptr(&mZoneInfo->name));
-
690  }
-
691 
-
692  uint32_t zoneId() const {
-
693  return pgm_read_dword(&mZoneInfo->zoneId);
-
694  }
-
695 
-
696  uint8_t numEras() const {
-
697  return pgm_read_byte(&mZoneInfo->numEras);
-
698  }
-
699 
-
700  const ZoneEraBroker era(uint8_t i) const {
-
701  auto eras = (const ZoneEra*) pgm_read_ptr(&mZoneInfo->eras);
-
702  return ZoneEraBroker(zoneContext().raw(), &eras[i]);
-
703  }
-
704 
-
705  bool isLink() const {
-
706  return mZoneInfo->targetInfo != nullptr;
-
707  }
-
708 
-
709  ZoneInfoBroker targetInfo() const {
-
710  return ZoneInfoBroker(
-
711  (const ZoneInfo*) pgm_read_ptr(&mZoneInfo->targetInfo));
-
712  }
-
713 
-
715  void printNameTo(Print& printer) const {
-
716  ZoneContextBroker zc = zoneContext();
-
717  ace_common::KString kname(name(), zc.fragments(), zc.numFragments());
-
718  kname.printTo(printer);
-
719  }
-
720 
-
725  void printShortNameTo(Print& printer) const {
-
726  ace_common::printReplaceCharTo(
-
727  printer, zoneinfo::findShortName(name()), '_', ' ');
-
728  }
-
729 
-
730  private:
-
731  const ZoneInfo* mZoneInfo;
-
732 };
-
733 
-
734 //-----------------------------------------------------------------------------
-
735 
- -
741  public:
-
742  ZoneRegistryBroker(const ZoneInfo* const* zoneRegistry):
-
743  mZoneRegistry(zoneRegistry) {}
-
744 
-
745  // use default copy constructor
-
746  ZoneRegistryBroker(const ZoneRegistryBroker&) = default;
-
747 
-
748  // use default assignment operator
-
749  ZoneRegistryBroker& operator=(const ZoneRegistryBroker&) = default;
-
750 
-
751  const ZoneInfo* zoneInfo(uint16_t i) const {
-
752  return (const ZoneInfo*) pgm_read_ptr(&mZoneRegistry[i]);
-
753  }
-
754 
-
755  private:
-
756  const ZoneInfo* const* mZoneRegistry;
-
757 };
-
758 
-
759 //-----------------------------------------------------------------------------
-
760 // A factory class for a ZoneInfoBroker.
-
761 //-----------------------------------------------------------------------------
-
762 
- -
769  public:
-
774  ZoneInfoBroker createZoneInfoBroker(uintptr_t zoneKey) const {
-
775  return ZoneInfoBroker((const ZoneInfo*) zoneKey);
-
776  }
-
777 };
-
778 
-
779 }; // ZoneInfoMid
-
780 
-
781 } // ace_time
-
782 
-
783 #endif
-
Helper functions are used in both Basic brokers and Extended brokers.
-
Data broker for accessing a ZoneContext.
Definition: ZoneInfoMid.h:411
-
Data broker for accessing ZoneEra.
Definition: ZoneInfoMid.h:586
-
Data broker for accessing ZoneInfo.
Definition: ZoneInfoMid.h:657
-
void printShortNameTo(Print &printer) const
Print a short human-readable identifier (e.g.
Definition: ZoneInfoMid.h:725
-
void printNameTo(Print &printer) const
Print a human-readable identifier (e.g.
Definition: ZoneInfoMid.h:715
-
bool equals(uintptr_t zoneKey) const
Definition: ZoneInfoMid.h:672
-
A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo.
Definition: ZoneInfoMid.h:768
-
ZoneInfoBroker createZoneInfoBroker(uintptr_t zoneKey) const
Definition: ZoneInfoMid.h:774
-
Data broker for accessing ZonePolicy.
Definition: ZoneInfoMid.h:549
-
Data broker for accessing the ZoneRegistry.
Definition: ZoneInfoMid.h:740
-
Data broker for accessing ZoneRule.
Definition: ZoneInfoMid.h:485
-
Wrapper class so that the entire collection can be referenced as a singel template parameter.
Definition: ZoneInfoMid.h:46
-
static uint16_t timeCodeToMinutes(uint8_t code, uint8_t modifier)
Convert (code, modifier) fields representing the UNTIL time in ZoneInfo or AT time in ZoneRule in one...
Definition: ZoneInfoMid.h:393
-
static int16_t toDeltaMinutes(uint8_t deltaCode)
Convert the deltaCode holding the RULES/DSTOFF field in ZoneEra or the SAVE field in ZoneRule to the ...
Definition: ZoneInfoMid.h:372
-
static int16_t toOffsetMinutes(uint8_t offsetCode, uint8_t deltaCode)
Convert the offsetCode and deltaCode holding the STDOFF field of the ZoneEra into minutes.
Definition: ZoneInfoMid.h:382
-
static uint8_t toSuffix(uint8_t modifier)
Extract the 'w', 's' 'u' suffix from the 'modifier' field, so that they can be compared against kSuff...
Definition: ZoneInfoMid.h:402
-
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
-
Metadata about the zone database.
Definition: ZoneInfoMid.h:53
-
int16_t const startYearAccurate
Start year of accurate transitions.
Definition: ZoneInfoMid.h:96
-
int16_t const startYear
Start year of the zone files as requested.
Definition: ZoneInfoMid.h:90
-
int16_t const baseYear
Base year for tiny years.
Definition: ZoneInfoMid.h:102
-
const char *const tzVersion
TZ Database version which generated the zone info.
Definition: ZoneInfoMid.h:108
-
static const uint8_t kSuffixU
Represents 'u' or UTC time.
Definition: ZoneInfoMid.h:87
-
int16_t const untilYearAccurate
Until year of accurate transitions.
Definition: ZoneInfoMid.h:99
-
uint8_t const numFragments
Number of fragments.
Definition: ZoneInfoMid.h:111
-
static const int16_t kMinYear
The minimum value of fromYear and toYear.
Definition: ZoneInfoMid.h:78
-
const char *const *const fragments
Zone Name fragment list.
Definition: ZoneInfoMid.h:114
-
static const int16_t kMaxYear
The maximum value fromYear and toYear.
Definition: ZoneInfoMid.h:68
-
int16_t const maxTransitions
Max number of transitions required in TransitionStorage.
Definition: ZoneInfoMid.h:105
-
static const uint8_t kSuffixS
Represents 's' or standard time.
Definition: ZoneInfoMid.h:84
-
int16_t const untilYear
Until year of the zone files as requested.
Definition: ZoneInfoMid.h:93
-
static const uint8_t kSuffixW
Represents 'w' or wall time.
Definition: ZoneInfoMid.h:81
-
const char *const *const letters
Zone Rule letters list.
Definition: ZoneInfoMid.h:120
-
uint8_t const numLetters
Number of fragments.
Definition: ZoneInfoMid.h:114
-
static const int16_t kMaxUntilYear
The maximum value of untilYear.
Definition: ZoneInfoMid.h:60
-
An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time per...
Definition: ZoneInfoMid.h:223
-
uint8_t const untilMonth
The month field in UNTIL (1-12).
Definition: ZoneInfoMid.h:284
-
const ZonePolicy *const zonePolicy
Zone policy, determined by the RULES column.
Definition: ZoneInfoMid.h:228
-
uint8_t const untilTimeModifier
The untilTimeModifier is a packed field containing 2 pieces of info:
Definition: ZoneInfoMid.h:309
-
int16_t const untilYear
Era is valid until currentTime < untilYear.
Definition: ZoneInfoMid.h:281
-
uint8_t const untilTimeCode
The time field of UNTIL field in 15-minute increments.
Definition: ZoneInfoMid.h:297
-
int8_t const offsetCode
UTC offset in 15 min increments.
Definition: ZoneInfoMid.h:257
-
const char *const format
Zone abbreviations (e.g.
Definition: ZoneInfoMid.h:254
-
uint8_t const deltaCode
This is a composite of two 4-bit fields:
Definition: ZoneInfoMid.h:276
-
uint8_t const untilDay
The day field in UNTIL (1-31).
Definition: ZoneInfoMid.h:291
-
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoMid.h:316
-
const char *const name
Full name of zone (e.g.
Definition: ZoneInfoMid.h:318
-
const ZoneInfo *const targetInfo
If Link, points to the target zone info.
Definition: ZoneInfoMid.h:354
-
const ZoneEra *const eras
A const ZoneEras* pointer to numEras ZoneEra entries in increasing order of UNTIL time.
Definition: ZoneInfoMid.h:351
-
uint32_t const zoneId
Unique, stable ID of the zone name, created from a hash of the name.
Definition: ZoneInfoMid.h:325
-
uint8_t const numEras
Number of ZoneEra entries.
Definition: ZoneInfoMid.h:345
-
const ZoneContext *const zoneContext
ZoneContext metadata.
Definition: ZoneInfoMid.h:328
-
A collection of transition rules which describe the DST rules of a given administrative region.
Definition: ZoneInfoMid.h:206
-
A time zone transition rule.
Definition: ZoneInfoMid.h:128
-
uint8_t const letterIndex
Determined by the LETTER column.
Definition: ZoneInfoMid.h:197
-
int8_t const onDayOfMonth
Determined by the ON column.
Definition: ZoneInfoMid.h:154
-
uint8_t const deltaCode
Determined by the SAVE column and contains the offset from UTC, in 15-min increments.
Definition: ZoneInfoMid.h:183
-
int16_t const fromYear
FROM year.
Definition: ZoneInfoMid.h:130
-
uint8_t const inMonth
Determined by the IN column.
Definition: ZoneInfoMid.h:136
-
uint8_t const atTimeModifier
The atTimeModifier is a packed field containing 2 pieces of info:
Definition: ZoneInfoMid.h:171
-
uint8_t const atTimeCode
Determined by the AT column in units of 15-minutes from 00:00.
Definition: ZoneInfoMid.h:160
-
uint8_t const onDayOfWeek
Determined by the ON column.
Definition: ZoneInfoMid.h:148
-
int16_t const toYear
TO year.
Definition: ZoneInfoMid.h:133
-
- - - - diff --git a/docs/html/ZoneManager_8h_source.html b/docs/html/ZoneManager_8h_source.html deleted file mode 100644 index 796fea851..000000000 --- a/docs/html/ZoneManager_8h_source.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneManager.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZoneManager.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONE_MANAGER_H
-
7 #define ACE_TIME_ZONE_MANAGER_H
-
8 
-
9 #include <AceCommon.h>
-
10 #include <AceSorting.h>
-
11 #include "../zoneinfo/infos.h"
-
12 #include "ZoneRegistrar.h"
-
13 #include "TimeOffset.h"
-
14 #include "ZoneProcessorCache.h"
-
15 #include "TimeZoneData.h"
-
16 #include "TimeZone.h"
-
17 #include "Zone.h"
-
18 
-
19 namespace ace_time {
-
20 
-
27 class ZoneManager {
-
28  public:
-
29 
-
31  static const uint16_t kInvalidIndex = 0xffff;
-
32 };
-
33 
- -
39  public:
- -
46  switch (d.type) {
-
47  case TimeZoneData::kTypeError:
-
48  return TimeZone::forError();
-
49  case TimeZoneData::kTypeManual:
- -
51  TimeOffset::forMinutes(d.stdOffsetMinutes),
-
52  TimeOffset::forMinutes(d.dstOffsetMinutes));
-
53  default:
-
54  return TimeZone::forError();
-
55  }
-
56  }
-
57 
-
58  uint16_t zoneRegistrySize() const { return 0; }
-
59 };
-
60 
-
80 template <typename D, typename ZP, typename Z>
- -
82  public:
- -
90  uint16_t zoneRegistrySize,
-
91  const typename D::ZoneInfo* const* zoneRegistry,
-
92  ZoneProcessorCacheBaseTemplate<ZP>& zoneProcessorCache
-
93  ):
-
94  mZoneRegistrar(zoneRegistrySize, zoneRegistry),
-
95  mZoneProcessorCache(zoneProcessorCache)
-
96  {}
-
97 
-
101  TimeZone createForZoneName(const char* name) {
-
102  const typename D::ZoneInfo* zoneInfo =
-
103  mZoneRegistrar.getZoneInfoForName(name);
-
104  return createForZoneInfo(zoneInfo);
-
105  }
-
106 
-
108  TimeZone createForZoneId(uint32_t id) {
-
109  const typename D::ZoneInfo* zoneInfo =
-
110  mZoneRegistrar.getZoneInfoForId(id);
-
111  return createForZoneInfo(zoneInfo);
-
112  }
-
113 
-
118  TimeZone createForZoneIndex(uint16_t index) {
-
119  const typename D::ZoneInfo* zoneInfo =
-
120  mZoneRegistrar.getZoneInfoForIndex(index);
-
121  return createForZoneInfo(zoneInfo);
-
122  }
-
123 
- -
129  switch (d.type) {
-
130  case TimeZoneData::kTypeError:
-
131  return TimeZone::forError();
-
132  case TimeZoneData::kTypeManual:
- -
134  TimeOffset::forMinutes(d.stdOffsetMinutes),
-
135  TimeOffset::forMinutes(d.dstOffsetMinutes));
-
136  case TimeZoneData::kTypeZoneId:
-
137  return createForZoneId(d.zoneId);
-
138  default:
-
139  // Maybe this should return TimeZone::forError()?
-
140  return TimeZone();
-
141  }
-
142  }
-
143 
-
148  uint16_t indexForZoneName(const char* name) const {
-
149  return mZoneRegistrar.findIndexForName(name);
-
150  }
-
151 
-
156  uint16_t indexForZoneId(uint32_t id) const {
-
157  return mZoneRegistrar.findIndexForId(id);
-
158  }
-
159 
-
164  uint16_t zoneRegistrySize() const {
-
165  return mZoneRegistrar.zoneRegistrySize();
-
166  }
-
167 
-
175  TimeZone createForZoneInfo(const typename D::ZoneInfo* zoneInfo) {
-
176  if (! zoneInfo) return TimeZone::forError();
-
177  ZP* processor = mZoneProcessorCache.getZoneProcessor(
-
178  (uintptr_t) zoneInfo);
-
179  return TimeZone::forZoneInfo(zoneInfo, processor);
-
180  }
-
181 
-
186  ZP* getZoneProcessor(const char* name) {
-
187  const typename D::ZoneInfo* zoneInfo =
-
188  this->mZoneRegistrar.getZoneInfoForName(name);
-
189  if (! zoneInfo) return nullptr;
-
190  return this->mZoneProcessorCache.getZoneProcessor((uintptr_t) zoneInfo);
-
191  }
-
192 
-
194  Z getZoneForIndex(uint16_t index) const {
-
195  const typename D::ZoneInfo* zoneInfo =
-
196  this->mZoneRegistrar.getZoneInfoForIndex(index);
-
197  return Z(zoneInfo);
-
198  }
-
199 
-
200  private:
-
201  // disable copy constructor and assignment operator
-
202  ZoneManagerTemplate(const ZoneManagerTemplate&) = delete;
-
203  ZoneManagerTemplate& operator=(const ZoneManagerTemplate&) = delete;
-
204 
-
205  private:
-
206  const ZoneRegistrarTemplate<D> mZoneRegistrar;
-
207  ZoneProcessorCacheBaseTemplate<ZP>& mZoneProcessorCache;
-
208 };
-
209 
-
214 using BasicZoneManager = ZoneManagerTemplate<
-
215  basic::Info, BasicZoneProcessor, BasicZone>;
-
216 
-
221 using ExtendedZoneManager = ZoneManagerTemplate<
-
222  extended::Info, ExtendedZoneProcessor, ExtendedZone>;
-
223 
-
228 using CompleteZoneManager = ZoneManagerTemplate<
-
229  complete::Info, CompleteZoneProcessor, CompleteZone>;
-
230 
-
231 }
-
232 
-
233 #endif
-
A simple version of ZoneManager that converts a manual TimeZoneData with fixed STD and DST offsets in...
Definition: ZoneManager.h:38
-
TimeZone createForTimeZoneData(const TimeZoneData &d)
Create a TimeZone with fixed STD and DST offsets stored in the TimeZoneData which was created by Time...
Definition: ZoneManager.h:45
-
static TimeOffset forMinutes(int16_t minutes)
Create TimeOffset from minutes from 00:00.
Definition: TimeOffset.h:91
-
Class that describes a time zone.
Definition: TimeZone.h:86
-
static TimeZone forZoneInfo(const basic::Info::ZoneInfo *zoneInfo, BasicZoneProcessor *zoneProcessor)
Convenience factory method to create from a zoneInfo and an associated BasicZoneProcessor.
Definition: TimeZone.h:174
-
static TimeZone forError()
Return a TimeZone representing an error condition.
Definition: TimeZone.h:241
-
static TimeZone forTimeOffset(TimeOffset stdOffset, TimeOffset dstOffset=TimeOffset())
Factory method to create from a UTC offset and an optional DST offset.
Definition: TimeZone.h:115
-
A templatized implementation of ZoneManager that binds the ZoneRegistrar with the corresponding (Basi...
Definition: ZoneManager.h:81
-
uint16_t indexForZoneName(const char *name) const
Find the registry index for the given time zone name.
Definition: ZoneManager.h:148
-
ZoneManagerTemplate(uint16_t zoneRegistrySize, const typename D::ZoneInfo *const *zoneRegistry, ZoneProcessorCacheBaseTemplate< ZP > &zoneProcessorCache)
Constructor.
Definition: ZoneManager.h:89
-
TimeZone createForTimeZoneData(const TimeZoneData &d)
Create a TimeZone from the TimeZoneData created by TimeZone::toTimeZoneData().
Definition: ZoneManager.h:128
-
ZP * getZoneProcessor(const char *name)
Return the ZoneProcessor for given zone name.
Definition: ZoneManager.h:186
-
uint16_t indexForZoneId(uint32_t id) const
Find the registry index for the given time zone id.
Definition: ZoneManager.h:156
-
Z getZoneForIndex(uint16_t index) const
Return the Zone wrapper object for the given index.
Definition: ZoneManager.h:194
-
TimeZone createForZoneId(uint32_t id)
Create a TimeZone for the given 32-bit zoneId.
Definition: ZoneManager.h:108
-
TimeZone createForZoneInfo(const typename D::ZoneInfo *zoneInfo)
Create a TimeZone from an explicit ZoneInfo reference.
Definition: ZoneManager.h:175
-
TimeZone createForZoneIndex(uint16_t index)
Create a TimeZone for the given index in the ZoneInfo registry that was used to create this ZoneManag...
Definition: ZoneManager.h:118
-
TimeZone createForZoneName(const char *name)
Create a TimeZone for the given zone name (e.g.
Definition: ZoneManager.h:101
-
uint16_t zoneRegistrySize() const
Return the number of elements in the Zone and Fat Link registry.
Definition: ZoneManager.h:164
-
Base class for ManualZoneManager, BasicZoneManager, and ExtendedZoneManager to keep ZoneManager::kInv...
Definition: ZoneManager.h:27
-
static const uint16_t kInvalidIndex
Registry index which is not valid.
Definition: ZoneManager.h:31
-
The template class of BasicZoneProcessorCacheBase or ExtendedZoneProcessorCacheBase.
-
Class that allows looking up the ZoneInfo from its TZDB identifier (e.g.
Definition: ZoneRegistrar.h:46
-
Data structure that captures the internal state of a TimeZone object with enough information so that ...
Definition: TimeZoneData.h:38
-
uint32_t zoneId
Both TimeZone::kTypeBasic and TimeZone::kTypeExtended are mapped to a TimeZoneData::kTypeZoneId.
Definition: TimeZoneData.h:85
-
- - - - diff --git a/docs/html/ZoneProcessorCache_8h_source.html b/docs/html/ZoneProcessorCache_8h_source.html deleted file mode 100644 index 834eb2f60..000000000 --- a/docs/html/ZoneProcessorCache_8h_source.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneProcessorCache.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZoneProcessorCache.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONE_PROCESSOR_CACHE_H
-
7 #define ACE_TIME_ZONE_PROCESSOR_CACHE_H
-
8 
-
9 #include "common/common.h"
-
10 #include "OffsetDateTime.h"
-
11 #include "BasicZoneProcessor.h"
-
12 #include "ExtendedZoneProcessor.h"
-
13 #include "CompleteZoneProcessor.h"
-
14 
-
15 namespace ace_time {
-
16 
-
25 template <typename ZP>
- -
27  public:
-
28  ZoneProcessorCacheBaseTemplate(ZP* zoneProcessors, uint8_t size) :
-
29  mSize(size),
-
30  mZoneProcessors(zoneProcessors)
-
31  {}
-
32 
-
34  uint8_t size() const { return mSize; }
-
35 
-
37  ZP* getZoneProcessorAtIndex(uint8_t i) { return &mZoneProcessors[i]; }
-
38 
-
47  ZP* getZoneProcessor(uintptr_t zoneKey) {
-
48  ZP* zoneProcessor = findUsingZoneKey(zoneKey);
-
49  if (zoneProcessor) return zoneProcessor;
-
50 
-
51  // Allocate the next ZoneProcessor in the cache using round-robin.
-
52  zoneProcessor = &mZoneProcessors[mCurrentIndex];
-
53  mCurrentIndex++;
-
54  if (mCurrentIndex >= mSize) mCurrentIndex = 0;
-
55  zoneProcessor->setZoneKey(zoneKey);
-
56  return zoneProcessor;
-
57  }
-
58 
-
59  private:
-
60  // disable copy constructor and assignment operator
- -
62  = delete;
- -
64  const ZoneProcessorCacheBaseTemplate&) = delete;
-
65 
-
74  ZP* findUsingZoneKey(uintptr_t zoneKey) {
-
75  for (uint8_t i = 0; i < mSize; i++) {
-
76  ZP* zoneProcessor = &mZoneProcessors[i];
-
77  if (zoneProcessor->equalsZoneKey(zoneKey)) {
-
78  return zoneProcessor;
-
79  }
-
80  }
-
81  return nullptr;
-
82  }
-
83 
-
84  private:
-
85  uint8_t const mSize;
-
86  uint8_t mCurrentIndex = 0;
-
87  ZP* const mZoneProcessors;
-
88 };
-
89 
-
94 using BasicZoneProcessorCacheBase =
-
95  ZoneProcessorCacheBaseTemplate<BasicZoneProcessor>;
-
96 
-
101 using ExtendedZoneProcessorCacheBase =
-
102  ZoneProcessorCacheBaseTemplate<ExtendedZoneProcessor>;
-
103 
-
108 using CompleteZoneProcessorCacheBase =
-
109  ZoneProcessorCacheBaseTemplate<CompleteZoneProcessor>;
-
110 
-
121 template <uint8_t SIZE>
- -
123  public:
- -
125  BasicZoneProcessorCacheBase(mZoneProcessors, SIZE)
-
126  {}
-
127 
-
128  private:
-
129  // disable copy constructor and assignment operator
- -
131  BasicZoneProcessorCache& operator=(const BasicZoneProcessorCache&) = delete;
-
132 
-
133  private:
-
134  BasicZoneProcessor mZoneProcessors[SIZE];
-
135 };
-
136 
-
147 template <uint8_t SIZE>
- -
149  public:
- -
151  ExtendedZoneProcessorCacheBase(mZoneProcessors, SIZE)
-
152  {}
-
153 
-
154  private:
-
155  // disable copy constructor and assignment operator
- - -
158  = delete;
-
159 
-
160  private:
-
161  ExtendedZoneProcessor mZoneProcessors[SIZE];
-
162 };
-
163 
-
174 template <uint8_t SIZE>
- -
176  public:
- -
178  CompleteZoneProcessorCacheBase(mZoneProcessors, SIZE)
-
179  {}
-
180 
-
181  private:
-
182  // disable copy constructor and assignment operator
- - -
185  = delete;
-
186 
-
187  private:
-
188  CompleteZoneProcessor mZoneProcessors[SIZE];
-
189 };
-
190 
-
191 }
-
192 
-
193 #endif
-
An implementation of a BasicZoneProcessorCacheBase where the cache of size SIZE is embedded into the ...
-
A specific implementation of BasicZoneProcessorTemplate that uses ZoneXxxBrokers which read from zone...
-
An implementation of an CompleteZoneProcessorCacheBase where the cache of size SIZE is embedded into ...
-
A specific implementation of ExtendedZoneProcessorTemplate that uses the complete::ZoneXxxBrokers cla...
-
An implementation of an ExtendedZoneProcessorCacheBase where the cache of size SIZE is embedded into ...
-
A specific implementation of ExtendedZoneProcessorTemplate that uses the extended::Info::ZoneXxxBroke...
-
The template class of BasicZoneProcessorCacheBase or ExtendedZoneProcessorCacheBase.
-
ZP * getZoneProcessor(uintptr_t zoneKey)
Get ZoneProcessor from either a ZoneKey, basic::Info::ZoneInfo, an extended::Info::ZoneInfo,...
-
ZP * getZoneProcessorAtIndex(uint8_t i)
Get the ZoneProcessor at index i.
-
uint8_t size() const
Return the size of the cache.
-
Identifiers used by implementation code which need to be publically exported.
-
- - - - diff --git a/docs/html/ZoneProcessor_8cpp_source.html b/docs/html/ZoneProcessor_8cpp_source.html deleted file mode 100644 index ce85e7372..000000000 --- a/docs/html/ZoneProcessor_8cpp_source.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneProcessor.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZoneProcessor.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #include <string.h> // strchr(), strncpy(), memcpy()
-
7 #include <AceCommon.h> // copyReplaceString(), PrintStr
-
8 #include "ZoneProcessor.h"
-
9 #include "common/DateConv.h" // secondsToHms()
-
10 
-
11 namespace ace_time {
-
12 
-
13 MonthDay calcStartDayOfMonth(int16_t year, uint8_t month,
-
14  uint8_t onDayOfWeek, int8_t onDayOfMonth) {
-
15  if (onDayOfWeek == 0) return {month, (uint8_t) onDayOfMonth};
-
16 
-
17  if (onDayOfMonth >= 0) {
-
18  // Convert "last{Xxx}" to "last{Xxx}>={daysInMonth-6}".
-
19  uint8_t daysInMonth = LocalDate::daysInMonth(year, month);
-
20  if (onDayOfMonth == 0) {
-
21  onDayOfMonth = daysInMonth - 6;
-
22  }
-
23 
-
24  auto limitDate = LocalDate::forComponents(year, month, onDayOfMonth);
-
25  uint8_t dayOfWeekShift = (onDayOfWeek - limitDate.dayOfWeek() + 7) % 7;
-
26  uint8_t day = (uint8_t) (onDayOfMonth + dayOfWeekShift);
-
27  if (day > daysInMonth) {
-
28  // TODO: Support shifting from Dec to Jan of following year.
-
29  day -= daysInMonth;
-
30  month++;
-
31  }
-
32  return {month, day};
-
33  } else {
-
34  onDayOfMonth = -onDayOfMonth;
-
35  auto limitDate = LocalDate::forComponents(year, month, onDayOfMonth);
-
36  int8_t dayOfWeekShift = (limitDate.dayOfWeek() - onDayOfWeek + 7) % 7;
-
37  int8_t day = onDayOfMonth - dayOfWeekShift;
-
38  if (day < 1) {
-
39  // TODO: Support shifting from Jan to Dec of the previous year.
-
40  month--;
-
41  uint8_t daysInPrevMonth = LocalDate::daysInMonth(year, month);
-
42  day += daysInPrevMonth;
-
43  }
-
44  return {month, (uint8_t) day};
-
45  }
-
46 }
-
47 
-
48 void createAbbreviation(
-
49  char* dest,
-
50  uint8_t destSize,
-
51  const char* format,
-
52  int32_t stdSeconds,
-
53  int32_t dstSeconds,
-
54  const char* letterString) {
-
55 
-
56  // Check if FORMAT is a '%z'
-
57  if (*format == '\0') {
-
58  int32_t totalSeconds = stdSeconds + dstSeconds;
-
59  uint32_t secs = (totalSeconds >= 0) ? totalSeconds : -totalSeconds;
-
60  ace_common::PrintStr<kAbbrevSize> buf;
-
61  uint16_t hh, mm, ss;
-
62  secondsToHms(secs, &hh, &mm, &ss);
-
63  buf.print((totalSeconds >= 0) ? '+' : '-');
-
64  ace_common::printPad2To(buf, hh, '0'); // pad with leading '0'
-
65  if (mm != 0 || ss != 0) {
-
66  ace_common::printPad2To(buf, mm, '0');
-
67  }
-
68  if (ss != 0) {
-
69  ace_common::printPad2To(buf, ss, '0');
-
70  }
-
71  strncpy(dest, buf.cstr(), kAbbrevSize);
-
72  dest[destSize - 1] = '\0';
-
73 
-
74  // Check if FORMAT contains a '%s'.
-
75  } else if (strchr(format, '%') != nullptr) {
-
76  // Check if RULES column empty, therefore no 'letter'
-
77  if (letterString == nullptr) {
-
78  strncpy(dest, format, destSize - 1);
-
79  dest[destSize - 1] = '\0';
-
80  } else {
-
81  // Copy `letterString` into a local buffer, in case `letterString` is
-
82  // the same as `dest.
-
83  char letter[kAbbrevSize];
-
84  if (letterString) {
-
85  strncpy(letter, letterString, kAbbrevSize - 1);
-
86  letter[kAbbrevSize - 1] = '\0';
-
87  } else {
-
88  letter[0] = '\0';
-
89  }
-
90 
-
91  ace_common::copyReplaceString(dest, destSize, format, '%', letter);
-
92  }
-
93  } else {
-
94  const char* slashPos = strchr(format, '/');
-
95  if (slashPos != nullptr) {
-
96  if (dstSeconds == 0) {
-
97  uint8_t headLength = (slashPos - format);
-
98  if (headLength >= destSize) headLength = destSize - 1;
-
99  memcpy(dest, format, headLength);
-
100  dest[headLength] = '\0';
-
101  } else {
-
102  uint8_t tailLength = strlen(slashPos+1);
-
103  if (tailLength >= destSize) tailLength = destSize - 1;
-
104  memcpy(dest, slashPos+1, tailLength);
-
105  dest[tailLength] = '\0';
-
106  }
-
107  } else {
-
108  // Just copy the FORMAT disregarding dstSeconds and letterString.
-
109  strncpy(dest, format, destSize - 1);
-
110  dest[destSize - 1] = '\0';
-
111  }
-
112  }
-
113 }
-
114 
-
115 } // ace_time
-
static LocalDate forComponents(int16_t year, uint8_t month, uint8_t day)
Factory method using separated year, month and day fields.
Definition: LocalDate.h:153
-
static uint8_t daysInMonth(int16_t year, uint8_t month)
Return the number of days in the given (year, month).
Definition: LocalDate.h:133
-
const uint8_t kAbbrevSize
Size of the c-string buffer needed to hold a time zone abbreviation.
Definition: common.h:44
-
- - - - diff --git a/docs/html/ZoneProcessor_8h_source.html b/docs/html/ZoneProcessor_8h_source.html deleted file mode 100644 index 2b87a6a29..000000000 --- a/docs/html/ZoneProcessor_8h_source.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneProcessor.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZoneProcessor.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONE_PROCESSOR_H
-
7 #define ACE_TIME_ZONE_PROCESSOR_H
-
8 
-
9 #include "common/common.h" // kAbbrevSize
-
10 #include "OffsetDateTime.h"
-
11 
-
12 class Print;
-
13 
-
14 namespace ace_time {
-
15 
-
16 class LocalDateTime;
-
17 
-
23 class FindResult {
-
24  public:
-
25  static const uint8_t kTypeNotFound = 0;
-
26  static const uint8_t kTypeExact = 1;
-
27  static const uint8_t kTypeGap = 2;
-
28  static const uint8_t kTypeOverlap = 3;
-
29 
-
65  uint8_t type = kTypeNotFound;
-
66 
-
76  uint8_t fold = 0;
-
77 
-
79  int32_t stdOffsetSeconds = 0;
-
80 
-
82  int32_t dstOffsetSeconds = 0;
-
83 
-
95  int32_t reqStdOffsetSeconds = 0;
-
96 
-
108  int32_t reqDstOffsetSeconds = 0;
-
109 
-
115  const char* abbrev = "";
-
116 };
-
117 
- -
141  public:
-
143  uint8_t getType() const { return mType; }
-
144 
-
146  virtual bool isLink() const = 0;
-
147 
-
149  virtual uint32_t getZoneId() const = 0;
-
150 
- -
153  const LocalDateTime& ldt) const = 0;
-
154 
- -
157  acetime_t epochSeconds) const = 0;
-
158 
-
164  virtual void printNameTo(Print& printer) const = 0;
-
165 
-
172  virtual void printShortNameTo(Print& printer) const = 0;
-
173 
-
180  virtual void printTargetNameTo(Print& printer) const = 0;
-
181 
-
202  virtual void setZoneKey(uintptr_t zoneKey) = 0;
-
203 
-
211  virtual bool equalsZoneKey(uintptr_t zoneKey) const = 0;
-
212 
-
213  protected:
-
214  friend bool operator==(const ZoneProcessor& a, const ZoneProcessor& b);
-
215 
-
216  // Disable copy constructor and assignment operator.
-
217  ZoneProcessor(const ZoneProcessor&) = delete;
-
218  ZoneProcessor& operator=(const ZoneProcessor&) = delete;
-
219 
-
221  ZoneProcessor(uint8_t type):
-
222  mType(type) {}
-
223 
-
229  bool isFilled(int16_t year) const {
-
230  return year == mYear && mEpochYear == Epoch::currentEpochYear();
-
231  }
-
232 
-
234  virtual bool equals(const ZoneProcessor& other) const = 0;
-
235 
-
236  protected:
-
237  // The order of the fields is optimized to save space on 32-bit processors.
-
243  uint8_t const mType;
-
244 
-
249  mutable int16_t mYear = LocalDate::kInvalidYear;
-
250 
- -
256 };
-
257 
-
258 inline bool operator==(const ZoneProcessor& a, const ZoneProcessor& b) {
-
259  if (a.mType != b.mType) return false;
-
260  return a.equals(b);
-
261 }
-
262 
-
263 inline bool operator!=(const ZoneProcessor& a, const ZoneProcessor& b) {
-
264  return ! (a == b);
-
265 }
-
266 
-
268 struct MonthDay {
-
269  uint8_t month;
-
270  uint8_t day;
-
271 };
-
272 
-
290 MonthDay calcStartDayOfMonth(int16_t year, uint8_t month,
-
291  uint8_t onDayOfWeek, int8_t onDayOfMonth);
-
292 
-
349 void createAbbreviation(
-
350  char* dest,
-
351  uint8_t destSize,
-
352  const char* format,
-
353  int32_t stdSeconds,
-
354  int32_t dstSeconds,
-
355  const char* letterString);
-
356 
-
357 } // ace_time
-
358 
-
359 #endif
-
static int16_t currentEpochYear()
Get the current epoch year.
Definition: Epoch.h:27
-
Result of a search for transition at a specific epochSeconds or a specific LocalDateTime.
Definition: ZoneProcessor.h:23
-
uint8_t fold
For findByLocalDateTime(), when type==kTypeOverlap, this is a copy of the requested LocalDateTime::fo...
Definition: ZoneProcessor.h:76
-
int32_t stdOffsetSeconds
STD offset of the resulting OffsetDateTime.
Definition: ZoneProcessor.h:79
-
int32_t dstOffsetSeconds
DST offset of the resulting OffsetDateTime.
Definition: ZoneProcessor.h:82
-
int32_t reqDstOffsetSeconds
DST offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(),...
-
const char * abbrev
Pointer to the abbreviation stored in the transient Transition::abbrev variable.
-
int32_t reqStdOffsetSeconds
STD offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(),...
Definition: ZoneProcessor.h:95
-
uint8_t type
Result of the findByEpochSeconds() or findByLocalDateTime() search methods.
Definition: ZoneProcessor.h:65
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
static const int16_t kInvalidYear
Sentinel year which indicates one or more of the following conditions:
Definition: LocalDate.h:58
-
Base interface for ZoneProcessor classes.
-
uint8_t getType() const
Return the kTypeXxx of the current instance.
-
ZoneProcessor(uint8_t type)
Constructor.
-
virtual FindResult findByEpochSeconds(acetime_t epochSeconds) const =0
Return the search results at given epochSeconds.
-
virtual void printTargetNameTo(Print &printer) const =0
Print the full identifier (e.g.
-
virtual void printNameTo(Print &printer) const =0
Print a human-readable identifier (e.g.
-
int16_t mYear
Year that was used to calculate the transitions in the current cache.
-
bool isFilled(int16_t year) const
Check if the Transition cache is filled for the given year and current epochYear.
-
virtual void printShortNameTo(Print &printer) const =0
Print a short human-readable identifier (e.g.
-
uint8_t const mType
User-visible indicator of the subclass of ZoneProcessor, which implments a specific time-zone algorit...
-
virtual uint32_t getZoneId() const =0
Return the unique stable zoneId.
-
virtual FindResult findByLocalDateTime(const LocalDateTime &ldt) const =0
Return the search results at given LocalDateTime.
-
virtual bool equalsZoneKey(uintptr_t zoneKey) const =0
Return true if ZoneProcessor is associated with the given opaque zoneKey.
-
virtual bool equals(const ZoneProcessor &other) const =0
Return true if equal.
-
int16_t mEpochYear
Epoch year that was used to calculate the transitions in the current cache.
-
virtual bool isLink() const =0
Return true if timezone is a Link entry pointing to a Zone entry.
-
virtual void setZoneKey(uintptr_t zoneKey)=0
Set the opaque zoneKey of this object to a new value, reseting any internally cached information.
-
Identifiers used by implementation code which need to be publically exported.
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
The result of calcStartDayOfMonth().
-
- - - - diff --git a/docs/html/ZoneRegistrar_8h_source.html b/docs/html/ZoneRegistrar_8h_source.html deleted file mode 100644 index 6edb1cb66..000000000 --- a/docs/html/ZoneRegistrar_8h_source.html +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneRegistrar.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZoneRegistrar.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONE_REGISTRAR_H
-
7 #define ACE_TIME_ZONE_REGISTRAR_H
-
8 
-
9 #include <stdint.h>
-
10 #include <AceCommon.h> // KString, binarySearchByKey(), isSortedByKey()
-
11 #include "../zoneinfo/infos.h"
-
12 
-
13 // AutoBenchmark.ino
-
14 void runBasicRegistrarFindIndexForName();
-
15 void runBasicRegistrarFindIndexForIdBinary();
-
16 void runBasicRegistrarFindIndexForIdLinear();
-
17 void runExtendedRegistrarFindIndexForName();
-
18 void runExtendedRegistrarFindIndexForIdBinary();
-
19 void runExtendedRegistrarFindIndexForIdLinear();
-
20 void runCompleteRegistrarFindIndexForName();
-
21 void runCompleteRegistrarFindIndexForIdBinary();
-
22 void runCompleteRegistrarFindIndexForIdLinear();
-
23 
-
24 // Tests
-
25 class ZoneRegistrarTest_Sorted_isSorted;
-
26 class ZoneRegistrarTest_Unsorted_isSorted;
-
27 class ZoneRegistrarTest_Sorted_linearSearchById;
-
28 class ZoneRegistrarTest_Sorted_linearSearchById_not_found;
-
29 class ZoneRegistrarTest_Sorted_binarySearchById_zeroEntries;
-
30 class ZoneRegistrarTest_Sorted_binarySearchById;
-
31 class ZoneRegistrarTest_Sorted_binarySearchById_not_found;
-
32 class ZoneRegistrarTest_Unsorted_linearSearchById;
-
33 class ZoneRegistrarTest_Unsorted_linearSearchById_not_found;
-
34 
-
35 namespace ace_time {
-
36 
-
45 template<typename D>
- -
47  public:
-
49  static const uint16_t kInvalidIndex = 0xffff;
-
50 
- -
53  uint16_t zoneRegistrySize,
-
54  const typename D::ZoneInfo* const* zoneRegistry
-
55  ):
-
56  mZoneRegistrySize(zoneRegistrySize),
-
57  mIsSorted(isSorted(zoneRegistry, zoneRegistrySize)),
-
58  mZoneRegistry(zoneRegistry)
-
59  {}
-
60 
-
62  uint16_t zoneRegistrySize() const { return mZoneRegistrySize; }
-
63 
-
65  const typename D::ZoneInfo* getZoneInfoForIndex(uint16_t i) const {
-
66  return (i < mZoneRegistrySize)
-
67  ? typename D::ZoneRegistryBroker(mZoneRegistry).zoneInfo(i)
-
68  : nullptr;
-
69  }
-
70 
-
75  const typename D::ZoneInfo* getZoneInfoForName(const char* name) const {
-
76  uint16_t index = findIndexForName(name);
-
77  if (index == kInvalidIndex) return nullptr;
-
78  return typename D::ZoneRegistryBroker(mZoneRegistry).zoneInfo(index);
-
79  }
-
80 
-
82  const typename D::ZoneInfo* getZoneInfoForId(uint32_t zoneId) const {
-
83  uint16_t index = findIndexForId(zoneId);
-
84  if (index == kInvalidIndex) return nullptr;
-
85  return typename D::ZoneRegistryBroker(mZoneRegistry).zoneInfo(index);
-
86  }
-
87 
-
89  uint16_t findIndexForName(const char* name) const {
-
90  uint32_t zoneId = ace_common::hashDjb2(name);
-
91  uint16_t index = findIndexForId(zoneId);
-
92  if (index == kInvalidIndex) return kInvalidIndex;
-
93 
-
94  // Verify that the zoneName actually matches, in case of hash collision.
-
95  typename D::ZoneInfoBroker zoneInfoBroker(
-
96  typename D::ZoneRegistryBroker(mZoneRegistry).zoneInfo(index));
-
97  ace_common::KString kname(
-
98  zoneInfoBroker.name(),
-
99  zoneInfoBroker.zoneContext().fragments(),
-
100  zoneInfoBroker.zoneContext().numFragments()
-
101  );
-
102  return (kname.compareTo(name) == 0) ? index : kInvalidIndex;
-
103  }
-
104 
-
106  uint16_t findIndexForId(uint32_t zoneId) const {
-
107  if (mIsSorted && mZoneRegistrySize >= kBinarySearchThreshold) {
-
108  return binarySearchById(mZoneRegistry, mZoneRegistrySize, zoneId);
-
109  } else {
-
110  return linearSearchById(mZoneRegistry, mZoneRegistrySize, zoneId);
-
111  }
-
112  }
-
113 
-
114  protected:
-
115  friend void ::runBasicRegistrarFindIndexForName();
-
116  friend void ::runBasicRegistrarFindIndexForIdBinary();
-
117  friend void ::runBasicRegistrarFindIndexForIdLinear();
-
118  friend void ::runExtendedRegistrarFindIndexForName();
-
119  friend void ::runExtendedRegistrarFindIndexForIdBinary();
-
120  friend void ::runExtendedRegistrarFindIndexForIdLinear();
-
121  friend void ::runCompleteRegistrarFindIndexForName();
-
122  friend void ::runCompleteRegistrarFindIndexForIdBinary();
-
123  friend void ::runCompleteRegistrarFindIndexForIdLinear();
-
124  friend class ::ZoneRegistrarTest_Sorted_isSorted;
-
125  friend class ::ZoneRegistrarTest_Unsorted_isSorted;
-
126  friend class ::ZoneRegistrarTest_Sorted_linearSearchById;
-
127  friend class ::ZoneRegistrarTest_Sorted_linearSearchById_not_found;
-
128  friend class ::ZoneRegistrarTest_Sorted_binarySearchById_zeroEntries;
-
129  friend class ::ZoneRegistrarTest_Sorted_binarySearchById;
-
130  friend class ::ZoneRegistrarTest_Sorted_binarySearchById_not_found;
-
131  friend class ::ZoneRegistrarTest_Unsorted_linearSearchById;
-
132  friend class ::ZoneRegistrarTest_Unsorted_linearSearchById_not_found;
-
133 
-
135  static const uint8_t kBinarySearchThreshold = 8;
-
136 
-
138  static bool isSorted(
-
139  const typename D::ZoneInfo* const* registry,
-
140  uint16_t registrySize) {
-
141 
-
142  const typename D::ZoneRegistryBroker zoneRegistry(registry);
-
143  return ace_common::isSortedByKey(
-
144  (size_t) registrySize,
-
145  [&zoneRegistry](size_t i) {
-
146  const typename D::ZoneInfo* zoneInfo = zoneRegistry.zoneInfo(i);
-
147  return typename D::ZoneInfoBroker(zoneInfo).zoneId();
-
148  } // lambda expression returns zoneId at index i
-
149  );
-
150  }
-
151 
-
156  static uint16_t linearSearchById(
-
157  const typename D::ZoneInfo* const* registry,
-
158  uint16_t registrySize,
-
159  uint32_t zoneId) {
-
160  const typename D::ZoneRegistryBroker zoneRegistry(registry);
-
161  for (uint16_t i = 0; i < registrySize; ++i) {
-
162  const typename D::ZoneInfo* zoneInfo = zoneRegistry.zoneInfo(i);
-
163  if (zoneId == typename D::ZoneInfoBroker(zoneInfo).zoneId()) {
-
164  return i;
-
165  }
-
166  }
-
167  return kInvalidIndex;
-
168 
-
169  // The templatized version is 20-40% slower on some compilers (but not
-
170  // all), so let's use the hand-rolled version above.
-
171  /*
-
172  return (uint16_t) ace_common::linearSearchByKey(
-
173  (size_t) registrySize,
-
174  zoneId,
-
175  [&zoneRegistry](size_t i) {
-
176  const typename D::ZoneInfo* zoneInfo = zoneRegistry.zoneInfo(i);
-
177  return typename D::ZoneInfoBroker(zoneInfo).zoneId();
-
178  } // lambda expression returns zoneId at index i
-
179  );
-
180  */
-
181  }
-
182 
-
191  static uint16_t binarySearchById(
-
192  const typename D::ZoneInfo* const* registry,
-
193  uint16_t registrySize,
-
194  uint32_t zoneId) {
-
195  const typename D::ZoneRegistryBroker zoneRegistry(registry);
-
196  return (uint16_t) ace_common::binarySearchByKey(
-
197  (size_t) registrySize,
-
198  zoneId,
-
199  [&zoneRegistry](size_t i) -> uint32_t {
-
200  const typename D::ZoneInfo* zoneInfo = zoneRegistry.zoneInfo(i);
-
201  return typename D::ZoneInfoBroker(zoneInfo).zoneId();
-
202  } // lambda expression returns zoneId at index i
-
203  );
-
204  }
-
205 
-
207  uint16_t findIndexForIdLinear(uint32_t zoneId) const {
-
208  return linearSearchById(mZoneRegistry, mZoneRegistrySize, zoneId);
-
209  }
-
210 
-
212  uint16_t findIndexForIdBinary(uint32_t zoneId) const {
-
213  return binarySearchById(mZoneRegistry, mZoneRegistrySize, zoneId);
-
214  }
-
215 
-
216  private:
-
217  // Ordering of fields optimized for 32-bit alignment.
-
218  uint16_t const mZoneRegistrySize;
-
219  bool const mIsSorted;
-
220  const typename D::ZoneInfo* const* const mZoneRegistry; // not nullable
-
221 };
-
222 
-
223 namespace basic {
-
224 using ZoneRegistrar = ZoneRegistrarTemplate<basic::Info>;
-
225 }
-
226 
-
227 namespace extended {
-
228 using ZoneRegistrar = ZoneRegistrarTemplate<extended::Info>;
-
229 }
-
230 
-
231 namespace complete {
-
232 using ZoneRegistrar = ZoneRegistrarTemplate<complete::Info>;
-
233 }
-
234 
-
235 } // ace_time
-
236 
-
237 #endif // ACE_TIME_ZONE_REGISTRAR_H
-
Class that allows looking up the ZoneInfo from its TZDB identifier (e.g.
Definition: ZoneRegistrar.h:46
-
static uint16_t linearSearchById(const typename D::ZoneInfo *const *registry, uint16_t registrySize, uint32_t zoneId)
Find the registry index corresponding to zoneId using linear search.
-
uint16_t findIndexForIdBinary(uint32_t zoneId) const
Exposed only for benchmarking purposes.
-
uint16_t findIndexForId(uint32_t zoneId) const
Find the index for zone id.
-
const D::ZoneInfo * getZoneInfoForName(const char *name) const
Return the ZoneInfo corresponding to the given zone name.
Definition: ZoneRegistrar.h:75
-
static const uint16_t kInvalidIndex
Invalid index to indicate error or not found.
Definition: ZoneRegistrar.h:49
-
uint16_t findIndexForName(const char *name) const
Find the index for zone name.
Definition: ZoneRegistrar.h:89
-
uint16_t zoneRegistrySize() const
Return the number of zones and (fat) links.
Definition: ZoneRegistrar.h:62
-
const D::ZoneInfo * getZoneInfoForId(uint32_t zoneId) const
Return the ZoneInfo using the zoneId.
Definition: ZoneRegistrar.h:82
-
ZoneRegistrarTemplate(uint16_t zoneRegistrySize, const typename D::ZoneInfo *const *zoneRegistry)
Constructor.
Definition: ZoneRegistrar.h:52
-
uint16_t findIndexForIdLinear(uint32_t zoneId) const
Exposed only for benchmarking purposes.
-
const D::ZoneInfo * getZoneInfoForIndex(uint16_t i) const
Return the ZoneInfo at index i.
Definition: ZoneRegistrar.h:65
-
static uint16_t binarySearchById(const typename D::ZoneInfo *const *registry, uint16_t registrySize, uint32_t zoneId)
Find the registry index corresponding to zoneId using a binary search.
-
static const uint8_t kBinarySearchThreshold
Use binarySearchById() if zoneRegistrySize >= threshold.
-
static bool isSorted(const typename D::ZoneInfo *const *registry, uint16_t registrySize)
Determine if the given zone registry is sorted by id.
-
- - - - diff --git a/docs/html/ZoneSorterByName_8h_source.html b/docs/html/ZoneSorterByName_8h_source.html deleted file mode 100644 index d13ca76c1..000000000 --- a/docs/html/ZoneSorterByName_8h_source.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneSorterByName.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZoneSorterByName.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2021 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONE_SORTER_BY_NAME_H
-
7 #define ACE_TIME_ZONE_SORTER_BY_NAME_H
-
8 
-
9 #include <AceSorting.h>
-
10 #include "ZoneManager.h"
-
11 
-
12 namespace ace_time {
-
13 
-
20 template <typename ZM>
- -
22  public:
-
27  ZoneSorterByName(const ZM& zoneManager) :
-
28  mZoneManager(zoneManager)
-
29  {}
-
30 
-
35  void fillIndexes(uint16_t indexes[], uint16_t size) const {
-
36  for (uint16_t i = 0; i < size; i++) {
-
37  indexes[i] = i;
-
38  }
-
39  }
-
40 
-
42  void sortIndexes(uint16_t indexes[], uint16_t size) const {
-
43  ace_sorting::shellSortKnuth(indexes, size,
-
44  [this](uint16_t indexA, uint16_t indexB) -> bool {
-
45  auto za = this->mZoneManager.getZoneForIndex(indexA);
-
46  auto zb = this->mZoneManager.getZoneForIndex(indexB);
-
47  return za.kname().compareTo(zb.kname()) < 0;
-
48  }
-
49  );
-
50  }
-
51 
-
53  void sortIds(uint32_t ids[], uint16_t size) const {
-
54  ace_sorting::shellSortKnuth(ids, size,
-
55  [this](uint32_t a, uint32_t b) -> bool {
-
56  uint16_t indexA = this->mZoneManager.indexForZoneId(a);
-
57  uint16_t indexB = this->mZoneManager.indexForZoneId(b);
-
58  auto za = this->mZoneManager.getZoneForIndex(indexA);
-
59  auto zb = this->mZoneManager.getZoneForIndex(indexB);
-
60  return za.kname().compareTo(zb.kname()) < 0;
-
61  }
-
62  );
-
63  }
-
64 
-
66  void sortNames(const char* names[], uint16_t size) const {
-
67  ace_sorting::shellSortKnuth(names, size,
-
68  [this](const char* a, const char* b) -> bool {
-
69  uint16_t indexA = this->mZoneManager.indexForZoneName(a);
-
70  uint16_t indexB = this->mZoneManager.indexForZoneName(b);
-
71  auto za = this->mZoneManager.getZoneForIndex(indexA);
-
72  auto zb = this->mZoneManager.getZoneForIndex(indexB);
-
73  return za.kname().compareTo(zb.kname()) < 0;
-
74  }
-
75  );
-
76  }
-
77 
-
78  private:
-
79  // disable copy constructor and assignment operator
-
80  ZoneSorterByName(const ZoneSorterByName&) = delete;
-
81  ZoneSorterByName& operator=(const ZoneSorterByName&) = delete;
-
82 
-
83  private:
-
84  const ZM& mZoneManager;
-
85 };
-
86 
-
87 }
-
88 
-
89 #endif
-
ZoneSorterByName, templatized on BasicZoneManager or ExtendedZoneManager.
-
ZoneSorterByName(const ZM &zoneManager)
Constructor.
-
void sortNames(const char *names[], uint16_t size) const
Sort the given array of zone names by UTC offset, then by name.
-
void sortIndexes(uint16_t indexes[], uint16_t size) const
Sort the given array of indexes by UTC offset, then by name.
-
void sortIds(uint32_t ids[], uint16_t size) const
Sort the given array of zone ids by UTC offset, then by name.
-
void fillIndexes(uint16_t indexes[], uint16_t size) const
Fill the given array of indexes with index from [0, size).
-
- - - - diff --git a/docs/html/ZoneSorterByOffsetAndName_8h_source.html b/docs/html/ZoneSorterByOffsetAndName_8h_source.html deleted file mode 100644 index ad62424be..000000000 --- a/docs/html/ZoneSorterByOffsetAndName_8h_source.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneSorterByOffsetAndName.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZoneSorterByOffsetAndName.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2021 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONE_SORTER_BY_OFFSET_AND_NAME_H
-
7 #define ACE_TIME_ZONE_SORTER_BY_OFFSET_AND_NAME_H
-
8 
-
9 #include <AceSorting.h>
-
10 #include "ZoneManager.h"
-
11 
-
12 namespace ace_time {
-
13 
-
21 template <typename ZM>
- -
23  public:
-
28  ZoneSorterByOffsetAndName(const ZM& zoneManager) :
-
29  mZoneManager(zoneManager)
-
30  {}
-
31 
-
36  void fillIndexes(uint16_t indexes[], uint16_t size) const {
-
37  for (uint16_t i = 0; i < size; i++) {
-
38  indexes[i] = i;
-
39  }
-
40  }
-
41 
-
43  void sortIndexes(uint16_t indexes[], uint16_t size) const {
-
44  ace_sorting::shellSortKnuth(indexes, size,
-
45  [this](uint16_t indexA, uint16_t indexB) -> bool {
-
46  auto za = this->mZoneManager.getZoneForIndex(indexA);
-
47  auto zb = this->mZoneManager.getZoneForIndex(indexB);
-
48  return this->compareZone(za, zb) < 0;
-
49  }
-
50  );
-
51  }
-
52 
-
54  void sortIds(uint32_t ids[], uint16_t size) const {
-
55  ace_sorting::shellSortKnuth(ids, size,
-
56  [this](uint32_t a, uint32_t b) -> bool {
-
57  uint16_t indexA = this->mZoneManager.indexForZoneId(a);
-
58  uint16_t indexB = this->mZoneManager.indexForZoneId(b);
-
59  auto za = this->mZoneManager.getZoneForIndex(indexA);
-
60  auto zb = this->mZoneManager.getZoneForIndex(indexB);
-
61  return this->compareZone(za, zb) < 0;
-
62  }
-
63  );
-
64  }
-
65 
-
67  void sortNames(const char* names[], uint16_t size) const {
-
68  ace_sorting::shellSortKnuth(names, size,
-
69  [this](const char* a, const char* b) -> bool {
-
70  uint16_t indexA = this->mZoneManager.indexForZoneName(a);
-
71  uint16_t indexB = this->mZoneManager.indexForZoneName(b);
-
72  auto za = this->mZoneManager.getZoneForIndex(indexA);
-
73  auto zb = this->mZoneManager.getZoneForIndex(indexB);
-
74  return this->compareZone(za, zb) < 0;
-
75  }
-
76  );
-
77  }
-
78 
-
89  template <typename Z>
-
90  static int compareZone(const Z& a, const Z& b) {
-
91  if (a.isNull()) {
-
92  if (b.isNull()) {
-
93  return 0;
-
94  } else {
-
95  return -1;
-
96  }
-
97  }
-
98  if (b.isNull()) return 1;
-
99 
-
100  TimeOffset offsetA = a.stdOffset();
-
101  TimeOffset offsetB = b.stdOffset();
-
102  if (offsetA.toSeconds() < offsetB.toSeconds()) return -1;
-
103  if (offsetA.toSeconds() > offsetB.toSeconds()) return 1;
-
104  return a.kname().compareTo(b.kname());
-
105  }
-
106 
-
107  private:
-
108  // disable copy constructor and assignment operator
- - -
111  = delete;
-
112 
-
113  private:
-
114  const ZM& mZoneManager;
-
115 };
-
116 
-
117 }
-
118 
-
119 #endif
-
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC,...
Definition: TimeOffset.h:56
-
int32_t toSeconds() const
Return the time offset as seconds.
Definition: TimeOffset.h:131
-
ZoneSorterByOffsetAndName, templatized on a ZoneManager (BasicZoneManager, ExtendedZoneManager,...
-
void sortIndexes(uint16_t indexes[], uint16_t size) const
Sort the given array of indexes by UTC offset, then by name.
-
static int compareZone(const Z &a, const Z &b)
Return <0, 0, or >0 depending on whether Zone a is <, ==, or > than Zone b.
-
void fillIndexes(uint16_t indexes[], uint16_t size) const
Fill the given array of indexes with index from [0, size).
-
void sortIds(uint32_t ids[], uint16_t size) const
Sort the given array of zone ids by UTC offset, then by name.
-
ZoneSorterByOffsetAndName(const ZM &zoneManager)
Constructor.
-
void sortNames(const char *names[], uint16_t size) const
Sort the given array of zone names by UTC offset, then by name.
-
- - - - diff --git a/docs/html/Zone_8h_source.html b/docs/html/Zone_8h_source.html deleted file mode 100644 index 8077a637b..000000000 --- a/docs/html/Zone_8h_source.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Zone.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Zone.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2019 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONE_DATA_H
-
7 #define ACE_TIME_ZONE_DATA_H
-
8 
-
9 #include <AceCommon.h> // KString
-
10 #include "../zoneinfo/infos.h"
-
11 #include "TimeOffset.h"
-
12 
-
13 class Print;
-
14 
-
15 namespace ace_time {
-
16 
-
24 template <typename D>
-
25 class ZoneTemplate {
-
26  public:
-
31  ZoneTemplate(const typename D::ZoneInfo* zoneInfo):
-
32  mZoneInfoBroker(zoneInfo) {}
-
33 
-
39  ZoneTemplate(const typename D::ZoneInfoBroker& zoneInfo):
-
40  mZoneInfoBroker(zoneInfo) {}
-
41 
-
42  // Use default copy constructor and assignment operator
-
43  ZoneTemplate(const ZoneTemplate&) = default;
-
44  ZoneTemplate& operator=(const ZoneTemplate&) = default;
-
45 
-
47  bool isNull() const { return mZoneInfoBroker.isNull(); }
-
48 
-
50  void printNameTo(Print& printer) const {
-
51  const __FlashStringHelper* name = mZoneInfoBroker.name();
-
52  typename D::ZoneContextBroker zoneContext =
-
53  mZoneInfoBroker.zoneContext();
-
54  ace_common::KString kname(
-
55  name, zoneContext.fragments(), zoneContext.numFragments());
-
56  kname.printTo(printer);
-
57  }
-
58 
-
64  void printShortNameTo(Print& printer) const {
-
65  const __FlashStringHelper* name = mZoneInfoBroker.name();
-
66  const __FlashStringHelper* shortName = zoneinfo::findShortName(name);
-
67  ace_common::printReplaceCharTo(printer, shortName, '_', ' ');
-
68  }
-
69 
-
71  uint32_t zoneId() const {
-
72  return mZoneInfoBroker.zoneId();
-
73  }
-
74 
- -
77  uint8_t numEras = mZoneInfoBroker.numEras();
-
78  typename D::ZoneEraBroker zeb = mZoneInfoBroker.era(numEras - 1);
-
79  return TimeOffset::forSeconds(zeb.offsetSeconds());
-
80  }
-
81 
-
83  ace_common::KString kname() const {
-
84  const auto* name = isNull() ? nullptr : mZoneInfoBroker.name();
-
85  typename D::ZoneContextBroker zoneContext =
-
86  mZoneInfoBroker.zoneContext();
-
87  return ace_common::KString(
-
88  name, zoneContext.fragments(), zoneContext.numFragments());
-
89  }
-
90 
-
91  private:
-
92  typename D::ZoneInfoBroker mZoneInfoBroker;
-
93 };
-
94 
-
95 using BasicZone = ZoneTemplate<basic::Info>;
-
96 using ExtendedZone = ZoneTemplate<extended::Info>;
-
97 using CompleteZone = ZoneTemplate<complete::Info>;
-
98 
-
99 }
-
100 
-
101 #endif
-
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC,...
Definition: TimeOffset.h:56
-
static TimeOffset forSeconds(int32_t seconds)
Create TimeOffset from seconds from 00:00.
Definition: TimeOffset.h:96
-
A thin wrapper around a ZoneInfo data structure to provide a stable API access to some useful ZoneInf...
Definition: Zone.h:25
-
ZoneTemplate(const typename D::ZoneInfoBroker &zoneInfo)
Constructor from a Info:ZoneInfoBroker, used by various ZoneProcessor.
Definition: Zone.h:39
-
ace_common::KString kname() const
Return the name as a KString.
Definition: Zone.h:83
-
ZoneTemplate(const typename D::ZoneInfo *zoneInfo)
Constructor from a raw Info::ZoneInfo* pointer, intended for manual inspection of a ZoneInfo record.
Definition: Zone.h:31
-
bool isNull() const
Return true if zoneInfo is null.
Definition: Zone.h:47
-
uint32_t zoneId() const
Return the zoneId of the current zoneInfo.
Definition: Zone.h:71
-
void printShortNameTo(Print &printer) const
Print the short pretty zone name to the printer.
Definition: Zone.h:64
-
TimeOffset stdOffset() const
Return the STDOFF of the last ZoneEra.
Definition: Zone.h:76
-
void printNameTo(Print &printer) const
Print the full zone name to printer.
Definition: Zone.h:50
-
- - - - diff --git a/docs/html/ZonedDateTime_8cpp_source.html b/docs/html/ZonedDateTime_8cpp_source.html deleted file mode 100644 index 29f134362..000000000 --- a/docs/html/ZonedDateTime_8cpp_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZonedDateTime.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZonedDateTime.cpp
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #include "common/DateStrings.h"
-
7 #include "ZonedDateTime.h"
-
8 
-
9 namespace ace_time {
-
10 
-
11 // Print ZonedDateTime in ISO 8601 format
-
12 void ZonedDateTime::printTo(Print& printer) const {
-
13  if (isError()) {
-
14  printer.print(F("<Invalid ZonedDateTime>"));
-
15  return;
-
16  }
-
17 
-
18  mOffsetDateTime.printTo(printer);
-
19  printer.print('[');
-
20  mTimeZone.printTo(printer);
-
21  printer.print(']');
-
22 }
-
23 
-
24 }
-
void printTo(Print &printer) const
Print OffsetDateTime to 'printer' in ISO 8601 format.
-
void printTo(Print &printer) const
Print the text representation of the time zone using the full canonical time zone name or UTC offset ...
Definition: TimeZone.cpp:12
-
void printTo(Print &printer) const
Print ZonedDateTime to 'printer'.
-
bool isError() const
Return true if any component indicates an error condition.
-
- - - - diff --git a/docs/html/ZonedDateTime_8h_source.html b/docs/html/ZonedDateTime_8h_source.html deleted file mode 100644 index fc2ec3305..000000000 --- a/docs/html/ZonedDateTime_8h_source.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZonedDateTime.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZonedDateTime.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONED_DATE_TIME_H
-
7 #define ACE_TIME_ZONED_DATE_TIME_H
-
8 
-
9 #include <stdint.h>
-
10 #include "OffsetDateTime.h"
-
11 #include "TimeZone.h"
-
12 
-
13 class Print;
-
14 
-
15 namespace ace_time {
-
16 
- -
37  public:
- -
56  int16_t year, uint8_t month, uint8_t day,
-
57  uint8_t hour, uint8_t minute, uint8_t second,
-
58  const TimeZone& timeZone, uint8_t fold = 0) {
- - -
61  return forLocalDateTime(ldt, timeZone);
-
62  }
-
63 
- -
76  const LocalDateTime& ldt,
-
77  const TimeZone& timeZone) {
-
78  auto odt = timeZone.getOffsetDateTime(ldt);
-
79  return ZonedDateTime(odt, timeZone);
-
80  }
- -
94  const TimeZone& timeZone) {
-
95  OffsetDateTime odt = (epochSeconds == LocalDate::kInvalidEpochSeconds)
- -
97  : timeZone.getOffsetDateTime(epochSeconds);
-
98  return ZonedDateTime(odt, timeZone);
-
99  }
-
100 
- -
120  int64_t unixSeconds, const TimeZone& timeZone) {
-
121  acetime_t epochSeconds;
-
122  if (unixSeconds == LocalDate::kInvalidUnixSeconds64) {
-
123  epochSeconds = LocalDate::kInvalidEpochSeconds;
-
124  } else {
-
125  epochSeconds = unixSeconds
- -
127  }
-
128  return forEpochSeconds(epochSeconds, timeZone);
-
129  }
-
130 
-
144  static ZonedDateTime forDateString(const char* dateString) {
- - -
147  }
-
148 
-
153  static ZonedDateTime forDateString(const __FlashStringHelper* dateString) {
- - -
156  }
-
157 
- - -
161  }
-
162 
-
164  explicit ZonedDateTime() {}
-
165 
-
167  bool isError() const { return mOffsetDateTime.isError(); }
-
168 
-
170  int16_t year() const { return mOffsetDateTime.year(); }
-
171 
-
173  void year(int16_t year) { mOffsetDateTime.year(year); }
-
174 
-
176  uint8_t month() const { return mOffsetDateTime.month(); }
-
177 
-
179  void month(uint8_t month) { mOffsetDateTime.month(month); }
-
180 
-
182  uint8_t day() const { return mOffsetDateTime.day(); }
-
183 
-
185  void day(uint8_t day) { mOffsetDateTime.day(day); }
-
186 
-
188  uint8_t hour() const { return mOffsetDateTime.hour(); }
-
189 
-
191  void hour(uint8_t hour) { mOffsetDateTime.hour(hour); }
-
192 
-
194  uint8_t minute() const { return mOffsetDateTime.minute(); }
-
195 
-
197  void minute(uint8_t minute) { mOffsetDateTime.minute(minute); }
-
198 
-
200  uint8_t second() const { return mOffsetDateTime.second(); }
-
201 
-
203  void second(uint8_t second) { mOffsetDateTime.second(second); }
-
204 
-
206  uint8_t fold() const { return mOffsetDateTime.fold(); }
-
207 
-
209  void fold(uint8_t fold) { mOffsetDateTime.fold(fold); }
-
210 
-
215  uint8_t dayOfWeek() const { return mOffsetDateTime.dayOfWeek(); }
-
216 
-
218  const TimeZone& timeZone() const { return mTimeZone; }
-
219 
-
224  void timeZone(const TimeZone& timeZone) { mTimeZone = timeZone; }
-
225 
-
227  TimeOffset timeOffset() const { return mOffsetDateTime.timeOffset(); }
-
228 
-
230  const LocalDateTime& localDateTime() const {
-
231  return mOffsetDateTime.localDateTime();
-
232  }
-
233 
- -
236  return mOffsetDateTime;
-
237  }
-
238 
-
255  void normalize() {
-
256  mOffsetDateTime = mTimeZone.getOffsetDateTime(localDateTime());
-
257  }
-
258 
- -
264  acetime_t epochSeconds = toEpochSeconds();
-
265  return ZonedDateTime::forEpochSeconds(epochSeconds, timeZone);
-
266  }
-
267 
-
273  int32_t toEpochDays() const {
-
274  return mOffsetDateTime.toEpochDays();
-
275  }
-
276 
-
278  int32_t toUnixDays() const {
-
279  return mOffsetDateTime.toUnixDays();
-
280  }
-
281 
- -
288  return mOffsetDateTime.toEpochSeconds();
-
289  }
-
290 
-
298  int64_t toUnixSeconds64() const {
-
299  return mOffsetDateTime.toUnixSeconds64();
-
300  }
-
301 
-
318  int8_t compareTo(const ZonedDateTime& that) const {
-
319  return mOffsetDateTime.compareTo(that.mOffsetDateTime);
-
320  }
-
321 
-
327  void printTo(Print& printer) const;
-
328 
-
329  // Use default copy constructor and assignment operator.
-
330  ZonedDateTime(const ZonedDateTime&) = default;
-
331  ZonedDateTime& operator=(const ZonedDateTime&) = default;
-
332 
-
333  private:
-
335  static const uint8_t kDateStringLength = 25;
-
336 
-
337  friend bool operator==(const ZonedDateTime& a, const ZonedDateTime& b);
-
338 
- -
341  mOffsetDateTime(offsetDateTime),
-
342  mTimeZone(tz) {}
-
343 
-
344  OffsetDateTime mOffsetDateTime;
-
345  TimeZone mTimeZone;
-
346 };
-
347 
-
355 inline bool operator==(const ZonedDateTime& a, const ZonedDateTime& b) {
-
356  return a.mOffsetDateTime == b.mOffsetDateTime
-
357  && a.mTimeZone == b.mTimeZone;
-
358 }
-
359 
-
361 inline bool operator!=(const ZonedDateTime& a, const ZonedDateTime& b) {
-
362  return ! (a == b);
-
363 }
-
364 
-
365 }
-
366 
-
367 #endif
-
static int64_t secondsToCurrentEpochFromUnixEpoch64()
Return the number of seconds from the Unix epoch (1970-01-01T00:00:00) to the current epoch.
Definition: Epoch.h:69
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
static LocalDateTime forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint8_t fold=0)
Factory method using separated date and time components.
Definition: LocalDateTime.h:44
-
static const int64_t kInvalidUnixSeconds64
Sentinel unixSeconds64 which indicates an error.
Definition: LocalDate.h:87
-
static const int32_t kInvalidEpochSeconds
Sentinel epochSeconds which indicates an error.
Definition: LocalDate.h:84
-
The date (year, month, day), time (hour, minute, second) and fixed offset from UTC (timeOffset).
-
uint8_t day() const
Return the day of the month.
-
TimeOffset timeOffset() const
Return the UTC offset of the OffsetDateTime.
-
int64_t toUnixSeconds64() const
Return the 64-bit number of seconds from Unix epoch 1970-01-01 00:00:00 UTC.
-
bool isError() const
Return true if any component indicates an error condition.
-
const LocalDateTime & localDateTime() const
Return the LocalDateTime.
-
uint8_t hour() const
Return the hour.
-
uint8_t month() const
Return the month with January=1, December=12.
-
acetime_t toEpochSeconds() const
Return seconds since AceTime epoch taking into account the UTC offset.
-
static OffsetDateTime forError()
Factory method that returns an instance whose isError() is true.
-
uint8_t fold() const
Return the fold.
-
int8_t compareTo(const OffsetDateTime &that) const
Compare 'this' OffsetDateTime with 'that' OffsetDateTime, and return (<0, 0, >0) according to whether...
-
uint8_t minute() const
Return the minute.
-
int16_t year() const
Return the year.
-
static OffsetDateTime forDateString(const char *dateString)
Factory method.
-
uint8_t dayOfWeek() const
Return the day of the week, Monday=1, Sunday=7 (per ISO 8601).
-
int32_t toEpochDays() const
Return number of whole days since AceTime epoch taking into account the UTC offset.
-
int32_t toUnixDays() const
Return the number of days since Unix epoch (1970-01-01 00:00:00).
-
uint8_t second() const
Return the second.
-
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC,...
Definition: TimeOffset.h:56
-
Class that describes a time zone.
Definition: TimeZone.h:86
-
OffsetDateTime getOffsetDateTime(const LocalDateTime &ldt) const
Return the best estimate of the OffsetDateTime at the given LocalDateTime for the current TimeZone.
Definition: TimeZone.h:386
-
static TimeZone forTimeOffset(TimeOffset stdOffset, TimeOffset dstOffset=TimeOffset())
Factory method to create from a UTC offset and an optional DST offset.
Definition: TimeZone.h:115
-
The date (year, month, day), time (hour, minute, second), and a timeZone object that supports the zon...
Definition: ZonedDateTime.h:36
-
static ZonedDateTime forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, const TimeZone &timeZone, uint8_t fold=0)
Factory method using separated date, time, and time zone fields.
Definition: ZonedDateTime.h:55
-
int8_t compareTo(const ZonedDateTime &that) const
Compare 'this' ZonedDateTime with 'that' ZonedDateTime, and return (<0, 0, >0) according to whether t...
-
const TimeZone & timeZone() const
Return the time zone of the ZonedDateTime.
-
uint8_t hour() const
Return the hour.
-
void fold(uint8_t fold)
Set the fold.
-
int32_t toEpochDays() const
Return number of whole days since AceTime epoch taking into account the time zone.
-
int16_t year() const
Return the year.
-
void printTo(Print &printer) const
Print ZonedDateTime to 'printer'.
-
uint8_t dayOfWeek() const
Return the day of the week using ISO 8601 numbering where Monday=1 and Sunday=7.
-
static ZonedDateTime forLocalDateTime(const LocalDateTime &ldt, const TimeZone &timeZone)
Factory method using LocalDateTime and time zone fields.
Definition: ZonedDateTime.h:75
-
friend bool operator==(const ZonedDateTime &a, const ZonedDateTime &b)
Return true if two ZonedDateTime objects are equal in all components.
-
static ZonedDateTime forDateString(const __FlashStringHelper *dateString)
Factory method.
-
uint8_t fold() const
Return the fold.
-
ZonedDateTime convertToTimeZone(const TimeZone &timeZone) const
Create a ZonedDateTime in a different time zone (with the same epochSeconds).
-
bool isError() const
Return true if any component indicates an error condition.
-
void day(uint8_t day)
Set the day of the month.
-
void minute(uint8_t minute)
Set the minute.
-
int64_t toUnixSeconds64() const
Return the 64-bit number of seconds from Unix epoch 1970-01-01 00:00:00 UTC.
-
uint8_t day() const
Return the day of the month.
-
static ZonedDateTime forUnixSeconds64(int64_t unixSeconds, const TimeZone &timeZone)
Factory method to create a ZonedDateTime using the 64-bit number of seconds from Unix epoch.
-
void second(uint8_t second)
Set the second.
-
uint8_t second() const
Return the second.
-
static ZonedDateTime forError()
Return an instance whose isError() returns true.
-
static ZonedDateTime forEpochSeconds(acetime_t epochSeconds, const TimeZone &timeZone)
Factory method.
Definition: ZonedDateTime.h:93
-
void year(int16_t year)
Set the year given the full year.
-
void hour(uint8_t hour)
Set the hour.
-
ZonedDateTime()
Default constructor.
-
acetime_t toEpochSeconds() const
Return seconds since AceTime epoch taking into account the time zone.
-
uint8_t minute() const
Return the minute.
-
void timeZone(const TimeZone &timeZone)
Set the time zone.
-
void normalize()
Normalize the ZonedDateTime after mutation.
-
void month(uint8_t month)
Set the month.
-
TimeOffset timeOffset() const
Return the offset zone of the OffsetDateTime.
-
int32_t toUnixDays() const
Return the number of days since Unix epoch (1970-01-01 00:00:00).
-
static ZonedDateTime forDateString(const char *dateString)
Factory method.
-
const LocalDateTime & localDateTime() const
Return the LocalDateTime of the components.
-
uint8_t month() const
Return the month with January=1, December=12.
-
const OffsetDateTime & offsetDateTime() const
Return the OffsetDateTime of the components.
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
- - - - diff --git a/docs/html/ZonedExtra_8cpp_source.html b/docs/html/ZonedExtra_8cpp_source.html deleted file mode 100644 index bf0cd4919..000000000 --- a/docs/html/ZonedExtra_8cpp_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZonedExtra.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZonedExtra.cpp
-
-
-
1 #include "ZonedExtra.h"
-
2 #include "TimeZone.h"
-
3 
-
4 namespace ace_time {
-
5 
- -
7  int16_t year, uint8_t month, uint8_t day,
-
8  uint8_t hour, uint8_t minute, uint8_t second,
-
9  const TimeZone& tz, uint8_t fold) {
- -
11  year, month, day, hour, minute, second, fold);
-
12  return forLocalDateTime(ldt, tz);
-
13 }
-
14 
-
15 // These are defined in the .cpp file to break cyclic dependency.
- -
17  acetime_t epochSeconds,
-
18  const TimeZone& tz) {
-
19  return tz.getZonedExtra(epochSeconds);
-
20 }
-
21 
-
22 // These are defined in the .cpp file to break cyclic dependency.
- -
24  const LocalDateTime& ldt,
-
25  const TimeZone& tz) {
-
26  return tz.getZonedExtra(ldt);
-
27 }
-
28 
-
29 }
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
static LocalDateTime forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint8_t fold=0)
Factory method using separated date and time components.
Definition: LocalDateTime.h:44
-
Class that describes a time zone.
Definition: TimeZone.h:86
-
ZonedExtra getZonedExtra(const LocalDateTime &ldt) const
Return the ZonedExtra information at epochSeconds.
Definition: TimeZone.h:304
- -
static ZonedExtra forLocalDateTime(const LocalDateTime &ldt, const TimeZone &tz)
Return an instance for the given LocalDateTime and TimeZone.
Definition: ZonedExtra.cpp:23
-
static ZonedExtra forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, const TimeZone &tz, uint8_t fold=0)
Return an instance for the given LocalDateTime and TimeZone.
Definition: ZonedExtra.cpp:6
-
static ZonedExtra forEpochSeconds(acetime_t epochSeconds, const TimeZone &tz)
Return an instance for the given epochSeconds and TimeZone.
Definition: ZonedExtra.cpp:16
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
- - - - diff --git a/docs/html/ZonedExtra_8h_source.html b/docs/html/ZonedExtra_8h_source.html deleted file mode 100644 index e8168aa8b..000000000 --- a/docs/html/ZonedExtra_8h_source.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZonedExtra.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ZonedExtra.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2023 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONED_EXTRA_H
-
7 #define ACE_TIME_ZONED_EXTRA_H
-
8 
-
9 #include <string.h> // strncpy()
-
10 #include <stdint.h>
-
11 #include "common/common.h" // acetime_t, kAbbrevSize
-
12 #include "TimeOffset.h"
-
13 
-
14 namespace ace_time {
-
15 
-
16 class TimeZone;
-
17 class LocalDateTime;
-
18 
-
19 class ZonedExtra {
-
20  public:
-
22  static const uint8_t kAbbrevSize = ace_time::kAbbrevSize;
-
23 
-
29  static const uint8_t kTypeNotFound = 0;
-
30 
-
35  static const uint8_t kTypeExact = 1;
-
36 
-
43  static const uint8_t kTypeGap = 2;
-
44 
-
52  static const uint8_t kTypeOverlap = 3;
-
53 
-
55  static ZonedExtra forError() {
-
56  return ZonedExtra();
-
57  }
-
58 
- -
65  int16_t year, uint8_t month, uint8_t day,
-
66  uint8_t hour, uint8_t minute, uint8_t second,
-
67  const TimeZone& tz, uint8_t fold = 0);
-
68 
- -
71  acetime_t epochSeconds,
-
72  const TimeZone& tz);
-
73 
- -
80  const LocalDateTime& ldt,
-
81  const TimeZone& tz);
-
82 
-
84  explicit ZonedExtra() {}
-
85 
-
87  explicit ZonedExtra(
-
88  uint8_t type,
-
89  int32_t stdOffsetSeconds,
-
90  int32_t dstOffsetSeconds,
-
91  int32_t reqStdOffsetSeconds,
-
92  int32_t reqDstOffsetSeconds,
-
93  const char* abbrev)
-
94  : mStdOffsetSeconds(stdOffsetSeconds)
-
95  , mDstOffsetSeconds(dstOffsetSeconds)
-
96  , mReqStdOffsetSeconds(reqStdOffsetSeconds)
-
97  , mReqDstOffsetSeconds(reqDstOffsetSeconds)
-
98  , mType(type)
-
99  {
-
100  strncpy(mAbbrev, abbrev, kAbbrevSize - 1);
-
101  mAbbrev[kAbbrevSize - 1] = '\0';
-
102  }
-
103 
-
105  bool isError() const {
-
106  return mStdOffsetSeconds == kInvalidSeconds;
-
107  }
-
108 
-
109  uint8_t type() const { return mType; }
-
110 
- -
113  return TimeOffset::forSeconds(mStdOffsetSeconds);
-
114  }
-
115 
- -
118  return TimeOffset::forSeconds(mDstOffsetSeconds);
-
119  }
-
120 
- -
128  return TimeOffset::forSeconds(mStdOffsetSeconds + mDstOffsetSeconds);
-
129  }
-
130 
- -
136  return TimeOffset::forSeconds(mReqStdOffsetSeconds);
-
137  }
-
138 
- -
144  return TimeOffset::forSeconds(mReqDstOffsetSeconds);
-
145  }
-
146 
- -
156  return TimeOffset::forSeconds(
-
157  mReqStdOffsetSeconds + mReqDstOffsetSeconds);
-
158  }
-
159 
-
166  const char* abbrev() const { return mAbbrev; }
-
167 
-
168  private:
-
169  static const int32_t kInvalidSeconds = INT32_MIN;
-
170 
-
171  int32_t mStdOffsetSeconds = kInvalidSeconds;
-
172  int32_t mDstOffsetSeconds = kInvalidSeconds;
-
173  int32_t mReqStdOffsetSeconds = kInvalidSeconds;
-
174  int32_t mReqDstOffsetSeconds = kInvalidSeconds;
-
175  uint8_t mType = kTypeNotFound;
-
176  char mAbbrev[kAbbrevSize] = "";
-
177 };
-
178 
-
179 }
-
180 
-
181 #endif
-
Class that holds the date-time as the components (year, month, day, hour, minute, second) without reg...
Definition: LocalDateTime.h:30
-
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC,...
Definition: TimeOffset.h:56
-
static TimeOffset forSeconds(int32_t seconds)
Create TimeOffset from seconds from 00:00.
Definition: TimeOffset.h:96
-
Class that describes a time zone.
Definition: TimeZone.h:86
- -
TimeOffset reqDstOffset() const
DST offset of the requested epochSeconds or LocalDateTime.
Definition: ZonedExtra.h:143
-
TimeOffset reqStdOffset() const
STD offset of the requested epochSeconds or LocalDateTime.
Definition: ZonedExtra.h:135
-
static ZonedExtra forError()
Return an instance that indicates an error.
Definition: ZonedExtra.h:55
-
static ZonedExtra forLocalDateTime(const LocalDateTime &ldt, const TimeZone &tz)
Return an instance for the given LocalDateTime and TimeZone.
Definition: ZonedExtra.cpp:23
-
TimeOffset stdOffset() const
STD offset of the resulting OffsetDateTime.
Definition: ZonedExtra.h:112
-
static const uint8_t kAbbrevSize
Size of char buffer needed to hold the largest abbreviation.
Definition: ZonedExtra.h:22
-
static ZonedExtra forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, const TimeZone &tz, uint8_t fold=0)
Return an instance for the given LocalDateTime and TimeZone.
Definition: ZonedExtra.cpp:6
-
static const uint8_t kTypeNotFound
The epochSeconds or LocalDateTime was not found because it was outside the range of the zoneinfo data...
Definition: ZonedExtra.h:29
-
static const uint8_t kTypeOverlap
The given LocalDateTime matches 2 possible epochSeconds, which is disambguiated by the LocalDateTime:...
Definition: ZonedExtra.h:52
-
TimeOffset dstOffset() const
DST offset of the resulting OffsetDateTime.
Definition: ZonedExtra.h:117
-
ZonedExtra()
Consructor.
Definition: ZonedExtra.h:84
-
TimeOffset reqTimeOffset() const
The total time offset of the requested epochSeconds of LocalDateTime, (reqStdOffset + reqDstOffset).
Definition: ZonedExtra.h:155
-
static const uint8_t kTypeExact
The given LocalDateTime matches a single epochSeconds.
Definition: ZonedExtra.h:35
-
const char * abbrev() const
Returns the pointer to the local string buffer containing the timezone abbreviation (e....
Definition: ZonedExtra.h:166
-
static const uint8_t kTypeGap
The given LocalDateTime occurs in a gap and does not match any epochSeconds.
Definition: ZonedExtra.h:43
-
ZonedExtra(uint8_t type, int32_t stdOffsetSeconds, int32_t dstOffsetSeconds, int32_t reqStdOffsetSeconds, int32_t reqDstOffsetSeconds, const char *abbrev)
Consructor.
Definition: ZonedExtra.h:87
-
static ZonedExtra forEpochSeconds(acetime_t epochSeconds, const TimeZone &tz)
Return an instance for the given epochSeconds and TimeZone.
Definition: ZonedExtra.cpp:16
-
bool isError() const
Indicates that the LocalDateTime or epochSeconds was not found.
Definition: ZonedExtra.h:105
-
TimeOffset timeOffset() const
The total time offset (stdOffset + dstOffset).
Definition: ZonedExtra.h:127
-
Identifiers used by implementation code which need to be publically exported.
-
const uint8_t kAbbrevSize
Size of the c-string buffer needed to hold a time zone abbreviation.
Definition: common.h:44
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
- - - - diff --git a/docs/html/annotated.html b/docs/html/annotated.html deleted file mode 100644 index 8cce7efe3..000000000 --- a/docs/html/annotated.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - -AceTime: Class List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 123]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Nace_time
 Nbasic
 CTransitionTemplateData structure that defines the start of a specific UTC offset as described by the matching ZoneEra and its ZoneRule for a given year
 Nextended
 CDateTupleA tuple that represents a date and time
 CYearMonthTupleA simple tuple to represent a year/month pair
 CMatchingEraTemplateData structure that captures the matching ZoneEra and its ZoneRule transitions for a given year
 CTransitionTemplateRepresents an interval of time where the time zone obeyed a certain UTC offset and DST delta
 CTransitionForSecondsTemplateTuple of a matching Transition and its 'fold'
 CTransitionForDateTimeTemplateThe result of the findTransitionForDateTime(const LocalDatetime& ldt) method which can return 0, 1, or 2 matching Transitions depending on whether the DateTime is an exact match, in the gap, or in the overlap
 CTransitionStorageTemplateA heap manager which is specialized and tuned to manage a collection of Transitions, keeping track of unused, used, and active states, using a fixed array of Transitions
 CBasicZoneProcessorTemplateAn implementation of ZoneProcessor that supports a subset of the zones containing in the TZ Database
 CBasicZoneProcessorA specific implementation of BasicZoneProcessorTemplate that uses ZoneXxxBrokers which read from zonedb files in PROGMEM flash memory
 CDateStringsClass that translates a numeric month (1-12) or dayOfWeek (1-7) into a human readable string
 CCompleteZoneProcessorA specific implementation of ExtendedZoneProcessorTemplate that uses the complete::ZoneXxxBrokers classes which read from 'zonedbc' files in PROGMEM flash memory using the high-resolution zoneinfo data structures
 CEpochUtility functions for setting, retrieving, and converting the current epoch
 CEpochConverterHinnantUtility class that converts AceTime epoch days to (year, month, day) in the Gregorian calendar and vise versa
 CEpochConverterJulianUtility class that converts AceTime epoch days to (year, month, day) in the Gregorian calendar and vise versa
 CExtendedZoneProcessorTemplateAn implementation of ZoneProcessor that supports for all zones defined by the TZ Database
 CExtendedZoneProcessorA specific implementation of ExtendedZoneProcessorTemplate that uses the extended::Info::ZoneXxxBrokers classes which read from 'zonedbx' files in PROGMEM flash memory
 CLocalDateThe date (year, month, day) representing the date without regards to time zone
 CLocalDateTimeClass that holds the date-time as the components (year, month, day, hour, minute, second) without regards to the time zone
 CLocalTimeThe time (hour, minute, second) fields representing the time without regards to the day or the time zone
 COffsetDateTimeThe date (year, month, day), time (hour, minute, second) and fixed offset from UTC (timeOffset)
 CTimeOffsetA thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC, but not always
 CTimePeriodRepresents a period of time relative to some known point in time, potentially represented by a DateTime
 CTimeZoneClass that describes a time zone
 CTimeZoneDataData structure that captures the internal state of a TimeZone object with enough information so that it can be serialized using TimeZone::toTimeZoneData() then reconstructed using ZoneManager::createForTimeZoneData()
 CZoneTemplateA thin wrapper around a ZoneInfo data structure to provide a stable API access to some useful ZoneInfo data
 CZonedDateTimeThe date (year, month, day), time (hour, minute, second), and a timeZone object that supports the zones defined by the IANA TZ database
 CZonedExtra
 CZoneManagerBase class for ManualZoneManager, BasicZoneManager, and ExtendedZoneManager to keep ZoneManager::kInvalidIndex for backwards compatibility
 CManualZoneManagerA simple version of ZoneManager that converts a manual TimeZoneData with fixed STD and DST offsets into a TimeZone
 CZoneManagerTemplateA templatized implementation of ZoneManager that binds the ZoneRegistrar with the corresponding (Basic|Extended)ZoneProcessorCache
 CFindResultResult of a search for transition at a specific epochSeconds or a specific LocalDateTime
 CZoneProcessorBase interface for ZoneProcessor classes
 CMonthDayThe result of calcStartDayOfMonth()
 CZoneProcessorCacheBaseTemplateThe template class of BasicZoneProcessorCacheBase or ExtendedZoneProcessorCacheBase
 CBasicZoneProcessorCacheAn implementation of a BasicZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself
 CExtendedZoneProcessorCacheAn implementation of an ExtendedZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself
 CCompleteZoneProcessorCacheAn implementation of an CompleteZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself
 CZoneRegistrarTemplateClass that allows looking up the ZoneInfo from its TZDB identifier (e.g
 CZoneSorterByNameZoneSorterByName, templatized on BasicZoneManager or ExtendedZoneManager
 CZoneSorterByOffsetAndNameZoneSorterByOffsetAndName, templatized on a ZoneManager (BasicZoneManager, ExtendedZoneManager, or CompleteZoneManager)
 CZoneInfoHighWrapper class so that the entire collection can be referenced as a singel template parameter
 CZoneContextMetadata about the zone database
 CZoneContextBrokerData broker for accessing a ZoneContext
 CZoneEraAn entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period
 CZoneEraBrokerData broker for accessing ZoneEra
 CZoneInfoRepresentation of a given time zone, implemented as an array of ZoneEra records
 CZoneInfoBrokerData broker for accessing ZoneInfo
 CZoneInfoStoreA storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo
 CZonePolicyA collection of transition rules which describe the DST rules of a given administrative region
 CZonePolicyBrokerData broker for accessing ZonePolicy
 CZoneRegistryBrokerData broker for accessing the ZoneRegistry
 CZoneRuleA time zone transition rule
 CZoneRuleBrokerData broker for accessing ZoneRule
 CZoneInfoLow
 CZoneContextMetadata about the zone database
 CZoneContextBrokerData broker for accessing a ZoneContext
 CZoneEraAn entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period
 CZoneEraBrokerData broker for accessing ZoneEra
 CZoneInfoRepresentation of a given time zone, implemented as an array of ZoneEra records
 CZoneInfoBrokerData broker for accessing ZoneInfo
 CZoneInfoStoreA storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo
 CZonePolicyA collection of transition rules which describe the DST rules of a given administrative region
 CZonePolicyBrokerData broker for accessing ZonePolicy
 CZoneRegistryBrokerData broker for accessing the ZoneRegistry
 CZoneRuleA time zone transition rule
 CZoneRuleBrokerData broker for accessing ZoneRule
 CZoneInfoMidWrapper class so that the entire collection can be referenced as a singel template parameter
 CZoneContextMetadata about the zone database
 CZoneContextBrokerData broker for accessing a ZoneContext
 CZoneEraAn entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period
 CZoneEraBrokerData broker for accessing ZoneEra
 CZoneInfoRepresentation of a given time zone, implemented as an array of ZoneEra records
 CZoneInfoBrokerData broker for accessing ZoneInfo
 CZoneInfoStoreA storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo
 CZonePolicyA collection of transition rules which describe the DST rules of a given administrative region
 CZonePolicyBrokerData broker for accessing ZonePolicy
 CZoneRegistryBrokerData broker for accessing the ZoneRegistry
 CZoneRuleA time zone transition rule
 CZoneRuleBrokerData broker for accessing ZoneRule
-
-
- - - - diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png deleted file mode 100644 index 224b29aa9847d5a4b3902efd602b7ddf7d33e6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT diff --git a/docs/html/bdwn.png b/docs/html/bdwn.png deleted file mode 100644 index 940a0b950443a0bb1b216ac03c45b8a16c955452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::BasicZoneProcessor Member List
-
-
- -

This is the complete list of members for ace_time::BasicZoneProcessor, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - -
BasicZoneProcessor(const basic::Info::ZoneInfo *zoneInfo=nullptr) (defined in ace_time::BasicZoneProcessor)ace_time::BasicZoneProcessorinlineexplicit
BasicZoneProcessorTemplate(uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)ace_time::BasicZoneProcessorTemplate< basic::Info >inlineexplicitprotected
equalsZoneKey(uintptr_t zoneKey) const overrideace_time::BasicZoneProcessorTemplate< basic::Info >inlinevirtual
findByEpochSeconds(acetime_t epochSeconds) const overrideace_time::BasicZoneProcessorTemplate< basic::Info >inlinevirtual
findByLocalDateTime(const LocalDateTime &ldt) const overrideace_time::BasicZoneProcessorTemplate< basic::Info >inlinevirtual
getType() constace_time::ZoneProcessorinline
getZoneId() const overrideace_time::BasicZoneProcessorTemplate< basic::Info >inlinevirtual
isFilled(int16_t year) constace_time::ZoneProcessorinlineprotected
isLink() const overrideace_time::BasicZoneProcessorTemplate< basic::Info >inlinevirtual
kTypeBasicace_time::BasicZoneProcessorstatic
log() constace_time::BasicZoneProcessorTemplate< basic::Info >inline
mEpochYearace_time::ZoneProcessormutableprotected
mTypeace_time::ZoneProcessorprotected
mYearace_time::ZoneProcessormutableprotected
operator=(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
printNameTo(Print &printer) const overrideace_time::BasicZoneProcessorTemplate< basic::Info >inlinevirtual
printShortNameTo(Print &printer) const overrideace_time::BasicZoneProcessorTemplate< basic::Info >inlinevirtual
printTargetNameTo(Print &printer) const overrideace_time::BasicZoneProcessorTemplate< basic::Info >inlinevirtual
setZoneInfoStore(const typename D::ZoneInfoStore *zoneInfoStore)ace_time::BasicZoneProcessorTemplate< basic::Info >inline
setZoneKey(uintptr_t zoneKey) overrideace_time::BasicZoneProcessorTemplate< basic::Info >inlinevirtual
Transition typedeface_time::BasicZoneProcessorTemplate< basic::Info >
ZoneProcessor(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
ZoneProcessor(uint8_t type)ace_time::ZoneProcessorinlineprotected
- - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessor.html b/docs/html/classace__time_1_1BasicZoneProcessor.html deleted file mode 100644 index 4b8a38e5f..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessor.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - -AceTime: ace_time::BasicZoneProcessor Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::BasicZoneProcessor Class Reference
-
-
- -

A specific implementation of BasicZoneProcessorTemplate that uses ZoneXxxBrokers which read from zonedb files in PROGMEM flash memory. - More...

- -

#include <BasicZoneProcessor.h>

-
-Inheritance diagram for ace_time::BasicZoneProcessor:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for ace_time::BasicZoneProcessor:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

BasicZoneProcessor (const basic::Info::ZoneInfo *zoneInfo=nullptr)
 
- Public Member Functions inherited from ace_time::BasicZoneProcessorTemplate< basic::Info >
-bool isLink () const override
 Return true if timezone is a Link entry pointing to a Zone entry.
 
-uint32_t getZoneId () const override
 Return the unique stable zoneId.
 
FindResult findByLocalDateTime (const LocalDateTime &ldt) const override
 
-FindResult findByEpochSeconds (acetime_t epochSeconds) const override
 Return the search results at given epochSeconds.
 
void printNameTo (Print &printer) const override
 Print a human-readable identifier (e.g. More...
 
void printShortNameTo (Print &printer) const override
 Print a short human-readable identifier (e.g. More...
 
void printTargetNameTo (Print &printer) const override
 Print the full identifier (e.g. More...
 
void setZoneKey (uintptr_t zoneKey) override
 Set the opaque zoneKey of this object to a new value, reseting any internally cached information. More...
 
bool equalsZoneKey (uintptr_t zoneKey) const override
 Return true if ZoneProcessor is associated with the given opaque zoneKey. More...
 
-void log () const
 Used only for debugging.
 
void setZoneInfoStore (const typename D::ZoneInfoStore *zoneInfoStore)
 Set the zone info store at runtime. More...
 
- Public Member Functions inherited from ace_time::ZoneProcessor
-uint8_t getType () const
 Return the kTypeXxx of the current instance.
 
- - - - -

-Static Public Attributes

-static const uint8_t kTypeBasic = 3
 Unique TimeZone type identifier for BasicZoneProcessor.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Types inherited from ace_time::BasicZoneProcessorTemplate< basic::Info >
-typedef basic::TransitionTemplate< basic::InfoTransition
 Exposed only for testing purposes.
 
- Protected Member Functions inherited from ace_time::BasicZoneProcessorTemplate< basic::Info >
 BasicZoneProcessorTemplate (uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)
 Constructor. More...
 
- Protected Member Functions inherited from ace_time::ZoneProcessor
ZoneProcessor (const ZoneProcessor &)=delete
 
-ZoneProcessoroperator= (const ZoneProcessor &)=delete
 
ZoneProcessor (uint8_t type)
 Constructor.
 
bool isFilled (int16_t year) const
 Check if the Transition cache is filled for the given year and current epochYear. More...
 
- Protected Attributes inherited from ace_time::ZoneProcessor
uint8_t const mType
 User-visible indicator of the subclass of ZoneProcessor, which implments a specific time-zone algorithm. More...
 
int16_t mYear = LocalDate::kInvalidYear
 Year that was used to calculate the transitions in the current cache. More...
 
int16_t mEpochYear = LocalDate::kInvalidYear
 Epoch year that was used to calculate the transitions in the current cache. More...
 
-

Detailed Description

-

A specific implementation of BasicZoneProcessorTemplate that uses ZoneXxxBrokers which read from zonedb files in PROGMEM flash memory.

- -

Definition at line 932 of file BasicZoneProcessor.h.

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessorCache-members.html b/docs/html/classace__time_1_1BasicZoneProcessorCache-members.html deleted file mode 100644 index f15a5c1c9..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessorCache-members.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::BasicZoneProcessorCache< SIZE > Member List
-
-
- -

This is the complete list of members for ace_time::BasicZoneProcessorCache< SIZE >, including all inherited members.

- - - - - - -
BasicZoneProcessorCache() (defined in ace_time::BasicZoneProcessorCache< SIZE >)ace_time::BasicZoneProcessorCache< SIZE >inline
getZoneProcessor(uintptr_t zoneKey)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
getZoneProcessorAtIndex(uint8_t i)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
size() constace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
ZoneProcessorCacheBaseTemplate(ZP *zoneProcessors, uint8_t size) (defined in ace_time::ZoneProcessorCacheBaseTemplate< ZP >)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
- - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessorCache.html b/docs/html/classace__time_1_1BasicZoneProcessorCache.html deleted file mode 100644 index 458c040ed..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessorCache.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -AceTime: ace_time::BasicZoneProcessorCache< SIZE > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::BasicZoneProcessorCache< SIZE > Class Template Reference
-
-
- -

An implementation of a BasicZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself. - More...

- -

#include <ZoneProcessorCache.h>

-
-Inheritance diagram for ace_time::BasicZoneProcessorCache< SIZE >:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for ace_time::BasicZoneProcessorCache< SIZE >:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Member Functions inherited from ace_time::ZoneProcessorCacheBaseTemplate< ZP >
ZoneProcessorCacheBaseTemplate (ZP *zoneProcessors, uint8_t size)
 
-uint8_t size () const
 Return the size of the cache.
 
-ZP * getZoneProcessorAtIndex (uint8_t i)
 Get the ZoneProcessor at index i.
 
ZP * getZoneProcessor (uintptr_t zoneKey)
 Get ZoneProcessor from either a ZoneKey, basic::Info::ZoneInfo, an extended::Info::ZoneInfo, or complete::Info::ZoneInfo. More...
 
-

Detailed Description

-

template<uint8_t SIZE>
-class ace_time::BasicZoneProcessorCache< SIZE >

- -

An implementation of a BasicZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself.

-

This is expected to be created as a global object and passed into the BasicZoneManager.

-
Template Parameters
- - -
SIZEnumber of zone processors, should be approximate the number zones concurrently used in the app. It is expected that this will be small. It can be 1 if the app never changes the TimeZone. It should be 2 if the user is able to select different timezones from a menu.
-
-
- -

Definition at line 122 of file ZoneProcessorCache.h.

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessorCache__coll__graph.map b/docs/html/classace__time_1_1BasicZoneProcessorCache__coll__graph.map deleted file mode 100644 index ad0f3f5b3..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessorCache__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessorCache__coll__graph.md5 b/docs/html/classace__time_1_1BasicZoneProcessorCache__coll__graph.md5 deleted file mode 100644 index 5fec96817..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessorCache__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e220271b0793f2a9bd79fe9e4920af86 \ No newline at end of file diff --git a/docs/html/classace__time_1_1BasicZoneProcessorCache__coll__graph.png b/docs/html/classace__time_1_1BasicZoneProcessorCache__coll__graph.png deleted file mode 100644 index 7d4c061547e39f9adc8d6c8cabefbb4a4a567dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5928 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 diff --git a/docs/html/classace__time_1_1BasicZoneProcessorCache__inherit__graph.map b/docs/html/classace__time_1_1BasicZoneProcessorCache__inherit__graph.map deleted file mode 100644 index ad0f3f5b3..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessorCache__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessorCache__inherit__graph.md5 b/docs/html/classace__time_1_1BasicZoneProcessorCache__inherit__graph.md5 deleted file mode 100644 index 5fec96817..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessorCache__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e220271b0793f2a9bd79fe9e4920af86 \ No newline at end of file diff --git a/docs/html/classace__time_1_1BasicZoneProcessorCache__inherit__graph.png b/docs/html/classace__time_1_1BasicZoneProcessorCache__inherit__graph.png deleted file mode 100644 index 7d4c061547e39f9adc8d6c8cabefbb4a4a567dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5928 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 diff --git a/docs/html/classace__time_1_1BasicZoneProcessorTemplate-members.html b/docs/html/classace__time_1_1BasicZoneProcessorTemplate-members.html deleted file mode 100644 index df33b745c..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessorTemplate-members.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::BasicZoneProcessorTemplate< D > Member List
-
-
- -

This is the complete list of members for ace_time::BasicZoneProcessorTemplate< D >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
::BasicZoneProcessorTest_calcRuleOffsetMinutes (defined in ace_time::BasicZoneProcessorTemplate< D >)ace_time::BasicZoneProcessorTemplate< D >friend
::BasicZoneProcessorTest_compareRulesBeforeYear (defined in ace_time::BasicZoneProcessorTemplate< D >)ace_time::BasicZoneProcessorTemplate< D >friend
::BasicZoneProcessorTest_findLatestPriorRule (defined in ace_time::BasicZoneProcessorTemplate< D >)ace_time::BasicZoneProcessorTemplate< D >friend
::BasicZoneProcessorTest_findZoneEra (defined in ace_time::BasicZoneProcessorTemplate< D >)ace_time::BasicZoneProcessorTemplate< D >friend
::BasicZoneProcessorTest_init_primitives (defined in ace_time::BasicZoneProcessorTemplate< D >)ace_time::BasicZoneProcessorTemplate< D >friend
::BasicZoneProcessorTest_initForLocalDate (defined in ace_time::BasicZoneProcessorTemplate< D >)ace_time::BasicZoneProcessorTemplate< D >friend
::BasicZoneProcessorTest_priorYearOfRule (defined in ace_time::BasicZoneProcessorTemplate< D >)ace_time::BasicZoneProcessorTemplate< D >friend
::BasicZoneProcessorTest_setZoneKey (defined in ace_time::BasicZoneProcessorTemplate< D >)ace_time::BasicZoneProcessorTemplate< D >friend
BasicZoneProcessorTemplate(uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)ace_time::BasicZoneProcessorTemplate< D >inlineexplicitprotected
equalsZoneKey(uintptr_t zoneKey) const overrideace_time::BasicZoneProcessorTemplate< D >inlinevirtual
findByEpochSeconds(acetime_t epochSeconds) const overrideace_time::BasicZoneProcessorTemplate< D >inlinevirtual
findByLocalDateTime(const LocalDateTime &ldt) const overrideace_time::BasicZoneProcessorTemplate< D >inlinevirtual
getType() constace_time::ZoneProcessorinline
getZoneId() const overrideace_time::BasicZoneProcessorTemplate< D >inlinevirtual
isFilled(int16_t year) constace_time::ZoneProcessorinlineprotected
isLink() const overrideace_time::BasicZoneProcessorTemplate< D >inlinevirtual
log() constace_time::BasicZoneProcessorTemplate< D >inline
mEpochYearace_time::ZoneProcessormutableprotected
mTypeace_time::ZoneProcessorprotected
mYearace_time::ZoneProcessormutableprotected
operator=(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
printNameTo(Print &printer) const overrideace_time::BasicZoneProcessorTemplate< D >inlinevirtual
printShortNameTo(Print &printer) const overrideace_time::BasicZoneProcessorTemplate< D >inlinevirtual
printTargetNameTo(Print &printer) const overrideace_time::BasicZoneProcessorTemplate< D >inlinevirtual
setZoneInfoStore(const typename D::ZoneInfoStore *zoneInfoStore)ace_time::BasicZoneProcessorTemplate< D >inline
setZoneKey(uintptr_t zoneKey) overrideace_time::BasicZoneProcessorTemplate< D >inlinevirtual
Transition typedeface_time::BasicZoneProcessorTemplate< D >
ZoneProcessor(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
ZoneProcessor(uint8_t type)ace_time::ZoneProcessorinlineprotected
- - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessorTemplate.html b/docs/html/classace__time_1_1BasicZoneProcessorTemplate.html deleted file mode 100644 index b2a852389..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessorTemplate.html +++ /dev/null @@ -1,592 +0,0 @@ - - - - - - - -AceTime: ace_time::BasicZoneProcessorTemplate< D > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::BasicZoneProcessorTemplate< D > Class Template Reference
-
-
- -

An implementation of ZoneProcessor that supports a subset of the zones containing in the TZ Database. - More...

- -

#include <BasicZoneProcessor.h>

-
-Inheritance diagram for ace_time::BasicZoneProcessorTemplate< D >:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for ace_time::BasicZoneProcessorTemplate< D >:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - -

-Public Types

-typedef basic::TransitionTemplate< D > Transition
 Exposed only for testing purposes.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-bool isLink () const override
 Return true if timezone is a Link entry pointing to a Zone entry.
 
-uint32_t getZoneId () const override
 Return the unique stable zoneId.
 
FindResult findByLocalDateTime (const LocalDateTime &ldt) const override
 Return the search results at given LocalDateTime. More...
 
-FindResult findByEpochSeconds (acetime_t epochSeconds) const override
 Return the search results at given epochSeconds.
 
void printNameTo (Print &printer) const override
 Print a human-readable identifier (e.g. More...
 
void printShortNameTo (Print &printer) const override
 Print a short human-readable identifier (e.g. More...
 
void printTargetNameTo (Print &printer) const override
 Print the full identifier (e.g. More...
 
void setZoneKey (uintptr_t zoneKey) override
 Set the opaque zoneKey of this object to a new value, reseting any internally cached information. More...
 
bool equalsZoneKey (uintptr_t zoneKey) const override
 Return true if ZoneProcessor is associated with the given opaque zoneKey. More...
 
-void log () const
 Used only for debugging.
 
void setZoneInfoStore (const typename D::ZoneInfoStore *zoneInfoStore)
 Set the zone info store at runtime. More...
 
- Public Member Functions inherited from ace_time::ZoneProcessor
-uint8_t getType () const
 Return the kTypeXxx of the current instance.
 
- - - - - - - - - - - - - - - -

-Protected Member Functions

 BasicZoneProcessorTemplate (uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)
 Constructor. More...
 
- Protected Member Functions inherited from ace_time::ZoneProcessor
ZoneProcessor (const ZoneProcessor &)=delete
 
-ZoneProcessoroperator= (const ZoneProcessor &)=delete
 
ZoneProcessor (uint8_t type)
 Constructor.
 
bool isFilled (int16_t year) const
 Check if the Transition cache is filled for the given year and current epochYear. More...
 
- - - - - - - - - - - - - - - - - -

-Friends

-class ::BasicZoneProcessorTest_priorYearOfRule
 
-class ::BasicZoneProcessorTest_compareRulesBeforeYear
 
-class ::BasicZoneProcessorTest_findLatestPriorRule
 
-class ::BasicZoneProcessorTest_findZoneEra
 
-class ::BasicZoneProcessorTest_init_primitives
 
-class ::BasicZoneProcessorTest_initForLocalDate
 
-class ::BasicZoneProcessorTest_setZoneKey
 
-class ::BasicZoneProcessorTest_calcRuleOffsetMinutes
 
- - - - - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from ace_time::ZoneProcessor
uint8_t const mType
 User-visible indicator of the subclass of ZoneProcessor, which implments a specific time-zone algorithm. More...
 
int16_t mYear = LocalDate::kInvalidYear
 Year that was used to calculate the transitions in the current cache. More...
 
int16_t mEpochYear = LocalDate::kInvalidYear
 Epoch year that was used to calculate the transitions in the current cache. More...
 
-

Detailed Description

-

template<typename D>
-class ace_time::BasicZoneProcessorTemplate< D >

- -

An implementation of ZoneProcessor that supports a subset of the zones containing in the TZ Database.

-

The supported list of zones, as well as the list of unsupported zones, are is listed in the zonedb/zone_info.h header file. The constructor expects a pointer to one of the ZoneInfo structures declared in the zone_infos.h file.

-

The internal ZoneRule and ZoneEra records that match the year of the given epochSeconds are cached for performance. The expectation is that repeated calls to the various methods will have epochSeconds which do not vary too greatly and will occur in the same year.

-

The Rule records are transition points which look like this:

* Rule  NAME  FROM    TO  TYPE    IN     ON        AT      SAVE    LETTER/S
-* 

Each record is represented by basic::Info::ZoneRule and the entire collection is represented by basic::Info::ZonePolicy.

-

The Zone records define the region which follows a specific set of Rules for certain time periods (given by UNTIL below):

* Zone NAME              GMTOFF    RULES FORMAT  [UNTIL]
-* 

Each record is represented by basic::Info::ZoneEra and the entire collection is represented by basic::Info::ZoneInfo.

-

This class assumes that the various components of ZoneInfo, ZoneEra, and ZonePolicy, ZoneRule have a number of limitations and constraints which simplify the implementation of this class. The tzcompiler.py script will remove zones which do not meet these constraints when generating the structs defined by zonedb/zone_infos.h. The constraints are at least the following (see AceTimeTools/transformer.py for the authoratative algorithm):

-
    -
  • ZoneInfo UNTIL field must contain only the full year; cannot contain month, day, or time components
  • -
  • ZoneInfo untilTimeSuffix can contain only 'w' (not 's' or 'u')
  • -
  • ZonePolicy can contain only 1 ZoneRule in a single month
  • -
  • ZoneRule AT time cannot occur on Jan 1
  • -
  • ZoneRule atTimeSuffix can be any of ('w', 's', and 'u')
  • -
  • ZoneRule LETTER must contain only a single letter (not "WAT" or "CST")
  • -
-

Even with these limitations, zonedb/zone_info.h shows that 270 out of a total of 387 zones are supported by BasicZoneProcessor (as of v0.8).

-

Not thread-safe.

-
Template Parameters
- - -
Bbroker type
-
-
- -

Definition at line 191 of file BasicZoneProcessor.h.

-

Constructor & Destructor Documentation

- -

◆ BasicZoneProcessorTemplate()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
ace_time::BasicZoneProcessorTemplate< D >::BasicZoneProcessorTemplate (uint8_t type,
const typename D::ZoneInfoStore * zoneInfoStore,
uintptr_t zoneKey 
)
-
-inlineexplicitprotected
-
- -

Constructor.

-

When first initialized inside a cache, the zoneInfoStore may be set to nullptr, and the zoneKey should be ignored.

-
Parameters
- - - - -
typeindentifier for the specific subclass of ZoneProcessor (e.g. Basic versus Extended) mostly used for debugging
zoneInfoStorepointer to a ZoneInfoStore that creates a ZoneInfoBroker
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Definition at line 363 of file BasicZoneProcessor.h.

- -
-
-

Member Function Documentation

- -

◆ equalsZoneKey()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
bool ace_time::BasicZoneProcessorTemplate< D >::equalsZoneKey (uintptr_t zoneKey) const
-
-inlineoverridevirtual
-
- -

Return true if ZoneProcessor is associated with the given opaque zoneKey.

-

This method should be considered to be private.

-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 322 of file BasicZoneProcessor.h.

- -
-
- -

◆ findByLocalDateTime()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
FindResult ace_time::BasicZoneProcessorTemplate< D >::findByLocalDateTime (const LocalDateTimeldt) const
-
-inlineoverridevirtual
-
- -

Return the search results at given LocalDateTime.

-

The Transitions calculated by BasicZoneProcessor contain only the epochSeconds when each transition occurs. They do not contain the local date/time components of the transition. This design reduces the amount of memory required by BasicZoneProcessor, but this means that the information needed to implement this method correctly does not exist.

-

The implementation is somewhat of a hack:

-

0) Use the localDateTime to extract the offset, assuming that the localDatetime is UTC. This will get us within 12-14h of the correct UTC offset. 1) Use (localDateTime, offset0) to determine offset1. 2) Use (localdateTime, offset1) to determine offset2. 3) Finally, check if offset1 and offset2 are equal. If they are we reached equilibrium so we can just return (localDateTime, offset1). If they are not equal, then we have a cycle because the localDateTime occurred in a DST gap (STD->DST transition) or overlap (DST->STD transition). We arbitrarily pick the offset of the later epochSeconds since that seems to match closely to what most people would expect to happen in a gap or overlap (e.g. In the gap of 2am->3am, a 2:30am would get shifted to 3:30am.)

-

This algorithm will detect a FindResult::kTypeGap, but it will not be able to distinguish between a kTypeExact and kTypeOverlap.

- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 232 of file BasicZoneProcessor.h.

- -
-
- -

◆ printNameTo()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::BasicZoneProcessorTemplate< D >::printNameTo (Print & printer) const
-
-inlineoverridevirtual
-
- -

Print a human-readable identifier (e.g.

-

"America/Los_Angeles").

-
Parameters
- - -
printeran instance of the Print class, usually Serial
-
-
- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 299 of file BasicZoneProcessor.h.

- -
-
- -

◆ printShortNameTo()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::BasicZoneProcessorTemplate< D >::printShortNameTo (Print & printer) const
-
-inlineoverridevirtual
-
- -

Print a short human-readable identifier (e.g.

-

"Los Angeles"). Any underscore in the short name is replaced with a space.

-
Parameters
- - -
printeran instance of the Print class, usually Serial
-
-
- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 303 of file BasicZoneProcessor.h.

- -
-
- -

◆ printTargetNameTo()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::BasicZoneProcessorTemplate< D >::printTargetNameTo (Print & printer) const
-
-inlineoverridevirtual
-
- -

Print the full identifier (e.g.

-

"America/Los_Angeles") of the target zone if the current zone is a Link entry. Otherwise, print nothing.

-
Parameters
- - -
printeran instance of the Print class, usually Serial
-
-
- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 307 of file BasicZoneProcessor.h.

- -
-
- -

◆ setZoneInfoStore()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::BasicZoneProcessorTemplate< D >::setZoneInfoStore (const typename D::ZoneInfoStore * zoneInfoStore)
-
-inline
-
- -

Set the zone info store at runtime.

-

This is an advanced usage where the custom subclass of ExtendedZoneProcessorTemplate does not know its zone info store at compile time, so it must be set at runtime through this method.

- -

Definition at line 346 of file BasicZoneProcessor.h.

- -
-
- -

◆ setZoneKey()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::BasicZoneProcessorTemplate< D >::setZoneKey (uintptr_t zoneKey)
-
-inlineoverridevirtual
-
- -

Set the opaque zoneKey of this object to a new value, reseting any internally cached information.

-

If the new zoneKey is the same as the old zoneKey, the cache remains valid.

-

Normally a ZoneProcessor object is associated with a single TimeZone. However, the ZoneProcessorCache will sometimes "take over" a ZoneProcessor from another TimeZone using this method. The other TimeZone will take back control of the ZoneProcessor if needed. To avoid bouncing the ownership of this object repeatedly, the application should configure the ZoneProcessorCache with enough ZoneProcessors to handle the usage pattern of the given application.

-

This method should be considered to be private, to be used only by the TimeZone and ZoneProcessorCache classes. I had to make it public because it got too ugly to maintain the friend list in C++.

-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 313 of file BasicZoneProcessor.h.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessorTemplate__coll__graph.map b/docs/html/classace__time_1_1BasicZoneProcessorTemplate__coll__graph.map deleted file mode 100644 index a14164044..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessorTemplate__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessorTemplate__coll__graph.md5 b/docs/html/classace__time_1_1BasicZoneProcessorTemplate__coll__graph.md5 deleted file mode 100644 index 83bbff8bd..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessorTemplate__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -2db61a36b4662c7ba32b0b4f0d3bf845 \ No newline at end of file diff --git a/docs/html/classace__time_1_1BasicZoneProcessorTemplate__coll__graph.png b/docs/html/classace__time_1_1BasicZoneProcessorTemplate__coll__graph.png deleted file mode 100644 index 448bf87ba09bf8d012a860be9bd4c10454c3045c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5607 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 g&J!vn&Bbd7pYwU5xgMV*nA}1hscNfKD_MpA7x{ - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessorTemplate__inherit__graph.md5 b/docs/html/classace__time_1_1BasicZoneProcessorTemplate__inherit__graph.md5 deleted file mode 100644 index 83bbff8bd..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessorTemplate__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -2db61a36b4662c7ba32b0b4f0d3bf845 \ No newline at end of file diff --git a/docs/html/classace__time_1_1BasicZoneProcessorTemplate__inherit__graph.png b/docs/html/classace__time_1_1BasicZoneProcessorTemplate__inherit__graph.png deleted file mode 100644 index 448bf87ba09bf8d012a860be9bd4c10454c3045c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5607 zcmchbbyQUCx5tO>4#^=@6p`-kP-zel7*eE57#b<*eh~>Jq+p?m*GMbXgj{r0TCF0K7J0mhvon!NNeivp!2HFYA> ztpT+?Y^vBex33)q<@C47`RRoowZWb_-YpvO zQ1%DxxDgLu5(yn#U17wLI0JYC0%US|73D9R155H=m7sidbWk1%g7``??6I0K2#1O= z@qG?#HLSZTZTItE6J|EmqWv~Ti+ci`m2lO$(im5QC2e8dD-z^sTw39km6d|%TuQ~V zva+_7{tRmbn{on^Zn-(>=YXt zi)Blio}P|5I_eI`BhfW57_ zK|#tYMN36R<>2Im4G|F&Tz+`ubCUr`=<;P2e?eOc~4)j-G1`em5~WSw|sv8hW`Zj`J-y`DrA?IUxr)%@UC#*{nNupw6`(tnUEr-P1W*t(p4KG*tL#%)N`0<+Kz5n^~Be-;P=M)y*0C%+}R|F^s7Z;Z{PZk>+8(lp; zEJ&l*8u`G$z^|2+i50k=ogD;n>(;HS@TjaTMyPDSYiZvd21M&ZXY|1}RK`yLfk0Tf zy3SdfK6w(a==^PPP}R_oc64;~*V59MwS~XGfmrYZPSM^c0{etyO$qz5&rR`0E@H_X;@g;$J*L<5R0>2?46yRl>U|b zyu91{vaaK0dX%v$W##2z5fRD_lT{aT_8Q14A_y@FN$vB$sqfsqyO1c3UKa{k?n`xW zckcxYJI$#qDtet~U&dr>WAo8|7@Bw>nKaf?a!)7saMSC(e2CoYa2`dZQrO|4w`QIk z>(i%CKYsc&DxotkSMC;_LbymcJvxdVse~067-(W@y12j6KZOhwm!BUTBm??lf(#IS zb#-PxJ~_Gc{e!Xue3N!|cJ?DEErfX!b$55SgPU8=M5S@9$AZ%5`ua`thPpaox7o(9 z<71x)*JL?S#}Fak8z?$YA-c8QPWo5HtZ|>|Q?wkNstomI;+0E%7>pJq^~KcJJlY88`$TO`tUYIqx8EtgD-}zaI@NF*f?~ zAwS=IkVhj#32S>zDi8f2>)ksJ9v;j8KGjQ09A(>E4VOSZb#lL141SaOht>2VRDS5O zZ3bU@L4Cd65)c(;&y{c6a)=lPCcMvVf6kqcN*f-pu5t!l!Y$a0R7exCr*&lgIeY(3 zo1Dl+KlswXlahYq{`m{zj!xWPt*Thtr9(M9D$1RleRg+Pjm5CWceyL8uSGya1J9>;|0 zDG*T!{413I7aRT`zQkdhqfrbb8G4DacHQnoR0V5V5Xc4`r#vpsS?U}3pcoYNwd9!! zX7yb&WK@fYh{&nbnY0XrLe)BPy!I~O&Oc=RPt*ZxCTk3>hPBZD{Q0wlud^&S()Esx z!rp5`_4 zmh-Lypgzsb-}jv5g)G>i>y*KAO56?V4-Lq9uSMLPC0XS!~&h*VC&?Yq} zrw4Ku7-bgO09xfJQgFff?Fd|Nz&DKm(Ik>03JY(q4&}r*pabINO-01TmoN*RjedKa zOw7y+ySvGKeHx@t83tZnUJWg+?z4lnk@4}@KxP&$Pv)Zw3k!e1xwyCr8XFm;eYV$TU#51Y<7CAqoeNQBbEe}tvGIaAS^7Lz$#4-m`?54vn;f1|G>a&O)g~^jP)xL zNkvB&dCS5N3)1XTSbtSvlfc2vO$7PqfAHcJ?D}#yWN%IWn$h3i9}+r$b=+|C`mCIt z`%k_P4^zlr9@50c#R<4f33PRJSuJ+O1{^&By_=4clQShfJrba*&9^t)gcKCL0BD=Q>l_r9*FY254AxHs(* zbUH|=>rDNJ4bwzh{bQBXC8&*@pAL6B^yMC%YFckR&$w zq@~{EgJJu@?8tJ1(#;8wOv0J(-gSQaM*Q~eTL$45q=4=VeP%u%8Bc&Ocr11iZOt@L z49lLd$RjH%i1G07PWSuy&$bie;yN}bD)r3F`gP1cJtwjV*tiR6+kJH+%_0}X0Pxo; z0sdRq5PH^S;~DL0+UUVy@#@SD>GW6siY&Uc%ciym?ex2)HCTU+TvmEf%$1hx+%X`^8PWCEwv;;4z@r@ zO4`*PK~U>B#+4(B1Cf`P2WBx$FbX(HPAMs-tgNgc3B%tL()-eJd}=$Hy_!#(?G_R;QQ+sRo_-SKQZ~qbf&+CdOJXo4y+Vc~g&e$}V-!BlS$T zcv^FU`SHU@pa%dl83_r=1yGGJO|GRiaI>2l1=P|t*W!DldIqK13&5ZO<;@hbBL-X0 z)6)wB*V59{+ko8j+h2|yf>SVykv6!`N15~OZolv@Gd9-R*w`>>4U)Xh9s)iwIe-4u zAKnn$@rgR1kQ}0-H$@IeHd^U}0+0e=dZq(Jj~ZHAq0HiLU56WER7^}2^>X(1_6cnA z(7@v@MORl|CnqP&Mrq#Smr0AIWMbsDvF}Djx%fZZx?#j4!1Zt!r^cb@HRlg z*4EY^yyn31bU95YB`b@_-Q7Ln5`X$#_M11Q-YmWCXf%|DOS7$Ix0OV}cbH2v695yn z%hX3K)YUnUISfX{#zs+Vg7AT5pZ^&YpU($%1pxfCSN>{b1r8zQo7E!$Sa=wW(e@s?if%X5D-DO6`wDS`KoQ zmVc_2HiF@ZRdRlCaa9#rdwV<6TD%J9^6Kibwd!1{n_;qGd6IVR=g+SrB5-c%`Qfuq zxcsfBHhJS1gx@NTlcVF$1w$!0IjESJm`Q_M4pF5LSr0?CB`WFtdzJ(y(Z@@okY6F< z(9aDGg<#i!8DbI=RDyzJO0?dU9E$=JTEv>=;?+KW(arEr0`SS8|esePu7*3onv0cXi z3^+RV`I4W{{vPy#m6a6_FR$N1^K)~osi~=cCv(2385z+xMJpr2VqsyCDH|wuad~NN zYdcm5r!e$R)gW2vi-G_C0oKE4WMpJg_k!#J507-hwqep+Jt&>2sVOBRBN3PtH8wZz z7up%}ntX(SYy&QvuA`$vAn4Qs*gFen*&OxO!;+mhZ)k6_2s{WN-i<3d-CGKT^Ox`E zj;kj_H)fN-Foh22q*6eDl#8ott@9+GM)4@LCNRI?b{YM7lFP=B17q<}DI6$}ALdus zwAAOspbf`4Fhc?gs-&$=uB5C?MM)X@tnP*N)>N%5dHJVTpl?_8gXs^L$SeWBCIMy; zGP1H%%*^qjp`p+!U-rUKC+qc8-ikLI`oVH`-`?=`ZwT)fACy6ZH=)2Yz2$?&6+g)+ zKp;rL07XMn^L0~`4UB)jk3?p5D!;;{p6p!J46x~7FQBv(%*|PV zh8(s&DncSzLEJPRJyHbwD<~)sfri!9)r|oC@9I)1DlWF}j-#X1W?d(&h!9kBg0x+n z9i(Pwf3xfcqobB-5|#4=dVTSV(tB_(76MC4%hU7oO@yVSX>UgdHaR&tfWn8zyYn?i zzPc+8GzIcZgErU;3k!r~WU9KlDdkT%uoVlR5pG1^%qbay2}Hxj#|;fK6wZmH!vA-| z_;0IFviE>*u2C~)1KyNYR#1R_i{C=zsqAZ+x{Hg8W>S%LYF(umkMF+!OeX*5IxmP& g&J!vn&Bbd7pYwU5xgMV*nA}1hscNfKD_MpA7x{ - - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessor__coll__graph.md5 b/docs/html/classace__time_1_1BasicZoneProcessor__coll__graph.md5 deleted file mode 100644 index e48d77f50..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessor__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4e37c21f659574947be6fe6848d3b2e9 \ No newline at end of file diff --git a/docs/html/classace__time_1_1BasicZoneProcessor__coll__graph.png b/docs/html/classace__time_1_1BasicZoneProcessor__coll__graph.png deleted file mode 100644 index 54321a79752776bcc336517848a4549ddbc40e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7461 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 H=Ar)q+$nqG diff --git a/docs/html/classace__time_1_1BasicZoneProcessor__inherit__graph.map b/docs/html/classace__time_1_1BasicZoneProcessor__inherit__graph.map deleted file mode 100644 index ec9ed6bed..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessor__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/html/classace__time_1_1BasicZoneProcessor__inherit__graph.md5 b/docs/html/classace__time_1_1BasicZoneProcessor__inherit__graph.md5 deleted file mode 100644 index e48d77f50..000000000 --- a/docs/html/classace__time_1_1BasicZoneProcessor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4e37c21f659574947be6fe6848d3b2e9 \ No newline at end of file diff --git a/docs/html/classace__time_1_1BasicZoneProcessor__inherit__graph.png b/docs/html/classace__time_1_1BasicZoneProcessor__inherit__graph.png deleted file mode 100644 index 54321a79752776bcc336517848a4549ddbc40e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7461 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 H=Ar)q+$nqG diff --git a/docs/html/classace__time_1_1CompleteZoneProcessor-members.html b/docs/html/classace__time_1_1CompleteZoneProcessor-members.html deleted file mode 100644 index 360df7dc6..000000000 --- a/docs/html/classace__time_1_1CompleteZoneProcessor-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::CompleteZoneProcessor Member List
-
-
- -

This is the complete list of members for ace_time::CompleteZoneProcessor, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CompleteZoneProcessor(const complete::Info::ZoneInfo *zoneInfo=nullptr) (defined in ace_time::CompleteZoneProcessor)ace_time::CompleteZoneProcessorinlineexplicit
equalsZoneKey(uintptr_t zoneKey) const overrideace_time::ExtendedZoneProcessorTemplate< complete::Info >inlinevirtual
ExtendedZoneProcessorTemplate(uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)ace_time::ExtendedZoneProcessorTemplate< complete::Info >inlineexplicitprotected
findByEpochSeconds(acetime_t epochSeconds) const overrideace_time::ExtendedZoneProcessorTemplate< complete::Info >inlinevirtual
findByLocalDateTime(const LocalDateTime &ldt) const overrideace_time::ExtendedZoneProcessorTemplate< complete::Info >inlinevirtual
getTransitionAllocSize() constace_time::ExtendedZoneProcessorTemplate< complete::Info >inline
getType() constace_time::ZoneProcessorinline
getZoneId() const overrideace_time::ExtendedZoneProcessorTemplate< complete::Info >inlinevirtual
initForEpochSeconds(acetime_t epochSeconds) constace_time::ExtendedZoneProcessorTemplate< complete::Info >inline
initForYear(int16_t year) constace_time::ExtendedZoneProcessorTemplate< complete::Info >inline
isFilled(int16_t year) constace_time::ZoneProcessorinlineprotected
isLink() const overrideace_time::ExtendedZoneProcessorTemplate< complete::Info >inlinevirtual
kMaxTransitionsace_time::ExtendedZoneProcessorTemplate< complete::Info >static
kTypeCompleteace_time::CompleteZoneProcessorstatic
log() constace_time::ExtendedZoneProcessorTemplate< complete::Info >inline
MatchingEra typedeface_time::ExtendedZoneProcessorTemplate< complete::Info >
mEpochYearace_time::ZoneProcessormutableprotected
mTypeace_time::ZoneProcessorprotected
mYearace_time::ZoneProcessormutableprotected
operator=(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
printNameTo(Print &printer) const overrideace_time::ExtendedZoneProcessorTemplate< complete::Info >inlinevirtual
printShortNameTo(Print &printer) const overrideace_time::ExtendedZoneProcessorTemplate< complete::Info >inlinevirtual
printTargetNameTo(Print &printer) const overrideace_time::ExtendedZoneProcessorTemplate< complete::Info >inlinevirtual
resetTransitionAllocSize()ace_time::ExtendedZoneProcessorTemplate< complete::Info >inline
setZoneInfoStore(const typename D::ZoneInfoStore *zoneInfoStore)ace_time::ExtendedZoneProcessorTemplate< complete::Info >inline
setZoneKey(uintptr_t zoneKey) overrideace_time::ExtendedZoneProcessorTemplate< complete::Info >inlinevirtual
Transition typedeface_time::ExtendedZoneProcessorTemplate< complete::Info >
TransitionForDateTime typedeface_time::ExtendedZoneProcessorTemplate< complete::Info >
TransitionForSeconds typedeface_time::ExtendedZoneProcessorTemplate< complete::Info >
TransitionStorage typedeface_time::ExtendedZoneProcessorTemplate< complete::Info >
ZoneProcessor(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
ZoneProcessor(uint8_t type)ace_time::ZoneProcessorinlineprotected
- - - - diff --git a/docs/html/classace__time_1_1CompleteZoneProcessor.html b/docs/html/classace__time_1_1CompleteZoneProcessor.html deleted file mode 100644 index 37e22933d..000000000 --- a/docs/html/classace__time_1_1CompleteZoneProcessor.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - -AceTime: ace_time::CompleteZoneProcessor Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::CompleteZoneProcessor Class Reference
-
-
- -

A specific implementation of ExtendedZoneProcessorTemplate that uses the complete::ZoneXxxBrokers classes which read from 'zonedbc' files in PROGMEM flash memory using the high-resolution zoneinfo data structures. - More...

- -

#include <CompleteZoneProcessor.h>

-
-Inheritance diagram for ace_time::CompleteZoneProcessor:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for ace_time::CompleteZoneProcessor:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

CompleteZoneProcessor (const complete::Info::ZoneInfo *zoneInfo=nullptr)
 
- Public Member Functions inherited from ace_time::ExtendedZoneProcessorTemplate< complete::Info >
-bool isLink () const override
 Return true if timezone is a Link entry pointing to a Zone entry.
 
-uint32_t getZoneId () const override
 Return the unique stable zoneId.
 
-FindResult findByLocalDateTime (const LocalDateTime &ldt) const override
 Return the search results at given LocalDateTime.
 
FindResult findByEpochSeconds (acetime_t epochSeconds) const override
 
void printNameTo (Print &printer) const override
 Print a human-readable identifier (e.g. More...
 
void printShortNameTo (Print &printer) const override
 Print a short human-readable identifier (e.g. More...
 
void printTargetNameTo (Print &printer) const override
 Print the full identifier (e.g. More...
 
-void log () const
 Used only for debugging.
 
void resetTransitionAllocSize ()
 Reset the TransitionStorage high water mark. More...
 
uint8_t getTransitionAllocSize () const
 Get the largest allocation size of TransitionStorage. More...
 
void setZoneKey (uintptr_t zoneKey) override
 Set the opaque zoneKey of this object to a new value, reseting any internally cached information. More...
 
bool equalsZoneKey (uintptr_t zoneKey) const override
 Return true if ZoneProcessor is associated with the given opaque zoneKey. More...
 
void setZoneInfoStore (const typename D::ZoneInfoStore *zoneInfoStore)
 Set the zone info store at runtime. More...
 
bool initForEpochSeconds (acetime_t epochSeconds) const
 Initialize using the epochSeconds. More...
 
bool initForYear (int16_t year) const
 Initialize the zone rules cache, keyed by the "current" year. More...
 
- Public Member Functions inherited from ace_time::ZoneProcessor
-uint8_t getType () const
 Return the kTypeXxx of the current instance.
 
- - - - - - - - -

-Static Public Attributes

-static const uint8_t kTypeComplete = 5
 Unique TimeZone type identifier for CompleteZoneProcessor.
 
- Static Public Attributes inherited from ace_time::ExtendedZoneProcessorTemplate< complete::Info >
static const uint8_t kMaxTransitions
 Max number of Transitions required for all Zones supported by this class. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Types inherited from ace_time::ExtendedZoneProcessorTemplate< complete::Info >
-typedef extended::TransitionTemplate< complete::InfoTransition
 Exposed only for testing purposes.
 
-typedef extended::TransitionForSecondsTemplate< complete::InfoTransitionForSeconds
 Exposed only for testing purposes.
 
-typedef extended::TransitionForDateTimeTemplate< complete::InfoTransitionForDateTime
 Exposed only for testing purposes.
 
-typedef extended::MatchingEraTemplate< complete::InfoMatchingEra
 Exposed only for testing purposes.
 
-typedef extended::TransitionStorageTemplate< kMaxTransitions, complete::InfoTransitionStorage
 Exposed only for testing purposes.
 
- Protected Member Functions inherited from ace_time::ExtendedZoneProcessorTemplate< complete::Info >
 ExtendedZoneProcessorTemplate (uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)
 Constructor. More...
 
- Protected Member Functions inherited from ace_time::ZoneProcessor
ZoneProcessor (const ZoneProcessor &)=delete
 
-ZoneProcessoroperator= (const ZoneProcessor &)=delete
 
ZoneProcessor (uint8_t type)
 Constructor.
 
bool isFilled (int16_t year) const
 Check if the Transition cache is filled for the given year and current epochYear. More...
 
- Protected Attributes inherited from ace_time::ZoneProcessor
uint8_t const mType
 User-visible indicator of the subclass of ZoneProcessor, which implments a specific time-zone algorithm. More...
 
int16_t mYear = LocalDate::kInvalidYear
 Year that was used to calculate the transitions in the current cache. More...
 
int16_t mEpochYear = LocalDate::kInvalidYear
 Epoch year that was used to calculate the transitions in the current cache. More...
 
-

Detailed Description

-

A specific implementation of ExtendedZoneProcessorTemplate that uses the complete::ZoneXxxBrokers classes which read from 'zonedbc' files in PROGMEM flash memory using the high-resolution zoneinfo data structures.

- -

Definition at line 19 of file CompleteZoneProcessor.h.

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1CompleteZoneProcessorCache-members.html b/docs/html/classace__time_1_1CompleteZoneProcessorCache-members.html deleted file mode 100644 index 43d5e3cdc..000000000 --- a/docs/html/classace__time_1_1CompleteZoneProcessorCache-members.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::CompleteZoneProcessorCache< SIZE > Member List
-
-
- -

This is the complete list of members for ace_time::CompleteZoneProcessorCache< SIZE >, including all inherited members.

- - - - - - -
CompleteZoneProcessorCache() (defined in ace_time::CompleteZoneProcessorCache< SIZE >)ace_time::CompleteZoneProcessorCache< SIZE >inline
getZoneProcessor(uintptr_t zoneKey)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
getZoneProcessorAtIndex(uint8_t i)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
size() constace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
ZoneProcessorCacheBaseTemplate(ZP *zoneProcessors, uint8_t size) (defined in ace_time::ZoneProcessorCacheBaseTemplate< ZP >)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
- - - - diff --git a/docs/html/classace__time_1_1CompleteZoneProcessorCache.html b/docs/html/classace__time_1_1CompleteZoneProcessorCache.html deleted file mode 100644 index 44342910d..000000000 --- a/docs/html/classace__time_1_1CompleteZoneProcessorCache.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -AceTime: ace_time::CompleteZoneProcessorCache< SIZE > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::CompleteZoneProcessorCache< SIZE > Class Template Reference
-
-
- -

An implementation of an CompleteZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself. - More...

- -

#include <ZoneProcessorCache.h>

-
-Inheritance diagram for ace_time::CompleteZoneProcessorCache< SIZE >:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for ace_time::CompleteZoneProcessorCache< SIZE >:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Member Functions inherited from ace_time::ZoneProcessorCacheBaseTemplate< ZP >
ZoneProcessorCacheBaseTemplate (ZP *zoneProcessors, uint8_t size)
 
-uint8_t size () const
 Return the size of the cache.
 
-ZP * getZoneProcessorAtIndex (uint8_t i)
 Get the ZoneProcessor at index i.
 
ZP * getZoneProcessor (uintptr_t zoneKey)
 Get ZoneProcessor from either a ZoneKey, basic::Info::ZoneInfo, an extended::Info::ZoneInfo, or complete::Info::ZoneInfo. More...
 
-

Detailed Description

-

template<uint8_t SIZE>
-class ace_time::CompleteZoneProcessorCache< SIZE >

- -

An implementation of an CompleteZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself.

-

This is expected to be created as a global object and passed into the CompleteZoneManager.

-
Template Parameters
- - -
SIZEnumber of zone processors, should be approximate the number zones concurrently used in the app. It is expected that this will be small. It can be 1 if the app never changes the TimeZone. It should be 2 if the user is able to select different timezones from a menu.
-
-
- -

Definition at line 175 of file ZoneProcessorCache.h.

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1CompleteZoneProcessorCache__coll__graph.map b/docs/html/classace__time_1_1CompleteZoneProcessorCache__coll__graph.map deleted file mode 100644 index 18a066544..000000000 --- a/docs/html/classace__time_1_1CompleteZoneProcessorCache__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/classace__time_1_1CompleteZoneProcessorCache__coll__graph.md5 b/docs/html/classace__time_1_1CompleteZoneProcessorCache__coll__graph.md5 deleted file mode 100644 index 6577b0e44..000000000 --- a/docs/html/classace__time_1_1CompleteZoneProcessorCache__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -edb001b7caa2ac204a0b2e50e0ec58f1 \ No newline at end of file diff --git a/docs/html/classace__time_1_1CompleteZoneProcessorCache__coll__graph.png b/docs/html/classace__time_1_1CompleteZoneProcessorCache__coll__graph.png deleted file mode 100644 index 5fedd225e52f0955fb9ed779526dc0a6bdcbc78f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6471 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 - - - diff --git a/docs/html/classace__time_1_1CompleteZoneProcessorCache__inherit__graph.md5 b/docs/html/classace__time_1_1CompleteZoneProcessorCache__inherit__graph.md5 deleted file mode 100644 index 6577b0e44..000000000 --- a/docs/html/classace__time_1_1CompleteZoneProcessorCache__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -edb001b7caa2ac204a0b2e50e0ec58f1 \ No newline at end of file diff --git a/docs/html/classace__time_1_1CompleteZoneProcessorCache__inherit__graph.png b/docs/html/classace__time_1_1CompleteZoneProcessorCache__inherit__graph.png deleted file mode 100644 index 5fedd225e52f0955fb9ed779526dc0a6bdcbc78f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6471 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 - - - - diff --git a/docs/html/classace__time_1_1CompleteZoneProcessor__coll__graph.md5 b/docs/html/classace__time_1_1CompleteZoneProcessor__coll__graph.md5 deleted file mode 100644 index d722f186a..000000000 --- a/docs/html/classace__time_1_1CompleteZoneProcessor__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a4327b8424bf2e875f115fb33127192f \ No newline at end of file diff --git a/docs/html/classace__time_1_1CompleteZoneProcessor__coll__graph.png b/docs/html/classace__time_1_1CompleteZoneProcessor__coll__graph.png deleted file mode 100644 index de713d03f8ec590306fdca615f4a1add60263cde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7838 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 K%Y8;X_WxfPv`h8? diff --git a/docs/html/classace__time_1_1CompleteZoneProcessor__inherit__graph.map b/docs/html/classace__time_1_1CompleteZoneProcessor__inherit__graph.map deleted file mode 100644 index 61371fea3..000000000 --- a/docs/html/classace__time_1_1CompleteZoneProcessor__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/html/classace__time_1_1CompleteZoneProcessor__inherit__graph.md5 b/docs/html/classace__time_1_1CompleteZoneProcessor__inherit__graph.md5 deleted file mode 100644 index d722f186a..000000000 --- a/docs/html/classace__time_1_1CompleteZoneProcessor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a4327b8424bf2e875f115fb33127192f \ No newline at end of file diff --git a/docs/html/classace__time_1_1CompleteZoneProcessor__inherit__graph.png b/docs/html/classace__time_1_1CompleteZoneProcessor__inherit__graph.png deleted file mode 100644 index de713d03f8ec590306fdca615f4a1add60263cde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7838 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 K%Y8;X_WxfPv`h8? diff --git a/docs/html/classace__time_1_1DateStrings-members.html b/docs/html/classace__time_1_1DateStrings-members.html deleted file mode 100644 index 0b8dd4d0c..000000000 --- a/docs/html/classace__time_1_1DateStrings-members.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -

-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::DateStrings Member List
-
-
- -

This is the complete list of members for ace_time::DateStrings, including all inherited members.

- - - - - - - -
dayOfWeekLongString(uint8_t dayOfWeek)ace_time::DateStringsinline
dayOfWeekShortString(uint8_t dayOfWeek)ace_time::DateStringsinline
kBufferSizeace_time::DateStringsstatic
kShortNameLengthace_time::DateStringsstatic
monthLongString(uint8_t month)ace_time::DateStringsinline
monthShortString(uint8_t month)ace_time::DateStringsinline
- - - - diff --git a/docs/html/classace__time_1_1DateStrings.html b/docs/html/classace__time_1_1DateStrings.html deleted file mode 100644 index fc80d9443..000000000 --- a/docs/html/classace__time_1_1DateStrings.html +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - - -AceTime: ace_time::DateStrings Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::DateStrings Class Reference
-
-
- -

Class that translates a numeric month (1-12) or dayOfWeek (1-7) into a human readable string. - More...

- -

#include <DateStrings.h>

- - - - - - - - - - - - - - -

-Public Member Functions

const char * monthLongString (uint8_t month)
 Return the long month name. More...
 
const char * monthShortString (uint8_t month)
 Return the short month name. More...
 
const char * dayOfWeekLongString (uint8_t dayOfWeek)
 Return the short dayOfWeek name. More...
 
const char * dayOfWeekShortString (uint8_t dayOfWeek)
 Return the short dayOfWeek name. More...
 
- - - - - - - -

-Static Public Attributes

-static const uint8_t kBufferSize = 10
 Length of the longest month or week name, including the '\0' terminator.
 
static const uint8_t kShortNameLength = 3
 Number of prefix characters to use to create a short name. More...
 
-

Detailed Description

-

Class that translates a numeric month (1-12) or dayOfWeek (1-7) into a human readable string.

-

Both long and short versions can be retrieved. The object uses an internal char[] buffer to store the result strings, so the strings must be used before DateStrings object is destroyed. This also means that the object is not thread-safe but Arduino boards are single-threaded currently so we don't have to worry about this.

-

Inspired by the DateStrings.cpp file in https://github.com/PaulStoffregen/Time/blob/master/DateStrings.cpp.

- -

Definition at line 26 of file DateStrings.h.

-

Member Function Documentation

- -

◆ dayOfWeekLongString()

- -
-
- - - - - -
- - - - - - - - -
const char* ace_time::DateStrings::dayOfWeekLongString (uint8_t dayOfWeek)
-
-inline
-
- -

Return the short dayOfWeek name.

-

0=Error, 1=Monday, 7=Sunday.

- -

Definition at line 56 of file DateStrings.h.

- -
-
- -

◆ dayOfWeekShortString()

- -
-
- - - - - -
- - - - - - - - -
const char* ace_time::DateStrings::dayOfWeekShortString (uint8_t dayOfWeek)
-
-inline
-
- -

Return the short dayOfWeek name.

-

0=Err, 1=Mon, 7=Sun.

- -

Definition at line 64 of file DateStrings.h.

- -
-
- -

◆ monthLongString()

- -
-
- - - - - -
- - - - - - - - -
const char* ace_time::DateStrings::monthLongString (uint8_t month)
-
-inline
-
- -

Return the long month name.

-

0=Error, 1=January, 12=December.

- -

Definition at line 40 of file DateStrings.h.

- -
-
- -

◆ monthShortString()

- -
-
- - - - - -
- - - - - - - - -
const char* ace_time::DateStrings::monthShortString (uint8_t month)
-
-inline
-
- -

Return the short month name.

-

0=Err, 1=Jan, 12=Dec.

- -

Definition at line 48 of file DateStrings.h.

- -
-
-

Member Data Documentation

- -

◆ kShortNameLength

- -
-
- - - - - -
- - - - -
const uint8_t ace_time::DateStrings::kShortNameLength = 3
-
-static
-
- -

Number of prefix characters to use to create a short name.

-

kShortNameLength < kBufferSize must be true.

- -

Definition at line 37 of file DateStrings.h.

- -
-
-
The documentation for this class was generated from the following files:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common/DateStrings.h
  • -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common/DateStrings.cpp
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1Epoch-members.html b/docs/html/classace__time_1_1Epoch-members.html deleted file mode 100644 index 3fad9be66..000000000 --- a/docs/html/classace__time_1_1Epoch-members.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::Epoch Member List
-
-
- -

This is the complete list of members for ace_time::Epoch, including all inherited members.

- - - - - - - - - -
currentEpochYear()ace_time::Epochinlinestatic
currentEpochYear(int16_t year)ace_time::Epochinlinestatic
daysFromInternalEpoch(int16_t year)ace_time::Epochinlinestatic
daysToCurrentEpochFromInternalEpoch()ace_time::Epochinlinestatic
daysToCurrentEpochFromUnixEpoch()ace_time::Epochinlinestatic
epochValidYearLower()ace_time::Epochinlinestatic
epochValidYearUpper()ace_time::Epochinlinestatic
secondsToCurrentEpochFromUnixEpoch64()ace_time::Epochinlinestatic
- - - - diff --git a/docs/html/classace__time_1_1Epoch.html b/docs/html/classace__time_1_1Epoch.html deleted file mode 100644 index 014b72fc6..000000000 --- a/docs/html/classace__time_1_1Epoch.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - - -AceTime: ace_time::Epoch Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::Epoch Class Reference
-
-
- -

Utility functions for setting, retrieving, and converting the current epoch. - More...

- -

#include <Epoch.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

-static int16_t currentEpochYear ()
 Get the current epoch year.
 
-static void currentEpochYear (int16_t year)
 Set the current epoch year.
 
-static int32_t daysFromInternalEpoch (int16_t year)
 Return number of days to the given {year}-01-01 from the converter epoch of 2000-01-01.
 
static int32_t daysToCurrentEpochFromInternalEpoch ()
 Number of days from the internal epoch (2000-01-01) to the current epoch. More...
 
-static int32_t daysToCurrentEpochFromUnixEpoch ()
 Return the number of days from the Unix epoch (1970-01-01T00:00:00) to the current epoch.
 
static int64_t secondsToCurrentEpochFromUnixEpoch64 ()
 Return the number of seconds from the Unix epoch (1970-01-01T00:00:00) to the current epoch. More...
 
static int16_t epochValidYearLower ()
 The smallest year (inclusive) for which calculations involving the 32-bit epoch_seconds and time zone transitions are guaranteed to be valid without underflowing or overflowing. More...
 
static int16_t epochValidYearUpper ()
 The largest year (exclusive) for which calculations involving the 32-bit epoch_seconds and time zone transitions are guaranteed to be valid without underflowing or overflowing. More...
 
-

Detailed Description

-

Utility functions for setting, retrieving, and converting the current epoch.

-

Normally, the default epoch is 2050-01-01T00:00:00 UTC. It can be changed by calling the currentEpochYear(year) function.

- -

Definition at line 24 of file Epoch.h.

-

Member Function Documentation

- -

◆ daysToCurrentEpochFromInternalEpoch()

- -
-
- - - - - -
- - - - - - - -
static int32_t ace_time::Epoch::daysToCurrentEpochFromInternalEpoch ()
-
-inlinestatic
-
- -

Number of days from the internal epoch (2000-01-01) to the current epoch.

-

This is an internal implementation that is public for testing purposes.

- -

Definition at line 50 of file Epoch.h.

- -
-
- -

◆ epochValidYearLower()

- -
-
- - - - - -
- - - - - - - -
static int16_t ace_time::Epoch::epochValidYearLower ()
-
-inlinestatic
-
- -

The smallest year (inclusive) for which calculations involving the 32-bit epoch_seconds and time zone transitions are guaranteed to be valid without underflowing or overflowing.

-

Valid years satisfy the condition year >= validYearLower(). This condition is not enforced by any code within the library. The limit is exposed for informational purposes for downstream applications.

-

A 32-bit integer has a range of about 136 years, so the half interval is 68 years. But the algorithms to calculate transitions in zone_processing.h use a 3-year window straddling the current year, so the actual lower limit is probably closer to currentEpochYear() - 66. To be conservative, this function returns currentEpochYear() - 50. It may return a smaller value in the future if the internal calculations can be verified to avoid underflow or overflow problems.

- -

Definition at line 89 of file Epoch.h.

- -
-
- -

◆ epochValidYearUpper()

- -
-
- - - - - -
- - - - - - - -
static int16_t ace_time::Epoch::epochValidYearUpper ()
-
-inlinestatic
-
- -

The largest year (exclusive) for which calculations involving the 32-bit epoch_seconds and time zone transitions are guaranteed to be valid without underflowing or overflowing.

-

Valid years satisfy the condition year < validYearUpper(). This condition is not enforced by any code within the library. The limit is exposed for informational purposes for downstream applications.

-

A 32-bit integer has a range of about 136 years, so the half interval is 68 years. But the algorithms to calculate the transitions in zone_processing.h use a 3-year window straddling the current year, so actual upper limit is probably close to currentEpochYear() + 66. To be conservative, this function returns currentEpochYear() + 50. It may return a larger value in the future if the internal calculations can be verified to avoid underflow or overflow problems.

- -

Definition at line 109 of file Epoch.h.

- -
-
- -

◆ secondsToCurrentEpochFromUnixEpoch64()

- -
-
- - - - - -
- - - - - - - -
static int64_t ace_time::Epoch::secondsToCurrentEpochFromUnixEpoch64 ()
-
-inlinestatic
-
- -

Return the number of seconds from the Unix epoch (1970-01-01T00:00:00) to the current epoch.

-

The return type is a 64-bit integer because a 32-bit integer would overflow if the current epoch year is set to later than 2038.

- -

Definition at line 69 of file Epoch.h.

- -
-
-
The documentation for this class was generated from the following files:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Epoch.h
  • -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Epoch.cpp
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1EpochConverterHinnant-members.html b/docs/html/classace__time_1_1EpochConverterHinnant-members.html deleted file mode 100644 index 0c0d62b1d..000000000 --- a/docs/html/classace__time_1_1EpochConverterHinnant-members.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::EpochConverterHinnant Member List
-
-
- -

This is the complete list of members for ace_time::EpochConverterHinnant, including all inherited members.

- - - - - - -
fromEpochDays(int32_t epochDays, int16_t &year, uint8_t &month, uint8_t &day)ace_time::EpochConverterHinnantinlinestatic
kDaysToInternalEpochFromUnixEpochace_time::EpochConverterHinnantstatic
kInternalEpochYearace_time::EpochConverterHinnantstatic
toDaysUntilMonthPrime(uint8_t monthPrime)ace_time::EpochConverterHinnantinlinestatic
toEpochDays(int16_t year, uint8_t month, uint8_t day)ace_time::EpochConverterHinnantinlinestatic
- - - - diff --git a/docs/html/classace__time_1_1EpochConverterHinnant.html b/docs/html/classace__time_1_1EpochConverterHinnant.html deleted file mode 100644 index d34ba0d31..000000000 --- a/docs/html/classace__time_1_1EpochConverterHinnant.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - - -AceTime: ace_time::EpochConverterHinnant Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::EpochConverterHinnant Class Reference
-
-
- -

Utility class that converts AceTime epoch days to (year, month, day) in the Gregorian calendar and vise versa. - More...

- -

#include <EpochConverterHinnant.h>

- - - - - - - - - - - -

-Static Public Member Functions

static int32_t toEpochDays (int16_t year, uint8_t month, uint8_t day)
 Convert (year, month, day) in the Gregorian calendar to days since the internal epoch (2000-01-01). More...
 
static void fromEpochDays (int32_t epochDays, int16_t &year, uint8_t &month, uint8_t &day)
 Extract the (year, month, day) fields from AceTime epochDays. More...
 
static uint16_t toDaysUntilMonthPrime (uint8_t monthPrime)
 Return the number days before the given monthPrime. More...
 
- - - - - - - -

-Static Public Attributes

static const int16_t kInternalEpochYear = 2000
 Epoch year used by this epoch converter. More...
 
-static const int32_t kDaysToInternalEpochFromUnixEpoch = 10957
 Number of days from Unix epoch (1970-01-01 00:00:00 UTC) to the internal epoch (2000-01-01 00:00:00 UTC).
 
-

Detailed Description

-

Utility class that converts AceTime epoch days to (year, month, day) in the Gregorian calendar and vise versa.

-

Uses the algorithm described in https://howardhinnant.github.io/date_algorithms.html.

- -

Definition at line 18 of file EpochConverterHinnant.h.

-

Member Function Documentation

- -

◆ fromEpochDays()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static void ace_time::EpochConverterHinnant::fromEpochDays (int32_t epochDays,
int16_t & year,
uint8_t & month,
uint8_t & day 
)
-
-inlinestatic
-
- -

Extract the (year, month, day) fields from AceTime epochDays.

-

No input validation is performed. The behavior is undefined if the parameters are outside their expected range.

-
Parameters
- - - - - -
epochDaysnumber of days from the internal epoch of 2000-01-01
yearyear [1,9999]
monthmonth integer [1, 12]
dayday of month integer[1, 31]
-
-
- -

Definition at line 75 of file EpochConverterHinnant.h.

- -
-
- -

◆ toDaysUntilMonthPrime()

- -
-
- - - - - -
- - - - - - - - -
static uint16_t ace_time::EpochConverterHinnant::toDaysUntilMonthPrime (uint8_t monthPrime)
-
-inlinestatic
-
- -

Return the number days before the given monthPrime.

-

This uses the original formula from Hinnant's paper.

- -

Definition at line 99 of file EpochConverterHinnant.h.

- -
-
- -

◆ toEpochDays()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static int32_t ace_time::EpochConverterHinnant::toEpochDays (int16_t year,
uint8_t month,
uint8_t day 
)
-
-inlinestatic
-
- -

Convert (year, month, day) in the Gregorian calendar to days since the internal epoch (2000-01-01).

-

The year is restricted to be greater than or equal to 0001, which allows the internal 400-year era to start on 0000-03-01 with era=0, and we don't have to worry about negative eras.

-

No input validation is performed. The behavior is undefined if the parameters are outside their expected range. The algorithm will likely work for dates between 0000-03-01 and 32767-12-31 (inclusive), but has been tested only for dates between 0001-01-01 and 9999-12-31 (inclusive).

-
Parameters
- - - - -
year,[1,9999]
monthmonth integer, [1,12]
dayday of month integer, [1,31]
-
-
- -

Definition at line 47 of file EpochConverterHinnant.h.

- -
-
-

Member Data Documentation

- -

◆ kInternalEpochYear

- -
-
- - - - - -
- - - - -
const int16_t ace_time::EpochConverterHinnant::kInternalEpochYear = 2000
-
-static
-
- -

Epoch year used by this epoch converter.

-

Must be a multiple of 400. Other parts of the AceTime library will probably use a different epoch year.

- -

Definition at line 24 of file EpochConverterHinnant.h.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1EpochConverterJulian-members.html b/docs/html/classace__time_1_1EpochConverterJulian-members.html deleted file mode 100644 index baa5e219a..000000000 --- a/docs/html/classace__time_1_1EpochConverterJulian-members.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::EpochConverterJulian Member List
-
-
- -

This is the complete list of members for ace_time::EpochConverterJulian, including all inherited members.

- - - - - - -
fromEpochDays(int32_t epochDays, int16_t &year, uint8_t &month, uint8_t &day)ace_time::EpochConverterJulianinlinestatic
kDaysToInternalEpochFromJulianEpochace_time::EpochConverterJulianstatic
kDaysToInternalEpochFromUnixEpochace_time::EpochConverterJulianstatic
kInternalEpochYearace_time::EpochConverterJulianstatic
toEpochDays(int16_t year, uint8_t month, uint8_t day)ace_time::EpochConverterJulianinlinestatic
- - - - diff --git a/docs/html/classace__time_1_1EpochConverterJulian.html b/docs/html/classace__time_1_1EpochConverterJulian.html deleted file mode 100644 index e81fcf523..000000000 --- a/docs/html/classace__time_1_1EpochConverterJulian.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - - - - -AceTime: ace_time::EpochConverterJulian Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::EpochConverterJulian Class Reference
-
-
- -

Utility class that converts AceTime epoch days to (year, month, day) in the Gregorian calendar and vise versa. - More...

- -

#include <EpochConverterJulian.h>

- - - - - - - - -

-Static Public Member Functions

static int32_t toEpochDays (int16_t year, uint8_t month, uint8_t day)
 Convert (year, month, day) in the Gregorian calendar to days since the internal epoch (2000-01-01). More...
 
static void fromEpochDays (int32_t epochDays, int16_t &year, uint8_t &month, uint8_t &day)
 Extract the (year, month, day) fields from AceTime epochDays. More...
 
- - - - - - - - - - -

-Static Public Attributes

static const int16_t kInternalEpochYear = 2000
 Epoch year used by this epoch converter. More...
 
-static const int32_t kDaysToInternalEpochFromUnixEpoch = 10957
 Number of days from Unix epoch (1970-01-01 00:00:00 UTC) to the internal epoch (2000-01-01 00:00:00 UTC).
 
static const int32_t kDaysToInternalEpochFromJulianEpoch
 Number of days from the modified proleptic Julian calendar epoch (4713 BC 01-01, modified to start at 00:00:00 instead of 12:00:00) to the internal epoch (2000-01-01). More...
 
-

Detailed Description

-

Utility class that converts AceTime epoch days to (year, month, day) in the Gregorian calendar and vise versa.

-

Uses the algorithm described in https://en.wikipedia.org/wiki/Julian_day which converts into Julian days as an intermediate step.

- -

Definition at line 19 of file EpochConverterJulian.h.

-

Member Function Documentation

- -

◆ fromEpochDays()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static void ace_time::EpochConverterJulian::fromEpochDays (int32_t epochDays,
int16_t & year,
uint8_t & month,
uint8_t & day 
)
-
-inlinestatic
-
- -

Extract the (year, month, day) fields from AceTime epochDays.

-

See https://en.wikipedia.org/wiki/Julian_day for formula.

-

No input validation is performed. The behavior is undefined if the parameters are outside their expected range.

- -

Definition at line 86 of file EpochConverterJulian.h.

- -
-
- -

◆ toEpochDays()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static int32_t ace_time::EpochConverterJulian::toEpochDays (int16_t year,
uint8_t month,
uint8_t day 
)
-
-inlinestatic
-
- -

Convert (year, month, day) in the Gregorian calendar to days since the internal epoch (2000-01-01).

-

The (year, month, day) is converted into Julian days, then converted to epoch days since AceTime Epoch. The Julian day normally start at 12:00:00, but we use a modified Julian day number starting at 00:00:00 to make it easier to convert to the Gregorian calendar day.

-
* JDN = (1461 x (Y + 4800 + (M - 14)/12))/4
-*     + (367 x (M - 2 - 12 x ((M - 14)/12)))/12
-*     - (3 x ((Y + 4900 + (M - 14)/12)/100))/4
-*     + D - 32075
-* JDN2000 = JDN - 2451545
-* 

It looks like the formula needs to be done using signed integers because it depends on the modulo operation (%) to truncate towards 0 for negative numbers.

-

No input validation is performed. The behavior is undefined if the parameters are outside their expected range.

-
Parameters
- - - - -
yearyear [1,9999]
monthmonth integer [1, 12]
dayday of month integer[1, 31]
-
-
- -

Definition at line 70 of file EpochConverterJulian.h.

- -
-
-

Member Data Documentation

- -

◆ kDaysToInternalEpochFromJulianEpoch

- -
-
- - - - - -
- - - - -
const int32_t ace_time::EpochConverterJulian::kDaysToInternalEpochFromJulianEpoch
-
-static
-
-Initial value:
= 1721060
-
+ (kInternalEpochYear / 400) * 146097
-
static const int16_t kInternalEpochYear
Epoch year used by this epoch converter.
-
-

Number of days from the modified proleptic Julian calendar epoch (4713 BC 01-01, modified to start at 00:00:00 instead of 12:00:00) to the internal epoch (2000-01-01).

-

There are 1721060 days from the modified Julian epoch to 0000-01-01 of the proleptic Gregorian calendar. We then need to add 2000 years (5 x 400 years) to get to 2000-01-01.

- -

Definition at line 40 of file EpochConverterJulian.h.

- -
-
- -

◆ kInternalEpochYear

- -
-
- - - - - -
- - - - -
const int16_t ace_time::EpochConverterJulian::kInternalEpochYear = 2000
-
-static
-
- -

Epoch year used by this epoch converter.

-

Must be a multiple of 400. Other parts of the AceTime library will probably use a different epoch year.

- -

Definition at line 25 of file EpochConverterJulian.h.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessor-members.html b/docs/html/classace__time_1_1ExtendedZoneProcessor-members.html deleted file mode 100644 index 36a50fb05..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessor-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ExtendedZoneProcessor Member List
-
-
- -

This is the complete list of members for ace_time::ExtendedZoneProcessor, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
equalsZoneKey(uintptr_t zoneKey) const overrideace_time::ExtendedZoneProcessorTemplate< extended::Info >inlinevirtual
ExtendedZoneProcessor(const extended::Info::ZoneInfo *zoneInfo=nullptr) (defined in ace_time::ExtendedZoneProcessor)ace_time::ExtendedZoneProcessorinlineexplicit
ExtendedZoneProcessorTemplate(uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)ace_time::ExtendedZoneProcessorTemplate< extended::Info >inlineexplicitprotected
findByEpochSeconds(acetime_t epochSeconds) const overrideace_time::ExtendedZoneProcessorTemplate< extended::Info >inlinevirtual
findByLocalDateTime(const LocalDateTime &ldt) const overrideace_time::ExtendedZoneProcessorTemplate< extended::Info >inlinevirtual
getTransitionAllocSize() constace_time::ExtendedZoneProcessorTemplate< extended::Info >inline
getType() constace_time::ZoneProcessorinline
getZoneId() const overrideace_time::ExtendedZoneProcessorTemplate< extended::Info >inlinevirtual
initForEpochSeconds(acetime_t epochSeconds) constace_time::ExtendedZoneProcessorTemplate< extended::Info >inline
initForYear(int16_t year) constace_time::ExtendedZoneProcessorTemplate< extended::Info >inline
isFilled(int16_t year) constace_time::ZoneProcessorinlineprotected
isLink() const overrideace_time::ExtendedZoneProcessorTemplate< extended::Info >inlinevirtual
kMaxTransitionsace_time::ExtendedZoneProcessorTemplate< extended::Info >static
kTypeExtendedace_time::ExtendedZoneProcessorstatic
log() constace_time::ExtendedZoneProcessorTemplate< extended::Info >inline
MatchingEra typedeface_time::ExtendedZoneProcessorTemplate< extended::Info >
mEpochYearace_time::ZoneProcessormutableprotected
mTypeace_time::ZoneProcessorprotected
mYearace_time::ZoneProcessormutableprotected
operator=(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
printNameTo(Print &printer) const overrideace_time::ExtendedZoneProcessorTemplate< extended::Info >inlinevirtual
printShortNameTo(Print &printer) const overrideace_time::ExtendedZoneProcessorTemplate< extended::Info >inlinevirtual
printTargetNameTo(Print &printer) const overrideace_time::ExtendedZoneProcessorTemplate< extended::Info >inlinevirtual
resetTransitionAllocSize()ace_time::ExtendedZoneProcessorTemplate< extended::Info >inline
setZoneInfoStore(const typename D::ZoneInfoStore *zoneInfoStore)ace_time::ExtendedZoneProcessorTemplate< extended::Info >inline
setZoneKey(uintptr_t zoneKey) overrideace_time::ExtendedZoneProcessorTemplate< extended::Info >inlinevirtual
Transition typedeface_time::ExtendedZoneProcessorTemplate< extended::Info >
TransitionForDateTime typedeface_time::ExtendedZoneProcessorTemplate< extended::Info >
TransitionForSeconds typedeface_time::ExtendedZoneProcessorTemplate< extended::Info >
TransitionStorage typedeface_time::ExtendedZoneProcessorTemplate< extended::Info >
ZoneProcessor(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
ZoneProcessor(uint8_t type)ace_time::ZoneProcessorinlineprotected
- - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessor.html b/docs/html/classace__time_1_1ExtendedZoneProcessor.html deleted file mode 100644 index b21cb03ec..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessor.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - -AceTime: ace_time::ExtendedZoneProcessor Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ExtendedZoneProcessor Class Reference
-
-
- -

A specific implementation of ExtendedZoneProcessorTemplate that uses the extended::Info::ZoneXxxBrokers classes which read from 'zonedbx' files in PROGMEM flash memory. - More...

- -

#include <ExtendedZoneProcessor.h>

-
-Inheritance diagram for ace_time::ExtendedZoneProcessor:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for ace_time::ExtendedZoneProcessor:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ExtendedZoneProcessor (const extended::Info::ZoneInfo *zoneInfo=nullptr)
 
- Public Member Functions inherited from ace_time::ExtendedZoneProcessorTemplate< extended::Info >
-bool isLink () const override
 Return true if timezone is a Link entry pointing to a Zone entry.
 
-uint32_t getZoneId () const override
 Return the unique stable zoneId.
 
-FindResult findByLocalDateTime (const LocalDateTime &ldt) const override
 Return the search results at given LocalDateTime.
 
FindResult findByEpochSeconds (acetime_t epochSeconds) const override
 
void printNameTo (Print &printer) const override
 Print a human-readable identifier (e.g. More...
 
void printShortNameTo (Print &printer) const override
 Print a short human-readable identifier (e.g. More...
 
void printTargetNameTo (Print &printer) const override
 Print the full identifier (e.g. More...
 
-void log () const
 Used only for debugging.
 
void resetTransitionAllocSize ()
 Reset the TransitionStorage high water mark. More...
 
uint8_t getTransitionAllocSize () const
 Get the largest allocation size of TransitionStorage. More...
 
void setZoneKey (uintptr_t zoneKey) override
 Set the opaque zoneKey of this object to a new value, reseting any internally cached information. More...
 
bool equalsZoneKey (uintptr_t zoneKey) const override
 Return true if ZoneProcessor is associated with the given opaque zoneKey. More...
 
void setZoneInfoStore (const typename D::ZoneInfoStore *zoneInfoStore)
 Set the zone info store at runtime. More...
 
bool initForEpochSeconds (acetime_t epochSeconds) const
 Initialize using the epochSeconds. More...
 
bool initForYear (int16_t year) const
 Initialize the zone rules cache, keyed by the "current" year. More...
 
- Public Member Functions inherited from ace_time::ZoneProcessor
-uint8_t getType () const
 Return the kTypeXxx of the current instance.
 
- - - - - - - - -

-Static Public Attributes

-static const uint8_t kTypeExtended = 4
 Unique TimeZone type identifier for ExtendedZoneProcessor.
 
- Static Public Attributes inherited from ace_time::ExtendedZoneProcessorTemplate< extended::Info >
static const uint8_t kMaxTransitions
 Max number of Transitions required for all Zones supported by this class. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Types inherited from ace_time::ExtendedZoneProcessorTemplate< extended::Info >
-typedef extended::TransitionTemplate< extended::InfoTransition
 Exposed only for testing purposes.
 
-typedef extended::TransitionForSecondsTemplate< extended::InfoTransitionForSeconds
 Exposed only for testing purposes.
 
-typedef extended::TransitionForDateTimeTemplate< extended::InfoTransitionForDateTime
 Exposed only for testing purposes.
 
-typedef extended::MatchingEraTemplate< extended::InfoMatchingEra
 Exposed only for testing purposes.
 
-typedef extended::TransitionStorageTemplate< kMaxTransitions, extended::InfoTransitionStorage
 Exposed only for testing purposes.
 
- Protected Member Functions inherited from ace_time::ExtendedZoneProcessorTemplate< extended::Info >
 ExtendedZoneProcessorTemplate (uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)
 Constructor. More...
 
- Protected Member Functions inherited from ace_time::ZoneProcessor
ZoneProcessor (const ZoneProcessor &)=delete
 
-ZoneProcessoroperator= (const ZoneProcessor &)=delete
 
ZoneProcessor (uint8_t type)
 Constructor.
 
bool isFilled (int16_t year) const
 Check if the Transition cache is filled for the given year and current epochYear. More...
 
- Protected Attributes inherited from ace_time::ZoneProcessor
uint8_t const mType
 User-visible indicator of the subclass of ZoneProcessor, which implments a specific time-zone algorithm. More...
 
int16_t mYear = LocalDate::kInvalidYear
 Year that was used to calculate the transitions in the current cache. More...
 
int16_t mEpochYear = LocalDate::kInvalidYear
 Epoch year that was used to calculate the transitions in the current cache. More...
 
-

Detailed Description

-

A specific implementation of ExtendedZoneProcessorTemplate that uses the extended::Info::ZoneXxxBrokers classes which read from 'zonedbx' files in PROGMEM flash memory.

- -

Definition at line 1169 of file ExtendedZoneProcessor.h.

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorCache-members.html b/docs/html/classace__time_1_1ExtendedZoneProcessorCache-members.html deleted file mode 100644 index 11baaabba..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessorCache-members.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ExtendedZoneProcessorCache< SIZE > Member List
-
-
- -

This is the complete list of members for ace_time::ExtendedZoneProcessorCache< SIZE >, including all inherited members.

- - - - - - -
ExtendedZoneProcessorCache() (defined in ace_time::ExtendedZoneProcessorCache< SIZE >)ace_time::ExtendedZoneProcessorCache< SIZE >inline
getZoneProcessor(uintptr_t zoneKey)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
getZoneProcessorAtIndex(uint8_t i)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
size() constace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
ZoneProcessorCacheBaseTemplate(ZP *zoneProcessors, uint8_t size) (defined in ace_time::ZoneProcessorCacheBaseTemplate< ZP >)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
- - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorCache.html b/docs/html/classace__time_1_1ExtendedZoneProcessorCache.html deleted file mode 100644 index bd95c6cad..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessorCache.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -AceTime: ace_time::ExtendedZoneProcessorCache< SIZE > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ExtendedZoneProcessorCache< SIZE > Class Template Reference
-
-
- -

An implementation of an ExtendedZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself. - More...

- -

#include <ZoneProcessorCache.h>

-
-Inheritance diagram for ace_time::ExtendedZoneProcessorCache< SIZE >:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for ace_time::ExtendedZoneProcessorCache< SIZE >:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Member Functions inherited from ace_time::ZoneProcessorCacheBaseTemplate< ZP >
ZoneProcessorCacheBaseTemplate (ZP *zoneProcessors, uint8_t size)
 
-uint8_t size () const
 Return the size of the cache.
 
-ZP * getZoneProcessorAtIndex (uint8_t i)
 Get the ZoneProcessor at index i.
 
ZP * getZoneProcessor (uintptr_t zoneKey)
 Get ZoneProcessor from either a ZoneKey, basic::Info::ZoneInfo, an extended::Info::ZoneInfo, or complete::Info::ZoneInfo. More...
 
-

Detailed Description

-

template<uint8_t SIZE>
-class ace_time::ExtendedZoneProcessorCache< SIZE >

- -

An implementation of an ExtendedZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself.

-

This is expected to be created as a global object and passed into the ExtendedZoneManager.

-
Template Parameters
- - -
SIZEnumber of zone processors, should be approximate the number zones concurrently used in the app. It is expected that this will be small. It can be 1 if the app never changes the TimeZone. It should be 2 if the user is able to select different timezones from a menu.
-
-
- -

Definition at line 148 of file ZoneProcessorCache.h.

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorCache__coll__graph.map b/docs/html/classace__time_1_1ExtendedZoneProcessorCache__coll__graph.map deleted file mode 100644 index 61ae01624..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessorCache__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorCache__coll__graph.md5 b/docs/html/classace__time_1_1ExtendedZoneProcessorCache__coll__graph.md5 deleted file mode 100644 index a72332533..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessorCache__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -22a25da96138720b11aab3b1ebde7d60 \ No newline at end of file diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorCache__coll__graph.png b/docs/html/classace__time_1_1ExtendedZoneProcessorCache__coll__graph.png deleted file mode 100644 index 3217d42e31348cf81fe9632b5c9af5b5a47e95e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6717 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 - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorCache__inherit__graph.md5 b/docs/html/classace__time_1_1ExtendedZoneProcessorCache__inherit__graph.md5 deleted file mode 100644 index a72332533..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessorCache__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -22a25da96138720b11aab3b1ebde7d60 \ No newline at end of file diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorCache__inherit__graph.png b/docs/html/classace__time_1_1ExtendedZoneProcessorCache__inherit__graph.png deleted file mode 100644 index 3217d42e31348cf81fe9632b5c9af5b5a47e95e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6717 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 - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ExtendedZoneProcessorTemplate< D > Member List
-
-
- -

This is the complete list of members for ace_time::ExtendedZoneProcessorTemplate< D >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
::CompleteTransitionValidation (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedTransitionValidation (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_calcInteriorYears (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_compareEraToYearMonth (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_compareEraToYearMonth2 (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_compareTransitionToMatch (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_compareTransitionToMatchFuzzy (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_createMatchingEra (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_createTransitionForYear (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_createTransitionsFromNamedMatch (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_findCandidateTransitions (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_findMatches_named (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_findMatches_simple (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_fixTransitionTimes_generateStartUntilTimes (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_getMostRecentPriorYear (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_getTransitionTime (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_processTransitionCompareStatus (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
::ExtendedZoneProcessorTest_setZoneKey (defined in ace_time::ExtendedZoneProcessorTemplate< D >)ace_time::ExtendedZoneProcessorTemplate< D >friend
equalsZoneKey(uintptr_t zoneKey) const overrideace_time::ExtendedZoneProcessorTemplate< D >inlinevirtual
ExtendedZoneProcessorTemplate(uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)ace_time::ExtendedZoneProcessorTemplate< D >inlineexplicitprotected
findByEpochSeconds(acetime_t epochSeconds) const overrideace_time::ExtendedZoneProcessorTemplate< D >inlinevirtual
findByLocalDateTime(const LocalDateTime &ldt) const overrideace_time::ExtendedZoneProcessorTemplate< D >inlinevirtual
getTransitionAllocSize() constace_time::ExtendedZoneProcessorTemplate< D >inline
getType() constace_time::ZoneProcessorinline
getZoneId() const overrideace_time::ExtendedZoneProcessorTemplate< D >inlinevirtual
initForEpochSeconds(acetime_t epochSeconds) constace_time::ExtendedZoneProcessorTemplate< D >inline
initForYear(int16_t year) constace_time::ExtendedZoneProcessorTemplate< D >inline
isFilled(int16_t year) constace_time::ZoneProcessorinlineprotected
isLink() const overrideace_time::ExtendedZoneProcessorTemplate< D >inlinevirtual
kMaxTransitionsace_time::ExtendedZoneProcessorTemplate< D >static
log() constace_time::ExtendedZoneProcessorTemplate< D >inline
MatchingEra typedeface_time::ExtendedZoneProcessorTemplate< D >
mEpochYearace_time::ZoneProcessormutableprotected
mTypeace_time::ZoneProcessorprotected
mYearace_time::ZoneProcessormutableprotected
operator=(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
printNameTo(Print &printer) const overrideace_time::ExtendedZoneProcessorTemplate< D >inlinevirtual
printShortNameTo(Print &printer) const overrideace_time::ExtendedZoneProcessorTemplate< D >inlinevirtual
printTargetNameTo(Print &printer) const overrideace_time::ExtendedZoneProcessorTemplate< D >inlinevirtual
resetTransitionAllocSize()ace_time::ExtendedZoneProcessorTemplate< D >inline
setZoneInfoStore(const typename D::ZoneInfoStore *zoneInfoStore)ace_time::ExtendedZoneProcessorTemplate< D >inline
setZoneKey(uintptr_t zoneKey) overrideace_time::ExtendedZoneProcessorTemplate< D >inlinevirtual
Transition typedeface_time::ExtendedZoneProcessorTemplate< D >
TransitionForDateTime typedeface_time::ExtendedZoneProcessorTemplate< D >
TransitionForSeconds typedeface_time::ExtendedZoneProcessorTemplate< D >
TransitionStorage typedeface_time::ExtendedZoneProcessorTemplate< D >
ZoneProcessor(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
ZoneProcessor(uint8_t type)ace_time::ZoneProcessorinlineprotected
- - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate.html b/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate.html deleted file mode 100644 index 09639df02..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate.html +++ /dev/null @@ -1,806 +0,0 @@ - - - - - - - -AceTime: ace_time::ExtendedZoneProcessorTemplate< D > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ExtendedZoneProcessorTemplate< D > Class Template Reference
-
-
- -

An implementation of ZoneProcessor that supports for all zones defined by the TZ Database. - More...

- -

#include <ExtendedZoneProcessor.h>

-
-Inheritance diagram for ace_time::ExtendedZoneProcessorTemplate< D >:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for ace_time::ExtendedZoneProcessorTemplate< D >:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - -

-Public Types

-typedef extended::TransitionTemplate< D > Transition
 Exposed only for testing purposes.
 
-typedef extended::TransitionForSecondsTemplate< D > TransitionForSeconds
 Exposed only for testing purposes.
 
-typedef extended::TransitionForDateTimeTemplate< D > TransitionForDateTime
 Exposed only for testing purposes.
 
-typedef extended::MatchingEraTemplate< D > MatchingEra
 Exposed only for testing purposes.
 
-typedef extended::TransitionStorageTemplate< kMaxTransitions, D > TransitionStorage
 Exposed only for testing purposes.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-bool isLink () const override
 Return true if timezone is a Link entry pointing to a Zone entry.
 
-uint32_t getZoneId () const override
 Return the unique stable zoneId.
 
-FindResult findByLocalDateTime (const LocalDateTime &ldt) const override
 Return the search results at given LocalDateTime.
 
FindResult findByEpochSeconds (acetime_t epochSeconds) const override
 
void printNameTo (Print &printer) const override
 Print a human-readable identifier (e.g. More...
 
void printShortNameTo (Print &printer) const override
 Print a short human-readable identifier (e.g. More...
 
void printTargetNameTo (Print &printer) const override
 Print the full identifier (e.g. More...
 
-void log () const
 Used only for debugging.
 
void resetTransitionAllocSize ()
 Reset the TransitionStorage high water mark. More...
 
uint8_t getTransitionAllocSize () const
 Get the largest allocation size of TransitionStorage. More...
 
void setZoneKey (uintptr_t zoneKey) override
 Set the opaque zoneKey of this object to a new value, reseting any internally cached information. More...
 
bool equalsZoneKey (uintptr_t zoneKey) const override
 Return true if ZoneProcessor is associated with the given opaque zoneKey. More...
 
void setZoneInfoStore (const typename D::ZoneInfoStore *zoneInfoStore)
 Set the zone info store at runtime. More...
 
bool initForEpochSeconds (acetime_t epochSeconds) const
 Initialize using the epochSeconds. More...
 
bool initForYear (int16_t year) const
 Initialize the zone rules cache, keyed by the "current" year. More...
 
- Public Member Functions inherited from ace_time::ZoneProcessor
-uint8_t getType () const
 Return the kTypeXxx of the current instance.
 
- - - - -

-Static Public Attributes

static const uint8_t kMaxTransitions = 8
 Max number of Transitions required for all Zones supported by this class. More...
 
- - - - - - - - - - - - - - - -

-Protected Member Functions

 ExtendedZoneProcessorTemplate (uint8_t type, const typename D::ZoneInfoStore *zoneInfoStore, uintptr_t zoneKey)
 Constructor. More...
 
- Protected Member Functions inherited from ace_time::ZoneProcessor
ZoneProcessor (const ZoneProcessor &)=delete
 
-ZoneProcessoroperator= (const ZoneProcessor &)=delete
 
ZoneProcessor (uint8_t type)
 Constructor.
 
bool isFilled (int16_t year) const
 Check if the Transition cache is filled for the given year and current epochYear. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Friends

-class ::ExtendedZoneProcessorTest_compareEraToYearMonth
 
-class ::ExtendedZoneProcessorTest_compareEraToYearMonth2
 
-class ::ExtendedZoneProcessorTest_createMatchingEra
 
-class ::ExtendedZoneProcessorTest_findMatches_simple
 
-class ::ExtendedZoneProcessorTest_findMatches_named
 
-class ::ExtendedZoneProcessorTest_findCandidateTransitions
 
-class ::ExtendedZoneProcessorTest_createTransitionsFromNamedMatch
 
-class ::ExtendedZoneProcessorTest_getTransitionTime
 
-class ::ExtendedZoneProcessorTest_createTransitionForYear
 
-class ::ExtendedZoneProcessorTest_calcInteriorYears
 
-class ::ExtendedZoneProcessorTest_getMostRecentPriorYear
 
-class ::ExtendedZoneProcessorTest_compareTransitionToMatchFuzzy
 
-class ::ExtendedZoneProcessorTest_compareTransitionToMatch
 
-class ::ExtendedZoneProcessorTest_processTransitionCompareStatus
 
-class ::ExtendedZoneProcessorTest_fixTransitionTimes_generateStartUntilTimes
 
-class ::ExtendedZoneProcessorTest_setZoneKey
 
-class ::ExtendedTransitionValidation
 
-class ::CompleteTransitionValidation
 
- - - - - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from ace_time::ZoneProcessor
uint8_t const mType
 User-visible indicator of the subclass of ZoneProcessor, which implments a specific time-zone algorithm. More...
 
int16_t mYear = LocalDate::kInvalidYear
 Year that was used to calculate the transitions in the current cache. More...
 
int16_t mEpochYear = LocalDate::kInvalidYear
 Epoch year that was used to calculate the transitions in the current cache. More...
 
-

Detailed Description

-

template<typename D>
-class ace_time::ExtendedZoneProcessorTemplate< D >

- -

An implementation of ZoneProcessor that supports for all zones defined by the TZ Database.

-

The supported zones are defined in the zonedbx/zone_infos.h header file. The constructor expects a pointer to one of the ZoneInfo structures declared in the zonedbx/zone_infos.h file. The zone_processor.py file is the initial Python implementation of this class, which got translated into C++.

-

The underlying zoneinfo files (extended::Info::ZoneInfo) store the UTC and DST offsets of a timezone as a single signed byte in 15-minute increments. This is sufficient to accurate describe all time zones from the year 2000 until 2100. The AT and UNTIL transition times are stored using a 1-minute resolution, which correctly handles the 5 timezones whose DST transition times occur at 00:01. Those zones are:

-
    -
  • America/Goose_Bay
  • -
  • America/Moncton
  • -
  • America/St_Johns
  • -
  • Asia/Gaza
  • -
  • Asia/Hebron
  • -
-

Not thread-safe.

-
Template Parameters
- - -
Bbroker type
-
-
- -

Definition at line 81 of file ExtendedZoneProcessor.h.

-

Constructor & Destructor Documentation

- -

◆ ExtendedZoneProcessorTemplate()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
ace_time::ExtendedZoneProcessorTemplate< D >::ExtendedZoneProcessorTemplate (uint8_t type,
const typename D::ZoneInfoStore * zoneInfoStore,
uintptr_t zoneKey 
)
-
-inlineexplicitprotected
-
- -

Constructor.

-

When first initialized inside a cache, the zoneInfoStore may be set to nullptr, and the zoneKey should be ignored.

-
Parameters
- - - - -
typeindentifier for the specific subclass of ZoneProcessor (e.g. Basic versus Extended) mostly used for debugging
zoneInfoStorepointer to a ZoneInfoStore that creates a ZoneInfoBroker
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Definition at line 385 of file ExtendedZoneProcessor.h.

- -
-
-

Member Function Documentation

- -

◆ equalsZoneKey()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
bool ace_time::ExtendedZoneProcessorTemplate< D >::equalsZoneKey (uintptr_t zoneKey) const
-
-inlineoverridevirtual
-
- -

Return true if ZoneProcessor is associated with the given opaque zoneKey.

-

This method should be considered to be private.

-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 277 of file ExtendedZoneProcessor.h.

- -
-
- -

◆ findByEpochSeconds()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
FindResult ace_time::ExtendedZoneProcessorTemplate< D >::findByEpochSeconds (acetime_t epochSeconds) const
-
-inlineoverridevirtual
-
- -

-

This implementation calculates the OffsetDateTime.fold() parameter correctly, and indicates whether the localized datetime is before the overlap (fold==0) or after the overlap (fold==1). During a gap, there is no ambiguity when searching on epochSeconds so fold will always be 0.

- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 203 of file ExtendedZoneProcessor.h.

- -
-
- -

◆ getTransitionAllocSize()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - -
uint8_t ace_time::ExtendedZoneProcessorTemplate< D >::getTransitionAllocSize () const
-
-inline
-
- -

Get the largest allocation size of TransitionStorage.

-

For debugging.

- -

Definition at line 263 of file ExtendedZoneProcessor.h.

- -
-
- -

◆ initForEpochSeconds()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
bool ace_time::ExtendedZoneProcessorTemplate< D >::initForEpochSeconds (acetime_t epochSeconds) const
-
-inline
-
- -

Initialize using the epochSeconds.

-

The epochSeconds is converted to the LocalDate for UTC time, and the year is used to call initForYear(). Exposed for debugging.

- -

Definition at line 296 of file ExtendedZoneProcessor.h.

- -
-
- -

◆ initForYear()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
bool ace_time::ExtendedZoneProcessorTemplate< D >::initForYear (int16_t year) const
-
-inline
-
- -

Initialize the zone rules cache, keyed by the "current" year.

-

Returns success status: true if successful, false if an error occurred. Exposed for debugging.

- -

Definition at line 306 of file ExtendedZoneProcessor.h.

- -
-
- -

◆ printNameTo()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::ExtendedZoneProcessorTemplate< D >::printNameTo (Print & printer) const
-
-inlineoverridevirtual
-
- -

Print a human-readable identifier (e.g.

-

"America/Los_Angeles").

-
Parameters
- - -
printeran instance of the Print class, usually Serial
-
-
- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 227 of file ExtendedZoneProcessor.h.

- -
-
- -

◆ printShortNameTo()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::ExtendedZoneProcessorTemplate< D >::printShortNameTo (Print & printer) const
-
-inlineoverridevirtual
-
- -

Print a short human-readable identifier (e.g.

-

"Los Angeles"). Any underscore in the short name is replaced with a space.

-
Parameters
- - -
printeran instance of the Print class, usually Serial
-
-
- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 231 of file ExtendedZoneProcessor.h.

- -
-
- -

◆ printTargetNameTo()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::ExtendedZoneProcessorTemplate< D >::printTargetNameTo (Print & printer) const
-
-inlineoverridevirtual
-
- -

Print the full identifier (e.g.

-

"America/Los_Angeles") of the target zone if the current zone is a Link entry. Otherwise, print nothing.

-
Parameters
- - -
printeran instance of the Print class, usually Serial
-
-
- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 235 of file ExtendedZoneProcessor.h.

- -
-
- -

◆ resetTransitionAllocSize()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - -
void ace_time::ExtendedZoneProcessorTemplate< D >::resetTransitionAllocSize ()
-
-inline
-
- -

Reset the TransitionStorage high water mark.

-

For debugging.

- -

Definition at line 258 of file ExtendedZoneProcessor.h.

- -
-
- -

◆ setZoneInfoStore()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::ExtendedZoneProcessorTemplate< D >::setZoneInfoStore (const typename D::ZoneInfoStore * zoneInfoStore)
-
-inline
-
- -

Set the zone info store at runtime.

-

This is an advanced usage where the custom subclass of ExtendedZoneProcessorTemplate does not know its zone info store at compile time, so it must be set at runtime through this method.

- -

Definition at line 287 of file ExtendedZoneProcessor.h.

- -
-
- -

◆ setZoneKey()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::ExtendedZoneProcessorTemplate< D >::setZoneKey (uintptr_t zoneKey)
-
-inlineoverridevirtual
-
- -

Set the opaque zoneKey of this object to a new value, reseting any internally cached information.

-

If the new zoneKey is the same as the old zoneKey, the cache remains valid.

-

Normally a ZoneProcessor object is associated with a single TimeZone. However, the ZoneProcessorCache will sometimes "take over" a ZoneProcessor from another TimeZone using this method. The other TimeZone will take back control of the ZoneProcessor if needed. To avoid bouncing the ownership of this object repeatedly, the application should configure the ZoneProcessorCache with enough ZoneProcessors to handle the usage pattern of the given application.

-

This method should be considered to be private, to be used only by the TimeZone and ZoneProcessorCache classes. I had to make it public because it got too ugly to maintain the friend list in C++.

-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Implements ace_time::ZoneProcessor.

- -

Definition at line 267 of file ExtendedZoneProcessor.h.

- -
-
-

Member Data Documentation

- -

◆ kMaxTransitions

- -
-
-
-template<typename D >
- - - - - -
- - - - -
const uint8_t ace_time::ExtendedZoneProcessorTemplate< D >::kMaxTransitions = 8
-
-static
-
- -

Max number of Transitions required for all Zones supported by this class.

-

This includes the most recent prior Transition. The max transitions for each Zone is given by the kZoneBufSize{zoneName} constant in the generated zonedb[x]/zone_infos.h file. The maximum over all zones is given in the 'MaxBufSize' comment in the zone_infos.h file. Currently that overall maximum is 7, which has been verified by various tests (e.g. HinnantExtendedTest, DateUtilExtendedTest, JavaExtendedTest, and AcetzExtendedTest) in the AceTimeValidation project. We set this to one more than 7 for safety.

- -

Definition at line 94 of file ExtendedZoneProcessor.h.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__coll__graph.map b/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__coll__graph.map deleted file mode 100644 index 879baf126..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__coll__graph.md5 b/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__coll__graph.md5 deleted file mode 100644 index 3bab3eef4..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -1669fb5ef546e700b19c71ce717ba4c3 \ No newline at end of file diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__coll__graph.png b/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__coll__graph.png deleted file mode 100644 index af2f0c5a2cc0bc0c5b06756a76cd17f07cfb495f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5933 zcmchbi940=*2lMbld#nevCWxhg?`4&Wl9K@*(RBiG4njn68$8kLS&wY%u^CdY*VIE z=6Rmp<-F&-*E#18crPv+*Yn)Z{oHG<@A`aK#BEKL^JJIF5D3Kio2rU;5C}Xx_}vdl z3_n-P-1p#v*j!CT5pjCyIha_ zqr8TnOeJMN$tSOx%yGj>iJ65Gw7%1vHT@NHm*}(Ty8;aAnaF?aLd^?EM04YziYNWWgsz23h23? z3lXC3?(R>qH&lzXQGbGNCUHy``5ouu$^!%O35kffIjQ{X>!px{fs9PUg+}!842})k zm#Wl#e0-|w>Snj*zY&z$eHGUwG^Tc*`;2FyzNBqpLP|%x>~}8f$sQc_l4lFu+}eM zC_+O+krWil3JL^>%#R-#r>CcjOG=v8rdx&mPQ0Hze}2noZp^VUrlm!`e)oqL6_PMj z1WV>$m_zX8%NIDNCfHq8P7VntC+CCe$9P^lO99Er=+N`@p~<}Z^6b=3o2otK7M&FJ z2MhVqGOMcW)GR_mREWnvyHL5g^|(PjJw1=#>F%cH=J+}~I(+vl$>W%0FZEzBm>9z{ ztLCOAM7BztvV%k6XF5p{A)%%(>5}VP^ExYYwAR+vcH`A3Mn=Z|;o(l%lXc3x7e7a0 zy>?eZ($g_6uCBs92QC-U=b&E`V zVt6=3BTX#EsLn0s``}>ln>Xw`eSRlN!X3ERN>QnCag=ply8`+7`4&umN5Wpm+rx(U z@23s^s;R9lUHy2dX*WvmSl>*6`KwJjL&Ax*tfB&&B4A{$l_7&&ZP;b}Hau+2d$+(e zj#1iN-0_E{m6a8rv~+r!%Ds1cdmeLBQ%wyYH#cKtPWCLUY;3we_4KsA>w9@UsW)9R zMNe0^_;7bsR7*=s%zfoS$@tLF&{9jtxq_^$fcExw;R_coa8O5Be)_Y#+}qOHTC;2W z@S!PwfIrsS+IiK{%BsWncw2vHbd*Qu-A9K`dT|FKS65fJoh8Ge!NE4jN6Nx%{f_p837X&xu%B=x$ieU5ONxty z-W3(~@$mB2?8Ze!C0$RF8e3nPs8iS1uNvFt%+na!9xP#M5XMC|#miv2y1M+MqRwq? zZ81|JsTdh!H#VLini{-zGvB`_BOwVB*i3%*41wU|=dXz}fGY9W_(=+j{7!uy)I1?Vuvd21zWQs&f{Wh8g2ZyWlgW>nnHd4n)4nuP1{D?tu~-@Z zJT!F4-rm02`L|}urWHLseQs{<*_$aVD>oRs9qw1KcBhdd3QZa*WMyUB+S|>hTSAOR zRbm+;hKBBrH~M9a1vpNA?5*JDvGDMapr)qww4*^1idcJ|9MwD+b7~GGGAK61Q)ETm z(a{mM=paXi$p88CXA8%%=(&K4%d+cYB)xj=+6{JUGhDG*e}BImNaDx6nRA5`qobEM zfA@7Bt~SPtQ8LN2)j!=Vw(O=>R91GYBlq(1`kX3Ez{0{pMHa%v z%d22uK2pr(;&`CST%6HQ07j1IsN|l=6$m-md<>llM z)>o>&p~1}2F%I<2!_yNVLBS*w4KLo**+~L%M4mt2zVWLk zD=&}Rb!2hqLufG0R#V1|7GUN`0mdnep{+XXQYY8Sj z)8V&oufTFr%yd_Fpzo3=zmN?t`!-wI5ANTO*=jZ#seM`c<3*Wx_3`tAR z&?xru)hh}=KR@zBiQuiYovgMXEbb^?nwmM7ix?fC3As8v`=JUBQ{PQW{-Q&duVlXo zWaIp^;59M~DOHQ}zxSV4yxe(r-3VV>2CcN1dV1EDvaNj@HaU%TpTrRP__$(KremN! z3=9pqC5f&3(RlD&tjg4RG}8Wqx?SO3#(W8>^43B{Ya$hE-+FG{EFM?|z1w{>)G zxVa^4z35Vlh(u@|uPLB(^@tFJ5AE$0JP(wxDy+BUmHcx=Ll%kTq zb!k~tW>(gy{n+O34-%eRtnSV6YXoRKMjLxHi)0;=pWjG}X!QG#OzZw;6^Rg9TMV|e zk#RaMXEY%iQKYS}f8*}mX~Y%QAUwF~={h>|XZ|TXoP{%omY+ZJP!`=aCH6-dm3T5c zElixmIToRDze)fT5a5t1p?&1X?78ui&iJX4Bl9fkN|tu8l(pG9ih{v_*u=ydtHN?i zK8N7nnMFm(pXyaMs~oaV8^s*_I~Vz1VgD!E{6AiXS!CzukHO0%(P9h@-AoM)t@-NQ zZ(+*l>+72?yPrkk`Jdo+UOCS(9E&@ z4>W`Q=P=6pl0)-@M!=2r74fKdQ8L|L_}V zGZM`!`hdYX(i}Sfnk~Qh%j+*em?KU=4SglX|Ek}Gcz-xYu7?zVtW0t zHYTevF)^x|njL^V@rj9n)2(5Y2BBHXEJ{;JS~5349)Z1}0SH6)u0LF<1As#KcXTLw zZ}y5yxUVoQEG`0a1;ocwJ+!d_ogoEKll7MY!%92+!vUYqMp3wydbhldCZ44j&o30xd5njQLZA8u39)xB6~+z=TZ zO@38O%zUW85QuGR<5thJzyFSW`I6zyn>Q|p4-%otuyAo9^Yx2DQ&MOUrof<}v$!&A z%9)v&+U1mTb$E}*?(UtAjmM$D5Tz2?|n{l$7l4|IS!n^*c?oovgH{cbKRR!AQDI zL7(dUGm!1Hzkzl55gAFw&d$y(EsX)Z3XhE?wosoD0aPPbQBhG;Qeu&nHJPz#dLe3E zY}I?&5{qr_?j}u0NPte%S~ck#1-$rD(w!nlE926lmWfDrOIH^%P0U_iULGG>L_%6x z6mY(xii(1g(%Vko?!fL?ya~z4M2?P*c4L(>wsA2rA)%qfckbLN_BnJrS~NMO z?zysj{I+*;Ab^16@odL=yUCB3d-v{*Z}H!+JR@~T6xCa|MqUA z&GioqG{4u&zpbqukeEmv^6MVl50T0G@F7Ng()$7s6q1xQ;NwS`f`Wpx)VyEifakCN z;>Xk9n3BeW^b7(yD=Q8uY3X*xW&N*b(B(3J$8NNoG$JAb!q5?pV)OhgxabL`*P1G9 zk(rklA$z*tmkap>u3&AdnE=RPHakwH1^fz>WdL}NPe&(T=T`shtl6AP^&}z^7!g4#ub|*G-9jYgxuyDu$+NBqDr9D=IjDbVC^RYQg18R= z3az9YANZy>R*BY=U{pc?{9IgIpikg|-8nnQe^Hx)G1+y@-messcqlC3V=0gcgpk9y z1VRpry>e!~%*+O`GFi8gQ|+Ov1*N6bJ3Bj(;hb(Vxv&@BLONRZr{OA3c1a-)BBeg3Qn=U!f3{!d3pd-?K{qHDs! z3Dk0tkTPf`Wnwp7R;vlaP?4rlsxvFAGvW?KUEO^ytyrd`^Zr zh%LZzKxL(vh^T1IH#|{M(QrjpDUUV(MRiH|14)Q)X>Hxw)RZ~gb5{|)r2a#_)HIq! zMuri*_8!nM$S&#L-rnQo^usHT92OQ9X9rkOQ86A?;KTX+*D;fn2eXqeqT26N#@yU| zt(k<$bhO;Y=tpZ?8zJCu?)&#MZc|Xj0vT6J3khu6tBwzX`Cfpo{~UFnn3$MeS)u5l z-PqWmx^yYDpn&h;qenac_Zr9Cj~pC`Ey!zYYj5l8cdj;`3W(k7hJ|5oxC&buDB*$r ze*f9dxY?uqO(9|7=D|Fj60o$-Qc|*OYUqZGOjKN4uD+7>6L1}2Q;u!|BpetT;&2pi z`=`=2HOV==`qKAy|8Vj&c46U>9j+J;^q~bb@rs-3SdGa>A?LYs=c4JwDIoD7yF+es zwKWHkU{}h@_ZJryihYkg&-nM`CEW6pz^$@#;p0#I8Du zgT$M!e0IOSRfC44tfWK)Mwf*;qW|kx`~+3@5{)0*gEUW=NK;?DV3ClZ&G0?oekJ2W z1{!y^IEenNahcPsGQ(dkNC>Ecj?M)sDXC)5?MDc~kA@Q7dqU7u!k`3jBO_-XeqmwZ zP6~#K%D+$MkQ{{hv5Si?P8xs1^3kxb!KgO09%y?B&!30-9PZpuQ#%Lq0*}MxsuFC^ zCH5;<;6M3ezTIiu92~@T?yJhCrp)fHr{EPub`8HC?eFhH2ZC=P%#2z-ub$`psn?x3 zAoj(MlQQ0r0B3^;siz{Kv6jX;kvM^g4>UK=#O^Oi$=RLdvGB;q7AO-lEH)%HmG+^n zt(slZm893C203c^z}#!QyQ>=wf-IH~$4as1qGMv}jtZO9+{c7i-nbJlV}g>ClaWZ| zpUU2`F?wjHOjC-%^)HF-Q9`1k**b~Ff4pjMCldhJQ<)Bg<=-#@o{*eAT zH^&Oi5$tcOv{&Wl#@ip>y$elXQ!)SkUhm8h@2pHj*?fEF>P0g?UgMmQloSNU&Dlb> zzP=tjm%!{0^Vi#`KP2nx>#&O((B{tOJ&ni9jv(5~ckWPEWoKM>CI+!@2a~l9viPL+ zM&t3$eV{lNDJh1+!a{SV0*lUA7BR6)v9Ymx>zzy}H2V9j!9H|ugug0#OS+_cvFjoX z3k*zmmPT;(Peplncxqo#sP-7?=mhEHXtIcl(?FEg*4CQdX`}%v?a54bEd2Tva)DFx zY-R_I+-MY}0Yyz6*m(3ykc*E`(b$;r43Va${Lh-x+2H8gx5aOz-RE4)ZZ}(EmWR?3 zVwORAr0tGOGx+WO@H<*7_zy!xfu^8NoUh9sKlSOaSg}5 zdz@OYRF^x!g|2sVW-wp7h6cbnL#VG`zaG@vZQx@_xeQE{k8aYB;0iZcifd}FLo2Q8 zWwEieHgN`NZG}Z^YHA=e!*X&s!6^ng&30_pP?i5?60=Kf8;($9g<;k-Jm3rumzI}N zC={NSR-X)i$`K_Rk7%(^J3L)wg)~H7J^inWp2asYON0kvcR;$RU_RLnqM&`}PT=_X zgSL(ic>pMwBsPP|ZVPStGy{tQzlA0z>s2kkeft*Zx;alL2aN7{K|w)wPR?)F@Q5JW zi5BAq9F}7-lA*l%g_$KKC^&@N!on3dTw!@ay8jUy8ipHG3=Gj*TP{G^uiwAFHJ4Tg zBBXuyZYV&~S=wE_THeVP0ql8IT$~NU52K0ZQfyByf{PYIx)pRnyG)EYcZpB#$rF*? zWjS!lRWw9cx{1V1Z0lLapaT3u3Iq1qNSrV8?Sc4RXJv~9TJYJEG3*MWFy1E zGc%d@4iBAWHE*dp4sglKt5*HPAh~FmhJ!AG9o|TM&GxVH?|*qD&m%W~Vk@eRjd=%u zgA_^Po}M13mGK(9b4o}$2{x73;Iy - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__inherit__graph.md5 b/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__inherit__graph.md5 deleted file mode 100644 index 3bab3eef4..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -1669fb5ef546e700b19c71ce717ba4c3 \ No newline at end of file diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__inherit__graph.png b/docs/html/classace__time_1_1ExtendedZoneProcessorTemplate__inherit__graph.png deleted file mode 100644 index af2f0c5a2cc0bc0c5b06756a76cd17f07cfb495f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5933 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 - - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessor__coll__graph.md5 b/docs/html/classace__time_1_1ExtendedZoneProcessor__coll__graph.md5 deleted file mode 100644 index 009a0715c..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessor__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b5e3b98bb33fc165e3b1f16e3cbc5619 \ No newline at end of file diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessor__coll__graph.png b/docs/html/classace__time_1_1ExtendedZoneProcessor__coll__graph.png deleted file mode 100644 index 83ffbbaab13c7ee14526708253a604cb9bdcc7ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7826 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 - - - - diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessor__inherit__graph.md5 b/docs/html/classace__time_1_1ExtendedZoneProcessor__inherit__graph.md5 deleted file mode 100644 index 009a0715c..000000000 --- a/docs/html/classace__time_1_1ExtendedZoneProcessor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b5e3b98bb33fc165e3b1f16e3cbc5619 \ No newline at end of file diff --git a/docs/html/classace__time_1_1ExtendedZoneProcessor__inherit__graph.png b/docs/html/classace__time_1_1ExtendedZoneProcessor__inherit__graph.png deleted file mode 100644 index 83ffbbaab13c7ee14526708253a604cb9bdcc7ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7826 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 - - - - - - -AceTime: Member List - - - - - - - - - -

-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::FindResult Member List
-
- - - - - diff --git a/docs/html/classace__time_1_1FindResult.html b/docs/html/classace__time_1_1FindResult.html deleted file mode 100644 index 8d3903028..000000000 --- a/docs/html/classace__time_1_1FindResult.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - - -AceTime: ace_time::FindResult Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::FindResult Class Reference
-
-
- -

Result of a search for transition at a specific epochSeconds or a specific LocalDateTime. - More...

- -

#include <ZoneProcessor.h>

- - - - - - - - - - - - - - - - - - - - - - - -

-Public Attributes

uint8_t type = kTypeNotFound
 Result of the findByEpochSeconds() or findByLocalDateTime() search methods. More...
 
uint8_t fold = 0
 For findByLocalDateTime(), when type==kTypeOverlap, this is a copy of the requested LocalDateTime::fold parameter. More...
 
-int32_t stdOffsetSeconds = 0
 STD offset of the resulting OffsetDateTime.
 
-int32_t dstOffsetSeconds = 0
 DST offset of the resulting OffsetDateTime.
 
int32_t reqStdOffsetSeconds = 0
 STD offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(), or the LocalDateTime requested by findByLocalDateTime(). More...
 
int32_t reqDstOffsetSeconds = 0
 DST offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(), or the LocalDateTime requested by findByLocalDateTime(). More...
 
const char * abbrev = ""
 Pointer to the abbreviation stored in the transient Transition::abbrev variable. More...
 
- - - - - - - - - -

-Static Public Attributes

-static const uint8_t kTypeNotFound = 0
 
-static const uint8_t kTypeExact = 1
 
-static const uint8_t kTypeGap = 2
 
-static const uint8_t kTypeOverlap = 3
 
-

Detailed Description

-

Result of a search for transition at a specific epochSeconds or a specific LocalDateTime.

-

More than one transition can match if the LocalDateTime occurs during an overlap (e.g. during a "fall back" from DST to STD).

- -

Definition at line 23 of file ZoneProcessor.h.

-

Member Data Documentation

- -

◆ abbrev

- -
-
- - - - -
const char* ace_time::FindResult::abbrev = ""
-
- -

Pointer to the abbreviation stored in the transient Transition::abbrev variable.

-

The calling code should copy the string into a local buffer quickly, before any other timezone calculations are performed.

- -

Definition at line 115 of file ZoneProcessor.h.

- -
-
- -

◆ fold

- -
-
- - - - -
uint8_t ace_time::FindResult::fold = 0
-
- -

For findByLocalDateTime(), when type==kTypeOverlap, this is a copy of the requested LocalDateTime::fold parameter.

-

For all other resulting types, including kTypeGap, this will be set to 0.

-

For findByEpochSeconds(), when type==kTypeOverlap, this defines whether the corresponding LocalDateTime occurs the first time (0) or the second time (1). For all other resulting type, this will be set to 0.

- -

Definition at line 76 of file ZoneProcessor.h.

- -
-
- -

◆ reqDstOffsetSeconds

- -
-
- - - - -
int32_t ace_time::FindResult::reqDstOffsetSeconds = 0
-
- -

DST offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(), or the LocalDateTime requested by findByLocalDateTime().

-

This may be different than the dstOffsetSeconds when findByLocalDateTime() returns kTypeGap. For all other resulting types from findByEpochSeconds(), and for all resulting types from findByLocalDateTime(), the reqStdOffsetSeconds will be the same as dstOffsetSeconds.

- -

Definition at line 108 of file ZoneProcessor.h.

- -
-
- -

◆ reqStdOffsetSeconds

- -
-
- - - - -
int32_t ace_time::FindResult::reqStdOffsetSeconds = 0
-
- -

STD offset of the Transition which matched the epochSeconds requested by findByEpochSeconds(), or the LocalDateTime requested by findByLocalDateTime().

-

This may be different than the stdOffsetSeconds when findByLocalDateTime() returns kTypeGap. For all other resulting types from findByEpochSeconds(), and for all resulting types from findByLocalDateTime(), the reqStdOffsetSeconds will be the same as stdOffsetSeconds.

- -

Definition at line 95 of file ZoneProcessor.h.

- -
-
- -

◆ type

- -
-
- - - - -
uint8_t ace_time::FindResult::type = kTypeNotFound
-
- -

Result of the findByEpochSeconds() or findByLocalDateTime() search methods.

-

There are 2 slightly different cases:

-

Case 1: findByLocalDateTime()

    -
  • kTypeNotFound:
      -
    • No matching Transition found.
    • -
    -
  • -
  • kTypeExact:
      -
    • A single Transition found.
    • -
    -
  • -
  • kTypeGap:
      -
    • LocalDateTime occurs in a gap.
    • -
    • LocalDateTime::fold=0 returns the earlier transition in reqStdOffsetSeconds and reqDstOffsetSeconds, and the later transition in stdOffsetSeconds and dstOffsetSeconds.
    • -
    • LocalDateTime::fold=1 returns the later transition in reqStdOffsetSeconds and reqDstOffsetSeconds, and the earlier transition in stdOffsetSeconds and dstOffsetSeconds.
    • -
    -
  • -
  • kTypeOverlap: -
  • -
-

Case 2: findByEpochSeconds()

    -
  • kTypeNotFound:
      -
    • If no matching Transition found.
    • -
    -
  • -
  • kTypeExact:
      -
    • Only a single Transition found.
    • -
    -
  • -
  • kTypeGap:
      -
    • Cannot occur.
    • -
    -
  • -
  • kTypeOverlap:
      -
    • A single Transition found, but the epochSeconds occurs during an overlap where two local times can occur.
    • -
    • The fold parameter contains 0 or 1 to indicate the earlier or later resulting OffsetDateTime.
    • -
    -
  • -
- -

Definition at line 65 of file ZoneProcessor.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneProcessor.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1LocalDate-members.html b/docs/html/classace__time_1_1LocalDate-members.html deleted file mode 100644 index 470f4a008..000000000 --- a/docs/html/classace__time_1_1LocalDate-members.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::LocalDate Member List
-
-
- -

This is the complete list of members for ace_time::LocalDate, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
compareTo(const LocalDate &that) constace_time::LocalDateinline
day() constace_time::LocalDateinline
day(uint8_t day)ace_time::LocalDateinline
dayOfWeek() constace_time::LocalDateinline
daysInMonth(int16_t year, uint8_t month)ace_time::LocalDateinlinestatic
daysUntil(uint8_t month, uint8_t day) constace_time::LocalDateinline
forComponents(int16_t year, uint8_t month, uint8_t day)ace_time::LocalDateinlinestatic
forDateString(const char *dateString)ace_time::LocalDateinlinestatic
forDateStringChainable(const char *&dateString)ace_time::LocalDateinlinestatic
forEpochDays(int32_t epochDays)ace_time::LocalDateinlinestatic
forEpochSeconds(acetime_t epochSeconds)ace_time::LocalDateinlinestatic
forError()ace_time::LocalDateinlinestatic
forUnixDays(int32_t unixDays)ace_time::LocalDateinlinestatic
forUnixSeconds64(int64_t unixSeconds)ace_time::LocalDateinlinestatic
isError() constace_time::LocalDateinline
isLeapYear(int16_t year)ace_time::LocalDateinlinestatic
isYearValid(int16_t year)ace_time::LocalDateinlinestatic
kFridayace_time::LocalDatestatic
kInvalidEpochDaysace_time::LocalDatestatic
kInvalidEpochSecondsace_time::LocalDatestatic
kInvalidUnixSeconds64ace_time::LocalDatestatic
kInvalidYearace_time::LocalDatestatic
kMaxEpochSecondsace_time::LocalDatestatic
kMaxYearace_time::LocalDatestatic
kMinEpochSecondsace_time::LocalDatestatic
kMinYearace_time::LocalDatestatic
kMondayace_time::LocalDatestatic
kSaturdayace_time::LocalDatestatic
kSundayace_time::LocalDatestatic
kThursdayace_time::LocalDatestatic
kTuesdayace_time::LocalDatestatic
kWednesdayace_time::LocalDatestatic
LocalDate()=defaultace_time::LocalDateexplicit
LocalDate(const LocalDate &)=default (defined in ace_time::LocalDate)ace_time::LocalDate
month() constace_time::LocalDateinline
month(uint8_t month)ace_time::LocalDateinline
operator=(const LocalDate &)=default (defined in ace_time::LocalDate)ace_time::LocalDate
operator==(const LocalDate &a, const LocalDate &b)ace_time::LocalDatefriend
printTo(Print &printer) constace_time::LocalDate
toEpochDays() constace_time::LocalDateinline
toEpochSeconds() constace_time::LocalDateinline
toUnixDays() constace_time::LocalDateinline
toUnixSeconds64() constace_time::LocalDateinline
year() constace_time::LocalDateinline
year(int16_t year)ace_time::LocalDateinline
- - - - diff --git a/docs/html/classace__time_1_1LocalDate.html b/docs/html/classace__time_1_1LocalDate.html deleted file mode 100644 index 9096a1cb9..000000000 --- a/docs/html/classace__time_1_1LocalDate.html +++ /dev/null @@ -1,866 +0,0 @@ - - - - - - - -AceTime: ace_time::LocalDate Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
- -
- -

The date (year, month, day) representing the date without regards to time zone. - More...

- -

#include <LocalDate.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

LocalDate ()=default
 Default constructor does nothing.
 
-int16_t year () const
 Return the year.
 
-void year (int16_t year)
 Set the year.
 
-uint8_t month () const
 Return the month with January=1, December=12.
 
-void month (uint8_t month)
 Set the month.
 
-uint8_t day () const
 Return the day of the month.
 
-void day (uint8_t day)
 Set the day of the month.
 
uint8_t dayOfWeek () const
 Calculate the day of week given the (year, month, day). More...
 
-bool isError () const
 Return true if any component indicates an error condition.
 
int32_t toEpochDays () const
 Return number of days since the current epoch year sCurrentEpochYear. More...
 
-int32_t toUnixDays () const
 Return the number of days since Unix epoch (1970-01-01 00:00:00).
 
acetime_t toEpochSeconds () const
 Return the number of seconds since the currentEpochYear(). More...
 
-int64_t toUnixSeconds64 () const
 Return the number of seconds since Unix epoch (1970-01-01 00:00:00).
 
int16_t daysUntil (uint8_t month, uint8_t day) const
 Calculate number of days from current LocalDate to the next target (month, day). More...
 
int8_t compareTo (const LocalDate &that) const
 Compare 'this' LocalDate to 'that' LocalDate, returning (<0, 0, >0) according to whether 'this' occurs (before, same as, after) 'that'. More...
 
void printTo (Print &printer) const
 Print LocalDate to 'printer' in ISO 8601 format, along with the day of week. More...
 
LocalDate (const LocalDate &)=default
 
-LocalDateoperator= (const LocalDate &)=default
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

-static bool isLeapYear (int16_t year)
 True if year is a leap year.
 
-static uint8_t daysInMonth (int16_t year, uint8_t month)
 Return the number of days in the given (year, month).
 
-static bool isYearValid (int16_t year)
 Return true if year is within the range of [0,10000]
 
static LocalDate forComponents (int16_t year, uint8_t month, uint8_t day)
 Factory method using separated year, month and day fields. More...
 
static LocalDate forEpochDays (int32_t epochDays)
 Factory method using the number of days since the current epoch (usually 2000-01-01). More...
 
-static LocalDate forUnixDays (int32_t unixDays)
 Factory method using the number of days since Unix epoch 1970-01-01.
 
static LocalDate forEpochSeconds (acetime_t epochSeconds)
 Factory method using the number of seconds since the current epoch year given by currentEpochYear(). More...
 
static LocalDate forUnixSeconds64 (int64_t unixSeconds)
 Factory method that takes the 64-bit number of seconds since Unix Epoch of 1970-01-01. More...
 
static LocalDate forDateString (const char *dateString)
 Factory method. More...
 
static LocalDate forDateStringChainable (const char *&dateString)
 Variant of forDateString() that updates the pointer to the next unprocessed character. More...
 
static LocalDate forError ()
 Factory method that returns a LocalDate which represents an error condition. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const int16_t kInvalidYear = INT16_MIN
 Sentinel year which indicates one or more of the following conditions: More...
 
static const int16_t kMinYear = 0
 The smallest year that is expected to be handled by LocalDate. More...
 
static const int16_t kMaxYear = 10000
 The largest year that is expected to be handled by LocalDate. More...
 
-static const int32_t kInvalidEpochDays = INT32_MIN
 Sentinel epochDays which indicates an error.
 
-static const int32_t kInvalidEpochSeconds = INT32_MIN
 Sentinel epochSeconds which indicates an error.
 
-static const int64_t kInvalidUnixSeconds64 = INT64_MIN
 Sentinel unixSeconds64 which indicates an error.
 
static const acetime_t kMinEpochSeconds = INT32_MIN + 1
 Minimum valid epochSeconds. More...
 
static const acetime_t kMaxEpochSeconds = INT32_MAX
 Maximum valid epochSeconds. More...
 
-static const uint8_t kMonday = 1
 Monday ISO 8601 number.
 
-static const uint8_t kTuesday = 2
 Tuesday ISO 8601 number.
 
-static const uint8_t kWednesday = 3
 Wednesday ISO 8601 number.
 
-static const uint8_t kThursday = 4
 Thursday ISO 8601 number.
 
-static const uint8_t kFriday = 5
 Friday ISO 8601 number.
 
-static const uint8_t kSaturday = 6
 Saturday ISO 8601 number.
 
-static const uint8_t kSunday = 7
 Sunday ISO 8601 number.
 
- - - - -

-Friends

-bool operator== (const LocalDate &a, const LocalDate &b)
 Return true if two LocalDate objects are equal in all components.
 
-

Detailed Description

-

The date (year, month, day) representing the date without regards to time zone.

-

Normally, the range of the year field is [1,9999]. Occasionally, the year 0 is used to indicate -Infinity, with the month and day fields ignored. And the year 10000 is used to indicate +Infinity, with the month and day fields ignored. The value of INT16_MIN (-32768) is used to indicate an error condition.

-

The toEpochDays() and fromEpochDays() provides conversions of the (year, month, day) tuple to the number of days since the "epoch". The default epoch year is 2000, which makes the epoch date-time be 2000-01-01T00:00:00.

-

The epoch year can be changed using the static currentEpochYear() method. This is useful for dates larger than 2068-01-19T03:14:07, which is the largest date-time that can be represented using an int32_t type to hold the number of seconds since the epoch. For example, calling currentEpochYear(2100) will set the epoch to be 2100-01-01T00:00:00, so that dates from 2031-12-13 20:45:52Z to 2168-01-20T03:14:07 can be captured.

-

The dayOfWeek (1=Monday, 7=Sunday, per ISO 8601) is calculated from the date fields.

-

Parts of this class were inspired by the java.time.LocalDate class of Java 11 (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/LocalDate.html).

- -

Definition at line 46 of file LocalDate.h.

-

Member Function Documentation

- -

◆ compareTo()

- -
-
- - - - - -
- - - - - - - - -
int8_t ace_time::LocalDate::compareTo (const LocalDatethat) const
-
-inline
-
- -

Compare 'this' LocalDate to 'that' LocalDate, returning (<0, 0, >0) according to whether 'this' occurs (before, same as, after) 'that'.

-

If either this->isError() or that.isError() is true, the behavior is undefined.

- -

Definition at line 406 of file LocalDate.h.

- -
-
- -

◆ dayOfWeek()

- -
-
- - - - - -
- - - - - - - -
uint8_t ace_time::LocalDate::dayOfWeek () const
-
-inline
-
- -

Calculate the day of week given the (year, month, day).

-

Idea borrowed from https://github.com/evq/utz. No validation of year, month or day is performed. If this is found to be too slow, then consider caching the results.

- -

Definition at line 324 of file LocalDate.h.

- -
-
- -

◆ daysUntil()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int16_t ace_time::LocalDate::daysUntil (uint8_t month,
uint8_t day 
) const
-
-inline
-
- -

Calculate number of days from current LocalDate to the next target (month, day).

-

For example, setting (month, day) of (12, 25) returns number of days until the next Christmas. This function should always return an integer in the interval [0, 365]. In a normal year, the maximum is 364. During a leap year, the maximum is 365.

- -

Definition at line 391 of file LocalDate.h.

- -
-
- -

◆ forComponents()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static LocalDate ace_time::LocalDate::forComponents (int16_t year,
uint8_t month,
uint8_t day 
)
-
-inlinestatic
-
- -

Factory method using separated year, month and day fields.

-

Returns LocalDate::forError() if the parameters are out of range.

-
Parameters
- - - - -
year[0,10000]
monthmonth with January=1, December=12
dayday of month [1-31]
-
-
- -

Definition at line 153 of file LocalDate.h.

- -
-
- -

◆ forDateString()

- -
-
- - - - - -
- - - - - - - - -
static LocalDate ace_time::LocalDate::forDateString (const char * dateString)
-
-inlinestatic
-
- -

Factory method.

-

Create a LocalDate from the ISO 8601 date string. If the string cannot be parsed, then isError() on the constructed object returns true, but the data validation is very weak. Year should be between 0001 and 9999. Created for mostly for debugging purposes not for production use.

-
Parameters
- - -
dateStringthe date in ISO 8601 format (yyyy-mm-dd)
-
-
- -

Definition at line 246 of file LocalDate.h.

- -
-
- -

◆ forDateStringChainable()

- -
-
- - - - - -
- - - - - - - - -
static LocalDate ace_time::LocalDate::forDateStringChainable (const char *& dateString)
-
-inlinestatic
-
- -

Variant of forDateString() that updates the pointer to the next unprocessed character.

-

This allows chaining to another forXxxStringChainable() method.

-

This method assumes that the dateString is sufficiently long.

- -

Definition at line 260 of file LocalDate.h.

- -
-
- -

◆ forEpochDays()

- -
-
- - - - - -
- - - - - - - - -
static LocalDate ace_time::LocalDate::forEpochDays (int32_t epochDays)
-
-inlinestatic
-
- -

Factory method using the number of days since the current epoch (usually 2000-01-01).

-

If epochDays is kInvalidEpochDays, isError() will return true.

-
Parameters
- - -
epochDaysnumber of days since the current epoch
-
-
- -

Definition at line 166 of file LocalDate.h.

- -
-
- -

◆ forEpochSeconds()

- -
-
- - - - - -
- - - - - - - - -
static LocalDate ace_time::LocalDate::forEpochSeconds (acetime_t epochSeconds)
-
-inlinestatic
-
- -

Factory method using the number of seconds since the current epoch year given by currentEpochYear().

-

The default is 2000-01-01, but can be changed using currentEpochYear(epochYear).

-

The number of seconds from midnight of the given day is thrown away. For negative values of epochSeconds, the method to rounds down to the nearest day.

-

If epochSeconds is kInvalidEpochSeconds, isError() will return true.

-
Parameters
- - -
epochSecondsnumber of seconds since the current epoch
-
-
- -

Definition at line 205 of file LocalDate.h.

- -
-
- -

◆ forError()

- -
-
- - - - - -
- - - - - - - -
static LocalDate ace_time::LocalDate::forError ()
-
-inlinestatic
-
- -

Factory method that returns a LocalDate which represents an error condition.

-

The isError() method will return true.

- -

Definition at line 291 of file LocalDate.h.

- -
-
- -

◆ forUnixSeconds64()

- -
-
- - - - - -
- - - - - - - - -
static LocalDate ace_time::LocalDate::forUnixSeconds64 (int64_t unixSeconds)
-
-inlinestatic
-
- -

Factory method that takes the 64-bit number of seconds since Unix Epoch of 1970-01-01.

-

Similar to forEpochSeconds(), the seconds corresponding to the partial day are truncated down towards the smallest whole day. Valid over the entire range of year [0,10000] due to the use of int64_t operations.

- -

Definition at line 224 of file LocalDate.h.

- -
-
- -

◆ printTo()

- -
-
- - - - - - - - -
void ace_time::LocalDate::printTo (Print & printer) const
-
- -

Print LocalDate to 'printer' in ISO 8601 format, along with the day of week.

-

This class does not implement the Printable interface to avoid increasing the size of the object from the additional virtual function.

- -

Definition at line 58 of file LocalDate.cpp.

- -
-
- -

◆ toEpochDays()

- -
-
- - - - - -
- - - - - - - -
int32_t ace_time::LocalDate::toEpochDays () const
-
-inline
-
- -

Return number of days since the current epoch year sCurrentEpochYear.

-

By default, the current epoch year is 2000 so the epoch is 2000-01-01 00:00:00 UTC).

-

Returns kInvalidEpochDays if isError() is true, which allows round trip conversions of forEpochDays() and toEpochDays() even when isError() is true.

- -

Definition at line 352 of file LocalDate.h.

- -
-
- -

◆ toEpochSeconds()

- -
-
- - - - - -
- - - - - - - -
acetime_t ace_time::LocalDate::toEpochSeconds () const
-
-inline
-
- -

Return the number of seconds since the currentEpochYear().

-

Returns kInvalidEpochSeconds if isError() is true or if epochSeconds is out of range.

- -

Definition at line 371 of file LocalDate.h.

- -
-
-

Member Data Documentation

- -

◆ kInvalidYear

- -
-
- - - - - -
- - - - -
const int16_t ace_time::LocalDate::kInvalidYear = INT16_MIN
-
-static
-
- -

Sentinel year which indicates one or more of the following conditions:

-
    -
  • an error condition, or
  • -
  • a year that 'does not exist', or
  • -
  • a year smaller than any valid year.
  • -
-

Some algorithms in ExtendedZoneProcessor assume that this value is smaller than any valid year, i.e. smaller than kMinYear.

- -

Definition at line 58 of file LocalDate.h.

- -
-
- -

◆ kMaxEpochSeconds

- -
-
- - - - - -
- - - - -
const acetime_t ace_time::LocalDate::kMaxEpochSeconds = INT32_MAX
-
-static
-
- -

Maximum valid epochSeconds.

-

Use LocalDate::forEpochSeconds() or LocalDateTime::forEpochSeconds() to obtain the maximum instance of those classes.

- -

Definition at line 102 of file LocalDate.h.

- -
-
- -

◆ kMaxYear

- -
-
- - - - - -
- - - - -
const int16_t ace_time::LocalDate::kMaxYear = 10000
-
-static
-
- -

The largest year that is expected to be handled by LocalDate.

-

The ZoneRule instances in the zoneinfo databases (zonedb, zonedbx) have a maximum untilYear value of 32767, so we have to make sure that we stay below that limit.

- -

Definition at line 78 of file LocalDate.h.

- -
-
- -

◆ kMinEpochSeconds

- -
-
- - - - - -
- - - - -
const acetime_t ace_time::LocalDate::kMinEpochSeconds = INT32_MIN + 1
-
-static
-
- -

Minimum valid epochSeconds.

-

The smallest int32, INT32_MIN, is used to indicate an invalid epochSeconds. Use LocalDate::forEpochSeconds() or LocalDateTime::forEpochSeconds() to obtain the minimum instance of those classes.

- -

Definition at line 95 of file LocalDate.h.

- -
-
- -

◆ kMinYear

- -
-
- - - - - -
- - - - -
const int16_t ace_time::LocalDate::kMinYear = 0
-
-static
-
- -

The smallest year that is expected to be handled by LocalDate.

-

The algorithms in the EpochConverterHinnant works for the propletic Gregorian calendar down to year 1. However, time zone offsets and shifting the year to start in March (to make computations involving leap days easier) may shift the year to 0. So this class is allowed to handle the year 0.

- -

Definition at line 69 of file LocalDate.h.

- -
-
-
The documentation for this class was generated from the following files:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalDate.h
  • -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalDate.cpp
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1LocalDateTime-members.html b/docs/html/classace__time_1_1LocalDateTime-members.html deleted file mode 100644 index c9d5837d6..000000000 --- a/docs/html/classace__time_1_1LocalDateTime-members.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::LocalDateTime Member List
-
-
- -

This is the complete list of members for ace_time::LocalDateTime, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
compareTo(const LocalDateTime &that) constace_time::LocalDateTimeinline
day() constace_time::LocalDateTimeinline
day(uint8_t day)ace_time::LocalDateTimeinline
dayOfWeek() constace_time::LocalDateTimeinline
fold() constace_time::LocalDateTimeinline
fold(uint8_t fold)ace_time::LocalDateTimeinline
forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint8_t fold=0)ace_time::LocalDateTimeinlinestatic
forDateString(const char *dateString)ace_time::LocalDateTimestatic
forDateString(const __FlashStringHelper *dateString)ace_time::LocalDateTimestatic
forDateStringChainable(const char *&dateString)ace_time::LocalDateTimestatic
forEpochSeconds(acetime_t epochSeconds, uint8_t fold=0)ace_time::LocalDateTimeinlinestatic
forError()ace_time::LocalDateTimeinlinestatic
forUnixSeconds64(int64_t unixSeconds, uint8_t fold=0)ace_time::LocalDateTimeinlinestatic
hour() constace_time::LocalDateTimeinline
hour(uint8_t hour)ace_time::LocalDateTimeinline
isError() constace_time::LocalDateTimeinline
localDate() constace_time::LocalDateTimeinline
LocalDateTime()ace_time::LocalDateTimeinlineexplicit
LocalDateTime(const LocalDateTime &)=default (defined in ace_time::LocalDateTime)ace_time::LocalDateTime
localTime() constace_time::LocalDateTimeinline
minute() constace_time::LocalDateTimeinline
minute(uint8_t minute)ace_time::LocalDateTimeinline
month() constace_time::LocalDateTimeinline
month(uint8_t month)ace_time::LocalDateTimeinline
operator=(const LocalDateTime &)=default (defined in ace_time::LocalDateTime)ace_time::LocalDateTime
operator==(const LocalDateTime &a, const LocalDateTime &b)ace_time::LocalDateTimefriend
printTo(Print &printer) constace_time::LocalDateTime
second() constace_time::LocalDateTimeinline
second(uint8_t second)ace_time::LocalDateTimeinline
toEpochDays() constace_time::LocalDateTimeinline
toEpochSeconds() constace_time::LocalDateTimeinline
toUnixDays() constace_time::LocalDateTimeinline
toUnixSeconds64() constace_time::LocalDateTimeinline
year() constace_time::LocalDateTimeinline
year(int16_t year)ace_time::LocalDateTimeinline
- - - - diff --git a/docs/html/classace__time_1_1LocalDateTime.html b/docs/html/classace__time_1_1LocalDateTime.html deleted file mode 100644 index 7700a6ba5..000000000 --- a/docs/html/classace__time_1_1LocalDateTime.html +++ /dev/null @@ -1,727 +0,0 @@ - - - - - - - -AceTime: ace_time::LocalDateTime Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::LocalDateTime Class Reference
-
-
- -

Class that holds the date-time as the components (year, month, day, hour, minute, second) without regards to the time zone. - More...

- -

#include <LocalDateTime.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 LocalDateTime ()
 Constructor. More...
 
-bool isError () const
 Return true if any component indicates an error condition.
 
-int16_t year () const
 Return the year.
 
-void year (int16_t year)
 Set the year.
 
-uint8_t month () const
 Return the month with January=1, December=12.
 
-void month (uint8_t month)
 Set the month.
 
-uint8_t day () const
 Return the day of the month.
 
-void day (uint8_t day)
 Set the day of the month.
 
-uint8_t hour () const
 Return the hour.
 
-void hour (uint8_t hour)
 Set the hour.
 
-uint8_t minute () const
 Return the minute.
 
-void minute (uint8_t minute)
 Set the minute.
 
-uint8_t second () const
 Return the second.
 
-void second (uint8_t second)
 Set the second.
 
-uint8_t fold () const
 Return the fold.
 
-void fold (uint8_t fold)
 Set the fold.
 
-uint8_t dayOfWeek () const
 Return the day of the week, Monday=1, Sunday=7 (per ISO 8601).
 
-const LocalDatelocalDate () const
 Return the LocalDate.
 
-const LocalTimelocalTime () const
 Return the LocalTime.
 
int32_t toEpochDays () const
 Return number of whole days since AceTime epoch. More...
 
-int32_t toUnixDays () const
 Return the number of days since Unix epoch (1970-01-01 00:00:00).
 
acetime_t toEpochSeconds () const
 Return seconds since the current AceTime epoch defined by Epoch::currentEpochYear(). More...
 
int64_t toUnixSeconds64 () const
 Return 64-bit seconds from Unix epoch 1970-01-01 00:00:00 UTC, after assuming that the date and time components are in UTC timezone. More...
 
int8_t compareTo (const LocalDateTime &that) const
 Compare 'this' LocalDateTime with 'that' LocalDateTime, and return (<0, 0, >0) according to whether 'this' occurs (before, same as, after) 'that'. More...
 
void printTo (Print &printer) const
 Print LocalDateTime to 'printer' in ISO 8601 format. More...
 
LocalDateTime (const LocalDateTime &)=default
 
-LocalDateTimeoperator= (const LocalDateTime &)=default
 
- - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

static LocalDateTime forComponents (int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint8_t fold=0)
 Factory method using separated date and time components. More...
 
static LocalDateTime forEpochSeconds (acetime_t epochSeconds, uint8_t fold=0)
 Factory method. More...
 
static LocalDateTime forUnixSeconds64 (int64_t unixSeconds, uint8_t fold=0)
 Factory method that takes the 64-bit number of seconds since Unix Epoch of 1970-01-01. More...
 
static LocalDateTime forDateString (const char *dateString)
 Factory method. More...
 
static LocalDateTime forDateString (const __FlashStringHelper *dateString)
 Factory method. More...
 
static LocalDateTime forDateStringChainable (const char *&dateString)
 Variant of forDateString() that updates the pointer to the next unprocessed character. More...
 
-static LocalDateTime forError ()
 Factory method that returns an instance where isError() returns true.
 
- - - - -

-Friends

bool operator== (const LocalDateTime &a, const LocalDateTime &b)
 Return true if two LocalDateTime objects are equal in all components. More...
 
-

Detailed Description

-

Class that holds the date-time as the components (year, month, day, hour, minute, second) without regards to the time zone.

-

It is an aggregation of the LocalDate and LocalTime classes.

-

Parts of this class were inspired by the java.time.LocalDateTime class of Java 11 (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/LocalDateTime.html). The 'fold' parameter was inspired by the datetime package in Python 3.6.

- -

Definition at line 30 of file LocalDateTime.h.

-

Constructor & Destructor Documentation

- -

◆ LocalDateTime()

- -
-
- - - - - -
- - - - - - - -
ace_time::LocalDateTime::LocalDateTime ()
-
-inlineexplicit
-
- -

Constructor.

-

All internal fields are left in an undefined state.

- -

Definition at line 148 of file LocalDateTime.h.

- -
-
-

Member Function Documentation

- -

◆ compareTo()

- -
-
- - - - - -
- - - - - - - - -
int8_t ace_time::LocalDateTime::compareTo (const LocalDateTimethat) const
-
-inline
-
- -

Compare 'this' LocalDateTime with 'that' LocalDateTime, and return (<0, 0, >0) according to whether 'this' occurs (before, same as, after) 'that'.

-

If either this->isError() or that.isError() is true, the behavior is undefined.

- -

Definition at line 258 of file LocalDateTime.h.

- -
-
- -

◆ forComponents()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static LocalDateTime ace_time::LocalDateTime::forComponents (int16_t year,
uint8_t month,
uint8_t day,
uint8_t hour,
uint8_t minute,
uint8_t second,
uint8_t fold = 0 
)
-
-inlinestatic
-
- -

Factory method using separated date and time components.

-
Parameters
- - - - - - - - -
yearyear [0,10000]
monthmonth with January=1, December=12
dayday of month [1-31]
hourhour [0-23]
minuteminute [0-59]
secondsecond [0-59], does not support leap seconds
foldoptional disambiguation of multiple occurences [0, 1]
-
-
- -

Definition at line 44 of file LocalDateTime.h.

- -
-
- -

◆ forDateString() [1/2]

- -
-
- - - - - -
- - - - - - - - -
LocalDateTime ace_time::LocalDateTime::forDateString (const __FlashStringHelper * dateString)
-
-static
-
- -

Factory method.

-

Create a LocalDateTime from date string in flash memory F() strings. Mostly for unit testing.

- -

Definition at line 47 of file LocalDateTime.cpp.

- -
-
- -

◆ forDateString() [2/2]

- -
-
- - - - - -
- - - - - - - - -
LocalDateTime ace_time::LocalDateTime::forDateString (const char * dateString)
-
-static
-
- -

Factory method.

-

Create a LocalDateTime from the ISO 8601 date string. If the string cannot be parsed, then returns LocalDateTime::forError().

-

The parsing validation is so weak that the behavior is undefined for most invalid date/time strings. It cares mostly about the positional placement of the various components. It does not validate the separation characters like '-' or ':'. For example, both of the following strings will parse to the exactly same LocalDateTime object: "2018-08-31T13:48:01" and "2018/08/31 13.48.01"

-
Parameters
- - -
dateStringthe date and time in ISO 8601 format "YYYY-MM-DDThh:mm:ss". The range of valid dates is from 0001-01-01T00:00:00 to 9999-12-31T23:59:59.
-
-
- -

Definition at line 40 of file LocalDateTime.cpp.

- -
-
- -

◆ forDateStringChainable()

- -
-
- - - - - -
- - - - - - - - -
LocalDateTime ace_time::LocalDateTime::forDateStringChainable (const char *& dateString)
-
-static
-
- -

Variant of forDateString() that updates the pointer to the next unprocessed character.

-

This allows chaining to another forXxxStringChainable() method.

-

This method assumes that the dateString is sufficiently long.

- -

Definition at line 65 of file LocalDateTime.cpp.

- -
-
- -

◆ forEpochSeconds()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static LocalDateTime ace_time::LocalDateTime::forEpochSeconds (acetime_t epochSeconds,
uint8_t fold = 0 
)
-
-inlinestatic
-
- -

Factory method.

-

Create the various components of the LocalDateTime from the epochSeconds.

-

Returns LocalDateTime::forError() if epochSeconds is equal to LocalDate::kInvalidEpochSeconds.

-
Parameters
- - -
epochSecondsNumber of seconds from AceTime epoch (2000-01-01 00:00:00). Use LocalDate::kInvalidEpochSeconds to define an invalid instance whose isError() returns true.
-
-
- -

Definition at line 63 of file LocalDateTime.h.

- -
-
- -

◆ forUnixSeconds64()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static LocalDateTime ace_time::LocalDateTime::forUnixSeconds64 (int64_t unixSeconds,
uint8_t fold = 0 
)
-
-inlinestatic
-
- -

Factory method that takes the 64-bit number of seconds since Unix Epoch of 1970-01-01.

-

Valid until the 64-bit unixSeconds reaches the equivalent of 2068-01-19T03:14:07 UTC. Returns LocalDateTime::forError() if unixSeconds is invalid.

- -

Definition at line 90 of file LocalDateTime.h.

- -
-
- -

◆ printTo()

- -
-
- - - - - - - - -
void ace_time::LocalDateTime::printTo (Print & printer) const
-
- -

Print LocalDateTime to 'printer' in ISO 8601 format.

-

This class does not implement the Printable interface to avoid increasing the size of the object from the additional virtual function.

- -

Definition at line 16 of file LocalDateTime.cpp.

- -
-
- -

◆ toEpochDays()

- -
-
- - - - - -
- - - - - - - -
int32_t ace_time::LocalDateTime::toEpochDays () const
-
-inline
-
- -

Return number of whole days since AceTime epoch.

-

The default epoch is 2000-01-01 00:00:00 UTC, but can be changed using Epoch::currentEpochYear().

- -

Definition at line 211 of file LocalDateTime.h.

- -
-
- -

◆ toEpochSeconds()

- -
-
- - - - - -
- - - - - - - -
acetime_t ace_time::LocalDateTime::toEpochSeconds () const
-
-inline
-
- -

Return seconds since the current AceTime epoch defined by Epoch::currentEpochYear().

-

The default epoch is 2000-01-01 00:00:00 UTC, but can be changed using Epoch::currentEpochYear().

-

Returns LocalDate::kInvalidEpochSeconds if isError() is true, or the epochSeconds is out of range.

- -

Definition at line 230 of file LocalDateTime.h.

- -
-
- -

◆ toUnixSeconds64()

- -
-
- - - - - -
- - - - - - - -
int64_t ace_time::LocalDateTime::toUnixSeconds64 () const
-
-inline
-
- -

Return 64-bit seconds from Unix epoch 1970-01-01 00:00:00 UTC, after assuming that the date and time components are in UTC timezone.

-

Returns LocalDate::kInvalidUnixSeconds64 if isError() is true.

-

Tip: You can use the command 'date +s -d {iso8601date}' on a Unix box to print the unix seconds of a given ISO8601 date.

- -

Definition at line 245 of file LocalDateTime.h.

- -
-
-

Friends And Related Function Documentation

- -

◆ operator==

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool operator== (const LocalDateTimea,
const LocalDateTimeb 
)
-
-friend
-
- -

Return true if two LocalDateTime objects are equal in all components.

-

Optimized for small changes in the less signficant fields, such as 'second' or 'minute'.

- -

Definition at line 297 of file LocalDateTime.h.

- -
-
-
The documentation for this class was generated from the following files:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalDateTime.h
  • -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalDateTime.cpp
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1LocalTime-members.html b/docs/html/classace__time_1_1LocalTime-members.html deleted file mode 100644 index 3018fdf48..000000000 --- a/docs/html/classace__time_1_1LocalTime-members.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::LocalTime Member List
-
-
- -

This is the complete list of members for ace_time::LocalTime, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - -
compareTo(const LocalTime &that) constace_time::LocalTimeinline
fold() constace_time::LocalTimeinline
fold(uint8_t fold)ace_time::LocalTimeinline
forComponents(uint8_t hour, uint8_t minute, uint8_t second, uint8_t fold=0)ace_time::LocalTimeinlinestatic
forError()ace_time::LocalTimeinlinestatic
forSeconds(acetime_t seconds, uint8_t fold=0)ace_time::LocalTimeinlinestatic
forTimeString(const char *timeString)ace_time::LocalTimestatic
forTimeStringChainable(const char *&timeString)ace_time::LocalTimestatic
hour() constace_time::LocalTimeinline
hour(uint8_t hour)ace_time::LocalTimeinline
isError() constace_time::LocalTimeinline
kInvalidSecondsace_time::LocalTimestatic
LocalTime()ace_time::LocalTimeinlineexplicit
LocalTime(const LocalTime &)=default (defined in ace_time::LocalTime)ace_time::LocalTime
minute() constace_time::LocalTimeinline
minute(uint8_t minute)ace_time::LocalTimeinline
operator=(const LocalTime &)=default (defined in ace_time::LocalTime)ace_time::LocalTime
operator==(const LocalTime &a, const LocalTime &b)ace_time::LocalTimefriend
printTo(Print &printer) constace_time::LocalTime
second() constace_time::LocalTimeinline
second(uint8_t second)ace_time::LocalTimeinline
toSeconds() constace_time::LocalTimeinline
- - - - diff --git a/docs/html/classace__time_1_1LocalTime.html b/docs/html/classace__time_1_1LocalTime.html deleted file mode 100644 index 62d0c077e..000000000 --- a/docs/html/classace__time_1_1LocalTime.html +++ /dev/null @@ -1,556 +0,0 @@ - - - - - - - -AceTime: ace_time::LocalTime Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
- -
- -

The time (hour, minute, second) fields representing the time without regards to the day or the time zone. - More...

- -

#include <LocalTime.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

LocalTime ()
 Default constructor does nothing.
 
bool isError () const
 Return true if any component is outside the normal time range of 00:00:00 to 23:59:59. More...
 
-uint8_t hour () const
 Return the hour.
 
-void hour (uint8_t hour)
 Set the hour.
 
-uint8_t minute () const
 Return the minute.
 
-void minute (uint8_t minute)
 Set the minute.
 
-uint8_t second () const
 Return the second.
 
-void second (uint8_t second)
 Set the second.
 
-uint8_t fold () const
 Return the fold.
 
-void fold (uint8_t fold)
 Set the fold.
 
acetime_t toSeconds () const
 Return the number of seconds since midnight. More...
 
int8_t compareTo (const LocalTime &that) const
 Compare 'this' LocalTime with 'that' LocalTime, and return (<0, 0, >0) according to whether 'this' occurs (before, same as, after) 'that'. More...
 
void printTo (Print &printer) const
 Print LocalTime to 'printer' in ISO 8601 format. More...
 
LocalTime (const LocalTime &)=default
 
-LocalTimeoperator= (const LocalTime &)=default
 
- - - - - - - - - - - - - - - - -

-Static Public Member Functions

static LocalTime forComponents (uint8_t hour, uint8_t minute, uint8_t second, uint8_t fold=0)
 Factory method using separated date, time, and time zone fields. More...
 
static LocalTime forSeconds (acetime_t seconds, uint8_t fold=0)
 Factory method. More...
 
static LocalTime forTimeString (const char *timeString)
 Factory method. More...
 
static LocalTime forTimeStringChainable (const char *&timeString)
 Variant of forTimeString() that updates the pointer to the next unprocessed character. More...
 
static LocalTime forError ()
 Factory method that returns an instance which indicates an error condition. More...
 
- - - - -

-Static Public Attributes

-static const int32_t kInvalidSeconds = INT32_MIN
 An invalid seconds marker that indicates isError() true.
 
- - - - -

-Friends

bool operator== (const LocalTime &a, const LocalTime &b)
 Return true if two LocalTime objects are equal. More...
 
-

Detailed Description

-

The time (hour, minute, second) fields representing the time without regards to the day or the time zone.

-

The valid range is 00:00:00 to 23:59:59. Trying to create an instance outside of this range causes the isError() method to return true, and toSeconds() returns kInvalidSeconds.

-

Parts of this class were inspired by the java.time.LocalTime class of Java 11 (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/LocalTime.html). The 'fold' parameter was inspired by the datetime package in Python 3.6.

- -

Definition at line 27 of file LocalTime.h.

-

Member Function Documentation

- -

◆ compareTo()

- -
-
- - - - - -
- - - - - - - - -
int8_t ace_time::LocalTime::compareTo (const LocalTimethat) const
-
-inline
-
- -

Compare 'this' LocalTime with 'that' LocalTime, and return (<0, 0, >0) according to whether 'this' occurs (before, same as, after) 'that'.

-

The 'fold' parameter is ignored.

-

If either this->isError() or that.isError() is true, the behavior is undefined.

- -

Definition at line 162 of file LocalTime.h.

- -
-
- -

◆ forComponents()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static LocalTime ace_time::LocalTime::forComponents (uint8_t hour,
uint8_t minute,
uint8_t second,
uint8_t fold = 0 
)
-
-inlinestatic
-
- -

Factory method using separated date, time, and time zone fields.

-

The dayOfWeek will be lazily evaluated. No data validation is performed on the fields on construction, but if any field is out of range, then isError() will return true.

-
Parameters
- - - - - -
hourhour (0-23)
minuteminute (0-59)
secondsecond (0-59), does not support leap seconds
foldoptional disambiguation of multiple occurrences [0, 1]
-
-
- -

Definition at line 43 of file LocalTime.h.

- -
-
- -

◆ forError()

- -
-
- - - - - -
- - - - - - - -
static LocalTime ace_time::LocalTime::forError ()
-
-inlinestatic
-
- -

Factory method that returns an instance which indicates an error condition.

-

The isError() method will return true.

- -

Definition at line 95 of file LocalTime.h.

- -
-
- -

◆ forSeconds()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static LocalTime ace_time::LocalTime::forSeconds (acetime_t seconds,
uint8_t fold = 0 
)
-
-inlinestatic
-
- -

Factory method.

-

Create the various components of the LocalTime from the number of seconds from midnight. If kInvalidSeconds is given, the isError() condition is set to be true. The behavior is undefined if seconds is greater than 86399.

-
Parameters
- - -
secondsnumber of seconds from midnight, (0-86399)
-
-
- -

Definition at line 56 of file LocalTime.h.

- -
-
- -

◆ forTimeString()

- -
-
- - - - - -
- - - - - - - - -
LocalTime ace_time::LocalTime::forTimeString (const char * timeString)
-
-static
-
- -

Factory method.

-

Create a LocalTime from the ISO 8601 time string. If the string cannot be parsed, then returns LocalTime::forError(). However, the data validation on parsing is very weak and the behavior is undefined for most invalid time strings.

-
Parameters
- - -
-
-
- -

Definition at line 28 of file LocalTime.cpp.

- -
-
- -

◆ forTimeStringChainable()

- -
-
- - - - - -
- - - - - - - - -
LocalTime ace_time::LocalTime::forTimeStringChainable (const char *& timeString)
-
-static
-
- -

Variant of forTimeString() that updates the pointer to the next unprocessed character.

-

This allows chaining to another forXxxStringChainable() method.

-

This method assumes that the dateString is sufficiently long.

- -

Definition at line 36 of file LocalTime.cpp.

- -
-
- -

◆ isError()

- -
-
- - - - - -
- - - - - - - -
bool ace_time::LocalTime::isError () const
-
-inline
-
- -

Return true if any component is outside the normal time range of 00:00:00 to 23:59:59.

-

We add the exception that 24:00:00 is also considered valid to allow ExtendedZoneProcessor (and maybe BasicZoneProcessor) to support midnight transitions from the TZ Database.

- -

Definition at line 108 of file LocalTime.h.

- -
-
- -

◆ printTo()

- -
-
- - - - - - - - -
void ace_time::LocalTime::printTo (Print & printer) const
-
- -

Print LocalTime to 'printer' in ISO 8601 format.

-

This class does not implement the Printable interface to avoid increasing the size of the object from the additional virtual function.

- -

Definition at line 14 of file LocalTime.cpp.

- -
-
- -

◆ toSeconds()

- -
-
- - - - - -
- - - - - - - -
acetime_t ace_time::LocalTime::toSeconds () const
-
-inline
-
- -

Return the number of seconds since midnight.

-

Return kInvalidSeconds if isError() is true.

- -

Definition at line 145 of file LocalTime.h.

- -
-
-

Friends And Related Function Documentation

- -

◆ operator==

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool operator== (const LocalTimea,
const LocalTimeb 
)
-
-friend
-
- -

Return true if two LocalTime objects are equal.

-

The fold is ignored.

- -

Definition at line 220 of file LocalTime.h.

- -
-
-
The documentation for this class was generated from the following files:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalTime.h
  • -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/LocalTime.cpp
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ManualZoneManager-members.html b/docs/html/classace__time_1_1ManualZoneManager-members.html deleted file mode 100644 index f0b60e9a3..000000000 --- a/docs/html/classace__time_1_1ManualZoneManager-members.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ManualZoneManager Member List
-
-
- -

This is the complete list of members for ace_time::ManualZoneManager, including all inherited members.

- - - -
createForTimeZoneData(const TimeZoneData &d)ace_time::ManualZoneManagerinline
zoneRegistrySize() const (defined in ace_time::ManualZoneManager)ace_time::ManualZoneManagerinline
- - - - diff --git a/docs/html/classace__time_1_1ManualZoneManager.html b/docs/html/classace__time_1_1ManualZoneManager.html deleted file mode 100644 index 5a9c25dfb..000000000 --- a/docs/html/classace__time_1_1ManualZoneManager.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -AceTime: ace_time::ManualZoneManager Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ManualZoneManager Class Reference
-
-
- -

A simple version of ZoneManager that converts a manual TimeZoneData with fixed STD and DST offsets into a TimeZone. - More...

- -

#include <ZoneManager.h>

- - - - - - - -

-Public Member Functions

TimeZone createForTimeZoneData (const TimeZoneData &d)
 Create a TimeZone with fixed STD and DST offsets stored in the TimeZoneData which was created by TimeZone::toTimeZoneData(). More...
 
-uint16_t zoneRegistrySize () const
 
-

Detailed Description

-

A simple version of ZoneManager that converts a manual TimeZoneData with fixed STD and DST offsets into a TimeZone.

- -

Definition at line 38 of file ZoneManager.h.

-

Member Function Documentation

- -

◆ createForTimeZoneData()

- -
-
- - - - - -
- - - - - - - - -
TimeZone ace_time::ManualZoneManager::createForTimeZoneData (const TimeZoneDatad)
-
-inline
-
- -

Create a TimeZone with fixed STD and DST offsets stored in the TimeZoneData which was created by TimeZone::toTimeZoneData().

-

IANA timezones are not supported.

- -

Definition at line 45 of file ZoneManager.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneManager.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1OffsetDateTime-members.html b/docs/html/classace__time_1_1OffsetDateTime-members.html deleted file mode 100644 index 06caf9485..000000000 --- a/docs/html/classace__time_1_1OffsetDateTime-members.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::OffsetDateTime Member List
-
-
- -

This is the complete list of members for ace_time::OffsetDateTime, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
compareTo(const OffsetDateTime &that) constace_time::OffsetDateTimeinline
convertToTimeOffset(TimeOffset timeOffset) constace_time::OffsetDateTimeinline
day() constace_time::OffsetDateTimeinline
day(uint8_t day)ace_time::OffsetDateTimeinline
dayOfWeek() constace_time::OffsetDateTimeinline
fold() constace_time::OffsetDateTimeinline
fold(uint8_t fold)ace_time::OffsetDateTimeinline
forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, TimeOffset timeOffset, uint8_t fold=0)ace_time::OffsetDateTimeinlinestatic
forDateString(const char *dateString)ace_time::OffsetDateTimestatic
forDateString(const __FlashStringHelper *dateString)ace_time::OffsetDateTimestatic
forDateStringChainable(const char *&dateString)ace_time::OffsetDateTimestatic
forEpochSeconds(acetime_t epochSeconds, TimeOffset timeOffset, uint8_t fold=0)ace_time::OffsetDateTimeinlinestatic
forError()ace_time::OffsetDateTimeinlinestatic
forLocalDateTimeAndOffset(const LocalDateTime &localDateTime, TimeOffset timeOffset)ace_time::OffsetDateTimeinlinestatic
forUnixSeconds64(int64_t unixSeconds, TimeOffset timeOffset, int8_t fold=0)ace_time::OffsetDateTimeinlinestatic
hour() constace_time::OffsetDateTimeinline
hour(uint8_t hour)ace_time::OffsetDateTimeinline
isError() constace_time::OffsetDateTimeinline
localDate() constace_time::OffsetDateTimeinline
localDateTime() constace_time::OffsetDateTimeinline
localTime() constace_time::OffsetDateTimeinline
minute() constace_time::OffsetDateTimeinline
minute(uint8_t minute)ace_time::OffsetDateTimeinline
month() constace_time::OffsetDateTimeinline
month(uint8_t month)ace_time::OffsetDateTimeinline
OffsetDateTime()ace_time::OffsetDateTimeinlineexplicit
OffsetDateTime(const OffsetDateTime &)=default (defined in ace_time::OffsetDateTime)ace_time::OffsetDateTime
operator=(const OffsetDateTime &)=default (defined in ace_time::OffsetDateTime)ace_time::OffsetDateTime
operator==(const OffsetDateTime &a, const OffsetDateTime &b)ace_time::OffsetDateTimefriend
printTo(Print &printer) constace_time::OffsetDateTime
second() constace_time::OffsetDateTimeinline
second(uint8_t second)ace_time::OffsetDateTimeinline
timeOffset() constace_time::OffsetDateTimeinline
timeOffset(TimeOffset timeOffset)ace_time::OffsetDateTimeinline
toEpochDays() constace_time::OffsetDateTimeinline
toEpochSeconds() constace_time::OffsetDateTimeinline
toUnixDays() constace_time::OffsetDateTimeinline
toUnixSeconds64() constace_time::OffsetDateTimeinline
year() constace_time::OffsetDateTimeinline
year(int16_t year)ace_time::OffsetDateTimeinline
- - - - diff --git a/docs/html/classace__time_1_1OffsetDateTime.html b/docs/html/classace__time_1_1OffsetDateTime.html deleted file mode 100644 index de943f584..000000000 --- a/docs/html/classace__time_1_1OffsetDateTime.html +++ /dev/null @@ -1,806 +0,0 @@ - - - - - - - -AceTime: ace_time::OffsetDateTime Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::OffsetDateTime Class Reference
-
-
- -

The date (year, month, day), time (hour, minute, second) and fixed offset from UTC (timeOffset). - More...

- -

#include <OffsetDateTime.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 OffsetDateTime ()
 Constructor. More...
 
-bool isError () const
 Return true if any component indicates an error condition.
 
-int16_t year () const
 Return the year.
 
-void year (int16_t year)
 Set the year.
 
-uint8_t month () const
 Return the month with January=1, December=12.
 
-void month (uint8_t month)
 Set the month.
 
-uint8_t day () const
 Return the day of the month.
 
-void day (uint8_t day)
 Set the day of the month.
 
-uint8_t hour () const
 Return the hour.
 
-void hour (uint8_t hour)
 Set the hour.
 
-uint8_t minute () const
 Return the minute.
 
-void minute (uint8_t minute)
 Set the minute.
 
-uint8_t second () const
 Return the second.
 
-void second (uint8_t second)
 Set the second.
 
-uint8_t fold () const
 Return the fold.
 
-void fold (uint8_t fold)
 Set the fold.
 
-uint8_t dayOfWeek () const
 Return the day of the week, Monday=1, Sunday=7 (per ISO 8601).
 
-TimeOffset timeOffset () const
 Return the UTC offset of the OffsetDateTime.
 
-void timeOffset (TimeOffset timeOffset)
 Set the UTC offset.
 
-const LocalDateTimelocalDateTime () const
 Return the LocalDateTime.
 
-const LocalDatelocalDate () const
 Return the LocalDate.
 
-const LocalTimelocalTime () const
 Return the LocalTime.
 
OffsetDateTime convertToTimeOffset (TimeOffset timeOffset) const
 Create a OffsetDateTime in a different UTC offset code (with the same epochSeconds). More...
 
int32_t toEpochDays () const
 Return number of whole days since AceTime epoch taking into account the UTC offset. More...
 
-int32_t toUnixDays () const
 Return the number of days since Unix epoch (1970-01-01 00:00:00).
 
acetime_t toEpochSeconds () const
 Return seconds since AceTime epoch taking into account the UTC offset. More...
 
int64_t toUnixSeconds64 () const
 Return the 64-bit number of seconds from Unix epoch 1970-01-01 00:00:00 UTC. More...
 
int8_t compareTo (const OffsetDateTime &that) const
 Compare 'this' OffsetDateTime with 'that' OffsetDateTime, and return (<0, 0, >0) according to whether the epochSeconds (incorporating the time offset) is (a<b, a==b, a>b). More...
 
void printTo (Print &printer) const
 Print OffsetDateTime to 'printer' in ISO 8601 format. More...
 
OffsetDateTime (const OffsetDateTime &)=default
 
-OffsetDateTimeoperator= (const OffsetDateTime &)=default
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

-static OffsetDateTime forLocalDateTimeAndOffset (const LocalDateTime &localDateTime, TimeOffset timeOffset)
 Factory method from LocalDateTime and TimeOffset.
 
static OffsetDateTime forComponents (int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, TimeOffset timeOffset, uint8_t fold=0)
 Factory method using separated date, time, and UTC offset fields. More...
 
static OffsetDateTime forEpochSeconds (acetime_t epochSeconds, TimeOffset timeOffset, uint8_t fold=0)
 Factory method. More...
 
static OffsetDateTime forUnixSeconds64 (int64_t unixSeconds, TimeOffset timeOffset, int8_t fold=0)
 Factory method that takes the number of seconds (64-bit) since Unix Epoch of 1970-01-01. More...
 
static OffsetDateTime forDateString (const char *dateString)
 Factory method. More...
 
static OffsetDateTime forDateString (const __FlashStringHelper *dateString)
 Factory method. More...
 
static OffsetDateTime forDateStringChainable (const char *&dateString)
 Variant of forDateString() that updates the pointer to the next unprocessed character. More...
 
-static OffsetDateTime forError ()
 Factory method that returns an instance whose isError() is true.
 
- - - - -

-Friends

bool operator== (const OffsetDateTime &a, const OffsetDateTime &b)
 Return true if two OffsetDateTime objects are equal in all components. More...
 
-

Detailed Description

-

The date (year, month, day), time (hour, minute, second) and fixed offset from UTC (timeOffset).

-

The year field is valid from [0, 10000] with year 0 interpreted as -Infinity and year 10000 interpreted as +Infinity. An invalid year is represented by INT16_MIN (-32768). If the year is restricted to the range 2000-2099, then the last 2 digits map directly to the fields supported by the DS3231 RTC chip.

-

The default epoch for AceTime is 2050-01-01T00:00:00 UTC, but can be changed using Epoch::currentEpochYear(). The toEpochSeconds() method returns a int32_t number of seconds offset from that epoch.

-

The dayOfWeek (1=Monday, 7=Sunday, per ISO 8601) is calculated internally from the date fields.

-

Parts of this class were inspired by the java.time.OffsetDateTime class of Java 11, and the datetime package of Python 3.

- -

Definition at line 37 of file OffsetDateTime.h.

-

Constructor & Destructor Documentation

- -

◆ OffsetDateTime()

- -
-
- - - - - -
- - - - - - - -
ace_time::OffsetDateTime::OffsetDateTime ()
-
-inlineexplicit
-
- -

Constructor.

-

All internal fields are left in an undefined state.

- -

Definition at line 147 of file OffsetDateTime.h.

- -
-
-

Member Function Documentation

- -

◆ compareTo()

- -
-
- - - - - -
- - - - - - - - -
int8_t ace_time::OffsetDateTime::compareTo (const OffsetDateTimethat) const
-
-inline
-
- -

Compare 'this' OffsetDateTime with 'that' OffsetDateTime, and return (<0, 0, >0) according to whether the epochSeconds (incorporating the time offset) is (a<b, a==b, a>b).

-

This method can return 0 (equal) even if the operator==() returns false if the two OffsetDateTime objects are using different time offsets.

-

If you want to know whether the local representatation of 'this' OffsetDateTime occurs before or after the local representation of 'that', use this->localDateTime().compareTo(that.localDateTime()) instead. This expression ignores the time offset which is sometimes what you want.

-

If either this->isError() or that.isError() is true, the result is undefined.

- -

Definition at line 296 of file OffsetDateTime.h.

- -
-
- -

◆ convertToTimeOffset()

- -
-
- - - - - -
- - - - - - - - -
OffsetDateTime ace_time::OffsetDateTime::convertToTimeOffset (TimeOffset timeOffset) const
-
-inline
-
- -

Create a OffsetDateTime in a different UTC offset code (with the same epochSeconds).

-

Calls forEpochSeconds() so subject to its overflow/underflow limits.

- -

Definition at line 221 of file OffsetDateTime.h.

- -
-
- -

◆ forComponents()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static OffsetDateTime ace_time::OffsetDateTime::forComponents (int16_t year,
uint8_t month,
uint8_t day,
uint8_t hour,
uint8_t minute,
uint8_t second,
TimeOffset timeOffset,
uint8_t fold = 0 
)
-
-inlinestatic
-
- -

Factory method using separated date, time, and UTC offset fields.

-
Parameters
- - - - - - - - - -
yearyear [0,10000]
monthmonth with January=1, December=12
dayday of month [1-31]
hourhour [0-23]
minuteminute [0-59]
secondsecond [0-59], does not support leap seconds
timeOffsetthe time offset from UTC. Using TimeOffset in the last component (instead of an int8_t or int16_t) allows us to overload an additional constructor that accepts a millisecond component in the future.
foldoptional disambiguation of multiple occurences [0, 1]
-
-
- -

Definition at line 61 of file OffsetDateTime.h.

- -
-
- -

◆ forDateString() [1/2]

- -
-
- - - - - -
- - - - - - - - -
OffsetDateTime ace_time::OffsetDateTime::forDateString (const __FlashStringHelper * dateString)
-
-static
-
- -

Factory method.

-

Create a OffsetDateTime from date string in flash memory F() strings. Mostly for unit testing. Returns OffsetDateTime::forError() if a parsing error occurs.

- -

Definition at line 34 of file OffsetDateTime.cpp.

- -
-
- -

◆ forDateString() [2/2]

- -
-
- - - - - -
- - - - - - - - -
OffsetDateTime ace_time::OffsetDateTime::forDateString (const char * dateString)
-
-static
-
- -

Factory method.

-

Create a OffsetDateTime from the ISO 8601 date string. If the string cannot be parsed, then returns OffsetDateTime::forError(). Created for debugging purposes not for production use.

-

The parsing validation is so weak that the behavior is undefined for most invalid date/time strings. It cares mostly about the positional placement of the various components. It does not validate the separation characters like '-' or ':'. For example, both of the following will parse to the exactly same OffsetDateTime object: "2018-08-31T13:48:01-07:00" "2018/08/31 13.48.01-07.00"

-
Parameters
- - -
dateStringthe date and time in ISO 8601 format "YYYY-MM-DDThh:mm:ss+/-hh:mm". The range of valid dates is from 0001-01-01T00:00:00 to 9999-12-31T23:59:59.
-
-
- -

Definition at line 27 of file OffsetDateTime.cpp.

- -
-
- -

◆ forDateStringChainable()

- -
-
- - - - - -
- - - - - - - - -
OffsetDateTime ace_time::OffsetDateTime::forDateStringChainable (const char *& dateString)
-
-static
-
- -

Variant of forDateString() that updates the pointer to the next unprocessed character.

-

This allows chaining to another forXxxStringChainable() method.

-

This method assumes that the dateString is sufficiently long.

- -

Definition at line 52 of file OffsetDateTime.cpp.

- -
-
- -

◆ forEpochSeconds()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static OffsetDateTime ace_time::OffsetDateTime::forEpochSeconds (acetime_t epochSeconds,
TimeOffset timeOffset,
uint8_t fold = 0 
)
-
-inlinestatic
-
- -

Factory method.

-

Create the various components of the OffsetDateTime from the epochSeconds and its TimeOffset. Returns OffsetDateTime::forError() if epochSeconds or timeOffset is an error.

-
Parameters
- - - -
epochSecondsNumber of seconds from AceTime epoch (2050-01-01 00:00:00 by default). Use LocalDate::kInvalidEpochSeconds to define an invalid instance whose isError() returns true.
timeOffsettime offset from UTC
-
-
- -

Definition at line 79 of file OffsetDateTime.h.

- -
-
- -

◆ forUnixSeconds64()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static OffsetDateTime ace_time::OffsetDateTime::forUnixSeconds64 (int64_t unixSeconds,
TimeOffset timeOffset,
int8_t fold = 0 
)
-
-inlinestatic
-
- -

Factory method that takes the number of seconds (64-bit) since Unix Epoch of 1970-01-01.

-

Similar to forEpochSeconds(), the seconds corresponding to the partial day are truncated down towards the smallest whole day. Returns OffsetDateTime::forError() if unixSeconds is invalid.

-
Parameters
- - - -
unixSecondsnumber of seconds since Unix epoch (1970-01-01T00:00:00 UTC)
timeOffsettime offset from UTC
-
-
- -

Definition at line 98 of file OffsetDateTime.h.

- -
-
- -

◆ printTo()

- -
-
- - - - - - - - -
void ace_time::OffsetDateTime::printTo (Print & printer) const
-
- -

Print OffsetDateTime to 'printer' in ISO 8601 format.

-

This class does not implement the Printable interface to avoid increasing the size of the object from the additional virtual function.

- -

Definition at line 14 of file OffsetDateTime.cpp.

- -
-
- -

◆ toEpochDays()

- -
-
- - - - - -
- - - - - - - -
int32_t ace_time::OffsetDateTime::toEpochDays () const
-
-inline
-
- -

Return number of whole days since AceTime epoch taking into account the UTC offset.

-

The default epoch is 2050-01-01 00:00:00 UTC but can be changed using Epoch::currentEpochYear().

- -

Definition at line 231 of file OffsetDateTime.h.

- -
-
- -

◆ toEpochSeconds()

- -
-
- - - - - -
- - - - - - - -
acetime_t ace_time::OffsetDateTime::toEpochSeconds () const
-
-inline
-
- -

Return seconds since AceTime epoch taking into account the UTC offset.

-

The default epoch is 2050-01-01 00:00:00 UTC but can be changed using Epoch::currentEpochYear().

- -

Definition at line 259 of file OffsetDateTime.h.

- -
-
- -

◆ toUnixSeconds64()

- -
-
- - - - - -
- - - - - - - -
int64_t ace_time::OffsetDateTime::toUnixSeconds64 () const
-
-inline
-
- -

Return the 64-bit number of seconds from Unix epoch 1970-01-01 00:00:00 UTC.

-

Returns LocalDate::kInvalidUnixSeconds64 if isError() is true.

-

Tip: You can use the command 'date +s -d {iso8601date}' on a Unix box to convert an ISO8601 date to the unix seconds.

- -

Definition at line 275 of file OffsetDateTime.h.

- -
-
-

Friends And Related Function Documentation

- -

◆ operator==

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool operator== (const OffsetDateTimea,
const OffsetDateTimeb 
)
-
-friend
-
- -

Return true if two OffsetDateTime objects are equal in all components.

-

Optimized for small changes in the less signficant fields, such as 'second' or 'minute'.

- -

Definition at line 335 of file OffsetDateTime.h.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/docs/html/classace__time_1_1TimeOffset-members.html b/docs/html/classace__time_1_1TimeOffset-members.html deleted file mode 100644 index f66e62d20..000000000 --- a/docs/html/classace__time_1_1TimeOffset-members.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::TimeOffset Member List
-
-
- -

This is the complete list of members for ace_time::TimeOffset, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - -
forError()ace_time::TimeOffsetinlinestatic
forHourMinute(int8_t hour, int8_t minute)ace_time::TimeOffsetinlinestatic
forHourMinuteSecond(int8_t hour, int8_t minute, int8_t second)ace_time::TimeOffsetinlinestatic
forHours(int8_t hours)ace_time::TimeOffsetinlinestatic
forMinutes(int16_t minutes)ace_time::TimeOffsetinlinestatic
forOffsetString(const char *offsetString)ace_time::TimeOffsetstatic
forOffsetStringChainable(const char *&offsetString)ace_time::TimeOffsetstatic
forSeconds(int32_t seconds)ace_time::TimeOffsetinlinestatic
isError() constace_time::TimeOffsetinline
isZero() constace_time::TimeOffsetinline
operator=(const TimeOffset &)=default (defined in ace_time::TimeOffset)ace_time::TimeOffset
operator== (defined in ace_time::TimeOffset)ace_time::TimeOffsetfriend
printTo(Print &printer) constace_time::TimeOffset
time_offset_mutation::increment15Minutes (defined in ace_time::TimeOffset)ace_time::TimeOffsetfriend
time_offset_mutation::incrementHour (defined in ace_time::TimeOffset)ace_time::TimeOffsetfriend
TimeOffset()ace_time::TimeOffsetinlineexplicit
TimeOffset(const TimeOffset &)=default (defined in ace_time::TimeOffset)ace_time::TimeOffset
toHourMinute(int8_t &hour, int8_t &minute) constace_time::TimeOffsetinline
toHourMinuteSecond(int8_t &hour, int8_t &minute, int8_t &second) constace_time::TimeOffsetinline
toMinutes() constace_time::TimeOffsetinline
toSeconds() constace_time::TimeOffsetinline
- - - - diff --git a/docs/html/classace__time_1_1TimeOffset.html b/docs/html/classace__time_1_1TimeOffset.html deleted file mode 100644 index 15f78ab38..000000000 --- a/docs/html/classace__time_1_1TimeOffset.html +++ /dev/null @@ -1,546 +0,0 @@ - - - - - - - -AceTime: ace_time::TimeOffset Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::TimeOffset Class Reference
-
-
- -

A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC, but not always. - More...

- -

#include <TimeOffset.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 TimeOffset ()
 Constructor. More...
 
-int16_t toMinutes () const
 Return the time offset as minutes.
 
-int32_t toSeconds () const
 Return the time offset as seconds.
 
void toHourMinute (int8_t &hour, int8_t &minute) const
 Extract hour and minute representation of the offset. More...
 
void toHourMinuteSecond (int8_t &hour, int8_t &minute, int8_t &second) const
 Extract hour, minute, second from the offset. More...
 
bool isZero () const
 Returns true if offset is 00:00. More...
 
-bool isError () const
 Return true if this TimeOffset represents an error.
 
void printTo (Print &printer) const
 Print the human readable string, including a "-" or "+" prefix, in the form of "+/-hh:mm" or "+/-hh:mm:ss". More...
 
TimeOffset (const TimeOffset &)=default
 
-TimeOffsetoperator= (const TimeOffset &)=default
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

static TimeOffset forHours (int8_t hours)
 Create TimeOffset with the corresponding hour offset. More...
 
static TimeOffset forHourMinute (int8_t hour, int8_t minute)
 Create TimeOffset from (hour, minute) offset. More...
 
static TimeOffset forHourMinuteSecond (int8_t hour, int8_t minute, int8_t second)
 Create a TimeOffset fro (hour, minute, second) offset. More...
 
-static TimeOffset forMinutes (int16_t minutes)
 Create TimeOffset from minutes from 00:00.
 
-static TimeOffset forSeconds (int32_t seconds)
 Create TimeOffset from seconds from 00:00.
 
static TimeOffset forOffsetString (const char *offsetString)
 Create from an offset string (e.g. More...
 
static TimeOffset forOffsetStringChainable (const char *&offsetString)
 Variant of forOffsetString() that updates the string pointer to the next unprocessed character. More...
 
-static TimeOffset forError ()
 Return an error indicator.
 
- - - - - - - -

-Friends

-bool operator== (const TimeOffset &a, const TimeOffset &b)
 
-void time_offset_mutation::incrementHour (TimeOffset &offset)
 
-void time_offset_mutation::increment15Minutes (TimeOffset &offset)
 
-

Detailed Description

-

A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC, but not always.

-

Use one of the static factory methods to create an instance. For example, each of the following creates a TimeOffset of -08:00:

-
- - - -
TimeOffset()
Constructor.
Definition: TimeOffset.h:125
-
static TimeOffset forOffsetString(const char *offsetString)
Create from an offset string (e.g.
Definition: TimeOffset.cpp:38
-
static TimeOffset forHours(int8_t hours)
Create TimeOffset with the corresponding hour offset.
Definition: TimeOffset.h:62
-
static TimeOffset forHourMinute(int8_t hour, int8_t minute)
Create TimeOffset from (hour, minute) offset.
Definition: TimeOffset.h:74
-
static TimeOffset forMinutes(int16_t minutes)
Create TimeOffset from minutes from 00:00.
Definition: TimeOffset.h:91
-

You can use the default constructor to create a +00:00 TimeOffset:

TimeOffset offset;
-

The current implementation has a resolution of 1-minute (using an internal int16_t type). The previous implementation (< v0.7) had a resolution of 15-minutes (using an internal int8_t type) because that was sufficient to handle all current timezones for years >= 2018 (determined by looking at https://en.wikipedia.org/wiki/List_of_UTC_time_offsets, and the TZ Database zonefiles itself through the tzcompiler.py script). However, 15-minute resolution is not sufficient to handle a handful of timezones in the past (years 2000 to 2011 or so). So I changed the implementation to use 2 bytes to handle 1-minute resolution.

-

This class does NOT know about the TZ Database (aka Olson database) https://en.wikipedia.org/wiki/Tz_database. That functionality is implemented in the TimeZone class.

- -

Definition at line 56 of file TimeOffset.h.

-

Constructor & Destructor Documentation

- -

◆ TimeOffset()

- -
-
- - - - - -
- - - - - - - -
ace_time::TimeOffset::TimeOffset ()
-
-inlineexplicit
-
- -

Constructor.

-

Create a time offset of 0.

- -

Definition at line 125 of file TimeOffset.h.

- -
-
-

Member Function Documentation

- -

◆ forHourMinute()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static TimeOffset ace_time::TimeOffset::forHourMinute (int8_t hour,
int8_t minute 
)
-
-inlinestatic
-
- -

Create TimeOffset from (hour, minute) offset.

-

If the offset is negative, then the negative sign must be added to both the hour and minute components. This allows a negative offset of less than -01:00 to be created. For example, -07:30 is created by 'forHourMinute(-7, -30)' (not 'forHourMinute(-7, 30), and -00:15 is created by 'forHourMinute(0, -15)'.

- -

Definition at line 74 of file TimeOffset.h.

- -
-
- -

◆ forHourMinuteSecond()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static TimeOffset ace_time::TimeOffset::forHourMinuteSecond (int8_t hour,
int8_t minute,
int8_t second 
)
-
-inlinestatic
-
- -

Create a TimeOffset fro (hour, minute, second) offset.

-

If the offset is is negative, the negative sign must be added to all fields. For example, -01:02:03 is created by forHourMinuteSecond(-1, -2, -3).

- -

Definition at line 84 of file TimeOffset.h.

- -
-
- -

◆ forHours()

- -
-
- - - - - -
- - - - - - - - -
static TimeOffset ace_time::TimeOffset::forHours (int8_t hours)
-
-inlinestatic
-
- -

Create TimeOffset with the corresponding hour offset.

-

For example, -08:00 is 'forHours(-8)'.

- -

Definition at line 62 of file TimeOffset.h.

- -
-
- -

◆ forOffsetString()

- -
-
- - - - - -
- - - - - - - - -
TimeOffset ace_time::TimeOffset::forOffsetString (const char * offsetString)
-
-static
-
- -

Create from an offset string (e.g.

-

"-07:00", "+01:00", "-02:15:33"). Intended mostly for testing purposes. Returns TimeOffset::forError() if a parsing error occurs.

-

NOTE: Error checking is not robust, and can be corrupted easily by a misformatted string, or a string with an invalid number of characters. This is intended only for debugging purposes, not for production quality.

- -

Definition at line 38 of file TimeOffset.cpp.

- -
-
- -

◆ forOffsetStringChainable()

- -
-
- - - - - -
- - - - - - - - -
TimeOffset ace_time::TimeOffset::forOffsetStringChainable (const char *& offsetString)
-
-static
-
- -

Variant of forOffsetString() that updates the string pointer to the next unprocessed character.

-

The resulting pointer can be passed to another forDateStringInternal() method to chain the parsing.

-

This method assumes that the offsetString is sufficiently long. Returns TimeOffset::forError() if a parsing error occurs.

- -

Definition at line 48 of file TimeOffset.cpp.

- -
-
- -

◆ isZero()

- -
-
- - - - - -
- - - - - - - -
bool ace_time::TimeOffset::isZero () const
-
-inline
-
- -

Returns true if offset is 00:00.

-

If this represents a time zone, then isZero means that it is UTC. If this represents a DST delta offset, then isZero means that the time zone is in standard time.

- -

Definition at line 162 of file TimeOffset.h.

- -
-
- -

◆ printTo()

- -
-
- - - - - - - - -
void ace_time::TimeOffset::printTo (Print & printer) const
-
- -

Print the human readable string, including a "-" or "+" prefix, in the form of "+/-hh:mm" or "+/-hh:mm:ss".

-

If the 'second' field is 0, then only the hour and minute fields are printed (e.g. "-08:00"), instead of all three fields (e.g. "+08:15:20").

- -

Definition at line 15 of file TimeOffset.cpp.

- -
-
- -

◆ toHourMinute()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void ace_time::TimeOffset::toHourMinute (int8_t & hour,
int8_t & minute 
) const
-
-inline
-
- -

Extract hour and minute representation of the offset.

-

This the inverse of 'forHourMinute()'. If the TimeOffset is negative, then both the hour and minute components will contain the negative sign.

- -

Definition at line 138 of file TimeOffset.h.

- -
-
- -

◆ toHourMinuteSecond()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void ace_time::TimeOffset::toHourMinuteSecond (int8_t & hour,
int8_t & minute,
int8_t & second 
) const
-
-inline
-
- -

Extract hour, minute, second from the offset.

-

Truncation is performed towards zero, so if the offset seconds is negative, each of the hour, minute, second fields will be negative.

- -

Definition at line 149 of file TimeOffset.h.

- -
-
-
The documentation for this class was generated from the following files:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimeOffset.h
  • -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimeOffset.cpp
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1TimePeriod-members.html b/docs/html/classace__time_1_1TimePeriod-members.html deleted file mode 100644 index c8b79ebf4..000000000 --- a/docs/html/classace__time_1_1TimePeriod-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::TimePeriod Member List
-
-
- -

This is the complete list of members for ace_time::TimePeriod, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - -
compareTo(const TimePeriod &that) constace_time::TimePeriodinline
forError(int8_t sign=0)ace_time::TimePeriodinlinestatic
hour() constace_time::TimePeriodinline
hour(uint8_t hour)ace_time::TimePeriodinline
isError() constace_time::TimePeriodinline
kInvalidPeriodSecondsace_time::TimePeriodstatic
kMaxPeriodSecondsace_time::TimePeriodstatic
minute() constace_time::TimePeriodinline
minute(uint8_t minute)ace_time::TimePeriodinline
operator=(const TimePeriod &)=default (defined in ace_time::TimePeriod)ace_time::TimePeriod
operator==(const TimePeriod &a, const TimePeriod &b)ace_time::TimePeriodfriend
printTo(Print &printer) constace_time::TimePeriod
second() constace_time::TimePeriodinline
second(uint8_t second)ace_time::TimePeriodinline
sign() constace_time::TimePeriodinline
sign(int8_t sign)ace_time::TimePeriodinline
TimePeriod(uint8_t hour, uint8_t minute, uint8_t second, int8_t sign=1)ace_time::TimePeriodinlineexplicit
TimePeriod(int32_t seconds=0)ace_time::TimePeriodinlineexplicit
TimePeriod(const TimePeriod &)=default (defined in ace_time::TimePeriod)ace_time::TimePeriod
toSeconds() constace_time::TimePeriodinline
- - - - diff --git a/docs/html/classace__time_1_1TimePeriod.html b/docs/html/classace__time_1_1TimePeriod.html deleted file mode 100644 index c7c7a1256..000000000 --- a/docs/html/classace__time_1_1TimePeriod.html +++ /dev/null @@ -1,640 +0,0 @@ - - - - - - - -AceTime: ace_time::TimePeriod Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
- -
- -

Represents a period of time relative to some known point in time, potentially represented by a DateTime. - More...

- -

#include <TimePeriod.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 TimePeriod (uint8_t hour, uint8_t minute, uint8_t second, int8_t sign=1)
 Constructor. More...
 
 TimePeriod (int32_t seconds=0)
 Constructor from number of seconds. More...
 
-uint8_t hour () const
 Return the hour.
 
void hour (uint8_t hour)
 Set the hour. More...
 
-uint8_t minute () const
 Return the minute.
 
void minute (uint8_t minute)
 Set the minute. More...
 
-uint8_t second () const
 Return the second.
 
void second (uint8_t second)
 Set the second. More...
 
-int8_t sign () const
 Return the sign bit.
 
void sign (int8_t sign)
 Set the sign bit. More...
 
int32_t toSeconds () const
 Convert to number of seconds. More...
 
bool isError () const
 Return true if this represents an error. More...
 
int8_t compareTo (const TimePeriod &that) const
 Compare 'this' TimePeriod with 'that' TimePeriod and return (<0, 0, >0) according to (this<that, this==that, this>that). More...
 
void printTo (Print &printer) const
 Print to given printer. More...
 
TimePeriod (const TimePeriod &)=default
 
-TimePeriodoperator= (const TimePeriod &)=default
 
- - - - -

-Static Public Member Functions

static TimePeriod forError (int8_t sign=0)
 Factory method that creates a TimePeriod representing a generic error so that isError() returns true. More...
 
- - - - - - - -

-Static Public Attributes

-static const int32_t kInvalidPeriodSeconds = INT32_MIN
 An invalid time period seconds.
 
static const int32_t kMaxPeriodSeconds = 921599
 The largest period that can be represented by this class, in seconds, corresponding to +/- 255h59m59s. More...
 
- - - - -

-Friends

bool operator== (const TimePeriod &a, const TimePeriod &b)
 Return true if two TimePeriod objects are equal. More...
 
-

Detailed Description

-

Represents a period of time relative to some known point in time, potentially represented by a DateTime.

-

Each component (hour, minute, second) is stored as an unsigned byte (uint8_t). The sign bit allows forward and backward time periods to be represented.

-

There are 3 conditions which return isError() true:

-
    -
  • generic error: sign == 0
  • -
  • overflow: sign == 1
  • -
  • underflow: sign == -1
  • -
- -

Definition at line 27 of file TimePeriod.h.

-

Constructor & Destructor Documentation

- -

◆ TimePeriod() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ace_time::TimePeriod::TimePeriod (uint8_t hour,
uint8_t minute,
uint8_t second,
int8_t sign = 1 
)
-
-inlineexplicit
-
- -

Constructor.

-

No input validation or normalization is performed by this constructor.

-
Parameters
- - - - - -
hourhour (0-255)
minuteminute (0-59)
secondsecond (0-59)
signThe sign bit. Should be either +1 or -1. Any other value may cause the isError() method to return true.
-
-
- -

Definition at line 60 of file TimePeriod.h.

- -
-
- -

◆ TimePeriod() [2/2]

- -
-
- - - - - -
- - - - - - - - -
ace_time::TimePeriod::TimePeriod (int32_t seconds = 0)
-
-inlineexplicit
-
- -

Constructor from number of seconds.

-

The largest valid 'seconds' is +/- 921599 corresponding to (hour=255, minute=59, second=59). For larger number or smaller values, an error object will be returned whose isError() returns true.

-
Parameters
- - -
secondsnumber of seconds (default 0)
-
-
- -

Definition at line 75 of file TimePeriod.h.

- -
-
-

Member Function Documentation

- -

◆ compareTo()

- -
-
- - - - - -
- - - - - - - - -
int8_t ace_time::TimePeriod::compareTo (const TimePeriodthat) const
-
-inline
-
- -

Compare 'this' TimePeriod with 'that' TimePeriod and return (<0, 0, >0) according to (this<that, this==that, this>that).

-

If either 'this' or 'that' returns true for isError(), then the result is undefined.

- -

Definition at line 162 of file TimePeriod.h.

- -
-
- -

◆ forError()

- -
-
- - - - - -
- - - - - - - - -
static TimePeriod ace_time::TimePeriod::forError (int8_t sign = 0)
-
-inlinestatic
-
- -

Factory method that creates a TimePeriod representing a generic error so that isError() returns true.

-
Parameters
- - -
signoptional sign value which indicates generic error (0, default), overflow (1), or underflow (-1).
-
-
- -

Definition at line 46 of file TimePeriod.h.

- -
-
- -

◆ hour()

- -
-
- - - - - -
- - - - - - - - -
void ace_time::TimePeriod::hour (uint8_t hour)
-
-inline
-
- -

Set the hour.

-

Should be between [0, 255]. No error checking is done.

- -

Definition at line 107 of file TimePeriod.h.

- -
-
- -

◆ isError()

- -
-
- - - - - -
- - - - - - - -
bool ace_time::TimePeriod::isError () const
-
-inline
-
- -

Return true if this represents an error.

-

Check the sign() value to descriminate the 3 different error conditions:

-
    -
  • sign==0: generic error
  • -
  • sign==1: overflow
  • -
  • sign==-1: underflow
  • -
- -

Definition at line 153 of file TimePeriod.h.

- -
-
- -

◆ minute()

- -
-
- - - - - -
- - - - - - - - -
void ace_time::TimePeriod::minute (uint8_t minute)
-
-inline
-
- -

Set the minute.

-

Should be between [0, 59]. No error checking is done.

- -

Definition at line 113 of file TimePeriod.h.

- -
-
- -

◆ printTo()

- -
-
- - - - - - - - -
void ace_time::TimePeriod::printTo (Print & printer) const
-
- -

Print to given printer.

-

If the time period is negative, a minus sign is prepended. If the TimePeriod is an error, prints the following:

-
    -
  • sign == 0, generic error: <Error>
  • -
  • sign == 1, overflow: <+Inf>
  • -
  • sign == -1, underflow: <-Inf>
  • -
-

This class does not implement the Printable interface to avoid increasing the size of the object from the additional virtual function.

- -

Definition at line 14 of file TimePeriod.cpp.

- -
-
- -

◆ second()

- -
-
- - - - - -
- - - - - - - - -
void ace_time::TimePeriod::second (uint8_t second)
-
-inline
-
- -

Set the second.

-

Should be between [0, 59]. No error checking is done.

- -

Definition at line 119 of file TimePeriod.h.

- -
-
- -

◆ sign()

- -
-
- - - - - -
- - - - - - - - -
void ace_time::TimePeriod::sign (int8_t sign)
-
-inline
-
- -

Set the sign bit.

-

Should be either +1 or -1. Setting it to 0 causes isError() to return true, to indicate a generic error condition. Any other value caused undefined behavior.

- -

Definition at line 129 of file TimePeriod.h.

- -
-
- -

◆ toSeconds()

- -
-
- - - - - -
- - - - - - - -
int32_t ace_time::TimePeriod::toSeconds () const
-
-inline
-
- -

Convert to number of seconds.

-

For a normal TimePeriod, the maximum and minimum values are +kMaxPeriodSeconds or -kMaxPeriodSeconds. If isError() is true, this returns kInvalidPeriodSeconds.

- -

Definition at line 136 of file TimePeriod.h.

- -
-
-

Friends And Related Function Documentation

- -

◆ operator==

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool operator== (const TimePerioda,
const TimePeriodb 
)
-
-friend
-
- -

Return true if two TimePeriod objects are equal.

-

Optimized for small changes in the less signficant fields.

- -

Definition at line 211 of file TimePeriod.h.

- -
-
-

Member Data Documentation

- -

◆ kMaxPeriodSeconds

- -
-
- - - - - -
- - - - -
const int32_t ace_time::TimePeriod::kMaxPeriodSeconds = 921599
-
-static
-
- -

The largest period that can be represented by this class, in seconds, corresponding to +/- 255h59m59s.

-

The same limit applies in the positive and negative direction.

- -

Definition at line 37 of file TimePeriod.h.

- -
-
-
The documentation for this class was generated from the following files:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimePeriod.h
  • -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimePeriod.cpp
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1TimeZone-members.html b/docs/html/classace__time_1_1TimeZone-members.html deleted file mode 100644 index acf12a80f..000000000 --- a/docs/html/classace__time_1_1TimeZone-members.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::TimeZone Member List
-
-
- -

This is the complete list of members for ace_time::TimeZone, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
forError()ace_time::TimeZoneinlinestatic
forHourMinute(int8_t stdHour, int8_t stdMinute, int8_t dstHour=0, int8_t dstMinute=0)ace_time::TimeZoneinlinestatic
forHours(int8_t stdHours, int8_t dstHours=0)ace_time::TimeZoneinlinestatic
forMinutes(int16_t stdMinutes, int16_t dstMinutes=0)ace_time::TimeZoneinlinestatic
forTimeOffset(TimeOffset stdOffset, TimeOffset dstOffset=TimeOffset())ace_time::TimeZoneinlinestatic
forUtc()ace_time::TimeZoneinlinestatic
forZoneInfo(const basic::Info::ZoneInfo *zoneInfo, BasicZoneProcessor *zoneProcessor)ace_time::TimeZoneinlinestatic
forZoneInfo(const extended::Info::ZoneInfo *zoneInfo, ExtendedZoneProcessor *zoneProcessor)ace_time::TimeZoneinlinestatic
forZoneInfo(const complete::Info::ZoneInfo *zoneInfo, CompleteZoneProcessor *zoneProcessor)ace_time::TimeZoneinlinestatic
forZoneKey(uintptr_t zoneKey, ZoneProcessor *processor)ace_time::TimeZoneinlinestatic
getDstOffset() constace_time::TimeZoneinline
getOffsetDateTime(const LocalDateTime &ldt) constace_time::TimeZoneinline
getOffsetDateTime(acetime_t epochSeconds) constace_time::TimeZoneinline
getStdOffset() constace_time::TimeZoneinline
getType() constace_time::TimeZoneinline
getZonedExtra(const LocalDateTime &ldt) constace_time::TimeZoneinline
getZonedExtra(acetime_t epochSeconds) constace_time::TimeZoneinline
getZoneId() constace_time::TimeZoneinline
isDst() constace_time::TimeZoneinline
isError() constace_time::TimeZoneinline
isLink() constace_time::TimeZoneinline
isUtc() constace_time::TimeZoneinline
kTypeErrorace_time::TimeZonestatic
kTypeManualace_time::TimeZonestatic
kTypeReservedace_time::TimeZonestatic
mDstOffsetMinutes (defined in ace_time::TimeZone)ace_time::TimeZone
mStdOffsetMinutes (defined in ace_time::TimeZone)ace_time::TimeZone
mZoneKeyace_time::TimeZone
mZoneProcessorace_time::TimeZone
operator=(const TimeZone &)=default (defined in ace_time::TimeZone)ace_time::TimeZone
operator== (defined in ace_time::TimeZone)ace_time::TimeZonefriend
printShortTo(Print &printer) constace_time::TimeZone
printTargetNameTo(Print &printer) constace_time::TimeZone
printTo(Print &printer) constace_time::TimeZone
TimeZone()ace_time::TimeZoneinline
TimeZone(const TimeZone &)=default (defined in ace_time::TimeZone)ace_time::TimeZone
toTimeZoneData() constace_time::TimeZoneinline
- - - - diff --git a/docs/html/classace__time_1_1TimeZone.html b/docs/html/classace__time_1_1TimeZone.html deleted file mode 100644 index 54d7a9db4..000000000 --- a/docs/html/classace__time_1_1TimeZone.html +++ /dev/null @@ -1,1022 +0,0 @@ - - - - - - - -AceTime: ace_time::TimeZone Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
- -
- -

Class that describes a time zone. - More...

- -

#include <TimeZone.h>

-
-Collaboration diagram for ace_time::TimeZone:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

TimeZone ()
 Default constructor creates a UTC TimeZone.
 
uint8_t getType () const
 Return the type of TimeZone, used to determine the behavior of certain methods at runtime. More...
 
TimeOffset getStdOffset () const
 Return the Standard TimeOffset. More...
 
TimeOffset getDstOffset () const
 Return the DST TimeOffset. More...
 
-bool isLink () const
 Return true if timezone is a Link entry pointing to a Zone entry.
 
uint32_t getZoneId () const
 Return the zoneId for kTypeBasic, kTypeExtended. More...
 
-bool isError () const
 Return true if TimeZone is an error.
 
-ZonedExtra getZonedExtra (const LocalDateTime &ldt) const
 Return the ZonedExtra information at epochSeconds.
 
-ZonedExtra getZonedExtra (acetime_t epochSeconds) const
 Return the ZonedExtra information at epochSeconds.
 
OffsetDateTime getOffsetDateTime (const LocalDateTime &ldt) const
 Return the best estimate of the OffsetDateTime at the given LocalDateTime for the current TimeZone. More...
 
OffsetDateTime getOffsetDateTime (acetime_t epochSeconds) const
 Return the best estimate of the OffsetDateTime at the given epochSeconds. More...
 
-bool isUtc () const
 Return true if UTC (+00:00+00:00).
 
bool isDst () const
 Return if mDstOffsetMinutes is not zero. More...
 
TimeZoneData toTimeZoneData () const
 Convert to a TimeZoneData object, which can be fed back into ZoneManager::createForTimeZoneData() to recreate the TimeZone. More...
 
void printTo (Print &printer) const
 Print the text representation of the time zone using the full canonical time zone name or UTC offset shift. More...
 
void printShortTo (Print &printer) const
 Print the short human readable representation of the time zone. More...
 
void printTargetNameTo (Print &printer) const
 Print the name of the target zone if the current time zone is a Link. More...
 
TimeZone (const TimeZone &)=default
 
-TimeZoneoperator= (const TimeZone &)=default
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

-static TimeZone forUtc ()
 Factory method to create a UTC TimeZone.
 
static TimeZone forTimeOffset (TimeOffset stdOffset, TimeOffset dstOffset=TimeOffset())
 Factory method to create from a UTC offset and an optional DST offset. More...
 
static TimeZone forHours (int8_t stdHours, int8_t dstHours=0)
 Factory method to create from UTC hour offset and optional DST hour offset. More...
 
static TimeZone forMinutes (int16_t stdMinutes, int16_t dstMinutes=0)
 Factory method to create from UTC minute offset and optional DST minute offset. More...
 
static TimeZone forHourMinute (int8_t stdHour, int8_t stdMinute, int8_t dstHour=0, int8_t dstMinute=0)
 Factory method to create from UTC (hour, minute) pair and optional DST (hour, minute) pair. More...
 
static TimeZone forZoneInfo (const basic::Info::ZoneInfo *zoneInfo, BasicZoneProcessor *zoneProcessor)
 Convenience factory method to create from a zoneInfo and an associated BasicZoneProcessor. More...
 
static TimeZone forZoneInfo (const extended::Info::ZoneInfo *zoneInfo, ExtendedZoneProcessor *zoneProcessor)
 Convenience factory method to create from a zoneInfo and an associated ExtendedZoneProcessor. More...
 
static TimeZone forZoneInfo (const complete::Info::ZoneInfo *zoneInfo, CompleteZoneProcessor *zoneProcessor)
 Convenience factory method to create from a zoneInfo and an associated ExtendedZoneProcessor. More...
 
static TimeZone forZoneKey (uintptr_t zoneKey, ZoneProcessor *processor)
 Factory method to create from a generic zoneKey and a generic zoneProcessor. More...
 
static TimeZone forError ()
 Return a TimeZone representing an error condition. More...
 
- - - - - - - - - - -

-Static Public Attributes

-static const uint8_t kTypeError = 0
 A TimeZone that represents an invalid condition.
 
-static const uint8_t kTypeManual = 1
 Manual STD offset and DST offset.
 
-static const uint8_t kTypeReserved = 2
 Reserved for future use.
 
- - - -

-Friends

-bool operator== (const TimeZone &a, const TimeZone &b)
 
-

Detailed Description

-

Class that describes a time zone.

-

There are 2 colloquial usages of "time -zone". The first refers to a simple fixed offset from UTC. For example, we may say that "we are in -05:00 time zone". The second is a geographical region that obeys a consistent set of rules regarding the value of the UTC offset, and when the transitions to DST happens (if at all). The best known source of these geographical regions is the TZ Database maintained by IANA (https://www.iana.org/time-zones). The TimeZone class supports both meanings.

-

The TimeZone::getType() is designed to be extensible, so only some of its values are defined by this class:

- -

The TimeZone class is an immutable value type. It can be passed around by value, but since it is between 5 bytes (8-bit processors) and 12 bytes (32-bit processors) big, it may be slightly more efficient to pass by const reference, then save locally by-value when needed. The ZonedDateTime holds the TimeZone object by-value.

-

Semantically, TimeZone really really wants to be a reference type because it needs have a reference to the ZoneProcessor helper class to do its work. In other words, it would be very convenient if the client code could create this object on the heap, and pass it around using a smart pointer to the ZonedDateTime class and shared among multiple ZonedDateTime objects. This would also allow new TimeZones to be created, while allowing older instances of ZonedDateTime to hold on to the previous versions of TimeZone.

-

However, in a small memory embedded environment (like Arduino Nano or Micro with only 2kB of RAM), I want to avoid any use of the heap (new operator or malloc()) inside the AceTime library. I separated out the memory intensive or mutable features of the TimeZone class into the separate ZoneProcessor class. The ZoneProcessor object should be created once at initialization time of the application (either statically allocated or potentially on the heap early in the application start up).

-

An alternative implementation would use an inheritance hierarchy for the TimeZone with subclasses like ManualTimeZone, BasicTimeZone and ExtendedTimeZone. However since different subclasses are of different sizes, the TimeZone object can no longer be passed around by-value, so the ZonedDateTime is forced to hold on to the TimeZone object using a pointer. Then we are forced to deal with difficult memory management and life cycle problems. Using a single TimeZone class and implementing it as a value type simplifies a lot of code.

-

The object can be serialized using the TimeZone::toTimeZoneData() method, and reconstructed using the ZoneManager::createForTimeZoneData() method.

- -

Definition at line 86 of file TimeZone.h.

-

Member Function Documentation

- -

◆ forError()

- -
-
- - - - - -
- - - - - - - -
static TimeZone ace_time::TimeZone::forError ()
-
-inlinestatic
-
- -

Return a TimeZone representing an error condition.

-

isError() returns true for this instance.

- -

Definition at line 241 of file TimeZone.h.

- -
-
- -

◆ forHourMinute()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static TimeZone ace_time::TimeZone::forHourMinute (int8_t stdHour,
int8_t stdMinute,
int8_t dstHour = 0,
int8_t dstMinute = 0 
)
-
-inlinestatic
-
- -

Factory method to create from UTC (hour, minute) pair and optional DST (hour, minute) pair.

-

This is a convenience alternative to forTimeOffset(TimeOffset::forHour(stdHour), TimeOffset::forHour(stdHour)).

- -

Definition at line 154 of file TimeZone.h.

- -
-
- -

◆ forHours()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static TimeZone ace_time::TimeZone::forHours (int8_t stdHours,
int8_t dstHours = 0 
)
-
-inlinestatic
-
- -

Factory method to create from UTC hour offset and optional DST hour offset.

-

This is a convenience alternative to forTimeOffset(TimeOffset::forHours(stdHour), TimeOffset::forHours(stdHour)).

- -

Definition at line 128 of file TimeZone.h.

- -
-
- -

◆ forMinutes()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static TimeZone ace_time::TimeZone::forMinutes (int16_t stdMinutes,
int16_t dstMinutes = 0 
)
-
-inlinestatic
-
- -

Factory method to create from UTC minute offset and optional DST minute offset.

-

This is a convenience alternative to forTimeOffset(TimeOffset::forMinutes(stdMinutes), TimeOffset::forMinutes(dstMinutes)).

- -

Definition at line 141 of file TimeZone.h.

- -
-
- -

◆ forTimeOffset()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static TimeZone ace_time::TimeZone::forTimeOffset (TimeOffset stdOffset,
TimeOffset dstOffset = TimeOffset() 
)
-
-inlinestatic
-
- -

Factory method to create from a UTC offset and an optional DST offset.

-

It may be easier to use the following convenience methods:

- -

This method may become deprecated in the future.

-
Parameters
- - - -
stdOffsetthe base offset
dstOffsetthe DST offset, default TimeOffset() (i.e. 0 offset)
-
-
- -

Definition at line 115 of file TimeZone.h.

- -
-
- -

◆ forZoneInfo() [1/3]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static TimeZone ace_time::TimeZone::forZoneInfo (const basic::Info::ZoneInfozoneInfo,
BasicZoneProcessorzoneProcessor 
)
-
-inlinestatic
-
- -

Convenience factory method to create from a zoneInfo and an associated BasicZoneProcessor.

-

The ZoneInfo previously associated with the given zoneProcessor is overridden.

-
Parameters
- - - -
zoneInfoa basic::Info::ZoneInfo that identifies the zone
zoneProcessora pointer to a ZoneProcessor, cannot be nullptr
-
-
- -

Definition at line 174 of file TimeZone.h.

- -
-
- -

◆ forZoneInfo() [2/3]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static TimeZone ace_time::TimeZone::forZoneInfo (const complete::Info::ZoneInfozoneInfo,
CompleteZoneProcessorzoneProcessor 
)
-
-inlinestatic
-
- -

Convenience factory method to create from a zoneInfo and an associated ExtendedZoneProcessor.

-

The ZoneInfo previously associated with the given zoneProcessor is overridden.

-
Parameters
- - - -
zoneInfoan complete::Info::ZoneInfo that identifies the zone
zoneProcessora pointer to a ZoneProcessor, cannot be nullptr
-
-
- -

Definition at line 212 of file TimeZone.h.

- -
-
- -

◆ forZoneInfo() [3/3]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static TimeZone ace_time::TimeZone::forZoneInfo (const extended::Info::ZoneInfozoneInfo,
ExtendedZoneProcessorzoneProcessor 
)
-
-inlinestatic
-
- -

Convenience factory method to create from a zoneInfo and an associated ExtendedZoneProcessor.

-

The ZoneInfo previously associated with the given zoneProcessor is overridden.

-
Parameters
- - - -
zoneInfoan extended::Info::ZoneInfo that identifies the zone
zoneProcessora pointer to a ZoneProcessor, cannot be nullptr
-
-
- -

Definition at line 193 of file TimeZone.h.

- -
-
- -

◆ forZoneKey()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static TimeZone ace_time::TimeZone::forZoneKey (uintptr_t zoneKey,
ZoneProcessorprocessor 
)
-
-inlinestatic
-
- -

Factory method to create from a generic zoneKey and a generic zoneProcessor.

-

The 'type' of the TimeZone is extracted from ZoneProcessor::getType(). This is an internal method for use by ZoneProcessor and its implementation classes.

-
Parameters
- - - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
processorthe ZoneProcessor instance bound to the TimeZone
-
-
- -

Definition at line 233 of file TimeZone.h.

- -
-
- -

◆ getDstOffset()

- -
-
- - - - - -
- - - - - - - -
TimeOffset ace_time::TimeZone::getDstOffset () const
-
-inline
-
- -

Return the DST TimeOffset.

-

Valid only for kTypeManual.

- -

Definition at line 266 of file TimeZone.h.

- -
-
- -

◆ getOffsetDateTime() [1/2]

- -
-
- - - - - -
- - - - - - - - -
OffsetDateTime ace_time::TimeZone::getOffsetDateTime (acetime_t epochSeconds) const
-
-inline
-
- -

Return the best estimate of the OffsetDateTime at the given epochSeconds.

-

Used by ZonedDateTime::forEpochSeconds(), so exposed publically for testing and debugging.

- -

Definition at line 432 of file TimeZone.h.

- -
-
- -

◆ getOffsetDateTime() [2/2]

- -
-
- - - - - -
- - - - - - - - -
OffsetDateTime ace_time::TimeZone::getOffsetDateTime (const LocalDateTimeldt) const
-
-inline
-
- -

Return the best estimate of the OffsetDateTime at the given LocalDateTime for the current TimeZone.

-

Used by ZonedDateTime::forComponents(), so intended to be used mostly for testing and debugging.

- -

Definition at line 386 of file TimeZone.h.

- -
-
- -

◆ getStdOffset()

- -
-
- - - - - -
- - - - - - - -
TimeOffset ace_time::TimeZone::getStdOffset () const
-
-inline
-
- -

Return the Standard TimeOffset.

-

Valid only for kTypeManual.

- -

Definition at line 261 of file TimeZone.h.

- -
-
- -

◆ getType()

- -
-
- - - - - -
- - - - - - - -
uint8_t ace_time::TimeZone::getType () const
-
-inline
-
- -

Return the type of TimeZone, used to determine the behavior of certain methods at runtime.

-

The exact value returned by this method is designed to be extensible and is an internal implementation detail. It will probably not be stable across multiple versions of this library. For stable serialization, use the toTimeZoneData() method instead.

- -

Definition at line 258 of file TimeZone.h.

- -
-
- -

◆ getZoneId()

- -
-
- - - - - -
- - - - - - - -
uint32_t ace_time::TimeZone::getZoneId () const
-
-inline
-
- -

Return the zoneId for kTypeBasic, kTypeExtended.

-

Returns 0 for kTypeManual. (It is not entirely clear that a valid zoneId is always > 0, but there is little I can do without C++ exceptions.)

- -

Definition at line 288 of file TimeZone.h.

- -
-
- -

◆ isDst()

- -
-
- - - - - -
- - - - - - - -
bool ace_time::TimeZone::isDst () const
-
-inline
-
- -

Return if mDstOffsetMinutes is not zero.

-

This is a convenience method that is valid only if the TimeZone is a kTypeManual. Returns false for all other type of TimeZone. This is intended to be used by applications which allows the user to set the UTC offset and DST flag manually (e.g. examples/WorldClock.ino).

- -

Definition at line 475 of file TimeZone.h.

- -
-
- -

◆ printShortTo()

- -
-
- - - - - - - - -
void ace_time::TimeZone::printShortTo (Print & printer) const
-
- -

Print the short human readable representation of the time zone.

-

This method uses some rough heuristics for determine the reasonable human readable form. For basic and extended time zones, the last component of the canonical zone name is printed, with the underscore character replaced with just a space, for example "Los Angeles". For manual time zones, it prints the total UTC offset with a (D) if the DST flag is active and an (S) if not, for example, "-08:00(S)".

-

If you need better control over how the time zone is displayed, you need to write that code yourself using the getType() and the getZoneId() identifiers.

-
    -
  • kTypeManual is printed as "+/-hh:mm(S|D)" depending on DST or STD flag (e.g. "-07:00(D)")
  • -
  • kTypeBasic is printed as "{zoneShortName}" (e.g. "Los Angeles")
  • -
  • kTypeExtended is printed as "{zoneShortName}" (e.g. "Los Angeles")
  • -
- -

Definition at line 34 of file TimeZone.cpp.

- -
-
- -

◆ printTargetNameTo()

- -
-
- - - - - - - - -
void ace_time::TimeZone::printTargetNameTo (Print & printer) const
-
- -

Print the name of the target zone if the current time zone is a Link.

-

Otherwise print nothing.

- -

Definition at line 60 of file TimeZone.cpp.

- -
-
- -

◆ printTo()

- -
-
- - - - - - - - -
void ace_time::TimeZone::printTo (Print & printer) const
-
- -

Print the text representation of the time zone using the full canonical time zone name or UTC offset shift.

-
    -
  • kTypeManual is printed as "+/-hh:mm+/-hh:mm" (e.g. "-08:00+00:00")
  • -
  • kTypeBasic is printed as "{zoneName}" (e.g. "America/Los_Angeles")
  • -
  • kTypeExtended is printed as "{zoneName}" (e.g. "America/Los_Angeles")
  • -
- -

Definition at line 12 of file TimeZone.cpp.

- -
-
- -

◆ toTimeZoneData()

- -
-
- - - - - -
- - - - - - - -
TimeZoneData ace_time::TimeZone::toTimeZoneData () const
-
-inline
-
- -

Convert to a TimeZoneData object, which can be fed back into ZoneManager::createForTimeZoneData() to recreate the TimeZone.

-

Both TimeZone::kTypeBasic and TimeZone::kTypeExtended are mapped to TimeZoneData::kTypeZoneId.

- -

Definition at line 486 of file TimeZone.h.

- -
-
-

Member Data Documentation

- -

◆ mZoneKey

- -
-
- - - - -
uintptr_t ace_time::TimeZone::mZoneKey
-
- -

An opaque zone key.

-
    -
  • For kTypeBasic, this is a (const basic::Info::ZoneInfo*).
  • -
  • For kTypeExtended, this is a (const extended::Info::ZoneInfo*).
  • -
  • For kTypeComplete, this is a (const complete::Info::ZoneInfo*).
  • -
-

Internally, the TimeZone class does not care how this is implemented. The factory methods expose these types for the convenience of the end users.

- -

Definition at line 625 of file TimeZone.h.

- -
-
-
The documentation for this class was generated from the following files:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimeZone.h
  • -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimeZone.cpp
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1TimeZone__coll__graph.map b/docs/html/classace__time_1_1TimeZone__coll__graph.map deleted file mode 100644 index 80d7e811e..000000000 --- a/docs/html/classace__time_1_1TimeZone__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/classace__time_1_1TimeZone__coll__graph.md5 b/docs/html/classace__time_1_1TimeZone__coll__graph.md5 deleted file mode 100644 index 2673b0f66..000000000 --- a/docs/html/classace__time_1_1TimeZone__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -606634e941f4dba1fd0cd8500b07b984 \ No newline at end of file diff --git a/docs/html/classace__time_1_1TimeZone__coll__graph.png b/docs/html/classace__time_1_1TimeZone__coll__graph.png deleted file mode 100644 index a1a64062e12fb259625f587349fb65eccdf8d983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5404 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 pF - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoHigh Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoHigh, including all inherited members.

- - - - - -
timeCodeToSeconds(uint16_t code, uint8_t modifier)ace_time::ZoneInfoHighinlinestatic
toDeltaSeconds(uint8_t deltaMinutes)ace_time::ZoneInfoHighinlinestatic
toOffsetSeconds(uint16_t offsetCode, uint8_t offsetRemainder)ace_time::ZoneInfoHighinlinestatic
toSuffix(uint8_t modifier)ace_time::ZoneInfoHighinlinestatic
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh.html b/docs/html/classace__time_1_1ZoneInfoHigh.html deleted file mode 100644 index 8611918fb..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoHigh Class Reference
-
-
- -

Wrapper class so that the entire collection can be referenced as a singel template parameter. - More...

- -

#include <ZoneInfoHigh.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

struct  ZoneContext
 Metadata about the zone database. More...
 
class  ZoneContextBroker
 Data broker for accessing a ZoneContext. More...
 
struct  ZoneEra
 An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. More...
 
class  ZoneEraBroker
 Data broker for accessing ZoneEra. More...
 
struct  ZoneInfo
 Representation of a given time zone, implemented as an array of ZoneEra records. More...
 
class  ZoneInfoBroker
 Data broker for accessing ZoneInfo. More...
 
class  ZoneInfoStore
 A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo. More...
 
struct  ZonePolicy
 A collection of transition rules which describe the DST rules of a given administrative region. More...
 
class  ZonePolicyBroker
 Data broker for accessing ZonePolicy. More...
 
class  ZoneRegistryBroker
 Data broker for accessing the ZoneRegistry. More...
 
struct  ZoneRule
 A time zone transition rule. More...
 
class  ZoneRuleBroker
 Data broker for accessing ZoneRule. More...
 
- - - - - - - - - - - - - -

-Static Public Member Functions

-static int32_t toDeltaSeconds (uint8_t deltaMinutes)
 Convert the deltaMinutes holding the RULES/DSTOFF field in ZoneEra or the SAVE field in ZoneRule to delta offset in seconds.
 
-static int32_t toOffsetSeconds (uint16_t offsetCode, uint8_t offsetRemainder)
 Convert (code, remainder) holding the STDOFF field of ZoneEra into seconds.
 
static uint32_t timeCodeToSeconds (uint16_t code, uint8_t modifier)
 Convert (code, modifier) holding the UNTIL time in ZoneInfo or AT time in ZoneRule into seconds. More...
 
static uint8_t toSuffix (uint8_t modifier)
 Extract the 'w', 's' 'u' suffix from the 'modifier' field, so that they can be compared against kSuffixW, kSuffixS and kSuffixU. More...
 
-

Detailed Description

-

Wrapper class so that the entire collection can be referenced as a singel template parameter.

- -

Definition at line 42 of file ZoneInfoHigh.h.

-

Member Function Documentation

- -

◆ timeCodeToSeconds()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static uint32_t ace_time::ZoneInfoHigh::timeCodeToSeconds (uint16_t code,
uint8_t modifier 
)
-
-inlinestatic
-
- -

Convert (code, modifier) holding the UNTIL time in ZoneInfo or AT time in ZoneRule into seconds.

-

The code parameter holds the AT or UNTIL time in units of 15 seconds. The lower 4-bits of modifier holds the remainder seconds.

- -

Definition at line 370 of file ZoneInfoHigh.h.

- -
-
- -

◆ toSuffix()

- -
-
- - - - - -
- - - - - - - - -
static uint8_t ace_time::ZoneInfoHigh::toSuffix (uint8_t modifier)
-
-inlinestatic
-
- -

Extract the 'w', 's' 'u' suffix from the 'modifier' field, so that they can be compared against kSuffixW, kSuffixS and kSuffixU.

-

Used for Zone.UNTIL and Rule.AT fields.

- -

Definition at line 379 of file ZoneInfoHigh.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneContextBroker-members.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneContextBroker-members.html deleted file mode 100644 index b65b8f96e..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneContextBroker-members.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoHigh::ZoneContextBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoHigh::ZoneContextBroker, including all inherited members.

- - - - - - - - - - - - - - - - - -
baseYear() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
fragments() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
isNull() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
letter(uint8_t i) const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
maxTransitions() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
numFragments() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
numLetters() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
operator=(const ZoneContextBroker &)=default (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBroker
raw() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
startYear() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
startYearAccurate() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
tzVersion() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
untilYear() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
untilYearAccurate() const (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinline
ZoneContextBroker(const ZoneContext *zoneContext=nullptr) (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBrokerinlineexplicit
ZoneContextBroker(const ZoneContextBroker &)=default (defined in ace_time::ZoneInfoHigh::ZoneContextBroker)ace_time::ZoneInfoHigh::ZoneContextBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneContextBroker.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneContextBroker.html deleted file mode 100644 index 31ce01b96..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneContextBroker.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZoneContextBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoHigh::ZoneContextBroker Class Reference
-
-
- -

Data broker for accessing a ZoneContext. - More...

- -

#include <ZoneInfoHigh.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneContextBroker (const ZoneContext *zoneContext=nullptr)
 
ZoneContextBroker (const ZoneContextBroker &)=default
 
-ZoneContextBrokeroperator= (const ZoneContextBroker &)=default
 
-bool isNull () const
 
-const ZoneContextraw () const
 
-int16_t startYear () const
 
-int16_t untilYear () const
 
-int16_t startYearAccurate () const
 
-int16_t untilYearAccurate () const
 
-int16_t baseYear () const
 
-int16_t maxTransitions () const
 
-const __FlashStringHelper * tzVersion () const
 
-uint8_t numFragments () const
 
-uint8_t numLetters () const
 
-const __FlashStringHelper *const * fragments () const
 
-const __FlashStringHelper * letter (uint8_t i) const
 
-

Detailed Description

-

Data broker for accessing a ZoneContext.

- -

Definition at line 388 of file ZoneInfoHigh.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneEraBroker-members.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneEraBroker-members.html deleted file mode 100644 index 61cf16cae..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneEraBroker-members.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoHigh::ZoneEraBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoHigh::ZoneEraBroker, including all inherited members.

- - - - - - - - - - - - - - - -
deltaSeconds() const (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinline
equals(const ZoneEraBroker &other) const (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinline
format() const (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinline
isNull() const (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinline
offsetSeconds() const (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinline
operator=(const ZoneEraBroker &)=default (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBroker
untilDay() const (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinline
untilMonth() const (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinline
untilTimeSeconds() const (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinline
untilTimeSuffix() const (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinline
untilYear() const (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinline
ZoneEraBroker(const ZoneContext *zoneContext=nullptr, const ZoneEra *zoneEra=nullptr) (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinlineexplicit
ZoneEraBroker(const ZoneEraBroker &)=default (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBroker
zonePolicy() const (defined in ace_time::ZoneInfoHigh::ZoneEraBroker)ace_time::ZoneInfoHigh::ZoneEraBrokerinline
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneEraBroker.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneEraBroker.html deleted file mode 100644 index 733487ab5..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneEraBroker.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZoneEraBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoHigh::ZoneEraBroker Class Reference
-
-
- -

Data broker for accessing ZoneEra. - More...

- -

#include <ZoneInfoHigh.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneEraBroker (const ZoneContext *zoneContext=nullptr, const ZoneEra *zoneEra=nullptr)
 
ZoneEraBroker (const ZoneEraBroker &)=default
 
-ZoneEraBrokeroperator= (const ZoneEraBroker &)=default
 
-bool isNull () const
 
-bool equals (const ZoneEraBroker &other) const
 
-const ZonePolicyBroker zonePolicy () const
 
-int32_t offsetSeconds () const
 
-int32_t deltaSeconds () const
 
-const char * format () const
 
-int16_t untilYear () const
 
-uint8_t untilMonth () const
 
-uint8_t untilDay () const
 
-uint32_t untilTimeSeconds () const
 
-uint8_t untilTimeSuffix () const
 
-

Detailed Description

-

Data broker for accessing ZoneEra.

- -

Definition at line 563 of file ZoneInfoHigh.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker-members.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker-members.html deleted file mode 100644 index 7592fb759..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker-members.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoHigh::ZoneInfoBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoHigh::ZoneInfoBroker, including all inherited members.

- - - - - - - - - - - - - - - - -
equals(uintptr_t zoneKey) constace_time::ZoneInfoHigh::ZoneInfoBrokerinline
equals(const ZoneInfoBroker &zoneInfoBroker) const (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBrokerinline
era(uint8_t i) const (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBrokerinline
isLink() const (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBrokerinline
isNull() const (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBrokerinline
name() const (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBrokerinline
numEras() const (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBrokerinline
operator=(const ZoneInfoBroker &)=default (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBroker
printNameTo(Print &printer) constace_time::ZoneInfoHigh::ZoneInfoBrokerinline
printShortNameTo(Print &printer) constace_time::ZoneInfoHigh::ZoneInfoBrokerinline
targetInfo() const (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBrokerinline
zoneContext() const (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBrokerinline
zoneId() const (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBrokerinline
ZoneInfoBroker(const ZoneInfo *zoneInfo=nullptr) (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBrokerinlineexplicit
ZoneInfoBroker(const ZoneInfoBroker &)=default (defined in ace_time::ZoneInfoHigh::ZoneInfoBroker)ace_time::ZoneInfoHigh::ZoneInfoBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html deleted file mode 100644 index cd6a6679d..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZoneInfoBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoHigh::ZoneInfoBroker Class Reference
-
-
- -

Data broker for accessing ZoneInfo. - More...

- -

#include <ZoneInfoHigh.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneInfoBroker (const ZoneInfo *zoneInfo=nullptr)
 
ZoneInfoBroker (const ZoneInfoBroker &)=default
 
-ZoneInfoBrokeroperator= (const ZoneInfoBroker &)=default
 
bool equals (uintptr_t zoneKey) const
 
-bool equals (const ZoneInfoBroker &zoneInfoBroker) const
 
-bool isNull () const
 
-const ZoneContextBroker zoneContext () const
 
-const __FlashStringHelper * name () const
 
-uint32_t zoneId () const
 
-uint8_t numEras () const
 
-const ZoneEraBroker era (uint8_t i) const
 
-bool isLink () const
 
-ZoneInfoBroker targetInfo () const
 
void printNameTo (Print &printer) const
 Print a human-readable identifier (e.g. More...
 
void printShortNameTo (Print &printer) const
 Print a short human-readable identifier (e.g. More...
 
-

Detailed Description

-

Data broker for accessing ZoneInfo.

- -

Definition at line 634 of file ZoneInfoHigh.h.

-

Member Function Documentation

- -

◆ equals()

- -
-
- - - - - -
- - - - - - - - -
bool ace_time::ZoneInfoHigh::ZoneInfoBroker::equals (uintptr_t zoneKey) const
-
-inline
-
-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Definition at line 649 of file ZoneInfoHigh.h.

- -
-
- -

◆ printNameTo()

- -
-
- - - - - -
- - - - - - - - -
void ace_time::ZoneInfoHigh::ZoneInfoBroker::printNameTo (Print & printer) const
-
-inline
-
- -

Print a human-readable identifier (e.g.

-

"America/Los_Angeles").

- -

Definition at line 692 of file ZoneInfoHigh.h.

- -
-
- -

◆ printShortNameTo()

- -
-
- - - - - -
- - - - - - - - -
void ace_time::ZoneInfoHigh::ZoneInfoBroker::printShortNameTo (Print & printer) const
-
-inline
-
- -

Print a short human-readable identifier (e.g.

-

"Los Angeles"). Any underscore in the short name is replaced with a space.

- -

Definition at line 702 of file ZoneInfoHigh.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore-members.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore-members.html deleted file mode 100644 index 47a4cef38..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore-members.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoHigh::ZoneInfoStore Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoHigh::ZoneInfoStore, including all inherited members.

- - -
createZoneInfoBroker(uintptr_t zoneKey) constace_time::ZoneInfoHigh::ZoneInfoStoreinline
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore.html deleted file mode 100644 index e91ac7610..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZoneInfoStore Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoHigh::ZoneInfoStore Class Reference
-
-
- -

A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo. - More...

- -

#include <ZoneInfoHigh.h>

- - - - -

-Public Member Functions

ZoneInfoBroker createZoneInfoBroker (uintptr_t zoneKey) const
 
-

Detailed Description

-

A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo.

-

The key can be a pointer to flash memory, or an integer into a list stored in a file.

- -

Definition at line 745 of file ZoneInfoHigh.h.

-

Member Function Documentation

- -

◆ createZoneInfoBroker()

- -
-
- - - - - -
- - - - - - - - -
ZoneInfoBroker ace_time::ZoneInfoHigh::ZoneInfoStore::createZoneInfoBroker (uintptr_t zoneKey) const
-
-inline
-
-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Definition at line 751 of file ZoneInfoHigh.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZonePolicyBroker-members.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZonePolicyBroker-members.html deleted file mode 100644 index 1ae27aa84..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZonePolicyBroker-members.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoHigh::ZonePolicyBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoHigh::ZonePolicyBroker, including all inherited members.

- - - - - - - -
isNull() const (defined in ace_time::ZoneInfoHigh::ZonePolicyBroker)ace_time::ZoneInfoHigh::ZonePolicyBrokerinline
numRules() const (defined in ace_time::ZoneInfoHigh::ZonePolicyBroker)ace_time::ZoneInfoHigh::ZonePolicyBrokerinline
operator=(const ZonePolicyBroker &)=default (defined in ace_time::ZoneInfoHigh::ZonePolicyBroker)ace_time::ZoneInfoHigh::ZonePolicyBroker
rule(uint8_t i) const (defined in ace_time::ZoneInfoHigh::ZonePolicyBroker)ace_time::ZoneInfoHigh::ZonePolicyBrokerinline
ZonePolicyBroker(const ZoneContext *zoneContext, const ZonePolicy *zonePolicy) (defined in ace_time::ZoneInfoHigh::ZonePolicyBroker)ace_time::ZoneInfoHigh::ZonePolicyBrokerinlineexplicit
ZonePolicyBroker(const ZonePolicyBroker &)=default (defined in ace_time::ZoneInfoHigh::ZonePolicyBroker)ace_time::ZoneInfoHigh::ZonePolicyBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZonePolicyBroker.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZonePolicyBroker.html deleted file mode 100644 index 81082be5b..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZonePolicyBroker.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZonePolicyBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoHigh::ZonePolicyBroker Class Reference
-
-
- -

Data broker for accessing ZonePolicy. - More...

- -

#include <ZoneInfoHigh.h>

- - - - - - - - - - - - - - -

-Public Member Functions

ZonePolicyBroker (const ZoneContext *zoneContext, const ZonePolicy *zonePolicy)
 
ZonePolicyBroker (const ZonePolicyBroker &)=default
 
-ZonePolicyBrokeroperator= (const ZonePolicyBroker &)=default
 
-bool isNull () const
 
-uint8_t numRules () const
 
-const ZoneRuleBroker rule (uint8_t i) const
 
-

Detailed Description

-

Data broker for accessing ZonePolicy.

- -

Definition at line 526 of file ZoneInfoHigh.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRegistryBroker-members.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRegistryBroker-members.html deleted file mode 100644 index 59f5ccf55..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRegistryBroker-members.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoHigh::ZoneRegistryBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoHigh::ZoneRegistryBroker, including all inherited members.

- - - - - -
operator=(const ZoneRegistryBroker &)=default (defined in ace_time::ZoneInfoHigh::ZoneRegistryBroker)ace_time::ZoneInfoHigh::ZoneRegistryBroker
zoneInfo(uint16_t i) const (defined in ace_time::ZoneInfoHigh::ZoneRegistryBroker)ace_time::ZoneInfoHigh::ZoneRegistryBrokerinline
ZoneRegistryBroker(const ZoneInfo *const *zoneRegistry) (defined in ace_time::ZoneInfoHigh::ZoneRegistryBroker)ace_time::ZoneInfoHigh::ZoneRegistryBrokerinline
ZoneRegistryBroker(const ZoneRegistryBroker &)=default (defined in ace_time::ZoneInfoHigh::ZoneRegistryBroker)ace_time::ZoneInfoHigh::ZoneRegistryBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRegistryBroker.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRegistryBroker.html deleted file mode 100644 index a2bc40059..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRegistryBroker.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZoneRegistryBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoHigh::ZoneRegistryBroker Class Reference
-
-
- -

Data broker for accessing the ZoneRegistry. - More...

- -

#include <ZoneInfoHigh.h>

- - - - - - - - - - -

-Public Member Functions

ZoneRegistryBroker (const ZoneInfo *const *zoneRegistry)
 
ZoneRegistryBroker (const ZoneRegistryBroker &)=default
 
-ZoneRegistryBrokeroperator= (const ZoneRegistryBroker &)=default
 
-const ZoneInfozoneInfo (uint16_t i) const
 
-

Detailed Description

-

Data broker for accessing the ZoneRegistry.

-

The ZoneRegistry is an array of (const ZoneInfo*) in the zone_registry.cpp file.

- -

Definition at line 717 of file ZoneInfoHigh.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRuleBroker-members.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRuleBroker-members.html deleted file mode 100644 index 86d11519e..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRuleBroker-members.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoHigh::ZoneRuleBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoHigh::ZoneRuleBroker, including all inherited members.

- - - - - - - - - - - - - - -
atTimeSeconds() const (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBrokerinline
atTimeSuffix() const (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBrokerinline
deltaSeconds() const (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBrokerinline
fromYear() const (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBrokerinline
inMonth() const (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBrokerinline
isNull() const (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBrokerinline
letter() const (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBrokerinline
onDayOfMonth() const (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBrokerinline
onDayOfWeek() const (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBrokerinline
operator=(const ZoneRuleBroker &)=default (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBroker
toYear() const (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBrokerinline
ZoneRuleBroker(const ZoneContext *zoneContext=nullptr, const ZoneRule *zoneRule=nullptr) (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBrokerinlineexplicit
ZoneRuleBroker(const ZoneRuleBroker &)=default (defined in ace_time::ZoneInfoHigh::ZoneRuleBroker)ace_time::ZoneInfoHigh::ZoneRuleBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRuleBroker.html b/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRuleBroker.html deleted file mode 100644 index 0ac415f8a..000000000 --- a/docs/html/classace__time_1_1ZoneInfoHigh_1_1ZoneRuleBroker.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZoneRuleBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoHigh::ZoneRuleBroker Class Reference
-
-
- -

Data broker for accessing ZoneRule. - More...

- -

#include <ZoneInfoHigh.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneRuleBroker (const ZoneContext *zoneContext=nullptr, const ZoneRule *zoneRule=nullptr)
 
ZoneRuleBroker (const ZoneRuleBroker &)=default
 
-ZoneRuleBrokeroperator= (const ZoneRuleBroker &)=default
 
-bool isNull () const
 
-int16_t fromYear () const
 
-int16_t toYear () const
 
-uint8_t inMonth () const
 
-uint8_t onDayOfWeek () const
 
-int8_t onDayOfMonth () const
 
-uint32_t atTimeSeconds () const
 
-uint8_t atTimeSuffix () const
 
-int32_t deltaSeconds () const
 
-const __FlashStringHelper * letter () const
 
-

Detailed Description

-

Data broker for accessing ZoneRule.

- -

Definition at line 462 of file ZoneInfoHigh.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow-members.html b/docs/html/classace__time_1_1ZoneInfoLow-members.html deleted file mode 100644 index 85f217a12..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow-members.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoLow Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoLow, including all inherited members.

- - - - - -
timeCodeToMinutes(uint8_t code, uint8_t modifier)ace_time::ZoneInfoLowinlinestatic
toDeltaMinutes(uint8_t deltaCode)ace_time::ZoneInfoLowinlinestatic
toOffsetMinutes(uint8_t offsetCode, uint8_t deltaCode)ace_time::ZoneInfoLowinlinestatic
toSuffix(uint8_t modifier)ace_time::ZoneInfoLowinlinestatic
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow.html b/docs/html/classace__time_1_1ZoneInfoLow.html deleted file mode 100644 index 25d19618b..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoLow Class Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

struct  ZoneContext
 Metadata about the zone database. More...
 
class  ZoneContextBroker
 Data broker for accessing a ZoneContext. More...
 
struct  ZoneEra
 An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. More...
 
class  ZoneEraBroker
 Data broker for accessing ZoneEra. More...
 
struct  ZoneInfo
 Representation of a given time zone, implemented as an array of ZoneEra records. More...
 
class  ZoneInfoBroker
 Data broker for accessing ZoneInfo. More...
 
class  ZoneInfoStore
 A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo. More...
 
struct  ZonePolicy
 A collection of transition rules which describe the DST rules of a given administrative region. More...
 
class  ZonePolicyBroker
 Data broker for accessing ZonePolicy. More...
 
class  ZoneRegistryBroker
 Data broker for accessing the ZoneRegistry. More...
 
struct  ZoneRule
 A time zone transition rule. More...
 
class  ZoneRuleBroker
 Data broker for accessing ZoneRule. More...
 
- - - - - - - - - - - - - -

-Static Public Member Functions

static int16_t toDeltaMinutes (uint8_t deltaCode)
 Convert the deltaCode holding the RULES/DSTOFF field in ZoneEra or the SAVE field in ZoneRule to the delta offset in minutes. More...
 
static int16_t toOffsetMinutes (uint8_t offsetCode, uint8_t deltaCode)
 Convert the offsetCode and deltaCode holding the STDOFF field of the ZoneEra into minutes. More...
 
static uint16_t timeCodeToMinutes (uint8_t code, uint8_t modifier)
 Convert (code, modifier) fields representing the UNTIL time in ZoneInfo or AT time in ZoneRule in one minute resolution. More...
 
static uint8_t toSuffix (uint8_t modifier)
 Extract the 'w', 's' 'u' suffix from the 'modifier' field, so that they can be compared against kSuffixW, kSuffixS and kSuffixU. More...
 
-

Detailed Description

-
-

Definition at line 38 of file ZoneInfoLow.h.

-

Member Function Documentation

- -

◆ timeCodeToMinutes()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static uint16_t ace_time::ZoneInfoLow::timeCodeToMinutes (uint8_t code,
uint8_t modifier 
)
-
-inlinestatic
-
- -

Convert (code, modifier) fields representing the UNTIL time in ZoneInfo or AT time in ZoneRule in one minute resolution.

-

The code parameter holds the AT or UNTIL time in minutes component in units of 15 minutes. The lower 4-bits of modifier holds the remainder minutes.

- -

Definition at line 401 of file ZoneInfoLow.h.

- -
-
- -

◆ toDeltaMinutes()

- -
-
- - - - - -
- - - - - - - - -
static int16_t ace_time::ZoneInfoLow::toDeltaMinutes (uint8_t deltaCode)
-
-inlinestatic
-
- -

Convert the deltaCode holding the RULES/DSTOFF field in ZoneEra or the SAVE field in ZoneRule to the delta offset in minutes.

-

The lower 4-bits stores minutes in units of 15-minutes, shifted by 1h, so can represent the interval [-01:00 to 02:45].

-
deltaMinutes = deltaCode * 15m - 1h
-
-

Definition at line 380 of file ZoneInfoLow.h.

- -
-
- -

◆ toOffsetMinutes()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static int16_t ace_time::ZoneInfoLow::toOffsetMinutes (uint8_t offsetCode,
uint8_t deltaCode 
)
-
-inlinestatic
-
- -

Convert the offsetCode and deltaCode holding the STDOFF field of the ZoneEra into minutes.

-

The offsetCode is rounded towards -infinity in 15-minute multiples. The upper 4-bits of deltaCode holds the (unsigned) remainder in one-minute increments.

- -

Definition at line 390 of file ZoneInfoLow.h.

- -
-
- -

◆ toSuffix()

- -
-
- - - - - -
- - - - - - - - -
static uint8_t ace_time::ZoneInfoLow::toSuffix (uint8_t modifier)
-
-inlinestatic
-
- -

Extract the 'w', 's' 'u' suffix from the 'modifier' field, so that they can be compared against kSuffixW, kSuffixS and kSuffixU.

-

Used for Zone.UNTIL and Rule.AT fields.

- -

Definition at line 410 of file ZoneInfoLow.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneContextBroker-members.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneContextBroker-members.html deleted file mode 100644 index da8bcd55e..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneContextBroker-members.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoLow::ZoneContextBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoLow::ZoneContextBroker, including all inherited members.

- - - - - - - - - - - - - - - - - -
baseYear() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
fragments() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
isNull() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
letter(uint8_t i) const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
maxTransitions() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
numFragments() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
numLetters() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
operator=(const ZoneContextBroker &)=default (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBroker
raw() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
startYear() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
startYearAccurate() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
tzVersion() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
untilYear() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
untilYearAccurate() const (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinline
ZoneContextBroker(const ZoneContext *zoneContext=nullptr) (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBrokerinlineexplicit
ZoneContextBroker(const ZoneContextBroker &)=default (defined in ace_time::ZoneInfoLow::ZoneContextBroker)ace_time::ZoneInfoLow::ZoneContextBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneContextBroker.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneContextBroker.html deleted file mode 100644 index 3aebce864..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneContextBroker.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZoneContextBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoLow::ZoneContextBroker Class Reference
-
-
- -

Data broker for accessing a ZoneContext. - More...

- -

#include <ZoneInfoLow.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneContextBroker (const ZoneContext *zoneContext=nullptr)
 
ZoneContextBroker (const ZoneContextBroker &)=default
 
-ZoneContextBrokeroperator= (const ZoneContextBroker &)=default
 
-bool isNull () const
 
-const ZoneContextraw () const
 
-int16_t startYear () const
 
-int16_t untilYear () const
 
-int16_t startYearAccurate () const
 
-int16_t untilYearAccurate () const
 
-int16_t baseYear () const
 
-int16_t maxTransitions () const
 
-const __FlashStringHelper * tzVersion () const
 
-uint8_t numFragments () const
 
-uint8_t numLetters () const
 
-const __FlashStringHelper *const * fragments () const
 
-const __FlashStringHelper * letter (uint8_t i) const
 
-

Detailed Description

-

Data broker for accessing a ZoneContext.

- -

Definition at line 419 of file ZoneInfoLow.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneEraBroker-members.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneEraBroker-members.html deleted file mode 100644 index 94b651c71..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneEraBroker-members.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoLow::ZoneEraBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoLow::ZoneEraBroker, including all inherited members.

- - - - - - - - - - - - - - - - -
deltaSeconds() const (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinline
equals(const ZoneEraBroker &other) const (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinline
format() const (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinline
isNull() const (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinline
offsetSeconds() const (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinline
operator=(const ZoneEraBroker &)=default (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBroker
toUntilYearFromTiny(int8_t yearTiny, int16_t baseYear) (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinlinestatic
untilDay() const (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinline
untilMonth() const (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinline
untilTimeSeconds() const (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinline
untilTimeSuffix() const (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinline
untilYear() const (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinline
ZoneEraBroker(const ZoneContext *zoneContext=nullptr, const ZoneEra *zoneEra=nullptr) (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinlineexplicit
ZoneEraBroker(const ZoneEraBroker &)=default (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBroker
zonePolicy() const (defined in ace_time::ZoneInfoLow::ZoneEraBroker)ace_time::ZoneInfoLow::ZoneEraBrokerinline
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneEraBroker.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneEraBroker.html deleted file mode 100644 index f907061f7..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneEraBroker.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZoneEraBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoLow::ZoneEraBroker Class Reference
-
-
- -

Data broker for accessing ZoneEra. - More...

- -

#include <ZoneInfoLow.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneEraBroker (const ZoneContext *zoneContext=nullptr, const ZoneEra *zoneEra=nullptr)
 
ZoneEraBroker (const ZoneEraBroker &)=default
 
-ZoneEraBrokeroperator= (const ZoneEraBroker &)=default
 
-bool isNull () const
 
-bool equals (const ZoneEraBroker &other) const
 
-const ZonePolicyBroker zonePolicy () const
 
-int32_t offsetSeconds () const
 
-int32_t deltaSeconds () const
 
-const char * format () const
 
-int16_t untilYear () const
 
-uint8_t untilMonth () const
 
-uint8_t untilDay () const
 
-uint32_t untilTimeSeconds () const
 
-uint8_t untilTimeSuffix () const
 
- - - -

-Static Public Member Functions

-static int16_t toUntilYearFromTiny (int8_t yearTiny, int16_t baseYear)
 
-

Detailed Description

-

Data broker for accessing ZoneEra.

- -

Definition at line 613 of file ZoneInfoLow.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker-members.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker-members.html deleted file mode 100644 index 2c516ed5d..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker-members.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoLow::ZoneInfoBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoLow::ZoneInfoBroker, including all inherited members.

- - - - - - - - - - - - - - - - -
equals(uintptr_t zoneKey) constace_time::ZoneInfoLow::ZoneInfoBrokerinline
equals(const ZoneInfoBroker &zoneInfoBroker) const (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBrokerinline
era(uint8_t i) const (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBrokerinline
isLink() const (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBrokerinline
isNull() const (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBrokerinline
name() const (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBrokerinline
numEras() const (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBrokerinline
operator=(const ZoneInfoBroker &)=default (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBroker
printNameTo(Print &printer) constace_time::ZoneInfoLow::ZoneInfoBrokerinline
printShortNameTo(Print &printer) constace_time::ZoneInfoLow::ZoneInfoBrokerinline
targetInfo() const (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBrokerinline
zoneContext() const (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBrokerinline
zoneId() const (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBrokerinline
ZoneInfoBroker(const ZoneInfo *zoneInfo=nullptr) (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBrokerinlineexplicit
ZoneInfoBroker(const ZoneInfoBroker &)=default (defined in ace_time::ZoneInfoLow::ZoneInfoBroker)ace_time::ZoneInfoLow::ZoneInfoBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html deleted file mode 100644 index 00f912d26..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZoneInfoBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoLow::ZoneInfoBroker Class Reference
-
-
- -

Data broker for accessing ZoneInfo. - More...

- -

#include <ZoneInfoLow.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneInfoBroker (const ZoneInfo *zoneInfo=nullptr)
 
ZoneInfoBroker (const ZoneInfoBroker &)=default
 
-ZoneInfoBrokeroperator= (const ZoneInfoBroker &)=default
 
bool equals (uintptr_t zoneKey) const
 
-bool equals (const ZoneInfoBroker &zoneInfoBroker) const
 
-bool isNull () const
 
-const ZoneContextBroker zoneContext () const
 
-const __FlashStringHelper * name () const
 
-uint32_t zoneId () const
 
-uint8_t numEras () const
 
-const ZoneEraBroker era (uint8_t i) const
 
-bool isLink () const
 
-ZoneInfoBroker targetInfo () const
 
void printNameTo (Print &printer) const
 Print a human-readable identifier (e.g. More...
 
void printShortNameTo (Print &printer) const
 Print a short human-readable identifier (e.g. More...
 
-

Detailed Description

-

Data broker for accessing ZoneInfo.

- -

Definition at line 696 of file ZoneInfoLow.h.

-

Member Function Documentation

- -

◆ equals()

- -
-
- - - - - -
- - - - - - - - -
bool ace_time::ZoneInfoLow::ZoneInfoBroker::equals (uintptr_t zoneKey) const
-
-inline
-
-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Definition at line 711 of file ZoneInfoLow.h.

- -
-
- -

◆ printNameTo()

- -
-
- - - - - -
- - - - - - - - -
void ace_time::ZoneInfoLow::ZoneInfoBroker::printNameTo (Print & printer) const
-
-inline
-
- -

Print a human-readable identifier (e.g.

-

"America/Los_Angeles").

- -

Definition at line 754 of file ZoneInfoLow.h.

- -
-
- -

◆ printShortNameTo()

- -
-
- - - - - -
- - - - - - - - -
void ace_time::ZoneInfoLow::ZoneInfoBroker::printShortNameTo (Print & printer) const
-
-inline
-
- -

Print a short human-readable identifier (e.g.

-

"Los Angeles"). Any underscore in the short name is replaced with a space.

- -

Definition at line 764 of file ZoneInfoLow.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore-members.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore-members.html deleted file mode 100644 index 920e4ceb5..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore-members.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoLow::ZoneInfoStore Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoLow::ZoneInfoStore, including all inherited members.

- - -
createZoneInfoBroker(uintptr_t zoneKey) constace_time::ZoneInfoLow::ZoneInfoStoreinline
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore.html deleted file mode 100644 index 4b03a3731..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZoneInfoStore Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoLow::ZoneInfoStore Class Reference
-
-
- -

A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo. - More...

- -

#include <ZoneInfoLow.h>

- - - - -

-Public Member Functions

ZoneInfoBroker createZoneInfoBroker (uintptr_t zoneKey) const
 
-

Detailed Description

-

A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo.

-

The key can be a pointer to flash memory, or an integer into a list stored in a file.

- -

Definition at line 807 of file ZoneInfoLow.h.

-

Member Function Documentation

- -

◆ createZoneInfoBroker()

- -
-
- - - - - -
- - - - - - - - -
ZoneInfoBroker ace_time::ZoneInfoLow::ZoneInfoStore::createZoneInfoBroker (uintptr_t zoneKey) const
-
-inline
-
-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Definition at line 813 of file ZoneInfoLow.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZonePolicyBroker-members.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZonePolicyBroker-members.html deleted file mode 100644 index c7cdac905..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZonePolicyBroker-members.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoLow::ZonePolicyBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoLow::ZonePolicyBroker, including all inherited members.

- - - - - - - -
isNull() const (defined in ace_time::ZoneInfoLow::ZonePolicyBroker)ace_time::ZoneInfoLow::ZonePolicyBrokerinline
numRules() const (defined in ace_time::ZoneInfoLow::ZonePolicyBroker)ace_time::ZoneInfoLow::ZonePolicyBrokerinline
operator=(const ZonePolicyBroker &)=default (defined in ace_time::ZoneInfoLow::ZonePolicyBroker)ace_time::ZoneInfoLow::ZonePolicyBroker
rule(uint8_t i) const (defined in ace_time::ZoneInfoLow::ZonePolicyBroker)ace_time::ZoneInfoLow::ZonePolicyBrokerinline
ZonePolicyBroker(const ZoneContext *zoneContext, const ZonePolicy *zonePolicy) (defined in ace_time::ZoneInfoLow::ZonePolicyBroker)ace_time::ZoneInfoLow::ZonePolicyBrokerinlineexplicit
ZonePolicyBroker(const ZonePolicyBroker &)=default (defined in ace_time::ZoneInfoLow::ZonePolicyBroker)ace_time::ZoneInfoLow::ZonePolicyBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZonePolicyBroker.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZonePolicyBroker.html deleted file mode 100644 index 3425ecad6..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZonePolicyBroker.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZonePolicyBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoLow::ZonePolicyBroker Class Reference
-
-
- -

Data broker for accessing ZonePolicy. - More...

- -

#include <ZoneInfoLow.h>

- - - - - - - - - - - - - - -

-Public Member Functions

ZonePolicyBroker (const ZoneContext *zoneContext, const ZonePolicy *zonePolicy)
 
ZonePolicyBroker (const ZonePolicyBroker &)=default
 
-ZonePolicyBrokeroperator= (const ZonePolicyBroker &)=default
 
-bool isNull () const
 
-uint8_t numRules () const
 
-const ZoneRuleBroker rule (uint8_t i) const
 
-

Detailed Description

-

Data broker for accessing ZonePolicy.

- -

Definition at line 576 of file ZoneInfoLow.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRegistryBroker-members.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRegistryBroker-members.html deleted file mode 100644 index c3a31caa7..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRegistryBroker-members.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoLow::ZoneRegistryBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoLow::ZoneRegistryBroker, including all inherited members.

- - - - - -
operator=(const ZoneRegistryBroker &)=default (defined in ace_time::ZoneInfoLow::ZoneRegistryBroker)ace_time::ZoneInfoLow::ZoneRegistryBroker
zoneInfo(uint16_t i) const (defined in ace_time::ZoneInfoLow::ZoneRegistryBroker)ace_time::ZoneInfoLow::ZoneRegistryBrokerinline
ZoneRegistryBroker(const ZoneInfo *const *zoneRegistry) (defined in ace_time::ZoneInfoLow::ZoneRegistryBroker)ace_time::ZoneInfoLow::ZoneRegistryBrokerinline
ZoneRegistryBroker(const ZoneRegistryBroker &)=default (defined in ace_time::ZoneInfoLow::ZoneRegistryBroker)ace_time::ZoneInfoLow::ZoneRegistryBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRegistryBroker.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRegistryBroker.html deleted file mode 100644 index 2420bebef..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRegistryBroker.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZoneRegistryBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoLow::ZoneRegistryBroker Class Reference
-
-
- -

Data broker for accessing the ZoneRegistry. - More...

- -

#include <ZoneInfoLow.h>

- - - - - - - - - - -

-Public Member Functions

ZoneRegistryBroker (const ZoneInfo *const *zoneRegistry)
 
ZoneRegistryBroker (const ZoneRegistryBroker &)=default
 
-ZoneRegistryBrokeroperator= (const ZoneRegistryBroker &)=default
 
-const ZoneInfozoneInfo (uint16_t i) const
 
-

Detailed Description

-

Data broker for accessing the ZoneRegistry.

-

The ZoneRegistry is an array of (const ZoneInfo*) in the zone_registry.cpp file.

- -

Definition at line 779 of file ZoneInfoLow.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRuleBroker-members.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRuleBroker-members.html deleted file mode 100644 index 6b1befc4b..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRuleBroker-members.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoLow::ZoneRuleBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoLow::ZoneRuleBroker, including all inherited members.

- - - - - - - - - - - - - - - -
atTimeSeconds() const (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinline
atTimeSuffix() const (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinline
deltaSeconds() const (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinline
fromYear() const (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinline
inMonth() const (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinline
isNull() const (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinline
letter() const (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinline
onDayOfMonth() const (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinline
onDayOfWeek() const (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinline
operator=(const ZoneRuleBroker &)=default (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBroker
toYear() const (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinline
toYearFromTiny(int8_t yearTiny, int16_t baseYear) (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinlinestatic
ZoneRuleBroker(const ZoneContext *zoneContext=nullptr, const ZoneRule *zoneRule=nullptr) (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBrokerinlineexplicit
ZoneRuleBroker(const ZoneRuleBroker &)=default (defined in ace_time::ZoneInfoLow::ZoneRuleBroker)ace_time::ZoneInfoLow::ZoneRuleBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRuleBroker.html b/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRuleBroker.html deleted file mode 100644 index 4edbe6a72..000000000 --- a/docs/html/classace__time_1_1ZoneInfoLow_1_1ZoneRuleBroker.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZoneRuleBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoLow::ZoneRuleBroker Class Reference
-
-
- -

Data broker for accessing ZoneRule. - More...

- -

#include <ZoneInfoLow.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneRuleBroker (const ZoneContext *zoneContext=nullptr, const ZoneRule *zoneRule=nullptr)
 
ZoneRuleBroker (const ZoneRuleBroker &)=default
 
-ZoneRuleBrokeroperator= (const ZoneRuleBroker &)=default
 
-bool isNull () const
 
-int16_t fromYear () const
 
-int16_t toYear () const
 
-uint8_t inMonth () const
 
-uint8_t onDayOfWeek () const
 
-int8_t onDayOfMonth () const
 
-uint32_t atTimeSeconds () const
 
-uint8_t atTimeSuffix () const
 
-int32_t deltaSeconds () const
 
-const __FlashStringHelper * letter () const
 
- - - -

-Static Public Member Functions

-static int16_t toYearFromTiny (int8_t yearTiny, int16_t baseYear)
 
-

Detailed Description

-

Data broker for accessing ZoneRule.

- -

Definition at line 493 of file ZoneInfoLow.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid-members.html b/docs/html/classace__time_1_1ZoneInfoMid-members.html deleted file mode 100644 index b4d95eb0e..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid-members.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoMid Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoMid, including all inherited members.

- - - - - -
timeCodeToMinutes(uint8_t code, uint8_t modifier)ace_time::ZoneInfoMidinlinestatic
toDeltaMinutes(uint8_t deltaCode)ace_time::ZoneInfoMidinlinestatic
toOffsetMinutes(uint8_t offsetCode, uint8_t deltaCode)ace_time::ZoneInfoMidinlinestatic
toSuffix(uint8_t modifier)ace_time::ZoneInfoMidinlinestatic
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid.html b/docs/html/classace__time_1_1ZoneInfoMid.html deleted file mode 100644 index 9e88b5abf..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid.html +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoMid Class Reference
-
-
- -

Wrapper class so that the entire collection can be referenced as a singel template parameter. - More...

- -

#include <ZoneInfoMid.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

struct  ZoneContext
 Metadata about the zone database. More...
 
class  ZoneContextBroker
 Data broker for accessing a ZoneContext. More...
 
struct  ZoneEra
 An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. More...
 
class  ZoneEraBroker
 Data broker for accessing ZoneEra. More...
 
struct  ZoneInfo
 Representation of a given time zone, implemented as an array of ZoneEra records. More...
 
class  ZoneInfoBroker
 Data broker for accessing ZoneInfo. More...
 
class  ZoneInfoStore
 A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo. More...
 
struct  ZonePolicy
 A collection of transition rules which describe the DST rules of a given administrative region. More...
 
class  ZonePolicyBroker
 Data broker for accessing ZonePolicy. More...
 
class  ZoneRegistryBroker
 Data broker for accessing the ZoneRegistry. More...
 
struct  ZoneRule
 A time zone transition rule. More...
 
class  ZoneRuleBroker
 Data broker for accessing ZoneRule. More...
 
- - - - - - - - - - - - - -

-Static Public Member Functions

static int16_t toDeltaMinutes (uint8_t deltaCode)
 Convert the deltaCode holding the RULES/DSTOFF field in ZoneEra or the SAVE field in ZoneRule to the delta offset in minutes. More...
 
static int16_t toOffsetMinutes (uint8_t offsetCode, uint8_t deltaCode)
 Convert the offsetCode and deltaCode holding the STDOFF field of the ZoneEra into minutes. More...
 
static uint16_t timeCodeToMinutes (uint8_t code, uint8_t modifier)
 Convert (code, modifier) fields representing the UNTIL time in ZoneInfo or AT time in ZoneRule in one minute resolution. More...
 
static uint8_t toSuffix (uint8_t modifier)
 Extract the 'w', 's' 'u' suffix from the 'modifier' field, so that they can be compared against kSuffixW, kSuffixS and kSuffixU. More...
 
-

Detailed Description

-

Wrapper class so that the entire collection can be referenced as a singel template parameter.

- -

Definition at line 46 of file ZoneInfoMid.h.

-

Member Function Documentation

- -

◆ timeCodeToMinutes()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static uint16_t ace_time::ZoneInfoMid::timeCodeToMinutes (uint8_t code,
uint8_t modifier 
)
-
-inlinestatic
-
- -

Convert (code, modifier) fields representing the UNTIL time in ZoneInfo or AT time in ZoneRule in one minute resolution.

-

The code parameter holds the AT or UNTIL time in minutes component in units of 15 minutes. The lower 4-bits of modifier holds the remainder minutes.

- -

Definition at line 393 of file ZoneInfoMid.h.

- -
-
- -

◆ toDeltaMinutes()

- -
-
- - - - - -
- - - - - - - - -
static int16_t ace_time::ZoneInfoMid::toDeltaMinutes (uint8_t deltaCode)
-
-inlinestatic
-
- -

Convert the deltaCode holding the RULES/DSTOFF field in ZoneEra or the SAVE field in ZoneRule to the delta offset in minutes.

-

The lower 4-bits stores minutes in units of 15-minutes, shifted by 1h, so can represent the interval [-01:00 to 02:45].

-
deltaMinutes = deltaCode * 15m - 1h
-
-

Definition at line 372 of file ZoneInfoMid.h.

- -
-
- -

◆ toOffsetMinutes()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static int16_t ace_time::ZoneInfoMid::toOffsetMinutes (uint8_t offsetCode,
uint8_t deltaCode 
)
-
-inlinestatic
-
- -

Convert the offsetCode and deltaCode holding the STDOFF field of the ZoneEra into minutes.

-

The offsetCode is rounded towards -infinity in 15-minute multiples. The upper 4-bits of deltaCode holds the (unsigned) remainder in one-minute increments.

- -

Definition at line 382 of file ZoneInfoMid.h.

- -
-
- -

◆ toSuffix()

- -
-
- - - - - -
- - - - - - - - -
static uint8_t ace_time::ZoneInfoMid::toSuffix (uint8_t modifier)
-
-inlinestatic
-
- -

Extract the 'w', 's' 'u' suffix from the 'modifier' field, so that they can be compared against kSuffixW, kSuffixS and kSuffixU.

-

Used for Zone.UNTIL and Rule.AT fields.

- -

Definition at line 402 of file ZoneInfoMid.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneContextBroker-members.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneContextBroker-members.html deleted file mode 100644 index bd2caed95..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneContextBroker-members.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoMid::ZoneContextBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoMid::ZoneContextBroker, including all inherited members.

- - - - - - - - - - - - - - - - - -
baseYear() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
fragments() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
isNull() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
letter(uint8_t i) const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
maxTransitions() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
numFragments() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
numLetters() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
operator=(const ZoneContextBroker &)=default (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBroker
raw() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
startYear() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
startYearAccurate() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
tzVersion() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
untilYear() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
untilYearAccurate() const (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinline
ZoneContextBroker(const ZoneContext *zoneContext=nullptr) (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBrokerinlineexplicit
ZoneContextBroker(const ZoneContextBroker &)=default (defined in ace_time::ZoneInfoMid::ZoneContextBroker)ace_time::ZoneInfoMid::ZoneContextBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneContextBroker.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneContextBroker.html deleted file mode 100644 index 9a9e1bf1d..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneContextBroker.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZoneContextBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoMid::ZoneContextBroker Class Reference
-
-
- -

Data broker for accessing a ZoneContext. - More...

- -

#include <ZoneInfoMid.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneContextBroker (const ZoneContext *zoneContext=nullptr)
 
ZoneContextBroker (const ZoneContextBroker &)=default
 
-ZoneContextBrokeroperator= (const ZoneContextBroker &)=default
 
-bool isNull () const
 
-const ZoneContextraw () const
 
-int16_t startYear () const
 
-int16_t untilYear () const
 
-int16_t startYearAccurate () const
 
-int16_t untilYearAccurate () const
 
-int16_t baseYear () const
 
-int16_t maxTransitions () const
 
-const __FlashStringHelper * tzVersion () const
 
-uint8_t numFragments () const
 
-uint8_t numLetters () const
 
-const __FlashStringHelper *const * fragments () const
 
-const __FlashStringHelper * letter (uint8_t i) const
 
-

Detailed Description

-

Data broker for accessing a ZoneContext.

- -

Definition at line 411 of file ZoneInfoMid.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneEraBroker-members.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneEraBroker-members.html deleted file mode 100644 index 68c1e1c65..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneEraBroker-members.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoMid::ZoneEraBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoMid::ZoneEraBroker, including all inherited members.

- - - - - - - - - - - - - - - -
deltaSeconds() const (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinline
equals(const ZoneEraBroker &other) const (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinline
format() const (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinline
isNull() const (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinline
offsetSeconds() const (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinline
operator=(const ZoneEraBroker &)=default (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBroker
untilDay() const (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinline
untilMonth() const (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinline
untilTimeSeconds() const (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinline
untilTimeSuffix() const (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinline
untilYear() const (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinline
ZoneEraBroker(const ZoneContext *zoneContext=nullptr, const ZoneEra *zoneEra=nullptr) (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinlineexplicit
ZoneEraBroker(const ZoneEraBroker &)=default (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBroker
zonePolicy() const (defined in ace_time::ZoneInfoMid::ZoneEraBroker)ace_time::ZoneInfoMid::ZoneEraBrokerinline
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneEraBroker.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneEraBroker.html deleted file mode 100644 index cf70e084d..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneEraBroker.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZoneEraBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoMid::ZoneEraBroker Class Reference
-
-
- -

Data broker for accessing ZoneEra. - More...

- -

#include <ZoneInfoMid.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneEraBroker (const ZoneContext *zoneContext=nullptr, const ZoneEra *zoneEra=nullptr)
 
ZoneEraBroker (const ZoneEraBroker &)=default
 
-ZoneEraBrokeroperator= (const ZoneEraBroker &)=default
 
-bool isNull () const
 
-bool equals (const ZoneEraBroker &other) const
 
-const ZonePolicyBroker zonePolicy () const
 
-int32_t offsetSeconds () const
 
-int32_t deltaSeconds () const
 
-const char * format () const
 
-int16_t untilYear () const
 
-uint8_t untilMonth () const
 
-uint8_t untilDay () const
 
-uint32_t untilTimeSeconds () const
 
-uint8_t untilTimeSuffix () const
 
-

Detailed Description

-

Data broker for accessing ZoneEra.

- -

Definition at line 586 of file ZoneInfoMid.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker-members.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker-members.html deleted file mode 100644 index 3d43ac517..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker-members.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoMid::ZoneInfoBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoMid::ZoneInfoBroker, including all inherited members.

- - - - - - - - - - - - - - - - -
equals(uintptr_t zoneKey) constace_time::ZoneInfoMid::ZoneInfoBrokerinline
equals(const ZoneInfoBroker &zoneInfoBroker) const (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBrokerinline
era(uint8_t i) const (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBrokerinline
isLink() const (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBrokerinline
isNull() const (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBrokerinline
name() const (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBrokerinline
numEras() const (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBrokerinline
operator=(const ZoneInfoBroker &)=default (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBroker
printNameTo(Print &printer) constace_time::ZoneInfoMid::ZoneInfoBrokerinline
printShortNameTo(Print &printer) constace_time::ZoneInfoMid::ZoneInfoBrokerinline
targetInfo() const (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBrokerinline
zoneContext() const (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBrokerinline
zoneId() const (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBrokerinline
ZoneInfoBroker(const ZoneInfo *zoneInfo=nullptr) (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBrokerinlineexplicit
ZoneInfoBroker(const ZoneInfoBroker &)=default (defined in ace_time::ZoneInfoMid::ZoneInfoBroker)ace_time::ZoneInfoMid::ZoneInfoBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html deleted file mode 100644 index 8c84e6066..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZoneInfoBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoMid::ZoneInfoBroker Class Reference
-
-
- -

Data broker for accessing ZoneInfo. - More...

- -

#include <ZoneInfoMid.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneInfoBroker (const ZoneInfo *zoneInfo=nullptr)
 
ZoneInfoBroker (const ZoneInfoBroker &)=default
 
-ZoneInfoBrokeroperator= (const ZoneInfoBroker &)=default
 
bool equals (uintptr_t zoneKey) const
 
-bool equals (const ZoneInfoBroker &zoneInfoBroker) const
 
-bool isNull () const
 
-const ZoneContextBroker zoneContext () const
 
-const __FlashStringHelper * name () const
 
-uint32_t zoneId () const
 
-uint8_t numEras () const
 
-const ZoneEraBroker era (uint8_t i) const
 
-bool isLink () const
 
-ZoneInfoBroker targetInfo () const
 
void printNameTo (Print &printer) const
 Print a human-readable identifier (e.g. More...
 
void printShortNameTo (Print &printer) const
 Print a short human-readable identifier (e.g. More...
 
-

Detailed Description

-

Data broker for accessing ZoneInfo.

- -

Definition at line 657 of file ZoneInfoMid.h.

-

Member Function Documentation

- -

◆ equals()

- -
-
- - - - - -
- - - - - - - - -
bool ace_time::ZoneInfoMid::ZoneInfoBroker::equals (uintptr_t zoneKey) const
-
-inline
-
-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Definition at line 672 of file ZoneInfoMid.h.

- -
-
- -

◆ printNameTo()

- -
-
- - - - - -
- - - - - - - - -
void ace_time::ZoneInfoMid::ZoneInfoBroker::printNameTo (Print & printer) const
-
-inline
-
- -

Print a human-readable identifier (e.g.

-

"America/Los_Angeles").

- -

Definition at line 715 of file ZoneInfoMid.h.

- -
-
- -

◆ printShortNameTo()

- -
-
- - - - - -
- - - - - - - - -
void ace_time::ZoneInfoMid::ZoneInfoBroker::printShortNameTo (Print & printer) const
-
-inline
-
- -

Print a short human-readable identifier (e.g.

-

"Los Angeles"). Any underscore in the short name is replaced with a space.

- -

Definition at line 725 of file ZoneInfoMid.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore-members.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore-members.html deleted file mode 100644 index 3743b37d2..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore-members.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoMid::ZoneInfoStore Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoMid::ZoneInfoStore, including all inherited members.

- - -
createZoneInfoBroker(uintptr_t zoneKey) constace_time::ZoneInfoMid::ZoneInfoStoreinline
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore.html deleted file mode 100644 index afd2ac511..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZoneInfoStore Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoMid::ZoneInfoStore Class Reference
-
-
- -

A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo. - More...

- -

#include <ZoneInfoMid.h>

- - - - -

-Public Member Functions

ZoneInfoBroker createZoneInfoBroker (uintptr_t zoneKey) const
 
-

Detailed Description

-

A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo.

-

The key can be a pointer to flash memory, or an integer into a list stored in a file.

- -

Definition at line 768 of file ZoneInfoMid.h.

-

Member Function Documentation

- -

◆ createZoneInfoBroker()

- -
-
- - - - - -
- - - - - - - - -
ZoneInfoBroker ace_time::ZoneInfoMid::ZoneInfoStore::createZoneInfoBroker (uintptr_t zoneKey) const
-
-inline
-
-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Definition at line 774 of file ZoneInfoMid.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZonePolicyBroker-members.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZonePolicyBroker-members.html deleted file mode 100644 index 820ec8165..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZonePolicyBroker-members.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoMid::ZonePolicyBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoMid::ZonePolicyBroker, including all inherited members.

- - - - - - - -
isNull() const (defined in ace_time::ZoneInfoMid::ZonePolicyBroker)ace_time::ZoneInfoMid::ZonePolicyBrokerinline
numRules() const (defined in ace_time::ZoneInfoMid::ZonePolicyBroker)ace_time::ZoneInfoMid::ZonePolicyBrokerinline
operator=(const ZonePolicyBroker &)=default (defined in ace_time::ZoneInfoMid::ZonePolicyBroker)ace_time::ZoneInfoMid::ZonePolicyBroker
rule(uint8_t i) const (defined in ace_time::ZoneInfoMid::ZonePolicyBroker)ace_time::ZoneInfoMid::ZonePolicyBrokerinline
ZonePolicyBroker(const ZoneContext *zoneContext, const ZonePolicy *zonePolicy) (defined in ace_time::ZoneInfoMid::ZonePolicyBroker)ace_time::ZoneInfoMid::ZonePolicyBrokerinlineexplicit
ZonePolicyBroker(const ZonePolicyBroker &)=default (defined in ace_time::ZoneInfoMid::ZonePolicyBroker)ace_time::ZoneInfoMid::ZonePolicyBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZonePolicyBroker.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZonePolicyBroker.html deleted file mode 100644 index 3898e640a..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZonePolicyBroker.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZonePolicyBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoMid::ZonePolicyBroker Class Reference
-
-
- -

Data broker for accessing ZonePolicy. - More...

- -

#include <ZoneInfoMid.h>

- - - - - - - - - - - - - - -

-Public Member Functions

ZonePolicyBroker (const ZoneContext *zoneContext, const ZonePolicy *zonePolicy)
 
ZonePolicyBroker (const ZonePolicyBroker &)=default
 
-ZonePolicyBrokeroperator= (const ZonePolicyBroker &)=default
 
-bool isNull () const
 
-uint8_t numRules () const
 
-const ZoneRuleBroker rule (uint8_t i) const
 
-

Detailed Description

-

Data broker for accessing ZonePolicy.

- -

Definition at line 549 of file ZoneInfoMid.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRegistryBroker-members.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRegistryBroker-members.html deleted file mode 100644 index f15b13895..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRegistryBroker-members.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoMid::ZoneRegistryBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoMid::ZoneRegistryBroker, including all inherited members.

- - - - - -
operator=(const ZoneRegistryBroker &)=default (defined in ace_time::ZoneInfoMid::ZoneRegistryBroker)ace_time::ZoneInfoMid::ZoneRegistryBroker
zoneInfo(uint16_t i) const (defined in ace_time::ZoneInfoMid::ZoneRegistryBroker)ace_time::ZoneInfoMid::ZoneRegistryBrokerinline
ZoneRegistryBroker(const ZoneInfo *const *zoneRegistry) (defined in ace_time::ZoneInfoMid::ZoneRegistryBroker)ace_time::ZoneInfoMid::ZoneRegistryBrokerinline
ZoneRegistryBroker(const ZoneRegistryBroker &)=default (defined in ace_time::ZoneInfoMid::ZoneRegistryBroker)ace_time::ZoneInfoMid::ZoneRegistryBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRegistryBroker.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRegistryBroker.html deleted file mode 100644 index b20460689..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRegistryBroker.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZoneRegistryBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoMid::ZoneRegistryBroker Class Reference
-
-
- -

Data broker for accessing the ZoneRegistry. - More...

- -

#include <ZoneInfoMid.h>

- - - - - - - - - - -

-Public Member Functions

ZoneRegistryBroker (const ZoneInfo *const *zoneRegistry)
 
ZoneRegistryBroker (const ZoneRegistryBroker &)=default
 
-ZoneRegistryBrokeroperator= (const ZoneRegistryBroker &)=default
 
-const ZoneInfozoneInfo (uint16_t i) const
 
-

Detailed Description

-

Data broker for accessing the ZoneRegistry.

-

The ZoneRegistry is an array of (const ZoneInfo*) in the zone_registry.cpp file.

- -

Definition at line 740 of file ZoneInfoMid.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRuleBroker-members.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRuleBroker-members.html deleted file mode 100644 index d61149348..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRuleBroker-members.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneInfoMid::ZoneRuleBroker Member List
-
-
- -

This is the complete list of members for ace_time::ZoneInfoMid::ZoneRuleBroker, including all inherited members.

- - - - - - - - - - - - - - -
atTimeSeconds() const (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBrokerinline
atTimeSuffix() const (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBrokerinline
deltaSeconds() const (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBrokerinline
fromYear() const (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBrokerinline
inMonth() const (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBrokerinline
isNull() const (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBrokerinline
letter() const (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBrokerinline
onDayOfMonth() const (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBrokerinline
onDayOfWeek() const (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBrokerinline
operator=(const ZoneRuleBroker &)=default (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBroker
toYear() const (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBrokerinline
ZoneRuleBroker(const ZoneContext *zoneContext=nullptr, const ZoneRule *zoneRule=nullptr) (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBrokerinlineexplicit
ZoneRuleBroker(const ZoneRuleBroker &)=default (defined in ace_time::ZoneInfoMid::ZoneRuleBroker)ace_time::ZoneInfoMid::ZoneRuleBroker
- - - - diff --git a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRuleBroker.html b/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRuleBroker.html deleted file mode 100644 index d1f7cfdc6..000000000 --- a/docs/html/classace__time_1_1ZoneInfoMid_1_1ZoneRuleBroker.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZoneRuleBroker Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneInfoMid::ZoneRuleBroker Class Reference
-
-
- -

Data broker for accessing ZoneRule. - More...

- -

#include <ZoneInfoMid.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneRuleBroker (const ZoneContext *zoneContext=nullptr, const ZoneRule *zoneRule=nullptr)
 
ZoneRuleBroker (const ZoneRuleBroker &)=default
 
-ZoneRuleBrokeroperator= (const ZoneRuleBroker &)=default
 
-bool isNull () const
 
-int16_t fromYear () const
 
-int16_t toYear () const
 
-uint8_t inMonth () const
 
-uint8_t onDayOfWeek () const
 
-int8_t onDayOfMonth () const
 
-uint32_t atTimeSeconds () const
 
-uint8_t atTimeSuffix () const
 
-int32_t deltaSeconds () const
 
-const __FlashStringHelper * letter () const
 
-

Detailed Description

-

Data broker for accessing ZoneRule.

- -

Definition at line 485 of file ZoneInfoMid.h.

-

The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneManager-members.html b/docs/html/classace__time_1_1ZoneManager-members.html deleted file mode 100644 index a98dfe0f7..000000000 --- a/docs/html/classace__time_1_1ZoneManager-members.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneManager Member List
-
-
- -

This is the complete list of members for ace_time::ZoneManager, including all inherited members.

- - -
kInvalidIndexace_time::ZoneManagerstatic
- - - - diff --git a/docs/html/classace__time_1_1ZoneManager.html b/docs/html/classace__time_1_1ZoneManager.html deleted file mode 100644 index 460473316..000000000 --- a/docs/html/classace__time_1_1ZoneManager.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneManager Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneManager Class Reference
-
-
- -

Base class for ManualZoneManager, BasicZoneManager, and ExtendedZoneManager to keep ZoneManager::kInvalidIndex for backwards compatibility. - More...

- -

#include <ZoneManager.h>

-
-Inheritance diagram for ace_time::ZoneManager:
-
-
Inheritance graph
- - - - -
[legend]
- - - - - -

-Static Public Attributes

static const uint16_t kInvalidIndex = 0xffff
 Registry index which is not valid. More...
 
-

Detailed Description

-

Base class for ManualZoneManager, BasicZoneManager, and ExtendedZoneManager to keep ZoneManager::kInvalidIndex for backwards compatibility.

-

Subclasses are not meant to be used polymorphically because none of the methods are virtual.

- -

Definition at line 27 of file ZoneManager.h.

-

Member Data Documentation

- -

◆ kInvalidIndex

- -
-
- - - - - -
- - - - -
const uint16_t ace_time::ZoneManager::kInvalidIndex = 0xffff
-
-static
-
- -

Registry index which is not valid.

-

Indicates an error or not found.

- -

Definition at line 31 of file ZoneManager.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneManager.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneManagerTemplate-members.html b/docs/html/classace__time_1_1ZoneManagerTemplate-members.html deleted file mode 100644 index 64f563c54..000000000 --- a/docs/html/classace__time_1_1ZoneManagerTemplate-members.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneManagerTemplate< D, ZP, Z > Member List
-
-
- -

This is the complete list of members for ace_time::ZoneManagerTemplate< D, ZP, Z >, including all inherited members.

- - - - - - - - - - - - - -
createForTimeZoneData(const TimeZoneData &d)ace_time::ZoneManagerTemplate< D, ZP, Z >inline
createForZoneId(uint32_t id)ace_time::ZoneManagerTemplate< D, ZP, Z >inline
createForZoneIndex(uint16_t index)ace_time::ZoneManagerTemplate< D, ZP, Z >inline
createForZoneInfo(const typename D::ZoneInfo *zoneInfo)ace_time::ZoneManagerTemplate< D, ZP, Z >inline
createForZoneName(const char *name)ace_time::ZoneManagerTemplate< D, ZP, Z >inline
getZoneForIndex(uint16_t index) constace_time::ZoneManagerTemplate< D, ZP, Z >inline
getZoneProcessor(const char *name)ace_time::ZoneManagerTemplate< D, ZP, Z >inline
indexForZoneId(uint32_t id) constace_time::ZoneManagerTemplate< D, ZP, Z >inline
indexForZoneName(const char *name) constace_time::ZoneManagerTemplate< D, ZP, Z >inline
kInvalidIndexace_time::ZoneManagerstatic
ZoneManagerTemplate(uint16_t zoneRegistrySize, const typename D::ZoneInfo *const *zoneRegistry, ZoneProcessorCacheBaseTemplate< ZP > &zoneProcessorCache)ace_time::ZoneManagerTemplate< D, ZP, Z >inline
zoneRegistrySize() constace_time::ZoneManagerTemplate< D, ZP, Z >inline
- - - - diff --git a/docs/html/classace__time_1_1ZoneManagerTemplate.html b/docs/html/classace__time_1_1ZoneManagerTemplate.html deleted file mode 100644 index 99b88c15f..000000000 --- a/docs/html/classace__time_1_1ZoneManagerTemplate.html +++ /dev/null @@ -1,429 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneManagerTemplate< D, ZP, Z > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneManagerTemplate< D, ZP, Z > Class Template Reference
-
-
- -

A templatized implementation of ZoneManager that binds the ZoneRegistrar with the corresponding (Basic|Extended)ZoneProcessorCache. - More...

- -

#include <ZoneManager.h>

-
-Inheritance diagram for ace_time::ZoneManagerTemplate< D, ZP, Z >:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for ace_time::ZoneManagerTemplate< D, ZP, Z >:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 ZoneManagerTemplate (uint16_t zoneRegistrySize, const typename D::ZoneInfo *const *zoneRegistry, ZoneProcessorCacheBaseTemplate< ZP > &zoneProcessorCache)
 Constructor. More...
 
TimeZone createForZoneName (const char *name)
 Create a TimeZone for the given zone name (e.g. More...
 
-TimeZone createForZoneId (uint32_t id)
 Create a TimeZone for the given 32-bit zoneId.
 
-TimeZone createForZoneIndex (uint16_t index)
 Create a TimeZone for the given index in the ZoneInfo registry that was used to create this ZoneManager.
 
-TimeZone createForTimeZoneData (const TimeZoneData &d)
 Create a TimeZone from the TimeZoneData created by TimeZone::toTimeZoneData().
 
uint16_t indexForZoneName (const char *name) const
 Find the registry index for the given time zone name. More...
 
uint16_t indexForZoneId (uint32_t id) const
 Find the registry index for the given time zone id. More...
 
uint16_t zoneRegistrySize () const
 Return the number of elements in the Zone and Fat Link registry. More...
 
TimeZone createForZoneInfo (const typename D::ZoneInfo *zoneInfo)
 Create a TimeZone from an explicit ZoneInfo reference. More...
 
ZP * getZoneProcessor (const char *name)
 Return the ZoneProcessor for given zone name. More...
 
-Z getZoneForIndex (uint16_t index) const
 Return the Zone wrapper object for the given index.
 
- - - - - -

-Additional Inherited Members

- Static Public Attributes inherited from ace_time::ZoneManager
static const uint16_t kInvalidIndex = 0xffff
 Registry index which is not valid. More...
 
-

Detailed Description

-

template<typename D, typename ZP, typename Z>
-class ace_time::ZoneManagerTemplate< D, ZP, Z >

- -

A templatized implementation of ZoneManager that binds the ZoneRegistrar with the corresponding (Basic|Extended)ZoneProcessorCache.

-

Applications will normally use two specific instantiation of this class: BasicZoneManager and ExtendedZoneManager.

-

If an entry in the ZoneRegistrar is not found, then TimeZone::forError() will be returned.

-

If a ZoneProcessor exists in the ZoneProcessorCache that is already bound to the given ZoneInfo, then the ZoneProcessor is reused. If not, another ZoneProcessor is picked from the cache in a round-robin fashion (kicking off the previously bound TimeZone). The type of the TimeZone will be assigned based on the ZoneProcessor, which will be either kTypeBasic or kTypeExtended.

-
Template Parameters
- - - - -
Dcontainer class of the zoneinfo files and brokers
ZPzone processor
Zzone wrapper class, BasicZone, ExtendedZone, CompleteZone
-
-
- -

Definition at line 81 of file ZoneManager.h.

-

Constructor & Destructor Documentation

- -

◆ ZoneManagerTemplate()

- -
-
-
-template<typename D , typename ZP , typename Z >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
ace_time::ZoneManagerTemplate< D, ZP, Z >::ZoneManagerTemplate (uint16_t zoneRegistrySize,
const typename D::ZoneInfo *const * zoneRegistry,
ZoneProcessorCacheBaseTemplate< ZP > & zoneProcessorCache 
)
-
-inline
-
- -

Constructor.

-
Parameters
- - - -
zoneRegistrySizenumber of ZoneInfo entries in zoneRegistry
zoneRegistryan array of ZoneInfo entries
-
-
- -

Definition at line 89 of file ZoneManager.h.

- -
-
-

Member Function Documentation

- -

◆ createForZoneInfo()

- -
-
-
-template<typename D , typename ZP , typename Z >
- - - - - -
- - - - - - - - -
TimeZone ace_time::ZoneManagerTemplate< D, ZP, Z >::createForZoneInfo (const typename D::ZoneInfo * zoneInfo)
-
-inline
-
- -

Create a TimeZone from an explicit ZoneInfo reference.

-

The ZoneRegistrar will be bypassed because the ZoneInfo is already available, but the TimeZone will use a ZoneProcessor from its ZoneProcessorCache. This is expected to be used mostly in tests, but it could be useful for applications.

- -

Definition at line 175 of file ZoneManager.h.

- -
-
- -

◆ createForZoneName()

- -
-
-
-template<typename D , typename ZP , typename Z >
- - - - - -
- - - - - - - - -
TimeZone ace_time::ZoneManagerTemplate< D, ZP, Z >::createForZoneName (const char * name)
-
-inline
-
- -

Create a TimeZone for the given zone name (e.g.

-

"America/Los_Angeles").

- -

Definition at line 101 of file ZoneManager.h.

- -
-
- -

◆ getZoneProcessor()

- -
-
-
-template<typename D , typename ZP , typename Z >
- - - - - -
- - - - - - - - -
ZP* ace_time::ZoneManagerTemplate< D, ZP, Z >::getZoneProcessor (const char * name)
-
-inline
-
- -

Return the ZoneProcessor for given zone name.

-

Mostly for debugging purposes.

- -

Definition at line 186 of file ZoneManager.h.

- -
-
- -

◆ indexForZoneId()

- -
-
-
-template<typename D , typename ZP , typename Z >
- - - - - -
- - - - - - - - -
uint16_t ace_time::ZoneManagerTemplate< D, ZP, Z >::indexForZoneId (uint32_t id) const
-
-inline
-
- -

Find the registry index for the given time zone id.

-

Returns kInvalidIndex if not found.

- -

Definition at line 156 of file ZoneManager.h.

- -
-
- -

◆ indexForZoneName()

- -
-
-
-template<typename D , typename ZP , typename Z >
- - - - - -
- - - - - - - - -
uint16_t ace_time::ZoneManagerTemplate< D, ZP, Z >::indexForZoneName (const char * name) const
-
-inline
-
- -

Find the registry index for the given time zone name.

-

Returns kInvalidIndex if not found.

- -

Definition at line 148 of file ZoneManager.h.

- -
-
- -

◆ zoneRegistrySize()

- -
-
-
-template<typename D , typename ZP , typename Z >
- - - - - -
- - - - - - - -
uint16_t ace_time::ZoneManagerTemplate< D, ZP, Z >::zoneRegistrySize () const
-
-inline
-
- -

Return the number of elements in the Zone and Fat Link registry.

-

Previously named registrySize().

- -

Definition at line 164 of file ZoneManager.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneManager.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneManagerTemplate__coll__graph.map b/docs/html/classace__time_1_1ZoneManagerTemplate__coll__graph.map deleted file mode 100644 index e388e35af..000000000 --- a/docs/html/classace__time_1_1ZoneManagerTemplate__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/classace__time_1_1ZoneManagerTemplate__coll__graph.md5 b/docs/html/classace__time_1_1ZoneManagerTemplate__coll__graph.md5 deleted file mode 100644 index 21738945d..000000000 --- a/docs/html/classace__time_1_1ZoneManagerTemplate__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -43ffb6e7b5e4b15b91f5652034e23bbe \ No newline at end of file diff --git a/docs/html/classace__time_1_1ZoneManagerTemplate__coll__graph.png b/docs/html/classace__time_1_1ZoneManagerTemplate__coll__graph.png deleted file mode 100644 index 1284cf88df4c2b9e91fb8ada12b421707e53f821..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5732 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 U^OjN~*fxe}s_Ma!%C?dJ0#gYc0ssI2 diff --git a/docs/html/classace__time_1_1ZoneManagerTemplate__inherit__graph.map b/docs/html/classace__time_1_1ZoneManagerTemplate__inherit__graph.map deleted file mode 100644 index e388e35af..000000000 --- a/docs/html/classace__time_1_1ZoneManagerTemplate__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/classace__time_1_1ZoneManagerTemplate__inherit__graph.md5 b/docs/html/classace__time_1_1ZoneManagerTemplate__inherit__graph.md5 deleted file mode 100644 index 21738945d..000000000 --- a/docs/html/classace__time_1_1ZoneManagerTemplate__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -43ffb6e7b5e4b15b91f5652034e23bbe \ No newline at end of file diff --git a/docs/html/classace__time_1_1ZoneManagerTemplate__inherit__graph.png b/docs/html/classace__time_1_1ZoneManagerTemplate__inherit__graph.png deleted file mode 100644 index 1284cf88df4c2b9e91fb8ada12b421707e53f821..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5732 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 U^OjN~*fxe}s_Ma!%C?dJ0#gYc0ssI2 diff --git a/docs/html/classace__time_1_1ZoneManager__inherit__graph.map b/docs/html/classace__time_1_1ZoneManager__inherit__graph.map deleted file mode 100644 index c2c5f01bd..000000000 --- a/docs/html/classace__time_1_1ZoneManager__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/classace__time_1_1ZoneManager__inherit__graph.md5 b/docs/html/classace__time_1_1ZoneManager__inherit__graph.md5 deleted file mode 100644 index 6ab043563..000000000 --- a/docs/html/classace__time_1_1ZoneManager__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -9cd3e4d1281370d9b426b9514ec09c35 \ No newline at end of file diff --git a/docs/html/classace__time_1_1ZoneManager__inherit__graph.png b/docs/html/classace__time_1_1ZoneManager__inherit__graph.png deleted file mode 100644 index 642d3a1766ebecb2dfc22fabba5e2036de31e048..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5757 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 diff --git a/docs/html/classace__time_1_1ZoneProcessor-members.html b/docs/html/classace__time_1_1ZoneProcessor-members.html deleted file mode 100644 index 2ca2eb2fe..000000000 --- a/docs/html/classace__time_1_1ZoneProcessor-members.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneProcessor Member List
-
-
- -

This is the complete list of members for ace_time::ZoneProcessor, including all inherited members.

- - - - - - - - - - - - - - - - - - - - -
equals(const ZoneProcessor &other) const =0ace_time::ZoneProcessorprotectedpure virtual
equalsZoneKey(uintptr_t zoneKey) const =0ace_time::ZoneProcessorpure virtual
findByEpochSeconds(acetime_t epochSeconds) const =0ace_time::ZoneProcessorpure virtual
findByLocalDateTime(const LocalDateTime &ldt) const =0ace_time::ZoneProcessorpure virtual
getType() constace_time::ZoneProcessorinline
getZoneId() const =0ace_time::ZoneProcessorpure virtual
isFilled(int16_t year) constace_time::ZoneProcessorinlineprotected
isLink() const =0ace_time::ZoneProcessorpure virtual
mEpochYearace_time::ZoneProcessormutableprotected
mTypeace_time::ZoneProcessorprotected
mYearace_time::ZoneProcessormutableprotected
operator=(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
operator== (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorfriend
printNameTo(Print &printer) const =0ace_time::ZoneProcessorpure virtual
printShortNameTo(Print &printer) const =0ace_time::ZoneProcessorpure virtual
printTargetNameTo(Print &printer) const =0ace_time::ZoneProcessorpure virtual
setZoneKey(uintptr_t zoneKey)=0ace_time::ZoneProcessorpure virtual
ZoneProcessor(const ZoneProcessor &)=delete (defined in ace_time::ZoneProcessor)ace_time::ZoneProcessorprotected
ZoneProcessor(uint8_t type)ace_time::ZoneProcessorinlineprotected
- - - - diff --git a/docs/html/classace__time_1_1ZoneProcessor.html b/docs/html/classace__time_1_1ZoneProcessor.html deleted file mode 100644 index 9b12aae93..000000000 --- a/docs/html/classace__time_1_1ZoneProcessor.html +++ /dev/null @@ -1,496 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneProcessor Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneProcessor Class Referenceabstract
-
-
- -

Base interface for ZoneProcessor classes. - More...

- -

#include <ZoneProcessor.h>

-
-Inheritance diagram for ace_time::ZoneProcessor:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-uint8_t getType () const
 Return the kTypeXxx of the current instance.
 
-virtual bool isLink () const =0
 Return true if timezone is a Link entry pointing to a Zone entry.
 
-virtual uint32_t getZoneId () const =0
 Return the unique stable zoneId.
 
-virtual FindResult findByLocalDateTime (const LocalDateTime &ldt) const =0
 Return the search results at given LocalDateTime.
 
-virtual FindResult findByEpochSeconds (acetime_t epochSeconds) const =0
 Return the search results at given epochSeconds.
 
virtual void printNameTo (Print &printer) const =0
 Print a human-readable identifier (e.g. More...
 
virtual void printShortNameTo (Print &printer) const =0
 Print a short human-readable identifier (e.g. More...
 
virtual void printTargetNameTo (Print &printer) const =0
 Print the full identifier (e.g. More...
 
virtual void setZoneKey (uintptr_t zoneKey)=0
 Set the opaque zoneKey of this object to a new value, reseting any internally cached information. More...
 
virtual bool equalsZoneKey (uintptr_t zoneKey) const =0
 Return true if ZoneProcessor is associated with the given opaque zoneKey. More...
 
- - - - - - - - - - - - - - -

-Protected Member Functions

ZoneProcessor (const ZoneProcessor &)=delete
 
-ZoneProcessoroperator= (const ZoneProcessor &)=delete
 
ZoneProcessor (uint8_t type)
 Constructor.
 
bool isFilled (int16_t year) const
 Check if the Transition cache is filled for the given year and current epochYear. More...
 
-virtual bool equals (const ZoneProcessor &other) const =0
 Return true if equal.
 
- - - - - - - - - - -

-Protected Attributes

uint8_t const mType
 User-visible indicator of the subclass of ZoneProcessor, which implments a specific time-zone algorithm. More...
 
int16_t mYear = LocalDate::kInvalidYear
 Year that was used to calculate the transitions in the current cache. More...
 
int16_t mEpochYear = LocalDate::kInvalidYear
 Epoch year that was used to calculate the transitions in the current cache. More...
 
- - - -

-Friends

-bool operator== (const ZoneProcessor &a, const ZoneProcessor &b)
 
-

Detailed Description

-

Base interface for ZoneProcessor classes.

-

There were 2 options for implmenting the various concrete implementations of ZoneProcessors:

-

1) Implement only a single getType() method to distinguish the different runtime types of the object. Then use this type information in the TimeZone class to downcast the ZoneProcessor pointer to the correct subclass, and call the correct methods.

-

2) Fully implement a polymorphic class hierarchy, lifting various common methods (e.g. findByLocalDateTime(), findByEpochSeconds()) into this interface as virtual methods, then add a virtual equals() method to implement the operator==().

-

The problem with Option 1 is that the code for both subclasses would be compiled into the program, even if the application used only one of the subclasses. Instead I use Option 2, using a fully polymorphic class hierarchy, adding 3-4 virtual methods. When a program uses only a single subclass, only that particular subclass is included into the program. Unfortunately, this comes at the cost of forcing programs to use the virtual dispatch at runtime for some of the often-used methods.

- -

Definition at line 140 of file ZoneProcessor.h.

-

Member Function Documentation

- -

◆ equalsZoneKey()

- -
-
- - - - - -
- - - - - - - - -
virtual bool ace_time::ZoneProcessor::equalsZoneKey (uintptr_t zoneKey) const
-
-pure virtual
-
- -

Return true if ZoneProcessor is associated with the given opaque zoneKey.

-

This method should be considered to be private.

-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Implemented in ace_time::ExtendedZoneProcessorTemplate< D >, ace_time::ExtendedZoneProcessorTemplate< complete::Info >, ace_time::ExtendedZoneProcessorTemplate< extended::Info >, ace_time::BasicZoneProcessorTemplate< D >, and ace_time::BasicZoneProcessorTemplate< basic::Info >.

- -
-
- -

◆ isFilled()

- -
-
- - - - - -
- - - - - - - - -
bool ace_time::ZoneProcessor::isFilled (int16_t year) const
-
-inlineprotected
-
- -

Check if the Transition cache is filled for the given year and current epochYear.

-

Checking the epoch year allows the cache to be automatically invalidated and regenerated if the epoch year is changed.

- -

Definition at line 229 of file ZoneProcessor.h.

- -
-
- -

◆ printNameTo()

- -
-
- - - - - -
- - - - - - - - -
virtual void ace_time::ZoneProcessor::printNameTo (Print & printer) const
-
-pure virtual
-
- -

Print a human-readable identifier (e.g.

-

"America/Los_Angeles").

-
Parameters
- - -
printeran instance of the Print class, usually Serial
-
-
- -

Implemented in ace_time::ExtendedZoneProcessorTemplate< D >, ace_time::ExtendedZoneProcessorTemplate< complete::Info >, ace_time::ExtendedZoneProcessorTemplate< extended::Info >, ace_time::BasicZoneProcessorTemplate< D >, and ace_time::BasicZoneProcessorTemplate< basic::Info >.

- -
-
- -

◆ printShortNameTo()

- -
-
- - - - - -
- - - - - - - - -
virtual void ace_time::ZoneProcessor::printShortNameTo (Print & printer) const
-
-pure virtual
-
- -

Print a short human-readable identifier (e.g.

-

"Los Angeles"). Any underscore in the short name is replaced with a space.

-
Parameters
- - -
printeran instance of the Print class, usually Serial
-
-
- -

Implemented in ace_time::ExtendedZoneProcessorTemplate< D >, ace_time::ExtendedZoneProcessorTemplate< complete::Info >, ace_time::ExtendedZoneProcessorTemplate< extended::Info >, ace_time::BasicZoneProcessorTemplate< D >, and ace_time::BasicZoneProcessorTemplate< basic::Info >.

- -
-
- -

◆ printTargetNameTo()

- -
-
- - - - - -
- - - - - - - - -
virtual void ace_time::ZoneProcessor::printTargetNameTo (Print & printer) const
-
-pure virtual
-
- -

Print the full identifier (e.g.

-

"America/Los_Angeles") of the target zone if the current zone is a Link entry. Otherwise, print nothing.

-
Parameters
- - -
printeran instance of the Print class, usually Serial
-
-
- -

Implemented in ace_time::ExtendedZoneProcessorTemplate< D >, ace_time::ExtendedZoneProcessorTemplate< complete::Info >, ace_time::ExtendedZoneProcessorTemplate< extended::Info >, ace_time::BasicZoneProcessorTemplate< D >, and ace_time::BasicZoneProcessorTemplate< basic::Info >.

- -
-
- -

◆ setZoneKey()

- -
-
- - - - - -
- - - - - - - - -
virtual void ace_time::ZoneProcessor::setZoneKey (uintptr_t zoneKey)
-
-pure virtual
-
- -

Set the opaque zoneKey of this object to a new value, reseting any internally cached information.

-

If the new zoneKey is the same as the old zoneKey, the cache remains valid.

-

Normally a ZoneProcessor object is associated with a single TimeZone. However, the ZoneProcessorCache will sometimes "take over" a ZoneProcessor from another TimeZone using this method. The other TimeZone will take back control of the ZoneProcessor if needed. To avoid bouncing the ownership of this object repeatedly, the application should configure the ZoneProcessorCache with enough ZoneProcessors to handle the usage pattern of the given application.

-

This method should be considered to be private, to be used only by the TimeZone and ZoneProcessorCache classes. I had to make it public because it got too ugly to maintain the friend list in C++.

-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Implemented in ace_time::ExtendedZoneProcessorTemplate< D >, ace_time::ExtendedZoneProcessorTemplate< complete::Info >, ace_time::ExtendedZoneProcessorTemplate< extended::Info >, ace_time::BasicZoneProcessorTemplate< D >, and ace_time::BasicZoneProcessorTemplate< basic::Info >.

- -
-
-

Member Data Documentation

- -

◆ mEpochYear

- -
-
- - - - - -
- - - - -
int16_t ace_time::ZoneProcessor::mEpochYear = LocalDate::kInvalidYear
-
-mutableprotected
-
- -

Epoch year that was used to calculate the transitions in the current cache.

-

Set to LocalDate::kInvalidYear to indicate invalid cache.

- -

Definition at line 255 of file ZoneProcessor.h.

- -
-
- -

◆ mType

- -
-
- - - - - -
- - - - -
uint8_t const ace_time::ZoneProcessor::mType
-
-protected
-
- -

User-visible indicator of the subclass of ZoneProcessor, which implments a specific time-zone algorithm.

-

Three common ones are BasicZoneProcessor::kTypeBasic and ExtendedZoneProcessor::kTypeExtended.

- -

Definition at line 243 of file ZoneProcessor.h.

- -
-
- -

◆ mYear

- -
-
- - - - - -
- - - - -
int16_t ace_time::ZoneProcessor::mYear = LocalDate::kInvalidYear
-
-mutableprotected
-
- -

Year that was used to calculate the transitions in the current cache.

-

Set to LocalDate::kInvalidYear to indicate invalid cache.

- -

Definition at line 249 of file ZoneProcessor.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneProcessor.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate-members.html b/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate-members.html deleted file mode 100644 index 6ac8e4cd1..000000000 --- a/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate-members.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneProcessorCacheBaseTemplate< ZP > Member List
-
-
- -

This is the complete list of members for ace_time::ZoneProcessorCacheBaseTemplate< ZP >, including all inherited members.

- - - - - -
getZoneProcessor(uintptr_t zoneKey)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
getZoneProcessorAtIndex(uint8_t i)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
size() constace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
ZoneProcessorCacheBaseTemplate(ZP *zoneProcessors, uint8_t size) (defined in ace_time::ZoneProcessorCacheBaseTemplate< ZP >)ace_time::ZoneProcessorCacheBaseTemplate< ZP >inline
- - - - diff --git a/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate.html b/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate.html deleted file mode 100644 index 258923bd9..000000000 --- a/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneProcessorCacheBaseTemplate< ZP > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneProcessorCacheBaseTemplate< ZP > Class Template Reference
-
-
- -

The template class of BasicZoneProcessorCacheBase or ExtendedZoneProcessorCacheBase. - More...

- -

#include <ZoneProcessorCache.h>

-
-Inheritance diagram for ace_time::ZoneProcessorCacheBaseTemplate< ZP >:
-
-
Inheritance graph
- - - - - - -
[legend]
- - - - - - - - - - - - - -

-Public Member Functions

ZoneProcessorCacheBaseTemplate (ZP *zoneProcessors, uint8_t size)
 
-uint8_t size () const
 Return the size of the cache.
 
-ZP * getZoneProcessorAtIndex (uint8_t i)
 Get the ZoneProcessor at index i.
 
ZP * getZoneProcessor (uintptr_t zoneKey)
 Get ZoneProcessor from either a ZoneKey, basic::Info::ZoneInfo, an extended::Info::ZoneInfo, or complete::Info::ZoneInfo. More...
 
-

Detailed Description

-

template<typename ZP>
-class ace_time::ZoneProcessorCacheBaseTemplate< ZP >

- -

The template class of BasicZoneProcessorCacheBase or ExtendedZoneProcessorCacheBase.

-

The common implementation BasicZoneProcessorCache<SIZE> and ExtendedZoneProcessorCacheBase<SIZE> creates the caches inside the class itself, which will normally be created at static initialization time. An alternative implementation would create the cache on the heap.

- -

Definition at line 26 of file ZoneProcessorCache.h.

-

Member Function Documentation

- -

◆ getZoneProcessor()

- -
-
-
-template<typename ZP >
- - - - - -
- - - - - - - - -
ZP* ace_time::ZoneProcessorCacheBaseTemplate< ZP >::getZoneProcessor (uintptr_t zoneKey)
-
-inline
-
- -

Get ZoneProcessor from either a ZoneKey, basic::Info::ZoneInfo, an extended::Info::ZoneInfo, or complete::Info::ZoneInfo.

-

This will never return nullptr.

-
Parameters
- - -
zoneKeyan opaque Zone primary key (e.g. const ZoneInfo*, or a uint16_t index into a database table of ZoneInfo records)
-
-
- -

Definition at line 47 of file ZoneProcessorCache.h.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate__inherit__graph.map b/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate__inherit__graph.map deleted file mode 100644 index 29ffe7e23..000000000 --- a/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate__inherit__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate__inherit__graph.md5 b/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate__inherit__graph.md5 deleted file mode 100644 index 815ce1a24..000000000 --- a/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -83329f48a3b2344e739dc7c811ec0453 \ No newline at end of file diff --git a/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate__inherit__graph.png b/docs/html/classace__time_1_1ZoneProcessorCacheBaseTemplate__inherit__graph.png deleted file mode 100644 index 4cce42daf6bdbffe510208f7cdb67f3a852991fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15970 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 Jk)(0p{{sD%!7~5= diff --git a/docs/html/classace__time_1_1ZoneProcessor__inherit__graph.map b/docs/html/classace__time_1_1ZoneProcessor__inherit__graph.map deleted file mode 100644 index e9d98d4c8..000000000 --- a/docs/html/classace__time_1_1ZoneProcessor__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/html/classace__time_1_1ZoneProcessor__inherit__graph.md5 b/docs/html/classace__time_1_1ZoneProcessor__inherit__graph.md5 deleted file mode 100644 index cc79d06d0..000000000 --- a/docs/html/classace__time_1_1ZoneProcessor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -79023c4663e5f76c3ff1f3ae61e3d16c \ No newline at end of file diff --git a/docs/html/classace__time_1_1ZoneProcessor__inherit__graph.png b/docs/html/classace__time_1_1ZoneProcessor__inherit__graph.png deleted file mode 100644 index 32d7450b0e8a3c93aefb37b4f720c97ca76f40c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29409 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 diff --git a/docs/html/classace__time_1_1ZoneRegistrarTemplate-members.html b/docs/html/classace__time_1_1ZoneRegistrarTemplate-members.html deleted file mode 100644 index 79770cb2a..000000000 --- a/docs/html/classace__time_1_1ZoneRegistrarTemplate-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneRegistrarTemplate< D > Member List
-
-
- -

This is the complete list of members for ace_time::ZoneRegistrarTemplate< D >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
::ZoneRegistrarTest_Sorted_binarySearchById (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >friend
::ZoneRegistrarTest_Sorted_binarySearchById_not_found (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >friend
::ZoneRegistrarTest_Sorted_binarySearchById_zeroEntries (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >friend
::ZoneRegistrarTest_Sorted_isSorted (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >friend
::ZoneRegistrarTest_Sorted_linearSearchById (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >friend
::ZoneRegistrarTest_Sorted_linearSearchById_not_found (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >friend
::ZoneRegistrarTest_Unsorted_isSorted (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >friend
::ZoneRegistrarTest_Unsorted_linearSearchById (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >friend
::ZoneRegistrarTest_Unsorted_linearSearchById_not_found (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >friend
binarySearchById(const typename D::ZoneInfo *const *registry, uint16_t registrySize, uint32_t zoneId)ace_time::ZoneRegistrarTemplate< D >inlineprotectedstatic
findIndexForId(uint32_t zoneId) constace_time::ZoneRegistrarTemplate< D >inline
findIndexForIdBinary(uint32_t zoneId) constace_time::ZoneRegistrarTemplate< D >inlineprotected
findIndexForIdLinear(uint32_t zoneId) constace_time::ZoneRegistrarTemplate< D >inlineprotected
findIndexForName(const char *name) constace_time::ZoneRegistrarTemplate< D >inline
getZoneInfoForId(uint32_t zoneId) constace_time::ZoneRegistrarTemplate< D >inline
getZoneInfoForIndex(uint16_t i) constace_time::ZoneRegistrarTemplate< D >inline
getZoneInfoForName(const char *name) constace_time::ZoneRegistrarTemplate< D >inline
isSorted(const typename D::ZoneInfo *const *registry, uint16_t registrySize)ace_time::ZoneRegistrarTemplate< D >inlineprotectedstatic
kBinarySearchThresholdace_time::ZoneRegistrarTemplate< D >protectedstatic
kInvalidIndexace_time::ZoneRegistrarTemplate< D >static
linearSearchById(const typename D::ZoneInfo *const *registry, uint16_t registrySize, uint32_t zoneId)ace_time::ZoneRegistrarTemplate< D >inlineprotectedstatic
void ::runBasicRegistrarFindIndexForIdBinary() (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >protected
void ::runBasicRegistrarFindIndexForIdLinear() (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >protected
void ::runBasicRegistrarFindIndexForName() (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >protected
void ::runCompleteRegistrarFindIndexForIdBinary() (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >protected
void ::runCompleteRegistrarFindIndexForIdLinear() (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >protected
void ::runCompleteRegistrarFindIndexForName() (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >protected
void ::runExtendedRegistrarFindIndexForIdBinary() (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >protected
void ::runExtendedRegistrarFindIndexForIdLinear() (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >protected
void ::runExtendedRegistrarFindIndexForName() (defined in ace_time::ZoneRegistrarTemplate< D >)ace_time::ZoneRegistrarTemplate< D >protected
ZoneRegistrarTemplate(uint16_t zoneRegistrySize, const typename D::ZoneInfo *const *zoneRegistry)ace_time::ZoneRegistrarTemplate< D >inline
zoneRegistrySize() constace_time::ZoneRegistrarTemplate< D >inline
- - - - diff --git a/docs/html/classace__time_1_1ZoneRegistrarTemplate.html b/docs/html/classace__time_1_1ZoneRegistrarTemplate.html deleted file mode 100644 index 851bcf99a..000000000 --- a/docs/html/classace__time_1_1ZoneRegistrarTemplate.html +++ /dev/null @@ -1,497 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneRegistrarTemplate< D > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
- -
- -

Class that allows looking up the ZoneInfo from its TZDB identifier (e.g. - More...

- -

#include <ZoneRegistrar.h>

- - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneRegistrarTemplate (uint16_t zoneRegistrySize, const typename D::ZoneInfo *const *zoneRegistry)
 Constructor.
 
-uint16_t zoneRegistrySize () const
 Return the number of zones and (fat) links.
 
const D::ZoneInfo * getZoneInfoForIndex (uint16_t i) const
 Return the ZoneInfo at index i. More...
 
const D::ZoneInfo * getZoneInfoForName (const char *name) const
 Return the ZoneInfo corresponding to the given zone name. More...
 
const D::ZoneInfo * getZoneInfoForId (uint32_t zoneId) const
 Return the ZoneInfo using the zoneId. More...
 
uint16_t findIndexForName (const char *name) const
 Find the index for zone name. More...
 
uint16_t findIndexForId (uint32_t zoneId) const
 Find the index for zone id. More...
 
- - - - -

-Static Public Attributes

-static const uint16_t kInvalidIndex = 0xffff
 Invalid index to indicate error or not found.
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-friend void ::runBasicRegistrarFindIndexForName ()
 
-friend void ::runBasicRegistrarFindIndexForIdBinary ()
 
-friend void ::runBasicRegistrarFindIndexForIdLinear ()
 
-friend void ::runExtendedRegistrarFindIndexForName ()
 
-friend void ::runExtendedRegistrarFindIndexForIdBinary ()
 
-friend void ::runExtendedRegistrarFindIndexForIdLinear ()
 
-friend void ::runCompleteRegistrarFindIndexForName ()
 
-friend void ::runCompleteRegistrarFindIndexForIdBinary ()
 
-friend void ::runCompleteRegistrarFindIndexForIdLinear ()
 
-uint16_t findIndexForIdLinear (uint32_t zoneId) const
 Exposed only for benchmarking purposes.
 
-uint16_t findIndexForIdBinary (uint32_t zoneId) const
 Exposed only for benchmarking purposes.
 
- - - - - - - - - - -

-Static Protected Member Functions

-static bool isSorted (const typename D::ZoneInfo *const *registry, uint16_t registrySize)
 Determine if the given zone registry is sorted by id.
 
static uint16_t linearSearchById (const typename D::ZoneInfo *const *registry, uint16_t registrySize, uint32_t zoneId)
 Find the registry index corresponding to zoneId using linear search. More...
 
static uint16_t binarySearchById (const typename D::ZoneInfo *const *registry, uint16_t registrySize, uint32_t zoneId)
 Find the registry index corresponding to zoneId using a binary search. More...
 
- - - - -

-Static Protected Attributes

-static const uint8_t kBinarySearchThreshold = 8
 Use binarySearchById() if zoneRegistrySize >= threshold.
 
- - - - - - - - - - - - - - - - - - - -

-Friends

-class ::ZoneRegistrarTest_Sorted_isSorted
 
-class ::ZoneRegistrarTest_Unsorted_isSorted
 
-class ::ZoneRegistrarTest_Sorted_linearSearchById
 
-class ::ZoneRegistrarTest_Sorted_linearSearchById_not_found
 
-class ::ZoneRegistrarTest_Sorted_binarySearchById_zeroEntries
 
-class ::ZoneRegistrarTest_Sorted_binarySearchById
 
-class ::ZoneRegistrarTest_Sorted_binarySearchById_not_found
 
-class ::ZoneRegistrarTest_Unsorted_linearSearchById
 
-class ::ZoneRegistrarTest_Unsorted_linearSearchById_not_found
 
-

Detailed Description

-

template<typename D>
-class ace_time::ZoneRegistrarTemplate< D >

- -

Class that allows looking up the ZoneInfo from its TZDB identifier (e.g.

-

"America/Los_Angeles"), zoneId (hash from its name), or the index in the zone registry.

-
Template Parameters
- - -
Dcontainer type of ZoneInfo database (e.g. basic::Info, extended::Info, complete::Info)
-
-
- -

Definition at line 46 of file ZoneRegistrar.h.

-

Member Function Documentation

- -

◆ binarySearchById()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static uint16_t ace_time::ZoneRegistrarTemplate< D >::binarySearchById (const typename D::ZoneInfo *const * registry,
uint16_t registrySize,
uint32_t zoneId 
)
-
-inlinestaticprotected
-
- -

Find the registry index corresponding to zoneId using a binary search.

-

Returns kInvalidIndex if not found.

-

The largest registrySize is UINT16_MAX so the largest valid index is UINT16_MAX - 1. This allows us to set kInvalidIndex to UINT16_MAX to indicate "Not Found".

- -

Definition at line 191 of file ZoneRegistrar.h.

- -
-
- -

◆ findIndexForId()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
uint16_t ace_time::ZoneRegistrarTemplate< D >::findIndexForId (uint32_t zoneId) const
-
-inline
-
- -

Find the index for zone id.

-

Return kInvalidIndex if not found.

- -

Definition at line 106 of file ZoneRegistrar.h.

- -
-
- -

◆ findIndexForName()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
uint16_t ace_time::ZoneRegistrarTemplate< D >::findIndexForName (const char * name) const
-
-inline
-
- -

Find the index for zone name.

-

Return kInvalidIndex if not found.

- -

Definition at line 89 of file ZoneRegistrar.h.

- -
-
- -

◆ getZoneInfoForId()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
const D::ZoneInfo* ace_time::ZoneRegistrarTemplate< D >::getZoneInfoForId (uint32_t zoneId) const
-
-inline
-
- -

Return the ZoneInfo using the zoneId.

-

Return nullptr if not found.

- -

Definition at line 82 of file ZoneRegistrar.h.

- -
-
- -

◆ getZoneInfoForIndex()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
const D::ZoneInfo* ace_time::ZoneRegistrarTemplate< D >::getZoneInfoForIndex (uint16_t i) const
-
-inline
-
- -

Return the ZoneInfo at index i.

-

Return nullptr if i is out of range.

- -

Definition at line 65 of file ZoneRegistrar.h.

- -
-
- -

◆ getZoneInfoForName()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
const D::ZoneInfo* ace_time::ZoneRegistrarTemplate< D >::getZoneInfoForName (const char * name) const
-
-inline
-
- -

Return the ZoneInfo corresponding to the given zone name.

-

Return nullptr if not found.

- -

Definition at line 75 of file ZoneRegistrar.h.

- -
-
- -

◆ linearSearchById()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static uint16_t ace_time::ZoneRegistrarTemplate< D >::linearSearchById (const typename D::ZoneInfo *const * registry,
uint16_t registrySize,
uint32_t zoneId 
)
-
-inlinestaticprotected
-
- -

Find the registry index corresponding to zoneId using linear search.

-

Returns kInvalidIndex if not found.

- -

Definition at line 156 of file ZoneRegistrar.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneRegistrar.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZoneSorterByName-members.html b/docs/html/classace__time_1_1ZoneSorterByName-members.html deleted file mode 100644 index c395e1dc5..000000000 --- a/docs/html/classace__time_1_1ZoneSorterByName-members.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneSorterByName< ZM > Member List
-
-
- -

This is the complete list of members for ace_time::ZoneSorterByName< ZM >, including all inherited members.

- - - - - - -
fillIndexes(uint16_t indexes[], uint16_t size) constace_time::ZoneSorterByName< ZM >inline
sortIds(uint32_t ids[], uint16_t size) constace_time::ZoneSorterByName< ZM >inline
sortIndexes(uint16_t indexes[], uint16_t size) constace_time::ZoneSorterByName< ZM >inline
sortNames(const char *names[], uint16_t size) constace_time::ZoneSorterByName< ZM >inline
ZoneSorterByName(const ZM &zoneManager)ace_time::ZoneSorterByName< ZM >inline
- - - - diff --git a/docs/html/classace__time_1_1ZoneSorterByName.html b/docs/html/classace__time_1_1ZoneSorterByName.html deleted file mode 100644 index 149c1ec8d..000000000 --- a/docs/html/classace__time_1_1ZoneSorterByName.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneSorterByName< ZM > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneSorterByName< ZM > Class Template Reference
-
-
- -

ZoneSorterByName, templatized on BasicZoneManager or ExtendedZoneManager. - More...

- -

#include <ZoneSorterByName.h>

- - - - - - - - - - - - - - - - - -

-Public Member Functions

 ZoneSorterByName (const ZM &zoneManager)
 Constructor. More...
 
void fillIndexes (uint16_t indexes[], uint16_t size) const
 Fill the given array of indexes with index from [0, size). More...
 
-void sortIndexes (uint16_t indexes[], uint16_t size) const
 Sort the given array of indexes by UTC offset, then by name.
 
-void sortIds (uint32_t ids[], uint16_t size) const
 Sort the given array of zone ids by UTC offset, then by name.
 
-void sortNames (const char *names[], uint16_t size) const
 Sort the given array of zone names by UTC offset, then by name.
 
-

Detailed Description

-

template<typename ZM>
-class ace_time::ZoneSorterByName< ZM >

- -

ZoneSorterByName, templatized on BasicZoneManager or ExtendedZoneManager.

-

Sorts the array of zones by name.

-
Template Parameters
- - -
ZMZoneManager
-
-
- -

Definition at line 21 of file ZoneSorterByName.h.

-

Constructor & Destructor Documentation

- -

◆ ZoneSorterByName()

- -
-
-
-template<typename ZM >
- - - - - -
- - - - - - - - -
ace_time::ZoneSorterByName< ZM >::ZoneSorterByName (const ZM & zoneManager)
-
-inline
-
- -

Constructor.

-
Parameters
- - -
zoneManagerinstance of the ZoneManager
-
-
- -

Definition at line 27 of file ZoneSorterByName.h.

- -
-
-

Member Function Documentation

- -

◆ fillIndexes()

- -
-
-
-template<typename ZM >
- - - - - -
- - - - - - - - - - - - - - - - - - -
void ace_time::ZoneSorterByName< ZM >::fillIndexes (uint16_t indexes[],
uint16_t size 
) const
-
-inline
-
- -

Fill the given array of indexes with index from [0, size).

-

The resulting indexes array can be sorted using sortIndexes().

- -

Definition at line 35 of file ZoneSorterByName.h.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1ZoneSorterByOffsetAndName-members.html b/docs/html/classace__time_1_1ZoneSorterByOffsetAndName-members.html deleted file mode 100644 index 44be80db9..000000000 --- a/docs/html/classace__time_1_1ZoneSorterByOffsetAndName-members.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneSorterByOffsetAndName< ZM > Member List
-
-
- -

This is the complete list of members for ace_time::ZoneSorterByOffsetAndName< ZM >, including all inherited members.

- - - - - - - -
compareZone(const Z &a, const Z &b)ace_time::ZoneSorterByOffsetAndName< ZM >inlinestatic
fillIndexes(uint16_t indexes[], uint16_t size) constace_time::ZoneSorterByOffsetAndName< ZM >inline
sortIds(uint32_t ids[], uint16_t size) constace_time::ZoneSorterByOffsetAndName< ZM >inline
sortIndexes(uint16_t indexes[], uint16_t size) constace_time::ZoneSorterByOffsetAndName< ZM >inline
sortNames(const char *names[], uint16_t size) constace_time::ZoneSorterByOffsetAndName< ZM >inline
ZoneSorterByOffsetAndName(const ZM &zoneManager)ace_time::ZoneSorterByOffsetAndName< ZM >inline
- - - - diff --git a/docs/html/classace__time_1_1ZoneSorterByOffsetAndName.html b/docs/html/classace__time_1_1ZoneSorterByOffsetAndName.html deleted file mode 100644 index 776c87969..000000000 --- a/docs/html/classace__time_1_1ZoneSorterByOffsetAndName.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneSorterByOffsetAndName< ZM > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneSorterByOffsetAndName< ZM > Class Template Reference
-
-
- -

ZoneSorterByOffsetAndName, templatized on a ZoneManager (BasicZoneManager, ExtendedZoneManager, or CompleteZoneManager). - More...

- -

#include <ZoneSorterByOffsetAndName.h>

- - - - - - - - - - - - - - - - - -

-Public Member Functions

 ZoneSorterByOffsetAndName (const ZM &zoneManager)
 Constructor. More...
 
void fillIndexes (uint16_t indexes[], uint16_t size) const
 Fill the given array of indexes with index from [0, size). More...
 
-void sortIndexes (uint16_t indexes[], uint16_t size) const
 Sort the given array of indexes by UTC offset, then by name.
 
-void sortIds (uint32_t ids[], uint16_t size) const
 Sort the given array of zone ids by UTC offset, then by name.
 
-void sortNames (const char *names[], uint16_t size) const
 Sort the given array of zone names by UTC offset, then by name.
 
- - - - - -

-Static Public Member Functions

template<typename Z >
static int compareZone (const Z &a, const Z &b)
 Return <0, 0, or >0 depending on whether Zone a is <, ==, or > than Zone b. More...
 
-

Detailed Description

-

template<typename ZM>
-class ace_time::ZoneSorterByOffsetAndName< ZM >

- -

ZoneSorterByOffsetAndName, templatized on a ZoneManager (BasicZoneManager, ExtendedZoneManager, or CompleteZoneManager).

-

Sorts the array of zones by UTC offset first, then by name.

-
Template Parameters
- - -
ZMZoneManager
-
-
- -

Definition at line 22 of file ZoneSorterByOffsetAndName.h.

-

Constructor & Destructor Documentation

- -

◆ ZoneSorterByOffsetAndName()

- -
-
-
-template<typename ZM >
- - - - - -
- - - - - - - - -
ace_time::ZoneSorterByOffsetAndName< ZM >::ZoneSorterByOffsetAndName (const ZM & zoneManager)
-
-inline
-
- -

Constructor.

-
Parameters
- - -
zoneManagerinstance of the ZoneManager
-
-
- -

Definition at line 28 of file ZoneSorterByOffsetAndName.h.

- -
-
-

Member Function Documentation

- -

◆ compareZone()

- -
-
-
-template<typename ZM >
-
-template<typename Z >
- - - - - -
- - - - - - - - - - - - - - - - - - -
static int ace_time::ZoneSorterByOffsetAndName< ZM >::compareZone (const Z & a,
const Z & b 
)
-
-inlinestatic
-
- -

Return <0, 0, or >0 depending on whether Zone a is <, ==, or > than Zone b.

-

The comparison function is by the zone's last UTC offset in the zoneInfo database, then by name for zones which have the same UTC offset.

-

We cannot use auto as the parameter type (apparently, that's a C++14 feature), so we are forced to use template function.

-
Template Parameters
- - -
Zthe zone class (i.e. BasicZone, ExtendedZone, ComppleteZone)
-
-
- -

Definition at line 90 of file ZoneSorterByOffsetAndName.h.

- -
-
- -

◆ fillIndexes()

- -
-
-
-template<typename ZM >
- - - - - -
- - - - - - - - - - - - - - - - - - -
void ace_time::ZoneSorterByOffsetAndName< ZM >::fillIndexes (uint16_t indexes[],
uint16_t size 
) const
-
-inline
-
- -

Fill the given array of indexes with index from [0, size).

-

The resulting indexes array can be sorted using sortIndexes().

- -

Definition at line 36 of file ZoneSorterByOffsetAndName.h.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classace__time_1_1ZoneTemplate-members.html b/docs/html/classace__time_1_1ZoneTemplate-members.html deleted file mode 100644 index 9c0303c79..000000000 --- a/docs/html/classace__time_1_1ZoneTemplate-members.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZoneTemplate< D > Member List
-
-
- -

This is the complete list of members for ace_time::ZoneTemplate< D >, including all inherited members.

- - - - - - - - - - - -
isNull() constace_time::ZoneTemplate< D >inline
kname() constace_time::ZoneTemplate< D >inline
operator=(const ZoneTemplate &)=default (defined in ace_time::ZoneTemplate< D >)ace_time::ZoneTemplate< D >
printNameTo(Print &printer) constace_time::ZoneTemplate< D >inline
printShortNameTo(Print &printer) constace_time::ZoneTemplate< D >inline
stdOffset() constace_time::ZoneTemplate< D >inline
zoneId() constace_time::ZoneTemplate< D >inline
ZoneTemplate(const typename D::ZoneInfo *zoneInfo)ace_time::ZoneTemplate< D >inline
ZoneTemplate(const typename D::ZoneInfoBroker &zoneInfo)ace_time::ZoneTemplate< D >inline
ZoneTemplate(const ZoneTemplate &)=default (defined in ace_time::ZoneTemplate< D >)ace_time::ZoneTemplate< D >
- - - - diff --git a/docs/html/classace__time_1_1ZoneTemplate.html b/docs/html/classace__time_1_1ZoneTemplate.html deleted file mode 100644 index a56bfd48c..000000000 --- a/docs/html/classace__time_1_1ZoneTemplate.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneTemplate< D > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZoneTemplate< D > Class Template Reference
-
-
- -

A thin wrapper around a ZoneInfo data structure to provide a stable API access to some useful ZoneInfo data. - More...

- -

#include <Zone.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZoneTemplate (const typename D::ZoneInfo *zoneInfo)
 Constructor from a raw Info::ZoneInfo* pointer, intended for manual inspection of a ZoneInfo record.
 
 ZoneTemplate (const typename D::ZoneInfoBroker &zoneInfo)
 Constructor from a Info:ZoneInfoBroker, used by various ZoneProcessor. More...
 
ZoneTemplate (const ZoneTemplate &)=default
 
-ZoneTemplateoperator= (const ZoneTemplate &)=default
 
-bool isNull () const
 Return true if zoneInfo is null.
 
void printNameTo (Print &printer) const
 Print the full zone name to printer. More...
 
void printShortNameTo (Print &printer) const
 Print the short pretty zone name to the printer. More...
 
-uint32_t zoneId () const
 Return the zoneId of the current zoneInfo.
 
-TimeOffset stdOffset () const
 Return the STDOFF of the last ZoneEra.
 
-ace_common::KString kname () const
 Return the name as a KString.
 
-

Detailed Description

-

template<typename D>
-class ace_time::ZoneTemplate< D >

- -

A thin wrapper around a ZoneInfo data structure to provide a stable API access to some useful ZoneInfo data.

-

The ZoneInfo data struct is intended to be an opaque type to the users of this library.

-
Template Parameters
- - -
Dcontainer type of ZoneInfo database
-
-
- -

Definition at line 25 of file Zone.h.

-

Constructor & Destructor Documentation

- -

◆ ZoneTemplate()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
ace_time::ZoneTemplate< D >::ZoneTemplate (const typename D::ZoneInfoBroker & zoneInfo)
-
-inline
-
- -

Constructor from a Info:ZoneInfoBroker, used by various ZoneProcessor.

-

This allows the implementation details of ZoneInfoBroker to remain hidden.

- -

Definition at line 39 of file Zone.h.

- -
-
-

Member Function Documentation

- -

◆ printNameTo()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::ZoneTemplate< D >::printNameTo (Print & printer) const
-
-inline
-
- -

Print the full zone name to printer.

-

Example "America/Los_Angeles".

- -

Definition at line 50 of file Zone.h.

- -
-
- -

◆ printShortNameTo()

- -
-
-
-template<typename D >
- - - - - -
- - - - - - - - -
void ace_time::ZoneTemplate< D >::printShortNameTo (Print & printer) const
-
-inline
-
- -

Print the short pretty zone name to the printer.

-

Underscores are replaced with spaces. Example "Los Angeles".

- -

Definition at line 64 of file Zone.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Zone.h
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZonedDateTime-members.html b/docs/html/classace__time_1_1ZonedDateTime-members.html deleted file mode 100644 index 278489994..000000000 --- a/docs/html/classace__time_1_1ZonedDateTime-members.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZonedDateTime Member List
-
-
- -

This is the complete list of members for ace_time::ZonedDateTime, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
compareTo(const ZonedDateTime &that) constace_time::ZonedDateTimeinline
convertToTimeZone(const TimeZone &timeZone) constace_time::ZonedDateTimeinline
day() constace_time::ZonedDateTimeinline
day(uint8_t day)ace_time::ZonedDateTimeinline
dayOfWeek() constace_time::ZonedDateTimeinline
fold() constace_time::ZonedDateTimeinline
fold(uint8_t fold)ace_time::ZonedDateTimeinline
forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, const TimeZone &timeZone, uint8_t fold=0)ace_time::ZonedDateTimeinlinestatic
forDateString(const char *dateString)ace_time::ZonedDateTimeinlinestatic
forDateString(const __FlashStringHelper *dateString)ace_time::ZonedDateTimeinlinestatic
forEpochSeconds(acetime_t epochSeconds, const TimeZone &timeZone)ace_time::ZonedDateTimeinlinestatic
forError()ace_time::ZonedDateTimeinlinestatic
forLocalDateTime(const LocalDateTime &ldt, const TimeZone &timeZone)ace_time::ZonedDateTimeinlinestatic
forUnixSeconds64(int64_t unixSeconds, const TimeZone &timeZone)ace_time::ZonedDateTimeinlinestatic
hour() constace_time::ZonedDateTimeinline
hour(uint8_t hour)ace_time::ZonedDateTimeinline
isError() constace_time::ZonedDateTimeinline
localDateTime() constace_time::ZonedDateTimeinline
minute() constace_time::ZonedDateTimeinline
minute(uint8_t minute)ace_time::ZonedDateTimeinline
month() constace_time::ZonedDateTimeinline
month(uint8_t month)ace_time::ZonedDateTimeinline
normalize()ace_time::ZonedDateTimeinline
offsetDateTime() constace_time::ZonedDateTimeinline
operator=(const ZonedDateTime &)=default (defined in ace_time::ZonedDateTime)ace_time::ZonedDateTime
operator==(const ZonedDateTime &a, const ZonedDateTime &b)ace_time::ZonedDateTimefriend
printTo(Print &printer) constace_time::ZonedDateTime
second() constace_time::ZonedDateTimeinline
second(uint8_t second)ace_time::ZonedDateTimeinline
timeOffset() constace_time::ZonedDateTimeinline
timeZone() constace_time::ZonedDateTimeinline
timeZone(const TimeZone &timeZone)ace_time::ZonedDateTimeinline
toEpochDays() constace_time::ZonedDateTimeinline
toEpochSeconds() constace_time::ZonedDateTimeinline
toUnixDays() constace_time::ZonedDateTimeinline
toUnixSeconds64() constace_time::ZonedDateTimeinline
year() constace_time::ZonedDateTimeinline
year(int16_t year)ace_time::ZonedDateTimeinline
ZonedDateTime()ace_time::ZonedDateTimeinlineexplicit
ZonedDateTime(const ZonedDateTime &)=default (defined in ace_time::ZonedDateTime)ace_time::ZonedDateTime
- - - - diff --git a/docs/html/classace__time_1_1ZonedDateTime.html b/docs/html/classace__time_1_1ZonedDateTime.html deleted file mode 100644 index 624a1d7d3..000000000 --- a/docs/html/classace__time_1_1ZonedDateTime.html +++ /dev/null @@ -1,813 +0,0 @@ - - - - - - - -AceTime: ace_time::ZonedDateTime Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::ZonedDateTime Class Reference
-
-
- -

The date (year, month, day), time (hour, minute, second), and a timeZone object that supports the zones defined by the IANA TZ database. - More...

- -

#include <ZonedDateTime.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZonedDateTime ()
 Default constructor.
 
-bool isError () const
 Return true if any component indicates an error condition.
 
-int16_t year () const
 Return the year.
 
-void year (int16_t year)
 Set the year given the full year.
 
-uint8_t month () const
 Return the month with January=1, December=12.
 
-void month (uint8_t month)
 Set the month.
 
-uint8_t day () const
 Return the day of the month.
 
-void day (uint8_t day)
 Set the day of the month.
 
-uint8_t hour () const
 Return the hour.
 
-void hour (uint8_t hour)
 Set the hour.
 
-uint8_t minute () const
 Return the minute.
 
-void minute (uint8_t minute)
 Set the minute.
 
-uint8_t second () const
 Return the second.
 
-void second (uint8_t second)
 Set the second.
 
-uint8_t fold () const
 Return the fold.
 
-void fold (uint8_t fold)
 Set the fold.
 
-uint8_t dayOfWeek () const
 Return the day of the week using ISO 8601 numbering where Monday=1 and Sunday=7.
 
-const TimeZonetimeZone () const
 Return the time zone of the ZonedDateTime.
 
void timeZone (const TimeZone &timeZone)
 Set the time zone. More...
 
-TimeOffset timeOffset () const
 Return the offset zone of the OffsetDateTime.
 
-const LocalDateTimelocalDateTime () const
 Return the LocalDateTime of the components.
 
-const OffsetDateTimeoffsetDateTime () const
 Return the OffsetDateTime of the components.
 
void normalize ()
 Normalize the ZonedDateTime after mutation. More...
 
-ZonedDateTime convertToTimeZone (const TimeZone &timeZone) const
 Create a ZonedDateTime in a different time zone (with the same epochSeconds).
 
int32_t toEpochDays () const
 Return number of whole days since AceTime epoch taking into account the time zone. More...
 
-int32_t toUnixDays () const
 Return the number of days since Unix epoch (1970-01-01 00:00:00).
 
acetime_t toEpochSeconds () const
 Return seconds since AceTime epoch taking into account the time zone. More...
 
int64_t toUnixSeconds64 () const
 Return the 64-bit number of seconds from Unix epoch 1970-01-01 00:00:00 UTC. More...
 
int8_t compareTo (const ZonedDateTime &that) const
 Compare 'this' ZonedDateTime with 'that' ZonedDateTime, and return (<0, 0, >0) according to whether the equivalent epochSeconds (with the timezone incorporated) is (a<b, a==b, a>b). More...
 
void printTo (Print &printer) const
 Print ZonedDateTime to 'printer'. More...
 
ZonedDateTime (const ZonedDateTime &)=default
 
-ZonedDateTimeoperator= (const ZonedDateTime &)=default
 
- - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

static ZonedDateTime forComponents (int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, const TimeZone &timeZone, uint8_t fold=0)
 Factory method using separated date, time, and time zone fields. More...
 
static ZonedDateTime forLocalDateTime (const LocalDateTime &ldt, const TimeZone &timeZone)
 Factory method using LocalDateTime and time zone fields. More...
 
static ZonedDateTime forEpochSeconds (acetime_t epochSeconds, const TimeZone &timeZone)
 Factory method. More...
 
static ZonedDateTime forUnixSeconds64 (int64_t unixSeconds, const TimeZone &timeZone)
 Factory method to create a ZonedDateTime using the 64-bit number of seconds from Unix epoch. More...
 
static ZonedDateTime forDateString (const char *dateString)
 Factory method. More...
 
static ZonedDateTime forDateString (const __FlashStringHelper *dateString)
 Factory method. More...
 
-static ZonedDateTime forError ()
 Return an instance whose isError() returns true.
 
- - - - -

-Friends

bool operator== (const ZonedDateTime &a, const ZonedDateTime &b)
 Return true if two ZonedDateTime objects are equal in all components. More...
 
-

Detailed Description

-

The date (year, month, day), time (hour, minute, second), and a timeZone object that supports the zones defined by the IANA TZ database.

-

The year field is internally represented as an int16_t number, with 0 indicating -Infinity and 10000 representing +Infinity, so the normal range is [1,9999]. An invalid year is represented by INT16_MIN (-32768).

-

The default epoch for AceTime is 2050-01-01 00:00:00 UTC, but can be changed using LocaDate::currentEpochYear(). The toEpochSeconds() method returns a int32_t number of seconds offset from that epoch.

-

The dayOfWeek (1=Sunday, 7=Saturday) is calculated internally from the date components. Changing the timeZone does not affect the dayOfWeek.

-

Some parts of this class were inspired by the org.joda.DateTime of http://www.joda.org, the java.time.ZonedDateTime class of Java 11, and the datetime package of Python 3.

- -

Definition at line 36 of file ZonedDateTime.h.

-

Member Function Documentation

- -

◆ compareTo()

- -
-
- - - - - -
- - - - - - - - -
int8_t ace_time::ZonedDateTime::compareTo (const ZonedDateTimethat) const
-
-inline
-
- -

Compare 'this' ZonedDateTime with 'that' ZonedDateTime, and return (<0, 0, >0) according to whether the equivalent epochSeconds (with the timezone incorporated) is (a<b, a==b, a>b).

-

The dayOfWeek field is ignored. This method can return 0 (equal) even if the operator==() returns false if the two ZonedDateTime objects are in different time zones.

-

If you want to know whether the local representatation of 'this' ZonedDateTime occurs before or after the local representation of 'that', use this->localDateTime().compareTo(that.localDateTime()) instead. This expression ignores the time zone which is sometimes what you want.

-

If either this->isError() or that.isError() is true, the result is undefined.

- -

Definition at line 318 of file ZonedDateTime.h.

- -
-
- -

◆ forComponents()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static ZonedDateTime ace_time::ZonedDateTime::forComponents (int16_t year,
uint8_t month,
uint8_t day,
uint8_t hour,
uint8_t minute,
uint8_t second,
const TimeZonetimeZone,
uint8_t fold = 0 
)
-
-inlinestatic
-
- -

Factory method using separated date, time, and time zone fields.

-

This is intended mostly for testing purposes. Most production code will use the forEpochSeconds() method.

-

The TimeOffset at the given date/time component is calculated using TimeZone::getOffsetDateTime().

-
Parameters
- - - - - - - - - -
yearyear [0,10000]
monthmonth with January=1, December=12
dayday of month [1-31]
hourhour [0-23]
minuteminute [0-59]
secondsecond [0-59], does not support leap seconds
timeZonea TimeZone instance (use TimeZone() for UTC)
foldoptional disambiguation of multiple occurences [0, 1]
-
-
- -

Definition at line 55 of file ZonedDateTime.h.

- -
-
- -

◆ forDateString() [1/2]

- -
-
- - - - - -
- - - - - - - - -
static ZonedDateTime ace_time::ZonedDateTime::forDateString (const __FlashStringHelper * dateString)
-
-inlinestatic
-
- -

Factory method.

-

Create a ZonedDateTime from date string in flash memory F() strings. Mostly for unit testing.

- -

Definition at line 153 of file ZonedDateTime.h.

- -
-
- -

◆ forDateString() [2/2]

- -
-
- - - - - -
- - - - - - - - -
static ZonedDateTime ace_time::ZonedDateTime::forDateString (const char * dateString)
-
-inlinestatic
-
- -

Factory method.

-

Create a ZonedDateTime from the ISO 8601 date string. If the string cannot be parsed, then isError() on the constructed object returns true.

-
Parameters
- - -
dateStringa string in ISO 8601 format "YYYY-MM-DDThh:mm:ss+hh:mm". The parser is very lenient and does not detect most errors. It cares mostly about the positional placement of the various components. It does not validate the separation characters like '-' or ':'. For example, both of the following will parse to the exactly same ZonedDateTime object: "2018-08-31T13:48:01-07:00" "2018/08/31 13#48#01-07#00".
-
-
- -

Definition at line 144 of file ZonedDateTime.h.

- -
-
- -

◆ forEpochSeconds()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static ZonedDateTime ace_time::ZonedDateTime::forEpochSeconds (acetime_t epochSeconds,
const TimeZonetimeZone 
)
-
-inlinestatic
-
- -

Factory method.

-

Create the ZonedDateTime from epochSeconds as seen from the given time zone. The dayOfWeek will be calculated internally. Returns ZonedDateTime::forError() if epochSeconds is invalid.

-
Parameters
- - - -
epochSecondsNumber of seconds from the current epoch by Epoch::currentEpochYear(). The default is 2050-01-01 00:00:00 UTC which can be changed by currentEpochYear(year). A value of LocalDate::kInvalidEpochSeconds is a sentinel that is considered to be an error and causes isError() to return true.
timeZonea TimeZone instance (use TimeZone() for UTC)
-
-
- -

Definition at line 93 of file ZonedDateTime.h.

- -
-
- -

◆ forLocalDateTime()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static ZonedDateTime ace_time::ZonedDateTime::forLocalDateTime (const LocalDateTimeldt,
const TimeZonetimeZone 
)
-
-inlinestatic
-
- -

Factory method using LocalDateTime and time zone fields.

-

This is intended mostly for testing purposes. Most production code will use the forEpochSeconds() method.

-

The TimeOffset at the given date/time component is calculated using TimeZone::getOffsetDateTime().

-
Parameters
- - - -
ldtLocalDateTime (including the fold parameter)
timeZonea TimeZone instance (use TimeZone() for UTC)
-
-
- -

Definition at line 75 of file ZonedDateTime.h.

- -
-
- -

◆ forUnixSeconds64()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static ZonedDateTime ace_time::ZonedDateTime::forUnixSeconds64 (int64_t unixSeconds,
const TimeZonetimeZone 
)
-
-inlinestatic
-
- -

Factory method to create a ZonedDateTime using the 64-bit number of seconds from Unix epoch.

-

Even though unixSeconds is 64-bit integer, the internal calculations of the DST time zone transitions are performed using a 32-bit integer. Therefore, the valid range of unixSeconds is approximately the same range as ZonedDateTime::forEpochSeconds() after translating it to the AceTime current epoch. In other words, unixSeconds should be roughly within +/- 60 years of the current epoch year given by Epoch::currentEpochYear().

-

Returns ZonedDateTime::forError() if unixSeconds is invalid.

-
Parameters
- - - -
unixSecondsnumber of seconds since Unix epoch (1970-01-01T00:00:00 UTC)
timeZonea TimeZone instance (use TimeZone() for UTC)
-
-
- -

Definition at line 119 of file ZonedDateTime.h.

- -
-
- -

◆ normalize()

- -
-
- - - - - -
- - - - - - - -
void ace_time::ZonedDateTime::normalize ()
-
-inline
-
- -

Normalize the ZonedDateTime after mutation.

-

This must be called after any mutation method is called (i.e. year(), month(), day(), hour(), minute(), second(), timezone()) in order to obtain correct values for various derivative information (e.g. toEpochSeconds()). Multiple mutations can be batched together before calling this method.

-

This method exists because AceTime objects are mutable instead of immutable. If the objects were immutable, then each mutation would create a new object that would be automatically normalized, and an unnormalized object would not be visible outside of the library. Unfortunately, making the AceTime classes immutable causes the library to consume too much additional memory and consume too much CPU resources on 8-bit processors. So we must provide this normalize() method which must be called manually by the client code.

- -

Definition at line 255 of file ZonedDateTime.h.

- -
-
- -

◆ printTo()

- -
-
- - - - - - - - -
void ace_time::ZonedDateTime::printTo (Print & printer) const
-
- -

Print ZonedDateTime to 'printer'.

-

This class does not implement the Printable interface to avoid increasing the size of the object from the additional virtual function.

- -

Definition at line 12 of file ZonedDateTime.cpp.

- -
-
- -

◆ timeZone()

- -
-
- - - - - -
- - - - - - - - -
void ace_time::ZonedDateTime::timeZone (const TimeZonetimeZone)
-
-inline
-
- -

Set the time zone.

-

Note that this does not convert a given ZonedDateTime into a different TimeZone. Use converToTimeZone() instead.

- -

Definition at line 224 of file ZonedDateTime.h.

- -
-
- -

◆ toEpochDays()

- -
-
- - - - - -
- - - - - - - -
int32_t ace_time::ZonedDateTime::toEpochDays () const
-
-inline
-
- -

Return number of whole days since AceTime epoch taking into account the time zone.

-

The default epoch is 2050-01-01 00:00:00 UTC but can be changed using Epoch::currentEpochYear().

- -

Definition at line 273 of file ZonedDateTime.h.

- -
-
- -

◆ toEpochSeconds()

- -
-
- - - - - -
- - - - - - - -
acetime_t ace_time::ZonedDateTime::toEpochSeconds () const
-
-inline
-
- -

Return seconds since AceTime epoch taking into account the time zone.

-

The default epoch is 2050-01-01 00:00:00 UTC but can be changed using Epoch::currentEpochYear().

- -

Definition at line 287 of file ZonedDateTime.h.

- -
-
- -

◆ toUnixSeconds64()

- -
-
- - - - - -
- - - - - - - -
int64_t ace_time::ZonedDateTime::toUnixSeconds64 () const
-
-inline
-
- -

Return the 64-bit number of seconds from Unix epoch 1970-01-01 00:00:00 UTC.

-

Returns LocalDAte::kInvalidUnixSeconds64 if isError() is true.

-

Tip: You can use the command 'date +s -d {iso8601date}' on a Unix box to print the unix seconds.

- -

Definition at line 298 of file ZonedDateTime.h.

- -
-
-

Friends And Related Function Documentation

- -

◆ operator==

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool operator== (const ZonedDateTimea,
const ZonedDateTimeb 
)
-
-friend
-
- -

Return true if two ZonedDateTime objects are equal in all components.

-

Optimized for small changes in the less signficant fields, such as 'second' or 'minute'. The dayOfWeek is a derived field so it is not explicitly used to test equality, but it follows that if all the other fields are identical, then the dayOfWeek must also be equal.

- -

Definition at line 355 of file ZonedDateTime.h.

- -
-
-
The documentation for this class was generated from the following files:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZonedDateTime.h
  • -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZonedDateTime.cpp
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1ZonedExtra-members.html b/docs/html/classace__time_1_1ZonedExtra-members.html deleted file mode 100644 index e9e887026..000000000 --- a/docs/html/classace__time_1_1ZonedExtra-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::ZonedExtra Member List
-
-
- -

This is the complete list of members for ace_time::ZonedExtra, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - -
abbrev() constace_time::ZonedExtrainline
dstOffset() constace_time::ZonedExtrainline
forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, const TimeZone &tz, uint8_t fold=0)ace_time::ZonedExtrastatic
forEpochSeconds(acetime_t epochSeconds, const TimeZone &tz)ace_time::ZonedExtrastatic
forError()ace_time::ZonedExtrainlinestatic
forLocalDateTime(const LocalDateTime &ldt, const TimeZone &tz)ace_time::ZonedExtrastatic
isError() constace_time::ZonedExtrainline
kAbbrevSizeace_time::ZonedExtrastatic
kTypeExactace_time::ZonedExtrastatic
kTypeGapace_time::ZonedExtrastatic
kTypeNotFoundace_time::ZonedExtrastatic
kTypeOverlapace_time::ZonedExtrastatic
reqDstOffset() constace_time::ZonedExtrainline
reqStdOffset() constace_time::ZonedExtrainline
reqTimeOffset() constace_time::ZonedExtrainline
stdOffset() constace_time::ZonedExtrainline
timeOffset() constace_time::ZonedExtrainline
type() const (defined in ace_time::ZonedExtra)ace_time::ZonedExtrainline
ZonedExtra()ace_time::ZonedExtrainlineexplicit
ZonedExtra(uint8_t type, int32_t stdOffsetSeconds, int32_t dstOffsetSeconds, int32_t reqStdOffsetSeconds, int32_t reqDstOffsetSeconds, const char *abbrev)ace_time::ZonedExtrainlineexplicit
- - - - diff --git a/docs/html/classace__time_1_1ZonedExtra.html b/docs/html/classace__time_1_1ZonedExtra.html deleted file mode 100644 index 6c0dac591..000000000 --- a/docs/html/classace__time_1_1ZonedExtra.html +++ /dev/null @@ -1,522 +0,0 @@ - - - - - - - -AceTime: ace_time::ZonedExtra Class Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ZonedExtra ()
 Consructor.
 
ZonedExtra (uint8_t type, int32_t stdOffsetSeconds, int32_t dstOffsetSeconds, int32_t reqStdOffsetSeconds, int32_t reqDstOffsetSeconds, const char *abbrev)
 Consructor.
 
-bool isError () const
 Indicates that the LocalDateTime or epochSeconds was not found.
 
-uint8_t type () const
 
-TimeOffset stdOffset () const
 STD offset of the resulting OffsetDateTime.
 
-TimeOffset dstOffset () const
 DST offset of the resulting OffsetDateTime.
 
TimeOffset timeOffset () const
 The total time offset (stdOffset + dstOffset). More...
 
TimeOffset reqStdOffset () const
 STD offset of the requested epochSeconds or LocalDateTime. More...
 
TimeOffset reqDstOffset () const
 DST offset of the requested epochSeconds or LocalDateTime. More...
 
TimeOffset reqTimeOffset () const
 The total time offset of the requested epochSeconds of LocalDateTime, (reqStdOffset + reqDstOffset). More...
 
const char * abbrev () const
 Returns the pointer to the local string buffer containing the timezone abbreviation (e.g. More...
 
- - - - - - - - - - - - - -

-Static Public Member Functions

-static ZonedExtra forError ()
 Return an instance that indicates an error.
 
static ZonedExtra forComponents (int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, const TimeZone &tz, uint8_t fold=0)
 Return an instance for the given LocalDateTime and TimeZone. More...
 
-static ZonedExtra forEpochSeconds (acetime_t epochSeconds, const TimeZone &tz)
 Return an instance for the given epochSeconds and TimeZone.
 
static ZonedExtra forLocalDateTime (const LocalDateTime &ldt, const TimeZone &tz)
 Return an instance for the given LocalDateTime and TimeZone. More...
 
- - - - - - - - - - - - - - - - -

-Static Public Attributes

-static const uint8_t kAbbrevSize = ace_time::kAbbrevSize
 Size of char buffer needed to hold the largest abbreviation.
 
-static const uint8_t kTypeNotFound = 0
 The epochSeconds or LocalDateTime was not found because it was outside the range of the zoneinfo database (too far past, or too far in the future).
 
static const uint8_t kTypeExact = 1
 The given LocalDateTime matches a single epochSeconds. More...
 
static const uint8_t kTypeGap = 2
 The given LocalDateTime occurs in a gap and does not match any epochSeconds. More...
 
static const uint8_t kTypeOverlap = 3
 The given LocalDateTime matches 2 possible epochSeconds, which is disambguiated by the LocalDateTime::fold input parameter. More...
 
-

Detailed Description

-
-

Definition at line 19 of file ZonedExtra.h.

-

Member Function Documentation

- -

◆ abbrev()

- -
-
- - - - - -
- - - - - - - -
const char* ace_time::ZonedExtra::abbrev () const
-
-inline
-
- -

Returns the pointer to the local string buffer containing the timezone abbreviation (e.g.

-

"PST", "PDT") used at the given LocalDateTime or epochSeconds. This pointer is safe to use as long as this object is alive.

- -

Definition at line 166 of file ZonedExtra.h.

- -
-
- -

◆ forComponents()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ZonedExtra ace_time::ZonedExtra::forComponents (int16_t year,
uint8_t month,
uint8_t day,
uint8_t hour,
uint8_t minute,
uint8_t second,
const TimeZonetz,
uint8_t fold = 0 
)
-
-static
-
- -

Return an instance for the given LocalDateTime and TimeZone.

-

If you already have a ZonedDateTime, then the LocalDateTime can be retrieved using ZonedDateTime::localDateTime().

- -

Definition at line 6 of file ZonedExtra.cpp.

- -
-
- -

◆ forLocalDateTime()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ZonedExtra ace_time::ZonedExtra::forLocalDateTime (const LocalDateTimeldt,
const TimeZonetz 
)
-
-static
-
- -

Return an instance for the given LocalDateTime and TimeZone.

-

If you already have a ZonedDateTime, then the LocalDateTime can be retrieved using ZonedDateTime::localDateTime().

- -

Definition at line 23 of file ZonedExtra.cpp.

- -
-
- -

◆ reqDstOffset()

- -
-
- - - - - -
- - - - - - - -
TimeOffset ace_time::ZonedExtra::reqDstOffset () const
-
-inline
-
- -

DST offset of the requested epochSeconds or LocalDateTime.

-

This will be different from stdOffset only for kTypeGap.

- -

Definition at line 143 of file ZonedExtra.h.

- -
-
- -

◆ reqStdOffset()

- -
-
- - - - - -
- - - - - - - -
TimeOffset ace_time::ZonedExtra::reqStdOffset () const
-
-inline
-
- -

STD offset of the requested epochSeconds or LocalDateTime.

-

This will be different from stdOffset only for kTypeGap.

- -

Definition at line 135 of file ZonedExtra.h.

- -
-
- -

◆ reqTimeOffset()

- -
-
- - - - - -
- - - - - - - -
TimeOffset ace_time::ZonedExtra::reqTimeOffset () const
-
-inline
-
- -

The total time offset of the requested epochSeconds of LocalDateTime, (reqStdOffset + reqDstOffset).

-

This value becomes lost when a ZonedDateTime is created using ZonedDateTime::forComponents() during a DST gap, because it was used to convert the given LocalDateTime to an epochSeconds, before the epochSeconds was renormalized back into a ZonedDateTime. The ZonedExtra object provided access to this UTC offset.

- -

Definition at line 155 of file ZonedExtra.h.

- -
-
- -

◆ timeOffset()

- -
-
- - - - - -
- - - - - - - -
TimeOffset ace_time::ZonedExtra::timeOffset () const
-
-inline
-
- -

The total time offset (stdOffset + dstOffset).

-

This will be the same value as ZonedDateTime::timeOffset() when a ZonedDataTime is created using ZonedDateTime::forComponents() or ZonedDateTime::forEpochSeconds().

- -

Definition at line 127 of file ZonedExtra.h.

- -
-
-

Member Data Documentation

- -

◆ kTypeExact

- -
-
- - - - - -
- - - - -
const uint8_t ace_time::ZonedExtra::kTypeExact = 1
-
-static
-
- -

The given LocalDateTime matches a single epochSeconds.

-

The given epochSeconds matches a single LocalDateTime.

- -

Definition at line 35 of file ZonedExtra.h.

- -
-
- -

◆ kTypeGap

- -
-
- - - - - -
- - - - -
const uint8_t ace_time::ZonedExtra::kTypeGap = 2
-
-static
-
- -

The given LocalDateTime occurs in a gap and does not match any epochSeconds.

-

A given epochSeconds will never return this because it will always match either a single LocalDateTime or match nothing.

- -

Definition at line 43 of file ZonedExtra.h.

- -
-
- -

◆ kTypeOverlap

- -
-
- - - - - -
- - - - -
const uint8_t ace_time::ZonedExtra::kTypeOverlap = 3
-
-static
-
- -

The given LocalDateTime matches 2 possible epochSeconds, which is disambguiated by the LocalDateTime::fold input parameter.

-

The given epochSeconds matches a LocalDateTime that can occur twice, and is disambiguated by the OffsetDateTime::fold (same as ZonedDateTime::fold) output parameter.

- -

Definition at line 52 of file ZonedExtra.h.

- -
-
-
The documentation for this class was generated from the following files:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZonedExtra.h
  • -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZonedExtra.cpp
  • -
-
- - - - diff --git a/docs/html/classace__time_1_1extended_1_1TransitionStorageTemplate-members.html b/docs/html/classace__time_1_1extended_1_1TransitionStorageTemplate-members.html deleted file mode 100644 index 3562f6c05..000000000 --- a/docs/html/classace__time_1_1extended_1_1TransitionStorageTemplate-members.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time::extended::TransitionStorageTemplate< SIZE, D > Member List
-
-
- -

This is the complete list of members for ace_time::extended::TransitionStorageTemplate< SIZE, D >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
::TransitionStorageTest_addActiveCandidatesToActivePool (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >friend
::TransitionStorageTest_addFreeAgentToActivePool (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >friend
::TransitionStorageTest_addFreeAgentToCandidatePool (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >friend
::TransitionStorageTest_addPriorToCandidatePool (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >friend
::TransitionStorageTest_findTransitionForDateTime (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >friend
::TransitionStorageTest_getFreeAgent (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >friend
::TransitionStorageTest_getFreeAgent2 (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >friend
::TransitionStorageTest_reservePrior (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >friend
::TransitionStorageTest_resetCandidatePool (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >friend
::TransitionStorageTest_setFreeAgentAsPriorIfValid (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >friend
addActiveCandidatesToActivePool()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
addFreeAgentToActivePool()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
addFreeAgentToCandidatePool()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
addPriorToCandidatePool()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
calcFoldAndOverlap(uint8_t *fold, uint8_t *num, const Transition *prev, const Transition *curr, const Transition *next, acetime_t epochSeconds)ace_time::extended::TransitionStorageTemplate< SIZE, D >inlinestatic
findTransitionForDateTime(const LocalDateTime &ldt) constace_time::extended::TransitionStorageTemplate< SIZE, D >inline
findTransitionForSeconds(acetime_t epochSeconds) constace_time::extended::TransitionStorageTemplate< SIZE, D >inline
getActivePoolBegin() (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
getActivePoolEnd() (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
getAllocSize() constace_time::extended::TransitionStorageTemplate< SIZE, D >inline
getCandidatePoolBegin() (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
getCandidatePoolEnd() (defined in ace_time::extended::TransitionStorageTemplate< SIZE, D >)ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
getFreeAgent()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
getPrior()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
init()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
log() constace_time::extended::TransitionStorageTemplate< SIZE, D >inline
reservePrior()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
resetAllocSize()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
resetCandidatePool()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
setFreeAgentAsPriorIfValid()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
Transition typedeface_time::extended::TransitionStorageTemplate< SIZE, D >
TransitionForDateTime typedeface_time::extended::TransitionStorageTemplate< SIZE, D >
TransitionForSeconds typedeface_time::extended::TransitionStorageTemplate< SIZE, D >
TransitionStorageTemplate()ace_time::extended::TransitionStorageTemplate< SIZE, D >inline
- - - - diff --git a/docs/html/classace__time_1_1extended_1_1TransitionStorageTemplate.html b/docs/html/classace__time_1_1extended_1_1TransitionStorageTemplate.html deleted file mode 100644 index 6f0fa792d..000000000 --- a/docs/html/classace__time_1_1extended_1_1TransitionStorageTemplate.html +++ /dev/null @@ -1,785 +0,0 @@ - - - - - - - -AceTime: ace_time::extended::TransitionStorageTemplate< SIZE, D > Class Template Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ace_time::extended::TransitionStorageTemplate< SIZE, D > Class Template Reference
-
-
- -

A heap manager which is specialized and tuned to manage a collection of Transitions, keeping track of unused, used, and active states, using a fixed array of Transitions. - More...

- -

#include <Transition.h>

- - - - - - - - - - - -

-Public Types

typedef TransitionTemplate< D > Transition
 Template instantiation of TransitionTemplate used by this class. More...
 
typedef TransitionForSecondsTemplate< D > TransitionForSeconds
 Template instantiation of TransitionForSecondsTemplate used by this class. More...
 
typedef TransitionForDateTimeTemplate< D > TransitionForDateTime
 Template instantiation of TransitionForDateTimeTemplate used by this class. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

TransitionStorageTemplate ()
 Constructor.
 
void init ()
 Initialize all pools to 0 size, usually when a new year is initialized. More...
 
-TransitiongetPrior ()
 Return the current prior transition.
 
void resetCandidatePool ()
 Empty the Candidate pool by resetting the various indexes. More...
 
-Transition ** getCandidatePoolBegin ()
 
-Transition ** getCandidatePoolEnd ()
 
-Transition ** getActivePoolBegin ()
 
-Transition ** getActivePoolEnd ()
 
TransitiongetFreeAgent ()
 Return a pointer to the first Transition in the free pool. More...
 
void addFreeAgentToActivePool ()
 Immediately add the free agent Transition at index mIndexFree to the Active pool. More...
 
Transition ** reservePrior ()
 Allocate a free Transition then add it to the Prior pool. More...
 
-void setFreeAgentAsPriorIfValid ()
 Set the free agent transition as the most recent prior.
 
void addPriorToCandidatePool ()
 Add the current prior into the Candidates pool. More...
 
void addFreeAgentToCandidatePool ()
 Add the free agent Transition at index mIndexFree to the Candidate pool, sorted by transitionTime. More...
 
TransitionaddActiveCandidatesToActivePool ()
 Add active candidates into the Active pool, and collapse the Candidate pool. More...
 
TransitionForSeconds findTransitionForSeconds (acetime_t epochSeconds) const
 Return the Transition matching the given epochSeconds. More...
 
TransitionForDateTime findTransitionForDateTime (const LocalDateTime &ldt) const
 Return the candidate Transitions matching the given dateTime. More...
 
void log () const
 Verify that the indexes are valid. More...
 
void resetAllocSize ()
 Reset the current allocation size. More...
 
uint8_t getAllocSize () const
 Return the maximum number of transitions which was allocated. More...
 
- - - - -

-Static Public Member Functions

static void calcFoldAndOverlap (uint8_t *fold, uint8_t *num, const Transition *prev, const Transition *curr, const Transition *next, acetime_t epochSeconds)
 Calculate the fold and num parameters of TransitionForSecond. More...
 
- - - - - - - - - - - - - - - - - - - - - -

-Friends

-class ::TransitionStorageTest_getFreeAgent
 
-class ::TransitionStorageTest_getFreeAgent2
 
-class ::TransitionStorageTest_addFreeAgentToActivePool
 
-class ::TransitionStorageTest_reservePrior
 
-class ::TransitionStorageTest_addPriorToCandidatePool
 
-class ::TransitionStorageTest_addFreeAgentToCandidatePool
 
-class ::TransitionStorageTest_setFreeAgentAsPriorIfValid
 
-class ::TransitionStorageTest_addActiveCandidatesToActivePool
 
-class ::TransitionStorageTest_findTransitionForDateTime
 
-class ::TransitionStorageTest_resetCandidatePool
 
-

Detailed Description

-

template<uint8_t SIZE, typename D>
-class ace_time::extended::TransitionStorageTemplate< SIZE, D >

- -

A heap manager which is specialized and tuned to manage a collection of Transitions, keeping track of unused, used, and active states, using a fixed array of Transitions.

-

Its main purpose is to provide some illusion of dynamic memory allocation without actually performing any dynamic memory allocation.

-

We create a fixed sized array for the total pool, determined by the template parameter SIZE, then manage the various sub-pools of Transition objects. The allocation of the various sub-pools is intricately tied to the precise pattern of creation and release of the various Transition objects within the ExtendedZoneProcessor class.

-

There are 4 pools indicated by the following half-open (inclusive to exclusive) index ranges:

-

1) Active pool: [0, mIndexPrior) 2) Prior pool: [mIndexPrior, mIndexCandidates), either 0 or 1 element 3) Candidate pool: [mIndexCandidates, mIndexFree) 4) Free agent pool: [mIndexFree, mAllocSize), 0 or 1 element

-

At the completion of the ExtendedZoneProcessor::init(LocalDate& ld) method, the Active pool will contain the active Transitions relevant to the 'year' defined by the LocalDate. The Prior and Candidate pools will be empty, with the Free pool taking up the remaining space.

-
Template Parameters
- - - -
SIZEsize of internal cache
Dcontainer type of ZoneInfo database
-
-
- -

Definition at line 351 of file Transition.h.

-

Member Typedef Documentation

- -

◆ Transition

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - -
typedef TransitionTemplate<D> ace_time::extended::TransitionStorageTemplate< SIZE, D >::Transition
-
- -

Template instantiation of TransitionTemplate used by this class.

-

This should be treated as a private, it is exposed only for testing purposes.

- -

Definition at line 357 of file Transition.h.

- -
-
- -

◆ TransitionForDateTime

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - -
typedef TransitionForDateTimeTemplate<D> ace_time::extended::TransitionStorageTemplate< SIZE, D >::TransitionForDateTime
-
- -

Template instantiation of TransitionForDateTimeTemplate used by this class.

-

This should be treated as a private, it is exposed only for testing purposes.

- -

Definition at line 371 of file Transition.h.

- -
-
- -

◆ TransitionForSeconds

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - -
typedef TransitionForSecondsTemplate<D> ace_time::extended::TransitionStorageTemplate< SIZE, D >::TransitionForSeconds
-
- -

Template instantiation of TransitionForSecondsTemplate used by this class.

-

This should be treated as a private, it is exposed only for testing purposes.

- -

Definition at line 364 of file Transition.h.

- -
-
-

Member Function Documentation

- -

◆ addActiveCandidatesToActivePool()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - -
Transition* ace_time::extended::TransitionStorageTemplate< SIZE, D >::addActiveCandidatesToActivePool ()
-
-inline
-
- -

Add active candidates into the Active pool, and collapse the Candidate pool.

-

Every MatchingEra will have at least one Transition.

-
Returns
the last Transition that was added
- -

Definition at line 527 of file Transition.h.

- -
-
- -

◆ addFreeAgentToActivePool()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - -
void ace_time::extended::TransitionStorageTemplate< SIZE, D >::addFreeAgentToActivePool ()
-
-inline
-
- -

Immediately add the free agent Transition at index mIndexFree to the Active pool.

-

Then increment mIndexFree to consume the free agent from the Free pool. This assumes that the Pending and Candidate pool are empty, which makes the Active pool come immediately before the Free pool.

- -

Definition at line 451 of file Transition.h.

- -
-
- -

◆ addFreeAgentToCandidatePool()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - -
void ace_time::extended::TransitionStorageTemplate< SIZE, D >::addFreeAgentToCandidatePool ()
-
-inline
-
- -

Add the free agent Transition at index mIndexFree to the Candidate pool, sorted by transitionTime.

-

Then increment mIndexFree by one to remove the free agent from the Free pool. Essentially this is an Insertion Sort keyed by the 'transitionTime' (ignoring the DateTuple.suffix).

- -

Definition at line 501 of file Transition.h.

- -
-
- -

◆ addPriorToCandidatePool()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - -
void ace_time::extended::TransitionStorageTemplate< SIZE, D >::addPriorToCandidatePool ()
-
-inline
-
- -

Add the current prior into the Candidates pool.

-

Prior is always just before the start of the Candidate pool, so we just need to shift back the start index of the Candidate pool.

- -

Definition at line 491 of file Transition.h.

- -
-
- -

◆ calcFoldAndOverlap()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static void ace_time::extended::TransitionStorageTemplate< SIZE, D >::calcFoldAndOverlap (uint8_t * fold,
uint8_t * num,
const Transitionprev,
const Transitioncurr,
const Transitionnext,
acetime_t epochSeconds 
)
-
-inlinestatic
-
- -

Calculate the fold and num parameters of TransitionForSecond.

-

The num parameter is the number of transitions which can shadow a given epochSeconds. It is 0 if curr is NULL, which means that epochSeconds cannot be mapped to any transition. It is 1 if the epochSeconds in the curr transition is unique and does not overlap with the prev or next transition. It is 2 if the epochSeconds in the curr transition maps to a LocalDateTime that overlaps with either the prev or next transition. (In theory, I suppose it could overlap with both, but it is improbable that any timezone in the TZDB will ever let that happen.)

-

The fold parameter specifies whether the curr transition is the first instance (0) or the second instance (1). It is relevant only if num is

    -
  1. If num is 0 or 1, fold will always be 0. If num is 2, then fold indicates whether curr is the earlier (0) or later (1) transition of the overlap. This fold parameter will be copied into the corresponding fold parameter in LocalDateTime.
  2. -
- -

Definition at line 606 of file Transition.h.

- -
-
- -

◆ findTransitionForDateTime()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - - -
TransitionForDateTime ace_time::extended::TransitionStorageTemplate< SIZE, D >::findTransitionForDateTime (const LocalDateTimeldt) const
-
-inline
-
- -

Return the candidate Transitions matching the given dateTime.

-

The search may return 0, 1 or 2 Transitions, depending on whether the dateTime falls in a gap or overlap.

- -

Definition at line 677 of file Transition.h.

- -
-
- -

◆ findTransitionForSeconds()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - - -
TransitionForSeconds ace_time::extended::TransitionStorageTemplate< SIZE, D >::findTransitionForSeconds (acetime_t epochSeconds) const
-
-inline
-
- -

Return the Transition matching the given epochSeconds.

-

Return nullptr if no matching Transition found. If a zone does not have any transition according to TZ Database, the AceTimeTools/transformer.py script adds an "anchor" transition at the "beginning of time" which happens to be the year 1872 (because the year is stored as an int8_t). Therefore, this method should never return a nullptr for a well-formed ZoneInfo file.

- -

Definition at line 561 of file Transition.h.

- -
-
- -

◆ getAllocSize()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - -
uint8_t ace_time::extended::TransitionStorageTemplate< SIZE, D >::getAllocSize () const
-
-inline
-
- -

Return the maximum number of transitions which was allocated.

-

If this is greater than SIZE, it indicates that the Transition mPool overflowed. This method is intended for debugging.

- -

Definition at line 766 of file Transition.h.

- -
-
- -

◆ getFreeAgent()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - -
Transition* ace_time::extended::TransitionStorageTemplate< SIZE, D >::getFreeAgent ()
-
-inline
-
- -

Return a pointer to the first Transition in the free pool.

-

If this transition is not used, then it's ok to just drop it. The next time getFreeAgent() is called, the same Transition will be returned.

- -

Definition at line 428 of file Transition.h.

- -
-
- -

◆ init()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - -
void ace_time::extended::TransitionStorageTemplate< SIZE, D >::init ()
-
-inline
-
- -

Initialize all pools to 0 size, usually when a new year is initialized.

-

The mAllocSize is not reset, so that we can determine the maximum allocation size across multiple years. Call resetAllocSize() manually to reset the mAllocSize.

- -

Definition at line 382 of file Transition.h.

- -
-
- -

◆ log()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - -
void ace_time::extended::TransitionStorageTemplate< SIZE, D >::log () const
-
-inline
-
- -

Verify that the indexes are valid.

-

Used only for debugging.

- -

Definition at line 733 of file Transition.h.

- -
-
- -

◆ reservePrior()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - -
Transition** ace_time::extended::TransitionStorageTemplate< SIZE, D >::reservePrior ()
-
-inline
-
- -

Allocate a free Transition then add it to the Prior pool.

-

This assumes that the Prior pool and Candidate pool were both empty before calling this method. Shift the Candidate pool and Free pool up by one. Return a handle (pointer to pointer) to the Transition, so that the prior Transition can be swapped with another Transition, while keeping the handle valid.

- -

Definition at line 466 of file Transition.h.

- -
-
- -

◆ resetAllocSize()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - -
void ace_time::extended::TransitionStorageTemplate< SIZE, D >::resetAllocSize ()
-
-inline
-
- -

Reset the current allocation size.

-

For debugging.

- -

Definition at line 759 of file Transition.h.

- -
-
- -

◆ resetCandidatePool()

- -
-
-
-template<uint8_t SIZE, typename D >
- - - - - -
- - - - - - - -
void ace_time::extended::TransitionStorageTemplate< SIZE, D >::resetCandidatePool ()
-
-inline
-
- -

Empty the Candidate pool by resetting the various indexes.

-

If every iteration of createTransitionsForMatch() finishes with addFreeAgentToActivePool() or addActiveCandidatesToActivePool(), it may be possible to remove this. But it's safer to reset the indexes upon each iteration.

- -

Definition at line 404 of file Transition.h.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Transition.h
  • -
-
- - - - diff --git a/docs/html/classes.html b/docs/html/classes.html deleted file mode 100644 index 3cabc60e2..000000000 --- a/docs/html/classes.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -AceTime: Class Index - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Index
-
-
-
B | C | D | E | F | L | M | O | T | Y | Z
-
-
-
B
-
BasicZoneProcessor (ace_time)
BasicZoneProcessorCache (ace_time)
BasicZoneProcessorTemplate (ace_time)
-
-
C
-
CompleteZoneProcessor (ace_time)
CompleteZoneProcessorCache (ace_time)
-
-
D
-
DateStrings (ace_time)
DateTuple (ace_time::extended)
-
-
E
-
Epoch (ace_time)
EpochConverterHinnant (ace_time)
EpochConverterJulian (ace_time)
ExtendedZoneProcessor (ace_time)
ExtendedZoneProcessorCache (ace_time)
ExtendedZoneProcessorTemplate (ace_time)
-
-
F
-
FindResult (ace_time)
-
-
L
-
LocalDate (ace_time)
LocalDateTime (ace_time)
LocalTime (ace_time)
-
-
M
-
ManualZoneManager (ace_time)
MatchingEraTemplate (ace_time::extended)
MonthDay (ace_time)
-
-
O
-
OffsetDateTime (ace_time)
-
-
T
-
TimeOffset (ace_time)
TimePeriod (ace_time)
TimeZone (ace_time)
TimeZoneData (ace_time)
TransitionForDateTimeTemplate (ace_time::extended)
TransitionForSecondsTemplate (ace_time::extended)
TransitionStorageTemplate (ace_time::extended)
TransitionTemplate (ace_time::basic)
TransitionTemplate (ace_time::extended)
-
-
Y
-
YearMonthTuple (ace_time::extended)
-
-
Z
-
ZoneInfoLow::ZoneContext (ace_time)
ZoneInfoHigh::ZoneContext (ace_time)
ZoneInfoMid::ZoneContext (ace_time)
ZoneInfoHigh::ZoneContextBroker (ace_time)
ZoneInfoLow::ZoneContextBroker (ace_time)
ZoneInfoMid::ZoneContextBroker (ace_time)
ZonedDateTime (ace_time)
ZonedExtra (ace_time)
ZoneInfoHigh::ZoneEra (ace_time)
ZoneInfoLow::ZoneEra (ace_time)
ZoneInfoMid::ZoneEra (ace_time)
ZoneInfoMid::ZoneEraBroker (ace_time)
ZoneInfoLow::ZoneEraBroker (ace_time)
ZoneInfoHigh::ZoneEraBroker (ace_time)
ZoneInfoHigh::ZoneInfo (ace_time)
ZoneInfoLow::ZoneInfo (ace_time)
ZoneInfoMid::ZoneInfo (ace_time)
ZoneInfoHigh::ZoneInfoBroker (ace_time)
ZoneInfoLow::ZoneInfoBroker (ace_time)
ZoneInfoMid::ZoneInfoBroker (ace_time)
ZoneInfoHigh (ace_time)
ZoneInfoLow (ace_time)
ZoneInfoMid (ace_time)
ZoneInfoMid::ZoneInfoStore (ace_time)
ZoneInfoLow::ZoneInfoStore (ace_time)
ZoneInfoHigh::ZoneInfoStore (ace_time)
ZoneManager (ace_time)
ZoneManagerTemplate (ace_time)
ZoneInfoHigh::ZonePolicy (ace_time)
ZoneInfoLow::ZonePolicy (ace_time)
ZoneInfoMid::ZonePolicy (ace_time)
ZoneInfoHigh::ZonePolicyBroker (ace_time)
ZoneInfoLow::ZonePolicyBroker (ace_time)
ZoneInfoMid::ZonePolicyBroker (ace_time)
ZoneProcessor (ace_time)
ZoneProcessorCacheBaseTemplate (ace_time)
ZoneRegistrarTemplate (ace_time)
ZoneInfoHigh::ZoneRegistryBroker (ace_time)
ZoneInfoMid::ZoneRegistryBroker (ace_time)
ZoneInfoLow::ZoneRegistryBroker (ace_time)
ZoneInfoHigh::ZoneRule (ace_time)
ZoneInfoLow::ZoneRule (ace_time)
ZoneInfoMid::ZoneRule (ace_time)
ZoneInfoHigh::ZoneRuleBroker (ace_time)
ZoneInfoLow::ZoneRuleBroker (ace_time)
ZoneInfoMid::ZoneRuleBroker (ace_time)
ZoneSorterByName (ace_time)
ZoneSorterByOffsetAndName (ace_time)
ZoneTemplate (ace_time)
-
-
- - - - diff --git a/docs/html/closed.png b/docs/html/closed.png deleted file mode 100644 index 98cc2c909da37a6df914fbf67780eebd99c597f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT diff --git a/docs/html/common_8h.html b/docs/html/common_8h.html deleted file mode 100644 index d0d152888..000000000 --- a/docs/html/common_8h.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common/common.h File Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
common.h File Reference
-
-
- -

Identifiers used by implementation code which need to be publically exported. -More...

-
#include <stdint.h>
-
-Include dependency graph for common.h:
-
-
- - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - - -

-Typedefs

typedef int32_t ace_time::acetime_t
 Type for the number of seconds from epoch. More...
 
- - - - - -

-Functions

-template<typename T >
void ace_time::swap (T &a, T &b)
 Swap 2 parameters.
 
- - - - -

-Variables

const uint8_t ace_time::kAbbrevSize = 7 + 1
 Size of the c-string buffer needed to hold a time zone abbreviation. More...
 
-

Detailed Description

-

Identifiers used by implementation code which need to be publically exported.

- -

Definition in file common.h.

-

Typedef Documentation

- -

◆ acetime_t

- -
-
- - - - -
typedef int32_t ace_time::acetime_t
-
- -

Type for the number of seconds from epoch.

-

The AceTime epoch is 2050-01-01 00:00:00 UTC by default but can be changed using Epoch::currentEpochYear(). Unix epoch is 1970-01-01 00:00:00 UTC.

- -

Definition at line 24 of file common.h.

- -
-
-

Variable Documentation

- -

◆ kAbbrevSize

- -
-
- - - - -
const uint8_t ace_time::kAbbrevSize = 7 + 1
-
- -

Size of the c-string buffer needed to hold a time zone abbreviation.

-
    -
  • The longest explicit abbreviation in the database (as of 2019 or so) seems to be 5 characters (https://www.timeanddate.com/time/zones/)
  • -
  • The TZ database spec used to say that abbreviations are 3 to 6 characters but that wording is no longer in the document (https://data.iana.org/time-zones/theory.html#abbreviations).
  • -
  • The zic(1) man page says "A time zone abbreviation has fewer than 3 or more than 6 characters. POSIX requires at least 3, and requires implementations to support at least 6". The first part of that wording makes no sense at all.
  • -
  • The z specifier, added in TZDB 2024b, autogenerates the abbreviation using a [+/-][hh[mm[ss]]] pattern, which can be 7 characters long.
  • -
-

Let's increase the max length from 6 to 7 to handle the z. We also need one extra byte for the terminating NUL character.

- -

Definition at line 44 of file common.h.

- -
-
-
- - - - diff --git a/docs/html/common_8h__dep__incl.map b/docs/html/common_8h__dep__incl.map deleted file mode 100644 index 45a8ca5d4..000000000 --- a/docs/html/common_8h__dep__incl.map +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/html/common_8h__dep__incl.md5 b/docs/html/common_8h__dep__incl.md5 deleted file mode 100644 index a3e50e76e..000000000 --- a/docs/html/common_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -f6eec69fd17e8b187978afe26579426e \ No newline at end of file diff --git a/docs/html/common_8h__dep__incl.png b/docs/html/common_8h__dep__incl.png deleted file mode 100644 index 813ab371097580da807b75d368401b17919534d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417620 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%0AU+s;w_jxm;k~9M0-RxLPSL5 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%0DnLY74fkI!C+1! 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�-X_2IVC_sPjss5h7ZE*?UQyErEbEg{>d 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%0AW$Vc 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

o$#m|{NuQ3_tW*1Is{6VnzQ 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

Zff^U54DU-MB)0NVltdmfh%2r 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ðwmColgGMiL*{!rHEnMYo0M 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

Cj8nrHt^Aqg?MMlCGY$(mAQ~#7t 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�}mYDg~ybQ&s z&@SS=E+}=pURJ&SrAxwh>c*4GnaXjyK%-*JjjD-&$43~XEP2}pxCb5*SnH-{ zl{m+lM^eQk&BfHBCLBZ=tH#5%)S2HDmNhR5Jx~+l<0;=~O1r?gu$)yGTXJ$bsyBi% z&U2QDQoPaj4ewY|zqml7(2aHsxN^%1E3hSj8oU6+cTwm>eo*aj3Fp}eHoM9p!Twd@ z_z`p3rkLVd2CgfPC0zFlJj^fZWND@R zYhNHI5G)XTvl2pc&-px|7O2A==BTE;06Bl+mmY64D)hHj$_K)svQ*0p?##w%jh)$a za#sMaRE?8BkyQ4!@D|X=dKbY}2^1CX3%#+V>#srub%e1WBvegG`92MKjf;31*FLFQ z(T>%_@p|bo<~D;j+T3|7tD)9}A0r?at!C zP&a4XZT7m;H0VM1ZLC3HbMxJa7YCCq6lTyq_Tt40JiYSxuEmzUKG~St(8kC#e=W%% zpx9@Tch32esIsv zuMvspx1_cn{@e_$HFTdJm*v`y7tX_8LcCWYA+X@h-UL>=g`A`z5Qv%evObtE?EQXl zl{^9sl$8GZR6QeS{PV9Hsuq8pYS4zRP6KaOr*~k#>}JEU9ZV2uY+YI5?iHKAIN^J| z0bLmdcueW>WO&d#b(ti#cXmDGUURS#0!Zf8#`&979Cne%XVSrBLh6jQ{(bFg^a&C)!h@xiFr z-Gzx@X2bn(>dA2biNuMn8*TIHIK&op6n8z>x_1 zE$o?55G8b#THm8RqXVM6B0pyCozUA%j~60Oe*7@X(k(M-UKMV(GMn>pvk&MQrvBwD z*f?bM8rly&{GELW4)!Q>@{73~%Z$Dmcf?Zf3M5narZE-j{^#!F@{s|0B^Bhal?^lg zcipOk%Gi(pumVW)3yw8%IKK_BVrN(O^;z+giQxyQ43h$X#rY6;+=AN*xVmuuakz8< ztsruPY$`)7g~uzILBxjV09=wlVkw-g^P=E}AD0BN%0eb7O3b9D`0WF-J4$O4ZEPjs zEw`0?VP&ixPu->D@d3e{vL&V|qnd9pSD0D<}~0)0NE2QQ?RkH7$!*kHNG z;WwYn&m8#p7|6F{)e#(})^vCb2Bc;{uWoh0mFpG8LNg#<*ych2C@yrU7Lc3(gTaP@$ zkyf;-PyOKY+)jeI*C$xNQ@W}BBKKzVvM^UjoybvBB$a8f+?o0L`EOPga_`UH36&#b zkqW(Y6%VhahY&APk-gizjNE?PH5i|&0pjcu-nZ%LX_3m);{#mCF=MJtJ1NoDNqmoi zt`ywyu(Y)N+II@7{3rMgdNaF+%}lp^@2^-tzy z|FEk`?|+Y;A8quLg&rgb?J-B2!i!N z`~3eihd}_D@b>>iz5Nt42*`F-EXn*n-R(jBLIu z+AC&K8X9j!Gv!q;!kWG;m;>s%{3`eX5(#9_We<9053V!SYH)+n!8F;~$1c$vB!*KK zpig1dpl+3ZMA;IUY@jrag-W?6TPbMOmH1SdWB@CL7AAkpjfDDTu1Q}`=rMU0pq+3Q zUgCaIcgu~R-peC4iqK7?$LGbGESN$H&5zL9Q!=g!Ut~51WH@)BZ?7{vGw-__fevTG zPrA9cWiRwrNi4Pf&_izL2$Xy;@5kk~;7>1jR7^|Zu)cK1uQ7sP=YMDZbKpPC9schE zInDu_2+h>jon3}(Bbc_?ukSiEvP?) zfoj!%S6tq)|2UM=WwP_p=1r5A-auY)8?Tp)LcDSvG#65UuE`=haj$ya+3L17!Jg{d z1qop=f_^>RRV3xEycslDt{xb^Zj(6|yb=-O#HG%{7Y1%o;V9+^xQh+}!@Ir9KNVCu7)}h=@qDP}dQRxU3SR_1;w; zoA&`rfNxh(jOi6-{_QV%)Ji~^`<9W<%-JjCF`gVcTyh`CWp-m@z#f#|2Vqo$+fj7#yI z9P+Yw!W|EmQa$JuqMe_|`K~#8?|m6%`{$UndL(Ek`rV52 z%X1Q2?T^6vcryZVY1o(LNx(zbzx{X5=|j|{oz-KJ)@Sb@ZX>?k!2hIYqbQ?#a0F_; zPAGaVVqbuv!dC4Kg3mmWrAoFhhUm}9j+^}gHY)bKvp)%;7PQpGeUuIaYNWH1Ihdc~n<1|?eCS0fB_djRu?Q>%F^HS@nb|Eqq^BRN0t-uhPvokxyA zltQbPfRxm!a*5jTslkeKb*wUBAT3!4F$iHmIsZ5@wUZzWB*YyP8u0CF7a$hi>)s0| z;ARKxlyURJLu0Bti%zO8IhF0SF5pye!D%=B_wojtW(9B`ZH8NImgcTd{q!R3HiwYl z|08%ePpj4HcK93$1Z}9PK-up9n2^~ViOG4{i)K)|x3*QO{Ygbr&ofvrSjkis!9mlf zYJo(4^584RhC_cawH)6OL4pdJ4fgoGLk4iXwTae|`2&u$u&`|8uIZ=4qSZ)8hi_3@ zYJyc!{Yb$~gQCob`FC;#uEx*eU-^^P5kcnDkcwF1Aj+hCnai%r7K>T2r1q*O)4!3j ze)cMpPdK_a-p8w6acRP2b4+>qdSYbFs)g*36;0#mhP~s#q`Ugs{)0rmX51NlVuw0+ zFzqM%X^6+JeqR?Xx#$*!WrxcQ3@t=5+h^cN62l4*EX?11$t>wM!~67zgvE1#!czEM z^nU;X0PZCmfJnUYL_kF36>o8!lm6CYZfcEU?5u;>d+gc{Alo_M1m6C#u$;7S{Cm2! z1GNwsKJD9PX0F199*-EijH54I{H;-^LHAz*ePyy$>H2ZnQJ4V@^Ee%ScH=YJe($eA*zMqe z!QVfpIFOB35?TnYsOOi{z4;&JQ_JkV?L!=;``^LCp{EM{VBG@g1^Q@=?^TI-HM(&E zkrS!+*MB5N*uN80D+K2Ladx&s8~2UJb5wJToaKUdi?MeLb+ZhLuEut-(l5yQGYzat zfy`qJy8QLAyhvoM!sEoQilS1D!j3*sP?*;L+TWA-`}u?JT3z9A@>Txy1W9}$*7#YFW!Nrh(B%fFs8#f+jAjnoMbn=2AoEZXXv z_d`{u7#6P>gDrJ$H0S{-)u)tarNV~R>u&KL_2^7l9>G7Qz?A|;;Od%B5;B;aig0!P zXysZjzEN&02Ij?6vf$$=aB?kw`R`645PZrSONOIg!GVMjAJEGK=9JU^uuavP=(ZnI zlsVc|UBb|EJP{OeDoOrFS{lvgWOqBsm(sI>jf(x%F!GlcopeGa4psSgXAHj>L{gIF z)i!Kui2P*oT(-%pzRCalwR?x!e$B9D$y@TX%(kXb`>D>;Q3^8vFWhl(ek76Eg9y4O?~f{HTNwYgo=ziSrg%!z5&9MMCwhk(Eg<-D7iN0Q$?1jn!y zsbgwFm(JU7dEe&bnlf+0AEONJam3x_h>PWvVT3S@65Iz=M*f1eeruRw_Ky`5py`s2vjxc#yDJLcmbe1pz2fDz3Clo#RO{# zVqlPi`z(ZmA~$u*^}N)8KHpzu0`wPg09_(_2bi#S98V@X<#Dzv@dkAM$QFh^dlwGZ z$E@|!V+P#qb2aup3_0D$p@HqB#uGDr+3A|;snbpO`3kI2E1K?U>{o9){-n~T8UD(|uRX7N7CHlmGnF=@0b4%H zl7>}8ha-E$`_Ic!xh8HHNFE zh~T~xmsFQO#k z`pe`NJ*>P9y<|DgrRF~DbYlXuWeocg+0MlzAhds7e1{n}jiNEA?r`X8O?7-1(0%5{H zGL{$}K4&^b-}DXwEFo*nY~vP+ga111+t3>fJu1(}hMFIA zCYDRid0>|m+bC!CkkZ{5S*!R^l|*dsBGE(qJNy6Q?O5Y>O-12!C3++^T|~ zlTqc`5+4i~K+E4Ng-*xTAn8??Gl0&5<<5=TP$ZB%d6ciMU||pEn z$_~wV#=LutA_ARNvwQSKug~z!LZ2(uAl_?(_~exk_3zu879yyuke>F;vW0*v5oo-u z*ehqPgc)q`U;q7sx*vAItNM^Dfu}>F>H)NkhPb>yQYrHdM=_@mvWk5fjRY%yk`RR+X;a9#Uj@`lA}zd5>4JkWh7~Q zF>WQqYnqRd^$k!GDsyqVZR1+MR+lc`S26H|4MUJEVOhbj{j&-bC94F~V9CnBCkKJq zO%5;toowY}84c6+@$Qe?(qKR031@eR(=bFysN`5Z5@nLHLw!7QFj$zdTMM9Oa8P3K zP4DcLwr+8JB}u-!r;Ca};^@wA2K))1x*jqc#YQ)+AEGw1xX7Z+ah$iU&`0 zzPedO;!rJMA>&xxn=^4nDcY!5NBEWlmhn&hjGE}l@wY*f3?bh*976<;&>|@{HJl|E z9&L5dey1EuM9cKbKjBJ0X*_OOLr`jKDSz-~(vCWwSV<+T|24raGuCM391^HQkr^e* zd0$p0dQFqxn>z_zOZ7{h$#c5j|7OxIsPj8@zk_B}XEtnOdUEmyHG{DDe&u zHbfzbXZ1hBJcSs@*QQ9@G4OfQl>k{op^ok~UQ*zb+W4PzYMFH)>l*?CWBPa+16)E+t-Vc5G+p1f@;{WnqbwxrK4H!#0I)mH6 z>{OxuLdB8PPZm$3;7mezgmrS$s|e>B+rTi1sBmYtO%Y6cCzINt7k}nbfX>qI_TfII zyZ#fMu@^opKtqD#OGFNdZSi~`GtaMhcK4SH{4q|NZ(5CEkVE|(Q^}yUJ~LaI+J%d+ zf^}+o%^w(My+oC%vNhX#mQMT_=p+!8qK!s3gWLcTJ2_SvykuZMgojK9v+mjnCIA2Q zvo@Poskp8<+ynV)^?MJ`mT>wf>v}!YfOmFztA+7b>n<3`pqkkW^=sP}V;=!$IJ@aw z&K)e{+PRv?naRBnFFT?9QD-Gyg{IAvV_Z?WnqY@G2U$8%TF^+fA$MgsYEpHjRpA~d z)p!!$Zva}y zT%+|LxFMp(V$#w+xk5jRKA?(`GNEcPe?IV)BqWg7r+P$*C51DFLoz*HKV%*^3uM-r zFV)3Eip?2eP4W^|{VKxeNP_?O8(A!Igu9ThePq zrZRlg&HKaHW8AOtI@KEQ&Y!=9td-Nme`F6dmU#=2q$uYo@a6TG$H_}O6Y>9ATvq5l zR~l(h6bWWIXv6PyuD+TZZ;j-~1odyot^FvUOMSU?^b+0D>&iq{=AgW=d>2vv3FgWK zG{2|meF-SvtyY=x9%I{980wl;kQRr69?xuV^knbBB86ii_Dou@?PuMyscM|%JGdDV zdfgw#Z8xu08~62z=3V{oU<4#vypI20A$hl3*k+*hOyjhpylkJLgGae0h&=p{6d~)0 zbQx%R@WuHUvcM}EbiwHwPyuk)zfq}p9){F6-n_%m zd8))t@DO2|6KK@OdDC;9ijF#88|ah^c=9mDzkRNQk2Vm2$c_yXKzx6guZ?aai%I3C ze%DWFK(5XArH}a{rzVfi>#p0_viVOVIwvjAxY=@9#rNXjsT+M%J=-oK%h*m9@{&~r z38>#-qO__|K~O&8(b48{1xjFcrVV4r{U*n<>R#;6h=Uzzuyp^tp1TyhI=^MohNedVVW{pb(uzhV|;uTZxpA#|6r3BiS* zrEBf}&e*R^Qt6zdF)0iVtAjBhIe{8F<{Fd$jkrkTwD+AzB!r!1`sWcx^$B-LKd3JO7ABQ5K-D zs`HCAetijkm)@!ArUiX9SmCA1+y6OI>f>3=@vMw{Zg?S}BA9+l`5)wfxn<1%W&!-W zwfF+vC9bHN#xv1QYEuSWl$q_oE;`u=1t_oyI`*wtB0_x*PhBz#^_1##DeaQc*|CG8 z1~PHja-_)GnH3A0E2>0O#830TL!Z4yaamZZV&H}ep4@t~{5?{*s=ixwYko8^Z^>{% z@o?^w1PdWcKa*3#HWbCP52>khU37mCti85qVW~}1$lf_Mtzrz`#+ctiT80w)dT`bK zn;ikIM*tWVvNV%8-A1!ZVTd8Y1D-c3W)w;ZJzq{W`E*PC{K(L3&b7*U7m#tzH5sj@ z$WrsVdww1xJkb}*9)~F2I~T7^RH09r5dPvR1iLm5&DTW+Z61*+WGM;Gz48iK%BE2M z9V}e0)ox)w6-l^}UWtZc+-s6pj9LQhZs{^+U zYrchmnM^o`m3}H^@Ub@o6BTnfOK>zJG0Pop0Lp>(~2t7rQEaj&|KL zG6akRfDRCUu`D@_Dw>~JYL?zWwT8&%m6~8be)ur|4Xl-JpK?d9MiLJt^YAQ5XU?0n zAxk}UN*sKy#4R}SU|nb~mix%W0By08t~AZYxu4RG<6%_manW zb)~KC##Z}A=@4=J_~6oFFs$$qTXgig&COWD%6ASAENYionc>s3mt|BQFPaH;5EZn0 zW%*vnhP&zK&B|>fv>#!!Vb!?KBlqE>VNY9Ittx%JQTr4+>Y&uHvXhh7TCtqeyXZh> zR*SgqNiF!cWs2c?ddRsmpCUZ!XO=thWY)q%3^3~$L*BnNqu!?~}Kef|V>oQm7(ozXq zY$yX`52~u%#c;o)l82YC+s){#U6s;@*UwQj=RM|W_z<^QB>AtSS`-jHJ%!8-dSmCs3gXd+v_EnA^Hb;F z%2Xk)_+7PpzVi`dem#k2_M?!}E_eyHO5_mUKZ%%(-=WN`F10C8KlaWh4Nk%ISXo*+28f8*Od0WNJbC`5 zjJzcO;%dyJnp;EbySs7>B79E|CPfh_6zk&RwGjJ&-mPA@%f*-A9N@hOdrbzPUfPx2 zO=$SjUVlnhm(M@=gTPN;AJK$)^|Hv|IpcY&=frD&|7?Y~7!PiKB~)EEMXGZW**@`4 zO?`PQ%tHSWN=M`MVtL+|J~NBsG!;UY82E*AomB7o7aEx8>%C3X+4Sh*aWCd1*l4gf z-GA@mHaGNVVk*dX4pmurr>54>WWIu|YOTk#m?ICV!N+;zW9M0)YZdG{DcrT;mS5CM zXw|(?^<0`ti-Xd2tS6|IGkb7gU~I9?XSei)jJ?mrT$-fujpz`6MeZMe`j@rsm3$)n?1qfQgLZeD9OGIm5Q0{8T(RX%}~~hP$`mZgKTN)VlYC&j5T!? z*|RfaDU5AMF~*kqzK8C8zR&l0et-PV<1y!Rd_LoR&UtU=ykGD07Ko94d+^Zdre?0} zm!~w9lsK{$(szWcq_JY3$LOgM6b98Aaet(Pbv1>QTfxuGLCM(an6Io(dzlmHN-LteD5PN(UkRDh z3{OZ%d@8=u*f4kfLrnkDJcqsgGR?W(fmXDVM#iye;YN{A#%B2ZV?_JX14;V$;*j(d zBX!@NRMvj7a11WTz-DN)_@fh!tFC$g_xDkgd?dMOCdZYYEMcO}h%7G`y&y~!(bPkV ziZpM@%=>B=qAI^+Cz?kk=bxU*(T?Df>6K9WKsmq|C`&K%>rT zcVYQPe!tbhI=*kNj;3y}gzLf+C|!|wLKg1+^U$GUqI#IQ;a6orH=MBeH??b{ohhIGSmF-D@LGN)@ob*8483ijI0uK8Hg*drzOmkA}<3Ty=dc#u?~pFDy}p ziGf4q$loOPYJDHiZ5_Ya-F(gd`L(KDhzn^f+i-;bUxuMoi-k#jt&D=7?$LEvEH<+Y zlF84w(OUAVy0u{EPF)s9m0eq#4eqI09L$Bxb>k}yCa;CjDWHbOTGDdW*CzFpZ!Nuq zY-Vz}q1RRci(e8N>4pXdv9P001c<~3UcJL5lxEmXzZ^yT`0*JuO;D=W@}{PyWWA@1 z)`s_2>%-m1NqVA)fNPywuLGTAtS??gN7h|1VII{GR-&d;#v*uf*}1Oi~?QwTQ`;`gyf zHKRHKC-{6b=br4!N=uV`%Qm}c6cM&|lt-$cN;8>Hi8j?O`Q8DGa{$tq{AxZ(%D0-I zV9$n;<{^1WkPKqIAGz|JU)L+g?3VAHlhBl)*<4gj_L0ToV2^Al``yy zW^tcH_#%|5IeS}IwUDIHZSw-|xgEVXUUJpT%99m2hHvz~7&7VNC@NZ;^G7wbD)1u0 zxEeh-nX_b66%>$!RwJWVgjJTOYFVDs-0TiEv)}$QQk}uBJmW4KI4P!ROS2x(;^I2- z@VxN1aFoT2h}^VLCfQ6nF0wFwr(9&D!#QcxEnAB$$XQF5|IBk}A7;-n5vkc-WNJ*t zpR4ibC3aaH6!x|XPMw(f8f3^8F~+!PDpQ%oRq# z^`3mI6ji@hsshmh!QXG94UxaM#U9lxc4`xjCEL67a-w394DD_k>@oV_q*ZywWJeajbIi<3Z(L36NmsC&n0iWOm_SZLdWmjz z;?Pp9f^y|!3dtbdrNpl8=QaNW6p>Xkk(}mnEsu&*=yH!t5$mhkx-lZ&>Y^WP)p;x| zc(84*@6$(HrGR>ZT9V~$9SEYbJTut$suFv@iXUJ$(lJ|Xa39_WIrPfg`u4{jtsXkW z?OB#U5cJq&MW&m&x#*%=ubHJ+-zU!Fj+4Xl~ja@JL)9xWwZ`b@10VDOP`{OJS|8^QWg> zdHMKU#+s5z`T5;{-`}-rzdLQ9W0c|hZTP)zK}o#7luE^8%4rL976l&?+0$sOd&zN= z*i6_3*NM}RcI^@wccpxEk#Q|nOHyQCN2k{bdZ65LmEu|{5pOE_nlKn!{ajjuKAtAvZf=IwDPlu#lXpD1a=b(JOZkn84H1MHkKk7isx&UJ&XcS-rr>nchMTdwYB3z?EX)+l$cx z10#h@`3yUWZY{%82aJr3jWH_OS59RUiNv5o8jg#y%PaJ;F(3cD%+7$mzLLs>uFicf z4e|R=qaIl^vbP#|sML7%^>O%BJ(X_^RHIxjleF^4EdBmn^8Pus@tYplBIeF(L>&Gg zp)tYf!tqS9hW2zFuV93jy`(5|Bx<%U;g#U}V7WQm^IES=II0oqoI|=T+MHU&b&arC z=fO%p6ty<={EOh9t3xU3!LR2P%Y@%8&yO#>^@j)2Hc( zMMCP6QJ)I$&wp>_5>PE2@P>e{EWi1&ZU zU&ZG|(VF0oubgWWn(BsTX33zMc*DH zn`mQ)ewQ<-VK^PHs=H_1F-{_V3$F?5uXMZVk9A`X@dm-OC#=MMNUdsVI08j=1Ds1~L(lvGce?_l4|NaSH9!};-66X=(< z|D;Id0qJvf(SkkHlIsB1cb|lW*6FO-p@PgyiBq6mAzAdzsMMgSRn|;gM*Qt4qz*yN zN;6uZt1Vqq&aGcD;qhaa$@WYV!OIkU=pVa3p7T{=#% z6(}2bTXTJ&&6LelB>iJAzKzVbFi)+&;u{3Lg}GisoEcKS@#*%(M+cq{4-X6AC?G@f z%!)47gmL#kHW@ehi1MVOzGK&{O?(Z*Fdm*(B3CkvjC0CjvoBSJ@gVj9ai{UJju`P*2B3YEv^?m#IjQ0{sgVtLS z3QrX}*p@z&z+9O44vh(4N{tdrEPsPB-b8Bt`hty{5YGs|wQuz3z!_2Pq-TJ}bM$AM zq)@apv^du*&j|7H@lNw&&B+4W)*BFRn|?9ao7$Te)^mpMrq`bVY(fT+M^#7Rfb=$Xv zJbZ84LU0dcSeTPtljju=?^&$Bx$z~ZZtVTl_stkAHUaER2@37Id$jLRpvnFF_xW29!o}4!9w{d)>$EV{B`z**2#W;FrArIn z>I8iQBqwL`+2i5()bC;kQRlL*Zd7g5kzBU2fPj%iS=)EpfupX&vBD28rnksf9jpOs zRMxI`H_*`}+f0}R`QjFRaHFSdAsf;gaX=rY&B)w*N;MzY1bpu&K%oI%ACoGN!n_7{vZ#`PMYlYg zYHOgNWDEwwwoK9#Z=TbPI^6bLBMbyyrd5TH5@XR}H;s(z& zFsP3u&Hf4v-IkD;mWKDC5^F= zv_Y~r*8ZiU5s+wYojI2iQd1?+)K~TqYRjWM%WFYpmL~^p)*Vp>Bf)37R|x%Is>;D8 zOE(RV9PsY30z!qKxj$7&uvh?VE&x?4q!Fs9&KUw(qwJ5XsHoT{bN#m9vm0zo?;r@s z!H-V!Y)ozP*nCL9k-*tQndZ8uW>4gMUYsUJuAz zZ{~ynTY_h1W}26K<@{J~4F=-TEvRCp0C5jFkA8?{>o*uYBhdGN?wktYR{IEa)7jqc zq0y3~VrTmLR@rM-Nx?u2__f&O+2X$g`uWYB&HU1~_dsEZpm}+DQ)C=LT&C%>(^c_ zbPwmcs3YdZP6osiWkS^`jel^q)qi%(?&X4f78E z8&5wAXlQH%6Eu19Dq?dxtV*zkhIpv6%WaNFzqp@r8<0D)9U6#j#d!ShI?1O+I%+na z-<%}D7xDfyYWv3J#_ubLTrWreE&tv0=8Wbqa{JXf;rNSMeqG-Vy7<30{N&Db|E-3E Sw<=}dgTA19KL6a6yZ-@{Db7d$ diff --git a/docs/html/common_8h__incl.map b/docs/html/common_8h__incl.map deleted file mode 100644 index db8981548..000000000 --- a/docs/html/common_8h__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/common_8h__incl.md5 b/docs/html/common_8h__incl.md5 deleted file mode 100644 index 2be734cde..000000000 --- a/docs/html/common_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -aa74e03aecb13fcd809f51a49749664f \ No newline at end of file diff --git a/docs/html/common_8h__incl.png b/docs/html/common_8h__incl.png deleted file mode 100644 index 95c9049a4782cd943b86f5958ccbbae6884eeec1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4911 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 diff --git a/docs/html/common_8h_source.html b/docs/html/common_8h_source.html deleted file mode 100644 index ad2b17271..000000000 --- a/docs/html/common_8h_source.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common/common.h Source File - - - - - - - - - -

-
-
-
common.h
-
-
-Go to the documentation of this file.
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_COMMON_COMMON_H
-
7 #define ACE_TIME_COMMON_COMMON_H
-
8 
-
9 #include <stdint.h>
-
10 
-
17 namespace ace_time {
-
18 
-
24 typedef int32_t acetime_t;
-
25 
-
44 const uint8_t kAbbrevSize = 7 + 1;
-
45 
-
47 template <typename T>
-
48 void swap(T& a, T& b) {
-
49  T tmp = a;
-
50  a = b;
-
51  b = tmp;
-
52 }
-
53 
-
54 }
-
55 
-
56 #endif
-
void swap(T &a, T &b)
Swap 2 parameters.
Definition: common.h:48
-
const uint8_t kAbbrevSize
Size of the c-string buffer needed to hold a time zone abbreviation.
Definition: common.h:44
-
int32_t acetime_t
Type for the number of seconds from epoch.
Definition: common.h:24
-
- - - - diff --git a/docs/html/compat_8cpp_source.html b/docs/html/compat_8cpp_source.html deleted file mode 100644 index 6686c3770..000000000 --- a/docs/html/compat_8cpp_source.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/compat.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
compat.cpp
-
-
-
1 #include "compat.h"
-
2 
-
3 // There are many different boards which identify themselves as
-
4 // ARDUINO_SAMD_ZERO. The original Arduino Zero using Native USB Port
-
5 // does not set SERIAL_PORT_MONITOR correctly, so warn the user.
-
6 #if defined(ARDUINO_SAMD_ZERO)
-
7  #warning Arduino Zero may need SERIAL_PORT_MONITOR fixed (see USER_GUIDE.md)
-
8 #endif
-
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
-
- - - - diff --git a/docs/html/compat_8h.html b/docs/html/compat_8h.html deleted file mode 100644 index df2994faf..000000000 --- a/docs/html/compat_8h.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/compat.h File Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
compat.h File Reference
-
-
- -

Macros and definitions that provide a consistency layer among the various Arduino boards for compatibility. -More...

-
#include <stdint.h>
-#include <string.h>
-#include <WString.h>
-#include <pgmspace.h>
-
-Include dependency graph for compat.h:
-
-
- - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - -

-Macros

-#define ACE_TIME_USE_PROGMEM   1
 Determine if zonedb and zonedbx zoneinfo files are placed in PROGMEM.
 
-#define ACE_TIME_PROGMEM   PROGMEM
 
-#define FPSTR(p)   (reinterpret_cast<const __FlashStringHelper *>(p))
 
-

Detailed Description

-

Macros and definitions that provide a consistency layer among the various Arduino boards for compatibility.

-

Most of this is caused by inconsistent, incomplete, or sometimes incorrect emulation of the AVR PROGMEM macro and its related str*_P() functions in <avr/pgmspace.h>.

- -

Definition in file compat.h.

-
- - - - diff --git a/docs/html/compat_8h__dep__incl.map b/docs/html/compat_8h__dep__incl.map deleted file mode 100644 index 8a6b4fd3a..000000000 --- a/docs/html/compat_8h__dep__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/html/compat_8h__dep__incl.md5 b/docs/html/compat_8h__dep__incl.md5 deleted file mode 100644 index fdf7f6cc2..000000000 --- a/docs/html/compat_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -393a64baa387db8c6bc88a232e29d68e \ No newline at end of file diff --git a/docs/html/compat_8h__dep__incl.png b/docs/html/compat_8h__dep__incl.png deleted file mode 100644 index 5a184807d82690688a2526302530fba5fabaccbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457244 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%0A*&D)mY8}%v)aR%f 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 z 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%0D06*|}pt?F{LnfaRD8(A43<{2pHDtrC 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 - - - - - - diff --git a/docs/html/compat_8h__incl.md5 b/docs/html/compat_8h__incl.md5 deleted file mode 100644 index 3719f19bc..000000000 --- a/docs/html/compat_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -0ab37bbb230a6dc790554caaf9ca3a43 \ No newline at end of file diff --git a/docs/html/compat_8h__incl.png b/docs/html/compat_8h__incl.png deleted file mode 100644 index 2d13a378436a91c27d664e617751dbb4a2842faf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10523 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 aaQ}?Z!~`u - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/compat.h Source File - - - - - - - - - - -
-
-
compat.h
-
-
-Go to the documentation of this file.
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_ZONEINFO_COMPAT_H
-
7 #define ACE_TIME_ZONEINFO_COMPAT_H
-
8 
-
18 #include <stdint.h>
-
19 #include <string.h>
-
20 #include <WString.h> // FPSTR(), __FlashStringHelper
-
21 
-
23 #define ACE_TIME_USE_PROGMEM 1
-
24 #if ACE_TIME_USE_PROGMEM
-
25  #define ACE_TIME_PROGMEM PROGMEM
-
26 #else
-
27  #define ACE_TIME_PROGMEM
-
28 #endif
-
29 
-
30 // Some 3rd party Arduino cores does not define FPSTR(). And unfortunately, when
-
31 // they do, sometimes it's wrong, so we sometimes have to clobber it below.
-
32 #if ! defined(FPSTR)
-
33  #define FPSTR(p) (reinterpret_cast<const __FlashStringHelper *>(p))
-
34 #endif
-
35 
-
36 // Include the correct pgmspace.h depending on architecture.
-
37 #if defined(ARDUINO_ARCH_AVR)
-
38  #include <avr/pgmspace.h>
-
39 
-
40 // Seeeduino SAMD21 Core does not define an identifier for the following, so
-
41 // they are not supported:
-
42 // * Wio lite MG126
-
43 // * Wio GPS Board
-
44 // * Wio LTE CAT.1
-
45 //
-
46 #elif defined(SEEED_XIAO_M0) \
-
47  || defined(SEEEDUINO_ZERO) \
-
48  || defined(SEEED_FEMTO_M0) \
-
49  || defined(SEEEDUINO_LORAWAN) \
-
50  || defined(SEEED_WIO_TERMINAL) \
-
51  || defined(SEEED_GROVE_UI_WIRELESS)
-
52 
-
53  #include <avr/pgmspace.h>
-
54 
-
55  // Seeeduino (as of 1.8.3) provides an incorrect definition of FPSTR()
-
56  // so we have to clobber it.
-
57  #undef FPSTR
-
58  #define FPSTR(p) (reinterpret_cast<const __FlashStringHelper *>(p))
-
59 
-
60 #elif defined(ARDUINO_ARCH_SAMD)
-
61  #include <avr/pgmspace.h>
-
62 
-
63  // Set this to 1 to clobber SERIAL_PORT_MONITOR to SerialUSB on
-
64  // an original Arduino Zero when using the Native port. See USER_GUIDE.md for
-
65  // more info.
-
66  #define ACE_TIME_CLOBBER_SERIAL_PORT_MONITOR 0
-
67  #if ACE_TIME_CLOBBER_SERIAL_PORT_MONITOR && defined(ARDUINO_SAMD_ZERO)
-
68  #undef SERIAL_PORT_MONITOR
-
69  #define SERIAL_PORT_MONITOR SerialUSB
-
70  #endif
-
71 
-
72 #elif defined(ARDUINO_ARCH_STM32)
-
73  #include <avr/pgmspace.h>
-
74 
-
75 #elif defined(ARDUINO_ARCH_ESP8266)
-
76  #include <pgmspace.h>
-
77 
-
78 #elif defined(ARDUINO_ARCH_ESP32)
-
79  #include <pgmspace.h>
-
80 
-
81  #if ! defined(SERIAL_PORT_MONITOR)
-
82  #define SERIAL_PORT_MONITOR Serial
-
83  #endif
-
84 
-
85 #elif defined(TEENSYDUINO)
-
86  #include <avr/pgmspace.h>
-
87 
-
88 #elif defined(EPOXY_DUINO)
-
89  #include <pgmspace.h>
-
90 
-
91 #else
-
92  #warning Untested platform. AceTime may still work...
-
93 
-
94  #include <avr/pgmspace.h>
-
95 
-
96 #endif
-
97 
-
98 #endif // ACE_TIME_ZONEINFO_COMPAT_H
-
- - - - diff --git a/docs/html/dir_000001_000002.html b/docs/html/dir_000001_000002.html deleted file mode 100644 index f6189797f..000000000 --- a/docs/html/dir_000001_000002.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time -> common Relation - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-

ace_time → common Relation

File in src/ace_timeIncludes file in src/ace_time/common
BasicZoneProcessor.hcommon.h
ExtendedZoneProcessor.hcommon.h
LocalDate.hcommon.h
LocalTime.hcommon.h
ZonedExtra.hcommon.h
ZoneProcessor.hcommon.h
ZoneProcessorCache.hcommon.h
- - - - diff --git a/docs/html/dir_000001_000009.html b/docs/html/dir_000001_000009.html deleted file mode 100644 index f42eb8228..000000000 --- a/docs/html/dir_000001_000009.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time -> zoneinfo Relation - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-

ace_time → zoneinfo Relation

File in src/ace_timeIncludes file in src/zoneinfo
common / DateStrings.hcompat.h
- - - - diff --git a/docs/html/dir_000002_000009.html b/docs/html/dir_000002_000009.html deleted file mode 100644 index 000b0f277..000000000 --- a/docs/html/dir_000002_000009.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common -> zoneinfo Relation - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-

common → zoneinfo Relation

File in src/ace_time/commonIncludes file in src/zoneinfo
DateStrings.hcompat.h
- - - - diff --git a/docs/html/dir_000003_000009.html b/docs/html/dir_000003_000009.html deleted file mode 100644 index 52e1e0952..000000000 --- a/docs/html/dir_000003_000009.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb -> zoneinfo Relation - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-

testingzonedb → zoneinfo Relation

File in src/testingzonedbIncludes file in src/zoneinfo
zone_infos.cppcompat.h
zone_policies.cppcompat.h
zone_registry.cppcompat.h
- - - - diff --git a/docs/html/dir_000004_000009.html b/docs/html/dir_000004_000009.html deleted file mode 100644 index d0303c096..000000000 --- a/docs/html/dir_000004_000009.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc -> zoneinfo Relation - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-

testingzonedbc → zoneinfo Relation

File in src/testingzonedbcIncludes file in src/zoneinfo
zone_infos.cppcompat.h
zone_policies.cppcompat.h
zone_registry.cppcompat.h
- - - - diff --git a/docs/html/dir_000005_000009.html b/docs/html/dir_000005_000009.html deleted file mode 100644 index 75361ec12..000000000 --- a/docs/html/dir_000005_000009.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx -> zoneinfo Relation - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-

testingzonedbx → zoneinfo Relation

File in src/testingzonedbxIncludes file in src/zoneinfo
zone_infos.cppcompat.h
zone_policies.cppcompat.h
zone_registry.cppcompat.h
- - - - diff --git a/docs/html/dir_000006_000009.html b/docs/html/dir_000006_000009.html deleted file mode 100644 index 32cdfd0f0..000000000 --- a/docs/html/dir_000006_000009.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb -> zoneinfo Relation - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-

zonedb → zoneinfo Relation

File in src/zonedbIncludes file in src/zoneinfo
zone_infos.cppcompat.h
zone_policies.cppcompat.h
zone_registry.cppcompat.h
- - - - diff --git a/docs/html/dir_000007_000009.html b/docs/html/dir_000007_000009.html deleted file mode 100644 index 19c190b4c..000000000 --- a/docs/html/dir_000007_000009.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc -> zoneinfo Relation - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-

zonedbc → zoneinfo Relation

File in src/zonedbcIncludes file in src/zoneinfo
zone_infos.cppcompat.h
zone_policies.cppcompat.h
zone_registry.cppcompat.h
- - - - diff --git a/docs/html/dir_000008_000009.html b/docs/html/dir_000008_000009.html deleted file mode 100644 index 116868a29..000000000 --- a/docs/html/dir_000008_000009.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx -> zoneinfo Relation - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-

zonedbx → zoneinfo Relation

File in src/zonedbxIncludes file in src/zoneinfo
zone_infos.cppcompat.h
zone_policies.cppcompat.h
zone_registry.cppcompat.h
- - - - diff --git a/docs/html/dir_173dd563440c1e02d7e3957b90659cd7.html b/docs/html/dir_173dd563440c1e02d7e3957b90659cd7.html deleted file mode 100644 index 133991a3b..000000000 --- a/docs/html/dir_173dd563440c1e02d7e3957b90659cd7.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time Directory Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ace_time Directory Reference
-
-
-
-Directory dependency graph for ace_time:
-
-
/home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time
- - - - - - - - -
- - -

-Directories

- - - - - - - - - - - - - -

-Files

file  offset_date_time_mutation.h [code]
 Methods that mutate an OffsetDateTime object.
 
file  time_offset_mutation.h [code]
 Methods that mutate a TimeOffset object.
 
file  time_period_mutation.h [code]
 Methods that mutate a TimePeriod object.
 
file  zoned_date_time_mutation.h [code]
 Methods that mutate a ZonedDateTime object.
 
-
- - - - diff --git a/docs/html/dir_173dd563440c1e02d7e3957b90659cd7_dep.map b/docs/html/dir_173dd563440c1e02d7e3957b90659cd7_dep.map deleted file mode 100644 index da6e39fb6..000000000 --- a/docs/html/dir_173dd563440c1e02d7e3957b90659cd7_dep.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/html/dir_173dd563440c1e02d7e3957b90659cd7_dep.md5 b/docs/html/dir_173dd563440c1e02d7e3957b90659cd7_dep.md5 deleted file mode 100644 index 9003b5335..000000000 --- a/docs/html/dir_173dd563440c1e02d7e3957b90659cd7_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -64e7d05b19e1b639e4195675a0047fef \ No newline at end of file diff --git a/docs/html/dir_173dd563440c1e02d7e3957b90659cd7_dep.png b/docs/html/dir_173dd563440c1e02d7e3957b90659cd7_dep.png deleted file mode 100644 index 1ac87569e72702b01367deff6716852187ee033c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4672 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 diff --git a/docs/html/dir_1f0cdc36437962ae32413c3b11b65679.html b/docs/html/dir_1f0cdc36437962ae32413c3b11b65679.html deleted file mode 100644 index 4e2fa5faf..000000000 --- a/docs/html/dir_1f0cdc36437962ae32413c3b11b65679.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb Directory Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
testingzonedb Directory Reference
-
-
-
-Directory dependency graph for testingzonedb:
-
-
/home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb
- - - - - - -
-
- - - - diff --git a/docs/html/dir_1f0cdc36437962ae32413c3b11b65679_dep.map b/docs/html/dir_1f0cdc36437962ae32413c3b11b65679_dep.map deleted file mode 100644 index 7d1455a85..000000000 --- a/docs/html/dir_1f0cdc36437962ae32413c3b11b65679_dep.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/html/dir_1f0cdc36437962ae32413c3b11b65679_dep.md5 b/docs/html/dir_1f0cdc36437962ae32413c3b11b65679_dep.md5 deleted file mode 100644 index 28d0e7a35..000000000 --- a/docs/html/dir_1f0cdc36437962ae32413c3b11b65679_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -19a15575980f282cfa1e19c8452b08ca \ No newline at end of file diff --git a/docs/html/dir_1f0cdc36437962ae32413c3b11b65679_dep.png b/docs/html/dir_1f0cdc36437962ae32413c3b11b65679_dep.png deleted file mode 100644 index 4e0f419bf59bb5a7def4c537e6dafbff4e86b3ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4386 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 diff --git a/docs/html/dir_4087a17cae141e7242c9415587ae2d90.html b/docs/html/dir_4087a17cae141e7242c9415587ae2d90.html deleted file mode 100644 index 78af350a7..000000000 --- a/docs/html/dir_4087a17cae141e7242c9415587ae2d90.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb Directory Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
zonedb Directory Reference
-
-
-
-Directory dependency graph for zonedb:
-
-
/home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb
- - - - - - -
-
- - - - diff --git a/docs/html/dir_4087a17cae141e7242c9415587ae2d90_dep.map b/docs/html/dir_4087a17cae141e7242c9415587ae2d90_dep.map deleted file mode 100644 index 4b859f348..000000000 --- a/docs/html/dir_4087a17cae141e7242c9415587ae2d90_dep.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/html/dir_4087a17cae141e7242c9415587ae2d90_dep.md5 b/docs/html/dir_4087a17cae141e7242c9415587ae2d90_dep.md5 deleted file mode 100644 index 4b3bfe22f..000000000 --- a/docs/html/dir_4087a17cae141e7242c9415587ae2d90_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -b3c3bb3ff24868dc310369b73418a14d \ No newline at end of file diff --git a/docs/html/dir_4087a17cae141e7242c9415587ae2d90_dep.png b/docs/html/dir_4087a17cae141e7242c9415587ae2d90_dep.png deleted file mode 100644 index 48f985a070368773c2b51738e6de2026a6dd7484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3747 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 - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src Directory Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
src Directory Reference
-
-
-
-Directory dependency graph for src:
-
-
/home/brian/src/AceTimeSuite/libraries/AceTimeLib/src
- - - - - - - - - - - - - - - - - - -
- - -

-Directories

-
- - - - diff --git a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map deleted file mode 100644 index c71bfd2a5..000000000 --- a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 deleted file mode 100644 index 53ddbec41..000000000 --- a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -9d0eaf506c8dbf99f240e05ef7dfb734 \ No newline at end of file diff --git a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png deleted file mode 100644 index c62371dd94e0ff2bf65f92f4e462d41569c4a02c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18199 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 - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx Directory Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
testingzonedbx Directory Reference
-
-
-
-Directory dependency graph for testingzonedbx:
-
-
/home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx
- - - - - - -
-
- - - - diff --git a/docs/html/dir_87a9f0716831ec146f37160adfa15576_dep.map b/docs/html/dir_87a9f0716831ec146f37160adfa15576_dep.map deleted file mode 100644 index ca3d31c9a..000000000 --- a/docs/html/dir_87a9f0716831ec146f37160adfa15576_dep.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/html/dir_87a9f0716831ec146f37160adfa15576_dep.md5 b/docs/html/dir_87a9f0716831ec146f37160adfa15576_dep.md5 deleted file mode 100644 index 87814dd3d..000000000 --- a/docs/html/dir_87a9f0716831ec146f37160adfa15576_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -4c174c139dc1f746c9ab3c49f348bc13 \ No newline at end of file diff --git a/docs/html/dir_87a9f0716831ec146f37160adfa15576_dep.png b/docs/html/dir_87a9f0716831ec146f37160adfa15576_dep.png deleted file mode 100644 index 1fe1245cffaa4303700808b286ceea0e5035c117..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4566 zcmb7IXH*kwyA7Zq0*0paj)2kx4!wzhNC`+eG^v89p$Dk}0#c+&F`}Rd0s@Dc(0f&b zNC4^5LPtV}P$VI6hqdmyfA0Cd?|f_4%&d22t@oLEpJzXN?>GLwu^z)^&dVSWh(Z6J zju~)A1Ly1|YT#;l)n*X5Q9m@)(*d2GA0JzbkRT9KqP~unMNrn}4BW!vV6tOZ8fM;& zzR#$|C|p%$acTQ9lWnhW zXzvXh<8pEW&(-^lt%!YD-8lX^kMPd~o5WhD!;RJ)jyCt7^jKcx!otGC==&Dxgd9u~4w!S~eOz2lduYj{MiLDq>AEY@+G|;SNEa zk*4|7uodh8@lklVgT#Zn3@Zl?Y@)OZGuzR{z^!Sw`L5s~czyTGOiVqFsM^@r$cdvo z_>%36tsBVa3O`S{lq9>u~!;NS~Irv+>}bd8L>)<b>ad>H3LL!Qkz++>%vHun3r6S(BvK&^!;}iBwmY9&=u%++0=~$-mRH+CyPV-?cQ>-{y`tLK=H?7ZT}z7v z>cQ8w1NH2A|e00P{+jdHH7Z$d2{nhWS?7w!?%WHs{^^c^y zJV9n=DMlt4q`bR^kjySM9os3mveFbhgNr(^yVH~FS(-UoPIK)xtxXuwXdl5 zY^@^q=*Gs2CTh+x1&_ki)K%9PgIRNPz31i!nId)YaXT;QYUnQX=?yI6)TrbWvwcc}c zQ|Wsrk63L>Oibhpnd186$-U4Mf&QFjbWr~Rw$9dsscJ-6_}W0==k_dx;}UN688sET5<{@o(DOKPkw+RT3XbGhRp}@ zoaetphCTje`Djej#|iA+uKuF@LHh_z>brMInVB5M#{IIf^qy}046f~BW23TN z^P4}nJa)RHI&x6vu!m&_`W5 zQEK{~$KPK&0Y#qr_HA!GizXvb_3)#u-OYNqP0cEVnMFD+C&$FuSs-wG1)sun*3_yu zS~5EPZ1qQsvR_wYIGGbjzJ#5UNxPcz@#Vw;i8oylUSZBI7>BDl0dv z4}rLCO&9Ou@7%gN6Trr1rQ*Ma*_dz!XO({;9`M1IzG-buH};kMX{Zk{&ySDJ zAPM`X3;-XNDBQPhK5sW%%hN2?z$SyEbb-;yh$7<;eQjaQmG#~q5o1mVYcCrb)eUcV zfTpKCGSyYH2J@pTYid5ZTX}OThQCS^qM2LRV=c8hOZ@h&eD&GO?=!gkgrw;%#3_M` zm$xE`Q$8+Nn+gPU34SRrEiBcpe<$i!-oo$k9ws5)Xe|Lr7E+nea*o2@X62n zdPiI8nJWGYot+d*D=QZGHd$8W!YfC=Qht8^h^#D9x(fJBX{mf#+JmGutQ!0%yyufX z>QzRD{ciet+$%YPu&_mFPIS!0{9zkL78dhm@(qH7jwjl4>KYb{T^%ju1M<;AKIC=? zSH8bqxmIHfzhuf43_o%v9kK%rTOasVph_hiT8x0Ve*|9$zc4liv96c0U6=Wi^G)cV zQOn=*5HXeOUH>KJ_spYsS2)(i z#ijJjf$MoEWd&CJ?Mp~d&?S(#RmFG^^CF-Z{xQk@?U(!=L6${|TQO%UcnW4`dj*9w z$@s4+0cBasYpBnRrdIGwaGmQAIB&;1s#j8x$j>9ii|6n59C|o|2z_6P1Lb9$a!?D# z;X=rWkDz~#5E>&ZCl~kfWu8e+q-{!`Fs-#vW#xNc|Jp*JfqnX9w_IL-&8p>I1T_6oZ_VzfL+{% z3qM#}TSL{eVZw8qFv1E004e*ms_AKN&?_X;zacJFPC zjLh^i?Y@x_R`2aLKy)e0xndxc6Yl5a2o?@a+6L-_txZERk>R_& zLwk5w$idpK~XrF$Z6!(0z^`9{dVc{<-J}z zhx@51?T83!77j()hFJgg704pSB)xGOVB49d;HS6Je323E8O6mMQ8ev#Yd7Tm{QP3+ zX*)(NvI9_0nRi^~wl$xhoM>JV+9MElkN9%ubufmM;q+>1Dnn&9e&q4Gx;~%4?T`Qa z7)T4df(Pr$%1Xxj_k_LPd>KHfhDhWKQ)r4r(SSuYH65?;@yabDN-xpTjfF(R@Xu60 zmK7&O802g3(GmvRl>3t3X-Ugn>%tccr`UG4HM7OUCWz4`5Mg5 zFYGECMa?i8k|b+z3jR4bXfv$L>pEVsnWZFSye?DHCq`LO4s~h3+zpRs`G+><{}iZu zC7_<&`m@em#lrg3pX$E>3V!_+JZzOXpiA12&uZ$GuD243PJBIo1%NQ3*9V48m z5?;=b?u}~(Zn17o2Jd}gu}pa?c+ex{BN;$Cl$4N=sNv1GEH$S<9L*>;G}*pAR)Q_@ zgA~2&TqbMcpRMlD^QhLjtzdgj4yPbw;<>qTJe2~7JlFGqC~+U(k*iI!-wWi&y1|E6 zJ*1`}4E|We=#sF!yiNNF>IEZs3KvZq=`sCV#?+L{$G_I?crWm#yoF!fquN=hDzLZ|m%x18n^X01iKJx28C(u)YP<5F1^0B);*v0^1F`J!A@aeSGh3agY@i5 zsp9JH4#!X?T@Mdd85zf6bZ+v}k}xo9S7(&y(=qIoh-1RrTTZtXtEyxxYdxuN`}l}$ zPLfZv*-&jN*~`7N0^;IPfGa)Rh+kYCtR^1(!rDYMH`B36pBk)>dGadh1y7L(nPCPN z0hp#w#?+y!KPYhUZBGU7k%lze?;A#wS-XmuN0 zF{P}`2-FlH$ptm|J_@6f@`i)WCOFn#sj%%#R2OAvgfa7l|GrUC;YIA-+~g6Hkl>e; zya*><0}%uJJ#f>xU7IRON@ger_3+>GlqMQa$<}VDtt8A}#ynI-g(7m!clZ;pNiG(= zRY|v9SzR^iPPWg~L|n76$^2AQROQrZ*V0O|SWD{zWJoI<>@-$(!>%pswu1w2`w8s% zk01P7v+Y(w1gpTiE*3?UxN6a4EcRKU5eKQ`v4CY++$U#kz$^rG&$hD#1oYX|dH5I9 zw|h)L?d)eR(b9f&(Nnx8kiBBYWlBoQZ#|7D{BfPLz=LXzuCC{Uc!{|9_~Jc ecq=0(Nz)0n$X>rbjt4esK>E7IIu&=Ep8pStN5$3v diff --git a/docs/html/dir_afb2025690de77b1a5b5001a410c869c.html b/docs/html/dir_afb2025690de77b1a5b5001a410c869c.html deleted file mode 100644 index 305e55137..000000000 --- a/docs/html/dir_afb2025690de77b1a5b5001a410c869c.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common Directory Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
common Directory Reference
-
-
-
-Directory dependency graph for common:
-
-
/home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common
- - - - - - -
- - - - - -

-Files

file  common.h [code]
 Identifiers used by implementation code which need to be publically exported.
 
-
- - - - diff --git a/docs/html/dir_afb2025690de77b1a5b5001a410c869c_dep.map b/docs/html/dir_afb2025690de77b1a5b5001a410c869c_dep.map deleted file mode 100644 index 8dab05013..000000000 --- a/docs/html/dir_afb2025690de77b1a5b5001a410c869c_dep.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/html/dir_afb2025690de77b1a5b5001a410c869c_dep.md5 b/docs/html/dir_afb2025690de77b1a5b5001a410c869c_dep.md5 deleted file mode 100644 index 3c217ee0f..000000000 --- a/docs/html/dir_afb2025690de77b1a5b5001a410c869c_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -15b09e99daf571ff154ab8a78d86a8b8 \ No newline at end of file diff --git a/docs/html/dir_afb2025690de77b1a5b5001a410c869c_dep.png b/docs/html/dir_afb2025690de77b1a5b5001a410c869c_dep.png deleted file mode 100644 index 433e9f849d1c4acb51b2ce388ed83daf635f6683..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3380 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 - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc Directory Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
testingzonedbc Directory Reference
-
-
-
-Directory dependency graph for testingzonedbc:
-
-
/home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc
- - - - - - -
-
- - - - diff --git a/docs/html/dir_c01eb8a6ec38f632322c131502e3a308_dep.map b/docs/html/dir_c01eb8a6ec38f632322c131502e3a308_dep.map deleted file mode 100644 index 29e181903..000000000 --- a/docs/html/dir_c01eb8a6ec38f632322c131502e3a308_dep.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/html/dir_c01eb8a6ec38f632322c131502e3a308_dep.md5 b/docs/html/dir_c01eb8a6ec38f632322c131502e3a308_dep.md5 deleted file mode 100644 index 89bbc0648..000000000 --- a/docs/html/dir_c01eb8a6ec38f632322c131502e3a308_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -81b9f6fbc0cc6faa00eab52a81b74c56 \ No newline at end of file diff --git a/docs/html/dir_c01eb8a6ec38f632322c131502e3a308_dep.png b/docs/html/dir_c01eb8a6ec38f632322c131502e3a308_dep.png deleted file mode 100644 index a964db02760eeec643a7198099d1a587ab695971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4557 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 diff --git a/docs/html/dir_c458c1a7ede63e0a4ba7e7b60e917e99.html b/docs/html/dir_c458c1a7ede63e0a4ba7e7b60e917e99.html deleted file mode 100644 index 2be3e40da..000000000 --- a/docs/html/dir_c458c1a7ede63e0a4ba7e7b60e917e99.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo Directory Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
zoneinfo Directory Reference
-
-
- - - - - - - - - - - - - - - - - -

-Files

file  BrokerCommon.h [code]
 Helper functions are used in both Basic brokers and Extended brokers.
 
file  compat.h [code]
 Macros and definitions that provide a consistency layer among the various Arduino boards for compatibility.
 
file  ZoneInfoHigh.h [code]
 Data structures that encodes the high resolution zoneinfo database persistence format.
 
file  ZoneInfoLow.h [code]
 Data structures describe the low resolution zoneinfo persistence format.
 
file  ZoneInfoMid.h [code]
 Data structures that describe the mid resolution zoneinfo persistence format.
 
-
- - - - diff --git a/docs/html/dir_d45698bd535a97711c8831def10fdb23.html b/docs/html/dir_d45698bd535a97711c8831def10fdb23.html deleted file mode 100644 index 386789e00..000000000 --- a/docs/html/dir_d45698bd535a97711c8831def10fdb23.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc Directory Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
zonedbc Directory Reference
-
-
-
-Directory dependency graph for zonedbc:
-
-
/home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc
- - - - - - -
-
- - - - diff --git a/docs/html/dir_d45698bd535a97711c8831def10fdb23_dep.map b/docs/html/dir_d45698bd535a97711c8831def10fdb23_dep.map deleted file mode 100644 index bf53baa71..000000000 --- a/docs/html/dir_d45698bd535a97711c8831def10fdb23_dep.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/html/dir_d45698bd535a97711c8831def10fdb23_dep.md5 b/docs/html/dir_d45698bd535a97711c8831def10fdb23_dep.md5 deleted file mode 100644 index 5d14bb570..000000000 --- a/docs/html/dir_d45698bd535a97711c8831def10fdb23_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -d038700245f2733f63e4871b6ed36390 \ No newline at end of file diff --git a/docs/html/dir_d45698bd535a97711c8831def10fdb23_dep.png b/docs/html/dir_d45698bd535a97711c8831def10fdb23_dep.png deleted file mode 100644 index b9a3fbe68cb78a4ea2029700bc9599d2f7ddc58a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3876 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 - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx Directory Reference - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
zonedbx Directory Reference
-
-
-
-Directory dependency graph for zonedbx:
-
-
/home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx
- - - - - - -
-
- - - - diff --git a/docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6_dep.map b/docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6_dep.map deleted file mode 100644 index 1be89c6d4..000000000 --- a/docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6_dep.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6_dep.md5 b/docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6_dep.md5 deleted file mode 100644 index eabcb21c2..000000000 --- a/docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -017d9cb8ce6fd6b2c413494471df8280 \ No newline at end of file diff --git a/docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6_dep.png b/docs/html/dir_df46910787f3e07390b8f19cc6a1d1b6_dep.png deleted file mode 100644 index 4e226650d1f099cb65c9448c7ed3f6a7c71f3f7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3924 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 diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css deleted file mode 100644 index ffbff0224..000000000 --- a/docs/html/doxygen.css +++ /dev/null @@ -1,1793 +0,0 @@ -/* The standard CSS for doxygen 1.9.1 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -th p.starttd, th p.intertd, th p.endtd { - font-size: 100%; - font-weight: 700; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -p.interli { -} - -p.interdd { -} - -p.intertd { -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.navtab { - border-right: 1px solid #A3B4D7; - padding-right: 15px; - text-align: right; - line-height: 110%; -} - -div.navtab table { - border-spacing: 0; -} - -td.navtab { - padding-right: 6px; - padding-left: 6px; -} -td.navtabHL { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - padding-right: 6px; - padding-left: 6px; -} - -td.navtabHL a, td.navtabHL a:visited { - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} - -a.navtab { - font-weight: bold; -} - -div.qindex{ - text-align: center; - width: 100%; - line-height: 140%; - font-size: 130%; - color: #A0A0A0; -} - -dt.alphachar{ - font-size: 180%; - font-weight: bold; -} - -.alphachar a{ - color: black; -} - -.alphachar a:hover, .alphachar a:visited{ - text-decoration: none; -} - -.classindex dl { - padding: 25px; - column-count:1 -} - -.classindex dd { - display:inline-block; - margin-left: 50px; - width: 90%; - line-height: 1.15em; -} - -.classindex dl.odd { - background-color: #F8F9FC; -} - -@media(min-width: 1120px) { - .classindex dl { - column-count:2 - } -} - -@media(min-width: 1320px) { - .classindex dl { - column-count:3 - } -} - - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -.contents a.qindexHL:visited { - color: #FFFFFF; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ -} - -#side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ -} - -#main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ -} - -.fragment { - text-align: left; - direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ - overflow-y: hidden; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line:after { - content:"\000A"; - white-space: pre; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl, img.inline { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight, .memTemplItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: url('nav_f.png'); - background-repeat: repeat-x; - background-color: #E2E8F2; - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -} - -.overload { - font-family: "courier new",courier,monospace; - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -.arrow { - color: #9CAFD4; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #728DC1; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable caption { - caption-side: top; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -table.classindex -{ - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; -} - -dl { - padding: 0 0 0 0; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ -dl.section { - margin-left: 0px; - padding-left: 0px; -} - -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; -} - -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #FF0000; -} - -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00D000; -} - -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - -dl.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; -} - -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - -dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; -} - -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - -dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; -} - -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - -dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; -} - -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; - text-align:right; - width:52px; -} - -dl.citelist dd { - margin:2px 0 2px 72px; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -span.emoji { - /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html - * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; - */ -} - -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; -} - -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; -} - -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; -} - -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - -/* @group Markdown */ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left -} - -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right -} - -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center -} - -.DocNodeRTL { - text-align: right; - direction: rtl; -} - -.DocNodeLTR { - text-align: left; - direction: ltr; -} - -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; -} - -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; -} - -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; -} -/* @end */ - -u { - text-decoration: underline; -} - diff --git a/docs/html/doxygen.svg b/docs/html/doxygen.svg deleted file mode 100644 index d42dad52d..000000000 --- a/docs/html/doxygen.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js deleted file mode 100644 index 88f2c27e6..000000000 --- a/docs/html/dynsections.js +++ /dev/null @@ -1,128 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - - -AceTime: File List - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
-
[detail level 1234]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  src
  ace_time
  common
 BasicZoneProcessor.h
 CompleteZoneProcessor.h
 DateTuple.h
 Epoch.cpp
 Epoch.h
 EpochConverterHinnant.h
 EpochConverterJulian.h
 ExtendedZoneProcessor.h
 local_date_mutation.h
 LocalDate.cpp
 LocalDate.h
 LocalDateTime.cpp
 LocalDateTime.h
 LocalTime.cpp
 LocalTime.h
 offset_date_time_mutation.hMethods that mutate an OffsetDateTime object
 OffsetDateTime.cpp
 OffsetDateTime.h
 time_offset_mutation.hMethods that mutate a TimeOffset object
 time_period_mutation.hMethods that mutate a TimePeriod object
 TimeOffset.cpp
 TimeOffset.h
 TimePeriod.cpp
 TimePeriod.h
 TimeZone.cpp
 TimeZone.h
 TimeZoneData.h
 Transition.h
 Zone.h
 zoned_date_time_mutation.hMethods that mutate a ZonedDateTime object
 ZonedDateTime.cpp
 ZonedDateTime.h
 ZonedExtra.cpp
 ZonedExtra.h
 ZoneManager.h
 ZoneProcessor.cpp
 ZoneProcessor.h
 ZoneProcessorCache.h
 ZoneRegistrar.h
 ZoneSorterByName.h
 ZoneSorterByOffsetAndName.h
  testingzonedb
 zone_infos.cpp
 zone_infos.h
 zone_policies.cpp
 zone_policies.h
 zone_registry.cpp
 zone_registry.h
  testingzonedbc
 zone_infos.cpp
 zone_infos.h
 zone_policies.cpp
 zone_policies.h
 zone_registry.cpp
 zone_registry.h
  testingzonedbx
 zone_infos.cpp
 zone_infos.h
 zone_policies.cpp
 zone_policies.h
 zone_registry.cpp
 zone_registry.h
  zonedb
 zone_infos.cpp
 zone_infos.h
 zone_policies.cpp
 zone_policies.h
 zone_registry.cpp
 zone_registry.h
  zonedbc
 zone_infos.cpp
 zone_infos.h
 zone_policies.cpp
 zone_policies.h
 zone_registry.cpp
 zone_registry.h
  zonedbx
 zone_infos.cpp
 zone_infos.h
 zone_policies.cpp
 zone_policies.h
 zone_registry.cpp
 zone_registry.h
  zoneinfo
 BrokerCommon.cpp
 BrokerCommon.hHelper functions are used in both Basic brokers and Extended brokers
 compat.cpp
 compat.hMacros and definitions that provide a consistency layer among the various Arduino boards for compatibility
 infos.h
 ZoneInfoHigh.hData structures that encodes the high resolution zoneinfo database persistence format
 ZoneInfoLow.hData structures describe the low resolution zoneinfo persistence format
 ZoneInfoMid.hData structures that describe the mid resolution zoneinfo persistence format
 AceTime.h
-
-
- - - - diff --git a/docs/html/folderclosed.png b/docs/html/folderclosed.png deleted file mode 100644 index bb8ab35edce8e97554e360005ee9fc5bffb36e66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA diff --git a/docs/html/functions.html b/docs/html/functions.html deleted file mode 100644 index 29eb83f49..000000000 --- a/docs/html/functions.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_b.html b/docs/html/functions_b.html deleted file mode 100644 index 38d5884ce..000000000 --- a/docs/html/functions_b.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- b -

-
- - - - diff --git a/docs/html/functions_c.html b/docs/html/functions_c.html deleted file mode 100644 index dcfcf711e..000000000 --- a/docs/html/functions_c.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_d.html b/docs/html/functions_d.html deleted file mode 100644 index 5d38266b5..000000000 --- a/docs/html/functions_d.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- d -

-
- - - - diff --git a/docs/html/functions_e.html b/docs/html/functions_e.html deleted file mode 100644 index e17d15d73..000000000 --- a/docs/html/functions_e.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_f.html b/docs/html/functions_f.html deleted file mode 100644 index 51a2cc648..000000000 --- a/docs/html/functions_f.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- f -

-
- - - - diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html deleted file mode 100644 index c1b359f25..000000000 --- a/docs/html/functions_func.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

-
- - - - diff --git a/docs/html/functions_func_b.html b/docs/html/functions_func_b.html deleted file mode 100644 index 394489d24..000000000 --- a/docs/html/functions_func_b.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- b -

-
- - - - diff --git a/docs/html/functions_func_c.html b/docs/html/functions_func_c.html deleted file mode 100644 index 328fff51e..000000000 --- a/docs/html/functions_func_c.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_func_d.html b/docs/html/functions_func_d.html deleted file mode 100644 index d0d430e74..000000000 --- a/docs/html/functions_func_d.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- d -

-
- - - - diff --git a/docs/html/functions_func_e.html b/docs/html/functions_func_e.html deleted file mode 100644 index f7ea27750..000000000 --- a/docs/html/functions_func_e.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_func_f.html b/docs/html/functions_func_f.html deleted file mode 100644 index 8ad3a03ad..000000000 --- a/docs/html/functions_func_f.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- f -

-
- - - - diff --git a/docs/html/functions_func_g.html b/docs/html/functions_func_g.html deleted file mode 100644 index f94b57d37..000000000 --- a/docs/html/functions_func_g.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_func_h.html b/docs/html/functions_func_h.html deleted file mode 100644 index 1b81d83f0..000000000 --- a/docs/html/functions_func_h.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_func_i.html b/docs/html/functions_func_i.html deleted file mode 100644 index 11fb05751..000000000 --- a/docs/html/functions_func_i.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_func_k.html b/docs/html/functions_func_k.html deleted file mode 100644 index f64fca709..000000000 --- a/docs/html/functions_func_k.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- k -

-
- - - - diff --git a/docs/html/functions_func_l.html b/docs/html/functions_func_l.html deleted file mode 100644 index 49719c9c1..000000000 --- a/docs/html/functions_func_l.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_func_m.html b/docs/html/functions_func_m.html deleted file mode 100644 index 036262b47..000000000 --- a/docs/html/functions_func_m.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_func_n.html b/docs/html/functions_func_n.html deleted file mode 100644 index ceb414131..000000000 --- a/docs/html/functions_func_n.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- n -

-
- - - - diff --git a/docs/html/functions_func_o.html b/docs/html/functions_func_o.html deleted file mode 100644 index 342be7aa5..000000000 --- a/docs/html/functions_func_o.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- o -

-
- - - - diff --git a/docs/html/functions_func_p.html b/docs/html/functions_func_p.html deleted file mode 100644 index d7eadb316..000000000 --- a/docs/html/functions_func_p.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_func_r.html b/docs/html/functions_func_r.html deleted file mode 100644 index c1615498a..000000000 --- a/docs/html/functions_func_r.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- r -

-
- - - - diff --git a/docs/html/functions_func_s.html b/docs/html/functions_func_s.html deleted file mode 100644 index f24c0d12f..000000000 --- a/docs/html/functions_func_s.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_func_t.html b/docs/html/functions_func_t.html deleted file mode 100644 index 9c7a7afa6..000000000 --- a/docs/html/functions_func_t.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- t -

-
- - - - diff --git a/docs/html/functions_func_y.html b/docs/html/functions_func_y.html deleted file mode 100644 index f9aa32f3c..000000000 --- a/docs/html/functions_func_y.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_func_z.html b/docs/html/functions_func_z.html deleted file mode 100644 index a89af10d3..000000000 --- a/docs/html/functions_func_z.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -AceTime: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- z -

-
- - - - diff --git a/docs/html/functions_g.html b/docs/html/functions_g.html deleted file mode 100644 index e39ba31e8..000000000 --- a/docs/html/functions_g.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- g -

-
- - - - diff --git a/docs/html/functions_h.html b/docs/html/functions_h.html deleted file mode 100644 index 2141066eb..000000000 --- a/docs/html/functions_h.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- h -

-
- - - - diff --git a/docs/html/functions_i.html b/docs/html/functions_i.html deleted file mode 100644 index d577a5a65..000000000 --- a/docs/html/functions_i.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_k.html b/docs/html/functions_k.html deleted file mode 100644 index 4e202d922..000000000 --- a/docs/html/functions_k.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- k -

-
- - - - diff --git a/docs/html/functions_l.html b/docs/html/functions_l.html deleted file mode 100644 index 5a0e90b24..000000000 --- a/docs/html/functions_l.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_m.html b/docs/html/functions_m.html deleted file mode 100644 index 03511ec03..000000000 --- a/docs/html/functions_m.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_n.html b/docs/html/functions_n.html deleted file mode 100644 index 15baefb0b..000000000 --- a/docs/html/functions_n.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_o.html b/docs/html/functions_o.html deleted file mode 100644 index 86471c66a..000000000 --- a/docs/html/functions_o.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_p.html b/docs/html/functions_p.html deleted file mode 100644 index 1d1a82c59..000000000 --- a/docs/html/functions_p.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_r.html b/docs/html/functions_r.html deleted file mode 100644 index 2f1397673..000000000 --- a/docs/html/functions_r.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- r -

-
- - - - diff --git a/docs/html/functions_rela.html b/docs/html/functions_rela.html deleted file mode 100644 index a232acb88..000000000 --- a/docs/html/functions_rela.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - -AceTime: Class Members - Related Functions - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_s.html b/docs/html/functions_s.html deleted file mode 100644 index 4c5850c34..000000000 --- a/docs/html/functions_s.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- s -

-
- - - - diff --git a/docs/html/functions_t.html b/docs/html/functions_t.html deleted file mode 100644 index df6e10fdf..000000000 --- a/docs/html/functions_t.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- t -

-
- - - - diff --git a/docs/html/functions_type.html b/docs/html/functions_type.html deleted file mode 100644 index d1da9aeb8..000000000 --- a/docs/html/functions_type.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -AceTime: Class Members - Typedefs - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_u.html b/docs/html/functions_u.html deleted file mode 100644 index de0f7e1f2..000000000 --- a/docs/html/functions_u.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html deleted file mode 100644 index 1a590abf9..000000000 --- a/docs/html/functions_vars.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_b.html b/docs/html/functions_vars_b.html deleted file mode 100644 index e35ba22db..000000000 --- a/docs/html/functions_vars_b.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_c.html b/docs/html/functions_vars_c.html deleted file mode 100644 index ce1e30fe3..000000000 --- a/docs/html/functions_vars_c.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_d.html b/docs/html/functions_vars_d.html deleted file mode 100644 index 3f41bb2b1..000000000 --- a/docs/html/functions_vars_d.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_e.html b/docs/html/functions_vars_e.html deleted file mode 100644 index eaee38d2d..000000000 --- a/docs/html/functions_vars_e.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_f.html b/docs/html/functions_vars_f.html deleted file mode 100644 index 7409eb473..000000000 --- a/docs/html/functions_vars_f.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_i.html b/docs/html/functions_vars_i.html deleted file mode 100644 index 823211618..000000000 --- a/docs/html/functions_vars_i.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_k.html b/docs/html/functions_vars_k.html deleted file mode 100644 index bf7019051..000000000 --- a/docs/html/functions_vars_k.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- k -

-
- - - - diff --git a/docs/html/functions_vars_l.html b/docs/html/functions_vars_l.html deleted file mode 100644 index 6002b9ebd..000000000 --- a/docs/html/functions_vars_l.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_m.html b/docs/html/functions_vars_m.html deleted file mode 100644 index c41f25e19..000000000 --- a/docs/html/functions_vars_m.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_n.html b/docs/html/functions_vars_n.html deleted file mode 100644 index 2ebd506ba..000000000 --- a/docs/html/functions_vars_n.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_o.html b/docs/html/functions_vars_o.html deleted file mode 100644 index 65da96f51..000000000 --- a/docs/html/functions_vars_o.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_p.html b/docs/html/functions_vars_p.html deleted file mode 100644 index b50a99a98..000000000 --- a/docs/html/functions_vars_p.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_r.html b/docs/html/functions_vars_r.html deleted file mode 100644 index 407d6a800..000000000 --- a/docs/html/functions_vars_r.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- r -

-
- - - - diff --git a/docs/html/functions_vars_s.html b/docs/html/functions_vars_s.html deleted file mode 100644 index 0e9bb6bad..000000000 --- a/docs/html/functions_vars_s.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_t.html b/docs/html/functions_vars_t.html deleted file mode 100644 index bf5253ecd..000000000 --- a/docs/html/functions_vars_t.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_u.html b/docs/html/functions_vars_u.html deleted file mode 100644 index 324b6738f..000000000 --- a/docs/html/functions_vars_u.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_vars_y.html b/docs/html/functions_vars_y.html deleted file mode 100644 index 65a2f6c8a..000000000 --- a/docs/html/functions_vars_y.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- y -

-
- - - - diff --git a/docs/html/functions_vars_z.html b/docs/html/functions_vars_z.html deleted file mode 100644 index f1bdc339e..000000000 --- a/docs/html/functions_vars_z.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -AceTime: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- - - - - - diff --git a/docs/html/functions_y.html b/docs/html/functions_y.html deleted file mode 100644 index 86c4fc32c..000000000 --- a/docs/html/functions_y.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- y -

-
- - - - diff --git a/docs/html/functions_z.html b/docs/html/functions_z.html deleted file mode 100644 index 266fa7d88..000000000 --- a/docs/html/functions_z.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - -AceTime: Class Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- z -

-
- - - - diff --git a/docs/html/globals.html b/docs/html/globals.html deleted file mode 100644 index fab6af821..000000000 --- a/docs/html/globals.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - -AceTime: File Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented file members with links to the documentation:
-
- - - - diff --git a/docs/html/globals_defs.html b/docs/html/globals_defs.html deleted file mode 100644 index a6a74b43e..000000000 --- a/docs/html/globals_defs.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - -AceTime: File Members - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/docs/html/graph_legend.html b/docs/html/graph_legend.html deleted file mode 100644 index 7518151cd..000000000 --- a/docs/html/graph_legend.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -AceTime: Graph Legend - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Graph Legend
-
-
-

This page explains how to interpret the graphs that are generated by doxygen.

-

Consider the following example:

/*! Invisible class because of truncation */
-
class Invisible { };
-
-
/*! Truncated class, inheritance relation is hidden */
-
class Truncated : public Invisible { };
-
-
/* Class not documented with doxygen comments */
-
class Undocumented { };
-
-
/*! Class that is inherited using public inheritance */
-
class PublicBase : public Truncated { };
-
-
/*! A template class */
-
template<class T> class Templ { };
-
-
/*! Class that is inherited using protected inheritance */
-
class ProtectedBase { };
-
-
/*! Class that is inherited using private inheritance */
-
class PrivateBase { };
-
-
/*! Class that is used by the Inherited class */
-
class Used { };
-
-
/*! Super class that inherits a number of other classes */
-
class Inherited : public PublicBase,
-
protected ProtectedBase,
-
private PrivateBase,
-
public Undocumented,
-
public Templ<int>
-
{
-
private:
-
Used *m_usedClass;
-
};
-

This will result in the following graph:

-

The boxes in the above graph have the following meaning:

-
    -
  • -A filled gray box represents the struct or class for which the graph is generated.
  • -
  • -A box with a black border denotes a documented struct or class.
  • -
  • -A box with a gray border denotes an undocumented struct or class.
  • -
  • -A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • -
-

The arrows have the following meaning:

-
    -
  • -A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • -
  • -A dark green arrow is used for protected inheritance.
  • -
  • -A dark red arrow is used for private inheritance.
  • -
  • -A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • -
  • -A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • -
-
- - - - diff --git a/docs/html/graph_legend.md5 b/docs/html/graph_legend.md5 deleted file mode 100644 index 8fcdccd1b..000000000 --- a/docs/html/graph_legend.md5 +++ /dev/null @@ -1 +0,0 @@ -f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file diff --git a/docs/html/graph_legend.png b/docs/html/graph_legend.png deleted file mode 100644 index 7e2cbcfb2d143e382be6ed65635a3d859e53bc36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20615 zcmbTe1z449w>CPFmQHCTM5Vh!Bt=3}q&ua%LApUYq`SKtX(>tR?v(EH%=LYH@Bf^= z|NlDYtmP#WSo59F`#$3tN2?gyjQ>Y9e?; z)aq4~lqPv;#Vl&?N;Q8M71U0D!L@m*tiFHSh)64fTWN;Uk2;9`2UGHIi`S>DezH|+ zYp=4QA#0VRRF~}ym!od|Fc!@BNECjU@Av4UMjhb53-Db5pHvYt^oK~MFaPURI8i=k zsE>Mm^2=C!la+TJ3#t2Wz<(Si{u)2jCiE|2+<2wF1UDa_9jSP=ik*VTK0dRDD~{jq zXYg>4i98!pcyPtvJC=)0{=2b41z~R$^IkGDN9{8w*Cxm8u_{sL*ql0RNW24=d_#&y zxV|)5sMv^}DVD)G^{-X2W4`(yU!lc*|Ne|DGB7L*wM+!MYDp>^TidQQ0k;Np-vX@v zynzgHnWE5;kdF1!qWkn4xqE)Tx$FAYvrM^IMR)gi zZiB~NU6s%?Q&E|@`|gnu^mLC)!T@yA=OQ8^Bs{ioTU%QV&Zk*=M3t(jVA&-l^gaCA z?x*kpXv7GapMtoS-Ep=@(?3h6$Hc(O$;qjH`I70dKdsv0%<}i_3FMOt<=T<4vADmI*bu9YM^&i%z~8-#%}zGA=cYe1iBR;q^WPUPz!%vMUu$(6GQOin6&U1}kGxV`WV4MnM{ zsXl{-`-|PM3O=G z7@t86?(^pv+cOlnXXl6WFUZ|bU}V$yzii$G_2{K?+dOl-Jn)H&!}EJj;dy^5!SC`H z4uf3qXUuCk>-Ao=ugh(uy}i8^m6e^h7yJ9IjLiFpBOoBq8A;{o z9~$zFjKr9$G4*BCY|^gwvsPMnlozSY-raazpz1qC6gs;cS?e1C=X{JFxO{;VM@;YhkrWTV}7*W4UYQc}`v zr9PrcxmIb-74^l;#)pgjQt1J&xD1Ap_xRj)@;h;Sd0i`+o9<2;9zBcKNRF4YHDho;be~5 zw0gySS!)M}p8K1#)9X`x17ldv1 zg(*?b{or-z0_Sn{=qRF~;0-P=?n`=lRB+(@L@9m3!_g4Xi2OE(5~u_ONGmHVuQy`k zh#Wkisdpn6L>d~%N9Y>Oj%baIjk6WHus`)!Xk=4W*WFuPFQ9t@V!jf@8uhDJ6fa+9 z2v@e49WS-Mp{M@|-iJv_8eZOZThyiLkmbrPSJc|t8XX-C1H!POsY&m5&IgC&<>h7a zR=2C(0{Ltm3ybiR6YG|XY4wVlnxBzEk3mUn#_!+Y>TM3j;l)3k_K~k2{HY$Bno?GJ zIypNNskdBYHu^;XB68gqL(sdqnXjg{76t+X0|Pw|;LbpXWicK}?frrUEmnm}V7qSB zYD};M?+)1PcgA24G01*`L@~rcRfwEE+82aHRRL-b?;>u=KyNtl>3(^;-b#m0c%5{X zJHLveenz&0&+Y`wt2#onXlMSHFCivBvH8K3gNnFa&)?+9rI$@|_Mzz-8wXAmf9@V0 z4&VP2YY7ewMCvXXD;Ig=UX}w|36UuFBEFk}FW@y%5E-u=G}q(5rlkC~k15F};`BdM z`Tr`HMsZ3B0=mJ_tK`Tt6V6~^a*UUJ-y0j__Ve$V;-`RKRMLX~HX7Spfv&dvv2*<` zOIYt|{5_mvIBJt1XLRJceA3x#2kYhffws0LPYPkG#U`Jy!9K1*_CC#gs%RFDt#{lM?ZOyeitQ+=q0J% zO}BMmd*Z$|QI39JgtepN7H`-VeZ^Lenv6!b^DfVP%aNh`oEi;#F?vWBjzv zNtX3DSxkW;TGHn709G=W75qu%!3pl_(ktu!=h98Ct_V?^32j@*-VMGBy&_6l)sjU| zSM7*Vl2W){AE^~I8Zx#7o{d}5H4IsS)>O8wQ9Gi^ud zjZc z5#l`~b;e3~a`5b>%LqWG7lj@Q9tX2OXwyI95J)ORu^6TT;&=O(n`TpT^3uH1Ijfi# znbRK}%*@c=zt^LPQKqkDNEpJx{tNf^?H>|Rap)UrV=+Ii(p-E*4LUO)GzlV--_N<- z7;xLz|dXm1vt1{~l!KiLya?gUMwfEy_^fpg>AMfRI$8=eEbn zN+_bEqlzOA&48G-ap_0~OE8}tEMZJymxgIJILuO%`udDlR=e|+J(J)dy#$Yse1xZ` zgfcG({<*wjmo8+A8XwXjRe+3C7>h6iGx_<`Cw5+Y=5HF0w%bg!v>uSKh=@Erg7i@l z@C$l|c@CE_@CcFQsR%p0)4ts3zH;$?hq%)Ioi%PFmJ?>2&1&vCNNSx$WwBN3qRRQy z6VfsA!;U8c`W}kmE($VcZpaRM_`YP28H&>U7WqFv_bYh*pNHyyfz$u5epd8bAMNEq zuLG_qTEStrHuO2Xj~%fTfF4HS|8{(1`vG17Wqy?xHOnAY2?u%r-^g2AGxPKFn+bS4 zJw8-gEemeKi^hKYS5}B}jT+i)u;0aASX^8^JY38yaO# z(;G&Jgn`l5;&KKs_sYhG(k?3iw*LblY#@)FME*Cp=a7_<>Dd}i886osYG`P9Nk@kg zh)(+c>sR`=yCXgThNnzjJUu;C+dTyo6cm_^M@W992@r>|K#}$3<>kr61-w3LXJ=>J z$a1x@-1YVKJ9>P50JMUFgM9$N6{W;-Je>0{DJki_p3OmjQwT)`NQHw`Rxh{7OTJVi zXlZFx)Ygic?@sVCNxa0=nJkcp zRtT^_wR+3&p3oQi0LWZ~giezG`;L@@RZ$GYy5{GJQ#dW&i;BY0)6-WN3}C~-!~3wP zl=l$*uP|r7g(OKj;B0$T|7fAHqOMNd$cP3k#0RAL89GJW0*CWr``a1Dp>-Bx|L^S}1x}c^pb8+=m84f|~9zZqVlXXwmdH`xv z&h8O03;cI5@a{|%zi0u4Gchp;Aa1I+Z;?TP3$JrmR8$ld7k^J1r@}M5)aoX$su~1x zE(I?yk+#PL9>5&L3JTtcwurPn@I5 zLW7NdcH3)H?thK^mAIP8bZY2Vy z<2vv2EQA7?f6ASt^1-wnDU3Xhef~dD>lcNP^{@E-|Nbh6HnPPh)vF=mTLH|!7g~f} ziQgZx0sX*##|=e}&;RdNg;J3m-W9|%@|YYMoeq$HQU&eM|L$o2-eB_~!O_HQ}7#|mpe&mDiuc5G61Cz3Qc(#PLR;O5W)FeZz~ z?KurfNDD3|W=2gYjm6B?Zf$q{_}F7sa%^qu1UM=?<5aoyDFyLl0jBf4**_3QYmBx>q%U;X8k?2(+SUtNl zKN&TbAyn+Hrn_tS8 zaw6G-T?S^EW!oHcucbHw?WD373op;l;q*}l1_mnX>-zxKj*gF?Rt>d^s+tW634yZB zuZvB1fE8@=(${7T&MPN@4<&b4)HZR$`E3vW=^#+NPvLiA#iv)zxK^i)vnAEb-LT~W zWDd^B$;sKxjceDfT&?!`#{|Zn!}fKb2;76m+HXQrIoa;fFZrd!M7gp{l-Iv}vRhKByrrRw@1>-3L~ zmNTaZ1Rwx100;!){lnFA$m;)7)le@JJO*z7?}PX7@CXv6TxfOs%)-dTgprn(R#8#$ zu2`jXWp6LU&(DvyjAQEaAIIA2>Tct7kAO^(z^<_|Oo<2*VKp_PCAVV%fZDr3y0qIK z5d+!uzt<(Wj4cP%sms#izkr$}eE$3yR57Uh(HB8l{MT+mP*JFMQCmwOzTRR!pv~hh zUR_p0g9Ppw3`nyuO6^Pg%|b09bx!NmU;!_*-FZ;t0>HxYGKS{3;!&Q!4#kSzDJVJ^(jo00Tyu7^ly&g$~9?oO*NFY!RXMB9T!S#X`P`B|?buQ^t?#iBf`}=vT_SL)N zb_o>~e4}59KBg0S6nuQdSXfvMcH8LRzkg>2Yk_n`Q%UGpSz%~vYcuy^l8~VO=QaWU zgAUmH&!0b6%G)1{E{(b7jEQFU?}mzvhLiol!T{5K&jKV352zwR&%p3s+f;9ReRHD= zDBz7YRhC;N-+# z_P8PifMf4GX|GAHr3`3rC#R=AfX{$~kBNf=%g4tD0{mdEws=8iaH}M9TRoTj;{gY# zy(Ql}r-*<^a&~@h5XKV!&_p`64Ct9B8+I-a4*!!S|eh`0xQ0;&!?Q4}Pew zu6{Z2Iz3k12ypg4BR}{E^}~30d8m>*c4>!EMy`^Vmt?IHjOsC@E`NASi6T_1ENp<&p3Z~=PvuAtka++`S zo9E`{s;t@{R9GH>jzj>#fAJ!p;BuuC7QtJ<<2IJ1H?g%<;Oyc;Ijr22bh^f4zo{iL zkpRIvH!qL2SG&bI8b)V#cQ<6Tbni~uqs~~9z2~t@wMX9#s7qgaLh!;^dO>EYuBgy? ze0)@H+b-V!QQ35iVQ5o-e)uCfd9X~QQ6b+29E90Xp(hR9hTz~2jTUC+=0lv83kBDF zY-}+wI(n52z3Y{Ec2Y9ifpZ#eK-bA3@Y)>2>s>!p)zV7Sn+2e676>Rq!`h3NB}Zqh zd8u|P7MhK=xeK;L>K^6#;Kq!A{;Lx<;kn7|JOXQ&W6CnsYdRXE)8mopWY z-HBS{=I2-2toO1&4ys25i_h){NBH)d?&ne!iEP^}O7shp&rZk1n-yCPhwx9F`Ju7^ zP*?#z64KGrQ`o;LEiI+HXTT3NPh}DmBzxuq;pF60mQ|eAQlN=h9f)}?DJ9hf4mjRA zkY}Or7$|byed|ExRXkl%QBmP`zh)M^-Jv=^UM2?svhU&U3MTfE9Sve+WE6sq53a|< z!xNHTJf$f!Uke1DkQop)V`F2V7L?(D(B@nsHPmMCu|1)Bb#-DYRw{NIF#p+ z=ebwau4DuRW^U(`mm#5{fO8re7#ivVWhLZvs`P4b($Qn$vW!ngMh0lIN(5RO8mJ5m zrMBH#0!u&=gMs+_`*V;*a{N%-bM-8czPmicD|fKB&&bb5^zeAF?FPCM%%rEA%7qKv zgz9$5R#x491LJ(DwB}z_P<6h})gXiH0P=pv_g5b=adDN({(RP)G)ymukf!MdS(e4= zNCT>Hv9aMmmD#y^gXv-&ONSZLH zBAx{9GBG7(=DICDK0X9RSLWJX5MWvsyDgBeY@WT_mE&hK9{HJ|?HLS?E|9>XnwN$| zFxcr;pa>(Oq4iYgcCW0hef#$982|v@quW$eRM{H&K!OI^&S!o8y^N;A=Ma7}xzi?q zo1>(1C8ed6P(y=*<-=g5>N|_g)B-symYWzyK@qsQx!Jtz+?&fC7gXeO_@hmGb~$e) zA|Zj8FZ-hlR3B!b_4mLRaPGI3-F5GqxXq;1)^dQ;JcKsX-`^4Xf{B)zNx5*>xnwt0 zVd5r}b0)3HBT>@0f#2w&z<_K5s0|E^GA^IJOfD#lDmw%Y0Cpt(Tv<& ze}J+8nR~OxOhg;(W@VfMUt2CWz>TH5FE@bE||DBVAUaVVlC zi7I+0W55#v8My+ep!{x^s37W9EA`+3JB0{%%zj1Qq590`pV?WR zu?%5VAj1Ein7|??4wVzU$r&6Ky_23;JG)6_Ge)noTnt(7i%e)%*O+ic+-nnRiKufr zWKgYuAfl6WfU^q3+sK?8YWgo#Z~|_Ze%aajrSb9;r>YY?xp`+I7G(ks;{@}Hf41oz z@_*^)wYi9wYqhQ%9)^P+#lcc5F<2uK5|YU$`f^w3cKkQerCi$HQWW~{%o3ts_~E-5 zI3@-L1|7eCp#m(m={dqsZ8A>je)-3EXDkyIos1va@kqFH$>#;RbZ4=dOFWzi-rU?A z^o`a_>z5S5nC?EPy~OMoAIAcH0B-voOz+=(i$agrR6w>y2K+LP?sI&oReux(wAlb2 zo-crB;3OadhUxF)1LOUB1aYy+p&O{sI$ytrVF+GBj*gDTrl&3YX%*E$Era5nbU_bj zMF(XIRN=S1UiYVc+-{fjAVJ`@rkbk-PFXD9(lY_M)5XOFv?6?={yXF=mFg2*~6~B++|JccZYh~mztz5^jqy3vNO2X54pk`za2P#npmiP(BGlmZMFgTQyl)lx}EF{1F=Vl6D zx6xo2MFgxUJ7g!p*uM2G5k+?iCb1=ijU4rj&xFjUmwY=)WH;HXO;w6HQY!ZT_Dv57 z?mad2#_C#+g!3amMpDvEe}8|^*|rP#BBG{-{(HhMI!+l9EE>Y1@2Y>ibi=`vim6aq zFp)p*GWq6&W5<40gSppwOPabjY!_CreRJUzl_()EI_vwj;R7|cvJC>Z_jrD#&#{u+dO6OSU2?@ zoq>zYhZodFb>>}lay&YZ&5lsge!@~YKuF&Set+bm$Z6JpB%E{{M{vkRq ziiClUsDTaTkv;-ulTVA^&F0F&nP^@kEc<%}J~M^sfQ7^K9$okK5gyryst%d|V- z2OnECMmh*!@2nI=L}chS=V0^laEM+V#g|m|rL{XNAe|m+1X*pb{8{Ah57`{EDD~-j z5x0!DhU`5(%}da>^jsXDH)NGzljtuknSR(_j`f?@`AGZI55XdV-#WL?q=>I)GGvH7 z_?=H=LK{L0_Q-_X!gPrPS6!CuV*AaU5@JTz_066NxvO@9zGqX_Zt@u*rS<*vX2N{8 zJWG(xW%12F6lF#?TJ1SXX!l@TAQt%(32PF`?JckK`Hs4YSzTBN?4H?pmIp{+!nIt{ zTDh5>fw_i!aB%cKg{E|`Bxb4%_!&F0JM4pe?V{4vo{>_aCGrq4iAWX1WiTs-9Kazr$(cnuJuLan_XrYPw&FEKSfR9DCNn$X$A2uiA>!Yuo$%f- zW3;~R2*cic8v9{}_dP~2$YEbr#cd{ebX!C*1_K=K2-0~_Ss4lV8&JS;d#A*RF+?!e{H_)}XRP0jhm>GX_t_IB)B z5;5^2+tn_S5;Z*UgM()Pa$23-+#L@wTk9A{P*OQiU_W@z&e|&_gq+;)w>&s9-QVt$ zn3yXDuH8m$^k*=XJiU-96h&{RxRQ5u(cj@MV?glyiY_B?`}a2Fom7$XSWjr=%BBMW z505_{BR&L}9E|&i8GeQn%QtumJg18*;JCO@6!FJ%96uu?5;2Lv zoE!uF!?|}F4JSzaWV8$JCKJ7ot7EUyodX%A&%(k$CPoLS0xN2Wu3dk49p-GSQD?Eq zsqp(pQps1gIpP~sJnV=A6pj5d@g0YH>J~DAVKXW=q zk7**v&_r}~ks&Ip2nxHV(SdPv%e_FQZbVW%YzboccC8}Yh#p|kv_m^5=0uFmY<%d%qORn26uJzYUTFg z%|Zi~KO)9YOeE)>@orQ~`Oggv_Ws$~95ppN#_WbVVV!gxDC$gB3|C;0?{Lz?Zs4-Y zD8Du~z~_^v2FSP(I|uPs%o?(&?T&MKF&e(6(YxyK**sQi59r%oN8{rQJ3SRn8JTR! zC=?Z?20i8Opb)9jO17&cHm!>4{Yla2=(+C$8x8I^ESCq35g8dKiHS%o=J7ZSi-`IU zw`|<5>`Kw92`W!3y8F{#61gkM`=W~@aV(!+9-Ff8qB8p>WmE8?W4~X{F;r$Ev2wS)#}U&jr5Jnn-3fb%*%cOo8As%=U3UMiRoD%LG0TK5jUdS>MN^97 zHtPZYVaL1`)!}%y*}T&;Z>{+{>vnr&*TZ=(c>{*emX=r=np{-8ytTci!@tz1=nsa7 z@~LEAGcdgH@yVR6Kc-0&80yLp)?C@z3aiw=dy~Aw?|P0)C4LW=Q6rKCLZbbFlUyXw zah=t^RxwKc*&-(qS`)Dhk>7VShriqDSD=!;s4+Jl%h;r*=I;w926yu9TUPYqBD{s1tsEug!RO@wB zS=`|@?izk`n&>$>9{s#HZY!=qMuMDhu^*a=voTu6ATa>TT)aKkErddQ6PM5BguJ-=!lg!PF`Etv?rHoe06Zk|H9RvGTzI5BzGfem*>XC3;qx3}v0$Eyj z?WboVpA)9*Wr;^E38+3@U2FK7wX}!F?x|Y1XoaE?oIf0Nk2K~wPr}=7F-_#RO*r0t z;3(9Rmq(_giowLk58R*0#w59id-bZycJnR()dlB$rkS9n`l8_rBmL!4k4g3%~o%o~RhlBL|;5zxs{dsn+V zL4EAn8E;($=epCkdF;glEi;eE+%mi*`hd@33s=WX#>J$xyn+nT*3B9JLKEJZc3&U2 zs95eh2?<4c^7+nAB3W6^^ZpfarD=A9(Qtt=OcR}6Z^9FzU4KifPjWZCwg$hc6VH#r zDYV^T+QfHXh!%=|>&BsZ#~8EP8uL1{@MHT3dt3`YGRQyOW1kTFA{Z27VGYAN`?mQ( zhOoZBMkJB=<36y7%4H?qz5K)p+*qQ`jsegh-x?*Cjzleg{{>Ox^pJ!fZP=e$0s&T$ zp`|(-#cyj)BTypN_q*Be1_ebsOd_ICVy-M};JM)UNCwRbi}QVnI58siFB6#QD1wrM z(ph;F;RP?LU|kPsFRMneLTz-;O;pi{11i<)Z85(LbrW=FiQQr0U9tE`4|(Oz!% z54_ExF_DT&OAF1G5Lw-JLeV=#K_$~rL$~^sC^$Bj!Pyq);!I5%8JU}~ucJE6*%bFm zz`HaFB#bvR#c^UF!@pNiftjmi^RBit7EAex5<2*iK6=ij*0jH;@5T634qbd(EiRd_ zKt_4#sDtyc>_P5F?$x7+XrX&=K}$=Gz=;Ek1!r{idaa-1*&kPTBn?qh-WwQT-#=JU zF*BorwlaZG8xudjMnRPn1HWLrPbxLC1M}A;(EOCiFR79=F(Cnm%lcwZ2t>iR;9yL2 z^l8lCCcW#EqjNhwSW#-Rm6_u9E}>a+qGxCg81{XERDyoWd~{_Z<|>w!v)*Ico}IsN zUY`W~Ae~udSAW6C|Fgx#?X(+15$N;p%DPRb|Nf;0LTU5K1zOj7pB&!i35{G`U>T!8 z90r7%M*+7rs;mFo5qFFf2(SjKxWUt%@u9yS|H5hU#q?`yzvEoL&xoi9<6kZ>Mapb* z3E#h$mJuN$j2W_VKhiL`Kf^Fe=R<6*J2(HR9~v&xH(M!4z)|#~?yF1WzIAeGVj?>n zoZni9k2-MloLtVgR#<1E++O7~tr?P{4w;GP3(=+ta-nmi}vb&eF+8!6H5k3yj) zfaEi1S>bkV11=?ezyIIhL!D%1(a!L=LVghL1gDB(_Wxr zphw;iAG+;!FZ_w(CHUTy0Ul9gO^t@1AActlR=Zx12lX%kJs952?W34sv{vh{&h3ew zOy1qb-Rr|Gt65J&zMo7#3Fh7C`6Zn7oaP%_0RzQK(v|Fg4WMNt3L#YgE=kESsaRB0m7>7Z(5Qbft+*{=RLiQVLRF3eGhfX zWwmLQ(qrS|hQDC?JDwLVcyP$D3N|ddfDW+ueuqTbk2DFZzkJ#7k^|^*8T``lYxT=R z&&;P+(uE#7N)+?Q>QHLyOUn0Wo_b2YG*?(IivCLB0{*l~HCb5-0BgIKT4$o8PDng% z?SFoQr);^iY{$Ra*Af;-{_blR?My{Hkl9Gk*!eu~GC(6xESX%Y=)>8m*>{h_IU$fA zzExIIkdRuu#CGUWw{kF#b}}+sw_MXaXsN5#n23s_`V7d308a&{K~E1izYS%`+20k% zTlN~%owo@Naj~(%7*XNC62sVyg&T#W?kT%pWp!YrHTkS6f zCo7B$ZHgoNzilU0+$LVMYuvyOFnupHl_cE|^az2?mdKu1>9k&K`vD$@lxG{>K zgM=0?1~L?g)ps;8*>=V_Vv5leB2B_?a?syGK2g$jl3zV`ly)G#QOp`(&-VovATR;hf(JyP!`MTlyKk^@ZP~}8Err5{g_A`T|RwiPm6!&T> zGc)u0sQDQ1Ss7r?%>XU&L=JO&sKZ-RQxouB4B%OUyb~8Evs{jlXMgcQ+8td}li~bW zTkVTM2ZRpb>+v<->z1Mt)Bd`l`4jg2!YtGNpd+dVbeUS_fSAx1R6O*k)uTUreS(o^ zunJ2+r94@3<2#-Dj02k0KrEwW;NU=Pe(T^bKe>TYMI=fSb^}`MU}FLhK<~BOl0LZyZpZD#osf~)EyezV3mR~~@Xgm9QZ{=D zMGtJ+mUVCV<%o7g1dtl~PGjhuK=zxoBy*WZs{Hx&O+{|9fWUaOneNZZ3DQ+(oe>V8G66r=vZN}^<4 zu{Jj!H}7}N2imlr)L{evq*qfT#-LT%($X@!(&?Mj)+V^W)XIl~j&4NE`4!mMjile; zR{5j6038mMV(wqRe$9e!aJ^o?dIkE6z-9)Tqjg{Zbb;=6Qd$}rF~2i23I@h!>6Da| zA!w7B*J1A`Xr0XRfwTyW3V7>4dmmhK*(NnIG3jq|IvxSd=Uzy~`MEt!!cY=$s;gHS ze5gJBk4EvM=k^aL0to1mCW7DHZKYTZYUUS();HPYOh+gv$Vf8$>@%)_MYOCG3%#tg zTog3S%OkH6^k~z8J_khf1wCYB;I8Qp<~wzorEC|IHV#HNKb}e}z41W%=$zK!ph~;y zV$VMRyOyr`uh&zb!yDTCii*V6hf4%b_v^@#jCasrdCk`xMapd*ibmR$mXz$-FCISE zk51Ci^BhHeo|jz^DS##N?y_FvFKrR75Sdd8CwTwW_fkf}YVI(7;dyX1<}35hLI+ z(et>wRHi;2Vy+_M(2J>~A1`~M}#wsf0EQ%8tNih>#2fi5he|%u; zXRD3BXaxSrQK(X!y{+C)x{=tDu8{1|sBfx5iDaDQ*Jr!Bjue`eBjv3K^zqRM%u-nL z@)Fu#dQikCUuJC&Q`vlc5WO6ifce$Cr9YiJL*st&8B&2VO zLHv}!0GbtbrV}(h%V3&Dm!B+hb93`;05JcDmTETFsSFh}7DoIpE&zAKiC3@N7aUoW z!jS#n;}a4NfWa98NPKc~5rNm~nwXe^$Hks9g7+&L8Wmz~0J#@RyA&CGG!ub z3+3%vorQ{5HY*+PRaHObMy~0-eY|RKUp@9B=CTy+?CmAc(y{{Hc|vjVJ#Ew1SEelA zMQmR}!PA(Aq^-di*R)@>Kj++)$^Gce|1>ay&>jiKX~5V~Sft=B5-^kPOypxgy-w!l zp$!e(5HJPx#s3DJJqq0CndRje`uh4k*2F0Zau^JEQ2*A>Y~>{eGni%hi2-0Z2-1!1 zZCD6!MJegGOodZ9hqwWLGtd->V9_> zrk>3>!(!GpeFGl=9&%4^|4~8WKp-^OkfP_Wt+QF5=rE&`ql*JIM?CT<+}ryVkZeCz z7a*tG(;?P#QB&{%hQgZDZ33=D2kJHRn=O!(L;dej2(CtQAq9PYS*l(<22#Km^OJZceIdYF%JbLsnL{ zHiUzN0}tAJKW=}D0Jf*@jt+==-PcZF3^EJ*4CbxoY;rD>mz95DM(pmIzCHQ``_9Nn z&~hnE9F%*g?8Vfs@ht!Wz!AaMuTzXZfBCu8Mdo?-aI(HZUiozCdGEe!{I#h9`S{Y~ zMW_aTZDJ7x5Y5BpD`64EBYVHd$+a{)F^!>q&ufyB_4Il5@qT5`EbwZXd=NB!qJ{{; z2lb{2%-Ec+Q4tWMu-N6{03L~|IH95uI8%Ts&8~Z+LYK>gB}Z@rl1ZJcC*hFD}67 z+>`}X10!Fj3-@o4jW4OD!yN;Qe+P?zsrvohRd$r`rNfLm+A0OI{KuTvN zPKiwMFpRD$q8Jh4W^?wwP@joBY^jUE!+l{*sum-Oj-sDJPp{g~)NV~G6+=f$tD7xh zWzZe)(Es;LU90bBO$`aCG-8}O9W$VYh03JV{rJJ}5*ZgeS@zt&Xy8M9MFSmE19~>J z;}5#0LuRbNdTs>VN1J(HDs*6g^QmO&FBqZf0?zG;i3xo$3#2z+Z}qvR5Li}!&CjPe z94#d6?(MNc-@o<~xu*rVT)tlHP5qjiOWxhzX9LaP%RX|iH@%@fdYr&*CROYei;Rq{ z3wpfz7IQVaAZSaRj+da9!o!VCW7D=$d;k-UEI2qgdAYegsi~>6f#jb3B&4K-`XzJD z=C}0F3i!k9J$F1n^IVp(oOsC3LwZAB+?dQyLtqgd10ze3=;3nC&?o_C2_LV$37HUHzCpgu)8WIct0^7pUsmQ$ z%lFk*M7F&XI5r84orecs2&OV|zBkRa-VwDu-pXCyF#N30U2H^`*aZ^M3D96y_T6BC zLt7+WkQ6HS48$B}78mz8I6M695JE$qsfr>>!e}fx@1)xr31GIvT|?u$`1)Ho2pf>| zAX>N9DoII6`jF7vP1?{PQO)t9I9Df{xAFMvqd`KIyInMJeF)v)oPqAYosmNJg$!u!<&_L((0L)jm1x(+B1bYXHoOc6OAmZx*|vsVJhP z3<+2pIEc$H&fN&2m*Ccbk z{7v!+tdjTbKfRIMf8W36W!wgG^VvH%T}grtPo-h_*QsK|=))@&k*^VVWTaEx>) zkRi~;+zu!j>`Z$4t3r)V8Sj%3c4%||w=cf4LkxM}^uq747qb)}A<7*E8;_~n0 z(MJc11eV-Jv8s)Ditk@6W_^9Tp@7g@mkjkL+X;grut(1%_s#7J8+Y@Lj2~0v^yU*$G2pzTNgAYH~Q#CUa;~da**fqRHa3K5XU=mKb<@MA}j)Jdq-W$Hd z;lT^U601wGLu3pL@pNV@j=*f3{I0FDEun~! z5(TJ=(Im;f#!i37%=1`CS|_h$c`0ZEz|cT)%=x(n9HP)oxxi(+q|~4v2-n-IdcV+* zri%X}@WosH?X1{^aIdLkIfwEnX4>!2ovx00ehEGKeK=kM@o%D1`n)5FEqb^}U+)VK zzt__|w;c`k;T)mPU@VNa6FD4P^|VId=fZDc*gsQ;MQtS+6^=HA)u;nOX$ITKY{x1Z z_!uz8YND0PkGu+<5N9_w{AbsILJ}Su`;~yeB-=_GMeO@xbA99BlBS#Hmx-uuioo&d z42A{7rgh&{@{W=?*Ch*mR>FwkwD4cA<(Tglcy{VkhBrzW-94;;pIcUESr7wEGx&mO zGkP$4B@r2*JDRpHDeWEsb`%hsZ{yi+#qJh2VSVu2&HMFW*zBJw}1 z-sQ_bgb&&l3l7Gb$yE738TaxfJtT$kYu7{0T}6FGU&tyQGiVI4!|zSN?Eh(X<7PF* zPE{%Ku1id^0F>?=SY*geBQT!Rm69{*R(OBUs?xR3614>b!2* znMSP{5q71Q5TnN<59r`v6zc+wJzo|W6F_T*FHLB)dv`($^Z8V9>0JyML$RgCMZ{PV z2VGY2@I81gE@P0C8qv}I1Y=V}St#`jx#Nv2ZaD-G9EL<5qOJvbq|i+9v9V0`alZlx z)LIiq_YXdEZycm_7sL>7Yx_s)L$k1$YWjG|zW>%yb6L5}G-w8ii5o;Wsap6*sYY<3 z-8S|sA}Jk5Sn1~B&WS%efsYl#$y)no5pvMs zKoNat9|I~-3@AxIm(27CCt@~0VP(?UG zH4I2a-Db1QVT(<1`_@HxWMq*8FkaGiXQ@3T&xrC$gq0xp^Huv{$ zTNc-I@$+59ITm?5^K{UqTLp8Cv(?+YSy>8W`EnA_2eUT`BQy8)txzq&+RE<{f6$bF z<4WN#YYxmG1YKK)oD~E`O+S2)DQd-`VSO5>jE{^KE~2VRQl|BQ*w`q>%z_0b&4@rt z8kKyBG%v4|JGi_c2T9_Xq$l9XqQiFsk@gS!##R6t(#?(WFK$Ov(%Y+T-c(y?bOTuf z7^!Tweo4jcC#tHTAJ0}=Bf;?lsZj`Mkp#d1Zt_=E>nHx|RbeF52NwJT=GTwM_EtBv zkS48l$fIT_ye^*T7tF?jx4JFNjdh4+gW6{PgD80jPWULop;xAcY5xe}WeRAiLTYYj*=G^JNEj0Rc zv-pQlVDN|CxTr6x2nQCSmW0HM=P1Wz$3p{eh1Jz1%7-a^e2#$gkJZ&mKtkjoaGr{n znaF&rw9_QGf(yp1sVS;W58f;!5a`ey*1IdS}um1l$7^i{Eb3GpD5$6J1j}wmu~5=u59z7Ib5hyq6Y2^ z3>IK&@yG}(w~B;vd~ukP%{T&hZ$u@jdr?GkIdW&6jL0vI4<%xnkUx4PtXn9Jf zXJ1&CPv5$d0OKd;$Ow{<^B6T_K=jZVkbi{_=IfuKym)@qysM(777kE#PF|XbzCPXi z_bp*n=yJ+)MT;*;8-~&1>+)*h1B1dMGLwV+W@Za|dqTY~)s~HoXu1^T7B!cRONJ>I zvnh_#UC9TZ=Q^?*G%njFVz78x7ctU{nyC`Bd@k)uZQ#yMUsm*dOjoTkz?d#^K_})4 zK$@2LoPc0FswJ+VK;wCx3A!>=n1nnibSiM5B^4|@^0mx#CSYf90fBw-YoMwg!t3 zC#(DsqqFk$v>@ zV2KMt;14jPB${oSxpJ_=9~frvQCoDYmVDPi9Y#{PT%7L~5x^a0-BH9-T;aH+7WSRs zXxCK4@D;kBUkAra2nr51s-vu&sp&QraY{(5o3^m(>;!_)@!w5i;Gs>o+4+PHW-(8@ zP~@m+w!S#KMocw2+FdL*?u4Wwu+P+V>-iDVFp$7M&HT6+6TlMaB`69uu{O1^kkHb4 zYisv0Dn&iSZo4e2x*7%NHLr<;*w)C!*u3Rt@zm!^Av+;#Hk|Q=>9E|kkCktoaawv^ zcXJpKZc8bCmpNb02pop~4|Er914~B9L12{slQc;DNs``Ocx5MH zp`BMN|D;PKNFMl7npdhFz42v{P}3X9j^YwH9YaiAF*Io1gM&#v>@}sJATwYlo(v6n zKWyoJ`SL-euMdRH{rioELX+_1GNU9W({q25>SjB;CE5X8H+_08U7R%3vgK%eJN}{#i)mBy4+@gL}-aol8U98WilWFMVB**VODXs6IvSm*3Lu%s5zi>Q)`!&k4tWMpNjf ze_wYi2@9z){MANd-&M-N-tB-W{6rmMQ;<~EZH?qt85q0hlFY?{lrfoU-|J__ zE4;O>DUGWF98;e5L!<4LcXpkX{f&f%hSZPag_pV233MJ$R$96Mb^>eAl~-pf`z$Oh zfJtqgi_2OIES$NDBlRacY+-*2x52WuKvr{F0(edru7;eikF(tBv|T#{g>v%ig3pC(h_l6SsNLR+uiQA5#e6 znt8Vzj>k(|1*&7kAu(k*#dgiuxJY{VnqGOI+p~@i%y9o14e;xLa zix%ggIEA>mxv{6e4&2)Sl#HpVX&N+N99-Ox!e8Kh;MMULyHL~zwk4HS5cILPTq(o;rad zCFOa$&ttk0wve7pg{Ko0AOD_bX<}08;h4jqTA{zuI9Vu?8L6E+HqnXA*Cu_mZ1pi# zbFS-o>|19L+{ovv!D(>ugNKIoo}FXpo1oL;WXl6gkMx!@7e{C+(1Y;fy(OBNwEG(bRNTTwEM`+7WQf7ne*28WObv%`~g4t1lE6Q@I8g8J)3cs3@sHZ5TyH zPIk$sBP~6 diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html deleted file mode 100644 index 057a06208..000000000 --- a/docs/html/hierarchy.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - -AceTime: Class Hierarchy - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
-
-

Go to the graphical class hierarchy

-This inheritance list is sorted roughly, but not completely, alphabetically:
-
[detail level 123]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Cace_time::DateStringsClass that translates a numeric month (1-12) or dayOfWeek (1-7) into a human readable string
 Cace_time::extended::DateTupleA tuple that represents a date and time
 Cace_time::EpochUtility functions for setting, retrieving, and converting the current epoch
 Cace_time::EpochConverterHinnantUtility class that converts AceTime epoch days to (year, month, day) in the Gregorian calendar and vise versa
 Cace_time::EpochConverterJulianUtility class that converts AceTime epoch days to (year, month, day) in the Gregorian calendar and vise versa
 Cace_time::FindResultResult of a search for transition at a specific epochSeconds or a specific LocalDateTime
 Cace_time::LocalDateThe date (year, month, day) representing the date without regards to time zone
 Cace_time::LocalDateTimeClass that holds the date-time as the components (year, month, day, hour, minute, second) without regards to the time zone
 Cace_time::LocalTimeThe time (hour, minute, second) fields representing the time without regards to the day or the time zone
 Cace_time::ManualZoneManagerA simple version of ZoneManager that converts a manual TimeZoneData with fixed STD and DST offsets into a TimeZone
 Cace_time::extended::MatchingEraTemplate< D >Data structure that captures the matching ZoneEra and its ZoneRule transitions for a given year
 Cace_time::MonthDayThe result of calcStartDayOfMonth()
 Cace_time::OffsetDateTimeThe date (year, month, day), time (hour, minute, second) and fixed offset from UTC (timeOffset)
 Cace_time::TimeOffsetA thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC, but not always
 Cace_time::TimePeriodRepresents a period of time relative to some known point in time, potentially represented by a DateTime
 Cace_time::TimeZoneClass that describes a time zone
 Cace_time::TimeZoneDataData structure that captures the internal state of a TimeZone object with enough information so that it can be serialized using TimeZone::toTimeZoneData() then reconstructed using ZoneManager::createForTimeZoneData()
 Cace_time::extended::TransitionForDateTimeTemplate< D >The result of the findTransitionForDateTime(const LocalDatetime& ldt) method which can return 0, 1, or 2 matching Transitions depending on whether the DateTime is an exact match, in the gap, or in the overlap
 Cace_time::extended::TransitionForSecondsTemplate< D >Tuple of a matching Transition and its 'fold'
 Cace_time::extended::TransitionStorageTemplate< SIZE, D >A heap manager which is specialized and tuned to manage a collection of Transitions, keeping track of unused, used, and active states, using a fixed array of Transitions
 Cace_time::extended::TransitionStorageTemplate< kMaxTransitions, D >
 Cace_time::basic::TransitionTemplate< D >Data structure that defines the start of a specific UTC offset as described by the matching ZoneEra and its ZoneRule for a given year
 Cace_time::extended::TransitionTemplate< D >Represents an interval of time where the time zone obeyed a certain UTC offset and DST delta
 Cace_time::extended::YearMonthTupleA simple tuple to represent a year/month pair
 Cace_time::ZoneInfoHigh::ZoneContextMetadata about the zone database
 Cace_time::ZoneInfoLow::ZoneContextMetadata about the zone database
 Cace_time::ZoneInfoMid::ZoneContextMetadata about the zone database
 Cace_time::ZoneInfoHigh::ZoneContextBrokerData broker for accessing a ZoneContext
 Cace_time::ZoneInfoLow::ZoneContextBrokerData broker for accessing a ZoneContext
 Cace_time::ZoneInfoMid::ZoneContextBrokerData broker for accessing a ZoneContext
 Cace_time::ZonedDateTimeThe date (year, month, day), time (hour, minute, second), and a timeZone object that supports the zones defined by the IANA TZ database
 Cace_time::ZonedExtra
 Cace_time::ZoneInfoHigh::ZoneEraAn entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period
 Cace_time::ZoneInfoLow::ZoneEraAn entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period
 Cace_time::ZoneInfoMid::ZoneEraAn entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period
 Cace_time::ZoneInfoHigh::ZoneEraBrokerData broker for accessing ZoneEra
 Cace_time::ZoneInfoLow::ZoneEraBrokerData broker for accessing ZoneEra
 Cace_time::ZoneInfoMid::ZoneEraBrokerData broker for accessing ZoneEra
 Cace_time::ZoneInfoHigh::ZoneInfoRepresentation of a given time zone, implemented as an array of ZoneEra records
 Cace_time::ZoneInfoLow::ZoneInfoRepresentation of a given time zone, implemented as an array of ZoneEra records
 Cace_time::ZoneInfoMid::ZoneInfoRepresentation of a given time zone, implemented as an array of ZoneEra records
 Cace_time::ZoneInfoHigh::ZoneInfoBrokerData broker for accessing ZoneInfo
 Cace_time::ZoneInfoLow::ZoneInfoBrokerData broker for accessing ZoneInfo
 Cace_time::ZoneInfoMid::ZoneInfoBrokerData broker for accessing ZoneInfo
 Cace_time::ZoneInfoHighWrapper class so that the entire collection can be referenced as a singel template parameter
 Cace_time::ZoneInfoLow
 Cace_time::ZoneInfoMidWrapper class so that the entire collection can be referenced as a singel template parameter
 Cace_time::ZoneInfoHigh::ZoneInfoStoreA storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo
 Cace_time::ZoneInfoLow::ZoneInfoStoreA storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo
 Cace_time::ZoneInfoMid::ZoneInfoStoreA storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo
 Cace_time::ZoneManagerBase class for ManualZoneManager, BasicZoneManager, and ExtendedZoneManager to keep ZoneManager::kInvalidIndex for backwards compatibility
 Cace_time::ZoneManagerTemplate< D, ZP, Z >A templatized implementation of ZoneManager that binds the ZoneRegistrar with the corresponding (Basic|Extended)ZoneProcessorCache
 Cace_time::ZoneInfoHigh::ZonePolicyA collection of transition rules which describe the DST rules of a given administrative region
 Cace_time::ZoneInfoLow::ZonePolicyA collection of transition rules which describe the DST rules of a given administrative region
 Cace_time::ZoneInfoMid::ZonePolicyA collection of transition rules which describe the DST rules of a given administrative region
 Cace_time::ZoneInfoHigh::ZonePolicyBrokerData broker for accessing ZonePolicy
 Cace_time::ZoneInfoLow::ZonePolicyBrokerData broker for accessing ZonePolicy
 Cace_time::ZoneInfoMid::ZonePolicyBrokerData broker for accessing ZonePolicy
 Cace_time::ZoneProcessorBase interface for ZoneProcessor classes
 Cace_time::BasicZoneProcessorTemplate< basic::Info >
 Cace_time::BasicZoneProcessorA specific implementation of BasicZoneProcessorTemplate that uses ZoneXxxBrokers which read from zonedb files in PROGMEM flash memory
 Cace_time::ExtendedZoneProcessorTemplate< complete::Info >
 Cace_time::CompleteZoneProcessorA specific implementation of ExtendedZoneProcessorTemplate that uses the complete::ZoneXxxBrokers classes which read from 'zonedbc' files in PROGMEM flash memory using the high-resolution zoneinfo data structures
 Cace_time::ExtendedZoneProcessorTemplate< extended::Info >
 Cace_time::ExtendedZoneProcessorA specific implementation of ExtendedZoneProcessorTemplate that uses the extended::Info::ZoneXxxBrokers classes which read from 'zonedbx' files in PROGMEM flash memory
 Cace_time::BasicZoneProcessorTemplate< D >An implementation of ZoneProcessor that supports a subset of the zones containing in the TZ Database
 Cace_time::ExtendedZoneProcessorTemplate< D >An implementation of ZoneProcessor that supports for all zones defined by the TZ Database
 Cace_time::ZoneProcessorCacheBaseTemplate< ZP >The template class of BasicZoneProcessorCacheBase or ExtendedZoneProcessorCacheBase
 Cace_time::BasicZoneProcessorCache< SIZE >An implementation of a BasicZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself
 Cace_time::CompleteZoneProcessorCache< SIZE >An implementation of an CompleteZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself
 Cace_time::ExtendedZoneProcessorCache< SIZE >An implementation of an ExtendedZoneProcessorCacheBase where the cache of size SIZE is embedded into the class itself
 Cace_time::ZoneRegistrarTemplate< D >Class that allows looking up the ZoneInfo from its TZDB identifier (e.g
 Cace_time::ZoneInfoHigh::ZoneRegistryBrokerData broker for accessing the ZoneRegistry
 Cace_time::ZoneInfoLow::ZoneRegistryBrokerData broker for accessing the ZoneRegistry
 Cace_time::ZoneInfoMid::ZoneRegistryBrokerData broker for accessing the ZoneRegistry
 Cace_time::ZoneInfoHigh::ZoneRuleA time zone transition rule
 Cace_time::ZoneInfoLow::ZoneRuleA time zone transition rule
 Cace_time::ZoneInfoMid::ZoneRuleA time zone transition rule
 Cace_time::ZoneInfoHigh::ZoneRuleBrokerData broker for accessing ZoneRule
 Cace_time::ZoneInfoLow::ZoneRuleBrokerData broker for accessing ZoneRule
 Cace_time::ZoneInfoMid::ZoneRuleBrokerData broker for accessing ZoneRule
 Cace_time::ZoneSorterByName< ZM >ZoneSorterByName, templatized on BasicZoneManager or ExtendedZoneManager
 Cace_time::ZoneSorterByOffsetAndName< ZM >ZoneSorterByOffsetAndName, templatized on a ZoneManager (BasicZoneManager, ExtendedZoneManager, or CompleteZoneManager)
 Cace_time::ZoneTemplate< D >A thin wrapper around a ZoneInfo data structure to provide a stable API access to some useful ZoneInfo data
-
-
- - - - diff --git a/docs/html/index.html b/docs/html/index.html deleted file mode 100644 index 25b290c15..000000000 --- a/docs/html/index.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - -AceTime: AceTime Library - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
AceTime Library
-
-
-

This is the Doxygen documentation for the AceTime Library.Click on the "Classes" menu above to see the list of classes.

-

Click on the "Files" menu above to see the list of header files.

-
-
- - - - diff --git a/docs/html/infos_8h_source.html b/docs/html/infos_8h_source.html deleted file mode 100644 index 68bf27fac..000000000 --- a/docs/html/infos_8h_source.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/infos.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
infos.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2023 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_INFOS_H
-
7 #define ACE_TIME_INFOS_H
-
8 
-
9 #include "ZoneInfoLow.h"
-
10 #include "ZoneInfoMid.h"
-
11 #include "ZoneInfoHigh.h"
-
12 
-
13 namespace ace_time {
-
14 
-
15 // Data structures for BasicZoneProcessor
-
16 namespace basic {
-
17 using Info = ZoneInfoLow;
-
18 }
-
19 
-
20 // Data structures for ExtendedZoneProcessor. The ExtendedZoneProcessor
-
21 // uses the *same* storage format as BasicZoneProcessor (i.e. ZoneInfoLow)
-
22 // to save flash memory. It turns out that all timezones after the year 2000
-
23 // have parameters which can be accurately captured using the low-resolution
-
24 // ZoneInfoLow data types instead of the ZoneInfoMid data types.
-
25 namespace extended {
-
26 using Info = ZoneInfoLow;
-
27 }
-
28 
-
29 // Data structures for CompleteZoneProcessor
-
30 namespace complete {
-
31 using Info = ZoneInfoHigh;
-
32 }
-
33 
-
34 }
-
35 
-
36 #endif
-
Data structures that encodes the high resolution zoneinfo database persistence format.
-
Data structures describe the low resolution zoneinfo persistence format.
-
Data structures that describe the mid resolution zoneinfo persistence format.
-
- - - - diff --git a/docs/html/inherit_graph_0.map b/docs/html/inherit_graph_0.map deleted file mode 100644 index b6ce57ea7..000000000 --- a/docs/html/inherit_graph_0.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_0.md5 b/docs/html/inherit_graph_0.md5 deleted file mode 100644 index 838e77e5e..000000000 --- a/docs/html/inherit_graph_0.md5 +++ /dev/null @@ -1 +0,0 @@ -b8acc0d694824ab4c2c49c6c2b2a682f \ No newline at end of file diff --git a/docs/html/inherit_graph_0.png b/docs/html/inherit_graph_0.png deleted file mode 100644 index 4be8c216e30f807c9f93294efde979a033d0b3c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2528 zcmV<62_N=}P)?|1YS(23lS}*~1~a50l|?Zn zZ6PDN%rs^qVSfH%)YOP6)YMEhjK&y-K`u#yacRktQZcTpv6uIc^S=8&*?k_n`_r@N zeEvG;?6c>5&+*-}=ds^iR4SDs5Xc`!OVa`%e+AHI5Hf&1gOCCA8H5aUu$7jUmi+vD zO-X@lB|JPll9Q8V)!+6rfk5!=*)!55LADyLt*tFBE!Y+v`HQNms>sp<*_s?Xc5GD( zJfA_x0Qw9<2GC~^GWgql#^G?v%E~mYV(YV^edg}&e*gY`O{-X&4X%?w9%;%I+;3_S zS6A1I7cX+TTu^OoZPln8Wl=-t^768Qfq{IxwzjrNBw7zq{|75iQ!Bio_p>dGzP`Tn ze;hq}G%hXoy`HqO-FzCME_&QFnKDb85zaL$4evQuN01f#El!{KCRW*$C#*wE1M>C>lpGB_O0jT<-o{QPJ% znuCKwZEdYG@`zV>YHI4_$&++C-OS7^Iy!oKdYX7F)sSMSsHj-gLV!pl>gwvUx3@1Z zF9$6lAt9cgp1r-jGcz;A#l^2)y^>0$p`oDx0RenIe|B~@B_+kl$w@30l+vtNH7-OUl0%;9v&VZj%`ujXMlhH`RBxm6H=)Z>>NWwL)b?J0s(>`6B84l zDi(`rG+Iwj4_^HJzb6AK)2VfU6WP!?%i8lT#PqI zKA%saP~9Uaxy*0!^=!(KTuGJ+t8 zrKKf`q9}@LYirNV&5e$Zsoq)WHQBKF?d+k0tg3EP#z zMNkzKML~f;1|G!n5d0Okwzd|DL}O!PpgKG}3>yEla?< z78VvgJw0mQa}f+ja1t*nDr#tGn4h1&ckkZ#_;_e&DBc|3zI~gKkuf|xyt1+)7K_1U zs|3g|0`ces;K{&aO?e3Z3bR-&Z*T9!#Kg(TNr6Cc>C&ZufB*{%3uSaFgUUW*GMRVp z-i?fmq|s=}$;n}1VX}wH%E}HLIN3tC4F`yikI&4^+_h_0d3pJpH*ZW$P4VXFiX!>qxJ3c$dMypUIqpREEen3sZ$*t z9qT*9MquOmY|A8PBoawoT^*Op&B@78cma>clS-wtv$NIJ)fN^O9v&VqUc8XMEF~r7 z!i5W~zOS}f*tkB!126fbWN?VX;bdfF$OnP2C`{wXhicZ0JoWbWrl+Ud*w~ysd)Cs@ z^7!%N1oP6>)pc-i$j!|?bLLD^Qj+|wQfzFjo}OMQdjvYG^5)v948wr9m{{H@8 zKa){cSBD@-e}BKi>qR0_O-;?|)29s$4LvVFS`SZXr%Fhuvc<0WY3Lh1V z#kIAy(b3T?7HfKXx~QlqH8oZF&Nam*^O<_dpH;{Qfv}Gfq;asJ8UiI|W@cBeTzUWg zeM3V7jYf-zh+wf;*RNk!GI&>BUT$S&wP(+sRqcI!eaXqmR#sMtiHR&0tGm0qsi`R; zA;H+#Sf%M}giYo%Rf9$fkq-i4A0vs=Gpu4+U(-Qth;C==n1L!jd89<*w z$N>5bLIw)%1LS`!83Iv>*4EZl-w*w5KeM*B4i66}R}y3k;_mM5;o*U8`R#kc5Xc__ qp3fj;0DT4_1L!jd89<*w$lyP`pe?O - - diff --git a/docs/html/inherit_graph_1.md5 b/docs/html/inherit_graph_1.md5 deleted file mode 100644 index 8ab6a157a..000000000 --- a/docs/html/inherit_graph_1.md5 +++ /dev/null @@ -1 +0,0 @@ -d9cc0e79a332a9109e23f3737c2732ca \ No newline at end of file diff --git a/docs/html/inherit_graph_1.png b/docs/html/inherit_graph_1.png deleted file mode 100644 index 4b28c6df1863333170e7afe3f2183e02aa50f9a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1823 zcmV+)2jKXLP)tq{T$V zUaXN3h)S!hBzlvOMLH(Ekp+e%wyo$zg+)j~%2uh75aO0=<<>t}wlqh$?LIH=^Nc-r zyGxfjAD;7hb$7XGL zA|W(4HxmTm^?C;e2C}oWB@)T)+qYLF^S*uiSS;4q*x0*w@3dNNdwcter2XR%VHk}@ zN+c?Bxf}q1APA1*=g*%H27_eW>-9D@HQ_j(nVEUy$dUQ^d4eG3=H{B3nlKE@$jFe( z4a$HtcMtUNIMx#MdloS%#q5Sz`e zudn~|<%`W`%gV|!nM~v|x^heR#Ngl{0AONbB8E~*pHYhjgTXCZw(Q@(-(s=&e7+bm zMIupFR@U(Fu;1^GRE=TS)2B~={P@w<*2d%UNMG*Wy}PES=JV&zQ&UsBcI_fPF*!Mz znwmN^H01O7EEda&6DMdlFN~G+1c_d+udc2p2;%MAw*UaU-5!2*dU_fF;C8#oX&?~b za5&@R<8;|#d!n*K^aw!^@;O8hL|t9o>C>mVK$q0?AXC#u@D4lZf6lgS>moHx~OL&N7d*ailPqnqR=gyt`@Zm!+7}V)>e!m|8fa7=|5SW^p3SXR? zo12uB$0LULL7IK<-O;^gFHOG`^{Z*Nyu7lI&kN-2HP6?MDa z3WZ{DaBy~Z*6a0lcXvCTPO(`0`!a<>p+q8SY-}XIFV37fL&hIIeAwFB`ug?j#l^)y zAVBsXNB(7d0>|-7moC-T)^a!;tyX*Bz=6=E>({Su+qSK&tc=g+kB*KO7Z(EndV71f zZrv)A$#^_oV`HOQtzNfo9bNL4mX?8m0S1FnSXdZ`nB|ru(d+dHg0R`_^78Wc@84T2 z7Nt@dTPdZ_s6|l}J$m%$#fujO0s)3$27{rer>C^EbVXzujmB@^z6k^Zxm-@Z*i1`H zD=I3=%*>R@WLz#+r_-5CCKihoPxkO9UL0pkNW!^y?;e-Sjr;b(pMb1=j7DQh zO3L27dmRqPsZ*zFYHC(6c>;cq>2x}g2-Irz>UZ+rrL?rvY&PfS=2lcxl$4Zobabp> z@&r65a2zM#KN|fW8#ZjXapT4xN)F$5K&U`ZK&U`ZK&U`ZK&V7HW138+)$aq6C|oXA zPEJmEB#I}(U+_cz52#eC@F@a+EQC;i=LrZE=m`iF=m`iF=m`jwzX03Ve#yJ;Zr1<+ N002ovPDHLkV1k07d^rFB diff --git a/docs/html/inherit_graph_10.map b/docs/html/inherit_graph_10.map deleted file mode 100644 index 64b0ebc6d..000000000 --- a/docs/html/inherit_graph_10.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_10.md5 b/docs/html/inherit_graph_10.md5 deleted file mode 100644 index 5a39efb4c..000000000 --- a/docs/html/inherit_graph_10.md5 +++ /dev/null @@ -1 +0,0 @@ -516b142c8c55a5fa46454a06f6e2a321 \ No newline at end of file diff --git a/docs/html/inherit_graph_10.png b/docs/html/inherit_graph_10.png deleted file mode 100644 index 09765f3c3241ea61071379fdfa137ad514502201..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3999 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 diff --git a/docs/html/inherit_graph_11.map b/docs/html/inherit_graph_11.map deleted file mode 100644 index 069d00d4a..000000000 --- a/docs/html/inherit_graph_11.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_11.md5 b/docs/html/inherit_graph_11.md5 deleted file mode 100644 index 7d39f8515..000000000 --- a/docs/html/inherit_graph_11.md5 +++ /dev/null @@ -1 +0,0 @@ -ea53b659424c8c585a9b899d2188111d \ No newline at end of file diff --git a/docs/html/inherit_graph_11.png b/docs/html/inherit_graph_11.png deleted file mode 100644 index fbd5714da8f3c00848aecdc038d618990de4a2da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2739 zcmZ9Odpy(c`^P6aADgv}vgDXP&I#2V#vF6#fHslVmY9?rM^2HIL$o{`Mifib7CDTF zM1&TaLvjc?3ybD3=kL2ee*gU5@5lRnU;o_Kecku{ysqn&aL&{U=LmtQ?BP%J1WjZxs>7MS-~5*SG@7DztQYvydOpB0`YBwdmS zQHP}aV;>ohNTuofR==-GzwmJ*GMgG1GEMz8`g4HOaP@Sqq=NMK=FaaT3S?6of-pS} zO@4d&pD__rYE#&~uyFHoVJzI>#fukTbI)Az+*!0!&15AdB?%!_n%@?@dxz1=oVa}W zAj+&~ds2CY#ITktP7%UD{+`wY78c^22K-f@~pW7QKnIaJi#Np}b zd2PTu!q=Dn{{0ryxBu$b49&|;O-=f861o=UzqWUFQsvJ;5r|HL-p=+mXS6|T=%8r4 znZi{)YR^lD_rdcSQ5?d~;}$91AR}dP0!mDP$lP3=@Bi@O1F+qILOH|ixga*1O`%Zqs0=#Ycl1LfA0MCGBQm24TjAwV8)WO5YkW5(D#}EIyAh$4 zx%GF7m6w+XZ0-a+`OW3(sGUt_Ny)9I`y%o2@jA&j-(4(n+~Dy(!Xu~}yNz)|;)1l= z+RZQN|8Y1R(fB5BGNB0YW0146Fi-&mwXzaqXlVGxmEJQK8y9zpfnkq~jC}hh4T0S~y4f2n8m?6;$0WLk>po$=-uwrOy2D=e1E7FTzi;cfso z@pfmZ`Zg#gBO`-M76h5yy?f?nG;irBL;`C{SSIwyDoa~>wJ(+z7a!BndF)t(hi5!} zI^5m859CcGmRDD=FE2M*M{V;CfX3$L5^!)b4xr@c&z}ws4p4DX5Zp8hsbO^bbPB>a z+ln?vKc4<2_E+&l_3hE!xt^k!n3$y{e=*00cGn13Ubzw4~k5d6B-LXJv3>h(V5~wD9=&IFU%Kt*!mb<^CC|XL(i7 z3JUI<<2*cmuKyYJtRo$em*3&eIF)xABatKZcZ*!z3MAcK#)9dc&&{S8qJqAgUJDJGf z_V)HZc>)GbmABx<=Otkc^}KQ=k4nWlJELiAsFr(HcD9_14F8b~2|fK#qXcyK(9rzE zgp#zdf#2Xt>%S8a2LuMz*Vp^#yZQSs&G(n$XuEkfei9ds zr_XN;y0?GqXM#z2`SrsjjY`z>@}GHYD~IPq8wcvi0XC z+tYTIPK)hT4WnU#R6jCFcZ|CsqiRq3JDK42=DU!zvANYFT_%&MWR+Z8Tzu}8^MzMI zd%HV2@Y@~F{r&Ef$yy$@E8Ll`j*bo-4tF+Fs}Roe{tGccT(q~2Fd6OZW7gHx(dqLm zb3OK|7hgHcDce>lsLCY{4i2If&zqTj%+ke!!C-`GRPwVVz5@piEZMy*Vlc!(=Pq8v z>tA`}nwgPtYxo_d@u~*qt%A08X+=dEBM|v~^o{pwfM7j5{G{jM1 zHhf}nF>>PbBYq*t{Q?3lEiLttTi;huQvo$`ar~LAco&jI|6WL*5wuK*c&O`$gS9jw z^?~-p%vP&_u1Z>Ra`M8$!j~_0k`F5It&+!JGMP3F3V^#4;m$Pna6`1Ifk8&=MC8`m z;&4si*7_gA`aq;BjJj(*|4k`qn|CMPJim`dKWXL}qPGjjU__Ru_xKTB*$6nFjhZ&q;aPEJw0e2(6k{hSAtQpD1utE-~3_ zoWuD5lyrblWcbR%c0viZg4{YGZyer>ZoPs+@g=onBg4v3cY}k2?d(L8TI}rYCzna- z>FEa#9uyG~(bCfLa_~$IHryq(AOMd&iM)SLIeWwvO@~Q^+Q^n0(vCPIyF2zT<^q*%WiH3G}^MYI<(o{f(>AF zLQgL{Cx^@BP6eDAUVFR@ - - diff --git a/docs/html/inherit_graph_12.md5 b/docs/html/inherit_graph_12.md5 deleted file mode 100644 index 46adf4d1c..000000000 --- a/docs/html/inherit_graph_12.md5 +++ /dev/null @@ -1 +0,0 @@ -a2e5433e46865de11c3d30b0d49ab9ba \ No newline at end of file diff --git a/docs/html/inherit_graph_12.png b/docs/html/inherit_graph_12.png deleted file mode 100644 index 51270d08248200a9c7b84d3db98b6563d4a2022b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2440 zcmV;333v91P)roO|w^&fMGkZ;GHO3JA0s(q;!h@Y^ABto;x<)_#Z_Yd^Z!N=r*ic6Rn=g+j1i zczAduCnw9RKRw4np|G~LcEdv=SWozTeoIRWwnbObsHUc7qv9c0e}aO7R<#i8vGzmc zSo#t;OVoSghk_HzE{9J{-_KYH|Nv!nRy`LlBD>gxLV@nd1+78a6{k}NGPw{6?TX0wNfhwh0~_ zy?b|cbu~1@8}9DiyEZm9&<0z^vu|o@GBh;&^yyPcNr|zsu~;lt8X?~03lgHMpEcqrrlKfdK$uX=zC$5|PPddAs~x;rYR{R~IGc)v6gE9}f);t*xy+dh{rT zLdng|t*opB0MO}lsZ=^JFd$#*005SjmLw8MB9ZLexpOVfNu*!e1FAcm3VWGM78Mo6 zX0uybT8fH_Vq;?!BUE=dGc&Wr#YKrk0@EfC2vqwS7#L7$uP$oe)1{>)nM`J6WTdC3 z$LI5Na&ln1g@py1&5n(Y?dj>6ot-T#ENp0Ku&}W3^Ye?2j_&R4{r2tKyLa#W{r#7h zm+_pNn3!~Rb*-$dXf_!Y!ztZ!sjyE^PZtV>JRa}KlP8xhUHb6hgJOj0&d$ch=Fp)- z=g*&?n3xa<1gWX1s>8;!R~NN&OsCWD-@hLk8cL;7larHAojN7&Dl02HaNvNCkB_yr zb$ffemzNg+fXCz6+1dH}`qF5$3l}a#M@MhjvIWn1N=iy&W21qA0o=7}fLg=h**7;g zXJ%&B)YOp4WKU1el$4a9pdk1)VO50c4p&uGwXm>YV`IZ+vm+xT|2J$rd$mAN%wt}h#`rx7{Uel{Y<0RaJietz<*OeXX6^!!E9@Yu0q2!ddrhVJfe1VJbiipDKG&F>#rzcLFn4Fw^`}QpWU}0gQqM{-`J{}v4L?Q_b3!~9! z#>U1`QBhDE064;*qHYKP`26{^qCTjInVA_B3;+NkkqAMMnVA_l(2W~6SS%KmN_BR2 ze)Hyy;9zJ{s04OajWwBTm z78ck+PoF+LJ3HIi+1b|CCKL)IA|m8nJRUD2BV%lAEHW}OA|e7s(aOq7xu(SD^YP5o zop^qJep*_ZNF)jl4nBVT_{7A-Dg(Uxu%2K=C=Im5wX?ju?BL+w=H@1qO4ld?%7sf5 zMHvhRe5@fpK0aJ7cYJ)@$jE4FYRb{kv9YnSzP_GJCPRaPfdK%(;NT#vc6WCJ07geg zQ5@k9RZuqZ%pllzwW+CTQ&STx!>LVAPeTu>sj2cy?CtFf3JOq+W~#0jx)#<)Tht6a zJw1DS`~Ca(lSm{Ls+>~c60+(s1pv@!G+$p|4u`Y2xai~KgY6Oug}S=BbUGbY;i>`e zDNrW-DUErJW-73@w#JsR(*f(Pz2dPs-<_bEHaR(o{kWYxc@hejw{G1Mi^VdTEGH)i zyPZK0MA21ZVq#rgT|z>_s$O$*^OcpAk&zKtg?hWWxw(p{G*&hZ3=HJymq;YoE|^7# zKp-$PGsE`c-3QIWz+)r!T#DeSX?Vh=3Ro-_ilSGpTv^p_ZEbzz$dPmB&WXihp-_17 z;zeIyUlS7(6|OW^HknLjadGj?%*^oc@U?5#uwD82`LAEUo}Zu3%*+&tME?H%*j{zj zNzK@_GZ3X}nhN1k1FEX3C=`mLqoa$9i>aw8kH=GOud%Xu@7}%1$w^aFQ#PBuDrOFc z!{u`K?AcRZUjFRaGx<+h - - diff --git a/docs/html/inherit_graph_13.md5 b/docs/html/inherit_graph_13.md5 deleted file mode 100644 index 7f52370ef..000000000 --- a/docs/html/inherit_graph_13.md5 +++ /dev/null @@ -1 +0,0 @@ -b11fc443b879c61190ec21a74cd0bb10 \ No newline at end of file diff --git a/docs/html/inherit_graph_13.png b/docs/html/inherit_graph_13.png deleted file mode 100644 index 37618f70d3d9083d3ea37c9084873b6cc635f101..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1620 zcmV-a2CMmrP)3q{o*Zthw-1Fzp<6aUb9+*s~(a}-5WnZ9EZ*OnB>cPa1^XJd|S@83o zxnS*?3)Y^wVC}a7yWI{UbT}Mw$R(G{+uGW;CDfkQejCs8e~~xN>@DqOGFeAQhi_^! znJ!S^>OTet2e&Jr z!{NAc<%(LZ{`~oK>@jzOXtXB?0z$}Qu_O{nU0t2;E%3_9idL(YNF*sKDc7!DTU}iR z063jatyY_nks%NW2!fcMoedTC!i5XtqTy%(lstZ-@kuHQ;)~P=kv{GbEs&(lR+Fme!R7{6^)M`J=)ydjK;&m!w^EJ z(}|`RFJ8QJ=S~#qD2gg7Dx!CzudgpKZ&Onf8vp$H697Pxq{U(Z04yvlAUnE1mzI|N z0wyLVqU$6~ZC0z5%jE_ZDHIBahKA^${q^gYUu}Nv3Xf8$R4SEpOElMgZ*T9hW5;+r z9)wV<)siF$0I=C?2?+^Osg&+HGcyAK5DJB8`;(B6u(GmZv)Q6Z3IIq=O+|yGq$Cc9 z!{u^)Q@7h4bvpX<{_NSafevYDX=uP^vjG5Zx0@tME|=@G`<*okxVX5eP$+6^Yds!M znA#)~Nq2Ym&6_u6GFe4M#mA2yqiaqSM6CV7!a`YD*}Z%B=I7_VUawxS-`Lmy0Eoq6 zkH<4TJxzDc$jD%^SPqASzT6ZFMaXJcG3`AgO&2vHk!W>wb#ZYKO|4dIpigRQYFk^| z^z?LldwclW6bi-Q;NZJ=?+ObGPo6yKa=8EiY&IJ$XaImOksmR(E8-8k-EObfo1C1S zn3!lXne=)+vZtq~69iFFQSs%=m*2mCx3;zp3=E{Fr=K}STnVBUeC247Cm6eqmjb{J; z{h@;2x^?UI>(^{HJGzZ)r0HUzr>Dp1bV{XCf*{mtbtt#W%1W2ZWiS{*)pqLCDS<#x zQc{wVlA_n^jYcDn#{&Q~Ha0pO4xvy;5Cpx+bYg55q-g)sH5!d*;}%6A%pM25!==BV z$G`0`mtD}_X0yQnG#X9(D`7Z6{i)+A|ldJ#)d@GnXKHJ)_YW z|2i-`4M~zBk%(>yqP - - diff --git a/docs/html/inherit_graph_14.md5 b/docs/html/inherit_graph_14.md5 deleted file mode 100644 index 2e8d75a0f..000000000 --- a/docs/html/inherit_graph_14.md5 +++ /dev/null @@ -1 +0,0 @@ -b3ce0c4ba148bc7dfae81040050c4355 \ No newline at end of file diff --git a/docs/html/inherit_graph_14.png b/docs/html/inherit_graph_14.png deleted file mode 100644 index 7a53e22ffb2a6f541f0c628e94956f3b61e65141..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1429 zcmV;G1#0?7or>;2gCz&<1f-)Hyd8#hS=@FP@E^fP=s* z==+}Mb9J7Fhu@#?mvhbo2S}16z%T~ZVHbcYE7)&lf&FF{*l%W0NgX(yPLs)WSfyY} zL2GNP(P&H!|2n@3g81;^L)lBhlnR&2<#al!GnJW(tX6Be>cNzjo}Qkx8GQd{7T9lQ zf&FF{*zZyym&;$ie0kVaq;sVGKAMvKr#V`FU%7JS)vH&jq08kO7#JvNMukH0@ZrOf zra)OBgb>22sw$~e+Sk|TcDwg|SDG3J!qM{ke~iIkAW1S3iP-ISfk4pO+B!QsTmCYN z@mr}>LI_zbmP8_X^5jYCiE1<&H5d#MiR9F&Q-gzpzkdA!0K{T3gTYW=Uw`uCNu^Tx z^XE^xu(xjA@_0OV@7{$F%H?wK_x1ep<;zB+v8}C*!{J=GaA9F#;ra9DLZOhy`T0N~Ad|@) z4hH~0r_(JjFMs;N zU%!6c=ks~JUbovlH#avkGlSOTpDqVCZ{CbVB1=n4Znv8ti2nZm91YT`ksGa6ySBFG z^ZDo^WU6r>tpSpP#bQaD*_ZM0ag9bpk|g@LEiW%qUnK|v0I;^UhK754dt5Hp>-Ew_ zOLd62diCn$TYisk2a8ODX?Dyv8 zW^ZrrEEa2fdz<R>7K=wmM|*pFxm>Q%XzcFpPQCQz&6|rCFLrcvNTpJb z$8+u4H2{FwY;J05>g?>~^ZCQW!+O2`*s)`D!AC|$>~?!qRTbKi7C}Mj5aZ+Hkixfb z-z*jjhr?-ZZkEYpb#--Svze~J9BO3EQd3i-P$<^d*PTwMN~Hoh^-NQvh}JTJB<1_V z^z<~^EEF0Ab2LHEL#YqA@$W6n;t>1}27@pIy|68HWYFo-+&V zH?zQgGYjlDv&gbvo1UI7e;t@ou)4Y`6bh*`S^U;$H07!XQ*zX5HFXH_S0hG&@88S< j`^_w{-^>F0%`E-_P{MSK4SuCu00000NkvXXu0mjfl1a#f diff --git a/docs/html/inherit_graph_15.map b/docs/html/inherit_graph_15.map deleted file mode 100644 index e7ab1d6e9..000000000 --- a/docs/html/inherit_graph_15.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_15.md5 b/docs/html/inherit_graph_15.md5 deleted file mode 100644 index 4e4d1f332..000000000 --- a/docs/html/inherit_graph_15.md5 +++ /dev/null @@ -1 +0,0 @@ -f312d06a355d801be3865dda18488f56 \ No newline at end of file diff --git a/docs/html/inherit_graph_15.png b/docs/html/inherit_graph_15.png deleted file mode 100644 index 2b4a21d14573632f38f8216bd543781689ee7b2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1645 zcmV-z29o)SP)NaB(oEfQy4M1=;f(oK7cN zTU*l+3u9^Ha5y5`BJLcLB;o1Pr%MtLW9c?JI;wcRN8C9=qE!-OD~;W5M@>yl)P4NS z!I%Or4#pI4aWJNUi(>^bnM}BM?_RpYSTR;yaqtDQJS>NKTGqv}Z{I%Lzkffh&E<08 z{Q2|g3FtqSm6f=1gn3f4tc!!G6Gah3gg_vG-rip5bUGY3Z~)!i-64P*^J@gVbw8Do;->E{(hW2dlrHqz+^H3h`e3z*|P`D&CNJ?@F28W zEq3hKfj4j7;P&m?C@wBWK|uj7T)2Q>Fesm+7SoLzH?VckdDzJ2?KQ>RX$u&@xD zHf_S0GiUJQ$B(#jrIzPda&mI8efxIYx^)W;4Gm~&YLd^5)vr>X7dvkuOEFK0N=k9` z^z?v;Ff%iQ=g*(x!Gi~Q{P?lFzrMa6@7}$`%a7CLh1pnBsBb#0dlf0la_z9&WcAk|d$NzFyuRD_3fHj#ph>9mdAS z;PrY{`&G(wDsq%b^8^5(dAho~C`$8!w70iYO-&6E5e*Ly695_<9E>%*<$Kz2Q$7nQCXJ=({U2>UVyg7m}mu>S}6iY>XHq6XuC1=Jjq*%ALdEaA5D=z0hj45Cj3DC}MPU6ae7& z`;nEEg)LjQM4adI`2YY#MMd%hTUJ&UCMPH1_xqC(8USG9#*OmNxw*Mmy?Qm)tXUJ* zHa$I^@|Yw^LUwjG^m@JA7J54-Nm9&Q0kQME&^Q2K!-fru>Niz6%9MEuNw_$^e*KEt z+FD$@b`28~69@)_XlrYeAH4K>J?7@-Ff=q2ac*g8DKr`lzJLE7_7F!zIC}J`dhnX$ zuO}oLQ!JY|Z^rEGEJj8~1hOmK@=1eASWjWE|&{!ZEf=Yl9Cdb&1RfCcMhLEeL^4*Ku1RhdU|?LQc{9r z$Bw~jwPIjk0Kb0y!rQlRVX;{7=g%M2v2{8fJRVO{S3u&4X|WIF27>{I4jsa!OP4S) zF#$=EaQX6OR8>_$r_;sEm0F(F%*@Qd>-D0gr3E&d4R`O}g&+uV^*cY$iOyRxEJX|n z7l&T2$IY8JQCnM!{QP`0H#g(>@#A5~Jbd^NJ9q9xMMVV+1_S#0`*Ha2VE};5W2xaYQ!Eap|K-Ej|3$i#uWSmE(sG?M1;-l00000NkvXXu0mjfGvgCR diff --git a/docs/html/inherit_graph_16.map b/docs/html/inherit_graph_16.map deleted file mode 100644 index 35be3e638..000000000 --- a/docs/html/inherit_graph_16.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_16.md5 b/docs/html/inherit_graph_16.md5 deleted file mode 100644 index 20be1a05e..000000000 --- a/docs/html/inherit_graph_16.md5 +++ /dev/null @@ -1 +0,0 @@ -8b99bfec7fd6260f887efe2cbcc5ae65 \ No newline at end of file diff --git a/docs/html/inherit_graph_16.png b/docs/html/inherit_graph_16.png deleted file mode 100644 index 1d455e09280754abf13d07c377378fb24f6a60f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1271 zcmV@ zL5~9tqEVv;5o9?wh$JX`4k{YftRjoBAbO#BdJ{omFH+Ap*nHwGPhWad`|jDl(O%2V z-fOM@Ir}V+2x*!I81}&lb^w^*fQ4r%Sa_C#g=Z-t?#9~Mnnt4uRwx+1qE@SOb8}th zZ+ARJQ8P0$0S^h|cV=d0D2j6TgnXPdJv|+$crXD1Lio;upYbdO3(r!p@GJ!j?=R$X z`N+sfu%lq)M+^VMYxm~_F+mSqeGtjc&hF^wP^nbNTwh=J_l`wHMN+ABczD=P>%Y9b zgoTBD^mDmfyWJju1ey5Jcl=)fkH@3`rJ|yurKJUp?RI-`1M@|ArBVqYa<>~1u)3Vjo)mvLzO-)S@ zLb+THem@B_Gc(m{bzWW`pU+QCP2Jeo7#tjokB^UxjBIUfbvm7B8q;?D{rxE^DIdok zxw*Nit*sRbg|V@*jg5_WcXyv8$W)E5@Qn$2i!Z`2E-unE{r2`YH#avnHa0Oaf&BIL z_1oLqOG`^;vsosSt*op702&$^j*gC2S68i8t5hm2D=Ty5@Q%sJNtsMGIyy?zw8t}W zetv#~*60ssK*hQVNX=lM^xT5VNT6;0FV(mOgja{m;)COkhsN2bH!5C{Y&lZk0H zm+*+3oE)7_hsGHh85)fSjaODyAcQuX4ViUybv->jK5R$Rv_hdENz&bOa&iIyFq_TD z+}+&;09;&LcubI~8t;NfxF7WaOArA7Fc=K(9$)VG>FMdLtSmmC4aMGZ5JCvKT<*iegT-R;e*UiQ zD2fUR2_XmqndqTFQIy970Yf!@a)Jo2g}=VOuBoZ%?d`q1ymUI9LqkKTPaz1x;c%ea z#YJLbB8S7dy}fn6)=ElB7^C6*QM2job{e(sQC(eK#l^)Uk;r3$ zOx5rc-q!OIycV7yh=GBDnwlDcK%iEu%gf7MAB~TXr=_JS6bgw%vbD8UP*4B>(ChV5 zskFGbSSS>Bc6O>%s$ai;F)iNR-MzfL92ORax_Te*YCD8htA%dt?d=&120ovko}Mm~ z$>QST^m;v0f}d2wPxz3aXWS1BADTPN{{rwW%^l`1APB-+EEf0y*K1l#Uohn1MxR2c7mVrECmbC hQn2tW1q;to{sDT!4ym@e6m9?j002ovPDHLkV1ghwMyLP) diff --git a/docs/html/inherit_graph_17.map b/docs/html/inherit_graph_17.map deleted file mode 100644 index a5baf9387..000000000 --- a/docs/html/inherit_graph_17.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_17.md5 b/docs/html/inherit_graph_17.md5 deleted file mode 100644 index 5bb779803..000000000 --- a/docs/html/inherit_graph_17.md5 +++ /dev/null @@ -1 +0,0 @@ -d2b9e79da0cb55cd741f5ddb737940fe \ No newline at end of file diff --git a/docs/html/inherit_graph_17.png b/docs/html/inherit_graph_17.png deleted file mode 100644 index 378f2473265f8b7de3c86e29aa9e0c7ffac990c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2161 zcmV-%2#)uOP)2hZZkIxhPt^6y>65@luqFa{slV zrKJTWB_#_H3q?^@s8lMmHnS_QMx(*~`}gN1Ac~@F(`vO=>(T7WJIhj~QxrA7YHDhb zl$2z#k3Q$6C>KSGm!e!0EnbRpQM7m|L`Fv9=FOW69R}r~|6K9XJ0kVBaOvXRxN#%y z+__`Y*4o;N^MNJxm)V*rSckB3gD!^@X1**UAKs*shH z<#7I_QYp@#Kac3>Xb1!XtXsDZPoF+z`~Cd<(Ae0>9&5E)Fbo5|Ue9TMTZ~2{Qd3g_ z01AZyJl;QdnURqZ96EFeK0ZEJvt|vB965rqu`$jubNRW?XAbR+9~cyb*OC@3hv)~#EyY}qnYS66e&zb#HF-un7_5JK?d#}7Ps@Bnx3 z-bGba72BVdmWJ1_U*qxP$LQ(lflMYtb8|BQAU!=DU0q#x{`@)m`}+|Z8j8fkM3Z8& zq`JBqGMNk&6%`bVaeKE#zPS1>d*gviK9Y~Q{eA3l6QM@I+R+S*W8SBKi# zTK4?kjp=7R9uJwBnYe!aIso9_y?cm?ih{qtzr*FG#IOXFOC zT;{hXFE0;mZEbk;=n=fVz1jAI2M=O=d>n7yyg^%A8#EdX($dm6$IKeZ_xDJh8% zLP%d<9|1tRy1LBH(`YmV02vqLa1@^bb# zJUpC~l$5Z?&CSh(VHjdC7}&Pd)Kqfz>{+M8LWUPTCJ84LWoEtBF~;ZWBX^<@b&9gPV@ho zvspK8+#ufG-lV;~-K4#{yPE(YJv}{aTW4n{0YE-~{%kj9E;*j>9NHS+)zw7+kkQdm zw!f*ViEZPup78K+Qdn4MGiFO{)MJfPuDmLh3K0^K9ks=ecHid3gZ<8?!xJ=KobwQxmeYv!PHZ5D^h! z(x=gA;O_1Yu~^Ku%|30=Xf$?Xb|lC1l|x(O2L=Yf=ku{@)hc#;P*4#2J=gVEdc-gn zb1vTD;bEktq~OAZ3m6<6gwbe3X=y2@r>6k`VzC%AGc)M!?lv165D)+!j|ZJjXSPYQ zd-rbp!SkHI-!|8nes%KXNz~TX;>3v)U>L@%-(LQ>@bdC9DddrnkvYx({{4IG-@hM) zg@s5+NHFVPyLK(6r>D{1-_N#v`t*tIv&YdK|LGjs8!r-xU@#ci=eGc$R;wLekEPh> zV$S#esi`R#jYbHCLU?$1ptZFXrKP28zrVjfrNF<*2W(hrho+ z_Uze%jEoF?{P+>yzJ0^1SFezmn27J+zuUcSUteEzbaXg$N4JMdOk6gsW<^Csfe?Z- zXU(STOhy48f-=1Hm(;+@S9{cv~vl??yP!P6k*@9E2PGN9x z5E_jJr%#_oTwEM{eSPi5>*&w@Pv_9y_>hngY~H*X+1c3`9UX;Qt;V@?=YD%V&NAoX z6^q5VeEBj`Qc@rg2#}kbi@kgInw+ChD6nC}2E@k3A}A;b?d|Q@wrv}Le>M?9Lqic4 z7Y837A7p1|BO@aNOO`CLd)s+=d1z>8fR~pSyW8vxbBW1OT=HknrAwEf)9D}*i6EED zO~yMqzf!4$TCK*dTemE}&O7_@G^J7rKA#VXL;{&i29ZdF%F0U4F*`HIbIl=_@k*r< zdc7XO!NG`+kH>)n2LJ#b9v)6#4_6E!rdyV?A3-7qAlrt^bD=$S+w$b9HC>KSG zm!e!0EnbRpQC2ssYHDicGY*QPENE$IvD#;~c&+`dSc;++2eWrrQ55A8=>O-XC|5;` nm!e!0EnbRpQM7m|%0>MT! - - diff --git a/docs/html/inherit_graph_18.md5 b/docs/html/inherit_graph_18.md5 deleted file mode 100644 index a82934eb8..000000000 --- a/docs/html/inherit_graph_18.md5 +++ /dev/null @@ -1 +0,0 @@ -238e63f4fa2c03bdcb41150cd563f850 \ No newline at end of file diff --git a/docs/html/inherit_graph_18.png b/docs/html/inherit_graph_18.png deleted file mode 100644 index ee157ff293acd9457aeb6abc7cfb8700b77f9925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1741 zcmV;;1~U1HP)jkb(zL_ogK#?~8qQAvfZ;fsdUAnx$86EH5u7y1(4cMTzAFc?CiP^D72-R`uVrplis{DvSBi8?zw ziEd|Sr${8qjBA6zfDj6Y!%nA@%jK4rm-qJeX2x|o!YdRC2qBF|D<~+qdGjXm!|v?t ztifO?C@9#zeS2M9-TeGK0AOxz&R{U``TT9$wkZ^fuV23=n)b|@Gebi|=g*&q5K1Hx z@as}vT3Tu}8l_SxlgTVDE`Iy=ZEI_5ettfi&DQC3kw^raC34r))U<#9{?%;&z_DY; zrl+Uhy?cjGw^%H7b#>8!ef#$9?Afy%4rkAvJ?GAy`~Lkq5z_VR*N+}O%3`q!3kzSo zco8=X0D#x)jWLTRJ3G6uu&|}2MWfL)G&JCP#w~JJS64|%32~y&=cCi_lw2ifq?-4fJUS7`Ft;5z6=I~MMXtQ zrIHXSh9^&+h{fUu4;~F`YsbdMyk2jjBCAxYU@-Xl^=oW@@7}%2%1S<;pFF|%peU?X zYs|<$($UdTU0sb3!q=V8=ZijyKNF6Pjp6Rf$_k6c@_0OnW+O_5DJv^8nM}BS@ZiC= zwl>@z7#M&M&dtr?Zf$Mt)vH(2aEB0*$z<2AU7MPkVzb#ZGczKQ$mw+U_4VcE=3;{{ zU%mhU{C+>~4i66l0LI71aY(JLt#}+S1EZs(tFuUCCX>nVQco~4G6Dd2_3BkjkVKIY zLiP3aDwPT$w79sqbLUQn!;vIA0sw&3YKXT_6zPE`CN3-@Q2;4sI|Q3;+NQBkufbF~igD+O-QL zC^7&*uh-k{_L-R(o6Sb2(~loN{*T$kC1v5Krlx9YYHr-PF)=X_iA37l+n1M@0RRGl zU}a?m-yZ~gKA%RTO;1lpUu#KXrO|$Cvze;9X!Lr$!{NAe=~B#R?Y(>VE-xs=?&|8&YPFj-ZA#Bq${{W+EJPv^ zHk+NDo$YeD+S}XlIFH9uC=?eiT=?|qQ#c$pnN0ot{X8D;#EBDHt#)K&y zDwRKf{!BDEm&^5dJVcVIlEht-%^gN6l_G?$T)7f6E))un963^7Uq3N15ekJaU%o7t z%eh=`k}y)uVrgl~>-9D^Hk!@m+qZ8+2on_%n zSS*&&XgqoHByp&xr>CT(L?)97g~Fksp^AzM0D#$SE-EUL%jFynr=g)itJQAaygAY2 zjg5^?r<1{85c}a&Ny*(Bv0AN6CQ~F5iN)f)ygaknoZNoxS#)%CKnS;P-C9*uH9kH* zI5?c2SB zCDE&3s!&TkNuh)%DU|Reg%X~m#M#_Eefl)>aZqHKIKo#~S7$yBiVOp(H!E^NJ>y9V jB|J%?geNJK@Fe9gEZraEER+F~00000NkvXXu0mjfjtWdb diff --git a/docs/html/inherit_graph_19.map b/docs/html/inherit_graph_19.map deleted file mode 100644 index fe0a2f004..000000000 --- a/docs/html/inherit_graph_19.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_19.md5 b/docs/html/inherit_graph_19.md5 deleted file mode 100644 index be2d63e4c..000000000 --- a/docs/html/inherit_graph_19.md5 +++ /dev/null @@ -1 +0,0 @@ -25b0028d3c12f6210f610a841866a3be \ No newline at end of file diff --git a/docs/html/inherit_graph_19.png b/docs/html/inherit_graph_19.png deleted file mode 100644 index 00e09d9e643a45a8bd84303cf06e3dc00ecc3466..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1757 zcmV<31|s>1P)j=3o?IF^5f9K_c~H zt*pRwWF=8=dLW7j*XmWQC|qWni(Vx8LZV(M8~6Z;BCfKV70A}%nMTX%VEHVt|V3A=shZj9@xm+C` z9SfBTX3@~r)}~Ua=;?1~GM~@qbUL%15@u21bUJ-LU$li6dr(hLPqy;GEJ7fJ3=7_q zVK@hi48u8CWEjrDB4Z;Q4jYX|kw~9y?LK($ zAlE?$2M0A8jaV$^^Z8X(RW_TAUK$-8RVtMdi39-P^ZCAf`Lccc_7p-e>Z+}+g%Cmr z`Fws^S=qjQ`~KwA$Z!(Nj~_o^Ja{}F$W}As@^^_W`#gE_q^71urBaQLkNf?8lgZT5 z(sKU%d1`fbcDA6PfF9@N<;C8gr-sR7LI?!{fxf=J($Z3uO7-Z`qcnXM78aua*u8uA zfddDqaX1{#NY1H)qOjZT3`<<<>goUh5JG|=E?l?}i9{%SAP{J6Z6yezxVZSxp+n!k zeM1P%&CRv8w#sBOi9}LYSLgM56S-|@XrQxFDwPN!rBZ3NTB+5I8#f+1c1*2S3j~77 z%1XD}ef8>9sZ=T!i<_F7NRp%uOBC+XrAy`I<&1G85+Mkpxw$zy4V%rzQoBho1lyL!0^lxeO{4yJRShRz`y__6S}<&C-YW1ugEgqOqy7crLrgM z>FL?Ld9zR`gbk>wzIpS8y1r05(A?bIuV24iiUa}yJq-qfDTJdO&dkh28%dJ<@Zm#ANeN3Pt5>h??(RN$@}xqcFdB_7 zUc5-NSn3;Hwrm+l&|U`VH#XzVWFgMGOLjhf{Mgvo=yW=3YHEZ+p~Yf(@ZbRefFKBx zBwxRNT~Sd%A1s&4b8>P%efqR?>C!)Oo|BW-jYzWLDl04Ha=FcBQ!16TvAesQB*`5+ zcCdd|r_l5C|Zkiig1f2qM> zFcOJKB$E96e7D8># zWJy|N1VLQ6a;34cQ7jg>wYBZqwToW5ckkYY4I4BXO<7sl$jHdHZQB3R)*RIuS zwIwAbEiEkugMof15KDV|dtYB4pUHR0xQo{;lM2IH+xA=JLe+b3h2~cKe<^duYqQ{xBAk1r|VLUavRy)rY}g z$bKf6?2z=`W%>{Vfv?E_6!>z9;T$Y74Ci2xVK@hi48u8bHvSHWBl~$^7BO)|7X8yD z3?_Xbewu*c8oVdNa1It3hI6pUFr0%$hT)uF;QCV}l{I7i00000NkvXXu0mjfbyQW0 diff --git a/docs/html/inherit_graph_2.map b/docs/html/inherit_graph_2.map deleted file mode 100644 index 5dfce1d9d..000000000 --- a/docs/html/inherit_graph_2.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_2.md5 b/docs/html/inherit_graph_2.md5 deleted file mode 100644 index e449e1e0c..000000000 --- a/docs/html/inherit_graph_2.md5 +++ /dev/null @@ -1 +0,0 @@ -0aa342f801aa388bda6c1fd8208d1a41 \ No newline at end of file diff --git a/docs/html/inherit_graph_2.png b/docs/html/inherit_graph_2.png deleted file mode 100644 index 1229374176a0181e7d0046bb425acbccec668514..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1427 zcmV;E1#J3>P)0EU&yVxDdf(@~ywCHz-}C-CdxudJ1q{0zR<;9R_&tnBG=LF_1~4MgfZW*1hYue* zJ3F%#3PTi=$#nAM$!K-cOd<%PzrTOSLt@xOe}6wg5V4lrt&RHn`gSTFh6G?37H47h zBpSeoL<1O+XaFP9HX@NodU|^Pyq{eyl3Xr-`0!!2qsTtHOQhq+k3W9=I9m01Jk8C` z+v@S$xpUZN-oAaitsXOAcZrl0j7B3B!`ZWEvmH@9nTVuPsW1#E0`~5PR%ht-$ zUhk_{ubw}Dj@tZpcfZAEv)#UZn$jFG->m>+6r_-g# z9RM5-huLhNot-oAbN_V3>xt*)=HXY4L+Pbw@dM0Om|Z zXw4)DB4O?bE|-f6`T6+(fZ|M-v_<;<{kvAHZEtU%nVE@1A{L7!6bb==SS${Q!{}X$ zQe0fjVzCw$7Gg)?!i5V-qhbBgK_*>ysX>w>CMPEa0)bE{4243$U=SI{$HxIcC=@2l z{V$UCpscU2Mqh(w}`7cc7d z`mbNV{`m3Z)2B~rwfg7JpUFDs@pwL;52>C3Dcq%dZ~y?C&GzoyyOoudd-v{eRJs*JfsB2!d#BZB;6jJRUD$?wO^KkhDb-i^X^E-qmWg91h21GS$}BMj!R` z^c*{Otfr<0$MK<|q0^^N1AxQfC@U*dDwSL=x22^;uh;M0yEj?q*RNlH{rYu&em*+g zWk6c)5LT--_B$#1p=K}`+S=LR!I@xS?Wo4yICgbz@4u>N}?thKg zl_7(J!~d14s;chp?yR_mzjAP3*kQ6DQXmk(wxHMRcRmujkl - - diff --git a/docs/html/inherit_graph_20.md5 b/docs/html/inherit_graph_20.md5 deleted file mode 100644 index c220aea8b..000000000 --- a/docs/html/inherit_graph_20.md5 +++ /dev/null @@ -1 +0,0 @@ -076cc793e5e0e8d4fc108b64f22638fc \ No newline at end of file diff --git a/docs/html/inherit_graph_20.png b/docs/html/inherit_graph_20.png deleted file mode 100644 index a1fb22e043e5dd4b4c4c0248bb10259231291c62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1594 zcmV-A2F3Y_P)0XY$${f5dL~p3!MOAQ9yh^03bdfV2BS0003%vr@z0y zwY7DjQXyoM($dnFmKLe|pZy>biF9>!Wj!TAwqaSezrSBTqK==`+1Z(`d* zM#%Yq06=^|zz`o00EiD3oY~n~m&>(m*|JTWHUU6)cQ;Mb6h#dV4rVirMePHt)q3;h z%|BZ@7!0y3%k%um$VfCAJ$m%$ty{McLT0l$3+fV!%Lit&`Ocj?QkP}fg9i`(CaoVo zeo%=}tJN8o?(6HTtgO`Obou%DCX>nM^GTP6hlec|i(an>fJh|r>C>m3J9nlb5mUNU zSzJEICV6>z=wJ5k-Fx7`0ogs9$peTxAn2Q%LilT_er>Ccznwl7fDJ(2J zeE9IUZ{H9?U%!5BYHFfsTCdkvS66c!mn>{;ZLO4*#bQASSu7T>*Nd-i*|O#M@#AG> zWg3lU!-fqk%U-{J-C!{2bh<-_4he#QrzMlSeED*5adCV*-UpaWNsFS$Fib;3gFLv; z=TocI9LM2G#$zxT5JDc0hhdn4f`YQLvZ0|N1(o>HDPyr7z`qWqS5HX zhY#=Gz3cb;@pyfG{qXSclP6CmCMHZKQ%_G10PNqte|&trx3~B0+qWepB{elQq9`T| z+tJZsGMR4QzKsxKSvG#cqeqY0+S;b3rmR+LMMcGn7cau$@ZjL!jl8_Pf`S5#Mk94+W@a)jml0|F!pX@= zc{D)~rlzKfii#8z*REab_xn$tJZUzYT`t%2=g)uZ0uwx6Q0D#n_YQ}ntE;QLyj-i* zdOV(vjt&4|7)B6;SFc{JU%y_OY&05GD%FP%A6BebF_+*f)x6HFsmf)LWYP#BqtWQ| z`79QTH0byH1wp8&s8Eh+v)ODmn<$F+@893HZQHwd?-Uj|&(fv*;+dHlQ55xh{nDjN zS(bIX-FTd)>0P^axm>Q%(b4JYX|LBC3MvuBM)qe8$? zD0Jq`nU^nLMx#+d5OCQQ7C6t+rR)QSVXj`i>To!8I$cXk%bq=Zq)YAX?VC4muB@zF zw{G3g(9n(@I{@I`y?Z4kB~?{bMMXu8jg3yHQ@Txx=hUfF&z?QY&(F77t?8{NCArL! zOxk9%g+igezP^ncH?Cg2+U<6?wY8l;e_lD-_U+pX3k$2Ns+KQb?smHafq+)4RZy8{ z=_n-ozj7cDz=ysx0ula4;OEZrKN$SIzatUkEPxLn+a07*qoM6N<$f;kBeR{#J2 diff --git a/docs/html/inherit_graph_21.map b/docs/html/inherit_graph_21.map deleted file mode 100644 index f81f579f0..000000000 --- a/docs/html/inherit_graph_21.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_21.md5 b/docs/html/inherit_graph_21.md5 deleted file mode 100644 index 2c60e09d8..000000000 --- a/docs/html/inherit_graph_21.md5 +++ /dev/null @@ -1 +0,0 @@ -ec3287c202710c96b89e2e9f6e81a594 \ No newline at end of file diff --git a/docs/html/inherit_graph_21.png b/docs/html/inherit_graph_21.png deleted file mode 100644 index 477ebe48b3cb9a64cd7af773351633a7acf39434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1657 zcmV-<28Q{GP)eV6pIxvqgbqX8O6%_vte*>5G^e& z8-a zsK>7V-H~@AX*3!Tk@Tppu0}&cgS5T4xF~BLK@dPhn4X@7*=$B-WhH{apsX4GrL+_; z&-36o4l0!jMMXtuZf*wscBSRq+#Cc!Kv7WhjH)T zJ?!4S8@ai;xOnj*mY0{MF^MwWzI_{e_wJ3moroM6f2Y&waOch){P^($gM))fjV~`R z$IY8JaqQSJ2yZr4hDlbbLI^6dOh;;@^J3lIeh!}P3rgi{or{XI-L%srKNcG z>{-(9Q8Lm}ynTIrAR_$w^$X9RKgZ+8kMZ>BQ>nkMt`6_sy~C?lui)``U^bi4-`@`a zsIRZb*w`2b1_m%SHHDIr5>!=Ht@@y1aXOtao6Tr%ZwC=!XlN+zb6>o8f!5Ym1OfqA zEEb$Rc@m#KeS*v7!pO)7dV70Uy|L@flnS{sCNuuw!-u$a>lVI$|BjlPnyA+}efl&) zp%C7`e~*!o5s0FQy1F{4-)6HxqtU?acB8kq7mpr2TK^jq%U`T9lICzY$Y!$<5z*x2 zBmtnYv9YMkwzf8DyR58?T3TA9?f(9L z;y8}N;jq+p_Uu`@e*Jn{GX1W)x|$jq8lu|e$Y`}%Ne~1gA_|2<)Y#ZaIXO8L2n3QE zUshH|&CShmbB~XY69DpfJW~IM4<85sefjc*+-^4kpqZH&ssGKJH<`EQ?e6ZzfddDi z)oQ_U90Wmt&*uXGc)ebz)oPebrl@fqj|TuyP*4Dl6=H}q_deadN0I+lC zPU&xrMuV+ew<0?`dsSN`5|K5N92p%B2RM$yu3ft@JUon-FJB@rFE8ow27@7PUQra0 zm6Zjf(I~a8ES*GAgwN+gc6K)OdcD*is|HdL_u7VJ&CJZ8wzd{MJv}&a;smr>EgTL9 zoK7bIz-TmLX=w@LX%kcaC5JeG< zjg6?Ns6c*xK1?PP4j(>@D_5>yc6JsM6BD>`<3_5xzDml)Ycv{h_wHTP*49F&)1j%U z38zk-TJ@YKPo7}kzJ0J-ttc)o#^~rMjvqe`0O;uGKuJjnDk>_V*Xwch>Q&h7c5L3f zIpN&bu3f|H*RQc<%NFU|hIB|JlU!2Gn2vqy?CgYAtHu8P`(ZYlQBY8Tj*gC1{o!yJ zCX)#~&!fJ+{;&6QEgaG6yN6dUK_hlkF_Qt-s7H49Fr!==!mhxmfWsip7eTQ7l%xjAH! - - diff --git a/docs/html/inherit_graph_22.md5 b/docs/html/inherit_graph_22.md5 deleted file mode 100644 index f4009853d..000000000 --- a/docs/html/inherit_graph_22.md5 +++ /dev/null @@ -1 +0,0 @@ -49199d4be729f845c926b145819a2f4b \ No newline at end of file diff --git a/docs/html/inherit_graph_22.png b/docs/html/inherit_graph_22.png deleted file mode 100644 index 62ef832d0dc126a78d90c30be8c34cc92ee5fba0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1564 zcmV+%2IKjOP)A@-_=g2068YGJ+`V&P6j~5&bc9`m8buLD4Ky&+j69XwB)bw&wHu zbzUHB=REU#eD>vdo_{(agg}zCr&T}S2_z{RS)7t)$>NkWOBSc3S;;>)bar-9S64S5 zS){*MYinynTg1$%C<<+DZ3zh^Nuf|EYQ06woYQ8iWJ!v*mX;PuN=jzzlWR^%vt)5f znk9=<(kxk=l4kwyiqmelbLrBh`HnHG|3XGB_)iz-rcIl;a^*@`o6qOt*s){tlIP2p zFX(i-s6WZc$qC7L|Ni}1b3A|k{Ev+tPf<@LNx#luF!19|Ud6@5q^GARe3sm?V+TLq zY&JGFMt*)i7K?>7Yt|$*&+m%M%;|7A(CKvO^?I_iv#GAG4%;~+BO|!oZnCqpS-f~L zCr+GTY-|jG(a}-dZZ}z3S)`|@<8V0W>+73y%mW7w(ACw&;lqc~>2%obb|CU!=EjX1 zsjRGI%a$z|jYih4UCX0KkEpG!W%=^uq@|^C{P=OErl!=-%$2F8riN9kRz-b3mqcXz z(bUuwWo2amcsw5T`tM)+;NTz!4<5v9HnVKmG7cR&#L&=CSgx~Y&$4aXHcTcHt5>h) z-o1OjmEm{9r8wK$+Yv(W?b|nQ+_=Hjt5>;p?V8%}bUJzRlpccX#vf;Y0fS`^nACrLeFt?2DL5b8|B`n~lcCMuZUfe7>mL-n@B}3l}ahFff4K zZfEDtoxFPWia;QM-|y%4?b}?xeqG)EcQeJ}PiCyDs>1L0bL-YEQd3ja_Wk?!Gdw)Z z)2C1I`~4`2g45{?`)pHF6E!t83=9lVUS5vV=~O44Kfa&DPrP2Qn4$TX)YsRGl9Cc3 zgb;mweF6~O-Q5w}DT*Qh@$TI_wQX{8QkYC85eNk49LHv}iN?mpu(r*cH;aab2KD`h z4I4yVU7h;AqoYIUbUHCQI;ysnm6eGzXU@bW(~pXZip0^QM2bU@%BhQW7gyu8jCxZ*MOEnVFgDVm&D-iII^Jg27-sq5-gU=~DHz z!C+v~qD5gdh{0fBe0)5inG%ul!Gi}>R8-*cc*x7k3mZ>S6q1vZv0ANa+w{^zQ53b! zY&NT}Q&Lg@7#|-`$bO3Xfav4LkCc{{($?0-_U+p-8jaM~*VEkG41m>YWpZ+oo}QkF zby-$c7J9v&!NEb6ELrl)V^6Q0;wjcliSTbSzI^$T;^JbetE<_&cW*@hiWMuEn3$ly zzaNXm0>GO$Z`8hcWQbMF-|qPMI8#$oq@|^?V8H@>J|E}LpI7@W77GrCgCj?d@Z!Y_ zhKGk~XlS6ly&a3i!k#^QaJgK(e*K!ypFi{X@nZ@L3;Fu>>zrd}WMmKs1elnZi1p71 z%R5)5SPzK)bjDAgKCyfEZi45`W7{>*Nf3;Wc~W}*lad3Gc##wYKlvSc+d$EenM>e7A7Gd%9IjdmU@#RKjwdC6W-nh_tya0T_{(W_=9DB^oRVhA;*>N?7N?|HQ4fe(T3QmB zL;6c~c6LVXi&~t~o+Xx~M2WaUBuN?}uMkPvC5uziELohAX364|H0vLcMX15>OPCJ; O0000 - - diff --git a/docs/html/inherit_graph_23.md5 b/docs/html/inherit_graph_23.md5 deleted file mode 100644 index a32ece964..000000000 --- a/docs/html/inherit_graph_23.md5 +++ /dev/null @@ -1 +0,0 @@ -78c3377e294b77a5f5004405aa37cd8a \ No newline at end of file diff --git a/docs/html/inherit_graph_23.png b/docs/html/inherit_graph_23.png deleted file mode 100644 index 1e3f1d689516a6aa9f88c445b0413e89b4095a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1661 zcmV-@27>vCP)uo7-BZ z*&pgfm>?m&saJb3ifyfzt*FE(w`x#}K@{snppixxQErvC>;4oYa99@GyuTNR-{nrd zHtlS+I-ghPJonu5J@-7{d(XLgDTZNyK){6HcMpK@S3&$lzzOja0Vl*y1e^%D6_3Z$ z+S>ZNhC-N+R8&;h?RK_0?fFF0^zGZX=X^+n`HI);^>{qoh%mKLS6A0ujfXJ5sjI6? zije&i0Vl*y1e_2*5pY8MM8L@(?I*2Pd-?L^e@%K`^Jn>K)22<=u3clRUa$A)(WA4Z z_5J&IDjh?M~~8~yng-q*E?sas;WZWip64;N_F7C0iVzJ)3cIh8w-DypXL&g zNW}b4ZEfw5BS%nqa&i)*%8ng77!I*mOs!Ve)YPn5vj(FI0N89chGC-7Xm4+?TrRJu zsOawQ#w#%sa`BT+r=uuJAP|(6mNqptv0uE5kB{4Iw$jqlB}C+~I^D;QANji7w{M@{?>}_t5Jgd1trn&)IvY1`wA<}lwrr6|Bx~2MefI2G zOG}GFp(rdYJa+6@B9TDN_~e?Kn^&z`m0IQlqclq*kuVyK0N`@D1Ofp7eE$4-|Ni|l znQZy;^$tnB>x^JcTzYPF)&q|I0A zZ1bfxD{}EuPfriSFcT9KckkZ4e*OB*n>SJ1WHP;Y@#4XQ2cb|%qtW#B^#Op{Y#taG zc=F`Q;NW0+dAVM%XA_Xbty{M=8qL+KR~d%!dcCO)y1TnCT(~egI;z!bckbL73=I?9Tk^j7HZK1fG1Q&Ng3KvxECIcDvn4k)P7u-rmsAz%UHD zR|WTOn=;%P@4I4JJwzi^jUtb?ZQL$JI zRgFgD>C>lkkYnMlce5mY>C&Zwf&#za&qm(Ae-8kmPzY6Dy?O-z!^6W!v8AO2#nD46 z5{YDxsI06+>m5sfe?I^`efl)%O4)odDYMPjECU9E!C)|OBe^`Ey1Kg5YPCcnp(x5` zvqd5i00@V}d3kv&SFYr?4241fP*hZec8hs=dE?{b;cz$?;{z;PwhR?SBGJNy3)#C| zBof8raqMy!r5`_jY_(clE|*%ZX8WXRS|}7Ml}c1aOE5AG0LWxAR1k~B01%JIv${Ie z&(ft!fhS+7%&=Kzvi8%bPoEka8_%9SJ2EnoNF>_Y+Rz48sZ>r)O`&^^rKF@pAP|g= zjd3l!d-rbM(FlI&{UBR8jAW30`}VEDU}$P;s;Q~rp0Z-aipj~z!NEaPefRDi3g#e@ z%8eU06bi-a)vNjP1=D9cL$j>NI)CwaJdsEg78d5`=X<^0wzf7DFD@?D>2!w=AAa-Z zO*9(q=;-L_=_xKQ-m_PgYk~%jNPMu8w75Vj>s}IvftC z(|PgYMT(;M@&(gpJ43Uq$l6azrSjalbB&FSQmNE#x9{D%mp$Zixz?>)S6Nx9QmOoY z|F&)00Kn;VmY0`TS69nqGON{Uu~-%?Sisl0!{O-d?G=l~=#3)>vXa9~T4}f2{o%uh zD_5>0{r-f$3v#>N5{YE}`t=%(rl_dM>2&5Gfey8|w^J0gXwjmos;c4PVUNe7*Xto; zzPPiUp;=Z?4Cl45v$GTJ!gA}2@UMZsSK)r(^zZ(jNtg|OgP+3TaO(dL7K>%>M?%0( zn(s4b8>Lc7meju$vfdGJLi|L)3GovFC&W(#oTS;0cXoEp{Wu8okw_$>P$;;OG=6Gm zXqc<<5avAwgMnM6$g4X6BV_+XzzOja0Vl*y1e_2*5peP!I%iiHRMj)|00000NkvXX Hu0mjffnigE diff --git a/docs/html/inherit_graph_24.map b/docs/html/inherit_graph_24.map deleted file mode 100644 index 1b92564e8..000000000 --- a/docs/html/inherit_graph_24.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_24.md5 b/docs/html/inherit_graph_24.md5 deleted file mode 100644 index 1c1352536..000000000 --- a/docs/html/inherit_graph_24.md5 +++ /dev/null @@ -1 +0,0 @@ -1c18359f563e66800306e308ebeeaa25 \ No newline at end of file diff --git a/docs/html/inherit_graph_24.png b/docs/html/inherit_graph_24.png deleted file mode 100644 index fa5c6b2a08ee049f8faf02ece3be0b15161d33fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1787 zcmV7F0wp5O0$`R<&1FBgm?Nq|5sGK{4z0P$ade1@O{T~ALBHW!~heOkPv6jfDKFdduCmPjNgPo8wST)#alMWS?m{P;2F zq?k-5SbRw{@o)KzW)2)UKqe83#bh#BO-;?_&70{dz-Tm*BpHoHySuvu0zpMZMMp=+ zUyjLQv8Wl<*4Caqdlnu~PfssM&AE|_&u|>aFpR-ql$4az*Vj{T7EMe{7>&k~l9DxR z)?B!7VRCX301%7Cj7DQ|aq;Tat8pCv`t@t3VUHg_?smIRpFWLYm_nfdvlsd8+qauc zrro=DbGh8|^76ND-!?Wj3WdUgf`aqs&nFTI*ez4KhK7cX8#ksOQzQ}zjYb0iu-R-3 z1_J;Pi9}AEIKk)hH*DB&>eQ)k-@Z|mT)%#O-@bi396(Ifj~emm-qJe0swS6U4MW7>({Rb2M5c_%9KhaHGvdbT3Y0C z`GW@!NRo6qo#`DqIy!FOz8wyS6$-_{g9p7{ugBwYxm=x{oz(aD=jl=~o6Rnl>-qEN z91aIYjvYG|jYdCw_~3H62!haRwNz)T)!NX|5DtfRI-ORlg(k?9TCG;ISge78fzHm( z`L{fcMl&=tV~CP@<7yuZIc`BQ=*002Wn zL$EnBGsENYJRVP`(I^oiJ9qAEZf=Ih+qP|MYHEVVy}i8{hQ(qr*wkn=SFc{pAsxlt zyLUMpj@#{~B0irF01yZSVDsb0j{tz-;bB-wV`C$X!$mF>3S~+?FfafB7#$sj@t&R@ z0KnMT7)g?qm6dScr0DDG0|2~v^CqP{O5_xYemmdfeUnZ}RVtNArAm(EvYxfIwaH{M zE|-g8n9*nqg+c&;U@(}MmnW4XpG@u-R-fnT!e&1i@r7#bPmR!hIHs4glcu`S5_vW&;4? z@pz`xp-_m!;ZXfk^hp7Zzi!<+kU``W{$Acik~Ez;e&3v*(b3Vmy1MrE_Wk?!bGclL z#nRH!0ss(;#WOQAKA$i7(xgp1S zM28O_*6a0seSP1*e}DJxol>d%`SWL{!36?=$K%QQ&S;)=bKVDxkB=WZbf~tr_R5tj zDMLvll0AF&T)cR3WMqUOh|8BRS65dH1cGc+OQq6XyLMf=bZKmC%?cXzYdY2%4bSS%I{ z!&a?YRaI3rJUr}hIFw2ym{;T!iL#n+ZY)R&j7<8!Q)_E0yxv^UIuZXJ@V%hq7tH?a z=d=jgSOT8~gTeG)Mf7?-{gohSBkTLkzeg+lUmrBWp~G4zN5K?CUe3_%CTX9zk#K10v} d@)?2-egVFMRUF$NcZvW2002ovPDHLkV1ht(V=Djv diff --git a/docs/html/inherit_graph_25.map b/docs/html/inherit_graph_25.map deleted file mode 100644 index 1d0f88367..000000000 --- a/docs/html/inherit_graph_25.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_25.md5 b/docs/html/inherit_graph_25.md5 deleted file mode 100644 index dbdd68319..000000000 --- a/docs/html/inherit_graph_25.md5 +++ /dev/null @@ -1 +0,0 @@ -8e167404950741e45cc631e06134b26c \ No newline at end of file diff --git a/docs/html/inherit_graph_25.png b/docs/html/inherit_graph_25.png deleted file mode 100644 index 6a14defe819c9be82d517fdb35d2e12a70a1499c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1751 zcmV;|1}OQ7P)BWK~#90?VDXp6H64wXA4oWA84X2q_7lSc*@Ym?(rNBSh;1iWFL4dVrXdS_XTCywryKb+@7AEF#Usy^P8CCwe!zm>(;G-U-o)Do|2Lh z9LLwLT^pMONRqsE?OJSN{Y|1-AqaxNFiap2WM*dS^?J6Zv$L}#NoHndE?>U<=+UDd zj|TwYcDqTE%*e=Cwrm+e5aZ+He8cYDyVqi|G&D3|7*goUhMx#+65C8zCrl$7o z+b5MuWinZPef`(3U)fB~pFdw#Rwj{1RSG&G3C;=_jzfBEudcz8G^C8evY3wGlR zcj?k4rBVs|1h!e4nwsQtx!rDOJzKVHsi>%!oSdAPm{6K zl}c%v4imb#xVXBy+UazTj*b=<76JgKr>7Z)DK9T4Niwtu&z?OKi^cEWy}Nt&u1qF# zI2>~pN2OAwq@+B5{@myDg_)G_002xT6UP&1L?j4EdwY9LO%1~^@P-%}843Ip9*a&+ zPD0b~_e&&_!NEbk(ZUO&wY3$t`}+DY40F5P(5$PgJ9Fkt6yaEI+_)hW3N023>-qTc zBLHA*Yz&%j-n@agFU+K+r3L!ovSGK|`9hD5jsgIjPABxkT>>kJpqmr=8HTxd@#3mg ztHfe)Z*MPOaa1Z5TnR#9CuLqj1rg07!)!L^=jV$=A`HVwlC<0H005iKmXMI3R4M~| zj*X200OWEx+%zR5B+Smv+HAHcf&u_mu3QNlOO`BIx^$^fC}d5q*Bf=X-rnBE#zv#j zn4h1|Iw^`uOiWZL6wri^81~p-DwV=UQc@BC!0Yw$g|^%6LZOiDA5@>96=KDT70`d| z*s<~P@w~jeva+%;nd3Olw&$FbD2P}PPN%cBw)Vn>3l4{ars=k}HlNQ208l6te!m~y zSS%SC83KX8<#GjH_KqDpc(W1wqqm+&!vO$3eE6_?_invjzjNo#K!19Ay3gmEn3#Yj zywTIs(<2R?mX_x6c&4VNU^lDPI`37`G+kd`PY}e&$jI&6w^@H^aoBGn_$DO^BAx)R z*GtoMa&q#bMT`3T``g;updZI^f*=kYIPm`c`9EI5-&f#e@kr=cdx-a&6zfy}G*k^y$+yQn_i2~ef#eQTo8rQ8`S6*J8m6c_&Sk!7Y0Ki}{ ztXZ>0qtQsE(#FO{tya5u@nXKgo12@TJb99olms`@Q4mo$lgVVYT5sLD6?7f|e*<7L znM5Md`t|Dz3JTJ`+SJ zaX7kGC=?9(@1TVWdSoCtAVDBFAVDBFAVDBF%(1EL>gtMp9*70P9D=B+sfm3ahy? - - diff --git a/docs/html/inherit_graph_26.md5 b/docs/html/inherit_graph_26.md5 deleted file mode 100644 index 2f2ceec3b..000000000 --- a/docs/html/inherit_graph_26.md5 +++ /dev/null @@ -1 +0,0 @@ -bd941cf5ca406f61dae35d8f8f03d70f \ No newline at end of file diff --git a/docs/html/inherit_graph_26.png b/docs/html/inherit_graph_26.png deleted file mode 100644 index dff183dc897d276924d3ad02907f24cfdffe2b8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1778 zcmV&QePa$&qZdM1htChFhF$6Tn|p##22~cEHZB`i$XJ$ zTFV!XXslUnJ-y(CYeQ@GrmR(rEs-8pQEe?}@1zOMQLT&w@5Ku zYisLVrGl8xl$Mt2bULc~%X~u+#GN~LQl1iGzGJi5dU|^35q4}Ni^YUFZ%7jAU z>eZ`LoJlYkT(Dq4iba11Ci4xB;~0jqSghRKT)kdT4gKios8*}Z&COl1WJzOV3324u|8wfdd$Z$z(F{>%?1BRHW1CHg4R=;cyBI z3tzr`X)qXaa&mY)-r>WCBasMfHkDjUOG|!!er%Z{5{cB+)d2uZCKHRr0swsd`gPyF zeSAKD#flXT4GrJEeWNltefo5Hc{!KMUA1b}vuDo|OVf#aE{@}uFJHcL+4-E*NYb~1_uWV3JR*LtEp=oMMp=6R4To3 z;|58RHk&QB!TtO9FI>1VJUlFu$u@7^+~42tbUN*J`=dvX?%ur%+e}|Bist5KyWRfq z;lr$~EEw6lcW*El?Ca~Z+wBBFs8lMdvC(L3X=xcA9tZjFBdOfR4SDuNy6L9<#N%F z5(EJN@caF+IypJX<#L@)=TyB>zJZjKl(e_E!}9v|>swn}VY$1z8^f?rCY}PsC6E|}LZMJ7=n*FKjm2Uq zE-vP9I2eX$wOXIg2LSMTy=iG_d3kyCmL87>03Z+u;CeGHEp2pk)a&&!5Cs4%U%ng` zGBPq2E?h`W3>g_2;c%F-Tvu0@Mx!yAOvS~;RFEJDHk&OLi(wW1uR(JF0Qh`9EM#V8 z0sz9{@bsl)&y8x3SemjR<&{_ozu(W{aF#7w2CEW@B&h_ZL(;za^5siyZS9#eXNHD` zB9Ta2Tie9M1OPxR7Eex2!h3~6BoeV$tUw?@|Eb%zZ=W(7)^F|al9dAhynp{*p-|}c z`kgy>(&H;vuAG>d7#tjg)sG)P!r%-_PeroQu?Pf$P$)z#Xxwf$gESJ8^mPh{!;wgY z$K$1^r`v3{wzf7H7YcJJ}2{P^*sx3{;t zy87qOpHp?7ot^D;I-wC6kU%c(x;PLBR8>{&-o5+Sv13tPNhFf8va+V8rlFxBf*_6@ zIZ|0!nVp@@Kss5Hm5wDpKfkoJRHM<1jEuP5?vp1^GDssaN&7}D7N0+VzP7fO%jN2H zx?Q_=QHM+>)7rIb<#M@1B5^nzn>K9%02qzNf`Wp|%1S<;uhD4KYITAQXLED&)2B}} zGc)0SiUCQ9o@87@Y z<>ggXRl&E}>FMdrl8FmO(w5VmotbulJgWKLz9)1QU>N5KKV6K` - - diff --git a/docs/html/inherit_graph_27.md5 b/docs/html/inherit_graph_27.md5 deleted file mode 100644 index 12a075552..000000000 --- a/docs/html/inherit_graph_27.md5 +++ /dev/null @@ -1 +0,0 @@ -a47d85a51dfeb15ac64bdc9bbe3b25ef \ No newline at end of file diff --git a/docs/html/inherit_graph_27.png b/docs/html/inherit_graph_27.png deleted file mode 100644 index 5f034de132dea60474f20ae02c6513bc775bc7d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2428 zcmV-?34`{DP)()CMVdM5(s~e32qx2nvdoQd%k~)mSVL1MU7FHrdp+^iNmH zq4Rm#na<4j*WGWYvpc^QK~WSyAO>Qx*a1M6CD1nzB0%3jhyZ;9A%dBDp{=d0va)iq zLV+x0LPA0c3k&h$Z}W{rBDsD0_JW55S?cil{I<3>^%^tnMvaY)3l$G!d61Zxs8Ivg zHxME~-#~}}eFGr^^v#lBdU`q|Bg59#cK!PGMiuh+_vdgpe?HEV_6?m*zk2oRVn?wM z+`oUnqoZSZc=+ABcZ3I7$kVm7e6w-m#v3^?%?2HGMQ}XP;@%|gvj3vG7wrK0cnGpYQ7Gx@y&`?Ck7`i3tFJ zLZQgd&v$WgS-Em0gTWXY8k%j`(arcIk{Y;1gd zeA?UFD=I41tXV@QlMfs?pi-%@X0yqamzR5ZcxWHvs8p)d)KmZfhr=;3F#!O4{rYv! zo;?%_#lgWLBO~Mc_wRTl$B!S6h=?GONbAjNJqv`4CX=!QLCufe*+I@LE zUQSLP!z>J zUIKwY{Z)xX0sxRorC3p^RFX)fo}QlBM#FuB5gZ&`U0sbG`}z4*R#sxiEiEkwf+!RU zteBdbT2fL%Kn~~1l`GcP)?Hm)c+J4T003Zca1blLeft&w@cHv+ERu?f3alQR35JJ< z^+-oWMdjz`45F|f8e|UHp03Z^HOifMQ-QCq&4h{|i0Gynhu=S>?spfHJ z{L%fLp>hC#4<9}-nM@Xo6(1k3UhnMeJTo&R7K^dsr%#`-%6XKY4MU~1adL7}C=~dD zMko{#2tz*xU#F?5DV0h^CX>z0&G~$ORaF&MPo+{B3`SN~*8BJG<#Ks-bv2L2qf)6m zcI?Q^%>4NA_?86PwMRM``^SDy?&bA3uJ$ySvB6#$vnK=H}+ag3$?rsx7A*8XB-g?mP-W7M(|r z9_`(`caAsnI>DT$o?!D&Kll5K;c~fVW@cNrZWRiJM~)mxPEMZR@fTsAK_n7sKibdC z%v|_L{$e5{BO4nVU0hrk3`RsmL`6l#{Eoi}^9_wggI|TlX7%dT_4W0}8-Ho-YeJR_ z&^HhwEF0e}OwI!U;Pva*adB~Wc6L@)R=&Qzr%#_I_C!@9CuD)U8=Gb08!YDmN1;#z z1_s8*$Ioxh!;>dZLPJA6Jw0E&dL@&|>gwv`a(Poz(>zN2C8%Ev0{fcA;MA#8?(Xi| z$2dx*GA=GIFfb6`+QfE0?CtF-6iRw}`nPZ2uzEi~ztYmu@bGY3Tidm3*FJsv6s!OF z^JiXO9+gTZlgY8Mu_BQOMNySXMWfLU9Xg~lDuX1Fl9KQ<92^`xo1#=IrBEn0Z{Ea) z%F4nbGdPxM=TdE=%7O6%{!-IjL{tZr;2(CMHHIm5RmU@bK`Mm>8_y&(Dua zrM9=XPfSd(SS$*KqEe|)6irA-h>ngH3WajHyr`%sARs`gRAOIwZEbBjqcT)NV{c!l zB8sBVpFg*?we9QctF5hdaBvtI8Nu3XbYEPShi~*_yqt&D)>Z(3SS;2SHBqzn$GS^kfj*h zV&yy_2y*GtrJ9&>oo;7mmy(h~CX=y=!B7c}oDiLgEiEl) z&z@~;Y_ztv4hst_E-p??OvLi}|2(C{sK7i5$p53AN3m??8_1FZ`UXM-=o<(Tpl={V zfWCnc0s00)1n3(G5p?7iYyWv9 - - diff --git a/docs/html/inherit_graph_28.md5 b/docs/html/inherit_graph_28.md5 deleted file mode 100644 index f95fb2ca3..000000000 --- a/docs/html/inherit_graph_28.md5 +++ /dev/null @@ -1 +0,0 @@ -aeb56dd48b98c10c0b10672e0d7df9ee \ No newline at end of file diff --git a/docs/html/inherit_graph_28.png b/docs/html/inherit_graph_28.png deleted file mode 100644 index f67d0bb26f7f6fc82248c103a3d2214e32603c04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2740 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 diff --git a/docs/html/inherit_graph_29.map b/docs/html/inherit_graph_29.map deleted file mode 100644 index e8d0fdf03..000000000 --- a/docs/html/inherit_graph_29.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_29.md5 b/docs/html/inherit_graph_29.md5 deleted file mode 100644 index 4dc1812ce..000000000 --- a/docs/html/inherit_graph_29.md5 +++ /dev/null @@ -1 +0,0 @@ -e4a6ce26c0c53937d311272f5c558b71 \ No newline at end of file diff --git a/docs/html/inherit_graph_29.png b/docs/html/inherit_graph_29.png deleted file mode 100644 index b725be8bf830742c116183eb2976a1c2a1ddadfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2001 zcmV;?2QK)DP))z)#Hc19~7M0~J!?_Qq~ zw7)@60r>_&1>_q96_9UYf~l#g+S=N*w6ryA*379;ety12qxt(dG3^_HKydx~_4&>s z8a#gdxUa9z;c&cr_l|OqXr8Xv^38?~8*bmeO?35o{o%uh=T5Gxs|yRn`}gl7sIqO_ zwqwVRg`U&j-(Of*$Ye6Z4J8l=E?l?(+jD)o$OO0!|92=UDIu2wOioS~6&11B?A5DR zM>!L>+x_2v|3z8!Z=kZ?h(sa`!)P>GR#ui$sU%MQ`1rU&p~%Y0TC!wGU0vPe8VnuCj?T;Tnh)m9&JzHE{%wRB9ty=Z+<;&30WC9*55{a%{xpMXDRSd(TkVVKM1f-emW4EQG>E>wJ@)9G*=pPHI_`0(MKJ9qBh zy$i>sQt6vFZ=OASX0=-Re11<)4*;O1rp9bGzk2m*XlN)mH@Bjqf_RU8=;-L+^ZB=K z-NJEPuh;uec=YH|YisMs$cR87*s^8Iz`%gXWHJ~GPoF-0@ZbTQGkZB78XFr82E&sl zPf}A;;mE#y``m7Ke}BKhV6fZmQmK@ftX8X=nwmyNMrvwmq*5vT#rD=V2y=HTFS5RaREwI1WEvX0w_6 zs@-k}063ja*qxb~VK5jblPOp+t^k5h^F);zV)z#G} zPoAV8M{w=hwbay9qtQr=3=R$g0IXIk?7n^b769<|>sOeGN~MD1a3yd!93iAjOG_0B z1@Tw-AB*ES;hWIXrKP3*@8J3K=Y39>*=z;?jE;`N@$T+!q8luM(1^uiu~}>K(tJMks$jHcm`^|)egz@olo6SZ+6acV% z`EuAuPEKC5Xc4h6Bqt|(JRZt&-QC@Cxm=^s6ciK?gLb<;F)@+L<-#ufUW4WU0I*mr z*hoo90RVVBp4m(LAL}zAv@~Hs!Ylp~PN$Pjr!QN!40d@uURVjthOm9}?c2Ais;YD6 z&J7O_d%fP4mX_)1X#fD1%bl5-fu9uu4u?ad(OfPU`A^-kV@J?zXn%Em7p@!t;N!=S zVzF4MRPNffi#(p0nK?Z@Jv1}~yPrRQhJz854o0}r{$yliOiWA=8ybtnLLrUNg#A8w zJRYyt%VaW>l9Kd#eM?IV9A~rHB9Z9Op+g@&d~mzn?d|P4osP|B@7%dlCX;>o^y%l% zpM8CO6%`e~e*Fp-JUu<#WHLb`QXqs}zg3g85tRBwK{^*p$S(y zV1%);vFz;Z^73-{G&?CNiCQuN!En-c`rf^JaFZKB0mQuX{Q2_(2M)~gVm=_ydE^3{ zfBL@P0!FLVCMG6s-MZCcv79(@LL!kwHvT+3XRz69{ayT53 zNK{;0tWv2W8-E_w8!nfNz6$4>rAwD~bac#J{MdS~iHH}FZxB>in7)ZxfrL-|uCA^K z#*bwd=Jiz63M3Q?MQdwoWMjq!alhWgNPz^I{QUgWr%!L%v?(nut)rtOSlLNj6ZgLP zBT*}mAanEP&5IW=j*X2;B$8ldC-DvWIUI#LiWq0E3nY9_CQ+*Z*A;(=vXl5CGIbR3 zLKF%le5x9V(gik~O(+H|JBfD|tZ(MGKmx-s*a%j367R&lZ(_VaB3Ri;yc74n2}slm zB-+~A$nnWP;(>%HJBe#h9R=dg_}5V^%=HE_*C5{@sDONfpaSv@f(pnt2r3}oAgF+R zgP=ly`Wyd$9*OwJ(d+d-zi9hyy~)hX6pO{tO$iYP2m}J5P)HuZ(A{AK1 - - diff --git a/docs/html/inherit_graph_3.md5 b/docs/html/inherit_graph_3.md5 deleted file mode 100644 index b2d4690ba..000000000 --- a/docs/html/inherit_graph_3.md5 +++ /dev/null @@ -1 +0,0 @@ -2615e22ac80e4bb168ebefe06616f834 \ No newline at end of file diff --git a/docs/html/inherit_graph_3.png b/docs/html/inherit_graph_3.png deleted file mode 100644 index 51a95a0fe14216d7adfd6da61494a4e15fea446b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2186 zcmZ9Oc{tSDAIHCCG}B}vNw~-|AyKyK3fUVp$>18sK3VH>vox3tW#0xvGg-zhDk6ii zhHMGRY@$X|5?v{ieaq7C+kJk|?~mX4KIeO$=leY8oX_X`e!o8Fq}th{5O5hd000PU zD+_yYWPx1|wi|p~-!d5lhduZUC=1}{ujgJ{SuOy;jIAw99V6)iI?2kxQ>u?!lv7lJS;HiFy7yxJ>7Pu$bEWXW9vGnF6{0SeLBX-;KQccE=7ox$eno&Ilylw z-ZE)IRzpW*+Kb}-d*A4jp*L@w?CtU8c3Kyb#>U1pT^prZ90)p8o7X&^)|{d@O#*>H zs8e5#;EhOjB+_d+xe^yjX4D4mlMxjOqcQ_g^1R3s1xwzsx8 zbbVcIZEew|0eO?N~wJFqS@_lQBxw$#N%6)TrW@ut!;+rEQkE~f7!$~EVf@}``{IasL@`!Pa39PTT z*GDJc3K<$2nnou7p-x2y=jP@jFv3u%IV?Ut{cx(^b^VzK)Bt@SbjTZYOm-MDe%(qE|a=L=F;TJHz%qs-0B)}v!gOgbm~vMAe2 z)71x-e?;qN3h?%u{T*{ehCv67gc23=W z^Ez?g;jQg$1b=mPbusd3d;2+>p`FC_*%4+)F}aRaI5ho*lG1cg~zTWePheE?#o~J{WWZPB77( zEVO&KNL-$+m)FPFkFf~%gA@vK<5N#Mlc`g&#nct>TkE*Jg!;E9LV8EA|8SNd3HV;f!Rr2WBGqceI?v^^CG@V7)bpbgky;vwKC$~55MSnl$@oNBhXdme7`&l3eGOVqx z76m?j|DMSic5-qW?}){!Q~l6z;95wCDZj0lSdnqZ&paoF_1y|CCae zOn-f)!RBFYW21_-xHKs`8UWO(X#@eR*e*qeKp+4&Q&acW!^!7$Nm{wFDp&w0cf>h3 zEN!mMC5s-3*<1|*6N_cXTOmu>@ljZIf=jxHoD3We-vfn$vIGW}+m;Cd*+`JK)EG%b zB#{XEZeqfFvh@jRlh7Lw8TP}{r*ViGpOg7TAaJkqBPS;(+m?Nsn?v=k&5a8Ipq~Ty zoP_G?lh!%)TyEZ0UF5sQph5;CC@d_@*Vos^2L9^E4f%|5O&Qhbf3R$t%lI%Da+}B8 z)Kopb2cBq#!Qs+ol_+W;EXvBiSjRCMOG-+bn_ZCNJ$-#;Wn~c&5m{MT#<4qwii#8b zYELxh{n!|&J>?4frf*A0iBi3GUcJkc@EQB7SHF#nIEREVaSU54E3x#R;^JcHepxA5 zS;ulmoqUb6XGhs=GC_b2-W&HMa^Vy8ICgPykw_%=_Vu;4v@9+yfo=zLfb>r;yn6MD zbJuu$WF(J5S>PMydC}+JeyGgXy$Z4t1=g?OVaHo0*@cDatNs?(udnoye^XXg?!kwE zoJL0e4&1A#xYC`37#th~OMroafsxVs-rl7C4T>`A`&jd3e}7eq70Z=dS^CT5(#EQ~ zhG$-ajm!0HBVNCFku7-FG{~pBornkzUtU_;Cn6Fa5m8-Hfp;-Dh{0eO48~vM?Nloy zhr~3SfYAVrki;V(rrE#v-M-;>V@Q*@J`P=Qk*U&A%HIt z!U{d$;^;UGmTvw6wHy zq#w6wv_^lfe0*?#fX!x$Jp;AZJAK-tmB46hr1fw?a1n{3@Wf|21BDSZ$_uo|k%p!w zT{2jn_rl?|O-&$SKY2V}XD84q2YC7V9ugDFE-E5@d&B7X;S#K&Ov%5!41q#*$qzIu zylaOf&oMXu{T#B(VdCJvFb#iPhDNLKPuD#7UFW>Z`a^g~`k%Hn66dtF*FsAzq260E z%&MyWhh|;16j=CV1z5A&-?wl3)O;-Z_gMV(!@95Smy}Klt9hYC|KIV;8(yCqZMeEK z*{R`OI_o1ZFQ1y4N`nj6=~8_aD=bCrbbT diff --git a/docs/html/inherit_graph_30.map b/docs/html/inherit_graph_30.map deleted file mode 100644 index f3e543a28..000000000 --- a/docs/html/inherit_graph_30.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_30.md5 b/docs/html/inherit_graph_30.md5 deleted file mode 100644 index 35ed91733..000000000 --- a/docs/html/inherit_graph_30.md5 +++ /dev/null @@ -1 +0,0 @@ -7e03f4e84dacb7dc6f97e26c0c1e4845 \ No newline at end of file diff --git a/docs/html/inherit_graph_30.png b/docs/html/inherit_graph_30.png deleted file mode 100644 index 13ecf9bac135464e66420825795714dc958a46b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2290 zcmVr^M zABm9*f;GgTL{Tq@X-oi7Zxlf#6S~W2cyrTv%1T~6Csk8_JQ6L30K=-?tWV7~X zrE6)c&U3XhyK~Oj?c3?>?h6=>;{buM5r(r1K>U#)-5}_Ibc3J+(hY(ROmd^Wy}hcc z%2}l#T$z}dn39qbqWRN&qtof`-Mi=Tk`S(rTCHwxZzuOK%@1m7YI0OPh(CjU`}Udi zp!E%c4oEi$Iw0L3=zw(N63orb<>lr1`1pi|hAwHMh=>TeT>krUTv|6Gk?8vM>&~vi z5j=eOu%n|xuh+kM^M-a1M_w-1(#^(=8*kpcNi@}J_2I*Zmo8mPOABU+w{PFtG0XPt z+m9VPMtw|ocXxDjG>5~nHIzssI(P0I++OO-MaIH?_`gG9Vj|fNFg-mT7Z=Cl@z$?j z@8C)%Cnx{=?>`48{T=AcH)63E!!QPe5fBhiQBgr$`l+cYsZ<&e5U_mt^1{Nx>FH?z zfWcspN~L^0f7!BSVzKzsr%%?xW@ct~b#)y&bO^&Rkw^r7o_Hf7B1%e1Vq;@jELKQJ z$jg^6D=RD4u3gLFaE=@~Vl*1zVb;>gWU`>3AoFbkqtTe1oecnx%jFCP0{}2OI(p#1 z0WO!jdiCnOyu7bpzY>*{mzO6bB(T}+b?eqWfBu|0H5rRz#bWW5D_5>wy^3Mj>C>kv zQd2{|Tth=cJ9g|~v)LgbA(t;-#xQJrd>roT?d>%$-d5=7Mx|2WI6gNw_u#>UTeoiA zxpN2h=j7zPdiCnblP3cM15r^?ZEbA;fZW{NzP`Q}FJ24|4h9DYr>CbApRoxFg(4~{ z>c)*5IF75;YV!k{o0~6Qyf`v4A`*#`l9GCRdwY6%Iy*ZbKYo1w{(X4N;?tQ>T3XuK z+4<jP7?(Xi+&Q6_9my?r29Nf^*Ad|^PMn-aTb8~WX;5TQHsm;f# zRH~w)qQb&L9LFmvDyUO0l8lTD4u{j<->*`sOcufxi?G>r!H8mL-890u^ zuUB7RA9=4%rvm^C4GqEO!omWZ&F<;xu@;Tc4J0}`y0*3!Zik15S5;NP?Y6cy48sft z18inzXP-QIl14g$YuB!MdwX|vbrC)N{rv!dfq?ojZ40t%mVi z_jk6Y0|2~#|6U@IR8&-?rKOSk{r&yt=jR6p2VwK$$B(enj;XC-Yie`+{QL|C1F@jd zXf!m+pvLCUX?AwjXf$#-9CvqjwOUk`i~z!tOfV=_3i2DfkLDKMLLV?;_>nE)YR0yd-once%vIK zP$-Oxiz_NB8Xg|j>2ybr9!*I}@%8nkk=j;lO>It4P*6-vOmT7X*w~mxqbVyZqfrJm zHtR+p5L~!$AuB73&1RRBlxg+j4(@m=e^=D&u$Tn&x~ z=>|au7uAi!91bS&TUuIZ3}-T#d_KRtynK=G!u|qWR5#G!KwvN!A|oTy($ehia4>mn zpO~0PWBB*)-y0hnFI~D+S664>@>~|@>&8VK4rC%CB2Jw;wRP)OA0HouLSfA}LcnA) zH*em&Y11act!EP9m%fOZnVH?Ycc-SNPESu;tJWmuqA&20;C$Wu5{Ee)$kf-@pFe+o zVqzjQGt-)HgkXMtUaeMlbaceV##)R(?TZ*08QHRB%bGQ7;5kxMOO8qRa@q;R9}Bjn-G2%yvH3JMB{T|@-xg6r$+y}Z1Nii%*9x>|Bo&c$_g z<6MUWhGB5Sns0;*gTW9Ag;`ly&CSi`5vU86$z)++VM$3z-@bkOWwk_1r{jFxxVXc? zns0;*j^kRbR-sUYhliW*r7oDsWZu4gJ2W&jK0bbQbkvT1j3veSy0M7E91b-#HRSl@ zzruk~_(q7~Zfwj{(KfJh{YiHRZiVCd;Ef(B@PgP;S_4T26xHwZc)-5}`jKQhL+Lmo^@oB#j- M07*qoM6N<$f`b2Nj{pDw diff --git a/docs/html/inherit_graph_31.map b/docs/html/inherit_graph_31.map deleted file mode 100644 index 9beb711ba..000000000 --- a/docs/html/inherit_graph_31.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_31.md5 b/docs/html/inherit_graph_31.md5 deleted file mode 100644 index 3d4b3ec2d..000000000 --- a/docs/html/inherit_graph_31.md5 +++ /dev/null @@ -1 +0,0 @@ -b6cebba1c0f3722ae4306a4e5b9d54f4 \ No newline at end of file diff --git a/docs/html/inherit_graph_31.png b/docs/html/inherit_graph_31.png deleted file mode 100644 index 4f8bca6041877d6b944dc4b13ca0ec02a4ed330e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1910 zcmV-+2Z{KJP)J<8YHK-rlO{ArwK5V&AT3!7hq0z|dpO(O4G`s~ z2zWkE_x$d;=lkQ{FNbsQ{V9gyI6xp`gf`y^Ad(W~8w3@QZxB>KzClnSo!sc@>1k_g zo3B(5iHt}jQmIr#^Pl;~<#OG>e?RUiArc*v$<))+Lyn|}cQP0Z@yZ909PHb-FC>E2 zHwY>q-yo=fe1o6@@=Zc8K0e;q*tlfLl6C9W&8bjvaj{OP`~Ptg+BZU>@WzcB^PNRJ zc>MTrZ*Q;L?SB9MJ>@~-dAbtIH=8zXx_$dL(KMM%M~)nsJGob{USW~=@ZrNOs%+oB z{rK_Y(fjoE^_7;EGMUU+hY|{f7cN|Y+jD)o$V9jgUpQ1$RFKO7#>U3V%E~w#&f2wW zjf>YU0$7j*cpo%DlY1Wy_W|H8qWmjR64s ze!o(wH1fMMXt# z-n`LhG^ec1qB7++XTU2u)e+?0HD+9XfzrC;Kz?22M!!y zu~@5Ct!iv+{Q2`Ik;&P!XUogW84SjnHEUkJd>LJuOvGa)63Nx8SFc^WhGE#5GiRbm zM~8g6JRZ-E9Xl8dMp04Gl`B^;4D))ua94kSe|Yk-Ld7>mqY=mP@$vD84hr=Nd2)etw0RRmR4K|zY_3PJzgM)>Ih1J#7#5E3~v$Inm5ZtC>kV9z1}3W-b>(OG}H{Y<}|O zNp^NNjO^dP-{N$&J3l)k2M;N&CShC zO-(qCtJUi0(lex{riRI64h#$!jmD6LaKz+e1}CA{>q8>ba{2P*nwlCM$Klt@X0ws^ zx?C;*fXCy3&B@7027_U>TBjO~@C~H2w6vq618#5JxUsFR4Q_XLcVigl_xoY9zP|p{ zsZ$i>2(Dkho}Ha-u~>-6z`y_iz~OMf=DT}9oSR8%@&!0aZa=L6b8vtNrWCX^$y1IzwR0%{!DwRs5QgVdKd}A;e zN=i!TbUKD%N~O~6b^`#MPG?$LT7G^$xu?V7006MrY`ES`OG_Ia9d$aL6hr|4D_5?B z8=0Azix)2@CWg$+%s?POS+1+AOQBHcbh?s~5+dkwxzf|qc|0C$!rwJ$4gdg)#ey4I zSy=#pKp-%4>F{GiIz*QyEJ%1IT*Bk=(CPFQD^|cJpU;mefte7qZ@z#3URPIl?%cVd zp`lm`5GojZ3GXf$#-oL#$i$>s9TpFjWp{kylf zx4OFe&!0b24W5&eW3^hL5h)NwF5-APuRqfro_r!@4Aw%)`{IasL=H}+1p&^&c zb?n%&%F4=|oE!?$u@b9vI0Xd-B9Ta;P>hU>*zNYyr%zKzBRVnrhR5Swym+y$u8zTA zs8p&wd-f2!bUNMo_3OoAF`v)3SS(w%Yykjhwc5hM!ph1@7K^1&DCBZ^lpD^LmX;SU zUSwru!TTu+#3ZNJ>+N>?&6_tvp5MS?61`qer_(oV*dP!H*le~|tDQyZ=)@`=afDyL ze&y%qS5;NPx7isP8Pt-A2!@lE)A#P(gNxi*6hO>7&!0a(c<|s1Z{{NcokuRPSqeaoGUq}qIw zbfpnVN~+B_s5BxzB=LN+5K1EwmL&Ggw4_*RL}EdH4@aSnB4J6E(ukyBcIqe+pX4fy zNJdi7Hz`>fk!U2bZx&Q(M52+zzKKW*mqsKMsEz_LJ>hi}sW#sr;sf#xf(pnt2r3}o zAgF+RgP;QP4T1{DHwY?3sJ{vS=aGm7j>%*S`HQxH=9}EyT&YwV-;@wZfKVtDiA3ZG whMo>1D1g>C2r3}oAgF+RgP;QP4T1`P0V$^PVq^ebi~s-t07*qoM6N<$f(NCz>Hq)$ diff --git a/docs/html/inherit_graph_32.map b/docs/html/inherit_graph_32.map deleted file mode 100644 index f938f14db..000000000 --- a/docs/html/inherit_graph_32.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_32.md5 b/docs/html/inherit_graph_32.md5 deleted file mode 100644 index 243060bf1..000000000 --- a/docs/html/inherit_graph_32.md5 +++ /dev/null @@ -1 +0,0 @@ -2f9d67e7b63905e6b856d7ad6c2a88fd \ No newline at end of file diff --git a/docs/html/inherit_graph_32.png b/docs/html/inherit_graph_32.png deleted file mode 100644 index eba762d1a8a61187c24a02071692b6c59f9ca08f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2219 zcmV;c2vqlpP)K~#90?VMjoQ&Akp&z-~kGq<8zn7Pd3SRd*y?04fgNfZ(>2~ z8w3@QZV*&JxBcFTo}SLj%k%N^2@MTh(m)Xr5mKr2@BKKnZUh3sjT<){orOJk z^ypE0d%ISvefRDiWheF=F6YwCrcIk}-MU3Il}hE2BS)4l+{>3QvAKBv{=E&O?AWp6 z`0?YG`*d}6MMp=oSS)K@2?T=k=g-6Kr5-Lab3BLtKO`n5lFI=M218t29EZc%uwjFp zGtudE%a$#(bI`wm%6uaf3NZ|$(P#ky0TmS$#L!PnOo+wefPjD%D^?U178(o&0DxYv z7mLMQE_eCz7r2e0clz?YnpH zLVHe5&YL%Ho<4or-`^h<71i3>3INE>&F$^&ef8?qz`#IoaBzBhI&qCnkjZ3GQBgN< z-o$ZSsZ^SGXl`!4bm`LY@UTE2NJ>iT>FMe2?(XR5c=F`Qg9i^_pT&nWp|rHLqod>T zgT-R?_4O$f3X_HKoXJ}aPC_o1n^+d4rluw%BLl~A`19)R z?IrKkXfyzT!NEb;oSmIzGMU}o-Sc@PbOVWwj;^h(h1=ob;Z;>taJ#j&6~i#SUJsku z+1aN~ouUwq;QICJ-rnAwot=cGudfdP(BIz=n{VH~1ps{g`W0qUSy>6~a3;`dwH87r zCnt-=V&W{!kHvAE(2eEL$;rv)SMc1qb0)*p+uI8O7#$sj_Li0wqB&mzmJx|WB9Vw} zp)%hzH8n*>Mlu)-48z1?u~w@E0I1b!H#fJyz(8`({{DUdfS;cqTyMI$xlK$=sMTr; zK>+}(SFeT}9v&WEUS7n+;NjshH8n*!TuVz!adEL!DvgYcB#au3hEAvRcs$sI_cbUE z005iKh8v!qo&bQUsj0<>Hb2&+gXPeK1PQH}hZr0jWH1=3R;_|fKA&$@0*k?F-F*A@ zEh{VQ?AfzJLqkTRvAVi?W@ZKez~k{|XJ_GWg@DWD(rC1?u`%+g?%K6$-fU=p^?YY- zH~_%Mj~_)MQAI^XT3Q;}?(gqEGcz+VFaVpMKYxZs8-|__YeSpk=jW%_>xl)8N~NNZ zhGne2PE%7;Mx&9%V!6A!E0xOX>S}1`a5zGtu%Mve!-o$#ovyaFR-sUEIGo+PcjxEl zfBN)ka&of0y*)iW{nxKw^EvnR_3iHNhC-x(g>ZAOi^s;sQd3j+?b~|DJdyzHoLgE zI6pt%!UJb%Y3cLl&pkao;qw#)tO_TW%T+2>U0t2Y`x{tHBA3e<493Qd8>6D4{QUeH z8X9aE+A`LLp3}ql_;_GoU}|bA{F?3V?oKV4Il*w!a{AuAdvK9!!vF|}^X%EPLx&D6 z@?m~Xpz_ECHvjc|zke9HTu!Icw{PFBQmIa!Jeir9XHIs_cTK0lXte;hvP`y{A0BZbUJ;@mMxn%ZzgK?A|fJApFX{9+cqB`ADK+H zpohuH$vu1aq^71C42JnKH}Oef*lmK-%{OFRtF~cgW=5%0wzs#(#>NuH`uh3{7cPvC zk7s6PTJ|tJJiK-5*0pQb!t=F|IoYQTMwuGqn*xP8ilxIvYa6n&v!|!03D2;uZNcQr z%E|%)0wfX%+-o6ovQN8Vn>q?R;EJ^kupB_6(G(OE5C?KNoW*#kudny=@+vASf=$br z6Fwb?GwQ}gYa3`Z8lTV4%F1ePZYGQvhAqZ}L?Q_b3rk8$`tjq(f|(OO9f;Gdi(R+2 z0mpH*S}l{w!o$O@^+2c7@7%c)8X6iOA3riOV#Car2&bEGT(P#HrltnoO`@Zt*=%-W zW23bm001-^t+uu{At50yE>5e}+A#B_0M$_-7RJ1e!s+H4giC;QgP;P^4T1_tHwY>q z-5{udbc3J*(hY(NbJY8p|MN)1e~wbAH2I6RKjs^Me}9okWZ#q!E`UHFh>3|ITQKx? t7(oHFzClm{=>|asq#FbkkZurE_zl&%y#7hp - - diff --git a/docs/html/inherit_graph_33.md5 b/docs/html/inherit_graph_33.md5 deleted file mode 100644 index e325090d1..000000000 --- a/docs/html/inherit_graph_33.md5 +++ /dev/null @@ -1 +0,0 @@ -405557f1a59b8b22a7b9bb859ec3cbaa \ No newline at end of file diff --git a/docs/html/inherit_graph_33.png b/docs/html/inherit_graph_33.png deleted file mode 100644 index 1666a6aab36250699269cf3659c8f556454e30f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2359 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 Zm3e(T*gD5c$rzl308e)~jOK>^ - - diff --git a/docs/html/inherit_graph_34.md5 b/docs/html/inherit_graph_34.md5 deleted file mode 100644 index 4a669231d..000000000 --- a/docs/html/inherit_graph_34.md5 +++ /dev/null @@ -1 +0,0 @@ -506e0845cf962d7878ce663a9e76a644 \ No newline at end of file diff --git a/docs/html/inherit_graph_34.png b/docs/html/inherit_graph_34.png deleted file mode 100644 index 7426f6f9024d6e8a94b022a33d7d2279299b45fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2257 zcmV;?2rl=DP)PSg-9%9hidOH+$xGYxh3_s4 z9+cl8$bfW%AOq43f(%GEcESAod|qCjhlj_OEnAk=QFwT`NF@4mJ9e!bE|+`t>eZEw z!WP`Ud$+s0dvtX4_3PK9jo9*Z*_Up%Z{Oa~&_Fb0GTGt7hnLUYlP6CwW4w9u#)@8c z@7{g%=uy*S`uh4JBO@6MhNY&sT<*DZ=iv5opDtaDti%5u;^N|T%K>I)W}>5`nM~&9 z&6{l;iCV2*y?V8co&E`A<{KW5hhZ3nLJ0^6C@U)?PW|-sv`{Dv2nblSW=(#6{>;n_ z06?SB2!%oxi{Z@pe*CzU*^G>g-rnAW2M=Nx#^rLsuM=;0cz8)k$ck9JZ9Z^78WF;9$dT0Zyz6@yu7@xU%wKOoIZUzHa3<{r*GP{>G9*ord{h|^jIE`ck$xIy1F_H!%m$# zWx};-bWfK`rTXu`|LAmjXlUq#3l}g9o0^(}y9NdZ41>26GP;pUr8thy&(Gh!ef#Fk zn@vqkus1eSJMWJxZlACntv(+}PMyUS2*vKAxMKo0F3Re>rBlHau1; zl@=Bj=I7_*I9^s(X4vQeL8(-#mk1jT-ePba#A2~t&u^)%txZo)$8j9~ zyySAZ?p~!*2>?*3RIs_YxJakd`}_NsvPS3z5*Zm;UtbTmw{6>2RaFJIJ32Zr4AW>d zu$h&Wb>hSc67C4DT)E=z?%vzmOY{s54gvs%hK6AC)vH$kfKQ)3!AL4AD`7vJ2}Vap zO}I`-NDvBz#HTPk7RPZyH>O=DBqSJqgJ;j4)jM5sxf}p6IXMaY+uPfT=28KehR^5o z`F!0TGV_f@B8iBIpwVa;h6#nj(a})=!0_;}lao_WP>}A(p`jrFfS;cq%r~8!oTjIz zhlhtrI0XQ#U%wu1xVX5uxw#P&gNuvH?CdOQckS)%MMXs-ktiY}g6LE#l~gK~&1SgsCP&tx)rJl>&0hu*$@t5&P)>+7XbDU-=e zPEHmG1n=L!|MBBTcXxMcYU+9R!-w%aI0u%0x=EYM}Q%OllX=!Q4jvdo8 z6&M&89UWa*SU5H|rc^46i;EKz6McPsNw~HYOI;fh92^`K6;)JJG&wn`P$*8GJV_!9 z(^#wSA4ki^79 zZ*T9Sq9TDnU}C{pT3Y(((IZz^SGb-cfkp1bVzEM@xOVND-u)X`Od=MGX*Al_ty?)9 zj-Q`jV`HNgU7N;I*G4UT`}Qp;C@3i@2|mqsc6KHgj8QOLC!M}^>lRFMt>^%;;yir# zFgrWj%*DJ>pz?GJZ2sx{et$7yv6xDw?%K6Wp->z@emo;1!@BlY;5oza@UY>neStt= z`$+y`;^N{Y5($gN;_-N~v9XnvmDaVt0`m=<%|@5P<;Kg)tGT&(`Rv=*bIreif8-fH z(#xuPM(;Uu&#Ya#4&VZ4^M z>Pgg5*aNnyf>5i~#l^)Q9vZEY=vVH-AV=<4dabLWnakB@2lh8Qg}0RR*f6tuLoeEIT4B9Tz3 zRC3SHR|Lm?&hXnR2qu#W%&vl%n3(YL@-o~j6bfrwi(BL?J>Cz=vSJ$+( zw3Uv1HJ%_b!1wfUZ*rG9cX`$bfW%AOq43f(%CT zV#7a=MEv8(WHP-s+J2dD{Qdp;e7 - - diff --git a/docs/html/inherit_graph_35.md5 b/docs/html/inherit_graph_35.md5 deleted file mode 100644 index 5620c940f..000000000 --- a/docs/html/inherit_graph_35.md5 +++ /dev/null @@ -1 +0,0 @@ -f5e59de3f2542a64e17226e3134d9660 \ No newline at end of file diff --git a/docs/html/inherit_graph_35.png b/docs/html/inherit_graph_35.png deleted file mode 100644 index e324aaea793cffa58eac8eeddb5946e3e14b800c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2553 zcmV^0 z+M@G&ntSHXIp@xt-nrBHw+M=&fPg?nNZL+-U{ylY4FMjAx*@;=Q8xs5AWJryo163V z^R<-GbF-v{EZeE3rbbiw5UdUk9y};z zA=Wnpcp&PA01rgn5a5BR8=YWoZZ0t~(bUw`)zx)H19^COR903l-;Yk$4THhBapQ)z zv(NNUAk2_+qP{hFE7WM0)gP@(W5ID?%A_vh&?+_3WASnl!nws+S^P^I! zTefV`a3&KI6KmJ5)o{?|fM>p8u~-O#kVqs42Zx-T9PHFjPEK+-90v!7b?erpq@+wu zO#uMJVljuqq0wmO=H@IG>+|Q&OSz4Xj&5&nKXT*^8>Y;$m!UEC8UgvXVq10RTou zMh+i7Y-wp}Wo4C^nE3tscPx|a>})2JNuf|SZ{Ga$=~Km_C6Rk9i^aNn^=ff(F@hjx z&YV#YS}~HROC%EQ-Mg1Up}4rXT)A=uL6EVrF}SO%t4lU{Rl!p?4Gj$_iq6f=-MxGF z)~#FB)z#1*A0Pkv_3KBE9`*J0d3kv?H8lYM5)u-+yStx1e?BlU;Oy)i9v+TeV<~t% zo|l)`&6_t-6cq>rvK{K{>n~lpG(0@aU@!s$1G~DqIy*bt+S(pId{|dk2m2@=PKwOT z%(k|+2M-RadBf@k;_dBSQc?o9-QC^u^Yh_$Q&SUy zAY!o?He+LBPn|l2BOJ!{>(`BqjoaJXF-uQR4*;OAuMalgym3YXK-*30MOsxucxQy=;$cfv#+lY0AOot3)h=^ zdU}(Sll}euID!HIHg4PqHw+96jEs!1iNV0YU}k0pceuvJ#VzObw2H2$2 z=_)0l3@X>n*RNk=Vq(soJv%fsw79rfP*5;GKMw$~x3^zdSb(1u3>u9_B9X?%#w3Tj zZ{NNpvmq_(`A*ev0Duo4K14=F=H%prg@sAl?dphGJB{PBSwzi;Ih9W@h^O`T~KVpr8QSsZ=V9#Y#?2e*gac#Kc5N zNl8OP1C>e*4Gm37O8WTm~@?JX@WmHPe$ib?o< zzKMy+)~#E;yu55}Z7V7&)EHVZs)m;9VSIet(a|v^Bm}zi0fA9Af!{_tKWb%Li{ny*ud-CMT=;&zm`q#pH zhW`G3*{}AKl9Du^$zM!BKtN4R4UI-)u~ zf8BbosSD`HOL%n&9##mVZWN&-HKc=Rvu-pdV}Nc=O-*;~*zw}U3+0c+txUjzlF4Km zjh3CAt>kO6)q*zb2Fe&P#A30hr)OALnA&9w@Vj}DNaW?^6&e~kGBToG{|bW6&dyd< zRb9S(xwN!Y13@*0hU!KaWDFDv<>JMQKY#v&KLt`os~~xwl2wTm6&1O;xnZ5VySvF` zvQ%6$nY?r7&h6W`V?sU;50BHQPw(En+tk#Q$K(Amjp^y>{rmTagoI2@O)WJ>DW8A1 z80tV*);AiHF<_{wRghJQ#Kpx83=F({`4V<0E-nrX45ZO$l1I(Y&kF>C*49>EUti2v zR#tZ5!iDki@#yGi#c2!=5AWKw%f`kAo*4yWl=P{1AnHN#PJu&5p%yeFW0;tjNKa2U zH8mX`9#-IAQoMm}%TD9UEDT$Km_z{SPI+uOUmyu7HWC@Cpv&6+h*9Y`b+olcL5 ziK(xz$BYPqC^Jkhm+R){78n@#z8ML`B)}o97hksd>2;7yLnwp!N`|8yz zxlimUiuU*S^LRXWcXw6OAd|_rZ{K!xb@li69~l`@qf}%0Xmh^Nu8cud|8i9#0D$oD za1x2+@9!`5kO*&%dU|@^-rkm$mQ__%IMN`INF^mDOeWLM&u?&WP>oWJCVPs@vZf;&yRwlb5 z{<|USW?A6-F~DB{ai1c<15q~wcp&PA01rgn5a2=1x>)wlBMJU-1OkE7FWP>aZ|v;s zA|oR;n-ak)fWct+`1nX#e*4`W0fCYb>l*?*5OqU<2cm8W@IcfJ0UrJb{_HAxM7M5v P00000NkvXXu0mjfE2quS diff --git a/docs/html/inherit_graph_36.map b/docs/html/inherit_graph_36.map deleted file mode 100644 index 5b9f98102..000000000 --- a/docs/html/inherit_graph_36.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_36.md5 b/docs/html/inherit_graph_36.md5 deleted file mode 100644 index 7d4ab9e8b..000000000 --- a/docs/html/inherit_graph_36.md5 +++ /dev/null @@ -1 +0,0 @@ -80b4eb3eafaec7aa00f40d8b256cc2ff \ No newline at end of file diff --git a/docs/html/inherit_graph_36.png b/docs/html/inherit_graph_36.png deleted file mode 100644 index 4bcb7426f13ba5cf61e96e613b1d494d57c70698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2754 zcmV;z3O)6SP)WIbSy1F`L3st>SWo4zY@*(*4&vtQfnb1HU9v(uW@X!5B>AK-?I0Xd-lbwYz zxPJY5eSN)5CVTz*HDM>l9ImNVH{RafmoHz&nqskd^XAPH7w*A>2Z$!#ym@25D63bm z-nMNUexDaFUa;A0OG`_AU2!;^Lx&E*?TH>PWi&j8PagsU1C`|fgM)*9et!1$_RE$n zGjb;V{r$6M%`$S(KY_@6!{u@j1fftUEEX##CkGq)@87>?W@fTjENg4)w6wIr!9f7P zz`#IeW+sEdu(Gn^a=Gu{zt`qAHa51gv2oL;O$dT;I2`cn#OvYVk(HI@>+4IW)1952 zpFVw>o1436(IQJr%Pm{BjE|4QZrZ{L1Oi7#NA+!t@$vEa_;>(-P$;BOC;))IzP^nc zH`?0T&YwR&IXU^umoHc*`}gk;2nevSuvofu>AidR@Ix!3@mMaGd-m+v3l}aR2(oYA zKAh0_C=XY6clVk#Yb-1*oSmJ|oH>Iah+Hm*yPBJu)sxp3B6TAYiBJ?B85y~D?b?+q zS4vAup*=A%@%i)Tw{G3)=;-kB@~W+^1pp)^CAGG;K6>=1tEdV715l9Cb=6X7pM$I$A> zibNtlpP!bNhN5UrP7Z!(9f^sFv9z>oZ*LcgL@Enmjmhf`sziBtxr*htoH}(XCME_& zQTX#}ZEaQFE0szC0Nvf)usJq1W?^B`)YPQS8&)?EHk+NFpAWa)-Q7=|I03h7Yikh% z85kIV&G`8EUAuM>2#0a;;zb&b*4WsHS=!s%0RSBx9kBW8)hhtNhYufMCb_w}&<<{xM6B)YHn_hO$?@{rb9zRgu^|2_%I_QLnst_dU|3;sZ>g( zQkhI9Y{L5*EDivGt*tHGFf%g)01OQc=^k4BSd|X=p|KLgYDGOncXv0PPML;0iUJAK0e0N%ZO7abj)lamu39FJS5rCYad4G9TZuwVg!(E6fpXmuPN9esR!GBPqgeflJk zNOteuO&|??^sXBwlX>jevADQ63k!>^tgOh$NNkr-D0Fpo4Gs==aBygBZ1nf{2LKco z7dtsQg@lCI+S+DhWbk-AoCnSwJ9gZ;bH~ig3_ed0K(BD+<>eBIq_D71<^2s5la!a2 z)9G|KH#aXYFFQNC;^JZhhQ>$V&>B5_`}S?gk|m*`q3~M zHDCaeN$2+M+X)E?IzG&61XiB1z-C&%_xpz_FE6K3ssH`=pF|?rxpQZ1Y^-7ZPr`SG z&dyHtSNl93&-j`A!vqEfR#sLr7z{3#8xRnXo11G`|C2D^Fqus9RyfhjojbRztZd@^ zPp$8oB)`Q_LWnEH&C&FF)%RT>FF6B9&T{O0(=cGm&;RAQ~%@#DwPe&ND}pr9ZIgQ4tpbaYfK z7T4F;`}+D~M$AKOY%IQ%qPMqq<;s-{7cPXuh%+F{KJ~m%xG3K~2((u6YimP!8y+5>GiOd|X{n(cP9o~-;_0rVm>|6YilXPvoij5t zi;9Xeh{LJIbg!Ghz(78qpPHIVqtPNGBLxD1LEM^~n_F2~6%`e!uZaH*rhDB?klujU z9|`VVf7 - - diff --git a/docs/html/inherit_graph_37.md5 b/docs/html/inherit_graph_37.md5 deleted file mode 100644 index 38689b5fa..000000000 --- a/docs/html/inherit_graph_37.md5 +++ /dev/null @@ -1 +0,0 @@ -c29d24bb33328e94de86eae905435043 \ No newline at end of file diff --git a/docs/html/inherit_graph_37.png b/docs/html/inherit_graph_37.png deleted file mode 100644 index 8913cd0cdbb19937e6b130452451556b34552fc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2132 zcmY*bc|6ox8~-KC@Y-`{gb)%9^3rR@o{X7H)7)w7uFOQzLUy5~$&y`z(PG404Of#T zV;jp*ln{lH-CVojN{Z~dzx&^P&-tA5e9rUvoaK3*@AG|55&@5ql2DQW06@zAEQ$!q zCUBgB2!S&}qU;tZM7_>oP{7ZBdO=fh763rR?NK(45%guc|5*o;O8dvWDboB%YVc79 zgqnI*CFA~gyE9(;Aqk(c-E=7J&8emw{NOX~3~I^DzF9UB(&Tfkb>-rml}_%r!;{TEmR%gf6- zn%tVKY%H_k+v^Ci+Z$i1m0s`s>mV{eLYU2F$H&LBoJ&XQf~GSiR=4hOJoYz&EJhGQ zlmagIE{7c`mZ4_-WnsZkQF4XfjFFz|>7RAu+T(DIVN1{fC)U6N88uHcPEHQ=jjEc} zoj^us`VsSVa7zT<#l?k4luvmZY?6Ii9eL}Eir>j~L1kM{*k-e>yZcig(-t1j5sSq} zL~JHVDUZ=R+S=M;e(ud*>1{sX(Pg2dX-EjGb%V7PF`M~n2f3x@81;wf-Iuzqg zABLyS3Y3(TMmQnIvpQ1K(wd^yPuR$!3+1@H{(kS=Ms~p_nn|Q;nVOsLe4T6^tqtHe z-G-&Z6ciexcYX}BeWRnJ#l^+_{rv$T3HAHHbyD+POC(b9(4nlnyz|lToKGPT$F;Oh znV4j1l{mBfk6T2oEqt5p($v%xqL4>x{4Fgl$H&K&(&oVT%BWi03xS^WwTq18pbI0v z&DfL4>MFzFoo#I>7neuq!rrBI5fKsIOi@wMix)4bRM7oI0s&|?P06mYbY>E1+1Uy( zSeBNXo14HjiaIkhQ{nn@V#1S#^{JMt$!+X^2-Q)LU{S4uXFF+hx=N6=64UrF_67fb)Qlnrs z?U`EkTkl>~5p=5dgg-vByb)Gk<*pBq{rn`;YinwVS|JQawUCua8L~RGY}crESR1)HZ>jQ^E1>X0Eo17f>caQ zj9DIDUvhtc-`LpreQ;@MDY3-S;8A;fyF+YL)5PH5qxR|72D=wy=K!E$*l!2|fdIgV z4z5qA4mVc^N8#xQQQs|Nd;TysIRBXAVR{WMrgo5B;#Js!48l zb#-+}NC*I^W+1GsWt!m%9tL2z4yU2JYM(xN!XcYfHP>@PoTY)Ug8t*LTs_>}p3rDM zrm9e=2?BvYA|VYRMk%od*`5$zrvGFhQadYY9zS&#>U$~*FkN;q?97-HPWkdM#i4!NbcelQ;t%YJRnDFo)AM>qY z5~}j@edFU&X^Hm^nl|is74|-+QeXLgd{$X$#3E3sR9#)&W5}mMJUq+^TXF_YgNca4;i96NIt*fhxixZZ9(9h$|oVnJHg!?1jY;Hz4Iy$1!qIaGy z&(A-|NxcZ^^D>WKnXs(u2x9b3FXFYbNLcz24Qo1`zD`z zvAEyK(Q#&OuHIzd$if$dQf*T;3DoT4oDHvCyM|?EcFlq`!Q=537q1V#BPFaSv`qP)DOrViN}eE*8n8w`&#laRSw zlA`g4!~Fcb*g2}Yiu624z7>iH>b+Rmpc49wvGl8S;ysaYiny6j05Sy!oq}VJ&;?kUTP94UrT$SU?(ghLZi_x z)&))umXiR$DxW_zgaj=#G$dTOKvDS&|BB@g`M4!(JSPf3^m%)00)I}uO+gn@TPH!g zyS~ZCRXmd^D{R?4JZhFqV^5IB#D7SMiu}8BlKEsp3-@&axtKfjBOl|nAH=&}JwU43 ztC@(4k578*wNVteDkLmq6C7MQ3!$t?d&{=`f59XZHr1Nq)jnfPjmE%l0$^{4N0pr+ G-~SsWS`Y33 diff --git a/docs/html/inherit_graph_38.map b/docs/html/inherit_graph_38.map deleted file mode 100644 index 8757b10f4..000000000 --- a/docs/html/inherit_graph_38.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_38.md5 b/docs/html/inherit_graph_38.md5 deleted file mode 100644 index 777eea520..000000000 --- a/docs/html/inherit_graph_38.md5 +++ /dev/null @@ -1 +0,0 @@ -41e762402fc33d7f2ae8892cb8491727 \ No newline at end of file diff --git a/docs/html/inherit_graph_38.png b/docs/html/inherit_graph_38.png deleted file mode 100644 index b8cb1b270917d440cf4762604934fe6c1d3ee5e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2432 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 diff --git a/docs/html/inherit_graph_39.map b/docs/html/inherit_graph_39.map deleted file mode 100644 index 9197f846c..000000000 --- a/docs/html/inherit_graph_39.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_39.md5 b/docs/html/inherit_graph_39.md5 deleted file mode 100644 index 482266627..000000000 --- a/docs/html/inherit_graph_39.md5 +++ /dev/null @@ -1 +0,0 @@ -8044d63eec446aae636a102f86cc9bd9 \ No newline at end of file diff --git a/docs/html/inherit_graph_39.png b/docs/html/inherit_graph_39.png deleted file mode 100644 index ec59dc6fc2579fe3522a4ee1fe3579dbb2dff2e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1752 zcmV;}1}FK6P)p`6G}c@%vRAxtHUG8Vl(CA~3e8$YYb%o8ffJe|TYoemFQqlt2E$lWxzCHU-QDC* z7b@g=p7VKi&X3qejM!{8tJTVka6^;&`uY-84e8*n+%*U<>jJf-T4^Nx|&wY(qoCvSrJ*Y}vBdwL~PTy&{!LuU)&g*i|Hg2M-<$ z4Gnobo{^D}#jYhH$>o)zqM{o&ZqQwu&359%iN7ajHk+|)j-NbvG8hcP zv`BJoZEYJiYzS@B1cSl4x;g-W!C>HUH~@gJU%wtbdQ>PBu3o*mp`qd1w{LVMt*xyU z6%_)3ATKZP>C>mtrJ001RxX!czI^%0l`9yAojZ3figZ}QCinOE=jG+Wgx1zp48z99 z#{mF?gM&DZ&&|z6888y@c*SHgQ4}>hJA3cmy_+|0-oAYs#+6Ft%a<=7KYr|Txg-*a z#bN;f)YsRKj*h-~@nT|PB0oRBy1JVFT^DfY&K-$Fa{c;silS^bTWG@l`}e!Lx~8V4 zq*AF&CVThpozv;G+wG4YJ?ii8hdJ!!7SPhtVz=8LK75#-o(?024Pg9qO@9Vbm>sSCRbEcjE#*= zOiTa(%x3e(jT_BoGi;ZamvgysttS)%qtUn^@=LnAyK8D{D2jrY(dg(X^HY)}0RW#q zeS+Qj`FVjr;B-18jYfL~Qe0fz)6)an+qP}%=;(lLi^YOrnBVV*-MYHEvuDr7AxCrd z>ecl0bce%1M?QS`003~gT(JA<)hhtN=g*&ECGG9)Fb*$bkH-^5y0WrTtya_DBJ@~_ zqG+!~mu3$2%jBY>BArg>^?Gp}*XeW$g@U4}^78UamoEMCgisWvP$=LbH1W(UeSLj} zg@t@RAHy)UTJ7<8003^cJ0&G${rdIHOqa_A0LaYDgnP!6loX%O=XSf}F*N|IR;_{! z9*?(l=~8+E;PH5YKp<|p=g*%vH#Zv$hQh)^I!KZvm&+B4#jp$4ENBP-fKVuejkL5h z06-uRU@skd?1F^o((IE7f-sxS7K^2%q-6K*-2(#ye!t&pwGspo{e(m!X0Lqt@};)6 z_Wb$tlarIdV6d~Z6E1#Yv3P!d9@?BHJ3E`h;Y?3YGwr!|@7{>jaDMB)ELJ%Hz}vTP z6$*t`tKGkUKQq2=-MYECIXH&{0LI3~VDJx0M-_8rx5J@iV-gbI=de5Fc2M-=R zbLPx~p>lI`%gV}{nwlmjCrOe#b?Q`ARaHhtMjXEZp6%dD4#A5M<3m0l@YXt&Q+qj7wET&L45c)kK(%rF{_d_I5c z)~ynWBr`Kpuh;)U>F7j}?(XhpmO3&r5-B+~HMO*~l*i*06chjeWHOo0=ldP6U=-s4 zLvL>{+^EJq9O6F%d?$hVf=Y5dw?!l~i{KTv+a3B?U8Pbbz7j-CEW$H>u~>|jxql;Q z4MMO5c?H21 - - diff --git a/docs/html/inherit_graph_4.md5 b/docs/html/inherit_graph_4.md5 deleted file mode 100644 index ea3c61f46..000000000 --- a/docs/html/inherit_graph_4.md5 +++ /dev/null @@ -1 +0,0 @@ -30bfa18ff2704246264fc52b015e80a4 \ No newline at end of file diff --git a/docs/html/inherit_graph_4.png b/docs/html/inherit_graph_4.png deleted file mode 100644 index a341c26560155aff4c847b88c80ba96437655d0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2211 zcmV;U2weAxP)P?mxU53)rJU_v0Ek*gRCg2YIG z2#Fd>#6(b(7fA$zAo`#L4TvD&5*`HOB}OC>DPGWE&;%3;EuaWUMImbGd=KN-)UsRK z`Yq)v^LyHv&YpAT?4Q}`?x6&P5MVHD!ZCFK81n~<48uBDWEj@LBEztbrDmhMySuEc z%v7OZ%!b_D+-=*oshhv8WHOnorKM%rL&BI9EiElFnM||Ca_OMv=H}&!2V;g11fkV~ z_hcB>!6L)34i*`Pb+E`-L?jZ`)zz6g3e&TqMHUI>0H#9VK!-fq{o;;bFn!0)Orb3};YincMugTENZ)0PlRu3() zv9SOEf*?qeJaguZN~J>m3WY)}7Lz2ocJ11%tgNqJzd{J-=H|p=u|Objbaaf3jg?BJ zOlFgllhsiL1qDF}gMxyps;bbZ6h$39dNd>?#Lmvn*Vk7fk(8E}^7(u&mz$ZHxwyE9 zhB3K2d-klCm)Fwc$jC@7k*VFCIB_B*B*ekN!QbEi@#Dv+|KrDxDJdz=&dxj@FEurF zdU{&N+$oAWb?Q`jc({Xu!^Vvp@7=oxAylbUBuO4Rbci+yO!jF_UAlBhBoe959U2$A^T3^!N9F{`|SJva+qM4MLcZkPsamJv20=P$-TaJLd22uNK5o0s;c6 ztE<&bEs>EV`TY6wxw*OY^mGRYhs?~(>FMc#fdLm6m!_sBG>ple5h7c+Ze2%5heDw! zE-vPBxs#KV5W=vqu$Y*bv9Yny(b4em@R*nw9doBBN+1yQ^z?lD_N}O>h{xlpRI2{| zegHsscQr6?&#rNJ=SXEFsLOiD@;i^UK^l}hE|;Zavtr#lZ6 zMHLkl(I#B~vvjjmWX9~tnwy)qY}sOOZ%+_JPEL+oE(ZWerBVwE3okD(&5^^y!vFw2 zpO5y`78Vv?zI>5NrA9af06054qXTPeYg=1eJ3Bjd6YZLfbEmbEIXO9@exXpP9wQVA z<#M@9CbP7(BuNr=dV6~V0Aw;5?c5PO9uFPZ*w_F778VxJEXKyhmJVjJ&twV!ke;4i zUtj;@$B%~(AI{Fs?%A{Fk9iOX1hjcD?ks&USY&9^P*_+vF)^W1smjaCl}aT5fF#Mq z#YObDsK&#?gTvuWO-*TD#a+90F-F7rt1lvky3-9xI$~&O$j!~o-Q8WORF000qRw~k z-T?sI-Q8*D&V;Y8FG-TL&(E0b>#(+S=T2*D>-P5cnwpw@`}QII>CS`ZyG6}}>wlJ^ z7<^F|78X=0m7}BMnl)=A5=nV^IqDY(1aWb385tRG-@a8S6jfDK?d|OXfgnCUJ}oV6 zU|?W=e*W3BX9)=j-@kunGVbc?+Sk{IRBHq}+!YrWqlH21SO-_GT85t=Q3SYc<5gr~60I034_3`nEj*jN>c-h(6X=!OzR#r^Lj~_pN z=gu7)8=K(ZVB_XvkUK<0MTO>bGWBz#tgNhpf`awy*VotA-@bht-R2q_8}04w{rvm_ z0s{Daer;{7j=3`t6&2Ol+4<(po8aJJCnu+rloUrtN3>=z+1EjOdU|JPr>Cc9U|^u3 zdC*F@5!urV&9%{pjla1K0fCXn9Cb(U$9HOG4e0+Q^T)3d;c!@;9 zYCPr&Udb@5gGKfWH#awRxuRSyCkSG8c2;YQ=It^rE{-4w4u|9E>4{z*qkfS{bo%t^ zh=>R-m%C}xru+BrFWVGWELdbl(%#+rJ(#K9 z2}8?j7n!;iucV}8YHEtl=f}mxY1S{%qNCmkLxW~X#%e3|2?`3*zjPg=CjgiFARvT2 zJw3g>y+&6@V)SQ~zE(;~O6uzB%FD~!zJ0r?V=;eLsmSmT{VgY}^md6^PO!)@tb;{{ zVI3?o4C~Nr{P*tNyZmur%$VO+GIw|P#Kc5Xg@Q2;5)%`(ep-QmtG?O^!!~$NhG88n lG7RfrkzrT|iwwg${{Rz|c^Q0s! - - diff --git a/docs/html/inherit_graph_40.md5 b/docs/html/inherit_graph_40.md5 deleted file mode 100644 index 141bed305..000000000 --- a/docs/html/inherit_graph_40.md5 +++ /dev/null @@ -1 +0,0 @@ -4472dc79e611158ffdb2fba580f1b21d \ No newline at end of file diff --git a/docs/html/inherit_graph_40.png b/docs/html/inherit_graph_40.png deleted file mode 100644 index 75d67fe943cd3a9a7f732fab8643bfdd0e3421c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2401 zcmZ9O2{e>#AI6_oi^)!!#8|UTp)8a1Mju5t>SS+=B9(|raIV`2)SjM8 zdFEH6NXcYK=wLQqzv`*<*v`47CK;-@?aJfKjF`B8z0P3e@!Sz>y|jHg z3Xr$s+7h!uV23=Tr*e9 z?#al=_+nJE=WU;1q=nie6KiYhgoK2Bg@zpy=H}+RcI^_2#pBIUE>2EN7HbpG*WZr~ z2^o9yCTjA2{tIj_m0F`JUYg@iPEHzlls-1ed4NgIUo2Z&T|5^Ws%{z6-PafS?Olhu zx_WwgdK*!sllQ#JgI$2sHF3>9Wo!H3>tx%G+#5(;dP|EXU~}?hKDcjS>S?Z~fqO}r zCmfANXJut|{k2BN(%EcH6_v2)=&wTIua$*}g`q~ch==8#pJ<8wGGZ+A=*N#A!$?C1 zTuf3@2bXIu^K4+?sYxV>qyoGg9JJNXD=a7&mZ_GCY9AUK%j7RjPfzoo=JI$vO)C;G z&gb*rcU|82wfvJtQ{2CQ{}Hx407|I>gGEL}sHv&pV`H-@6#8HFaaM^-FL}H#?>Z7J zsnVMzdXm9&GZ+k4H#bw2oU*dA0rt^Fv6x6896%t3M@Jv2OvlB|%*=F~Lel;sF(8BStv7+MQVmh77w=CqH z++UYDG}YbRU0zH^oZFN9v(j9zwV5~;apv1sQm8{ z2un-&sy7X}82}ket^&_HJ3HIa(NW`=cWKKspYM%EZ_Tx~vZ7EZQ>N_SiV=y>(kDGV zg4x+{Z36+w zGO@7O3K$s~DHNiGhC9mwi%BNgJ>k*Ovp<(RJ3E7dg6it(xLht+;6_lFwJl!hPXd?M z*AgNlh3V2e^$iU4l$>H?P1~0T!|n&}@ zA)p&%-4Z5O$oo4dhY@wJsp+)8KN)WcV8X&67WEZ(_af-%?R~)<|9}8iaWR=pCJM(m z_z(SbIvtFHh>p0?C9a>Z?^UF3h*>i1kENa zd_Gxcu%j&9Ck*j6-_R%c?AaGDUT_;5sjx#jYhGXlvseK!F?Ui^k6pZY(Z&V<$|@=z z_Vnl>5DdHW>o;!b>FM2yx9ofVJbrFE9ppGsZb;(q8IaqID_7#JN+;H(jQXl?-7+;d z$6vg-_~S<-hjXjC+SdWMP)*xsY@F}b)X?B@@(x%8Y&M%lqp?_OfEFAchQ-dFX(#_< zrY6(W)D%-*vk;THp@wlIN2XAsMdLabn6lp~o^aFz+QZq|f5TNlmGei!FNCV>Am|0-_w6(2*n(jDwGE2+HkJCRnN_Css;d@9clt?Ua zuR8ANSRXCu<`wQ=TU!H7dDoeA*xLH^>C?v0Y&BI?v{&$}-K(Zyb6;Z!trtGgD=RCf zIShe7keLbj^V+_oSjhWBzW)9v;Ec4iH1^TU4~g>fx$W)k$;p6H*4=Xhr9KUT55!%!sKoR0rvd{r?s374yWxl1tG(EK>Xr_b@8;&F ztAxW~%G%o}dV9m;;*_572=Cz+CJjIPwe_YnH(LPRV4PJ{-&9)al@CZ_KJLlh3Ce}k zJ>lY#jq*Cz(YS5I@alm&Sn_MR?c29g?iV{hBlw)T9W&d<931rW@EGXswu#!`x57Ep z-Z+xKslL7*p;}i{ho23n+t5Bf=fcB#L(K4T zaTS%7K?hd5c4BK4tM&gVhoSP4Uuw+k*z9%HN5S4U&{knf{1#i~|4w+FIDdOd9-_Em zyICS-0y{;C?->~>c=S*0d1r`v`UA|;%1UoDCae%@t8n-K|6SI6H6DR{AVM#LcP7Be L!QH;z4nzJIcO#hv diff --git a/docs/html/inherit_graph_41.map b/docs/html/inherit_graph_41.map deleted file mode 100644 index b8c6af273..000000000 --- a/docs/html/inherit_graph_41.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_41.md5 b/docs/html/inherit_graph_41.md5 deleted file mode 100644 index 17ccf3144..000000000 --- a/docs/html/inherit_graph_41.md5 +++ /dev/null @@ -1 +0,0 @@ -b80571e9c626b0327ee1b1979e852a84 \ No newline at end of file diff --git a/docs/html/inherit_graph_41.png b/docs/html/inherit_graph_41.png deleted file mode 100644 index 1edbad403fe355e77c0e1249fd7ee994f8a6ae1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2713 zcmY+Gc|25Y8^;f!$(AM3Oq(#)G?XnO9$BU#%VbG}iP2&WgAxtKmUXhGkj5IG38BYU zVi+=65~C(-W00LJGrZ^d!E@&1iL(f^Zn6uO^m5;C)YyafxTw=2G``8aXLr=E(9X|-+;q|gT0ZdkNh4LCo zOiS=wPqi087v5VkBMsP=SXx|Hh+`32TO&L@;bdJOXKRHc->RHzLd@b=aVR(uNur+( zu}@cx#e74QE>E9NaKDmrxN(B|f5g?;tQIftj}mCYY#0?yrR zKzy}!z(3dWZF#i)wxpzlMDi%ds8QEf6RNA1NLRDsoO4j`9{ySECW_r;EPQVycHdTY`1`c9 z^u$=bud!@sXsEQbw6L&nPu97J<#DdYT1`I6>NdLuOWRwc8AuUke*H=}gMD&k(&_Y> zo~(9ZFhYtD6c`8qbMy1Z1UpAYq`IR!5ftU1pdjt!l;mWW*2m4YwYBBt{O>3o9nE1I zbA2y#U%Yssudgo_&jW~@I`wmScyqd&xVX3|p=@VtYAVjW9;<9$wY9Z%vnfQB;-7;m z{yEW^1jF{_v6hyY0gZ))g-btMeSLg>GY48 z-ed0+GpNPI#RLLhjFITkqo#qX%E~=7+S1Ze3V0Ri-t8QqJ@_C@02h#k(JKh-YmW?Fg z{~?pfIyyR@U7~pg5scyCcVu#!*Y?(m3{X&0Bfi-3m;(itS%dOY=7xq`_hStvU%osk z#@d+w24X7y(sFfCYqZiaL4ujA7=%YV`5-T^goFfVGjd#8 zRRl6F!u?=4BR3c7>+7qlt1H+(FgW-yEDQhw8oyJi)X$$S{=s6g@<3a6_aVml8;*`b z!ot*5DMEmmcGN=>KSt2+)9`{#c1deKIX+6g=c`*n$c9{|E z>UvsTJ)kG^?CzhXZ#mSjUo{X2gq$3yy82q7)oT(dCN>r{pf7@VY}L$jUq85fxov#h zH8fP`rdfy{BVJs-*99GU%*Cx{6kK^qe7wJ(UsrGM_omSEE7n)8fWefVjd^EhXBZ3? z6&1w=czAdy+r5DtK8#h*DJv_BkB^r<96LHXid$m5(6}f0NLc*yX|$c4=97WxRI{U!l6Pb20|V}F)_QZ!AK>PGQ(1XQPY(b< z>49@aOiBoT3;W==F?T(r=k(MG zF@!?%tm*ey^yP7m+T$L6<7jJbt@hRWboFTk%%N%r_{L!%1T?NM@WliC`n>@&DA=D(Bya+vb?{rI6Ueyz_3Kx}{5=lJ+|TpVPiZ^F+(#V$OY^W{sb zmBMZH954+~R%T~sL0FTMg-JF!85uJ(GbFo;i5Zkq2J|TvedtACz2TMPlvDbTK*{Wb ze_&u>fLB0rePiRp-o^Gq)lZX?kt7?wC~I5Wzj(%HXSWtcYsh4^RqdXh9#E-|!o!I~ zq8k=t&Fa0QNnDf&fS=pgpY9e1F5__ZEv02*TU$g67pC8ImnaU0d-!nIH07jd!j4P7 zOBV)%F*P-vFg-4OP%@FD*>~Wea6?1GG?Tfnsq|ZCKRUk59Fbyf!D$bOVK7|6oo(d; z3B;o?S$TO}P!O1VVxpr{AK@CR+Vq-?3eAwnGy3ji2lS+hq9SOn=H}*wViIc1Pwvvy zsNlJX8EVFT&9U*T5L>yntpP~7`++1AVrps|b8U=HMgj!_)5B)J6oU0d zt`b*gmPzUnumCcOF|xL^vvYLJNlPV_1~h)(B=Q?CK0rnm2buVVTkCyA;?nStvg9h_L(Y zFfsRBu!Q1pICV~l^-M`a(ZE)G0sksLUa3nNQVwdnboJb&ox9(UnTCG>YfZrXiluRt Hkt_Z`gNr%< diff --git a/docs/html/inherit_graph_42.map b/docs/html/inherit_graph_42.map deleted file mode 100644 index cc44ca8e6..000000000 --- a/docs/html/inherit_graph_42.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_42.md5 b/docs/html/inherit_graph_42.md5 deleted file mode 100644 index ee847188b..000000000 --- a/docs/html/inherit_graph_42.md5 +++ /dev/null @@ -1 +0,0 @@ -733426eb15f9f3ba667ec49faaec6b11 \ No newline at end of file diff --git a/docs/html/inherit_graph_42.png b/docs/html/inherit_graph_42.png deleted file mode 100644 index a7f5a0bcbd10501b82506b7bfc566f4d6328a807..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1971 zcmV;k2Tb^hP)X;100006VoOIv0RI60 z0RN!9r;`8x2WUw|K~#90?VN8+QePOy&qbG*3bl$d6VYl~%W~o-Zsy3r%%YY>r8$*a z%NNdQthu(bSFE|3imf+g^oQ7z%vwcjE0W%U6PhDie>5Snv~n#N#+u6gy*S(5jelLp z5d59bt8)&|Jmc_iL9sJpv6QuQFBm;L+qdySy| z3W6#~D+sC}tstm^v=S9ePfyp?)up7QY}&MGzH13cRBMID<6XUab-t^J1P>lO=2x|B=8xB}U(aEd?c2AXIB_C)%)r1v zVPPSY$^84N{vCeqng2fs1OoEc>{C-yB_$GW@e^bE+(=DttiyRGcz+mCJaP4TG48?IF3(GPv5(D@8->$w{PEu<25xkFJHcV{P?leYUOgd zdc7V1P+MC&G&J<$#f#C=(VU!|ii!&2ef6TNtBcF!UcY`F$8n?4=o@hV{(Xf)F)=a0 z;+i>9U~lgae(;lre)Bsg;5zyXKDF)%P-GMVgl zdreIZ5v)?FT3T8rCMIfYYinw1;HQORYTskET5Ur^Lw$Wcj^lEJc#2s{1^=l4Uu29+wA~= zPoF-)?(FO=gTb&^EP-Ytv;rwCEbQ#;gzYU`wzRdi!M0wn$1u$0a=~tOb@i!Jr@}}_ zaOKLCq@*OX*-VUl`0xP$V6|Fd_tmRc0D#Y*Kf_8|TU+5c{1A_gjRi?vR#qmJN{PS1 z_gEaq39STAO`htH!36~cN~O}_a4?xnrBW#ti*X$1^Z6GqUi{+;!EszH7Q;gb!dX|k zySwxA^OKX4F$|MRrDJ1b005iK78e({cI{enq}6H#0Hmd*!98PKT%6PCwApOoh#G(u zD^|b;olal8crmd6(CKuy+Z}eg=g*%vHa4o&>iqnCV$g24$H&KWI2_o8*DNRq004`{ zf{nz)L;!%>?WUgE_gJrh;Hjwx3j_k4PN&!Fi;9YN?AX!U+v{?<3b@-0 zbO3<2Z{Lc=V!2$tXU`t;czSyJ%*+g2!vO%p!^3cJ4pRprq|`xz1p+~DZ|}2b&xAtZ zs#U92uU@TCD3&c-7WU3P9!u~@>}dBGY2rSrSDot&K9 zxpU{fefv(HJn1!6R#sL?Nl8OP!}$2P-EKdA{CIhJd1`8E7^y=gq|`xzi;Ih$PUo## zx8On|5C|?@xDfWD0>aP=hr>C4{(Mzc6@$T$$z*%??j>GQtJS%=xn*T#Sy@?Tvw7RL zZ2$n3N|lq7Q(j)qVzC+<8zmA+kekD%rlu!Po+KtF!uy~w2q~RLqZt_)Q7V;Q&sU%^ zL!;3oCns;-yqU}8rlqB+RH`{l9h@MkJ32bZr49}b1`19{NGL8Yrqk)Uxw!xUp-|{_ zI{!v17*2Y?aOch)xKRyzI>dqjdJ@P6mFRkIi->0CK`S}<47}!t-?l7l7Mdp^Vm1S*RH{%Y=622~Cx+LRD6tuk z$;-<-efl(?&reB7>FVkVWZsBTVpuDGBw{uLGS{wMJ9qBfj~_oOD=Pz;H)0j?cU@t4 z5~7xWZ8PvXjo-d~gY&@k!xzH55i87%Cn5TYfX%?mN3wkRayZUrvx$s;%^R`H0@TX< z+6*uZgN;Dujo2lIwG!nvgFxnu*d>Ow;+Kfo47|Jn6s5aENg zf}jf03W6#~D+sC}tstm^w1S`t(h7nqe*7!G|9}wjKg4J>di_f4w{;~wJzXpoN46wH zl)~fjii(QJBN%#0i=YVFuOO&`w1S`t(h7nqNGk}c{0Eb%-?nlLwb%dv002ovPDHLk FV1nTjzoGyD diff --git a/docs/html/inherit_graph_43.map b/docs/html/inherit_graph_43.map deleted file mode 100644 index 3a75c2595..000000000 --- a/docs/html/inherit_graph_43.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_43.md5 b/docs/html/inherit_graph_43.md5 deleted file mode 100644 index 9f805c548..000000000 --- a/docs/html/inherit_graph_43.md5 +++ /dev/null @@ -1 +0,0 @@ -0c6f44d1299915f9c98b1ce92c61ce07 \ No newline at end of file diff --git a/docs/html/inherit_graph_43.png b/docs/html/inherit_graph_43.png deleted file mode 100644 index 0011f32290af0f25e23a1a4fe03f50ae6213d45e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2266 zcmV<02qpK4P)X;100006VoOIv0RI60 z0RN!9r;`8x2#-lbK~#90?VMXo6HOGyXG?rrfuI4y(Fq{_8jw~HbU|7{&;@A)K^G>u(bd&eSy}0* zR1nTaTwGj9NeR*XZC+8U)%Wh*vwKPiXGEz~c6D`;dzhw1EiEnf$_L@R96Wf?s0XcA z5OhIWLC^(h1wj|26{lcsZZ1DR-`m?eEG*2?xmd)hwZh}^u3fw4=q&8Pg9i_KdU`Y( z&EVjmqjRx{b7>_eCg#SC8$?s7R31BaZ27_|6bj57uV24j!YI3T?K*k#B(+U{e}8Oj zEQ`hZb63lUnP=vI2R@%qe$75TJ)M}C$l-9dY}sPxOtf09tE;P>gIbF%^NLU?#4wD( zU<3sPm6w+jms_XPNhFe>prBQ&RuvT$O;1k)0Q7pjL?Q_c3|zT#rBEpR`0=A9w^>

M^jK|}F-|s<@k&z`OB?$=$US3{Xw{Gq3?yjh)*sx&(i^V#A{J6njfM%A$ zNu|Lvq6BrDJoSYm0fLtzTFc<)U$;rthM~<-B>~-tb<>%*r`}U2;wSh<>d_x4ZV2rVr*F%1U_L+1ZIQOqoc6->eVX%z~|4OVI~z76|f(Ei8UGxMd;MjREb1F zd(`vOW7E30Ri9{kC$CHwhYHMp3y&yP_i$o$ggus@0 zrKP1MDk{p$%L~IWiA18&XaE2zmCD7%W#h(;WXsXfQ2>Cyzdu|vy12OLbUKwvWs9f* zSi5#DJaBV!^YHK>CIB}#x7pcQo5MYS{=B%jST2`GMMV*vYPFilWOBJ&*o5~iC-^z;J<4xBo5%E(o4aByN`qF5{*A0Jn%)hAAzNJ~re_4TzOw6$0jn!-3fK3=EO z-MV!PP9%Ij|I(#PHcu+R2CZIDS__Rj=i z6%N?r=W@B|HupDz?m>p)sT(8cMrVz)X0BmeMqiM7L-OlDwUU|Cri z&9_c}HBP4$SSLWB*XyIAqB1fvmb^~D=*5b)8xL^!&!0aV8yjnDYh^Oo(x&HxI8rN4 zQYSzrGBWb)*|SMWN#5SxO-)UfsxJtbOy-UqJGO7%PSmp*d04c%U}k1!-@bk6>FLwc z)0VO|@=5ywFELIxuaL1@odB8o`uYnOF8uiMBP%P*QuPJF{QSI9sqE?LNk~XA>w&tu zU}9oo=gyseetz&XQe;c^Y3t?uW61Nc4K)eN$8y&R7+r_2U%x^>aQ-lbsJ<{Ao|BU^ zH#Y}Qkv&i+eCEuVpr9bBR0_{hWJ{6N^072E33k8^bpl4~l{IVDzcYZ8;uPV5I^p{IdJhi|u~-b7)Y+1=aum*}701>IU>F7uELC5SVK5lM!NJ+t z*==oYrXHvhmP)1J;o$;-;QROQi)KssbRbT*wsoF50ZY{vWN;i;sZ>o(O%V|hre~=W zW-^(#Z{H3J3rkK;o}8Rq!m5U4!s+G}yVVI8z1%1N)&xRPeL)O&adC-_jb*dhjg5_# zJ`P2~3!>yb=%)AQFk}n-aoF;qiEJadG4x4DHe)XoA)& o2)ZDxAn1a$f}ji13W6^G0ZBWxVhOcu@Bjb+07*qoM6N<$f}E*5(*OVf diff --git a/docs/html/inherit_graph_44.map b/docs/html/inherit_graph_44.map deleted file mode 100644 index 02e5d5cd7..000000000 --- a/docs/html/inherit_graph_44.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_44.md5 b/docs/html/inherit_graph_44.md5 deleted file mode 100644 index 959e9c323..000000000 --- a/docs/html/inherit_graph_44.md5 +++ /dev/null @@ -1 +0,0 @@ -5d0caa651bdc4f7f9fc2384a6a3cc21b \ No newline at end of file diff --git a/docs/html/inherit_graph_44.png b/docs/html/inherit_graph_44.png deleted file mode 100644 index e93dde1d7c8ec6ee31f1b776e68928de624ce524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1882 zcmV-g2c`IlP)X;100006VoOIv0RI60 z0RN!9r;`8x2M*<-bAO28I1Ug960jCJ0R&?}T0xKnX$3(Rq!k2NlEWKTtF^VY zb)iy0&<%-1qS0uG<{#sV$K$zw|NgwEgrFlfo6TyqhFg*&ow~ZZ<|`ireK~aK&kNW!h zyk76Xz`#Q15)*o9rLeH@=FOW#(`K`sJbCipg)^JYSTx?geLIIycJ11A=FFM+KK=du zMMXtC9`EnF`gcTmX8wPWN~Phi*(W9@N=ixu0>P$Do8~zapU;<)k}}Uh6NSpSBA3fC z3}dla+1c4zt(Lgle!pL>R%d5tuUN67uC8ukVgdjV2n5t>byil^^5x6ra{1@apJR1< z^ypEC!*TrhaSX%6Vlnu04%)tbyGEngv112^!`Zxfb8l~NOH0eTb?bOM-lhCt*!m>;|GyRQ&Uq} zSs9nh&CShy{``6T(BVWqS1y-dxpL*|)vFkWoj-p*PUxsab?)x&&dtq*4oyu>7={fG z4+8*tdwY32-qh4ooDO3_MJpzg3CHot$;k%~9^ATh>&~4!(5_S}U%!6+^yyQV%Ow(t zEEWp@pr)o~aB%R|t5+ix(a~|_$PpaJ;cYZHI2it^$KwG2 zeEISPHm9ejxm>Q(>5SDIp%q9`QBh}SCp_M^ZCh(=D?GMXEEt9b0s+{puC6|J?i_`1 z1lO)zOG`_0I2?rK)2B}W0GG=Jn{VE{0RVjc`W0r<($WI$@FwUX9mzS&6YT~bm zJQv4tLM!n@hj%rrb75hjPN(zvd^{dcr_(7E3LM8vOG__bzC7y%!Es!nP{30NsEjLJ zU0nqQ1so0s!!Wg4?e%&A0B*NCDJg0F`t{+SE|&`ckdcuA*NjO?Nq)cI?RHZUH2|wt zt%3(^HhbyPrNjWhX0wCAAmwl`U%qT;XfPNI1qB6!(c|$XCnpPqLfC|J78C>kfY0Z{ zgVfYi06;JpBp*8R+!+q>Lz8!wN~LDA*qVtJUt`zdzibnVC5?H3i3T0Km}D5H!wV=vX8aI*zkcD(&g%dGX?fOeR~i zX3g5QYunq~SFT)1dF7t)cM}W-L!l6l$6K;wiOptfYiomcfj}Ua%TJs*@$TI_pU>CX z*=aJF1Omanefv}@)yIz?fByX0*Vk8BS^4YNuUMU@r>8rePHHPJm_w{^QP;NP^XSw;MuchXLOa5lT%VsQeR&`Iy&m{cut=_T~Seyo}Nx2bfP2_I*xO3ak1a;zkT~Q z97v>6>7`4TC=V)tf>wk=;l+y=tE#HFT&_l=IdI?r@sYt`$j{F&FE7u@$#FOwJ9q8` z0OrQa7LqXcz9T+)6LjlfrS}H zqmjemY~8w5Bobw0Wa#z!ISd`2IH5Z_I>J*O7#N7O1V44q5;+9?DFp^JXKrc|=nSI^3~0`x(hAcH3}_A`wX#?X3}_A`wGtI3 z78o!KRFi;+4ys8&PzPxRK^CMH1X++)5M)7GL68M$1wj_16$DwL)UQPT146`qh|Ol3 z@hh!A#+A&>Ooc)*zbPSTidZa`NF?DF4DHe)NP^ZY2(lopAjpEWf*=dh3W6-Z0kD7X UfoY#D9{>OV07*qoM6N<$f@;8oxBvhE diff --git a/docs/html/inherit_graph_45.map b/docs/html/inherit_graph_45.map deleted file mode 100644 index cfe31dc14..000000000 --- a/docs/html/inherit_graph_45.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_45.md5 b/docs/html/inherit_graph_45.md5 deleted file mode 100644 index 26de3f1d5..000000000 --- a/docs/html/inherit_graph_45.md5 +++ /dev/null @@ -1 +0,0 @@ -eef858a251828efd3bf73e8bce5fa16d \ No newline at end of file diff --git a/docs/html/inherit_graph_45.png b/docs/html/inherit_graph_45.png deleted file mode 100644 index 058b83ed42e2e615370fe42222d9ffe89ee1388e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2199 zcmV;I2x#|-P)X;100006VoOIv0RI60 z0RN!9r;`8x2uw*tK~#90?VN8+Qg0N;pNlO2ORYtziD)&gX*zX@OHCQfOe!rZ&G{$S z@`W>+Ypz!I$~9K=?|M^&m62&?uClciN$IdbI40t;HN zAgF@0f}jf03W6#~D^9`e>})|nfv>M`L_~z6YcY#cYlXw%+`M_y(N(Mlj~_qo?(WuV zwF3hKj;_Tl&ZU*OxVYQ5Zxch6N_Fz&$(2hdm&-9zynFY~j#>8Z-FxQD8OuI>eSPuq z@eBrI`Jq-06Zg#j4m=)@{F;4gYAQK7nZ;sl-@bj7E79q6?(XiZoYY!unO6h?0fu2T z8Z9Iwq_VP-INf@^UL+EQgoLbHx30Ljcxq}20AMf}L?TgeaPZo-YXt(qmoHz;h0V^+ z?(OY8apDAqVH^$z{Cy3Ij*c!XD@#gB^6~N6v13P9S65Y4)#lBc84Sj$Q>TnZBXl#D zPAnF0-MV%0Hi6M-%+1XO0LWxA8jS`3n3$M2e*8F-$=tYcV?jZ|j~_pXN-8QUxLmHE zpI=y5*ozl0ET<-8@>qdDaP8W)>({Si7H7NmdU|>^ z8ckka9^u^B*eDi@$H&L>^Yioa^5Cz9V(P`mc64-yQ2>BkF5k9on_Mo3+bJn2bh=H~6P!d#OUnYwlGN4J9Xoam$8q>G8XO!X@6~8D z0D!Mwzrx}C{Jfu^Uw?nUxoCt|Ao20>5{U$EM@2nn)xf zKE>i=aU3VKVmUQA)RN9|adA?qRHxH17!0XYDijKF98XC}sjshJ@`T_xE))vkAq2L} zE3K`qF)=YdK0X+Ri9{l;Rto@7tJQ99ZdC^r81c;CMJe3YBU-;oz7;n;SgT4pdbJM zOePa;ebNsi`~jcs#jWu23iv5)$_9+t=CIX)qX+N+plSvwT9# zVYODifB&A7lXL0PrLnOwqtRGXQv)x4Y&Ls-ejdu4AUHUfMx#wmPLk!hfB$~7)zFr8 zUuJDO0KkV2AA~|-Wo2b%W+vGl6cjW!HwWi%0Km}D5H#8`wK=RxZNZtx<8^j+zI^$T z&*yL2v?(AUptiPl{rdGbuiUNvZf0g?j7B4a!C13qjY_4esi}c>7KNqi^V!{;6Pzv;ipfZrl+U7ySuZpvi|(}V=lPAzkh#!zilfoScAEACfBx; zlam=48HW!aK701;f>5EMp~=a~B_$FMeI{{A+kwic^WTX0THOw{Z3 zckkYX6A6#UyL$Di&65hSK`U%F`^uFoIXO9getu~b5BoCcpqc~R;6ocX&D|KmP(}y zp0B{hjFy%bA0MBcJ9oy$#s&rkHa0feF|}nZq^_&0BbPcbFksHv-Q7JgG10@rBQi1) z0Kn(-^?Lnsw1VNJ2MiA$Jb(*To5LagH^80*a)XLetJWb99UU!`$yPLl9r>r<9h!sa5LoiX?>~hT%`2|hApk3+ z)9Jy%!4(x16yH6$C{Cmm*dah*Fc@NDVlp!`ow-8*zMc8~`*%}QQ+<8CR4QHR+8l^u zwDLde5TMiPyLa#2wQCpA)fOEcec{4|l#~=-U*G2D<|QLcPfs5_crYU)V`^&3T;&U5 z+Hl&Ji4)B$WL&F5U~X91O&j( zYoT&-Ogo%qYavhjHuNN{1TNGeKt7YXxw*5mvqWUr1-4}I=g*%H2?-I4#c;2M%E>WT z0sHhMtSGM4Apm6uU$AR5nxdj2;y@OQMI}N*LxY!>S4l|;99piNi0KfVODitgAwZ+i zLPJAya&p?++X*9vVN@cB#p1}wNIswc^XJbcD<@()1SeYCx^9O6j^k>zy1BVIDk{p_ z2y{CA-o1Mf5fQ1WsS^_ucC6g)IMKY~x*Y;;Zf^1M@k}POsj11@2mk;YjV6&uxLj^> za1@$B#OoMt75VnJ~f}jf03W6#~D+sC}tstm^w1S`t(h7nqCi>zQ{{uqA zKZr`DTJTp|f6XgFK|w;HaCJ*UI4K+sCm|t$Y{Ae|S_DPVdIdohq!k2JkX8^>L0Umj Z - - diff --git a/docs/html/inherit_graph_46.md5 b/docs/html/inherit_graph_46.md5 deleted file mode 100644 index 9abdbfce4..000000000 --- a/docs/html/inherit_graph_46.md5 +++ /dev/null @@ -1 +0,0 @@ -866a0869a50118e8483fbff0b8857ca8 \ No newline at end of file diff --git a/docs/html/inherit_graph_46.png b/docs/html/inherit_graph_46.png deleted file mode 100644 index a789b7877acc8fc4e999276134dce0b08c544d7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2329 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 diff --git a/docs/html/inherit_graph_47.map b/docs/html/inherit_graph_47.map deleted file mode 100644 index b7b121d00..000000000 --- a/docs/html/inherit_graph_47.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_47.md5 b/docs/html/inherit_graph_47.md5 deleted file mode 100644 index 3f3b15519..000000000 --- a/docs/html/inherit_graph_47.md5 +++ /dev/null @@ -1 +0,0 @@ -7fae68a07f6e361f224eedb534d97f68 \ No newline at end of file diff --git a/docs/html/inherit_graph_47.png b/docs/html/inherit_graph_47.png deleted file mode 100644 index a00b075d61c6782607d4cfc3788323934417c400..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2226 zcmV;j2u=5iP)X;100006VoOIv0RI60 z0RN!9r;`8x2xmz|K~#90?VMXo6HOR~XG@iGYEdExNGYfRiKw9@6oUjv8$>IiQV+V>l`)yr|QK+Sr@bK{3+FD{)p-`MWdGhb2lgVV5A>O@vw~ATz?%jL(^l8&Ey}i8= z5fLmFYvo=2Jq+A4|9{}~`MR&!XJ%%iqodhu_O@-?tXzporE+w1v~p5&v1D8k3WXSk z(P*@QfPkW+BI0tZ)oQ6!8W0e$Zr!@9tgM-t832GrqmfFb{{H^%?(RaN@XMDk#=1Rv z^k`2{&++5OF%0AJc;L@DXxFY?`T6;K_Uv(Wbqxs#>Fn$*EiK)&X%maZI(6!lR;z_! z#?loR7jN0JMSq(>tJS8arUC%!>+5MW8USEwYU}0W63kwS-Iy8nQT4`%*!*P6me*WIQd$(@gYG`PH?dj?1Z{ECl{P^+k@GzIl z?da$L0Ayrj3=9msc=2L%bTl|PSR@h=f7d14xpRlh<=(t`6UT9dLZKhf+S*!CQ876= z$>Z?^0>Q_RAN%_Hy1Tm{J$lsA(gI`1r&~fnK|yzS_rr$|U0hsX%i+U^RVr0)Z*O;Z zw^FH0PfsU;>+0%?i;E{GCo?iK($mx7w}oVC{d3#e+H!Jova+&p94{&=GM!og#bVXe)QH7m9LHl~VlG{}wCn}Jaa=4G z!&3+>8CRN`n!>`uTwPr;43kQwV`F0gfRT|A2M34En>Xu54i66l0DOIY;hNFG!9lH7 zkBp31B5D9OY}f!d7z~E9vokROFc^&4*;$LzJ%9c@H#fJwzCJ80jA&FUm2^6t!{NYP zIA=jY002BaJ>iCvlM?`7c6OG0YW;JU1ei`uKA6wv%Ve^Sj*iI4$bI|vwYRrxG#a^F z&gb(@Ul3!Mt(9-zzNMt3oIihlVq!w8)s~l+!^w}s;VdpLLYWiz`}@;qwCU+-U3nfj zaKLCav=!Z#nVSv(@ZrM;u~=MGRFssIq}%T2=eMx10LO3uz~JB@Y+S|E#xN_jiC{jT z-`?K-?AbGcK(KM+Mjs!aii!#k4-bo1?q>gOW@l%$S}lvkTDx|wLZK)xFNf`HHd`nZ zo;Y#h{rmSSm8!bBx~;8^&1NSiCQ2ldPoF;h`t_@;t4kyj{r>&iSm)l}-hF+2maV*C z4aU+LT-#1hPw(HqKRG%1%$YMwx(W;ojE;`Z$;p|Rm{2N}d3kvW2?^fb-WH@b7qe2E z2#$)1QmfUsZ{LOk37^luc=4jeg9@-fD;y4|q@*MzC56dk=I7@hJa~{eR9{~o8X6iO zA0HSP*wfP!8ygD%sH>|B4h~L8NbvOZ%+1Y}NF*k14hsqjo;-QtEt5>2G4A*(UaQE(AxKOpYJH$T&^d#sSRH*gb7C~ifpp}u45&g&N z5{bn6l_1Q*2G96891fc1>=85vts4LQTXCe7zrsJM8@tqs)w~3-TQ@hi-Me?ceEE|6 zxqsVDVH509E6__opwVc;!orf0l2+YI0AIe0kB@V?+{DDhsi~>e?cctjx>l&*C15g{ z7cN}*`SU0Iy$l({fbJZmZ`HVZ^(uTm1{oL_pwsCl+!_>t>RMSAt9c0s%rXoBLspHn zw6xLD(O0it!GNl&DuF=Y@9)2&3tWZEiEmpe|1*I>Ua_;f)%_3@a2n-k56Z3=l%Qly}Z24 zG7JDCRt*3^c6N4ibMyD_-T`LB$t(U;u{ta3+001J9h(@Eu#>VR3+))(W#f#moZS9)5xw-Z0*EcjY z*t!tI{8MXNy9UScD_5>KIXNXKC)>Ifve@g|*4}Y;c6N7nzj5P+U94&$NGrBM-@Z?M z&>Vyy3(^XLEJ!N|vLLM>$YNk^tN#xO5&uIJ3dNFNY5g&-`1$#X#bWE0grF!q9xpO7 zQn%%g-;yB^CP3>I1X++)5M)7GL68M$1woeo0BL7O - - diff --git a/docs/html/inherit_graph_48.md5 b/docs/html/inherit_graph_48.md5 deleted file mode 100644 index ad460c92f..000000000 --- a/docs/html/inherit_graph_48.md5 +++ /dev/null @@ -1 +0,0 @@ -5a971f29942dfb142d82a22653bbf52d \ No newline at end of file diff --git a/docs/html/inherit_graph_48.png b/docs/html/inherit_graph_48.png deleted file mode 100644 index a369306780bb1beaf146cf335219386ea584ec02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2531 zcmV<92^{u`P)X;100006VoOIv0RI60 z0RN!9r;`8x37APlK~#90?VMRm6W0W24qn!qG?ge11nqhja@`-l(CWL0kFY=r4y39g=Cm z*DE+!!L@>e6Z{Dn8l)ZcRo;-O{wM}nt zFP%=OP$(;RwRR|YX8w0zGMUob?9SM^loKaTEG;cT zGiBj&a&oqA-70^Kvb3}m7Z(QrsIIOi5{UqS$;rv1M~_meR4Xg1q@<*8-@c)lWMyRq z2M3#*n>#x@KYsjJb!cf6-pgjQFJHb~T3SjV5YC-Dry{gM6dE@*H90#wLxZfWECPWr zG&BSN=)6004}SkHgc&#YJ;-^S-`5W!_M&Kr8_VDn?&(DX)?d|OZ0zo2?z|*+6 zxYMUkYY-0Q>eZ{JrlvhTJ!s3vj~@X5!^6Yy^!4l40D#Y*Kf_G&^73Fi{39M48&eTF zBqW5#Y6W^78WN=x78%0s{k!i;I{2KoA6p zj*f=6plC9#G&D4Ld3l+cnGpyC9*;LRHU3oJ3BifB0{>|&dzROVF8Ze0D!^4LD;y8p_QRl zXcfjxCbO-r?a7lTEEa3ircE|BHidzTv)ReX$#37j6^TS;Wo0cbEi@V}JUpDk;e7b;VP9f;lJ)r*LgMH8m9$78Vs1b?Ve98COnDP5}V{TrPKFVnQGgq^GBchK5>OTWb(n zUDOJ#!r0HxPb?PSym=E2Bupmr(xpop4=O+dtvEP1SePn`dNX96Wdsy;NOY z?e6X#5)$I%&hRaMn0hE|P=&_zW>(y8|M_bW3t zG&J<{^D{Csa(8zJ0I*mru~@tktq>5Y7Yw&=--ZiSjosn=HNct#=>iq~dT)!P&*(ra zBO@d7uhlsmj`lObQ41Zs<9Bdyz^A!C5qu8%KYFsQ?dj=RU0to~EEIriMKOA!8@)m| zTG3iD0CYu0hB_)E`0^0gKvB_;3$7i3^yfJ7q6#3hkPyLa#2xpOC4>gMU`dG_qtz`#H< znOs*_w`>|SGcyMc90&^wo1UIl)<+qi%X}FtL-*?ytrY{HsI}t{6xCY9$H$M3j=p&D z0veQ-maSC_xPKiXJPQE}nIg&#kD#Kgp?PD3aZ?%A`)#>NJI zGAjBg?NfC}R*Ljopg~Q-3eiq6fJh`tPfsV4$wHw}g@5T12=rKCtp$Q0TrM|0J|01k zxw$z@OUtIFCfFVl5+eQa#>K_W&(Fh49v&XBG;G;!o;h>I(a|v{CkI|t(MM^YtIO)t zB&-%%CR`@7}etvQlfuA1JA{005+>rZzS-?CVPay!<#OSv>OP`A*BYH^MLWd+@N1JuBz!(UI5=1X{|aj@ z006G8u5>!Rva+(Iq=duatXsEE#(+p9IypJT#>O@`H=~UN0s%`mb8>Rr-Q8I%*7xt< zm+d3!bFIoLt3%hn1k4aYeVq0P6ZzSZe_Qh>VOR5{W@UK{5|_aN;vCFrd@vR4TQm zrbdG_h(uypSy^y!a6mx7*x1-A7CdN<^suJ=we26x+}zxT4I64}YjvH-nxJ26+dmov zL9Sf6Vr*<26&0oHT(rbL{adn?U}9ooVPR2GQ6ayo{aeAcq9OA2_kTV39E5`vTq`(O z!L@>e6RIB_s9SM002ovPDHLkV1gjfrcVF> diff --git a/docs/html/inherit_graph_49.map b/docs/html/inherit_graph_49.map deleted file mode 100644 index 980c481dc..000000000 --- a/docs/html/inherit_graph_49.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_49.md5 b/docs/html/inherit_graph_49.md5 deleted file mode 100644 index 2ba04f6da..000000000 --- a/docs/html/inherit_graph_49.md5 +++ /dev/null @@ -1 +0,0 @@ -a490ad3f0508aefb4f5a872cd1944989 \ No newline at end of file diff --git a/docs/html/inherit_graph_49.png b/docs/html/inherit_graph_49.png deleted file mode 100644 index 725317244adc5cf1690265724eff09436b4e9e2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2854 zcmY+GcT^M4*T#b&VyGgWd{L2JqzH;23P_ROK@6cA5T&<(f`Sx-g3^mbiWEUg5CX(V z5JHR?Fc=IXB{32@D!mBA-}>MCo;^GFoZUS$J9F>-JP*>r&VnB-1qOjY{FYZuoq&i1 zZXKRO!05pg;0FS?pS6W4=%=9>)-}mU9&%Rw=0!t8}D-EO$6cU zGZFXhm6aHDCVIwoVmiFH*S{JDQg)MiwwL25yY#(-6dwuhpdh7p5@DP{Y^fmc%1ZE0 zRUMbg#I$r3rB+8**MgFg3tqLu64FUYN%i&hi1p4yGljgVt_Z?+h0hYFg^|?_4VhyP z8U$37m9_E>b>5T5F}Dg5<`KXI?JdI&XX1t1w7nYI9KFRZ-_j|aWq@?6d zZSz}OprZZrvI|iP&xYt7Arl`y@IY!UQAQ_=&jw~M>VEq0;i{)61Z1QnqAkG(G71cw zOXrtfUS6)XL%q2M~MOuX%W2ySgqSR_=T19>YWt2m}f+Eqgzn%UIw) zebcJz>cK~f3Jc$Kb-m+QSXkgmxmx1{de;_68N0nTJS>DXvYr2->enhkK==0cK06=g zg^jF1qlLCeBvKDzwW_hPvA%wQOn&wHwJ_-E)29yJ-hX#irwa=UdKSHeK> z^71M=1MAbYk^a z;0ekguGmIl*`qTQW^Yd+7iruI4i3=vxO?~FrLKw!qmx3>(a~~pa{VL{!JF5N)(}PX z(<-Mh@QDWLzCcP?4X%y`dUA5rm6eq>HHSeCUS5~teod~eMI!za5lOAmM=45hS_G~;Rn*rXJ?Gt%#1Gop-#y#T zVh!Y>Pp}_Cp-@W~4QPj&y!_!FUK&;+oryPTE>#Nt(o3h)4KbVZIZ>|aJZP5*bcW396rimw6wj+%*eh(Zn9uP%)6&rJBNEHvtvcG22=tsrYinzU;EB+%uoIG!10O%8WR&OSjjXI_Mn^#` zEG)Pme4d)Jjix+&$dfgy$)3mBKx07nw|_H$cYy%`rsn3tdx1lxx;i>s+u%t)-FUD=cCs1_|2p>pENvRm4$&POB?H63UkkfFca*Yb?i9JHFZJ9OR; z>g`xXMYS#7+U)N)B|uGHh)%C$GX@5bmuA`K^JnKGJbRK16%`dVG{WAhQw0+LWNNVv)Ya5>?p{hc zsrkrUyQZlrgqSJn=H}Mi+zcSrT&Nm{lip9_o?)>794q8W3JIL6)DU~<4T9d>lhU^wZ@hf`;jT- zf$EKetaRgPQBKx@D3}Of8X)-AR=QznZGV41`rGpR_vWqF8qdM^cUJwcUoUk~+W)h; zggmb3vye94huq)a_a|i^?5ti<6YFemzZk#9wN-xk-gDCQ1$}*Cq5wa?rCjdf;^O`L zptr}1&`AdgYbmMO+1c{eg@eUfoM%oCqzK&z-Zi^S?dX_%e$|Ah-UVo8S8FNYGSxcgX>OCDOE~ZG(PpzZ-^3`!uM(X zJogD@ZDUiW>6=3J;eNneUIs+@&eEv5>rvJ%Ss|Xu$w|aT`ajaZgsNN#J zrlt`pHCx8;&(c>7Tj$xqlIgj*qO!6{8cn{y3i!IE;TMyTaYO(T6ci)@fk0$r(uorH zO_=@J{~2VTxXj*IaK=#R66v~tMu>`Haky7WR(J)aOfOt)2w+zL2}Pk$32LboeZ{|3 zr*pUM?d;r?L;z`&Es+&QChhNN-Pu}3qcw}2b#-;+!5*&zkbrLh5RjE+3siSRgw`YC zArY`*RaKP)pLuvVnwob~O;J-zYjt(CwXF@8bnvED^t8uu?gu%~p7CyDM@QWZ#Y`Rx zMC?h8jExp6tE#rOwtg;ZPfkv@%u^5*6I-*ojL_BhLWHYl3!amka_4=H)un{SbpjqdPi2Q7G`$1{+v487$RR)z=?K16EKO wkH-Uw(*K;nE_|Gx&ZY15f4$^CD>!p`R`==S!>fZafbj)cn%S8)oA{*s540ka!T - - diff --git a/docs/html/inherit_graph_5.md5 b/docs/html/inherit_graph_5.md5 deleted file mode 100644 index 2e52ad5c8..000000000 --- a/docs/html/inherit_graph_5.md5 +++ /dev/null @@ -1 +0,0 @@ -6a054ad3d659a4427d59e117030160bb \ No newline at end of file diff --git a/docs/html/inherit_graph_5.png b/docs/html/inherit_graph_5.png deleted file mode 100644 index 8b4503ec243ef51212632706e33be40b96552e3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2107 zcmV-B2*me^P)MJ!j|F0AUygXef<`s}rDEb7+mJ53Movp*5yHn@l?jg`%RO z!d0ozIE$E=n8LzBqWjl#JT^Ag*4DP}DbY9+rBbO-C`?B-SsKaZ^7YDx#`&bCrkah= z^D*_IHKsna#?*(_*kyeG{vCoKoldt#_5^ONaddQaZEdZqv)J&sm&Q?1QTOlPC%Q_d z^7QG`u1m)XW*Ke>+)HDcwZIXL5d?uC$iu^f%jL>sGNL*;H#aAhO1WI_wr$(ao;|y; zumAwi>-AEpG$bTs>(;FZf{c!ilDR!`;zVz6Z+3Pz1VPc!(ctfQwNNN5EG&$TjrH~Q zjfjZo?(QxxFK4k>etv#=d3i>o5jP_Xck|}W(9lrJwpIIyiHU%KfX2o~+$J|SH$Fbz zU@%x_NES{g6kfS(9zT9eTsxT`GJE^LOlWCo zF&nYL^78VB4A}Il zUAuO*wzlGCWZ`byxWVW1aU0V%nf=R`FPTi{=g*((>+1so0yG+p)eOl_7YGDwHoLpK zdtqTgCX@O5`x}i$48vk$V^dO6CMPF{hliu0q5uF|t=5JgGJ6|HBoc{4Vmjiu#yC|~ zRcUEy7>410dP74)rboxd#sC20*YWPZr($u0-SQe#Kn)pEH!GBVQF*B62ysZ@%hC;(t&WW>|clh5ayT7Lcd6#x(v z6a+yK1VNsjo^x|^BO@aYy>Y zgaijp_xJb58w>^m0I;~Yh@z;Ej}I|U+$%CaWcK!AWxv`slarI_>FI54ZHEsZ_Vx9x zs;X*kZUz8wI2?n)pi-%bsSW@T5)$I!;W0HewSD{cl{okCSk)TP-f%YTjYi|CQ>PFF zQ79Dm?%m7D$+67P-f%1yYhhtwYHA9XO|4ej_M=j%tlHa)-S>2HanWcr`uX{Jd3h<7 z%F4=0e4Nc@BM6d{lk?@vm)Y6bnwpx9jt(}Pot&JUm6bI(IQZ+=ulMiYi^bwUfBuj; z4-5?K>+4%yUUuwaY=pDA=CWZglgY-$#u^$L9zJ|{{`~n*pFUY;Xz$hW`TTDa(Tv%9m{P=O=P-A1`zJ2?S967?{@p^lE zfG_{7D<6%`ewrl#UQ6U;KSH(X0gi(aqi^Z5vZWM*dmGi@?^yMQp0?=o9kTk!>y zW4>tI0lcC@ZWo7m1xNlD4g&BfaeZ@;)R?xHbS?T^6A%PTA_?Dp;3 znVFdd1qJx3&1#i%xTY%C1Jk&%(_-o3Lt zcjZym8F$fm*_ zriXA9anx!xi^VcMYFCtX#$7c2=bCG2X=z|!ps1**p`qc8gDs+w&BlV(nEFs~dv-1O`0=BwQ*a#mIi^0e#?*(_ znEKEfQy(j9F3W!mL$iTUDwSqmr~maF2L}gBB$D+_iN?u9M@PrR#F&o!^$k4@C86hI l>O*TxeQ1rT53Mov`43?DZpe}pB_RL+002ovPDHLkV1nZv6`ueA diff --git a/docs/html/inherit_graph_50.map b/docs/html/inherit_graph_50.map deleted file mode 100644 index 16ea258d7..000000000 --- a/docs/html/inherit_graph_50.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_50.md5 b/docs/html/inherit_graph_50.md5 deleted file mode 100644 index ffa96db8b..000000000 --- a/docs/html/inherit_graph_50.md5 +++ /dev/null @@ -1 +0,0 @@ -2015624a5ff020cb4c7d626ebf29add0 \ No newline at end of file diff --git a/docs/html/inherit_graph_50.png b/docs/html/inherit_graph_50.png deleted file mode 100644 index 40c40329546fe553fc42e0e6ce5030a17be44b5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2104 zcmV-82*>w{P)X;100006VoOIv0RI60 z0RN!9r;`8x2kl8jK~#90?VNo`Q(qXz&z++4C1->yn=jJ}Ez(2FbIF4upXs3FVf#do*TWRx4zQR?pRj{}#b+q~X% zyZSqyzs`B~+~;|`es}J<_dbf@I1Ug95-{9d0AkgEw1OZD(h7nsNGk}kc-l_XYIRLb zjk`)g(2eBe?jNpf86HAD(AH z`xOLPkX8_6L0UnO1!;vA%*@Ob6cnsmw{GXoo$jv1A+**CkH>3lY;<=OuHgCe=bfFM zdcD54x7XdZID}qWNlZ+CbU zDJhA?V*PulmBY?G^Zy4vpKtq`eQIhdH8nLXENuJs?JlmwXf%3zd%HO4QlYZ02m}HQ z!x#)kL_|boWhHUCO(v5>B8iBISigRKQBl#<)D!@~Y&J_IlJM~Gz`#I(Krk{g;wbE~ zW5>F?yHA`rfngYr#{+*~gW}@iN=r+3@80e2@4sWmj*gCw>gwu{kPsG&b>_?&tJMnK z9HpzOs@l4B>%uXC)oRVp&j$cBH8n993;@8y#KiIA$JuQ5#*G^b3JQMy{7F<&QBjee zo*obo5ET{m=FJ=Dsco@)tUw^RdGqG&+qW?cyLj=Ulhk&x>)g`P5)~B%9V#j+Fbo?U z90UM#bab#-tl8OFCjlKnMJuhXtvHU)%*;G}`t;ttdk-Hzgm#fg^#1+(SFc_T4GkqE zB&bv>0DxF5?(6G&_wL>3=xB6wbZ%}g@q3-eqeqVt5)x!G8II!`jb@?4vuDrh>gvYF z$9X(nMn=Y$FJH7;ZC6*<%a<=(T3VnF`E>IrFE8)v>U#0wg`b}vv>Z8d#Ar13^z?Lf zb?J0Ekw`>1%jNQ_s;cqvaj{q|5{clqg=Ff5$F{b%78e&66&2w)URhb`JoQ5CI;W?n z_xJaYj*bEVluG5cZQGPeB^;-vrFnW%x}M-RC=`l$mPM(ruRnV9D30UsYt+}*XZxv6 zrvm_d`}Pe^=jP@D0s^#Jt)pm!Rv<}9NevARaJ*~Ru9}(}I991t7>1e6W;o5y&%bct z0)=!0ckbNr^YiQO?j|e)0|Nknp`jr-{qW%f0O0%g@34~U>S}0*Ut+yp?<93*W~M|U zA%2R5$Kp6nXvKMI+fa)-CnhFJrBb8O$YQaiQmIfV#Bn?=E$zmQ8;hP09LI%1Av}bD z%DU3r+#DYt@9*!AVVFcB(d+d9fZ^d`4-bzmTejGG4h;rw{J^IN}8IQ;^X59qfV#u^z`I%xo`@vSx^uF z05+Qq2R=SN004`{LO%7vW9K6R;&4ZzVj2} zh$U;~$B!R*d3l#ET^bu3vs$gSwYBi#$K`V8=H{Tx3Btp}84QNOV6c^Ec6PSIY8d}? zU$)eA0D#Y*KMRGz%F4=|oE%$wXlUr{>?~Zv0Ra8|{m{6KsU5MT)J~lFe13a-ds|yu zMn=Y_O`A4v-dtB#w_(Eu$~*TZ|86W6i`8mnu~=SSUK)+2wzd}9!@|M@0>R0XCqI4q zWHcHZ8X8(#Tf@S_4jed8SXlV=>(}Y&>CVp1+}zyXzkfRl9vmF3)oQ8jykHHE(%IeH z8VrX0`}ZF@bf~PXY+k6y$jH>x)Z*gev9U3oPIva~*{rOr;NV~ish7%DC4oaoc zdCym1V}?SZ@b~wRjg3u6NZ@cda=CmNQ#;2=>iYV6+fsXbdmTA@dwZv(q%fJxn3xy< zKt@J}$z=K$tzfv#1BSvbqm9=#Kc7Mg;8#npb@sKH-(-A zTCvit1;k17^74XBJP;0t)7I7o$1uXLU%zmho(js%5^iL9dJ^b~3t9`{eq~}}B0D?# z^5x5Ob8{qXTi)Ibcdy;7prD|}#>Rnx0jX39Ej~UzL>tP)#00gl^k10o4*(!8E>0$sO-@dZjEtN=f1Yw!nzPEZVi&ix7L=5fOixeCWHJE2 z)vH$x1_Ot~5eNjfO&S!!(izl~fUpnhNkC8sX$3(Rq!k2NkX8_6L0UnO1!)CA7Nivf zS?u)NF8l|Ci2orPjb`3oY5ldXgocI+g+kYsgrF%r9xpjL+17%gr?d!?p#2JhEJ!N| ivLLM>$bz(jAj^LZq#X4jBf@w90000 - - diff --git a/docs/html/inherit_graph_51.md5 b/docs/html/inherit_graph_51.md5 deleted file mode 100644 index 35b52c99e..000000000 --- a/docs/html/inherit_graph_51.md5 +++ /dev/null @@ -1 +0,0 @@ -b103fc03499d73de5c0fb8f0b3435529 \ No newline at end of file diff --git a/docs/html/inherit_graph_51.png b/docs/html/inherit_graph_51.png deleted file mode 100644 index 84117094ea83a027c9dce9a26694a055da9a89d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2404 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 - - diff --git a/docs/html/inherit_graph_52.md5 b/docs/html/inherit_graph_52.md5 deleted file mode 100644 index 6c1a0370f..000000000 --- a/docs/html/inherit_graph_52.md5 +++ /dev/null @@ -1 +0,0 @@ -b19310d3020e2c6a3e2d3b3ec159355a \ No newline at end of file diff --git a/docs/html/inherit_graph_52.png b/docs/html/inherit_graph_52.png deleted file mode 100644 index 173a5d4e37a0b9eedbda1c69e11fcb7c73936943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1969 zcmV;i2Tu5jP)o#!OHj5X)II+f;rTbW<#bDP zJRcbB{GM~3^VvDyJ)X;s3?YPoLJ2-eVsi~=PtGSKb7K;UsA3t6YAqvG`tX8Ynyt<9t(|GzOP$>Tz)z#HdDwQ7F z=rK1XXrbYz1T8e&l%R!%n*sosn3zCzb~aY6T7}J(+K`x-2(ef^r*$w4;}+PCjt(#k1EEmpQeWtO zv!uiQFS2LP9uPuYUUs`32?+^EOH0G1O`8^5(Icayqgb(G#hjOu$z&)iD|4xpm6bsz zlLbm`-UKAvEX#sn81Q&J#Kgp)u&@xn|B`lWYz$hh7BMj~ShHpgG#U*Y4hI0hZns0L z)gn4N8mm{Y2FtSO?d_d)okx!zMQdv-jvqe`hGCGDlmx*2Pv5p}+mN51kL2WJ2!%q# z$H(K%n>Q#fE=FWzB*bDd)M_=HPA9j_Y)(Z*McA-mgV*WbaXOvI%*+G;=yW>pc)vFJ z(9jT$9Xp1wurRD!w+`9a*%%oaaq+%#uZ z;`Z&^U>F9MFJJb_5dczCQ(?2&@b>Ln&a0}b3L1^Z&0*%g>F@6c%d!xOM2L@%M{RAb zSO57CkZ>Ce1`t9pF)@KBPoChxg9oUps^Z#JDiz+ndxsYVkd>8% z&dyG}e*GGKeSL_Fi$i*Px=YwR@#xVb$mMcWR8)Wvg68ICuk${A`V`l%U&p|}0FsiD zuy^lXeE$3y?d|O_8jYx{t8>|~^L6q>K|ukGMkAg-e-42_z}1f&IfBvAQM9$S!DuwX zVzEG_Qn@T!Sy_pqq9P0o3?M5j3o4b08#LzQ=&e74!GPS{Txc{J5JFH`Sm?7OkH>>r zt;Vfew*UYSA3j8Kax$W#qGsJTN~IEfJ|A6OU8t+8b34TJ8!`jEUQaxf=fsU0H;7WH zB!m#s+uKV3kj~CdxA`m<3jsjBe*MbTrlzKdNF*Zd?d`L!M=qC>ii!%CT4G`%DK9VQ zrnhe0N=iyfxar2mM#3-*vD@ujEi*HdT)1!{AWpw?=gu7>5C}+XYpYAWyStkJASRQE zt95jA5CG)cw{M(xad9!%J~A>w01&Iy>XV~Fp&(kV)@3_*>yHpZa&vQuMx&XNqe7t| zmo8l*gM))aEEbdR-@g-?Oh)SK>q%W*9T5lwE}#4Nebd#|MF5b&!9lLQp`n2QAj8AM zK5X4z{2{N^0U5b#YHE;>kN}}j2!>&x)oNk2S^)rNvl$^FA&^R?Zp)cWCICQ0LmmgLqh=o0)fEA$x}xB!S8Sn4h|wCBLi2jUPXU@Kb%e{N=r*IIXMXckVqt$nwmm) zcemTJ(b3W1@p!P=Y;GrE`}gmkU7i>C^I?CT0N~T7PdI$|FbWF`k(QR`*1mrIdQ47E zqOY%yt95mCacv9XI2&_yJbn5!YHMq8>eMMP3^Qy0k&%&bI2;%n8scg_Jv{+1{~y28 zF+M&Hr_%|sSd8V%m!rA48KtGATzgbh6j+wUi4!OA@#9B~j*gQXuff=}#w=Hk%Epsi`=0=n&4I zKksoJv9Yn(xpOCSb92$(-w%t$g0pAOA|)jS;o;!{arBqDIwmJ4gAn5NGtWdSm14(^ z9XNC542Fk?(bLm|ix)2j#C;mS!!40WaP8VPWMpJOBoZM%KOYAV9(0*Ur_*7}mMu^y z6o`$DMQdv-cJ0~);MYk`TwEMdQc@5W7KXgMJmlo$_;gvSpr8Qt_4No14dt$u1Ok7Y z^m;vddU|m0-aU`kxu<`gsn_cv6bd1e$sm`@5fKrA%F4i7TD+c6R##Uqqz8pEFPfT~yta7_x3~WV zL7^-a-0o0PC_w_fLrDo - - diff --git a/docs/html/inherit_graph_53.md5 b/docs/html/inherit_graph_53.md5 deleted file mode 100644 index c251fb290..000000000 --- a/docs/html/inherit_graph_53.md5 +++ /dev/null @@ -1 +0,0 @@ -2d4ca8de19ee2d90a6932dacbaf977b9 \ No newline at end of file diff --git a/docs/html/inherit_graph_53.png b/docs/html/inherit_graph_53.png deleted file mode 100644 index 021ef867f969c4aa6a4298b70ebe3b33630ee91f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2688 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 VK376$abQac=<66FYP1|4{{x9pEwKOq diff --git a/docs/html/inherit_graph_54.map b/docs/html/inherit_graph_54.map deleted file mode 100644 index 59a015c2e..000000000 --- a/docs/html/inherit_graph_54.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_54.md5 b/docs/html/inherit_graph_54.md5 deleted file mode 100644 index ec02230eb..000000000 --- a/docs/html/inherit_graph_54.md5 +++ /dev/null @@ -1 +0,0 @@ -02baf4c11fc1649a5c1fc8d17e5cf17b \ No newline at end of file diff --git a/docs/html/inherit_graph_54.png b/docs/html/inherit_graph_54.png deleted file mode 100644 index 610ecc2ea8100ffb165f28ab9f1398d438a390c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3047 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 - - diff --git a/docs/html/inherit_graph_55.md5 b/docs/html/inherit_graph_55.md5 deleted file mode 100644 index 2dd134f97..000000000 --- a/docs/html/inherit_graph_55.md5 +++ /dev/null @@ -1 +0,0 @@ -50da0aa2b6e6a651612100cb5ff345fd \ No newline at end of file diff --git a/docs/html/inherit_graph_55.png b/docs/html/inherit_graph_55.png deleted file mode 100644 index 47c8a8c2e6dba79b7db3c42b61aabd57c1c0105d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2226 zcmY*b2T;>X8voNHEfGQ$LoWgNJ4hnMcRh0@%gn_#Ll;9Z zBe_ZK%X=2l@uMN3?Td?RfAn}A7%Ur%#V&X3t+~&p$R@$;RaoU|tt?)ZoCGdy-Q*_w z2q!(hUjnrN7k#jMerszh*NiW@F`%ZVCL<87*=j}UeWYxci-INls0B8Epn8)1HzaJ1 zgj8}K56ll{ofZ?rHd90+oy82XLv!t|f{Gqb1`c9|Y{)h#9@&L-h!mOP6>F8jOTDP?o4n`p_5V6PT?gsoWOC%v>**Q2Iu3ryv zIq_*oe-RWEWD4n7SWqZ7ic3p@N|$wX6ouGXS@nYQpIeL8+uPeRT3T=c0RbR!VZkpl zGV&9nP)563A5R^6w_R?{3c6R=?M^RBxCg~}i&RlC8D>gJUHD%-G;W>>!WP+Z| zuTIqm1O=HzL}&&E2J-8y`Dho&sj2ZX7>wxeU$}nWF~Wi9&>I*S82|7gZE4BB%2`!G zQBi`5!(!8lilq1j1?8?>k-%UuYZY{H^3r}SjbrB6^N|8>SLFnh40ap*4BMA z97xM7gdq}z;zY@1zX}l+6XU_-@sR{V*|TQ@E3gUwAt_ZgwbazDdn)Sc3b$|HPJ$u# z_xB;dTPD-{d65-G4j9_ooO}Oadt2)?Z*m2V#`vOFT3T9BQPKZYR8$n5mY)88%+%CW z;o`-tBi8u1i8x6XOUtDxDk(j*&b#p5d?I**^}-B{>E_Lwm#T8X9RA{tsU*em-0 z@B9UWz!ffnNW{cz_mK z*_#K7c&=WIKl$N}(`M_=yXXl!bB2%Nn3|t2UQW1m>z0kJZE06m2`!31XbiC~WeV|4 zM(?hfzbVl45+Cq6@$m2%{~9TdK==oJ{P>Yzf1D6Z80_!o1g*1JtOmk5R!c`m z&e*slL@X8cVAxMD>KoiB;W&d%zXTT(D{pBLmCJ^t2%bd-2C8<(9gya_5`H~&Aa4dr zj1$x|*FS&0+tQ-5o8kwhGPUMTQPAb4k&#-N2*b2=v5QZn`o_kf+1c5ac6Nhc%wXWwY3k0tAcP^Z{#`%Z508%MK~oos^ofG<^71Pi8v~24^VZAaxC1%SZo7+3;`tAg|oA>!$d^5 zh(w~FpP!7j_GHa#M>jXOs@mH7>FIp2&Hae!vg*c0AuuCt#LeR2RhH)WHzOlfAcR2d zC6P$I6BEJ|3dOpNi4C3%usy-jL_s8h>9M?ewFNf^bi;gpZXehrJs3~ScD3F7*cbV!)KPThgzV+ZLUP#w82MV>WOgntE^8gcRM=2KtTx(ZSqOZ4 z*Vcm9W?!DEtE;Q3s%j87Bxp&!W$}3{n!7BApB%@zcg3IWia$c$xzq7#h2BR`gp~Ht zS=qk>==uV^0DF6wgX-fS-%8FJE~%avY>k+^ApL$XwHK!x>x8m~TE^mJygFCt@<>L= zy-6Xrf1W+x3^yd8Knv~}RBReTUrzAm#$VSk*^|A!$nx(DLwtbk_B8Wpw(Cd@3GH!C z@YMemI|v@}3Gj_VeQ6jd%5EqRKgV lrpczgW7~g9`rjH3p?68fZ*^SB)8Horz?fe})gis^{Tt)O4(|W} diff --git a/docs/html/inherit_graph_56.map b/docs/html/inherit_graph_56.map deleted file mode 100644 index 894ad62b1..000000000 --- a/docs/html/inherit_graph_56.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_56.md5 b/docs/html/inherit_graph_56.md5 deleted file mode 100644 index a80464bfd..000000000 --- a/docs/html/inherit_graph_56.md5 +++ /dev/null @@ -1 +0,0 @@ -e1fedb52b6c2faa127742aa24bd31807 \ No newline at end of file diff --git a/docs/html/inherit_graph_56.png b/docs/html/inherit_graph_56.png deleted file mode 100644 index 41aa6fab9eae8e112af9ed574ce3f6f6b5cbce30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2523 zcmY*bc{r478-J~htzrEHSbi zMs#NE6*FTf+0rplvPJq{*LQt?eAjzD&vRYx{XX~o-1qbQ{oXs%1$ACT5Gn`&fXD@V zq#L-lgToNQ56-U~YFEL9ALDo)3H&^I%DSKC1AxGT3rHJx+!M~@5POMtii4$IMPECm z3jAVCUJb}WH8KdUk2(qoRjTNR;mUO)nf5gF8Q2}d$qU7-mt6s>Rj^dQ_2xICXF74% z_O1Xzb1*sf5Z=G{!UX#!?6)24*{1g-gH5Zk;@Frc%!K2%5LlT@4nAVeO{>i1Q1T61 zq9Tp>7}M$!c_~M#CxTk%+4!KOq+7yUy@2l$8r?8i9kE1ksKR~wn1|+dRnI=Bnt%OU z9j!2qKf07x@Z~secLP>lQSo+rBJM`k1Y*QV&%1`AVJBo{!UyP@nPmSzEit|NwqRA|lx2|x-m#xDeaoryo-Ek(U(z7G6`^(FLyZif87V9?J zAGBi_Q&X39g?Stu9n)eGN*`YfyI~u!GFqaPs@}C2VHTf|aPs8IJ0p)x;BCmZoSYor zC0gO;+!&oMM4?aw!@z0d>(|M`R=x`HNTD;#>r}X?WnDIAnQkBo&Pxh1H<>dujeoU_{ zEZl8vHRR>v>zkYu`~3Mc?#Fkd=H_PKprB(RAt9BOmAd$FsrUT+{qIKqI|b9zJ4vNd1v?G&^_%>Mjzf64Ls_i? zW2L{Y{N-9q`6Q5r@aauFWpZpmX_A7txp~xER;bkyollSKXoo0pPWn?9JF)y@X(NFqy@VTFo?i)ZgEq z683AE|4<%t$5C2Lyst{lf0v zUS5AcBF#7{Dd}NR(NNFM_O>dM$z0p->@@G!70#nCg4)(~ZA-&3buxh5p>w(B-lY(3e%qC6mcWZ7D7JV@_KT z*l8o9!VF}2>~)Y*Dl229YCJqV11uIX{^wx{E;crgNQAn1c%0ML)|Obd+Gn@6w~GS- zzP`zv#`=2DKS(}P`Pts#`RRM+l!&6DBI@+CG=V_ymEp%clL5I1jL*)Bh>MGNbawu^ zHvRT3AHZnxS|pR6VHw;B9Vx}U=UA<=q}uy zd^P9tni@z?Pmf@NTdhR=Sw$2I6*@BT9SE3@RM3O zDXH{=0*Rd5T$rJudquh|nE6o-hP9ioFjrbB$N2e0<>a!nrQzj`jVE5ee%%qVBnZX_ z0MPmF=E@0kb949Y=%^@O{1A0~`~l6DL9&W#&0bkOjKw`80`C`w@EKWIDac=JkjPYr z-tKNIaQFDk4E=dqdwWa5_wkzCyUss-SZ*6TI9c5SCvhtVxotyRkGb~nlRaM##rB!Yn;_~e>c_jRNfco?>Lu&x z>B-B_|6w3ge0Q58XKrDUMXv2tW&!ChyMf9cc=;$<1 zAQ6a^(O@3HHsiymoni=#oc%$Ao@{pD;MsdANBXW27K?2kEN#kv_>kbOa80)CmddEx z!r~(GX0Cd6zi%VEAn7h1e1PiYt@3eU0WdgwoMK)0i%zv4MF z?Nk~~u&S!c+rPhMesd2ZEIa@bR`T*cHFb2AYIExDuIV;s=HA9eI0)A3B~LrQ2+Q6z z*@@S!#MSEa@$q#;t%@Zc9%MdxBvY?9&%Eg5MDFQP5D^i92nrHgbc!h4Nz+<4W}b`u zJKY$BmoAFc#0QNJD zg}TfLjQOo0@{GEAGKFFWN+Z*_VRNw=(&utzdl{|sWs<4q5~k;O4QHv~Z{G0FDGJUO(6WWtV6i3+j*jyjPW>&5hRCJO zJ>157E=x;GQ8BTUzCN4ofj_o#`yR*X2y38;`S}(4J=I2cd@%hjA;d?I{(kpP(b(8n zT}Nl?_Qj6jLQtmR@Dmm>Yu4f6x&ivdXiV$(R6Dc=9SV)DI#44Y-S_`DFTwxoKMWhl zmbi_wv(YZ - - diff --git a/docs/html/inherit_graph_57.md5 b/docs/html/inherit_graph_57.md5 deleted file mode 100644 index 4ce4fb104..000000000 --- a/docs/html/inherit_graph_57.md5 +++ /dev/null @@ -1 +0,0 @@ -08d0241d62479c907bf17f01e5f5e67d \ No newline at end of file diff --git a/docs/html/inherit_graph_57.png b/docs/html/inherit_graph_57.png deleted file mode 100644 index e8d26cf50470b9341901e990881a0e80d6ada980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2122 zcmV-Q2(|Z#P)OCr(0gm zo(~A_IXln!diL{iXZuZt5JEsv+*8F{>;x3`uh8PAIExlH#aXntDb89kec_CW79U~Fs*>FMcMvt|vpY}v9X8T$JAz%UF2Pc*w)roFbo5MKwvYz(2vcs zF7Bmh&z?OXgxGwU&1OVJMIj*}0h>2(UhIet4G#}v)v8r<-cKr(qPV!&W~{il7*eU! zQ_<$lBgL&$D#0)ecsw3LLqn05mxrmHv?C)U&}cLW4GqP*b?cy3t6{NN003sQ85)fS zAt51HyLK&hlw|)C|FuekRx46dQvm?w<>lb<{+#lG zfdL#lb`1Xh{@Ac#1JcveF*Gz}ll#h*E7-kzH-thVHf`F3SFc{VoN>CD=2I$_xOwv? zZr{EQhGB5|@@1DY0ziCxJWM7N-oJm(=BlWufLg7#%P{@1>Fw=>QmKScC`4prB&w^c zo#vkpj}*67s|6thV`F1@`t&ItJa~YLiVAjnT3Q-DeE5KuFJGdwvlB9z4E6Q(005Or zg|@afym|8mJv}{$h=@R9Vxmp4Ir8YyBgkYjl$Mr)5CWY}=k&hMo;}0$>(|lO*N2#x z80_7<7hk`AMN3Ny8XFr?Q&VGeV&|L5k=)!|G&VNk#ful<^ZD%fkt0ViJUoo%=4LcD zHo{;qAT2G;X5X^1GUVsyqpzm5JE_IcQ*k*+S=Oe?q@I<2mtc^`*(J1Vq$^_g+kKO(lYCDWHK2kEiJVfi;j*a zB_$>7?QPq(k;1}4_I7=JJz*Gzn9XK(EHyQiT)1$-BblbUbLS4>^ZBHysmW%%y}g|P zAf26^>{x4SD*-@${P@AQwMq_gxoXtlFAz4{jM6FiO zDWgK6AeSy(BK`gSL?jZCpFe*RsZ>g8YimhOO%37m`8GfI)W=4z*AoDwzrUZ|URPH~ z0Fc4KK^M;MA2ZbJV~?!dRaI4pii(0jAOOQK&}cL;8jS#euC6Zl`1l|^Jlt--&dyE% zKww}Xd%@-7+6fr(NT|Pdj0w}va_>M zUS5u`BR;++TB4NiSpVk-*26oKf-=F>7&(9A4FgiLq?~KmobHvq*lk>*K z#UV2@6BdgF3WdUHhDk=F5qv)1CX=HYafjQ*-QVAjl#~=)y?PbBy}htnttcug!ua?& z06-#1d3{-B^BSS%I{3=FVi z9UUDWNd7;!t7CL@6jrMhB9RCySFVIkr$bRu5xZS17DK62;>3v)`26`ZhKGkyQc?n~ zRtvFMi~|P_AR{9K-@bjruV25=(9nRy#67* zA0LlHhYsQV`ST8s5f&DP*w|QPWo4naw-*M30cX#iMO<7Q0s;a&lF?mr%_x`4K?rgB zGfx*D9*&(mcjC;MGZ-8kL`O#lE?&Iok?fP)E^diLf@{~VAtfaRLZJ{jIXO6Z@Sx3o z%FD~Kb?a6r6bgieg`ugb3A=Xf0`TV|Cn6#OadC0*_xDG3b~Z9HGF*CDDmOP5wY9bI z^Yde0E%5|*GF4VqqNAe&_wLD7P%xm78+SQfO6Os+R1^O}S=jtLj`j`n&;Mx&QK}R#k67 zSMI+iTUDpBSS*N*jfGe&=3J|)H}I;Jo3^TY7q2Srx!`)Ms#lmp3!&HGdaEjz{PUJq zF7c*TRj#AOJ%u;6s&biE6*p~FojoI$cvW%Fgtn@34{dp+mNnY)N_iz(+!SZg;-)x@ z7B|INw74nGqQy;d7AK2s#a*q`2Zi=)10|cT^ouh^`2mk;807*qoM6N<$f@sY9 A{r~^~ diff --git a/docs/html/inherit_graph_58.map b/docs/html/inherit_graph_58.map deleted file mode 100644 index 919cada38..000000000 --- a/docs/html/inherit_graph_58.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_58.md5 b/docs/html/inherit_graph_58.md5 deleted file mode 100644 index 690d5fd3a..000000000 --- a/docs/html/inherit_graph_58.md5 +++ /dev/null @@ -1 +0,0 @@ -8a88f2595cd59fe21604ec649cd22977 \ No newline at end of file diff --git a/docs/html/inherit_graph_58.png b/docs/html/inherit_graph_58.png deleted file mode 100644 index 3376f7b4a8ebd88b87bd518b259370fdccb5fd55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2458 zcmY*b2{e@J8~?~-^8T=lsui-tYa+d(Qj3@Av$c=Sg+2vxJEtMF0SRowYJ^ z1m}8iU?GCwn`>P*4^DzayrmiNmVm#7D#<@T`h|_PDTKY>>u6g0X?n7< z+3#07Q7zsIb#<2(esVG*9H%86_;8NK+lcFrUKu?(J||-eLH+4aOBKmzI_!WB_(fOW zJfL{?(dA>WCJt35JvUgL?UVH-k;+U(lWP1mG&FpPIw$I_R6Fk-u^%>vC((}*nQm2H zB){e8-0Mdi&;^{CZmPJXB+FN}<-aHeh4eaya3=s58X8JTO-;zm6ql2ie@*xC_6DGA zZ(mSMd@wi5oVxUVI0#dD(VhL^_h z%a`#dF7-dQgvU2Eox(s>HrLi>y2%5fpI)K}%~9vxFL}7TzkC0lPeS6};jbN-J9m7> z$Hv+*P$&$>nEo6atXJEpn|V{{U?N=k>;3!p;|mLA6K~#RUg9Z`@q{cUQ+s!F>W1c9 z-sq@IV`HNub7F#EU}#ujJyw1$wQ(y3C!Nf9o1KuJ4jUXAVpeBei;0mlDTeFm>5Z_0 zWCi&7R1v~}H<8E>F1on5j5LuozsKONQz&^$Cr+Q1>+9UtNludrTRjG~<)i=0+CXn1YW$i@b0VQI;TC}l7@c)Wug4rio=qVL%nQ&!FC z+SOEi$m_23s1KRzm&ZVFYPwdT{}Klh6B98yI*E}hZ<$TjcsvRY@x>m+>F@3Bz1!Hr z=;%FQ}g437feGt($*FRLESGZ;tZAAuf6Lyke!=bvvlsP z8=gNeX>C;i;PUe6-@aXIj@v`V#>Q6H*IQayrDTuh(w{tmE-x>mj~*333BX{mu=>jK z^3HTweGCQz*xTEG-`Sbz&C|LZ6lCt?BvD>b!4O;Y*F9z)7N%2BP_VkY6)r6;UA+cU zkr)^VJ$CHaWqOl=H}*HFk9{I0KKF{{P5u}J7mQGTFVQ(Hv)lBfgm%XQ1;!_RAD_y8JV-ky;`3jY(*O>o5!^=7$uM+ zj%)q>cKq=Xk&(}sES4UBe9Vvi2d^LG=f7Z4Gcpi>*-=T&zqFN<;vq>UWiv`zil|$v zs;ck=qiW@JK0ZEGUELh0m>5DrLSlWU`{4BAqK$t*z*#a`7mR-wx!D;$G%#Qc-0kQv zX0=pRWdKTSHd{n)vTc|Bl={0)xT~{sdtV<6WTdyWAV_2)QyO?VG;}~-UVdbB^u^+v z$w?T1IdS6R)rN?O2n-IFQBn!^6XYf%`QUstBgG0<|0W20Q_1ZXl-|~+2nvPU-_QByA1Kg1 zHimrm?AfQq#q7~HJv}0FVnQk^DmwZ;w+||MdY-oYy2F-rgQ@v$PZ%XDJ}_E;5k32ZpzMdaP+@D3Vb2(ZVTEeuz{7Q&ZExClwX= zUwVE}2bb>`6m){?Ha0fZq+UrZ7OP}vSQu1aTPyI8XGtK);bOOMfxP(e@ni9$M}oPz zxdve$AjFFo*S>yswXw6KGnwKj6zcoN9Iqy}u%LimSCvY1ov|_ZPxJH4socl>By3Jz zUI~c(*47q2j(5hZ=)9+=7?>u|KG~C#@_v4PXblZ_sq{4Z6ASZodmEef{(i9-oFXVQ zjb0c4MGaO=&EX-!7Y^Bv0w5D3z8acS2He6ozkK2D2^;F^xlFF3Wr0S`&{yeob-FEB zIy#BdKQWe~o}JS_v#^jhJx#3hcMHH?n;o{0%+0C#YdfRnl-`GbT4Z{yWs>>wdXsW; z4i63vy8J#@Gdgm2_H7`E0kZoRe0P6OR!vQwtewk+kVquW9>bF-Q%fwV%4jqMk?K1ds`dJzI-NP|DLm%s za*79X35i6$92tRJy?V8bm6*s+czzAm7Pn^-71hugEhH#ded9;m;zZ-UGjVBmD4{oy zFGQ>%x>RBM}eS8|C0+iFe|^wAO}< diff --git a/docs/html/inherit_graph_59.map b/docs/html/inherit_graph_59.map deleted file mode 100644 index 21af6d84d..000000000 --- a/docs/html/inherit_graph_59.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_59.md5 b/docs/html/inherit_graph_59.md5 deleted file mode 100644 index 39bc29268..000000000 --- a/docs/html/inherit_graph_59.md5 +++ /dev/null @@ -1 +0,0 @@ -77ae015f103a9e3a8ebf63b3db6396ca \ No newline at end of file diff --git a/docs/html/inherit_graph_59.png b/docs/html/inherit_graph_59.png deleted file mode 100644 index 57013c1181f7fd40ae511ebb64d2b3b37245efc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2639 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 - - diff --git a/docs/html/inherit_graph_6.md5 b/docs/html/inherit_graph_6.md5 deleted file mode 100644 index f78cc4cf7..000000000 --- a/docs/html/inherit_graph_6.md5 +++ /dev/null @@ -1 +0,0 @@ -5b76dd18affda849bab60a2de6949164 \ No newline at end of file diff --git a/docs/html/inherit_graph_6.png b/docs/html/inherit_graph_6.png deleted file mode 100644 index ddc778725f1aa9635f454f22444e3955dd0cd40b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2866 zcmYk8c{o(<8^=#$&AvBYYhEO>j&-bq*EW`kF)B)9N$F>aAv;+{7_SsDCZxBlFOp&~ zq$W%DrG*ibWd?v_(7pX+;n?r#Rl*_NN@Hy!{0`0eei zUBPu4ymh%D;CyGbnhRVweUP@+!0|uVH2jqaEY-aCZABM-8nwlo69MyL} z-W;2rKAh{y`iZ$S!iLW;2o4VRsK3&6yQZe5IfPzkZX{ND*81QypPHsH_g#(Xvl3a_ zd@voIu+UIDXXozXu*1W{hK2?K0RapKbN>AKl#~YNewRQ%tLAGF z>RKM0ae>3(_nXhoo5%n3^YwjDP{8He6g1W3)5Vi!iNM%>eq^TzkJ+khZZ=4#-inOW zP*Y1`$jHd}G!#;22S^6>PoJ{?FurVxV;!5RLekRG0+slB85^fGuNcDN%*93O{m#x# zMt{NU_+LBUKi6Npc(FNn+O-OeKp+wl5}cfz;^X64ELL4z9Zy-TIOvyO z_}NEB>VJ{oN!!`k87?uEf{OeJghb5;HPwT$t^7>fY!D)$!}#@$35I9{~4zrE|nDABM=DuQu>u>)jje0`uZ~oG#ZTu zxE>Oc-UbFuou$NVXV&R6DUL{F%9OacI28ZhPlw!gYrZ>$OYqx>ba-`50L`j1h znwk~p-cT}1#nH(rjnUrT4kR@-HR17`fJH#SnRBlbkIe>Ptuae;%dMNcmP5$PL-U~E zX5Xfrli;O32lHua(g!TU!#7h;in2paXm3!{1p&a*)02;?#YfV@S|%nYhKDyg!;A~{ zgMRy>rKeY{d*gmfi&2NMuI^K-@B!B7=%~87I{3e5W@g~h!9hX%1_J{F0AOWh6%-W2 zWHO_S%rLm^k**vrm69CT_~fLdgapRRixS3gkjTo<%{`Aof#Pp&_D~Va&d%O@CIuw* z%u7m2Mnpt75q17}(3efHc_}d7WQ31;<|-*Gt09q9Q(dj$-61V3jKEX|g?nk-4h?-? zQ^Q++$<0kP+!Q<|k2QaycJu1>>vmP>OBXH_78ZgPS5Z+x4Kp@2ZnyyMWE~y;>gecL zSy`EC4w;&q zvoo0H;NW0;!r{-E_EFEz2a7!bnuTA3qjbvpNKH*08*_!hU}W0I6SYNuWz|id*-j94l(-J(=#^lHXh&F_4|rVIYz;V>IZ zg+c9wq6H`-vAvxG#iQ~~;iXyYaoIO(WgO|1q7)mnpt0DTb&_Rk>SCYr?J5bDpZs}p5b>FY&{L&c>0{AW-4kW6hql!&aX0C3Mvk&TTlPe##lsK2!p z4s?RhA_}gotqE{*1AwBkvcOc|(%zTChNh;S&CM(VL0Vc`@%ZCe)389)CFXkHEN8In zxMF#GdvTYKQ!!lp;pTpv4~0ga$AaL#^q!MyM8|J0=Q3FPabccCcd@AZ;CT2D&39aKgGnv z+|3ZE;2*qmHVw%LYkB9QCvC;4q_3|J>M3@A!{6UuDV=(fpP#Y0Z~Le8=*THjY3VQ{ zEMT~#7IU;V-9{!GY814^?gpEcdb_!8uFq0Iy(5vx+ScRO9ZR8n)K;#!<>e~Zs$Op~ zc#gFEeoya1BN^Nr*kog(qCnj(U4#1GtHn1B88~Qokx>^f8fj^TG6#sDm>)lu=kL1y z{SC=HF~Py1uO~;Yv9S?s8ME%vGOrU3t7~hW?Cg362f+&en?_&*$hhUPkr9-=y*=2Q z!OlgqxA*Mc>VT)%IuDxL+#pJw1lv5lBVLr7{pjduq}|8I2V&mW+bchlq)3PO-E*?> zT$CdA_V$8d5n%zK381%xbD94VRI@P9Uy@u)xAT6S}H z&!>5C+%GCBA`)A0%dWL>B=4;fx!KmmklCSPW6=Nn#2~U!DwN38q7HY0-a0rQ@w|r15`7PU)>s*@fME$3_5zWm{EOhxyf&1e(H&jn~pr zQwg<->=1HWTWnO65HjJ{Wj6M=78alXHGtqgMD+hWVeT>T$~(Gl%^;;3G{J!VAI{cw ImRFPi3t`xVssI20 diff --git a/docs/html/inherit_graph_60.map b/docs/html/inherit_graph_60.map deleted file mode 100644 index a164a2d0a..000000000 --- a/docs/html/inherit_graph_60.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_60.md5 b/docs/html/inherit_graph_60.md5 deleted file mode 100644 index 9c3e0c5c9..000000000 --- a/docs/html/inherit_graph_60.md5 +++ /dev/null @@ -1 +0,0 @@ -3d7468d17bab20655cf4fb97dc29569e \ No newline at end of file diff --git a/docs/html/inherit_graph_60.png b/docs/html/inherit_graph_60.png deleted file mode 100644 index 9d5eabe76ecbad3dfbe4dd57077510f29cf9ce28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2475 zcmY*bc{tQ-8~#OQEn{D@&5$)AV>u_z7)Ayq;ow+`%9>>+d(Ie>nUM?~p^k7g!&tH$ z5*nF<##TgfNDLA)wivRM{rkDT@1O5_ulIeP_x#zPuRGYHfP=&Jlv$bu07AZYD5Ps#{!%^;?J}v-H5of<`i`+- zN#61}o>NQ`$$tG5{pcmE=lQo_o0r|8P;nbE{8oz4BP;&^dX8^E09_n)W$#Kz$USL` zAAjck6ecv>Yc;;LC;kdCYckIMuoQFEU?p*xIolk|OXx~io`@BN5|gZ^l)#HOj`%3*vuDDAefhbCA-hj_Inv0~N$^mVw4K-UKsGO6inIXe-q^rFY^VD)k7JN`(lMWH#CiCScO0(E!lbsg7K6niBO{G;baX_|8di}hwBll- zoVFLr(eY$zdirT1&&gedmEV6wtiW)?p^=U$}*=#fp$Gpm< z(@B78SXfx-(z`sTesrPMGi?Rp$t>w6uh|ecQ^?GN~;Q1O@>5 z`uZ`iIWsdv-egM=lQ}N)0RSRr`}_}Lu-G<=ywUoFE3&e(qN1WBu7g>cm;ZS3?0&eTKE9gd4b1Q*HZ83k$-4oSfXBH5Xi#Pn0dmY!a6rw=KIjkZ099R5S%_tkJV1yB==~(bHsk-`XP`ziqMS_gAwKV|X@pw@& zu_8LX!}l5jfmn$%FB=L;wj1e8Kh-7MU$^)Bi036>Wr`)x-rlZiVWE^~8e!tWo1RXl zQlU{%Q8o2kZa~cV%^*cF2jk_*78QSg|B=QB6*;neBQ7E$V*UH~qSDfos``e8QOm7^ z+EFEbe*X6%^`Ptg;I$k$fi6`S*#CSHhr@yLuL}+|yR*5zj=FI}Z3p@M7&l1amQ}f1g}Agd3AEQQAmj@> z9xpM_;mY5Vv$Lh5qN9;ir_Z0;lJ8L{#M08zOK{ILx&n*ELJAsg{bef&fg}x8xKFnd z_gk>EY6u+|D*7!Hb2OdTE5=M4UdR0-I8u_)hP&xml9~5$ue_E2ie1f(>zGy z8EmP+_cKNDPLYv7NX+!E3%8-v>{<2Y*x1-g&wAnhLPQ}Z!9{7U-hE#?a?C~X*Rzk4 zA$R-w9PgoEp`$PCcw;}`-@x>-Gh}R~1&^BHw&97pKM2pB>C|njyqoKha1ozQlhuc5 zX`v$~OG-4%&Y#bdHj06p1%^A+l$tG|d*|_IF4|D0r>6%71_-kHS8K+&91au)<4a6T z3~1yTctD^tQkxRCON)zY0%FSQ%gf6sx^wQ(!JG%Ln^OzxB<`j*bar(~S_y7#EXw8@ z1)kK_)vcQw`6P+A__h!@u!v99BT>XNBNAg6r$@_*83%<4Hb+J^W8HMP!8 zt^#Q7f+tSc`1wKK_Vhq=>*{ax$lzfXXkT(kO<@V;jytAPbsQK{cGRA@7MT@0An>l|W zQk_$zi3@^7H$t3-urUo60n#~W6k;q;G&ysut4qMp&=CJCgmhiEnaRAgJ@nZ& nUP~&&5}%#&+UNg98V+9mtBY&dRjw#FeF1hhj;LxY-@E?-RA|4K diff --git a/docs/html/inherit_graph_61.map b/docs/html/inherit_graph_61.map deleted file mode 100644 index 05d5a1582..000000000 --- a/docs/html/inherit_graph_61.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_61.md5 b/docs/html/inherit_graph_61.md5 deleted file mode 100644 index 896cb15ad..000000000 --- a/docs/html/inherit_graph_61.md5 +++ /dev/null @@ -1 +0,0 @@ -dd32aab4157026a8d2cc1fff8c46426a \ No newline at end of file diff --git a/docs/html/inherit_graph_61.png b/docs/html/inherit_graph_61.png deleted file mode 100644 index e16ce7b3fcd88a0a33205b8b16f1a22ae3f53ae3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2815 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 EH~hJ!2LJ#7 diff --git a/docs/html/inherit_graph_62.map b/docs/html/inherit_graph_62.map deleted file mode 100644 index 5557bc531..000000000 --- a/docs/html/inherit_graph_62.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_62.md5 b/docs/html/inherit_graph_62.md5 deleted file mode 100644 index 1900d9e5b..000000000 --- a/docs/html/inherit_graph_62.md5 +++ /dev/null @@ -1 +0,0 @@ -f67d770ac902951e9b30f01509a95130 \ No newline at end of file diff --git a/docs/html/inherit_graph_62.png b/docs/html/inherit_graph_62.png deleted file mode 100644 index bfc020a5a97e24c5c7002d1f2766adfb3ba60179..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3154 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 ZP2-i^!}g7Pq2NyfV0_&|zY69O^Dj|163+kt diff --git a/docs/html/inherit_graph_63.map b/docs/html/inherit_graph_63.map deleted file mode 100644 index f042231dd..000000000 --- a/docs/html/inherit_graph_63.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_63.md5 b/docs/html/inherit_graph_63.md5 deleted file mode 100644 index 29c59f87a..000000000 --- a/docs/html/inherit_graph_63.md5 +++ /dev/null @@ -1 +0,0 @@ -61c1f85f3b60bb6e89bb0fb5787ca48e \ No newline at end of file diff --git a/docs/html/inherit_graph_63.png b/docs/html/inherit_graph_63.png deleted file mode 100644 index 8f57c82d46cb0d9e1eb5b83dfdecfcef3b55e2ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2343 zcmZWrc{tQv8~#~hnk-{&>}wO!$TEl|V={wm)5I)7=$*-~v4&}3L=xVSB{ICP_Ka#m zb`n#svc!nUZq#RwQd9E%`mXQ$>pSN<=RDVSu5+IAJomZpb22^MvC>dgC;$M`&NvJn z9P7Yl0g(XvmoE1{frCV#D;5K6|E}fDcUS-b8FR)s5E4q4N|SKMSG0H&)O7#YP_Dg2 zu-|Qo;z8(MgER-PB5TKPGle@x>uDqC7gvxlII&!rfHx{o`Qr~SWSZGxt1$|bg&hCz z�M_Nq)opCN_alRo@hrc<`_Zd@;FQWs=Db44%8SXJ*6D=CN94+=&VNFd91OmB$)4$OV2j}6nEiIZ- z9Y?fbaQ?h-%s7N@f~k%807Yl?hek!g7z_qPR+e`I6)K=iS8i->&a`g-Dp`xe-%})! zNKQ2m9~$Fs;X|EEP~N6>zDUWA1CwhBs~a1bkPst=$6FaGsUub19RmXj`@A1sz~6h( z*9QXvz~rt|Fg~`yMYPAr=@I2mm{F z?3i3*XnbB?j#wP6lkMs0A=aPWGd(@sH#!=W-`sbLpsIzk>X^Y!#Bp9MuXs7+gQ&#Kni>1*zFCy_}Ew8I<8nhFH8-`>uS)29B)5}W) z@H9}Q(P(Ymg(m&u<1$)WS{MulUL0-)rb4p#Sb9^_AsE_|L^>1q0h^;a^?9!Q^XntRGP|U{iHV%|@5uxo zAIArLT}#U$+UU=p$(6TmRdBfqP^ReP$B!2)P1Ujm!U39v=RE=#ns%Bt3KjcaHSv(9 zyu5tWmM|7*yJ;H_Q&bd>kKZ)RaU&2E7Z(@%hKDoWzQwa#k7enc_aqQ72*citeLkGr zyLS!H5S{SwaB<)ajdp6P0P^@;04-Dn`{Cf7+ADi@n;b9z*%i$nvo123Q=vraO1(BM^U;mjfWxoWjXf z%H0L~Q!%=yLKO;8G8v9&bZ&0$g^CItaY@M% z{(+0&N!YzsZ!LGu(04! z0eXh;nlO{6hxNqcFLhj&O+8g)_yhFW2@<@av2lblF^-_~Y$`9Y1(o|SVr*S54tsh?=VQR!QL)mR$MAa3bBb9Q#tnYa4+^YhzoCFS^g zef|9+Ro+=aylXo8`r;sF-u*N~b3Por#OREXlwS&wk&$6z&*VT}9rf^#y-`vU{jWj8 z2Q+qDAl+48-nSuUXMcY`NNt>p%k!R_w%J351_o^nu?sMDbtw}Qlfl8kfOWwefbn7W z+qZAppbt=AaL0~el9PWvZ7FbZc6K0Sjm=gTsv z%1TNO+OQ)=*U<=;gR!!nz5RK23-{fwDEB+t?d=W;NlA{#LdObEVpSv%05N3Lpuo`0EPY6y1%5cW6E$RMG-TtPos5Q!I1|0rtEo3YwVi@88WWq4 z0Ds3hDb{gdb#s&brG;qT&}dNXke0jtIv%40{CHARvqv?%3wN1ljObb$VVhrIc?j25u5e)VnWjJxi>bnt@c85>K@_p*6lf**dRa;9JGQVEGLZpygNVkw+G zd$wAQVGQahg9Wvxok#DebQIe?>0aWI^($cHDb|WXj9YBL12`Xb$8gXAm;MbvR6~&f diff --git a/docs/html/inherit_graph_64.map b/docs/html/inherit_graph_64.map deleted file mode 100644 index 09a8c0425..000000000 --- a/docs/html/inherit_graph_64.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_64.md5 b/docs/html/inherit_graph_64.md5 deleted file mode 100644 index 1f0c65cc7..000000000 --- a/docs/html/inherit_graph_64.md5 +++ /dev/null @@ -1 +0,0 @@ -fe729739c656961fa96da146c80803ec \ No newline at end of file diff --git a/docs/html/inherit_graph_64.png b/docs/html/inherit_graph_64.png deleted file mode 100644 index 18b9c35b3d3e29726d3e61a68d6a55d7032fd0d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2687 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 q&VpP?r`lwubCFE#(0nCCD6QjjS+oPx>#PrBKiS diff --git a/docs/html/inherit_graph_65.map b/docs/html/inherit_graph_65.map deleted file mode 100644 index fde60b0e3..000000000 --- a/docs/html/inherit_graph_65.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/inherit_graph_65.md5 b/docs/html/inherit_graph_65.md5 deleted file mode 100644 index 9ad4d2fe3..000000000 --- a/docs/html/inherit_graph_65.md5 +++ /dev/null @@ -1 +0,0 @@ -5815d20049e38daa7fe724f08d6b558e \ No newline at end of file diff --git a/docs/html/inherit_graph_65.png b/docs/html/inherit_graph_65.png deleted file mode 100644 index 24eaae6a9e9a2484d44e551fb4278c2a41f97e47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4393 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 diff --git a/docs/html/inherit_graph_66.map b/docs/html/inherit_graph_66.map deleted file mode 100644 index 0396ba8d5..000000000 --- a/docs/html/inherit_graph_66.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/html/inherit_graph_66.md5 b/docs/html/inherit_graph_66.md5 deleted file mode 100644 index 0bc74390a..000000000 --- a/docs/html/inherit_graph_66.md5 +++ /dev/null @@ -1 +0,0 @@ -0d91aee78845e6eb54811f0977cdf82a \ No newline at end of file diff --git a/docs/html/inherit_graph_66.png b/docs/html/inherit_graph_66.png deleted file mode 100644 index 8b3e509b1dca46f07bff999fcf52453e1fdbdc64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27518 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 - - - - - diff --git a/docs/html/inherit_graph_67.md5 b/docs/html/inherit_graph_67.md5 deleted file mode 100644 index 95eeb70be..000000000 --- a/docs/html/inherit_graph_67.md5 +++ /dev/null @@ -1 +0,0 @@ -018843658da75672aa31f77ba38d81b6 \ No newline at end of file diff --git a/docs/html/inherit_graph_67.png b/docs/html/inherit_graph_67.png deleted file mode 100644 index 133adb04ae1019863488a54d1cdc8aa047767377..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13482 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 - - diff --git a/docs/html/inherit_graph_68.md5 b/docs/html/inherit_graph_68.md5 deleted file mode 100644 index fbf92c3fc..000000000 --- a/docs/html/inherit_graph_68.md5 +++ /dev/null @@ -1 +0,0 @@ -1b5f8063246dc590cc8349c688136d8f \ No newline at end of file diff --git a/docs/html/inherit_graph_68.png b/docs/html/inherit_graph_68.png deleted file mode 100644 index fdf7f18353fb51495e395938eb07a73d5e944107..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2698 zcmV;53U&2~P)-Aml;CSE{S4 z)6>(nB?SWc^Kfx-iHnQFs{h#EghJu1TenD;1cCgS)YQ~eS6Aa(sH&YxN=nGm1A+X> zY~H+CsRcg2K_KJ-^9=$a514Nd2zkJKgJ_MFD_35*az)!JNaeTAx4$qR#J~ypuk(B5 zo3pd?)vH&rYE4beu3fwSJ#&v9Jwnvc+}u2cRyJ(dfDUV5U|?rwS5#Cq;h{#I5Tywm zFW#->f1cJADXmZeguwxx{^ zxm;deUe4umQ&Usbc0eOCFfefc{(TDz3l|rcJ9qA=c8iaX-?wj{(syW+VIukF=jVqY z2!%qiwzf`5Nx^>6^X=QW*w|QWYikn|lj!K^;o)Hbz|hc8Y-}ux#WFTF_Ve@m@Zp1| zVM9Yh>+9$0|SGYm>2{>UcP)ud`VYVmyeGRgTYw5c=5%H7ZC*M>+4gR zkgTjMYiny7jppX&*3i(Pb^;w79Fmih*R5M;XlQuz=1on3Q|hJ~8cjOK7!(Hwhoqz= zH#av1gW>4t_~gkGRTFBpsd_Z(BsVuVA31V_#bWK+wTsDQZrQR$)fR@XuI_>b3(lWE zA08gg&?u0o**3JUV}_7(^P0|Nu`@$t)+EtAP)n#Oc;a>~!o z$EqtikX?2 zTrMXt?d9c#uBOAo!&zBbR4TQ#wUt=y>eZ`5Lqo-4aeI6F^5x3`0KL7v_z8LY_U*K3 z)2gbfBoaw=b#+2Qg4zkRx3@PpH-GZviBu{j2%Oq(`29_j&M^kX-rnBC#H6C4Vqjq4 z?Afyn216_sE5%onHYJZVDf#&EV@5{CvSrI=%$N}!9sT(6V>Bpg!6JfDUS19WXlZFt z+g~b`K6vn8$BrF_hK8=Lt~oh5U%q_NG&r8%;NalkV0_EO^9?04GczP4M4?ciD@|Kl z8~#(FPzV6%>gqzPGMS9QU^F!~X&Q|<-_q05(Q-va1%e<$LqljaEG+EEks}i@hjIDx zWg3lEUtf>4w70hd0N%fUk5(6G zOEAU%{}hz+O&}1^Xf##VRPznpD^$S(r>Ps3Zv?K5B`9dO#Kc5wcfj)a9G1 zHoQj!N+Kd6003MrcW`h}t-p9w^R2bD6#!6GRYiPZZ*Q-^zdryVIXQV$D++b_Hj(?u zl9CcfM@KrHjvz>EY^+Em0swS$bm-{l*x1Q=EJ{*SQ`6Ja8yg#0 zEY{w=d(q6%C>mJTeluR ze!QorM=qCVWMrTZ(`+_dCX=Dt0tSo4qEIM(eSP>8M^^~-YABOBzZtJN0Kl6!Z-Rq^ zQ&Lg_0|W8xbLY;LN~N8hooMylyLV{gWK5fynqIkbrMMpeb-l-6rPRsGzBWd1Ps6iT{*98{Q)V zC9`MGK5*c`^XJbiD=QfcMrdd#hr>B~^ynBD_oAXAOH0f7^XDtIzkdBXE-uc}(lRC{ zhQr}BHa1pORYgZf8yg#s%YBS-|9wj&61iM%WMrhPt6Ni3laY~uwp&?Q`T6-pMMbr= zv`A0{Owy?giW*RNkPnG6jI@dRoL++=2T>||$W zS5{UI4h~+pa6u#z1qB6-Q5)W)u_#%xWJzjjYG-F>Zf>qnC`2ETH1X@#ueWdC9y)ZW zpr9ZtD@%3J$;-==NF=v!-)?JbJ8|NK+Ix+0G46b0v)Sj)o!h!~D}%v^i;LU1aU=Fo zVPWCYrAxiMyf_?AeSN*VyE_1&prByk!iC=6-ezWIJRXnBgwVLS-WgsBxB>*KYE$z~!ORH9`8ke&~;J4-poR>iUZSLK>XJTTaZ55Nk-roND_3PSJ zp#@aWOSJah0E7TOpHHPy*RNkM5C{$*J{%evs%=G(sX+_xmvnS=sJ=18<#Nea^4sF+ z=~+@z!eX)f{QNvTJkrwAw5lOx z!T2fykLDo|(tyuz5D0m|e1ky91Lhk9LLM;RAQ1BSAHJ>Dx0m;0wEzGB07*qoM6N<$ Ef)`RPE&u=k diff --git a/docs/html/inherit_graph_69.map b/docs/html/inherit_graph_69.map deleted file mode 100644 index 15f476c66..000000000 --- a/docs/html/inherit_graph_69.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_69.md5 b/docs/html/inherit_graph_69.md5 deleted file mode 100644 index 919ae9c8e..000000000 --- a/docs/html/inherit_graph_69.md5 +++ /dev/null @@ -1 +0,0 @@ -f4238c67b94641fb8d543bdf0bd06c99 \ No newline at end of file diff --git a/docs/html/inherit_graph_69.png b/docs/html/inherit_graph_69.png deleted file mode 100644 index bd9456fa0bac30076a3a0bec64ba0d6b3283c055..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2772 zcmZvec{r3^AII;IWhhM;MX#qcmdDnREs-V57>p%`&=5702VtzmWXU#`gzV&zt+6Is z$TF5BG$czX8C#aJhrxTguJ?KVdhhL=>%On++~<7H@B8`vqD-)Q$6x|52!f93qqWUI zI|FWcb|&!L?RM?~4XcBJo;Gy&`+U|^mhDZ`Fp?9W{H8pd6pg*bcIxi@d#m=!09A0M%^kg&LOXTgq}BN&CXu&}s&TV%9N zzT~-y_yJCporTY3xNNBE*}7y1_H2{zJj=lUI_(voDDmAbSC6{UdU@^WrY&gpx~adC0N3GP|Dw z;NCqHxg%g}>AH&x#au$o@8?(drOc4$&yi=kngjQ6=H|qukxB-Gk)wE8$!)wZ>vFaA zvK@QBoD|Ikjb;zO$;C z9lOHA!WskjKAG3T;qalMp$tXWHq`sBE;cSzZohy4Oum`Ax;lca5V*Uc7cbO3Ul0yt~2iH>})TWrY+`BS=Z3e z@a&oWPx1kI(Ls@Ztl;@`?S3sy66vtYsegQ8qCZESTbhC^wSMJndgI2#Tz`&nw(4~} zK5p92$|@C&yzAz+^8Gsoi_O016o;cI49$(#dvU^Gkzk8_@pz%eY_H|`i4 z_ZJvtEG;kB{xv!YkF)tl77%yzu4zP?q3?h-<$-;zn8;3ynDPecqt zLPI}~jal2+?CTr~ylTqyx6BA=&W5dI> zB_&IR`_yCa?_tFo=c{2{T*x07Q&Us*AjZR5pZ6IRev1@3@s4X z=lYEe45+aSd|FbwIe7l7P1c@5CgQw!JYEXHNv#0>sJ1=^nMfq#a5y(NH+s6Xv@`_C zq;U2hfH&aRnEU~zLg?Y@bQhH@>)1I0rZPGT*NN42tZaymjxM#SMIaCX{{C>?WDE$k zqfAGn+SZvfeIY1<8qBY#s0cx^x>u*tdu9kuPD;S8M54BiPU($?E#SeA`|EzHdAVlX zCgptNcGcFd*RCaE@}r}og16e++d=U6^jdvr6^Rwkuq#?{sJRs&5Z zf|2Vj8$BA}>h2yN6Eoi6`(tnWhquZNFmDn`9nv^^qNVtpr4S4N?T;MLz-TlW!r#|}ZY;=c%i;GK>C>bFQgTXLH zMj}!Lh``5I6*2`Vn?D3%bqfbCDJ#baD7<*_LPAoKbIe~Ak4B>n4c`O8HN1YkwzgJg zTi-Ul3aloA_>Ga395)ASOhA5UiwJ=Ujz!knzr^I<-6bc1+^$6tDpPi-R{Q`~r zc2C)+){T$c0eq`Cv{QDY0bB$}M`m?Sn}^p|Fc?gFM#lR3`et@>+w*r%o}5IGXQrlP zeOJJK-v>Dj0 z6s@VLIeq%HzrTNY&Z}^B-8XhW3*qc6^KWItTAU2!k7lu*_$TE`hpF(xXJ-=Gmid?R_3Gte>A>s%KJWW@c(? z(e}jcuyg40&SDD1Kwp1qeFvn~ScUGYaCAO_%mB$<41 z=qiY@d0L)jIbO|wjUKqSrJ$sA_=y&C<}se_!{lTT{Vn{$g>rx((#~2w;8cCR|KY)Y zSy>rxsn7D*=ElMxNHaXeLZF@rg$oMaXZ-SjTI#*#Ksq(NT?s*i_o)fV$@w@+RaKRs zprD$X+CGDU%~IK%=}Gyb{5k>JNl8Dt6Lvmke%={+XeAZS@hr3z#ScGJS1NC6nrLm! zt*ROXYaXk1nVFgK@$m^=SO;rB{RgR_Ftj8ab2iBM$`reF9Ek8-XAzU%E(Fl^uH(hT@dOBe@F zjr*4a#?Cr`#mmv9$Vm2FlRBqtK?K0Z&; zNUhw8f`ZwD{XGv4567;!{Y}kSWcb&8gmmg9uL48S%lE#v01yJ8S(=%>yua<{c{JKq zTP`Rl=;LL1q`JCY9xW+3S=y@NtL4={XlI+uTJ2FFczWQ_y9!TL|R_HW(xZ>R0;9ut-HE?9$$15{W6q$r1$gYUqqtqrGH szHv`YPfsr{8r0a&yCOn#|4+R}a(AZT-W6pGf-)7-*THI+Y1xPT7h5@1cK`qY diff --git a/docs/html/inherit_graph_7.map b/docs/html/inherit_graph_7.map deleted file mode 100644 index 2fd2e97ac..000000000 --- a/docs/html/inherit_graph_7.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_7.md5 b/docs/html/inherit_graph_7.md5 deleted file mode 100644 index bc72c8ec0..000000000 --- a/docs/html/inherit_graph_7.md5 +++ /dev/null @@ -1 +0,0 @@ -1e1878588bba12609ead2a87357accd4 \ No newline at end of file diff --git a/docs/html/inherit_graph_7.png b/docs/html/inherit_graph_7.png deleted file mode 100644 index 9a54608bf9358102d4c955c5a6bc9ed8de7741e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2931 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 - - diff --git a/docs/html/inherit_graph_70.md5 b/docs/html/inherit_graph_70.md5 deleted file mode 100644 index b750a65b4..000000000 --- a/docs/html/inherit_graph_70.md5 +++ /dev/null @@ -1 +0,0 @@ -8a3003ecb69c50c0be1085c2ec1a053f \ No newline at end of file diff --git a/docs/html/inherit_graph_70.png b/docs/html/inherit_graph_70.png deleted file mode 100644 index 76e70315a063516b0835aaccfe8c432d8c8818e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3743 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 - - diff --git a/docs/html/inherit_graph_71.md5 b/docs/html/inherit_graph_71.md5 deleted file mode 100644 index ff922813a..000000000 --- a/docs/html/inherit_graph_71.md5 +++ /dev/null @@ -1 +0,0 @@ -e269cfc54d163fdbafd301098660a61f \ No newline at end of file diff --git a/docs/html/inherit_graph_71.png b/docs/html/inherit_graph_71.png deleted file mode 100644 index 3aaabf31697b1295690ddaa534b0e25fd5fdfa77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2144 zcmV-m2%qtE;QCvyV zJ)+vx)s>Z%_3wpy{`@(nje&uI74iS`=TEKvt*x~@-Z2kqBfKI+Mn=MZ+1uOWIG&c4 z*3;9ovLUqccWKwmgolT#NGvQYu-WXmxHw;5-xcw1XJ(Pnv5yhjfsiD zFpNT>czSx4l#~!(QO?cH@pwE>Pfu4@*PNW3#l=Mcz{0`;kH=#&nJz9aF)=ZpKY!Nc zHaR)Dx3@PVBLl;*pr9bIbkE@L@6YG+LqkIy9UZrA+t%IPU0zG>@ z_fx4({RzJ9aEDFHiIH+RV&MTU*(}1i-U5LDw#3H9hJ=I+3=GW9&eqh_JbwIGrBcPm$45m) zi9{l)RGOck9}p0rP$+cy3=9msd-pC;-MxEvZEY2!%iLbUALw=X(6dVG9*Y-}tn zEG#-Yn#jb%!=t;qdvS5Gq@;vKqbZfjWqV3qcXe4B*hfDqn5U_Ub+MJx67cXAGK58W*A_A_v1g)*D0D!^4L9O<3 zx%}C)XGf17b#ihF2??pGshORf)#aRk!{Kl^9CC~4+J#hARV5`QsZ=U>%MK3@ldp=! zVgSJS_&BU86bdSp+TY)=%bR}fR#a5La$8#)hG7c}3$U7+np#v;WI{NC+qZ8!I5_n7 z_7W|hK79fJjEs!H>f5((0RR&d6EKtV@^aV?7h{P;vTSHVyLv1Q=_52dckUeF+1J;% zrlv-vO}h|cj#NuWSWhPD>FEFfE|)t$KfmngX=-<9Xb1q%(b1v*hu^+^J9zLQ0HClo?wj3E50RYhHbhwwdva*_+ zn;RV+HR&G$tY5z#7VPZo)~s3M;NU=1Wipw`;aXc;^YZc<8XDMaHqj^+i>C&ai z$w{SBSy@>LPaZ55OQBG}<%)pGWKt-U>FH_m?E-H#?b%TN=CMPH3IDX;61q0U|fk41uFt%*jqSpTI-8(*?&tNceb8~SV@9XR9=;+AF z$#HRUF{=Cj>x;2JkjZ39rPA5i*~Z4EtE;QBvJ$p?czDFb#AIe>4h{}VrPA8k+9yw* zczAfk#>R5F+@YbNA3uJ)di5$kKK|FQU%H&TySw-I_nUkS*Aq_bS#5fH`oMt$iHV7t z_dSl|d-v|m&CQ*hoD_@2r%#`bii&b~cQ+xl$(DMkuC8uxZ=au^zj5P+L?Vfgk0)Q% zHAi6S2pf{g_U+rt%F4#Z#%gP8#bPnsRqEpR@82Ijd?+j|tgo-XdGjWQVQL0-b#*eC z?BT^At8ad)X>ndW5kcnUTFqrx>dHi|@|y1F{G z=dbWX(8k6_M@PqK2GZ&D`uh5n3T;%9TFK7NE-o(KxN)OEAb9%pDY4Ul=$Rw6 z5jHRr3WX9L9)AD+{j+D!YR#vrstUs}Cnu-K$jFI_iO$YWwc80&US59d)~!8z_88S! zU0~#Wj8G_qoB9=Tjrf=F_xCR-C`e07TkS;53j79={DJO&`rQP=qFDv)j*gCMz9!{z zx#rIVVbQF@i**)@g|;PsLSJ9sYNzm5fc6XsO9g2cVW}YPA}kf8U4*5g<*X(Y3eBGf z0-+y?M56ZUTZ?v+l9J4o4+3EX91e$E#n9s_goT3ky9i4KX%}IsAnhV76{KB+rScEo WoO5dE$!baf0000 - - diff --git a/docs/html/inherit_graph_8.md5 b/docs/html/inherit_graph_8.md5 deleted file mode 100644 index 7d46819ea..000000000 --- a/docs/html/inherit_graph_8.md5 +++ /dev/null @@ -1 +0,0 @@ -8154e02cf090bfaff7807c942b519e63 \ No newline at end of file diff --git a/docs/html/inherit_graph_8.png b/docs/html/inherit_graph_8.png deleted file mode 100644 index 864b908b00d633612c688de12ab43d17d4fd7bc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3272 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 OK(jKpH>)x6jQ=;$*kj88 diff --git a/docs/html/inherit_graph_9.map b/docs/html/inherit_graph_9.map deleted file mode 100644 index 890f30ed6..000000000 --- a/docs/html/inherit_graph_9.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/html/inherit_graph_9.md5 b/docs/html/inherit_graph_9.md5 deleted file mode 100644 index c557c83c2..000000000 --- a/docs/html/inherit_graph_9.md5 +++ /dev/null @@ -1 +0,0 @@ -1fb9baf8ee17339edf2e5334e73df568 \ No newline at end of file diff --git a/docs/html/inherit_graph_9.png b/docs/html/inherit_graph_9.png deleted file mode 100644 index 95f9986909d440e3dc599d3c562395bd5d8f4854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4157 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 i^HRVluE{cb?zGxfqC - - - - - - -AceTime: Class Hierarchy - - - - - - - - - -

-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - - -
- - - - - - - - - - - -
- - - - - - -
- - - -
- - - -
- - - -
- - - -
-
- - - - diff --git a/docs/html/jquery.js b/docs/html/jquery.js deleted file mode 100644 index 103c32d79..000000000 --- a/docs/html/jquery.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** - * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler - * Licensed under MIT - * @author Ariel Flesler - * @version 2.1.2 - */ -;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 - * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/html/local__date__mutation_8h_source.html b/docs/html/local__date__mutation_8h_source.html deleted file mode 100644 index fea831091..000000000 --- a/docs/html/local__date__mutation_8h_source.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/local_date_mutation.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
local_date_mutation.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 #ifndef ACE_TIME_LOCAL_DATE_MUTATION_H
-
7 #define ACE_TIME_LOCAL_DATE_MUTATION_H
-
8 
-
9 #include <stdint.h>
-
10 #include "LocalDate.h"
-
11 
-
12 namespace ace_time {
-
13 namespace local_date_mutation {
-
14 
-
19 inline void incrementOneDay(LocalDate& ld) {
-
20  uint8_t day = ld.day() + 1;
-
21  uint8_t month = ld.month();
-
22  int16_t year = ld.year();
-
23 
-
24  if (day > LocalDate::daysInMonth(ld.year(), month)) {
-
25  day = 1;
-
26  month++;
-
27  if (month > 12) {
-
28  month = 1;
-
29  year++;
-
30  }
-
31  }
-
32  ld.day(day);
-
33  ld.month(month);
-
34  ld.year(year);
-
35 }
-
36 
-
41 inline void decrementOneDay(LocalDate& ld) {
-
42  uint8_t day = ld.day() - 1;
-
43  uint8_t month = ld.month();
-
44  int16_t year = ld.year();
-
45 
-
46  if (day == 0) {
-
47  if (month == 1) {
-
48  day = 31;
-
49  month = 12;
-
50  year--;
-
51  } else {
-
52  month--;
-
53  day = LocalDate::daysInMonth(ld.year(), month);
-
54  }
-
55  }
-
56  ld.day(day);
-
57  ld.month(month);
-
58  ld.year(year);
-
59 }
-
60 
-
61 }
-
62 }
-
63 
-
64 #endif
-
static uint8_t daysInMonth(int16_t year, uint8_t month)
Return the number of days in the given (year, month).
Definition: LocalDate.h:133
-
- - - - diff --git a/docs/html/logging_8h_source.html b/docs/html/logging_8h_source.html deleted file mode 100644 index c5cb889ed..000000000 --- a/docs/html/logging_8h_source.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/common/logging.h Source File - - - - - - - - - -
-
- - - - - - -
-
AceTime -  3.0.0 -
-
Date and time classes for Arduino that support timezones from the TZ Database.
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
logging.h
-
-
-
1 /*
-
2  * MIT License
-
3  * Copyright (c) 2018 Brian T. Park
-
4  */
-
5 
-
6 /*
-
7  * Implement logging::printf() that accept formatting strings like printf(). I
-
8  * finally got tired of writing multiple lines of SERIAL_PORT_MONITOR.print()
-
9  * for debugging.
-
10  *
-
11  * NOTE: These *must* be implemented as inline function to allow the compiler
-
12  * to remove unused functions from the binary. For some reason, on AVR, ESP8266
-
13  * and ESP32 compilers, link-time-optimization does not seem to work well. If
-
14  * these functions are defined in a .cpp file, they are included in the binary,
-
15  * even if they are not reference at all by anything. This causes the binary to
-
16  * be about 700 (AVR) to 1000 (ESP32) bytes larger in flash memory. Being
-
17  * inlined here means that <Arduino.h> must be included here, which can cause
-
18  * some problems in files that try to clobber macros defined in <Ardhino.h>.
-
19  */
-
20 
-
21 #ifndef ACE_TIME_COMMON_LOGGING_H
-
22 #define ACE_TIME_COMMON_LOGGING_H
-
23 
-
24 #include <stdarg.h> // va_list, va_start(), va_end()
-
25 #include <Arduino.h> // SERIAL_PORT_MONITOR
-
26 #include <AceCommon.h> // vprintfTo()
-
27 
-
28 // ESP32 does not define SERIAL_PORT_MONITOR
-
29 #ifndef SERIAL_PORT_MONITOR
-
30 #define SERIAL_PORT_MONITOR Serial
-
31 #endif
-
32 
-
33 namespace ace_time {
-
34 namespace logging {
-
35 
-
42 inline void printf(const char* fmt, ...) {
-
43  va_list args;
-
44  va_start(args, fmt);
-
45  ace_common::vprintfTo(SERIAL_PORT_MONITOR, fmt, args);
-
46  va_end(args);
-
47 }
-
48 
-
49 }
-
50 }
-
51 
-
52 #endif
-
- - - - diff --git a/docs/html/menu.js b/docs/html/menu.js deleted file mode 100644 index 2fe2214f2..000000000 --- a/docs/html/menu.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { - function makeTree(data,relPath) { - var result=''; - if ('children' in data) { - result+=''; - } - return result; - } - - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchEnabled) { - if (serverSide) { - $('#main-menu').append('
  • '); - } else { - $('#main-menu').append('
  • '); - } - } - $('#main-menu').smartmenus(); -} -/* @license-end */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js deleted file mode 100644 index 773b013e2..000000000 --- a/docs/html/menudata.js +++ /dev/null @@ -1,101 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file -*/ -var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Classes",url:"annotated.html",children:[ -{text:"Class List",url:"annotated.html"}, -{text:"Class Index",url:"classes.html"}, -{text:"Class Hierarchy",url:"inherits.html"}, -{text:"Class Members",url:"functions.html",children:[ -{text:"All",url:"functions.html",children:[ -{text:"a",url:"functions.html#index_a"}, -{text:"b",url:"functions_b.html#index_b"}, -{text:"c",url:"functions_c.html#index_c"}, -{text:"d",url:"functions_d.html#index_d"}, -{text:"e",url:"functions_e.html#index_e"}, -{text:"f",url:"functions_f.html#index_f"}, -{text:"g",url:"functions_g.html#index_g"}, -{text:"h",url:"functions_h.html#index_h"}, -{text:"i",url:"functions_i.html#index_i"}, -{text:"k",url:"functions_k.html#index_k"}, -{text:"l",url:"functions_l.html#index_l"}, -{text:"m",url:"functions_m.html#index_m"}, -{text:"n",url:"functions_n.html#index_n"}, -{text:"o",url:"functions_o.html#index_o"}, -{text:"p",url:"functions_p.html#index_p"}, -{text:"r",url:"functions_r.html#index_r"}, -{text:"s",url:"functions_s.html#index_s"}, -{text:"t",url:"functions_t.html#index_t"}, -{text:"u",url:"functions_u.html#index_u"}, -{text:"y",url:"functions_y.html#index_y"}, -{text:"z",url:"functions_z.html#index_z"}]}, -{text:"Functions",url:"functions_func.html",children:[ -{text:"a",url:"functions_func.html#index_a"}, -{text:"b",url:"functions_func_b.html#index_b"}, -{text:"c",url:"functions_func_c.html#index_c"}, -{text:"d",url:"functions_func_d.html#index_d"}, -{text:"e",url:"functions_func_e.html#index_e"}, -{text:"f",url:"functions_func_f.html#index_f"}, -{text:"g",url:"functions_func_g.html#index_g"}, -{text:"h",url:"functions_func_h.html#index_h"}, -{text:"i",url:"functions_func_i.html#index_i"}, -{text:"k",url:"functions_func_k.html#index_k"}, -{text:"l",url:"functions_func_l.html#index_l"}, -{text:"m",url:"functions_func_m.html#index_m"}, -{text:"n",url:"functions_func_n.html#index_n"}, -{text:"o",url:"functions_func_o.html#index_o"}, -{text:"p",url:"functions_func_p.html#index_p"}, -{text:"r",url:"functions_func_r.html#index_r"}, -{text:"s",url:"functions_func_s.html#index_s"}, -{text:"t",url:"functions_func_t.html#index_t"}, -{text:"y",url:"functions_func_y.html#index_y"}, -{text:"z",url:"functions_func_z.html#index_z"}]}, -{text:"Variables",url:"functions_vars.html",children:[ -{text:"a",url:"functions_vars.html#index_a"}, -{text:"b",url:"functions_vars_b.html#index_b"}, -{text:"c",url:"functions_vars_c.html#index_c"}, -{text:"d",url:"functions_vars_d.html#index_d"}, -{text:"e",url:"functions_vars_e.html#index_e"}, -{text:"f",url:"functions_vars_f.html#index_f"}, -{text:"i",url:"functions_vars_i.html#index_i"}, -{text:"k",url:"functions_vars_k.html#index_k"}, -{text:"l",url:"functions_vars_l.html#index_l"}, -{text:"m",url:"functions_vars_m.html#index_m"}, -{text:"n",url:"functions_vars_n.html#index_n"}, -{text:"o",url:"functions_vars_o.html#index_o"}, -{text:"p",url:"functions_vars_p.html#index_p"}, -{text:"r",url:"functions_vars_r.html#index_r"}, -{text:"s",url:"functions_vars_s.html#index_s"}, -{text:"t",url:"functions_vars_t.html#index_t"}, -{text:"u",url:"functions_vars_u.html#index_u"}, -{text:"y",url:"functions_vars_y.html#index_y"}, -{text:"z",url:"functions_vars_z.html#index_z"}]}, -{text:"Typedefs",url:"functions_type.html"}, -{text:"Related Functions",url:"functions_rela.html"}]}]}, -{text:"Files",url:"files.html",children:[ -{text:"File List",url:"files.html"}, -{text:"File Members",url:"globals.html",children:[ -{text:"All",url:"globals.html"}, -{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png deleted file mode 100644 index 72a58a529ed3a9ed6aa0c51a79cf207e026deee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U diff --git a/docs/html/nav_g.png b/docs/html/nav_g.png deleted file mode 100644 index 2093a237a94f6c83e19ec6e5fd42f7ddabdafa81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/offset_date_time_mutation.h File Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    offset_date_time_mutation.h File Reference
    -
    -
    - -

    Methods that mutate an OffsetDateTime object. -More...

    -
    #include <stdint.h>
    -#include <AceCommon.h>
    -#include "OffsetDateTime.h"
    -
    -Include dependency graph for offset_date_time_mutation.h:
    -
    -
    - - - - - - - - - - - - - - - -
    -
    -This graph shows which files directly or indirectly include this file:
    -
    -
    - - - - -
    -
    -

    Go to the source code of this file.

    - - - - - - - - - - - - - - - - - -

    -Functions

    -void ace_time::offset_date_time_mutation::incrementYear (OffsetDateTime &dateTime)
     Increment the year by one within the interval [2000, 2099].
     
    -void ace_time::offset_date_time_mutation::incrementMonth (OffsetDateTime &dateTime)
     Increment the month by one within the interval [1, 12].
     
    -void ace_time::offset_date_time_mutation::incrementDay (OffsetDateTime &dateTime)
     Increment the day by one within the interval [1, 31].
     
    -void ace_time::offset_date_time_mutation::incrementHour (OffsetDateTime &dateTime)
     Increment the hour by one within the interval [0, 23].
     
    -void ace_time::offset_date_time_mutation::incrementMinute (OffsetDateTime &dateTime)
     Increment the minute by one within the interval [0, 59].
     
    -

    Detailed Description

    -

    Methods that mutate an OffsetDateTime object.

    -

    The number of mutation methods of a OffsetDateTime object is basically unlimited, so including them in the OffsetDateTime class would make its API too complex and always incomplete. By extracting them into a separate namespace, we limit the complexity of the OffsetDateTime class and allow additional mutation methods to be added to this namespace by downstream applications.

    -

    No validation is performed during the mutation operation. Client code is normally expected to call the toEpochSeconds() method to convert this into an acetime_t, then later convert it back to human-readable components using the forEpochSeconds() factory method.

    -

    Example:

    -
    OffsetDateTime dt(...);
    -
    offset_date_time_mutation::incrementDay(dt);
    -
    -

    Definition in file offset_date_time_mutation.h.

    -
    - - - - diff --git a/docs/html/offset__date__time__mutation_8h__dep__incl.map b/docs/html/offset__date__time__mutation_8h__dep__incl.map deleted file mode 100644 index f3a8a5e82..000000000 --- a/docs/html/offset__date__time__mutation_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/offset__date__time__mutation_8h__dep__incl.md5 b/docs/html/offset__date__time__mutation_8h__dep__incl.md5 deleted file mode 100644 index 9eb8b587e..000000000 --- a/docs/html/offset__date__time__mutation_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -657279abc5799eed5b2c0895743eadda \ No newline at end of file diff --git a/docs/html/offset__date__time__mutation_8h__dep__incl.png b/docs/html/offset__date__time__mutation_8h__dep__incl.png deleted file mode 100644 index 1e47817bb2d6d65cb674c302a7934c3cfdeaebbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7248 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 diff --git a/docs/html/offset__date__time__mutation_8h__incl.map b/docs/html/offset__date__time__mutation_8h__incl.map deleted file mode 100644 index 9d2b9e0f2..000000000 --- a/docs/html/offset__date__time__mutation_8h__incl.map +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/docs/html/offset__date__time__mutation_8h__incl.md5 b/docs/html/offset__date__time__mutation_8h__incl.md5 deleted file mode 100644 index 4def23e45..000000000 --- a/docs/html/offset__date__time__mutation_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -f0d81f6114a15204cf57037bb27cd430 \ No newline at end of file diff --git a/docs/html/offset__date__time__mutation_8h__incl.png b/docs/html/offset__date__time__mutation_8h__incl.png deleted file mode 100644 index e1b987fc42ec1e60510b16ba9d49df23d42f2d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69793 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 - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/offset_date_time_mutation.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    offset_date_time_mutation.h
    -
    -
    -Go to the documentation of this file.
    1 /*
    -
    2  * MIT License
    -
    3  * Copyright (c) 2018 Brian T. Park
    -
    4  */
    -
    5 
    -
    6 #ifndef ACE_TIME_OFFSET_DATE_TIME_MUTATION_H
    -
    7 #define ACE_TIME_OFFSET_DATE_TIME_MUTATION_H
    -
    8 
    -
    9 #include <stdint.h>
    -
    10 #include <AceCommon.h>
    -
    11 #include "OffsetDateTime.h"
    -
    12 
    -
    13 namespace ace_time {
    -
    14 namespace offset_date_time_mutation {
    -
    15 
    -
    42 inline void incrementYear(OffsetDateTime& dateTime) {
    -
    43  int16_t year = dateTime.year();
    -
    44  ace_common::incrementModOffset(year, (int16_t) 100, (int16_t) 2000);
    -
    45  dateTime.year(year);
    -
    46 }
    -
    47 
    -
    49 inline void incrementMonth(OffsetDateTime& dateTime) {
    -
    50  uint8_t month = dateTime.month();
    -
    51  ace_common::incrementModOffset(month, (uint8_t) 12, (uint8_t) 1);
    -
    52  dateTime.month(month);
    -
    53 }
    -
    54 
    -
    56 inline void incrementDay(OffsetDateTime& dateTime) {
    -
    57  uint8_t day = dateTime.day();
    -
    58  ace_common::incrementModOffset(day, (uint8_t) 31, (uint8_t) 1);
    -
    59  dateTime.day(day);
    -
    60 }
    -
    61 
    -
    63 inline void incrementHour(OffsetDateTime& dateTime) {
    -
    64  uint8_t hour = dateTime.hour();
    -
    65  ace_common::incrementMod(hour, (uint8_t) 24);
    -
    66  dateTime.hour(hour);
    -
    67 }
    -
    68 
    -
    70 inline void incrementMinute(OffsetDateTime& dateTime) {
    -
    71  uint8_t minute = dateTime.minute();
    -
    72  ace_common::incrementMod(minute, (uint8_t) 60);
    -
    73  dateTime.minute(minute);
    -
    74 }
    -
    75 
    -
    76 }
    -
    77 }
    -
    78 
    -
    79 #endif
    -
    The date (year, month, day), time (hour, minute, second) and fixed offset from UTC (timeOffset).
    -
    uint8_t day() const
    Return the day of the month.
    -
    uint8_t hour() const
    Return the hour.
    -
    uint8_t month() const
    Return the month with January=1, December=12.
    -
    uint8_t minute() const
    Return the minute.
    -
    int16_t year() const
    Return the year.
    -
    void incrementMonth(OffsetDateTime &dateTime)
    Increment the month by one within the interval [1, 12].
    -
    void incrementYear(OffsetDateTime &dateTime)
    Increment the year by one within the interval [2000, 2099].
    -
    void incrementDay(OffsetDateTime &dateTime)
    Increment the day by one within the interval [1, 31].
    -
    void incrementHour(OffsetDateTime &dateTime)
    Increment the hour by one within the interval [0, 23].
    -
    void incrementMinute(OffsetDateTime &dateTime)
    Increment the minute by one within the interval [0, 59].
    -
    - - - - diff --git a/docs/html/open.png b/docs/html/open.png deleted file mode 100644 index 30f75c7efe2dd0c9e956e35b69777a02751f048b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js deleted file mode 100644 index 747c845a8..000000000 --- a/docs/html/search/all_0.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['abbrev_0',['abbrev',['../structace__time_1_1extended_1_1TransitionTemplate.html#ac81a75980ade1786d3f772958555ba97',1,'ace_time::extended::TransitionTemplate::abbrev()'],['../classace__time_1_1FindResult.html#adf56ea188f29e6dde228ba2bdf70d05e',1,'ace_time::FindResult::abbrev()'],['../classace__time_1_1ZonedExtra.html#a8c05778e4b263ae9a46232ec5b8a6bd3',1,'ace_time::ZonedExtra::abbrev()'],['../structace__time_1_1basic_1_1TransitionTemplate.html#ac13d94f5c0e92879093edfe8e8e8c7a9',1,'ace_time::basic::TransitionTemplate::abbrev()']]], - ['ace_5ftime_5fuse_5fprogmem_1',['ACE_TIME_USE_PROGMEM',['../compat_8h.html#a736a584901fd7e4d3c06ade513afd259',1,'compat.h']]], - ['acetime_20library_2',['AceTime Library',['../index.html',1,'']]], - ['acetime_5ft_3',['acetime_t',['../common_8h.html#a9c5a9893b2588031b6ab56826dec303a',1,'ace_time']]], - ['addactivecandidatestoactivepool_4',['addActiveCandidatesToActivePool',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a525bdc0b328667b86afb261e7d259add',1,'ace_time::extended::TransitionStorageTemplate']]], - ['addfreeagenttoactivepool_5',['addFreeAgentToActivePool',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a69ae3ad36c15dbec02eb7d36d68f6b2c',1,'ace_time::extended::TransitionStorageTemplate']]], - ['addfreeagenttocandidatepool_6',['addFreeAgentToCandidatePool',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#abfcaa0998609e6585200977613991b71',1,'ace_time::extended::TransitionStorageTemplate']]], - ['addpriortocandidatepool_7',['addPriorToCandidatePool',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a1ff886ba84bc8db18ce4e7c038529945',1,'ace_time::extended::TransitionStorageTemplate']]], - ['attimecode_8',['atTimeCode',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#acf297d080609219b0015bdee60ffeafd',1,'ace_time::ZoneInfoHigh::ZoneRule::atTimeCode()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#af6110cf6c3d16d806cd0336c7dcbf0a6',1,'ace_time::ZoneInfoLow::ZoneRule::atTimeCode()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#aee68992d09c48cfb779cd0fbc6a74f1e',1,'ace_time::ZoneInfoMid::ZoneRule::atTimeCode()']]], - ['attimemodifier_9',['atTimeModifier',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a24b8b884826c9ed31406fcb354172059',1,'ace_time::ZoneInfoHigh::ZoneRule::atTimeModifier()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#a8d9d757a8017bcf172222096e20ebf2c',1,'ace_time::ZoneInfoLow::ZoneRule::atTimeModifier()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#ad2d385fd77a21da6172c91b47a2e57aa',1,'ace_time::ZoneInfoMid::ZoneRule::atTimeModifier()']]] -]; diff --git a/docs/html/search/all_1.html b/docs/html/search/all_1.html deleted file mode 100644 index 9f80e9043..000000000 --- a/docs/html/search/all_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js deleted file mode 100644 index 1f8c31d75..000000000 --- a/docs/html/search/all_1.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['baseyear_10',['baseYear',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a91146acedb5238d02a04359a34cd87b6',1,'ace_time::ZoneInfoHigh::ZoneContext::baseYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a9b8247f1422037918a041c124e67c221',1,'ace_time::ZoneInfoLow::ZoneContext::baseYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a2585f527bdcefb014fafe5f65912c239',1,'ace_time::ZoneInfoMid::ZoneContext::baseYear()']]], - ['basiczoneprocessor_11',['BasicZoneProcessor',['../classace__time_1_1BasicZoneProcessor.html',1,'ace_time']]], - ['basiczoneprocessorcache_12',['BasicZoneProcessorCache',['../classace__time_1_1BasicZoneProcessorCache.html',1,'ace_time']]], - ['basiczoneprocessortemplate_13',['BasicZoneProcessorTemplate',['../classace__time_1_1BasicZoneProcessorTemplate.html',1,'ace_time::BasicZoneProcessorTemplate< D >'],['../classace__time_1_1BasicZoneProcessorTemplate.html#aa4bec4d664d79dbd7b8b2d1fb3b0e26d',1,'ace_time::BasicZoneProcessorTemplate::BasicZoneProcessorTemplate()']]], - ['basiczoneprocessortemplate_3c_20basic_3a_3ainfo_20_3e_14',['BasicZoneProcessorTemplate< basic::Info >',['../classace__time_1_1BasicZoneProcessorTemplate.html',1,'ace_time']]], - ['binarysearchbyid_15',['binarySearchById',['../classace__time_1_1ZoneRegistrarTemplate.html#abb1805b14881767f4974e123cf52dd4e',1,'ace_time::ZoneRegistrarTemplate']]], - ['brokercommon_2eh_16',['BrokerCommon.h',['../BrokerCommon_8h.html',1,'']]] -]; diff --git a/docs/html/search/all_10.html b/docs/html/search/all_10.html deleted file mode 100644 index 3bf11961f..000000000 --- a/docs/html/search/all_10.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_10.js b/docs/html/search/all_10.js deleted file mode 100644 index cd7a62270..000000000 --- a/docs/html/search/all_10.js +++ /dev/null @@ -1,20 +0,0 @@ -var searchData= -[ - ['second_255',['second',['../classace__time_1_1LocalDateTime.html#aefbd9c1ce2f10c2f3be02c785a0c956a',1,'ace_time::LocalDateTime::second(uint8_t second)'],['../classace__time_1_1LocalDateTime.html#a715acce151915d4efbe821291d9c693e',1,'ace_time::LocalDateTime::second() const'],['../classace__time_1_1ZonedDateTime.html#a97d98d1eda7b1f430dd550dfb56a4911',1,'ace_time::ZonedDateTime::second(uint8_t second)'],['../classace__time_1_1ZonedDateTime.html#a99768367d264cb915b924fb9360a641e',1,'ace_time::ZonedDateTime::second() const'],['../classace__time_1_1TimePeriod.html#a9e352d87d8166ac6c5c560e0a91af9a7',1,'ace_time::TimePeriod::second(uint8_t second)'],['../classace__time_1_1TimePeriod.html#a587b3f8a8d4a0ae265177e706fdc3464',1,'ace_time::TimePeriod::second() const'],['../classace__time_1_1OffsetDateTime.html#ad83e4895cec2d58533367bd5e55790bd',1,'ace_time::OffsetDateTime::second(uint8_t second)'],['../classace__time_1_1OffsetDateTime.html#aea3e2c0b8cfa46fd2b6f1f26dd543eaa',1,'ace_time::OffsetDateTime::second() const'],['../classace__time_1_1LocalTime.html#ad4ddf0fd1c2263c596a4ee83cf81d5a9',1,'ace_time::LocalTime::second(uint8_t second)'],['../classace__time_1_1LocalTime.html#ae9cd4e0e411a670b7cac26147c2a3e7b',1,'ace_time::LocalTime::second() const']]], - ['secondstocurrentepochfromunixepoch64_256',['secondsToCurrentEpochFromUnixEpoch64',['../classace__time_1_1Epoch.html#af9d0de190182e5909eabd84d23b5f76d',1,'ace_time::Epoch']]], - ['setfreeagentaspriorifvalid_257',['setFreeAgentAsPriorIfValid',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a08155e848c4ab241361ab18734f5313e',1,'ace_time::extended::TransitionStorageTemplate']]], - ['setzoneinfostore_258',['setZoneInfoStore',['../classace__time_1_1BasicZoneProcessorTemplate.html#a3205a96013cae3dd7c63bee7464e7707',1,'ace_time::BasicZoneProcessorTemplate::setZoneInfoStore()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#af2dafaf4f63cd02753fe13c44338dbb0',1,'ace_time::ExtendedZoneProcessorTemplate::setZoneInfoStore()']]], - ['setzonekey_259',['setZoneKey',['../classace__time_1_1BasicZoneProcessorTemplate.html#aa979f8f2acf5dd5d8b2afc402ee79cfd',1,'ace_time::BasicZoneProcessorTemplate::setZoneKey()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ac19dcc290a5bacfc07e4d828d90b0bd2',1,'ace_time::ExtendedZoneProcessorTemplate::setZoneKey()'],['../classace__time_1_1ZoneProcessor.html#af069bc08e2135e460c4442fd0be6d3e1',1,'ace_time::ZoneProcessor::setZoneKey()']]], - ['sign_260',['sign',['../classace__time_1_1TimePeriod.html#a06902488cd5ad371690ce1c31ced3140',1,'ace_time::TimePeriod::sign() const'],['../classace__time_1_1TimePeriod.html#a587cafeeea574e2a83a3fc3a9d4a8c4e',1,'ace_time::TimePeriod::sign(int8_t sign)']]], - ['size_261',['size',['../classace__time_1_1ZoneProcessorCacheBaseTemplate.html#abad6179f1e1f64c395804ad6d12bb28c',1,'ace_time::ZoneProcessorCacheBaseTemplate']]], - ['sortids_262',['sortIds',['../classace__time_1_1ZoneSorterByName.html#a9831c8b2afe5a8a18735e36bd2bb0153',1,'ace_time::ZoneSorterByName::sortIds()'],['../classace__time_1_1ZoneSorterByOffsetAndName.html#a9b3e7d4fb639b81f81e6f0ddc0cc04e9',1,'ace_time::ZoneSorterByOffsetAndName::sortIds()']]], - ['sortindexes_263',['sortIndexes',['../classace__time_1_1ZoneSorterByName.html#a4048944237c6ddecae4723acc3e8048f',1,'ace_time::ZoneSorterByName::sortIndexes()'],['../classace__time_1_1ZoneSorterByOffsetAndName.html#a432477df0841504524e8a43655e8080c',1,'ace_time::ZoneSorterByOffsetAndName::sortIndexes()']]], - ['sortnames_264',['sortNames',['../classace__time_1_1ZoneSorterByName.html#a240e4a5eb754a7eb5ee77ceb1b5d8a26',1,'ace_time::ZoneSorterByName::sortNames()'],['../classace__time_1_1ZoneSorterByOffsetAndName.html#afe46c57a208e78c60e35cade1fce3fc2',1,'ace_time::ZoneSorterByOffsetAndName::sortNames()']]], - ['startdatetime_265',['startDateTime',['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a2a99c8f744ffe11f39b4aa070cb5d17d',1,'ace_time::extended::MatchingEraTemplate::startDateTime()'],['../structace__time_1_1extended_1_1TransitionTemplate.html#a7a9228ea6192b5c32d653ae168ab18f3',1,'ace_time::extended::TransitionTemplate::startDateTime()']]], - ['startepochseconds_266',['startEpochSeconds',['../structace__time_1_1basic_1_1TransitionTemplate.html#a0e3be81507afb2645ede1152a6b5e380',1,'ace_time::basic::TransitionTemplate::startEpochSeconds()'],['../structace__time_1_1extended_1_1TransitionTemplate.html#acaa8e793029236d7584ba7e42cb86769',1,'ace_time::extended::TransitionTemplate::startEpochSeconds()']]], - ['startyear_267',['startYear',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a7b1febefd2500715949f9b9420ae32c5',1,'ace_time::ZoneInfoHigh::ZoneContext::startYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a1b3a8a00e090161fcbac64d548f4efa0',1,'ace_time::ZoneInfoMid::ZoneContext::startYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#aec1f8dfc289c3976923f7c75d2b3853c',1,'ace_time::ZoneInfoLow::ZoneContext::startYear()']]], - ['startyearaccurate_268',['startYearAccurate',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a272cc1c4e6cbb90a171d394584796a37',1,'ace_time::ZoneInfoHigh::ZoneContext::startYearAccurate()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ab9e2cba37cfc9e35e06da7928d13dd7a',1,'ace_time::ZoneInfoLow::ZoneContext::startYearAccurate()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a0e7b43f0a9b995fc247990195ad29c31',1,'ace_time::ZoneInfoMid::ZoneContext::startYearAccurate()']]], - ['stdoffset_269',['stdOffset',['../classace__time_1_1ZoneTemplate.html#aac484648d371d67ee1809e44817795e2',1,'ace_time::ZoneTemplate::stdOffset()'],['../classace__time_1_1ZonedExtra.html#a3d8652d05e4825b001abbc2463aeb6e2',1,'ace_time::ZonedExtra::stdOffset()']]], - ['stdoffsetseconds_270',['stdOffsetSeconds',['../classace__time_1_1FindResult.html#a2d2eb6055092b450cf39c04579ccb113',1,'ace_time::FindResult']]], - ['swap_271',['swap',['../common_8h.html#a2f64774ab7f61dab204480e2e27c93b4',1,'ace_time']]] -]; diff --git a/docs/html/search/all_11.html b/docs/html/search/all_11.html deleted file mode 100644 index c9f79d289..000000000 --- a/docs/html/search/all_11.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js deleted file mode 100644 index 8f52eb50a..000000000 --- a/docs/html/search/all_11.js +++ /dev/null @@ -1,45 +0,0 @@ -var searchData= -[ - ['targetinfo_272',['targetInfo',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#a7138a1f343ad458c677518af212fa3af',1,'ace_time::ZoneInfoHigh::ZoneInfo::targetInfo()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#aebc718272c6514e642cb620c261bfc7c',1,'ace_time::ZoneInfoLow::ZoneInfo::targetInfo()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#a51e9ef6e379e8dbc0ae7283ada7a810b',1,'ace_time::ZoneInfoMid::ZoneInfo::targetInfo()']]], - ['time_5foffset_5fmutation_2eh_273',['time_offset_mutation.h',['../time__offset__mutation_8h.html',1,'']]], - ['time_5fperiod_5fmutation_2eh_274',['time_period_mutation.h',['../time__period__mutation_8h.html',1,'']]], - ['timecodetominutes_275',['timeCodeToMinutes',['../classace__time_1_1ZoneInfoMid.html#a4c7dee32a316490c40ae632194b04c7d',1,'ace_time::ZoneInfoMid::timeCodeToMinutes()'],['../classace__time_1_1ZoneInfoLow.html#a7df9098f1a644f3ed0333a8dac9fbc62',1,'ace_time::ZoneInfoLow::timeCodeToMinutes()']]], - ['timecodetoseconds_276',['timeCodeToSeconds',['../classace__time_1_1ZoneInfoHigh.html#a984dee1fd85e1b193623762e7e9786c2',1,'ace_time::ZoneInfoHigh']]], - ['timeoffset_277',['TimeOffset',['../classace__time_1_1TimeOffset.html',1,'ace_time']]], - ['timeoffset_278',['timeOffset',['../classace__time_1_1ZonedExtra.html#af0973bd7b093b8516093f74dea15ac7c',1,'ace_time::ZonedExtra::timeOffset()'],['../classace__time_1_1ZonedDateTime.html#ade77d29873786f45459a07d2271d8c64',1,'ace_time::ZonedDateTime::timeOffset()'],['../classace__time_1_1OffsetDateTime.html#a298bf16b90a1c657a66d9b5d77b0b1cb',1,'ace_time::OffsetDateTime::timeOffset(TimeOffset timeOffset)'],['../classace__time_1_1OffsetDateTime.html#a168e05a532edbaed7afa4e75fbf636d7',1,'ace_time::OffsetDateTime::timeOffset() const']]], - ['timeoffset_279',['TimeOffset',['../classace__time_1_1TimeOffset.html#a0fca23cf055036370aadd89ca307aae8',1,'ace_time::TimeOffset']]], - ['timeperiod_280',['TimePeriod',['../classace__time_1_1TimePeriod.html',1,'ace_time::TimePeriod'],['../classace__time_1_1TimePeriod.html#a45fb93e84da2991a366a5ebf31b66dde',1,'ace_time::TimePeriod::TimePeriod(uint8_t hour, uint8_t minute, uint8_t second, int8_t sign=1)'],['../classace__time_1_1TimePeriod.html#a0ee304d6c42e01c56ed14783da5a85af',1,'ace_time::TimePeriod::TimePeriod(int32_t seconds=0)']]], - ['timezone_281',['TimeZone',['../classace__time_1_1TimeZone.html',1,'ace_time::TimeZone'],['../classace__time_1_1TimeZone.html#afc1cbc5b5e4cd6f2cff0788a4acb9ed9',1,'ace_time::TimeZone::TimeZone()']]], - ['timezone_282',['timeZone',['../classace__time_1_1ZonedDateTime.html#a09369bb6bb3ca5c2f10c68c72c5edfd4',1,'ace_time::ZonedDateTime::timeZone() const'],['../classace__time_1_1ZonedDateTime.html#ad1c861034107afc92fb24a320c0696ba',1,'ace_time::ZonedDateTime::timeZone(const TimeZone &timeZone)']]], - ['timezonedata_283',['TimeZoneData',['../structace__time_1_1TimeZoneData.html',1,'ace_time::TimeZoneData'],['../structace__time_1_1TimeZoneData.html#a76f99ffc11d0866de37bcc7eb803a975',1,'ace_time::TimeZoneData::TimeZoneData()'],['../structace__time_1_1TimeZoneData.html#ae24aeb66c44724d8520e8f986644f871',1,'ace_time::TimeZoneData::TimeZoneData(int16_t stdMinutes, int16_t dstMinutes)'],['../structace__time_1_1TimeZoneData.html#a795549e3491feb49b15bb4d6039f9ac8',1,'ace_time::TimeZoneData::TimeZoneData(uint32_t zid)']]], - ['todaysuntilmonthprime_284',['toDaysUntilMonthPrime',['../classace__time_1_1EpochConverterHinnant.html#abde5e43363da84003756995fadfc29f6',1,'ace_time::EpochConverterHinnant']]], - ['todeltaminutes_285',['toDeltaMinutes',['../classace__time_1_1ZoneInfoMid.html#a58b5a6bea0c4aa6189837b056dc867db',1,'ace_time::ZoneInfoMid::toDeltaMinutes()'],['../classace__time_1_1ZoneInfoLow.html#ac16d996ea08813fc69b378623776d07b',1,'ace_time::ZoneInfoLow::toDeltaMinutes()']]], - ['todeltaseconds_286',['toDeltaSeconds',['../classace__time_1_1ZoneInfoHigh.html#a6b1e7c8f3958970ab59a7dc5e5cbf098',1,'ace_time::ZoneInfoHigh']]], - ['toepochdays_287',['toEpochDays',['../classace__time_1_1EpochConverterHinnant.html#add31b88fab6a8932523ddf1c3e457bec',1,'ace_time::EpochConverterHinnant::toEpochDays()'],['../classace__time_1_1EpochConverterJulian.html#a5fcf343db11a56eb87e4dd495654b13b',1,'ace_time::EpochConverterJulian::toEpochDays()'],['../classace__time_1_1LocalDate.html#ab3b76c692aee5e652225616eb871bcae',1,'ace_time::LocalDate::toEpochDays()'],['../classace__time_1_1OffsetDateTime.html#ab243977759b649dc6e5c45fc00c5eb93',1,'ace_time::OffsetDateTime::toEpochDays()'],['../classace__time_1_1LocalDateTime.html#abefd57dc8b5d6c66074a809a32ddbb24',1,'ace_time::LocalDateTime::toEpochDays()'],['../classace__time_1_1ZonedDateTime.html#a1394fa71ef1970c1b340198d3ed7350f',1,'ace_time::ZonedDateTime::toEpochDays()']]], - ['toepochseconds_288',['toEpochSeconds',['../classace__time_1_1LocalDateTime.html#af174b568718ea7b54528f916806020b8',1,'ace_time::LocalDateTime::toEpochSeconds()'],['../classace__time_1_1ZonedDateTime.html#acfa87cc440b6b3ab00c6aeac190892b3',1,'ace_time::ZonedDateTime::toEpochSeconds()'],['../classace__time_1_1OffsetDateTime.html#a6bf75ca2f12bc07db60d00e7e5fc5589',1,'ace_time::OffsetDateTime::toEpochSeconds()'],['../classace__time_1_1LocalDate.html#af1a1350bc5637a4296729b2bc3f61d49',1,'ace_time::LocalDate::toEpochSeconds()']]], - ['tohourminute_289',['toHourMinute',['../classace__time_1_1TimeOffset.html#a20d77892ff9d4a252dcb0cc2e19d3c13',1,'ace_time::TimeOffset']]], - ['tohourminutesecond_290',['toHourMinuteSecond',['../classace__time_1_1TimeOffset.html#a02fc32387fcb3915fabc113ab40e2123',1,'ace_time::TimeOffset']]], - ['tominutes_291',['toMinutes',['../classace__time_1_1TimeOffset.html#a08191e46cf33309fc06f4429505fcf4c',1,'ace_time::TimeOffset']]], - ['tooffsetminutes_292',['toOffsetMinutes',['../classace__time_1_1ZoneInfoLow.html#a82d664bd682159fa996cc2ca17137d81',1,'ace_time::ZoneInfoLow::toOffsetMinutes()'],['../classace__time_1_1ZoneInfoMid.html#acfa62d66e942e4d2647cddcd1a27d0b8',1,'ace_time::ZoneInfoMid::toOffsetMinutes()']]], - ['tooffsetseconds_293',['toOffsetSeconds',['../classace__time_1_1ZoneInfoHigh.html#a61c1a93d3acce6457db7e8c9422955b5',1,'ace_time::ZoneInfoHigh']]], - ['toseconds_294',['toSeconds',['../classace__time_1_1LocalTime.html#a53f1dd8b1eea2592a760bedcdf6d1442',1,'ace_time::LocalTime::toSeconds()'],['../classace__time_1_1TimeOffset.html#a91835a600c3d1a29a94b3fb38ea32e14',1,'ace_time::TimeOffset::toSeconds()'],['../classace__time_1_1TimePeriod.html#ae94aa6fd79718e72eaa1a3f3c4caed9e',1,'ace_time::TimePeriod::toSeconds()']]], - ['tosuffix_295',['toSuffix',['../classace__time_1_1ZoneInfoMid.html#af7440abd21b4c4a435a9e5b4845f10d4',1,'ace_time::ZoneInfoMid::toSuffix()'],['../classace__time_1_1ZoneInfoLow.html#ad751091281b4f36a88acbc2e152927f1',1,'ace_time::ZoneInfoLow::toSuffix()'],['../classace__time_1_1ZoneInfoHigh.html#ab17b999392849004fdbd434add01bc3c',1,'ace_time::ZoneInfoHigh::toSuffix()']]], - ['totimezonedata_296',['toTimeZoneData',['../classace__time_1_1TimeZone.html#af4e12e7f8296fefe6b979fd5b9af5ba7',1,'ace_time::TimeZone']]], - ['tounixdays_297',['toUnixDays',['../classace__time_1_1OffsetDateTime.html#ab74f0bd4a1b74fed62cf0236de723f65',1,'ace_time::OffsetDateTime::toUnixDays()'],['../classace__time_1_1LocalDateTime.html#aa805a985dcd3636acad1a21845d4be32',1,'ace_time::LocalDateTime::toUnixDays()'],['../classace__time_1_1LocalDate.html#a0fa14ac593d7f693d0190cc4bc5043dd',1,'ace_time::LocalDate::toUnixDays()'],['../classace__time_1_1ZonedDateTime.html#af0d37e7ff87736533e58b20058b46a83',1,'ace_time::ZonedDateTime::toUnixDays()']]], - ['tounixseconds64_298',['toUnixSeconds64',['../classace__time_1_1LocalDate.html#a40be39304d67827b663f79c840b80094',1,'ace_time::LocalDate::toUnixSeconds64()'],['../classace__time_1_1LocalDateTime.html#a14bba42198704634aac7dfcec3f90ebd',1,'ace_time::LocalDateTime::toUnixSeconds64()'],['../classace__time_1_1OffsetDateTime.html#a19352ab3d4505bd1463cd1d718d56166',1,'ace_time::OffsetDateTime::toUnixSeconds64()'],['../classace__time_1_1ZonedDateTime.html#a79425f9f71b91ebd450f8587db8dacdf',1,'ace_time::ZonedDateTime::toUnixSeconds64()']]], - ['toyear_299',['toYear',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#afbceca71178540a0623b6b7bbb5c6b53',1,'ace_time::ZoneInfoHigh::ZoneRule::toYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#a23c4dbd9a13d73c5d8f4248f001cc43e',1,'ace_time::ZoneInfoLow::ZoneRule::toYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#afa4c01beba90c1b3b8a16be5956a73b3',1,'ace_time::ZoneInfoMid::ZoneRule::toYear()']]], - ['transition_300',['Transition',['../classace__time_1_1BasicZoneProcessorTemplate.html#a3b34e0d24626eb157e97407c146fd2e0',1,'ace_time::BasicZoneProcessorTemplate::Transition()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a71cee1e6bcf406c8e5e417ad61fcf2c2',1,'ace_time::ExtendedZoneProcessorTemplate::Transition()'],['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a1e4a697f721a7651e05cd7e995711f0d',1,'ace_time::extended::TransitionStorageTemplate::Transition()']]], - ['transitionfordatetime_301',['TransitionForDateTime',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a56eae00a6e5e66d7fdc8c15c6a17a0f5',1,'ace_time::ExtendedZoneProcessorTemplate::TransitionForDateTime()'],['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a741380d6aab5f393fac012e436fdb2e5',1,'ace_time::extended::TransitionStorageTemplate::TransitionForDateTime()']]], - ['transitionfordatetimetemplate_302',['TransitionForDateTimeTemplate',['../structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html',1,'ace_time::extended']]], - ['transitionforseconds_303',['TransitionForSeconds',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ae811e44232b00118baec421957203981',1,'ace_time::ExtendedZoneProcessorTemplate::TransitionForSeconds()'],['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a70bd9ec609c12475fdd549e199a0b9eb',1,'ace_time::extended::TransitionStorageTemplate::TransitionForSeconds()']]], - ['transitionforsecondstemplate_304',['TransitionForSecondsTemplate',['../structace__time_1_1extended_1_1TransitionForSecondsTemplate.html',1,'ace_time::extended']]], - ['transitionstorage_305',['TransitionStorage',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#aeb452c152eacd01384e8e55292bc4e79',1,'ace_time::ExtendedZoneProcessorTemplate']]], - ['transitionstoragetemplate_306',['TransitionStorageTemplate',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html',1,'ace_time::extended::TransitionStorageTemplate< SIZE, D >'],['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a8329e86bf34862bcd40bbd2e47a498f8',1,'ace_time::extended::TransitionStorageTemplate::TransitionStorageTemplate()']]], - ['transitionstoragetemplate_3c_20kmaxtransitions_2c_20d_20_3e_307',['TransitionStorageTemplate< kMaxTransitions, D >',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html',1,'ace_time::extended']]], - ['transitiontemplate_308',['TransitionTemplate',['../structace__time_1_1basic_1_1TransitionTemplate.html',1,'ace_time::basic::TransitionTemplate< D >'],['../structace__time_1_1extended_1_1TransitionTemplate.html',1,'ace_time::extended::TransitionTemplate< D >']]], - ['transitiontime_309',['transitionTime',['../structace__time_1_1extended_1_1TransitionTemplate.html#a5f9b292d081aed327efee58bd56609c8',1,'ace_time::extended::TransitionTemplate']]], - ['transitiontimes_310',['transitionTimeS',['../structace__time_1_1extended_1_1TransitionTemplate.html#adc9de7f0c79288a872be59eee5bccf91',1,'ace_time::extended::TransitionTemplate']]], - ['transitiontimeu_311',['transitionTimeU',['../structace__time_1_1extended_1_1TransitionTemplate.html#a4a5190619d60a03a6cc3f1d8d2f1ab87',1,'ace_time::extended::TransitionTemplate']]], - ['type_312',['type',['../classace__time_1_1FindResult.html#aea0fa44decd41bb509e9353aaf3aa605',1,'ace_time::FindResult']]], - ['tzversion_313',['tzVersion',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#aec06aa1d12e81f17f81f8b9f01386e02',1,'ace_time::ZoneInfoHigh::ZoneContext::tzVersion()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a9c23689b08b58a8d0e2fb41fd0d39482',1,'ace_time::ZoneInfoLow::ZoneContext::tzVersion()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a31f852239d5a06a54af4a47def4129ff',1,'ace_time::ZoneInfoMid::ZoneContext::tzVersion()']]] -]; diff --git a/docs/html/search/all_12.html b/docs/html/search/all_12.html deleted file mode 100644 index ab934722c..000000000 --- a/docs/html/search/all_12.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_12.js b/docs/html/search/all_12.js deleted file mode 100644 index 04cf47d32..000000000 --- a/docs/html/search/all_12.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['untildatetime_314',['untilDateTime',['../structace__time_1_1extended_1_1TransitionTemplate.html#ad8d3c80ae84be55fc98c81141e7205c8',1,'ace_time::extended::TransitionTemplate::untilDateTime()'],['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a8bde680f486a61f3b88749b692bfd4cb',1,'ace_time::extended::MatchingEraTemplate::untilDateTime()']]], - ['untilday_315',['untilDay',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a87ea06b3206b6c40451b712bf93d47df',1,'ace_time::ZoneInfoHigh::ZoneEra::untilDay()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#aab6de3bfb82cfbf04d6de877fc545dba',1,'ace_time::ZoneInfoLow::ZoneEra::untilDay()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#afafb93d02314691b5584b53cd62ec01d',1,'ace_time::ZoneInfoMid::ZoneEra::untilDay()']]], - ['untilmonth_316',['untilMonth',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a3c00456b24e9dab493a705441b2782b6',1,'ace_time::ZoneInfoHigh::ZoneEra::untilMonth()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#ac00975ce45244ab6c47ff05c55b53618',1,'ace_time::ZoneInfoLow::ZoneEra::untilMonth()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#a0d82600e58671bf9a98a4ffb0f2cabf5',1,'ace_time::ZoneInfoMid::ZoneEra::untilMonth()']]], - ['untiltimecode_317',['untilTimeCode',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a9727baf25d17ffcb6325e4dbb5c3d58f',1,'ace_time::ZoneInfoHigh::ZoneEra::untilTimeCode()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#af04023b698555c56976a1df87936e2d6',1,'ace_time::ZoneInfoLow::ZoneEra::untilTimeCode()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#a9efb0351e45dc685763dfa863dfc885c',1,'ace_time::ZoneInfoMid::ZoneEra::untilTimeCode()']]], - ['untiltimemodifier_318',['untilTimeModifier',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a7b9b99405c9d25314fb095cae3b8feeb',1,'ace_time::ZoneInfoHigh::ZoneEra::untilTimeModifier()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#a70e2147a6f9ceba5cf1805bf56f3435c',1,'ace_time::ZoneInfoMid::ZoneEra::untilTimeModifier()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#a39d56768a660547b9074ef9bf58de312',1,'ace_time::ZoneInfoLow::ZoneEra::untilTimeModifier()']]], - ['untilyear_319',['untilYear',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a6c8874ced080a87c8db794c34d69777c',1,'ace_time::ZoneInfoHigh::ZoneContext::untilYear()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a0d919e8452805f59cef44b3b7a9336c2',1,'ace_time::ZoneInfoHigh::ZoneEra::untilYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ae0feaabcfcd2d429da979545ab715799',1,'ace_time::ZoneInfoLow::ZoneContext::untilYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#a7a5e4e6833a0c0186d19976a81db7191',1,'ace_time::ZoneInfoLow::ZoneEra::untilYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#aa5f3e2762a58f631023d38df68b77e9a',1,'ace_time::ZoneInfoMid::ZoneContext::untilYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#a8838e8009cfbf63b7d32291eb418aa62',1,'ace_time::ZoneInfoMid::ZoneEra::untilYear()']]], - ['untilyearaccurate_320',['untilYearAccurate',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a7af3d14f1c16adfc2785a5c8d86cf291',1,'ace_time::ZoneInfoHigh::ZoneContext::untilYearAccurate()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a7d4ac302103cede7f75ab58b13000fdb',1,'ace_time::ZoneInfoLow::ZoneContext::untilYearAccurate()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a4c639b62fcb01dc50b72ea2a965839d9',1,'ace_time::ZoneInfoMid::ZoneContext::untilYearAccurate()']]] -]; diff --git a/docs/html/search/all_13.html b/docs/html/search/all_13.html deleted file mode 100644 index 51172c2f3..000000000 --- a/docs/html/search/all_13.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_13.js b/docs/html/search/all_13.js deleted file mode 100644 index 90f7c1a7a..000000000 --- a/docs/html/search/all_13.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['year_321',['year',['../structace__time_1_1basic_1_1TransitionTemplate.html#ac808cf469e0154927103849ffd33a526',1,'ace_time::basic::TransitionTemplate::year()'],['../classace__time_1_1LocalDate.html#aa26da19e25f4c8f87d2f36158170f933',1,'ace_time::LocalDate::year() const'],['../classace__time_1_1LocalDate.html#afc711cd99663609cf791516fb0b2d9b7',1,'ace_time::LocalDate::year(int16_t year)'],['../classace__time_1_1LocalDateTime.html#af8475d9a582933a3d7be658657dc8f08',1,'ace_time::LocalDateTime::year() const'],['../classace__time_1_1LocalDateTime.html#a7fce2547e6d4b12d08fbda5c2d0d63d7',1,'ace_time::LocalDateTime::year(int16_t year)'],['../classace__time_1_1OffsetDateTime.html#a92a54034c2590597cdc32bb7067f4386',1,'ace_time::OffsetDateTime::year() const'],['../classace__time_1_1OffsetDateTime.html#ad6859b95bda19cfd5901d2119ed61132',1,'ace_time::OffsetDateTime::year(int16_t year)'],['../classace__time_1_1ZonedDateTime.html#a1837d67faca49ad7dd01fb699125b865',1,'ace_time::ZonedDateTime::year() const'],['../classace__time_1_1ZonedDateTime.html#abb56f5ce068b79f63d25f33a191f76d8',1,'ace_time::ZonedDateTime::year(int16_t year)']]], - ['yearmonthtuple_322',['YearMonthTuple',['../structace__time_1_1extended_1_1YearMonthTuple.html',1,'ace_time::extended']]] -]; diff --git a/docs/html/search/all_14.html b/docs/html/search/all_14.html deleted file mode 100644 index afecf5634..000000000 --- a/docs/html/search/all_14.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_14.js b/docs/html/search/all_14.js deleted file mode 100644 index 25a65cbd2..000000000 --- a/docs/html/search/all_14.js +++ /dev/null @@ -1,36 +0,0 @@ -var searchData= -[ - ['zonecontext_323',['ZoneContext',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html',1,'ace_time::ZoneInfoHigh::ZoneContext'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html',1,'ace_time::ZoneInfoLow::ZoneContext'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html',1,'ace_time::ZoneInfoMid::ZoneContext']]], - ['zonecontext_324',['zoneContext',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#a7a46d38468d697acc4940272f58e2dc5',1,'ace_time::ZoneInfoHigh::ZoneInfo::zoneContext()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#a5952d69fef07d80b80dfd5d467c01b26',1,'ace_time::ZoneInfoLow::ZoneInfo::zoneContext()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#adf2ed9136e727b9cb3ef143156ae6917',1,'ace_time::ZoneInfoMid::ZoneInfo::zoneContext()']]], - ['zonecontextbroker_325',['ZoneContextBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneContextBroker.html',1,'ace_time::ZoneInfoHigh::ZoneContextBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZoneContextBroker.html',1,'ace_time::ZoneInfoLow::ZoneContextBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZoneContextBroker.html',1,'ace_time::ZoneInfoMid::ZoneContextBroker']]], - ['zoned_5fdate_5ftime_5fmutation_2eh_326',['zoned_date_time_mutation.h',['../zoned__date__time__mutation_8h.html',1,'']]], - ['zoneddatetime_327',['ZonedDateTime',['../classace__time_1_1ZonedDateTime.html',1,'ace_time::ZonedDateTime'],['../classace__time_1_1ZonedDateTime.html#acd0b9c37aa77071b6c4f5230f8f32caf',1,'ace_time::ZonedDateTime::ZonedDateTime()']]], - ['zonedextra_328',['ZonedExtra',['../classace__time_1_1ZonedExtra.html',1,'ace_time::ZonedExtra'],['../classace__time_1_1ZonedExtra.html#aa03296dc50d1520a956aa0a0db1763b6',1,'ace_time::ZonedExtra::ZonedExtra(uint8_t type, int32_t stdOffsetSeconds, int32_t dstOffsetSeconds, int32_t reqStdOffsetSeconds, int32_t reqDstOffsetSeconds, const char *abbrev)'],['../classace__time_1_1ZonedExtra.html#a736380ab263fae75ee6ae47b84fd763c',1,'ace_time::ZonedExtra::ZonedExtra()']]], - ['zoneera_329',['ZoneEra',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html',1,'ace_time::ZoneInfoHigh::ZoneEra'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html',1,'ace_time::ZoneInfoLow::ZoneEra'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html',1,'ace_time::ZoneInfoMid::ZoneEra']]], - ['zoneerabroker_330',['ZoneEraBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneEraBroker.html',1,'ace_time::ZoneInfoHigh::ZoneEraBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZoneEraBroker.html',1,'ace_time::ZoneInfoLow::ZoneEraBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZoneEraBroker.html',1,'ace_time::ZoneInfoMid::ZoneEraBroker']]], - ['zoneid_331',['zoneId',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#ae7efc2dd3043dc86bd781f3636396414',1,'ace_time::ZoneInfoHigh::ZoneInfo::zoneId()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#ae939c47832a38cdc0a56b7e2d403b695',1,'ace_time::ZoneInfoLow::ZoneInfo::zoneId()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#a7bb42ab71a341275ecf83e9c112fcdac',1,'ace_time::ZoneInfoMid::ZoneInfo::zoneId()'],['../classace__time_1_1ZoneTemplate.html#a9b621c2e5152c515abde95b7a851d2b9',1,'ace_time::ZoneTemplate::zoneId()'],['../structace__time_1_1TimeZoneData.html#a33cee3c6e0a13796bfc9bad62f18d567',1,'ace_time::TimeZoneData::zoneId()']]], - ['zoneinfo_332',['ZoneInfo',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html',1,'ace_time::ZoneInfoHigh::ZoneInfo'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html',1,'ace_time::ZoneInfoLow::ZoneInfo'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html',1,'ace_time::ZoneInfoMid::ZoneInfo']]], - ['zoneinfobroker_333',['ZoneInfoBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html',1,'ace_time::ZoneInfoHigh::ZoneInfoBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html',1,'ace_time::ZoneInfoLow::ZoneInfoBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html',1,'ace_time::ZoneInfoMid::ZoneInfoBroker']]], - ['zoneinfohigh_334',['ZoneInfoHigh',['../classace__time_1_1ZoneInfoHigh.html',1,'ace_time']]], - ['zoneinfohigh_2eh_335',['ZoneInfoHigh.h',['../ZoneInfoHigh_8h.html',1,'']]], - ['zoneinfolow_336',['ZoneInfoLow',['../classace__time_1_1ZoneInfoLow.html',1,'ace_time']]], - ['zoneinfolow_2eh_337',['ZoneInfoLow.h',['../ZoneInfoLow_8h.html',1,'']]], - ['zoneinfomid_338',['ZoneInfoMid',['../classace__time_1_1ZoneInfoMid.html',1,'ace_time']]], - ['zoneinfomid_2eh_339',['ZoneInfoMid.h',['../ZoneInfoMid_8h.html',1,'']]], - ['zoneinfostore_340',['ZoneInfoStore',['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore.html',1,'ace_time::ZoneInfoHigh::ZoneInfoStore'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore.html',1,'ace_time::ZoneInfoLow::ZoneInfoStore'],['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore.html',1,'ace_time::ZoneInfoMid::ZoneInfoStore']]], - ['zonemanager_341',['ZoneManager',['../classace__time_1_1ZoneManager.html',1,'ace_time']]], - ['zonemanagertemplate_342',['ZoneManagerTemplate',['../classace__time_1_1ZoneManagerTemplate.html',1,'ace_time::ZoneManagerTemplate< D, ZP, Z >'],['../classace__time_1_1ZoneManagerTemplate.html#a0840a62852529b360497ccb26e420143',1,'ace_time::ZoneManagerTemplate::ZoneManagerTemplate()']]], - ['zonepolicy_343',['ZonePolicy',['../structace__time_1_1ZoneInfoHigh_1_1ZonePolicy.html',1,'ace_time::ZoneInfoHigh::ZonePolicy'],['../structace__time_1_1ZoneInfoLow_1_1ZonePolicy.html',1,'ace_time::ZoneInfoLow::ZonePolicy'],['../structace__time_1_1ZoneInfoMid_1_1ZonePolicy.html',1,'ace_time::ZoneInfoMid::ZonePolicy']]], - ['zonepolicy_344',['zonePolicy',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a96511ad4b8a6f26877bd3b070c5ff77a',1,'ace_time::ZoneInfoHigh::ZoneEra::zonePolicy()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#ab8f7418286d92977c1792b3381dff1c6',1,'ace_time::ZoneInfoLow::ZoneEra::zonePolicy()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#a60a148ee617e134d232578e1f97061db',1,'ace_time::ZoneInfoMid::ZoneEra::zonePolicy()']]], - ['zonepolicybroker_345',['ZonePolicyBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZonePolicyBroker.html',1,'ace_time::ZoneInfoHigh::ZonePolicyBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZonePolicyBroker.html',1,'ace_time::ZoneInfoLow::ZonePolicyBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZonePolicyBroker.html',1,'ace_time::ZoneInfoMid::ZonePolicyBroker']]], - ['zoneprocessor_346',['ZoneProcessor',['../classace__time_1_1ZoneProcessor.html',1,'ace_time::ZoneProcessor'],['../classace__time_1_1ZoneProcessor.html#a1b45f4d91195b4dfc63bbd4e4e3acb60',1,'ace_time::ZoneProcessor::ZoneProcessor()']]], - ['zoneprocessorcachebasetemplate_347',['ZoneProcessorCacheBaseTemplate',['../classace__time_1_1ZoneProcessorCacheBaseTemplate.html',1,'ace_time']]], - ['zoneregistrartemplate_348',['ZoneRegistrarTemplate',['../classace__time_1_1ZoneRegistrarTemplate.html',1,'ace_time::ZoneRegistrarTemplate< D >'],['../classace__time_1_1ZoneRegistrarTemplate.html#a9e7c70c2314ec1417c2fbb379737f3b6',1,'ace_time::ZoneRegistrarTemplate::ZoneRegistrarTemplate()']]], - ['zoneregistrybroker_349',['ZoneRegistryBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneRegistryBroker.html',1,'ace_time::ZoneInfoHigh::ZoneRegistryBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZoneRegistryBroker.html',1,'ace_time::ZoneInfoLow::ZoneRegistryBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZoneRegistryBroker.html',1,'ace_time::ZoneInfoMid::ZoneRegistryBroker']]], - ['zoneregistrysize_350',['zoneRegistrySize',['../classace__time_1_1ZoneManagerTemplate.html#ac72f700d9efeed1548dd248bc1ba8461',1,'ace_time::ZoneManagerTemplate::zoneRegistrySize()'],['../classace__time_1_1ZoneRegistrarTemplate.html#a93605116f7cf7314dc1a7064bcc307ae',1,'ace_time::ZoneRegistrarTemplate::zoneRegistrySize()']]], - ['zonerule_351',['ZoneRule',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html',1,'ace_time::ZoneInfoHigh::ZoneRule'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html',1,'ace_time::ZoneInfoLow::ZoneRule'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html',1,'ace_time::ZoneInfoMid::ZoneRule']]], - ['zonerulebroker_352',['ZoneRuleBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneRuleBroker.html',1,'ace_time::ZoneInfoHigh::ZoneRuleBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZoneRuleBroker.html',1,'ace_time::ZoneInfoLow::ZoneRuleBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZoneRuleBroker.html',1,'ace_time::ZoneInfoMid::ZoneRuleBroker']]], - ['zonesorterbyname_353',['ZoneSorterByName',['../classace__time_1_1ZoneSorterByName.html',1,'ace_time::ZoneSorterByName< ZM >'],['../classace__time_1_1ZoneSorterByName.html#a2368f6c18e703e0786484d03c2aa054b',1,'ace_time::ZoneSorterByName::ZoneSorterByName()']]], - ['zonesorterbyoffsetandname_354',['ZoneSorterByOffsetAndName',['../classace__time_1_1ZoneSorterByOffsetAndName.html',1,'ace_time::ZoneSorterByOffsetAndName< ZM >'],['../classace__time_1_1ZoneSorterByOffsetAndName.html#aac6183cce422e6f268faf5c8ecd292e2',1,'ace_time::ZoneSorterByOffsetAndName::ZoneSorterByOffsetAndName()']]], - ['zonetemplate_355',['ZoneTemplate',['../classace__time_1_1ZoneTemplate.html',1,'ace_time::ZoneTemplate< D >'],['../classace__time_1_1ZoneTemplate.html#a42c2da9c611a03d854989b2cef6233c7',1,'ace_time::ZoneTemplate::ZoneTemplate(const typename D::ZoneInfo *zoneInfo)'],['../classace__time_1_1ZoneTemplate.html#a165137d713f29ca33ec6800a4d5d18ab',1,'ace_time::ZoneTemplate::ZoneTemplate(const typename D::ZoneInfoBroker &zoneInfo)']]] -]; diff --git a/docs/html/search/all_2.html b/docs/html/search/all_2.html deleted file mode 100644 index 02cfffc2e..000000000 --- a/docs/html/search/all_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js deleted file mode 100644 index 742c23f18..000000000 --- a/docs/html/search/all_2.js +++ /dev/null @@ -1,21 +0,0 @@ -var searchData= -[ - ['calcfoldandoverlap_17',['calcFoldAndOverlap',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a74473a30e5bf9d4a5cb7f9026e6ca3b0',1,'ace_time::extended::TransitionStorageTemplate']]], - ['common_2eh_18',['common.h',['../common_8h.html',1,'']]], - ['comparestatus_19',['compareStatus',['../structace__time_1_1extended_1_1TransitionTemplate.html#a827a00535fa7c82e6b7110404affa2c0',1,'ace_time::extended::TransitionTemplate']]], - ['compareto_20',['compareTo',['../classace__time_1_1LocalDate.html#a51690a660b837645951c1b80b5306ede',1,'ace_time::LocalDate::compareTo()'],['../classace__time_1_1LocalDateTime.html#a54a97cb87d1d14021d655430dd4b7c44',1,'ace_time::LocalDateTime::compareTo()'],['../classace__time_1_1LocalTime.html#afd3c625a0460388afcf11f4a46d1bbd9',1,'ace_time::LocalTime::compareTo()'],['../classace__time_1_1OffsetDateTime.html#a7722d2c53d932f2a40cf74d8f8f9ec09',1,'ace_time::OffsetDateTime::compareTo()'],['../classace__time_1_1TimePeriod.html#a2e84f8990dead97e11601c9a5ec7b09f',1,'ace_time::TimePeriod::compareTo()'],['../classace__time_1_1ZonedDateTime.html#a054c5f047a889f11fdfbb5ef55d212c3',1,'ace_time::ZonedDateTime::compareTo()']]], - ['comparezone_21',['compareZone',['../classace__time_1_1ZoneSorterByOffsetAndName.html#a4d102dc457046f81cb9187179e55e519',1,'ace_time::ZoneSorterByOffsetAndName']]], - ['compat_2eh_22',['compat.h',['../compat_8h.html',1,'']]], - ['completezoneprocessor_23',['CompleteZoneProcessor',['../classace__time_1_1CompleteZoneProcessor.html',1,'ace_time']]], - ['completezoneprocessorcache_24',['CompleteZoneProcessorCache',['../classace__time_1_1CompleteZoneProcessorCache.html',1,'ace_time']]], - ['converttotimeoffset_25',['convertToTimeOffset',['../classace__time_1_1OffsetDateTime.html#a89bc4bbb2b7aa5c36950ac25671707ea',1,'ace_time::OffsetDateTime']]], - ['converttotimezone_26',['convertToTimeZone',['../classace__time_1_1ZonedDateTime.html#a53c4825eb710b77030773b7890cf3909',1,'ace_time::ZonedDateTime']]], - ['createfortimezonedata_27',['createForTimeZoneData',['../classace__time_1_1ManualZoneManager.html#aae6c3a55953025325a860e4c8dfbd663',1,'ace_time::ManualZoneManager::createForTimeZoneData()'],['../classace__time_1_1ZoneManagerTemplate.html#a15b6e9a82d1fabf4e5f9cce40bbb5183',1,'ace_time::ZoneManagerTemplate::createForTimeZoneData(const TimeZoneData &d)']]], - ['createforzoneid_28',['createForZoneId',['../classace__time_1_1ZoneManagerTemplate.html#a52525414c78931c576fb91846165ee3b',1,'ace_time::ZoneManagerTemplate']]], - ['createforzoneindex_29',['createForZoneIndex',['../classace__time_1_1ZoneManagerTemplate.html#a9cda62ecaa6d40b03275f5d9f16f98fa',1,'ace_time::ZoneManagerTemplate']]], - ['createforzoneinfo_30',['createForZoneInfo',['../classace__time_1_1ZoneManagerTemplate.html#a836a4b1d4a56a82dbe6c9a1eb08a48ce',1,'ace_time::ZoneManagerTemplate']]], - ['createforzonename_31',['createForZoneName',['../classace__time_1_1ZoneManagerTemplate.html#ab80354b825bcf12f6b0ed0af47c9973c',1,'ace_time::ZoneManagerTemplate']]], - ['createzoneinfobroker_32',['createZoneInfoBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore.html#ad9d47ce2fa12c66c505ceca0ddc333ea',1,'ace_time::ZoneInfoHigh::ZoneInfoStore::createZoneInfoBroker()'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore.html#a59452f6a3cadf83ce8766d97a3689779',1,'ace_time::ZoneInfoLow::ZoneInfoStore::createZoneInfoBroker()'],['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore.html#aa5d803362867bab82fe6f1e45ec03bd2',1,'ace_time::ZoneInfoMid::ZoneInfoStore::createZoneInfoBroker()']]], - ['curr_33',['curr',['../structace__time_1_1extended_1_1TransitionForSecondsTemplate.html#a81b73b44ba58c2840845d69da9b72339',1,'ace_time::extended::TransitionForSecondsTemplate::curr()'],['../structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html#a4878dddfadace1f05b4e479ce6e67eb1',1,'ace_time::extended::TransitionForDateTimeTemplate::curr()']]], - ['currentepochyear_34',['currentEpochYear',['../classace__time_1_1Epoch.html#a80aaa01a43c16af01b2f22e294eabe04',1,'ace_time::Epoch::currentEpochYear()'],['../classace__time_1_1Epoch.html#a53febc728feffb7c30dd295737bfe47e',1,'ace_time::Epoch::currentEpochYear(int16_t year)']]] -]; diff --git a/docs/html/search/all_3.html b/docs/html/search/all_3.html deleted file mode 100644 index 39767b85b..000000000 --- a/docs/html/search/all_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js deleted file mode 100644 index adcbec23f..000000000 --- a/docs/html/search/all_3.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['datestrings_35',['DateStrings',['../classace__time_1_1DateStrings.html',1,'ace_time']]], - ['datetuple_36',['DateTuple',['../structace__time_1_1extended_1_1DateTuple.html',1,'ace_time::extended']]], - ['day_37',['day',['../classace__time_1_1LocalDate.html#aff99fa459db6a5952bdb6c8397e69c56',1,'ace_time::LocalDate::day() const'],['../classace__time_1_1LocalDate.html#a22ed747f8642691e6254b3e17bf43664',1,'ace_time::LocalDate::day(uint8_t day)'],['../classace__time_1_1LocalDateTime.html#a39d5bc65b884fc0ad00e46b96eee71ef',1,'ace_time::LocalDateTime::day() const'],['../classace__time_1_1LocalDateTime.html#a73ebac3c549b8212f20ec9dfd8f15bb3',1,'ace_time::LocalDateTime::day(uint8_t day)'],['../classace__time_1_1OffsetDateTime.html#a128afa44d94db7f8ea6186b090ffe067',1,'ace_time::OffsetDateTime::day() const'],['../classace__time_1_1OffsetDateTime.html#a9de570ed6b93be3be3c1717f0621e8fb',1,'ace_time::OffsetDateTime::day(uint8_t day)'],['../classace__time_1_1ZonedDateTime.html#a951bfb83ff1a03125cc122be6f5da675',1,'ace_time::ZonedDateTime::day() const'],['../classace__time_1_1ZonedDateTime.html#a5ee4d3be47028aec0bed03ba750ef3e9',1,'ace_time::ZonedDateTime::day(uint8_t day)']]], - ['dayofweek_38',['dayOfWeek',['../classace__time_1_1LocalDate.html#a340aaa8f1767def162ccaae8c2d3e2c5',1,'ace_time::LocalDate::dayOfWeek()'],['../classace__time_1_1LocalDateTime.html#ad8f220f1853f17858618968d8d90b900',1,'ace_time::LocalDateTime::dayOfWeek()'],['../classace__time_1_1OffsetDateTime.html#aacf85984e6500a9a393bff6644d2075a',1,'ace_time::OffsetDateTime::dayOfWeek()'],['../classace__time_1_1ZonedDateTime.html#a252e514a2527c07c2715bb960f6c27d9',1,'ace_time::ZonedDateTime::dayOfWeek()']]], - ['dayofweeklongstring_39',['dayOfWeekLongString',['../classace__time_1_1DateStrings.html#a324ee6fb27c9ce6fc16bd95a7ef321bd',1,'ace_time::DateStrings']]], - ['dayofweekshortstring_40',['dayOfWeekShortString',['../classace__time_1_1DateStrings.html#a65785a25074404b4ec3c1c94c8d469da',1,'ace_time::DateStrings']]], - ['daysfrominternalepoch_41',['daysFromInternalEpoch',['../classace__time_1_1Epoch.html#ad1838f91c68786dfd2c85ca0b7f40a11',1,'ace_time::Epoch']]], - ['daysinmonth_42',['daysInMonth',['../classace__time_1_1LocalDate.html#a74ac1c52253c7aabb33efd8ce9b50dc2',1,'ace_time::LocalDate']]], - ['daystocurrentepochfrominternalepoch_43',['daysToCurrentEpochFromInternalEpoch',['../classace__time_1_1Epoch.html#a0e8b61782068792e92ebdcc3fa698167',1,'ace_time::Epoch']]], - ['daystocurrentepochfromunixepoch_44',['daysToCurrentEpochFromUnixEpoch',['../classace__time_1_1Epoch.html#aa2614e5eb4c05b43ff70f6ccfcf3819c',1,'ace_time::Epoch']]], - ['daysuntil_45',['daysUntil',['../classace__time_1_1LocalDate.html#ad02c1b6d8f50ec0ebda2596007697958',1,'ace_time::LocalDate']]], - ['deltacode_46',['deltaCode',['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#ac32c412a926a1e6bf6a63fa6b4d0f5b7',1,'ace_time::ZoneInfoLow::ZoneRule::deltaCode()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#a41a0eabb27f0f03788f9b59475cdb228',1,'ace_time::ZoneInfoLow::ZoneEra::deltaCode()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#a16ffe9dea84791756116565a44f38078',1,'ace_time::ZoneInfoMid::ZoneRule::deltaCode()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#aca994c3e07ca8dd1e87b2d3cb6959712',1,'ace_time::ZoneInfoMid::ZoneEra::deltaCode()']]], - ['deltaminutes_47',['deltaMinutes',['../structace__time_1_1basic_1_1TransitionTemplate.html#a889edac3dd7384799ac2a764e7f06269',1,'ace_time::basic::TransitionTemplate::deltaMinutes()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a7ead27d502940d0d12bc25ba2d4ee3a1',1,'ace_time::ZoneInfoHigh::ZoneRule::deltaMinutes()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a9c7154df482f8037d9567c9b7ebd813a',1,'ace_time::ZoneInfoHigh::ZoneEra::deltaMinutes()']]], - ['deltaseconds_48',['deltaSeconds',['../structace__time_1_1extended_1_1TransitionTemplate.html#a91b58f1cdb5a066de844067d67b88144',1,'ace_time::extended::TransitionTemplate']]], - ['dstoffset_49',['dstOffset',['../classace__time_1_1ZonedExtra.html#a60725bd81847fd45c91080ddf4459b6b',1,'ace_time::ZonedExtra']]], - ['dstoffsetseconds_50',['dstOffsetSeconds',['../classace__time_1_1FindResult.html#a7487628edd6bfc55afc928d9dc69b9c0',1,'ace_time::FindResult']]] -]; diff --git a/docs/html/search/all_4.html b/docs/html/search/all_4.html deleted file mode 100644 index fc40463c8..000000000 --- a/docs/html/search/all_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js deleted file mode 100644 index 1659c77a9..000000000 --- a/docs/html/search/all_4.js +++ /dev/null @@ -1,17 +0,0 @@ -var searchData= -[ - ['epoch_51',['Epoch',['../classace__time_1_1Epoch.html',1,'ace_time']]], - ['epochconverterhinnant_52',['EpochConverterHinnant',['../classace__time_1_1EpochConverterHinnant.html',1,'ace_time']]], - ['epochconverterjulian_53',['EpochConverterJulian',['../classace__time_1_1EpochConverterJulian.html',1,'ace_time']]], - ['epochvalidyearlower_54',['epochValidYearLower',['../classace__time_1_1Epoch.html#a37e9afa71bee0a75f290f33e828d7e50',1,'ace_time::Epoch']]], - ['epochvalidyearupper_55',['epochValidYearUpper',['../classace__time_1_1Epoch.html#a8eba380b62d5d4b38ae170a1a326389a',1,'ace_time::Epoch']]], - ['equals_56',['equals',['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html#acb4f07ec77b476517e273c13ca70771b',1,'ace_time::ZoneInfoHigh::ZoneInfoBroker::equals()'],['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html#a9c14b7402ea7a478b0f0a6eb7c60ba56',1,'ace_time::ZoneInfoMid::ZoneInfoBroker::equals()'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html#a43f3717f9b4213536f688c929535480f',1,'ace_time::ZoneInfoLow::ZoneInfoBroker::equals()'],['../classace__time_1_1ZoneProcessor.html#aa78857884d8b64d4be4b499970d63a70',1,'ace_time::ZoneProcessor::equals()']]], - ['equalszonekey_57',['equalsZoneKey',['../classace__time_1_1BasicZoneProcessorTemplate.html#a4a7bd9b8ea16c00be446907bc25074d8',1,'ace_time::BasicZoneProcessorTemplate::equalsZoneKey()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a868fee73fd64edc2a4468ac1d6c9b832',1,'ace_time::ExtendedZoneProcessorTemplate::equalsZoneKey()'],['../classace__time_1_1ZoneProcessor.html#aa5a25a2082ceed26ff15eb72cd1c5724',1,'ace_time::ZoneProcessor::equalsZoneKey()']]], - ['era_58',['era',['../structace__time_1_1basic_1_1TransitionTemplate.html#ad2a4448c55bea37a735ef327b0794690',1,'ace_time::basic::TransitionTemplate::era()'],['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a9d6db4adfc0b8cfe22e8e9c9786eb584',1,'ace_time::extended::MatchingEraTemplate::era()']]], - ['eras_59',['eras',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#ace8b16e174450c99e3d02c9dcf9589da',1,'ace_time::ZoneInfoHigh::ZoneInfo::eras()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#aacfa1bc82e8c52df845de8df77ab52ad',1,'ace_time::ZoneInfoLow::ZoneInfo::eras()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#a5ebe91bc79b957436bec8be0f58dac30',1,'ace_time::ZoneInfoMid::ZoneInfo::eras()']]], - ['extendedzoneprocessor_60',['ExtendedZoneProcessor',['../classace__time_1_1ExtendedZoneProcessor.html',1,'ace_time']]], - ['extendedzoneprocessorcache_61',['ExtendedZoneProcessorCache',['../classace__time_1_1ExtendedZoneProcessorCache.html',1,'ace_time']]], - ['extendedzoneprocessortemplate_62',['ExtendedZoneProcessorTemplate',['../classace__time_1_1ExtendedZoneProcessorTemplate.html',1,'ace_time::ExtendedZoneProcessorTemplate< D >'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a7df3f32c48319f719f24c1bc97f47953',1,'ace_time::ExtendedZoneProcessorTemplate::ExtendedZoneProcessorTemplate()']]], - ['extendedzoneprocessortemplate_3c_20complete_3a_3ainfo_20_3e_63',['ExtendedZoneProcessorTemplate< complete::Info >',['../classace__time_1_1ExtendedZoneProcessorTemplate.html',1,'ace_time']]], - ['extendedzoneprocessortemplate_3c_20extended_3a_3ainfo_20_3e_64',['ExtendedZoneProcessorTemplate< extended::Info >',['../classace__time_1_1ExtendedZoneProcessorTemplate.html',1,'ace_time']]] -]; diff --git a/docs/html/search/all_5.html b/docs/html/search/all_5.html deleted file mode 100644 index 9dd9344b0..000000000 --- a/docs/html/search/all_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js deleted file mode 100644 index 4cd345156..000000000 --- a/docs/html/search/all_5.js +++ /dev/null @@ -1,41 +0,0 @@ -var searchData= -[ - ['fillindexes_65',['fillIndexes',['../classace__time_1_1ZoneSorterByName.html#abd2459d83e1b1bfe024abd1d4e821b15',1,'ace_time::ZoneSorterByName::fillIndexes()'],['../classace__time_1_1ZoneSorterByOffsetAndName.html#a6aa614c7e97d1740606909317205a620',1,'ace_time::ZoneSorterByOffsetAndName::fillIndexes()']]], - ['findbyepochseconds_66',['findByEpochSeconds',['../classace__time_1_1BasicZoneProcessorTemplate.html#a0627f5f54422c35f6b9af61ab0f5f7f7',1,'ace_time::BasicZoneProcessorTemplate::findByEpochSeconds()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a3c4e4a0b5a79643affefc890ac3f9bca',1,'ace_time::ExtendedZoneProcessorTemplate::findByEpochSeconds()'],['../classace__time_1_1ZoneProcessor.html#a1bbfcaab0259f0195496184181a7119a',1,'ace_time::ZoneProcessor::findByEpochSeconds()']]], - ['findbylocaldatetime_67',['findByLocalDateTime',['../classace__time_1_1BasicZoneProcessorTemplate.html#a5002bbf442b6fc6f1956d5903b3ad948',1,'ace_time::BasicZoneProcessorTemplate::findByLocalDateTime()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#af1a9e3f9aa5cbe99e2f4fc9cd876ab87',1,'ace_time::ExtendedZoneProcessorTemplate::findByLocalDateTime()'],['../classace__time_1_1ZoneProcessor.html#a9dbdc5b1a6a760e37470142dc814ae92',1,'ace_time::ZoneProcessor::findByLocalDateTime()']]], - ['findindexforid_68',['findIndexForId',['../classace__time_1_1ZoneRegistrarTemplate.html#a31dc2a7bd05a580d2b9cd63e54a2b209',1,'ace_time::ZoneRegistrarTemplate']]], - ['findindexforidbinary_69',['findIndexForIdBinary',['../classace__time_1_1ZoneRegistrarTemplate.html#a14482ef50da79403af4d5e858f17f0c6',1,'ace_time::ZoneRegistrarTemplate']]], - ['findindexforidlinear_70',['findIndexForIdLinear',['../classace__time_1_1ZoneRegistrarTemplate.html#aac0c1511da0aa580ce5f2b5f8525a7b0',1,'ace_time::ZoneRegistrarTemplate']]], - ['findindexforname_71',['findIndexForName',['../classace__time_1_1ZoneRegistrarTemplate.html#a870407e2a7d22fea5c0d3eb2bef11e24',1,'ace_time::ZoneRegistrarTemplate']]], - ['findresult_72',['FindResult',['../classace__time_1_1FindResult.html',1,'ace_time']]], - ['findtransitionfordatetime_73',['findTransitionForDateTime',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a9beded3f4f9c61ba3edda2cb73f44513',1,'ace_time::extended::TransitionStorageTemplate']]], - ['findtransitionforseconds_74',['findTransitionForSeconds',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#ae905c24fb84c15d83d11465d9a771213',1,'ace_time::extended::TransitionStorageTemplate']]], - ['fold_75',['fold',['../structace__time_1_1extended_1_1TransitionForSecondsTemplate.html#af4bfd7662823997a89318f6f924f9dad',1,'ace_time::extended::TransitionForSecondsTemplate::fold()'],['../classace__time_1_1FindResult.html#a1d1d9075a9afd269a7da33acc640a9ab',1,'ace_time::FindResult::fold()'],['../classace__time_1_1LocalDateTime.html#a6d082508f73c7a9dbca81c0a2287eb40',1,'ace_time::LocalDateTime::fold() const'],['../classace__time_1_1LocalDateTime.html#a282ea1a664060ba70cc30dfbbfdfc3c4',1,'ace_time::LocalDateTime::fold(uint8_t fold)'],['../classace__time_1_1LocalTime.html#a2ce63c8501efc8026f722c43935c3d2d',1,'ace_time::LocalTime::fold() const'],['../classace__time_1_1LocalTime.html#af21f20be4d4194d909e49bdf3a58677d',1,'ace_time::LocalTime::fold(uint8_t fold)'],['../classace__time_1_1OffsetDateTime.html#a7664a39b4b4227657497163d25965edc',1,'ace_time::OffsetDateTime::fold() const'],['../classace__time_1_1OffsetDateTime.html#ad886ec1066627dc8826ebef799a4b282',1,'ace_time::OffsetDateTime::fold(uint8_t fold)'],['../classace__time_1_1ZonedDateTime.html#a4e5c076c20cd25aae740ae0036c846c9',1,'ace_time::ZonedDateTime::fold() const'],['../classace__time_1_1ZonedDateTime.html#a0d80579bc7eafd9b0cff8ad9c3792c29',1,'ace_time::ZonedDateTime::fold(uint8_t fold)']]], - ['forcomponents_76',['forComponents',['../classace__time_1_1LocalDateTime.html#a2fc60cd721cbfe128e4feec378bb9be0',1,'ace_time::LocalDateTime::forComponents()'],['../classace__time_1_1ZonedExtra.html#a563b8f0566366549ce22d4ece3608208',1,'ace_time::ZonedExtra::forComponents()'],['../classace__time_1_1ZonedDateTime.html#a00ab2ef530c51e068b3b67dc91a69ccf',1,'ace_time::ZonedDateTime::forComponents()'],['../classace__time_1_1LocalTime.html#a200a5eae3db7be400000414d058be248',1,'ace_time::LocalTime::forComponents()'],['../classace__time_1_1LocalDate.html#a03470885c11a33172e869825327b3058',1,'ace_time::LocalDate::forComponents()'],['../classace__time_1_1OffsetDateTime.html#afcc18763dd38086c17221897d45f9b2c',1,'ace_time::OffsetDateTime::forComponents()']]], - ['fordatestring_77',['forDateString',['../classace__time_1_1LocalDate.html#a1cb1f5070d7141136327b544560e8ebe',1,'ace_time::LocalDate::forDateString()'],['../classace__time_1_1LocalDateTime.html#a7009318e9e3934c7ec480442a6ea0a4c',1,'ace_time::LocalDateTime::forDateString(const char *dateString)'],['../classace__time_1_1LocalDateTime.html#a165bb7c96c7936fe23ae1032b7f1217a',1,'ace_time::LocalDateTime::forDateString(const __FlashStringHelper *dateString)'],['../classace__time_1_1OffsetDateTime.html#aa9a42a7edde026280d0a31b1a3208f11',1,'ace_time::OffsetDateTime::forDateString(const char *dateString)'],['../classace__time_1_1OffsetDateTime.html#a8c903f558a8ad067e415e79fa3a204e8',1,'ace_time::OffsetDateTime::forDateString(const __FlashStringHelper *dateString)'],['../classace__time_1_1ZonedDateTime.html#af1a0e9051776bade2c00cbaf1c39dd97',1,'ace_time::ZonedDateTime::forDateString(const char *dateString)'],['../classace__time_1_1ZonedDateTime.html#a4dec313e98aba074b99efcdc22be6333',1,'ace_time::ZonedDateTime::forDateString(const __FlashStringHelper *dateString)']]], - ['fordatestringchainable_78',['forDateStringChainable',['../classace__time_1_1OffsetDateTime.html#a21dffc4999ae12be1d4fc30d5c66dd27',1,'ace_time::OffsetDateTime::forDateStringChainable()'],['../classace__time_1_1LocalDateTime.html#ad14a21540e27fad838c798ede040d480',1,'ace_time::LocalDateTime::forDateStringChainable()'],['../classace__time_1_1LocalDate.html#ae2cee5a47f8b7d8601b6b7f5a9b61477',1,'ace_time::LocalDate::forDateStringChainable(const char *&dateString)']]], - ['forepochdays_79',['forEpochDays',['../classace__time_1_1LocalDate.html#ad3fffbf6406717f246b7331324d9c903',1,'ace_time::LocalDate']]], - ['forepochseconds_80',['forEpochSeconds',['../classace__time_1_1LocalDate.html#ab04f803683ec7c9ae5d4037efb297a77',1,'ace_time::LocalDate::forEpochSeconds()'],['../classace__time_1_1LocalDateTime.html#a22d1cb9b735e129f6a495f21d0c408e9',1,'ace_time::LocalDateTime::forEpochSeconds()'],['../classace__time_1_1OffsetDateTime.html#ab9a8f6f8046721947f6922033cc0504f',1,'ace_time::OffsetDateTime::forEpochSeconds()'],['../classace__time_1_1ZonedDateTime.html#a9c02e18eba7ef8af1e41d4ecfe727bee',1,'ace_time::ZonedDateTime::forEpochSeconds()'],['../classace__time_1_1ZonedExtra.html#aa0408666e47fd563a3b4c754bd8e98da',1,'ace_time::ZonedExtra::forEpochSeconds()']]], - ['forerror_81',['forError',['../classace__time_1_1LocalDate.html#a14037a4c8d2eb68f35cbb95697d95297',1,'ace_time::LocalDate::forError()'],['../classace__time_1_1ZonedExtra.html#a189d79c0bb9254bcef61d6625fe590bb',1,'ace_time::ZonedExtra::forError()'],['../classace__time_1_1ZonedDateTime.html#a9ad7a24801f799498c1c51c33fc5c971',1,'ace_time::ZonedDateTime::forError()'],['../classace__time_1_1TimeZone.html#aa145ae518fa6bfbcd9c712a7047d510d',1,'ace_time::TimeZone::forError()'],['../classace__time_1_1TimePeriod.html#a1a712b883579f26ea7afc158205e289b',1,'ace_time::TimePeriod::forError()'],['../classace__time_1_1OffsetDateTime.html#a7212a3a5c48a938f10cbebbc41d5deeb',1,'ace_time::OffsetDateTime::forError()'],['../classace__time_1_1TimeOffset.html#a806d24189da02dd31a7570b0dcddc542',1,'ace_time::TimeOffset::forError()'],['../classace__time_1_1LocalDateTime.html#a5e238445e0b676f3a166e5bdc3794aa9',1,'ace_time::LocalDateTime::forError()'],['../classace__time_1_1LocalTime.html#a8247076d11be2b794b40930854f5739e',1,'ace_time::LocalTime::forError()']]], - ['forhourminute_82',['forHourMinute',['../classace__time_1_1TimeOffset.html#aeb43c8af6b3b71f1bbabdfb58be62eb7',1,'ace_time::TimeOffset::forHourMinute()'],['../classace__time_1_1TimeZone.html#af2f141b5117d795d055871ebbe160ae9',1,'ace_time::TimeZone::forHourMinute()']]], - ['forhourminutesecond_83',['forHourMinuteSecond',['../classace__time_1_1TimeOffset.html#ac1fe84df3eeee8d704ccf3b10fdad779',1,'ace_time::TimeOffset']]], - ['forhours_84',['forHours',['../classace__time_1_1TimeOffset.html#ad1aebe35229af3a3739a6ba469007b69',1,'ace_time::TimeOffset::forHours()'],['../classace__time_1_1TimeZone.html#a76e6552e24c32c39dfd699b58cbdbd78',1,'ace_time::TimeZone::forHours()']]], - ['forlocaldatetime_85',['forLocalDateTime',['../classace__time_1_1ZonedDateTime.html#a2e2f75c157fd83d613cd9268f88fdc8f',1,'ace_time::ZonedDateTime::forLocalDateTime()'],['../classace__time_1_1ZonedExtra.html#a3c6722af61fe738c448bf82d250b52c3',1,'ace_time::ZonedExtra::forLocalDateTime()']]], - ['forlocaldatetimeandoffset_86',['forLocalDateTimeAndOffset',['../classace__time_1_1OffsetDateTime.html#a671148a5714121eb9b96ddd88f1fe76d',1,'ace_time::OffsetDateTime']]], - ['format_87',['format',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a277bd14d69c2996fba4f7d4df8e85a86',1,'ace_time::ZoneInfoHigh::ZoneEra::format()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#ab712d3b8b91221dd2e182e0bd6d4aed2',1,'ace_time::ZoneInfoMid::ZoneEra::format()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#ae7693bf9ddce8400b18585715fe4d796',1,'ace_time::ZoneInfoLow::ZoneEra::format()']]], - ['forminutes_88',['forMinutes',['../classace__time_1_1TimeOffset.html#aeb8480a999c6eba58304d02ac32133d2',1,'ace_time::TimeOffset::forMinutes()'],['../classace__time_1_1TimeZone.html#a964cbd051a7261af0a0c792024199d2d',1,'ace_time::TimeZone::forMinutes()']]], - ['foroffsetstring_89',['forOffsetString',['../classace__time_1_1TimeOffset.html#a432ebcdc40e78c55c6091288ea3ad0eb',1,'ace_time::TimeOffset']]], - ['foroffsetstringchainable_90',['forOffsetStringChainable',['../classace__time_1_1TimeOffset.html#af20209f3ecb677c792721f2a9d4f527e',1,'ace_time::TimeOffset']]], - ['forseconds_91',['forSeconds',['../classace__time_1_1LocalTime.html#add45f59f01066a9551f33bab114df263',1,'ace_time::LocalTime::forSeconds()'],['../classace__time_1_1TimeOffset.html#aa898cf29f39d787acf60cf1424e39d48',1,'ace_time::TimeOffset::forSeconds()']]], - ['fortimeoffset_92',['forTimeOffset',['../classace__time_1_1TimeZone.html#ae12df54ad1a75a6b0f1c24ff71af4bb9',1,'ace_time::TimeZone']]], - ['fortimestring_93',['forTimeString',['../classace__time_1_1LocalTime.html#a88a75981aa0f2b612e43fe916a7772ce',1,'ace_time::LocalTime']]], - ['fortimestringchainable_94',['forTimeStringChainable',['../classace__time_1_1LocalTime.html#a61b5c210656837d812bfc75e7eb3e7c5',1,'ace_time::LocalTime']]], - ['forunixdays_95',['forUnixDays',['../classace__time_1_1LocalDate.html#ac79dde1baaf4f283cea2766a6985fb95',1,'ace_time::LocalDate']]], - ['forunixseconds64_96',['forUnixSeconds64',['../classace__time_1_1LocalDate.html#a21925fbcffdaaf85918aafcc4ee9547b',1,'ace_time::LocalDate::forUnixSeconds64()'],['../classace__time_1_1LocalDateTime.html#a56e5e866f3597d203bc4f0971d56b849',1,'ace_time::LocalDateTime::forUnixSeconds64()'],['../classace__time_1_1OffsetDateTime.html#a04825a66920ce8e9ab826d007e6a7f1d',1,'ace_time::OffsetDateTime::forUnixSeconds64()'],['../classace__time_1_1ZonedDateTime.html#a95b4ea8234de38744d3962291fb27ecd',1,'ace_time::ZonedDateTime::forUnixSeconds64()']]], - ['forutc_97',['forUtc',['../classace__time_1_1TimeZone.html#a6e0d4b2231806e3d42ed0191fe6db13a',1,'ace_time::TimeZone']]], - ['forzoneinfo_98',['forZoneInfo',['../classace__time_1_1TimeZone.html#a07eb07b41e832f634f8a9190848601c0',1,'ace_time::TimeZone::forZoneInfo(const complete::Info::ZoneInfo *zoneInfo, CompleteZoneProcessor *zoneProcessor)'],['../classace__time_1_1TimeZone.html#a523ab6ddb8247b32f4189103ae81b9ac',1,'ace_time::TimeZone::forZoneInfo(const extended::Info::ZoneInfo *zoneInfo, ExtendedZoneProcessor *zoneProcessor)'],['../classace__time_1_1TimeZone.html#a3df63f781343b52738aac8bf9e1ed4ce',1,'ace_time::TimeZone::forZoneInfo(const basic::Info::ZoneInfo *zoneInfo, BasicZoneProcessor *zoneProcessor)']]], - ['forzonekey_99',['forZoneKey',['../classace__time_1_1TimeZone.html#aa6aeb15831cac0ebd92996b5e4ab2813',1,'ace_time::TimeZone']]], - ['fragments_100',['fragments',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a9612dc12da8639848220500a28b9f668',1,'ace_time::ZoneInfoHigh::ZoneContext::fragments()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ae1fa724d8ad43635df75a987ae0025f8',1,'ace_time::ZoneInfoLow::ZoneContext::fragments()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a7a5c3508ef60b73a9496bc84aeddabec',1,'ace_time::ZoneInfoMid::ZoneContext::fragments()']]], - ['fromepochdays_101',['fromEpochDays',['../classace__time_1_1EpochConverterHinnant.html#ace2afb44c72b96bed22426f7c1d4d83d',1,'ace_time::EpochConverterHinnant::fromEpochDays()'],['../classace__time_1_1EpochConverterJulian.html#ae9461207f9cf0f8803bd4ae02697be5e',1,'ace_time::EpochConverterJulian::fromEpochDays()']]], - ['fromyear_102',['fromYear',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a45752e8dd5801be15724b0189d67e86f',1,'ace_time::ZoneInfoHigh::ZoneRule::fromYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#a25fcfd64afb5308f29c1ed520ce24add',1,'ace_time::ZoneInfoLow::ZoneRule::fromYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#a329004d671e405ea8dbe8203b4585200',1,'ace_time::ZoneInfoMid::ZoneRule::fromYear()']]] -]; diff --git a/docs/html/search/all_6.html b/docs/html/search/all_6.html deleted file mode 100644 index f1e516d75..000000000 --- a/docs/html/search/all_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js deleted file mode 100644 index a8ccec958..000000000 --- a/docs/html/search/all_6.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['getallocsize_103',['getAllocSize',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a2b3ddc62af0e1885c981df1d8e364fca',1,'ace_time::extended::TransitionStorageTemplate']]], - ['getdstoffset_104',['getDstOffset',['../classace__time_1_1TimeZone.html#aab84a1543135827889c736eb96298fb4',1,'ace_time::TimeZone']]], - ['getfreeagent_105',['getFreeAgent',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a1228426556bcb6aebb75a6a56698b354',1,'ace_time::extended::TransitionStorageTemplate']]], - ['getoffsetdatetime_106',['getOffsetDateTime',['../classace__time_1_1TimeZone.html#a542c6ccaf3b95419ef94a3709bee9197',1,'ace_time::TimeZone::getOffsetDateTime(const LocalDateTime &ldt) const'],['../classace__time_1_1TimeZone.html#a61726ae31e9bb7d73b9d69475e40eb70',1,'ace_time::TimeZone::getOffsetDateTime(acetime_t epochSeconds) const']]], - ['getprior_107',['getPrior',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a7e627a280a08709019501bd1a8dfcc13',1,'ace_time::extended::TransitionStorageTemplate']]], - ['getstdoffset_108',['getStdOffset',['../classace__time_1_1TimeZone.html#af4f490577af626bb2800ad62ac861668',1,'ace_time::TimeZone']]], - ['gettransitionallocsize_109',['getTransitionAllocSize',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a4cd14f4f288745225bfc33e7b11fbd32',1,'ace_time::ExtendedZoneProcessorTemplate']]], - ['gettype_110',['getType',['../classace__time_1_1TimeZone.html#a83e37a197999c7c9890fde96b741f6c6',1,'ace_time::TimeZone::getType()'],['../classace__time_1_1ZoneProcessor.html#a059a9ffeab7e8885e6abe0e0abeb9bde',1,'ace_time::ZoneProcessor::getType()']]], - ['getzonedextra_111',['getZonedExtra',['../classace__time_1_1TimeZone.html#a0095191671e031bff8e7dfdc7fd47535',1,'ace_time::TimeZone::getZonedExtra(acetime_t epochSeconds) const'],['../classace__time_1_1TimeZone.html#aeccf13333f462bce601d9b887e30054a',1,'ace_time::TimeZone::getZonedExtra(const LocalDateTime &ldt) const']]], - ['getzoneforindex_112',['getZoneForIndex',['../classace__time_1_1ZoneManagerTemplate.html#a452b98580e65af1068286094be42e040',1,'ace_time::ZoneManagerTemplate']]], - ['getzoneid_113',['getZoneId',['../classace__time_1_1BasicZoneProcessorTemplate.html#a78ec81b3d61ed37c6839cbe38325af0b',1,'ace_time::BasicZoneProcessorTemplate::getZoneId()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ad4a60d9cebddd24900f03df5325896c0',1,'ace_time::ExtendedZoneProcessorTemplate::getZoneId()'],['../classace__time_1_1TimeZone.html#a308954a7d1e74a155a821c3261a287ec',1,'ace_time::TimeZone::getZoneId()'],['../classace__time_1_1ZoneProcessor.html#a76f48e7b38f91503b1e522bee11dbd49',1,'ace_time::ZoneProcessor::getZoneId()']]], - ['getzoneinfoforid_114',['getZoneInfoForId',['../classace__time_1_1ZoneRegistrarTemplate.html#a9971c5693362aefc17416b3007a31f63',1,'ace_time::ZoneRegistrarTemplate']]], - ['getzoneinfoforindex_115',['getZoneInfoForIndex',['../classace__time_1_1ZoneRegistrarTemplate.html#aae7f0e917313a6e9f7cd2305a8c81873',1,'ace_time::ZoneRegistrarTemplate']]], - ['getzoneinfoforname_116',['getZoneInfoForName',['../classace__time_1_1ZoneRegistrarTemplate.html#a36c2dcd686aa527161b089d73d93a695',1,'ace_time::ZoneRegistrarTemplate']]], - ['getzoneprocessor_117',['getZoneProcessor',['../classace__time_1_1ZoneManagerTemplate.html#a2dc901f8974c65837645a2a6e45212d4',1,'ace_time::ZoneManagerTemplate::getZoneProcessor()'],['../classace__time_1_1ZoneProcessorCacheBaseTemplate.html#a0a49442da903f5d1da91cb1aeb003d90',1,'ace_time::ZoneProcessorCacheBaseTemplate::getZoneProcessor(uintptr_t zoneKey)']]], - ['getzoneprocessoratindex_118',['getZoneProcessorAtIndex',['../classace__time_1_1ZoneProcessorCacheBaseTemplate.html#a7e3d26ffc8d6b12e50c4edaeb4602e0a',1,'ace_time::ZoneProcessorCacheBaseTemplate']]] -]; diff --git a/docs/html/search/all_7.html b/docs/html/search/all_7.html deleted file mode 100644 index 8ddbf6c8e..000000000 --- a/docs/html/search/all_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js deleted file mode 100644 index d0bcbd4bd..000000000 --- a/docs/html/search/all_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['hour_119',['hour',['../classace__time_1_1LocalDateTime.html#acf9fb3d8589c0aa1c97a96b4a681b9e0',1,'ace_time::LocalDateTime::hour() const'],['../classace__time_1_1LocalDateTime.html#a1cd42a8deab046170d4d9684dfc0f096',1,'ace_time::LocalDateTime::hour(uint8_t hour)'],['../classace__time_1_1LocalTime.html#acfef7fa36f67066b73fbc62e6cb52f54',1,'ace_time::LocalTime::hour() const'],['../classace__time_1_1LocalTime.html#a70b876a164024d4405034813354cc532',1,'ace_time::LocalTime::hour(uint8_t hour)'],['../classace__time_1_1OffsetDateTime.html#a294513b3f4f1a438e1272c8cfe74f5f7',1,'ace_time::OffsetDateTime::hour() const'],['../classace__time_1_1OffsetDateTime.html#a802e21f048e37b1042b7626d216d58c9',1,'ace_time::OffsetDateTime::hour(uint8_t hour)'],['../classace__time_1_1TimePeriod.html#ac107f2508aed6d9e0478dd9ed4f82253',1,'ace_time::TimePeriod::hour() const'],['../classace__time_1_1TimePeriod.html#a322a0c18a48938c2d69befb9b918e21e',1,'ace_time::TimePeriod::hour(uint8_t hour)'],['../classace__time_1_1ZonedDateTime.html#a0b9b68dede5df8abe822155a8a10e914',1,'ace_time::ZonedDateTime::hour() const'],['../classace__time_1_1ZonedDateTime.html#ac0cd8566ebf355e33ca9a169a08adaf8',1,'ace_time::ZonedDateTime::hour(uint8_t hour)']]] -]; diff --git a/docs/html/search/all_8.html b/docs/html/search/all_8.html deleted file mode 100644 index 83c55ae22..000000000 --- a/docs/html/search/all_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js deleted file mode 100644 index ac843bf1b..000000000 --- a/docs/html/search/all_8.js +++ /dev/null @@ -1,26 +0,0 @@ -var searchData= -[ - ['increment15minutes_120',['increment15Minutes',['../time__offset__mutation_8h.html#af818e1b767abecf61eff504d8bb57487',1,'ace_time::time_offset_mutation']]], - ['incrementday_121',['incrementDay',['../zoned__date__time__mutation_8h.html#a089e5d1a4afbd9352bf48f71220e8eb0',1,'ace_time::zoned_date_time_mutation::incrementDay()'],['../offset__date__time__mutation_8h.html#a46621955cb808342ce03760c5dd60ec7',1,'ace_time::offset_date_time_mutation::incrementDay()']]], - ['incrementhour_122',['incrementHour',['../zoned__date__time__mutation_8h.html#a534e666127ea82f08724b322e7ffb6f6',1,'ace_time::zoned_date_time_mutation::incrementHour()'],['../time__period__mutation_8h.html#a45350b2771d421d868b8faf76ab375dc',1,'ace_time::time_period_mutation::incrementHour(TimePeriod &period)'],['../time__period__mutation_8h.html#afd97b6d30998f498072c6822aee232bb',1,'ace_time::time_period_mutation::incrementHour(TimePeriod &period, uint8_t limit)'],['../offset__date__time__mutation_8h.html#a82c0f2cdd6cb38633e573a5bed5c7e89',1,'ace_time::offset_date_time_mutation::incrementHour()']]], - ['incrementminute_123',['incrementMinute',['../zoned__date__time__mutation_8h.html#a674bb7c34675092900fabccf281e72e8',1,'ace_time::zoned_date_time_mutation::incrementMinute()'],['../time__period__mutation_8h.html#acd7971ab35bd01b010d90681df4b7891',1,'ace_time::time_period_mutation::incrementMinute()'],['../offset__date__time__mutation_8h.html#af44183580d913d0d8e1cac00e0145bde',1,'ace_time::offset_date_time_mutation::incrementMinute()']]], - ['incrementmonth_124',['incrementMonth',['../zoned__date__time__mutation_8h.html#af28ed8f5cad3d55963acb052ca1c9af2',1,'ace_time::zoned_date_time_mutation::incrementMonth()'],['../offset__date__time__mutation_8h.html#a0d9ee7f1ce28e33bb8aa9879e11cfbda',1,'ace_time::offset_date_time_mutation::incrementMonth()']]], - ['incrementyear_125',['incrementYear',['../zoned__date__time__mutation_8h.html#a22b43d8b002dc3dafb807923187ad5a4',1,'ace_time::zoned_date_time_mutation::incrementYear()'],['../offset__date__time__mutation_8h.html#a3eb6b186402c4e7bcc85b3c99de47608',1,'ace_time::offset_date_time_mutation::incrementYear()']]], - ['indexforzoneid_126',['indexForZoneId',['../classace__time_1_1ZoneManagerTemplate.html#a3842a30cef2e45959acdf71940ed7797',1,'ace_time::ZoneManagerTemplate']]], - ['indexforzonename_127',['indexForZoneName',['../classace__time_1_1ZoneManagerTemplate.html#a00c6224407d3eb343665ac4a476cbc9d',1,'ace_time::ZoneManagerTemplate']]], - ['init_128',['init',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#ae9c21b618b0a959e57d39744ea9a64e3',1,'ace_time::extended::TransitionStorageTemplate']]], - ['initforepochseconds_129',['initForEpochSeconds',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ab702493c63607bd61a4382bdf783d7e1',1,'ace_time::ExtendedZoneProcessorTemplate']]], - ['initforyear_130',['initForYear',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#af55cf089abeaada237ac833f8ed3e7a7',1,'ace_time::ExtendedZoneProcessorTemplate']]], - ['inmonth_131',['inMonth',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#afc108fbee72e1bc1be72e0d7b9f75af6',1,'ace_time::ZoneInfoHigh::ZoneRule::inMonth()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#aebd53bb79a3d5b07d52a82ddb0c45fb3',1,'ace_time::ZoneInfoLow::ZoneRule::inMonth()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#a383946b2656b2b7861b8c8f2a47b0e65',1,'ace_time::ZoneInfoMid::ZoneRule::inMonth()']]], - ['isdst_132',['isDst',['../classace__time_1_1TimeZone.html#adde333bb4bb1b62f423f168dafecf2d7',1,'ace_time::TimeZone']]], - ['iserror_133',['isError',['../classace__time_1_1TimeZone.html#aad6557e555e5dd6ac2c14342a0bb3abe',1,'ace_time::TimeZone::isError()'],['../classace__time_1_1LocalDate.html#a0c718d4fea5ad37c1263766b44b532ff',1,'ace_time::LocalDate::isError()'],['../classace__time_1_1LocalDateTime.html#a42ad78d8e8c81c09494cdf4f0e6de123',1,'ace_time::LocalDateTime::isError()'],['../classace__time_1_1LocalTime.html#aef4912030e6b9a2eaa77fe5ae56f9bec',1,'ace_time::LocalTime::isError()'],['../classace__time_1_1OffsetDateTime.html#a2629bb76f05aaf1809e979ddf520238a',1,'ace_time::OffsetDateTime::isError()'],['../classace__time_1_1TimeOffset.html#af309e727af82a3cb041e6b72ed702b18',1,'ace_time::TimeOffset::isError()'],['../classace__time_1_1TimePeriod.html#af1ab3f561ce48a6b1983c2c75573631f',1,'ace_time::TimePeriod::isError()'],['../classace__time_1_1ZonedDateTime.html#a56d29157131aaaed23cbcfccfa664192',1,'ace_time::ZonedDateTime::isError()'],['../classace__time_1_1ZonedExtra.html#ab621ebc6e2690f5f6c5fc11ef6116a91',1,'ace_time::ZonedExtra::isError()']]], - ['isfilled_134',['isFilled',['../classace__time_1_1ZoneProcessor.html#a661878a49493ba4a45cb6120a1bd0319',1,'ace_time::ZoneProcessor']]], - ['isleapyear_135',['isLeapYear',['../classace__time_1_1LocalDate.html#a0738e87ef5b0cb1da934e831a0a62d7e',1,'ace_time::LocalDate']]], - ['islink_136',['isLink',['../classace__time_1_1ZoneProcessor.html#abc0ad2c3b5ebaaea73ee7376870464f4',1,'ace_time::ZoneProcessor::isLink()'],['../classace__time_1_1TimeZone.html#a85e49f3edc49c334310dede4b12233c2',1,'ace_time::TimeZone::isLink()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#afeaabf2e36c2ef84c8a48c4903f2a20f',1,'ace_time::ExtendedZoneProcessorTemplate::isLink()'],['../classace__time_1_1BasicZoneProcessorTemplate.html#aca1b11ab04c074c65b692b4edc669f90',1,'ace_time::BasicZoneProcessorTemplate::isLink()']]], - ['isnull_137',['isNull',['../classace__time_1_1ZoneTemplate.html#a70e01b502f1d132ce8517c803241883a',1,'ace_time::ZoneTemplate']]], - ['issorted_138',['isSorted',['../classace__time_1_1ZoneRegistrarTemplate.html#ad1e4878ef6ddb4452f4a8580380207b4',1,'ace_time::ZoneRegistrarTemplate']]], - ['isutc_139',['isUtc',['../classace__time_1_1TimeZone.html#a6d6ff4bcb32d008473c7bd34123e43d8',1,'ace_time::TimeZone']]], - ['isvalidprior_140',['isValidPrior',['../structace__time_1_1extended_1_1TransitionTemplate.html#abf536e5f25c9c8bddfeb98414191060c',1,'ace_time::extended::TransitionTemplate']]], - ['isyearvalid_141',['isYearValid',['../classace__time_1_1LocalDate.html#a8002184b77f5c589146cb610ec156165',1,'ace_time::LocalDate']]], - ['iszero_142',['isZero',['../classace__time_1_1TimeOffset.html#a562e68d6ceb65d4b7ddf151c4220da32',1,'ace_time::TimeOffset']]] -]; diff --git a/docs/html/search/all_9.html b/docs/html/search/all_9.html deleted file mode 100644 index 1e263c134..000000000 --- a/docs/html/search/all_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js deleted file mode 100644 index 568bae9af..000000000 --- a/docs/html/search/all_9.js +++ /dev/null @@ -1,49 +0,0 @@ -var searchData= -[ - ['kabbrevsize_143',['kAbbrevSize',['../classace__time_1_1ZonedExtra.html#a44d71e62b17e309aadd8a38494398a20',1,'ace_time::ZonedExtra::kAbbrevSize()'],['../BrokerCommon_8h.html#af456517bffcd8ba8b36c388f8ee44a2a',1,'ace_time::zoneinfo::kAbbrevSize()'],['../common_8h.html#a6a6eb8192e8b8e65471d87af858b9e6b',1,'ace_time::kAbbrevSize()']]], - ['kbinarysearchthreshold_144',['kBinarySearchThreshold',['../classace__time_1_1ZoneRegistrarTemplate.html#ad09ae0403a1491d5fcd0c4ee8bc7f42c',1,'ace_time::ZoneRegistrarTemplate']]], - ['kbuffersize_145',['kBufferSize',['../classace__time_1_1DateStrings.html#aedbfa043f6da042c40fed6b2beb09588',1,'ace_time::DateStrings']]], - ['kdaystointernalepochfromjulianepoch_146',['kDaysToInternalEpochFromJulianEpoch',['../classace__time_1_1EpochConverterJulian.html#a790f54446cc82a53d3e58004582f319a',1,'ace_time::EpochConverterJulian']]], - ['kdaystointernalepochfromunixepoch_147',['kDaysToInternalEpochFromUnixEpoch',['../classace__time_1_1EpochConverterJulian.html#ab238f1dc23fe9172096f8210488553d9',1,'ace_time::EpochConverterJulian::kDaysToInternalEpochFromUnixEpoch()'],['../classace__time_1_1EpochConverterHinnant.html#a4459afc3911348bfef313b57a4261cde',1,'ace_time::EpochConverterHinnant::kDaysToInternalEpochFromUnixEpoch()']]], - ['kfriday_148',['kFriday',['../classace__time_1_1LocalDate.html#a36d3a3480dd894310c6b558cc8efc357',1,'ace_time::LocalDate']]], - ['kinternalepochyear_149',['kInternalEpochYear',['../classace__time_1_1EpochConverterJulian.html#ace5207e9e957e78b3c366ed927478557',1,'ace_time::EpochConverterJulian::kInternalEpochYear()'],['../classace__time_1_1EpochConverterHinnant.html#af28cc4365ed03086237a9f0059b4c9af',1,'ace_time::EpochConverterHinnant::kInternalEpochYear()']]], - ['kinvalidepochdays_150',['kInvalidEpochDays',['../classace__time_1_1LocalDate.html#a0c4a6cdccb2dff6df30f9804374ea68d',1,'ace_time::LocalDate']]], - ['kinvalidepochseconds_151',['kInvalidEpochSeconds',['../classace__time_1_1LocalDate.html#a9c90b1abe7223c1b585bd8f8f89f0516',1,'ace_time::LocalDate']]], - ['kinvalidindex_152',['kInvalidIndex',['../classace__time_1_1ZoneManager.html#a7977d6c1471fd2e889a518a47fa3f2a2',1,'ace_time::ZoneManager::kInvalidIndex()'],['../classace__time_1_1ZoneRegistrarTemplate.html#a68cdedec42a58cda38f5d7898c969274',1,'ace_time::ZoneRegistrarTemplate::kInvalidIndex()']]], - ['kinvalidperiodseconds_153',['kInvalidPeriodSeconds',['../classace__time_1_1TimePeriod.html#a06fc9b2e53f1cb9f73a6eaf8825affb7',1,'ace_time::TimePeriod']]], - ['kinvalidseconds_154',['kInvalidSeconds',['../classace__time_1_1LocalTime.html#a0524d4d069e8fe7f604757160994f276',1,'ace_time::LocalTime']]], - ['kinvalidunixseconds64_155',['kInvalidUnixSeconds64',['../classace__time_1_1LocalDate.html#a2fbdac2dbc536dc1d44ab3cf0602de7a',1,'ace_time::LocalDate']]], - ['kinvalidyear_156',['kInvalidYear',['../classace__time_1_1LocalDate.html#ad35cfa503eea48ee0d0c3bb3c4b01180',1,'ace_time::LocalDate::kInvalidYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a96bb33fdd8b0554af20675f9a8e5199b',1,'ace_time::ZoneInfoLow::ZoneContext::kInvalidYear()']]], - ['kinvalidyeartiny_157',['kInvalidYearTiny',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a332689839203225080fbe8b8b2159b70',1,'ace_time::ZoneInfoLow::ZoneContext']]], - ['kmaxepochseconds_158',['kMaxEpochSeconds',['../classace__time_1_1LocalDate.html#aa481f6facbd9dfef0ac9a972cdc8286f',1,'ace_time::LocalDate']]], - ['kmaxperiodseconds_159',['kMaxPeriodSeconds',['../classace__time_1_1TimePeriod.html#a1f8bbf6bc456b88388ff29b44ecec9e6',1,'ace_time::TimePeriod']]], - ['kmaxtransitions_160',['kMaxTransitions',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a3c32fdc728c9ad18f71d8ba18e9826f1',1,'ace_time::ExtendedZoneProcessorTemplate']]], - ['kmaxuntilyear_161',['kMaxUntilYear',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a6e9efdfb8afe18e39c8b60d974dea95a',1,'ace_time::ZoneInfoLow::ZoneContext::kMaxUntilYear()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a7117f0ef3da93eeaf532829acd777cc5',1,'ace_time::ZoneInfoHigh::ZoneContext::kMaxUntilYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#aff869fb65af51cf96a0c18aa28a16ea0',1,'ace_time::ZoneInfoMid::ZoneContext::kMaxUntilYear()']]], - ['kmaxuntilyeartiny_162',['kMaxUntilYearTiny',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ad701688fc9aed6d029c7917110d537ae',1,'ace_time::ZoneInfoLow::ZoneContext']]], - ['kmaxyear_163',['kMaxYear',['../classace__time_1_1LocalDate.html#a06976c9866708209720b14e745baecc4',1,'ace_time::LocalDate::kMaxYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a85dd431f253b29b6cd986c09fe20684d',1,'ace_time::ZoneInfoMid::ZoneContext::kMaxYear()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#ac105b566c2c4f2e739db425f5257e7e4',1,'ace_time::ZoneInfoHigh::ZoneContext::kMaxYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ab89abffd34c18effbebfbd8a4d00c484',1,'ace_time::ZoneInfoLow::ZoneContext::kMaxYear()']]], - ['kmaxyeartiny_164',['kMaxYearTiny',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a1a50be2c5beea14936a4a6da0624e612',1,'ace_time::ZoneInfoLow::ZoneContext']]], - ['kminepochseconds_165',['kMinEpochSeconds',['../classace__time_1_1LocalDate.html#a16334b49fbbcf8ecc356e283b3675911',1,'ace_time::LocalDate']]], - ['kminyear_166',['kMinYear',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a4a3cbd8dca90dee15294d3e8ed99b5ee',1,'ace_time::ZoneInfoLow::ZoneContext::kMinYear()'],['../classace__time_1_1LocalDate.html#a3c4687821480b57575b7ffba3d3e5ae9',1,'ace_time::LocalDate::kMinYear()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a67c6f0911a9583a6e9038569eb48a33c',1,'ace_time::ZoneInfoHigh::ZoneContext::kMinYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a6bbf4b1aaceca71747840548925fc401',1,'ace_time::ZoneInfoMid::ZoneContext::kMinYear()']]], - ['kminyeartiny_167',['kMinYearTiny',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ac65a623b9c7ecb5c56b6ecdfcd3e9c25',1,'ace_time::ZoneInfoLow::ZoneContext']]], - ['kmonday_168',['kMonday',['../classace__time_1_1LocalDate.html#ac1c12c4971fc218d6ae56a3cd84d3ae8',1,'ace_time::LocalDate']]], - ['kname_169',['kname',['../classace__time_1_1ZoneTemplate.html#a3279bf3377120e2fbe5aaf98a5b8344a',1,'ace_time::ZoneTemplate']]], - ['ksaturday_170',['kSaturday',['../classace__time_1_1LocalDate.html#abfc081c738df0972dfaa7d94f1782ea9',1,'ace_time::LocalDate']]], - ['kshortnamelength_171',['kShortNameLength',['../classace__time_1_1DateStrings.html#aa990309bb6080ee27a2cb9aa8f76cb29',1,'ace_time::DateStrings']]], - ['ksuffixs_172',['kSuffixS',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#aea2f4c087b1cdd40e95f66e15990a91e',1,'ace_time::ZoneInfoHigh::ZoneContext::kSuffixS()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#aa23dafe3331f0672132637b2696dc07d',1,'ace_time::ZoneInfoMid::ZoneContext::kSuffixS()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a34d1b458b1468e307ff933396ffea31c',1,'ace_time::ZoneInfoLow::ZoneContext::kSuffixS()']]], - ['ksuffixu_173',['kSuffixU',['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a33601815982b4ac95ef94749dc90e408',1,'ace_time::ZoneInfoMid::ZoneContext::kSuffixU()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a8074d036d855510f01a8398c8a7d5f5e',1,'ace_time::ZoneInfoLow::ZoneContext::kSuffixU()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a9d7ab5c0d2c71e113a209de0f9e413fc',1,'ace_time::ZoneInfoHigh::ZoneContext::kSuffixU()']]], - ['ksuffixw_174',['kSuffixW',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a6afbdf17a6bf59c24a70f902335a5776',1,'ace_time::ZoneInfoHigh::ZoneContext::kSuffixW()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#ac1dc62a9472a0855968f8fae7432afbe',1,'ace_time::ZoneInfoMid::ZoneContext::kSuffixW()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a290d1177ea173f06d8c3c1614abc54f3',1,'ace_time::ZoneInfoLow::ZoneContext::kSuffixW()']]], - ['ksunday_175',['kSunday',['../classace__time_1_1LocalDate.html#af2cb45cfd132d8d08d792935fa1a2520',1,'ace_time::LocalDate']]], - ['kthursday_176',['kThursday',['../classace__time_1_1LocalDate.html#ab8d881384833dfe6fe0107cea202d423',1,'ace_time::LocalDate']]], - ['ktuesday_177',['kTuesday',['../classace__time_1_1LocalDate.html#a0e088edd58f0f1d1331c937832cb890b',1,'ace_time::LocalDate']]], - ['ktypebasic_178',['kTypeBasic',['../classace__time_1_1BasicZoneProcessor.html#a283ca9be07f106494c22eee2729482de',1,'ace_time::BasicZoneProcessor']]], - ['ktypecomplete_179',['kTypeComplete',['../classace__time_1_1CompleteZoneProcessor.html#aafe1473dfcb838417528d0b889eff41d',1,'ace_time::CompleteZoneProcessor']]], - ['ktypeerror_180',['kTypeError',['../classace__time_1_1TimeZone.html#aa0f8a27139793d9d4933dcc05abade6a',1,'ace_time::TimeZone']]], - ['ktypeexact_181',['kTypeExact',['../classace__time_1_1ZonedExtra.html#a806d4f0be015acb89157103c793cd272',1,'ace_time::ZonedExtra']]], - ['ktypeextended_182',['kTypeExtended',['../classace__time_1_1ExtendedZoneProcessor.html#ae0cfa8f81df6c2cab008944941153bfd',1,'ace_time::ExtendedZoneProcessor']]], - ['ktypegap_183',['kTypeGap',['../classace__time_1_1ZonedExtra.html#a8c3e0de8a9a0c6e1d5f8670aae2fbe4b',1,'ace_time::ZonedExtra']]], - ['ktypemanual_184',['kTypeManual',['../classace__time_1_1TimeZone.html#af7a422f59450abac8b76aafa72d4b5c9',1,'ace_time::TimeZone']]], - ['ktypenotfound_185',['kTypeNotFound',['../classace__time_1_1ZonedExtra.html#a5e02f7bdf9230febf8cb49e4c7ddc3d0',1,'ace_time::ZonedExtra']]], - ['ktypeoverlap_186',['kTypeOverlap',['../classace__time_1_1ZonedExtra.html#a5e8d1bf7c07b6f6418cbeb83ebe2d22c',1,'ace_time::ZonedExtra']]], - ['ktypereserved_187',['kTypeReserved',['../classace__time_1_1TimeZone.html#ae1a31092dca112ec74475c1c1703fde0',1,'ace_time::TimeZone']]], - ['kwednesday_188',['kWednesday',['../classace__time_1_1LocalDate.html#a0221ea698dae2739a8bca89e11e1cd01',1,'ace_time::LocalDate']]] -]; diff --git a/docs/html/search/all_a.html b/docs/html/search/all_a.html deleted file mode 100644 index 3a6cac108..000000000 --- a/docs/html/search/all_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js deleted file mode 100644 index 21af32bf8..000000000 --- a/docs/html/search/all_a.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['lastdeltaseconds_189',['lastDeltaSeconds',['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a13c33d10146b637c4b22dce4d5a56fb5',1,'ace_time::extended::MatchingEraTemplate']]], - ['lastoffsetseconds_190',['lastOffsetSeconds',['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a769af0afd3d18234a50aee30eab71a72',1,'ace_time::extended::MatchingEraTemplate']]], - ['letterindex_191',['letterIndex',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a15eb4b062e439efdc717a843a8aec2aa',1,'ace_time::ZoneInfoHigh::ZoneRule::letterIndex()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#a58565d1c7c234cfbe07974d7e1235d2f',1,'ace_time::ZoneInfoLow::ZoneRule::letterIndex()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#a03bdaf05a513c7702296a98b9a0d5013',1,'ace_time::ZoneInfoMid::ZoneRule::letterIndex()']]], - ['letters_192',['letters',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#ae209e7633464eeb41d9467de3b25a8fa',1,'ace_time::ZoneInfoHigh::ZoneContext::letters()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a9dff5300888754db401664d7f182df62',1,'ace_time::ZoneInfoLow::ZoneContext::letters()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#ae520dd2ded669647b193c2322db21cf6',1,'ace_time::ZoneInfoMid::ZoneContext::letters()']]], - ['linearsearchbyid_193',['linearSearchById',['../classace__time_1_1ZoneRegistrarTemplate.html#a0bce894f2a5eaa5eda760b6e35a5f4ac',1,'ace_time::ZoneRegistrarTemplate']]], - ['localdate_194',['LocalDate',['../classace__time_1_1LocalDate.html',1,'ace_time']]], - ['localdate_195',['localDate',['../classace__time_1_1OffsetDateTime.html#a9fc09e94879f513e6926a484dcf22960',1,'ace_time::OffsetDateTime']]], - ['localdate_196',['LocalDate',['../classace__time_1_1LocalDate.html#acadf85f1b1fc8a13e9971f645e3f6f6f',1,'ace_time::LocalDate']]], - ['localdate_197',['localDate',['../classace__time_1_1LocalDateTime.html#a3cb5c67f6efc28bccb1a0097c2dc5c7f',1,'ace_time::LocalDateTime']]], - ['localdatetime_198',['LocalDateTime',['../classace__time_1_1LocalDateTime.html',1,'ace_time::LocalDateTime'],['../classace__time_1_1LocalDateTime.html#a258117e35f7f6b063fd969b57385b90f',1,'ace_time::LocalDateTime::LocalDateTime()']]], - ['localdatetime_199',['localDateTime',['../classace__time_1_1OffsetDateTime.html#a289869403c24ad6205da8270af94363e',1,'ace_time::OffsetDateTime::localDateTime()'],['../classace__time_1_1ZonedDateTime.html#af6a26cb619efcbcfa55bad20af2b436d',1,'ace_time::ZonedDateTime::localDateTime()']]], - ['localtime_200',['LocalTime',['../classace__time_1_1LocalTime.html',1,'ace_time']]], - ['localtime_201',['localTime',['../classace__time_1_1LocalDateTime.html#ab2c76ad0b964d884eb4c31ae5c455af7',1,'ace_time::LocalDateTime::localTime()'],['../classace__time_1_1OffsetDateTime.html#a0c59c92e17a88b4e41f9f0e6acb02dfc',1,'ace_time::OffsetDateTime::localTime()']]], - ['localtime_202',['LocalTime',['../classace__time_1_1LocalTime.html#ab34ac02fd32ba8819c5a9710b6c78b65',1,'ace_time::LocalTime']]], - ['log_203',['log',['../structace__time_1_1basic_1_1TransitionTemplate.html#ab49ae80f4ccd0c72e8752974e9db91ca',1,'ace_time::basic::TransitionTemplate::log()'],['../classace__time_1_1BasicZoneProcessorTemplate.html#a0cccf211a86cf4533f9a4441738bced5',1,'ace_time::BasicZoneProcessorTemplate::log()'],['../structace__time_1_1extended_1_1DateTuple.html#afa991fc734c0f703f2afa4133822fb6b',1,'ace_time::extended::DateTuple::log()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ad9f32e9671655c9dbeca7d345a54ccdf',1,'ace_time::ExtendedZoneProcessorTemplate::log()'],['../structace__time_1_1extended_1_1TransitionTemplate.html#a596d28722273b0730bbb13726820c1cd',1,'ace_time::extended::TransitionTemplate::log()'],['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#afd8ed04dfcfb631788cb4875d5c57b68',1,'ace_time::extended::TransitionStorageTemplate::log()']]], - ['loghourminutesecond_204',['logHourMinuteSecond',['../structace__time_1_1extended_1_1TransitionTemplate.html#a027aaddb7f54f18cf446e26b1517ee0d',1,'ace_time::extended::TransitionTemplate']]] -]; diff --git a/docs/html/search/all_b.html b/docs/html/search/all_b.html deleted file mode 100644 index 130deb4ed..000000000 --- a/docs/html/search/all_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js deleted file mode 100644 index b52b75577..000000000 --- a/docs/html/search/all_b.js +++ /dev/null @@ -1,18 +0,0 @@ -var searchData= -[ - ['manualzonemanager_205',['ManualZoneManager',['../classace__time_1_1ManualZoneManager.html',1,'ace_time']]], - ['match_206',['match',['../structace__time_1_1extended_1_1TransitionTemplate.html#a67e7604d62243c8e3e9a24783913cb84',1,'ace_time::extended::TransitionTemplate']]], - ['matchingera_207',['MatchingEra',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a8f9aa742ee6d65c80cde8eedae3f5db3',1,'ace_time::ExtendedZoneProcessorTemplate']]], - ['matchingeratemplate_208',['MatchingEraTemplate',['../structace__time_1_1extended_1_1MatchingEraTemplate.html',1,'ace_time::extended']]], - ['maxtransitions_209',['maxTransitions',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a9328d756398bb7f18d7fa15502a03c69',1,'ace_time::ZoneInfoHigh::ZoneContext::maxTransitions()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a05c9a77449c366129101343ffe55e3af',1,'ace_time::ZoneInfoLow::ZoneContext::maxTransitions()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a94f80c370f478c4483a9c740a712999e',1,'ace_time::ZoneInfoMid::ZoneContext::maxTransitions()']]], - ['mepochyear_210',['mEpochYear',['../classace__time_1_1ZoneProcessor.html#ab6c3aaf365c46bffc72f6c852ff4779c',1,'ace_time::ZoneProcessor']]], - ['minute_211',['minute',['../classace__time_1_1ZonedDateTime.html#ad018aacdd07c8ac5b0f43f48ca8a994f',1,'ace_time::ZonedDateTime::minute() const'],['../classace__time_1_1ZonedDateTime.html#a658d8866b7fd5d6a2efa8a205c51b779',1,'ace_time::ZonedDateTime::minute(uint8_t minute)'],['../classace__time_1_1TimePeriod.html#a1b464afc12d4d5ba72567cd76497ff0b',1,'ace_time::TimePeriod::minute(uint8_t minute)'],['../classace__time_1_1TimePeriod.html#a75cd5d3700066b3c35999908d7ae0d4f',1,'ace_time::TimePeriod::minute() const'],['../classace__time_1_1OffsetDateTime.html#a6059bdddd49c584f427950556494dced',1,'ace_time::OffsetDateTime::minute()'],['../classace__time_1_1LocalTime.html#a6a5196fc6b5f84d441dcd737e75acc5f',1,'ace_time::LocalTime::minute(uint8_t minute)'],['../classace__time_1_1LocalTime.html#ad99b8893e31c3e3d45ccd0a7bac9c91e',1,'ace_time::LocalTime::minute() const'],['../classace__time_1_1LocalDateTime.html#a3013a99a9dc3cb8b1c267f701ded8cb6',1,'ace_time::LocalDateTime::minute(uint8_t minute)'],['../classace__time_1_1LocalDateTime.html#a7df99e1e5ba813cebc9246a3a047073c',1,'ace_time::LocalDateTime::minute() const'],['../classace__time_1_1OffsetDateTime.html#a88888c5a65bee412cf388966f45d56df',1,'ace_time::OffsetDateTime::minute()']]], - ['month_212',['month',['../classace__time_1_1LocalDateTime.html#a5cbf97d3b2c03cbd72aac0eb7af04774',1,'ace_time::LocalDateTime::month()'],['../classace__time_1_1ZonedDateTime.html#ad818370878792f764b362b5ccd77fae9',1,'ace_time::ZonedDateTime::month(uint8_t month)'],['../classace__time_1_1ZonedDateTime.html#af8483c5973c79f6514db8401aae77cb6',1,'ace_time::ZonedDateTime::month() const'],['../classace__time_1_1OffsetDateTime.html#a21ea947de494cd2b9966b027da84e2ed',1,'ace_time::OffsetDateTime::month(uint8_t month)'],['../classace__time_1_1OffsetDateTime.html#a3f95ef3b5b6ae6470bcd80002caf92c6',1,'ace_time::OffsetDateTime::month() const'],['../classace__time_1_1LocalDateTime.html#a64406f7a7c2d599f5260e1ef58d1c99a',1,'ace_time::LocalDateTime::month()'],['../classace__time_1_1LocalDate.html#a7b2124eadb70b7ab46e07826af57e0fe',1,'ace_time::LocalDate::month(uint8_t month)'],['../classace__time_1_1LocalDate.html#aecb3488a5e952cb17300ec7060b94150',1,'ace_time::LocalDate::month() const'],['../structace__time_1_1basic_1_1TransitionTemplate.html#a27eb4f1a5e5ab1f22de6b625d0f7b88f',1,'ace_time::basic::TransitionTemplate::month()']]], - ['monthday_213',['MonthDay',['../structace__time_1_1MonthDay.html',1,'ace_time']]], - ['monthlongstring_214',['monthLongString',['../classace__time_1_1DateStrings.html#a9174e70b61655639bf8b03c5d6b9a633',1,'ace_time::DateStrings']]], - ['monthshortstring_215',['monthShortString',['../classace__time_1_1DateStrings.html#aa801b71e6aeff59d65a1229015c34cff',1,'ace_time::DateStrings']]], - ['mtype_216',['mType',['../classace__time_1_1ZoneProcessor.html#a698fea5dd3a2c2b403b501d49ff3fe8f',1,'ace_time::ZoneProcessor']]], - ['myear_217',['mYear',['../classace__time_1_1ZoneProcessor.html#a5b939ab666db193d3bf2bba8f298e736',1,'ace_time::ZoneProcessor']]], - ['mzonekey_218',['mZoneKey',['../classace__time_1_1TimeZone.html#a8eafcad4aa772eb9ea6cbee9ba7110d8',1,'ace_time::TimeZone']]], - ['mzoneprocessor_219',['mZoneProcessor',['../classace__time_1_1TimeZone.html#a3380618145722bb6a76108db95153e42',1,'ace_time::TimeZone']]] -]; diff --git a/docs/html/search/all_c.html b/docs/html/search/all_c.html deleted file mode 100644 index 3dd5af06d..000000000 --- a/docs/html/search/all_c.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js deleted file mode 100644 index 7a6f23c16..000000000 --- a/docs/html/search/all_c.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['name_220',['name',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#a6e3abe9bbe9ef650a43007ccca73728c',1,'ace_time::ZoneInfoHigh::ZoneInfo::name()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#a63a006004b7da88de572b8bf4af5543d',1,'ace_time::ZoneInfoLow::ZoneInfo::name()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#a2dfb7f5123158f3fadc031aa3ad45e58',1,'ace_time::ZoneInfoMid::ZoneInfo::name()']]], - ['negate_221',['negate',['../time__period__mutation_8h.html#aa3c982884e48ebe3ac7a676f70c5e391',1,'ace_time::time_period_mutation']]], - ['normalize_222',['normalize',['../classace__time_1_1ZonedDateTime.html#ad74f2ea586bfa38a38c7e2ba1115b6c4',1,'ace_time::ZonedDateTime']]], - ['num_223',['num',['../structace__time_1_1extended_1_1TransitionForSecondsTemplate.html#aa59e329eba1791f0d4db7d520f13aced',1,'ace_time::extended::TransitionForSecondsTemplate::num()'],['../structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html#ab7c57169beb38336a66ed690951832b9',1,'ace_time::extended::TransitionForDateTimeTemplate::num()']]], - ['numeras_224',['numEras',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#acff2b61f0a5378a162a25f10062768de',1,'ace_time::ZoneInfoHigh::ZoneInfo::numEras()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#a84aca08eae658cceaa0cc49733c53d0f',1,'ace_time::ZoneInfoLow::ZoneInfo::numEras()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#a9d89fc4d75047d8474d815c96b529929',1,'ace_time::ZoneInfoMid::ZoneInfo::numEras()']]], - ['numfragments_225',['numFragments',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a9861dd12fdfc9c3cf2ba5709021985d6',1,'ace_time::ZoneInfoHigh::ZoneContext::numFragments()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a81d0b441894767bd4a81f332e102911c',1,'ace_time::ZoneInfoLow::ZoneContext::numFragments()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a4d8e88fd0ec1f4cf195f526cfd86979a',1,'ace_time::ZoneInfoMid::ZoneContext::numFragments()']]], - ['numletters_226',['numLetters',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a8607e4e0771cbe598d397d60d91157aa',1,'ace_time::ZoneInfoHigh::ZoneContext::numLetters()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#aa041fcd87f9ca04504b0ad5ae3aa94c8',1,'ace_time::ZoneInfoLow::ZoneContext::numLetters()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#afe719845f77fc8e3ccfc376914907a5d',1,'ace_time::ZoneInfoMid::ZoneContext::numLetters()']]] -]; diff --git a/docs/html/search/all_d.html b/docs/html/search/all_d.html deleted file mode 100644 index af7f2f0f5..000000000 --- a/docs/html/search/all_d.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js deleted file mode 100644 index 1bb6e8105..000000000 --- a/docs/html/search/all_d.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['offset_5fdate_5ftime_5fmutation_2eh_227',['offset_date_time_mutation.h',['../offset__date__time__mutation_8h.html',1,'']]], - ['offsetcode_228',['offsetCode',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#aa08e5cd73a3d7db5d85609f979b0da34',1,'ace_time::ZoneInfoHigh::ZoneEra::offsetCode()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#a9b6d9846c6ca8dc576b731bdc0827444',1,'ace_time::ZoneInfoLow::ZoneEra::offsetCode()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#aafd902389398ccde36e15924e080ca48',1,'ace_time::ZoneInfoMid::ZoneEra::offsetCode()']]], - ['offsetdatetime_229',['OffsetDateTime',['../classace__time_1_1OffsetDateTime.html',1,'ace_time::OffsetDateTime'],['../classace__time_1_1OffsetDateTime.html#a36910b1403ba764f3e29675424760e6c',1,'ace_time::OffsetDateTime::OffsetDateTime()']]], - ['offsetdatetime_230',['offsetDateTime',['../classace__time_1_1ZonedDateTime.html#afb77ba4d7d3c44fed16d7d53b07e0020',1,'ace_time::ZonedDateTime']]], - ['offsetminutes_231',['offsetMinutes',['../structace__time_1_1basic_1_1TransitionTemplate.html#ac2925b83cd5d46f17928e8b70432ea9d',1,'ace_time::basic::TransitionTemplate']]], - ['offsetremainder_232',['offsetRemainder',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a4070b0ee82cf015d90da51803b89b468',1,'ace_time::ZoneInfoHigh::ZoneEra']]], - ['offsetseconds_233',['offsetSeconds',['../structace__time_1_1extended_1_1TransitionTemplate.html#ae3b1e5b69363cd2ec41d2e2d2fb12bc7',1,'ace_time::extended::TransitionTemplate']]], - ['ondayofmonth_234',['onDayOfMonth',['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#a9cf91dcb1add3e42402664eef70bc8f3',1,'ace_time::ZoneInfoLow::ZoneRule::onDayOfMonth()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#a0e716f0c3adb93d63ceabeb2ef11e164',1,'ace_time::ZoneInfoMid::ZoneRule::onDayOfMonth()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a86cabc8d93c4c35f7fe9c0be140cb99d',1,'ace_time::ZoneInfoHigh::ZoneRule::onDayOfMonth()']]], - ['ondayofweek_235',['onDayOfWeek',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a26e46a072973c5445aee6ed3e4c12295',1,'ace_time::ZoneInfoHigh::ZoneRule::onDayOfWeek()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#aa09ffaae298ad4941e04a40bd7355c5b',1,'ace_time::ZoneInfoLow::ZoneRule::onDayOfWeek()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#af146b78b9fdcc47f1893f7ebb7ef3941',1,'ace_time::ZoneInfoMid::ZoneRule::onDayOfWeek()']]], - ['operator_3d_3d_236',['operator==',['../classace__time_1_1LocalDate.html#a018d437efbf0e6de707fe74242349508',1,'ace_time::LocalDate::operator==()'],['../classace__time_1_1LocalDateTime.html#ae1ae8df39487305cfd7e6e7429702295',1,'ace_time::LocalDateTime::operator==()'],['../classace__time_1_1LocalTime.html#a3e09b81cf838d2e5eea2622a8b209ba2',1,'ace_time::LocalTime::operator==()'],['../classace__time_1_1OffsetDateTime.html#aa0c0a06e99b3efa8eb22126e6474752e',1,'ace_time::OffsetDateTime::operator==()'],['../classace__time_1_1TimePeriod.html#a7520dcc4dfe508feb8e545d2ff4b0812',1,'ace_time::TimePeriod::operator==()'],['../classace__time_1_1ZonedDateTime.html#a4acdb974e8c83afe80e1f31d6e688d91',1,'ace_time::ZonedDateTime::operator==()']]] -]; diff --git a/docs/html/search/all_e.html b/docs/html/search/all_e.html deleted file mode 100644 index e25df423a..000000000 --- a/docs/html/search/all_e.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js deleted file mode 100644 index 30fcc7973..000000000 --- a/docs/html/search/all_e.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['prev_237',['prev',['../structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html#a4c6744dfe4058c74688f49d2749ab847',1,'ace_time::extended::TransitionForDateTimeTemplate']]], - ['prevmatch_238',['prevMatch',['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a1a946649fb15bef0c020ab48f3a6115a',1,'ace_time::extended::MatchingEraTemplate']]], - ['printnameto_239',['printNameTo',['../classace__time_1_1BasicZoneProcessorTemplate.html#aa403d8bbf83a400c08229980016a4312',1,'ace_time::BasicZoneProcessorTemplate::printNameTo()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ad960529ef2b1c0390fba1c3a3afe6b9a',1,'ace_time::ExtendedZoneProcessorTemplate::printNameTo()'],['../classace__time_1_1ZoneTemplate.html#ae3fea53e7962c70dfe7bfe3e224437b5',1,'ace_time::ZoneTemplate::printNameTo()'],['../classace__time_1_1ZoneProcessor.html#a2ebdaf658f48d58a161086e21c1fc3f7',1,'ace_time::ZoneProcessor::printNameTo()'],['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html#aa6a4490c525134ef32a0ae4a1c0091e4',1,'ace_time::ZoneInfoHigh::ZoneInfoBroker::printNameTo()'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html#a81a2d6a48903d640ae78ec2f88388d68',1,'ace_time::ZoneInfoLow::ZoneInfoBroker::printNameTo()'],['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html#a876cc588eb79d749ec9b6b4fcd12160e',1,'ace_time::ZoneInfoMid::ZoneInfoBroker::printNameTo(Print &printer) const']]], - ['printshortnameto_240',['printShortNameTo',['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html#a52e2856c3bb7e4478397cddb77d14782',1,'ace_time::ZoneInfoMid::ZoneInfoBroker::printShortNameTo()'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html#aa9fdff0c3b3939deaa2072b2b7ec70d4',1,'ace_time::ZoneInfoLow::ZoneInfoBroker::printShortNameTo()'],['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html#a4a119911f11f89849dbd212a66025af8',1,'ace_time::ZoneInfoHigh::ZoneInfoBroker::printShortNameTo()'],['../classace__time_1_1ZoneTemplate.html#aaa881570b41bbe534000d582bc0fb71b',1,'ace_time::ZoneTemplate::printShortNameTo()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a668c57fbf5f7f32df20091093181f6e7',1,'ace_time::ExtendedZoneProcessorTemplate::printShortNameTo()'],['../classace__time_1_1BasicZoneProcessorTemplate.html#a90a730c231da202bf938d27cff823df5',1,'ace_time::BasicZoneProcessorTemplate::printShortNameTo()'],['../classace__time_1_1ZoneProcessor.html#a68ba2ce6b980f73f4f673450148c2416',1,'ace_time::ZoneProcessor::printShortNameTo()']]], - ['printshortto_241',['printShortTo',['../classace__time_1_1TimeZone.html#a9feead66a867bbae10e751d30479bbfc',1,'ace_time::TimeZone']]], - ['printtargetnameto_242',['printTargetNameTo',['../classace__time_1_1BasicZoneProcessorTemplate.html#a9415175c503cfe10512127f54f203d54',1,'ace_time::BasicZoneProcessorTemplate::printTargetNameTo()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a34ff4830244c7b6c5f5862a747b04d8e',1,'ace_time::ExtendedZoneProcessorTemplate::printTargetNameTo()'],['../classace__time_1_1TimeZone.html#a4e733cbf86d1d64653f4c2aa2ae1cfcd',1,'ace_time::TimeZone::printTargetNameTo()'],['../classace__time_1_1ZoneProcessor.html#a2cba339fefee17eb2d73be1512f86996',1,'ace_time::ZoneProcessor::printTargetNameTo()']]], - ['printto_243',['printTo',['../classace__time_1_1LocalDate.html#a45a92407e489cf352a97ffb09513eaba',1,'ace_time::LocalDate::printTo()'],['../classace__time_1_1ZonedDateTime.html#a185351505b9ff59923656be956d0b326',1,'ace_time::ZonedDateTime::printTo()'],['../classace__time_1_1TimeZone.html#a3030d8f1dc9cd2bfb3c6ee556c385191',1,'ace_time::TimeZone::printTo()'],['../classace__time_1_1TimePeriod.html#a77f80b555361984b0289f2430ecb479f',1,'ace_time::TimePeriod::printTo()'],['../classace__time_1_1TimeOffset.html#af1bcb885f413153ed61324a92e5bd730',1,'ace_time::TimeOffset::printTo()'],['../classace__time_1_1OffsetDateTime.html#a3f9a811d196b889eb199545e227786a9',1,'ace_time::OffsetDateTime::printTo()'],['../classace__time_1_1LocalTime.html#a9f5c3a2e92030d0aa773ffb2a83197cf',1,'ace_time::LocalTime::printTo()'],['../classace__time_1_1LocalDateTime.html#a1fd5324ba0f6f9ad8d6c44d418f800fd',1,'ace_time::LocalDateTime::printTo()']]], - ['printtransitions_244',['printTransitions',['../structace__time_1_1extended_1_1TransitionTemplate.html#ad9880f03dabdd96e9953e20f8dedf169',1,'ace_time::extended::TransitionTemplate']]] -]; diff --git a/docs/html/search/all_f.html b/docs/html/search/all_f.html deleted file mode 100644 index b23da6ce4..000000000 --- a/docs/html/search/all_f.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js deleted file mode 100644 index 169956957..000000000 --- a/docs/html/search/all_f.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['reqdstoffset_245',['reqDstOffset',['../classace__time_1_1ZonedExtra.html#a0183ba318b307bfceaaf95ecda9347ba',1,'ace_time::ZonedExtra']]], - ['reqdstoffsetseconds_246',['reqDstOffsetSeconds',['../classace__time_1_1FindResult.html#a8c821e98b0e12c76900a56020afb841e',1,'ace_time::FindResult']]], - ['reqstdoffset_247',['reqStdOffset',['../classace__time_1_1ZonedExtra.html#a1275019cac9c640af7c15408e14174f8',1,'ace_time::ZonedExtra']]], - ['reqstdoffsetseconds_248',['reqStdOffsetSeconds',['../classace__time_1_1FindResult.html#ae7cc7f53ebb1b6ff6ab16865840495a4',1,'ace_time::FindResult']]], - ['reqtimeoffset_249',['reqTimeOffset',['../classace__time_1_1ZonedExtra.html#a7c49372bded10102401f8a1addb204db',1,'ace_time::ZonedExtra']]], - ['reserveprior_250',['reservePrior',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#ada9a994db5c0c508d76616907ab822bc',1,'ace_time::extended::TransitionStorageTemplate']]], - ['resetallocsize_251',['resetAllocSize',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a65efd4d145bd679dc6f360734c9eae49',1,'ace_time::extended::TransitionStorageTemplate']]], - ['resetcandidatepool_252',['resetCandidatePool',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a6100ece59a4879953693cc268a70c1b6',1,'ace_time::extended::TransitionStorageTemplate']]], - ['resettransitionallocsize_253',['resetTransitionAllocSize',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a58587dd5593cec58364ca954e56f4c1c',1,'ace_time::ExtendedZoneProcessorTemplate']]], - ['rule_254',['rule',['../structace__time_1_1basic_1_1TransitionTemplate.html#a3659e7cb9ed2e34b8890f421e5b327b4',1,'ace_time::basic::TransitionTemplate']]] -]; diff --git a/docs/html/search/classes_0.html b/docs/html/search/classes_0.html deleted file mode 100644 index af8159ee6..000000000 --- a/docs/html/search/classes_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_0.js b/docs/html/search/classes_0.js deleted file mode 100644 index 8c0f8698d..000000000 --- a/docs/html/search/classes_0.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['basiczoneprocessor_356',['BasicZoneProcessor',['../classace__time_1_1BasicZoneProcessor.html',1,'ace_time']]], - ['basiczoneprocessorcache_357',['BasicZoneProcessorCache',['../classace__time_1_1BasicZoneProcessorCache.html',1,'ace_time']]], - ['basiczoneprocessortemplate_358',['BasicZoneProcessorTemplate',['../classace__time_1_1BasicZoneProcessorTemplate.html',1,'ace_time']]], - ['basiczoneprocessortemplate_3c_20basic_3a_3ainfo_20_3e_359',['BasicZoneProcessorTemplate< basic::Info >',['../classace__time_1_1BasicZoneProcessorTemplate.html',1,'ace_time']]] -]; diff --git a/docs/html/search/classes_1.html b/docs/html/search/classes_1.html deleted file mode 100644 index 576e91689..000000000 --- a/docs/html/search/classes_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_1.js b/docs/html/search/classes_1.js deleted file mode 100644 index 8fff736a2..000000000 --- a/docs/html/search/classes_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['completezoneprocessor_360',['CompleteZoneProcessor',['../classace__time_1_1CompleteZoneProcessor.html',1,'ace_time']]], - ['completezoneprocessorcache_361',['CompleteZoneProcessorCache',['../classace__time_1_1CompleteZoneProcessorCache.html',1,'ace_time']]] -]; diff --git a/docs/html/search/classes_2.html b/docs/html/search/classes_2.html deleted file mode 100644 index 956405e5a..000000000 --- a/docs/html/search/classes_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js deleted file mode 100644 index 1a2eca0a8..000000000 --- a/docs/html/search/classes_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['datestrings_362',['DateStrings',['../classace__time_1_1DateStrings.html',1,'ace_time']]], - ['datetuple_363',['DateTuple',['../structace__time_1_1extended_1_1DateTuple.html',1,'ace_time::extended']]] -]; diff --git a/docs/html/search/classes_3.html b/docs/html/search/classes_3.html deleted file mode 100644 index d33343bc1..000000000 --- a/docs/html/search/classes_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_3.js b/docs/html/search/classes_3.js deleted file mode 100644 index b229b0056..000000000 --- a/docs/html/search/classes_3.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['epoch_364',['Epoch',['../classace__time_1_1Epoch.html',1,'ace_time']]], - ['epochconverterhinnant_365',['EpochConverterHinnant',['../classace__time_1_1EpochConverterHinnant.html',1,'ace_time']]], - ['epochconverterjulian_366',['EpochConverterJulian',['../classace__time_1_1EpochConverterJulian.html',1,'ace_time']]], - ['extendedzoneprocessor_367',['ExtendedZoneProcessor',['../classace__time_1_1ExtendedZoneProcessor.html',1,'ace_time']]], - ['extendedzoneprocessorcache_368',['ExtendedZoneProcessorCache',['../classace__time_1_1ExtendedZoneProcessorCache.html',1,'ace_time']]], - ['extendedzoneprocessortemplate_369',['ExtendedZoneProcessorTemplate',['../classace__time_1_1ExtendedZoneProcessorTemplate.html',1,'ace_time']]], - ['extendedzoneprocessortemplate_3c_20complete_3a_3ainfo_20_3e_370',['ExtendedZoneProcessorTemplate< complete::Info >',['../classace__time_1_1ExtendedZoneProcessorTemplate.html',1,'ace_time']]], - ['extendedzoneprocessortemplate_3c_20extended_3a_3ainfo_20_3e_371',['ExtendedZoneProcessorTemplate< extended::Info >',['../classace__time_1_1ExtendedZoneProcessorTemplate.html',1,'ace_time']]] -]; diff --git a/docs/html/search/classes_4.html b/docs/html/search/classes_4.html deleted file mode 100644 index 8430b07fe..000000000 --- a/docs/html/search/classes_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_4.js b/docs/html/search/classes_4.js deleted file mode 100644 index c43eda5ea..000000000 --- a/docs/html/search/classes_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['findresult_372',['FindResult',['../classace__time_1_1FindResult.html',1,'ace_time']]] -]; diff --git a/docs/html/search/classes_5.html b/docs/html/search/classes_5.html deleted file mode 100644 index c2f1b767b..000000000 --- a/docs/html/search/classes_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_5.js b/docs/html/search/classes_5.js deleted file mode 100644 index f538c8e10..000000000 --- a/docs/html/search/classes_5.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['localdate_373',['LocalDate',['../classace__time_1_1LocalDate.html',1,'ace_time']]], - ['localdatetime_374',['LocalDateTime',['../classace__time_1_1LocalDateTime.html',1,'ace_time']]], - ['localtime_375',['LocalTime',['../classace__time_1_1LocalTime.html',1,'ace_time']]] -]; diff --git a/docs/html/search/classes_6.html b/docs/html/search/classes_6.html deleted file mode 100644 index e39847ce8..000000000 --- a/docs/html/search/classes_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_6.js b/docs/html/search/classes_6.js deleted file mode 100644 index f294f3b1e..000000000 --- a/docs/html/search/classes_6.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['manualzonemanager_376',['ManualZoneManager',['../classace__time_1_1ManualZoneManager.html',1,'ace_time']]], - ['matchingeratemplate_377',['MatchingEraTemplate',['../structace__time_1_1extended_1_1MatchingEraTemplate.html',1,'ace_time::extended']]], - ['monthday_378',['MonthDay',['../structace__time_1_1MonthDay.html',1,'ace_time']]] -]; diff --git a/docs/html/search/classes_7.html b/docs/html/search/classes_7.html deleted file mode 100644 index a2c4d1a39..000000000 --- a/docs/html/search/classes_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_7.js b/docs/html/search/classes_7.js deleted file mode 100644 index 953be1c97..000000000 --- a/docs/html/search/classes_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['offsetdatetime_379',['OffsetDateTime',['../classace__time_1_1OffsetDateTime.html',1,'ace_time']]] -]; diff --git a/docs/html/search/classes_8.html b/docs/html/search/classes_8.html deleted file mode 100644 index 17003e480..000000000 --- a/docs/html/search/classes_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_8.js b/docs/html/search/classes_8.js deleted file mode 100644 index 425ec3b2e..000000000 --- a/docs/html/search/classes_8.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['timeoffset_380',['TimeOffset',['../classace__time_1_1TimeOffset.html',1,'ace_time']]], - ['timeperiod_381',['TimePeriod',['../classace__time_1_1TimePeriod.html',1,'ace_time']]], - ['timezone_382',['TimeZone',['../classace__time_1_1TimeZone.html',1,'ace_time']]], - ['timezonedata_383',['TimeZoneData',['../structace__time_1_1TimeZoneData.html',1,'ace_time']]], - ['transitionfordatetimetemplate_384',['TransitionForDateTimeTemplate',['../structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html',1,'ace_time::extended']]], - ['transitionforsecondstemplate_385',['TransitionForSecondsTemplate',['../structace__time_1_1extended_1_1TransitionForSecondsTemplate.html',1,'ace_time::extended']]], - ['transitionstoragetemplate_386',['TransitionStorageTemplate',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html',1,'ace_time::extended']]], - ['transitionstoragetemplate_3c_20kmaxtransitions_2c_20d_20_3e_387',['TransitionStorageTemplate< kMaxTransitions, D >',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html',1,'ace_time::extended']]], - ['transitiontemplate_388',['TransitionTemplate',['../structace__time_1_1basic_1_1TransitionTemplate.html',1,'ace_time::basic::TransitionTemplate< D >'],['../structace__time_1_1extended_1_1TransitionTemplate.html',1,'ace_time::extended::TransitionTemplate< D >']]] -]; diff --git a/docs/html/search/classes_9.html b/docs/html/search/classes_9.html deleted file mode 100644 index b8afa8cba..000000000 --- a/docs/html/search/classes_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_9.js b/docs/html/search/classes_9.js deleted file mode 100644 index 12df8e562..000000000 --- a/docs/html/search/classes_9.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['yearmonthtuple_389',['YearMonthTuple',['../structace__time_1_1extended_1_1YearMonthTuple.html',1,'ace_time::extended']]] -]; diff --git a/docs/html/search/classes_a.html b/docs/html/search/classes_a.html deleted file mode 100644 index 6788af270..000000000 --- a/docs/html/search/classes_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_a.js b/docs/html/search/classes_a.js deleted file mode 100644 index b667a9c96..000000000 --- a/docs/html/search/classes_a.js +++ /dev/null @@ -1,28 +0,0 @@ -var searchData= -[ - ['zonecontext_390',['ZoneContext',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html',1,'ace_time::ZoneInfoHigh::ZoneContext'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html',1,'ace_time::ZoneInfoLow::ZoneContext'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html',1,'ace_time::ZoneInfoMid::ZoneContext']]], - ['zonecontextbroker_391',['ZoneContextBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneContextBroker.html',1,'ace_time::ZoneInfoHigh::ZoneContextBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZoneContextBroker.html',1,'ace_time::ZoneInfoLow::ZoneContextBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZoneContextBroker.html',1,'ace_time::ZoneInfoMid::ZoneContextBroker']]], - ['zoneddatetime_392',['ZonedDateTime',['../classace__time_1_1ZonedDateTime.html',1,'ace_time']]], - ['zonedextra_393',['ZonedExtra',['../classace__time_1_1ZonedExtra.html',1,'ace_time']]], - ['zoneera_394',['ZoneEra',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html',1,'ace_time::ZoneInfoHigh::ZoneEra'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html',1,'ace_time::ZoneInfoLow::ZoneEra'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html',1,'ace_time::ZoneInfoMid::ZoneEra']]], - ['zoneerabroker_395',['ZoneEraBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneEraBroker.html',1,'ace_time::ZoneInfoHigh::ZoneEraBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZoneEraBroker.html',1,'ace_time::ZoneInfoLow::ZoneEraBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZoneEraBroker.html',1,'ace_time::ZoneInfoMid::ZoneEraBroker']]], - ['zoneinfo_396',['ZoneInfo',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html',1,'ace_time::ZoneInfoHigh::ZoneInfo'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html',1,'ace_time::ZoneInfoLow::ZoneInfo'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html',1,'ace_time::ZoneInfoMid::ZoneInfo']]], - ['zoneinfobroker_397',['ZoneInfoBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html',1,'ace_time::ZoneInfoHigh::ZoneInfoBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html',1,'ace_time::ZoneInfoLow::ZoneInfoBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html',1,'ace_time::ZoneInfoMid::ZoneInfoBroker']]], - ['zoneinfohigh_398',['ZoneInfoHigh',['../classace__time_1_1ZoneInfoHigh.html',1,'ace_time']]], - ['zoneinfolow_399',['ZoneInfoLow',['../classace__time_1_1ZoneInfoLow.html',1,'ace_time']]], - ['zoneinfomid_400',['ZoneInfoMid',['../classace__time_1_1ZoneInfoMid.html',1,'ace_time']]], - ['zoneinfostore_401',['ZoneInfoStore',['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore.html',1,'ace_time::ZoneInfoHigh::ZoneInfoStore'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore.html',1,'ace_time::ZoneInfoLow::ZoneInfoStore'],['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore.html',1,'ace_time::ZoneInfoMid::ZoneInfoStore']]], - ['zonemanager_402',['ZoneManager',['../classace__time_1_1ZoneManager.html',1,'ace_time']]], - ['zonemanagertemplate_403',['ZoneManagerTemplate',['../classace__time_1_1ZoneManagerTemplate.html',1,'ace_time']]], - ['zonepolicy_404',['ZonePolicy',['../structace__time_1_1ZoneInfoHigh_1_1ZonePolicy.html',1,'ace_time::ZoneInfoHigh::ZonePolicy'],['../structace__time_1_1ZoneInfoLow_1_1ZonePolicy.html',1,'ace_time::ZoneInfoLow::ZonePolicy'],['../structace__time_1_1ZoneInfoMid_1_1ZonePolicy.html',1,'ace_time::ZoneInfoMid::ZonePolicy']]], - ['zonepolicybroker_405',['ZonePolicyBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZonePolicyBroker.html',1,'ace_time::ZoneInfoHigh::ZonePolicyBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZonePolicyBroker.html',1,'ace_time::ZoneInfoLow::ZonePolicyBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZonePolicyBroker.html',1,'ace_time::ZoneInfoMid::ZonePolicyBroker']]], - ['zoneprocessor_406',['ZoneProcessor',['../classace__time_1_1ZoneProcessor.html',1,'ace_time']]], - ['zoneprocessorcachebasetemplate_407',['ZoneProcessorCacheBaseTemplate',['../classace__time_1_1ZoneProcessorCacheBaseTemplate.html',1,'ace_time']]], - ['zoneregistrartemplate_408',['ZoneRegistrarTemplate',['../classace__time_1_1ZoneRegistrarTemplate.html',1,'ace_time']]], - ['zoneregistrybroker_409',['ZoneRegistryBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneRegistryBroker.html',1,'ace_time::ZoneInfoHigh::ZoneRegistryBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZoneRegistryBroker.html',1,'ace_time::ZoneInfoLow::ZoneRegistryBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZoneRegistryBroker.html',1,'ace_time::ZoneInfoMid::ZoneRegistryBroker']]], - ['zonerule_410',['ZoneRule',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html',1,'ace_time::ZoneInfoHigh::ZoneRule'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html',1,'ace_time::ZoneInfoLow::ZoneRule'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html',1,'ace_time::ZoneInfoMid::ZoneRule']]], - ['zonerulebroker_411',['ZoneRuleBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneRuleBroker.html',1,'ace_time::ZoneInfoHigh::ZoneRuleBroker'],['../classace__time_1_1ZoneInfoLow_1_1ZoneRuleBroker.html',1,'ace_time::ZoneInfoLow::ZoneRuleBroker'],['../classace__time_1_1ZoneInfoMid_1_1ZoneRuleBroker.html',1,'ace_time::ZoneInfoMid::ZoneRuleBroker']]], - ['zonesorterbyname_412',['ZoneSorterByName',['../classace__time_1_1ZoneSorterByName.html',1,'ace_time']]], - ['zonesorterbyoffsetandname_413',['ZoneSorterByOffsetAndName',['../classace__time_1_1ZoneSorterByOffsetAndName.html',1,'ace_time']]], - ['zonetemplate_414',['ZoneTemplate',['../classace__time_1_1ZoneTemplate.html',1,'ace_time']]] -]; diff --git a/docs/html/search/close.svg b/docs/html/search/close.svg deleted file mode 100644 index a933eea1a..000000000 --- a/docs/html/search/close.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/docs/html/search/defines_0.html b/docs/html/search/defines_0.html deleted file mode 100644 index 15cc3de38..000000000 --- a/docs/html/search/defines_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/defines_0.js b/docs/html/search/defines_0.js deleted file mode 100644 index d6f19c1c5..000000000 --- a/docs/html/search/defines_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['ace_5ftime_5fuse_5fprogmem_731',['ACE_TIME_USE_PROGMEM',['../compat_8h.html#a736a584901fd7e4d3c06ade513afd259',1,'compat.h']]] -]; diff --git a/docs/html/search/files_0.html b/docs/html/search/files_0.html deleted file mode 100644 index 9498842a6..000000000 --- a/docs/html/search/files_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/files_0.js b/docs/html/search/files_0.js deleted file mode 100644 index 3a4c32fd7..000000000 --- a/docs/html/search/files_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['brokercommon_2eh_415',['BrokerCommon.h',['../BrokerCommon_8h.html',1,'']]] -]; diff --git a/docs/html/search/files_1.html b/docs/html/search/files_1.html deleted file mode 100644 index 7050ef48a..000000000 --- a/docs/html/search/files_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/files_1.js b/docs/html/search/files_1.js deleted file mode 100644 index b176363f5..000000000 --- a/docs/html/search/files_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['common_2eh_416',['common.h',['../common_8h.html',1,'']]], - ['compat_2eh_417',['compat.h',['../compat_8h.html',1,'']]] -]; diff --git a/docs/html/search/files_2.html b/docs/html/search/files_2.html deleted file mode 100644 index 497cdf5c7..000000000 --- a/docs/html/search/files_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/files_2.js b/docs/html/search/files_2.js deleted file mode 100644 index b9f658558..000000000 --- a/docs/html/search/files_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['offset_5fdate_5ftime_5fmutation_2eh_418',['offset_date_time_mutation.h',['../offset__date__time__mutation_8h.html',1,'']]] -]; diff --git a/docs/html/search/files_3.html b/docs/html/search/files_3.html deleted file mode 100644 index 1ba106b2d..000000000 --- a/docs/html/search/files_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/files_3.js b/docs/html/search/files_3.js deleted file mode 100644 index 401242d8a..000000000 --- a/docs/html/search/files_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['time_5foffset_5fmutation_2eh_419',['time_offset_mutation.h',['../time__offset__mutation_8h.html',1,'']]], - ['time_5fperiod_5fmutation_2eh_420',['time_period_mutation.h',['../time__period__mutation_8h.html',1,'']]] -]; diff --git a/docs/html/search/files_4.html b/docs/html/search/files_4.html deleted file mode 100644 index 753b7b109..000000000 --- a/docs/html/search/files_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/files_4.js b/docs/html/search/files_4.js deleted file mode 100644 index 0959784cd..000000000 --- a/docs/html/search/files_4.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['zoned_5fdate_5ftime_5fmutation_2eh_421',['zoned_date_time_mutation.h',['../zoned__date__time__mutation_8h.html',1,'']]], - ['zoneinfohigh_2eh_422',['ZoneInfoHigh.h',['../ZoneInfoHigh_8h.html',1,'']]], - ['zoneinfolow_2eh_423',['ZoneInfoLow.h',['../ZoneInfoLow_8h.html',1,'']]], - ['zoneinfomid_2eh_424',['ZoneInfoMid.h',['../ZoneInfoMid_8h.html',1,'']]] -]; diff --git a/docs/html/search/functions_0.html b/docs/html/search/functions_0.html deleted file mode 100644 index eb4c5014c..000000000 --- a/docs/html/search/functions_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js deleted file mode 100644 index 399ba4710..000000000 --- a/docs/html/search/functions_0.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['abbrev_425',['abbrev',['../classace__time_1_1ZonedExtra.html#a8c05778e4b263ae9a46232ec5b8a6bd3',1,'ace_time::ZonedExtra']]], - ['addactivecandidatestoactivepool_426',['addActiveCandidatesToActivePool',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a525bdc0b328667b86afb261e7d259add',1,'ace_time::extended::TransitionStorageTemplate']]], - ['addfreeagenttoactivepool_427',['addFreeAgentToActivePool',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a69ae3ad36c15dbec02eb7d36d68f6b2c',1,'ace_time::extended::TransitionStorageTemplate']]], - ['addfreeagenttocandidatepool_428',['addFreeAgentToCandidatePool',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#abfcaa0998609e6585200977613991b71',1,'ace_time::extended::TransitionStorageTemplate']]], - ['addpriortocandidatepool_429',['addPriorToCandidatePool',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a1ff886ba84bc8db18ce4e7c038529945',1,'ace_time::extended::TransitionStorageTemplate']]] -]; diff --git a/docs/html/search/functions_1.html b/docs/html/search/functions_1.html deleted file mode 100644 index ef4088b89..000000000 --- a/docs/html/search/functions_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js deleted file mode 100644 index 0b4e64dcd..000000000 --- a/docs/html/search/functions_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['basiczoneprocessortemplate_430',['BasicZoneProcessorTemplate',['../classace__time_1_1BasicZoneProcessorTemplate.html#aa4bec4d664d79dbd7b8b2d1fb3b0e26d',1,'ace_time::BasicZoneProcessorTemplate']]], - ['binarysearchbyid_431',['binarySearchById',['../classace__time_1_1ZoneRegistrarTemplate.html#abb1805b14881767f4974e123cf52dd4e',1,'ace_time::ZoneRegistrarTemplate']]] -]; diff --git a/docs/html/search/functions_10.html b/docs/html/search/functions_10.html deleted file mode 100644 index 1bdc12572..000000000 --- a/docs/html/search/functions_10.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_10.js b/docs/html/search/functions_10.js deleted file mode 100644 index fed9531f0..000000000 --- a/docs/html/search/functions_10.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['second_563',['second',['../classace__time_1_1LocalDateTime.html#aefbd9c1ce2f10c2f3be02c785a0c956a',1,'ace_time::LocalDateTime::second()'],['../classace__time_1_1LocalTime.html#ae9cd4e0e411a670b7cac26147c2a3e7b',1,'ace_time::LocalTime::second() const'],['../classace__time_1_1LocalTime.html#ad4ddf0fd1c2263c596a4ee83cf81d5a9',1,'ace_time::LocalTime::second(uint8_t second)'],['../classace__time_1_1OffsetDateTime.html#aea3e2c0b8cfa46fd2b6f1f26dd543eaa',1,'ace_time::OffsetDateTime::second() const'],['../classace__time_1_1OffsetDateTime.html#ad83e4895cec2d58533367bd5e55790bd',1,'ace_time::OffsetDateTime::second(uint8_t second)'],['../classace__time_1_1TimePeriod.html#a587b3f8a8d4a0ae265177e706fdc3464',1,'ace_time::TimePeriod::second() const'],['../classace__time_1_1TimePeriod.html#a9e352d87d8166ac6c5c560e0a91af9a7',1,'ace_time::TimePeriod::second(uint8_t second)'],['../classace__time_1_1ZonedDateTime.html#a99768367d264cb915b924fb9360a641e',1,'ace_time::ZonedDateTime::second() const'],['../classace__time_1_1ZonedDateTime.html#a97d98d1eda7b1f430dd550dfb56a4911',1,'ace_time::ZonedDateTime::second(uint8_t second)'],['../classace__time_1_1LocalDateTime.html#a715acce151915d4efbe821291d9c693e',1,'ace_time::LocalDateTime::second()']]], - ['secondstocurrentepochfromunixepoch64_564',['secondsToCurrentEpochFromUnixEpoch64',['../classace__time_1_1Epoch.html#af9d0de190182e5909eabd84d23b5f76d',1,'ace_time::Epoch']]], - ['setfreeagentaspriorifvalid_565',['setFreeAgentAsPriorIfValid',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a08155e848c4ab241361ab18734f5313e',1,'ace_time::extended::TransitionStorageTemplate']]], - ['setzoneinfostore_566',['setZoneInfoStore',['../classace__time_1_1BasicZoneProcessorTemplate.html#a3205a96013cae3dd7c63bee7464e7707',1,'ace_time::BasicZoneProcessorTemplate::setZoneInfoStore()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#af2dafaf4f63cd02753fe13c44338dbb0',1,'ace_time::ExtendedZoneProcessorTemplate::setZoneInfoStore()']]], - ['setzonekey_567',['setZoneKey',['../classace__time_1_1BasicZoneProcessorTemplate.html#aa979f8f2acf5dd5d8b2afc402ee79cfd',1,'ace_time::BasicZoneProcessorTemplate::setZoneKey()'],['../classace__time_1_1ZoneProcessor.html#af069bc08e2135e460c4442fd0be6d3e1',1,'ace_time::ZoneProcessor::setZoneKey()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ac19dcc290a5bacfc07e4d828d90b0bd2',1,'ace_time::ExtendedZoneProcessorTemplate::setZoneKey()']]], - ['sign_568',['sign',['../classace__time_1_1TimePeriod.html#a06902488cd5ad371690ce1c31ced3140',1,'ace_time::TimePeriod::sign() const'],['../classace__time_1_1TimePeriod.html#a587cafeeea574e2a83a3fc3a9d4a8c4e',1,'ace_time::TimePeriod::sign(int8_t sign)']]], - ['size_569',['size',['../classace__time_1_1ZoneProcessorCacheBaseTemplate.html#abad6179f1e1f64c395804ad6d12bb28c',1,'ace_time::ZoneProcessorCacheBaseTemplate']]], - ['sortids_570',['sortIds',['../classace__time_1_1ZoneSorterByName.html#a9831c8b2afe5a8a18735e36bd2bb0153',1,'ace_time::ZoneSorterByName::sortIds()'],['../classace__time_1_1ZoneSorterByOffsetAndName.html#a9b3e7d4fb639b81f81e6f0ddc0cc04e9',1,'ace_time::ZoneSorterByOffsetAndName::sortIds()']]], - ['sortindexes_571',['sortIndexes',['../classace__time_1_1ZoneSorterByName.html#a4048944237c6ddecae4723acc3e8048f',1,'ace_time::ZoneSorterByName::sortIndexes()'],['../classace__time_1_1ZoneSorterByOffsetAndName.html#a432477df0841504524e8a43655e8080c',1,'ace_time::ZoneSorterByOffsetAndName::sortIndexes()']]], - ['sortnames_572',['sortNames',['../classace__time_1_1ZoneSorterByName.html#a240e4a5eb754a7eb5ee77ceb1b5d8a26',1,'ace_time::ZoneSorterByName::sortNames()'],['../classace__time_1_1ZoneSorterByOffsetAndName.html#afe46c57a208e78c60e35cade1fce3fc2',1,'ace_time::ZoneSorterByOffsetAndName::sortNames()']]], - ['stdoffset_573',['stdOffset',['../classace__time_1_1ZoneTemplate.html#aac484648d371d67ee1809e44817795e2',1,'ace_time::ZoneTemplate::stdOffset()'],['../classace__time_1_1ZonedExtra.html#a3d8652d05e4825b001abbc2463aeb6e2',1,'ace_time::ZonedExtra::stdOffset()']]], - ['swap_574',['swap',['../common_8h.html#a2f64774ab7f61dab204480e2e27c93b4',1,'ace_time']]] -]; diff --git a/docs/html/search/functions_11.html b/docs/html/search/functions_11.html deleted file mode 100644 index 188076ef2..000000000 --- a/docs/html/search/functions_11.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_11.js b/docs/html/search/functions_11.js deleted file mode 100644 index 14e0e721e..000000000 --- a/docs/html/search/functions_11.js +++ /dev/null @@ -1,27 +0,0 @@ -var searchData= -[ - ['timecodetominutes_575',['timeCodeToMinutes',['../classace__time_1_1ZoneInfoMid.html#a4c7dee32a316490c40ae632194b04c7d',1,'ace_time::ZoneInfoMid::timeCodeToMinutes()'],['../classace__time_1_1ZoneInfoLow.html#a7df9098f1a644f3ed0333a8dac9fbc62',1,'ace_time::ZoneInfoLow::timeCodeToMinutes()']]], - ['timecodetoseconds_576',['timeCodeToSeconds',['../classace__time_1_1ZoneInfoHigh.html#a984dee1fd85e1b193623762e7e9786c2',1,'ace_time::ZoneInfoHigh']]], - ['timeoffset_577',['TimeOffset',['../classace__time_1_1TimeOffset.html#a0fca23cf055036370aadd89ca307aae8',1,'ace_time::TimeOffset']]], - ['timeoffset_578',['timeOffset',['../classace__time_1_1OffsetDateTime.html#a168e05a532edbaed7afa4e75fbf636d7',1,'ace_time::OffsetDateTime::timeOffset() const'],['../classace__time_1_1OffsetDateTime.html#a298bf16b90a1c657a66d9b5d77b0b1cb',1,'ace_time::OffsetDateTime::timeOffset(TimeOffset timeOffset)'],['../classace__time_1_1ZonedDateTime.html#ade77d29873786f45459a07d2271d8c64',1,'ace_time::ZonedDateTime::timeOffset()'],['../classace__time_1_1ZonedExtra.html#af0973bd7b093b8516093f74dea15ac7c',1,'ace_time::ZonedExtra::timeOffset()']]], - ['timeperiod_579',['TimePeriod',['../classace__time_1_1TimePeriod.html#a45fb93e84da2991a366a5ebf31b66dde',1,'ace_time::TimePeriod::TimePeriod(uint8_t hour, uint8_t minute, uint8_t second, int8_t sign=1)'],['../classace__time_1_1TimePeriod.html#a0ee304d6c42e01c56ed14783da5a85af',1,'ace_time::TimePeriod::TimePeriod(int32_t seconds=0)']]], - ['timezone_580',['TimeZone',['../classace__time_1_1TimeZone.html#afc1cbc5b5e4cd6f2cff0788a4acb9ed9',1,'ace_time::TimeZone']]], - ['timezone_581',['timeZone',['../classace__time_1_1ZonedDateTime.html#a09369bb6bb3ca5c2f10c68c72c5edfd4',1,'ace_time::ZonedDateTime::timeZone() const'],['../classace__time_1_1ZonedDateTime.html#ad1c861034107afc92fb24a320c0696ba',1,'ace_time::ZonedDateTime::timeZone(const TimeZone &timeZone)']]], - ['timezonedata_582',['TimeZoneData',['../structace__time_1_1TimeZoneData.html#ae24aeb66c44724d8520e8f986644f871',1,'ace_time::TimeZoneData::TimeZoneData(int16_t stdMinutes, int16_t dstMinutes)'],['../structace__time_1_1TimeZoneData.html#a76f99ffc11d0866de37bcc7eb803a975',1,'ace_time::TimeZoneData::TimeZoneData()'],['../structace__time_1_1TimeZoneData.html#a795549e3491feb49b15bb4d6039f9ac8',1,'ace_time::TimeZoneData::TimeZoneData(uint32_t zid)']]], - ['todaysuntilmonthprime_583',['toDaysUntilMonthPrime',['../classace__time_1_1EpochConverterHinnant.html#abde5e43363da84003756995fadfc29f6',1,'ace_time::EpochConverterHinnant']]], - ['todeltaminutes_584',['toDeltaMinutes',['../classace__time_1_1ZoneInfoLow.html#ac16d996ea08813fc69b378623776d07b',1,'ace_time::ZoneInfoLow::toDeltaMinutes()'],['../classace__time_1_1ZoneInfoMid.html#a58b5a6bea0c4aa6189837b056dc867db',1,'ace_time::ZoneInfoMid::toDeltaMinutes()']]], - ['todeltaseconds_585',['toDeltaSeconds',['../classace__time_1_1ZoneInfoHigh.html#a6b1e7c8f3958970ab59a7dc5e5cbf098',1,'ace_time::ZoneInfoHigh']]], - ['toepochdays_586',['toEpochDays',['../classace__time_1_1EpochConverterHinnant.html#add31b88fab6a8932523ddf1c3e457bec',1,'ace_time::EpochConverterHinnant::toEpochDays()'],['../classace__time_1_1EpochConverterJulian.html#a5fcf343db11a56eb87e4dd495654b13b',1,'ace_time::EpochConverterJulian::toEpochDays()'],['../classace__time_1_1LocalDate.html#ab3b76c692aee5e652225616eb871bcae',1,'ace_time::LocalDate::toEpochDays()'],['../classace__time_1_1LocalDateTime.html#abefd57dc8b5d6c66074a809a32ddbb24',1,'ace_time::LocalDateTime::toEpochDays()'],['../classace__time_1_1OffsetDateTime.html#ab243977759b649dc6e5c45fc00c5eb93',1,'ace_time::OffsetDateTime::toEpochDays()'],['../classace__time_1_1ZonedDateTime.html#a1394fa71ef1970c1b340198d3ed7350f',1,'ace_time::ZonedDateTime::toEpochDays()']]], - ['toepochseconds_587',['toEpochSeconds',['../classace__time_1_1LocalDate.html#af1a1350bc5637a4296729b2bc3f61d49',1,'ace_time::LocalDate::toEpochSeconds()'],['../classace__time_1_1ZonedDateTime.html#acfa87cc440b6b3ab00c6aeac190892b3',1,'ace_time::ZonedDateTime::toEpochSeconds()'],['../classace__time_1_1LocalDateTime.html#af174b568718ea7b54528f916806020b8',1,'ace_time::LocalDateTime::toEpochSeconds()'],['../classace__time_1_1OffsetDateTime.html#a6bf75ca2f12bc07db60d00e7e5fc5589',1,'ace_time::OffsetDateTime::toEpochSeconds()']]], - ['tohourminute_588',['toHourMinute',['../classace__time_1_1TimeOffset.html#a20d77892ff9d4a252dcb0cc2e19d3c13',1,'ace_time::TimeOffset']]], - ['tohourminutesecond_589',['toHourMinuteSecond',['../classace__time_1_1TimeOffset.html#a02fc32387fcb3915fabc113ab40e2123',1,'ace_time::TimeOffset']]], - ['tominutes_590',['toMinutes',['../classace__time_1_1TimeOffset.html#a08191e46cf33309fc06f4429505fcf4c',1,'ace_time::TimeOffset']]], - ['tooffsetminutes_591',['toOffsetMinutes',['../classace__time_1_1ZoneInfoLow.html#a82d664bd682159fa996cc2ca17137d81',1,'ace_time::ZoneInfoLow::toOffsetMinutes()'],['../classace__time_1_1ZoneInfoMid.html#acfa62d66e942e4d2647cddcd1a27d0b8',1,'ace_time::ZoneInfoMid::toOffsetMinutes()']]], - ['tooffsetseconds_592',['toOffsetSeconds',['../classace__time_1_1ZoneInfoHigh.html#a61c1a93d3acce6457db7e8c9422955b5',1,'ace_time::ZoneInfoHigh']]], - ['toseconds_593',['toSeconds',['../classace__time_1_1LocalTime.html#a53f1dd8b1eea2592a760bedcdf6d1442',1,'ace_time::LocalTime::toSeconds()'],['../classace__time_1_1TimeOffset.html#a91835a600c3d1a29a94b3fb38ea32e14',1,'ace_time::TimeOffset::toSeconds()'],['../classace__time_1_1TimePeriod.html#ae94aa6fd79718e72eaa1a3f3c4caed9e',1,'ace_time::TimePeriod::toSeconds()']]], - ['tosuffix_594',['toSuffix',['../classace__time_1_1ZoneInfoLow.html#ad751091281b4f36a88acbc2e152927f1',1,'ace_time::ZoneInfoLow::toSuffix()'],['../classace__time_1_1ZoneInfoMid.html#af7440abd21b4c4a435a9e5b4845f10d4',1,'ace_time::ZoneInfoMid::toSuffix()'],['../classace__time_1_1ZoneInfoHigh.html#ab17b999392849004fdbd434add01bc3c',1,'ace_time::ZoneInfoHigh::toSuffix()']]], - ['totimezonedata_595',['toTimeZoneData',['../classace__time_1_1TimeZone.html#af4e12e7f8296fefe6b979fd5b9af5ba7',1,'ace_time::TimeZone']]], - ['tounixdays_596',['toUnixDays',['../classace__time_1_1LocalDate.html#a0fa14ac593d7f693d0190cc4bc5043dd',1,'ace_time::LocalDate::toUnixDays()'],['../classace__time_1_1LocalDateTime.html#aa805a985dcd3636acad1a21845d4be32',1,'ace_time::LocalDateTime::toUnixDays()'],['../classace__time_1_1OffsetDateTime.html#ab74f0bd4a1b74fed62cf0236de723f65',1,'ace_time::OffsetDateTime::toUnixDays()'],['../classace__time_1_1ZonedDateTime.html#af0d37e7ff87736533e58b20058b46a83',1,'ace_time::ZonedDateTime::toUnixDays()']]], - ['tounixseconds64_597',['toUnixSeconds64',['../classace__time_1_1LocalDate.html#a40be39304d67827b663f79c840b80094',1,'ace_time::LocalDate::toUnixSeconds64()'],['../classace__time_1_1LocalDateTime.html#a14bba42198704634aac7dfcec3f90ebd',1,'ace_time::LocalDateTime::toUnixSeconds64()'],['../classace__time_1_1OffsetDateTime.html#a19352ab3d4505bd1463cd1d718d56166',1,'ace_time::OffsetDateTime::toUnixSeconds64()'],['../classace__time_1_1ZonedDateTime.html#a79425f9f71b91ebd450f8587db8dacdf',1,'ace_time::ZonedDateTime::toUnixSeconds64()']]], - ['transitionstoragetemplate_598',['TransitionStorageTemplate',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a8329e86bf34862bcd40bbd2e47a498f8',1,'ace_time::extended::TransitionStorageTemplate']]] -]; diff --git a/docs/html/search/functions_12.html b/docs/html/search/functions_12.html deleted file mode 100644 index eb29d8f9a..000000000 --- a/docs/html/search/functions_12.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_12.js b/docs/html/search/functions_12.js deleted file mode 100644 index f3b648082..000000000 --- a/docs/html/search/functions_12.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['year_599',['year',['../classace__time_1_1LocalDate.html#aa26da19e25f4c8f87d2f36158170f933',1,'ace_time::LocalDate::year() const'],['../classace__time_1_1LocalDate.html#afc711cd99663609cf791516fb0b2d9b7',1,'ace_time::LocalDate::year(int16_t year)'],['../classace__time_1_1LocalDateTime.html#af8475d9a582933a3d7be658657dc8f08',1,'ace_time::LocalDateTime::year() const'],['../classace__time_1_1LocalDateTime.html#a7fce2547e6d4b12d08fbda5c2d0d63d7',1,'ace_time::LocalDateTime::year(int16_t year)'],['../classace__time_1_1OffsetDateTime.html#a92a54034c2590597cdc32bb7067f4386',1,'ace_time::OffsetDateTime::year() const'],['../classace__time_1_1OffsetDateTime.html#ad6859b95bda19cfd5901d2119ed61132',1,'ace_time::OffsetDateTime::year(int16_t year)'],['../classace__time_1_1ZonedDateTime.html#a1837d67faca49ad7dd01fb699125b865',1,'ace_time::ZonedDateTime::year() const'],['../classace__time_1_1ZonedDateTime.html#abb56f5ce068b79f63d25f33a191f76d8',1,'ace_time::ZonedDateTime::year(int16_t year)']]] -]; diff --git a/docs/html/search/functions_13.html b/docs/html/search/functions_13.html deleted file mode 100644 index 3da2ea69c..000000000 --- a/docs/html/search/functions_13.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_13.js b/docs/html/search/functions_13.js deleted file mode 100644 index 4c578c439..000000000 --- a/docs/html/search/functions_13.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['zoneddatetime_600',['ZonedDateTime',['../classace__time_1_1ZonedDateTime.html#acd0b9c37aa77071b6c4f5230f8f32caf',1,'ace_time::ZonedDateTime']]], - ['zonedextra_601',['ZonedExtra',['../classace__time_1_1ZonedExtra.html#a736380ab263fae75ee6ae47b84fd763c',1,'ace_time::ZonedExtra::ZonedExtra()'],['../classace__time_1_1ZonedExtra.html#aa03296dc50d1520a956aa0a0db1763b6',1,'ace_time::ZonedExtra::ZonedExtra(uint8_t type, int32_t stdOffsetSeconds, int32_t dstOffsetSeconds, int32_t reqStdOffsetSeconds, int32_t reqDstOffsetSeconds, const char *abbrev)']]], - ['zoneid_602',['zoneId',['../classace__time_1_1ZoneTemplate.html#a9b621c2e5152c515abde95b7a851d2b9',1,'ace_time::ZoneTemplate']]], - ['zonemanagertemplate_603',['ZoneManagerTemplate',['../classace__time_1_1ZoneManagerTemplate.html#a0840a62852529b360497ccb26e420143',1,'ace_time::ZoneManagerTemplate']]], - ['zoneprocessor_604',['ZoneProcessor',['../classace__time_1_1ZoneProcessor.html#a1b45f4d91195b4dfc63bbd4e4e3acb60',1,'ace_time::ZoneProcessor']]], - ['zoneregistrartemplate_605',['ZoneRegistrarTemplate',['../classace__time_1_1ZoneRegistrarTemplate.html#a9e7c70c2314ec1417c2fbb379737f3b6',1,'ace_time::ZoneRegistrarTemplate']]], - ['zoneregistrysize_606',['zoneRegistrySize',['../classace__time_1_1ZoneManagerTemplate.html#ac72f700d9efeed1548dd248bc1ba8461',1,'ace_time::ZoneManagerTemplate::zoneRegistrySize()'],['../classace__time_1_1ZoneRegistrarTemplate.html#a93605116f7cf7314dc1a7064bcc307ae',1,'ace_time::ZoneRegistrarTemplate::zoneRegistrySize()']]], - ['zonesorterbyname_607',['ZoneSorterByName',['../classace__time_1_1ZoneSorterByName.html#a2368f6c18e703e0786484d03c2aa054b',1,'ace_time::ZoneSorterByName']]], - ['zonesorterbyoffsetandname_608',['ZoneSorterByOffsetAndName',['../classace__time_1_1ZoneSorterByOffsetAndName.html#aac6183cce422e6f268faf5c8ecd292e2',1,'ace_time::ZoneSorterByOffsetAndName']]], - ['zonetemplate_609',['ZoneTemplate',['../classace__time_1_1ZoneTemplate.html#a42c2da9c611a03d854989b2cef6233c7',1,'ace_time::ZoneTemplate::ZoneTemplate(const typename D::ZoneInfo *zoneInfo)'],['../classace__time_1_1ZoneTemplate.html#a165137d713f29ca33ec6800a4d5d18ab',1,'ace_time::ZoneTemplate::ZoneTemplate(const typename D::ZoneInfoBroker &zoneInfo)']]] -]; diff --git a/docs/html/search/functions_2.html b/docs/html/search/functions_2.html deleted file mode 100644 index ca5aa10e6..000000000 --- a/docs/html/search/functions_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js deleted file mode 100644 index bb748ee6a..000000000 --- a/docs/html/search/functions_2.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['calcfoldandoverlap_432',['calcFoldAndOverlap',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a74473a30e5bf9d4a5cb7f9026e6ca3b0',1,'ace_time::extended::TransitionStorageTemplate']]], - ['compareto_433',['compareTo',['../classace__time_1_1LocalDate.html#a51690a660b837645951c1b80b5306ede',1,'ace_time::LocalDate::compareTo()'],['../classace__time_1_1LocalDateTime.html#a54a97cb87d1d14021d655430dd4b7c44',1,'ace_time::LocalDateTime::compareTo()'],['../classace__time_1_1LocalTime.html#afd3c625a0460388afcf11f4a46d1bbd9',1,'ace_time::LocalTime::compareTo()'],['../classace__time_1_1OffsetDateTime.html#a7722d2c53d932f2a40cf74d8f8f9ec09',1,'ace_time::OffsetDateTime::compareTo()'],['../classace__time_1_1TimePeriod.html#a2e84f8990dead97e11601c9a5ec7b09f',1,'ace_time::TimePeriod::compareTo()'],['../classace__time_1_1ZonedDateTime.html#a054c5f047a889f11fdfbb5ef55d212c3',1,'ace_time::ZonedDateTime::compareTo()']]], - ['comparezone_434',['compareZone',['../classace__time_1_1ZoneSorterByOffsetAndName.html#a4d102dc457046f81cb9187179e55e519',1,'ace_time::ZoneSorterByOffsetAndName']]], - ['converttotimeoffset_435',['convertToTimeOffset',['../classace__time_1_1OffsetDateTime.html#a89bc4bbb2b7aa5c36950ac25671707ea',1,'ace_time::OffsetDateTime']]], - ['converttotimezone_436',['convertToTimeZone',['../classace__time_1_1ZonedDateTime.html#a53c4825eb710b77030773b7890cf3909',1,'ace_time::ZonedDateTime']]], - ['createfortimezonedata_437',['createForTimeZoneData',['../classace__time_1_1ManualZoneManager.html#aae6c3a55953025325a860e4c8dfbd663',1,'ace_time::ManualZoneManager::createForTimeZoneData()'],['../classace__time_1_1ZoneManagerTemplate.html#a15b6e9a82d1fabf4e5f9cce40bbb5183',1,'ace_time::ZoneManagerTemplate::createForTimeZoneData(const TimeZoneData &d)']]], - ['createforzoneid_438',['createForZoneId',['../classace__time_1_1ZoneManagerTemplate.html#a52525414c78931c576fb91846165ee3b',1,'ace_time::ZoneManagerTemplate']]], - ['createforzoneindex_439',['createForZoneIndex',['../classace__time_1_1ZoneManagerTemplate.html#a9cda62ecaa6d40b03275f5d9f16f98fa',1,'ace_time::ZoneManagerTemplate']]], - ['createforzoneinfo_440',['createForZoneInfo',['../classace__time_1_1ZoneManagerTemplate.html#a836a4b1d4a56a82dbe6c9a1eb08a48ce',1,'ace_time::ZoneManagerTemplate']]], - ['createforzonename_441',['createForZoneName',['../classace__time_1_1ZoneManagerTemplate.html#ab80354b825bcf12f6b0ed0af47c9973c',1,'ace_time::ZoneManagerTemplate']]], - ['createzoneinfobroker_442',['createZoneInfoBroker',['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoStore.html#ad9d47ce2fa12c66c505ceca0ddc333ea',1,'ace_time::ZoneInfoHigh::ZoneInfoStore::createZoneInfoBroker()'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoStore.html#a59452f6a3cadf83ce8766d97a3689779',1,'ace_time::ZoneInfoLow::ZoneInfoStore::createZoneInfoBroker()'],['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoStore.html#aa5d803362867bab82fe6f1e45ec03bd2',1,'ace_time::ZoneInfoMid::ZoneInfoStore::createZoneInfoBroker()']]], - ['currentepochyear_443',['currentEpochYear',['../classace__time_1_1Epoch.html#a80aaa01a43c16af01b2f22e294eabe04',1,'ace_time::Epoch::currentEpochYear()'],['../classace__time_1_1Epoch.html#a53febc728feffb7c30dd295737bfe47e',1,'ace_time::Epoch::currentEpochYear(int16_t year)']]] -]; diff --git a/docs/html/search/functions_3.html b/docs/html/search/functions_3.html deleted file mode 100644 index d79f55b8e..000000000 --- a/docs/html/search/functions_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js deleted file mode 100644 index 3f325f82d..000000000 --- a/docs/html/search/functions_3.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['day_444',['day',['../classace__time_1_1LocalDate.html#a22ed747f8642691e6254b3e17bf43664',1,'ace_time::LocalDate::day()'],['../classace__time_1_1LocalDateTime.html#a39d5bc65b884fc0ad00e46b96eee71ef',1,'ace_time::LocalDateTime::day() const'],['../classace__time_1_1LocalDateTime.html#a73ebac3c549b8212f20ec9dfd8f15bb3',1,'ace_time::LocalDateTime::day(uint8_t day)'],['../classace__time_1_1OffsetDateTime.html#a128afa44d94db7f8ea6186b090ffe067',1,'ace_time::OffsetDateTime::day() const'],['../classace__time_1_1OffsetDateTime.html#a9de570ed6b93be3be3c1717f0621e8fb',1,'ace_time::OffsetDateTime::day(uint8_t day)'],['../classace__time_1_1ZonedDateTime.html#a951bfb83ff1a03125cc122be6f5da675',1,'ace_time::ZonedDateTime::day() const'],['../classace__time_1_1ZonedDateTime.html#a5ee4d3be47028aec0bed03ba750ef3e9',1,'ace_time::ZonedDateTime::day(uint8_t day)'],['../classace__time_1_1LocalDate.html#aff99fa459db6a5952bdb6c8397e69c56',1,'ace_time::LocalDate::day()']]], - ['dayofweek_445',['dayOfWeek',['../classace__time_1_1OffsetDateTime.html#aacf85984e6500a9a393bff6644d2075a',1,'ace_time::OffsetDateTime::dayOfWeek()'],['../classace__time_1_1ZonedDateTime.html#a252e514a2527c07c2715bb960f6c27d9',1,'ace_time::ZonedDateTime::dayOfWeek()'],['../classace__time_1_1LocalDateTime.html#ad8f220f1853f17858618968d8d90b900',1,'ace_time::LocalDateTime::dayOfWeek()'],['../classace__time_1_1LocalDate.html#a340aaa8f1767def162ccaae8c2d3e2c5',1,'ace_time::LocalDate::dayOfWeek()']]], - ['dayofweeklongstring_446',['dayOfWeekLongString',['../classace__time_1_1DateStrings.html#a324ee6fb27c9ce6fc16bd95a7ef321bd',1,'ace_time::DateStrings']]], - ['dayofweekshortstring_447',['dayOfWeekShortString',['../classace__time_1_1DateStrings.html#a65785a25074404b4ec3c1c94c8d469da',1,'ace_time::DateStrings']]], - ['daysfrominternalepoch_448',['daysFromInternalEpoch',['../classace__time_1_1Epoch.html#ad1838f91c68786dfd2c85ca0b7f40a11',1,'ace_time::Epoch']]], - ['daysinmonth_449',['daysInMonth',['../classace__time_1_1LocalDate.html#a74ac1c52253c7aabb33efd8ce9b50dc2',1,'ace_time::LocalDate']]], - ['daystocurrentepochfrominternalepoch_450',['daysToCurrentEpochFromInternalEpoch',['../classace__time_1_1Epoch.html#a0e8b61782068792e92ebdcc3fa698167',1,'ace_time::Epoch']]], - ['daystocurrentepochfromunixepoch_451',['daysToCurrentEpochFromUnixEpoch',['../classace__time_1_1Epoch.html#aa2614e5eb4c05b43ff70f6ccfcf3819c',1,'ace_time::Epoch']]], - ['daysuntil_452',['daysUntil',['../classace__time_1_1LocalDate.html#ad02c1b6d8f50ec0ebda2596007697958',1,'ace_time::LocalDate']]], - ['dstoffset_453',['dstOffset',['../classace__time_1_1ZonedExtra.html#a60725bd81847fd45c91080ddf4459b6b',1,'ace_time::ZonedExtra']]] -]; diff --git a/docs/html/search/functions_4.html b/docs/html/search/functions_4.html deleted file mode 100644 index 1657cad0d..000000000 --- a/docs/html/search/functions_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js deleted file mode 100644 index 52d010467..000000000 --- a/docs/html/search/functions_4.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['epochvalidyearlower_454',['epochValidYearLower',['../classace__time_1_1Epoch.html#a37e9afa71bee0a75f290f33e828d7e50',1,'ace_time::Epoch']]], - ['epochvalidyearupper_455',['epochValidYearUpper',['../classace__time_1_1Epoch.html#a8eba380b62d5d4b38ae170a1a326389a',1,'ace_time::Epoch']]], - ['equals_456',['equals',['../classace__time_1_1ZoneProcessor.html#aa78857884d8b64d4be4b499970d63a70',1,'ace_time::ZoneProcessor::equals()'],['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html#acb4f07ec77b476517e273c13ca70771b',1,'ace_time::ZoneInfoHigh::ZoneInfoBroker::equals()'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html#a43f3717f9b4213536f688c929535480f',1,'ace_time::ZoneInfoLow::ZoneInfoBroker::equals()'],['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html#a9c14b7402ea7a478b0f0a6eb7c60ba56',1,'ace_time::ZoneInfoMid::ZoneInfoBroker::equals()']]], - ['equalszonekey_457',['equalsZoneKey',['../classace__time_1_1BasicZoneProcessorTemplate.html#a4a7bd9b8ea16c00be446907bc25074d8',1,'ace_time::BasicZoneProcessorTemplate::equalsZoneKey()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a868fee73fd64edc2a4468ac1d6c9b832',1,'ace_time::ExtendedZoneProcessorTemplate::equalsZoneKey()'],['../classace__time_1_1ZoneProcessor.html#aa5a25a2082ceed26ff15eb72cd1c5724',1,'ace_time::ZoneProcessor::equalsZoneKey()']]], - ['extendedzoneprocessortemplate_458',['ExtendedZoneProcessorTemplate',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a7df3f32c48319f719f24c1bc97f47953',1,'ace_time::ExtendedZoneProcessorTemplate']]] -]; diff --git a/docs/html/search/functions_5.html b/docs/html/search/functions_5.html deleted file mode 100644 index 9301d6b9c..000000000 --- a/docs/html/search/functions_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js deleted file mode 100644 index f896792e5..000000000 --- a/docs/html/search/functions_5.js +++ /dev/null @@ -1,37 +0,0 @@ -var searchData= -[ - ['fillindexes_459',['fillIndexes',['../classace__time_1_1ZoneSorterByOffsetAndName.html#a6aa614c7e97d1740606909317205a620',1,'ace_time::ZoneSorterByOffsetAndName::fillIndexes()'],['../classace__time_1_1ZoneSorterByName.html#abd2459d83e1b1bfe024abd1d4e821b15',1,'ace_time::ZoneSorterByName::fillIndexes()']]], - ['findbyepochseconds_460',['findByEpochSeconds',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a3c4e4a0b5a79643affefc890ac3f9bca',1,'ace_time::ExtendedZoneProcessorTemplate::findByEpochSeconds()'],['../classace__time_1_1ZoneProcessor.html#a1bbfcaab0259f0195496184181a7119a',1,'ace_time::ZoneProcessor::findByEpochSeconds()'],['../classace__time_1_1BasicZoneProcessorTemplate.html#a0627f5f54422c35f6b9af61ab0f5f7f7',1,'ace_time::BasicZoneProcessorTemplate::findByEpochSeconds(acetime_t epochSeconds) const override']]], - ['findbylocaldatetime_461',['findByLocalDateTime',['../classace__time_1_1BasicZoneProcessorTemplate.html#a5002bbf442b6fc6f1956d5903b3ad948',1,'ace_time::BasicZoneProcessorTemplate::findByLocalDateTime()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#af1a9e3f9aa5cbe99e2f4fc9cd876ab87',1,'ace_time::ExtendedZoneProcessorTemplate::findByLocalDateTime()'],['../classace__time_1_1ZoneProcessor.html#a9dbdc5b1a6a760e37470142dc814ae92',1,'ace_time::ZoneProcessor::findByLocalDateTime()']]], - ['findindexforid_462',['findIndexForId',['../classace__time_1_1ZoneRegistrarTemplate.html#a31dc2a7bd05a580d2b9cd63e54a2b209',1,'ace_time::ZoneRegistrarTemplate']]], - ['findindexforidbinary_463',['findIndexForIdBinary',['../classace__time_1_1ZoneRegistrarTemplate.html#a14482ef50da79403af4d5e858f17f0c6',1,'ace_time::ZoneRegistrarTemplate']]], - ['findindexforidlinear_464',['findIndexForIdLinear',['../classace__time_1_1ZoneRegistrarTemplate.html#aac0c1511da0aa580ce5f2b5f8525a7b0',1,'ace_time::ZoneRegistrarTemplate']]], - ['findindexforname_465',['findIndexForName',['../classace__time_1_1ZoneRegistrarTemplate.html#a870407e2a7d22fea5c0d3eb2bef11e24',1,'ace_time::ZoneRegistrarTemplate']]], - ['findtransitionfordatetime_466',['findTransitionForDateTime',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a9beded3f4f9c61ba3edda2cb73f44513',1,'ace_time::extended::TransitionStorageTemplate']]], - ['findtransitionforseconds_467',['findTransitionForSeconds',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#ae905c24fb84c15d83d11465d9a771213',1,'ace_time::extended::TransitionStorageTemplate']]], - ['fold_468',['fold',['../classace__time_1_1LocalDateTime.html#a6d082508f73c7a9dbca81c0a2287eb40',1,'ace_time::LocalDateTime::fold() const'],['../classace__time_1_1LocalDateTime.html#a282ea1a664060ba70cc30dfbbfdfc3c4',1,'ace_time::LocalDateTime::fold(uint8_t fold)'],['../classace__time_1_1LocalTime.html#a2ce63c8501efc8026f722c43935c3d2d',1,'ace_time::LocalTime::fold() const'],['../classace__time_1_1LocalTime.html#af21f20be4d4194d909e49bdf3a58677d',1,'ace_time::LocalTime::fold(uint8_t fold)'],['../classace__time_1_1OffsetDateTime.html#a7664a39b4b4227657497163d25965edc',1,'ace_time::OffsetDateTime::fold() const'],['../classace__time_1_1OffsetDateTime.html#ad886ec1066627dc8826ebef799a4b282',1,'ace_time::OffsetDateTime::fold(uint8_t fold)'],['../classace__time_1_1ZonedDateTime.html#a4e5c076c20cd25aae740ae0036c846c9',1,'ace_time::ZonedDateTime::fold() const'],['../classace__time_1_1ZonedDateTime.html#a0d80579bc7eafd9b0cff8ad9c3792c29',1,'ace_time::ZonedDateTime::fold(uint8_t fold)']]], - ['forcomponents_469',['forComponents',['../classace__time_1_1LocalDate.html#a03470885c11a33172e869825327b3058',1,'ace_time::LocalDate::forComponents()'],['../classace__time_1_1ZonedExtra.html#a563b8f0566366549ce22d4ece3608208',1,'ace_time::ZonedExtra::forComponents()'],['../classace__time_1_1ZonedDateTime.html#a00ab2ef530c51e068b3b67dc91a69ccf',1,'ace_time::ZonedDateTime::forComponents()'],['../classace__time_1_1LocalTime.html#a200a5eae3db7be400000414d058be248',1,'ace_time::LocalTime::forComponents()'],['../classace__time_1_1LocalDateTime.html#a2fc60cd721cbfe128e4feec378bb9be0',1,'ace_time::LocalDateTime::forComponents()'],['../classace__time_1_1OffsetDateTime.html#afcc18763dd38086c17221897d45f9b2c',1,'ace_time::OffsetDateTime::forComponents()']]], - ['fordatestring_470',['forDateString',['../classace__time_1_1ZonedDateTime.html#af1a0e9051776bade2c00cbaf1c39dd97',1,'ace_time::ZonedDateTime::forDateString(const char *dateString)'],['../classace__time_1_1ZonedDateTime.html#a4dec313e98aba074b99efcdc22be6333',1,'ace_time::ZonedDateTime::forDateString(const __FlashStringHelper *dateString)'],['../classace__time_1_1OffsetDateTime.html#a8c903f558a8ad067e415e79fa3a204e8',1,'ace_time::OffsetDateTime::forDateString(const __FlashStringHelper *dateString)'],['../classace__time_1_1OffsetDateTime.html#aa9a42a7edde026280d0a31b1a3208f11',1,'ace_time::OffsetDateTime::forDateString(const char *dateString)'],['../classace__time_1_1LocalDateTime.html#a165bb7c96c7936fe23ae1032b7f1217a',1,'ace_time::LocalDateTime::forDateString(const __FlashStringHelper *dateString)'],['../classace__time_1_1LocalDateTime.html#a7009318e9e3934c7ec480442a6ea0a4c',1,'ace_time::LocalDateTime::forDateString(const char *dateString)'],['../classace__time_1_1LocalDate.html#a1cb1f5070d7141136327b544560e8ebe',1,'ace_time::LocalDate::forDateString(const char *dateString)']]], - ['fordatestringchainable_471',['forDateStringChainable',['../classace__time_1_1LocalDate.html#ae2cee5a47f8b7d8601b6b7f5a9b61477',1,'ace_time::LocalDate::forDateStringChainable()'],['../classace__time_1_1LocalDateTime.html#ad14a21540e27fad838c798ede040d480',1,'ace_time::LocalDateTime::forDateStringChainable()'],['../classace__time_1_1OffsetDateTime.html#a21dffc4999ae12be1d4fc30d5c66dd27',1,'ace_time::OffsetDateTime::forDateStringChainable()']]], - ['forepochdays_472',['forEpochDays',['../classace__time_1_1LocalDate.html#ad3fffbf6406717f246b7331324d9c903',1,'ace_time::LocalDate']]], - ['forepochseconds_473',['forEpochSeconds',['../classace__time_1_1ZonedExtra.html#aa0408666e47fd563a3b4c754bd8e98da',1,'ace_time::ZonedExtra::forEpochSeconds()'],['../classace__time_1_1ZonedDateTime.html#a9c02e18eba7ef8af1e41d4ecfe727bee',1,'ace_time::ZonedDateTime::forEpochSeconds()'],['../classace__time_1_1OffsetDateTime.html#ab9a8f6f8046721947f6922033cc0504f',1,'ace_time::OffsetDateTime::forEpochSeconds()'],['../classace__time_1_1LocalDate.html#ab04f803683ec7c9ae5d4037efb297a77',1,'ace_time::LocalDate::forEpochSeconds()'],['../classace__time_1_1LocalDateTime.html#a22d1cb9b735e129f6a495f21d0c408e9',1,'ace_time::LocalDateTime::forEpochSeconds(acetime_t epochSeconds, uint8_t fold=0)']]], - ['forerror_474',['forError',['../classace__time_1_1LocalDateTime.html#a5e238445e0b676f3a166e5bdc3794aa9',1,'ace_time::LocalDateTime::forError()'],['../classace__time_1_1LocalTime.html#a8247076d11be2b794b40930854f5739e',1,'ace_time::LocalTime::forError()'],['../classace__time_1_1OffsetDateTime.html#a7212a3a5c48a938f10cbebbc41d5deeb',1,'ace_time::OffsetDateTime::forError()'],['../classace__time_1_1TimeOffset.html#a806d24189da02dd31a7570b0dcddc542',1,'ace_time::TimeOffset::forError()'],['../classace__time_1_1TimePeriod.html#a1a712b883579f26ea7afc158205e289b',1,'ace_time::TimePeriod::forError()'],['../classace__time_1_1TimeZone.html#aa145ae518fa6bfbcd9c712a7047d510d',1,'ace_time::TimeZone::forError()'],['../classace__time_1_1ZonedDateTime.html#a9ad7a24801f799498c1c51c33fc5c971',1,'ace_time::ZonedDateTime::forError()'],['../classace__time_1_1ZonedExtra.html#a189d79c0bb9254bcef61d6625fe590bb',1,'ace_time::ZonedExtra::forError()'],['../classace__time_1_1LocalDate.html#a14037a4c8d2eb68f35cbb95697d95297',1,'ace_time::LocalDate::forError()']]], - ['forhourminute_475',['forHourMinute',['../classace__time_1_1TimeOffset.html#aeb43c8af6b3b71f1bbabdfb58be62eb7',1,'ace_time::TimeOffset::forHourMinute()'],['../classace__time_1_1TimeZone.html#af2f141b5117d795d055871ebbe160ae9',1,'ace_time::TimeZone::forHourMinute()']]], - ['forhourminutesecond_476',['forHourMinuteSecond',['../classace__time_1_1TimeOffset.html#ac1fe84df3eeee8d704ccf3b10fdad779',1,'ace_time::TimeOffset']]], - ['forhours_477',['forHours',['../classace__time_1_1TimeOffset.html#ad1aebe35229af3a3739a6ba469007b69',1,'ace_time::TimeOffset::forHours()'],['../classace__time_1_1TimeZone.html#a76e6552e24c32c39dfd699b58cbdbd78',1,'ace_time::TimeZone::forHours()']]], - ['forlocaldatetime_478',['forLocalDateTime',['../classace__time_1_1ZonedDateTime.html#a2e2f75c157fd83d613cd9268f88fdc8f',1,'ace_time::ZonedDateTime::forLocalDateTime()'],['../classace__time_1_1ZonedExtra.html#a3c6722af61fe738c448bf82d250b52c3',1,'ace_time::ZonedExtra::forLocalDateTime()']]], - ['forlocaldatetimeandoffset_479',['forLocalDateTimeAndOffset',['../classace__time_1_1OffsetDateTime.html#a671148a5714121eb9b96ddd88f1fe76d',1,'ace_time::OffsetDateTime']]], - ['forminutes_480',['forMinutes',['../classace__time_1_1TimeZone.html#a964cbd051a7261af0a0c792024199d2d',1,'ace_time::TimeZone::forMinutes()'],['../classace__time_1_1TimeOffset.html#aeb8480a999c6eba58304d02ac32133d2',1,'ace_time::TimeOffset::forMinutes(int16_t minutes)']]], - ['foroffsetstring_481',['forOffsetString',['../classace__time_1_1TimeOffset.html#a432ebcdc40e78c55c6091288ea3ad0eb',1,'ace_time::TimeOffset']]], - ['foroffsetstringchainable_482',['forOffsetStringChainable',['../classace__time_1_1TimeOffset.html#af20209f3ecb677c792721f2a9d4f527e',1,'ace_time::TimeOffset']]], - ['forseconds_483',['forSeconds',['../classace__time_1_1LocalTime.html#add45f59f01066a9551f33bab114df263',1,'ace_time::LocalTime::forSeconds()'],['../classace__time_1_1TimeOffset.html#aa898cf29f39d787acf60cf1424e39d48',1,'ace_time::TimeOffset::forSeconds()']]], - ['fortimeoffset_484',['forTimeOffset',['../classace__time_1_1TimeZone.html#ae12df54ad1a75a6b0f1c24ff71af4bb9',1,'ace_time::TimeZone']]], - ['fortimestring_485',['forTimeString',['../classace__time_1_1LocalTime.html#a88a75981aa0f2b612e43fe916a7772ce',1,'ace_time::LocalTime']]], - ['fortimestringchainable_486',['forTimeStringChainable',['../classace__time_1_1LocalTime.html#a61b5c210656837d812bfc75e7eb3e7c5',1,'ace_time::LocalTime']]], - ['forunixdays_487',['forUnixDays',['../classace__time_1_1LocalDate.html#ac79dde1baaf4f283cea2766a6985fb95',1,'ace_time::LocalDate']]], - ['forunixseconds64_488',['forUnixSeconds64',['../classace__time_1_1LocalDateTime.html#a56e5e866f3597d203bc4f0971d56b849',1,'ace_time::LocalDateTime::forUnixSeconds64()'],['../classace__time_1_1ZonedDateTime.html#a95b4ea8234de38744d3962291fb27ecd',1,'ace_time::ZonedDateTime::forUnixSeconds64()'],['../classace__time_1_1OffsetDateTime.html#a04825a66920ce8e9ab826d007e6a7f1d',1,'ace_time::OffsetDateTime::forUnixSeconds64()'],['../classace__time_1_1LocalDate.html#a21925fbcffdaaf85918aafcc4ee9547b',1,'ace_time::LocalDate::forUnixSeconds64()']]], - ['forutc_489',['forUtc',['../classace__time_1_1TimeZone.html#a6e0d4b2231806e3d42ed0191fe6db13a',1,'ace_time::TimeZone']]], - ['forzoneinfo_490',['forZoneInfo',['../classace__time_1_1TimeZone.html#a3df63f781343b52738aac8bf9e1ed4ce',1,'ace_time::TimeZone::forZoneInfo(const basic::Info::ZoneInfo *zoneInfo, BasicZoneProcessor *zoneProcessor)'],['../classace__time_1_1TimeZone.html#a523ab6ddb8247b32f4189103ae81b9ac',1,'ace_time::TimeZone::forZoneInfo(const extended::Info::ZoneInfo *zoneInfo, ExtendedZoneProcessor *zoneProcessor)'],['../classace__time_1_1TimeZone.html#a07eb07b41e832f634f8a9190848601c0',1,'ace_time::TimeZone::forZoneInfo(const complete::Info::ZoneInfo *zoneInfo, CompleteZoneProcessor *zoneProcessor)']]], - ['forzonekey_491',['forZoneKey',['../classace__time_1_1TimeZone.html#aa6aeb15831cac0ebd92996b5e4ab2813',1,'ace_time::TimeZone']]], - ['fromepochdays_492',['fromEpochDays',['../classace__time_1_1EpochConverterHinnant.html#ace2afb44c72b96bed22426f7c1d4d83d',1,'ace_time::EpochConverterHinnant::fromEpochDays()'],['../classace__time_1_1EpochConverterJulian.html#ae9461207f9cf0f8803bd4ae02697be5e',1,'ace_time::EpochConverterJulian::fromEpochDays()']]] -]; diff --git a/docs/html/search/functions_6.html b/docs/html/search/functions_6.html deleted file mode 100644 index 9c4f5fc65..000000000 --- a/docs/html/search/functions_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js deleted file mode 100644 index 396bf93f2..000000000 --- a/docs/html/search/functions_6.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['getallocsize_493',['getAllocSize',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a2b3ddc62af0e1885c981df1d8e364fca',1,'ace_time::extended::TransitionStorageTemplate']]], - ['getdstoffset_494',['getDstOffset',['../classace__time_1_1TimeZone.html#aab84a1543135827889c736eb96298fb4',1,'ace_time::TimeZone']]], - ['getfreeagent_495',['getFreeAgent',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a1228426556bcb6aebb75a6a56698b354',1,'ace_time::extended::TransitionStorageTemplate']]], - ['getoffsetdatetime_496',['getOffsetDateTime',['../classace__time_1_1TimeZone.html#a542c6ccaf3b95419ef94a3709bee9197',1,'ace_time::TimeZone::getOffsetDateTime(const LocalDateTime &ldt) const'],['../classace__time_1_1TimeZone.html#a61726ae31e9bb7d73b9d69475e40eb70',1,'ace_time::TimeZone::getOffsetDateTime(acetime_t epochSeconds) const']]], - ['getprior_497',['getPrior',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a7e627a280a08709019501bd1a8dfcc13',1,'ace_time::extended::TransitionStorageTemplate']]], - ['getstdoffset_498',['getStdOffset',['../classace__time_1_1TimeZone.html#af4f490577af626bb2800ad62ac861668',1,'ace_time::TimeZone']]], - ['gettransitionallocsize_499',['getTransitionAllocSize',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a4cd14f4f288745225bfc33e7b11fbd32',1,'ace_time::ExtendedZoneProcessorTemplate']]], - ['gettype_500',['getType',['../classace__time_1_1TimeZone.html#a83e37a197999c7c9890fde96b741f6c6',1,'ace_time::TimeZone::getType()'],['../classace__time_1_1ZoneProcessor.html#a059a9ffeab7e8885e6abe0e0abeb9bde',1,'ace_time::ZoneProcessor::getType()']]], - ['getzonedextra_501',['getZonedExtra',['../classace__time_1_1TimeZone.html#a0095191671e031bff8e7dfdc7fd47535',1,'ace_time::TimeZone::getZonedExtra(acetime_t epochSeconds) const'],['../classace__time_1_1TimeZone.html#aeccf13333f462bce601d9b887e30054a',1,'ace_time::TimeZone::getZonedExtra(const LocalDateTime &ldt) const']]], - ['getzoneforindex_502',['getZoneForIndex',['../classace__time_1_1ZoneManagerTemplate.html#a452b98580e65af1068286094be42e040',1,'ace_time::ZoneManagerTemplate']]], - ['getzoneid_503',['getZoneId',['../classace__time_1_1BasicZoneProcessorTemplate.html#a78ec81b3d61ed37c6839cbe38325af0b',1,'ace_time::BasicZoneProcessorTemplate::getZoneId()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ad4a60d9cebddd24900f03df5325896c0',1,'ace_time::ExtendedZoneProcessorTemplate::getZoneId()'],['../classace__time_1_1TimeZone.html#a308954a7d1e74a155a821c3261a287ec',1,'ace_time::TimeZone::getZoneId()'],['../classace__time_1_1ZoneProcessor.html#a76f48e7b38f91503b1e522bee11dbd49',1,'ace_time::ZoneProcessor::getZoneId()']]], - ['getzoneinfoforid_504',['getZoneInfoForId',['../classace__time_1_1ZoneRegistrarTemplate.html#a9971c5693362aefc17416b3007a31f63',1,'ace_time::ZoneRegistrarTemplate']]], - ['getzoneinfoforindex_505',['getZoneInfoForIndex',['../classace__time_1_1ZoneRegistrarTemplate.html#aae7f0e917313a6e9f7cd2305a8c81873',1,'ace_time::ZoneRegistrarTemplate']]], - ['getzoneinfoforname_506',['getZoneInfoForName',['../classace__time_1_1ZoneRegistrarTemplate.html#a36c2dcd686aa527161b089d73d93a695',1,'ace_time::ZoneRegistrarTemplate']]], - ['getzoneprocessor_507',['getZoneProcessor',['../classace__time_1_1ZoneManagerTemplate.html#a2dc901f8974c65837645a2a6e45212d4',1,'ace_time::ZoneManagerTemplate::getZoneProcessor()'],['../classace__time_1_1ZoneProcessorCacheBaseTemplate.html#a0a49442da903f5d1da91cb1aeb003d90',1,'ace_time::ZoneProcessorCacheBaseTemplate::getZoneProcessor(uintptr_t zoneKey)']]], - ['getzoneprocessoratindex_508',['getZoneProcessorAtIndex',['../classace__time_1_1ZoneProcessorCacheBaseTemplate.html#a7e3d26ffc8d6b12e50c4edaeb4602e0a',1,'ace_time::ZoneProcessorCacheBaseTemplate']]] -]; diff --git a/docs/html/search/functions_7.html b/docs/html/search/functions_7.html deleted file mode 100644 index 46b5c0f61..000000000 --- a/docs/html/search/functions_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js deleted file mode 100644 index fd79bc771..000000000 --- a/docs/html/search/functions_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['hour_509',['hour',['../classace__time_1_1LocalDateTime.html#acf9fb3d8589c0aa1c97a96b4a681b9e0',1,'ace_time::LocalDateTime::hour() const'],['../classace__time_1_1LocalDateTime.html#a1cd42a8deab046170d4d9684dfc0f096',1,'ace_time::LocalDateTime::hour(uint8_t hour)'],['../classace__time_1_1LocalTime.html#acfef7fa36f67066b73fbc62e6cb52f54',1,'ace_time::LocalTime::hour() const'],['../classace__time_1_1LocalTime.html#a70b876a164024d4405034813354cc532',1,'ace_time::LocalTime::hour(uint8_t hour)'],['../classace__time_1_1OffsetDateTime.html#a294513b3f4f1a438e1272c8cfe74f5f7',1,'ace_time::OffsetDateTime::hour() const'],['../classace__time_1_1OffsetDateTime.html#a802e21f048e37b1042b7626d216d58c9',1,'ace_time::OffsetDateTime::hour(uint8_t hour)'],['../classace__time_1_1TimePeriod.html#ac107f2508aed6d9e0478dd9ed4f82253',1,'ace_time::TimePeriod::hour() const'],['../classace__time_1_1TimePeriod.html#a322a0c18a48938c2d69befb9b918e21e',1,'ace_time::TimePeriod::hour(uint8_t hour)'],['../classace__time_1_1ZonedDateTime.html#a0b9b68dede5df8abe822155a8a10e914',1,'ace_time::ZonedDateTime::hour() const'],['../classace__time_1_1ZonedDateTime.html#ac0cd8566ebf355e33ca9a169a08adaf8',1,'ace_time::ZonedDateTime::hour(uint8_t hour)']]] -]; diff --git a/docs/html/search/functions_8.html b/docs/html/search/functions_8.html deleted file mode 100644 index 31a1d9503..000000000 --- a/docs/html/search/functions_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js deleted file mode 100644 index e0e0178f9..000000000 --- a/docs/html/search/functions_8.js +++ /dev/null @@ -1,24 +0,0 @@ -var searchData= -[ - ['increment15minutes_510',['increment15Minutes',['../time__offset__mutation_8h.html#af818e1b767abecf61eff504d8bb57487',1,'ace_time::time_offset_mutation']]], - ['incrementday_511',['incrementDay',['../zoned__date__time__mutation_8h.html#a089e5d1a4afbd9352bf48f71220e8eb0',1,'ace_time::zoned_date_time_mutation::incrementDay()'],['../offset__date__time__mutation_8h.html#a46621955cb808342ce03760c5dd60ec7',1,'ace_time::offset_date_time_mutation::incrementDay()']]], - ['incrementhour_512',['incrementHour',['../zoned__date__time__mutation_8h.html#a534e666127ea82f08724b322e7ffb6f6',1,'ace_time::zoned_date_time_mutation::incrementHour()'],['../time__period__mutation_8h.html#a45350b2771d421d868b8faf76ab375dc',1,'ace_time::time_period_mutation::incrementHour(TimePeriod &period)'],['../time__period__mutation_8h.html#afd97b6d30998f498072c6822aee232bb',1,'ace_time::time_period_mutation::incrementHour(TimePeriod &period, uint8_t limit)'],['../offset__date__time__mutation_8h.html#a82c0f2cdd6cb38633e573a5bed5c7e89',1,'ace_time::offset_date_time_mutation::incrementHour()']]], - ['incrementminute_513',['incrementMinute',['../zoned__date__time__mutation_8h.html#a674bb7c34675092900fabccf281e72e8',1,'ace_time::zoned_date_time_mutation::incrementMinute()'],['../time__period__mutation_8h.html#acd7971ab35bd01b010d90681df4b7891',1,'ace_time::time_period_mutation::incrementMinute()'],['../offset__date__time__mutation_8h.html#af44183580d913d0d8e1cac00e0145bde',1,'ace_time::offset_date_time_mutation::incrementMinute()']]], - ['incrementmonth_514',['incrementMonth',['../zoned__date__time__mutation_8h.html#af28ed8f5cad3d55963acb052ca1c9af2',1,'ace_time::zoned_date_time_mutation::incrementMonth()'],['../offset__date__time__mutation_8h.html#a0d9ee7f1ce28e33bb8aa9879e11cfbda',1,'ace_time::offset_date_time_mutation::incrementMonth()']]], - ['incrementyear_515',['incrementYear',['../zoned__date__time__mutation_8h.html#a22b43d8b002dc3dafb807923187ad5a4',1,'ace_time::zoned_date_time_mutation::incrementYear()'],['../offset__date__time__mutation_8h.html#a3eb6b186402c4e7bcc85b3c99de47608',1,'ace_time::offset_date_time_mutation::incrementYear()']]], - ['indexforzoneid_516',['indexForZoneId',['../classace__time_1_1ZoneManagerTemplate.html#a3842a30cef2e45959acdf71940ed7797',1,'ace_time::ZoneManagerTemplate']]], - ['indexforzonename_517',['indexForZoneName',['../classace__time_1_1ZoneManagerTemplate.html#a00c6224407d3eb343665ac4a476cbc9d',1,'ace_time::ZoneManagerTemplate']]], - ['init_518',['init',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#ae9c21b618b0a959e57d39744ea9a64e3',1,'ace_time::extended::TransitionStorageTemplate']]], - ['initforepochseconds_519',['initForEpochSeconds',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ab702493c63607bd61a4382bdf783d7e1',1,'ace_time::ExtendedZoneProcessorTemplate']]], - ['initforyear_520',['initForYear',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#af55cf089abeaada237ac833f8ed3e7a7',1,'ace_time::ExtendedZoneProcessorTemplate']]], - ['isdst_521',['isDst',['../classace__time_1_1TimeZone.html#adde333bb4bb1b62f423f168dafecf2d7',1,'ace_time::TimeZone']]], - ['iserror_522',['isError',['../classace__time_1_1ZonedDateTime.html#a56d29157131aaaed23cbcfccfa664192',1,'ace_time::ZonedDateTime::isError()'],['../classace__time_1_1LocalDate.html#a0c718d4fea5ad37c1263766b44b532ff',1,'ace_time::LocalDate::isError()'],['../classace__time_1_1LocalDateTime.html#a42ad78d8e8c81c09494cdf4f0e6de123',1,'ace_time::LocalDateTime::isError()'],['../classace__time_1_1LocalTime.html#aef4912030e6b9a2eaa77fe5ae56f9bec',1,'ace_time::LocalTime::isError()'],['../classace__time_1_1OffsetDateTime.html#a2629bb76f05aaf1809e979ddf520238a',1,'ace_time::OffsetDateTime::isError()'],['../classace__time_1_1TimeOffset.html#af309e727af82a3cb041e6b72ed702b18',1,'ace_time::TimeOffset::isError()'],['../classace__time_1_1TimePeriod.html#af1ab3f561ce48a6b1983c2c75573631f',1,'ace_time::TimePeriod::isError()'],['../classace__time_1_1TimeZone.html#aad6557e555e5dd6ac2c14342a0bb3abe',1,'ace_time::TimeZone::isError()'],['../classace__time_1_1ZonedExtra.html#ab621ebc6e2690f5f6c5fc11ef6116a91',1,'ace_time::ZonedExtra::isError()']]], - ['isfilled_523',['isFilled',['../classace__time_1_1ZoneProcessor.html#a661878a49493ba4a45cb6120a1bd0319',1,'ace_time::ZoneProcessor']]], - ['isleapyear_524',['isLeapYear',['../classace__time_1_1LocalDate.html#a0738e87ef5b0cb1da934e831a0a62d7e',1,'ace_time::LocalDate']]], - ['islink_525',['isLink',['../classace__time_1_1ZoneProcessor.html#abc0ad2c3b5ebaaea73ee7376870464f4',1,'ace_time::ZoneProcessor::isLink()'],['../classace__time_1_1TimeZone.html#a85e49f3edc49c334310dede4b12233c2',1,'ace_time::TimeZone::isLink()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#afeaabf2e36c2ef84c8a48c4903f2a20f',1,'ace_time::ExtendedZoneProcessorTemplate::isLink()'],['../classace__time_1_1BasicZoneProcessorTemplate.html#aca1b11ab04c074c65b692b4edc669f90',1,'ace_time::BasicZoneProcessorTemplate::isLink()']]], - ['isnull_526',['isNull',['../classace__time_1_1ZoneTemplate.html#a70e01b502f1d132ce8517c803241883a',1,'ace_time::ZoneTemplate']]], - ['issorted_527',['isSorted',['../classace__time_1_1ZoneRegistrarTemplate.html#ad1e4878ef6ddb4452f4a8580380207b4',1,'ace_time::ZoneRegistrarTemplate']]], - ['isutc_528',['isUtc',['../classace__time_1_1TimeZone.html#a6d6ff4bcb32d008473c7bd34123e43d8',1,'ace_time::TimeZone']]], - ['isyearvalid_529',['isYearValid',['../classace__time_1_1LocalDate.html#a8002184b77f5c589146cb610ec156165',1,'ace_time::LocalDate']]], - ['iszero_530',['isZero',['../classace__time_1_1TimeOffset.html#a562e68d6ceb65d4b7ddf151c4220da32',1,'ace_time::TimeOffset']]] -]; diff --git a/docs/html/search/functions_9.html b/docs/html/search/functions_9.html deleted file mode 100644 index 9a8e4290c..000000000 --- a/docs/html/search/functions_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js deleted file mode 100644 index 5eee79c77..000000000 --- a/docs/html/search/functions_9.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['kname_531',['kname',['../classace__time_1_1ZoneTemplate.html#a3279bf3377120e2fbe5aaf98a5b8344a',1,'ace_time::ZoneTemplate']]] -]; diff --git a/docs/html/search/functions_a.html b/docs/html/search/functions_a.html deleted file mode 100644 index 5ecc152ca..000000000 --- a/docs/html/search/functions_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js deleted file mode 100644 index 4d5bc143e..000000000 --- a/docs/html/search/functions_a.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['linearsearchbyid_532',['linearSearchById',['../classace__time_1_1ZoneRegistrarTemplate.html#a0bce894f2a5eaa5eda760b6e35a5f4ac',1,'ace_time::ZoneRegistrarTemplate']]], - ['localdate_533',['LocalDate',['../classace__time_1_1LocalDate.html#acadf85f1b1fc8a13e9971f645e3f6f6f',1,'ace_time::LocalDate']]], - ['localdate_534',['localDate',['../classace__time_1_1LocalDateTime.html#a3cb5c67f6efc28bccb1a0097c2dc5c7f',1,'ace_time::LocalDateTime::localDate()'],['../classace__time_1_1OffsetDateTime.html#a9fc09e94879f513e6926a484dcf22960',1,'ace_time::OffsetDateTime::localDate()']]], - ['localdatetime_535',['LocalDateTime',['../classace__time_1_1LocalDateTime.html#a258117e35f7f6b063fd969b57385b90f',1,'ace_time::LocalDateTime']]], - ['localdatetime_536',['localDateTime',['../classace__time_1_1OffsetDateTime.html#a289869403c24ad6205da8270af94363e',1,'ace_time::OffsetDateTime::localDateTime()'],['../classace__time_1_1ZonedDateTime.html#af6a26cb619efcbcfa55bad20af2b436d',1,'ace_time::ZonedDateTime::localDateTime()']]], - ['localtime_537',['localTime',['../classace__time_1_1OffsetDateTime.html#a0c59c92e17a88b4e41f9f0e6acb02dfc',1,'ace_time::OffsetDateTime']]], - ['localtime_538',['LocalTime',['../classace__time_1_1LocalTime.html#ab34ac02fd32ba8819c5a9710b6c78b65',1,'ace_time::LocalTime']]], - ['localtime_539',['localTime',['../classace__time_1_1LocalDateTime.html#ab2c76ad0b964d884eb4c31ae5c455af7',1,'ace_time::LocalDateTime']]], - ['log_540',['log',['../structace__time_1_1basic_1_1TransitionTemplate.html#ab49ae80f4ccd0c72e8752974e9db91ca',1,'ace_time::basic::TransitionTemplate::log()'],['../classace__time_1_1BasicZoneProcessorTemplate.html#a0cccf211a86cf4533f9a4441738bced5',1,'ace_time::BasicZoneProcessorTemplate::log()'],['../structace__time_1_1extended_1_1DateTuple.html#afa991fc734c0f703f2afa4133822fb6b',1,'ace_time::extended::DateTuple::log()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ad9f32e9671655c9dbeca7d345a54ccdf',1,'ace_time::ExtendedZoneProcessorTemplate::log()'],['../structace__time_1_1extended_1_1TransitionTemplate.html#a596d28722273b0730bbb13726820c1cd',1,'ace_time::extended::TransitionTemplate::log()'],['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#afd8ed04dfcfb631788cb4875d5c57b68',1,'ace_time::extended::TransitionStorageTemplate::log()']]], - ['loghourminutesecond_541',['logHourMinuteSecond',['../structace__time_1_1extended_1_1TransitionTemplate.html#a027aaddb7f54f18cf446e26b1517ee0d',1,'ace_time::extended::TransitionTemplate']]] -]; diff --git a/docs/html/search/functions_b.html b/docs/html/search/functions_b.html deleted file mode 100644 index e301fedd7..000000000 --- a/docs/html/search/functions_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_b.js b/docs/html/search/functions_b.js deleted file mode 100644 index 5401ba4b6..000000000 --- a/docs/html/search/functions_b.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['minute_542',['minute',['../classace__time_1_1LocalDateTime.html#a3013a99a9dc3cb8b1c267f701ded8cb6',1,'ace_time::LocalDateTime::minute()'],['../classace__time_1_1LocalTime.html#ad99b8893e31c3e3d45ccd0a7bac9c91e',1,'ace_time::LocalTime::minute() const'],['../classace__time_1_1LocalTime.html#a6a5196fc6b5f84d441dcd737e75acc5f',1,'ace_time::LocalTime::minute(uint8_t minute)'],['../classace__time_1_1OffsetDateTime.html#a88888c5a65bee412cf388966f45d56df',1,'ace_time::OffsetDateTime::minute() const'],['../classace__time_1_1OffsetDateTime.html#a6059bdddd49c584f427950556494dced',1,'ace_time::OffsetDateTime::minute(uint8_t minute)'],['../classace__time_1_1TimePeriod.html#a75cd5d3700066b3c35999908d7ae0d4f',1,'ace_time::TimePeriod::minute() const'],['../classace__time_1_1TimePeriod.html#a1b464afc12d4d5ba72567cd76497ff0b',1,'ace_time::TimePeriod::minute(uint8_t minute)'],['../classace__time_1_1ZonedDateTime.html#ad018aacdd07c8ac5b0f43f48ca8a994f',1,'ace_time::ZonedDateTime::minute() const'],['../classace__time_1_1ZonedDateTime.html#a658d8866b7fd5d6a2efa8a205c51b779',1,'ace_time::ZonedDateTime::minute(uint8_t minute)'],['../classace__time_1_1LocalDateTime.html#a7df99e1e5ba813cebc9246a3a047073c',1,'ace_time::LocalDateTime::minute()']]], - ['month_543',['month',['../classace__time_1_1LocalDate.html#aecb3488a5e952cb17300ec7060b94150',1,'ace_time::LocalDate::month()'],['../classace__time_1_1ZonedDateTime.html#ad818370878792f764b362b5ccd77fae9',1,'ace_time::ZonedDateTime::month(uint8_t month)'],['../classace__time_1_1ZonedDateTime.html#af8483c5973c79f6514db8401aae77cb6',1,'ace_time::ZonedDateTime::month() const'],['../classace__time_1_1OffsetDateTime.html#a21ea947de494cd2b9966b027da84e2ed',1,'ace_time::OffsetDateTime::month(uint8_t month)'],['../classace__time_1_1OffsetDateTime.html#a3f95ef3b5b6ae6470bcd80002caf92c6',1,'ace_time::OffsetDateTime::month() const'],['../classace__time_1_1LocalDateTime.html#a5cbf97d3b2c03cbd72aac0eb7af04774',1,'ace_time::LocalDateTime::month(uint8_t month)'],['../classace__time_1_1LocalDateTime.html#a64406f7a7c2d599f5260e1ef58d1c99a',1,'ace_time::LocalDateTime::month() const'],['../classace__time_1_1LocalDate.html#a7b2124eadb70b7ab46e07826af57e0fe',1,'ace_time::LocalDate::month()']]], - ['monthlongstring_544',['monthLongString',['../classace__time_1_1DateStrings.html#a9174e70b61655639bf8b03c5d6b9a633',1,'ace_time::DateStrings']]], - ['monthshortstring_545',['monthShortString',['../classace__time_1_1DateStrings.html#aa801b71e6aeff59d65a1229015c34cff',1,'ace_time::DateStrings']]] -]; diff --git a/docs/html/search/functions_c.html b/docs/html/search/functions_c.html deleted file mode 100644 index c4f326877..000000000 --- a/docs/html/search/functions_c.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_c.js b/docs/html/search/functions_c.js deleted file mode 100644 index a15806eae..000000000 --- a/docs/html/search/functions_c.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['negate_546',['negate',['../time__period__mutation_8h.html#aa3c982884e48ebe3ac7a676f70c5e391',1,'ace_time::time_period_mutation']]], - ['normalize_547',['normalize',['../classace__time_1_1ZonedDateTime.html#ad74f2ea586bfa38a38c7e2ba1115b6c4',1,'ace_time::ZonedDateTime']]] -]; diff --git a/docs/html/search/functions_d.html b/docs/html/search/functions_d.html deleted file mode 100644 index 7a1ed065d..000000000 --- a/docs/html/search/functions_d.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_d.js b/docs/html/search/functions_d.js deleted file mode 100644 index 3505bf53a..000000000 --- a/docs/html/search/functions_d.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['offsetdatetime_548',['OffsetDateTime',['../classace__time_1_1OffsetDateTime.html#a36910b1403ba764f3e29675424760e6c',1,'ace_time::OffsetDateTime']]], - ['offsetdatetime_549',['offsetDateTime',['../classace__time_1_1ZonedDateTime.html#afb77ba4d7d3c44fed16d7d53b07e0020',1,'ace_time::ZonedDateTime']]] -]; diff --git a/docs/html/search/functions_e.html b/docs/html/search/functions_e.html deleted file mode 100644 index 22d2a6bf5..000000000 --- a/docs/html/search/functions_e.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_e.js b/docs/html/search/functions_e.js deleted file mode 100644 index de04aa5bd..000000000 --- a/docs/html/search/functions_e.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['printnameto_550',['printNameTo',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ad960529ef2b1c0390fba1c3a3afe6b9a',1,'ace_time::ExtendedZoneProcessorTemplate::printNameTo()'],['../classace__time_1_1ZoneTemplate.html#ae3fea53e7962c70dfe7bfe3e224437b5',1,'ace_time::ZoneTemplate::printNameTo()'],['../classace__time_1_1ZoneProcessor.html#a2ebdaf658f48d58a161086e21c1fc3f7',1,'ace_time::ZoneProcessor::printNameTo()'],['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html#aa6a4490c525134ef32a0ae4a1c0091e4',1,'ace_time::ZoneInfoHigh::ZoneInfoBroker::printNameTo()'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html#a81a2d6a48903d640ae78ec2f88388d68',1,'ace_time::ZoneInfoLow::ZoneInfoBroker::printNameTo()'],['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html#a876cc588eb79d749ec9b6b4fcd12160e',1,'ace_time::ZoneInfoMid::ZoneInfoBroker::printNameTo()'],['../classace__time_1_1BasicZoneProcessorTemplate.html#aa403d8bbf83a400c08229980016a4312',1,'ace_time::BasicZoneProcessorTemplate::printNameTo(Print &printer) const override']]], - ['printshortnameto_551',['printShortNameTo',['../classace__time_1_1BasicZoneProcessorTemplate.html#a90a730c231da202bf938d27cff823df5',1,'ace_time::BasicZoneProcessorTemplate::printShortNameTo()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a668c57fbf5f7f32df20091093181f6e7',1,'ace_time::ExtendedZoneProcessorTemplate::printShortNameTo()'],['../classace__time_1_1ZoneTemplate.html#aaa881570b41bbe534000d582bc0fb71b',1,'ace_time::ZoneTemplate::printShortNameTo()'],['../classace__time_1_1ZoneProcessor.html#a68ba2ce6b980f73f4f673450148c2416',1,'ace_time::ZoneProcessor::printShortNameTo()'],['../classace__time_1_1ZoneInfoHigh_1_1ZoneInfoBroker.html#a4a119911f11f89849dbd212a66025af8',1,'ace_time::ZoneInfoHigh::ZoneInfoBroker::printShortNameTo()'],['../classace__time_1_1ZoneInfoLow_1_1ZoneInfoBroker.html#aa9fdff0c3b3939deaa2072b2b7ec70d4',1,'ace_time::ZoneInfoLow::ZoneInfoBroker::printShortNameTo()'],['../classace__time_1_1ZoneInfoMid_1_1ZoneInfoBroker.html#a52e2856c3bb7e4478397cddb77d14782',1,'ace_time::ZoneInfoMid::ZoneInfoBroker::printShortNameTo()']]], - ['printshortto_552',['printShortTo',['../classace__time_1_1TimeZone.html#a9feead66a867bbae10e751d30479bbfc',1,'ace_time::TimeZone']]], - ['printtargetnameto_553',['printTargetNameTo',['../classace__time_1_1BasicZoneProcessorTemplate.html#a9415175c503cfe10512127f54f203d54',1,'ace_time::BasicZoneProcessorTemplate::printTargetNameTo()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a34ff4830244c7b6c5f5862a747b04d8e',1,'ace_time::ExtendedZoneProcessorTemplate::printTargetNameTo()'],['../classace__time_1_1TimeZone.html#a4e733cbf86d1d64653f4c2aa2ae1cfcd',1,'ace_time::TimeZone::printTargetNameTo()'],['../classace__time_1_1ZoneProcessor.html#a2cba339fefee17eb2d73be1512f86996',1,'ace_time::ZoneProcessor::printTargetNameTo()']]], - ['printto_554',['printTo',['../classace__time_1_1LocalDate.html#a45a92407e489cf352a97ffb09513eaba',1,'ace_time::LocalDate::printTo()'],['../classace__time_1_1LocalDateTime.html#a1fd5324ba0f6f9ad8d6c44d418f800fd',1,'ace_time::LocalDateTime::printTo()'],['../classace__time_1_1LocalTime.html#a9f5c3a2e92030d0aa773ffb2a83197cf',1,'ace_time::LocalTime::printTo()'],['../classace__time_1_1OffsetDateTime.html#a3f9a811d196b889eb199545e227786a9',1,'ace_time::OffsetDateTime::printTo()'],['../classace__time_1_1TimeOffset.html#af1bcb885f413153ed61324a92e5bd730',1,'ace_time::TimeOffset::printTo()'],['../classace__time_1_1TimePeriod.html#a77f80b555361984b0289f2430ecb479f',1,'ace_time::TimePeriod::printTo()'],['../classace__time_1_1TimeZone.html#a3030d8f1dc9cd2bfb3c6ee556c385191',1,'ace_time::TimeZone::printTo()'],['../classace__time_1_1ZonedDateTime.html#a185351505b9ff59923656be956d0b326',1,'ace_time::ZonedDateTime::printTo()']]], - ['printtransitions_555',['printTransitions',['../structace__time_1_1extended_1_1TransitionTemplate.html#ad9880f03dabdd96e9953e20f8dedf169',1,'ace_time::extended::TransitionTemplate']]] -]; diff --git a/docs/html/search/functions_f.html b/docs/html/search/functions_f.html deleted file mode 100644 index 54b7dee08..000000000 --- a/docs/html/search/functions_f.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_f.js b/docs/html/search/functions_f.js deleted file mode 100644 index 9970969d9..000000000 --- a/docs/html/search/functions_f.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['reqdstoffset_556',['reqDstOffset',['../classace__time_1_1ZonedExtra.html#a0183ba318b307bfceaaf95ecda9347ba',1,'ace_time::ZonedExtra']]], - ['reqstdoffset_557',['reqStdOffset',['../classace__time_1_1ZonedExtra.html#a1275019cac9c640af7c15408e14174f8',1,'ace_time::ZonedExtra']]], - ['reqtimeoffset_558',['reqTimeOffset',['../classace__time_1_1ZonedExtra.html#a7c49372bded10102401f8a1addb204db',1,'ace_time::ZonedExtra']]], - ['reserveprior_559',['reservePrior',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#ada9a994db5c0c508d76616907ab822bc',1,'ace_time::extended::TransitionStorageTemplate']]], - ['resetallocsize_560',['resetAllocSize',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a65efd4d145bd679dc6f360734c9eae49',1,'ace_time::extended::TransitionStorageTemplate']]], - ['resetcandidatepool_561',['resetCandidatePool',['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a6100ece59a4879953693cc268a70c1b6',1,'ace_time::extended::TransitionStorageTemplate']]], - ['resettransitionallocsize_562',['resetTransitionAllocSize',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a58587dd5593cec58364ca954e56f4c1c',1,'ace_time::ExtendedZoneProcessorTemplate']]] -]; diff --git a/docs/html/search/mag_sel.svg b/docs/html/search/mag_sel.svg deleted file mode 100644 index 03626f64a..000000000 --- a/docs/html/search/mag_sel.svg +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/docs/html/search/nomatches.html b/docs/html/search/nomatches.html deleted file mode 100644 index 2b9360b6b..000000000 --- a/docs/html/search/nomatches.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - -
    -
    No Matches
    -
    - - diff --git a/docs/html/search/pages_0.html b/docs/html/search/pages_0.html deleted file mode 100644 index 8517b48f0..000000000 --- a/docs/html/search/pages_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/pages_0.js b/docs/html/search/pages_0.js deleted file mode 100644 index 4d2459130..000000000 --- a/docs/html/search/pages_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['acetime_20library_732',['AceTime Library',['../index.html',1,'']]] -]; diff --git a/docs/html/search/related_0.html b/docs/html/search/related_0.html deleted file mode 100644 index 506aaecc0..000000000 --- a/docs/html/search/related_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/related_0.js b/docs/html/search/related_0.js deleted file mode 100644 index 08b43213f..000000000 --- a/docs/html/search/related_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['operator_3d_3d_730',['operator==',['../classace__time_1_1LocalDate.html#a018d437efbf0e6de707fe74242349508',1,'ace_time::LocalDate::operator==()'],['../classace__time_1_1LocalDateTime.html#ae1ae8df39487305cfd7e6e7429702295',1,'ace_time::LocalDateTime::operator==()'],['../classace__time_1_1LocalTime.html#a3e09b81cf838d2e5eea2622a8b209ba2',1,'ace_time::LocalTime::operator==()'],['../classace__time_1_1OffsetDateTime.html#aa0c0a06e99b3efa8eb22126e6474752e',1,'ace_time::OffsetDateTime::operator==()'],['../classace__time_1_1TimePeriod.html#a7520dcc4dfe508feb8e545d2ff4b0812',1,'ace_time::TimePeriod::operator==()'],['../classace__time_1_1ZonedDateTime.html#a4acdb974e8c83afe80e1f31d6e688d91',1,'ace_time::ZonedDateTime::operator==()']]] -]; diff --git a/docs/html/search/search.css b/docs/html/search/search.css deleted file mode 100644 index 9074198f8..000000000 --- a/docs/html/search/search.css +++ /dev/null @@ -1,257 +0,0 @@ -/*---------------- Search Box */ - -#MSearchBox { - white-space : nowrap; - background: white; - border-radius: 0.65em; - box-shadow: inset 0.5px 0.5px 3px 0px #555; - z-index: 102; -} - -#MSearchBox .left { - display: inline-block; - vertical-align: middle; - height: 1.4em; -} - -#MSearchSelect { - display: inline-block; - vertical-align: middle; - height: 1.4em; - padding: 0 0 0 0.3em; - margin: 0; -} - -#MSearchField { - display: inline-block; - vertical-align: middle; - width: 7.5em; - height: 1.1em; - margin: 0 0.15em; - padding: 0; - line-height: 1em; - border:none; - color: #909090; - outline: none; - font-family: Arial, Verdana, sans-serif; - -webkit-border-radius: 0px; - border-radius: 0px; - background: none; -} - - -#MSearchBox .right { - display: inline-block; - vertical-align: middle; - width: 1.4em; - height: 1.4em; -} - -#MSearchClose { - display: none; - font-size: inherit; - background : none; - border: none; - margin: 0; - padding: 0; - outline: none; - -} - -#MSearchCloseImg { - height: 1.4em; - padding: 0.3em; - margin: 0; -} - -.MSearchBoxActive #MSearchField { - color: #000000; -} - -#main-menu > li:last-child { - /* This
  • object is the parent of the search bar */ - display: flex; - justify-content: center; - align-items: center; - height: 36px; - margin-right: 1em; -} - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; - z-index: 10001; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt Arial, Verdana, sans-serif; - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: monospace; - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: #000000; - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: #000000; - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - width: 60ex; - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; - z-index:10000; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; - padding-bottom: 15px; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -body.SRPage { - margin: 5px 2px; -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -span.SRScope { - padding-left: 4px; - font-family: Arial, Verdana, sans-serif; -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; - font-family: Arial, Verdana, sans-serif; -} - -.SRResult { - display: none; -} - -div.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.searchresult { - background-color: #F0F3F8; -} - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); - background-repeat: repeat-x; - text-shadow: 0 1px 1px #000000; -} - -.pages { - line-height: 17px; - margin-left: 4px; - text-decoration: none; -} - -.hl { - font-weight: bold; -} - -#searchresults { - margin-bottom: 20px; -} - -.searchpages { - margin-top: 10px; -} - diff --git a/docs/html/search/search.js b/docs/html/search/search.js deleted file mode 100644 index fb226f734..000000000 --- a/docs/html/search/search.js +++ /dev/null @@ -1,816 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() - { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() - { - this.keyTimeout = 0; - - // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { - idxChar = searchValue.substr(0, 2); - } - - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; - } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches' + this.extension; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; - } - - window.frames.MSearchResults.location = resultsPageWithSearch; - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - - if (domPopupSearchResultsWindow.style.display!='block') - { - var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline-block'; - if (this.insideFrame) - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - domPopupSearchResultsWindow.style.position = 'relative'; - domPopupSearchResultsWindow.style.display = 'block'; - var width = document.body.clientWidth - 8; // the -8 is for IE :-( - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResults.style.width = width + 'px'; - } - else - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; - var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - } - } - - this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) - { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { - this.DOMSearchBox().className = 'MSearchBoxActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == this.searchLabel) // clear "Search" term upon entry - { - searchField.value = ''; - this.searchActive = true; - } - } - else if (!isActive) // directly remove the panel - { - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.DOMSearchField().value = this.searchLabel; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) - { - element = element.firstChild; - } - else if (element.nextSibling) - { - element = element.nextSibling; - } - else - { - do - { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; - } - else - { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; - } - } - } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - parent.document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } -} - -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} - -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} - -function createResults() -{ - var results = document.getElementById("SRResults"); - for (var e=0; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W diff --git a/docs/html/search/search_r.png b/docs/html/search/search_r.png deleted file mode 100644 index 1af5d21ee13e070d7600f1c4657fde843b953a69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD diff --git a/docs/html/search/searchdata.js b/docs/html/search/searchdata.js deleted file mode 100644 index 2aade71a9..000000000 --- a/docs/html/search/searchdata.js +++ /dev/null @@ -1,39 +0,0 @@ -var indexSectionsWithContent = -{ - 0: "abcdefghiklmnoprstuyz", - 1: "bcdeflmotyz", - 2: "bcotz", - 3: "abcdefghiklmnoprstyz", - 4: "abcdefiklmnoprstuyz", - 5: "amt", - 6: "o", - 7: "a", - 8: "a" -}; - -var indexSectionNames = -{ - 0: "all", - 1: "classes", - 2: "files", - 3: "functions", - 4: "variables", - 5: "typedefs", - 6: "related", - 7: "defines", - 8: "pages" -}; - -var indexSectionLabels = -{ - 0: "All", - 1: "Classes", - 2: "Files", - 3: "Functions", - 4: "Variables", - 5: "Typedefs", - 6: "Friends", - 7: "Macros", - 8: "Pages" -}; - diff --git a/docs/html/search/typedefs_0.html b/docs/html/search/typedefs_0.html deleted file mode 100644 index a4684c4ad..000000000 --- a/docs/html/search/typedefs_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/typedefs_0.js b/docs/html/search/typedefs_0.js deleted file mode 100644 index 023a009d1..000000000 --- a/docs/html/search/typedefs_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['acetime_5ft_724',['acetime_t',['../common_8h.html#a9c5a9893b2588031b6ab56826dec303a',1,'ace_time']]] -]; diff --git a/docs/html/search/typedefs_1.html b/docs/html/search/typedefs_1.html deleted file mode 100644 index 46cf01e62..000000000 --- a/docs/html/search/typedefs_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/typedefs_1.js b/docs/html/search/typedefs_1.js deleted file mode 100644 index 25c272a75..000000000 --- a/docs/html/search/typedefs_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['matchingera_725',['MatchingEra',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a8f9aa742ee6d65c80cde8eedae3f5db3',1,'ace_time::ExtendedZoneProcessorTemplate']]] -]; diff --git a/docs/html/search/typedefs_2.html b/docs/html/search/typedefs_2.html deleted file mode 100644 index 6835ee65b..000000000 --- a/docs/html/search/typedefs_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/typedefs_2.js b/docs/html/search/typedefs_2.js deleted file mode 100644 index a7b592627..000000000 --- a/docs/html/search/typedefs_2.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['transition_726',['Transition',['../classace__time_1_1BasicZoneProcessorTemplate.html#a3b34e0d24626eb157e97407c146fd2e0',1,'ace_time::BasicZoneProcessorTemplate::Transition()'],['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a71cee1e6bcf406c8e5e417ad61fcf2c2',1,'ace_time::ExtendedZoneProcessorTemplate::Transition()'],['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a1e4a697f721a7651e05cd7e995711f0d',1,'ace_time::extended::TransitionStorageTemplate::Transition()']]], - ['transitionfordatetime_727',['TransitionForDateTime',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a56eae00a6e5e66d7fdc8c15c6a17a0f5',1,'ace_time::ExtendedZoneProcessorTemplate::TransitionForDateTime()'],['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a741380d6aab5f393fac012e436fdb2e5',1,'ace_time::extended::TransitionStorageTemplate::TransitionForDateTime()']]], - ['transitionforseconds_728',['TransitionForSeconds',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#ae811e44232b00118baec421957203981',1,'ace_time::ExtendedZoneProcessorTemplate::TransitionForSeconds()'],['../classace__time_1_1extended_1_1TransitionStorageTemplate.html#a70bd9ec609c12475fdd549e199a0b9eb',1,'ace_time::extended::TransitionStorageTemplate::TransitionForSeconds()']]], - ['transitionstorage_729',['TransitionStorage',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#aeb452c152eacd01384e8e55292bc4e79',1,'ace_time::ExtendedZoneProcessorTemplate']]] -]; diff --git a/docs/html/search/variables_0.html b/docs/html/search/variables_0.html deleted file mode 100644 index 1e477c08c..000000000 --- a/docs/html/search/variables_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_0.js b/docs/html/search/variables_0.js deleted file mode 100644 index 34ccb7fd9..000000000 --- a/docs/html/search/variables_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['abbrev_610',['abbrev',['../structace__time_1_1basic_1_1TransitionTemplate.html#ac13d94f5c0e92879093edfe8e8e8c7a9',1,'ace_time::basic::TransitionTemplate::abbrev()'],['../structace__time_1_1extended_1_1TransitionTemplate.html#ac81a75980ade1786d3f772958555ba97',1,'ace_time::extended::TransitionTemplate::abbrev()'],['../classace__time_1_1FindResult.html#adf56ea188f29e6dde228ba2bdf70d05e',1,'ace_time::FindResult::abbrev()']]], - ['attimecode_611',['atTimeCode',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#acf297d080609219b0015bdee60ffeafd',1,'ace_time::ZoneInfoHigh::ZoneRule::atTimeCode()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#af6110cf6c3d16d806cd0336c7dcbf0a6',1,'ace_time::ZoneInfoLow::ZoneRule::atTimeCode()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#aee68992d09c48cfb779cd0fbc6a74f1e',1,'ace_time::ZoneInfoMid::ZoneRule::atTimeCode()']]], - ['attimemodifier_612',['atTimeModifier',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a24b8b884826c9ed31406fcb354172059',1,'ace_time::ZoneInfoHigh::ZoneRule::atTimeModifier()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#a8d9d757a8017bcf172222096e20ebf2c',1,'ace_time::ZoneInfoLow::ZoneRule::atTimeModifier()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#ad2d385fd77a21da6172c91b47a2e57aa',1,'ace_time::ZoneInfoMid::ZoneRule::atTimeModifier()']]] -]; diff --git a/docs/html/search/variables_1.html b/docs/html/search/variables_1.html deleted file mode 100644 index ea73d9a49..000000000 --- a/docs/html/search/variables_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_1.js b/docs/html/search/variables_1.js deleted file mode 100644 index f9c5dfaa9..000000000 --- a/docs/html/search/variables_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['baseyear_613',['baseYear',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a91146acedb5238d02a04359a34cd87b6',1,'ace_time::ZoneInfoHigh::ZoneContext::baseYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a9b8247f1422037918a041c124e67c221',1,'ace_time::ZoneInfoLow::ZoneContext::baseYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a2585f527bdcefb014fafe5f65912c239',1,'ace_time::ZoneInfoMid::ZoneContext::baseYear()']]] -]; diff --git a/docs/html/search/variables_10.html b/docs/html/search/variables_10.html deleted file mode 100644 index dc9920b6d..000000000 --- a/docs/html/search/variables_10.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_10.js b/docs/html/search/variables_10.js deleted file mode 100644 index 291fcea97..000000000 --- a/docs/html/search/variables_10.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['untildatetime_713',['untilDateTime',['../structace__time_1_1extended_1_1TransitionTemplate.html#ad8d3c80ae84be55fc98c81141e7205c8',1,'ace_time::extended::TransitionTemplate::untilDateTime()'],['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a8bde680f486a61f3b88749b692bfd4cb',1,'ace_time::extended::MatchingEraTemplate::untilDateTime()']]], - ['untilday_714',['untilDay',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a87ea06b3206b6c40451b712bf93d47df',1,'ace_time::ZoneInfoHigh::ZoneEra::untilDay()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#aab6de3bfb82cfbf04d6de877fc545dba',1,'ace_time::ZoneInfoLow::ZoneEra::untilDay()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#afafb93d02314691b5584b53cd62ec01d',1,'ace_time::ZoneInfoMid::ZoneEra::untilDay()']]], - ['untilmonth_715',['untilMonth',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a3c00456b24e9dab493a705441b2782b6',1,'ace_time::ZoneInfoHigh::ZoneEra::untilMonth()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#ac00975ce45244ab6c47ff05c55b53618',1,'ace_time::ZoneInfoLow::ZoneEra::untilMonth()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#a0d82600e58671bf9a98a4ffb0f2cabf5',1,'ace_time::ZoneInfoMid::ZoneEra::untilMonth()']]], - ['untiltimecode_716',['untilTimeCode',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a9727baf25d17ffcb6325e4dbb5c3d58f',1,'ace_time::ZoneInfoHigh::ZoneEra::untilTimeCode()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#af04023b698555c56976a1df87936e2d6',1,'ace_time::ZoneInfoLow::ZoneEra::untilTimeCode()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#a9efb0351e45dc685763dfa863dfc885c',1,'ace_time::ZoneInfoMid::ZoneEra::untilTimeCode()']]], - ['untiltimemodifier_717',['untilTimeModifier',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a7b9b99405c9d25314fb095cae3b8feeb',1,'ace_time::ZoneInfoHigh::ZoneEra::untilTimeModifier()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#a70e2147a6f9ceba5cf1805bf56f3435c',1,'ace_time::ZoneInfoMid::ZoneEra::untilTimeModifier()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#a39d56768a660547b9074ef9bf58de312',1,'ace_time::ZoneInfoLow::ZoneEra::untilTimeModifier()']]], - ['untilyear_718',['untilYear',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a6c8874ced080a87c8db794c34d69777c',1,'ace_time::ZoneInfoHigh::ZoneContext::untilYear()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a0d919e8452805f59cef44b3b7a9336c2',1,'ace_time::ZoneInfoHigh::ZoneEra::untilYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ae0feaabcfcd2d429da979545ab715799',1,'ace_time::ZoneInfoLow::ZoneContext::untilYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#a7a5e4e6833a0c0186d19976a81db7191',1,'ace_time::ZoneInfoLow::ZoneEra::untilYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#aa5f3e2762a58f631023d38df68b77e9a',1,'ace_time::ZoneInfoMid::ZoneContext::untilYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#a8838e8009cfbf63b7d32291eb418aa62',1,'ace_time::ZoneInfoMid::ZoneEra::untilYear()']]], - ['untilyearaccurate_719',['untilYearAccurate',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a7af3d14f1c16adfc2785a5c8d86cf291',1,'ace_time::ZoneInfoHigh::ZoneContext::untilYearAccurate()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a7d4ac302103cede7f75ab58b13000fdb',1,'ace_time::ZoneInfoLow::ZoneContext::untilYearAccurate()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a4c639b62fcb01dc50b72ea2a965839d9',1,'ace_time::ZoneInfoMid::ZoneContext::untilYearAccurate()']]] -]; diff --git a/docs/html/search/variables_11.html b/docs/html/search/variables_11.html deleted file mode 100644 index 704bcb187..000000000 --- a/docs/html/search/variables_11.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_11.js b/docs/html/search/variables_11.js deleted file mode 100644 index cf35c6f9f..000000000 --- a/docs/html/search/variables_11.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['year_720',['year',['../structace__time_1_1basic_1_1TransitionTemplate.html#ac808cf469e0154927103849ffd33a526',1,'ace_time::basic::TransitionTemplate']]] -]; diff --git a/docs/html/search/variables_12.html b/docs/html/search/variables_12.html deleted file mode 100644 index a3a32eb8e..000000000 --- a/docs/html/search/variables_12.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_12.js b/docs/html/search/variables_12.js deleted file mode 100644 index 626efcdd2..000000000 --- a/docs/html/search/variables_12.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['zonecontext_721',['zoneContext',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#a7a46d38468d697acc4940272f58e2dc5',1,'ace_time::ZoneInfoHigh::ZoneInfo::zoneContext()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#a5952d69fef07d80b80dfd5d467c01b26',1,'ace_time::ZoneInfoLow::ZoneInfo::zoneContext()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#adf2ed9136e727b9cb3ef143156ae6917',1,'ace_time::ZoneInfoMid::ZoneInfo::zoneContext()']]], - ['zoneid_722',['zoneId',['../structace__time_1_1TimeZoneData.html#a33cee3c6e0a13796bfc9bad62f18d567',1,'ace_time::TimeZoneData::zoneId()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#ae7efc2dd3043dc86bd781f3636396414',1,'ace_time::ZoneInfoHigh::ZoneInfo::zoneId()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#ae939c47832a38cdc0a56b7e2d403b695',1,'ace_time::ZoneInfoLow::ZoneInfo::zoneId()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#a7bb42ab71a341275ecf83e9c112fcdac',1,'ace_time::ZoneInfoMid::ZoneInfo::zoneId()']]], - ['zonepolicy_723',['zonePolicy',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a96511ad4b8a6f26877bd3b070c5ff77a',1,'ace_time::ZoneInfoHigh::ZoneEra::zonePolicy()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#ab8f7418286d92977c1792b3381dff1c6',1,'ace_time::ZoneInfoLow::ZoneEra::zonePolicy()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#a60a148ee617e134d232578e1f97061db',1,'ace_time::ZoneInfoMid::ZoneEra::zonePolicy()']]] -]; diff --git a/docs/html/search/variables_2.html b/docs/html/search/variables_2.html deleted file mode 100644 index 0580462e9..000000000 --- a/docs/html/search/variables_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_2.js b/docs/html/search/variables_2.js deleted file mode 100644 index 577717514..000000000 --- a/docs/html/search/variables_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['comparestatus_614',['compareStatus',['../structace__time_1_1extended_1_1TransitionTemplate.html#a827a00535fa7c82e6b7110404affa2c0',1,'ace_time::extended::TransitionTemplate']]], - ['curr_615',['curr',['../structace__time_1_1extended_1_1TransitionForSecondsTemplate.html#a81b73b44ba58c2840845d69da9b72339',1,'ace_time::extended::TransitionForSecondsTemplate::curr()'],['../structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html#a4878dddfadace1f05b4e479ce6e67eb1',1,'ace_time::extended::TransitionForDateTimeTemplate::curr()']]] -]; diff --git a/docs/html/search/variables_3.html b/docs/html/search/variables_3.html deleted file mode 100644 index 0d69e7619..000000000 --- a/docs/html/search/variables_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js deleted file mode 100644 index 376b17009..000000000 --- a/docs/html/search/variables_3.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['deltacode_616',['deltaCode',['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#ac32c412a926a1e6bf6a63fa6b4d0f5b7',1,'ace_time::ZoneInfoLow::ZoneRule::deltaCode()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#a41a0eabb27f0f03788f9b59475cdb228',1,'ace_time::ZoneInfoLow::ZoneEra::deltaCode()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#a16ffe9dea84791756116565a44f38078',1,'ace_time::ZoneInfoMid::ZoneRule::deltaCode()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#aca994c3e07ca8dd1e87b2d3cb6959712',1,'ace_time::ZoneInfoMid::ZoneEra::deltaCode()']]], - ['deltaminutes_617',['deltaMinutes',['../structace__time_1_1basic_1_1TransitionTemplate.html#a889edac3dd7384799ac2a764e7f06269',1,'ace_time::basic::TransitionTemplate::deltaMinutes()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a7ead27d502940d0d12bc25ba2d4ee3a1',1,'ace_time::ZoneInfoHigh::ZoneRule::deltaMinutes()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a9c7154df482f8037d9567c9b7ebd813a',1,'ace_time::ZoneInfoHigh::ZoneEra::deltaMinutes()']]], - ['deltaseconds_618',['deltaSeconds',['../structace__time_1_1extended_1_1TransitionTemplate.html#a91b58f1cdb5a066de844067d67b88144',1,'ace_time::extended::TransitionTemplate']]], - ['dstoffsetseconds_619',['dstOffsetSeconds',['../classace__time_1_1FindResult.html#a7487628edd6bfc55afc928d9dc69b9c0',1,'ace_time::FindResult']]] -]; diff --git a/docs/html/search/variables_4.html b/docs/html/search/variables_4.html deleted file mode 100644 index a4b6506bb..000000000 --- a/docs/html/search/variables_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js deleted file mode 100644 index f7d718a4d..000000000 --- a/docs/html/search/variables_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['era_620',['era',['../structace__time_1_1basic_1_1TransitionTemplate.html#ad2a4448c55bea37a735ef327b0794690',1,'ace_time::basic::TransitionTemplate::era()'],['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a9d6db4adfc0b8cfe22e8e9c9786eb584',1,'ace_time::extended::MatchingEraTemplate::era()']]], - ['eras_621',['eras',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#ace8b16e174450c99e3d02c9dcf9589da',1,'ace_time::ZoneInfoHigh::ZoneInfo::eras()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#aacfa1bc82e8c52df845de8df77ab52ad',1,'ace_time::ZoneInfoLow::ZoneInfo::eras()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#a5ebe91bc79b957436bec8be0f58dac30',1,'ace_time::ZoneInfoMid::ZoneInfo::eras()']]] -]; diff --git a/docs/html/search/variables_5.html b/docs/html/search/variables_5.html deleted file mode 100644 index 7e345d16c..000000000 --- a/docs/html/search/variables_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_5.js b/docs/html/search/variables_5.js deleted file mode 100644 index f958c887f..000000000 --- a/docs/html/search/variables_5.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['fold_622',['fold',['../structace__time_1_1extended_1_1TransitionForSecondsTemplate.html#af4bfd7662823997a89318f6f924f9dad',1,'ace_time::extended::TransitionForSecondsTemplate::fold()'],['../classace__time_1_1FindResult.html#a1d1d9075a9afd269a7da33acc640a9ab',1,'ace_time::FindResult::fold()']]], - ['format_623',['format',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a277bd14d69c2996fba4f7d4df8e85a86',1,'ace_time::ZoneInfoHigh::ZoneEra::format()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#ae7693bf9ddce8400b18585715fe4d796',1,'ace_time::ZoneInfoLow::ZoneEra::format()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#ab712d3b8b91221dd2e182e0bd6d4aed2',1,'ace_time::ZoneInfoMid::ZoneEra::format()']]], - ['fragments_624',['fragments',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a9612dc12da8639848220500a28b9f668',1,'ace_time::ZoneInfoHigh::ZoneContext::fragments()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ae1fa724d8ad43635df75a987ae0025f8',1,'ace_time::ZoneInfoLow::ZoneContext::fragments()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a7a5c3508ef60b73a9496bc84aeddabec',1,'ace_time::ZoneInfoMid::ZoneContext::fragments()']]], - ['fromyear_625',['fromYear',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a45752e8dd5801be15724b0189d67e86f',1,'ace_time::ZoneInfoHigh::ZoneRule::fromYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#a25fcfd64afb5308f29c1ed520ce24add',1,'ace_time::ZoneInfoLow::ZoneRule::fromYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#a329004d671e405ea8dbe8203b4585200',1,'ace_time::ZoneInfoMid::ZoneRule::fromYear()']]] -]; diff --git a/docs/html/search/variables_6.html b/docs/html/search/variables_6.html deleted file mode 100644 index 7d48e75e2..000000000 --- a/docs/html/search/variables_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_6.js b/docs/html/search/variables_6.js deleted file mode 100644 index 70eadc26d..000000000 --- a/docs/html/search/variables_6.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['inmonth_626',['inMonth',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#afc108fbee72e1bc1be72e0d7b9f75af6',1,'ace_time::ZoneInfoHigh::ZoneRule::inMonth()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#aebd53bb79a3d5b07d52a82ddb0c45fb3',1,'ace_time::ZoneInfoLow::ZoneRule::inMonth()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#a383946b2656b2b7861b8c8f2a47b0e65',1,'ace_time::ZoneInfoMid::ZoneRule::inMonth()']]], - ['isvalidprior_627',['isValidPrior',['../structace__time_1_1extended_1_1TransitionTemplate.html#abf536e5f25c9c8bddfeb98414191060c',1,'ace_time::extended::TransitionTemplate']]] -]; diff --git a/docs/html/search/variables_7.html b/docs/html/search/variables_7.html deleted file mode 100644 index 5c2634092..000000000 --- a/docs/html/search/variables_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_7.js b/docs/html/search/variables_7.js deleted file mode 100644 index d99cb6cee..000000000 --- a/docs/html/search/variables_7.js +++ /dev/null @@ -1,48 +0,0 @@ -var searchData= -[ - ['kabbrevsize_628',['kAbbrevSize',['../classace__time_1_1ZonedExtra.html#a44d71e62b17e309aadd8a38494398a20',1,'ace_time::ZonedExtra::kAbbrevSize()'],['../BrokerCommon_8h.html#af456517bffcd8ba8b36c388f8ee44a2a',1,'ace_time::zoneinfo::kAbbrevSize()'],['../common_8h.html#a6a6eb8192e8b8e65471d87af858b9e6b',1,'ace_time::kAbbrevSize()']]], - ['kbinarysearchthreshold_629',['kBinarySearchThreshold',['../classace__time_1_1ZoneRegistrarTemplate.html#ad09ae0403a1491d5fcd0c4ee8bc7f42c',1,'ace_time::ZoneRegistrarTemplate']]], - ['kbuffersize_630',['kBufferSize',['../classace__time_1_1DateStrings.html#aedbfa043f6da042c40fed6b2beb09588',1,'ace_time::DateStrings']]], - ['kdaystointernalepochfromjulianepoch_631',['kDaysToInternalEpochFromJulianEpoch',['../classace__time_1_1EpochConverterJulian.html#a790f54446cc82a53d3e58004582f319a',1,'ace_time::EpochConverterJulian']]], - ['kdaystointernalepochfromunixepoch_632',['kDaysToInternalEpochFromUnixEpoch',['../classace__time_1_1EpochConverterJulian.html#ab238f1dc23fe9172096f8210488553d9',1,'ace_time::EpochConverterJulian::kDaysToInternalEpochFromUnixEpoch()'],['../classace__time_1_1EpochConverterHinnant.html#a4459afc3911348bfef313b57a4261cde',1,'ace_time::EpochConverterHinnant::kDaysToInternalEpochFromUnixEpoch()']]], - ['kfriday_633',['kFriday',['../classace__time_1_1LocalDate.html#a36d3a3480dd894310c6b558cc8efc357',1,'ace_time::LocalDate']]], - ['kinternalepochyear_634',['kInternalEpochYear',['../classace__time_1_1EpochConverterJulian.html#ace5207e9e957e78b3c366ed927478557',1,'ace_time::EpochConverterJulian::kInternalEpochYear()'],['../classace__time_1_1EpochConverterHinnant.html#af28cc4365ed03086237a9f0059b4c9af',1,'ace_time::EpochConverterHinnant::kInternalEpochYear()']]], - ['kinvalidepochdays_635',['kInvalidEpochDays',['../classace__time_1_1LocalDate.html#a0c4a6cdccb2dff6df30f9804374ea68d',1,'ace_time::LocalDate']]], - ['kinvalidepochseconds_636',['kInvalidEpochSeconds',['../classace__time_1_1LocalDate.html#a9c90b1abe7223c1b585bd8f8f89f0516',1,'ace_time::LocalDate']]], - ['kinvalidindex_637',['kInvalidIndex',['../classace__time_1_1ZoneManager.html#a7977d6c1471fd2e889a518a47fa3f2a2',1,'ace_time::ZoneManager::kInvalidIndex()'],['../classace__time_1_1ZoneRegistrarTemplate.html#a68cdedec42a58cda38f5d7898c969274',1,'ace_time::ZoneRegistrarTemplate::kInvalidIndex()']]], - ['kinvalidperiodseconds_638',['kInvalidPeriodSeconds',['../classace__time_1_1TimePeriod.html#a06fc9b2e53f1cb9f73a6eaf8825affb7',1,'ace_time::TimePeriod']]], - ['kinvalidseconds_639',['kInvalidSeconds',['../classace__time_1_1LocalTime.html#a0524d4d069e8fe7f604757160994f276',1,'ace_time::LocalTime']]], - ['kinvalidunixseconds64_640',['kInvalidUnixSeconds64',['../classace__time_1_1LocalDate.html#a2fbdac2dbc536dc1d44ab3cf0602de7a',1,'ace_time::LocalDate']]], - ['kinvalidyear_641',['kInvalidYear',['../classace__time_1_1LocalDate.html#ad35cfa503eea48ee0d0c3bb3c4b01180',1,'ace_time::LocalDate::kInvalidYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a96bb33fdd8b0554af20675f9a8e5199b',1,'ace_time::ZoneInfoLow::ZoneContext::kInvalidYear()']]], - ['kinvalidyeartiny_642',['kInvalidYearTiny',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a332689839203225080fbe8b8b2159b70',1,'ace_time::ZoneInfoLow::ZoneContext']]], - ['kmaxepochseconds_643',['kMaxEpochSeconds',['../classace__time_1_1LocalDate.html#aa481f6facbd9dfef0ac9a972cdc8286f',1,'ace_time::LocalDate']]], - ['kmaxperiodseconds_644',['kMaxPeriodSeconds',['../classace__time_1_1TimePeriod.html#a1f8bbf6bc456b88388ff29b44ecec9e6',1,'ace_time::TimePeriod']]], - ['kmaxtransitions_645',['kMaxTransitions',['../classace__time_1_1ExtendedZoneProcessorTemplate.html#a3c32fdc728c9ad18f71d8ba18e9826f1',1,'ace_time::ExtendedZoneProcessorTemplate']]], - ['kmaxuntilyear_646',['kMaxUntilYear',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a6e9efdfb8afe18e39c8b60d974dea95a',1,'ace_time::ZoneInfoLow::ZoneContext::kMaxUntilYear()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a7117f0ef3da93eeaf532829acd777cc5',1,'ace_time::ZoneInfoHigh::ZoneContext::kMaxUntilYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#aff869fb65af51cf96a0c18aa28a16ea0',1,'ace_time::ZoneInfoMid::ZoneContext::kMaxUntilYear()']]], - ['kmaxuntilyeartiny_647',['kMaxUntilYearTiny',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ad701688fc9aed6d029c7917110d537ae',1,'ace_time::ZoneInfoLow::ZoneContext']]], - ['kmaxyear_648',['kMaxYear',['../classace__time_1_1LocalDate.html#a06976c9866708209720b14e745baecc4',1,'ace_time::LocalDate::kMaxYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a85dd431f253b29b6cd986c09fe20684d',1,'ace_time::ZoneInfoMid::ZoneContext::kMaxYear()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#ac105b566c2c4f2e739db425f5257e7e4',1,'ace_time::ZoneInfoHigh::ZoneContext::kMaxYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ab89abffd34c18effbebfbd8a4d00c484',1,'ace_time::ZoneInfoLow::ZoneContext::kMaxYear()']]], - ['kmaxyeartiny_649',['kMaxYearTiny',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a1a50be2c5beea14936a4a6da0624e612',1,'ace_time::ZoneInfoLow::ZoneContext']]], - ['kminepochseconds_650',['kMinEpochSeconds',['../classace__time_1_1LocalDate.html#a16334b49fbbcf8ecc356e283b3675911',1,'ace_time::LocalDate']]], - ['kminyear_651',['kMinYear',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a4a3cbd8dca90dee15294d3e8ed99b5ee',1,'ace_time::ZoneInfoLow::ZoneContext::kMinYear()'],['../classace__time_1_1LocalDate.html#a3c4687821480b57575b7ffba3d3e5ae9',1,'ace_time::LocalDate::kMinYear()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a67c6f0911a9583a6e9038569eb48a33c',1,'ace_time::ZoneInfoHigh::ZoneContext::kMinYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a6bbf4b1aaceca71747840548925fc401',1,'ace_time::ZoneInfoMid::ZoneContext::kMinYear()']]], - ['kminyeartiny_652',['kMinYearTiny',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ac65a623b9c7ecb5c56b6ecdfcd3e9c25',1,'ace_time::ZoneInfoLow::ZoneContext']]], - ['kmonday_653',['kMonday',['../classace__time_1_1LocalDate.html#ac1c12c4971fc218d6ae56a3cd84d3ae8',1,'ace_time::LocalDate']]], - ['ksaturday_654',['kSaturday',['../classace__time_1_1LocalDate.html#abfc081c738df0972dfaa7d94f1782ea9',1,'ace_time::LocalDate']]], - ['kshortnamelength_655',['kShortNameLength',['../classace__time_1_1DateStrings.html#aa990309bb6080ee27a2cb9aa8f76cb29',1,'ace_time::DateStrings']]], - ['ksuffixs_656',['kSuffixS',['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a34d1b458b1468e307ff933396ffea31c',1,'ace_time::ZoneInfoLow::ZoneContext::kSuffixS()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#aa23dafe3331f0672132637b2696dc07d',1,'ace_time::ZoneInfoMid::ZoneContext::kSuffixS()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#aea2f4c087b1cdd40e95f66e15990a91e',1,'ace_time::ZoneInfoHigh::ZoneContext::kSuffixS()']]], - ['ksuffixu_657',['kSuffixU',['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a33601815982b4ac95ef94749dc90e408',1,'ace_time::ZoneInfoMid::ZoneContext::kSuffixU()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a8074d036d855510f01a8398c8a7d5f5e',1,'ace_time::ZoneInfoLow::ZoneContext::kSuffixU()'],['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a9d7ab5c0d2c71e113a209de0f9e413fc',1,'ace_time::ZoneInfoHigh::ZoneContext::kSuffixU()']]], - ['ksuffixw_658',['kSuffixW',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a6afbdf17a6bf59c24a70f902335a5776',1,'ace_time::ZoneInfoHigh::ZoneContext::kSuffixW()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#ac1dc62a9472a0855968f8fae7432afbe',1,'ace_time::ZoneInfoMid::ZoneContext::kSuffixW()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a290d1177ea173f06d8c3c1614abc54f3',1,'ace_time::ZoneInfoLow::ZoneContext::kSuffixW()']]], - ['ksunday_659',['kSunday',['../classace__time_1_1LocalDate.html#af2cb45cfd132d8d08d792935fa1a2520',1,'ace_time::LocalDate']]], - ['kthursday_660',['kThursday',['../classace__time_1_1LocalDate.html#ab8d881384833dfe6fe0107cea202d423',1,'ace_time::LocalDate']]], - ['ktuesday_661',['kTuesday',['../classace__time_1_1LocalDate.html#a0e088edd58f0f1d1331c937832cb890b',1,'ace_time::LocalDate']]], - ['ktypebasic_662',['kTypeBasic',['../classace__time_1_1BasicZoneProcessor.html#a283ca9be07f106494c22eee2729482de',1,'ace_time::BasicZoneProcessor']]], - ['ktypecomplete_663',['kTypeComplete',['../classace__time_1_1CompleteZoneProcessor.html#aafe1473dfcb838417528d0b889eff41d',1,'ace_time::CompleteZoneProcessor']]], - ['ktypeerror_664',['kTypeError',['../classace__time_1_1TimeZone.html#aa0f8a27139793d9d4933dcc05abade6a',1,'ace_time::TimeZone']]], - ['ktypeexact_665',['kTypeExact',['../classace__time_1_1ZonedExtra.html#a806d4f0be015acb89157103c793cd272',1,'ace_time::ZonedExtra']]], - ['ktypeextended_666',['kTypeExtended',['../classace__time_1_1ExtendedZoneProcessor.html#ae0cfa8f81df6c2cab008944941153bfd',1,'ace_time::ExtendedZoneProcessor']]], - ['ktypegap_667',['kTypeGap',['../classace__time_1_1ZonedExtra.html#a8c3e0de8a9a0c6e1d5f8670aae2fbe4b',1,'ace_time::ZonedExtra']]], - ['ktypemanual_668',['kTypeManual',['../classace__time_1_1TimeZone.html#af7a422f59450abac8b76aafa72d4b5c9',1,'ace_time::TimeZone']]], - ['ktypenotfound_669',['kTypeNotFound',['../classace__time_1_1ZonedExtra.html#a5e02f7bdf9230febf8cb49e4c7ddc3d0',1,'ace_time::ZonedExtra']]], - ['ktypeoverlap_670',['kTypeOverlap',['../classace__time_1_1ZonedExtra.html#a5e8d1bf7c07b6f6418cbeb83ebe2d22c',1,'ace_time::ZonedExtra']]], - ['ktypereserved_671',['kTypeReserved',['../classace__time_1_1TimeZone.html#ae1a31092dca112ec74475c1c1703fde0',1,'ace_time::TimeZone']]], - ['kwednesday_672',['kWednesday',['../classace__time_1_1LocalDate.html#a0221ea698dae2739a8bca89e11e1cd01',1,'ace_time::LocalDate']]] -]; diff --git a/docs/html/search/variables_8.html b/docs/html/search/variables_8.html deleted file mode 100644 index dc9ec54a5..000000000 --- a/docs/html/search/variables_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_8.js b/docs/html/search/variables_8.js deleted file mode 100644 index 733d7cce9..000000000 --- a/docs/html/search/variables_8.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['lastdeltaseconds_673',['lastDeltaSeconds',['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a13c33d10146b637c4b22dce4d5a56fb5',1,'ace_time::extended::MatchingEraTemplate']]], - ['lastoffsetseconds_674',['lastOffsetSeconds',['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a769af0afd3d18234a50aee30eab71a72',1,'ace_time::extended::MatchingEraTemplate']]], - ['letterindex_675',['letterIndex',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a15eb4b062e439efdc717a843a8aec2aa',1,'ace_time::ZoneInfoHigh::ZoneRule::letterIndex()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#a58565d1c7c234cfbe07974d7e1235d2f',1,'ace_time::ZoneInfoLow::ZoneRule::letterIndex()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#a03bdaf05a513c7702296a98b9a0d5013',1,'ace_time::ZoneInfoMid::ZoneRule::letterIndex()']]], - ['letters_676',['letters',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#ae209e7633464eeb41d9467de3b25a8fa',1,'ace_time::ZoneInfoHigh::ZoneContext::letters()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a9dff5300888754db401664d7f182df62',1,'ace_time::ZoneInfoLow::ZoneContext::letters()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#ae520dd2ded669647b193c2322db21cf6',1,'ace_time::ZoneInfoMid::ZoneContext::letters()']]] -]; diff --git a/docs/html/search/variables_9.html b/docs/html/search/variables_9.html deleted file mode 100644 index 7b0147509..000000000 --- a/docs/html/search/variables_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_9.js b/docs/html/search/variables_9.js deleted file mode 100644 index 8f7c8fdf5..000000000 --- a/docs/html/search/variables_9.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['match_677',['match',['../structace__time_1_1extended_1_1TransitionTemplate.html#a67e7604d62243c8e3e9a24783913cb84',1,'ace_time::extended::TransitionTemplate']]], - ['maxtransitions_678',['maxTransitions',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a9328d756398bb7f18d7fa15502a03c69',1,'ace_time::ZoneInfoHigh::ZoneContext::maxTransitions()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a05c9a77449c366129101343ffe55e3af',1,'ace_time::ZoneInfoLow::ZoneContext::maxTransitions()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a94f80c370f478c4483a9c740a712999e',1,'ace_time::ZoneInfoMid::ZoneContext::maxTransitions()']]], - ['mepochyear_679',['mEpochYear',['../classace__time_1_1ZoneProcessor.html#ab6c3aaf365c46bffc72f6c852ff4779c',1,'ace_time::ZoneProcessor']]], - ['month_680',['month',['../structace__time_1_1basic_1_1TransitionTemplate.html#a27eb4f1a5e5ab1f22de6b625d0f7b88f',1,'ace_time::basic::TransitionTemplate']]], - ['mtype_681',['mType',['../classace__time_1_1ZoneProcessor.html#a698fea5dd3a2c2b403b501d49ff3fe8f',1,'ace_time::ZoneProcessor']]], - ['myear_682',['mYear',['../classace__time_1_1ZoneProcessor.html#a5b939ab666db193d3bf2bba8f298e736',1,'ace_time::ZoneProcessor']]], - ['mzonekey_683',['mZoneKey',['../classace__time_1_1TimeZone.html#a8eafcad4aa772eb9ea6cbee9ba7110d8',1,'ace_time::TimeZone']]], - ['mzoneprocessor_684',['mZoneProcessor',['../classace__time_1_1TimeZone.html#a3380618145722bb6a76108db95153e42',1,'ace_time::TimeZone']]] -]; diff --git a/docs/html/search/variables_a.html b/docs/html/search/variables_a.html deleted file mode 100644 index 52a724d19..000000000 --- a/docs/html/search/variables_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_a.js b/docs/html/search/variables_a.js deleted file mode 100644 index 747835839..000000000 --- a/docs/html/search/variables_a.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['name_685',['name',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#a6e3abe9bbe9ef650a43007ccca73728c',1,'ace_time::ZoneInfoHigh::ZoneInfo::name()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#a63a006004b7da88de572b8bf4af5543d',1,'ace_time::ZoneInfoLow::ZoneInfo::name()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#a2dfb7f5123158f3fadc031aa3ad45e58',1,'ace_time::ZoneInfoMid::ZoneInfo::name()']]], - ['num_686',['num',['../structace__time_1_1extended_1_1TransitionForSecondsTemplate.html#aa59e329eba1791f0d4db7d520f13aced',1,'ace_time::extended::TransitionForSecondsTemplate::num()'],['../structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html#ab7c57169beb38336a66ed690951832b9',1,'ace_time::extended::TransitionForDateTimeTemplate::num()']]], - ['numeras_687',['numEras',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#acff2b61f0a5378a162a25f10062768de',1,'ace_time::ZoneInfoHigh::ZoneInfo::numEras()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#a84aca08eae658cceaa0cc49733c53d0f',1,'ace_time::ZoneInfoLow::ZoneInfo::numEras()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#a9d89fc4d75047d8474d815c96b529929',1,'ace_time::ZoneInfoMid::ZoneInfo::numEras()']]], - ['numfragments_688',['numFragments',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a9861dd12fdfc9c3cf2ba5709021985d6',1,'ace_time::ZoneInfoHigh::ZoneContext::numFragments()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a81d0b441894767bd4a81f332e102911c',1,'ace_time::ZoneInfoLow::ZoneContext::numFragments()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a4d8e88fd0ec1f4cf195f526cfd86979a',1,'ace_time::ZoneInfoMid::ZoneContext::numFragments()']]], - ['numletters_689',['numLetters',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a8607e4e0771cbe598d397d60d91157aa',1,'ace_time::ZoneInfoHigh::ZoneContext::numLetters()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#aa041fcd87f9ca04504b0ad5ae3aa94c8',1,'ace_time::ZoneInfoLow::ZoneContext::numLetters()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#afe719845f77fc8e3ccfc376914907a5d',1,'ace_time::ZoneInfoMid::ZoneContext::numLetters()']]] -]; diff --git a/docs/html/search/variables_b.html b/docs/html/search/variables_b.html deleted file mode 100644 index f376b27af..000000000 --- a/docs/html/search/variables_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_b.js b/docs/html/search/variables_b.js deleted file mode 100644 index bc09a4851..000000000 --- a/docs/html/search/variables_b.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['offsetcode_690',['offsetCode',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#aa08e5cd73a3d7db5d85609f979b0da34',1,'ace_time::ZoneInfoHigh::ZoneEra::offsetCode()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneEra.html#a9b6d9846c6ca8dc576b731bdc0827444',1,'ace_time::ZoneInfoLow::ZoneEra::offsetCode()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneEra.html#aafd902389398ccde36e15924e080ca48',1,'ace_time::ZoneInfoMid::ZoneEra::offsetCode()']]], - ['offsetminutes_691',['offsetMinutes',['../structace__time_1_1basic_1_1TransitionTemplate.html#ac2925b83cd5d46f17928e8b70432ea9d',1,'ace_time::basic::TransitionTemplate']]], - ['offsetremainder_692',['offsetRemainder',['../structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html#a4070b0ee82cf015d90da51803b89b468',1,'ace_time::ZoneInfoHigh::ZoneEra']]], - ['offsetseconds_693',['offsetSeconds',['../structace__time_1_1extended_1_1TransitionTemplate.html#ae3b1e5b69363cd2ec41d2e2d2fb12bc7',1,'ace_time::extended::TransitionTemplate']]], - ['ondayofmonth_694',['onDayOfMonth',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a86cabc8d93c4c35f7fe9c0be140cb99d',1,'ace_time::ZoneInfoHigh::ZoneRule::onDayOfMonth()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#a9cf91dcb1add3e42402664eef70bc8f3',1,'ace_time::ZoneInfoLow::ZoneRule::onDayOfMonth()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#a0e716f0c3adb93d63ceabeb2ef11e164',1,'ace_time::ZoneInfoMid::ZoneRule::onDayOfMonth()']]], - ['ondayofweek_695',['onDayOfWeek',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#a26e46a072973c5445aee6ed3e4c12295',1,'ace_time::ZoneInfoHigh::ZoneRule::onDayOfWeek()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#aa09ffaae298ad4941e04a40bd7355c5b',1,'ace_time::ZoneInfoLow::ZoneRule::onDayOfWeek()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#af146b78b9fdcc47f1893f7ebb7ef3941',1,'ace_time::ZoneInfoMid::ZoneRule::onDayOfWeek()']]] -]; diff --git a/docs/html/search/variables_c.html b/docs/html/search/variables_c.html deleted file mode 100644 index 6019eba96..000000000 --- a/docs/html/search/variables_c.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_c.js b/docs/html/search/variables_c.js deleted file mode 100644 index 25d4fea2f..000000000 --- a/docs/html/search/variables_c.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['prev_696',['prev',['../structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html#a4c6744dfe4058c74688f49d2749ab847',1,'ace_time::extended::TransitionForDateTimeTemplate']]], - ['prevmatch_697',['prevMatch',['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a1a946649fb15bef0c020ab48f3a6115a',1,'ace_time::extended::MatchingEraTemplate']]] -]; diff --git a/docs/html/search/variables_d.html b/docs/html/search/variables_d.html deleted file mode 100644 index f61ae7511..000000000 --- a/docs/html/search/variables_d.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_d.js b/docs/html/search/variables_d.js deleted file mode 100644 index 8a5626976..000000000 --- a/docs/html/search/variables_d.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['reqdstoffsetseconds_698',['reqDstOffsetSeconds',['../classace__time_1_1FindResult.html#a8c821e98b0e12c76900a56020afb841e',1,'ace_time::FindResult']]], - ['reqstdoffsetseconds_699',['reqStdOffsetSeconds',['../classace__time_1_1FindResult.html#ae7cc7f53ebb1b6ff6ab16865840495a4',1,'ace_time::FindResult']]], - ['rule_700',['rule',['../structace__time_1_1basic_1_1TransitionTemplate.html#a3659e7cb9ed2e34b8890f421e5b327b4',1,'ace_time::basic::TransitionTemplate']]] -]; diff --git a/docs/html/search/variables_e.html b/docs/html/search/variables_e.html deleted file mode 100644 index 7bfd37215..000000000 --- a/docs/html/search/variables_e.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_e.js b/docs/html/search/variables_e.js deleted file mode 100644 index 5f4f13f6a..000000000 --- a/docs/html/search/variables_e.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['startdatetime_701',['startDateTime',['../structace__time_1_1extended_1_1MatchingEraTemplate.html#a2a99c8f744ffe11f39b4aa070cb5d17d',1,'ace_time::extended::MatchingEraTemplate::startDateTime()'],['../structace__time_1_1extended_1_1TransitionTemplate.html#a7a9228ea6192b5c32d653ae168ab18f3',1,'ace_time::extended::TransitionTemplate::startDateTime()']]], - ['startepochseconds_702',['startEpochSeconds',['../structace__time_1_1basic_1_1TransitionTemplate.html#a0e3be81507afb2645ede1152a6b5e380',1,'ace_time::basic::TransitionTemplate::startEpochSeconds()'],['../structace__time_1_1extended_1_1TransitionTemplate.html#acaa8e793029236d7584ba7e42cb86769',1,'ace_time::extended::TransitionTemplate::startEpochSeconds()']]], - ['startyear_703',['startYear',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a7b1febefd2500715949f9b9420ae32c5',1,'ace_time::ZoneInfoHigh::ZoneContext::startYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#aec1f8dfc289c3976923f7c75d2b3853c',1,'ace_time::ZoneInfoLow::ZoneContext::startYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a1b3a8a00e090161fcbac64d548f4efa0',1,'ace_time::ZoneInfoMid::ZoneContext::startYear()']]], - ['startyearaccurate_704',['startYearAccurate',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#a272cc1c4e6cbb90a171d394584796a37',1,'ace_time::ZoneInfoHigh::ZoneContext::startYearAccurate()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#ab9e2cba37cfc9e35e06da7928d13dd7a',1,'ace_time::ZoneInfoLow::ZoneContext::startYearAccurate()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a0e7b43f0a9b995fc247990195ad29c31',1,'ace_time::ZoneInfoMid::ZoneContext::startYearAccurate()']]], - ['stdoffsetseconds_705',['stdOffsetSeconds',['../classace__time_1_1FindResult.html#a2d2eb6055092b450cf39c04579ccb113',1,'ace_time::FindResult']]] -]; diff --git a/docs/html/search/variables_f.html b/docs/html/search/variables_f.html deleted file mode 100644 index d97920d08..000000000 --- a/docs/html/search/variables_f.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_f.js b/docs/html/search/variables_f.js deleted file mode 100644 index 9d45968c6..000000000 --- a/docs/html/search/variables_f.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['targetinfo_706',['targetInfo',['../structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html#a7138a1f343ad458c677518af212fa3af',1,'ace_time::ZoneInfoHigh::ZoneInfo::targetInfo()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html#aebc718272c6514e642cb620c261bfc7c',1,'ace_time::ZoneInfoLow::ZoneInfo::targetInfo()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html#a51e9ef6e379e8dbc0ae7283ada7a810b',1,'ace_time::ZoneInfoMid::ZoneInfo::targetInfo()']]], - ['toyear_707',['toYear',['../structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html#afbceca71178540a0623b6b7bbb5c6b53',1,'ace_time::ZoneInfoHigh::ZoneRule::toYear()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneRule.html#a23c4dbd9a13d73c5d8f4248f001cc43e',1,'ace_time::ZoneInfoLow::ZoneRule::toYear()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneRule.html#afa4c01beba90c1b3b8a16be5956a73b3',1,'ace_time::ZoneInfoMid::ZoneRule::toYear()']]], - ['transitiontime_708',['transitionTime',['../structace__time_1_1extended_1_1TransitionTemplate.html#a5f9b292d081aed327efee58bd56609c8',1,'ace_time::extended::TransitionTemplate']]], - ['transitiontimes_709',['transitionTimeS',['../structace__time_1_1extended_1_1TransitionTemplate.html#adc9de7f0c79288a872be59eee5bccf91',1,'ace_time::extended::TransitionTemplate']]], - ['transitiontimeu_710',['transitionTimeU',['../structace__time_1_1extended_1_1TransitionTemplate.html#a4a5190619d60a03a6cc3f1d8d2f1ab87',1,'ace_time::extended::TransitionTemplate']]], - ['type_711',['type',['../classace__time_1_1FindResult.html#aea0fa44decd41bb509e9353aaf3aa605',1,'ace_time::FindResult']]], - ['tzversion_712',['tzVersion',['../structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html#aec06aa1d12e81f17f81f8b9f01386e02',1,'ace_time::ZoneInfoHigh::ZoneContext::tzVersion()'],['../structace__time_1_1ZoneInfoLow_1_1ZoneContext.html#a9c23689b08b58a8d0e2fb41fd0d39482',1,'ace_time::ZoneInfoLow::ZoneContext::tzVersion()'],['../structace__time_1_1ZoneInfoMid_1_1ZoneContext.html#a31f852239d5a06a54af4a47def4129ff',1,'ace_time::ZoneInfoMid::ZoneContext::tzVersion()']]] -]; diff --git a/docs/html/splitbar.png b/docs/html/splitbar.png deleted file mode 100644 index fe895f2c58179b471a22d8320b39a4bd7312ec8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T diff --git a/docs/html/structace__time_1_1MonthDay-members.html b/docs/html/structace__time_1_1MonthDay-members.html deleted file mode 100644 index a71f15b8b..000000000 --- a/docs/html/structace__time_1_1MonthDay-members.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::MonthDay Member List
    -
    -
    - -

    This is the complete list of members for ace_time::MonthDay, including all inherited members.

    - - - -
    day (defined in ace_time::MonthDay)ace_time::MonthDay
    month (defined in ace_time::MonthDay)ace_time::MonthDay
    - - - - diff --git a/docs/html/structace__time_1_1MonthDay.html b/docs/html/structace__time_1_1MonthDay.html deleted file mode 100644 index c736bd64e..000000000 --- a/docs/html/structace__time_1_1MonthDay.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -AceTime: ace_time::MonthDay Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::MonthDay Struct Reference
    -
    -
    - -

    The result of calcStartDayOfMonth(). - More...

    - -

    #include <ZoneProcessor.h>

    - - - - - - -

    -Public Attributes

    -uint8_t month
     
    -uint8_t day
     
    -

    Detailed Description

    -

    The result of calcStartDayOfMonth().

    - -

    Definition at line 268 of file ZoneProcessor.h.

    -

    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/ZoneProcessor.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1TimeZoneData-members.html b/docs/html/structace__time_1_1TimeZoneData-members.html deleted file mode 100644 index ab8d0bfb7..000000000 --- a/docs/html/structace__time_1_1TimeZoneData-members.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::TimeZoneData Member List
    -
    -
    - -

    This is the complete list of members for ace_time::TimeZoneData, including all inherited members.

    - - - - - - - - - - - -
    dstOffsetMinutes (defined in ace_time::TimeZoneData)ace_time::TimeZoneData
    kTypeError (defined in ace_time::TimeZoneData)ace_time::TimeZoneDatastatic
    kTypeManual (defined in ace_time::TimeZoneData)ace_time::TimeZoneDatastatic
    kTypeZoneId (defined in ace_time::TimeZoneData)ace_time::TimeZoneDatastatic
    stdOffsetMinutes (defined in ace_time::TimeZoneData)ace_time::TimeZoneData
    TimeZoneData(uint32_t zid)ace_time::TimeZoneDatainline
    TimeZoneData(int16_t stdMinutes, int16_t dstMinutes)ace_time::TimeZoneDatainline
    TimeZoneData()ace_time::TimeZoneDatainline
    type (defined in ace_time::TimeZoneData)ace_time::TimeZoneData
    zoneIdace_time::TimeZoneData
    - - - - diff --git a/docs/html/structace__time_1_1TimeZoneData.html b/docs/html/structace__time_1_1TimeZoneData.html deleted file mode 100644 index e8cea8c29..000000000 --- a/docs/html/structace__time_1_1TimeZoneData.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - -AceTime: ace_time::TimeZoneData Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::TimeZoneData Struct Reference
    -
    -
    - -

    Data structure that captures the internal state of a TimeZone object with enough information so that it can be serialized using TimeZone::toTimeZoneData() then reconstructed using ZoneManager::createForTimeZoneData(). - More...

    - -

    #include <TimeZoneData.h>

    - - - - - - - - - - - -

    -Public Member Functions

    TimeZoneData (uint32_t zid)
     Constructor for kTypeZoneId needed because C+11 does not have member initialization, and cannot initialize the 'zoneId' component of the union.
     
    TimeZoneData (int16_t stdMinutes, int16_t dstMinutes)
     Constructor for kTypeManual.
     
    TimeZoneData ()
     Default constructor gives kTypeError sentinel.
     
    - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -uint8_t type
     
    -union {
       struct {
    -      int16_t   stdOffsetMinutes
     
    -      int16_t   dstOffsetMinutes
     
       } 
     Used for kTypeManual. More...
     
    -   uint32_t   zoneId
     Both TimeZone::kTypeBasic and TimeZone::kTypeExtended are mapped to a TimeZoneData::kTypeZoneId.
     
    }; 
     
    - - - - - - - -

    -Static Public Attributes

    -static const uint8_t kTypeError = 0
     
    -static const uint8_t kTypeManual = 1
     
    -static const uint8_t kTypeZoneId = 2
     
    -

    Detailed Description

    -

    Data structure that captures the internal state of a TimeZone object with enough information so that it can be serialized using TimeZone::toTimeZoneData() then reconstructed using ZoneManager::createForTimeZoneData().

    -

    This data structure is meant to a simple and somewhat opaque serialization object. You should not rely on this struct to remain stable, nor reach into its internal fields. No versioning is provided for simplicity. If the internal format changes in the future, the previous version will likely be incompatible with the new version of the library. It is recommended to use a CRC check to detect version incompatibility if this data structure is saved (e.g. EEPROM) and retrieved later .

    -

    For convenience, an array of TimeZoneData can be initializeed using the usual initializer syntax. In other words, the following is allowed:

    -
    TimeZoneData zones[3] = {
    -
    {0, 0},
    -
    {zonedb::kZoneIdAmerica_Los_Angeles},
    -
    {}
    -
    };
    -
    TimeZoneData()
    Default constructor gives kTypeError sentinel.
    Definition: TimeZoneData.h:60
    -
    -

    Definition at line 38 of file TimeZoneData.h.

    -

    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/TimeZoneData.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneContext-members.html b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneContext-members.html deleted file mode 100644 index f1855c676..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneContext-members.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoHigh::ZoneContext Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html deleted file mode 100644 index 9dfd5c101..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneContext.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZoneContext Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoHigh::ZoneContext Struct Reference
    -
    -
    - -

    Metadata about the zone database. - More...

    - -

    #include <ZoneInfoHigh.h>

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -int16_t const startYear
     Start year of the zone files as requested.
     
    -int16_t const untilYear
     Until year of the zone files as requested.
     
    int16_t const startYearAccurate
     Start year of accurate transitions. More...
     
    int16_t const untilYearAccurate
     Until year of accurate transitions. More...
     
    int16_t const baseYear
     Base year for tiny years. More...
     
    -int16_t const maxTransitions
     Max number of transitions required in TransitionStorage.
     
    -const char *const tzVersion
     TZ Database version which generated the zone info.
     
    -uint8_t const numFragments
     Number of fragments.
     
    -uint8_t const numLetters
     Number of fragments.
     
    -const char *const *const fragments
     Zone Name fragment list.
     
    -const char *const *const letters
     Zone Rule letters list.
     
    - - - - - - - - - - - - - - - - - - - -

    -Static Public Attributes

    static const int16_t kMaxUntilYear = 32767
     The maximum value of untilYear. More...
     
    static const int16_t kMaxYear = kMaxUntilYear - 1
     The maximum value fromYear and toYear. More...
     
    static const int16_t kMinYear = -32767
     The minimum value of fromYear and toYear. More...
     
    -static const uint8_t kSuffixW = 0x00
     Represents 'w' or wall time.
     
    -static const uint8_t kSuffixS = 0x10
     Represents 's' or standard time.
     
    -static const uint8_t kSuffixU = 0x20
     Represents 'u' or UTC time.
     
    -

    Detailed Description

    -

    Metadata about the zone database.

    -

    A ZoneInfo struct will contain a pointer to this.

    - -

    Definition at line 49 of file ZoneInfoHigh.h.

    -

    Member Data Documentation

    - -

    ◆ baseYear

    - -
    -
    - - - - -
    int16_t const ace_time::ZoneInfoHigh::ZoneContext::baseYear
    -
    - -

    Base year for tiny years.

    -

    Unused.

    - -

    Definition at line 98 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ kMaxUntilYear

    - -
    -
    - - - - - -
    - - - - -
    const int16_t ace_time::ZoneInfoHigh::ZoneContext::kMaxUntilYear = 32767
    -
    -static
    -
    - -

    The maximum value of untilYear.

    -

    This value is used to represent the sentinel value "-" in the UNTIL column of the TZDB files which means "infinity". Must be greater than ZoneRule::kMaxYear which represents the value "max" in the TO and FROM columns of the TZDB files.

    - -

    Definition at line 56 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ kMaxYear

    - -
    -
    - - - - - -
    - - - - -
    const int16_t ace_time::ZoneInfoHigh::ZoneContext::kMaxYear = kMaxUntilYear - 1
    -
    -static
    -
    - -

    The maximum value fromYear and toYear.

    -

    This value is used to represent the sentinel value "max" in the TZDB database files. Must be less than ZoneEra::kMaxUntilYear which is used to represent the entry "-" in the UNTIL column of the TZDB files.

    - -

    Definition at line 64 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ kMinYear

    - -
    -
    - - - - - -
    - - - - -
    const int16_t ace_time::ZoneInfoHigh::ZoneContext::kMinYear = -32767
    -
    -static
    -
    - -

    The minimum value of fromYear and toYear.

    -

    This value is used for ZoneRule entries which are synthetically generated for certain time zones which do not naturally generate a transition for the database year interval specified by the ZoneContext. This value is guaranteed to be earlier than any explicit year in the TZDB database, which guarantees that all time zones have at least one transition.

    - -

    Definition at line 74 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ startYearAccurate

    - -
    -
    - - - - -
    int16_t const ace_time::ZoneInfoHigh::ZoneContext::startYearAccurate
    -
    - -

    Start year of accurate transitions.

    -

    kMinYear indicates -Infinity.

    - -

    Definition at line 92 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ untilYearAccurate

    - -
    -
    - - - - -
    int16_t const ace_time::ZoneInfoHigh::ZoneContext::untilYearAccurate
    -
    - -

    Until year of accurate transitions.

    -

    kMaxUntilYear indicates +Infinity.

    - -

    Definition at line 95 of file ZoneInfoHigh.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra-members.html b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra-members.html deleted file mode 100644 index cd639c1bc..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra-members.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoHigh::ZoneEra Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html deleted file mode 100644 index 86efea313..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra.html +++ /dev/null @@ -1,321 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZoneEra Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoHigh::ZoneEra Struct Reference
    -
    -
    - -

    An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. - More...

    - -

    #include <ZoneInfoHigh.h>

    -
    -Collaboration diagram for ace_time::ZoneInfoHigh::ZoneEra:
    -
    -
    Collaboration graph
    - - - - - -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    const ZonePolicy *const zonePolicy
     Zone policy, determined by the RULES column. More...
     
    const char *const format
     Zone abbreviations (e.g. More...
     
    int16_t const offsetCode
     UTC offset in 15-second increments. More...
     
    -uint8_t const offsetRemainder
     The remainder seconds from offsetCode.
     
    int8_t const deltaMinutes
     If zonePolicy is nullptr, this is the DST offset in minutes as defined by the RULES column in 'hh:mm' format. More...
     
    int16_t const untilYear
     Era is valid until currentTime < untilYear. More...
     
    uint8_t const untilMonth
     The month field in UNTIL (1-12). More...
     
    uint8_t const untilDay
     The day field in UNTIL (1-31). More...
     
    uint16_t const untilTimeCode
     The time field of UNTIL field in 15-second increments. More...
     
    uint8_t const untilTimeModifier
     The untilTimeModifier is a packed field containing 2 pieces of info: More...
     
    -

    Detailed Description

    -

    An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period.

    -

    Corresponds to one line of the ZONE record in the TZ Database file ending with an UNTIL field. The ZonePolicy is determined by the RULES column in the TZ Database file.

    -

    There are 2 types of ZoneEra: 1) zonePolicy == nullptr. Then ZoneEra.deltaMinutes determines the additional offset from offsetCode. A value of '-' in the TZ Database file is stored as 0. 2) zonePolicy != nullptr. Then the deltaMinutes offset is given by the ZoneRule.deltaMinutes which matches the time instant of interest.

    - -

    Definition at line 215 of file ZoneInfoHigh.h.

    -

    Member Data Documentation

    - -

    ◆ deltaMinutes

    - -
    -
    - - - - -
    int8_t const ace_time::ZoneInfoHigh::ZoneEra::deltaMinutes
    -
    - -

    If zonePolicy is nullptr, this is the DST offset in minutes as defined by the RULES column in 'hh:mm' format.

    -

    An 8-bit integer can handle DST offsets of [-128,127] minutes which allows it to handle DST offsets of [-02:00,02:00].

    - -

    Definition at line 263 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ format

    - -
    -
    - - - - -
    const char* const ace_time::ZoneInfoHigh::ZoneEra::format
    -
    - -

    Zone abbreviations (e.g.

    -

    PST, EST) determined by the FORMAT column. It has 4 encodings in the TZ DB files:

    -

    1) A fixed string, e.g. "GMT". 2) Two strings separated by a '/', e.g. "-03/-02" indicating "{std}/{dst}" options. 3) A single string with a substitution, e.g. "E%sT", where the "%s" is replaced by the LETTER value from the ZoneRule. 4) An empty string representing the "%z" format.

    -

    BasicZoneProcessor supports only a single letter subsitution from LETTER, but ExtendedZoneProcessor supports substituting multi-character strings (e.g. "CAT", "DD", "+00").

    -

    The TZ DB files use 's' to indicate the substitution, but for simplicity, AceTime replaces the "%s" with just a '' character with no loss of functionality. This also makes the string-replacement code a little simpler. For example, 'EsT' is stored as 'ET', and the LETTER substitution is performed on the '' character.

    -

    This field will never be a 'nullptr' because the AceTimeTools compiler always generates a ZoneEra entry with a non-null format.

    - -

    Definition at line 246 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ offsetCode

    - -
    -
    - - - - -
    int16_t const ace_time::ZoneInfoHigh::ZoneEra::offsetCode
    -
    - -

    UTC offset in 15-second increments.

    -

    Determined by the STDOFF column. The remainder goes into the offsetsRemainder field.

    - -

    Definition at line 252 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ untilDay

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoHigh::ZoneEra::untilDay
    -
    - -

    The day field in UNTIL (1-31).

    -

    Will never be 0. Also, there's no need for untilDayOfWeek, because the database generator will resolve the exact day of month based on the known year and month.

    - -

    Definition at line 278 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ untilMonth

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoHigh::ZoneEra::untilMonth
    -
    - -

    The month field in UNTIL (1-12).

    -

    Will never be 0.

    - -

    Definition at line 271 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ untilTimeCode

    - -
    -
    - - - - -
    uint16_t const ace_time::ZoneInfoHigh::ZoneEra::untilTimeCode
    -
    - -

    The time field of UNTIL field in 15-second increments.

    -

    A range is [0,6000] corresponds to [0h,25h].

    - -

    Definition at line 284 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ untilTimeModifier

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoHigh::ZoneEra::untilTimeModifier
    -
    - -

    The untilTimeModifier is a packed field containing 2 pieces of info:

    -
      -
    • The upper 4 bits represent the UNTIL time suffix: 'w', 's' or 'u', represented by kSuffixW, kSuffixS and kSuffixU.
    • -
    • The lower 4 bits represent the remaining 0-14 seconds of the UNTIL field after truncation into untilTimeCode. In other words, the full UNTIL field in one-second resolution is (15 * untilTimeCode + (untilTimeModifier & 0x0f)).
    • -
    - -

    Definition at line 296 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ untilYear

    - -
    -
    - - - - -
    int16_t const ace_time::ZoneInfoHigh::ZoneEra::untilYear
    -
    - -

    Era is valid until currentTime < untilYear.

    -

    Comes from the UNTIL column.

    - -

    Definition at line 268 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ zonePolicy

    - -
    -
    - - - - -
    const ZonePolicy* const ace_time::ZoneInfoHigh::ZoneEra::zonePolicy
    -
    - -

    Zone policy, determined by the RULES column.

    -

    Set to nullptr if the RULES column is '-' or an explicit DST shift in the form of 'hh:mm'.

    - -

    Definition at line 220 of file ZoneInfoHigh.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra__coll__graph.map b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra__coll__graph.map deleted file mode 100644 index 9a5d094b4..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra__coll__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra__coll__graph.md5 b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra__coll__graph.md5 deleted file mode 100644 index 6b609c57b..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -85e3ef9b8c9814709a473dd3a5c9e883 \ No newline at end of file diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra__coll__graph.png b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneEra__coll__graph.png deleted file mode 100644 index a2faa2c82718748acbcfe276f85ec4c4a60f5a94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7814 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 - - - - - - -AceTime: Member List - - - - - - - - - - -
    -
    -
    ace_time::ZoneInfoHigh::ZoneInfo Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html deleted file mode 100644 index fee3733b9..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZoneInfo Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoHigh::ZoneInfo Struct Reference
    -
    -
    - -

    Representation of a given time zone, implemented as an array of ZoneEra records. - More...

    - -

    #include <ZoneInfoHigh.h>

    -
    -Collaboration diagram for ace_time::ZoneInfoHigh::ZoneInfo:
    -
    -
    Collaboration graph
    - - - - - - - -
    [legend]
    - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    const char *const name
     Full name of zone (e.g. More...
     
    uint32_t const zoneId
     Unique, stable ID of the zone name, created from a hash of the name. More...
     
    -const ZoneContext *const zoneContext
     ZoneContext metadata.
     
    uint8_t const numEras
     Number of ZoneEra entries. More...
     
    -const ZoneEra *const eras
     A const ZoneEras* pointer to numEras ZoneEra entries in increasing order of UNTIL time.
     
    const ZoneInfo *const targetInfo
     If Link, points to the target zone info. More...
     
    -

    Detailed Description

    -

    Representation of a given time zone, implemented as an array of ZoneEra records.

    - -

    Definition at line 303 of file ZoneInfoHigh.h.

    -

    Member Data Documentation

    - -

    ◆ name

    - -
    -
    - - - - -
    const char* const ace_time::ZoneInfoHigh::ZoneInfo::name
    -
    - -

    Full name of zone (e.g.

    -

    "America/Los_Angeles").

    - -

    Definition at line 305 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ numEras

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoHigh::ZoneInfo::numEras
    -
    - -

    Number of ZoneEra entries.

    -

    If this Zone is a actually a Link to a target Zone, the ZoneEra and numEras of the target Zone is placed here, and the targetInfo pointer below is set to the target ZoneInfo. This allows a Link entry to be self-contained, acting like any other Zone entry, which simplifies some of the code the ZoneProcessor because it does not need to traverse the link to find the required information. In essence, a Link is a "hard link" to a Zone.

    -

    An alternative implementation is to set numEras to 0 for a Link, and traverse the targetInfo to find the required numEras and eras. This led to more complicated code.

    - -

    Definition at line 332 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ targetInfo

    - -
    -
    - - - - -
    const ZoneInfo* const ace_time::ZoneInfoHigh::ZoneInfo::targetInfo
    -
    - -

    If Link, points to the target zone info.

    -

    If Zone, nullptr.

    - -

    Definition at line 341 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ zoneId

    - -
    -
    - - - - -
    uint32_t const ace_time::ZoneInfoHigh::ZoneInfo::zoneId
    -
    - -

    Unique, stable ID of the zone name, created from a hash of the name.

    -

    This ID will never change once assigned. This can be used for presistence and serialization.

    - -

    Definition at line 312 of file ZoneInfoHigh.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo__coll__graph.map b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo__coll__graph.map deleted file mode 100644 index 673064110..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo__coll__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo__coll__graph.md5 b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo__coll__graph.md5 deleted file mode 100644 index 97645649d..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -14e532cb3c110a96b6ae6c385f78f9e4 \ No newline at end of file diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo__coll__graph.png b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneInfo__coll__graph.png deleted file mode 100644 index 80d1953ef176c4bd2915ef858264a9a95a1c104e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16679 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 diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy-members.html b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy-members.html deleted file mode 100644 index bfbda3955..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy-members.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoHigh::ZonePolicy Member List
    -
    -
    - -

    This is the complete list of members for ace_time::ZoneInfoHigh::ZonePolicy, including all inherited members.

    - - - -
    numRules (defined in ace_time::ZoneInfoHigh::ZonePolicy)ace_time::ZoneInfoHigh::ZonePolicy
    rules (defined in ace_time::ZoneInfoHigh::ZonePolicy)ace_time::ZoneInfoHigh::ZonePolicy
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy.html b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy.html deleted file mode 100644 index 5e81773ed..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZonePolicy Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoHigh::ZonePolicy Struct Reference
    -
    -
    - -

    A collection of transition rules which describe the DST rules of a given administrative region. - More...

    - -

    #include <ZoneInfoHigh.h>

    -
    -Collaboration diagram for ace_time::ZoneInfoHigh::ZonePolicy:
    -
    -
    Collaboration graph
    - - - - -
    [legend]
    - - - - - - -

    -Public Attributes

    -const ZoneRule *const rules
     
    -uint8_t const numRules
     
    -

    Detailed Description

    -

    A collection of transition rules which describe the DST rules of a given administrative region.

    -

    A given time zone (ZoneInfo) can follow a different ZonePolicy at different times. Conversely, multiple time zones (ZoneInfo) can choose to follow the same ZonePolicy at different times.

    - -

    Definition at line 197 of file ZoneInfoHigh.h.

    -

    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy__coll__graph.map b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy__coll__graph.map deleted file mode 100644 index 7d7d82fc0..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy__coll__graph.md5 b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy__coll__graph.md5 deleted file mode 100644 index 4c2a96ecd..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a5dd4b32bc99be2b41a90535cdc0ff52 \ No newline at end of file diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy__coll__graph.png b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZonePolicy__coll__graph.png deleted file mode 100644 index c33bcd1088aafc2c7a6f0f703256e6d0021acfb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5289 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 e_y=$1&LF@0vg7LP>P+D65z - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoHigh::ZoneRule Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html b/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html deleted file mode 100644 index 7c0177773..000000000 --- a/docs/html/structace__time_1_1ZoneInfoHigh_1_1ZoneRule.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoHigh::ZoneRule Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoHigh::ZoneRule Struct Reference
    -
    -
    - -

    A time zone transition rule. - More...

    - -

    #include <ZoneInfoHigh.h>

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -int16_t const fromYear
     FROM year.
     
    -int16_t const toYear
     TO year.
     
    uint8_t const inMonth
     Determined by the IN column. More...
     
    uint8_t const onDayOfWeek
     Determined by the ON column. More...
     
    int8_t const onDayOfMonth
     Determined by the ON column. More...
     
    uint8_t const atTimeModifier
     The atTimeModifier is a packed field containing 2 pieces of info: More...
     
    uint16_t const atTimeCode
     Determined by the AT column in units of 15-seconds from 00:00. More...
     
    int8_t const deltaMinutes
     Determined by the SAVE column and contains the offset from UTC in minutes. More...
     
    uint8_t const letterIndex
     Determined by the LETTER column. More...
     
    -

    Detailed Description

    -

    A time zone transition rule.

    -

    It is useful to think of this as a transition rule that repeats on the given (month, day, hour) every year during the interval [fromYear, toYear] inclusive.

    - -

    Definition at line 124 of file ZoneInfoHigh.h.

    -

    Member Data Documentation

    - -

    ◆ atTimeCode

    - -
    -
    - - - - -
    uint16_t const ace_time::ZoneInfoHigh::ZoneRule::atTimeCode
    -
    - -

    Determined by the AT column in units of 15-seconds from 00:00.

    -

    The range is [0,6000] or [0h,25h] in 15-second increments.

    - -

    Definition at line 167 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ atTimeModifier

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoHigh::ZoneRule::atTimeModifier
    -
    - -

    The atTimeModifier is a packed field containing 2 pieces of info:

    -
      -
    • The upper 4 bits represent the AT time suffix: 'w', 's' or 'u', represented by kSuffixW, kSuffixS and kSuffixU.
    • -
    • The lower 4 bits represent the remaining 0-14 seconds of the AT field after truncation into atTimeCode. In other words, the full AT field in one-second resolution is (15 * atTimeCode + (atTimeModifier & 0x0f)).
    • -
    - -

    Definition at line 161 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ deltaMinutes

    - -
    -
    - - - - -
    int8_t const ace_time::ZoneInfoHigh::ZoneRule::deltaMinutes
    -
    - -

    Determined by the SAVE column and contains the offset from UTC in minutes.

    -

    The range is [-128,+127] which allows it to represent DST offset in the range of [-02:00,02:00].

    - -

    Definition at line 174 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ inMonth

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoHigh::ZoneRule::inMonth
    -
    - -

    Determined by the IN column.

    -

    1=Jan, 12=Dec.

    - -

    Definition at line 132 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ letterIndex

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoHigh::ZoneRule::letterIndex
    -
    - -

    Determined by the LETTER column.

    -

    Determines the substitution into the 's' field (implemented here by just a '') of the ZoneInfo::format field. This is an index offset into the global kLetters array. Most LETTER string is a single character, e.g. "D", "S", or "". But a small number have LETTER fields which are longer than one character. For example:

    -
      -
    • Belize ('CST'; used by America/Belize)
    • -
    • Namibia ('WAT', 'CAT'; used by Africa/Windhoek)
    • -
    • StJohns ('DD'; used by America/St_Johns and America/Goose_Bay)
    • -
    • Troll ('+00' '+02'; used by Antarctica/Troll)
    • -
    - -

    Definition at line 188 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ onDayOfMonth

    - -
    -
    - - - - -
    int8_t const ace_time::ZoneInfoHigh::ZoneRule::onDayOfMonth
    -
    - -

    Determined by the ON column.

    -

    Used with onDayOfWeek. Possible values are: 0, 1-31, or its corresponding negative values.

    - -

    Definition at line 150 of file ZoneInfoHigh.h.

    - -
    -
    - -

    ◆ onDayOfWeek

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoHigh::ZoneRule::onDayOfWeek
    -
    - -

    Determined by the ON column.

    -

    Possible values are: 0, 1=Mon, 7=Sun. There are 4 combinations:

    * onDayOfWeek=0, onDayOfMonth=(1-31): exact match
    -* onDayOfWeek=1-7, onDayOfMonth=1-31: dayOfWeek>=dayOfMonth
    -* onDayOfWeek=1-7, onDayOfMonth=-(1-31): dayOfWeek<=dayOfMonth
    -* onDayOfWeek=1-7, onDayOfMonth=0: last{dayOfWeek}
    -* 
    -

    Definition at line 144 of file ZoneInfoHigh.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoHigh.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneContext-members.html b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneContext-members.html deleted file mode 100644 index 61b451d9c..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneContext-members.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoLow::ZoneContext Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneContext.html b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneContext.html deleted file mode 100644 index 5300201b1..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneContext.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZoneContext Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoLow::ZoneContext Struct Reference
    -
    -
    - -

    Metadata about the zone database. - More...

    - -

    #include <ZoneInfoLow.h>

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -int16_t const startYear
     Start year of the zone files as requested.
     
    -int16_t const untilYear
     Until year of the zone files as requested.
     
    int16_t const startYearAccurate
     Start year of accurate transitions. More...
     
    int16_t const untilYearAccurate
     Until year of accurate transitions. More...
     
    -int16_t const baseYear
     Base year for tiny years.
     
    -int16_t const maxTransitions
     Max number of transitions required in TransitionStorage.
     
    -const char *const tzVersion
     TZ Database version which generated the zone info.
     
    -uint8_t const numFragments
     Number of fragments.
     
    -uint8_t const numLetters
     Number of fragments.
     
    -const char *const *const fragments
     Zone Name fragment list.
     
    -const char *const *const letters
     Zone Rule letters list.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Static Public Attributes

    -static const int16_t kInvalidYear = -32768
     Sentinel value for an invalid 16-bit year field.
     
    -static const int8_t kInvalidYearTiny = -128
     Sentinel value for an invalid 8-bit year field.
     
    static const int16_t kMaxUntilYear = 32767
     The maximum value of untilYear. More...
     
    -static const int8_t kMaxUntilYearTiny = 127
     Maximum value of untilYearTiny.
     
    static const int16_t kMaxYear = kMaxUntilYear - 1
     The maximum value fromYear and toYear. More...
     
    -static const int8_t kMaxYearTiny = kMaxUntilYearTiny - 1
     Maximum value of fromYearTiny or toYearTiny.
     
    static const int16_t kMinYear = -32767
     The minimum value of fromYear and toYear. More...
     
    -static const int8_t kMinYearTiny = -127
     The smallest value of a tiny year field.
     
    -static const uint8_t kSuffixW = 0x00
     Represents 'w' or wall time.
     
    -static const uint8_t kSuffixS = 0x10
     Represents 's' or standard time.
     
    -static const uint8_t kSuffixU = 0x20
     Represents 'u' or UTC time.
     
    -

    Detailed Description

    -

    Metadata about the zone database.

    -

    A ZoneInfo struct will contain a pointer to this.

    - -

    Definition at line 45 of file ZoneInfoLow.h.

    -

    Member Data Documentation

    - -

    ◆ kMaxUntilYear

    - -
    -
    - - - - - -
    - - - - -
    const int16_t ace_time::ZoneInfoLow::ZoneContext::kMaxUntilYear = 32767
    -
    -static
    -
    - -

    The maximum value of untilYear.

    -

    This value is used to represent the sentinel value "-" in the UNTIL column of the TZDB files which means "infinity". Must be greater than ZoneRule::kMaxYear which represents the value "max" in the TO and FROM columns of the TZDB files.

    - -

    Definition at line 58 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ kMaxYear

    - -
    -
    - - - - - -
    - - - - -
    const int16_t ace_time::ZoneInfoLow::ZoneContext::kMaxYear = kMaxUntilYear - 1
    -
    -static
    -
    - -

    The maximum value fromYear and toYear.

    -

    This value is used to represent the sentinel value "max" in the TZDB database files. Must be less than ZoneEra::kMaxUntilYear which is used to represent the entry "-" in the UNTIL column of the TZDB files.

    - -

    Definition at line 69 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ kMinYear

    - -
    -
    - - - - - -
    - - - - -
    const int16_t ace_time::ZoneInfoLow::ZoneContext::kMinYear = -32767
    -
    -static
    -
    - -

    The minimum value of fromYear and toYear.

    -

    This value is used for ZoneRule entries which are synthetically generated for certain time zones which do not naturally generate a transition for the database year interval specified by the ZoneContext. This value is guaranteed to be earlier than any explicit year in the TZDB database, which guarantees that all time zones have at least one transition.

    - -

    Definition at line 82 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ startYearAccurate

    - -
    -
    - - - - -
    int16_t const ace_time::ZoneInfoLow::ZoneContext::startYearAccurate
    -
    - -

    Start year of accurate transitions.

    -

    kMinYear indicates -Infinity.

    - -

    Definition at line 103 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ untilYearAccurate

    - -
    -
    - - - - -
    int16_t const ace_time::ZoneInfoLow::ZoneContext::untilYearAccurate
    -
    - -

    Until year of accurate transitions.

    -

    kMaxUntilYear indicates +Infinity.

    - -

    Definition at line 106 of file ZoneInfoLow.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra-members.html b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra-members.html deleted file mode 100644 index a9f48574e..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoLow::ZoneEra Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra.html b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra.html deleted file mode 100644 index 45c313acf..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZoneEra Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoLow::ZoneEra Struct Reference
    -
    -
    - -

    An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. - More...

    - -

    #include <ZoneInfoLow.h>

    -
    -Collaboration diagram for ace_time::ZoneInfoLow::ZoneEra:
    -
    -
    Collaboration graph
    - - - - - -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    const ZonePolicy *const zonePolicy
     Zone policy, determined by the RULES column. More...
     
    const char *const format
     Zone abbreviations (e.g. More...
     
    int8_t const offsetCode
     UTC offset in 15 min increments. More...
     
    uint8_t const deltaCode
     This is a composite of two 4-bit fields: More...
     
    int8_t const untilYear
     Era is valid until currentTime < untilYear. More...
     
    uint8_t const untilMonth
     The month field in UNTIL (1-12). More...
     
    uint8_t const untilDay
     The day field in UNTIL (1-31). More...
     
    uint8_t const untilTimeCode
     The time field of UNTIL field in 15-minute increments. More...
     
    uint8_t const untilTimeModifier
     The untilTimeModifier is a packed field containing 2 pieces of info: More...
     
    -

    Detailed Description

    -

    An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period.

    -

    Corresponds to one line of the ZONE record in the TZ Database file ending with an UNTIL field. The ZonePolicy is determined by the RULES column in the TZ Database file.

    -

    There are 2 types of ZoneEra: 1) zonePolicy == nullptr. Then ZoneEra.deltaCode determines the additional offset from offsetCode. A value of '-' in the TZ Database file is stored as 0. 2) zonePolicy != nullptr. Then the ZoneRule.deltaCode offset is given by the ZoneRule.deltaCode which matches the time instant of interest.

    - -

    Definition at line 231 of file ZoneInfoLow.h.

    -

    Member Data Documentation

    - -

    ◆ deltaCode

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneEra::deltaCode
    -
    - -

    This is a composite of two 4-bit fields:

    -
      -
    • The upper 4-bits is an unsigned integer from 0 to 14 that represents the one-minute remainder from the offsetCode. This allows us to capture STDOFF offsets in 1-minute resolution.
    • -
    • The lower 4-bits is an unsigned integer that holds (originalDeltaCode
        -
      • 4). The originalDeltaCode is defined if zonePolicy is nullptr, which indicates that the DST offset is defined by the RULES column in 'hh:mm' format. If the 'RULES' column is '-', then the originalDeltaCode is 0. With 4-bits of information, and the 1h shift, this allows us to represent DST offsets from -1:00 to +2:45, in 15-minute increments.
      • -
      -
    • -
    -

    The ZoneEraBroker::deltaMinutes() and ZoneEraBroker::offsetMinutes() methods know how to convert offsetCode and deltaCode into the appropriate minutes.

    - -

    Definition at line 284 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ format

    - -
    -
    - - - - -
    const char* const ace_time::ZoneInfoLow::ZoneEra::format
    -
    - -

    Zone abbreviations (e.g.

    -

    PST, EST) determined by the FORMAT column. It has 4 encodings in the TZ DB files:

    -

    1) A fixed string, e.g. "GMT". 2) Two strings separated by a '/', e.g. "-03/-02" indicating "{std}/{dst}" options. 3) A single string with a substitution, e.g. "E%sT", where the "%s" is replaced by the LETTER value from the ZoneRule. 4) An empty string representing the "%z" format.

    -

    BasicZoneProcessor supports only a single letter subsitution from LETTER, but ExtendedZoneProcessor supports substituting multi-character strings (e.g. "CAT", "DD", "+00").

    -

    The TZ DB files use 's' to indicate the substitution, but for simplicity, AceTime replaces the "%s" with just a '' character with no loss of functionality. This also makes the string-replacement code a little simpler. For example, 'EsT' is stored as 'ET', and the LETTER substitution is performed on the '' character.

    -

    This field will never be a 'nullptr' because the AceTimeTools compiler always generates a ZoneEra entry with a non-null format.

    - -

    Definition at line 262 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ offsetCode

    - -
    -
    - - - - -
    int8_t const ace_time::ZoneInfoLow::ZoneEra::offsetCode
    -
    - -

    UTC offset in 15 min increments.

    -

    Determined by the STDOFF column.

    - -

    Definition at line 265 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ untilDay

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneEra::untilDay
    -
    - -

    The day field in UNTIL (1-31).

    -

    Will never be 0. Also, there's no need for untilDayOfWeek, because the database generator will resolve the exact day of month based on the known year and month.

    - -

    Definition at line 299 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ untilMonth

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneEra::untilMonth
    -
    - -

    The month field in UNTIL (1-12).

    -

    Will never be 0.

    - -

    Definition at line 292 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ untilTimeCode

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneEra::untilTimeCode
    -
    - -

    The time field of UNTIL field in 15-minute increments.

    -

    A range of 00:00 to 25:00 corresponds to 0-100.

    - -

    Definition at line 305 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ untilTimeModifier

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneEra::untilTimeModifier
    -
    - -

    The untilTimeModifier is a packed field containing 2 pieces of info:

    -
      -
    • The upper 4 bits represent the UNTIL time suffix: 'w', 's' or 'u', represented by kSuffixW, kSuffixS and kSuffixU.
    • -
    • The lower 4 bits represent the remaining 0-14 minutes of the UNTIL field after truncation into untilTimeCode. In other words, the full UNTIL field in one-minute resolution is (15 * untilTimeCode + (untilTimeModifier & 0x0f)).
    • -
    - -

    Definition at line 317 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ untilYear

    - -
    -
    - - - - -
    int8_t const ace_time::ZoneInfoLow::ZoneEra::untilYear
    -
    - -

    Era is valid until currentTime < untilYear.

    -

    Comes from the UNTIL column.

    - -

    Definition at line 289 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ zonePolicy

    - -
    -
    - - - - -
    const ZonePolicy* const ace_time::ZoneInfoLow::ZoneEra::zonePolicy
    -
    - -

    Zone policy, determined by the RULES column.

    -

    Set to nullptr if the RULES column is '-' or an explicit DST shift in the form of 'hh:mm'.

    - -

    Definition at line 236 of file ZoneInfoLow.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra__coll__graph.map b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra__coll__graph.map deleted file mode 100644 index 10ff9937e..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra__coll__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra__coll__graph.md5 b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra__coll__graph.md5 deleted file mode 100644 index bd7b984fb..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7ba7c64b58ff9c5da3ab260ed12ebdc8 \ No newline at end of file diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra__coll__graph.png b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneEra__coll__graph.png deleted file mode 100644 index faf25318314377c84ca7c772f8c27857f1663369..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7707 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 - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoLow::ZoneInfo Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html deleted file mode 100644 index 81253163f..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZoneInfo Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoLow::ZoneInfo Struct Reference
    -
    -
    - -

    Representation of a given time zone, implemented as an array of ZoneEra records. - More...

    - -

    #include <ZoneInfoLow.h>

    -
    -Collaboration diagram for ace_time::ZoneInfoLow::ZoneInfo:
    -
    -
    Collaboration graph
    - - - - - - - -
    [legend]
    - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    const char *const name
     Full name of zone (e.g. More...
     
    uint32_t const zoneId
     Unique, stable ID of the zone name, created from a hash of the name. More...
     
    -const ZoneContext *const zoneContext
     ZoneContext metadata.
     
    uint8_t const numEras
     Number of ZoneEra entries. More...
     
    -const ZoneEra *const eras
     A const ZoneEras* pointer to numEras ZoneEra entries in increasing order of UNTIL time.
     
    const ZoneInfo *const targetInfo
     If Link, points to the target zone info. More...
     
    -

    Detailed Description

    -

    Representation of a given time zone, implemented as an array of ZoneEra records.

    - -

    Definition at line 324 of file ZoneInfoLow.h.

    -

    Member Data Documentation

    - -

    ◆ name

    - -
    -
    - - - - -
    const char* const ace_time::ZoneInfoLow::ZoneInfo::name
    -
    - -

    Full name of zone (e.g.

    -

    "America/Los_Angeles").

    - -

    Definition at line 326 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ numEras

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneInfo::numEras
    -
    - -

    Number of ZoneEra entries.

    -

    If this Zone is a actually a Link to a target Zone, the ZoneEra and numEras of the target Zone is placed here, and the targetInfo pointer below is set to the target ZoneInfo. This allows a Link entry to be self-contained, acting like any other Zone entry, which simplifies some of the code the ZoneProcessor because it does not need to traverse the link to find the required information. In essence, a Link is a "hard link" to a Zone.

    -

    An alternative implementation is to set numEras to 0 for a Link, and traverse the targetInfo to find the required numEras and eras. This led to more complicated code.

    - -

    Definition at line 353 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ targetInfo

    - -
    -
    - - - - -
    const ZoneInfo* const ace_time::ZoneInfoLow::ZoneInfo::targetInfo
    -
    - -

    If Link, points to the target zone info.

    -

    If Zone, nullptr.

    - -

    Definition at line 362 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ zoneId

    - -
    -
    - - - - -
    uint32_t const ace_time::ZoneInfoLow::ZoneInfo::zoneId
    -
    - -

    Unique, stable ID of the zone name, created from a hash of the name.

    -

    This ID will never change once assigned. This can be used for presistence and serialization.

    - -

    Definition at line 333 of file ZoneInfoLow.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo__coll__graph.map b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo__coll__graph.map deleted file mode 100644 index 6008eda93..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo__coll__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo__coll__graph.md5 b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo__coll__graph.md5 deleted file mode 100644 index c634f70aa..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -45b4e50653ee2b8db5772ade9013d0e3 \ No newline at end of file diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo__coll__graph.png b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneInfo__coll__graph.png deleted file mode 100644 index 31cca8557ff0d94eac1891f97b4d00a163eeaac7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18272 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%0A5@O#K z)qnQ-O9+nTaJm}>8WzRsaL34`gi}&c3G(x&+6r48l$%cSF+U>B4BfTO`O+2rYqh%H z%IQ86*?8~M8okL(svhTxyC0M9JW^2bpIR?H@~k0fPGI{*cQavJCLPV1 z0x{ANH%Kv=P`?DoO|%s2`D1Q5G=G3Pg6HtCU_o1~e5*FMn=03#Z7N^d+B!eAE2}v8 zZGiFF*tW0J;-N2=4)l+827hQ-s9I(d9`9AA^v*gYly8mt%tYS85}ftDI7F}^SyLN?y1dkCP$`hV712bYmO_arQK-ZJ_`OarrbB$`#huY-;8*6Ll;rNB KKgc|K@!tR#mqp6} diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy-members.html b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy-members.html deleted file mode 100644 index c548770eb..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy-members.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoLow::ZonePolicy Member List
    -
    -
    - -

    This is the complete list of members for ace_time::ZoneInfoLow::ZonePolicy, including all inherited members.

    - - - -
    numRules (defined in ace_time::ZoneInfoLow::ZonePolicy)ace_time::ZoneInfoLow::ZonePolicy
    rules (defined in ace_time::ZoneInfoLow::ZonePolicy)ace_time::ZoneInfoLow::ZonePolicy
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy.html b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy.html deleted file mode 100644 index fe5c34b3e..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZonePolicy Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoLow::ZonePolicy Struct Reference
    -
    -
    - -

    A collection of transition rules which describe the DST rules of a given administrative region. - More...

    - -

    #include <ZoneInfoLow.h>

    -
    -Collaboration diagram for ace_time::ZoneInfoLow::ZonePolicy:
    -
    -
    Collaboration graph
    - - - - -
    [legend]
    - - - - - - -

    -Public Attributes

    -const ZoneRule *const rules
     
    -uint8_t const numRules
     
    -

    Detailed Description

    -

    A collection of transition rules which describe the DST rules of a given administrative region.

    -

    A given time zone (ZoneInfo) can follow a different ZonePolicy at different times. Conversely, multiple time zones (ZoneInfo) can choose to follow the same ZonePolicy at different times.

    - -

    Definition at line 213 of file ZoneInfoLow.h.

    -

    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy__coll__graph.map b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy__coll__graph.map deleted file mode 100644 index 4d6e021f4..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy__coll__graph.md5 b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy__coll__graph.md5 deleted file mode 100644 index db11d83e9..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -ee8502b28fa977b5dec6a9daadb8005d \ No newline at end of file diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy__coll__graph.png b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZonePolicy__coll__graph.png deleted file mode 100644 index c59ba6ab4429658963319ef292e3742e2eb450f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5222 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 OAyt%?Qpp{Qfd2wKAL(-d diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneRule-members.html b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneRule-members.html deleted file mode 100644 index 416167d6b..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneRule-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoLow::ZoneRule Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneRule.html b/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneRule.html deleted file mode 100644 index 40e84e3d5..000000000 --- a/docs/html/structace__time_1_1ZoneInfoLow_1_1ZoneRule.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoLow::ZoneRule Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoLow::ZoneRule Struct Reference
    -
    -
    - -

    A time zone transition rule. - More...

    - -

    #include <ZoneInfoLow.h>

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -int8_t const fromYear
     FROM year.
     
    -int8_t const toYear
     TO year.
     
    uint8_t const inMonth
     Determined by the IN column. More...
     
    uint8_t const onDayOfWeek
     Determined by the ON column. More...
     
    int8_t const onDayOfMonth
     Determined by the ON column. More...
     
    uint8_t const atTimeCode
     Determined by the AT column in units of 15-minutes from 00:00. More...
     
    uint8_t const atTimeModifier
     The atTimeModifier is a packed field containing 2 pieces of info: More...
     
    uint8_t const deltaCode
     Determined by the SAVE column and contains the offset from UTC, in 15-min increments. More...
     
    uint8_t const letterIndex
     Determined by the LETTER column. More...
     
    -

    Detailed Description

    -

    A time zone transition rule.

    -

    It is useful to think of this as a transition rule that repeats on the given (month, day, hour) every year during the interval [fromYear, toYear] inclusive.

    - -

    Definition at line 135 of file ZoneInfoLow.h.

    -

    Member Data Documentation

    - -

    ◆ atTimeCode

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneRule::atTimeCode
    -
    - -

    Determined by the AT column in units of 15-minutes from 00:00.

    -

    The range is (0 - 100) corresponding to 00:00 to 25:00.

    - -

    Definition at line 167 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ atTimeModifier

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneRule::atTimeModifier
    -
    - -

    The atTimeModifier is a packed field containing 2 pieces of info:

    -
      -
    • The upper 4 bits represent the AT time suffix: 'w', 's' or 'u', represented by kSuffixW, kSuffixS and kSuffixU.
    • -
    • The lower 4 bits represent the remaining 0-14 minutes of the AT field after truncation into atTimeCode. In other words, the full AT field in one-minute resolution is (15 * atTimeCode + (atTimeModifier & 0x0f)).
    • -
    - -

    Definition at line 178 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ deltaCode

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneRule::deltaCode
    -
    - -

    Determined by the SAVE column and contains the offset from UTC, in 15-min increments.

    -

    The deltaCode is equal to (originalDeltaCode + 4). Only the lower 4-bits is used, for consistency with the ZoneEra::deltaCode field. This allows the 4-bits to represent DST offsets from -1:00 to 2:45 in 15-minute increments.

    -

    The ZonePolicyBroker::deltaMinutes() method knows how to convert this field into minutes.

    - -

    Definition at line 190 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ inMonth

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneRule::inMonth
    -
    - -

    Determined by the IN column.

    -

    1=Jan, 12=Dec.

    - -

    Definition at line 143 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ letterIndex

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneRule::letterIndex
    -
    - -

    Determined by the LETTER column.

    -

    Determines the substitution into the 's' field (implemented here by just a '') of the ZoneInfo::format field. This is an index offset into the global kLetters array. Most LETTER string is a single character, e.g. "D", "S", or "". But a small number have LETTER fields which are longer than one character. For example:

    -
      -
    • Belize ('CST'; used by America/Belize)
    • -
    • Namibia ('WAT', 'CAT'; used by Africa/Windhoek)
    • -
    • StJohns ('DD'; used by America/St_Johns and America/Goose_Bay)
    • -
    • Troll ('+00' '+02'; used by Antarctica/Troll)
    • -
    - -

    Definition at line 204 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ onDayOfMonth

    - -
    -
    - - - - -
    int8_t const ace_time::ZoneInfoLow::ZoneRule::onDayOfMonth
    -
    - -

    Determined by the ON column.

    -

    Used with onDayOfWeek. Possible values are: 0, 1-31, or its corresponding negative values.

    - -

    Definition at line 161 of file ZoneInfoLow.h.

    - -
    -
    - -

    ◆ onDayOfWeek

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoLow::ZoneRule::onDayOfWeek
    -
    - -

    Determined by the ON column.

    -

    Possible values are: 0, 1=Mon, 7=Sun. There are 4 combinations:

    * onDayOfWeek=0, onDayOfMonth=(1-31): exact match
    -* onDayOfWeek=1-7, onDayOfMonth=1-31: dayOfWeek>=dayOfMonth
    -* onDayOfWeek=1-7, onDayOfMonth=-(1-31): dayOfWeek<=dayOfMonth
    -* onDayOfWeek=1-7, onDayOfMonth=0: last{dayOfWeek}
    -* 
    -

    Definition at line 155 of file ZoneInfoLow.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneContext-members.html b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneContext-members.html deleted file mode 100644 index 11c9979f0..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneContext-members.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoMid::ZoneContext Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneContext.html b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneContext.html deleted file mode 100644 index ab4391d6e..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneContext.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZoneContext Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoMid::ZoneContext Struct Reference
    -
    -
    - -

    Metadata about the zone database. - More...

    - -

    #include <ZoneInfoMid.h>

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -int16_t const startYear
     Start year of the zone files as requested.
     
    -int16_t const untilYear
     Until year of the zone files as requested.
     
    int16_t const startYearAccurate
     Start year of accurate transitions. More...
     
    int16_t const untilYearAccurate
     Until year of accurate transitions. More...
     
    int16_t const baseYear
     Base year for tiny years. More...
     
    -int16_t const maxTransitions
     Max number of transitions required in TransitionStorage.
     
    -const char *const tzVersion
     TZ Database version which generated the zone info.
     
    -uint8_t const numFragments
     Number of fragments.
     
    -uint8_t const numLetters
     Number of fragments.
     
    -const char *const *const fragments
     Zone Name fragment list.
     
    -const char *const *const letters
     Zone Rule letters list.
     
    - - - - - - - - - - - - - - - - - - - -

    -Static Public Attributes

    static const int16_t kMaxUntilYear = 32767
     The maximum value of untilYear. More...
     
    static const int16_t kMaxYear = kMaxUntilYear - 1
     The maximum value fromYear and toYear. More...
     
    static const int16_t kMinYear = -32767
     The minimum value of fromYear and toYear. More...
     
    -static const uint8_t kSuffixW = 0x00
     Represents 'w' or wall time.
     
    -static const uint8_t kSuffixS = 0x10
     Represents 's' or standard time.
     
    -static const uint8_t kSuffixU = 0x20
     Represents 'u' or UTC time.
     
    -

    Detailed Description

    -

    Metadata about the zone database.

    -

    A ZoneInfo struct will contain a pointer to this.

    - -

    Definition at line 53 of file ZoneInfoMid.h.

    -

    Member Data Documentation

    - -

    ◆ baseYear

    - -
    -
    - - - - -
    int16_t const ace_time::ZoneInfoMid::ZoneContext::baseYear
    -
    - -

    Base year for tiny years.

    -

    Unused.

    - -

    Definition at line 102 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ kMaxUntilYear

    - -
    -
    - - - - - -
    - - - - -
    const int16_t ace_time::ZoneInfoMid::ZoneContext::kMaxUntilYear = 32767
    -
    -static
    -
    - -

    The maximum value of untilYear.

    -

    This value is used to represent the sentinel value "-" in the UNTIL column of the TZDB files which means "infinity". Must be greater than ZoneRule::kMaxYear which represents the value "max" in the TO and FROM columns of the TZDB files.

    - -

    Definition at line 60 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ kMaxYear

    - -
    -
    - - - - - -
    - - - - -
    const int16_t ace_time::ZoneInfoMid::ZoneContext::kMaxYear = kMaxUntilYear - 1
    -
    -static
    -
    - -

    The maximum value fromYear and toYear.

    -

    This value is used to represent the sentinel value "max" in the TZDB database files. Must be less than ZoneEra::kMaxUntilYear which is used to represent the entry "-" in the UNTIL column of the TZDB files.

    - -

    Definition at line 68 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ kMinYear

    - -
    -
    - - - - - -
    - - - - -
    const int16_t ace_time::ZoneInfoMid::ZoneContext::kMinYear = -32767
    -
    -static
    -
    - -

    The minimum value of fromYear and toYear.

    -

    This value is used for ZoneRule entries which are synthetically generated for certain time zones which do not naturally generate a transition for the database year interval specified by the ZoneContext. This value is guaranteed to be earlier than any explicit year in the TZDB database, which guarantees that all time zones have at least one transition.

    - -

    Definition at line 78 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ startYearAccurate

    - -
    -
    - - - - -
    int16_t const ace_time::ZoneInfoMid::ZoneContext::startYearAccurate
    -
    - -

    Start year of accurate transitions.

    -

    kMinYear indicates -Infinity.

    - -

    Definition at line 96 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ untilYearAccurate

    - -
    -
    - - - - -
    int16_t const ace_time::ZoneInfoMid::ZoneContext::untilYearAccurate
    -
    - -

    Until year of accurate transitions.

    -

    kMaxUntilYear indicates +Infinity.

    - -

    Definition at line 99 of file ZoneInfoMid.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra-members.html b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra-members.html deleted file mode 100644 index 9b1faa30b..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoMid::ZoneEra Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra.html b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra.html deleted file mode 100644 index 4a46a8f00..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZoneEra Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoMid::ZoneEra Struct Reference
    -
    -
    - -

    An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. - More...

    - -

    #include <ZoneInfoMid.h>

    -
    -Collaboration diagram for ace_time::ZoneInfoMid::ZoneEra:
    -
    -
    Collaboration graph
    - - - - - -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    const ZonePolicy *const zonePolicy
     Zone policy, determined by the RULES column. More...
     
    const char *const format
     Zone abbreviations (e.g. More...
     
    int8_t const offsetCode
     UTC offset in 15 min increments. More...
     
    uint8_t const deltaCode
     This is a composite of two 4-bit fields: More...
     
    int16_t const untilYear
     Era is valid until currentTime < untilYear. More...
     
    uint8_t const untilMonth
     The month field in UNTIL (1-12). More...
     
    uint8_t const untilDay
     The day field in UNTIL (1-31). More...
     
    uint8_t const untilTimeCode
     The time field of UNTIL field in 15-minute increments. More...
     
    uint8_t const untilTimeModifier
     The untilTimeModifier is a packed field containing 2 pieces of info: More...
     
    -

    Detailed Description

    -

    An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period.

    -

    Corresponds to one line of the ZONE record in the TZ Database file ending with an UNTIL field. The ZonePolicy is determined by the RULES column in the TZ Database file.

    -

    There are 2 types of ZoneEra: 1) zonePolicy == nullptr. Then deltaCode determines the additional offset from offsetCode. A value of '-' in the TZ Database file is stored as 0. 2) zonePolicy != nullptr. Then the deltaCode offset is given by the ZoneRule.deltaCode which matches the time instant of interest.

    - -

    Definition at line 223 of file ZoneInfoMid.h.

    -

    Member Data Documentation

    - -

    ◆ deltaCode

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneEra::deltaCode
    -
    - -

    This is a composite of two 4-bit fields:

    -
      -
    • The upper 4-bits is an unsigned integer from 0 to 14 that represents the one-minute remainder from the offsetCode. This allows us to capture STDOFF offsets in 1-minute resolution.
    • -
    • The lower 4-bits is an unsigned integer that holds (originalDeltaCode
        -
      • 4). The originalDeltaCode is defined if zonePolicy is nullptr, which indicates that the DST offset is defined by the RULES column in 'hh:mm' format. If the 'RULES' column is '-', then the originalDeltaCode is 0. With 4-bits of information, and the 1h shift, this allows us to represent DST offsets from -1:00 to +2:45, in 15-minute increments.
      • -
      -
    • -
    -

    The ZoneEraBroker::deltaMinutes() and ZoneEraBroker::offsetMinutes() methods know how to convert offsetCode and deltaCode into the appropriate minutes.

    - -

    Definition at line 276 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ format

    - -
    -
    - - - - -
    const char* const ace_time::ZoneInfoMid::ZoneEra::format
    -
    - -

    Zone abbreviations (e.g.

    -

    PST, EST) determined by the FORMAT column. It has 4 encodings in the TZ DB files:

    -

    1) A fixed string, e.g. "GMT". 2) Two strings separated by a '/', e.g. "-03/-02" indicating "{std}/{dst}" options. 3) A single string with a substitution, e.g. "E%sT", where the "%s" is replaced by the LETTER value from the ZoneRule. 4) An empty string representing the "%z" format.

    -

    BasicZoneProcessor supports only a single letter subsitution from LETTER, but ExtendedZoneProcessor supports substituting multi-character strings (e.g. "CAT", "DD", "+00").

    -

    The TZ DB files use 's' to indicate the substitution, but for simplicity, AceTime replaces the "%s" with just a '' character with no loss of functionality. This also makes the string-replacement code a little simpler. For example, 'EsT' is stored as 'ET', and the LETTER substitution is performed on the '' character.

    -

    This field will never be a 'nullptr' because the AceTimeTools compiler always generates a ZoneEra entry with a non-null format.

    - -

    Definition at line 254 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ offsetCode

    - -
    -
    - - - - -
    int8_t const ace_time::ZoneInfoMid::ZoneEra::offsetCode
    -
    - -

    UTC offset in 15 min increments.

    -

    Determined by the STDOFF column.

    - -

    Definition at line 257 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ untilDay

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneEra::untilDay
    -
    - -

    The day field in UNTIL (1-31).

    -

    Will never be 0. Also, there's no need for untilDayOfWeek, because the database generator will resolve the exact day of month based on the known year and month.

    - -

    Definition at line 291 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ untilMonth

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneEra::untilMonth
    -
    - -

    The month field in UNTIL (1-12).

    -

    Will never be 0.

    - -

    Definition at line 284 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ untilTimeCode

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneEra::untilTimeCode
    -
    - -

    The time field of UNTIL field in 15-minute increments.

    -

    A range of 00:00 to 25:00 corresponds to 0-100.

    - -

    Definition at line 297 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ untilTimeModifier

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneEra::untilTimeModifier
    -
    - -

    The untilTimeModifier is a packed field containing 2 pieces of info:

    -
      -
    • The upper 4 bits represent the UNTIL time suffix: 'w', 's' or 'u', represented by kSuffixW, kSuffixS and kSuffixU.
    • -
    • The lower 4 bits represent the remaining 0-14 minutes of the UNTIL field after truncation into untilTimeCode. In other words, the full UNTIL field in one-minute resolution is (15 * untilTimeCode + (untilTimeModifier & 0x0f)).
    • -
    - -

    Definition at line 309 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ untilYear

    - -
    -
    - - - - -
    int16_t const ace_time::ZoneInfoMid::ZoneEra::untilYear
    -
    - -

    Era is valid until currentTime < untilYear.

    -

    Comes from the UNTIL column.

    - -

    Definition at line 281 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ zonePolicy

    - -
    -
    - - - - -
    const ZonePolicy* const ace_time::ZoneInfoMid::ZoneEra::zonePolicy
    -
    - -

    Zone policy, determined by the RULES column.

    -

    Set to nullptr if the RULES column is '-' or an explicit DST shift in the form of 'hh:mm'.

    - -

    Definition at line 228 of file ZoneInfoMid.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra__coll__graph.map b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra__coll__graph.map deleted file mode 100644 index 93fb58da9..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra__coll__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra__coll__graph.md5 b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra__coll__graph.md5 deleted file mode 100644 index 130cd5523..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -46809b8f45f65307f62c35885694eed0 \ No newline at end of file diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra__coll__graph.png b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneEra__coll__graph.png deleted file mode 100644 index 9df95a51db7f5e411cefb77a628e6898788bb9a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8755 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 I(!~FN0nYylivR!s diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo-members.html b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo-members.html deleted file mode 100644 index 1fc72825f..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo-members.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoMid::ZoneInfo Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html deleted file mode 100644 index daa1fdaf8..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZoneInfo Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoMid::ZoneInfo Struct Reference
    -
    -
    - -

    Representation of a given time zone, implemented as an array of ZoneEra records. - More...

    - -

    #include <ZoneInfoMid.h>

    -
    -Collaboration diagram for ace_time::ZoneInfoMid::ZoneInfo:
    -
    -
    Collaboration graph
    - - - - - - - -
    [legend]
    - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    const char *const name
     Full name of zone (e.g. More...
     
    uint32_t const zoneId
     Unique, stable ID of the zone name, created from a hash of the name. More...
     
    -const ZoneContext *const zoneContext
     ZoneContext metadata.
     
    uint8_t const numEras
     Number of ZoneEra entries. More...
     
    -const ZoneEra *const eras
     A const ZoneEras* pointer to numEras ZoneEra entries in increasing order of UNTIL time.
     
    const ZoneInfo *const targetInfo
     If Link, points to the target zone info. More...
     
    -

    Detailed Description

    -

    Representation of a given time zone, implemented as an array of ZoneEra records.

    - -

    Definition at line 316 of file ZoneInfoMid.h.

    -

    Member Data Documentation

    - -

    ◆ name

    - -
    -
    - - - - -
    const char* const ace_time::ZoneInfoMid::ZoneInfo::name
    -
    - -

    Full name of zone (e.g.

    -

    "America/Los_Angeles").

    - -

    Definition at line 318 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ numEras

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneInfo::numEras
    -
    - -

    Number of ZoneEra entries.

    -

    If this Zone is a actually a Link to a target Zone, the ZoneEra and numEras of the target Zone is placed here, and the targetInfo pointer below is set to the target ZoneInfo. This allows a Link entry to be self-contained, acting like any other Zone entry, which simplifies some of the code the ZoneProcessor because it does not need to traverse the link to find the required information. In essence, a Link is a "hard link" to a Zone.

    -

    An alternative implementation is to set numEras to 0 for a Link, and traverse the targetInfo to find the required numEras and eras. This led to more complicated code.

    - -

    Definition at line 345 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ targetInfo

    - -
    -
    - - - - -
    const ZoneInfo* const ace_time::ZoneInfoMid::ZoneInfo::targetInfo
    -
    - -

    If Link, points to the target zone info.

    -

    If Zone, nullptr.

    - -

    Definition at line 354 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ zoneId

    - -
    -
    - - - - -
    uint32_t const ace_time::ZoneInfoMid::ZoneInfo::zoneId
    -
    - -

    Unique, stable ID of the zone name, created from a hash of the name.

    -

    This ID will never change once assigned. This can be used for presistence and serialization.

    - -

    Definition at line 325 of file ZoneInfoMid.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo__coll__graph.map b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo__coll__graph.map deleted file mode 100644 index 2a59e0d2f..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo__coll__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo__coll__graph.md5 b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo__coll__graph.md5 deleted file mode 100644 index 090e2d916..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -42a7d52a1d780b0e65131b8b618f5d86 \ No newline at end of file diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo__coll__graph.png b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneInfo__coll__graph.png deleted file mode 100644 index 4632a2557c6083caa797d033c1e9a995372de48d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18587 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 c`LzL&-PAWO(!m7+F#@4 - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoMid::ZonePolicy Member List
    -
    -
    - -

    This is the complete list of members for ace_time::ZoneInfoMid::ZonePolicy, including all inherited members.

    - - - -
    numRules (defined in ace_time::ZoneInfoMid::ZonePolicy)ace_time::ZoneInfoMid::ZonePolicy
    rules (defined in ace_time::ZoneInfoMid::ZonePolicy)ace_time::ZoneInfoMid::ZonePolicy
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy.html b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy.html deleted file mode 100644 index 1e8e545c5..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZonePolicy Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoMid::ZonePolicy Struct Reference
    -
    -
    - -

    A collection of transition rules which describe the DST rules of a given administrative region. - More...

    - -

    #include <ZoneInfoMid.h>

    -
    -Collaboration diagram for ace_time::ZoneInfoMid::ZonePolicy:
    -
    -
    Collaboration graph
    - - - - -
    [legend]
    - - - - - - -

    -Public Attributes

    -const ZoneRule *const rules
     
    -uint8_t const numRules
     
    -

    Detailed Description

    -

    A collection of transition rules which describe the DST rules of a given administrative region.

    -

    A given time zone (ZoneInfo) can follow a different ZonePolicy at different times. Conversely, multiple time zones (ZoneInfo) can choose to follow the same ZonePolicy at different times.

    - -

    Definition at line 206 of file ZoneInfoMid.h.

    -

    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy__coll__graph.map b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy__coll__graph.map deleted file mode 100644 index d77172e59..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy__coll__graph.md5 b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy__coll__graph.md5 deleted file mode 100644 index cf0a832c0..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4d381fbbbc5c990a25ea237e8f235967 \ No newline at end of file diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy__coll__graph.png b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZonePolicy__coll__graph.png deleted file mode 100644 index 589f925af72a0bacd0f1d0969e387972004debd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5845 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 - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::ZoneInfoMid::ZoneRule Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneRule.html b/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneRule.html deleted file mode 100644 index 2f1ca1e4a..000000000 --- a/docs/html/structace__time_1_1ZoneInfoMid_1_1ZoneRule.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - - - -AceTime: ace_time::ZoneInfoMid::ZoneRule Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::ZoneInfoMid::ZoneRule Struct Reference
    -
    -
    - -

    A time zone transition rule. - More...

    - -

    #include <ZoneInfoMid.h>

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -int16_t const fromYear
     FROM year.
     
    -int16_t const toYear
     TO year.
     
    uint8_t const inMonth
     Determined by the IN column. More...
     
    uint8_t const onDayOfWeek
     Determined by the ON column. More...
     
    int8_t const onDayOfMonth
     Determined by the ON column. More...
     
    uint8_t const atTimeCode
     Determined by the AT column in units of 15-minutes from 00:00. More...
     
    uint8_t const atTimeModifier
     The atTimeModifier is a packed field containing 2 pieces of info: More...
     
    uint8_t const deltaCode
     Determined by the SAVE column and contains the offset from UTC, in 15-min increments. More...
     
    uint8_t const letterIndex
     Determined by the LETTER column. More...
     
    -

    Detailed Description

    -

    A time zone transition rule.

    -

    It is useful to think of this as a transition rule that repeats on the given (month, day, hour) every year during the interval [fromYear, toYear] inclusive.

    - -

    Definition at line 128 of file ZoneInfoMid.h.

    -

    Member Data Documentation

    - -

    ◆ atTimeCode

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneRule::atTimeCode
    -
    - -

    Determined by the AT column in units of 15-minutes from 00:00.

    -

    The range is (0 - 100) corresponding to 00:00 to 25:00.

    - -

    Definition at line 160 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ atTimeModifier

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneRule::atTimeModifier
    -
    - -

    The atTimeModifier is a packed field containing 2 pieces of info:

    -
      -
    • The upper 4 bits represent the AT time suffix: 'w', 's' or 'u', represented by kSuffixW, kSuffixS and kSuffixU.
    • -
    • The lower 4 bits represent the remaining 0-14 minutes of the AT field after truncation into atTimeCode. In other words, the full AT field in one-minute resolution is (15 * atTimeCode + (atTimeModifier & 0x0f)).
    • -
    - -

    Definition at line 171 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ deltaCode

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneRule::deltaCode
    -
    - -

    Determined by the SAVE column and contains the offset from UTC, in 15-min increments.

    -

    The deltaCode is equal to (originalDeltaCode + 4). Only the lower 4-bits is used, for consistency with the ZoneEra::deltaCode field. This allows the 4-bits to represent DST offsets from -1:00 to 2:45 in 15-minute increments.

    -

    The ZonePolicyBroker::deltaMinutes() method knows how to convert this field into minutes.

    - -

    Definition at line 183 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ inMonth

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneRule::inMonth
    -
    - -

    Determined by the IN column.

    -

    1=Jan, 12=Dec.

    - -

    Definition at line 136 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ letterIndex

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneRule::letterIndex
    -
    - -

    Determined by the LETTER column.

    -

    Determines the substitution into the 's' field (implemented here by just a '') of the ZoneInfo::format field. This is an index offset into the global kLetters array. Most LETTER string is a single character, e.g. "D", "S", or "". But a small number have LETTER fields which are longer than one character. For example:

    -
      -
    • Belize ('CST'; used by America/Belize)
    • -
    • Namibia ('WAT', 'CAT'; used by Africa/Windhoek)
    • -
    • StJohns ('DD'; used by America/St_Johns and America/Goose_Bay)
    • -
    • Troll ('+00' '+02'; used by Antarctica/Troll)
    • -
    - -

    Definition at line 197 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ onDayOfMonth

    - -
    -
    - - - - -
    int8_t const ace_time::ZoneInfoMid::ZoneRule::onDayOfMonth
    -
    - -

    Determined by the ON column.

    -

    Used with onDayOfWeek. Possible values are: 0, 1-31, or its corresponding negative values.

    - -

    Definition at line 154 of file ZoneInfoMid.h.

    - -
    -
    - -

    ◆ onDayOfWeek

    - -
    -
    - - - - -
    uint8_t const ace_time::ZoneInfoMid::ZoneRule::onDayOfWeek
    -
    - -

    Determined by the ON column.

    -

    Possible values are: 0, 1=Mon, 7=Sun. There are 4 combinations:

    * onDayOfWeek=0, onDayOfMonth=(1-31): exact match
    -* onDayOfWeek=1-7, onDayOfMonth=1-31: dayOfWeek>=dayOfMonth
    -* onDayOfWeek=1-7, onDayOfMonth=-(1-31): dayOfWeek<=dayOfMonth
    -* onDayOfWeek=1-7, onDayOfMonth=0: last{dayOfWeek}
    -* 
    -

    Definition at line 148 of file ZoneInfoMid.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoMid.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1basic_1_1TransitionTemplate-members.html b/docs/html/structace__time_1_1basic_1_1TransitionTemplate-members.html deleted file mode 100644 index 5a78b5bd9..000000000 --- a/docs/html/structace__time_1_1basic_1_1TransitionTemplate-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::basic::TransitionTemplate< D > Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1basic_1_1TransitionTemplate.html b/docs/html/structace__time_1_1basic_1_1TransitionTemplate.html deleted file mode 100644 index eb8013a52..000000000 --- a/docs/html/structace__time_1_1basic_1_1TransitionTemplate.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - -AceTime: ace_time::basic::TransitionTemplate< D > Struct Template Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::basic::TransitionTemplate< D > Struct Template Reference
    -
    -
    - -

    Data structure that defines the start of a specific UTC offset as described by the matching ZoneEra and its ZoneRule for a given year. - More...

    - -

    #include <BasicZoneProcessor.h>

    - - - - - -

    -Public Member Functions

    -void log () const
     Used only for debugging.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    D::ZoneEraBroker era
     The ZoneEra that matched the given year. More...
     
    D::ZoneRuleBroker rule
     The Zone transition rule that matched for the the given year. More...
     
    -acetime_t startEpochSeconds
     The calculated transition time of the given rule.
     
    -int16_t offsetMinutes
     The standard time offset minutes at the start of transition, not including DST offset.
     
    -int16_t deltaMinutes
     The deltaMinutes from "standard time" at the start of transition.
     
    -int16_t year
     Year of the Transition.
     
    uint8_t month
     Month of the transition. More...
     
    char abbrev [kAbbrevSize]
     The calculated effective time zone abbreviation, e.g. More...
     
    -

    Detailed Description

    -

    template<typename D>
    -struct ace_time::basic::TransitionTemplate< D >

    - -

    Data structure that defines the start of a specific UTC offset as described by the matching ZoneEra and its ZoneRule for a given year.

    -

    If the ZoneEra does not have a ZoneRule, then the Transition is defined by the start date of the ZoneEra.

    -

    The 'era' and 'rule' variables' intermediate values calculated during the init() phase. They are used to calculate the 'year', 'startEpochSeconds', 'offsetSeconds', 'deltaSeconds', and 'abbrev' parameters which are used during findMatch() lookup. This separation helps in moving the ZoneInfo and ZonePolicy data structures into PROGMEM.

    -

    Ordering of fields optimized along 4-byte boundaries to help 32-bit processors without making the program size bigger for 8-bit processors.

    -
    Template Parameters
    - - -
    Zcontainer type of ZoneInfo database
    -
    -
    - -

    Definition at line 55 of file BasicZoneProcessor.h.

    -

    Member Data Documentation

    - -

    ◆ abbrev

    - -
    -
    -
    -template<typename D >
    - - - - -
    char ace_time::basic::TransitionTemplate< D >::abbrev[kAbbrevSize]
    -
    - -

    The calculated effective time zone abbreviation, e.g.

    -

    "PST" or "PDT". When the Transition is initially created using createTransition(), abbrev[0] is set to ZoneRule.letter (to avoid potentially another lookup in PROGMEM). That 'letter' is used later in the init() to generate the correct abbreviation which will replace the 'letter' in here.

    - -

    Definition at line 103 of file BasicZoneProcessor.h.

    - -
    -
    - -

    ◆ era

    - -
    -
    -
    -template<typename D >
    - - - - -
    D::ZoneEraBroker ace_time::basic::TransitionTemplate< D >::era
    -
    - -

    The ZoneEra that matched the given year.

    -

    NonNullable.

    -

    This field is used only during the init() phase, not during the findMatch() phase.

    - -

    Definition at line 61 of file BasicZoneProcessor.h.

    - -
    -
    - -

    ◆ month

    - -
    -
    -
    -template<typename D >
    - - - - -
    uint8_t ace_time::basic::TransitionTemplate< D >::month
    -
    - -

    Month of the transition.

    -

    Copied from ZoneRule.inMonth() if it exists or set to 1 if ZoneRule is null (indicating that the ZoneEra represents a fixed offset for the entire year).

    - -

    Definition at line 94 of file BasicZoneProcessor.h.

    - -
    -
    - -

    ◆ rule

    - -
    -
    -
    -template<typename D >
    - - - - -
    D::ZoneRuleBroker ace_time::basic::TransitionTemplate< D >::rule
    -
    - -

    The Zone transition rule that matched for the the given year.

    -

    Set to nullptr if the RULES column is '-' or 'hh:mm'. The fixed DST offset placed in deltaOffset. Two examples of such a timezone isEurope/Istanbul and America/Argentina/San_Luis.

    -

    This field is used only during the init() phase, not during the findMatch() phase.

    - -

    Definition at line 72 of file BasicZoneProcessor.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/docs/html/structace__time_1_1extended_1_1DateTuple-members.html b/docs/html/structace__time_1_1extended_1_1DateTuple-members.html deleted file mode 100644 index 81ba02a20..000000000 --- a/docs/html/structace__time_1_1extended_1_1DateTuple-members.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::extended::DateTuple Member List
    -
    -
    - -

    This is the complete list of members for ace_time::extended::DateTuple, including all inherited members.

    - - - - - - - - - -
    DateTuple()=default (defined in ace_time::extended::DateTuple)ace_time::extended::DateTuple
    DateTuple(int16_t y, uint8_t mon, uint8_t d, int32_t secs, uint8_t mod) (defined in ace_time::extended::DateTuple)ace_time::extended::DateTupleinline
    day (defined in ace_time::extended::DateTuple)ace_time::extended::DateTuple
    log() constace_time::extended::DateTupleinline
    month (defined in ace_time::extended::DateTuple)ace_time::extended::DateTuple
    seconds (defined in ace_time::extended::DateTuple)ace_time::extended::DateTuple
    suffix (defined in ace_time::extended::DateTuple)ace_time::extended::DateTuple
    year (defined in ace_time::extended::DateTuple)ace_time::extended::DateTuple
    - - - - diff --git a/docs/html/structace__time_1_1extended_1_1DateTuple.html b/docs/html/structace__time_1_1extended_1_1DateTuple.html deleted file mode 100644 index 8d4f01016..000000000 --- a/docs/html/structace__time_1_1extended_1_1DateTuple.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - -AceTime: ace_time::extended::DateTuple Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::extended::DateTuple Struct Reference
    -
    -
    - -

    A tuple that represents a date and time. - More...

    - -

    #include <DateTuple.h>

    - - - - - - - -

    -Public Member Functions

    DateTuple (int16_t y, uint8_t mon, uint8_t d, int32_t secs, uint8_t mod)
     
    -void log () const
     Used only for debugging.
     
    - - - - - - - - - - - -

    -Public Attributes

    -int16_t year
     
    -uint8_t month
     
    -uint8_t day
     
    -int32_t seconds
     
    -uint8_t suffix
     
    -

    Detailed Description

    -

    A tuple that represents a date and time.

    -

    Packed to 4-byte boundaries to save space on 32-bit processors.

    - -

    Definition at line 36 of file DateTuple.h.

    -

    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/DateTuple.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate-members.html b/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate-members.html deleted file mode 100644 index ca8267151..000000000 --- a/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate-members.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::extended::MatchingEraTemplate< D > Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate.html b/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate.html deleted file mode 100644 index 9c922e19e..000000000 --- a/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - -AceTime: ace_time::extended::MatchingEraTemplate< D > Struct Template Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::extended::MatchingEraTemplate< D > Struct Template Reference
    -
    -
    - -

    Data structure that captures the matching ZoneEra and its ZoneRule transitions for a given year. - More...

    - -

    #include <Transition.h>

    -
    -Collaboration diagram for ace_time::extended::MatchingEraTemplate< D >:
    -
    -
    Collaboration graph
    - - - - -
    [legend]
    - - - - -

    -Public Member Functions

    -void log () const
     
    - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -DateTuple startDateTime
     The effective start time of the matching ZoneEra, which uses the UTC offsets of the previous matching era.
     
    -DateTuple untilDateTime
     The effective until time of the matching ZoneEra.
     
    D::ZoneEraBroker era
     The ZoneEra that matched the given year. More...
     
    MatchingEraTemplateprevMatch
     The previous MatchingEra, needed to interpret startDateTime. More...
     
    -int32_t lastOffsetSeconds
     The STD offset of the last Transition in this MatchingEra.
     
    -int32_t lastDeltaSeconds
     The DST offset of the last Transition in this MatchingEra.
     
    -

    Detailed Description

    -

    template<typename D>
    -struct ace_time::extended::MatchingEraTemplate< D >

    - -

    Data structure that captures the matching ZoneEra and its ZoneRule transitions for a given year.

    -

    Can be cached based on the year.

    -
    Template Parameters
    - - -
    Dcontainer type of ZoneInfo database
    -
    -
    - -

    Definition at line 47 of file Transition.h.

    -

    Member Data Documentation

    - -

    ◆ era

    - -
    -
    -
    -template<typename D >
    - - - - -
    D::ZoneEraBroker ace_time::extended::MatchingEraTemplate< D >::era
    -
    - -

    The ZoneEra that matched the given year.

    -

    NonNullable.

    - -

    Definition at line 58 of file Transition.h.

    - -
    -
    - -

    ◆ prevMatch

    - -
    -
    -
    -template<typename D >
    - - - - -
    MatchingEraTemplate* ace_time::extended::MatchingEraTemplate< D >::prevMatch
    -
    - -

    The previous MatchingEra, needed to interpret startDateTime.

    -


    -

    - -

    Definition at line 61 of file Transition.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Transition.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate__coll__graph.map b/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate__coll__graph.map deleted file mode 100644 index ceb983024..000000000 --- a/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate__coll__graph.md5 b/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate__coll__graph.md5 deleted file mode 100644 index fb249e81d..000000000 --- a/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -dc3a40180d4b539a06a14184a51deaa3 \ No newline at end of file diff --git a/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate__coll__graph.png b/docs/html/structace__time_1_1extended_1_1MatchingEraTemplate__coll__graph.png deleted file mode 100644 index 52d1596a52c31ce6a1a01d39aadfb43fee1a2138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9721 zcmZvC1yodP*FT7&Cx%``_tczVicr*^ZB}qth&04aoyc4rlxLJ7kfQ(m8>-5fB+sPC8Z}f zsF~*v>l!q%O8R;lZ*xzF-FzE{+A3UMz+O6=e;iHQ_Sj>Q8F z4ZePUS6p`%-p0q1bqMX>8~4~JYl&d0YikRt54y`?HzgJj7+7e<5MVZ0>r-Gc&^|H0 zH8fsg=VhAU@}8yYK(zeiU~_tLFrQ9bTpYUrp)4mXEZiEy6{uV3Iyo`%*!McwpK_;M zN2Hb(DJ+1Omv>|2b;pm_^9u3n`N?OG%vr<`(GFX~`KI_Nl!}tl&u`Dm|5UheXct@e zwNr4I;L<53Pzwtuv_!H@FE6*$cwNT4f`>O->vQcMzrCNuz_-cORe2?)j|%MFro%;6 z2S-PFcGD872pTrFu8F*Ir*)Ix0k=~#GN$L}B@=}`q-12Kb{2c?i6G;0tIxFNLrPI> zBt2EeEfK$d{bDt4zSW)}Bx`Taxw*M%Ia+r6(W6IR)9keA3kxsrFzZOUy7DI_C4C^_ zkT_0MvbAO9=H}L^aQ*~GDr>cN5IaLXOiD|fnOm)_&uElAXJ zp1iahrYPKn6n5VDf_fMb6Bd>d&u!lOaQAe7oJU%&zUX|T4!>`2bvS!(Z*S=>*5zih zNH&kEjoNEVdB!aT+v_8xDHqJm%~7tKQ{uOkY{n|G;;TK+k++pN*x4CYs+0HXNrl}@ z_}vd|QzD7(==*Bg9R9Aa?=G}ZUs+jEy5+O6VXN}&8D`0=*{f=5Y6VuqMRMh^7g!TZ zO99Cbp^(DEZ||>-PB(`?q7Ce5YLY%4tFM0#SKpnf{2<=U#l?lzzv<6j7@gwWQeU?H zVz&tmHa^79ShmRb%M;bAyAIRyj+NGT}v^D$$0rpw>uB*lXcO4iIb3D+%_Fg!Zv zK-~>vTMY~hblGm>!NJ9y`SZij{p@hQVz*y==rFATF&Z^8GUB{3feGL1ru{A($xJfp z`RdiH(p8_#>-nQwEiEl6B_&a?C5Bd3@&*P}uKBgd-U^N& zztsBbYTFx3EL%rMT1LhXfMMNVo_JjyAR{4>78SivR8%ySpPa4~AH`tqxiRr1g88|O zr6pq!DHqlK`)?W>r6fKOCkbJFv(f1bGCST|otc^GEV9xDY{9|9``R1zR~yr#v;-2y ziVPdBzw`3SqM7vLpRtpEL?1~j^D(0skT#6ETIHKgX|m9^#u1m}%Ac6)0K!xzZbkdj zc1})_&uu6f-&h{{zmhH_{Rj1=k+i+lo}R0lPoPu;g@j0iTsa#;C~{Rr!s(fIHzuEY zH9Wj6o}??pmq+O>9C{+hC@6RjfoN)Pr=_ICBqAa@IXxW&kR;Sh3<|0=&>LGRnD8rB$ftAefkp{bFP99`COY zAQj~0#g%X6<>kGRq{$LKn7~5grk5Ai^K!@8g{~Cr<81SLqP^UqCkgMMob67J9701w z-)za+Au7j{fcOh8#yt07LE=g)W7(nS_|y`5vI4}~t#)6-*c+KkbdMzLj~+DIdGpm&yUAPsy!3o zaG^0VGQjlFvncH;8NVU1&_w^QI;A(omA@AkXLz2U0iAgPdz*#%v!#{DX=<5wC5s!G zm`p7#$-H>+BH95{E{^vT35Utc#O)gt6uHlQ%2JmiN^T|>eGFB*(+>QX^(=!OHZtb= ztpBG_HBo$eGaB#ja-k>Q1b3vZPYP^BPIsQk``#A|`p6_g=`9{QL+AZn>hHHh6Qi3e zpDXoHUeWJ2AH@l27%=kRsixAvrCf*lci{3k3S}s@~ z|D3*R<&ZvaN~GT-hE$_upz@?K`6-a;5^Xk~Tcr^DrrvqaOaGF!HiD#$B zDG#p(B)_n*2+YW!OOXtj1LdU1SnrEZVLp(xj>sKLDd!<1B#dU&7fqWYa7d&U(PsxC zmx+>bbmYdt!6_*znOI-%SQ{-*Y&^2Gv{XVMj!C&KiKiPv29V5*jP6v+w;jBwtNBg( zPzYyd=T4wtsO*}iFgi@)|5kq(|1BrCE?`hlP?)qvJ$d{X1JuOBfaK!D(44Pd7dw-% zWFr_UIXORn|ITWaIQz9j=>s1hpSQ0stnBVRGBPy10=r9i(xo}MdAPg#`T2d33?ctB zIJgO7ZxcA|hvgtU(Cy2S5;j6Qh18M~jp6h%Ha{(?+a`;;OHT{$7fYFHsi=f%RUw7aLSp^=#&=%QjZ@GYK{kT50wto9m9CX-fyQV6*a z>du`zq$?Rfede(EXe9nU-Y*xH2J=mWv=XbTyxzU*#l*tSjAVYUlAoX7Cvv)|Xb%7B zO{N;%#J|feM<#-Fk0#c2U8HdUlHfOd<>aIuLLu^PtlCqLjK@08+{Pxi>U3{-3DjNR z_IyV+`m|0ff0P%Ay$AnLY9md|hd*-Y2!wv+_=-F|($LnPo|t$8w1Y$<88!2MWuE2a z^#g*_Ozj0<&jB#WsqdlnS-m6dACU z^QjN}D9OpmLCJ=ToF8`BFZTx(kGTdu%TNd(rsd|20Ih9cYU-Q(5VkTbCI*!+x7`0V z``$AdnX4FWu{=Dk9yHIZ+(|Ih)zw%1ae<1U^cun+siW>ihJ}UgRl?%%?sBK1wObG9 zxP+Iu$tJ*LhS>PztvuuIb--wfxw@6kyM5|SZEcqxr*xf`f&`V8lDd*_+Cj_26f`wu z5W%9SJ16!wc|n-#o4v@azrTM?TN@q=3rkABdf7U+)zFu&myQ3T9d7>MrA$1wD?MQ| z>b@((#Uc2@2XBBk!8|-xR=xp>a|mnyZ@HxvYf0W=0X5g(-%m|To9BMGb#>rbSz`Cq zt5?AZP_eUzg0ffps^ydXP~vN@{Wx&6N#jS#4`c!nu)|@ou`T!_Cy$ks2o4XA5)CcQ z3n{VnT|-ZnKAs=tp4WDDeS(VWOqC{tHM9ql34G7b$GQ&(_4dAKX=Swum_9lh4-8Fs z^CnO}){PrCaLM=!YIi@c&HsSgnEdc6^x4k(cp`A1EmS+GMT`&VVoga&+1%SR`S}Ku zS3rR9&YgM?uV$TJ-ey&mUF~~M>}@8kkHt|~vrk<~+=B(gTfg~jtVFehA>MqcRDlR+h`D5=!TL~%$XleJPmgtMx{x~}l> z@a(OR=bpyJ#DKgvGB(BxY36PFZ#&2GqU5uxu_IX;e2pjcgi#6<>@^~0Y9XQc&Q7KJ z4+y_@Pj6^VKYbQY3<=j&_%+X=pINn|6?^BGSHmc?06;ll65?=P2ZY5LZR>M%nK%!3aZqo`7`}UnL{Al>L@{OdPADl zx4@lgxe0pWaq;nm>sD4)m<7hMa?;HjIIop*)3FHB^(`#2!y2te%Me+6;q=cCH$04U zs!q0KUH8|5z%D;h|7HZ16MNva#Jd+N=VgCRbkh{-!w`X&bDmL4Zt%wDrv7w&5ZpyO z@PFy@v1(a+x5KkgexHBboRbLEBm42PiwZIUI|m0ER@TnUZdDo*1~?7+;=)IUEz(m{ z!wLGR_V=!$#q-|`W160tkVw$?paJwrgj6s(!T9H`f9sNeg%2huhF$pZIVI39A`QMg zCGuDB@qh8#zrQB4bcmxYq|yN*-5-6K1Ol8m0&|Km%6Jm8!rKy>m zRdDZIWbX<3wzL(L<$aarNd$*2u0uj12AzC*yg#6zUG8XwCt*Z-R8O;%KJwwhnl4gm zFWh&ea_6G}(RO3m&PP`~F7FkWs`R?-o>u-t9R2IP2I0p%$Op??b&|P{@Jl^}Lvph5 z>03SQBZJcu-WgmHug-e-=C!GB4BpU%DC$G`MB#Xlez(LYqfHa^Cw{*DKrTcou8h&x z);62pAv`^7Q;o*$H*YY;T;|Du%o|%;9xyNjJdh0Dn5e5?cBwb;8see*j_xzPBu(G< ziULM~hM_aXFKRAeK-vU6XVMdFKp1;P& z6E9u6vjO+;jnf^j3+(y{R4Fe78JIF z;0+X}{daC5A+jKerw})`6v)cTVv(PAMMNYd1ZQMq(AU;=btxZ@4GqO$gc?@6#FITRktyPWN{(^K|PCiZY+|d+_~qsytqXmzm$vT z5ARBmygQmc)U*zo$Nglp0hE_7S}$2xw6wS1UVynJG3$Hrql^0TiGkzo~h zhY2FH+^VCimwlTlCi-5=d8R2i7_z5VqEL()-!Whlk*B-rkZBRKzIfw^T(m>*(9+S- zkqf&^si{S9zZFt&uHW$l&UiH(7|@sBHzCk;X`Lr#`!r*qG|KjJkOckf75tw+zT#Dd z>68?lGlP9;FP2rY-L`4HX2U-{Wub@FH6Y*DPJVcJ2(|$TH&d@#xcclUTY>8uL~am= zXhMIh=jzTvk_sj63)XpZWkn7mJk1hY%B-xcnfdwGYa@InZ873co;>kcwjL^=2br9l z*=Ro?Mnc#V!K6*hW&XKHz6lBlZ2Gx^gakH)`vxY5Y5Po%qDbGM2b0jZC8Q#gcG1k? zd?Gpp1qS>S5m7&Ww#V~Vf~8*}(b1bR->_EkV=&gFgIi3wlP@?&gPzyP(%Vf@(zR{> z#m-s#j_!i=WF6I>T*Xh33?1roU46XZ$JKw^C=kZ{J)UQWrnkgv+S|XWoH~HEm5=3) zX06Rb#h<{&)TBy>9UM%Dpo10w%h^74y*^D7&?X?L2_W?X4LaYEIIy;aM(X~r+Jqz| zO@LoDC`9(cc(usxvU)`{1%!`I;~tXL$kQlxV;KkEWCS`PJD&~_$@4gN6h2yb0Of|J z`I*K~?mJzQLr<}f>LFPaKG}E*f*5YpE$A1tB?%{eExsx~%j;m-csG`xfVG2c*yNm# zJo8~^>Zs@Sre2FLHBg~%J+}>PKNAJTEg4#=3*;&-kCbwFo-XS-q@V8QdZxXeZ|AzD zeAp~laAL>S0})KWs+?#q4u!|g4Fv^-+x@$bT3P1iS*$mEOwDf1W#ej%Cq#^*s@#^R zr|W*c#o`0>$WVw+1~fneAr!X7JU$Qzpbk1Igdp?rix>AfOj;+hbE~KX1Y*^7U3|DK z`qBBSFr*;D$15DjlTFE0erCNYxpK!<$Y1M0;lh^mKwu2e=NA+-`~^*y;s1SqHP7VB_HyH7xX=P2~{4)q(?C`NwcE81+I9U_9Wx)CQ9ZP zHzYX1bmsD`NBM=%4h+Fd;atCN0vv2)Wb|?#s%HLVmc^42PVni0(z@rlfRO9X z7pOhsssC$&ap}c>jU;ZoVKc0^-I|e}nw~CoKV%1E%YWCbtE-Dqr{v?#j=kv9rw~=) zrWLK)_qMN^lE)k4;^1@%z_b8aaej8J$VWw)kn_H6d3z~`n|9G+Yo=*vSuI08wjQ_- z{9^Im%`~XjNFZyHH;^+ru8*NPu+Vgqh(%W}j8>la^&Bq5!&AEhdZvIfIS`~F5Q8vo z0k^}FKUO@BybHz)$g8f*VHqtoe0<)AC~IkIqLH??wifnf8sD>1FaBhx&;m@X-DK@0 zcy(E6?o~ES3Uu8!#V5Li&HxH}-I8~IXvLyCQ9tkbIu0Q%D8ih|6j4>h#qyV8tIv)? z85I>3VQ&f(WvzpRga^}Eq;*PP`6$HmvssVuN`#QNK^TiBJWWkav~6nLYHx4HC1!o& zPe``~5(%6{MscSU#MIaBFixBtZVNhZU_36@{?-9p_B}5z8D%b{Z++<9tFE` zk&&jhE`zJ$3^jgb89VY90M%;S+T@Q*XGrG$$7YHl5b*;OHC~tt!^JEx-$7#};0oKT z87ZrG^j09bRz^z0AW>Pae6R#}-P_xn^?&E2+J0#)`w$*vWM=w7PTuTEf-M-%R1G0I zdLWRl5Rb|)v|a3`sSlwD0Rs)Wj>Nv{5{fSU+r@3?iZrI@Ww-S7#$|SQLE417nIKZS zY@u{z8V)#xRvEZxsy!j9j^VP9Xb2`F5q9S#vRYG?*9YeB%X;Itu6FoyK# z1jb6UYvH>PYmXROfv3JjMATDaX9#hSw49s~lxw=AH#n$ow zAU2h|Xc3kHLp2zNU_lBGbAq6getV%pCK1^4v&|6C1v!|^a11`bSJ?Jlzm6BCTkY9- z{`lmln-MG10M*8@>8B@|lJ96$K(*1>T|NQfz9yqp&OADqTqeCvGi z?^@Dq z2iHThgMps_{)2oSn6Ph*{vsB zADSE-9%60);B{s_ql0?%goztvzzV#! z6BvZFaxXwY^Ph&R)6^?*MQ$-PV5Fv|65P0vR6ONhCBr(4kZNjeHCpUWJ2~0z;N|0E zGioGI%hhdD*YgmE)_rtR1ykZTFvf+E(KTQ)Q%K4n4aps8=6z56Y&9(pVMX5HbhKj@ z8WsiybGCAStY<7wLkoe-ZC2ebg?XOa{+jXm*{KF}ce#^IN+PocdJhZDf6p|9l{&4H z!w_OBTwS;8xbpfv-j4?d&LFA3R^nGECJOUwQ*&i46dMHRN>9%-@oX-PUL2QxKfUzl zM@rFzlo?IOkg$o3O$RivMxK#>jWBo&8{5FOSeq&~&E_*x42(<3=w|``Ftf5M&9f7| zL1*v|OR8R0Wlrnukk~n-b6Jl>0rh+b9m3ucNgfsyBwwnXxN%F-8CV1Q^KdCU*ZKT( zf3Vz%1$wAw-}13iq?#rdZ-uL?Y;P01Z%!A0s2x)2`A%vw=>JG)?rl z1Hu!cDcs;v!FpApvA06}5f!Y6_Tmw%*Wk zrT$kX^3=6INAoFg7jUxxq*nI82+jWZoojnAlFY5OJ6Ut8Hayx{v>eR4fcGPX3#gpRh?tB$|boXOg3syVhQ6`Hf$MijDf z(!wI+1C6o?%h~J{V>tbbtcLTP)^#CbLqCU*Te(NtA#&~>PB<}r@Q9yNSx2W8@OrS= zhC(vEDRytMg(J+5xhr)t@yul*3vL5EHF9E;O>I-bfh2!Gl?3oWAF2b9?8X8_h zc|mZv*pq<|0+&`~F5^zNkzU(;yN_T%pz07Ft4>STuDF|y-e(zR#dp$NTg@hp{hde`VbOA z2W|_(hAjZUjk#DGHG$1OmZC|RCsQLso5w_GwrAHn@_roC8~C0#*F>wAMA;T=od%+^ z9h{s$=iGdKe&zvUIX>f|Lu7TJYwP#2mudRH`-NPfO%xGbAAGDSS@N4~c zhe!wfZmw)!mp*Y*R(+(9BU?B274!Pn96S7%AD%8_b6T0o5-MuvfJ^^xdK53Ox^=P6@aY#c=_mxz6m@UgdQfp5H6f}ytQu@&cV$XZQ-9Vm3tTeaBP3ip|W2^HOrML0FMw(gV j_jes3S)|=O$N0ExV0%sUdOSSKg&{4jAofl4#k>Cp!Oeg) diff --git a/docs/html/structace__time_1_1extended_1_1TransitionForDateTimeTemplate-members.html b/docs/html/structace__time_1_1extended_1_1TransitionForDateTimeTemplate-members.html deleted file mode 100644 index ec3e76f62..000000000 --- a/docs/html/structace__time_1_1extended_1_1TransitionForDateTimeTemplate-members.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::extended::TransitionForDateTimeTemplate< D > Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html b/docs/html/structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html deleted file mode 100644 index 6bb326ca4..000000000 --- a/docs/html/structace__time_1_1extended_1_1TransitionForDateTimeTemplate.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -AceTime: ace_time::extended::TransitionForDateTimeTemplate< D > Struct Template Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::extended::TransitionForDateTimeTemplate< D > Struct Template Reference
    -
    -
    - -

    The result of the findTransitionForDateTime(const LocalDatetime& ldt) method which can return 0, 1, or 2 matching Transitions depending on whether the DateTime is an exact match, in the gap, or in the overlap. - More...

    - -

    #include <Transition.h>

    - - - - - - - - - - - -

    -Public Attributes

    -const TransitionTemplate< D > * prev
     The previous transition.
     
    -const TransitionTemplate< D > * curr
     The matching transition, or null if not found or in gap.
     
    -uint8_t num
     Number of matches: 0, 1, 2.
     
    -

    Detailed Description

    -

    template<typename D>
    -struct ace_time::extended::TransitionForDateTimeTemplate< D >

    - -

    The result of the findTransitionForDateTime(const LocalDatetime& ldt) method which can return 0, 1, or 2 matching Transitions depending on whether the DateTime is an exact match, in the gap, or in the overlap.

    -

    There are 5 possibilities:

    -
      -
    • num=0, prev==NULL, curr=curr: datetime is far past (should not happen)
    • -
    • num=1, prev==prev, curr=prev: exact match to datetime
    • -
    • num=2, prev==prev, curr=curr: datetime in overlap
    • -
    • num=0, prev==prev, curr=curr: datetime in gap
    • -
    • num=0, prev==prev, curr=NULL: datetime is far future (should not happen)
    • -
    - -

    Definition at line 309 of file Transition.h.

    -

    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Transition.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1extended_1_1TransitionForSecondsTemplate-members.html b/docs/html/structace__time_1_1extended_1_1TransitionForSecondsTemplate-members.html deleted file mode 100644 index e48fd48c0..000000000 --- a/docs/html/structace__time_1_1extended_1_1TransitionForSecondsTemplate-members.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::extended::TransitionForSecondsTemplate< D > Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1extended_1_1TransitionForSecondsTemplate.html b/docs/html/structace__time_1_1extended_1_1TransitionForSecondsTemplate.html deleted file mode 100644 index b210fbdac..000000000 --- a/docs/html/structace__time_1_1extended_1_1TransitionForSecondsTemplate.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -AceTime: ace_time::extended::TransitionForSecondsTemplate< D > Struct Template Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::extended::TransitionForSecondsTemplate< D > Struct Template Reference
    -
    -
    - -

    Tuple of a matching Transition and its 'fold'. - More...

    - -

    #include <Transition.h>

    - - - - - - - - - - - -

    -Public Attributes

    -const TransitionTemplate< D > * curr
     The matching transition, or null if not found.
     
    -uint8_t fold
     1 if corresponding datetime occurred the second time
     
    uint8_t num
     Number of occurrences of the resulting LocalDateTime: 0, 1, or 2. More...
     
    -

    Detailed Description

    -

    template<typename D>
    -struct ace_time::extended::TransitionForSecondsTemplate< D >

    - -

    Tuple of a matching Transition and its 'fold'.

    -

    Used by findTransitionForSeconds() which is guaranteed to return only a single Transition if found. Usually fold=0. But if the epochSeconds maps to a LocalDateTime which occurs a second time during a "fall back", then fold is set to 1.

    - -

    Definition at line 279 of file Transition.h.

    -

    Member Data Documentation

    - -

    ◆ num

    - -
    -
    -
    -template<typename D >
    - - - - -
    uint8_t ace_time::extended::TransitionForSecondsTemplate< D >::num
    -
    - -

    Number of occurrences of the resulting LocalDateTime: 0, 1, or 2.

    -

    This is needed because a fold=0 can mean that the LocalDateTime occurs exactly once, or that the first of two occurrences of LocalDateTime was selected by the epochSeconds.

    - -

    Definition at line 292 of file Transition.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Transition.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1extended_1_1TransitionTemplate-members.html b/docs/html/structace__time_1_1extended_1_1TransitionTemplate-members.html deleted file mode 100644 index e22fc13a9..000000000 --- a/docs/html/structace__time_1_1extended_1_1TransitionTemplate-members.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::extended::TransitionTemplate< D > Member List
    -
    - - - - - diff --git a/docs/html/structace__time_1_1extended_1_1TransitionTemplate.html b/docs/html/structace__time_1_1extended_1_1TransitionTemplate.html deleted file mode 100644 index e4a313fc8..000000000 --- a/docs/html/structace__time_1_1extended_1_1TransitionTemplate.html +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - - -AceTime: ace_time::extended::TransitionTemplate< D > Struct Template Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::extended::TransitionTemplate< D > Struct Template Reference
    -
    -
    - -

    Represents an interval of time where the time zone obeyed a certain UTC offset and DST delta. - More...

    - -

    #include <Transition.h>

    -
    -Collaboration diagram for ace_time::extended::TransitionTemplate< D >:
    -
    -
    Collaboration graph
    - - - - -
    [legend]
    - - - - - - - -

    -Public Member Functions

    -const char * format () const
     
    -void log () const
     Used only for debugging.
     
    - - - - - - - -

    -Static Public Member Functions

    -static void logHourMinuteSecond (int32_t seconds)
     Print seconds as [+/-]hh:mm[:ss].
     
    -static void printTransitions (const char *prefix, const TransitionTemplate *const *begin, const TransitionTemplate *const *end)
     Print an iterable of Transitions from 'begin' to 'end'.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -const MatchingEraTemplate< D > * match
     The match which generated this Transition.
     
    DateTuple transitionTime
     The original transition time, usually 'w' but sometimes 's' or 'u'. More...
     
    -union {
       DateTuple   transitionTimeS
     Version of transitionTime in 's' mode, using the UTC offset of the previous Transition. More...
     
       DateTuple   startDateTime
     Start time expressed using the UTC offset of the current Transition. More...
     
    }; 
     
    -union {
       DateTuple   transitionTimeU
     Version of transitionTime in 'u' mode, using the UTC offset of the previous transition. More...
     
       DateTuple   untilDateTime
     Until time expressed using the UTC offset of the current Transition. More...
     
    }; 
     
    -acetime_t startEpochSeconds
     The calculated transition time of the given rule.
     
    -int32_t offsetSeconds
     The standard time offset seconds, not the total offset.
     
    -int32_t deltaSeconds
     The DST delta seconds.
     
    char abbrev [kAbbrevSize]
     The calculated effective time zone abbreviation, e.g. More...
     
    -union {
       bool   isValidPrior
     During findCandidateTransitions(), this flag indicates whether the current transition is a valid "prior" transition that occurs before other transitions. More...
     
    -   CompareStatus   compareStatus
     During processTransitionCompareStatus(), this flag indicates how the transition falls within the time interval of the MatchingEra.
     
    }; 
     
    -

    Detailed Description

    -

    template<typename D>
    -struct ace_time::extended::TransitionTemplate< D >

    - -

    Represents an interval of time where the time zone obeyed a certain UTC offset and DST delta.

    -

    The start of the interval is given by 'transitionTime' which comes from the TZ Database file. The actual start and until time of the interval (in the local time zone) is given by 'startDateTime' and 'untilDateTime'.

    -

    There are 2 types of Transition instances: 1) Simple, indicated by 'rule' == nullptr. The base UTC offsetSeconds is given by match->offsetSeconds. The additional DST delta is given by match->deltaSeconds. 2) Named, indicated by 'rule' != nullptr. The base UTC offsetSeconds is given by match->offsetSeconds. The additional DST delta is given by rule->deltaSeconds.

    -

    Some of the instance variables (e.g. 'isValidPrior', 'compareStatus', 'transitionTime', 'transitionTimeS', 'transitionTimeU', 'letter()' and 'format()') are transient parameters which are in the implementation of the TransitionStorage::init() method.

    -

    Other variables (e.g. 'startDateTime', 'startEpochSeconds', 'offsetSeconds', 'deltaSeconds', 'abbrev', 'letterBuf') are essential parameters which are required to find a matching Transition and construct the corresponding ZonedDateTime.

    -

    Ordering of fields are optimized along 4-byte boundaries to help 32-bit processors without making the program size bigger for 8-bit processors.

    -
    Template Parameters
    - - -
    Dcontainer type of ZoneInfo database
    -
    -
    - -

    Definition at line 112 of file Transition.h.

    -

    Member Data Documentation

    - -

    ◆ abbrev

    - -
    -
    -
    -template<typename D >
    - - - - -
    char ace_time::extended::TransitionTemplate< D >::abbrev[kAbbrevSize]
    -
    - -

    The calculated effective time zone abbreviation, e.g.

    -

    "PST" or "PDT". Initially this string buffer temporarily holds the ZoneRule.letter() string, until createAbbreviation() consumes the letter and creates the actual abbreviation.

    - -

    Definition at line 188 of file Transition.h.

    - -
    -
    - -

    ◆ isValidPrior

    - -
    -
    -
    -template<typename D >
    - - - - -
    bool ace_time::extended::TransitionTemplate< D >::isValidPrior
    -
    - -

    During findCandidateTransitions(), this flag indicates whether the current transition is a valid "prior" transition that occurs before other transitions.

    -

    It is set by setFreeAgentAsPriorIfValid() if the transition is a prior transition.

    - -

    Definition at line 197 of file Transition.h.

    - -
    -
    - -

    ◆ startDateTime

    - -
    -
    -
    -template<typename D >
    - - - - -
    DateTuple ace_time::extended::TransitionTemplate< D >::startDateTime
    -
    - -

    Start time expressed using the UTC offset of the current Transition.

    -

    Valid after ExtendedZoneProcessor::generateStartUntilTimes() is called.

    - -

    Definition at line 147 of file Transition.h.

    - -
    -
    - -

    ◆ transitionTime

    - -
    -
    -
    -template<typename D >
    - - - - -
    DateTuple ace_time::extended::TransitionTemplate< D >::transitionTime
    -
    - -

    The original transition time, usually 'w' but sometimes 's' or 'u'.

    -

    After expandDateTuple() is called, this field will definitely be a 'w'. We must remember that the transitionTime* fields are expressed using the UTC offset of the previous Transition.

    - -

    Definition at line 133 of file Transition.h.

    - -
    -
    - -

    ◆ transitionTimeS

    - -
    -
    -
    -template<typename D >
    - - - - -
    DateTuple ace_time::extended::TransitionTemplate< D >::transitionTimeS
    -
    - -

    Version of transitionTime in 's' mode, using the UTC offset of the previous Transition.

    -

    Valid before ExtendedZoneProcessor::generateStartUntilTimes() is called.

    - -

    Definition at line 141 of file Transition.h.

    - -
    -
    - -

    ◆ transitionTimeU

    - -
    -
    -
    -template<typename D >
    - - - - -
    DateTuple ace_time::extended::TransitionTemplate< D >::transitionTimeU
    -
    - -

    Version of transitionTime in 'u' mode, using the UTC offset of the previous transition.

    -

    Valid before ExtendedZoneProcessor::generateStartUntilTimes() is called.

    - -

    Definition at line 156 of file Transition.h.

    - -
    -
    - -

    ◆ untilDateTime

    - -
    -
    -
    -template<typename D >
    - - - - -
    DateTuple ace_time::extended::TransitionTemplate< D >::untilDateTime
    -
    - -

    Until time expressed using the UTC offset of the current Transition.

    -

    Valid after ExtendedZoneProcessor::generateStartUntilTimes() is called.

    - -

    Definition at line 162 of file Transition.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/Transition.h
    • -
    -
    - - - - diff --git a/docs/html/structace__time_1_1extended_1_1TransitionTemplate__coll__graph.map b/docs/html/structace__time_1_1extended_1_1TransitionTemplate__coll__graph.map deleted file mode 100644 index c4f364717..000000000 --- a/docs/html/structace__time_1_1extended_1_1TransitionTemplate__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/structace__time_1_1extended_1_1TransitionTemplate__coll__graph.md5 b/docs/html/structace__time_1_1extended_1_1TransitionTemplate__coll__graph.md5 deleted file mode 100644 index 4528a5bdf..000000000 --- a/docs/html/structace__time_1_1extended_1_1TransitionTemplate__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f990ef5322029701d7afd391c7f90749 \ No newline at end of file diff --git a/docs/html/structace__time_1_1extended_1_1TransitionTemplate__coll__graph.png b/docs/html/structace__time_1_1extended_1_1TransitionTemplate__coll__graph.png deleted file mode 100644 index db135b002341bed3eb881560e370dbabed30f8f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9043 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 diff --git a/docs/html/structace__time_1_1extended_1_1YearMonthTuple-members.html b/docs/html/structace__time_1_1extended_1_1YearMonthTuple-members.html deleted file mode 100644 index c042407ec..000000000 --- a/docs/html/structace__time_1_1extended_1_1YearMonthTuple-members.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -AceTime: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    ace_time::extended::YearMonthTuple Member List
    -
    -
    - -

    This is the complete list of members for ace_time::extended::YearMonthTuple, including all inherited members.

    - - - -
    month (defined in ace_time::extended::YearMonthTuple)ace_time::extended::YearMonthTuple
    year (defined in ace_time::extended::YearMonthTuple)ace_time::extended::YearMonthTuple
    - - - - diff --git a/docs/html/structace__time_1_1extended_1_1YearMonthTuple.html b/docs/html/structace__time_1_1extended_1_1YearMonthTuple.html deleted file mode 100644 index f6b61e399..000000000 --- a/docs/html/structace__time_1_1extended_1_1YearMonthTuple.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -AceTime: ace_time::extended::YearMonthTuple Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    ace_time::extended::YearMonthTuple Struct Reference
    -
    -
    - -

    A simple tuple to represent a year/month pair. - More...

    - -

    #include <ExtendedZoneProcessor.h>

    - - - - - - -

    -Public Attributes

    -int16_t year
     
    -uint8_t month
     
    -

    Detailed Description

    -

    A simple tuple to represent a year/month pair.

    - -

    Definition at line 48 of file ExtendedZoneProcessor.h.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/docs/html/sync_off.png b/docs/html/sync_off.png deleted file mode 100644 index 3b443fc62892114406e3d399421b2a881b897acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* diff --git a/docs/html/sync_on.png b/docs/html/sync_on.png deleted file mode 100644 index e08320fb64e6fa33b573005ed6d8fe294e19db76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png deleted file mode 100644 index 3b725c41c5a527a3a3e40097077d0e206a681247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 diff --git a/docs/html/tab_b.png b/docs/html/tab_b.png deleted file mode 100644 index e2b4a8638cb3496a016eaed9e16ffc12846dea18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ diff --git a/docs/html/tabs.css b/docs/html/tabs.css deleted file mode 100644 index 7d45d36c1..000000000 --- a/docs/html/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/docs/html/testingzonedb_2zone__infos_8cpp_source.html b/docs/html/testingzonedb_2zone__infos_8cpp_source.html deleted file mode 100644 index 7073e56de..000000000 --- a/docs/html/testingzonedb_2zone__infos_8cpp_source.html +++ /dev/null @@ -1,635 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/zone_infos.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace testingzonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 12 (11 zones, 1 links)
    -
    32 // Unsupported Zones: 585 (329 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2007]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2009]
    -
    42 // Max Buffer Size: 6
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 12
    -
    46 // Eras: 15
    -
    47 // Policies: 8
    -
    48 // Rules: 32
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 288
    -
    53 // Policies: 24
    -
    54 // Eras: 165
    -
    55 // Zones: 143
    -
    56 // Links: 13
    -
    57 // Registry: 24
    -
    58 // Formats: 27
    -
    59 // Letters: 11
    -
    60 // Fragments: 0
    -
    61 // Names: 202 (original: 202)
    -
    62 // TOTAL: 913
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 384
    -
    67 // Policies: 64
    -
    68 // Eras: 240
    -
    69 // Zones: 264
    -
    70 // Links: 24
    -
    71 // Registry: 48
    -
    72 // Formats: 27
    -
    73 // Letters: 17
    -
    74 // Fragments: 0
    -
    75 // Names: 202 (original: 202)
    -
    76 // TOTAL: 1294
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #include <zoneinfo/compat.h>
    -
    81 #include "zone_policies.h"
    -
    82 #include "zone_infos.h"
    -
    83 
    -
    84 namespace ace_time {
    -
    85 namespace testingzonedb {
    -
    86 
    -
    87 //---------------------------------------------------------------------------
    -
    88 // ZoneContext
    -
    89 //---------------------------------------------------------------------------
    -
    90 
    -
    91 static const char kVersionString[] ACE_TIME_PROGMEM = "2025b";
    -
    92 const __FlashStringHelper* const kTzDatabaseVersion =
    -
    93  (const __FlashStringHelper*) kVersionString;
    -
    94 
    -
    95 
    -
    96 const char* const kFragments[] ACE_TIME_PROGMEM = {
    -
    97  nullptr, // '\x00' cannot exist
    -
    98 
    -
    99 };
    -
    100 
    -
    101 static const char kLetter0[] ACE_TIME_PROGMEM = "";
    -
    102 static const char kLetter1[] ACE_TIME_PROGMEM = "D";
    -
    103 static const char kLetter2[] ACE_TIME_PROGMEM = "S";
    -
    104 
    -
    105 const char* const kLetters[] ACE_TIME_PROGMEM = {
    -
    106  kLetter0, // ""
    -
    107  kLetter1, // "D"
    -
    108  kLetter2, // "S"
    -
    109 
    -
    110 };
    -
    111 
    -
    112 const basic::Info::ZoneContext kZoneContext ACE_TIME_PROGMEM = {
    -
    113  1980 /*startYear*/,
    -
    114  2200 /*untilYear*/,
    -
    115  1980 /*startYearAccurate*/,
    -
    116  32767 /*untilYearAccurate*/,
    -
    117  2100 /*baseYear*/,
    -
    118  6 /*maxTransitions*/,
    -
    119  kVersionString /*tzVersion*/,
    -
    120  1 /*numFragments*/,
    -
    121  3 /*numLetters*/,
    -
    122  kFragments /*fragments*/,
    -
    123  kLetters /*letters*/,
    -
    124 };
    -
    125 
    -
    126 //---------------------------------------------------------------------------
    -
    127 // Zones: 11
    -
    128 // Eras: 15
    -
    129 //---------------------------------------------------------------------------
    -
    130 
    -
    131 //---------------------------------------------------------------------------
    -
    132 // Zone name: Africa/Johannesburg
    -
    133 // Eras: 1
    -
    134 //---------------------------------------------------------------------------
    -
    135 
    -
    136 static const basic::Info::ZoneEra kZoneEraAfrica_Johannesburg[] ACE_TIME_PROGMEM = {
    -
    137  // 2:00 SA SAST
    -
    138  {
    -
    139  &kZonePolicySA /*zonePolicy*/,
    -
    140  "SAST" /*format*/,
    -
    141  8 /*offsetCode*/,
    -
    142  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    143  127 /*untilYearTiny*/,
    -
    144  1 /*untilMonth*/,
    -
    145  1 /*untilDay*/,
    -
    146  0 /*untilTimeCode*/,
    -
    147  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    148  },
    -
    149 
    -
    150 };
    -
    151 
    -
    152 static const char kZoneNameAfrica_Johannesburg[] ACE_TIME_PROGMEM = "Africa/Johannesburg";
    -
    153 
    -
    154 const basic::Info::ZoneInfo kZoneAfrica_Johannesburg ACE_TIME_PROGMEM = {
    -
    155  kZoneNameAfrica_Johannesburg /*name*/,
    -
    156  0xd5d157a0 /*zoneId*/,
    -
    157  &kZoneContext /*zoneContext*/,
    -
    158  1 /*numEras*/,
    -
    159  kZoneEraAfrica_Johannesburg /*eras*/,
    -
    160  nullptr /*targetInfo*/,
    -
    161 };
    -
    162 
    -
    163 //---------------------------------------------------------------------------
    -
    164 // Zone name: America/Chicago
    -
    165 // Eras: 1
    -
    166 //---------------------------------------------------------------------------
    -
    167 
    -
    168 static const basic::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = {
    -
    169  // -6:00 US C%sT
    -
    170  {
    -
    171  &kZonePolicyUS /*zonePolicy*/,
    -
    172  "C%T" /*format*/,
    -
    173  -24 /*offsetCode*/,
    -
    174  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    175  127 /*untilYearTiny*/,
    -
    176  1 /*untilMonth*/,
    -
    177  1 /*untilDay*/,
    -
    178  0 /*untilTimeCode*/,
    -
    179  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    180  },
    -
    181 
    -
    182 };
    -
    183 
    -
    184 static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "America/Chicago";
    -
    185 
    -
    186 const basic::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = {
    -
    187  kZoneNameAmerica_Chicago /*name*/,
    -
    188  0x4b92b5d4 /*zoneId*/,
    -
    189  &kZoneContext /*zoneContext*/,
    -
    190  1 /*numEras*/,
    -
    191  kZoneEraAmerica_Chicago /*eras*/,
    -
    192  nullptr /*targetInfo*/,
    -
    193 };
    -
    194 
    -
    195 //---------------------------------------------------------------------------
    -
    196 // Zone name: America/Denver
    -
    197 // Eras: 1
    -
    198 //---------------------------------------------------------------------------
    -
    199 
    -
    200 static const basic::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = {
    -
    201  // -7:00 US M%sT
    -
    202  {
    -
    203  &kZonePolicyUS /*zonePolicy*/,
    -
    204  "M%T" /*format*/,
    -
    205  -28 /*offsetCode*/,
    -
    206  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    207  127 /*untilYearTiny*/,
    -
    208  1 /*untilMonth*/,
    -
    209  1 /*untilDay*/,
    -
    210  0 /*untilTimeCode*/,
    -
    211  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    212  },
    -
    213 
    -
    214 };
    -
    215 
    -
    216 static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "America/Denver";
    -
    217 
    -
    218 const basic::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = {
    -
    219  kZoneNameAmerica_Denver /*name*/,
    -
    220  0x97d10b2a /*zoneId*/,
    -
    221  &kZoneContext /*zoneContext*/,
    -
    222  1 /*numEras*/,
    -
    223  kZoneEraAmerica_Denver /*eras*/,
    -
    224  nullptr /*targetInfo*/,
    -
    225 };
    -
    226 
    -
    227 //---------------------------------------------------------------------------
    -
    228 // Zone name: America/Edmonton
    -
    229 // Eras: 2
    -
    230 //---------------------------------------------------------------------------
    -
    231 
    -
    232 static const basic::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = {
    -
    233  // -7:00 Edm M%sT 1987
    -
    234  {
    -
    235  &kZonePolicyEdm /*zonePolicy*/,
    -
    236  "M%T" /*format*/,
    -
    237  -28 /*offsetCode*/,
    -
    238  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    239  -113 /*untilYearTiny*/,
    -
    240  1 /*untilMonth*/,
    -
    241  1 /*untilDay*/,
    -
    242  0 /*untilTimeCode*/,
    -
    243  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    244  },
    -
    245  // -7:00 Canada M%sT
    -
    246  {
    -
    247  &kZonePolicyCanada /*zonePolicy*/,
    -
    248  "M%T" /*format*/,
    -
    249  -28 /*offsetCode*/,
    -
    250  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    251  127 /*untilYearTiny*/,
    -
    252  1 /*untilMonth*/,
    -
    253  1 /*untilDay*/,
    -
    254  0 /*untilTimeCode*/,
    -
    255  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    256  },
    -
    257 
    -
    258 };
    -
    259 
    -
    260 static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "America/Edmonton";
    -
    261 
    -
    262 const basic::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = {
    -
    263  kZoneNameAmerica_Edmonton /*name*/,
    -
    264  0x6cb9484a /*zoneId*/,
    -
    265  &kZoneContext /*zoneContext*/,
    -
    266  2 /*numEras*/,
    -
    267  kZoneEraAmerica_Edmonton /*eras*/,
    -
    268  nullptr /*targetInfo*/,
    -
    269 };
    -
    270 
    -
    271 //---------------------------------------------------------------------------
    -
    272 // Zone name: America/Los_Angeles
    -
    273 // Eras: 1
    -
    274 //---------------------------------------------------------------------------
    -
    275 
    -
    276 static const basic::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = {
    -
    277  // -8:00 US P%sT
    -
    278  {
    -
    279  &kZonePolicyUS /*zonePolicy*/,
    -
    280  "P%T" /*format*/,
    -
    281  -32 /*offsetCode*/,
    -
    282  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    283  127 /*untilYearTiny*/,
    -
    284  1 /*untilMonth*/,
    -
    285  1 /*untilDay*/,
    -
    286  0 /*untilTimeCode*/,
    -
    287  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    288  },
    -
    289 
    -
    290 };
    -
    291 
    -
    292 static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "America/Los_Angeles";
    -
    293 
    -
    294 const basic::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = {
    -
    295  kZoneNameAmerica_Los_Angeles /*name*/,
    -
    296  0xb7f7e8f2 /*zoneId*/,
    -
    297  &kZoneContext /*zoneContext*/,
    -
    298  1 /*numEras*/,
    -
    299  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    300  nullptr /*targetInfo*/,
    -
    301 };
    -
    302 
    -
    303 //---------------------------------------------------------------------------
    -
    304 // Zone name: America/New_York
    -
    305 // Eras: 1
    -
    306 //---------------------------------------------------------------------------
    -
    307 
    -
    308 static const basic::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = {
    -
    309  // -5:00 US E%sT
    -
    310  {
    -
    311  &kZonePolicyUS /*zonePolicy*/,
    -
    312  "E%T" /*format*/,
    -
    313  -20 /*offsetCode*/,
    -
    314  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    315  127 /*untilYearTiny*/,
    -
    316  1 /*untilMonth*/,
    -
    317  1 /*untilDay*/,
    -
    318  0 /*untilTimeCode*/,
    -
    319  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    320  },
    -
    321 
    -
    322 };
    -
    323 
    -
    324 static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "America/New_York";
    -
    325 
    -
    326 const basic::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = {
    -
    327  kZoneNameAmerica_New_York /*name*/,
    -
    328  0x1e2a7654 /*zoneId*/,
    -
    329  &kZoneContext /*zoneContext*/,
    -
    330  1 /*numEras*/,
    -
    331  kZoneEraAmerica_New_York /*eras*/,
    -
    332  nullptr /*targetInfo*/,
    -
    333 };
    -
    334 
    -
    335 //---------------------------------------------------------------------------
    -
    336 // Zone name: America/Toronto
    -
    337 // Eras: 1
    -
    338 //---------------------------------------------------------------------------
    -
    339 
    -
    340 static const basic::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = {
    -
    341  // -5:00 Canada E%sT
    -
    342  {
    -
    343  &kZonePolicyCanada /*zonePolicy*/,
    -
    344  "E%T" /*format*/,
    -
    345  -20 /*offsetCode*/,
    -
    346  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    347  127 /*untilYearTiny*/,
    -
    348  1 /*untilMonth*/,
    -
    349  1 /*untilDay*/,
    -
    350  0 /*untilTimeCode*/,
    -
    351  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    352  },
    -
    353 
    -
    354 };
    -
    355 
    -
    356 static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "America/Toronto";
    -
    357 
    -
    358 const basic::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = {
    -
    359  kZoneNameAmerica_Toronto /*name*/,
    -
    360  0x792e851b /*zoneId*/,
    -
    361  &kZoneContext /*zoneContext*/,
    -
    362  1 /*numEras*/,
    -
    363  kZoneEraAmerica_Toronto /*eras*/,
    -
    364  nullptr /*targetInfo*/,
    -
    365 };
    -
    366 
    -
    367 //---------------------------------------------------------------------------
    -
    368 // Zone name: America/Vancouver
    -
    369 // Eras: 2
    -
    370 //---------------------------------------------------------------------------
    -
    371 
    -
    372 static const basic::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = {
    -
    373  // -8:00 Vanc P%sT 1987
    -
    374  {
    -
    375  &kZonePolicyVanc /*zonePolicy*/,
    -
    376  "P%T" /*format*/,
    -
    377  -32 /*offsetCode*/,
    -
    378  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    379  -113 /*untilYearTiny*/,
    -
    380  1 /*untilMonth*/,
    -
    381  1 /*untilDay*/,
    -
    382  0 /*untilTimeCode*/,
    -
    383  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    384  },
    -
    385  // -8:00 Canada P%sT
    -
    386  {
    -
    387  &kZonePolicyCanada /*zonePolicy*/,
    -
    388  "P%T" /*format*/,
    -
    389  -32 /*offsetCode*/,
    -
    390  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    391  127 /*untilYearTiny*/,
    -
    392  1 /*untilMonth*/,
    -
    393  1 /*untilDay*/,
    -
    394  0 /*untilTimeCode*/,
    -
    395  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    396  },
    -
    397 
    -
    398 };
    -
    399 
    -
    400 static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "America/Vancouver";
    -
    401 
    -
    402 const basic::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = {
    -
    403  kZoneNameAmerica_Vancouver /*name*/,
    -
    404  0x2c6f6b1f /*zoneId*/,
    -
    405  &kZoneContext /*zoneContext*/,
    -
    406  2 /*numEras*/,
    -
    407  kZoneEraAmerica_Vancouver /*eras*/,
    -
    408  nullptr /*targetInfo*/,
    -
    409 };
    -
    410 
    -
    411 //---------------------------------------------------------------------------
    -
    412 // Zone name: America/Winnipeg
    -
    413 // Eras: 2
    -
    414 //---------------------------------------------------------------------------
    -
    415 
    -
    416 static const basic::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = {
    -
    417  // -6:00 Winn C%sT 2006
    -
    418  {
    -
    419  &kZonePolicyWinn /*zonePolicy*/,
    -
    420  "C%T" /*format*/,
    -
    421  -24 /*offsetCode*/,
    -
    422  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    423  -94 /*untilYearTiny*/,
    -
    424  1 /*untilMonth*/,
    -
    425  1 /*untilDay*/,
    -
    426  0 /*untilTimeCode*/,
    -
    427  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    428  },
    -
    429  // -6:00 Canada C%sT
    -
    430  {
    -
    431  &kZonePolicyCanada /*zonePolicy*/,
    -
    432  "C%T" /*format*/,
    -
    433  -24 /*offsetCode*/,
    -
    434  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    435  127 /*untilYearTiny*/,
    -
    436  1 /*untilMonth*/,
    -
    437  1 /*untilDay*/,
    -
    438  0 /*untilTimeCode*/,
    -
    439  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    440  },
    -
    441 
    -
    442 };
    -
    443 
    -
    444 static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "America/Winnipeg";
    -
    445 
    -
    446 const basic::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = {
    -
    447  kZoneNameAmerica_Winnipeg /*name*/,
    -
    448  0x8c7dafc7 /*zoneId*/,
    -
    449  &kZoneContext /*zoneContext*/,
    -
    450  2 /*numEras*/,
    -
    451  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    452  nullptr /*targetInfo*/,
    -
    453 };
    -
    454 
    -
    455 //---------------------------------------------------------------------------
    -
    456 // Zone name: Australia/Darwin
    -
    457 // Eras: 1
    -
    458 //---------------------------------------------------------------------------
    -
    459 
    -
    460 static const basic::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = {
    -
    461  // 9:30 Aus AC%sT
    -
    462  {
    -
    463  &kZonePolicyAus /*zonePolicy*/,
    -
    464  "AC%T" /*format*/,
    -
    465  38 /*offsetCode*/,
    -
    466  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    467  127 /*untilYearTiny*/,
    -
    468  1 /*untilMonth*/,
    -
    469  1 /*untilDay*/,
    -
    470  0 /*untilTimeCode*/,
    -
    471  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    472  },
    -
    473 
    -
    474 };
    -
    475 
    -
    476 static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "Australia/Darwin";
    -
    477 
    -
    478 const basic::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = {
    -
    479  kZoneNameAustralia_Darwin /*name*/,
    -
    480  0x2876bdff /*zoneId*/,
    -
    481  &kZoneContext /*zoneContext*/,
    -
    482  1 /*numEras*/,
    -
    483  kZoneEraAustralia_Darwin /*eras*/,
    -
    484  nullptr /*targetInfo*/,
    -
    485 };
    -
    486 
    -
    487 //---------------------------------------------------------------------------
    -
    488 // Zone name: Pacific/Galapagos
    -
    489 // Eras: 2
    -
    490 //---------------------------------------------------------------------------
    -
    491 
    -
    492 static const basic::Info::ZoneEra kZoneEraPacific_Galapagos[] ACE_TIME_PROGMEM = {
    -
    493  // -5:00 - %z 1986
    -
    494  {
    -
    495  nullptr /*zonePolicy*/,
    -
    496  "" /*format*/,
    -
    497  -20 /*offsetCode*/,
    -
    498  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    499  -114 /*untilYearTiny*/,
    -
    500  1 /*untilMonth*/,
    -
    501  1 /*untilDay*/,
    -
    502  0 /*untilTimeCode*/,
    -
    503  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    504  },
    -
    505  // -6:00 Ecuador %z
    -
    506  {
    -
    507  &kZonePolicyEcuador /*zonePolicy*/,
    -
    508  "" /*format*/,
    -
    509  -24 /*offsetCode*/,
    -
    510  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    511  127 /*untilYearTiny*/,
    -
    512  1 /*untilMonth*/,
    -
    513  1 /*untilDay*/,
    -
    514  0 /*untilTimeCode*/,
    -
    515  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    516  },
    -
    517 
    -
    518 };
    -
    519 
    -
    520 static const char kZoneNamePacific_Galapagos[] ACE_TIME_PROGMEM = "Pacific/Galapagos";
    -
    521 
    -
    522 const basic::Info::ZoneInfo kZonePacific_Galapagos ACE_TIME_PROGMEM = {
    -
    523  kZoneNamePacific_Galapagos /*name*/,
    -
    524  0xa952f752 /*zoneId*/,
    -
    525  &kZoneContext /*zoneContext*/,
    -
    526  2 /*numEras*/,
    -
    527  kZoneEraPacific_Galapagos /*eras*/,
    -
    528  nullptr /*targetInfo*/,
    -
    529 };
    -
    530 
    -
    531 
    -
    532 
    -
    533 //---------------------------------------------------------------------------
    -
    534 // Links: 1
    -
    535 //---------------------------------------------------------------------------
    -
    536 
    -
    537 //---------------------------------------------------------------------------
    -
    538 // Link name: US/Pacific -> America/Los_Angeles
    -
    539 //---------------------------------------------------------------------------
    -
    540 
    -
    541 static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific";
    -
    542 
    -
    543 const basic::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = {
    -
    544  kZoneNameUS_Pacific /*name*/,
    -
    545  0xa950f6ab /*zoneId*/,
    -
    546  &kZoneContext /*zoneContext*/,
    -
    547  1 /*numEras*/,
    -
    548  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    549  &kZoneAmerica_Los_Angeles /*targetInfo*/,
    -
    550 };
    -
    551 
    -
    552 
    -
    553 }
    -
    554 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/testingzonedb_2zone__infos_8h_source.html b/docs/html/testingzonedb_2zone__infos_8h_source.html deleted file mode 100644 index e32c8149a..000000000 --- a/docs/html/testingzonedb_2zone__infos_8h_source.html +++ /dev/null @@ -1,859 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/zone_infos.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace testingzonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 12 (11 zones, 1 links)
    -
    32 // Unsupported Zones: 585 (329 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2007]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2009]
    -
    42 // Max Buffer Size: 6
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 12
    -
    46 // Eras: 15
    -
    47 // Policies: 8
    -
    48 // Rules: 32
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 288
    -
    53 // Policies: 24
    -
    54 // Eras: 165
    -
    55 // Zones: 143
    -
    56 // Links: 13
    -
    57 // Registry: 24
    -
    58 // Formats: 27
    -
    59 // Letters: 11
    -
    60 // Fragments: 0
    -
    61 // Names: 202 (original: 202)
    -
    62 // TOTAL: 913
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 384
    -
    67 // Policies: 64
    -
    68 // Eras: 240
    -
    69 // Zones: 264
    -
    70 // Links: 24
    -
    71 // Registry: 48
    -
    72 // Formats: 27
    -
    73 // Letters: 17
    -
    74 // Fragments: 0
    -
    75 // Names: 202 (original: 202)
    -
    76 // TOTAL: 1294
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #ifndef ACE_TIME_TESTINGZONEDB_ZONE_INFOS_H
    -
    81 #define ACE_TIME_TESTINGZONEDB_ZONE_INFOS_H
    -
    82 
    -
    83 #include <zoneinfo/infos.h>
    -
    84 
    -
    85 class __FlashStringHelper;
    -
    86 
    -
    87 namespace ace_time {
    -
    88 namespace testingzonedb {
    -
    89 
    -
    90 //---------------------------------------------------------------------------
    -
    91 // ZoneContext (should not be in PROGMEM)
    -
    92 //---------------------------------------------------------------------------
    -
    93 
    -
    94 // Version of the TZ Database which generated these files.
    -
    95 extern const __FlashStringHelper* const kTzDatabaseVersion;
    -
    96 
    -
    97 // Metadata about the zonedb files.
    -
    98 extern const basic::Info::ZoneContext kZoneContext;
    -
    99 
    -
    100 //---------------------------------------------------------------------------
    -
    101 // Supported zones: 11
    -
    102 //---------------------------------------------------------------------------
    -
    103 
    -
    104 extern const basic::Info::ZoneInfo kZoneAfrica_Johannesburg; // Africa/Johannesburg
    -
    105 extern const basic::Info::ZoneInfo kZoneAmerica_Chicago; // America/Chicago
    -
    106 extern const basic::Info::ZoneInfo kZoneAmerica_Denver; // America/Denver
    -
    107 extern const basic::Info::ZoneInfo kZoneAmerica_Edmonton; // America/Edmonton
    -
    108 extern const basic::Info::ZoneInfo kZoneAmerica_Los_Angeles; // America/Los_Angeles
    -
    109 extern const basic::Info::ZoneInfo kZoneAmerica_New_York; // America/New_York
    -
    110 extern const basic::Info::ZoneInfo kZoneAmerica_Toronto; // America/Toronto
    -
    111 extern const basic::Info::ZoneInfo kZoneAmerica_Vancouver; // America/Vancouver
    -
    112 extern const basic::Info::ZoneInfo kZoneAmerica_Winnipeg; // America/Winnipeg
    -
    113 extern const basic::Info::ZoneInfo kZoneAustralia_Darwin; // Australia/Darwin
    -
    114 extern const basic::Info::ZoneInfo kZonePacific_Galapagos; // Pacific/Galapagos
    -
    115 
    -
    116 
    -
    117 // Zone Ids
    -
    118 
    -
    119 const uint32_t kZoneIdAfrica_Johannesburg = 0xd5d157a0; // Africa/Johannesburg
    -
    120 const uint32_t kZoneIdAmerica_Chicago = 0x4b92b5d4; // America/Chicago
    -
    121 const uint32_t kZoneIdAmerica_Denver = 0x97d10b2a; // America/Denver
    -
    122 const uint32_t kZoneIdAmerica_Edmonton = 0x6cb9484a; // America/Edmonton
    -
    123 const uint32_t kZoneIdAmerica_Los_Angeles = 0xb7f7e8f2; // America/Los_Angeles
    -
    124 const uint32_t kZoneIdAmerica_New_York = 0x1e2a7654; // America/New_York
    -
    125 const uint32_t kZoneIdAmerica_Toronto = 0x792e851b; // America/Toronto
    -
    126 const uint32_t kZoneIdAmerica_Vancouver = 0x2c6f6b1f; // America/Vancouver
    -
    127 const uint32_t kZoneIdAmerica_Winnipeg = 0x8c7dafc7; // America/Winnipeg
    -
    128 const uint32_t kZoneIdAustralia_Darwin = 0x2876bdff; // Australia/Darwin
    -
    129 const uint32_t kZoneIdPacific_Galapagos = 0xa952f752; // Pacific/Galapagos
    -
    130 
    -
    131 
    -
    132 //---------------------------------------------------------------------------
    -
    133 // Supported links: 1
    -
    134 //---------------------------------------------------------------------------
    -
    135 
    -
    136 extern const basic::Info::ZoneInfo kZoneUS_Pacific; // US/Pacific -> America/Los_Angeles
    -
    137 
    -
    138 
    -
    139 // Zone Ids
    -
    140 
    -
    141 const uint32_t kZoneIdUS_Pacific = 0xa950f6ab; // US/Pacific
    -
    142 
    -
    143 
    -
    144 //---------------------------------------------------------------------------
    -
    145 // Maximum size of the Transition buffer in ExtendedZoneProcessor for each zone
    -
    146 // over the given years. Used only in the AceTimeValidation/Extended*Test tests
    -
    147 // for ExtendedZoneProcessor.
    -
    148 //
    -
    149 // MaxBufSize: 6
    -
    150 //---------------------------------------------------------------------------
    -
    151 
    -
    152 const uint8_t kZoneBufSizeAfrica_Johannesburg = 2; // Africa/Johannesburg in 1944
    -
    153 const uint8_t kZoneBufSizeAmerica_Chicago = 6; // America/Chicago in 2008
    -
    154 const uint8_t kZoneBufSizeAmerica_Denver = 6; // America/Denver in 2008
    -
    155 const uint8_t kZoneBufSizeAmerica_Edmonton = 6; // America/Edmonton in 2008
    -
    156 const uint8_t kZoneBufSizeAmerica_Los_Angeles = 6; // America/Los_Angeles in 2008
    -
    157 const uint8_t kZoneBufSizeAmerica_New_York = 6; // America/New_York in 2008
    -
    158 const uint8_t kZoneBufSizeAmerica_Toronto = 6; // America/Toronto in 2008
    -
    159 const uint8_t kZoneBufSizeAmerica_Vancouver = 6; // America/Vancouver in 2008
    -
    160 const uint8_t kZoneBufSizeAmerica_Winnipeg = 6; // America/Winnipeg in 2006
    -
    161 const uint8_t kZoneBufSizeAustralia_Darwin = 2; // Australia/Darwin in 1944
    -
    162 const uint8_t kZoneBufSizePacific_Galapagos = 3; // Pacific/Galapagos in 1985
    -
    163 
    -
    164 
    -
    165 //---------------------------------------------------------------------------
    -
    166 // Unsupported zones: 329
    -
    167 //---------------------------------------------------------------------------
    -
    168 
    -
    169 // Africa/Abidjan {Zone missing from include list}
    -
    170 // Africa/Algiers {Zone missing from include list}
    -
    171 // Africa/Bissau {Zone missing from include list}
    -
    172 // Africa/Cairo {Zone missing from include list}
    -
    173 // Africa/Casablanca {UNTIL contains month/day/time}
    -
    174 // Africa/Ceuta {Zone missing from include list}
    -
    175 // Africa/El_Aaiun {Zone missing from include list}
    -
    176 // Africa/Juba {Zone missing from include list}
    -
    177 // Africa/Khartoum {Zone missing from include list}
    -
    178 // Africa/Lagos {Zone missing from include list}
    -
    179 // Africa/Maputo {Zone missing from include list}
    -
    180 // Africa/Monrovia {Zone missing from include list}
    -
    181 // Africa/Nairobi {Zone missing from include list}
    -
    182 // Africa/Ndjamena {Zone missing from include list}
    -
    183 // Africa/Sao_Tome {Zone missing from include list}
    -
    184 // Africa/Tripoli {Zone missing from include list}
    -
    185 // Africa/Tunis {Zone missing from include list}
    -
    186 // Africa/Windhoek {Zone missing from include list}
    -
    187 // America/Adak {Zone missing from include list}
    -
    188 // America/Anchorage {Zone missing from include list}
    -
    189 // America/Araguaina {Zone missing from include list}
    -
    190 // America/Argentina/Buenos_Aires {Zone missing from include list}
    -
    191 // America/Argentina/Catamarca {Zone missing from include list}
    -
    192 // America/Argentina/Cordoba {Zone missing from include list}
    -
    193 // America/Argentina/Jujuy {Zone missing from include list}
    -
    194 // America/Argentina/La_Rioja {Zone missing from include list}
    -
    195 // America/Argentina/Mendoza {Zone missing from include list}
    -
    196 // America/Argentina/Rio_Gallegos {Zone missing from include list}
    -
    197 // America/Argentina/Salta {Zone missing from include list}
    -
    198 // America/Argentina/San_Juan {Zone missing from include list}
    -
    199 // America/Argentina/San_Luis {Zone missing from include list}
    -
    200 // America/Argentina/Tucuman {Zone missing from include list}
    -
    201 // America/Argentina/Ushuaia {Zone missing from include list}
    -
    202 // America/Asuncion {Zone missing from include list}
    -
    203 // America/Bahia {Zone missing from include list}
    -
    204 // America/Bahia_Banderas {Zone missing from include list}
    -
    205 // America/Barbados {Zone missing from include list}
    -
    206 // America/Belem {Zone missing from include list}
    -
    207 // America/Belize {Zone missing from include list}
    -
    208 // America/Boa_Vista {Zone missing from include list}
    -
    209 // America/Bogota {Zone missing from include list}
    -
    210 // America/Boise {Zone missing from include list}
    -
    211 // America/Cambridge_Bay {Zone missing from include list}
    -
    212 // America/Campo_Grande {Zone missing from include list}
    -
    213 // America/Cancun {Zone missing from include list}
    -
    214 // America/Caracas {Zone missing from include list}
    -
    215 // America/Cayenne {Zone missing from include list}
    -
    216 // America/Chihuahua {Zone missing from include list}
    -
    217 // America/Ciudad_Juarez {Zone missing from include list}
    -
    218 // America/Costa_Rica {Zone missing from include list}
    -
    219 // America/Coyhaique {Zone missing from include list}
    -
    220 // America/Cuiaba {Zone missing from include list}
    -
    221 // America/Danmarkshavn {Zone missing from include list}
    -
    222 // America/Dawson {Zone missing from include list}
    -
    223 // America/Dawson_Creek {Zone missing from include list}
    -
    224 // America/Detroit {Zone missing from include list}
    -
    225 // America/Eirunepe {Zone missing from include list}
    -
    226 // America/El_Salvador {Zone missing from include list}
    -
    227 // America/Fort_Nelson {Zone missing from include list}
    -
    228 // America/Fortaleza {Zone missing from include list}
    -
    229 // America/Glace_Bay {Zone missing from include list}
    -
    230 // America/Goose_Bay {Zone missing from include list}
    -
    231 // America/Grand_Turk {Zone missing from include list}
    -
    232 // America/Guatemala {Zone missing from include list}
    -
    233 // America/Guayaquil {Zone missing from include list}
    -
    234 // America/Guyana {Zone missing from include list}
    -
    235 // America/Halifax {Zone missing from include list}
    -
    236 // America/Havana {Zone missing from include list}
    -
    237 // America/Hermosillo {Zone missing from include list}
    -
    238 // America/Indiana/Indianapolis {Zone missing from include list}
    -
    239 // America/Indiana/Knox {Zone missing from include list}
    -
    240 // America/Indiana/Marengo {Zone missing from include list}
    -
    241 // America/Indiana/Petersburg {Zone missing from include list}
    -
    242 // America/Indiana/Tell_City {Zone missing from include list}
    -
    243 // America/Indiana/Vevay {Zone missing from include list}
    -
    244 // America/Indiana/Vincennes {Zone missing from include list}
    -
    245 // America/Indiana/Winamac {Zone missing from include list}
    -
    246 // America/Inuvik {Zone missing from include list}
    -
    247 // America/Iqaluit {Zone missing from include list}
    -
    248 // America/Jamaica {Zone missing from include list}
    -
    249 // America/Juneau {Zone missing from include list}
    -
    250 // America/Kentucky/Louisville {Zone missing from include list}
    -
    251 // America/Kentucky/Monticello {Zone missing from include list}
    -
    252 // America/La_Paz {Zone missing from include list}
    -
    253 // America/Lima {Zone missing from include list}
    -
    254 // America/Maceio {Zone missing from include list}
    -
    255 // America/Managua {Zone missing from include list}
    -
    256 // America/Manaus {Zone missing from include list}
    -
    257 // America/Martinique {Zone missing from include list}
    -
    258 // America/Matamoros {Zone missing from include list}
    -
    259 // America/Mazatlan {Zone missing from include list}
    -
    260 // America/Menominee {Zone missing from include list}
    -
    261 // America/Merida {Zone missing from include list}
    -
    262 // America/Metlakatla {Zone missing from include list}
    -
    263 // America/Mexico_City {Zone missing from include list}
    -
    264 // America/Miquelon {Zone missing from include list}
    -
    265 // America/Moncton {Zone missing from include list}
    -
    266 // America/Monterrey {Zone missing from include list}
    -
    267 // America/Montevideo {Zone missing from include list}
    -
    268 // America/Nome {Zone missing from include list}
    -
    269 // America/Noronha {Zone missing from include list}
    -
    270 // America/North_Dakota/Beulah {Zone missing from include list}
    -
    271 // America/North_Dakota/Center {Zone missing from include list}
    -
    272 // America/North_Dakota/New_Salem {Zone missing from include list}
    -
    273 // America/Nuuk {Zone missing from include list}
    -
    274 // America/Ojinaga {Zone missing from include list}
    -
    275 // America/Panama {Zone missing from include list}
    -
    276 // America/Paramaribo {Zone missing from include list}
    -
    277 // America/Phoenix {Zone missing from include list}
    -
    278 // America/Port-au-Prince {Zone missing from include list}
    -
    279 // America/Porto_Velho {Zone missing from include list}
    -
    280 // America/Puerto_Rico {Zone missing from include list}
    -
    281 // America/Punta_Arenas {Zone missing from include list}
    -
    282 // America/Rankin_Inlet {Zone missing from include list}
    -
    283 // America/Recife {Zone missing from include list}
    -
    284 // America/Regina {Zone missing from include list}
    -
    285 // America/Resolute {Zone missing from include list}
    -
    286 // America/Rio_Branco {Zone missing from include list}
    -
    287 // America/Santarem {Zone missing from include list}
    -
    288 // America/Santiago {Zone missing from include list}
    -
    289 // America/Santo_Domingo {Zone missing from include list}
    -
    290 // America/Sao_Paulo {Zone missing from include list}
    -
    291 // America/Scoresbysund {Zone missing from include list}
    -
    292 // America/Sitka {Zone missing from include list}
    -
    293 // America/St_Johns {Zone missing from include list}
    -
    294 // America/Swift_Current {Zone missing from include list}
    -
    295 // America/Tegucigalpa {Zone missing from include list}
    -
    296 // America/Thule {Zone missing from include list}
    -
    297 // America/Tijuana {Zone missing from include list}
    -
    298 // America/Whitehorse {UNTIL contains month/day/time}
    -
    299 // America/Yakutat {Zone missing from include list}
    -
    300 // Antarctica/Casey {Zone missing from include list}
    -
    301 // Antarctica/Davis {Zone missing from include list}
    -
    302 // Antarctica/Macquarie {Zone missing from include list}
    -
    303 // Antarctica/Mawson {Zone missing from include list}
    -
    304 // Antarctica/Palmer {Zone missing from include list}
    -
    305 // Antarctica/Rothera {Zone missing from include list}
    -
    306 // Antarctica/Troll {Zone missing from include list}
    -
    307 // Antarctica/Vostok {Zone missing from include list}
    -
    308 // Asia/Almaty {Zone missing from include list}
    -
    309 // Asia/Amman {Zone missing from include list}
    -
    310 // Asia/Anadyr {Zone missing from include list}
    -
    311 // Asia/Aqtau {Zone missing from include list}
    -
    312 // Asia/Aqtobe {Zone missing from include list}
    -
    313 // Asia/Ashgabat {Zone missing from include list}
    -
    314 // Asia/Atyrau {Zone missing from include list}
    -
    315 // Asia/Baghdad {Zone missing from include list}
    -
    316 // Asia/Baku {Zone missing from include list}
    -
    317 // Asia/Bangkok {Zone missing from include list}
    -
    318 // Asia/Barnaul {Zone missing from include list}
    -
    319 // Asia/Beirut {Zone missing from include list}
    -
    320 // Asia/Bishkek {Zone missing from include list}
    -
    321 // Asia/Chita {Zone missing from include list}
    -
    322 // Asia/Colombo {Zone missing from include list}
    -
    323 // Asia/Damascus {Zone missing from include list}
    -
    324 // Asia/Dhaka {Zone missing from include list}
    -
    325 // Asia/Dili {Zone missing from include list}
    -
    326 // Asia/Dubai {Zone missing from include list}
    -
    327 // Asia/Dushanbe {Zone missing from include list}
    -
    328 // Asia/Famagusta {Zone missing from include list}
    -
    329 // Asia/Gaza {Zone missing from include list}
    -
    330 // Asia/Hebron {Zone missing from include list}
    -
    331 // Asia/Ho_Chi_Minh {Zone missing from include list}
    -
    332 // Asia/Hong_Kong {Zone missing from include list}
    -
    333 // Asia/Hovd {Zone missing from include list}
    -
    334 // Asia/Irkutsk {Zone missing from include list}
    -
    335 // Asia/Jakarta {Zone missing from include list}
    -
    336 // Asia/Jayapura {Zone missing from include list}
    -
    337 // Asia/Jerusalem {Zone missing from include list}
    -
    338 // Asia/Kabul {Zone missing from include list}
    -
    339 // Asia/Kamchatka {Zone missing from include list}
    -
    340 // Asia/Karachi {Zone missing from include list}
    -
    341 // Asia/Kathmandu {Zone missing from include list}
    -
    342 // Asia/Khandyga {Zone missing from include list}
    -
    343 // Asia/Kolkata {Zone missing from include list}
    -
    344 // Asia/Krasnoyarsk {Zone missing from include list}
    -
    345 // Asia/Kuching {Zone missing from include list}
    -
    346 // Asia/Macau {Zone missing from include list}
    -
    347 // Asia/Magadan {Zone missing from include list}
    -
    348 // Asia/Makassar {Zone missing from include list}
    -
    349 // Asia/Manila {Zone missing from include list}
    -
    350 // Asia/Nicosia {Zone missing from include list}
    -
    351 // Asia/Novokuznetsk {Zone missing from include list}
    -
    352 // Asia/Novosibirsk {Zone missing from include list}
    -
    353 // Asia/Omsk {Zone missing from include list}
    -
    354 // Asia/Oral {Zone missing from include list}
    -
    355 // Asia/Pontianak {Zone missing from include list}
    -
    356 // Asia/Pyongyang {Zone missing from include list}
    -
    357 // Asia/Qatar {Zone missing from include list}
    -
    358 // Asia/Qostanay {Zone missing from include list}
    -
    359 // Asia/Qyzylorda {Zone missing from include list}
    -
    360 // Asia/Riyadh {Zone missing from include list}
    -
    361 // Asia/Sakhalin {Zone missing from include list}
    -
    362 // Asia/Samarkand {Zone missing from include list}
    -
    363 // Asia/Seoul {Zone missing from include list}
    -
    364 // Asia/Shanghai {Zone missing from include list}
    -
    365 // Asia/Singapore {Zone missing from include list}
    -
    366 // Asia/Srednekolymsk {Zone missing from include list}
    -
    367 // Asia/Taipei {Zone missing from include list}
    -
    368 // Asia/Tashkent {Zone missing from include list}
    -
    369 // Asia/Tbilisi {Zone missing from include list}
    -
    370 // Asia/Tehran {Zone missing from include list}
    -
    371 // Asia/Thimphu {Zone missing from include list}
    -
    372 // Asia/Tokyo {Zone missing from include list}
    -
    373 // Asia/Tomsk {Zone missing from include list}
    -
    374 // Asia/Ulaanbaatar {Zone missing from include list}
    -
    375 // Asia/Urumqi {Zone missing from include list}
    -
    376 // Asia/Ust-Nera {Zone missing from include list}
    -
    377 // Asia/Vladivostok {Zone missing from include list}
    -
    378 // Asia/Yakutsk {Zone missing from include list}
    -
    379 // Asia/Yangon {Zone missing from include list}
    -
    380 // Asia/Yekaterinburg {Zone missing from include list}
    -
    381 // Asia/Yerevan {Zone missing from include list}
    -
    382 // Atlantic/Azores {Zone missing from include list}
    -
    383 // Atlantic/Bermuda {Zone missing from include list}
    -
    384 // Atlantic/Canary {Zone missing from include list}
    -
    385 // Atlantic/Cape_Verde {Zone missing from include list}
    -
    386 // Atlantic/Faroe {Zone missing from include list}
    -
    387 // Atlantic/Madeira {Zone missing from include list}
    -
    388 // Atlantic/South_Georgia {Zone missing from include list}
    -
    389 // Atlantic/Stanley {Zone missing from include list}
    -
    390 // Australia/Adelaide {Zone missing from include list}
    -
    391 // Australia/Brisbane {Zone missing from include list}
    -
    392 // Australia/Broken_Hill {Zone missing from include list}
    -
    393 // Australia/Eucla {Zone missing from include list}
    -
    394 // Australia/Hobart {Zone missing from include list}
    -
    395 // Australia/Lindeman {Zone missing from include list}
    -
    396 // Australia/Lord_Howe {Zone missing from include list}
    -
    397 // Australia/Melbourne {Zone missing from include list}
    -
    398 // Australia/Perth {Zone missing from include list}
    -
    399 // Australia/Sydney {Zone missing from include list}
    -
    400 // Etc/GMT {Zone missing from include list}
    -
    401 // Etc/GMT+1 {Zone missing from include list}
    -
    402 // Etc/GMT+10 {Zone missing from include list}
    -
    403 // Etc/GMT+11 {Zone missing from include list}
    -
    404 // Etc/GMT+12 {Zone missing from include list}
    -
    405 // Etc/GMT+2 {Zone missing from include list}
    -
    406 // Etc/GMT+3 {Zone missing from include list}
    -
    407 // Etc/GMT+4 {Zone missing from include list}
    -
    408 // Etc/GMT+5 {Zone missing from include list}
    -
    409 // Etc/GMT+6 {Zone missing from include list}
    -
    410 // Etc/GMT+7 {Zone missing from include list}
    -
    411 // Etc/GMT+8 {Zone missing from include list}
    -
    412 // Etc/GMT+9 {Zone missing from include list}
    -
    413 // Etc/GMT-1 {Zone missing from include list}
    -
    414 // Etc/GMT-10 {Zone missing from include list}
    -
    415 // Etc/GMT-11 {Zone missing from include list}
    -
    416 // Etc/GMT-12 {Zone missing from include list}
    -
    417 // Etc/GMT-13 {Zone missing from include list}
    -
    418 // Etc/GMT-14 {Zone missing from include list}
    -
    419 // Etc/GMT-2 {Zone missing from include list}
    -
    420 // Etc/GMT-3 {Zone missing from include list}
    -
    421 // Etc/GMT-4 {Zone missing from include list}
    -
    422 // Etc/GMT-5 {Zone missing from include list}
    -
    423 // Etc/GMT-6 {Zone missing from include list}
    -
    424 // Etc/GMT-7 {Zone missing from include list}
    -
    425 // Etc/GMT-8 {Zone missing from include list}
    -
    426 // Etc/GMT-9 {Zone missing from include list}
    -
    427 // Etc/UTC {Zone missing from include list}
    -
    428 // Europe/Andorra {Zone missing from include list}
    -
    429 // Europe/Astrakhan {Zone missing from include list}
    -
    430 // Europe/Athens {Zone missing from include list}
    -
    431 // Europe/Belgrade {Zone missing from include list}
    -
    432 // Europe/Berlin {Zone missing from include list}
    -
    433 // Europe/Brussels {Zone missing from include list}
    -
    434 // Europe/Bucharest {Zone missing from include list}
    -
    435 // Europe/Budapest {Zone missing from include list}
    -
    436 // Europe/Chisinau {Zone missing from include list}
    -
    437 // Europe/Dublin {Zone missing from include list}
    -
    438 // Europe/Gibraltar {Zone missing from include list}
    -
    439 // Europe/Helsinki {Zone missing from include list}
    -
    440 // Europe/Istanbul {Zone missing from include list}
    -
    441 // Europe/Kaliningrad {Zone missing from include list}
    -
    442 // Europe/Kirov {Zone missing from include list}
    -
    443 // Europe/Kyiv {Zone missing from include list}
    -
    444 // Europe/Lisbon {Zone missing from include list}
    -
    445 // Europe/London {Zone missing from include list}
    -
    446 // Europe/Madrid {Zone missing from include list}
    -
    447 // Europe/Malta {Zone missing from include list}
    -
    448 // Europe/Minsk {Zone missing from include list}
    -
    449 // Europe/Moscow {Zone missing from include list}
    -
    450 // Europe/Paris {Zone missing from include list}
    -
    451 // Europe/Prague {Zone missing from include list}
    -
    452 // Europe/Riga {Zone missing from include list}
    -
    453 // Europe/Rome {Zone missing from include list}
    -
    454 // Europe/Samara {Zone missing from include list}
    -
    455 // Europe/Saratov {Zone missing from include list}
    -
    456 // Europe/Simferopol {Zone missing from include list}
    -
    457 // Europe/Sofia {Zone missing from include list}
    -
    458 // Europe/Tallinn {Zone missing from include list}
    -
    459 // Europe/Tirane {Zone missing from include list}
    -
    460 // Europe/Ulyanovsk {Zone missing from include list}
    -
    461 // Europe/Vienna {Zone missing from include list}
    -
    462 // Europe/Vilnius {Zone missing from include list}
    -
    463 // Europe/Volgograd {Zone missing from include list}
    -
    464 // Europe/Warsaw {Zone missing from include list}
    -
    465 // Europe/Zurich {Zone missing from include list}
    -
    466 // Indian/Chagos {Zone missing from include list}
    -
    467 // Indian/Maldives {Zone missing from include list}
    -
    468 // Indian/Mauritius {Zone missing from include list}
    -
    469 // Pacific/Apia {Zone missing from include list}
    -
    470 // Pacific/Auckland {Zone missing from include list}
    -
    471 // Pacific/Bougainville {Zone missing from include list}
    -
    472 // Pacific/Chatham {Zone missing from include list}
    -
    473 // Pacific/Easter {Zone missing from include list}
    -
    474 // Pacific/Efate {Zone missing from include list}
    -
    475 // Pacific/Fakaofo {Zone missing from include list}
    -
    476 // Pacific/Fiji {Zone missing from include list}
    -
    477 // Pacific/Gambier {Zone missing from include list}
    -
    478 // Pacific/Guadalcanal {Zone missing from include list}
    -
    479 // Pacific/Guam {Zone missing from include list}
    -
    480 // Pacific/Honolulu {Zone missing from include list}
    -
    481 // Pacific/Kanton {Zone missing from include list}
    -
    482 // Pacific/Kiritimati {Zone missing from include list}
    -
    483 // Pacific/Kosrae {Zone missing from include list}
    -
    484 // Pacific/Kwajalein {Zone missing from include list}
    -
    485 // Pacific/Marquesas {Zone missing from include list}
    -
    486 // Pacific/Nauru {Zone missing from include list}
    -
    487 // Pacific/Niue {Zone missing from include list}
    -
    488 // Pacific/Norfolk {Zone missing from include list}
    -
    489 // Pacific/Noumea {Zone missing from include list}
    -
    490 // Pacific/Pago_Pago {Zone missing from include list}
    -
    491 // Pacific/Palau {Zone missing from include list}
    -
    492 // Pacific/Pitcairn {Zone missing from include list}
    -
    493 // Pacific/Port_Moresby {Zone missing from include list}
    -
    494 // Pacific/Rarotonga {Zone missing from include list}
    -
    495 // Pacific/Tahiti {Zone missing from include list}
    -
    496 // Pacific/Tarawa {Zone missing from include list}
    -
    497 // Pacific/Tongatapu {Zone missing from include list}
    -
    498 
    -
    499 
    -
    500 //---------------------------------------------------------------------------
    -
    501 // Notable zones: 2
    -
    502 //---------------------------------------------------------------------------
    -
    503 
    -
    504 // Africa/Johannesburg {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    505 // Pacific/Galapagos {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    506 
    -
    507 
    -
    508 //---------------------------------------------------------------------------
    -
    509 // Unsupported links: 256
    -
    510 //---------------------------------------------------------------------------
    -
    511 
    -
    512 // Africa/Accra {Link missing from include list}
    -
    513 // Africa/Addis_Ababa {Link missing from include list}
    -
    514 // Africa/Asmara {Link missing from include list}
    -
    515 // Africa/Asmera {Link missing from include list}
    -
    516 // Africa/Bamako {Link missing from include list}
    -
    517 // Africa/Bangui {Link missing from include list}
    -
    518 // Africa/Banjul {Link missing from include list}
    -
    519 // Africa/Blantyre {Link missing from include list}
    -
    520 // Africa/Brazzaville {Link missing from include list}
    -
    521 // Africa/Bujumbura {Link missing from include list}
    -
    522 // Africa/Conakry {Link missing from include list}
    -
    523 // Africa/Dakar {Link missing from include list}
    -
    524 // Africa/Dar_es_Salaam {Link missing from include list}
    -
    525 // Africa/Djibouti {Link missing from include list}
    -
    526 // Africa/Douala {Link missing from include list}
    -
    527 // Africa/Freetown {Link missing from include list}
    -
    528 // Africa/Gaborone {Link missing from include list}
    -
    529 // Africa/Harare {Link missing from include list}
    -
    530 // Africa/Kampala {Link missing from include list}
    -
    531 // Africa/Kigali {Link missing from include list}
    -
    532 // Africa/Kinshasa {Link missing from include list}
    -
    533 // Africa/Libreville {Link missing from include list}
    -
    534 // Africa/Lome {Link missing from include list}
    -
    535 // Africa/Luanda {Link missing from include list}
    -
    536 // Africa/Lubumbashi {Link missing from include list}
    -
    537 // Africa/Lusaka {Link missing from include list}
    -
    538 // Africa/Malabo {Link missing from include list}
    -
    539 // Africa/Maseru {Link missing from include list}
    -
    540 // Africa/Mbabane {Link missing from include list}
    -
    541 // Africa/Mogadishu {Link missing from include list}
    -
    542 // Africa/Niamey {Link missing from include list}
    -
    543 // Africa/Nouakchott {Link missing from include list}
    -
    544 // Africa/Ouagadougou {Link missing from include list}
    -
    545 // Africa/Porto-Novo {Link missing from include list}
    -
    546 // Africa/Timbuktu {Link missing from include list}
    -
    547 // America/Anguilla {Link missing from include list}
    -
    548 // America/Antigua {Link missing from include list}
    -
    549 // America/Argentina/ComodRivadavia {Link missing from include list}
    -
    550 // America/Aruba {Link missing from include list}
    -
    551 // America/Atikokan {Link missing from include list}
    -
    552 // America/Atka {Link missing from include list}
    -
    553 // America/Blanc-Sablon {Link missing from include list}
    -
    554 // America/Buenos_Aires {Link missing from include list}
    -
    555 // America/Catamarca {Link missing from include list}
    -
    556 // America/Cayman {Link missing from include list}
    -
    557 // America/Coral_Harbour {Link missing from include list}
    -
    558 // America/Cordoba {Link missing from include list}
    -
    559 // America/Creston {Link missing from include list}
    -
    560 // America/Curacao {Link missing from include list}
    -
    561 // America/Dominica {Link missing from include list}
    -
    562 // America/Ensenada {Link missing from include list}
    -
    563 // America/Fort_Wayne {Link missing from include list}
    -
    564 // America/Godthab {Link missing from include list}
    -
    565 // America/Grenada {Link missing from include list}
    -
    566 // America/Guadeloupe {Link missing from include list}
    -
    567 // America/Indianapolis {Link missing from include list}
    -
    568 // America/Jujuy {Link missing from include list}
    -
    569 // America/Knox_IN {Link missing from include list}
    -
    570 // America/Kralendijk {Link missing from include list}
    -
    571 // America/Louisville {Link missing from include list}
    -
    572 // America/Lower_Princes {Link missing from include list}
    -
    573 // America/Marigot {Link missing from include list}
    -
    574 // America/Mendoza {Link missing from include list}
    -
    575 // America/Montreal {Link missing from include list}
    -
    576 // America/Montserrat {Link missing from include list}
    -
    577 // America/Nassau {Link missing from include list}
    -
    578 // America/Nipigon {Link missing from include list}
    -
    579 // America/Pangnirtung {Link missing from include list}
    -
    580 // America/Port_of_Spain {Link missing from include list}
    -
    581 // America/Porto_Acre {Link missing from include list}
    -
    582 // America/Rainy_River {Link missing from include list}
    -
    583 // America/Rosario {Link missing from include list}
    -
    584 // America/Santa_Isabel {Link missing from include list}
    -
    585 // America/Shiprock {Link missing from include list}
    -
    586 // America/St_Barthelemy {Link missing from include list}
    -
    587 // America/St_Kitts {Link missing from include list}
    -
    588 // America/St_Lucia {Link missing from include list}
    -
    589 // America/St_Thomas {Link missing from include list}
    -
    590 // America/St_Vincent {Link missing from include list}
    -
    591 // America/Thunder_Bay {Link missing from include list}
    -
    592 // America/Tortola {Link missing from include list}
    -
    593 // America/Virgin {Link missing from include list}
    -
    594 // America/Yellowknife {Link missing from include list}
    -
    595 // Antarctica/DumontDUrville {Link missing from include list}
    -
    596 // Antarctica/McMurdo {Link missing from include list}
    -
    597 // Antarctica/South_Pole {Link missing from include list}
    -
    598 // Antarctica/Syowa {Link missing from include list}
    -
    599 // Arctic/Longyearbyen {Link missing from include list}
    -
    600 // Asia/Aden {Link missing from include list}
    -
    601 // Asia/Ashkhabad {Link missing from include list}
    -
    602 // Asia/Bahrain {Link missing from include list}
    -
    603 // Asia/Brunei {Link missing from include list}
    -
    604 // Asia/Calcutta {Link missing from include list}
    -
    605 // Asia/Choibalsan {Link missing from include list}
    -
    606 // Asia/Chongqing {Link missing from include list}
    -
    607 // Asia/Chungking {Link missing from include list}
    -
    608 // Asia/Dacca {Link missing from include list}
    -
    609 // Asia/Harbin {Link missing from include list}
    -
    610 // Asia/Istanbul {Link missing from include list}
    -
    611 // Asia/Kashgar {Link missing from include list}
    -
    612 // Asia/Katmandu {Link missing from include list}
    -
    613 // Asia/Kuala_Lumpur {Link missing from include list}
    -
    614 // Asia/Kuwait {Link missing from include list}
    -
    615 // Asia/Macao {Link missing from include list}
    -
    616 // Asia/Muscat {Link missing from include list}
    -
    617 // Asia/Phnom_Penh {Link missing from include list}
    -
    618 // Asia/Rangoon {Link missing from include list}
    -
    619 // Asia/Saigon {Link missing from include list}
    -
    620 // Asia/Tel_Aviv {Link missing from include list}
    -
    621 // Asia/Thimbu {Link missing from include list}
    -
    622 // Asia/Ujung_Pandang {Link missing from include list}
    -
    623 // Asia/Ulan_Bator {Link missing from include list}
    -
    624 // Asia/Vientiane {Link missing from include list}
    -
    625 // Atlantic/Faeroe {Link missing from include list}
    -
    626 // Atlantic/Jan_Mayen {Link missing from include list}
    -
    627 // Atlantic/Reykjavik {Link missing from include list}
    -
    628 // Atlantic/St_Helena {Link missing from include list}
    -
    629 // Australia/ACT {Link missing from include list}
    -
    630 // Australia/Canberra {Link missing from include list}
    -
    631 // Australia/Currie {Link missing from include list}
    -
    632 // Australia/LHI {Link missing from include list}
    -
    633 // Australia/NSW {Link missing from include list}
    -
    634 // Australia/North {Link missing from include list}
    -
    635 // Australia/Queensland {Link missing from include list}
    -
    636 // Australia/South {Link missing from include list}
    -
    637 // Australia/Tasmania {Link missing from include list}
    -
    638 // Australia/Victoria {Link missing from include list}
    -
    639 // Australia/West {Link missing from include list}
    -
    640 // Australia/Yancowinna {Link missing from include list}
    -
    641 // Brazil/Acre {Link missing from include list}
    -
    642 // Brazil/DeNoronha {Link missing from include list}
    -
    643 // Brazil/East {Link missing from include list}
    -
    644 // Brazil/West {Link missing from include list}
    -
    645 // CET {Link missing from include list}
    -
    646 // CST6CDT {Link missing from include list}
    -
    647 // Canada/Atlantic {Link missing from include list}
    -
    648 // Canada/Central {Link missing from include list}
    -
    649 // Canada/Eastern {Link missing from include list}
    -
    650 // Canada/Mountain {Link missing from include list}
    -
    651 // Canada/Newfoundland {Link missing from include list}
    -
    652 // Canada/Pacific {Link missing from include list}
    -
    653 // Canada/Saskatchewan {Link missing from include list}
    -
    654 // Canada/Yukon {Link missing from include list}
    -
    655 // Chile/Continental {Link missing from include list}
    -
    656 // Chile/EasterIsland {Link missing from include list}
    -
    657 // Cuba {Link missing from include list}
    -
    658 // EET {Link missing from include list}
    -
    659 // EST {Link missing from include list}
    -
    660 // EST5EDT {Link missing from include list}
    -
    661 // Egypt {Link missing from include list}
    -
    662 // Eire {Link missing from include list}
    -
    663 // Etc/GMT+0 {Link missing from include list}
    -
    664 // Etc/GMT-0 {Link missing from include list}
    -
    665 // Etc/GMT0 {Link missing from include list}
    -
    666 // Etc/Greenwich {Link missing from include list}
    -
    667 // Etc/UCT {Link missing from include list}
    -
    668 // Etc/Universal {Link missing from include list}
    -
    669 // Etc/Zulu {Link missing from include list}
    -
    670 // Europe/Amsterdam {Link missing from include list}
    -
    671 // Europe/Belfast {Link missing from include list}
    -
    672 // Europe/Bratislava {Link missing from include list}
    -
    673 // Europe/Busingen {Link missing from include list}
    -
    674 // Europe/Copenhagen {Link missing from include list}
    -
    675 // Europe/Guernsey {Link missing from include list}
    -
    676 // Europe/Isle_of_Man {Link missing from include list}
    -
    677 // Europe/Jersey {Link missing from include list}
    -
    678 // Europe/Kiev {Link missing from include list}
    -
    679 // Europe/Ljubljana {Link missing from include list}
    -
    680 // Europe/Luxembourg {Link missing from include list}
    -
    681 // Europe/Mariehamn {Link missing from include list}
    -
    682 // Europe/Monaco {Link missing from include list}
    -
    683 // Europe/Nicosia {Link missing from include list}
    -
    684 // Europe/Oslo {Link missing from include list}
    -
    685 // Europe/Podgorica {Link missing from include list}
    -
    686 // Europe/San_Marino {Link missing from include list}
    -
    687 // Europe/Sarajevo {Link missing from include list}
    -
    688 // Europe/Skopje {Link missing from include list}
    -
    689 // Europe/Stockholm {Link missing from include list}
    -
    690 // Europe/Tiraspol {Link missing from include list}
    -
    691 // Europe/Uzhgorod {Link missing from include list}
    -
    692 // Europe/Vaduz {Link missing from include list}
    -
    693 // Europe/Vatican {Link missing from include list}
    -
    694 // Europe/Zagreb {Link missing from include list}
    -
    695 // Europe/Zaporozhye {Link missing from include list}
    -
    696 // GB {Link missing from include list}
    -
    697 // GB-Eire {Link missing from include list}
    -
    698 // GMT {Link missing from include list}
    -
    699 // GMT+0 {Link missing from include list}
    -
    700 // GMT-0 {Link missing from include list}
    -
    701 // GMT0 {Link missing from include list}
    -
    702 // Greenwich {Link missing from include list}
    -
    703 // HST {Link missing from include list}
    -
    704 // Hongkong {Link missing from include list}
    -
    705 // Iceland {Link missing from include list}
    -
    706 // Indian/Antananarivo {Link missing from include list}
    -
    707 // Indian/Christmas {Link missing from include list}
    -
    708 // Indian/Cocos {Link missing from include list}
    -
    709 // Indian/Comoro {Link missing from include list}
    -
    710 // Indian/Kerguelen {Link missing from include list}
    -
    711 // Indian/Mahe {Link missing from include list}
    -
    712 // Indian/Mayotte {Link missing from include list}
    -
    713 // Indian/Reunion {Link missing from include list}
    -
    714 // Iran {Link missing from include list}
    -
    715 // Israel {Link missing from include list}
    -
    716 // Jamaica {Link missing from include list}
    -
    717 // Japan {Link missing from include list}
    -
    718 // Kwajalein {Link missing from include list}
    -
    719 // Libya {Link missing from include list}
    -
    720 // MET {Link missing from include list}
    -
    721 // MST {Link missing from include list}
    -
    722 // MST7MDT {Link missing from include list}
    -
    723 // Mexico/BajaNorte {Link missing from include list}
    -
    724 // Mexico/BajaSur {Link missing from include list}
    -
    725 // Mexico/General {Link missing from include list}
    -
    726 // NZ {Link missing from include list}
    -
    727 // NZ-CHAT {Link missing from include list}
    -
    728 // Navajo {Link missing from include list}
    -
    729 // PRC {Link missing from include list}
    -
    730 // PST8PDT {Link missing from include list}
    -
    731 // Pacific/Chuuk {Link missing from include list}
    -
    732 // Pacific/Enderbury {Link missing from include list}
    -
    733 // Pacific/Funafuti {Link missing from include list}
    -
    734 // Pacific/Johnston {Link missing from include list}
    -
    735 // Pacific/Majuro {Link missing from include list}
    -
    736 // Pacific/Midway {Link missing from include list}
    -
    737 // Pacific/Pohnpei {Link missing from include list}
    -
    738 // Pacific/Ponape {Link missing from include list}
    -
    739 // Pacific/Saipan {Link missing from include list}
    -
    740 // Pacific/Samoa {Link missing from include list}
    -
    741 // Pacific/Truk {Link missing from include list}
    -
    742 // Pacific/Wake {Link missing from include list}
    -
    743 // Pacific/Wallis {Link missing from include list}
    -
    744 // Pacific/Yap {Link missing from include list}
    -
    745 // Poland {Link missing from include list}
    -
    746 // Portugal {Link missing from include list}
    -
    747 // ROC {Link missing from include list}
    -
    748 // ROK {Link missing from include list}
    -
    749 // Singapore {Link missing from include list}
    -
    750 // Turkey {Link missing from include list}
    -
    751 // UCT {Link missing from include list}
    -
    752 // US/Alaska {Link missing from include list}
    -
    753 // US/Aleutian {Link missing from include list}
    -
    754 // US/Arizona {Link missing from include list}
    -
    755 // US/Central {Link missing from include list}
    -
    756 // US/East-Indiana {Link missing from include list}
    -
    757 // US/Eastern {Link missing from include list}
    -
    758 // US/Hawaii {Link missing from include list}
    -
    759 // US/Indiana-Starke {Link missing from include list}
    -
    760 // US/Michigan {Link missing from include list}
    -
    761 // US/Mountain {Link missing from include list}
    -
    762 // US/Samoa {Link missing from include list}
    -
    763 // UTC {Link missing from include list}
    -
    764 // Universal {Link missing from include list}
    -
    765 // W-SU {Link missing from include list}
    -
    766 // WET {Link missing from include list}
    -
    767 // Zulu {Link missing from include list}
    -
    768 
    -
    769 
    -
    770 //---------------------------------------------------------------------------
    -
    771 // Notable links: 0
    -
    772 //---------------------------------------------------------------------------
    -
    773 
    -
    774 
    -
    775 
    -
    776 }
    -
    777 }
    -
    778 
    -
    779 #endif
    -
    - - - - diff --git a/docs/html/testingzonedb_2zone__policies_8cpp_source.html b/docs/html/testingzonedb_2zone__policies_8cpp_source.html deleted file mode 100644 index e01492559..000000000 --- a/docs/html/testingzonedb_2zone__policies_8cpp_source.html +++ /dev/null @@ -1,671 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/zone_policies.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace testingzonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 12 (11 zones, 1 links)
    -
    32 // Unsupported Zones: 585 (329 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2007]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2009]
    -
    42 // Max Buffer Size: 6
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 12
    -
    46 // Eras: 15
    -
    47 // Policies: 8
    -
    48 // Rules: 32
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 288
    -
    53 // Policies: 24
    -
    54 // Eras: 165
    -
    55 // Zones: 143
    -
    56 // Links: 13
    -
    57 // Registry: 24
    -
    58 // Formats: 27
    -
    59 // Letters: 11
    -
    60 // Fragments: 0
    -
    61 // Names: 202 (original: 202)
    -
    62 // TOTAL: 913
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 384
    -
    67 // Policies: 64
    -
    68 // Eras: 240
    -
    69 // Zones: 264
    -
    70 // Links: 24
    -
    71 // Registry: 48
    -
    72 // Formats: 27
    -
    73 // Letters: 17
    -
    74 // Fragments: 0
    -
    75 // Names: 202 (original: 202)
    -
    76 // TOTAL: 1294
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #include <zoneinfo/compat.h>
    -
    81 #include "zone_policies.h"
    -
    82 
    -
    83 namespace ace_time {
    -
    84 namespace testingzonedb {
    -
    85 
    -
    86 //---------------------------------------------------------------------------
    -
    87 // Policies: 8
    -
    88 // Rules: 32
    -
    89 //---------------------------------------------------------------------------
    -
    90 
    -
    91 //---------------------------------------------------------------------------
    -
    92 // Policy name: Aus
    -
    93 // Rules: 1
    -
    94 //---------------------------------------------------------------------------
    -
    95 
    -
    96 static const basic::Info::ZoneRule kZoneRulesAus[] ACE_TIME_PROGMEM = {
    -
    97  // Anchor: Rule Aus 1943 1944 - Mar lastSun 2:00s 0 S
    -
    98  {
    -
    99  -127 /*fromYearTiny (-32767)*/,
    -
    100  -127 /*toYearTiny (-32767)*/,
    -
    101  1 /*inMonth*/,
    -
    102  0 /*onDayOfWeek*/,
    -
    103  1 /*onDayOfMonth*/,
    -
    104  0 /*atTimeCode*/,
    -
    105  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    106  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    107  2 /*letterIndex ("S")*/,
    -
    108  },
    -
    109 
    -
    110 };
    -
    111 
    -
    112 const basic::Info::ZonePolicy kZonePolicyAus ACE_TIME_PROGMEM = {
    -
    113  kZoneRulesAus /*rules*/,
    -
    114  1 /*numRules*/,
    -
    115 };
    -
    116 
    -
    117 //---------------------------------------------------------------------------
    -
    118 // Policy name: Canada
    -
    119 // Rules: 7
    -
    120 //---------------------------------------------------------------------------
    -
    121 
    -
    122 static const basic::Info::ZoneRule kZoneRulesCanada[] ACE_TIME_PROGMEM = {
    -
    123  // Anchor: Rule Canada 1945 only - Sep 30 2:00 0 S
    -
    124  {
    -
    125  -127 /*fromYearTiny (-32767)*/,
    -
    126  -127 /*toYearTiny (-32767)*/,
    -
    127  1 /*inMonth*/,
    -
    128  0 /*onDayOfWeek*/,
    -
    129  1 /*onDayOfMonth*/,
    -
    130  0 /*atTimeCode*/,
    -
    131  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    132  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    133  2 /*letterIndex ("S")*/,
    -
    134  },
    -
    135  // Rule Canada 1945 only - Sep 30 2:00 0 S
    -
    136  {
    -
    137  -127 /*fromYearTiny (1945)*/,
    -
    138  -127 /*toYearTiny (1945)*/,
    -
    139  9 /*inMonth*/,
    -
    140  0 /*onDayOfWeek*/,
    -
    141  30 /*onDayOfMonth*/,
    -
    142  8 /*atTimeCode*/,
    -
    143  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    144  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    145  2 /*letterIndex ("S")*/,
    -
    146  },
    -
    147  // Rule Canada 1974 1986 - Apr lastSun 2:00 1:00 D
    -
    148  {
    -
    149  -126 /*fromYearTiny (1974)*/,
    -
    150  -114 /*toYearTiny (1986)*/,
    -
    151  4 /*inMonth*/,
    -
    152  7 /*onDayOfWeek*/,
    -
    153  0 /*onDayOfMonth*/,
    -
    154  8 /*atTimeCode*/,
    -
    155  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    156  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    157  1 /*letterIndex ("D")*/,
    -
    158  },
    -
    159  // Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
    -
    160  {
    -
    161  -126 /*fromYearTiny (1974)*/,
    -
    162  -94 /*toYearTiny (2006)*/,
    -
    163  10 /*inMonth*/,
    -
    164  7 /*onDayOfWeek*/,
    -
    165  0 /*onDayOfMonth*/,
    -
    166  8 /*atTimeCode*/,
    -
    167  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    168  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    169  2 /*letterIndex ("S")*/,
    -
    170  },
    -
    171  // Rule Canada 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    172  {
    -
    173  -113 /*fromYearTiny (1987)*/,
    -
    174  -94 /*toYearTiny (2006)*/,
    -
    175  4 /*inMonth*/,
    -
    176  7 /*onDayOfWeek*/,
    -
    177  1 /*onDayOfMonth*/,
    -
    178  8 /*atTimeCode*/,
    -
    179  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    180  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    181  1 /*letterIndex ("D")*/,
    -
    182  },
    -
    183  // Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    184  {
    -
    185  -93 /*fromYearTiny (2007)*/,
    -
    186  126 /*toYearTiny (32766)*/,
    -
    187  3 /*inMonth*/,
    -
    188  7 /*onDayOfWeek*/,
    -
    189  8 /*onDayOfMonth*/,
    -
    190  8 /*atTimeCode*/,
    -
    191  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    192  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    193  1 /*letterIndex ("D")*/,
    -
    194  },
    -
    195  // Rule Canada 2007 max - Nov Sun>=1 2:00 0 S
    -
    196  {
    -
    197  -93 /*fromYearTiny (2007)*/,
    -
    198  126 /*toYearTiny (32766)*/,
    -
    199  11 /*inMonth*/,
    -
    200  7 /*onDayOfWeek*/,
    -
    201  1 /*onDayOfMonth*/,
    -
    202  8 /*atTimeCode*/,
    -
    203  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    204  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    205  2 /*letterIndex ("S")*/,
    -
    206  },
    -
    207 
    -
    208 };
    -
    209 
    -
    210 const basic::Info::ZonePolicy kZonePolicyCanada ACE_TIME_PROGMEM = {
    -
    211  kZoneRulesCanada /*rules*/,
    -
    212  7 /*numRules*/,
    -
    213 };
    -
    214 
    -
    215 //---------------------------------------------------------------------------
    -
    216 // Policy name: Ecuador
    -
    217 // Rules: 3
    -
    218 //---------------------------------------------------------------------------
    -
    219 
    -
    220 static const basic::Info::ZoneRule kZoneRulesEcuador[] ACE_TIME_PROGMEM = {
    -
    221  // Anchor: Rule Ecuador 1993 only - Feb 5 0:00 0 -
    -
    222  {
    -
    223  -127 /*fromYearTiny (-32767)*/,
    -
    224  -127 /*toYearTiny (-32767)*/,
    -
    225  1 /*inMonth*/,
    -
    226  0 /*onDayOfWeek*/,
    -
    227  1 /*onDayOfMonth*/,
    -
    228  0 /*atTimeCode*/,
    -
    229  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    230  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    231  0 /*letterIndex ("")*/,
    -
    232  },
    -
    233  // Rule Ecuador 1992 only - Nov 28 0:00 1:00 -
    -
    234  {
    -
    235  -108 /*fromYearTiny (1992)*/,
    -
    236  -108 /*toYearTiny (1992)*/,
    -
    237  11 /*inMonth*/,
    -
    238  0 /*onDayOfWeek*/,
    -
    239  28 /*onDayOfMonth*/,
    -
    240  0 /*atTimeCode*/,
    -
    241  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    242  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    243  0 /*letterIndex ("")*/,
    -
    244  },
    -
    245  // Rule Ecuador 1993 only - Feb 5 0:00 0 -
    -
    246  {
    -
    247  -107 /*fromYearTiny (1993)*/,
    -
    248  -107 /*toYearTiny (1993)*/,
    -
    249  2 /*inMonth*/,
    -
    250  0 /*onDayOfWeek*/,
    -
    251  5 /*onDayOfMonth*/,
    -
    252  0 /*atTimeCode*/,
    -
    253  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    254  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    255  0 /*letterIndex ("")*/,
    -
    256  },
    -
    257 
    -
    258 };
    -
    259 
    -
    260 const basic::Info::ZonePolicy kZonePolicyEcuador ACE_TIME_PROGMEM = {
    -
    261  kZoneRulesEcuador /*rules*/,
    -
    262  3 /*numRules*/,
    -
    263 };
    -
    264 
    -
    265 //---------------------------------------------------------------------------
    -
    266 // Policy name: Edm
    -
    267 // Rules: 4
    -
    268 //---------------------------------------------------------------------------
    -
    269 
    -
    270 static const basic::Info::ZoneRule kZoneRulesEdm[] ACE_TIME_PROGMEM = {
    -
    271  // Anchor: Rule Edm 1947 only - Sep lastSun 2:00 0 S
    -
    272  {
    -
    273  -127 /*fromYearTiny (-32767)*/,
    -
    274  -127 /*toYearTiny (-32767)*/,
    -
    275  1 /*inMonth*/,
    -
    276  0 /*onDayOfWeek*/,
    -
    277  1 /*onDayOfMonth*/,
    -
    278  0 /*atTimeCode*/,
    -
    279  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    280  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    281  2 /*letterIndex ("S")*/,
    -
    282  },
    -
    283  // Rule Edm 1947 only - Sep lastSun 2:00 0 S
    -
    284  {
    -
    285  -127 /*fromYearTiny (1947)*/,
    -
    286  -127 /*toYearTiny (1947)*/,
    -
    287  9 /*inMonth*/,
    -
    288  7 /*onDayOfWeek*/,
    -
    289  0 /*onDayOfMonth*/,
    -
    290  8 /*atTimeCode*/,
    -
    291  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    292  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    293  2 /*letterIndex ("S")*/,
    -
    294  },
    -
    295  // Rule Edm 1972 1986 - Apr lastSun 2:00 1:00 D
    -
    296  {
    -
    297  -127 /*fromYearTiny (1972)*/,
    -
    298  -114 /*toYearTiny (1986)*/,
    -
    299  4 /*inMonth*/,
    -
    300  7 /*onDayOfWeek*/,
    -
    301  0 /*onDayOfMonth*/,
    -
    302  8 /*atTimeCode*/,
    -
    303  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    304  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    305  1 /*letterIndex ("D")*/,
    -
    306  },
    -
    307  // Rule Edm 1972 2006 - Oct lastSun 2:00 0 S
    -
    308  {
    -
    309  -127 /*fromYearTiny (1972)*/,
    -
    310  -94 /*toYearTiny (2006)*/,
    -
    311  10 /*inMonth*/,
    -
    312  7 /*onDayOfWeek*/,
    -
    313  0 /*onDayOfMonth*/,
    -
    314  8 /*atTimeCode*/,
    -
    315  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    316  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    317  2 /*letterIndex ("S")*/,
    -
    318  },
    -
    319 
    -
    320 };
    -
    321 
    -
    322 const basic::Info::ZonePolicy kZonePolicyEdm ACE_TIME_PROGMEM = {
    -
    323  kZoneRulesEdm /*rules*/,
    -
    324  4 /*numRules*/,
    -
    325 };
    -
    326 
    -
    327 //---------------------------------------------------------------------------
    -
    328 // Policy name: SA
    -
    329 // Rules: 1
    -
    330 //---------------------------------------------------------------------------
    -
    331 
    -
    332 static const basic::Info::ZoneRule kZoneRulesSA[] ACE_TIME_PROGMEM = {
    -
    333  // Anchor: Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
    -
    334  {
    -
    335  -127 /*fromYearTiny (-32767)*/,
    -
    336  -127 /*toYearTiny (-32767)*/,
    -
    337  1 /*inMonth*/,
    -
    338  0 /*onDayOfWeek*/,
    -
    339  1 /*onDayOfMonth*/,
    -
    340  0 /*atTimeCode*/,
    -
    341  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    342  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    343  0 /*letterIndex ("")*/,
    -
    344  },
    -
    345 
    -
    346 };
    -
    347 
    -
    348 const basic::Info::ZonePolicy kZonePolicySA ACE_TIME_PROGMEM = {
    -
    349  kZoneRulesSA /*rules*/,
    -
    350  1 /*numRules*/,
    -
    351 };
    -
    352 
    -
    353 //---------------------------------------------------------------------------
    -
    354 // Policy name: US
    -
    355 // Rules: 7
    -
    356 //---------------------------------------------------------------------------
    -
    357 
    -
    358 static const basic::Info::ZoneRule kZoneRulesUS[] ACE_TIME_PROGMEM = {
    -
    359  // Anchor: Rule US 1967 2006 - Oct lastSun 2:00 0 S
    -
    360  {
    -
    361  -127 /*fromYearTiny (-32767)*/,
    -
    362  -127 /*toYearTiny (-32767)*/,
    -
    363  1 /*inMonth*/,
    -
    364  0 /*onDayOfWeek*/,
    -
    365  1 /*onDayOfMonth*/,
    -
    366  0 /*atTimeCode*/,
    -
    367  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    368  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    369  2 /*letterIndex ("S")*/,
    -
    370  },
    -
    371  // Rule US 1967 2006 - Oct lastSun 2:00 0 S
    -
    372  {
    -
    373  -127 /*fromYearTiny (1967)*/,
    -
    374  -94 /*toYearTiny (2006)*/,
    -
    375  10 /*inMonth*/,
    -
    376  7 /*onDayOfWeek*/,
    -
    377  0 /*onDayOfMonth*/,
    -
    378  8 /*atTimeCode*/,
    -
    379  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    380  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    381  2 /*letterIndex ("S")*/,
    -
    382  },
    -
    383  // Rule US 1975 only - Feb lastSun 2:00 1:00 D
    -
    384  {
    -
    385  -125 /*fromYearTiny (1975)*/,
    -
    386  -125 /*toYearTiny (1975)*/,
    -
    387  2 /*inMonth*/,
    -
    388  7 /*onDayOfWeek*/,
    -
    389  0 /*onDayOfMonth*/,
    -
    390  8 /*atTimeCode*/,
    -
    391  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    392  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    393  1 /*letterIndex ("D")*/,
    -
    394  },
    -
    395  // Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
    -
    396  {
    -
    397  -124 /*fromYearTiny (1976)*/,
    -
    398  -114 /*toYearTiny (1986)*/,
    -
    399  4 /*inMonth*/,
    -
    400  7 /*onDayOfWeek*/,
    -
    401  0 /*onDayOfMonth*/,
    -
    402  8 /*atTimeCode*/,
    -
    403  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    404  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    405  1 /*letterIndex ("D")*/,
    -
    406  },
    -
    407  // Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    408  {
    -
    409  -113 /*fromYearTiny (1987)*/,
    -
    410  -94 /*toYearTiny (2006)*/,
    -
    411  4 /*inMonth*/,
    -
    412  7 /*onDayOfWeek*/,
    -
    413  1 /*onDayOfMonth*/,
    -
    414  8 /*atTimeCode*/,
    -
    415  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    416  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    417  1 /*letterIndex ("D")*/,
    -
    418  },
    -
    419  // Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    420  {
    -
    421  -93 /*fromYearTiny (2007)*/,
    -
    422  126 /*toYearTiny (32766)*/,
    -
    423  3 /*inMonth*/,
    -
    424  7 /*onDayOfWeek*/,
    -
    425  8 /*onDayOfMonth*/,
    -
    426  8 /*atTimeCode*/,
    -
    427  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    428  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    429  1 /*letterIndex ("D")*/,
    -
    430  },
    -
    431  // Rule US 2007 max - Nov Sun>=1 2:00 0 S
    -
    432  {
    -
    433  -93 /*fromYearTiny (2007)*/,
    -
    434  126 /*toYearTiny (32766)*/,
    -
    435  11 /*inMonth*/,
    -
    436  7 /*onDayOfWeek*/,
    -
    437  1 /*onDayOfMonth*/,
    -
    438  8 /*atTimeCode*/,
    -
    439  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    440  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    441  2 /*letterIndex ("S")*/,
    -
    442  },
    -
    443 
    -
    444 };
    -
    445 
    -
    446 const basic::Info::ZonePolicy kZonePolicyUS ACE_TIME_PROGMEM = {
    -
    447  kZoneRulesUS /*rules*/,
    -
    448  7 /*numRules*/,
    -
    449 };
    -
    450 
    -
    451 //---------------------------------------------------------------------------
    -
    452 // Policy name: Vanc
    -
    453 // Rules: 4
    -
    454 //---------------------------------------------------------------------------
    -
    455 
    -
    456 static const basic::Info::ZoneRule kZoneRulesVanc[] ACE_TIME_PROGMEM = {
    -
    457  // Anchor: Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S
    -
    458  {
    -
    459  -127 /*fromYearTiny (-32767)*/,
    -
    460  -127 /*toYearTiny (-32767)*/,
    -
    461  1 /*inMonth*/,
    -
    462  0 /*onDayOfWeek*/,
    -
    463  1 /*onDayOfMonth*/,
    -
    464  0 /*atTimeCode*/,
    -
    465  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    466  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    467  2 /*letterIndex ("S")*/,
    -
    468  },
    -
    469  // Rule Vanc 1946 1986 - Apr lastSun 2:00 1:00 D
    -
    470  {
    -
    471  -127 /*fromYearTiny (1946)*/,
    -
    472  -114 /*toYearTiny (1986)*/,
    -
    473  4 /*inMonth*/,
    -
    474  7 /*onDayOfWeek*/,
    -
    475  0 /*onDayOfMonth*/,
    -
    476  8 /*atTimeCode*/,
    -
    477  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    478  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    479  1 /*letterIndex ("D")*/,
    -
    480  },
    -
    481  // Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S
    -
    482  {
    -
    483  -127 /*fromYearTiny (1947)*/,
    -
    484  -127 /*toYearTiny (1961)*/,
    -
    485  9 /*inMonth*/,
    -
    486  7 /*onDayOfWeek*/,
    -
    487  0 /*onDayOfMonth*/,
    -
    488  8 /*atTimeCode*/,
    -
    489  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    490  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    491  2 /*letterIndex ("S")*/,
    -
    492  },
    -
    493  // Rule Vanc 1962 2006 - Oct lastSun 2:00 0 S
    -
    494  {
    -
    495  -127 /*fromYearTiny (1962)*/,
    -
    496  -94 /*toYearTiny (2006)*/,
    -
    497  10 /*inMonth*/,
    -
    498  7 /*onDayOfWeek*/,
    -
    499  0 /*onDayOfMonth*/,
    -
    500  8 /*atTimeCode*/,
    -
    501  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    502  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    503  2 /*letterIndex ("S")*/,
    -
    504  },
    -
    505 
    -
    506 };
    -
    507 
    -
    508 const basic::Info::ZonePolicy kZonePolicyVanc ACE_TIME_PROGMEM = {
    -
    509  kZoneRulesVanc /*rules*/,
    -
    510  4 /*numRules*/,
    -
    511 };
    -
    512 
    -
    513 //---------------------------------------------------------------------------
    -
    514 // Policy name: Winn
    -
    515 // Rules: 5
    -
    516 //---------------------------------------------------------------------------
    -
    517 
    -
    518 static const basic::Info::ZoneRule kZoneRulesWinn[] ACE_TIME_PROGMEM = {
    -
    519  // Anchor: Rule Winn 1963 only - Sep 22 2:00 0 S
    -
    520  {
    -
    521  -127 /*fromYearTiny (-32767)*/,
    -
    522  -127 /*toYearTiny (-32767)*/,
    -
    523  1 /*inMonth*/,
    -
    524  0 /*onDayOfWeek*/,
    -
    525  1 /*onDayOfMonth*/,
    -
    526  0 /*atTimeCode*/,
    -
    527  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    528  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    529  2 /*letterIndex ("S")*/,
    -
    530  },
    -
    531  // Rule Winn 1963 only - Sep 22 2:00 0 S
    -
    532  {
    -
    533  -127 /*fromYearTiny (1963)*/,
    -
    534  -127 /*toYearTiny (1963)*/,
    -
    535  9 /*inMonth*/,
    -
    536  0 /*onDayOfWeek*/,
    -
    537  22 /*onDayOfMonth*/,
    -
    538  8 /*atTimeCode*/,
    -
    539  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    540  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    541  2 /*letterIndex ("S")*/,
    -
    542  },
    -
    543  // Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D
    -
    544  {
    -
    545  -127 /*fromYearTiny (1966)*/,
    -
    546  -114 /*toYearTiny (1986)*/,
    -
    547  4 /*inMonth*/,
    -
    548  7 /*onDayOfWeek*/,
    -
    549  0 /*onDayOfMonth*/,
    -
    550  8 /*atTimeCode*/,
    -
    551  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    552  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    553  1 /*letterIndex ("D")*/,
    -
    554  },
    -
    555  // Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
    -
    556  {
    -
    557  -127 /*fromYearTiny (1966)*/,
    -
    558  -95 /*toYearTiny (2005)*/,
    -
    559  10 /*inMonth*/,
    -
    560  7 /*onDayOfWeek*/,
    -
    561  0 /*onDayOfMonth*/,
    -
    562  8 /*atTimeCode*/,
    -
    563  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    564  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    565  2 /*letterIndex ("S")*/,
    -
    566  },
    -
    567  // Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D
    -
    568  {
    -
    569  -113 /*fromYearTiny (1987)*/,
    -
    570  -95 /*toYearTiny (2005)*/,
    -
    571  4 /*inMonth*/,
    -
    572  7 /*onDayOfWeek*/,
    -
    573  1 /*onDayOfMonth*/,
    -
    574  8 /*atTimeCode*/,
    -
    575  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    576  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    577  1 /*letterIndex ("D")*/,
    -
    578  },
    -
    579 
    -
    580 };
    -
    581 
    -
    582 const basic::Info::ZonePolicy kZonePolicyWinn ACE_TIME_PROGMEM = {
    -
    583  kZoneRulesWinn /*rules*/,
    -
    584  5 /*numRules*/,
    -
    585 };
    -
    586 
    -
    587 
    -
    588 
    -
    589 }
    -
    590 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/testingzonedb_2zone__policies_8h_source.html b/docs/html/testingzonedb_2zone__policies_8h_source.html deleted file mode 100644 index dadb2d7da..000000000 --- a/docs/html/testingzonedb_2zone__policies_8h_source.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/zone_policies.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace testingzonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 12 (11 zones, 1 links)
    -
    32 // Unsupported Zones: 585 (329 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2007]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2009]
    -
    42 // Max Buffer Size: 6
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 12
    -
    46 // Eras: 15
    -
    47 // Policies: 8
    -
    48 // Rules: 32
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 288
    -
    53 // Policies: 24
    -
    54 // Eras: 165
    -
    55 // Zones: 143
    -
    56 // Links: 13
    -
    57 // Registry: 24
    -
    58 // Formats: 27
    -
    59 // Letters: 11
    -
    60 // Fragments: 0
    -
    61 // Names: 202 (original: 202)
    -
    62 // TOTAL: 913
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 384
    -
    67 // Policies: 64
    -
    68 // Eras: 240
    -
    69 // Zones: 264
    -
    70 // Links: 24
    -
    71 // Registry: 48
    -
    72 // Formats: 27
    -
    73 // Letters: 17
    -
    74 // Fragments: 0
    -
    75 // Names: 202 (original: 202)
    -
    76 // TOTAL: 1294
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #ifndef ACE_TIME_TESTINGZONEDB_ZONE_POLICIES_H
    -
    81 #define ACE_TIME_TESTINGZONEDB_ZONE_POLICIES_H
    -
    82 
    -
    83 #include <zoneinfo/infos.h>
    -
    84 
    -
    85 namespace ace_time {
    -
    86 namespace testingzonedb {
    -
    87 
    -
    88 //---------------------------------------------------------------------------
    -
    89 // Supported policies: 8
    -
    90 //---------------------------------------------------------------------------
    -
    91 
    -
    92 extern const basic::Info::ZonePolicy kZonePolicyAus;
    -
    93 extern const basic::Info::ZonePolicy kZonePolicyCanada;
    -
    94 extern const basic::Info::ZonePolicy kZonePolicyEcuador;
    -
    95 extern const basic::Info::ZonePolicy kZonePolicyEdm;
    -
    96 extern const basic::Info::ZonePolicy kZonePolicySA;
    -
    97 extern const basic::Info::ZonePolicy kZonePolicyUS;
    -
    98 extern const basic::Info::ZonePolicy kZonePolicyVanc;
    -
    99 extern const basic::Info::ZonePolicy kZonePolicyWinn;
    -
    100 
    -
    101 
    -
    102 //---------------------------------------------------------------------------
    -
    103 // Unsupported policies: 126
    -
    104 //---------------------------------------------------------------------------
    -
    105 
    -
    106 // AN {unused}
    -
    107 // AQ {unused}
    -
    108 // AS {unused}
    -
    109 // AT {unused}
    -
    110 // AV {unused}
    -
    111 // AW {unused}
    -
    112 // Albania {unused}
    -
    113 // Algeria {unused}
    -
    114 // Arg {unused}
    -
    115 // Armenia {unused}
    -
    116 // Austria {unused}
    -
    117 // Azer {unused}
    -
    118 // Barb {unused}
    -
    119 // Belgium {unused}
    -
    120 // Belize {unused}
    -
    121 // Bermuda {unused}
    -
    122 // Brazil {unused}
    -
    123 // Bulg {unused}
    -
    124 // C-Eur {unused}
    -
    125 // CA {unused}
    -
    126 // CO {unused}
    -
    127 // CR {unused}
    -
    128 // Chatham {unused}
    -
    129 // Chicago {unused}
    -
    130 // Chile {unused}
    -
    131 // Cook {unused}
    -
    132 // Cuba {unused}
    -
    133 // Cyprus {unused}
    -
    134 // Czech {unused}
    -
    135 // DR {unused}
    -
    136 // Denver {unused}
    -
    137 // Detroit {unused}
    -
    138 // Dhaka {unused}
    -
    139 // E-Eur {unused}
    -
    140 // E-EurAsia {unused}
    -
    141 // EU {unused}
    -
    142 // EUAsia {unused}
    -
    143 // Egypt {unused}
    -
    144 // EgyptAsia {unused}
    -
    145 // Eire {unused}
    -
    146 // Falk {unused}
    -
    147 // Fiji {unused}
    -
    148 // Finland {unused}
    -
    149 // France {unused}
    -
    150 // GB-Eire {unused}
    -
    151 // Germany {unused}
    -
    152 // Greece {unused}
    -
    153 // Guam {unused}
    -
    154 // Guat {unused}
    -
    155 // HK {unused}
    -
    156 // Haiti {unused}
    -
    157 // Halifax {unused}
    -
    158 // Holiday {unused}
    -
    159 // Hond {unused}
    -
    160 // Hungary {unused}
    -
    161 // Indianapolis {unused}
    -
    162 // Iran {unused}
    -
    163 // Iraq {unused}
    -
    164 // Italy {unused}
    -
    165 // Japan {unused}
    -
    166 // Jordan {unused}
    -
    167 // Kyrgyz {unused}
    -
    168 // LH {unused}
    -
    169 // Latvia {unused}
    -
    170 // Lebanon {unused}
    -
    171 // Libya {unused}
    -
    172 // Louisville {unused}
    -
    173 // Macau {unused}
    -
    174 // Malta {unused}
    -
    175 // Marengo {unused}
    -
    176 // Mauritius {unused}
    -
    177 // Menominee {unused}
    -
    178 // Mexico {unused}
    -
    179 // Moldova {unused}
    -
    180 // Moncton {unused}
    -
    181 // Mongol {unused}
    -
    182 // Morocco {unused}
    -
    183 // NBorneo {unused}
    -
    184 // NC {unused}
    -
    185 // NT_YK {unused}
    -
    186 // NYC {unused}
    -
    187 // NZ {unused}
    -
    188 // Namibia {unused}
    -
    189 // Nic {unused}
    -
    190 // PRC {unused}
    -
    191 // Pakistan {unused}
    -
    192 // Palestine {unused}
    -
    193 // Para {unused}
    -
    194 // Perry {unused}
    -
    195 // Peru {unused}
    -
    196 // Phil {unused}
    -
    197 // Pike {unused}
    -
    198 // Poland {unused}
    -
    199 // Port {unused}
    -
    200 // Pulaski {unused}
    -
    201 // ROK {unused}
    -
    202 // Regina {unused}
    -
    203 // Romania {unused}
    -
    204 // Russia {unused}
    -
    205 // RussiaAsia {unused}
    -
    206 // Salv {unused}
    -
    207 // SanLuis {unused}
    -
    208 // Shang {unused}
    -
    209 // SovietZone {unused}
    -
    210 // Spain {unused}
    -
    211 // SpainAfrica {unused}
    -
    212 // StJohns {unused}
    -
    213 // Starke {unused}
    -
    214 // Sudan {unused}
    -
    215 // Swift {unused}
    -
    216 // Swiss {unused}
    -
    217 // Syria {unused}
    -
    218 // Taiwan {unused}
    -
    219 // Thule {unused}
    -
    220 // Tonga {unused}
    -
    221 // Toronto {unused}
    -
    222 // Troll {unused}
    -
    223 // Tunisia {unused}
    -
    224 // Turkey {unused}
    -
    225 // Uruguay {unused}
    -
    226 // Vanuatu {unused}
    -
    227 // Vincennes {unused}
    -
    228 // W-Eur {unused}
    -
    229 // WS {unused}
    -
    230 // Yukon {unused}
    -
    231 // Zion {unused}
    -
    232 
    -
    233 
    -
    234 //---------------------------------------------------------------------------
    -
    235 // Notable zone policies: 0
    -
    236 //---------------------------------------------------------------------------
    -
    237 
    -
    238 
    -
    239 
    -
    240 }
    -
    241 }
    -
    242 
    -
    243 #endif
    -
    - - - - diff --git a/docs/html/testingzonedb_2zone__registry_8cpp_source.html b/docs/html/testingzonedb_2zone__registry_8cpp_source.html deleted file mode 100644 index 87423a01d..000000000 --- a/docs/html/testingzonedb_2zone__registry_8cpp_source.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/zone_registry.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace testingzonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 12 (11 zones, 1 links)
    -
    32 // Unsupported Zones: 585 (329 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2007]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2009]
    -
    42 // Max Buffer Size: 6
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 12
    -
    46 // Eras: 15
    -
    47 // Policies: 8
    -
    48 // Rules: 32
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 288
    -
    53 // Policies: 24
    -
    54 // Eras: 165
    -
    55 // Zones: 143
    -
    56 // Links: 13
    -
    57 // Registry: 24
    -
    58 // Formats: 27
    -
    59 // Letters: 11
    -
    60 // Fragments: 0
    -
    61 // Names: 202 (original: 202)
    -
    62 // TOTAL: 913
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 384
    -
    67 // Policies: 64
    -
    68 // Eras: 240
    -
    69 // Zones: 264
    -
    70 // Links: 24
    -
    71 // Registry: 48
    -
    72 // Formats: 27
    -
    73 // Letters: 17
    -
    74 // Fragments: 0
    -
    75 // Names: 202 (original: 202)
    -
    76 // TOTAL: 1294
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #include <zoneinfo/compat.h>
    -
    81 #include "zone_infos.h"
    -
    82 #include "zone_registry.h"
    -
    83 
    -
    84 namespace ace_time {
    -
    85 namespace testingzonedb {
    -
    86 
    -
    87 //---------------------------------------------------------------------------
    -
    88 // Zone Info registry. Sorted by zoneId.
    -
    89 //---------------------------------------------------------------------------
    -
    90 const basic::Info::ZoneInfo* const kZoneRegistry[11] ACE_TIME_PROGMEM = {
    -
    91  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    92  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    93  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    94  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    95  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    96  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    97  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    98  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    99  &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos
    -
    100  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    101  &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg
    -
    102 
    -
    103 };
    -
    104 
    -
    105 //---------------------------------------------------------------------------
    -
    106 // Zone and Link (fat) Info registry. Sorted by zoneId. Links act like Zones.
    -
    107 //---------------------------------------------------------------------------
    -
    108 const basic::Info::ZoneInfo* const kZoneAndLinkRegistry[12] ACE_TIME_PROGMEM = {
    -
    109  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    110  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    111  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    112  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    113  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    114  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    115  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    116  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    117  &kZoneUS_Pacific, // 0xa950f6ab, US/Pacific -> America/Los_Angeles
    -
    118  &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos
    -
    119  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    120  &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg
    -
    121 
    -
    122 };
    -
    123 
    -
    124 }
    -
    125 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/testingzonedb_2zone__registry_8h_source.html b/docs/html/testingzonedb_2zone__registry_8h_source.html deleted file mode 100644 index ad0276f9d..000000000 --- a/docs/html/testingzonedb_2zone__registry_8h_source.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/zone_registry.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace testingzonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 12 (11 zones, 1 links)
    -
    32 // Unsupported Zones: 585 (329 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2007]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2009]
    -
    42 // Max Buffer Size: 6
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 12
    -
    46 // Eras: 15
    -
    47 // Policies: 8
    -
    48 // Rules: 32
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 288
    -
    53 // Policies: 24
    -
    54 // Eras: 165
    -
    55 // Zones: 143
    -
    56 // Links: 13
    -
    57 // Registry: 24
    -
    58 // Formats: 27
    -
    59 // Letters: 11
    -
    60 // Fragments: 0
    -
    61 // Names: 202 (original: 202)
    -
    62 // TOTAL: 913
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 384
    -
    67 // Policies: 64
    -
    68 // Eras: 240
    -
    69 // Zones: 264
    -
    70 // Links: 24
    -
    71 // Registry: 48
    -
    72 // Formats: 27
    -
    73 // Letters: 17
    -
    74 // Fragments: 0
    -
    75 // Names: 202 (original: 202)
    -
    76 // TOTAL: 1294
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #ifndef ACE_TIME_TESTINGZONEDB_ZONE_REGISTRY_H
    -
    81 #define ACE_TIME_TESTINGZONEDB_ZONE_REGISTRY_H
    -
    82 
    -
    83 #include <zoneinfo/infos.h>
    -
    84 
    -
    85 namespace ace_time {
    -
    86 namespace testingzonedb {
    -
    87 
    -
    88 // Zones
    -
    89 const uint16_t kZoneRegistrySize = 11;
    -
    90 extern const basic::Info::ZoneInfo* const kZoneRegistry[11];
    -
    91 
    -
    92 // Zones and Links
    -
    93 const uint16_t kZoneAndLinkRegistrySize = 12;
    -
    94 extern const basic::Info::ZoneInfo* const kZoneAndLinkRegistry[12];
    -
    95 
    -
    96 }
    -
    97 }
    -
    98 #endif
    -
    - - - - diff --git a/docs/html/testingzonedbc_2zone__infos_8cpp_source.html b/docs/html/testingzonedbc_2zone__infos_8cpp_source.html deleted file mode 100644 index 55ff365fb..000000000 --- a/docs/html/testingzonedbc_2zone__infos_8cpp_source.html +++ /dev/null @@ -1,929 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/zone_infos.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace testingzonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 2640
    -
    53 // Policies: 33
    -
    54 // Eras: 450
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 3709
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 600
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4140
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #include <zoneinfo/compat.h>
    -
    81 #include "zone_policies.h"
    -
    82 #include "zone_infos.h"
    -
    83 
    -
    84 namespace ace_time {
    -
    85 namespace testingzonedbc {
    -
    86 
    -
    87 //---------------------------------------------------------------------------
    -
    88 // ZoneContext
    -
    89 //---------------------------------------------------------------------------
    -
    90 
    -
    91 static const char kVersionString[] ACE_TIME_PROGMEM = "2025b";
    -
    92 const __FlashStringHelper* const kTzDatabaseVersion =
    -
    93  (const __FlashStringHelper*) kVersionString;
    -
    94 
    -
    95 
    -
    96 const char* const kFragments[] ACE_TIME_PROGMEM = {
    -
    97  nullptr, // '\x00' cannot exist
    -
    98 
    -
    99 };
    -
    100 
    -
    101 static const char kLetter0[] ACE_TIME_PROGMEM = "";
    -
    102 static const char kLetter1[] ACE_TIME_PROGMEM = "CAT";
    -
    103 static const char kLetter2[] ACE_TIME_PROGMEM = "D";
    -
    104 static const char kLetter3[] ACE_TIME_PROGMEM = "S";
    -
    105 static const char kLetter4[] ACE_TIME_PROGMEM = "WAT";
    -
    106 
    -
    107 const char* const kLetters[] ACE_TIME_PROGMEM = {
    -
    108  kLetter0, // ""
    -
    109  kLetter1, // "CAT"
    -
    110  kLetter2, // "D"
    -
    111  kLetter3, // "S"
    -
    112  kLetter4, // "WAT"
    -
    113 
    -
    114 };
    -
    115 
    -
    116 const complete::Info::ZoneContext kZoneContext ACE_TIME_PROGMEM = {
    -
    117  1980 /*startYear*/,
    -
    118  2200 /*untilYear*/,
    -
    119  1980 /*startYearAccurate*/,
    -
    120  32767 /*untilYearAccurate*/,
    -
    121  2100 /*baseYear*/,
    -
    122  7 /*maxTransitions*/,
    -
    123  kVersionString /*tzVersion*/,
    -
    124  1 /*numFragments*/,
    -
    125  5 /*numLetters*/,
    -
    126  kFragments /*fragments*/,
    -
    127  kLetters /*letters*/,
    -
    128 };
    -
    129 
    -
    130 //---------------------------------------------------------------------------
    -
    131 // Zones: 15
    -
    132 // Eras: 30
    -
    133 //---------------------------------------------------------------------------
    -
    134 
    -
    135 //---------------------------------------------------------------------------
    -
    136 // Zone name: Africa/Casablanca
    -
    137 // Eras: 4
    -
    138 //---------------------------------------------------------------------------
    -
    139 
    -
    140 static const complete::Info::ZoneEra kZoneEraAfrica_Casablanca[] ACE_TIME_PROGMEM = {
    -
    141  // 0:00 Morocco %z 1984 Mar 16
    -
    142  {
    -
    143  &kZonePolicyMorocco /*zonePolicy*/,
    -
    144  "" /*format*/,
    -
    145  0 /*offsetCode (0/15)*/,
    -
    146  0 /*offsetRemainder (0%15)*/,
    -
    147  0 /*deltaMinutes*/,
    -
    148  1984 /*untilYear*/,
    -
    149  3 /*untilMonth*/,
    -
    150  16 /*untilDay*/,
    -
    151  0 /*untilTimeCode (0/15)*/,
    -
    152  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    153  },
    -
    154  // 1:00 - %z 1986
    -
    155  {
    -
    156  nullptr /*zonePolicy*/,
    -
    157  "" /*format*/,
    -
    158  240 /*offsetCode (3600/15)*/,
    -
    159  0 /*offsetRemainder (3600%15)*/,
    -
    160  0 /*deltaMinutes*/,
    -
    161  1986 /*untilYear*/,
    -
    162  1 /*untilMonth*/,
    -
    163  1 /*untilDay*/,
    -
    164  0 /*untilTimeCode (0/15)*/,
    -
    165  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    166  },
    -
    167  // 0:00 Morocco %z 2018 Oct 28 3:00
    -
    168  {
    -
    169  &kZonePolicyMorocco /*zonePolicy*/,
    -
    170  "" /*format*/,
    -
    171  0 /*offsetCode (0/15)*/,
    -
    172  0 /*offsetRemainder (0%15)*/,
    -
    173  0 /*deltaMinutes*/,
    -
    174  2018 /*untilYear*/,
    -
    175  10 /*untilMonth*/,
    -
    176  28 /*untilDay*/,
    -
    177  720 /*untilTimeCode (10800/15)*/,
    -
    178  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    179  },
    -
    180  // 1:00 Morocco %z
    -
    181  {
    -
    182  &kZonePolicyMorocco /*zonePolicy*/,
    -
    183  "" /*format*/,
    -
    184  240 /*offsetCode (3600/15)*/,
    -
    185  0 /*offsetRemainder (3600%15)*/,
    -
    186  0 /*deltaMinutes*/,
    -
    187  32767 /*untilYear*/,
    -
    188  1 /*untilMonth*/,
    -
    189  1 /*untilDay*/,
    -
    190  0 /*untilTimeCode (0/15)*/,
    -
    191  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    192  },
    -
    193 
    -
    194 };
    -
    195 
    -
    196 static const char kZoneNameAfrica_Casablanca[] ACE_TIME_PROGMEM = "Africa/Casablanca";
    -
    197 
    -
    198 const complete::Info::ZoneInfo kZoneAfrica_Casablanca ACE_TIME_PROGMEM = {
    -
    199  kZoneNameAfrica_Casablanca /*name*/,
    -
    200  0xc59f1b33 /*zoneId*/,
    -
    201  &kZoneContext /*zoneContext*/,
    -
    202  4 /*numEras*/,
    -
    203  kZoneEraAfrica_Casablanca /*eras*/,
    -
    204  nullptr /*targetInfo*/,
    -
    205 };
    -
    206 
    -
    207 //---------------------------------------------------------------------------
    -
    208 // Zone name: Africa/Windhoek
    -
    209 // Eras: 2
    -
    210 //---------------------------------------------------------------------------
    -
    211 
    -
    212 static const complete::Info::ZoneEra kZoneEraAfrica_Windhoek[] ACE_TIME_PROGMEM = {
    -
    213  // 2:00 - SAST 1990 Mar 21
    -
    214  {
    -
    215  nullptr /*zonePolicy*/,
    -
    216  "SAST" /*format*/,
    -
    217  480 /*offsetCode (7200/15)*/,
    -
    218  0 /*offsetRemainder (7200%15)*/,
    -
    219  0 /*deltaMinutes*/,
    -
    220  1990 /*untilYear*/,
    -
    221  3 /*untilMonth*/,
    -
    222  21 /*untilDay*/,
    -
    223  0 /*untilTimeCode (0/15)*/,
    -
    224  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    225  },
    -
    226  // 2:00 Namibia %s
    -
    227  {
    -
    228  &kZonePolicyNamibia /*zonePolicy*/,
    -
    229  "%" /*format*/,
    -
    230  480 /*offsetCode (7200/15)*/,
    -
    231  0 /*offsetRemainder (7200%15)*/,
    -
    232  0 /*deltaMinutes*/,
    -
    233  32767 /*untilYear*/,
    -
    234  1 /*untilMonth*/,
    -
    235  1 /*untilDay*/,
    -
    236  0 /*untilTimeCode (0/15)*/,
    -
    237  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    238  },
    -
    239 
    -
    240 };
    -
    241 
    -
    242 static const char kZoneNameAfrica_Windhoek[] ACE_TIME_PROGMEM = "Africa/Windhoek";
    -
    243 
    -
    244 const complete::Info::ZoneInfo kZoneAfrica_Windhoek ACE_TIME_PROGMEM = {
    -
    245  kZoneNameAfrica_Windhoek /*name*/,
    -
    246  0x789c9bd3 /*zoneId*/,
    -
    247  &kZoneContext /*zoneContext*/,
    -
    248  2 /*numEras*/,
    -
    249  kZoneEraAfrica_Windhoek /*eras*/,
    -
    250  nullptr /*targetInfo*/,
    -
    251 };
    -
    252 
    -
    253 //---------------------------------------------------------------------------
    -
    254 // Zone name: America/Caracas
    -
    255 // Eras: 3
    -
    256 //---------------------------------------------------------------------------
    -
    257 
    -
    258 static const complete::Info::ZoneEra kZoneEraAmerica_Caracas[] ACE_TIME_PROGMEM = {
    -
    259  // -4:00 - %z 2007 Dec 9 3:00
    -
    260  {
    -
    261  nullptr /*zonePolicy*/,
    -
    262  "" /*format*/,
    -
    263  -960 /*offsetCode (-14400/15)*/,
    -
    264  0 /*offsetRemainder (-14400%15)*/,
    -
    265  0 /*deltaMinutes*/,
    -
    266  2007 /*untilYear*/,
    -
    267  12 /*untilMonth*/,
    -
    268  9 /*untilDay*/,
    -
    269  720 /*untilTimeCode (10800/15)*/,
    -
    270  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    271  },
    -
    272  // -4:30 - %z 2016 May 1 2:30
    -
    273  {
    -
    274  nullptr /*zonePolicy*/,
    -
    275  "" /*format*/,
    -
    276  -1080 /*offsetCode (-16200/15)*/,
    -
    277  0 /*offsetRemainder (-16200%15)*/,
    -
    278  0 /*deltaMinutes*/,
    -
    279  2016 /*untilYear*/,
    -
    280  5 /*untilMonth*/,
    -
    281  1 /*untilDay*/,
    -
    282  600 /*untilTimeCode (9000/15)*/,
    -
    283  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    284  },
    -
    285  // -4:00 - %z
    -
    286  {
    -
    287  nullptr /*zonePolicy*/,
    -
    288  "" /*format*/,
    -
    289  -960 /*offsetCode (-14400/15)*/,
    -
    290  0 /*offsetRemainder (-14400%15)*/,
    -
    291  0 /*deltaMinutes*/,
    -
    292  32767 /*untilYear*/,
    -
    293  1 /*untilMonth*/,
    -
    294  1 /*untilDay*/,
    -
    295  0 /*untilTimeCode (0/15)*/,
    -
    296  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    297  },
    -
    298 
    -
    299 };
    -
    300 
    -
    301 static const char kZoneNameAmerica_Caracas[] ACE_TIME_PROGMEM = "America/Caracas";
    -
    302 
    -
    303 const complete::Info::ZoneInfo kZoneAmerica_Caracas ACE_TIME_PROGMEM = {
    -
    304  kZoneNameAmerica_Caracas /*name*/,
    -
    305  0x3be064f4 /*zoneId*/,
    -
    306  &kZoneContext /*zoneContext*/,
    -
    307  3 /*numEras*/,
    -
    308  kZoneEraAmerica_Caracas /*eras*/,
    -
    309  nullptr /*targetInfo*/,
    -
    310 };
    -
    311 
    -
    312 //---------------------------------------------------------------------------
    -
    313 // Zone name: America/Chicago
    -
    314 // Eras: 1
    -
    315 //---------------------------------------------------------------------------
    -
    316 
    -
    317 static const complete::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = {
    -
    318  // -6:00 US C%sT
    -
    319  {
    -
    320  &kZonePolicyUS /*zonePolicy*/,
    -
    321  "C%T" /*format*/,
    -
    322  -1440 /*offsetCode (-21600/15)*/,
    -
    323  0 /*offsetRemainder (-21600%15)*/,
    -
    324  0 /*deltaMinutes*/,
    -
    325  32767 /*untilYear*/,
    -
    326  1 /*untilMonth*/,
    -
    327  1 /*untilDay*/,
    -
    328  0 /*untilTimeCode (0/15)*/,
    -
    329  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    330  },
    -
    331 
    -
    332 };
    -
    333 
    -
    334 static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "America/Chicago";
    -
    335 
    -
    336 const complete::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = {
    -
    337  kZoneNameAmerica_Chicago /*name*/,
    -
    338  0x4b92b5d4 /*zoneId*/,
    -
    339  &kZoneContext /*zoneContext*/,
    -
    340  1 /*numEras*/,
    -
    341  kZoneEraAmerica_Chicago /*eras*/,
    -
    342  nullptr /*targetInfo*/,
    -
    343 };
    -
    344 
    -
    345 //---------------------------------------------------------------------------
    -
    346 // Zone name: America/Denver
    -
    347 // Eras: 1
    -
    348 //---------------------------------------------------------------------------
    -
    349 
    -
    350 static const complete::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = {
    -
    351  // -7:00 US M%sT
    -
    352  {
    -
    353  &kZonePolicyUS /*zonePolicy*/,
    -
    354  "M%T" /*format*/,
    -
    355  -1680 /*offsetCode (-25200/15)*/,
    -
    356  0 /*offsetRemainder (-25200%15)*/,
    -
    357  0 /*deltaMinutes*/,
    -
    358  32767 /*untilYear*/,
    -
    359  1 /*untilMonth*/,
    -
    360  1 /*untilDay*/,
    -
    361  0 /*untilTimeCode (0/15)*/,
    -
    362  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    363  },
    -
    364 
    -
    365 };
    -
    366 
    -
    367 static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "America/Denver";
    -
    368 
    -
    369 const complete::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = {
    -
    370  kZoneNameAmerica_Denver /*name*/,
    -
    371  0x97d10b2a /*zoneId*/,
    -
    372  &kZoneContext /*zoneContext*/,
    -
    373  1 /*numEras*/,
    -
    374  kZoneEraAmerica_Denver /*eras*/,
    -
    375  nullptr /*targetInfo*/,
    -
    376 };
    -
    377 
    -
    378 //---------------------------------------------------------------------------
    -
    379 // Zone name: America/Edmonton
    -
    380 // Eras: 2
    -
    381 //---------------------------------------------------------------------------
    -
    382 
    -
    383 static const complete::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = {
    -
    384  // -7:00 Edm M%sT 1987
    -
    385  {
    -
    386  &kZonePolicyEdm /*zonePolicy*/,
    -
    387  "M%T" /*format*/,
    -
    388  -1680 /*offsetCode (-25200/15)*/,
    -
    389  0 /*offsetRemainder (-25200%15)*/,
    -
    390  0 /*deltaMinutes*/,
    -
    391  1987 /*untilYear*/,
    -
    392  1 /*untilMonth*/,
    -
    393  1 /*untilDay*/,
    -
    394  0 /*untilTimeCode (0/15)*/,
    -
    395  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    396  },
    -
    397  // -7:00 Canada M%sT
    -
    398  {
    -
    399  &kZonePolicyCanada /*zonePolicy*/,
    -
    400  "M%T" /*format*/,
    -
    401  -1680 /*offsetCode (-25200/15)*/,
    -
    402  0 /*offsetRemainder (-25200%15)*/,
    -
    403  0 /*deltaMinutes*/,
    -
    404  32767 /*untilYear*/,
    -
    405  1 /*untilMonth*/,
    -
    406  1 /*untilDay*/,
    -
    407  0 /*untilTimeCode (0/15)*/,
    -
    408  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    409  },
    -
    410 
    -
    411 };
    -
    412 
    -
    413 static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "America/Edmonton";
    -
    414 
    -
    415 const complete::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = {
    -
    416  kZoneNameAmerica_Edmonton /*name*/,
    -
    417  0x6cb9484a /*zoneId*/,
    -
    418  &kZoneContext /*zoneContext*/,
    -
    419  2 /*numEras*/,
    -
    420  kZoneEraAmerica_Edmonton /*eras*/,
    -
    421  nullptr /*targetInfo*/,
    -
    422 };
    -
    423 
    -
    424 //---------------------------------------------------------------------------
    -
    425 // Zone name: America/Los_Angeles
    -
    426 // Eras: 1
    -
    427 //---------------------------------------------------------------------------
    -
    428 
    -
    429 static const complete::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = {
    -
    430  // -8:00 US P%sT
    -
    431  {
    -
    432  &kZonePolicyUS /*zonePolicy*/,
    -
    433  "P%T" /*format*/,
    -
    434  -1920 /*offsetCode (-28800/15)*/,
    -
    435  0 /*offsetRemainder (-28800%15)*/,
    -
    436  0 /*deltaMinutes*/,
    -
    437  32767 /*untilYear*/,
    -
    438  1 /*untilMonth*/,
    -
    439  1 /*untilDay*/,
    -
    440  0 /*untilTimeCode (0/15)*/,
    -
    441  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    442  },
    -
    443 
    -
    444 };
    -
    445 
    -
    446 static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "America/Los_Angeles";
    -
    447 
    -
    448 const complete::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = {
    -
    449  kZoneNameAmerica_Los_Angeles /*name*/,
    -
    450  0xb7f7e8f2 /*zoneId*/,
    -
    451  &kZoneContext /*zoneContext*/,
    -
    452  1 /*numEras*/,
    -
    453  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    454  nullptr /*targetInfo*/,
    -
    455 };
    -
    456 
    -
    457 //---------------------------------------------------------------------------
    -
    458 // Zone name: America/New_York
    -
    459 // Eras: 1
    -
    460 //---------------------------------------------------------------------------
    -
    461 
    -
    462 static const complete::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = {
    -
    463  // -5:00 US E%sT
    -
    464  {
    -
    465  &kZonePolicyUS /*zonePolicy*/,
    -
    466  "E%T" /*format*/,
    -
    467  -1200 /*offsetCode (-18000/15)*/,
    -
    468  0 /*offsetRemainder (-18000%15)*/,
    -
    469  0 /*deltaMinutes*/,
    -
    470  32767 /*untilYear*/,
    -
    471  1 /*untilMonth*/,
    -
    472  1 /*untilDay*/,
    -
    473  0 /*untilTimeCode (0/15)*/,
    -
    474  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    475  },
    -
    476 
    -
    477 };
    -
    478 
    -
    479 static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "America/New_York";
    -
    480 
    -
    481 const complete::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = {
    -
    482  kZoneNameAmerica_New_York /*name*/,
    -
    483  0x1e2a7654 /*zoneId*/,
    -
    484  &kZoneContext /*zoneContext*/,
    -
    485  1 /*numEras*/,
    -
    486  kZoneEraAmerica_New_York /*eras*/,
    -
    487  nullptr /*targetInfo*/,
    -
    488 };
    -
    489 
    -
    490 //---------------------------------------------------------------------------
    -
    491 // Zone name: America/Toronto
    -
    492 // Eras: 1
    -
    493 //---------------------------------------------------------------------------
    -
    494 
    -
    495 static const complete::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = {
    -
    496  // -5:00 Canada E%sT
    -
    497  {
    -
    498  &kZonePolicyCanada /*zonePolicy*/,
    -
    499  "E%T" /*format*/,
    -
    500  -1200 /*offsetCode (-18000/15)*/,
    -
    501  0 /*offsetRemainder (-18000%15)*/,
    -
    502  0 /*deltaMinutes*/,
    -
    503  32767 /*untilYear*/,
    -
    504  1 /*untilMonth*/,
    -
    505  1 /*untilDay*/,
    -
    506  0 /*untilTimeCode (0/15)*/,
    -
    507  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    508  },
    -
    509 
    -
    510 };
    -
    511 
    -
    512 static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "America/Toronto";
    -
    513 
    -
    514 const complete::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = {
    -
    515  kZoneNameAmerica_Toronto /*name*/,
    -
    516  0x792e851b /*zoneId*/,
    -
    517  &kZoneContext /*zoneContext*/,
    -
    518  1 /*numEras*/,
    -
    519  kZoneEraAmerica_Toronto /*eras*/,
    -
    520  nullptr /*targetInfo*/,
    -
    521 };
    -
    522 
    -
    523 //---------------------------------------------------------------------------
    -
    524 // Zone name: America/Vancouver
    -
    525 // Eras: 2
    -
    526 //---------------------------------------------------------------------------
    -
    527 
    -
    528 static const complete::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = {
    -
    529  // -8:00 Vanc P%sT 1987
    -
    530  {
    -
    531  &kZonePolicyVanc /*zonePolicy*/,
    -
    532  "P%T" /*format*/,
    -
    533  -1920 /*offsetCode (-28800/15)*/,
    -
    534  0 /*offsetRemainder (-28800%15)*/,
    -
    535  0 /*deltaMinutes*/,
    -
    536  1987 /*untilYear*/,
    -
    537  1 /*untilMonth*/,
    -
    538  1 /*untilDay*/,
    -
    539  0 /*untilTimeCode (0/15)*/,
    -
    540  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    541  },
    -
    542  // -8:00 Canada P%sT
    -
    543  {
    -
    544  &kZonePolicyCanada /*zonePolicy*/,
    -
    545  "P%T" /*format*/,
    -
    546  -1920 /*offsetCode (-28800/15)*/,
    -
    547  0 /*offsetRemainder (-28800%15)*/,
    -
    548  0 /*deltaMinutes*/,
    -
    549  32767 /*untilYear*/,
    -
    550  1 /*untilMonth*/,
    -
    551  1 /*untilDay*/,
    -
    552  0 /*untilTimeCode (0/15)*/,
    -
    553  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    554  },
    -
    555 
    -
    556 };
    -
    557 
    -
    558 static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "America/Vancouver";
    -
    559 
    -
    560 const complete::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = {
    -
    561  kZoneNameAmerica_Vancouver /*name*/,
    -
    562  0x2c6f6b1f /*zoneId*/,
    -
    563  &kZoneContext /*zoneContext*/,
    -
    564  2 /*numEras*/,
    -
    565  kZoneEraAmerica_Vancouver /*eras*/,
    -
    566  nullptr /*targetInfo*/,
    -
    567 };
    -
    568 
    -
    569 //---------------------------------------------------------------------------
    -
    570 // Zone name: America/Whitehorse
    -
    571 // Eras: 3
    -
    572 //---------------------------------------------------------------------------
    -
    573 
    -
    574 static const complete::Info::ZoneEra kZoneEraAmerica_Whitehorse[] ACE_TIME_PROGMEM = {
    -
    575  // -8:00 - PST 1980
    -
    576  {
    -
    577  nullptr /*zonePolicy*/,
    -
    578  "PST" /*format*/,
    -
    579  -1920 /*offsetCode (-28800/15)*/,
    -
    580  0 /*offsetRemainder (-28800%15)*/,
    -
    581  0 /*deltaMinutes*/,
    -
    582  1980 /*untilYear*/,
    -
    583  1 /*untilMonth*/,
    -
    584  1 /*untilDay*/,
    -
    585  0 /*untilTimeCode (0/15)*/,
    -
    586  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    587  },
    -
    588  // -8:00 Canada P%sT 2020 Nov 1
    -
    589  {
    -
    590  &kZonePolicyCanada /*zonePolicy*/,
    -
    591  "P%T" /*format*/,
    -
    592  -1920 /*offsetCode (-28800/15)*/,
    -
    593  0 /*offsetRemainder (-28800%15)*/,
    -
    594  0 /*deltaMinutes*/,
    -
    595  2020 /*untilYear*/,
    -
    596  11 /*untilMonth*/,
    -
    597  1 /*untilDay*/,
    -
    598  0 /*untilTimeCode (0/15)*/,
    -
    599  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    600  },
    -
    601  // -7:00 - MST
    -
    602  {
    -
    603  nullptr /*zonePolicy*/,
    -
    604  "MST" /*format*/,
    -
    605  -1680 /*offsetCode (-25200/15)*/,
    -
    606  0 /*offsetRemainder (-25200%15)*/,
    -
    607  0 /*deltaMinutes*/,
    -
    608  32767 /*untilYear*/,
    -
    609  1 /*untilMonth*/,
    -
    610  1 /*untilDay*/,
    -
    611  0 /*untilTimeCode (0/15)*/,
    -
    612  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    613  },
    -
    614 
    -
    615 };
    -
    616 
    -
    617 static const char kZoneNameAmerica_Whitehorse[] ACE_TIME_PROGMEM = "America/Whitehorse";
    -
    618 
    -
    619 const complete::Info::ZoneInfo kZoneAmerica_Whitehorse ACE_TIME_PROGMEM = {
    -
    620  kZoneNameAmerica_Whitehorse /*name*/,
    -
    621  0x54e0e3e8 /*zoneId*/,
    -
    622  &kZoneContext /*zoneContext*/,
    -
    623  3 /*numEras*/,
    -
    624  kZoneEraAmerica_Whitehorse /*eras*/,
    -
    625  nullptr /*targetInfo*/,
    -
    626 };
    -
    627 
    -
    628 //---------------------------------------------------------------------------
    -
    629 // Zone name: America/Winnipeg
    -
    630 // Eras: 2
    -
    631 //---------------------------------------------------------------------------
    -
    632 
    -
    633 static const complete::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = {
    -
    634  // -6:00 Winn C%sT 2006
    -
    635  {
    -
    636  &kZonePolicyWinn /*zonePolicy*/,
    -
    637  "C%T" /*format*/,
    -
    638  -1440 /*offsetCode (-21600/15)*/,
    -
    639  0 /*offsetRemainder (-21600%15)*/,
    -
    640  0 /*deltaMinutes*/,
    -
    641  2006 /*untilYear*/,
    -
    642  1 /*untilMonth*/,
    -
    643  1 /*untilDay*/,
    -
    644  0 /*untilTimeCode (0/15)*/,
    -
    645  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    646  },
    -
    647  // -6:00 Canada C%sT
    -
    648  {
    -
    649  &kZonePolicyCanada /*zonePolicy*/,
    -
    650  "C%T" /*format*/,
    -
    651  -1440 /*offsetCode (-21600/15)*/,
    -
    652  0 /*offsetRemainder (-21600%15)*/,
    -
    653  0 /*deltaMinutes*/,
    -
    654  32767 /*untilYear*/,
    -
    655  1 /*untilMonth*/,
    -
    656  1 /*untilDay*/,
    -
    657  0 /*untilTimeCode (0/15)*/,
    -
    658  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    659  },
    -
    660 
    -
    661 };
    -
    662 
    -
    663 static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "America/Winnipeg";
    -
    664 
    -
    665 const complete::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = {
    -
    666  kZoneNameAmerica_Winnipeg /*name*/,
    -
    667  0x8c7dafc7 /*zoneId*/,
    -
    668  &kZoneContext /*zoneContext*/,
    -
    669  2 /*numEras*/,
    -
    670  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    671  nullptr /*targetInfo*/,
    -
    672 };
    -
    673 
    -
    674 //---------------------------------------------------------------------------
    -
    675 // Zone name: Australia/Darwin
    -
    676 // Eras: 1
    -
    677 //---------------------------------------------------------------------------
    -
    678 
    -
    679 static const complete::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = {
    -
    680  // 9:30 Aus AC%sT
    -
    681  {
    -
    682  &kZonePolicyAus /*zonePolicy*/,
    -
    683  "AC%T" /*format*/,
    -
    684  2280 /*offsetCode (34200/15)*/,
    -
    685  0 /*offsetRemainder (34200%15)*/,
    -
    686  0 /*deltaMinutes*/,
    -
    687  32767 /*untilYear*/,
    -
    688  1 /*untilMonth*/,
    -
    689  1 /*untilDay*/,
    -
    690  0 /*untilTimeCode (0/15)*/,
    -
    691  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    692  },
    -
    693 
    -
    694 };
    -
    695 
    -
    696 static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "Australia/Darwin";
    -
    697 
    -
    698 const complete::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = {
    -
    699  kZoneNameAustralia_Darwin /*name*/,
    -
    700  0x2876bdff /*zoneId*/,
    -
    701  &kZoneContext /*zoneContext*/,
    -
    702  1 /*numEras*/,
    -
    703  kZoneEraAustralia_Darwin /*eras*/,
    -
    704  nullptr /*targetInfo*/,
    -
    705 };
    -
    706 
    -
    707 //---------------------------------------------------------------------------
    -
    708 // Zone name: Europe/Lisbon
    -
    709 // Eras: 4
    -
    710 //---------------------------------------------------------------------------
    -
    711 
    -
    712 static const complete::Info::ZoneEra kZoneEraEurope_Lisbon[] ACE_TIME_PROGMEM = {
    -
    713  // 0:00 Port WE%sT 1986
    -
    714  {
    -
    715  &kZonePolicyPort /*zonePolicy*/,
    -
    716  "WE%T" /*format*/,
    -
    717  0 /*offsetCode (0/15)*/,
    -
    718  0 /*offsetRemainder (0%15)*/,
    -
    719  0 /*deltaMinutes*/,
    -
    720  1986 /*untilYear*/,
    -
    721  1 /*untilMonth*/,
    -
    722  1 /*untilDay*/,
    -
    723  0 /*untilTimeCode (0/15)*/,
    -
    724  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    725  },
    -
    726  // 0:00 EU WE%sT 1992 Sep 27 1:00u
    -
    727  {
    -
    728  &kZonePolicyEU /*zonePolicy*/,
    -
    729  "WE%T" /*format*/,
    -
    730  0 /*offsetCode (0/15)*/,
    -
    731  0 /*offsetRemainder (0%15)*/,
    -
    732  0 /*deltaMinutes*/,
    -
    733  1992 /*untilYear*/,
    -
    734  9 /*untilMonth*/,
    -
    735  27 /*untilDay*/,
    -
    736  240 /*untilTimeCode (3600/15)*/,
    -
    737  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    738  },
    -
    739  // 1:00 EU CE%sT 1996 Mar 31 1:00u
    -
    740  {
    -
    741  &kZonePolicyEU /*zonePolicy*/,
    -
    742  "CE%T" /*format*/,
    -
    743  240 /*offsetCode (3600/15)*/,
    -
    744  0 /*offsetRemainder (3600%15)*/,
    -
    745  0 /*deltaMinutes*/,
    -
    746  1996 /*untilYear*/,
    -
    747  3 /*untilMonth*/,
    -
    748  31 /*untilDay*/,
    -
    749  240 /*untilTimeCode (3600/15)*/,
    -
    750  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    751  },
    -
    752  // 0:00 EU WE%sT
    -
    753  {
    -
    754  &kZonePolicyEU /*zonePolicy*/,
    -
    755  "WE%T" /*format*/,
    -
    756  0 /*offsetCode (0/15)*/,
    -
    757  0 /*offsetRemainder (0%15)*/,
    -
    758  0 /*deltaMinutes*/,
    -
    759  32767 /*untilYear*/,
    -
    760  1 /*untilMonth*/,
    -
    761  1 /*untilDay*/,
    -
    762  0 /*untilTimeCode (0/15)*/,
    -
    763  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    764  },
    -
    765 
    -
    766 };
    -
    767 
    -
    768 static const char kZoneNameEurope_Lisbon[] ACE_TIME_PROGMEM = "Europe/Lisbon";
    -
    769 
    -
    770 const complete::Info::ZoneInfo kZoneEurope_Lisbon ACE_TIME_PROGMEM = {
    -
    771  kZoneNameEurope_Lisbon /*name*/,
    -
    772  0x5c00a70b /*zoneId*/,
    -
    773  &kZoneContext /*zoneContext*/,
    -
    774  4 /*numEras*/,
    -
    775  kZoneEraEurope_Lisbon /*eras*/,
    -
    776  nullptr /*targetInfo*/,
    -
    777 };
    -
    778 
    -
    779 //---------------------------------------------------------------------------
    -
    780 // Zone name: Pacific/Apia
    -
    781 // Eras: 2
    -
    782 //---------------------------------------------------------------------------
    -
    783 
    -
    784 static const complete::Info::ZoneEra kZoneEraPacific_Apia[] ACE_TIME_PROGMEM = {
    -
    785  // -11:00 WS %z 2011 Dec 29 24:00
    -
    786  {
    -
    787  &kZonePolicyWS /*zonePolicy*/,
    -
    788  "" /*format*/,
    -
    789  -2640 /*offsetCode (-39600/15)*/,
    -
    790  0 /*offsetRemainder (-39600%15)*/,
    -
    791  0 /*deltaMinutes*/,
    -
    792  2011 /*untilYear*/,
    -
    793  12 /*untilMonth*/,
    -
    794  29 /*untilDay*/,
    -
    795  5760 /*untilTimeCode (86400/15)*/,
    -
    796  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    797  },
    -
    798  // 13:00 WS %z
    -
    799  {
    -
    800  &kZonePolicyWS /*zonePolicy*/,
    -
    801  "" /*format*/,
    -
    802  3120 /*offsetCode (46800/15)*/,
    -
    803  0 /*offsetRemainder (46800%15)*/,
    -
    804  0 /*deltaMinutes*/,
    -
    805  32767 /*untilYear*/,
    -
    806  1 /*untilMonth*/,
    -
    807  1 /*untilDay*/,
    -
    808  0 /*untilTimeCode (0/15)*/,
    -
    809  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    810  },
    -
    811 
    -
    812 };
    -
    813 
    -
    814 static const char kZoneNamePacific_Apia[] ACE_TIME_PROGMEM = "Pacific/Apia";
    -
    815 
    -
    816 const complete::Info::ZoneInfo kZonePacific_Apia ACE_TIME_PROGMEM = {
    -
    817  kZoneNamePacific_Apia /*name*/,
    -
    818  0x23359b5e /*zoneId*/,
    -
    819  &kZoneContext /*zoneContext*/,
    -
    820  2 /*numEras*/,
    -
    821  kZoneEraPacific_Apia /*eras*/,
    -
    822  nullptr /*targetInfo*/,
    -
    823 };
    -
    824 
    -
    825 
    -
    826 
    -
    827 //---------------------------------------------------------------------------
    -
    828 // Links: 1
    -
    829 //---------------------------------------------------------------------------
    -
    830 
    -
    831 //---------------------------------------------------------------------------
    -
    832 // Link name: US/Pacific -> America/Los_Angeles
    -
    833 //---------------------------------------------------------------------------
    -
    834 
    -
    835 static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific";
    -
    836 
    -
    837 const complete::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = {
    -
    838  kZoneNameUS_Pacific /*name*/,
    -
    839  0xa950f6ab /*zoneId*/,
    -
    840  &kZoneContext /*zoneContext*/,
    -
    841  1 /*numEras*/,
    -
    842  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    843  &kZoneAmerica_Los_Angeles /*targetInfo*/,
    -
    844 };
    -
    845 
    -
    846 
    -
    847 }
    -
    848 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/testingzonedbc_2zone__infos_8h_source.html b/docs/html/testingzonedbc_2zone__infos_8h_source.html deleted file mode 100644 index 8e6382d1a..000000000 --- a/docs/html/testingzonedbc_2zone__infos_8h_source.html +++ /dev/null @@ -1,877 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/zone_infos.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace testingzonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 2640
    -
    53 // Policies: 33
    -
    54 // Eras: 450
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 3709
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 600
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4140
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #ifndef ACE_TIME_TESTINGZONEDBC_ZONE_INFOS_H
    -
    81 #define ACE_TIME_TESTINGZONEDBC_ZONE_INFOS_H
    -
    82 
    -
    83 #include <zoneinfo/infos.h>
    -
    84 
    -
    85 class __FlashStringHelper;
    -
    86 
    -
    87 namespace ace_time {
    -
    88 namespace testingzonedbc {
    -
    89 
    -
    90 //---------------------------------------------------------------------------
    -
    91 // ZoneContext (should not be in PROGMEM)
    -
    92 //---------------------------------------------------------------------------
    -
    93 
    -
    94 // Version of the TZ Database which generated these files.
    -
    95 extern const __FlashStringHelper* const kTzDatabaseVersion;
    -
    96 
    -
    97 // Metadata about the zonedb files.
    -
    98 extern const complete::Info::ZoneContext kZoneContext;
    -
    99 
    -
    100 //---------------------------------------------------------------------------
    -
    101 // Supported zones: 15
    -
    102 //---------------------------------------------------------------------------
    -
    103 
    -
    104 extern const complete::Info::ZoneInfo kZoneAfrica_Casablanca; // Africa/Casablanca
    -
    105 extern const complete::Info::ZoneInfo kZoneAfrica_Windhoek; // Africa/Windhoek
    -
    106 extern const complete::Info::ZoneInfo kZoneAmerica_Caracas; // America/Caracas
    -
    107 extern const complete::Info::ZoneInfo kZoneAmerica_Chicago; // America/Chicago
    -
    108 extern const complete::Info::ZoneInfo kZoneAmerica_Denver; // America/Denver
    -
    109 extern const complete::Info::ZoneInfo kZoneAmerica_Edmonton; // America/Edmonton
    -
    110 extern const complete::Info::ZoneInfo kZoneAmerica_Los_Angeles; // America/Los_Angeles
    -
    111 extern const complete::Info::ZoneInfo kZoneAmerica_New_York; // America/New_York
    -
    112 extern const complete::Info::ZoneInfo kZoneAmerica_Toronto; // America/Toronto
    -
    113 extern const complete::Info::ZoneInfo kZoneAmerica_Vancouver; // America/Vancouver
    -
    114 extern const complete::Info::ZoneInfo kZoneAmerica_Whitehorse; // America/Whitehorse
    -
    115 extern const complete::Info::ZoneInfo kZoneAmerica_Winnipeg; // America/Winnipeg
    -
    116 extern const complete::Info::ZoneInfo kZoneAustralia_Darwin; // Australia/Darwin
    -
    117 extern const complete::Info::ZoneInfo kZoneEurope_Lisbon; // Europe/Lisbon
    -
    118 extern const complete::Info::ZoneInfo kZonePacific_Apia; // Pacific/Apia
    -
    119 
    -
    120 
    -
    121 // Zone Ids
    -
    122 
    -
    123 const uint32_t kZoneIdAfrica_Casablanca = 0xc59f1b33; // Africa/Casablanca
    -
    124 const uint32_t kZoneIdAfrica_Windhoek = 0x789c9bd3; // Africa/Windhoek
    -
    125 const uint32_t kZoneIdAmerica_Caracas = 0x3be064f4; // America/Caracas
    -
    126 const uint32_t kZoneIdAmerica_Chicago = 0x4b92b5d4; // America/Chicago
    -
    127 const uint32_t kZoneIdAmerica_Denver = 0x97d10b2a; // America/Denver
    -
    128 const uint32_t kZoneIdAmerica_Edmonton = 0x6cb9484a; // America/Edmonton
    -
    129 const uint32_t kZoneIdAmerica_Los_Angeles = 0xb7f7e8f2; // America/Los_Angeles
    -
    130 const uint32_t kZoneIdAmerica_New_York = 0x1e2a7654; // America/New_York
    -
    131 const uint32_t kZoneIdAmerica_Toronto = 0x792e851b; // America/Toronto
    -
    132 const uint32_t kZoneIdAmerica_Vancouver = 0x2c6f6b1f; // America/Vancouver
    -
    133 const uint32_t kZoneIdAmerica_Whitehorse = 0x54e0e3e8; // America/Whitehorse
    -
    134 const uint32_t kZoneIdAmerica_Winnipeg = 0x8c7dafc7; // America/Winnipeg
    -
    135 const uint32_t kZoneIdAustralia_Darwin = 0x2876bdff; // Australia/Darwin
    -
    136 const uint32_t kZoneIdEurope_Lisbon = 0x5c00a70b; // Europe/Lisbon
    -
    137 const uint32_t kZoneIdPacific_Apia = 0x23359b5e; // Pacific/Apia
    -
    138 
    -
    139 
    -
    140 //---------------------------------------------------------------------------
    -
    141 // Supported links: 1
    -
    142 //---------------------------------------------------------------------------
    -
    143 
    -
    144 extern const complete::Info::ZoneInfo kZoneUS_Pacific; // US/Pacific -> America/Los_Angeles
    -
    145 
    -
    146 
    -
    147 // Zone Ids
    -
    148 
    -
    149 const uint32_t kZoneIdUS_Pacific = 0xa950f6ab; // US/Pacific
    -
    150 
    -
    151 
    -
    152 //---------------------------------------------------------------------------
    -
    153 // Maximum size of the Transition buffer in ExtendedZoneProcessor for each zone
    -
    154 // over the given years. Used only in the AceTimeValidation/Extended*Test tests
    -
    155 // for ExtendedZoneProcessor.
    -
    156 //
    -
    157 // MaxBufSize: 7
    -
    158 //---------------------------------------------------------------------------
    -
    159 
    -
    160 const uint8_t kZoneBufSizeAfrica_Casablanca = 7; // Africa/Casablanca in 2013
    -
    161 const uint8_t kZoneBufSizeAfrica_Windhoek = 4; // Africa/Windhoek in 1994
    -
    162 const uint8_t kZoneBufSizeAmerica_Caracas = 2; // America/Caracas in 2007
    -
    163 const uint8_t kZoneBufSizeAmerica_Chicago = 6; // America/Chicago in 2008
    -
    164 const uint8_t kZoneBufSizeAmerica_Denver = 6; // America/Denver in 2008
    -
    165 const uint8_t kZoneBufSizeAmerica_Edmonton = 6; // America/Edmonton in 2008
    -
    166 const uint8_t kZoneBufSizeAmerica_Los_Angeles = 6; // America/Los_Angeles in 2008
    -
    167 const uint8_t kZoneBufSizeAmerica_New_York = 6; // America/New_York in 2008
    -
    168 const uint8_t kZoneBufSizeAmerica_Toronto = 6; // America/Toronto in 2008
    -
    169 const uint8_t kZoneBufSizeAmerica_Vancouver = 6; // America/Vancouver in 2008
    -
    170 const uint8_t kZoneBufSizeAmerica_Whitehorse = 6; // America/Whitehorse in 2008
    -
    171 const uint8_t kZoneBufSizeAmerica_Winnipeg = 6; // America/Winnipeg in 2006
    -
    172 const uint8_t kZoneBufSizeAustralia_Darwin = 2; // Australia/Darwin in 1944
    -
    173 const uint8_t kZoneBufSizeEurope_Lisbon = 6; // Europe/Lisbon in 1985
    -
    174 const uint8_t kZoneBufSizePacific_Apia = 5; // Pacific/Apia in 2011
    -
    175 
    -
    176 
    -
    177 //---------------------------------------------------------------------------
    -
    178 // Unsupported zones: 325
    -
    179 //---------------------------------------------------------------------------
    -
    180 
    -
    181 // Africa/Abidjan {Zone missing from include list}
    -
    182 // Africa/Algiers {Zone missing from include list}
    -
    183 // Africa/Bissau {Zone missing from include list}
    -
    184 // Africa/Cairo {Zone missing from include list}
    -
    185 // Africa/Ceuta {Zone missing from include list}
    -
    186 // Africa/El_Aaiun {Zone missing from include list}
    -
    187 // Africa/Johannesburg {Zone missing from include list}
    -
    188 // Africa/Juba {Zone missing from include list}
    -
    189 // Africa/Khartoum {Zone missing from include list}
    -
    190 // Africa/Lagos {Zone missing from include list}
    -
    191 // Africa/Maputo {Zone missing from include list}
    -
    192 // Africa/Monrovia {Zone missing from include list}
    -
    193 // Africa/Nairobi {Zone missing from include list}
    -
    194 // Africa/Ndjamena {Zone missing from include list}
    -
    195 // Africa/Sao_Tome {Zone missing from include list}
    -
    196 // Africa/Tripoli {Zone missing from include list}
    -
    197 // Africa/Tunis {Zone missing from include list}
    -
    198 // America/Adak {Zone missing from include list}
    -
    199 // America/Anchorage {Zone missing from include list}
    -
    200 // America/Araguaina {Zone missing from include list}
    -
    201 // America/Argentina/Buenos_Aires {Zone missing from include list}
    -
    202 // America/Argentina/Catamarca {Zone missing from include list}
    -
    203 // America/Argentina/Cordoba {Zone missing from include list}
    -
    204 // America/Argentina/Jujuy {Zone missing from include list}
    -
    205 // America/Argentina/La_Rioja {Zone missing from include list}
    -
    206 // America/Argentina/Mendoza {Zone missing from include list}
    -
    207 // America/Argentina/Rio_Gallegos {Zone missing from include list}
    -
    208 // America/Argentina/Salta {Zone missing from include list}
    -
    209 // America/Argentina/San_Juan {Zone missing from include list}
    -
    210 // America/Argentina/San_Luis {Zone missing from include list}
    -
    211 // America/Argentina/Tucuman {Zone missing from include list}
    -
    212 // America/Argentina/Ushuaia {Zone missing from include list}
    -
    213 // America/Asuncion {Zone missing from include list}
    -
    214 // America/Bahia {Zone missing from include list}
    -
    215 // America/Bahia_Banderas {Zone missing from include list}
    -
    216 // America/Barbados {Zone missing from include list}
    -
    217 // America/Belem {Zone missing from include list}
    -
    218 // America/Belize {Zone missing from include list}
    -
    219 // America/Boa_Vista {Zone missing from include list}
    -
    220 // America/Bogota {Zone missing from include list}
    -
    221 // America/Boise {Zone missing from include list}
    -
    222 // America/Cambridge_Bay {Zone missing from include list}
    -
    223 // America/Campo_Grande {Zone missing from include list}
    -
    224 // America/Cancun {Zone missing from include list}
    -
    225 // America/Cayenne {Zone missing from include list}
    -
    226 // America/Chihuahua {Zone missing from include list}
    -
    227 // America/Ciudad_Juarez {Zone missing from include list}
    -
    228 // America/Costa_Rica {Zone missing from include list}
    -
    229 // America/Coyhaique {Zone missing from include list}
    -
    230 // America/Cuiaba {Zone missing from include list}
    -
    231 // America/Danmarkshavn {Zone missing from include list}
    -
    232 // America/Dawson {Zone missing from include list}
    -
    233 // America/Dawson_Creek {Zone missing from include list}
    -
    234 // America/Detroit {Zone missing from include list}
    -
    235 // America/Eirunepe {Zone missing from include list}
    -
    236 // America/El_Salvador {Zone missing from include list}
    -
    237 // America/Fort_Nelson {Zone missing from include list}
    -
    238 // America/Fortaleza {Zone missing from include list}
    -
    239 // America/Glace_Bay {Zone missing from include list}
    -
    240 // America/Goose_Bay {Zone missing from include list}
    -
    241 // America/Grand_Turk {Zone missing from include list}
    -
    242 // America/Guatemala {Zone missing from include list}
    -
    243 // America/Guayaquil {Zone missing from include list}
    -
    244 // America/Guyana {Zone missing from include list}
    -
    245 // America/Halifax {Zone missing from include list}
    -
    246 // America/Havana {Zone missing from include list}
    -
    247 // America/Hermosillo {Zone missing from include list}
    -
    248 // America/Indiana/Indianapolis {Zone missing from include list}
    -
    249 // America/Indiana/Knox {Zone missing from include list}
    -
    250 // America/Indiana/Marengo {Zone missing from include list}
    -
    251 // America/Indiana/Petersburg {Zone missing from include list}
    -
    252 // America/Indiana/Tell_City {Zone missing from include list}
    -
    253 // America/Indiana/Vevay {Zone missing from include list}
    -
    254 // America/Indiana/Vincennes {Zone missing from include list}
    -
    255 // America/Indiana/Winamac {Zone missing from include list}
    -
    256 // America/Inuvik {Zone missing from include list}
    -
    257 // America/Iqaluit {Zone missing from include list}
    -
    258 // America/Jamaica {Zone missing from include list}
    -
    259 // America/Juneau {Zone missing from include list}
    -
    260 // America/Kentucky/Louisville {Zone missing from include list}
    -
    261 // America/Kentucky/Monticello {Zone missing from include list}
    -
    262 // America/La_Paz {Zone missing from include list}
    -
    263 // America/Lima {Zone missing from include list}
    -
    264 // America/Maceio {Zone missing from include list}
    -
    265 // America/Managua {Zone missing from include list}
    -
    266 // America/Manaus {Zone missing from include list}
    -
    267 // America/Martinique {Zone missing from include list}
    -
    268 // America/Matamoros {Zone missing from include list}
    -
    269 // America/Mazatlan {Zone missing from include list}
    -
    270 // America/Menominee {Zone missing from include list}
    -
    271 // America/Merida {Zone missing from include list}
    -
    272 // America/Metlakatla {Zone missing from include list}
    -
    273 // America/Mexico_City {Zone missing from include list}
    -
    274 // America/Miquelon {Zone missing from include list}
    -
    275 // America/Moncton {Zone missing from include list}
    -
    276 // America/Monterrey {Zone missing from include list}
    -
    277 // America/Montevideo {Zone missing from include list}
    -
    278 // America/Nome {Zone missing from include list}
    -
    279 // America/Noronha {Zone missing from include list}
    -
    280 // America/North_Dakota/Beulah {Zone missing from include list}
    -
    281 // America/North_Dakota/Center {Zone missing from include list}
    -
    282 // America/North_Dakota/New_Salem {Zone missing from include list}
    -
    283 // America/Nuuk {Zone missing from include list}
    -
    284 // America/Ojinaga {Zone missing from include list}
    -
    285 // America/Panama {Zone missing from include list}
    -
    286 // America/Paramaribo {Zone missing from include list}
    -
    287 // America/Phoenix {Zone missing from include list}
    -
    288 // America/Port-au-Prince {Zone missing from include list}
    -
    289 // America/Porto_Velho {Zone missing from include list}
    -
    290 // America/Puerto_Rico {Zone missing from include list}
    -
    291 // America/Punta_Arenas {Zone missing from include list}
    -
    292 // America/Rankin_Inlet {Zone missing from include list}
    -
    293 // America/Recife {Zone missing from include list}
    -
    294 // America/Regina {Zone missing from include list}
    -
    295 // America/Resolute {Zone missing from include list}
    -
    296 // America/Rio_Branco {Zone missing from include list}
    -
    297 // America/Santarem {Zone missing from include list}
    -
    298 // America/Santiago {Zone missing from include list}
    -
    299 // America/Santo_Domingo {Zone missing from include list}
    -
    300 // America/Sao_Paulo {Zone missing from include list}
    -
    301 // America/Scoresbysund {Zone missing from include list}
    -
    302 // America/Sitka {Zone missing from include list}
    -
    303 // America/St_Johns {Zone missing from include list}
    -
    304 // America/Swift_Current {Zone missing from include list}
    -
    305 // America/Tegucigalpa {Zone missing from include list}
    -
    306 // America/Thule {Zone missing from include list}
    -
    307 // America/Tijuana {Zone missing from include list}
    -
    308 // America/Yakutat {Zone missing from include list}
    -
    309 // Antarctica/Casey {Zone missing from include list}
    -
    310 // Antarctica/Davis {Zone missing from include list}
    -
    311 // Antarctica/Macquarie {Zone missing from include list}
    -
    312 // Antarctica/Mawson {Zone missing from include list}
    -
    313 // Antarctica/Palmer {Zone missing from include list}
    -
    314 // Antarctica/Rothera {Zone missing from include list}
    -
    315 // Antarctica/Troll {Zone missing from include list}
    -
    316 // Antarctica/Vostok {Zone missing from include list}
    -
    317 // Asia/Almaty {Zone missing from include list}
    -
    318 // Asia/Amman {Zone missing from include list}
    -
    319 // Asia/Anadyr {Zone missing from include list}
    -
    320 // Asia/Aqtau {Zone missing from include list}
    -
    321 // Asia/Aqtobe {Zone missing from include list}
    -
    322 // Asia/Ashgabat {Zone missing from include list}
    -
    323 // Asia/Atyrau {Zone missing from include list}
    -
    324 // Asia/Baghdad {Zone missing from include list}
    -
    325 // Asia/Baku {Zone missing from include list}
    -
    326 // Asia/Bangkok {Zone missing from include list}
    -
    327 // Asia/Barnaul {Zone missing from include list}
    -
    328 // Asia/Beirut {Zone missing from include list}
    -
    329 // Asia/Bishkek {Zone missing from include list}
    -
    330 // Asia/Chita {Zone missing from include list}
    -
    331 // Asia/Colombo {Zone missing from include list}
    -
    332 // Asia/Damascus {Zone missing from include list}
    -
    333 // Asia/Dhaka {Zone missing from include list}
    -
    334 // Asia/Dili {Zone missing from include list}
    -
    335 // Asia/Dubai {Zone missing from include list}
    -
    336 // Asia/Dushanbe {Zone missing from include list}
    -
    337 // Asia/Famagusta {Zone missing from include list}
    -
    338 // Asia/Gaza {Zone missing from include list}
    -
    339 // Asia/Hebron {Zone missing from include list}
    -
    340 // Asia/Ho_Chi_Minh {Zone missing from include list}
    -
    341 // Asia/Hong_Kong {Zone missing from include list}
    -
    342 // Asia/Hovd {Zone missing from include list}
    -
    343 // Asia/Irkutsk {Zone missing from include list}
    -
    344 // Asia/Jakarta {Zone missing from include list}
    -
    345 // Asia/Jayapura {Zone missing from include list}
    -
    346 // Asia/Jerusalem {Zone missing from include list}
    -
    347 // Asia/Kabul {Zone missing from include list}
    -
    348 // Asia/Kamchatka {Zone missing from include list}
    -
    349 // Asia/Karachi {Zone missing from include list}
    -
    350 // Asia/Kathmandu {Zone missing from include list}
    -
    351 // Asia/Khandyga {Zone missing from include list}
    -
    352 // Asia/Kolkata {Zone missing from include list}
    -
    353 // Asia/Krasnoyarsk {Zone missing from include list}
    -
    354 // Asia/Kuching {Zone missing from include list}
    -
    355 // Asia/Macau {Zone missing from include list}
    -
    356 // Asia/Magadan {Zone missing from include list}
    -
    357 // Asia/Makassar {Zone missing from include list}
    -
    358 // Asia/Manila {Zone missing from include list}
    -
    359 // Asia/Nicosia {Zone missing from include list}
    -
    360 // Asia/Novokuznetsk {Zone missing from include list}
    -
    361 // Asia/Novosibirsk {Zone missing from include list}
    -
    362 // Asia/Omsk {Zone missing from include list}
    -
    363 // Asia/Oral {Zone missing from include list}
    -
    364 // Asia/Pontianak {Zone missing from include list}
    -
    365 // Asia/Pyongyang {Zone missing from include list}
    -
    366 // Asia/Qatar {Zone missing from include list}
    -
    367 // Asia/Qostanay {Zone missing from include list}
    -
    368 // Asia/Qyzylorda {Zone missing from include list}
    -
    369 // Asia/Riyadh {Zone missing from include list}
    -
    370 // Asia/Sakhalin {Zone missing from include list}
    -
    371 // Asia/Samarkand {Zone missing from include list}
    -
    372 // Asia/Seoul {Zone missing from include list}
    -
    373 // Asia/Shanghai {Zone missing from include list}
    -
    374 // Asia/Singapore {Zone missing from include list}
    -
    375 // Asia/Srednekolymsk {Zone missing from include list}
    -
    376 // Asia/Taipei {Zone missing from include list}
    -
    377 // Asia/Tashkent {Zone missing from include list}
    -
    378 // Asia/Tbilisi {Zone missing from include list}
    -
    379 // Asia/Tehran {Zone missing from include list}
    -
    380 // Asia/Thimphu {Zone missing from include list}
    -
    381 // Asia/Tokyo {Zone missing from include list}
    -
    382 // Asia/Tomsk {Zone missing from include list}
    -
    383 // Asia/Ulaanbaatar {Zone missing from include list}
    -
    384 // Asia/Urumqi {Zone missing from include list}
    -
    385 // Asia/Ust-Nera {Zone missing from include list}
    -
    386 // Asia/Vladivostok {Zone missing from include list}
    -
    387 // Asia/Yakutsk {Zone missing from include list}
    -
    388 // Asia/Yangon {Zone missing from include list}
    -
    389 // Asia/Yekaterinburg {Zone missing from include list}
    -
    390 // Asia/Yerevan {Zone missing from include list}
    -
    391 // Atlantic/Azores {Zone missing from include list}
    -
    392 // Atlantic/Bermuda {Zone missing from include list}
    -
    393 // Atlantic/Canary {Zone missing from include list}
    -
    394 // Atlantic/Cape_Verde {Zone missing from include list}
    -
    395 // Atlantic/Faroe {Zone missing from include list}
    -
    396 // Atlantic/Madeira {Zone missing from include list}
    -
    397 // Atlantic/South_Georgia {Zone missing from include list}
    -
    398 // Atlantic/Stanley {Zone missing from include list}
    -
    399 // Australia/Adelaide {Zone missing from include list}
    -
    400 // Australia/Brisbane {Zone missing from include list}
    -
    401 // Australia/Broken_Hill {Zone missing from include list}
    -
    402 // Australia/Eucla {Zone missing from include list}
    -
    403 // Australia/Hobart {Zone missing from include list}
    -
    404 // Australia/Lindeman {Zone missing from include list}
    -
    405 // Australia/Lord_Howe {Zone missing from include list}
    -
    406 // Australia/Melbourne {Zone missing from include list}
    -
    407 // Australia/Perth {Zone missing from include list}
    -
    408 // Australia/Sydney {Zone missing from include list}
    -
    409 // Etc/GMT {Zone missing from include list}
    -
    410 // Etc/GMT+1 {Zone missing from include list}
    -
    411 // Etc/GMT+10 {Zone missing from include list}
    -
    412 // Etc/GMT+11 {Zone missing from include list}
    -
    413 // Etc/GMT+12 {Zone missing from include list}
    -
    414 // Etc/GMT+2 {Zone missing from include list}
    -
    415 // Etc/GMT+3 {Zone missing from include list}
    -
    416 // Etc/GMT+4 {Zone missing from include list}
    -
    417 // Etc/GMT+5 {Zone missing from include list}
    -
    418 // Etc/GMT+6 {Zone missing from include list}
    -
    419 // Etc/GMT+7 {Zone missing from include list}
    -
    420 // Etc/GMT+8 {Zone missing from include list}
    -
    421 // Etc/GMT+9 {Zone missing from include list}
    -
    422 // Etc/GMT-1 {Zone missing from include list}
    -
    423 // Etc/GMT-10 {Zone missing from include list}
    -
    424 // Etc/GMT-11 {Zone missing from include list}
    -
    425 // Etc/GMT-12 {Zone missing from include list}
    -
    426 // Etc/GMT-13 {Zone missing from include list}
    -
    427 // Etc/GMT-14 {Zone missing from include list}
    -
    428 // Etc/GMT-2 {Zone missing from include list}
    -
    429 // Etc/GMT-3 {Zone missing from include list}
    -
    430 // Etc/GMT-4 {Zone missing from include list}
    -
    431 // Etc/GMT-5 {Zone missing from include list}
    -
    432 // Etc/GMT-6 {Zone missing from include list}
    -
    433 // Etc/GMT-7 {Zone missing from include list}
    -
    434 // Etc/GMT-8 {Zone missing from include list}
    -
    435 // Etc/GMT-9 {Zone missing from include list}
    -
    436 // Etc/UTC {Zone missing from include list}
    -
    437 // Europe/Andorra {Zone missing from include list}
    -
    438 // Europe/Astrakhan {Zone missing from include list}
    -
    439 // Europe/Athens {Zone missing from include list}
    -
    440 // Europe/Belgrade {Zone missing from include list}
    -
    441 // Europe/Berlin {Zone missing from include list}
    -
    442 // Europe/Brussels {Zone missing from include list}
    -
    443 // Europe/Bucharest {Zone missing from include list}
    -
    444 // Europe/Budapest {Zone missing from include list}
    -
    445 // Europe/Chisinau {Zone missing from include list}
    -
    446 // Europe/Dublin {Zone missing from include list}
    -
    447 // Europe/Gibraltar {Zone missing from include list}
    -
    448 // Europe/Helsinki {Zone missing from include list}
    -
    449 // Europe/Istanbul {Zone missing from include list}
    -
    450 // Europe/Kaliningrad {Zone missing from include list}
    -
    451 // Europe/Kirov {Zone missing from include list}
    -
    452 // Europe/Kyiv {Zone missing from include list}
    -
    453 // Europe/London {Zone missing from include list}
    -
    454 // Europe/Madrid {Zone missing from include list}
    -
    455 // Europe/Malta {Zone missing from include list}
    -
    456 // Europe/Minsk {Zone missing from include list}
    -
    457 // Europe/Moscow {Zone missing from include list}
    -
    458 // Europe/Paris {Zone missing from include list}
    -
    459 // Europe/Prague {Zone missing from include list}
    -
    460 // Europe/Riga {Zone missing from include list}
    -
    461 // Europe/Rome {Zone missing from include list}
    -
    462 // Europe/Samara {Zone missing from include list}
    -
    463 // Europe/Saratov {Zone missing from include list}
    -
    464 // Europe/Simferopol {Zone missing from include list}
    -
    465 // Europe/Sofia {Zone missing from include list}
    -
    466 // Europe/Tallinn {Zone missing from include list}
    -
    467 // Europe/Tirane {Zone missing from include list}
    -
    468 // Europe/Ulyanovsk {Zone missing from include list}
    -
    469 // Europe/Vienna {Zone missing from include list}
    -
    470 // Europe/Vilnius {Zone missing from include list}
    -
    471 // Europe/Volgograd {Zone missing from include list}
    -
    472 // Europe/Warsaw {Zone missing from include list}
    -
    473 // Europe/Zurich {Zone missing from include list}
    -
    474 // Indian/Chagos {Zone missing from include list}
    -
    475 // Indian/Maldives {Zone missing from include list}
    -
    476 // Indian/Mauritius {Zone missing from include list}
    -
    477 // Pacific/Auckland {Zone missing from include list}
    -
    478 // Pacific/Bougainville {Zone missing from include list}
    -
    479 // Pacific/Chatham {Zone missing from include list}
    -
    480 // Pacific/Easter {Zone missing from include list}
    -
    481 // Pacific/Efate {Zone missing from include list}
    -
    482 // Pacific/Fakaofo {Zone missing from include list}
    -
    483 // Pacific/Fiji {Zone missing from include list}
    -
    484 // Pacific/Galapagos {Zone missing from include list}
    -
    485 // Pacific/Gambier {Zone missing from include list}
    -
    486 // Pacific/Guadalcanal {Zone missing from include list}
    -
    487 // Pacific/Guam {Zone missing from include list}
    -
    488 // Pacific/Honolulu {Zone missing from include list}
    -
    489 // Pacific/Kanton {Zone missing from include list}
    -
    490 // Pacific/Kiritimati {Zone missing from include list}
    -
    491 // Pacific/Kosrae {Zone missing from include list}
    -
    492 // Pacific/Kwajalein {Zone missing from include list}
    -
    493 // Pacific/Marquesas {Zone missing from include list}
    -
    494 // Pacific/Nauru {Zone missing from include list}
    -
    495 // Pacific/Niue {Zone missing from include list}
    -
    496 // Pacific/Norfolk {Zone missing from include list}
    -
    497 // Pacific/Noumea {Zone missing from include list}
    -
    498 // Pacific/Pago_Pago {Zone missing from include list}
    -
    499 // Pacific/Palau {Zone missing from include list}
    -
    500 // Pacific/Pitcairn {Zone missing from include list}
    -
    501 // Pacific/Port_Moresby {Zone missing from include list}
    -
    502 // Pacific/Rarotonga {Zone missing from include list}
    -
    503 // Pacific/Tahiti {Zone missing from include list}
    -
    504 // Pacific/Tarawa {Zone missing from include list}
    -
    505 // Pacific/Tongatapu {Zone missing from include list}
    -
    506 
    -
    507 
    -
    508 //---------------------------------------------------------------------------
    -
    509 // Notable zones: 3
    -
    510 //---------------------------------------------------------------------------
    -
    511 
    -
    512 // Africa/Casablanca {
    -
    513 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    514 // Morocco {SAVE '-1:00' is a negative DST}
    -
    515 // }
    -
    516 // Africa/Windhoek {
    -
    517 // Namibia {
    -
    518 // LETTER 'CAT' not single character,
    -
    519 // LETTER 'WAT' not single character,
    -
    520 // SAVE '-1:00' is a negative DST,
    -
    521 // }
    -
    522 // }
    -
    523 // Pacific/Apia {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    524 
    -
    525 
    -
    526 //---------------------------------------------------------------------------
    -
    527 // Unsupported links: 256
    -
    528 //---------------------------------------------------------------------------
    -
    529 
    -
    530 // Africa/Accra {Link missing from include list}
    -
    531 // Africa/Addis_Ababa {Link missing from include list}
    -
    532 // Africa/Asmara {Link missing from include list}
    -
    533 // Africa/Asmera {Link missing from include list}
    -
    534 // Africa/Bamako {Link missing from include list}
    -
    535 // Africa/Bangui {Link missing from include list}
    -
    536 // Africa/Banjul {Link missing from include list}
    -
    537 // Africa/Blantyre {Link missing from include list}
    -
    538 // Africa/Brazzaville {Link missing from include list}
    -
    539 // Africa/Bujumbura {Link missing from include list}
    -
    540 // Africa/Conakry {Link missing from include list}
    -
    541 // Africa/Dakar {Link missing from include list}
    -
    542 // Africa/Dar_es_Salaam {Link missing from include list}
    -
    543 // Africa/Djibouti {Link missing from include list}
    -
    544 // Africa/Douala {Link missing from include list}
    -
    545 // Africa/Freetown {Link missing from include list}
    -
    546 // Africa/Gaborone {Link missing from include list}
    -
    547 // Africa/Harare {Link missing from include list}
    -
    548 // Africa/Kampala {Link missing from include list}
    -
    549 // Africa/Kigali {Link missing from include list}
    -
    550 // Africa/Kinshasa {Link missing from include list}
    -
    551 // Africa/Libreville {Link missing from include list}
    -
    552 // Africa/Lome {Link missing from include list}
    -
    553 // Africa/Luanda {Link missing from include list}
    -
    554 // Africa/Lubumbashi {Link missing from include list}
    -
    555 // Africa/Lusaka {Link missing from include list}
    -
    556 // Africa/Malabo {Link missing from include list}
    -
    557 // Africa/Maseru {Link missing from include list}
    -
    558 // Africa/Mbabane {Link missing from include list}
    -
    559 // Africa/Mogadishu {Link missing from include list}
    -
    560 // Africa/Niamey {Link missing from include list}
    -
    561 // Africa/Nouakchott {Link missing from include list}
    -
    562 // Africa/Ouagadougou {Link missing from include list}
    -
    563 // Africa/Porto-Novo {Link missing from include list}
    -
    564 // Africa/Timbuktu {Link missing from include list}
    -
    565 // America/Anguilla {Link missing from include list}
    -
    566 // America/Antigua {Link missing from include list}
    -
    567 // America/Argentina/ComodRivadavia {Link missing from include list}
    -
    568 // America/Aruba {Link missing from include list}
    -
    569 // America/Atikokan {Link missing from include list}
    -
    570 // America/Atka {Link missing from include list}
    -
    571 // America/Blanc-Sablon {Link missing from include list}
    -
    572 // America/Buenos_Aires {Link missing from include list}
    -
    573 // America/Catamarca {Link missing from include list}
    -
    574 // America/Cayman {Link missing from include list}
    -
    575 // America/Coral_Harbour {Link missing from include list}
    -
    576 // America/Cordoba {Link missing from include list}
    -
    577 // America/Creston {Link missing from include list}
    -
    578 // America/Curacao {Link missing from include list}
    -
    579 // America/Dominica {Link missing from include list}
    -
    580 // America/Ensenada {Link missing from include list}
    -
    581 // America/Fort_Wayne {Link missing from include list}
    -
    582 // America/Godthab {Link missing from include list}
    -
    583 // America/Grenada {Link missing from include list}
    -
    584 // America/Guadeloupe {Link missing from include list}
    -
    585 // America/Indianapolis {Link missing from include list}
    -
    586 // America/Jujuy {Link missing from include list}
    -
    587 // America/Knox_IN {Link missing from include list}
    -
    588 // America/Kralendijk {Link missing from include list}
    -
    589 // America/Louisville {Link missing from include list}
    -
    590 // America/Lower_Princes {Link missing from include list}
    -
    591 // America/Marigot {Link missing from include list}
    -
    592 // America/Mendoza {Link missing from include list}
    -
    593 // America/Montreal {Link missing from include list}
    -
    594 // America/Montserrat {Link missing from include list}
    -
    595 // America/Nassau {Link missing from include list}
    -
    596 // America/Nipigon {Link missing from include list}
    -
    597 // America/Pangnirtung {Link missing from include list}
    -
    598 // America/Port_of_Spain {Link missing from include list}
    -
    599 // America/Porto_Acre {Link missing from include list}
    -
    600 // America/Rainy_River {Link missing from include list}
    -
    601 // America/Rosario {Link missing from include list}
    -
    602 // America/Santa_Isabel {Link missing from include list}
    -
    603 // America/Shiprock {Link missing from include list}
    -
    604 // America/St_Barthelemy {Link missing from include list}
    -
    605 // America/St_Kitts {Link missing from include list}
    -
    606 // America/St_Lucia {Link missing from include list}
    -
    607 // America/St_Thomas {Link missing from include list}
    -
    608 // America/St_Vincent {Link missing from include list}
    -
    609 // America/Thunder_Bay {Link missing from include list}
    -
    610 // America/Tortola {Link missing from include list}
    -
    611 // America/Virgin {Link missing from include list}
    -
    612 // America/Yellowknife {Link missing from include list}
    -
    613 // Antarctica/DumontDUrville {Link missing from include list}
    -
    614 // Antarctica/McMurdo {Link missing from include list}
    -
    615 // Antarctica/South_Pole {Link missing from include list}
    -
    616 // Antarctica/Syowa {Link missing from include list}
    -
    617 // Arctic/Longyearbyen {Link missing from include list}
    -
    618 // Asia/Aden {Link missing from include list}
    -
    619 // Asia/Ashkhabad {Link missing from include list}
    -
    620 // Asia/Bahrain {Link missing from include list}
    -
    621 // Asia/Brunei {Link missing from include list}
    -
    622 // Asia/Calcutta {Link missing from include list}
    -
    623 // Asia/Choibalsan {Link missing from include list}
    -
    624 // Asia/Chongqing {Link missing from include list}
    -
    625 // Asia/Chungking {Link missing from include list}
    -
    626 // Asia/Dacca {Link missing from include list}
    -
    627 // Asia/Harbin {Link missing from include list}
    -
    628 // Asia/Istanbul {Link missing from include list}
    -
    629 // Asia/Kashgar {Link missing from include list}
    -
    630 // Asia/Katmandu {Link missing from include list}
    -
    631 // Asia/Kuala_Lumpur {Link missing from include list}
    -
    632 // Asia/Kuwait {Link missing from include list}
    -
    633 // Asia/Macao {Link missing from include list}
    -
    634 // Asia/Muscat {Link missing from include list}
    -
    635 // Asia/Phnom_Penh {Link missing from include list}
    -
    636 // Asia/Rangoon {Link missing from include list}
    -
    637 // Asia/Saigon {Link missing from include list}
    -
    638 // Asia/Tel_Aviv {Link missing from include list}
    -
    639 // Asia/Thimbu {Link missing from include list}
    -
    640 // Asia/Ujung_Pandang {Link missing from include list}
    -
    641 // Asia/Ulan_Bator {Link missing from include list}
    -
    642 // Asia/Vientiane {Link missing from include list}
    -
    643 // Atlantic/Faeroe {Link missing from include list}
    -
    644 // Atlantic/Jan_Mayen {Link missing from include list}
    -
    645 // Atlantic/Reykjavik {Link missing from include list}
    -
    646 // Atlantic/St_Helena {Link missing from include list}
    -
    647 // Australia/ACT {Link missing from include list}
    -
    648 // Australia/Canberra {Link missing from include list}
    -
    649 // Australia/Currie {Link missing from include list}
    -
    650 // Australia/LHI {Link missing from include list}
    -
    651 // Australia/NSW {Link missing from include list}
    -
    652 // Australia/North {Link missing from include list}
    -
    653 // Australia/Queensland {Link missing from include list}
    -
    654 // Australia/South {Link missing from include list}
    -
    655 // Australia/Tasmania {Link missing from include list}
    -
    656 // Australia/Victoria {Link missing from include list}
    -
    657 // Australia/West {Link missing from include list}
    -
    658 // Australia/Yancowinna {Link missing from include list}
    -
    659 // Brazil/Acre {Link missing from include list}
    -
    660 // Brazil/DeNoronha {Link missing from include list}
    -
    661 // Brazil/East {Link missing from include list}
    -
    662 // Brazil/West {Link missing from include list}
    -
    663 // CET {Link missing from include list}
    -
    664 // CST6CDT {Link missing from include list}
    -
    665 // Canada/Atlantic {Link missing from include list}
    -
    666 // Canada/Central {Link missing from include list}
    -
    667 // Canada/Eastern {Link missing from include list}
    -
    668 // Canada/Mountain {Link missing from include list}
    -
    669 // Canada/Newfoundland {Link missing from include list}
    -
    670 // Canada/Pacific {Link missing from include list}
    -
    671 // Canada/Saskatchewan {Link missing from include list}
    -
    672 // Canada/Yukon {Link missing from include list}
    -
    673 // Chile/Continental {Link missing from include list}
    -
    674 // Chile/EasterIsland {Link missing from include list}
    -
    675 // Cuba {Link missing from include list}
    -
    676 // EET {Link missing from include list}
    -
    677 // EST {Link missing from include list}
    -
    678 // EST5EDT {Link missing from include list}
    -
    679 // Egypt {Link missing from include list}
    -
    680 // Eire {Link missing from include list}
    -
    681 // Etc/GMT+0 {Link missing from include list}
    -
    682 // Etc/GMT-0 {Link missing from include list}
    -
    683 // Etc/GMT0 {Link missing from include list}
    -
    684 // Etc/Greenwich {Link missing from include list}
    -
    685 // Etc/UCT {Link missing from include list}
    -
    686 // Etc/Universal {Link missing from include list}
    -
    687 // Etc/Zulu {Link missing from include list}
    -
    688 // Europe/Amsterdam {Link missing from include list}
    -
    689 // Europe/Belfast {Link missing from include list}
    -
    690 // Europe/Bratislava {Link missing from include list}
    -
    691 // Europe/Busingen {Link missing from include list}
    -
    692 // Europe/Copenhagen {Link missing from include list}
    -
    693 // Europe/Guernsey {Link missing from include list}
    -
    694 // Europe/Isle_of_Man {Link missing from include list}
    -
    695 // Europe/Jersey {Link missing from include list}
    -
    696 // Europe/Kiev {Link missing from include list}
    -
    697 // Europe/Ljubljana {Link missing from include list}
    -
    698 // Europe/Luxembourg {Link missing from include list}
    -
    699 // Europe/Mariehamn {Link missing from include list}
    -
    700 // Europe/Monaco {Link missing from include list}
    -
    701 // Europe/Nicosia {Link missing from include list}
    -
    702 // Europe/Oslo {Link missing from include list}
    -
    703 // Europe/Podgorica {Link missing from include list}
    -
    704 // Europe/San_Marino {Link missing from include list}
    -
    705 // Europe/Sarajevo {Link missing from include list}
    -
    706 // Europe/Skopje {Link missing from include list}
    -
    707 // Europe/Stockholm {Link missing from include list}
    -
    708 // Europe/Tiraspol {Link missing from include list}
    -
    709 // Europe/Uzhgorod {Link missing from include list}
    -
    710 // Europe/Vaduz {Link missing from include list}
    -
    711 // Europe/Vatican {Link missing from include list}
    -
    712 // Europe/Zagreb {Link missing from include list}
    -
    713 // Europe/Zaporozhye {Link missing from include list}
    -
    714 // GB {Link missing from include list}
    -
    715 // GB-Eire {Link missing from include list}
    -
    716 // GMT {Link missing from include list}
    -
    717 // GMT+0 {Link missing from include list}
    -
    718 // GMT-0 {Link missing from include list}
    -
    719 // GMT0 {Link missing from include list}
    -
    720 // Greenwich {Link missing from include list}
    -
    721 // HST {Link missing from include list}
    -
    722 // Hongkong {Link missing from include list}
    -
    723 // Iceland {Link missing from include list}
    -
    724 // Indian/Antananarivo {Link missing from include list}
    -
    725 // Indian/Christmas {Link missing from include list}
    -
    726 // Indian/Cocos {Link missing from include list}
    -
    727 // Indian/Comoro {Link missing from include list}
    -
    728 // Indian/Kerguelen {Link missing from include list}
    -
    729 // Indian/Mahe {Link missing from include list}
    -
    730 // Indian/Mayotte {Link missing from include list}
    -
    731 // Indian/Reunion {Link missing from include list}
    -
    732 // Iran {Link missing from include list}
    -
    733 // Israel {Link missing from include list}
    -
    734 // Jamaica {Link missing from include list}
    -
    735 // Japan {Link missing from include list}
    -
    736 // Kwajalein {Link missing from include list}
    -
    737 // Libya {Link missing from include list}
    -
    738 // MET {Link missing from include list}
    -
    739 // MST {Link missing from include list}
    -
    740 // MST7MDT {Link missing from include list}
    -
    741 // Mexico/BajaNorte {Link missing from include list}
    -
    742 // Mexico/BajaSur {Link missing from include list}
    -
    743 // Mexico/General {Link missing from include list}
    -
    744 // NZ {Link missing from include list}
    -
    745 // NZ-CHAT {Link missing from include list}
    -
    746 // Navajo {Link missing from include list}
    -
    747 // PRC {Link missing from include list}
    -
    748 // PST8PDT {Link missing from include list}
    -
    749 // Pacific/Chuuk {Link missing from include list}
    -
    750 // Pacific/Enderbury {Link missing from include list}
    -
    751 // Pacific/Funafuti {Link missing from include list}
    -
    752 // Pacific/Johnston {Link missing from include list}
    -
    753 // Pacific/Majuro {Link missing from include list}
    -
    754 // Pacific/Midway {Link missing from include list}
    -
    755 // Pacific/Pohnpei {Link missing from include list}
    -
    756 // Pacific/Ponape {Link missing from include list}
    -
    757 // Pacific/Saipan {Link missing from include list}
    -
    758 // Pacific/Samoa {Link missing from include list}
    -
    759 // Pacific/Truk {Link missing from include list}
    -
    760 // Pacific/Wake {Link missing from include list}
    -
    761 // Pacific/Wallis {Link missing from include list}
    -
    762 // Pacific/Yap {Link missing from include list}
    -
    763 // Poland {Link missing from include list}
    -
    764 // Portugal {Link missing from include list}
    -
    765 // ROC {Link missing from include list}
    -
    766 // ROK {Link missing from include list}
    -
    767 // Singapore {Link missing from include list}
    -
    768 // Turkey {Link missing from include list}
    -
    769 // UCT {Link missing from include list}
    -
    770 // US/Alaska {Link missing from include list}
    -
    771 // US/Aleutian {Link missing from include list}
    -
    772 // US/Arizona {Link missing from include list}
    -
    773 // US/Central {Link missing from include list}
    -
    774 // US/East-Indiana {Link missing from include list}
    -
    775 // US/Eastern {Link missing from include list}
    -
    776 // US/Hawaii {Link missing from include list}
    -
    777 // US/Indiana-Starke {Link missing from include list}
    -
    778 // US/Michigan {Link missing from include list}
    -
    779 // US/Mountain {Link missing from include list}
    -
    780 // US/Samoa {Link missing from include list}
    -
    781 // UTC {Link missing from include list}
    -
    782 // Universal {Link missing from include list}
    -
    783 // W-SU {Link missing from include list}
    -
    784 // WET {Link missing from include list}
    -
    785 // Zulu {Link missing from include list}
    -
    786 
    -
    787 
    -
    788 //---------------------------------------------------------------------------
    -
    789 // Notable links: 0
    -
    790 //---------------------------------------------------------------------------
    -
    791 
    -
    792 
    -
    793 
    -
    794 }
    -
    795 }
    -
    796 
    -
    797 #endif
    -
    - - - - diff --git a/docs/html/testingzonedbc_2zone__policies_8cpp_source.html b/docs/html/testingzonedbc_2zone__policies_8cpp_source.html deleted file mode 100644 index 53cc60c7f..000000000 --- a/docs/html/testingzonedbc_2zone__policies_8cpp_source.html +++ /dev/null @@ -1,2969 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/zone_policies.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace testingzonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 2640
    -
    53 // Policies: 33
    -
    54 // Eras: 450
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 3709
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 600
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4140
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #include <zoneinfo/compat.h>
    -
    81 #include "zone_policies.h"
    -
    82 
    -
    83 namespace ace_time {
    -
    84 namespace testingzonedbc {
    -
    85 
    -
    86 //---------------------------------------------------------------------------
    -
    87 // Policies: 11
    -
    88 // Rules: 220
    -
    89 //---------------------------------------------------------------------------
    -
    90 
    -
    91 //---------------------------------------------------------------------------
    -
    92 // Policy name: Aus
    -
    93 // Rules: 1
    -
    94 //---------------------------------------------------------------------------
    -
    95 
    -
    96 static const complete::Info::ZoneRule kZoneRulesAus[] ACE_TIME_PROGMEM = {
    -
    97  // Anchor: Rule Aus 1943 1944 - Mar lastSun 2:00s 0 S
    -
    98  {
    -
    99  -32767 /*fromYear*/,
    -
    100  -32767 /*toYear*/,
    -
    101  1 /*inMonth*/,
    -
    102  0 /*onDayOfWeek*/,
    -
    103  1 /*onDayOfMonth*/,
    -
    104  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    105  0 /*atTimeCode (0/15)*/,
    -
    106  0 /*deltaMinutes*/,
    -
    107  3 /*letterIndex ("S")*/,
    -
    108  },
    -
    109 
    -
    110 };
    -
    111 
    -
    112 const complete::Info::ZonePolicy kZonePolicyAus ACE_TIME_PROGMEM = {
    -
    113  kZoneRulesAus /*rules*/,
    -
    114  1 /*numRules*/,
    -
    115 };
    -
    116 
    -
    117 //---------------------------------------------------------------------------
    -
    118 // Policy name: Canada
    -
    119 // Rules: 7
    -
    120 //---------------------------------------------------------------------------
    -
    121 
    -
    122 static const complete::Info::ZoneRule kZoneRulesCanada[] ACE_TIME_PROGMEM = {
    -
    123  // Anchor: Rule Canada 1945 only - Sep 30 2:00 0 S
    -
    124  {
    -
    125  -32767 /*fromYear*/,
    -
    126  -32767 /*toYear*/,
    -
    127  1 /*inMonth*/,
    -
    128  0 /*onDayOfWeek*/,
    -
    129  1 /*onDayOfMonth*/,
    -
    130  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    131  0 /*atTimeCode (0/15)*/,
    -
    132  0 /*deltaMinutes*/,
    -
    133  3 /*letterIndex ("S")*/,
    -
    134  },
    -
    135  // Rule Canada 1945 only - Sep 30 2:00 0 S
    -
    136  {
    -
    137  1945 /*fromYear*/,
    -
    138  1945 /*toYear*/,
    -
    139  9 /*inMonth*/,
    -
    140  0 /*onDayOfWeek*/,
    -
    141  30 /*onDayOfMonth*/,
    -
    142  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    143  480 /*atTimeCode (7200/15)*/,
    -
    144  0 /*deltaMinutes*/,
    -
    145  3 /*letterIndex ("S")*/,
    -
    146  },
    -
    147  // Rule Canada 1974 1986 - Apr lastSun 2:00 1:00 D
    -
    148  {
    -
    149  1974 /*fromYear*/,
    -
    150  1986 /*toYear*/,
    -
    151  4 /*inMonth*/,
    -
    152  7 /*onDayOfWeek*/,
    -
    153  0 /*onDayOfMonth*/,
    -
    154  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    155  480 /*atTimeCode (7200/15)*/,
    -
    156  60 /*deltaMinutes*/,
    -
    157  2 /*letterIndex ("D")*/,
    -
    158  },
    -
    159  // Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
    -
    160  {
    -
    161  1974 /*fromYear*/,
    -
    162  2006 /*toYear*/,
    -
    163  10 /*inMonth*/,
    -
    164  7 /*onDayOfWeek*/,
    -
    165  0 /*onDayOfMonth*/,
    -
    166  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    167  480 /*atTimeCode (7200/15)*/,
    -
    168  0 /*deltaMinutes*/,
    -
    169  3 /*letterIndex ("S")*/,
    -
    170  },
    -
    171  // Rule Canada 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    172  {
    -
    173  1987 /*fromYear*/,
    -
    174  2006 /*toYear*/,
    -
    175  4 /*inMonth*/,
    -
    176  7 /*onDayOfWeek*/,
    -
    177  1 /*onDayOfMonth*/,
    -
    178  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    179  480 /*atTimeCode (7200/15)*/,
    -
    180  60 /*deltaMinutes*/,
    -
    181  2 /*letterIndex ("D")*/,
    -
    182  },
    -
    183  // Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    184  {
    -
    185  2007 /*fromYear*/,
    -
    186  32766 /*toYear*/,
    -
    187  3 /*inMonth*/,
    -
    188  7 /*onDayOfWeek*/,
    -
    189  8 /*onDayOfMonth*/,
    -
    190  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    191  480 /*atTimeCode (7200/15)*/,
    -
    192  60 /*deltaMinutes*/,
    -
    193  2 /*letterIndex ("D")*/,
    -
    194  },
    -
    195  // Rule Canada 2007 max - Nov Sun>=1 2:00 0 S
    -
    196  {
    -
    197  2007 /*fromYear*/,
    -
    198  32766 /*toYear*/,
    -
    199  11 /*inMonth*/,
    -
    200  7 /*onDayOfWeek*/,
    -
    201  1 /*onDayOfMonth*/,
    -
    202  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    203  480 /*atTimeCode (7200/15)*/,
    -
    204  0 /*deltaMinutes*/,
    -
    205  3 /*letterIndex ("S")*/,
    -
    206  },
    -
    207 
    -
    208 };
    -
    209 
    -
    210 const complete::Info::ZonePolicy kZonePolicyCanada ACE_TIME_PROGMEM = {
    -
    211  kZoneRulesCanada /*rules*/,
    -
    212  7 /*numRules*/,
    -
    213 };
    -
    214 
    -
    215 //---------------------------------------------------------------------------
    -
    216 // Policy name: EU
    -
    217 // Rules: 6
    -
    218 //---------------------------------------------------------------------------
    -
    219 
    -
    220 static const complete::Info::ZoneRule kZoneRulesEU[] ACE_TIME_PROGMEM = {
    -
    221  // Anchor: Rule EU 1978 only - Oct 1 1:00u 0 -
    -
    222  {
    -
    223  -32767 /*fromYear*/,
    -
    224  -32767 /*toYear*/,
    -
    225  1 /*inMonth*/,
    -
    226  0 /*onDayOfWeek*/,
    -
    227  1 /*onDayOfMonth*/,
    -
    228  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    229  0 /*atTimeCode (0/15)*/,
    -
    230  0 /*deltaMinutes*/,
    -
    231  0 /*letterIndex ("")*/,
    -
    232  },
    -
    233  // Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S
    -
    234  {
    -
    235  1977 /*fromYear*/,
    -
    236  1980 /*toYear*/,
    -
    237  4 /*inMonth*/,
    -
    238  7 /*onDayOfWeek*/,
    -
    239  1 /*onDayOfMonth*/,
    -
    240  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    241  240 /*atTimeCode (3600/15)*/,
    -
    242  60 /*deltaMinutes*/,
    -
    243  3 /*letterIndex ("S")*/,
    -
    244  },
    -
    245  // Rule EU 1978 only - Oct 1 1:00u 0 -
    -
    246  {
    -
    247  1978 /*fromYear*/,
    -
    248  1978 /*toYear*/,
    -
    249  10 /*inMonth*/,
    -
    250  0 /*onDayOfWeek*/,
    -
    251  1 /*onDayOfMonth*/,
    -
    252  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    253  240 /*atTimeCode (3600/15)*/,
    -
    254  0 /*deltaMinutes*/,
    -
    255  0 /*letterIndex ("")*/,
    -
    256  },
    -
    257  // Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
    -
    258  {
    -
    259  1979 /*fromYear*/,
    -
    260  1995 /*toYear*/,
    -
    261  9 /*inMonth*/,
    -
    262  7 /*onDayOfWeek*/,
    -
    263  0 /*onDayOfMonth*/,
    -
    264  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    265  240 /*atTimeCode (3600/15)*/,
    -
    266  0 /*deltaMinutes*/,
    -
    267  0 /*letterIndex ("")*/,
    -
    268  },
    -
    269  // Rule EU 1981 max - Mar lastSun 1:00u 1:00 S
    -
    270  {
    -
    271  1981 /*fromYear*/,
    -
    272  32766 /*toYear*/,
    -
    273  3 /*inMonth*/,
    -
    274  7 /*onDayOfWeek*/,
    -
    275  0 /*onDayOfMonth*/,
    -
    276  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    277  240 /*atTimeCode (3600/15)*/,
    -
    278  60 /*deltaMinutes*/,
    -
    279  3 /*letterIndex ("S")*/,
    -
    280  },
    -
    281  // Rule EU 1996 max - Oct lastSun 1:00u 0 -
    -
    282  {
    -
    283  1996 /*fromYear*/,
    -
    284  32766 /*toYear*/,
    -
    285  10 /*inMonth*/,
    -
    286  7 /*onDayOfWeek*/,
    -
    287  0 /*onDayOfMonth*/,
    -
    288  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    289  240 /*atTimeCode (3600/15)*/,
    -
    290  0 /*deltaMinutes*/,
    -
    291  0 /*letterIndex ("")*/,
    -
    292  },
    -
    293 
    -
    294 };
    -
    295 
    -
    296 const complete::Info::ZonePolicy kZonePolicyEU ACE_TIME_PROGMEM = {
    -
    297  kZoneRulesEU /*rules*/,
    -
    298  6 /*numRules*/,
    -
    299 };
    -
    300 
    -
    301 //---------------------------------------------------------------------------
    -
    302 // Policy name: Edm
    -
    303 // Rules: 4
    -
    304 //---------------------------------------------------------------------------
    -
    305 
    -
    306 static const complete::Info::ZoneRule kZoneRulesEdm[] ACE_TIME_PROGMEM = {
    -
    307  // Anchor: Rule Edm 1947 only - Sep lastSun 2:00 0 S
    -
    308  {
    -
    309  -32767 /*fromYear*/,
    -
    310  -32767 /*toYear*/,
    -
    311  1 /*inMonth*/,
    -
    312  0 /*onDayOfWeek*/,
    -
    313  1 /*onDayOfMonth*/,
    -
    314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    315  0 /*atTimeCode (0/15)*/,
    -
    316  0 /*deltaMinutes*/,
    -
    317  3 /*letterIndex ("S")*/,
    -
    318  },
    -
    319  // Rule Edm 1947 only - Sep lastSun 2:00 0 S
    -
    320  {
    -
    321  1947 /*fromYear*/,
    -
    322  1947 /*toYear*/,
    -
    323  9 /*inMonth*/,
    -
    324  7 /*onDayOfWeek*/,
    -
    325  0 /*onDayOfMonth*/,
    -
    326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    327  480 /*atTimeCode (7200/15)*/,
    -
    328  0 /*deltaMinutes*/,
    -
    329  3 /*letterIndex ("S")*/,
    -
    330  },
    -
    331  // Rule Edm 1972 1986 - Apr lastSun 2:00 1:00 D
    -
    332  {
    -
    333  1972 /*fromYear*/,
    -
    334  1986 /*toYear*/,
    -
    335  4 /*inMonth*/,
    -
    336  7 /*onDayOfWeek*/,
    -
    337  0 /*onDayOfMonth*/,
    -
    338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    339  480 /*atTimeCode (7200/15)*/,
    -
    340  60 /*deltaMinutes*/,
    -
    341  2 /*letterIndex ("D")*/,
    -
    342  },
    -
    343  // Rule Edm 1972 2006 - Oct lastSun 2:00 0 S
    -
    344  {
    -
    345  1972 /*fromYear*/,
    -
    346  2006 /*toYear*/,
    -
    347  10 /*inMonth*/,
    -
    348  7 /*onDayOfWeek*/,
    -
    349  0 /*onDayOfMonth*/,
    -
    350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    351  480 /*atTimeCode (7200/15)*/,
    -
    352  0 /*deltaMinutes*/,
    -
    353  3 /*letterIndex ("S")*/,
    -
    354  },
    -
    355 
    -
    356 };
    -
    357 
    -
    358 const complete::Info::ZonePolicy kZonePolicyEdm ACE_TIME_PROGMEM = {
    -
    359  kZoneRulesEdm /*rules*/,
    -
    360  4 /*numRules*/,
    -
    361 };
    -
    362 
    -
    363 //---------------------------------------------------------------------------
    -
    364 // Policy name: Morocco
    -
    365 // Rules: 170
    -
    366 //---------------------------------------------------------------------------
    -
    367 
    -
    368 static const complete::Info::ZoneRule kZoneRulesMorocco[] ACE_TIME_PROGMEM = {
    -
    369  // Anchor: Rule Morocco 1978 only - Aug 4 0:00 0 -
    -
    370  {
    -
    371  -32767 /*fromYear*/,
    -
    372  -32767 /*toYear*/,
    -
    373  1 /*inMonth*/,
    -
    374  0 /*onDayOfWeek*/,
    -
    375  1 /*onDayOfMonth*/,
    -
    376  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    377  0 /*atTimeCode (0/15)*/,
    -
    378  0 /*deltaMinutes*/,
    -
    379  0 /*letterIndex ("")*/,
    -
    380  },
    -
    381  // Rule Morocco 1978 only - Aug 4 0:00 0 -
    -
    382  {
    -
    383  1978 /*fromYear*/,
    -
    384  1978 /*toYear*/,
    -
    385  8 /*inMonth*/,
    -
    386  0 /*onDayOfWeek*/,
    -
    387  4 /*onDayOfMonth*/,
    -
    388  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    389  0 /*atTimeCode (0/15)*/,
    -
    390  0 /*deltaMinutes*/,
    -
    391  0 /*letterIndex ("")*/,
    -
    392  },
    -
    393  // Rule Morocco 2008 only - Jun 1 0:00 1:00 -
    -
    394  {
    -
    395  2008 /*fromYear*/,
    -
    396  2008 /*toYear*/,
    -
    397  6 /*inMonth*/,
    -
    398  0 /*onDayOfWeek*/,
    -
    399  1 /*onDayOfMonth*/,
    -
    400  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    401  0 /*atTimeCode (0/15)*/,
    -
    402  60 /*deltaMinutes*/,
    -
    403  0 /*letterIndex ("")*/,
    -
    404  },
    -
    405  // Rule Morocco 2008 only - Sep 1 0:00 0 -
    -
    406  {
    -
    407  2008 /*fromYear*/,
    -
    408  2008 /*toYear*/,
    -
    409  9 /*inMonth*/,
    -
    410  0 /*onDayOfWeek*/,
    -
    411  1 /*onDayOfMonth*/,
    -
    412  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    413  0 /*atTimeCode (0/15)*/,
    -
    414  0 /*deltaMinutes*/,
    -
    415  0 /*letterIndex ("")*/,
    -
    416  },
    -
    417  // Rule Morocco 2009 only - Jun 1 0:00 1:00 -
    -
    418  {
    -
    419  2009 /*fromYear*/,
    -
    420  2009 /*toYear*/,
    -
    421  6 /*inMonth*/,
    -
    422  0 /*onDayOfWeek*/,
    -
    423  1 /*onDayOfMonth*/,
    -
    424  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    425  0 /*atTimeCode (0/15)*/,
    -
    426  60 /*deltaMinutes*/,
    -
    427  0 /*letterIndex ("")*/,
    -
    428  },
    -
    429  // Rule Morocco 2009 only - Aug 21 0:00 0 -
    -
    430  {
    -
    431  2009 /*fromYear*/,
    -
    432  2009 /*toYear*/,
    -
    433  8 /*inMonth*/,
    -
    434  0 /*onDayOfWeek*/,
    -
    435  21 /*onDayOfMonth*/,
    -
    436  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    437  0 /*atTimeCode (0/15)*/,
    -
    438  0 /*deltaMinutes*/,
    -
    439  0 /*letterIndex ("")*/,
    -
    440  },
    -
    441  // Rule Morocco 2010 only - May 2 0:00 1:00 -
    -
    442  {
    -
    443  2010 /*fromYear*/,
    -
    444  2010 /*toYear*/,
    -
    445  5 /*inMonth*/,
    -
    446  0 /*onDayOfWeek*/,
    -
    447  2 /*onDayOfMonth*/,
    -
    448  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    449  0 /*atTimeCode (0/15)*/,
    -
    450  60 /*deltaMinutes*/,
    -
    451  0 /*letterIndex ("")*/,
    -
    452  },
    -
    453  // Rule Morocco 2010 only - Aug 8 0:00 0 -
    -
    454  {
    -
    455  2010 /*fromYear*/,
    -
    456  2010 /*toYear*/,
    -
    457  8 /*inMonth*/,
    -
    458  0 /*onDayOfWeek*/,
    -
    459  8 /*onDayOfMonth*/,
    -
    460  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    461  0 /*atTimeCode (0/15)*/,
    -
    462  0 /*deltaMinutes*/,
    -
    463  0 /*letterIndex ("")*/,
    -
    464  },
    -
    465  // Rule Morocco 2011 only - Apr 3 0:00 1:00 -
    -
    466  {
    -
    467  2011 /*fromYear*/,
    -
    468  2011 /*toYear*/,
    -
    469  4 /*inMonth*/,
    -
    470  0 /*onDayOfWeek*/,
    -
    471  3 /*onDayOfMonth*/,
    -
    472  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    473  0 /*atTimeCode (0/15)*/,
    -
    474  60 /*deltaMinutes*/,
    -
    475  0 /*letterIndex ("")*/,
    -
    476  },
    -
    477  // Rule Morocco 2011 only - Jul 31 0:00 0 -
    -
    478  {
    -
    479  2011 /*fromYear*/,
    -
    480  2011 /*toYear*/,
    -
    481  7 /*inMonth*/,
    -
    482  0 /*onDayOfWeek*/,
    -
    483  31 /*onDayOfMonth*/,
    -
    484  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    485  0 /*atTimeCode (0/15)*/,
    -
    486  0 /*deltaMinutes*/,
    -
    487  0 /*letterIndex ("")*/,
    -
    488  },
    -
    489  // Rule Morocco 2012 2013 - Apr lastSun 2:00 1:00 -
    -
    490  {
    -
    491  2012 /*fromYear*/,
    -
    492  2013 /*toYear*/,
    -
    493  4 /*inMonth*/,
    -
    494  7 /*onDayOfWeek*/,
    -
    495  0 /*onDayOfMonth*/,
    -
    496  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    497  480 /*atTimeCode (7200/15)*/,
    -
    498  60 /*deltaMinutes*/,
    -
    499  0 /*letterIndex ("")*/,
    -
    500  },
    -
    501  // Rule Morocco 2012 only - Jul 20 3:00 0 -
    -
    502  {
    -
    503  2012 /*fromYear*/,
    -
    504  2012 /*toYear*/,
    -
    505  7 /*inMonth*/,
    -
    506  0 /*onDayOfWeek*/,
    -
    507  20 /*onDayOfMonth*/,
    -
    508  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    509  720 /*atTimeCode (10800/15)*/,
    -
    510  0 /*deltaMinutes*/,
    -
    511  0 /*letterIndex ("")*/,
    -
    512  },
    -
    513  // Rule Morocco 2012 only - Aug 20 2:00 1:00 -
    -
    514  {
    -
    515  2012 /*fromYear*/,
    -
    516  2012 /*toYear*/,
    -
    517  8 /*inMonth*/,
    -
    518  0 /*onDayOfWeek*/,
    -
    519  20 /*onDayOfMonth*/,
    -
    520  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    521  480 /*atTimeCode (7200/15)*/,
    -
    522  60 /*deltaMinutes*/,
    -
    523  0 /*letterIndex ("")*/,
    -
    524  },
    -
    525  // Rule Morocco 2012 only - Sep 30 3:00 0 -
    -
    526  {
    -
    527  2012 /*fromYear*/,
    -
    528  2012 /*toYear*/,
    -
    529  9 /*inMonth*/,
    -
    530  0 /*onDayOfWeek*/,
    -
    531  30 /*onDayOfMonth*/,
    -
    532  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    533  720 /*atTimeCode (10800/15)*/,
    -
    534  0 /*deltaMinutes*/,
    -
    535  0 /*letterIndex ("")*/,
    -
    536  },
    -
    537  // Rule Morocco 2013 only - Jul 7 3:00 0 -
    -
    538  {
    -
    539  2013 /*fromYear*/,
    -
    540  2013 /*toYear*/,
    -
    541  7 /*inMonth*/,
    -
    542  0 /*onDayOfWeek*/,
    -
    543  7 /*onDayOfMonth*/,
    -
    544  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    545  720 /*atTimeCode (10800/15)*/,
    -
    546  0 /*deltaMinutes*/,
    -
    547  0 /*letterIndex ("")*/,
    -
    548  },
    -
    549  // Rule Morocco 2013 only - Aug 10 2:00 1:00 -
    -
    550  {
    -
    551  2013 /*fromYear*/,
    -
    552  2013 /*toYear*/,
    -
    553  8 /*inMonth*/,
    -
    554  0 /*onDayOfWeek*/,
    -
    555  10 /*onDayOfMonth*/,
    -
    556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    557  480 /*atTimeCode (7200/15)*/,
    -
    558  60 /*deltaMinutes*/,
    -
    559  0 /*letterIndex ("")*/,
    -
    560  },
    -
    561  // Rule Morocco 2013 2018 - Oct lastSun 3:00 0 -
    -
    562  {
    -
    563  2013 /*fromYear*/,
    -
    564  2018 /*toYear*/,
    -
    565  10 /*inMonth*/,
    -
    566  7 /*onDayOfWeek*/,
    -
    567  0 /*onDayOfMonth*/,
    -
    568  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    569  720 /*atTimeCode (10800/15)*/,
    -
    570  0 /*deltaMinutes*/,
    -
    571  0 /*letterIndex ("")*/,
    -
    572  },
    -
    573  // Rule Morocco 2014 2018 - Mar lastSun 2:00 1:00 -
    -
    574  {
    -
    575  2014 /*fromYear*/,
    -
    576  2018 /*toYear*/,
    -
    577  3 /*inMonth*/,
    -
    578  7 /*onDayOfWeek*/,
    -
    579  0 /*onDayOfMonth*/,
    -
    580  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    581  480 /*atTimeCode (7200/15)*/,
    -
    582  60 /*deltaMinutes*/,
    -
    583  0 /*letterIndex ("")*/,
    -
    584  },
    -
    585  // Rule Morocco 2014 only - Jun 28 3:00 0 -
    -
    586  {
    -
    587  2014 /*fromYear*/,
    -
    588  2014 /*toYear*/,
    -
    589  6 /*inMonth*/,
    -
    590  0 /*onDayOfWeek*/,
    -
    591  28 /*onDayOfMonth*/,
    -
    592  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    593  720 /*atTimeCode (10800/15)*/,
    -
    594  0 /*deltaMinutes*/,
    -
    595  0 /*letterIndex ("")*/,
    -
    596  },
    -
    597  // Rule Morocco 2014 only - Aug 2 2:00 1:00 -
    -
    598  {
    -
    599  2014 /*fromYear*/,
    -
    600  2014 /*toYear*/,
    -
    601  8 /*inMonth*/,
    -
    602  0 /*onDayOfWeek*/,
    -
    603  2 /*onDayOfMonth*/,
    -
    604  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    605  480 /*atTimeCode (7200/15)*/,
    -
    606  60 /*deltaMinutes*/,
    -
    607  0 /*letterIndex ("")*/,
    -
    608  },
    -
    609  // Rule Morocco 2015 only - Jun 14 3:00 0 -
    -
    610  {
    -
    611  2015 /*fromYear*/,
    -
    612  2015 /*toYear*/,
    -
    613  6 /*inMonth*/,
    -
    614  0 /*onDayOfWeek*/,
    -
    615  14 /*onDayOfMonth*/,
    -
    616  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    617  720 /*atTimeCode (10800/15)*/,
    -
    618  0 /*deltaMinutes*/,
    -
    619  0 /*letterIndex ("")*/,
    -
    620  },
    -
    621  // Rule Morocco 2015 only - Jul 19 2:00 1:00 -
    -
    622  {
    -
    623  2015 /*fromYear*/,
    -
    624  2015 /*toYear*/,
    -
    625  7 /*inMonth*/,
    -
    626  0 /*onDayOfWeek*/,
    -
    627  19 /*onDayOfMonth*/,
    -
    628  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    629  480 /*atTimeCode (7200/15)*/,
    -
    630  60 /*deltaMinutes*/,
    -
    631  0 /*letterIndex ("")*/,
    -
    632  },
    -
    633  // Rule Morocco 2016 only - Jun 5 3:00 0 -
    -
    634  {
    -
    635  2016 /*fromYear*/,
    -
    636  2016 /*toYear*/,
    -
    637  6 /*inMonth*/,
    -
    638  0 /*onDayOfWeek*/,
    -
    639  5 /*onDayOfMonth*/,
    -
    640  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    641  720 /*atTimeCode (10800/15)*/,
    -
    642  0 /*deltaMinutes*/,
    -
    643  0 /*letterIndex ("")*/,
    -
    644  },
    -
    645  // Rule Morocco 2016 only - Jul 10 2:00 1:00 -
    -
    646  {
    -
    647  2016 /*fromYear*/,
    -
    648  2016 /*toYear*/,
    -
    649  7 /*inMonth*/,
    -
    650  0 /*onDayOfWeek*/,
    -
    651  10 /*onDayOfMonth*/,
    -
    652  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    653  480 /*atTimeCode (7200/15)*/,
    -
    654  60 /*deltaMinutes*/,
    -
    655  0 /*letterIndex ("")*/,
    -
    656  },
    -
    657  // Rule Morocco 2017 only - May 21 3:00 0 -
    -
    658  {
    -
    659  2017 /*fromYear*/,
    -
    660  2017 /*toYear*/,
    -
    661  5 /*inMonth*/,
    -
    662  0 /*onDayOfWeek*/,
    -
    663  21 /*onDayOfMonth*/,
    -
    664  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    665  720 /*atTimeCode (10800/15)*/,
    -
    666  0 /*deltaMinutes*/,
    -
    667  0 /*letterIndex ("")*/,
    -
    668  },
    -
    669  // Rule Morocco 2017 only - Jul 2 2:00 1:00 -
    -
    670  {
    -
    671  2017 /*fromYear*/,
    -
    672  2017 /*toYear*/,
    -
    673  7 /*inMonth*/,
    -
    674  0 /*onDayOfWeek*/,
    -
    675  2 /*onDayOfMonth*/,
    -
    676  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    677  480 /*atTimeCode (7200/15)*/,
    -
    678  60 /*deltaMinutes*/,
    -
    679  0 /*letterIndex ("")*/,
    -
    680  },
    -
    681  // Rule Morocco 2018 only - May 13 3:00 0 -
    -
    682  {
    -
    683  2018 /*fromYear*/,
    -
    684  2018 /*toYear*/,
    -
    685  5 /*inMonth*/,
    -
    686  0 /*onDayOfWeek*/,
    -
    687  13 /*onDayOfMonth*/,
    -
    688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    689  720 /*atTimeCode (10800/15)*/,
    -
    690  0 /*deltaMinutes*/,
    -
    691  0 /*letterIndex ("")*/,
    -
    692  },
    -
    693  // Rule Morocco 2018 only - Jun 17 2:00 1:00 -
    -
    694  {
    -
    695  2018 /*fromYear*/,
    -
    696  2018 /*toYear*/,
    -
    697  6 /*inMonth*/,
    -
    698  0 /*onDayOfWeek*/,
    -
    699  17 /*onDayOfMonth*/,
    -
    700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    701  480 /*atTimeCode (7200/15)*/,
    -
    702  60 /*deltaMinutes*/,
    -
    703  0 /*letterIndex ("")*/,
    -
    704  },
    -
    705  // Rule Morocco 2019 only - May 5 3:00 -1:00 -
    -
    706  {
    -
    707  2019 /*fromYear*/,
    -
    708  2019 /*toYear*/,
    -
    709  5 /*inMonth*/,
    -
    710  0 /*onDayOfWeek*/,
    -
    711  5 /*onDayOfMonth*/,
    -
    712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    713  720 /*atTimeCode (10800/15)*/,
    -
    714  -60 /*deltaMinutes*/,
    -
    715  0 /*letterIndex ("")*/,
    -
    716  },
    -
    717  // Rule Morocco 2019 only - Jun 9 2:00 0 -
    -
    718  {
    -
    719  2019 /*fromYear*/,
    -
    720  2019 /*toYear*/,
    -
    721  6 /*inMonth*/,
    -
    722  0 /*onDayOfWeek*/,
    -
    723  9 /*onDayOfMonth*/,
    -
    724  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    725  480 /*atTimeCode (7200/15)*/,
    -
    726  0 /*deltaMinutes*/,
    -
    727  0 /*letterIndex ("")*/,
    -
    728  },
    -
    729  // Rule Morocco 2020 only - Apr 19 3:00 -1:00 -
    -
    730  {
    -
    731  2020 /*fromYear*/,
    -
    732  2020 /*toYear*/,
    -
    733  4 /*inMonth*/,
    -
    734  0 /*onDayOfWeek*/,
    -
    735  19 /*onDayOfMonth*/,
    -
    736  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    737  720 /*atTimeCode (10800/15)*/,
    -
    738  -60 /*deltaMinutes*/,
    -
    739  0 /*letterIndex ("")*/,
    -
    740  },
    -
    741  // Rule Morocco 2020 only - May 31 2:00 0 -
    -
    742  {
    -
    743  2020 /*fromYear*/,
    -
    744  2020 /*toYear*/,
    -
    745  5 /*inMonth*/,
    -
    746  0 /*onDayOfWeek*/,
    -
    747  31 /*onDayOfMonth*/,
    -
    748  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    749  480 /*atTimeCode (7200/15)*/,
    -
    750  0 /*deltaMinutes*/,
    -
    751  0 /*letterIndex ("")*/,
    -
    752  },
    -
    753  // Rule Morocco 2021 only - Apr 11 3:00 -1:00 -
    -
    754  {
    -
    755  2021 /*fromYear*/,
    -
    756  2021 /*toYear*/,
    -
    757  4 /*inMonth*/,
    -
    758  0 /*onDayOfWeek*/,
    -
    759  11 /*onDayOfMonth*/,
    -
    760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    761  720 /*atTimeCode (10800/15)*/,
    -
    762  -60 /*deltaMinutes*/,
    -
    763  0 /*letterIndex ("")*/,
    -
    764  },
    -
    765  // Rule Morocco 2021 only - May 16 2:00 0 -
    -
    766  {
    -
    767  2021 /*fromYear*/,
    -
    768  2021 /*toYear*/,
    -
    769  5 /*inMonth*/,
    -
    770  0 /*onDayOfWeek*/,
    -
    771  16 /*onDayOfMonth*/,
    -
    772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    773  480 /*atTimeCode (7200/15)*/,
    -
    774  0 /*deltaMinutes*/,
    -
    775  0 /*letterIndex ("")*/,
    -
    776  },
    -
    777  // Rule Morocco 2022 only - Mar 27 3:00 -1:00 -
    -
    778  {
    -
    779  2022 /*fromYear*/,
    -
    780  2022 /*toYear*/,
    -
    781  3 /*inMonth*/,
    -
    782  0 /*onDayOfWeek*/,
    -
    783  27 /*onDayOfMonth*/,
    -
    784  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    785  720 /*atTimeCode (10800/15)*/,
    -
    786  -60 /*deltaMinutes*/,
    -
    787  0 /*letterIndex ("")*/,
    -
    788  },
    -
    789  // Rule Morocco 2022 only - May 8 2:00 0 -
    -
    790  {
    -
    791  2022 /*fromYear*/,
    -
    792  2022 /*toYear*/,
    -
    793  5 /*inMonth*/,
    -
    794  0 /*onDayOfWeek*/,
    -
    795  8 /*onDayOfMonth*/,
    -
    796  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    797  480 /*atTimeCode (7200/15)*/,
    -
    798  0 /*deltaMinutes*/,
    -
    799  0 /*letterIndex ("")*/,
    -
    800  },
    -
    801  // Rule Morocco 2023 only - Mar 19 3:00 -1:00 -
    -
    802  {
    -
    803  2023 /*fromYear*/,
    -
    804  2023 /*toYear*/,
    -
    805  3 /*inMonth*/,
    -
    806  0 /*onDayOfWeek*/,
    -
    807  19 /*onDayOfMonth*/,
    -
    808  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    809  720 /*atTimeCode (10800/15)*/,
    -
    810  -60 /*deltaMinutes*/,
    -
    811  0 /*letterIndex ("")*/,
    -
    812  },
    -
    813  // Rule Morocco 2023 only - Apr 23 2:00 0 -
    -
    814  {
    -
    815  2023 /*fromYear*/,
    -
    816  2023 /*toYear*/,
    -
    817  4 /*inMonth*/,
    -
    818  0 /*onDayOfWeek*/,
    -
    819  23 /*onDayOfMonth*/,
    -
    820  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    821  480 /*atTimeCode (7200/15)*/,
    -
    822  0 /*deltaMinutes*/,
    -
    823  0 /*letterIndex ("")*/,
    -
    824  },
    -
    825  // Rule Morocco 2024 only - Mar 10 3:00 -1:00 -
    -
    826  {
    -
    827  2024 /*fromYear*/,
    -
    828  2024 /*toYear*/,
    -
    829  3 /*inMonth*/,
    -
    830  0 /*onDayOfWeek*/,
    -
    831  10 /*onDayOfMonth*/,
    -
    832  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    833  720 /*atTimeCode (10800/15)*/,
    -
    834  -60 /*deltaMinutes*/,
    -
    835  0 /*letterIndex ("")*/,
    -
    836  },
    -
    837  // Rule Morocco 2024 only - Apr 14 2:00 0 -
    -
    838  {
    -
    839  2024 /*fromYear*/,
    -
    840  2024 /*toYear*/,
    -
    841  4 /*inMonth*/,
    -
    842  0 /*onDayOfWeek*/,
    -
    843  14 /*onDayOfMonth*/,
    -
    844  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    845  480 /*atTimeCode (7200/15)*/,
    -
    846  0 /*deltaMinutes*/,
    -
    847  0 /*letterIndex ("")*/,
    -
    848  },
    -
    849  // Rule Morocco 2025 only - Feb 23 3:00 -1:00 -
    -
    850  {
    -
    851  2025 /*fromYear*/,
    -
    852  2025 /*toYear*/,
    -
    853  2 /*inMonth*/,
    -
    854  0 /*onDayOfWeek*/,
    -
    855  23 /*onDayOfMonth*/,
    -
    856  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    857  720 /*atTimeCode (10800/15)*/,
    -
    858  -60 /*deltaMinutes*/,
    -
    859  0 /*letterIndex ("")*/,
    -
    860  },
    -
    861  // Rule Morocco 2025 only - Apr 6 2:00 0 -
    -
    862  {
    -
    863  2025 /*fromYear*/,
    -
    864  2025 /*toYear*/,
    -
    865  4 /*inMonth*/,
    -
    866  0 /*onDayOfWeek*/,
    -
    867  6 /*onDayOfMonth*/,
    -
    868  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    869  480 /*atTimeCode (7200/15)*/,
    -
    870  0 /*deltaMinutes*/,
    -
    871  0 /*letterIndex ("")*/,
    -
    872  },
    -
    873  // Rule Morocco 2026 only - Feb 15 3:00 -1:00 -
    -
    874  {
    -
    875  2026 /*fromYear*/,
    -
    876  2026 /*toYear*/,
    -
    877  2 /*inMonth*/,
    -
    878  0 /*onDayOfWeek*/,
    -
    879  15 /*onDayOfMonth*/,
    -
    880  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    881  720 /*atTimeCode (10800/15)*/,
    -
    882  -60 /*deltaMinutes*/,
    -
    883  0 /*letterIndex ("")*/,
    -
    884  },
    -
    885  // Rule Morocco 2026 only - Mar 22 2:00 0 -
    -
    886  {
    -
    887  2026 /*fromYear*/,
    -
    888  2026 /*toYear*/,
    -
    889  3 /*inMonth*/,
    -
    890  0 /*onDayOfWeek*/,
    -
    891  22 /*onDayOfMonth*/,
    -
    892  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    893  480 /*atTimeCode (7200/15)*/,
    -
    894  0 /*deltaMinutes*/,
    -
    895  0 /*letterIndex ("")*/,
    -
    896  },
    -
    897  // Rule Morocco 2027 only - Feb 7 3:00 -1:00 -
    -
    898  {
    -
    899  2027 /*fromYear*/,
    -
    900  2027 /*toYear*/,
    -
    901  2 /*inMonth*/,
    -
    902  0 /*onDayOfWeek*/,
    -
    903  7 /*onDayOfMonth*/,
    -
    904  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    905  720 /*atTimeCode (10800/15)*/,
    -
    906  -60 /*deltaMinutes*/,
    -
    907  0 /*letterIndex ("")*/,
    -
    908  },
    -
    909  // Rule Morocco 2027 only - Mar 14 2:00 0 -
    -
    910  {
    -
    911  2027 /*fromYear*/,
    -
    912  2027 /*toYear*/,
    -
    913  3 /*inMonth*/,
    -
    914  0 /*onDayOfWeek*/,
    -
    915  14 /*onDayOfMonth*/,
    -
    916  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    917  480 /*atTimeCode (7200/15)*/,
    -
    918  0 /*deltaMinutes*/,
    -
    919  0 /*letterIndex ("")*/,
    -
    920  },
    -
    921  // Rule Morocco 2028 only - Jan 23 3:00 -1:00 -
    -
    922  {
    -
    923  2028 /*fromYear*/,
    -
    924  2028 /*toYear*/,
    -
    925  1 /*inMonth*/,
    -
    926  0 /*onDayOfWeek*/,
    -
    927  23 /*onDayOfMonth*/,
    -
    928  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    929  720 /*atTimeCode (10800/15)*/,
    -
    930  -60 /*deltaMinutes*/,
    -
    931  0 /*letterIndex ("")*/,
    -
    932  },
    -
    933  // Rule Morocco 2028 only - Mar 5 2:00 0 -
    -
    934  {
    -
    935  2028 /*fromYear*/,
    -
    936  2028 /*toYear*/,
    -
    937  3 /*inMonth*/,
    -
    938  0 /*onDayOfWeek*/,
    -
    939  5 /*onDayOfMonth*/,
    -
    940  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    941  480 /*atTimeCode (7200/15)*/,
    -
    942  0 /*deltaMinutes*/,
    -
    943  0 /*letterIndex ("")*/,
    -
    944  },
    -
    945  // Rule Morocco 2029 only - Jan 14 3:00 -1:00 -
    -
    946  {
    -
    947  2029 /*fromYear*/,
    -
    948  2029 /*toYear*/,
    -
    949  1 /*inMonth*/,
    -
    950  0 /*onDayOfWeek*/,
    -
    951  14 /*onDayOfMonth*/,
    -
    952  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    953  720 /*atTimeCode (10800/15)*/,
    -
    954  -60 /*deltaMinutes*/,
    -
    955  0 /*letterIndex ("")*/,
    -
    956  },
    -
    957  // Rule Morocco 2029 only - Feb 18 2:00 0 -
    -
    958  {
    -
    959  2029 /*fromYear*/,
    -
    960  2029 /*toYear*/,
    -
    961  2 /*inMonth*/,
    -
    962  0 /*onDayOfWeek*/,
    -
    963  18 /*onDayOfMonth*/,
    -
    964  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    965  480 /*atTimeCode (7200/15)*/,
    -
    966  0 /*deltaMinutes*/,
    -
    967  0 /*letterIndex ("")*/,
    -
    968  },
    -
    969  // Rule Morocco 2029 only - Dec 30 3:00 -1:00 -
    -
    970  {
    -
    971  2029 /*fromYear*/,
    -
    972  2029 /*toYear*/,
    -
    973  12 /*inMonth*/,
    -
    974  0 /*onDayOfWeek*/,
    -
    975  30 /*onDayOfMonth*/,
    -
    976  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    977  720 /*atTimeCode (10800/15)*/,
    -
    978  -60 /*deltaMinutes*/,
    -
    979  0 /*letterIndex ("")*/,
    -
    980  },
    -
    981  // Rule Morocco 2030 only - Feb 10 2:00 0 -
    -
    982  {
    -
    983  2030 /*fromYear*/,
    -
    984  2030 /*toYear*/,
    -
    985  2 /*inMonth*/,
    -
    986  0 /*onDayOfWeek*/,
    -
    987  10 /*onDayOfMonth*/,
    -
    988  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    989  480 /*atTimeCode (7200/15)*/,
    -
    990  0 /*deltaMinutes*/,
    -
    991  0 /*letterIndex ("")*/,
    -
    992  },
    -
    993  // Rule Morocco 2030 only - Dec 22 3:00 -1:00 -
    -
    994  {
    -
    995  2030 /*fromYear*/,
    -
    996  2030 /*toYear*/,
    -
    997  12 /*inMonth*/,
    -
    998  0 /*onDayOfWeek*/,
    -
    999  22 /*onDayOfMonth*/,
    -
    1000  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1001  720 /*atTimeCode (10800/15)*/,
    -
    1002  -60 /*deltaMinutes*/,
    -
    1003  0 /*letterIndex ("")*/,
    -
    1004  },
    -
    1005  // Rule Morocco 2031 only - Jan 26 2:00 0 -
    -
    1006  {
    -
    1007  2031 /*fromYear*/,
    -
    1008  2031 /*toYear*/,
    -
    1009  1 /*inMonth*/,
    -
    1010  0 /*onDayOfWeek*/,
    -
    1011  26 /*onDayOfMonth*/,
    -
    1012  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1013  480 /*atTimeCode (7200/15)*/,
    -
    1014  0 /*deltaMinutes*/,
    -
    1015  0 /*letterIndex ("")*/,
    -
    1016  },
    -
    1017  // Rule Morocco 2031 only - Dec 14 3:00 -1:00 -
    -
    1018  {
    -
    1019  2031 /*fromYear*/,
    -
    1020  2031 /*toYear*/,
    -
    1021  12 /*inMonth*/,
    -
    1022  0 /*onDayOfWeek*/,
    -
    1023  14 /*onDayOfMonth*/,
    -
    1024  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1025  720 /*atTimeCode (10800/15)*/,
    -
    1026  -60 /*deltaMinutes*/,
    -
    1027  0 /*letterIndex ("")*/,
    -
    1028  },
    -
    1029  // Rule Morocco 2032 only - Jan 18 2:00 0 -
    -
    1030  {
    -
    1031  2032 /*fromYear*/,
    -
    1032  2032 /*toYear*/,
    -
    1033  1 /*inMonth*/,
    -
    1034  0 /*onDayOfWeek*/,
    -
    1035  18 /*onDayOfMonth*/,
    -
    1036  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1037  480 /*atTimeCode (7200/15)*/,
    -
    1038  0 /*deltaMinutes*/,
    -
    1039  0 /*letterIndex ("")*/,
    -
    1040  },
    -
    1041  // Rule Morocco 2032 only - Nov 28 3:00 -1:00 -
    -
    1042  {
    -
    1043  2032 /*fromYear*/,
    -
    1044  2032 /*toYear*/,
    -
    1045  11 /*inMonth*/,
    -
    1046  0 /*onDayOfWeek*/,
    -
    1047  28 /*onDayOfMonth*/,
    -
    1048  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1049  720 /*atTimeCode (10800/15)*/,
    -
    1050  -60 /*deltaMinutes*/,
    -
    1051  0 /*letterIndex ("")*/,
    -
    1052  },
    -
    1053  // Rule Morocco 2033 only - Jan 9 2:00 0 -
    -
    1054  {
    -
    1055  2033 /*fromYear*/,
    -
    1056  2033 /*toYear*/,
    -
    1057  1 /*inMonth*/,
    -
    1058  0 /*onDayOfWeek*/,
    -
    1059  9 /*onDayOfMonth*/,
    -
    1060  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1061  480 /*atTimeCode (7200/15)*/,
    -
    1062  0 /*deltaMinutes*/,
    -
    1063  0 /*letterIndex ("")*/,
    -
    1064  },
    -
    1065  // Rule Morocco 2033 only - Nov 20 3:00 -1:00 -
    -
    1066  {
    -
    1067  2033 /*fromYear*/,
    -
    1068  2033 /*toYear*/,
    -
    1069  11 /*inMonth*/,
    -
    1070  0 /*onDayOfWeek*/,
    -
    1071  20 /*onDayOfMonth*/,
    -
    1072  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1073  720 /*atTimeCode (10800/15)*/,
    -
    1074  -60 /*deltaMinutes*/,
    -
    1075  0 /*letterIndex ("")*/,
    -
    1076  },
    -
    1077  // Rule Morocco 2033 only - Dec 25 2:00 0 -
    -
    1078  {
    -
    1079  2033 /*fromYear*/,
    -
    1080  2033 /*toYear*/,
    -
    1081  12 /*inMonth*/,
    -
    1082  0 /*onDayOfWeek*/,
    -
    1083  25 /*onDayOfMonth*/,
    -
    1084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1085  480 /*atTimeCode (7200/15)*/,
    -
    1086  0 /*deltaMinutes*/,
    -
    1087  0 /*letterIndex ("")*/,
    -
    1088  },
    -
    1089  // Rule Morocco 2034 only - Nov 5 3:00 -1:00 -
    -
    1090  {
    -
    1091  2034 /*fromYear*/,
    -
    1092  2034 /*toYear*/,
    -
    1093  11 /*inMonth*/,
    -
    1094  0 /*onDayOfWeek*/,
    -
    1095  5 /*onDayOfMonth*/,
    -
    1096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1097  720 /*atTimeCode (10800/15)*/,
    -
    1098  -60 /*deltaMinutes*/,
    -
    1099  0 /*letterIndex ("")*/,
    -
    1100  },
    -
    1101  // Rule Morocco 2034 only - Dec 17 2:00 0 -
    -
    1102  {
    -
    1103  2034 /*fromYear*/,
    -
    1104  2034 /*toYear*/,
    -
    1105  12 /*inMonth*/,
    -
    1106  0 /*onDayOfWeek*/,
    -
    1107  17 /*onDayOfMonth*/,
    -
    1108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1109  480 /*atTimeCode (7200/15)*/,
    -
    1110  0 /*deltaMinutes*/,
    -
    1111  0 /*letterIndex ("")*/,
    -
    1112  },
    -
    1113  // Rule Morocco 2035 only - Oct 28 3:00 -1:00 -
    -
    1114  {
    -
    1115  2035 /*fromYear*/,
    -
    1116  2035 /*toYear*/,
    -
    1117  10 /*inMonth*/,
    -
    1118  0 /*onDayOfWeek*/,
    -
    1119  28 /*onDayOfMonth*/,
    -
    1120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1121  720 /*atTimeCode (10800/15)*/,
    -
    1122  -60 /*deltaMinutes*/,
    -
    1123  0 /*letterIndex ("")*/,
    -
    1124  },
    -
    1125  // Rule Morocco 2035 only - Dec 9 2:00 0 -
    -
    1126  {
    -
    1127  2035 /*fromYear*/,
    -
    1128  2035 /*toYear*/,
    -
    1129  12 /*inMonth*/,
    -
    1130  0 /*onDayOfWeek*/,
    -
    1131  9 /*onDayOfMonth*/,
    -
    1132  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1133  480 /*atTimeCode (7200/15)*/,
    -
    1134  0 /*deltaMinutes*/,
    -
    1135  0 /*letterIndex ("")*/,
    -
    1136  },
    -
    1137  // Rule Morocco 2036 only - Oct 19 3:00 -1:00 -
    -
    1138  {
    -
    1139  2036 /*fromYear*/,
    -
    1140  2036 /*toYear*/,
    -
    1141  10 /*inMonth*/,
    -
    1142  0 /*onDayOfWeek*/,
    -
    1143  19 /*onDayOfMonth*/,
    -
    1144  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1145  720 /*atTimeCode (10800/15)*/,
    -
    1146  -60 /*deltaMinutes*/,
    -
    1147  0 /*letterIndex ("")*/,
    -
    1148  },
    -
    1149  // Rule Morocco 2036 only - Nov 23 2:00 0 -
    -
    1150  {
    -
    1151  2036 /*fromYear*/,
    -
    1152  2036 /*toYear*/,
    -
    1153  11 /*inMonth*/,
    -
    1154  0 /*onDayOfWeek*/,
    -
    1155  23 /*onDayOfMonth*/,
    -
    1156  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1157  480 /*atTimeCode (7200/15)*/,
    -
    1158  0 /*deltaMinutes*/,
    -
    1159  0 /*letterIndex ("")*/,
    -
    1160  },
    -
    1161  // Rule Morocco 2037 only - Oct 4 3:00 -1:00 -
    -
    1162  {
    -
    1163  2037 /*fromYear*/,
    -
    1164  2037 /*toYear*/,
    -
    1165  10 /*inMonth*/,
    -
    1166  0 /*onDayOfWeek*/,
    -
    1167  4 /*onDayOfMonth*/,
    -
    1168  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1169  720 /*atTimeCode (10800/15)*/,
    -
    1170  -60 /*deltaMinutes*/,
    -
    1171  0 /*letterIndex ("")*/,
    -
    1172  },
    -
    1173  // Rule Morocco 2037 only - Nov 15 2:00 0 -
    -
    1174  {
    -
    1175  2037 /*fromYear*/,
    -
    1176  2037 /*toYear*/,
    -
    1177  11 /*inMonth*/,
    -
    1178  0 /*onDayOfWeek*/,
    -
    1179  15 /*onDayOfMonth*/,
    -
    1180  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1181  480 /*atTimeCode (7200/15)*/,
    -
    1182  0 /*deltaMinutes*/,
    -
    1183  0 /*letterIndex ("")*/,
    -
    1184  },
    -
    1185  // Rule Morocco 2038 only - Sep 26 3:00 -1:00 -
    -
    1186  {
    -
    1187  2038 /*fromYear*/,
    -
    1188  2038 /*toYear*/,
    -
    1189  9 /*inMonth*/,
    -
    1190  0 /*onDayOfWeek*/,
    -
    1191  26 /*onDayOfMonth*/,
    -
    1192  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1193  720 /*atTimeCode (10800/15)*/,
    -
    1194  -60 /*deltaMinutes*/,
    -
    1195  0 /*letterIndex ("")*/,
    -
    1196  },
    -
    1197  // Rule Morocco 2038 only - Oct 31 2:00 0 -
    -
    1198  {
    -
    1199  2038 /*fromYear*/,
    -
    1200  2038 /*toYear*/,
    -
    1201  10 /*inMonth*/,
    -
    1202  0 /*onDayOfWeek*/,
    -
    1203  31 /*onDayOfMonth*/,
    -
    1204  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1205  480 /*atTimeCode (7200/15)*/,
    -
    1206  0 /*deltaMinutes*/,
    -
    1207  0 /*letterIndex ("")*/,
    -
    1208  },
    -
    1209  // Rule Morocco 2039 only - Sep 18 3:00 -1:00 -
    -
    1210  {
    -
    1211  2039 /*fromYear*/,
    -
    1212  2039 /*toYear*/,
    -
    1213  9 /*inMonth*/,
    -
    1214  0 /*onDayOfWeek*/,
    -
    1215  18 /*onDayOfMonth*/,
    -
    1216  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1217  720 /*atTimeCode (10800/15)*/,
    -
    1218  -60 /*deltaMinutes*/,
    -
    1219  0 /*letterIndex ("")*/,
    -
    1220  },
    -
    1221  // Rule Morocco 2039 only - Oct 23 2:00 0 -
    -
    1222  {
    -
    1223  2039 /*fromYear*/,
    -
    1224  2039 /*toYear*/,
    -
    1225  10 /*inMonth*/,
    -
    1226  0 /*onDayOfWeek*/,
    -
    1227  23 /*onDayOfMonth*/,
    -
    1228  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1229  480 /*atTimeCode (7200/15)*/,
    -
    1230  0 /*deltaMinutes*/,
    -
    1231  0 /*letterIndex ("")*/,
    -
    1232  },
    -
    1233  // Rule Morocco 2040 only - Sep 2 3:00 -1:00 -
    -
    1234  {
    -
    1235  2040 /*fromYear*/,
    -
    1236  2040 /*toYear*/,
    -
    1237  9 /*inMonth*/,
    -
    1238  0 /*onDayOfWeek*/,
    -
    1239  2 /*onDayOfMonth*/,
    -
    1240  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1241  720 /*atTimeCode (10800/15)*/,
    -
    1242  -60 /*deltaMinutes*/,
    -
    1243  0 /*letterIndex ("")*/,
    -
    1244  },
    -
    1245  // Rule Morocco 2040 only - Oct 14 2:00 0 -
    -
    1246  {
    -
    1247  2040 /*fromYear*/,
    -
    1248  2040 /*toYear*/,
    -
    1249  10 /*inMonth*/,
    -
    1250  0 /*onDayOfWeek*/,
    -
    1251  14 /*onDayOfMonth*/,
    -
    1252  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1253  480 /*atTimeCode (7200/15)*/,
    -
    1254  0 /*deltaMinutes*/,
    -
    1255  0 /*letterIndex ("")*/,
    -
    1256  },
    -
    1257  // Rule Morocco 2041 only - Aug 25 3:00 -1:00 -
    -
    1258  {
    -
    1259  2041 /*fromYear*/,
    -
    1260  2041 /*toYear*/,
    -
    1261  8 /*inMonth*/,
    -
    1262  0 /*onDayOfWeek*/,
    -
    1263  25 /*onDayOfMonth*/,
    -
    1264  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1265  720 /*atTimeCode (10800/15)*/,
    -
    1266  -60 /*deltaMinutes*/,
    -
    1267  0 /*letterIndex ("")*/,
    -
    1268  },
    -
    1269  // Rule Morocco 2041 only - Sep 29 2:00 0 -
    -
    1270  {
    -
    1271  2041 /*fromYear*/,
    -
    1272  2041 /*toYear*/,
    -
    1273  9 /*inMonth*/,
    -
    1274  0 /*onDayOfWeek*/,
    -
    1275  29 /*onDayOfMonth*/,
    -
    1276  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1277  480 /*atTimeCode (7200/15)*/,
    -
    1278  0 /*deltaMinutes*/,
    -
    1279  0 /*letterIndex ("")*/,
    -
    1280  },
    -
    1281  // Rule Morocco 2042 only - Aug 10 3:00 -1:00 -
    -
    1282  {
    -
    1283  2042 /*fromYear*/,
    -
    1284  2042 /*toYear*/,
    -
    1285  8 /*inMonth*/,
    -
    1286  0 /*onDayOfWeek*/,
    -
    1287  10 /*onDayOfMonth*/,
    -
    1288  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1289  720 /*atTimeCode (10800/15)*/,
    -
    1290  -60 /*deltaMinutes*/,
    -
    1291  0 /*letterIndex ("")*/,
    -
    1292  },
    -
    1293  // Rule Morocco 2042 only - Sep 21 2:00 0 -
    -
    1294  {
    -
    1295  2042 /*fromYear*/,
    -
    1296  2042 /*toYear*/,
    -
    1297  9 /*inMonth*/,
    -
    1298  0 /*onDayOfWeek*/,
    -
    1299  21 /*onDayOfMonth*/,
    -
    1300  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1301  480 /*atTimeCode (7200/15)*/,
    -
    1302  0 /*deltaMinutes*/,
    -
    1303  0 /*letterIndex ("")*/,
    -
    1304  },
    -
    1305  // Rule Morocco 2043 only - Aug 2 3:00 -1:00 -
    -
    1306  {
    -
    1307  2043 /*fromYear*/,
    -
    1308  2043 /*toYear*/,
    -
    1309  8 /*inMonth*/,
    -
    1310  0 /*onDayOfWeek*/,
    -
    1311  2 /*onDayOfMonth*/,
    -
    1312  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1313  720 /*atTimeCode (10800/15)*/,
    -
    1314  -60 /*deltaMinutes*/,
    -
    1315  0 /*letterIndex ("")*/,
    -
    1316  },
    -
    1317  // Rule Morocco 2043 only - Sep 13 2:00 0 -
    -
    1318  {
    -
    1319  2043 /*fromYear*/,
    -
    1320  2043 /*toYear*/,
    -
    1321  9 /*inMonth*/,
    -
    1322  0 /*onDayOfWeek*/,
    -
    1323  13 /*onDayOfMonth*/,
    -
    1324  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1325  480 /*atTimeCode (7200/15)*/,
    -
    1326  0 /*deltaMinutes*/,
    -
    1327  0 /*letterIndex ("")*/,
    -
    1328  },
    -
    1329  // Rule Morocco 2044 only - Jul 24 3:00 -1:00 -
    -
    1330  {
    -
    1331  2044 /*fromYear*/,
    -
    1332  2044 /*toYear*/,
    -
    1333  7 /*inMonth*/,
    -
    1334  0 /*onDayOfWeek*/,
    -
    1335  24 /*onDayOfMonth*/,
    -
    1336  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1337  720 /*atTimeCode (10800/15)*/,
    -
    1338  -60 /*deltaMinutes*/,
    -
    1339  0 /*letterIndex ("")*/,
    -
    1340  },
    -
    1341  // Rule Morocco 2044 only - Aug 28 2:00 0 -
    -
    1342  {
    -
    1343  2044 /*fromYear*/,
    -
    1344  2044 /*toYear*/,
    -
    1345  8 /*inMonth*/,
    -
    1346  0 /*onDayOfWeek*/,
    -
    1347  28 /*onDayOfMonth*/,
    -
    1348  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1349  480 /*atTimeCode (7200/15)*/,
    -
    1350  0 /*deltaMinutes*/,
    -
    1351  0 /*letterIndex ("")*/,
    -
    1352  },
    -
    1353  // Rule Morocco 2045 only - Jul 9 3:00 -1:00 -
    -
    1354  {
    -
    1355  2045 /*fromYear*/,
    -
    1356  2045 /*toYear*/,
    -
    1357  7 /*inMonth*/,
    -
    1358  0 /*onDayOfWeek*/,
    -
    1359  9 /*onDayOfMonth*/,
    -
    1360  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1361  720 /*atTimeCode (10800/15)*/,
    -
    1362  -60 /*deltaMinutes*/,
    -
    1363  0 /*letterIndex ("")*/,
    -
    1364  },
    -
    1365  // Rule Morocco 2045 only - Aug 20 2:00 0 -
    -
    1366  {
    -
    1367  2045 /*fromYear*/,
    -
    1368  2045 /*toYear*/,
    -
    1369  8 /*inMonth*/,
    -
    1370  0 /*onDayOfWeek*/,
    -
    1371  20 /*onDayOfMonth*/,
    -
    1372  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1373  480 /*atTimeCode (7200/15)*/,
    -
    1374  0 /*deltaMinutes*/,
    -
    1375  0 /*letterIndex ("")*/,
    -
    1376  },
    -
    1377  // Rule Morocco 2046 only - Jul 1 3:00 -1:00 -
    -
    1378  {
    -
    1379  2046 /*fromYear*/,
    -
    1380  2046 /*toYear*/,
    -
    1381  7 /*inMonth*/,
    -
    1382  0 /*onDayOfWeek*/,
    -
    1383  1 /*onDayOfMonth*/,
    -
    1384  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1385  720 /*atTimeCode (10800/15)*/,
    -
    1386  -60 /*deltaMinutes*/,
    -
    1387  0 /*letterIndex ("")*/,
    -
    1388  },
    -
    1389  // Rule Morocco 2046 only - Aug 5 2:00 0 -
    -
    1390  {
    -
    1391  2046 /*fromYear*/,
    -
    1392  2046 /*toYear*/,
    -
    1393  8 /*inMonth*/,
    -
    1394  0 /*onDayOfWeek*/,
    -
    1395  5 /*onDayOfMonth*/,
    -
    1396  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1397  480 /*atTimeCode (7200/15)*/,
    -
    1398  0 /*deltaMinutes*/,
    -
    1399  0 /*letterIndex ("")*/,
    -
    1400  },
    -
    1401  // Rule Morocco 2047 only - Jun 23 3:00 -1:00 -
    -
    1402  {
    -
    1403  2047 /*fromYear*/,
    -
    1404  2047 /*toYear*/,
    -
    1405  6 /*inMonth*/,
    -
    1406  0 /*onDayOfWeek*/,
    -
    1407  23 /*onDayOfMonth*/,
    -
    1408  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1409  720 /*atTimeCode (10800/15)*/,
    -
    1410  -60 /*deltaMinutes*/,
    -
    1411  0 /*letterIndex ("")*/,
    -
    1412  },
    -
    1413  // Rule Morocco 2047 only - Jul 28 2:00 0 -
    -
    1414  {
    -
    1415  2047 /*fromYear*/,
    -
    1416  2047 /*toYear*/,
    -
    1417  7 /*inMonth*/,
    -
    1418  0 /*onDayOfWeek*/,
    -
    1419  28 /*onDayOfMonth*/,
    -
    1420  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1421  480 /*atTimeCode (7200/15)*/,
    -
    1422  0 /*deltaMinutes*/,
    -
    1423  0 /*letterIndex ("")*/,
    -
    1424  },
    -
    1425  // Rule Morocco 2048 only - Jun 7 3:00 -1:00 -
    -
    1426  {
    -
    1427  2048 /*fromYear*/,
    -
    1428  2048 /*toYear*/,
    -
    1429  6 /*inMonth*/,
    -
    1430  0 /*onDayOfWeek*/,
    -
    1431  7 /*onDayOfMonth*/,
    -
    1432  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1433  720 /*atTimeCode (10800/15)*/,
    -
    1434  -60 /*deltaMinutes*/,
    -
    1435  0 /*letterIndex ("")*/,
    -
    1436  },
    -
    1437  // Rule Morocco 2048 only - Jul 19 2:00 0 -
    -
    1438  {
    -
    1439  2048 /*fromYear*/,
    -
    1440  2048 /*toYear*/,
    -
    1441  7 /*inMonth*/,
    -
    1442  0 /*onDayOfWeek*/,
    -
    1443  19 /*onDayOfMonth*/,
    -
    1444  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1445  480 /*atTimeCode (7200/15)*/,
    -
    1446  0 /*deltaMinutes*/,
    -
    1447  0 /*letterIndex ("")*/,
    -
    1448  },
    -
    1449  // Rule Morocco 2049 only - May 30 3:00 -1:00 -
    -
    1450  {
    -
    1451  2049 /*fromYear*/,
    -
    1452  2049 /*toYear*/,
    -
    1453  5 /*inMonth*/,
    -
    1454  0 /*onDayOfWeek*/,
    -
    1455  30 /*onDayOfMonth*/,
    -
    1456  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1457  720 /*atTimeCode (10800/15)*/,
    -
    1458  -60 /*deltaMinutes*/,
    -
    1459  0 /*letterIndex ("")*/,
    -
    1460  },
    -
    1461  // Rule Morocco 2049 only - Jul 4 2:00 0 -
    -
    1462  {
    -
    1463  2049 /*fromYear*/,
    -
    1464  2049 /*toYear*/,
    -
    1465  7 /*inMonth*/,
    -
    1466  0 /*onDayOfWeek*/,
    -
    1467  4 /*onDayOfMonth*/,
    -
    1468  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1469  480 /*atTimeCode (7200/15)*/,
    -
    1470  0 /*deltaMinutes*/,
    -
    1471  0 /*letterIndex ("")*/,
    -
    1472  },
    -
    1473  // Rule Morocco 2050 only - May 15 3:00 -1:00 -
    -
    1474  {
    -
    1475  2050 /*fromYear*/,
    -
    1476  2050 /*toYear*/,
    -
    1477  5 /*inMonth*/,
    -
    1478  0 /*onDayOfWeek*/,
    -
    1479  15 /*onDayOfMonth*/,
    -
    1480  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1481  720 /*atTimeCode (10800/15)*/,
    -
    1482  -60 /*deltaMinutes*/,
    -
    1483  0 /*letterIndex ("")*/,
    -
    1484  },
    -
    1485  // Rule Morocco 2050 only - Jun 26 2:00 0 -
    -
    1486  {
    -
    1487  2050 /*fromYear*/,
    -
    1488  2050 /*toYear*/,
    -
    1489  6 /*inMonth*/,
    -
    1490  0 /*onDayOfWeek*/,
    -
    1491  26 /*onDayOfMonth*/,
    -
    1492  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1493  480 /*atTimeCode (7200/15)*/,
    -
    1494  0 /*deltaMinutes*/,
    -
    1495  0 /*letterIndex ("")*/,
    -
    1496  },
    -
    1497  // Rule Morocco 2051 only - May 7 3:00 -1:00 -
    -
    1498  {
    -
    1499  2051 /*fromYear*/,
    -
    1500  2051 /*toYear*/,
    -
    1501  5 /*inMonth*/,
    -
    1502  0 /*onDayOfWeek*/,
    -
    1503  7 /*onDayOfMonth*/,
    -
    1504  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1505  720 /*atTimeCode (10800/15)*/,
    -
    1506  -60 /*deltaMinutes*/,
    -
    1507  0 /*letterIndex ("")*/,
    -
    1508  },
    -
    1509  // Rule Morocco 2051 only - Jun 18 2:00 0 -
    -
    1510  {
    -
    1511  2051 /*fromYear*/,
    -
    1512  2051 /*toYear*/,
    -
    1513  6 /*inMonth*/,
    -
    1514  0 /*onDayOfWeek*/,
    -
    1515  18 /*onDayOfMonth*/,
    -
    1516  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1517  480 /*atTimeCode (7200/15)*/,
    -
    1518  0 /*deltaMinutes*/,
    -
    1519  0 /*letterIndex ("")*/,
    -
    1520  },
    -
    1521  // Rule Morocco 2052 only - Apr 28 3:00 -1:00 -
    -
    1522  {
    -
    1523  2052 /*fromYear*/,
    -
    1524  2052 /*toYear*/,
    -
    1525  4 /*inMonth*/,
    -
    1526  0 /*onDayOfWeek*/,
    -
    1527  28 /*onDayOfMonth*/,
    -
    1528  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1529  720 /*atTimeCode (10800/15)*/,
    -
    1530  -60 /*deltaMinutes*/,
    -
    1531  0 /*letterIndex ("")*/,
    -
    1532  },
    -
    1533  // Rule Morocco 2052 only - Jun 2 2:00 0 -
    -
    1534  {
    -
    1535  2052 /*fromYear*/,
    -
    1536  2052 /*toYear*/,
    -
    1537  6 /*inMonth*/,
    -
    1538  0 /*onDayOfWeek*/,
    -
    1539  2 /*onDayOfMonth*/,
    -
    1540  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1541  480 /*atTimeCode (7200/15)*/,
    -
    1542  0 /*deltaMinutes*/,
    -
    1543  0 /*letterIndex ("")*/,
    -
    1544  },
    -
    1545  // Rule Morocco 2053 only - Apr 13 3:00 -1:00 -
    -
    1546  {
    -
    1547  2053 /*fromYear*/,
    -
    1548  2053 /*toYear*/,
    -
    1549  4 /*inMonth*/,
    -
    1550  0 /*onDayOfWeek*/,
    -
    1551  13 /*onDayOfMonth*/,
    -
    1552  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1553  720 /*atTimeCode (10800/15)*/,
    -
    1554  -60 /*deltaMinutes*/,
    -
    1555  0 /*letterIndex ("")*/,
    -
    1556  },
    -
    1557  // Rule Morocco 2053 only - May 25 2:00 0 -
    -
    1558  {
    -
    1559  2053 /*fromYear*/,
    -
    1560  2053 /*toYear*/,
    -
    1561  5 /*inMonth*/,
    -
    1562  0 /*onDayOfWeek*/,
    -
    1563  25 /*onDayOfMonth*/,
    -
    1564  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1565  480 /*atTimeCode (7200/15)*/,
    -
    1566  0 /*deltaMinutes*/,
    -
    1567  0 /*letterIndex ("")*/,
    -
    1568  },
    -
    1569  // Rule Morocco 2054 only - Apr 5 3:00 -1:00 -
    -
    1570  {
    -
    1571  2054 /*fromYear*/,
    -
    1572  2054 /*toYear*/,
    -
    1573  4 /*inMonth*/,
    -
    1574  0 /*onDayOfWeek*/,
    -
    1575  5 /*onDayOfMonth*/,
    -
    1576  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1577  720 /*atTimeCode (10800/15)*/,
    -
    1578  -60 /*deltaMinutes*/,
    -
    1579  0 /*letterIndex ("")*/,
    -
    1580  },
    -
    1581  // Rule Morocco 2054 only - May 10 2:00 0 -
    -
    1582  {
    -
    1583  2054 /*fromYear*/,
    -
    1584  2054 /*toYear*/,
    -
    1585  5 /*inMonth*/,
    -
    1586  0 /*onDayOfWeek*/,
    -
    1587  10 /*onDayOfMonth*/,
    -
    1588  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1589  480 /*atTimeCode (7200/15)*/,
    -
    1590  0 /*deltaMinutes*/,
    -
    1591  0 /*letterIndex ("")*/,
    -
    1592  },
    -
    1593  // Rule Morocco 2055 only - Mar 28 3:00 -1:00 -
    -
    1594  {
    -
    1595  2055 /*fromYear*/,
    -
    1596  2055 /*toYear*/,
    -
    1597  3 /*inMonth*/,
    -
    1598  0 /*onDayOfWeek*/,
    -
    1599  28 /*onDayOfMonth*/,
    -
    1600  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1601  720 /*atTimeCode (10800/15)*/,
    -
    1602  -60 /*deltaMinutes*/,
    -
    1603  0 /*letterIndex ("")*/,
    -
    1604  },
    -
    1605  // Rule Morocco 2055 only - May 2 2:00 0 -
    -
    1606  {
    -
    1607  2055 /*fromYear*/,
    -
    1608  2055 /*toYear*/,
    -
    1609  5 /*inMonth*/,
    -
    1610  0 /*onDayOfWeek*/,
    -
    1611  2 /*onDayOfMonth*/,
    -
    1612  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1613  480 /*atTimeCode (7200/15)*/,
    -
    1614  0 /*deltaMinutes*/,
    -
    1615  0 /*letterIndex ("")*/,
    -
    1616  },
    -
    1617  // Rule Morocco 2056 only - Mar 12 3:00 -1:00 -
    -
    1618  {
    -
    1619  2056 /*fromYear*/,
    -
    1620  2056 /*toYear*/,
    -
    1621  3 /*inMonth*/,
    -
    1622  0 /*onDayOfWeek*/,
    -
    1623  12 /*onDayOfMonth*/,
    -
    1624  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1625  720 /*atTimeCode (10800/15)*/,
    -
    1626  -60 /*deltaMinutes*/,
    -
    1627  0 /*letterIndex ("")*/,
    -
    1628  },
    -
    1629  // Rule Morocco 2056 only - Apr 23 2:00 0 -
    -
    1630  {
    -
    1631  2056 /*fromYear*/,
    -
    1632  2056 /*toYear*/,
    -
    1633  4 /*inMonth*/,
    -
    1634  0 /*onDayOfWeek*/,
    -
    1635  23 /*onDayOfMonth*/,
    -
    1636  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1637  480 /*atTimeCode (7200/15)*/,
    -
    1638  0 /*deltaMinutes*/,
    -
    1639  0 /*letterIndex ("")*/,
    -
    1640  },
    -
    1641  // Rule Morocco 2057 only - Mar 4 3:00 -1:00 -
    -
    1642  {
    -
    1643  2057 /*fromYear*/,
    -
    1644  2057 /*toYear*/,
    -
    1645  3 /*inMonth*/,
    -
    1646  0 /*onDayOfWeek*/,
    -
    1647  4 /*onDayOfMonth*/,
    -
    1648  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1649  720 /*atTimeCode (10800/15)*/,
    -
    1650  -60 /*deltaMinutes*/,
    -
    1651  0 /*letterIndex ("")*/,
    -
    1652  },
    -
    1653  // Rule Morocco 2057 only - Apr 8 2:00 0 -
    -
    1654  {
    -
    1655  2057 /*fromYear*/,
    -
    1656  2057 /*toYear*/,
    -
    1657  4 /*inMonth*/,
    -
    1658  0 /*onDayOfWeek*/,
    -
    1659  8 /*onDayOfMonth*/,
    -
    1660  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1661  480 /*atTimeCode (7200/15)*/,
    -
    1662  0 /*deltaMinutes*/,
    -
    1663  0 /*letterIndex ("")*/,
    -
    1664  },
    -
    1665  // Rule Morocco 2058 only - Feb 17 3:00 -1:00 -
    -
    1666  {
    -
    1667  2058 /*fromYear*/,
    -
    1668  2058 /*toYear*/,
    -
    1669  2 /*inMonth*/,
    -
    1670  0 /*onDayOfWeek*/,
    -
    1671  17 /*onDayOfMonth*/,
    -
    1672  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1673  720 /*atTimeCode (10800/15)*/,
    -
    1674  -60 /*deltaMinutes*/,
    -
    1675  0 /*letterIndex ("")*/,
    -
    1676  },
    -
    1677  // Rule Morocco 2058 only - Mar 31 2:00 0 -
    -
    1678  {
    -
    1679  2058 /*fromYear*/,
    -
    1680  2058 /*toYear*/,
    -
    1681  3 /*inMonth*/,
    -
    1682  0 /*onDayOfWeek*/,
    -
    1683  31 /*onDayOfMonth*/,
    -
    1684  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1685  480 /*atTimeCode (7200/15)*/,
    -
    1686  0 /*deltaMinutes*/,
    -
    1687  0 /*letterIndex ("")*/,
    -
    1688  },
    -
    1689  // Rule Morocco 2059 only - Feb 9 3:00 -1:00 -
    -
    1690  {
    -
    1691  2059 /*fromYear*/,
    -
    1692  2059 /*toYear*/,
    -
    1693  2 /*inMonth*/,
    -
    1694  0 /*onDayOfWeek*/,
    -
    1695  9 /*onDayOfMonth*/,
    -
    1696  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1697  720 /*atTimeCode (10800/15)*/,
    -
    1698  -60 /*deltaMinutes*/,
    -
    1699  0 /*letterIndex ("")*/,
    -
    1700  },
    -
    1701  // Rule Morocco 2059 only - Mar 23 2:00 0 -
    -
    1702  {
    -
    1703  2059 /*fromYear*/,
    -
    1704  2059 /*toYear*/,
    -
    1705  3 /*inMonth*/,
    -
    1706  0 /*onDayOfWeek*/,
    -
    1707  23 /*onDayOfMonth*/,
    -
    1708  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1709  480 /*atTimeCode (7200/15)*/,
    -
    1710  0 /*deltaMinutes*/,
    -
    1711  0 /*letterIndex ("")*/,
    -
    1712  },
    -
    1713  // Rule Morocco 2060 only - Feb 1 3:00 -1:00 -
    -
    1714  {
    -
    1715  2060 /*fromYear*/,
    -
    1716  2060 /*toYear*/,
    -
    1717  2 /*inMonth*/,
    -
    1718  0 /*onDayOfWeek*/,
    -
    1719  1 /*onDayOfMonth*/,
    -
    1720  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1721  720 /*atTimeCode (10800/15)*/,
    -
    1722  -60 /*deltaMinutes*/,
    -
    1723  0 /*letterIndex ("")*/,
    -
    1724  },
    -
    1725  // Rule Morocco 2060 only - Mar 7 2:00 0 -
    -
    1726  {
    -
    1727  2060 /*fromYear*/,
    -
    1728  2060 /*toYear*/,
    -
    1729  3 /*inMonth*/,
    -
    1730  0 /*onDayOfWeek*/,
    -
    1731  7 /*onDayOfMonth*/,
    -
    1732  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1733  480 /*atTimeCode (7200/15)*/,
    -
    1734  0 /*deltaMinutes*/,
    -
    1735  0 /*letterIndex ("")*/,
    -
    1736  },
    -
    1737  // Rule Morocco 2061 only - Jan 16 3:00 -1:00 -
    -
    1738  {
    -
    1739  2061 /*fromYear*/,
    -
    1740  2061 /*toYear*/,
    -
    1741  1 /*inMonth*/,
    -
    1742  0 /*onDayOfWeek*/,
    -
    1743  16 /*onDayOfMonth*/,
    -
    1744  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1745  720 /*atTimeCode (10800/15)*/,
    -
    1746  -60 /*deltaMinutes*/,
    -
    1747  0 /*letterIndex ("")*/,
    -
    1748  },
    -
    1749  // Rule Morocco 2061 only - Feb 27 2:00 0 -
    -
    1750  {
    -
    1751  2061 /*fromYear*/,
    -
    1752  2061 /*toYear*/,
    -
    1753  2 /*inMonth*/,
    -
    1754  0 /*onDayOfWeek*/,
    -
    1755  27 /*onDayOfMonth*/,
    -
    1756  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1757  480 /*atTimeCode (7200/15)*/,
    -
    1758  0 /*deltaMinutes*/,
    -
    1759  0 /*letterIndex ("")*/,
    -
    1760  },
    -
    1761  // Rule Morocco 2062 only - Jan 8 3:00 -1:00 -
    -
    1762  {
    -
    1763  2062 /*fromYear*/,
    -
    1764  2062 /*toYear*/,
    -
    1765  1 /*inMonth*/,
    -
    1766  0 /*onDayOfWeek*/,
    -
    1767  8 /*onDayOfMonth*/,
    -
    1768  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1769  720 /*atTimeCode (10800/15)*/,
    -
    1770  -60 /*deltaMinutes*/,
    -
    1771  0 /*letterIndex ("")*/,
    -
    1772  },
    -
    1773  // Rule Morocco 2062 only - Feb 12 2:00 0 -
    -
    1774  {
    -
    1775  2062 /*fromYear*/,
    -
    1776  2062 /*toYear*/,
    -
    1777  2 /*inMonth*/,
    -
    1778  0 /*onDayOfWeek*/,
    -
    1779  12 /*onDayOfMonth*/,
    -
    1780  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1781  480 /*atTimeCode (7200/15)*/,
    -
    1782  0 /*deltaMinutes*/,
    -
    1783  0 /*letterIndex ("")*/,
    -
    1784  },
    -
    1785  // Rule Morocco 2062 only - Dec 31 3:00 -1:00 -
    -
    1786  {
    -
    1787  2062 /*fromYear*/,
    -
    1788  2062 /*toYear*/,
    -
    1789  12 /*inMonth*/,
    -
    1790  0 /*onDayOfWeek*/,
    -
    1791  31 /*onDayOfMonth*/,
    -
    1792  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1793  720 /*atTimeCode (10800/15)*/,
    -
    1794  -60 /*deltaMinutes*/,
    -
    1795  0 /*letterIndex ("")*/,
    -
    1796  },
    -
    1797  // Rule Morocco 2063 only - Feb 4 2:00 0 -
    -
    1798  {
    -
    1799  2063 /*fromYear*/,
    -
    1800  2063 /*toYear*/,
    -
    1801  2 /*inMonth*/,
    -
    1802  0 /*onDayOfWeek*/,
    -
    1803  4 /*onDayOfMonth*/,
    -
    1804  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1805  480 /*atTimeCode (7200/15)*/,
    -
    1806  0 /*deltaMinutes*/,
    -
    1807  0 /*letterIndex ("")*/,
    -
    1808  },
    -
    1809  // Rule Morocco 2063 only - Dec 16 3:00 -1:00 -
    -
    1810  {
    -
    1811  2063 /*fromYear*/,
    -
    1812  2063 /*toYear*/,
    -
    1813  12 /*inMonth*/,
    -
    1814  0 /*onDayOfWeek*/,
    -
    1815  16 /*onDayOfMonth*/,
    -
    1816  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1817  720 /*atTimeCode (10800/15)*/,
    -
    1818  -60 /*deltaMinutes*/,
    -
    1819  0 /*letterIndex ("")*/,
    -
    1820  },
    -
    1821  // Rule Morocco 2064 only - Jan 27 2:00 0 -
    -
    1822  {
    -
    1823  2064 /*fromYear*/,
    -
    1824  2064 /*toYear*/,
    -
    1825  1 /*inMonth*/,
    -
    1826  0 /*onDayOfWeek*/,
    -
    1827  27 /*onDayOfMonth*/,
    -
    1828  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1829  480 /*atTimeCode (7200/15)*/,
    -
    1830  0 /*deltaMinutes*/,
    -
    1831  0 /*letterIndex ("")*/,
    -
    1832  },
    -
    1833  // Rule Morocco 2064 only - Dec 7 3:00 -1:00 -
    -
    1834  {
    -
    1835  2064 /*fromYear*/,
    -
    1836  2064 /*toYear*/,
    -
    1837  12 /*inMonth*/,
    -
    1838  0 /*onDayOfWeek*/,
    -
    1839  7 /*onDayOfMonth*/,
    -
    1840  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1841  720 /*atTimeCode (10800/15)*/,
    -
    1842  -60 /*deltaMinutes*/,
    -
    1843  0 /*letterIndex ("")*/,
    -
    1844  },
    -
    1845  // Rule Morocco 2065 only - Jan 11 2:00 0 -
    -
    1846  {
    -
    1847  2065 /*fromYear*/,
    -
    1848  2065 /*toYear*/,
    -
    1849  1 /*inMonth*/,
    -
    1850  0 /*onDayOfWeek*/,
    -
    1851  11 /*onDayOfMonth*/,
    -
    1852  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1853  480 /*atTimeCode (7200/15)*/,
    -
    1854  0 /*deltaMinutes*/,
    -
    1855  0 /*letterIndex ("")*/,
    -
    1856  },
    -
    1857  // Rule Morocco 2065 only - Nov 22 3:00 -1:00 -
    -
    1858  {
    -
    1859  2065 /*fromYear*/,
    -
    1860  2065 /*toYear*/,
    -
    1861  11 /*inMonth*/,
    -
    1862  0 /*onDayOfWeek*/,
    -
    1863  22 /*onDayOfMonth*/,
    -
    1864  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1865  720 /*atTimeCode (10800/15)*/,
    -
    1866  -60 /*deltaMinutes*/,
    -
    1867  0 /*letterIndex ("")*/,
    -
    1868  },
    -
    1869  // Rule Morocco 2066 only - Jan 3 2:00 0 -
    -
    1870  {
    -
    1871  2066 /*fromYear*/,
    -
    1872  2066 /*toYear*/,
    -
    1873  1 /*inMonth*/,
    -
    1874  0 /*onDayOfWeek*/,
    -
    1875  3 /*onDayOfMonth*/,
    -
    1876  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1877  480 /*atTimeCode (7200/15)*/,
    -
    1878  0 /*deltaMinutes*/,
    -
    1879  0 /*letterIndex ("")*/,
    -
    1880  },
    -
    1881  // Rule Morocco 2066 only - Nov 14 3:00 -1:00 -
    -
    1882  {
    -
    1883  2066 /*fromYear*/,
    -
    1884  2066 /*toYear*/,
    -
    1885  11 /*inMonth*/,
    -
    1886  0 /*onDayOfWeek*/,
    -
    1887  14 /*onDayOfMonth*/,
    -
    1888  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1889  720 /*atTimeCode (10800/15)*/,
    -
    1890  -60 /*deltaMinutes*/,
    -
    1891  0 /*letterIndex ("")*/,
    -
    1892  },
    -
    1893  // Rule Morocco 2066 only - Dec 26 2:00 0 -
    -
    1894  {
    -
    1895  2066 /*fromYear*/,
    -
    1896  2066 /*toYear*/,
    -
    1897  12 /*inMonth*/,
    -
    1898  0 /*onDayOfWeek*/,
    -
    1899  26 /*onDayOfMonth*/,
    -
    1900  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1901  480 /*atTimeCode (7200/15)*/,
    -
    1902  0 /*deltaMinutes*/,
    -
    1903  0 /*letterIndex ("")*/,
    -
    1904  },
    -
    1905  // Rule Morocco 2067 only - Nov 6 3:00 -1:00 -
    -
    1906  {
    -
    1907  2067 /*fromYear*/,
    -
    1908  2067 /*toYear*/,
    -
    1909  11 /*inMonth*/,
    -
    1910  0 /*onDayOfWeek*/,
    -
    1911  6 /*onDayOfMonth*/,
    -
    1912  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1913  720 /*atTimeCode (10800/15)*/,
    -
    1914  -60 /*deltaMinutes*/,
    -
    1915  0 /*letterIndex ("")*/,
    -
    1916  },
    -
    1917  // Rule Morocco 2067 only - Dec 11 2:00 0 -
    -
    1918  {
    -
    1919  2067 /*fromYear*/,
    -
    1920  2067 /*toYear*/,
    -
    1921  12 /*inMonth*/,
    -
    1922  0 /*onDayOfWeek*/,
    -
    1923  11 /*onDayOfMonth*/,
    -
    1924  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1925  480 /*atTimeCode (7200/15)*/,
    -
    1926  0 /*deltaMinutes*/,
    -
    1927  0 /*letterIndex ("")*/,
    -
    1928  },
    -
    1929  // Rule Morocco 2068 only - Oct 21 3:00 -1:00 -
    -
    1930  {
    -
    1931  2068 /*fromYear*/,
    -
    1932  2068 /*toYear*/,
    -
    1933  10 /*inMonth*/,
    -
    1934  0 /*onDayOfWeek*/,
    -
    1935  21 /*onDayOfMonth*/,
    -
    1936  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1937  720 /*atTimeCode (10800/15)*/,
    -
    1938  -60 /*deltaMinutes*/,
    -
    1939  0 /*letterIndex ("")*/,
    -
    1940  },
    -
    1941  // Rule Morocco 2068 only - Dec 2 2:00 0 -
    -
    1942  {
    -
    1943  2068 /*fromYear*/,
    -
    1944  2068 /*toYear*/,
    -
    1945  12 /*inMonth*/,
    -
    1946  0 /*onDayOfWeek*/,
    -
    1947  2 /*onDayOfMonth*/,
    -
    1948  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1949  480 /*atTimeCode (7200/15)*/,
    -
    1950  0 /*deltaMinutes*/,
    -
    1951  0 /*letterIndex ("")*/,
    -
    1952  },
    -
    1953  // Rule Morocco 2069 only - Oct 13 3:00 -1:00 -
    -
    1954  {
    -
    1955  2069 /*fromYear*/,
    -
    1956  2069 /*toYear*/,
    -
    1957  10 /*inMonth*/,
    -
    1958  0 /*onDayOfWeek*/,
    -
    1959  13 /*onDayOfMonth*/,
    -
    1960  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1961  720 /*atTimeCode (10800/15)*/,
    -
    1962  -60 /*deltaMinutes*/,
    -
    1963  0 /*letterIndex ("")*/,
    -
    1964  },
    -
    1965  // Rule Morocco 2069 only - Nov 17 2:00 0 -
    -
    1966  {
    -
    1967  2069 /*fromYear*/,
    -
    1968  2069 /*toYear*/,
    -
    1969  11 /*inMonth*/,
    -
    1970  0 /*onDayOfWeek*/,
    -
    1971  17 /*onDayOfMonth*/,
    -
    1972  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1973  480 /*atTimeCode (7200/15)*/,
    -
    1974  0 /*deltaMinutes*/,
    -
    1975  0 /*letterIndex ("")*/,
    -
    1976  },
    -
    1977  // Rule Morocco 2070 only - Oct 5 3:00 -1:00 -
    -
    1978  {
    -
    1979  2070 /*fromYear*/,
    -
    1980  2070 /*toYear*/,
    -
    1981  10 /*inMonth*/,
    -
    1982  0 /*onDayOfWeek*/,
    -
    1983  5 /*onDayOfMonth*/,
    -
    1984  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1985  720 /*atTimeCode (10800/15)*/,
    -
    1986  -60 /*deltaMinutes*/,
    -
    1987  0 /*letterIndex ("")*/,
    -
    1988  },
    -
    1989  // Rule Morocco 2070 only - Nov 9 2:00 0 -
    -
    1990  {
    -
    1991  2070 /*fromYear*/,
    -
    1992  2070 /*toYear*/,
    -
    1993  11 /*inMonth*/,
    -
    1994  0 /*onDayOfWeek*/,
    -
    1995  9 /*onDayOfMonth*/,
    -
    1996  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1997  480 /*atTimeCode (7200/15)*/,
    -
    1998  0 /*deltaMinutes*/,
    -
    1999  0 /*letterIndex ("")*/,
    -
    2000  },
    -
    2001  // Rule Morocco 2071 only - Sep 20 3:00 -1:00 -
    -
    2002  {
    -
    2003  2071 /*fromYear*/,
    -
    2004  2071 /*toYear*/,
    -
    2005  9 /*inMonth*/,
    -
    2006  0 /*onDayOfWeek*/,
    -
    2007  20 /*onDayOfMonth*/,
    -
    2008  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2009  720 /*atTimeCode (10800/15)*/,
    -
    2010  -60 /*deltaMinutes*/,
    -
    2011  0 /*letterIndex ("")*/,
    -
    2012  },
    -
    2013  // Rule Morocco 2071 only - Nov 1 2:00 0 -
    -
    2014  {
    -
    2015  2071 /*fromYear*/,
    -
    2016  2071 /*toYear*/,
    -
    2017  11 /*inMonth*/,
    -
    2018  0 /*onDayOfWeek*/,
    -
    2019  1 /*onDayOfMonth*/,
    -
    2020  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2021  480 /*atTimeCode (7200/15)*/,
    -
    2022  0 /*deltaMinutes*/,
    -
    2023  0 /*letterIndex ("")*/,
    -
    2024  },
    -
    2025  // Rule Morocco 2072 only - Sep 11 3:00 -1:00 -
    -
    2026  {
    -
    2027  2072 /*fromYear*/,
    -
    2028  2072 /*toYear*/,
    -
    2029  9 /*inMonth*/,
    -
    2030  0 /*onDayOfWeek*/,
    -
    2031  11 /*onDayOfMonth*/,
    -
    2032  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2033  720 /*atTimeCode (10800/15)*/,
    -
    2034  -60 /*deltaMinutes*/,
    -
    2035  0 /*letterIndex ("")*/,
    -
    2036  },
    -
    2037  // Rule Morocco 2072 only - Oct 16 2:00 0 -
    -
    2038  {
    -
    2039  2072 /*fromYear*/,
    -
    2040  2072 /*toYear*/,
    -
    2041  10 /*inMonth*/,
    -
    2042  0 /*onDayOfWeek*/,
    -
    2043  16 /*onDayOfMonth*/,
    -
    2044  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2045  480 /*atTimeCode (7200/15)*/,
    -
    2046  0 /*deltaMinutes*/,
    -
    2047  0 /*letterIndex ("")*/,
    -
    2048  },
    -
    2049  // Rule Morocco 2073 only - Aug 27 3:00 -1:00 -
    -
    2050  {
    -
    2051  2073 /*fromYear*/,
    -
    2052  2073 /*toYear*/,
    -
    2053  8 /*inMonth*/,
    -
    2054  0 /*onDayOfWeek*/,
    -
    2055  27 /*onDayOfMonth*/,
    -
    2056  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2057  720 /*atTimeCode (10800/15)*/,
    -
    2058  -60 /*deltaMinutes*/,
    -
    2059  0 /*letterIndex ("")*/,
    -
    2060  },
    -
    2061  // Rule Morocco 2073 only - Oct 8 2:00 0 -
    -
    2062  {
    -
    2063  2073 /*fromYear*/,
    -
    2064  2073 /*toYear*/,
    -
    2065  10 /*inMonth*/,
    -
    2066  0 /*onDayOfWeek*/,
    -
    2067  8 /*onDayOfMonth*/,
    -
    2068  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2069  480 /*atTimeCode (7200/15)*/,
    -
    2070  0 /*deltaMinutes*/,
    -
    2071  0 /*letterIndex ("")*/,
    -
    2072  },
    -
    2073  // Rule Morocco 2074 only - Aug 19 3:00 -1:00 -
    -
    2074  {
    -
    2075  2074 /*fromYear*/,
    -
    2076  2074 /*toYear*/,
    -
    2077  8 /*inMonth*/,
    -
    2078  0 /*onDayOfWeek*/,
    -
    2079  19 /*onDayOfMonth*/,
    -
    2080  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2081  720 /*atTimeCode (10800/15)*/,
    -
    2082  -60 /*deltaMinutes*/,
    -
    2083  0 /*letterIndex ("")*/,
    -
    2084  },
    -
    2085  // Rule Morocco 2074 only - Sep 30 2:00 0 -
    -
    2086  {
    -
    2087  2074 /*fromYear*/,
    -
    2088  2074 /*toYear*/,
    -
    2089  9 /*inMonth*/,
    -
    2090  0 /*onDayOfWeek*/,
    -
    2091  30 /*onDayOfMonth*/,
    -
    2092  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2093  480 /*atTimeCode (7200/15)*/,
    -
    2094  0 /*deltaMinutes*/,
    -
    2095  0 /*letterIndex ("")*/,
    -
    2096  },
    -
    2097  // Rule Morocco 2075 only - Aug 11 3:00 -1:00 -
    -
    2098  {
    -
    2099  2075 /*fromYear*/,
    -
    2100  2075 /*toYear*/,
    -
    2101  8 /*inMonth*/,
    -
    2102  0 /*onDayOfWeek*/,
    -
    2103  11 /*onDayOfMonth*/,
    -
    2104  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2105  720 /*atTimeCode (10800/15)*/,
    -
    2106  -60 /*deltaMinutes*/,
    -
    2107  0 /*letterIndex ("")*/,
    -
    2108  },
    -
    2109  // Rule Morocco 2075 only - Sep 15 2:00 0 -
    -
    2110  {
    -
    2111  2075 /*fromYear*/,
    -
    2112  2075 /*toYear*/,
    -
    2113  9 /*inMonth*/,
    -
    2114  0 /*onDayOfWeek*/,
    -
    2115  15 /*onDayOfMonth*/,
    -
    2116  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2117  480 /*atTimeCode (7200/15)*/,
    -
    2118  0 /*deltaMinutes*/,
    -
    2119  0 /*letterIndex ("")*/,
    -
    2120  },
    -
    2121  // Rule Morocco 2076 only - Jul 26 3:00 -1:00 -
    -
    2122  {
    -
    2123  2076 /*fromYear*/,
    -
    2124  2076 /*toYear*/,
    -
    2125  7 /*inMonth*/,
    -
    2126  0 /*onDayOfWeek*/,
    -
    2127  26 /*onDayOfMonth*/,
    -
    2128  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2129  720 /*atTimeCode (10800/15)*/,
    -
    2130  -60 /*deltaMinutes*/,
    -
    2131  0 /*letterIndex ("")*/,
    -
    2132  },
    -
    2133  // Rule Morocco 2076 only - Sep 6 2:00 0 -
    -
    2134  {
    -
    2135  2076 /*fromYear*/,
    -
    2136  2076 /*toYear*/,
    -
    2137  9 /*inMonth*/,
    -
    2138  0 /*onDayOfWeek*/,
    -
    2139  6 /*onDayOfMonth*/,
    -
    2140  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2141  480 /*atTimeCode (7200/15)*/,
    -
    2142  0 /*deltaMinutes*/,
    -
    2143  0 /*letterIndex ("")*/,
    -
    2144  },
    -
    2145  // Rule Morocco 2077 only - Jul 18 3:00 -1:00 -
    -
    2146  {
    -
    2147  2077 /*fromYear*/,
    -
    2148  2077 /*toYear*/,
    -
    2149  7 /*inMonth*/,
    -
    2150  0 /*onDayOfWeek*/,
    -
    2151  18 /*onDayOfMonth*/,
    -
    2152  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2153  720 /*atTimeCode (10800/15)*/,
    -
    2154  -60 /*deltaMinutes*/,
    -
    2155  0 /*letterIndex ("")*/,
    -
    2156  },
    -
    2157  // Rule Morocco 2077 only - Aug 22 2:00 0 -
    -
    2158  {
    -
    2159  2077 /*fromYear*/,
    -
    2160  2077 /*toYear*/,
    -
    2161  8 /*inMonth*/,
    -
    2162  0 /*onDayOfWeek*/,
    -
    2163  22 /*onDayOfMonth*/,
    -
    2164  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2165  480 /*atTimeCode (7200/15)*/,
    -
    2166  0 /*deltaMinutes*/,
    -
    2167  0 /*letterIndex ("")*/,
    -
    2168  },
    -
    2169  // Rule Morocco 2078 only - Jul 10 3:00 -1:00 -
    -
    2170  {
    -
    2171  2078 /*fromYear*/,
    -
    2172  2078 /*toYear*/,
    -
    2173  7 /*inMonth*/,
    -
    2174  0 /*onDayOfWeek*/,
    -
    2175  10 /*onDayOfMonth*/,
    -
    2176  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2177  720 /*atTimeCode (10800/15)*/,
    -
    2178  -60 /*deltaMinutes*/,
    -
    2179  0 /*letterIndex ("")*/,
    -
    2180  },
    -
    2181  // Rule Morocco 2078 only - Aug 14 2:00 0 -
    -
    2182  {
    -
    2183  2078 /*fromYear*/,
    -
    2184  2078 /*toYear*/,
    -
    2185  8 /*inMonth*/,
    -
    2186  0 /*onDayOfWeek*/,
    -
    2187  14 /*onDayOfMonth*/,
    -
    2188  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2189  480 /*atTimeCode (7200/15)*/,
    -
    2190  0 /*deltaMinutes*/,
    -
    2191  0 /*letterIndex ("")*/,
    -
    2192  },
    -
    2193  // Rule Morocco 2079 only - Jun 25 3:00 -1:00 -
    -
    2194  {
    -
    2195  2079 /*fromYear*/,
    -
    2196  2079 /*toYear*/,
    -
    2197  6 /*inMonth*/,
    -
    2198  0 /*onDayOfWeek*/,
    -
    2199  25 /*onDayOfMonth*/,
    -
    2200  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2201  720 /*atTimeCode (10800/15)*/,
    -
    2202  -60 /*deltaMinutes*/,
    -
    2203  0 /*letterIndex ("")*/,
    -
    2204  },
    -
    2205  // Rule Morocco 2079 only - Aug 6 2:00 0 -
    -
    2206  {
    -
    2207  2079 /*fromYear*/,
    -
    2208  2079 /*toYear*/,
    -
    2209  8 /*inMonth*/,
    -
    2210  0 /*onDayOfWeek*/,
    -
    2211  6 /*onDayOfMonth*/,
    -
    2212  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2213  480 /*atTimeCode (7200/15)*/,
    -
    2214  0 /*deltaMinutes*/,
    -
    2215  0 /*letterIndex ("")*/,
    -
    2216  },
    -
    2217  // Rule Morocco 2080 only - Jun 16 3:00 -1:00 -
    -
    2218  {
    -
    2219  2080 /*fromYear*/,
    -
    2220  2080 /*toYear*/,
    -
    2221  6 /*inMonth*/,
    -
    2222  0 /*onDayOfWeek*/,
    -
    2223  16 /*onDayOfMonth*/,
    -
    2224  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2225  720 /*atTimeCode (10800/15)*/,
    -
    2226  -60 /*deltaMinutes*/,
    -
    2227  0 /*letterIndex ("")*/,
    -
    2228  },
    -
    2229  // Rule Morocco 2080 only - Jul 21 2:00 0 -
    -
    2230  {
    -
    2231  2080 /*fromYear*/,
    -
    2232  2080 /*toYear*/,
    -
    2233  7 /*inMonth*/,
    -
    2234  0 /*onDayOfWeek*/,
    -
    2235  21 /*onDayOfMonth*/,
    -
    2236  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2237  480 /*atTimeCode (7200/15)*/,
    -
    2238  0 /*deltaMinutes*/,
    -
    2239  0 /*letterIndex ("")*/,
    -
    2240  },
    -
    2241  // Rule Morocco 2081 only - Jun 1 3:00 -1:00 -
    -
    2242  {
    -
    2243  2081 /*fromYear*/,
    -
    2244  2081 /*toYear*/,
    -
    2245  6 /*inMonth*/,
    -
    2246  0 /*onDayOfWeek*/,
    -
    2247  1 /*onDayOfMonth*/,
    -
    2248  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2249  720 /*atTimeCode (10800/15)*/,
    -
    2250  -60 /*deltaMinutes*/,
    -
    2251  0 /*letterIndex ("")*/,
    -
    2252  },
    -
    2253  // Rule Morocco 2081 only - Jul 13 2:00 0 -
    -
    2254  {
    -
    2255  2081 /*fromYear*/,
    -
    2256  2081 /*toYear*/,
    -
    2257  7 /*inMonth*/,
    -
    2258  0 /*onDayOfWeek*/,
    -
    2259  13 /*onDayOfMonth*/,
    -
    2260  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2261  480 /*atTimeCode (7200/15)*/,
    -
    2262  0 /*deltaMinutes*/,
    -
    2263  0 /*letterIndex ("")*/,
    -
    2264  },
    -
    2265  // Rule Morocco 2082 only - May 24 3:00 -1:00 -
    -
    2266  {
    -
    2267  2082 /*fromYear*/,
    -
    2268  2082 /*toYear*/,
    -
    2269  5 /*inMonth*/,
    -
    2270  0 /*onDayOfWeek*/,
    -
    2271  24 /*onDayOfMonth*/,
    -
    2272  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2273  720 /*atTimeCode (10800/15)*/,
    -
    2274  -60 /*deltaMinutes*/,
    -
    2275  0 /*letterIndex ("")*/,
    -
    2276  },
    -
    2277  // Rule Morocco 2082 only - Jun 28 2:00 0 -
    -
    2278  {
    -
    2279  2082 /*fromYear*/,
    -
    2280  2082 /*toYear*/,
    -
    2281  6 /*inMonth*/,
    -
    2282  0 /*onDayOfWeek*/,
    -
    2283  28 /*onDayOfMonth*/,
    -
    2284  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2285  480 /*atTimeCode (7200/15)*/,
    -
    2286  0 /*deltaMinutes*/,
    -
    2287  0 /*letterIndex ("")*/,
    -
    2288  },
    -
    2289  // Rule Morocco 2083 only - May 16 3:00 -1:00 -
    -
    2290  {
    -
    2291  2083 /*fromYear*/,
    -
    2292  2083 /*toYear*/,
    -
    2293  5 /*inMonth*/,
    -
    2294  0 /*onDayOfWeek*/,
    -
    2295  16 /*onDayOfMonth*/,
    -
    2296  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2297  720 /*atTimeCode (10800/15)*/,
    -
    2298  -60 /*deltaMinutes*/,
    -
    2299  0 /*letterIndex ("")*/,
    -
    2300  },
    -
    2301  // Rule Morocco 2083 only - Jun 20 2:00 0 -
    -
    2302  {
    -
    2303  2083 /*fromYear*/,
    -
    2304  2083 /*toYear*/,
    -
    2305  6 /*inMonth*/,
    -
    2306  0 /*onDayOfWeek*/,
    -
    2307  20 /*onDayOfMonth*/,
    -
    2308  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2309  480 /*atTimeCode (7200/15)*/,
    -
    2310  0 /*deltaMinutes*/,
    -
    2311  0 /*letterIndex ("")*/,
    -
    2312  },
    -
    2313  // Rule Morocco 2084 only - Apr 30 3:00 -1:00 -
    -
    2314  {
    -
    2315  2084 /*fromYear*/,
    -
    2316  2084 /*toYear*/,
    -
    2317  4 /*inMonth*/,
    -
    2318  0 /*onDayOfWeek*/,
    -
    2319  30 /*onDayOfMonth*/,
    -
    2320  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2321  720 /*atTimeCode (10800/15)*/,
    -
    2322  -60 /*deltaMinutes*/,
    -
    2323  0 /*letterIndex ("")*/,
    -
    2324  },
    -
    2325  // Rule Morocco 2084 only - Jun 11 2:00 0 -
    -
    2326  {
    -
    2327  2084 /*fromYear*/,
    -
    2328  2084 /*toYear*/,
    -
    2329  6 /*inMonth*/,
    -
    2330  0 /*onDayOfWeek*/,
    -
    2331  11 /*onDayOfMonth*/,
    -
    2332  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2333  480 /*atTimeCode (7200/15)*/,
    -
    2334  0 /*deltaMinutes*/,
    -
    2335  0 /*letterIndex ("")*/,
    -
    2336  },
    -
    2337  // Rule Morocco 2085 only - Apr 22 3:00 -1:00 -
    -
    2338  {
    -
    2339  2085 /*fromYear*/,
    -
    2340  2085 /*toYear*/,
    -
    2341  4 /*inMonth*/,
    -
    2342  0 /*onDayOfWeek*/,
    -
    2343  22 /*onDayOfMonth*/,
    -
    2344  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2345  720 /*atTimeCode (10800/15)*/,
    -
    2346  -60 /*deltaMinutes*/,
    -
    2347  0 /*letterIndex ("")*/,
    -
    2348  },
    -
    2349  // Rule Morocco 2085 only - May 27 2:00 0 -
    -
    2350  {
    -
    2351  2085 /*fromYear*/,
    -
    2352  2085 /*toYear*/,
    -
    2353  5 /*inMonth*/,
    -
    2354  0 /*onDayOfWeek*/,
    -
    2355  27 /*onDayOfMonth*/,
    -
    2356  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2357  480 /*atTimeCode (7200/15)*/,
    -
    2358  0 /*deltaMinutes*/,
    -
    2359  0 /*letterIndex ("")*/,
    -
    2360  },
    -
    2361  // Rule Morocco 2086 only - Apr 14 3:00 -1:00 -
    -
    2362  {
    -
    2363  2086 /*fromYear*/,
    -
    2364  2086 /*toYear*/,
    -
    2365  4 /*inMonth*/,
    -
    2366  0 /*onDayOfWeek*/,
    -
    2367  14 /*onDayOfMonth*/,
    -
    2368  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2369  720 /*atTimeCode (10800/15)*/,
    -
    2370  -60 /*deltaMinutes*/,
    -
    2371  0 /*letterIndex ("")*/,
    -
    2372  },
    -
    2373  // Rule Morocco 2086 only - May 19 2:00 0 -
    -
    2374  {
    -
    2375  2086 /*fromYear*/,
    -
    2376  2086 /*toYear*/,
    -
    2377  5 /*inMonth*/,
    -
    2378  0 /*onDayOfWeek*/,
    -
    2379  19 /*onDayOfMonth*/,
    -
    2380  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2381  480 /*atTimeCode (7200/15)*/,
    -
    2382  0 /*deltaMinutes*/,
    -
    2383  0 /*letterIndex ("")*/,
    -
    2384  },
    -
    2385  // Rule Morocco 2087 only - Mar 30 3:00 -1:00 -
    -
    2386  {
    -
    2387  2087 /*fromYear*/,
    -
    2388  2087 /*toYear*/,
    -
    2389  3 /*inMonth*/,
    -
    2390  0 /*onDayOfWeek*/,
    -
    2391  30 /*onDayOfMonth*/,
    -
    2392  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2393  720 /*atTimeCode (10800/15)*/,
    -
    2394  -60 /*deltaMinutes*/,
    -
    2395  0 /*letterIndex ("")*/,
    -
    2396  },
    -
    2397  // Rule Morocco 2087 only - May 11 2:00 0 -
    -
    2398  {
    -
    2399  2087 /*fromYear*/,
    -
    2400  2087 /*toYear*/,
    -
    2401  5 /*inMonth*/,
    -
    2402  0 /*onDayOfWeek*/,
    -
    2403  11 /*onDayOfMonth*/,
    -
    2404  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2405  480 /*atTimeCode (7200/15)*/,
    -
    2406  0 /*deltaMinutes*/,
    -
    2407  0 /*letterIndex ("")*/,
    -
    2408  },
    -
    2409 
    -
    2410 };
    -
    2411 
    -
    2412 const complete::Info::ZonePolicy kZonePolicyMorocco ACE_TIME_PROGMEM = {
    -
    2413  kZoneRulesMorocco /*rules*/,
    -
    2414  170 /*numRules*/,
    -
    2415 };
    -
    2416 
    -
    2417 //---------------------------------------------------------------------------
    -
    2418 // Policy name: Namibia
    -
    2419 // Rules: 4
    -
    2420 //---------------------------------------------------------------------------
    -
    2421 
    -
    2422 static const complete::Info::ZoneRule kZoneRulesNamibia[] ACE_TIME_PROGMEM = {
    -
    2423  // Anchor: Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
    -
    2424  {
    -
    2425  -32767 /*fromYear*/,
    -
    2426  -32767 /*toYear*/,
    -
    2427  1 /*inMonth*/,
    -
    2428  0 /*onDayOfWeek*/,
    -
    2429  1 /*onDayOfMonth*/,
    -
    2430  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2431  0 /*atTimeCode (0/15)*/,
    -
    2432  0 /*deltaMinutes*/,
    -
    2433  1 /*letterIndex ("CAT")*/,
    -
    2434  },
    -
    2435  // Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
    -
    2436  {
    -
    2437  1994 /*fromYear*/,
    -
    2438  1994 /*toYear*/,
    -
    2439  3 /*inMonth*/,
    -
    2440  0 /*onDayOfWeek*/,
    -
    2441  21 /*onDayOfMonth*/,
    -
    2442  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2443  0 /*atTimeCode (0/15)*/,
    -
    2444  -60 /*deltaMinutes*/,
    -
    2445  4 /*letterIndex ("WAT")*/,
    -
    2446  },
    -
    2447  // Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
    -
    2448  {
    -
    2449  1994 /*fromYear*/,
    -
    2450  2017 /*toYear*/,
    -
    2451  9 /*inMonth*/,
    -
    2452  7 /*onDayOfWeek*/,
    -
    2453  1 /*onDayOfMonth*/,
    -
    2454  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2455  480 /*atTimeCode (7200/15)*/,
    -
    2456  0 /*deltaMinutes*/,
    -
    2457  1 /*letterIndex ("CAT")*/,
    -
    2458  },
    -
    2459  // Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT
    -
    2460  {
    -
    2461  1995 /*fromYear*/,
    -
    2462  2017 /*toYear*/,
    -
    2463  4 /*inMonth*/,
    -
    2464  7 /*onDayOfWeek*/,
    -
    2465  1 /*onDayOfMonth*/,
    -
    2466  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2467  480 /*atTimeCode (7200/15)*/,
    -
    2468  -60 /*deltaMinutes*/,
    -
    2469  4 /*letterIndex ("WAT")*/,
    -
    2470  },
    -
    2471 
    -
    2472 };
    -
    2473 
    -
    2474 const complete::Info::ZonePolicy kZonePolicyNamibia ACE_TIME_PROGMEM = {
    -
    2475  kZoneRulesNamibia /*rules*/,
    -
    2476  4 /*numRules*/,
    -
    2477 };
    -
    2478 
    -
    2479 //---------------------------------------------------------------------------
    -
    2480 // Policy name: Port
    -
    2481 // Rules: 6
    -
    2482 //---------------------------------------------------------------------------
    -
    2483 
    -
    2484 static const complete::Info::ZoneRule kZoneRulesPort[] ACE_TIME_PROGMEM = {
    -
    2485  // Anchor: Rule Port 1978 only - Oct 1 1:00s 0 -
    -
    2486  {
    -
    2487  -32767 /*fromYear*/,
    -
    2488  -32767 /*toYear*/,
    -
    2489  1 /*inMonth*/,
    -
    2490  0 /*onDayOfWeek*/,
    -
    2491  1 /*onDayOfMonth*/,
    -
    2492  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2493  0 /*atTimeCode (0/15)*/,
    -
    2494  0 /*deltaMinutes*/,
    -
    2495  0 /*letterIndex ("")*/,
    -
    2496  },
    -
    2497  // Rule Port 1978 1980 - Apr Sun>=1 1:00s 1:00 S
    -
    2498  {
    -
    2499  1978 /*fromYear*/,
    -
    2500  1980 /*toYear*/,
    -
    2501  4 /*inMonth*/,
    -
    2502  7 /*onDayOfWeek*/,
    -
    2503  1 /*onDayOfMonth*/,
    -
    2504  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2505  240 /*atTimeCode (3600/15)*/,
    -
    2506  60 /*deltaMinutes*/,
    -
    2507  3 /*letterIndex ("S")*/,
    -
    2508  },
    -
    2509  // Rule Port 1978 only - Oct 1 1:00s 0 -
    -
    2510  {
    -
    2511  1978 /*fromYear*/,
    -
    2512  1978 /*toYear*/,
    -
    2513  10 /*inMonth*/,
    -
    2514  0 /*onDayOfWeek*/,
    -
    2515  1 /*onDayOfMonth*/,
    -
    2516  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2517  240 /*atTimeCode (3600/15)*/,
    -
    2518  0 /*deltaMinutes*/,
    -
    2519  0 /*letterIndex ("")*/,
    -
    2520  },
    -
    2521  // Rule Port 1979 1980 - Sep lastSun 1:00s 0 -
    -
    2522  {
    -
    2523  1979 /*fromYear*/,
    -
    2524  1980 /*toYear*/,
    -
    2525  9 /*inMonth*/,
    -
    2526  7 /*onDayOfWeek*/,
    -
    2527  0 /*onDayOfMonth*/,
    -
    2528  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2529  240 /*atTimeCode (3600/15)*/,
    -
    2530  0 /*deltaMinutes*/,
    -
    2531  0 /*letterIndex ("")*/,
    -
    2532  },
    -
    2533  // Rule Port 1981 1986 - Mar lastSun 0:00s 1:00 S
    -
    2534  {
    -
    2535  1981 /*fromYear*/,
    -
    2536  1986 /*toYear*/,
    -
    2537  3 /*inMonth*/,
    -
    2538  7 /*onDayOfWeek*/,
    -
    2539  0 /*onDayOfMonth*/,
    -
    2540  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2541  0 /*atTimeCode (0/15)*/,
    -
    2542  60 /*deltaMinutes*/,
    -
    2543  3 /*letterIndex ("S")*/,
    -
    2544  },
    -
    2545  // Rule Port 1981 1985 - Sep lastSun 0:00s 0 -
    -
    2546  {
    -
    2547  1981 /*fromYear*/,
    -
    2548  1985 /*toYear*/,
    -
    2549  9 /*inMonth*/,
    -
    2550  7 /*onDayOfWeek*/,
    -
    2551  0 /*onDayOfMonth*/,
    -
    2552  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2553  0 /*atTimeCode (0/15)*/,
    -
    2554  0 /*deltaMinutes*/,
    -
    2555  0 /*letterIndex ("")*/,
    -
    2556  },
    -
    2557 
    -
    2558 };
    -
    2559 
    -
    2560 const complete::Info::ZonePolicy kZonePolicyPort ACE_TIME_PROGMEM = {
    -
    2561  kZoneRulesPort /*rules*/,
    -
    2562  6 /*numRules*/,
    -
    2563 };
    -
    2564 
    -
    2565 //---------------------------------------------------------------------------
    -
    2566 // Policy name: US
    -
    2567 // Rules: 7
    -
    2568 //---------------------------------------------------------------------------
    -
    2569 
    -
    2570 static const complete::Info::ZoneRule kZoneRulesUS[] ACE_TIME_PROGMEM = {
    -
    2571  // Anchor: Rule US 1967 2006 - Oct lastSun 2:00 0 S
    -
    2572  {
    -
    2573  -32767 /*fromYear*/,
    -
    2574  -32767 /*toYear*/,
    -
    2575  1 /*inMonth*/,
    -
    2576  0 /*onDayOfWeek*/,
    -
    2577  1 /*onDayOfMonth*/,
    -
    2578  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2579  0 /*atTimeCode (0/15)*/,
    -
    2580  0 /*deltaMinutes*/,
    -
    2581  3 /*letterIndex ("S")*/,
    -
    2582  },
    -
    2583  // Rule US 1967 2006 - Oct lastSun 2:00 0 S
    -
    2584  {
    -
    2585  1967 /*fromYear*/,
    -
    2586  2006 /*toYear*/,
    -
    2587  10 /*inMonth*/,
    -
    2588  7 /*onDayOfWeek*/,
    -
    2589  0 /*onDayOfMonth*/,
    -
    2590  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2591  480 /*atTimeCode (7200/15)*/,
    -
    2592  0 /*deltaMinutes*/,
    -
    2593  3 /*letterIndex ("S")*/,
    -
    2594  },
    -
    2595  // Rule US 1975 only - Feb lastSun 2:00 1:00 D
    -
    2596  {
    -
    2597  1975 /*fromYear*/,
    -
    2598  1975 /*toYear*/,
    -
    2599  2 /*inMonth*/,
    -
    2600  7 /*onDayOfWeek*/,
    -
    2601  0 /*onDayOfMonth*/,
    -
    2602  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2603  480 /*atTimeCode (7200/15)*/,
    -
    2604  60 /*deltaMinutes*/,
    -
    2605  2 /*letterIndex ("D")*/,
    -
    2606  },
    -
    2607  // Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
    -
    2608  {
    -
    2609  1976 /*fromYear*/,
    -
    2610  1986 /*toYear*/,
    -
    2611  4 /*inMonth*/,
    -
    2612  7 /*onDayOfWeek*/,
    -
    2613  0 /*onDayOfMonth*/,
    -
    2614  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2615  480 /*atTimeCode (7200/15)*/,
    -
    2616  60 /*deltaMinutes*/,
    -
    2617  2 /*letterIndex ("D")*/,
    -
    2618  },
    -
    2619  // Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    2620  {
    -
    2621  1987 /*fromYear*/,
    -
    2622  2006 /*toYear*/,
    -
    2623  4 /*inMonth*/,
    -
    2624  7 /*onDayOfWeek*/,
    -
    2625  1 /*onDayOfMonth*/,
    -
    2626  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2627  480 /*atTimeCode (7200/15)*/,
    -
    2628  60 /*deltaMinutes*/,
    -
    2629  2 /*letterIndex ("D")*/,
    -
    2630  },
    -
    2631  // Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    2632  {
    -
    2633  2007 /*fromYear*/,
    -
    2634  32766 /*toYear*/,
    -
    2635  3 /*inMonth*/,
    -
    2636  7 /*onDayOfWeek*/,
    -
    2637  8 /*onDayOfMonth*/,
    -
    2638  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2639  480 /*atTimeCode (7200/15)*/,
    -
    2640  60 /*deltaMinutes*/,
    -
    2641  2 /*letterIndex ("D")*/,
    -
    2642  },
    -
    2643  // Rule US 2007 max - Nov Sun>=1 2:00 0 S
    -
    2644  {
    -
    2645  2007 /*fromYear*/,
    -
    2646  32766 /*toYear*/,
    -
    2647  11 /*inMonth*/,
    -
    2648  7 /*onDayOfWeek*/,
    -
    2649  1 /*onDayOfMonth*/,
    -
    2650  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2651  480 /*atTimeCode (7200/15)*/,
    -
    2652  0 /*deltaMinutes*/,
    -
    2653  3 /*letterIndex ("S")*/,
    -
    2654  },
    -
    2655 
    -
    2656 };
    -
    2657 
    -
    2658 const complete::Info::ZonePolicy kZonePolicyUS ACE_TIME_PROGMEM = {
    -
    2659  kZoneRulesUS /*rules*/,
    -
    2660  7 /*numRules*/,
    -
    2661 };
    -
    2662 
    -
    2663 //---------------------------------------------------------------------------
    -
    2664 // Policy name: Vanc
    -
    2665 // Rules: 4
    -
    2666 //---------------------------------------------------------------------------
    -
    2667 
    -
    2668 static const complete::Info::ZoneRule kZoneRulesVanc[] ACE_TIME_PROGMEM = {
    -
    2669  // Anchor: Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S
    -
    2670  {
    -
    2671  -32767 /*fromYear*/,
    -
    2672  -32767 /*toYear*/,
    -
    2673  1 /*inMonth*/,
    -
    2674  0 /*onDayOfWeek*/,
    -
    2675  1 /*onDayOfMonth*/,
    -
    2676  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2677  0 /*atTimeCode (0/15)*/,
    -
    2678  0 /*deltaMinutes*/,
    -
    2679  3 /*letterIndex ("S")*/,
    -
    2680  },
    -
    2681  // Rule Vanc 1946 1986 - Apr lastSun 2:00 1:00 D
    -
    2682  {
    -
    2683  1946 /*fromYear*/,
    -
    2684  1986 /*toYear*/,
    -
    2685  4 /*inMonth*/,
    -
    2686  7 /*onDayOfWeek*/,
    -
    2687  0 /*onDayOfMonth*/,
    -
    2688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2689  480 /*atTimeCode (7200/15)*/,
    -
    2690  60 /*deltaMinutes*/,
    -
    2691  2 /*letterIndex ("D")*/,
    -
    2692  },
    -
    2693  // Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S
    -
    2694  {
    -
    2695  1947 /*fromYear*/,
    -
    2696  1961 /*toYear*/,
    -
    2697  9 /*inMonth*/,
    -
    2698  7 /*onDayOfWeek*/,
    -
    2699  0 /*onDayOfMonth*/,
    -
    2700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2701  480 /*atTimeCode (7200/15)*/,
    -
    2702  0 /*deltaMinutes*/,
    -
    2703  3 /*letterIndex ("S")*/,
    -
    2704  },
    -
    2705  // Rule Vanc 1962 2006 - Oct lastSun 2:00 0 S
    -
    2706  {
    -
    2707  1962 /*fromYear*/,
    -
    2708  2006 /*toYear*/,
    -
    2709  10 /*inMonth*/,
    -
    2710  7 /*onDayOfWeek*/,
    -
    2711  0 /*onDayOfMonth*/,
    -
    2712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2713  480 /*atTimeCode (7200/15)*/,
    -
    2714  0 /*deltaMinutes*/,
    -
    2715  3 /*letterIndex ("S")*/,
    -
    2716  },
    -
    2717 
    -
    2718 };
    -
    2719 
    -
    2720 const complete::Info::ZonePolicy kZonePolicyVanc ACE_TIME_PROGMEM = {
    -
    2721  kZoneRulesVanc /*rules*/,
    -
    2722  4 /*numRules*/,
    -
    2723 };
    -
    2724 
    -
    2725 //---------------------------------------------------------------------------
    -
    2726 // Policy name: WS
    -
    2727 // Rules: 6
    -
    2728 //---------------------------------------------------------------------------
    -
    2729 
    -
    2730 static const complete::Info::ZoneRule kZoneRulesWS[] ACE_TIME_PROGMEM = {
    -
    2731  // Anchor: Rule WS 2011 only - Apr Sat>=1 4:00 0 -
    -
    2732  {
    -
    2733  -32767 /*fromYear*/,
    -
    2734  -32767 /*toYear*/,
    -
    2735  1 /*inMonth*/,
    -
    2736  0 /*onDayOfWeek*/,
    -
    2737  1 /*onDayOfMonth*/,
    -
    2738  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2739  0 /*atTimeCode (0/15)*/,
    -
    2740  0 /*deltaMinutes*/,
    -
    2741  0 /*letterIndex ("")*/,
    -
    2742  },
    -
    2743  // Rule WS 2010 only - Sep lastSun 0:00 1 -
    -
    2744  {
    -
    2745  2010 /*fromYear*/,
    -
    2746  2010 /*toYear*/,
    -
    2747  9 /*inMonth*/,
    -
    2748  7 /*onDayOfWeek*/,
    -
    2749  0 /*onDayOfMonth*/,
    -
    2750  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2751  0 /*atTimeCode (0/15)*/,
    -
    2752  60 /*deltaMinutes*/,
    -
    2753  0 /*letterIndex ("")*/,
    -
    2754  },
    -
    2755  // Rule WS 2011 only - Apr Sat>=1 4:00 0 -
    -
    2756  {
    -
    2757  2011 /*fromYear*/,
    -
    2758  2011 /*toYear*/,
    -
    2759  4 /*inMonth*/,
    -
    2760  6 /*onDayOfWeek*/,
    -
    2761  1 /*onDayOfMonth*/,
    -
    2762  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2763  960 /*atTimeCode (14400/15)*/,
    -
    2764  0 /*deltaMinutes*/,
    -
    2765  0 /*letterIndex ("")*/,
    -
    2766  },
    -
    2767  // Rule WS 2011 only - Sep lastSat 3:00 1 -
    -
    2768  {
    -
    2769  2011 /*fromYear*/,
    -
    2770  2011 /*toYear*/,
    -
    2771  9 /*inMonth*/,
    -
    2772  6 /*onDayOfWeek*/,
    -
    2773  0 /*onDayOfMonth*/,
    -
    2774  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2775  720 /*atTimeCode (10800/15)*/,
    -
    2776  60 /*deltaMinutes*/,
    -
    2777  0 /*letterIndex ("")*/,
    -
    2778  },
    -
    2779  // Rule WS 2012 2021 - Apr Sun>=1 4:00 0 -
    -
    2780  {
    -
    2781  2012 /*fromYear*/,
    -
    2782  2021 /*toYear*/,
    -
    2783  4 /*inMonth*/,
    -
    2784  7 /*onDayOfWeek*/,
    -
    2785  1 /*onDayOfMonth*/,
    -
    2786  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2787  960 /*atTimeCode (14400/15)*/,
    -
    2788  0 /*deltaMinutes*/,
    -
    2789  0 /*letterIndex ("")*/,
    -
    2790  },
    -
    2791  // Rule WS 2012 2020 - Sep lastSun 3:00 1 -
    -
    2792  {
    -
    2793  2012 /*fromYear*/,
    -
    2794  2020 /*toYear*/,
    -
    2795  9 /*inMonth*/,
    -
    2796  7 /*onDayOfWeek*/,
    -
    2797  0 /*onDayOfMonth*/,
    -
    2798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2799  720 /*atTimeCode (10800/15)*/,
    -
    2800  60 /*deltaMinutes*/,
    -
    2801  0 /*letterIndex ("")*/,
    -
    2802  },
    -
    2803 
    -
    2804 };
    -
    2805 
    -
    2806 const complete::Info::ZonePolicy kZonePolicyWS ACE_TIME_PROGMEM = {
    -
    2807  kZoneRulesWS /*rules*/,
    -
    2808  6 /*numRules*/,
    -
    2809 };
    -
    2810 
    -
    2811 //---------------------------------------------------------------------------
    -
    2812 // Policy name: Winn
    -
    2813 // Rules: 5
    -
    2814 //---------------------------------------------------------------------------
    -
    2815 
    -
    2816 static const complete::Info::ZoneRule kZoneRulesWinn[] ACE_TIME_PROGMEM = {
    -
    2817  // Anchor: Rule Winn 1963 only - Sep 22 2:00 0 S
    -
    2818  {
    -
    2819  -32767 /*fromYear*/,
    -
    2820  -32767 /*toYear*/,
    -
    2821  1 /*inMonth*/,
    -
    2822  0 /*onDayOfWeek*/,
    -
    2823  1 /*onDayOfMonth*/,
    -
    2824  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2825  0 /*atTimeCode (0/15)*/,
    -
    2826  0 /*deltaMinutes*/,
    -
    2827  3 /*letterIndex ("S")*/,
    -
    2828  },
    -
    2829  // Rule Winn 1963 only - Sep 22 2:00 0 S
    -
    2830  {
    -
    2831  1963 /*fromYear*/,
    -
    2832  1963 /*toYear*/,
    -
    2833  9 /*inMonth*/,
    -
    2834  0 /*onDayOfWeek*/,
    -
    2835  22 /*onDayOfMonth*/,
    -
    2836  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2837  480 /*atTimeCode (7200/15)*/,
    -
    2838  0 /*deltaMinutes*/,
    -
    2839  3 /*letterIndex ("S")*/,
    -
    2840  },
    -
    2841  // Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D
    -
    2842  {
    -
    2843  1966 /*fromYear*/,
    -
    2844  1986 /*toYear*/,
    -
    2845  4 /*inMonth*/,
    -
    2846  7 /*onDayOfWeek*/,
    -
    2847  0 /*onDayOfMonth*/,
    -
    2848  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2849  480 /*atTimeCode (7200/15)*/,
    -
    2850  60 /*deltaMinutes*/,
    -
    2851  2 /*letterIndex ("D")*/,
    -
    2852  },
    -
    2853  // Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
    -
    2854  {
    -
    2855  1966 /*fromYear*/,
    -
    2856  2005 /*toYear*/,
    -
    2857  10 /*inMonth*/,
    -
    2858  7 /*onDayOfWeek*/,
    -
    2859  0 /*onDayOfMonth*/,
    -
    2860  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2861  480 /*atTimeCode (7200/15)*/,
    -
    2862  0 /*deltaMinutes*/,
    -
    2863  3 /*letterIndex ("S")*/,
    -
    2864  },
    -
    2865  // Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D
    -
    2866  {
    -
    2867  1987 /*fromYear*/,
    -
    2868  2005 /*toYear*/,
    -
    2869  4 /*inMonth*/,
    -
    2870  7 /*onDayOfWeek*/,
    -
    2871  1 /*onDayOfMonth*/,
    -
    2872  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2873  480 /*atTimeCode (7200/15)*/,
    -
    2874  60 /*deltaMinutes*/,
    -
    2875  2 /*letterIndex ("D")*/,
    -
    2876  },
    -
    2877 
    -
    2878 };
    -
    2879 
    -
    2880 const complete::Info::ZonePolicy kZonePolicyWinn ACE_TIME_PROGMEM = {
    -
    2881  kZoneRulesWinn /*rules*/,
    -
    2882  5 /*numRules*/,
    -
    2883 };
    -
    2884 
    -
    2885 
    -
    2886 
    -
    2887 }
    -
    2888 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/testingzonedbc_2zone__policies_8h_source.html b/docs/html/testingzonedbc_2zone__policies_8h_source.html deleted file mode 100644 index d2daf9f67..000000000 --- a/docs/html/testingzonedbc_2zone__policies_8h_source.html +++ /dev/null @@ -1,329 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/zone_policies.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace testingzonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 2640
    -
    53 // Policies: 33
    -
    54 // Eras: 450
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 3709
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 600
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4140
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #ifndef ACE_TIME_TESTINGZONEDBC_ZONE_POLICIES_H
    -
    81 #define ACE_TIME_TESTINGZONEDBC_ZONE_POLICIES_H
    -
    82 
    -
    83 #include <zoneinfo/infos.h>
    -
    84 
    -
    85 namespace ace_time {
    -
    86 namespace testingzonedbc {
    -
    87 
    -
    88 //---------------------------------------------------------------------------
    -
    89 // Supported policies: 11
    -
    90 //---------------------------------------------------------------------------
    -
    91 
    -
    92 extern const complete::Info::ZonePolicy kZonePolicyAus;
    -
    93 extern const complete::Info::ZonePolicy kZonePolicyCanada;
    -
    94 extern const complete::Info::ZonePolicy kZonePolicyEU;
    -
    95 extern const complete::Info::ZonePolicy kZonePolicyEdm;
    -
    96 extern const complete::Info::ZonePolicy kZonePolicyMorocco;
    -
    97 extern const complete::Info::ZonePolicy kZonePolicyNamibia;
    -
    98 extern const complete::Info::ZonePolicy kZonePolicyPort;
    -
    99 extern const complete::Info::ZonePolicy kZonePolicyUS;
    -
    100 extern const complete::Info::ZonePolicy kZonePolicyVanc;
    -
    101 extern const complete::Info::ZonePolicy kZonePolicyWS;
    -
    102 extern const complete::Info::ZonePolicy kZonePolicyWinn;
    -
    103 
    -
    104 
    -
    105 //---------------------------------------------------------------------------
    -
    106 // Unsupported policies: 123
    -
    107 //---------------------------------------------------------------------------
    -
    108 
    -
    109 // AN {unused}
    -
    110 // AQ {unused}
    -
    111 // AS {unused}
    -
    112 // AT {unused}
    -
    113 // AV {unused}
    -
    114 // AW {unused}
    -
    115 // Albania {unused}
    -
    116 // Algeria {unused}
    -
    117 // Arg {unused}
    -
    118 // Armenia {unused}
    -
    119 // Austria {unused}
    -
    120 // Azer {unused}
    -
    121 // Barb {unused}
    -
    122 // Belgium {unused}
    -
    123 // Belize {unused}
    -
    124 // Bermuda {unused}
    -
    125 // Brazil {unused}
    -
    126 // Bulg {unused}
    -
    127 // C-Eur {unused}
    -
    128 // CA {unused}
    -
    129 // CO {unused}
    -
    130 // CR {unused}
    -
    131 // Chatham {unused}
    -
    132 // Chicago {unused}
    -
    133 // Chile {unused}
    -
    134 // Cook {unused}
    -
    135 // Cuba {unused}
    -
    136 // Cyprus {unused}
    -
    137 // Czech {unused}
    -
    138 // DR {unused}
    -
    139 // Denver {unused}
    -
    140 // Detroit {unused}
    -
    141 // Dhaka {unused}
    -
    142 // E-Eur {unused}
    -
    143 // E-EurAsia {unused}
    -
    144 // EUAsia {unused}
    -
    145 // Ecuador {unused}
    -
    146 // Egypt {unused}
    -
    147 // EgyptAsia {unused}
    -
    148 // Eire {unused}
    -
    149 // Falk {unused}
    -
    150 // Fiji {unused}
    -
    151 // Finland {unused}
    -
    152 // France {unused}
    -
    153 // GB-Eire {unused}
    -
    154 // Germany {unused}
    -
    155 // Greece {unused}
    -
    156 // Guam {unused}
    -
    157 // Guat {unused}
    -
    158 // HK {unused}
    -
    159 // Haiti {unused}
    -
    160 // Halifax {unused}
    -
    161 // Holiday {unused}
    -
    162 // Hond {unused}
    -
    163 // Hungary {unused}
    -
    164 // Indianapolis {unused}
    -
    165 // Iran {unused}
    -
    166 // Iraq {unused}
    -
    167 // Italy {unused}
    -
    168 // Japan {unused}
    -
    169 // Jordan {unused}
    -
    170 // Kyrgyz {unused}
    -
    171 // LH {unused}
    -
    172 // Latvia {unused}
    -
    173 // Lebanon {unused}
    -
    174 // Libya {unused}
    -
    175 // Louisville {unused}
    -
    176 // Macau {unused}
    -
    177 // Malta {unused}
    -
    178 // Marengo {unused}
    -
    179 // Mauritius {unused}
    -
    180 // Menominee {unused}
    -
    181 // Mexico {unused}
    -
    182 // Moldova {unused}
    -
    183 // Moncton {unused}
    -
    184 // Mongol {unused}
    -
    185 // NBorneo {unused}
    -
    186 // NC {unused}
    -
    187 // NT_YK {unused}
    -
    188 // NYC {unused}
    -
    189 // NZ {unused}
    -
    190 // Nic {unused}
    -
    191 // PRC {unused}
    -
    192 // Pakistan {unused}
    -
    193 // Palestine {unused}
    -
    194 // Para {unused}
    -
    195 // Perry {unused}
    -
    196 // Peru {unused}
    -
    197 // Phil {unused}
    -
    198 // Pike {unused}
    -
    199 // Poland {unused}
    -
    200 // Pulaski {unused}
    -
    201 // ROK {unused}
    -
    202 // Regina {unused}
    -
    203 // Romania {unused}
    -
    204 // Russia {unused}
    -
    205 // RussiaAsia {unused}
    -
    206 // SA {unused}
    -
    207 // Salv {unused}
    -
    208 // SanLuis {unused}
    -
    209 // Shang {unused}
    -
    210 // SovietZone {unused}
    -
    211 // Spain {unused}
    -
    212 // SpainAfrica {unused}
    -
    213 // StJohns {unused}
    -
    214 // Starke {unused}
    -
    215 // Sudan {unused}
    -
    216 // Swift {unused}
    -
    217 // Swiss {unused}
    -
    218 // Syria {unused}
    -
    219 // Taiwan {unused}
    -
    220 // Thule {unused}
    -
    221 // Tonga {unused}
    -
    222 // Toronto {unused}
    -
    223 // Troll {unused}
    -
    224 // Tunisia {unused}
    -
    225 // Turkey {unused}
    -
    226 // Uruguay {unused}
    -
    227 // Vanuatu {unused}
    -
    228 // Vincennes {unused}
    -
    229 // W-Eur {unused}
    -
    230 // Yukon {unused}
    -
    231 // Zion {unused}
    -
    232 
    -
    233 
    -
    234 //---------------------------------------------------------------------------
    -
    235 // Notable zone policies: 2
    -
    236 //---------------------------------------------------------------------------
    -
    237 
    -
    238 // Morocco {SAVE '-1:00' is a negative DST}
    -
    239 // Namibia {
    -
    240 // LETTER 'CAT' not single character,
    -
    241 // LETTER 'WAT' not single character,
    -
    242 // SAVE '-1:00' is a negative DST,
    -
    243 // }
    -
    244 
    -
    245 
    -
    246 }
    -
    247 }
    -
    248 
    -
    249 #endif
    -
    - - - - diff --git a/docs/html/testingzonedbc_2zone__registry_8cpp_source.html b/docs/html/testingzonedbc_2zone__registry_8cpp_source.html deleted file mode 100644 index 0ad651dd0..000000000 --- a/docs/html/testingzonedbc_2zone__registry_8cpp_source.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/zone_registry.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace testingzonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 2640
    -
    53 // Policies: 33
    -
    54 // Eras: 450
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 3709
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 600
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4140
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #include <zoneinfo/compat.h>
    -
    81 #include "zone_infos.h"
    -
    82 #include "zone_registry.h"
    -
    83 
    -
    84 namespace ace_time {
    -
    85 namespace testingzonedbc {
    -
    86 
    -
    87 //---------------------------------------------------------------------------
    -
    88 // Zone Info registry. Sorted by zoneId.
    -
    89 //---------------------------------------------------------------------------
    -
    90 const complete::Info::ZoneInfo* const kZoneRegistry[15] ACE_TIME_PROGMEM = {
    -
    91  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    92  &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia
    -
    93  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    94  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    95  &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas
    -
    96  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    97  &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse
    -
    98  &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon
    -
    99  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    100  &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek
    -
    101  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    102  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    103  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    104  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    105  &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca
    -
    106 
    -
    107 };
    -
    108 
    -
    109 //---------------------------------------------------------------------------
    -
    110 // Zone and Link (fat) Info registry. Sorted by zoneId. Links act like Zones.
    -
    111 //---------------------------------------------------------------------------
    -
    112 const complete::Info::ZoneInfo* const kZoneAndLinkRegistry[16] ACE_TIME_PROGMEM = {
    -
    113  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    114  &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia
    -
    115  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    116  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    117  &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas
    -
    118  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    119  &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse
    -
    120  &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon
    -
    121  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    122  &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek
    -
    123  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    124  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    125  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    126  &kZoneUS_Pacific, // 0xa950f6ab, US/Pacific -> America/Los_Angeles
    -
    127  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    128  &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca
    -
    129 
    -
    130 };
    -
    131 
    -
    132 }
    -
    133 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/testingzonedbc_2zone__registry_8h_source.html b/docs/html/testingzonedbc_2zone__registry_8h_source.html deleted file mode 100644 index 4b2af9f8c..000000000 --- a/docs/html/testingzonedbc_2zone__registry_8h_source.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/zone_registry.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace testingzonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 2640
    -
    53 // Policies: 33
    -
    54 // Eras: 450
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 3709
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 600
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4140
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #ifndef ACE_TIME_TESTINGZONEDBC_ZONE_REGISTRY_H
    -
    81 #define ACE_TIME_TESTINGZONEDBC_ZONE_REGISTRY_H
    -
    82 
    -
    83 #include <zoneinfo/infos.h>
    -
    84 
    -
    85 namespace ace_time {
    -
    86 namespace testingzonedbc {
    -
    87 
    -
    88 // Zones
    -
    89 const uint16_t kZoneRegistrySize = 15;
    -
    90 extern const complete::Info::ZoneInfo* const kZoneRegistry[15];
    -
    91 
    -
    92 // Zones and Links
    -
    93 const uint16_t kZoneAndLinkRegistrySize = 16;
    -
    94 extern const complete::Info::ZoneInfo* const kZoneAndLinkRegistry[16];
    -
    95 
    -
    96 }
    -
    97 }
    -
    98 #endif
    -
    - - - - diff --git a/docs/html/testingzonedbx_2zone__infos_8cpp_source.html b/docs/html/testingzonedbx_2zone__infos_8cpp_source.html deleted file mode 100644 index 3587a2b10..000000000 --- a/docs/html/testingzonedbx_2zone__infos_8cpp_source.html +++ /dev/null @@ -1,899 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/zone_infos.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace testingzonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 1980
    -
    53 // Policies: 33
    -
    54 // Eras: 330
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 2929
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 480
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4020
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #include <zoneinfo/compat.h>
    -
    81 #include "zone_policies.h"
    -
    82 #include "zone_infos.h"
    -
    83 
    -
    84 namespace ace_time {
    -
    85 namespace testingzonedbx {
    -
    86 
    -
    87 //---------------------------------------------------------------------------
    -
    88 // ZoneContext
    -
    89 //---------------------------------------------------------------------------
    -
    90 
    -
    91 static const char kVersionString[] ACE_TIME_PROGMEM = "2025b";
    -
    92 const __FlashStringHelper* const kTzDatabaseVersion =
    -
    93  (const __FlashStringHelper*) kVersionString;
    -
    94 
    -
    95 
    -
    96 const char* const kFragments[] ACE_TIME_PROGMEM = {
    -
    97  nullptr, // '\x00' cannot exist
    -
    98 
    -
    99 };
    -
    100 
    -
    101 static const char kLetter0[] ACE_TIME_PROGMEM = "";
    -
    102 static const char kLetter1[] ACE_TIME_PROGMEM = "CAT";
    -
    103 static const char kLetter2[] ACE_TIME_PROGMEM = "D";
    -
    104 static const char kLetter3[] ACE_TIME_PROGMEM = "S";
    -
    105 static const char kLetter4[] ACE_TIME_PROGMEM = "WAT";
    -
    106 
    -
    107 const char* const kLetters[] ACE_TIME_PROGMEM = {
    -
    108  kLetter0, // ""
    -
    109  kLetter1, // "CAT"
    -
    110  kLetter2, // "D"
    -
    111  kLetter3, // "S"
    -
    112  kLetter4, // "WAT"
    -
    113 
    -
    114 };
    -
    115 
    -
    116 const extended::Info::ZoneContext kZoneContext ACE_TIME_PROGMEM = {
    -
    117  1980 /*startYear*/,
    -
    118  2200 /*untilYear*/,
    -
    119  1980 /*startYearAccurate*/,
    -
    120  32767 /*untilYearAccurate*/,
    -
    121  2100 /*baseYear*/,
    -
    122  7 /*maxTransitions*/,
    -
    123  kVersionString /*tzVersion*/,
    -
    124  1 /*numFragments*/,
    -
    125  5 /*numLetters*/,
    -
    126  kFragments /*fragments*/,
    -
    127  kLetters /*letters*/,
    -
    128 };
    -
    129 
    -
    130 //---------------------------------------------------------------------------
    -
    131 // Zones: 15
    -
    132 // Eras: 30
    -
    133 //---------------------------------------------------------------------------
    -
    134 
    -
    135 //---------------------------------------------------------------------------
    -
    136 // Zone name: Africa/Casablanca
    -
    137 // Eras: 4
    -
    138 //---------------------------------------------------------------------------
    -
    139 
    -
    140 static const extended::Info::ZoneEra kZoneEraAfrica_Casablanca[] ACE_TIME_PROGMEM = {
    -
    141  // 0:00 Morocco %z 1984 Mar 16
    -
    142  {
    -
    143  &kZonePolicyMorocco /*zonePolicy*/,
    -
    144  "" /*format*/,
    -
    145  0 /*offsetCode*/,
    -
    146  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    147  -116 /*untilYearTiny*/,
    -
    148  3 /*untilMonth*/,
    -
    149  16 /*untilDay*/,
    -
    150  0 /*untilTimeCode*/,
    -
    151  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    152  },
    -
    153  // 1:00 - %z 1986
    -
    154  {
    -
    155  nullptr /*zonePolicy*/,
    -
    156  "" /*format*/,
    -
    157  4 /*offsetCode*/,
    -
    158  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    159  -114 /*untilYearTiny*/,
    -
    160  1 /*untilMonth*/,
    -
    161  1 /*untilDay*/,
    -
    162  0 /*untilTimeCode*/,
    -
    163  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    164  },
    -
    165  // 0:00 Morocco %z 2018 Oct 28 3:00
    -
    166  {
    -
    167  &kZonePolicyMorocco /*zonePolicy*/,
    -
    168  "" /*format*/,
    -
    169  0 /*offsetCode*/,
    -
    170  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    171  -82 /*untilYearTiny*/,
    -
    172  10 /*untilMonth*/,
    -
    173  28 /*untilDay*/,
    -
    174  12 /*untilTimeCode*/,
    -
    175  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    176  },
    -
    177  // 1:00 Morocco %z
    -
    178  {
    -
    179  &kZonePolicyMorocco /*zonePolicy*/,
    -
    180  "" /*format*/,
    -
    181  4 /*offsetCode*/,
    -
    182  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    183  127 /*untilYearTiny*/,
    -
    184  1 /*untilMonth*/,
    -
    185  1 /*untilDay*/,
    -
    186  0 /*untilTimeCode*/,
    -
    187  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    188  },
    -
    189 
    -
    190 };
    -
    191 
    -
    192 static const char kZoneNameAfrica_Casablanca[] ACE_TIME_PROGMEM = "Africa/Casablanca";
    -
    193 
    -
    194 const extended::Info::ZoneInfo kZoneAfrica_Casablanca ACE_TIME_PROGMEM = {
    -
    195  kZoneNameAfrica_Casablanca /*name*/,
    -
    196  0xc59f1b33 /*zoneId*/,
    -
    197  &kZoneContext /*zoneContext*/,
    -
    198  4 /*numEras*/,
    -
    199  kZoneEraAfrica_Casablanca /*eras*/,
    -
    200  nullptr /*targetInfo*/,
    -
    201 };
    -
    202 
    -
    203 //---------------------------------------------------------------------------
    -
    204 // Zone name: Africa/Windhoek
    -
    205 // Eras: 2
    -
    206 //---------------------------------------------------------------------------
    -
    207 
    -
    208 static const extended::Info::ZoneEra kZoneEraAfrica_Windhoek[] ACE_TIME_PROGMEM = {
    -
    209  // 2:00 - SAST 1990 Mar 21
    -
    210  {
    -
    211  nullptr /*zonePolicy*/,
    -
    212  "SAST" /*format*/,
    -
    213  8 /*offsetCode*/,
    -
    214  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    215  -110 /*untilYearTiny*/,
    -
    216  3 /*untilMonth*/,
    -
    217  21 /*untilDay*/,
    -
    218  0 /*untilTimeCode*/,
    -
    219  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    220  },
    -
    221  // 2:00 Namibia %s
    -
    222  {
    -
    223  &kZonePolicyNamibia /*zonePolicy*/,
    -
    224  "%" /*format*/,
    -
    225  8 /*offsetCode*/,
    -
    226  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    227  127 /*untilYearTiny*/,
    -
    228  1 /*untilMonth*/,
    -
    229  1 /*untilDay*/,
    -
    230  0 /*untilTimeCode*/,
    -
    231  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    232  },
    -
    233 
    -
    234 };
    -
    235 
    -
    236 static const char kZoneNameAfrica_Windhoek[] ACE_TIME_PROGMEM = "Africa/Windhoek";
    -
    237 
    -
    238 const extended::Info::ZoneInfo kZoneAfrica_Windhoek ACE_TIME_PROGMEM = {
    -
    239  kZoneNameAfrica_Windhoek /*name*/,
    -
    240  0x789c9bd3 /*zoneId*/,
    -
    241  &kZoneContext /*zoneContext*/,
    -
    242  2 /*numEras*/,
    -
    243  kZoneEraAfrica_Windhoek /*eras*/,
    -
    244  nullptr /*targetInfo*/,
    -
    245 };
    -
    246 
    -
    247 //---------------------------------------------------------------------------
    -
    248 // Zone name: America/Caracas
    -
    249 // Eras: 3
    -
    250 //---------------------------------------------------------------------------
    -
    251 
    -
    252 static const extended::Info::ZoneEra kZoneEraAmerica_Caracas[] ACE_TIME_PROGMEM = {
    -
    253  // -4:00 - %z 2007 Dec 9 3:00
    -
    254  {
    -
    255  nullptr /*zonePolicy*/,
    -
    256  "" /*format*/,
    -
    257  -16 /*offsetCode*/,
    -
    258  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    259  -93 /*untilYearTiny*/,
    -
    260  12 /*untilMonth*/,
    -
    261  9 /*untilDay*/,
    -
    262  12 /*untilTimeCode*/,
    -
    263  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    264  },
    -
    265  // -4:30 - %z 2016 May 1 2:30
    -
    266  {
    -
    267  nullptr /*zonePolicy*/,
    -
    268  "" /*format*/,
    -
    269  -18 /*offsetCode*/,
    -
    270  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    271  -84 /*untilYearTiny*/,
    -
    272  5 /*untilMonth*/,
    -
    273  1 /*untilDay*/,
    -
    274  10 /*untilTimeCode*/,
    -
    275  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    276  },
    -
    277  // -4:00 - %z
    -
    278  {
    -
    279  nullptr /*zonePolicy*/,
    -
    280  "" /*format*/,
    -
    281  -16 /*offsetCode*/,
    -
    282  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    283  127 /*untilYearTiny*/,
    -
    284  1 /*untilMonth*/,
    -
    285  1 /*untilDay*/,
    -
    286  0 /*untilTimeCode*/,
    -
    287  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    288  },
    -
    289 
    -
    290 };
    -
    291 
    -
    292 static const char kZoneNameAmerica_Caracas[] ACE_TIME_PROGMEM = "America/Caracas";
    -
    293 
    -
    294 const extended::Info::ZoneInfo kZoneAmerica_Caracas ACE_TIME_PROGMEM = {
    -
    295  kZoneNameAmerica_Caracas /*name*/,
    -
    296  0x3be064f4 /*zoneId*/,
    -
    297  &kZoneContext /*zoneContext*/,
    -
    298  3 /*numEras*/,
    -
    299  kZoneEraAmerica_Caracas /*eras*/,
    -
    300  nullptr /*targetInfo*/,
    -
    301 };
    -
    302 
    -
    303 //---------------------------------------------------------------------------
    -
    304 // Zone name: America/Chicago
    -
    305 // Eras: 1
    -
    306 //---------------------------------------------------------------------------
    -
    307 
    -
    308 static const extended::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = {
    -
    309  // -6:00 US C%sT
    -
    310  {
    -
    311  &kZonePolicyUS /*zonePolicy*/,
    -
    312  "C%T" /*format*/,
    -
    313  -24 /*offsetCode*/,
    -
    314  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    315  127 /*untilYearTiny*/,
    -
    316  1 /*untilMonth*/,
    -
    317  1 /*untilDay*/,
    -
    318  0 /*untilTimeCode*/,
    -
    319  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    320  },
    -
    321 
    -
    322 };
    -
    323 
    -
    324 static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "America/Chicago";
    -
    325 
    -
    326 const extended::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = {
    -
    327  kZoneNameAmerica_Chicago /*name*/,
    -
    328  0x4b92b5d4 /*zoneId*/,
    -
    329  &kZoneContext /*zoneContext*/,
    -
    330  1 /*numEras*/,
    -
    331  kZoneEraAmerica_Chicago /*eras*/,
    -
    332  nullptr /*targetInfo*/,
    -
    333 };
    -
    334 
    -
    335 //---------------------------------------------------------------------------
    -
    336 // Zone name: America/Denver
    -
    337 // Eras: 1
    -
    338 //---------------------------------------------------------------------------
    -
    339 
    -
    340 static const extended::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = {
    -
    341  // -7:00 US M%sT
    -
    342  {
    -
    343  &kZonePolicyUS /*zonePolicy*/,
    -
    344  "M%T" /*format*/,
    -
    345  -28 /*offsetCode*/,
    -
    346  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    347  127 /*untilYearTiny*/,
    -
    348  1 /*untilMonth*/,
    -
    349  1 /*untilDay*/,
    -
    350  0 /*untilTimeCode*/,
    -
    351  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    352  },
    -
    353 
    -
    354 };
    -
    355 
    -
    356 static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "America/Denver";
    -
    357 
    -
    358 const extended::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = {
    -
    359  kZoneNameAmerica_Denver /*name*/,
    -
    360  0x97d10b2a /*zoneId*/,
    -
    361  &kZoneContext /*zoneContext*/,
    -
    362  1 /*numEras*/,
    -
    363  kZoneEraAmerica_Denver /*eras*/,
    -
    364  nullptr /*targetInfo*/,
    -
    365 };
    -
    366 
    -
    367 //---------------------------------------------------------------------------
    -
    368 // Zone name: America/Edmonton
    -
    369 // Eras: 2
    -
    370 //---------------------------------------------------------------------------
    -
    371 
    -
    372 static const extended::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = {
    -
    373  // -7:00 Edm M%sT 1987
    -
    374  {
    -
    375  &kZonePolicyEdm /*zonePolicy*/,
    -
    376  "M%T" /*format*/,
    -
    377  -28 /*offsetCode*/,
    -
    378  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    379  -113 /*untilYearTiny*/,
    -
    380  1 /*untilMonth*/,
    -
    381  1 /*untilDay*/,
    -
    382  0 /*untilTimeCode*/,
    -
    383  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    384  },
    -
    385  // -7:00 Canada M%sT
    -
    386  {
    -
    387  &kZonePolicyCanada /*zonePolicy*/,
    -
    388  "M%T" /*format*/,
    -
    389  -28 /*offsetCode*/,
    -
    390  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    391  127 /*untilYearTiny*/,
    -
    392  1 /*untilMonth*/,
    -
    393  1 /*untilDay*/,
    -
    394  0 /*untilTimeCode*/,
    -
    395  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    396  },
    -
    397 
    -
    398 };
    -
    399 
    -
    400 static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "America/Edmonton";
    -
    401 
    -
    402 const extended::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = {
    -
    403  kZoneNameAmerica_Edmonton /*name*/,
    -
    404  0x6cb9484a /*zoneId*/,
    -
    405  &kZoneContext /*zoneContext*/,
    -
    406  2 /*numEras*/,
    -
    407  kZoneEraAmerica_Edmonton /*eras*/,
    -
    408  nullptr /*targetInfo*/,
    -
    409 };
    -
    410 
    -
    411 //---------------------------------------------------------------------------
    -
    412 // Zone name: America/Los_Angeles
    -
    413 // Eras: 1
    -
    414 //---------------------------------------------------------------------------
    -
    415 
    -
    416 static const extended::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = {
    -
    417  // -8:00 US P%sT
    -
    418  {
    -
    419  &kZonePolicyUS /*zonePolicy*/,
    -
    420  "P%T" /*format*/,
    -
    421  -32 /*offsetCode*/,
    -
    422  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    423  127 /*untilYearTiny*/,
    -
    424  1 /*untilMonth*/,
    -
    425  1 /*untilDay*/,
    -
    426  0 /*untilTimeCode*/,
    -
    427  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    428  },
    -
    429 
    -
    430 };
    -
    431 
    -
    432 static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "America/Los_Angeles";
    -
    433 
    -
    434 const extended::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = {
    -
    435  kZoneNameAmerica_Los_Angeles /*name*/,
    -
    436  0xb7f7e8f2 /*zoneId*/,
    -
    437  &kZoneContext /*zoneContext*/,
    -
    438  1 /*numEras*/,
    -
    439  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    440  nullptr /*targetInfo*/,
    -
    441 };
    -
    442 
    -
    443 //---------------------------------------------------------------------------
    -
    444 // Zone name: America/New_York
    -
    445 // Eras: 1
    -
    446 //---------------------------------------------------------------------------
    -
    447 
    -
    448 static const extended::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = {
    -
    449  // -5:00 US E%sT
    -
    450  {
    -
    451  &kZonePolicyUS /*zonePolicy*/,
    -
    452  "E%T" /*format*/,
    -
    453  -20 /*offsetCode*/,
    -
    454  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    455  127 /*untilYearTiny*/,
    -
    456  1 /*untilMonth*/,
    -
    457  1 /*untilDay*/,
    -
    458  0 /*untilTimeCode*/,
    -
    459  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    460  },
    -
    461 
    -
    462 };
    -
    463 
    -
    464 static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "America/New_York";
    -
    465 
    -
    466 const extended::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = {
    -
    467  kZoneNameAmerica_New_York /*name*/,
    -
    468  0x1e2a7654 /*zoneId*/,
    -
    469  &kZoneContext /*zoneContext*/,
    -
    470  1 /*numEras*/,
    -
    471  kZoneEraAmerica_New_York /*eras*/,
    -
    472  nullptr /*targetInfo*/,
    -
    473 };
    -
    474 
    -
    475 //---------------------------------------------------------------------------
    -
    476 // Zone name: America/Toronto
    -
    477 // Eras: 1
    -
    478 //---------------------------------------------------------------------------
    -
    479 
    -
    480 static const extended::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = {
    -
    481  // -5:00 Canada E%sT
    -
    482  {
    -
    483  &kZonePolicyCanada /*zonePolicy*/,
    -
    484  "E%T" /*format*/,
    -
    485  -20 /*offsetCode*/,
    -
    486  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    487  127 /*untilYearTiny*/,
    -
    488  1 /*untilMonth*/,
    -
    489  1 /*untilDay*/,
    -
    490  0 /*untilTimeCode*/,
    -
    491  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    492  },
    -
    493 
    -
    494 };
    -
    495 
    -
    496 static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "America/Toronto";
    -
    497 
    -
    498 const extended::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = {
    -
    499  kZoneNameAmerica_Toronto /*name*/,
    -
    500  0x792e851b /*zoneId*/,
    -
    501  &kZoneContext /*zoneContext*/,
    -
    502  1 /*numEras*/,
    -
    503  kZoneEraAmerica_Toronto /*eras*/,
    -
    504  nullptr /*targetInfo*/,
    -
    505 };
    -
    506 
    -
    507 //---------------------------------------------------------------------------
    -
    508 // Zone name: America/Vancouver
    -
    509 // Eras: 2
    -
    510 //---------------------------------------------------------------------------
    -
    511 
    -
    512 static const extended::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = {
    -
    513  // -8:00 Vanc P%sT 1987
    -
    514  {
    -
    515  &kZonePolicyVanc /*zonePolicy*/,
    -
    516  "P%T" /*format*/,
    -
    517  -32 /*offsetCode*/,
    -
    518  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    519  -113 /*untilYearTiny*/,
    -
    520  1 /*untilMonth*/,
    -
    521  1 /*untilDay*/,
    -
    522  0 /*untilTimeCode*/,
    -
    523  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    524  },
    -
    525  // -8:00 Canada P%sT
    -
    526  {
    -
    527  &kZonePolicyCanada /*zonePolicy*/,
    -
    528  "P%T" /*format*/,
    -
    529  -32 /*offsetCode*/,
    -
    530  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    531  127 /*untilYearTiny*/,
    -
    532  1 /*untilMonth*/,
    -
    533  1 /*untilDay*/,
    -
    534  0 /*untilTimeCode*/,
    -
    535  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    536  },
    -
    537 
    -
    538 };
    -
    539 
    -
    540 static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "America/Vancouver";
    -
    541 
    -
    542 const extended::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = {
    -
    543  kZoneNameAmerica_Vancouver /*name*/,
    -
    544  0x2c6f6b1f /*zoneId*/,
    -
    545  &kZoneContext /*zoneContext*/,
    -
    546  2 /*numEras*/,
    -
    547  kZoneEraAmerica_Vancouver /*eras*/,
    -
    548  nullptr /*targetInfo*/,
    -
    549 };
    -
    550 
    -
    551 //---------------------------------------------------------------------------
    -
    552 // Zone name: America/Whitehorse
    -
    553 // Eras: 3
    -
    554 //---------------------------------------------------------------------------
    -
    555 
    -
    556 static const extended::Info::ZoneEra kZoneEraAmerica_Whitehorse[] ACE_TIME_PROGMEM = {
    -
    557  // -8:00 - PST 1980
    -
    558  {
    -
    559  nullptr /*zonePolicy*/,
    -
    560  "PST" /*format*/,
    -
    561  -32 /*offsetCode*/,
    -
    562  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    563  -120 /*untilYearTiny*/,
    -
    564  1 /*untilMonth*/,
    -
    565  1 /*untilDay*/,
    -
    566  0 /*untilTimeCode*/,
    -
    567  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    568  },
    -
    569  // -8:00 Canada P%sT 2020 Nov 1
    -
    570  {
    -
    571  &kZonePolicyCanada /*zonePolicy*/,
    -
    572  "P%T" /*format*/,
    -
    573  -32 /*offsetCode*/,
    -
    574  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    575  -80 /*untilYearTiny*/,
    -
    576  11 /*untilMonth*/,
    -
    577  1 /*untilDay*/,
    -
    578  0 /*untilTimeCode*/,
    -
    579  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    580  },
    -
    581  // -7:00 - MST
    -
    582  {
    -
    583  nullptr /*zonePolicy*/,
    -
    584  "MST" /*format*/,
    -
    585  -28 /*offsetCode*/,
    -
    586  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    587  127 /*untilYearTiny*/,
    -
    588  1 /*untilMonth*/,
    -
    589  1 /*untilDay*/,
    -
    590  0 /*untilTimeCode*/,
    -
    591  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    592  },
    -
    593 
    -
    594 };
    -
    595 
    -
    596 static const char kZoneNameAmerica_Whitehorse[] ACE_TIME_PROGMEM = "America/Whitehorse";
    -
    597 
    -
    598 const extended::Info::ZoneInfo kZoneAmerica_Whitehorse ACE_TIME_PROGMEM = {
    -
    599  kZoneNameAmerica_Whitehorse /*name*/,
    -
    600  0x54e0e3e8 /*zoneId*/,
    -
    601  &kZoneContext /*zoneContext*/,
    -
    602  3 /*numEras*/,
    -
    603  kZoneEraAmerica_Whitehorse /*eras*/,
    -
    604  nullptr /*targetInfo*/,
    -
    605 };
    -
    606 
    -
    607 //---------------------------------------------------------------------------
    -
    608 // Zone name: America/Winnipeg
    -
    609 // Eras: 2
    -
    610 //---------------------------------------------------------------------------
    -
    611 
    -
    612 static const extended::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = {
    -
    613  // -6:00 Winn C%sT 2006
    -
    614  {
    -
    615  &kZonePolicyWinn /*zonePolicy*/,
    -
    616  "C%T" /*format*/,
    -
    617  -24 /*offsetCode*/,
    -
    618  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    619  -94 /*untilYearTiny*/,
    -
    620  1 /*untilMonth*/,
    -
    621  1 /*untilDay*/,
    -
    622  0 /*untilTimeCode*/,
    -
    623  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    624  },
    -
    625  // -6:00 Canada C%sT
    -
    626  {
    -
    627  &kZonePolicyCanada /*zonePolicy*/,
    -
    628  "C%T" /*format*/,
    -
    629  -24 /*offsetCode*/,
    -
    630  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    631  127 /*untilYearTiny*/,
    -
    632  1 /*untilMonth*/,
    -
    633  1 /*untilDay*/,
    -
    634  0 /*untilTimeCode*/,
    -
    635  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    636  },
    -
    637 
    -
    638 };
    -
    639 
    -
    640 static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "America/Winnipeg";
    -
    641 
    -
    642 const extended::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = {
    -
    643  kZoneNameAmerica_Winnipeg /*name*/,
    -
    644  0x8c7dafc7 /*zoneId*/,
    -
    645  &kZoneContext /*zoneContext*/,
    -
    646  2 /*numEras*/,
    -
    647  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    648  nullptr /*targetInfo*/,
    -
    649 };
    -
    650 
    -
    651 //---------------------------------------------------------------------------
    -
    652 // Zone name: Australia/Darwin
    -
    653 // Eras: 1
    -
    654 //---------------------------------------------------------------------------
    -
    655 
    -
    656 static const extended::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = {
    -
    657  // 9:30 Aus AC%sT
    -
    658  {
    -
    659  &kZonePolicyAus /*zonePolicy*/,
    -
    660  "AC%T" /*format*/,
    -
    661  38 /*offsetCode*/,
    -
    662  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    663  127 /*untilYearTiny*/,
    -
    664  1 /*untilMonth*/,
    -
    665  1 /*untilDay*/,
    -
    666  0 /*untilTimeCode*/,
    -
    667  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    668  },
    -
    669 
    -
    670 };
    -
    671 
    -
    672 static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "Australia/Darwin";
    -
    673 
    -
    674 const extended::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = {
    -
    675  kZoneNameAustralia_Darwin /*name*/,
    -
    676  0x2876bdff /*zoneId*/,
    -
    677  &kZoneContext /*zoneContext*/,
    -
    678  1 /*numEras*/,
    -
    679  kZoneEraAustralia_Darwin /*eras*/,
    -
    680  nullptr /*targetInfo*/,
    -
    681 };
    -
    682 
    -
    683 //---------------------------------------------------------------------------
    -
    684 // Zone name: Europe/Lisbon
    -
    685 // Eras: 4
    -
    686 //---------------------------------------------------------------------------
    -
    687 
    -
    688 static const extended::Info::ZoneEra kZoneEraEurope_Lisbon[] ACE_TIME_PROGMEM = {
    -
    689  // 0:00 Port WE%sT 1986
    -
    690  {
    -
    691  &kZonePolicyPort /*zonePolicy*/,
    -
    692  "WE%T" /*format*/,
    -
    693  0 /*offsetCode*/,
    -
    694  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    695  -114 /*untilYearTiny*/,
    -
    696  1 /*untilMonth*/,
    -
    697  1 /*untilDay*/,
    -
    698  0 /*untilTimeCode*/,
    -
    699  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    700  },
    -
    701  // 0:00 EU WE%sT 1992 Sep 27 1:00u
    -
    702  {
    -
    703  &kZonePolicyEU /*zonePolicy*/,
    -
    704  "WE%T" /*format*/,
    -
    705  0 /*offsetCode*/,
    -
    706  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    707  -108 /*untilYearTiny*/,
    -
    708  9 /*untilMonth*/,
    -
    709  27 /*untilDay*/,
    -
    710  4 /*untilTimeCode*/,
    -
    711  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    712  },
    -
    713  // 1:00 EU CE%sT 1996 Mar 31 1:00u
    -
    714  {
    -
    715  &kZonePolicyEU /*zonePolicy*/,
    -
    716  "CE%T" /*format*/,
    -
    717  4 /*offsetCode*/,
    -
    718  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    719  -104 /*untilYearTiny*/,
    -
    720  3 /*untilMonth*/,
    -
    721  31 /*untilDay*/,
    -
    722  4 /*untilTimeCode*/,
    -
    723  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    724  },
    -
    725  // 0:00 EU WE%sT
    -
    726  {
    -
    727  &kZonePolicyEU /*zonePolicy*/,
    -
    728  "WE%T" /*format*/,
    -
    729  0 /*offsetCode*/,
    -
    730  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    731  127 /*untilYearTiny*/,
    -
    732  1 /*untilMonth*/,
    -
    733  1 /*untilDay*/,
    -
    734  0 /*untilTimeCode*/,
    -
    735  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    736  },
    -
    737 
    -
    738 };
    -
    739 
    -
    740 static const char kZoneNameEurope_Lisbon[] ACE_TIME_PROGMEM = "Europe/Lisbon";
    -
    741 
    -
    742 const extended::Info::ZoneInfo kZoneEurope_Lisbon ACE_TIME_PROGMEM = {
    -
    743  kZoneNameEurope_Lisbon /*name*/,
    -
    744  0x5c00a70b /*zoneId*/,
    -
    745  &kZoneContext /*zoneContext*/,
    -
    746  4 /*numEras*/,
    -
    747  kZoneEraEurope_Lisbon /*eras*/,
    -
    748  nullptr /*targetInfo*/,
    -
    749 };
    -
    750 
    -
    751 //---------------------------------------------------------------------------
    -
    752 // Zone name: Pacific/Apia
    -
    753 // Eras: 2
    -
    754 //---------------------------------------------------------------------------
    -
    755 
    -
    756 static const extended::Info::ZoneEra kZoneEraPacific_Apia[] ACE_TIME_PROGMEM = {
    -
    757  // -11:00 WS %z 2011 Dec 29 24:00
    -
    758  {
    -
    759  &kZonePolicyWS /*zonePolicy*/,
    -
    760  "" /*format*/,
    -
    761  -44 /*offsetCode*/,
    -
    762  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    763  -89 /*untilYearTiny*/,
    -
    764  12 /*untilMonth*/,
    -
    765  29 /*untilDay*/,
    -
    766  96 /*untilTimeCode*/,
    -
    767  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    768  },
    -
    769  // 13:00 WS %z
    -
    770  {
    -
    771  &kZonePolicyWS /*zonePolicy*/,
    -
    772  "" /*format*/,
    -
    773  52 /*offsetCode*/,
    -
    774  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    775  127 /*untilYearTiny*/,
    -
    776  1 /*untilMonth*/,
    -
    777  1 /*untilDay*/,
    -
    778  0 /*untilTimeCode*/,
    -
    779  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    780  },
    -
    781 
    -
    782 };
    -
    783 
    -
    784 static const char kZoneNamePacific_Apia[] ACE_TIME_PROGMEM = "Pacific/Apia";
    -
    785 
    -
    786 const extended::Info::ZoneInfo kZonePacific_Apia ACE_TIME_PROGMEM = {
    -
    787  kZoneNamePacific_Apia /*name*/,
    -
    788  0x23359b5e /*zoneId*/,
    -
    789  &kZoneContext /*zoneContext*/,
    -
    790  2 /*numEras*/,
    -
    791  kZoneEraPacific_Apia /*eras*/,
    -
    792  nullptr /*targetInfo*/,
    -
    793 };
    -
    794 
    -
    795 
    -
    796 
    -
    797 //---------------------------------------------------------------------------
    -
    798 // Links: 1
    -
    799 //---------------------------------------------------------------------------
    -
    800 
    -
    801 //---------------------------------------------------------------------------
    -
    802 // Link name: US/Pacific -> America/Los_Angeles
    -
    803 //---------------------------------------------------------------------------
    -
    804 
    -
    805 static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific";
    -
    806 
    -
    807 const extended::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = {
    -
    808  kZoneNameUS_Pacific /*name*/,
    -
    809  0xa950f6ab /*zoneId*/,
    -
    810  &kZoneContext /*zoneContext*/,
    -
    811  1 /*numEras*/,
    -
    812  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    813  &kZoneAmerica_Los_Angeles /*targetInfo*/,
    -
    814 };
    -
    815 
    -
    816 
    -
    817 }
    -
    818 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/testingzonedbx_2zone__infos_8h_source.html b/docs/html/testingzonedbx_2zone__infos_8h_source.html deleted file mode 100644 index b62becfb6..000000000 --- a/docs/html/testingzonedbx_2zone__infos_8h_source.html +++ /dev/null @@ -1,877 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/zone_infos.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace testingzonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 1980
    -
    53 // Policies: 33
    -
    54 // Eras: 330
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 2929
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 480
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4020
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #ifndef ACE_TIME_TESTINGZONEDBX_ZONE_INFOS_H
    -
    81 #define ACE_TIME_TESTINGZONEDBX_ZONE_INFOS_H
    -
    82 
    -
    83 #include <zoneinfo/infos.h>
    -
    84 
    -
    85 class __FlashStringHelper;
    -
    86 
    -
    87 namespace ace_time {
    -
    88 namespace testingzonedbx {
    -
    89 
    -
    90 //---------------------------------------------------------------------------
    -
    91 // ZoneContext (should not be in PROGMEM)
    -
    92 //---------------------------------------------------------------------------
    -
    93 
    -
    94 // Version of the TZ Database which generated these files.
    -
    95 extern const __FlashStringHelper* const kTzDatabaseVersion;
    -
    96 
    -
    97 // Metadata about the zonedb files.
    -
    98 extern const extended::Info::ZoneContext kZoneContext;
    -
    99 
    -
    100 //---------------------------------------------------------------------------
    -
    101 // Supported zones: 15
    -
    102 //---------------------------------------------------------------------------
    -
    103 
    -
    104 extern const extended::Info::ZoneInfo kZoneAfrica_Casablanca; // Africa/Casablanca
    -
    105 extern const extended::Info::ZoneInfo kZoneAfrica_Windhoek; // Africa/Windhoek
    -
    106 extern const extended::Info::ZoneInfo kZoneAmerica_Caracas; // America/Caracas
    -
    107 extern const extended::Info::ZoneInfo kZoneAmerica_Chicago; // America/Chicago
    -
    108 extern const extended::Info::ZoneInfo kZoneAmerica_Denver; // America/Denver
    -
    109 extern const extended::Info::ZoneInfo kZoneAmerica_Edmonton; // America/Edmonton
    -
    110 extern const extended::Info::ZoneInfo kZoneAmerica_Los_Angeles; // America/Los_Angeles
    -
    111 extern const extended::Info::ZoneInfo kZoneAmerica_New_York; // America/New_York
    -
    112 extern const extended::Info::ZoneInfo kZoneAmerica_Toronto; // America/Toronto
    -
    113 extern const extended::Info::ZoneInfo kZoneAmerica_Vancouver; // America/Vancouver
    -
    114 extern const extended::Info::ZoneInfo kZoneAmerica_Whitehorse; // America/Whitehorse
    -
    115 extern const extended::Info::ZoneInfo kZoneAmerica_Winnipeg; // America/Winnipeg
    -
    116 extern const extended::Info::ZoneInfo kZoneAustralia_Darwin; // Australia/Darwin
    -
    117 extern const extended::Info::ZoneInfo kZoneEurope_Lisbon; // Europe/Lisbon
    -
    118 extern const extended::Info::ZoneInfo kZonePacific_Apia; // Pacific/Apia
    -
    119 
    -
    120 
    -
    121 // Zone Ids
    -
    122 
    -
    123 const uint32_t kZoneIdAfrica_Casablanca = 0xc59f1b33; // Africa/Casablanca
    -
    124 const uint32_t kZoneIdAfrica_Windhoek = 0x789c9bd3; // Africa/Windhoek
    -
    125 const uint32_t kZoneIdAmerica_Caracas = 0x3be064f4; // America/Caracas
    -
    126 const uint32_t kZoneIdAmerica_Chicago = 0x4b92b5d4; // America/Chicago
    -
    127 const uint32_t kZoneIdAmerica_Denver = 0x97d10b2a; // America/Denver
    -
    128 const uint32_t kZoneIdAmerica_Edmonton = 0x6cb9484a; // America/Edmonton
    -
    129 const uint32_t kZoneIdAmerica_Los_Angeles = 0xb7f7e8f2; // America/Los_Angeles
    -
    130 const uint32_t kZoneIdAmerica_New_York = 0x1e2a7654; // America/New_York
    -
    131 const uint32_t kZoneIdAmerica_Toronto = 0x792e851b; // America/Toronto
    -
    132 const uint32_t kZoneIdAmerica_Vancouver = 0x2c6f6b1f; // America/Vancouver
    -
    133 const uint32_t kZoneIdAmerica_Whitehorse = 0x54e0e3e8; // America/Whitehorse
    -
    134 const uint32_t kZoneIdAmerica_Winnipeg = 0x8c7dafc7; // America/Winnipeg
    -
    135 const uint32_t kZoneIdAustralia_Darwin = 0x2876bdff; // Australia/Darwin
    -
    136 const uint32_t kZoneIdEurope_Lisbon = 0x5c00a70b; // Europe/Lisbon
    -
    137 const uint32_t kZoneIdPacific_Apia = 0x23359b5e; // Pacific/Apia
    -
    138 
    -
    139 
    -
    140 //---------------------------------------------------------------------------
    -
    141 // Supported links: 1
    -
    142 //---------------------------------------------------------------------------
    -
    143 
    -
    144 extern const extended::Info::ZoneInfo kZoneUS_Pacific; // US/Pacific -> America/Los_Angeles
    -
    145 
    -
    146 
    -
    147 // Zone Ids
    -
    148 
    -
    149 const uint32_t kZoneIdUS_Pacific = 0xa950f6ab; // US/Pacific
    -
    150 
    -
    151 
    -
    152 //---------------------------------------------------------------------------
    -
    153 // Maximum size of the Transition buffer in ExtendedZoneProcessor for each zone
    -
    154 // over the given years. Used only in the AceTimeValidation/Extended*Test tests
    -
    155 // for ExtendedZoneProcessor.
    -
    156 //
    -
    157 // MaxBufSize: 7
    -
    158 //---------------------------------------------------------------------------
    -
    159 
    -
    160 const uint8_t kZoneBufSizeAfrica_Casablanca = 7; // Africa/Casablanca in 2013
    -
    161 const uint8_t kZoneBufSizeAfrica_Windhoek = 4; // Africa/Windhoek in 1994
    -
    162 const uint8_t kZoneBufSizeAmerica_Caracas = 2; // America/Caracas in 2007
    -
    163 const uint8_t kZoneBufSizeAmerica_Chicago = 6; // America/Chicago in 2008
    -
    164 const uint8_t kZoneBufSizeAmerica_Denver = 6; // America/Denver in 2008
    -
    165 const uint8_t kZoneBufSizeAmerica_Edmonton = 6; // America/Edmonton in 2008
    -
    166 const uint8_t kZoneBufSizeAmerica_Los_Angeles = 6; // America/Los_Angeles in 2008
    -
    167 const uint8_t kZoneBufSizeAmerica_New_York = 6; // America/New_York in 2008
    -
    168 const uint8_t kZoneBufSizeAmerica_Toronto = 6; // America/Toronto in 2008
    -
    169 const uint8_t kZoneBufSizeAmerica_Vancouver = 6; // America/Vancouver in 2008
    -
    170 const uint8_t kZoneBufSizeAmerica_Whitehorse = 6; // America/Whitehorse in 2008
    -
    171 const uint8_t kZoneBufSizeAmerica_Winnipeg = 6; // America/Winnipeg in 2006
    -
    172 const uint8_t kZoneBufSizeAustralia_Darwin = 2; // Australia/Darwin in 1944
    -
    173 const uint8_t kZoneBufSizeEurope_Lisbon = 6; // Europe/Lisbon in 1985
    -
    174 const uint8_t kZoneBufSizePacific_Apia = 5; // Pacific/Apia in 2011
    -
    175 
    -
    176 
    -
    177 //---------------------------------------------------------------------------
    -
    178 // Unsupported zones: 325
    -
    179 //---------------------------------------------------------------------------
    -
    180 
    -
    181 // Africa/Abidjan {Zone missing from include list}
    -
    182 // Africa/Algiers {Zone missing from include list}
    -
    183 // Africa/Bissau {Zone missing from include list}
    -
    184 // Africa/Cairo {Zone missing from include list}
    -
    185 // Africa/Ceuta {Zone missing from include list}
    -
    186 // Africa/El_Aaiun {Zone missing from include list}
    -
    187 // Africa/Johannesburg {Zone missing from include list}
    -
    188 // Africa/Juba {Zone missing from include list}
    -
    189 // Africa/Khartoum {Zone missing from include list}
    -
    190 // Africa/Lagos {Zone missing from include list}
    -
    191 // Africa/Maputo {Zone missing from include list}
    -
    192 // Africa/Monrovia {Zone missing from include list}
    -
    193 // Africa/Nairobi {Zone missing from include list}
    -
    194 // Africa/Ndjamena {Zone missing from include list}
    -
    195 // Africa/Sao_Tome {Zone missing from include list}
    -
    196 // Africa/Tripoli {Zone missing from include list}
    -
    197 // Africa/Tunis {Zone missing from include list}
    -
    198 // America/Adak {Zone missing from include list}
    -
    199 // America/Anchorage {Zone missing from include list}
    -
    200 // America/Araguaina {Zone missing from include list}
    -
    201 // America/Argentina/Buenos_Aires {Zone missing from include list}
    -
    202 // America/Argentina/Catamarca {Zone missing from include list}
    -
    203 // America/Argentina/Cordoba {Zone missing from include list}
    -
    204 // America/Argentina/Jujuy {Zone missing from include list}
    -
    205 // America/Argentina/La_Rioja {Zone missing from include list}
    -
    206 // America/Argentina/Mendoza {Zone missing from include list}
    -
    207 // America/Argentina/Rio_Gallegos {Zone missing from include list}
    -
    208 // America/Argentina/Salta {Zone missing from include list}
    -
    209 // America/Argentina/San_Juan {Zone missing from include list}
    -
    210 // America/Argentina/San_Luis {Zone missing from include list}
    -
    211 // America/Argentina/Tucuman {Zone missing from include list}
    -
    212 // America/Argentina/Ushuaia {Zone missing from include list}
    -
    213 // America/Asuncion {Zone missing from include list}
    -
    214 // America/Bahia {Zone missing from include list}
    -
    215 // America/Bahia_Banderas {Zone missing from include list}
    -
    216 // America/Barbados {Zone missing from include list}
    -
    217 // America/Belem {Zone missing from include list}
    -
    218 // America/Belize {Zone missing from include list}
    -
    219 // America/Boa_Vista {Zone missing from include list}
    -
    220 // America/Bogota {Zone missing from include list}
    -
    221 // America/Boise {Zone missing from include list}
    -
    222 // America/Cambridge_Bay {Zone missing from include list}
    -
    223 // America/Campo_Grande {Zone missing from include list}
    -
    224 // America/Cancun {Zone missing from include list}
    -
    225 // America/Cayenne {Zone missing from include list}
    -
    226 // America/Chihuahua {Zone missing from include list}
    -
    227 // America/Ciudad_Juarez {Zone missing from include list}
    -
    228 // America/Costa_Rica {Zone missing from include list}
    -
    229 // America/Coyhaique {Zone missing from include list}
    -
    230 // America/Cuiaba {Zone missing from include list}
    -
    231 // America/Danmarkshavn {Zone missing from include list}
    -
    232 // America/Dawson {Zone missing from include list}
    -
    233 // America/Dawson_Creek {Zone missing from include list}
    -
    234 // America/Detroit {Zone missing from include list}
    -
    235 // America/Eirunepe {Zone missing from include list}
    -
    236 // America/El_Salvador {Zone missing from include list}
    -
    237 // America/Fort_Nelson {Zone missing from include list}
    -
    238 // America/Fortaleza {Zone missing from include list}
    -
    239 // America/Glace_Bay {Zone missing from include list}
    -
    240 // America/Goose_Bay {Zone missing from include list}
    -
    241 // America/Grand_Turk {Zone missing from include list}
    -
    242 // America/Guatemala {Zone missing from include list}
    -
    243 // America/Guayaquil {Zone missing from include list}
    -
    244 // America/Guyana {Zone missing from include list}
    -
    245 // America/Halifax {Zone missing from include list}
    -
    246 // America/Havana {Zone missing from include list}
    -
    247 // America/Hermosillo {Zone missing from include list}
    -
    248 // America/Indiana/Indianapolis {Zone missing from include list}
    -
    249 // America/Indiana/Knox {Zone missing from include list}
    -
    250 // America/Indiana/Marengo {Zone missing from include list}
    -
    251 // America/Indiana/Petersburg {Zone missing from include list}
    -
    252 // America/Indiana/Tell_City {Zone missing from include list}
    -
    253 // America/Indiana/Vevay {Zone missing from include list}
    -
    254 // America/Indiana/Vincennes {Zone missing from include list}
    -
    255 // America/Indiana/Winamac {Zone missing from include list}
    -
    256 // America/Inuvik {Zone missing from include list}
    -
    257 // America/Iqaluit {Zone missing from include list}
    -
    258 // America/Jamaica {Zone missing from include list}
    -
    259 // America/Juneau {Zone missing from include list}
    -
    260 // America/Kentucky/Louisville {Zone missing from include list}
    -
    261 // America/Kentucky/Monticello {Zone missing from include list}
    -
    262 // America/La_Paz {Zone missing from include list}
    -
    263 // America/Lima {Zone missing from include list}
    -
    264 // America/Maceio {Zone missing from include list}
    -
    265 // America/Managua {Zone missing from include list}
    -
    266 // America/Manaus {Zone missing from include list}
    -
    267 // America/Martinique {Zone missing from include list}
    -
    268 // America/Matamoros {Zone missing from include list}
    -
    269 // America/Mazatlan {Zone missing from include list}
    -
    270 // America/Menominee {Zone missing from include list}
    -
    271 // America/Merida {Zone missing from include list}
    -
    272 // America/Metlakatla {Zone missing from include list}
    -
    273 // America/Mexico_City {Zone missing from include list}
    -
    274 // America/Miquelon {Zone missing from include list}
    -
    275 // America/Moncton {Zone missing from include list}
    -
    276 // America/Monterrey {Zone missing from include list}
    -
    277 // America/Montevideo {Zone missing from include list}
    -
    278 // America/Nome {Zone missing from include list}
    -
    279 // America/Noronha {Zone missing from include list}
    -
    280 // America/North_Dakota/Beulah {Zone missing from include list}
    -
    281 // America/North_Dakota/Center {Zone missing from include list}
    -
    282 // America/North_Dakota/New_Salem {Zone missing from include list}
    -
    283 // America/Nuuk {Zone missing from include list}
    -
    284 // America/Ojinaga {Zone missing from include list}
    -
    285 // America/Panama {Zone missing from include list}
    -
    286 // America/Paramaribo {Zone missing from include list}
    -
    287 // America/Phoenix {Zone missing from include list}
    -
    288 // America/Port-au-Prince {Zone missing from include list}
    -
    289 // America/Porto_Velho {Zone missing from include list}
    -
    290 // America/Puerto_Rico {Zone missing from include list}
    -
    291 // America/Punta_Arenas {Zone missing from include list}
    -
    292 // America/Rankin_Inlet {Zone missing from include list}
    -
    293 // America/Recife {Zone missing from include list}
    -
    294 // America/Regina {Zone missing from include list}
    -
    295 // America/Resolute {Zone missing from include list}
    -
    296 // America/Rio_Branco {Zone missing from include list}
    -
    297 // America/Santarem {Zone missing from include list}
    -
    298 // America/Santiago {Zone missing from include list}
    -
    299 // America/Santo_Domingo {Zone missing from include list}
    -
    300 // America/Sao_Paulo {Zone missing from include list}
    -
    301 // America/Scoresbysund {Zone missing from include list}
    -
    302 // America/Sitka {Zone missing from include list}
    -
    303 // America/St_Johns {Zone missing from include list}
    -
    304 // America/Swift_Current {Zone missing from include list}
    -
    305 // America/Tegucigalpa {Zone missing from include list}
    -
    306 // America/Thule {Zone missing from include list}
    -
    307 // America/Tijuana {Zone missing from include list}
    -
    308 // America/Yakutat {Zone missing from include list}
    -
    309 // Antarctica/Casey {Zone missing from include list}
    -
    310 // Antarctica/Davis {Zone missing from include list}
    -
    311 // Antarctica/Macquarie {Zone missing from include list}
    -
    312 // Antarctica/Mawson {Zone missing from include list}
    -
    313 // Antarctica/Palmer {Zone missing from include list}
    -
    314 // Antarctica/Rothera {Zone missing from include list}
    -
    315 // Antarctica/Troll {Zone missing from include list}
    -
    316 // Antarctica/Vostok {Zone missing from include list}
    -
    317 // Asia/Almaty {Zone missing from include list}
    -
    318 // Asia/Amman {Zone missing from include list}
    -
    319 // Asia/Anadyr {Zone missing from include list}
    -
    320 // Asia/Aqtau {Zone missing from include list}
    -
    321 // Asia/Aqtobe {Zone missing from include list}
    -
    322 // Asia/Ashgabat {Zone missing from include list}
    -
    323 // Asia/Atyrau {Zone missing from include list}
    -
    324 // Asia/Baghdad {Zone missing from include list}
    -
    325 // Asia/Baku {Zone missing from include list}
    -
    326 // Asia/Bangkok {Zone missing from include list}
    -
    327 // Asia/Barnaul {Zone missing from include list}
    -
    328 // Asia/Beirut {Zone missing from include list}
    -
    329 // Asia/Bishkek {Zone missing from include list}
    -
    330 // Asia/Chita {Zone missing from include list}
    -
    331 // Asia/Colombo {Zone missing from include list}
    -
    332 // Asia/Damascus {Zone missing from include list}
    -
    333 // Asia/Dhaka {Zone missing from include list}
    -
    334 // Asia/Dili {Zone missing from include list}
    -
    335 // Asia/Dubai {Zone missing from include list}
    -
    336 // Asia/Dushanbe {Zone missing from include list}
    -
    337 // Asia/Famagusta {Zone missing from include list}
    -
    338 // Asia/Gaza {Zone missing from include list}
    -
    339 // Asia/Hebron {Zone missing from include list}
    -
    340 // Asia/Ho_Chi_Minh {Zone missing from include list}
    -
    341 // Asia/Hong_Kong {Zone missing from include list}
    -
    342 // Asia/Hovd {Zone missing from include list}
    -
    343 // Asia/Irkutsk {Zone missing from include list}
    -
    344 // Asia/Jakarta {Zone missing from include list}
    -
    345 // Asia/Jayapura {Zone missing from include list}
    -
    346 // Asia/Jerusalem {Zone missing from include list}
    -
    347 // Asia/Kabul {Zone missing from include list}
    -
    348 // Asia/Kamchatka {Zone missing from include list}
    -
    349 // Asia/Karachi {Zone missing from include list}
    -
    350 // Asia/Kathmandu {Zone missing from include list}
    -
    351 // Asia/Khandyga {Zone missing from include list}
    -
    352 // Asia/Kolkata {Zone missing from include list}
    -
    353 // Asia/Krasnoyarsk {Zone missing from include list}
    -
    354 // Asia/Kuching {Zone missing from include list}
    -
    355 // Asia/Macau {Zone missing from include list}
    -
    356 // Asia/Magadan {Zone missing from include list}
    -
    357 // Asia/Makassar {Zone missing from include list}
    -
    358 // Asia/Manila {Zone missing from include list}
    -
    359 // Asia/Nicosia {Zone missing from include list}
    -
    360 // Asia/Novokuznetsk {Zone missing from include list}
    -
    361 // Asia/Novosibirsk {Zone missing from include list}
    -
    362 // Asia/Omsk {Zone missing from include list}
    -
    363 // Asia/Oral {Zone missing from include list}
    -
    364 // Asia/Pontianak {Zone missing from include list}
    -
    365 // Asia/Pyongyang {Zone missing from include list}
    -
    366 // Asia/Qatar {Zone missing from include list}
    -
    367 // Asia/Qostanay {Zone missing from include list}
    -
    368 // Asia/Qyzylorda {Zone missing from include list}
    -
    369 // Asia/Riyadh {Zone missing from include list}
    -
    370 // Asia/Sakhalin {Zone missing from include list}
    -
    371 // Asia/Samarkand {Zone missing from include list}
    -
    372 // Asia/Seoul {Zone missing from include list}
    -
    373 // Asia/Shanghai {Zone missing from include list}
    -
    374 // Asia/Singapore {Zone missing from include list}
    -
    375 // Asia/Srednekolymsk {Zone missing from include list}
    -
    376 // Asia/Taipei {Zone missing from include list}
    -
    377 // Asia/Tashkent {Zone missing from include list}
    -
    378 // Asia/Tbilisi {Zone missing from include list}
    -
    379 // Asia/Tehran {Zone missing from include list}
    -
    380 // Asia/Thimphu {Zone missing from include list}
    -
    381 // Asia/Tokyo {Zone missing from include list}
    -
    382 // Asia/Tomsk {Zone missing from include list}
    -
    383 // Asia/Ulaanbaatar {Zone missing from include list}
    -
    384 // Asia/Urumqi {Zone missing from include list}
    -
    385 // Asia/Ust-Nera {Zone missing from include list}
    -
    386 // Asia/Vladivostok {Zone missing from include list}
    -
    387 // Asia/Yakutsk {Zone missing from include list}
    -
    388 // Asia/Yangon {Zone missing from include list}
    -
    389 // Asia/Yekaterinburg {Zone missing from include list}
    -
    390 // Asia/Yerevan {Zone missing from include list}
    -
    391 // Atlantic/Azores {Zone missing from include list}
    -
    392 // Atlantic/Bermuda {Zone missing from include list}
    -
    393 // Atlantic/Canary {Zone missing from include list}
    -
    394 // Atlantic/Cape_Verde {Zone missing from include list}
    -
    395 // Atlantic/Faroe {Zone missing from include list}
    -
    396 // Atlantic/Madeira {Zone missing from include list}
    -
    397 // Atlantic/South_Georgia {Zone missing from include list}
    -
    398 // Atlantic/Stanley {Zone missing from include list}
    -
    399 // Australia/Adelaide {Zone missing from include list}
    -
    400 // Australia/Brisbane {Zone missing from include list}
    -
    401 // Australia/Broken_Hill {Zone missing from include list}
    -
    402 // Australia/Eucla {Zone missing from include list}
    -
    403 // Australia/Hobart {Zone missing from include list}
    -
    404 // Australia/Lindeman {Zone missing from include list}
    -
    405 // Australia/Lord_Howe {Zone missing from include list}
    -
    406 // Australia/Melbourne {Zone missing from include list}
    -
    407 // Australia/Perth {Zone missing from include list}
    -
    408 // Australia/Sydney {Zone missing from include list}
    -
    409 // Etc/GMT {Zone missing from include list}
    -
    410 // Etc/GMT+1 {Zone missing from include list}
    -
    411 // Etc/GMT+10 {Zone missing from include list}
    -
    412 // Etc/GMT+11 {Zone missing from include list}
    -
    413 // Etc/GMT+12 {Zone missing from include list}
    -
    414 // Etc/GMT+2 {Zone missing from include list}
    -
    415 // Etc/GMT+3 {Zone missing from include list}
    -
    416 // Etc/GMT+4 {Zone missing from include list}
    -
    417 // Etc/GMT+5 {Zone missing from include list}
    -
    418 // Etc/GMT+6 {Zone missing from include list}
    -
    419 // Etc/GMT+7 {Zone missing from include list}
    -
    420 // Etc/GMT+8 {Zone missing from include list}
    -
    421 // Etc/GMT+9 {Zone missing from include list}
    -
    422 // Etc/GMT-1 {Zone missing from include list}
    -
    423 // Etc/GMT-10 {Zone missing from include list}
    -
    424 // Etc/GMT-11 {Zone missing from include list}
    -
    425 // Etc/GMT-12 {Zone missing from include list}
    -
    426 // Etc/GMT-13 {Zone missing from include list}
    -
    427 // Etc/GMT-14 {Zone missing from include list}
    -
    428 // Etc/GMT-2 {Zone missing from include list}
    -
    429 // Etc/GMT-3 {Zone missing from include list}
    -
    430 // Etc/GMT-4 {Zone missing from include list}
    -
    431 // Etc/GMT-5 {Zone missing from include list}
    -
    432 // Etc/GMT-6 {Zone missing from include list}
    -
    433 // Etc/GMT-7 {Zone missing from include list}
    -
    434 // Etc/GMT-8 {Zone missing from include list}
    -
    435 // Etc/GMT-9 {Zone missing from include list}
    -
    436 // Etc/UTC {Zone missing from include list}
    -
    437 // Europe/Andorra {Zone missing from include list}
    -
    438 // Europe/Astrakhan {Zone missing from include list}
    -
    439 // Europe/Athens {Zone missing from include list}
    -
    440 // Europe/Belgrade {Zone missing from include list}
    -
    441 // Europe/Berlin {Zone missing from include list}
    -
    442 // Europe/Brussels {Zone missing from include list}
    -
    443 // Europe/Bucharest {Zone missing from include list}
    -
    444 // Europe/Budapest {Zone missing from include list}
    -
    445 // Europe/Chisinau {Zone missing from include list}
    -
    446 // Europe/Dublin {Zone missing from include list}
    -
    447 // Europe/Gibraltar {Zone missing from include list}
    -
    448 // Europe/Helsinki {Zone missing from include list}
    -
    449 // Europe/Istanbul {Zone missing from include list}
    -
    450 // Europe/Kaliningrad {Zone missing from include list}
    -
    451 // Europe/Kirov {Zone missing from include list}
    -
    452 // Europe/Kyiv {Zone missing from include list}
    -
    453 // Europe/London {Zone missing from include list}
    -
    454 // Europe/Madrid {Zone missing from include list}
    -
    455 // Europe/Malta {Zone missing from include list}
    -
    456 // Europe/Minsk {Zone missing from include list}
    -
    457 // Europe/Moscow {Zone missing from include list}
    -
    458 // Europe/Paris {Zone missing from include list}
    -
    459 // Europe/Prague {Zone missing from include list}
    -
    460 // Europe/Riga {Zone missing from include list}
    -
    461 // Europe/Rome {Zone missing from include list}
    -
    462 // Europe/Samara {Zone missing from include list}
    -
    463 // Europe/Saratov {Zone missing from include list}
    -
    464 // Europe/Simferopol {Zone missing from include list}
    -
    465 // Europe/Sofia {Zone missing from include list}
    -
    466 // Europe/Tallinn {Zone missing from include list}
    -
    467 // Europe/Tirane {Zone missing from include list}
    -
    468 // Europe/Ulyanovsk {Zone missing from include list}
    -
    469 // Europe/Vienna {Zone missing from include list}
    -
    470 // Europe/Vilnius {Zone missing from include list}
    -
    471 // Europe/Volgograd {Zone missing from include list}
    -
    472 // Europe/Warsaw {Zone missing from include list}
    -
    473 // Europe/Zurich {Zone missing from include list}
    -
    474 // Indian/Chagos {Zone missing from include list}
    -
    475 // Indian/Maldives {Zone missing from include list}
    -
    476 // Indian/Mauritius {Zone missing from include list}
    -
    477 // Pacific/Auckland {Zone missing from include list}
    -
    478 // Pacific/Bougainville {Zone missing from include list}
    -
    479 // Pacific/Chatham {Zone missing from include list}
    -
    480 // Pacific/Easter {Zone missing from include list}
    -
    481 // Pacific/Efate {Zone missing from include list}
    -
    482 // Pacific/Fakaofo {Zone missing from include list}
    -
    483 // Pacific/Fiji {Zone missing from include list}
    -
    484 // Pacific/Galapagos {Zone missing from include list}
    -
    485 // Pacific/Gambier {Zone missing from include list}
    -
    486 // Pacific/Guadalcanal {Zone missing from include list}
    -
    487 // Pacific/Guam {Zone missing from include list}
    -
    488 // Pacific/Honolulu {Zone missing from include list}
    -
    489 // Pacific/Kanton {Zone missing from include list}
    -
    490 // Pacific/Kiritimati {Zone missing from include list}
    -
    491 // Pacific/Kosrae {Zone missing from include list}
    -
    492 // Pacific/Kwajalein {Zone missing from include list}
    -
    493 // Pacific/Marquesas {Zone missing from include list}
    -
    494 // Pacific/Nauru {Zone missing from include list}
    -
    495 // Pacific/Niue {Zone missing from include list}
    -
    496 // Pacific/Norfolk {Zone missing from include list}
    -
    497 // Pacific/Noumea {Zone missing from include list}
    -
    498 // Pacific/Pago_Pago {Zone missing from include list}
    -
    499 // Pacific/Palau {Zone missing from include list}
    -
    500 // Pacific/Pitcairn {Zone missing from include list}
    -
    501 // Pacific/Port_Moresby {Zone missing from include list}
    -
    502 // Pacific/Rarotonga {Zone missing from include list}
    -
    503 // Pacific/Tahiti {Zone missing from include list}
    -
    504 // Pacific/Tarawa {Zone missing from include list}
    -
    505 // Pacific/Tongatapu {Zone missing from include list}
    -
    506 
    -
    507 
    -
    508 //---------------------------------------------------------------------------
    -
    509 // Notable zones: 3
    -
    510 //---------------------------------------------------------------------------
    -
    511 
    -
    512 // Africa/Casablanca {
    -
    513 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    514 // Morocco {SAVE '-1:00' is a negative DST}
    -
    515 // }
    -
    516 // Africa/Windhoek {
    -
    517 // Namibia {
    -
    518 // LETTER 'CAT' not single character,
    -
    519 // LETTER 'WAT' not single character,
    -
    520 // SAVE '-1:00' is a negative DST,
    -
    521 // }
    -
    522 // }
    -
    523 // Pacific/Apia {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    524 
    -
    525 
    -
    526 //---------------------------------------------------------------------------
    -
    527 // Unsupported links: 256
    -
    528 //---------------------------------------------------------------------------
    -
    529 
    -
    530 // Africa/Accra {Link missing from include list}
    -
    531 // Africa/Addis_Ababa {Link missing from include list}
    -
    532 // Africa/Asmara {Link missing from include list}
    -
    533 // Africa/Asmera {Link missing from include list}
    -
    534 // Africa/Bamako {Link missing from include list}
    -
    535 // Africa/Bangui {Link missing from include list}
    -
    536 // Africa/Banjul {Link missing from include list}
    -
    537 // Africa/Blantyre {Link missing from include list}
    -
    538 // Africa/Brazzaville {Link missing from include list}
    -
    539 // Africa/Bujumbura {Link missing from include list}
    -
    540 // Africa/Conakry {Link missing from include list}
    -
    541 // Africa/Dakar {Link missing from include list}
    -
    542 // Africa/Dar_es_Salaam {Link missing from include list}
    -
    543 // Africa/Djibouti {Link missing from include list}
    -
    544 // Africa/Douala {Link missing from include list}
    -
    545 // Africa/Freetown {Link missing from include list}
    -
    546 // Africa/Gaborone {Link missing from include list}
    -
    547 // Africa/Harare {Link missing from include list}
    -
    548 // Africa/Kampala {Link missing from include list}
    -
    549 // Africa/Kigali {Link missing from include list}
    -
    550 // Africa/Kinshasa {Link missing from include list}
    -
    551 // Africa/Libreville {Link missing from include list}
    -
    552 // Africa/Lome {Link missing from include list}
    -
    553 // Africa/Luanda {Link missing from include list}
    -
    554 // Africa/Lubumbashi {Link missing from include list}
    -
    555 // Africa/Lusaka {Link missing from include list}
    -
    556 // Africa/Malabo {Link missing from include list}
    -
    557 // Africa/Maseru {Link missing from include list}
    -
    558 // Africa/Mbabane {Link missing from include list}
    -
    559 // Africa/Mogadishu {Link missing from include list}
    -
    560 // Africa/Niamey {Link missing from include list}
    -
    561 // Africa/Nouakchott {Link missing from include list}
    -
    562 // Africa/Ouagadougou {Link missing from include list}
    -
    563 // Africa/Porto-Novo {Link missing from include list}
    -
    564 // Africa/Timbuktu {Link missing from include list}
    -
    565 // America/Anguilla {Link missing from include list}
    -
    566 // America/Antigua {Link missing from include list}
    -
    567 // America/Argentina/ComodRivadavia {Link missing from include list}
    -
    568 // America/Aruba {Link missing from include list}
    -
    569 // America/Atikokan {Link missing from include list}
    -
    570 // America/Atka {Link missing from include list}
    -
    571 // America/Blanc-Sablon {Link missing from include list}
    -
    572 // America/Buenos_Aires {Link missing from include list}
    -
    573 // America/Catamarca {Link missing from include list}
    -
    574 // America/Cayman {Link missing from include list}
    -
    575 // America/Coral_Harbour {Link missing from include list}
    -
    576 // America/Cordoba {Link missing from include list}
    -
    577 // America/Creston {Link missing from include list}
    -
    578 // America/Curacao {Link missing from include list}
    -
    579 // America/Dominica {Link missing from include list}
    -
    580 // America/Ensenada {Link missing from include list}
    -
    581 // America/Fort_Wayne {Link missing from include list}
    -
    582 // America/Godthab {Link missing from include list}
    -
    583 // America/Grenada {Link missing from include list}
    -
    584 // America/Guadeloupe {Link missing from include list}
    -
    585 // America/Indianapolis {Link missing from include list}
    -
    586 // America/Jujuy {Link missing from include list}
    -
    587 // America/Knox_IN {Link missing from include list}
    -
    588 // America/Kralendijk {Link missing from include list}
    -
    589 // America/Louisville {Link missing from include list}
    -
    590 // America/Lower_Princes {Link missing from include list}
    -
    591 // America/Marigot {Link missing from include list}
    -
    592 // America/Mendoza {Link missing from include list}
    -
    593 // America/Montreal {Link missing from include list}
    -
    594 // America/Montserrat {Link missing from include list}
    -
    595 // America/Nassau {Link missing from include list}
    -
    596 // America/Nipigon {Link missing from include list}
    -
    597 // America/Pangnirtung {Link missing from include list}
    -
    598 // America/Port_of_Spain {Link missing from include list}
    -
    599 // America/Porto_Acre {Link missing from include list}
    -
    600 // America/Rainy_River {Link missing from include list}
    -
    601 // America/Rosario {Link missing from include list}
    -
    602 // America/Santa_Isabel {Link missing from include list}
    -
    603 // America/Shiprock {Link missing from include list}
    -
    604 // America/St_Barthelemy {Link missing from include list}
    -
    605 // America/St_Kitts {Link missing from include list}
    -
    606 // America/St_Lucia {Link missing from include list}
    -
    607 // America/St_Thomas {Link missing from include list}
    -
    608 // America/St_Vincent {Link missing from include list}
    -
    609 // America/Thunder_Bay {Link missing from include list}
    -
    610 // America/Tortola {Link missing from include list}
    -
    611 // America/Virgin {Link missing from include list}
    -
    612 // America/Yellowknife {Link missing from include list}
    -
    613 // Antarctica/DumontDUrville {Link missing from include list}
    -
    614 // Antarctica/McMurdo {Link missing from include list}
    -
    615 // Antarctica/South_Pole {Link missing from include list}
    -
    616 // Antarctica/Syowa {Link missing from include list}
    -
    617 // Arctic/Longyearbyen {Link missing from include list}
    -
    618 // Asia/Aden {Link missing from include list}
    -
    619 // Asia/Ashkhabad {Link missing from include list}
    -
    620 // Asia/Bahrain {Link missing from include list}
    -
    621 // Asia/Brunei {Link missing from include list}
    -
    622 // Asia/Calcutta {Link missing from include list}
    -
    623 // Asia/Choibalsan {Link missing from include list}
    -
    624 // Asia/Chongqing {Link missing from include list}
    -
    625 // Asia/Chungking {Link missing from include list}
    -
    626 // Asia/Dacca {Link missing from include list}
    -
    627 // Asia/Harbin {Link missing from include list}
    -
    628 // Asia/Istanbul {Link missing from include list}
    -
    629 // Asia/Kashgar {Link missing from include list}
    -
    630 // Asia/Katmandu {Link missing from include list}
    -
    631 // Asia/Kuala_Lumpur {Link missing from include list}
    -
    632 // Asia/Kuwait {Link missing from include list}
    -
    633 // Asia/Macao {Link missing from include list}
    -
    634 // Asia/Muscat {Link missing from include list}
    -
    635 // Asia/Phnom_Penh {Link missing from include list}
    -
    636 // Asia/Rangoon {Link missing from include list}
    -
    637 // Asia/Saigon {Link missing from include list}
    -
    638 // Asia/Tel_Aviv {Link missing from include list}
    -
    639 // Asia/Thimbu {Link missing from include list}
    -
    640 // Asia/Ujung_Pandang {Link missing from include list}
    -
    641 // Asia/Ulan_Bator {Link missing from include list}
    -
    642 // Asia/Vientiane {Link missing from include list}
    -
    643 // Atlantic/Faeroe {Link missing from include list}
    -
    644 // Atlantic/Jan_Mayen {Link missing from include list}
    -
    645 // Atlantic/Reykjavik {Link missing from include list}
    -
    646 // Atlantic/St_Helena {Link missing from include list}
    -
    647 // Australia/ACT {Link missing from include list}
    -
    648 // Australia/Canberra {Link missing from include list}
    -
    649 // Australia/Currie {Link missing from include list}
    -
    650 // Australia/LHI {Link missing from include list}
    -
    651 // Australia/NSW {Link missing from include list}
    -
    652 // Australia/North {Link missing from include list}
    -
    653 // Australia/Queensland {Link missing from include list}
    -
    654 // Australia/South {Link missing from include list}
    -
    655 // Australia/Tasmania {Link missing from include list}
    -
    656 // Australia/Victoria {Link missing from include list}
    -
    657 // Australia/West {Link missing from include list}
    -
    658 // Australia/Yancowinna {Link missing from include list}
    -
    659 // Brazil/Acre {Link missing from include list}
    -
    660 // Brazil/DeNoronha {Link missing from include list}
    -
    661 // Brazil/East {Link missing from include list}
    -
    662 // Brazil/West {Link missing from include list}
    -
    663 // CET {Link missing from include list}
    -
    664 // CST6CDT {Link missing from include list}
    -
    665 // Canada/Atlantic {Link missing from include list}
    -
    666 // Canada/Central {Link missing from include list}
    -
    667 // Canada/Eastern {Link missing from include list}
    -
    668 // Canada/Mountain {Link missing from include list}
    -
    669 // Canada/Newfoundland {Link missing from include list}
    -
    670 // Canada/Pacific {Link missing from include list}
    -
    671 // Canada/Saskatchewan {Link missing from include list}
    -
    672 // Canada/Yukon {Link missing from include list}
    -
    673 // Chile/Continental {Link missing from include list}
    -
    674 // Chile/EasterIsland {Link missing from include list}
    -
    675 // Cuba {Link missing from include list}
    -
    676 // EET {Link missing from include list}
    -
    677 // EST {Link missing from include list}
    -
    678 // EST5EDT {Link missing from include list}
    -
    679 // Egypt {Link missing from include list}
    -
    680 // Eire {Link missing from include list}
    -
    681 // Etc/GMT+0 {Link missing from include list}
    -
    682 // Etc/GMT-0 {Link missing from include list}
    -
    683 // Etc/GMT0 {Link missing from include list}
    -
    684 // Etc/Greenwich {Link missing from include list}
    -
    685 // Etc/UCT {Link missing from include list}
    -
    686 // Etc/Universal {Link missing from include list}
    -
    687 // Etc/Zulu {Link missing from include list}
    -
    688 // Europe/Amsterdam {Link missing from include list}
    -
    689 // Europe/Belfast {Link missing from include list}
    -
    690 // Europe/Bratislava {Link missing from include list}
    -
    691 // Europe/Busingen {Link missing from include list}
    -
    692 // Europe/Copenhagen {Link missing from include list}
    -
    693 // Europe/Guernsey {Link missing from include list}
    -
    694 // Europe/Isle_of_Man {Link missing from include list}
    -
    695 // Europe/Jersey {Link missing from include list}
    -
    696 // Europe/Kiev {Link missing from include list}
    -
    697 // Europe/Ljubljana {Link missing from include list}
    -
    698 // Europe/Luxembourg {Link missing from include list}
    -
    699 // Europe/Mariehamn {Link missing from include list}
    -
    700 // Europe/Monaco {Link missing from include list}
    -
    701 // Europe/Nicosia {Link missing from include list}
    -
    702 // Europe/Oslo {Link missing from include list}
    -
    703 // Europe/Podgorica {Link missing from include list}
    -
    704 // Europe/San_Marino {Link missing from include list}
    -
    705 // Europe/Sarajevo {Link missing from include list}
    -
    706 // Europe/Skopje {Link missing from include list}
    -
    707 // Europe/Stockholm {Link missing from include list}
    -
    708 // Europe/Tiraspol {Link missing from include list}
    -
    709 // Europe/Uzhgorod {Link missing from include list}
    -
    710 // Europe/Vaduz {Link missing from include list}
    -
    711 // Europe/Vatican {Link missing from include list}
    -
    712 // Europe/Zagreb {Link missing from include list}
    -
    713 // Europe/Zaporozhye {Link missing from include list}
    -
    714 // GB {Link missing from include list}
    -
    715 // GB-Eire {Link missing from include list}
    -
    716 // GMT {Link missing from include list}
    -
    717 // GMT+0 {Link missing from include list}
    -
    718 // GMT-0 {Link missing from include list}
    -
    719 // GMT0 {Link missing from include list}
    -
    720 // Greenwich {Link missing from include list}
    -
    721 // HST {Link missing from include list}
    -
    722 // Hongkong {Link missing from include list}
    -
    723 // Iceland {Link missing from include list}
    -
    724 // Indian/Antananarivo {Link missing from include list}
    -
    725 // Indian/Christmas {Link missing from include list}
    -
    726 // Indian/Cocos {Link missing from include list}
    -
    727 // Indian/Comoro {Link missing from include list}
    -
    728 // Indian/Kerguelen {Link missing from include list}
    -
    729 // Indian/Mahe {Link missing from include list}
    -
    730 // Indian/Mayotte {Link missing from include list}
    -
    731 // Indian/Reunion {Link missing from include list}
    -
    732 // Iran {Link missing from include list}
    -
    733 // Israel {Link missing from include list}
    -
    734 // Jamaica {Link missing from include list}
    -
    735 // Japan {Link missing from include list}
    -
    736 // Kwajalein {Link missing from include list}
    -
    737 // Libya {Link missing from include list}
    -
    738 // MET {Link missing from include list}
    -
    739 // MST {Link missing from include list}
    -
    740 // MST7MDT {Link missing from include list}
    -
    741 // Mexico/BajaNorte {Link missing from include list}
    -
    742 // Mexico/BajaSur {Link missing from include list}
    -
    743 // Mexico/General {Link missing from include list}
    -
    744 // NZ {Link missing from include list}
    -
    745 // NZ-CHAT {Link missing from include list}
    -
    746 // Navajo {Link missing from include list}
    -
    747 // PRC {Link missing from include list}
    -
    748 // PST8PDT {Link missing from include list}
    -
    749 // Pacific/Chuuk {Link missing from include list}
    -
    750 // Pacific/Enderbury {Link missing from include list}
    -
    751 // Pacific/Funafuti {Link missing from include list}
    -
    752 // Pacific/Johnston {Link missing from include list}
    -
    753 // Pacific/Majuro {Link missing from include list}
    -
    754 // Pacific/Midway {Link missing from include list}
    -
    755 // Pacific/Pohnpei {Link missing from include list}
    -
    756 // Pacific/Ponape {Link missing from include list}
    -
    757 // Pacific/Saipan {Link missing from include list}
    -
    758 // Pacific/Samoa {Link missing from include list}
    -
    759 // Pacific/Truk {Link missing from include list}
    -
    760 // Pacific/Wake {Link missing from include list}
    -
    761 // Pacific/Wallis {Link missing from include list}
    -
    762 // Pacific/Yap {Link missing from include list}
    -
    763 // Poland {Link missing from include list}
    -
    764 // Portugal {Link missing from include list}
    -
    765 // ROC {Link missing from include list}
    -
    766 // ROK {Link missing from include list}
    -
    767 // Singapore {Link missing from include list}
    -
    768 // Turkey {Link missing from include list}
    -
    769 // UCT {Link missing from include list}
    -
    770 // US/Alaska {Link missing from include list}
    -
    771 // US/Aleutian {Link missing from include list}
    -
    772 // US/Arizona {Link missing from include list}
    -
    773 // US/Central {Link missing from include list}
    -
    774 // US/East-Indiana {Link missing from include list}
    -
    775 // US/Eastern {Link missing from include list}
    -
    776 // US/Hawaii {Link missing from include list}
    -
    777 // US/Indiana-Starke {Link missing from include list}
    -
    778 // US/Michigan {Link missing from include list}
    -
    779 // US/Mountain {Link missing from include list}
    -
    780 // US/Samoa {Link missing from include list}
    -
    781 // UTC {Link missing from include list}
    -
    782 // Universal {Link missing from include list}
    -
    783 // W-SU {Link missing from include list}
    -
    784 // WET {Link missing from include list}
    -
    785 // Zulu {Link missing from include list}
    -
    786 
    -
    787 
    -
    788 //---------------------------------------------------------------------------
    -
    789 // Notable links: 0
    -
    790 //---------------------------------------------------------------------------
    -
    791 
    -
    792 
    -
    793 
    -
    794 }
    -
    795 }
    -
    796 
    -
    797 #endif
    -
    - - - - diff --git a/docs/html/testingzonedbx_2zone__policies_8cpp_source.html b/docs/html/testingzonedbx_2zone__policies_8cpp_source.html deleted file mode 100644 index 074efb809..000000000 --- a/docs/html/testingzonedbx_2zone__policies_8cpp_source.html +++ /dev/null @@ -1,2969 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/zone_policies.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace testingzonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 1980
    -
    53 // Policies: 33
    -
    54 // Eras: 330
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 2929
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 480
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4020
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #include <zoneinfo/compat.h>
    -
    81 #include "zone_policies.h"
    -
    82 
    -
    83 namespace ace_time {
    -
    84 namespace testingzonedbx {
    -
    85 
    -
    86 //---------------------------------------------------------------------------
    -
    87 // Policies: 11
    -
    88 // Rules: 220
    -
    89 //---------------------------------------------------------------------------
    -
    90 
    -
    91 //---------------------------------------------------------------------------
    -
    92 // Policy name: Aus
    -
    93 // Rules: 1
    -
    94 //---------------------------------------------------------------------------
    -
    95 
    -
    96 static const extended::Info::ZoneRule kZoneRulesAus[] ACE_TIME_PROGMEM = {
    -
    97  // Anchor: Rule Aus 1943 1944 - Mar lastSun 2:00s 0 S
    -
    98  {
    -
    99  -127 /*fromYearTiny (-32767)*/,
    -
    100  -127 /*toYearTiny (-32767)*/,
    -
    101  1 /*inMonth*/,
    -
    102  0 /*onDayOfWeek*/,
    -
    103  1 /*onDayOfMonth*/,
    -
    104  0 /*atTimeCode*/,
    -
    105  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    106  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    107  3 /*letterIndex ("S")*/,
    -
    108  },
    -
    109 
    -
    110 };
    -
    111 
    -
    112 const extended::Info::ZonePolicy kZonePolicyAus ACE_TIME_PROGMEM = {
    -
    113  kZoneRulesAus /*rules*/,
    -
    114  1 /*numRules*/,
    -
    115 };
    -
    116 
    -
    117 //---------------------------------------------------------------------------
    -
    118 // Policy name: Canada
    -
    119 // Rules: 7
    -
    120 //---------------------------------------------------------------------------
    -
    121 
    -
    122 static const extended::Info::ZoneRule kZoneRulesCanada[] ACE_TIME_PROGMEM = {
    -
    123  // Anchor: Rule Canada 1945 only - Sep 30 2:00 0 S
    -
    124  {
    -
    125  -127 /*fromYearTiny (-32767)*/,
    -
    126  -127 /*toYearTiny (-32767)*/,
    -
    127  1 /*inMonth*/,
    -
    128  0 /*onDayOfWeek*/,
    -
    129  1 /*onDayOfMonth*/,
    -
    130  0 /*atTimeCode*/,
    -
    131  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    132  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    133  3 /*letterIndex ("S")*/,
    -
    134  },
    -
    135  // Rule Canada 1945 only - Sep 30 2:00 0 S
    -
    136  {
    -
    137  -127 /*fromYearTiny (1945)*/,
    -
    138  -127 /*toYearTiny (1945)*/,
    -
    139  9 /*inMonth*/,
    -
    140  0 /*onDayOfWeek*/,
    -
    141  30 /*onDayOfMonth*/,
    -
    142  8 /*atTimeCode*/,
    -
    143  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    144  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    145  3 /*letterIndex ("S")*/,
    -
    146  },
    -
    147  // Rule Canada 1974 1986 - Apr lastSun 2:00 1:00 D
    -
    148  {
    -
    149  -126 /*fromYearTiny (1974)*/,
    -
    150  -114 /*toYearTiny (1986)*/,
    -
    151  4 /*inMonth*/,
    -
    152  7 /*onDayOfWeek*/,
    -
    153  0 /*onDayOfMonth*/,
    -
    154  8 /*atTimeCode*/,
    -
    155  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    156  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    157  2 /*letterIndex ("D")*/,
    -
    158  },
    -
    159  // Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
    -
    160  {
    -
    161  -126 /*fromYearTiny (1974)*/,
    -
    162  -94 /*toYearTiny (2006)*/,
    -
    163  10 /*inMonth*/,
    -
    164  7 /*onDayOfWeek*/,
    -
    165  0 /*onDayOfMonth*/,
    -
    166  8 /*atTimeCode*/,
    -
    167  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    168  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    169  3 /*letterIndex ("S")*/,
    -
    170  },
    -
    171  // Rule Canada 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    172  {
    -
    173  -113 /*fromYearTiny (1987)*/,
    -
    174  -94 /*toYearTiny (2006)*/,
    -
    175  4 /*inMonth*/,
    -
    176  7 /*onDayOfWeek*/,
    -
    177  1 /*onDayOfMonth*/,
    -
    178  8 /*atTimeCode*/,
    -
    179  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    180  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    181  2 /*letterIndex ("D")*/,
    -
    182  },
    -
    183  // Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    184  {
    -
    185  -93 /*fromYearTiny (2007)*/,
    -
    186  126 /*toYearTiny (32766)*/,
    -
    187  3 /*inMonth*/,
    -
    188  7 /*onDayOfWeek*/,
    -
    189  8 /*onDayOfMonth*/,
    -
    190  8 /*atTimeCode*/,
    -
    191  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    192  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    193  2 /*letterIndex ("D")*/,
    -
    194  },
    -
    195  // Rule Canada 2007 max - Nov Sun>=1 2:00 0 S
    -
    196  {
    -
    197  -93 /*fromYearTiny (2007)*/,
    -
    198  126 /*toYearTiny (32766)*/,
    -
    199  11 /*inMonth*/,
    -
    200  7 /*onDayOfWeek*/,
    -
    201  1 /*onDayOfMonth*/,
    -
    202  8 /*atTimeCode*/,
    -
    203  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    204  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    205  3 /*letterIndex ("S")*/,
    -
    206  },
    -
    207 
    -
    208 };
    -
    209 
    -
    210 const extended::Info::ZonePolicy kZonePolicyCanada ACE_TIME_PROGMEM = {
    -
    211  kZoneRulesCanada /*rules*/,
    -
    212  7 /*numRules*/,
    -
    213 };
    -
    214 
    -
    215 //---------------------------------------------------------------------------
    -
    216 // Policy name: EU
    -
    217 // Rules: 6
    -
    218 //---------------------------------------------------------------------------
    -
    219 
    -
    220 static const extended::Info::ZoneRule kZoneRulesEU[] ACE_TIME_PROGMEM = {
    -
    221  // Anchor: Rule EU 1978 only - Oct 1 1:00u 0 -
    -
    222  {
    -
    223  -127 /*fromYearTiny (-32767)*/,
    -
    224  -127 /*toYearTiny (-32767)*/,
    -
    225  1 /*inMonth*/,
    -
    226  0 /*onDayOfWeek*/,
    -
    227  1 /*onDayOfMonth*/,
    -
    228  0 /*atTimeCode*/,
    -
    229  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    230  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    231  0 /*letterIndex ("")*/,
    -
    232  },
    -
    233  // Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S
    -
    234  {
    -
    235  -123 /*fromYearTiny (1977)*/,
    -
    236  -120 /*toYearTiny (1980)*/,
    -
    237  4 /*inMonth*/,
    -
    238  7 /*onDayOfWeek*/,
    -
    239  1 /*onDayOfMonth*/,
    -
    240  4 /*atTimeCode*/,
    -
    241  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    242  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    243  3 /*letterIndex ("S")*/,
    -
    244  },
    -
    245  // Rule EU 1978 only - Oct 1 1:00u 0 -
    -
    246  {
    -
    247  -122 /*fromYearTiny (1978)*/,
    -
    248  -122 /*toYearTiny (1978)*/,
    -
    249  10 /*inMonth*/,
    -
    250  0 /*onDayOfWeek*/,
    -
    251  1 /*onDayOfMonth*/,
    -
    252  4 /*atTimeCode*/,
    -
    253  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    254  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    255  0 /*letterIndex ("")*/,
    -
    256  },
    -
    257  // Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
    -
    258  {
    -
    259  -121 /*fromYearTiny (1979)*/,
    -
    260  -105 /*toYearTiny (1995)*/,
    -
    261  9 /*inMonth*/,
    -
    262  7 /*onDayOfWeek*/,
    -
    263  0 /*onDayOfMonth*/,
    -
    264  4 /*atTimeCode*/,
    -
    265  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    266  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    267  0 /*letterIndex ("")*/,
    -
    268  },
    -
    269  // Rule EU 1981 max - Mar lastSun 1:00u 1:00 S
    -
    270  {
    -
    271  -119 /*fromYearTiny (1981)*/,
    -
    272  126 /*toYearTiny (32766)*/,
    -
    273  3 /*inMonth*/,
    -
    274  7 /*onDayOfWeek*/,
    -
    275  0 /*onDayOfMonth*/,
    -
    276  4 /*atTimeCode*/,
    -
    277  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    278  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    279  3 /*letterIndex ("S")*/,
    -
    280  },
    -
    281  // Rule EU 1996 max - Oct lastSun 1:00u 0 -
    -
    282  {
    -
    283  -104 /*fromYearTiny (1996)*/,
    -
    284  126 /*toYearTiny (32766)*/,
    -
    285  10 /*inMonth*/,
    -
    286  7 /*onDayOfWeek*/,
    -
    287  0 /*onDayOfMonth*/,
    -
    288  4 /*atTimeCode*/,
    -
    289  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    290  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    291  0 /*letterIndex ("")*/,
    -
    292  },
    -
    293 
    -
    294 };
    -
    295 
    -
    296 const extended::Info::ZonePolicy kZonePolicyEU ACE_TIME_PROGMEM = {
    -
    297  kZoneRulesEU /*rules*/,
    -
    298  6 /*numRules*/,
    -
    299 };
    -
    300 
    -
    301 //---------------------------------------------------------------------------
    -
    302 // Policy name: Edm
    -
    303 // Rules: 4
    -
    304 //---------------------------------------------------------------------------
    -
    305 
    -
    306 static const extended::Info::ZoneRule kZoneRulesEdm[] ACE_TIME_PROGMEM = {
    -
    307  // Anchor: Rule Edm 1947 only - Sep lastSun 2:00 0 S
    -
    308  {
    -
    309  -127 /*fromYearTiny (-32767)*/,
    -
    310  -127 /*toYearTiny (-32767)*/,
    -
    311  1 /*inMonth*/,
    -
    312  0 /*onDayOfWeek*/,
    -
    313  1 /*onDayOfMonth*/,
    -
    314  0 /*atTimeCode*/,
    -
    315  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    316  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    317  3 /*letterIndex ("S")*/,
    -
    318  },
    -
    319  // Rule Edm 1947 only - Sep lastSun 2:00 0 S
    -
    320  {
    -
    321  -127 /*fromYearTiny (1947)*/,
    -
    322  -127 /*toYearTiny (1947)*/,
    -
    323  9 /*inMonth*/,
    -
    324  7 /*onDayOfWeek*/,
    -
    325  0 /*onDayOfMonth*/,
    -
    326  8 /*atTimeCode*/,
    -
    327  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    328  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    329  3 /*letterIndex ("S")*/,
    -
    330  },
    -
    331  // Rule Edm 1972 1986 - Apr lastSun 2:00 1:00 D
    -
    332  {
    -
    333  -127 /*fromYearTiny (1972)*/,
    -
    334  -114 /*toYearTiny (1986)*/,
    -
    335  4 /*inMonth*/,
    -
    336  7 /*onDayOfWeek*/,
    -
    337  0 /*onDayOfMonth*/,
    -
    338  8 /*atTimeCode*/,
    -
    339  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    340  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    341  2 /*letterIndex ("D")*/,
    -
    342  },
    -
    343  // Rule Edm 1972 2006 - Oct lastSun 2:00 0 S
    -
    344  {
    -
    345  -127 /*fromYearTiny (1972)*/,
    -
    346  -94 /*toYearTiny (2006)*/,
    -
    347  10 /*inMonth*/,
    -
    348  7 /*onDayOfWeek*/,
    -
    349  0 /*onDayOfMonth*/,
    -
    350  8 /*atTimeCode*/,
    -
    351  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    352  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    353  3 /*letterIndex ("S")*/,
    -
    354  },
    -
    355 
    -
    356 };
    -
    357 
    -
    358 const extended::Info::ZonePolicy kZonePolicyEdm ACE_TIME_PROGMEM = {
    -
    359  kZoneRulesEdm /*rules*/,
    -
    360  4 /*numRules*/,
    -
    361 };
    -
    362 
    -
    363 //---------------------------------------------------------------------------
    -
    364 // Policy name: Morocco
    -
    365 // Rules: 170
    -
    366 //---------------------------------------------------------------------------
    -
    367 
    -
    368 static const extended::Info::ZoneRule kZoneRulesMorocco[] ACE_TIME_PROGMEM = {
    -
    369  // Anchor: Rule Morocco 1978 only - Aug 4 0:00 0 -
    -
    370  {
    -
    371  -127 /*fromYearTiny (-32767)*/,
    -
    372  -127 /*toYearTiny (-32767)*/,
    -
    373  1 /*inMonth*/,
    -
    374  0 /*onDayOfWeek*/,
    -
    375  1 /*onDayOfMonth*/,
    -
    376  0 /*atTimeCode*/,
    -
    377  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    378  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    379  0 /*letterIndex ("")*/,
    -
    380  },
    -
    381  // Rule Morocco 1978 only - Aug 4 0:00 0 -
    -
    382  {
    -
    383  -122 /*fromYearTiny (1978)*/,
    -
    384  -122 /*toYearTiny (1978)*/,
    -
    385  8 /*inMonth*/,
    -
    386  0 /*onDayOfWeek*/,
    -
    387  4 /*onDayOfMonth*/,
    -
    388  0 /*atTimeCode*/,
    -
    389  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    390  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    391  0 /*letterIndex ("")*/,
    -
    392  },
    -
    393  // Rule Morocco 2008 only - Jun 1 0:00 1:00 -
    -
    394  {
    -
    395  -92 /*fromYearTiny (2008)*/,
    -
    396  -92 /*toYearTiny (2008)*/,
    -
    397  6 /*inMonth*/,
    -
    398  0 /*onDayOfWeek*/,
    -
    399  1 /*onDayOfMonth*/,
    -
    400  0 /*atTimeCode*/,
    -
    401  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    402  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    403  0 /*letterIndex ("")*/,
    -
    404  },
    -
    405  // Rule Morocco 2008 only - Sep 1 0:00 0 -
    -
    406  {
    -
    407  -92 /*fromYearTiny (2008)*/,
    -
    408  -92 /*toYearTiny (2008)*/,
    -
    409  9 /*inMonth*/,
    -
    410  0 /*onDayOfWeek*/,
    -
    411  1 /*onDayOfMonth*/,
    -
    412  0 /*atTimeCode*/,
    -
    413  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    414  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    415  0 /*letterIndex ("")*/,
    -
    416  },
    -
    417  // Rule Morocco 2009 only - Jun 1 0:00 1:00 -
    -
    418  {
    -
    419  -91 /*fromYearTiny (2009)*/,
    -
    420  -91 /*toYearTiny (2009)*/,
    -
    421  6 /*inMonth*/,
    -
    422  0 /*onDayOfWeek*/,
    -
    423  1 /*onDayOfMonth*/,
    -
    424  0 /*atTimeCode*/,
    -
    425  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    426  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    427  0 /*letterIndex ("")*/,
    -
    428  },
    -
    429  // Rule Morocco 2009 only - Aug 21 0:00 0 -
    -
    430  {
    -
    431  -91 /*fromYearTiny (2009)*/,
    -
    432  -91 /*toYearTiny (2009)*/,
    -
    433  8 /*inMonth*/,
    -
    434  0 /*onDayOfWeek*/,
    -
    435  21 /*onDayOfMonth*/,
    -
    436  0 /*atTimeCode*/,
    -
    437  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    438  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    439  0 /*letterIndex ("")*/,
    -
    440  },
    -
    441  // Rule Morocco 2010 only - May 2 0:00 1:00 -
    -
    442  {
    -
    443  -90 /*fromYearTiny (2010)*/,
    -
    444  -90 /*toYearTiny (2010)*/,
    -
    445  5 /*inMonth*/,
    -
    446  0 /*onDayOfWeek*/,
    -
    447  2 /*onDayOfMonth*/,
    -
    448  0 /*atTimeCode*/,
    -
    449  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    450  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    451  0 /*letterIndex ("")*/,
    -
    452  },
    -
    453  // Rule Morocco 2010 only - Aug 8 0:00 0 -
    -
    454  {
    -
    455  -90 /*fromYearTiny (2010)*/,
    -
    456  -90 /*toYearTiny (2010)*/,
    -
    457  8 /*inMonth*/,
    -
    458  0 /*onDayOfWeek*/,
    -
    459  8 /*onDayOfMonth*/,
    -
    460  0 /*atTimeCode*/,
    -
    461  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    462  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    463  0 /*letterIndex ("")*/,
    -
    464  },
    -
    465  // Rule Morocco 2011 only - Apr 3 0:00 1:00 -
    -
    466  {
    -
    467  -89 /*fromYearTiny (2011)*/,
    -
    468  -89 /*toYearTiny (2011)*/,
    -
    469  4 /*inMonth*/,
    -
    470  0 /*onDayOfWeek*/,
    -
    471  3 /*onDayOfMonth*/,
    -
    472  0 /*atTimeCode*/,
    -
    473  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    474  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    475  0 /*letterIndex ("")*/,
    -
    476  },
    -
    477  // Rule Morocco 2011 only - Jul 31 0:00 0 -
    -
    478  {
    -
    479  -89 /*fromYearTiny (2011)*/,
    -
    480  -89 /*toYearTiny (2011)*/,
    -
    481  7 /*inMonth*/,
    -
    482  0 /*onDayOfWeek*/,
    -
    483  31 /*onDayOfMonth*/,
    -
    484  0 /*atTimeCode*/,
    -
    485  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    486  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    487  0 /*letterIndex ("")*/,
    -
    488  },
    -
    489  // Rule Morocco 2012 2013 - Apr lastSun 2:00 1:00 -
    -
    490  {
    -
    491  -88 /*fromYearTiny (2012)*/,
    -
    492  -87 /*toYearTiny (2013)*/,
    -
    493  4 /*inMonth*/,
    -
    494  7 /*onDayOfWeek*/,
    -
    495  0 /*onDayOfMonth*/,
    -
    496  8 /*atTimeCode*/,
    -
    497  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    498  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    499  0 /*letterIndex ("")*/,
    -
    500  },
    -
    501  // Rule Morocco 2012 only - Jul 20 3:00 0 -
    -
    502  {
    -
    503  -88 /*fromYearTiny (2012)*/,
    -
    504  -88 /*toYearTiny (2012)*/,
    -
    505  7 /*inMonth*/,
    -
    506  0 /*onDayOfWeek*/,
    -
    507  20 /*onDayOfMonth*/,
    -
    508  12 /*atTimeCode*/,
    -
    509  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    510  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    511  0 /*letterIndex ("")*/,
    -
    512  },
    -
    513  // Rule Morocco 2012 only - Aug 20 2:00 1:00 -
    -
    514  {
    -
    515  -88 /*fromYearTiny (2012)*/,
    -
    516  -88 /*toYearTiny (2012)*/,
    -
    517  8 /*inMonth*/,
    -
    518  0 /*onDayOfWeek*/,
    -
    519  20 /*onDayOfMonth*/,
    -
    520  8 /*atTimeCode*/,
    -
    521  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    522  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    523  0 /*letterIndex ("")*/,
    -
    524  },
    -
    525  // Rule Morocco 2012 only - Sep 30 3:00 0 -
    -
    526  {
    -
    527  -88 /*fromYearTiny (2012)*/,
    -
    528  -88 /*toYearTiny (2012)*/,
    -
    529  9 /*inMonth*/,
    -
    530  0 /*onDayOfWeek*/,
    -
    531  30 /*onDayOfMonth*/,
    -
    532  12 /*atTimeCode*/,
    -
    533  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    534  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    535  0 /*letterIndex ("")*/,
    -
    536  },
    -
    537  // Rule Morocco 2013 only - Jul 7 3:00 0 -
    -
    538  {
    -
    539  -87 /*fromYearTiny (2013)*/,
    -
    540  -87 /*toYearTiny (2013)*/,
    -
    541  7 /*inMonth*/,
    -
    542  0 /*onDayOfWeek*/,
    -
    543  7 /*onDayOfMonth*/,
    -
    544  12 /*atTimeCode*/,
    -
    545  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    546  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    547  0 /*letterIndex ("")*/,
    -
    548  },
    -
    549  // Rule Morocco 2013 only - Aug 10 2:00 1:00 -
    -
    550  {
    -
    551  -87 /*fromYearTiny (2013)*/,
    -
    552  -87 /*toYearTiny (2013)*/,
    -
    553  8 /*inMonth*/,
    -
    554  0 /*onDayOfWeek*/,
    -
    555  10 /*onDayOfMonth*/,
    -
    556  8 /*atTimeCode*/,
    -
    557  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    558  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    559  0 /*letterIndex ("")*/,
    -
    560  },
    -
    561  // Rule Morocco 2013 2018 - Oct lastSun 3:00 0 -
    -
    562  {
    -
    563  -87 /*fromYearTiny (2013)*/,
    -
    564  -82 /*toYearTiny (2018)*/,
    -
    565  10 /*inMonth*/,
    -
    566  7 /*onDayOfWeek*/,
    -
    567  0 /*onDayOfMonth*/,
    -
    568  12 /*atTimeCode*/,
    -
    569  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    570  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    571  0 /*letterIndex ("")*/,
    -
    572  },
    -
    573  // Rule Morocco 2014 2018 - Mar lastSun 2:00 1:00 -
    -
    574  {
    -
    575  -86 /*fromYearTiny (2014)*/,
    -
    576  -82 /*toYearTiny (2018)*/,
    -
    577  3 /*inMonth*/,
    -
    578  7 /*onDayOfWeek*/,
    -
    579  0 /*onDayOfMonth*/,
    -
    580  8 /*atTimeCode*/,
    -
    581  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    582  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    583  0 /*letterIndex ("")*/,
    -
    584  },
    -
    585  // Rule Morocco 2014 only - Jun 28 3:00 0 -
    -
    586  {
    -
    587  -86 /*fromYearTiny (2014)*/,
    -
    588  -86 /*toYearTiny (2014)*/,
    -
    589  6 /*inMonth*/,
    -
    590  0 /*onDayOfWeek*/,
    -
    591  28 /*onDayOfMonth*/,
    -
    592  12 /*atTimeCode*/,
    -
    593  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    594  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    595  0 /*letterIndex ("")*/,
    -
    596  },
    -
    597  // Rule Morocco 2014 only - Aug 2 2:00 1:00 -
    -
    598  {
    -
    599  -86 /*fromYearTiny (2014)*/,
    -
    600  -86 /*toYearTiny (2014)*/,
    -
    601  8 /*inMonth*/,
    -
    602  0 /*onDayOfWeek*/,
    -
    603  2 /*onDayOfMonth*/,
    -
    604  8 /*atTimeCode*/,
    -
    605  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    606  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    607  0 /*letterIndex ("")*/,
    -
    608  },
    -
    609  // Rule Morocco 2015 only - Jun 14 3:00 0 -
    -
    610  {
    -
    611  -85 /*fromYearTiny (2015)*/,
    -
    612  -85 /*toYearTiny (2015)*/,
    -
    613  6 /*inMonth*/,
    -
    614  0 /*onDayOfWeek*/,
    -
    615  14 /*onDayOfMonth*/,
    -
    616  12 /*atTimeCode*/,
    -
    617  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    618  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    619  0 /*letterIndex ("")*/,
    -
    620  },
    -
    621  // Rule Morocco 2015 only - Jul 19 2:00 1:00 -
    -
    622  {
    -
    623  -85 /*fromYearTiny (2015)*/,
    -
    624  -85 /*toYearTiny (2015)*/,
    -
    625  7 /*inMonth*/,
    -
    626  0 /*onDayOfWeek*/,
    -
    627  19 /*onDayOfMonth*/,
    -
    628  8 /*atTimeCode*/,
    -
    629  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    630  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    631  0 /*letterIndex ("")*/,
    -
    632  },
    -
    633  // Rule Morocco 2016 only - Jun 5 3:00 0 -
    -
    634  {
    -
    635  -84 /*fromYearTiny (2016)*/,
    -
    636  -84 /*toYearTiny (2016)*/,
    -
    637  6 /*inMonth*/,
    -
    638  0 /*onDayOfWeek*/,
    -
    639  5 /*onDayOfMonth*/,
    -
    640  12 /*atTimeCode*/,
    -
    641  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    642  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    643  0 /*letterIndex ("")*/,
    -
    644  },
    -
    645  // Rule Morocco 2016 only - Jul 10 2:00 1:00 -
    -
    646  {
    -
    647  -84 /*fromYearTiny (2016)*/,
    -
    648  -84 /*toYearTiny (2016)*/,
    -
    649  7 /*inMonth*/,
    -
    650  0 /*onDayOfWeek*/,
    -
    651  10 /*onDayOfMonth*/,
    -
    652  8 /*atTimeCode*/,
    -
    653  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    654  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    655  0 /*letterIndex ("")*/,
    -
    656  },
    -
    657  // Rule Morocco 2017 only - May 21 3:00 0 -
    -
    658  {
    -
    659  -83 /*fromYearTiny (2017)*/,
    -
    660  -83 /*toYearTiny (2017)*/,
    -
    661  5 /*inMonth*/,
    -
    662  0 /*onDayOfWeek*/,
    -
    663  21 /*onDayOfMonth*/,
    -
    664  12 /*atTimeCode*/,
    -
    665  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    666  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    667  0 /*letterIndex ("")*/,
    -
    668  },
    -
    669  // Rule Morocco 2017 only - Jul 2 2:00 1:00 -
    -
    670  {
    -
    671  -83 /*fromYearTiny (2017)*/,
    -
    672  -83 /*toYearTiny (2017)*/,
    -
    673  7 /*inMonth*/,
    -
    674  0 /*onDayOfWeek*/,
    -
    675  2 /*onDayOfMonth*/,
    -
    676  8 /*atTimeCode*/,
    -
    677  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    678  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    679  0 /*letterIndex ("")*/,
    -
    680  },
    -
    681  // Rule Morocco 2018 only - May 13 3:00 0 -
    -
    682  {
    -
    683  -82 /*fromYearTiny (2018)*/,
    -
    684  -82 /*toYearTiny (2018)*/,
    -
    685  5 /*inMonth*/,
    -
    686  0 /*onDayOfWeek*/,
    -
    687  13 /*onDayOfMonth*/,
    -
    688  12 /*atTimeCode*/,
    -
    689  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    690  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    691  0 /*letterIndex ("")*/,
    -
    692  },
    -
    693  // Rule Morocco 2018 only - Jun 17 2:00 1:00 -
    -
    694  {
    -
    695  -82 /*fromYearTiny (2018)*/,
    -
    696  -82 /*toYearTiny (2018)*/,
    -
    697  6 /*inMonth*/,
    -
    698  0 /*onDayOfWeek*/,
    -
    699  17 /*onDayOfMonth*/,
    -
    700  8 /*atTimeCode*/,
    -
    701  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    702  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    703  0 /*letterIndex ("")*/,
    -
    704  },
    -
    705  // Rule Morocco 2019 only - May 5 3:00 -1:00 -
    -
    706  {
    -
    707  -81 /*fromYearTiny (2019)*/,
    -
    708  -81 /*toYearTiny (2019)*/,
    -
    709  5 /*inMonth*/,
    -
    710  0 /*onDayOfWeek*/,
    -
    711  5 /*onDayOfMonth*/,
    -
    712  12 /*atTimeCode*/,
    -
    713  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    714  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    715  0 /*letterIndex ("")*/,
    -
    716  },
    -
    717  // Rule Morocco 2019 only - Jun 9 2:00 0 -
    -
    718  {
    -
    719  -81 /*fromYearTiny (2019)*/,
    -
    720  -81 /*toYearTiny (2019)*/,
    -
    721  6 /*inMonth*/,
    -
    722  0 /*onDayOfWeek*/,
    -
    723  9 /*onDayOfMonth*/,
    -
    724  8 /*atTimeCode*/,
    -
    725  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    726  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    727  0 /*letterIndex ("")*/,
    -
    728  },
    -
    729  // Rule Morocco 2020 only - Apr 19 3:00 -1:00 -
    -
    730  {
    -
    731  -80 /*fromYearTiny (2020)*/,
    -
    732  -80 /*toYearTiny (2020)*/,
    -
    733  4 /*inMonth*/,
    -
    734  0 /*onDayOfWeek*/,
    -
    735  19 /*onDayOfMonth*/,
    -
    736  12 /*atTimeCode*/,
    -
    737  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    738  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    739  0 /*letterIndex ("")*/,
    -
    740  },
    -
    741  // Rule Morocco 2020 only - May 31 2:00 0 -
    -
    742  {
    -
    743  -80 /*fromYearTiny (2020)*/,
    -
    744  -80 /*toYearTiny (2020)*/,
    -
    745  5 /*inMonth*/,
    -
    746  0 /*onDayOfWeek*/,
    -
    747  31 /*onDayOfMonth*/,
    -
    748  8 /*atTimeCode*/,
    -
    749  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    750  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    751  0 /*letterIndex ("")*/,
    -
    752  },
    -
    753  // Rule Morocco 2021 only - Apr 11 3:00 -1:00 -
    -
    754  {
    -
    755  -79 /*fromYearTiny (2021)*/,
    -
    756  -79 /*toYearTiny (2021)*/,
    -
    757  4 /*inMonth*/,
    -
    758  0 /*onDayOfWeek*/,
    -
    759  11 /*onDayOfMonth*/,
    -
    760  12 /*atTimeCode*/,
    -
    761  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    762  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    763  0 /*letterIndex ("")*/,
    -
    764  },
    -
    765  // Rule Morocco 2021 only - May 16 2:00 0 -
    -
    766  {
    -
    767  -79 /*fromYearTiny (2021)*/,
    -
    768  -79 /*toYearTiny (2021)*/,
    -
    769  5 /*inMonth*/,
    -
    770  0 /*onDayOfWeek*/,
    -
    771  16 /*onDayOfMonth*/,
    -
    772  8 /*atTimeCode*/,
    -
    773  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    774  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    775  0 /*letterIndex ("")*/,
    -
    776  },
    -
    777  // Rule Morocco 2022 only - Mar 27 3:00 -1:00 -
    -
    778  {
    -
    779  -78 /*fromYearTiny (2022)*/,
    -
    780  -78 /*toYearTiny (2022)*/,
    -
    781  3 /*inMonth*/,
    -
    782  0 /*onDayOfWeek*/,
    -
    783  27 /*onDayOfMonth*/,
    -
    784  12 /*atTimeCode*/,
    -
    785  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    786  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    787  0 /*letterIndex ("")*/,
    -
    788  },
    -
    789  // Rule Morocco 2022 only - May 8 2:00 0 -
    -
    790  {
    -
    791  -78 /*fromYearTiny (2022)*/,
    -
    792  -78 /*toYearTiny (2022)*/,
    -
    793  5 /*inMonth*/,
    -
    794  0 /*onDayOfWeek*/,
    -
    795  8 /*onDayOfMonth*/,
    -
    796  8 /*atTimeCode*/,
    -
    797  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    798  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    799  0 /*letterIndex ("")*/,
    -
    800  },
    -
    801  // Rule Morocco 2023 only - Mar 19 3:00 -1:00 -
    -
    802  {
    -
    803  -77 /*fromYearTiny (2023)*/,
    -
    804  -77 /*toYearTiny (2023)*/,
    -
    805  3 /*inMonth*/,
    -
    806  0 /*onDayOfWeek*/,
    -
    807  19 /*onDayOfMonth*/,
    -
    808  12 /*atTimeCode*/,
    -
    809  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    810  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    811  0 /*letterIndex ("")*/,
    -
    812  },
    -
    813  // Rule Morocco 2023 only - Apr 23 2:00 0 -
    -
    814  {
    -
    815  -77 /*fromYearTiny (2023)*/,
    -
    816  -77 /*toYearTiny (2023)*/,
    -
    817  4 /*inMonth*/,
    -
    818  0 /*onDayOfWeek*/,
    -
    819  23 /*onDayOfMonth*/,
    -
    820  8 /*atTimeCode*/,
    -
    821  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    822  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    823  0 /*letterIndex ("")*/,
    -
    824  },
    -
    825  // Rule Morocco 2024 only - Mar 10 3:00 -1:00 -
    -
    826  {
    -
    827  -76 /*fromYearTiny (2024)*/,
    -
    828  -76 /*toYearTiny (2024)*/,
    -
    829  3 /*inMonth*/,
    -
    830  0 /*onDayOfWeek*/,
    -
    831  10 /*onDayOfMonth*/,
    -
    832  12 /*atTimeCode*/,
    -
    833  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    834  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    835  0 /*letterIndex ("")*/,
    -
    836  },
    -
    837  // Rule Morocco 2024 only - Apr 14 2:00 0 -
    -
    838  {
    -
    839  -76 /*fromYearTiny (2024)*/,
    -
    840  -76 /*toYearTiny (2024)*/,
    -
    841  4 /*inMonth*/,
    -
    842  0 /*onDayOfWeek*/,
    -
    843  14 /*onDayOfMonth*/,
    -
    844  8 /*atTimeCode*/,
    -
    845  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    846  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    847  0 /*letterIndex ("")*/,
    -
    848  },
    -
    849  // Rule Morocco 2025 only - Feb 23 3:00 -1:00 -
    -
    850  {
    -
    851  -75 /*fromYearTiny (2025)*/,
    -
    852  -75 /*toYearTiny (2025)*/,
    -
    853  2 /*inMonth*/,
    -
    854  0 /*onDayOfWeek*/,
    -
    855  23 /*onDayOfMonth*/,
    -
    856  12 /*atTimeCode*/,
    -
    857  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    858  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    859  0 /*letterIndex ("")*/,
    -
    860  },
    -
    861  // Rule Morocco 2025 only - Apr 6 2:00 0 -
    -
    862  {
    -
    863  -75 /*fromYearTiny (2025)*/,
    -
    864  -75 /*toYearTiny (2025)*/,
    -
    865  4 /*inMonth*/,
    -
    866  0 /*onDayOfWeek*/,
    -
    867  6 /*onDayOfMonth*/,
    -
    868  8 /*atTimeCode*/,
    -
    869  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    870  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    871  0 /*letterIndex ("")*/,
    -
    872  },
    -
    873  // Rule Morocco 2026 only - Feb 15 3:00 -1:00 -
    -
    874  {
    -
    875  -74 /*fromYearTiny (2026)*/,
    -
    876  -74 /*toYearTiny (2026)*/,
    -
    877  2 /*inMonth*/,
    -
    878  0 /*onDayOfWeek*/,
    -
    879  15 /*onDayOfMonth*/,
    -
    880  12 /*atTimeCode*/,
    -
    881  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    882  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    883  0 /*letterIndex ("")*/,
    -
    884  },
    -
    885  // Rule Morocco 2026 only - Mar 22 2:00 0 -
    -
    886  {
    -
    887  -74 /*fromYearTiny (2026)*/,
    -
    888  -74 /*toYearTiny (2026)*/,
    -
    889  3 /*inMonth*/,
    -
    890  0 /*onDayOfWeek*/,
    -
    891  22 /*onDayOfMonth*/,
    -
    892  8 /*atTimeCode*/,
    -
    893  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    894  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    895  0 /*letterIndex ("")*/,
    -
    896  },
    -
    897  // Rule Morocco 2027 only - Feb 7 3:00 -1:00 -
    -
    898  {
    -
    899  -73 /*fromYearTiny (2027)*/,
    -
    900  -73 /*toYearTiny (2027)*/,
    -
    901  2 /*inMonth*/,
    -
    902  0 /*onDayOfWeek*/,
    -
    903  7 /*onDayOfMonth*/,
    -
    904  12 /*atTimeCode*/,
    -
    905  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    906  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    907  0 /*letterIndex ("")*/,
    -
    908  },
    -
    909  // Rule Morocco 2027 only - Mar 14 2:00 0 -
    -
    910  {
    -
    911  -73 /*fromYearTiny (2027)*/,
    -
    912  -73 /*toYearTiny (2027)*/,
    -
    913  3 /*inMonth*/,
    -
    914  0 /*onDayOfWeek*/,
    -
    915  14 /*onDayOfMonth*/,
    -
    916  8 /*atTimeCode*/,
    -
    917  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    918  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    919  0 /*letterIndex ("")*/,
    -
    920  },
    -
    921  // Rule Morocco 2028 only - Jan 23 3:00 -1:00 -
    -
    922  {
    -
    923  -72 /*fromYearTiny (2028)*/,
    -
    924  -72 /*toYearTiny (2028)*/,
    -
    925  1 /*inMonth*/,
    -
    926  0 /*onDayOfWeek*/,
    -
    927  23 /*onDayOfMonth*/,
    -
    928  12 /*atTimeCode*/,
    -
    929  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    930  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    931  0 /*letterIndex ("")*/,
    -
    932  },
    -
    933  // Rule Morocco 2028 only - Mar 5 2:00 0 -
    -
    934  {
    -
    935  -72 /*fromYearTiny (2028)*/,
    -
    936  -72 /*toYearTiny (2028)*/,
    -
    937  3 /*inMonth*/,
    -
    938  0 /*onDayOfWeek*/,
    -
    939  5 /*onDayOfMonth*/,
    -
    940  8 /*atTimeCode*/,
    -
    941  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    942  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    943  0 /*letterIndex ("")*/,
    -
    944  },
    -
    945  // Rule Morocco 2029 only - Jan 14 3:00 -1:00 -
    -
    946  {
    -
    947  -71 /*fromYearTiny (2029)*/,
    -
    948  -71 /*toYearTiny (2029)*/,
    -
    949  1 /*inMonth*/,
    -
    950  0 /*onDayOfWeek*/,
    -
    951  14 /*onDayOfMonth*/,
    -
    952  12 /*atTimeCode*/,
    -
    953  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    954  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    955  0 /*letterIndex ("")*/,
    -
    956  },
    -
    957  // Rule Morocco 2029 only - Feb 18 2:00 0 -
    -
    958  {
    -
    959  -71 /*fromYearTiny (2029)*/,
    -
    960  -71 /*toYearTiny (2029)*/,
    -
    961  2 /*inMonth*/,
    -
    962  0 /*onDayOfWeek*/,
    -
    963  18 /*onDayOfMonth*/,
    -
    964  8 /*atTimeCode*/,
    -
    965  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    966  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    967  0 /*letterIndex ("")*/,
    -
    968  },
    -
    969  // Rule Morocco 2029 only - Dec 30 3:00 -1:00 -
    -
    970  {
    -
    971  -71 /*fromYearTiny (2029)*/,
    -
    972  -71 /*toYearTiny (2029)*/,
    -
    973  12 /*inMonth*/,
    -
    974  0 /*onDayOfWeek*/,
    -
    975  30 /*onDayOfMonth*/,
    -
    976  12 /*atTimeCode*/,
    -
    977  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    978  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    979  0 /*letterIndex ("")*/,
    -
    980  },
    -
    981  // Rule Morocco 2030 only - Feb 10 2:00 0 -
    -
    982  {
    -
    983  -70 /*fromYearTiny (2030)*/,
    -
    984  -70 /*toYearTiny (2030)*/,
    -
    985  2 /*inMonth*/,
    -
    986  0 /*onDayOfWeek*/,
    -
    987  10 /*onDayOfMonth*/,
    -
    988  8 /*atTimeCode*/,
    -
    989  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    990  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    991  0 /*letterIndex ("")*/,
    -
    992  },
    -
    993  // Rule Morocco 2030 only - Dec 22 3:00 -1:00 -
    -
    994  {
    -
    995  -70 /*fromYearTiny (2030)*/,
    -
    996  -70 /*toYearTiny (2030)*/,
    -
    997  12 /*inMonth*/,
    -
    998  0 /*onDayOfWeek*/,
    -
    999  22 /*onDayOfMonth*/,
    -
    1000  12 /*atTimeCode*/,
    -
    1001  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1002  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1003  0 /*letterIndex ("")*/,
    -
    1004  },
    -
    1005  // Rule Morocco 2031 only - Jan 26 2:00 0 -
    -
    1006  {
    -
    1007  -69 /*fromYearTiny (2031)*/,
    -
    1008  -69 /*toYearTiny (2031)*/,
    -
    1009  1 /*inMonth*/,
    -
    1010  0 /*onDayOfWeek*/,
    -
    1011  26 /*onDayOfMonth*/,
    -
    1012  8 /*atTimeCode*/,
    -
    1013  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1014  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1015  0 /*letterIndex ("")*/,
    -
    1016  },
    -
    1017  // Rule Morocco 2031 only - Dec 14 3:00 -1:00 -
    -
    1018  {
    -
    1019  -69 /*fromYearTiny (2031)*/,
    -
    1020  -69 /*toYearTiny (2031)*/,
    -
    1021  12 /*inMonth*/,
    -
    1022  0 /*onDayOfWeek*/,
    -
    1023  14 /*onDayOfMonth*/,
    -
    1024  12 /*atTimeCode*/,
    -
    1025  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1026  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1027  0 /*letterIndex ("")*/,
    -
    1028  },
    -
    1029  // Rule Morocco 2032 only - Jan 18 2:00 0 -
    -
    1030  {
    -
    1031  -68 /*fromYearTiny (2032)*/,
    -
    1032  -68 /*toYearTiny (2032)*/,
    -
    1033  1 /*inMonth*/,
    -
    1034  0 /*onDayOfWeek*/,
    -
    1035  18 /*onDayOfMonth*/,
    -
    1036  8 /*atTimeCode*/,
    -
    1037  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1038  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1039  0 /*letterIndex ("")*/,
    -
    1040  },
    -
    1041  // Rule Morocco 2032 only - Nov 28 3:00 -1:00 -
    -
    1042  {
    -
    1043  -68 /*fromYearTiny (2032)*/,
    -
    1044  -68 /*toYearTiny (2032)*/,
    -
    1045  11 /*inMonth*/,
    -
    1046  0 /*onDayOfWeek*/,
    -
    1047  28 /*onDayOfMonth*/,
    -
    1048  12 /*atTimeCode*/,
    -
    1049  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1050  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1051  0 /*letterIndex ("")*/,
    -
    1052  },
    -
    1053  // Rule Morocco 2033 only - Jan 9 2:00 0 -
    -
    1054  {
    -
    1055  -67 /*fromYearTiny (2033)*/,
    -
    1056  -67 /*toYearTiny (2033)*/,
    -
    1057  1 /*inMonth*/,
    -
    1058  0 /*onDayOfWeek*/,
    -
    1059  9 /*onDayOfMonth*/,
    -
    1060  8 /*atTimeCode*/,
    -
    1061  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1062  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1063  0 /*letterIndex ("")*/,
    -
    1064  },
    -
    1065  // Rule Morocco 2033 only - Nov 20 3:00 -1:00 -
    -
    1066  {
    -
    1067  -67 /*fromYearTiny (2033)*/,
    -
    1068  -67 /*toYearTiny (2033)*/,
    -
    1069  11 /*inMonth*/,
    -
    1070  0 /*onDayOfWeek*/,
    -
    1071  20 /*onDayOfMonth*/,
    -
    1072  12 /*atTimeCode*/,
    -
    1073  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1074  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1075  0 /*letterIndex ("")*/,
    -
    1076  },
    -
    1077  // Rule Morocco 2033 only - Dec 25 2:00 0 -
    -
    1078  {
    -
    1079  -67 /*fromYearTiny (2033)*/,
    -
    1080  -67 /*toYearTiny (2033)*/,
    -
    1081  12 /*inMonth*/,
    -
    1082  0 /*onDayOfWeek*/,
    -
    1083  25 /*onDayOfMonth*/,
    -
    1084  8 /*atTimeCode*/,
    -
    1085  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1086  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1087  0 /*letterIndex ("")*/,
    -
    1088  },
    -
    1089  // Rule Morocco 2034 only - Nov 5 3:00 -1:00 -
    -
    1090  {
    -
    1091  -66 /*fromYearTiny (2034)*/,
    -
    1092  -66 /*toYearTiny (2034)*/,
    -
    1093  11 /*inMonth*/,
    -
    1094  0 /*onDayOfWeek*/,
    -
    1095  5 /*onDayOfMonth*/,
    -
    1096  12 /*atTimeCode*/,
    -
    1097  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1098  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1099  0 /*letterIndex ("")*/,
    -
    1100  },
    -
    1101  // Rule Morocco 2034 only - Dec 17 2:00 0 -
    -
    1102  {
    -
    1103  -66 /*fromYearTiny (2034)*/,
    -
    1104  -66 /*toYearTiny (2034)*/,
    -
    1105  12 /*inMonth*/,
    -
    1106  0 /*onDayOfWeek*/,
    -
    1107  17 /*onDayOfMonth*/,
    -
    1108  8 /*atTimeCode*/,
    -
    1109  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1110  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1111  0 /*letterIndex ("")*/,
    -
    1112  },
    -
    1113  // Rule Morocco 2035 only - Oct 28 3:00 -1:00 -
    -
    1114  {
    -
    1115  -65 /*fromYearTiny (2035)*/,
    -
    1116  -65 /*toYearTiny (2035)*/,
    -
    1117  10 /*inMonth*/,
    -
    1118  0 /*onDayOfWeek*/,
    -
    1119  28 /*onDayOfMonth*/,
    -
    1120  12 /*atTimeCode*/,
    -
    1121  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1122  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1123  0 /*letterIndex ("")*/,
    -
    1124  },
    -
    1125  // Rule Morocco 2035 only - Dec 9 2:00 0 -
    -
    1126  {
    -
    1127  -65 /*fromYearTiny (2035)*/,
    -
    1128  -65 /*toYearTiny (2035)*/,
    -
    1129  12 /*inMonth*/,
    -
    1130  0 /*onDayOfWeek*/,
    -
    1131  9 /*onDayOfMonth*/,
    -
    1132  8 /*atTimeCode*/,
    -
    1133  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1134  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1135  0 /*letterIndex ("")*/,
    -
    1136  },
    -
    1137  // Rule Morocco 2036 only - Oct 19 3:00 -1:00 -
    -
    1138  {
    -
    1139  -64 /*fromYearTiny (2036)*/,
    -
    1140  -64 /*toYearTiny (2036)*/,
    -
    1141  10 /*inMonth*/,
    -
    1142  0 /*onDayOfWeek*/,
    -
    1143  19 /*onDayOfMonth*/,
    -
    1144  12 /*atTimeCode*/,
    -
    1145  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1146  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1147  0 /*letterIndex ("")*/,
    -
    1148  },
    -
    1149  // Rule Morocco 2036 only - Nov 23 2:00 0 -
    -
    1150  {
    -
    1151  -64 /*fromYearTiny (2036)*/,
    -
    1152  -64 /*toYearTiny (2036)*/,
    -
    1153  11 /*inMonth*/,
    -
    1154  0 /*onDayOfWeek*/,
    -
    1155  23 /*onDayOfMonth*/,
    -
    1156  8 /*atTimeCode*/,
    -
    1157  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1158  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1159  0 /*letterIndex ("")*/,
    -
    1160  },
    -
    1161  // Rule Morocco 2037 only - Oct 4 3:00 -1:00 -
    -
    1162  {
    -
    1163  -63 /*fromYearTiny (2037)*/,
    -
    1164  -63 /*toYearTiny (2037)*/,
    -
    1165  10 /*inMonth*/,
    -
    1166  0 /*onDayOfWeek*/,
    -
    1167  4 /*onDayOfMonth*/,
    -
    1168  12 /*atTimeCode*/,
    -
    1169  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1170  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1171  0 /*letterIndex ("")*/,
    -
    1172  },
    -
    1173  // Rule Morocco 2037 only - Nov 15 2:00 0 -
    -
    1174  {
    -
    1175  -63 /*fromYearTiny (2037)*/,
    -
    1176  -63 /*toYearTiny (2037)*/,
    -
    1177  11 /*inMonth*/,
    -
    1178  0 /*onDayOfWeek*/,
    -
    1179  15 /*onDayOfMonth*/,
    -
    1180  8 /*atTimeCode*/,
    -
    1181  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1182  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1183  0 /*letterIndex ("")*/,
    -
    1184  },
    -
    1185  // Rule Morocco 2038 only - Sep 26 3:00 -1:00 -
    -
    1186  {
    -
    1187  -62 /*fromYearTiny (2038)*/,
    -
    1188  -62 /*toYearTiny (2038)*/,
    -
    1189  9 /*inMonth*/,
    -
    1190  0 /*onDayOfWeek*/,
    -
    1191  26 /*onDayOfMonth*/,
    -
    1192  12 /*atTimeCode*/,
    -
    1193  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1194  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1195  0 /*letterIndex ("")*/,
    -
    1196  },
    -
    1197  // Rule Morocco 2038 only - Oct 31 2:00 0 -
    -
    1198  {
    -
    1199  -62 /*fromYearTiny (2038)*/,
    -
    1200  -62 /*toYearTiny (2038)*/,
    -
    1201  10 /*inMonth*/,
    -
    1202  0 /*onDayOfWeek*/,
    -
    1203  31 /*onDayOfMonth*/,
    -
    1204  8 /*atTimeCode*/,
    -
    1205  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1206  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1207  0 /*letterIndex ("")*/,
    -
    1208  },
    -
    1209  // Rule Morocco 2039 only - Sep 18 3:00 -1:00 -
    -
    1210  {
    -
    1211  -61 /*fromYearTiny (2039)*/,
    -
    1212  -61 /*toYearTiny (2039)*/,
    -
    1213  9 /*inMonth*/,
    -
    1214  0 /*onDayOfWeek*/,
    -
    1215  18 /*onDayOfMonth*/,
    -
    1216  12 /*atTimeCode*/,
    -
    1217  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1218  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1219  0 /*letterIndex ("")*/,
    -
    1220  },
    -
    1221  // Rule Morocco 2039 only - Oct 23 2:00 0 -
    -
    1222  {
    -
    1223  -61 /*fromYearTiny (2039)*/,
    -
    1224  -61 /*toYearTiny (2039)*/,
    -
    1225  10 /*inMonth*/,
    -
    1226  0 /*onDayOfWeek*/,
    -
    1227  23 /*onDayOfMonth*/,
    -
    1228  8 /*atTimeCode*/,
    -
    1229  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1230  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1231  0 /*letterIndex ("")*/,
    -
    1232  },
    -
    1233  // Rule Morocco 2040 only - Sep 2 3:00 -1:00 -
    -
    1234  {
    -
    1235  -60 /*fromYearTiny (2040)*/,
    -
    1236  -60 /*toYearTiny (2040)*/,
    -
    1237  9 /*inMonth*/,
    -
    1238  0 /*onDayOfWeek*/,
    -
    1239  2 /*onDayOfMonth*/,
    -
    1240  12 /*atTimeCode*/,
    -
    1241  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1242  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1243  0 /*letterIndex ("")*/,
    -
    1244  },
    -
    1245  // Rule Morocco 2040 only - Oct 14 2:00 0 -
    -
    1246  {
    -
    1247  -60 /*fromYearTiny (2040)*/,
    -
    1248  -60 /*toYearTiny (2040)*/,
    -
    1249  10 /*inMonth*/,
    -
    1250  0 /*onDayOfWeek*/,
    -
    1251  14 /*onDayOfMonth*/,
    -
    1252  8 /*atTimeCode*/,
    -
    1253  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1254  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1255  0 /*letterIndex ("")*/,
    -
    1256  },
    -
    1257  // Rule Morocco 2041 only - Aug 25 3:00 -1:00 -
    -
    1258  {
    -
    1259  -59 /*fromYearTiny (2041)*/,
    -
    1260  -59 /*toYearTiny (2041)*/,
    -
    1261  8 /*inMonth*/,
    -
    1262  0 /*onDayOfWeek*/,
    -
    1263  25 /*onDayOfMonth*/,
    -
    1264  12 /*atTimeCode*/,
    -
    1265  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1266  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1267  0 /*letterIndex ("")*/,
    -
    1268  },
    -
    1269  // Rule Morocco 2041 only - Sep 29 2:00 0 -
    -
    1270  {
    -
    1271  -59 /*fromYearTiny (2041)*/,
    -
    1272  -59 /*toYearTiny (2041)*/,
    -
    1273  9 /*inMonth*/,
    -
    1274  0 /*onDayOfWeek*/,
    -
    1275  29 /*onDayOfMonth*/,
    -
    1276  8 /*atTimeCode*/,
    -
    1277  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1278  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1279  0 /*letterIndex ("")*/,
    -
    1280  },
    -
    1281  // Rule Morocco 2042 only - Aug 10 3:00 -1:00 -
    -
    1282  {
    -
    1283  -58 /*fromYearTiny (2042)*/,
    -
    1284  -58 /*toYearTiny (2042)*/,
    -
    1285  8 /*inMonth*/,
    -
    1286  0 /*onDayOfWeek*/,
    -
    1287  10 /*onDayOfMonth*/,
    -
    1288  12 /*atTimeCode*/,
    -
    1289  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1290  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1291  0 /*letterIndex ("")*/,
    -
    1292  },
    -
    1293  // Rule Morocco 2042 only - Sep 21 2:00 0 -
    -
    1294  {
    -
    1295  -58 /*fromYearTiny (2042)*/,
    -
    1296  -58 /*toYearTiny (2042)*/,
    -
    1297  9 /*inMonth*/,
    -
    1298  0 /*onDayOfWeek*/,
    -
    1299  21 /*onDayOfMonth*/,
    -
    1300  8 /*atTimeCode*/,
    -
    1301  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1302  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1303  0 /*letterIndex ("")*/,
    -
    1304  },
    -
    1305  // Rule Morocco 2043 only - Aug 2 3:00 -1:00 -
    -
    1306  {
    -
    1307  -57 /*fromYearTiny (2043)*/,
    -
    1308  -57 /*toYearTiny (2043)*/,
    -
    1309  8 /*inMonth*/,
    -
    1310  0 /*onDayOfWeek*/,
    -
    1311  2 /*onDayOfMonth*/,
    -
    1312  12 /*atTimeCode*/,
    -
    1313  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1314  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1315  0 /*letterIndex ("")*/,
    -
    1316  },
    -
    1317  // Rule Morocco 2043 only - Sep 13 2:00 0 -
    -
    1318  {
    -
    1319  -57 /*fromYearTiny (2043)*/,
    -
    1320  -57 /*toYearTiny (2043)*/,
    -
    1321  9 /*inMonth*/,
    -
    1322  0 /*onDayOfWeek*/,
    -
    1323  13 /*onDayOfMonth*/,
    -
    1324  8 /*atTimeCode*/,
    -
    1325  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1326  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1327  0 /*letterIndex ("")*/,
    -
    1328  },
    -
    1329  // Rule Morocco 2044 only - Jul 24 3:00 -1:00 -
    -
    1330  {
    -
    1331  -56 /*fromYearTiny (2044)*/,
    -
    1332  -56 /*toYearTiny (2044)*/,
    -
    1333  7 /*inMonth*/,
    -
    1334  0 /*onDayOfWeek*/,
    -
    1335  24 /*onDayOfMonth*/,
    -
    1336  12 /*atTimeCode*/,
    -
    1337  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1338  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1339  0 /*letterIndex ("")*/,
    -
    1340  },
    -
    1341  // Rule Morocco 2044 only - Aug 28 2:00 0 -
    -
    1342  {
    -
    1343  -56 /*fromYearTiny (2044)*/,
    -
    1344  -56 /*toYearTiny (2044)*/,
    -
    1345  8 /*inMonth*/,
    -
    1346  0 /*onDayOfWeek*/,
    -
    1347  28 /*onDayOfMonth*/,
    -
    1348  8 /*atTimeCode*/,
    -
    1349  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1350  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1351  0 /*letterIndex ("")*/,
    -
    1352  },
    -
    1353  // Rule Morocco 2045 only - Jul 9 3:00 -1:00 -
    -
    1354  {
    -
    1355  -55 /*fromYearTiny (2045)*/,
    -
    1356  -55 /*toYearTiny (2045)*/,
    -
    1357  7 /*inMonth*/,
    -
    1358  0 /*onDayOfWeek*/,
    -
    1359  9 /*onDayOfMonth*/,
    -
    1360  12 /*atTimeCode*/,
    -
    1361  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1362  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1363  0 /*letterIndex ("")*/,
    -
    1364  },
    -
    1365  // Rule Morocco 2045 only - Aug 20 2:00 0 -
    -
    1366  {
    -
    1367  -55 /*fromYearTiny (2045)*/,
    -
    1368  -55 /*toYearTiny (2045)*/,
    -
    1369  8 /*inMonth*/,
    -
    1370  0 /*onDayOfWeek*/,
    -
    1371  20 /*onDayOfMonth*/,
    -
    1372  8 /*atTimeCode*/,
    -
    1373  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1374  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1375  0 /*letterIndex ("")*/,
    -
    1376  },
    -
    1377  // Rule Morocco 2046 only - Jul 1 3:00 -1:00 -
    -
    1378  {
    -
    1379  -54 /*fromYearTiny (2046)*/,
    -
    1380  -54 /*toYearTiny (2046)*/,
    -
    1381  7 /*inMonth*/,
    -
    1382  0 /*onDayOfWeek*/,
    -
    1383  1 /*onDayOfMonth*/,
    -
    1384  12 /*atTimeCode*/,
    -
    1385  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1386  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1387  0 /*letterIndex ("")*/,
    -
    1388  },
    -
    1389  // Rule Morocco 2046 only - Aug 5 2:00 0 -
    -
    1390  {
    -
    1391  -54 /*fromYearTiny (2046)*/,
    -
    1392  -54 /*toYearTiny (2046)*/,
    -
    1393  8 /*inMonth*/,
    -
    1394  0 /*onDayOfWeek*/,
    -
    1395  5 /*onDayOfMonth*/,
    -
    1396  8 /*atTimeCode*/,
    -
    1397  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1398  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1399  0 /*letterIndex ("")*/,
    -
    1400  },
    -
    1401  // Rule Morocco 2047 only - Jun 23 3:00 -1:00 -
    -
    1402  {
    -
    1403  -53 /*fromYearTiny (2047)*/,
    -
    1404  -53 /*toYearTiny (2047)*/,
    -
    1405  6 /*inMonth*/,
    -
    1406  0 /*onDayOfWeek*/,
    -
    1407  23 /*onDayOfMonth*/,
    -
    1408  12 /*atTimeCode*/,
    -
    1409  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1410  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1411  0 /*letterIndex ("")*/,
    -
    1412  },
    -
    1413  // Rule Morocco 2047 only - Jul 28 2:00 0 -
    -
    1414  {
    -
    1415  -53 /*fromYearTiny (2047)*/,
    -
    1416  -53 /*toYearTiny (2047)*/,
    -
    1417  7 /*inMonth*/,
    -
    1418  0 /*onDayOfWeek*/,
    -
    1419  28 /*onDayOfMonth*/,
    -
    1420  8 /*atTimeCode*/,
    -
    1421  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1422  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1423  0 /*letterIndex ("")*/,
    -
    1424  },
    -
    1425  // Rule Morocco 2048 only - Jun 7 3:00 -1:00 -
    -
    1426  {
    -
    1427  -52 /*fromYearTiny (2048)*/,
    -
    1428  -52 /*toYearTiny (2048)*/,
    -
    1429  6 /*inMonth*/,
    -
    1430  0 /*onDayOfWeek*/,
    -
    1431  7 /*onDayOfMonth*/,
    -
    1432  12 /*atTimeCode*/,
    -
    1433  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1434  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1435  0 /*letterIndex ("")*/,
    -
    1436  },
    -
    1437  // Rule Morocco 2048 only - Jul 19 2:00 0 -
    -
    1438  {
    -
    1439  -52 /*fromYearTiny (2048)*/,
    -
    1440  -52 /*toYearTiny (2048)*/,
    -
    1441  7 /*inMonth*/,
    -
    1442  0 /*onDayOfWeek*/,
    -
    1443  19 /*onDayOfMonth*/,
    -
    1444  8 /*atTimeCode*/,
    -
    1445  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1446  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1447  0 /*letterIndex ("")*/,
    -
    1448  },
    -
    1449  // Rule Morocco 2049 only - May 30 3:00 -1:00 -
    -
    1450  {
    -
    1451  -51 /*fromYearTiny (2049)*/,
    -
    1452  -51 /*toYearTiny (2049)*/,
    -
    1453  5 /*inMonth*/,
    -
    1454  0 /*onDayOfWeek*/,
    -
    1455  30 /*onDayOfMonth*/,
    -
    1456  12 /*atTimeCode*/,
    -
    1457  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1458  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1459  0 /*letterIndex ("")*/,
    -
    1460  },
    -
    1461  // Rule Morocco 2049 only - Jul 4 2:00 0 -
    -
    1462  {
    -
    1463  -51 /*fromYearTiny (2049)*/,
    -
    1464  -51 /*toYearTiny (2049)*/,
    -
    1465  7 /*inMonth*/,
    -
    1466  0 /*onDayOfWeek*/,
    -
    1467  4 /*onDayOfMonth*/,
    -
    1468  8 /*atTimeCode*/,
    -
    1469  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1470  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1471  0 /*letterIndex ("")*/,
    -
    1472  },
    -
    1473  // Rule Morocco 2050 only - May 15 3:00 -1:00 -
    -
    1474  {
    -
    1475  -50 /*fromYearTiny (2050)*/,
    -
    1476  -50 /*toYearTiny (2050)*/,
    -
    1477  5 /*inMonth*/,
    -
    1478  0 /*onDayOfWeek*/,
    -
    1479  15 /*onDayOfMonth*/,
    -
    1480  12 /*atTimeCode*/,
    -
    1481  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1482  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1483  0 /*letterIndex ("")*/,
    -
    1484  },
    -
    1485  // Rule Morocco 2050 only - Jun 26 2:00 0 -
    -
    1486  {
    -
    1487  -50 /*fromYearTiny (2050)*/,
    -
    1488  -50 /*toYearTiny (2050)*/,
    -
    1489  6 /*inMonth*/,
    -
    1490  0 /*onDayOfWeek*/,
    -
    1491  26 /*onDayOfMonth*/,
    -
    1492  8 /*atTimeCode*/,
    -
    1493  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1494  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1495  0 /*letterIndex ("")*/,
    -
    1496  },
    -
    1497  // Rule Morocco 2051 only - May 7 3:00 -1:00 -
    -
    1498  {
    -
    1499  -49 /*fromYearTiny (2051)*/,
    -
    1500  -49 /*toYearTiny (2051)*/,
    -
    1501  5 /*inMonth*/,
    -
    1502  0 /*onDayOfWeek*/,
    -
    1503  7 /*onDayOfMonth*/,
    -
    1504  12 /*atTimeCode*/,
    -
    1505  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1506  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1507  0 /*letterIndex ("")*/,
    -
    1508  },
    -
    1509  // Rule Morocco 2051 only - Jun 18 2:00 0 -
    -
    1510  {
    -
    1511  -49 /*fromYearTiny (2051)*/,
    -
    1512  -49 /*toYearTiny (2051)*/,
    -
    1513  6 /*inMonth*/,
    -
    1514  0 /*onDayOfWeek*/,
    -
    1515  18 /*onDayOfMonth*/,
    -
    1516  8 /*atTimeCode*/,
    -
    1517  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1518  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1519  0 /*letterIndex ("")*/,
    -
    1520  },
    -
    1521  // Rule Morocco 2052 only - Apr 28 3:00 -1:00 -
    -
    1522  {
    -
    1523  -48 /*fromYearTiny (2052)*/,
    -
    1524  -48 /*toYearTiny (2052)*/,
    -
    1525  4 /*inMonth*/,
    -
    1526  0 /*onDayOfWeek*/,
    -
    1527  28 /*onDayOfMonth*/,
    -
    1528  12 /*atTimeCode*/,
    -
    1529  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1530  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1531  0 /*letterIndex ("")*/,
    -
    1532  },
    -
    1533  // Rule Morocco 2052 only - Jun 2 2:00 0 -
    -
    1534  {
    -
    1535  -48 /*fromYearTiny (2052)*/,
    -
    1536  -48 /*toYearTiny (2052)*/,
    -
    1537  6 /*inMonth*/,
    -
    1538  0 /*onDayOfWeek*/,
    -
    1539  2 /*onDayOfMonth*/,
    -
    1540  8 /*atTimeCode*/,
    -
    1541  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1542  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1543  0 /*letterIndex ("")*/,
    -
    1544  },
    -
    1545  // Rule Morocco 2053 only - Apr 13 3:00 -1:00 -
    -
    1546  {
    -
    1547  -47 /*fromYearTiny (2053)*/,
    -
    1548  -47 /*toYearTiny (2053)*/,
    -
    1549  4 /*inMonth*/,
    -
    1550  0 /*onDayOfWeek*/,
    -
    1551  13 /*onDayOfMonth*/,
    -
    1552  12 /*atTimeCode*/,
    -
    1553  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1554  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1555  0 /*letterIndex ("")*/,
    -
    1556  },
    -
    1557  // Rule Morocco 2053 only - May 25 2:00 0 -
    -
    1558  {
    -
    1559  -47 /*fromYearTiny (2053)*/,
    -
    1560  -47 /*toYearTiny (2053)*/,
    -
    1561  5 /*inMonth*/,
    -
    1562  0 /*onDayOfWeek*/,
    -
    1563  25 /*onDayOfMonth*/,
    -
    1564  8 /*atTimeCode*/,
    -
    1565  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1566  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1567  0 /*letterIndex ("")*/,
    -
    1568  },
    -
    1569  // Rule Morocco 2054 only - Apr 5 3:00 -1:00 -
    -
    1570  {
    -
    1571  -46 /*fromYearTiny (2054)*/,
    -
    1572  -46 /*toYearTiny (2054)*/,
    -
    1573  4 /*inMonth*/,
    -
    1574  0 /*onDayOfWeek*/,
    -
    1575  5 /*onDayOfMonth*/,
    -
    1576  12 /*atTimeCode*/,
    -
    1577  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1578  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1579  0 /*letterIndex ("")*/,
    -
    1580  },
    -
    1581  // Rule Morocco 2054 only - May 10 2:00 0 -
    -
    1582  {
    -
    1583  -46 /*fromYearTiny (2054)*/,
    -
    1584  -46 /*toYearTiny (2054)*/,
    -
    1585  5 /*inMonth*/,
    -
    1586  0 /*onDayOfWeek*/,
    -
    1587  10 /*onDayOfMonth*/,
    -
    1588  8 /*atTimeCode*/,
    -
    1589  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1590  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1591  0 /*letterIndex ("")*/,
    -
    1592  },
    -
    1593  // Rule Morocco 2055 only - Mar 28 3:00 -1:00 -
    -
    1594  {
    -
    1595  -45 /*fromYearTiny (2055)*/,
    -
    1596  -45 /*toYearTiny (2055)*/,
    -
    1597  3 /*inMonth*/,
    -
    1598  0 /*onDayOfWeek*/,
    -
    1599  28 /*onDayOfMonth*/,
    -
    1600  12 /*atTimeCode*/,
    -
    1601  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1602  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1603  0 /*letterIndex ("")*/,
    -
    1604  },
    -
    1605  // Rule Morocco 2055 only - May 2 2:00 0 -
    -
    1606  {
    -
    1607  -45 /*fromYearTiny (2055)*/,
    -
    1608  -45 /*toYearTiny (2055)*/,
    -
    1609  5 /*inMonth*/,
    -
    1610  0 /*onDayOfWeek*/,
    -
    1611  2 /*onDayOfMonth*/,
    -
    1612  8 /*atTimeCode*/,
    -
    1613  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1614  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1615  0 /*letterIndex ("")*/,
    -
    1616  },
    -
    1617  // Rule Morocco 2056 only - Mar 12 3:00 -1:00 -
    -
    1618  {
    -
    1619  -44 /*fromYearTiny (2056)*/,
    -
    1620  -44 /*toYearTiny (2056)*/,
    -
    1621  3 /*inMonth*/,
    -
    1622  0 /*onDayOfWeek*/,
    -
    1623  12 /*onDayOfMonth*/,
    -
    1624  12 /*atTimeCode*/,
    -
    1625  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1626  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1627  0 /*letterIndex ("")*/,
    -
    1628  },
    -
    1629  // Rule Morocco 2056 only - Apr 23 2:00 0 -
    -
    1630  {
    -
    1631  -44 /*fromYearTiny (2056)*/,
    -
    1632  -44 /*toYearTiny (2056)*/,
    -
    1633  4 /*inMonth*/,
    -
    1634  0 /*onDayOfWeek*/,
    -
    1635  23 /*onDayOfMonth*/,
    -
    1636  8 /*atTimeCode*/,
    -
    1637  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1638  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1639  0 /*letterIndex ("")*/,
    -
    1640  },
    -
    1641  // Rule Morocco 2057 only - Mar 4 3:00 -1:00 -
    -
    1642  {
    -
    1643  -43 /*fromYearTiny (2057)*/,
    -
    1644  -43 /*toYearTiny (2057)*/,
    -
    1645  3 /*inMonth*/,
    -
    1646  0 /*onDayOfWeek*/,
    -
    1647  4 /*onDayOfMonth*/,
    -
    1648  12 /*atTimeCode*/,
    -
    1649  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1650  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1651  0 /*letterIndex ("")*/,
    -
    1652  },
    -
    1653  // Rule Morocco 2057 only - Apr 8 2:00 0 -
    -
    1654  {
    -
    1655  -43 /*fromYearTiny (2057)*/,
    -
    1656  -43 /*toYearTiny (2057)*/,
    -
    1657  4 /*inMonth*/,
    -
    1658  0 /*onDayOfWeek*/,
    -
    1659  8 /*onDayOfMonth*/,
    -
    1660  8 /*atTimeCode*/,
    -
    1661  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1662  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1663  0 /*letterIndex ("")*/,
    -
    1664  },
    -
    1665  // Rule Morocco 2058 only - Feb 17 3:00 -1:00 -
    -
    1666  {
    -
    1667  -42 /*fromYearTiny (2058)*/,
    -
    1668  -42 /*toYearTiny (2058)*/,
    -
    1669  2 /*inMonth*/,
    -
    1670  0 /*onDayOfWeek*/,
    -
    1671  17 /*onDayOfMonth*/,
    -
    1672  12 /*atTimeCode*/,
    -
    1673  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1674  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1675  0 /*letterIndex ("")*/,
    -
    1676  },
    -
    1677  // Rule Morocco 2058 only - Mar 31 2:00 0 -
    -
    1678  {
    -
    1679  -42 /*fromYearTiny (2058)*/,
    -
    1680  -42 /*toYearTiny (2058)*/,
    -
    1681  3 /*inMonth*/,
    -
    1682  0 /*onDayOfWeek*/,
    -
    1683  31 /*onDayOfMonth*/,
    -
    1684  8 /*atTimeCode*/,
    -
    1685  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1686  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1687  0 /*letterIndex ("")*/,
    -
    1688  },
    -
    1689  // Rule Morocco 2059 only - Feb 9 3:00 -1:00 -
    -
    1690  {
    -
    1691  -41 /*fromYearTiny (2059)*/,
    -
    1692  -41 /*toYearTiny (2059)*/,
    -
    1693  2 /*inMonth*/,
    -
    1694  0 /*onDayOfWeek*/,
    -
    1695  9 /*onDayOfMonth*/,
    -
    1696  12 /*atTimeCode*/,
    -
    1697  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1698  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1699  0 /*letterIndex ("")*/,
    -
    1700  },
    -
    1701  // Rule Morocco 2059 only - Mar 23 2:00 0 -
    -
    1702  {
    -
    1703  -41 /*fromYearTiny (2059)*/,
    -
    1704  -41 /*toYearTiny (2059)*/,
    -
    1705  3 /*inMonth*/,
    -
    1706  0 /*onDayOfWeek*/,
    -
    1707  23 /*onDayOfMonth*/,
    -
    1708  8 /*atTimeCode*/,
    -
    1709  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1710  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1711  0 /*letterIndex ("")*/,
    -
    1712  },
    -
    1713  // Rule Morocco 2060 only - Feb 1 3:00 -1:00 -
    -
    1714  {
    -
    1715  -40 /*fromYearTiny (2060)*/,
    -
    1716  -40 /*toYearTiny (2060)*/,
    -
    1717  2 /*inMonth*/,
    -
    1718  0 /*onDayOfWeek*/,
    -
    1719  1 /*onDayOfMonth*/,
    -
    1720  12 /*atTimeCode*/,
    -
    1721  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1722  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1723  0 /*letterIndex ("")*/,
    -
    1724  },
    -
    1725  // Rule Morocco 2060 only - Mar 7 2:00 0 -
    -
    1726  {
    -
    1727  -40 /*fromYearTiny (2060)*/,
    -
    1728  -40 /*toYearTiny (2060)*/,
    -
    1729  3 /*inMonth*/,
    -
    1730  0 /*onDayOfWeek*/,
    -
    1731  7 /*onDayOfMonth*/,
    -
    1732  8 /*atTimeCode*/,
    -
    1733  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1734  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1735  0 /*letterIndex ("")*/,
    -
    1736  },
    -
    1737  // Rule Morocco 2061 only - Jan 16 3:00 -1:00 -
    -
    1738  {
    -
    1739  -39 /*fromYearTiny (2061)*/,
    -
    1740  -39 /*toYearTiny (2061)*/,
    -
    1741  1 /*inMonth*/,
    -
    1742  0 /*onDayOfWeek*/,
    -
    1743  16 /*onDayOfMonth*/,
    -
    1744  12 /*atTimeCode*/,
    -
    1745  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1746  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1747  0 /*letterIndex ("")*/,
    -
    1748  },
    -
    1749  // Rule Morocco 2061 only - Feb 27 2:00 0 -
    -
    1750  {
    -
    1751  -39 /*fromYearTiny (2061)*/,
    -
    1752  -39 /*toYearTiny (2061)*/,
    -
    1753  2 /*inMonth*/,
    -
    1754  0 /*onDayOfWeek*/,
    -
    1755  27 /*onDayOfMonth*/,
    -
    1756  8 /*atTimeCode*/,
    -
    1757  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1758  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1759  0 /*letterIndex ("")*/,
    -
    1760  },
    -
    1761  // Rule Morocco 2062 only - Jan 8 3:00 -1:00 -
    -
    1762  {
    -
    1763  -38 /*fromYearTiny (2062)*/,
    -
    1764  -38 /*toYearTiny (2062)*/,
    -
    1765  1 /*inMonth*/,
    -
    1766  0 /*onDayOfWeek*/,
    -
    1767  8 /*onDayOfMonth*/,
    -
    1768  12 /*atTimeCode*/,
    -
    1769  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1770  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1771  0 /*letterIndex ("")*/,
    -
    1772  },
    -
    1773  // Rule Morocco 2062 only - Feb 12 2:00 0 -
    -
    1774  {
    -
    1775  -38 /*fromYearTiny (2062)*/,
    -
    1776  -38 /*toYearTiny (2062)*/,
    -
    1777  2 /*inMonth*/,
    -
    1778  0 /*onDayOfWeek*/,
    -
    1779  12 /*onDayOfMonth*/,
    -
    1780  8 /*atTimeCode*/,
    -
    1781  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1782  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1783  0 /*letterIndex ("")*/,
    -
    1784  },
    -
    1785  // Rule Morocco 2062 only - Dec 31 3:00 -1:00 -
    -
    1786  {
    -
    1787  -38 /*fromYearTiny (2062)*/,
    -
    1788  -38 /*toYearTiny (2062)*/,
    -
    1789  12 /*inMonth*/,
    -
    1790  0 /*onDayOfWeek*/,
    -
    1791  31 /*onDayOfMonth*/,
    -
    1792  12 /*atTimeCode*/,
    -
    1793  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1794  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1795  0 /*letterIndex ("")*/,
    -
    1796  },
    -
    1797  // Rule Morocco 2063 only - Feb 4 2:00 0 -
    -
    1798  {
    -
    1799  -37 /*fromYearTiny (2063)*/,
    -
    1800  -37 /*toYearTiny (2063)*/,
    -
    1801  2 /*inMonth*/,
    -
    1802  0 /*onDayOfWeek*/,
    -
    1803  4 /*onDayOfMonth*/,
    -
    1804  8 /*atTimeCode*/,
    -
    1805  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1806  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1807  0 /*letterIndex ("")*/,
    -
    1808  },
    -
    1809  // Rule Morocco 2063 only - Dec 16 3:00 -1:00 -
    -
    1810  {
    -
    1811  -37 /*fromYearTiny (2063)*/,
    -
    1812  -37 /*toYearTiny (2063)*/,
    -
    1813  12 /*inMonth*/,
    -
    1814  0 /*onDayOfWeek*/,
    -
    1815  16 /*onDayOfMonth*/,
    -
    1816  12 /*atTimeCode*/,
    -
    1817  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1818  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1819  0 /*letterIndex ("")*/,
    -
    1820  },
    -
    1821  // Rule Morocco 2064 only - Jan 27 2:00 0 -
    -
    1822  {
    -
    1823  -36 /*fromYearTiny (2064)*/,
    -
    1824  -36 /*toYearTiny (2064)*/,
    -
    1825  1 /*inMonth*/,
    -
    1826  0 /*onDayOfWeek*/,
    -
    1827  27 /*onDayOfMonth*/,
    -
    1828  8 /*atTimeCode*/,
    -
    1829  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1830  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1831  0 /*letterIndex ("")*/,
    -
    1832  },
    -
    1833  // Rule Morocco 2064 only - Dec 7 3:00 -1:00 -
    -
    1834  {
    -
    1835  -36 /*fromYearTiny (2064)*/,
    -
    1836  -36 /*toYearTiny (2064)*/,
    -
    1837  12 /*inMonth*/,
    -
    1838  0 /*onDayOfWeek*/,
    -
    1839  7 /*onDayOfMonth*/,
    -
    1840  12 /*atTimeCode*/,
    -
    1841  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1842  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1843  0 /*letterIndex ("")*/,
    -
    1844  },
    -
    1845  // Rule Morocco 2065 only - Jan 11 2:00 0 -
    -
    1846  {
    -
    1847  -35 /*fromYearTiny (2065)*/,
    -
    1848  -35 /*toYearTiny (2065)*/,
    -
    1849  1 /*inMonth*/,
    -
    1850  0 /*onDayOfWeek*/,
    -
    1851  11 /*onDayOfMonth*/,
    -
    1852  8 /*atTimeCode*/,
    -
    1853  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1854  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1855  0 /*letterIndex ("")*/,
    -
    1856  },
    -
    1857  // Rule Morocco 2065 only - Nov 22 3:00 -1:00 -
    -
    1858  {
    -
    1859  -35 /*fromYearTiny (2065)*/,
    -
    1860  -35 /*toYearTiny (2065)*/,
    -
    1861  11 /*inMonth*/,
    -
    1862  0 /*onDayOfWeek*/,
    -
    1863  22 /*onDayOfMonth*/,
    -
    1864  12 /*atTimeCode*/,
    -
    1865  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1866  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1867  0 /*letterIndex ("")*/,
    -
    1868  },
    -
    1869  // Rule Morocco 2066 only - Jan 3 2:00 0 -
    -
    1870  {
    -
    1871  -34 /*fromYearTiny (2066)*/,
    -
    1872  -34 /*toYearTiny (2066)*/,
    -
    1873  1 /*inMonth*/,
    -
    1874  0 /*onDayOfWeek*/,
    -
    1875  3 /*onDayOfMonth*/,
    -
    1876  8 /*atTimeCode*/,
    -
    1877  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1878  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1879  0 /*letterIndex ("")*/,
    -
    1880  },
    -
    1881  // Rule Morocco 2066 only - Nov 14 3:00 -1:00 -
    -
    1882  {
    -
    1883  -34 /*fromYearTiny (2066)*/,
    -
    1884  -34 /*toYearTiny (2066)*/,
    -
    1885  11 /*inMonth*/,
    -
    1886  0 /*onDayOfWeek*/,
    -
    1887  14 /*onDayOfMonth*/,
    -
    1888  12 /*atTimeCode*/,
    -
    1889  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1890  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1891  0 /*letterIndex ("")*/,
    -
    1892  },
    -
    1893  // Rule Morocco 2066 only - Dec 26 2:00 0 -
    -
    1894  {
    -
    1895  -34 /*fromYearTiny (2066)*/,
    -
    1896  -34 /*toYearTiny (2066)*/,
    -
    1897  12 /*inMonth*/,
    -
    1898  0 /*onDayOfWeek*/,
    -
    1899  26 /*onDayOfMonth*/,
    -
    1900  8 /*atTimeCode*/,
    -
    1901  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1902  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1903  0 /*letterIndex ("")*/,
    -
    1904  },
    -
    1905  // Rule Morocco 2067 only - Nov 6 3:00 -1:00 -
    -
    1906  {
    -
    1907  -33 /*fromYearTiny (2067)*/,
    -
    1908  -33 /*toYearTiny (2067)*/,
    -
    1909  11 /*inMonth*/,
    -
    1910  0 /*onDayOfWeek*/,
    -
    1911  6 /*onDayOfMonth*/,
    -
    1912  12 /*atTimeCode*/,
    -
    1913  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1914  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1915  0 /*letterIndex ("")*/,
    -
    1916  },
    -
    1917  // Rule Morocco 2067 only - Dec 11 2:00 0 -
    -
    1918  {
    -
    1919  -33 /*fromYearTiny (2067)*/,
    -
    1920  -33 /*toYearTiny (2067)*/,
    -
    1921  12 /*inMonth*/,
    -
    1922  0 /*onDayOfWeek*/,
    -
    1923  11 /*onDayOfMonth*/,
    -
    1924  8 /*atTimeCode*/,
    -
    1925  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1926  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1927  0 /*letterIndex ("")*/,
    -
    1928  },
    -
    1929  // Rule Morocco 2068 only - Oct 21 3:00 -1:00 -
    -
    1930  {
    -
    1931  -32 /*fromYearTiny (2068)*/,
    -
    1932  -32 /*toYearTiny (2068)*/,
    -
    1933  10 /*inMonth*/,
    -
    1934  0 /*onDayOfWeek*/,
    -
    1935  21 /*onDayOfMonth*/,
    -
    1936  12 /*atTimeCode*/,
    -
    1937  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1938  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1939  0 /*letterIndex ("")*/,
    -
    1940  },
    -
    1941  // Rule Morocco 2068 only - Dec 2 2:00 0 -
    -
    1942  {
    -
    1943  -32 /*fromYearTiny (2068)*/,
    -
    1944  -32 /*toYearTiny (2068)*/,
    -
    1945  12 /*inMonth*/,
    -
    1946  0 /*onDayOfWeek*/,
    -
    1947  2 /*onDayOfMonth*/,
    -
    1948  8 /*atTimeCode*/,
    -
    1949  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1950  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1951  0 /*letterIndex ("")*/,
    -
    1952  },
    -
    1953  // Rule Morocco 2069 only - Oct 13 3:00 -1:00 -
    -
    1954  {
    -
    1955  -31 /*fromYearTiny (2069)*/,
    -
    1956  -31 /*toYearTiny (2069)*/,
    -
    1957  10 /*inMonth*/,
    -
    1958  0 /*onDayOfWeek*/,
    -
    1959  13 /*onDayOfMonth*/,
    -
    1960  12 /*atTimeCode*/,
    -
    1961  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1962  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1963  0 /*letterIndex ("")*/,
    -
    1964  },
    -
    1965  // Rule Morocco 2069 only - Nov 17 2:00 0 -
    -
    1966  {
    -
    1967  -31 /*fromYearTiny (2069)*/,
    -
    1968  -31 /*toYearTiny (2069)*/,
    -
    1969  11 /*inMonth*/,
    -
    1970  0 /*onDayOfWeek*/,
    -
    1971  17 /*onDayOfMonth*/,
    -
    1972  8 /*atTimeCode*/,
    -
    1973  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1974  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1975  0 /*letterIndex ("")*/,
    -
    1976  },
    -
    1977  // Rule Morocco 2070 only - Oct 5 3:00 -1:00 -
    -
    1978  {
    -
    1979  -30 /*fromYearTiny (2070)*/,
    -
    1980  -30 /*toYearTiny (2070)*/,
    -
    1981  10 /*inMonth*/,
    -
    1982  0 /*onDayOfWeek*/,
    -
    1983  5 /*onDayOfMonth*/,
    -
    1984  12 /*atTimeCode*/,
    -
    1985  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1986  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    1987  0 /*letterIndex ("")*/,
    -
    1988  },
    -
    1989  // Rule Morocco 2070 only - Nov 9 2:00 0 -
    -
    1990  {
    -
    1991  -30 /*fromYearTiny (2070)*/,
    -
    1992  -30 /*toYearTiny (2070)*/,
    -
    1993  11 /*inMonth*/,
    -
    1994  0 /*onDayOfWeek*/,
    -
    1995  9 /*onDayOfMonth*/,
    -
    1996  8 /*atTimeCode*/,
    -
    1997  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1998  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1999  0 /*letterIndex ("")*/,
    -
    2000  },
    -
    2001  // Rule Morocco 2071 only - Sep 20 3:00 -1:00 -
    -
    2002  {
    -
    2003  -29 /*fromYearTiny (2071)*/,
    -
    2004  -29 /*toYearTiny (2071)*/,
    -
    2005  9 /*inMonth*/,
    -
    2006  0 /*onDayOfWeek*/,
    -
    2007  20 /*onDayOfMonth*/,
    -
    2008  12 /*atTimeCode*/,
    -
    2009  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2010  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2011  0 /*letterIndex ("")*/,
    -
    2012  },
    -
    2013  // Rule Morocco 2071 only - Nov 1 2:00 0 -
    -
    2014  {
    -
    2015  -29 /*fromYearTiny (2071)*/,
    -
    2016  -29 /*toYearTiny (2071)*/,
    -
    2017  11 /*inMonth*/,
    -
    2018  0 /*onDayOfWeek*/,
    -
    2019  1 /*onDayOfMonth*/,
    -
    2020  8 /*atTimeCode*/,
    -
    2021  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2022  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2023  0 /*letterIndex ("")*/,
    -
    2024  },
    -
    2025  // Rule Morocco 2072 only - Sep 11 3:00 -1:00 -
    -
    2026  {
    -
    2027  -28 /*fromYearTiny (2072)*/,
    -
    2028  -28 /*toYearTiny (2072)*/,
    -
    2029  9 /*inMonth*/,
    -
    2030  0 /*onDayOfWeek*/,
    -
    2031  11 /*onDayOfMonth*/,
    -
    2032  12 /*atTimeCode*/,
    -
    2033  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2034  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2035  0 /*letterIndex ("")*/,
    -
    2036  },
    -
    2037  // Rule Morocco 2072 only - Oct 16 2:00 0 -
    -
    2038  {
    -
    2039  -28 /*fromYearTiny (2072)*/,
    -
    2040  -28 /*toYearTiny (2072)*/,
    -
    2041  10 /*inMonth*/,
    -
    2042  0 /*onDayOfWeek*/,
    -
    2043  16 /*onDayOfMonth*/,
    -
    2044  8 /*atTimeCode*/,
    -
    2045  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2046  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2047  0 /*letterIndex ("")*/,
    -
    2048  },
    -
    2049  // Rule Morocco 2073 only - Aug 27 3:00 -1:00 -
    -
    2050  {
    -
    2051  -27 /*fromYearTiny (2073)*/,
    -
    2052  -27 /*toYearTiny (2073)*/,
    -
    2053  8 /*inMonth*/,
    -
    2054  0 /*onDayOfWeek*/,
    -
    2055  27 /*onDayOfMonth*/,
    -
    2056  12 /*atTimeCode*/,
    -
    2057  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2058  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2059  0 /*letterIndex ("")*/,
    -
    2060  },
    -
    2061  // Rule Morocco 2073 only - Oct 8 2:00 0 -
    -
    2062  {
    -
    2063  -27 /*fromYearTiny (2073)*/,
    -
    2064  -27 /*toYearTiny (2073)*/,
    -
    2065  10 /*inMonth*/,
    -
    2066  0 /*onDayOfWeek*/,
    -
    2067  8 /*onDayOfMonth*/,
    -
    2068  8 /*atTimeCode*/,
    -
    2069  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2070  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2071  0 /*letterIndex ("")*/,
    -
    2072  },
    -
    2073  // Rule Morocco 2074 only - Aug 19 3:00 -1:00 -
    -
    2074  {
    -
    2075  -26 /*fromYearTiny (2074)*/,
    -
    2076  -26 /*toYearTiny (2074)*/,
    -
    2077  8 /*inMonth*/,
    -
    2078  0 /*onDayOfWeek*/,
    -
    2079  19 /*onDayOfMonth*/,
    -
    2080  12 /*atTimeCode*/,
    -
    2081  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2082  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2083  0 /*letterIndex ("")*/,
    -
    2084  },
    -
    2085  // Rule Morocco 2074 only - Sep 30 2:00 0 -
    -
    2086  {
    -
    2087  -26 /*fromYearTiny (2074)*/,
    -
    2088  -26 /*toYearTiny (2074)*/,
    -
    2089  9 /*inMonth*/,
    -
    2090  0 /*onDayOfWeek*/,
    -
    2091  30 /*onDayOfMonth*/,
    -
    2092  8 /*atTimeCode*/,
    -
    2093  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2094  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2095  0 /*letterIndex ("")*/,
    -
    2096  },
    -
    2097  // Rule Morocco 2075 only - Aug 11 3:00 -1:00 -
    -
    2098  {
    -
    2099  -25 /*fromYearTiny (2075)*/,
    -
    2100  -25 /*toYearTiny (2075)*/,
    -
    2101  8 /*inMonth*/,
    -
    2102  0 /*onDayOfWeek*/,
    -
    2103  11 /*onDayOfMonth*/,
    -
    2104  12 /*atTimeCode*/,
    -
    2105  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2106  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2107  0 /*letterIndex ("")*/,
    -
    2108  },
    -
    2109  // Rule Morocco 2075 only - Sep 15 2:00 0 -
    -
    2110  {
    -
    2111  -25 /*fromYearTiny (2075)*/,
    -
    2112  -25 /*toYearTiny (2075)*/,
    -
    2113  9 /*inMonth*/,
    -
    2114  0 /*onDayOfWeek*/,
    -
    2115  15 /*onDayOfMonth*/,
    -
    2116  8 /*atTimeCode*/,
    -
    2117  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2118  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2119  0 /*letterIndex ("")*/,
    -
    2120  },
    -
    2121  // Rule Morocco 2076 only - Jul 26 3:00 -1:00 -
    -
    2122  {
    -
    2123  -24 /*fromYearTiny (2076)*/,
    -
    2124  -24 /*toYearTiny (2076)*/,
    -
    2125  7 /*inMonth*/,
    -
    2126  0 /*onDayOfWeek*/,
    -
    2127  26 /*onDayOfMonth*/,
    -
    2128  12 /*atTimeCode*/,
    -
    2129  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2130  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2131  0 /*letterIndex ("")*/,
    -
    2132  },
    -
    2133  // Rule Morocco 2076 only - Sep 6 2:00 0 -
    -
    2134  {
    -
    2135  -24 /*fromYearTiny (2076)*/,
    -
    2136  -24 /*toYearTiny (2076)*/,
    -
    2137  9 /*inMonth*/,
    -
    2138  0 /*onDayOfWeek*/,
    -
    2139  6 /*onDayOfMonth*/,
    -
    2140  8 /*atTimeCode*/,
    -
    2141  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2142  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2143  0 /*letterIndex ("")*/,
    -
    2144  },
    -
    2145  // Rule Morocco 2077 only - Jul 18 3:00 -1:00 -
    -
    2146  {
    -
    2147  -23 /*fromYearTiny (2077)*/,
    -
    2148  -23 /*toYearTiny (2077)*/,
    -
    2149  7 /*inMonth*/,
    -
    2150  0 /*onDayOfWeek*/,
    -
    2151  18 /*onDayOfMonth*/,
    -
    2152  12 /*atTimeCode*/,
    -
    2153  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2154  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2155  0 /*letterIndex ("")*/,
    -
    2156  },
    -
    2157  // Rule Morocco 2077 only - Aug 22 2:00 0 -
    -
    2158  {
    -
    2159  -23 /*fromYearTiny (2077)*/,
    -
    2160  -23 /*toYearTiny (2077)*/,
    -
    2161  8 /*inMonth*/,
    -
    2162  0 /*onDayOfWeek*/,
    -
    2163  22 /*onDayOfMonth*/,
    -
    2164  8 /*atTimeCode*/,
    -
    2165  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2166  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2167  0 /*letterIndex ("")*/,
    -
    2168  },
    -
    2169  // Rule Morocco 2078 only - Jul 10 3:00 -1:00 -
    -
    2170  {
    -
    2171  -22 /*fromYearTiny (2078)*/,
    -
    2172  -22 /*toYearTiny (2078)*/,
    -
    2173  7 /*inMonth*/,
    -
    2174  0 /*onDayOfWeek*/,
    -
    2175  10 /*onDayOfMonth*/,
    -
    2176  12 /*atTimeCode*/,
    -
    2177  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2178  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2179  0 /*letterIndex ("")*/,
    -
    2180  },
    -
    2181  // Rule Morocco 2078 only - Aug 14 2:00 0 -
    -
    2182  {
    -
    2183  -22 /*fromYearTiny (2078)*/,
    -
    2184  -22 /*toYearTiny (2078)*/,
    -
    2185  8 /*inMonth*/,
    -
    2186  0 /*onDayOfWeek*/,
    -
    2187  14 /*onDayOfMonth*/,
    -
    2188  8 /*atTimeCode*/,
    -
    2189  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2190  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2191  0 /*letterIndex ("")*/,
    -
    2192  },
    -
    2193  // Rule Morocco 2079 only - Jun 25 3:00 -1:00 -
    -
    2194  {
    -
    2195  -21 /*fromYearTiny (2079)*/,
    -
    2196  -21 /*toYearTiny (2079)*/,
    -
    2197  6 /*inMonth*/,
    -
    2198  0 /*onDayOfWeek*/,
    -
    2199  25 /*onDayOfMonth*/,
    -
    2200  12 /*atTimeCode*/,
    -
    2201  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2202  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2203  0 /*letterIndex ("")*/,
    -
    2204  },
    -
    2205  // Rule Morocco 2079 only - Aug 6 2:00 0 -
    -
    2206  {
    -
    2207  -21 /*fromYearTiny (2079)*/,
    -
    2208  -21 /*toYearTiny (2079)*/,
    -
    2209  8 /*inMonth*/,
    -
    2210  0 /*onDayOfWeek*/,
    -
    2211  6 /*onDayOfMonth*/,
    -
    2212  8 /*atTimeCode*/,
    -
    2213  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2214  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2215  0 /*letterIndex ("")*/,
    -
    2216  },
    -
    2217  // Rule Morocco 2080 only - Jun 16 3:00 -1:00 -
    -
    2218  {
    -
    2219  -20 /*fromYearTiny (2080)*/,
    -
    2220  -20 /*toYearTiny (2080)*/,
    -
    2221  6 /*inMonth*/,
    -
    2222  0 /*onDayOfWeek*/,
    -
    2223  16 /*onDayOfMonth*/,
    -
    2224  12 /*atTimeCode*/,
    -
    2225  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2226  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2227  0 /*letterIndex ("")*/,
    -
    2228  },
    -
    2229  // Rule Morocco 2080 only - Jul 21 2:00 0 -
    -
    2230  {
    -
    2231  -20 /*fromYearTiny (2080)*/,
    -
    2232  -20 /*toYearTiny (2080)*/,
    -
    2233  7 /*inMonth*/,
    -
    2234  0 /*onDayOfWeek*/,
    -
    2235  21 /*onDayOfMonth*/,
    -
    2236  8 /*atTimeCode*/,
    -
    2237  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2238  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2239  0 /*letterIndex ("")*/,
    -
    2240  },
    -
    2241  // Rule Morocco 2081 only - Jun 1 3:00 -1:00 -
    -
    2242  {
    -
    2243  -19 /*fromYearTiny (2081)*/,
    -
    2244  -19 /*toYearTiny (2081)*/,
    -
    2245  6 /*inMonth*/,
    -
    2246  0 /*onDayOfWeek*/,
    -
    2247  1 /*onDayOfMonth*/,
    -
    2248  12 /*atTimeCode*/,
    -
    2249  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2250  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2251  0 /*letterIndex ("")*/,
    -
    2252  },
    -
    2253  // Rule Morocco 2081 only - Jul 13 2:00 0 -
    -
    2254  {
    -
    2255  -19 /*fromYearTiny (2081)*/,
    -
    2256  -19 /*toYearTiny (2081)*/,
    -
    2257  7 /*inMonth*/,
    -
    2258  0 /*onDayOfWeek*/,
    -
    2259  13 /*onDayOfMonth*/,
    -
    2260  8 /*atTimeCode*/,
    -
    2261  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2262  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2263  0 /*letterIndex ("")*/,
    -
    2264  },
    -
    2265  // Rule Morocco 2082 only - May 24 3:00 -1:00 -
    -
    2266  {
    -
    2267  -18 /*fromYearTiny (2082)*/,
    -
    2268  -18 /*toYearTiny (2082)*/,
    -
    2269  5 /*inMonth*/,
    -
    2270  0 /*onDayOfWeek*/,
    -
    2271  24 /*onDayOfMonth*/,
    -
    2272  12 /*atTimeCode*/,
    -
    2273  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2274  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2275  0 /*letterIndex ("")*/,
    -
    2276  },
    -
    2277  // Rule Morocco 2082 only - Jun 28 2:00 0 -
    -
    2278  {
    -
    2279  -18 /*fromYearTiny (2082)*/,
    -
    2280  -18 /*toYearTiny (2082)*/,
    -
    2281  6 /*inMonth*/,
    -
    2282  0 /*onDayOfWeek*/,
    -
    2283  28 /*onDayOfMonth*/,
    -
    2284  8 /*atTimeCode*/,
    -
    2285  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2286  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2287  0 /*letterIndex ("")*/,
    -
    2288  },
    -
    2289  // Rule Morocco 2083 only - May 16 3:00 -1:00 -
    -
    2290  {
    -
    2291  -17 /*fromYearTiny (2083)*/,
    -
    2292  -17 /*toYearTiny (2083)*/,
    -
    2293  5 /*inMonth*/,
    -
    2294  0 /*onDayOfWeek*/,
    -
    2295  16 /*onDayOfMonth*/,
    -
    2296  12 /*atTimeCode*/,
    -
    2297  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2298  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2299  0 /*letterIndex ("")*/,
    -
    2300  },
    -
    2301  // Rule Morocco 2083 only - Jun 20 2:00 0 -
    -
    2302  {
    -
    2303  -17 /*fromYearTiny (2083)*/,
    -
    2304  -17 /*toYearTiny (2083)*/,
    -
    2305  6 /*inMonth*/,
    -
    2306  0 /*onDayOfWeek*/,
    -
    2307  20 /*onDayOfMonth*/,
    -
    2308  8 /*atTimeCode*/,
    -
    2309  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2310  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2311  0 /*letterIndex ("")*/,
    -
    2312  },
    -
    2313  // Rule Morocco 2084 only - Apr 30 3:00 -1:00 -
    -
    2314  {
    -
    2315  -16 /*fromYearTiny (2084)*/,
    -
    2316  -16 /*toYearTiny (2084)*/,
    -
    2317  4 /*inMonth*/,
    -
    2318  0 /*onDayOfWeek*/,
    -
    2319  30 /*onDayOfMonth*/,
    -
    2320  12 /*atTimeCode*/,
    -
    2321  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2322  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2323  0 /*letterIndex ("")*/,
    -
    2324  },
    -
    2325  // Rule Morocco 2084 only - Jun 11 2:00 0 -
    -
    2326  {
    -
    2327  -16 /*fromYearTiny (2084)*/,
    -
    2328  -16 /*toYearTiny (2084)*/,
    -
    2329  6 /*inMonth*/,
    -
    2330  0 /*onDayOfWeek*/,
    -
    2331  11 /*onDayOfMonth*/,
    -
    2332  8 /*atTimeCode*/,
    -
    2333  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2334  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2335  0 /*letterIndex ("")*/,
    -
    2336  },
    -
    2337  // Rule Morocco 2085 only - Apr 22 3:00 -1:00 -
    -
    2338  {
    -
    2339  -15 /*fromYearTiny (2085)*/,
    -
    2340  -15 /*toYearTiny (2085)*/,
    -
    2341  4 /*inMonth*/,
    -
    2342  0 /*onDayOfWeek*/,
    -
    2343  22 /*onDayOfMonth*/,
    -
    2344  12 /*atTimeCode*/,
    -
    2345  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2346  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2347  0 /*letterIndex ("")*/,
    -
    2348  },
    -
    2349  // Rule Morocco 2085 only - May 27 2:00 0 -
    -
    2350  {
    -
    2351  -15 /*fromYearTiny (2085)*/,
    -
    2352  -15 /*toYearTiny (2085)*/,
    -
    2353  5 /*inMonth*/,
    -
    2354  0 /*onDayOfWeek*/,
    -
    2355  27 /*onDayOfMonth*/,
    -
    2356  8 /*atTimeCode*/,
    -
    2357  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2358  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2359  0 /*letterIndex ("")*/,
    -
    2360  },
    -
    2361  // Rule Morocco 2086 only - Apr 14 3:00 -1:00 -
    -
    2362  {
    -
    2363  -14 /*fromYearTiny (2086)*/,
    -
    2364  -14 /*toYearTiny (2086)*/,
    -
    2365  4 /*inMonth*/,
    -
    2366  0 /*onDayOfWeek*/,
    -
    2367  14 /*onDayOfMonth*/,
    -
    2368  12 /*atTimeCode*/,
    -
    2369  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2370  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2371  0 /*letterIndex ("")*/,
    -
    2372  },
    -
    2373  // Rule Morocco 2086 only - May 19 2:00 0 -
    -
    2374  {
    -
    2375  -14 /*fromYearTiny (2086)*/,
    -
    2376  -14 /*toYearTiny (2086)*/,
    -
    2377  5 /*inMonth*/,
    -
    2378  0 /*onDayOfWeek*/,
    -
    2379  19 /*onDayOfMonth*/,
    -
    2380  8 /*atTimeCode*/,
    -
    2381  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2382  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2383  0 /*letterIndex ("")*/,
    -
    2384  },
    -
    2385  // Rule Morocco 2087 only - Mar 30 3:00 -1:00 -
    -
    2386  {
    -
    2387  -13 /*fromYearTiny (2087)*/,
    -
    2388  -13 /*toYearTiny (2087)*/,
    -
    2389  3 /*inMonth*/,
    -
    2390  0 /*onDayOfWeek*/,
    -
    2391  30 /*onDayOfMonth*/,
    -
    2392  12 /*atTimeCode*/,
    -
    2393  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2394  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2395  0 /*letterIndex ("")*/,
    -
    2396  },
    -
    2397  // Rule Morocco 2087 only - May 11 2:00 0 -
    -
    2398  {
    -
    2399  -13 /*fromYearTiny (2087)*/,
    -
    2400  -13 /*toYearTiny (2087)*/,
    -
    2401  5 /*inMonth*/,
    -
    2402  0 /*onDayOfWeek*/,
    -
    2403  11 /*onDayOfMonth*/,
    -
    2404  8 /*atTimeCode*/,
    -
    2405  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2406  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2407  0 /*letterIndex ("")*/,
    -
    2408  },
    -
    2409 
    -
    2410 };
    -
    2411 
    -
    2412 const extended::Info::ZonePolicy kZonePolicyMorocco ACE_TIME_PROGMEM = {
    -
    2413  kZoneRulesMorocco /*rules*/,
    -
    2414  170 /*numRules*/,
    -
    2415 };
    -
    2416 
    -
    2417 //---------------------------------------------------------------------------
    -
    2418 // Policy name: Namibia
    -
    2419 // Rules: 4
    -
    2420 //---------------------------------------------------------------------------
    -
    2421 
    -
    2422 static const extended::Info::ZoneRule kZoneRulesNamibia[] ACE_TIME_PROGMEM = {
    -
    2423  // Anchor: Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
    -
    2424  {
    -
    2425  -127 /*fromYearTiny (-32767)*/,
    -
    2426  -127 /*toYearTiny (-32767)*/,
    -
    2427  1 /*inMonth*/,
    -
    2428  0 /*onDayOfWeek*/,
    -
    2429  1 /*onDayOfMonth*/,
    -
    2430  0 /*atTimeCode*/,
    -
    2431  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2432  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2433  1 /*letterIndex ("CAT")*/,
    -
    2434  },
    -
    2435  // Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
    -
    2436  {
    -
    2437  -106 /*fromYearTiny (1994)*/,
    -
    2438  -106 /*toYearTiny (1994)*/,
    -
    2439  3 /*inMonth*/,
    -
    2440  0 /*onDayOfWeek*/,
    -
    2441  21 /*onDayOfMonth*/,
    -
    2442  0 /*atTimeCode*/,
    -
    2443  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2444  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2445  4 /*letterIndex ("WAT")*/,
    -
    2446  },
    -
    2447  // Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
    -
    2448  {
    -
    2449  -106 /*fromYearTiny (1994)*/,
    -
    2450  -83 /*toYearTiny (2017)*/,
    -
    2451  9 /*inMonth*/,
    -
    2452  7 /*onDayOfWeek*/,
    -
    2453  1 /*onDayOfMonth*/,
    -
    2454  8 /*atTimeCode*/,
    -
    2455  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2456  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2457  1 /*letterIndex ("CAT")*/,
    -
    2458  },
    -
    2459  // Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT
    -
    2460  {
    -
    2461  -105 /*fromYearTiny (1995)*/,
    -
    2462  -83 /*toYearTiny (2017)*/,
    -
    2463  4 /*inMonth*/,
    -
    2464  7 /*onDayOfWeek*/,
    -
    2465  1 /*onDayOfMonth*/,
    -
    2466  8 /*atTimeCode*/,
    -
    2467  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2468  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2469  4 /*letterIndex ("WAT")*/,
    -
    2470  },
    -
    2471 
    -
    2472 };
    -
    2473 
    -
    2474 const extended::Info::ZonePolicy kZonePolicyNamibia ACE_TIME_PROGMEM = {
    -
    2475  kZoneRulesNamibia /*rules*/,
    -
    2476  4 /*numRules*/,
    -
    2477 };
    -
    2478 
    -
    2479 //---------------------------------------------------------------------------
    -
    2480 // Policy name: Port
    -
    2481 // Rules: 6
    -
    2482 //---------------------------------------------------------------------------
    -
    2483 
    -
    2484 static const extended::Info::ZoneRule kZoneRulesPort[] ACE_TIME_PROGMEM = {
    -
    2485  // Anchor: Rule Port 1978 only - Oct 1 1:00s 0 -
    -
    2486  {
    -
    2487  -127 /*fromYearTiny (-32767)*/,
    -
    2488  -127 /*toYearTiny (-32767)*/,
    -
    2489  1 /*inMonth*/,
    -
    2490  0 /*onDayOfWeek*/,
    -
    2491  1 /*onDayOfMonth*/,
    -
    2492  0 /*atTimeCode*/,
    -
    2493  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2494  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2495  0 /*letterIndex ("")*/,
    -
    2496  },
    -
    2497  // Rule Port 1978 1980 - Apr Sun>=1 1:00s 1:00 S
    -
    2498  {
    -
    2499  -122 /*fromYearTiny (1978)*/,
    -
    2500  -120 /*toYearTiny (1980)*/,
    -
    2501  4 /*inMonth*/,
    -
    2502  7 /*onDayOfWeek*/,
    -
    2503  1 /*onDayOfMonth*/,
    -
    2504  4 /*atTimeCode*/,
    -
    2505  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2506  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2507  3 /*letterIndex ("S")*/,
    -
    2508  },
    -
    2509  // Rule Port 1978 only - Oct 1 1:00s 0 -
    -
    2510  {
    -
    2511  -122 /*fromYearTiny (1978)*/,
    -
    2512  -122 /*toYearTiny (1978)*/,
    -
    2513  10 /*inMonth*/,
    -
    2514  0 /*onDayOfWeek*/,
    -
    2515  1 /*onDayOfMonth*/,
    -
    2516  4 /*atTimeCode*/,
    -
    2517  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2518  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2519  0 /*letterIndex ("")*/,
    -
    2520  },
    -
    2521  // Rule Port 1979 1980 - Sep lastSun 1:00s 0 -
    -
    2522  {
    -
    2523  -121 /*fromYearTiny (1979)*/,
    -
    2524  -120 /*toYearTiny (1980)*/,
    -
    2525  9 /*inMonth*/,
    -
    2526  7 /*onDayOfWeek*/,
    -
    2527  0 /*onDayOfMonth*/,
    -
    2528  4 /*atTimeCode*/,
    -
    2529  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2530  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2531  0 /*letterIndex ("")*/,
    -
    2532  },
    -
    2533  // Rule Port 1981 1986 - Mar lastSun 0:00s 1:00 S
    -
    2534  {
    -
    2535  -119 /*fromYearTiny (1981)*/,
    -
    2536  -114 /*toYearTiny (1986)*/,
    -
    2537  3 /*inMonth*/,
    -
    2538  7 /*onDayOfWeek*/,
    -
    2539  0 /*onDayOfMonth*/,
    -
    2540  0 /*atTimeCode*/,
    -
    2541  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2542  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2543  3 /*letterIndex ("S")*/,
    -
    2544  },
    -
    2545  // Rule Port 1981 1985 - Sep lastSun 0:00s 0 -
    -
    2546  {
    -
    2547  -119 /*fromYearTiny (1981)*/,
    -
    2548  -115 /*toYearTiny (1985)*/,
    -
    2549  9 /*inMonth*/,
    -
    2550  7 /*onDayOfWeek*/,
    -
    2551  0 /*onDayOfMonth*/,
    -
    2552  0 /*atTimeCode*/,
    -
    2553  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2554  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2555  0 /*letterIndex ("")*/,
    -
    2556  },
    -
    2557 
    -
    2558 };
    -
    2559 
    -
    2560 const extended::Info::ZonePolicy kZonePolicyPort ACE_TIME_PROGMEM = {
    -
    2561  kZoneRulesPort /*rules*/,
    -
    2562  6 /*numRules*/,
    -
    2563 };
    -
    2564 
    -
    2565 //---------------------------------------------------------------------------
    -
    2566 // Policy name: US
    -
    2567 // Rules: 7
    -
    2568 //---------------------------------------------------------------------------
    -
    2569 
    -
    2570 static const extended::Info::ZoneRule kZoneRulesUS[] ACE_TIME_PROGMEM = {
    -
    2571  // Anchor: Rule US 1967 2006 - Oct lastSun 2:00 0 S
    -
    2572  {
    -
    2573  -127 /*fromYearTiny (-32767)*/,
    -
    2574  -127 /*toYearTiny (-32767)*/,
    -
    2575  1 /*inMonth*/,
    -
    2576  0 /*onDayOfWeek*/,
    -
    2577  1 /*onDayOfMonth*/,
    -
    2578  0 /*atTimeCode*/,
    -
    2579  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2580  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2581  3 /*letterIndex ("S")*/,
    -
    2582  },
    -
    2583  // Rule US 1967 2006 - Oct lastSun 2:00 0 S
    -
    2584  {
    -
    2585  -127 /*fromYearTiny (1967)*/,
    -
    2586  -94 /*toYearTiny (2006)*/,
    -
    2587  10 /*inMonth*/,
    -
    2588  7 /*onDayOfWeek*/,
    -
    2589  0 /*onDayOfMonth*/,
    -
    2590  8 /*atTimeCode*/,
    -
    2591  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2592  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2593  3 /*letterIndex ("S")*/,
    -
    2594  },
    -
    2595  // Rule US 1975 only - Feb lastSun 2:00 1:00 D
    -
    2596  {
    -
    2597  -125 /*fromYearTiny (1975)*/,
    -
    2598  -125 /*toYearTiny (1975)*/,
    -
    2599  2 /*inMonth*/,
    -
    2600  7 /*onDayOfWeek*/,
    -
    2601  0 /*onDayOfMonth*/,
    -
    2602  8 /*atTimeCode*/,
    -
    2603  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2604  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2605  2 /*letterIndex ("D")*/,
    -
    2606  },
    -
    2607  // Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
    -
    2608  {
    -
    2609  -124 /*fromYearTiny (1976)*/,
    -
    2610  -114 /*toYearTiny (1986)*/,
    -
    2611  4 /*inMonth*/,
    -
    2612  7 /*onDayOfWeek*/,
    -
    2613  0 /*onDayOfMonth*/,
    -
    2614  8 /*atTimeCode*/,
    -
    2615  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2616  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2617  2 /*letterIndex ("D")*/,
    -
    2618  },
    -
    2619  // Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    2620  {
    -
    2621  -113 /*fromYearTiny (1987)*/,
    -
    2622  -94 /*toYearTiny (2006)*/,
    -
    2623  4 /*inMonth*/,
    -
    2624  7 /*onDayOfWeek*/,
    -
    2625  1 /*onDayOfMonth*/,
    -
    2626  8 /*atTimeCode*/,
    -
    2627  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2628  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2629  2 /*letterIndex ("D")*/,
    -
    2630  },
    -
    2631  // Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    2632  {
    -
    2633  -93 /*fromYearTiny (2007)*/,
    -
    2634  126 /*toYearTiny (32766)*/,
    -
    2635  3 /*inMonth*/,
    -
    2636  7 /*onDayOfWeek*/,
    -
    2637  8 /*onDayOfMonth*/,
    -
    2638  8 /*atTimeCode*/,
    -
    2639  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2640  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2641  2 /*letterIndex ("D")*/,
    -
    2642  },
    -
    2643  // Rule US 2007 max - Nov Sun>=1 2:00 0 S
    -
    2644  {
    -
    2645  -93 /*fromYearTiny (2007)*/,
    -
    2646  126 /*toYearTiny (32766)*/,
    -
    2647  11 /*inMonth*/,
    -
    2648  7 /*onDayOfWeek*/,
    -
    2649  1 /*onDayOfMonth*/,
    -
    2650  8 /*atTimeCode*/,
    -
    2651  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2652  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2653  3 /*letterIndex ("S")*/,
    -
    2654  },
    -
    2655 
    -
    2656 };
    -
    2657 
    -
    2658 const extended::Info::ZonePolicy kZonePolicyUS ACE_TIME_PROGMEM = {
    -
    2659  kZoneRulesUS /*rules*/,
    -
    2660  7 /*numRules*/,
    -
    2661 };
    -
    2662 
    -
    2663 //---------------------------------------------------------------------------
    -
    2664 // Policy name: Vanc
    -
    2665 // Rules: 4
    -
    2666 //---------------------------------------------------------------------------
    -
    2667 
    -
    2668 static const extended::Info::ZoneRule kZoneRulesVanc[] ACE_TIME_PROGMEM = {
    -
    2669  // Anchor: Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S
    -
    2670  {
    -
    2671  -127 /*fromYearTiny (-32767)*/,
    -
    2672  -127 /*toYearTiny (-32767)*/,
    -
    2673  1 /*inMonth*/,
    -
    2674  0 /*onDayOfWeek*/,
    -
    2675  1 /*onDayOfMonth*/,
    -
    2676  0 /*atTimeCode*/,
    -
    2677  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2678  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2679  3 /*letterIndex ("S")*/,
    -
    2680  },
    -
    2681  // Rule Vanc 1946 1986 - Apr lastSun 2:00 1:00 D
    -
    2682  {
    -
    2683  -127 /*fromYearTiny (1946)*/,
    -
    2684  -114 /*toYearTiny (1986)*/,
    -
    2685  4 /*inMonth*/,
    -
    2686  7 /*onDayOfWeek*/,
    -
    2687  0 /*onDayOfMonth*/,
    -
    2688  8 /*atTimeCode*/,
    -
    2689  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2690  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2691  2 /*letterIndex ("D")*/,
    -
    2692  },
    -
    2693  // Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S
    -
    2694  {
    -
    2695  -127 /*fromYearTiny (1947)*/,
    -
    2696  -127 /*toYearTiny (1961)*/,
    -
    2697  9 /*inMonth*/,
    -
    2698  7 /*onDayOfWeek*/,
    -
    2699  0 /*onDayOfMonth*/,
    -
    2700  8 /*atTimeCode*/,
    -
    2701  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2702  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2703  3 /*letterIndex ("S")*/,
    -
    2704  },
    -
    2705  // Rule Vanc 1962 2006 - Oct lastSun 2:00 0 S
    -
    2706  {
    -
    2707  -127 /*fromYearTiny (1962)*/,
    -
    2708  -94 /*toYearTiny (2006)*/,
    -
    2709  10 /*inMonth*/,
    -
    2710  7 /*onDayOfWeek*/,
    -
    2711  0 /*onDayOfMonth*/,
    -
    2712  8 /*atTimeCode*/,
    -
    2713  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2714  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2715  3 /*letterIndex ("S")*/,
    -
    2716  },
    -
    2717 
    -
    2718 };
    -
    2719 
    -
    2720 const extended::Info::ZonePolicy kZonePolicyVanc ACE_TIME_PROGMEM = {
    -
    2721  kZoneRulesVanc /*rules*/,
    -
    2722  4 /*numRules*/,
    -
    2723 };
    -
    2724 
    -
    2725 //---------------------------------------------------------------------------
    -
    2726 // Policy name: WS
    -
    2727 // Rules: 6
    -
    2728 //---------------------------------------------------------------------------
    -
    2729 
    -
    2730 static const extended::Info::ZoneRule kZoneRulesWS[] ACE_TIME_PROGMEM = {
    -
    2731  // Anchor: Rule WS 2011 only - Apr Sat>=1 4:00 0 -
    -
    2732  {
    -
    2733  -127 /*fromYearTiny (-32767)*/,
    -
    2734  -127 /*toYearTiny (-32767)*/,
    -
    2735  1 /*inMonth*/,
    -
    2736  0 /*onDayOfWeek*/,
    -
    2737  1 /*onDayOfMonth*/,
    -
    2738  0 /*atTimeCode*/,
    -
    2739  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2740  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2741  0 /*letterIndex ("")*/,
    -
    2742  },
    -
    2743  // Rule WS 2010 only - Sep lastSun 0:00 1 -
    -
    2744  {
    -
    2745  -90 /*fromYearTiny (2010)*/,
    -
    2746  -90 /*toYearTiny (2010)*/,
    -
    2747  9 /*inMonth*/,
    -
    2748  7 /*onDayOfWeek*/,
    -
    2749  0 /*onDayOfMonth*/,
    -
    2750  0 /*atTimeCode*/,
    -
    2751  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2752  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2753  0 /*letterIndex ("")*/,
    -
    2754  },
    -
    2755  // Rule WS 2011 only - Apr Sat>=1 4:00 0 -
    -
    2756  {
    -
    2757  -89 /*fromYearTiny (2011)*/,
    -
    2758  -89 /*toYearTiny (2011)*/,
    -
    2759  4 /*inMonth*/,
    -
    2760  6 /*onDayOfWeek*/,
    -
    2761  1 /*onDayOfMonth*/,
    -
    2762  16 /*atTimeCode*/,
    -
    2763  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2764  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2765  0 /*letterIndex ("")*/,
    -
    2766  },
    -
    2767  // Rule WS 2011 only - Sep lastSat 3:00 1 -
    -
    2768  {
    -
    2769  -89 /*fromYearTiny (2011)*/,
    -
    2770  -89 /*toYearTiny (2011)*/,
    -
    2771  9 /*inMonth*/,
    -
    2772  6 /*onDayOfWeek*/,
    -
    2773  0 /*onDayOfMonth*/,
    -
    2774  12 /*atTimeCode*/,
    -
    2775  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2776  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2777  0 /*letterIndex ("")*/,
    -
    2778  },
    -
    2779  // Rule WS 2012 2021 - Apr Sun>=1 4:00 0 -
    -
    2780  {
    -
    2781  -88 /*fromYearTiny (2012)*/,
    -
    2782  -79 /*toYearTiny (2021)*/,
    -
    2783  4 /*inMonth*/,
    -
    2784  7 /*onDayOfWeek*/,
    -
    2785  1 /*onDayOfMonth*/,
    -
    2786  16 /*atTimeCode*/,
    -
    2787  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2788  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2789  0 /*letterIndex ("")*/,
    -
    2790  },
    -
    2791  // Rule WS 2012 2020 - Sep lastSun 3:00 1 -
    -
    2792  {
    -
    2793  -88 /*fromYearTiny (2012)*/,
    -
    2794  -80 /*toYearTiny (2020)*/,
    -
    2795  9 /*inMonth*/,
    -
    2796  7 /*onDayOfWeek*/,
    -
    2797  0 /*onDayOfMonth*/,
    -
    2798  12 /*atTimeCode*/,
    -
    2799  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2800  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2801  0 /*letterIndex ("")*/,
    -
    2802  },
    -
    2803 
    -
    2804 };
    -
    2805 
    -
    2806 const extended::Info::ZonePolicy kZonePolicyWS ACE_TIME_PROGMEM = {
    -
    2807  kZoneRulesWS /*rules*/,
    -
    2808  6 /*numRules*/,
    -
    2809 };
    -
    2810 
    -
    2811 //---------------------------------------------------------------------------
    -
    2812 // Policy name: Winn
    -
    2813 // Rules: 5
    -
    2814 //---------------------------------------------------------------------------
    -
    2815 
    -
    2816 static const extended::Info::ZoneRule kZoneRulesWinn[] ACE_TIME_PROGMEM = {
    -
    2817  // Anchor: Rule Winn 1963 only - Sep 22 2:00 0 S
    -
    2818  {
    -
    2819  -127 /*fromYearTiny (-32767)*/,
    -
    2820  -127 /*toYearTiny (-32767)*/,
    -
    2821  1 /*inMonth*/,
    -
    2822  0 /*onDayOfWeek*/,
    -
    2823  1 /*onDayOfMonth*/,
    -
    2824  0 /*atTimeCode*/,
    -
    2825  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2826  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2827  3 /*letterIndex ("S")*/,
    -
    2828  },
    -
    2829  // Rule Winn 1963 only - Sep 22 2:00 0 S
    -
    2830  {
    -
    2831  -127 /*fromYearTiny (1963)*/,
    -
    2832  -127 /*toYearTiny (1963)*/,
    -
    2833  9 /*inMonth*/,
    -
    2834  0 /*onDayOfWeek*/,
    -
    2835  22 /*onDayOfMonth*/,
    -
    2836  8 /*atTimeCode*/,
    -
    2837  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2838  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2839  3 /*letterIndex ("S")*/,
    -
    2840  },
    -
    2841  // Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D
    -
    2842  {
    -
    2843  -127 /*fromYearTiny (1966)*/,
    -
    2844  -114 /*toYearTiny (1986)*/,
    -
    2845  4 /*inMonth*/,
    -
    2846  7 /*onDayOfWeek*/,
    -
    2847  0 /*onDayOfMonth*/,
    -
    2848  8 /*atTimeCode*/,
    -
    2849  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2850  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2851  2 /*letterIndex ("D")*/,
    -
    2852  },
    -
    2853  // Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
    -
    2854  {
    -
    2855  -127 /*fromYearTiny (1966)*/,
    -
    2856  -95 /*toYearTiny (2005)*/,
    -
    2857  10 /*inMonth*/,
    -
    2858  7 /*onDayOfWeek*/,
    -
    2859  0 /*onDayOfMonth*/,
    -
    2860  8 /*atTimeCode*/,
    -
    2861  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2862  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2863  3 /*letterIndex ("S")*/,
    -
    2864  },
    -
    2865  // Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D
    -
    2866  {
    -
    2867  -113 /*fromYearTiny (1987)*/,
    -
    2868  -95 /*toYearTiny (2005)*/,
    -
    2869  4 /*inMonth*/,
    -
    2870  7 /*onDayOfWeek*/,
    -
    2871  1 /*onDayOfMonth*/,
    -
    2872  8 /*atTimeCode*/,
    -
    2873  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2874  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2875  2 /*letterIndex ("D")*/,
    -
    2876  },
    -
    2877 
    -
    2878 };
    -
    2879 
    -
    2880 const extended::Info::ZonePolicy kZonePolicyWinn ACE_TIME_PROGMEM = {
    -
    2881  kZoneRulesWinn /*rules*/,
    -
    2882  5 /*numRules*/,
    -
    2883 };
    -
    2884 
    -
    2885 
    -
    2886 
    -
    2887 }
    -
    2888 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/testingzonedbx_2zone__policies_8h_source.html b/docs/html/testingzonedbx_2zone__policies_8h_source.html deleted file mode 100644 index 51df98e4b..000000000 --- a/docs/html/testingzonedbx_2zone__policies_8h_source.html +++ /dev/null @@ -1,329 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/zone_policies.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace testingzonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 1980
    -
    53 // Policies: 33
    -
    54 // Eras: 330
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 2929
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 480
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4020
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #ifndef ACE_TIME_TESTINGZONEDBX_ZONE_POLICIES_H
    -
    81 #define ACE_TIME_TESTINGZONEDBX_ZONE_POLICIES_H
    -
    82 
    -
    83 #include <zoneinfo/infos.h>
    -
    84 
    -
    85 namespace ace_time {
    -
    86 namespace testingzonedbx {
    -
    87 
    -
    88 //---------------------------------------------------------------------------
    -
    89 // Supported policies: 11
    -
    90 //---------------------------------------------------------------------------
    -
    91 
    -
    92 extern const extended::Info::ZonePolicy kZonePolicyAus;
    -
    93 extern const extended::Info::ZonePolicy kZonePolicyCanada;
    -
    94 extern const extended::Info::ZonePolicy kZonePolicyEU;
    -
    95 extern const extended::Info::ZonePolicy kZonePolicyEdm;
    -
    96 extern const extended::Info::ZonePolicy kZonePolicyMorocco;
    -
    97 extern const extended::Info::ZonePolicy kZonePolicyNamibia;
    -
    98 extern const extended::Info::ZonePolicy kZonePolicyPort;
    -
    99 extern const extended::Info::ZonePolicy kZonePolicyUS;
    -
    100 extern const extended::Info::ZonePolicy kZonePolicyVanc;
    -
    101 extern const extended::Info::ZonePolicy kZonePolicyWS;
    -
    102 extern const extended::Info::ZonePolicy kZonePolicyWinn;
    -
    103 
    -
    104 
    -
    105 //---------------------------------------------------------------------------
    -
    106 // Unsupported policies: 123
    -
    107 //---------------------------------------------------------------------------
    -
    108 
    -
    109 // AN {unused}
    -
    110 // AQ {unused}
    -
    111 // AS {unused}
    -
    112 // AT {unused}
    -
    113 // AV {unused}
    -
    114 // AW {unused}
    -
    115 // Albania {unused}
    -
    116 // Algeria {unused}
    -
    117 // Arg {unused}
    -
    118 // Armenia {unused}
    -
    119 // Austria {unused}
    -
    120 // Azer {unused}
    -
    121 // Barb {unused}
    -
    122 // Belgium {unused}
    -
    123 // Belize {unused}
    -
    124 // Bermuda {unused}
    -
    125 // Brazil {unused}
    -
    126 // Bulg {unused}
    -
    127 // C-Eur {unused}
    -
    128 // CA {unused}
    -
    129 // CO {unused}
    -
    130 // CR {unused}
    -
    131 // Chatham {unused}
    -
    132 // Chicago {unused}
    -
    133 // Chile {unused}
    -
    134 // Cook {unused}
    -
    135 // Cuba {unused}
    -
    136 // Cyprus {unused}
    -
    137 // Czech {unused}
    -
    138 // DR {unused}
    -
    139 // Denver {unused}
    -
    140 // Detroit {unused}
    -
    141 // Dhaka {unused}
    -
    142 // E-Eur {unused}
    -
    143 // E-EurAsia {unused}
    -
    144 // EUAsia {unused}
    -
    145 // Ecuador {unused}
    -
    146 // Egypt {unused}
    -
    147 // EgyptAsia {unused}
    -
    148 // Eire {unused}
    -
    149 // Falk {unused}
    -
    150 // Fiji {unused}
    -
    151 // Finland {unused}
    -
    152 // France {unused}
    -
    153 // GB-Eire {unused}
    -
    154 // Germany {unused}
    -
    155 // Greece {unused}
    -
    156 // Guam {unused}
    -
    157 // Guat {unused}
    -
    158 // HK {unused}
    -
    159 // Haiti {unused}
    -
    160 // Halifax {unused}
    -
    161 // Holiday {unused}
    -
    162 // Hond {unused}
    -
    163 // Hungary {unused}
    -
    164 // Indianapolis {unused}
    -
    165 // Iran {unused}
    -
    166 // Iraq {unused}
    -
    167 // Italy {unused}
    -
    168 // Japan {unused}
    -
    169 // Jordan {unused}
    -
    170 // Kyrgyz {unused}
    -
    171 // LH {unused}
    -
    172 // Latvia {unused}
    -
    173 // Lebanon {unused}
    -
    174 // Libya {unused}
    -
    175 // Louisville {unused}
    -
    176 // Macau {unused}
    -
    177 // Malta {unused}
    -
    178 // Marengo {unused}
    -
    179 // Mauritius {unused}
    -
    180 // Menominee {unused}
    -
    181 // Mexico {unused}
    -
    182 // Moldova {unused}
    -
    183 // Moncton {unused}
    -
    184 // Mongol {unused}
    -
    185 // NBorneo {unused}
    -
    186 // NC {unused}
    -
    187 // NT_YK {unused}
    -
    188 // NYC {unused}
    -
    189 // NZ {unused}
    -
    190 // Nic {unused}
    -
    191 // PRC {unused}
    -
    192 // Pakistan {unused}
    -
    193 // Palestine {unused}
    -
    194 // Para {unused}
    -
    195 // Perry {unused}
    -
    196 // Peru {unused}
    -
    197 // Phil {unused}
    -
    198 // Pike {unused}
    -
    199 // Poland {unused}
    -
    200 // Pulaski {unused}
    -
    201 // ROK {unused}
    -
    202 // Regina {unused}
    -
    203 // Romania {unused}
    -
    204 // Russia {unused}
    -
    205 // RussiaAsia {unused}
    -
    206 // SA {unused}
    -
    207 // Salv {unused}
    -
    208 // SanLuis {unused}
    -
    209 // Shang {unused}
    -
    210 // SovietZone {unused}
    -
    211 // Spain {unused}
    -
    212 // SpainAfrica {unused}
    -
    213 // StJohns {unused}
    -
    214 // Starke {unused}
    -
    215 // Sudan {unused}
    -
    216 // Swift {unused}
    -
    217 // Swiss {unused}
    -
    218 // Syria {unused}
    -
    219 // Taiwan {unused}
    -
    220 // Thule {unused}
    -
    221 // Tonga {unused}
    -
    222 // Toronto {unused}
    -
    223 // Troll {unused}
    -
    224 // Tunisia {unused}
    -
    225 // Turkey {unused}
    -
    226 // Uruguay {unused}
    -
    227 // Vanuatu {unused}
    -
    228 // Vincennes {unused}
    -
    229 // W-Eur {unused}
    -
    230 // Yukon {unused}
    -
    231 // Zion {unused}
    -
    232 
    -
    233 
    -
    234 //---------------------------------------------------------------------------
    -
    235 // Notable zone policies: 2
    -
    236 //---------------------------------------------------------------------------
    -
    237 
    -
    238 // Morocco {SAVE '-1:00' is a negative DST}
    -
    239 // Namibia {
    -
    240 // LETTER 'CAT' not single character,
    -
    241 // LETTER 'WAT' not single character,
    -
    242 // SAVE '-1:00' is a negative DST,
    -
    243 // }
    -
    244 
    -
    245 
    -
    246 }
    -
    247 }
    -
    248 
    -
    249 #endif
    -
    - - - - diff --git a/docs/html/testingzonedbx_2zone__registry_8cpp_source.html b/docs/html/testingzonedbx_2zone__registry_8cpp_source.html deleted file mode 100644 index ba9279a97..000000000 --- a/docs/html/testingzonedbx_2zone__registry_8cpp_source.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/zone_registry.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace testingzonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 1980
    -
    53 // Policies: 33
    -
    54 // Eras: 330
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 2929
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 480
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4020
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #include <zoneinfo/compat.h>
    -
    81 #include "zone_infos.h"
    -
    82 #include "zone_registry.h"
    -
    83 
    -
    84 namespace ace_time {
    -
    85 namespace testingzonedbx {
    -
    86 
    -
    87 //---------------------------------------------------------------------------
    -
    88 // Zone Info registry. Sorted by zoneId.
    -
    89 //---------------------------------------------------------------------------
    -
    90 const extended::Info::ZoneInfo* const kZoneRegistry[15] ACE_TIME_PROGMEM = {
    -
    91  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    92  &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia
    -
    93  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    94  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    95  &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas
    -
    96  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    97  &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse
    -
    98  &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon
    -
    99  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    100  &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek
    -
    101  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    102  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    103  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    104  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    105  &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca
    -
    106 
    -
    107 };
    -
    108 
    -
    109 //---------------------------------------------------------------------------
    -
    110 // Zone and Link (fat) Info registry. Sorted by zoneId. Links act like Zones.
    -
    111 //---------------------------------------------------------------------------
    -
    112 const extended::Info::ZoneInfo* const kZoneAndLinkRegistry[16] ACE_TIME_PROGMEM = {
    -
    113  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    114  &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia
    -
    115  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    116  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    117  &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas
    -
    118  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    119  &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse
    -
    120  &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon
    -
    121  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    122  &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek
    -
    123  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    124  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    125  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    126  &kZoneUS_Pacific, // 0xa950f6ab, US/Pacific -> America/Los_Angeles
    -
    127  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    128  &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca
    -
    129 
    -
    130 };
    -
    131 
    -
    132 }
    -
    133 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/testingzonedbx_2zone__registry_8h_source.html b/docs/html/testingzonedbx_2zone__registry_8h_source.html deleted file mode 100644 index f3a8563e4..000000000 --- a/docs/html/testingzonedbx_2zone__registry_8h_source.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/zone_registry.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace testingzonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --include_list include_list.txt
    -
    13 // --nocompress
    -
    14 // --start_year 1980
    -
    15 // --until_year 2200
    -
    16 //
    -
    17 // using the TZ Database files
    -
    18 //
    -
    19 // africa
    -
    20 // antarctica
    -
    21 // asia
    -
    22 // australasia
    -
    23 // backward
    -
    24 // etcetera
    -
    25 // europe
    -
    26 // northamerica
    -
    27 // southamerica
    -
    28 //
    -
    29 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    30 //
    -
    31 // Supported Zones: 16 (15 zones, 1 links)
    -
    32 // Unsupported Zones: 581 (325 zones, 256 links)
    -
    33 //
    -
    34 // Requested Years: [1980,2200]
    -
    35 // Accurate Years: [1980,32767]
    -
    36 //
    -
    37 // Original Years: [1844,2087]
    -
    38 // Generated Years: [1945,2087]
    -
    39 // Lower/Upper Truncated: [True,False]
    -
    40 //
    -
    41 // Estimator Years: [1945,2090]
    -
    42 // Max Buffer Size: 7
    -
    43 //
    -
    44 // Records:
    -
    45 // Infos: 16
    -
    46 // Eras: 30
    -
    47 // Policies: 11
    -
    48 // Rules: 220
    -
    49 //
    -
    50 // Memory (8-bits):
    -
    51 // Context: 16
    -
    52 // Rules: 1980
    -
    53 // Policies: 33
    -
    54 // Eras: 330
    -
    55 // Zones: 195
    -
    56 // Links: 13
    -
    57 // Registry: 32
    -
    58 // Formats: 47
    -
    59 // Letters: 23
    -
    60 // Fragments: 0
    -
    61 // Names: 260 (original: 260)
    -
    62 // TOTAL: 2929
    -
    63 //
    -
    64 // Memory (32-bits):
    -
    65 // Context: 24
    -
    66 // Rules: 2640
    -
    67 // Policies: 88
    -
    68 // Eras: 480
    -
    69 // Zones: 360
    -
    70 // Links: 24
    -
    71 // Registry: 64
    -
    72 // Formats: 47
    -
    73 // Letters: 33
    -
    74 // Fragments: 0
    -
    75 // Names: 260 (original: 260)
    -
    76 // TOTAL: 4020
    -
    77 //
    -
    78 // DO NOT EDIT
    -
    79 
    -
    80 #ifndef ACE_TIME_TESTINGZONEDBX_ZONE_REGISTRY_H
    -
    81 #define ACE_TIME_TESTINGZONEDBX_ZONE_REGISTRY_H
    -
    82 
    -
    83 #include <zoneinfo/infos.h>
    -
    84 
    -
    85 namespace ace_time {
    -
    86 namespace testingzonedbx {
    -
    87 
    -
    88 // Zones
    -
    89 const uint16_t kZoneRegistrySize = 15;
    -
    90 extern const extended::Info::ZoneInfo* const kZoneRegistry[15];
    -
    91 
    -
    92 // Zones and Links
    -
    93 const uint16_t kZoneAndLinkRegistrySize = 16;
    -
    94 extern const extended::Info::ZoneInfo* const kZoneAndLinkRegistry[16];
    -
    95 
    -
    96 }
    -
    97 }
    -
    98 #endif
    -
    - - - - diff --git a/docs/html/time__offset__mutation_8h.html b/docs/html/time__offset__mutation_8h.html deleted file mode 100644 index f0b65f96e..000000000 --- a/docs/html/time__offset__mutation_8h.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/time_offset_mutation.h File Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    time_offset_mutation.h File Reference
    -
    -
    - -

    Methods that mutate a TimeOffset object. -More...

    -
    #include <stdint.h>
    -#include "TimeOffset.h"
    -
    -Include dependency graph for time_offset_mutation.h:
    -
    -
    - - - - - -
    -
    -This graph shows which files directly or indirectly include this file:
    -
    -
    - - - - -
    -
    -

    Go to the source code of this file.

    - - - - - -

    -Functions

    void ace_time::time_offset_mutation::increment15Minutes (TimeOffset &offset)
     Increment the TimeOffset by 15 minute interval. More...
     
    -

    Detailed Description

    -

    Methods that mutate a TimeOffset object.

    -

    The number of mutation methods of a TimeOffset object is basically unlimited, so including them in the TimeOffset class would make its API too complex and incomplete. Instead, they are split off into this separate namespace.

    -

    Example:

    -
    TimeOffset offset = TimeOffset::forXxx(...);
    -
    time_offset_mutation::increment15Minute(offset);
    -
    -

    Definition in file time_offset_mutation.h.

    -

    Function Documentation

    - -

    ◆ increment15Minutes()

    - -
    -
    - - - - - -
    - - - - - - - - -
    void ace_time::time_offset_mutation::increment15Minutes (TimeOffsetoffset)
    -
    -inline
    -
    - -

    Increment the TimeOffset by 15 minute interval.

    -

    For usability, the range is limited from -16:00 to +16:00, inclusive, with +16:00 wrapping to -16:00.

    - -

    Definition at line 36 of file time_offset_mutation.h.

    - -
    -
    -
    - - - - diff --git a/docs/html/time__offset__mutation_8h__dep__incl.map b/docs/html/time__offset__mutation_8h__dep__incl.map deleted file mode 100644 index a96d2bd58..000000000 --- a/docs/html/time__offset__mutation_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/time__offset__mutation_8h__dep__incl.md5 b/docs/html/time__offset__mutation_8h__dep__incl.md5 deleted file mode 100644 index ac0f76937..000000000 --- a/docs/html/time__offset__mutation_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ca5116edaa87d0baa5011b975eeca75d \ No newline at end of file diff --git a/docs/html/time__offset__mutation_8h__dep__incl.png b/docs/html/time__offset__mutation_8h__dep__incl.png deleted file mode 100644 index 15cc916df226bc794c0b8ec046ec36757266418e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7753 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 diff --git a/docs/html/time__offset__mutation_8h__incl.map b/docs/html/time__offset__mutation_8h__incl.map deleted file mode 100644 index d83e43937..000000000 --- a/docs/html/time__offset__mutation_8h__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/html/time__offset__mutation_8h__incl.md5 b/docs/html/time__offset__mutation_8h__incl.md5 deleted file mode 100644 index 2eafb28a9..000000000 --- a/docs/html/time__offset__mutation_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -d1ffbc4b34d7ddab4f2a0e6c66405549 \ No newline at end of file diff --git a/docs/html/time__offset__mutation_8h__incl.png b/docs/html/time__offset__mutation_8h__incl.png deleted file mode 100644 index 8cadb9ea3697c06b2be1e8e0f3194654ae3ec771..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9264 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 Z|5nAr2mRM`XW$heNJc^tRw8Bu|35>=@sI!j diff --git a/docs/html/time__offset__mutation_8h_source.html b/docs/html/time__offset__mutation_8h_source.html deleted file mode 100644 index 3bcefd1c1..000000000 --- a/docs/html/time__offset__mutation_8h_source.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/time_offset_mutation.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    time_offset_mutation.h
    -
    -
    -Go to the documentation of this file.
    1 /*
    -
    2  * MIT License
    -
    3  * Copyright (c) 2018 Brian T. Park
    -
    4  */
    -
    5 
    -
    6 #ifndef ACE_TIME_TIME_OFFSET_MUTATION_H
    -
    7 #define ACE_TIME_TIME_OFFSET_MUTATION_H
    -
    8 
    -
    9 #include <stdint.h>
    -
    10 #include "TimeOffset.h"
    -
    11 
    -
    12 namespace ace_time {
    -
    13 namespace time_offset_mutation {
    -
    14 
    -
    36 inline void increment15Minutes(TimeOffset& offset) {
    -
    37  int16_t minutes = offset.toMinutes() + 15;
    -
    38  if (minutes > 960) minutes = -960; // FIXME: This truncates to 15-minutes
    -
    39  offset.setMinutes(minutes);
    -
    40 }
    -
    41 
    -
    42 }
    -
    43 }
    -
    44 
    -
    45 #endif
    -
    A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC,...
    Definition: TimeOffset.h:56
    -
    int16_t toMinutes() const
    Return the time offset as minutes.
    Definition: TimeOffset.h:128
    -
    void increment15Minutes(TimeOffset &offset)
    Increment the TimeOffset by 15 minute interval.
    -
    - - - - diff --git a/docs/html/time__period__mutation_8h.html b/docs/html/time__period__mutation_8h.html deleted file mode 100644 index f717f42fe..000000000 --- a/docs/html/time__period__mutation_8h.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/time_period_mutation.h File Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    time_period_mutation.h File Reference
    -
    -
    - -

    Methods that mutate a TimePeriod object. -More...

    -
    #include <stdint.h>
    -#include <AceCommon.h>
    -#include "TimePeriod.h"
    -
    -Include dependency graph for time_period_mutation.h:
    -
    -
    - - - - - - -
    -
    -This graph shows which files directly or indirectly include this file:
    -
    -
    - - - - -
    -
    -

    Go to the source code of this file.

    - - - - - - - - - - - - - - -

    -Functions

    -void ace_time::time_period_mutation::negate (TimePeriod &period)
     Change the sign of the object.
     
    -void ace_time::time_period_mutation::incrementHour (TimePeriod &period, uint8_t limit)
     Increment the hour by one, modulo 'limit'.
     
    -void ace_time::time_period_mutation::incrementHour (TimePeriod &period)
     Increment the hour component by one, modulo 24.
     
    -void ace_time::time_period_mutation::incrementMinute (TimePeriod &period)
     Increment the minute by one, modulo 60.
     
    -

    Detailed Description

    -

    Methods that mutate a TimePeriod object.

    -
    TimePeriod period = TimePeriod(1, 2, 3); // 1h2m3s
    -
    time_offset_mutation::incrementHour(period);
    -
    -

    Definition in file time_period_mutation.h.

    -
    - - - - diff --git a/docs/html/time__period__mutation_8h__dep__incl.map b/docs/html/time__period__mutation_8h__dep__incl.map deleted file mode 100644 index a1e634e0b..000000000 --- a/docs/html/time__period__mutation_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/time__period__mutation_8h__dep__incl.md5 b/docs/html/time__period__mutation_8h__dep__incl.md5 deleted file mode 100644 index 1bea1e174..000000000 --- a/docs/html/time__period__mutation_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -0952db45b4929076bf447dd0d32bb86a \ No newline at end of file diff --git a/docs/html/time__period__mutation_8h__dep__incl.png b/docs/html/time__period__mutation_8h__dep__incl.png deleted file mode 100644 index 977e7cd614442ad8e71beed7d12bcf9051c636b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7627 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 diff --git a/docs/html/time__period__mutation_8h__incl.map b/docs/html/time__period__mutation_8h__incl.map deleted file mode 100644 index 5b04dea77..000000000 --- a/docs/html/time__period__mutation_8h__incl.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/html/time__period__mutation_8h__incl.md5 b/docs/html/time__period__mutation_8h__incl.md5 deleted file mode 100644 index 608446b6f..000000000 --- a/docs/html/time__period__mutation_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -8bf0f0f61710cb2dd9c4945d14dd25e8 \ No newline at end of file diff --git a/docs/html/time__period__mutation_8h__incl.png b/docs/html/time__period__mutation_8h__incl.png deleted file mode 100644 index 4f765f66ae5beb2737c360da4a13a37eb04ea8c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11620 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 JSXj^h{{W5I&$9pk diff --git a/docs/html/time__period__mutation_8h_source.html b/docs/html/time__period__mutation_8h_source.html deleted file mode 100644 index 963b05c60..000000000 --- a/docs/html/time__period__mutation_8h_source.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/time_period_mutation.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    time_period_mutation.h
    -
    -
    -Go to the documentation of this file.
    1 /*
    -
    2  * MIT License
    -
    3  * Copyright (c) 2018 Brian T. Park
    -
    4  */
    -
    5 
    -
    6 #ifndef ACE_TIME_TIME_PERIOD_MUTATION_H
    -
    7 #define ACE_TIME_TIME_PERIOD_MUTATION_H
    -
    8 
    -
    9 #include <stdint.h>
    -
    10 #include <AceCommon.h>
    -
    11 #include "TimePeriod.h"
    -
    12 
    -
    13 namespace ace_time {
    -
    14 namespace time_period_mutation {
    -
    15 
    -
    28 inline void negate(TimePeriod& period) {
    -
    29  period.sign(-period.sign());
    -
    30 }
    -
    31 
    -
    33 inline void incrementHour(TimePeriod& period, uint8_t limit) {
    -
    34  uint8_t hour = period.hour();
    -
    35  ace_common::incrementMod(hour, limit);
    -
    36  period.hour(hour);
    -
    37 }
    -
    38 
    -
    40 inline void incrementHour(TimePeriod& period) {
    -
    41  incrementHour(period, (uint8_t) 24);
    -
    42 }
    -
    43 
    -
    45 inline void incrementMinute(TimePeriod& period) {
    -
    46  uint8_t minute = period.minute();
    -
    47  ace_common::incrementMod(minute, (uint8_t) 60);
    -
    48  period.minute(minute);
    -
    49 }
    -
    50 
    -
    51 
    -
    52 }
    -
    53 }
    -
    54 
    -
    55 #endif
    -
    Represents a period of time relative to some known point in time, potentially represented by a DateTi...
    Definition: TimePeriod.h:27
    -
    int8_t sign() const
    Return the sign bit.
    Definition: TimePeriod.h:122
    -
    uint8_t minute() const
    Return the minute.
    Definition: TimePeriod.h:110
    -
    uint8_t hour() const
    Return the hour.
    Definition: TimePeriod.h:104
    -
    void negate(TimePeriod &period)
    Change the sign of the object.
    -
    - - - - diff --git a/docs/html/zoned__date__time__mutation_8h.html b/docs/html/zoned__date__time__mutation_8h.html deleted file mode 100644 index b0eba3441..000000000 --- a/docs/html/zoned__date__time__mutation_8h.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/zoned_date_time_mutation.h File Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    zoned_date_time_mutation.h File Reference
    -
    -
    - -

    Methods that mutate a ZonedDateTime object. -More...

    -
    #include <stdint.h>
    -#include <AceCommon.h>
    -#include "ZonedDateTime.h"
    -
    -Include dependency graph for zoned_date_time_mutation.h:
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -This graph shows which files directly or indirectly include this file:
    -
    -
    - - - - -
    -
    -

    Go to the source code of this file.

    - - - - - - - - - - - - - - - - - -

    -Functions

    -void ace_time::zoned_date_time_mutation::incrementYear (ZonedDateTime &dateTime)
     Increment the year by one within the interval [2000, 2099].
     
    -void ace_time::zoned_date_time_mutation::incrementMonth (ZonedDateTime &dateTime)
     Increment the month by one within the interval [1, 12].
     
    -void ace_time::zoned_date_time_mutation::incrementDay (ZonedDateTime &dateTime)
     Increment the day by one within the interval [1, 31].
     
    -void ace_time::zoned_date_time_mutation::incrementHour (ZonedDateTime &dateTime)
     Increment the hour by one within the interval [0, 23].
     
    -void ace_time::zoned_date_time_mutation::incrementMinute (ZonedDateTime &dateTime)
     Increment the minute by one within the interval [0, 59].
     
    -

    Detailed Description

    -

    Methods that mutate a ZonedDateTime object.

    -

    The number of mutation methods of a ZonedDateTime object is basically unlimited, so including them in the ZonedDateTime class would make its API too complex and always incomplete. By extracting them into a separate namespace, we limit the complexity of the ZonedDateTime class and allow additional mutation methods to be added to this namespace by downstream applications.

    -

    No validation is performed during the mutation operation. Client code is normally expected to call the toEpochSeconds() method to convert this into an acetime_t, then later convert it back to human-readable components using the forEpochSeconds() factory method.

    -

    Example:

    -
    ZonedDateTime dt(...);
    -
    zoned_date_time_mutation::incrementDay(dt);
    -
    -

    Definition in file zoned_date_time_mutation.h.

    -
    - - - - diff --git a/docs/html/zoned__date__time__mutation_8h__dep__incl.map b/docs/html/zoned__date__time__mutation_8h__dep__incl.map deleted file mode 100644 index c40c6b556..000000000 --- a/docs/html/zoned__date__time__mutation_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/html/zoned__date__time__mutation_8h__dep__incl.md5 b/docs/html/zoned__date__time__mutation_8h__dep__incl.md5 deleted file mode 100644 index d17677b39..000000000 --- a/docs/html/zoned__date__time__mutation_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -9ef4ab4ed6fdcb6aa16c4128370d9531 \ No newline at end of file diff --git a/docs/html/zoned__date__time__mutation_8h__dep__incl.png b/docs/html/zoned__date__time__mutation_8h__dep__incl.png deleted file mode 100644 index 1a6077f08400ba46c489666a99b010fbc548628e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7109 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 diff --git a/docs/html/zoned__date__time__mutation_8h__incl.map b/docs/html/zoned__date__time__mutation_8h__incl.map deleted file mode 100644 index 7b25d300d..000000000 --- a/docs/html/zoned__date__time__mutation_8h__incl.map +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/html/zoned__date__time__mutation_8h__incl.md5 b/docs/html/zoned__date__time__mutation_8h__incl.md5 deleted file mode 100644 index bf2e7555c..000000000 --- a/docs/html/zoned__date__time__mutation_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -0abac1beed674abfc0ee5c706c1f007e \ No newline at end of file diff --git a/docs/html/zoned__date__time__mutation_8h__incl.png b/docs/html/zoned__date__time__mutation_8h__incl.png deleted file mode 100644 index ce2709ef41438799ccb60ff9735b76b472e1a8ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374222 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%0DPBo=3`ETup1P!!m;yJ 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¨8T#l*L`O}~1)c{6nr=QBDs_Kw!4-i|Rh%+Ait zl;jWfj*fA!Ur%M~@^N_VKl?UWv$eBxNB+g?BMOS2VTbYGoljj^VdbycR4pE}XY-C7 zAz_S8C1WT7-A}c`goF`?rtYP04G?nqsK1{?RVsSQA`u3NX8pS&4a>YwkL{uvW?^eu za!cT3si_Pn6VonL2$zu9X|%A-l_aU-jZ=0#~kdf)861g2w9X?>$?W{+FXwLP8lMPnDoi}`V| z2&3G*@A*uV_xFd?FWWj=7c46Un;3hD6 zJ{M3`g}=5I9+@(ysJI-*rmMOh8n9gx6FaQae1Q`jj16L>U$rYNU#0r)f7N7lrt#e> z?Ou?cK0b5@8nD)Z*(HvH*P`D?HlDe2yevUg>X;c8)i3qF^JLXEXZsX=6kv?L%k${Y z!)&&+G|_SqdTv|28xOfFw)chTUE)fNjRyU46$;C(CsYcuyohgvxK7pYzXyq5hVob8 zyQGm{unspnk0l#Ti`klvL;14(^-aomyf*kZ@buzQ{UXe2x%UO#(13OlFV4sE^$ct_ zA0C}Xw)gdg^H?bk6$}&FP7^NXWRJivi$_Hf0k8AHW`o#dwXOBEhvLEX$gVCFVc7qA ztNEOyd#dg<2Tk{Nq$477*STF*Pmi#=x=Fpn0PV6794?0U4jVrbI*};L;d-MN+G^|k z%mt3W(vhd_??1M)CrIb={xO8EJqime0Cfm^bLx(NhLJ+NO<9B8EHS7W-7)l68Pz1M zFWn5#gEy&2$BB@;LgKU6yLR|ybt?0z>E%ey&A+?DKLLSE9V3-gK0XHvKNWB7%1BC* zT)sSZ2Q`8()aZV6^gh#Vi{!l^-)-N2(Z;v+l-&=vnoUQGyenUDC1POX89o2d1FG@% z&K=0F`H_ugu(If%f~|55u+2}QT3_JooQ@yTU9m|Ia-N3S4QsH9JeBC+c3R$oU?6k? zTcI4K6g|;{j7?$ODTW>uc+9oGcydJnM)L?c4VXfO2EpF zeAOHrc)*pm`VlXGbjwn%MZiMIWVu9S35od0{%|6yUyI4mfYNU3wlC|W_(T-!x%VB) zRbY#W8M1f7&vr1e0eL&eyUY0kJVJlL+$qUr7o|ChbfTop`3^nQCU&u zotD;D574di4MTPhM}IMgUtjN2lw9s0|r!ul72B0F77X_BJE*esrAMs4U5M5Q^~R zqvm<_p~Ag;HIO%Um4pOWr_m#dtm*;gthORL2IN`fm^@IN0zyg)`Mz&Ia5nuGbCHxh zdizj2K(^=WS6ar^>rjjU4g}t(Z(K<<{0S7vlas%eO!Z%vE(g()3pVV-Bf4#2;Z(5b z6}`H8Ef{ywFHl@C7{`*u{+TKdLje!QUaf^Fvg( z;SJRDquaB%?|sb}6t{To)IU!By76br&ySi92;I~y&h>mij$U2Oe@ND*W;4}a39gkPpV zM=lZqA$lS76T{bkc&5`Gaw{zj0`$~jVcp?aU5RhQl@!qM|zD(#828M{S z@l2^($(~!;yK_1<#_~H4O)0S?cy((~;l~~6U%os^bXsxr%_}O#WmK1*Avb`a`3&8f zT(Udg4wc`idwD5>$}RU;=(J!ez~Il;fro4yV|dBdEi7WyVlTLKN{)_9As46Zv-^z# zt&)d8S;K;)VY`bH2zqme?j|^1gC&8jf~15rU>g^Rz!-&;)}%+@(p@$bVf43eAVcz% z`vj+{wC?&?Ns;3iQNXsv;NZ^FeI5@=bxbsNi2g4Yk;yR;Y??CB;&Q6ykzAZ44%fdT_ zJgfI87p?y;S_~c@o&?sl$l~IAczDeKq0I{D&I<|X*}2p%93goH(uMWAPhP$Z9vL*vkcwP} z{6}i)^jKDXkEd{^ zXJ@|$2cj&rzMjDtcV{>;Z+jQR;yeMP%li^Xz$Bm{<(hPL0^~?7Dx#>iYlhvU!OQ~T zU>OXYf+vIQs&nrT_^?o3?x+pdWM`+XUhS>EVB7;J8xIZfUKJU5zn6(Ub8xo)zR+=Q z);LIu`EmVM&wZpyd{1L}G3#>=!ll4^0@KW~{4OuC;Ouom=4|dH8zllJs$mfKF> zxsLmCPhrIxD`49UE&xvM!b69pa0&w_a4LreNnAZU6N6pAR~|fY(fAafmTS&rZH>dE znoR>U#^@thr*VUg&7p#o9!A3ho2z%Grc>8nsHmig>_{}o%$cqOc^YW1c~i+?`!$@TNwfI2|H!9gCs!Rh*Y z+y<6|e~+O*x16l5{;xpY$jCT!upj>db*;3F%XAtg2q*BYFP%?NFa(M`1o6pCO&601 zJxkl1#1PdGa^FoB@?PC4)dCu&GnLy<2ebU|hug zkR2BQ2ZBZSH$r6LZ=0E$8yU^Z?63ct_JY<9K9vd0>BB#brVH(jKDPzi6M>cwnP@zvRY=h^JNTVOMz$(TDfer0+#$`-ce-Qgn?4zLrx=`L ztl{C5?{HN%t*_jN0|1dItv~iHe*az)+))1tn++jhP7Z*sAADngRjPfC&FJ`S+rfZX z630y69EdF`X{-H=*R=nA8k}KDmck!#tU7Tp>IeOup~2@@5kVcsD3_PL@RR}XVYbeO zzVU*Q@EiP|yjXHQ!M!PC5$ivCR(hN)%+2S2e~yP>Bjk226S#-zPQxJe4Z`y<@tS1p z?e9arE^Ho0!Bq`w4Y_i2_tnc|6KT$TRaAC>9Swr_U}x!@6&wiZ*`{I$<)c>UQ&sIc zz1N#u6{+7qi+S_i)2f%hveA1Jkf(}H(WNmk82!6h$N<+V2@%mZIK#*LWBtZ``z4zf z3;h(-t7|`KSbqz99_Se(=hb$Ii0v7&*0J2)=vIAwG6WvWtVzOV{p(`ey7rZtvW#G{x=xKX9=Na1*Q!F*>6`L7_XyD+ZmmnosK=cX8C zU~CL^V58+-Wv#&=H37?F+9)Mcpdy?x|>_(-Aq9>|fq{c?1KaBMO_ z7WQ%qAq4SDoG;Z#6vI0s~`sMc6+xx`qw=^-+!3q{Zn0M z$BhV%0@$Q2{go{ke>SwSkxMPtIU0rjSbzSbg96r~IF(|Ov-HfTVYEcBP!%{3a8qO9;{JG< zb5bxgOpGWC00>nGSTUIup|1+S_@P}&<7eEV?weJuoN)#D?XO^rXxDOvB42v)s9If$ zCfxI&ILJm)_3=9`Q^_SLVBWu$Q^d~3v*Dxf?f#~8e_?)9t@p7Sa z#|~yP;sItaE;wT1zJ-L#pluO$eUIKWp~NKayfIRjM9*_nkk9#N%b%5ZL1z70-mwz- z5=skre3M}?Rv0~?%p4Ei&Ukn`C#tOCy5ELGrNq!jWESXPf!!PqIcwqYOBPKEIwAd* zrEjS@Xj;L&Wy&WCxaNJT#XFA>dyHC{Fb?si&n&A1q1dgZmj)2TNp0?%H^=W2(BJ{N;fHu2Z$n4{lv!h>SM1Sa}X# zDQV)2e99;>cg4x-YMfeK6{qM?1@s527fy`S^sLs`pXZ6r!ovQOqnd#pb$FAkTvC}Fl>Xug9_61;g ztFQYgb$Fd8#pAcO{xPxH>?zU_A`_mv&q1Y12tfAy#631DN?v*3nohM{&=jwaeuIZf z<%@feCePM`%MHx|HntM8`T(%{(dBx*it_UClqO(;V!Lo97ds$Igx4AqstI9$7-lx?kZOlO#St_w}APjUB&Ba9)=c6Jfm)@-a z)q-rdEsaaRCs$Y_I;etZQ_TC8=ax(#%y0`2_aw@Yk=4R%(xsxJXHXEcpcy+kGz^3- zw$;_az}o=72ce{3N4^VCl!#f~Z!n9kw1%($kY^Ag>>!#z5ego}+q%YaaC~nI2#A_R z7#k#G%V}8{AcOna5phQZX$DLpva*p6mYIk%YY<|@1w00O6^vNafEaxjl9|N|)Im>7 z6!v~LRG?;3HuE53e7weaV_BjvIT^Bo#9Te|V6vtQI$;I|CkTgl09V6-5x)77G&e*U zGDmoN-rVf3Fvj!KC`4Dh7&NN3rBrNib=g}t+M9;Y2pLVUp-F~(US%B;f-k=2+`2kd zt$ls6>->gG5a;H+S^s8jxM6pL$)n+z; zfGc$pP8SyhAc;MF`SO9QtK=Ih8~HIw78^i|=?l}}EPl2u;e z1kg7Gu3Xr^jjb}3cV(tgF3aLOaehGo?Cg4>qi_u>8n}a^;BJ{)KHv_#{>`aU*3}gc zn}h<^5)UJ=wfeN_nAI*q08U$fzpjAmZ{E{`x4EK$-R}DX$A8v;4FZXZK z!&7yIAOCxkZ*FY@pFCw$wd6WYjtK)QDibFiUXQI$H8viL3u`mHS?;S86hszop!523_W zW?C+;cm$GLs*&w)Xqf}btF+OTTi0e@Ih^GHw=y1d4Lt!EjS|FlPnvyZpfq+3SIk;? z8^Rq2gthkPTI$i!-OuL#q6JX42!~TtWPJ&Xm^l;MBNk)IZ-4jCnbFU|m)Rb+291TNx>6fQM=XX9qAP zOsr^=YBC<(Kawg^E_%qPH%l7rRPI%XToHPgc*v z=VEfm^vzRe)@eMs2AC|@;`=h|vyn(bdUdy0IySagI0)qc(C+e$cD7}4yuGUtjY`-K z$KeDijiOz5Xr zj>WZR@6$A-ny*bnHhJ&E0cJto>HYOZy;@E=GhP>H_;eZ$h)xe9Gc45xMP+Vf$Gm&j z0Wr}#yC_*Pv4`iU8{7`YQq1a6=2NSilVuR09gXmYdlh-^doN>_Ze7#Z+chI3Ac(AW zUL$}&!G+P{6;rcc%5}R+(6$(xs*{^6*1xbyj7EK=@k&TadWxoO=!mAPL0}=kBTk-T zsTx~_vP$dwSUwucj*ci^-X<_F1vh%8nwE9`YuVr6;z!wvWqj=%bK@+2_9F^4L|W&v zA8B&c<42)1yH(Rc7Nw|3$k=SL<5YqLpp{APv{tUnR&AI zouK;M5%!{+pH~6JF5y{KB@nX{APAI|ZiDab>T+MKVP0HI;8+GQ9^j+=Pr>5u=wjf0 zG4O0*A!fYPhzy*I0Qh6y3wz@;_bN&vLTSIS<9eY`Gw|7p`Ym3Rq3Vd>_?&77DULftDQ# z*eKZCJr~;q42`kHN>`&N$4%&j3RH~;rEH;4F0R%_H#Zcr14M^TvF-bJ#d3w*tsj{Z zq9E5OK5b`>-|UAdEK3-SU0DC&4$YnVI)6DZdk?N(X9o*lu%YiJs|&@Ph`y4<4SLZi z#g{K(NIhh6!*e%sxT^RLPq#b->_K!RF1eUa>D(>&+;f{k+M`x;0oy!Kp=;f?e)$sH zLBfn`zVc=0_TQu#yp5!G6h31)O9D*`JcM!ZPCNb{XZthdE(#<#^0=YlfyW(MUtc?_ zrE&A-H^}@(*Vf)Y`0bEsu5kQ25`6X15Qj5do`VP6YQnE))39&R=SRP1TO*`{f54Qg;RL|CCu2B{1N`PW2)k_pHBVmK$34C8nk$gK zYQa3sNIM7KaJrV3XgE-3n`2NVGYSg&K?E5bWJ-)&YqEn$`^-GP^gG=3+|K#Yz%hiV z7POC#Q{ImCsI5PM2B@e=&;5-?p<{!iG#C5)zX-JA2f4%?Sb|OH=EedLvK5~Ja3&xM za71#!2M2`wwxZ%)wp9v7`_(#%POiZro3j>!{jqa*-co}V3|%k`*zp?6s9+?)eN z`3(r0fH2$lhZ2unJ1C+iWeb(kHK4r@MgBfd;Of5=E)x#jn&1ksse&N~^b}HeXpV%v zHKS8g+qRkozm0vWZ#96~nPh&E4aA1>EGgchy_^HZ3NcpB@u{ z8n?YC2o{zuMj$=uB$F2Ao{J4;E<8AB4SI1M-yj6OC+G&48wTxL$8KVUx3|pmQ3*Z! zD-(hGp4QkhG6JAX;oV~$9>p~5bOyLjuH%}+ZtMLTLp3;Tj~<0ryigH=vJn%x=7R%5 z;Cy>n11RNMb)TfWB4;65&E-8m*E^4WX5cJ%g`Izqf#SoYRxeE%GBScw@4BCg++REA{tr@b})yIPENz#4_uji1vrM~?<< z7Z8P8!!Z>FikOzp35?^jXnH!j2;&Z{;SZu_aO35IOa+NXlBp=-4#`v+UHC+ZG7BR2 z{l|~7pu-?x`#78-F3!q&H`L1Goq+cV6`hoAuH@TY>zOlbkfh;qH)M*Jt+o@11TL>T zLBnEa;iA%#F5Pypi}yRLx+ecnH=D_vpX#J@BKGSr#x@Vvx^MuU#i z{(X_TZeLnsBLeMp(%%mo(fGM(! zB}&i}?76dbUdLR4*Y5ypK^o7W%CrPeAP8I+;N{eL#3RS$V9Wq9nep8=xxZ@2`HV}e z4{{6|!>xb*jab#&y?VS^qnyAd*!`BAJ^k-Ka62G4f?LtFOn^}h8~`RuU;EB}u(`AZ zyfn37S^HVV6hX2d@3pw*x&L>~3fu+IDkc~-K9ipttae@{A=>(#qzcXqUaY{;7Ay+|;nK+lQTrj|NgpdLjj7liE z3_4C7it2E*;`8n}{r4i&ecSU7U=@apSy$LatkqcBL+_KVsn5qaQe6jUCsqt)%lrFH z-ds1Hs1A7oKCbmVq)*|+6*n|&B1Tp&0Jjwd2Rn%?D+P$6&?#&b+zJ5yA3)5mpI=!V zJ6q)2MyW_bkP`kC39JXuy8ADFlRUMrP*ixwknktB{GQf)Vz*mQKQApLbPU3p` z^5b;oX4@*U)|faWkpTRP(O@_Y$GA$oyU?NgxlyUyOpc$JC82X-g2Kuwkhw#~i zHj{cjO>%OMcD41T&7VKw8K)zWmjYgs+l0GY&7Q}JHH3C4u(=5q43<@5r zm*)eAN3Dl2{;B={arNKvT2f1u=^EIbnoH>`^68BK;G`y_NpjU5#&IoOjHee-8fT(_SAWzZCI>4pd8gKC} zU5;@)_cUAbAdsOj#y@=LzE=bAZu!PGJ*6jVP08ZoxiLzvjY2Sa?n_(* zA&!p`6c)xVB61f6)C}V34lvCAh<2(44%ORhMlBSYD{rWLsD{EUpHUUk3v|E*SWx+6>$L0R=3<8fpwVf)Jv{kYHP?*`z z_x)J+$d*CD2S!=|`KriydA`Td_-9wXdDAPy4<3?mE#kvj^T3Z~-jK=1pTSEUkBwD& zY928Hmqo+-1<15H-}zD5x!;!=FcEnag&~eG9QO9<(#-mXLZ8)Av3*?r8P`{=n83Zx z9@HI}Ul{+R6ngw6*NvacOchPFf3RR?pVQPYMI?_Ab&*rqj2CZFq3ak%#8#$3T0SoD zHP^d{`&&%LQbNmeT~*a?mPC>NReuLidga*(A7*FgfAy*n3=TbkDBJ4`Su{p zYHWNV{yyKHTab+;Y922hkRx1cy*C~{dW7-XPUL_cPkFPIzrED^k(nkv*-e#dBw29l z>aX|%{fUPY)iLY%37P~VgrWho>iQr8K8R=xhHAP$h`r|Cz^)#381)KWz8nF@(_-qE z;nOp3iUTY9E1J#5JDicFScQdSBUpO)0ry5VZD@l4{8=je3QGv<>gp<6TAreEsxBOJ zWbq?dyoXZ1wom{Ga7#_B{zix%9UXJK?xHvY9v<4wP3_X+U8zgut9>B&p$Q zALrN~mgH#Uh*HL4sK%JX=sSwXdv6AI6}ve?J}gcYh*wUaYBQ_6AFGj>dN;iJNY^nM zK$cB;)+JpP+Z;8FPAGl7Q; zuBv431!aMq(t2vOU)^$Y9CJP{odOoWG#Q46c-n<^fSym#m5@QA03L9xU=tA7ef7&8 zY}K~t&U?2Stz2gdZV|>%)O!x>NQJy_A6~inyu?}=0k}&@uot=7mk+bQ_-MBuKZwtb zaxv{Y=4%H{YwTE{ngl$=x+yNNqWwMh&jDO#O^GEvA;&B;mleuW=NtcU=x(nklVF1!spy#a5L+whkqhdcn==Cy$+tqsM; zOZa>%aU0u#@&G$>l*r5M@Y07o8Tx3*m4{yxs699*#E?8B;nQQ0|&DQ|(H)dvM-scNc z)z>p{b9*q($tisUS~CyI9Q!jgCMLQEC+tp5`BY?W@Q$t!O$qwbtFkE!;~ib9&^Dem z@y^G!OxUl+-V)xKnfHT#;`QYK91ujVZtjw5ZZb8;_yW;x?bC)!h{r#6>MbuH{(g+Ir_4|Cs(ZY)t_VayaWyEC);O~Ofx!rimqu(+H zM$B1Ccmn%lh!~U{%2}~J#Wl7o4uDEdj%aeS%k0d`A0F{aKSE>}#`v7*`deEb011F( z(s{Je2Qo($G_9u_5HTY0o`?vJhfg&8GNI`=9UT>?`?xi2$a(R>fMR`ccRB}UuGwe* zcyOI*KXUFfT>`j-WA1@u!meTn10kyB_=;1Uocnfw;DT=K5M%5dKu_Y`2-sMu+|u2b3SuMacx38$@%s{~wf{qk-f9|OECfbh@LH5=p^HCF-%4r!G7 zn%x9_0J&{#p%bIVN0zF4`<(2c1^`Zj#_Z&m06J6rxG&DnarikxfL(e8hHInfbfUnb_@~+*E1f?kxdOp&iM;zrf zRKPmL3ulNZ5Ywrkm6Z&GxHpi@>3#h1xw+Xe$zkty1;X69bGHUMjYNkCT7lv6kvUAI z{QotWAFLym&?DobLjL~;m9C{sh!t?DE;0B-~pA!Gv}Y0P3`j{xPH@poTaxd4z;J-hG1M|{vJHO4!ZXF#(lYz@t(o`68jMK1xqj4f|5|B|&(P%LED_&#c}1_QOBm2w13;Mj zfsz=)3&d|md9l~N`v;+T&a+lmI5x0#l91&=-vC|nOOPYyeLRKk+|igWS9nu53W))l z&ZZ*g!)aPsTqvdwGFV-!f0C|yXU+|TXO7d5E@oRG7>leYql=5%G+S2Kk3IF$Y)W$}R|93RL++B+ zWD0(uNBQ}@F8?%c5@~4DP%M!!nMX_u;cRsEk%`~={1$eOT%lm^k)WUwmi&NNT&nDRjOgMhwT@KObi zwXK+C!2U$$jQHGa0x>~hMo3Wrp8__z^6%P}6R^77V_^||(c|{leoTrVcr^Un$am;h z(Tn&y@_(=L1y)q}8P-yjtGT-~ERJtW;cAuit82n<3yuoo8IOcVnxD@dK{Na@ZWXFkd{@%#H5rwfjTN*^%)O+i3WkOJ`Cdi}->lKLs& z5B~nlUBv>gaxD{6Z>+N0+3CTV^3sC?>29~@TM|jc#11(_YXL^_JfuQ7r_OjkLrv@C zG%Z1GJxp!G>a*bnOyZQNXhE(F5*s0&*V8)=DehXuBZ0iU3#oefnRbUr_E#2QgTNO! z&j&qpuYyL2l)S7N`h2K7<>yC5@@%#DAudCw!Tl)4_ap^H3lwesrnL@j2@ejT6L_te zaU4Q;CWtF6A$lZql<-6{g_av)e9)QNTI+pubVUa3g7yc7=0@0oAxE6L8Ug`~N~wz6 z)isl_!^F$RDh$J3K1U0w~7)+Jo%g zbtA90Y~7#F^dkioRrA7FFCoO$61oPh4mw8)6tN&m`JF9aQT+mc~`Ej~QYY z9}P4)L{(&P^u8kpuWw&CLs3xK=3a+hy_5B{iD)ySEOBjm^&XG4z>fnNjUauGA^py{RK;p&|w->`p zP^d17u(7eS=9*OV2|7wBWa;S<0sGD{#a1BLF9drg+1C*NJp0q!e}sNLz_R(aq?-D6 zn`Yt-VHfCjp`w&jO_HZe*Wy-ypfdG_@N&F>fP&mg0R>6>(^s#WaAx36H44lRcUd0# zbohAJe7Z!l``&Q~j3bL(IO{D8H0$UQ*VdN|K6fr3!#EIV6AUNxWc<1xn4)5o3)KtM z_?4UMyofyvKIDN%Hi83&TwPDOGaZ+{~qghp~2 zxWokqvEXkpjF?<~95}XRfL<9g4G1GEv9)A%?bmHV=TSpqra|ZDg?bTN8R_b_vh~~D z`56e5H*>C?C5=A?Xad#X2g~Nu%C8EqLbs)(JH`hNC#uZNd!CKTaXNBiN&ifeJe4U> zX>=ykor998pe45j=7!^oZ3v|pupYHHSH{9k34zG#D|^U64XY*wBxj1;AoJJ2+)fb~ zK?(}sBc1QWrQg)apu9nc4QD)QbN~qRM>@?VQ=juj{zMSOsD(WAUI4LcTUs=d4#i5M z+Cu>*j5#GdS+$RLa)2e^{m6|bsyNfv)fAB2?@yYplaGF*llhUJB)z@0h7Y0o#y{Z4 z?EM?*nrM_`WC5O;v?QF=D|m-8Wj6%!AwO~?^rzBFen}gk>dMqJSJ+&edr6k9!SO$> zNUgER9V=)sJFKjZJs0U;ZFfAO-MeYn6#v2w76MD?Lg=43 z=M0WCs6=Dv3Z>o)i89Ws0krjO>x5GDh3N7QG>%}7o2!CitEy8U)z_<1(z?e&LhG?| z?u7IFUZU7JE}#}mpYI4SBT6*AAPuT}ydKk*v6+H#9j%Lq@e}PchI9g%uE@!Bi=Dnv!4=FfDc2)oZ5hXM#W>p;GZ^~kt$Lp$oyv0okpf?C~OoX<+v zS1OletIg}XmPUedn6(cy^-=7`A@SQLgF{$U-i1A*qvR;EUi+-CadbV{eG)h`Y-yk$ zy|{;r`sR<+C4vL$U!Q)emd1*?A@D|XgVL1vY=jHn)s3rY6jCmZtwRsgQ8=E=@ZmA=0pCR)i<`vx;`e0Za7i0FKq)U*{~P5AkzLR^;U(2}bUZfx5|XB)y2fX(t1FCVD*Ewb zeaOn@P)Y(_H^psyXApx@S;aj2?v}iwBJfecX;L?6<>`u}R-!&63f3@BJW3Ed9| zKoKH==2?6FgvJ@wD8jPh$X11$3;E63u=xbhz>^z0wr*rvS?L5PDeSvm^g&E7Yg5>( zExBE%_|AV5f*caZ$cWh!6w9>FB=ivwqZYfk`mK71ib@`!)&Nzy70IN2%$Zd3N$HwLLC&nS zLdG$aI37e{kB!Du5Vy;BAn-jg`T=k>~ zCc7aGkoNXIPmJhc9FX96@rRMb!+kdwG}qQ3`nw0{>I(pL`O_h^#*ZKy%-PHCjOu%K zW7SV4*85C1>}Zyoaa5q+l=Ll2wn&paz%QSeW$;WsN?sjYI#X>t^xk#vGCrP6O~A8& zwfX+%ypp3}#BP*OUj=asWtVk_;y&@Re~>h^q9OdzUOhe&&cn|i{Qdhnk^O%Ejv*v> z4uT02+o=gA#utu%M+WFJ~tP z76E?cfVBG8k#)u;vzd}+ISl$Pr!DVem|Fy_ae0oWO(ox<*P5E^;{6x8KF@dyHhY9e z)zFqDx!BTR6V9hpRSP1toMIyI0Z8f~)N6#I4D08859G>c>xhNXLZxNDY z*GDEnsH-;D_=(C4voDzNKMmp9pucAInJ9UP5xzlOPDEuwjseXMx1M)=`v4rUO@4pM z2k#2><5m}y!v32MQ$Y~xCo7GwNyaxcHKD+Iq4=Wp!JDh0603Y8T8%B3B7m`K)u+3= zp`IMhEnRVpM;OYrm>lZPPk|n1DdWT+=LwM8`;WSU63_ln()|1@zPT<0=(XY79QCAP zXdM5x^pNf^ss_mm7j?CA%OfPh*HpBRFfi03XAUlmd4XvS=__+qu@|(}Qu^n<{daNv z7#hJZ&Ai8mxg}8+D00sj6yN{Ra$jXedq@SVrBQy5#O|bE(;|lis^giGxTW$Xy6In1KtSdIT{h8K!96`j$iKrBz#LQP@Ps;RlYe zQ#pnt`32+`xH}%4Rt31?eqi%!J6-Eh5~wyST3gRMIg=4OJPcY5PB}>bPjJ2{ z2QX`9N#ZkJ6b|&RsVN`xF5gLDNl@!y*`V=LZs-Yfg+G4Gl2#2oZ~*NACNYa}JCWA0 zA&bnur{jr;Rvh%XdoWWbC0kM1?06mmOHoOn~iX)r+Ujs z$zzvvg|;vpS^EQ{qYMlTw{G2fEb^6I9Sdhh8m`VPho2PluF)26N&#kf({3WH$iqiW zY;Cl``D-uWjXQteN2jTm3<6b<+pFEVqvM@;^+)?KND!Z~-aDC^{)*xBz`$WF@ukEb z=ab?FchjuJK}u2q#?x9|{0Wf`{=_%T9i25SJqHbg@&5o4lQJbuh-ZSr{bZ3ZQ0n{r zdmmAUxp6E$V-+{pxna2>hZ&5P4jy8(=zB-gW-bO|5r{cuMo6zn1cmxES#r?2@{x)an3 zDi+1^KWpc9{l%k}k{YIFDZ?BgkXFp23t%iAjTMb}+3^n??tp_~NWW$(8v&~I3}#?Q zM;D2H8+fAG;xdKA6IqbP4kzq?(FUM)MPkhTKeHzaV408xy2>}jczE`m)mCPNTmpO* zpxj(k!{?1F5Aoc1Sksat9?9Nk_f7hP}PpTp65K0V4+6qem z`eAIq8=GfYaAdzhMRx1<`AE%_V5qT)Azf&Z2q1TD;oXNDC%qOqumeqfWi|G)LD`wG zuw-J`6wJB;qtc2WGjoD&>BZ>x@AqNC;S(4|e0^X$>cDoGR1Wao`1yS2?t^c`SiSwB zj?J?XfJal!>lE!FKZy#&RSe)aEsoDijyqMDIhR0=%mAlNzb&6@*T85|$1iTgkE;tV zurM>2jZdO zT8HBh`>$ueJB~OJ)qeTfE68yq=nuax!TEjUH8e?EM85_gYMpU+yn`pj(^Dnv+Nj^ zv}m3>Wli>`SvB8A7g~UUKWk&}I0w7CSo*tz`l%)jfGG4eqCnTHRpAXE5^ zp_7V|gfPrczjugb1kP_fDCPI=hKGMlOjM@Dt*wU%iAQ&QZ{HkO-HG|i)$T{m6F+md z)z7^?;D7JlSbGLdQ&ZD+EtazixD@y?_zlHf+|hO3%+dVf=es94rpnxGGc?Do7*%X- zvkdgIa&5Bo?0eg(?Rv>Hq%_gGSg1O!qvCT71alS6Wx(51t60kUM8)-uYSRw5zZ0Q045r{7u%mZcRkU|t&P3dCeJp7^ZZWi|gec(YlVnU$7250NVkZf#!R;E?+JH!s=Q(iG#Ym_DnCjVYxzZ|e1kUpMAY2peN&Au+tt(bN^7glX9oiJVP)uDI{sfer9TzU z#_coeKZ3x6_GOec5U{avAOtq!imi8sm_ zpoIwoq_1dQev*pjIYt2JFv|KcKcC0QM?h`B@{FX4W=dGR-%_H-yv&u2H z{3}tKu&Ag*^P`K^Jw4?e-T_;ye;84^UV6^MxH4ONHZ@%^!cETq&tunJGXqS5Y z(R@AM+iV+(T}%yaOB}mj4C(eVrNbcm+|5rrHa0d$_wWB)RdpYJ}*+wexdfN#@vEPv@5(CYW+pN62;Vp@>^P9{4ZKWR0C>3ZgSRH}s z8{q+LZ*MPX-+ezNg`F~p1n}tE@^o`YmVUhccEi$kf{$Ha=?h@|PJfyhyOvIfx&Idw zv_B^&hxYh!H65M0M^u~_od!u(S63JQw%p^^|9JD}&67P_C~u2E@)tPtVhim|(3*(b zl;WjJpKKj1@pB?){D~5A78AD^k*=7}5SyBu{8k^y4mE=}tJ%|_EHyw|)gV?l>;$<<{gbO=?lZl9-Ax%-NOSTzuk7G-h2j($$x{f7 zf(|kkN2o|LHipnS2$XM|*7{>4Mo41IeFu~GjH@Wsev(IAA|kt);&0+w75Yh{#n#+= z@V#l>iWEM?#5-nAnlTwZ79#&Ig$1_vlg%gxa z@!aclOxutB{V6YX>n3uf8e64?-Mw4PmH8&4N9JsCF)4|Q95%fV45Zz^e@)bZWFI@M zFYfAWY=0)-7q|oft+vn5h;~2kV=#~`f`XBCb$6zE6-K8FtpBEbP=kGRXwJuu>Lz8Q zj)8>azU_tv&i#i~Hf3qg2H|(&8s%BF(9+Y3PfRSlFK`SG4vtV0*qh2s8ML2F;d3+Z zBTnrE(t{z1nVD#|1lE@FYuegg@)(GmQ7Ul!Os^Wp$Jwl=rB%N)`TS?;Dnoj@l5Y90 z7~?M@XM68@$;k=B))3a_^MC(+gnRNS`TR-^=7?JhR!8Ffw)Vl+35L&iLynJdO@A=t z;Gd@e)Pk+C*G8L{F)yi7l>GVXl_xVxeV@AXO^;cSgj_nA>Y+KELVo(iLH3$n*zSF9Q{F){i6{rhX&gA0y*uVO{r@Z=yVIDo4)GF%_I;~?Gn z`>$SMWW7HuEbLI=VI~<_*?o?Vj<`Q{-@c91MX>z*`4h$`o`Md)u6cTjP*70l=<7Rg zuDKN78JqjHX7q8JW|D=M_b{&5u3fuOp6`G!ZPd#8y7ShC$Bux*Ov={Qs5I;@W8H>k zhL#fw4}X7uv~(v99XbSoI%aVBh^w=?wiqvLF|71)KHXF+j%w7sZ#pv}VXn0{O(oP$YPUmcdkEs%rg7S6~Lfh7&yhl&O$yfM}|ID-A zg%$Lk8SClfuvx`|@!+&HY-ReEKI<%)qTD+Y>$Y^xrQhy)(QP&2!lj4BE>Hs%c*ylnm2#KS5m zI6uoBTv*6uV#+Uftu7gs8joGe&Y!zp`+a76H+?{W4J~bIA})-zq2#X12C&MLaWBjp zlF`r*iHI1xf1efpS8@%{lyCxSnv|JDMTzsyCq&byFkZZ|VM2M-8SB1-qoWl~Oy0&H zc5>1^MisS__#y4=7T)K#f9cSo!5ukB-fsK0L>fE4C@9kIKaeZAdq04Ug6cH6L!Mn1 z2|c~_>#7c|wU>f|9oLKB(QBHRoS&T!uI!h5l%Z{kQ2NH8@?ZLAclkEY zH(!TKNNBWp2~Ar{$pOw=RM&NM4(NZp@u^dY)_$_1bY58na7n@f|1)*<`Dl?vb~W|+ zpGD5c4N5rr`5f$p%)hGOVnk=@vu}>`MO+JcGeG&#?nTw_&xf+}dxglIQ6H`u`Nc;? zJt!_N&g8F!E4o>@uC8tlBEZ_xqymg^-DiI93@(=IZw~tLFuCek#>vaVO2OeBajMu)1j;8fo{3mTs-`ru*Tci z+|0?(um1e`u4A#DA;t?ZD+r8;DCR0W6+(HG^q7&dazv)S z|H88?DDdzEu(!IlLrcYVXJ3=@VTAet+K*vrsYhmK23T6#$k5-ipFImQn}PCZl4NA0 zv-?8ovH$jx|9g|29S|fZs;JnFO_K{2Cas4A@?RENz`EwDyLwoRjHMo7`-AwYe}} z5XM_h%T_=Z&g669zlyB`Be~7W@P?Ht`f>6I>2S7E%qUb_VQK1KGZovL%Khd2eBOmD zuqI2(xi>15l#o!Fs@ml4sh10SNn&GWN8q77;ND4-Ztx`~cVM|)=?j4j_MVRhzt^Xm zvBK57&#ymLF0%N*n?rj{?6Vp=vLd0jJ&8pmqZ!%CbG>eU{5DU?oc|OjrloOAQ}#a$ zQ?|wS)>{8P6?_(rS`wRgNck;0yuCa>&tpC0?-BF$##*f1JrYzU;F)8*wXxbf*|_tj zo!v&ZBs)8MO)Iw=T;mphm8Po8MbT_F@p^3_%Xu%hYfDK>!;YKeBz?wwdXFDfdrs&- zEEt{X;1yw%^o_CYOn^u8?g7>n&YvaA9OdPw7(^BfL-z?|Kd0r|LOh+=&%1CT`SG`W z&n}OLA&Rw#KuqyR5)xX?cZL-?_eODi+Sy8#RkZ}HC$kTV9!h`CG*5K*W8&xLz7yqTbPU)mJH6@2$mH+nJ`JtJBy&@u65B#+6 zUXpv8G~zUE_=u|ze?M^cY|#!Y>-@?NE%>L1)>qPth*bXD?B-%md6=0gYi3UMI70Q) zm%s-&&+{|Jr|9VR5dRHb+N)Oy>|3HrO6|3#Io*K#g35jMyRv+|@{gCqVFRa}nb~n; z8W zU+@PDyK+5j&+xhEy}||s0d}LrL0+(;qFdm=hA?zLOP?2Y2_4q;{nso(@1K$qTB_j1 zV{2=m9IIFNQlQ*>Wnkyl%Fv;HU(w>4!>)RHR*l+5p=Mv7#$x~^Zfi5%$N198BR|NO zmew{_|A-M;sDan#Z_5xTHTS>TA8F#pwxn)kXnk853^qPUH~0xcrrCuXFyt-6uwu5_ zyVo|I?@r@x8Bg7CTbh`)>@8LY5P-{9!jHPbzMIrpis}KLBM}>zeE-(p-Mw>Tp^f0L zYmi+UBUEk0F1eNxT6%gr zUtec=nO;e%IXE~-E9QP~ZEX$4Gf$$U&yX=!RaNbHot+IY>OIU64^goN-SbWOfA<1d zx{kV2C@3f#Bq#5Jiplv48E?;a#>~RPTe(QKm9@3o8!JvVVT@=nX=!P(22vdDma4kf zR(*U5ui1}`<>5b*F%GgP&YwR|E9Af+8-Aj?w-+F#-prT7l6A$mOCMnan)LJN=zC#J zJu&xQ#pqXI)aQj*5xugqjHA6I7T|y1t@Tdqv;UqGcgB}Ir|Gvft*j`Ive~7e+kose z$iv~#G7L>Kg(fF+Ut)zH?kH77$zR=N-(4<~LkvrdCtFlx} zW^)}OeT$v~J9a6kqLfj6y?IlQj^#Mc%LyGClwLVl_pj0UiA04ms0uHk z!2xa++iT9gzU`aLNH^{)GmwNZcL^RB%nUE~RLINIP}Oz}x_kFH506Z0TK*-4465VD zxxatE4mvIB#ykGeKQu?_&iZgG$i6kZwe5QxpXh>}4igItIlkH7{{BPG&fIo(cWl3{ zb|45qBKM_V@&MqD$}j3f&xn+V%kzwv>0xee#CxmjGdJ?*NSoT*L)ubkoPK{I$C{{b zvqJ?Q%e{us+Ui^LoNUivH|P?(`5z<7wp`;cx~|hpmgref3!&0}26sj4hV5V?YE9-a-Hq+{&_k8!xDCZWkQdwt;OvQ$$yAHpr zoh879`;n2SjvueQ9DV8fb4{0G;$qqN@VxiTKa5RpBlFFHttsJ2r43$Z+1XieEvu$_ zeX$?mC7h<-yXVm0Evl|u`kIRecC&?GMcoUt6;WsPsDr zw(k6vVWPPfi^JiPQ#gB;V_oyMVArB0`|l~o9vn6pv`zcRW?`NLBRVfSv6X!=?0ctS z@Yf~-PgL)t_mW%4hx22Zvo)bq?2WTS;gW-6V_;cgf0p}**4Nh`#BLXIa`Iolens1IX!R zf~mOy5AQ|whQ|HBe&2O+FE1~d@DrP@n-z*>o{P`~o~IXbz#4^^8>Q~5OFHXIlh|l> z4gj=yZ?VhYu`vp2>Kc@o7g6np(o3!j|LEvogZtsvukyz)Sk2V*Lqgak2gO?zwkzTfuN4hRLox5qjEX)4QV?f+TkbvA@?e6Hi;Hc<_r!O|_h^IN}1 z);nNUE)kpi46%Qp|i9U~pctyNFpOc+*_% zxQp$)j!EO6b{+vJc6YbXMb8Tl@o>e&G9mQFBE1XR>F4BKIM2WqteE3{MAPPaYy8+) z>vu34p?m`ERli`ZBE-+dm4|Ep{0FRq^MJXG6+sWlyh_PFi&KYtQel1tY1gj`Qf^ZrcR|83vSP%Y+P+%_y?DX)@@3X_ZO6Na8pn^PTUq60&hof7tE--ZIpGi!mQVw2 z7#R3+We1=)Q~NAzTN^Fi_GLm|J9j}NTeEf|D#`@6aArOjO$v4;KP2oDQGebr__p%< zUU^~hOK~^j$CqaE^yo%+SV!NS8+HIeiDUj^(iRk7RLzwAN z_TJvKCT81k*mZJDj`*zW)t8h$Z*8@yt_eL#RLm+8tFgYD9p{Nl#>1F;j)_Ob`OXEb zNUg?PVwhvaW(-h3#}<8(nukE?@&9x+#QqplWq~!0zX*y}%a% zFY&p(6UC=G+g{(~(5r}bbre`uknFcT-Bs*DS>~x*SCT1`m6tbIl)=#O^=+)M&0IGy#*LK!=_V8{#8B@L@!NaS(Z@s;TJ^)_S2nti@mE zJxFYl4bOQ~j4FJOQBm>P{5S)6Z&}{O!^6XAbA`10MT@ZF3mn9b}rQXTn2gR=Hs{$hpfZ;e1Q z8fL6k6fALTKB62~AqBG%j9(;p%-7icy7)$hw`T9&8ltOu6&t!TmSTOy*5q>5<9MUS z>fmK!EEFo5l-I9G)YX-6-*ih{4~B&W$kTY%HE@ou%<40U(bfT`rahiM-{)0E$DiyR zdqX!aB0|N=>O#{LNs)0Dk|HTVx3k$vImo^-|^E^j>xZs=vyomq% zk>dDEDH)laCns-nPNtiFMZv=dcize?`hU~azrd)b{u?(ld&w_w__h2pn&^ME#de$m~T4EHf=lR=?)x0g0#+N!F;Vq@C+;X%a{jrRL0|m;o@a^))zkZp( z`fV#eR?z+>ZftJtn-B}I5D?FdZKl7jnV;%>wmbue=*mhpv(KS8iV2DQshP(T)4Pv> z2C}nvAu>+4-oB$pzv(e%DqpLsY37yh@L`dxpmkZKzB6g#4~*>HJBuqq2A5rg)hsI+ zG=Z0|ZmqXLAh#P;-Ds1G<;pGDB-??b#}@wMEuVpI?}VeH7Xi@M)I2IXUm}0`^8S85 zzn8rwn|v2EERk68n1&5HoHaEb0;(3nhRr14jNbF#&M+{N+nV)*ZxaGs{i)XSZmZE> z9KCiGu4lLA%t(!V#}u?WSdvxTM(!Q{6=jkCH%otiCecYaRP*0@EgtWEzEG?2%9iEz zPpxV(ZvC3&uP+%O+kOp~G#su9>ansdu;|E)gYM{o#kXUAi&vw71DUp`OO8Pl37`(C z;6bTEx^uD1I+k~d%p)OhFY3VhJULmRtH6wk7i@0Pftmvlpl2_l3HzPXaD(r2!>}EAE8T#l)fs-=2@HF)#IkEhP*)shd&JJPdB| zWGUHmwGCQMG~)Q+_U-{*A!Mfd_O6NAXHI-&lJ2iI6FnqEoB^Q$Q`NBkbAuSBP9W+A`(EZDy! z^9Hs#o=HhEG6m!HB?WoLW2u~=W+5J7-gkI!E81Ly&8DYkds}{JM7ddKL!M^V=YtUN z0P-|33Lzn9kLMaG7}vjxdVUpkO|$o}PdE8+FyIcZoSkoQs_|5+!q)hBSzaC-(Iic` zybpub*UZZAEu^T0_)7K59Ser^Xzcq#p zvQMavtFV&Ugg<$5dt)<^Y2U@ly1Fy3eY^yI{c6N~S~4o*q_UsS|pppKx~AyF)K`7We-<3>}NSN#Vv!)=C0H37jl{}P@T6;Z?7SbqK20TLHYUthlE z=@iLB4sXBu(|dSS@5r<5q;z(+NBwL5nVg@Wd%$~({z&j?K#frEDc!!!gIEqc2ajG> zUY=)cY*pp{h5w%h6Z@mmt!&a0k~?;BXKA69eQn=E4MVM09a&NQw5uPJl13U*El$3$fchS))_6U&A~px~E`B*h`Q>vf>PKuT^&*g|c!0ZqLA=i6Xe# z`_0aml~PNL!#G-6=m;#M->>2UJ`$K`4ujN08}lV?qgd9{r=Rng-q6XbQ?TZ_gx-0s zn#S+;rYF~l6CK`LtJlFnj3A1|iqqEsF*$qotmW!$N7Ng0T1LG1Nbc^LNnUP8(amLQ zWGeyf&pkla@DnElm_0ttD3{Lf`a-AJsDyP5=?4$Xyt4ndIqE_xK*c!4*zQEF%=D0O zKa9LT$L1(Duvli@c_;8cb_)m?n`bA~H}RM)JNWsoj&Q(L7mEiYbaOpTY%|!WTMhrU zB&wljZLE(xh3^75B2IpGd$apyOTtyw)8@`AGwV2SHKTq+;hbkJP7u>9ji-*BN#9=c zlmrL`od$L~HK*r0!+eYH#0gs@3FGO$7wsQ=yZ>&i-bz;LseUCq<-IZc-|?;#DdvIo zX%*1XmO6#sBc+2&ZOkfmef9%4T0hdTEbPYfYP{2wBB<)3$nn83>(Ic!e6=u@G&MuR z`WO7h4C2QzV?%Ml=Er}i+lf;L(Ah@mdwRkZDe#G>PRZfHLqvZ~Lt`&<1d)^e56>!c z9#DZ1ZOq9dXI>Dr5p)qDiqAu3f*#4U^YQHqlJZZtIeL&>;2eLOw-}qW0&T?HUL;Bw z!944I@?^_HG7yc`4wUt9aNtBkL@-vaMk?9l-Q8I&tv09cG{)tL7qQZ>C6O{&$r;WV67p>UEkFyK zB}6YPDzXu1A-a_d7mm%JOnv?OsbjftJ*aFVWkIYkm*qQf=wJve;?pM#Tjzy^r6>9( zYo~g*j!{3uDo^rUi=u&HGuG)=5*3gSSV&^;yD^KUUui$P#`sMGGSosEy2^UOp+|^p ziVf{5^+>2Zq0r7Ixjj(}?JMcw?YS4>B_)1=B_*dDo_kevxIQ=+_?l-mJKGJN)8DcD zfm)^%4O;_#iw(u=*Tw!caZ~iE7{Q!30!tMKN6Z^)LWgXJ3(-6IWBdJWB>#RNA=IR? z{c93?{DmSAui}j^pf3A^n2vma^~SX zgzj5+ITVyOR!=?*3>4U0?@7qW*kJj*M;^t87&kL>6ghp<;Ly>K+*}HUXA3E^ht)wE z>cR38E0K3#r<4L@3hK!V*IzzcM3O^-fJ4@ESc@Zv5Eu7?b?f!MBysgyx0ngS9$$}+ z|HdlndB@5A)s*;mGhLSKz*GWS_k@z{y6Y_^YdHf7#Cgu_%(G|R*isOVs~R;ptcKde zwqxb?zaQcglZ!+LBH_a|VxX0e#s@169cSm8eIX;lr>F~|dk3JC_iYK)^_w>tN?ccG zJB{8DT7=fO@1PdbeDmc4URh(@CK*yBwq@;AQK3hQ%plU;d*c|=gB!=h%l!Q6{g!*n zG_)T5%(q>$wb%Y%CAK~1Dd{JHxi7!UPPd(mq93zAz62OC6sZ#CJoDSmbKzXZ$H@*s zoZOJ(`BBKXE31F#1SmZfmA;vR%#c%T9Ia(yCmX6JIUvnSd6fE@Kd3O&{S-%z1nY32 zHm1?m=0~!$kye<(`-KGhTXx0XBTU;zkl6N;f3RGzqCpk)wWL%?>-zO8ILwzX&xY@2 zkRvWqq0?@FojJL-;rH%IK*a}*y+PKPAoGzQT8J*g!#8ktz@V_Ru|=k)-od|soZdrZ z2Z*TZchM&&zeL-*|CE2{!e7<1gzzLVO|St(6#z7D{l0bUL8!r0-RCc9)UNa%~s zY#|`osu6Wi{^2(K?d^Gj?(vqZpxWBdh09qi_l4vBbY!{XY}Iz<8siV=*mYfkFybTx zBMPXH3GmgrP5AhQ)Ml^gMGH_E^0NavC>#KU+Wm45gI{>=En~?Cj8xaDE@3}`%D+x+ zW5gxY;v-q!M|gB*=n1VtRgi~{j+OTM(w<$HCy&v+XnMx|2fJOc4d7+zvY{i2H?>E* zmk^Z&?XFKX>GDz@e_5p>X@EsoJt##~|l#_LtkDHG>g$ zmFVa*# z;VS2z^YZ#+O&%~lblG4oIok~h=6UBbgl`thQ*`ZGDpFFYL*H38F}Q(K(YEi&vS(&i zgOY=unp$sTu7T^Np#4I}vd54N!*pqGAc}%qujPXePPA~Oic%iUHRlw`z7a%}^RAP6 zgQFH6*FhGKm_S z$F9(4^Kx^Cdo8Px0;vFOfnOn8$}mTKFLvR_Ax5iO^Ft%@5M#G7y5EpD9>G9Jiahw^ zaJV3@U}j~dh`8qe-~lzd-+@79@>@SfIz16biPwtehbWw&7y9z;8v|6RNRLwB3rZD^ zks3;oI+rRUDiCd-c6JS+5u6+8``I(zP?FjC1SAXQ|GM(W4*+`pAFv-bnK@%$dAa)u z@L+yS=Y;1ti4sKC>&u4#bG(?F55{`S3;$Qd@vof);?vX)A2cQyN)rX>y0XS|q`P=O ziGSx@=Ji?thX?4Mdg-CqklZ*q`D$d?tm?^W!@}Z@IL!~>4JZ2jLdCt_5iI8O=iHc~ z&C;wewV%axBsgVI$4EY~7$8(K2sN5@?}Yp|slLiGF(yj~vjOfhv{uREEFNp~Oa7o% z#aq$1)@e%YYWwWp|1fBEG@oY|>Hj@a%Q%a<-m9w0@rEHu=8N}xgM%Ap=kx+Wx`Z)! z7@ZA^9Db9|5=dx!mMi8vcHcu}$I|N@hu*V*$yNsf_vf2<-@7CX!vE;8W7|>+Q&3AF zg+GjmAsYCfU1vLszWgC_`BaH$Q2z83xgs7Sd_LCe)EiHXgSjg4Ijg$wa&fwq&vqaV7LJt4o zO@M&shNAohAhgi}TP~SohyK6Vot@%*`+p7QSN%CKEa=P7*r*~LGpPh3^ z4`5}pa2}}iX^KCL(HR}Wyc%*=*~9#Jrl_LTf3)k@l_(a;BUm@SIESAedstHBA_E}e zc~np!ZfN*Xp0EDWNq0q@B@Pt*K%`jRrdS7Yme}KALL#G0R9b0{~(`nN)}9Z7pjV&>}E??Go2>89I^0FFu03If*{_`tEj+(??wUjaZeMet<~?ZR6qw{|{r6*0AON>BI|f!t@I$e-_SWW;#DRA9mF%0+pt6 ze0eP@`63t26Z-n%2rM;t=m$h^XTGBhK8;OhO$cJp_#FVL3v%e)<7Q3Z9Ms$*bx8`# z;JW&}7gYU{L}uR|#7;VRPRQ;j)8EV{dx@l0SmIZ^I1gwIsBNc-&WEbt<-YO6V~nFD`LbxJO57rG%Ljo0{wk&lzs8DZ8XhP9ZLF)Uv?G6* z&;r**oJ4X|0yYJ_7R*57_cyUm*{*5o=+r<@9A2BmiZLUuJ$sS}i53Kt|EC>84HHqx zSV2bOqKjT5B4WGW0G6>aP(%WwMc42t(m?Rw!5>I!Xe7s04w+vpNUB3KOM2kZpAPOZ zZj@AC<@rE;;F^D`uP62L@&T^)V4PAQHQ`ECD18o|?q^{3RaIuK3DTw@Gyb;KQlbM- zI^nEk08|9`0IKU-M4Q-KOb0NZ&+74Raj%zcsS$%J+($^`F5^rcf~E_3&wIJ|EaE!W z1_$8bghob2AeV5@&K}k+n7V*#U5NmRGw_A@ILrV$JIKO&| ztE_eb^a4l4Mu0)UAZ4S~Bi?%zNM>lS-!y*njgTmF>YQ}X!8LKZ zweobbCk1HL=F#w=YRb$^t(n={-O++swVaOgAR@r*EVmoj#6Erc1GX4nt=p2N`jSWu zaR^wl7b*bID886GieURnvf^!bjTfS5Y`COEB?4eoZ*RKZN8KKP!F=}J&FH4yyG=J1 zNa#U=83X0eF7$ZV7ovNrVw=n+-p}>c%Adc-{=Zn{i4$4}Tr#y8uUvUz#&{9A6M4yG z_!@h_VK2Lb8%tezO$+Tx3KW@U>cUfTc>sb;X=oGPN*|Mg-HPk?=4a0UkqFq z1nx-+WjqG^UWwDosHq)-#$|Ty18jywMcf3bcNzM3U&5K&k8^^Z89$2`#R?owV>y3S z$@EfHTboQ;pIC;L#rAA1PHzVwQm6D9l_O|I-zYA0z1RTA&)^#571$FWR&9nn-;^Ogu zd%=~8R9Bl5-~<%G-*XZNOW6_=`E~OC9yxU?h#()Sxn^K*XKa4Og;vs66z13O9s5PM zJ?&cGGD56)pULkPSK!xw9}P<0&5Wh6uRuc{LN~-beVe2mYr)6>85;q9P3flA#zgFw zLMO>NK(=T^GKd4lAWB`8ARYL(r}L3g3|ndYNm&3-On%=A55?*R)pfE8EpyIWeUxyLhSo0aMJ?zNfQqOys-e}AHuQHZk8XFc9PNMr103w#c) z0wT{T=%f*$uD`6g92!hB4O>MLC~FDq_=Nb|ULlZ5$F2xmYmQu7mvx@Haq<7MX$lJV zC=+nZs{0HpIvBI}{}VgaIBT>Al#I)`G$?lX~)P2 zb7`p^t?0+xN+Z@MfL;+$fy$y&{Q^BB&c=C*5X?Ms{69o}by(GF(>2oF-6fqOjdY1f zNsFWcqEgZz(wzbV(%m8=(%sU6bR#Va0@Co!KJWWp-yhHQoO2NO-oJg{Gi$9`Go#OV z8|+tz-fTD)y1M4Ti>wD7yZcnvWL}Aa$qS~7j6no;`;`(=QerKv2M(2;+`&PWUvutB zP?BYdS6wQDvHW?Y+`}NYoNlDG*7@EehwBO@hTi|Q61_4gpGix%!*4{>h^~%KISfo! zWl)KJtR6)-Z3mkiv<2~kLkX&GWRM47qz!Zy(UGkNfw3B9E}?+emH?2%-@V$r7eDHl zJ;gom1i3FQJdkZ;zmaH%Rau^HdkxV1k~L7$(69~R2)fYy5UmGr@!q+M2iU;|G{k-f z%kA&}Ku7-A%~(T?2s|DzVHqFX-AZC-C!}y|VF{NJ_=v$olD0n3yfj-MP$ZK#`H@Zm z3|$V-%mNyCnV24v&lh7mfaO0Wh7Qm1wNP2j3Z93rU+3H$EYv+hzz$-eqA4;U3}0n zF^K`5g@HfMC?J3jj%E+|q*!#2%3S`~ zf9nc=0=G%8l+VId4qRR^9~HJ6Fv9eak>z$eu$LCeqY4P!`D+9%OhAFGx-eD1W&|71 z<%=ps^^7=sX3k!-Y5amM$eJH_T3xv_^fzA8 zsNcBRi!i}b3)vEel|Z6w;pQN8wm841aJQId^a8@4z5@1 zAu1oxkIgI~5aYhIHw4Va_4;Q`_W7kylQtQuheVTwRi43ai>TjSTUy9#pvYccxpRQu z9mJXTfr0mOfxnzU1gLxM3w>C`wCSoq)cpMk{b-th@0w0N%OiM=;NR)aiShBVAo>|pDuZEJ$~=t(?B8(L{d;pYaJe#^&%2ASyD_y1h$)-m&>j-Oav_i#Myl86pQSSOw>X9 z1N2=&s38Ec7IWRyVF5tR>uOM6@ab`%!hp_LgYwzK>x(y^YNwLj zpYywd=@qOgt1tlr#8ZnNTv0eYrG!t2N*@8cf;p(p(8~ianf-AwAf6>7RjjIP^qp?I zl#gLwj)Ew{#tYx+XQW}jTW-!-OWSKCgD^${tReJfzTyFJ1%DdH-nsbuz|8mNirn8n zOX{F0LeY|zR{xH-8$Te0WUFA;z}B~SVLq@qfCiX*ptHD+S$ZE{`(W)YD`Z3=8*+mO zr{#dT^Y2T7*tGelRfe=h;U2WeKpW9bv~o1{r)L9Qb~Miqzd*=({59RCGo%`9PoL}; zC=0~hnYGmQSj2!F*17S%hk`+0Kc~E24d;^vmu#q_fCSP0U8hJtL==f$s&93^-f=i9 zmXVS1{Wmotu(d+J^;m5snVVb0VTK0Jdsto1*XZ~ff;EV^#l?QWnKLA526_r7)^SXb z+vgIq%r3>s<9TT!bzEERSg~cn{0e3HglKuNQX;%t3JR{edTHOzYKv(iA_t&uy1v+) z*jxJ)aWKov-@#`we^C~imv<{ef(mK@2s^lEvPlscS&|dHsKG~7lmhoZY>!%7u=VvD z07R^8SnC%xIy|+OUj4nm8W5OJ_vWz#GN}1MY!9g|A;Lm20TI-q}^t1^>BecV5k8;rwN@Ujv!(z z%X$M)^{DvyH;FqQHv1%knHo_f0{Ir3rilnlAPP{kzV;E5xpaI#S4#o~U7H?U1JKs; z_x}h251Ii>Bj^}o&_e(`c6cz=9+t6RG!Q_s5B77^!u$cQ=g+@?Y6JF*OZ`)8SDxpa zI{b~tc6Vj2T!LS3c0j@OSw|3`dfEopl%UhuS+~zw0YAi60018xTBvTDO!%O{>ufK+ z!Snt%csf;Fq!fuyM3ov+`3G5C&p;HxwY-k>;X}@Rd2U(JtZG2P``8T;@WIj^XjhNP zN&dj&=IV_}6J>jq)$6LNv5F9`7oi{rww!-U2B8P0W|6?1SgmkvYI45)j*Q!vU067_ zJF?khGb7WPKpZP zT|%wWl)SF-fx&rcNll!4s^5{+bj9O?`T7J^(27B%fPDy@Lmz}Y7EKwzJUY{zHhbFq zkTEV4ZVBAk8*Dp7Zl_7R4=O7Xc!yM=&th+`>>kl9!bvir`^XT>tP@xav_68r<0pvIzn^SlW`lzO326A%M8E8$QqMQFqDlH{EK~>JDHDKr8L+ljv!cn6mpHs0d{1zE4^NhI5cC6*9}opHfX<%D?5Cj^1fNg$ zYH1J{1fl{$1PCW-1c`~Q_5+`3(?~A^L*b`SQAymPu&%e-5%=H&oBFiI{rhOGH_|8J ztujyu<$UD33T;QhKeQe0o0yO*gxZ7u3z~?mIWOJ0+sh<9_R(SOp5@%veq8!rTD)^$ zqhEtDK1uK=AcUCm&XwcAT=fAEr5+g@x9|Muq!K9~e>|h9tSk-Qn1Qi8IS&uR!)}Vs zAfu@OgMUZC@8aTEzYXk8V#dH}LU>${OI>^~_vWxb4h6}mP?Ldset{P@&gIIXoQ33p z1r0bmw9@r=AQWPRi_TLV5I7tiyW_*#gcCuCzNR$>VzQ*`%28!!=Z`OGzl|>lUwfKC z1||%7p8)5?$d-kRD-Z-6Xb8E5D1{CFx>2BUb32Dp2KGo2GN{V18XFPnfkLnVF#tKi z;#I{(U7jKa#QBm(EU$!w7!a;?7nhJ_MVv0Td)1 zw0{x$a1ysRTxWlP22l2drf*CY6@>=ZgqC*h^W+qeiV*1Z8`*Z#7&u>w4gTEN7~G#@ zq~@BZaf0*(a07n6vGaq{en}%69IxPMGAbJaHz%y&E-=|0?B`sC5+j__pWh2q!3+b- za#MMH5F&l1Y1-!X30(3s;41qESUu3`ar;3NxGKo``Y=%g?Bc<{((-2N8AT2Tft&fi zUyFuDoNf<(L9ju{cpz){K@lG~M3p~Q+4n{pjUS0+Y3Krn@fIKjQ zam^<6o;^!~1`ay6Uv=ux`v*@HN@qzhJ7E3uUueXOs%*WE1lA2g*wf>kmFd}?A0Bky zxFCfDVmQF)EP}218N+`k@Rv-_UdO`ZtvhcT%4oUEGoVqB^3GEhV`Eq$b|gLY0jmuC zMI?eGOL?+`X!Xg_qSbC@1FE{GE1}gO%}_ZwT-ePNeuky$;IWBW18)py@6fe}Iq{?H zE!kUms$gdTmi0F0FkSjFOTa2L(!si1t!Ci7yFgqHwxE#Chjl z;t;LM%ErT^H0cS?`a;S}_q=6=x9(t=%jFt*GIPACaLw@aVr$)sSU zGny`ZVUSS!m!5@i!dh=Z7<@qYHHMi0`ofp&fJ-YX7iz<6fsb6^j!rLB070`wl<~e!>ZJ^;xjump z_#aqRks#+`WQ>6`58}6MZwxw&d$|SQS$cZZqOpOb(%+*O^*c6@X^|=(i+a<_zl*W@ z{PlfHX7CB4|8fnM1-?=|_*S8Mb9tFt=Og|OtOE!a4D5;J$yux^>&M|=9C!>R`>BuJ zh!hF`Cza_?0)AFD7~JqVEhnd;>A{*Eb#x{a?$so7cpuGP;IMgVaBV zcVe?>WnU%DIP>rAt$z)^GyDDDXXIL0?BGOsbXYLPgpw|XLd$+Y|CfIDb76%=#S(+c zrlB*jvgPB?S50P>hY~6gR`;kU#Yaxgd}J6RyFS`U>kFDWx2<{E|<(RoE}i}Is{sBm*I7Q7#6Y-_5oWCh z3DFS|ZcR7WMm`5h!nt{!PQ7&1Rj=lxpd-82hsV{GSn6=FsJQ%BTSe_~hr`>(c+!Qp zjA^2+F@1enm%C;%#|=0A>@xCJdAMf2XNj@OB7)nyyS*Djl`O2Rm|4E(#Y^G+SW}v= zt^{fi+|7qRYw%$c6K^hVtG3AV)@whmxH)J&CuGuOuUmDTy66>dkmNH&Yg*c z^$-3t)#L0wsG&m}vJW5fb8$-oAfstHE5t(&q%yI`-543^=m?&H#k6xp!Xgrjg{7q! zdU^}Rr8~+tMbx)$-Rc|sdB<(LyZd=xKT#a!ZR8bic%3*^jvQspSoG#*7z=h;mdPta*gpg`XKyW8A-gkpFuZqwlFik40X=v%cq@<^m{4V(GT(sm!waX?8IOT22nh z$p`(MQ3W3T?6R`hGg?s*wH*Bu6iVld93`4Bksy~{29;M4V@msliC-oSYY203NdU}X zhmSov&l5VnEw6@+0iT6~N4@80`@V0*Qz2?z`?&$Pp7ZZ^HG$pOD)t`<(a`#%cvECt zHB*KH;fsFSb2TLT3O;ny6PQ42RQ=tDoZGx+)@emv^4m9#&6p5$&U6im@85~Fbl%0l zkF|7G?-_k8OIRKfZS9~i(`AvC#-6L?@49y~cyeJ24haEi$9fYEehRD2Vdr$I8Kig) za>UQ~YDfO<;v+q^QjjlpdM`0ac;#c`bxddITmRf#(v53}mgk*tr~IvYuTjPe zZ=X8`kznMF1$_TbCqT_R-FoAc)woNf90Si+#NG$*Q6Xm4i>XeQzs-km-`37H30CVj zMON5ljHHnBXj`ZEG<=T6L{I0IVmd6V)((1;*V-{CV!w$OHa`ibFck|!d|a<%7paS1 zY^`D9w@)#M!^xBRTvxu|E*+>TEbM&}Xd(2G=JxIFz7fszQRJua6dnOo7Fy2&H?OfF&dhzo%ks(_g#P;x~PJ2L?9 zT(YFBjDU`g3m!Vs&uVqXQ$pqqN`Ck^la~2l9101iZ5{T~GVkm$Eh?DOg{A(LG(%`T zHh~Q;z|M}nuHJEWLj#SlaI>w0LHoM1|3I{yg~c6g>~{+ntovs#%?PO4M#IyG%gai( zkH3{24xaFEs49DS^rggBwJt@3pkrByOU(DY`)$Gr0e5JlE0iI#Tjtsc9R)=n0v{eC z@O|Zpb-7Q78AOy*{V4kFWgcy#yFr^}l@$c1x{KduDKawSmF$wo$HbS1SvDZoDxqRv zAR@5GR?h9d;f)I~+q@9n(oUPKCtc7`#XCEv2mjToGlco&g0Z~w?iFg$I3gx}dNJim zd(SvBEKKX=v{ul?AG5Hgrm9HcJ82jPh~O73s=>_3Nk4M0mP&Nt?z2Jqw^Ggnyf-*G zanTu)4Eqgl``^h}u5{2g?RQj2Q_pm@TUPydY-8|+@o7Dxd>kG!{&c=4^2&=23u_Dv zNlz_b+p5IKTv{CF$4EF!JP~uwM}K=hZsFp3ywY+(zD&_-7+zNwPjU951_g0CR{{x! z;d_f*y0T|^&v$z>rax*-Rmst$VIulLa)XxM543{s003ow{=|f<-V-LucJ3~*H~K&_ zZsNyr$F_^-k5uasjb4Z=(y0obF_ndd7?3U?h?qKYy3p~khyIy5ltQ*B&+evPSa=gR zaID3JH%0m)C>Tws1J}4b{$0ndtP$j_5jMI#-w+7b5P$dfxW3eujn0-TzOKgQ<;Awn zNrUenPTI_j&(96)_>7_6M9u*1`X1(aN|7`a_~X_UMTLc-PA_b#I;*rq0Nis8Y-g9@;=c`eeBBJB)31kNuXBkraHkOXs0@*%Ven z!CnvLoKYcm8qIZfKW-CNIC57yOg49oAv#Cy?9gxgoS7*J8Cd`8fuGoBHTy*o6ZM*D zUyCcc_~Y-M^?`*tpL(2Res_rah|G6(77n)$45G}18V}*Fm=88K(&4jzNLw#1-fAm& zkO7fa5k9fM|1C%~<{N{$@cFX!Pu2#h1o_N`WjM9T3D)`BGPt2_x zztJs2#j~Drd)s8*b&7W0_ky-H#!i5eXS%r&`A^epYzQVef^XZ_pri9ZV$$vrt}&gzK-ahe2aXIRfSb??nk|)w?&Mf)bXwD``6i z_!+u!_+P?i7aV2t#5DrAJ%Jcy`#WX5OymPq_D_g>uXZ0R-_C8fe!ZM^BNf?txy}&~ zh;r~VfxGI>MF-YiscaoFq>)Me+mCjsz$;a5^e{2_-3z%$!(wXU8ctHLpdi$oY(}i^ z?(HbQPKra;a7Fk+bBYr`e4wYqC5N9{z}HDiR*?Nk04+GUA8s>=C{joMGsjW#&-4Z4OxVfh+pn|lw&#z!q2{9Jeq+ePXasZ-Twlye;`aPYgfe6{>URb#3H~|63@#(a& zqod~VVR3N{1z#C6+c&-vnXKgh`+$hhUzYOimoFT!uK^8_{I>qonjh~VqN%50oxq#} z4&@h?j>bQkJ>evHst?y;0Zl#PXCx9?-j1U&3G6ggHX~?&4gBKb7|V?w`F;Ox$zzi8 z&?NoRk9$Ev{*y%~?#rbX$3gNh0|VWsSvP065K&J1HObfd*$o)EBEoz_UeCR9Xn*;2 z^>8H1yk&P{$2T!iD$*uvAARK0J9dR6qut3?ObKP z+ArJ!u>R(PzImlSY+${kdW60W@pdEm-)nqp6>nS!hf(t@KMZ2?AY&ZwM(%f!a4X;5 zNsQU>I_Oq_7~rw&ujFxguomgCCMYa&vzQlKlMc(V_{t58!Bsno@lpPy?wC9q+UtvVHng z6?wu!=o76kiIl2N5Uz+5t{A##8tpxv3kNglTi+#58eRC$pJJ@HyID9nW5T8Ht3@a{ zJ6{Ho7e~7vd66_UoTu258mEtc&-I(BdeM;de_jA7Oh2!;_msqrj1`s9WA8Se3M%KJ zMMvut9;8Z49ktZ}-A`Y@SC2KB-7rAQ3gh*`|s7nVCz$EG=IOuVyS)SDmnK=exrF zfKydoSJT3OLTX#9j2)k;+G`Mm+Bu`5C>&W=s75(yFQwejl$N z>{fuh@Te%FZ6)dnMbG|ypN9_#NU>3npgxAgM-i7!8=B^j35HGL!Ib#F_gdp&$U{ro z!OrB^1Z$_vwRViAOfw?8LCy}?o19VCHKS+U(8kw4shO{R@-FOqy(W ziejZO?XPNR1w*zDRh73p+Vydz!{|(j^}K|Av+HEBWZ=w8{HDWU&ZfWL1V7Ehdz^0z zPk%1(m?u@}34jX(W=ifwuU*q}GqbMwo1^hYZBxFURH0TTI{%wR|iT`qA&-C>Y{kK=vRaUte{4mWrW>mEo9#;0d%f=@?o zOoZ&F_}14gFArkP06bwpd|x(bZRmDL7sg_VZ8wLJTcUiX`P9Z+b&1Q%vORb%kZvH{ zF|w-&SXAQKp2W}2n)dw2{iqSpE+=U62Vv0&9|9Y0(YmTSkwxLbV}ZzneOb-NxWC9 z(c%j2db+a0q^cGXs7e~z)g>0DSf#2FaG{1jDt^G7gf8&r|_ceosrm5ljlYdzptBHDI$=GIWFI!rYTrHG%{@bN=PF@no}pX zP|4n%5Dcm9*Q_hO_lZ7OPcdmkhufM@_}aca56?TV!w$an_WF?M*WwfZblO|cb~j}) z^SMd;&EP>7iKb7GL+dMO`D#_R<@m8MyZEtVwVQt>!~Hjmyc&Na)p5{mcH>1_+2jnX zUgrbxXd+r}WC(lEfEmv_^*(m2_k$=}Z$acYBNZ0P;LET%Qj7TIEZy8Jz!#t@Q!~81 zbMK)4sL*$19(`G!_iG)& z_**V)0N|NfI_I1Kw&e@PqOcJvlSo{5Ra-sb6O}Ew>(QMv>Y<#yf5rm@gY7zK#D?i! z#)B?u-{Ji}8i}1k;4^!BYDXuJYJRQYqa8`806631Jn-EmeLyLnMFBO&BRvZE>qpgwD3jCcWR&G#>S+!uk;WhnUS%L zS7e!qH#%}qoezRsTztEdj!u&q$2E|1FR!~%b%DfQTK23*_XXh|Qc)#-vQl*&P*6sn zvLSz`Q-Y6&r*rZ`6YIt7Y@z@qhc}OiBr(8Y<)3nY5)#Dot{b>XCBRjQrjc$7z=c%5 z3=e>+I{s66dE7#EqC2bjUTJ-TsHn&mKLye-oPcJ-K0H5=y@(hX5MgTd>zsA$IrGu6 ze6I;?VYn5FuP21F3EV5?o@D1#Cyi@ETwI)n#; zkd)p2d~8!;coX=~jm&yjy_?Q`ussA%sLe9kRQoeLjbtNJQzMYIJ;dZ zsj3{v=$9H!s!%=6w0|(#%Y7VgiQS3S`Vbb`{w%Icu9JM{t!>5+VN}7^R^ad7APx>y zYZFoUhp3c9S<2Yym-x1Kue3ODP2-Uh%@qg=zWZg;<2}lQ!6hMDedw{h)NIq{o|qz+ zFLII{Z{vrOz!$!-K<(mQws67J9%8&Oa>)}*5tx{WnxEe#oxS|Ca23v#U|yV<3Kq_e!C*K!=xw4>_bIFC?;G z=aKmGfgwa%_J9Y#RcM(v7%v5Y0>D9}U&X%-3>gBwTpksYEa#JicdPN4naf|<^Zo(- z_hmWK;y5CVB#W|4c4LE}-?8F|oXv-8tKFf+mx%;tGHcqLo74-yC8YnSLBg+Isi_u7 zAWiIM!im?PjO$|&N(lXOcepr=6JC(d^jBAv)v=h@7ks#~fb5x=n9$|qZjIVKjCw-1 z_gmh~_Sw_@xTJ2BWE!E>H4s!uQ0h%$-&}AVjHxW;<|zb2MEq*c+cQ~F-44=@duY3P z&t{gv%GJq8c8=V)sIy_oO=fA|RY?kA(E+C|!u4r*TS2O%k-{&+K6NsH(k15p5%1>u zL{!YD4jt)}+bbsf);A&`J5tx=P8K|P;;|AODE77mk6ZuentSV9SQPH>VyQ`wmCCpG zB7pG)fBtMH#}S2wgpdZ0cg?zc8E$YRDK^hNg04qEapV zcG}y>Zs*J6O0(6`96LZr0qmKE{y_0m)~hh{BHPVDUmhHA$}3R1mAtFg8y(Iy4LrB`%gX+GzUJJcwi?}4Qc9|;cO+=v zijwwAUY^3C(S?v?9HCS<69l_`L% z;yrO0BK@!g5*LlG6_K_k{&g>xq}#$_*s&~%4gW?Ixvt*B^5&LY?9`!0KA&H{4&AqJ zAGGu*gZ};{-#TW)MCAd>4*?UeEqKwC7t(kXc2WyR-m5*1G|85cA73B~v=*0aw`bl< zIz1YX6rdagWeNu&VAXzvE!Ed0Iz?7|(igvo;gRT9d@w^c0~a zV2ple?nQ*%N17FxaX4}^L4Xe5^S`BnM-M~QItQ=Zm##!${1{ALcrqcM+k}vs5WPy zq(tIN4({qQ1XM|gU1EDHCr&yBEqQ=B>%ytSQH9Ja!_O4+Buf5PPhrSI%E$1vK;Rp! ze+cS*z0t5@O)!L`dl|drFZWXq=WR2WTqFsxm2pQyb5KnWfU)x@O83m-^SG7yiFiI;yKM;%qAAZpk53c6cucJi-B`i+e+7iew zWMkxwUK9h(fth#joOcUCX=!PL(~hptaK?-7?#K*KpAf`-v599eJr&oVk=(cf%d#rK zlP)do*(c)?r!k5@UnC=J3YoNxNiY*gpcaOZxq;OuCPxy{(Zzr!|LOTS?qFK-I>}W2 zpFH?};17Iqcewp+pqntyfx=el#yY_%HC_W{_VM8{T z^6bo{PdxScE4|eOO|DO%TfxIakmriW4;*(Zs+H%5$G2TpBKb=XE)OxFQi4d+D^;)#9h6>s^I$6*Gh z^$DbXY?yyqys1Iw^#y!O+jOL}jpzCfXc25+P{yP{i3|9@}ZLfr24yuI~7pHcJ zy0TIRXgY8P`<{CBt$P7n-nc;kW+tYPk{caMysydT3XJ9?HmOcQ8a4s{aXkg7g%O9p zpYihMJiu@MMM_Q{m7njy%GOg~YY1PM0&9eVjt(t=+P{mjR;1YXW@kAtP5{Ww&g!Zk za`Mjh4HtG%dwRn7+6r zE>6$MIUx=Cq<$nho=!P0n22?h%J;}gGd84N783_Y*>1;Cg!9V9=IR0Qd@F$wUedQ!m7iV58IX22D2dJ<}GxA`sb`LU- zx9jy_W(K0B1fK%{-aWqSVypUeE(tUYj5~tT6EBk6!fXI5g+)-OO~t|cCWnNH&>=uw z%K4~)OwW(LJ2lc)_)tjTwRNc(AJ6|uYQXkK?J!b;4-pc;%t@WW{Zk-)vS@(=gZd zdDB6U0VY0v7fbAX)Wz?#Kec?4dEJjR-vlJE?>g;FRHp8hU@-U)z%8Ve{Kt?#?nnuY z7*YjIilitCh|M=aCfQjp0gYac-1tO1X&hclwGmmik$LQ;(5hKR*Jc%ag#)=n>SW$} z-hC+`o~k%2dpz~i+nZ-#+qnfbFFDo-C8*~C;F7aubI@gI%*~~fbn^*b>)jQ6<3&vW z=E%DIvB6gIlyL$X6y$o8IazQKxTEAgIz$-IGJuLxY9rBg646LHDc;iGjk67mLAAFp zB#(s%CNCcVNDpKpLXe3l4?UB;SS3^^HeAbm?-Cle;sXWP%Xa1e~9!@6+j* zE$kIK9gF$@{w)n4v(OqxOIXw2Z|_IGsFWq6pkRziZ!`-!M#+f3$w&98ZCCr15c1~c z31yX+C`h3sLt%G`N!H@h)v-hsnRi6O=jdS-6&rjvsa|iqFXB7`uXz-ef|>5!yG2DM z)$`oy8z~du65pex)^5u{Q-_9CZ`C3pA^AJai?}7ayX*VNTAK#aS%9tr&g>(iqs><} zK#uy`tjI{%Lj$3IUlW+#>vl1dt+DYue-K|5G}dn`D+YOC-Ls9yc+=ju)_q#Othgy{ zI+U7^(5_#r=19#ab-gA|Oe7U$%h=>fiYIa()u5m7&OXr5tu|ayRm(Mfq3Ms;{DgaV z_9eZdo*n_71tE+bbIUvD+Yce`I1&T!LLnXu2F*${#}oaMUXNh8D0Prv1-D!M@l>-4}2QHJ>TO(Q5Y)O@AmC7g^fy|O}0 zwO;hMvX!DM%k6eP`|U;(Kkmn+_IJW1a_pshtvvBixk$*OH>Ps``oe~giYg-O#)k@) zp8O4y08#Wk&l$^m{*hj@YiCKMZ{6125y=OC2Wr>;&DmT4;#PnPO`1q^2#^AplWg(1 zPWTpt&C_koC6y-`sFlrM@m@@-x8^JvK#3@n-irZhQVy+e7_5iXXyTpDsjEE+*){H( z|5;Rnk~0(Nl3>hGfb(wO!0Dh{Ndby9@awj+O8Qdk%Hx8KYTC+ zfs~Ce_$y~@I2M$>O81U}WM?d{J=ql1Nsx)+7Xo zldqGJe7bLpzniHs`(>cVy}pcq!Ul547PPrn7f+?-jHgn%GiYMq`C-Cw>BtWa6USUj z{zI$=$bQ99%QAL_A|p{XVBP7U|KI(@NT9q11`J-_p`^o!WEpU~s5wZ{D>r4i)0LQw zS7>)FG$}-Ph*$#y-Qf2t2`9Bqjy)fq8kUD~qe7%lJcZPAyo0U-qFeEntdbH2=$25) z1S?K^ojb(ln0N1v%G`?Kyt%la2>#~llp!FG#6w!Y3*$6L#G-NQbG6)jyFLTSzQK(> zQoX-oes#_aMK&nsMB8uf9A{6Z{ij>}uINe?;x(^k`DFiuN$o+Tw$3~0=cu+ITeMs^ z5P{qQMrbU^CQux+guell4NU2*y$7}E!4F##6GzMJGM)rLuK;J?0>n^x;a+dThp_vA{ovMM zR#vd+Vx9MVuVRXNpqOtHJqEr>&y<-cRCg`5zjIE1%E5%B!EoH_4+sRIL()mM$Ulfg z9!S>gCebW!8%!+$Ju!&;z~yyzHw{$GZSU%Kl@$#X6nR)Mn@DnzdWCgkS9&%V*#?@* z{!Ow)$^N+VTo8}9yre9l4I+$|7UR2jO-i@Hg3|YG_3RlBtA*vVO9RwF6)Hr)BO_Pw zI~4GViE4qDwS{iM9f8P0r1ku^wW_!j%3bnjpO^?gwQp8~v>PxG&18?gMkt|y_${s< zf(N3`;`T=78@hPG+cJHY+F%`KjiS2P5DJAh+$!ASuLJDcBBB_A$)uVyESgT zo}8R^LhMR=tdtKDtml*uK<)>+!Ah(q%amlwc`A^Ko|>hp8U`gh-G8h}qMXFq-u`~~ zO40C*n;)3re#idv$C>%Sr+IrSbtncAg4cCPIKX3K_ia8?CAmM-Bkd}VL3b0c>Eyl z>6iEQMvy(a`d+2L^#capQv3Y9j|P&ws(KV6#yV|gyaw&@_;|kuw|OyWt(OMYrtkvM zHLscm5JRnBnHd5>I=Uf4YDEp$a}0e2NE&Y=|2hjAmSZA(5xkEhAe)FVZ}#+a?Rfl* zCqUFj`V%w*2crEoY{25e502mZ(;ZL=Gi0O0GqPQ%c(@t z=x``DV2?Z%z^2(0%;6+8mPPMMS_WSad{F3K&geviGMEOW)3z7O{CnC9p%wHYP+_|) z#Xo%DPzi76k;NpC}1O6jCQj~--VV8KBH%5C-Dh(F#Ige0&%q=!3zasXr>2?>sEeLXUwE^E*Cj3q09 zg^^Duh^W)DO0Fb-o>;fkw{QK6mI6V|2jfo$0Orf0)mbQI>nX;M)#EuPo5eKuwr8_t z+t>t?*Kn&nN3SwzC@Jtt5{aJ!v|%Ie9v|}Sj&Q^gvRsHktBNv*xls7Xw{V=C)*jrq$WG^7h5kqMZMk7Q^ijONU*!{}&2c2= z@rfEXqshK{#m^$qu=^2Kp0+xTjXfoC1;YZ5*|p8jP4?C16JKN`2<&&S_d^3YxG%^6 zPWnj6FM&sFHAeE90IVPw_)^ljL^45DDn&voB}LLbAda#yH;K8HQo(Rx2S8e@HB(<< z7U&=m?cQ{@))uHWbTPCg-DigtP@HH(SS72iB__)`DTPAg0ah$}|H1wDyFyV{m-2U= z75G0KiJZEq(f+6CfDm55h1R32)-(oHW-vWKfCs+QH$cL~9vX`%?2c$E8XI@ik#Rj4 zD15^6UMMCrQ)KUp(uLMbE*tfpZD;L2c)XLg&$Xd;lUJkHKM_zjPYDD!E@Q~1CpDR! z^>=2_uC+&3uuWIE%}+m_=Rr38z8;TA_axMn@D%SLB zed`j+ZF#!XOv$^=JL6EvSa!DhNN7Fk`eatyDt9;!Gck{vE>c4&|D-k9i45m za63>V$^60Qija{xIFRr|aR4hoftY#-iRE`T78aKL%a^Pyqxk2{&nxDT69fl*F3J;Hv_+UG;s}S-%WZ23W^?1n{i5_jbH=v=)Rc_4 zAy@L(h`ixR+DQ>3Mgm#b6-R0sRHmWF?L*YUV-Y|QNZ%LKtY*o_zkcNUY=yf$PWy{}&>t6xGr;mal=yAjpfqy($*49@ z)*Cl02u*O)5IBOnuHVD%|GWVDKV!YnuVTBmU2;BuMu8zW9WhYk1U%b$eyoJh9g*9A z8ohLqcv4)p+YKflzzny*k%A!7U`a&e3aAqH2mGNFn!hT{W~2hOa=OWrO)QlN%qh_~CpXfFQX|Ct5V$=6Z&K9*J+9A25UkvF>?_13xlL1EFM<<5{Uy%TH5}mfwTJYA!Ye)CkBG8DUJ&@{`M6TlY^+PMSH5~i z!4enHq0^wHrKT#y#p!CJqGV?6u~)*>&EYjq+(_qB<&p^yh$1$u(Ig~vx3+UEXMfnS zfPAw&%aYCK`rOGcy`Nr(!OVsd5CPGZqn?L~H zK{VZd1HP~uacN!RE{IRbSHT6g2r zN`BqftR(__iirsfB5pWTU7NS_6d?&`A^db7|F*wC570HoQ%5{}hL8S+JQ&F|fq)h) zhCU$k7{;v|e65BXhxo$yTZ$3hp{P$*d$aP0K>O|;TXG!0!(KqEt6kyfK(N|vzc9i( zSsys8a(*Taax-gpg{)TxXj^hU}w{xR`ftFS%7_Fg_WVA){q3G{`Q4J zD>2)zg$v9=P0hc@ahOwJ^lF=PNM0F%`O=<;pZCvq=j{88cEHqky(Z%Z-oUkjWVI?M z_}*yuwz7ZVFHe+MgYOB!dSRIpkeBXZJoG;~BtXL^#MB|c)FDK}#?qv;KSB^FHXKH3rcMWKc=oI!Z3^!avO)G(tK2+#YcYYaJM529@{XZ%1{e7o@W0zD9oztsm7fzuJTESan4 zWoC^!h#Kmu;ypw^Oq#5@}MgV%wweKIVS1vA;r#>Rk6QW!!qkYzv@0V6`1+JnTe_0yown(rGIavoTVkL&ZCk;L(n#9HApS3Si&)r;jFXq zgD}W=O7kT*P5=B+sYA23v)q!3D>`IEPzLXiU>IMGtSAbVzQqsyjTuJ&<2NNh2uxku z9E=L}qR$K^SNp@kbz(aKNdwUqJr5SF{Xuol8bME{i9S8uBHFIg=fJIV%t3*M8HBb3 z)n9NTR;M~^Vd3IJwQAWBx48#eXjFl-nwr^t?y>H}VvBY=4a|fs&D$dWKMMt! z<+mt_Etq{HDI}ft&4s0JF7H4Mjpf($Ckyn?)n_gAt108)S%O?4=K0y*NS&KYt!K5n z-mpoG0<;+7sTe^hF071e@>_x`2V@tPVEgetE~b1Bb$HjS;cH(Q332+k3GB>U(8kmg zEd*zon@y1v*g$uw-rMeXx9g{?*1$Gw&0~5=3`=_>TCeu-%?KPOJg?6JPcN1R_D@=u zLLb|6?jJj1PWi(PdQq7H|D)>#vE+2=rkMl?-_+FwB)oQ^5g+Wv1^>;gr2sHeDLZ~) z3DmGb7)?MlhYO960fT~Ud7en1fm^@|!onv*A}eV=Xb3?V7TPgvz+%}OMa5ZnvWN!T zkkN^P%uwJli-`m4gh((ps}_#3HEiea7hTRH4Ns@9KL@(!#RHs3+MQ}nwGe{=Iw#1s zwxA6aAIeRpy@&$ote}0hI3vK&EplV6@d?(zF;(7}F-vN$mf(@DdN6YKZN4EE6tfKl zBWlL*FS6(IqMDxcC&$N~_6(&JCcGO@J&usx$b=rQeelL?>3mA`FWIm5pLjPPJ2o=)ST;RKDSW-YRd=3Soh`S?+P*H zppnvQe0gj{k0;{o((n>A&Ivn~d>v@od|kGT2aIj7O6}RvXLi)KC`l&&4fD&t0=mFA3(jteKQH%gF0})Qu(p~Bq^$dGI4R?f)EE~qRyA}LG9)T&KKZ~u<8=} zvK&Z0IZAUS)l$i^;V1@|f+=BpfsQ#5Elao53Y7ueNXC0ehi`#BEa+#t{KT8%JqkmE zdc(8?8>=G87>2(i9uGMUpUGAm!ukTXlRK%yFLGd)vy`IJnTmVX!f#m1QX%G2Obvw~ zpud(-c|aHj!0w@~n|NoN=kdiwh1i=0sv-^HwWDoogl7QW?BS-3ML)6HydY5!(zOQY z-LT84?fNPi!Wy(%L_sME(G)ZF-^mWAnu6f{^9mcT-?)k1rcvytq)vP zlu(jrP=JC$F*>(Vk&%nb^@0N;eCt2dg?x}wHX+JTSklD0W7+yBU7q5A6ua5m!93SQ zDwrX&lIZq1sH6UY0FwY8IgUSk zbjh~bwc?nYn~P%Rqa6*f362k76`-`7Bu__<>Ew^)}-x!0ciOMI64&Eut zv0PffWj`u;FMB0H+fPcOL&!A1rimmnu%HRf0+fEhWrr&KiQ*Z2h;{}8Q}Gb!$%C{N zqr%Wk1yMZqyAb6YQ{OX8w_m5&pw7f}bUZ~632=>(nZ3O#6RiEjfP*j*uxDM0`d-Z8 zL9r?M+)FHoA-vtZJ(8ck>*JHnDrgrr^(p}mRQm4u6QD?vZs}b#4(WXNvxjFb0|nsu5&R?#}xpK;=F! zh><2baum)TCbR4)hIlF}q0|UsP|H0wsjTD#=MgC}n~6KJSL~G*4H?y)5BTpzk@s{~ zI48HZsU#-1i;KtMtbt+0Kv_iV!0T3uFnjaEr<2z^3-Vp`^qKdi;mY06j(8!Kd41Wo!$~m+~PWDK0LaO??7Xs73RVmj)~_kU2>#{qRJi zkqqeHB=Wy7kXpYrnn%{vk$|_;WsP8ha}e^Al!Hvz*w|LWFA8;!ghcep^37J3Edu~O43RAGE@@lqz9Tu%S(UWXSlYVJa_`;X}&ZN zvN$<$=v#_-N&c0W@zA-|2oQO|mu0=cHaq~hhCEu=qw0YEDB0TLVqCjsB}yb{Q*x{3 zux^cw1wuf#bw>%=x>p>6W4Q)8Lo-PZfyXHuYkhRV>-}ErW^Mgx&L>?Uu>qO77{PFj z{V%f%V`N;iLLqV>BZ-sC@zch*HGm!%EKfg*xUBwT2y zaTXN0_+D9dmW2C=8`3Rc*z`n|i+kp!yB0 zlHwyKC5_B=`6mR#zcZQs_$0uO_49MMOdfhoH_EGm6x&~bWU?4AUxtEDkPw1&447zD z-EebnZRN`7s)yCp<)9x-^nm>Cw^{xjHPs_?I@36l@8Cc!$)~6HuKP)2#E8As-)(&E zhtDD)uFrJ)w#yLm7mD}S*?7ZXkt;MNd{HTkrg_O5FxHMN8)mXeQh(%?AQJt{9G-tv ztnilwqzO?DKxVH^Br25_EM^F*I0SkVjUtkHO7ian1U70=@y}TWi})tN4gnUHpoUbQ z=UZdb<$qsL5xEA#A)lHie_aHm=l=dh0c3`LsIYn6G~KAfzq^!+IN4Z!t=D5H9YIqN z3TH*BG^OT0r^S^fsn;d(S9{bcS1#zmpP>B`ik$y>bUE&=Bsp*E_f8EM*1@GkHKiEa z#48uFuHh-0I_)uLIAA2_QiY=J>Eg8P?Sk!2K0X${W=LU!Ht!L-nq#a9vsb?ee(%GI8`*ygyc!i=;XJjJb5FkS{M6Wpk4L zvxk~d=Ds)jq)~_rrr^g$yl~D_T|f=c=BtY@yMY@+MgScU93JIjiigg!0fF8cI)e>N zRP^-GKW#sAWW7%)`AfIwCjfBF;=B2`aq~Y94bq=Q{Y>q~xl2PETp-uk`s8)8x$B>R zs>-|X^(xvc_I9 zIS9-Numwz?Wl`F|B%SQ0$Vad88&}667AsIAFscB)FbgC$eZR4+C|?7A(sA;V4@S7b z`<2itaOrD5?nt1Q`rQW>-P5}tNR}YxIqNwx(|j;20S~yY1yRf%D+=L|pSLd0D&9CCVg5}HHa0*mr>i!k9n4e5NR=Sx=masqSYW*!kh*fipZeLeEzg@Y zkHKPxC>}f5!3HeJuB1tZc$&T;SMWQmhZDA~5$6h2quYRjgUQljOblEN`0US`-5y zo{e-zzt|L#jzi1ajq_xr3Cj!kgg*+u6Y?j#dnv$S*yif@?)u`6xa0?H{&N|^TXwp` z5`EXOBc{!62+0?3#27eQE788oT36E;jWp`zcU`Nk_<2Ao^2t-;oyWm;kVsQOhyKvYj(x{4O|Vn zG_R^i zkJQY66R2+o0|&e#Sjds&z5^RQP?+!0;Gef%8|3gvT_Z$(6k1k+(MFU(Je>C!H4+4f z8|)AS_zS4z9p|UUu+4%Qu}-24VTnS;@35bN6b6XkL$CyG7^RCrPW009h6%7|R3vTA zchIU1AC4V!cr>`+olFwldW@SdLtfB&j zum5tOERC(&1x=?oB+4^6-?$$Gx&s9utS-+HXJwa~#nzBX#;X%7h$r`bijp{)+ZAP! zm34=DVF%3%W^LcRaZrIE3asRSjvS6m=*pAOn>A2V`{ylNI|gz3=ndB8G)*x1i9P)Q4?6H@B{_J{x@VChqz8isN^AtLql^Nk`t_8VX0s5oDoVA5rM z=R1Fbe_dS~O2~vR4IkBzJAgBi&9mzUmGqKxjlDE4zo0OaddYr#>)>&mkTk0`86+^J z=ZMBOG+f4dN9P;nl_%?@qiDLRcDlP2v+cM>l(|Ntxd?B?m#_BpB1ps{NWwjuo8PbW zHs%RJ8sH!#e;Rj8&&-D%i4KHX)AezD1hKWJx zIkeWmMBW#UEN0OOTGd9N`o||u1yuj&x+=WI{PH)s*VxjNW3y`FeH-Vqb+xV}4TZb6 z%ny6w4N@(>WTo=f;NKD#Cx+w&1Rui(S0ksLV&=3o`v5QjYq}0n3CQ2CU%Nqs%%-(j zsc6cP67w!n>_fI^I~K#g#Kr$=; z3x|)-{rY`7u~TQQ^TC0*dqq=O&eQeu)8@umPR8$NmDG!RIDAr>&@q%;$IoW#Lp~fo zT^qL4?!`#oUCWa=9?thDoBtDBuzRo=BP$)w7ji1LzLO8zf@(gkq%0)g4U~KyWWVPc z?1>$+hhx!YadmXfZ@X^J@9OMhsF!3)!THaTnrYti`T6VTzjuQf^7A!MCYogWuJ|U= z>WpYD&X;TVGHXA?KN<`_$^CdrKl{{ot>~qrB~xO^-@lUQM;5Z7cLOPp zO+5>@uv^2BbT-d53Fj!dye1df>cEyUto&X6dg0WS{u^+S_ zDrRmxG@_-AxAYVL+!|Wm9WC(2Y!H7orgv+m8eBzUJaPr6LTy%H09`1y%N`5sVH zhz2Hbr4$EmeiD!J@~siVXEq$8AAV)X9B*b2hWgR?yS z-t~F2e2y&^?#6;Sxf68CB#5qMH>;SLozR(Tenb2eBw-2?y=lg!)s}p%-Tan`k3>KC>qBVQFFBYena@?bRMZy*|+~iJ!E(&t8z!F z&aS%S!6eb+zCnW{ zMKR_dj2FQ0^j6>g$~BD-Zf84{b%DoEX1yL9r1QmE@CF3*?f2bWs|yJs`nxNeQdcKF z>mv2u)m6yG*Z{&Bl)q=){)Hm;I zfSVo%9aRR_xmt)xO5NP=XKh-FV4Q7z9Yq2ei<{>c3m;=^LoSMq8cNZR=g+QI+IQP& zuGX$JQaCo?<>M&~CmXx@6KOssEG==)pUsaHcg)Aw7hI6JIDY6+EAfC~^2z;PzDt;- zj~og56)b(Sn2ew(ymc$%~k`ux)OPkB9Rd|eEgHJ zG!EQp>y-jd;Q6t4pD{?ew>&;)X51{-Q#pPhP8x+#l0s@3lQ0&o>$(-CpG{4*YJ*_Xm1!-S@4jBO+|)?>uXodGzi*_Sje5 zq^ztb+$IL#+eR3@ufleA7P%L2<;SBqQXXew*IFbL{#^tXBtJjLMwcVT97pdG`NG~s zYjUr4@|$1n=c@#vd^klMgp(Ye#qv~*J3Nzgc>Trwxv=L1C!=8++t{+|y^tF}1N1Xz z@>;dccI=vPFnAg41+Psz6&4L5L`}T9vr`n6TU5K^=Xkr9v=`m_8(PhVex)zDO)VZt z*1j42OzUY)e=YAmYgXe@yr`Km@^amSmtn%RhUt9n-O##D`@-@1*#L*l#O ziK2(5in8_kZo#KLH_Vll>q;!Qdsb*(k4yYK`0;M?2Ju+ToJ$1KMuln7+B)XfFBtla zWqC=6KYGk>BA`5em>x?-tMLTy@-Ogb_~@;KZT74fxe`OU#bADh(a z?`6&^i|6&Gf1z~STf_qORpP_tKM6Wn88l6yw|1I$;j*N-otc?B8x<)9<^}zy`S4ag z{M)2CU#2QUJ*!1y!cQFAr&=>Vyq+;9E4_Z`KJ;nM)8{p zk0n;d=_uKg2$P!D&?g+1=OYEZDZyTtvL{`)_{FKa7%#@e_ImkbB9A|Y+?Wrjq;mb> z&hX`n{>fq4N7%q{b@QP~gyBx(B{Jkg)XSIG&%ax=m)V|v(<6n$n#!_4&F^>1t;OSm zt1eykwEksBiiB$YTNU9|pFB~MS0EWTUeXq)S! z69x$r6PsMW_7KJQl~ru08ItQa`c=toYy|KL5CQ^emIyI%Vw~b(tm%O zl>Y(QKoGr9XwFRrJC858*zNaxW_(!rpWo}#7-UWJLNrCG+o-IjiLS0FOHV{=Uz&~j zk!-EK{6fj9LP@KLp>Y*VM|hKta7H*SYR-l0v}V0tuCwKJUsC}9s< zTU`4sd)7e~ve+mEnQ!0x;GNqLJn;7R%JEf;x0gV*g_h_gYeM+dzlwlWjsC*XwdTo0>?SnUtMQ3Kl9L2iZ&-&tnW1-k!Y$k9jg~5%-#31Yv%!WOr!SmzkRT zOCq}&KSLJ1$-GD}j+TT_nyM{?lx&CL5%_@ADt^=z3A=G~Qw2mZim?zhA_oPSf%#s=+pK~~lZx$c0!aMI^^GVD9A zB>bZ9>G51-3}XjD(`>!9ns=Aui)5G#mV`~Ip;YE452TO2nFs9#;_Ul|90#ATS_Csj z7b@x#pkZGg-rw!Dm+`#P53Jq|n3P?dZ4r?Ex9)PjdvzfbTNJ9ql0X!^cTbhA9z5dv zg*C&0-_05A?a~M6UIzaY3EH^#5v~e_#d$M(arb8%Inf`w?qYWAMOiGitP!%3|5;jL z{CMNz)tM9(g_#32Heeggr9K3zN-}Q6q^hr4HVqnm?6_|7o*Vhz*%?aeG@XjV$2Vo! zUREj&{@B!7dDKe!nKzFY?qkw5&9`n=Pz8|2aeID6ot~X?M z73qK1((q=xfwokg#I|L(%^^%WtrS4T@rJXIi7=#g~CH;TgZbD^k#0XCMjZ^DMEXxl-x ze!ti5xDUO3N%nOn>#I95Ne-SMhLN|QWb(^;L$-p1UkJGJ;bGrdI+C2C#?480f3Z9j z>uvhlD`-vm+p5UXA?2-mo>KJm=+^vG+9(s>Eh^vKV~2@QpHJ^E${6<2#`gJ)DdWw9cYAFIX`=m z9V-;W$TGq7MNe-}rI6&-yPV3>zJwRFL;xql<;6BPgWgoL4@Ss$v@fGN)Y_e{UOK2s zPm$ZZY;XIX4SgFE$nah)cO0Bk(1_o2(Z~b_k8&*}&;Zk{G6OdJz(C)Hjc^o8Z^Vv+&ZnGo%zTvaM zM=_-v{cHNv(N=^Sw)R66`CnS1d@bC6vE&a!b<4x0=;(pRJ`jAp(QkJHP#+kG2GC=o z=h_V6_SavP9Hi>-Afjq-r_mFLz4UM%O%x~II$YvZW5(q+$fGpt&g#2zUxUr zE{6$98v#>+A)svyca@uf-r6b_RvNVoC;83&!f>T{O|#|h-4kK(vm~28c$qZyuH3s1 zNr6WT4h$x&jgSR&s2mu`6TExuvsf78!;`b%#F2rFkv*@?&eK@Fx?H%wsL1$F?C?kv zLr%@tm4Cf!tT-f4AN%Ek--@)%Nf#eF6B1+h>8{;*w`>qGk?gs?X)}Ku4T?!2RD{XA2)6$zw#- z)lnxiGQ!oY*TjQ^h+~M3nd!9Tvk>o^CSiWt&S`2Ck^(R4+-hYLfbDcd(MM}@$(>4|E z>wD9njKA*}eYel$IW%)Q&Yz0VyA+riX=%?LoT?PypC3H19GGrGT0h3eSK=1n>{Wdh z7RI0OEtQP~+7)HQ*B=i7zgcsuD@I(s;1o80yu6R^i1Aib_nD~S>(7z28;@NeX5VAV zoREZGlYWw3#MCWRZ5-<9pOeDct&pc5*4tLe%RU)(56k(t8a(8FX#+p+^-$>frD@ou z4G`Bw9lZx$1BVoVJg4{kE3Ha8p_5yYGu53NdPA|6IC)wgb8DWRz`L4m@12=xc**zB z`n(@napyj@iD-Fy`QF|$H>p>Unx1Fw7KUfrmxpE+80c&IDLDTDxELY6{~@><5wAJR ze1$rrXz%o%m6C&T*FhGB5vGiR`+-{W#ES=GgrqoIY`1xHgY&g05Xu}Gd;?#&eFoCP zrV0yH)rKpfHLdC{`baH${Qz7-j6jb@e^U|dl;vgBvoh^(lE&-xik)FZaE)L~&O+SD z+vqmo;n?Zt+TNti&975bwE8Ot5=?4`7c|=X1TAzM*hO2Vgls~qED1&0g$aW;G^$<# zhU8nT0XOxQiD&j~kl3*3w;kFO1FE3*{U~J$$V{4ekzd64Y{sJ`|C-)`<9j~1jS*_i zW}(9+Pg(-kOzf?bF>#x3ZQt*?O7|J(N^Mvj@vydZ+@DV3YYNb)|1sv)P+LKqf{`#D zlPp*q|ET%&*CP<4Xj1HqF~8NpK8ywB`y=9Tdjjm35L=oLoV0>|Cq#LFB>!f&*vC`s zj>&PQ zM-1a79_;vQ(AH;p_KXdt#gC|I;+9(0UdpMcTu_8)=H+ZaHxTRCr|r1dxzHx32{}~p zU4+*+am!QZEn7ZaOIa*0`@0PIVK&H<>+&RJx6}3NZ=XcM5G$)rp143P{FP-N09X!( z9^7~*GU=wtTPwvIqApG-UNouU&XF;&(l|N1lxe87v?ePXx4(~>#dE`Yeb(vgL4Dw4~~dxVeixBTJWC%TM` zIMS|G!1#*SlBAdgZWX3_&&ODfdJdScm4voNKf7VK9=N@g%YFO97q%DWm8`#+31fEd zbmUeJnucGfv;6aAnc|amHGRVJYAda`FLN|IQJvc-Z}DL=&w$;H{#Crv>_@H5y|lMU zlkBFR+SK9KPcKU+v8k~MQuOkYx0ywE7j`bCaw(@6tsu^WA(R-z=QaPs?I$pr!K)Wm z)a*8D6SwIdi;~}dOM3so7!PgMrH#gU*@}=BdgQl>e^b)#-dVZ)UZhkp<1R4nrOpeLX$aIq`%XN>#e=#Pc6(BcXz~*o!D?C%ak|DOXDC zM}ITcPNKJ&g>z>d-;QVTnhP!681fNjfZM-DP5XU6;qcWG32P#Okc-1f3Wwy%-jWPJ zM|pCrs)rPx!0E4ZzDeQ>zi+*>;0WL;*Y)pWlGw1#)g^6=D0z$iWUgFWz3$2H(o6zsV?bNz&( zK2p90ycK;bH0Q_=y3X6+Bp{_~L2i1;(n&?)r=|FwsZpkLXh1!dXTo2k#2G z0RFYwb{|4i)A)GOds|o-b8o%4308xQBhoGPd7JLy#AX3Li-Wo0f#Ic9HeNW+Wp8`QRtaSh{)8oC_qYR1;zjN zwk&+X31x72kqjco%FDnB*dObn5E!__ZcOAo0XmkA17~ZXw-0@9QRS(Q|lr@uZL`2N>4BKks7DWD6AA^Md)d!)y6*=Ay z?%#~Nvot+hjoqudmJI`0&6K2$=>z1cgJ~{lf0}6!Y4?hZH@7ZuF=ySxZJXzO8j8n5 zOKFHPyR5qrqQq4;)RkH*otYbSwmVdrWBM^Yfh#0~E(a#>${uD&|;uXs#v;8nxX)2}1-vpW%{ zZ;1N>@`pSVhAT&Ul)&vcgkY}>oy=?uoRFylKbH<9-ufSSI87^&sCFF-=yc-ZUWV4U?f$e$Qy1Pf+I!>cRRpl?J`&G&&eKx<~kiqgga zwYhxQeQHAaA?Yqk$GF%uKVMgIWhG|1ia|285dbSkvu*R<{6?%*zyNnoc8hyI!L=Vw ze5F15ic@f+>aiT$1u{|Vs(|{X+Od`6M)iglLv8y+lEu|O{NSTXUVQw>rQ^1}8sF+Z zGhc6LFT;o(i?w)p8oI={&Y?y94i0-lVmQ{hzwHT$fWaj2HUm`sv}Bv(sa)0b=V_3% z`JaH$(|BQwd%Clao{k(IlopXMSCMd$yc-`W=xCalU}~so3TB+VR#9OnZGVS1w?%*{ z|7Gxe8D~90@3-KHM4m>F6@|lSxINRNdHTm($Fv~xM@8{P>*1#9YW3VXLv@~k0a7j1 zoKtTixfAyM=-Ai#8B)5P(m98pCkSAmQ%N7pmv9{M$EMZ>tg(0zn>0hiAwh+;D9cx(2-d_`!Guf&j*{gCC@o9zacEx{U?h z1aMIGQ^TFv!_*Kb_lp%9JvJexXzCSbx`cz3++^GhRhe3aadlr`t+FHnQtSwZ@%K6S zAK=%M3pNF1a)daY;2(c)c|s1)7WdJv>{D^O*dogx&Uk>p;*@-bCj}TQty&ohMy{7V zh%VyPCMQYP+m^m%+-xkwCuVQAGDVW8@lZ+MJ5T0rWOvLN%%sRB z(`~2#q(*yHQUY558iA}(I?YbS0|2k}v*P*xQ5qPUwk-Pp7g^0H_6Kz3CkYM@6T!0& z{&3+VOUU>eE{JE<)~EOOHh22*ZYYu6p-)q+@fGmyMvFh`cF+J|#+!}IN1RS{)@SC< zhqb#m_ka7kX8+RT7p3eb3Uauva zVFg=2C_kQlF{TqAy`lg8ZSYf}->r^3zdv{qh`O4KI+E0za%;aV|BSUSRf-kJR9By4+ugCnfq&Hv_Ax{L_W+_wmU?fdp zYKo>}VM!o&)946DXDAhTnfi`;9iBbV<;lEQkGeF<8{X7;gXnt?&$qMi46M-d`K~&C zwenErGTg+|qa-!@D8+Io`{F&<>TlIv$}xvNCnL_j22k0-DEjGfM=Ivasvao32kv*I z>_=?zKuiIMrdskxwak-Z#I>3;9>45C*vMLFQEDkkN{o0+K>O=BMIGCdpyBk9MCs&2 zS@C?)W>X*N1%B;pK3P{D;rf5=X6=U! z2V{b<>thM*@HV_&dJhi0!y(7iXwxLen%WVZb@}T2)8n>V+s+VaL)}aiYfb~Ugad4K->dZwJtZ?q%ZMru;`F@~$_{1TZ6!4DFYj{$ zbqC`Gwh9EHp$Y`itlbZHP|oBWbZd%A%G%v zPXlkFuz7`kA^TXDZzD8hR8v89tM#!2_-$x!!?(#ZV=wd^k1(VLK9S1)*L%qQi~_pu zt_Uj2rWvkUck`(8|yH1~qQ+_LRXZ7L8 z?3Iw(-_l{@RVz4~joDv}kfJ>Qfl>%${?^qhPU?&aRFJ~WTd-_3#5B!%da~m^5fte` zgJksR)6JbG-$ki~Q=57A02;vNeyf=eAf9}I5->pESO!sHX-vhJPZb~7_{mXi+up@4 z<0r1#yl^I5s0R{wU9j5tzdod_sPM zM%!*qO163QLz4*pF; zREOuS6`!BZsj!-a|=f87Z1Oxpzor2|m4Q9z`@joegX|{QY4G+Y5 zJ8YlCI0jX2b=m>8jUPJt1X1CH`uYC+YQ+6=KLihY$7)TOGMVyO%%a=$+?92XV zJ#(t*4wNL`;~PpbrH_ZoBjV-PUkQBCc=@XG+Q1$H^KT7R&SUh#Qp#QCYSmztlnB9{a9Oz6mx_ ztmj&vCAG5JSSFq{7)0NL2kylK@kKrOu=8IWJW-->wBK!K#+IFXm z@E0zAo1FaiUHG(UiAg{Z3=TIMHG8<6?l>i|lD7S(kh6KL>#2e{(j7>n2YzxXw3ViVX4XCGochE-ILQ17}ST@K?F`<+80Wucowek$%%lm zv9VAQ$IY=ZofHvA+R?Eww3M}foSVr>z3_^6OGArqMnsUn=e#{Tos3dCPX92$r_qNb z%a-UUg7z)JfZBm9*mEQuD%FD)kGcQH+3h+AFLo@QJ}WgYp@la7?0mNBQ=1 zu~t^AltSSvt0#Bjz{2IYMFz54&bY&XmvxceD_!o{)9Ev!sQ$B>TB27i5^lYD*Y3!t z}2Q1ZdEAGDTJtV$ZNz z?k0d89%RmQ%54{+TqQ{-2v$#!%-2x4VI6wAYf<@#64GNlET6XT`{B~VF1NI3CXnvD zvYC<8nU^;c++&RsS4NIV9eY6t0N5sU&2*>>_1j@7`Ef6{3}X!qHUU9WxI3PXjLbc< zyPUM`$&-T@@Je^6^V&`Kk-J+kmGFfaGpxlMW&s`u zDTkpe&H8RtbM3G4$>J5bS|Q#k$akYIC0LU=exRY5hVe_IjW}1c2UISO^R17UUEvdT z+UEYN>Z0X!%h8vl+$zWdSy<*fL&wT99K!Dg>jd#(CyP zU4S<(kiSgNvT8ZTHWdEkQPU$TuqA#t?E$N6tbDR>t>!;Z;BN)DYKh-u|d&El%MEl!B zfR5oBG$puQW}fQ~V8R6VudmXC4CK{YF*Q9f#NTqxOnzLx zV#bc{(V{)Q=Bd%P6Ci_a#u=wXx#2}vt~XEqiK>>&@YB27s!W5RSCg>=jQf=?Z$@Wd zbRIOg!!c>bE9KeY))MQGkNYc*IIPb-6*-kdT$ra9FHE3RO!H>b%POj3lbe<;mxn2b zO(D@Q4_DypW0v9mwS+-S^8m+HgZ*QMHib*#6 zul#^6mHyAuf#eMje6vqW0GHHcGC=+q&t7&1hmXR7YffyR9^i|E2<4b9}n>bDL|`-FeC|<;9;J9vBJ}6P83dPlVBNRKwtC+>Enr;~{uj-zKtDq;O z(gLY2L!HnSkK2z(_<2RCUFn;PA`HD~8WlPwT3;ahtf9bgZ`~)%!AL>5y9fO z77K}ujxg8`g0WG1D+BN3s;}(8svauEVuOqyW&znvaoh_Yg}TQNxI~>Clasa$!9{L{)0wzeE1v0>+4nO*e6;_4PMMXpG<<$=Tl`@t^HC`%qB z$+E!t&s#`-Nm@m4hhQ7rUHGC0*8_&nLb4D1ZH;^CABmj&ZMt&M`Pc=ucQC@(C40GY zA5OY_oo`kRYT`cIA23IiI&_lXVp=5`Q8v^``@&2ZTvF&GYbFLk2+-6qQE`fKq2z-#BrvFWH*u`cZC`L2 z?qo(3sZPDG{!ajb$ag9G*3?^KJ$>X)TU0PDF$D=m7?V~W(;3P+@@Uz}|I_vAW>S(q zNB)J`%aNe$lF_cht=$;J2# zh=+DA?61tLep3qN+l(TI{$8M!EToC37tgL**UUgYd70VknGU_r23FgLj zoL`93;gRV)L&ie%Wq~v8&smGD`xpDe#=iCaAxjJ3*pR z)Rm1iC;p=VIFm=DzW26TxFlS83M9GL+Im+_Uqf-AT9oJX|HFN5H6lPnSV&mV;Knpe z4K{@`TVoxzbO8Ozg2w)CsXd*lPU_WV<(VH#X;jM&Mvq!>RI4N6GP%Pk5YbktEX7|q zatP^ZmC|Bw)lXyKVO85M#u2LOG!aW0>0f^`eb2M#F%HcRHW^|pv4gpY>Q3mGFhNTm z_&(xgqenw3k=6}rLw^l**bMYU@L8nCgz2L&;t~c{@hEzk4!tu7IaCIs>`YDCL>?Pj z2%P=!|9+zs&Zx5cL@2Km9{ofidu6x3+nfNTlyu}A9f=($gy9B7><8;(q3_@S7-VRH zp6`b0IVpw7jI*qZ#6rGA! z!`hMw|KmawBuP<9NavhyZF}kar=BfRDCb|8Jl|)VB_2bX0SC$#6|j);Y3u&7HGXt; zm4x&^3nYLqM>T?uD9b16!M=+>m4vt9D`fJaOy;Yx5SfB*ua9mTQt#_2`5u?Gc%LSX zs?}6TdhQO|-6%~!B*&GL#c|ggFH6IncTxOcuU;Q3zo#r}Vi~nQ-Ln?_agar@sbR$e zT#=^S9)vCqKJE0n+Z3}}C?}~-Aro%uBa(8x;bo&VmBLpnl&m#Whj&*!?m#F)PhU~` z<)fP5pLPGL)-ViAd9g%qx|^guB4J30$S3k|C+x59iJ$MORty6>a@QBs*F}%p+aEq{ zd3V}n46QMR-)Nd~@22-O+Zw$havtW4=k{PG-Q2oEoGi&+(1UqptJfTOjBi}L|%w$aF8@LmO1Sjn>mwy29*s`Lfn}%PqX51bky({E7Y31+Bx$~o8-oR|9<+Yg~2u;hqw;|-aI7H(CkDxLL zdV2aXMg2zYl92$w0L9!jsHy7S{C)%}Qa|H1^cz?N?d@djBs^tW1kCxvidhI@5q+zp z%>c@=dhp!|EV3Es65%>d&OKBoqvF#7iH|cr5hBLx>rBhZ$%KENzJG6EK{a=AuylUv ze!j#QO!M^VgM;8iPS7Pu{*xFAF30~OYTL9&_hvm~z!*|eqM!J2^f{9mcF8PIUd%S^ zQ-$nvgR&;ZJV@$ghQyJ1OHpt-bYaN-WFtU%k^tptJ~x+4hV(RbK;SKiVfBLPH8yLC z)!7+!BLfw{?vw+qUNKz>m1g^1L2OWs2Ww>{tBgp(D=Pd}k`5s5(}e0cASy`hnns`$ zcn}pDUQ5=N&me?f7`tJr@UMpz^=s?TaR-!GQiqPL$(fk&WbxG^oU3topNIQNchil& z5&H2>ui~c!mb@JQx?K%TVbgmyw;Vp7+AIB zsKcXhIJvOxs7q^pK2#Q(qqSDbQ=GqMOGEPbnbcQwrNr%harM^z>hU7Z_v?8EALa;a zC;bto-8F2&{{%8W=kDJu!AP_f99(7?oKuOVF0MzjDUDUYOPXauX7W;otnU-+gtMis z*yUi?uU$5sDD7&lwojE?VCS#|dbVEqe{F#)ot>7um$orT*iM_m6+b2m{dolVMhB!ZB1>7L8$+I z>P)ljMuX4QjFTWaB9e^)A@bAv!E<7Ymb`~`{1~AG#OcepJbvT}tims12zmcqXoB&b7uW%E(UKav45SYy3kiF@2!?4VbTA*q1GCJPLGg=*014Vxc880qi7Ms=n+FdTTgm)E zJ@xXr{GNDK*#avd^H08&{q|Fd*ax^)CVMyPRzVPfqN2`}lOP@z1&r$8g3Drbcwhj; zckyLlM=Ss|df%!~kbuVd@q_oNQ(E^DJg#j&N7~4*$2{=cD6s)qZX9J|!T0gBC}GO{ zTz>%`2w0jtKYl!^vqtcMozxBWS7oGg1Cb^GQhQ~skIn9U!&KWbH^;3Eqq-u((SWX`ouB(yeY++r@N#=vPg%!^Nc};U)Bt2a?Bo3}_&`P9h zt>rkx;qrQ@mh^|jnwQPg7oo9A*$*WRmb|6b{o$ldeknDz!#4cPNu``RqWKZ|NJ)*D z0L_0z1!1=OPydD4P>vCPLmZI!ud4?X5oo=`94RVcgOBXPiJuRmOi)fdyJz?$YNP0L zLFQ34TcvWWDWHhR)V?rFl4z)O_esO8Q+h8{>HIZE1-tB#ab&lZP%n*g+<0^;jonZp zq2{=T4qlvfVSd`i;r3j#ms_q6jyma%-!o?1-ZxZteroFro@n7=Dq#xEbjl_zq_Lrg zGbs?`uS>=)j(HQDo)4w4N96cSSW)6OtG5nRv5-jiKWfC9R9jU-Q2HX77j z169zLQ0cQDGioFm!(t-(W?7$Re%g`(0)%-@9S*ok#)Ta4HyWJp2o;rX;X)Orw})-- z_^3d9Z-+84*=}MqKXzs2{4Eircd5XJR(-Fxu z6LJ|~@@{yVlvh{xwt8>z&Ky`g#_#R~!RP7IjAl10QrC{@2pc3X;Iu@IQlk?C@*D(h zW8?Q1GcA%3rg&BH+3ZgqIH7091<3h!rA|0aILQ%xe|MbyCfg+4cH6h=p6IXFe<%Qn z8-m8ArMlFNDGj*EV`J2iQh;ngohl)hzCHuQx3%?Gg?sbjr%UczkJKAe0G&@$r3Klk z$9g=U1~V*3>l;B4m~{{rE#(iBmZfmTjQGvIn^#yN2?W^_ukh?sdAaR?2g?sth}CIH z$&g^8>+5Ts1o3iId9_je;#9`0_-XV;TRTnT7jaVQy*$ECOWzWaSO$jIHvj0~)^+9Z z<=^zuey|e7#`E+z+(S%ilU(PwgZy(7v)#{gY@c_<3i=6+DVIE^a~yNou4{NzZAm(b z(m)?3?o`r_!f-Dw*7B=R@1bmSGcs8S`QYfr#bo7i$oAu} z4JQ?r*<-8?r=9-EhTZv5Z>m`_&c3D-QFZ{q+xd68*<~a{3}L zFBbUwaW|xzk$nDE_a+GplxnNn-w_G|!6_;(zD$>~mnhT9#|ZULkodZR(zwNl3Cs2t zuFhO7hM$Xa0nvsQ2T|Iw1=+Zcj@zJe6xOdw7EZzSqz)L*-)-X<&;TM8 zgxb;|Jw|p5yUvx7#1$3kgS;8gJXkyaWHvYu$LF_`#WQ|&eQ%)vwz#n|aWXRELhKyI zo2&;*ZuPI%`Qq80gn4mGLDV|+QO*uytn*XCI-^Hc97&(R27gi7!24LAU7;g78Vwbh z0GQ~G8ievc5aj&)l?Qv=hGJ7%m%(1eMhjH!qA~K)(yyaOUoXnI$#Ad`X~s%X-iA3N zWatieGIRA!B@8i5{FyW6?UGWB)Dar+(W}}T)rsW{u@p=W;gYZnB_W02IhaT)7#V-W zR+B8P3>j!4R>U80B!1c0C1bo+O-IYs6kWN*^f6VQ<5}cDdjxxw9P*=+h*go_xqD*X?d-RbFD9>(9wC;|O$x?vW5*=cECe2Cjtuvry{-i#M3olQ`MKtA;L1o5lK*f7Rc zLCcRXxLELo5{NEJ7eLFT8~`a1UUOA^gq@rOvvbA$lO365(}Vr!PE6Ks^74~b%EMq` zD#%BaKGxPJy{kB<@#{`7Si`xRwpsHtsKdT z5zYLTCA)MZd#B$3`@B8;DA{gqn7%b9%I|p&%{8!8-k-J;Zg1D5fJ|IYkOJ;a&ZmAo`|%u z(M9MX#DiIBgPY%bu9uXTZ&u*hg5vb=C?v^G`Wo7H$j<(haf~O^qAdcupmyr$_8=`w z8Y~Zt@U`BWcwhOKA&cdJ!V{2I(2nET-p`DW%F-`;hx2zJSa9EbVp3G*W#^*hlov5x zu5}WsIILlS60cF1Fuau)G6q31x86G$NB?JX?wTh2{rkgsG81GDh~1!u9pGB4x42ml zct=e)L2MkZKbtHnEUZ_AASes1W+pB!#Of173lEBmbu_d})iJT^xx1E_itqvMu%gXf z>HQcnin^vpO^kO6Kc?X3+CBjoMFQ&-I2!7&F4_uYlvl;YVG{JtQ=^HwE>Ak{AX*gU z8)6aT>{_fVD?ypEM- zWX7aOjxXx`JFcXvo=ozF*qeFGC|*H{=v}C(8fTrhRj#}96t>r(!5|9=%Ceh>5ixJ$SHEn7iVC+!_|=l%+u|opXy>|fBsqkEHsC^u`7rUpt1U^-Bai@!RO8ipx)fDJE9<)~D~%$3 zR(bTe6)bKg<<`wO0}rk@O>~0xTTx*W$#MtM*NEI8^Zdpstkh2}pt@0B@K?_ea46g+ z_oBw$i2m+vGfa)IdnmxIbxUZW02+%`4CT&a^d!n36&2FBn0fGm8^Wi-FcS%;wzU&? zJT!>}!@biy7#r!Te;q2oRbkc$ zI*h!D2?0!RJ%_QaL31`p>Hxfe+JKd19dMJctjy^^8!932i(4)wB?Y#njW@3(OYv?w zexS^`H-t*07UyVLDKH&hGNK#poSyXhAF1%Y~XJ8hhbndJ!awO0<{6IIk^D? z;6ylths#j5>#bp{gN`T#?Y)axvVP?za0~@D1#1DAHp7jH^X%(a{pK~I3f80!>4Jhq zLs365qW_lp$ zWAo+-jgB|#f}fI2)Hp-TZ6&b?Zdg}eHDdO(Ws8rC6HkZ$qQ$P`qV!5_mZsjARMvoV zeLPRlE~3?FdPkI_0x~H7Ut!lBPu2hbFA`Z%R%N>+TVz~WmuvH}Lu6)!tZS5&d0k~( zvXyylWn^3{S(QyCduCGOGf|ND8|$K#xXd(Qiw`+mR9`}G{JH|aSuAPIJB zV0ME=@ew{__iR|-I*hiaxT?5_mlFJ7FJD0)@*z;R>*uv4o0Qs3h$y z)0Fs*K59`Xv^&e>Pr>Alf5BwQjQlX{iYj;X+{INkxb$7erH8Ogn-Fp*wU^y=DGjRP zcY(J@DC$uvC5&1#^Li;!BT%hLk%74lQhwMA2)ZD7TiUo9N>NO>qziQgDnc`YR1}>V z3dw1m)&+@(&Yf24Ms!kr==Y%WB>GI-sX;f&2GS}henIr-N3P2?c zSf~nmmeFdWL)PdEvW1t?JY){e6p5rVKy8W6qbA6@uy($?CH_8j){so*Sz05vJJ?`2l`vLnt~@j@1BT|pw!!~9e?a4{7Q&s zC;$Vj>z6On@89~sL9N1TxTg2>(7cB-0$mC;SE}5e06_+(%ji=jaztb<^*I7Qqfc{- z>B&}yKgHK3>IuPN?=Kkm6DViM`mkm4RG)f^LIA1@B&jZCBS)-!JhTRYj2r&VF6|-> zXC~#n@Wol2=H9DeFLn=3#vh5K!iC1bN&S#ajGn%ThN{5r_=pi$z5(Xd+I|fTBoQlX z;I&&{M*^Bi#onF>CY=skvx-p<+BIpM0A%qevw%*8!z`6@9if-5*xn@eY`GI$Tx|EW zqi4|kOTQ*23==?#Y+}sNJgkK@shxBLv+KSR_%fl*WR`RX`A&@+&MAjP4(DsDwYI zhPd7-yhia`h_GF^Q<#F=m6yRNZ`cpmj~hFBooxG^lhR7{Bg_lhmG%EysyXezaL1({$*C$W`)lTGvH~lr2M2VgqEK0 zQI%u2ZR+ixf9(3ZEmP4oHAAY;O4t_}nVAuaibUMp+&cRDo+e)^9EZ7&IxLQeSspEC zBji--Q*7LXLqGvP$`^i%$Yq!va((|)*aDb~`_q0wCy7`1E_LnWZTRUw{*faJ?)R0w zdxpjG0wvqP=UXA=<)>9CKxuGx;5&nlP=XMBN_)CCr-%bxqIlkiDCuxERG2sySI$wwsN^RfZ}nhO){|_v9q)1IPF& z4!5yElOZLF29AZn5s8>5PgK=t^?>xN-Vbzu;ah4-KtckDGH!j#iu?6_uMVz5AeZgc zloSjyobD~wZt|$m64z+u9@5m_wQ`3V8oDl`feBAne_oMi0imxC32Y&U(CjXF5I>E* z9@kw2>~w@|;#pV3QZYG|Pk<6xAENo`=1bqW{brvzFN7cl zs-SB-OspX;Bt9G-P9NpM)koLf+f4-!p7F9CzMn)8AtukS?upnd^aR8-Gu)S?hS#t6 zTmQOwg+oj|zf!YZX+y)BtmthrOQ>G_!+LojH)0bZ4nIyR5=M1~Lw@X;d0}$loV?<^ z40m)|wG0@5rS_YQ?CPf(LWu1t z3#pc4Usxs=g-UJt=Ff#{Ls_C#DQMT1)u7L;81cS=J9T>JJoo3aiIou99kP1AKpZGt zp2gQ2uW16)EK4l2>`Nk0o1-d46<6)}WLw=1yM*Tjt_&dYxC8)G(4T;pzhj0iHRh?3 z$@X&?6tDrgr=|)lubB9Gpz`flEGeEC5Mve)2$Jo#S5{K>nS4VJDyy`BRlH3J_$fuY z`ZA@rf6d3vZ+Ee_*nY1|w5F<+1`E({C;R>!tz|>cWr!FUIg4L-_KX0q$m&YcMiu9g z2B2%6avwm`31q(PfUOAgTvCqHyfjNf$0NxE&1n}_y=@57;(!%$zB3~Yv2^u8d1~`4 zsJN6dym`X{G$!Xlp=md$-Li3MC{99xkqp6`I9Im#_rlqx{7H7>p z07}e!2}qGEj5{;1@!CtkFrI?{;2%K_RjWo#Q7q#Kv_y3rA9IolBM8Ydv@a1WD_yBZ zIYsh>xTHHm8RX6444&6%+ur1*Xp@I!O3c6884x3?&mhyv9c0a?QvXq9N`Y8{R=xyZ zU5;u_GgQqogbYCOKue*J?7i^#wl@zNfbJI%@xVLL8xsIzRFr@~lw`V8Tq0v<2G><} z=cfZBwi{KLJRw2Nc8cJ(9_s^ZWtfTq#Ef^qO`ewc zXUmzZ@r;8A-o(=o{GG=1Nk=Sx94=q#?vSQ=Hc;*aWCyY=KvAb!pq3q?dCRUq%cXIN zTtHqjlMK#ILJ>;Ke@iPAss>cd)aPEmdnlf+BCc_c19D?$XpR}#nbkolAKZ-~OV=)- zOjBlpt5zh91uYpXM3_eZBV^jgjJIYa^du?r3er>k-1|-syHQRWttcOxFg?{fW}8KnFxtwvAeT@m%`F1&>=cMK1YJQ)#E6<{8~y1 z3ItYbv`h|AGXYW2(||+Vsa^S#0cLV~#Q@YqNZHLCv>pSl{8phLzpLpILTxXPS7g4{ zRd|2t5=bn&TRRtZ{l#0(*xNTZyFiWa^yC2MXaEqAf$9*tjXzCUL1vG=QpzaD0OlX3 z<}1nK;t2pof~!8Aodsd`dPUHQpa01r2`JqFR;W?tH54|#xg1+tIdg+vqiVzR(h3xw zbYG(}A=s?^?Xf3_fuNklX$k`9#Zwb=uS9K1IR{i7?Nzd5tOBE}rlbgSU+m%Wkg9x2 z#+Ngw_vCyO_9JJ)hu#|=GzfVN^e3wXMP^53&t8xQQ@qmqn>0~s7)Tp+&yAF~J;Eqb zE!t>pvxujt0x>PbxSd3YR*94_Wh;Am0-k{ko)ckm zFQFclO z2OaN|bpmK{{ZaEKhcxvAL?K<}c`@L7>hK6}OEp}Q&z-;d? zO9E5}VD1Gbr2snvdUu6?`hR77FX+J4PB)`~tCjal=>=e&GX;p-`Dm&+h`D(i&=kea zZOtk$MpUp#P(ha0nSuH4guE&$xsXj>7udnH>&)5_5$%+tntPNxk7K&3fR+rUG=x$f z?g=Q+8R+%BNODN2YZY4T#CR<_8%X)UvI-tkC*%rj?}UTNN=mKC+nzp3Yk`F3d=D-c zTJz)&GFNg#lwZ~je_JC3U@UvGtMOdj2p=*~{weT_H(stFCEk?GUv@4Fm^DIj-h&(s zz=oj9fYjb7Y|+fTbdKmzCJteM>s_6bC)N<1RAzk;(5GH&j$X=p*Vh5Jc6h%zc2z-< zm_iI2F`=DAOjwTj_MF4Hln|xfZ)NV<^lDeC@!s|6VR04#8b^f z7kwY7FysMH1dtd|*#S(sfv%J~Di5G1@v3pl$*NG9GGjzIxp+E2a@e{rdA`dkzZzjB zpM)qZc1807xD0k~Hq(ck=t~MAZ!vX`Ulfue;ako(5hXWx7{`K4QStdU>a5~oE?EU% z6=IyvufEq`e_f4K?6irUi~&`Zj{Q1#{EzW3yW~#rayI_{Oz9F2J6n#rTP*R5y}nzm zB-?9M{gsF7Un__nHt%yETRh%7xvG-c<$m<0O0=QMB0*~v-l8lt#V~encg+OOS#!@N z-!hIUe=6IBCfxe*4+cKcocHcCLMn+vL2p@0O~X0pX8DzP=Vs|%(O;|6)7Tx$i}*1H zJ>*Jvw%d#xO`X&dU+30p(0zH4=kUIr{nTag8{JE9Huq*`vR*vikjj*Fhw~Yg4oo#Y ze)Dj;*`%u!thwH_y0S93^fIVC;rc&LD?|A(->s|~mvQm$QrLzmk*lEC)yY6>XxH<8 z32~#M7xHi89E*>Re|84dZMtv%mf4GKo#JpT;thkI)Q8XgmOW4SByFj&%QdBq+^cRr zk&s|tfoz=W#??0;XY=AP9}36Dtkv_a11&jNF7mNl?5^bJO0XKO$ya(usSQn_Ar5_d zBhE=$(zj8Y>cwgW9gEP~o!;*+3?7&IYYBIe6B*${!rmZzZznNaDrI`0o~mi}1@G6| z{%GWul*x|!*D)EwSw z%lb?ZWz4^}Ise%{EkbS#C3qPEeuBAeddR@`wXt8cwt#?cnd#@Lt?%V#9}-XQBX^yQ zI60-v8kjW%MRE+E%UwR3YfT$+eCl9CExu(97Xpd4eng)@HfD=5|yDMr!86I+t{ zX<;EzPOp`jEB=o7T^(7uY%^EA`iZce{U}@}xn|W)Sx`6G0r}4C>xS3jx4sE}lGe_D z96B#4N-w+AEk+sSUggc+gtLJ=vSbGXrF~8e^PwpTm2=B%vwi=I&*Val!1EznX3=sF zunR-8ZIQ_7fW4JWpQ*umP<{NV{Ah(uBgLvTkj|*)T^l@z*Z7t2{GK zGNIC~<9y;gzTP+c?2z;vw7b&Q#MSb{wOezN`rmXB`d6=AyThF@^7U(-vP#zjoNJ;w z7b2HEUr&T9frcxgW^CNX=|OZ!nE>|Z&$_Yk$-}ZT-Igya1W!h3$u_J5x%G9p^#``x zup5E*MzSBRhBMzDDgX9eHmE5pcx2K6w+dLA&*a*lSRO7;(|6r)^s2rGv6&^J7`Yr9 zNk{SJyq)P?&RelsqRWw>N-PO#rR!$z#|nPF!kCz`6Vb)X{%*B~Au#8?7lT zFBe22k-fN++UdZOe%V7!xudO6&9WYs2#YM0{9xf zd0Y;hv9X0N3F+Ba5uc3zO6{qeCeAYUQelvcnXf(Zk*4Z-MXn4w?YTOSe4e5_9Ujo; z-x1B@i0qr#4tL&3ai*^AT0a{Yy+=lOzJ|@gPB(rGhuo!XFq%M)n8W;ky{2N4%$l9G z0+T-N!@bQBnY{^ppOa_?Azu3E8=2aN{YY=`sn^)m-<&jiO>zArn`k$_m6 zp}lE~vMct3br=xjc%K^#J6e^SGf;4{jn~+kD3}=O)VO>Q3;iYxh+#7EL9YX9b(_-F(zelQJWLLIALkzkzkGSOOO-Y{ zhN)|?NdM&XXjSr(FC76ev3$a6@m2e5g3>K=9BMK$GT>PdKQH;{aJ_bSCiJ3{o14y{ z!zb34GbR<*;gzGM5fKqbZeW$ir6ptgvX!Mex|)Y4Wf2kQKacp_v+&=}Ji$K{>#|`a zSRbu2!6d3G9c^=d$Xh?jxP0MmYu4=a#c<6IYb!ZYn%FxvL}#C=7oKvu_ck_yf!2iI zocLbAu0xwui~(;kv$VLwQlBd#H|F5*@VR=&)ko_<(USv$oeaK5)U@6sAB)8%_Ah;t zbXC27`rHaQs780>Xbv0L+ZW&(8o(1ymKo-yYGY&bXeB>+F(7ldk6jInhEhSZx~%!G z*y&FdGTCuO&#p;VyW2!=G#`$@+~?$AkA6%aEa$#5L^wLa)`EJSWs= zUl*0#9a$d8F7P_|VextV&>j?7H3hfQXCkG1&>ec#rnlA%JiR_!Vy8z(JpuS$gv zg?X<%2-s>>3)ubaLv{|@VKfwV4F%}M! zI(@t43-Ae9f{ylj1&J`g0IXJ}aduV+eNWG9@8A7D8;7g!nEv-Tn$(Kwe~yC@VP}!& z@9*Anob}6p|HYCG8%*~9G_^g^D{mC>zi*Mp{OCU+ XQozbeMBSP#KmCguLR+aEZW;1_Ycjd> diff --git a/docs/html/zoned__date__time__mutation_8h_source.html b/docs/html/zoned__date__time__mutation_8h_source.html deleted file mode 100644 index bc63cb32f..000000000 --- a/docs/html/zoned__date__time__mutation_8h_source.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/ace_time/zoned_date_time_mutation.h Source File - - - - - - - - - - -
    -
    -
    zoned_date_time_mutation.h
    -
    -
    -Go to the documentation of this file.
    1 /*
    -
    2  * MIT License
    -
    3  * Copyright (c) 2018 Brian T. Park
    -
    4  */
    -
    5 
    -
    6 #ifndef ACE_TIME_ZONED_DATE_TIME_MUTATION_H
    -
    7 #define ACE_TIME_ZONED_DATE_TIME_MUTATION_H
    -
    8 
    -
    9 #include <stdint.h>
    -
    10 #include <AceCommon.h>
    -
    11 #include "ZonedDateTime.h"
    -
    12 
    -
    13 namespace ace_time {
    -
    14 namespace zoned_date_time_mutation {
    -
    15 
    -
    42 inline void incrementYear(ZonedDateTime& dateTime) {
    -
    43  int16_t year = dateTime.year();
    -
    44  ace_common::incrementModOffset(year, (int16_t) 100, (int16_t) 2000);
    -
    45  dateTime.year(year);
    -
    46 }
    -
    47 
    -
    49 inline void incrementMonth(ZonedDateTime& dateTime) {
    -
    50  uint8_t month = dateTime.month();
    -
    51  ace_common::incrementModOffset(month, (uint8_t) 12, (uint8_t) 1);
    -
    52  dateTime.month(month);
    -
    53 }
    -
    54 
    -
    56 inline void incrementDay(ZonedDateTime& dateTime) {
    -
    57  uint8_t day = dateTime.day();
    -
    58  ace_common::incrementModOffset(day, (uint8_t) 31, (uint8_t) 1);
    -
    59  dateTime.day(day);
    -
    60 }
    -
    61 
    -
    63 inline void incrementHour(ZonedDateTime& dateTime) {
    -
    64  uint8_t hour = dateTime.hour();
    -
    65  ace_common::incrementMod(hour, (uint8_t) 24);
    -
    66  dateTime.hour(hour);
    -
    67 }
    -
    68 
    -
    70 inline void incrementMinute(ZonedDateTime& dateTime) {
    -
    71  uint8_t minute = dateTime.minute();
    -
    72  ace_common::incrementMod(minute, (uint8_t) 60);
    -
    73  dateTime.minute(minute);
    -
    74 }
    -
    75 
    -
    76 }
    -
    77 }
    -
    78 
    -
    79 #endif
    -
    The date (year, month, day), time (hour, minute, second), and a timeZone object that supports the zon...
    Definition: ZonedDateTime.h:36
    -
    uint8_t hour() const
    Return the hour.
    -
    int16_t year() const
    Return the year.
    -
    uint8_t day() const
    Return the day of the month.
    -
    uint8_t minute() const
    Return the minute.
    -
    uint8_t month() const
    Return the month with January=1, December=12.
    -
    - - - - diff --git a/docs/html/zonedb_2zone__infos_8cpp_source.html b/docs/html/zonedb_2zone__infos_8cpp_source.html deleted file mode 100644 index 33efc9185..000000000 --- a/docs/html/zonedb_2zone__infos_8cpp_source.html +++ /dev/null @@ -1,10735 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/zone_infos.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace zonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 446 (215 zones, 231 links)
    -
    30 // Unsupported Zones: 151 (125 zones, 26 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2023]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2025]
    -
    40 // Max Buffer Size: 6
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 446
    -
    44 // Eras: 227
    -
    45 // Policies: 63
    -
    46 // Rules: 352
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 3168
    -
    51 // Policies: 189
    -
    52 // Eras: 2497
    -
    53 // Zones: 2795
    -
    54 // Links: 3003
    -
    55 // Registry: 892
    -
    56 // Formats: 175
    -
    57 // Letters: 29
    -
    58 // Fragments: 116
    -
    59 // Names: 4142 (original: 6494)
    -
    60 // TOTAL: 17022
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 4224
    -
    65 // Policies: 504
    -
    66 // Eras: 3632
    -
    67 // Zones: 5160
    -
    68 // Links: 5544
    -
    69 // Registry: 1784
    -
    70 // Formats: 175
    -
    71 // Letters: 41
    -
    72 // Fragments: 138
    -
    73 // Names: 4142 (original: 6494)
    -
    74 // TOTAL: 25368
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #include <zoneinfo/compat.h>
    -
    79 #include "zone_policies.h"
    -
    80 #include "zone_infos.h"
    -
    81 
    -
    82 namespace ace_time {
    -
    83 namespace zonedb {
    -
    84 
    -
    85 //---------------------------------------------------------------------------
    -
    86 // ZoneContext
    -
    87 //---------------------------------------------------------------------------
    -
    88 
    -
    89 static const char kVersionString[] ACE_TIME_PROGMEM = "2025b";
    -
    90 const __FlashStringHelper* const kTzDatabaseVersion =
    -
    91  (const __FlashStringHelper*) kVersionString;
    -
    92 
    -
    93 static const char kFragment1[] ACE_TIME_PROGMEM = "Africa/";
    -
    94 static const char kFragment2[] ACE_TIME_PROGMEM = "America/";
    -
    95 static const char kFragment3[] ACE_TIME_PROGMEM = "Antarctica/";
    -
    96 static const char kFragment4[] ACE_TIME_PROGMEM = "Asia/";
    -
    97 static const char kFragment5[] ACE_TIME_PROGMEM = "Atlantic/";
    -
    98 static const char kFragment6[] ACE_TIME_PROGMEM = "Australia/";
    -
    99 static const char kFragment7[] ACE_TIME_PROGMEM = "Canada/";
    -
    100 static const char kFragment8[] ACE_TIME_PROGMEM = "Etc/";
    -
    101 static const char kFragment9[] ACE_TIME_PROGMEM = "Europe/";
    -
    102 static const char kFragment10[] ACE_TIME_PROGMEM = "Indian/";
    -
    103 static const char kFragment11[] ACE_TIME_PROGMEM = "Pacific/";
    -
    104 
    -
    105 const char* const kFragments[] ACE_TIME_PROGMEM = {
    -
    106  nullptr, // '\x00' cannot exist
    -
    107  kFragment1, // '\x01' "Africa/"
    -
    108  kFragment2, // '\x02' "America/"
    -
    109  kFragment3, // '\x03' "Antarctica/"
    -
    110  kFragment4, // '\x04' "Asia/"
    -
    111  kFragment5, // '\x05' "Atlantic/"
    -
    112  kFragment6, // '\x06' "Australia/"
    -
    113  kFragment7, // '\x07' "Canada/"
    -
    114  kFragment8, // '\x08' "Etc/"
    -
    115  kFragment9, // '\x09' "Europe/"
    -
    116  kFragment10, // '\x0a' "Indian/"
    -
    117  kFragment11, // '\x0b' "Pacific/"
    -
    118 
    -
    119 };
    -
    120 
    -
    121 static const char kLetter0[] ACE_TIME_PROGMEM = "";
    -
    122 static const char kLetter1[] ACE_TIME_PROGMEM = "CAT";
    -
    123 static const char kLetter2[] ACE_TIME_PROGMEM = "CST";
    -
    124 static const char kLetter3[] ACE_TIME_PROGMEM = "D";
    -
    125 static const char kLetter4[] ACE_TIME_PROGMEM = "S";
    -
    126 static const char kLetter5[] ACE_TIME_PROGMEM = "WAT";
    -
    127 
    -
    128 const char* const kLetters[] ACE_TIME_PROGMEM = {
    -
    129  kLetter0, // ""
    -
    130  kLetter1, // "CAT"
    -
    131  kLetter2, // "CST"
    -
    132  kLetter3, // "D"
    -
    133  kLetter4, // "S"
    -
    134  kLetter5, // "WAT"
    -
    135 
    -
    136 };
    -
    137 
    -
    138 const basic::Info::ZoneContext kZoneContext ACE_TIME_PROGMEM = {
    -
    139  2000 /*startYear*/,
    -
    140  2200 /*untilYear*/,
    -
    141  2000 /*startYearAccurate*/,
    -
    142  32767 /*untilYearAccurate*/,
    -
    143  2100 /*baseYear*/,
    -
    144  6 /*maxTransitions*/,
    -
    145  kVersionString /*tzVersion*/,
    -
    146  12 /*numFragments*/,
    -
    147  6 /*numLetters*/,
    -
    148  kFragments /*fragments*/,
    -
    149  kLetters /*letters*/,
    -
    150 };
    -
    151 
    -
    152 //---------------------------------------------------------------------------
    -
    153 // Zones: 215
    -
    154 // Eras: 227
    -
    155 //---------------------------------------------------------------------------
    -
    156 
    -
    157 //---------------------------------------------------------------------------
    -
    158 // Zone name: Africa/Abidjan
    -
    159 // Eras: 1
    -
    160 //---------------------------------------------------------------------------
    -
    161 
    -
    162 static const basic::Info::ZoneEra kZoneEraAfrica_Abidjan[] ACE_TIME_PROGMEM = {
    -
    163  // 0:00 - GMT
    -
    164  {
    -
    165  nullptr /*zonePolicy*/,
    -
    166  "GMT" /*format*/,
    -
    167  0 /*offsetCode*/,
    -
    168  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    169  127 /*untilYearTiny*/,
    -
    170  1 /*untilMonth*/,
    -
    171  1 /*untilDay*/,
    -
    172  0 /*untilTimeCode*/,
    -
    173  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    174  },
    -
    175 
    -
    176 };
    -
    177 
    -
    178 static const char kZoneNameAfrica_Abidjan[] ACE_TIME_PROGMEM = "\x01" "Abidjan";
    -
    179 
    -
    180 const basic::Info::ZoneInfo kZoneAfrica_Abidjan ACE_TIME_PROGMEM = {
    -
    181  kZoneNameAfrica_Abidjan /*name*/,
    -
    182  0xc21305a3 /*zoneId*/,
    -
    183  &kZoneContext /*zoneContext*/,
    -
    184  1 /*numEras*/,
    -
    185  kZoneEraAfrica_Abidjan /*eras*/,
    -
    186  nullptr /*targetInfo*/,
    -
    187 };
    -
    188 
    -
    189 //---------------------------------------------------------------------------
    -
    190 // Zone name: Africa/Algiers
    -
    191 // Eras: 1
    -
    192 //---------------------------------------------------------------------------
    -
    193 
    -
    194 static const basic::Info::ZoneEra kZoneEraAfrica_Algiers[] ACE_TIME_PROGMEM = {
    -
    195  // 1:00 - CET
    -
    196  {
    -
    197  nullptr /*zonePolicy*/,
    -
    198  "CET" /*format*/,
    -
    199  4 /*offsetCode*/,
    -
    200  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    201  127 /*untilYearTiny*/,
    -
    202  1 /*untilMonth*/,
    -
    203  1 /*untilDay*/,
    -
    204  0 /*untilTimeCode*/,
    -
    205  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    206  },
    -
    207 
    -
    208 };
    -
    209 
    -
    210 static const char kZoneNameAfrica_Algiers[] ACE_TIME_PROGMEM = "\x01" "Algiers";
    -
    211 
    -
    212 const basic::Info::ZoneInfo kZoneAfrica_Algiers ACE_TIME_PROGMEM = {
    -
    213  kZoneNameAfrica_Algiers /*name*/,
    -
    214  0xd94515c1 /*zoneId*/,
    -
    215  &kZoneContext /*zoneContext*/,
    -
    216  1 /*numEras*/,
    -
    217  kZoneEraAfrica_Algiers /*eras*/,
    -
    218  nullptr /*targetInfo*/,
    -
    219 };
    -
    220 
    -
    221 //---------------------------------------------------------------------------
    -
    222 // Zone name: Africa/Bissau
    -
    223 // Eras: 1
    -
    224 //---------------------------------------------------------------------------
    -
    225 
    -
    226 static const basic::Info::ZoneEra kZoneEraAfrica_Bissau[] ACE_TIME_PROGMEM = {
    -
    227  // 0:00 - GMT
    -
    228  {
    -
    229  nullptr /*zonePolicy*/,
    -
    230  "GMT" /*format*/,
    -
    231  0 /*offsetCode*/,
    -
    232  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    233  127 /*untilYearTiny*/,
    -
    234  1 /*untilMonth*/,
    -
    235  1 /*untilDay*/,
    -
    236  0 /*untilTimeCode*/,
    -
    237  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    238  },
    -
    239 
    -
    240 };
    -
    241 
    -
    242 static const char kZoneNameAfrica_Bissau[] ACE_TIME_PROGMEM = "\x01" "Bissau";
    -
    243 
    -
    244 const basic::Info::ZoneInfo kZoneAfrica_Bissau ACE_TIME_PROGMEM = {
    -
    245  kZoneNameAfrica_Bissau /*name*/,
    -
    246  0x75564141 /*zoneId*/,
    -
    247  &kZoneContext /*zoneContext*/,
    -
    248  1 /*numEras*/,
    -
    249  kZoneEraAfrica_Bissau /*eras*/,
    -
    250  nullptr /*targetInfo*/,
    -
    251 };
    -
    252 
    -
    253 //---------------------------------------------------------------------------
    -
    254 // Zone name: Africa/Ceuta
    -
    255 // Eras: 1
    -
    256 //---------------------------------------------------------------------------
    -
    257 
    -
    258 static const basic::Info::ZoneEra kZoneEraAfrica_Ceuta[] ACE_TIME_PROGMEM = {
    -
    259  // 1:00 EU CE%sT
    -
    260  {
    -
    261  &kZonePolicyEU /*zonePolicy*/,
    -
    262  "CE%T" /*format*/,
    -
    263  4 /*offsetCode*/,
    -
    264  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    265  127 /*untilYearTiny*/,
    -
    266  1 /*untilMonth*/,
    -
    267  1 /*untilDay*/,
    -
    268  0 /*untilTimeCode*/,
    -
    269  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    270  },
    -
    271 
    -
    272 };
    -
    273 
    -
    274 static const char kZoneNameAfrica_Ceuta[] ACE_TIME_PROGMEM = "\x01" "Ceuta";
    -
    275 
    -
    276 const basic::Info::ZoneInfo kZoneAfrica_Ceuta ACE_TIME_PROGMEM = {
    -
    277  kZoneNameAfrica_Ceuta /*name*/,
    -
    278  0x77fb46ec /*zoneId*/,
    -
    279  &kZoneContext /*zoneContext*/,
    -
    280  1 /*numEras*/,
    -
    281  kZoneEraAfrica_Ceuta /*eras*/,
    -
    282  nullptr /*targetInfo*/,
    -
    283 };
    -
    284 
    -
    285 //---------------------------------------------------------------------------
    -
    286 // Zone name: Africa/Johannesburg
    -
    287 // Eras: 1
    -
    288 //---------------------------------------------------------------------------
    -
    289 
    -
    290 static const basic::Info::ZoneEra kZoneEraAfrica_Johannesburg[] ACE_TIME_PROGMEM = {
    -
    291  // 2:00 SA SAST
    -
    292  {
    -
    293  &kZonePolicySA /*zonePolicy*/,
    -
    294  "SAST" /*format*/,
    -
    295  8 /*offsetCode*/,
    -
    296  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    297  127 /*untilYearTiny*/,
    -
    298  1 /*untilMonth*/,
    -
    299  1 /*untilDay*/,
    -
    300  0 /*untilTimeCode*/,
    -
    301  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    302  },
    -
    303 
    -
    304 };
    -
    305 
    -
    306 static const char kZoneNameAfrica_Johannesburg[] ACE_TIME_PROGMEM = "\x01" "Johannesburg";
    -
    307 
    -
    308 const basic::Info::ZoneInfo kZoneAfrica_Johannesburg ACE_TIME_PROGMEM = {
    -
    309  kZoneNameAfrica_Johannesburg /*name*/,
    -
    310  0xd5d157a0 /*zoneId*/,
    -
    311  &kZoneContext /*zoneContext*/,
    -
    312  1 /*numEras*/,
    -
    313  kZoneEraAfrica_Johannesburg /*eras*/,
    -
    314  nullptr /*targetInfo*/,
    -
    315 };
    -
    316 
    -
    317 //---------------------------------------------------------------------------
    -
    318 // Zone name: Africa/Lagos
    -
    319 // Eras: 1
    -
    320 //---------------------------------------------------------------------------
    -
    321 
    -
    322 static const basic::Info::ZoneEra kZoneEraAfrica_Lagos[] ACE_TIME_PROGMEM = {
    -
    323  // 1:00 - WAT
    -
    324  {
    -
    325  nullptr /*zonePolicy*/,
    -
    326  "WAT" /*format*/,
    -
    327  4 /*offsetCode*/,
    -
    328  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    329  127 /*untilYearTiny*/,
    -
    330  1 /*untilMonth*/,
    -
    331  1 /*untilDay*/,
    -
    332  0 /*untilTimeCode*/,
    -
    333  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    334  },
    -
    335 
    -
    336 };
    -
    337 
    -
    338 static const char kZoneNameAfrica_Lagos[] ACE_TIME_PROGMEM = "\x01" "Lagos";
    -
    339 
    -
    340 const basic::Info::ZoneInfo kZoneAfrica_Lagos ACE_TIME_PROGMEM = {
    -
    341  kZoneNameAfrica_Lagos /*name*/,
    -
    342  0x789bb5d0 /*zoneId*/,
    -
    343  &kZoneContext /*zoneContext*/,
    -
    344  1 /*numEras*/,
    -
    345  kZoneEraAfrica_Lagos /*eras*/,
    -
    346  nullptr /*targetInfo*/,
    -
    347 };
    -
    348 
    -
    349 //---------------------------------------------------------------------------
    -
    350 // Zone name: Africa/Maputo
    -
    351 // Eras: 1
    -
    352 //---------------------------------------------------------------------------
    -
    353 
    -
    354 static const basic::Info::ZoneEra kZoneEraAfrica_Maputo[] ACE_TIME_PROGMEM = {
    -
    355  // 2:00 - CAT
    -
    356  {
    -
    357  nullptr /*zonePolicy*/,
    -
    358  "CAT" /*format*/,
    -
    359  8 /*offsetCode*/,
    -
    360  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    361  127 /*untilYearTiny*/,
    -
    362  1 /*untilMonth*/,
    -
    363  1 /*untilDay*/,
    -
    364  0 /*untilTimeCode*/,
    -
    365  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    366  },
    -
    367 
    -
    368 };
    -
    369 
    -
    370 static const char kZoneNameAfrica_Maputo[] ACE_TIME_PROGMEM = "\x01" "Maputo";
    -
    371 
    -
    372 const basic::Info::ZoneInfo kZoneAfrica_Maputo ACE_TIME_PROGMEM = {
    -
    373  kZoneNameAfrica_Maputo /*name*/,
    -
    374  0x8e6ca1f0 /*zoneId*/,
    -
    375  &kZoneContext /*zoneContext*/,
    -
    376  1 /*numEras*/,
    -
    377  kZoneEraAfrica_Maputo /*eras*/,
    -
    378  nullptr /*targetInfo*/,
    -
    379 };
    -
    380 
    -
    381 //---------------------------------------------------------------------------
    -
    382 // Zone name: Africa/Monrovia
    -
    383 // Eras: 1
    -
    384 //---------------------------------------------------------------------------
    -
    385 
    -
    386 static const basic::Info::ZoneEra kZoneEraAfrica_Monrovia[] ACE_TIME_PROGMEM = {
    -
    387  // 0:00 - GMT
    -
    388  {
    -
    389  nullptr /*zonePolicy*/,
    -
    390  "GMT" /*format*/,
    -
    391  0 /*offsetCode*/,
    -
    392  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    393  127 /*untilYearTiny*/,
    -
    394  1 /*untilMonth*/,
    -
    395  1 /*untilDay*/,
    -
    396  0 /*untilTimeCode*/,
    -
    397  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    398  },
    -
    399 
    -
    400 };
    -
    401 
    -
    402 static const char kZoneNameAfrica_Monrovia[] ACE_TIME_PROGMEM = "\x01" "Monrovia";
    -
    403 
    -
    404 const basic::Info::ZoneInfo kZoneAfrica_Monrovia ACE_TIME_PROGMEM = {
    -
    405  kZoneNameAfrica_Monrovia /*name*/,
    -
    406  0x0ce90385 /*zoneId*/,
    -
    407  &kZoneContext /*zoneContext*/,
    -
    408  1 /*numEras*/,
    -
    409  kZoneEraAfrica_Monrovia /*eras*/,
    -
    410  nullptr /*targetInfo*/,
    -
    411 };
    -
    412 
    -
    413 //---------------------------------------------------------------------------
    -
    414 // Zone name: Africa/Nairobi
    -
    415 // Eras: 1
    -
    416 //---------------------------------------------------------------------------
    -
    417 
    -
    418 static const basic::Info::ZoneEra kZoneEraAfrica_Nairobi[] ACE_TIME_PROGMEM = {
    -
    419  // 3:00 - EAT
    -
    420  {
    -
    421  nullptr /*zonePolicy*/,
    -
    422  "EAT" /*format*/,
    -
    423  12 /*offsetCode*/,
    -
    424  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    425  127 /*untilYearTiny*/,
    -
    426  1 /*untilMonth*/,
    -
    427  1 /*untilDay*/,
    -
    428  0 /*untilTimeCode*/,
    -
    429  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    430  },
    -
    431 
    -
    432 };
    -
    433 
    -
    434 static const char kZoneNameAfrica_Nairobi[] ACE_TIME_PROGMEM = "\x01" "Nairobi";
    -
    435 
    -
    436 const basic::Info::ZoneInfo kZoneAfrica_Nairobi ACE_TIME_PROGMEM = {
    -
    437  kZoneNameAfrica_Nairobi /*name*/,
    -
    438  0xa87ab57e /*zoneId*/,
    -
    439  &kZoneContext /*zoneContext*/,
    -
    440  1 /*numEras*/,
    -
    441  kZoneEraAfrica_Nairobi /*eras*/,
    -
    442  nullptr /*targetInfo*/,
    -
    443 };
    -
    444 
    -
    445 //---------------------------------------------------------------------------
    -
    446 // Zone name: Africa/Ndjamena
    -
    447 // Eras: 1
    -
    448 //---------------------------------------------------------------------------
    -
    449 
    -
    450 static const basic::Info::ZoneEra kZoneEraAfrica_Ndjamena[] ACE_TIME_PROGMEM = {
    -
    451  // 1:00 - WAT
    -
    452  {
    -
    453  nullptr /*zonePolicy*/,
    -
    454  "WAT" /*format*/,
    -
    455  4 /*offsetCode*/,
    -
    456  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    457  127 /*untilYearTiny*/,
    -
    458  1 /*untilMonth*/,
    -
    459  1 /*untilDay*/,
    -
    460  0 /*untilTimeCode*/,
    -
    461  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    462  },
    -
    463 
    -
    464 };
    -
    465 
    -
    466 static const char kZoneNameAfrica_Ndjamena[] ACE_TIME_PROGMEM = "\x01" "Ndjamena";
    -
    467 
    -
    468 const basic::Info::ZoneInfo kZoneAfrica_Ndjamena ACE_TIME_PROGMEM = {
    -
    469  kZoneNameAfrica_Ndjamena /*name*/,
    -
    470  0x9fe09898 /*zoneId*/,
    -
    471  &kZoneContext /*zoneContext*/,
    -
    472  1 /*numEras*/,
    -
    473  kZoneEraAfrica_Ndjamena /*eras*/,
    -
    474  nullptr /*targetInfo*/,
    -
    475 };
    -
    476 
    -
    477 //---------------------------------------------------------------------------
    -
    478 // Zone name: Africa/Tunis
    -
    479 // Eras: 1
    -
    480 //---------------------------------------------------------------------------
    -
    481 
    -
    482 static const basic::Info::ZoneEra kZoneEraAfrica_Tunis[] ACE_TIME_PROGMEM = {
    -
    483  // 1:00 Tunisia CE%sT
    -
    484  {
    -
    485  &kZonePolicyTunisia /*zonePolicy*/,
    -
    486  "CE%T" /*format*/,
    -
    487  4 /*offsetCode*/,
    -
    488  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    489  127 /*untilYearTiny*/,
    -
    490  1 /*untilMonth*/,
    -
    491  1 /*untilDay*/,
    -
    492  0 /*untilTimeCode*/,
    -
    493  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    494  },
    -
    495 
    -
    496 };
    -
    497 
    -
    498 static const char kZoneNameAfrica_Tunis[] ACE_TIME_PROGMEM = "\x01" "Tunis";
    -
    499 
    -
    500 const basic::Info::ZoneInfo kZoneAfrica_Tunis ACE_TIME_PROGMEM = {
    -
    501  kZoneNameAfrica_Tunis /*name*/,
    -
    502  0x79378e6d /*zoneId*/,
    -
    503  &kZoneContext /*zoneContext*/,
    -
    504  1 /*numEras*/,
    -
    505  kZoneEraAfrica_Tunis /*eras*/,
    -
    506  nullptr /*targetInfo*/,
    -
    507 };
    -
    508 
    -
    509 //---------------------------------------------------------------------------
    -
    510 // Zone name: Africa/Windhoek
    -
    511 // Eras: 1
    -
    512 //---------------------------------------------------------------------------
    -
    513 
    -
    514 static const basic::Info::ZoneEra kZoneEraAfrica_Windhoek[] ACE_TIME_PROGMEM = {
    -
    515  // 2:00 Namibia %s
    -
    516  {
    -
    517  &kZonePolicyNamibia /*zonePolicy*/,
    -
    518  "%" /*format*/,
    -
    519  8 /*offsetCode*/,
    -
    520  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    521  127 /*untilYearTiny*/,
    -
    522  1 /*untilMonth*/,
    -
    523  1 /*untilDay*/,
    -
    524  0 /*untilTimeCode*/,
    -
    525  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    526  },
    -
    527 
    -
    528 };
    -
    529 
    -
    530 static const char kZoneNameAfrica_Windhoek[] ACE_TIME_PROGMEM = "\x01" "Windhoek";
    -
    531 
    -
    532 const basic::Info::ZoneInfo kZoneAfrica_Windhoek ACE_TIME_PROGMEM = {
    -
    533  kZoneNameAfrica_Windhoek /*name*/,
    -
    534  0x789c9bd3 /*zoneId*/,
    -
    535  &kZoneContext /*zoneContext*/,
    -
    536  1 /*numEras*/,
    -
    537  kZoneEraAfrica_Windhoek /*eras*/,
    -
    538  nullptr /*targetInfo*/,
    -
    539 };
    -
    540 
    -
    541 //---------------------------------------------------------------------------
    -
    542 // Zone name: America/Adak
    -
    543 // Eras: 1
    -
    544 //---------------------------------------------------------------------------
    -
    545 
    -
    546 static const basic::Info::ZoneEra kZoneEraAmerica_Adak[] ACE_TIME_PROGMEM = {
    -
    547  // -10:00 US H%sT
    -
    548  {
    -
    549  &kZonePolicyUS /*zonePolicy*/,
    -
    550  "H%T" /*format*/,
    -
    551  -40 /*offsetCode*/,
    -
    552  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    553  127 /*untilYearTiny*/,
    -
    554  1 /*untilMonth*/,
    -
    555  1 /*untilDay*/,
    -
    556  0 /*untilTimeCode*/,
    -
    557  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    558  },
    -
    559 
    -
    560 };
    -
    561 
    -
    562 static const char kZoneNameAmerica_Adak[] ACE_TIME_PROGMEM = "\x02" "Adak";
    -
    563 
    -
    564 const basic::Info::ZoneInfo kZoneAmerica_Adak ACE_TIME_PROGMEM = {
    -
    565  kZoneNameAmerica_Adak /*name*/,
    -
    566  0x97fe49d7 /*zoneId*/,
    -
    567  &kZoneContext /*zoneContext*/,
    -
    568  1 /*numEras*/,
    -
    569  kZoneEraAmerica_Adak /*eras*/,
    -
    570  nullptr /*targetInfo*/,
    -
    571 };
    -
    572 
    -
    573 //---------------------------------------------------------------------------
    -
    574 // Zone name: America/Anchorage
    -
    575 // Eras: 1
    -
    576 //---------------------------------------------------------------------------
    -
    577 
    -
    578 static const basic::Info::ZoneEra kZoneEraAmerica_Anchorage[] ACE_TIME_PROGMEM = {
    -
    579  // -9:00 US AK%sT
    -
    580  {
    -
    581  &kZonePolicyUS /*zonePolicy*/,
    -
    582  "AK%T" /*format*/,
    -
    583  -36 /*offsetCode*/,
    -
    584  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    585  127 /*untilYearTiny*/,
    -
    586  1 /*untilMonth*/,
    -
    587  1 /*untilDay*/,
    -
    588  0 /*untilTimeCode*/,
    -
    589  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    590  },
    -
    591 
    -
    592 };
    -
    593 
    -
    594 static const char kZoneNameAmerica_Anchorage[] ACE_TIME_PROGMEM = "\x02" "Anchorage";
    -
    595 
    -
    596 const basic::Info::ZoneInfo kZoneAmerica_Anchorage ACE_TIME_PROGMEM = {
    -
    597  kZoneNameAmerica_Anchorage /*name*/,
    -
    598  0x5a79260e /*zoneId*/,
    -
    599  &kZoneContext /*zoneContext*/,
    -
    600  1 /*numEras*/,
    -
    601  kZoneEraAmerica_Anchorage /*eras*/,
    -
    602  nullptr /*targetInfo*/,
    -
    603 };
    -
    604 
    -
    605 //---------------------------------------------------------------------------
    -
    606 // Zone name: America/Barbados
    -
    607 // Eras: 1
    -
    608 //---------------------------------------------------------------------------
    -
    609 
    -
    610 static const basic::Info::ZoneEra kZoneEraAmerica_Barbados[] ACE_TIME_PROGMEM = {
    -
    611  // -4:00 Barb A%sT
    -
    612  {
    -
    613  &kZonePolicyBarb /*zonePolicy*/,
    -
    614  "A%T" /*format*/,
    -
    615  -16 /*offsetCode*/,
    -
    616  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    617  127 /*untilYearTiny*/,
    -
    618  1 /*untilMonth*/,
    -
    619  1 /*untilDay*/,
    -
    620  0 /*untilTimeCode*/,
    -
    621  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    622  },
    -
    623 
    -
    624 };
    -
    625 
    -
    626 static const char kZoneNameAmerica_Barbados[] ACE_TIME_PROGMEM = "\x02" "Barbados";
    -
    627 
    -
    628 const basic::Info::ZoneInfo kZoneAmerica_Barbados ACE_TIME_PROGMEM = {
    -
    629  kZoneNameAmerica_Barbados /*name*/,
    -
    630  0xcbbc3b04 /*zoneId*/,
    -
    631  &kZoneContext /*zoneContext*/,
    -
    632  1 /*numEras*/,
    -
    633  kZoneEraAmerica_Barbados /*eras*/,
    -
    634  nullptr /*targetInfo*/,
    -
    635 };
    -
    636 
    -
    637 //---------------------------------------------------------------------------
    -
    638 // Zone name: America/Belem
    -
    639 // Eras: 1
    -
    640 //---------------------------------------------------------------------------
    -
    641 
    -
    642 static const basic::Info::ZoneEra kZoneEraAmerica_Belem[] ACE_TIME_PROGMEM = {
    -
    643  // -3:00 - %z
    -
    644  {
    -
    645  nullptr /*zonePolicy*/,
    -
    646  "" /*format*/,
    -
    647  -12 /*offsetCode*/,
    -
    648  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    649  127 /*untilYearTiny*/,
    -
    650  1 /*untilMonth*/,
    -
    651  1 /*untilDay*/,
    -
    652  0 /*untilTimeCode*/,
    -
    653  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    654  },
    -
    655 
    -
    656 };
    -
    657 
    -
    658 static const char kZoneNameAmerica_Belem[] ACE_TIME_PROGMEM = "\x02" "Belem";
    -
    659 
    -
    660 const basic::Info::ZoneInfo kZoneAmerica_Belem ACE_TIME_PROGMEM = {
    -
    661  kZoneNameAmerica_Belem /*name*/,
    -
    662  0x97da580b /*zoneId*/,
    -
    663  &kZoneContext /*zoneContext*/,
    -
    664  1 /*numEras*/,
    -
    665  kZoneEraAmerica_Belem /*eras*/,
    -
    666  nullptr /*targetInfo*/,
    -
    667 };
    -
    668 
    -
    669 //---------------------------------------------------------------------------
    -
    670 // Zone name: America/Belize
    -
    671 // Eras: 1
    -
    672 //---------------------------------------------------------------------------
    -
    673 
    -
    674 static const basic::Info::ZoneEra kZoneEraAmerica_Belize[] ACE_TIME_PROGMEM = {
    -
    675  // -6:00 Belize %s
    -
    676  {
    -
    677  &kZonePolicyBelize /*zonePolicy*/,
    -
    678  "%" /*format*/,
    -
    679  -24 /*offsetCode*/,
    -
    680  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    681  127 /*untilYearTiny*/,
    -
    682  1 /*untilMonth*/,
    -
    683  1 /*untilDay*/,
    -
    684  0 /*untilTimeCode*/,
    -
    685  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    686  },
    -
    687 
    -
    688 };
    -
    689 
    -
    690 static const char kZoneNameAmerica_Belize[] ACE_TIME_PROGMEM = "\x02" "Belize";
    -
    691 
    -
    692 const basic::Info::ZoneInfo kZoneAmerica_Belize ACE_TIME_PROGMEM = {
    -
    693  kZoneNameAmerica_Belize /*name*/,
    -
    694  0x93256c81 /*zoneId*/,
    -
    695  &kZoneContext /*zoneContext*/,
    -
    696  1 /*numEras*/,
    -
    697  kZoneEraAmerica_Belize /*eras*/,
    -
    698  nullptr /*targetInfo*/,
    -
    699 };
    -
    700 
    -
    701 //---------------------------------------------------------------------------
    -
    702 // Zone name: America/Bogota
    -
    703 // Eras: 1
    -
    704 //---------------------------------------------------------------------------
    -
    705 
    -
    706 static const basic::Info::ZoneEra kZoneEraAmerica_Bogota[] ACE_TIME_PROGMEM = {
    -
    707  // -5:00 CO %z
    -
    708  {
    -
    709  &kZonePolicyCO /*zonePolicy*/,
    -
    710  "" /*format*/,
    -
    711  -20 /*offsetCode*/,
    -
    712  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    713  127 /*untilYearTiny*/,
    -
    714  1 /*untilMonth*/,
    -
    715  1 /*untilDay*/,
    -
    716  0 /*untilTimeCode*/,
    -
    717  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    718  },
    -
    719 
    -
    720 };
    -
    721 
    -
    722 static const char kZoneNameAmerica_Bogota[] ACE_TIME_PROGMEM = "\x02" "Bogota";
    -
    723 
    -
    724 const basic::Info::ZoneInfo kZoneAmerica_Bogota ACE_TIME_PROGMEM = {
    -
    725  kZoneNameAmerica_Bogota /*name*/,
    -
    726  0x93d7bc62 /*zoneId*/,
    -
    727  &kZoneContext /*zoneContext*/,
    -
    728  1 /*numEras*/,
    -
    729  kZoneEraAmerica_Bogota /*eras*/,
    -
    730  nullptr /*targetInfo*/,
    -
    731 };
    -
    732 
    -
    733 //---------------------------------------------------------------------------
    -
    734 // Zone name: America/Boise
    -
    735 // Eras: 1
    -
    736 //---------------------------------------------------------------------------
    -
    737 
    -
    738 static const basic::Info::ZoneEra kZoneEraAmerica_Boise[] ACE_TIME_PROGMEM = {
    -
    739  // -7:00 US M%sT
    -
    740  {
    -
    741  &kZonePolicyUS /*zonePolicy*/,
    -
    742  "M%T" /*format*/,
    -
    743  -28 /*offsetCode*/,
    -
    744  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    745  127 /*untilYearTiny*/,
    -
    746  1 /*untilMonth*/,
    -
    747  1 /*untilDay*/,
    -
    748  0 /*untilTimeCode*/,
    -
    749  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    750  },
    -
    751 
    -
    752 };
    -
    753 
    -
    754 static const char kZoneNameAmerica_Boise[] ACE_TIME_PROGMEM = "\x02" "Boise";
    -
    755 
    -
    756 const basic::Info::ZoneInfo kZoneAmerica_Boise ACE_TIME_PROGMEM = {
    -
    757  kZoneNameAmerica_Boise /*name*/,
    -
    758  0x97dfc8d8 /*zoneId*/,
    -
    759  &kZoneContext /*zoneContext*/,
    -
    760  1 /*numEras*/,
    -
    761  kZoneEraAmerica_Boise /*eras*/,
    -
    762  nullptr /*targetInfo*/,
    -
    763 };
    -
    764 
    -
    765 //---------------------------------------------------------------------------
    -
    766 // Zone name: America/Campo_Grande
    -
    767 // Eras: 1
    -
    768 //---------------------------------------------------------------------------
    -
    769 
    -
    770 static const basic::Info::ZoneEra kZoneEraAmerica_Campo_Grande[] ACE_TIME_PROGMEM = {
    -
    771  // -4:00 Brazil %z
    -
    772  {
    -
    773  &kZonePolicyBrazil /*zonePolicy*/,
    -
    774  "" /*format*/,
    -
    775  -16 /*offsetCode*/,
    -
    776  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    777  127 /*untilYearTiny*/,
    -
    778  1 /*untilMonth*/,
    -
    779  1 /*untilDay*/,
    -
    780  0 /*untilTimeCode*/,
    -
    781  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    782  },
    -
    783 
    -
    784 };
    -
    785 
    -
    786 static const char kZoneNameAmerica_Campo_Grande[] ACE_TIME_PROGMEM = "\x02" "Campo_Grande";
    -
    787 
    -
    788 const basic::Info::ZoneInfo kZoneAmerica_Campo_Grande ACE_TIME_PROGMEM = {
    -
    789  kZoneNameAmerica_Campo_Grande /*name*/,
    -
    790  0xfec3e7a6 /*zoneId*/,
    -
    791  &kZoneContext /*zoneContext*/,
    -
    792  1 /*numEras*/,
    -
    793  kZoneEraAmerica_Campo_Grande /*eras*/,
    -
    794  nullptr /*targetInfo*/,
    -
    795 };
    -
    796 
    -
    797 //---------------------------------------------------------------------------
    -
    798 // Zone name: America/Cayenne
    -
    799 // Eras: 1
    -
    800 //---------------------------------------------------------------------------
    -
    801 
    -
    802 static const basic::Info::ZoneEra kZoneEraAmerica_Cayenne[] ACE_TIME_PROGMEM = {
    -
    803  // -3:00 - %z
    -
    804  {
    -
    805  nullptr /*zonePolicy*/,
    -
    806  "" /*format*/,
    -
    807  -12 /*offsetCode*/,
    -
    808  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    809  127 /*untilYearTiny*/,
    -
    810  1 /*untilMonth*/,
    -
    811  1 /*untilDay*/,
    -
    812  0 /*untilTimeCode*/,
    -
    813  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    814  },
    -
    815 
    -
    816 };
    -
    817 
    -
    818 static const char kZoneNameAmerica_Cayenne[] ACE_TIME_PROGMEM = "\x02" "Cayenne";
    -
    819 
    -
    820 const basic::Info::ZoneInfo kZoneAmerica_Cayenne ACE_TIME_PROGMEM = {
    -
    821  kZoneNameAmerica_Cayenne /*name*/,
    -
    822  0x3c617269 /*zoneId*/,
    -
    823  &kZoneContext /*zoneContext*/,
    -
    824  1 /*numEras*/,
    -
    825  kZoneEraAmerica_Cayenne /*eras*/,
    -
    826  nullptr /*targetInfo*/,
    -
    827 };
    -
    828 
    -
    829 //---------------------------------------------------------------------------
    -
    830 // Zone name: America/Chicago
    -
    831 // Eras: 1
    -
    832 //---------------------------------------------------------------------------
    -
    833 
    -
    834 static const basic::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = {
    -
    835  // -6:00 US C%sT
    -
    836  {
    -
    837  &kZonePolicyUS /*zonePolicy*/,
    -
    838  "C%T" /*format*/,
    -
    839  -24 /*offsetCode*/,
    -
    840  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    841  127 /*untilYearTiny*/,
    -
    842  1 /*untilMonth*/,
    -
    843  1 /*untilDay*/,
    -
    844  0 /*untilTimeCode*/,
    -
    845  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    846  },
    -
    847 
    -
    848 };
    -
    849 
    -
    850 static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "\x02" "Chicago";
    -
    851 
    -
    852 const basic::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = {
    -
    853  kZoneNameAmerica_Chicago /*name*/,
    -
    854  0x4b92b5d4 /*zoneId*/,
    -
    855  &kZoneContext /*zoneContext*/,
    -
    856  1 /*numEras*/,
    -
    857  kZoneEraAmerica_Chicago /*eras*/,
    -
    858  nullptr /*targetInfo*/,
    -
    859 };
    -
    860 
    -
    861 //---------------------------------------------------------------------------
    -
    862 // Zone name: America/Costa_Rica
    -
    863 // Eras: 1
    -
    864 //---------------------------------------------------------------------------
    -
    865 
    -
    866 static const basic::Info::ZoneEra kZoneEraAmerica_Costa_Rica[] ACE_TIME_PROGMEM = {
    -
    867  // -6:00 CR C%sT
    -
    868  {
    -
    869  &kZonePolicyCR /*zonePolicy*/,
    -
    870  "C%T" /*format*/,
    -
    871  -24 /*offsetCode*/,
    -
    872  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    873  127 /*untilYearTiny*/,
    -
    874  1 /*untilMonth*/,
    -
    875  1 /*untilDay*/,
    -
    876  0 /*untilTimeCode*/,
    -
    877  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    878  },
    -
    879 
    -
    880 };
    -
    881 
    -
    882 static const char kZoneNameAmerica_Costa_Rica[] ACE_TIME_PROGMEM = "\x02" "Costa_Rica";
    -
    883 
    -
    884 const basic::Info::ZoneInfo kZoneAmerica_Costa_Rica ACE_TIME_PROGMEM = {
    -
    885  kZoneNameAmerica_Costa_Rica /*name*/,
    -
    886  0x63ff66be /*zoneId*/,
    -
    887  &kZoneContext /*zoneContext*/,
    -
    888  1 /*numEras*/,
    -
    889  kZoneEraAmerica_Costa_Rica /*eras*/,
    -
    890  nullptr /*targetInfo*/,
    -
    891 };
    -
    892 
    -
    893 //---------------------------------------------------------------------------
    -
    894 // Zone name: America/Danmarkshavn
    -
    895 // Eras: 1
    -
    896 //---------------------------------------------------------------------------
    -
    897 
    -
    898 static const basic::Info::ZoneEra kZoneEraAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = {
    -
    899  // 0:00 - GMT
    -
    900  {
    -
    901  nullptr /*zonePolicy*/,
    -
    902  "GMT" /*format*/,
    -
    903  0 /*offsetCode*/,
    -
    904  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    905  127 /*untilYearTiny*/,
    -
    906  1 /*untilMonth*/,
    -
    907  1 /*untilDay*/,
    -
    908  0 /*untilTimeCode*/,
    -
    909  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    910  },
    -
    911 
    -
    912 };
    -
    913 
    -
    914 static const char kZoneNameAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = "\x02" "Danmarkshavn";
    -
    915 
    -
    916 const basic::Info::ZoneInfo kZoneAmerica_Danmarkshavn ACE_TIME_PROGMEM = {
    -
    917  kZoneNameAmerica_Danmarkshavn /*name*/,
    -
    918  0xf554d204 /*zoneId*/,
    -
    919  &kZoneContext /*zoneContext*/,
    -
    920  1 /*numEras*/,
    -
    921  kZoneEraAmerica_Danmarkshavn /*eras*/,
    -
    922  nullptr /*targetInfo*/,
    -
    923 };
    -
    924 
    -
    925 //---------------------------------------------------------------------------
    -
    926 // Zone name: America/Dawson_Creek
    -
    927 // Eras: 1
    -
    928 //---------------------------------------------------------------------------
    -
    929 
    -
    930 static const basic::Info::ZoneEra kZoneEraAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = {
    -
    931  // -7:00 - MST
    -
    932  {
    -
    933  nullptr /*zonePolicy*/,
    -
    934  "MST" /*format*/,
    -
    935  -28 /*offsetCode*/,
    -
    936  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    937  127 /*untilYearTiny*/,
    -
    938  1 /*untilMonth*/,
    -
    939  1 /*untilDay*/,
    -
    940  0 /*untilTimeCode*/,
    -
    941  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    942  },
    -
    943 
    -
    944 };
    -
    945 
    -
    946 static const char kZoneNameAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = "\x02" "Dawson_Creek";
    -
    947 
    -
    948 const basic::Info::ZoneInfo kZoneAmerica_Dawson_Creek ACE_TIME_PROGMEM = {
    -
    949  kZoneNameAmerica_Dawson_Creek /*name*/,
    -
    950  0x6cf24e5b /*zoneId*/,
    -
    951  &kZoneContext /*zoneContext*/,
    -
    952  1 /*numEras*/,
    -
    953  kZoneEraAmerica_Dawson_Creek /*eras*/,
    -
    954  nullptr /*targetInfo*/,
    -
    955 };
    -
    956 
    -
    957 //---------------------------------------------------------------------------
    -
    958 // Zone name: America/Denver
    -
    959 // Eras: 1
    -
    960 //---------------------------------------------------------------------------
    -
    961 
    -
    962 static const basic::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = {
    -
    963  // -7:00 US M%sT
    -
    964  {
    -
    965  &kZonePolicyUS /*zonePolicy*/,
    -
    966  "M%T" /*format*/,
    -
    967  -28 /*offsetCode*/,
    -
    968  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    969  127 /*untilYearTiny*/,
    -
    970  1 /*untilMonth*/,
    -
    971  1 /*untilDay*/,
    -
    972  0 /*untilTimeCode*/,
    -
    973  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    974  },
    -
    975 
    -
    976 };
    -
    977 
    -
    978 static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "\x02" "Denver";
    -
    979 
    -
    980 const basic::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = {
    -
    981  kZoneNameAmerica_Denver /*name*/,
    -
    982  0x97d10b2a /*zoneId*/,
    -
    983  &kZoneContext /*zoneContext*/,
    -
    984  1 /*numEras*/,
    -
    985  kZoneEraAmerica_Denver /*eras*/,
    -
    986  nullptr /*targetInfo*/,
    -
    987 };
    -
    988 
    -
    989 //---------------------------------------------------------------------------
    -
    990 // Zone name: America/Detroit
    -
    991 // Eras: 1
    -
    992 //---------------------------------------------------------------------------
    -
    993 
    -
    994 static const basic::Info::ZoneEra kZoneEraAmerica_Detroit[] ACE_TIME_PROGMEM = {
    -
    995  // -5:00 US E%sT
    -
    996  {
    -
    997  &kZonePolicyUS /*zonePolicy*/,
    -
    998  "E%T" /*format*/,
    -
    999  -20 /*offsetCode*/,
    -
    1000  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1001  127 /*untilYearTiny*/,
    -
    1002  1 /*untilMonth*/,
    -
    1003  1 /*untilDay*/,
    -
    1004  0 /*untilTimeCode*/,
    -
    1005  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1006  },
    -
    1007 
    -
    1008 };
    -
    1009 
    -
    1010 static const char kZoneNameAmerica_Detroit[] ACE_TIME_PROGMEM = "\x02" "Detroit";
    -
    1011 
    -
    1012 const basic::Info::ZoneInfo kZoneAmerica_Detroit ACE_TIME_PROGMEM = {
    -
    1013  kZoneNameAmerica_Detroit /*name*/,
    -
    1014  0x925cfbc1 /*zoneId*/,
    -
    1015  &kZoneContext /*zoneContext*/,
    -
    1016  1 /*numEras*/,
    -
    1017  kZoneEraAmerica_Detroit /*eras*/,
    -
    1018  nullptr /*targetInfo*/,
    -
    1019 };
    -
    1020 
    -
    1021 //---------------------------------------------------------------------------
    -
    1022 // Zone name: America/Edmonton
    -
    1023 // Eras: 1
    -
    1024 //---------------------------------------------------------------------------
    -
    1025 
    -
    1026 static const basic::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = {
    -
    1027  // -7:00 Canada M%sT
    -
    1028  {
    -
    1029  &kZonePolicyCanada /*zonePolicy*/,
    -
    1030  "M%T" /*format*/,
    -
    1031  -28 /*offsetCode*/,
    -
    1032  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1033  127 /*untilYearTiny*/,
    -
    1034  1 /*untilMonth*/,
    -
    1035  1 /*untilDay*/,
    -
    1036  0 /*untilTimeCode*/,
    -
    1037  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1038  },
    -
    1039 
    -
    1040 };
    -
    1041 
    -
    1042 static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "\x02" "Edmonton";
    -
    1043 
    -
    1044 const basic::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = {
    -
    1045  kZoneNameAmerica_Edmonton /*name*/,
    -
    1046  0x6cb9484a /*zoneId*/,
    -
    1047  &kZoneContext /*zoneContext*/,
    -
    1048  1 /*numEras*/,
    -
    1049  kZoneEraAmerica_Edmonton /*eras*/,
    -
    1050  nullptr /*targetInfo*/,
    -
    1051 };
    -
    1052 
    -
    1053 //---------------------------------------------------------------------------
    -
    1054 // Zone name: America/El_Salvador
    -
    1055 // Eras: 1
    -
    1056 //---------------------------------------------------------------------------
    -
    1057 
    -
    1058 static const basic::Info::ZoneEra kZoneEraAmerica_El_Salvador[] ACE_TIME_PROGMEM = {
    -
    1059  // -6:00 Salv C%sT
    -
    1060  {
    -
    1061  &kZonePolicySalv /*zonePolicy*/,
    -
    1062  "C%T" /*format*/,
    -
    1063  -24 /*offsetCode*/,
    -
    1064  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1065  127 /*untilYearTiny*/,
    -
    1066  1 /*untilMonth*/,
    -
    1067  1 /*untilDay*/,
    -
    1068  0 /*untilTimeCode*/,
    -
    1069  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1070  },
    -
    1071 
    -
    1072 };
    -
    1073 
    -
    1074 static const char kZoneNameAmerica_El_Salvador[] ACE_TIME_PROGMEM = "\x02" "El_Salvador";
    -
    1075 
    -
    1076 const basic::Info::ZoneInfo kZoneAmerica_El_Salvador ACE_TIME_PROGMEM = {
    -
    1077  kZoneNameAmerica_El_Salvador /*name*/,
    -
    1078  0x752ad652 /*zoneId*/,
    -
    1079  &kZoneContext /*zoneContext*/,
    -
    1080  1 /*numEras*/,
    -
    1081  kZoneEraAmerica_El_Salvador /*eras*/,
    -
    1082  nullptr /*targetInfo*/,
    -
    1083 };
    -
    1084 
    -
    1085 //---------------------------------------------------------------------------
    -
    1086 // Zone name: America/Glace_Bay
    -
    1087 // Eras: 1
    -
    1088 //---------------------------------------------------------------------------
    -
    1089 
    -
    1090 static const basic::Info::ZoneEra kZoneEraAmerica_Glace_Bay[] ACE_TIME_PROGMEM = {
    -
    1091  // -4:00 Canada A%sT
    -
    1092  {
    -
    1093  &kZonePolicyCanada /*zonePolicy*/,
    -
    1094  "A%T" /*format*/,
    -
    1095  -16 /*offsetCode*/,
    -
    1096  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1097  127 /*untilYearTiny*/,
    -
    1098  1 /*untilMonth*/,
    -
    1099  1 /*untilDay*/,
    -
    1100  0 /*untilTimeCode*/,
    -
    1101  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1102  },
    -
    1103 
    -
    1104 };
    -
    1105 
    -
    1106 static const char kZoneNameAmerica_Glace_Bay[] ACE_TIME_PROGMEM = "\x02" "Glace_Bay";
    -
    1107 
    -
    1108 const basic::Info::ZoneInfo kZoneAmerica_Glace_Bay ACE_TIME_PROGMEM = {
    -
    1109  kZoneNameAmerica_Glace_Bay /*name*/,
    -
    1110  0x9681f8dd /*zoneId*/,
    -
    1111  &kZoneContext /*zoneContext*/,
    -
    1112  1 /*numEras*/,
    -
    1113  kZoneEraAmerica_Glace_Bay /*eras*/,
    -
    1114  nullptr /*targetInfo*/,
    -
    1115 };
    -
    1116 
    -
    1117 //---------------------------------------------------------------------------
    -
    1118 // Zone name: America/Guatemala
    -
    1119 // Eras: 1
    -
    1120 //---------------------------------------------------------------------------
    -
    1121 
    -
    1122 static const basic::Info::ZoneEra kZoneEraAmerica_Guatemala[] ACE_TIME_PROGMEM = {
    -
    1123  // -6:00 Guat C%sT
    -
    1124  {
    -
    1125  &kZonePolicyGuat /*zonePolicy*/,
    -
    1126  "C%T" /*format*/,
    -
    1127  -24 /*offsetCode*/,
    -
    1128  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1129  127 /*untilYearTiny*/,
    -
    1130  1 /*untilMonth*/,
    -
    1131  1 /*untilDay*/,
    -
    1132  0 /*untilTimeCode*/,
    -
    1133  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1134  },
    -
    1135 
    -
    1136 };
    -
    1137 
    -
    1138 static const char kZoneNameAmerica_Guatemala[] ACE_TIME_PROGMEM = "\x02" "Guatemala";
    -
    1139 
    -
    1140 const basic::Info::ZoneInfo kZoneAmerica_Guatemala ACE_TIME_PROGMEM = {
    -
    1141  kZoneNameAmerica_Guatemala /*name*/,
    -
    1142  0x0c8259f7 /*zoneId*/,
    -
    1143  &kZoneContext /*zoneContext*/,
    -
    1144  1 /*numEras*/,
    -
    1145  kZoneEraAmerica_Guatemala /*eras*/,
    -
    1146  nullptr /*targetInfo*/,
    -
    1147 };
    -
    1148 
    -
    1149 //---------------------------------------------------------------------------
    -
    1150 // Zone name: America/Guayaquil
    -
    1151 // Eras: 1
    -
    1152 //---------------------------------------------------------------------------
    -
    1153 
    -
    1154 static const basic::Info::ZoneEra kZoneEraAmerica_Guayaquil[] ACE_TIME_PROGMEM = {
    -
    1155  // -5:00 Ecuador %z
    -
    1156  {
    -
    1157  &kZonePolicyEcuador /*zonePolicy*/,
    -
    1158  "" /*format*/,
    -
    1159  -20 /*offsetCode*/,
    -
    1160  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1161  127 /*untilYearTiny*/,
    -
    1162  1 /*untilMonth*/,
    -
    1163  1 /*untilDay*/,
    -
    1164  0 /*untilTimeCode*/,
    -
    1165  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1166  },
    -
    1167 
    -
    1168 };
    -
    1169 
    -
    1170 static const char kZoneNameAmerica_Guayaquil[] ACE_TIME_PROGMEM = "\x02" "Guayaquil";
    -
    1171 
    -
    1172 const basic::Info::ZoneInfo kZoneAmerica_Guayaquil ACE_TIME_PROGMEM = {
    -
    1173  kZoneNameAmerica_Guayaquil /*name*/,
    -
    1174  0x17e64958 /*zoneId*/,
    -
    1175  &kZoneContext /*zoneContext*/,
    -
    1176  1 /*numEras*/,
    -
    1177  kZoneEraAmerica_Guayaquil /*eras*/,
    -
    1178  nullptr /*targetInfo*/,
    -
    1179 };
    -
    1180 
    -
    1181 //---------------------------------------------------------------------------
    -
    1182 // Zone name: America/Guyana
    -
    1183 // Eras: 1
    -
    1184 //---------------------------------------------------------------------------
    -
    1185 
    -
    1186 static const basic::Info::ZoneEra kZoneEraAmerica_Guyana[] ACE_TIME_PROGMEM = {
    -
    1187  // -4:00 - %z
    -
    1188  {
    -
    1189  nullptr /*zonePolicy*/,
    -
    1190  "" /*format*/,
    -
    1191  -16 /*offsetCode*/,
    -
    1192  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1193  127 /*untilYearTiny*/,
    -
    1194  1 /*untilMonth*/,
    -
    1195  1 /*untilDay*/,
    -
    1196  0 /*untilTimeCode*/,
    -
    1197  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1198  },
    -
    1199 
    -
    1200 };
    -
    1201 
    -
    1202 static const char kZoneNameAmerica_Guyana[] ACE_TIME_PROGMEM = "\x02" "Guyana";
    -
    1203 
    -
    1204 const basic::Info::ZoneInfo kZoneAmerica_Guyana ACE_TIME_PROGMEM = {
    -
    1205  kZoneNameAmerica_Guyana /*name*/,
    -
    1206  0x9ff7bd0b /*zoneId*/,
    -
    1207  &kZoneContext /*zoneContext*/,
    -
    1208  1 /*numEras*/,
    -
    1209  kZoneEraAmerica_Guyana /*eras*/,
    -
    1210  nullptr /*targetInfo*/,
    -
    1211 };
    -
    1212 
    -
    1213 //---------------------------------------------------------------------------
    -
    1214 // Zone name: America/Halifax
    -
    1215 // Eras: 1
    -
    1216 //---------------------------------------------------------------------------
    -
    1217 
    -
    1218 static const basic::Info::ZoneEra kZoneEraAmerica_Halifax[] ACE_TIME_PROGMEM = {
    -
    1219  // -4:00 Canada A%sT
    -
    1220  {
    -
    1221  &kZonePolicyCanada /*zonePolicy*/,
    -
    1222  "A%T" /*format*/,
    -
    1223  -16 /*offsetCode*/,
    -
    1224  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1225  127 /*untilYearTiny*/,
    -
    1226  1 /*untilMonth*/,
    -
    1227  1 /*untilDay*/,
    -
    1228  0 /*untilTimeCode*/,
    -
    1229  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1230  },
    -
    1231 
    -
    1232 };
    -
    1233 
    -
    1234 static const char kZoneNameAmerica_Halifax[] ACE_TIME_PROGMEM = "\x02" "Halifax";
    -
    1235 
    -
    1236 const basic::Info::ZoneInfo kZoneAmerica_Halifax ACE_TIME_PROGMEM = {
    -
    1237  kZoneNameAmerica_Halifax /*name*/,
    -
    1238  0xbc5b7183 /*zoneId*/,
    -
    1239  &kZoneContext /*zoneContext*/,
    -
    1240  1 /*numEras*/,
    -
    1241  kZoneEraAmerica_Halifax /*eras*/,
    -
    1242  nullptr /*targetInfo*/,
    -
    1243 };
    -
    1244 
    -
    1245 //---------------------------------------------------------------------------
    -
    1246 // Zone name: America/Havana
    -
    1247 // Eras: 1
    -
    1248 //---------------------------------------------------------------------------
    -
    1249 
    -
    1250 static const basic::Info::ZoneEra kZoneEraAmerica_Havana[] ACE_TIME_PROGMEM = {
    -
    1251  // -5:00 Cuba C%sT
    -
    1252  {
    -
    1253  &kZonePolicyCuba /*zonePolicy*/,
    -
    1254  "C%T" /*format*/,
    -
    1255  -20 /*offsetCode*/,
    -
    1256  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1257  127 /*untilYearTiny*/,
    -
    1258  1 /*untilMonth*/,
    -
    1259  1 /*untilDay*/,
    -
    1260  0 /*untilTimeCode*/,
    -
    1261  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1262  },
    -
    1263 
    -
    1264 };
    -
    1265 
    -
    1266 static const char kZoneNameAmerica_Havana[] ACE_TIME_PROGMEM = "\x02" "Havana";
    -
    1267 
    -
    1268 const basic::Info::ZoneInfo kZoneAmerica_Havana ACE_TIME_PROGMEM = {
    -
    1269  kZoneNameAmerica_Havana /*name*/,
    -
    1270  0xa0e15675 /*zoneId*/,
    -
    1271  &kZoneContext /*zoneContext*/,
    -
    1272  1 /*numEras*/,
    -
    1273  kZoneEraAmerica_Havana /*eras*/,
    -
    1274  nullptr /*targetInfo*/,
    -
    1275 };
    -
    1276 
    -
    1277 //---------------------------------------------------------------------------
    -
    1278 // Zone name: America/Hermosillo
    -
    1279 // Eras: 2
    -
    1280 //---------------------------------------------------------------------------
    -
    1281 
    -
    1282 static const basic::Info::ZoneEra kZoneEraAmerica_Hermosillo[] ACE_TIME_PROGMEM = {
    -
    1283  // -7:00 Mexico M%sT 1999
    -
    1284  {
    -
    1285  &kZonePolicyMexico /*zonePolicy*/,
    -
    1286  "M%T" /*format*/,
    -
    1287  -28 /*offsetCode*/,
    -
    1288  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1289  -101 /*untilYearTiny*/,
    -
    1290  1 /*untilMonth*/,
    -
    1291  1 /*untilDay*/,
    -
    1292  0 /*untilTimeCode*/,
    -
    1293  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1294  },
    -
    1295  // -7:00 - MST
    -
    1296  {
    -
    1297  nullptr /*zonePolicy*/,
    -
    1298  "MST" /*format*/,
    -
    1299  -28 /*offsetCode*/,
    -
    1300  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1301  127 /*untilYearTiny*/,
    -
    1302  1 /*untilMonth*/,
    -
    1303  1 /*untilDay*/,
    -
    1304  0 /*untilTimeCode*/,
    -
    1305  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1306  },
    -
    1307 
    -
    1308 };
    -
    1309 
    -
    1310 static const char kZoneNameAmerica_Hermosillo[] ACE_TIME_PROGMEM = "\x02" "Hermosillo";
    -
    1311 
    -
    1312 const basic::Info::ZoneInfo kZoneAmerica_Hermosillo ACE_TIME_PROGMEM = {
    -
    1313  kZoneNameAmerica_Hermosillo /*name*/,
    -
    1314  0x065d21c4 /*zoneId*/,
    -
    1315  &kZoneContext /*zoneContext*/,
    -
    1316  2 /*numEras*/,
    -
    1317  kZoneEraAmerica_Hermosillo /*eras*/,
    -
    1318  nullptr /*targetInfo*/,
    -
    1319 };
    -
    1320 
    -
    1321 //---------------------------------------------------------------------------
    -
    1322 // Zone name: America/Indiana/Indianapolis
    -
    1323 // Eras: 2
    -
    1324 //---------------------------------------------------------------------------
    -
    1325 
    -
    1326 static const basic::Info::ZoneEra kZoneEraAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = {
    -
    1327  // -5:00 - EST 2006
    -
    1328  {
    -
    1329  nullptr /*zonePolicy*/,
    -
    1330  "EST" /*format*/,
    -
    1331  -20 /*offsetCode*/,
    -
    1332  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1333  -94 /*untilYearTiny*/,
    -
    1334  1 /*untilMonth*/,
    -
    1335  1 /*untilDay*/,
    -
    1336  0 /*untilTimeCode*/,
    -
    1337  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1338  },
    -
    1339  // -5:00 US E%sT
    -
    1340  {
    -
    1341  &kZonePolicyUS /*zonePolicy*/,
    -
    1342  "E%T" /*format*/,
    -
    1343  -20 /*offsetCode*/,
    -
    1344  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1345  127 /*untilYearTiny*/,
    -
    1346  1 /*untilMonth*/,
    -
    1347  1 /*untilDay*/,
    -
    1348  0 /*untilTimeCode*/,
    -
    1349  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1350  },
    -
    1351 
    -
    1352 };
    -
    1353 
    -
    1354 static const char kZoneNameAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "Indiana/Indianapolis";
    -
    1355 
    -
    1356 const basic::Info::ZoneInfo kZoneAmerica_Indiana_Indianapolis ACE_TIME_PROGMEM = {
    -
    1357  kZoneNameAmerica_Indiana_Indianapolis /*name*/,
    -
    1358  0x28a669a4 /*zoneId*/,
    -
    1359  &kZoneContext /*zoneContext*/,
    -
    1360  2 /*numEras*/,
    -
    1361  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    1362  nullptr /*targetInfo*/,
    -
    1363 };
    -
    1364 
    -
    1365 //---------------------------------------------------------------------------
    -
    1366 // Zone name: America/Indiana/Marengo
    -
    1367 // Eras: 2
    -
    1368 //---------------------------------------------------------------------------
    -
    1369 
    -
    1370 static const basic::Info::ZoneEra kZoneEraAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = {
    -
    1371  // -5:00 - EST 2006
    -
    1372  {
    -
    1373  nullptr /*zonePolicy*/,
    -
    1374  "EST" /*format*/,
    -
    1375  -20 /*offsetCode*/,
    -
    1376  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1377  -94 /*untilYearTiny*/,
    -
    1378  1 /*untilMonth*/,
    -
    1379  1 /*untilDay*/,
    -
    1380  0 /*untilTimeCode*/,
    -
    1381  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1382  },
    -
    1383  // -5:00 US E%sT
    -
    1384  {
    -
    1385  &kZonePolicyUS /*zonePolicy*/,
    -
    1386  "E%T" /*format*/,
    -
    1387  -20 /*offsetCode*/,
    -
    1388  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1389  127 /*untilYearTiny*/,
    -
    1390  1 /*untilMonth*/,
    -
    1391  1 /*untilDay*/,
    -
    1392  0 /*untilTimeCode*/,
    -
    1393  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1394  },
    -
    1395 
    -
    1396 };
    -
    1397 
    -
    1398 static const char kZoneNameAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = "\x02" "Indiana/Marengo";
    -
    1399 
    -
    1400 const basic::Info::ZoneInfo kZoneAmerica_Indiana_Marengo ACE_TIME_PROGMEM = {
    -
    1401  kZoneNameAmerica_Indiana_Marengo /*name*/,
    -
    1402  0x2feeee72 /*zoneId*/,
    -
    1403  &kZoneContext /*zoneContext*/,
    -
    1404  2 /*numEras*/,
    -
    1405  kZoneEraAmerica_Indiana_Marengo /*eras*/,
    -
    1406  nullptr /*targetInfo*/,
    -
    1407 };
    -
    1408 
    -
    1409 //---------------------------------------------------------------------------
    -
    1410 // Zone name: America/Indiana/Vevay
    -
    1411 // Eras: 2
    -
    1412 //---------------------------------------------------------------------------
    -
    1413 
    -
    1414 static const basic::Info::ZoneEra kZoneEraAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = {
    -
    1415  // -5:00 - EST 2006
    -
    1416  {
    -
    1417  nullptr /*zonePolicy*/,
    -
    1418  "EST" /*format*/,
    -
    1419  -20 /*offsetCode*/,
    -
    1420  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1421  -94 /*untilYearTiny*/,
    -
    1422  1 /*untilMonth*/,
    -
    1423  1 /*untilDay*/,
    -
    1424  0 /*untilTimeCode*/,
    -
    1425  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1426  },
    -
    1427  // -5:00 US E%sT
    -
    1428  {
    -
    1429  &kZonePolicyUS /*zonePolicy*/,
    -
    1430  "E%T" /*format*/,
    -
    1431  -20 /*offsetCode*/,
    -
    1432  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1433  127 /*untilYearTiny*/,
    -
    1434  1 /*untilMonth*/,
    -
    1435  1 /*untilDay*/,
    -
    1436  0 /*untilTimeCode*/,
    -
    1437  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1438  },
    -
    1439 
    -
    1440 };
    -
    1441 
    -
    1442 static const char kZoneNameAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = "\x02" "Indiana/Vevay";
    -
    1443 
    -
    1444 const basic::Info::ZoneInfo kZoneAmerica_Indiana_Vevay ACE_TIME_PROGMEM = {
    -
    1445  kZoneNameAmerica_Indiana_Vevay /*name*/,
    -
    1446  0x10aca054 /*zoneId*/,
    -
    1447  &kZoneContext /*zoneContext*/,
    -
    1448  2 /*numEras*/,
    -
    1449  kZoneEraAmerica_Indiana_Vevay /*eras*/,
    -
    1450  nullptr /*targetInfo*/,
    -
    1451 };
    -
    1452 
    -
    1453 //---------------------------------------------------------------------------
    -
    1454 // Zone name: America/Inuvik
    -
    1455 // Eras: 1
    -
    1456 //---------------------------------------------------------------------------
    -
    1457 
    -
    1458 static const basic::Info::ZoneEra kZoneEraAmerica_Inuvik[] ACE_TIME_PROGMEM = {
    -
    1459  // -7:00 Canada M%sT
    -
    1460  {
    -
    1461  &kZonePolicyCanada /*zonePolicy*/,
    -
    1462  "M%T" /*format*/,
    -
    1463  -28 /*offsetCode*/,
    -
    1464  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1465  127 /*untilYearTiny*/,
    -
    1466  1 /*untilMonth*/,
    -
    1467  1 /*untilDay*/,
    -
    1468  0 /*untilTimeCode*/,
    -
    1469  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1470  },
    -
    1471 
    -
    1472 };
    -
    1473 
    -
    1474 static const char kZoneNameAmerica_Inuvik[] ACE_TIME_PROGMEM = "\x02" "Inuvik";
    -
    1475 
    -
    1476 const basic::Info::ZoneInfo kZoneAmerica_Inuvik ACE_TIME_PROGMEM = {
    -
    1477  kZoneNameAmerica_Inuvik /*name*/,
    -
    1478  0xa42189fc /*zoneId*/,
    -
    1479  &kZoneContext /*zoneContext*/,
    -
    1480  1 /*numEras*/,
    -
    1481  kZoneEraAmerica_Inuvik /*eras*/,
    -
    1482  nullptr /*targetInfo*/,
    -
    1483 };
    -
    1484 
    -
    1485 //---------------------------------------------------------------------------
    -
    1486 // Zone name: America/Jamaica
    -
    1487 // Eras: 1
    -
    1488 //---------------------------------------------------------------------------
    -
    1489 
    -
    1490 static const basic::Info::ZoneEra kZoneEraAmerica_Jamaica[] ACE_TIME_PROGMEM = {
    -
    1491  // -5:00 - EST
    -
    1492  {
    -
    1493  nullptr /*zonePolicy*/,
    -
    1494  "EST" /*format*/,
    -
    1495  -20 /*offsetCode*/,
    -
    1496  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1497  127 /*untilYearTiny*/,
    -
    1498  1 /*untilMonth*/,
    -
    1499  1 /*untilDay*/,
    -
    1500  0 /*untilTimeCode*/,
    -
    1501  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1502  },
    -
    1503 
    -
    1504 };
    -
    1505 
    -
    1506 static const char kZoneNameAmerica_Jamaica[] ACE_TIME_PROGMEM = "\x02" "Jamaica";
    -
    1507 
    -
    1508 const basic::Info::ZoneInfo kZoneAmerica_Jamaica ACE_TIME_PROGMEM = {
    -
    1509  kZoneNameAmerica_Jamaica /*name*/,
    -
    1510  0x565dad6c /*zoneId*/,
    -
    1511  &kZoneContext /*zoneContext*/,
    -
    1512  1 /*numEras*/,
    -
    1513  kZoneEraAmerica_Jamaica /*eras*/,
    -
    1514  nullptr /*targetInfo*/,
    -
    1515 };
    -
    1516 
    -
    1517 //---------------------------------------------------------------------------
    -
    1518 // Zone name: America/Juneau
    -
    1519 // Eras: 1
    -
    1520 //---------------------------------------------------------------------------
    -
    1521 
    -
    1522 static const basic::Info::ZoneEra kZoneEraAmerica_Juneau[] ACE_TIME_PROGMEM = {
    -
    1523  // -9:00 US AK%sT
    -
    1524  {
    -
    1525  &kZonePolicyUS /*zonePolicy*/,
    -
    1526  "AK%T" /*format*/,
    -
    1527  -36 /*offsetCode*/,
    -
    1528  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1529  127 /*untilYearTiny*/,
    -
    1530  1 /*untilMonth*/,
    -
    1531  1 /*untilDay*/,
    -
    1532  0 /*untilTimeCode*/,
    -
    1533  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1534  },
    -
    1535 
    -
    1536 };
    -
    1537 
    -
    1538 static const char kZoneNameAmerica_Juneau[] ACE_TIME_PROGMEM = "\x02" "Juneau";
    -
    1539 
    -
    1540 const basic::Info::ZoneInfo kZoneAmerica_Juneau ACE_TIME_PROGMEM = {
    -
    1541  kZoneNameAmerica_Juneau /*name*/,
    -
    1542  0xa6f13e2e /*zoneId*/,
    -
    1543  &kZoneContext /*zoneContext*/,
    -
    1544  1 /*numEras*/,
    -
    1545  kZoneEraAmerica_Juneau /*eras*/,
    -
    1546  nullptr /*targetInfo*/,
    -
    1547 };
    -
    1548 
    -
    1549 //---------------------------------------------------------------------------
    -
    1550 // Zone name: America/Kentucky/Louisville
    -
    1551 // Eras: 1
    -
    1552 //---------------------------------------------------------------------------
    -
    1553 
    -
    1554 static const basic::Info::ZoneEra kZoneEraAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = {
    -
    1555  // -5:00 US E%sT
    -
    1556  {
    -
    1557  &kZonePolicyUS /*zonePolicy*/,
    -
    1558  "E%T" /*format*/,
    -
    1559  -20 /*offsetCode*/,
    -
    1560  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1561  127 /*untilYearTiny*/,
    -
    1562  1 /*untilMonth*/,
    -
    1563  1 /*untilDay*/,
    -
    1564  0 /*untilTimeCode*/,
    -
    1565  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1566  },
    -
    1567 
    -
    1568 };
    -
    1569 
    -
    1570 static const char kZoneNameAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = "\x02" "Kentucky/Louisville";
    -
    1571 
    -
    1572 const basic::Info::ZoneInfo kZoneAmerica_Kentucky_Louisville ACE_TIME_PROGMEM = {
    -
    1573  kZoneNameAmerica_Kentucky_Louisville /*name*/,
    -
    1574  0x1a21024b /*zoneId*/,
    -
    1575  &kZoneContext /*zoneContext*/,
    -
    1576  1 /*numEras*/,
    -
    1577  kZoneEraAmerica_Kentucky_Louisville /*eras*/,
    -
    1578  nullptr /*targetInfo*/,
    -
    1579 };
    -
    1580 
    -
    1581 //---------------------------------------------------------------------------
    -
    1582 // Zone name: America/La_Paz
    -
    1583 // Eras: 1
    -
    1584 //---------------------------------------------------------------------------
    -
    1585 
    -
    1586 static const basic::Info::ZoneEra kZoneEraAmerica_La_Paz[] ACE_TIME_PROGMEM = {
    -
    1587  // -4:00 - %z
    -
    1588  {
    -
    1589  nullptr /*zonePolicy*/,
    -
    1590  "" /*format*/,
    -
    1591  -16 /*offsetCode*/,
    -
    1592  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1593  127 /*untilYearTiny*/,
    -
    1594  1 /*untilMonth*/,
    -
    1595  1 /*untilDay*/,
    -
    1596  0 /*untilTimeCode*/,
    -
    1597  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1598  },
    -
    1599 
    -
    1600 };
    -
    1601 
    -
    1602 static const char kZoneNameAmerica_La_Paz[] ACE_TIME_PROGMEM = "\x02" "La_Paz";
    -
    1603 
    -
    1604 const basic::Info::ZoneInfo kZoneAmerica_La_Paz ACE_TIME_PROGMEM = {
    -
    1605  kZoneNameAmerica_La_Paz /*name*/,
    -
    1606  0xaa29125d /*zoneId*/,
    -
    1607  &kZoneContext /*zoneContext*/,
    -
    1608  1 /*numEras*/,
    -
    1609  kZoneEraAmerica_La_Paz /*eras*/,
    -
    1610  nullptr /*targetInfo*/,
    -
    1611 };
    -
    1612 
    -
    1613 //---------------------------------------------------------------------------
    -
    1614 // Zone name: America/Lima
    -
    1615 // Eras: 1
    -
    1616 //---------------------------------------------------------------------------
    -
    1617 
    -
    1618 static const basic::Info::ZoneEra kZoneEraAmerica_Lima[] ACE_TIME_PROGMEM = {
    -
    1619  // -5:00 Peru %z
    -
    1620  {
    -
    1621  &kZonePolicyPeru /*zonePolicy*/,
    -
    1622  "" /*format*/,
    -
    1623  -20 /*offsetCode*/,
    -
    1624  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1625  127 /*untilYearTiny*/,
    -
    1626  1 /*untilMonth*/,
    -
    1627  1 /*untilDay*/,
    -
    1628  0 /*untilTimeCode*/,
    -
    1629  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1630  },
    -
    1631 
    -
    1632 };
    -
    1633 
    -
    1634 static const char kZoneNameAmerica_Lima[] ACE_TIME_PROGMEM = "\x02" "Lima";
    -
    1635 
    -
    1636 const basic::Info::ZoneInfo kZoneAmerica_Lima ACE_TIME_PROGMEM = {
    -
    1637  kZoneNameAmerica_Lima /*name*/,
    -
    1638  0x980468c9 /*zoneId*/,
    -
    1639  &kZoneContext /*zoneContext*/,
    -
    1640  1 /*numEras*/,
    -
    1641  kZoneEraAmerica_Lima /*eras*/,
    -
    1642  nullptr /*targetInfo*/,
    -
    1643 };
    -
    1644 
    -
    1645 //---------------------------------------------------------------------------
    -
    1646 // Zone name: America/Los_Angeles
    -
    1647 // Eras: 1
    -
    1648 //---------------------------------------------------------------------------
    -
    1649 
    -
    1650 static const basic::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = {
    -
    1651  // -8:00 US P%sT
    -
    1652  {
    -
    1653  &kZonePolicyUS /*zonePolicy*/,
    -
    1654  "P%T" /*format*/,
    -
    1655  -32 /*offsetCode*/,
    -
    1656  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1657  127 /*untilYearTiny*/,
    -
    1658  1 /*untilMonth*/,
    -
    1659  1 /*untilDay*/,
    -
    1660  0 /*untilTimeCode*/,
    -
    1661  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1662  },
    -
    1663 
    -
    1664 };
    -
    1665 
    -
    1666 static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "\x02" "Los_Angeles";
    -
    1667 
    -
    1668 const basic::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = {
    -
    1669  kZoneNameAmerica_Los_Angeles /*name*/,
    -
    1670  0xb7f7e8f2 /*zoneId*/,
    -
    1671  &kZoneContext /*zoneContext*/,
    -
    1672  1 /*numEras*/,
    -
    1673  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    1674  nullptr /*targetInfo*/,
    -
    1675 };
    -
    1676 
    -
    1677 //---------------------------------------------------------------------------
    -
    1678 // Zone name: America/Managua
    -
    1679 // Eras: 1
    -
    1680 //---------------------------------------------------------------------------
    -
    1681 
    -
    1682 static const basic::Info::ZoneEra kZoneEraAmerica_Managua[] ACE_TIME_PROGMEM = {
    -
    1683  // -6:00 Nic C%sT
    -
    1684  {
    -
    1685  &kZonePolicyNic /*zonePolicy*/,
    -
    1686  "C%T" /*format*/,
    -
    1687  -24 /*offsetCode*/,
    -
    1688  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1689  127 /*untilYearTiny*/,
    -
    1690  1 /*untilMonth*/,
    -
    1691  1 /*untilDay*/,
    -
    1692  0 /*untilTimeCode*/,
    -
    1693  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1694  },
    -
    1695 
    -
    1696 };
    -
    1697 
    -
    1698 static const char kZoneNameAmerica_Managua[] ACE_TIME_PROGMEM = "\x02" "Managua";
    -
    1699 
    -
    1700 const basic::Info::ZoneInfo kZoneAmerica_Managua ACE_TIME_PROGMEM = {
    -
    1701  kZoneNameAmerica_Managua /*name*/,
    -
    1702  0x3d5e7600 /*zoneId*/,
    -
    1703  &kZoneContext /*zoneContext*/,
    -
    1704  1 /*numEras*/,
    -
    1705  kZoneEraAmerica_Managua /*eras*/,
    -
    1706  nullptr /*targetInfo*/,
    -
    1707 };
    -
    1708 
    -
    1709 //---------------------------------------------------------------------------
    -
    1710 // Zone name: America/Manaus
    -
    1711 // Eras: 1
    -
    1712 //---------------------------------------------------------------------------
    -
    1713 
    -
    1714 static const basic::Info::ZoneEra kZoneEraAmerica_Manaus[] ACE_TIME_PROGMEM = {
    -
    1715  // -4:00 - %z
    -
    1716  {
    -
    1717  nullptr /*zonePolicy*/,
    -
    1718  "" /*format*/,
    -
    1719  -16 /*offsetCode*/,
    -
    1720  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1721  127 /*untilYearTiny*/,
    -
    1722  1 /*untilMonth*/,
    -
    1723  1 /*untilDay*/,
    -
    1724  0 /*untilTimeCode*/,
    -
    1725  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1726  },
    -
    1727 
    -
    1728 };
    -
    1729 
    -
    1730 static const char kZoneNameAmerica_Manaus[] ACE_TIME_PROGMEM = "\x02" "Manaus";
    -
    1731 
    -
    1732 const basic::Info::ZoneInfo kZoneAmerica_Manaus ACE_TIME_PROGMEM = {
    -
    1733  kZoneNameAmerica_Manaus /*name*/,
    -
    1734  0xac86bf8b /*zoneId*/,
    -
    1735  &kZoneContext /*zoneContext*/,
    -
    1736  1 /*numEras*/,
    -
    1737  kZoneEraAmerica_Manaus /*eras*/,
    -
    1738  nullptr /*targetInfo*/,
    -
    1739 };
    -
    1740 
    -
    1741 //---------------------------------------------------------------------------
    -
    1742 // Zone name: America/Martinique
    -
    1743 // Eras: 1
    -
    1744 //---------------------------------------------------------------------------
    -
    1745 
    -
    1746 static const basic::Info::ZoneEra kZoneEraAmerica_Martinique[] ACE_TIME_PROGMEM = {
    -
    1747  // -4:00 - AST
    -
    1748  {
    -
    1749  nullptr /*zonePolicy*/,
    -
    1750  "AST" /*format*/,
    -
    1751  -16 /*offsetCode*/,
    -
    1752  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1753  127 /*untilYearTiny*/,
    -
    1754  1 /*untilMonth*/,
    -
    1755  1 /*untilDay*/,
    -
    1756  0 /*untilTimeCode*/,
    -
    1757  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1758  },
    -
    1759 
    -
    1760 };
    -
    1761 
    -
    1762 static const char kZoneNameAmerica_Martinique[] ACE_TIME_PROGMEM = "\x02" "Martinique";
    -
    1763 
    -
    1764 const basic::Info::ZoneInfo kZoneAmerica_Martinique ACE_TIME_PROGMEM = {
    -
    1765  kZoneNameAmerica_Martinique /*name*/,
    -
    1766  0x551e84c5 /*zoneId*/,
    -
    1767  &kZoneContext /*zoneContext*/,
    -
    1768  1 /*numEras*/,
    -
    1769  kZoneEraAmerica_Martinique /*eras*/,
    -
    1770  nullptr /*targetInfo*/,
    -
    1771 };
    -
    1772 
    -
    1773 //---------------------------------------------------------------------------
    -
    1774 // Zone name: America/Matamoros
    -
    1775 // Eras: 2
    -
    1776 //---------------------------------------------------------------------------
    -
    1777 
    -
    1778 static const basic::Info::ZoneEra kZoneEraAmerica_Matamoros[] ACE_TIME_PROGMEM = {
    -
    1779  // -6:00 Mexico C%sT 2010
    -
    1780  {
    -
    1781  &kZonePolicyMexico /*zonePolicy*/,
    -
    1782  "C%T" /*format*/,
    -
    1783  -24 /*offsetCode*/,
    -
    1784  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1785  -90 /*untilYearTiny*/,
    -
    1786  1 /*untilMonth*/,
    -
    1787  1 /*untilDay*/,
    -
    1788  0 /*untilTimeCode*/,
    -
    1789  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1790  },
    -
    1791  // -6:00 US C%sT
    -
    1792  {
    -
    1793  &kZonePolicyUS /*zonePolicy*/,
    -
    1794  "C%T" /*format*/,
    -
    1795  -24 /*offsetCode*/,
    -
    1796  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1797  127 /*untilYearTiny*/,
    -
    1798  1 /*untilMonth*/,
    -
    1799  1 /*untilDay*/,
    -
    1800  0 /*untilTimeCode*/,
    -
    1801  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1802  },
    -
    1803 
    -
    1804 };
    -
    1805 
    -
    1806 static const char kZoneNameAmerica_Matamoros[] ACE_TIME_PROGMEM = "\x02" "Matamoros";
    -
    1807 
    -
    1808 const basic::Info::ZoneInfo kZoneAmerica_Matamoros ACE_TIME_PROGMEM = {
    -
    1809  kZoneNameAmerica_Matamoros /*name*/,
    -
    1810  0xdd1b0259 /*zoneId*/,
    -
    1811  &kZoneContext /*zoneContext*/,
    -
    1812  2 /*numEras*/,
    -
    1813  kZoneEraAmerica_Matamoros /*eras*/,
    -
    1814  nullptr /*targetInfo*/,
    -
    1815 };
    -
    1816 
    -
    1817 //---------------------------------------------------------------------------
    -
    1818 // Zone name: America/Mazatlan
    -
    1819 // Eras: 1
    -
    1820 //---------------------------------------------------------------------------
    -
    1821 
    -
    1822 static const basic::Info::ZoneEra kZoneEraAmerica_Mazatlan[] ACE_TIME_PROGMEM = {
    -
    1823  // -7:00 Mexico M%sT
    -
    1824  {
    -
    1825  &kZonePolicyMexico /*zonePolicy*/,
    -
    1826  "M%T" /*format*/,
    -
    1827  -28 /*offsetCode*/,
    -
    1828  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1829  127 /*untilYearTiny*/,
    -
    1830  1 /*untilMonth*/,
    -
    1831  1 /*untilDay*/,
    -
    1832  0 /*untilTimeCode*/,
    -
    1833  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1834  },
    -
    1835 
    -
    1836 };
    -
    1837 
    -
    1838 static const char kZoneNameAmerica_Mazatlan[] ACE_TIME_PROGMEM = "\x02" "Mazatlan";
    -
    1839 
    -
    1840 const basic::Info::ZoneInfo kZoneAmerica_Mazatlan ACE_TIME_PROGMEM = {
    -
    1841  kZoneNameAmerica_Mazatlan /*name*/,
    -
    1842  0x0532189e /*zoneId*/,
    -
    1843  &kZoneContext /*zoneContext*/,
    -
    1844  1 /*numEras*/,
    -
    1845  kZoneEraAmerica_Mazatlan /*eras*/,
    -
    1846  nullptr /*targetInfo*/,
    -
    1847 };
    -
    1848 
    -
    1849 //---------------------------------------------------------------------------
    -
    1850 // Zone name: America/Menominee
    -
    1851 // Eras: 1
    -
    1852 //---------------------------------------------------------------------------
    -
    1853 
    -
    1854 static const basic::Info::ZoneEra kZoneEraAmerica_Menominee[] ACE_TIME_PROGMEM = {
    -
    1855  // -6:00 US C%sT
    -
    1856  {
    -
    1857  &kZonePolicyUS /*zonePolicy*/,
    -
    1858  "C%T" /*format*/,
    -
    1859  -24 /*offsetCode*/,
    -
    1860  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1861  127 /*untilYearTiny*/,
    -
    1862  1 /*untilMonth*/,
    -
    1863  1 /*untilDay*/,
    -
    1864  0 /*untilTimeCode*/,
    -
    1865  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1866  },
    -
    1867 
    -
    1868 };
    -
    1869 
    -
    1870 static const char kZoneNameAmerica_Menominee[] ACE_TIME_PROGMEM = "\x02" "Menominee";
    -
    1871 
    -
    1872 const basic::Info::ZoneInfo kZoneAmerica_Menominee ACE_TIME_PROGMEM = {
    -
    1873  kZoneNameAmerica_Menominee /*name*/,
    -
    1874  0xe0e9c583 /*zoneId*/,
    -
    1875  &kZoneContext /*zoneContext*/,
    -
    1876  1 /*numEras*/,
    -
    1877  kZoneEraAmerica_Menominee /*eras*/,
    -
    1878  nullptr /*targetInfo*/,
    -
    1879 };
    -
    1880 
    -
    1881 //---------------------------------------------------------------------------
    -
    1882 // Zone name: America/Merida
    -
    1883 // Eras: 1
    -
    1884 //---------------------------------------------------------------------------
    -
    1885 
    -
    1886 static const basic::Info::ZoneEra kZoneEraAmerica_Merida[] ACE_TIME_PROGMEM = {
    -
    1887  // -6:00 Mexico C%sT
    -
    1888  {
    -
    1889  &kZonePolicyMexico /*zonePolicy*/,
    -
    1890  "C%T" /*format*/,
    -
    1891  -24 /*offsetCode*/,
    -
    1892  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1893  127 /*untilYearTiny*/,
    -
    1894  1 /*untilMonth*/,
    -
    1895  1 /*untilDay*/,
    -
    1896  0 /*untilTimeCode*/,
    -
    1897  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1898  },
    -
    1899 
    -
    1900 };
    -
    1901 
    -
    1902 static const char kZoneNameAmerica_Merida[] ACE_TIME_PROGMEM = "\x02" "Merida";
    -
    1903 
    -
    1904 const basic::Info::ZoneInfo kZoneAmerica_Merida ACE_TIME_PROGMEM = {
    -
    1905  kZoneNameAmerica_Merida /*name*/,
    -
    1906  0xacd172d8 /*zoneId*/,
    -
    1907  &kZoneContext /*zoneContext*/,
    -
    1908  1 /*numEras*/,
    -
    1909  kZoneEraAmerica_Merida /*eras*/,
    -
    1910  nullptr /*targetInfo*/,
    -
    1911 };
    -
    1912 
    -
    1913 //---------------------------------------------------------------------------
    -
    1914 // Zone name: America/Miquelon
    -
    1915 // Eras: 1
    -
    1916 //---------------------------------------------------------------------------
    -
    1917 
    -
    1918 static const basic::Info::ZoneEra kZoneEraAmerica_Miquelon[] ACE_TIME_PROGMEM = {
    -
    1919  // -3:00 Canada %z
    -
    1920  {
    -
    1921  &kZonePolicyCanada /*zonePolicy*/,
    -
    1922  "" /*format*/,
    -
    1923  -12 /*offsetCode*/,
    -
    1924  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1925  127 /*untilYearTiny*/,
    -
    1926  1 /*untilMonth*/,
    -
    1927  1 /*untilDay*/,
    -
    1928  0 /*untilTimeCode*/,
    -
    1929  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1930  },
    -
    1931 
    -
    1932 };
    -
    1933 
    -
    1934 static const char kZoneNameAmerica_Miquelon[] ACE_TIME_PROGMEM = "\x02" "Miquelon";
    -
    1935 
    -
    1936 const basic::Info::ZoneInfo kZoneAmerica_Miquelon ACE_TIME_PROGMEM = {
    -
    1937  kZoneNameAmerica_Miquelon /*name*/,
    -
    1938  0x59674330 /*zoneId*/,
    -
    1939  &kZoneContext /*zoneContext*/,
    -
    1940  1 /*numEras*/,
    -
    1941  kZoneEraAmerica_Miquelon /*eras*/,
    -
    1942  nullptr /*targetInfo*/,
    -
    1943 };
    -
    1944 
    -
    1945 //---------------------------------------------------------------------------
    -
    1946 // Zone name: America/Moncton
    -
    1947 // Eras: 2
    -
    1948 //---------------------------------------------------------------------------
    -
    1949 
    -
    1950 static const basic::Info::ZoneEra kZoneEraAmerica_Moncton[] ACE_TIME_PROGMEM = {
    -
    1951  // -4:00 Moncton A%sT 2007
    -
    1952  {
    -
    1953  &kZonePolicyMoncton /*zonePolicy*/,
    -
    1954  "A%T" /*format*/,
    -
    1955  -16 /*offsetCode*/,
    -
    1956  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1957  -93 /*untilYearTiny*/,
    -
    1958  1 /*untilMonth*/,
    -
    1959  1 /*untilDay*/,
    -
    1960  0 /*untilTimeCode*/,
    -
    1961  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1962  },
    -
    1963  // -4:00 Canada A%sT
    -
    1964  {
    -
    1965  &kZonePolicyCanada /*zonePolicy*/,
    -
    1966  "A%T" /*format*/,
    -
    1967  -16 /*offsetCode*/,
    -
    1968  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1969  127 /*untilYearTiny*/,
    -
    1970  1 /*untilMonth*/,
    -
    1971  1 /*untilDay*/,
    -
    1972  0 /*untilTimeCode*/,
    -
    1973  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1974  },
    -
    1975 
    -
    1976 };
    -
    1977 
    -
    1978 static const char kZoneNameAmerica_Moncton[] ACE_TIME_PROGMEM = "\x02" "Moncton";
    -
    1979 
    -
    1980 const basic::Info::ZoneInfo kZoneAmerica_Moncton ACE_TIME_PROGMEM = {
    -
    1981  kZoneNameAmerica_Moncton /*name*/,
    -
    1982  0x5e07fe24 /*zoneId*/,
    -
    1983  &kZoneContext /*zoneContext*/,
    -
    1984  2 /*numEras*/,
    -
    1985  kZoneEraAmerica_Moncton /*eras*/,
    -
    1986  nullptr /*targetInfo*/,
    -
    1987 };
    -
    1988 
    -
    1989 //---------------------------------------------------------------------------
    -
    1990 // Zone name: America/Monterrey
    -
    1991 // Eras: 1
    -
    1992 //---------------------------------------------------------------------------
    -
    1993 
    -
    1994 static const basic::Info::ZoneEra kZoneEraAmerica_Monterrey[] ACE_TIME_PROGMEM = {
    -
    1995  // -6:00 Mexico C%sT
    -
    1996  {
    -
    1997  &kZonePolicyMexico /*zonePolicy*/,
    -
    1998  "C%T" /*format*/,
    -
    1999  -24 /*offsetCode*/,
    -
    2000  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2001  127 /*untilYearTiny*/,
    -
    2002  1 /*untilMonth*/,
    -
    2003  1 /*untilDay*/,
    -
    2004  0 /*untilTimeCode*/,
    -
    2005  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2006  },
    -
    2007 
    -
    2008 };
    -
    2009 
    -
    2010 static const char kZoneNameAmerica_Monterrey[] ACE_TIME_PROGMEM = "\x02" "Monterrey";
    -
    2011 
    -
    2012 const basic::Info::ZoneInfo kZoneAmerica_Monterrey ACE_TIME_PROGMEM = {
    -
    2013  kZoneNameAmerica_Monterrey /*name*/,
    -
    2014  0x269a1deb /*zoneId*/,
    -
    2015  &kZoneContext /*zoneContext*/,
    -
    2016  1 /*numEras*/,
    -
    2017  kZoneEraAmerica_Monterrey /*eras*/,
    -
    2018  nullptr /*targetInfo*/,
    -
    2019 };
    -
    2020 
    -
    2021 //---------------------------------------------------------------------------
    -
    2022 // Zone name: America/Montevideo
    -
    2023 // Eras: 1
    -
    2024 //---------------------------------------------------------------------------
    -
    2025 
    -
    2026 static const basic::Info::ZoneEra kZoneEraAmerica_Montevideo[] ACE_TIME_PROGMEM = {
    -
    2027  // -3:00 Uruguay %z
    -
    2028  {
    -
    2029  &kZonePolicyUruguay /*zonePolicy*/,
    -
    2030  "" /*format*/,
    -
    2031  -12 /*offsetCode*/,
    -
    2032  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2033  127 /*untilYearTiny*/,
    -
    2034  1 /*untilMonth*/,
    -
    2035  1 /*untilDay*/,
    -
    2036  0 /*untilTimeCode*/,
    -
    2037  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2038  },
    -
    2039 
    -
    2040 };
    -
    2041 
    -
    2042 static const char kZoneNameAmerica_Montevideo[] ACE_TIME_PROGMEM = "\x02" "Montevideo";
    -
    2043 
    -
    2044 const basic::Info::ZoneInfo kZoneAmerica_Montevideo ACE_TIME_PROGMEM = {
    -
    2045  kZoneNameAmerica_Montevideo /*name*/,
    -
    2046  0xfa214780 /*zoneId*/,
    -
    2047  &kZoneContext /*zoneContext*/,
    -
    2048  1 /*numEras*/,
    -
    2049  kZoneEraAmerica_Montevideo /*eras*/,
    -
    2050  nullptr /*targetInfo*/,
    -
    2051 };
    -
    2052 
    -
    2053 //---------------------------------------------------------------------------
    -
    2054 // Zone name: America/New_York
    -
    2055 // Eras: 1
    -
    2056 //---------------------------------------------------------------------------
    -
    2057 
    -
    2058 static const basic::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = {
    -
    2059  // -5:00 US E%sT
    -
    2060  {
    -
    2061  &kZonePolicyUS /*zonePolicy*/,
    -
    2062  "E%T" /*format*/,
    -
    2063  -20 /*offsetCode*/,
    -
    2064  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2065  127 /*untilYearTiny*/,
    -
    2066  1 /*untilMonth*/,
    -
    2067  1 /*untilDay*/,
    -
    2068  0 /*untilTimeCode*/,
    -
    2069  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2070  },
    -
    2071 
    -
    2072 };
    -
    2073 
    -
    2074 static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "\x02" "New_York";
    -
    2075 
    -
    2076 const basic::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = {
    -
    2077  kZoneNameAmerica_New_York /*name*/,
    -
    2078  0x1e2a7654 /*zoneId*/,
    -
    2079  &kZoneContext /*zoneContext*/,
    -
    2080  1 /*numEras*/,
    -
    2081  kZoneEraAmerica_New_York /*eras*/,
    -
    2082  nullptr /*targetInfo*/,
    -
    2083 };
    -
    2084 
    -
    2085 //---------------------------------------------------------------------------
    -
    2086 // Zone name: America/Nome
    -
    2087 // Eras: 1
    -
    2088 //---------------------------------------------------------------------------
    -
    2089 
    -
    2090 static const basic::Info::ZoneEra kZoneEraAmerica_Nome[] ACE_TIME_PROGMEM = {
    -
    2091  // -9:00 US AK%sT
    -
    2092  {
    -
    2093  &kZonePolicyUS /*zonePolicy*/,
    -
    2094  "AK%T" /*format*/,
    -
    2095  -36 /*offsetCode*/,
    -
    2096  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2097  127 /*untilYearTiny*/,
    -
    2098  1 /*untilMonth*/,
    -
    2099  1 /*untilDay*/,
    -
    2100  0 /*untilTimeCode*/,
    -
    2101  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2102  },
    -
    2103 
    -
    2104 };
    -
    2105 
    -
    2106 static const char kZoneNameAmerica_Nome[] ACE_TIME_PROGMEM = "\x02" "Nome";
    -
    2107 
    -
    2108 const basic::Info::ZoneInfo kZoneAmerica_Nome ACE_TIME_PROGMEM = {
    -
    2109  kZoneNameAmerica_Nome /*name*/,
    -
    2110  0x98059b15 /*zoneId*/,
    -
    2111  &kZoneContext /*zoneContext*/,
    -
    2112  1 /*numEras*/,
    -
    2113  kZoneEraAmerica_Nome /*eras*/,
    -
    2114  nullptr /*targetInfo*/,
    -
    2115 };
    -
    2116 
    -
    2117 //---------------------------------------------------------------------------
    -
    2118 // Zone name: America/North_Dakota/Center
    -
    2119 // Eras: 1
    -
    2120 //---------------------------------------------------------------------------
    -
    2121 
    -
    2122 static const basic::Info::ZoneEra kZoneEraAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = {
    -
    2123  // -6:00 US C%sT
    -
    2124  {
    -
    2125  &kZonePolicyUS /*zonePolicy*/,
    -
    2126  "C%T" /*format*/,
    -
    2127  -24 /*offsetCode*/,
    -
    2128  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2129  127 /*untilYearTiny*/,
    -
    2130  1 /*untilMonth*/,
    -
    2131  1 /*untilDay*/,
    -
    2132  0 /*untilTimeCode*/,
    -
    2133  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2134  },
    -
    2135 
    -
    2136 };
    -
    2137 
    -
    2138 static const char kZoneNameAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/Center";
    -
    2139 
    -
    2140 const basic::Info::ZoneInfo kZoneAmerica_North_Dakota_Center ACE_TIME_PROGMEM = {
    -
    2141  kZoneNameAmerica_North_Dakota_Center /*name*/,
    -
    2142  0x9da42814 /*zoneId*/,
    -
    2143  &kZoneContext /*zoneContext*/,
    -
    2144  1 /*numEras*/,
    -
    2145  kZoneEraAmerica_North_Dakota_Center /*eras*/,
    -
    2146  nullptr /*targetInfo*/,
    -
    2147 };
    -
    2148 
    -
    2149 //---------------------------------------------------------------------------
    -
    2150 // Zone name: America/Panama
    -
    2151 // Eras: 1
    -
    2152 //---------------------------------------------------------------------------
    -
    2153 
    -
    2154 static const basic::Info::ZoneEra kZoneEraAmerica_Panama[] ACE_TIME_PROGMEM = {
    -
    2155  // -5:00 - EST
    -
    2156  {
    -
    2157  nullptr /*zonePolicy*/,
    -
    2158  "EST" /*format*/,
    -
    2159  -20 /*offsetCode*/,
    -
    2160  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2161  127 /*untilYearTiny*/,
    -
    2162  1 /*untilMonth*/,
    -
    2163  1 /*untilDay*/,
    -
    2164  0 /*untilTimeCode*/,
    -
    2165  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2166  },
    -
    2167 
    -
    2168 };
    -
    2169 
    -
    2170 static const char kZoneNameAmerica_Panama[] ACE_TIME_PROGMEM = "\x02" "Panama";
    -
    2171 
    -
    2172 const basic::Info::ZoneInfo kZoneAmerica_Panama ACE_TIME_PROGMEM = {
    -
    2173  kZoneNameAmerica_Panama /*name*/,
    -
    2174  0xb3863854 /*zoneId*/,
    -
    2175  &kZoneContext /*zoneContext*/,
    -
    2176  1 /*numEras*/,
    -
    2177  kZoneEraAmerica_Panama /*eras*/,
    -
    2178  nullptr /*targetInfo*/,
    -
    2179 };
    -
    2180 
    -
    2181 //---------------------------------------------------------------------------
    -
    2182 // Zone name: America/Paramaribo
    -
    2183 // Eras: 1
    -
    2184 //---------------------------------------------------------------------------
    -
    2185 
    -
    2186 static const basic::Info::ZoneEra kZoneEraAmerica_Paramaribo[] ACE_TIME_PROGMEM = {
    -
    2187  // -3:00 - %z
    -
    2188  {
    -
    2189  nullptr /*zonePolicy*/,
    -
    2190  "" /*format*/,
    -
    2191  -12 /*offsetCode*/,
    -
    2192  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2193  127 /*untilYearTiny*/,
    -
    2194  1 /*untilMonth*/,
    -
    2195  1 /*untilDay*/,
    -
    2196  0 /*untilTimeCode*/,
    -
    2197  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2198  },
    -
    2199 
    -
    2200 };
    -
    2201 
    -
    2202 static const char kZoneNameAmerica_Paramaribo[] ACE_TIME_PROGMEM = "\x02" "Paramaribo";
    -
    2203 
    -
    2204 const basic::Info::ZoneInfo kZoneAmerica_Paramaribo ACE_TIME_PROGMEM = {
    -
    2205  kZoneNameAmerica_Paramaribo /*name*/,
    -
    2206  0xb319e4c4 /*zoneId*/,
    -
    2207  &kZoneContext /*zoneContext*/,
    -
    2208  1 /*numEras*/,
    -
    2209  kZoneEraAmerica_Paramaribo /*eras*/,
    -
    2210  nullptr /*targetInfo*/,
    -
    2211 };
    -
    2212 
    -
    2213 //---------------------------------------------------------------------------
    -
    2214 // Zone name: America/Phoenix
    -
    2215 // Eras: 1
    -
    2216 //---------------------------------------------------------------------------
    -
    2217 
    -
    2218 static const basic::Info::ZoneEra kZoneEraAmerica_Phoenix[] ACE_TIME_PROGMEM = {
    -
    2219  // -7:00 - MST
    -
    2220  {
    -
    2221  nullptr /*zonePolicy*/,
    -
    2222  "MST" /*format*/,
    -
    2223  -28 /*offsetCode*/,
    -
    2224  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2225  127 /*untilYearTiny*/,
    -
    2226  1 /*untilMonth*/,
    -
    2227  1 /*untilDay*/,
    -
    2228  0 /*untilTimeCode*/,
    -
    2229  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2230  },
    -
    2231 
    -
    2232 };
    -
    2233 
    -
    2234 static const char kZoneNameAmerica_Phoenix[] ACE_TIME_PROGMEM = "\x02" "Phoenix";
    -
    2235 
    -
    2236 const basic::Info::ZoneInfo kZoneAmerica_Phoenix ACE_TIME_PROGMEM = {
    -
    2237  kZoneNameAmerica_Phoenix /*name*/,
    -
    2238  0x34b5af01 /*zoneId*/,
    -
    2239  &kZoneContext /*zoneContext*/,
    -
    2240  1 /*numEras*/,
    -
    2241  kZoneEraAmerica_Phoenix /*eras*/,
    -
    2242  nullptr /*targetInfo*/,
    -
    2243 };
    -
    2244 
    -
    2245 //---------------------------------------------------------------------------
    -
    2246 // Zone name: America/Port-au-Prince
    -
    2247 // Eras: 1
    -
    2248 //---------------------------------------------------------------------------
    -
    2249 
    -
    2250 static const basic::Info::ZoneEra kZoneEraAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = {
    -
    2251  // -5:00 Haiti E%sT
    -
    2252  {
    -
    2253  &kZonePolicyHaiti /*zonePolicy*/,
    -
    2254  "E%T" /*format*/,
    -
    2255  -20 /*offsetCode*/,
    -
    2256  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2257  127 /*untilYearTiny*/,
    -
    2258  1 /*untilMonth*/,
    -
    2259  1 /*untilDay*/,
    -
    2260  0 /*untilTimeCode*/,
    -
    2261  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2262  },
    -
    2263 
    -
    2264 };
    -
    2265 
    -
    2266 static const char kZoneNameAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = "\x02" "Port-au-Prince";
    -
    2267 
    -
    2268 const basic::Info::ZoneInfo kZoneAmerica_Port_au_Prince ACE_TIME_PROGMEM = {
    -
    2269  kZoneNameAmerica_Port_au_Prince /*name*/,
    -
    2270  0x8e4a7bdc /*zoneId*/,
    -
    2271  &kZoneContext /*zoneContext*/,
    -
    2272  1 /*numEras*/,
    -
    2273  kZoneEraAmerica_Port_au_Prince /*eras*/,
    -
    2274  nullptr /*targetInfo*/,
    -
    2275 };
    -
    2276 
    -
    2277 //---------------------------------------------------------------------------
    -
    2278 // Zone name: America/Porto_Velho
    -
    2279 // Eras: 1
    -
    2280 //---------------------------------------------------------------------------
    -
    2281 
    -
    2282 static const basic::Info::ZoneEra kZoneEraAmerica_Porto_Velho[] ACE_TIME_PROGMEM = {
    -
    2283  // -4:00 - %z
    -
    2284  {
    -
    2285  nullptr /*zonePolicy*/,
    -
    2286  "" /*format*/,
    -
    2287  -16 /*offsetCode*/,
    -
    2288  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2289  127 /*untilYearTiny*/,
    -
    2290  1 /*untilMonth*/,
    -
    2291  1 /*untilDay*/,
    -
    2292  0 /*untilTimeCode*/,
    -
    2293  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2294  },
    -
    2295 
    -
    2296 };
    -
    2297 
    -
    2298 static const char kZoneNameAmerica_Porto_Velho[] ACE_TIME_PROGMEM = "\x02" "Porto_Velho";
    -
    2299 
    -
    2300 const basic::Info::ZoneInfo kZoneAmerica_Porto_Velho ACE_TIME_PROGMEM = {
    -
    2301  kZoneNameAmerica_Porto_Velho /*name*/,
    -
    2302  0x6b1aac77 /*zoneId*/,
    -
    2303  &kZoneContext /*zoneContext*/,
    -
    2304  1 /*numEras*/,
    -
    2305  kZoneEraAmerica_Porto_Velho /*eras*/,
    -
    2306  nullptr /*targetInfo*/,
    -
    2307 };
    -
    2308 
    -
    2309 //---------------------------------------------------------------------------
    -
    2310 // Zone name: America/Puerto_Rico
    -
    2311 // Eras: 1
    -
    2312 //---------------------------------------------------------------------------
    -
    2313 
    -
    2314 static const basic::Info::ZoneEra kZoneEraAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = {
    -
    2315  // -4:00 - AST
    -
    2316  {
    -
    2317  nullptr /*zonePolicy*/,
    -
    2318  "AST" /*format*/,
    -
    2319  -16 /*offsetCode*/,
    -
    2320  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2321  127 /*untilYearTiny*/,
    -
    2322  1 /*untilMonth*/,
    -
    2323  1 /*untilDay*/,
    -
    2324  0 /*untilTimeCode*/,
    -
    2325  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2326  },
    -
    2327 
    -
    2328 };
    -
    2329 
    -
    2330 static const char kZoneNameAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = "\x02" "Puerto_Rico";
    -
    2331 
    -
    2332 const basic::Info::ZoneInfo kZoneAmerica_Puerto_Rico ACE_TIME_PROGMEM = {
    -
    2333  kZoneNameAmerica_Puerto_Rico /*name*/,
    -
    2334  0x6752ca31 /*zoneId*/,
    -
    2335  &kZoneContext /*zoneContext*/,
    -
    2336  1 /*numEras*/,
    -
    2337  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    2338  nullptr /*targetInfo*/,
    -
    2339 };
    -
    2340 
    -
    2341 //---------------------------------------------------------------------------
    -
    2342 // Zone name: America/Regina
    -
    2343 // Eras: 1
    -
    2344 //---------------------------------------------------------------------------
    -
    2345 
    -
    2346 static const basic::Info::ZoneEra kZoneEraAmerica_Regina[] ACE_TIME_PROGMEM = {
    -
    2347  // -6:00 - CST
    -
    2348  {
    -
    2349  nullptr /*zonePolicy*/,
    -
    2350  "CST" /*format*/,
    -
    2351  -24 /*offsetCode*/,
    -
    2352  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2353  127 /*untilYearTiny*/,
    -
    2354  1 /*untilMonth*/,
    -
    2355  1 /*untilDay*/,
    -
    2356  0 /*untilTimeCode*/,
    -
    2357  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2358  },
    -
    2359 
    -
    2360 };
    -
    2361 
    -
    2362 static const char kZoneNameAmerica_Regina[] ACE_TIME_PROGMEM = "\x02" "Regina";
    -
    2363 
    -
    2364 const basic::Info::ZoneInfo kZoneAmerica_Regina ACE_TIME_PROGMEM = {
    -
    2365  kZoneNameAmerica_Regina /*name*/,
    -
    2366  0xb875371c /*zoneId*/,
    -
    2367  &kZoneContext /*zoneContext*/,
    -
    2368  1 /*numEras*/,
    -
    2369  kZoneEraAmerica_Regina /*eras*/,
    -
    2370  nullptr /*targetInfo*/,
    -
    2371 };
    -
    2372 
    -
    2373 //---------------------------------------------------------------------------
    -
    2374 // Zone name: America/Santiago
    -
    2375 // Eras: 1
    -
    2376 //---------------------------------------------------------------------------
    -
    2377 
    -
    2378 static const basic::Info::ZoneEra kZoneEraAmerica_Santiago[] ACE_TIME_PROGMEM = {
    -
    2379  // -4:00 Chile %z
    -
    2380  {
    -
    2381  &kZonePolicyChile /*zonePolicy*/,
    -
    2382  "" /*format*/,
    -
    2383  -16 /*offsetCode*/,
    -
    2384  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2385  127 /*untilYearTiny*/,
    -
    2386  1 /*untilMonth*/,
    -
    2387  1 /*untilDay*/,
    -
    2388  0 /*untilTimeCode*/,
    -
    2389  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2390  },
    -
    2391 
    -
    2392 };
    -
    2393 
    -
    2394 static const char kZoneNameAmerica_Santiago[] ACE_TIME_PROGMEM = "\x02" "Santiago";
    -
    2395 
    -
    2396 const basic::Info::ZoneInfo kZoneAmerica_Santiago ACE_TIME_PROGMEM = {
    -
    2397  kZoneNameAmerica_Santiago /*name*/,
    -
    2398  0x7410c9bc /*zoneId*/,
    -
    2399  &kZoneContext /*zoneContext*/,
    -
    2400  1 /*numEras*/,
    -
    2401  kZoneEraAmerica_Santiago /*eras*/,
    -
    2402  nullptr /*targetInfo*/,
    -
    2403 };
    -
    2404 
    -
    2405 //---------------------------------------------------------------------------
    -
    2406 // Zone name: America/Sao_Paulo
    -
    2407 // Eras: 1
    -
    2408 //---------------------------------------------------------------------------
    -
    2409 
    -
    2410 static const basic::Info::ZoneEra kZoneEraAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = {
    -
    2411  // -3:00 Brazil %z
    -
    2412  {
    -
    2413  &kZonePolicyBrazil /*zonePolicy*/,
    -
    2414  "" /*format*/,
    -
    2415  -12 /*offsetCode*/,
    -
    2416  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2417  127 /*untilYearTiny*/,
    -
    2418  1 /*untilMonth*/,
    -
    2419  1 /*untilDay*/,
    -
    2420  0 /*untilTimeCode*/,
    -
    2421  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2422  },
    -
    2423 
    -
    2424 };
    -
    2425 
    -
    2426 static const char kZoneNameAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = "\x02" "Sao_Paulo";
    -
    2427 
    -
    2428 const basic::Info::ZoneInfo kZoneAmerica_Sao_Paulo ACE_TIME_PROGMEM = {
    -
    2429  kZoneNameAmerica_Sao_Paulo /*name*/,
    -
    2430  0x1063bfc9 /*zoneId*/,
    -
    2431  &kZoneContext /*zoneContext*/,
    -
    2432  1 /*numEras*/,
    -
    2433  kZoneEraAmerica_Sao_Paulo /*eras*/,
    -
    2434  nullptr /*targetInfo*/,
    -
    2435 };
    -
    2436 
    -
    2437 //---------------------------------------------------------------------------
    -
    2438 // Zone name: America/Sitka
    -
    2439 // Eras: 1
    -
    2440 //---------------------------------------------------------------------------
    -
    2441 
    -
    2442 static const basic::Info::ZoneEra kZoneEraAmerica_Sitka[] ACE_TIME_PROGMEM = {
    -
    2443  // -9:00 US AK%sT
    -
    2444  {
    -
    2445  &kZonePolicyUS /*zonePolicy*/,
    -
    2446  "AK%T" /*format*/,
    -
    2447  -36 /*offsetCode*/,
    -
    2448  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2449  127 /*untilYearTiny*/,
    -
    2450  1 /*untilMonth*/,
    -
    2451  1 /*untilDay*/,
    -
    2452  0 /*untilTimeCode*/,
    -
    2453  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2454  },
    -
    2455 
    -
    2456 };
    -
    2457 
    -
    2458 static const char kZoneNameAmerica_Sitka[] ACE_TIME_PROGMEM = "\x02" "Sitka";
    -
    2459 
    -
    2460 const basic::Info::ZoneInfo kZoneAmerica_Sitka ACE_TIME_PROGMEM = {
    -
    2461  kZoneNameAmerica_Sitka /*name*/,
    -
    2462  0x99104ce2 /*zoneId*/,
    -
    2463  &kZoneContext /*zoneContext*/,
    -
    2464  1 /*numEras*/,
    -
    2465  kZoneEraAmerica_Sitka /*eras*/,
    -
    2466  nullptr /*targetInfo*/,
    -
    2467 };
    -
    2468 
    -
    2469 //---------------------------------------------------------------------------
    -
    2470 // Zone name: America/Swift_Current
    -
    2471 // Eras: 1
    -
    2472 //---------------------------------------------------------------------------
    -
    2473 
    -
    2474 static const basic::Info::ZoneEra kZoneEraAmerica_Swift_Current[] ACE_TIME_PROGMEM = {
    -
    2475  // -6:00 - CST
    -
    2476  {
    -
    2477  nullptr /*zonePolicy*/,
    -
    2478  "CST" /*format*/,
    -
    2479  -24 /*offsetCode*/,
    -
    2480  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2481  127 /*untilYearTiny*/,
    -
    2482  1 /*untilMonth*/,
    -
    2483  1 /*untilDay*/,
    -
    2484  0 /*untilTimeCode*/,
    -
    2485  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2486  },
    -
    2487 
    -
    2488 };
    -
    2489 
    -
    2490 static const char kZoneNameAmerica_Swift_Current[] ACE_TIME_PROGMEM = "\x02" "Swift_Current";
    -
    2491 
    -
    2492 const basic::Info::ZoneInfo kZoneAmerica_Swift_Current ACE_TIME_PROGMEM = {
    -
    2493  kZoneNameAmerica_Swift_Current /*name*/,
    -
    2494  0xdef98e55 /*zoneId*/,
    -
    2495  &kZoneContext /*zoneContext*/,
    -
    2496  1 /*numEras*/,
    -
    2497  kZoneEraAmerica_Swift_Current /*eras*/,
    -
    2498  nullptr /*targetInfo*/,
    -
    2499 };
    -
    2500 
    -
    2501 //---------------------------------------------------------------------------
    -
    2502 // Zone name: America/Tegucigalpa
    -
    2503 // Eras: 1
    -
    2504 //---------------------------------------------------------------------------
    -
    2505 
    -
    2506 static const basic::Info::ZoneEra kZoneEraAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = {
    -
    2507  // -6:00 Hond C%sT
    -
    2508  {
    -
    2509  &kZonePolicyHond /*zonePolicy*/,
    -
    2510  "C%T" /*format*/,
    -
    2511  -24 /*offsetCode*/,
    -
    2512  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2513  127 /*untilYearTiny*/,
    -
    2514  1 /*untilMonth*/,
    -
    2515  1 /*untilDay*/,
    -
    2516  0 /*untilTimeCode*/,
    -
    2517  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2518  },
    -
    2519 
    -
    2520 };
    -
    2521 
    -
    2522 static const char kZoneNameAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = "\x02" "Tegucigalpa";
    -
    2523 
    -
    2524 const basic::Info::ZoneInfo kZoneAmerica_Tegucigalpa ACE_TIME_PROGMEM = {
    -
    2525  kZoneNameAmerica_Tegucigalpa /*name*/,
    -
    2526  0xbfd6fd4c /*zoneId*/,
    -
    2527  &kZoneContext /*zoneContext*/,
    -
    2528  1 /*numEras*/,
    -
    2529  kZoneEraAmerica_Tegucigalpa /*eras*/,
    -
    2530  nullptr /*targetInfo*/,
    -
    2531 };
    -
    2532 
    -
    2533 //---------------------------------------------------------------------------
    -
    2534 // Zone name: America/Thule
    -
    2535 // Eras: 1
    -
    2536 //---------------------------------------------------------------------------
    -
    2537 
    -
    2538 static const basic::Info::ZoneEra kZoneEraAmerica_Thule[] ACE_TIME_PROGMEM = {
    -
    2539  // -4:00 Thule A%sT
    -
    2540  {
    -
    2541  &kZonePolicyThule /*zonePolicy*/,
    -
    2542  "A%T" /*format*/,
    -
    2543  -16 /*offsetCode*/,
    -
    2544  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2545  127 /*untilYearTiny*/,
    -
    2546  1 /*untilMonth*/,
    -
    2547  1 /*untilDay*/,
    -
    2548  0 /*untilTimeCode*/,
    -
    2549  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2550  },
    -
    2551 
    -
    2552 };
    -
    2553 
    -
    2554 static const char kZoneNameAmerica_Thule[] ACE_TIME_PROGMEM = "\x02" "Thule";
    -
    2555 
    -
    2556 const basic::Info::ZoneInfo kZoneAmerica_Thule ACE_TIME_PROGMEM = {
    -
    2557  kZoneNameAmerica_Thule /*name*/,
    -
    2558  0x9921dd68 /*zoneId*/,
    -
    2559  &kZoneContext /*zoneContext*/,
    -
    2560  1 /*numEras*/,
    -
    2561  kZoneEraAmerica_Thule /*eras*/,
    -
    2562  nullptr /*targetInfo*/,
    -
    2563 };
    -
    2564 
    -
    2565 //---------------------------------------------------------------------------
    -
    2566 // Zone name: America/Toronto
    -
    2567 // Eras: 1
    -
    2568 //---------------------------------------------------------------------------
    -
    2569 
    -
    2570 static const basic::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = {
    -
    2571  // -5:00 Canada E%sT
    -
    2572  {
    -
    2573  &kZonePolicyCanada /*zonePolicy*/,
    -
    2574  "E%T" /*format*/,
    -
    2575  -20 /*offsetCode*/,
    -
    2576  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2577  127 /*untilYearTiny*/,
    -
    2578  1 /*untilMonth*/,
    -
    2579  1 /*untilDay*/,
    -
    2580  0 /*untilTimeCode*/,
    -
    2581  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2582  },
    -
    2583 
    -
    2584 };
    -
    2585 
    -
    2586 static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "\x02" "Toronto";
    -
    2587 
    -
    2588 const basic::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = {
    -
    2589  kZoneNameAmerica_Toronto /*name*/,
    -
    2590  0x792e851b /*zoneId*/,
    -
    2591  &kZoneContext /*zoneContext*/,
    -
    2592  1 /*numEras*/,
    -
    2593  kZoneEraAmerica_Toronto /*eras*/,
    -
    2594  nullptr /*targetInfo*/,
    -
    2595 };
    -
    2596 
    -
    2597 //---------------------------------------------------------------------------
    -
    2598 // Zone name: America/Vancouver
    -
    2599 // Eras: 1
    -
    2600 //---------------------------------------------------------------------------
    -
    2601 
    -
    2602 static const basic::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = {
    -
    2603  // -8:00 Canada P%sT
    -
    2604  {
    -
    2605  &kZonePolicyCanada /*zonePolicy*/,
    -
    2606  "P%T" /*format*/,
    -
    2607  -32 /*offsetCode*/,
    -
    2608  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2609  127 /*untilYearTiny*/,
    -
    2610  1 /*untilMonth*/,
    -
    2611  1 /*untilDay*/,
    -
    2612  0 /*untilTimeCode*/,
    -
    2613  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2614  },
    -
    2615 
    -
    2616 };
    -
    2617 
    -
    2618 static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "\x02" "Vancouver";
    -
    2619 
    -
    2620 const basic::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = {
    -
    2621  kZoneNameAmerica_Vancouver /*name*/,
    -
    2622  0x2c6f6b1f /*zoneId*/,
    -
    2623  &kZoneContext /*zoneContext*/,
    -
    2624  1 /*numEras*/,
    -
    2625  kZoneEraAmerica_Vancouver /*eras*/,
    -
    2626  nullptr /*targetInfo*/,
    -
    2627 };
    -
    2628 
    -
    2629 //---------------------------------------------------------------------------
    -
    2630 // Zone name: America/Winnipeg
    -
    2631 // Eras: 2
    -
    2632 //---------------------------------------------------------------------------
    -
    2633 
    -
    2634 static const basic::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = {
    -
    2635  // -6:00 Winn C%sT 2006
    -
    2636  {
    -
    2637  &kZonePolicyWinn /*zonePolicy*/,
    -
    2638  "C%T" /*format*/,
    -
    2639  -24 /*offsetCode*/,
    -
    2640  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2641  -94 /*untilYearTiny*/,
    -
    2642  1 /*untilMonth*/,
    -
    2643  1 /*untilDay*/,
    -
    2644  0 /*untilTimeCode*/,
    -
    2645  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2646  },
    -
    2647  // -6:00 Canada C%sT
    -
    2648  {
    -
    2649  &kZonePolicyCanada /*zonePolicy*/,
    -
    2650  "C%T" /*format*/,
    -
    2651  -24 /*offsetCode*/,
    -
    2652  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2653  127 /*untilYearTiny*/,
    -
    2654  1 /*untilMonth*/,
    -
    2655  1 /*untilDay*/,
    -
    2656  0 /*untilTimeCode*/,
    -
    2657  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2658  },
    -
    2659 
    -
    2660 };
    -
    2661 
    -
    2662 static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "\x02" "Winnipeg";
    -
    2663 
    -
    2664 const basic::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = {
    -
    2665  kZoneNameAmerica_Winnipeg /*name*/,
    -
    2666  0x8c7dafc7 /*zoneId*/,
    -
    2667  &kZoneContext /*zoneContext*/,
    -
    2668  2 /*numEras*/,
    -
    2669  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    2670  nullptr /*targetInfo*/,
    -
    2671 };
    -
    2672 
    -
    2673 //---------------------------------------------------------------------------
    -
    2674 // Zone name: America/Yakutat
    -
    2675 // Eras: 1
    -
    2676 //---------------------------------------------------------------------------
    -
    2677 
    -
    2678 static const basic::Info::ZoneEra kZoneEraAmerica_Yakutat[] ACE_TIME_PROGMEM = {
    -
    2679  // -9:00 US AK%sT
    -
    2680  {
    -
    2681  &kZonePolicyUS /*zonePolicy*/,
    -
    2682  "AK%T" /*format*/,
    -
    2683  -36 /*offsetCode*/,
    -
    2684  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2685  127 /*untilYearTiny*/,
    -
    2686  1 /*untilMonth*/,
    -
    2687  1 /*untilDay*/,
    -
    2688  0 /*untilTimeCode*/,
    -
    2689  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2690  },
    -
    2691 
    -
    2692 };
    -
    2693 
    -
    2694 static const char kZoneNameAmerica_Yakutat[] ACE_TIME_PROGMEM = "\x02" "Yakutat";
    -
    2695 
    -
    2696 const basic::Info::ZoneInfo kZoneAmerica_Yakutat ACE_TIME_PROGMEM = {
    -
    2697  kZoneNameAmerica_Yakutat /*name*/,
    -
    2698  0xd8ee31e9 /*zoneId*/,
    -
    2699  &kZoneContext /*zoneContext*/,
    -
    2700  1 /*numEras*/,
    -
    2701  kZoneEraAmerica_Yakutat /*eras*/,
    -
    2702  nullptr /*targetInfo*/,
    -
    2703 };
    -
    2704 
    -
    2705 //---------------------------------------------------------------------------
    -
    2706 // Zone name: Antarctica/Rothera
    -
    2707 // Eras: 1
    -
    2708 //---------------------------------------------------------------------------
    -
    2709 
    -
    2710 static const basic::Info::ZoneEra kZoneEraAntarctica_Rothera[] ACE_TIME_PROGMEM = {
    -
    2711  // -3:00 - %z
    -
    2712  {
    -
    2713  nullptr /*zonePolicy*/,
    -
    2714  "" /*format*/,
    -
    2715  -12 /*offsetCode*/,
    -
    2716  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2717  127 /*untilYearTiny*/,
    -
    2718  1 /*untilMonth*/,
    -
    2719  1 /*untilDay*/,
    -
    2720  0 /*untilTimeCode*/,
    -
    2721  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2722  },
    -
    2723 
    -
    2724 };
    -
    2725 
    -
    2726 static const char kZoneNameAntarctica_Rothera[] ACE_TIME_PROGMEM = "\x03" "Rothera";
    -
    2727 
    -
    2728 const basic::Info::ZoneInfo kZoneAntarctica_Rothera ACE_TIME_PROGMEM = {
    -
    2729  kZoneNameAntarctica_Rothera /*name*/,
    -
    2730  0x0e86d203 /*zoneId*/,
    -
    2731  &kZoneContext /*zoneContext*/,
    -
    2732  1 /*numEras*/,
    -
    2733  kZoneEraAntarctica_Rothera /*eras*/,
    -
    2734  nullptr /*targetInfo*/,
    -
    2735 };
    -
    2736 
    -
    2737 //---------------------------------------------------------------------------
    -
    2738 // Zone name: Asia/Ashgabat
    -
    2739 // Eras: 1
    -
    2740 //---------------------------------------------------------------------------
    -
    2741 
    -
    2742 static const basic::Info::ZoneEra kZoneEraAsia_Ashgabat[] ACE_TIME_PROGMEM = {
    -
    2743  // 5:00 - %z
    -
    2744  {
    -
    2745  nullptr /*zonePolicy*/,
    -
    2746  "" /*format*/,
    -
    2747  20 /*offsetCode*/,
    -
    2748  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2749  127 /*untilYearTiny*/,
    -
    2750  1 /*untilMonth*/,
    -
    2751  1 /*untilDay*/,
    -
    2752  0 /*untilTimeCode*/,
    -
    2753  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2754  },
    -
    2755 
    -
    2756 };
    -
    2757 
    -
    2758 static const char kZoneNameAsia_Ashgabat[] ACE_TIME_PROGMEM = "\x04" "Ashgabat";
    -
    2759 
    -
    2760 const basic::Info::ZoneInfo kZoneAsia_Ashgabat ACE_TIME_PROGMEM = {
    -
    2761  kZoneNameAsia_Ashgabat /*name*/,
    -
    2762  0xba87598d /*zoneId*/,
    -
    2763  &kZoneContext /*zoneContext*/,
    -
    2764  1 /*numEras*/,
    -
    2765  kZoneEraAsia_Ashgabat /*eras*/,
    -
    2766  nullptr /*targetInfo*/,
    -
    2767 };
    -
    2768 
    -
    2769 //---------------------------------------------------------------------------
    -
    2770 // Zone name: Asia/Baghdad
    -
    2771 // Eras: 1
    -
    2772 //---------------------------------------------------------------------------
    -
    2773 
    -
    2774 static const basic::Info::ZoneEra kZoneEraAsia_Baghdad[] ACE_TIME_PROGMEM = {
    -
    2775  // 3:00 Iraq %z
    -
    2776  {
    -
    2777  &kZonePolicyIraq /*zonePolicy*/,
    -
    2778  "" /*format*/,
    -
    2779  12 /*offsetCode*/,
    -
    2780  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2781  127 /*untilYearTiny*/,
    -
    2782  1 /*untilMonth*/,
    -
    2783  1 /*untilDay*/,
    -
    2784  0 /*untilTimeCode*/,
    -
    2785  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2786  },
    -
    2787 
    -
    2788 };
    -
    2789 
    -
    2790 static const char kZoneNameAsia_Baghdad[] ACE_TIME_PROGMEM = "\x04" "Baghdad";
    -
    2791 
    -
    2792 const basic::Info::ZoneInfo kZoneAsia_Baghdad ACE_TIME_PROGMEM = {
    -
    2793  kZoneNameAsia_Baghdad /*name*/,
    -
    2794  0x9ceffbed /*zoneId*/,
    -
    2795  &kZoneContext /*zoneContext*/,
    -
    2796  1 /*numEras*/,
    -
    2797  kZoneEraAsia_Baghdad /*eras*/,
    -
    2798  nullptr /*targetInfo*/,
    -
    2799 };
    -
    2800 
    -
    2801 //---------------------------------------------------------------------------
    -
    2802 // Zone name: Asia/Baku
    -
    2803 // Eras: 1
    -
    2804 //---------------------------------------------------------------------------
    -
    2805 
    -
    2806 static const basic::Info::ZoneEra kZoneEraAsia_Baku[] ACE_TIME_PROGMEM = {
    -
    2807  // 4:00 Azer %z
    -
    2808  {
    -
    2809  &kZonePolicyAzer /*zonePolicy*/,
    -
    2810  "" /*format*/,
    -
    2811  16 /*offsetCode*/,
    -
    2812  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2813  127 /*untilYearTiny*/,
    -
    2814  1 /*untilMonth*/,
    -
    2815  1 /*untilDay*/,
    -
    2816  0 /*untilTimeCode*/,
    -
    2817  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2818  },
    -
    2819 
    -
    2820 };
    -
    2821 
    -
    2822 static const char kZoneNameAsia_Baku[] ACE_TIME_PROGMEM = "\x04" "Baku";
    -
    2823 
    -
    2824 const basic::Info::ZoneInfo kZoneAsia_Baku ACE_TIME_PROGMEM = {
    -
    2825  kZoneNameAsia_Baku /*name*/,
    -
    2826  0x1fa788b5 /*zoneId*/,
    -
    2827  &kZoneContext /*zoneContext*/,
    -
    2828  1 /*numEras*/,
    -
    2829  kZoneEraAsia_Baku /*eras*/,
    -
    2830  nullptr /*targetInfo*/,
    -
    2831 };
    -
    2832 
    -
    2833 //---------------------------------------------------------------------------
    -
    2834 // Zone name: Asia/Bangkok
    -
    2835 // Eras: 1
    -
    2836 //---------------------------------------------------------------------------
    -
    2837 
    -
    2838 static const basic::Info::ZoneEra kZoneEraAsia_Bangkok[] ACE_TIME_PROGMEM = {
    -
    2839  // 7:00 - %z
    -
    2840  {
    -
    2841  nullptr /*zonePolicy*/,
    -
    2842  "" /*format*/,
    -
    2843  28 /*offsetCode*/,
    -
    2844  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2845  127 /*untilYearTiny*/,
    -
    2846  1 /*untilMonth*/,
    -
    2847  1 /*untilDay*/,
    -
    2848  0 /*untilTimeCode*/,
    -
    2849  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2850  },
    -
    2851 
    -
    2852 };
    -
    2853 
    -
    2854 static const char kZoneNameAsia_Bangkok[] ACE_TIME_PROGMEM = "\x04" "Bangkok";
    -
    2855 
    -
    2856 const basic::Info::ZoneInfo kZoneAsia_Bangkok ACE_TIME_PROGMEM = {
    -
    2857  kZoneNameAsia_Bangkok /*name*/,
    -
    2858  0x9d6e3aaf /*zoneId*/,
    -
    2859  &kZoneContext /*zoneContext*/,
    -
    2860  1 /*numEras*/,
    -
    2861  kZoneEraAsia_Bangkok /*eras*/,
    -
    2862  nullptr /*targetInfo*/,
    -
    2863 };
    -
    2864 
    -
    2865 //---------------------------------------------------------------------------
    -
    2866 // Zone name: Asia/Beirut
    -
    2867 // Eras: 1
    -
    2868 //---------------------------------------------------------------------------
    -
    2869 
    -
    2870 static const basic::Info::ZoneEra kZoneEraAsia_Beirut[] ACE_TIME_PROGMEM = {
    -
    2871  // 2:00 Lebanon EE%sT
    -
    2872  {
    -
    2873  &kZonePolicyLebanon /*zonePolicy*/,
    -
    2874  "EE%T" /*format*/,
    -
    2875  8 /*offsetCode*/,
    -
    2876  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2877  127 /*untilYearTiny*/,
    -
    2878  1 /*untilMonth*/,
    -
    2879  1 /*untilDay*/,
    -
    2880  0 /*untilTimeCode*/,
    -
    2881  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2882  },
    -
    2883 
    -
    2884 };
    -
    2885 
    -
    2886 static const char kZoneNameAsia_Beirut[] ACE_TIME_PROGMEM = "\x04" "Beirut";
    -
    2887 
    -
    2888 const basic::Info::ZoneInfo kZoneAsia_Beirut ACE_TIME_PROGMEM = {
    -
    2889  kZoneNameAsia_Beirut /*name*/,
    -
    2890  0xa7f3d5fd /*zoneId*/,
    -
    2891  &kZoneContext /*zoneContext*/,
    -
    2892  1 /*numEras*/,
    -
    2893  kZoneEraAsia_Beirut /*eras*/,
    -
    2894  nullptr /*targetInfo*/,
    -
    2895 };
    -
    2896 
    -
    2897 //---------------------------------------------------------------------------
    -
    2898 // Zone name: Asia/Dhaka
    -
    2899 // Eras: 2
    -
    2900 //---------------------------------------------------------------------------
    -
    2901 
    -
    2902 static const basic::Info::ZoneEra kZoneEraAsia_Dhaka[] ACE_TIME_PROGMEM = {
    -
    2903  // 6:00 - %z 2009
    -
    2904  {
    -
    2905  nullptr /*zonePolicy*/,
    -
    2906  "" /*format*/,
    -
    2907  24 /*offsetCode*/,
    -
    2908  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2909  -91 /*untilYearTiny*/,
    -
    2910  1 /*untilMonth*/,
    -
    2911  1 /*untilDay*/,
    -
    2912  0 /*untilTimeCode*/,
    -
    2913  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2914  },
    -
    2915  // 6:00 Dhaka %z
    -
    2916  {
    -
    2917  &kZonePolicyDhaka /*zonePolicy*/,
    -
    2918  "" /*format*/,
    -
    2919  24 /*offsetCode*/,
    -
    2920  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2921  127 /*untilYearTiny*/,
    -
    2922  1 /*untilMonth*/,
    -
    2923  1 /*untilDay*/,
    -
    2924  0 /*untilTimeCode*/,
    -
    2925  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2926  },
    -
    2927 
    -
    2928 };
    -
    2929 
    -
    2930 static const char kZoneNameAsia_Dhaka[] ACE_TIME_PROGMEM = "\x04" "Dhaka";
    -
    2931 
    -
    2932 const basic::Info::ZoneInfo kZoneAsia_Dhaka ACE_TIME_PROGMEM = {
    -
    2933  kZoneNameAsia_Dhaka /*name*/,
    -
    2934  0x14c07b8b /*zoneId*/,
    -
    2935  &kZoneContext /*zoneContext*/,
    -
    2936  2 /*numEras*/,
    -
    2937  kZoneEraAsia_Dhaka /*eras*/,
    -
    2938  nullptr /*targetInfo*/,
    -
    2939 };
    -
    2940 
    -
    2941 //---------------------------------------------------------------------------
    -
    2942 // Zone name: Asia/Dubai
    -
    2943 // Eras: 1
    -
    2944 //---------------------------------------------------------------------------
    -
    2945 
    -
    2946 static const basic::Info::ZoneEra kZoneEraAsia_Dubai[] ACE_TIME_PROGMEM = {
    -
    2947  // 4:00 - %z
    -
    2948  {
    -
    2949  nullptr /*zonePolicy*/,
    -
    2950  "" /*format*/,
    -
    2951  16 /*offsetCode*/,
    -
    2952  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2953  127 /*untilYearTiny*/,
    -
    2954  1 /*untilMonth*/,
    -
    2955  1 /*untilDay*/,
    -
    2956  0 /*untilTimeCode*/,
    -
    2957  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2958  },
    -
    2959 
    -
    2960 };
    -
    2961 
    -
    2962 static const char kZoneNameAsia_Dubai[] ACE_TIME_PROGMEM = "\x04" "Dubai";
    -
    2963 
    -
    2964 const basic::Info::ZoneInfo kZoneAsia_Dubai ACE_TIME_PROGMEM = {
    -
    2965  kZoneNameAsia_Dubai /*name*/,
    -
    2966  0x14c79f77 /*zoneId*/,
    -
    2967  &kZoneContext /*zoneContext*/,
    -
    2968  1 /*numEras*/,
    -
    2969  kZoneEraAsia_Dubai /*eras*/,
    -
    2970  nullptr /*targetInfo*/,
    -
    2971 };
    -
    2972 
    -
    2973 //---------------------------------------------------------------------------
    -
    2974 // Zone name: Asia/Dushanbe
    -
    2975 // Eras: 1
    -
    2976 //---------------------------------------------------------------------------
    -
    2977 
    -
    2978 static const basic::Info::ZoneEra kZoneEraAsia_Dushanbe[] ACE_TIME_PROGMEM = {
    -
    2979  // 5:00 - %z
    -
    2980  {
    -
    2981  nullptr /*zonePolicy*/,
    -
    2982  "" /*format*/,
    -
    2983  20 /*offsetCode*/,
    -
    2984  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2985  127 /*untilYearTiny*/,
    -
    2986  1 /*untilMonth*/,
    -
    2987  1 /*untilDay*/,
    -
    2988  0 /*untilTimeCode*/,
    -
    2989  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2990  },
    -
    2991 
    -
    2992 };
    -
    2993 
    -
    2994 static const char kZoneNameAsia_Dushanbe[] ACE_TIME_PROGMEM = "\x04" "Dushanbe";
    -
    2995 
    -
    2996 const basic::Info::ZoneInfo kZoneAsia_Dushanbe ACE_TIME_PROGMEM = {
    -
    2997  kZoneNameAsia_Dushanbe /*name*/,
    -
    2998  0x32fc5c3c /*zoneId*/,
    -
    2999  &kZoneContext /*zoneContext*/,
    -
    3000  1 /*numEras*/,
    -
    3001  kZoneEraAsia_Dushanbe /*eras*/,
    -
    3002  nullptr /*targetInfo*/,
    -
    3003 };
    -
    3004 
    -
    3005 //---------------------------------------------------------------------------
    -
    3006 // Zone name: Asia/Ho_Chi_Minh
    -
    3007 // Eras: 1
    -
    3008 //---------------------------------------------------------------------------
    -
    3009 
    -
    3010 static const basic::Info::ZoneEra kZoneEraAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = {
    -
    3011  // 7:00 - %z
    -
    3012  {
    -
    3013  nullptr /*zonePolicy*/,
    -
    3014  "" /*format*/,
    -
    3015  28 /*offsetCode*/,
    -
    3016  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3017  127 /*untilYearTiny*/,
    -
    3018  1 /*untilMonth*/,
    -
    3019  1 /*untilDay*/,
    -
    3020  0 /*untilTimeCode*/,
    -
    3021  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3022  },
    -
    3023 
    -
    3024 };
    -
    3025 
    -
    3026 static const char kZoneNameAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = "\x04" "Ho_Chi_Minh";
    -
    3027 
    -
    3028 const basic::Info::ZoneInfo kZoneAsia_Ho_Chi_Minh ACE_TIME_PROGMEM = {
    -
    3029  kZoneNameAsia_Ho_Chi_Minh /*name*/,
    -
    3030  0x20f2d127 /*zoneId*/,
    -
    3031  &kZoneContext /*zoneContext*/,
    -
    3032  1 /*numEras*/,
    -
    3033  kZoneEraAsia_Ho_Chi_Minh /*eras*/,
    -
    3034  nullptr /*targetInfo*/,
    -
    3035 };
    -
    3036 
    -
    3037 //---------------------------------------------------------------------------
    -
    3038 // Zone name: Asia/Hong_Kong
    -
    3039 // Eras: 1
    -
    3040 //---------------------------------------------------------------------------
    -
    3041 
    -
    3042 static const basic::Info::ZoneEra kZoneEraAsia_Hong_Kong[] ACE_TIME_PROGMEM = {
    -
    3043  // 8:00 HK HK%sT
    -
    3044  {
    -
    3045  &kZonePolicyHK /*zonePolicy*/,
    -
    3046  "HK%T" /*format*/,
    -
    3047  32 /*offsetCode*/,
    -
    3048  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3049  127 /*untilYearTiny*/,
    -
    3050  1 /*untilMonth*/,
    -
    3051  1 /*untilDay*/,
    -
    3052  0 /*untilTimeCode*/,
    -
    3053  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3054  },
    -
    3055 
    -
    3056 };
    -
    3057 
    -
    3058 static const char kZoneNameAsia_Hong_Kong[] ACE_TIME_PROGMEM = "\x04" "Hong_Kong";
    -
    3059 
    -
    3060 const basic::Info::ZoneInfo kZoneAsia_Hong_Kong ACE_TIME_PROGMEM = {
    -
    3061  kZoneNameAsia_Hong_Kong /*name*/,
    -
    3062  0x577f28ac /*zoneId*/,
    -
    3063  &kZoneContext /*zoneContext*/,
    -
    3064  1 /*numEras*/,
    -
    3065  kZoneEraAsia_Hong_Kong /*eras*/,
    -
    3066  nullptr /*targetInfo*/,
    -
    3067 };
    -
    3068 
    -
    3069 //---------------------------------------------------------------------------
    -
    3070 // Zone name: Asia/Hovd
    -
    3071 // Eras: 1
    -
    3072 //---------------------------------------------------------------------------
    -
    3073 
    -
    3074 static const basic::Info::ZoneEra kZoneEraAsia_Hovd[] ACE_TIME_PROGMEM = {
    -
    3075  // 7:00 Mongol %z
    -
    3076  {
    -
    3077  &kZonePolicyMongol /*zonePolicy*/,
    -
    3078  "" /*format*/,
    -
    3079  28 /*offsetCode*/,
    -
    3080  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3081  127 /*untilYearTiny*/,
    -
    3082  1 /*untilMonth*/,
    -
    3083  1 /*untilDay*/,
    -
    3084  0 /*untilTimeCode*/,
    -
    3085  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3086  },
    -
    3087 
    -
    3088 };
    -
    3089 
    -
    3090 static const char kZoneNameAsia_Hovd[] ACE_TIME_PROGMEM = "\x04" "Hovd";
    -
    3091 
    -
    3092 const basic::Info::ZoneInfo kZoneAsia_Hovd ACE_TIME_PROGMEM = {
    -
    3093  kZoneNameAsia_Hovd /*name*/,
    -
    3094  0x1fab0fe3 /*zoneId*/,
    -
    3095  &kZoneContext /*zoneContext*/,
    -
    3096  1 /*numEras*/,
    -
    3097  kZoneEraAsia_Hovd /*eras*/,
    -
    3098  nullptr /*targetInfo*/,
    -
    3099 };
    -
    3100 
    -
    3101 //---------------------------------------------------------------------------
    -
    3102 // Zone name: Asia/Jakarta
    -
    3103 // Eras: 1
    -
    3104 //---------------------------------------------------------------------------
    -
    3105 
    -
    3106 static const basic::Info::ZoneEra kZoneEraAsia_Jakarta[] ACE_TIME_PROGMEM = {
    -
    3107  // 7:00 - WIB
    -
    3108  {
    -
    3109  nullptr /*zonePolicy*/,
    -
    3110  "WIB" /*format*/,
    -
    3111  28 /*offsetCode*/,
    -
    3112  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3113  127 /*untilYearTiny*/,
    -
    3114  1 /*untilMonth*/,
    -
    3115  1 /*untilDay*/,
    -
    3116  0 /*untilTimeCode*/,
    -
    3117  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3118  },
    -
    3119 
    -
    3120 };
    -
    3121 
    -
    3122 static const char kZoneNameAsia_Jakarta[] ACE_TIME_PROGMEM = "\x04" "Jakarta";
    -
    3123 
    -
    3124 const basic::Info::ZoneInfo kZoneAsia_Jakarta ACE_TIME_PROGMEM = {
    -
    3125  kZoneNameAsia_Jakarta /*name*/,
    -
    3126  0x0506ab50 /*zoneId*/,
    -
    3127  &kZoneContext /*zoneContext*/,
    -
    3128  1 /*numEras*/,
    -
    3129  kZoneEraAsia_Jakarta /*eras*/,
    -
    3130  nullptr /*targetInfo*/,
    -
    3131 };
    -
    3132 
    -
    3133 //---------------------------------------------------------------------------
    -
    3134 // Zone name: Asia/Jayapura
    -
    3135 // Eras: 1
    -
    3136 //---------------------------------------------------------------------------
    -
    3137 
    -
    3138 static const basic::Info::ZoneEra kZoneEraAsia_Jayapura[] ACE_TIME_PROGMEM = {
    -
    3139  // 9:00 - WIT
    -
    3140  {
    -
    3141  nullptr /*zonePolicy*/,
    -
    3142  "WIT" /*format*/,
    -
    3143  36 /*offsetCode*/,
    -
    3144  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3145  127 /*untilYearTiny*/,
    -
    3146  1 /*untilMonth*/,
    -
    3147  1 /*untilDay*/,
    -
    3148  0 /*untilTimeCode*/,
    -
    3149  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3150  },
    -
    3151 
    -
    3152 };
    -
    3153 
    -
    3154 static const char kZoneNameAsia_Jayapura[] ACE_TIME_PROGMEM = "\x04" "Jayapura";
    -
    3155 
    -
    3156 const basic::Info::ZoneInfo kZoneAsia_Jayapura ACE_TIME_PROGMEM = {
    -
    3157  kZoneNameAsia_Jayapura /*name*/,
    -
    3158  0xc6833c2f /*zoneId*/,
    -
    3159  &kZoneContext /*zoneContext*/,
    -
    3160  1 /*numEras*/,
    -
    3161  kZoneEraAsia_Jayapura /*eras*/,
    -
    3162  nullptr /*targetInfo*/,
    -
    3163 };
    -
    3164 
    -
    3165 //---------------------------------------------------------------------------
    -
    3166 // Zone name: Asia/Jerusalem
    -
    3167 // Eras: 1
    -
    3168 //---------------------------------------------------------------------------
    -
    3169 
    -
    3170 static const basic::Info::ZoneEra kZoneEraAsia_Jerusalem[] ACE_TIME_PROGMEM = {
    -
    3171  // 2:00 Zion I%sT
    -
    3172  {
    -
    3173  &kZonePolicyZion /*zonePolicy*/,
    -
    3174  "I%T" /*format*/,
    -
    3175  8 /*offsetCode*/,
    -
    3176  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3177  127 /*untilYearTiny*/,
    -
    3178  1 /*untilMonth*/,
    -
    3179  1 /*untilDay*/,
    -
    3180  0 /*untilTimeCode*/,
    -
    3181  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3182  },
    -
    3183 
    -
    3184 };
    -
    3185 
    -
    3186 static const char kZoneNameAsia_Jerusalem[] ACE_TIME_PROGMEM = "\x04" "Jerusalem";
    -
    3187 
    -
    3188 const basic::Info::ZoneInfo kZoneAsia_Jerusalem ACE_TIME_PROGMEM = {
    -
    3189  kZoneNameAsia_Jerusalem /*name*/,
    -
    3190  0x5becd23a /*zoneId*/,
    -
    3191  &kZoneContext /*zoneContext*/,
    -
    3192  1 /*numEras*/,
    -
    3193  kZoneEraAsia_Jerusalem /*eras*/,
    -
    3194  nullptr /*targetInfo*/,
    -
    3195 };
    -
    3196 
    -
    3197 //---------------------------------------------------------------------------
    -
    3198 // Zone name: Asia/Kabul
    -
    3199 // Eras: 1
    -
    3200 //---------------------------------------------------------------------------
    -
    3201 
    -
    3202 static const basic::Info::ZoneEra kZoneEraAsia_Kabul[] ACE_TIME_PROGMEM = {
    -
    3203  // 4:30 - %z
    -
    3204  {
    -
    3205  nullptr /*zonePolicy*/,
    -
    3206  "" /*format*/,
    -
    3207  18 /*offsetCode*/,
    -
    3208  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3209  127 /*untilYearTiny*/,
    -
    3210  1 /*untilMonth*/,
    -
    3211  1 /*untilDay*/,
    -
    3212  0 /*untilTimeCode*/,
    -
    3213  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3214  },
    -
    3215 
    -
    3216 };
    -
    3217 
    -
    3218 static const char kZoneNameAsia_Kabul[] ACE_TIME_PROGMEM = "\x04" "Kabul";
    -
    3219 
    -
    3220 const basic::Info::ZoneInfo kZoneAsia_Kabul ACE_TIME_PROGMEM = {
    -
    3221  kZoneNameAsia_Kabul /*name*/,
    -
    3222  0x153b5601 /*zoneId*/,
    -
    3223  &kZoneContext /*zoneContext*/,
    -
    3224  1 /*numEras*/,
    -
    3225  kZoneEraAsia_Kabul /*eras*/,
    -
    3226  nullptr /*targetInfo*/,
    -
    3227 };
    -
    3228 
    -
    3229 //---------------------------------------------------------------------------
    -
    3230 // Zone name: Asia/Karachi
    -
    3231 // Eras: 1
    -
    3232 //---------------------------------------------------------------------------
    -
    3233 
    -
    3234 static const basic::Info::ZoneEra kZoneEraAsia_Karachi[] ACE_TIME_PROGMEM = {
    -
    3235  // 5:00 Pakistan PK%sT
    -
    3236  {
    -
    3237  &kZonePolicyPakistan /*zonePolicy*/,
    -
    3238  "PK%T" /*format*/,
    -
    3239  20 /*offsetCode*/,
    -
    3240  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3241  127 /*untilYearTiny*/,
    -
    3242  1 /*untilMonth*/,
    -
    3243  1 /*untilDay*/,
    -
    3244  0 /*untilTimeCode*/,
    -
    3245  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3246  },
    -
    3247 
    -
    3248 };
    -
    3249 
    -
    3250 static const char kZoneNameAsia_Karachi[] ACE_TIME_PROGMEM = "\x04" "Karachi";
    -
    3251 
    -
    3252 const basic::Info::ZoneInfo kZoneAsia_Karachi ACE_TIME_PROGMEM = {
    -
    3253  kZoneNameAsia_Karachi /*name*/,
    -
    3254  0x527f5245 /*zoneId*/,
    -
    3255  &kZoneContext /*zoneContext*/,
    -
    3256  1 /*numEras*/,
    -
    3257  kZoneEraAsia_Karachi /*eras*/,
    -
    3258  nullptr /*targetInfo*/,
    -
    3259 };
    -
    3260 
    -
    3261 //---------------------------------------------------------------------------
    -
    3262 // Zone name: Asia/Kathmandu
    -
    3263 // Eras: 1
    -
    3264 //---------------------------------------------------------------------------
    -
    3265 
    -
    3266 static const basic::Info::ZoneEra kZoneEraAsia_Kathmandu[] ACE_TIME_PROGMEM = {
    -
    3267  // 5:45 - %z
    -
    3268  {
    -
    3269  nullptr /*zonePolicy*/,
    -
    3270  "" /*format*/,
    -
    3271  23 /*offsetCode*/,
    -
    3272  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3273  127 /*untilYearTiny*/,
    -
    3274  1 /*untilMonth*/,
    -
    3275  1 /*untilDay*/,
    -
    3276  0 /*untilTimeCode*/,
    -
    3277  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3278  },
    -
    3279 
    -
    3280 };
    -
    3281 
    -
    3282 static const char kZoneNameAsia_Kathmandu[] ACE_TIME_PROGMEM = "\x04" "Kathmandu";
    -
    3283 
    -
    3284 const basic::Info::ZoneInfo kZoneAsia_Kathmandu ACE_TIME_PROGMEM = {
    -
    3285  kZoneNameAsia_Kathmandu /*name*/,
    -
    3286  0x9a96ce6f /*zoneId*/,
    -
    3287  &kZoneContext /*zoneContext*/,
    -
    3288  1 /*numEras*/,
    -
    3289  kZoneEraAsia_Kathmandu /*eras*/,
    -
    3290  nullptr /*targetInfo*/,
    -
    3291 };
    -
    3292 
    -
    3293 //---------------------------------------------------------------------------
    -
    3294 // Zone name: Asia/Kolkata
    -
    3295 // Eras: 1
    -
    3296 //---------------------------------------------------------------------------
    -
    3297 
    -
    3298 static const basic::Info::ZoneEra kZoneEraAsia_Kolkata[] ACE_TIME_PROGMEM = {
    -
    3299  // 5:30 - IST
    -
    3300  {
    -
    3301  nullptr /*zonePolicy*/,
    -
    3302  "IST" /*format*/,
    -
    3303  22 /*offsetCode*/,
    -
    3304  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3305  127 /*untilYearTiny*/,
    -
    3306  1 /*untilMonth*/,
    -
    3307  1 /*untilDay*/,
    -
    3308  0 /*untilTimeCode*/,
    -
    3309  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3310  },
    -
    3311 
    -
    3312 };
    -
    3313 
    -
    3314 static const char kZoneNameAsia_Kolkata[] ACE_TIME_PROGMEM = "\x04" "Kolkata";
    -
    3315 
    -
    3316 const basic::Info::ZoneInfo kZoneAsia_Kolkata ACE_TIME_PROGMEM = {
    -
    3317  kZoneNameAsia_Kolkata /*name*/,
    -
    3318  0x72c06cd9 /*zoneId*/,
    -
    3319  &kZoneContext /*zoneContext*/,
    -
    3320  1 /*numEras*/,
    -
    3321  kZoneEraAsia_Kolkata /*eras*/,
    -
    3322  nullptr /*targetInfo*/,
    -
    3323 };
    -
    3324 
    -
    3325 //---------------------------------------------------------------------------
    -
    3326 // Zone name: Asia/Kuching
    -
    3327 // Eras: 1
    -
    3328 //---------------------------------------------------------------------------
    -
    3329 
    -
    3330 static const basic::Info::ZoneEra kZoneEraAsia_Kuching[] ACE_TIME_PROGMEM = {
    -
    3331  // 8:00 - %z
    -
    3332  {
    -
    3333  nullptr /*zonePolicy*/,
    -
    3334  "" /*format*/,
    -
    3335  32 /*offsetCode*/,
    -
    3336  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3337  127 /*untilYearTiny*/,
    -
    3338  1 /*untilMonth*/,
    -
    3339  1 /*untilDay*/,
    -
    3340  0 /*untilTimeCode*/,
    -
    3341  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3342  },
    -
    3343 
    -
    3344 };
    -
    3345 
    -
    3346 static const char kZoneNameAsia_Kuching[] ACE_TIME_PROGMEM = "\x04" "Kuching";
    -
    3347 
    -
    3348 const basic::Info::ZoneInfo kZoneAsia_Kuching ACE_TIME_PROGMEM = {
    -
    3349  kZoneNameAsia_Kuching /*name*/,
    -
    3350  0x801b003b /*zoneId*/,
    -
    3351  &kZoneContext /*zoneContext*/,
    -
    3352  1 /*numEras*/,
    -
    3353  kZoneEraAsia_Kuching /*eras*/,
    -
    3354  nullptr /*targetInfo*/,
    -
    3355 };
    -
    3356 
    -
    3357 //---------------------------------------------------------------------------
    -
    3358 // Zone name: Asia/Macau
    -
    3359 // Eras: 1
    -
    3360 //---------------------------------------------------------------------------
    -
    3361 
    -
    3362 static const basic::Info::ZoneEra kZoneEraAsia_Macau[] ACE_TIME_PROGMEM = {
    -
    3363  // 8:00 Macau C%sT
    -
    3364  {
    -
    3365  &kZonePolicyMacau /*zonePolicy*/,
    -
    3366  "C%T" /*format*/,
    -
    3367  32 /*offsetCode*/,
    -
    3368  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3369  127 /*untilYearTiny*/,
    -
    3370  1 /*untilMonth*/,
    -
    3371  1 /*untilDay*/,
    -
    3372  0 /*untilTimeCode*/,
    -
    3373  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3374  },
    -
    3375 
    -
    3376 };
    -
    3377 
    -
    3378 static const char kZoneNameAsia_Macau[] ACE_TIME_PROGMEM = "\x04" "Macau";
    -
    3379 
    -
    3380 const basic::Info::ZoneInfo kZoneAsia_Macau ACE_TIME_PROGMEM = {
    -
    3381  kZoneNameAsia_Macau /*name*/,
    -
    3382  0x155f88b9 /*zoneId*/,
    -
    3383  &kZoneContext /*zoneContext*/,
    -
    3384  1 /*numEras*/,
    -
    3385  kZoneEraAsia_Macau /*eras*/,
    -
    3386  nullptr /*targetInfo*/,
    -
    3387 };
    -
    3388 
    -
    3389 //---------------------------------------------------------------------------
    -
    3390 // Zone name: Asia/Makassar
    -
    3391 // Eras: 1
    -
    3392 //---------------------------------------------------------------------------
    -
    3393 
    -
    3394 static const basic::Info::ZoneEra kZoneEraAsia_Makassar[] ACE_TIME_PROGMEM = {
    -
    3395  // 8:00 - WITA
    -
    3396  {
    -
    3397  nullptr /*zonePolicy*/,
    -
    3398  "WITA" /*format*/,
    -
    3399  32 /*offsetCode*/,
    -
    3400  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3401  127 /*untilYearTiny*/,
    -
    3402  1 /*untilMonth*/,
    -
    3403  1 /*untilDay*/,
    -
    3404  0 /*untilTimeCode*/,
    -
    3405  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3406  },
    -
    3407 
    -
    3408 };
    -
    3409 
    -
    3410 static const char kZoneNameAsia_Makassar[] ACE_TIME_PROGMEM = "\x04" "Makassar";
    -
    3411 
    -
    3412 const basic::Info::ZoneInfo kZoneAsia_Makassar ACE_TIME_PROGMEM = {
    -
    3413  kZoneNameAsia_Makassar /*name*/,
    -
    3414  0x6aa21c85 /*zoneId*/,
    -
    3415  &kZoneContext /*zoneContext*/,
    -
    3416  1 /*numEras*/,
    -
    3417  kZoneEraAsia_Makassar /*eras*/,
    -
    3418  nullptr /*targetInfo*/,
    -
    3419 };
    -
    3420 
    -
    3421 //---------------------------------------------------------------------------
    -
    3422 // Zone name: Asia/Manila
    -
    3423 // Eras: 1
    -
    3424 //---------------------------------------------------------------------------
    -
    3425 
    -
    3426 static const basic::Info::ZoneEra kZoneEraAsia_Manila[] ACE_TIME_PROGMEM = {
    -
    3427  // 8:00 Phil P%sT
    -
    3428  {
    -
    3429  &kZonePolicyPhil /*zonePolicy*/,
    -
    3430  "P%T" /*format*/,
    -
    3431  32 /*offsetCode*/,
    -
    3432  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3433  127 /*untilYearTiny*/,
    -
    3434  1 /*untilMonth*/,
    -
    3435  1 /*untilDay*/,
    -
    3436  0 /*untilTimeCode*/,
    -
    3437  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3438  },
    -
    3439 
    -
    3440 };
    -
    3441 
    -
    3442 static const char kZoneNameAsia_Manila[] ACE_TIME_PROGMEM = "\x04" "Manila";
    -
    3443 
    -
    3444 const basic::Info::ZoneInfo kZoneAsia_Manila ACE_TIME_PROGMEM = {
    -
    3445  kZoneNameAsia_Manila /*name*/,
    -
    3446  0xc156c944 /*zoneId*/,
    -
    3447  &kZoneContext /*zoneContext*/,
    -
    3448  1 /*numEras*/,
    -
    3449  kZoneEraAsia_Manila /*eras*/,
    -
    3450  nullptr /*targetInfo*/,
    -
    3451 };
    -
    3452 
    -
    3453 //---------------------------------------------------------------------------
    -
    3454 // Zone name: Asia/Nicosia
    -
    3455 // Eras: 1
    -
    3456 //---------------------------------------------------------------------------
    -
    3457 
    -
    3458 static const basic::Info::ZoneEra kZoneEraAsia_Nicosia[] ACE_TIME_PROGMEM = {
    -
    3459  // 2:00 EUAsia EE%sT
    -
    3460  {
    -
    3461  &kZonePolicyEUAsia /*zonePolicy*/,
    -
    3462  "EE%T" /*format*/,
    -
    3463  8 /*offsetCode*/,
    -
    3464  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3465  127 /*untilYearTiny*/,
    -
    3466  1 /*untilMonth*/,
    -
    3467  1 /*untilDay*/,
    -
    3468  0 /*untilTimeCode*/,
    -
    3469  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3470  },
    -
    3471 
    -
    3472 };
    -
    3473 
    -
    3474 static const char kZoneNameAsia_Nicosia[] ACE_TIME_PROGMEM = "\x04" "Nicosia";
    -
    3475 
    -
    3476 const basic::Info::ZoneInfo kZoneAsia_Nicosia ACE_TIME_PROGMEM = {
    -
    3477  kZoneNameAsia_Nicosia /*name*/,
    -
    3478  0x4b0fcf78 /*zoneId*/,
    -
    3479  &kZoneContext /*zoneContext*/,
    -
    3480  1 /*numEras*/,
    -
    3481  kZoneEraAsia_Nicosia /*eras*/,
    -
    3482  nullptr /*targetInfo*/,
    -
    3483 };
    -
    3484 
    -
    3485 //---------------------------------------------------------------------------
    -
    3486 // Zone name: Asia/Pontianak
    -
    3487 // Eras: 1
    -
    3488 //---------------------------------------------------------------------------
    -
    3489 
    -
    3490 static const basic::Info::ZoneEra kZoneEraAsia_Pontianak[] ACE_TIME_PROGMEM = {
    -
    3491  // 7:00 - WIB
    -
    3492  {
    -
    3493  nullptr /*zonePolicy*/,
    -
    3494  "WIB" /*format*/,
    -
    3495  28 /*offsetCode*/,
    -
    3496  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3497  127 /*untilYearTiny*/,
    -
    3498  1 /*untilMonth*/,
    -
    3499  1 /*untilDay*/,
    -
    3500  0 /*untilTimeCode*/,
    -
    3501  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3502  },
    -
    3503 
    -
    3504 };
    -
    3505 
    -
    3506 static const char kZoneNameAsia_Pontianak[] ACE_TIME_PROGMEM = "\x04" "Pontianak";
    -
    3507 
    -
    3508 const basic::Info::ZoneInfo kZoneAsia_Pontianak ACE_TIME_PROGMEM = {
    -
    3509  kZoneNameAsia_Pontianak /*name*/,
    -
    3510  0x1a76c057 /*zoneId*/,
    -
    3511  &kZoneContext /*zoneContext*/,
    -
    3512  1 /*numEras*/,
    -
    3513  kZoneEraAsia_Pontianak /*eras*/,
    -
    3514  nullptr /*targetInfo*/,
    -
    3515 };
    -
    3516 
    -
    3517 //---------------------------------------------------------------------------
    -
    3518 // Zone name: Asia/Qatar
    -
    3519 // Eras: 1
    -
    3520 //---------------------------------------------------------------------------
    -
    3521 
    -
    3522 static const basic::Info::ZoneEra kZoneEraAsia_Qatar[] ACE_TIME_PROGMEM = {
    -
    3523  // 3:00 - %z
    -
    3524  {
    -
    3525  nullptr /*zonePolicy*/,
    -
    3526  "" /*format*/,
    -
    3527  12 /*offsetCode*/,
    -
    3528  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3529  127 /*untilYearTiny*/,
    -
    3530  1 /*untilMonth*/,
    -
    3531  1 /*untilDay*/,
    -
    3532  0 /*untilTimeCode*/,
    -
    3533  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3534  },
    -
    3535 
    -
    3536 };
    -
    3537 
    -
    3538 static const char kZoneNameAsia_Qatar[] ACE_TIME_PROGMEM = "\x04" "Qatar";
    -
    3539 
    -
    3540 const basic::Info::ZoneInfo kZoneAsia_Qatar ACE_TIME_PROGMEM = {
    -
    3541  kZoneNameAsia_Qatar /*name*/,
    -
    3542  0x15a8330b /*zoneId*/,
    -
    3543  &kZoneContext /*zoneContext*/,
    -
    3544  1 /*numEras*/,
    -
    3545  kZoneEraAsia_Qatar /*eras*/,
    -
    3546  nullptr /*targetInfo*/,
    -
    3547 };
    -
    3548 
    -
    3549 //---------------------------------------------------------------------------
    -
    3550 // Zone name: Asia/Riyadh
    -
    3551 // Eras: 1
    -
    3552 //---------------------------------------------------------------------------
    -
    3553 
    -
    3554 static const basic::Info::ZoneEra kZoneEraAsia_Riyadh[] ACE_TIME_PROGMEM = {
    -
    3555  // 3:00 - %z
    -
    3556  {
    -
    3557  nullptr /*zonePolicy*/,
    -
    3558  "" /*format*/,
    -
    3559  12 /*offsetCode*/,
    -
    3560  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3561  127 /*untilYearTiny*/,
    -
    3562  1 /*untilMonth*/,
    -
    3563  1 /*untilDay*/,
    -
    3564  0 /*untilTimeCode*/,
    -
    3565  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3566  },
    -
    3567 
    -
    3568 };
    -
    3569 
    -
    3570 static const char kZoneNameAsia_Riyadh[] ACE_TIME_PROGMEM = "\x04" "Riyadh";
    -
    3571 
    -
    3572 const basic::Info::ZoneInfo kZoneAsia_Riyadh ACE_TIME_PROGMEM = {
    -
    3573  kZoneNameAsia_Riyadh /*name*/,
    -
    3574  0xcd973d93 /*zoneId*/,
    -
    3575  &kZoneContext /*zoneContext*/,
    -
    3576  1 /*numEras*/,
    -
    3577  kZoneEraAsia_Riyadh /*eras*/,
    -
    3578  nullptr /*targetInfo*/,
    -
    3579 };
    -
    3580 
    -
    3581 //---------------------------------------------------------------------------
    -
    3582 // Zone name: Asia/Samarkand
    -
    3583 // Eras: 1
    -
    3584 //---------------------------------------------------------------------------
    -
    3585 
    -
    3586 static const basic::Info::ZoneEra kZoneEraAsia_Samarkand[] ACE_TIME_PROGMEM = {
    -
    3587  // 5:00 - %z
    -
    3588  {
    -
    3589  nullptr /*zonePolicy*/,
    -
    3590  "" /*format*/,
    -
    3591  20 /*offsetCode*/,
    -
    3592  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3593  127 /*untilYearTiny*/,
    -
    3594  1 /*untilMonth*/,
    -
    3595  1 /*untilDay*/,
    -
    3596  0 /*untilTimeCode*/,
    -
    3597  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3598  },
    -
    3599 
    -
    3600 };
    -
    3601 
    -
    3602 static const char kZoneNameAsia_Samarkand[] ACE_TIME_PROGMEM = "\x04" "Samarkand";
    -
    3603 
    -
    3604 const basic::Info::ZoneInfo kZoneAsia_Samarkand ACE_TIME_PROGMEM = {
    -
    3605  kZoneNameAsia_Samarkand /*name*/,
    -
    3606  0x13ae5104 /*zoneId*/,
    -
    3607  &kZoneContext /*zoneContext*/,
    -
    3608  1 /*numEras*/,
    -
    3609  kZoneEraAsia_Samarkand /*eras*/,
    -
    3610  nullptr /*targetInfo*/,
    -
    3611 };
    -
    3612 
    -
    3613 //---------------------------------------------------------------------------
    -
    3614 // Zone name: Asia/Seoul
    -
    3615 // Eras: 1
    -
    3616 //---------------------------------------------------------------------------
    -
    3617 
    -
    3618 static const basic::Info::ZoneEra kZoneEraAsia_Seoul[] ACE_TIME_PROGMEM = {
    -
    3619  // 9:00 ROK K%sT
    -
    3620  {
    -
    3621  &kZonePolicyROK /*zonePolicy*/,
    -
    3622  "K%T" /*format*/,
    -
    3623  36 /*offsetCode*/,
    -
    3624  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3625  127 /*untilYearTiny*/,
    -
    3626  1 /*untilMonth*/,
    -
    3627  1 /*untilDay*/,
    -
    3628  0 /*untilTimeCode*/,
    -
    3629  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3630  },
    -
    3631 
    -
    3632 };
    -
    3633 
    -
    3634 static const char kZoneNameAsia_Seoul[] ACE_TIME_PROGMEM = "\x04" "Seoul";
    -
    3635 
    -
    3636 const basic::Info::ZoneInfo kZoneAsia_Seoul ACE_TIME_PROGMEM = {
    -
    3637  kZoneNameAsia_Seoul /*name*/,
    -
    3638  0x15ce82da /*zoneId*/,
    -
    3639  &kZoneContext /*zoneContext*/,
    -
    3640  1 /*numEras*/,
    -
    3641  kZoneEraAsia_Seoul /*eras*/,
    -
    3642  nullptr /*targetInfo*/,
    -
    3643 };
    -
    3644 
    -
    3645 //---------------------------------------------------------------------------
    -
    3646 // Zone name: Asia/Shanghai
    -
    3647 // Eras: 1
    -
    3648 //---------------------------------------------------------------------------
    -
    3649 
    -
    3650 static const basic::Info::ZoneEra kZoneEraAsia_Shanghai[] ACE_TIME_PROGMEM = {
    -
    3651  // 8:00 PRC C%sT
    -
    3652  {
    -
    3653  &kZonePolicyPRC /*zonePolicy*/,
    -
    3654  "C%T" /*format*/,
    -
    3655  32 /*offsetCode*/,
    -
    3656  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3657  127 /*untilYearTiny*/,
    -
    3658  1 /*untilMonth*/,
    -
    3659  1 /*untilDay*/,
    -
    3660  0 /*untilTimeCode*/,
    -
    3661  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3662  },
    -
    3663 
    -
    3664 };
    -
    3665 
    -
    3666 static const char kZoneNameAsia_Shanghai[] ACE_TIME_PROGMEM = "\x04" "Shanghai";
    -
    3667 
    -
    3668 const basic::Info::ZoneInfo kZoneAsia_Shanghai ACE_TIME_PROGMEM = {
    -
    3669  kZoneNameAsia_Shanghai /*name*/,
    -
    3670  0xf895a7f5 /*zoneId*/,
    -
    3671  &kZoneContext /*zoneContext*/,
    -
    3672  1 /*numEras*/,
    -
    3673  kZoneEraAsia_Shanghai /*eras*/,
    -
    3674  nullptr /*targetInfo*/,
    -
    3675 };
    -
    3676 
    -
    3677 //---------------------------------------------------------------------------
    -
    3678 // Zone name: Asia/Singapore
    -
    3679 // Eras: 1
    -
    3680 //---------------------------------------------------------------------------
    -
    3681 
    -
    3682 static const basic::Info::ZoneEra kZoneEraAsia_Singapore[] ACE_TIME_PROGMEM = {
    -
    3683  // 8:00 - %z
    -
    3684  {
    -
    3685  nullptr /*zonePolicy*/,
    -
    3686  "" /*format*/,
    -
    3687  32 /*offsetCode*/,
    -
    3688  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3689  127 /*untilYearTiny*/,
    -
    3690  1 /*untilMonth*/,
    -
    3691  1 /*untilDay*/,
    -
    3692  0 /*untilTimeCode*/,
    -
    3693  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3694  },
    -
    3695 
    -
    3696 };
    -
    3697 
    -
    3698 static const char kZoneNameAsia_Singapore[] ACE_TIME_PROGMEM = "\x04" "Singapore";
    -
    3699 
    -
    3700 const basic::Info::ZoneInfo kZoneAsia_Singapore ACE_TIME_PROGMEM = {
    -
    3701  kZoneNameAsia_Singapore /*name*/,
    -
    3702  0xcf8581fa /*zoneId*/,
    -
    3703  &kZoneContext /*zoneContext*/,
    -
    3704  1 /*numEras*/,
    -
    3705  kZoneEraAsia_Singapore /*eras*/,
    -
    3706  nullptr /*targetInfo*/,
    -
    3707 };
    -
    3708 
    -
    3709 //---------------------------------------------------------------------------
    -
    3710 // Zone name: Asia/Taipei
    -
    3711 // Eras: 1
    -
    3712 //---------------------------------------------------------------------------
    -
    3713 
    -
    3714 static const basic::Info::ZoneEra kZoneEraAsia_Taipei[] ACE_TIME_PROGMEM = {
    -
    3715  // 8:00 Taiwan C%sT
    -
    3716  {
    -
    3717  &kZonePolicyTaiwan /*zonePolicy*/,
    -
    3718  "C%T" /*format*/,
    -
    3719  32 /*offsetCode*/,
    -
    3720  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3721  127 /*untilYearTiny*/,
    -
    3722  1 /*untilMonth*/,
    -
    3723  1 /*untilDay*/,
    -
    3724  0 /*untilTimeCode*/,
    -
    3725  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3726  },
    -
    3727 
    -
    3728 };
    -
    3729 
    -
    3730 static const char kZoneNameAsia_Taipei[] ACE_TIME_PROGMEM = "\x04" "Taipei";
    -
    3731 
    -
    3732 const basic::Info::ZoneInfo kZoneAsia_Taipei ACE_TIME_PROGMEM = {
    -
    3733  kZoneNameAsia_Taipei /*name*/,
    -
    3734  0xd1a844ae /*zoneId*/,
    -
    3735  &kZoneContext /*zoneContext*/,
    -
    3736  1 /*numEras*/,
    -
    3737  kZoneEraAsia_Taipei /*eras*/,
    -
    3738  nullptr /*targetInfo*/,
    -
    3739 };
    -
    3740 
    -
    3741 //---------------------------------------------------------------------------
    -
    3742 // Zone name: Asia/Tashkent
    -
    3743 // Eras: 1
    -
    3744 //---------------------------------------------------------------------------
    -
    3745 
    -
    3746 static const basic::Info::ZoneEra kZoneEraAsia_Tashkent[] ACE_TIME_PROGMEM = {
    -
    3747  // 5:00 - %z
    -
    3748  {
    -
    3749  nullptr /*zonePolicy*/,
    -
    3750  "" /*format*/,
    -
    3751  20 /*offsetCode*/,
    -
    3752  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3753  127 /*untilYearTiny*/,
    -
    3754  1 /*untilMonth*/,
    -
    3755  1 /*untilDay*/,
    -
    3756  0 /*untilTimeCode*/,
    -
    3757  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3758  },
    -
    3759 
    -
    3760 };
    -
    3761 
    -
    3762 static const char kZoneNameAsia_Tashkent[] ACE_TIME_PROGMEM = "\x04" "Tashkent";
    -
    3763 
    -
    3764 const basic::Info::ZoneInfo kZoneAsia_Tashkent ACE_TIME_PROGMEM = {
    -
    3765  kZoneNameAsia_Tashkent /*name*/,
    -
    3766  0xf3924254 /*zoneId*/,
    -
    3767  &kZoneContext /*zoneContext*/,
    -
    3768  1 /*numEras*/,
    -
    3769  kZoneEraAsia_Tashkent /*eras*/,
    -
    3770  nullptr /*targetInfo*/,
    -
    3771 };
    -
    3772 
    -
    3773 //---------------------------------------------------------------------------
    -
    3774 // Zone name: Asia/Tehran
    -
    3775 // Eras: 1
    -
    3776 //---------------------------------------------------------------------------
    -
    3777 
    -
    3778 static const basic::Info::ZoneEra kZoneEraAsia_Tehran[] ACE_TIME_PROGMEM = {
    -
    3779  // 3:30 Iran %z
    -
    3780  {
    -
    3781  &kZonePolicyIran /*zonePolicy*/,
    -
    3782  "" /*format*/,
    -
    3783  14 /*offsetCode*/,
    -
    3784  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3785  127 /*untilYearTiny*/,
    -
    3786  1 /*untilMonth*/,
    -
    3787  1 /*untilDay*/,
    -
    3788  0 /*untilTimeCode*/,
    -
    3789  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3790  },
    -
    3791 
    -
    3792 };
    -
    3793 
    -
    3794 static const char kZoneNameAsia_Tehran[] ACE_TIME_PROGMEM = "\x04" "Tehran";
    -
    3795 
    -
    3796 const basic::Info::ZoneInfo kZoneAsia_Tehran ACE_TIME_PROGMEM = {
    -
    3797  kZoneNameAsia_Tehran /*name*/,
    -
    3798  0xd1f02254 /*zoneId*/,
    -
    3799  &kZoneContext /*zoneContext*/,
    -
    3800  1 /*numEras*/,
    -
    3801  kZoneEraAsia_Tehran /*eras*/,
    -
    3802  nullptr /*targetInfo*/,
    -
    3803 };
    -
    3804 
    -
    3805 //---------------------------------------------------------------------------
    -
    3806 // Zone name: Asia/Thimphu
    -
    3807 // Eras: 1
    -
    3808 //---------------------------------------------------------------------------
    -
    3809 
    -
    3810 static const basic::Info::ZoneEra kZoneEraAsia_Thimphu[] ACE_TIME_PROGMEM = {
    -
    3811  // 6:00 - %z
    -
    3812  {
    -
    3813  nullptr /*zonePolicy*/,
    -
    3814  "" /*format*/,
    -
    3815  24 /*offsetCode*/,
    -
    3816  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3817  127 /*untilYearTiny*/,
    -
    3818  1 /*untilMonth*/,
    -
    3819  1 /*untilDay*/,
    -
    3820  0 /*untilTimeCode*/,
    -
    3821  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3822  },
    -
    3823 
    -
    3824 };
    -
    3825 
    -
    3826 static const char kZoneNameAsia_Thimphu[] ACE_TIME_PROGMEM = "\x04" "Thimphu";
    -
    3827 
    -
    3828 const basic::Info::ZoneInfo kZoneAsia_Thimphu ACE_TIME_PROGMEM = {
    -
    3829  kZoneNameAsia_Thimphu /*name*/,
    -
    3830  0x170380d1 /*zoneId*/,
    -
    3831  &kZoneContext /*zoneContext*/,
    -
    3832  1 /*numEras*/,
    -
    3833  kZoneEraAsia_Thimphu /*eras*/,
    -
    3834  nullptr /*targetInfo*/,
    -
    3835 };
    -
    3836 
    -
    3837 //---------------------------------------------------------------------------
    -
    3838 // Zone name: Asia/Tokyo
    -
    3839 // Eras: 1
    -
    3840 //---------------------------------------------------------------------------
    -
    3841 
    -
    3842 static const basic::Info::ZoneEra kZoneEraAsia_Tokyo[] ACE_TIME_PROGMEM = {
    -
    3843  // 9:00 Japan J%sT
    -
    3844  {
    -
    3845  &kZonePolicyJapan /*zonePolicy*/,
    -
    3846  "J%T" /*format*/,
    -
    3847  36 /*offsetCode*/,
    -
    3848  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3849  127 /*untilYearTiny*/,
    -
    3850  1 /*untilMonth*/,
    -
    3851  1 /*untilDay*/,
    -
    3852  0 /*untilTimeCode*/,
    -
    3853  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3854  },
    -
    3855 
    -
    3856 };
    -
    3857 
    -
    3858 static const char kZoneNameAsia_Tokyo[] ACE_TIME_PROGMEM = "\x04" "Tokyo";
    -
    3859 
    -
    3860 const basic::Info::ZoneInfo kZoneAsia_Tokyo ACE_TIME_PROGMEM = {
    -
    3861  kZoneNameAsia_Tokyo /*name*/,
    -
    3862  0x15e606a8 /*zoneId*/,
    -
    3863  &kZoneContext /*zoneContext*/,
    -
    3864  1 /*numEras*/,
    -
    3865  kZoneEraAsia_Tokyo /*eras*/,
    -
    3866  nullptr /*targetInfo*/,
    -
    3867 };
    -
    3868 
    -
    3869 //---------------------------------------------------------------------------
    -
    3870 // Zone name: Asia/Ulaanbaatar
    -
    3871 // Eras: 1
    -
    3872 //---------------------------------------------------------------------------
    -
    3873 
    -
    3874 static const basic::Info::ZoneEra kZoneEraAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = {
    -
    3875  // 8:00 Mongol %z
    -
    3876  {
    -
    3877  &kZonePolicyMongol /*zonePolicy*/,
    -
    3878  "" /*format*/,
    -
    3879  32 /*offsetCode*/,
    -
    3880  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3881  127 /*untilYearTiny*/,
    -
    3882  1 /*untilMonth*/,
    -
    3883  1 /*untilDay*/,
    -
    3884  0 /*untilTimeCode*/,
    -
    3885  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3886  },
    -
    3887 
    -
    3888 };
    -
    3889 
    -
    3890 static const char kZoneNameAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = "\x04" "Ulaanbaatar";
    -
    3891 
    -
    3892 const basic::Info::ZoneInfo kZoneAsia_Ulaanbaatar ACE_TIME_PROGMEM = {
    -
    3893  kZoneNameAsia_Ulaanbaatar /*name*/,
    -
    3894  0x30f0cc4e /*zoneId*/,
    -
    3895  &kZoneContext /*zoneContext*/,
    -
    3896  1 /*numEras*/,
    -
    3897  kZoneEraAsia_Ulaanbaatar /*eras*/,
    -
    3898  nullptr /*targetInfo*/,
    -
    3899 };
    -
    3900 
    -
    3901 //---------------------------------------------------------------------------
    -
    3902 // Zone name: Asia/Urumqi
    -
    3903 // Eras: 1
    -
    3904 //---------------------------------------------------------------------------
    -
    3905 
    -
    3906 static const basic::Info::ZoneEra kZoneEraAsia_Urumqi[] ACE_TIME_PROGMEM = {
    -
    3907  // 6:00 - %z
    -
    3908  {
    -
    3909  nullptr /*zonePolicy*/,
    -
    3910  "" /*format*/,
    -
    3911  24 /*offsetCode*/,
    -
    3912  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3913  127 /*untilYearTiny*/,
    -
    3914  1 /*untilMonth*/,
    -
    3915  1 /*untilDay*/,
    -
    3916  0 /*untilTimeCode*/,
    -
    3917  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3918  },
    -
    3919 
    -
    3920 };
    -
    3921 
    -
    3922 static const char kZoneNameAsia_Urumqi[] ACE_TIME_PROGMEM = "\x04" "Urumqi";
    -
    3923 
    -
    3924 const basic::Info::ZoneInfo kZoneAsia_Urumqi ACE_TIME_PROGMEM = {
    -
    3925  kZoneNameAsia_Urumqi /*name*/,
    -
    3926  0xd5379735 /*zoneId*/,
    -
    3927  &kZoneContext /*zoneContext*/,
    -
    3928  1 /*numEras*/,
    -
    3929  kZoneEraAsia_Urumqi /*eras*/,
    -
    3930  nullptr /*targetInfo*/,
    -
    3931 };
    -
    3932 
    -
    3933 //---------------------------------------------------------------------------
    -
    3934 // Zone name: Asia/Yangon
    -
    3935 // Eras: 1
    -
    3936 //---------------------------------------------------------------------------
    -
    3937 
    -
    3938 static const basic::Info::ZoneEra kZoneEraAsia_Yangon[] ACE_TIME_PROGMEM = {
    -
    3939  // 6:30 - %z
    -
    3940  {
    -
    3941  nullptr /*zonePolicy*/,
    -
    3942  "" /*format*/,
    -
    3943  26 /*offsetCode*/,
    -
    3944  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3945  127 /*untilYearTiny*/,
    -
    3946  1 /*untilMonth*/,
    -
    3947  1 /*untilDay*/,
    -
    3948  0 /*untilTimeCode*/,
    -
    3949  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3950  },
    -
    3951 
    -
    3952 };
    -
    3953 
    -
    3954 static const char kZoneNameAsia_Yangon[] ACE_TIME_PROGMEM = "\x04" "Yangon";
    -
    3955 
    -
    3956 const basic::Info::ZoneInfo kZoneAsia_Yangon ACE_TIME_PROGMEM = {
    -
    3957  kZoneNameAsia_Yangon /*name*/,
    -
    3958  0xdd54a8be /*zoneId*/,
    -
    3959  &kZoneContext /*zoneContext*/,
    -
    3960  1 /*numEras*/,
    -
    3961  kZoneEraAsia_Yangon /*eras*/,
    -
    3962  nullptr /*targetInfo*/,
    -
    3963 };
    -
    3964 
    -
    3965 //---------------------------------------------------------------------------
    -
    3966 // Zone name: Asia/Yerevan
    -
    3967 // Eras: 2
    -
    3968 //---------------------------------------------------------------------------
    -
    3969 
    -
    3970 static const basic::Info::ZoneEra kZoneEraAsia_Yerevan[] ACE_TIME_PROGMEM = {
    -
    3971  // 4:00 RussiaAsia %z 2011
    -
    3972  {
    -
    3973  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    3974  "" /*format*/,
    -
    3975  16 /*offsetCode*/,
    -
    3976  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3977  -89 /*untilYearTiny*/,
    -
    3978  1 /*untilMonth*/,
    -
    3979  1 /*untilDay*/,
    -
    3980  0 /*untilTimeCode*/,
    -
    3981  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3982  },
    -
    3983  // 4:00 Armenia %z
    -
    3984  {
    -
    3985  &kZonePolicyArmenia /*zonePolicy*/,
    -
    3986  "" /*format*/,
    -
    3987  16 /*offsetCode*/,
    -
    3988  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3989  127 /*untilYearTiny*/,
    -
    3990  1 /*untilMonth*/,
    -
    3991  1 /*untilDay*/,
    -
    3992  0 /*untilTimeCode*/,
    -
    3993  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3994  },
    -
    3995 
    -
    3996 };
    -
    3997 
    -
    3998 static const char kZoneNameAsia_Yerevan[] ACE_TIME_PROGMEM = "\x04" "Yerevan";
    -
    3999 
    -
    4000 const basic::Info::ZoneInfo kZoneAsia_Yerevan ACE_TIME_PROGMEM = {
    -
    4001  kZoneNameAsia_Yerevan /*name*/,
    -
    4002  0x9185c8cc /*zoneId*/,
    -
    4003  &kZoneContext /*zoneContext*/,
    -
    4004  2 /*numEras*/,
    -
    4005  kZoneEraAsia_Yerevan /*eras*/,
    -
    4006  nullptr /*targetInfo*/,
    -
    4007 };
    -
    4008 
    -
    4009 //---------------------------------------------------------------------------
    -
    4010 // Zone name: Atlantic/Azores
    -
    4011 // Eras: 1
    -
    4012 //---------------------------------------------------------------------------
    -
    4013 
    -
    4014 static const basic::Info::ZoneEra kZoneEraAtlantic_Azores[] ACE_TIME_PROGMEM = {
    -
    4015  // -1:00 EU %z
    -
    4016  {
    -
    4017  &kZonePolicyEU /*zonePolicy*/,
    -
    4018  "" /*format*/,
    -
    4019  -4 /*offsetCode*/,
    -
    4020  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4021  127 /*untilYearTiny*/,
    -
    4022  1 /*untilMonth*/,
    -
    4023  1 /*untilDay*/,
    -
    4024  0 /*untilTimeCode*/,
    -
    4025  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4026  },
    -
    4027 
    -
    4028 };
    -
    4029 
    -
    4030 static const char kZoneNameAtlantic_Azores[] ACE_TIME_PROGMEM = "\x05" "Azores";
    -
    4031 
    -
    4032 const basic::Info::ZoneInfo kZoneAtlantic_Azores ACE_TIME_PROGMEM = {
    -
    4033  kZoneNameAtlantic_Azores /*name*/,
    -
    4034  0xf93ed918 /*zoneId*/,
    -
    4035  &kZoneContext /*zoneContext*/,
    -
    4036  1 /*numEras*/,
    -
    4037  kZoneEraAtlantic_Azores /*eras*/,
    -
    4038  nullptr /*targetInfo*/,
    -
    4039 };
    -
    4040 
    -
    4041 //---------------------------------------------------------------------------
    -
    4042 // Zone name: Atlantic/Bermuda
    -
    4043 // Eras: 1
    -
    4044 //---------------------------------------------------------------------------
    -
    4045 
    -
    4046 static const basic::Info::ZoneEra kZoneEraAtlantic_Bermuda[] ACE_TIME_PROGMEM = {
    -
    4047  // -4:00 US A%sT
    -
    4048  {
    -
    4049  &kZonePolicyUS /*zonePolicy*/,
    -
    4050  "A%T" /*format*/,
    -
    4051  -16 /*offsetCode*/,
    -
    4052  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4053  127 /*untilYearTiny*/,
    -
    4054  1 /*untilMonth*/,
    -
    4055  1 /*untilDay*/,
    -
    4056  0 /*untilTimeCode*/,
    -
    4057  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4058  },
    -
    4059 
    -
    4060 };
    -
    4061 
    -
    4062 static const char kZoneNameAtlantic_Bermuda[] ACE_TIME_PROGMEM = "\x05" "Bermuda";
    -
    4063 
    -
    4064 const basic::Info::ZoneInfo kZoneAtlantic_Bermuda ACE_TIME_PROGMEM = {
    -
    4065  kZoneNameAtlantic_Bermuda /*name*/,
    -
    4066  0x3d4bb1c4 /*zoneId*/,
    -
    4067  &kZoneContext /*zoneContext*/,
    -
    4068  1 /*numEras*/,
    -
    4069  kZoneEraAtlantic_Bermuda /*eras*/,
    -
    4070  nullptr /*targetInfo*/,
    -
    4071 };
    -
    4072 
    -
    4073 //---------------------------------------------------------------------------
    -
    4074 // Zone name: Atlantic/Canary
    -
    4075 // Eras: 1
    -
    4076 //---------------------------------------------------------------------------
    -
    4077 
    -
    4078 static const basic::Info::ZoneEra kZoneEraAtlantic_Canary[] ACE_TIME_PROGMEM = {
    -
    4079  // 0:00 EU WE%sT
    -
    4080  {
    -
    4081  &kZonePolicyEU /*zonePolicy*/,
    -
    4082  "WE%T" /*format*/,
    -
    4083  0 /*offsetCode*/,
    -
    4084  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4085  127 /*untilYearTiny*/,
    -
    4086  1 /*untilMonth*/,
    -
    4087  1 /*untilDay*/,
    -
    4088  0 /*untilTimeCode*/,
    -
    4089  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4090  },
    -
    4091 
    -
    4092 };
    -
    4093 
    -
    4094 static const char kZoneNameAtlantic_Canary[] ACE_TIME_PROGMEM = "\x05" "Canary";
    -
    4095 
    -
    4096 const basic::Info::ZoneInfo kZoneAtlantic_Canary ACE_TIME_PROGMEM = {
    -
    4097  kZoneNameAtlantic_Canary /*name*/,
    -
    4098  0xfc23f2c2 /*zoneId*/,
    -
    4099  &kZoneContext /*zoneContext*/,
    -
    4100  1 /*numEras*/,
    -
    4101  kZoneEraAtlantic_Canary /*eras*/,
    -
    4102  nullptr /*targetInfo*/,
    -
    4103 };
    -
    4104 
    -
    4105 //---------------------------------------------------------------------------
    -
    4106 // Zone name: Atlantic/Cape_Verde
    -
    4107 // Eras: 1
    -
    4108 //---------------------------------------------------------------------------
    -
    4109 
    -
    4110 static const basic::Info::ZoneEra kZoneEraAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = {
    -
    4111  // -1:00 - %z
    -
    4112  {
    -
    4113  nullptr /*zonePolicy*/,
    -
    4114  "" /*format*/,
    -
    4115  -4 /*offsetCode*/,
    -
    4116  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4117  127 /*untilYearTiny*/,
    -
    4118  1 /*untilMonth*/,
    -
    4119  1 /*untilDay*/,
    -
    4120  0 /*untilTimeCode*/,
    -
    4121  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4122  },
    -
    4123 
    -
    4124 };
    -
    4125 
    -
    4126 static const char kZoneNameAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = "\x05" "Cape_Verde";
    -
    4127 
    -
    4128 const basic::Info::ZoneInfo kZoneAtlantic_Cape_Verde ACE_TIME_PROGMEM = {
    -
    4129  kZoneNameAtlantic_Cape_Verde /*name*/,
    -
    4130  0x5c5e1772 /*zoneId*/,
    -
    4131  &kZoneContext /*zoneContext*/,
    -
    4132  1 /*numEras*/,
    -
    4133  kZoneEraAtlantic_Cape_Verde /*eras*/,
    -
    4134  nullptr /*targetInfo*/,
    -
    4135 };
    -
    4136 
    -
    4137 //---------------------------------------------------------------------------
    -
    4138 // Zone name: Atlantic/Faroe
    -
    4139 // Eras: 1
    -
    4140 //---------------------------------------------------------------------------
    -
    4141 
    -
    4142 static const basic::Info::ZoneEra kZoneEraAtlantic_Faroe[] ACE_TIME_PROGMEM = {
    -
    4143  // 0:00 EU WE%sT
    -
    4144  {
    -
    4145  &kZonePolicyEU /*zonePolicy*/,
    -
    4146  "WE%T" /*format*/,
    -
    4147  0 /*offsetCode*/,
    -
    4148  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4149  127 /*untilYearTiny*/,
    -
    4150  1 /*untilMonth*/,
    -
    4151  1 /*untilDay*/,
    -
    4152  0 /*untilTimeCode*/,
    -
    4153  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4154  },
    -
    4155 
    -
    4156 };
    -
    4157 
    -
    4158 static const char kZoneNameAtlantic_Faroe[] ACE_TIME_PROGMEM = "\x05" "Faroe";
    -
    4159 
    -
    4160 const basic::Info::ZoneInfo kZoneAtlantic_Faroe ACE_TIME_PROGMEM = {
    -
    4161  kZoneNameAtlantic_Faroe /*name*/,
    -
    4162  0xe110a971 /*zoneId*/,
    -
    4163  &kZoneContext /*zoneContext*/,
    -
    4164  1 /*numEras*/,
    -
    4165  kZoneEraAtlantic_Faroe /*eras*/,
    -
    4166  nullptr /*targetInfo*/,
    -
    4167 };
    -
    4168 
    -
    4169 //---------------------------------------------------------------------------
    -
    4170 // Zone name: Atlantic/Madeira
    -
    4171 // Eras: 1
    -
    4172 //---------------------------------------------------------------------------
    -
    4173 
    -
    4174 static const basic::Info::ZoneEra kZoneEraAtlantic_Madeira[] ACE_TIME_PROGMEM = {
    -
    4175  // 0:00 EU WE%sT
    -
    4176  {
    -
    4177  &kZonePolicyEU /*zonePolicy*/,
    -
    4178  "WE%T" /*format*/,
    -
    4179  0 /*offsetCode*/,
    -
    4180  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4181  127 /*untilYearTiny*/,
    -
    4182  1 /*untilMonth*/,
    -
    4183  1 /*untilDay*/,
    -
    4184  0 /*untilTimeCode*/,
    -
    4185  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4186  },
    -
    4187 
    -
    4188 };
    -
    4189 
    -
    4190 static const char kZoneNameAtlantic_Madeira[] ACE_TIME_PROGMEM = "\x05" "Madeira";
    -
    4191 
    -
    4192 const basic::Info::ZoneInfo kZoneAtlantic_Madeira ACE_TIME_PROGMEM = {
    -
    4193  kZoneNameAtlantic_Madeira /*name*/,
    -
    4194  0x81b5c037 /*zoneId*/,
    -
    4195  &kZoneContext /*zoneContext*/,
    -
    4196  1 /*numEras*/,
    -
    4197  kZoneEraAtlantic_Madeira /*eras*/,
    -
    4198  nullptr /*targetInfo*/,
    -
    4199 };
    -
    4200 
    -
    4201 //---------------------------------------------------------------------------
    -
    4202 // Zone name: Atlantic/South_Georgia
    -
    4203 // Eras: 1
    -
    4204 //---------------------------------------------------------------------------
    -
    4205 
    -
    4206 static const basic::Info::ZoneEra kZoneEraAtlantic_South_Georgia[] ACE_TIME_PROGMEM = {
    -
    4207  // -2:00 - %z
    -
    4208  {
    -
    4209  nullptr /*zonePolicy*/,
    -
    4210  "" /*format*/,
    -
    4211  -8 /*offsetCode*/,
    -
    4212  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4213  127 /*untilYearTiny*/,
    -
    4214  1 /*untilMonth*/,
    -
    4215  1 /*untilDay*/,
    -
    4216  0 /*untilTimeCode*/,
    -
    4217  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4218  },
    -
    4219 
    -
    4220 };
    -
    4221 
    -
    4222 static const char kZoneNameAtlantic_South_Georgia[] ACE_TIME_PROGMEM = "\x05" "South_Georgia";
    -
    4223 
    -
    4224 const basic::Info::ZoneInfo kZoneAtlantic_South_Georgia ACE_TIME_PROGMEM = {
    -
    4225  kZoneNameAtlantic_South_Georgia /*name*/,
    -
    4226  0x33013174 /*zoneId*/,
    -
    4227  &kZoneContext /*zoneContext*/,
    -
    4228  1 /*numEras*/,
    -
    4229  kZoneEraAtlantic_South_Georgia /*eras*/,
    -
    4230  nullptr /*targetInfo*/,
    -
    4231 };
    -
    4232 
    -
    4233 //---------------------------------------------------------------------------
    -
    4234 // Zone name: Australia/Adelaide
    -
    4235 // Eras: 1
    -
    4236 //---------------------------------------------------------------------------
    -
    4237 
    -
    4238 static const basic::Info::ZoneEra kZoneEraAustralia_Adelaide[] ACE_TIME_PROGMEM = {
    -
    4239  // 9:30 AS AC%sT
    -
    4240  {
    -
    4241  &kZonePolicyAS /*zonePolicy*/,
    -
    4242  "AC%T" /*format*/,
    -
    4243  38 /*offsetCode*/,
    -
    4244  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4245  127 /*untilYearTiny*/,
    -
    4246  1 /*untilMonth*/,
    -
    4247  1 /*untilDay*/,
    -
    4248  0 /*untilTimeCode*/,
    -
    4249  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4250  },
    -
    4251 
    -
    4252 };
    -
    4253 
    -
    4254 static const char kZoneNameAustralia_Adelaide[] ACE_TIME_PROGMEM = "\x06" "Adelaide";
    -
    4255 
    -
    4256 const basic::Info::ZoneInfo kZoneAustralia_Adelaide ACE_TIME_PROGMEM = {
    -
    4257  kZoneNameAustralia_Adelaide /*name*/,
    -
    4258  0x2428e8a3 /*zoneId*/,
    -
    4259  &kZoneContext /*zoneContext*/,
    -
    4260  1 /*numEras*/,
    -
    4261  kZoneEraAustralia_Adelaide /*eras*/,
    -
    4262  nullptr /*targetInfo*/,
    -
    4263 };
    -
    4264 
    -
    4265 //---------------------------------------------------------------------------
    -
    4266 // Zone name: Australia/Brisbane
    -
    4267 // Eras: 1
    -
    4268 //---------------------------------------------------------------------------
    -
    4269 
    -
    4270 static const basic::Info::ZoneEra kZoneEraAustralia_Brisbane[] ACE_TIME_PROGMEM = {
    -
    4271  // 10:00 AQ AE%sT
    -
    4272  {
    -
    4273  &kZonePolicyAQ /*zonePolicy*/,
    -
    4274  "AE%T" /*format*/,
    -
    4275  40 /*offsetCode*/,
    -
    4276  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4277  127 /*untilYearTiny*/,
    -
    4278  1 /*untilMonth*/,
    -
    4279  1 /*untilDay*/,
    -
    4280  0 /*untilTimeCode*/,
    -
    4281  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4282  },
    -
    4283 
    -
    4284 };
    -
    4285 
    -
    4286 static const char kZoneNameAustralia_Brisbane[] ACE_TIME_PROGMEM = "\x06" "Brisbane";
    -
    4287 
    -
    4288 const basic::Info::ZoneInfo kZoneAustralia_Brisbane ACE_TIME_PROGMEM = {
    -
    4289  kZoneNameAustralia_Brisbane /*name*/,
    -
    4290  0x4fedc9c0 /*zoneId*/,
    -
    4291  &kZoneContext /*zoneContext*/,
    -
    4292  1 /*numEras*/,
    -
    4293  kZoneEraAustralia_Brisbane /*eras*/,
    -
    4294  nullptr /*targetInfo*/,
    -
    4295 };
    -
    4296 
    -
    4297 //---------------------------------------------------------------------------
    -
    4298 // Zone name: Australia/Broken_Hill
    -
    4299 // Eras: 2
    -
    4300 //---------------------------------------------------------------------------
    -
    4301 
    -
    4302 static const basic::Info::ZoneEra kZoneEraAustralia_Broken_Hill[] ACE_TIME_PROGMEM = {
    -
    4303  // 9:30 AN AC%sT 2000
    -
    4304  {
    -
    4305  &kZonePolicyAN /*zonePolicy*/,
    -
    4306  "AC%T" /*format*/,
    -
    4307  38 /*offsetCode*/,
    -
    4308  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4309  -100 /*untilYearTiny*/,
    -
    4310  1 /*untilMonth*/,
    -
    4311  1 /*untilDay*/,
    -
    4312  0 /*untilTimeCode*/,
    -
    4313  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4314  },
    -
    4315  // 9:30 AS AC%sT
    -
    4316  {
    -
    4317  &kZonePolicyAS /*zonePolicy*/,
    -
    4318  "AC%T" /*format*/,
    -
    4319  38 /*offsetCode*/,
    -
    4320  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4321  127 /*untilYearTiny*/,
    -
    4322  1 /*untilMonth*/,
    -
    4323  1 /*untilDay*/,
    -
    4324  0 /*untilTimeCode*/,
    -
    4325  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4326  },
    -
    4327 
    -
    4328 };
    -
    4329 
    -
    4330 static const char kZoneNameAustralia_Broken_Hill[] ACE_TIME_PROGMEM = "\x06" "Broken_Hill";
    -
    4331 
    -
    4332 const basic::Info::ZoneInfo kZoneAustralia_Broken_Hill ACE_TIME_PROGMEM = {
    -
    4333  kZoneNameAustralia_Broken_Hill /*name*/,
    -
    4334  0xb06eada3 /*zoneId*/,
    -
    4335  &kZoneContext /*zoneContext*/,
    -
    4336  2 /*numEras*/,
    -
    4337  kZoneEraAustralia_Broken_Hill /*eras*/,
    -
    4338  nullptr /*targetInfo*/,
    -
    4339 };
    -
    4340 
    -
    4341 //---------------------------------------------------------------------------
    -
    4342 // Zone name: Australia/Darwin
    -
    4343 // Eras: 1
    -
    4344 //---------------------------------------------------------------------------
    -
    4345 
    -
    4346 static const basic::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = {
    -
    4347  // 9:30 Aus AC%sT
    -
    4348  {
    -
    4349  &kZonePolicyAus /*zonePolicy*/,
    -
    4350  "AC%T" /*format*/,
    -
    4351  38 /*offsetCode*/,
    -
    4352  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4353  127 /*untilYearTiny*/,
    -
    4354  1 /*untilMonth*/,
    -
    4355  1 /*untilDay*/,
    -
    4356  0 /*untilTimeCode*/,
    -
    4357  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4358  },
    -
    4359 
    -
    4360 };
    -
    4361 
    -
    4362 static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "\x06" "Darwin";
    -
    4363 
    -
    4364 const basic::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = {
    -
    4365  kZoneNameAustralia_Darwin /*name*/,
    -
    4366  0x2876bdff /*zoneId*/,
    -
    4367  &kZoneContext /*zoneContext*/,
    -
    4368  1 /*numEras*/,
    -
    4369  kZoneEraAustralia_Darwin /*eras*/,
    -
    4370  nullptr /*targetInfo*/,
    -
    4371 };
    -
    4372 
    -
    4373 //---------------------------------------------------------------------------
    -
    4374 // Zone name: Australia/Eucla
    -
    4375 // Eras: 1
    -
    4376 //---------------------------------------------------------------------------
    -
    4377 
    -
    4378 static const basic::Info::ZoneEra kZoneEraAustralia_Eucla[] ACE_TIME_PROGMEM = {
    -
    4379  // 8:45 AW %z
    -
    4380  {
    -
    4381  &kZonePolicyAW /*zonePolicy*/,
    -
    4382  "" /*format*/,
    -
    4383  35 /*offsetCode*/,
    -
    4384  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4385  127 /*untilYearTiny*/,
    -
    4386  1 /*untilMonth*/,
    -
    4387  1 /*untilDay*/,
    -
    4388  0 /*untilTimeCode*/,
    -
    4389  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4390  },
    -
    4391 
    -
    4392 };
    -
    4393 
    -
    4394 static const char kZoneNameAustralia_Eucla[] ACE_TIME_PROGMEM = "\x06" "Eucla";
    -
    4395 
    -
    4396 const basic::Info::ZoneInfo kZoneAustralia_Eucla ACE_TIME_PROGMEM = {
    -
    4397  kZoneNameAustralia_Eucla /*name*/,
    -
    4398  0x8cf99e44 /*zoneId*/,
    -
    4399  &kZoneContext /*zoneContext*/,
    -
    4400  1 /*numEras*/,
    -
    4401  kZoneEraAustralia_Eucla /*eras*/,
    -
    4402  nullptr /*targetInfo*/,
    -
    4403 };
    -
    4404 
    -
    4405 //---------------------------------------------------------------------------
    -
    4406 // Zone name: Australia/Hobart
    -
    4407 // Eras: 1
    -
    4408 //---------------------------------------------------------------------------
    -
    4409 
    -
    4410 static const basic::Info::ZoneEra kZoneEraAustralia_Hobart[] ACE_TIME_PROGMEM = {
    -
    4411  // 10:00 AT AE%sT
    -
    4412  {
    -
    4413  &kZonePolicyAT /*zonePolicy*/,
    -
    4414  "AE%T" /*format*/,
    -
    4415  40 /*offsetCode*/,
    -
    4416  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4417  127 /*untilYearTiny*/,
    -
    4418  1 /*untilMonth*/,
    -
    4419  1 /*untilDay*/,
    -
    4420  0 /*untilTimeCode*/,
    -
    4421  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4422  },
    -
    4423 
    -
    4424 };
    -
    4425 
    -
    4426 static const char kZoneNameAustralia_Hobart[] ACE_TIME_PROGMEM = "\x06" "Hobart";
    -
    4427 
    -
    4428 const basic::Info::ZoneInfo kZoneAustralia_Hobart ACE_TIME_PROGMEM = {
    -
    4429  kZoneNameAustralia_Hobart /*name*/,
    -
    4430  0x32bf951a /*zoneId*/,
    -
    4431  &kZoneContext /*zoneContext*/,
    -
    4432  1 /*numEras*/,
    -
    4433  kZoneEraAustralia_Hobart /*eras*/,
    -
    4434  nullptr /*targetInfo*/,
    -
    4435 };
    -
    4436 
    -
    4437 //---------------------------------------------------------------------------
    -
    4438 // Zone name: Australia/Lindeman
    -
    4439 // Eras: 1
    -
    4440 //---------------------------------------------------------------------------
    -
    4441 
    -
    4442 static const basic::Info::ZoneEra kZoneEraAustralia_Lindeman[] ACE_TIME_PROGMEM = {
    -
    4443  // 10:00 Holiday AE%sT
    -
    4444  {
    -
    4445  &kZonePolicyHoliday /*zonePolicy*/,
    -
    4446  "AE%T" /*format*/,
    -
    4447  40 /*offsetCode*/,
    -
    4448  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4449  127 /*untilYearTiny*/,
    -
    4450  1 /*untilMonth*/,
    -
    4451  1 /*untilDay*/,
    -
    4452  0 /*untilTimeCode*/,
    -
    4453  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4454  },
    -
    4455 
    -
    4456 };
    -
    4457 
    -
    4458 static const char kZoneNameAustralia_Lindeman[] ACE_TIME_PROGMEM = "\x06" "Lindeman";
    -
    4459 
    -
    4460 const basic::Info::ZoneInfo kZoneAustralia_Lindeman ACE_TIME_PROGMEM = {
    -
    4461  kZoneNameAustralia_Lindeman /*name*/,
    -
    4462  0xe05029e2 /*zoneId*/,
    -
    4463  &kZoneContext /*zoneContext*/,
    -
    4464  1 /*numEras*/,
    -
    4465  kZoneEraAustralia_Lindeman /*eras*/,
    -
    4466  nullptr /*targetInfo*/,
    -
    4467 };
    -
    4468 
    -
    4469 //---------------------------------------------------------------------------
    -
    4470 // Zone name: Australia/Lord_Howe
    -
    4471 // Eras: 1
    -
    4472 //---------------------------------------------------------------------------
    -
    4473 
    -
    4474 static const basic::Info::ZoneEra kZoneEraAustralia_Lord_Howe[] ACE_TIME_PROGMEM = {
    -
    4475  // 10:30 LH %z
    -
    4476  {
    -
    4477  &kZonePolicyLH /*zonePolicy*/,
    -
    4478  "" /*format*/,
    -
    4479  42 /*offsetCode*/,
    -
    4480  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4481  127 /*untilYearTiny*/,
    -
    4482  1 /*untilMonth*/,
    -
    4483  1 /*untilDay*/,
    -
    4484  0 /*untilTimeCode*/,
    -
    4485  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4486  },
    -
    4487 
    -
    4488 };
    -
    4489 
    -
    4490 static const char kZoneNameAustralia_Lord_Howe[] ACE_TIME_PROGMEM = "\x06" "Lord_Howe";
    -
    4491 
    -
    4492 const basic::Info::ZoneInfo kZoneAustralia_Lord_Howe ACE_TIME_PROGMEM = {
    -
    4493  kZoneNameAustralia_Lord_Howe /*name*/,
    -
    4494  0xa748b67d /*zoneId*/,
    -
    4495  &kZoneContext /*zoneContext*/,
    -
    4496  1 /*numEras*/,
    -
    4497  kZoneEraAustralia_Lord_Howe /*eras*/,
    -
    4498  nullptr /*targetInfo*/,
    -
    4499 };
    -
    4500 
    -
    4501 //---------------------------------------------------------------------------
    -
    4502 // Zone name: Australia/Melbourne
    -
    4503 // Eras: 1
    -
    4504 //---------------------------------------------------------------------------
    -
    4505 
    -
    4506 static const basic::Info::ZoneEra kZoneEraAustralia_Melbourne[] ACE_TIME_PROGMEM = {
    -
    4507  // 10:00 AV AE%sT
    -
    4508  {
    -
    4509  &kZonePolicyAV /*zonePolicy*/,
    -
    4510  "AE%T" /*format*/,
    -
    4511  40 /*offsetCode*/,
    -
    4512  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4513  127 /*untilYearTiny*/,
    -
    4514  1 /*untilMonth*/,
    -
    4515  1 /*untilDay*/,
    -
    4516  0 /*untilTimeCode*/,
    -
    4517  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4518  },
    -
    4519 
    -
    4520 };
    -
    4521 
    -
    4522 static const char kZoneNameAustralia_Melbourne[] ACE_TIME_PROGMEM = "\x06" "Melbourne";
    -
    4523 
    -
    4524 const basic::Info::ZoneInfo kZoneAustralia_Melbourne ACE_TIME_PROGMEM = {
    -
    4525  kZoneNameAustralia_Melbourne /*name*/,
    -
    4526  0x0fe559a3 /*zoneId*/,
    -
    4527  &kZoneContext /*zoneContext*/,
    -
    4528  1 /*numEras*/,
    -
    4529  kZoneEraAustralia_Melbourne /*eras*/,
    -
    4530  nullptr /*targetInfo*/,
    -
    4531 };
    -
    4532 
    -
    4533 //---------------------------------------------------------------------------
    -
    4534 // Zone name: Australia/Perth
    -
    4535 // Eras: 1
    -
    4536 //---------------------------------------------------------------------------
    -
    4537 
    -
    4538 static const basic::Info::ZoneEra kZoneEraAustralia_Perth[] ACE_TIME_PROGMEM = {
    -
    4539  // 8:00 AW AW%sT
    -
    4540  {
    -
    4541  &kZonePolicyAW /*zonePolicy*/,
    -
    4542  "AW%T" /*format*/,
    -
    4543  32 /*offsetCode*/,
    -
    4544  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4545  127 /*untilYearTiny*/,
    -
    4546  1 /*untilMonth*/,
    -
    4547  1 /*untilDay*/,
    -
    4548  0 /*untilTimeCode*/,
    -
    4549  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4550  },
    -
    4551 
    -
    4552 };
    -
    4553 
    -
    4554 static const char kZoneNameAustralia_Perth[] ACE_TIME_PROGMEM = "\x06" "Perth";
    -
    4555 
    -
    4556 const basic::Info::ZoneInfo kZoneAustralia_Perth ACE_TIME_PROGMEM = {
    -
    4557  kZoneNameAustralia_Perth /*name*/,
    -
    4558  0x8db8269d /*zoneId*/,
    -
    4559  &kZoneContext /*zoneContext*/,
    -
    4560  1 /*numEras*/,
    -
    4561  kZoneEraAustralia_Perth /*eras*/,
    -
    4562  nullptr /*targetInfo*/,
    -
    4563 };
    -
    4564 
    -
    4565 //---------------------------------------------------------------------------
    -
    4566 // Zone name: Australia/Sydney
    -
    4567 // Eras: 1
    -
    4568 //---------------------------------------------------------------------------
    -
    4569 
    -
    4570 static const basic::Info::ZoneEra kZoneEraAustralia_Sydney[] ACE_TIME_PROGMEM = {
    -
    4571  // 10:00 AN AE%sT
    -
    4572  {
    -
    4573  &kZonePolicyAN /*zonePolicy*/,
    -
    4574  "AE%T" /*format*/,
    -
    4575  40 /*offsetCode*/,
    -
    4576  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4577  127 /*untilYearTiny*/,
    -
    4578  1 /*untilMonth*/,
    -
    4579  1 /*untilDay*/,
    -
    4580  0 /*untilTimeCode*/,
    -
    4581  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4582  },
    -
    4583 
    -
    4584 };
    -
    4585 
    -
    4586 static const char kZoneNameAustralia_Sydney[] ACE_TIME_PROGMEM = "\x06" "Sydney";
    -
    4587 
    -
    4588 const basic::Info::ZoneInfo kZoneAustralia_Sydney ACE_TIME_PROGMEM = {
    -
    4589  kZoneNameAustralia_Sydney /*name*/,
    -
    4590  0x4d1e9776 /*zoneId*/,
    -
    4591  &kZoneContext /*zoneContext*/,
    -
    4592  1 /*numEras*/,
    -
    4593  kZoneEraAustralia_Sydney /*eras*/,
    -
    4594  nullptr /*targetInfo*/,
    -
    4595 };
    -
    4596 
    -
    4597 //---------------------------------------------------------------------------
    -
    4598 // Zone name: Etc/GMT
    -
    4599 // Eras: 1
    -
    4600 //---------------------------------------------------------------------------
    -
    4601 
    -
    4602 static const basic::Info::ZoneEra kZoneEraEtc_GMT[] ACE_TIME_PROGMEM = {
    -
    4603  // 0 - GMT
    -
    4604  {
    -
    4605  nullptr /*zonePolicy*/,
    -
    4606  "GMT" /*format*/,
    -
    4607  0 /*offsetCode*/,
    -
    4608  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4609  127 /*untilYearTiny*/,
    -
    4610  1 /*untilMonth*/,
    -
    4611  1 /*untilDay*/,
    -
    4612  0 /*untilTimeCode*/,
    -
    4613  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4614  },
    -
    4615 
    -
    4616 };
    -
    4617 
    -
    4618 static const char kZoneNameEtc_GMT[] ACE_TIME_PROGMEM = "\x08" "GMT";
    -
    4619 
    -
    4620 const basic::Info::ZoneInfo kZoneEtc_GMT ACE_TIME_PROGMEM = {
    -
    4621  kZoneNameEtc_GMT /*name*/,
    -
    4622  0xd8e2de58 /*zoneId*/,
    -
    4623  &kZoneContext /*zoneContext*/,
    -
    4624  1 /*numEras*/,
    -
    4625  kZoneEraEtc_GMT /*eras*/,
    -
    4626  nullptr /*targetInfo*/,
    -
    4627 };
    -
    4628 
    -
    4629 //---------------------------------------------------------------------------
    -
    4630 // Zone name: Etc/GMT+1
    -
    4631 // Eras: 1
    -
    4632 //---------------------------------------------------------------------------
    -
    4633 
    -
    4634 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = {
    -
    4635  // -1 - %z
    -
    4636  {
    -
    4637  nullptr /*zonePolicy*/,
    -
    4638  "" /*format*/,
    -
    4639  -4 /*offsetCode*/,
    -
    4640  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4641  127 /*untilYearTiny*/,
    -
    4642  1 /*untilMonth*/,
    -
    4643  1 /*untilDay*/,
    -
    4644  0 /*untilTimeCode*/,
    -
    4645  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4646  },
    -
    4647 
    -
    4648 };
    -
    4649 
    -
    4650 static const char kZoneNameEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = "\x08" "GMT+1";
    -
    4651 
    -
    4652 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_1 ACE_TIME_PROGMEM = {
    -
    4653  kZoneNameEtc_GMT_PLUS_1 /*name*/,
    -
    4654  0x9d13da14 /*zoneId*/,
    -
    4655  &kZoneContext /*zoneContext*/,
    -
    4656  1 /*numEras*/,
    -
    4657  kZoneEraEtc_GMT_PLUS_1 /*eras*/,
    -
    4658  nullptr /*targetInfo*/,
    -
    4659 };
    -
    4660 
    -
    4661 //---------------------------------------------------------------------------
    -
    4662 // Zone name: Etc/GMT+10
    -
    4663 // Eras: 1
    -
    4664 //---------------------------------------------------------------------------
    -
    4665 
    -
    4666 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = {
    -
    4667  // -10 - %z
    -
    4668  {
    -
    4669  nullptr /*zonePolicy*/,
    -
    4670  "" /*format*/,
    -
    4671  -40 /*offsetCode*/,
    -
    4672  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4673  127 /*untilYearTiny*/,
    -
    4674  1 /*untilMonth*/,
    -
    4675  1 /*untilDay*/,
    -
    4676  0 /*untilTimeCode*/,
    -
    4677  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4678  },
    -
    4679 
    -
    4680 };
    -
    4681 
    -
    4682 static const char kZoneNameEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = "\x08" "GMT+10";
    -
    4683 
    -
    4684 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_10 ACE_TIME_PROGMEM = {
    -
    4685  kZoneNameEtc_GMT_PLUS_10 /*name*/,
    -
    4686  0x3f8f1cc4 /*zoneId*/,
    -
    4687  &kZoneContext /*zoneContext*/,
    -
    4688  1 /*numEras*/,
    -
    4689  kZoneEraEtc_GMT_PLUS_10 /*eras*/,
    -
    4690  nullptr /*targetInfo*/,
    -
    4691 };
    -
    4692 
    -
    4693 //---------------------------------------------------------------------------
    -
    4694 // Zone name: Etc/GMT+11
    -
    4695 // Eras: 1
    -
    4696 //---------------------------------------------------------------------------
    -
    4697 
    -
    4698 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = {
    -
    4699  // -11 - %z
    -
    4700  {
    -
    4701  nullptr /*zonePolicy*/,
    -
    4702  "" /*format*/,
    -
    4703  -44 /*offsetCode*/,
    -
    4704  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4705  127 /*untilYearTiny*/,
    -
    4706  1 /*untilMonth*/,
    -
    4707  1 /*untilDay*/,
    -
    4708  0 /*untilTimeCode*/,
    -
    4709  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4710  },
    -
    4711 
    -
    4712 };
    -
    4713 
    -
    4714 static const char kZoneNameEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = "\x08" "GMT+11";
    -
    4715 
    -
    4716 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_11 ACE_TIME_PROGMEM = {
    -
    4717  kZoneNameEtc_GMT_PLUS_11 /*name*/,
    -
    4718  0x3f8f1cc5 /*zoneId*/,
    -
    4719  &kZoneContext /*zoneContext*/,
    -
    4720  1 /*numEras*/,
    -
    4721  kZoneEraEtc_GMT_PLUS_11 /*eras*/,
    -
    4722  nullptr /*targetInfo*/,
    -
    4723 };
    -
    4724 
    -
    4725 //---------------------------------------------------------------------------
    -
    4726 // Zone name: Etc/GMT+12
    -
    4727 // Eras: 1
    -
    4728 //---------------------------------------------------------------------------
    -
    4729 
    -
    4730 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = {
    -
    4731  // -12 - %z
    -
    4732  {
    -
    4733  nullptr /*zonePolicy*/,
    -
    4734  "" /*format*/,
    -
    4735  -48 /*offsetCode*/,
    -
    4736  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4737  127 /*untilYearTiny*/,
    -
    4738  1 /*untilMonth*/,
    -
    4739  1 /*untilDay*/,
    -
    4740  0 /*untilTimeCode*/,
    -
    4741  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4742  },
    -
    4743 
    -
    4744 };
    -
    4745 
    -
    4746 static const char kZoneNameEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = "\x08" "GMT+12";
    -
    4747 
    -
    4748 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_12 ACE_TIME_PROGMEM = {
    -
    4749  kZoneNameEtc_GMT_PLUS_12 /*name*/,
    -
    4750  0x3f8f1cc6 /*zoneId*/,
    -
    4751  &kZoneContext /*zoneContext*/,
    -
    4752  1 /*numEras*/,
    -
    4753  kZoneEraEtc_GMT_PLUS_12 /*eras*/,
    -
    4754  nullptr /*targetInfo*/,
    -
    4755 };
    -
    4756 
    -
    4757 //---------------------------------------------------------------------------
    -
    4758 // Zone name: Etc/GMT+2
    -
    4759 // Eras: 1
    -
    4760 //---------------------------------------------------------------------------
    -
    4761 
    -
    4762 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = {
    -
    4763  // -2 - %z
    -
    4764  {
    -
    4765  nullptr /*zonePolicy*/,
    -
    4766  "" /*format*/,
    -
    4767  -8 /*offsetCode*/,
    -
    4768  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4769  127 /*untilYearTiny*/,
    -
    4770  1 /*untilMonth*/,
    -
    4771  1 /*untilDay*/,
    -
    4772  0 /*untilTimeCode*/,
    -
    4773  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4774  },
    -
    4775 
    -
    4776 };
    -
    4777 
    -
    4778 static const char kZoneNameEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = "\x08" "GMT+2";
    -
    4779 
    -
    4780 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_2 ACE_TIME_PROGMEM = {
    -
    4781  kZoneNameEtc_GMT_PLUS_2 /*name*/,
    -
    4782  0x9d13da15 /*zoneId*/,
    -
    4783  &kZoneContext /*zoneContext*/,
    -
    4784  1 /*numEras*/,
    -
    4785  kZoneEraEtc_GMT_PLUS_2 /*eras*/,
    -
    4786  nullptr /*targetInfo*/,
    -
    4787 };
    -
    4788 
    -
    4789 //---------------------------------------------------------------------------
    -
    4790 // Zone name: Etc/GMT+3
    -
    4791 // Eras: 1
    -
    4792 //---------------------------------------------------------------------------
    -
    4793 
    -
    4794 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = {
    -
    4795  // -3 - %z
    -
    4796  {
    -
    4797  nullptr /*zonePolicy*/,
    -
    4798  "" /*format*/,
    -
    4799  -12 /*offsetCode*/,
    -
    4800  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4801  127 /*untilYearTiny*/,
    -
    4802  1 /*untilMonth*/,
    -
    4803  1 /*untilDay*/,
    -
    4804  0 /*untilTimeCode*/,
    -
    4805  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4806  },
    -
    4807 
    -
    4808 };
    -
    4809 
    -
    4810 static const char kZoneNameEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = "\x08" "GMT+3";
    -
    4811 
    -
    4812 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_3 ACE_TIME_PROGMEM = {
    -
    4813  kZoneNameEtc_GMT_PLUS_3 /*name*/,
    -
    4814  0x9d13da16 /*zoneId*/,
    -
    4815  &kZoneContext /*zoneContext*/,
    -
    4816  1 /*numEras*/,
    -
    4817  kZoneEraEtc_GMT_PLUS_3 /*eras*/,
    -
    4818  nullptr /*targetInfo*/,
    -
    4819 };
    -
    4820 
    -
    4821 //---------------------------------------------------------------------------
    -
    4822 // Zone name: Etc/GMT+4
    -
    4823 // Eras: 1
    -
    4824 //---------------------------------------------------------------------------
    -
    4825 
    -
    4826 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = {
    -
    4827  // -4 - %z
    -
    4828  {
    -
    4829  nullptr /*zonePolicy*/,
    -
    4830  "" /*format*/,
    -
    4831  -16 /*offsetCode*/,
    -
    4832  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4833  127 /*untilYearTiny*/,
    -
    4834  1 /*untilMonth*/,
    -
    4835  1 /*untilDay*/,
    -
    4836  0 /*untilTimeCode*/,
    -
    4837  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4838  },
    -
    4839 
    -
    4840 };
    -
    4841 
    -
    4842 static const char kZoneNameEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = "\x08" "GMT+4";
    -
    4843 
    -
    4844 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_4 ACE_TIME_PROGMEM = {
    -
    4845  kZoneNameEtc_GMT_PLUS_4 /*name*/,
    -
    4846  0x9d13da17 /*zoneId*/,
    -
    4847  &kZoneContext /*zoneContext*/,
    -
    4848  1 /*numEras*/,
    -
    4849  kZoneEraEtc_GMT_PLUS_4 /*eras*/,
    -
    4850  nullptr /*targetInfo*/,
    -
    4851 };
    -
    4852 
    -
    4853 //---------------------------------------------------------------------------
    -
    4854 // Zone name: Etc/GMT+5
    -
    4855 // Eras: 1
    -
    4856 //---------------------------------------------------------------------------
    -
    4857 
    -
    4858 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = {
    -
    4859  // -5 - %z
    -
    4860  {
    -
    4861  nullptr /*zonePolicy*/,
    -
    4862  "" /*format*/,
    -
    4863  -20 /*offsetCode*/,
    -
    4864  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4865  127 /*untilYearTiny*/,
    -
    4866  1 /*untilMonth*/,
    -
    4867  1 /*untilDay*/,
    -
    4868  0 /*untilTimeCode*/,
    -
    4869  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4870  },
    -
    4871 
    -
    4872 };
    -
    4873 
    -
    4874 static const char kZoneNameEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = "\x08" "GMT+5";
    -
    4875 
    -
    4876 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_5 ACE_TIME_PROGMEM = {
    -
    4877  kZoneNameEtc_GMT_PLUS_5 /*name*/,
    -
    4878  0x9d13da18 /*zoneId*/,
    -
    4879  &kZoneContext /*zoneContext*/,
    -
    4880  1 /*numEras*/,
    -
    4881  kZoneEraEtc_GMT_PLUS_5 /*eras*/,
    -
    4882  nullptr /*targetInfo*/,
    -
    4883 };
    -
    4884 
    -
    4885 //---------------------------------------------------------------------------
    -
    4886 // Zone name: Etc/GMT+6
    -
    4887 // Eras: 1
    -
    4888 //---------------------------------------------------------------------------
    -
    4889 
    -
    4890 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = {
    -
    4891  // -6 - %z
    -
    4892  {
    -
    4893  nullptr /*zonePolicy*/,
    -
    4894  "" /*format*/,
    -
    4895  -24 /*offsetCode*/,
    -
    4896  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4897  127 /*untilYearTiny*/,
    -
    4898  1 /*untilMonth*/,
    -
    4899  1 /*untilDay*/,
    -
    4900  0 /*untilTimeCode*/,
    -
    4901  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4902  },
    -
    4903 
    -
    4904 };
    -
    4905 
    -
    4906 static const char kZoneNameEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = "\x08" "GMT+6";
    -
    4907 
    -
    4908 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_6 ACE_TIME_PROGMEM = {
    -
    4909  kZoneNameEtc_GMT_PLUS_6 /*name*/,
    -
    4910  0x9d13da19 /*zoneId*/,
    -
    4911  &kZoneContext /*zoneContext*/,
    -
    4912  1 /*numEras*/,
    -
    4913  kZoneEraEtc_GMT_PLUS_6 /*eras*/,
    -
    4914  nullptr /*targetInfo*/,
    -
    4915 };
    -
    4916 
    -
    4917 //---------------------------------------------------------------------------
    -
    4918 // Zone name: Etc/GMT+7
    -
    4919 // Eras: 1
    -
    4920 //---------------------------------------------------------------------------
    -
    4921 
    -
    4922 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = {
    -
    4923  // -7 - %z
    -
    4924  {
    -
    4925  nullptr /*zonePolicy*/,
    -
    4926  "" /*format*/,
    -
    4927  -28 /*offsetCode*/,
    -
    4928  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4929  127 /*untilYearTiny*/,
    -
    4930  1 /*untilMonth*/,
    -
    4931  1 /*untilDay*/,
    -
    4932  0 /*untilTimeCode*/,
    -
    4933  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4934  },
    -
    4935 
    -
    4936 };
    -
    4937 
    -
    4938 static const char kZoneNameEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = "\x08" "GMT+7";
    -
    4939 
    -
    4940 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_7 ACE_TIME_PROGMEM = {
    -
    4941  kZoneNameEtc_GMT_PLUS_7 /*name*/,
    -
    4942  0x9d13da1a /*zoneId*/,
    -
    4943  &kZoneContext /*zoneContext*/,
    -
    4944  1 /*numEras*/,
    -
    4945  kZoneEraEtc_GMT_PLUS_7 /*eras*/,
    -
    4946  nullptr /*targetInfo*/,
    -
    4947 };
    -
    4948 
    -
    4949 //---------------------------------------------------------------------------
    -
    4950 // Zone name: Etc/GMT+8
    -
    4951 // Eras: 1
    -
    4952 //---------------------------------------------------------------------------
    -
    4953 
    -
    4954 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = {
    -
    4955  // -8 - %z
    -
    4956  {
    -
    4957  nullptr /*zonePolicy*/,
    -
    4958  "" /*format*/,
    -
    4959  -32 /*offsetCode*/,
    -
    4960  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4961  127 /*untilYearTiny*/,
    -
    4962  1 /*untilMonth*/,
    -
    4963  1 /*untilDay*/,
    -
    4964  0 /*untilTimeCode*/,
    -
    4965  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4966  },
    -
    4967 
    -
    4968 };
    -
    4969 
    -
    4970 static const char kZoneNameEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = "\x08" "GMT+8";
    -
    4971 
    -
    4972 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_8 ACE_TIME_PROGMEM = {
    -
    4973  kZoneNameEtc_GMT_PLUS_8 /*name*/,
    -
    4974  0x9d13da1b /*zoneId*/,
    -
    4975  &kZoneContext /*zoneContext*/,
    -
    4976  1 /*numEras*/,
    -
    4977  kZoneEraEtc_GMT_PLUS_8 /*eras*/,
    -
    4978  nullptr /*targetInfo*/,
    -
    4979 };
    -
    4980 
    -
    4981 //---------------------------------------------------------------------------
    -
    4982 // Zone name: Etc/GMT+9
    -
    4983 // Eras: 1
    -
    4984 //---------------------------------------------------------------------------
    -
    4985 
    -
    4986 static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = {
    -
    4987  // -9 - %z
    -
    4988  {
    -
    4989  nullptr /*zonePolicy*/,
    -
    4990  "" /*format*/,
    -
    4991  -36 /*offsetCode*/,
    -
    4992  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4993  127 /*untilYearTiny*/,
    -
    4994  1 /*untilMonth*/,
    -
    4995  1 /*untilDay*/,
    -
    4996  0 /*untilTimeCode*/,
    -
    4997  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4998  },
    -
    4999 
    -
    5000 };
    -
    5001 
    -
    5002 static const char kZoneNameEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = "\x08" "GMT+9";
    -
    5003 
    -
    5004 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_9 ACE_TIME_PROGMEM = {
    -
    5005  kZoneNameEtc_GMT_PLUS_9 /*name*/,
    -
    5006  0x9d13da1c /*zoneId*/,
    -
    5007  &kZoneContext /*zoneContext*/,
    -
    5008  1 /*numEras*/,
    -
    5009  kZoneEraEtc_GMT_PLUS_9 /*eras*/,
    -
    5010  nullptr /*targetInfo*/,
    -
    5011 };
    -
    5012 
    -
    5013 //---------------------------------------------------------------------------
    -
    5014 // Zone name: Etc/GMT-1
    -
    5015 // Eras: 1
    -
    5016 //---------------------------------------------------------------------------
    -
    5017 
    -
    5018 static const basic::Info::ZoneEra kZoneEraEtc_GMT_1[] ACE_TIME_PROGMEM = {
    -
    5019  // 1 - %z
    -
    5020  {
    -
    5021  nullptr /*zonePolicy*/,
    -
    5022  "" /*format*/,
    -
    5023  4 /*offsetCode*/,
    -
    5024  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5025  127 /*untilYearTiny*/,
    -
    5026  1 /*untilMonth*/,
    -
    5027  1 /*untilDay*/,
    -
    5028  0 /*untilTimeCode*/,
    -
    5029  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5030  },
    -
    5031 
    -
    5032 };
    -
    5033 
    -
    5034 static const char kZoneNameEtc_GMT_1[] ACE_TIME_PROGMEM = "\x08" "GMT-1";
    -
    5035 
    -
    5036 const basic::Info::ZoneInfo kZoneEtc_GMT_1 ACE_TIME_PROGMEM = {
    -
    5037  kZoneNameEtc_GMT_1 /*name*/,
    -
    5038  0x9d13da56 /*zoneId*/,
    -
    5039  &kZoneContext /*zoneContext*/,
    -
    5040  1 /*numEras*/,
    -
    5041  kZoneEraEtc_GMT_1 /*eras*/,
    -
    5042  nullptr /*targetInfo*/,
    -
    5043 };
    -
    5044 
    -
    5045 //---------------------------------------------------------------------------
    -
    5046 // Zone name: Etc/GMT-10
    -
    5047 // Eras: 1
    -
    5048 //---------------------------------------------------------------------------
    -
    5049 
    -
    5050 static const basic::Info::ZoneEra kZoneEraEtc_GMT_10[] ACE_TIME_PROGMEM = {
    -
    5051  // 10 - %z
    -
    5052  {
    -
    5053  nullptr /*zonePolicy*/,
    -
    5054  "" /*format*/,
    -
    5055  40 /*offsetCode*/,
    -
    5056  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5057  127 /*untilYearTiny*/,
    -
    5058  1 /*untilMonth*/,
    -
    5059  1 /*untilDay*/,
    -
    5060  0 /*untilTimeCode*/,
    -
    5061  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5062  },
    -
    5063 
    -
    5064 };
    -
    5065 
    -
    5066 static const char kZoneNameEtc_GMT_10[] ACE_TIME_PROGMEM = "\x08" "GMT-10";
    -
    5067 
    -
    5068 const basic::Info::ZoneInfo kZoneEtc_GMT_10 ACE_TIME_PROGMEM = {
    -
    5069  kZoneNameEtc_GMT_10 /*name*/,
    -
    5070  0x3f8f2546 /*zoneId*/,
    -
    5071  &kZoneContext /*zoneContext*/,
    -
    5072  1 /*numEras*/,
    -
    5073  kZoneEraEtc_GMT_10 /*eras*/,
    -
    5074  nullptr /*targetInfo*/,
    -
    5075 };
    -
    5076 
    -
    5077 //---------------------------------------------------------------------------
    -
    5078 // Zone name: Etc/GMT-11
    -
    5079 // Eras: 1
    -
    5080 //---------------------------------------------------------------------------
    -
    5081 
    -
    5082 static const basic::Info::ZoneEra kZoneEraEtc_GMT_11[] ACE_TIME_PROGMEM = {
    -
    5083  // 11 - %z
    -
    5084  {
    -
    5085  nullptr /*zonePolicy*/,
    -
    5086  "" /*format*/,
    -
    5087  44 /*offsetCode*/,
    -
    5088  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5089  127 /*untilYearTiny*/,
    -
    5090  1 /*untilMonth*/,
    -
    5091  1 /*untilDay*/,
    -
    5092  0 /*untilTimeCode*/,
    -
    5093  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5094  },
    -
    5095 
    -
    5096 };
    -
    5097 
    -
    5098 static const char kZoneNameEtc_GMT_11[] ACE_TIME_PROGMEM = "\x08" "GMT-11";
    -
    5099 
    -
    5100 const basic::Info::ZoneInfo kZoneEtc_GMT_11 ACE_TIME_PROGMEM = {
    -
    5101  kZoneNameEtc_GMT_11 /*name*/,
    -
    5102  0x3f8f2547 /*zoneId*/,
    -
    5103  &kZoneContext /*zoneContext*/,
    -
    5104  1 /*numEras*/,
    -
    5105  kZoneEraEtc_GMT_11 /*eras*/,
    -
    5106  nullptr /*targetInfo*/,
    -
    5107 };
    -
    5108 
    -
    5109 //---------------------------------------------------------------------------
    -
    5110 // Zone name: Etc/GMT-12
    -
    5111 // Eras: 1
    -
    5112 //---------------------------------------------------------------------------
    -
    5113 
    -
    5114 static const basic::Info::ZoneEra kZoneEraEtc_GMT_12[] ACE_TIME_PROGMEM = {
    -
    5115  // 12 - %z
    -
    5116  {
    -
    5117  nullptr /*zonePolicy*/,
    -
    5118  "" /*format*/,
    -
    5119  48 /*offsetCode*/,
    -
    5120  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5121  127 /*untilYearTiny*/,
    -
    5122  1 /*untilMonth*/,
    -
    5123  1 /*untilDay*/,
    -
    5124  0 /*untilTimeCode*/,
    -
    5125  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5126  },
    -
    5127 
    -
    5128 };
    -
    5129 
    -
    5130 static const char kZoneNameEtc_GMT_12[] ACE_TIME_PROGMEM = "\x08" "GMT-12";
    -
    5131 
    -
    5132 const basic::Info::ZoneInfo kZoneEtc_GMT_12 ACE_TIME_PROGMEM = {
    -
    5133  kZoneNameEtc_GMT_12 /*name*/,
    -
    5134  0x3f8f2548 /*zoneId*/,
    -
    5135  &kZoneContext /*zoneContext*/,
    -
    5136  1 /*numEras*/,
    -
    5137  kZoneEraEtc_GMT_12 /*eras*/,
    -
    5138  nullptr /*targetInfo*/,
    -
    5139 };
    -
    5140 
    -
    5141 //---------------------------------------------------------------------------
    -
    5142 // Zone name: Etc/GMT-13
    -
    5143 // Eras: 1
    -
    5144 //---------------------------------------------------------------------------
    -
    5145 
    -
    5146 static const basic::Info::ZoneEra kZoneEraEtc_GMT_13[] ACE_TIME_PROGMEM = {
    -
    5147  // 13 - %z
    -
    5148  {
    -
    5149  nullptr /*zonePolicy*/,
    -
    5150  "" /*format*/,
    -
    5151  52 /*offsetCode*/,
    -
    5152  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5153  127 /*untilYearTiny*/,
    -
    5154  1 /*untilMonth*/,
    -
    5155  1 /*untilDay*/,
    -
    5156  0 /*untilTimeCode*/,
    -
    5157  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5158  },
    -
    5159 
    -
    5160 };
    -
    5161 
    -
    5162 static const char kZoneNameEtc_GMT_13[] ACE_TIME_PROGMEM = "\x08" "GMT-13";
    -
    5163 
    -
    5164 const basic::Info::ZoneInfo kZoneEtc_GMT_13 ACE_TIME_PROGMEM = {
    -
    5165  kZoneNameEtc_GMT_13 /*name*/,
    -
    5166  0x3f8f2549 /*zoneId*/,
    -
    5167  &kZoneContext /*zoneContext*/,
    -
    5168  1 /*numEras*/,
    -
    5169  kZoneEraEtc_GMT_13 /*eras*/,
    -
    5170  nullptr /*targetInfo*/,
    -
    5171 };
    -
    5172 
    -
    5173 //---------------------------------------------------------------------------
    -
    5174 // Zone name: Etc/GMT-14
    -
    5175 // Eras: 1
    -
    5176 //---------------------------------------------------------------------------
    -
    5177 
    -
    5178 static const basic::Info::ZoneEra kZoneEraEtc_GMT_14[] ACE_TIME_PROGMEM = {
    -
    5179  // 14 - %z
    -
    5180  {
    -
    5181  nullptr /*zonePolicy*/,
    -
    5182  "" /*format*/,
    -
    5183  56 /*offsetCode*/,
    -
    5184  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5185  127 /*untilYearTiny*/,
    -
    5186  1 /*untilMonth*/,
    -
    5187  1 /*untilDay*/,
    -
    5188  0 /*untilTimeCode*/,
    -
    5189  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5190  },
    -
    5191 
    -
    5192 };
    -
    5193 
    -
    5194 static const char kZoneNameEtc_GMT_14[] ACE_TIME_PROGMEM = "\x08" "GMT-14";
    -
    5195 
    -
    5196 const basic::Info::ZoneInfo kZoneEtc_GMT_14 ACE_TIME_PROGMEM = {
    -
    5197  kZoneNameEtc_GMT_14 /*name*/,
    -
    5198  0x3f8f254a /*zoneId*/,
    -
    5199  &kZoneContext /*zoneContext*/,
    -
    5200  1 /*numEras*/,
    -
    5201  kZoneEraEtc_GMT_14 /*eras*/,
    -
    5202  nullptr /*targetInfo*/,
    -
    5203 };
    -
    5204 
    -
    5205 //---------------------------------------------------------------------------
    -
    5206 // Zone name: Etc/GMT-2
    -
    5207 // Eras: 1
    -
    5208 //---------------------------------------------------------------------------
    -
    5209 
    -
    5210 static const basic::Info::ZoneEra kZoneEraEtc_GMT_2[] ACE_TIME_PROGMEM = {
    -
    5211  // 2 - %z
    -
    5212  {
    -
    5213  nullptr /*zonePolicy*/,
    -
    5214  "" /*format*/,
    -
    5215  8 /*offsetCode*/,
    -
    5216  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5217  127 /*untilYearTiny*/,
    -
    5218  1 /*untilMonth*/,
    -
    5219  1 /*untilDay*/,
    -
    5220  0 /*untilTimeCode*/,
    -
    5221  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5222  },
    -
    5223 
    -
    5224 };
    -
    5225 
    -
    5226 static const char kZoneNameEtc_GMT_2[] ACE_TIME_PROGMEM = "\x08" "GMT-2";
    -
    5227 
    -
    5228 const basic::Info::ZoneInfo kZoneEtc_GMT_2 ACE_TIME_PROGMEM = {
    -
    5229  kZoneNameEtc_GMT_2 /*name*/,
    -
    5230  0x9d13da57 /*zoneId*/,
    -
    5231  &kZoneContext /*zoneContext*/,
    -
    5232  1 /*numEras*/,
    -
    5233  kZoneEraEtc_GMT_2 /*eras*/,
    -
    5234  nullptr /*targetInfo*/,
    -
    5235 };
    -
    5236 
    -
    5237 //---------------------------------------------------------------------------
    -
    5238 // Zone name: Etc/GMT-3
    -
    5239 // Eras: 1
    -
    5240 //---------------------------------------------------------------------------
    -
    5241 
    -
    5242 static const basic::Info::ZoneEra kZoneEraEtc_GMT_3[] ACE_TIME_PROGMEM = {
    -
    5243  // 3 - %z
    -
    5244  {
    -
    5245  nullptr /*zonePolicy*/,
    -
    5246  "" /*format*/,
    -
    5247  12 /*offsetCode*/,
    -
    5248  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5249  127 /*untilYearTiny*/,
    -
    5250  1 /*untilMonth*/,
    -
    5251  1 /*untilDay*/,
    -
    5252  0 /*untilTimeCode*/,
    -
    5253  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5254  },
    -
    5255 
    -
    5256 };
    -
    5257 
    -
    5258 static const char kZoneNameEtc_GMT_3[] ACE_TIME_PROGMEM = "\x08" "GMT-3";
    -
    5259 
    -
    5260 const basic::Info::ZoneInfo kZoneEtc_GMT_3 ACE_TIME_PROGMEM = {
    -
    5261  kZoneNameEtc_GMT_3 /*name*/,
    -
    5262  0x9d13da58 /*zoneId*/,
    -
    5263  &kZoneContext /*zoneContext*/,
    -
    5264  1 /*numEras*/,
    -
    5265  kZoneEraEtc_GMT_3 /*eras*/,
    -
    5266  nullptr /*targetInfo*/,
    -
    5267 };
    -
    5268 
    -
    5269 //---------------------------------------------------------------------------
    -
    5270 // Zone name: Etc/GMT-4
    -
    5271 // Eras: 1
    -
    5272 //---------------------------------------------------------------------------
    -
    5273 
    -
    5274 static const basic::Info::ZoneEra kZoneEraEtc_GMT_4[] ACE_TIME_PROGMEM = {
    -
    5275  // 4 - %z
    -
    5276  {
    -
    5277  nullptr /*zonePolicy*/,
    -
    5278  "" /*format*/,
    -
    5279  16 /*offsetCode*/,
    -
    5280  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5281  127 /*untilYearTiny*/,
    -
    5282  1 /*untilMonth*/,
    -
    5283  1 /*untilDay*/,
    -
    5284  0 /*untilTimeCode*/,
    -
    5285  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5286  },
    -
    5287 
    -
    5288 };
    -
    5289 
    -
    5290 static const char kZoneNameEtc_GMT_4[] ACE_TIME_PROGMEM = "\x08" "GMT-4";
    -
    5291 
    -
    5292 const basic::Info::ZoneInfo kZoneEtc_GMT_4 ACE_TIME_PROGMEM = {
    -
    5293  kZoneNameEtc_GMT_4 /*name*/,
    -
    5294  0x9d13da59 /*zoneId*/,
    -
    5295  &kZoneContext /*zoneContext*/,
    -
    5296  1 /*numEras*/,
    -
    5297  kZoneEraEtc_GMT_4 /*eras*/,
    -
    5298  nullptr /*targetInfo*/,
    -
    5299 };
    -
    5300 
    -
    5301 //---------------------------------------------------------------------------
    -
    5302 // Zone name: Etc/GMT-5
    -
    5303 // Eras: 1
    -
    5304 //---------------------------------------------------------------------------
    -
    5305 
    -
    5306 static const basic::Info::ZoneEra kZoneEraEtc_GMT_5[] ACE_TIME_PROGMEM = {
    -
    5307  // 5 - %z
    -
    5308  {
    -
    5309  nullptr /*zonePolicy*/,
    -
    5310  "" /*format*/,
    -
    5311  20 /*offsetCode*/,
    -
    5312  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5313  127 /*untilYearTiny*/,
    -
    5314  1 /*untilMonth*/,
    -
    5315  1 /*untilDay*/,
    -
    5316  0 /*untilTimeCode*/,
    -
    5317  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5318  },
    -
    5319 
    -
    5320 };
    -
    5321 
    -
    5322 static const char kZoneNameEtc_GMT_5[] ACE_TIME_PROGMEM = "\x08" "GMT-5";
    -
    5323 
    -
    5324 const basic::Info::ZoneInfo kZoneEtc_GMT_5 ACE_TIME_PROGMEM = {
    -
    5325  kZoneNameEtc_GMT_5 /*name*/,
    -
    5326  0x9d13da5a /*zoneId*/,
    -
    5327  &kZoneContext /*zoneContext*/,
    -
    5328  1 /*numEras*/,
    -
    5329  kZoneEraEtc_GMT_5 /*eras*/,
    -
    5330  nullptr /*targetInfo*/,
    -
    5331 };
    -
    5332 
    -
    5333 //---------------------------------------------------------------------------
    -
    5334 // Zone name: Etc/GMT-6
    -
    5335 // Eras: 1
    -
    5336 //---------------------------------------------------------------------------
    -
    5337 
    -
    5338 static const basic::Info::ZoneEra kZoneEraEtc_GMT_6[] ACE_TIME_PROGMEM = {
    -
    5339  // 6 - %z
    -
    5340  {
    -
    5341  nullptr /*zonePolicy*/,
    -
    5342  "" /*format*/,
    -
    5343  24 /*offsetCode*/,
    -
    5344  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5345  127 /*untilYearTiny*/,
    -
    5346  1 /*untilMonth*/,
    -
    5347  1 /*untilDay*/,
    -
    5348  0 /*untilTimeCode*/,
    -
    5349  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5350  },
    -
    5351 
    -
    5352 };
    -
    5353 
    -
    5354 static const char kZoneNameEtc_GMT_6[] ACE_TIME_PROGMEM = "\x08" "GMT-6";
    -
    5355 
    -
    5356 const basic::Info::ZoneInfo kZoneEtc_GMT_6 ACE_TIME_PROGMEM = {
    -
    5357  kZoneNameEtc_GMT_6 /*name*/,
    -
    5358  0x9d13da5b /*zoneId*/,
    -
    5359  &kZoneContext /*zoneContext*/,
    -
    5360  1 /*numEras*/,
    -
    5361  kZoneEraEtc_GMT_6 /*eras*/,
    -
    5362  nullptr /*targetInfo*/,
    -
    5363 };
    -
    5364 
    -
    5365 //---------------------------------------------------------------------------
    -
    5366 // Zone name: Etc/GMT-7
    -
    5367 // Eras: 1
    -
    5368 //---------------------------------------------------------------------------
    -
    5369 
    -
    5370 static const basic::Info::ZoneEra kZoneEraEtc_GMT_7[] ACE_TIME_PROGMEM = {
    -
    5371  // 7 - %z
    -
    5372  {
    -
    5373  nullptr /*zonePolicy*/,
    -
    5374  "" /*format*/,
    -
    5375  28 /*offsetCode*/,
    -
    5376  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5377  127 /*untilYearTiny*/,
    -
    5378  1 /*untilMonth*/,
    -
    5379  1 /*untilDay*/,
    -
    5380  0 /*untilTimeCode*/,
    -
    5381  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5382  },
    -
    5383 
    -
    5384 };
    -
    5385 
    -
    5386 static const char kZoneNameEtc_GMT_7[] ACE_TIME_PROGMEM = "\x08" "GMT-7";
    -
    5387 
    -
    5388 const basic::Info::ZoneInfo kZoneEtc_GMT_7 ACE_TIME_PROGMEM = {
    -
    5389  kZoneNameEtc_GMT_7 /*name*/,
    -
    5390  0x9d13da5c /*zoneId*/,
    -
    5391  &kZoneContext /*zoneContext*/,
    -
    5392  1 /*numEras*/,
    -
    5393  kZoneEraEtc_GMT_7 /*eras*/,
    -
    5394  nullptr /*targetInfo*/,
    -
    5395 };
    -
    5396 
    -
    5397 //---------------------------------------------------------------------------
    -
    5398 // Zone name: Etc/GMT-8
    -
    5399 // Eras: 1
    -
    5400 //---------------------------------------------------------------------------
    -
    5401 
    -
    5402 static const basic::Info::ZoneEra kZoneEraEtc_GMT_8[] ACE_TIME_PROGMEM = {
    -
    5403  // 8 - %z
    -
    5404  {
    -
    5405  nullptr /*zonePolicy*/,
    -
    5406  "" /*format*/,
    -
    5407  32 /*offsetCode*/,
    -
    5408  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5409  127 /*untilYearTiny*/,
    -
    5410  1 /*untilMonth*/,
    -
    5411  1 /*untilDay*/,
    -
    5412  0 /*untilTimeCode*/,
    -
    5413  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5414  },
    -
    5415 
    -
    5416 };
    -
    5417 
    -
    5418 static const char kZoneNameEtc_GMT_8[] ACE_TIME_PROGMEM = "\x08" "GMT-8";
    -
    5419 
    -
    5420 const basic::Info::ZoneInfo kZoneEtc_GMT_8 ACE_TIME_PROGMEM = {
    -
    5421  kZoneNameEtc_GMT_8 /*name*/,
    -
    5422  0x9d13da5d /*zoneId*/,
    -
    5423  &kZoneContext /*zoneContext*/,
    -
    5424  1 /*numEras*/,
    -
    5425  kZoneEraEtc_GMT_8 /*eras*/,
    -
    5426  nullptr /*targetInfo*/,
    -
    5427 };
    -
    5428 
    -
    5429 //---------------------------------------------------------------------------
    -
    5430 // Zone name: Etc/GMT-9
    -
    5431 // Eras: 1
    -
    5432 //---------------------------------------------------------------------------
    -
    5433 
    -
    5434 static const basic::Info::ZoneEra kZoneEraEtc_GMT_9[] ACE_TIME_PROGMEM = {
    -
    5435  // 9 - %z
    -
    5436  {
    -
    5437  nullptr /*zonePolicy*/,
    -
    5438  "" /*format*/,
    -
    5439  36 /*offsetCode*/,
    -
    5440  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5441  127 /*untilYearTiny*/,
    -
    5442  1 /*untilMonth*/,
    -
    5443  1 /*untilDay*/,
    -
    5444  0 /*untilTimeCode*/,
    -
    5445  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5446  },
    -
    5447 
    -
    5448 };
    -
    5449 
    -
    5450 static const char kZoneNameEtc_GMT_9[] ACE_TIME_PROGMEM = "\x08" "GMT-9";
    -
    5451 
    -
    5452 const basic::Info::ZoneInfo kZoneEtc_GMT_9 ACE_TIME_PROGMEM = {
    -
    5453  kZoneNameEtc_GMT_9 /*name*/,
    -
    5454  0x9d13da5e /*zoneId*/,
    -
    5455  &kZoneContext /*zoneContext*/,
    -
    5456  1 /*numEras*/,
    -
    5457  kZoneEraEtc_GMT_9 /*eras*/,
    -
    5458  nullptr /*targetInfo*/,
    -
    5459 };
    -
    5460 
    -
    5461 //---------------------------------------------------------------------------
    -
    5462 // Zone name: Etc/UTC
    -
    5463 // Eras: 1
    -
    5464 //---------------------------------------------------------------------------
    -
    5465 
    -
    5466 static const basic::Info::ZoneEra kZoneEraEtc_UTC[] ACE_TIME_PROGMEM = {
    -
    5467  // 0 - UTC
    -
    5468  {
    -
    5469  nullptr /*zonePolicy*/,
    -
    5470  "UTC" /*format*/,
    -
    5471  0 /*offsetCode*/,
    -
    5472  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5473  127 /*untilYearTiny*/,
    -
    5474  1 /*untilMonth*/,
    -
    5475  1 /*untilDay*/,
    -
    5476  0 /*untilTimeCode*/,
    -
    5477  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5478  },
    -
    5479 
    -
    5480 };
    -
    5481 
    -
    5482 static const char kZoneNameEtc_UTC[] ACE_TIME_PROGMEM = "\x08" "UTC";
    -
    5483 
    -
    5484 const basic::Info::ZoneInfo kZoneEtc_UTC ACE_TIME_PROGMEM = {
    -
    5485  kZoneNameEtc_UTC /*name*/,
    -
    5486  0xd8e31abc /*zoneId*/,
    -
    5487  &kZoneContext /*zoneContext*/,
    -
    5488  1 /*numEras*/,
    -
    5489  kZoneEraEtc_UTC /*eras*/,
    -
    5490  nullptr /*targetInfo*/,
    -
    5491 };
    -
    5492 
    -
    5493 //---------------------------------------------------------------------------
    -
    5494 // Zone name: Europe/Andorra
    -
    5495 // Eras: 1
    -
    5496 //---------------------------------------------------------------------------
    -
    5497 
    -
    5498 static const basic::Info::ZoneEra kZoneEraEurope_Andorra[] ACE_TIME_PROGMEM = {
    -
    5499  // 1:00 EU CE%sT
    -
    5500  {
    -
    5501  &kZonePolicyEU /*zonePolicy*/,
    -
    5502  "CE%T" /*format*/,
    -
    5503  4 /*offsetCode*/,
    -
    5504  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5505  127 /*untilYearTiny*/,
    -
    5506  1 /*untilMonth*/,
    -
    5507  1 /*untilDay*/,
    -
    5508  0 /*untilTimeCode*/,
    -
    5509  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5510  },
    -
    5511 
    -
    5512 };
    -
    5513 
    -
    5514 static const char kZoneNameEurope_Andorra[] ACE_TIME_PROGMEM = "\x09" "Andorra";
    -
    5515 
    -
    5516 const basic::Info::ZoneInfo kZoneEurope_Andorra ACE_TIME_PROGMEM = {
    -
    5517  kZoneNameEurope_Andorra /*name*/,
    -
    5518  0x97f6764b /*zoneId*/,
    -
    5519  &kZoneContext /*zoneContext*/,
    -
    5520  1 /*numEras*/,
    -
    5521  kZoneEraEurope_Andorra /*eras*/,
    -
    5522  nullptr /*targetInfo*/,
    -
    5523 };
    -
    5524 
    -
    5525 //---------------------------------------------------------------------------
    -
    5526 // Zone name: Europe/Athens
    -
    5527 // Eras: 1
    -
    5528 //---------------------------------------------------------------------------
    -
    5529 
    -
    5530 static const basic::Info::ZoneEra kZoneEraEurope_Athens[] ACE_TIME_PROGMEM = {
    -
    5531  // 2:00 EU EE%sT
    -
    5532  {
    -
    5533  &kZonePolicyEU /*zonePolicy*/,
    -
    5534  "EE%T" /*format*/,
    -
    5535  8 /*offsetCode*/,
    -
    5536  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5537  127 /*untilYearTiny*/,
    -
    5538  1 /*untilMonth*/,
    -
    5539  1 /*untilDay*/,
    -
    5540  0 /*untilTimeCode*/,
    -
    5541  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5542  },
    -
    5543 
    -
    5544 };
    -
    5545 
    -
    5546 static const char kZoneNameEurope_Athens[] ACE_TIME_PROGMEM = "\x09" "Athens";
    -
    5547 
    -
    5548 const basic::Info::ZoneInfo kZoneEurope_Athens ACE_TIME_PROGMEM = {
    -
    5549  kZoneNameEurope_Athens /*name*/,
    -
    5550  0x4318fa27 /*zoneId*/,
    -
    5551  &kZoneContext /*zoneContext*/,
    -
    5552  1 /*numEras*/,
    -
    5553  kZoneEraEurope_Athens /*eras*/,
    -
    5554  nullptr /*targetInfo*/,
    -
    5555 };
    -
    5556 
    -
    5557 //---------------------------------------------------------------------------
    -
    5558 // Zone name: Europe/Belgrade
    -
    5559 // Eras: 1
    -
    5560 //---------------------------------------------------------------------------
    -
    5561 
    -
    5562 static const basic::Info::ZoneEra kZoneEraEurope_Belgrade[] ACE_TIME_PROGMEM = {
    -
    5563  // 1:00 EU CE%sT
    -
    5564  {
    -
    5565  &kZonePolicyEU /*zonePolicy*/,
    -
    5566  "CE%T" /*format*/,
    -
    5567  4 /*offsetCode*/,
    -
    5568  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5569  127 /*untilYearTiny*/,
    -
    5570  1 /*untilMonth*/,
    -
    5571  1 /*untilDay*/,
    -
    5572  0 /*untilTimeCode*/,
    -
    5573  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5574  },
    -
    5575 
    -
    5576 };
    -
    5577 
    -
    5578 static const char kZoneNameEurope_Belgrade[] ACE_TIME_PROGMEM = "\x09" "Belgrade";
    -
    5579 
    -
    5580 const basic::Info::ZoneInfo kZoneEurope_Belgrade ACE_TIME_PROGMEM = {
    -
    5581  kZoneNameEurope_Belgrade /*name*/,
    -
    5582  0xe0532b3a /*zoneId*/,
    -
    5583  &kZoneContext /*zoneContext*/,
    -
    5584  1 /*numEras*/,
    -
    5585  kZoneEraEurope_Belgrade /*eras*/,
    -
    5586  nullptr /*targetInfo*/,
    -
    5587 };
    -
    5588 
    -
    5589 //---------------------------------------------------------------------------
    -
    5590 // Zone name: Europe/Berlin
    -
    5591 // Eras: 1
    -
    5592 //---------------------------------------------------------------------------
    -
    5593 
    -
    5594 static const basic::Info::ZoneEra kZoneEraEurope_Berlin[] ACE_TIME_PROGMEM = {
    -
    5595  // 1:00 EU CE%sT
    -
    5596  {
    -
    5597  &kZonePolicyEU /*zonePolicy*/,
    -
    5598  "CE%T" /*format*/,
    -
    5599  4 /*offsetCode*/,
    -
    5600  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5601  127 /*untilYearTiny*/,
    -
    5602  1 /*untilMonth*/,
    -
    5603  1 /*untilDay*/,
    -
    5604  0 /*untilTimeCode*/,
    -
    5605  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5606  },
    -
    5607 
    -
    5608 };
    -
    5609 
    -
    5610 static const char kZoneNameEurope_Berlin[] ACE_TIME_PROGMEM = "\x09" "Berlin";
    -
    5611 
    -
    5612 const basic::Info::ZoneInfo kZoneEurope_Berlin ACE_TIME_PROGMEM = {
    -
    5613  kZoneNameEurope_Berlin /*name*/,
    -
    5614  0x44644c20 /*zoneId*/,
    -
    5615  &kZoneContext /*zoneContext*/,
    -
    5616  1 /*numEras*/,
    -
    5617  kZoneEraEurope_Berlin /*eras*/,
    -
    5618  nullptr /*targetInfo*/,
    -
    5619 };
    -
    5620 
    -
    5621 //---------------------------------------------------------------------------
    -
    5622 // Zone name: Europe/Brussels
    -
    5623 // Eras: 1
    -
    5624 //---------------------------------------------------------------------------
    -
    5625 
    -
    5626 static const basic::Info::ZoneEra kZoneEraEurope_Brussels[] ACE_TIME_PROGMEM = {
    -
    5627  // 1:00 EU CE%sT
    -
    5628  {
    -
    5629  &kZonePolicyEU /*zonePolicy*/,
    -
    5630  "CE%T" /*format*/,
    -
    5631  4 /*offsetCode*/,
    -
    5632  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5633  127 /*untilYearTiny*/,
    -
    5634  1 /*untilMonth*/,
    -
    5635  1 /*untilDay*/,
    -
    5636  0 /*untilTimeCode*/,
    -
    5637  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5638  },
    -
    5639 
    -
    5640 };
    -
    5641 
    -
    5642 static const char kZoneNameEurope_Brussels[] ACE_TIME_PROGMEM = "\x09" "Brussels";
    -
    5643 
    -
    5644 const basic::Info::ZoneInfo kZoneEurope_Brussels ACE_TIME_PROGMEM = {
    -
    5645  kZoneNameEurope_Brussels /*name*/,
    -
    5646  0xdee07337 /*zoneId*/,
    -
    5647  &kZoneContext /*zoneContext*/,
    -
    5648  1 /*numEras*/,
    -
    5649  kZoneEraEurope_Brussels /*eras*/,
    -
    5650  nullptr /*targetInfo*/,
    -
    5651 };
    -
    5652 
    -
    5653 //---------------------------------------------------------------------------
    -
    5654 // Zone name: Europe/Bucharest
    -
    5655 // Eras: 1
    -
    5656 //---------------------------------------------------------------------------
    -
    5657 
    -
    5658 static const basic::Info::ZoneEra kZoneEraEurope_Bucharest[] ACE_TIME_PROGMEM = {
    -
    5659  // 2:00 EU EE%sT
    -
    5660  {
    -
    5661  &kZonePolicyEU /*zonePolicy*/,
    -
    5662  "EE%T" /*format*/,
    -
    5663  8 /*offsetCode*/,
    -
    5664  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5665  127 /*untilYearTiny*/,
    -
    5666  1 /*untilMonth*/,
    -
    5667  1 /*untilDay*/,
    -
    5668  0 /*untilTimeCode*/,
    -
    5669  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5670  },
    -
    5671 
    -
    5672 };
    -
    5673 
    -
    5674 static const char kZoneNameEurope_Bucharest[] ACE_TIME_PROGMEM = "\x09" "Bucharest";
    -
    5675 
    -
    5676 const basic::Info::ZoneInfo kZoneEurope_Bucharest ACE_TIME_PROGMEM = {
    -
    5677  kZoneNameEurope_Bucharest /*name*/,
    -
    5678  0xfb349ec5 /*zoneId*/,
    -
    5679  &kZoneContext /*zoneContext*/,
    -
    5680  1 /*numEras*/,
    -
    5681  kZoneEraEurope_Bucharest /*eras*/,
    -
    5682  nullptr /*targetInfo*/,
    -
    5683 };
    -
    5684 
    -
    5685 //---------------------------------------------------------------------------
    -
    5686 // Zone name: Europe/Budapest
    -
    5687 // Eras: 1
    -
    5688 //---------------------------------------------------------------------------
    -
    5689 
    -
    5690 static const basic::Info::ZoneEra kZoneEraEurope_Budapest[] ACE_TIME_PROGMEM = {
    -
    5691  // 1:00 EU CE%sT
    -
    5692  {
    -
    5693  &kZonePolicyEU /*zonePolicy*/,
    -
    5694  "CE%T" /*format*/,
    -
    5695  4 /*offsetCode*/,
    -
    5696  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5697  127 /*untilYearTiny*/,
    -
    5698  1 /*untilMonth*/,
    -
    5699  1 /*untilDay*/,
    -
    5700  0 /*untilTimeCode*/,
    -
    5701  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5702  },
    -
    5703 
    -
    5704 };
    -
    5705 
    -
    5706 static const char kZoneNameEurope_Budapest[] ACE_TIME_PROGMEM = "\x09" "Budapest";
    -
    5707 
    -
    5708 const basic::Info::ZoneInfo kZoneEurope_Budapest ACE_TIME_PROGMEM = {
    -
    5709  kZoneNameEurope_Budapest /*name*/,
    -
    5710  0x9ce0197c /*zoneId*/,
    -
    5711  &kZoneContext /*zoneContext*/,
    -
    5712  1 /*numEras*/,
    -
    5713  kZoneEraEurope_Budapest /*eras*/,
    -
    5714  nullptr /*targetInfo*/,
    -
    5715 };
    -
    5716 
    -
    5717 //---------------------------------------------------------------------------
    -
    5718 // Zone name: Europe/Chisinau
    -
    5719 // Eras: 1
    -
    5720 //---------------------------------------------------------------------------
    -
    5721 
    -
    5722 static const basic::Info::ZoneEra kZoneEraEurope_Chisinau[] ACE_TIME_PROGMEM = {
    -
    5723  // 2:00 Moldova EE%sT
    -
    5724  {
    -
    5725  &kZonePolicyMoldova /*zonePolicy*/,
    -
    5726  "EE%T" /*format*/,
    -
    5727  8 /*offsetCode*/,
    -
    5728  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5729  127 /*untilYearTiny*/,
    -
    5730  1 /*untilMonth*/,
    -
    5731  1 /*untilDay*/,
    -
    5732  0 /*untilTimeCode*/,
    -
    5733  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5734  },
    -
    5735 
    -
    5736 };
    -
    5737 
    -
    5738 static const char kZoneNameEurope_Chisinau[] ACE_TIME_PROGMEM = "\x09" "Chisinau";
    -
    5739 
    -
    5740 const basic::Info::ZoneInfo kZoneEurope_Chisinau ACE_TIME_PROGMEM = {
    -
    5741  kZoneNameEurope_Chisinau /*name*/,
    -
    5742  0xad58aa18 /*zoneId*/,
    -
    5743  &kZoneContext /*zoneContext*/,
    -
    5744  1 /*numEras*/,
    -
    5745  kZoneEraEurope_Chisinau /*eras*/,
    -
    5746  nullptr /*targetInfo*/,
    -
    5747 };
    -
    5748 
    -
    5749 //---------------------------------------------------------------------------
    -
    5750 // Zone name: Europe/Dublin
    -
    5751 // Eras: 1
    -
    5752 //---------------------------------------------------------------------------
    -
    5753 
    -
    5754 static const basic::Info::ZoneEra kZoneEraEurope_Dublin[] ACE_TIME_PROGMEM = {
    -
    5755  // 1:00 Eire IST/GMT
    -
    5756  {
    -
    5757  &kZonePolicyEire /*zonePolicy*/,
    -
    5758  "IST/GMT" /*format*/,
    -
    5759  4 /*offsetCode*/,
    -
    5760  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5761  127 /*untilYearTiny*/,
    -
    5762  1 /*untilMonth*/,
    -
    5763  1 /*untilDay*/,
    -
    5764  0 /*untilTimeCode*/,
    -
    5765  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5766  },
    -
    5767 
    -
    5768 };
    -
    5769 
    -
    5770 static const char kZoneNameEurope_Dublin[] ACE_TIME_PROGMEM = "\x09" "Dublin";
    -
    5771 
    -
    5772 const basic::Info::ZoneInfo kZoneEurope_Dublin ACE_TIME_PROGMEM = {
    -
    5773  kZoneNameEurope_Dublin /*name*/,
    -
    5774  0x4a275f62 /*zoneId*/,
    -
    5775  &kZoneContext /*zoneContext*/,
    -
    5776  1 /*numEras*/,
    -
    5777  kZoneEraEurope_Dublin /*eras*/,
    -
    5778  nullptr /*targetInfo*/,
    -
    5779 };
    -
    5780 
    -
    5781 //---------------------------------------------------------------------------
    -
    5782 // Zone name: Europe/Gibraltar
    -
    5783 // Eras: 1
    -
    5784 //---------------------------------------------------------------------------
    -
    5785 
    -
    5786 static const basic::Info::ZoneEra kZoneEraEurope_Gibraltar[] ACE_TIME_PROGMEM = {
    -
    5787  // 1:00 EU CE%sT
    -
    5788  {
    -
    5789  &kZonePolicyEU /*zonePolicy*/,
    -
    5790  "CE%T" /*format*/,
    -
    5791  4 /*offsetCode*/,
    -
    5792  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5793  127 /*untilYearTiny*/,
    -
    5794  1 /*untilMonth*/,
    -
    5795  1 /*untilDay*/,
    -
    5796  0 /*untilTimeCode*/,
    -
    5797  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5798  },
    -
    5799 
    -
    5800 };
    -
    5801 
    -
    5802 static const char kZoneNameEurope_Gibraltar[] ACE_TIME_PROGMEM = "\x09" "Gibraltar";
    -
    5803 
    -
    5804 const basic::Info::ZoneInfo kZoneEurope_Gibraltar ACE_TIME_PROGMEM = {
    -
    5805  kZoneNameEurope_Gibraltar /*name*/,
    -
    5806  0xf8e325fc /*zoneId*/,
    -
    5807  &kZoneContext /*zoneContext*/,
    -
    5808  1 /*numEras*/,
    -
    5809  kZoneEraEurope_Gibraltar /*eras*/,
    -
    5810  nullptr /*targetInfo*/,
    -
    5811 };
    -
    5812 
    -
    5813 //---------------------------------------------------------------------------
    -
    5814 // Zone name: Europe/Helsinki
    -
    5815 // Eras: 1
    -
    5816 //---------------------------------------------------------------------------
    -
    5817 
    -
    5818 static const basic::Info::ZoneEra kZoneEraEurope_Helsinki[] ACE_TIME_PROGMEM = {
    -
    5819  // 2:00 EU EE%sT
    -
    5820  {
    -
    5821  &kZonePolicyEU /*zonePolicy*/,
    -
    5822  "EE%T" /*format*/,
    -
    5823  8 /*offsetCode*/,
    -
    5824  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5825  127 /*untilYearTiny*/,
    -
    5826  1 /*untilMonth*/,
    -
    5827  1 /*untilDay*/,
    -
    5828  0 /*untilTimeCode*/,
    -
    5829  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5830  },
    -
    5831 
    -
    5832 };
    -
    5833 
    -
    5834 static const char kZoneNameEurope_Helsinki[] ACE_TIME_PROGMEM = "\x09" "Helsinki";
    -
    5835 
    -
    5836 const basic::Info::ZoneInfo kZoneEurope_Helsinki ACE_TIME_PROGMEM = {
    -
    5837  kZoneNameEurope_Helsinki /*name*/,
    -
    5838  0x6ab2975b /*zoneId*/,
    -
    5839  &kZoneContext /*zoneContext*/,
    -
    5840  1 /*numEras*/,
    -
    5841  kZoneEraEurope_Helsinki /*eras*/,
    -
    5842  nullptr /*targetInfo*/,
    -
    5843 };
    -
    5844 
    -
    5845 //---------------------------------------------------------------------------
    -
    5846 // Zone name: Europe/Kyiv
    -
    5847 // Eras: 1
    -
    5848 //---------------------------------------------------------------------------
    -
    5849 
    -
    5850 static const basic::Info::ZoneEra kZoneEraEurope_Kyiv[] ACE_TIME_PROGMEM = {
    -
    5851  // 2:00 EU EE%sT
    -
    5852  {
    -
    5853  &kZonePolicyEU /*zonePolicy*/,
    -
    5854  "EE%T" /*format*/,
    -
    5855  8 /*offsetCode*/,
    -
    5856  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5857  127 /*untilYearTiny*/,
    -
    5858  1 /*untilMonth*/,
    -
    5859  1 /*untilDay*/,
    -
    5860  0 /*untilTimeCode*/,
    -
    5861  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5862  },
    -
    5863 
    -
    5864 };
    -
    5865 
    -
    5866 static const char kZoneNameEurope_Kyiv[] ACE_TIME_PROGMEM = "\x09" "Kyiv";
    -
    5867 
    -
    5868 const basic::Info::ZoneInfo kZoneEurope_Kyiv ACE_TIME_PROGMEM = {
    -
    5869  kZoneNameEurope_Kyiv /*name*/,
    -
    5870  0xa2c1e347 /*zoneId*/,
    -
    5871  &kZoneContext /*zoneContext*/,
    -
    5872  1 /*numEras*/,
    -
    5873  kZoneEraEurope_Kyiv /*eras*/,
    -
    5874  nullptr /*targetInfo*/,
    -
    5875 };
    -
    5876 
    -
    5877 //---------------------------------------------------------------------------
    -
    5878 // Zone name: Europe/Lisbon
    -
    5879 // Eras: 1
    -
    5880 //---------------------------------------------------------------------------
    -
    5881 
    -
    5882 static const basic::Info::ZoneEra kZoneEraEurope_Lisbon[] ACE_TIME_PROGMEM = {
    -
    5883  // 0:00 EU WE%sT
    -
    5884  {
    -
    5885  &kZonePolicyEU /*zonePolicy*/,
    -
    5886  "WE%T" /*format*/,
    -
    5887  0 /*offsetCode*/,
    -
    5888  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5889  127 /*untilYearTiny*/,
    -
    5890  1 /*untilMonth*/,
    -
    5891  1 /*untilDay*/,
    -
    5892  0 /*untilTimeCode*/,
    -
    5893  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5894  },
    -
    5895 
    -
    5896 };
    -
    5897 
    -
    5898 static const char kZoneNameEurope_Lisbon[] ACE_TIME_PROGMEM = "\x09" "Lisbon";
    -
    5899 
    -
    5900 const basic::Info::ZoneInfo kZoneEurope_Lisbon ACE_TIME_PROGMEM = {
    -
    5901  kZoneNameEurope_Lisbon /*name*/,
    -
    5902  0x5c00a70b /*zoneId*/,
    -
    5903  &kZoneContext /*zoneContext*/,
    -
    5904  1 /*numEras*/,
    -
    5905  kZoneEraEurope_Lisbon /*eras*/,
    -
    5906  nullptr /*targetInfo*/,
    -
    5907 };
    -
    5908 
    -
    5909 //---------------------------------------------------------------------------
    -
    5910 // Zone name: Europe/London
    -
    5911 // Eras: 1
    -
    5912 //---------------------------------------------------------------------------
    -
    5913 
    -
    5914 static const basic::Info::ZoneEra kZoneEraEurope_London[] ACE_TIME_PROGMEM = {
    -
    5915  // 0:00 EU GMT/BST
    -
    5916  {
    -
    5917  &kZonePolicyEU /*zonePolicy*/,
    -
    5918  "GMT/BST" /*format*/,
    -
    5919  0 /*offsetCode*/,
    -
    5920  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5921  127 /*untilYearTiny*/,
    -
    5922  1 /*untilMonth*/,
    -
    5923  1 /*untilDay*/,
    -
    5924  0 /*untilTimeCode*/,
    -
    5925  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5926  },
    -
    5927 
    -
    5928 };
    -
    5929 
    -
    5930 static const char kZoneNameEurope_London[] ACE_TIME_PROGMEM = "\x09" "London";
    -
    5931 
    -
    5932 const basic::Info::ZoneInfo kZoneEurope_London ACE_TIME_PROGMEM = {
    -
    5933  kZoneNameEurope_London /*name*/,
    -
    5934  0x5c6a84ae /*zoneId*/,
    -
    5935  &kZoneContext /*zoneContext*/,
    -
    5936  1 /*numEras*/,
    -
    5937  kZoneEraEurope_London /*eras*/,
    -
    5938  nullptr /*targetInfo*/,
    -
    5939 };
    -
    5940 
    -
    5941 //---------------------------------------------------------------------------
    -
    5942 // Zone name: Europe/Madrid
    -
    5943 // Eras: 1
    -
    5944 //---------------------------------------------------------------------------
    -
    5945 
    -
    5946 static const basic::Info::ZoneEra kZoneEraEurope_Madrid[] ACE_TIME_PROGMEM = {
    -
    5947  // 1:00 EU CE%sT
    -
    5948  {
    -
    5949  &kZonePolicyEU /*zonePolicy*/,
    -
    5950  "CE%T" /*format*/,
    -
    5951  4 /*offsetCode*/,
    -
    5952  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5953  127 /*untilYearTiny*/,
    -
    5954  1 /*untilMonth*/,
    -
    5955  1 /*untilDay*/,
    -
    5956  0 /*untilTimeCode*/,
    -
    5957  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5958  },
    -
    5959 
    -
    5960 };
    -
    5961 
    -
    5962 static const char kZoneNameEurope_Madrid[] ACE_TIME_PROGMEM = "\x09" "Madrid";
    -
    5963 
    -
    5964 const basic::Info::ZoneInfo kZoneEurope_Madrid ACE_TIME_PROGMEM = {
    -
    5965  kZoneNameEurope_Madrid /*name*/,
    -
    5966  0x5dbd1535 /*zoneId*/,
    -
    5967  &kZoneContext /*zoneContext*/,
    -
    5968  1 /*numEras*/,
    -
    5969  kZoneEraEurope_Madrid /*eras*/,
    -
    5970  nullptr /*targetInfo*/,
    -
    5971 };
    -
    5972 
    -
    5973 //---------------------------------------------------------------------------
    -
    5974 // Zone name: Europe/Malta
    -
    5975 // Eras: 1
    -
    5976 //---------------------------------------------------------------------------
    -
    5977 
    -
    5978 static const basic::Info::ZoneEra kZoneEraEurope_Malta[] ACE_TIME_PROGMEM = {
    -
    5979  // 1:00 EU CE%sT
    -
    5980  {
    -
    5981  &kZonePolicyEU /*zonePolicy*/,
    -
    5982  "CE%T" /*format*/,
    -
    5983  4 /*offsetCode*/,
    -
    5984  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5985  127 /*untilYearTiny*/,
    -
    5986  1 /*untilMonth*/,
    -
    5987  1 /*untilDay*/,
    -
    5988  0 /*untilTimeCode*/,
    -
    5989  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5990  },
    -
    5991 
    -
    5992 };
    -
    5993 
    -
    5994 static const char kZoneNameEurope_Malta[] ACE_TIME_PROGMEM = "\x09" "Malta";
    -
    5995 
    -
    5996 const basic::Info::ZoneInfo kZoneEurope_Malta ACE_TIME_PROGMEM = {
    -
    5997  kZoneNameEurope_Malta /*name*/,
    -
    5998  0xfb1560f3 /*zoneId*/,
    -
    5999  &kZoneContext /*zoneContext*/,
    -
    6000  1 /*numEras*/,
    -
    6001  kZoneEraEurope_Malta /*eras*/,
    -
    6002  nullptr /*targetInfo*/,
    -
    6003 };
    -
    6004 
    -
    6005 //---------------------------------------------------------------------------
    -
    6006 // Zone name: Europe/Paris
    -
    6007 // Eras: 1
    -
    6008 //---------------------------------------------------------------------------
    -
    6009 
    -
    6010 static const basic::Info::ZoneEra kZoneEraEurope_Paris[] ACE_TIME_PROGMEM = {
    -
    6011  // 1:00 EU CE%sT
    -
    6012  {
    -
    6013  &kZonePolicyEU /*zonePolicy*/,
    -
    6014  "CE%T" /*format*/,
    -
    6015  4 /*offsetCode*/,
    -
    6016  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6017  127 /*untilYearTiny*/,
    -
    6018  1 /*untilMonth*/,
    -
    6019  1 /*untilDay*/,
    -
    6020  0 /*untilTimeCode*/,
    -
    6021  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6022  },
    -
    6023 
    -
    6024 };
    -
    6025 
    -
    6026 static const char kZoneNameEurope_Paris[] ACE_TIME_PROGMEM = "\x09" "Paris";
    -
    6027 
    -
    6028 const basic::Info::ZoneInfo kZoneEurope_Paris ACE_TIME_PROGMEM = {
    -
    6029  kZoneNameEurope_Paris /*name*/,
    -
    6030  0xfb4bc2a3 /*zoneId*/,
    -
    6031  &kZoneContext /*zoneContext*/,
    -
    6032  1 /*numEras*/,
    -
    6033  kZoneEraEurope_Paris /*eras*/,
    -
    6034  nullptr /*targetInfo*/,
    -
    6035 };
    -
    6036 
    -
    6037 //---------------------------------------------------------------------------
    -
    6038 // Zone name: Europe/Prague
    -
    6039 // Eras: 1
    -
    6040 //---------------------------------------------------------------------------
    -
    6041 
    -
    6042 static const basic::Info::ZoneEra kZoneEraEurope_Prague[] ACE_TIME_PROGMEM = {
    -
    6043  // 1:00 EU CE%sT
    -
    6044  {
    -
    6045  &kZonePolicyEU /*zonePolicy*/,
    -
    6046  "CE%T" /*format*/,
    -
    6047  4 /*offsetCode*/,
    -
    6048  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6049  127 /*untilYearTiny*/,
    -
    6050  1 /*untilMonth*/,
    -
    6051  1 /*untilDay*/,
    -
    6052  0 /*untilTimeCode*/,
    -
    6053  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6054  },
    -
    6055 
    -
    6056 };
    -
    6057 
    -
    6058 static const char kZoneNameEurope_Prague[] ACE_TIME_PROGMEM = "\x09" "Prague";
    -
    6059 
    -
    6060 const basic::Info::ZoneInfo kZoneEurope_Prague ACE_TIME_PROGMEM = {
    -
    6061  kZoneNameEurope_Prague /*name*/,
    -
    6062  0x65ee5d48 /*zoneId*/,
    -
    6063  &kZoneContext /*zoneContext*/,
    -
    6064  1 /*numEras*/,
    -
    6065  kZoneEraEurope_Prague /*eras*/,
    -
    6066  nullptr /*targetInfo*/,
    -
    6067 };
    -
    6068 
    -
    6069 //---------------------------------------------------------------------------
    -
    6070 // Zone name: Europe/Rome
    -
    6071 // Eras: 1
    -
    6072 //---------------------------------------------------------------------------
    -
    6073 
    -
    6074 static const basic::Info::ZoneEra kZoneEraEurope_Rome[] ACE_TIME_PROGMEM = {
    -
    6075  // 1:00 EU CE%sT
    -
    6076  {
    -
    6077  &kZonePolicyEU /*zonePolicy*/,
    -
    6078  "CE%T" /*format*/,
    -
    6079  4 /*offsetCode*/,
    -
    6080  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6081  127 /*untilYearTiny*/,
    -
    6082  1 /*untilMonth*/,
    -
    6083  1 /*untilDay*/,
    -
    6084  0 /*untilTimeCode*/,
    -
    6085  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6086  },
    -
    6087 
    -
    6088 };
    -
    6089 
    -
    6090 static const char kZoneNameEurope_Rome[] ACE_TIME_PROGMEM = "\x09" "Rome";
    -
    6091 
    -
    6092 const basic::Info::ZoneInfo kZoneEurope_Rome ACE_TIME_PROGMEM = {
    -
    6093  kZoneNameEurope_Rome /*name*/,
    -
    6094  0xa2c58fd7 /*zoneId*/,
    -
    6095  &kZoneContext /*zoneContext*/,
    -
    6096  1 /*numEras*/,
    -
    6097  kZoneEraEurope_Rome /*eras*/,
    -
    6098  nullptr /*targetInfo*/,
    -
    6099 };
    -
    6100 
    -
    6101 //---------------------------------------------------------------------------
    -
    6102 // Zone name: Europe/Sofia
    -
    6103 // Eras: 1
    -
    6104 //---------------------------------------------------------------------------
    -
    6105 
    -
    6106 static const basic::Info::ZoneEra kZoneEraEurope_Sofia[] ACE_TIME_PROGMEM = {
    -
    6107  // 2:00 EU EE%sT
    -
    6108  {
    -
    6109  &kZonePolicyEU /*zonePolicy*/,
    -
    6110  "EE%T" /*format*/,
    -
    6111  8 /*offsetCode*/,
    -
    6112  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6113  127 /*untilYearTiny*/,
    -
    6114  1 /*untilMonth*/,
    -
    6115  1 /*untilDay*/,
    -
    6116  0 /*untilTimeCode*/,
    -
    6117  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6118  },
    -
    6119 
    -
    6120 };
    -
    6121 
    -
    6122 static const char kZoneNameEurope_Sofia[] ACE_TIME_PROGMEM = "\x09" "Sofia";
    -
    6123 
    -
    6124 const basic::Info::ZoneInfo kZoneEurope_Sofia ACE_TIME_PROGMEM = {
    -
    6125  kZoneNameEurope_Sofia /*name*/,
    -
    6126  0xfb898656 /*zoneId*/,
    -
    6127  &kZoneContext /*zoneContext*/,
    -
    6128  1 /*numEras*/,
    -
    6129  kZoneEraEurope_Sofia /*eras*/,
    -
    6130  nullptr /*targetInfo*/,
    -
    6131 };
    -
    6132 
    -
    6133 //---------------------------------------------------------------------------
    -
    6134 // Zone name: Europe/Tirane
    -
    6135 // Eras: 1
    -
    6136 //---------------------------------------------------------------------------
    -
    6137 
    -
    6138 static const basic::Info::ZoneEra kZoneEraEurope_Tirane[] ACE_TIME_PROGMEM = {
    -
    6139  // 1:00 EU CE%sT
    -
    6140  {
    -
    6141  &kZonePolicyEU /*zonePolicy*/,
    -
    6142  "CE%T" /*format*/,
    -
    6143  4 /*offsetCode*/,
    -
    6144  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6145  127 /*untilYearTiny*/,
    -
    6146  1 /*untilMonth*/,
    -
    6147  1 /*untilDay*/,
    -
    6148  0 /*untilTimeCode*/,
    -
    6149  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6150  },
    -
    6151 
    -
    6152 };
    -
    6153 
    -
    6154 static const char kZoneNameEurope_Tirane[] ACE_TIME_PROGMEM = "\x09" "Tirane";
    -
    6155 
    -
    6156 const basic::Info::ZoneInfo kZoneEurope_Tirane ACE_TIME_PROGMEM = {
    -
    6157  kZoneNameEurope_Tirane /*name*/,
    -
    6158  0x6ea95b47 /*zoneId*/,
    -
    6159  &kZoneContext /*zoneContext*/,
    -
    6160  1 /*numEras*/,
    -
    6161  kZoneEraEurope_Tirane /*eras*/,
    -
    6162  nullptr /*targetInfo*/,
    -
    6163 };
    -
    6164 
    -
    6165 //---------------------------------------------------------------------------
    -
    6166 // Zone name: Europe/Vienna
    -
    6167 // Eras: 1
    -
    6168 //---------------------------------------------------------------------------
    -
    6169 
    -
    6170 static const basic::Info::ZoneEra kZoneEraEurope_Vienna[] ACE_TIME_PROGMEM = {
    -
    6171  // 1:00 EU CE%sT
    -
    6172  {
    -
    6173  &kZonePolicyEU /*zonePolicy*/,
    -
    6174  "CE%T" /*format*/,
    -
    6175  4 /*offsetCode*/,
    -
    6176  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6177  127 /*untilYearTiny*/,
    -
    6178  1 /*untilMonth*/,
    -
    6179  1 /*untilDay*/,
    -
    6180  0 /*untilTimeCode*/,
    -
    6181  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6182  },
    -
    6183 
    -
    6184 };
    -
    6185 
    -
    6186 static const char kZoneNameEurope_Vienna[] ACE_TIME_PROGMEM = "\x09" "Vienna";
    -
    6187 
    -
    6188 const basic::Info::ZoneInfo kZoneEurope_Vienna ACE_TIME_PROGMEM = {
    -
    6189  kZoneNameEurope_Vienna /*name*/,
    -
    6190  0x734cc2e5 /*zoneId*/,
    -
    6191  &kZoneContext /*zoneContext*/,
    -
    6192  1 /*numEras*/,
    -
    6193  kZoneEraEurope_Vienna /*eras*/,
    -
    6194  nullptr /*targetInfo*/,
    -
    6195 };
    -
    6196 
    -
    6197 //---------------------------------------------------------------------------
    -
    6198 // Zone name: Europe/Warsaw
    -
    6199 // Eras: 1
    -
    6200 //---------------------------------------------------------------------------
    -
    6201 
    -
    6202 static const basic::Info::ZoneEra kZoneEraEurope_Warsaw[] ACE_TIME_PROGMEM = {
    -
    6203  // 1:00 EU CE%sT
    -
    6204  {
    -
    6205  &kZonePolicyEU /*zonePolicy*/,
    -
    6206  "CE%T" /*format*/,
    -
    6207  4 /*offsetCode*/,
    -
    6208  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6209  127 /*untilYearTiny*/,
    -
    6210  1 /*untilMonth*/,
    -
    6211  1 /*untilDay*/,
    -
    6212  0 /*untilTimeCode*/,
    -
    6213  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6214  },
    -
    6215 
    -
    6216 };
    -
    6217 
    -
    6218 static const char kZoneNameEurope_Warsaw[] ACE_TIME_PROGMEM = "\x09" "Warsaw";
    -
    6219 
    -
    6220 const basic::Info::ZoneInfo kZoneEurope_Warsaw ACE_TIME_PROGMEM = {
    -
    6221  kZoneNameEurope_Warsaw /*name*/,
    -
    6222  0x75185c19 /*zoneId*/,
    -
    6223  &kZoneContext /*zoneContext*/,
    -
    6224  1 /*numEras*/,
    -
    6225  kZoneEraEurope_Warsaw /*eras*/,
    -
    6226  nullptr /*targetInfo*/,
    -
    6227 };
    -
    6228 
    -
    6229 //---------------------------------------------------------------------------
    -
    6230 // Zone name: Europe/Zurich
    -
    6231 // Eras: 1
    -
    6232 //---------------------------------------------------------------------------
    -
    6233 
    -
    6234 static const basic::Info::ZoneEra kZoneEraEurope_Zurich[] ACE_TIME_PROGMEM = {
    -
    6235  // 1:00 EU CE%sT
    -
    6236  {
    -
    6237  &kZonePolicyEU /*zonePolicy*/,
    -
    6238  "CE%T" /*format*/,
    -
    6239  4 /*offsetCode*/,
    -
    6240  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6241  127 /*untilYearTiny*/,
    -
    6242  1 /*untilMonth*/,
    -
    6243  1 /*untilDay*/,
    -
    6244  0 /*untilTimeCode*/,
    -
    6245  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6246  },
    -
    6247 
    -
    6248 };
    -
    6249 
    -
    6250 static const char kZoneNameEurope_Zurich[] ACE_TIME_PROGMEM = "\x09" "Zurich";
    -
    6251 
    -
    6252 const basic::Info::ZoneInfo kZoneEurope_Zurich ACE_TIME_PROGMEM = {
    -
    6253  kZoneNameEurope_Zurich /*name*/,
    -
    6254  0x7d8195b9 /*zoneId*/,
    -
    6255  &kZoneContext /*zoneContext*/,
    -
    6256  1 /*numEras*/,
    -
    6257  kZoneEraEurope_Zurich /*eras*/,
    -
    6258  nullptr /*targetInfo*/,
    -
    6259 };
    -
    6260 
    -
    6261 //---------------------------------------------------------------------------
    -
    6262 // Zone name: Indian/Chagos
    -
    6263 // Eras: 1
    -
    6264 //---------------------------------------------------------------------------
    -
    6265 
    -
    6266 static const basic::Info::ZoneEra kZoneEraIndian_Chagos[] ACE_TIME_PROGMEM = {
    -
    6267  // 6:00 - %z
    -
    6268  {
    -
    6269  nullptr /*zonePolicy*/,
    -
    6270  "" /*format*/,
    -
    6271  24 /*offsetCode*/,
    -
    6272  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6273  127 /*untilYearTiny*/,
    -
    6274  1 /*untilMonth*/,
    -
    6275  1 /*untilDay*/,
    -
    6276  0 /*untilTimeCode*/,
    -
    6277  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6278  },
    -
    6279 
    -
    6280 };
    -
    6281 
    -
    6282 static const char kZoneNameIndian_Chagos[] ACE_TIME_PROGMEM = "\x0a" "Chagos";
    -
    6283 
    -
    6284 const basic::Info::ZoneInfo kZoneIndian_Chagos ACE_TIME_PROGMEM = {
    -
    6285  kZoneNameIndian_Chagos /*name*/,
    -
    6286  0x456f7c3c /*zoneId*/,
    -
    6287  &kZoneContext /*zoneContext*/,
    -
    6288  1 /*numEras*/,
    -
    6289  kZoneEraIndian_Chagos /*eras*/,
    -
    6290  nullptr /*targetInfo*/,
    -
    6291 };
    -
    6292 
    -
    6293 //---------------------------------------------------------------------------
    -
    6294 // Zone name: Indian/Maldives
    -
    6295 // Eras: 1
    -
    6296 //---------------------------------------------------------------------------
    -
    6297 
    -
    6298 static const basic::Info::ZoneEra kZoneEraIndian_Maldives[] ACE_TIME_PROGMEM = {
    -
    6299  // 5:00 - %z
    -
    6300  {
    -
    6301  nullptr /*zonePolicy*/,
    -
    6302  "" /*format*/,
    -
    6303  20 /*offsetCode*/,
    -
    6304  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6305  127 /*untilYearTiny*/,
    -
    6306  1 /*untilMonth*/,
    -
    6307  1 /*untilDay*/,
    -
    6308  0 /*untilTimeCode*/,
    -
    6309  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6310  },
    -
    6311 
    -
    6312 };
    -
    6313 
    -
    6314 static const char kZoneNameIndian_Maldives[] ACE_TIME_PROGMEM = "\x0a" "Maldives";
    -
    6315 
    -
    6316 const basic::Info::ZoneInfo kZoneIndian_Maldives ACE_TIME_PROGMEM = {
    -
    6317  kZoneNameIndian_Maldives /*name*/,
    -
    6318  0x9869681c /*zoneId*/,
    -
    6319  &kZoneContext /*zoneContext*/,
    -
    6320  1 /*numEras*/,
    -
    6321  kZoneEraIndian_Maldives /*eras*/,
    -
    6322  nullptr /*targetInfo*/,
    -
    6323 };
    -
    6324 
    -
    6325 //---------------------------------------------------------------------------
    -
    6326 // Zone name: Indian/Mauritius
    -
    6327 // Eras: 1
    -
    6328 //---------------------------------------------------------------------------
    -
    6329 
    -
    6330 static const basic::Info::ZoneEra kZoneEraIndian_Mauritius[] ACE_TIME_PROGMEM = {
    -
    6331  // 4:00 Mauritius %z
    -
    6332  {
    -
    6333  &kZonePolicyMauritius /*zonePolicy*/,
    -
    6334  "" /*format*/,
    -
    6335  16 /*offsetCode*/,
    -
    6336  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6337  127 /*untilYearTiny*/,
    -
    6338  1 /*untilMonth*/,
    -
    6339  1 /*untilDay*/,
    -
    6340  0 /*untilTimeCode*/,
    -
    6341  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6342  },
    -
    6343 
    -
    6344 };
    -
    6345 
    -
    6346 static const char kZoneNameIndian_Mauritius[] ACE_TIME_PROGMEM = "\x0a" "Mauritius";
    -
    6347 
    -
    6348 const basic::Info::ZoneInfo kZoneIndian_Mauritius ACE_TIME_PROGMEM = {
    -
    6349  kZoneNameIndian_Mauritius /*name*/,
    -
    6350  0x7b09c02a /*zoneId*/,
    -
    6351  &kZoneContext /*zoneContext*/,
    -
    6352  1 /*numEras*/,
    -
    6353  kZoneEraIndian_Mauritius /*eras*/,
    -
    6354  nullptr /*targetInfo*/,
    -
    6355 };
    -
    6356 
    -
    6357 //---------------------------------------------------------------------------
    -
    6358 // Zone name: Pacific/Auckland
    -
    6359 // Eras: 1
    -
    6360 //---------------------------------------------------------------------------
    -
    6361 
    -
    6362 static const basic::Info::ZoneEra kZoneEraPacific_Auckland[] ACE_TIME_PROGMEM = {
    -
    6363  // 12:00 NZ NZ%sT
    -
    6364  {
    -
    6365  &kZonePolicyNZ /*zonePolicy*/,
    -
    6366  "NZ%T" /*format*/,
    -
    6367  48 /*offsetCode*/,
    -
    6368  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6369  127 /*untilYearTiny*/,
    -
    6370  1 /*untilMonth*/,
    -
    6371  1 /*untilDay*/,
    -
    6372  0 /*untilTimeCode*/,
    -
    6373  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6374  },
    -
    6375 
    -
    6376 };
    -
    6377 
    -
    6378 static const char kZoneNamePacific_Auckland[] ACE_TIME_PROGMEM = "\x0b" "Auckland";
    -
    6379 
    -
    6380 const basic::Info::ZoneInfo kZonePacific_Auckland ACE_TIME_PROGMEM = {
    -
    6381  kZoneNamePacific_Auckland /*name*/,
    -
    6382  0x25062f86 /*zoneId*/,
    -
    6383  &kZoneContext /*zoneContext*/,
    -
    6384  1 /*numEras*/,
    -
    6385  kZoneEraPacific_Auckland /*eras*/,
    -
    6386  nullptr /*targetInfo*/,
    -
    6387 };
    -
    6388 
    -
    6389 //---------------------------------------------------------------------------
    -
    6390 // Zone name: Pacific/Chatham
    -
    6391 // Eras: 1
    -
    6392 //---------------------------------------------------------------------------
    -
    6393 
    -
    6394 static const basic::Info::ZoneEra kZoneEraPacific_Chatham[] ACE_TIME_PROGMEM = {
    -
    6395  // 12:45 Chatham %z
    -
    6396  {
    -
    6397  &kZonePolicyChatham /*zonePolicy*/,
    -
    6398  "" /*format*/,
    -
    6399  51 /*offsetCode*/,
    -
    6400  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6401  127 /*untilYearTiny*/,
    -
    6402  1 /*untilMonth*/,
    -
    6403  1 /*untilDay*/,
    -
    6404  0 /*untilTimeCode*/,
    -
    6405  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6406  },
    -
    6407 
    -
    6408 };
    -
    6409 
    -
    6410 static const char kZoneNamePacific_Chatham[] ACE_TIME_PROGMEM = "\x0b" "Chatham";
    -
    6411 
    -
    6412 const basic::Info::ZoneInfo kZonePacific_Chatham ACE_TIME_PROGMEM = {
    -
    6413  kZoneNamePacific_Chatham /*name*/,
    -
    6414  0x2f0de999 /*zoneId*/,
    -
    6415  &kZoneContext /*zoneContext*/,
    -
    6416  1 /*numEras*/,
    -
    6417  kZoneEraPacific_Chatham /*eras*/,
    -
    6418  nullptr /*targetInfo*/,
    -
    6419 };
    -
    6420 
    -
    6421 //---------------------------------------------------------------------------
    -
    6422 // Zone name: Pacific/Easter
    -
    6423 // Eras: 1
    -
    6424 //---------------------------------------------------------------------------
    -
    6425 
    -
    6426 static const basic::Info::ZoneEra kZoneEraPacific_Easter[] ACE_TIME_PROGMEM = {
    -
    6427  // -6:00 Chile %z
    -
    6428  {
    -
    6429  &kZonePolicyChile /*zonePolicy*/,
    -
    6430  "" /*format*/,
    -
    6431  -24 /*offsetCode*/,
    -
    6432  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6433  127 /*untilYearTiny*/,
    -
    6434  1 /*untilMonth*/,
    -
    6435  1 /*untilDay*/,
    -
    6436  0 /*untilTimeCode*/,
    -
    6437  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6438  },
    -
    6439 
    -
    6440 };
    -
    6441 
    -
    6442 static const char kZoneNamePacific_Easter[] ACE_TIME_PROGMEM = "\x0b" "Easter";
    -
    6443 
    -
    6444 const basic::Info::ZoneInfo kZonePacific_Easter ACE_TIME_PROGMEM = {
    -
    6445  kZoneNamePacific_Easter /*name*/,
    -
    6446  0xcf54f7e7 /*zoneId*/,
    -
    6447  &kZoneContext /*zoneContext*/,
    -
    6448  1 /*numEras*/,
    -
    6449  kZoneEraPacific_Easter /*eras*/,
    -
    6450  nullptr /*targetInfo*/,
    -
    6451 };
    -
    6452 
    -
    6453 //---------------------------------------------------------------------------
    -
    6454 // Zone name: Pacific/Efate
    -
    6455 // Eras: 1
    -
    6456 //---------------------------------------------------------------------------
    -
    6457 
    -
    6458 static const basic::Info::ZoneEra kZoneEraPacific_Efate[] ACE_TIME_PROGMEM = {
    -
    6459  // 11:00 Vanuatu %z
    -
    6460  {
    -
    6461  &kZonePolicyVanuatu /*zonePolicy*/,
    -
    6462  "" /*format*/,
    -
    6463  44 /*offsetCode*/,
    -
    6464  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6465  127 /*untilYearTiny*/,
    -
    6466  1 /*untilMonth*/,
    -
    6467  1 /*untilDay*/,
    -
    6468  0 /*untilTimeCode*/,
    -
    6469  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6470  },
    -
    6471 
    -
    6472 };
    -
    6473 
    -
    6474 static const char kZoneNamePacific_Efate[] ACE_TIME_PROGMEM = "\x0b" "Efate";
    -
    6475 
    -
    6476 const basic::Info::ZoneInfo kZonePacific_Efate ACE_TIME_PROGMEM = {
    -
    6477  kZoneNamePacific_Efate /*name*/,
    -
    6478  0x8a2bce28 /*zoneId*/,
    -
    6479  &kZoneContext /*zoneContext*/,
    -
    6480  1 /*numEras*/,
    -
    6481  kZoneEraPacific_Efate /*eras*/,
    -
    6482  nullptr /*targetInfo*/,
    -
    6483 };
    -
    6484 
    -
    6485 //---------------------------------------------------------------------------
    -
    6486 // Zone name: Pacific/Fiji
    -
    6487 // Eras: 1
    -
    6488 //---------------------------------------------------------------------------
    -
    6489 
    -
    6490 static const basic::Info::ZoneEra kZoneEraPacific_Fiji[] ACE_TIME_PROGMEM = {
    -
    6491  // 12:00 Fiji %z
    -
    6492  {
    -
    6493  &kZonePolicyFiji /*zonePolicy*/,
    -
    6494  "" /*format*/,
    -
    6495  48 /*offsetCode*/,
    -
    6496  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6497  127 /*untilYearTiny*/,
    -
    6498  1 /*untilMonth*/,
    -
    6499  1 /*untilDay*/,
    -
    6500  0 /*untilTimeCode*/,
    -
    6501  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6502  },
    -
    6503 
    -
    6504 };
    -
    6505 
    -
    6506 static const char kZoneNamePacific_Fiji[] ACE_TIME_PROGMEM = "\x0b" "Fiji";
    -
    6507 
    -
    6508 const basic::Info::ZoneInfo kZonePacific_Fiji ACE_TIME_PROGMEM = {
    -
    6509  kZoneNamePacific_Fiji /*name*/,
    -
    6510  0x23383ba5 /*zoneId*/,
    -
    6511  &kZoneContext /*zoneContext*/,
    -
    6512  1 /*numEras*/,
    -
    6513  kZoneEraPacific_Fiji /*eras*/,
    -
    6514  nullptr /*targetInfo*/,
    -
    6515 };
    -
    6516 
    -
    6517 //---------------------------------------------------------------------------
    -
    6518 // Zone name: Pacific/Galapagos
    -
    6519 // Eras: 1
    -
    6520 //---------------------------------------------------------------------------
    -
    6521 
    -
    6522 static const basic::Info::ZoneEra kZoneEraPacific_Galapagos[] ACE_TIME_PROGMEM = {
    -
    6523  // -6:00 Ecuador %z
    -
    6524  {
    -
    6525  &kZonePolicyEcuador /*zonePolicy*/,
    -
    6526  "" /*format*/,
    -
    6527  -24 /*offsetCode*/,
    -
    6528  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6529  127 /*untilYearTiny*/,
    -
    6530  1 /*untilMonth*/,
    -
    6531  1 /*untilDay*/,
    -
    6532  0 /*untilTimeCode*/,
    -
    6533  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6534  },
    -
    6535 
    -
    6536 };
    -
    6537 
    -
    6538 static const char kZoneNamePacific_Galapagos[] ACE_TIME_PROGMEM = "\x0b" "Galapagos";
    -
    6539 
    -
    6540 const basic::Info::ZoneInfo kZonePacific_Galapagos ACE_TIME_PROGMEM = {
    -
    6541  kZoneNamePacific_Galapagos /*name*/,
    -
    6542  0xa952f752 /*zoneId*/,
    -
    6543  &kZoneContext /*zoneContext*/,
    -
    6544  1 /*numEras*/,
    -
    6545  kZoneEraPacific_Galapagos /*eras*/,
    -
    6546  nullptr /*targetInfo*/,
    -
    6547 };
    -
    6548 
    -
    6549 //---------------------------------------------------------------------------
    -
    6550 // Zone name: Pacific/Gambier
    -
    6551 // Eras: 1
    -
    6552 //---------------------------------------------------------------------------
    -
    6553 
    -
    6554 static const basic::Info::ZoneEra kZoneEraPacific_Gambier[] ACE_TIME_PROGMEM = {
    -
    6555  // -9:00 - %z
    -
    6556  {
    -
    6557  nullptr /*zonePolicy*/,
    -
    6558  "" /*format*/,
    -
    6559  -36 /*offsetCode*/,
    -
    6560  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6561  127 /*untilYearTiny*/,
    -
    6562  1 /*untilMonth*/,
    -
    6563  1 /*untilDay*/,
    -
    6564  0 /*untilTimeCode*/,
    -
    6565  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6566  },
    -
    6567 
    -
    6568 };
    -
    6569 
    -
    6570 static const char kZoneNamePacific_Gambier[] ACE_TIME_PROGMEM = "\x0b" "Gambier";
    -
    6571 
    -
    6572 const basic::Info::ZoneInfo kZonePacific_Gambier ACE_TIME_PROGMEM = {
    -
    6573  kZoneNamePacific_Gambier /*name*/,
    -
    6574  0x53720c3a /*zoneId*/,
    -
    6575  &kZoneContext /*zoneContext*/,
    -
    6576  1 /*numEras*/,
    -
    6577  kZoneEraPacific_Gambier /*eras*/,
    -
    6578  nullptr /*targetInfo*/,
    -
    6579 };
    -
    6580 
    -
    6581 //---------------------------------------------------------------------------
    -
    6582 // Zone name: Pacific/Guadalcanal
    -
    6583 // Eras: 1
    -
    6584 //---------------------------------------------------------------------------
    -
    6585 
    -
    6586 static const basic::Info::ZoneEra kZoneEraPacific_Guadalcanal[] ACE_TIME_PROGMEM = {
    -
    6587  // 11:00 - %z
    -
    6588  {
    -
    6589  nullptr /*zonePolicy*/,
    -
    6590  "" /*format*/,
    -
    6591  44 /*offsetCode*/,
    -
    6592  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6593  127 /*untilYearTiny*/,
    -
    6594  1 /*untilMonth*/,
    -
    6595  1 /*untilDay*/,
    -
    6596  0 /*untilTimeCode*/,
    -
    6597  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6598  },
    -
    6599 
    -
    6600 };
    -
    6601 
    -
    6602 static const char kZoneNamePacific_Guadalcanal[] ACE_TIME_PROGMEM = "\x0b" "Guadalcanal";
    -
    6603 
    -
    6604 const basic::Info::ZoneInfo kZonePacific_Guadalcanal ACE_TIME_PROGMEM = {
    -
    6605  kZoneNamePacific_Guadalcanal /*name*/,
    -
    6606  0xf4dd25f0 /*zoneId*/,
    -
    6607  &kZoneContext /*zoneContext*/,
    -
    6608  1 /*numEras*/,
    -
    6609  kZoneEraPacific_Guadalcanal /*eras*/,
    -
    6610  nullptr /*targetInfo*/,
    -
    6611 };
    -
    6612 
    -
    6613 //---------------------------------------------------------------------------
    -
    6614 // Zone name: Pacific/Honolulu
    -
    6615 // Eras: 1
    -
    6616 //---------------------------------------------------------------------------
    -
    6617 
    -
    6618 static const basic::Info::ZoneEra kZoneEraPacific_Honolulu[] ACE_TIME_PROGMEM = {
    -
    6619  // -10:00 - HST
    -
    6620  {
    -
    6621  nullptr /*zonePolicy*/,
    -
    6622  "HST" /*format*/,
    -
    6623  -40 /*offsetCode*/,
    -
    6624  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6625  127 /*untilYearTiny*/,
    -
    6626  1 /*untilMonth*/,
    -
    6627  1 /*untilDay*/,
    -
    6628  0 /*untilTimeCode*/,
    -
    6629  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6630  },
    -
    6631 
    -
    6632 };
    -
    6633 
    -
    6634 static const char kZoneNamePacific_Honolulu[] ACE_TIME_PROGMEM = "\x0b" "Honolulu";
    -
    6635 
    -
    6636 const basic::Info::ZoneInfo kZonePacific_Honolulu ACE_TIME_PROGMEM = {
    -
    6637  kZoneNamePacific_Honolulu /*name*/,
    -
    6638  0xe6e70af9 /*zoneId*/,
    -
    6639  &kZoneContext /*zoneContext*/,
    -
    6640  1 /*numEras*/,
    -
    6641  kZoneEraPacific_Honolulu /*eras*/,
    -
    6642  nullptr /*targetInfo*/,
    -
    6643 };
    -
    6644 
    -
    6645 //---------------------------------------------------------------------------
    -
    6646 // Zone name: Pacific/Kanton
    -
    6647 // Eras: 1
    -
    6648 //---------------------------------------------------------------------------
    -
    6649 
    -
    6650 static const basic::Info::ZoneEra kZoneEraPacific_Kanton[] ACE_TIME_PROGMEM = {
    -
    6651  // 13:00 - %z
    -
    6652  {
    -
    6653  nullptr /*zonePolicy*/,
    -
    6654  "" /*format*/,
    -
    6655  52 /*offsetCode*/,
    -
    6656  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6657  127 /*untilYearTiny*/,
    -
    6658  1 /*untilMonth*/,
    -
    6659  1 /*untilDay*/,
    -
    6660  0 /*untilTimeCode*/,
    -
    6661  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6662  },
    -
    6663 
    -
    6664 };
    -
    6665 
    -
    6666 static const char kZoneNamePacific_Kanton[] ACE_TIME_PROGMEM = "\x0b" "Kanton";
    -
    6667 
    -
    6668 const basic::Info::ZoneInfo kZonePacific_Kanton ACE_TIME_PROGMEM = {
    -
    6669  kZoneNamePacific_Kanton /*name*/,
    -
    6670  0xdd512f0e /*zoneId*/,
    -
    6671  &kZoneContext /*zoneContext*/,
    -
    6672  1 /*numEras*/,
    -
    6673  kZoneEraPacific_Kanton /*eras*/,
    -
    6674  nullptr /*targetInfo*/,
    -
    6675 };
    -
    6676 
    -
    6677 //---------------------------------------------------------------------------
    -
    6678 // Zone name: Pacific/Kiritimati
    -
    6679 // Eras: 1
    -
    6680 //---------------------------------------------------------------------------
    -
    6681 
    -
    6682 static const basic::Info::ZoneEra kZoneEraPacific_Kiritimati[] ACE_TIME_PROGMEM = {
    -
    6683  // 14:00 - %z
    -
    6684  {
    -
    6685  nullptr /*zonePolicy*/,
    -
    6686  "" /*format*/,
    -
    6687  56 /*offsetCode*/,
    -
    6688  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6689  127 /*untilYearTiny*/,
    -
    6690  1 /*untilMonth*/,
    -
    6691  1 /*untilDay*/,
    -
    6692  0 /*untilTimeCode*/,
    -
    6693  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6694  },
    -
    6695 
    -
    6696 };
    -
    6697 
    -
    6698 static const char kZoneNamePacific_Kiritimati[] ACE_TIME_PROGMEM = "\x0b" "Kiritimati";
    -
    6699 
    -
    6700 const basic::Info::ZoneInfo kZonePacific_Kiritimati ACE_TIME_PROGMEM = {
    -
    6701  kZoneNamePacific_Kiritimati /*name*/,
    -
    6702  0x8305073a /*zoneId*/,
    -
    6703  &kZoneContext /*zoneContext*/,
    -
    6704  1 /*numEras*/,
    -
    6705  kZoneEraPacific_Kiritimati /*eras*/,
    -
    6706  nullptr /*targetInfo*/,
    -
    6707 };
    -
    6708 
    -
    6709 //---------------------------------------------------------------------------
    -
    6710 // Zone name: Pacific/Kosrae
    -
    6711 // Eras: 2
    -
    6712 //---------------------------------------------------------------------------
    -
    6713 
    -
    6714 static const basic::Info::ZoneEra kZoneEraPacific_Kosrae[] ACE_TIME_PROGMEM = {
    -
    6715  // 12:00 - %z 1999
    -
    6716  {
    -
    6717  nullptr /*zonePolicy*/,
    -
    6718  "" /*format*/,
    -
    6719  48 /*offsetCode*/,
    -
    6720  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6721  -101 /*untilYearTiny*/,
    -
    6722  1 /*untilMonth*/,
    -
    6723  1 /*untilDay*/,
    -
    6724  0 /*untilTimeCode*/,
    -
    6725  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6726  },
    -
    6727  // 11:00 - %z
    -
    6728  {
    -
    6729  nullptr /*zonePolicy*/,
    -
    6730  "" /*format*/,
    -
    6731  44 /*offsetCode*/,
    -
    6732  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6733  127 /*untilYearTiny*/,
    -
    6734  1 /*untilMonth*/,
    -
    6735  1 /*untilDay*/,
    -
    6736  0 /*untilTimeCode*/,
    -
    6737  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6738  },
    -
    6739 
    -
    6740 };
    -
    6741 
    -
    6742 static const char kZoneNamePacific_Kosrae[] ACE_TIME_PROGMEM = "\x0b" "Kosrae";
    -
    6743 
    -
    6744 const basic::Info::ZoneInfo kZonePacific_Kosrae ACE_TIME_PROGMEM = {
    -
    6745  kZoneNamePacific_Kosrae /*name*/,
    -
    6746  0xde5139a8 /*zoneId*/,
    -
    6747  &kZoneContext /*zoneContext*/,
    -
    6748  2 /*numEras*/,
    -
    6749  kZoneEraPacific_Kosrae /*eras*/,
    -
    6750  nullptr /*targetInfo*/,
    -
    6751 };
    -
    6752 
    -
    6753 //---------------------------------------------------------------------------
    -
    6754 // Zone name: Pacific/Kwajalein
    -
    6755 // Eras: 1
    -
    6756 //---------------------------------------------------------------------------
    -
    6757 
    -
    6758 static const basic::Info::ZoneEra kZoneEraPacific_Kwajalein[] ACE_TIME_PROGMEM = {
    -
    6759  // 12:00 - %z
    -
    6760  {
    -
    6761  nullptr /*zonePolicy*/,
    -
    6762  "" /*format*/,
    -
    6763  48 /*offsetCode*/,
    -
    6764  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6765  127 /*untilYearTiny*/,
    -
    6766  1 /*untilMonth*/,
    -
    6767  1 /*untilDay*/,
    -
    6768  0 /*untilTimeCode*/,
    -
    6769  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6770  },
    -
    6771 
    -
    6772 };
    -
    6773 
    -
    6774 static const char kZoneNamePacific_Kwajalein[] ACE_TIME_PROGMEM = "\x0b" "Kwajalein";
    -
    6775 
    -
    6776 const basic::Info::ZoneInfo kZonePacific_Kwajalein ACE_TIME_PROGMEM = {
    -
    6777  kZoneNamePacific_Kwajalein /*name*/,
    -
    6778  0x8e216759 /*zoneId*/,
    -
    6779  &kZoneContext /*zoneContext*/,
    -
    6780  1 /*numEras*/,
    -
    6781  kZoneEraPacific_Kwajalein /*eras*/,
    -
    6782  nullptr /*targetInfo*/,
    -
    6783 };
    -
    6784 
    -
    6785 //---------------------------------------------------------------------------
    -
    6786 // Zone name: Pacific/Marquesas
    -
    6787 // Eras: 1
    -
    6788 //---------------------------------------------------------------------------
    -
    6789 
    -
    6790 static const basic::Info::ZoneEra kZoneEraPacific_Marquesas[] ACE_TIME_PROGMEM = {
    -
    6791  // -9:30 - %z
    -
    6792  {
    -
    6793  nullptr /*zonePolicy*/,
    -
    6794  "" /*format*/,
    -
    6795  -38 /*offsetCode*/,
    -
    6796  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6797  127 /*untilYearTiny*/,
    -
    6798  1 /*untilMonth*/,
    -
    6799  1 /*untilDay*/,
    -
    6800  0 /*untilTimeCode*/,
    -
    6801  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6802  },
    -
    6803 
    -
    6804 };
    -
    6805 
    -
    6806 static const char kZoneNamePacific_Marquesas[] ACE_TIME_PROGMEM = "\x0b" "Marquesas";
    -
    6807 
    -
    6808 const basic::Info::ZoneInfo kZonePacific_Marquesas ACE_TIME_PROGMEM = {
    -
    6809  kZoneNamePacific_Marquesas /*name*/,
    -
    6810  0x57ca7135 /*zoneId*/,
    -
    6811  &kZoneContext /*zoneContext*/,
    -
    6812  1 /*numEras*/,
    -
    6813  kZoneEraPacific_Marquesas /*eras*/,
    -
    6814  nullptr /*targetInfo*/,
    -
    6815 };
    -
    6816 
    -
    6817 //---------------------------------------------------------------------------
    -
    6818 // Zone name: Pacific/Nauru
    -
    6819 // Eras: 1
    -
    6820 //---------------------------------------------------------------------------
    -
    6821 
    -
    6822 static const basic::Info::ZoneEra kZoneEraPacific_Nauru[] ACE_TIME_PROGMEM = {
    -
    6823  // 12:00 - %z
    -
    6824  {
    -
    6825  nullptr /*zonePolicy*/,
    -
    6826  "" /*format*/,
    -
    6827  48 /*offsetCode*/,
    -
    6828  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6829  127 /*untilYearTiny*/,
    -
    6830  1 /*untilMonth*/,
    -
    6831  1 /*untilDay*/,
    -
    6832  0 /*untilTimeCode*/,
    -
    6833  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6834  },
    -
    6835 
    -
    6836 };
    -
    6837 
    -
    6838 static const char kZoneNamePacific_Nauru[] ACE_TIME_PROGMEM = "\x0b" "Nauru";
    -
    6839 
    -
    6840 const basic::Info::ZoneInfo kZonePacific_Nauru ACE_TIME_PROGMEM = {
    -
    6841  kZoneNamePacific_Nauru /*name*/,
    -
    6842  0x8acc41ae /*zoneId*/,
    -
    6843  &kZoneContext /*zoneContext*/,
    -
    6844  1 /*numEras*/,
    -
    6845  kZoneEraPacific_Nauru /*eras*/,
    -
    6846  nullptr /*targetInfo*/,
    -
    6847 };
    -
    6848 
    -
    6849 //---------------------------------------------------------------------------
    -
    6850 // Zone name: Pacific/Niue
    -
    6851 // Eras: 1
    -
    6852 //---------------------------------------------------------------------------
    -
    6853 
    -
    6854 static const basic::Info::ZoneEra kZoneEraPacific_Niue[] ACE_TIME_PROGMEM = {
    -
    6855  // -11:00 - %z
    -
    6856  {
    -
    6857  nullptr /*zonePolicy*/,
    -
    6858  "" /*format*/,
    -
    6859  -44 /*offsetCode*/,
    -
    6860  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6861  127 /*untilYearTiny*/,
    -
    6862  1 /*untilMonth*/,
    -
    6863  1 /*untilDay*/,
    -
    6864  0 /*untilTimeCode*/,
    -
    6865  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6866  },
    -
    6867 
    -
    6868 };
    -
    6869 
    -
    6870 static const char kZoneNamePacific_Niue[] ACE_TIME_PROGMEM = "\x0b" "Niue";
    -
    6871 
    -
    6872 const basic::Info::ZoneInfo kZonePacific_Niue ACE_TIME_PROGMEM = {
    -
    6873  kZoneNamePacific_Niue /*name*/,
    -
    6874  0x233ca014 /*zoneId*/,
    -
    6875  &kZoneContext /*zoneContext*/,
    -
    6876  1 /*numEras*/,
    -
    6877  kZoneEraPacific_Niue /*eras*/,
    -
    6878  nullptr /*targetInfo*/,
    -
    6879 };
    -
    6880 
    -
    6881 //---------------------------------------------------------------------------
    -
    6882 // Zone name: Pacific/Noumea
    -
    6883 // Eras: 1
    -
    6884 //---------------------------------------------------------------------------
    -
    6885 
    -
    6886 static const basic::Info::ZoneEra kZoneEraPacific_Noumea[] ACE_TIME_PROGMEM = {
    -
    6887  // 11:00 NC %z
    -
    6888  {
    -
    6889  &kZonePolicyNC /*zonePolicy*/,
    -
    6890  "" /*format*/,
    -
    6891  44 /*offsetCode*/,
    -
    6892  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6893  127 /*untilYearTiny*/,
    -
    6894  1 /*untilMonth*/,
    -
    6895  1 /*untilDay*/,
    -
    6896  0 /*untilTimeCode*/,
    -
    6897  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6898  },
    -
    6899 
    -
    6900 };
    -
    6901 
    -
    6902 static const char kZoneNamePacific_Noumea[] ACE_TIME_PROGMEM = "\x0b" "Noumea";
    -
    6903 
    -
    6904 const basic::Info::ZoneInfo kZonePacific_Noumea ACE_TIME_PROGMEM = {
    -
    6905  kZoneNamePacific_Noumea /*name*/,
    -
    6906  0xe551b788 /*zoneId*/,
    -
    6907  &kZoneContext /*zoneContext*/,
    -
    6908  1 /*numEras*/,
    -
    6909  kZoneEraPacific_Noumea /*eras*/,
    -
    6910  nullptr /*targetInfo*/,
    -
    6911 };
    -
    6912 
    -
    6913 //---------------------------------------------------------------------------
    -
    6914 // Zone name: Pacific/Pago_Pago
    -
    6915 // Eras: 1
    -
    6916 //---------------------------------------------------------------------------
    -
    6917 
    -
    6918 static const basic::Info::ZoneEra kZoneEraPacific_Pago_Pago[] ACE_TIME_PROGMEM = {
    -
    6919  // -11:00 - SST
    -
    6920  {
    -
    6921  nullptr /*zonePolicy*/,
    -
    6922  "SST" /*format*/,
    -
    6923  -44 /*offsetCode*/,
    -
    6924  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6925  127 /*untilYearTiny*/,
    -
    6926  1 /*untilMonth*/,
    -
    6927  1 /*untilDay*/,
    -
    6928  0 /*untilTimeCode*/,
    -
    6929  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6930  },
    -
    6931 
    -
    6932 };
    -
    6933 
    -
    6934 static const char kZoneNamePacific_Pago_Pago[] ACE_TIME_PROGMEM = "\x0b" "Pago_Pago";
    -
    6935 
    -
    6936 const basic::Info::ZoneInfo kZonePacific_Pago_Pago ACE_TIME_PROGMEM = {
    -
    6937  kZoneNamePacific_Pago_Pago /*name*/,
    -
    6938  0x603aebd0 /*zoneId*/,
    -
    6939  &kZoneContext /*zoneContext*/,
    -
    6940  1 /*numEras*/,
    -
    6941  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    6942  nullptr /*targetInfo*/,
    -
    6943 };
    -
    6944 
    -
    6945 //---------------------------------------------------------------------------
    -
    6946 // Zone name: Pacific/Palau
    -
    6947 // Eras: 1
    -
    6948 //---------------------------------------------------------------------------
    -
    6949 
    -
    6950 static const basic::Info::ZoneEra kZoneEraPacific_Palau[] ACE_TIME_PROGMEM = {
    -
    6951  // 9:00 - %z
    -
    6952  {
    -
    6953  nullptr /*zonePolicy*/,
    -
    6954  "" /*format*/,
    -
    6955  36 /*offsetCode*/,
    -
    6956  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6957  127 /*untilYearTiny*/,
    -
    6958  1 /*untilMonth*/,
    -
    6959  1 /*untilDay*/,
    -
    6960  0 /*untilTimeCode*/,
    -
    6961  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6962  },
    -
    6963 
    -
    6964 };
    -
    6965 
    -
    6966 static const char kZoneNamePacific_Palau[] ACE_TIME_PROGMEM = "\x0b" "Palau";
    -
    6967 
    -
    6968 const basic::Info::ZoneInfo kZonePacific_Palau ACE_TIME_PROGMEM = {
    -
    6969  kZoneNamePacific_Palau /*name*/,
    -
    6970  0x8af04a36 /*zoneId*/,
    -
    6971  &kZoneContext /*zoneContext*/,
    -
    6972  1 /*numEras*/,
    -
    6973  kZoneEraPacific_Palau /*eras*/,
    -
    6974  nullptr /*targetInfo*/,
    -
    6975 };
    -
    6976 
    -
    6977 //---------------------------------------------------------------------------
    -
    6978 // Zone name: Pacific/Pitcairn
    -
    6979 // Eras: 1
    -
    6980 //---------------------------------------------------------------------------
    -
    6981 
    -
    6982 static const basic::Info::ZoneEra kZoneEraPacific_Pitcairn[] ACE_TIME_PROGMEM = {
    -
    6983  // -8:00 - %z
    -
    6984  {
    -
    6985  nullptr /*zonePolicy*/,
    -
    6986  "" /*format*/,
    -
    6987  -32 /*offsetCode*/,
    -
    6988  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6989  127 /*untilYearTiny*/,
    -
    6990  1 /*untilMonth*/,
    -
    6991  1 /*untilDay*/,
    -
    6992  0 /*untilTimeCode*/,
    -
    6993  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6994  },
    -
    6995 
    -
    6996 };
    -
    6997 
    -
    6998 static const char kZoneNamePacific_Pitcairn[] ACE_TIME_PROGMEM = "\x0b" "Pitcairn";
    -
    6999 
    -
    7000 const basic::Info::ZoneInfo kZonePacific_Pitcairn ACE_TIME_PROGMEM = {
    -
    7001  kZoneNamePacific_Pitcairn /*name*/,
    -
    7002  0x8837d8bd /*zoneId*/,
    -
    7003  &kZoneContext /*zoneContext*/,
    -
    7004  1 /*numEras*/,
    -
    7005  kZoneEraPacific_Pitcairn /*eras*/,
    -
    7006  nullptr /*targetInfo*/,
    -
    7007 };
    -
    7008 
    -
    7009 //---------------------------------------------------------------------------
    -
    7010 // Zone name: Pacific/Port_Moresby
    -
    7011 // Eras: 1
    -
    7012 //---------------------------------------------------------------------------
    -
    7013 
    -
    7014 static const basic::Info::ZoneEra kZoneEraPacific_Port_Moresby[] ACE_TIME_PROGMEM = {
    -
    7015  // 10:00 - %z
    -
    7016  {
    -
    7017  nullptr /*zonePolicy*/,
    -
    7018  "" /*format*/,
    -
    7019  40 /*offsetCode*/,
    -
    7020  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7021  127 /*untilYearTiny*/,
    -
    7022  1 /*untilMonth*/,
    -
    7023  1 /*untilDay*/,
    -
    7024  0 /*untilTimeCode*/,
    -
    7025  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7026  },
    -
    7027 
    -
    7028 };
    -
    7029 
    -
    7030 static const char kZoneNamePacific_Port_Moresby[] ACE_TIME_PROGMEM = "\x0b" "Port_Moresby";
    -
    7031 
    -
    7032 const basic::Info::ZoneInfo kZonePacific_Port_Moresby ACE_TIME_PROGMEM = {
    -
    7033  kZoneNamePacific_Port_Moresby /*name*/,
    -
    7034  0xa7ba7f68 /*zoneId*/,
    -
    7035  &kZoneContext /*zoneContext*/,
    -
    7036  1 /*numEras*/,
    -
    7037  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    7038  nullptr /*targetInfo*/,
    -
    7039 };
    -
    7040 
    -
    7041 //---------------------------------------------------------------------------
    -
    7042 // Zone name: Pacific/Rarotonga
    -
    7043 // Eras: 1
    -
    7044 //---------------------------------------------------------------------------
    -
    7045 
    -
    7046 static const basic::Info::ZoneEra kZoneEraPacific_Rarotonga[] ACE_TIME_PROGMEM = {
    -
    7047  // -10:00 Cook %z
    -
    7048  {
    -
    7049  &kZonePolicyCook /*zonePolicy*/,
    -
    7050  "" /*format*/,
    -
    7051  -40 /*offsetCode*/,
    -
    7052  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7053  127 /*untilYearTiny*/,
    -
    7054  1 /*untilMonth*/,
    -
    7055  1 /*untilDay*/,
    -
    7056  0 /*untilTimeCode*/,
    -
    7057  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7058  },
    -
    7059 
    -
    7060 };
    -
    7061 
    -
    7062 static const char kZoneNamePacific_Rarotonga[] ACE_TIME_PROGMEM = "\x0b" "Rarotonga";
    -
    7063 
    -
    7064 const basic::Info::ZoneInfo kZonePacific_Rarotonga ACE_TIME_PROGMEM = {
    -
    7065  kZoneNamePacific_Rarotonga /*name*/,
    -
    7066  0x9981a3b0 /*zoneId*/,
    -
    7067  &kZoneContext /*zoneContext*/,
    -
    7068  1 /*numEras*/,
    -
    7069  kZoneEraPacific_Rarotonga /*eras*/,
    -
    7070  nullptr /*targetInfo*/,
    -
    7071 };
    -
    7072 
    -
    7073 //---------------------------------------------------------------------------
    -
    7074 // Zone name: Pacific/Tahiti
    -
    7075 // Eras: 1
    -
    7076 //---------------------------------------------------------------------------
    -
    7077 
    -
    7078 static const basic::Info::ZoneEra kZoneEraPacific_Tahiti[] ACE_TIME_PROGMEM = {
    -
    7079  // -10:00 - %z
    -
    7080  {
    -
    7081  nullptr /*zonePolicy*/,
    -
    7082  "" /*format*/,
    -
    7083  -40 /*offsetCode*/,
    -
    7084  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7085  127 /*untilYearTiny*/,
    -
    7086  1 /*untilMonth*/,
    -
    7087  1 /*untilDay*/,
    -
    7088  0 /*untilTimeCode*/,
    -
    7089  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7090  },
    -
    7091 
    -
    7092 };
    -
    7093 
    -
    7094 static const char kZoneNamePacific_Tahiti[] ACE_TIME_PROGMEM = "\x0b" "Tahiti";
    -
    7095 
    -
    7096 const basic::Info::ZoneInfo kZonePacific_Tahiti ACE_TIME_PROGMEM = {
    -
    7097  kZoneNamePacific_Tahiti /*name*/,
    -
    7098  0xf24c2446 /*zoneId*/,
    -
    7099  &kZoneContext /*zoneContext*/,
    -
    7100  1 /*numEras*/,
    -
    7101  kZoneEraPacific_Tahiti /*eras*/,
    -
    7102  nullptr /*targetInfo*/,
    -
    7103 };
    -
    7104 
    -
    7105 //---------------------------------------------------------------------------
    -
    7106 // Zone name: Pacific/Tarawa
    -
    7107 // Eras: 1
    -
    7108 //---------------------------------------------------------------------------
    -
    7109 
    -
    7110 static const basic::Info::ZoneEra kZoneEraPacific_Tarawa[] ACE_TIME_PROGMEM = {
    -
    7111  // 12:00 - %z
    -
    7112  {
    -
    7113  nullptr /*zonePolicy*/,
    -
    7114  "" /*format*/,
    -
    7115  48 /*offsetCode*/,
    -
    7116  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7117  127 /*untilYearTiny*/,
    -
    7118  1 /*untilMonth*/,
    -
    7119  1 /*untilDay*/,
    -
    7120  0 /*untilTimeCode*/,
    -
    7121  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7122  },
    -
    7123 
    -
    7124 };
    -
    7125 
    -
    7126 static const char kZoneNamePacific_Tarawa[] ACE_TIME_PROGMEM = "\x0b" "Tarawa";
    -
    7127 
    -
    7128 const basic::Info::ZoneInfo kZonePacific_Tarawa ACE_TIME_PROGMEM = {
    -
    7129  kZoneNamePacific_Tarawa /*name*/,
    -
    7130  0xf2517e63 /*zoneId*/,
    -
    7131  &kZoneContext /*zoneContext*/,
    -
    7132  1 /*numEras*/,
    -
    7133  kZoneEraPacific_Tarawa /*eras*/,
    -
    7134  nullptr /*targetInfo*/,
    -
    7135 };
    -
    7136 
    -
    7137 //---------------------------------------------------------------------------
    -
    7138 // Zone name: Pacific/Tongatapu
    -
    7139 // Eras: 2
    -
    7140 //---------------------------------------------------------------------------
    -
    7141 
    -
    7142 static const basic::Info::ZoneEra kZoneEraPacific_Tongatapu[] ACE_TIME_PROGMEM = {
    -
    7143  // 13:00 - %z 1999
    -
    7144  {
    -
    7145  nullptr /*zonePolicy*/,
    -
    7146  "" /*format*/,
    -
    7147  52 /*offsetCode*/,
    -
    7148  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7149  -101 /*untilYearTiny*/,
    -
    7150  1 /*untilMonth*/,
    -
    7151  1 /*untilDay*/,
    -
    7152  0 /*untilTimeCode*/,
    -
    7153  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7154  },
    -
    7155  // 13:00 Tonga %z
    -
    7156  {
    -
    7157  &kZonePolicyTonga /*zonePolicy*/,
    -
    7158  "" /*format*/,
    -
    7159  52 /*offsetCode*/,
    -
    7160  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7161  127 /*untilYearTiny*/,
    -
    7162  1 /*untilMonth*/,
    -
    7163  1 /*untilDay*/,
    -
    7164  0 /*untilTimeCode*/,
    -
    7165  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7166  },
    -
    7167 
    -
    7168 };
    -
    7169 
    -
    7170 static const char kZoneNamePacific_Tongatapu[] ACE_TIME_PROGMEM = "\x0b" "Tongatapu";
    -
    7171 
    -
    7172 const basic::Info::ZoneInfo kZonePacific_Tongatapu ACE_TIME_PROGMEM = {
    -
    7173  kZoneNamePacific_Tongatapu /*name*/,
    -
    7174  0x262ca836 /*zoneId*/,
    -
    7175  &kZoneContext /*zoneContext*/,
    -
    7176  2 /*numEras*/,
    -
    7177  kZoneEraPacific_Tongatapu /*eras*/,
    -
    7178  nullptr /*targetInfo*/,
    -
    7179 };
    -
    7180 
    -
    7181 
    -
    7182 
    -
    7183 //---------------------------------------------------------------------------
    -
    7184 // Links: 231
    -
    7185 //---------------------------------------------------------------------------
    -
    7186 
    -
    7187 //---------------------------------------------------------------------------
    -
    7188 // Link name: Africa/Accra -> Africa/Abidjan
    -
    7189 //---------------------------------------------------------------------------
    -
    7190 
    -
    7191 static const char kZoneNameAfrica_Accra[] ACE_TIME_PROGMEM = "\x01" "Accra";
    -
    7192 
    -
    7193 const basic::Info::ZoneInfo kZoneAfrica_Accra ACE_TIME_PROGMEM = {
    -
    7194  kZoneNameAfrica_Accra /*name*/,
    -
    7195  0x77d5b054 /*zoneId*/,
    -
    7196  &kZoneContext /*zoneContext*/,
    -
    7197  1 /*numEras*/,
    -
    7198  kZoneEraAfrica_Abidjan /*eras*/,
    -
    7199  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    7200 };
    -
    7201 
    -
    7202 //---------------------------------------------------------------------------
    -
    7203 // Link name: Africa/Addis_Ababa -> Africa/Nairobi
    -
    7204 //---------------------------------------------------------------------------
    -
    7205 
    -
    7206 static const char kZoneNameAfrica_Addis_Ababa[] ACE_TIME_PROGMEM = "\x01" "Addis_Ababa";
    -
    7207 
    -
    7208 const basic::Info::ZoneInfo kZoneAfrica_Addis_Ababa ACE_TIME_PROGMEM = {
    -
    7209  kZoneNameAfrica_Addis_Ababa /*name*/,
    -
    7210  0x05ae1e65 /*zoneId*/,
    -
    7211  &kZoneContext /*zoneContext*/,
    -
    7212  1 /*numEras*/,
    -
    7213  kZoneEraAfrica_Nairobi /*eras*/,
    -
    7214  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    7215 };
    -
    7216 
    -
    7217 //---------------------------------------------------------------------------
    -
    7218 // Link name: Africa/Asmara -> Africa/Nairobi
    -
    7219 //---------------------------------------------------------------------------
    -
    7220 
    -
    7221 static const char kZoneNameAfrica_Asmara[] ACE_TIME_PROGMEM = "\x01" "Asmara";
    -
    7222 
    -
    7223 const basic::Info::ZoneInfo kZoneAfrica_Asmara ACE_TIME_PROGMEM = {
    -
    7224  kZoneNameAfrica_Asmara /*name*/,
    -
    7225  0x73b278ef /*zoneId*/,
    -
    7226  &kZoneContext /*zoneContext*/,
    -
    7227  1 /*numEras*/,
    -
    7228  kZoneEraAfrica_Nairobi /*eras*/,
    -
    7229  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    7230 };
    -
    7231 
    -
    7232 //---------------------------------------------------------------------------
    -
    7233 // Link name: Africa/Asmera -> Africa/Nairobi
    -
    7234 //---------------------------------------------------------------------------
    -
    7235 
    -
    7236 static const char kZoneNameAfrica_Asmera[] ACE_TIME_PROGMEM = "\x01" "Asmera";
    -
    7237 
    -
    7238 const basic::Info::ZoneInfo kZoneAfrica_Asmera ACE_TIME_PROGMEM = {
    -
    7239  kZoneNameAfrica_Asmera /*name*/,
    -
    7240  0x73b289f3 /*zoneId*/,
    -
    7241  &kZoneContext /*zoneContext*/,
    -
    7242  1 /*numEras*/,
    -
    7243  kZoneEraAfrica_Nairobi /*eras*/,
    -
    7244  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    7245 };
    -
    7246 
    -
    7247 //---------------------------------------------------------------------------
    -
    7248 // Link name: Africa/Bamako -> Africa/Abidjan
    -
    7249 //---------------------------------------------------------------------------
    -
    7250 
    -
    7251 static const char kZoneNameAfrica_Bamako[] ACE_TIME_PROGMEM = "\x01" "Bamako";
    -
    7252 
    -
    7253 const basic::Info::ZoneInfo kZoneAfrica_Bamako ACE_TIME_PROGMEM = {
    -
    7254  kZoneNameAfrica_Bamako /*name*/,
    -
    7255  0x74c1e7a5 /*zoneId*/,
    -
    7256  &kZoneContext /*zoneContext*/,
    -
    7257  1 /*numEras*/,
    -
    7258  kZoneEraAfrica_Abidjan /*eras*/,
    -
    7259  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    7260 };
    -
    7261 
    -
    7262 //---------------------------------------------------------------------------
    -
    7263 // Link name: Africa/Bangui -> Africa/Lagos
    -
    7264 //---------------------------------------------------------------------------
    -
    7265 
    -
    7266 static const char kZoneNameAfrica_Bangui[] ACE_TIME_PROGMEM = "\x01" "Bangui";
    -
    7267 
    -
    7268 const basic::Info::ZoneInfo kZoneAfrica_Bangui ACE_TIME_PROGMEM = {
    -
    7269  kZoneNameAfrica_Bangui /*name*/,
    -
    7270  0x74c28ed0 /*zoneId*/,
    -
    7271  &kZoneContext /*zoneContext*/,
    -
    7272  1 /*numEras*/,
    -
    7273  kZoneEraAfrica_Lagos /*eras*/,
    -
    7274  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    7275 };
    -
    7276 
    -
    7277 //---------------------------------------------------------------------------
    -
    7278 // Link name: Africa/Banjul -> Africa/Abidjan
    -
    7279 //---------------------------------------------------------------------------
    -
    7280 
    -
    7281 static const char kZoneNameAfrica_Banjul[] ACE_TIME_PROGMEM = "\x01" "Banjul";
    -
    7282 
    -
    7283 const basic::Info::ZoneInfo kZoneAfrica_Banjul ACE_TIME_PROGMEM = {
    -
    7284  kZoneNameAfrica_Banjul /*name*/,
    -
    7285  0x74c29b96 /*zoneId*/,
    -
    7286  &kZoneContext /*zoneContext*/,
    -
    7287  1 /*numEras*/,
    -
    7288  kZoneEraAfrica_Abidjan /*eras*/,
    -
    7289  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    7290 };
    -
    7291 
    -
    7292 //---------------------------------------------------------------------------
    -
    7293 // Link name: Africa/Blantyre -> Africa/Maputo
    -
    7294 //---------------------------------------------------------------------------
    -
    7295 
    -
    7296 static const char kZoneNameAfrica_Blantyre[] ACE_TIME_PROGMEM = "\x01" "Blantyre";
    -
    7297 
    -
    7298 const basic::Info::ZoneInfo kZoneAfrica_Blantyre ACE_TIME_PROGMEM = {
    -
    7299  kZoneNameAfrica_Blantyre /*name*/,
    -
    7300  0xe08d813b /*zoneId*/,
    -
    7301  &kZoneContext /*zoneContext*/,
    -
    7302  1 /*numEras*/,
    -
    7303  kZoneEraAfrica_Maputo /*eras*/,
    -
    7304  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    7305 };
    -
    7306 
    -
    7307 //---------------------------------------------------------------------------
    -
    7308 // Link name: Africa/Brazzaville -> Africa/Lagos
    -
    7309 //---------------------------------------------------------------------------
    -
    7310 
    -
    7311 static const char kZoneNameAfrica_Brazzaville[] ACE_TIME_PROGMEM = "\x01" "Brazzaville";
    -
    7312 
    -
    7313 const basic::Info::ZoneInfo kZoneAfrica_Brazzaville ACE_TIME_PROGMEM = {
    -
    7314  kZoneNameAfrica_Brazzaville /*name*/,
    -
    7315  0x39cda760 /*zoneId*/,
    -
    7316  &kZoneContext /*zoneContext*/,
    -
    7317  1 /*numEras*/,
    -
    7318  kZoneEraAfrica_Lagos /*eras*/,
    -
    7319  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    7320 };
    -
    7321 
    -
    7322 //---------------------------------------------------------------------------
    -
    7323 // Link name: Africa/Bujumbura -> Africa/Maputo
    -
    7324 //---------------------------------------------------------------------------
    -
    7325 
    -
    7326 static const char kZoneNameAfrica_Bujumbura[] ACE_TIME_PROGMEM = "\x01" "Bujumbura";
    -
    7327 
    -
    7328 const basic::Info::ZoneInfo kZoneAfrica_Bujumbura ACE_TIME_PROGMEM = {
    -
    7329  kZoneNameAfrica_Bujumbura /*name*/,
    -
    7330  0x05232a47 /*zoneId*/,
    -
    7331  &kZoneContext /*zoneContext*/,
    -
    7332  1 /*numEras*/,
    -
    7333  kZoneEraAfrica_Maputo /*eras*/,
    -
    7334  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    7335 };
    -
    7336 
    -
    7337 //---------------------------------------------------------------------------
    -
    7338 // Link name: Africa/Conakry -> Africa/Abidjan
    -
    7339 //---------------------------------------------------------------------------
    -
    7340 
    -
    7341 static const char kZoneNameAfrica_Conakry[] ACE_TIME_PROGMEM = "\x01" "Conakry";
    -
    7342 
    -
    7343 const basic::Info::ZoneInfo kZoneAfrica_Conakry ACE_TIME_PROGMEM = {
    -
    7344  kZoneNameAfrica_Conakry /*name*/,
    -
    7345  0x7ab36b31 /*zoneId*/,
    -
    7346  &kZoneContext /*zoneContext*/,
    -
    7347  1 /*numEras*/,
    -
    7348  kZoneEraAfrica_Abidjan /*eras*/,
    -
    7349  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    7350 };
    -
    7351 
    -
    7352 //---------------------------------------------------------------------------
    -
    7353 // Link name: Africa/Dakar -> Africa/Abidjan
    -
    7354 //---------------------------------------------------------------------------
    -
    7355 
    -
    7356 static const char kZoneNameAfrica_Dakar[] ACE_TIME_PROGMEM = "\x01" "Dakar";
    -
    7357 
    -
    7358 const basic::Info::ZoneInfo kZoneAfrica_Dakar ACE_TIME_PROGMEM = {
    -
    7359  kZoneNameAfrica_Dakar /*name*/,
    -
    7360  0x780b00fd /*zoneId*/,
    -
    7361  &kZoneContext /*zoneContext*/,
    -
    7362  1 /*numEras*/,
    -
    7363  kZoneEraAfrica_Abidjan /*eras*/,
    -
    7364  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    7365 };
    -
    7366 
    -
    7367 //---------------------------------------------------------------------------
    -
    7368 // Link name: Africa/Dar_es_Salaam -> Africa/Nairobi
    -
    7369 //---------------------------------------------------------------------------
    -
    7370 
    -
    7371 static const char kZoneNameAfrica_Dar_es_Salaam[] ACE_TIME_PROGMEM = "\x01" "Dar_es_Salaam";
    -
    7372 
    -
    7373 const basic::Info::ZoneInfo kZoneAfrica_Dar_es_Salaam ACE_TIME_PROGMEM = {
    -
    7374  kZoneNameAfrica_Dar_es_Salaam /*name*/,
    -
    7375  0xa04c47b6 /*zoneId*/,
    -
    7376  &kZoneContext /*zoneContext*/,
    -
    7377  1 /*numEras*/,
    -
    7378  kZoneEraAfrica_Nairobi /*eras*/,
    -
    7379  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    7380 };
    -
    7381 
    -
    7382 //---------------------------------------------------------------------------
    -
    7383 // Link name: Africa/Djibouti -> Africa/Nairobi
    -
    7384 //---------------------------------------------------------------------------
    -
    7385 
    -
    7386 static const char kZoneNameAfrica_Djibouti[] ACE_TIME_PROGMEM = "\x01" "Djibouti";
    -
    7387 
    -
    7388 const basic::Info::ZoneInfo kZoneAfrica_Djibouti ACE_TIME_PROGMEM = {
    -
    7389  kZoneNameAfrica_Djibouti /*name*/,
    -
    7390  0x30ea01d4 /*zoneId*/,
    -
    7391  &kZoneContext /*zoneContext*/,
    -
    7392  1 /*numEras*/,
    -
    7393  kZoneEraAfrica_Nairobi /*eras*/,
    -
    7394  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    7395 };
    -
    7396 
    -
    7397 //---------------------------------------------------------------------------
    -
    7398 // Link name: Africa/Douala -> Africa/Lagos
    -
    7399 //---------------------------------------------------------------------------
    -
    7400 
    -
    7401 static const char kZoneNameAfrica_Douala[] ACE_TIME_PROGMEM = "\x01" "Douala";
    -
    7402 
    -
    7403 const basic::Info::ZoneInfo kZoneAfrica_Douala ACE_TIME_PROGMEM = {
    -
    7404  kZoneNameAfrica_Douala /*name*/,
    -
    7405  0x7a6df310 /*zoneId*/,
    -
    7406  &kZoneContext /*zoneContext*/,
    -
    7407  1 /*numEras*/,
    -
    7408  kZoneEraAfrica_Lagos /*eras*/,
    -
    7409  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    7410 };
    -
    7411 
    -
    7412 //---------------------------------------------------------------------------
    -
    7413 // Link name: Africa/Freetown -> Africa/Abidjan
    -
    7414 //---------------------------------------------------------------------------
    -
    7415 
    -
    7416 static const char kZoneNameAfrica_Freetown[] ACE_TIME_PROGMEM = "\x01" "Freetown";
    -
    7417 
    -
    7418 const basic::Info::ZoneInfo kZoneAfrica_Freetown ACE_TIME_PROGMEM = {
    -
    7419  kZoneNameAfrica_Freetown /*name*/,
    -
    7420  0x6823dd64 /*zoneId*/,
    -
    7421  &kZoneContext /*zoneContext*/,
    -
    7422  1 /*numEras*/,
    -
    7423  kZoneEraAfrica_Abidjan /*eras*/,
    -
    7424  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    7425 };
    -
    7426 
    -
    7427 //---------------------------------------------------------------------------
    -
    7428 // Link name: Africa/Gaborone -> Africa/Maputo
    -
    7429 //---------------------------------------------------------------------------
    -
    7430 
    -
    7431 static const char kZoneNameAfrica_Gaborone[] ACE_TIME_PROGMEM = "\x01" "Gaborone";
    -
    7432 
    -
    7433 const basic::Info::ZoneInfo kZoneAfrica_Gaborone ACE_TIME_PROGMEM = {
    -
    7434  kZoneNameAfrica_Gaborone /*name*/,
    -
    7435  0x317c0aa7 /*zoneId*/,
    -
    7436  &kZoneContext /*zoneContext*/,
    -
    7437  1 /*numEras*/,
    -
    7438  kZoneEraAfrica_Maputo /*eras*/,
    -
    7439  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    7440 };
    -
    7441 
    -
    7442 //---------------------------------------------------------------------------
    -
    7443 // Link name: Africa/Harare -> Africa/Maputo
    -
    7444 //---------------------------------------------------------------------------
    -
    7445 
    -
    7446 static const char kZoneNameAfrica_Harare[] ACE_TIME_PROGMEM = "\x01" "Harare";
    -
    7447 
    -
    7448 const basic::Info::ZoneInfo kZoneAfrica_Harare ACE_TIME_PROGMEM = {
    -
    7449  kZoneNameAfrica_Harare /*name*/,
    -
    7450  0x82c39a2d /*zoneId*/,
    -
    7451  &kZoneContext /*zoneContext*/,
    -
    7452  1 /*numEras*/,
    -
    7453  kZoneEraAfrica_Maputo /*eras*/,
    -
    7454  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    7455 };
    -
    7456 
    -
    7457 //---------------------------------------------------------------------------
    -
    7458 // Link name: Africa/Kampala -> Africa/Nairobi
    -
    7459 //---------------------------------------------------------------------------
    -
    7460 
    -
    7461 static const char kZoneNameAfrica_Kampala[] ACE_TIME_PROGMEM = "\x01" "Kampala";
    -
    7462 
    -
    7463 const basic::Info::ZoneInfo kZoneAfrica_Kampala ACE_TIME_PROGMEM = {
    -
    7464  kZoneNameAfrica_Kampala /*name*/,
    -
    7465  0xc1d30e31 /*zoneId*/,
    -
    7466  &kZoneContext /*zoneContext*/,
    -
    7467  1 /*numEras*/,
    -
    7468  kZoneEraAfrica_Nairobi /*eras*/,
    -
    7469  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    7470 };
    -
    7471 
    -
    7472 //---------------------------------------------------------------------------
    -
    7473 // Link name: Africa/Kigali -> Africa/Maputo
    -
    7474 //---------------------------------------------------------------------------
    -
    7475 
    -
    7476 static const char kZoneNameAfrica_Kigali[] ACE_TIME_PROGMEM = "\x01" "Kigali";
    -
    7477 
    -
    7478 const basic::Info::ZoneInfo kZoneAfrica_Kigali ACE_TIME_PROGMEM = {
    -
    7479  kZoneNameAfrica_Kigali /*name*/,
    -
    7480  0x8a4dcf2b /*zoneId*/,
    -
    7481  &kZoneContext /*zoneContext*/,
    -
    7482  1 /*numEras*/,
    -
    7483  kZoneEraAfrica_Maputo /*eras*/,
    -
    7484  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    7485 };
    -
    7486 
    -
    7487 //---------------------------------------------------------------------------
    -
    7488 // Link name: Africa/Kinshasa -> Africa/Lagos
    -
    7489 //---------------------------------------------------------------------------
    -
    7490 
    -
    7491 static const char kZoneNameAfrica_Kinshasa[] ACE_TIME_PROGMEM = "\x01" "Kinshasa";
    -
    7492 
    -
    7493 const basic::Info::ZoneInfo kZoneAfrica_Kinshasa ACE_TIME_PROGMEM = {
    -
    7494  kZoneNameAfrica_Kinshasa /*name*/,
    -
    7495  0x6695d70c /*zoneId*/,
    -
    7496  &kZoneContext /*zoneContext*/,
    -
    7497  1 /*numEras*/,
    -
    7498  kZoneEraAfrica_Lagos /*eras*/,
    -
    7499  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    7500 };
    -
    7501 
    -
    7502 //---------------------------------------------------------------------------
    -
    7503 // Link name: Africa/Libreville -> Africa/Lagos
    -
    7504 //---------------------------------------------------------------------------
    -
    7505 
    -
    7506 static const char kZoneNameAfrica_Libreville[] ACE_TIME_PROGMEM = "\x01" "Libreville";
    -
    7507 
    -
    7508 const basic::Info::ZoneInfo kZoneAfrica_Libreville ACE_TIME_PROGMEM = {
    -
    7509  kZoneNameAfrica_Libreville /*name*/,
    -
    7510  0x01d96de4 /*zoneId*/,
    -
    7511  &kZoneContext /*zoneContext*/,
    -
    7512  1 /*numEras*/,
    -
    7513  kZoneEraAfrica_Lagos /*eras*/,
    -
    7514  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    7515 };
    -
    7516 
    -
    7517 //---------------------------------------------------------------------------
    -
    7518 // Link name: Africa/Lome -> Africa/Abidjan
    -
    7519 //---------------------------------------------------------------------------
    -
    7520 
    -
    7521 static const char kZoneNameAfrica_Lome[] ACE_TIME_PROGMEM = "\x01" "Lome";
    -
    7522 
    -
    7523 const basic::Info::ZoneInfo kZoneAfrica_Lome ACE_TIME_PROGMEM = {
    -
    7524  kZoneNameAfrica_Lome /*name*/,
    -
    7525  0xd51c3a07 /*zoneId*/,
    -
    7526  &kZoneContext /*zoneContext*/,
    -
    7527  1 /*numEras*/,
    -
    7528  kZoneEraAfrica_Abidjan /*eras*/,
    -
    7529  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    7530 };
    -
    7531 
    -
    7532 //---------------------------------------------------------------------------
    -
    7533 // Link name: Africa/Luanda -> Africa/Lagos
    -
    7534 //---------------------------------------------------------------------------
    -
    7535 
    -
    7536 static const char kZoneNameAfrica_Luanda[] ACE_TIME_PROGMEM = "\x01" "Luanda";
    -
    7537 
    -
    7538 const basic::Info::ZoneInfo kZoneAfrica_Luanda ACE_TIME_PROGMEM = {
    -
    7539  kZoneNameAfrica_Luanda /*name*/,
    -
    7540  0x8d7909cf /*zoneId*/,
    -
    7541  &kZoneContext /*zoneContext*/,
    -
    7542  1 /*numEras*/,
    -
    7543  kZoneEraAfrica_Lagos /*eras*/,
    -
    7544  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    7545 };
    -
    7546 
    -
    7547 //---------------------------------------------------------------------------
    -
    7548 // Link name: Africa/Lubumbashi -> Africa/Maputo
    -
    7549 //---------------------------------------------------------------------------
    -
    7550 
    -
    7551 static const char kZoneNameAfrica_Lubumbashi[] ACE_TIME_PROGMEM = "\x01" "Lubumbashi";
    -
    7552 
    -
    7553 const basic::Info::ZoneInfo kZoneAfrica_Lubumbashi ACE_TIME_PROGMEM = {
    -
    7554  kZoneNameAfrica_Lubumbashi /*name*/,
    -
    7555  0x6fd88566 /*zoneId*/,
    -
    7556  &kZoneContext /*zoneContext*/,
    -
    7557  1 /*numEras*/,
    -
    7558  kZoneEraAfrica_Maputo /*eras*/,
    -
    7559  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    7560 };
    -
    7561 
    -
    7562 //---------------------------------------------------------------------------
    -
    7563 // Link name: Africa/Lusaka -> Africa/Maputo
    -
    7564 //---------------------------------------------------------------------------
    -
    7565 
    -
    7566 static const char kZoneNameAfrica_Lusaka[] ACE_TIME_PROGMEM = "\x01" "Lusaka";
    -
    7567 
    -
    7568 const basic::Info::ZoneInfo kZoneAfrica_Lusaka ACE_TIME_PROGMEM = {
    -
    7569  kZoneNameAfrica_Lusaka /*name*/,
    -
    7570  0x8d82b23b /*zoneId*/,
    -
    7571  &kZoneContext /*zoneContext*/,
    -
    7572  1 /*numEras*/,
    -
    7573  kZoneEraAfrica_Maputo /*eras*/,
    -
    7574  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    7575 };
    -
    7576 
    -
    7577 //---------------------------------------------------------------------------
    -
    7578 // Link name: Africa/Malabo -> Africa/Lagos
    -
    7579 //---------------------------------------------------------------------------
    -
    7580 
    -
    7581 static const char kZoneNameAfrica_Malabo[] ACE_TIME_PROGMEM = "\x01" "Malabo";
    -
    7582 
    -
    7583 const basic::Info::ZoneInfo kZoneAfrica_Malabo ACE_TIME_PROGMEM = {
    -
    7584  kZoneNameAfrica_Malabo /*name*/,
    -
    7585  0x8e6a1906 /*zoneId*/,
    -
    7586  &kZoneContext /*zoneContext*/,
    -
    7587  1 /*numEras*/,
    -
    7588  kZoneEraAfrica_Lagos /*eras*/,
    -
    7589  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    7590 };
    -
    7591 
    -
    7592 //---------------------------------------------------------------------------
    -
    7593 // Link name: Africa/Maseru -> Africa/Johannesburg
    -
    7594 //---------------------------------------------------------------------------
    -
    7595 
    -
    7596 static const char kZoneNameAfrica_Maseru[] ACE_TIME_PROGMEM = "\x01" "Maseru";
    -
    7597 
    -
    7598 const basic::Info::ZoneInfo kZoneAfrica_Maseru ACE_TIME_PROGMEM = {
    -
    7599  kZoneNameAfrica_Maseru /*name*/,
    -
    7600  0x8e6e02c7 /*zoneId*/,
    -
    7601  &kZoneContext /*zoneContext*/,
    -
    7602  1 /*numEras*/,
    -
    7603  kZoneEraAfrica_Johannesburg /*eras*/,
    -
    7604  &kZoneAfrica_Johannesburg /*targetInfo*/,
    -
    7605 };
    -
    7606 
    -
    7607 //---------------------------------------------------------------------------
    -
    7608 // Link name: Africa/Mbabane -> Africa/Johannesburg
    -
    7609 //---------------------------------------------------------------------------
    -
    7610 
    -
    7611 static const char kZoneNameAfrica_Mbabane[] ACE_TIME_PROGMEM = "\x01" "Mbabane";
    -
    7612 
    -
    7613 const basic::Info::ZoneInfo kZoneAfrica_Mbabane ACE_TIME_PROGMEM = {
    -
    7614  kZoneNameAfrica_Mbabane /*name*/,
    -
    7615  0x5d3bdd40 /*zoneId*/,
    -
    7616  &kZoneContext /*zoneContext*/,
    -
    7617  1 /*numEras*/,
    -
    7618  kZoneEraAfrica_Johannesburg /*eras*/,
    -
    7619  &kZoneAfrica_Johannesburg /*targetInfo*/,
    -
    7620 };
    -
    7621 
    -
    7622 //---------------------------------------------------------------------------
    -
    7623 // Link name: Africa/Mogadishu -> Africa/Nairobi
    -
    7624 //---------------------------------------------------------------------------
    -
    7625 
    -
    7626 static const char kZoneNameAfrica_Mogadishu[] ACE_TIME_PROGMEM = "\x01" "Mogadishu";
    -
    7627 
    -
    7628 const basic::Info::ZoneInfo kZoneAfrica_Mogadishu ACE_TIME_PROGMEM = {
    -
    7629  kZoneNameAfrica_Mogadishu /*name*/,
    -
    7630  0x66bc159b /*zoneId*/,
    -
    7631  &kZoneContext /*zoneContext*/,
    -
    7632  1 /*numEras*/,
    -
    7633  kZoneEraAfrica_Nairobi /*eras*/,
    -
    7634  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    7635 };
    -
    7636 
    -
    7637 //---------------------------------------------------------------------------
    -
    7638 // Link name: Africa/Niamey -> Africa/Lagos
    -
    7639 //---------------------------------------------------------------------------
    -
    7640 
    -
    7641 static const char kZoneNameAfrica_Niamey[] ACE_TIME_PROGMEM = "\x01" "Niamey";
    -
    7642 
    -
    7643 const basic::Info::ZoneInfo kZoneAfrica_Niamey ACE_TIME_PROGMEM = {
    -
    7644  kZoneNameAfrica_Niamey /*name*/,
    -
    7645  0x914a30fd /*zoneId*/,
    -
    7646  &kZoneContext /*zoneContext*/,
    -
    7647  1 /*numEras*/,
    -
    7648  kZoneEraAfrica_Lagos /*eras*/,
    -
    7649  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    7650 };
    -
    7651 
    -
    7652 //---------------------------------------------------------------------------
    -
    7653 // Link name: Africa/Nouakchott -> Africa/Abidjan
    -
    7654 //---------------------------------------------------------------------------
    -
    7655 
    -
    7656 static const char kZoneNameAfrica_Nouakchott[] ACE_TIME_PROGMEM = "\x01" "Nouakchott";
    -
    7657 
    -
    7658 const basic::Info::ZoneInfo kZoneAfrica_Nouakchott ACE_TIME_PROGMEM = {
    -
    7659  kZoneNameAfrica_Nouakchott /*name*/,
    -
    7660  0x3dc49dba /*zoneId*/,
    -
    7661  &kZoneContext /*zoneContext*/,
    -
    7662  1 /*numEras*/,
    -
    7663  kZoneEraAfrica_Abidjan /*eras*/,
    -
    7664  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    7665 };
    -
    7666 
    -
    7667 //---------------------------------------------------------------------------
    -
    7668 // Link name: Africa/Ouagadougou -> Africa/Abidjan
    -
    7669 //---------------------------------------------------------------------------
    -
    7670 
    -
    7671 static const char kZoneNameAfrica_Ouagadougou[] ACE_TIME_PROGMEM = "\x01" "Ouagadougou";
    -
    7672 
    -
    7673 const basic::Info::ZoneInfo kZoneAfrica_Ouagadougou ACE_TIME_PROGMEM = {
    -
    7674  kZoneNameAfrica_Ouagadougou /*name*/,
    -
    7675  0x04d7219a /*zoneId*/,
    -
    7676  &kZoneContext /*zoneContext*/,
    -
    7677  1 /*numEras*/,
    -
    7678  kZoneEraAfrica_Abidjan /*eras*/,
    -
    7679  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    7680 };
    -
    7681 
    -
    7682 //---------------------------------------------------------------------------
    -
    7683 // Link name: Africa/Porto-Novo -> Africa/Lagos
    -
    7684 //---------------------------------------------------------------------------
    -
    7685 
    -
    7686 static const char kZoneNameAfrica_Porto_Novo[] ACE_TIME_PROGMEM = "\x01" "Porto-Novo";
    -
    7687 
    -
    7688 const basic::Info::ZoneInfo kZoneAfrica_Porto_Novo ACE_TIME_PROGMEM = {
    -
    7689  kZoneNameAfrica_Porto_Novo /*name*/,
    -
    7690  0x3d1bf95d /*zoneId*/,
    -
    7691  &kZoneContext /*zoneContext*/,
    -
    7692  1 /*numEras*/,
    -
    7693  kZoneEraAfrica_Lagos /*eras*/,
    -
    7694  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    7695 };
    -
    7696 
    -
    7697 //---------------------------------------------------------------------------
    -
    7698 // Link name: Africa/Timbuktu -> Africa/Abidjan
    -
    7699 //---------------------------------------------------------------------------
    -
    7700 
    -
    7701 static const char kZoneNameAfrica_Timbuktu[] ACE_TIME_PROGMEM = "\x01" "Timbuktu";
    -
    7702 
    -
    7703 const basic::Info::ZoneInfo kZoneAfrica_Timbuktu ACE_TIME_PROGMEM = {
    -
    7704  kZoneNameAfrica_Timbuktu /*name*/,
    -
    7705  0xb164d56f /*zoneId*/,
    -
    7706  &kZoneContext /*zoneContext*/,
    -
    7707  1 /*numEras*/,
    -
    7708  kZoneEraAfrica_Abidjan /*eras*/,
    -
    7709  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    7710 };
    -
    7711 
    -
    7712 //---------------------------------------------------------------------------
    -
    7713 // Link name: America/Anguilla -> America/Puerto_Rico
    -
    7714 //---------------------------------------------------------------------------
    -
    7715 
    -
    7716 static const char kZoneNameAmerica_Anguilla[] ACE_TIME_PROGMEM = "\x02" "Anguilla";
    -
    7717 
    -
    7718 const basic::Info::ZoneInfo kZoneAmerica_Anguilla ACE_TIME_PROGMEM = {
    -
    7719  kZoneNameAmerica_Anguilla /*name*/,
    -
    7720  0xafe31333 /*zoneId*/,
    -
    7721  &kZoneContext /*zoneContext*/,
    -
    7722  1 /*numEras*/,
    -
    7723  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    7724  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    7725 };
    -
    7726 
    -
    7727 //---------------------------------------------------------------------------
    -
    7728 // Link name: America/Antigua -> America/Puerto_Rico
    -
    7729 //---------------------------------------------------------------------------
    -
    7730 
    -
    7731 static const char kZoneNameAmerica_Antigua[] ACE_TIME_PROGMEM = "\x02" "Antigua";
    -
    7732 
    -
    7733 const basic::Info::ZoneInfo kZoneAmerica_Antigua ACE_TIME_PROGMEM = {
    -
    7734  kZoneNameAmerica_Antigua /*name*/,
    -
    7735  0xc067a32f /*zoneId*/,
    -
    7736  &kZoneContext /*zoneContext*/,
    -
    7737  1 /*numEras*/,
    -
    7738  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    7739  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    7740 };
    -
    7741 
    -
    7742 //---------------------------------------------------------------------------
    -
    7743 // Link name: America/Aruba -> America/Puerto_Rico
    -
    7744 //---------------------------------------------------------------------------
    -
    7745 
    -
    7746 static const char kZoneNameAmerica_Aruba[] ACE_TIME_PROGMEM = "\x02" "Aruba";
    -
    7747 
    -
    7748 const basic::Info::ZoneInfo kZoneAmerica_Aruba ACE_TIME_PROGMEM = {
    -
    7749  kZoneNameAmerica_Aruba /*name*/,
    -
    7750  0x97cf8651 /*zoneId*/,
    -
    7751  &kZoneContext /*zoneContext*/,
    -
    7752  1 /*numEras*/,
    -
    7753  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    7754  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    7755 };
    -
    7756 
    -
    7757 //---------------------------------------------------------------------------
    -
    7758 // Link name: America/Atikokan -> America/Panama
    -
    7759 //---------------------------------------------------------------------------
    -
    7760 
    -
    7761 static const char kZoneNameAmerica_Atikokan[] ACE_TIME_PROGMEM = "\x02" "Atikokan";
    -
    7762 
    -
    7763 const basic::Info::ZoneInfo kZoneAmerica_Atikokan ACE_TIME_PROGMEM = {
    -
    7764  kZoneNameAmerica_Atikokan /*name*/,
    -
    7765  0x81b92098 /*zoneId*/,
    -
    7766  &kZoneContext /*zoneContext*/,
    -
    7767  1 /*numEras*/,
    -
    7768  kZoneEraAmerica_Panama /*eras*/,
    -
    7769  &kZoneAmerica_Panama /*targetInfo*/,
    -
    7770 };
    -
    7771 
    -
    7772 //---------------------------------------------------------------------------
    -
    7773 // Link name: America/Atka -> America/Adak
    -
    7774 //---------------------------------------------------------------------------
    -
    7775 
    -
    7776 static const char kZoneNameAmerica_Atka[] ACE_TIME_PROGMEM = "\x02" "Atka";
    -
    7777 
    -
    7778 const basic::Info::ZoneInfo kZoneAmerica_Atka ACE_TIME_PROGMEM = {
    -
    7779  kZoneNameAmerica_Atka /*name*/,
    -
    7780  0x97fe8f27 /*zoneId*/,
    -
    7781  &kZoneContext /*zoneContext*/,
    -
    7782  1 /*numEras*/,
    -
    7783  kZoneEraAmerica_Adak /*eras*/,
    -
    7784  &kZoneAmerica_Adak /*targetInfo*/,
    -
    7785 };
    -
    7786 
    -
    7787 //---------------------------------------------------------------------------
    -
    7788 // Link name: America/Blanc-Sablon -> America/Puerto_Rico
    -
    7789 //---------------------------------------------------------------------------
    -
    7790 
    -
    7791 static const char kZoneNameAmerica_Blanc_Sablon[] ACE_TIME_PROGMEM = "\x02" "Blanc-Sablon";
    -
    7792 
    -
    7793 const basic::Info::ZoneInfo kZoneAmerica_Blanc_Sablon ACE_TIME_PROGMEM = {
    -
    7794  kZoneNameAmerica_Blanc_Sablon /*name*/,
    -
    7795  0x6e299892 /*zoneId*/,
    -
    7796  &kZoneContext /*zoneContext*/,
    -
    7797  1 /*numEras*/,
    -
    7798  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    7799  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    7800 };
    -
    7801 
    -
    7802 //---------------------------------------------------------------------------
    -
    7803 // Link name: America/Cayman -> America/Panama
    -
    7804 //---------------------------------------------------------------------------
    -
    7805 
    -
    7806 static const char kZoneNameAmerica_Cayman[] ACE_TIME_PROGMEM = "\x02" "Cayman";
    -
    7807 
    -
    7808 const basic::Info::ZoneInfo kZoneAmerica_Cayman ACE_TIME_PROGMEM = {
    -
    7809  kZoneNameAmerica_Cayman /*name*/,
    -
    7810  0x953961df /*zoneId*/,
    -
    7811  &kZoneContext /*zoneContext*/,
    -
    7812  1 /*numEras*/,
    -
    7813  kZoneEraAmerica_Panama /*eras*/,
    -
    7814  &kZoneAmerica_Panama /*targetInfo*/,
    -
    7815 };
    -
    7816 
    -
    7817 //---------------------------------------------------------------------------
    -
    7818 // Link name: America/Coral_Harbour -> America/Panama
    -
    7819 //---------------------------------------------------------------------------
    -
    7820 
    -
    7821 static const char kZoneNameAmerica_Coral_Harbour[] ACE_TIME_PROGMEM = "\x02" "Coral_Harbour";
    -
    7822 
    -
    7823 const basic::Info::ZoneInfo kZoneAmerica_Coral_Harbour ACE_TIME_PROGMEM = {
    -
    7824  kZoneNameAmerica_Coral_Harbour /*name*/,
    -
    7825  0xabcb7569 /*zoneId*/,
    -
    7826  &kZoneContext /*zoneContext*/,
    -
    7827  1 /*numEras*/,
    -
    7828  kZoneEraAmerica_Panama /*eras*/,
    -
    7829  &kZoneAmerica_Panama /*targetInfo*/,
    -
    7830 };
    -
    7831 
    -
    7832 //---------------------------------------------------------------------------
    -
    7833 // Link name: America/Creston -> America/Phoenix
    -
    7834 //---------------------------------------------------------------------------
    -
    7835 
    -
    7836 static const char kZoneNameAmerica_Creston[] ACE_TIME_PROGMEM = "\x02" "Creston";
    -
    7837 
    -
    7838 const basic::Info::ZoneInfo kZoneAmerica_Creston ACE_TIME_PROGMEM = {
    -
    7839  kZoneNameAmerica_Creston /*name*/,
    -
    7840  0x62a70204 /*zoneId*/,
    -
    7841  &kZoneContext /*zoneContext*/,
    -
    7842  1 /*numEras*/,
    -
    7843  kZoneEraAmerica_Phoenix /*eras*/,
    -
    7844  &kZoneAmerica_Phoenix /*targetInfo*/,
    -
    7845 };
    -
    7846 
    -
    7847 //---------------------------------------------------------------------------
    -
    7848 // Link name: America/Curacao -> America/Puerto_Rico
    -
    7849 //---------------------------------------------------------------------------
    -
    7850 
    -
    7851 static const char kZoneNameAmerica_Curacao[] ACE_TIME_PROGMEM = "\x02" "Curacao";
    -
    7852 
    -
    7853 const basic::Info::ZoneInfo kZoneAmerica_Curacao ACE_TIME_PROGMEM = {
    -
    7854  kZoneNameAmerica_Curacao /*name*/,
    -
    7855  0x6a879184 /*zoneId*/,
    -
    7856  &kZoneContext /*zoneContext*/,
    -
    7857  1 /*numEras*/,
    -
    7858  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    7859  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    7860 };
    -
    7861 
    -
    7862 //---------------------------------------------------------------------------
    -
    7863 // Link name: America/Dominica -> America/Puerto_Rico
    -
    7864 //---------------------------------------------------------------------------
    -
    7865 
    -
    7866 static const char kZoneNameAmerica_Dominica[] ACE_TIME_PROGMEM = "\x02" "Dominica";
    -
    7867 
    -
    7868 const basic::Info::ZoneInfo kZoneAmerica_Dominica ACE_TIME_PROGMEM = {
    -
    7869  kZoneNameAmerica_Dominica /*name*/,
    -
    7870  0xcecb4c4a /*zoneId*/,
    -
    7871  &kZoneContext /*zoneContext*/,
    -
    7872  1 /*numEras*/,
    -
    7873  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    7874  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    7875 };
    -
    7876 
    -
    7877 //---------------------------------------------------------------------------
    -
    7878 // Link name: America/Fort_Wayne -> America/Indiana/Indianapolis
    -
    7879 //---------------------------------------------------------------------------
    -
    7880 
    -
    7881 static const char kZoneNameAmerica_Fort_Wayne[] ACE_TIME_PROGMEM = "\x02" "Fort_Wayne";
    -
    7882 
    -
    7883 const basic::Info::ZoneInfo kZoneAmerica_Fort_Wayne ACE_TIME_PROGMEM = {
    -
    7884  kZoneNameAmerica_Fort_Wayne /*name*/,
    -
    7885  0x7eaaaf24 /*zoneId*/,
    -
    7886  &kZoneContext /*zoneContext*/,
    -
    7887  2 /*numEras*/,
    -
    7888  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    7889  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
    -
    7890 };
    -
    7891 
    -
    7892 //---------------------------------------------------------------------------
    -
    7893 // Link name: America/Grenada -> America/Puerto_Rico
    -
    7894 //---------------------------------------------------------------------------
    -
    7895 
    -
    7896 static const char kZoneNameAmerica_Grenada[] ACE_TIME_PROGMEM = "\x02" "Grenada";
    -
    7897 
    -
    7898 const basic::Info::ZoneInfo kZoneAmerica_Grenada ACE_TIME_PROGMEM = {
    -
    7899  kZoneNameAmerica_Grenada /*name*/,
    -
    7900  0x968ce4d8 /*zoneId*/,
    -
    7901  &kZoneContext /*zoneContext*/,
    -
    7902  1 /*numEras*/,
    -
    7903  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    7904  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    7905 };
    -
    7906 
    -
    7907 //---------------------------------------------------------------------------
    -
    7908 // Link name: America/Guadeloupe -> America/Puerto_Rico
    -
    7909 //---------------------------------------------------------------------------
    -
    7910 
    -
    7911 static const char kZoneNameAmerica_Guadeloupe[] ACE_TIME_PROGMEM = "\x02" "Guadeloupe";
    -
    7912 
    -
    7913 const basic::Info::ZoneInfo kZoneAmerica_Guadeloupe ACE_TIME_PROGMEM = {
    -
    7914  kZoneNameAmerica_Guadeloupe /*name*/,
    -
    7915  0xcd1f8a31 /*zoneId*/,
    -
    7916  &kZoneContext /*zoneContext*/,
    -
    7917  1 /*numEras*/,
    -
    7918  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    7919  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    7920 };
    -
    7921 
    -
    7922 //---------------------------------------------------------------------------
    -
    7923 // Link name: America/Indianapolis -> America/Indiana/Indianapolis
    -
    7924 //---------------------------------------------------------------------------
    -
    7925 
    -
    7926 static const char kZoneNameAmerica_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "Indianapolis";
    -
    7927 
    -
    7928 const basic::Info::ZoneInfo kZoneAmerica_Indianapolis ACE_TIME_PROGMEM = {
    -
    7929  kZoneNameAmerica_Indianapolis /*name*/,
    -
    7930  0x6a009ae1 /*zoneId*/,
    -
    7931  &kZoneContext /*zoneContext*/,
    -
    7932  2 /*numEras*/,
    -
    7933  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    7934  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
    -
    7935 };
    -
    7936 
    -
    7937 //---------------------------------------------------------------------------
    -
    7938 // Link name: America/Kralendijk -> America/Puerto_Rico
    -
    7939 //---------------------------------------------------------------------------
    -
    7940 
    -
    7941 static const char kZoneNameAmerica_Kralendijk[] ACE_TIME_PROGMEM = "\x02" "Kralendijk";
    -
    7942 
    -
    7943 const basic::Info::ZoneInfo kZoneAmerica_Kralendijk ACE_TIME_PROGMEM = {
    -
    7944  kZoneNameAmerica_Kralendijk /*name*/,
    -
    7945  0xe7c456c5 /*zoneId*/,
    -
    7946  &kZoneContext /*zoneContext*/,
    -
    7947  1 /*numEras*/,
    -
    7948  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    7949  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    7950 };
    -
    7951 
    -
    7952 //---------------------------------------------------------------------------
    -
    7953 // Link name: America/Louisville -> America/Kentucky/Louisville
    -
    7954 //---------------------------------------------------------------------------
    -
    7955 
    -
    7956 static const char kZoneNameAmerica_Louisville[] ACE_TIME_PROGMEM = "\x02" "Louisville";
    -
    7957 
    -
    7958 const basic::Info::ZoneInfo kZoneAmerica_Louisville ACE_TIME_PROGMEM = {
    -
    7959  kZoneNameAmerica_Louisville /*name*/,
    -
    7960  0x3dcb47ee /*zoneId*/,
    -
    7961  &kZoneContext /*zoneContext*/,
    -
    7962  1 /*numEras*/,
    -
    7963  kZoneEraAmerica_Kentucky_Louisville /*eras*/,
    -
    7964  &kZoneAmerica_Kentucky_Louisville /*targetInfo*/,
    -
    7965 };
    -
    7966 
    -
    7967 //---------------------------------------------------------------------------
    -
    7968 // Link name: America/Lower_Princes -> America/Puerto_Rico
    -
    7969 //---------------------------------------------------------------------------
    -
    7970 
    -
    7971 static const char kZoneNameAmerica_Lower_Princes[] ACE_TIME_PROGMEM = "\x02" "Lower_Princes";
    -
    7972 
    -
    7973 const basic::Info::ZoneInfo kZoneAmerica_Lower_Princes ACE_TIME_PROGMEM = {
    -
    7974  kZoneNameAmerica_Lower_Princes /*name*/,
    -
    7975  0x6ae45b62 /*zoneId*/,
    -
    7976  &kZoneContext /*zoneContext*/,
    -
    7977  1 /*numEras*/,
    -
    7978  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    7979  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    7980 };
    -
    7981 
    -
    7982 //---------------------------------------------------------------------------
    -
    7983 // Link name: America/Marigot -> America/Puerto_Rico
    -
    7984 //---------------------------------------------------------------------------
    -
    7985 
    -
    7986 static const char kZoneNameAmerica_Marigot[] ACE_TIME_PROGMEM = "\x02" "Marigot";
    -
    7987 
    -
    7988 const basic::Info::ZoneInfo kZoneAmerica_Marigot ACE_TIME_PROGMEM = {
    -
    7989  kZoneNameAmerica_Marigot /*name*/,
    -
    7990  0x3dab3a59 /*zoneId*/,
    -
    7991  &kZoneContext /*zoneContext*/,
    -
    7992  1 /*numEras*/,
    -
    7993  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    7994  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    7995 };
    -
    7996 
    -
    7997 //---------------------------------------------------------------------------
    -
    7998 // Link name: America/Montreal -> America/Toronto
    -
    7999 //---------------------------------------------------------------------------
    -
    8000 
    -
    8001 static const char kZoneNameAmerica_Montreal[] ACE_TIME_PROGMEM = "\x02" "Montreal";
    -
    8002 
    -
    8003 const basic::Info::ZoneInfo kZoneAmerica_Montreal ACE_TIME_PROGMEM = {
    -
    8004  kZoneNameAmerica_Montreal /*name*/,
    -
    8005  0x203a1ea8 /*zoneId*/,
    -
    8006  &kZoneContext /*zoneContext*/,
    -
    8007  1 /*numEras*/,
    -
    8008  kZoneEraAmerica_Toronto /*eras*/,
    -
    8009  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    8010 };
    -
    8011 
    -
    8012 //---------------------------------------------------------------------------
    -
    8013 // Link name: America/Montserrat -> America/Puerto_Rico
    -
    8014 //---------------------------------------------------------------------------
    -
    8015 
    -
    8016 static const char kZoneNameAmerica_Montserrat[] ACE_TIME_PROGMEM = "\x02" "Montserrat";
    -
    8017 
    -
    8018 const basic::Info::ZoneInfo kZoneAmerica_Montserrat ACE_TIME_PROGMEM = {
    -
    8019  kZoneNameAmerica_Montserrat /*name*/,
    -
    8020  0x199b0a35 /*zoneId*/,
    -
    8021  &kZoneContext /*zoneContext*/,
    -
    8022  1 /*numEras*/,
    -
    8023  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    8024  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    8025 };
    -
    8026 
    -
    8027 //---------------------------------------------------------------------------
    -
    8028 // Link name: America/Nassau -> America/Toronto
    -
    8029 //---------------------------------------------------------------------------
    -
    8030 
    -
    8031 static const char kZoneNameAmerica_Nassau[] ACE_TIME_PROGMEM = "\x02" "Nassau";
    -
    8032 
    -
    8033 const basic::Info::ZoneInfo kZoneAmerica_Nassau ACE_TIME_PROGMEM = {
    -
    8034  kZoneNameAmerica_Nassau /*name*/,
    -
    8035  0xaedef011 /*zoneId*/,
    -
    8036  &kZoneContext /*zoneContext*/,
    -
    8037  1 /*numEras*/,
    -
    8038  kZoneEraAmerica_Toronto /*eras*/,
    -
    8039  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    8040 };
    -
    8041 
    -
    8042 //---------------------------------------------------------------------------
    -
    8043 // Link name: America/Nipigon -> America/Toronto
    -
    8044 //---------------------------------------------------------------------------
    -
    8045 
    -
    8046 static const char kZoneNameAmerica_Nipigon[] ACE_TIME_PROGMEM = "\x02" "Nipigon";
    -
    8047 
    -
    8048 const basic::Info::ZoneInfo kZoneAmerica_Nipigon ACE_TIME_PROGMEM = {
    -
    8049  kZoneNameAmerica_Nipigon /*name*/,
    -
    8050  0x9d2a8b1a /*zoneId*/,
    -
    8051  &kZoneContext /*zoneContext*/,
    -
    8052  1 /*numEras*/,
    -
    8053  kZoneEraAmerica_Toronto /*eras*/,
    -
    8054  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    8055 };
    -
    8056 
    -
    8057 //---------------------------------------------------------------------------
    -
    8058 // Link name: America/Port_of_Spain -> America/Puerto_Rico
    -
    8059 //---------------------------------------------------------------------------
    -
    8060 
    -
    8061 static const char kZoneNameAmerica_Port_of_Spain[] ACE_TIME_PROGMEM = "\x02" "Port_of_Spain";
    -
    8062 
    -
    8063 const basic::Info::ZoneInfo kZoneAmerica_Port_of_Spain ACE_TIME_PROGMEM = {
    -
    8064  kZoneNameAmerica_Port_of_Spain /*name*/,
    -
    8065  0xd8b28d59 /*zoneId*/,
    -
    8066  &kZoneContext /*zoneContext*/,
    -
    8067  1 /*numEras*/,
    -
    8068  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    8069  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    8070 };
    -
    8071 
    -
    8072 //---------------------------------------------------------------------------
    -
    8073 // Link name: America/Rainy_River -> America/Winnipeg
    -
    8074 //---------------------------------------------------------------------------
    -
    8075 
    -
    8076 static const char kZoneNameAmerica_Rainy_River[] ACE_TIME_PROGMEM = "\x02" "Rainy_River";
    -
    8077 
    -
    8078 const basic::Info::ZoneInfo kZoneAmerica_Rainy_River ACE_TIME_PROGMEM = {
    -
    8079  kZoneNameAmerica_Rainy_River /*name*/,
    -
    8080  0x9cd58a10 /*zoneId*/,
    -
    8081  &kZoneContext /*zoneContext*/,
    -
    8082  2 /*numEras*/,
    -
    8083  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    8084  &kZoneAmerica_Winnipeg /*targetInfo*/,
    -
    8085 };
    -
    8086 
    -
    8087 //---------------------------------------------------------------------------
    -
    8088 // Link name: America/Shiprock -> America/Denver
    -
    8089 //---------------------------------------------------------------------------
    -
    8090 
    -
    8091 static const char kZoneNameAmerica_Shiprock[] ACE_TIME_PROGMEM = "\x02" "Shiprock";
    -
    8092 
    -
    8093 const basic::Info::ZoneInfo kZoneAmerica_Shiprock ACE_TIME_PROGMEM = {
    -
    8094  kZoneNameAmerica_Shiprock /*name*/,
    -
    8095  0x82fb7049 /*zoneId*/,
    -
    8096  &kZoneContext /*zoneContext*/,
    -
    8097  1 /*numEras*/,
    -
    8098  kZoneEraAmerica_Denver /*eras*/,
    -
    8099  &kZoneAmerica_Denver /*targetInfo*/,
    -
    8100 };
    -
    8101 
    -
    8102 //---------------------------------------------------------------------------
    -
    8103 // Link name: America/St_Barthelemy -> America/Puerto_Rico
    -
    8104 //---------------------------------------------------------------------------
    -
    8105 
    -
    8106 static const char kZoneNameAmerica_St_Barthelemy[] ACE_TIME_PROGMEM = "\x02" "St_Barthelemy";
    -
    8107 
    -
    8108 const basic::Info::ZoneInfo kZoneAmerica_St_Barthelemy ACE_TIME_PROGMEM = {
    -
    8109  kZoneNameAmerica_St_Barthelemy /*name*/,
    -
    8110  0x054e6a79 /*zoneId*/,
    -
    8111  &kZoneContext /*zoneContext*/,
    -
    8112  1 /*numEras*/,
    -
    8113  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    8114  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    8115 };
    -
    8116 
    -
    8117 //---------------------------------------------------------------------------
    -
    8118 // Link name: America/St_Kitts -> America/Puerto_Rico
    -
    8119 //---------------------------------------------------------------------------
    -
    8120 
    -
    8121 static const char kZoneNameAmerica_St_Kitts[] ACE_TIME_PROGMEM = "\x02" "St_Kitts";
    -
    8122 
    -
    8123 const basic::Info::ZoneInfo kZoneAmerica_St_Kitts ACE_TIME_PROGMEM = {
    -
    8124  kZoneNameAmerica_St_Kitts /*name*/,
    -
    8125  0x04c0507b /*zoneId*/,
    -
    8126  &kZoneContext /*zoneContext*/,
    -
    8127  1 /*numEras*/,
    -
    8128  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    8129  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    8130 };
    -
    8131 
    -
    8132 //---------------------------------------------------------------------------
    -
    8133 // Link name: America/St_Lucia -> America/Puerto_Rico
    -
    8134 //---------------------------------------------------------------------------
    -
    8135 
    -
    8136 static const char kZoneNameAmerica_St_Lucia[] ACE_TIME_PROGMEM = "\x02" "St_Lucia";
    -
    8137 
    -
    8138 const basic::Info::ZoneInfo kZoneAmerica_St_Lucia ACE_TIME_PROGMEM = {
    -
    8139  kZoneNameAmerica_St_Lucia /*name*/,
    -
    8140  0x04d8b3ba /*zoneId*/,
    -
    8141  &kZoneContext /*zoneContext*/,
    -
    8142  1 /*numEras*/,
    -
    8143  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    8144  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    8145 };
    -
    8146 
    -
    8147 //---------------------------------------------------------------------------
    -
    8148 // Link name: America/St_Thomas -> America/Puerto_Rico
    -
    8149 //---------------------------------------------------------------------------
    -
    8150 
    -
    8151 static const char kZoneNameAmerica_St_Thomas[] ACE_TIME_PROGMEM = "\x02" "St_Thomas";
    -
    8152 
    -
    8153 const basic::Info::ZoneInfo kZoneAmerica_St_Thomas ACE_TIME_PROGMEM = {
    -
    8154  kZoneNameAmerica_St_Thomas /*name*/,
    -
    8155  0xb1b3d778 /*zoneId*/,
    -
    8156  &kZoneContext /*zoneContext*/,
    -
    8157  1 /*numEras*/,
    -
    8158  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    8159  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    8160 };
    -
    8161 
    -
    8162 //---------------------------------------------------------------------------
    -
    8163 // Link name: America/St_Vincent -> America/Puerto_Rico
    -
    8164 //---------------------------------------------------------------------------
    -
    8165 
    -
    8166 static const char kZoneNameAmerica_St_Vincent[] ACE_TIME_PROGMEM = "\x02" "St_Vincent";
    -
    8167 
    -
    8168 const basic::Info::ZoneInfo kZoneAmerica_St_Vincent ACE_TIME_PROGMEM = {
    -
    8169  kZoneNameAmerica_St_Vincent /*name*/,
    -
    8170  0x8460e523 /*zoneId*/,
    -
    8171  &kZoneContext /*zoneContext*/,
    -
    8172  1 /*numEras*/,
    -
    8173  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    8174  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    8175 };
    -
    8176 
    -
    8177 //---------------------------------------------------------------------------
    -
    8178 // Link name: America/Thunder_Bay -> America/Toronto
    -
    8179 //---------------------------------------------------------------------------
    -
    8180 
    -
    8181 static const char kZoneNameAmerica_Thunder_Bay[] ACE_TIME_PROGMEM = "\x02" "Thunder_Bay";
    -
    8182 
    -
    8183 const basic::Info::ZoneInfo kZoneAmerica_Thunder_Bay ACE_TIME_PROGMEM = {
    -
    8184  kZoneNameAmerica_Thunder_Bay /*name*/,
    -
    8185  0xf962e71b /*zoneId*/,
    -
    8186  &kZoneContext /*zoneContext*/,
    -
    8187  1 /*numEras*/,
    -
    8188  kZoneEraAmerica_Toronto /*eras*/,
    -
    8189  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    8190 };
    -
    8191 
    -
    8192 //---------------------------------------------------------------------------
    -
    8193 // Link name: America/Tortola -> America/Puerto_Rico
    -
    8194 //---------------------------------------------------------------------------
    -
    8195 
    -
    8196 static const char kZoneNameAmerica_Tortola[] ACE_TIME_PROGMEM = "\x02" "Tortola";
    -
    8197 
    -
    8198 const basic::Info::ZoneInfo kZoneAmerica_Tortola ACE_TIME_PROGMEM = {
    -
    8199  kZoneNameAmerica_Tortola /*name*/,
    -
    8200  0x7931462b /*zoneId*/,
    -
    8201  &kZoneContext /*zoneContext*/,
    -
    8202  1 /*numEras*/,
    -
    8203  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    8204  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    8205 };
    -
    8206 
    -
    8207 //---------------------------------------------------------------------------
    -
    8208 // Link name: America/Virgin -> America/Puerto_Rico
    -
    8209 //---------------------------------------------------------------------------
    -
    8210 
    -
    8211 static const char kZoneNameAmerica_Virgin[] ACE_TIME_PROGMEM = "\x02" "Virgin";
    -
    8212 
    -
    8213 const basic::Info::ZoneInfo kZoneAmerica_Virgin ACE_TIME_PROGMEM = {
    -
    8214  kZoneNameAmerica_Virgin /*name*/,
    -
    8215  0xc2183ab5 /*zoneId*/,
    -
    8216  &kZoneContext /*zoneContext*/,
    -
    8217  1 /*numEras*/,
    -
    8218  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    8219  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    8220 };
    -
    8221 
    -
    8222 //---------------------------------------------------------------------------
    -
    8223 // Link name: America/Yellowknife -> America/Edmonton
    -
    8224 //---------------------------------------------------------------------------
    -
    8225 
    -
    8226 static const char kZoneNameAmerica_Yellowknife[] ACE_TIME_PROGMEM = "\x02" "Yellowknife";
    -
    8227 
    -
    8228 const basic::Info::ZoneInfo kZoneAmerica_Yellowknife ACE_TIME_PROGMEM = {
    -
    8229  kZoneNameAmerica_Yellowknife /*name*/,
    -
    8230  0x0f76c76f /*zoneId*/,
    -
    8231  &kZoneContext /*zoneContext*/,
    -
    8232  1 /*numEras*/,
    -
    8233  kZoneEraAmerica_Edmonton /*eras*/,
    -
    8234  &kZoneAmerica_Edmonton /*targetInfo*/,
    -
    8235 };
    -
    8236 
    -
    8237 //---------------------------------------------------------------------------
    -
    8238 // Link name: Antarctica/DumontDUrville -> Pacific/Port_Moresby
    -
    8239 //---------------------------------------------------------------------------
    -
    8240 
    -
    8241 static const char kZoneNameAntarctica_DumontDUrville[] ACE_TIME_PROGMEM = "\x03" "DumontDUrville";
    -
    8242 
    -
    8243 const basic::Info::ZoneInfo kZoneAntarctica_DumontDUrville ACE_TIME_PROGMEM = {
    -
    8244  kZoneNameAntarctica_DumontDUrville /*name*/,
    -
    8245  0x5a3c656c /*zoneId*/,
    -
    8246  &kZoneContext /*zoneContext*/,
    -
    8247  1 /*numEras*/,
    -
    8248  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    8249  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    8250 };
    -
    8251 
    -
    8252 //---------------------------------------------------------------------------
    -
    8253 // Link name: Antarctica/McMurdo -> Pacific/Auckland
    -
    8254 //---------------------------------------------------------------------------
    -
    8255 
    -
    8256 static const char kZoneNameAntarctica_McMurdo[] ACE_TIME_PROGMEM = "\x03" "McMurdo";
    -
    8257 
    -
    8258 const basic::Info::ZoneInfo kZoneAntarctica_McMurdo ACE_TIME_PROGMEM = {
    -
    8259  kZoneNameAntarctica_McMurdo /*name*/,
    -
    8260  0x6eeb5585 /*zoneId*/,
    -
    8261  &kZoneContext /*zoneContext*/,
    -
    8262  1 /*numEras*/,
    -
    8263  kZoneEraPacific_Auckland /*eras*/,
    -
    8264  &kZonePacific_Auckland /*targetInfo*/,
    -
    8265 };
    -
    8266 
    -
    8267 //---------------------------------------------------------------------------
    -
    8268 // Link name: Antarctica/South_Pole -> Pacific/Auckland
    -
    8269 //---------------------------------------------------------------------------
    -
    8270 
    -
    8271 static const char kZoneNameAntarctica_South_Pole[] ACE_TIME_PROGMEM = "\x03" "South_Pole";
    -
    8272 
    -
    8273 const basic::Info::ZoneInfo kZoneAntarctica_South_Pole ACE_TIME_PROGMEM = {
    -
    8274  kZoneNameAntarctica_South_Pole /*name*/,
    -
    8275  0xcd96b290 /*zoneId*/,
    -
    8276  &kZoneContext /*zoneContext*/,
    -
    8277  1 /*numEras*/,
    -
    8278  kZoneEraPacific_Auckland /*eras*/,
    -
    8279  &kZonePacific_Auckland /*targetInfo*/,
    -
    8280 };
    -
    8281 
    -
    8282 //---------------------------------------------------------------------------
    -
    8283 // Link name: Antarctica/Syowa -> Asia/Riyadh
    -
    8284 //---------------------------------------------------------------------------
    -
    8285 
    -
    8286 static const char kZoneNameAntarctica_Syowa[] ACE_TIME_PROGMEM = "\x03" "Syowa";
    -
    8287 
    -
    8288 const basic::Info::ZoneInfo kZoneAntarctica_Syowa ACE_TIME_PROGMEM = {
    -
    8289  kZoneNameAntarctica_Syowa /*name*/,
    -
    8290  0xe330c7e1 /*zoneId*/,
    -
    8291  &kZoneContext /*zoneContext*/,
    -
    8292  1 /*numEras*/,
    -
    8293  kZoneEraAsia_Riyadh /*eras*/,
    -
    8294  &kZoneAsia_Riyadh /*targetInfo*/,
    -
    8295 };
    -
    8296 
    -
    8297 //---------------------------------------------------------------------------
    -
    8298 // Link name: Arctic/Longyearbyen -> Europe/Berlin
    -
    8299 //---------------------------------------------------------------------------
    -
    8300 
    -
    8301 static const char kZoneNameArctic_Longyearbyen[] ACE_TIME_PROGMEM = "Arctic/Longyearbyen";
    -
    8302 
    -
    8303 const basic::Info::ZoneInfo kZoneArctic_Longyearbyen ACE_TIME_PROGMEM = {
    -
    8304  kZoneNameArctic_Longyearbyen /*name*/,
    -
    8305  0xd23e7859 /*zoneId*/,
    -
    8306  &kZoneContext /*zoneContext*/,
    -
    8307  1 /*numEras*/,
    -
    8308  kZoneEraEurope_Berlin /*eras*/,
    -
    8309  &kZoneEurope_Berlin /*targetInfo*/,
    -
    8310 };
    -
    8311 
    -
    8312 //---------------------------------------------------------------------------
    -
    8313 // Link name: Asia/Aden -> Asia/Riyadh
    -
    8314 //---------------------------------------------------------------------------
    -
    8315 
    -
    8316 static const char kZoneNameAsia_Aden[] ACE_TIME_PROGMEM = "\x04" "Aden";
    -
    8317 
    -
    8318 const basic::Info::ZoneInfo kZoneAsia_Aden ACE_TIME_PROGMEM = {
    -
    8319  kZoneNameAsia_Aden /*name*/,
    -
    8320  0x1fa7084a /*zoneId*/,
    -
    8321  &kZoneContext /*zoneContext*/,
    -
    8322  1 /*numEras*/,
    -
    8323  kZoneEraAsia_Riyadh /*eras*/,
    -
    8324  &kZoneAsia_Riyadh /*targetInfo*/,
    -
    8325 };
    -
    8326 
    -
    8327 //---------------------------------------------------------------------------
    -
    8328 // Link name: Asia/Ashkhabad -> Asia/Ashgabat
    -
    8329 //---------------------------------------------------------------------------
    -
    8330 
    -
    8331 static const char kZoneNameAsia_Ashkhabad[] ACE_TIME_PROGMEM = "\x04" "Ashkhabad";
    -
    8332 
    -
    8333 const basic::Info::ZoneInfo kZoneAsia_Ashkhabad ACE_TIME_PROGMEM = {
    -
    8334  kZoneNameAsia_Ashkhabad /*name*/,
    -
    8335  0x15454f09 /*zoneId*/,
    -
    8336  &kZoneContext /*zoneContext*/,
    -
    8337  1 /*numEras*/,
    -
    8338  kZoneEraAsia_Ashgabat /*eras*/,
    -
    8339  &kZoneAsia_Ashgabat /*targetInfo*/,
    -
    8340 };
    -
    8341 
    -
    8342 //---------------------------------------------------------------------------
    -
    8343 // Link name: Asia/Bahrain -> Asia/Qatar
    -
    8344 //---------------------------------------------------------------------------
    -
    8345 
    -
    8346 static const char kZoneNameAsia_Bahrain[] ACE_TIME_PROGMEM = "\x04" "Bahrain";
    -
    8347 
    -
    8348 const basic::Info::ZoneInfo kZoneAsia_Bahrain ACE_TIME_PROGMEM = {
    -
    8349  kZoneNameAsia_Bahrain /*name*/,
    -
    8350  0x9d078487 /*zoneId*/,
    -
    8351  &kZoneContext /*zoneContext*/,
    -
    8352  1 /*numEras*/,
    -
    8353  kZoneEraAsia_Qatar /*eras*/,
    -
    8354  &kZoneAsia_Qatar /*targetInfo*/,
    -
    8355 };
    -
    8356 
    -
    8357 //---------------------------------------------------------------------------
    -
    8358 // Link name: Asia/Brunei -> Asia/Kuching
    -
    8359 //---------------------------------------------------------------------------
    -
    8360 
    -
    8361 static const char kZoneNameAsia_Brunei[] ACE_TIME_PROGMEM = "\x04" "Brunei";
    -
    8362 
    -
    8363 const basic::Info::ZoneInfo kZoneAsia_Brunei ACE_TIME_PROGMEM = {
    -
    8364  kZoneNameAsia_Brunei /*name*/,
    -
    8365  0xa8e595f7 /*zoneId*/,
    -
    8366  &kZoneContext /*zoneContext*/,
    -
    8367  1 /*numEras*/,
    -
    8368  kZoneEraAsia_Kuching /*eras*/,
    -
    8369  &kZoneAsia_Kuching /*targetInfo*/,
    -
    8370 };
    -
    8371 
    -
    8372 //---------------------------------------------------------------------------
    -
    8373 // Link name: Asia/Calcutta -> Asia/Kolkata
    -
    8374 //---------------------------------------------------------------------------
    -
    8375 
    -
    8376 static const char kZoneNameAsia_Calcutta[] ACE_TIME_PROGMEM = "\x04" "Calcutta";
    -
    8377 
    -
    8378 const basic::Info::ZoneInfo kZoneAsia_Calcutta ACE_TIME_PROGMEM = {
    -
    8379  kZoneNameAsia_Calcutta /*name*/,
    -
    8380  0x328a44c3 /*zoneId*/,
    -
    8381  &kZoneContext /*zoneContext*/,
    -
    8382  1 /*numEras*/,
    -
    8383  kZoneEraAsia_Kolkata /*eras*/,
    -
    8384  &kZoneAsia_Kolkata /*targetInfo*/,
    -
    8385 };
    -
    8386 
    -
    8387 //---------------------------------------------------------------------------
    -
    8388 // Link name: Asia/Choibalsan -> Asia/Ulaanbaatar
    -
    8389 //---------------------------------------------------------------------------
    -
    8390 
    -
    8391 static const char kZoneNameAsia_Choibalsan[] ACE_TIME_PROGMEM = "\x04" "Choibalsan";
    -
    8392 
    -
    8393 const basic::Info::ZoneInfo kZoneAsia_Choibalsan ACE_TIME_PROGMEM = {
    -
    8394  kZoneNameAsia_Choibalsan /*name*/,
    -
    8395  0x928aa4a6 /*zoneId*/,
    -
    8396  &kZoneContext /*zoneContext*/,
    -
    8397  1 /*numEras*/,
    -
    8398  kZoneEraAsia_Ulaanbaatar /*eras*/,
    -
    8399  &kZoneAsia_Ulaanbaatar /*targetInfo*/,
    -
    8400 };
    -
    8401 
    -
    8402 //---------------------------------------------------------------------------
    -
    8403 // Link name: Asia/Chongqing -> Asia/Shanghai
    -
    8404 //---------------------------------------------------------------------------
    -
    8405 
    -
    8406 static const char kZoneNameAsia_Chongqing[] ACE_TIME_PROGMEM = "\x04" "Chongqing";
    -
    8407 
    -
    8408 const basic::Info::ZoneInfo kZoneAsia_Chongqing ACE_TIME_PROGMEM = {
    -
    8409  kZoneNameAsia_Chongqing /*name*/,
    -
    8410  0xf937fb90 /*zoneId*/,
    -
    8411  &kZoneContext /*zoneContext*/,
    -
    8412  1 /*numEras*/,
    -
    8413  kZoneEraAsia_Shanghai /*eras*/,
    -
    8414  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    8415 };
    -
    8416 
    -
    8417 //---------------------------------------------------------------------------
    -
    8418 // Link name: Asia/Chungking -> Asia/Shanghai
    -
    8419 //---------------------------------------------------------------------------
    -
    8420 
    -
    8421 static const char kZoneNameAsia_Chungking[] ACE_TIME_PROGMEM = "\x04" "Chungking";
    -
    8422 
    -
    8423 const basic::Info::ZoneInfo kZoneAsia_Chungking ACE_TIME_PROGMEM = {
    -
    8424  kZoneNameAsia_Chungking /*name*/,
    -
    8425  0xc7121dd0 /*zoneId*/,
    -
    8426  &kZoneContext /*zoneContext*/,
    -
    8427  1 /*numEras*/,
    -
    8428  kZoneEraAsia_Shanghai /*eras*/,
    -
    8429  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    8430 };
    -
    8431 
    -
    8432 //---------------------------------------------------------------------------
    -
    8433 // Link name: Asia/Dacca -> Asia/Dhaka
    -
    8434 //---------------------------------------------------------------------------
    -
    8435 
    -
    8436 static const char kZoneNameAsia_Dacca[] ACE_TIME_PROGMEM = "\x04" "Dacca";
    -
    8437 
    -
    8438 const basic::Info::ZoneInfo kZoneAsia_Dacca ACE_TIME_PROGMEM = {
    -
    8439  kZoneNameAsia_Dacca /*name*/,
    -
    8440  0x14bcac5e /*zoneId*/,
    -
    8441  &kZoneContext /*zoneContext*/,
    -
    8442  2 /*numEras*/,
    -
    8443  kZoneEraAsia_Dhaka /*eras*/,
    -
    8444  &kZoneAsia_Dhaka /*targetInfo*/,
    -
    8445 };
    -
    8446 
    -
    8447 //---------------------------------------------------------------------------
    -
    8448 // Link name: Asia/Harbin -> Asia/Shanghai
    -
    8449 //---------------------------------------------------------------------------
    -
    8450 
    -
    8451 static const char kZoneNameAsia_Harbin[] ACE_TIME_PROGMEM = "\x04" "Harbin";
    -
    8452 
    -
    8453 const basic::Info::ZoneInfo kZoneAsia_Harbin ACE_TIME_PROGMEM = {
    -
    8454  kZoneNameAsia_Harbin /*name*/,
    -
    8455  0xb5af1186 /*zoneId*/,
    -
    8456  &kZoneContext /*zoneContext*/,
    -
    8457  1 /*numEras*/,
    -
    8458  kZoneEraAsia_Shanghai /*eras*/,
    -
    8459  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    8460 };
    -
    8461 
    -
    8462 //---------------------------------------------------------------------------
    -
    8463 // Link name: Asia/Kashgar -> Asia/Urumqi
    -
    8464 //---------------------------------------------------------------------------
    -
    8465 
    -
    8466 static const char kZoneNameAsia_Kashgar[] ACE_TIME_PROGMEM = "\x04" "Kashgar";
    -
    8467 
    -
    8468 const basic::Info::ZoneInfo kZoneAsia_Kashgar ACE_TIME_PROGMEM = {
    -
    8469  kZoneNameAsia_Kashgar /*name*/,
    -
    8470  0x52955193 /*zoneId*/,
    -
    8471  &kZoneContext /*zoneContext*/,
    -
    8472  1 /*numEras*/,
    -
    8473  kZoneEraAsia_Urumqi /*eras*/,
    -
    8474  &kZoneAsia_Urumqi /*targetInfo*/,
    -
    8475 };
    -
    8476 
    -
    8477 //---------------------------------------------------------------------------
    -
    8478 // Link name: Asia/Katmandu -> Asia/Kathmandu
    -
    8479 //---------------------------------------------------------------------------
    -
    8480 
    -
    8481 static const char kZoneNameAsia_Katmandu[] ACE_TIME_PROGMEM = "\x04" "Katmandu";
    -
    8482 
    -
    8483 const basic::Info::ZoneInfo kZoneAsia_Katmandu ACE_TIME_PROGMEM = {
    -
    8484  kZoneNameAsia_Katmandu /*name*/,
    -
    8485  0xa7ec12c7 /*zoneId*/,
    -
    8486  &kZoneContext /*zoneContext*/,
    -
    8487  1 /*numEras*/,
    -
    8488  kZoneEraAsia_Kathmandu /*eras*/,
    -
    8489  &kZoneAsia_Kathmandu /*targetInfo*/,
    -
    8490 };
    -
    8491 
    -
    8492 //---------------------------------------------------------------------------
    -
    8493 // Link name: Asia/Kuala_Lumpur -> Asia/Singapore
    -
    8494 //---------------------------------------------------------------------------
    -
    8495 
    -
    8496 static const char kZoneNameAsia_Kuala_Lumpur[] ACE_TIME_PROGMEM = "\x04" "Kuala_Lumpur";
    -
    8497 
    -
    8498 const basic::Info::ZoneInfo kZoneAsia_Kuala_Lumpur ACE_TIME_PROGMEM = {
    -
    8499  kZoneNameAsia_Kuala_Lumpur /*name*/,
    -
    8500  0x014763c4 /*zoneId*/,
    -
    8501  &kZoneContext /*zoneContext*/,
    -
    8502  1 /*numEras*/,
    -
    8503  kZoneEraAsia_Singapore /*eras*/,
    -
    8504  &kZoneAsia_Singapore /*targetInfo*/,
    -
    8505 };
    -
    8506 
    -
    8507 //---------------------------------------------------------------------------
    -
    8508 // Link name: Asia/Kuwait -> Asia/Riyadh
    -
    8509 //---------------------------------------------------------------------------
    -
    8510 
    -
    8511 static const char kZoneNameAsia_Kuwait[] ACE_TIME_PROGMEM = "\x04" "Kuwait";
    -
    8512 
    -
    8513 const basic::Info::ZoneInfo kZoneAsia_Kuwait ACE_TIME_PROGMEM = {
    -
    8514  kZoneNameAsia_Kuwait /*name*/,
    -
    8515  0xbe1b2f27 /*zoneId*/,
    -
    8516  &kZoneContext /*zoneContext*/,
    -
    8517  1 /*numEras*/,
    -
    8518  kZoneEraAsia_Riyadh /*eras*/,
    -
    8519  &kZoneAsia_Riyadh /*targetInfo*/,
    -
    8520 };
    -
    8521 
    -
    8522 //---------------------------------------------------------------------------
    -
    8523 // Link name: Asia/Macao -> Asia/Macau
    -
    8524 //---------------------------------------------------------------------------
    -
    8525 
    -
    8526 static const char kZoneNameAsia_Macao[] ACE_TIME_PROGMEM = "\x04" "Macao";
    -
    8527 
    -
    8528 const basic::Info::ZoneInfo kZoneAsia_Macao ACE_TIME_PROGMEM = {
    -
    8529  kZoneNameAsia_Macao /*name*/,
    -
    8530  0x155f88b3 /*zoneId*/,
    -
    8531  &kZoneContext /*zoneContext*/,
    -
    8532  1 /*numEras*/,
    -
    8533  kZoneEraAsia_Macau /*eras*/,
    -
    8534  &kZoneAsia_Macau /*targetInfo*/,
    -
    8535 };
    -
    8536 
    -
    8537 //---------------------------------------------------------------------------
    -
    8538 // Link name: Asia/Muscat -> Asia/Dubai
    -
    8539 //---------------------------------------------------------------------------
    -
    8540 
    -
    8541 static const char kZoneNameAsia_Muscat[] ACE_TIME_PROGMEM = "\x04" "Muscat";
    -
    8542 
    -
    8543 const basic::Info::ZoneInfo kZoneAsia_Muscat ACE_TIME_PROGMEM = {
    -
    8544  kZoneNameAsia_Muscat /*name*/,
    -
    8545  0xc2c3565f /*zoneId*/,
    -
    8546  &kZoneContext /*zoneContext*/,
    -
    8547  1 /*numEras*/,
    -
    8548  kZoneEraAsia_Dubai /*eras*/,
    -
    8549  &kZoneAsia_Dubai /*targetInfo*/,
    -
    8550 };
    -
    8551 
    -
    8552 //---------------------------------------------------------------------------
    -
    8553 // Link name: Asia/Phnom_Penh -> Asia/Bangkok
    -
    8554 //---------------------------------------------------------------------------
    -
    8555 
    -
    8556 static const char kZoneNameAsia_Phnom_Penh[] ACE_TIME_PROGMEM = "\x04" "Phnom_Penh";
    -
    8557 
    -
    8558 const basic::Info::ZoneInfo kZoneAsia_Phnom_Penh ACE_TIME_PROGMEM = {
    -
    8559  kZoneNameAsia_Phnom_Penh /*name*/,
    -
    8560  0xc224945e /*zoneId*/,
    -
    8561  &kZoneContext /*zoneContext*/,
    -
    8562  1 /*numEras*/,
    -
    8563  kZoneEraAsia_Bangkok /*eras*/,
    -
    8564  &kZoneAsia_Bangkok /*targetInfo*/,
    -
    8565 };
    -
    8566 
    -
    8567 //---------------------------------------------------------------------------
    -
    8568 // Link name: Asia/Rangoon -> Asia/Yangon
    -
    8569 //---------------------------------------------------------------------------
    -
    8570 
    -
    8571 static const char kZoneNameAsia_Rangoon[] ACE_TIME_PROGMEM = "\x04" "Rangoon";
    -
    8572 
    -
    8573 const basic::Info::ZoneInfo kZoneAsia_Rangoon ACE_TIME_PROGMEM = {
    -
    8574  kZoneNameAsia_Rangoon /*name*/,
    -
    8575  0x6d1217c6 /*zoneId*/,
    -
    8576  &kZoneContext /*zoneContext*/,
    -
    8577  1 /*numEras*/,
    -
    8578  kZoneEraAsia_Yangon /*eras*/,
    -
    8579  &kZoneAsia_Yangon /*targetInfo*/,
    -
    8580 };
    -
    8581 
    -
    8582 //---------------------------------------------------------------------------
    -
    8583 // Link name: Asia/Saigon -> Asia/Ho_Chi_Minh
    -
    8584 //---------------------------------------------------------------------------
    -
    8585 
    -
    8586 static const char kZoneNameAsia_Saigon[] ACE_TIME_PROGMEM = "\x04" "Saigon";
    -
    8587 
    -
    8588 const basic::Info::ZoneInfo kZoneAsia_Saigon ACE_TIME_PROGMEM = {
    -
    8589  kZoneNameAsia_Saigon /*name*/,
    -
    8590  0xcf52f713 /*zoneId*/,
    -
    8591  &kZoneContext /*zoneContext*/,
    -
    8592  1 /*numEras*/,
    -
    8593  kZoneEraAsia_Ho_Chi_Minh /*eras*/,
    -
    8594  &kZoneAsia_Ho_Chi_Minh /*targetInfo*/,
    -
    8595 };
    -
    8596 
    -
    8597 //---------------------------------------------------------------------------
    -
    8598 // Link name: Asia/Tel_Aviv -> Asia/Jerusalem
    -
    8599 //---------------------------------------------------------------------------
    -
    8600 
    -
    8601 static const char kZoneNameAsia_Tel_Aviv[] ACE_TIME_PROGMEM = "\x04" "Tel_Aviv";
    -
    8602 
    -
    8603 const basic::Info::ZoneInfo kZoneAsia_Tel_Aviv ACE_TIME_PROGMEM = {
    -
    8604  kZoneNameAsia_Tel_Aviv /*name*/,
    -
    8605  0x166d7c2c /*zoneId*/,
    -
    8606  &kZoneContext /*zoneContext*/,
    -
    8607  1 /*numEras*/,
    -
    8608  kZoneEraAsia_Jerusalem /*eras*/,
    -
    8609  &kZoneAsia_Jerusalem /*targetInfo*/,
    -
    8610 };
    -
    8611 
    -
    8612 //---------------------------------------------------------------------------
    -
    8613 // Link name: Asia/Thimbu -> Asia/Thimphu
    -
    8614 //---------------------------------------------------------------------------
    -
    8615 
    -
    8616 static const char kZoneNameAsia_Thimbu[] ACE_TIME_PROGMEM = "\x04" "Thimbu";
    -
    8617 
    -
    8618 const basic::Info::ZoneInfo kZoneAsia_Thimbu ACE_TIME_PROGMEM = {
    -
    8619  kZoneNameAsia_Thimbu /*name*/,
    -
    8620  0xd226e31b /*zoneId*/,
    -
    8621  &kZoneContext /*zoneContext*/,
    -
    8622  1 /*numEras*/,
    -
    8623  kZoneEraAsia_Thimphu /*eras*/,
    -
    8624  &kZoneAsia_Thimphu /*targetInfo*/,
    -
    8625 };
    -
    8626 
    -
    8627 //---------------------------------------------------------------------------
    -
    8628 // Link name: Asia/Ujung_Pandang -> Asia/Makassar
    -
    8629 //---------------------------------------------------------------------------
    -
    8630 
    -
    8631 static const char kZoneNameAsia_Ujung_Pandang[] ACE_TIME_PROGMEM = "\x04" "Ujung_Pandang";
    -
    8632 
    -
    8633 const basic::Info::ZoneInfo kZoneAsia_Ujung_Pandang ACE_TIME_PROGMEM = {
    -
    8634  kZoneNameAsia_Ujung_Pandang /*name*/,
    -
    8635  0x5d001eb3 /*zoneId*/,
    -
    8636  &kZoneContext /*zoneContext*/,
    -
    8637  1 /*numEras*/,
    -
    8638  kZoneEraAsia_Makassar /*eras*/,
    -
    8639  &kZoneAsia_Makassar /*targetInfo*/,
    -
    8640 };
    -
    8641 
    -
    8642 //---------------------------------------------------------------------------
    -
    8643 // Link name: Asia/Ulan_Bator -> Asia/Ulaanbaatar
    -
    8644 //---------------------------------------------------------------------------
    -
    8645 
    -
    8646 static const char kZoneNameAsia_Ulan_Bator[] ACE_TIME_PROGMEM = "\x04" "Ulan_Bator";
    -
    8647 
    -
    8648 const basic::Info::ZoneInfo kZoneAsia_Ulan_Bator ACE_TIME_PROGMEM = {
    -
    8649  kZoneNameAsia_Ulan_Bator /*name*/,
    -
    8650  0x394db4d9 /*zoneId*/,
    -
    8651  &kZoneContext /*zoneContext*/,
    -
    8652  1 /*numEras*/,
    -
    8653  kZoneEraAsia_Ulaanbaatar /*eras*/,
    -
    8654  &kZoneAsia_Ulaanbaatar /*targetInfo*/,
    -
    8655 };
    -
    8656 
    -
    8657 //---------------------------------------------------------------------------
    -
    8658 // Link name: Asia/Vientiane -> Asia/Bangkok
    -
    8659 //---------------------------------------------------------------------------
    -
    8660 
    -
    8661 static const char kZoneNameAsia_Vientiane[] ACE_TIME_PROGMEM = "\x04" "Vientiane";
    -
    8662 
    -
    8663 const basic::Info::ZoneInfo kZoneAsia_Vientiane ACE_TIME_PROGMEM = {
    -
    8664  kZoneNameAsia_Vientiane /*name*/,
    -
    8665  0x89d68d75 /*zoneId*/,
    -
    8666  &kZoneContext /*zoneContext*/,
    -
    8667  1 /*numEras*/,
    -
    8668  kZoneEraAsia_Bangkok /*eras*/,
    -
    8669  &kZoneAsia_Bangkok /*targetInfo*/,
    -
    8670 };
    -
    8671 
    -
    8672 //---------------------------------------------------------------------------
    -
    8673 // Link name: Atlantic/Faeroe -> Atlantic/Faroe
    -
    8674 //---------------------------------------------------------------------------
    -
    8675 
    -
    8676 static const char kZoneNameAtlantic_Faeroe[] ACE_TIME_PROGMEM = "\x05" "Faeroe";
    -
    8677 
    -
    8678 const basic::Info::ZoneInfo kZoneAtlantic_Faeroe ACE_TIME_PROGMEM = {
    -
    8679  kZoneNameAtlantic_Faeroe /*name*/,
    -
    8680  0x031ec516 /*zoneId*/,
    -
    8681  &kZoneContext /*zoneContext*/,
    -
    8682  1 /*numEras*/,
    -
    8683  kZoneEraAtlantic_Faroe /*eras*/,
    -
    8684  &kZoneAtlantic_Faroe /*targetInfo*/,
    -
    8685 };
    -
    8686 
    -
    8687 //---------------------------------------------------------------------------
    -
    8688 // Link name: Atlantic/Jan_Mayen -> Europe/Berlin
    -
    8689 //---------------------------------------------------------------------------
    -
    8690 
    -
    8691 static const char kZoneNameAtlantic_Jan_Mayen[] ACE_TIME_PROGMEM = "\x05" "Jan_Mayen";
    -
    8692 
    -
    8693 const basic::Info::ZoneInfo kZoneAtlantic_Jan_Mayen ACE_TIME_PROGMEM = {
    -
    8694  kZoneNameAtlantic_Jan_Mayen /*name*/,
    -
    8695  0x5a7535b6 /*zoneId*/,
    -
    8696  &kZoneContext /*zoneContext*/,
    -
    8697  1 /*numEras*/,
    -
    8698  kZoneEraEurope_Berlin /*eras*/,
    -
    8699  &kZoneEurope_Berlin /*targetInfo*/,
    -
    8700 };
    -
    8701 
    -
    8702 //---------------------------------------------------------------------------
    -
    8703 // Link name: Atlantic/Reykjavik -> Africa/Abidjan
    -
    8704 //---------------------------------------------------------------------------
    -
    8705 
    -
    8706 static const char kZoneNameAtlantic_Reykjavik[] ACE_TIME_PROGMEM = "\x05" "Reykjavik";
    -
    8707 
    -
    8708 const basic::Info::ZoneInfo kZoneAtlantic_Reykjavik ACE_TIME_PROGMEM = {
    -
    8709  kZoneNameAtlantic_Reykjavik /*name*/,
    -
    8710  0x1c2b4f74 /*zoneId*/,
    -
    8711  &kZoneContext /*zoneContext*/,
    -
    8712  1 /*numEras*/,
    -
    8713  kZoneEraAfrica_Abidjan /*eras*/,
    -
    8714  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    8715 };
    -
    8716 
    -
    8717 //---------------------------------------------------------------------------
    -
    8718 // Link name: Atlantic/St_Helena -> Africa/Abidjan
    -
    8719 //---------------------------------------------------------------------------
    -
    8720 
    -
    8721 static const char kZoneNameAtlantic_St_Helena[] ACE_TIME_PROGMEM = "\x05" "St_Helena";
    -
    8722 
    -
    8723 const basic::Info::ZoneInfo kZoneAtlantic_St_Helena ACE_TIME_PROGMEM = {
    -
    8724  kZoneNameAtlantic_St_Helena /*name*/,
    -
    8725  0x451fc5f7 /*zoneId*/,
    -
    8726  &kZoneContext /*zoneContext*/,
    -
    8727  1 /*numEras*/,
    -
    8728  kZoneEraAfrica_Abidjan /*eras*/,
    -
    8729  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    8730 };
    -
    8731 
    -
    8732 //---------------------------------------------------------------------------
    -
    8733 // Link name: Australia/ACT -> Australia/Sydney
    -
    8734 //---------------------------------------------------------------------------
    -
    8735 
    -
    8736 static const char kZoneNameAustralia_ACT[] ACE_TIME_PROGMEM = "\x06" "ACT";
    -
    8737 
    -
    8738 const basic::Info::ZoneInfo kZoneAustralia_ACT ACE_TIME_PROGMEM = {
    -
    8739  kZoneNameAustralia_ACT /*name*/,
    -
    8740  0x8a970eb2 /*zoneId*/,
    -
    8741  &kZoneContext /*zoneContext*/,
    -
    8742  1 /*numEras*/,
    -
    8743  kZoneEraAustralia_Sydney /*eras*/,
    -
    8744  &kZoneAustralia_Sydney /*targetInfo*/,
    -
    8745 };
    -
    8746 
    -
    8747 //---------------------------------------------------------------------------
    -
    8748 // Link name: Australia/Canberra -> Australia/Sydney
    -
    8749 //---------------------------------------------------------------------------
    -
    8750 
    -
    8751 static const char kZoneNameAustralia_Canberra[] ACE_TIME_PROGMEM = "\x06" "Canberra";
    -
    8752 
    -
    8753 const basic::Info::ZoneInfo kZoneAustralia_Canberra ACE_TIME_PROGMEM = {
    -
    8754  kZoneNameAustralia_Canberra /*name*/,
    -
    8755  0x2a09ae58 /*zoneId*/,
    -
    8756  &kZoneContext /*zoneContext*/,
    -
    8757  1 /*numEras*/,
    -
    8758  kZoneEraAustralia_Sydney /*eras*/,
    -
    8759  &kZoneAustralia_Sydney /*targetInfo*/,
    -
    8760 };
    -
    8761 
    -
    8762 //---------------------------------------------------------------------------
    -
    8763 // Link name: Australia/Currie -> Australia/Hobart
    -
    8764 //---------------------------------------------------------------------------
    -
    8765 
    -
    8766 static const char kZoneNameAustralia_Currie[] ACE_TIME_PROGMEM = "\x06" "Currie";
    -
    8767 
    -
    8768 const basic::Info::ZoneInfo kZoneAustralia_Currie ACE_TIME_PROGMEM = {
    -
    8769  kZoneNameAustralia_Currie /*name*/,
    -
    8770  0x278b6a24 /*zoneId*/,
    -
    8771  &kZoneContext /*zoneContext*/,
    -
    8772  1 /*numEras*/,
    -
    8773  kZoneEraAustralia_Hobart /*eras*/,
    -
    8774  &kZoneAustralia_Hobart /*targetInfo*/,
    -
    8775 };
    -
    8776 
    -
    8777 //---------------------------------------------------------------------------
    -
    8778 // Link name: Australia/LHI -> Australia/Lord_Howe
    -
    8779 //---------------------------------------------------------------------------
    -
    8780 
    -
    8781 static const char kZoneNameAustralia_LHI[] ACE_TIME_PROGMEM = "\x06" "LHI";
    -
    8782 
    -
    8783 const basic::Info::ZoneInfo kZoneAustralia_LHI ACE_TIME_PROGMEM = {
    -
    8784  kZoneNameAustralia_LHI /*name*/,
    -
    8785  0x8a973e17 /*zoneId*/,
    -
    8786  &kZoneContext /*zoneContext*/,
    -
    8787  1 /*numEras*/,
    -
    8788  kZoneEraAustralia_Lord_Howe /*eras*/,
    -
    8789  &kZoneAustralia_Lord_Howe /*targetInfo*/,
    -
    8790 };
    -
    8791 
    -
    8792 //---------------------------------------------------------------------------
    -
    8793 // Link name: Australia/NSW -> Australia/Sydney
    -
    8794 //---------------------------------------------------------------------------
    -
    8795 
    -
    8796 static const char kZoneNameAustralia_NSW[] ACE_TIME_PROGMEM = "\x06" "NSW";
    -
    8797 
    -
    8798 const basic::Info::ZoneInfo kZoneAustralia_NSW ACE_TIME_PROGMEM = {
    -
    8799  kZoneNameAustralia_NSW /*name*/,
    -
    8800  0x8a974812 /*zoneId*/,
    -
    8801  &kZoneContext /*zoneContext*/,
    -
    8802  1 /*numEras*/,
    -
    8803  kZoneEraAustralia_Sydney /*eras*/,
    -
    8804  &kZoneAustralia_Sydney /*targetInfo*/,
    -
    8805 };
    -
    8806 
    -
    8807 //---------------------------------------------------------------------------
    -
    8808 // Link name: Australia/North -> Australia/Darwin
    -
    8809 //---------------------------------------------------------------------------
    -
    8810 
    -
    8811 static const char kZoneNameAustralia_North[] ACE_TIME_PROGMEM = "\x06" "North";
    -
    8812 
    -
    8813 const basic::Info::ZoneInfo kZoneAustralia_North ACE_TIME_PROGMEM = {
    -
    8814  kZoneNameAustralia_North /*name*/,
    -
    8815  0x8d997165 /*zoneId*/,
    -
    8816  &kZoneContext /*zoneContext*/,
    -
    8817  1 /*numEras*/,
    -
    8818  kZoneEraAustralia_Darwin /*eras*/,
    -
    8819  &kZoneAustralia_Darwin /*targetInfo*/,
    -
    8820 };
    -
    8821 
    -
    8822 //---------------------------------------------------------------------------
    -
    8823 // Link name: Australia/Queensland -> Australia/Brisbane
    -
    8824 //---------------------------------------------------------------------------
    -
    8825 
    -
    8826 static const char kZoneNameAustralia_Queensland[] ACE_TIME_PROGMEM = "\x06" "Queensland";
    -
    8827 
    -
    8828 const basic::Info::ZoneInfo kZoneAustralia_Queensland ACE_TIME_PROGMEM = {
    -
    8829  kZoneNameAustralia_Queensland /*name*/,
    -
    8830  0xd326ed0a /*zoneId*/,
    -
    8831  &kZoneContext /*zoneContext*/,
    -
    8832  1 /*numEras*/,
    -
    8833  kZoneEraAustralia_Brisbane /*eras*/,
    -
    8834  &kZoneAustralia_Brisbane /*targetInfo*/,
    -
    8835 };
    -
    8836 
    -
    8837 //---------------------------------------------------------------------------
    -
    8838 // Link name: Australia/South -> Australia/Adelaide
    -
    8839 //---------------------------------------------------------------------------
    -
    8840 
    -
    8841 static const char kZoneNameAustralia_South[] ACE_TIME_PROGMEM = "\x06" "South";
    -
    8842 
    -
    8843 const basic::Info::ZoneInfo kZoneAustralia_South ACE_TIME_PROGMEM = {
    -
    8844  kZoneNameAustralia_South /*name*/,
    -
    8845  0x8df3f8ad /*zoneId*/,
    -
    8846  &kZoneContext /*zoneContext*/,
    -
    8847  1 /*numEras*/,
    -
    8848  kZoneEraAustralia_Adelaide /*eras*/,
    -
    8849  &kZoneAustralia_Adelaide /*targetInfo*/,
    -
    8850 };
    -
    8851 
    -
    8852 //---------------------------------------------------------------------------
    -
    8853 // Link name: Australia/Tasmania -> Australia/Hobart
    -
    8854 //---------------------------------------------------------------------------
    -
    8855 
    -
    8856 static const char kZoneNameAustralia_Tasmania[] ACE_TIME_PROGMEM = "\x06" "Tasmania";
    -
    8857 
    -
    8858 const basic::Info::ZoneInfo kZoneAustralia_Tasmania ACE_TIME_PROGMEM = {
    -
    8859  kZoneNameAustralia_Tasmania /*name*/,
    -
    8860  0xe6d76648 /*zoneId*/,
    -
    8861  &kZoneContext /*zoneContext*/,
    -
    8862  1 /*numEras*/,
    -
    8863  kZoneEraAustralia_Hobart /*eras*/,
    -
    8864  &kZoneAustralia_Hobart /*targetInfo*/,
    -
    8865 };
    -
    8866 
    -
    8867 //---------------------------------------------------------------------------
    -
    8868 // Link name: Australia/Victoria -> Australia/Melbourne
    -
    8869 //---------------------------------------------------------------------------
    -
    8870 
    -
    8871 static const char kZoneNameAustralia_Victoria[] ACE_TIME_PROGMEM = "\x06" "Victoria";
    -
    8872 
    -
    8873 const basic::Info::ZoneInfo kZoneAustralia_Victoria ACE_TIME_PROGMEM = {
    -
    8874  kZoneNameAustralia_Victoria /*name*/,
    -
    8875  0x0260d5db /*zoneId*/,
    -
    8876  &kZoneContext /*zoneContext*/,
    -
    8877  1 /*numEras*/,
    -
    8878  kZoneEraAustralia_Melbourne /*eras*/,
    -
    8879  &kZoneAustralia_Melbourne /*targetInfo*/,
    -
    8880 };
    -
    8881 
    -
    8882 //---------------------------------------------------------------------------
    -
    8883 // Link name: Australia/West -> Australia/Perth
    -
    8884 //---------------------------------------------------------------------------
    -
    8885 
    -
    8886 static const char kZoneNameAustralia_West[] ACE_TIME_PROGMEM = "\x06" "West";
    -
    8887 
    -
    8888 const basic::Info::ZoneInfo kZoneAustralia_West ACE_TIME_PROGMEM = {
    -
    8889  kZoneNameAustralia_West /*name*/,
    -
    8890  0xdd858a5d /*zoneId*/,
    -
    8891  &kZoneContext /*zoneContext*/,
    -
    8892  1 /*numEras*/,
    -
    8893  kZoneEraAustralia_Perth /*eras*/,
    -
    8894  &kZoneAustralia_Perth /*targetInfo*/,
    -
    8895 };
    -
    8896 
    -
    8897 //---------------------------------------------------------------------------
    -
    8898 // Link name: Australia/Yancowinna -> Australia/Broken_Hill
    -
    8899 //---------------------------------------------------------------------------
    -
    8900 
    -
    8901 static const char kZoneNameAustralia_Yancowinna[] ACE_TIME_PROGMEM = "\x06" "Yancowinna";
    -
    8902 
    -
    8903 const basic::Info::ZoneInfo kZoneAustralia_Yancowinna ACE_TIME_PROGMEM = {
    -
    8904  kZoneNameAustralia_Yancowinna /*name*/,
    -
    8905  0x90bac131 /*zoneId*/,
    -
    8906  &kZoneContext /*zoneContext*/,
    -
    8907  2 /*numEras*/,
    -
    8908  kZoneEraAustralia_Broken_Hill /*eras*/,
    -
    8909  &kZoneAustralia_Broken_Hill /*targetInfo*/,
    -
    8910 };
    -
    8911 
    -
    8912 //---------------------------------------------------------------------------
    -
    8913 // Link name: Brazil/East -> America/Sao_Paulo
    -
    8914 //---------------------------------------------------------------------------
    -
    8915 
    -
    8916 static const char kZoneNameBrazil_East[] ACE_TIME_PROGMEM = "Brazil/East";
    -
    8917 
    -
    8918 const basic::Info::ZoneInfo kZoneBrazil_East ACE_TIME_PROGMEM = {
    -
    8919  kZoneNameBrazil_East /*name*/,
    -
    8920  0x669578c5 /*zoneId*/,
    -
    8921  &kZoneContext /*zoneContext*/,
    -
    8922  1 /*numEras*/,
    -
    8923  kZoneEraAmerica_Sao_Paulo /*eras*/,
    -
    8924  &kZoneAmerica_Sao_Paulo /*targetInfo*/,
    -
    8925 };
    -
    8926 
    -
    8927 //---------------------------------------------------------------------------
    -
    8928 // Link name: Brazil/West -> America/Manaus
    -
    8929 //---------------------------------------------------------------------------
    -
    8930 
    -
    8931 static const char kZoneNameBrazil_West[] ACE_TIME_PROGMEM = "Brazil/West";
    -
    8932 
    -
    8933 const basic::Info::ZoneInfo kZoneBrazil_West ACE_TIME_PROGMEM = {
    -
    8934  kZoneNameBrazil_West /*name*/,
    -
    8935  0x669f689b /*zoneId*/,
    -
    8936  &kZoneContext /*zoneContext*/,
    -
    8937  1 /*numEras*/,
    -
    8938  kZoneEraAmerica_Manaus /*eras*/,
    -
    8939  &kZoneAmerica_Manaus /*targetInfo*/,
    -
    8940 };
    -
    8941 
    -
    8942 //---------------------------------------------------------------------------
    -
    8943 // Link name: CET -> Europe/Brussels
    -
    8944 //---------------------------------------------------------------------------
    -
    8945 
    -
    8946 static const char kZoneNameCET[] ACE_TIME_PROGMEM = "CET";
    -
    8947 
    -
    8948 const basic::Info::ZoneInfo kZoneCET ACE_TIME_PROGMEM = {
    -
    8949  kZoneNameCET /*name*/,
    -
    8950  0x0b87d921 /*zoneId*/,
    -
    8951  &kZoneContext /*zoneContext*/,
    -
    8952  1 /*numEras*/,
    -
    8953  kZoneEraEurope_Brussels /*eras*/,
    -
    8954  &kZoneEurope_Brussels /*targetInfo*/,
    -
    8955 };
    -
    8956 
    -
    8957 //---------------------------------------------------------------------------
    -
    8958 // Link name: CST6CDT -> America/Chicago
    -
    8959 //---------------------------------------------------------------------------
    -
    8960 
    -
    8961 static const char kZoneNameCST6CDT[] ACE_TIME_PROGMEM = "CST6CDT";
    -
    8962 
    -
    8963 const basic::Info::ZoneInfo kZoneCST6CDT ACE_TIME_PROGMEM = {
    -
    8964  kZoneNameCST6CDT /*name*/,
    -
    8965  0xf0e87d00 /*zoneId*/,
    -
    8966  &kZoneContext /*zoneContext*/,
    -
    8967  1 /*numEras*/,
    -
    8968  kZoneEraAmerica_Chicago /*eras*/,
    -
    8969  &kZoneAmerica_Chicago /*targetInfo*/,
    -
    8970 };
    -
    8971 
    -
    8972 //---------------------------------------------------------------------------
    -
    8973 // Link name: Canada/Atlantic -> America/Halifax
    -
    8974 //---------------------------------------------------------------------------
    -
    8975 
    -
    8976 static const char kZoneNameCanada_Atlantic[] ACE_TIME_PROGMEM = "\x07" "Atlantic";
    -
    8977 
    -
    8978 const basic::Info::ZoneInfo kZoneCanada_Atlantic ACE_TIME_PROGMEM = {
    -
    8979  kZoneNameCanada_Atlantic /*name*/,
    -
    8980  0x536b119c /*zoneId*/,
    -
    8981  &kZoneContext /*zoneContext*/,
    -
    8982  1 /*numEras*/,
    -
    8983  kZoneEraAmerica_Halifax /*eras*/,
    -
    8984  &kZoneAmerica_Halifax /*targetInfo*/,
    -
    8985 };
    -
    8986 
    -
    8987 //---------------------------------------------------------------------------
    -
    8988 // Link name: Canada/Central -> America/Winnipeg
    -
    8989 //---------------------------------------------------------------------------
    -
    8990 
    -
    8991 static const char kZoneNameCanada_Central[] ACE_TIME_PROGMEM = "\x07" "Central";
    -
    8992 
    -
    8993 const basic::Info::ZoneInfo kZoneCanada_Central ACE_TIME_PROGMEM = {
    -
    8994  kZoneNameCanada_Central /*name*/,
    -
    8995  0x626710f5 /*zoneId*/,
    -
    8996  &kZoneContext /*zoneContext*/,
    -
    8997  2 /*numEras*/,
    -
    8998  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    8999  &kZoneAmerica_Winnipeg /*targetInfo*/,
    -
    9000 };
    -
    9001 
    -
    9002 //---------------------------------------------------------------------------
    -
    9003 // Link name: Canada/Eastern -> America/Toronto
    -
    9004 //---------------------------------------------------------------------------
    -
    9005 
    -
    9006 static const char kZoneNameCanada_Eastern[] ACE_TIME_PROGMEM = "\x07" "Eastern";
    -
    9007 
    -
    9008 const basic::Info::ZoneInfo kZoneCanada_Eastern ACE_TIME_PROGMEM = {
    -
    9009  kZoneNameCanada_Eastern /*name*/,
    -
    9010  0xf3612d5e /*zoneId*/,
    -
    9011  &kZoneContext /*zoneContext*/,
    -
    9012  1 /*numEras*/,
    -
    9013  kZoneEraAmerica_Toronto /*eras*/,
    -
    9014  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    9015 };
    -
    9016 
    -
    9017 //---------------------------------------------------------------------------
    -
    9018 // Link name: Canada/Mountain -> America/Edmonton
    -
    9019 //---------------------------------------------------------------------------
    -
    9020 
    -
    9021 static const char kZoneNameCanada_Mountain[] ACE_TIME_PROGMEM = "\x07" "Mountain";
    -
    9022 
    -
    9023 const basic::Info::ZoneInfo kZoneCanada_Mountain ACE_TIME_PROGMEM = {
    -
    9024  kZoneNameCanada_Mountain /*name*/,
    -
    9025  0xfb8a8217 /*zoneId*/,
    -
    9026  &kZoneContext /*zoneContext*/,
    -
    9027  1 /*numEras*/,
    -
    9028  kZoneEraAmerica_Edmonton /*eras*/,
    -
    9029  &kZoneAmerica_Edmonton /*targetInfo*/,
    -
    9030 };
    -
    9031 
    -
    9032 //---------------------------------------------------------------------------
    -
    9033 // Link name: Canada/Pacific -> America/Vancouver
    -
    9034 //---------------------------------------------------------------------------
    -
    9035 
    -
    9036 static const char kZoneNameCanada_Pacific[] ACE_TIME_PROGMEM = "\x07" "Pacific";
    -
    9037 
    -
    9038 const basic::Info::ZoneInfo kZoneCanada_Pacific ACE_TIME_PROGMEM = {
    -
    9039  kZoneNameCanada_Pacific /*name*/,
    -
    9040  0x40fa3c7b /*zoneId*/,
    -
    9041  &kZoneContext /*zoneContext*/,
    -
    9042  1 /*numEras*/,
    -
    9043  kZoneEraAmerica_Vancouver /*eras*/,
    -
    9044  &kZoneAmerica_Vancouver /*targetInfo*/,
    -
    9045 };
    -
    9046 
    -
    9047 //---------------------------------------------------------------------------
    -
    9048 // Link name: Canada/Saskatchewan -> America/Regina
    -
    9049 //---------------------------------------------------------------------------
    -
    9050 
    -
    9051 static const char kZoneNameCanada_Saskatchewan[] ACE_TIME_PROGMEM = "\x07" "Saskatchewan";
    -
    9052 
    -
    9053 const basic::Info::ZoneInfo kZoneCanada_Saskatchewan ACE_TIME_PROGMEM = {
    -
    9054  kZoneNameCanada_Saskatchewan /*name*/,
    -
    9055  0x77311f49 /*zoneId*/,
    -
    9056  &kZoneContext /*zoneContext*/,
    -
    9057  1 /*numEras*/,
    -
    9058  kZoneEraAmerica_Regina /*eras*/,
    -
    9059  &kZoneAmerica_Regina /*targetInfo*/,
    -
    9060 };
    -
    9061 
    -
    9062 //---------------------------------------------------------------------------
    -
    9063 // Link name: Chile/Continental -> America/Santiago
    -
    9064 //---------------------------------------------------------------------------
    -
    9065 
    -
    9066 static const char kZoneNameChile_Continental[] ACE_TIME_PROGMEM = "Chile/Continental";
    -
    9067 
    -
    9068 const basic::Info::ZoneInfo kZoneChile_Continental ACE_TIME_PROGMEM = {
    -
    9069  kZoneNameChile_Continental /*name*/,
    -
    9070  0x7e2bdb18 /*zoneId*/,
    -
    9071  &kZoneContext /*zoneContext*/,
    -
    9072  1 /*numEras*/,
    -
    9073  kZoneEraAmerica_Santiago /*eras*/,
    -
    9074  &kZoneAmerica_Santiago /*targetInfo*/,
    -
    9075 };
    -
    9076 
    -
    9077 //---------------------------------------------------------------------------
    -
    9078 // Link name: Chile/EasterIsland -> Pacific/Easter
    -
    9079 //---------------------------------------------------------------------------
    -
    9080 
    -
    9081 static const char kZoneNameChile_EasterIsland[] ACE_TIME_PROGMEM = "Chile/EasterIsland";
    -
    9082 
    -
    9083 const basic::Info::ZoneInfo kZoneChile_EasterIsland ACE_TIME_PROGMEM = {
    -
    9084  kZoneNameChile_EasterIsland /*name*/,
    -
    9085  0xb0982af8 /*zoneId*/,
    -
    9086  &kZoneContext /*zoneContext*/,
    -
    9087  1 /*numEras*/,
    -
    9088  kZoneEraPacific_Easter /*eras*/,
    -
    9089  &kZonePacific_Easter /*targetInfo*/,
    -
    9090 };
    -
    9091 
    -
    9092 //---------------------------------------------------------------------------
    -
    9093 // Link name: Cuba -> America/Havana
    -
    9094 //---------------------------------------------------------------------------
    -
    9095 
    -
    9096 static const char kZoneNameCuba[] ACE_TIME_PROGMEM = "Cuba";
    -
    9097 
    -
    9098 const basic::Info::ZoneInfo kZoneCuba ACE_TIME_PROGMEM = {
    -
    9099  kZoneNameCuba /*name*/,
    -
    9100  0x7c83cba0 /*zoneId*/,
    -
    9101  &kZoneContext /*zoneContext*/,
    -
    9102  1 /*numEras*/,
    -
    9103  kZoneEraAmerica_Havana /*eras*/,
    -
    9104  &kZoneAmerica_Havana /*targetInfo*/,
    -
    9105 };
    -
    9106 
    -
    9107 //---------------------------------------------------------------------------
    -
    9108 // Link name: EET -> Europe/Athens
    -
    9109 //---------------------------------------------------------------------------
    -
    9110 
    -
    9111 static const char kZoneNameEET[] ACE_TIME_PROGMEM = "EET";
    -
    9112 
    -
    9113 const basic::Info::ZoneInfo kZoneEET ACE_TIME_PROGMEM = {
    -
    9114  kZoneNameEET /*name*/,
    -
    9115  0x0b87e1a3 /*zoneId*/,
    -
    9116  &kZoneContext /*zoneContext*/,
    -
    9117  1 /*numEras*/,
    -
    9118  kZoneEraEurope_Athens /*eras*/,
    -
    9119  &kZoneEurope_Athens /*targetInfo*/,
    -
    9120 };
    -
    9121 
    -
    9122 //---------------------------------------------------------------------------
    -
    9123 // Link name: EST -> America/Panama
    -
    9124 //---------------------------------------------------------------------------
    -
    9125 
    -
    9126 static const char kZoneNameEST[] ACE_TIME_PROGMEM = "EST";
    -
    9127 
    -
    9128 const basic::Info::ZoneInfo kZoneEST ACE_TIME_PROGMEM = {
    -
    9129  kZoneNameEST /*name*/,
    -
    9130  0x0b87e371 /*zoneId*/,
    -
    9131  &kZoneContext /*zoneContext*/,
    -
    9132  1 /*numEras*/,
    -
    9133  kZoneEraAmerica_Panama /*eras*/,
    -
    9134  &kZoneAmerica_Panama /*targetInfo*/,
    -
    9135 };
    -
    9136 
    -
    9137 //---------------------------------------------------------------------------
    -
    9138 // Link name: EST5EDT -> America/New_York
    -
    9139 //---------------------------------------------------------------------------
    -
    9140 
    -
    9141 static const char kZoneNameEST5EDT[] ACE_TIME_PROGMEM = "EST5EDT";
    -
    9142 
    -
    9143 const basic::Info::ZoneInfo kZoneEST5EDT ACE_TIME_PROGMEM = {
    -
    9144  kZoneNameEST5EDT /*name*/,
    -
    9145  0x8adc72a3 /*zoneId*/,
    -
    9146  &kZoneContext /*zoneContext*/,
    -
    9147  1 /*numEras*/,
    -
    9148  kZoneEraAmerica_New_York /*eras*/,
    -
    9149  &kZoneAmerica_New_York /*targetInfo*/,
    -
    9150 };
    -
    9151 
    -
    9152 //---------------------------------------------------------------------------
    -
    9153 // Link name: Eire -> Europe/Dublin
    -
    9154 //---------------------------------------------------------------------------
    -
    9155 
    -
    9156 static const char kZoneNameEire[] ACE_TIME_PROGMEM = "Eire";
    -
    9157 
    -
    9158 const basic::Info::ZoneInfo kZoneEire ACE_TIME_PROGMEM = {
    -
    9159  kZoneNameEire /*name*/,
    -
    9160  0x7c84b36a /*zoneId*/,
    -
    9161  &kZoneContext /*zoneContext*/,
    -
    9162  1 /*numEras*/,
    -
    9163  kZoneEraEurope_Dublin /*eras*/,
    -
    9164  &kZoneEurope_Dublin /*targetInfo*/,
    -
    9165 };
    -
    9166 
    -
    9167 //---------------------------------------------------------------------------
    -
    9168 // Link name: Etc/GMT+0 -> Etc/GMT
    -
    9169 //---------------------------------------------------------------------------
    -
    9170 
    -
    9171 static const char kZoneNameEtc_GMT_PLUS_0[] ACE_TIME_PROGMEM = "\x08" "GMT+0";
    -
    9172 
    -
    9173 const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_0 ACE_TIME_PROGMEM = {
    -
    9174  kZoneNameEtc_GMT_PLUS_0 /*name*/,
    -
    9175  0x9d13da13 /*zoneId*/,
    -
    9176  &kZoneContext /*zoneContext*/,
    -
    9177  1 /*numEras*/,
    -
    9178  kZoneEraEtc_GMT /*eras*/,
    -
    9179  &kZoneEtc_GMT /*targetInfo*/,
    -
    9180 };
    -
    9181 
    -
    9182 //---------------------------------------------------------------------------
    -
    9183 // Link name: Etc/GMT-0 -> Etc/GMT
    -
    9184 //---------------------------------------------------------------------------
    -
    9185 
    -
    9186 static const char kZoneNameEtc_GMT_0[] ACE_TIME_PROGMEM = "\x08" "GMT-0";
    -
    9187 
    -
    9188 const basic::Info::ZoneInfo kZoneEtc_GMT_0 ACE_TIME_PROGMEM = {
    -
    9189  kZoneNameEtc_GMT_0 /*name*/,
    -
    9190  0x9d13da55 /*zoneId*/,
    -
    9191  &kZoneContext /*zoneContext*/,
    -
    9192  1 /*numEras*/,
    -
    9193  kZoneEraEtc_GMT /*eras*/,
    -
    9194  &kZoneEtc_GMT /*targetInfo*/,
    -
    9195 };
    -
    9196 
    -
    9197 //---------------------------------------------------------------------------
    -
    9198 // Link name: Etc/GMT0 -> Etc/GMT
    -
    9199 //---------------------------------------------------------------------------
    -
    9200 
    -
    9201 static const char kZoneNameEtc_GMT0[] ACE_TIME_PROGMEM = "\x08" "GMT0";
    -
    9202 
    -
    9203 const basic::Info::ZoneInfo kZoneEtc_GMT0 ACE_TIME_PROGMEM = {
    -
    9204  kZoneNameEtc_GMT0 /*name*/,
    -
    9205  0xf53ea988 /*zoneId*/,
    -
    9206  &kZoneContext /*zoneContext*/,
    -
    9207  1 /*numEras*/,
    -
    9208  kZoneEraEtc_GMT /*eras*/,
    -
    9209  &kZoneEtc_GMT /*targetInfo*/,
    -
    9210 };
    -
    9211 
    -
    9212 //---------------------------------------------------------------------------
    -
    9213 // Link name: Etc/Greenwich -> Etc/GMT
    -
    9214 //---------------------------------------------------------------------------
    -
    9215 
    -
    9216 static const char kZoneNameEtc_Greenwich[] ACE_TIME_PROGMEM = "\x08" "Greenwich";
    -
    9217 
    -
    9218 const basic::Info::ZoneInfo kZoneEtc_Greenwich ACE_TIME_PROGMEM = {
    -
    9219  kZoneNameEtc_Greenwich /*name*/,
    -
    9220  0x26daa98c /*zoneId*/,
    -
    9221  &kZoneContext /*zoneContext*/,
    -
    9222  1 /*numEras*/,
    -
    9223  kZoneEraEtc_GMT /*eras*/,
    -
    9224  &kZoneEtc_GMT /*targetInfo*/,
    -
    9225 };
    -
    9226 
    -
    9227 //---------------------------------------------------------------------------
    -
    9228 // Link name: Etc/UCT -> Etc/UTC
    -
    9229 //---------------------------------------------------------------------------
    -
    9230 
    -
    9231 static const char kZoneNameEtc_UCT[] ACE_TIME_PROGMEM = "\x08" "UCT";
    -
    9232 
    -
    9233 const basic::Info::ZoneInfo kZoneEtc_UCT ACE_TIME_PROGMEM = {
    -
    9234  kZoneNameEtc_UCT /*name*/,
    -
    9235  0xd8e3189c /*zoneId*/,
    -
    9236  &kZoneContext /*zoneContext*/,
    -
    9237  1 /*numEras*/,
    -
    9238  kZoneEraEtc_UTC /*eras*/,
    -
    9239  &kZoneEtc_UTC /*targetInfo*/,
    -
    9240 };
    -
    9241 
    -
    9242 //---------------------------------------------------------------------------
    -
    9243 // Link name: Etc/Universal -> Etc/UTC
    -
    9244 //---------------------------------------------------------------------------
    -
    9245 
    -
    9246 static const char kZoneNameEtc_Universal[] ACE_TIME_PROGMEM = "\x08" "Universal";
    -
    9247 
    -
    9248 const basic::Info::ZoneInfo kZoneEtc_Universal ACE_TIME_PROGMEM = {
    -
    9249  kZoneNameEtc_Universal /*name*/,
    -
    9250  0x2f8cb9a9 /*zoneId*/,
    -
    9251  &kZoneContext /*zoneContext*/,
    -
    9252  1 /*numEras*/,
    -
    9253  kZoneEraEtc_UTC /*eras*/,
    -
    9254  &kZoneEtc_UTC /*targetInfo*/,
    -
    9255 };
    -
    9256 
    -
    9257 //---------------------------------------------------------------------------
    -
    9258 // Link name: Etc/Zulu -> Etc/UTC
    -
    9259 //---------------------------------------------------------------------------
    -
    9260 
    -
    9261 static const char kZoneNameEtc_Zulu[] ACE_TIME_PROGMEM = "\x08" "Zulu";
    -
    9262 
    -
    9263 const basic::Info::ZoneInfo kZoneEtc_Zulu ACE_TIME_PROGMEM = {
    -
    9264  kZoneNameEtc_Zulu /*name*/,
    -
    9265  0xf549c240 /*zoneId*/,
    -
    9266  &kZoneContext /*zoneContext*/,
    -
    9267  1 /*numEras*/,
    -
    9268  kZoneEraEtc_UTC /*eras*/,
    -
    9269  &kZoneEtc_UTC /*targetInfo*/,
    -
    9270 };
    -
    9271 
    -
    9272 //---------------------------------------------------------------------------
    -
    9273 // Link name: Europe/Amsterdam -> Europe/Brussels
    -
    9274 //---------------------------------------------------------------------------
    -
    9275 
    -
    9276 static const char kZoneNameEurope_Amsterdam[] ACE_TIME_PROGMEM = "\x09" "Amsterdam";
    -
    9277 
    -
    9278 const basic::Info::ZoneInfo kZoneEurope_Amsterdam ACE_TIME_PROGMEM = {
    -
    9279  kZoneNameEurope_Amsterdam /*name*/,
    -
    9280  0x109395c2 /*zoneId*/,
    -
    9281  &kZoneContext /*zoneContext*/,
    -
    9282  1 /*numEras*/,
    -
    9283  kZoneEraEurope_Brussels /*eras*/,
    -
    9284  &kZoneEurope_Brussels /*targetInfo*/,
    -
    9285 };
    -
    9286 
    -
    9287 //---------------------------------------------------------------------------
    -
    9288 // Link name: Europe/Belfast -> Europe/London
    -
    9289 //---------------------------------------------------------------------------
    -
    9290 
    -
    9291 static const char kZoneNameEurope_Belfast[] ACE_TIME_PROGMEM = "\x09" "Belfast";
    -
    9292 
    -
    9293 const basic::Info::ZoneInfo kZoneEurope_Belfast ACE_TIME_PROGMEM = {
    -
    9294  kZoneNameEurope_Belfast /*name*/,
    -
    9295  0xd07dd1e5 /*zoneId*/,
    -
    9296  &kZoneContext /*zoneContext*/,
    -
    9297  1 /*numEras*/,
    -
    9298  kZoneEraEurope_London /*eras*/,
    -
    9299  &kZoneEurope_London /*targetInfo*/,
    -
    9300 };
    -
    9301 
    -
    9302 //---------------------------------------------------------------------------
    -
    9303 // Link name: Europe/Bratislava -> Europe/Prague
    -
    9304 //---------------------------------------------------------------------------
    -
    9305 
    -
    9306 static const char kZoneNameEurope_Bratislava[] ACE_TIME_PROGMEM = "\x09" "Bratislava";
    -
    9307 
    -
    9308 const basic::Info::ZoneInfo kZoneEurope_Bratislava ACE_TIME_PROGMEM = {
    -
    9309  kZoneNameEurope_Bratislava /*name*/,
    -
    9310  0xda493bed /*zoneId*/,
    -
    9311  &kZoneContext /*zoneContext*/,
    -
    9312  1 /*numEras*/,
    -
    9313  kZoneEraEurope_Prague /*eras*/,
    -
    9314  &kZoneEurope_Prague /*targetInfo*/,
    -
    9315 };
    -
    9316 
    -
    9317 //---------------------------------------------------------------------------
    -
    9318 // Link name: Europe/Busingen -> Europe/Zurich
    -
    9319 //---------------------------------------------------------------------------
    -
    9320 
    -
    9321 static const char kZoneNameEurope_Busingen[] ACE_TIME_PROGMEM = "\x09" "Busingen";
    -
    9322 
    -
    9323 const basic::Info::ZoneInfo kZoneEurope_Busingen ACE_TIME_PROGMEM = {
    -
    9324  kZoneNameEurope_Busingen /*name*/,
    -
    9325  0xc06d2cdf /*zoneId*/,
    -
    9326  &kZoneContext /*zoneContext*/,
    -
    9327  1 /*numEras*/,
    -
    9328  kZoneEraEurope_Zurich /*eras*/,
    -
    9329  &kZoneEurope_Zurich /*targetInfo*/,
    -
    9330 };
    -
    9331 
    -
    9332 //---------------------------------------------------------------------------
    -
    9333 // Link name: Europe/Copenhagen -> Europe/Berlin
    -
    9334 //---------------------------------------------------------------------------
    -
    9335 
    -
    9336 static const char kZoneNameEurope_Copenhagen[] ACE_TIME_PROGMEM = "\x09" "Copenhagen";
    -
    9337 
    -
    9338 const basic::Info::ZoneInfo kZoneEurope_Copenhagen ACE_TIME_PROGMEM = {
    -
    9339  kZoneNameEurope_Copenhagen /*name*/,
    -
    9340  0xe0ed30bc /*zoneId*/,
    -
    9341  &kZoneContext /*zoneContext*/,
    -
    9342  1 /*numEras*/,
    -
    9343  kZoneEraEurope_Berlin /*eras*/,
    -
    9344  &kZoneEurope_Berlin /*targetInfo*/,
    -
    9345 };
    -
    9346 
    -
    9347 //---------------------------------------------------------------------------
    -
    9348 // Link name: Europe/Guernsey -> Europe/London
    -
    9349 //---------------------------------------------------------------------------
    -
    9350 
    -
    9351 static const char kZoneNameEurope_Guernsey[] ACE_TIME_PROGMEM = "\x09" "Guernsey";
    -
    9352 
    -
    9353 const basic::Info::ZoneInfo kZoneEurope_Guernsey ACE_TIME_PROGMEM = {
    -
    9354  kZoneNameEurope_Guernsey /*name*/,
    -
    9355  0x3db12c16 /*zoneId*/,
    -
    9356  &kZoneContext /*zoneContext*/,
    -
    9357  1 /*numEras*/,
    -
    9358  kZoneEraEurope_London /*eras*/,
    -
    9359  &kZoneEurope_London /*targetInfo*/,
    -
    9360 };
    -
    9361 
    -
    9362 //---------------------------------------------------------------------------
    -
    9363 // Link name: Europe/Isle_of_Man -> Europe/London
    -
    9364 //---------------------------------------------------------------------------
    -
    9365 
    -
    9366 static const char kZoneNameEurope_Isle_of_Man[] ACE_TIME_PROGMEM = "\x09" "Isle_of_Man";
    -
    9367 
    -
    9368 const basic::Info::ZoneInfo kZoneEurope_Isle_of_Man ACE_TIME_PROGMEM = {
    -
    9369  kZoneNameEurope_Isle_of_Man /*name*/,
    -
    9370  0xeaf84580 /*zoneId*/,
    -
    9371  &kZoneContext /*zoneContext*/,
    -
    9372  1 /*numEras*/,
    -
    9373  kZoneEraEurope_London /*eras*/,
    -
    9374  &kZoneEurope_London /*targetInfo*/,
    -
    9375 };
    -
    9376 
    -
    9377 //---------------------------------------------------------------------------
    -
    9378 // Link name: Europe/Jersey -> Europe/London
    -
    9379 //---------------------------------------------------------------------------
    -
    9380 
    -
    9381 static const char kZoneNameEurope_Jersey[] ACE_TIME_PROGMEM = "\x09" "Jersey";
    -
    9382 
    -
    9383 const basic::Info::ZoneInfo kZoneEurope_Jersey ACE_TIME_PROGMEM = {
    -
    9384  kZoneNameEurope_Jersey /*name*/,
    -
    9385  0x570dae76 /*zoneId*/,
    -
    9386  &kZoneContext /*zoneContext*/,
    -
    9387  1 /*numEras*/,
    -
    9388  kZoneEraEurope_London /*eras*/,
    -
    9389  &kZoneEurope_London /*targetInfo*/,
    -
    9390 };
    -
    9391 
    -
    9392 //---------------------------------------------------------------------------
    -
    9393 // Link name: Europe/Kiev -> Europe/Kyiv
    -
    9394 //---------------------------------------------------------------------------
    -
    9395 
    -
    9396 static const char kZoneNameEurope_Kiev[] ACE_TIME_PROGMEM = "\x09" "Kiev";
    -
    9397 
    -
    9398 const basic::Info::ZoneInfo kZoneEurope_Kiev ACE_TIME_PROGMEM = {
    -
    9399  kZoneNameEurope_Kiev /*name*/,
    -
    9400  0xa2c19eb3 /*zoneId*/,
    -
    9401  &kZoneContext /*zoneContext*/,
    -
    9402  1 /*numEras*/,
    -
    9403  kZoneEraEurope_Kyiv /*eras*/,
    -
    9404  &kZoneEurope_Kyiv /*targetInfo*/,
    -
    9405 };
    -
    9406 
    -
    9407 //---------------------------------------------------------------------------
    -
    9408 // Link name: Europe/Ljubljana -> Europe/Belgrade
    -
    9409 //---------------------------------------------------------------------------
    -
    9410 
    -
    9411 static const char kZoneNameEurope_Ljubljana[] ACE_TIME_PROGMEM = "\x09" "Ljubljana";
    -
    9412 
    -
    9413 const basic::Info::ZoneInfo kZoneEurope_Ljubljana ACE_TIME_PROGMEM = {
    -
    9414  kZoneNameEurope_Ljubljana /*name*/,
    -
    9415  0xbd98cdb7 /*zoneId*/,
    -
    9416  &kZoneContext /*zoneContext*/,
    -
    9417  1 /*numEras*/,
    -
    9418  kZoneEraEurope_Belgrade /*eras*/,
    -
    9419  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    9420 };
    -
    9421 
    -
    9422 //---------------------------------------------------------------------------
    -
    9423 // Link name: Europe/Luxembourg -> Europe/Brussels
    -
    9424 //---------------------------------------------------------------------------
    -
    9425 
    -
    9426 static const char kZoneNameEurope_Luxembourg[] ACE_TIME_PROGMEM = "\x09" "Luxembourg";
    -
    9427 
    -
    9428 const basic::Info::ZoneInfo kZoneEurope_Luxembourg ACE_TIME_PROGMEM = {
    -
    9429  kZoneNameEurope_Luxembourg /*name*/,
    -
    9430  0x1f8bc6ce /*zoneId*/,
    -
    9431  &kZoneContext /*zoneContext*/,
    -
    9432  1 /*numEras*/,
    -
    9433  kZoneEraEurope_Brussels /*eras*/,
    -
    9434  &kZoneEurope_Brussels /*targetInfo*/,
    -
    9435 };
    -
    9436 
    -
    9437 //---------------------------------------------------------------------------
    -
    9438 // Link name: Europe/Mariehamn -> Europe/Helsinki
    -
    9439 //---------------------------------------------------------------------------
    -
    9440 
    -
    9441 static const char kZoneNameEurope_Mariehamn[] ACE_TIME_PROGMEM = "\x09" "Mariehamn";
    -
    9442 
    -
    9443 const basic::Info::ZoneInfo kZoneEurope_Mariehamn ACE_TIME_PROGMEM = {
    -
    9444  kZoneNameEurope_Mariehamn /*name*/,
    -
    9445  0x0caa6496 /*zoneId*/,
    -
    9446  &kZoneContext /*zoneContext*/,
    -
    9447  1 /*numEras*/,
    -
    9448  kZoneEraEurope_Helsinki /*eras*/,
    -
    9449  &kZoneEurope_Helsinki /*targetInfo*/,
    -
    9450 };
    -
    9451 
    -
    9452 //---------------------------------------------------------------------------
    -
    9453 // Link name: Europe/Monaco -> Europe/Paris
    -
    9454 //---------------------------------------------------------------------------
    -
    9455 
    -
    9456 static const char kZoneNameEurope_Monaco[] ACE_TIME_PROGMEM = "\x09" "Monaco";
    -
    9457 
    -
    9458 const basic::Info::ZoneInfo kZoneEurope_Monaco ACE_TIME_PROGMEM = {
    -
    9459  kZoneNameEurope_Monaco /*name*/,
    -
    9460  0x5ebf9f01 /*zoneId*/,
    -
    9461  &kZoneContext /*zoneContext*/,
    -
    9462  1 /*numEras*/,
    -
    9463  kZoneEraEurope_Paris /*eras*/,
    -
    9464  &kZoneEurope_Paris /*targetInfo*/,
    -
    9465 };
    -
    9466 
    -
    9467 //---------------------------------------------------------------------------
    -
    9468 // Link name: Europe/Nicosia -> Asia/Nicosia
    -
    9469 //---------------------------------------------------------------------------
    -
    9470 
    -
    9471 static const char kZoneNameEurope_Nicosia[] ACE_TIME_PROGMEM = "\x09" "Nicosia";
    -
    9472 
    -
    9473 const basic::Info::ZoneInfo kZoneEurope_Nicosia ACE_TIME_PROGMEM = {
    -
    9474  kZoneNameEurope_Nicosia /*name*/,
    -
    9475  0x74efab8a /*zoneId*/,
    -
    9476  &kZoneContext /*zoneContext*/,
    -
    9477  1 /*numEras*/,
    -
    9478  kZoneEraAsia_Nicosia /*eras*/,
    -
    9479  &kZoneAsia_Nicosia /*targetInfo*/,
    -
    9480 };
    -
    9481 
    -
    9482 //---------------------------------------------------------------------------
    -
    9483 // Link name: Europe/Oslo -> Europe/Berlin
    -
    9484 //---------------------------------------------------------------------------
    -
    9485 
    -
    9486 static const char kZoneNameEurope_Oslo[] ACE_TIME_PROGMEM = "\x09" "Oslo";
    -
    9487 
    -
    9488 const basic::Info::ZoneInfo kZoneEurope_Oslo ACE_TIME_PROGMEM = {
    -
    9489  kZoneNameEurope_Oslo /*name*/,
    -
    9490  0xa2c3fba1 /*zoneId*/,
    -
    9491  &kZoneContext /*zoneContext*/,
    -
    9492  1 /*numEras*/,
    -
    9493  kZoneEraEurope_Berlin /*eras*/,
    -
    9494  &kZoneEurope_Berlin /*targetInfo*/,
    -
    9495 };
    -
    9496 
    -
    9497 //---------------------------------------------------------------------------
    -
    9498 // Link name: Europe/Podgorica -> Europe/Belgrade
    -
    9499 //---------------------------------------------------------------------------
    -
    9500 
    -
    9501 static const char kZoneNameEurope_Podgorica[] ACE_TIME_PROGMEM = "\x09" "Podgorica";
    -
    9502 
    -
    9503 const basic::Info::ZoneInfo kZoneEurope_Podgorica ACE_TIME_PROGMEM = {
    -
    9504  kZoneNameEurope_Podgorica /*name*/,
    -
    9505  0x1c1a499c /*zoneId*/,
    -
    9506  &kZoneContext /*zoneContext*/,
    -
    9507  1 /*numEras*/,
    -
    9508  kZoneEraEurope_Belgrade /*eras*/,
    -
    9509  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    9510 };
    -
    9511 
    -
    9512 //---------------------------------------------------------------------------
    -
    9513 // Link name: Europe/San_Marino -> Europe/Rome
    -
    9514 //---------------------------------------------------------------------------
    -
    9515 
    -
    9516 static const char kZoneNameEurope_San_Marino[] ACE_TIME_PROGMEM = "\x09" "San_Marino";
    -
    9517 
    -
    9518 const basic::Info::ZoneInfo kZoneEurope_San_Marino ACE_TIME_PROGMEM = {
    -
    9519  kZoneNameEurope_San_Marino /*name*/,
    -
    9520  0xcef7724b /*zoneId*/,
    -
    9521  &kZoneContext /*zoneContext*/,
    -
    9522  1 /*numEras*/,
    -
    9523  kZoneEraEurope_Rome /*eras*/,
    -
    9524  &kZoneEurope_Rome /*targetInfo*/,
    -
    9525 };
    -
    9526 
    -
    9527 //---------------------------------------------------------------------------
    -
    9528 // Link name: Europe/Sarajevo -> Europe/Belgrade
    -
    9529 //---------------------------------------------------------------------------
    -
    9530 
    -
    9531 static const char kZoneNameEurope_Sarajevo[] ACE_TIME_PROGMEM = "\x09" "Sarajevo";
    -
    9532 
    -
    9533 const basic::Info::ZoneInfo kZoneEurope_Sarajevo ACE_TIME_PROGMEM = {
    -
    9534  kZoneNameEurope_Sarajevo /*name*/,
    -
    9535  0x6a576c3f /*zoneId*/,
    -
    9536  &kZoneContext /*zoneContext*/,
    -
    9537  1 /*numEras*/,
    -
    9538  kZoneEraEurope_Belgrade /*eras*/,
    -
    9539  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    9540 };
    -
    9541 
    -
    9542 //---------------------------------------------------------------------------
    -
    9543 // Link name: Europe/Skopje -> Europe/Belgrade
    -
    9544 //---------------------------------------------------------------------------
    -
    9545 
    -
    9546 static const char kZoneNameEurope_Skopje[] ACE_TIME_PROGMEM = "\x09" "Skopje";
    -
    9547 
    -
    9548 const basic::Info::ZoneInfo kZoneEurope_Skopje ACE_TIME_PROGMEM = {
    -
    9549  kZoneNameEurope_Skopje /*name*/,
    -
    9550  0x6c76fdd0 /*zoneId*/,
    -
    9551  &kZoneContext /*zoneContext*/,
    -
    9552  1 /*numEras*/,
    -
    9553  kZoneEraEurope_Belgrade /*eras*/,
    -
    9554  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    9555 };
    -
    9556 
    -
    9557 //---------------------------------------------------------------------------
    -
    9558 // Link name: Europe/Stockholm -> Europe/Berlin
    -
    9559 //---------------------------------------------------------------------------
    -
    9560 
    -
    9561 static const char kZoneNameEurope_Stockholm[] ACE_TIME_PROGMEM = "\x09" "Stockholm";
    -
    9562 
    -
    9563 const basic::Info::ZoneInfo kZoneEurope_Stockholm ACE_TIME_PROGMEM = {
    -
    9564  kZoneNameEurope_Stockholm /*name*/,
    -
    9565  0x5bf6fbb8 /*zoneId*/,
    -
    9566  &kZoneContext /*zoneContext*/,
    -
    9567  1 /*numEras*/,
    -
    9568  kZoneEraEurope_Berlin /*eras*/,
    -
    9569  &kZoneEurope_Berlin /*targetInfo*/,
    -
    9570 };
    -
    9571 
    -
    9572 //---------------------------------------------------------------------------
    -
    9573 // Link name: Europe/Tiraspol -> Europe/Chisinau
    -
    9574 //---------------------------------------------------------------------------
    -
    9575 
    -
    9576 static const char kZoneNameEurope_Tiraspol[] ACE_TIME_PROGMEM = "\x09" "Tiraspol";
    -
    9577 
    -
    9578 const basic::Info::ZoneInfo kZoneEurope_Tiraspol ACE_TIME_PROGMEM = {
    -
    9579  kZoneNameEurope_Tiraspol /*name*/,
    -
    9580  0xbe704472 /*zoneId*/,
    -
    9581  &kZoneContext /*zoneContext*/,
    -
    9582  1 /*numEras*/,
    -
    9583  kZoneEraEurope_Chisinau /*eras*/,
    -
    9584  &kZoneEurope_Chisinau /*targetInfo*/,
    -
    9585 };
    -
    9586 
    -
    9587 //---------------------------------------------------------------------------
    -
    9588 // Link name: Europe/Uzhgorod -> Europe/Kyiv
    -
    9589 //---------------------------------------------------------------------------
    -
    9590 
    -
    9591 static const char kZoneNameEurope_Uzhgorod[] ACE_TIME_PROGMEM = "\x09" "Uzhgorod";
    -
    9592 
    -
    9593 const basic::Info::ZoneInfo kZoneEurope_Uzhgorod ACE_TIME_PROGMEM = {
    -
    9594  kZoneNameEurope_Uzhgorod /*name*/,
    -
    9595  0xb066f5d6 /*zoneId*/,
    -
    9596  &kZoneContext /*zoneContext*/,
    -
    9597  1 /*numEras*/,
    -
    9598  kZoneEraEurope_Kyiv /*eras*/,
    -
    9599  &kZoneEurope_Kyiv /*targetInfo*/,
    -
    9600 };
    -
    9601 
    -
    9602 //---------------------------------------------------------------------------
    -
    9603 // Link name: Europe/Vaduz -> Europe/Zurich
    -
    9604 //---------------------------------------------------------------------------
    -
    9605 
    -
    9606 static const char kZoneNameEurope_Vaduz[] ACE_TIME_PROGMEM = "\x09" "Vaduz";
    -
    9607 
    -
    9608 const basic::Info::ZoneInfo kZoneEurope_Vaduz ACE_TIME_PROGMEM = {
    -
    9609  kZoneNameEurope_Vaduz /*name*/,
    -
    9610  0xfbb81bae /*zoneId*/,
    -
    9611  &kZoneContext /*zoneContext*/,
    -
    9612  1 /*numEras*/,
    -
    9613  kZoneEraEurope_Zurich /*eras*/,
    -
    9614  &kZoneEurope_Zurich /*targetInfo*/,
    -
    9615 };
    -
    9616 
    -
    9617 //---------------------------------------------------------------------------
    -
    9618 // Link name: Europe/Vatican -> Europe/Rome
    -
    9619 //---------------------------------------------------------------------------
    -
    9620 
    -
    9621 static const char kZoneNameEurope_Vatican[] ACE_TIME_PROGMEM = "\x09" "Vatican";
    -
    9622 
    -
    9623 const basic::Info::ZoneInfo kZoneEurope_Vatican ACE_TIME_PROGMEM = {
    -
    9624  kZoneNameEurope_Vatican /*name*/,
    -
    9625  0xcb485dca /*zoneId*/,
    -
    9626  &kZoneContext /*zoneContext*/,
    -
    9627  1 /*numEras*/,
    -
    9628  kZoneEraEurope_Rome /*eras*/,
    -
    9629  &kZoneEurope_Rome /*targetInfo*/,
    -
    9630 };
    -
    9631 
    -
    9632 //---------------------------------------------------------------------------
    -
    9633 // Link name: Europe/Zagreb -> Europe/Belgrade
    -
    9634 //---------------------------------------------------------------------------
    -
    9635 
    -
    9636 static const char kZoneNameEurope_Zagreb[] ACE_TIME_PROGMEM = "\x09" "Zagreb";
    -
    9637 
    -
    9638 const basic::Info::ZoneInfo kZoneEurope_Zagreb ACE_TIME_PROGMEM = {
    -
    9639  kZoneNameEurope_Zagreb /*name*/,
    -
    9640  0x7c11c9ff /*zoneId*/,
    -
    9641  &kZoneContext /*zoneContext*/,
    -
    9642  1 /*numEras*/,
    -
    9643  kZoneEraEurope_Belgrade /*eras*/,
    -
    9644  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    9645 };
    -
    9646 
    -
    9647 //---------------------------------------------------------------------------
    -
    9648 // Link name: Europe/Zaporozhye -> Europe/Kyiv
    -
    9649 //---------------------------------------------------------------------------
    -
    9650 
    -
    9651 static const char kZoneNameEurope_Zaporozhye[] ACE_TIME_PROGMEM = "\x09" "Zaporozhye";
    -
    9652 
    -
    9653 const basic::Info::ZoneInfo kZoneEurope_Zaporozhye ACE_TIME_PROGMEM = {
    -
    9654  kZoneNameEurope_Zaporozhye /*name*/,
    -
    9655  0xeab9767f /*zoneId*/,
    -
    9656  &kZoneContext /*zoneContext*/,
    -
    9657  1 /*numEras*/,
    -
    9658  kZoneEraEurope_Kyiv /*eras*/,
    -
    9659  &kZoneEurope_Kyiv /*targetInfo*/,
    -
    9660 };
    -
    9661 
    -
    9662 //---------------------------------------------------------------------------
    -
    9663 // Link name: GB -> Europe/London
    -
    9664 //---------------------------------------------------------------------------
    -
    9665 
    -
    9666 static const char kZoneNameGB[] ACE_TIME_PROGMEM = "GB";
    -
    9667 
    -
    9668 const basic::Info::ZoneInfo kZoneGB ACE_TIME_PROGMEM = {
    -
    9669  kZoneNameGB /*name*/,
    -
    9670  0x005973ae /*zoneId*/,
    -
    9671  &kZoneContext /*zoneContext*/,
    -
    9672  1 /*numEras*/,
    -
    9673  kZoneEraEurope_London /*eras*/,
    -
    9674  &kZoneEurope_London /*targetInfo*/,
    -
    9675 };
    -
    9676 
    -
    9677 //---------------------------------------------------------------------------
    -
    9678 // Link name: GB-Eire -> Europe/London
    -
    9679 //---------------------------------------------------------------------------
    -
    9680 
    -
    9681 static const char kZoneNameGB_Eire[] ACE_TIME_PROGMEM = "GB-Eire";
    -
    9682 
    -
    9683 const basic::Info::ZoneInfo kZoneGB_Eire ACE_TIME_PROGMEM = {
    -
    9684  kZoneNameGB_Eire /*name*/,
    -
    9685  0xfa70e300 /*zoneId*/,
    -
    9686  &kZoneContext /*zoneContext*/,
    -
    9687  1 /*numEras*/,
    -
    9688  kZoneEraEurope_London /*eras*/,
    -
    9689  &kZoneEurope_London /*targetInfo*/,
    -
    9690 };
    -
    9691 
    -
    9692 //---------------------------------------------------------------------------
    -
    9693 // Link name: GMT -> Etc/GMT
    -
    9694 //---------------------------------------------------------------------------
    -
    9695 
    -
    9696 static const char kZoneNameGMT[] ACE_TIME_PROGMEM = "GMT";
    -
    9697 
    -
    9698 const basic::Info::ZoneInfo kZoneGMT ACE_TIME_PROGMEM = {
    -
    9699  kZoneNameGMT /*name*/,
    -
    9700  0x0b87eb2d /*zoneId*/,
    -
    9701  &kZoneContext /*zoneContext*/,
    -
    9702  1 /*numEras*/,
    -
    9703  kZoneEraEtc_GMT /*eras*/,
    -
    9704  &kZoneEtc_GMT /*targetInfo*/,
    -
    9705 };
    -
    9706 
    -
    9707 //---------------------------------------------------------------------------
    -
    9708 // Link name: GMT+0 -> Etc/GMT
    -
    9709 //---------------------------------------------------------------------------
    -
    9710 
    -
    9711 static const char kZoneNameGMT_PLUS_0[] ACE_TIME_PROGMEM = "GMT+0";
    -
    9712 
    -
    9713 const basic::Info::ZoneInfo kZoneGMT_PLUS_0 ACE_TIME_PROGMEM = {
    -
    9714  kZoneNameGMT_PLUS_0 /*name*/,
    -
    9715  0x0d2f7028 /*zoneId*/,
    -
    9716  &kZoneContext /*zoneContext*/,
    -
    9717  1 /*numEras*/,
    -
    9718  kZoneEraEtc_GMT /*eras*/,
    -
    9719  &kZoneEtc_GMT /*targetInfo*/,
    -
    9720 };
    -
    9721 
    -
    9722 //---------------------------------------------------------------------------
    -
    9723 // Link name: GMT-0 -> Etc/GMT
    -
    9724 //---------------------------------------------------------------------------
    -
    9725 
    -
    9726 static const char kZoneNameGMT_0[] ACE_TIME_PROGMEM = "GMT-0";
    -
    9727 
    -
    9728 const basic::Info::ZoneInfo kZoneGMT_0 ACE_TIME_PROGMEM = {
    -
    9729  kZoneNameGMT_0 /*name*/,
    -
    9730  0x0d2f706a /*zoneId*/,
    -
    9731  &kZoneContext /*zoneContext*/,
    -
    9732  1 /*numEras*/,
    -
    9733  kZoneEraEtc_GMT /*eras*/,
    -
    9734  &kZoneEtc_GMT /*targetInfo*/,
    -
    9735 };
    -
    9736 
    -
    9737 //---------------------------------------------------------------------------
    -
    9738 // Link name: GMT0 -> Etc/GMT
    -
    9739 //---------------------------------------------------------------------------
    -
    9740 
    -
    9741 static const char kZoneNameGMT0[] ACE_TIME_PROGMEM = "GMT0";
    -
    9742 
    -
    9743 const basic::Info::ZoneInfo kZoneGMT0 ACE_TIME_PROGMEM = {
    -
    9744  kZoneNameGMT0 /*name*/,
    -
    9745  0x7c8550fd /*zoneId*/,
    -
    9746  &kZoneContext /*zoneContext*/,
    -
    9747  1 /*numEras*/,
    -
    9748  kZoneEraEtc_GMT /*eras*/,
    -
    9749  &kZoneEtc_GMT /*targetInfo*/,
    -
    9750 };
    -
    9751 
    -
    9752 //---------------------------------------------------------------------------
    -
    9753 // Link name: Greenwich -> Etc/GMT
    -
    9754 //---------------------------------------------------------------------------
    -
    9755 
    -
    9756 static const char kZoneNameGreenwich[] ACE_TIME_PROGMEM = "Greenwich";
    -
    9757 
    -
    9758 const basic::Info::ZoneInfo kZoneGreenwich ACE_TIME_PROGMEM = {
    -
    9759  kZoneNameGreenwich /*name*/,
    -
    9760  0xc84d4221 /*zoneId*/,
    -
    9761  &kZoneContext /*zoneContext*/,
    -
    9762  1 /*numEras*/,
    -
    9763  kZoneEraEtc_GMT /*eras*/,
    -
    9764  &kZoneEtc_GMT /*targetInfo*/,
    -
    9765 };
    -
    9766 
    -
    9767 //---------------------------------------------------------------------------
    -
    9768 // Link name: HST -> Pacific/Honolulu
    -
    9769 //---------------------------------------------------------------------------
    -
    9770 
    -
    9771 static const char kZoneNameHST[] ACE_TIME_PROGMEM = "HST";
    -
    9772 
    -
    9773 const basic::Info::ZoneInfo kZoneHST ACE_TIME_PROGMEM = {
    -
    9774  kZoneNameHST /*name*/,
    -
    9775  0x0b87f034 /*zoneId*/,
    -
    9776  &kZoneContext /*zoneContext*/,
    -
    9777  1 /*numEras*/,
    -
    9778  kZoneEraPacific_Honolulu /*eras*/,
    -
    9779  &kZonePacific_Honolulu /*targetInfo*/,
    -
    9780 };
    -
    9781 
    -
    9782 //---------------------------------------------------------------------------
    -
    9783 // Link name: Hongkong -> Asia/Hong_Kong
    -
    9784 //---------------------------------------------------------------------------
    -
    9785 
    -
    9786 static const char kZoneNameHongkong[] ACE_TIME_PROGMEM = "Hongkong";
    -
    9787 
    -
    9788 const basic::Info::ZoneInfo kZoneHongkong ACE_TIME_PROGMEM = {
    -
    9789  kZoneNameHongkong /*name*/,
    -
    9790  0x56d36560 /*zoneId*/,
    -
    9791  &kZoneContext /*zoneContext*/,
    -
    9792  1 /*numEras*/,
    -
    9793  kZoneEraAsia_Hong_Kong /*eras*/,
    -
    9794  &kZoneAsia_Hong_Kong /*targetInfo*/,
    -
    9795 };
    -
    9796 
    -
    9797 //---------------------------------------------------------------------------
    -
    9798 // Link name: Iceland -> Africa/Abidjan
    -
    9799 //---------------------------------------------------------------------------
    -
    9800 
    -
    9801 static const char kZoneNameIceland[] ACE_TIME_PROGMEM = "Iceland";
    -
    9802 
    -
    9803 const basic::Info::ZoneInfo kZoneIceland ACE_TIME_PROGMEM = {
    -
    9804  kZoneNameIceland /*name*/,
    -
    9805  0xe56a35b5 /*zoneId*/,
    -
    9806  &kZoneContext /*zoneContext*/,
    -
    9807  1 /*numEras*/,
    -
    9808  kZoneEraAfrica_Abidjan /*eras*/,
    -
    9809  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    9810 };
    -
    9811 
    -
    9812 //---------------------------------------------------------------------------
    -
    9813 // Link name: Indian/Antananarivo -> Africa/Nairobi
    -
    9814 //---------------------------------------------------------------------------
    -
    9815 
    -
    9816 static const char kZoneNameIndian_Antananarivo[] ACE_TIME_PROGMEM = "\x0a" "Antananarivo";
    -
    9817 
    -
    9818 const basic::Info::ZoneInfo kZoneIndian_Antananarivo ACE_TIME_PROGMEM = {
    -
    9819  kZoneNameIndian_Antananarivo /*name*/,
    -
    9820  0x9ebf5289 /*zoneId*/,
    -
    9821  &kZoneContext /*zoneContext*/,
    -
    9822  1 /*numEras*/,
    -
    9823  kZoneEraAfrica_Nairobi /*eras*/,
    -
    9824  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    9825 };
    -
    9826 
    -
    9827 //---------------------------------------------------------------------------
    -
    9828 // Link name: Indian/Christmas -> Asia/Bangkok
    -
    9829 //---------------------------------------------------------------------------
    -
    9830 
    -
    9831 static const char kZoneNameIndian_Christmas[] ACE_TIME_PROGMEM = "\x0a" "Christmas";
    -
    9832 
    -
    9833 const basic::Info::ZoneInfo kZoneIndian_Christmas ACE_TIME_PROGMEM = {
    -
    9834  kZoneNameIndian_Christmas /*name*/,
    -
    9835  0x68c207d5 /*zoneId*/,
    -
    9836  &kZoneContext /*zoneContext*/,
    -
    9837  1 /*numEras*/,
    -
    9838  kZoneEraAsia_Bangkok /*eras*/,
    -
    9839  &kZoneAsia_Bangkok /*targetInfo*/,
    -
    9840 };
    -
    9841 
    -
    9842 //---------------------------------------------------------------------------
    -
    9843 // Link name: Indian/Cocos -> Asia/Yangon
    -
    9844 //---------------------------------------------------------------------------
    -
    9845 
    -
    9846 static const char kZoneNameIndian_Cocos[] ACE_TIME_PROGMEM = "\x0a" "Cocos";
    -
    9847 
    -
    9848 const basic::Info::ZoneInfo kZoneIndian_Cocos ACE_TIME_PROGMEM = {
    -
    9849  kZoneNameIndian_Cocos /*name*/,
    -
    9850  0x021e86de /*zoneId*/,
    -
    9851  &kZoneContext /*zoneContext*/,
    -
    9852  1 /*numEras*/,
    -
    9853  kZoneEraAsia_Yangon /*eras*/,
    -
    9854  &kZoneAsia_Yangon /*targetInfo*/,
    -
    9855 };
    -
    9856 
    -
    9857 //---------------------------------------------------------------------------
    -
    9858 // Link name: Indian/Comoro -> Africa/Nairobi
    -
    9859 //---------------------------------------------------------------------------
    -
    9860 
    -
    9861 static const char kZoneNameIndian_Comoro[] ACE_TIME_PROGMEM = "\x0a" "Comoro";
    -
    9862 
    -
    9863 const basic::Info::ZoneInfo kZoneIndian_Comoro ACE_TIME_PROGMEM = {
    -
    9864  kZoneNameIndian_Comoro /*name*/,
    -
    9865  0x45f4deb6 /*zoneId*/,
    -
    9866  &kZoneContext /*zoneContext*/,
    -
    9867  1 /*numEras*/,
    -
    9868  kZoneEraAfrica_Nairobi /*eras*/,
    -
    9869  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    9870 };
    -
    9871 
    -
    9872 //---------------------------------------------------------------------------
    -
    9873 // Link name: Indian/Kerguelen -> Indian/Maldives
    -
    9874 //---------------------------------------------------------------------------
    -
    9875 
    -
    9876 static const char kZoneNameIndian_Kerguelen[] ACE_TIME_PROGMEM = "\x0a" "Kerguelen";
    -
    9877 
    -
    9878 const basic::Info::ZoneInfo kZoneIndian_Kerguelen ACE_TIME_PROGMEM = {
    -
    9879  kZoneNameIndian_Kerguelen /*name*/,
    -
    9880  0x4351b389 /*zoneId*/,
    -
    9881  &kZoneContext /*zoneContext*/,
    -
    9882  1 /*numEras*/,
    -
    9883  kZoneEraIndian_Maldives /*eras*/,
    -
    9884  &kZoneIndian_Maldives /*targetInfo*/,
    -
    9885 };
    -
    9886 
    -
    9887 //---------------------------------------------------------------------------
    -
    9888 // Link name: Indian/Mahe -> Asia/Dubai
    -
    9889 //---------------------------------------------------------------------------
    -
    9890 
    -
    9891 static const char kZoneNameIndian_Mahe[] ACE_TIME_PROGMEM = "\x0a" "Mahe";
    -
    9892 
    -
    9893 const basic::Info::ZoneInfo kZoneIndian_Mahe ACE_TIME_PROGMEM = {
    -
    9894  kZoneNameIndian_Mahe /*name*/,
    -
    9895  0x45e725e2 /*zoneId*/,
    -
    9896  &kZoneContext /*zoneContext*/,
    -
    9897  1 /*numEras*/,
    -
    9898  kZoneEraAsia_Dubai /*eras*/,
    -
    9899  &kZoneAsia_Dubai /*targetInfo*/,
    -
    9900 };
    -
    9901 
    -
    9902 //---------------------------------------------------------------------------
    -
    9903 // Link name: Indian/Mayotte -> Africa/Nairobi
    -
    9904 //---------------------------------------------------------------------------
    -
    9905 
    -
    9906 static const char kZoneNameIndian_Mayotte[] ACE_TIME_PROGMEM = "\x0a" "Mayotte";
    -
    9907 
    -
    9908 const basic::Info::ZoneInfo kZoneIndian_Mayotte ACE_TIME_PROGMEM = {
    -
    9909  kZoneNameIndian_Mayotte /*name*/,
    -
    9910  0xe6880bca /*zoneId*/,
    -
    9911  &kZoneContext /*zoneContext*/,
    -
    9912  1 /*numEras*/,
    -
    9913  kZoneEraAfrica_Nairobi /*eras*/,
    -
    9914  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    9915 };
    -
    9916 
    -
    9917 //---------------------------------------------------------------------------
    -
    9918 // Link name: Indian/Reunion -> Asia/Dubai
    -
    9919 //---------------------------------------------------------------------------
    -
    9920 
    -
    9921 static const char kZoneNameIndian_Reunion[] ACE_TIME_PROGMEM = "\x0a" "Reunion";
    -
    9922 
    -
    9923 const basic::Info::ZoneInfo kZoneIndian_Reunion ACE_TIME_PROGMEM = {
    -
    9924  kZoneNameIndian_Reunion /*name*/,
    -
    9925  0x7076c047 /*zoneId*/,
    -
    9926  &kZoneContext /*zoneContext*/,
    -
    9927  1 /*numEras*/,
    -
    9928  kZoneEraAsia_Dubai /*eras*/,
    -
    9929  &kZoneAsia_Dubai /*targetInfo*/,
    -
    9930 };
    -
    9931 
    -
    9932 //---------------------------------------------------------------------------
    -
    9933 // Link name: Iran -> Asia/Tehran
    -
    9934 //---------------------------------------------------------------------------
    -
    9935 
    -
    9936 static const char kZoneNameIran[] ACE_TIME_PROGMEM = "Iran";
    -
    9937 
    -
    9938 const basic::Info::ZoneInfo kZoneIran ACE_TIME_PROGMEM = {
    -
    9939  kZoneNameIran /*name*/,
    -
    9940  0x7c87090f /*zoneId*/,
    -
    9941  &kZoneContext /*zoneContext*/,
    -
    9942  1 /*numEras*/,
    -
    9943  kZoneEraAsia_Tehran /*eras*/,
    -
    9944  &kZoneAsia_Tehran /*targetInfo*/,
    -
    9945 };
    -
    9946 
    -
    9947 //---------------------------------------------------------------------------
    -
    9948 // Link name: Israel -> Asia/Jerusalem
    -
    9949 //---------------------------------------------------------------------------
    -
    9950 
    -
    9951 static const char kZoneNameIsrael[] ACE_TIME_PROGMEM = "Israel";
    -
    9952 
    -
    9953 const basic::Info::ZoneInfo kZoneIsrael ACE_TIME_PROGMEM = {
    -
    9954  kZoneNameIsrael /*name*/,
    -
    9955  0xba88c9e5 /*zoneId*/,
    -
    9956  &kZoneContext /*zoneContext*/,
    -
    9957  1 /*numEras*/,
    -
    9958  kZoneEraAsia_Jerusalem /*eras*/,
    -
    9959  &kZoneAsia_Jerusalem /*targetInfo*/,
    -
    9960 };
    -
    9961 
    -
    9962 //---------------------------------------------------------------------------
    -
    9963 // Link name: Jamaica -> America/Jamaica
    -
    9964 //---------------------------------------------------------------------------
    -
    9965 
    -
    9966 static const char kZoneNameJamaica[] ACE_TIME_PROGMEM = "Jamaica";
    -
    9967 
    -
    9968 const basic::Info::ZoneInfo kZoneJamaica ACE_TIME_PROGMEM = {
    -
    9969  kZoneNameJamaica /*name*/,
    -
    9970  0x2e44fdab /*zoneId*/,
    -
    9971  &kZoneContext /*zoneContext*/,
    -
    9972  1 /*numEras*/,
    -
    9973  kZoneEraAmerica_Jamaica /*eras*/,
    -
    9974  &kZoneAmerica_Jamaica /*targetInfo*/,
    -
    9975 };
    -
    9976 
    -
    9977 //---------------------------------------------------------------------------
    -
    9978 // Link name: Japan -> Asia/Tokyo
    -
    9979 //---------------------------------------------------------------------------
    -
    9980 
    -
    9981 static const char kZoneNameJapan[] ACE_TIME_PROGMEM = "Japan";
    -
    9982 
    -
    9983 const basic::Info::ZoneInfo kZoneJapan ACE_TIME_PROGMEM = {
    -
    9984  kZoneNameJapan /*name*/,
    -
    9985  0x0d712f8f /*zoneId*/,
    -
    9986  &kZoneContext /*zoneContext*/,
    -
    9987  1 /*numEras*/,
    -
    9988  kZoneEraAsia_Tokyo /*eras*/,
    -
    9989  &kZoneAsia_Tokyo /*targetInfo*/,
    -
    9990 };
    -
    9991 
    -
    9992 //---------------------------------------------------------------------------
    -
    9993 // Link name: Kwajalein -> Pacific/Kwajalein
    -
    9994 //---------------------------------------------------------------------------
    -
    9995 
    -
    9996 static const char kZoneNameKwajalein[] ACE_TIME_PROGMEM = "Kwajalein";
    -
    9997 
    -
    9998 const basic::Info::ZoneInfo kZoneKwajalein ACE_TIME_PROGMEM = {
    -
    9999  kZoneNameKwajalein /*name*/,
    -
    10000  0x0e57afbb /*zoneId*/,
    -
    10001  &kZoneContext /*zoneContext*/,
    -
    10002  1 /*numEras*/,
    -
    10003  kZoneEraPacific_Kwajalein /*eras*/,
    -
    10004  &kZonePacific_Kwajalein /*targetInfo*/,
    -
    10005 };
    -
    10006 
    -
    10007 //---------------------------------------------------------------------------
    -
    10008 // Link name: MET -> Europe/Brussels
    -
    10009 //---------------------------------------------------------------------------
    -
    10010 
    -
    10011 static const char kZoneNameMET[] ACE_TIME_PROGMEM = "MET";
    -
    10012 
    -
    10013 const basic::Info::ZoneInfo kZoneMET ACE_TIME_PROGMEM = {
    -
    10014  kZoneNameMET /*name*/,
    -
    10015  0x0b8803ab /*zoneId*/,
    -
    10016  &kZoneContext /*zoneContext*/,
    -
    10017  1 /*numEras*/,
    -
    10018  kZoneEraEurope_Brussels /*eras*/,
    -
    10019  &kZoneEurope_Brussels /*targetInfo*/,
    -
    10020 };
    -
    10021 
    -
    10022 //---------------------------------------------------------------------------
    -
    10023 // Link name: MST -> America/Phoenix
    -
    10024 //---------------------------------------------------------------------------
    -
    10025 
    -
    10026 static const char kZoneNameMST[] ACE_TIME_PROGMEM = "MST";
    -
    10027 
    -
    10028 const basic::Info::ZoneInfo kZoneMST ACE_TIME_PROGMEM = {
    -
    10029  kZoneNameMST /*name*/,
    -
    10030  0x0b880579 /*zoneId*/,
    -
    10031  &kZoneContext /*zoneContext*/,
    -
    10032  1 /*numEras*/,
    -
    10033  kZoneEraAmerica_Phoenix /*eras*/,
    -
    10034  &kZoneAmerica_Phoenix /*targetInfo*/,
    -
    10035 };
    -
    10036 
    -
    10037 //---------------------------------------------------------------------------
    -
    10038 // Link name: MST7MDT -> America/Denver
    -
    10039 //---------------------------------------------------------------------------
    -
    10040 
    -
    10041 static const char kZoneNameMST7MDT[] ACE_TIME_PROGMEM = "MST7MDT";
    -
    10042 
    -
    10043 const basic::Info::ZoneInfo kZoneMST7MDT ACE_TIME_PROGMEM = {
    -
    10044  kZoneNameMST7MDT /*name*/,
    -
    10045  0xf2af9375 /*zoneId*/,
    -
    10046  &kZoneContext /*zoneContext*/,
    -
    10047  1 /*numEras*/,
    -
    10048  kZoneEraAmerica_Denver /*eras*/,
    -
    10049  &kZoneAmerica_Denver /*targetInfo*/,
    -
    10050 };
    -
    10051 
    -
    10052 //---------------------------------------------------------------------------
    -
    10053 // Link name: Mexico/BajaSur -> America/Mazatlan
    -
    10054 //---------------------------------------------------------------------------
    -
    10055 
    -
    10056 static const char kZoneNameMexico_BajaSur[] ACE_TIME_PROGMEM = "Mexico/BajaSur";
    -
    10057 
    -
    10058 const basic::Info::ZoneInfo kZoneMexico_BajaSur ACE_TIME_PROGMEM = {
    -
    10059  kZoneNameMexico_BajaSur /*name*/,
    -
    10060  0x08ee3641 /*zoneId*/,
    -
    10061  &kZoneContext /*zoneContext*/,
    -
    10062  1 /*numEras*/,
    -
    10063  kZoneEraAmerica_Mazatlan /*eras*/,
    -
    10064  &kZoneAmerica_Mazatlan /*targetInfo*/,
    -
    10065 };
    -
    10066 
    -
    10067 //---------------------------------------------------------------------------
    -
    10068 // Link name: NZ -> Pacific/Auckland
    -
    10069 //---------------------------------------------------------------------------
    -
    10070 
    -
    10071 static const char kZoneNameNZ[] ACE_TIME_PROGMEM = "NZ";
    -
    10072 
    -
    10073 const basic::Info::ZoneInfo kZoneNZ ACE_TIME_PROGMEM = {
    -
    10074  kZoneNameNZ /*name*/,
    -
    10075  0x005974ad /*zoneId*/,
    -
    10076  &kZoneContext /*zoneContext*/,
    -
    10077  1 /*numEras*/,
    -
    10078  kZoneEraPacific_Auckland /*eras*/,
    -
    10079  &kZonePacific_Auckland /*targetInfo*/,
    -
    10080 };
    -
    10081 
    -
    10082 //---------------------------------------------------------------------------
    -
    10083 // Link name: NZ-CHAT -> Pacific/Chatham
    -
    10084 //---------------------------------------------------------------------------
    -
    10085 
    -
    10086 static const char kZoneNameNZ_CHAT[] ACE_TIME_PROGMEM = "NZ-CHAT";
    -
    10087 
    -
    10088 const basic::Info::ZoneInfo kZoneNZ_CHAT ACE_TIME_PROGMEM = {
    -
    10089  kZoneNameNZ_CHAT /*name*/,
    -
    10090  0x4d42afda /*zoneId*/,
    -
    10091  &kZoneContext /*zoneContext*/,
    -
    10092  1 /*numEras*/,
    -
    10093  kZoneEraPacific_Chatham /*eras*/,
    -
    10094  &kZonePacific_Chatham /*targetInfo*/,
    -
    10095 };
    -
    10096 
    -
    10097 //---------------------------------------------------------------------------
    -
    10098 // Link name: Navajo -> America/Denver
    -
    10099 //---------------------------------------------------------------------------
    -
    10100 
    -
    10101 static const char kZoneNameNavajo[] ACE_TIME_PROGMEM = "Navajo";
    -
    10102 
    -
    10103 const basic::Info::ZoneInfo kZoneNavajo ACE_TIME_PROGMEM = {
    -
    10104  kZoneNameNavajo /*name*/,
    -
    10105  0xc4ef0e24 /*zoneId*/,
    -
    10106  &kZoneContext /*zoneContext*/,
    -
    10107  1 /*numEras*/,
    -
    10108  kZoneEraAmerica_Denver /*eras*/,
    -
    10109  &kZoneAmerica_Denver /*targetInfo*/,
    -
    10110 };
    -
    10111 
    -
    10112 //---------------------------------------------------------------------------
    -
    10113 // Link name: PRC -> Asia/Shanghai
    -
    10114 //---------------------------------------------------------------------------
    -
    10115 
    -
    10116 static const char kZoneNamePRC[] ACE_TIME_PROGMEM = "PRC";
    -
    10117 
    -
    10118 const basic::Info::ZoneInfo kZonePRC ACE_TIME_PROGMEM = {
    -
    10119  kZoneNamePRC /*name*/,
    -
    10120  0x0b88120a /*zoneId*/,
    -
    10121  &kZoneContext /*zoneContext*/,
    -
    10122  1 /*numEras*/,
    -
    10123  kZoneEraAsia_Shanghai /*eras*/,
    -
    10124  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    10125 };
    -
    10126 
    -
    10127 //---------------------------------------------------------------------------
    -
    10128 // Link name: PST8PDT -> America/Los_Angeles
    -
    10129 //---------------------------------------------------------------------------
    -
    10130 
    -
    10131 static const char kZoneNamePST8PDT[] ACE_TIME_PROGMEM = "PST8PDT";
    -
    10132 
    -
    10133 const basic::Info::ZoneInfo kZonePST8PDT ACE_TIME_PROGMEM = {
    -
    10134  kZoneNamePST8PDT /*name*/,
    -
    10135  0xd99ee2dc /*zoneId*/,
    -
    10136  &kZoneContext /*zoneContext*/,
    -
    10137  1 /*numEras*/,
    -
    10138  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    10139  &kZoneAmerica_Los_Angeles /*targetInfo*/,
    -
    10140 };
    -
    10141 
    -
    10142 //---------------------------------------------------------------------------
    -
    10143 // Link name: Pacific/Chuuk -> Pacific/Port_Moresby
    -
    10144 //---------------------------------------------------------------------------
    -
    10145 
    -
    10146 static const char kZoneNamePacific_Chuuk[] ACE_TIME_PROGMEM = "\x0b" "Chuuk";
    -
    10147 
    -
    10148 const basic::Info::ZoneInfo kZonePacific_Chuuk ACE_TIME_PROGMEM = {
    -
    10149  kZoneNamePacific_Chuuk /*name*/,
    -
    10150  0x8a090b23 /*zoneId*/,
    -
    10151  &kZoneContext /*zoneContext*/,
    -
    10152  1 /*numEras*/,
    -
    10153  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    10154  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    10155 };
    -
    10156 
    -
    10157 //---------------------------------------------------------------------------
    -
    10158 // Link name: Pacific/Enderbury -> Pacific/Kanton
    -
    10159 //---------------------------------------------------------------------------
    -
    10160 
    -
    10161 static const char kZoneNamePacific_Enderbury[] ACE_TIME_PROGMEM = "\x0b" "Enderbury";
    -
    10162 
    -
    10163 const basic::Info::ZoneInfo kZonePacific_Enderbury ACE_TIME_PROGMEM = {
    -
    10164  kZoneNamePacific_Enderbury /*name*/,
    -
    10165  0x61599a93 /*zoneId*/,
    -
    10166  &kZoneContext /*zoneContext*/,
    -
    10167  1 /*numEras*/,
    -
    10168  kZoneEraPacific_Kanton /*eras*/,
    -
    10169  &kZonePacific_Kanton /*targetInfo*/,
    -
    10170 };
    -
    10171 
    -
    10172 //---------------------------------------------------------------------------
    -
    10173 // Link name: Pacific/Funafuti -> Pacific/Tarawa
    -
    10174 //---------------------------------------------------------------------------
    -
    10175 
    -
    10176 static const char kZoneNamePacific_Funafuti[] ACE_TIME_PROGMEM = "\x0b" "Funafuti";
    -
    10177 
    -
    10178 const basic::Info::ZoneInfo kZonePacific_Funafuti ACE_TIME_PROGMEM = {
    -
    10179  kZoneNamePacific_Funafuti /*name*/,
    -
    10180  0xdb402d65 /*zoneId*/,
    -
    10181  &kZoneContext /*zoneContext*/,
    -
    10182  1 /*numEras*/,
    -
    10183  kZoneEraPacific_Tarawa /*eras*/,
    -
    10184  &kZonePacific_Tarawa /*targetInfo*/,
    -
    10185 };
    -
    10186 
    -
    10187 //---------------------------------------------------------------------------
    -
    10188 // Link name: Pacific/Johnston -> Pacific/Honolulu
    -
    10189 //---------------------------------------------------------------------------
    -
    10190 
    -
    10191 static const char kZoneNamePacific_Johnston[] ACE_TIME_PROGMEM = "\x0b" "Johnston";
    -
    10192 
    -
    10193 const basic::Info::ZoneInfo kZonePacific_Johnston ACE_TIME_PROGMEM = {
    -
    10194  kZoneNamePacific_Johnston /*name*/,
    -
    10195  0xb15d7b36 /*zoneId*/,
    -
    10196  &kZoneContext /*zoneContext*/,
    -
    10197  1 /*numEras*/,
    -
    10198  kZoneEraPacific_Honolulu /*eras*/,
    -
    10199  &kZonePacific_Honolulu /*targetInfo*/,
    -
    10200 };
    -
    10201 
    -
    10202 //---------------------------------------------------------------------------
    -
    10203 // Link name: Pacific/Majuro -> Pacific/Tarawa
    -
    10204 //---------------------------------------------------------------------------
    -
    10205 
    -
    10206 static const char kZoneNamePacific_Majuro[] ACE_TIME_PROGMEM = "\x0b" "Majuro";
    -
    10207 
    -
    10208 const basic::Info::ZoneInfo kZonePacific_Majuro ACE_TIME_PROGMEM = {
    -
    10209  kZoneNamePacific_Majuro /*name*/,
    -
    10210  0xe1f95371 /*zoneId*/,
    -
    10211  &kZoneContext /*zoneContext*/,
    -
    10212  1 /*numEras*/,
    -
    10213  kZoneEraPacific_Tarawa /*eras*/,
    -
    10214  &kZonePacific_Tarawa /*targetInfo*/,
    -
    10215 };
    -
    10216 
    -
    10217 //---------------------------------------------------------------------------
    -
    10218 // Link name: Pacific/Midway -> Pacific/Pago_Pago
    -
    10219 //---------------------------------------------------------------------------
    -
    10220 
    -
    10221 static const char kZoneNamePacific_Midway[] ACE_TIME_PROGMEM = "\x0b" "Midway";
    -
    10222 
    -
    10223 const basic::Info::ZoneInfo kZonePacific_Midway ACE_TIME_PROGMEM = {
    -
    10224  kZoneNamePacific_Midway /*name*/,
    -
    10225  0xe286d38e /*zoneId*/,
    -
    10226  &kZoneContext /*zoneContext*/,
    -
    10227  1 /*numEras*/,
    -
    10228  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    10229  &kZonePacific_Pago_Pago /*targetInfo*/,
    -
    10230 };
    -
    10231 
    -
    10232 //---------------------------------------------------------------------------
    -
    10233 // Link name: Pacific/Pohnpei -> Pacific/Guadalcanal
    -
    10234 //---------------------------------------------------------------------------
    -
    10235 
    -
    10236 static const char kZoneNamePacific_Pohnpei[] ACE_TIME_PROGMEM = "\x0b" "Pohnpei";
    -
    10237 
    -
    10238 const basic::Info::ZoneInfo kZonePacific_Pohnpei ACE_TIME_PROGMEM = {
    -
    10239  kZoneNamePacific_Pohnpei /*name*/,
    -
    10240  0x28929f96 /*zoneId*/,
    -
    10241  &kZoneContext /*zoneContext*/,
    -
    10242  1 /*numEras*/,
    -
    10243  kZoneEraPacific_Guadalcanal /*eras*/,
    -
    10244  &kZonePacific_Guadalcanal /*targetInfo*/,
    -
    10245 };
    -
    10246 
    -
    10247 //---------------------------------------------------------------------------
    -
    10248 // Link name: Pacific/Ponape -> Pacific/Guadalcanal
    -
    10249 //---------------------------------------------------------------------------
    -
    10250 
    -
    10251 static const char kZoneNamePacific_Ponape[] ACE_TIME_PROGMEM = "\x0b" "Ponape";
    -
    10252 
    -
    10253 const basic::Info::ZoneInfo kZonePacific_Ponape ACE_TIME_PROGMEM = {
    -
    10254  kZoneNamePacific_Ponape /*name*/,
    -
    10255  0xe9f80086 /*zoneId*/,
    -
    10256  &kZoneContext /*zoneContext*/,
    -
    10257  1 /*numEras*/,
    -
    10258  kZoneEraPacific_Guadalcanal /*eras*/,
    -
    10259  &kZonePacific_Guadalcanal /*targetInfo*/,
    -
    10260 };
    -
    10261 
    -
    10262 //---------------------------------------------------------------------------
    -
    10263 // Link name: Pacific/Samoa -> Pacific/Pago_Pago
    -
    10264 //---------------------------------------------------------------------------
    -
    10265 
    -
    10266 static const char kZoneNamePacific_Samoa[] ACE_TIME_PROGMEM = "\x0b" "Samoa";
    -
    10267 
    -
    10268 const basic::Info::ZoneInfo kZonePacific_Samoa ACE_TIME_PROGMEM = {
    -
    10269  kZoneNamePacific_Samoa /*name*/,
    -
    10270  0x8b2699b4 /*zoneId*/,
    -
    10271  &kZoneContext /*zoneContext*/,
    -
    10272  1 /*numEras*/,
    -
    10273  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    10274  &kZonePacific_Pago_Pago /*targetInfo*/,
    -
    10275 };
    -
    10276 
    -
    10277 //---------------------------------------------------------------------------
    -
    10278 // Link name: Pacific/Truk -> Pacific/Port_Moresby
    -
    10279 //---------------------------------------------------------------------------
    -
    10280 
    -
    10281 static const char kZoneNamePacific_Truk[] ACE_TIME_PROGMEM = "\x0b" "Truk";
    -
    10282 
    -
    10283 const basic::Info::ZoneInfo kZonePacific_Truk ACE_TIME_PROGMEM = {
    -
    10284  kZoneNamePacific_Truk /*name*/,
    -
    10285  0x234010a9 /*zoneId*/,
    -
    10286  &kZoneContext /*zoneContext*/,
    -
    10287  1 /*numEras*/,
    -
    10288  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    10289  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    10290 };
    -
    10291 
    -
    10292 //---------------------------------------------------------------------------
    -
    10293 // Link name: Pacific/Wake -> Pacific/Tarawa
    -
    10294 //---------------------------------------------------------------------------
    -
    10295 
    -
    10296 static const char kZoneNamePacific_Wake[] ACE_TIME_PROGMEM = "\x0b" "Wake";
    -
    10297 
    -
    10298 const basic::Info::ZoneInfo kZonePacific_Wake ACE_TIME_PROGMEM = {
    -
    10299  kZoneNamePacific_Wake /*name*/,
    -
    10300  0x23416c2b /*zoneId*/,
    -
    10301  &kZoneContext /*zoneContext*/,
    -
    10302  1 /*numEras*/,
    -
    10303  kZoneEraPacific_Tarawa /*eras*/,
    -
    10304  &kZonePacific_Tarawa /*targetInfo*/,
    -
    10305 };
    -
    10306 
    -
    10307 //---------------------------------------------------------------------------
    -
    10308 // Link name: Pacific/Wallis -> Pacific/Tarawa
    -
    10309 //---------------------------------------------------------------------------
    -
    10310 
    -
    10311 static const char kZoneNamePacific_Wallis[] ACE_TIME_PROGMEM = "\x0b" "Wallis";
    -
    10312 
    -
    10313 const basic::Info::ZoneInfo kZonePacific_Wallis ACE_TIME_PROGMEM = {
    -
    10314  kZoneNamePacific_Wallis /*name*/,
    -
    10315  0xf94ddb0f /*zoneId*/,
    -
    10316  &kZoneContext /*zoneContext*/,
    -
    10317  1 /*numEras*/,
    -
    10318  kZoneEraPacific_Tarawa /*eras*/,
    -
    10319  &kZonePacific_Tarawa /*targetInfo*/,
    -
    10320 };
    -
    10321 
    -
    10322 //---------------------------------------------------------------------------
    -
    10323 // Link name: Pacific/Yap -> Pacific/Port_Moresby
    -
    10324 //---------------------------------------------------------------------------
    -
    10325 
    -
    10326 static const char kZoneNamePacific_Yap[] ACE_TIME_PROGMEM = "\x0b" "Yap";
    -
    10327 
    -
    10328 const basic::Info::ZoneInfo kZonePacific_Yap ACE_TIME_PROGMEM = {
    -
    10329  kZoneNamePacific_Yap /*name*/,
    -
    10330  0xbb40138d /*zoneId*/,
    -
    10331  &kZoneContext /*zoneContext*/,
    -
    10332  1 /*numEras*/,
    -
    10333  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    10334  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    10335 };
    -
    10336 
    -
    10337 //---------------------------------------------------------------------------
    -
    10338 // Link name: Poland -> Europe/Warsaw
    -
    10339 //---------------------------------------------------------------------------
    -
    10340 
    -
    10341 static const char kZoneNamePoland[] ACE_TIME_PROGMEM = "Poland";
    -
    10342 
    -
    10343 const basic::Info::ZoneInfo kZonePoland ACE_TIME_PROGMEM = {
    -
    10344  kZoneNamePoland /*name*/,
    -
    10345  0xca913b23 /*zoneId*/,
    -
    10346  &kZoneContext /*zoneContext*/,
    -
    10347  1 /*numEras*/,
    -
    10348  kZoneEraEurope_Warsaw /*eras*/,
    -
    10349  &kZoneEurope_Warsaw /*targetInfo*/,
    -
    10350 };
    -
    10351 
    -
    10352 //---------------------------------------------------------------------------
    -
    10353 // Link name: Portugal -> Europe/Lisbon
    -
    10354 //---------------------------------------------------------------------------
    -
    10355 
    -
    10356 static const char kZoneNamePortugal[] ACE_TIME_PROGMEM = "Portugal";
    -
    10357 
    -
    10358 const basic::Info::ZoneInfo kZonePortugal ACE_TIME_PROGMEM = {
    -
    10359  kZoneNamePortugal /*name*/,
    -
    10360  0xc3274593 /*zoneId*/,
    -
    10361  &kZoneContext /*zoneContext*/,
    -
    10362  1 /*numEras*/,
    -
    10363  kZoneEraEurope_Lisbon /*eras*/,
    -
    10364  &kZoneEurope_Lisbon /*targetInfo*/,
    -
    10365 };
    -
    10366 
    -
    10367 //---------------------------------------------------------------------------
    -
    10368 // Link name: ROC -> Asia/Taipei
    -
    10369 //---------------------------------------------------------------------------
    -
    10370 
    -
    10371 static const char kZoneNameROC[] ACE_TIME_PROGMEM = "ROC";
    -
    10372 
    -
    10373 const basic::Info::ZoneInfo kZoneROC ACE_TIME_PROGMEM = {
    -
    10374  kZoneNameROC /*name*/,
    -
    10375  0x0b881a29 /*zoneId*/,
    -
    10376  &kZoneContext /*zoneContext*/,
    -
    10377  1 /*numEras*/,
    -
    10378  kZoneEraAsia_Taipei /*eras*/,
    -
    10379  &kZoneAsia_Taipei /*targetInfo*/,
    -
    10380 };
    -
    10381 
    -
    10382 //---------------------------------------------------------------------------
    -
    10383 // Link name: ROK -> Asia/Seoul
    -
    10384 //---------------------------------------------------------------------------
    -
    10385 
    -
    10386 static const char kZoneNameROK[] ACE_TIME_PROGMEM = "ROK";
    -
    10387 
    -
    10388 const basic::Info::ZoneInfo kZoneROK ACE_TIME_PROGMEM = {
    -
    10389  kZoneNameROK /*name*/,
    -
    10390  0x0b881a31 /*zoneId*/,
    -
    10391  &kZoneContext /*zoneContext*/,
    -
    10392  1 /*numEras*/,
    -
    10393  kZoneEraAsia_Seoul /*eras*/,
    -
    10394  &kZoneAsia_Seoul /*targetInfo*/,
    -
    10395 };
    -
    10396 
    -
    10397 //---------------------------------------------------------------------------
    -
    10398 // Link name: Singapore -> Asia/Singapore
    -
    10399 //---------------------------------------------------------------------------
    -
    10400 
    -
    10401 static const char kZoneNameSingapore[] ACE_TIME_PROGMEM = "Singapore";
    -
    10402 
    -
    10403 const basic::Info::ZoneInfo kZoneSingapore ACE_TIME_PROGMEM = {
    -
    10404  kZoneNameSingapore /*name*/,
    -
    10405  0xa8598c8d /*zoneId*/,
    -
    10406  &kZoneContext /*zoneContext*/,
    -
    10407  1 /*numEras*/,
    -
    10408  kZoneEraAsia_Singapore /*eras*/,
    -
    10409  &kZoneAsia_Singapore /*targetInfo*/,
    -
    10410 };
    -
    10411 
    -
    10412 //---------------------------------------------------------------------------
    -
    10413 // Link name: UCT -> Etc/UTC
    -
    10414 //---------------------------------------------------------------------------
    -
    10415 
    -
    10416 static const char kZoneNameUCT[] ACE_TIME_PROGMEM = "UCT";
    -
    10417 
    -
    10418 const basic::Info::ZoneInfo kZoneUCT ACE_TIME_PROGMEM = {
    -
    10419  kZoneNameUCT /*name*/,
    -
    10420  0x0b882571 /*zoneId*/,
    -
    10421  &kZoneContext /*zoneContext*/,
    -
    10422  1 /*numEras*/,
    -
    10423  kZoneEraEtc_UTC /*eras*/,
    -
    10424  &kZoneEtc_UTC /*targetInfo*/,
    -
    10425 };
    -
    10426 
    -
    10427 //---------------------------------------------------------------------------
    -
    10428 // Link name: US/Alaska -> America/Anchorage
    -
    10429 //---------------------------------------------------------------------------
    -
    10430 
    -
    10431 static const char kZoneNameUS_Alaska[] ACE_TIME_PROGMEM = "US/Alaska";
    -
    10432 
    -
    10433 const basic::Info::ZoneInfo kZoneUS_Alaska ACE_TIME_PROGMEM = {
    -
    10434  kZoneNameUS_Alaska /*name*/,
    -
    10435  0xfa300bc9 /*zoneId*/,
    -
    10436  &kZoneContext /*zoneContext*/,
    -
    10437  1 /*numEras*/,
    -
    10438  kZoneEraAmerica_Anchorage /*eras*/,
    -
    10439  &kZoneAmerica_Anchorage /*targetInfo*/,
    -
    10440 };
    -
    10441 
    -
    10442 //---------------------------------------------------------------------------
    -
    10443 // Link name: US/Aleutian -> America/Adak
    -
    10444 //---------------------------------------------------------------------------
    -
    10445 
    -
    10446 static const char kZoneNameUS_Aleutian[] ACE_TIME_PROGMEM = "US/Aleutian";
    -
    10447 
    -
    10448 const basic::Info::ZoneInfo kZoneUS_Aleutian ACE_TIME_PROGMEM = {
    -
    10449  kZoneNameUS_Aleutian /*name*/,
    -
    10450  0x4fe013ef /*zoneId*/,
    -
    10451  &kZoneContext /*zoneContext*/,
    -
    10452  1 /*numEras*/,
    -
    10453  kZoneEraAmerica_Adak /*eras*/,
    -
    10454  &kZoneAmerica_Adak /*targetInfo*/,
    -
    10455 };
    -
    10456 
    -
    10457 //---------------------------------------------------------------------------
    -
    10458 // Link name: US/Arizona -> America/Phoenix
    -
    10459 //---------------------------------------------------------------------------
    -
    10460 
    -
    10461 static const char kZoneNameUS_Arizona[] ACE_TIME_PROGMEM = "US/Arizona";
    -
    10462 
    -
    10463 const basic::Info::ZoneInfo kZoneUS_Arizona ACE_TIME_PROGMEM = {
    -
    10464  kZoneNameUS_Arizona /*name*/,
    -
    10465  0x4ec52670 /*zoneId*/,
    -
    10466  &kZoneContext /*zoneContext*/,
    -
    10467  1 /*numEras*/,
    -
    10468  kZoneEraAmerica_Phoenix /*eras*/,
    -
    10469  &kZoneAmerica_Phoenix /*targetInfo*/,
    -
    10470 };
    -
    10471 
    -
    10472 //---------------------------------------------------------------------------
    -
    10473 // Link name: US/Central -> America/Chicago
    -
    10474 //---------------------------------------------------------------------------
    -
    10475 
    -
    10476 static const char kZoneNameUS_Central[] ACE_TIME_PROGMEM = "US/Central";
    -
    10477 
    -
    10478 const basic::Info::ZoneInfo kZoneUS_Central ACE_TIME_PROGMEM = {
    -
    10479  kZoneNameUS_Central /*name*/,
    -
    10480  0xcabdcb25 /*zoneId*/,
    -
    10481  &kZoneContext /*zoneContext*/,
    -
    10482  1 /*numEras*/,
    -
    10483  kZoneEraAmerica_Chicago /*eras*/,
    -
    10484  &kZoneAmerica_Chicago /*targetInfo*/,
    -
    10485 };
    -
    10486 
    -
    10487 //---------------------------------------------------------------------------
    -
    10488 // Link name: US/East-Indiana -> America/Indiana/Indianapolis
    -
    10489 //---------------------------------------------------------------------------
    -
    10490 
    -
    10491 static const char kZoneNameUS_East_Indiana[] ACE_TIME_PROGMEM = "US/East-Indiana";
    -
    10492 
    -
    10493 const basic::Info::ZoneInfo kZoneUS_East_Indiana ACE_TIME_PROGMEM = {
    -
    10494  kZoneNameUS_East_Indiana /*name*/,
    -
    10495  0x6dcf558a /*zoneId*/,
    -
    10496  &kZoneContext /*zoneContext*/,
    -
    10497  2 /*numEras*/,
    -
    10498  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    10499  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
    -
    10500 };
    -
    10501 
    -
    10502 //---------------------------------------------------------------------------
    -
    10503 // Link name: US/Eastern -> America/New_York
    -
    10504 //---------------------------------------------------------------------------
    -
    10505 
    -
    10506 static const char kZoneNameUS_Eastern[] ACE_TIME_PROGMEM = "US/Eastern";
    -
    10507 
    -
    10508 const basic::Info::ZoneInfo kZoneUS_Eastern ACE_TIME_PROGMEM = {
    -
    10509  kZoneNameUS_Eastern /*name*/,
    -
    10510  0x5bb7e78e /*zoneId*/,
    -
    10511  &kZoneContext /*zoneContext*/,
    -
    10512  1 /*numEras*/,
    -
    10513  kZoneEraAmerica_New_York /*eras*/,
    -
    10514  &kZoneAmerica_New_York /*targetInfo*/,
    -
    10515 };
    -
    10516 
    -
    10517 //---------------------------------------------------------------------------
    -
    10518 // Link name: US/Hawaii -> Pacific/Honolulu
    -
    10519 //---------------------------------------------------------------------------
    -
    10520 
    -
    10521 static const char kZoneNameUS_Hawaii[] ACE_TIME_PROGMEM = "US/Hawaii";
    -
    10522 
    -
    10523 const basic::Info::ZoneInfo kZoneUS_Hawaii ACE_TIME_PROGMEM = {
    -
    10524  kZoneNameUS_Hawaii /*name*/,
    -
    10525  0x09c8de2f /*zoneId*/,
    -
    10526  &kZoneContext /*zoneContext*/,
    -
    10527  1 /*numEras*/,
    -
    10528  kZoneEraPacific_Honolulu /*eras*/,
    -
    10529  &kZonePacific_Honolulu /*targetInfo*/,
    -
    10530 };
    -
    10531 
    -
    10532 //---------------------------------------------------------------------------
    -
    10533 // Link name: US/Michigan -> America/Detroit
    -
    10534 //---------------------------------------------------------------------------
    -
    10535 
    -
    10536 static const char kZoneNameUS_Michigan[] ACE_TIME_PROGMEM = "US/Michigan";
    -
    10537 
    -
    10538 const basic::Info::ZoneInfo kZoneUS_Michigan ACE_TIME_PROGMEM = {
    -
    10539  kZoneNameUS_Michigan /*name*/,
    -
    10540  0x766bb7bc /*zoneId*/,
    -
    10541  &kZoneContext /*zoneContext*/,
    -
    10542  1 /*numEras*/,
    -
    10543  kZoneEraAmerica_Detroit /*eras*/,
    -
    10544  &kZoneAmerica_Detroit /*targetInfo*/,
    -
    10545 };
    -
    10546 
    -
    10547 //---------------------------------------------------------------------------
    -
    10548 // Link name: US/Mountain -> America/Denver
    -
    10549 //---------------------------------------------------------------------------
    -
    10550 
    -
    10551 static const char kZoneNameUS_Mountain[] ACE_TIME_PROGMEM = "US/Mountain";
    -
    10552 
    -
    10553 const basic::Info::ZoneInfo kZoneUS_Mountain ACE_TIME_PROGMEM = {
    -
    10554  kZoneNameUS_Mountain /*name*/,
    -
    10555  0x6eb88247 /*zoneId*/,
    -
    10556  &kZoneContext /*zoneContext*/,
    -
    10557  1 /*numEras*/,
    -
    10558  kZoneEraAmerica_Denver /*eras*/,
    -
    10559  &kZoneAmerica_Denver /*targetInfo*/,
    -
    10560 };
    -
    10561 
    -
    10562 //---------------------------------------------------------------------------
    -
    10563 // Link name: US/Pacific -> America/Los_Angeles
    -
    10564 //---------------------------------------------------------------------------
    -
    10565 
    -
    10566 static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific";
    -
    10567 
    -
    10568 const basic::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = {
    -
    10569  kZoneNameUS_Pacific /*name*/,
    -
    10570  0xa950f6ab /*zoneId*/,
    -
    10571  &kZoneContext /*zoneContext*/,
    -
    10572  1 /*numEras*/,
    -
    10573  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    10574  &kZoneAmerica_Los_Angeles /*targetInfo*/,
    -
    10575 };
    -
    10576 
    -
    10577 //---------------------------------------------------------------------------
    -
    10578 // Link name: US/Samoa -> Pacific/Pago_Pago
    -
    10579 //---------------------------------------------------------------------------
    -
    10580 
    -
    10581 static const char kZoneNameUS_Samoa[] ACE_TIME_PROGMEM = "US/Samoa";
    -
    10582 
    -
    10583 const basic::Info::ZoneInfo kZoneUS_Samoa ACE_TIME_PROGMEM = {
    -
    10584  kZoneNameUS_Samoa /*name*/,
    -
    10585  0x566821cd /*zoneId*/,
    -
    10586  &kZoneContext /*zoneContext*/,
    -
    10587  1 /*numEras*/,
    -
    10588  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    10589  &kZonePacific_Pago_Pago /*targetInfo*/,
    -
    10590 };
    -
    10591 
    -
    10592 //---------------------------------------------------------------------------
    -
    10593 // Link name: UTC -> Etc/UTC
    -
    10594 //---------------------------------------------------------------------------
    -
    10595 
    -
    10596 static const char kZoneNameUTC[] ACE_TIME_PROGMEM = "UTC";
    -
    10597 
    -
    10598 const basic::Info::ZoneInfo kZoneUTC ACE_TIME_PROGMEM = {
    -
    10599  kZoneNameUTC /*name*/,
    -
    10600  0x0b882791 /*zoneId*/,
    -
    10601  &kZoneContext /*zoneContext*/,
    -
    10602  1 /*numEras*/,
    -
    10603  kZoneEraEtc_UTC /*eras*/,
    -
    10604  &kZoneEtc_UTC /*targetInfo*/,
    -
    10605 };
    -
    10606 
    -
    10607 //---------------------------------------------------------------------------
    -
    10608 // Link name: Universal -> Etc/UTC
    -
    10609 //---------------------------------------------------------------------------
    -
    10610 
    -
    10611 static const char kZoneNameUniversal[] ACE_TIME_PROGMEM = "Universal";
    -
    10612 
    -
    10613 const basic::Info::ZoneInfo kZoneUniversal ACE_TIME_PROGMEM = {
    -
    10614  kZoneNameUniversal /*name*/,
    -
    10615  0xd0ff523e /*zoneId*/,
    -
    10616  &kZoneContext /*zoneContext*/,
    -
    10617  1 /*numEras*/,
    -
    10618  kZoneEraEtc_UTC /*eras*/,
    -
    10619  &kZoneEtc_UTC /*targetInfo*/,
    -
    10620 };
    -
    10621 
    -
    10622 //---------------------------------------------------------------------------
    -
    10623 // Link name: WET -> Europe/Lisbon
    -
    10624 //---------------------------------------------------------------------------
    -
    10625 
    -
    10626 static const char kZoneNameWET[] ACE_TIME_PROGMEM = "WET";
    -
    10627 
    -
    10628 const basic::Info::ZoneInfo kZoneWET ACE_TIME_PROGMEM = {
    -
    10629  kZoneNameWET /*name*/,
    -
    10630  0x0b882e35 /*zoneId*/,
    -
    10631  &kZoneContext /*zoneContext*/,
    -
    10632  1 /*numEras*/,
    -
    10633  kZoneEraEurope_Lisbon /*eras*/,
    -
    10634  &kZoneEurope_Lisbon /*targetInfo*/,
    -
    10635 };
    -
    10636 
    -
    10637 //---------------------------------------------------------------------------
    -
    10638 // Link name: Zulu -> Etc/UTC
    -
    10639 //---------------------------------------------------------------------------
    -
    10640 
    -
    10641 static const char kZoneNameZulu[] ACE_TIME_PROGMEM = "Zulu";
    -
    10642 
    -
    10643 const basic::Info::ZoneInfo kZoneZulu ACE_TIME_PROGMEM = {
    -
    10644  kZoneNameZulu /*name*/,
    -
    10645  0x7c9069b5 /*zoneId*/,
    -
    10646  &kZoneContext /*zoneContext*/,
    -
    10647  1 /*numEras*/,
    -
    10648  kZoneEraEtc_UTC /*eras*/,
    -
    10649  &kZoneEtc_UTC /*targetInfo*/,
    -
    10650 };
    -
    10651 
    -
    10652 
    -
    10653 }
    -
    10654 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/zonedb_2zone__infos_8h_source.html b/docs/html/zonedb_2zone__infos_8h_source.html deleted file mode 100644 index 2c3ec2406..000000000 --- a/docs/html/zonedb_2zone__infos_8h_source.html +++ /dev/null @@ -1,1547 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/zone_infos.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace zonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 446 (215 zones, 231 links)
    -
    30 // Unsupported Zones: 151 (125 zones, 26 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2023]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2025]
    -
    40 // Max Buffer Size: 6
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 446
    -
    44 // Eras: 227
    -
    45 // Policies: 63
    -
    46 // Rules: 352
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 3168
    -
    51 // Policies: 189
    -
    52 // Eras: 2497
    -
    53 // Zones: 2795
    -
    54 // Links: 3003
    -
    55 // Registry: 892
    -
    56 // Formats: 175
    -
    57 // Letters: 29
    -
    58 // Fragments: 116
    -
    59 // Names: 4142 (original: 6494)
    -
    60 // TOTAL: 17022
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 4224
    -
    65 // Policies: 504
    -
    66 // Eras: 3632
    -
    67 // Zones: 5160
    -
    68 // Links: 5544
    -
    69 // Registry: 1784
    -
    70 // Formats: 175
    -
    71 // Letters: 41
    -
    72 // Fragments: 138
    -
    73 // Names: 4142 (original: 6494)
    -
    74 // TOTAL: 25368
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #ifndef ACE_TIME_ZONEDB_ZONE_INFOS_H
    -
    79 #define ACE_TIME_ZONEDB_ZONE_INFOS_H
    -
    80 
    -
    81 #include <zoneinfo/infos.h>
    -
    82 
    -
    83 class __FlashStringHelper;
    -
    84 
    -
    85 namespace ace_time {
    -
    86 namespace zonedb {
    -
    87 
    -
    88 //---------------------------------------------------------------------------
    -
    89 // ZoneContext (should not be in PROGMEM)
    -
    90 //---------------------------------------------------------------------------
    -
    91 
    -
    92 // Version of the TZ Database which generated these files.
    -
    93 extern const __FlashStringHelper* const kTzDatabaseVersion;
    -
    94 
    -
    95 // Metadata about the zonedb files.
    -
    96 extern const basic::Info::ZoneContext kZoneContext;
    -
    97 
    -
    98 //---------------------------------------------------------------------------
    -
    99 // Supported zones: 215
    -
    100 //---------------------------------------------------------------------------
    -
    101 
    -
    102 extern const basic::Info::ZoneInfo kZoneAfrica_Abidjan; // Africa/Abidjan
    -
    103 extern const basic::Info::ZoneInfo kZoneAfrica_Algiers; // Africa/Algiers
    -
    104 extern const basic::Info::ZoneInfo kZoneAfrica_Bissau; // Africa/Bissau
    -
    105 extern const basic::Info::ZoneInfo kZoneAfrica_Ceuta; // Africa/Ceuta
    -
    106 extern const basic::Info::ZoneInfo kZoneAfrica_Johannesburg; // Africa/Johannesburg
    -
    107 extern const basic::Info::ZoneInfo kZoneAfrica_Lagos; // Africa/Lagos
    -
    108 extern const basic::Info::ZoneInfo kZoneAfrica_Maputo; // Africa/Maputo
    -
    109 extern const basic::Info::ZoneInfo kZoneAfrica_Monrovia; // Africa/Monrovia
    -
    110 extern const basic::Info::ZoneInfo kZoneAfrica_Nairobi; // Africa/Nairobi
    -
    111 extern const basic::Info::ZoneInfo kZoneAfrica_Ndjamena; // Africa/Ndjamena
    -
    112 extern const basic::Info::ZoneInfo kZoneAfrica_Tunis; // Africa/Tunis
    -
    113 extern const basic::Info::ZoneInfo kZoneAfrica_Windhoek; // Africa/Windhoek
    -
    114 extern const basic::Info::ZoneInfo kZoneAmerica_Adak; // America/Adak
    -
    115 extern const basic::Info::ZoneInfo kZoneAmerica_Anchorage; // America/Anchorage
    -
    116 extern const basic::Info::ZoneInfo kZoneAmerica_Barbados; // America/Barbados
    -
    117 extern const basic::Info::ZoneInfo kZoneAmerica_Belem; // America/Belem
    -
    118 extern const basic::Info::ZoneInfo kZoneAmerica_Belize; // America/Belize
    -
    119 extern const basic::Info::ZoneInfo kZoneAmerica_Bogota; // America/Bogota
    -
    120 extern const basic::Info::ZoneInfo kZoneAmerica_Boise; // America/Boise
    -
    121 extern const basic::Info::ZoneInfo kZoneAmerica_Campo_Grande; // America/Campo_Grande
    -
    122 extern const basic::Info::ZoneInfo kZoneAmerica_Cayenne; // America/Cayenne
    -
    123 extern const basic::Info::ZoneInfo kZoneAmerica_Chicago; // America/Chicago
    -
    124 extern const basic::Info::ZoneInfo kZoneAmerica_Costa_Rica; // America/Costa_Rica
    -
    125 extern const basic::Info::ZoneInfo kZoneAmerica_Danmarkshavn; // America/Danmarkshavn
    -
    126 extern const basic::Info::ZoneInfo kZoneAmerica_Dawson_Creek; // America/Dawson_Creek
    -
    127 extern const basic::Info::ZoneInfo kZoneAmerica_Denver; // America/Denver
    -
    128 extern const basic::Info::ZoneInfo kZoneAmerica_Detroit; // America/Detroit
    -
    129 extern const basic::Info::ZoneInfo kZoneAmerica_Edmonton; // America/Edmonton
    -
    130 extern const basic::Info::ZoneInfo kZoneAmerica_El_Salvador; // America/El_Salvador
    -
    131 extern const basic::Info::ZoneInfo kZoneAmerica_Glace_Bay; // America/Glace_Bay
    -
    132 extern const basic::Info::ZoneInfo kZoneAmerica_Guatemala; // America/Guatemala
    -
    133 extern const basic::Info::ZoneInfo kZoneAmerica_Guayaquil; // America/Guayaquil
    -
    134 extern const basic::Info::ZoneInfo kZoneAmerica_Guyana; // America/Guyana
    -
    135 extern const basic::Info::ZoneInfo kZoneAmerica_Halifax; // America/Halifax
    -
    136 extern const basic::Info::ZoneInfo kZoneAmerica_Havana; // America/Havana
    -
    137 extern const basic::Info::ZoneInfo kZoneAmerica_Hermosillo; // America/Hermosillo
    -
    138 extern const basic::Info::ZoneInfo kZoneAmerica_Indiana_Indianapolis; // America/Indiana/Indianapolis
    -
    139 extern const basic::Info::ZoneInfo kZoneAmerica_Indiana_Marengo; // America/Indiana/Marengo
    -
    140 extern const basic::Info::ZoneInfo kZoneAmerica_Indiana_Vevay; // America/Indiana/Vevay
    -
    141 extern const basic::Info::ZoneInfo kZoneAmerica_Inuvik; // America/Inuvik
    -
    142 extern const basic::Info::ZoneInfo kZoneAmerica_Jamaica; // America/Jamaica
    -
    143 extern const basic::Info::ZoneInfo kZoneAmerica_Juneau; // America/Juneau
    -
    144 extern const basic::Info::ZoneInfo kZoneAmerica_Kentucky_Louisville; // America/Kentucky/Louisville
    -
    145 extern const basic::Info::ZoneInfo kZoneAmerica_La_Paz; // America/La_Paz
    -
    146 extern const basic::Info::ZoneInfo kZoneAmerica_Lima; // America/Lima
    -
    147 extern const basic::Info::ZoneInfo kZoneAmerica_Los_Angeles; // America/Los_Angeles
    -
    148 extern const basic::Info::ZoneInfo kZoneAmerica_Managua; // America/Managua
    -
    149 extern const basic::Info::ZoneInfo kZoneAmerica_Manaus; // America/Manaus
    -
    150 extern const basic::Info::ZoneInfo kZoneAmerica_Martinique; // America/Martinique
    -
    151 extern const basic::Info::ZoneInfo kZoneAmerica_Matamoros; // America/Matamoros
    -
    152 extern const basic::Info::ZoneInfo kZoneAmerica_Mazatlan; // America/Mazatlan
    -
    153 extern const basic::Info::ZoneInfo kZoneAmerica_Menominee; // America/Menominee
    -
    154 extern const basic::Info::ZoneInfo kZoneAmerica_Merida; // America/Merida
    -
    155 extern const basic::Info::ZoneInfo kZoneAmerica_Miquelon; // America/Miquelon
    -
    156 extern const basic::Info::ZoneInfo kZoneAmerica_Moncton; // America/Moncton
    -
    157 extern const basic::Info::ZoneInfo kZoneAmerica_Monterrey; // America/Monterrey
    -
    158 extern const basic::Info::ZoneInfo kZoneAmerica_Montevideo; // America/Montevideo
    -
    159 extern const basic::Info::ZoneInfo kZoneAmerica_New_York; // America/New_York
    -
    160 extern const basic::Info::ZoneInfo kZoneAmerica_Nome; // America/Nome
    -
    161 extern const basic::Info::ZoneInfo kZoneAmerica_North_Dakota_Center; // America/North_Dakota/Center
    -
    162 extern const basic::Info::ZoneInfo kZoneAmerica_Panama; // America/Panama
    -
    163 extern const basic::Info::ZoneInfo kZoneAmerica_Paramaribo; // America/Paramaribo
    -
    164 extern const basic::Info::ZoneInfo kZoneAmerica_Phoenix; // America/Phoenix
    -
    165 extern const basic::Info::ZoneInfo kZoneAmerica_Port_au_Prince; // America/Port-au-Prince
    -
    166 extern const basic::Info::ZoneInfo kZoneAmerica_Porto_Velho; // America/Porto_Velho
    -
    167 extern const basic::Info::ZoneInfo kZoneAmerica_Puerto_Rico; // America/Puerto_Rico
    -
    168 extern const basic::Info::ZoneInfo kZoneAmerica_Regina; // America/Regina
    -
    169 extern const basic::Info::ZoneInfo kZoneAmerica_Santiago; // America/Santiago
    -
    170 extern const basic::Info::ZoneInfo kZoneAmerica_Sao_Paulo; // America/Sao_Paulo
    -
    171 extern const basic::Info::ZoneInfo kZoneAmerica_Sitka; // America/Sitka
    -
    172 extern const basic::Info::ZoneInfo kZoneAmerica_Swift_Current; // America/Swift_Current
    -
    173 extern const basic::Info::ZoneInfo kZoneAmerica_Tegucigalpa; // America/Tegucigalpa
    -
    174 extern const basic::Info::ZoneInfo kZoneAmerica_Thule; // America/Thule
    -
    175 extern const basic::Info::ZoneInfo kZoneAmerica_Toronto; // America/Toronto
    -
    176 extern const basic::Info::ZoneInfo kZoneAmerica_Vancouver; // America/Vancouver
    -
    177 extern const basic::Info::ZoneInfo kZoneAmerica_Winnipeg; // America/Winnipeg
    -
    178 extern const basic::Info::ZoneInfo kZoneAmerica_Yakutat; // America/Yakutat
    -
    179 extern const basic::Info::ZoneInfo kZoneAntarctica_Rothera; // Antarctica/Rothera
    -
    180 extern const basic::Info::ZoneInfo kZoneAsia_Ashgabat; // Asia/Ashgabat
    -
    181 extern const basic::Info::ZoneInfo kZoneAsia_Baghdad; // Asia/Baghdad
    -
    182 extern const basic::Info::ZoneInfo kZoneAsia_Baku; // Asia/Baku
    -
    183 extern const basic::Info::ZoneInfo kZoneAsia_Bangkok; // Asia/Bangkok
    -
    184 extern const basic::Info::ZoneInfo kZoneAsia_Beirut; // Asia/Beirut
    -
    185 extern const basic::Info::ZoneInfo kZoneAsia_Dhaka; // Asia/Dhaka
    -
    186 extern const basic::Info::ZoneInfo kZoneAsia_Dubai; // Asia/Dubai
    -
    187 extern const basic::Info::ZoneInfo kZoneAsia_Dushanbe; // Asia/Dushanbe
    -
    188 extern const basic::Info::ZoneInfo kZoneAsia_Ho_Chi_Minh; // Asia/Ho_Chi_Minh
    -
    189 extern const basic::Info::ZoneInfo kZoneAsia_Hong_Kong; // Asia/Hong_Kong
    -
    190 extern const basic::Info::ZoneInfo kZoneAsia_Hovd; // Asia/Hovd
    -
    191 extern const basic::Info::ZoneInfo kZoneAsia_Jakarta; // Asia/Jakarta
    -
    192 extern const basic::Info::ZoneInfo kZoneAsia_Jayapura; // Asia/Jayapura
    -
    193 extern const basic::Info::ZoneInfo kZoneAsia_Jerusalem; // Asia/Jerusalem
    -
    194 extern const basic::Info::ZoneInfo kZoneAsia_Kabul; // Asia/Kabul
    -
    195 extern const basic::Info::ZoneInfo kZoneAsia_Karachi; // Asia/Karachi
    -
    196 extern const basic::Info::ZoneInfo kZoneAsia_Kathmandu; // Asia/Kathmandu
    -
    197 extern const basic::Info::ZoneInfo kZoneAsia_Kolkata; // Asia/Kolkata
    -
    198 extern const basic::Info::ZoneInfo kZoneAsia_Kuching; // Asia/Kuching
    -
    199 extern const basic::Info::ZoneInfo kZoneAsia_Macau; // Asia/Macau
    -
    200 extern const basic::Info::ZoneInfo kZoneAsia_Makassar; // Asia/Makassar
    -
    201 extern const basic::Info::ZoneInfo kZoneAsia_Manila; // Asia/Manila
    -
    202 extern const basic::Info::ZoneInfo kZoneAsia_Nicosia; // Asia/Nicosia
    -
    203 extern const basic::Info::ZoneInfo kZoneAsia_Pontianak; // Asia/Pontianak
    -
    204 extern const basic::Info::ZoneInfo kZoneAsia_Qatar; // Asia/Qatar
    -
    205 extern const basic::Info::ZoneInfo kZoneAsia_Riyadh; // Asia/Riyadh
    -
    206 extern const basic::Info::ZoneInfo kZoneAsia_Samarkand; // Asia/Samarkand
    -
    207 extern const basic::Info::ZoneInfo kZoneAsia_Seoul; // Asia/Seoul
    -
    208 extern const basic::Info::ZoneInfo kZoneAsia_Shanghai; // Asia/Shanghai
    -
    209 extern const basic::Info::ZoneInfo kZoneAsia_Singapore; // Asia/Singapore
    -
    210 extern const basic::Info::ZoneInfo kZoneAsia_Taipei; // Asia/Taipei
    -
    211 extern const basic::Info::ZoneInfo kZoneAsia_Tashkent; // Asia/Tashkent
    -
    212 extern const basic::Info::ZoneInfo kZoneAsia_Tehran; // Asia/Tehran
    -
    213 extern const basic::Info::ZoneInfo kZoneAsia_Thimphu; // Asia/Thimphu
    -
    214 extern const basic::Info::ZoneInfo kZoneAsia_Tokyo; // Asia/Tokyo
    -
    215 extern const basic::Info::ZoneInfo kZoneAsia_Ulaanbaatar; // Asia/Ulaanbaatar
    -
    216 extern const basic::Info::ZoneInfo kZoneAsia_Urumqi; // Asia/Urumqi
    -
    217 extern const basic::Info::ZoneInfo kZoneAsia_Yangon; // Asia/Yangon
    -
    218 extern const basic::Info::ZoneInfo kZoneAsia_Yerevan; // Asia/Yerevan
    -
    219 extern const basic::Info::ZoneInfo kZoneAtlantic_Azores; // Atlantic/Azores
    -
    220 extern const basic::Info::ZoneInfo kZoneAtlantic_Bermuda; // Atlantic/Bermuda
    -
    221 extern const basic::Info::ZoneInfo kZoneAtlantic_Canary; // Atlantic/Canary
    -
    222 extern const basic::Info::ZoneInfo kZoneAtlantic_Cape_Verde; // Atlantic/Cape_Verde
    -
    223 extern const basic::Info::ZoneInfo kZoneAtlantic_Faroe; // Atlantic/Faroe
    -
    224 extern const basic::Info::ZoneInfo kZoneAtlantic_Madeira; // Atlantic/Madeira
    -
    225 extern const basic::Info::ZoneInfo kZoneAtlantic_South_Georgia; // Atlantic/South_Georgia
    -
    226 extern const basic::Info::ZoneInfo kZoneAustralia_Adelaide; // Australia/Adelaide
    -
    227 extern const basic::Info::ZoneInfo kZoneAustralia_Brisbane; // Australia/Brisbane
    -
    228 extern const basic::Info::ZoneInfo kZoneAustralia_Broken_Hill; // Australia/Broken_Hill
    -
    229 extern const basic::Info::ZoneInfo kZoneAustralia_Darwin; // Australia/Darwin
    -
    230 extern const basic::Info::ZoneInfo kZoneAustralia_Eucla; // Australia/Eucla
    -
    231 extern const basic::Info::ZoneInfo kZoneAustralia_Hobart; // Australia/Hobart
    -
    232 extern const basic::Info::ZoneInfo kZoneAustralia_Lindeman; // Australia/Lindeman
    -
    233 extern const basic::Info::ZoneInfo kZoneAustralia_Lord_Howe; // Australia/Lord_Howe
    -
    234 extern const basic::Info::ZoneInfo kZoneAustralia_Melbourne; // Australia/Melbourne
    -
    235 extern const basic::Info::ZoneInfo kZoneAustralia_Perth; // Australia/Perth
    -
    236 extern const basic::Info::ZoneInfo kZoneAustralia_Sydney; // Australia/Sydney
    -
    237 extern const basic::Info::ZoneInfo kZoneEtc_GMT; // Etc/GMT
    -
    238 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_1; // Etc/GMT+1
    -
    239 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_10; // Etc/GMT+10
    -
    240 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_11; // Etc/GMT+11
    -
    241 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_12; // Etc/GMT+12
    -
    242 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_2; // Etc/GMT+2
    -
    243 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_3; // Etc/GMT+3
    -
    244 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_4; // Etc/GMT+4
    -
    245 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_5; // Etc/GMT+5
    -
    246 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_6; // Etc/GMT+6
    -
    247 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_7; // Etc/GMT+7
    -
    248 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_8; // Etc/GMT+8
    -
    249 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_9; // Etc/GMT+9
    -
    250 extern const basic::Info::ZoneInfo kZoneEtc_GMT_1; // Etc/GMT-1
    -
    251 extern const basic::Info::ZoneInfo kZoneEtc_GMT_10; // Etc/GMT-10
    -
    252 extern const basic::Info::ZoneInfo kZoneEtc_GMT_11; // Etc/GMT-11
    -
    253 extern const basic::Info::ZoneInfo kZoneEtc_GMT_12; // Etc/GMT-12
    -
    254 extern const basic::Info::ZoneInfo kZoneEtc_GMT_13; // Etc/GMT-13
    -
    255 extern const basic::Info::ZoneInfo kZoneEtc_GMT_14; // Etc/GMT-14
    -
    256 extern const basic::Info::ZoneInfo kZoneEtc_GMT_2; // Etc/GMT-2
    -
    257 extern const basic::Info::ZoneInfo kZoneEtc_GMT_3; // Etc/GMT-3
    -
    258 extern const basic::Info::ZoneInfo kZoneEtc_GMT_4; // Etc/GMT-4
    -
    259 extern const basic::Info::ZoneInfo kZoneEtc_GMT_5; // Etc/GMT-5
    -
    260 extern const basic::Info::ZoneInfo kZoneEtc_GMT_6; // Etc/GMT-6
    -
    261 extern const basic::Info::ZoneInfo kZoneEtc_GMT_7; // Etc/GMT-7
    -
    262 extern const basic::Info::ZoneInfo kZoneEtc_GMT_8; // Etc/GMT-8
    -
    263 extern const basic::Info::ZoneInfo kZoneEtc_GMT_9; // Etc/GMT-9
    -
    264 extern const basic::Info::ZoneInfo kZoneEtc_UTC; // Etc/UTC
    -
    265 extern const basic::Info::ZoneInfo kZoneEurope_Andorra; // Europe/Andorra
    -
    266 extern const basic::Info::ZoneInfo kZoneEurope_Athens; // Europe/Athens
    -
    267 extern const basic::Info::ZoneInfo kZoneEurope_Belgrade; // Europe/Belgrade
    -
    268 extern const basic::Info::ZoneInfo kZoneEurope_Berlin; // Europe/Berlin
    -
    269 extern const basic::Info::ZoneInfo kZoneEurope_Brussels; // Europe/Brussels
    -
    270 extern const basic::Info::ZoneInfo kZoneEurope_Bucharest; // Europe/Bucharest
    -
    271 extern const basic::Info::ZoneInfo kZoneEurope_Budapest; // Europe/Budapest
    -
    272 extern const basic::Info::ZoneInfo kZoneEurope_Chisinau; // Europe/Chisinau
    -
    273 extern const basic::Info::ZoneInfo kZoneEurope_Dublin; // Europe/Dublin
    -
    274 extern const basic::Info::ZoneInfo kZoneEurope_Gibraltar; // Europe/Gibraltar
    -
    275 extern const basic::Info::ZoneInfo kZoneEurope_Helsinki; // Europe/Helsinki
    -
    276 extern const basic::Info::ZoneInfo kZoneEurope_Kyiv; // Europe/Kyiv
    -
    277 extern const basic::Info::ZoneInfo kZoneEurope_Lisbon; // Europe/Lisbon
    -
    278 extern const basic::Info::ZoneInfo kZoneEurope_London; // Europe/London
    -
    279 extern const basic::Info::ZoneInfo kZoneEurope_Madrid; // Europe/Madrid
    -
    280 extern const basic::Info::ZoneInfo kZoneEurope_Malta; // Europe/Malta
    -
    281 extern const basic::Info::ZoneInfo kZoneEurope_Paris; // Europe/Paris
    -
    282 extern const basic::Info::ZoneInfo kZoneEurope_Prague; // Europe/Prague
    -
    283 extern const basic::Info::ZoneInfo kZoneEurope_Rome; // Europe/Rome
    -
    284 extern const basic::Info::ZoneInfo kZoneEurope_Sofia; // Europe/Sofia
    -
    285 extern const basic::Info::ZoneInfo kZoneEurope_Tirane; // Europe/Tirane
    -
    286 extern const basic::Info::ZoneInfo kZoneEurope_Vienna; // Europe/Vienna
    -
    287 extern const basic::Info::ZoneInfo kZoneEurope_Warsaw; // Europe/Warsaw
    -
    288 extern const basic::Info::ZoneInfo kZoneEurope_Zurich; // Europe/Zurich
    -
    289 extern const basic::Info::ZoneInfo kZoneIndian_Chagos; // Indian/Chagos
    -
    290 extern const basic::Info::ZoneInfo kZoneIndian_Maldives; // Indian/Maldives
    -
    291 extern const basic::Info::ZoneInfo kZoneIndian_Mauritius; // Indian/Mauritius
    -
    292 extern const basic::Info::ZoneInfo kZonePacific_Auckland; // Pacific/Auckland
    -
    293 extern const basic::Info::ZoneInfo kZonePacific_Chatham; // Pacific/Chatham
    -
    294 extern const basic::Info::ZoneInfo kZonePacific_Easter; // Pacific/Easter
    -
    295 extern const basic::Info::ZoneInfo kZonePacific_Efate; // Pacific/Efate
    -
    296 extern const basic::Info::ZoneInfo kZonePacific_Fiji; // Pacific/Fiji
    -
    297 extern const basic::Info::ZoneInfo kZonePacific_Galapagos; // Pacific/Galapagos
    -
    298 extern const basic::Info::ZoneInfo kZonePacific_Gambier; // Pacific/Gambier
    -
    299 extern const basic::Info::ZoneInfo kZonePacific_Guadalcanal; // Pacific/Guadalcanal
    -
    300 extern const basic::Info::ZoneInfo kZonePacific_Honolulu; // Pacific/Honolulu
    -
    301 extern const basic::Info::ZoneInfo kZonePacific_Kanton; // Pacific/Kanton
    -
    302 extern const basic::Info::ZoneInfo kZonePacific_Kiritimati; // Pacific/Kiritimati
    -
    303 extern const basic::Info::ZoneInfo kZonePacific_Kosrae; // Pacific/Kosrae
    -
    304 extern const basic::Info::ZoneInfo kZonePacific_Kwajalein; // Pacific/Kwajalein
    -
    305 extern const basic::Info::ZoneInfo kZonePacific_Marquesas; // Pacific/Marquesas
    -
    306 extern const basic::Info::ZoneInfo kZonePacific_Nauru; // Pacific/Nauru
    -
    307 extern const basic::Info::ZoneInfo kZonePacific_Niue; // Pacific/Niue
    -
    308 extern const basic::Info::ZoneInfo kZonePacific_Noumea; // Pacific/Noumea
    -
    309 extern const basic::Info::ZoneInfo kZonePacific_Pago_Pago; // Pacific/Pago_Pago
    -
    310 extern const basic::Info::ZoneInfo kZonePacific_Palau; // Pacific/Palau
    -
    311 extern const basic::Info::ZoneInfo kZonePacific_Pitcairn; // Pacific/Pitcairn
    -
    312 extern const basic::Info::ZoneInfo kZonePacific_Port_Moresby; // Pacific/Port_Moresby
    -
    313 extern const basic::Info::ZoneInfo kZonePacific_Rarotonga; // Pacific/Rarotonga
    -
    314 extern const basic::Info::ZoneInfo kZonePacific_Tahiti; // Pacific/Tahiti
    -
    315 extern const basic::Info::ZoneInfo kZonePacific_Tarawa; // Pacific/Tarawa
    -
    316 extern const basic::Info::ZoneInfo kZonePacific_Tongatapu; // Pacific/Tongatapu
    -
    317 
    -
    318 
    -
    319 // Zone Ids
    -
    320 
    -
    321 const uint32_t kZoneIdAfrica_Abidjan = 0xc21305a3; // Africa/Abidjan
    -
    322 const uint32_t kZoneIdAfrica_Algiers = 0xd94515c1; // Africa/Algiers
    -
    323 const uint32_t kZoneIdAfrica_Bissau = 0x75564141; // Africa/Bissau
    -
    324 const uint32_t kZoneIdAfrica_Ceuta = 0x77fb46ec; // Africa/Ceuta
    -
    325 const uint32_t kZoneIdAfrica_Johannesburg = 0xd5d157a0; // Africa/Johannesburg
    -
    326 const uint32_t kZoneIdAfrica_Lagos = 0x789bb5d0; // Africa/Lagos
    -
    327 const uint32_t kZoneIdAfrica_Maputo = 0x8e6ca1f0; // Africa/Maputo
    -
    328 const uint32_t kZoneIdAfrica_Monrovia = 0x0ce90385; // Africa/Monrovia
    -
    329 const uint32_t kZoneIdAfrica_Nairobi = 0xa87ab57e; // Africa/Nairobi
    -
    330 const uint32_t kZoneIdAfrica_Ndjamena = 0x9fe09898; // Africa/Ndjamena
    -
    331 const uint32_t kZoneIdAfrica_Tunis = 0x79378e6d; // Africa/Tunis
    -
    332 const uint32_t kZoneIdAfrica_Windhoek = 0x789c9bd3; // Africa/Windhoek
    -
    333 const uint32_t kZoneIdAmerica_Adak = 0x97fe49d7; // America/Adak
    -
    334 const uint32_t kZoneIdAmerica_Anchorage = 0x5a79260e; // America/Anchorage
    -
    335 const uint32_t kZoneIdAmerica_Barbados = 0xcbbc3b04; // America/Barbados
    -
    336 const uint32_t kZoneIdAmerica_Belem = 0x97da580b; // America/Belem
    -
    337 const uint32_t kZoneIdAmerica_Belize = 0x93256c81; // America/Belize
    -
    338 const uint32_t kZoneIdAmerica_Bogota = 0x93d7bc62; // America/Bogota
    -
    339 const uint32_t kZoneIdAmerica_Boise = 0x97dfc8d8; // America/Boise
    -
    340 const uint32_t kZoneIdAmerica_Campo_Grande = 0xfec3e7a6; // America/Campo_Grande
    -
    341 const uint32_t kZoneIdAmerica_Cayenne = 0x3c617269; // America/Cayenne
    -
    342 const uint32_t kZoneIdAmerica_Chicago = 0x4b92b5d4; // America/Chicago
    -
    343 const uint32_t kZoneIdAmerica_Costa_Rica = 0x63ff66be; // America/Costa_Rica
    -
    344 const uint32_t kZoneIdAmerica_Danmarkshavn = 0xf554d204; // America/Danmarkshavn
    -
    345 const uint32_t kZoneIdAmerica_Dawson_Creek = 0x6cf24e5b; // America/Dawson_Creek
    -
    346 const uint32_t kZoneIdAmerica_Denver = 0x97d10b2a; // America/Denver
    -
    347 const uint32_t kZoneIdAmerica_Detroit = 0x925cfbc1; // America/Detroit
    -
    348 const uint32_t kZoneIdAmerica_Edmonton = 0x6cb9484a; // America/Edmonton
    -
    349 const uint32_t kZoneIdAmerica_El_Salvador = 0x752ad652; // America/El_Salvador
    -
    350 const uint32_t kZoneIdAmerica_Glace_Bay = 0x9681f8dd; // America/Glace_Bay
    -
    351 const uint32_t kZoneIdAmerica_Guatemala = 0x0c8259f7; // America/Guatemala
    -
    352 const uint32_t kZoneIdAmerica_Guayaquil = 0x17e64958; // America/Guayaquil
    -
    353 const uint32_t kZoneIdAmerica_Guyana = 0x9ff7bd0b; // America/Guyana
    -
    354 const uint32_t kZoneIdAmerica_Halifax = 0xbc5b7183; // America/Halifax
    -
    355 const uint32_t kZoneIdAmerica_Havana = 0xa0e15675; // America/Havana
    -
    356 const uint32_t kZoneIdAmerica_Hermosillo = 0x065d21c4; // America/Hermosillo
    -
    357 const uint32_t kZoneIdAmerica_Indiana_Indianapolis = 0x28a669a4; // America/Indiana/Indianapolis
    -
    358 const uint32_t kZoneIdAmerica_Indiana_Marengo = 0x2feeee72; // America/Indiana/Marengo
    -
    359 const uint32_t kZoneIdAmerica_Indiana_Vevay = 0x10aca054; // America/Indiana/Vevay
    -
    360 const uint32_t kZoneIdAmerica_Inuvik = 0xa42189fc; // America/Inuvik
    -
    361 const uint32_t kZoneIdAmerica_Jamaica = 0x565dad6c; // America/Jamaica
    -
    362 const uint32_t kZoneIdAmerica_Juneau = 0xa6f13e2e; // America/Juneau
    -
    363 const uint32_t kZoneIdAmerica_Kentucky_Louisville = 0x1a21024b; // America/Kentucky/Louisville
    -
    364 const uint32_t kZoneIdAmerica_La_Paz = 0xaa29125d; // America/La_Paz
    -
    365 const uint32_t kZoneIdAmerica_Lima = 0x980468c9; // America/Lima
    -
    366 const uint32_t kZoneIdAmerica_Los_Angeles = 0xb7f7e8f2; // America/Los_Angeles
    -
    367 const uint32_t kZoneIdAmerica_Managua = 0x3d5e7600; // America/Managua
    -
    368 const uint32_t kZoneIdAmerica_Manaus = 0xac86bf8b; // America/Manaus
    -
    369 const uint32_t kZoneIdAmerica_Martinique = 0x551e84c5; // America/Martinique
    -
    370 const uint32_t kZoneIdAmerica_Matamoros = 0xdd1b0259; // America/Matamoros
    -
    371 const uint32_t kZoneIdAmerica_Mazatlan = 0x0532189e; // America/Mazatlan
    -
    372 const uint32_t kZoneIdAmerica_Menominee = 0xe0e9c583; // America/Menominee
    -
    373 const uint32_t kZoneIdAmerica_Merida = 0xacd172d8; // America/Merida
    -
    374 const uint32_t kZoneIdAmerica_Miquelon = 0x59674330; // America/Miquelon
    -
    375 const uint32_t kZoneIdAmerica_Moncton = 0x5e07fe24; // America/Moncton
    -
    376 const uint32_t kZoneIdAmerica_Monterrey = 0x269a1deb; // America/Monterrey
    -
    377 const uint32_t kZoneIdAmerica_Montevideo = 0xfa214780; // America/Montevideo
    -
    378 const uint32_t kZoneIdAmerica_New_York = 0x1e2a7654; // America/New_York
    -
    379 const uint32_t kZoneIdAmerica_Nome = 0x98059b15; // America/Nome
    -
    380 const uint32_t kZoneIdAmerica_North_Dakota_Center = 0x9da42814; // America/North_Dakota/Center
    -
    381 const uint32_t kZoneIdAmerica_Panama = 0xb3863854; // America/Panama
    -
    382 const uint32_t kZoneIdAmerica_Paramaribo = 0xb319e4c4; // America/Paramaribo
    -
    383 const uint32_t kZoneIdAmerica_Phoenix = 0x34b5af01; // America/Phoenix
    -
    384 const uint32_t kZoneIdAmerica_Port_au_Prince = 0x8e4a7bdc; // America/Port-au-Prince
    -
    385 const uint32_t kZoneIdAmerica_Porto_Velho = 0x6b1aac77; // America/Porto_Velho
    -
    386 const uint32_t kZoneIdAmerica_Puerto_Rico = 0x6752ca31; // America/Puerto_Rico
    -
    387 const uint32_t kZoneIdAmerica_Regina = 0xb875371c; // America/Regina
    -
    388 const uint32_t kZoneIdAmerica_Santiago = 0x7410c9bc; // America/Santiago
    -
    389 const uint32_t kZoneIdAmerica_Sao_Paulo = 0x1063bfc9; // America/Sao_Paulo
    -
    390 const uint32_t kZoneIdAmerica_Sitka = 0x99104ce2; // America/Sitka
    -
    391 const uint32_t kZoneIdAmerica_Swift_Current = 0xdef98e55; // America/Swift_Current
    -
    392 const uint32_t kZoneIdAmerica_Tegucigalpa = 0xbfd6fd4c; // America/Tegucigalpa
    -
    393 const uint32_t kZoneIdAmerica_Thule = 0x9921dd68; // America/Thule
    -
    394 const uint32_t kZoneIdAmerica_Toronto = 0x792e851b; // America/Toronto
    -
    395 const uint32_t kZoneIdAmerica_Vancouver = 0x2c6f6b1f; // America/Vancouver
    -
    396 const uint32_t kZoneIdAmerica_Winnipeg = 0x8c7dafc7; // America/Winnipeg
    -
    397 const uint32_t kZoneIdAmerica_Yakutat = 0xd8ee31e9; // America/Yakutat
    -
    398 const uint32_t kZoneIdAntarctica_Rothera = 0x0e86d203; // Antarctica/Rothera
    -
    399 const uint32_t kZoneIdAsia_Ashgabat = 0xba87598d; // Asia/Ashgabat
    -
    400 const uint32_t kZoneIdAsia_Baghdad = 0x9ceffbed; // Asia/Baghdad
    -
    401 const uint32_t kZoneIdAsia_Baku = 0x1fa788b5; // Asia/Baku
    -
    402 const uint32_t kZoneIdAsia_Bangkok = 0x9d6e3aaf; // Asia/Bangkok
    -
    403 const uint32_t kZoneIdAsia_Beirut = 0xa7f3d5fd; // Asia/Beirut
    -
    404 const uint32_t kZoneIdAsia_Dhaka = 0x14c07b8b; // Asia/Dhaka
    -
    405 const uint32_t kZoneIdAsia_Dubai = 0x14c79f77; // Asia/Dubai
    -
    406 const uint32_t kZoneIdAsia_Dushanbe = 0x32fc5c3c; // Asia/Dushanbe
    -
    407 const uint32_t kZoneIdAsia_Ho_Chi_Minh = 0x20f2d127; // Asia/Ho_Chi_Minh
    -
    408 const uint32_t kZoneIdAsia_Hong_Kong = 0x577f28ac; // Asia/Hong_Kong
    -
    409 const uint32_t kZoneIdAsia_Hovd = 0x1fab0fe3; // Asia/Hovd
    -
    410 const uint32_t kZoneIdAsia_Jakarta = 0x0506ab50; // Asia/Jakarta
    -
    411 const uint32_t kZoneIdAsia_Jayapura = 0xc6833c2f; // Asia/Jayapura
    -
    412 const uint32_t kZoneIdAsia_Jerusalem = 0x5becd23a; // Asia/Jerusalem
    -
    413 const uint32_t kZoneIdAsia_Kabul = 0x153b5601; // Asia/Kabul
    -
    414 const uint32_t kZoneIdAsia_Karachi = 0x527f5245; // Asia/Karachi
    -
    415 const uint32_t kZoneIdAsia_Kathmandu = 0x9a96ce6f; // Asia/Kathmandu
    -
    416 const uint32_t kZoneIdAsia_Kolkata = 0x72c06cd9; // Asia/Kolkata
    -
    417 const uint32_t kZoneIdAsia_Kuching = 0x801b003b; // Asia/Kuching
    -
    418 const uint32_t kZoneIdAsia_Macau = 0x155f88b9; // Asia/Macau
    -
    419 const uint32_t kZoneIdAsia_Makassar = 0x6aa21c85; // Asia/Makassar
    -
    420 const uint32_t kZoneIdAsia_Manila = 0xc156c944; // Asia/Manila
    -
    421 const uint32_t kZoneIdAsia_Nicosia = 0x4b0fcf78; // Asia/Nicosia
    -
    422 const uint32_t kZoneIdAsia_Pontianak = 0x1a76c057; // Asia/Pontianak
    -
    423 const uint32_t kZoneIdAsia_Qatar = 0x15a8330b; // Asia/Qatar
    -
    424 const uint32_t kZoneIdAsia_Riyadh = 0xcd973d93; // Asia/Riyadh
    -
    425 const uint32_t kZoneIdAsia_Samarkand = 0x13ae5104; // Asia/Samarkand
    -
    426 const uint32_t kZoneIdAsia_Seoul = 0x15ce82da; // Asia/Seoul
    -
    427 const uint32_t kZoneIdAsia_Shanghai = 0xf895a7f5; // Asia/Shanghai
    -
    428 const uint32_t kZoneIdAsia_Singapore = 0xcf8581fa; // Asia/Singapore
    -
    429 const uint32_t kZoneIdAsia_Taipei = 0xd1a844ae; // Asia/Taipei
    -
    430 const uint32_t kZoneIdAsia_Tashkent = 0xf3924254; // Asia/Tashkent
    -
    431 const uint32_t kZoneIdAsia_Tehran = 0xd1f02254; // Asia/Tehran
    -
    432 const uint32_t kZoneIdAsia_Thimphu = 0x170380d1; // Asia/Thimphu
    -
    433 const uint32_t kZoneIdAsia_Tokyo = 0x15e606a8; // Asia/Tokyo
    -
    434 const uint32_t kZoneIdAsia_Ulaanbaatar = 0x30f0cc4e; // Asia/Ulaanbaatar
    -
    435 const uint32_t kZoneIdAsia_Urumqi = 0xd5379735; // Asia/Urumqi
    -
    436 const uint32_t kZoneIdAsia_Yangon = 0xdd54a8be; // Asia/Yangon
    -
    437 const uint32_t kZoneIdAsia_Yerevan = 0x9185c8cc; // Asia/Yerevan
    -
    438 const uint32_t kZoneIdAtlantic_Azores = 0xf93ed918; // Atlantic/Azores
    -
    439 const uint32_t kZoneIdAtlantic_Bermuda = 0x3d4bb1c4; // Atlantic/Bermuda
    -
    440 const uint32_t kZoneIdAtlantic_Canary = 0xfc23f2c2; // Atlantic/Canary
    -
    441 const uint32_t kZoneIdAtlantic_Cape_Verde = 0x5c5e1772; // Atlantic/Cape_Verde
    -
    442 const uint32_t kZoneIdAtlantic_Faroe = 0xe110a971; // Atlantic/Faroe
    -
    443 const uint32_t kZoneIdAtlantic_Madeira = 0x81b5c037; // Atlantic/Madeira
    -
    444 const uint32_t kZoneIdAtlantic_South_Georgia = 0x33013174; // Atlantic/South_Georgia
    -
    445 const uint32_t kZoneIdAustralia_Adelaide = 0x2428e8a3; // Australia/Adelaide
    -
    446 const uint32_t kZoneIdAustralia_Brisbane = 0x4fedc9c0; // Australia/Brisbane
    -
    447 const uint32_t kZoneIdAustralia_Broken_Hill = 0xb06eada3; // Australia/Broken_Hill
    -
    448 const uint32_t kZoneIdAustralia_Darwin = 0x2876bdff; // Australia/Darwin
    -
    449 const uint32_t kZoneIdAustralia_Eucla = 0x8cf99e44; // Australia/Eucla
    -
    450 const uint32_t kZoneIdAustralia_Hobart = 0x32bf951a; // Australia/Hobart
    -
    451 const uint32_t kZoneIdAustralia_Lindeman = 0xe05029e2; // Australia/Lindeman
    -
    452 const uint32_t kZoneIdAustralia_Lord_Howe = 0xa748b67d; // Australia/Lord_Howe
    -
    453 const uint32_t kZoneIdAustralia_Melbourne = 0x0fe559a3; // Australia/Melbourne
    -
    454 const uint32_t kZoneIdAustralia_Perth = 0x8db8269d; // Australia/Perth
    -
    455 const uint32_t kZoneIdAustralia_Sydney = 0x4d1e9776; // Australia/Sydney
    -
    456 const uint32_t kZoneIdEtc_GMT = 0xd8e2de58; // Etc/GMT
    -
    457 const uint32_t kZoneIdEtc_GMT_PLUS_1 = 0x9d13da14; // Etc/GMT+1
    -
    458 const uint32_t kZoneIdEtc_GMT_PLUS_10 = 0x3f8f1cc4; // Etc/GMT+10
    -
    459 const uint32_t kZoneIdEtc_GMT_PLUS_11 = 0x3f8f1cc5; // Etc/GMT+11
    -
    460 const uint32_t kZoneIdEtc_GMT_PLUS_12 = 0x3f8f1cc6; // Etc/GMT+12
    -
    461 const uint32_t kZoneIdEtc_GMT_PLUS_2 = 0x9d13da15; // Etc/GMT+2
    -
    462 const uint32_t kZoneIdEtc_GMT_PLUS_3 = 0x9d13da16; // Etc/GMT+3
    -
    463 const uint32_t kZoneIdEtc_GMT_PLUS_4 = 0x9d13da17; // Etc/GMT+4
    -
    464 const uint32_t kZoneIdEtc_GMT_PLUS_5 = 0x9d13da18; // Etc/GMT+5
    -
    465 const uint32_t kZoneIdEtc_GMT_PLUS_6 = 0x9d13da19; // Etc/GMT+6
    -
    466 const uint32_t kZoneIdEtc_GMT_PLUS_7 = 0x9d13da1a; // Etc/GMT+7
    -
    467 const uint32_t kZoneIdEtc_GMT_PLUS_8 = 0x9d13da1b; // Etc/GMT+8
    -
    468 const uint32_t kZoneIdEtc_GMT_PLUS_9 = 0x9d13da1c; // Etc/GMT+9
    -
    469 const uint32_t kZoneIdEtc_GMT_1 = 0x9d13da56; // Etc/GMT-1
    -
    470 const uint32_t kZoneIdEtc_GMT_10 = 0x3f8f2546; // Etc/GMT-10
    -
    471 const uint32_t kZoneIdEtc_GMT_11 = 0x3f8f2547; // Etc/GMT-11
    -
    472 const uint32_t kZoneIdEtc_GMT_12 = 0x3f8f2548; // Etc/GMT-12
    -
    473 const uint32_t kZoneIdEtc_GMT_13 = 0x3f8f2549; // Etc/GMT-13
    -
    474 const uint32_t kZoneIdEtc_GMT_14 = 0x3f8f254a; // Etc/GMT-14
    -
    475 const uint32_t kZoneIdEtc_GMT_2 = 0x9d13da57; // Etc/GMT-2
    -
    476 const uint32_t kZoneIdEtc_GMT_3 = 0x9d13da58; // Etc/GMT-3
    -
    477 const uint32_t kZoneIdEtc_GMT_4 = 0x9d13da59; // Etc/GMT-4
    -
    478 const uint32_t kZoneIdEtc_GMT_5 = 0x9d13da5a; // Etc/GMT-5
    -
    479 const uint32_t kZoneIdEtc_GMT_6 = 0x9d13da5b; // Etc/GMT-6
    -
    480 const uint32_t kZoneIdEtc_GMT_7 = 0x9d13da5c; // Etc/GMT-7
    -
    481 const uint32_t kZoneIdEtc_GMT_8 = 0x9d13da5d; // Etc/GMT-8
    -
    482 const uint32_t kZoneIdEtc_GMT_9 = 0x9d13da5e; // Etc/GMT-9
    -
    483 const uint32_t kZoneIdEtc_UTC = 0xd8e31abc; // Etc/UTC
    -
    484 const uint32_t kZoneIdEurope_Andorra = 0x97f6764b; // Europe/Andorra
    -
    485 const uint32_t kZoneIdEurope_Athens = 0x4318fa27; // Europe/Athens
    -
    486 const uint32_t kZoneIdEurope_Belgrade = 0xe0532b3a; // Europe/Belgrade
    -
    487 const uint32_t kZoneIdEurope_Berlin = 0x44644c20; // Europe/Berlin
    -
    488 const uint32_t kZoneIdEurope_Brussels = 0xdee07337; // Europe/Brussels
    -
    489 const uint32_t kZoneIdEurope_Bucharest = 0xfb349ec5; // Europe/Bucharest
    -
    490 const uint32_t kZoneIdEurope_Budapest = 0x9ce0197c; // Europe/Budapest
    -
    491 const uint32_t kZoneIdEurope_Chisinau = 0xad58aa18; // Europe/Chisinau
    -
    492 const uint32_t kZoneIdEurope_Dublin = 0x4a275f62; // Europe/Dublin
    -
    493 const uint32_t kZoneIdEurope_Gibraltar = 0xf8e325fc; // Europe/Gibraltar
    -
    494 const uint32_t kZoneIdEurope_Helsinki = 0x6ab2975b; // Europe/Helsinki
    -
    495 const uint32_t kZoneIdEurope_Kyiv = 0xa2c1e347; // Europe/Kyiv
    -
    496 const uint32_t kZoneIdEurope_Lisbon = 0x5c00a70b; // Europe/Lisbon
    -
    497 const uint32_t kZoneIdEurope_London = 0x5c6a84ae; // Europe/London
    -
    498 const uint32_t kZoneIdEurope_Madrid = 0x5dbd1535; // Europe/Madrid
    -
    499 const uint32_t kZoneIdEurope_Malta = 0xfb1560f3; // Europe/Malta
    -
    500 const uint32_t kZoneIdEurope_Paris = 0xfb4bc2a3; // Europe/Paris
    -
    501 const uint32_t kZoneIdEurope_Prague = 0x65ee5d48; // Europe/Prague
    -
    502 const uint32_t kZoneIdEurope_Rome = 0xa2c58fd7; // Europe/Rome
    -
    503 const uint32_t kZoneIdEurope_Sofia = 0xfb898656; // Europe/Sofia
    -
    504 const uint32_t kZoneIdEurope_Tirane = 0x6ea95b47; // Europe/Tirane
    -
    505 const uint32_t kZoneIdEurope_Vienna = 0x734cc2e5; // Europe/Vienna
    -
    506 const uint32_t kZoneIdEurope_Warsaw = 0x75185c19; // Europe/Warsaw
    -
    507 const uint32_t kZoneIdEurope_Zurich = 0x7d8195b9; // Europe/Zurich
    -
    508 const uint32_t kZoneIdIndian_Chagos = 0x456f7c3c; // Indian/Chagos
    -
    509 const uint32_t kZoneIdIndian_Maldives = 0x9869681c; // Indian/Maldives
    -
    510 const uint32_t kZoneIdIndian_Mauritius = 0x7b09c02a; // Indian/Mauritius
    -
    511 const uint32_t kZoneIdPacific_Auckland = 0x25062f86; // Pacific/Auckland
    -
    512 const uint32_t kZoneIdPacific_Chatham = 0x2f0de999; // Pacific/Chatham
    -
    513 const uint32_t kZoneIdPacific_Easter = 0xcf54f7e7; // Pacific/Easter
    -
    514 const uint32_t kZoneIdPacific_Efate = 0x8a2bce28; // Pacific/Efate
    -
    515 const uint32_t kZoneIdPacific_Fiji = 0x23383ba5; // Pacific/Fiji
    -
    516 const uint32_t kZoneIdPacific_Galapagos = 0xa952f752; // Pacific/Galapagos
    -
    517 const uint32_t kZoneIdPacific_Gambier = 0x53720c3a; // Pacific/Gambier
    -
    518 const uint32_t kZoneIdPacific_Guadalcanal = 0xf4dd25f0; // Pacific/Guadalcanal
    -
    519 const uint32_t kZoneIdPacific_Honolulu = 0xe6e70af9; // Pacific/Honolulu
    -
    520 const uint32_t kZoneIdPacific_Kanton = 0xdd512f0e; // Pacific/Kanton
    -
    521 const uint32_t kZoneIdPacific_Kiritimati = 0x8305073a; // Pacific/Kiritimati
    -
    522 const uint32_t kZoneIdPacific_Kosrae = 0xde5139a8; // Pacific/Kosrae
    -
    523 const uint32_t kZoneIdPacific_Kwajalein = 0x8e216759; // Pacific/Kwajalein
    -
    524 const uint32_t kZoneIdPacific_Marquesas = 0x57ca7135; // Pacific/Marquesas
    -
    525 const uint32_t kZoneIdPacific_Nauru = 0x8acc41ae; // Pacific/Nauru
    -
    526 const uint32_t kZoneIdPacific_Niue = 0x233ca014; // Pacific/Niue
    -
    527 const uint32_t kZoneIdPacific_Noumea = 0xe551b788; // Pacific/Noumea
    -
    528 const uint32_t kZoneIdPacific_Pago_Pago = 0x603aebd0; // Pacific/Pago_Pago
    -
    529 const uint32_t kZoneIdPacific_Palau = 0x8af04a36; // Pacific/Palau
    -
    530 const uint32_t kZoneIdPacific_Pitcairn = 0x8837d8bd; // Pacific/Pitcairn
    -
    531 const uint32_t kZoneIdPacific_Port_Moresby = 0xa7ba7f68; // Pacific/Port_Moresby
    -
    532 const uint32_t kZoneIdPacific_Rarotonga = 0x9981a3b0; // Pacific/Rarotonga
    -
    533 const uint32_t kZoneIdPacific_Tahiti = 0xf24c2446; // Pacific/Tahiti
    -
    534 const uint32_t kZoneIdPacific_Tarawa = 0xf2517e63; // Pacific/Tarawa
    -
    535 const uint32_t kZoneIdPacific_Tongatapu = 0x262ca836; // Pacific/Tongatapu
    -
    536 
    -
    537 
    -
    538 //---------------------------------------------------------------------------
    -
    539 // Supported links: 231
    -
    540 //---------------------------------------------------------------------------
    -
    541 
    -
    542 extern const basic::Info::ZoneInfo kZoneAfrica_Accra; // Africa/Accra -> Africa/Abidjan
    -
    543 extern const basic::Info::ZoneInfo kZoneAfrica_Addis_Ababa; // Africa/Addis_Ababa -> Africa/Nairobi
    -
    544 extern const basic::Info::ZoneInfo kZoneAfrica_Asmara; // Africa/Asmara -> Africa/Nairobi
    -
    545 extern const basic::Info::ZoneInfo kZoneAfrica_Asmera; // Africa/Asmera -> Africa/Nairobi
    -
    546 extern const basic::Info::ZoneInfo kZoneAfrica_Bamako; // Africa/Bamako -> Africa/Abidjan
    -
    547 extern const basic::Info::ZoneInfo kZoneAfrica_Bangui; // Africa/Bangui -> Africa/Lagos
    -
    548 extern const basic::Info::ZoneInfo kZoneAfrica_Banjul; // Africa/Banjul -> Africa/Abidjan
    -
    549 extern const basic::Info::ZoneInfo kZoneAfrica_Blantyre; // Africa/Blantyre -> Africa/Maputo
    -
    550 extern const basic::Info::ZoneInfo kZoneAfrica_Brazzaville; // Africa/Brazzaville -> Africa/Lagos
    -
    551 extern const basic::Info::ZoneInfo kZoneAfrica_Bujumbura; // Africa/Bujumbura -> Africa/Maputo
    -
    552 extern const basic::Info::ZoneInfo kZoneAfrica_Conakry; // Africa/Conakry -> Africa/Abidjan
    -
    553 extern const basic::Info::ZoneInfo kZoneAfrica_Dakar; // Africa/Dakar -> Africa/Abidjan
    -
    554 extern const basic::Info::ZoneInfo kZoneAfrica_Dar_es_Salaam; // Africa/Dar_es_Salaam -> Africa/Nairobi
    -
    555 extern const basic::Info::ZoneInfo kZoneAfrica_Djibouti; // Africa/Djibouti -> Africa/Nairobi
    -
    556 extern const basic::Info::ZoneInfo kZoneAfrica_Douala; // Africa/Douala -> Africa/Lagos
    -
    557 extern const basic::Info::ZoneInfo kZoneAfrica_Freetown; // Africa/Freetown -> Africa/Abidjan
    -
    558 extern const basic::Info::ZoneInfo kZoneAfrica_Gaborone; // Africa/Gaborone -> Africa/Maputo
    -
    559 extern const basic::Info::ZoneInfo kZoneAfrica_Harare; // Africa/Harare -> Africa/Maputo
    -
    560 extern const basic::Info::ZoneInfo kZoneAfrica_Kampala; // Africa/Kampala -> Africa/Nairobi
    -
    561 extern const basic::Info::ZoneInfo kZoneAfrica_Kigali; // Africa/Kigali -> Africa/Maputo
    -
    562 extern const basic::Info::ZoneInfo kZoneAfrica_Kinshasa; // Africa/Kinshasa -> Africa/Lagos
    -
    563 extern const basic::Info::ZoneInfo kZoneAfrica_Libreville; // Africa/Libreville -> Africa/Lagos
    -
    564 extern const basic::Info::ZoneInfo kZoneAfrica_Lome; // Africa/Lome -> Africa/Abidjan
    -
    565 extern const basic::Info::ZoneInfo kZoneAfrica_Luanda; // Africa/Luanda -> Africa/Lagos
    -
    566 extern const basic::Info::ZoneInfo kZoneAfrica_Lubumbashi; // Africa/Lubumbashi -> Africa/Maputo
    -
    567 extern const basic::Info::ZoneInfo kZoneAfrica_Lusaka; // Africa/Lusaka -> Africa/Maputo
    -
    568 extern const basic::Info::ZoneInfo kZoneAfrica_Malabo; // Africa/Malabo -> Africa/Lagos
    -
    569 extern const basic::Info::ZoneInfo kZoneAfrica_Maseru; // Africa/Maseru -> Africa/Johannesburg
    -
    570 extern const basic::Info::ZoneInfo kZoneAfrica_Mbabane; // Africa/Mbabane -> Africa/Johannesburg
    -
    571 extern const basic::Info::ZoneInfo kZoneAfrica_Mogadishu; // Africa/Mogadishu -> Africa/Nairobi
    -
    572 extern const basic::Info::ZoneInfo kZoneAfrica_Niamey; // Africa/Niamey -> Africa/Lagos
    -
    573 extern const basic::Info::ZoneInfo kZoneAfrica_Nouakchott; // Africa/Nouakchott -> Africa/Abidjan
    -
    574 extern const basic::Info::ZoneInfo kZoneAfrica_Ouagadougou; // Africa/Ouagadougou -> Africa/Abidjan
    -
    575 extern const basic::Info::ZoneInfo kZoneAfrica_Porto_Novo; // Africa/Porto-Novo -> Africa/Lagos
    -
    576 extern const basic::Info::ZoneInfo kZoneAfrica_Timbuktu; // Africa/Timbuktu -> Africa/Abidjan
    -
    577 extern const basic::Info::ZoneInfo kZoneAmerica_Anguilla; // America/Anguilla -> America/Puerto_Rico
    -
    578 extern const basic::Info::ZoneInfo kZoneAmerica_Antigua; // America/Antigua -> America/Puerto_Rico
    -
    579 extern const basic::Info::ZoneInfo kZoneAmerica_Aruba; // America/Aruba -> America/Puerto_Rico
    -
    580 extern const basic::Info::ZoneInfo kZoneAmerica_Atikokan; // America/Atikokan -> America/Panama
    -
    581 extern const basic::Info::ZoneInfo kZoneAmerica_Atka; // America/Atka -> America/Adak
    -
    582 extern const basic::Info::ZoneInfo kZoneAmerica_Blanc_Sablon; // America/Blanc-Sablon -> America/Puerto_Rico
    -
    583 extern const basic::Info::ZoneInfo kZoneAmerica_Cayman; // America/Cayman -> America/Panama
    -
    584 extern const basic::Info::ZoneInfo kZoneAmerica_Coral_Harbour; // America/Coral_Harbour -> America/Panama
    -
    585 extern const basic::Info::ZoneInfo kZoneAmerica_Creston; // America/Creston -> America/Phoenix
    -
    586 extern const basic::Info::ZoneInfo kZoneAmerica_Curacao; // America/Curacao -> America/Puerto_Rico
    -
    587 extern const basic::Info::ZoneInfo kZoneAmerica_Dominica; // America/Dominica -> America/Puerto_Rico
    -
    588 extern const basic::Info::ZoneInfo kZoneAmerica_Fort_Wayne; // America/Fort_Wayne -> America/Indiana/Indianapolis
    -
    589 extern const basic::Info::ZoneInfo kZoneAmerica_Grenada; // America/Grenada -> America/Puerto_Rico
    -
    590 extern const basic::Info::ZoneInfo kZoneAmerica_Guadeloupe; // America/Guadeloupe -> America/Puerto_Rico
    -
    591 extern const basic::Info::ZoneInfo kZoneAmerica_Indianapolis; // America/Indianapolis -> America/Indiana/Indianapolis
    -
    592 extern const basic::Info::ZoneInfo kZoneAmerica_Kralendijk; // America/Kralendijk -> America/Puerto_Rico
    -
    593 extern const basic::Info::ZoneInfo kZoneAmerica_Louisville; // America/Louisville -> America/Kentucky/Louisville
    -
    594 extern const basic::Info::ZoneInfo kZoneAmerica_Lower_Princes; // America/Lower_Princes -> America/Puerto_Rico
    -
    595 extern const basic::Info::ZoneInfo kZoneAmerica_Marigot; // America/Marigot -> America/Puerto_Rico
    -
    596 extern const basic::Info::ZoneInfo kZoneAmerica_Montreal; // America/Montreal -> America/Toronto
    -
    597 extern const basic::Info::ZoneInfo kZoneAmerica_Montserrat; // America/Montserrat -> America/Puerto_Rico
    -
    598 extern const basic::Info::ZoneInfo kZoneAmerica_Nassau; // America/Nassau -> America/Toronto
    -
    599 extern const basic::Info::ZoneInfo kZoneAmerica_Nipigon; // America/Nipigon -> America/Toronto
    -
    600 extern const basic::Info::ZoneInfo kZoneAmerica_Port_of_Spain; // America/Port_of_Spain -> America/Puerto_Rico
    -
    601 extern const basic::Info::ZoneInfo kZoneAmerica_Rainy_River; // America/Rainy_River -> America/Winnipeg
    -
    602 extern const basic::Info::ZoneInfo kZoneAmerica_Shiprock; // America/Shiprock -> America/Denver
    -
    603 extern const basic::Info::ZoneInfo kZoneAmerica_St_Barthelemy; // America/St_Barthelemy -> America/Puerto_Rico
    -
    604 extern const basic::Info::ZoneInfo kZoneAmerica_St_Kitts; // America/St_Kitts -> America/Puerto_Rico
    -
    605 extern const basic::Info::ZoneInfo kZoneAmerica_St_Lucia; // America/St_Lucia -> America/Puerto_Rico
    -
    606 extern const basic::Info::ZoneInfo kZoneAmerica_St_Thomas; // America/St_Thomas -> America/Puerto_Rico
    -
    607 extern const basic::Info::ZoneInfo kZoneAmerica_St_Vincent; // America/St_Vincent -> America/Puerto_Rico
    -
    608 extern const basic::Info::ZoneInfo kZoneAmerica_Thunder_Bay; // America/Thunder_Bay -> America/Toronto
    -
    609 extern const basic::Info::ZoneInfo kZoneAmerica_Tortola; // America/Tortola -> America/Puerto_Rico
    -
    610 extern const basic::Info::ZoneInfo kZoneAmerica_Virgin; // America/Virgin -> America/Puerto_Rico
    -
    611 extern const basic::Info::ZoneInfo kZoneAmerica_Yellowknife; // America/Yellowknife -> America/Edmonton
    -
    612 extern const basic::Info::ZoneInfo kZoneAntarctica_DumontDUrville; // Antarctica/DumontDUrville -> Pacific/Port_Moresby
    -
    613 extern const basic::Info::ZoneInfo kZoneAntarctica_McMurdo; // Antarctica/McMurdo -> Pacific/Auckland
    -
    614 extern const basic::Info::ZoneInfo kZoneAntarctica_South_Pole; // Antarctica/South_Pole -> Pacific/Auckland
    -
    615 extern const basic::Info::ZoneInfo kZoneAntarctica_Syowa; // Antarctica/Syowa -> Asia/Riyadh
    -
    616 extern const basic::Info::ZoneInfo kZoneArctic_Longyearbyen; // Arctic/Longyearbyen -> Europe/Berlin
    -
    617 extern const basic::Info::ZoneInfo kZoneAsia_Aden; // Asia/Aden -> Asia/Riyadh
    -
    618 extern const basic::Info::ZoneInfo kZoneAsia_Ashkhabad; // Asia/Ashkhabad -> Asia/Ashgabat
    -
    619 extern const basic::Info::ZoneInfo kZoneAsia_Bahrain; // Asia/Bahrain -> Asia/Qatar
    -
    620 extern const basic::Info::ZoneInfo kZoneAsia_Brunei; // Asia/Brunei -> Asia/Kuching
    -
    621 extern const basic::Info::ZoneInfo kZoneAsia_Calcutta; // Asia/Calcutta -> Asia/Kolkata
    -
    622 extern const basic::Info::ZoneInfo kZoneAsia_Choibalsan; // Asia/Choibalsan -> Asia/Ulaanbaatar
    -
    623 extern const basic::Info::ZoneInfo kZoneAsia_Chongqing; // Asia/Chongqing -> Asia/Shanghai
    -
    624 extern const basic::Info::ZoneInfo kZoneAsia_Chungking; // Asia/Chungking -> Asia/Shanghai
    -
    625 extern const basic::Info::ZoneInfo kZoneAsia_Dacca; // Asia/Dacca -> Asia/Dhaka
    -
    626 extern const basic::Info::ZoneInfo kZoneAsia_Harbin; // Asia/Harbin -> Asia/Shanghai
    -
    627 extern const basic::Info::ZoneInfo kZoneAsia_Kashgar; // Asia/Kashgar -> Asia/Urumqi
    -
    628 extern const basic::Info::ZoneInfo kZoneAsia_Katmandu; // Asia/Katmandu -> Asia/Kathmandu
    -
    629 extern const basic::Info::ZoneInfo kZoneAsia_Kuala_Lumpur; // Asia/Kuala_Lumpur -> Asia/Singapore
    -
    630 extern const basic::Info::ZoneInfo kZoneAsia_Kuwait; // Asia/Kuwait -> Asia/Riyadh
    -
    631 extern const basic::Info::ZoneInfo kZoneAsia_Macao; // Asia/Macao -> Asia/Macau
    -
    632 extern const basic::Info::ZoneInfo kZoneAsia_Muscat; // Asia/Muscat -> Asia/Dubai
    -
    633 extern const basic::Info::ZoneInfo kZoneAsia_Phnom_Penh; // Asia/Phnom_Penh -> Asia/Bangkok
    -
    634 extern const basic::Info::ZoneInfo kZoneAsia_Rangoon; // Asia/Rangoon -> Asia/Yangon
    -
    635 extern const basic::Info::ZoneInfo kZoneAsia_Saigon; // Asia/Saigon -> Asia/Ho_Chi_Minh
    -
    636 extern const basic::Info::ZoneInfo kZoneAsia_Tel_Aviv; // Asia/Tel_Aviv -> Asia/Jerusalem
    -
    637 extern const basic::Info::ZoneInfo kZoneAsia_Thimbu; // Asia/Thimbu -> Asia/Thimphu
    -
    638 extern const basic::Info::ZoneInfo kZoneAsia_Ujung_Pandang; // Asia/Ujung_Pandang -> Asia/Makassar
    -
    639 extern const basic::Info::ZoneInfo kZoneAsia_Ulan_Bator; // Asia/Ulan_Bator -> Asia/Ulaanbaatar
    -
    640 extern const basic::Info::ZoneInfo kZoneAsia_Vientiane; // Asia/Vientiane -> Asia/Bangkok
    -
    641 extern const basic::Info::ZoneInfo kZoneAtlantic_Faeroe; // Atlantic/Faeroe -> Atlantic/Faroe
    -
    642 extern const basic::Info::ZoneInfo kZoneAtlantic_Jan_Mayen; // Atlantic/Jan_Mayen -> Europe/Berlin
    -
    643 extern const basic::Info::ZoneInfo kZoneAtlantic_Reykjavik; // Atlantic/Reykjavik -> Africa/Abidjan
    -
    644 extern const basic::Info::ZoneInfo kZoneAtlantic_St_Helena; // Atlantic/St_Helena -> Africa/Abidjan
    -
    645 extern const basic::Info::ZoneInfo kZoneAustralia_ACT; // Australia/ACT -> Australia/Sydney
    -
    646 extern const basic::Info::ZoneInfo kZoneAustralia_Canberra; // Australia/Canberra -> Australia/Sydney
    -
    647 extern const basic::Info::ZoneInfo kZoneAustralia_Currie; // Australia/Currie -> Australia/Hobart
    -
    648 extern const basic::Info::ZoneInfo kZoneAustralia_LHI; // Australia/LHI -> Australia/Lord_Howe
    -
    649 extern const basic::Info::ZoneInfo kZoneAustralia_NSW; // Australia/NSW -> Australia/Sydney
    -
    650 extern const basic::Info::ZoneInfo kZoneAustralia_North; // Australia/North -> Australia/Darwin
    -
    651 extern const basic::Info::ZoneInfo kZoneAustralia_Queensland; // Australia/Queensland -> Australia/Brisbane
    -
    652 extern const basic::Info::ZoneInfo kZoneAustralia_South; // Australia/South -> Australia/Adelaide
    -
    653 extern const basic::Info::ZoneInfo kZoneAustralia_Tasmania; // Australia/Tasmania -> Australia/Hobart
    -
    654 extern const basic::Info::ZoneInfo kZoneAustralia_Victoria; // Australia/Victoria -> Australia/Melbourne
    -
    655 extern const basic::Info::ZoneInfo kZoneAustralia_West; // Australia/West -> Australia/Perth
    -
    656 extern const basic::Info::ZoneInfo kZoneAustralia_Yancowinna; // Australia/Yancowinna -> Australia/Broken_Hill
    -
    657 extern const basic::Info::ZoneInfo kZoneBrazil_East; // Brazil/East -> America/Sao_Paulo
    -
    658 extern const basic::Info::ZoneInfo kZoneBrazil_West; // Brazil/West -> America/Manaus
    -
    659 extern const basic::Info::ZoneInfo kZoneCET; // CET -> Europe/Brussels
    -
    660 extern const basic::Info::ZoneInfo kZoneCST6CDT; // CST6CDT -> America/Chicago
    -
    661 extern const basic::Info::ZoneInfo kZoneCanada_Atlantic; // Canada/Atlantic -> America/Halifax
    -
    662 extern const basic::Info::ZoneInfo kZoneCanada_Central; // Canada/Central -> America/Winnipeg
    -
    663 extern const basic::Info::ZoneInfo kZoneCanada_Eastern; // Canada/Eastern -> America/Toronto
    -
    664 extern const basic::Info::ZoneInfo kZoneCanada_Mountain; // Canada/Mountain -> America/Edmonton
    -
    665 extern const basic::Info::ZoneInfo kZoneCanada_Pacific; // Canada/Pacific -> America/Vancouver
    -
    666 extern const basic::Info::ZoneInfo kZoneCanada_Saskatchewan; // Canada/Saskatchewan -> America/Regina
    -
    667 extern const basic::Info::ZoneInfo kZoneChile_Continental; // Chile/Continental -> America/Santiago
    -
    668 extern const basic::Info::ZoneInfo kZoneChile_EasterIsland; // Chile/EasterIsland -> Pacific/Easter
    -
    669 extern const basic::Info::ZoneInfo kZoneCuba; // Cuba -> America/Havana
    -
    670 extern const basic::Info::ZoneInfo kZoneEET; // EET -> Europe/Athens
    -
    671 extern const basic::Info::ZoneInfo kZoneEST; // EST -> America/Panama
    -
    672 extern const basic::Info::ZoneInfo kZoneEST5EDT; // EST5EDT -> America/New_York
    -
    673 extern const basic::Info::ZoneInfo kZoneEire; // Eire -> Europe/Dublin
    -
    674 extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_0; // Etc/GMT+0 -> Etc/GMT
    -
    675 extern const basic::Info::ZoneInfo kZoneEtc_GMT_0; // Etc/GMT-0 -> Etc/GMT
    -
    676 extern const basic::Info::ZoneInfo kZoneEtc_GMT0; // Etc/GMT0 -> Etc/GMT
    -
    677 extern const basic::Info::ZoneInfo kZoneEtc_Greenwich; // Etc/Greenwich -> Etc/GMT
    -
    678 extern const basic::Info::ZoneInfo kZoneEtc_UCT; // Etc/UCT -> Etc/UTC
    -
    679 extern const basic::Info::ZoneInfo kZoneEtc_Universal; // Etc/Universal -> Etc/UTC
    -
    680 extern const basic::Info::ZoneInfo kZoneEtc_Zulu; // Etc/Zulu -> Etc/UTC
    -
    681 extern const basic::Info::ZoneInfo kZoneEurope_Amsterdam; // Europe/Amsterdam -> Europe/Brussels
    -
    682 extern const basic::Info::ZoneInfo kZoneEurope_Belfast; // Europe/Belfast -> Europe/London
    -
    683 extern const basic::Info::ZoneInfo kZoneEurope_Bratislava; // Europe/Bratislava -> Europe/Prague
    -
    684 extern const basic::Info::ZoneInfo kZoneEurope_Busingen; // Europe/Busingen -> Europe/Zurich
    -
    685 extern const basic::Info::ZoneInfo kZoneEurope_Copenhagen; // Europe/Copenhagen -> Europe/Berlin
    -
    686 extern const basic::Info::ZoneInfo kZoneEurope_Guernsey; // Europe/Guernsey -> Europe/London
    -
    687 extern const basic::Info::ZoneInfo kZoneEurope_Isle_of_Man; // Europe/Isle_of_Man -> Europe/London
    -
    688 extern const basic::Info::ZoneInfo kZoneEurope_Jersey; // Europe/Jersey -> Europe/London
    -
    689 extern const basic::Info::ZoneInfo kZoneEurope_Kiev; // Europe/Kiev -> Europe/Kyiv
    -
    690 extern const basic::Info::ZoneInfo kZoneEurope_Ljubljana; // Europe/Ljubljana -> Europe/Belgrade
    -
    691 extern const basic::Info::ZoneInfo kZoneEurope_Luxembourg; // Europe/Luxembourg -> Europe/Brussels
    -
    692 extern const basic::Info::ZoneInfo kZoneEurope_Mariehamn; // Europe/Mariehamn -> Europe/Helsinki
    -
    693 extern const basic::Info::ZoneInfo kZoneEurope_Monaco; // Europe/Monaco -> Europe/Paris
    -
    694 extern const basic::Info::ZoneInfo kZoneEurope_Nicosia; // Europe/Nicosia -> Asia/Nicosia
    -
    695 extern const basic::Info::ZoneInfo kZoneEurope_Oslo; // Europe/Oslo -> Europe/Berlin
    -
    696 extern const basic::Info::ZoneInfo kZoneEurope_Podgorica; // Europe/Podgorica -> Europe/Belgrade
    -
    697 extern const basic::Info::ZoneInfo kZoneEurope_San_Marino; // Europe/San_Marino -> Europe/Rome
    -
    698 extern const basic::Info::ZoneInfo kZoneEurope_Sarajevo; // Europe/Sarajevo -> Europe/Belgrade
    -
    699 extern const basic::Info::ZoneInfo kZoneEurope_Skopje; // Europe/Skopje -> Europe/Belgrade
    -
    700 extern const basic::Info::ZoneInfo kZoneEurope_Stockholm; // Europe/Stockholm -> Europe/Berlin
    -
    701 extern const basic::Info::ZoneInfo kZoneEurope_Tiraspol; // Europe/Tiraspol -> Europe/Chisinau
    -
    702 extern const basic::Info::ZoneInfo kZoneEurope_Uzhgorod; // Europe/Uzhgorod -> Europe/Kyiv
    -
    703 extern const basic::Info::ZoneInfo kZoneEurope_Vaduz; // Europe/Vaduz -> Europe/Zurich
    -
    704 extern const basic::Info::ZoneInfo kZoneEurope_Vatican; // Europe/Vatican -> Europe/Rome
    -
    705 extern const basic::Info::ZoneInfo kZoneEurope_Zagreb; // Europe/Zagreb -> Europe/Belgrade
    -
    706 extern const basic::Info::ZoneInfo kZoneEurope_Zaporozhye; // Europe/Zaporozhye -> Europe/Kyiv
    -
    707 extern const basic::Info::ZoneInfo kZoneGB; // GB -> Europe/London
    -
    708 extern const basic::Info::ZoneInfo kZoneGB_Eire; // GB-Eire -> Europe/London
    -
    709 extern const basic::Info::ZoneInfo kZoneGMT; // GMT -> Etc/GMT
    -
    710 extern const basic::Info::ZoneInfo kZoneGMT_PLUS_0; // GMT+0 -> Etc/GMT
    -
    711 extern const basic::Info::ZoneInfo kZoneGMT_0; // GMT-0 -> Etc/GMT
    -
    712 extern const basic::Info::ZoneInfo kZoneGMT0; // GMT0 -> Etc/GMT
    -
    713 extern const basic::Info::ZoneInfo kZoneGreenwich; // Greenwich -> Etc/GMT
    -
    714 extern const basic::Info::ZoneInfo kZoneHST; // HST -> Pacific/Honolulu
    -
    715 extern const basic::Info::ZoneInfo kZoneHongkong; // Hongkong -> Asia/Hong_Kong
    -
    716 extern const basic::Info::ZoneInfo kZoneIceland; // Iceland -> Africa/Abidjan
    -
    717 extern const basic::Info::ZoneInfo kZoneIndian_Antananarivo; // Indian/Antananarivo -> Africa/Nairobi
    -
    718 extern const basic::Info::ZoneInfo kZoneIndian_Christmas; // Indian/Christmas -> Asia/Bangkok
    -
    719 extern const basic::Info::ZoneInfo kZoneIndian_Cocos; // Indian/Cocos -> Asia/Yangon
    -
    720 extern const basic::Info::ZoneInfo kZoneIndian_Comoro; // Indian/Comoro -> Africa/Nairobi
    -
    721 extern const basic::Info::ZoneInfo kZoneIndian_Kerguelen; // Indian/Kerguelen -> Indian/Maldives
    -
    722 extern const basic::Info::ZoneInfo kZoneIndian_Mahe; // Indian/Mahe -> Asia/Dubai
    -
    723 extern const basic::Info::ZoneInfo kZoneIndian_Mayotte; // Indian/Mayotte -> Africa/Nairobi
    -
    724 extern const basic::Info::ZoneInfo kZoneIndian_Reunion; // Indian/Reunion -> Asia/Dubai
    -
    725 extern const basic::Info::ZoneInfo kZoneIran; // Iran -> Asia/Tehran
    -
    726 extern const basic::Info::ZoneInfo kZoneIsrael; // Israel -> Asia/Jerusalem
    -
    727 extern const basic::Info::ZoneInfo kZoneJamaica; // Jamaica -> America/Jamaica
    -
    728 extern const basic::Info::ZoneInfo kZoneJapan; // Japan -> Asia/Tokyo
    -
    729 extern const basic::Info::ZoneInfo kZoneKwajalein; // Kwajalein -> Pacific/Kwajalein
    -
    730 extern const basic::Info::ZoneInfo kZoneMET; // MET -> Europe/Brussels
    -
    731 extern const basic::Info::ZoneInfo kZoneMST; // MST -> America/Phoenix
    -
    732 extern const basic::Info::ZoneInfo kZoneMST7MDT; // MST7MDT -> America/Denver
    -
    733 extern const basic::Info::ZoneInfo kZoneMexico_BajaSur; // Mexico/BajaSur -> America/Mazatlan
    -
    734 extern const basic::Info::ZoneInfo kZoneNZ; // NZ -> Pacific/Auckland
    -
    735 extern const basic::Info::ZoneInfo kZoneNZ_CHAT; // NZ-CHAT -> Pacific/Chatham
    -
    736 extern const basic::Info::ZoneInfo kZoneNavajo; // Navajo -> America/Denver
    -
    737 extern const basic::Info::ZoneInfo kZonePRC; // PRC -> Asia/Shanghai
    -
    738 extern const basic::Info::ZoneInfo kZonePST8PDT; // PST8PDT -> America/Los_Angeles
    -
    739 extern const basic::Info::ZoneInfo kZonePacific_Chuuk; // Pacific/Chuuk -> Pacific/Port_Moresby
    -
    740 extern const basic::Info::ZoneInfo kZonePacific_Enderbury; // Pacific/Enderbury -> Pacific/Kanton
    -
    741 extern const basic::Info::ZoneInfo kZonePacific_Funafuti; // Pacific/Funafuti -> Pacific/Tarawa
    -
    742 extern const basic::Info::ZoneInfo kZonePacific_Johnston; // Pacific/Johnston -> Pacific/Honolulu
    -
    743 extern const basic::Info::ZoneInfo kZonePacific_Majuro; // Pacific/Majuro -> Pacific/Tarawa
    -
    744 extern const basic::Info::ZoneInfo kZonePacific_Midway; // Pacific/Midway -> Pacific/Pago_Pago
    -
    745 extern const basic::Info::ZoneInfo kZonePacific_Pohnpei; // Pacific/Pohnpei -> Pacific/Guadalcanal
    -
    746 extern const basic::Info::ZoneInfo kZonePacific_Ponape; // Pacific/Ponape -> Pacific/Guadalcanal
    -
    747 extern const basic::Info::ZoneInfo kZonePacific_Samoa; // Pacific/Samoa -> Pacific/Pago_Pago
    -
    748 extern const basic::Info::ZoneInfo kZonePacific_Truk; // Pacific/Truk -> Pacific/Port_Moresby
    -
    749 extern const basic::Info::ZoneInfo kZonePacific_Wake; // Pacific/Wake -> Pacific/Tarawa
    -
    750 extern const basic::Info::ZoneInfo kZonePacific_Wallis; // Pacific/Wallis -> Pacific/Tarawa
    -
    751 extern const basic::Info::ZoneInfo kZonePacific_Yap; // Pacific/Yap -> Pacific/Port_Moresby
    -
    752 extern const basic::Info::ZoneInfo kZonePoland; // Poland -> Europe/Warsaw
    -
    753 extern const basic::Info::ZoneInfo kZonePortugal; // Portugal -> Europe/Lisbon
    -
    754 extern const basic::Info::ZoneInfo kZoneROC; // ROC -> Asia/Taipei
    -
    755 extern const basic::Info::ZoneInfo kZoneROK; // ROK -> Asia/Seoul
    -
    756 extern const basic::Info::ZoneInfo kZoneSingapore; // Singapore -> Asia/Singapore
    -
    757 extern const basic::Info::ZoneInfo kZoneUCT; // UCT -> Etc/UTC
    -
    758 extern const basic::Info::ZoneInfo kZoneUS_Alaska; // US/Alaska -> America/Anchorage
    -
    759 extern const basic::Info::ZoneInfo kZoneUS_Aleutian; // US/Aleutian -> America/Adak
    -
    760 extern const basic::Info::ZoneInfo kZoneUS_Arizona; // US/Arizona -> America/Phoenix
    -
    761 extern const basic::Info::ZoneInfo kZoneUS_Central; // US/Central -> America/Chicago
    -
    762 extern const basic::Info::ZoneInfo kZoneUS_East_Indiana; // US/East-Indiana -> America/Indiana/Indianapolis
    -
    763 extern const basic::Info::ZoneInfo kZoneUS_Eastern; // US/Eastern -> America/New_York
    -
    764 extern const basic::Info::ZoneInfo kZoneUS_Hawaii; // US/Hawaii -> Pacific/Honolulu
    -
    765 extern const basic::Info::ZoneInfo kZoneUS_Michigan; // US/Michigan -> America/Detroit
    -
    766 extern const basic::Info::ZoneInfo kZoneUS_Mountain; // US/Mountain -> America/Denver
    -
    767 extern const basic::Info::ZoneInfo kZoneUS_Pacific; // US/Pacific -> America/Los_Angeles
    -
    768 extern const basic::Info::ZoneInfo kZoneUS_Samoa; // US/Samoa -> Pacific/Pago_Pago
    -
    769 extern const basic::Info::ZoneInfo kZoneUTC; // UTC -> Etc/UTC
    -
    770 extern const basic::Info::ZoneInfo kZoneUniversal; // Universal -> Etc/UTC
    -
    771 extern const basic::Info::ZoneInfo kZoneWET; // WET -> Europe/Lisbon
    -
    772 extern const basic::Info::ZoneInfo kZoneZulu; // Zulu -> Etc/UTC
    -
    773 
    -
    774 
    -
    775 // Zone Ids
    -
    776 
    -
    777 const uint32_t kZoneIdAfrica_Accra = 0x77d5b054; // Africa/Accra
    -
    778 const uint32_t kZoneIdAfrica_Addis_Ababa = 0x05ae1e65; // Africa/Addis_Ababa
    -
    779 const uint32_t kZoneIdAfrica_Asmara = 0x73b278ef; // Africa/Asmara
    -
    780 const uint32_t kZoneIdAfrica_Asmera = 0x73b289f3; // Africa/Asmera
    -
    781 const uint32_t kZoneIdAfrica_Bamako = 0x74c1e7a5; // Africa/Bamako
    -
    782 const uint32_t kZoneIdAfrica_Bangui = 0x74c28ed0; // Africa/Bangui
    -
    783 const uint32_t kZoneIdAfrica_Banjul = 0x74c29b96; // Africa/Banjul
    -
    784 const uint32_t kZoneIdAfrica_Blantyre = 0xe08d813b; // Africa/Blantyre
    -
    785 const uint32_t kZoneIdAfrica_Brazzaville = 0x39cda760; // Africa/Brazzaville
    -
    786 const uint32_t kZoneIdAfrica_Bujumbura = 0x05232a47; // Africa/Bujumbura
    -
    787 const uint32_t kZoneIdAfrica_Conakry = 0x7ab36b31; // Africa/Conakry
    -
    788 const uint32_t kZoneIdAfrica_Dakar = 0x780b00fd; // Africa/Dakar
    -
    789 const uint32_t kZoneIdAfrica_Dar_es_Salaam = 0xa04c47b6; // Africa/Dar_es_Salaam
    -
    790 const uint32_t kZoneIdAfrica_Djibouti = 0x30ea01d4; // Africa/Djibouti
    -
    791 const uint32_t kZoneIdAfrica_Douala = 0x7a6df310; // Africa/Douala
    -
    792 const uint32_t kZoneIdAfrica_Freetown = 0x6823dd64; // Africa/Freetown
    -
    793 const uint32_t kZoneIdAfrica_Gaborone = 0x317c0aa7; // Africa/Gaborone
    -
    794 const uint32_t kZoneIdAfrica_Harare = 0x82c39a2d; // Africa/Harare
    -
    795 const uint32_t kZoneIdAfrica_Kampala = 0xc1d30e31; // Africa/Kampala
    -
    796 const uint32_t kZoneIdAfrica_Kigali = 0x8a4dcf2b; // Africa/Kigali
    -
    797 const uint32_t kZoneIdAfrica_Kinshasa = 0x6695d70c; // Africa/Kinshasa
    -
    798 const uint32_t kZoneIdAfrica_Libreville = 0x01d96de4; // Africa/Libreville
    -
    799 const uint32_t kZoneIdAfrica_Lome = 0xd51c3a07; // Africa/Lome
    -
    800 const uint32_t kZoneIdAfrica_Luanda = 0x8d7909cf; // Africa/Luanda
    -
    801 const uint32_t kZoneIdAfrica_Lubumbashi = 0x6fd88566; // Africa/Lubumbashi
    -
    802 const uint32_t kZoneIdAfrica_Lusaka = 0x8d82b23b; // Africa/Lusaka
    -
    803 const uint32_t kZoneIdAfrica_Malabo = 0x8e6a1906; // Africa/Malabo
    -
    804 const uint32_t kZoneIdAfrica_Maseru = 0x8e6e02c7; // Africa/Maseru
    -
    805 const uint32_t kZoneIdAfrica_Mbabane = 0x5d3bdd40; // Africa/Mbabane
    -
    806 const uint32_t kZoneIdAfrica_Mogadishu = 0x66bc159b; // Africa/Mogadishu
    -
    807 const uint32_t kZoneIdAfrica_Niamey = 0x914a30fd; // Africa/Niamey
    -
    808 const uint32_t kZoneIdAfrica_Nouakchott = 0x3dc49dba; // Africa/Nouakchott
    -
    809 const uint32_t kZoneIdAfrica_Ouagadougou = 0x04d7219a; // Africa/Ouagadougou
    -
    810 const uint32_t kZoneIdAfrica_Porto_Novo = 0x3d1bf95d; // Africa/Porto-Novo
    -
    811 const uint32_t kZoneIdAfrica_Timbuktu = 0xb164d56f; // Africa/Timbuktu
    -
    812 const uint32_t kZoneIdAmerica_Anguilla = 0xafe31333; // America/Anguilla
    -
    813 const uint32_t kZoneIdAmerica_Antigua = 0xc067a32f; // America/Antigua
    -
    814 const uint32_t kZoneIdAmerica_Aruba = 0x97cf8651; // America/Aruba
    -
    815 const uint32_t kZoneIdAmerica_Atikokan = 0x81b92098; // America/Atikokan
    -
    816 const uint32_t kZoneIdAmerica_Atka = 0x97fe8f27; // America/Atka
    -
    817 const uint32_t kZoneIdAmerica_Blanc_Sablon = 0x6e299892; // America/Blanc-Sablon
    -
    818 const uint32_t kZoneIdAmerica_Cayman = 0x953961df; // America/Cayman
    -
    819 const uint32_t kZoneIdAmerica_Coral_Harbour = 0xabcb7569; // America/Coral_Harbour
    -
    820 const uint32_t kZoneIdAmerica_Creston = 0x62a70204; // America/Creston
    -
    821 const uint32_t kZoneIdAmerica_Curacao = 0x6a879184; // America/Curacao
    -
    822 const uint32_t kZoneIdAmerica_Dominica = 0xcecb4c4a; // America/Dominica
    -
    823 const uint32_t kZoneIdAmerica_Fort_Wayne = 0x7eaaaf24; // America/Fort_Wayne
    -
    824 const uint32_t kZoneIdAmerica_Grenada = 0x968ce4d8; // America/Grenada
    -
    825 const uint32_t kZoneIdAmerica_Guadeloupe = 0xcd1f8a31; // America/Guadeloupe
    -
    826 const uint32_t kZoneIdAmerica_Indianapolis = 0x6a009ae1; // America/Indianapolis
    -
    827 const uint32_t kZoneIdAmerica_Kralendijk = 0xe7c456c5; // America/Kralendijk
    -
    828 const uint32_t kZoneIdAmerica_Louisville = 0x3dcb47ee; // America/Louisville
    -
    829 const uint32_t kZoneIdAmerica_Lower_Princes = 0x6ae45b62; // America/Lower_Princes
    -
    830 const uint32_t kZoneIdAmerica_Marigot = 0x3dab3a59; // America/Marigot
    -
    831 const uint32_t kZoneIdAmerica_Montreal = 0x203a1ea8; // America/Montreal
    -
    832 const uint32_t kZoneIdAmerica_Montserrat = 0x199b0a35; // America/Montserrat
    -
    833 const uint32_t kZoneIdAmerica_Nassau = 0xaedef011; // America/Nassau
    -
    834 const uint32_t kZoneIdAmerica_Nipigon = 0x9d2a8b1a; // America/Nipigon
    -
    835 const uint32_t kZoneIdAmerica_Port_of_Spain = 0xd8b28d59; // America/Port_of_Spain
    -
    836 const uint32_t kZoneIdAmerica_Rainy_River = 0x9cd58a10; // America/Rainy_River
    -
    837 const uint32_t kZoneIdAmerica_Shiprock = 0x82fb7049; // America/Shiprock
    -
    838 const uint32_t kZoneIdAmerica_St_Barthelemy = 0x054e6a79; // America/St_Barthelemy
    -
    839 const uint32_t kZoneIdAmerica_St_Kitts = 0x04c0507b; // America/St_Kitts
    -
    840 const uint32_t kZoneIdAmerica_St_Lucia = 0x04d8b3ba; // America/St_Lucia
    -
    841 const uint32_t kZoneIdAmerica_St_Thomas = 0xb1b3d778; // America/St_Thomas
    -
    842 const uint32_t kZoneIdAmerica_St_Vincent = 0x8460e523; // America/St_Vincent
    -
    843 const uint32_t kZoneIdAmerica_Thunder_Bay = 0xf962e71b; // America/Thunder_Bay
    -
    844 const uint32_t kZoneIdAmerica_Tortola = 0x7931462b; // America/Tortola
    -
    845 const uint32_t kZoneIdAmerica_Virgin = 0xc2183ab5; // America/Virgin
    -
    846 const uint32_t kZoneIdAmerica_Yellowknife = 0x0f76c76f; // America/Yellowknife
    -
    847 const uint32_t kZoneIdAntarctica_DumontDUrville = 0x5a3c656c; // Antarctica/DumontDUrville
    -
    848 const uint32_t kZoneIdAntarctica_McMurdo = 0x6eeb5585; // Antarctica/McMurdo
    -
    849 const uint32_t kZoneIdAntarctica_South_Pole = 0xcd96b290; // Antarctica/South_Pole
    -
    850 const uint32_t kZoneIdAntarctica_Syowa = 0xe330c7e1; // Antarctica/Syowa
    -
    851 const uint32_t kZoneIdArctic_Longyearbyen = 0xd23e7859; // Arctic/Longyearbyen
    -
    852 const uint32_t kZoneIdAsia_Aden = 0x1fa7084a; // Asia/Aden
    -
    853 const uint32_t kZoneIdAsia_Ashkhabad = 0x15454f09; // Asia/Ashkhabad
    -
    854 const uint32_t kZoneIdAsia_Bahrain = 0x9d078487; // Asia/Bahrain
    -
    855 const uint32_t kZoneIdAsia_Brunei = 0xa8e595f7; // Asia/Brunei
    -
    856 const uint32_t kZoneIdAsia_Calcutta = 0x328a44c3; // Asia/Calcutta
    -
    857 const uint32_t kZoneIdAsia_Choibalsan = 0x928aa4a6; // Asia/Choibalsan
    -
    858 const uint32_t kZoneIdAsia_Chongqing = 0xf937fb90; // Asia/Chongqing
    -
    859 const uint32_t kZoneIdAsia_Chungking = 0xc7121dd0; // Asia/Chungking
    -
    860 const uint32_t kZoneIdAsia_Dacca = 0x14bcac5e; // Asia/Dacca
    -
    861 const uint32_t kZoneIdAsia_Harbin = 0xb5af1186; // Asia/Harbin
    -
    862 const uint32_t kZoneIdAsia_Kashgar = 0x52955193; // Asia/Kashgar
    -
    863 const uint32_t kZoneIdAsia_Katmandu = 0xa7ec12c7; // Asia/Katmandu
    -
    864 const uint32_t kZoneIdAsia_Kuala_Lumpur = 0x014763c4; // Asia/Kuala_Lumpur
    -
    865 const uint32_t kZoneIdAsia_Kuwait = 0xbe1b2f27; // Asia/Kuwait
    -
    866 const uint32_t kZoneIdAsia_Macao = 0x155f88b3; // Asia/Macao
    -
    867 const uint32_t kZoneIdAsia_Muscat = 0xc2c3565f; // Asia/Muscat
    -
    868 const uint32_t kZoneIdAsia_Phnom_Penh = 0xc224945e; // Asia/Phnom_Penh
    -
    869 const uint32_t kZoneIdAsia_Rangoon = 0x6d1217c6; // Asia/Rangoon
    -
    870 const uint32_t kZoneIdAsia_Saigon = 0xcf52f713; // Asia/Saigon
    -
    871 const uint32_t kZoneIdAsia_Tel_Aviv = 0x166d7c2c; // Asia/Tel_Aviv
    -
    872 const uint32_t kZoneIdAsia_Thimbu = 0xd226e31b; // Asia/Thimbu
    -
    873 const uint32_t kZoneIdAsia_Ujung_Pandang = 0x5d001eb3; // Asia/Ujung_Pandang
    -
    874 const uint32_t kZoneIdAsia_Ulan_Bator = 0x394db4d9; // Asia/Ulan_Bator
    -
    875 const uint32_t kZoneIdAsia_Vientiane = 0x89d68d75; // Asia/Vientiane
    -
    876 const uint32_t kZoneIdAtlantic_Faeroe = 0x031ec516; // Atlantic/Faeroe
    -
    877 const uint32_t kZoneIdAtlantic_Jan_Mayen = 0x5a7535b6; // Atlantic/Jan_Mayen
    -
    878 const uint32_t kZoneIdAtlantic_Reykjavik = 0x1c2b4f74; // Atlantic/Reykjavik
    -
    879 const uint32_t kZoneIdAtlantic_St_Helena = 0x451fc5f7; // Atlantic/St_Helena
    -
    880 const uint32_t kZoneIdAustralia_ACT = 0x8a970eb2; // Australia/ACT
    -
    881 const uint32_t kZoneIdAustralia_Canberra = 0x2a09ae58; // Australia/Canberra
    -
    882 const uint32_t kZoneIdAustralia_Currie = 0x278b6a24; // Australia/Currie
    -
    883 const uint32_t kZoneIdAustralia_LHI = 0x8a973e17; // Australia/LHI
    -
    884 const uint32_t kZoneIdAustralia_NSW = 0x8a974812; // Australia/NSW
    -
    885 const uint32_t kZoneIdAustralia_North = 0x8d997165; // Australia/North
    -
    886 const uint32_t kZoneIdAustralia_Queensland = 0xd326ed0a; // Australia/Queensland
    -
    887 const uint32_t kZoneIdAustralia_South = 0x8df3f8ad; // Australia/South
    -
    888 const uint32_t kZoneIdAustralia_Tasmania = 0xe6d76648; // Australia/Tasmania
    -
    889 const uint32_t kZoneIdAustralia_Victoria = 0x0260d5db; // Australia/Victoria
    -
    890 const uint32_t kZoneIdAustralia_West = 0xdd858a5d; // Australia/West
    -
    891 const uint32_t kZoneIdAustralia_Yancowinna = 0x90bac131; // Australia/Yancowinna
    -
    892 const uint32_t kZoneIdBrazil_East = 0x669578c5; // Brazil/East
    -
    893 const uint32_t kZoneIdBrazil_West = 0x669f689b; // Brazil/West
    -
    894 const uint32_t kZoneIdCET = 0x0b87d921; // CET
    -
    895 const uint32_t kZoneIdCST6CDT = 0xf0e87d00; // CST6CDT
    -
    896 const uint32_t kZoneIdCanada_Atlantic = 0x536b119c; // Canada/Atlantic
    -
    897 const uint32_t kZoneIdCanada_Central = 0x626710f5; // Canada/Central
    -
    898 const uint32_t kZoneIdCanada_Eastern = 0xf3612d5e; // Canada/Eastern
    -
    899 const uint32_t kZoneIdCanada_Mountain = 0xfb8a8217; // Canada/Mountain
    -
    900 const uint32_t kZoneIdCanada_Pacific = 0x40fa3c7b; // Canada/Pacific
    -
    901 const uint32_t kZoneIdCanada_Saskatchewan = 0x77311f49; // Canada/Saskatchewan
    -
    902 const uint32_t kZoneIdChile_Continental = 0x7e2bdb18; // Chile/Continental
    -
    903 const uint32_t kZoneIdChile_EasterIsland = 0xb0982af8; // Chile/EasterIsland
    -
    904 const uint32_t kZoneIdCuba = 0x7c83cba0; // Cuba
    -
    905 const uint32_t kZoneIdEET = 0x0b87e1a3; // EET
    -
    906 const uint32_t kZoneIdEST = 0x0b87e371; // EST
    -
    907 const uint32_t kZoneIdEST5EDT = 0x8adc72a3; // EST5EDT
    -
    908 const uint32_t kZoneIdEire = 0x7c84b36a; // Eire
    -
    909 const uint32_t kZoneIdEtc_GMT_PLUS_0 = 0x9d13da13; // Etc/GMT+0
    -
    910 const uint32_t kZoneIdEtc_GMT_0 = 0x9d13da55; // Etc/GMT-0
    -
    911 const uint32_t kZoneIdEtc_GMT0 = 0xf53ea988; // Etc/GMT0
    -
    912 const uint32_t kZoneIdEtc_Greenwich = 0x26daa98c; // Etc/Greenwich
    -
    913 const uint32_t kZoneIdEtc_UCT = 0xd8e3189c; // Etc/UCT
    -
    914 const uint32_t kZoneIdEtc_Universal = 0x2f8cb9a9; // Etc/Universal
    -
    915 const uint32_t kZoneIdEtc_Zulu = 0xf549c240; // Etc/Zulu
    -
    916 const uint32_t kZoneIdEurope_Amsterdam = 0x109395c2; // Europe/Amsterdam
    -
    917 const uint32_t kZoneIdEurope_Belfast = 0xd07dd1e5; // Europe/Belfast
    -
    918 const uint32_t kZoneIdEurope_Bratislava = 0xda493bed; // Europe/Bratislava
    -
    919 const uint32_t kZoneIdEurope_Busingen = 0xc06d2cdf; // Europe/Busingen
    -
    920 const uint32_t kZoneIdEurope_Copenhagen = 0xe0ed30bc; // Europe/Copenhagen
    -
    921 const uint32_t kZoneIdEurope_Guernsey = 0x3db12c16; // Europe/Guernsey
    -
    922 const uint32_t kZoneIdEurope_Isle_of_Man = 0xeaf84580; // Europe/Isle_of_Man
    -
    923 const uint32_t kZoneIdEurope_Jersey = 0x570dae76; // Europe/Jersey
    -
    924 const uint32_t kZoneIdEurope_Kiev = 0xa2c19eb3; // Europe/Kiev
    -
    925 const uint32_t kZoneIdEurope_Ljubljana = 0xbd98cdb7; // Europe/Ljubljana
    -
    926 const uint32_t kZoneIdEurope_Luxembourg = 0x1f8bc6ce; // Europe/Luxembourg
    -
    927 const uint32_t kZoneIdEurope_Mariehamn = 0x0caa6496; // Europe/Mariehamn
    -
    928 const uint32_t kZoneIdEurope_Monaco = 0x5ebf9f01; // Europe/Monaco
    -
    929 const uint32_t kZoneIdEurope_Nicosia = 0x74efab8a; // Europe/Nicosia
    -
    930 const uint32_t kZoneIdEurope_Oslo = 0xa2c3fba1; // Europe/Oslo
    -
    931 const uint32_t kZoneIdEurope_Podgorica = 0x1c1a499c; // Europe/Podgorica
    -
    932 const uint32_t kZoneIdEurope_San_Marino = 0xcef7724b; // Europe/San_Marino
    -
    933 const uint32_t kZoneIdEurope_Sarajevo = 0x6a576c3f; // Europe/Sarajevo
    -
    934 const uint32_t kZoneIdEurope_Skopje = 0x6c76fdd0; // Europe/Skopje
    -
    935 const uint32_t kZoneIdEurope_Stockholm = 0x5bf6fbb8; // Europe/Stockholm
    -
    936 const uint32_t kZoneIdEurope_Tiraspol = 0xbe704472; // Europe/Tiraspol
    -
    937 const uint32_t kZoneIdEurope_Uzhgorod = 0xb066f5d6; // Europe/Uzhgorod
    -
    938 const uint32_t kZoneIdEurope_Vaduz = 0xfbb81bae; // Europe/Vaduz
    -
    939 const uint32_t kZoneIdEurope_Vatican = 0xcb485dca; // Europe/Vatican
    -
    940 const uint32_t kZoneIdEurope_Zagreb = 0x7c11c9ff; // Europe/Zagreb
    -
    941 const uint32_t kZoneIdEurope_Zaporozhye = 0xeab9767f; // Europe/Zaporozhye
    -
    942 const uint32_t kZoneIdGB = 0x005973ae; // GB
    -
    943 const uint32_t kZoneIdGB_Eire = 0xfa70e300; // GB-Eire
    -
    944 const uint32_t kZoneIdGMT = 0x0b87eb2d; // GMT
    -
    945 const uint32_t kZoneIdGMT_PLUS_0 = 0x0d2f7028; // GMT+0
    -
    946 const uint32_t kZoneIdGMT_0 = 0x0d2f706a; // GMT-0
    -
    947 const uint32_t kZoneIdGMT0 = 0x7c8550fd; // GMT0
    -
    948 const uint32_t kZoneIdGreenwich = 0xc84d4221; // Greenwich
    -
    949 const uint32_t kZoneIdHST = 0x0b87f034; // HST
    -
    950 const uint32_t kZoneIdHongkong = 0x56d36560; // Hongkong
    -
    951 const uint32_t kZoneIdIceland = 0xe56a35b5; // Iceland
    -
    952 const uint32_t kZoneIdIndian_Antananarivo = 0x9ebf5289; // Indian/Antananarivo
    -
    953 const uint32_t kZoneIdIndian_Christmas = 0x68c207d5; // Indian/Christmas
    -
    954 const uint32_t kZoneIdIndian_Cocos = 0x021e86de; // Indian/Cocos
    -
    955 const uint32_t kZoneIdIndian_Comoro = 0x45f4deb6; // Indian/Comoro
    -
    956 const uint32_t kZoneIdIndian_Kerguelen = 0x4351b389; // Indian/Kerguelen
    -
    957 const uint32_t kZoneIdIndian_Mahe = 0x45e725e2; // Indian/Mahe
    -
    958 const uint32_t kZoneIdIndian_Mayotte = 0xe6880bca; // Indian/Mayotte
    -
    959 const uint32_t kZoneIdIndian_Reunion = 0x7076c047; // Indian/Reunion
    -
    960 const uint32_t kZoneIdIran = 0x7c87090f; // Iran
    -
    961 const uint32_t kZoneIdIsrael = 0xba88c9e5; // Israel
    -
    962 const uint32_t kZoneIdJamaica = 0x2e44fdab; // Jamaica
    -
    963 const uint32_t kZoneIdJapan = 0x0d712f8f; // Japan
    -
    964 const uint32_t kZoneIdKwajalein = 0x0e57afbb; // Kwajalein
    -
    965 const uint32_t kZoneIdMET = 0x0b8803ab; // MET
    -
    966 const uint32_t kZoneIdMST = 0x0b880579; // MST
    -
    967 const uint32_t kZoneIdMST7MDT = 0xf2af9375; // MST7MDT
    -
    968 const uint32_t kZoneIdMexico_BajaSur = 0x08ee3641; // Mexico/BajaSur
    -
    969 const uint32_t kZoneIdNZ = 0x005974ad; // NZ
    -
    970 const uint32_t kZoneIdNZ_CHAT = 0x4d42afda; // NZ-CHAT
    -
    971 const uint32_t kZoneIdNavajo = 0xc4ef0e24; // Navajo
    -
    972 const uint32_t kZoneIdPRC = 0x0b88120a; // PRC
    -
    973 const uint32_t kZoneIdPST8PDT = 0xd99ee2dc; // PST8PDT
    -
    974 const uint32_t kZoneIdPacific_Chuuk = 0x8a090b23; // Pacific/Chuuk
    -
    975 const uint32_t kZoneIdPacific_Enderbury = 0x61599a93; // Pacific/Enderbury
    -
    976 const uint32_t kZoneIdPacific_Funafuti = 0xdb402d65; // Pacific/Funafuti
    -
    977 const uint32_t kZoneIdPacific_Johnston = 0xb15d7b36; // Pacific/Johnston
    -
    978 const uint32_t kZoneIdPacific_Majuro = 0xe1f95371; // Pacific/Majuro
    -
    979 const uint32_t kZoneIdPacific_Midway = 0xe286d38e; // Pacific/Midway
    -
    980 const uint32_t kZoneIdPacific_Pohnpei = 0x28929f96; // Pacific/Pohnpei
    -
    981 const uint32_t kZoneIdPacific_Ponape = 0xe9f80086; // Pacific/Ponape
    -
    982 const uint32_t kZoneIdPacific_Samoa = 0x8b2699b4; // Pacific/Samoa
    -
    983 const uint32_t kZoneIdPacific_Truk = 0x234010a9; // Pacific/Truk
    -
    984 const uint32_t kZoneIdPacific_Wake = 0x23416c2b; // Pacific/Wake
    -
    985 const uint32_t kZoneIdPacific_Wallis = 0xf94ddb0f; // Pacific/Wallis
    -
    986 const uint32_t kZoneIdPacific_Yap = 0xbb40138d; // Pacific/Yap
    -
    987 const uint32_t kZoneIdPoland = 0xca913b23; // Poland
    -
    988 const uint32_t kZoneIdPortugal = 0xc3274593; // Portugal
    -
    989 const uint32_t kZoneIdROC = 0x0b881a29; // ROC
    -
    990 const uint32_t kZoneIdROK = 0x0b881a31; // ROK
    -
    991 const uint32_t kZoneIdSingapore = 0xa8598c8d; // Singapore
    -
    992 const uint32_t kZoneIdUCT = 0x0b882571; // UCT
    -
    993 const uint32_t kZoneIdUS_Alaska = 0xfa300bc9; // US/Alaska
    -
    994 const uint32_t kZoneIdUS_Aleutian = 0x4fe013ef; // US/Aleutian
    -
    995 const uint32_t kZoneIdUS_Arizona = 0x4ec52670; // US/Arizona
    -
    996 const uint32_t kZoneIdUS_Central = 0xcabdcb25; // US/Central
    -
    997 const uint32_t kZoneIdUS_East_Indiana = 0x6dcf558a; // US/East-Indiana
    -
    998 const uint32_t kZoneIdUS_Eastern = 0x5bb7e78e; // US/Eastern
    -
    999 const uint32_t kZoneIdUS_Hawaii = 0x09c8de2f; // US/Hawaii
    -
    1000 const uint32_t kZoneIdUS_Michigan = 0x766bb7bc; // US/Michigan
    -
    1001 const uint32_t kZoneIdUS_Mountain = 0x6eb88247; // US/Mountain
    -
    1002 const uint32_t kZoneIdUS_Pacific = 0xa950f6ab; // US/Pacific
    -
    1003 const uint32_t kZoneIdUS_Samoa = 0x566821cd; // US/Samoa
    -
    1004 const uint32_t kZoneIdUTC = 0x0b882791; // UTC
    -
    1005 const uint32_t kZoneIdUniversal = 0xd0ff523e; // Universal
    -
    1006 const uint32_t kZoneIdWET = 0x0b882e35; // WET
    -
    1007 const uint32_t kZoneIdZulu = 0x7c9069b5; // Zulu
    -
    1008 
    -
    1009 
    -
    1010 //---------------------------------------------------------------------------
    -
    1011 // Maximum size of the Transition buffer in ExtendedZoneProcessor for each zone
    -
    1012 // over the given years. Used only in the AceTimeValidation/Extended*Test tests
    -
    1013 // for ExtendedZoneProcessor.
    -
    1014 //
    -
    1015 // MaxBufSize: 6
    -
    1016 //---------------------------------------------------------------------------
    -
    1017 
    -
    1018 const uint8_t kZoneBufSizeAfrica_Abidjan = 1; // Africa/Abidjan in 1949
    -
    1019 const uint8_t kZoneBufSizeAfrica_Algiers = 1; // Africa/Algiers in 1949
    -
    1020 const uint8_t kZoneBufSizeAfrica_Bissau = 1; // Africa/Bissau in 1949
    -
    1021 const uint8_t kZoneBufSizeAfrica_Ceuta = 5; // Africa/Ceuta in 1983
    -
    1022 const uint8_t kZoneBufSizeAfrica_Johannesburg = 2; // Africa/Johannesburg in 1949
    -
    1023 const uint8_t kZoneBufSizeAfrica_Lagos = 1; // Africa/Lagos in 1949
    -
    1024 const uint8_t kZoneBufSizeAfrica_Maputo = 1; // Africa/Maputo in 1949
    -
    1025 const uint8_t kZoneBufSizeAfrica_Monrovia = 1; // Africa/Monrovia in 1949
    -
    1026 const uint8_t kZoneBufSizeAfrica_Nairobi = 1; // Africa/Nairobi in 1949
    -
    1027 const uint8_t kZoneBufSizeAfrica_Ndjamena = 1; // Africa/Ndjamena in 1949
    -
    1028 const uint8_t kZoneBufSizeAfrica_Tunis = 5; // Africa/Tunis in 2005
    -
    1029 const uint8_t kZoneBufSizeAfrica_Windhoek = 4; // Africa/Windhoek in 1994
    -
    1030 const uint8_t kZoneBufSizeAmerica_Adak = 6; // America/Adak in 2008
    -
    1031 const uint8_t kZoneBufSizeAmerica_Anchorage = 6; // America/Anchorage in 2008
    -
    1032 const uint8_t kZoneBufSizeAmerica_Barbados = 2; // America/Barbados in 1949
    -
    1033 const uint8_t kZoneBufSizeAmerica_Belem = 1; // America/Belem in 1949
    -
    1034 const uint8_t kZoneBufSizeAmerica_Belize = 2; // America/Belize in 1949
    -
    1035 const uint8_t kZoneBufSizeAmerica_Bogota = 2; // America/Bogota in 1949
    -
    1036 const uint8_t kZoneBufSizeAmerica_Boise = 6; // America/Boise in 2008
    -
    1037 const uint8_t kZoneBufSizeAmerica_Campo_Grande = 6; // America/Campo_Grande in 2003
    -
    1038 const uint8_t kZoneBufSizeAmerica_Cayenne = 1; // America/Cayenne in 1949
    -
    1039 const uint8_t kZoneBufSizeAmerica_Chicago = 6; // America/Chicago in 2008
    -
    1040 const uint8_t kZoneBufSizeAmerica_Costa_Rica = 2; // America/Costa_Rica in 1949
    -
    1041 const uint8_t kZoneBufSizeAmerica_Danmarkshavn = 1; // America/Danmarkshavn in 1949
    -
    1042 const uint8_t kZoneBufSizeAmerica_Dawson_Creek = 1; // America/Dawson_Creek in 1949
    -
    1043 const uint8_t kZoneBufSizeAmerica_Denver = 6; // America/Denver in 2008
    -
    1044 const uint8_t kZoneBufSizeAmerica_Detroit = 6; // America/Detroit in 2008
    -
    1045 const uint8_t kZoneBufSizeAmerica_Edmonton = 6; // America/Edmonton in 2008
    -
    1046 const uint8_t kZoneBufSizeAmerica_El_Salvador = 2; // America/El_Salvador in 1949
    -
    1047 const uint8_t kZoneBufSizeAmerica_Glace_Bay = 6; // America/Glace_Bay in 2008
    -
    1048 const uint8_t kZoneBufSizeAmerica_Guatemala = 3; // America/Guatemala in 2006
    -
    1049 const uint8_t kZoneBufSizeAmerica_Guayaquil = 2; // America/Guayaquil in 1949
    -
    1050 const uint8_t kZoneBufSizeAmerica_Guyana = 1; // America/Guyana in 1949
    -
    1051 const uint8_t kZoneBufSizeAmerica_Halifax = 6; // America/Halifax in 2008
    -
    1052 const uint8_t kZoneBufSizeAmerica_Havana = 6; // America/Havana in 2015
    -
    1053 const uint8_t kZoneBufSizeAmerica_Hermosillo = 4; // America/Hermosillo in 1996
    -
    1054 const uint8_t kZoneBufSizeAmerica_Indiana_Indianapolis = 6; // America/Indiana/Indianapolis in 2006
    -
    1055 const uint8_t kZoneBufSizeAmerica_Indiana_Marengo = 6; // America/Indiana/Marengo in 2006
    -
    1056 const uint8_t kZoneBufSizeAmerica_Indiana_Vevay = 6; // America/Indiana/Vevay in 2006
    -
    1057 const uint8_t kZoneBufSizeAmerica_Inuvik = 6; // America/Inuvik in 2008
    -
    1058 const uint8_t kZoneBufSizeAmerica_Jamaica = 1; // America/Jamaica in 1949
    -
    1059 const uint8_t kZoneBufSizeAmerica_Juneau = 6; // America/Juneau in 2008
    -
    1060 const uint8_t kZoneBufSizeAmerica_Kentucky_Louisville = 6; // America/Kentucky/Louisville in 2008
    -
    1061 const uint8_t kZoneBufSizeAmerica_La_Paz = 1; // America/La_Paz in 1949
    -
    1062 const uint8_t kZoneBufSizeAmerica_Lima = 2; // America/Lima in 1949
    -
    1063 const uint8_t kZoneBufSizeAmerica_Los_Angeles = 6; // America/Los_Angeles in 2008
    -
    1064 const uint8_t kZoneBufSizeAmerica_Managua = 4; // America/Managua in 2005
    -
    1065 const uint8_t kZoneBufSizeAmerica_Manaus = 1; // America/Manaus in 1949
    -
    1066 const uint8_t kZoneBufSizeAmerica_Martinique = 1; // America/Martinique in 1949
    -
    1067 const uint8_t kZoneBufSizeAmerica_Matamoros = 6; // America/Matamoros in 2009
    -
    1068 const uint8_t kZoneBufSizeAmerica_Mazatlan = 4; // America/Mazatlan in 1996
    -
    1069 const uint8_t kZoneBufSizeAmerica_Menominee = 6; // America/Menominee in 2008
    -
    1070 const uint8_t kZoneBufSizeAmerica_Merida = 4; // America/Merida in 1996
    -
    1071 const uint8_t kZoneBufSizeAmerica_Miquelon = 6; // America/Miquelon in 2008
    -
    1072 const uint8_t kZoneBufSizeAmerica_Moncton = 6; // America/Moncton in 2006
    -
    1073 const uint8_t kZoneBufSizeAmerica_Monterrey = 4; // America/Monterrey in 1996
    -
    1074 const uint8_t kZoneBufSizeAmerica_Montevideo = 5; // America/Montevideo in 2005
    -
    1075 const uint8_t kZoneBufSizeAmerica_New_York = 6; // America/New_York in 2008
    -
    1076 const uint8_t kZoneBufSizeAmerica_Nome = 6; // America/Nome in 2008
    -
    1077 const uint8_t kZoneBufSizeAmerica_North_Dakota_Center = 6; // America/North_Dakota/Center in 2008
    -
    1078 const uint8_t kZoneBufSizeAmerica_Panama = 1; // America/Panama in 1949
    -
    1079 const uint8_t kZoneBufSizeAmerica_Paramaribo = 1; // America/Paramaribo in 1949
    -
    1080 const uint8_t kZoneBufSizeAmerica_Phoenix = 1; // America/Phoenix in 1949
    -
    1081 const uint8_t kZoneBufSizeAmerica_Port_au_Prince = 6; // America/Port-au-Prince in 2013
    -
    1082 const uint8_t kZoneBufSizeAmerica_Porto_Velho = 1; // America/Porto_Velho in 1949
    -
    1083 const uint8_t kZoneBufSizeAmerica_Puerto_Rico = 1; // America/Puerto_Rico in 1949
    -
    1084 const uint8_t kZoneBufSizeAmerica_Regina = 1; // America/Regina in 1949
    -
    1085 const uint8_t kZoneBufSizeAmerica_Santiago = 5; // America/Santiago in 2002
    -
    1086 const uint8_t kZoneBufSizeAmerica_Sao_Paulo = 6; // America/Sao_Paulo in 2003
    -
    1087 const uint8_t kZoneBufSizeAmerica_Sitka = 6; // America/Sitka in 2008
    -
    1088 const uint8_t kZoneBufSizeAmerica_Swift_Current = 1; // America/Swift_Current in 1949
    -
    1089 const uint8_t kZoneBufSizeAmerica_Tegucigalpa = 3; // America/Tegucigalpa in 1987
    -
    1090 const uint8_t kZoneBufSizeAmerica_Thule = 6; // America/Thule in 2008
    -
    1091 const uint8_t kZoneBufSizeAmerica_Toronto = 6; // America/Toronto in 2008
    -
    1092 const uint8_t kZoneBufSizeAmerica_Vancouver = 6; // America/Vancouver in 2008
    -
    1093 const uint8_t kZoneBufSizeAmerica_Winnipeg = 6; // America/Winnipeg in 2006
    -
    1094 const uint8_t kZoneBufSizeAmerica_Yakutat = 6; // America/Yakutat in 2008
    -
    1095 const uint8_t kZoneBufSizeAntarctica_Rothera = 1; // Antarctica/Rothera in 1949
    -
    1096 const uint8_t kZoneBufSizeAsia_Ashgabat = 1; // Asia/Ashgabat in 1949
    -
    1097 const uint8_t kZoneBufSizeAsia_Baghdad = 4; // Asia/Baghdad in 1991
    -
    1098 const uint8_t kZoneBufSizeAsia_Baku = 5; // Asia/Baku in 1997
    -
    1099 const uint8_t kZoneBufSizeAsia_Bangkok = 1; // Asia/Bangkok in 1949
    -
    1100 const uint8_t kZoneBufSizeAsia_Beirut = 5; // Asia/Beirut in 1993
    -
    1101 const uint8_t kZoneBufSizeAsia_Dhaka = 4; // Asia/Dhaka in 2009
    -
    1102 const uint8_t kZoneBufSizeAsia_Dubai = 1; // Asia/Dubai in 1949
    -
    1103 const uint8_t kZoneBufSizeAsia_Dushanbe = 1; // Asia/Dushanbe in 1949
    -
    1104 const uint8_t kZoneBufSizeAsia_Ho_Chi_Minh = 1; // Asia/Ho_Chi_Minh in 1949
    -
    1105 const uint8_t kZoneBufSizeAsia_Hong_Kong = 2; // Asia/Hong_Kong in 1949
    -
    1106 const uint8_t kZoneBufSizeAsia_Hovd = 5; // Asia/Hovd in 2004
    -
    1107 const uint8_t kZoneBufSizeAsia_Jakarta = 1; // Asia/Jakarta in 1949
    -
    1108 const uint8_t kZoneBufSizeAsia_Jayapura = 1; // Asia/Jayapura in 1949
    -
    1109 const uint8_t kZoneBufSizeAsia_Jerusalem = 5; // Asia/Jerusalem in 2001
    -
    1110 const uint8_t kZoneBufSizeAsia_Kabul = 1; // Asia/Kabul in 1949
    -
    1111 const uint8_t kZoneBufSizeAsia_Karachi = 4; // Asia/Karachi in 2008
    -
    1112 const uint8_t kZoneBufSizeAsia_Kathmandu = 1; // Asia/Kathmandu in 1949
    -
    1113 const uint8_t kZoneBufSizeAsia_Kolkata = 1; // Asia/Kolkata in 1949
    -
    1114 const uint8_t kZoneBufSizeAsia_Kuching = 1; // Asia/Kuching in 1949
    -
    1115 const uint8_t kZoneBufSizeAsia_Macau = 2; // Asia/Macau in 1949
    -
    1116 const uint8_t kZoneBufSizeAsia_Makassar = 1; // Asia/Makassar in 1949
    -
    1117 const uint8_t kZoneBufSizeAsia_Manila = 2; // Asia/Manila in 1949
    -
    1118 const uint8_t kZoneBufSizeAsia_Nicosia = 5; // Asia/Nicosia in 1981
    -
    1119 const uint8_t kZoneBufSizeAsia_Pontianak = 1; // Asia/Pontianak in 1949
    -
    1120 const uint8_t kZoneBufSizeAsia_Qatar = 1; // Asia/Qatar in 1949
    -
    1121 const uint8_t kZoneBufSizeAsia_Riyadh = 1; // Asia/Riyadh in 1949
    -
    1122 const uint8_t kZoneBufSizeAsia_Samarkand = 1; // Asia/Samarkand in 1949
    -
    1123 const uint8_t kZoneBufSizeAsia_Seoul = 2; // Asia/Seoul in 1949
    -
    1124 const uint8_t kZoneBufSizeAsia_Shanghai = 2; // Asia/Shanghai in 1949
    -
    1125 const uint8_t kZoneBufSizeAsia_Singapore = 1; // Asia/Singapore in 1949
    -
    1126 const uint8_t kZoneBufSizeAsia_Taipei = 2; // Asia/Taipei in 1949
    -
    1127 const uint8_t kZoneBufSizeAsia_Tashkent = 1; // Asia/Tashkent in 1949
    -
    1128 const uint8_t kZoneBufSizeAsia_Tehran = 5; // Asia/Tehran in 1997
    -
    1129 const uint8_t kZoneBufSizeAsia_Thimphu = 1; // Asia/Thimphu in 1949
    -
    1130 const uint8_t kZoneBufSizeAsia_Tokyo = 2; // Asia/Tokyo in 1949
    -
    1131 const uint8_t kZoneBufSizeAsia_Ulaanbaatar = 5; // Asia/Ulaanbaatar in 2004
    -
    1132 const uint8_t kZoneBufSizeAsia_Urumqi = 1; // Asia/Urumqi in 1949
    -
    1133 const uint8_t kZoneBufSizeAsia_Yangon = 1; // Asia/Yangon in 1949
    -
    1134 const uint8_t kZoneBufSizeAsia_Yerevan = 6; // Asia/Yerevan in 2010
    -
    1135 const uint8_t kZoneBufSizeAtlantic_Azores = 5; // Atlantic/Azores in 1983
    -
    1136 const uint8_t kZoneBufSizeAtlantic_Bermuda = 6; // Atlantic/Bermuda in 2008
    -
    1137 const uint8_t kZoneBufSizeAtlantic_Canary = 5; // Atlantic/Canary in 1983
    -
    1138 const uint8_t kZoneBufSizeAtlantic_Cape_Verde = 1; // Atlantic/Cape_Verde in 1949
    -
    1139 const uint8_t kZoneBufSizeAtlantic_Faroe = 5; // Atlantic/Faroe in 1983
    -
    1140 const uint8_t kZoneBufSizeAtlantic_Madeira = 5; // Atlantic/Madeira in 1983
    -
    1141 const uint8_t kZoneBufSizeAtlantic_South_Georgia = 1; // Atlantic/South_Georgia in 1949
    -
    1142 const uint8_t kZoneBufSizeAustralia_Adelaide = 5; // Australia/Adelaide in 1997
    -
    1143 const uint8_t kZoneBufSizeAustralia_Brisbane = 2; // Australia/Brisbane in 1949
    -
    1144 const uint8_t kZoneBufSizeAustralia_Broken_Hill = 6; // Australia/Broken_Hill in 1999
    -
    1145 const uint8_t kZoneBufSizeAustralia_Darwin = 2; // Australia/Darwin in 1949
    -
    1146 const uint8_t kZoneBufSizeAustralia_Eucla = 6; // Australia/Eucla in 2007
    -
    1147 const uint8_t kZoneBufSizeAustralia_Hobart = 5; // Australia/Hobart in 1993
    -
    1148 const uint8_t kZoneBufSizeAustralia_Lindeman = 2; // Australia/Lindeman in 1949
    -
    1149 const uint8_t kZoneBufSizeAustralia_Lord_Howe = 5; // Australia/Lord_Howe in 1992
    -
    1150 const uint8_t kZoneBufSizeAustralia_Melbourne = 5; // Australia/Melbourne in 1993
    -
    1151 const uint8_t kZoneBufSizeAustralia_Perth = 6; // Australia/Perth in 2007
    -
    1152 const uint8_t kZoneBufSizeAustralia_Sydney = 5; // Australia/Sydney in 1992
    -
    1153 const uint8_t kZoneBufSizeEtc_GMT = 1; // Etc/GMT in 1949
    -
    1154 const uint8_t kZoneBufSizeEtc_GMT_PLUS_1 = 1; // Etc/GMT+1 in 1949
    -
    1155 const uint8_t kZoneBufSizeEtc_GMT_PLUS_10 = 1; // Etc/GMT+10 in 1949
    -
    1156 const uint8_t kZoneBufSizeEtc_GMT_PLUS_11 = 1; // Etc/GMT+11 in 1949
    -
    1157 const uint8_t kZoneBufSizeEtc_GMT_PLUS_12 = 1; // Etc/GMT+12 in 1949
    -
    1158 const uint8_t kZoneBufSizeEtc_GMT_PLUS_2 = 1; // Etc/GMT+2 in 1949
    -
    1159 const uint8_t kZoneBufSizeEtc_GMT_PLUS_3 = 1; // Etc/GMT+3 in 1949
    -
    1160 const uint8_t kZoneBufSizeEtc_GMT_PLUS_4 = 1; // Etc/GMT+4 in 1949
    -
    1161 const uint8_t kZoneBufSizeEtc_GMT_PLUS_5 = 1; // Etc/GMT+5 in 1949
    -
    1162 const uint8_t kZoneBufSizeEtc_GMT_PLUS_6 = 1; // Etc/GMT+6 in 1949
    -
    1163 const uint8_t kZoneBufSizeEtc_GMT_PLUS_7 = 1; // Etc/GMT+7 in 1949
    -
    1164 const uint8_t kZoneBufSizeEtc_GMT_PLUS_8 = 1; // Etc/GMT+8 in 1949
    -
    1165 const uint8_t kZoneBufSizeEtc_GMT_PLUS_9 = 1; // Etc/GMT+9 in 1949
    -
    1166 const uint8_t kZoneBufSizeEtc_GMT_1 = 1; // Etc/GMT-1 in 1949
    -
    1167 const uint8_t kZoneBufSizeEtc_GMT_10 = 1; // Etc/GMT-10 in 1949
    -
    1168 const uint8_t kZoneBufSizeEtc_GMT_11 = 1; // Etc/GMT-11 in 1949
    -
    1169 const uint8_t kZoneBufSizeEtc_GMT_12 = 1; // Etc/GMT-12 in 1949
    -
    1170 const uint8_t kZoneBufSizeEtc_GMT_13 = 1; // Etc/GMT-13 in 1949
    -
    1171 const uint8_t kZoneBufSizeEtc_GMT_14 = 1; // Etc/GMT-14 in 1949
    -
    1172 const uint8_t kZoneBufSizeEtc_GMT_2 = 1; // Etc/GMT-2 in 1949
    -
    1173 const uint8_t kZoneBufSizeEtc_GMT_3 = 1; // Etc/GMT-3 in 1949
    -
    1174 const uint8_t kZoneBufSizeEtc_GMT_4 = 1; // Etc/GMT-4 in 1949
    -
    1175 const uint8_t kZoneBufSizeEtc_GMT_5 = 1; // Etc/GMT-5 in 1949
    -
    1176 const uint8_t kZoneBufSizeEtc_GMT_6 = 1; // Etc/GMT-6 in 1949
    -
    1177 const uint8_t kZoneBufSizeEtc_GMT_7 = 1; // Etc/GMT-7 in 1949
    -
    1178 const uint8_t kZoneBufSizeEtc_GMT_8 = 1; // Etc/GMT-8 in 1949
    -
    1179 const uint8_t kZoneBufSizeEtc_GMT_9 = 1; // Etc/GMT-9 in 1949
    -
    1180 const uint8_t kZoneBufSizeEtc_UTC = 1; // Etc/UTC in 1949
    -
    1181 const uint8_t kZoneBufSizeEurope_Andorra = 5; // Europe/Andorra in 1983
    -
    1182 const uint8_t kZoneBufSizeEurope_Athens = 5; // Europe/Athens in 1983
    -
    1183 const uint8_t kZoneBufSizeEurope_Belgrade = 5; // Europe/Belgrade in 1983
    -
    1184 const uint8_t kZoneBufSizeEurope_Berlin = 5; // Europe/Berlin in 1983
    -
    1185 const uint8_t kZoneBufSizeEurope_Brussels = 5; // Europe/Brussels in 1983
    -
    1186 const uint8_t kZoneBufSizeEurope_Bucharest = 5; // Europe/Bucharest in 1983
    -
    1187 const uint8_t kZoneBufSizeEurope_Budapest = 5; // Europe/Budapest in 1983
    -
    1188 const uint8_t kZoneBufSizeEurope_Chisinau = 5; // Europe/Chisinau in 1997
    -
    1189 const uint8_t kZoneBufSizeEurope_Dublin = 5; // Europe/Dublin in 1990
    -
    1190 const uint8_t kZoneBufSizeEurope_Gibraltar = 5; // Europe/Gibraltar in 1983
    -
    1191 const uint8_t kZoneBufSizeEurope_Helsinki = 5; // Europe/Helsinki in 1983
    -
    1192 const uint8_t kZoneBufSizeEurope_Kyiv = 5; // Europe/Kyiv in 1983
    -
    1193 const uint8_t kZoneBufSizeEurope_Lisbon = 5; // Europe/Lisbon in 1983
    -
    1194 const uint8_t kZoneBufSizeEurope_London = 5; // Europe/London in 1983
    -
    1195 const uint8_t kZoneBufSizeEurope_Madrid = 5; // Europe/Madrid in 1983
    -
    1196 const uint8_t kZoneBufSizeEurope_Malta = 5; // Europe/Malta in 1983
    -
    1197 const uint8_t kZoneBufSizeEurope_Paris = 5; // Europe/Paris in 1983
    -
    1198 const uint8_t kZoneBufSizeEurope_Prague = 5; // Europe/Prague in 1983
    -
    1199 const uint8_t kZoneBufSizeEurope_Rome = 5; // Europe/Rome in 1983
    -
    1200 const uint8_t kZoneBufSizeEurope_Sofia = 5; // Europe/Sofia in 1983
    -
    1201 const uint8_t kZoneBufSizeEurope_Tirane = 5; // Europe/Tirane in 1983
    -
    1202 const uint8_t kZoneBufSizeEurope_Vienna = 5; // Europe/Vienna in 1983
    -
    1203 const uint8_t kZoneBufSizeEurope_Warsaw = 5; // Europe/Warsaw in 1983
    -
    1204 const uint8_t kZoneBufSizeEurope_Zurich = 5; // Europe/Zurich in 1983
    -
    1205 const uint8_t kZoneBufSizeIndian_Chagos = 1; // Indian/Chagos in 1949
    -
    1206 const uint8_t kZoneBufSizeIndian_Maldives = 1; // Indian/Maldives in 1949
    -
    1207 const uint8_t kZoneBufSizeIndian_Mauritius = 3; // Indian/Mauritius in 2008
    -
    1208 const uint8_t kZoneBufSizePacific_Auckland = 5; // Pacific/Auckland in 1992
    -
    1209 const uint8_t kZoneBufSizePacific_Chatham = 5; // Pacific/Chatham in 1992
    -
    1210 const uint8_t kZoneBufSizePacific_Easter = 5; // Pacific/Easter in 2002
    -
    1211 const uint8_t kZoneBufSizePacific_Efate = 2; // Pacific/Efate in 1949
    -
    1212 const uint8_t kZoneBufSizePacific_Fiji = 6; // Pacific/Fiji in 2017
    -
    1213 const uint8_t kZoneBufSizePacific_Galapagos = 2; // Pacific/Galapagos in 1949
    -
    1214 const uint8_t kZoneBufSizePacific_Gambier = 1; // Pacific/Gambier in 1949
    -
    1215 const uint8_t kZoneBufSizePacific_Guadalcanal = 1; // Pacific/Guadalcanal in 1949
    -
    1216 const uint8_t kZoneBufSizePacific_Honolulu = 1; // Pacific/Honolulu in 1949
    -
    1217 const uint8_t kZoneBufSizePacific_Kanton = 1; // Pacific/Kanton in 1949
    -
    1218 const uint8_t kZoneBufSizePacific_Kiritimati = 1; // Pacific/Kiritimati in 1949
    -
    1219 const uint8_t kZoneBufSizePacific_Kosrae = 2; // Pacific/Kosrae in 1998
    -
    1220 const uint8_t kZoneBufSizePacific_Kwajalein = 1; // Pacific/Kwajalein in 1949
    -
    1221 const uint8_t kZoneBufSizePacific_Marquesas = 1; // Pacific/Marquesas in 1949
    -
    1222 const uint8_t kZoneBufSizePacific_Nauru = 1; // Pacific/Nauru in 1949
    -
    1223 const uint8_t kZoneBufSizePacific_Niue = 1; // Pacific/Niue in 1949
    -
    1224 const uint8_t kZoneBufSizePacific_Noumea = 2; // Pacific/Noumea in 1949
    -
    1225 const uint8_t kZoneBufSizePacific_Pago_Pago = 1; // Pacific/Pago_Pago in 1949
    -
    1226 const uint8_t kZoneBufSizePacific_Palau = 1; // Pacific/Palau in 1949
    -
    1227 const uint8_t kZoneBufSizePacific_Pitcairn = 1; // Pacific/Pitcairn in 1949
    -
    1228 const uint8_t kZoneBufSizePacific_Port_Moresby = 1; // Pacific/Port_Moresby in 1949
    -
    1229 const uint8_t kZoneBufSizePacific_Rarotonga = 2; // Pacific/Rarotonga in 1949
    -
    1230 const uint8_t kZoneBufSizePacific_Tahiti = 1; // Pacific/Tahiti in 1949
    -
    1231 const uint8_t kZoneBufSizePacific_Tarawa = 1; // Pacific/Tarawa in 1949
    -
    1232 const uint8_t kZoneBufSizePacific_Tongatapu = 5; // Pacific/Tongatapu in 1999
    -
    1233 
    -
    1234 
    -
    1235 //---------------------------------------------------------------------------
    -
    1236 // Unsupported zones: 125
    -
    1237 //---------------------------------------------------------------------------
    -
    1238 
    -
    1239 // Africa/Cairo {policy 'Egypt' not found}
    -
    1240 // Africa/Casablanca {UNTIL contains month/day/time}
    -
    1241 // Africa/El_Aaiun {UNTIL contains month/day/time}
    -
    1242 // Africa/Juba {UNTIL contains month/day/time}
    -
    1243 // Africa/Khartoum {UNTIL contains month/day/time}
    -
    1244 // Africa/Sao_Tome {UNTIL contains month/day/time}
    -
    1245 // Africa/Tripoli {UNTIL contains month/day/time}
    -
    1246 // America/Araguaina {UNTIL contains month/day/time}
    -
    1247 // America/Argentina/Buenos_Aires {UNTIL contains month/day/time}
    -
    1248 // America/Argentina/Catamarca {UNTIL contains month/day/time}
    -
    1249 // America/Argentina/Cordoba {UNTIL contains month/day/time}
    -
    1250 // America/Argentina/Jujuy {UNTIL contains month/day/time}
    -
    1251 // America/Argentina/La_Rioja {UNTIL contains month/day/time}
    -
    1252 // America/Argentina/Mendoza {UNTIL contains month/day/time}
    -
    1253 // America/Argentina/Rio_Gallegos {UNTIL contains month/day/time}
    -
    1254 // America/Argentina/Salta {UNTIL contains month/day/time}
    -
    1255 // America/Argentina/San_Juan {UNTIL contains month/day/time}
    -
    1256 // America/Argentina/San_Luis {UNTIL contains month/day/time}
    -
    1257 // America/Argentina/Tucuman {UNTIL contains month/day/time}
    -
    1258 // America/Argentina/Ushuaia {UNTIL contains month/day/time}
    -
    1259 // America/Asuncion {UNTIL contains month/day/time}
    -
    1260 // America/Bahia {UNTIL contains month/day/time}
    -
    1261 // America/Bahia_Banderas {UNTIL contains month/day/time}
    -
    1262 // America/Boa_Vista {UNTIL contains month/day/time}
    -
    1263 // America/Cambridge_Bay {UNTIL contains month/day/time}
    -
    1264 // America/Cancun {UNTIL contains month/day/time}
    -
    1265 // America/Caracas {UNTIL contains month/day/time}
    -
    1266 // America/Chihuahua {UNTIL contains month/day/time}
    -
    1267 // America/Ciudad_Juarez {UNTIL contains month/day/time}
    -
    1268 // America/Coyhaique {UNTIL contains month/day/time}
    -
    1269 // America/Cuiaba {UNTIL contains month/day/time}
    -
    1270 // America/Dawson {UNTIL contains month/day/time}
    -
    1271 // America/Eirunepe {UNTIL contains month/day/time}
    -
    1272 // America/Fort_Nelson {UNTIL contains month/day/time}
    -
    1273 // America/Fortaleza {UNTIL contains month/day/time}
    -
    1274 // America/Goose_Bay {UNTIL contains month/day/time}
    -
    1275 // America/Grand_Turk {UNTIL contains month/day/time}
    -
    1276 // America/Indiana/Knox {UNTIL contains month/day/time}
    -
    1277 // America/Indiana/Petersburg {UNTIL contains month/day/time}
    -
    1278 // America/Indiana/Tell_City {UNTIL contains month/day/time}
    -
    1279 // America/Indiana/Vincennes {UNTIL contains month/day/time}
    -
    1280 // America/Indiana/Winamac {UNTIL contains month/day/time}
    -
    1281 // America/Iqaluit {UNTIL contains month/day/time}
    -
    1282 // America/Kentucky/Monticello {UNTIL contains month/day/time}
    -
    1283 // America/Maceio {UNTIL contains month/day/time}
    -
    1284 // America/Metlakatla {UNTIL contains month/day/time}
    -
    1285 // America/Mexico_City {UNTIL contains month/day/time}
    -
    1286 // America/Noronha {UNTIL contains month/day/time}
    -
    1287 // America/North_Dakota/Beulah {UNTIL contains month/day/time}
    -
    1288 // America/North_Dakota/New_Salem {UNTIL contains month/day/time}
    -
    1289 // America/Nuuk {UNTIL contains month/day/time}
    -
    1290 // America/Ojinaga {UNTIL contains month/day/time}
    -
    1291 // America/Punta_Arenas {UNTIL contains month/day/time}
    -
    1292 // America/Rankin_Inlet {UNTIL contains month/day/time}
    -
    1293 // America/Recife {UNTIL contains month/day/time}
    -
    1294 // America/Resolute {UNTIL contains month/day/time}
    -
    1295 // America/Rio_Branco {UNTIL contains month/day/time}
    -
    1296 // America/Santarem {UNTIL contains month/day/time}
    -
    1297 // America/Santo_Domingo {UNTIL contains month/day/time}
    -
    1298 // America/Scoresbysund {UNTIL contains month/day/time}
    -
    1299 // America/St_Johns {UNTIL contains month/day/time}
    -
    1300 // America/Tijuana {UNTIL contains month/day/time}
    -
    1301 // America/Whitehorse {UNTIL contains month/day/time}
    -
    1302 // Antarctica/Casey {UNTIL contains month/day/time}
    -
    1303 // Antarctica/Davis {UNTIL contains month/day/time}
    -
    1304 // Antarctica/Macquarie {unsupported fixed RULES '1:00'}
    -
    1305 // Antarctica/Mawson {UNTIL contains month/day/time}
    -
    1306 // Antarctica/Palmer {UNTIL contains month/day/time}
    -
    1307 // Antarctica/Troll {UNTIL contains month/day/time}
    -
    1308 // Antarctica/Vostok {UNTIL contains month/day/time}
    -
    1309 // Asia/Almaty {UNTIL contains month/day/time}
    -
    1310 // Asia/Amman {UNTIL contains month/day/time}
    -
    1311 // Asia/Anadyr {UNTIL contains month/day/time}
    -
    1312 // Asia/Aqtau {UNTIL contains month/day/time}
    -
    1313 // Asia/Aqtobe {UNTIL contains month/day/time}
    -
    1314 // Asia/Atyrau {UNTIL contains month/day/time}
    -
    1315 // Asia/Barnaul {UNTIL contains month/day/time}
    -
    1316 // Asia/Bishkek {UNTIL contains month/day/time}
    -
    1317 // Asia/Chita {UNTIL contains month/day/time}
    -
    1318 // Asia/Colombo {UNTIL contains month/day/time}
    -
    1319 // Asia/Damascus {UNTIL contains month/day/time}
    -
    1320 // Asia/Dili {UNTIL contains month/day/time}
    -
    1321 // Asia/Famagusta {UNTIL contains month/day/time}
    -
    1322 // Asia/Gaza {UNTIL contains month/day/time}
    -
    1323 // Asia/Hebron {policy 'Palestine' not found}
    -
    1324 // Asia/Irkutsk {UNTIL contains month/day/time}
    -
    1325 // Asia/Kamchatka {UNTIL contains month/day/time}
    -
    1326 // Asia/Khandyga {UNTIL contains month/day/time}
    -
    1327 // Asia/Krasnoyarsk {UNTIL contains month/day/time}
    -
    1328 // Asia/Magadan {UNTIL contains month/day/time}
    -
    1329 // Asia/Novokuznetsk {UNTIL contains month/day/time}
    -
    1330 // Asia/Novosibirsk {UNTIL contains month/day/time}
    -
    1331 // Asia/Omsk {UNTIL contains month/day/time}
    -
    1332 // Asia/Oral {UNTIL contains month/day/time}
    -
    1333 // Asia/Pyongyang {UNTIL contains month/day/time}
    -
    1334 // Asia/Qostanay {UNTIL contains month/day/time}
    -
    1335 // Asia/Qyzylorda {UNTIL contains month/day/time}
    -
    1336 // Asia/Sakhalin {UNTIL contains month/day/time}
    -
    1337 // Asia/Srednekolymsk {UNTIL contains month/day/time}
    -
    1338 // Asia/Tbilisi {UNTIL contains month/day/time}
    -
    1339 // Asia/Tomsk {UNTIL contains month/day/time}
    -
    1340 // Asia/Ust-Nera {UNTIL contains month/day/time}
    -
    1341 // Asia/Vladivostok {UNTIL contains month/day/time}
    -
    1342 // Asia/Yakutsk {UNTIL contains month/day/time}
    -
    1343 // Asia/Yekaterinburg {UNTIL contains month/day/time}
    -
    1344 // Atlantic/Stanley {UNTIL contains month/day/time}
    -
    1345 // Europe/Astrakhan {UNTIL contains month/day/time}
    -
    1346 // Europe/Istanbul {UNTIL contains month/day/time}
    -
    1347 // Europe/Kaliningrad {UNTIL contains month/day/time}
    -
    1348 // Europe/Kirov {UNTIL contains month/day/time}
    -
    1349 // Europe/Minsk {UNTIL contains month/day/time}
    -
    1350 // Europe/Moscow {UNTIL contains month/day/time}
    -
    1351 // Europe/Riga {UNTIL contains month/day/time}
    -
    1352 // Europe/Samara {UNTIL contains month/day/time}
    -
    1353 // Europe/Saratov {UNTIL contains month/day/time}
    -
    1354 // Europe/Simferopol {UNTIL contains month/day/time}
    -
    1355 // Europe/Tallinn {UNTIL contains month/day/time}
    -
    1356 // Europe/Ulyanovsk {UNTIL contains month/day/time}
    -
    1357 // Europe/Vilnius {UNTIL contains month/day/time}
    -
    1358 // Europe/Volgograd {UNTIL contains month/day/time}
    -
    1359 // Pacific/Apia {UNTIL contains month/day/time}
    -
    1360 // Pacific/Bougainville {UNTIL contains month/day/time}
    -
    1361 // Pacific/Fakaofo {UNTIL contains month/day/time}
    -
    1362 // Pacific/Guam {UNTIL contains month/day/time}
    -
    1363 // Pacific/Norfolk {UNTIL contains month/day/time}
    -
    1364 
    -
    1365 
    -
    1366 //---------------------------------------------------------------------------
    -
    1367 // Notable zones: 33
    -
    1368 //---------------------------------------------------------------------------
    -
    1369 
    -
    1370 // Africa/Johannesburg {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1371 // Africa/Windhoek {
    -
    1372 // Namibia {
    -
    1373 // LETTER 'CAT' not single character,
    -
    1374 // LETTER 'WAT' not single character,
    -
    1375 // SAVE '-1:00' is a negative DST,
    -
    1376 // }
    -
    1377 // }
    -
    1378 // America/Belize {
    -
    1379 // Belize {LETTER 'CST' not single character}
    -
    1380 // }
    -
    1381 // America/Bogota {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1382 // America/Campo_Grande {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1383 // America/Guayaquil {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1384 // America/Lima {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1385 // America/Miquelon {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1386 // America/Moncton {
    -
    1387 // Moncton {AT '0:01' not multiple of :15 min}
    -
    1388 // }
    -
    1389 // America/Montevideo {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1390 // America/Santiago {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1391 // America/Sao_Paulo {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1392 // Asia/Baghdad {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1393 // Asia/Baku {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1394 // Asia/Dhaka {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1395 // Asia/Hovd {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1396 // Asia/Kathmandu {STDOFF '5:45' not multiple of :30 min}
    -
    1397 // Asia/Tehran {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1398 // Asia/Ulaanbaatar {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1399 // Asia/Yerevan {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1400 // Atlantic/Azores {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1401 // Australia/Eucla {
    -
    1402 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1403 // STDOFF '8:45' not multiple of :30 min,
    -
    1404 // }
    -
    1405 // Australia/Lord_Howe {
    -
    1406 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1407 // LH {SAVE '0:30' different from 1:00}
    -
    1408 // }
    -
    1409 // Europe/Dublin {
    -
    1410 // Eire {SAVE '-1:00' is a negative DST}
    -
    1411 // }
    -
    1412 // Indian/Mauritius {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1413 // Pacific/Chatham {
    -
    1414 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1415 // STDOFF '12:45' not multiple of :30 min,
    -
    1416 // }
    -
    1417 // Pacific/Easter {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1418 // Pacific/Efate {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1419 // Pacific/Fiji {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1420 // Pacific/Galapagos {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1421 // Pacific/Noumea {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1422 // Pacific/Rarotonga {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1423 // Pacific/Tongatapu {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1424 
    -
    1425 
    -
    1426 //---------------------------------------------------------------------------
    -
    1427 // Unsupported links: 26
    -
    1428 //---------------------------------------------------------------------------
    -
    1429 
    -
    1430 // America/Argentina/ComodRivadavia {Target Zone "America/Argentina/Catamarca" missing}
    -
    1431 // America/Buenos_Aires {Target Zone "America/Argentina/Buenos_Aires" missing}
    -
    1432 // America/Catamarca {Target Zone "America/Argentina/Catamarca" missing}
    -
    1433 // America/Cordoba {Target Zone "America/Argentina/Cordoba" missing}
    -
    1434 // America/Ensenada {Target Zone "America/Tijuana" missing}
    -
    1435 // America/Godthab {Target Zone "America/Nuuk" missing}
    -
    1436 // America/Jujuy {Target Zone "America/Argentina/Jujuy" missing}
    -
    1437 // America/Knox_IN {Target Zone "America/Indiana/Knox" missing}
    -
    1438 // America/Mendoza {Target Zone "America/Argentina/Mendoza" missing}
    -
    1439 // America/Pangnirtung {Target Zone "America/Iqaluit" missing}
    -
    1440 // America/Porto_Acre {Target Zone "America/Rio_Branco" missing}
    -
    1441 // America/Rosario {Target Zone "America/Argentina/Cordoba" missing}
    -
    1442 // America/Santa_Isabel {Target Zone "America/Tijuana" missing}
    -
    1443 // Asia/Istanbul {Target Zone "Europe/Istanbul" missing}
    -
    1444 // Brazil/Acre {Target Zone "America/Rio_Branco" missing}
    -
    1445 // Brazil/DeNoronha {Target Zone "America/Noronha" missing}
    -
    1446 // Canada/Newfoundland {Target Zone "America/St_Johns" missing}
    -
    1447 // Canada/Yukon {Target Zone "America/Whitehorse" missing}
    -
    1448 // Egypt {Target Zone "Africa/Cairo" missing}
    -
    1449 // Libya {Target Zone "Africa/Tripoli" missing}
    -
    1450 // Mexico/BajaNorte {Target Zone "America/Tijuana" missing}
    -
    1451 // Mexico/General {Target Zone "America/Mexico_City" missing}
    -
    1452 // Pacific/Saipan {Target Zone "Pacific/Guam" missing}
    -
    1453 // Turkey {Target Zone "Europe/Istanbul" missing}
    -
    1454 // US/Indiana-Starke {Target Zone "America/Indiana/Knox" missing}
    -
    1455 // W-SU {Target Zone "Europe/Moscow" missing}
    -
    1456 
    -
    1457 
    -
    1458 //---------------------------------------------------------------------------
    -
    1459 // Notable links: 0
    -
    1460 //---------------------------------------------------------------------------
    -
    1461 
    -
    1462 
    -
    1463 
    -
    1464 }
    -
    1465 }
    -
    1466 
    -
    1467 #endif
    -
    - - - - diff --git a/docs/html/zonedb_2zone__policies_8cpp_source.html b/docs/html/zonedb_2zone__policies_8cpp_source.html deleted file mode 100644 index 37669e082..000000000 --- a/docs/html/zonedb_2zone__policies_8cpp_source.html +++ /dev/null @@ -1,5279 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/zone_policies.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace zonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 446 (215 zones, 231 links)
    -
    30 // Unsupported Zones: 151 (125 zones, 26 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2023]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2025]
    -
    40 // Max Buffer Size: 6
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 446
    -
    44 // Eras: 227
    -
    45 // Policies: 63
    -
    46 // Rules: 352
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 3168
    -
    51 // Policies: 189
    -
    52 // Eras: 2497
    -
    53 // Zones: 2795
    -
    54 // Links: 3003
    -
    55 // Registry: 892
    -
    56 // Formats: 175
    -
    57 // Letters: 29
    -
    58 // Fragments: 116
    -
    59 // Names: 4142 (original: 6494)
    -
    60 // TOTAL: 17022
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 4224
    -
    65 // Policies: 504
    -
    66 // Eras: 3632
    -
    67 // Zones: 5160
    -
    68 // Links: 5544
    -
    69 // Registry: 1784
    -
    70 // Formats: 175
    -
    71 // Letters: 41
    -
    72 // Fragments: 138
    -
    73 // Names: 4142 (original: 6494)
    -
    74 // TOTAL: 25368
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #include <zoneinfo/compat.h>
    -
    79 #include "zone_policies.h"
    -
    80 
    -
    81 namespace ace_time {
    -
    82 namespace zonedb {
    -
    83 
    -
    84 //---------------------------------------------------------------------------
    -
    85 // Policies: 63
    -
    86 // Rules: 352
    -
    87 //---------------------------------------------------------------------------
    -
    88 
    -
    89 //---------------------------------------------------------------------------
    -
    90 // Policy name: AN
    -
    91 // Rules: 10
    -
    92 //---------------------------------------------------------------------------
    -
    93 
    -
    94 static const basic::Info::ZoneRule kZoneRulesAN[] ACE_TIME_PROGMEM = {
    -
    95  // Anchor: Rule AN 1990 1995 - Mar Sun>=1 2:00s 0 S
    -
    96  {
    -
    97  -127 /*fromYearTiny (-32767)*/,
    -
    98  -127 /*toYearTiny (-32767)*/,
    -
    99  1 /*inMonth*/,
    -
    100  0 /*onDayOfWeek*/,
    -
    101  1 /*onDayOfMonth*/,
    -
    102  0 /*atTimeCode*/,
    -
    103  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    104  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    105  4 /*letterIndex ("S")*/,
    -
    106  },
    -
    107  // Rule AN 1987 1999 - Oct lastSun 2:00s 1:00 D
    -
    108  {
    -
    109  -113 /*fromYearTiny (1987)*/,
    -
    110  -101 /*toYearTiny (1999)*/,
    -
    111  10 /*inMonth*/,
    -
    112  7 /*onDayOfWeek*/,
    -
    113  0 /*onDayOfMonth*/,
    -
    114  8 /*atTimeCode*/,
    -
    115  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    116  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    117  3 /*letterIndex ("D")*/,
    -
    118  },
    -
    119  // Rule AN 1990 1995 - Mar Sun>=1 2:00s 0 S
    -
    120  {
    -
    121  -110 /*fromYearTiny (1990)*/,
    -
    122  -105 /*toYearTiny (1995)*/,
    -
    123  3 /*inMonth*/,
    -
    124  7 /*onDayOfWeek*/,
    -
    125  1 /*onDayOfMonth*/,
    -
    126  8 /*atTimeCode*/,
    -
    127  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    128  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    129  4 /*letterIndex ("S")*/,
    -
    130  },
    -
    131  // Rule AN 1996 2005 - Mar lastSun 2:00s 0 S
    -
    132  {
    -
    133  -104 /*fromYearTiny (1996)*/,
    -
    134  -95 /*toYearTiny (2005)*/,
    -
    135  3 /*inMonth*/,
    -
    136  7 /*onDayOfWeek*/,
    -
    137  0 /*onDayOfMonth*/,
    -
    138  8 /*atTimeCode*/,
    -
    139  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    140  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    141  4 /*letterIndex ("S")*/,
    -
    142  },
    -
    143  // Rule AN 2000 only - Aug lastSun 2:00s 1:00 D
    -
    144  {
    -
    145  -100 /*fromYearTiny (2000)*/,
    -
    146  -100 /*toYearTiny (2000)*/,
    -
    147  8 /*inMonth*/,
    -
    148  7 /*onDayOfWeek*/,
    -
    149  0 /*onDayOfMonth*/,
    -
    150  8 /*atTimeCode*/,
    -
    151  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    152  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    153  3 /*letterIndex ("D")*/,
    -
    154  },
    -
    155  // Rule AN 2001 2007 - Oct lastSun 2:00s 1:00 D
    -
    156  {
    -
    157  -99 /*fromYearTiny (2001)*/,
    -
    158  -93 /*toYearTiny (2007)*/,
    -
    159  10 /*inMonth*/,
    -
    160  7 /*onDayOfWeek*/,
    -
    161  0 /*onDayOfMonth*/,
    -
    162  8 /*atTimeCode*/,
    -
    163  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    164  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    165  3 /*letterIndex ("D")*/,
    -
    166  },
    -
    167  // Rule AN 2006 only - Apr Sun>=1 2:00s 0 S
    -
    168  {
    -
    169  -94 /*fromYearTiny (2006)*/,
    -
    170  -94 /*toYearTiny (2006)*/,
    -
    171  4 /*inMonth*/,
    -
    172  7 /*onDayOfWeek*/,
    -
    173  1 /*onDayOfMonth*/,
    -
    174  8 /*atTimeCode*/,
    -
    175  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    176  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    177  4 /*letterIndex ("S")*/,
    -
    178  },
    -
    179  // Rule AN 2007 only - Mar lastSun 2:00s 0 S
    -
    180  {
    -
    181  -93 /*fromYearTiny (2007)*/,
    -
    182  -93 /*toYearTiny (2007)*/,
    -
    183  3 /*inMonth*/,
    -
    184  7 /*onDayOfWeek*/,
    -
    185  0 /*onDayOfMonth*/,
    -
    186  8 /*atTimeCode*/,
    -
    187  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    188  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    189  4 /*letterIndex ("S")*/,
    -
    190  },
    -
    191  // Rule AN 2008 max - Apr Sun>=1 2:00s 0 S
    -
    192  {
    -
    193  -92 /*fromYearTiny (2008)*/,
    -
    194  126 /*toYearTiny (32766)*/,
    -
    195  4 /*inMonth*/,
    -
    196  7 /*onDayOfWeek*/,
    -
    197  1 /*onDayOfMonth*/,
    -
    198  8 /*atTimeCode*/,
    -
    199  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    200  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    201  4 /*letterIndex ("S")*/,
    -
    202  },
    -
    203  // Rule AN 2008 max - Oct Sun>=1 2:00s 1:00 D
    -
    204  {
    -
    205  -92 /*fromYearTiny (2008)*/,
    -
    206  126 /*toYearTiny (32766)*/,
    -
    207  10 /*inMonth*/,
    -
    208  7 /*onDayOfWeek*/,
    -
    209  1 /*onDayOfMonth*/,
    -
    210  8 /*atTimeCode*/,
    -
    211  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    212  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    213  3 /*letterIndex ("D")*/,
    -
    214  },
    -
    215 
    -
    216 };
    -
    217 
    -
    218 const basic::Info::ZonePolicy kZonePolicyAN ACE_TIME_PROGMEM = {
    -
    219  kZoneRulesAN /*rules*/,
    -
    220  10 /*numRules*/,
    -
    221 };
    -
    222 
    -
    223 //---------------------------------------------------------------------------
    -
    224 // Policy name: AQ
    -
    225 // Rules: 1
    -
    226 //---------------------------------------------------------------------------
    -
    227 
    -
    228 static const basic::Info::ZoneRule kZoneRulesAQ[] ACE_TIME_PROGMEM = {
    -
    229  // Anchor: Rule AQ 1990 1992 - Mar Sun>=1 2:00s 0 S
    -
    230  {
    -
    231  -127 /*fromYearTiny (-32767)*/,
    -
    232  -127 /*toYearTiny (-32767)*/,
    -
    233  1 /*inMonth*/,
    -
    234  0 /*onDayOfWeek*/,
    -
    235  1 /*onDayOfMonth*/,
    -
    236  0 /*atTimeCode*/,
    -
    237  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    238  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    239  4 /*letterIndex ("S")*/,
    -
    240  },
    -
    241 
    -
    242 };
    -
    243 
    -
    244 const basic::Info::ZonePolicy kZonePolicyAQ ACE_TIME_PROGMEM = {
    -
    245  kZoneRulesAQ /*rules*/,
    -
    246  1 /*numRules*/,
    -
    247 };
    -
    248 
    -
    249 //---------------------------------------------------------------------------
    -
    250 // Policy name: AS
    -
    251 // Rules: 8
    -
    252 //---------------------------------------------------------------------------
    -
    253 
    -
    254 static const basic::Info::ZoneRule kZoneRulesAS[] ACE_TIME_PROGMEM = {
    -
    255  // Anchor: Rule AS 1994 only - Mar 20 2:00s 0 S
    -
    256  {
    -
    257  -127 /*fromYearTiny (-32767)*/,
    -
    258  -127 /*toYearTiny (-32767)*/,
    -
    259  1 /*inMonth*/,
    -
    260  0 /*onDayOfWeek*/,
    -
    261  1 /*onDayOfMonth*/,
    -
    262  0 /*atTimeCode*/,
    -
    263  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    264  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    265  4 /*letterIndex ("S")*/,
    -
    266  },
    -
    267  // Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 D
    -
    268  {
    -
    269  -113 /*fromYearTiny (1987)*/,
    -
    270  -93 /*toYearTiny (2007)*/,
    -
    271  10 /*inMonth*/,
    -
    272  7 /*onDayOfWeek*/,
    -
    273  0 /*onDayOfMonth*/,
    -
    274  8 /*atTimeCode*/,
    -
    275  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    276  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    277  3 /*letterIndex ("D")*/,
    -
    278  },
    -
    279  // Rule AS 1994 only - Mar 20 2:00s 0 S
    -
    280  {
    -
    281  -106 /*fromYearTiny (1994)*/,
    -
    282  -106 /*toYearTiny (1994)*/,
    -
    283  3 /*inMonth*/,
    -
    284  0 /*onDayOfWeek*/,
    -
    285  20 /*onDayOfMonth*/,
    -
    286  8 /*atTimeCode*/,
    -
    287  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    288  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    289  4 /*letterIndex ("S")*/,
    -
    290  },
    -
    291  // Rule AS 1995 2005 - Mar lastSun 2:00s 0 S
    -
    292  {
    -
    293  -105 /*fromYearTiny (1995)*/,
    -
    294  -95 /*toYearTiny (2005)*/,
    -
    295  3 /*inMonth*/,
    -
    296  7 /*onDayOfWeek*/,
    -
    297  0 /*onDayOfMonth*/,
    -
    298  8 /*atTimeCode*/,
    -
    299  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    300  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    301  4 /*letterIndex ("S")*/,
    -
    302  },
    -
    303  // Rule AS 2006 only - Apr 2 2:00s 0 S
    -
    304  {
    -
    305  -94 /*fromYearTiny (2006)*/,
    -
    306  -94 /*toYearTiny (2006)*/,
    -
    307  4 /*inMonth*/,
    -
    308  0 /*onDayOfWeek*/,
    -
    309  2 /*onDayOfMonth*/,
    -
    310  8 /*atTimeCode*/,
    -
    311  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    312  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    313  4 /*letterIndex ("S")*/,
    -
    314  },
    -
    315  // Rule AS 2007 only - Mar lastSun 2:00s 0 S
    -
    316  {
    -
    317  -93 /*fromYearTiny (2007)*/,
    -
    318  -93 /*toYearTiny (2007)*/,
    -
    319  3 /*inMonth*/,
    -
    320  7 /*onDayOfWeek*/,
    -
    321  0 /*onDayOfMonth*/,
    -
    322  8 /*atTimeCode*/,
    -
    323  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    324  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    325  4 /*letterIndex ("S")*/,
    -
    326  },
    -
    327  // Rule AS 2008 max - Apr Sun>=1 2:00s 0 S
    -
    328  {
    -
    329  -92 /*fromYearTiny (2008)*/,
    -
    330  126 /*toYearTiny (32766)*/,
    -
    331  4 /*inMonth*/,
    -
    332  7 /*onDayOfWeek*/,
    -
    333  1 /*onDayOfMonth*/,
    -
    334  8 /*atTimeCode*/,
    -
    335  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    336  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    337  4 /*letterIndex ("S")*/,
    -
    338  },
    -
    339  // Rule AS 2008 max - Oct Sun>=1 2:00s 1:00 D
    -
    340  {
    -
    341  -92 /*fromYearTiny (2008)*/,
    -
    342  126 /*toYearTiny (32766)*/,
    -
    343  10 /*inMonth*/,
    -
    344  7 /*onDayOfWeek*/,
    -
    345  1 /*onDayOfMonth*/,
    -
    346  8 /*atTimeCode*/,
    -
    347  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    348  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    349  3 /*letterIndex ("D")*/,
    -
    350  },
    -
    351 
    -
    352 };
    -
    353 
    -
    354 const basic::Info::ZonePolicy kZonePolicyAS ACE_TIME_PROGMEM = {
    -
    355  kZoneRulesAS /*rules*/,
    -
    356  8 /*numRules*/,
    -
    357 };
    -
    358 
    -
    359 //---------------------------------------------------------------------------
    -
    360 // Policy name: AT
    -
    361 // Rules: 9
    -
    362 //---------------------------------------------------------------------------
    -
    363 
    -
    364 static const basic::Info::ZoneRule kZoneRulesAT[] ACE_TIME_PROGMEM = {
    -
    365  // Anchor: Rule AT 1991 2005 - Mar lastSun 2:00s 0 S
    -
    366  {
    -
    367  -127 /*fromYearTiny (-32767)*/,
    -
    368  -127 /*toYearTiny (-32767)*/,
    -
    369  1 /*inMonth*/,
    -
    370  0 /*onDayOfWeek*/,
    -
    371  1 /*onDayOfMonth*/,
    -
    372  0 /*atTimeCode*/,
    -
    373  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    374  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    375  4 /*letterIndex ("S")*/,
    -
    376  },
    -
    377  // Rule AT 1988 1990 - Oct lastSun 2:00s 1:00 D
    -
    378  {
    -
    379  -112 /*fromYearTiny (1988)*/,
    -
    380  -110 /*toYearTiny (1990)*/,
    -
    381  10 /*inMonth*/,
    -
    382  7 /*onDayOfWeek*/,
    -
    383  0 /*onDayOfMonth*/,
    -
    384  8 /*atTimeCode*/,
    -
    385  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    386  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    387  3 /*letterIndex ("D")*/,
    -
    388  },
    -
    389  // Rule AT 1991 1999 - Oct Sun>=1 2:00s 1:00 D
    -
    390  {
    -
    391  -109 /*fromYearTiny (1991)*/,
    -
    392  -101 /*toYearTiny (1999)*/,
    -
    393  10 /*inMonth*/,
    -
    394  7 /*onDayOfWeek*/,
    -
    395  1 /*onDayOfMonth*/,
    -
    396  8 /*atTimeCode*/,
    -
    397  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    398  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    399  3 /*letterIndex ("D")*/,
    -
    400  },
    -
    401  // Rule AT 1991 2005 - Mar lastSun 2:00s 0 S
    -
    402  {
    -
    403  -109 /*fromYearTiny (1991)*/,
    -
    404  -95 /*toYearTiny (2005)*/,
    -
    405  3 /*inMonth*/,
    -
    406  7 /*onDayOfWeek*/,
    -
    407  0 /*onDayOfMonth*/,
    -
    408  8 /*atTimeCode*/,
    -
    409  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    410  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    411  4 /*letterIndex ("S")*/,
    -
    412  },
    -
    413  // Rule AT 2000 only - Aug lastSun 2:00s 1:00 D
    -
    414  {
    -
    415  -100 /*fromYearTiny (2000)*/,
    -
    416  -100 /*toYearTiny (2000)*/,
    -
    417  8 /*inMonth*/,
    -
    418  7 /*onDayOfWeek*/,
    -
    419  0 /*onDayOfMonth*/,
    -
    420  8 /*atTimeCode*/,
    -
    421  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    422  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    423  3 /*letterIndex ("D")*/,
    -
    424  },
    -
    425  // Rule AT 2001 max - Oct Sun>=1 2:00s 1:00 D
    -
    426  {
    -
    427  -99 /*fromYearTiny (2001)*/,
    -
    428  126 /*toYearTiny (32766)*/,
    -
    429  10 /*inMonth*/,
    -
    430  7 /*onDayOfWeek*/,
    -
    431  1 /*onDayOfMonth*/,
    -
    432  8 /*atTimeCode*/,
    -
    433  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    434  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    435  3 /*letterIndex ("D")*/,
    -
    436  },
    -
    437  // Rule AT 2006 only - Apr Sun>=1 2:00s 0 S
    -
    438  {
    -
    439  -94 /*fromYearTiny (2006)*/,
    -
    440  -94 /*toYearTiny (2006)*/,
    -
    441  4 /*inMonth*/,
    -
    442  7 /*onDayOfWeek*/,
    -
    443  1 /*onDayOfMonth*/,
    -
    444  8 /*atTimeCode*/,
    -
    445  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    446  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    447  4 /*letterIndex ("S")*/,
    -
    448  },
    -
    449  // Rule AT 2007 only - Mar lastSun 2:00s 0 S
    -
    450  {
    -
    451  -93 /*fromYearTiny (2007)*/,
    -
    452  -93 /*toYearTiny (2007)*/,
    -
    453  3 /*inMonth*/,
    -
    454  7 /*onDayOfWeek*/,
    -
    455  0 /*onDayOfMonth*/,
    -
    456  8 /*atTimeCode*/,
    -
    457  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    458  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    459  4 /*letterIndex ("S")*/,
    -
    460  },
    -
    461  // Rule AT 2008 max - Apr Sun>=1 2:00s 0 S
    -
    462  {
    -
    463  -92 /*fromYearTiny (2008)*/,
    -
    464  126 /*toYearTiny (32766)*/,
    -
    465  4 /*inMonth*/,
    -
    466  7 /*onDayOfWeek*/,
    -
    467  1 /*onDayOfMonth*/,
    -
    468  8 /*atTimeCode*/,
    -
    469  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    470  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    471  4 /*letterIndex ("S")*/,
    -
    472  },
    -
    473 
    -
    474 };
    -
    475 
    -
    476 const basic::Info::ZonePolicy kZonePolicyAT ACE_TIME_PROGMEM = {
    -
    477  kZoneRulesAT /*rules*/,
    -
    478  9 /*numRules*/,
    -
    479 };
    -
    480 
    -
    481 //---------------------------------------------------------------------------
    -
    482 // Policy name: AV
    -
    483 // Rules: 10
    -
    484 //---------------------------------------------------------------------------
    -
    485 
    -
    486 static const basic::Info::ZoneRule kZoneRulesAV[] ACE_TIME_PROGMEM = {
    -
    487  // Anchor: Rule AV 1991 1994 - Mar Sun>=1 2:00s 0 S
    -
    488  {
    -
    489  -127 /*fromYearTiny (-32767)*/,
    -
    490  -127 /*toYearTiny (-32767)*/,
    -
    491  1 /*inMonth*/,
    -
    492  0 /*onDayOfWeek*/,
    -
    493  1 /*onDayOfMonth*/,
    -
    494  0 /*atTimeCode*/,
    -
    495  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    496  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    497  4 /*letterIndex ("S")*/,
    -
    498  },
    -
    499  // Rule AV 1988 1999 - Oct lastSun 2:00s 1:00 D
    -
    500  {
    -
    501  -112 /*fromYearTiny (1988)*/,
    -
    502  -101 /*toYearTiny (1999)*/,
    -
    503  10 /*inMonth*/,
    -
    504  7 /*onDayOfWeek*/,
    -
    505  0 /*onDayOfMonth*/,
    -
    506  8 /*atTimeCode*/,
    -
    507  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    508  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    509  3 /*letterIndex ("D")*/,
    -
    510  },
    -
    511  // Rule AV 1991 1994 - Mar Sun>=1 2:00s 0 S
    -
    512  {
    -
    513  -109 /*fromYearTiny (1991)*/,
    -
    514  -106 /*toYearTiny (1994)*/,
    -
    515  3 /*inMonth*/,
    -
    516  7 /*onDayOfWeek*/,
    -
    517  1 /*onDayOfMonth*/,
    -
    518  8 /*atTimeCode*/,
    -
    519  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    520  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    521  4 /*letterIndex ("S")*/,
    -
    522  },
    -
    523  // Rule AV 1995 2005 - Mar lastSun 2:00s 0 S
    -
    524  {
    -
    525  -105 /*fromYearTiny (1995)*/,
    -
    526  -95 /*toYearTiny (2005)*/,
    -
    527  3 /*inMonth*/,
    -
    528  7 /*onDayOfWeek*/,
    -
    529  0 /*onDayOfMonth*/,
    -
    530  8 /*atTimeCode*/,
    -
    531  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    532  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    533  4 /*letterIndex ("S")*/,
    -
    534  },
    -
    535  // Rule AV 2000 only - Aug lastSun 2:00s 1:00 D
    -
    536  {
    -
    537  -100 /*fromYearTiny (2000)*/,
    -
    538  -100 /*toYearTiny (2000)*/,
    -
    539  8 /*inMonth*/,
    -
    540  7 /*onDayOfWeek*/,
    -
    541  0 /*onDayOfMonth*/,
    -
    542  8 /*atTimeCode*/,
    -
    543  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    544  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    545  3 /*letterIndex ("D")*/,
    -
    546  },
    -
    547  // Rule AV 2001 2007 - Oct lastSun 2:00s 1:00 D
    -
    548  {
    -
    549  -99 /*fromYearTiny (2001)*/,
    -
    550  -93 /*toYearTiny (2007)*/,
    -
    551  10 /*inMonth*/,
    -
    552  7 /*onDayOfWeek*/,
    -
    553  0 /*onDayOfMonth*/,
    -
    554  8 /*atTimeCode*/,
    -
    555  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    556  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    557  3 /*letterIndex ("D")*/,
    -
    558  },
    -
    559  // Rule AV 2006 only - Apr Sun>=1 2:00s 0 S
    -
    560  {
    -
    561  -94 /*fromYearTiny (2006)*/,
    -
    562  -94 /*toYearTiny (2006)*/,
    -
    563  4 /*inMonth*/,
    -
    564  7 /*onDayOfWeek*/,
    -
    565  1 /*onDayOfMonth*/,
    -
    566  8 /*atTimeCode*/,
    -
    567  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    568  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    569  4 /*letterIndex ("S")*/,
    -
    570  },
    -
    571  // Rule AV 2007 only - Mar lastSun 2:00s 0 S
    -
    572  {
    -
    573  -93 /*fromYearTiny (2007)*/,
    -
    574  -93 /*toYearTiny (2007)*/,
    -
    575  3 /*inMonth*/,
    -
    576  7 /*onDayOfWeek*/,
    -
    577  0 /*onDayOfMonth*/,
    -
    578  8 /*atTimeCode*/,
    -
    579  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    580  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    581  4 /*letterIndex ("S")*/,
    -
    582  },
    -
    583  // Rule AV 2008 max - Apr Sun>=1 2:00s 0 S
    -
    584  {
    -
    585  -92 /*fromYearTiny (2008)*/,
    -
    586  126 /*toYearTiny (32766)*/,
    -
    587  4 /*inMonth*/,
    -
    588  7 /*onDayOfWeek*/,
    -
    589  1 /*onDayOfMonth*/,
    -
    590  8 /*atTimeCode*/,
    -
    591  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    592  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    593  4 /*letterIndex ("S")*/,
    -
    594  },
    -
    595  // Rule AV 2008 max - Oct Sun>=1 2:00s 1:00 D
    -
    596  {
    -
    597  -92 /*fromYearTiny (2008)*/,
    -
    598  126 /*toYearTiny (32766)*/,
    -
    599  10 /*inMonth*/,
    -
    600  7 /*onDayOfWeek*/,
    -
    601  1 /*onDayOfMonth*/,
    -
    602  8 /*atTimeCode*/,
    -
    603  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    604  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    605  3 /*letterIndex ("D")*/,
    -
    606  },
    -
    607 
    -
    608 };
    -
    609 
    -
    610 const basic::Info::ZonePolicy kZonePolicyAV ACE_TIME_PROGMEM = {
    -
    611  kZoneRulesAV /*rules*/,
    -
    612  10 /*numRules*/,
    -
    613 };
    -
    614 
    -
    615 //---------------------------------------------------------------------------
    -
    616 // Policy name: AW
    -
    617 // Rules: 5
    -
    618 //---------------------------------------------------------------------------
    -
    619 
    -
    620 static const basic::Info::ZoneRule kZoneRulesAW[] ACE_TIME_PROGMEM = {
    -
    621  // Anchor: Rule AW 1992 only - Mar Sun>=1 2:00s 0 S
    -
    622  {
    -
    623  -127 /*fromYearTiny (-32767)*/,
    -
    624  -127 /*toYearTiny (-32767)*/,
    -
    625  1 /*inMonth*/,
    -
    626  0 /*onDayOfWeek*/,
    -
    627  1 /*onDayOfMonth*/,
    -
    628  0 /*atTimeCode*/,
    -
    629  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    630  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    631  4 /*letterIndex ("S")*/,
    -
    632  },
    -
    633  // Rule AW 1992 only - Mar Sun>=1 2:00s 0 S
    -
    634  {
    -
    635  -108 /*fromYearTiny (1992)*/,
    -
    636  -108 /*toYearTiny (1992)*/,
    -
    637  3 /*inMonth*/,
    -
    638  7 /*onDayOfWeek*/,
    -
    639  1 /*onDayOfMonth*/,
    -
    640  8 /*atTimeCode*/,
    -
    641  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    642  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    643  4 /*letterIndex ("S")*/,
    -
    644  },
    -
    645  // Rule AW 2006 only - Dec 3 2:00s 1:00 D
    -
    646  {
    -
    647  -94 /*fromYearTiny (2006)*/,
    -
    648  -94 /*toYearTiny (2006)*/,
    -
    649  12 /*inMonth*/,
    -
    650  0 /*onDayOfWeek*/,
    -
    651  3 /*onDayOfMonth*/,
    -
    652  8 /*atTimeCode*/,
    -
    653  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    654  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    655  3 /*letterIndex ("D")*/,
    -
    656  },
    -
    657  // Rule AW 2007 2009 - Mar lastSun 2:00s 0 S
    -
    658  {
    -
    659  -93 /*fromYearTiny (2007)*/,
    -
    660  -91 /*toYearTiny (2009)*/,
    -
    661  3 /*inMonth*/,
    -
    662  7 /*onDayOfWeek*/,
    -
    663  0 /*onDayOfMonth*/,
    -
    664  8 /*atTimeCode*/,
    -
    665  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    666  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    667  4 /*letterIndex ("S")*/,
    -
    668  },
    -
    669  // Rule AW 2007 2008 - Oct lastSun 2:00s 1:00 D
    -
    670  {
    -
    671  -93 /*fromYearTiny (2007)*/,
    -
    672  -92 /*toYearTiny (2008)*/,
    -
    673  10 /*inMonth*/,
    -
    674  7 /*onDayOfWeek*/,
    -
    675  0 /*onDayOfMonth*/,
    -
    676  8 /*atTimeCode*/,
    -
    677  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    678  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    679  3 /*letterIndex ("D")*/,
    -
    680  },
    -
    681 
    -
    682 };
    -
    683 
    -
    684 const basic::Info::ZonePolicy kZonePolicyAW ACE_TIME_PROGMEM = {
    -
    685  kZoneRulesAW /*rules*/,
    -
    686  5 /*numRules*/,
    -
    687 };
    -
    688 
    -
    689 //---------------------------------------------------------------------------
    -
    690 // Policy name: Armenia
    -
    691 // Rules: 3
    -
    692 //---------------------------------------------------------------------------
    -
    693 
    -
    694 static const basic::Info::ZoneRule kZoneRulesArmenia[] ACE_TIME_PROGMEM = {
    -
    695  // Anchor: Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
    -
    696  {
    -
    697  -127 /*fromYearTiny (-32767)*/,
    -
    698  -127 /*toYearTiny (-32767)*/,
    -
    699  1 /*inMonth*/,
    -
    700  0 /*onDayOfWeek*/,
    -
    701  1 /*onDayOfMonth*/,
    -
    702  0 /*atTimeCode*/,
    -
    703  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    704  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    705  0 /*letterIndex ("")*/,
    -
    706  },
    -
    707  // Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 -
    -
    708  {
    -
    709  -89 /*fromYearTiny (2011)*/,
    -
    710  -89 /*toYearTiny (2011)*/,
    -
    711  3 /*inMonth*/,
    -
    712  7 /*onDayOfWeek*/,
    -
    713  0 /*onDayOfMonth*/,
    -
    714  8 /*atTimeCode*/,
    -
    715  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    716  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    717  0 /*letterIndex ("")*/,
    -
    718  },
    -
    719  // Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
    -
    720  {
    -
    721  -89 /*fromYearTiny (2011)*/,
    -
    722  -89 /*toYearTiny (2011)*/,
    -
    723  10 /*inMonth*/,
    -
    724  7 /*onDayOfWeek*/,
    -
    725  0 /*onDayOfMonth*/,
    -
    726  8 /*atTimeCode*/,
    -
    727  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    728  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    729  0 /*letterIndex ("")*/,
    -
    730  },
    -
    731 
    -
    732 };
    -
    733 
    -
    734 const basic::Info::ZonePolicy kZonePolicyArmenia ACE_TIME_PROGMEM = {
    -
    735  kZoneRulesArmenia /*rules*/,
    -
    736  3 /*numRules*/,
    -
    737 };
    -
    738 
    -
    739 //---------------------------------------------------------------------------
    -
    740 // Policy name: Aus
    -
    741 // Rules: 1
    -
    742 //---------------------------------------------------------------------------
    -
    743 
    -
    744 static const basic::Info::ZoneRule kZoneRulesAus[] ACE_TIME_PROGMEM = {
    -
    745  // Anchor: Rule Aus 1943 1944 - Mar lastSun 2:00s 0 S
    -
    746  {
    -
    747  -127 /*fromYearTiny (-32767)*/,
    -
    748  -127 /*toYearTiny (-32767)*/,
    -
    749  1 /*inMonth*/,
    -
    750  0 /*onDayOfWeek*/,
    -
    751  1 /*onDayOfMonth*/,
    -
    752  0 /*atTimeCode*/,
    -
    753  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    754  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    755  4 /*letterIndex ("S")*/,
    -
    756  },
    -
    757 
    -
    758 };
    -
    759 
    -
    760 const basic::Info::ZonePolicy kZonePolicyAus ACE_TIME_PROGMEM = {
    -
    761  kZoneRulesAus /*rules*/,
    -
    762  1 /*numRules*/,
    -
    763 };
    -
    764 
    -
    765 //---------------------------------------------------------------------------
    -
    766 // Policy name: Azer
    -
    767 // Rules: 3
    -
    768 //---------------------------------------------------------------------------
    -
    769 
    -
    770 static const basic::Info::ZoneRule kZoneRulesAzer[] ACE_TIME_PROGMEM = {
    -
    771  // Anchor: Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
    -
    772  {
    -
    773  -127 /*fromYearTiny (-32767)*/,
    -
    774  -127 /*toYearTiny (-32767)*/,
    -
    775  1 /*inMonth*/,
    -
    776  0 /*onDayOfWeek*/,
    -
    777  1 /*onDayOfMonth*/,
    -
    778  0 /*atTimeCode*/,
    -
    779  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    780  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    781  0 /*letterIndex ("")*/,
    -
    782  },
    -
    783  // Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 -
    -
    784  {
    -
    785  -103 /*fromYearTiny (1997)*/,
    -
    786  -85 /*toYearTiny (2015)*/,
    -
    787  3 /*inMonth*/,
    -
    788  7 /*onDayOfWeek*/,
    -
    789  0 /*onDayOfMonth*/,
    -
    790  16 /*atTimeCode*/,
    -
    791  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    792  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    793  0 /*letterIndex ("")*/,
    -
    794  },
    -
    795  // Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
    -
    796  {
    -
    797  -103 /*fromYearTiny (1997)*/,
    -
    798  -85 /*toYearTiny (2015)*/,
    -
    799  10 /*inMonth*/,
    -
    800  7 /*onDayOfWeek*/,
    -
    801  0 /*onDayOfMonth*/,
    -
    802  20 /*atTimeCode*/,
    -
    803  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    804  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    805  0 /*letterIndex ("")*/,
    -
    806  },
    -
    807 
    -
    808 };
    -
    809 
    -
    810 const basic::Info::ZonePolicy kZonePolicyAzer ACE_TIME_PROGMEM = {
    -
    811  kZoneRulesAzer /*rules*/,
    -
    812  3 /*numRules*/,
    -
    813 };
    -
    814 
    -
    815 //---------------------------------------------------------------------------
    -
    816 // Policy name: Barb
    -
    817 // Rules: 1
    -
    818 //---------------------------------------------------------------------------
    -
    819 
    -
    820 static const basic::Info::ZoneRule kZoneRulesBarb[] ACE_TIME_PROGMEM = {
    -
    821  // Anchor: Rule Barb 1980 only - Sep 25 2:00 0 S
    -
    822  {
    -
    823  -127 /*fromYearTiny (-32767)*/,
    -
    824  -127 /*toYearTiny (-32767)*/,
    -
    825  1 /*inMonth*/,
    -
    826  0 /*onDayOfWeek*/,
    -
    827  1 /*onDayOfMonth*/,
    -
    828  0 /*atTimeCode*/,
    -
    829  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    830  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    831  4 /*letterIndex ("S")*/,
    -
    832  },
    -
    833 
    -
    834 };
    -
    835 
    -
    836 const basic::Info::ZonePolicy kZonePolicyBarb ACE_TIME_PROGMEM = {
    -
    837  kZoneRulesBarb /*rules*/,
    -
    838  1 /*numRules*/,
    -
    839 };
    -
    840 
    -
    841 //---------------------------------------------------------------------------
    -
    842 // Policy name: Belize
    -
    843 // Rules: 1
    -
    844 //---------------------------------------------------------------------------
    -
    845 
    -
    846 static const basic::Info::ZoneRule kZoneRulesBelize[] ACE_TIME_PROGMEM = {
    -
    847  // Anchor: Rule Belize 1983 only - Feb 12 0:00 0 CST
    -
    848  {
    -
    849  -127 /*fromYearTiny (-32767)*/,
    -
    850  -127 /*toYearTiny (-32767)*/,
    -
    851  1 /*inMonth*/,
    -
    852  0 /*onDayOfWeek*/,
    -
    853  1 /*onDayOfMonth*/,
    -
    854  0 /*atTimeCode*/,
    -
    855  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    856  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    857  2 /*letterIndex ("CST")*/,
    -
    858  },
    -
    859 
    -
    860 };
    -
    861 
    -
    862 const basic::Info::ZonePolicy kZonePolicyBelize ACE_TIME_PROGMEM = {
    -
    863  kZoneRulesBelize /*rules*/,
    -
    864  1 /*numRules*/,
    -
    865 };
    -
    866 
    -
    867 //---------------------------------------------------------------------------
    -
    868 // Policy name: Brazil
    -
    869 // Rules: 21
    -
    870 //---------------------------------------------------------------------------
    -
    871 
    -
    872 static const basic::Info::ZoneRule kZoneRulesBrazil[] ACE_TIME_PROGMEM = {
    -
    873  // Anchor: Rule Brazil 1999 only - Feb 21 0:00 0 -
    -
    874  {
    -
    875  -127 /*fromYearTiny (-32767)*/,
    -
    876  -127 /*toYearTiny (-32767)*/,
    -
    877  1 /*inMonth*/,
    -
    878  0 /*onDayOfWeek*/,
    -
    879  1 /*onDayOfMonth*/,
    -
    880  0 /*atTimeCode*/,
    -
    881  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    882  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    883  0 /*letterIndex ("")*/,
    -
    884  },
    -
    885  // Rule Brazil 1998 only - Oct 11 0:00 1:00 -
    -
    886  {
    -
    887  -102 /*fromYearTiny (1998)*/,
    -
    888  -102 /*toYearTiny (1998)*/,
    -
    889  10 /*inMonth*/,
    -
    890  0 /*onDayOfWeek*/,
    -
    891  11 /*onDayOfMonth*/,
    -
    892  0 /*atTimeCode*/,
    -
    893  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    894  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    895  0 /*letterIndex ("")*/,
    -
    896  },
    -
    897  // Rule Brazil 1999 only - Feb 21 0:00 0 -
    -
    898  {
    -
    899  -101 /*fromYearTiny (1999)*/,
    -
    900  -101 /*toYearTiny (1999)*/,
    -
    901  2 /*inMonth*/,
    -
    902  0 /*onDayOfWeek*/,
    -
    903  21 /*onDayOfMonth*/,
    -
    904  0 /*atTimeCode*/,
    -
    905  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    906  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    907  0 /*letterIndex ("")*/,
    -
    908  },
    -
    909  // Rule Brazil 1999 only - Oct 3 0:00 1:00 -
    -
    910  {
    -
    911  -101 /*fromYearTiny (1999)*/,
    -
    912  -101 /*toYearTiny (1999)*/,
    -
    913  10 /*inMonth*/,
    -
    914  0 /*onDayOfWeek*/,
    -
    915  3 /*onDayOfMonth*/,
    -
    916  0 /*atTimeCode*/,
    -
    917  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    918  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    919  0 /*letterIndex ("")*/,
    -
    920  },
    -
    921  // Rule Brazil 2000 only - Feb 27 0:00 0 -
    -
    922  {
    -
    923  -100 /*fromYearTiny (2000)*/,
    -
    924  -100 /*toYearTiny (2000)*/,
    -
    925  2 /*inMonth*/,
    -
    926  0 /*onDayOfWeek*/,
    -
    927  27 /*onDayOfMonth*/,
    -
    928  0 /*atTimeCode*/,
    -
    929  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    930  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    931  0 /*letterIndex ("")*/,
    -
    932  },
    -
    933  // Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 -
    -
    934  {
    -
    935  -100 /*fromYearTiny (2000)*/,
    -
    936  -99 /*toYearTiny (2001)*/,
    -
    937  10 /*inMonth*/,
    -
    938  7 /*onDayOfWeek*/,
    -
    939  8 /*onDayOfMonth*/,
    -
    940  0 /*atTimeCode*/,
    -
    941  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    942  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    943  0 /*letterIndex ("")*/,
    -
    944  },
    -
    945  // Rule Brazil 2001 2006 - Feb Sun>=15 0:00 0 -
    -
    946  {
    -
    947  -99 /*fromYearTiny (2001)*/,
    -
    948  -94 /*toYearTiny (2006)*/,
    -
    949  2 /*inMonth*/,
    -
    950  7 /*onDayOfWeek*/,
    -
    951  15 /*onDayOfMonth*/,
    -
    952  0 /*atTimeCode*/,
    -
    953  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    954  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    955  0 /*letterIndex ("")*/,
    -
    956  },
    -
    957  // Rule Brazil 2002 only - Nov 3 0:00 1:00 -
    -
    958  {
    -
    959  -98 /*fromYearTiny (2002)*/,
    -
    960  -98 /*toYearTiny (2002)*/,
    -
    961  11 /*inMonth*/,
    -
    962  0 /*onDayOfWeek*/,
    -
    963  3 /*onDayOfMonth*/,
    -
    964  0 /*atTimeCode*/,
    -
    965  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    966  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    967  0 /*letterIndex ("")*/,
    -
    968  },
    -
    969  // Rule Brazil 2003 only - Oct 19 0:00 1:00 -
    -
    970  {
    -
    971  -97 /*fromYearTiny (2003)*/,
    -
    972  -97 /*toYearTiny (2003)*/,
    -
    973  10 /*inMonth*/,
    -
    974  0 /*onDayOfWeek*/,
    -
    975  19 /*onDayOfMonth*/,
    -
    976  0 /*atTimeCode*/,
    -
    977  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    978  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    979  0 /*letterIndex ("")*/,
    -
    980  },
    -
    981  // Rule Brazil 2004 only - Nov 2 0:00 1:00 -
    -
    982  {
    -
    983  -96 /*fromYearTiny (2004)*/,
    -
    984  -96 /*toYearTiny (2004)*/,
    -
    985  11 /*inMonth*/,
    -
    986  0 /*onDayOfWeek*/,
    -
    987  2 /*onDayOfMonth*/,
    -
    988  0 /*atTimeCode*/,
    -
    989  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    990  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    991  0 /*letterIndex ("")*/,
    -
    992  },
    -
    993  // Rule Brazil 2005 only - Oct 16 0:00 1:00 -
    -
    994  {
    -
    995  -95 /*fromYearTiny (2005)*/,
    -
    996  -95 /*toYearTiny (2005)*/,
    -
    997  10 /*inMonth*/,
    -
    998  0 /*onDayOfWeek*/,
    -
    999  16 /*onDayOfMonth*/,
    -
    1000  0 /*atTimeCode*/,
    -
    1001  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1002  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1003  0 /*letterIndex ("")*/,
    -
    1004  },
    -
    1005  // Rule Brazil 2006 only - Nov 5 0:00 1:00 -
    -
    1006  {
    -
    1007  -94 /*fromYearTiny (2006)*/,
    -
    1008  -94 /*toYearTiny (2006)*/,
    -
    1009  11 /*inMonth*/,
    -
    1010  0 /*onDayOfWeek*/,
    -
    1011  5 /*onDayOfMonth*/,
    -
    1012  0 /*atTimeCode*/,
    -
    1013  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1014  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1015  0 /*letterIndex ("")*/,
    -
    1016  },
    -
    1017  // Rule Brazil 2007 only - Feb 25 0:00 0 -
    -
    1018  {
    -
    1019  -93 /*fromYearTiny (2007)*/,
    -
    1020  -93 /*toYearTiny (2007)*/,
    -
    1021  2 /*inMonth*/,
    -
    1022  0 /*onDayOfWeek*/,
    -
    1023  25 /*onDayOfMonth*/,
    -
    1024  0 /*atTimeCode*/,
    -
    1025  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1026  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1027  0 /*letterIndex ("")*/,
    -
    1028  },
    -
    1029  // Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 -
    -
    1030  {
    -
    1031  -93 /*fromYearTiny (2007)*/,
    -
    1032  -93 /*toYearTiny (2007)*/,
    -
    1033  10 /*inMonth*/,
    -
    1034  7 /*onDayOfWeek*/,
    -
    1035  8 /*onDayOfMonth*/,
    -
    1036  0 /*atTimeCode*/,
    -
    1037  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1038  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1039  0 /*letterIndex ("")*/,
    -
    1040  },
    -
    1041  // Rule Brazil 2008 2017 - Oct Sun>=15 0:00 1:00 -
    -
    1042  {
    -
    1043  -92 /*fromYearTiny (2008)*/,
    -
    1044  -83 /*toYearTiny (2017)*/,
    -
    1045  10 /*inMonth*/,
    -
    1046  7 /*onDayOfWeek*/,
    -
    1047  15 /*onDayOfMonth*/,
    -
    1048  0 /*atTimeCode*/,
    -
    1049  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1050  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1051  0 /*letterIndex ("")*/,
    -
    1052  },
    -
    1053  // Rule Brazil 2008 2011 - Feb Sun>=15 0:00 0 -
    -
    1054  {
    -
    1055  -92 /*fromYearTiny (2008)*/,
    -
    1056  -89 /*toYearTiny (2011)*/,
    -
    1057  2 /*inMonth*/,
    -
    1058  7 /*onDayOfWeek*/,
    -
    1059  15 /*onDayOfMonth*/,
    -
    1060  0 /*atTimeCode*/,
    -
    1061  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1062  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1063  0 /*letterIndex ("")*/,
    -
    1064  },
    -
    1065  // Rule Brazil 2012 only - Feb Sun>=22 0:00 0 -
    -
    1066  {
    -
    1067  -88 /*fromYearTiny (2012)*/,
    -
    1068  -88 /*toYearTiny (2012)*/,
    -
    1069  2 /*inMonth*/,
    -
    1070  7 /*onDayOfWeek*/,
    -
    1071  22 /*onDayOfMonth*/,
    -
    1072  0 /*atTimeCode*/,
    -
    1073  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1074  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1075  0 /*letterIndex ("")*/,
    -
    1076  },
    -
    1077  // Rule Brazil 2013 2014 - Feb Sun>=15 0:00 0 -
    -
    1078  {
    -
    1079  -87 /*fromYearTiny (2013)*/,
    -
    1080  -86 /*toYearTiny (2014)*/,
    -
    1081  2 /*inMonth*/,
    -
    1082  7 /*onDayOfWeek*/,
    -
    1083  15 /*onDayOfMonth*/,
    -
    1084  0 /*atTimeCode*/,
    -
    1085  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1086  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1087  0 /*letterIndex ("")*/,
    -
    1088  },
    -
    1089  // Rule Brazil 2015 only - Feb Sun>=22 0:00 0 -
    -
    1090  {
    -
    1091  -85 /*fromYearTiny (2015)*/,
    -
    1092  -85 /*toYearTiny (2015)*/,
    -
    1093  2 /*inMonth*/,
    -
    1094  7 /*onDayOfWeek*/,
    -
    1095  22 /*onDayOfMonth*/,
    -
    1096  0 /*atTimeCode*/,
    -
    1097  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1098  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1099  0 /*letterIndex ("")*/,
    -
    1100  },
    -
    1101  // Rule Brazil 2016 2019 - Feb Sun>=15 0:00 0 -
    -
    1102  {
    -
    1103  -84 /*fromYearTiny (2016)*/,
    -
    1104  -81 /*toYearTiny (2019)*/,
    -
    1105  2 /*inMonth*/,
    -
    1106  7 /*onDayOfWeek*/,
    -
    1107  15 /*onDayOfMonth*/,
    -
    1108  0 /*atTimeCode*/,
    -
    1109  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1110  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1111  0 /*letterIndex ("")*/,
    -
    1112  },
    -
    1113  // Rule Brazil 2018 only - Nov Sun>=1 0:00 1:00 -
    -
    1114  {
    -
    1115  -82 /*fromYearTiny (2018)*/,
    -
    1116  -82 /*toYearTiny (2018)*/,
    -
    1117  11 /*inMonth*/,
    -
    1118  7 /*onDayOfWeek*/,
    -
    1119  1 /*onDayOfMonth*/,
    -
    1120  0 /*atTimeCode*/,
    -
    1121  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1122  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1123  0 /*letterIndex ("")*/,
    -
    1124  },
    -
    1125 
    -
    1126 };
    -
    1127 
    -
    1128 const basic::Info::ZonePolicy kZonePolicyBrazil ACE_TIME_PROGMEM = {
    -
    1129  kZoneRulesBrazil /*rules*/,
    -
    1130  21 /*numRules*/,
    -
    1131 };
    -
    1132 
    -
    1133 //---------------------------------------------------------------------------
    -
    1134 // Policy name: CO
    -
    1135 // Rules: 1
    -
    1136 //---------------------------------------------------------------------------
    -
    1137 
    -
    1138 static const basic::Info::ZoneRule kZoneRulesCO[] ACE_TIME_PROGMEM = {
    -
    1139  // Anchor: Rule CO 1993 only - Feb 6 24:00 0 -
    -
    1140  {
    -
    1141  -127 /*fromYearTiny (-32767)*/,
    -
    1142  -127 /*toYearTiny (-32767)*/,
    -
    1143  1 /*inMonth*/,
    -
    1144  0 /*onDayOfWeek*/,
    -
    1145  1 /*onDayOfMonth*/,
    -
    1146  0 /*atTimeCode*/,
    -
    1147  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1148  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1149  0 /*letterIndex ("")*/,
    -
    1150  },
    -
    1151 
    -
    1152 };
    -
    1153 
    -
    1154 const basic::Info::ZonePolicy kZonePolicyCO ACE_TIME_PROGMEM = {
    -
    1155  kZoneRulesCO /*rules*/,
    -
    1156  1 /*numRules*/,
    -
    1157 };
    -
    1158 
    -
    1159 //---------------------------------------------------------------------------
    -
    1160 // Policy name: CR
    -
    1161 // Rules: 1
    -
    1162 //---------------------------------------------------------------------------
    -
    1163 
    -
    1164 static const basic::Info::ZoneRule kZoneRulesCR[] ACE_TIME_PROGMEM = {
    -
    1165  // Anchor: Rule CR 1992 only - Mar 15 0:00 0 S
    -
    1166  {
    -
    1167  -127 /*fromYearTiny (-32767)*/,
    -
    1168  -127 /*toYearTiny (-32767)*/,
    -
    1169  1 /*inMonth*/,
    -
    1170  0 /*onDayOfWeek*/,
    -
    1171  1 /*onDayOfMonth*/,
    -
    1172  0 /*atTimeCode*/,
    -
    1173  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1174  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1175  4 /*letterIndex ("S")*/,
    -
    1176  },
    -
    1177 
    -
    1178 };
    -
    1179 
    -
    1180 const basic::Info::ZonePolicy kZonePolicyCR ACE_TIME_PROGMEM = {
    -
    1181  kZoneRulesCR /*rules*/,
    -
    1182  1 /*numRules*/,
    -
    1183 };
    -
    1184 
    -
    1185 //---------------------------------------------------------------------------
    -
    1186 // Policy name: Canada
    -
    1187 // Rules: 6
    -
    1188 //---------------------------------------------------------------------------
    -
    1189 
    -
    1190 static const basic::Info::ZoneRule kZoneRulesCanada[] ACE_TIME_PROGMEM = {
    -
    1191  // Anchor: Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
    -
    1192  {
    -
    1193  -127 /*fromYearTiny (-32767)*/,
    -
    1194  -127 /*toYearTiny (-32767)*/,
    -
    1195  1 /*inMonth*/,
    -
    1196  0 /*onDayOfWeek*/,
    -
    1197  1 /*onDayOfMonth*/,
    -
    1198  0 /*atTimeCode*/,
    -
    1199  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1200  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1201  4 /*letterIndex ("S")*/,
    -
    1202  },
    -
    1203  // Rule Canada 1974 1986 - Apr lastSun 2:00 1:00 D
    -
    1204  {
    -
    1205  -126 /*fromYearTiny (1974)*/,
    -
    1206  -114 /*toYearTiny (1986)*/,
    -
    1207  4 /*inMonth*/,
    -
    1208  7 /*onDayOfWeek*/,
    -
    1209  0 /*onDayOfMonth*/,
    -
    1210  8 /*atTimeCode*/,
    -
    1211  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1212  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1213  3 /*letterIndex ("D")*/,
    -
    1214  },
    -
    1215  // Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
    -
    1216  {
    -
    1217  -126 /*fromYearTiny (1974)*/,
    -
    1218  -94 /*toYearTiny (2006)*/,
    -
    1219  10 /*inMonth*/,
    -
    1220  7 /*onDayOfWeek*/,
    -
    1221  0 /*onDayOfMonth*/,
    -
    1222  8 /*atTimeCode*/,
    -
    1223  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1224  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1225  4 /*letterIndex ("S")*/,
    -
    1226  },
    -
    1227  // Rule Canada 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    1228  {
    -
    1229  -113 /*fromYearTiny (1987)*/,
    -
    1230  -94 /*toYearTiny (2006)*/,
    -
    1231  4 /*inMonth*/,
    -
    1232  7 /*onDayOfWeek*/,
    -
    1233  1 /*onDayOfMonth*/,
    -
    1234  8 /*atTimeCode*/,
    -
    1235  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1236  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1237  3 /*letterIndex ("D")*/,
    -
    1238  },
    -
    1239  // Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    1240  {
    -
    1241  -93 /*fromYearTiny (2007)*/,
    -
    1242  126 /*toYearTiny (32766)*/,
    -
    1243  3 /*inMonth*/,
    -
    1244  7 /*onDayOfWeek*/,
    -
    1245  8 /*onDayOfMonth*/,
    -
    1246  8 /*atTimeCode*/,
    -
    1247  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1248  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1249  3 /*letterIndex ("D")*/,
    -
    1250  },
    -
    1251  // Rule Canada 2007 max - Nov Sun>=1 2:00 0 S
    -
    1252  {
    -
    1253  -93 /*fromYearTiny (2007)*/,
    -
    1254  126 /*toYearTiny (32766)*/,
    -
    1255  11 /*inMonth*/,
    -
    1256  7 /*onDayOfWeek*/,
    -
    1257  1 /*onDayOfMonth*/,
    -
    1258  8 /*atTimeCode*/,
    -
    1259  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1260  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1261  4 /*letterIndex ("S")*/,
    -
    1262  },
    -
    1263 
    -
    1264 };
    -
    1265 
    -
    1266 const basic::Info::ZonePolicy kZonePolicyCanada ACE_TIME_PROGMEM = {
    -
    1267  kZoneRulesCanada /*rules*/,
    -
    1268  6 /*numRules*/,
    -
    1269 };
    -
    1270 
    -
    1271 //---------------------------------------------------------------------------
    -
    1272 // Policy name: Chatham
    -
    1273 // Rules: 6
    -
    1274 //---------------------------------------------------------------------------
    -
    1275 
    -
    1276 static const basic::Info::ZoneRule kZoneRulesChatham[] ACE_TIME_PROGMEM = {
    -
    1277  // Anchor: Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 -
    -
    1278  {
    -
    1279  -127 /*fromYearTiny (-32767)*/,
    -
    1280  -127 /*toYearTiny (-32767)*/,
    -
    1281  1 /*inMonth*/,
    -
    1282  0 /*onDayOfWeek*/,
    -
    1283  1 /*onDayOfMonth*/,
    -
    1284  0 /*atTimeCode*/,
    -
    1285  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1286  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1287  0 /*letterIndex ("")*/,
    -
    1288  },
    -
    1289  // Rule Chatham 1989 only - Oct Sun>=8 2:45s 1:00 -
    -
    1290  {
    -
    1291  -111 /*fromYearTiny (1989)*/,
    -
    1292  -111 /*toYearTiny (1989)*/,
    -
    1293  10 /*inMonth*/,
    -
    1294  7 /*onDayOfWeek*/,
    -
    1295  8 /*onDayOfMonth*/,
    -
    1296  11 /*atTimeCode*/,
    -
    1297  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1298  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1299  0 /*letterIndex ("")*/,
    -
    1300  },
    -
    1301  // Rule Chatham 1990 2006 - Oct Sun>=1 2:45s 1:00 -
    -
    1302  {
    -
    1303  -110 /*fromYearTiny (1990)*/,
    -
    1304  -94 /*toYearTiny (2006)*/,
    -
    1305  10 /*inMonth*/,
    -
    1306  7 /*onDayOfWeek*/,
    -
    1307  1 /*onDayOfMonth*/,
    -
    1308  11 /*atTimeCode*/,
    -
    1309  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1310  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1311  0 /*letterIndex ("")*/,
    -
    1312  },
    -
    1313  // Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 -
    -
    1314  {
    -
    1315  -110 /*fromYearTiny (1990)*/,
    -
    1316  -93 /*toYearTiny (2007)*/,
    -
    1317  3 /*inMonth*/,
    -
    1318  7 /*onDayOfWeek*/,
    -
    1319  15 /*onDayOfMonth*/,
    -
    1320  11 /*atTimeCode*/,
    -
    1321  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1322  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1323  0 /*letterIndex ("")*/,
    -
    1324  },
    -
    1325  // Rule Chatham 2007 max - Sep lastSun 2:45s 1:00 -
    -
    1326  {
    -
    1327  -93 /*fromYearTiny (2007)*/,
    -
    1328  126 /*toYearTiny (32766)*/,
    -
    1329  9 /*inMonth*/,
    -
    1330  7 /*onDayOfWeek*/,
    -
    1331  0 /*onDayOfMonth*/,
    -
    1332  11 /*atTimeCode*/,
    -
    1333  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1334  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1335  0 /*letterIndex ("")*/,
    -
    1336  },
    -
    1337  // Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 -
    -
    1338  {
    -
    1339  -92 /*fromYearTiny (2008)*/,
    -
    1340  126 /*toYearTiny (32766)*/,
    -
    1341  4 /*inMonth*/,
    -
    1342  7 /*onDayOfWeek*/,
    -
    1343  1 /*onDayOfMonth*/,
    -
    1344  11 /*atTimeCode*/,
    -
    1345  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1346  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1347  0 /*letterIndex ("")*/,
    -
    1348  },
    -
    1349 
    -
    1350 };
    -
    1351 
    -
    1352 const basic::Info::ZonePolicy kZonePolicyChatham ACE_TIME_PROGMEM = {
    -
    1353  kZoneRulesChatham /*rules*/,
    -
    1354  6 /*numRules*/,
    -
    1355 };
    -
    1356 
    -
    1357 //---------------------------------------------------------------------------
    -
    1358 // Policy name: Chile
    -
    1359 // Rules: 18
    -
    1360 //---------------------------------------------------------------------------
    -
    1361 
    -
    1362 static const basic::Info::ZoneRule kZoneRulesChile[] ACE_TIME_PROGMEM = {
    -
    1363  // Anchor: Rule Chile 1999 only - Apr 4 3:00u 0 -
    -
    1364  {
    -
    1365  -127 /*fromYearTiny (-32767)*/,
    -
    1366  -127 /*toYearTiny (-32767)*/,
    -
    1367  1 /*inMonth*/,
    -
    1368  0 /*onDayOfWeek*/,
    -
    1369  1 /*onDayOfMonth*/,
    -
    1370  0 /*atTimeCode*/,
    -
    1371  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1372  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1373  0 /*letterIndex ("")*/,
    -
    1374  },
    -
    1375  // Rule Chile 1998 only - Sep 27 4:00u 1:00 -
    -
    1376  {
    -
    1377  -102 /*fromYearTiny (1998)*/,
    -
    1378  -102 /*toYearTiny (1998)*/,
    -
    1379  9 /*inMonth*/,
    -
    1380  0 /*onDayOfWeek*/,
    -
    1381  27 /*onDayOfMonth*/,
    -
    1382  16 /*atTimeCode*/,
    -
    1383  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1384  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1385  0 /*letterIndex ("")*/,
    -
    1386  },
    -
    1387  // Rule Chile 1999 only - Apr 4 3:00u 0 -
    -
    1388  {
    -
    1389  -101 /*fromYearTiny (1999)*/,
    -
    1390  -101 /*toYearTiny (1999)*/,
    -
    1391  4 /*inMonth*/,
    -
    1392  0 /*onDayOfWeek*/,
    -
    1393  4 /*onDayOfMonth*/,
    -
    1394  12 /*atTimeCode*/,
    -
    1395  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1396  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1397  0 /*letterIndex ("")*/,
    -
    1398  },
    -
    1399  // Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 -
    -
    1400  {
    -
    1401  -101 /*fromYearTiny (1999)*/,
    -
    1402  -90 /*toYearTiny (2010)*/,
    -
    1403  10 /*inMonth*/,
    -
    1404  7 /*onDayOfWeek*/,
    -
    1405  9 /*onDayOfMonth*/,
    -
    1406  16 /*atTimeCode*/,
    -
    1407  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1408  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1409  0 /*letterIndex ("")*/,
    -
    1410  },
    -
    1411  // Rule Chile 2000 2007 - Mar Sun>=9 3:00u 0 -
    -
    1412  {
    -
    1413  -100 /*fromYearTiny (2000)*/,
    -
    1414  -93 /*toYearTiny (2007)*/,
    -
    1415  3 /*inMonth*/,
    -
    1416  7 /*onDayOfWeek*/,
    -
    1417  9 /*onDayOfMonth*/,
    -
    1418  12 /*atTimeCode*/,
    -
    1419  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1420  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1421  0 /*letterIndex ("")*/,
    -
    1422  },
    -
    1423  // Rule Chile 2008 only - Mar 30 3:00u 0 -
    -
    1424  {
    -
    1425  -92 /*fromYearTiny (2008)*/,
    -
    1426  -92 /*toYearTiny (2008)*/,
    -
    1427  3 /*inMonth*/,
    -
    1428  0 /*onDayOfWeek*/,
    -
    1429  30 /*onDayOfMonth*/,
    -
    1430  12 /*atTimeCode*/,
    -
    1431  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1432  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1433  0 /*letterIndex ("")*/,
    -
    1434  },
    -
    1435  // Rule Chile 2009 only - Mar Sun>=9 3:00u 0 -
    -
    1436  {
    -
    1437  -91 /*fromYearTiny (2009)*/,
    -
    1438  -91 /*toYearTiny (2009)*/,
    -
    1439  3 /*inMonth*/,
    -
    1440  7 /*onDayOfWeek*/,
    -
    1441  9 /*onDayOfMonth*/,
    -
    1442  12 /*atTimeCode*/,
    -
    1443  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1444  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1445  0 /*letterIndex ("")*/,
    -
    1446  },
    -
    1447  // Rule Chile 2010 only - Apr Sun>=1 3:00u 0 -
    -
    1448  {
    -
    1449  -90 /*fromYearTiny (2010)*/,
    -
    1450  -90 /*toYearTiny (2010)*/,
    -
    1451  4 /*inMonth*/,
    -
    1452  7 /*onDayOfWeek*/,
    -
    1453  1 /*onDayOfMonth*/,
    -
    1454  12 /*atTimeCode*/,
    -
    1455  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1456  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1457  0 /*letterIndex ("")*/,
    -
    1458  },
    -
    1459  // Rule Chile 2011 only - May Sun>=2 3:00u 0 -
    -
    1460  {
    -
    1461  -89 /*fromYearTiny (2011)*/,
    -
    1462  -89 /*toYearTiny (2011)*/,
    -
    1463  5 /*inMonth*/,
    -
    1464  7 /*onDayOfWeek*/,
    -
    1465  2 /*onDayOfMonth*/,
    -
    1466  12 /*atTimeCode*/,
    -
    1467  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1468  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1469  0 /*letterIndex ("")*/,
    -
    1470  },
    -
    1471  // Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 -
    -
    1472  {
    -
    1473  -89 /*fromYearTiny (2011)*/,
    -
    1474  -89 /*toYearTiny (2011)*/,
    -
    1475  8 /*inMonth*/,
    -
    1476  7 /*onDayOfWeek*/,
    -
    1477  16 /*onDayOfMonth*/,
    -
    1478  16 /*atTimeCode*/,
    -
    1479  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1480  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1481  0 /*letterIndex ("")*/,
    -
    1482  },
    -
    1483  // Rule Chile 2012 2014 - Apr Sun>=23 3:00u 0 -
    -
    1484  {
    -
    1485  -88 /*fromYearTiny (2012)*/,
    -
    1486  -86 /*toYearTiny (2014)*/,
    -
    1487  4 /*inMonth*/,
    -
    1488  7 /*onDayOfWeek*/,
    -
    1489  23 /*onDayOfMonth*/,
    -
    1490  12 /*atTimeCode*/,
    -
    1491  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1492  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1493  0 /*letterIndex ("")*/,
    -
    1494  },
    -
    1495  // Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 -
    -
    1496  {
    -
    1497  -88 /*fromYearTiny (2012)*/,
    -
    1498  -86 /*toYearTiny (2014)*/,
    -
    1499  9 /*inMonth*/,
    -
    1500  7 /*onDayOfWeek*/,
    -
    1501  2 /*onDayOfMonth*/,
    -
    1502  16 /*atTimeCode*/,
    -
    1503  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1504  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1505  0 /*letterIndex ("")*/,
    -
    1506  },
    -
    1507  // Rule Chile 2016 2018 - May Sun>=9 3:00u 0 -
    -
    1508  {
    -
    1509  -84 /*fromYearTiny (2016)*/,
    -
    1510  -82 /*toYearTiny (2018)*/,
    -
    1511  5 /*inMonth*/,
    -
    1512  7 /*onDayOfWeek*/,
    -
    1513  9 /*onDayOfMonth*/,
    -
    1514  12 /*atTimeCode*/,
    -
    1515  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1516  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1517  0 /*letterIndex ("")*/,
    -
    1518  },
    -
    1519  // Rule Chile 2016 2018 - Aug Sun>=9 4:00u 1:00 -
    -
    1520  {
    -
    1521  -84 /*fromYearTiny (2016)*/,
    -
    1522  -82 /*toYearTiny (2018)*/,
    -
    1523  8 /*inMonth*/,
    -
    1524  7 /*onDayOfWeek*/,
    -
    1525  9 /*onDayOfMonth*/,
    -
    1526  16 /*atTimeCode*/,
    -
    1527  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1528  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1529  0 /*letterIndex ("")*/,
    -
    1530  },
    -
    1531  // Rule Chile 2019 max - Apr Sun>=2 3:00u 0 -
    -
    1532  {
    -
    1533  -81 /*fromYearTiny (2019)*/,
    -
    1534  126 /*toYearTiny (32766)*/,
    -
    1535  4 /*inMonth*/,
    -
    1536  7 /*onDayOfWeek*/,
    -
    1537  2 /*onDayOfMonth*/,
    -
    1538  12 /*atTimeCode*/,
    -
    1539  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1540  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1541  0 /*letterIndex ("")*/,
    -
    1542  },
    -
    1543  // Rule Chile 2019 2021 - Sep Sun>=2 4:00u 1:00 -
    -
    1544  {
    -
    1545  -81 /*fromYearTiny (2019)*/,
    -
    1546  -79 /*toYearTiny (2021)*/,
    -
    1547  9 /*inMonth*/,
    -
    1548  7 /*onDayOfWeek*/,
    -
    1549  2 /*onDayOfMonth*/,
    -
    1550  16 /*atTimeCode*/,
    -
    1551  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1552  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1553  0 /*letterIndex ("")*/,
    -
    1554  },
    -
    1555  // Rule Chile 2022 only - Sep Sun>=9 4:00u 1:00 -
    -
    1556  {
    -
    1557  -78 /*fromYearTiny (2022)*/,
    -
    1558  -78 /*toYearTiny (2022)*/,
    -
    1559  9 /*inMonth*/,
    -
    1560  7 /*onDayOfWeek*/,
    -
    1561  9 /*onDayOfMonth*/,
    -
    1562  16 /*atTimeCode*/,
    -
    1563  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1564  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1565  0 /*letterIndex ("")*/,
    -
    1566  },
    -
    1567  // Rule Chile 2023 max - Sep Sun>=2 4:00u 1:00 -
    -
    1568  {
    -
    1569  -77 /*fromYearTiny (2023)*/,
    -
    1570  126 /*toYearTiny (32766)*/,
    -
    1571  9 /*inMonth*/,
    -
    1572  7 /*onDayOfWeek*/,
    -
    1573  2 /*onDayOfMonth*/,
    -
    1574  16 /*atTimeCode*/,
    -
    1575  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1576  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1577  0 /*letterIndex ("")*/,
    -
    1578  },
    -
    1579 
    -
    1580 };
    -
    1581 
    -
    1582 const basic::Info::ZonePolicy kZonePolicyChile ACE_TIME_PROGMEM = {
    -
    1583  kZoneRulesChile /*rules*/,
    -
    1584  18 /*numRules*/,
    -
    1585 };
    -
    1586 
    -
    1587 //---------------------------------------------------------------------------
    -
    1588 // Policy name: Cook
    -
    1589 // Rules: 1
    -
    1590 //---------------------------------------------------------------------------
    -
    1591 
    -
    1592 static const basic::Info::ZoneRule kZoneRulesCook[] ACE_TIME_PROGMEM = {
    -
    1593  // Anchor: Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
    -
    1594  {
    -
    1595  -127 /*fromYearTiny (-32767)*/,
    -
    1596  -127 /*toYearTiny (-32767)*/,
    -
    1597  1 /*inMonth*/,
    -
    1598  0 /*onDayOfWeek*/,
    -
    1599  1 /*onDayOfMonth*/,
    -
    1600  0 /*atTimeCode*/,
    -
    1601  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1602  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1603  0 /*letterIndex ("")*/,
    -
    1604  },
    -
    1605 
    -
    1606 };
    -
    1607 
    -
    1608 const basic::Info::ZonePolicy kZonePolicyCook ACE_TIME_PROGMEM = {
    -
    1609  kZoneRulesCook /*rules*/,
    -
    1610  1 /*numRules*/,
    -
    1611 };
    -
    1612 
    -
    1613 //---------------------------------------------------------------------------
    -
    1614 // Policy name: Cuba
    -
    1615 // Rules: 15
    -
    1616 //---------------------------------------------------------------------------
    -
    1617 
    -
    1618 static const basic::Info::ZoneRule kZoneRulesCuba[] ACE_TIME_PROGMEM = {
    -
    1619  // Anchor: Rule Cuba 1997 only - Oct 12 0:00s 0 S
    -
    1620  {
    -
    1621  -127 /*fromYearTiny (-32767)*/,
    -
    1622  -127 /*toYearTiny (-32767)*/,
    -
    1623  1 /*inMonth*/,
    -
    1624  0 /*onDayOfWeek*/,
    -
    1625  1 /*onDayOfMonth*/,
    -
    1626  0 /*atTimeCode*/,
    -
    1627  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1628  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1629  4 /*letterIndex ("S")*/,
    -
    1630  },
    -
    1631  // Rule Cuba 1997 only - Oct 12 0:00s 0 S
    -
    1632  {
    -
    1633  -103 /*fromYearTiny (1997)*/,
    -
    1634  -103 /*toYearTiny (1997)*/,
    -
    1635  10 /*inMonth*/,
    -
    1636  0 /*onDayOfWeek*/,
    -
    1637  12 /*onDayOfMonth*/,
    -
    1638  0 /*atTimeCode*/,
    -
    1639  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1640  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1641  4 /*letterIndex ("S")*/,
    -
    1642  },
    -
    1643  // Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D
    -
    1644  {
    -
    1645  -102 /*fromYearTiny (1998)*/,
    -
    1646  -101 /*toYearTiny (1999)*/,
    -
    1647  3 /*inMonth*/,
    -
    1648  7 /*onDayOfWeek*/,
    -
    1649  0 /*onDayOfMonth*/,
    -
    1650  0 /*atTimeCode*/,
    -
    1651  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1652  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1653  3 /*letterIndex ("D")*/,
    -
    1654  },
    -
    1655  // Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S
    -
    1656  {
    -
    1657  -102 /*fromYearTiny (1998)*/,
    -
    1658  -97 /*toYearTiny (2003)*/,
    -
    1659  10 /*inMonth*/,
    -
    1660  7 /*onDayOfWeek*/,
    -
    1661  0 /*onDayOfMonth*/,
    -
    1662  0 /*atTimeCode*/,
    -
    1663  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1664  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1665  4 /*letterIndex ("S")*/,
    -
    1666  },
    -
    1667  // Rule Cuba 2000 2003 - Apr Sun>=1 0:00s 1:00 D
    -
    1668  {
    -
    1669  -100 /*fromYearTiny (2000)*/,
    -
    1670  -97 /*toYearTiny (2003)*/,
    -
    1671  4 /*inMonth*/,
    -
    1672  7 /*onDayOfWeek*/,
    -
    1673  1 /*onDayOfMonth*/,
    -
    1674  0 /*atTimeCode*/,
    -
    1675  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1676  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1677  3 /*letterIndex ("D")*/,
    -
    1678  },
    -
    1679  // Rule Cuba 2004 only - Mar lastSun 0:00s 1:00 D
    -
    1680  {
    -
    1681  -96 /*fromYearTiny (2004)*/,
    -
    1682  -96 /*toYearTiny (2004)*/,
    -
    1683  3 /*inMonth*/,
    -
    1684  7 /*onDayOfWeek*/,
    -
    1685  0 /*onDayOfMonth*/,
    -
    1686  0 /*atTimeCode*/,
    -
    1687  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1688  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1689  3 /*letterIndex ("D")*/,
    -
    1690  },
    -
    1691  // Rule Cuba 2006 2010 - Oct lastSun 0:00s 0 S
    -
    1692  {
    -
    1693  -94 /*fromYearTiny (2006)*/,
    -
    1694  -90 /*toYearTiny (2010)*/,
    -
    1695  10 /*inMonth*/,
    -
    1696  7 /*onDayOfWeek*/,
    -
    1697  0 /*onDayOfMonth*/,
    -
    1698  0 /*atTimeCode*/,
    -
    1699  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1700  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1701  4 /*letterIndex ("S")*/,
    -
    1702  },
    -
    1703  // Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D
    -
    1704  {
    -
    1705  -93 /*fromYearTiny (2007)*/,
    -
    1706  -93 /*toYearTiny (2007)*/,
    -
    1707  3 /*inMonth*/,
    -
    1708  7 /*onDayOfWeek*/,
    -
    1709  8 /*onDayOfMonth*/,
    -
    1710  0 /*atTimeCode*/,
    -
    1711  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1712  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1713  3 /*letterIndex ("D")*/,
    -
    1714  },
    -
    1715  // Rule Cuba 2008 only - Mar Sun>=15 0:00s 1:00 D
    -
    1716  {
    -
    1717  -92 /*fromYearTiny (2008)*/,
    -
    1718  -92 /*toYearTiny (2008)*/,
    -
    1719  3 /*inMonth*/,
    -
    1720  7 /*onDayOfWeek*/,
    -
    1721  15 /*onDayOfMonth*/,
    -
    1722  0 /*atTimeCode*/,
    -
    1723  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1724  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1725  3 /*letterIndex ("D")*/,
    -
    1726  },
    -
    1727  // Rule Cuba 2009 2010 - Mar Sun>=8 0:00s 1:00 D
    -
    1728  {
    -
    1729  -91 /*fromYearTiny (2009)*/,
    -
    1730  -90 /*toYearTiny (2010)*/,
    -
    1731  3 /*inMonth*/,
    -
    1732  7 /*onDayOfWeek*/,
    -
    1733  8 /*onDayOfMonth*/,
    -
    1734  0 /*atTimeCode*/,
    -
    1735  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1736  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1737  3 /*letterIndex ("D")*/,
    -
    1738  },
    -
    1739  // Rule Cuba 2011 only - Mar Sun>=15 0:00s 1:00 D
    -
    1740  {
    -
    1741  -89 /*fromYearTiny (2011)*/,
    -
    1742  -89 /*toYearTiny (2011)*/,
    -
    1743  3 /*inMonth*/,
    -
    1744  7 /*onDayOfWeek*/,
    -
    1745  15 /*onDayOfMonth*/,
    -
    1746  0 /*atTimeCode*/,
    -
    1747  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1748  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1749  3 /*letterIndex ("D")*/,
    -
    1750  },
    -
    1751  // Rule Cuba 2011 only - Nov 13 0:00s 0 S
    -
    1752  {
    -
    1753  -89 /*fromYearTiny (2011)*/,
    -
    1754  -89 /*toYearTiny (2011)*/,
    -
    1755  11 /*inMonth*/,
    -
    1756  0 /*onDayOfWeek*/,
    -
    1757  13 /*onDayOfMonth*/,
    -
    1758  0 /*atTimeCode*/,
    -
    1759  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1760  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1761  4 /*letterIndex ("S")*/,
    -
    1762  },
    -
    1763  // Rule Cuba 2012 only - Apr 1 0:00s 1:00 D
    -
    1764  {
    -
    1765  -88 /*fromYearTiny (2012)*/,
    -
    1766  -88 /*toYearTiny (2012)*/,
    -
    1767  4 /*inMonth*/,
    -
    1768  0 /*onDayOfWeek*/,
    -
    1769  1 /*onDayOfMonth*/,
    -
    1770  0 /*atTimeCode*/,
    -
    1771  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1772  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1773  3 /*letterIndex ("D")*/,
    -
    1774  },
    -
    1775  // Rule Cuba 2012 max - Nov Sun>=1 0:00s 0 S
    -
    1776  {
    -
    1777  -88 /*fromYearTiny (2012)*/,
    -
    1778  126 /*toYearTiny (32766)*/,
    -
    1779  11 /*inMonth*/,
    -
    1780  7 /*onDayOfWeek*/,
    -
    1781  1 /*onDayOfMonth*/,
    -
    1782  0 /*atTimeCode*/,
    -
    1783  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1784  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1785  4 /*letterIndex ("S")*/,
    -
    1786  },
    -
    1787  // Rule Cuba 2013 max - Mar Sun>=8 0:00s 1:00 D
    -
    1788  {
    -
    1789  -87 /*fromYearTiny (2013)*/,
    -
    1790  126 /*toYearTiny (32766)*/,
    -
    1791  3 /*inMonth*/,
    -
    1792  7 /*onDayOfWeek*/,
    -
    1793  8 /*onDayOfMonth*/,
    -
    1794  0 /*atTimeCode*/,
    -
    1795  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1796  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1797  3 /*letterIndex ("D")*/,
    -
    1798  },
    -
    1799 
    -
    1800 };
    -
    1801 
    -
    1802 const basic::Info::ZonePolicy kZonePolicyCuba ACE_TIME_PROGMEM = {
    -
    1803  kZoneRulesCuba /*rules*/,
    -
    1804  15 /*numRules*/,
    -
    1805 };
    -
    1806 
    -
    1807 //---------------------------------------------------------------------------
    -
    1808 // Policy name: Dhaka
    -
    1809 // Rules: 3
    -
    1810 //---------------------------------------------------------------------------
    -
    1811 
    -
    1812 static const basic::Info::ZoneRule kZoneRulesDhaka[] ACE_TIME_PROGMEM = {
    -
    1813  // Anchor: Rule Dhaka 2009 only - Dec 31 24:00 0 -
    -
    1814  {
    -
    1815  -127 /*fromYearTiny (-32767)*/,
    -
    1816  -127 /*toYearTiny (-32767)*/,
    -
    1817  1 /*inMonth*/,
    -
    1818  0 /*onDayOfWeek*/,
    -
    1819  1 /*onDayOfMonth*/,
    -
    1820  0 /*atTimeCode*/,
    -
    1821  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1822  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1823  0 /*letterIndex ("")*/,
    -
    1824  },
    -
    1825  // Rule Dhaka 2009 only - Jun 19 23:00 1:00 -
    -
    1826  {
    -
    1827  -91 /*fromYearTiny (2009)*/,
    -
    1828  -91 /*toYearTiny (2009)*/,
    -
    1829  6 /*inMonth*/,
    -
    1830  0 /*onDayOfWeek*/,
    -
    1831  19 /*onDayOfMonth*/,
    -
    1832  92 /*atTimeCode*/,
    -
    1833  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1834  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1835  0 /*letterIndex ("")*/,
    -
    1836  },
    -
    1837  // Rule Dhaka 2009 only - Dec 31 24:00 0 -
    -
    1838  {
    -
    1839  -91 /*fromYearTiny (2009)*/,
    -
    1840  -91 /*toYearTiny (2009)*/,
    -
    1841  12 /*inMonth*/,
    -
    1842  0 /*onDayOfWeek*/,
    -
    1843  31 /*onDayOfMonth*/,
    -
    1844  96 /*atTimeCode*/,
    -
    1845  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1846  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1847  0 /*letterIndex ("")*/,
    -
    1848  },
    -
    1849 
    -
    1850 };
    -
    1851 
    -
    1852 const basic::Info::ZonePolicy kZonePolicyDhaka ACE_TIME_PROGMEM = {
    -
    1853  kZoneRulesDhaka /*rules*/,
    -
    1854  3 /*numRules*/,
    -
    1855 };
    -
    1856 
    -
    1857 //---------------------------------------------------------------------------
    -
    1858 // Policy name: EU
    -
    1859 // Rules: 4
    -
    1860 //---------------------------------------------------------------------------
    -
    1861 
    -
    1862 static const basic::Info::ZoneRule kZoneRulesEU[] ACE_TIME_PROGMEM = {
    -
    1863  // Anchor: Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
    -
    1864  {
    -
    1865  -127 /*fromYearTiny (-32767)*/,
    -
    1866  -127 /*toYearTiny (-32767)*/,
    -
    1867  1 /*inMonth*/,
    -
    1868  0 /*onDayOfWeek*/,
    -
    1869  1 /*onDayOfMonth*/,
    -
    1870  0 /*atTimeCode*/,
    -
    1871  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1872  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1873  0 /*letterIndex ("")*/,
    -
    1874  },
    -
    1875  // Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
    -
    1876  {
    -
    1877  -121 /*fromYearTiny (1979)*/,
    -
    1878  -105 /*toYearTiny (1995)*/,
    -
    1879  9 /*inMonth*/,
    -
    1880  7 /*onDayOfWeek*/,
    -
    1881  0 /*onDayOfMonth*/,
    -
    1882  4 /*atTimeCode*/,
    -
    1883  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1884  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1885  0 /*letterIndex ("")*/,
    -
    1886  },
    -
    1887  // Rule EU 1981 max - Mar lastSun 1:00u 1:00 S
    -
    1888  {
    -
    1889  -119 /*fromYearTiny (1981)*/,
    -
    1890  126 /*toYearTiny (32766)*/,
    -
    1891  3 /*inMonth*/,
    -
    1892  7 /*onDayOfWeek*/,
    -
    1893  0 /*onDayOfMonth*/,
    -
    1894  4 /*atTimeCode*/,
    -
    1895  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1896  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1897  4 /*letterIndex ("S")*/,
    -
    1898  },
    -
    1899  // Rule EU 1996 max - Oct lastSun 1:00u 0 -
    -
    1900  {
    -
    1901  -104 /*fromYearTiny (1996)*/,
    -
    1902  126 /*toYearTiny (32766)*/,
    -
    1903  10 /*inMonth*/,
    -
    1904  7 /*onDayOfWeek*/,
    -
    1905  0 /*onDayOfMonth*/,
    -
    1906  4 /*atTimeCode*/,
    -
    1907  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1908  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1909  0 /*letterIndex ("")*/,
    -
    1910  },
    -
    1911 
    -
    1912 };
    -
    1913 
    -
    1914 const basic::Info::ZonePolicy kZonePolicyEU ACE_TIME_PROGMEM = {
    -
    1915  kZoneRulesEU /*rules*/,
    -
    1916  4 /*numRules*/,
    -
    1917 };
    -
    1918 
    -
    1919 //---------------------------------------------------------------------------
    -
    1920 // Policy name: EUAsia
    -
    1921 // Rules: 4
    -
    1922 //---------------------------------------------------------------------------
    -
    1923 
    -
    1924 static const basic::Info::ZoneRule kZoneRulesEUAsia[] ACE_TIME_PROGMEM = {
    -
    1925  // Anchor: Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
    -
    1926  {
    -
    1927  -127 /*fromYearTiny (-32767)*/,
    -
    1928  -127 /*toYearTiny (-32767)*/,
    -
    1929  1 /*inMonth*/,
    -
    1930  0 /*onDayOfWeek*/,
    -
    1931  1 /*onDayOfMonth*/,
    -
    1932  0 /*atTimeCode*/,
    -
    1933  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1934  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1935  0 /*letterIndex ("")*/,
    -
    1936  },
    -
    1937  // Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
    -
    1938  {
    -
    1939  -119 /*fromYearTiny (1981)*/,
    -
    1940  126 /*toYearTiny (32766)*/,
    -
    1941  3 /*inMonth*/,
    -
    1942  7 /*onDayOfWeek*/,
    -
    1943  0 /*onDayOfMonth*/,
    -
    1944  4 /*atTimeCode*/,
    -
    1945  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1946  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1947  4 /*letterIndex ("S")*/,
    -
    1948  },
    -
    1949  // Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
    -
    1950  {
    -
    1951  -121 /*fromYearTiny (1979)*/,
    -
    1952  -105 /*toYearTiny (1995)*/,
    -
    1953  9 /*inMonth*/,
    -
    1954  7 /*onDayOfWeek*/,
    -
    1955  0 /*onDayOfMonth*/,
    -
    1956  4 /*atTimeCode*/,
    -
    1957  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1958  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1959  0 /*letterIndex ("")*/,
    -
    1960  },
    -
    1961  // Rule EUAsia 1996 max - Oct lastSun 1:00u 0 -
    -
    1962  {
    -
    1963  -104 /*fromYearTiny (1996)*/,
    -
    1964  126 /*toYearTiny (32766)*/,
    -
    1965  10 /*inMonth*/,
    -
    1966  7 /*onDayOfWeek*/,
    -
    1967  0 /*onDayOfMonth*/,
    -
    1968  4 /*atTimeCode*/,
    -
    1969  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1970  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1971  0 /*letterIndex ("")*/,
    -
    1972  },
    -
    1973 
    -
    1974 };
    -
    1975 
    -
    1976 const basic::Info::ZonePolicy kZonePolicyEUAsia ACE_TIME_PROGMEM = {
    -
    1977  kZoneRulesEUAsia /*rules*/,
    -
    1978  4 /*numRules*/,
    -
    1979 };
    -
    1980 
    -
    1981 //---------------------------------------------------------------------------
    -
    1982 // Policy name: Ecuador
    -
    1983 // Rules: 1
    -
    1984 //---------------------------------------------------------------------------
    -
    1985 
    -
    1986 static const basic::Info::ZoneRule kZoneRulesEcuador[] ACE_TIME_PROGMEM = {
    -
    1987  // Anchor: Rule Ecuador 1993 only - Feb 5 0:00 0 -
    -
    1988  {
    -
    1989  -127 /*fromYearTiny (-32767)*/,
    -
    1990  -127 /*toYearTiny (-32767)*/,
    -
    1991  1 /*inMonth*/,
    -
    1992  0 /*onDayOfWeek*/,
    -
    1993  1 /*onDayOfMonth*/,
    -
    1994  0 /*atTimeCode*/,
    -
    1995  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1996  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1997  0 /*letterIndex ("")*/,
    -
    1998  },
    -
    1999 
    -
    2000 };
    -
    2001 
    -
    2002 const basic::Info::ZonePolicy kZonePolicyEcuador ACE_TIME_PROGMEM = {
    -
    2003  kZoneRulesEcuador /*rules*/,
    -
    2004  1 /*numRules*/,
    -
    2005 };
    -
    2006 
    -
    2007 //---------------------------------------------------------------------------
    -
    2008 // Policy name: Eire
    -
    2009 // Rules: 4
    -
    2010 //---------------------------------------------------------------------------
    -
    2011 
    -
    2012 static const basic::Info::ZoneRule kZoneRulesEire[] ACE_TIME_PROGMEM = {
    -
    2013  // Anchor: Rule Eire 1981 max - Mar lastSun 1:00u 0 -
    -
    2014  {
    -
    2015  -127 /*fromYearTiny (-32767)*/,
    -
    2016  -127 /*toYearTiny (-32767)*/,
    -
    2017  1 /*inMonth*/,
    -
    2018  0 /*onDayOfWeek*/,
    -
    2019  1 /*onDayOfMonth*/,
    -
    2020  0 /*atTimeCode*/,
    -
    2021  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2022  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2023  0 /*letterIndex ("")*/,
    -
    2024  },
    -
    2025  // Rule Eire 1981 max - Mar lastSun 1:00u 0 -
    -
    2026  {
    -
    2027  -119 /*fromYearTiny (1981)*/,
    -
    2028  126 /*toYearTiny (32766)*/,
    -
    2029  3 /*inMonth*/,
    -
    2030  7 /*onDayOfWeek*/,
    -
    2031  0 /*onDayOfMonth*/,
    -
    2032  4 /*atTimeCode*/,
    -
    2033  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2034  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2035  0 /*letterIndex ("")*/,
    -
    2036  },
    -
    2037  // Rule Eire 1990 1995 - Oct Sun>=22 1:00u -1:00 -
    -
    2038  {
    -
    2039  -110 /*fromYearTiny (1990)*/,
    -
    2040  -105 /*toYearTiny (1995)*/,
    -
    2041  10 /*inMonth*/,
    -
    2042  7 /*onDayOfWeek*/,
    -
    2043  22 /*onDayOfMonth*/,
    -
    2044  4 /*atTimeCode*/,
    -
    2045  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2046  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2047  0 /*letterIndex ("")*/,
    -
    2048  },
    -
    2049  // Rule Eire 1996 max - Oct lastSun 1:00u -1:00 -
    -
    2050  {
    -
    2051  -104 /*fromYearTiny (1996)*/,
    -
    2052  126 /*toYearTiny (32766)*/,
    -
    2053  10 /*inMonth*/,
    -
    2054  7 /*onDayOfWeek*/,
    -
    2055  0 /*onDayOfMonth*/,
    -
    2056  4 /*atTimeCode*/,
    -
    2057  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2058  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2059  0 /*letterIndex ("")*/,
    -
    2060  },
    -
    2061 
    -
    2062 };
    -
    2063 
    -
    2064 const basic::Info::ZonePolicy kZonePolicyEire ACE_TIME_PROGMEM = {
    -
    2065  kZoneRulesEire /*rules*/,
    -
    2066  4 /*numRules*/,
    -
    2067 };
    -
    2068 
    -
    2069 //---------------------------------------------------------------------------
    -
    2070 // Policy name: Fiji
    -
    2071 // Rules: 13
    -
    2072 //---------------------------------------------------------------------------
    -
    2073 
    -
    2074 static const basic::Info::ZoneRule kZoneRulesFiji[] ACE_TIME_PROGMEM = {
    -
    2075  // Anchor: Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
    -
    2076  {
    -
    2077  -127 /*fromYearTiny (-32767)*/,
    -
    2078  -127 /*toYearTiny (-32767)*/,
    -
    2079  1 /*inMonth*/,
    -
    2080  0 /*onDayOfWeek*/,
    -
    2081  1 /*onDayOfMonth*/,
    -
    2082  0 /*atTimeCode*/,
    -
    2083  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2084  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2085  0 /*letterIndex ("")*/,
    -
    2086  },
    -
    2087  // Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
    -
    2088  {
    -
    2089  -102 /*fromYearTiny (1998)*/,
    -
    2090  -101 /*toYearTiny (1999)*/,
    -
    2091  11 /*inMonth*/,
    -
    2092  7 /*onDayOfWeek*/,
    -
    2093  1 /*onDayOfMonth*/,
    -
    2094  8 /*atTimeCode*/,
    -
    2095  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2096  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2097  0 /*letterIndex ("")*/,
    -
    2098  },
    -
    2099  // Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
    -
    2100  {
    -
    2101  -101 /*fromYearTiny (1999)*/,
    -
    2102  -100 /*toYearTiny (2000)*/,
    -
    2103  2 /*inMonth*/,
    -
    2104  7 /*onDayOfWeek*/,
    -
    2105  0 /*onDayOfMonth*/,
    -
    2106  12 /*atTimeCode*/,
    -
    2107  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2108  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2109  0 /*letterIndex ("")*/,
    -
    2110  },
    -
    2111  // Rule Fiji 2009 only - Nov 29 2:00 1:00 -
    -
    2112  {
    -
    2113  -91 /*fromYearTiny (2009)*/,
    -
    2114  -91 /*toYearTiny (2009)*/,
    -
    2115  11 /*inMonth*/,
    -
    2116  0 /*onDayOfWeek*/,
    -
    2117  29 /*onDayOfMonth*/,
    -
    2118  8 /*atTimeCode*/,
    -
    2119  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2120  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2121  0 /*letterIndex ("")*/,
    -
    2122  },
    -
    2123  // Rule Fiji 2010 only - Mar lastSun 3:00 0 -
    -
    2124  {
    -
    2125  -90 /*fromYearTiny (2010)*/,
    -
    2126  -90 /*toYearTiny (2010)*/,
    -
    2127  3 /*inMonth*/,
    -
    2128  7 /*onDayOfWeek*/,
    -
    2129  0 /*onDayOfMonth*/,
    -
    2130  12 /*atTimeCode*/,
    -
    2131  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2132  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2133  0 /*letterIndex ("")*/,
    -
    2134  },
    -
    2135  // Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 -
    -
    2136  {
    -
    2137  -90 /*fromYearTiny (2010)*/,
    -
    2138  -87 /*toYearTiny (2013)*/,
    -
    2139  10 /*inMonth*/,
    -
    2140  7 /*onDayOfWeek*/,
    -
    2141  21 /*onDayOfMonth*/,
    -
    2142  8 /*atTimeCode*/,
    -
    2143  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2144  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2145  0 /*letterIndex ("")*/,
    -
    2146  },
    -
    2147  // Rule Fiji 2011 only - Mar Sun>=1 3:00 0 -
    -
    2148  {
    -
    2149  -89 /*fromYearTiny (2011)*/,
    -
    2150  -89 /*toYearTiny (2011)*/,
    -
    2151  3 /*inMonth*/,
    -
    2152  7 /*onDayOfWeek*/,
    -
    2153  1 /*onDayOfMonth*/,
    -
    2154  12 /*atTimeCode*/,
    -
    2155  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2156  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2157  0 /*letterIndex ("")*/,
    -
    2158  },
    -
    2159  // Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 -
    -
    2160  {
    -
    2161  -88 /*fromYearTiny (2012)*/,
    -
    2162  -87 /*toYearTiny (2013)*/,
    -
    2163  1 /*inMonth*/,
    -
    2164  7 /*onDayOfWeek*/,
    -
    2165  18 /*onDayOfMonth*/,
    -
    2166  12 /*atTimeCode*/,
    -
    2167  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2168  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2169  0 /*letterIndex ("")*/,
    -
    2170  },
    -
    2171  // Rule Fiji 2014 only - Jan Sun>=18 2:00 0 -
    -
    2172  {
    -
    2173  -86 /*fromYearTiny (2014)*/,
    -
    2174  -86 /*toYearTiny (2014)*/,
    -
    2175  1 /*inMonth*/,
    -
    2176  7 /*onDayOfWeek*/,
    -
    2177  18 /*onDayOfMonth*/,
    -
    2178  8 /*atTimeCode*/,
    -
    2179  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2180  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2181  0 /*letterIndex ("")*/,
    -
    2182  },
    -
    2183  // Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 -
    -
    2184  {
    -
    2185  -86 /*fromYearTiny (2014)*/,
    -
    2186  -82 /*toYearTiny (2018)*/,
    -
    2187  11 /*inMonth*/,
    -
    2188  7 /*onDayOfWeek*/,
    -
    2189  1 /*onDayOfMonth*/,
    -
    2190  8 /*atTimeCode*/,
    -
    2191  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2192  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2193  0 /*letterIndex ("")*/,
    -
    2194  },
    -
    2195  // Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 -
    -
    2196  {
    -
    2197  -85 /*fromYearTiny (2015)*/,
    -
    2198  -79 /*toYearTiny (2021)*/,
    -
    2199  1 /*inMonth*/,
    -
    2200  7 /*onDayOfWeek*/,
    -
    2201  12 /*onDayOfMonth*/,
    -
    2202  12 /*atTimeCode*/,
    -
    2203  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2204  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2205  0 /*letterIndex ("")*/,
    -
    2206  },
    -
    2207  // Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 -
    -
    2208  {
    -
    2209  -81 /*fromYearTiny (2019)*/,
    -
    2210  -81 /*toYearTiny (2019)*/,
    -
    2211  11 /*inMonth*/,
    -
    2212  7 /*onDayOfWeek*/,
    -
    2213  8 /*onDayOfMonth*/,
    -
    2214  8 /*atTimeCode*/,
    -
    2215  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2216  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2217  0 /*letterIndex ("")*/,
    -
    2218  },
    -
    2219  // Rule Fiji 2020 only - Dec 20 2:00 1:00 -
    -
    2220  {
    -
    2221  -80 /*fromYearTiny (2020)*/,
    -
    2222  -80 /*toYearTiny (2020)*/,
    -
    2223  12 /*inMonth*/,
    -
    2224  0 /*onDayOfWeek*/,
    -
    2225  20 /*onDayOfMonth*/,
    -
    2226  8 /*atTimeCode*/,
    -
    2227  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2228  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2229  0 /*letterIndex ("")*/,
    -
    2230  },
    -
    2231 
    -
    2232 };
    -
    2233 
    -
    2234 const basic::Info::ZonePolicy kZonePolicyFiji ACE_TIME_PROGMEM = {
    -
    2235  kZoneRulesFiji /*rules*/,
    -
    2236  13 /*numRules*/,
    -
    2237 };
    -
    2238 
    -
    2239 //---------------------------------------------------------------------------
    -
    2240 // Policy name: Guat
    -
    2241 // Rules: 4
    -
    2242 //---------------------------------------------------------------------------
    -
    2243 
    -
    2244 static const basic::Info::ZoneRule kZoneRulesGuat[] ACE_TIME_PROGMEM = {
    -
    2245  // Anchor: Rule Guat 1991 only - Sep 7 0:00 0 S
    -
    2246  {
    -
    2247  -127 /*fromYearTiny (-32767)*/,
    -
    2248  -127 /*toYearTiny (-32767)*/,
    -
    2249  1 /*inMonth*/,
    -
    2250  0 /*onDayOfWeek*/,
    -
    2251  1 /*onDayOfMonth*/,
    -
    2252  0 /*atTimeCode*/,
    -
    2253  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2254  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2255  4 /*letterIndex ("S")*/,
    -
    2256  },
    -
    2257  // Rule Guat 1991 only - Sep 7 0:00 0 S
    -
    2258  {
    -
    2259  -109 /*fromYearTiny (1991)*/,
    -
    2260  -109 /*toYearTiny (1991)*/,
    -
    2261  9 /*inMonth*/,
    -
    2262  0 /*onDayOfWeek*/,
    -
    2263  7 /*onDayOfMonth*/,
    -
    2264  0 /*atTimeCode*/,
    -
    2265  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2266  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2267  4 /*letterIndex ("S")*/,
    -
    2268  },
    -
    2269  // Rule Guat 2006 only - Apr 30 0:00 1:00 D
    -
    2270  {
    -
    2271  -94 /*fromYearTiny (2006)*/,
    -
    2272  -94 /*toYearTiny (2006)*/,
    -
    2273  4 /*inMonth*/,
    -
    2274  0 /*onDayOfWeek*/,
    -
    2275  30 /*onDayOfMonth*/,
    -
    2276  0 /*atTimeCode*/,
    -
    2277  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2278  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2279  3 /*letterIndex ("D")*/,
    -
    2280  },
    -
    2281  // Rule Guat 2006 only - Oct 1 0:00 0 S
    -
    2282  {
    -
    2283  -94 /*fromYearTiny (2006)*/,
    -
    2284  -94 /*toYearTiny (2006)*/,
    -
    2285  10 /*inMonth*/,
    -
    2286  0 /*onDayOfWeek*/,
    -
    2287  1 /*onDayOfMonth*/,
    -
    2288  0 /*atTimeCode*/,
    -
    2289  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2290  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2291  4 /*letterIndex ("S")*/,
    -
    2292  },
    -
    2293 
    -
    2294 };
    -
    2295 
    -
    2296 const basic::Info::ZonePolicy kZonePolicyGuat ACE_TIME_PROGMEM = {
    -
    2297  kZoneRulesGuat /*rules*/,
    -
    2298  4 /*numRules*/,
    -
    2299 };
    -
    2300 
    -
    2301 //---------------------------------------------------------------------------
    -
    2302 // Policy name: HK
    -
    2303 // Rules: 1
    -
    2304 //---------------------------------------------------------------------------
    -
    2305 
    -
    2306 static const basic::Info::ZoneRule kZoneRulesHK[] ACE_TIME_PROGMEM = {
    -
    2307  // Anchor: Rule HK 1979 only - Oct 21 3:30 0 -
    -
    2308  {
    -
    2309  -127 /*fromYearTiny (-32767)*/,
    -
    2310  -127 /*toYearTiny (-32767)*/,
    -
    2311  1 /*inMonth*/,
    -
    2312  0 /*onDayOfWeek*/,
    -
    2313  1 /*onDayOfMonth*/,
    -
    2314  0 /*atTimeCode*/,
    -
    2315  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2316  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2317  0 /*letterIndex ("")*/,
    -
    2318  },
    -
    2319 
    -
    2320 };
    -
    2321 
    -
    2322 const basic::Info::ZonePolicy kZonePolicyHK ACE_TIME_PROGMEM = {
    -
    2323  kZoneRulesHK /*rules*/,
    -
    2324  1 /*numRules*/,
    -
    2325 };
    -
    2326 
    -
    2327 //---------------------------------------------------------------------------
    -
    2328 // Policy name: Haiti
    -
    2329 // Rules: 8
    -
    2330 //---------------------------------------------------------------------------
    -
    2331 
    -
    2332 static const basic::Info::ZoneRule kZoneRulesHaiti[] ACE_TIME_PROGMEM = {
    -
    2333  // Anchor: Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S
    -
    2334  {
    -
    2335  -127 /*fromYearTiny (-32767)*/,
    -
    2336  -127 /*toYearTiny (-32767)*/,
    -
    2337  1 /*inMonth*/,
    -
    2338  0 /*onDayOfWeek*/,
    -
    2339  1 /*onDayOfMonth*/,
    -
    2340  0 /*atTimeCode*/,
    -
    2341  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2342  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2343  4 /*letterIndex ("S")*/,
    -
    2344  },
    -
    2345  // Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S
    -
    2346  {
    -
    2347  -112 /*fromYearTiny (1988)*/,
    -
    2348  -103 /*toYearTiny (1997)*/,
    -
    2349  10 /*inMonth*/,
    -
    2350  7 /*onDayOfWeek*/,
    -
    2351  0 /*onDayOfMonth*/,
    -
    2352  4 /*atTimeCode*/,
    -
    2353  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2354  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2355  4 /*letterIndex ("S")*/,
    -
    2356  },
    -
    2357  // Rule Haiti 2005 2006 - Apr Sun>=1 0:00 1:00 D
    -
    2358  {
    -
    2359  -95 /*fromYearTiny (2005)*/,
    -
    2360  -94 /*toYearTiny (2006)*/,
    -
    2361  4 /*inMonth*/,
    -
    2362  7 /*onDayOfWeek*/,
    -
    2363  1 /*onDayOfMonth*/,
    -
    2364  0 /*atTimeCode*/,
    -
    2365  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2366  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2367  3 /*letterIndex ("D")*/,
    -
    2368  },
    -
    2369  // Rule Haiti 2005 2006 - Oct lastSun 0:00 0 S
    -
    2370  {
    -
    2371  -95 /*fromYearTiny (2005)*/,
    -
    2372  -94 /*toYearTiny (2006)*/,
    -
    2373  10 /*inMonth*/,
    -
    2374  7 /*onDayOfWeek*/,
    -
    2375  0 /*onDayOfMonth*/,
    -
    2376  0 /*atTimeCode*/,
    -
    2377  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2378  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2379  4 /*letterIndex ("S")*/,
    -
    2380  },
    -
    2381  // Rule Haiti 2012 2015 - Mar Sun>=8 2:00 1:00 D
    -
    2382  {
    -
    2383  -88 /*fromYearTiny (2012)*/,
    -
    2384  -85 /*toYearTiny (2015)*/,
    -
    2385  3 /*inMonth*/,
    -
    2386  7 /*onDayOfWeek*/,
    -
    2387  8 /*onDayOfMonth*/,
    -
    2388  8 /*atTimeCode*/,
    -
    2389  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2390  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2391  3 /*letterIndex ("D")*/,
    -
    2392  },
    -
    2393  // Rule Haiti 2012 2015 - Nov Sun>=1 2:00 0 S
    -
    2394  {
    -
    2395  -88 /*fromYearTiny (2012)*/,
    -
    2396  -85 /*toYearTiny (2015)*/,
    -
    2397  11 /*inMonth*/,
    -
    2398  7 /*onDayOfWeek*/,
    -
    2399  1 /*onDayOfMonth*/,
    -
    2400  8 /*atTimeCode*/,
    -
    2401  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2402  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2403  4 /*letterIndex ("S")*/,
    -
    2404  },
    -
    2405  // Rule Haiti 2017 max - Mar Sun>=8 2:00 1:00 D
    -
    2406  {
    -
    2407  -83 /*fromYearTiny (2017)*/,
    -
    2408  126 /*toYearTiny (32766)*/,
    -
    2409  3 /*inMonth*/,
    -
    2410  7 /*onDayOfWeek*/,
    -
    2411  8 /*onDayOfMonth*/,
    -
    2412  8 /*atTimeCode*/,
    -
    2413  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2414  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2415  3 /*letterIndex ("D")*/,
    -
    2416  },
    -
    2417  // Rule Haiti 2017 max - Nov Sun>=1 2:00 0 S
    -
    2418  {
    -
    2419  -83 /*fromYearTiny (2017)*/,
    -
    2420  126 /*toYearTiny (32766)*/,
    -
    2421  11 /*inMonth*/,
    -
    2422  7 /*onDayOfWeek*/,
    -
    2423  1 /*onDayOfMonth*/,
    -
    2424  8 /*atTimeCode*/,
    -
    2425  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2426  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2427  4 /*letterIndex ("S")*/,
    -
    2428  },
    -
    2429 
    -
    2430 };
    -
    2431 
    -
    2432 const basic::Info::ZonePolicy kZonePolicyHaiti ACE_TIME_PROGMEM = {
    -
    2433  kZoneRulesHaiti /*rules*/,
    -
    2434  8 /*numRules*/,
    -
    2435 };
    -
    2436 
    -
    2437 //---------------------------------------------------------------------------
    -
    2438 // Policy name: Holiday
    -
    2439 // Rules: 1
    -
    2440 //---------------------------------------------------------------------------
    -
    2441 
    -
    2442 static const basic::Info::ZoneRule kZoneRulesHoliday[] ACE_TIME_PROGMEM = {
    -
    2443  // Anchor: Rule Holiday 1993 1994 - Mar Sun>=1 2:00s 0 S
    -
    2444  {
    -
    2445  -127 /*fromYearTiny (-32767)*/,
    -
    2446  -127 /*toYearTiny (-32767)*/,
    -
    2447  1 /*inMonth*/,
    -
    2448  0 /*onDayOfWeek*/,
    -
    2449  1 /*onDayOfMonth*/,
    -
    2450  0 /*atTimeCode*/,
    -
    2451  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2452  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2453  4 /*letterIndex ("S")*/,
    -
    2454  },
    -
    2455 
    -
    2456 };
    -
    2457 
    -
    2458 const basic::Info::ZonePolicy kZonePolicyHoliday ACE_TIME_PROGMEM = {
    -
    2459  kZoneRulesHoliday /*rules*/,
    -
    2460  1 /*numRules*/,
    -
    2461 };
    -
    2462 
    -
    2463 //---------------------------------------------------------------------------
    -
    2464 // Policy name: Hond
    -
    2465 // Rules: 4
    -
    2466 //---------------------------------------------------------------------------
    -
    2467 
    -
    2468 static const basic::Info::ZoneRule kZoneRulesHond[] ACE_TIME_PROGMEM = {
    -
    2469  // Anchor: Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
    -
    2470  {
    -
    2471  -127 /*fromYearTiny (-32767)*/,
    -
    2472  -127 /*toYearTiny (-32767)*/,
    -
    2473  1 /*inMonth*/,
    -
    2474  0 /*onDayOfWeek*/,
    -
    2475  1 /*onDayOfMonth*/,
    -
    2476  0 /*atTimeCode*/,
    -
    2477  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2478  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2479  4 /*letterIndex ("S")*/,
    -
    2480  },
    -
    2481  // Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
    -
    2482  {
    -
    2483  -113 /*fromYearTiny (1987)*/,
    -
    2484  -112 /*toYearTiny (1988)*/,
    -
    2485  9 /*inMonth*/,
    -
    2486  7 /*onDayOfWeek*/,
    -
    2487  0 /*onDayOfMonth*/,
    -
    2488  0 /*atTimeCode*/,
    -
    2489  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2490  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2491  4 /*letterIndex ("S")*/,
    -
    2492  },
    -
    2493  // Rule Hond 2006 only - May Sun>=1 0:00 1:00 D
    -
    2494  {
    -
    2495  -94 /*fromYearTiny (2006)*/,
    -
    2496  -94 /*toYearTiny (2006)*/,
    -
    2497  5 /*inMonth*/,
    -
    2498  7 /*onDayOfWeek*/,
    -
    2499  1 /*onDayOfMonth*/,
    -
    2500  0 /*atTimeCode*/,
    -
    2501  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2502  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2503  3 /*letterIndex ("D")*/,
    -
    2504  },
    -
    2505  // Rule Hond 2006 only - Aug Mon>=1 0:00 0 S
    -
    2506  {
    -
    2507  -94 /*fromYearTiny (2006)*/,
    -
    2508  -94 /*toYearTiny (2006)*/,
    -
    2509  8 /*inMonth*/,
    -
    2510  1 /*onDayOfWeek*/,
    -
    2511  1 /*onDayOfMonth*/,
    -
    2512  0 /*atTimeCode*/,
    -
    2513  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2514  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2515  4 /*letterIndex ("S")*/,
    -
    2516  },
    -
    2517 
    -
    2518 };
    -
    2519 
    -
    2520 const basic::Info::ZonePolicy kZonePolicyHond ACE_TIME_PROGMEM = {
    -
    2521  kZoneRulesHond /*rules*/,
    -
    2522  4 /*numRules*/,
    -
    2523 };
    -
    2524 
    -
    2525 //---------------------------------------------------------------------------
    -
    2526 // Policy name: Iran
    -
    2527 // Rules: 28
    -
    2528 //---------------------------------------------------------------------------
    -
    2529 
    -
    2530 static const basic::Info::ZoneRule kZoneRulesIran[] ACE_TIME_PROGMEM = {
    -
    2531  // Anchor: Rule Iran 1996 only - Sep 20 24:00 0 -
    -
    2532  {
    -
    2533  -127 /*fromYearTiny (-32767)*/,
    -
    2534  -127 /*toYearTiny (-32767)*/,
    -
    2535  1 /*inMonth*/,
    -
    2536  0 /*onDayOfWeek*/,
    -
    2537  1 /*onDayOfMonth*/,
    -
    2538  0 /*atTimeCode*/,
    -
    2539  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2540  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2541  0 /*letterIndex ("")*/,
    -
    2542  },
    -
    2543  // Rule Iran 1996 only - Sep 20 24:00 0 -
    -
    2544  {
    -
    2545  -104 /*fromYearTiny (1996)*/,
    -
    2546  -104 /*toYearTiny (1996)*/,
    -
    2547  9 /*inMonth*/,
    -
    2548  0 /*onDayOfWeek*/,
    -
    2549  20 /*onDayOfMonth*/,
    -
    2550  96 /*atTimeCode*/,
    -
    2551  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2552  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2553  0 /*letterIndex ("")*/,
    -
    2554  },
    -
    2555  // Rule Iran 1997 1999 - Mar 21 24:00 1:00 -
    -
    2556  {
    -
    2557  -103 /*fromYearTiny (1997)*/,
    -
    2558  -101 /*toYearTiny (1999)*/,
    -
    2559  3 /*inMonth*/,
    -
    2560  0 /*onDayOfWeek*/,
    -
    2561  21 /*onDayOfMonth*/,
    -
    2562  96 /*atTimeCode*/,
    -
    2563  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2564  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2565  0 /*letterIndex ("")*/,
    -
    2566  },
    -
    2567  // Rule Iran 1997 1999 - Sep 21 24:00 0 -
    -
    2568  {
    -
    2569  -103 /*fromYearTiny (1997)*/,
    -
    2570  -101 /*toYearTiny (1999)*/,
    -
    2571  9 /*inMonth*/,
    -
    2572  0 /*onDayOfWeek*/,
    -
    2573  21 /*onDayOfMonth*/,
    -
    2574  96 /*atTimeCode*/,
    -
    2575  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2576  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2577  0 /*letterIndex ("")*/,
    -
    2578  },
    -
    2579  // Rule Iran 2000 only - Mar 20 24:00 1:00 -
    -
    2580  {
    -
    2581  -100 /*fromYearTiny (2000)*/,
    -
    2582  -100 /*toYearTiny (2000)*/,
    -
    2583  3 /*inMonth*/,
    -
    2584  0 /*onDayOfWeek*/,
    -
    2585  20 /*onDayOfMonth*/,
    -
    2586  96 /*atTimeCode*/,
    -
    2587  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2588  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2589  0 /*letterIndex ("")*/,
    -
    2590  },
    -
    2591  // Rule Iran 2000 only - Sep 20 24:00 0 -
    -
    2592  {
    -
    2593  -100 /*fromYearTiny (2000)*/,
    -
    2594  -100 /*toYearTiny (2000)*/,
    -
    2595  9 /*inMonth*/,
    -
    2596  0 /*onDayOfWeek*/,
    -
    2597  20 /*onDayOfMonth*/,
    -
    2598  96 /*atTimeCode*/,
    -
    2599  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2600  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2601  0 /*letterIndex ("")*/,
    -
    2602  },
    -
    2603  // Rule Iran 2001 2003 - Mar 21 24:00 1:00 -
    -
    2604  {
    -
    2605  -99 /*fromYearTiny (2001)*/,
    -
    2606  -97 /*toYearTiny (2003)*/,
    -
    2607  3 /*inMonth*/,
    -
    2608  0 /*onDayOfWeek*/,
    -
    2609  21 /*onDayOfMonth*/,
    -
    2610  96 /*atTimeCode*/,
    -
    2611  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2612  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2613  0 /*letterIndex ("")*/,
    -
    2614  },
    -
    2615  // Rule Iran 2001 2003 - Sep 21 24:00 0 -
    -
    2616  {
    -
    2617  -99 /*fromYearTiny (2001)*/,
    -
    2618  -97 /*toYearTiny (2003)*/,
    -
    2619  9 /*inMonth*/,
    -
    2620  0 /*onDayOfWeek*/,
    -
    2621  21 /*onDayOfMonth*/,
    -
    2622  96 /*atTimeCode*/,
    -
    2623  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2624  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2625  0 /*letterIndex ("")*/,
    -
    2626  },
    -
    2627  // Rule Iran 2004 only - Mar 20 24:00 1:00 -
    -
    2628  {
    -
    2629  -96 /*fromYearTiny (2004)*/,
    -
    2630  -96 /*toYearTiny (2004)*/,
    -
    2631  3 /*inMonth*/,
    -
    2632  0 /*onDayOfWeek*/,
    -
    2633  20 /*onDayOfMonth*/,
    -
    2634  96 /*atTimeCode*/,
    -
    2635  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2636  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2637  0 /*letterIndex ("")*/,
    -
    2638  },
    -
    2639  // Rule Iran 2004 only - Sep 20 24:00 0 -
    -
    2640  {
    -
    2641  -96 /*fromYearTiny (2004)*/,
    -
    2642  -96 /*toYearTiny (2004)*/,
    -
    2643  9 /*inMonth*/,
    -
    2644  0 /*onDayOfWeek*/,
    -
    2645  20 /*onDayOfMonth*/,
    -
    2646  96 /*atTimeCode*/,
    -
    2647  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2648  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2649  0 /*letterIndex ("")*/,
    -
    2650  },
    -
    2651  // Rule Iran 2005 only - Mar 21 24:00 1:00 -
    -
    2652  {
    -
    2653  -95 /*fromYearTiny (2005)*/,
    -
    2654  -95 /*toYearTiny (2005)*/,
    -
    2655  3 /*inMonth*/,
    -
    2656  0 /*onDayOfWeek*/,
    -
    2657  21 /*onDayOfMonth*/,
    -
    2658  96 /*atTimeCode*/,
    -
    2659  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2660  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2661  0 /*letterIndex ("")*/,
    -
    2662  },
    -
    2663  // Rule Iran 2005 only - Sep 21 24:00 0 -
    -
    2664  {
    -
    2665  -95 /*fromYearTiny (2005)*/,
    -
    2666  -95 /*toYearTiny (2005)*/,
    -
    2667  9 /*inMonth*/,
    -
    2668  0 /*onDayOfWeek*/,
    -
    2669  21 /*onDayOfMonth*/,
    -
    2670  96 /*atTimeCode*/,
    -
    2671  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2672  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2673  0 /*letterIndex ("")*/,
    -
    2674  },
    -
    2675  // Rule Iran 2008 only - Mar 20 24:00 1:00 -
    -
    2676  {
    -
    2677  -92 /*fromYearTiny (2008)*/,
    -
    2678  -92 /*toYearTiny (2008)*/,
    -
    2679  3 /*inMonth*/,
    -
    2680  0 /*onDayOfWeek*/,
    -
    2681  20 /*onDayOfMonth*/,
    -
    2682  96 /*atTimeCode*/,
    -
    2683  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2684  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2685  0 /*letterIndex ("")*/,
    -
    2686  },
    -
    2687  // Rule Iran 2008 only - Sep 20 24:00 0 -
    -
    2688  {
    -
    2689  -92 /*fromYearTiny (2008)*/,
    -
    2690  -92 /*toYearTiny (2008)*/,
    -
    2691  9 /*inMonth*/,
    -
    2692  0 /*onDayOfWeek*/,
    -
    2693  20 /*onDayOfMonth*/,
    -
    2694  96 /*atTimeCode*/,
    -
    2695  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2696  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2697  0 /*letterIndex ("")*/,
    -
    2698  },
    -
    2699  // Rule Iran 2009 2011 - Mar 21 24:00 1:00 -
    -
    2700  {
    -
    2701  -91 /*fromYearTiny (2009)*/,
    -
    2702  -89 /*toYearTiny (2011)*/,
    -
    2703  3 /*inMonth*/,
    -
    2704  0 /*onDayOfWeek*/,
    -
    2705  21 /*onDayOfMonth*/,
    -
    2706  96 /*atTimeCode*/,
    -
    2707  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2708  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2709  0 /*letterIndex ("")*/,
    -
    2710  },
    -
    2711  // Rule Iran 2009 2011 - Sep 21 24:00 0 -
    -
    2712  {
    -
    2713  -91 /*fromYearTiny (2009)*/,
    -
    2714  -89 /*toYearTiny (2011)*/,
    -
    2715  9 /*inMonth*/,
    -
    2716  0 /*onDayOfWeek*/,
    -
    2717  21 /*onDayOfMonth*/,
    -
    2718  96 /*atTimeCode*/,
    -
    2719  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2720  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2721  0 /*letterIndex ("")*/,
    -
    2722  },
    -
    2723  // Rule Iran 2012 only - Mar 20 24:00 1:00 -
    -
    2724  {
    -
    2725  -88 /*fromYearTiny (2012)*/,
    -
    2726  -88 /*toYearTiny (2012)*/,
    -
    2727  3 /*inMonth*/,
    -
    2728  0 /*onDayOfWeek*/,
    -
    2729  20 /*onDayOfMonth*/,
    -
    2730  96 /*atTimeCode*/,
    -
    2731  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2732  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2733  0 /*letterIndex ("")*/,
    -
    2734  },
    -
    2735  // Rule Iran 2012 only - Sep 20 24:00 0 -
    -
    2736  {
    -
    2737  -88 /*fromYearTiny (2012)*/,
    -
    2738  -88 /*toYearTiny (2012)*/,
    -
    2739  9 /*inMonth*/,
    -
    2740  0 /*onDayOfWeek*/,
    -
    2741  20 /*onDayOfMonth*/,
    -
    2742  96 /*atTimeCode*/,
    -
    2743  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2744  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2745  0 /*letterIndex ("")*/,
    -
    2746  },
    -
    2747  // Rule Iran 2013 2015 - Mar 21 24:00 1:00 -
    -
    2748  {
    -
    2749  -87 /*fromYearTiny (2013)*/,
    -
    2750  -85 /*toYearTiny (2015)*/,
    -
    2751  3 /*inMonth*/,
    -
    2752  0 /*onDayOfWeek*/,
    -
    2753  21 /*onDayOfMonth*/,
    -
    2754  96 /*atTimeCode*/,
    -
    2755  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2756  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2757  0 /*letterIndex ("")*/,
    -
    2758  },
    -
    2759  // Rule Iran 2013 2015 - Sep 21 24:00 0 -
    -
    2760  {
    -
    2761  -87 /*fromYearTiny (2013)*/,
    -
    2762  -85 /*toYearTiny (2015)*/,
    -
    2763  9 /*inMonth*/,
    -
    2764  0 /*onDayOfWeek*/,
    -
    2765  21 /*onDayOfMonth*/,
    -
    2766  96 /*atTimeCode*/,
    -
    2767  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2768  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2769  0 /*letterIndex ("")*/,
    -
    2770  },
    -
    2771  // Rule Iran 2016 only - Mar 20 24:00 1:00 -
    -
    2772  {
    -
    2773  -84 /*fromYearTiny (2016)*/,
    -
    2774  -84 /*toYearTiny (2016)*/,
    -
    2775  3 /*inMonth*/,
    -
    2776  0 /*onDayOfWeek*/,
    -
    2777  20 /*onDayOfMonth*/,
    -
    2778  96 /*atTimeCode*/,
    -
    2779  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2780  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2781  0 /*letterIndex ("")*/,
    -
    2782  },
    -
    2783  // Rule Iran 2016 only - Sep 20 24:00 0 -
    -
    2784  {
    -
    2785  -84 /*fromYearTiny (2016)*/,
    -
    2786  -84 /*toYearTiny (2016)*/,
    -
    2787  9 /*inMonth*/,
    -
    2788  0 /*onDayOfWeek*/,
    -
    2789  20 /*onDayOfMonth*/,
    -
    2790  96 /*atTimeCode*/,
    -
    2791  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2792  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2793  0 /*letterIndex ("")*/,
    -
    2794  },
    -
    2795  // Rule Iran 2017 2019 - Mar 21 24:00 1:00 -
    -
    2796  {
    -
    2797  -83 /*fromYearTiny (2017)*/,
    -
    2798  -81 /*toYearTiny (2019)*/,
    -
    2799  3 /*inMonth*/,
    -
    2800  0 /*onDayOfWeek*/,
    -
    2801  21 /*onDayOfMonth*/,
    -
    2802  96 /*atTimeCode*/,
    -
    2803  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2804  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2805  0 /*letterIndex ("")*/,
    -
    2806  },
    -
    2807  // Rule Iran 2017 2019 - Sep 21 24:00 0 -
    -
    2808  {
    -
    2809  -83 /*fromYearTiny (2017)*/,
    -
    2810  -81 /*toYearTiny (2019)*/,
    -
    2811  9 /*inMonth*/,
    -
    2812  0 /*onDayOfWeek*/,
    -
    2813  21 /*onDayOfMonth*/,
    -
    2814  96 /*atTimeCode*/,
    -
    2815  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2816  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2817  0 /*letterIndex ("")*/,
    -
    2818  },
    -
    2819  // Rule Iran 2020 only - Mar 20 24:00 1:00 -
    -
    2820  {
    -
    2821  -80 /*fromYearTiny (2020)*/,
    -
    2822  -80 /*toYearTiny (2020)*/,
    -
    2823  3 /*inMonth*/,
    -
    2824  0 /*onDayOfWeek*/,
    -
    2825  20 /*onDayOfMonth*/,
    -
    2826  96 /*atTimeCode*/,
    -
    2827  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2828  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2829  0 /*letterIndex ("")*/,
    -
    2830  },
    -
    2831  // Rule Iran 2020 only - Sep 20 24:00 0 -
    -
    2832  {
    -
    2833  -80 /*fromYearTiny (2020)*/,
    -
    2834  -80 /*toYearTiny (2020)*/,
    -
    2835  9 /*inMonth*/,
    -
    2836  0 /*onDayOfWeek*/,
    -
    2837  20 /*onDayOfMonth*/,
    -
    2838  96 /*atTimeCode*/,
    -
    2839  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2840  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2841  0 /*letterIndex ("")*/,
    -
    2842  },
    -
    2843  // Rule Iran 2021 2022 - Mar 21 24:00 1:00 -
    -
    2844  {
    -
    2845  -79 /*fromYearTiny (2021)*/,
    -
    2846  -78 /*toYearTiny (2022)*/,
    -
    2847  3 /*inMonth*/,
    -
    2848  0 /*onDayOfWeek*/,
    -
    2849  21 /*onDayOfMonth*/,
    -
    2850  96 /*atTimeCode*/,
    -
    2851  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2852  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2853  0 /*letterIndex ("")*/,
    -
    2854  },
    -
    2855  // Rule Iran 2021 2022 - Sep 21 24:00 0 -
    -
    2856  {
    -
    2857  -79 /*fromYearTiny (2021)*/,
    -
    2858  -78 /*toYearTiny (2022)*/,
    -
    2859  9 /*inMonth*/,
    -
    2860  0 /*onDayOfWeek*/,
    -
    2861  21 /*onDayOfMonth*/,
    -
    2862  96 /*atTimeCode*/,
    -
    2863  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2864  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2865  0 /*letterIndex ("")*/,
    -
    2866  },
    -
    2867 
    -
    2868 };
    -
    2869 
    -
    2870 const basic::Info::ZonePolicy kZonePolicyIran ACE_TIME_PROGMEM = {
    -
    2871  kZoneRulesIran /*rules*/,
    -
    2872  28 /*numRules*/,
    -
    2873 };
    -
    2874 
    -
    2875 //---------------------------------------------------------------------------
    -
    2876 // Policy name: Iraq
    -
    2877 // Rules: 4
    -
    2878 //---------------------------------------------------------------------------
    -
    2879 
    -
    2880 static const basic::Info::ZoneRule kZoneRulesIraq[] ACE_TIME_PROGMEM = {
    -
    2881  // Anchor: Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 -
    -
    2882  {
    -
    2883  -127 /*fromYearTiny (-32767)*/,
    -
    2884  -127 /*toYearTiny (-32767)*/,
    -
    2885  1 /*inMonth*/,
    -
    2886  0 /*onDayOfWeek*/,
    -
    2887  1 /*onDayOfMonth*/,
    -
    2888  0 /*atTimeCode*/,
    -
    2889  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2890  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2891  0 /*letterIndex ("")*/,
    -
    2892  },
    -
    2893  // Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 -
    -
    2894  {
    -
    2895  -115 /*fromYearTiny (1985)*/,
    -
    2896  -110 /*toYearTiny (1990)*/,
    -
    2897  9 /*inMonth*/,
    -
    2898  7 /*onDayOfWeek*/,
    -
    2899  0 /*onDayOfMonth*/,
    -
    2900  4 /*atTimeCode*/,
    -
    2901  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2902  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2903  0 /*letterIndex ("")*/,
    -
    2904  },
    -
    2905  // Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 -
    -
    2906  {
    -
    2907  -109 /*fromYearTiny (1991)*/,
    -
    2908  -93 /*toYearTiny (2007)*/,
    -
    2909  4 /*inMonth*/,
    -
    2910  0 /*onDayOfWeek*/,
    -
    2911  1 /*onDayOfMonth*/,
    -
    2912  12 /*atTimeCode*/,
    -
    2913  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2914  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2915  0 /*letterIndex ("")*/,
    -
    2916  },
    -
    2917  // Rule Iraq 1991 2007 - Oct 1 3:00s 0 -
    -
    2918  {
    -
    2919  -109 /*fromYearTiny (1991)*/,
    -
    2920  -93 /*toYearTiny (2007)*/,
    -
    2921  10 /*inMonth*/,
    -
    2922  0 /*onDayOfWeek*/,
    -
    2923  1 /*onDayOfMonth*/,
    -
    2924  12 /*atTimeCode*/,
    -
    2925  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2926  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2927  0 /*letterIndex ("")*/,
    -
    2928  },
    -
    2929 
    -
    2930 };
    -
    2931 
    -
    2932 const basic::Info::ZonePolicy kZonePolicyIraq ACE_TIME_PROGMEM = {
    -
    2933  kZoneRulesIraq /*rules*/,
    -
    2934  4 /*numRules*/,
    -
    2935 };
    -
    2936 
    -
    2937 //---------------------------------------------------------------------------
    -
    2938 // Policy name: Japan
    -
    2939 // Rules: 1
    -
    2940 //---------------------------------------------------------------------------
    -
    2941 
    -
    2942 static const basic::Info::ZoneRule kZoneRulesJapan[] ACE_TIME_PROGMEM = {
    -
    2943  // Anchor: Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S
    -
    2944  {
    -
    2945  -127 /*fromYearTiny (-32767)*/,
    -
    2946  -127 /*toYearTiny (-32767)*/,
    -
    2947  1 /*inMonth*/,
    -
    2948  0 /*onDayOfWeek*/,
    -
    2949  1 /*onDayOfMonth*/,
    -
    2950  0 /*atTimeCode*/,
    -
    2951  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2952  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2953  4 /*letterIndex ("S")*/,
    -
    2954  },
    -
    2955 
    -
    2956 };
    -
    2957 
    -
    2958 const basic::Info::ZonePolicy kZonePolicyJapan ACE_TIME_PROGMEM = {
    -
    2959  kZoneRulesJapan /*rules*/,
    -
    2960  1 /*numRules*/,
    -
    2961 };
    -
    2962 
    -
    2963 //---------------------------------------------------------------------------
    -
    2964 // Policy name: Jordan
    -
    2965 // Rules: 14
    -
    2966 //---------------------------------------------------------------------------
    -
    2967 
    -
    2968 static const basic::Info::ZoneRule kZoneRulesJordan[] ACE_TIME_PROGMEM = {
    -
    2969  // Anchor: Rule Jordan 1995 1998 - Sep Fri>=15 0:00s 0 -
    -
    2970  {
    -
    2971  -127 /*fromYearTiny (-32767)*/,
    -
    2972  -127 /*toYearTiny (-32767)*/,
    -
    2973  1 /*inMonth*/,
    -
    2974  0 /*onDayOfWeek*/,
    -
    2975  1 /*onDayOfMonth*/,
    -
    2976  0 /*atTimeCode*/,
    -
    2977  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2978  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2979  0 /*letterIndex ("")*/,
    -
    2980  },
    -
    2981  // Rule Jordan 1995 1998 - Sep Fri>=15 0:00s 0 -
    -
    2982  {
    -
    2983  -105 /*fromYearTiny (1995)*/,
    -
    2984  -102 /*toYearTiny (1998)*/,
    -
    2985  9 /*inMonth*/,
    -
    2986  5 /*onDayOfWeek*/,
    -
    2987  15 /*onDayOfMonth*/,
    -
    2988  0 /*atTimeCode*/,
    -
    2989  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2990  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2991  0 /*letterIndex ("")*/,
    -
    2992  },
    -
    2993  // Rule Jordan 1999 only - Jul 1 0:00s 1:00 S
    -
    2994  {
    -
    2995  -101 /*fromYearTiny (1999)*/,
    -
    2996  -101 /*toYearTiny (1999)*/,
    -
    2997  7 /*inMonth*/,
    -
    2998  0 /*onDayOfWeek*/,
    -
    2999  1 /*onDayOfMonth*/,
    -
    3000  0 /*atTimeCode*/,
    -
    3001  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3002  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3003  4 /*letterIndex ("S")*/,
    -
    3004  },
    -
    3005  // Rule Jordan 1999 2002 - Sep lastFri 0:00s 0 -
    -
    3006  {
    -
    3007  -101 /*fromYearTiny (1999)*/,
    -
    3008  -98 /*toYearTiny (2002)*/,
    -
    3009  9 /*inMonth*/,
    -
    3010  5 /*onDayOfWeek*/,
    -
    3011  0 /*onDayOfMonth*/,
    -
    3012  0 /*atTimeCode*/,
    -
    3013  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3014  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3015  0 /*letterIndex ("")*/,
    -
    3016  },
    -
    3017  // Rule Jordan 2000 2001 - Mar lastThu 0:00s 1:00 S
    -
    3018  {
    -
    3019  -100 /*fromYearTiny (2000)*/,
    -
    3020  -99 /*toYearTiny (2001)*/,
    -
    3021  3 /*inMonth*/,
    -
    3022  4 /*onDayOfWeek*/,
    -
    3023  0 /*onDayOfMonth*/,
    -
    3024  0 /*atTimeCode*/,
    -
    3025  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3026  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3027  4 /*letterIndex ("S")*/,
    -
    3028  },
    -
    3029  // Rule Jordan 2002 2012 - Mar lastThu 24:00 1:00 S
    -
    3030  {
    -
    3031  -98 /*fromYearTiny (2002)*/,
    -
    3032  -88 /*toYearTiny (2012)*/,
    -
    3033  3 /*inMonth*/,
    -
    3034  4 /*onDayOfWeek*/,
    -
    3035  0 /*onDayOfMonth*/,
    -
    3036  96 /*atTimeCode*/,
    -
    3037  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3038  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3039  4 /*letterIndex ("S")*/,
    -
    3040  },
    -
    3041  // Rule Jordan 2003 only - Oct 24 0:00s 0 -
    -
    3042  {
    -
    3043  -97 /*fromYearTiny (2003)*/,
    -
    3044  -97 /*toYearTiny (2003)*/,
    -
    3045  10 /*inMonth*/,
    -
    3046  0 /*onDayOfWeek*/,
    -
    3047  24 /*onDayOfMonth*/,
    -
    3048  0 /*atTimeCode*/,
    -
    3049  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3050  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3051  0 /*letterIndex ("")*/,
    -
    3052  },
    -
    3053  // Rule Jordan 2004 only - Oct 15 0:00s 0 -
    -
    3054  {
    -
    3055  -96 /*fromYearTiny (2004)*/,
    -
    3056  -96 /*toYearTiny (2004)*/,
    -
    3057  10 /*inMonth*/,
    -
    3058  0 /*onDayOfWeek*/,
    -
    3059  15 /*onDayOfMonth*/,
    -
    3060  0 /*atTimeCode*/,
    -
    3061  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3062  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3063  0 /*letterIndex ("")*/,
    -
    3064  },
    -
    3065  // Rule Jordan 2005 only - Sep lastFri 0:00s 0 -
    -
    3066  {
    -
    3067  -95 /*fromYearTiny (2005)*/,
    -
    3068  -95 /*toYearTiny (2005)*/,
    -
    3069  9 /*inMonth*/,
    -
    3070  5 /*onDayOfWeek*/,
    -
    3071  0 /*onDayOfMonth*/,
    -
    3072  0 /*atTimeCode*/,
    -
    3073  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3074  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3075  0 /*letterIndex ("")*/,
    -
    3076  },
    -
    3077  // Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 -
    -
    3078  {
    -
    3079  -94 /*fromYearTiny (2006)*/,
    -
    3080  -89 /*toYearTiny (2011)*/,
    -
    3081  10 /*inMonth*/,
    -
    3082  5 /*onDayOfWeek*/,
    -
    3083  0 /*onDayOfMonth*/,
    -
    3084  0 /*atTimeCode*/,
    -
    3085  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3086  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3087  0 /*letterIndex ("")*/,
    -
    3088  },
    -
    3089  // Rule Jordan 2013 only - Dec 20 0:00 0 -
    -
    3090  {
    -
    3091  -87 /*fromYearTiny (2013)*/,
    -
    3092  -87 /*toYearTiny (2013)*/,
    -
    3093  12 /*inMonth*/,
    -
    3094  0 /*onDayOfWeek*/,
    -
    3095  20 /*onDayOfMonth*/,
    -
    3096  0 /*atTimeCode*/,
    -
    3097  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3098  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3099  0 /*letterIndex ("")*/,
    -
    3100  },
    -
    3101  // Rule Jordan 2014 2021 - Mar lastThu 24:00 1:00 S
    -
    3102  {
    -
    3103  -86 /*fromYearTiny (2014)*/,
    -
    3104  -79 /*toYearTiny (2021)*/,
    -
    3105  3 /*inMonth*/,
    -
    3106  4 /*onDayOfWeek*/,
    -
    3107  0 /*onDayOfMonth*/,
    -
    3108  96 /*atTimeCode*/,
    -
    3109  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3110  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3111  4 /*letterIndex ("S")*/,
    -
    3112  },
    -
    3113  // Rule Jordan 2014 2022 - Oct lastFri 0:00s 0 -
    -
    3114  {
    -
    3115  -86 /*fromYearTiny (2014)*/,
    -
    3116  -78 /*toYearTiny (2022)*/,
    -
    3117  10 /*inMonth*/,
    -
    3118  5 /*onDayOfWeek*/,
    -
    3119  0 /*onDayOfMonth*/,
    -
    3120  0 /*atTimeCode*/,
    -
    3121  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3122  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3123  0 /*letterIndex ("")*/,
    -
    3124  },
    -
    3125  // Rule Jordan 2022 only - Feb lastThu 24:00 1:00 S
    -
    3126  {
    -
    3127  -78 /*fromYearTiny (2022)*/,
    -
    3128  -78 /*toYearTiny (2022)*/,
    -
    3129  2 /*inMonth*/,
    -
    3130  4 /*onDayOfWeek*/,
    -
    3131  0 /*onDayOfMonth*/,
    -
    3132  96 /*atTimeCode*/,
    -
    3133  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3134  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3135  4 /*letterIndex ("S")*/,
    -
    3136  },
    -
    3137 
    -
    3138 };
    -
    3139 
    -
    3140 const basic::Info::ZonePolicy kZonePolicyJordan ACE_TIME_PROGMEM = {
    -
    3141  kZoneRulesJordan /*rules*/,
    -
    3142  14 /*numRules*/,
    -
    3143 };
    -
    3144 
    -
    3145 //---------------------------------------------------------------------------
    -
    3146 // Policy name: LH
    -
    3147 // Rules: 10
    -
    3148 //---------------------------------------------------------------------------
    -
    3149 
    -
    3150 static const basic::Info::ZoneRule kZoneRulesLH[] ACE_TIME_PROGMEM = {
    -
    3151  // Anchor: Rule LH 1990 1995 - Mar Sun>=1 2:00 0 -
    -
    3152  {
    -
    3153  -127 /*fromYearTiny (-32767)*/,
    -
    3154  -127 /*toYearTiny (-32767)*/,
    -
    3155  1 /*inMonth*/,
    -
    3156  0 /*onDayOfWeek*/,
    -
    3157  1 /*onDayOfMonth*/,
    -
    3158  0 /*atTimeCode*/,
    -
    3159  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3160  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3161  0 /*letterIndex ("")*/,
    -
    3162  },
    -
    3163  // Rule LH 1987 1999 - Oct lastSun 2:00 0:30 -
    -
    3164  {
    -
    3165  -113 /*fromYearTiny (1987)*/,
    -
    3166  -101 /*toYearTiny (1999)*/,
    -
    3167  10 /*inMonth*/,
    -
    3168  7 /*onDayOfWeek*/,
    -
    3169  0 /*onDayOfMonth*/,
    -
    3170  8 /*atTimeCode*/,
    -
    3171  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3172  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    -
    3173  0 /*letterIndex ("")*/,
    -
    3174  },
    -
    3175  // Rule LH 1990 1995 - Mar Sun>=1 2:00 0 -
    -
    3176  {
    -
    3177  -110 /*fromYearTiny (1990)*/,
    -
    3178  -105 /*toYearTiny (1995)*/,
    -
    3179  3 /*inMonth*/,
    -
    3180  7 /*onDayOfWeek*/,
    -
    3181  1 /*onDayOfMonth*/,
    -
    3182  8 /*atTimeCode*/,
    -
    3183  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3184  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3185  0 /*letterIndex ("")*/,
    -
    3186  },
    -
    3187  // Rule LH 1996 2005 - Mar lastSun 2:00 0 -
    -
    3188  {
    -
    3189  -104 /*fromYearTiny (1996)*/,
    -
    3190  -95 /*toYearTiny (2005)*/,
    -
    3191  3 /*inMonth*/,
    -
    3192  7 /*onDayOfWeek*/,
    -
    3193  0 /*onDayOfMonth*/,
    -
    3194  8 /*atTimeCode*/,
    -
    3195  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3196  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3197  0 /*letterIndex ("")*/,
    -
    3198  },
    -
    3199  // Rule LH 2000 only - Aug lastSun 2:00 0:30 -
    -
    3200  {
    -
    3201  -100 /*fromYearTiny (2000)*/,
    -
    3202  -100 /*toYearTiny (2000)*/,
    -
    3203  8 /*inMonth*/,
    -
    3204  7 /*onDayOfWeek*/,
    -
    3205  0 /*onDayOfMonth*/,
    -
    3206  8 /*atTimeCode*/,
    -
    3207  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3208  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    -
    3209  0 /*letterIndex ("")*/,
    -
    3210  },
    -
    3211  // Rule LH 2001 2007 - Oct lastSun 2:00 0:30 -
    -
    3212  {
    -
    3213  -99 /*fromYearTiny (2001)*/,
    -
    3214  -93 /*toYearTiny (2007)*/,
    -
    3215  10 /*inMonth*/,
    -
    3216  7 /*onDayOfWeek*/,
    -
    3217  0 /*onDayOfMonth*/,
    -
    3218  8 /*atTimeCode*/,
    -
    3219  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3220  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    -
    3221  0 /*letterIndex ("")*/,
    -
    3222  },
    -
    3223  // Rule LH 2006 only - Apr Sun>=1 2:00 0 -
    -
    3224  {
    -
    3225  -94 /*fromYearTiny (2006)*/,
    -
    3226  -94 /*toYearTiny (2006)*/,
    -
    3227  4 /*inMonth*/,
    -
    3228  7 /*onDayOfWeek*/,
    -
    3229  1 /*onDayOfMonth*/,
    -
    3230  8 /*atTimeCode*/,
    -
    3231  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3232  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3233  0 /*letterIndex ("")*/,
    -
    3234  },
    -
    3235  // Rule LH 2007 only - Mar lastSun 2:00 0 -
    -
    3236  {
    -
    3237  -93 /*fromYearTiny (2007)*/,
    -
    3238  -93 /*toYearTiny (2007)*/,
    -
    3239  3 /*inMonth*/,
    -
    3240  7 /*onDayOfWeek*/,
    -
    3241  0 /*onDayOfMonth*/,
    -
    3242  8 /*atTimeCode*/,
    -
    3243  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3244  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3245  0 /*letterIndex ("")*/,
    -
    3246  },
    -
    3247  // Rule LH 2008 max - Apr Sun>=1 2:00 0 -
    -
    3248  {
    -
    3249  -92 /*fromYearTiny (2008)*/,
    -
    3250  126 /*toYearTiny (32766)*/,
    -
    3251  4 /*inMonth*/,
    -
    3252  7 /*onDayOfWeek*/,
    -
    3253  1 /*onDayOfMonth*/,
    -
    3254  8 /*atTimeCode*/,
    -
    3255  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3256  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3257  0 /*letterIndex ("")*/,
    -
    3258  },
    -
    3259  // Rule LH 2008 max - Oct Sun>=1 2:00 0:30 -
    -
    3260  {
    -
    3261  -92 /*fromYearTiny (2008)*/,
    -
    3262  126 /*toYearTiny (32766)*/,
    -
    3263  10 /*inMonth*/,
    -
    3264  7 /*onDayOfWeek*/,
    -
    3265  1 /*onDayOfMonth*/,
    -
    3266  8 /*atTimeCode*/,
    -
    3267  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3268  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    -
    3269  0 /*letterIndex ("")*/,
    -
    3270  },
    -
    3271 
    -
    3272 };
    -
    3273 
    -
    3274 const basic::Info::ZonePolicy kZonePolicyLH ACE_TIME_PROGMEM = {
    -
    3275  kZoneRulesLH /*rules*/,
    -
    3276  10 /*numRules*/,
    -
    3277 };
    -
    3278 
    -
    3279 //---------------------------------------------------------------------------
    -
    3280 // Policy name: Lebanon
    -
    3281 // Rules: 4
    -
    3282 //---------------------------------------------------------------------------
    -
    3283 
    -
    3284 static const basic::Info::ZoneRule kZoneRulesLebanon[] ACE_TIME_PROGMEM = {
    -
    3285  // Anchor: Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 -
    -
    3286  {
    -
    3287  -127 /*fromYearTiny (-32767)*/,
    -
    3288  -127 /*toYearTiny (-32767)*/,
    -
    3289  1 /*inMonth*/,
    -
    3290  0 /*onDayOfWeek*/,
    -
    3291  1 /*onDayOfMonth*/,
    -
    3292  0 /*atTimeCode*/,
    -
    3293  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3294  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3295  0 /*letterIndex ("")*/,
    -
    3296  },
    -
    3297  // Rule Lebanon 1993 max - Mar lastSun 0:00 1:00 S
    -
    3298  {
    -
    3299  -107 /*fromYearTiny (1993)*/,
    -
    3300  126 /*toYearTiny (32766)*/,
    -
    3301  3 /*inMonth*/,
    -
    3302  7 /*onDayOfWeek*/,
    -
    3303  0 /*onDayOfMonth*/,
    -
    3304  0 /*atTimeCode*/,
    -
    3305  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3306  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3307  4 /*letterIndex ("S")*/,
    -
    3308  },
    -
    3309  // Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 -
    -
    3310  {
    -
    3311  -107 /*fromYearTiny (1993)*/,
    -
    3312  -102 /*toYearTiny (1998)*/,
    -
    3313  9 /*inMonth*/,
    -
    3314  7 /*onDayOfWeek*/,
    -
    3315  0 /*onDayOfMonth*/,
    -
    3316  0 /*atTimeCode*/,
    -
    3317  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3318  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3319  0 /*letterIndex ("")*/,
    -
    3320  },
    -
    3321  // Rule Lebanon 1999 max - Oct lastSun 0:00 0 -
    -
    3322  {
    -
    3323  -101 /*fromYearTiny (1999)*/,
    -
    3324  126 /*toYearTiny (32766)*/,
    -
    3325  10 /*inMonth*/,
    -
    3326  7 /*onDayOfWeek*/,
    -
    3327  0 /*onDayOfMonth*/,
    -
    3328  0 /*atTimeCode*/,
    -
    3329  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3330  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3331  0 /*letterIndex ("")*/,
    -
    3332  },
    -
    3333 
    -
    3334 };
    -
    3335 
    -
    3336 const basic::Info::ZonePolicy kZonePolicyLebanon ACE_TIME_PROGMEM = {
    -
    3337  kZoneRulesLebanon /*rules*/,
    -
    3338  4 /*numRules*/,
    -
    3339 };
    -
    3340 
    -
    3341 //---------------------------------------------------------------------------
    -
    3342 // Policy name: Macau
    -
    3343 // Rules: 1
    -
    3344 //---------------------------------------------------------------------------
    -
    3345 
    -
    3346 static const basic::Info::ZoneRule kZoneRulesMacau[] ACE_TIME_PROGMEM = {
    -
    3347  // Anchor: Rule Macau 1979 only - Oct Sun>=16 03:30 0 S
    -
    3348  {
    -
    3349  -127 /*fromYearTiny (-32767)*/,
    -
    3350  -127 /*toYearTiny (-32767)*/,
    -
    3351  1 /*inMonth*/,
    -
    3352  0 /*onDayOfWeek*/,
    -
    3353  1 /*onDayOfMonth*/,
    -
    3354  0 /*atTimeCode*/,
    -
    3355  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3356  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3357  4 /*letterIndex ("S")*/,
    -
    3358  },
    -
    3359 
    -
    3360 };
    -
    3361 
    -
    3362 const basic::Info::ZonePolicy kZonePolicyMacau ACE_TIME_PROGMEM = {
    -
    3363  kZoneRulesMacau /*rules*/,
    -
    3364  1 /*numRules*/,
    -
    3365 };
    -
    3366 
    -
    3367 //---------------------------------------------------------------------------
    -
    3368 // Policy name: Mauritius
    -
    3369 // Rules: 4
    -
    3370 //---------------------------------------------------------------------------
    -
    3371 
    -
    3372 static const basic::Info::ZoneRule kZoneRulesMauritius[] ACE_TIME_PROGMEM = {
    -
    3373  // Anchor: Rule Mauritius 1983 only - Mar 21 0:00 0 -
    -
    3374  {
    -
    3375  -127 /*fromYearTiny (-32767)*/,
    -
    3376  -127 /*toYearTiny (-32767)*/,
    -
    3377  1 /*inMonth*/,
    -
    3378  0 /*onDayOfWeek*/,
    -
    3379  1 /*onDayOfMonth*/,
    -
    3380  0 /*atTimeCode*/,
    -
    3381  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3382  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3383  0 /*letterIndex ("")*/,
    -
    3384  },
    -
    3385  // Rule Mauritius 1983 only - Mar 21 0:00 0 -
    -
    3386  {
    -
    3387  -117 /*fromYearTiny (1983)*/,
    -
    3388  -117 /*toYearTiny (1983)*/,
    -
    3389  3 /*inMonth*/,
    -
    3390  0 /*onDayOfWeek*/,
    -
    3391  21 /*onDayOfMonth*/,
    -
    3392  0 /*atTimeCode*/,
    -
    3393  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3394  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3395  0 /*letterIndex ("")*/,
    -
    3396  },
    -
    3397  // Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
    -
    3398  {
    -
    3399  -92 /*fromYearTiny (2008)*/,
    -
    3400  -92 /*toYearTiny (2008)*/,
    -
    3401  10 /*inMonth*/,
    -
    3402  7 /*onDayOfWeek*/,
    -
    3403  0 /*onDayOfMonth*/,
    -
    3404  8 /*atTimeCode*/,
    -
    3405  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3406  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3407  0 /*letterIndex ("")*/,
    -
    3408  },
    -
    3409  // Rule Mauritius 2009 only - Mar lastSun 2:00 0 -
    -
    3410  {
    -
    3411  -91 /*fromYearTiny (2009)*/,
    -
    3412  -91 /*toYearTiny (2009)*/,
    -
    3413  3 /*inMonth*/,
    -
    3414  7 /*onDayOfWeek*/,
    -
    3415  0 /*onDayOfMonth*/,
    -
    3416  8 /*atTimeCode*/,
    -
    3417  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3418  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3419  0 /*letterIndex ("")*/,
    -
    3420  },
    -
    3421 
    -
    3422 };
    -
    3423 
    -
    3424 const basic::Info::ZonePolicy kZonePolicyMauritius ACE_TIME_PROGMEM = {
    -
    3425  kZoneRulesMauritius /*rules*/,
    -
    3426  4 /*numRules*/,
    -
    3427 };
    -
    3428 
    -
    3429 //---------------------------------------------------------------------------
    -
    3430 // Policy name: Mexico
    -
    3431 // Rules: 8
    -
    3432 //---------------------------------------------------------------------------
    -
    3433 
    -
    3434 static const basic::Info::ZoneRule kZoneRulesMexico[] ACE_TIME_PROGMEM = {
    -
    3435  // Anchor: Rule Mexico 1950 only - Jul 30 0:00 0 S
    -
    3436  {
    -
    3437  -127 /*fromYearTiny (-32767)*/,
    -
    3438  -127 /*toYearTiny (-32767)*/,
    -
    3439  1 /*inMonth*/,
    -
    3440  0 /*onDayOfWeek*/,
    -
    3441  1 /*onDayOfMonth*/,
    -
    3442  0 /*atTimeCode*/,
    -
    3443  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3444  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3445  4 /*letterIndex ("S")*/,
    -
    3446  },
    -
    3447  // Rule Mexico 1950 only - Jul 30 0:00 0 S
    -
    3448  {
    -
    3449  -127 /*fromYearTiny (1950)*/,
    -
    3450  -127 /*toYearTiny (1950)*/,
    -
    3451  7 /*inMonth*/,
    -
    3452  0 /*onDayOfWeek*/,
    -
    3453  30 /*onDayOfMonth*/,
    -
    3454  0 /*atTimeCode*/,
    -
    3455  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3456  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3457  4 /*letterIndex ("S")*/,
    -
    3458  },
    -
    3459  // Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D
    -
    3460  {
    -
    3461  -104 /*fromYearTiny (1996)*/,
    -
    3462  -100 /*toYearTiny (2000)*/,
    -
    3463  4 /*inMonth*/,
    -
    3464  7 /*onDayOfWeek*/,
    -
    3465  1 /*onDayOfMonth*/,
    -
    3466  8 /*atTimeCode*/,
    -
    3467  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3468  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3469  3 /*letterIndex ("D")*/,
    -
    3470  },
    -
    3471  // Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S
    -
    3472  {
    -
    3473  -104 /*fromYearTiny (1996)*/,
    -
    3474  -100 /*toYearTiny (2000)*/,
    -
    3475  10 /*inMonth*/,
    -
    3476  7 /*onDayOfWeek*/,
    -
    3477  0 /*onDayOfMonth*/,
    -
    3478  8 /*atTimeCode*/,
    -
    3479  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3480  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3481  4 /*letterIndex ("S")*/,
    -
    3482  },
    -
    3483  // Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D
    -
    3484  {
    -
    3485  -99 /*fromYearTiny (2001)*/,
    -
    3486  -99 /*toYearTiny (2001)*/,
    -
    3487  5 /*inMonth*/,
    -
    3488  7 /*onDayOfWeek*/,
    -
    3489  1 /*onDayOfMonth*/,
    -
    3490  8 /*atTimeCode*/,
    -
    3491  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3492  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3493  3 /*letterIndex ("D")*/,
    -
    3494  },
    -
    3495  // Rule Mexico 2001 only - Sep lastSun 2:00 0 S
    -
    3496  {
    -
    3497  -99 /*fromYearTiny (2001)*/,
    -
    3498  -99 /*toYearTiny (2001)*/,
    -
    3499  9 /*inMonth*/,
    -
    3500  7 /*onDayOfWeek*/,
    -
    3501  0 /*onDayOfMonth*/,
    -
    3502  8 /*atTimeCode*/,
    -
    3503  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3504  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3505  4 /*letterIndex ("S")*/,
    -
    3506  },
    -
    3507  // Rule Mexico 2002 2022 - Apr Sun>=1 2:00 1:00 D
    -
    3508  {
    -
    3509  -98 /*fromYearTiny (2002)*/,
    -
    3510  -78 /*toYearTiny (2022)*/,
    -
    3511  4 /*inMonth*/,
    -
    3512  7 /*onDayOfWeek*/,
    -
    3513  1 /*onDayOfMonth*/,
    -
    3514  8 /*atTimeCode*/,
    -
    3515  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3516  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3517  3 /*letterIndex ("D")*/,
    -
    3518  },
    -
    3519  // Rule Mexico 2002 2022 - Oct lastSun 2:00 0 S
    -
    3520  {
    -
    3521  -98 /*fromYearTiny (2002)*/,
    -
    3522  -78 /*toYearTiny (2022)*/,
    -
    3523  10 /*inMonth*/,
    -
    3524  7 /*onDayOfWeek*/,
    -
    3525  0 /*onDayOfMonth*/,
    -
    3526  8 /*atTimeCode*/,
    -
    3527  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3528  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3529  4 /*letterIndex ("S")*/,
    -
    3530  },
    -
    3531 
    -
    3532 };
    -
    3533 
    -
    3534 const basic::Info::ZonePolicy kZonePolicyMexico ACE_TIME_PROGMEM = {
    -
    3535  kZoneRulesMexico /*rules*/,
    -
    3536  8 /*numRules*/,
    -
    3537 };
    -
    3538 
    -
    3539 //---------------------------------------------------------------------------
    -
    3540 // Policy name: Moldova
    -
    3541 // Rules: 3
    -
    3542 //---------------------------------------------------------------------------
    -
    3543 
    -
    3544 static const basic::Info::ZoneRule kZoneRulesMoldova[] ACE_TIME_PROGMEM = {
    -
    3545  // Anchor: Rule Moldova 1997 max - Oct lastSun 3:00 0 -
    -
    3546  {
    -
    3547  -127 /*fromYearTiny (-32767)*/,
    -
    3548  -127 /*toYearTiny (-32767)*/,
    -
    3549  1 /*inMonth*/,
    -
    3550  0 /*onDayOfWeek*/,
    -
    3551  1 /*onDayOfMonth*/,
    -
    3552  0 /*atTimeCode*/,
    -
    3553  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3554  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3555  0 /*letterIndex ("")*/,
    -
    3556  },
    -
    3557  // Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S
    -
    3558  {
    -
    3559  -103 /*fromYearTiny (1997)*/,
    -
    3560  126 /*toYearTiny (32766)*/,
    -
    3561  3 /*inMonth*/,
    -
    3562  7 /*onDayOfWeek*/,
    -
    3563  0 /*onDayOfMonth*/,
    -
    3564  8 /*atTimeCode*/,
    -
    3565  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3566  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3567  4 /*letterIndex ("S")*/,
    -
    3568  },
    -
    3569  // Rule Moldova 1997 max - Oct lastSun 3:00 0 -
    -
    3570  {
    -
    3571  -103 /*fromYearTiny (1997)*/,
    -
    3572  126 /*toYearTiny (32766)*/,
    -
    3573  10 /*inMonth*/,
    -
    3574  7 /*onDayOfWeek*/,
    -
    3575  0 /*onDayOfMonth*/,
    -
    3576  12 /*atTimeCode*/,
    -
    3577  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3578  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3579  0 /*letterIndex ("")*/,
    -
    3580  },
    -
    3581 
    -
    3582 };
    -
    3583 
    -
    3584 const basic::Info::ZonePolicy kZonePolicyMoldova ACE_TIME_PROGMEM = {
    -
    3585  kZoneRulesMoldova /*rules*/,
    -
    3586  3 /*numRules*/,
    -
    3587 };
    -
    3588 
    -
    3589 //---------------------------------------------------------------------------
    -
    3590 // Policy name: Moncton
    -
    3591 // Rules: 4
    -
    3592 //---------------------------------------------------------------------------
    -
    3593 
    -
    3594 static const basic::Info::ZoneRule kZoneRulesMoncton[] ACE_TIME_PROGMEM = {
    -
    3595  // Anchor: Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S
    -
    3596  {
    -
    3597  -127 /*fromYearTiny (-32767)*/,
    -
    3598  -127 /*toYearTiny (-32767)*/,
    -
    3599  1 /*inMonth*/,
    -
    3600  0 /*onDayOfWeek*/,
    -
    3601  1 /*onDayOfMonth*/,
    -
    3602  0 /*atTimeCode*/,
    -
    3603  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3604  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3605  4 /*letterIndex ("S")*/,
    -
    3606  },
    -
    3607  // Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S
    -
    3608  {
    -
    3609  -127 /*fromYearTiny (1957)*/,
    -
    3610  -127 /*toYearTiny (1972)*/,
    -
    3611  10 /*inMonth*/,
    -
    3612  7 /*onDayOfWeek*/,
    -
    3613  0 /*onDayOfMonth*/,
    -
    3614  8 /*atTimeCode*/,
    -
    3615  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3616  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3617  4 /*letterIndex ("S")*/,
    -
    3618  },
    -
    3619  // Rule Moncton 1993 2006 - Apr Sun>=1 0:01 1:00 D
    -
    3620  {
    -
    3621  -107 /*fromYearTiny (1993)*/,
    -
    3622  -94 /*toYearTiny (2006)*/,
    -
    3623  4 /*inMonth*/,
    -
    3624  7 /*onDayOfWeek*/,
    -
    3625  1 /*onDayOfMonth*/,
    -
    3626  0 /*atTimeCode*/,
    -
    3627  1 /*atTimeModifier (kSuffixW + minute=1)*/,
    -
    3628  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3629  3 /*letterIndex ("D")*/,
    -
    3630  },
    -
    3631  // Rule Moncton 1993 2006 - Oct lastSun 0:01 0 S
    -
    3632  {
    -
    3633  -107 /*fromYearTiny (1993)*/,
    -
    3634  -94 /*toYearTiny (2006)*/,
    -
    3635  10 /*inMonth*/,
    -
    3636  7 /*onDayOfWeek*/,
    -
    3637  0 /*onDayOfMonth*/,
    -
    3638  0 /*atTimeCode*/,
    -
    3639  1 /*atTimeModifier (kSuffixW + minute=1)*/,
    -
    3640  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3641  4 /*letterIndex ("S")*/,
    -
    3642  },
    -
    3643 
    -
    3644 };
    -
    3645 
    -
    3646 const basic::Info::ZonePolicy kZonePolicyMoncton ACE_TIME_PROGMEM = {
    -
    3647  kZoneRulesMoncton /*rules*/,
    -
    3648  4 /*numRules*/,
    -
    3649 };
    -
    3650 
    -
    3651 //---------------------------------------------------------------------------
    -
    3652 // Policy name: Mongol
    -
    3653 // Rules: 7
    -
    3654 //---------------------------------------------------------------------------
    -
    3655 
    -
    3656 static const basic::Info::ZoneRule kZoneRulesMongol[] ACE_TIME_PROGMEM = {
    -
    3657  // Anchor: Rule Mongol 1984 1998 - Sep lastSun 0:00 0 -
    -
    3658  {
    -
    3659  -127 /*fromYearTiny (-32767)*/,
    -
    3660  -127 /*toYearTiny (-32767)*/,
    -
    3661  1 /*inMonth*/,
    -
    3662  0 /*onDayOfWeek*/,
    -
    3663  1 /*onDayOfMonth*/,
    -
    3664  0 /*atTimeCode*/,
    -
    3665  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3666  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3667  0 /*letterIndex ("")*/,
    -
    3668  },
    -
    3669  // Rule Mongol 1984 1998 - Sep lastSun 0:00 0 -
    -
    3670  {
    -
    3671  -116 /*fromYearTiny (1984)*/,
    -
    3672  -102 /*toYearTiny (1998)*/,
    -
    3673  9 /*inMonth*/,
    -
    3674  7 /*onDayOfWeek*/,
    -
    3675  0 /*onDayOfMonth*/,
    -
    3676  0 /*atTimeCode*/,
    -
    3677  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3678  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3679  0 /*letterIndex ("")*/,
    -
    3680  },
    -
    3681  // Rule Mongol 2001 only - Apr lastSat 2:00 1:00 -
    -
    3682  {
    -
    3683  -99 /*fromYearTiny (2001)*/,
    -
    3684  -99 /*toYearTiny (2001)*/,
    -
    3685  4 /*inMonth*/,
    -
    3686  6 /*onDayOfWeek*/,
    -
    3687  0 /*onDayOfMonth*/,
    -
    3688  8 /*atTimeCode*/,
    -
    3689  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3690  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3691  0 /*letterIndex ("")*/,
    -
    3692  },
    -
    3693  // Rule Mongol 2001 2006 - Sep lastSat 2:00 0 -
    -
    3694  {
    -
    3695  -99 /*fromYearTiny (2001)*/,
    -
    3696  -94 /*toYearTiny (2006)*/,
    -
    3697  9 /*inMonth*/,
    -
    3698  6 /*onDayOfWeek*/,
    -
    3699  0 /*onDayOfMonth*/,
    -
    3700  8 /*atTimeCode*/,
    -
    3701  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3702  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3703  0 /*letterIndex ("")*/,
    -
    3704  },
    -
    3705  // Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 -
    -
    3706  {
    -
    3707  -98 /*fromYearTiny (2002)*/,
    -
    3708  -94 /*toYearTiny (2006)*/,
    -
    3709  3 /*inMonth*/,
    -
    3710  6 /*onDayOfWeek*/,
    -
    3711  0 /*onDayOfMonth*/,
    -
    3712  8 /*atTimeCode*/,
    -
    3713  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3714  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3715  0 /*letterIndex ("")*/,
    -
    3716  },
    -
    3717  // Rule Mongol 2015 2016 - Mar lastSat 2:00 1:00 -
    -
    3718  {
    -
    3719  -85 /*fromYearTiny (2015)*/,
    -
    3720  -84 /*toYearTiny (2016)*/,
    -
    3721  3 /*inMonth*/,
    -
    3722  6 /*onDayOfWeek*/,
    -
    3723  0 /*onDayOfMonth*/,
    -
    3724  8 /*atTimeCode*/,
    -
    3725  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3726  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3727  0 /*letterIndex ("")*/,
    -
    3728  },
    -
    3729  // Rule Mongol 2015 2016 - Sep lastSat 0:00 0 -
    -
    3730  {
    -
    3731  -85 /*fromYearTiny (2015)*/,
    -
    3732  -84 /*toYearTiny (2016)*/,
    -
    3733  9 /*inMonth*/,
    -
    3734  6 /*onDayOfWeek*/,
    -
    3735  0 /*onDayOfMonth*/,
    -
    3736  0 /*atTimeCode*/,
    -
    3737  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3738  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3739  0 /*letterIndex ("")*/,
    -
    3740  },
    -
    3741 
    -
    3742 };
    -
    3743 
    -
    3744 const basic::Info::ZonePolicy kZonePolicyMongol ACE_TIME_PROGMEM = {
    -
    3745  kZoneRulesMongol /*rules*/,
    -
    3746  7 /*numRules*/,
    -
    3747 };
    -
    3748 
    -
    3749 //---------------------------------------------------------------------------
    -
    3750 // Policy name: NC
    -
    3751 // Rules: 1
    -
    3752 //---------------------------------------------------------------------------
    -
    3753 
    -
    3754 static const basic::Info::ZoneRule kZoneRulesNC[] ACE_TIME_PROGMEM = {
    -
    3755  // Anchor: Rule NC 1997 only - Mar 2 2:00s 0 -
    -
    3756  {
    -
    3757  -127 /*fromYearTiny (-32767)*/,
    -
    3758  -127 /*toYearTiny (-32767)*/,
    -
    3759  1 /*inMonth*/,
    -
    3760  0 /*onDayOfWeek*/,
    -
    3761  1 /*onDayOfMonth*/,
    -
    3762  0 /*atTimeCode*/,
    -
    3763  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3764  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3765  0 /*letterIndex ("")*/,
    -
    3766  },
    -
    3767 
    -
    3768 };
    -
    3769 
    -
    3770 const basic::Info::ZonePolicy kZonePolicyNC ACE_TIME_PROGMEM = {
    -
    3771  kZoneRulesNC /*rules*/,
    -
    3772  1 /*numRules*/,
    -
    3773 };
    -
    3774 
    -
    3775 //---------------------------------------------------------------------------
    -
    3776 // Policy name: NZ
    -
    3777 // Rules: 6
    -
    3778 //---------------------------------------------------------------------------
    -
    3779 
    -
    3780 static const basic::Info::ZoneRule kZoneRulesNZ[] ACE_TIME_PROGMEM = {
    -
    3781  // Anchor: Rule NZ 1990 2007 - Mar Sun>=15 2:00s 0 S
    -
    3782  {
    -
    3783  -127 /*fromYearTiny (-32767)*/,
    -
    3784  -127 /*toYearTiny (-32767)*/,
    -
    3785  1 /*inMonth*/,
    -
    3786  0 /*onDayOfWeek*/,
    -
    3787  1 /*onDayOfMonth*/,
    -
    3788  0 /*atTimeCode*/,
    -
    3789  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3790  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3791  4 /*letterIndex ("S")*/,
    -
    3792  },
    -
    3793  // Rule NZ 1989 only - Oct Sun>=8 2:00s 1:00 D
    -
    3794  {
    -
    3795  -111 /*fromYearTiny (1989)*/,
    -
    3796  -111 /*toYearTiny (1989)*/,
    -
    3797  10 /*inMonth*/,
    -
    3798  7 /*onDayOfWeek*/,
    -
    3799  8 /*onDayOfMonth*/,
    -
    3800  8 /*atTimeCode*/,
    -
    3801  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3802  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3803  3 /*letterIndex ("D")*/,
    -
    3804  },
    -
    3805  // Rule NZ 1990 2006 - Oct Sun>=1 2:00s 1:00 D
    -
    3806  {
    -
    3807  -110 /*fromYearTiny (1990)*/,
    -
    3808  -94 /*toYearTiny (2006)*/,
    -
    3809  10 /*inMonth*/,
    -
    3810  7 /*onDayOfWeek*/,
    -
    3811  1 /*onDayOfMonth*/,
    -
    3812  8 /*atTimeCode*/,
    -
    3813  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3814  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3815  3 /*letterIndex ("D")*/,
    -
    3816  },
    -
    3817  // Rule NZ 1990 2007 - Mar Sun>=15 2:00s 0 S
    -
    3818  {
    -
    3819  -110 /*fromYearTiny (1990)*/,
    -
    3820  -93 /*toYearTiny (2007)*/,
    -
    3821  3 /*inMonth*/,
    -
    3822  7 /*onDayOfWeek*/,
    -
    3823  15 /*onDayOfMonth*/,
    -
    3824  8 /*atTimeCode*/,
    -
    3825  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3826  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3827  4 /*letterIndex ("S")*/,
    -
    3828  },
    -
    3829  // Rule NZ 2007 max - Sep lastSun 2:00s 1:00 D
    -
    3830  {
    -
    3831  -93 /*fromYearTiny (2007)*/,
    -
    3832  126 /*toYearTiny (32766)*/,
    -
    3833  9 /*inMonth*/,
    -
    3834  7 /*onDayOfWeek*/,
    -
    3835  0 /*onDayOfMonth*/,
    -
    3836  8 /*atTimeCode*/,
    -
    3837  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3838  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3839  3 /*letterIndex ("D")*/,
    -
    3840  },
    -
    3841  // Rule NZ 2008 max - Apr Sun>=1 2:00s 0 S
    -
    3842  {
    -
    3843  -92 /*fromYearTiny (2008)*/,
    -
    3844  126 /*toYearTiny (32766)*/,
    -
    3845  4 /*inMonth*/,
    -
    3846  7 /*onDayOfWeek*/,
    -
    3847  1 /*onDayOfMonth*/,
    -
    3848  8 /*atTimeCode*/,
    -
    3849  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3850  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3851  4 /*letterIndex ("S")*/,
    -
    3852  },
    -
    3853 
    -
    3854 };
    -
    3855 
    -
    3856 const basic::Info::ZonePolicy kZonePolicyNZ ACE_TIME_PROGMEM = {
    -
    3857  kZoneRulesNZ /*rules*/,
    -
    3858  6 /*numRules*/,
    -
    3859 };
    -
    3860 
    -
    3861 //---------------------------------------------------------------------------
    -
    3862 // Policy name: Namibia
    -
    3863 // Rules: 4
    -
    3864 //---------------------------------------------------------------------------
    -
    3865 
    -
    3866 static const basic::Info::ZoneRule kZoneRulesNamibia[] ACE_TIME_PROGMEM = {
    -
    3867  // Anchor: Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
    -
    3868  {
    -
    3869  -127 /*fromYearTiny (-32767)*/,
    -
    3870  -127 /*toYearTiny (-32767)*/,
    -
    3871  1 /*inMonth*/,
    -
    3872  0 /*onDayOfWeek*/,
    -
    3873  1 /*onDayOfMonth*/,
    -
    3874  0 /*atTimeCode*/,
    -
    3875  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3876  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3877  1 /*letterIndex ("CAT")*/,
    -
    3878  },
    -
    3879  // Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
    -
    3880  {
    -
    3881  -106 /*fromYearTiny (1994)*/,
    -
    3882  -106 /*toYearTiny (1994)*/,
    -
    3883  3 /*inMonth*/,
    -
    3884  0 /*onDayOfWeek*/,
    -
    3885  21 /*onDayOfMonth*/,
    -
    3886  0 /*atTimeCode*/,
    -
    3887  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3888  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    3889  5 /*letterIndex ("WAT")*/,
    -
    3890  },
    -
    3891  // Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
    -
    3892  {
    -
    3893  -106 /*fromYearTiny (1994)*/,
    -
    3894  -83 /*toYearTiny (2017)*/,
    -
    3895  9 /*inMonth*/,
    -
    3896  7 /*onDayOfWeek*/,
    -
    3897  1 /*onDayOfMonth*/,
    -
    3898  8 /*atTimeCode*/,
    -
    3899  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3900  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3901  1 /*letterIndex ("CAT")*/,
    -
    3902  },
    -
    3903  // Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT
    -
    3904  {
    -
    3905  -105 /*fromYearTiny (1995)*/,
    -
    3906  -83 /*toYearTiny (2017)*/,
    -
    3907  4 /*inMonth*/,
    -
    3908  7 /*onDayOfWeek*/,
    -
    3909  1 /*onDayOfMonth*/,
    -
    3910  8 /*atTimeCode*/,
    -
    3911  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3912  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    3913  5 /*letterIndex ("WAT")*/,
    -
    3914  },
    -
    3915 
    -
    3916 };
    -
    3917 
    -
    3918 const basic::Info::ZonePolicy kZonePolicyNamibia ACE_TIME_PROGMEM = {
    -
    3919  kZoneRulesNamibia /*rules*/,
    -
    3920  4 /*numRules*/,
    -
    3921 };
    -
    3922 
    -
    3923 //---------------------------------------------------------------------------
    -
    3924 // Policy name: Nic
    -
    3925 // Rules: 6
    -
    3926 //---------------------------------------------------------------------------
    -
    3927 
    -
    3928 static const basic::Info::ZoneRule kZoneRulesNic[] ACE_TIME_PROGMEM = {
    -
    3929  // Anchor: Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
    -
    3930  {
    -
    3931  -127 /*fromYearTiny (-32767)*/,
    -
    3932  -127 /*toYearTiny (-32767)*/,
    -
    3933  1 /*inMonth*/,
    -
    3934  0 /*onDayOfWeek*/,
    -
    3935  1 /*onDayOfMonth*/,
    -
    3936  0 /*atTimeCode*/,
    -
    3937  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3938  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3939  4 /*letterIndex ("S")*/,
    -
    3940  },
    -
    3941  // Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
    -
    3942  {
    -
    3943  -121 /*fromYearTiny (1979)*/,
    -
    3944  -120 /*toYearTiny (1980)*/,
    -
    3945  6 /*inMonth*/,
    -
    3946  1 /*onDayOfWeek*/,
    -
    3947  23 /*onDayOfMonth*/,
    -
    3948  0 /*atTimeCode*/,
    -
    3949  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3950  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3951  4 /*letterIndex ("S")*/,
    -
    3952  },
    -
    3953  // Rule Nic 2005 only - Apr 10 0:00 1:00 D
    -
    3954  {
    -
    3955  -95 /*fromYearTiny (2005)*/,
    -
    3956  -95 /*toYearTiny (2005)*/,
    -
    3957  4 /*inMonth*/,
    -
    3958  0 /*onDayOfWeek*/,
    -
    3959  10 /*onDayOfMonth*/,
    -
    3960  0 /*atTimeCode*/,
    -
    3961  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3962  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3963  3 /*letterIndex ("D")*/,
    -
    3964  },
    -
    3965  // Rule Nic 2005 only - Oct Sun>=1 0:00 0 S
    -
    3966  {
    -
    3967  -95 /*fromYearTiny (2005)*/,
    -
    3968  -95 /*toYearTiny (2005)*/,
    -
    3969  10 /*inMonth*/,
    -
    3970  7 /*onDayOfWeek*/,
    -
    3971  1 /*onDayOfMonth*/,
    -
    3972  0 /*atTimeCode*/,
    -
    3973  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3974  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3975  4 /*letterIndex ("S")*/,
    -
    3976  },
    -
    3977  // Rule Nic 2006 only - Apr 30 2:00 1:00 D
    -
    3978  {
    -
    3979  -94 /*fromYearTiny (2006)*/,
    -
    3980  -94 /*toYearTiny (2006)*/,
    -
    3981  4 /*inMonth*/,
    -
    3982  0 /*onDayOfWeek*/,
    -
    3983  30 /*onDayOfMonth*/,
    -
    3984  8 /*atTimeCode*/,
    -
    3985  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3986  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3987  3 /*letterIndex ("D")*/,
    -
    3988  },
    -
    3989  // Rule Nic 2006 only - Oct Sun>=1 1:00 0 S
    -
    3990  {
    -
    3991  -94 /*fromYearTiny (2006)*/,
    -
    3992  -94 /*toYearTiny (2006)*/,
    -
    3993  10 /*inMonth*/,
    -
    3994  7 /*onDayOfWeek*/,
    -
    3995  1 /*onDayOfMonth*/,
    -
    3996  4 /*atTimeCode*/,
    -
    3997  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3998  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3999  4 /*letterIndex ("S")*/,
    -
    4000  },
    -
    4001 
    -
    4002 };
    -
    4003 
    -
    4004 const basic::Info::ZonePolicy kZonePolicyNic ACE_TIME_PROGMEM = {
    -
    4005  kZoneRulesNic /*rules*/,
    -
    4006  6 /*numRules*/,
    -
    4007 };
    -
    4008 
    -
    4009 //---------------------------------------------------------------------------
    -
    4010 // Policy name: PRC
    -
    4011 // Rules: 1
    -
    4012 //---------------------------------------------------------------------------
    -
    4013 
    -
    4014 static const basic::Info::ZoneRule kZoneRulesPRC[] ACE_TIME_PROGMEM = {
    -
    4015  // Anchor: Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S
    -
    4016  {
    -
    4017  -127 /*fromYearTiny (-32767)*/,
    -
    4018  -127 /*toYearTiny (-32767)*/,
    -
    4019  1 /*inMonth*/,
    -
    4020  0 /*onDayOfWeek*/,
    -
    4021  1 /*onDayOfMonth*/,
    -
    4022  0 /*atTimeCode*/,
    -
    4023  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4024  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4025  4 /*letterIndex ("S")*/,
    -
    4026  },
    -
    4027 
    -
    4028 };
    -
    4029 
    -
    4030 const basic::Info::ZonePolicy kZonePolicyPRC ACE_TIME_PROGMEM = {
    -
    4031  kZoneRulesPRC /*rules*/,
    -
    4032  1 /*numRules*/,
    -
    4033 };
    -
    4034 
    -
    4035 //---------------------------------------------------------------------------
    -
    4036 // Policy name: Pakistan
    -
    4037 // Rules: 6
    -
    4038 //---------------------------------------------------------------------------
    -
    4039 
    -
    4040 static const basic::Info::ZoneRule kZoneRulesPakistan[] ACE_TIME_PROGMEM = {
    -
    4041  // Anchor: Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
    -
    4042  {
    -
    4043  -127 /*fromYearTiny (-32767)*/,
    -
    4044  -127 /*toYearTiny (-32767)*/,
    -
    4045  1 /*inMonth*/,
    -
    4046  0 /*onDayOfWeek*/,
    -
    4047  1 /*onDayOfMonth*/,
    -
    4048  0 /*atTimeCode*/,
    -
    4049  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4050  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4051  0 /*letterIndex ("")*/,
    -
    4052  },
    -
    4053  // Rule Pakistan 2002 only - Apr Sun>=2 0:00 1:00 S
    -
    4054  {
    -
    4055  -98 /*fromYearTiny (2002)*/,
    -
    4056  -98 /*toYearTiny (2002)*/,
    -
    4057  4 /*inMonth*/,
    -
    4058  7 /*onDayOfWeek*/,
    -
    4059  2 /*onDayOfMonth*/,
    -
    4060  0 /*atTimeCode*/,
    -
    4061  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4062  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4063  4 /*letterIndex ("S")*/,
    -
    4064  },
    -
    4065  // Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
    -
    4066  {
    -
    4067  -98 /*fromYearTiny (2002)*/,
    -
    4068  -98 /*toYearTiny (2002)*/,
    -
    4069  10 /*inMonth*/,
    -
    4070  7 /*onDayOfWeek*/,
    -
    4071  2 /*onDayOfMonth*/,
    -
    4072  0 /*atTimeCode*/,
    -
    4073  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4074  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4075  0 /*letterIndex ("")*/,
    -
    4076  },
    -
    4077  // Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
    -
    4078  {
    -
    4079  -92 /*fromYearTiny (2008)*/,
    -
    4080  -92 /*toYearTiny (2008)*/,
    -
    4081  6 /*inMonth*/,
    -
    4082  0 /*onDayOfWeek*/,
    -
    4083  1 /*onDayOfMonth*/,
    -
    4084  0 /*atTimeCode*/,
    -
    4085  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4086  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4087  4 /*letterIndex ("S")*/,
    -
    4088  },
    -
    4089  // Rule Pakistan 2008 2009 - Nov 1 0:00 0 -
    -
    4090  {
    -
    4091  -92 /*fromYearTiny (2008)*/,
    -
    4092  -91 /*toYearTiny (2009)*/,
    -
    4093  11 /*inMonth*/,
    -
    4094  0 /*onDayOfWeek*/,
    -
    4095  1 /*onDayOfMonth*/,
    -
    4096  0 /*atTimeCode*/,
    -
    4097  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4098  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4099  0 /*letterIndex ("")*/,
    -
    4100  },
    -
    4101  // Rule Pakistan 2009 only - Apr 15 0:00 1:00 S
    -
    4102  {
    -
    4103  -91 /*fromYearTiny (2009)*/,
    -
    4104  -91 /*toYearTiny (2009)*/,
    -
    4105  4 /*inMonth*/,
    -
    4106  0 /*onDayOfWeek*/,
    -
    4107  15 /*onDayOfMonth*/,
    -
    4108  0 /*atTimeCode*/,
    -
    4109  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4110  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4111  4 /*letterIndex ("S")*/,
    -
    4112  },
    -
    4113 
    -
    4114 };
    -
    4115 
    -
    4116 const basic::Info::ZonePolicy kZonePolicyPakistan ACE_TIME_PROGMEM = {
    -
    4117  kZoneRulesPakistan /*rules*/,
    -
    4118  6 /*numRules*/,
    -
    4119 };
    -
    4120 
    -
    4121 //---------------------------------------------------------------------------
    -
    4122 // Policy name: Peru
    -
    4123 // Rules: 1
    -
    4124 //---------------------------------------------------------------------------
    -
    4125 
    -
    4126 static const basic::Info::ZoneRule kZoneRulesPeru[] ACE_TIME_PROGMEM = {
    -
    4127  // Anchor: Rule Peru 1994 only - Apr 1 0:00 0 -
    -
    4128  {
    -
    4129  -127 /*fromYearTiny (-32767)*/,
    -
    4130  -127 /*toYearTiny (-32767)*/,
    -
    4131  1 /*inMonth*/,
    -
    4132  0 /*onDayOfWeek*/,
    -
    4133  1 /*onDayOfMonth*/,
    -
    4134  0 /*atTimeCode*/,
    -
    4135  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4136  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4137  0 /*letterIndex ("")*/,
    -
    4138  },
    -
    4139 
    -
    4140 };
    -
    4141 
    -
    4142 const basic::Info::ZonePolicy kZonePolicyPeru ACE_TIME_PROGMEM = {
    -
    4143  kZoneRulesPeru /*rules*/,
    -
    4144  1 /*numRules*/,
    -
    4145 };
    -
    4146 
    -
    4147 //---------------------------------------------------------------------------
    -
    4148 // Policy name: Phil
    -
    4149 // Rules: 1
    -
    4150 //---------------------------------------------------------------------------
    -
    4151 
    -
    4152 static const basic::Info::ZoneRule kZoneRulesPhil[] ACE_TIME_PROGMEM = {
    -
    4153  // Anchor: Rule Phil 1990 only - Jul 28 24:00 0 S
    -
    4154  {
    -
    4155  -127 /*fromYearTiny (-32767)*/,
    -
    4156  -127 /*toYearTiny (-32767)*/,
    -
    4157  1 /*inMonth*/,
    -
    4158  0 /*onDayOfWeek*/,
    -
    4159  1 /*onDayOfMonth*/,
    -
    4160  0 /*atTimeCode*/,
    -
    4161  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4162  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4163  4 /*letterIndex ("S")*/,
    -
    4164  },
    -
    4165 
    -
    4166 };
    -
    4167 
    -
    4168 const basic::Info::ZonePolicy kZonePolicyPhil ACE_TIME_PROGMEM = {
    -
    4169  kZoneRulesPhil /*rules*/,
    -
    4170  1 /*numRules*/,
    -
    4171 };
    -
    4172 
    -
    4173 //---------------------------------------------------------------------------
    -
    4174 // Policy name: ROK
    -
    4175 // Rules: 1
    -
    4176 //---------------------------------------------------------------------------
    -
    4177 
    -
    4178 static const basic::Info::ZoneRule kZoneRulesROK[] ACE_TIME_PROGMEM = {
    -
    4179  // Anchor: Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S
    -
    4180  {
    -
    4181  -127 /*fromYearTiny (-32767)*/,
    -
    4182  -127 /*toYearTiny (-32767)*/,
    -
    4183  1 /*inMonth*/,
    -
    4184  0 /*onDayOfWeek*/,
    -
    4185  1 /*onDayOfMonth*/,
    -
    4186  0 /*atTimeCode*/,
    -
    4187  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4188  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4189  4 /*letterIndex ("S")*/,
    -
    4190  },
    -
    4191 
    -
    4192 };
    -
    4193 
    -
    4194 const basic::Info::ZonePolicy kZonePolicyROK ACE_TIME_PROGMEM = {
    -
    4195  kZoneRulesROK /*rules*/,
    -
    4196  1 /*numRules*/,
    -
    4197 };
    -
    4198 
    -
    4199 //---------------------------------------------------------------------------
    -
    4200 // Policy name: RussiaAsia
    -
    4201 // Rules: 4
    -
    4202 //---------------------------------------------------------------------------
    -
    4203 
    -
    4204 static const basic::Info::ZoneRule kZoneRulesRussiaAsia[] ACE_TIME_PROGMEM = {
    -
    4205  // Anchor: Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 -
    -
    4206  {
    -
    4207  -127 /*fromYearTiny (-32767)*/,
    -
    4208  -127 /*toYearTiny (-32767)*/,
    -
    4209  1 /*inMonth*/,
    -
    4210  0 /*onDayOfWeek*/,
    -
    4211  1 /*onDayOfMonth*/,
    -
    4212  0 /*atTimeCode*/,
    -
    4213  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4214  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4215  0 /*letterIndex ("")*/,
    -
    4216  },
    -
    4217  // Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 -
    -
    4218  {
    -
    4219  -116 /*fromYearTiny (1984)*/,
    -
    4220  -105 /*toYearTiny (1995)*/,
    -
    4221  9 /*inMonth*/,
    -
    4222  7 /*onDayOfWeek*/,
    -
    4223  0 /*onDayOfMonth*/,
    -
    4224  8 /*atTimeCode*/,
    -
    4225  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4226  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4227  0 /*letterIndex ("")*/,
    -
    4228  },
    -
    4229  // Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 -
    -
    4230  {
    -
    4231  -115 /*fromYearTiny (1985)*/,
    -
    4232  -90 /*toYearTiny (2010)*/,
    -
    4233  3 /*inMonth*/,
    -
    4234  7 /*onDayOfWeek*/,
    -
    4235  0 /*onDayOfMonth*/,
    -
    4236  8 /*atTimeCode*/,
    -
    4237  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4238  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4239  0 /*letterIndex ("")*/,
    -
    4240  },
    -
    4241  // Rule RussiaAsia 1996 2010 - Oct lastSun 2:00s 0 -
    -
    4242  {
    -
    4243  -104 /*fromYearTiny (1996)*/,
    -
    4244  -90 /*toYearTiny (2010)*/,
    -
    4245  10 /*inMonth*/,
    -
    4246  7 /*onDayOfWeek*/,
    -
    4247  0 /*onDayOfMonth*/,
    -
    4248  8 /*atTimeCode*/,
    -
    4249  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4250  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4251  0 /*letterIndex ("")*/,
    -
    4252  },
    -
    4253 
    -
    4254 };
    -
    4255 
    -
    4256 const basic::Info::ZonePolicy kZonePolicyRussiaAsia ACE_TIME_PROGMEM = {
    -
    4257  kZoneRulesRussiaAsia /*rules*/,
    -
    4258  4 /*numRules*/,
    -
    4259 };
    -
    4260 
    -
    4261 //---------------------------------------------------------------------------
    -
    4262 // Policy name: SA
    -
    4263 // Rules: 1
    -
    4264 //---------------------------------------------------------------------------
    -
    4265 
    -
    4266 static const basic::Info::ZoneRule kZoneRulesSA[] ACE_TIME_PROGMEM = {
    -
    4267  // Anchor: Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
    -
    4268  {
    -
    4269  -127 /*fromYearTiny (-32767)*/,
    -
    4270  -127 /*toYearTiny (-32767)*/,
    -
    4271  1 /*inMonth*/,
    -
    4272  0 /*onDayOfWeek*/,
    -
    4273  1 /*onDayOfMonth*/,
    -
    4274  0 /*atTimeCode*/,
    -
    4275  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4276  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4277  0 /*letterIndex ("")*/,
    -
    4278  },
    -
    4279 
    -
    4280 };
    -
    4281 
    -
    4282 const basic::Info::ZonePolicy kZonePolicySA ACE_TIME_PROGMEM = {
    -
    4283  kZoneRulesSA /*rules*/,
    -
    4284  1 /*numRules*/,
    -
    4285 };
    -
    4286 
    -
    4287 //---------------------------------------------------------------------------
    -
    4288 // Policy name: Salv
    -
    4289 // Rules: 1
    -
    4290 //---------------------------------------------------------------------------
    -
    4291 
    -
    4292 static const basic::Info::ZoneRule kZoneRulesSalv[] ACE_TIME_PROGMEM = {
    -
    4293  // Anchor: Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
    -
    4294  {
    -
    4295  -127 /*fromYearTiny (-32767)*/,
    -
    4296  -127 /*toYearTiny (-32767)*/,
    -
    4297  1 /*inMonth*/,
    -
    4298  0 /*onDayOfWeek*/,
    -
    4299  1 /*onDayOfMonth*/,
    -
    4300  0 /*atTimeCode*/,
    -
    4301  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4302  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4303  4 /*letterIndex ("S")*/,
    -
    4304  },
    -
    4305 
    -
    4306 };
    -
    4307 
    -
    4308 const basic::Info::ZonePolicy kZonePolicySalv ACE_TIME_PROGMEM = {
    -
    4309  kZoneRulesSalv /*rules*/,
    -
    4310  1 /*numRules*/,
    -
    4311 };
    -
    4312 
    -
    4313 //---------------------------------------------------------------------------
    -
    4314 // Policy name: Taiwan
    -
    4315 // Rules: 1
    -
    4316 //---------------------------------------------------------------------------
    -
    4317 
    -
    4318 static const basic::Info::ZoneRule kZoneRulesTaiwan[] ACE_TIME_PROGMEM = {
    -
    4319  // Anchor: Rule Taiwan 1979 only - Oct 1 0:00 0 S
    -
    4320  {
    -
    4321  -127 /*fromYearTiny (-32767)*/,
    -
    4322  -127 /*toYearTiny (-32767)*/,
    -
    4323  1 /*inMonth*/,
    -
    4324  0 /*onDayOfWeek*/,
    -
    4325  1 /*onDayOfMonth*/,
    -
    4326  0 /*atTimeCode*/,
    -
    4327  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4328  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4329  4 /*letterIndex ("S")*/,
    -
    4330  },
    -
    4331 
    -
    4332 };
    -
    4333 
    -
    4334 const basic::Info::ZonePolicy kZonePolicyTaiwan ACE_TIME_PROGMEM = {
    -
    4335  kZoneRulesTaiwan /*rules*/,
    -
    4336  1 /*numRules*/,
    -
    4337 };
    -
    4338 
    -
    4339 //---------------------------------------------------------------------------
    -
    4340 // Policy name: Thule
    -
    4341 // Rules: 6
    -
    4342 //---------------------------------------------------------------------------
    -
    4343 
    -
    4344 static const basic::Info::ZoneRule kZoneRulesThule[] ACE_TIME_PROGMEM = {
    -
    4345  // Anchor: Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
    -
    4346  {
    -
    4347  -127 /*fromYearTiny (-32767)*/,
    -
    4348  -127 /*toYearTiny (-32767)*/,
    -
    4349  1 /*inMonth*/,
    -
    4350  0 /*onDayOfWeek*/,
    -
    4351  1 /*onDayOfMonth*/,
    -
    4352  0 /*atTimeCode*/,
    -
    4353  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4354  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4355  4 /*letterIndex ("S")*/,
    -
    4356  },
    -
    4357  // Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
    -
    4358  {
    -
    4359  -109 /*fromYearTiny (1991)*/,
    -
    4360  -108 /*toYearTiny (1992)*/,
    -
    4361  9 /*inMonth*/,
    -
    4362  7 /*onDayOfWeek*/,
    -
    4363  0 /*onDayOfMonth*/,
    -
    4364  8 /*atTimeCode*/,
    -
    4365  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4366  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4367  4 /*letterIndex ("S")*/,
    -
    4368  },
    -
    4369  // Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D
    -
    4370  {
    -
    4371  -107 /*fromYearTiny (1993)*/,
    -
    4372  -94 /*toYearTiny (2006)*/,
    -
    4373  4 /*inMonth*/,
    -
    4374  7 /*onDayOfWeek*/,
    -
    4375  1 /*onDayOfMonth*/,
    -
    4376  8 /*atTimeCode*/,
    -
    4377  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4378  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4379  3 /*letterIndex ("D")*/,
    -
    4380  },
    -
    4381  // Rule Thule 1993 2006 - Oct lastSun 2:00 0 S
    -
    4382  {
    -
    4383  -107 /*fromYearTiny (1993)*/,
    -
    4384  -94 /*toYearTiny (2006)*/,
    -
    4385  10 /*inMonth*/,
    -
    4386  7 /*onDayOfWeek*/,
    -
    4387  0 /*onDayOfMonth*/,
    -
    4388  8 /*atTimeCode*/,
    -
    4389  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4390  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4391  4 /*letterIndex ("S")*/,
    -
    4392  },
    -
    4393  // Rule Thule 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    4394  {
    -
    4395  -93 /*fromYearTiny (2007)*/,
    -
    4396  126 /*toYearTiny (32766)*/,
    -
    4397  3 /*inMonth*/,
    -
    4398  7 /*onDayOfWeek*/,
    -
    4399  8 /*onDayOfMonth*/,
    -
    4400  8 /*atTimeCode*/,
    -
    4401  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4402  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4403  3 /*letterIndex ("D")*/,
    -
    4404  },
    -
    4405  // Rule Thule 2007 max - Nov Sun>=1 2:00 0 S
    -
    4406  {
    -
    4407  -93 /*fromYearTiny (2007)*/,
    -
    4408  126 /*toYearTiny (32766)*/,
    -
    4409  11 /*inMonth*/,
    -
    4410  7 /*onDayOfWeek*/,
    -
    4411  1 /*onDayOfMonth*/,
    -
    4412  8 /*atTimeCode*/,
    -
    4413  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4414  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4415  4 /*letterIndex ("S")*/,
    -
    4416  },
    -
    4417 
    -
    4418 };
    -
    4419 
    -
    4420 const basic::Info::ZonePolicy kZonePolicyThule ACE_TIME_PROGMEM = {
    -
    4421  kZoneRulesThule /*rules*/,
    -
    4422  6 /*numRules*/,
    -
    4423 };
    -
    4424 
    -
    4425 //---------------------------------------------------------------------------
    -
    4426 // Policy name: Tonga
    -
    4427 // Rules: 7
    -
    4428 //---------------------------------------------------------------------------
    -
    4429 
    -
    4430 static const basic::Info::ZoneRule kZoneRulesTonga[] ACE_TIME_PROGMEM = {
    -
    4431  // Anchor: Rule Tonga 2000 only - Mar 19 2:00s 0 -
    -
    4432  {
    -
    4433  -127 /*fromYearTiny (-32767)*/,
    -
    4434  -127 /*toYearTiny (-32767)*/,
    -
    4435  1 /*inMonth*/,
    -
    4436  0 /*onDayOfWeek*/,
    -
    4437  1 /*onDayOfMonth*/,
    -
    4438  0 /*atTimeCode*/,
    -
    4439  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4440  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4441  0 /*letterIndex ("")*/,
    -
    4442  },
    -
    4443  // Rule Tonga 1999 only - Oct 7 2:00s 1:00 -
    -
    4444  {
    -
    4445  -101 /*fromYearTiny (1999)*/,
    -
    4446  -101 /*toYearTiny (1999)*/,
    -
    4447  10 /*inMonth*/,
    -
    4448  0 /*onDayOfWeek*/,
    -
    4449  7 /*onDayOfMonth*/,
    -
    4450  8 /*atTimeCode*/,
    -
    4451  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4452  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4453  0 /*letterIndex ("")*/,
    -
    4454  },
    -
    4455  // Rule Tonga 2000 only - Mar 19 2:00s 0 -
    -
    4456  {
    -
    4457  -100 /*fromYearTiny (2000)*/,
    -
    4458  -100 /*toYearTiny (2000)*/,
    -
    4459  3 /*inMonth*/,
    -
    4460  0 /*onDayOfWeek*/,
    -
    4461  19 /*onDayOfMonth*/,
    -
    4462  8 /*atTimeCode*/,
    -
    4463  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4464  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4465  0 /*letterIndex ("")*/,
    -
    4466  },
    -
    4467  // Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 -
    -
    4468  {
    -
    4469  -100 /*fromYearTiny (2000)*/,
    -
    4470  -99 /*toYearTiny (2001)*/,
    -
    4471  11 /*inMonth*/,
    -
    4472  7 /*onDayOfWeek*/,
    -
    4473  1 /*onDayOfMonth*/,
    -
    4474  8 /*atTimeCode*/,
    -
    4475  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4476  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4477  0 /*letterIndex ("")*/,
    -
    4478  },
    -
    4479  // Rule Tonga 2001 2002 - Jan lastSun 2:00 0 -
    -
    4480  {
    -
    4481  -99 /*fromYearTiny (2001)*/,
    -
    4482  -98 /*toYearTiny (2002)*/,
    -
    4483  1 /*inMonth*/,
    -
    4484  7 /*onDayOfWeek*/,
    -
    4485  0 /*onDayOfMonth*/,
    -
    4486  8 /*atTimeCode*/,
    -
    4487  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4488  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4489  0 /*letterIndex ("")*/,
    -
    4490  },
    -
    4491  // Rule Tonga 2016 only - Nov Sun>=1 2:00 1:00 -
    -
    4492  {
    -
    4493  -84 /*fromYearTiny (2016)*/,
    -
    4494  -84 /*toYearTiny (2016)*/,
    -
    4495  11 /*inMonth*/,
    -
    4496  7 /*onDayOfWeek*/,
    -
    4497  1 /*onDayOfMonth*/,
    -
    4498  8 /*atTimeCode*/,
    -
    4499  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4500  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4501  0 /*letterIndex ("")*/,
    -
    4502  },
    -
    4503  // Rule Tonga 2017 only - Jan Sun>=15 3:00 0 -
    -
    4504  {
    -
    4505  -83 /*fromYearTiny (2017)*/,
    -
    4506  -83 /*toYearTiny (2017)*/,
    -
    4507  1 /*inMonth*/,
    -
    4508  7 /*onDayOfWeek*/,
    -
    4509  15 /*onDayOfMonth*/,
    -
    4510  12 /*atTimeCode*/,
    -
    4511  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4512  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4513  0 /*letterIndex ("")*/,
    -
    4514  },
    -
    4515 
    -
    4516 };
    -
    4517 
    -
    4518 const basic::Info::ZonePolicy kZonePolicyTonga ACE_TIME_PROGMEM = {
    -
    4519  kZoneRulesTonga /*rules*/,
    -
    4520  7 /*numRules*/,
    -
    4521 };
    -
    4522 
    -
    4523 //---------------------------------------------------------------------------
    -
    4524 // Policy name: Tunisia
    -
    4525 // Rules: 6
    -
    4526 //---------------------------------------------------------------------------
    -
    4527 
    -
    4528 static const basic::Info::ZoneRule kZoneRulesTunisia[] ACE_TIME_PROGMEM = {
    -
    4529  // Anchor: Rule Tunisia 1988 1990 - Sep lastSun 0:00s 0 -
    -
    4530  {
    -
    4531  -127 /*fromYearTiny (-32767)*/,
    -
    4532  -127 /*toYearTiny (-32767)*/,
    -
    4533  1 /*inMonth*/,
    -
    4534  0 /*onDayOfWeek*/,
    -
    4535  1 /*onDayOfMonth*/,
    -
    4536  0 /*atTimeCode*/,
    -
    4537  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4538  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4539  0 /*letterIndex ("")*/,
    -
    4540  },
    -
    4541  // Rule Tunisia 1988 1990 - Sep lastSun 0:00s 0 -
    -
    4542  {
    -
    4543  -112 /*fromYearTiny (1988)*/,
    -
    4544  -110 /*toYearTiny (1990)*/,
    -
    4545  9 /*inMonth*/,
    -
    4546  7 /*onDayOfWeek*/,
    -
    4547  0 /*onDayOfMonth*/,
    -
    4548  0 /*atTimeCode*/,
    -
    4549  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4550  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4551  0 /*letterIndex ("")*/,
    -
    4552  },
    -
    4553  // Rule Tunisia 2005 only - May 1 0:00s 1:00 S
    -
    4554  {
    -
    4555  -95 /*fromYearTiny (2005)*/,
    -
    4556  -95 /*toYearTiny (2005)*/,
    -
    4557  5 /*inMonth*/,
    -
    4558  0 /*onDayOfWeek*/,
    -
    4559  1 /*onDayOfMonth*/,
    -
    4560  0 /*atTimeCode*/,
    -
    4561  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4562  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4563  4 /*letterIndex ("S")*/,
    -
    4564  },
    -
    4565  // Rule Tunisia 2005 only - Sep 30 1:00s 0 -
    -
    4566  {
    -
    4567  -95 /*fromYearTiny (2005)*/,
    -
    4568  -95 /*toYearTiny (2005)*/,
    -
    4569  9 /*inMonth*/,
    -
    4570  0 /*onDayOfWeek*/,
    -
    4571  30 /*onDayOfMonth*/,
    -
    4572  4 /*atTimeCode*/,
    -
    4573  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4574  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4575  0 /*letterIndex ("")*/,
    -
    4576  },
    -
    4577  // Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
    -
    4578  {
    -
    4579  -94 /*fromYearTiny (2006)*/,
    -
    4580  -92 /*toYearTiny (2008)*/,
    -
    4581  3 /*inMonth*/,
    -
    4582  7 /*onDayOfWeek*/,
    -
    4583  0 /*onDayOfMonth*/,
    -
    4584  8 /*atTimeCode*/,
    -
    4585  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4586  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4587  4 /*letterIndex ("S")*/,
    -
    4588  },
    -
    4589  // Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
    -
    4590  {
    -
    4591  -94 /*fromYearTiny (2006)*/,
    -
    4592  -92 /*toYearTiny (2008)*/,
    -
    4593  10 /*inMonth*/,
    -
    4594  7 /*onDayOfWeek*/,
    -
    4595  0 /*onDayOfMonth*/,
    -
    4596  8 /*atTimeCode*/,
    -
    4597  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4598  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4599  0 /*letterIndex ("")*/,
    -
    4600  },
    -
    4601 
    -
    4602 };
    -
    4603 
    -
    4604 const basic::Info::ZonePolicy kZonePolicyTunisia ACE_TIME_PROGMEM = {
    -
    4605  kZoneRulesTunisia /*rules*/,
    -
    4606  6 /*numRules*/,
    -
    4607 };
    -
    4608 
    -
    4609 //---------------------------------------------------------------------------
    -
    4610 // Policy name: US
    -
    4611 // Rules: 6
    -
    4612 //---------------------------------------------------------------------------
    -
    4613 
    -
    4614 static const basic::Info::ZoneRule kZoneRulesUS[] ACE_TIME_PROGMEM = {
    -
    4615  // Anchor: Rule US 1967 2006 - Oct lastSun 2:00 0 S
    -
    4616  {
    -
    4617  -127 /*fromYearTiny (-32767)*/,
    -
    4618  -127 /*toYearTiny (-32767)*/,
    -
    4619  1 /*inMonth*/,
    -
    4620  0 /*onDayOfWeek*/,
    -
    4621  1 /*onDayOfMonth*/,
    -
    4622  0 /*atTimeCode*/,
    -
    4623  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4624  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4625  4 /*letterIndex ("S")*/,
    -
    4626  },
    -
    4627  // Rule US 1967 2006 - Oct lastSun 2:00 0 S
    -
    4628  {
    -
    4629  -127 /*fromYearTiny (1967)*/,
    -
    4630  -94 /*toYearTiny (2006)*/,
    -
    4631  10 /*inMonth*/,
    -
    4632  7 /*onDayOfWeek*/,
    -
    4633  0 /*onDayOfMonth*/,
    -
    4634  8 /*atTimeCode*/,
    -
    4635  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4636  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4637  4 /*letterIndex ("S")*/,
    -
    4638  },
    -
    4639  // Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
    -
    4640  {
    -
    4641  -124 /*fromYearTiny (1976)*/,
    -
    4642  -114 /*toYearTiny (1986)*/,
    -
    4643  4 /*inMonth*/,
    -
    4644  7 /*onDayOfWeek*/,
    -
    4645  0 /*onDayOfMonth*/,
    -
    4646  8 /*atTimeCode*/,
    -
    4647  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4648  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4649  3 /*letterIndex ("D")*/,
    -
    4650  },
    -
    4651  // Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    4652  {
    -
    4653  -113 /*fromYearTiny (1987)*/,
    -
    4654  -94 /*toYearTiny (2006)*/,
    -
    4655  4 /*inMonth*/,
    -
    4656  7 /*onDayOfWeek*/,
    -
    4657  1 /*onDayOfMonth*/,
    -
    4658  8 /*atTimeCode*/,
    -
    4659  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4660  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4661  3 /*letterIndex ("D")*/,
    -
    4662  },
    -
    4663  // Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    4664  {
    -
    4665  -93 /*fromYearTiny (2007)*/,
    -
    4666  126 /*toYearTiny (32766)*/,
    -
    4667  3 /*inMonth*/,
    -
    4668  7 /*onDayOfWeek*/,
    -
    4669  8 /*onDayOfMonth*/,
    -
    4670  8 /*atTimeCode*/,
    -
    4671  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4672  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4673  3 /*letterIndex ("D")*/,
    -
    4674  },
    -
    4675  // Rule US 2007 max - Nov Sun>=1 2:00 0 S
    -
    4676  {
    -
    4677  -93 /*fromYearTiny (2007)*/,
    -
    4678  126 /*toYearTiny (32766)*/,
    -
    4679  11 /*inMonth*/,
    -
    4680  7 /*onDayOfWeek*/,
    -
    4681  1 /*onDayOfMonth*/,
    -
    4682  8 /*atTimeCode*/,
    -
    4683  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4684  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4685  4 /*letterIndex ("S")*/,
    -
    4686  },
    -
    4687 
    -
    4688 };
    -
    4689 
    -
    4690 const basic::Info::ZonePolicy kZonePolicyUS ACE_TIME_PROGMEM = {
    -
    4691  kZoneRulesUS /*rules*/,
    -
    4692  6 /*numRules*/,
    -
    4693 };
    -
    4694 
    -
    4695 //---------------------------------------------------------------------------
    -
    4696 // Policy name: Uruguay
    -
    4697 // Rules: 7
    -
    4698 //---------------------------------------------------------------------------
    -
    4699 
    -
    4700 static const basic::Info::ZoneRule kZoneRulesUruguay[] ACE_TIME_PROGMEM = {
    -
    4701  // Anchor: Rule Uruguay 1993 only - Feb 28 0:00 0 -
    -
    4702  {
    -
    4703  -127 /*fromYearTiny (-32767)*/,
    -
    4704  -127 /*toYearTiny (-32767)*/,
    -
    4705  1 /*inMonth*/,
    -
    4706  0 /*onDayOfWeek*/,
    -
    4707  1 /*onDayOfMonth*/,
    -
    4708  0 /*atTimeCode*/,
    -
    4709  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4710  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4711  0 /*letterIndex ("")*/,
    -
    4712  },
    -
    4713  // Rule Uruguay 1993 only - Feb 28 0:00 0 -
    -
    4714  {
    -
    4715  -107 /*fromYearTiny (1993)*/,
    -
    4716  -107 /*toYearTiny (1993)*/,
    -
    4717  2 /*inMonth*/,
    -
    4718  0 /*onDayOfWeek*/,
    -
    4719  28 /*onDayOfMonth*/,
    -
    4720  0 /*atTimeCode*/,
    -
    4721  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4722  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4723  0 /*letterIndex ("")*/,
    -
    4724  },
    -
    4725  // Rule Uruguay 2004 only - Sep 19 0:00 1:00 -
    -
    4726  {
    -
    4727  -96 /*fromYearTiny (2004)*/,
    -
    4728  -96 /*toYearTiny (2004)*/,
    -
    4729  9 /*inMonth*/,
    -
    4730  0 /*onDayOfWeek*/,
    -
    4731  19 /*onDayOfMonth*/,
    -
    4732  0 /*atTimeCode*/,
    -
    4733  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4734  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4735  0 /*letterIndex ("")*/,
    -
    4736  },
    -
    4737  // Rule Uruguay 2005 only - Mar 27 2:00 0 -
    -
    4738  {
    -
    4739  -95 /*fromYearTiny (2005)*/,
    -
    4740  -95 /*toYearTiny (2005)*/,
    -
    4741  3 /*inMonth*/,
    -
    4742  0 /*onDayOfWeek*/,
    -
    4743  27 /*onDayOfMonth*/,
    -
    4744  8 /*atTimeCode*/,
    -
    4745  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4746  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4747  0 /*letterIndex ("")*/,
    -
    4748  },
    -
    4749  // Rule Uruguay 2005 only - Oct 9 2:00 1:00 -
    -
    4750  {
    -
    4751  -95 /*fromYearTiny (2005)*/,
    -
    4752  -95 /*toYearTiny (2005)*/,
    -
    4753  10 /*inMonth*/,
    -
    4754  0 /*onDayOfWeek*/,
    -
    4755  9 /*onDayOfMonth*/,
    -
    4756  8 /*atTimeCode*/,
    -
    4757  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4758  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4759  0 /*letterIndex ("")*/,
    -
    4760  },
    -
    4761  // Rule Uruguay 2006 2015 - Mar Sun>=8 2:00 0 -
    -
    4762  {
    -
    4763  -94 /*fromYearTiny (2006)*/,
    -
    4764  -85 /*toYearTiny (2015)*/,
    -
    4765  3 /*inMonth*/,
    -
    4766  7 /*onDayOfWeek*/,
    -
    4767  8 /*onDayOfMonth*/,
    -
    4768  8 /*atTimeCode*/,
    -
    4769  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4770  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4771  0 /*letterIndex ("")*/,
    -
    4772  },
    -
    4773  // Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 -
    -
    4774  {
    -
    4775  -94 /*fromYearTiny (2006)*/,
    -
    4776  -86 /*toYearTiny (2014)*/,
    -
    4777  10 /*inMonth*/,
    -
    4778  7 /*onDayOfWeek*/,
    -
    4779  1 /*onDayOfMonth*/,
    -
    4780  8 /*atTimeCode*/,
    -
    4781  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4782  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4783  0 /*letterIndex ("")*/,
    -
    4784  },
    -
    4785 
    -
    4786 };
    -
    4787 
    -
    4788 const basic::Info::ZonePolicy kZonePolicyUruguay ACE_TIME_PROGMEM = {
    -
    4789  kZoneRulesUruguay /*rules*/,
    -
    4790  7 /*numRules*/,
    -
    4791 };
    -
    4792 
    -
    4793 //---------------------------------------------------------------------------
    -
    4794 // Policy name: Vanuatu
    -
    4795 // Rules: 1
    -
    4796 //---------------------------------------------------------------------------
    -
    4797 
    -
    4798 static const basic::Info::ZoneRule kZoneRulesVanuatu[] ACE_TIME_PROGMEM = {
    -
    4799  // Anchor: Rule Vanuatu 1992 1993 - Jan Sat>=22 24:00 0 -
    -
    4800  {
    -
    4801  -127 /*fromYearTiny (-32767)*/,
    -
    4802  -127 /*toYearTiny (-32767)*/,
    -
    4803  1 /*inMonth*/,
    -
    4804  0 /*onDayOfWeek*/,
    -
    4805  1 /*onDayOfMonth*/,
    -
    4806  0 /*atTimeCode*/,
    -
    4807  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4808  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4809  0 /*letterIndex ("")*/,
    -
    4810  },
    -
    4811 
    -
    4812 };
    -
    4813 
    -
    4814 const basic::Info::ZonePolicy kZonePolicyVanuatu ACE_TIME_PROGMEM = {
    -
    4815  kZoneRulesVanuatu /*rules*/,
    -
    4816  1 /*numRules*/,
    -
    4817 };
    -
    4818 
    -
    4819 //---------------------------------------------------------------------------
    -
    4820 // Policy name: Winn
    -
    4821 // Rules: 4
    -
    4822 //---------------------------------------------------------------------------
    -
    4823 
    -
    4824 static const basic::Info::ZoneRule kZoneRulesWinn[] ACE_TIME_PROGMEM = {
    -
    4825  // Anchor: Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
    -
    4826  {
    -
    4827  -127 /*fromYearTiny (-32767)*/,
    -
    4828  -127 /*toYearTiny (-32767)*/,
    -
    4829  1 /*inMonth*/,
    -
    4830  0 /*onDayOfWeek*/,
    -
    4831  1 /*onDayOfMonth*/,
    -
    4832  0 /*atTimeCode*/,
    -
    4833  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4834  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4835  4 /*letterIndex ("S")*/,
    -
    4836  },
    -
    4837  // Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D
    -
    4838  {
    -
    4839  -127 /*fromYearTiny (1966)*/,
    -
    4840  -114 /*toYearTiny (1986)*/,
    -
    4841  4 /*inMonth*/,
    -
    4842  7 /*onDayOfWeek*/,
    -
    4843  0 /*onDayOfMonth*/,
    -
    4844  8 /*atTimeCode*/,
    -
    4845  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4846  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4847  3 /*letterIndex ("D")*/,
    -
    4848  },
    -
    4849  // Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
    -
    4850  {
    -
    4851  -127 /*fromYearTiny (1966)*/,
    -
    4852  -95 /*toYearTiny (2005)*/,
    -
    4853  10 /*inMonth*/,
    -
    4854  7 /*onDayOfWeek*/,
    -
    4855  0 /*onDayOfMonth*/,
    -
    4856  8 /*atTimeCode*/,
    -
    4857  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4858  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4859  4 /*letterIndex ("S")*/,
    -
    4860  },
    -
    4861  // Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D
    -
    4862  {
    -
    4863  -113 /*fromYearTiny (1987)*/,
    -
    4864  -95 /*toYearTiny (2005)*/,
    -
    4865  4 /*inMonth*/,
    -
    4866  7 /*onDayOfWeek*/,
    -
    4867  1 /*onDayOfMonth*/,
    -
    4868  8 /*atTimeCode*/,
    -
    4869  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    4870  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4871  3 /*letterIndex ("D")*/,
    -
    4872  },
    -
    4873 
    -
    4874 };
    -
    4875 
    -
    4876 const basic::Info::ZonePolicy kZonePolicyWinn ACE_TIME_PROGMEM = {
    -
    4877  kZoneRulesWinn /*rules*/,
    -
    4878  4 /*numRules*/,
    -
    4879 };
    -
    4880 
    -
    4881 //---------------------------------------------------------------------------
    -
    4882 // Policy name: Zion
    -
    4883 // Rules: 25
    -
    4884 //---------------------------------------------------------------------------
    -
    4885 
    -
    4886 static const basic::Info::ZoneRule kZoneRulesZion[] ACE_TIME_PROGMEM = {
    -
    4887  // Anchor: Rule Zion 1998 only - Sep 6 0:00 0 S
    -
    4888  {
    -
    4889  -127 /*fromYearTiny (-32767)*/,
    -
    4890  -127 /*toYearTiny (-32767)*/,
    -
    4891  1 /*inMonth*/,
    -
    4892  0 /*onDayOfWeek*/,
    -
    4893  1 /*onDayOfMonth*/,
    -
    4894  0 /*atTimeCode*/,
    -
    4895  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4896  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4897  4 /*letterIndex ("S")*/,
    -
    4898  },
    -
    4899  // Rule Zion 1998 only - Sep 6 0:00 0 S
    -
    4900  {
    -
    4901  -102 /*fromYearTiny (1998)*/,
    -
    4902  -102 /*toYearTiny (1998)*/,
    -
    4903  9 /*inMonth*/,
    -
    4904  0 /*onDayOfWeek*/,
    -
    4905  6 /*onDayOfMonth*/,
    -
    4906  0 /*atTimeCode*/,
    -
    4907  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4908  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4909  4 /*letterIndex ("S")*/,
    -
    4910  },
    -
    4911  // Rule Zion 1999 only - Apr 2 2:00 1:00 D
    -
    4912  {
    -
    4913  -101 /*fromYearTiny (1999)*/,
    -
    4914  -101 /*toYearTiny (1999)*/,
    -
    4915  4 /*inMonth*/,
    -
    4916  0 /*onDayOfWeek*/,
    -
    4917  2 /*onDayOfMonth*/,
    -
    4918  8 /*atTimeCode*/,
    -
    4919  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4920  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4921  3 /*letterIndex ("D")*/,
    -
    4922  },
    -
    4923  // Rule Zion 1999 only - Sep 3 2:00 0 S
    -
    4924  {
    -
    4925  -101 /*fromYearTiny (1999)*/,
    -
    4926  -101 /*toYearTiny (1999)*/,
    -
    4927  9 /*inMonth*/,
    -
    4928  0 /*onDayOfWeek*/,
    -
    4929  3 /*onDayOfMonth*/,
    -
    4930  8 /*atTimeCode*/,
    -
    4931  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4932  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4933  4 /*letterIndex ("S")*/,
    -
    4934  },
    -
    4935  // Rule Zion 2000 only - Apr 14 2:00 1:00 D
    -
    4936  {
    -
    4937  -100 /*fromYearTiny (2000)*/,
    -
    4938  -100 /*toYearTiny (2000)*/,
    -
    4939  4 /*inMonth*/,
    -
    4940  0 /*onDayOfWeek*/,
    -
    4941  14 /*onDayOfMonth*/,
    -
    4942  8 /*atTimeCode*/,
    -
    4943  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4944  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4945  3 /*letterIndex ("D")*/,
    -
    4946  },
    -
    4947  // Rule Zion 2000 only - Oct 6 1:00 0 S
    -
    4948  {
    -
    4949  -100 /*fromYearTiny (2000)*/,
    -
    4950  -100 /*toYearTiny (2000)*/,
    -
    4951  10 /*inMonth*/,
    -
    4952  0 /*onDayOfWeek*/,
    -
    4953  6 /*onDayOfMonth*/,
    -
    4954  4 /*atTimeCode*/,
    -
    4955  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4956  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4957  4 /*letterIndex ("S")*/,
    -
    4958  },
    -
    4959  // Rule Zion 2001 only - Apr 9 1:00 1:00 D
    -
    4960  {
    -
    4961  -99 /*fromYearTiny (2001)*/,
    -
    4962  -99 /*toYearTiny (2001)*/,
    -
    4963  4 /*inMonth*/,
    -
    4964  0 /*onDayOfWeek*/,
    -
    4965  9 /*onDayOfMonth*/,
    -
    4966  4 /*atTimeCode*/,
    -
    4967  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4968  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4969  3 /*letterIndex ("D")*/,
    -
    4970  },
    -
    4971  // Rule Zion 2001 only - Sep 24 1:00 0 S
    -
    4972  {
    -
    4973  -99 /*fromYearTiny (2001)*/,
    -
    4974  -99 /*toYearTiny (2001)*/,
    -
    4975  9 /*inMonth*/,
    -
    4976  0 /*onDayOfWeek*/,
    -
    4977  24 /*onDayOfMonth*/,
    -
    4978  4 /*atTimeCode*/,
    -
    4979  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4980  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4981  4 /*letterIndex ("S")*/,
    -
    4982  },
    -
    4983  // Rule Zion 2002 only - Mar 29 1:00 1:00 D
    -
    4984  {
    -
    4985  -98 /*fromYearTiny (2002)*/,
    -
    4986  -98 /*toYearTiny (2002)*/,
    -
    4987  3 /*inMonth*/,
    -
    4988  0 /*onDayOfWeek*/,
    -
    4989  29 /*onDayOfMonth*/,
    -
    4990  4 /*atTimeCode*/,
    -
    4991  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4992  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4993  3 /*letterIndex ("D")*/,
    -
    4994  },
    -
    4995  // Rule Zion 2002 only - Oct 7 1:00 0 S
    -
    4996  {
    -
    4997  -98 /*fromYearTiny (2002)*/,
    -
    4998  -98 /*toYearTiny (2002)*/,
    -
    4999  10 /*inMonth*/,
    -
    5000  0 /*onDayOfWeek*/,
    -
    5001  7 /*onDayOfMonth*/,
    -
    5002  4 /*atTimeCode*/,
    -
    5003  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5004  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5005  4 /*letterIndex ("S")*/,
    -
    5006  },
    -
    5007  // Rule Zion 2003 only - Mar 28 1:00 1:00 D
    -
    5008  {
    -
    5009  -97 /*fromYearTiny (2003)*/,
    -
    5010  -97 /*toYearTiny (2003)*/,
    -
    5011  3 /*inMonth*/,
    -
    5012  0 /*onDayOfWeek*/,
    -
    5013  28 /*onDayOfMonth*/,
    -
    5014  4 /*atTimeCode*/,
    -
    5015  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5016  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    5017  3 /*letterIndex ("D")*/,
    -
    5018  },
    -
    5019  // Rule Zion 2003 only - Oct 3 1:00 0 S
    -
    5020  {
    -
    5021  -97 /*fromYearTiny (2003)*/,
    -
    5022  -97 /*toYearTiny (2003)*/,
    -
    5023  10 /*inMonth*/,
    -
    5024  0 /*onDayOfWeek*/,
    -
    5025  3 /*onDayOfMonth*/,
    -
    5026  4 /*atTimeCode*/,
    -
    5027  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5028  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5029  4 /*letterIndex ("S")*/,
    -
    5030  },
    -
    5031  // Rule Zion 2004 only - Apr 7 1:00 1:00 D
    -
    5032  {
    -
    5033  -96 /*fromYearTiny (2004)*/,
    -
    5034  -96 /*toYearTiny (2004)*/,
    -
    5035  4 /*inMonth*/,
    -
    5036  0 /*onDayOfWeek*/,
    -
    5037  7 /*onDayOfMonth*/,
    -
    5038  4 /*atTimeCode*/,
    -
    5039  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5040  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    5041  3 /*letterIndex ("D")*/,
    -
    5042  },
    -
    5043  // Rule Zion 2004 only - Sep 22 1:00 0 S
    -
    5044  {
    -
    5045  -96 /*fromYearTiny (2004)*/,
    -
    5046  -96 /*toYearTiny (2004)*/,
    -
    5047  9 /*inMonth*/,
    -
    5048  0 /*onDayOfWeek*/,
    -
    5049  22 /*onDayOfMonth*/,
    -
    5050  4 /*atTimeCode*/,
    -
    5051  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5052  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5053  4 /*letterIndex ("S")*/,
    -
    5054  },
    -
    5055  // Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D
    -
    5056  {
    -
    5057  -95 /*fromYearTiny (2005)*/,
    -
    5058  -88 /*toYearTiny (2012)*/,
    -
    5059  4 /*inMonth*/,
    -
    5060  5 /*onDayOfWeek*/,
    -
    5061  -1 /*onDayOfMonth*/,
    -
    5062  8 /*atTimeCode*/,
    -
    5063  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5064  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    5065  3 /*letterIndex ("D")*/,
    -
    5066  },
    -
    5067  // Rule Zion 2005 only - Oct 9 2:00 0 S
    -
    5068  {
    -
    5069  -95 /*fromYearTiny (2005)*/,
    -
    5070  -95 /*toYearTiny (2005)*/,
    -
    5071  10 /*inMonth*/,
    -
    5072  0 /*onDayOfWeek*/,
    -
    5073  9 /*onDayOfMonth*/,
    -
    5074  8 /*atTimeCode*/,
    -
    5075  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5076  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5077  4 /*letterIndex ("S")*/,
    -
    5078  },
    -
    5079  // Rule Zion 2006 only - Oct 1 2:00 0 S
    -
    5080  {
    -
    5081  -94 /*fromYearTiny (2006)*/,
    -
    5082  -94 /*toYearTiny (2006)*/,
    -
    5083  10 /*inMonth*/,
    -
    5084  0 /*onDayOfWeek*/,
    -
    5085  1 /*onDayOfMonth*/,
    -
    5086  8 /*atTimeCode*/,
    -
    5087  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5088  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5089  4 /*letterIndex ("S")*/,
    -
    5090  },
    -
    5091  // Rule Zion 2007 only - Sep 16 2:00 0 S
    -
    5092  {
    -
    5093  -93 /*fromYearTiny (2007)*/,
    -
    5094  -93 /*toYearTiny (2007)*/,
    -
    5095  9 /*inMonth*/,
    -
    5096  0 /*onDayOfWeek*/,
    -
    5097  16 /*onDayOfMonth*/,
    -
    5098  8 /*atTimeCode*/,
    -
    5099  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5100  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5101  4 /*letterIndex ("S")*/,
    -
    5102  },
    -
    5103  // Rule Zion 2008 only - Oct 5 2:00 0 S
    -
    5104  {
    -
    5105  -92 /*fromYearTiny (2008)*/,
    -
    5106  -92 /*toYearTiny (2008)*/,
    -
    5107  10 /*inMonth*/,
    -
    5108  0 /*onDayOfWeek*/,
    -
    5109  5 /*onDayOfMonth*/,
    -
    5110  8 /*atTimeCode*/,
    -
    5111  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5112  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5113  4 /*letterIndex ("S")*/,
    -
    5114  },
    -
    5115  // Rule Zion 2009 only - Sep 27 2:00 0 S
    -
    5116  {
    -
    5117  -91 /*fromYearTiny (2009)*/,
    -
    5118  -91 /*toYearTiny (2009)*/,
    -
    5119  9 /*inMonth*/,
    -
    5120  0 /*onDayOfWeek*/,
    -
    5121  27 /*onDayOfMonth*/,
    -
    5122  8 /*atTimeCode*/,
    -
    5123  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5124  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5125  4 /*letterIndex ("S")*/,
    -
    5126  },
    -
    5127  // Rule Zion 2010 only - Sep 12 2:00 0 S
    -
    5128  {
    -
    5129  -90 /*fromYearTiny (2010)*/,
    -
    5130  -90 /*toYearTiny (2010)*/,
    -
    5131  9 /*inMonth*/,
    -
    5132  0 /*onDayOfWeek*/,
    -
    5133  12 /*onDayOfMonth*/,
    -
    5134  8 /*atTimeCode*/,
    -
    5135  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5136  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5137  4 /*letterIndex ("S")*/,
    -
    5138  },
    -
    5139  // Rule Zion 2011 only - Oct 2 2:00 0 S
    -
    5140  {
    -
    5141  -89 /*fromYearTiny (2011)*/,
    -
    5142  -89 /*toYearTiny (2011)*/,
    -
    5143  10 /*inMonth*/,
    -
    5144  0 /*onDayOfWeek*/,
    -
    5145  2 /*onDayOfMonth*/,
    -
    5146  8 /*atTimeCode*/,
    -
    5147  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5148  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5149  4 /*letterIndex ("S")*/,
    -
    5150  },
    -
    5151  // Rule Zion 2012 only - Sep 23 2:00 0 S
    -
    5152  {
    -
    5153  -88 /*fromYearTiny (2012)*/,
    -
    5154  -88 /*toYearTiny (2012)*/,
    -
    5155  9 /*inMonth*/,
    -
    5156  0 /*onDayOfWeek*/,
    -
    5157  23 /*onDayOfMonth*/,
    -
    5158  8 /*atTimeCode*/,
    -
    5159  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5160  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5161  4 /*letterIndex ("S")*/,
    -
    5162  },
    -
    5163  // Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D
    -
    5164  {
    -
    5165  -87 /*fromYearTiny (2013)*/,
    -
    5166  126 /*toYearTiny (32766)*/,
    -
    5167  3 /*inMonth*/,
    -
    5168  5 /*onDayOfWeek*/,
    -
    5169  23 /*onDayOfMonth*/,
    -
    5170  8 /*atTimeCode*/,
    -
    5171  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5172  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    5173  3 /*letterIndex ("D")*/,
    -
    5174  },
    -
    5175  // Rule Zion 2013 max - Oct lastSun 2:00 0 S
    -
    5176  {
    -
    5177  -87 /*fromYearTiny (2013)*/,
    -
    5178  126 /*toYearTiny (32766)*/,
    -
    5179  10 /*inMonth*/,
    -
    5180  7 /*onDayOfWeek*/,
    -
    5181  0 /*onDayOfMonth*/,
    -
    5182  8 /*atTimeCode*/,
    -
    5183  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5184  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5185  4 /*letterIndex ("S")*/,
    -
    5186  },
    -
    5187 
    -
    5188 };
    -
    5189 
    -
    5190 const basic::Info::ZonePolicy kZonePolicyZion ACE_TIME_PROGMEM = {
    -
    5191  kZoneRulesZion /*rules*/,
    -
    5192  25 /*numRules*/,
    -
    5193 };
    -
    5194 
    -
    5195 
    -
    5196 
    -
    5197 }
    -
    5198 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/zonedb_2zone__policies_8h_source.html b/docs/html/zonedb_2zone__policies_8h_source.html deleted file mode 100644 index b51137031..000000000 --- a/docs/html/zonedb_2zone__policies_8h_source.html +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/zone_policies.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace zonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 446 (215 zones, 231 links)
    -
    30 // Unsupported Zones: 151 (125 zones, 26 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2023]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2025]
    -
    40 // Max Buffer Size: 6
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 446
    -
    44 // Eras: 227
    -
    45 // Policies: 63
    -
    46 // Rules: 352
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 3168
    -
    51 // Policies: 189
    -
    52 // Eras: 2497
    -
    53 // Zones: 2795
    -
    54 // Links: 3003
    -
    55 // Registry: 892
    -
    56 // Formats: 175
    -
    57 // Letters: 29
    -
    58 // Fragments: 116
    -
    59 // Names: 4142 (original: 6494)
    -
    60 // TOTAL: 17022
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 4224
    -
    65 // Policies: 504
    -
    66 // Eras: 3632
    -
    67 // Zones: 5160
    -
    68 // Links: 5544
    -
    69 // Registry: 1784
    -
    70 // Formats: 175
    -
    71 // Letters: 41
    -
    72 // Fragments: 138
    -
    73 // Names: 4142 (original: 6494)
    -
    74 // TOTAL: 25368
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #ifndef ACE_TIME_ZONEDB_ZONE_POLICIES_H
    -
    79 #define ACE_TIME_ZONEDB_ZONE_POLICIES_H
    -
    80 
    -
    81 #include <zoneinfo/infos.h>
    -
    82 
    -
    83 namespace ace_time {
    -
    84 namespace zonedb {
    -
    85 
    -
    86 //---------------------------------------------------------------------------
    -
    87 // Supported policies: 63
    -
    88 //---------------------------------------------------------------------------
    -
    89 
    -
    90 extern const basic::Info::ZonePolicy kZonePolicyAN;
    -
    91 extern const basic::Info::ZonePolicy kZonePolicyAQ;
    -
    92 extern const basic::Info::ZonePolicy kZonePolicyAS;
    -
    93 extern const basic::Info::ZonePolicy kZonePolicyAT;
    -
    94 extern const basic::Info::ZonePolicy kZonePolicyAV;
    -
    95 extern const basic::Info::ZonePolicy kZonePolicyAW;
    -
    96 extern const basic::Info::ZonePolicy kZonePolicyArmenia;
    -
    97 extern const basic::Info::ZonePolicy kZonePolicyAus;
    -
    98 extern const basic::Info::ZonePolicy kZonePolicyAzer;
    -
    99 extern const basic::Info::ZonePolicy kZonePolicyBarb;
    -
    100 extern const basic::Info::ZonePolicy kZonePolicyBelize;
    -
    101 extern const basic::Info::ZonePolicy kZonePolicyBrazil;
    -
    102 extern const basic::Info::ZonePolicy kZonePolicyCO;
    -
    103 extern const basic::Info::ZonePolicy kZonePolicyCR;
    -
    104 extern const basic::Info::ZonePolicy kZonePolicyCanada;
    -
    105 extern const basic::Info::ZonePolicy kZonePolicyChatham;
    -
    106 extern const basic::Info::ZonePolicy kZonePolicyChile;
    -
    107 extern const basic::Info::ZonePolicy kZonePolicyCook;
    -
    108 extern const basic::Info::ZonePolicy kZonePolicyCuba;
    -
    109 extern const basic::Info::ZonePolicy kZonePolicyDhaka;
    -
    110 extern const basic::Info::ZonePolicy kZonePolicyEU;
    -
    111 extern const basic::Info::ZonePolicy kZonePolicyEUAsia;
    -
    112 extern const basic::Info::ZonePolicy kZonePolicyEcuador;
    -
    113 extern const basic::Info::ZonePolicy kZonePolicyEire;
    -
    114 extern const basic::Info::ZonePolicy kZonePolicyFiji;
    -
    115 extern const basic::Info::ZonePolicy kZonePolicyGuat;
    -
    116 extern const basic::Info::ZonePolicy kZonePolicyHK;
    -
    117 extern const basic::Info::ZonePolicy kZonePolicyHaiti;
    -
    118 extern const basic::Info::ZonePolicy kZonePolicyHoliday;
    -
    119 extern const basic::Info::ZonePolicy kZonePolicyHond;
    -
    120 extern const basic::Info::ZonePolicy kZonePolicyIran;
    -
    121 extern const basic::Info::ZonePolicy kZonePolicyIraq;
    -
    122 extern const basic::Info::ZonePolicy kZonePolicyJapan;
    -
    123 extern const basic::Info::ZonePolicy kZonePolicyJordan;
    -
    124 extern const basic::Info::ZonePolicy kZonePolicyLH;
    -
    125 extern const basic::Info::ZonePolicy kZonePolicyLebanon;
    -
    126 extern const basic::Info::ZonePolicy kZonePolicyMacau;
    -
    127 extern const basic::Info::ZonePolicy kZonePolicyMauritius;
    -
    128 extern const basic::Info::ZonePolicy kZonePolicyMexico;
    -
    129 extern const basic::Info::ZonePolicy kZonePolicyMoldova;
    -
    130 extern const basic::Info::ZonePolicy kZonePolicyMoncton;
    -
    131 extern const basic::Info::ZonePolicy kZonePolicyMongol;
    -
    132 extern const basic::Info::ZonePolicy kZonePolicyNC;
    -
    133 extern const basic::Info::ZonePolicy kZonePolicyNZ;
    -
    134 extern const basic::Info::ZonePolicy kZonePolicyNamibia;
    -
    135 extern const basic::Info::ZonePolicy kZonePolicyNic;
    -
    136 extern const basic::Info::ZonePolicy kZonePolicyPRC;
    -
    137 extern const basic::Info::ZonePolicy kZonePolicyPakistan;
    -
    138 extern const basic::Info::ZonePolicy kZonePolicyPeru;
    -
    139 extern const basic::Info::ZonePolicy kZonePolicyPhil;
    -
    140 extern const basic::Info::ZonePolicy kZonePolicyROK;
    -
    141 extern const basic::Info::ZonePolicy kZonePolicyRussiaAsia;
    -
    142 extern const basic::Info::ZonePolicy kZonePolicySA;
    -
    143 extern const basic::Info::ZonePolicy kZonePolicySalv;
    -
    144 extern const basic::Info::ZonePolicy kZonePolicyTaiwan;
    -
    145 extern const basic::Info::ZonePolicy kZonePolicyThule;
    -
    146 extern const basic::Info::ZonePolicy kZonePolicyTonga;
    -
    147 extern const basic::Info::ZonePolicy kZonePolicyTunisia;
    -
    148 extern const basic::Info::ZonePolicy kZonePolicyUS;
    -
    149 extern const basic::Info::ZonePolicy kZonePolicyUruguay;
    -
    150 extern const basic::Info::ZonePolicy kZonePolicyVanuatu;
    -
    151 extern const basic::Info::ZonePolicy kZonePolicyWinn;
    -
    152 extern const basic::Info::ZonePolicy kZonePolicyZion;
    -
    153 
    -
    154 
    -
    155 //---------------------------------------------------------------------------
    -
    156 // Unsupported policies: 71
    -
    157 //---------------------------------------------------------------------------
    -
    158 
    -
    159 // Albania {unused}
    -
    160 // Algeria {unused}
    -
    161 // Arg {unused}
    -
    162 // Austria {unused}
    -
    163 // Belgium {unused}
    -
    164 // Bermuda {unused}
    -
    165 // Bulg {unused}
    -
    166 // C-Eur {unused}
    -
    167 // CA {unused}
    -
    168 // Chicago {unused}
    -
    169 // Cyprus {unused}
    -
    170 // Czech {unused}
    -
    171 // DR {unused}
    -
    172 // Denver {unused}
    -
    173 // Detroit {unused}
    -
    174 // E-Eur {unused}
    -
    175 // E-EurAsia {unused}
    -
    176 // Edm {unused}
    -
    177 // Egypt {Found 2 transitions in year/month '2010-09'}
    -
    178 // EgyptAsia {unused}
    -
    179 // Falk {unused}
    -
    180 // Finland {unused}
    -
    181 // France {unused}
    -
    182 // GB-Eire {unused}
    -
    183 // Germany {unused}
    -
    184 // Greece {unused}
    -
    185 // Guam {unused}
    -
    186 // Halifax {unused}
    -
    187 // Hungary {unused}
    -
    188 // Indianapolis {unused}
    -
    189 // Italy {unused}
    -
    190 // Kyrgyz {unused}
    -
    191 // Latvia {unused}
    -
    192 // Libya {unused}
    -
    193 // Louisville {unused}
    -
    194 // Malta {unused}
    -
    195 // Marengo {unused}
    -
    196 // Menominee {unused}
    -
    197 // Morocco {unused}
    -
    198 // NBorneo {unused}
    -
    199 // NT_YK {unused}
    -
    200 // NYC {unused}
    -
    201 // Palestine {Found 2 transitions in year/month '2074-10'}
    -
    202 // Para {unused}
    -
    203 // Perry {unused}
    -
    204 // Pike {unused}
    -
    205 // Poland {unused}
    -
    206 // Port {unused}
    -
    207 // Pulaski {unused}
    -
    208 // Regina {unused}
    -
    209 // Romania {unused}
    -
    210 // Russia {unused}
    -
    211 // SanLuis {unused}
    -
    212 // Shang {unused}
    -
    213 // SovietZone {unused}
    -
    214 // Spain {unused}
    -
    215 // SpainAfrica {unused}
    -
    216 // StJohns {unused}
    -
    217 // Starke {unused}
    -
    218 // Sudan {unused}
    -
    219 // Swift {unused}
    -
    220 // Swiss {unused}
    -
    221 // Syria {unused}
    -
    222 // Toronto {unused}
    -
    223 // Troll {unused}
    -
    224 // Turkey {unused}
    -
    225 // Vanc {unused}
    -
    226 // Vincennes {unused}
    -
    227 // W-Eur {unused}
    -
    228 // WS {unused}
    -
    229 // Yukon {unused}
    -
    230 
    -
    231 
    -
    232 //---------------------------------------------------------------------------
    -
    233 // Notable zone policies: 5
    -
    234 //---------------------------------------------------------------------------
    -
    235 
    -
    236 // Belize {LETTER 'CST' not single character}
    -
    237 // Eire {SAVE '-1:00' is a negative DST}
    -
    238 // LH {SAVE '0:30' different from 1:00}
    -
    239 // Moncton {AT '0:01' not multiple of :15 min}
    -
    240 // Namibia {
    -
    241 // LETTER 'CAT' not single character,
    -
    242 // LETTER 'WAT' not single character,
    -
    243 // SAVE '-1:00' is a negative DST,
    -
    244 // }
    -
    245 
    -
    246 
    -
    247 }
    -
    248 }
    -
    249 
    -
    250 #endif
    -
    - - - - diff --git a/docs/html/zonedb_2zone__registry_8cpp_source.html b/docs/html/zonedb_2zone__registry_8cpp_source.html deleted file mode 100644 index a0d52e061..000000000 --- a/docs/html/zonedb_2zone__registry_8cpp_source.html +++ /dev/null @@ -1,842 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/zone_registry.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace zonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 446 (215 zones, 231 links)
    -
    30 // Unsupported Zones: 151 (125 zones, 26 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2023]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2025]
    -
    40 // Max Buffer Size: 6
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 446
    -
    44 // Eras: 227
    -
    45 // Policies: 63
    -
    46 // Rules: 352
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 3168
    -
    51 // Policies: 189
    -
    52 // Eras: 2497
    -
    53 // Zones: 2795
    -
    54 // Links: 3003
    -
    55 // Registry: 892
    -
    56 // Formats: 175
    -
    57 // Letters: 29
    -
    58 // Fragments: 116
    -
    59 // Names: 4142 (original: 6494)
    -
    60 // TOTAL: 17022
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 4224
    -
    65 // Policies: 504
    -
    66 // Eras: 3632
    -
    67 // Zones: 5160
    -
    68 // Links: 5544
    -
    69 // Registry: 1784
    -
    70 // Formats: 175
    -
    71 // Letters: 41
    -
    72 // Fragments: 138
    -
    73 // Names: 4142 (original: 6494)
    -
    74 // TOTAL: 25368
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #include <zoneinfo/compat.h>
    -
    79 #include "zone_infos.h"
    -
    80 #include "zone_registry.h"
    -
    81 
    -
    82 namespace ace_time {
    -
    83 namespace zonedb {
    -
    84 
    -
    85 //---------------------------------------------------------------------------
    -
    86 // Zone Info registry. Sorted by zoneId.
    -
    87 //---------------------------------------------------------------------------
    -
    88 const basic::Info::ZoneInfo* const kZoneRegistry[215] ACE_TIME_PROGMEM = {
    -
    89  &kZoneAsia_Jakarta, // 0x0506ab50, Asia/Jakarta
    -
    90  &kZoneAmerica_Mazatlan, // 0x0532189e, America/Mazatlan
    -
    91  &kZoneAmerica_Hermosillo, // 0x065d21c4, America/Hermosillo
    -
    92  &kZoneAmerica_Guatemala, // 0x0c8259f7, America/Guatemala
    -
    93  &kZoneAfrica_Monrovia, // 0x0ce90385, Africa/Monrovia
    -
    94  &kZoneAntarctica_Rothera, // 0x0e86d203, Antarctica/Rothera
    -
    95  &kZoneAustralia_Melbourne, // 0x0fe559a3, Australia/Melbourne
    -
    96  &kZoneAmerica_Sao_Paulo, // 0x1063bfc9, America/Sao_Paulo
    -
    97  &kZoneAmerica_Indiana_Vevay, // 0x10aca054, America/Indiana/Vevay
    -
    98  &kZoneAsia_Samarkand, // 0x13ae5104, Asia/Samarkand
    -
    99  &kZoneAsia_Dhaka, // 0x14c07b8b, Asia/Dhaka
    -
    100  &kZoneAsia_Dubai, // 0x14c79f77, Asia/Dubai
    -
    101  &kZoneAsia_Kabul, // 0x153b5601, Asia/Kabul
    -
    102  &kZoneAsia_Macau, // 0x155f88b9, Asia/Macau
    -
    103  &kZoneAsia_Qatar, // 0x15a8330b, Asia/Qatar
    -
    104  &kZoneAsia_Seoul, // 0x15ce82da, Asia/Seoul
    -
    105  &kZoneAsia_Tokyo, // 0x15e606a8, Asia/Tokyo
    -
    106  &kZoneAsia_Thimphu, // 0x170380d1, Asia/Thimphu
    -
    107  &kZoneAmerica_Guayaquil, // 0x17e64958, America/Guayaquil
    -
    108  &kZoneAmerica_Kentucky_Louisville, // 0x1a21024b, America/Kentucky/Louisville
    -
    109  &kZoneAsia_Pontianak, // 0x1a76c057, Asia/Pontianak
    -
    110  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    111  &kZoneAsia_Baku, // 0x1fa788b5, Asia/Baku
    -
    112  &kZoneAsia_Hovd, // 0x1fab0fe3, Asia/Hovd
    -
    113  &kZoneAsia_Ho_Chi_Minh, // 0x20f2d127, Asia/Ho_Chi_Minh
    -
    114  &kZonePacific_Fiji, // 0x23383ba5, Pacific/Fiji
    -
    115  &kZonePacific_Niue, // 0x233ca014, Pacific/Niue
    -
    116  &kZoneAustralia_Adelaide, // 0x2428e8a3, Australia/Adelaide
    -
    117  &kZonePacific_Auckland, // 0x25062f86, Pacific/Auckland
    -
    118  &kZonePacific_Tongatapu, // 0x262ca836, Pacific/Tongatapu
    -
    119  &kZoneAmerica_Monterrey, // 0x269a1deb, America/Monterrey
    -
    120  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    121  &kZoneAmerica_Indiana_Indianapolis, // 0x28a669a4, America/Indiana/Indianapolis
    -
    122  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    123  &kZonePacific_Chatham, // 0x2f0de999, Pacific/Chatham
    -
    124  &kZoneAmerica_Indiana_Marengo, // 0x2feeee72, America/Indiana/Marengo
    -
    125  &kZoneAsia_Ulaanbaatar, // 0x30f0cc4e, Asia/Ulaanbaatar
    -
    126  &kZoneAustralia_Hobart, // 0x32bf951a, Australia/Hobart
    -
    127  &kZoneAsia_Dushanbe, // 0x32fc5c3c, Asia/Dushanbe
    -
    128  &kZoneAtlantic_South_Georgia, // 0x33013174, Atlantic/South_Georgia
    -
    129  &kZoneAmerica_Phoenix, // 0x34b5af01, America/Phoenix
    -
    130  &kZoneAmerica_Cayenne, // 0x3c617269, America/Cayenne
    -
    131  &kZoneAtlantic_Bermuda, // 0x3d4bb1c4, Atlantic/Bermuda
    -
    132  &kZoneAmerica_Managua, // 0x3d5e7600, America/Managua
    -
    133  &kZoneEtc_GMT_PLUS_10, // 0x3f8f1cc4, Etc/GMT+10
    -
    134  &kZoneEtc_GMT_PLUS_11, // 0x3f8f1cc5, Etc/GMT+11
    -
    135  &kZoneEtc_GMT_PLUS_12, // 0x3f8f1cc6, Etc/GMT+12
    -
    136  &kZoneEtc_GMT_10, // 0x3f8f2546, Etc/GMT-10
    -
    137  &kZoneEtc_GMT_11, // 0x3f8f2547, Etc/GMT-11
    -
    138  &kZoneEtc_GMT_12, // 0x3f8f2548, Etc/GMT-12
    -
    139  &kZoneEtc_GMT_13, // 0x3f8f2549, Etc/GMT-13
    -
    140  &kZoneEtc_GMT_14, // 0x3f8f254a, Etc/GMT-14
    -
    141  &kZoneEurope_Athens, // 0x4318fa27, Europe/Athens
    -
    142  &kZoneEurope_Berlin, // 0x44644c20, Europe/Berlin
    -
    143  &kZoneIndian_Chagos, // 0x456f7c3c, Indian/Chagos
    -
    144  &kZoneEurope_Dublin, // 0x4a275f62, Europe/Dublin
    -
    145  &kZoneAsia_Nicosia, // 0x4b0fcf78, Asia/Nicosia
    -
    146  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    147  &kZoneAustralia_Sydney, // 0x4d1e9776, Australia/Sydney
    -
    148  &kZoneAustralia_Brisbane, // 0x4fedc9c0, Australia/Brisbane
    -
    149  &kZoneAsia_Karachi, // 0x527f5245, Asia/Karachi
    -
    150  &kZonePacific_Gambier, // 0x53720c3a, Pacific/Gambier
    -
    151  &kZoneAmerica_Martinique, // 0x551e84c5, America/Martinique
    -
    152  &kZoneAmerica_Jamaica, // 0x565dad6c, America/Jamaica
    -
    153  &kZoneAsia_Hong_Kong, // 0x577f28ac, Asia/Hong_Kong
    -
    154  &kZonePacific_Marquesas, // 0x57ca7135, Pacific/Marquesas
    -
    155  &kZoneAmerica_Miquelon, // 0x59674330, America/Miquelon
    -
    156  &kZoneAmerica_Anchorage, // 0x5a79260e, America/Anchorage
    -
    157  &kZoneAsia_Jerusalem, // 0x5becd23a, Asia/Jerusalem
    -
    158  &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon
    -
    159  &kZoneAtlantic_Cape_Verde, // 0x5c5e1772, Atlantic/Cape_Verde
    -
    160  &kZoneEurope_London, // 0x5c6a84ae, Europe/London
    -
    161  &kZoneEurope_Madrid, // 0x5dbd1535, Europe/Madrid
    -
    162  &kZoneAmerica_Moncton, // 0x5e07fe24, America/Moncton
    -
    163  &kZonePacific_Pago_Pago, // 0x603aebd0, Pacific/Pago_Pago
    -
    164  &kZoneAmerica_Costa_Rica, // 0x63ff66be, America/Costa_Rica
    -
    165  &kZoneEurope_Prague, // 0x65ee5d48, Europe/Prague
    -
    166  &kZoneAmerica_Puerto_Rico, // 0x6752ca31, America/Puerto_Rico
    -
    167  &kZoneAsia_Makassar, // 0x6aa21c85, Asia/Makassar
    -
    168  &kZoneEurope_Helsinki, // 0x6ab2975b, Europe/Helsinki
    -
    169  &kZoneAmerica_Porto_Velho, // 0x6b1aac77, America/Porto_Velho
    -
    170  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    171  &kZoneAmerica_Dawson_Creek, // 0x6cf24e5b, America/Dawson_Creek
    -
    172  &kZoneEurope_Tirane, // 0x6ea95b47, Europe/Tirane
    -
    173  &kZoneAsia_Kolkata, // 0x72c06cd9, Asia/Kolkata
    -
    174  &kZoneEurope_Vienna, // 0x734cc2e5, Europe/Vienna
    -
    175  &kZoneAmerica_Santiago, // 0x7410c9bc, America/Santiago
    -
    176  &kZoneEurope_Warsaw, // 0x75185c19, Europe/Warsaw
    -
    177  &kZoneAmerica_El_Salvador, // 0x752ad652, America/El_Salvador
    -
    178  &kZoneAfrica_Bissau, // 0x75564141, Africa/Bissau
    -
    179  &kZoneAfrica_Ceuta, // 0x77fb46ec, Africa/Ceuta
    -
    180  &kZoneAfrica_Lagos, // 0x789bb5d0, Africa/Lagos
    -
    181  &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek
    -
    182  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    183  &kZoneAfrica_Tunis, // 0x79378e6d, Africa/Tunis
    -
    184  &kZoneIndian_Mauritius, // 0x7b09c02a, Indian/Mauritius
    -
    185  &kZoneEurope_Zurich, // 0x7d8195b9, Europe/Zurich
    -
    186  &kZoneAsia_Kuching, // 0x801b003b, Asia/Kuching
    -
    187  &kZoneAtlantic_Madeira, // 0x81b5c037, Atlantic/Madeira
    -
    188  &kZonePacific_Kiritimati, // 0x8305073a, Pacific/Kiritimati
    -
    189  &kZonePacific_Pitcairn, // 0x8837d8bd, Pacific/Pitcairn
    -
    190  &kZonePacific_Efate, // 0x8a2bce28, Pacific/Efate
    -
    191  &kZonePacific_Nauru, // 0x8acc41ae, Pacific/Nauru
    -
    192  &kZonePacific_Palau, // 0x8af04a36, Pacific/Palau
    -
    193  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    194  &kZoneAustralia_Eucla, // 0x8cf99e44, Australia/Eucla
    -
    195  &kZoneAustralia_Perth, // 0x8db8269d, Australia/Perth
    -
    196  &kZonePacific_Kwajalein, // 0x8e216759, Pacific/Kwajalein
    -
    197  &kZoneAmerica_Port_au_Prince, // 0x8e4a7bdc, America/Port-au-Prince
    -
    198  &kZoneAfrica_Maputo, // 0x8e6ca1f0, Africa/Maputo
    -
    199  &kZoneAsia_Yerevan, // 0x9185c8cc, Asia/Yerevan
    -
    200  &kZoneAmerica_Detroit, // 0x925cfbc1, America/Detroit
    -
    201  &kZoneAmerica_Belize, // 0x93256c81, America/Belize
    -
    202  &kZoneAmerica_Bogota, // 0x93d7bc62, America/Bogota
    -
    203  &kZoneAmerica_Glace_Bay, // 0x9681f8dd, America/Glace_Bay
    -
    204  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    205  &kZoneAmerica_Belem, // 0x97da580b, America/Belem
    -
    206  &kZoneAmerica_Boise, // 0x97dfc8d8, America/Boise
    -
    207  &kZoneEurope_Andorra, // 0x97f6764b, Europe/Andorra
    -
    208  &kZoneAmerica_Adak, // 0x97fe49d7, America/Adak
    -
    209  &kZoneAmerica_Lima, // 0x980468c9, America/Lima
    -
    210  &kZoneAmerica_Nome, // 0x98059b15, America/Nome
    -
    211  &kZoneIndian_Maldives, // 0x9869681c, Indian/Maldives
    -
    212  &kZoneAmerica_Sitka, // 0x99104ce2, America/Sitka
    -
    213  &kZoneAmerica_Thule, // 0x9921dd68, America/Thule
    -
    214  &kZonePacific_Rarotonga, // 0x9981a3b0, Pacific/Rarotonga
    -
    215  &kZoneAsia_Kathmandu, // 0x9a96ce6f, Asia/Kathmandu
    -
    216  &kZoneEurope_Budapest, // 0x9ce0197c, Europe/Budapest
    -
    217  &kZoneAsia_Baghdad, // 0x9ceffbed, Asia/Baghdad
    -
    218  &kZoneEtc_GMT_PLUS_1, // 0x9d13da14, Etc/GMT+1
    -
    219  &kZoneEtc_GMT_PLUS_2, // 0x9d13da15, Etc/GMT+2
    -
    220  &kZoneEtc_GMT_PLUS_3, // 0x9d13da16, Etc/GMT+3
    -
    221  &kZoneEtc_GMT_PLUS_4, // 0x9d13da17, Etc/GMT+4
    -
    222  &kZoneEtc_GMT_PLUS_5, // 0x9d13da18, Etc/GMT+5
    -
    223  &kZoneEtc_GMT_PLUS_6, // 0x9d13da19, Etc/GMT+6
    -
    224  &kZoneEtc_GMT_PLUS_7, // 0x9d13da1a, Etc/GMT+7
    -
    225  &kZoneEtc_GMT_PLUS_8, // 0x9d13da1b, Etc/GMT+8
    -
    226  &kZoneEtc_GMT_PLUS_9, // 0x9d13da1c, Etc/GMT+9
    -
    227  &kZoneEtc_GMT_1, // 0x9d13da56, Etc/GMT-1
    -
    228  &kZoneEtc_GMT_2, // 0x9d13da57, Etc/GMT-2
    -
    229  &kZoneEtc_GMT_3, // 0x9d13da58, Etc/GMT-3
    -
    230  &kZoneEtc_GMT_4, // 0x9d13da59, Etc/GMT-4
    -
    231  &kZoneEtc_GMT_5, // 0x9d13da5a, Etc/GMT-5
    -
    232  &kZoneEtc_GMT_6, // 0x9d13da5b, Etc/GMT-6
    -
    233  &kZoneEtc_GMT_7, // 0x9d13da5c, Etc/GMT-7
    -
    234  &kZoneEtc_GMT_8, // 0x9d13da5d, Etc/GMT-8
    -
    235  &kZoneEtc_GMT_9, // 0x9d13da5e, Etc/GMT-9
    -
    236  &kZoneAsia_Bangkok, // 0x9d6e3aaf, Asia/Bangkok
    -
    237  &kZoneAmerica_North_Dakota_Center, // 0x9da42814, America/North_Dakota/Center
    -
    238  &kZoneAfrica_Ndjamena, // 0x9fe09898, Africa/Ndjamena
    -
    239  &kZoneAmerica_Guyana, // 0x9ff7bd0b, America/Guyana
    -
    240  &kZoneAmerica_Havana, // 0xa0e15675, America/Havana
    -
    241  &kZoneEurope_Kyiv, // 0xa2c1e347, Europe/Kyiv
    -
    242  &kZoneEurope_Rome, // 0xa2c58fd7, Europe/Rome
    -
    243  &kZoneAmerica_Inuvik, // 0xa42189fc, America/Inuvik
    -
    244  &kZoneAmerica_Juneau, // 0xa6f13e2e, America/Juneau
    -
    245  &kZoneAustralia_Lord_Howe, // 0xa748b67d, Australia/Lord_Howe
    -
    246  &kZonePacific_Port_Moresby, // 0xa7ba7f68, Pacific/Port_Moresby
    -
    247  &kZoneAsia_Beirut, // 0xa7f3d5fd, Asia/Beirut
    -
    248  &kZoneAfrica_Nairobi, // 0xa87ab57e, Africa/Nairobi
    -
    249  &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos
    -
    250  &kZoneAmerica_La_Paz, // 0xaa29125d, America/La_Paz
    -
    251  &kZoneAmerica_Manaus, // 0xac86bf8b, America/Manaus
    -
    252  &kZoneAmerica_Merida, // 0xacd172d8, America/Merida
    -
    253  &kZoneEurope_Chisinau, // 0xad58aa18, Europe/Chisinau
    -
    254  &kZoneAustralia_Broken_Hill, // 0xb06eada3, Australia/Broken_Hill
    -
    255  &kZoneAmerica_Paramaribo, // 0xb319e4c4, America/Paramaribo
    -
    256  &kZoneAmerica_Panama, // 0xb3863854, America/Panama
    -
    257  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    258  &kZoneAmerica_Regina, // 0xb875371c, America/Regina
    -
    259  &kZoneAsia_Ashgabat, // 0xba87598d, Asia/Ashgabat
    -
    260  &kZoneAmerica_Halifax, // 0xbc5b7183, America/Halifax
    -
    261  &kZoneAmerica_Tegucigalpa, // 0xbfd6fd4c, America/Tegucigalpa
    -
    262  &kZoneAsia_Manila, // 0xc156c944, Asia/Manila
    -
    263  &kZoneAfrica_Abidjan, // 0xc21305a3, Africa/Abidjan
    -
    264  &kZoneAsia_Jayapura, // 0xc6833c2f, Asia/Jayapura
    -
    265  &kZoneAmerica_Barbados, // 0xcbbc3b04, America/Barbados
    -
    266  &kZoneAsia_Riyadh, // 0xcd973d93, Asia/Riyadh
    -
    267  &kZonePacific_Easter, // 0xcf54f7e7, Pacific/Easter
    -
    268  &kZoneAsia_Singapore, // 0xcf8581fa, Asia/Singapore
    -
    269  &kZoneAsia_Taipei, // 0xd1a844ae, Asia/Taipei
    -
    270  &kZoneAsia_Tehran, // 0xd1f02254, Asia/Tehran
    -
    271  &kZoneAsia_Urumqi, // 0xd5379735, Asia/Urumqi
    -
    272  &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg
    -
    273  &kZoneEtc_GMT, // 0xd8e2de58, Etc/GMT
    -
    274  &kZoneEtc_UTC, // 0xd8e31abc, Etc/UTC
    -
    275  &kZoneAmerica_Yakutat, // 0xd8ee31e9, America/Yakutat
    -
    276  &kZoneAfrica_Algiers, // 0xd94515c1, Africa/Algiers
    -
    277  &kZoneAmerica_Matamoros, // 0xdd1b0259, America/Matamoros
    -
    278  &kZonePacific_Kanton, // 0xdd512f0e, Pacific/Kanton
    -
    279  &kZoneAsia_Yangon, // 0xdd54a8be, Asia/Yangon
    -
    280  &kZonePacific_Kosrae, // 0xde5139a8, Pacific/Kosrae
    -
    281  &kZoneEurope_Brussels, // 0xdee07337, Europe/Brussels
    -
    282  &kZoneAmerica_Swift_Current, // 0xdef98e55, America/Swift_Current
    -
    283  &kZoneAustralia_Lindeman, // 0xe05029e2, Australia/Lindeman
    -
    284  &kZoneEurope_Belgrade, // 0xe0532b3a, Europe/Belgrade
    -
    285  &kZoneAmerica_Menominee, // 0xe0e9c583, America/Menominee
    -
    286  &kZoneAtlantic_Faroe, // 0xe110a971, Atlantic/Faroe
    -
    287  &kZonePacific_Noumea, // 0xe551b788, Pacific/Noumea
    -
    288  &kZonePacific_Honolulu, // 0xe6e70af9, Pacific/Honolulu
    -
    289  &kZonePacific_Tahiti, // 0xf24c2446, Pacific/Tahiti
    -
    290  &kZonePacific_Tarawa, // 0xf2517e63, Pacific/Tarawa
    -
    291  &kZoneAsia_Tashkent, // 0xf3924254, Asia/Tashkent
    -
    292  &kZonePacific_Guadalcanal, // 0xf4dd25f0, Pacific/Guadalcanal
    -
    293  &kZoneAmerica_Danmarkshavn, // 0xf554d204, America/Danmarkshavn
    -
    294  &kZoneAsia_Shanghai, // 0xf895a7f5, Asia/Shanghai
    -
    295  &kZoneEurope_Gibraltar, // 0xf8e325fc, Europe/Gibraltar
    -
    296  &kZoneAtlantic_Azores, // 0xf93ed918, Atlantic/Azores
    -
    297  &kZoneAmerica_Montevideo, // 0xfa214780, America/Montevideo
    -
    298  &kZoneEurope_Malta, // 0xfb1560f3, Europe/Malta
    -
    299  &kZoneEurope_Bucharest, // 0xfb349ec5, Europe/Bucharest
    -
    300  &kZoneEurope_Paris, // 0xfb4bc2a3, Europe/Paris
    -
    301  &kZoneEurope_Sofia, // 0xfb898656, Europe/Sofia
    -
    302  &kZoneAtlantic_Canary, // 0xfc23f2c2, Atlantic/Canary
    -
    303  &kZoneAmerica_Campo_Grande, // 0xfec3e7a6, America/Campo_Grande
    -
    304 
    -
    305 };
    -
    306 
    -
    307 //---------------------------------------------------------------------------
    -
    308 // Zone and Link (fat) Info registry. Sorted by zoneId. Links act like Zones.
    -
    309 //---------------------------------------------------------------------------
    -
    310 const basic::Info::ZoneInfo* const kZoneAndLinkRegistry[446] ACE_TIME_PROGMEM = {
    -
    311  &kZoneGB, // 0x005973ae, GB -> Europe/London
    -
    312  &kZoneNZ, // 0x005974ad, NZ -> Pacific/Auckland
    -
    313  &kZoneAsia_Kuala_Lumpur, // 0x014763c4, Asia/Kuala_Lumpur -> Asia/Singapore
    -
    314  &kZoneAfrica_Libreville, // 0x01d96de4, Africa/Libreville -> Africa/Lagos
    -
    315  &kZoneIndian_Cocos, // 0x021e86de, Indian/Cocos -> Asia/Yangon
    -
    316  &kZoneAustralia_Victoria, // 0x0260d5db, Australia/Victoria -> Australia/Melbourne
    -
    317  &kZoneAtlantic_Faeroe, // 0x031ec516, Atlantic/Faeroe -> Atlantic/Faroe
    -
    318  &kZoneAmerica_St_Kitts, // 0x04c0507b, America/St_Kitts -> America/Puerto_Rico
    -
    319  &kZoneAfrica_Ouagadougou, // 0x04d7219a, Africa/Ouagadougou -> Africa/Abidjan
    -
    320  &kZoneAmerica_St_Lucia, // 0x04d8b3ba, America/St_Lucia -> America/Puerto_Rico
    -
    321  &kZoneAsia_Jakarta, // 0x0506ab50, Asia/Jakarta
    -
    322  &kZoneAfrica_Bujumbura, // 0x05232a47, Africa/Bujumbura -> Africa/Maputo
    -
    323  &kZoneAmerica_Mazatlan, // 0x0532189e, America/Mazatlan
    -
    324  &kZoneAmerica_St_Barthelemy, // 0x054e6a79, America/St_Barthelemy -> America/Puerto_Rico
    -
    325  &kZoneAfrica_Addis_Ababa, // 0x05ae1e65, Africa/Addis_Ababa -> Africa/Nairobi
    -
    326  &kZoneAmerica_Hermosillo, // 0x065d21c4, America/Hermosillo
    -
    327  &kZoneMexico_BajaSur, // 0x08ee3641, Mexico/BajaSur -> America/Mazatlan
    -
    328  &kZoneUS_Hawaii, // 0x09c8de2f, US/Hawaii -> Pacific/Honolulu
    -
    329  &kZoneCET, // 0x0b87d921, CET -> Europe/Brussels
    -
    330  &kZoneEET, // 0x0b87e1a3, EET -> Europe/Athens
    -
    331  &kZoneEST, // 0x0b87e371, EST -> America/Panama
    -
    332  &kZoneGMT, // 0x0b87eb2d, GMT -> Etc/GMT
    -
    333  &kZoneHST, // 0x0b87f034, HST -> Pacific/Honolulu
    -
    334  &kZoneMET, // 0x0b8803ab, MET -> Europe/Brussels
    -
    335  &kZoneMST, // 0x0b880579, MST -> America/Phoenix
    -
    336  &kZonePRC, // 0x0b88120a, PRC -> Asia/Shanghai
    -
    337  &kZoneROC, // 0x0b881a29, ROC -> Asia/Taipei
    -
    338  &kZoneROK, // 0x0b881a31, ROK -> Asia/Seoul
    -
    339  &kZoneUCT, // 0x0b882571, UCT -> Etc/UTC
    -
    340  &kZoneUTC, // 0x0b882791, UTC -> Etc/UTC
    -
    341  &kZoneWET, // 0x0b882e35, WET -> Europe/Lisbon
    -
    342  &kZoneAmerica_Guatemala, // 0x0c8259f7, America/Guatemala
    -
    343  &kZoneEurope_Mariehamn, // 0x0caa6496, Europe/Mariehamn -> Europe/Helsinki
    -
    344  &kZoneAfrica_Monrovia, // 0x0ce90385, Africa/Monrovia
    -
    345  &kZoneGMT_PLUS_0, // 0x0d2f7028, GMT+0 -> Etc/GMT
    -
    346  &kZoneGMT_0, // 0x0d2f706a, GMT-0 -> Etc/GMT
    -
    347  &kZoneJapan, // 0x0d712f8f, Japan -> Asia/Tokyo
    -
    348  &kZoneKwajalein, // 0x0e57afbb, Kwajalein -> Pacific/Kwajalein
    -
    349  &kZoneAntarctica_Rothera, // 0x0e86d203, Antarctica/Rothera
    -
    350  &kZoneAmerica_Yellowknife, // 0x0f76c76f, America/Yellowknife -> America/Edmonton
    -
    351  &kZoneAustralia_Melbourne, // 0x0fe559a3, Australia/Melbourne
    -
    352  &kZoneAmerica_Sao_Paulo, // 0x1063bfc9, America/Sao_Paulo
    -
    353  &kZoneEurope_Amsterdam, // 0x109395c2, Europe/Amsterdam -> Europe/Brussels
    -
    354  &kZoneAmerica_Indiana_Vevay, // 0x10aca054, America/Indiana/Vevay
    -
    355  &kZoneAsia_Samarkand, // 0x13ae5104, Asia/Samarkand
    -
    356  &kZoneAsia_Dacca, // 0x14bcac5e, Asia/Dacca -> Asia/Dhaka
    -
    357  &kZoneAsia_Dhaka, // 0x14c07b8b, Asia/Dhaka
    -
    358  &kZoneAsia_Dubai, // 0x14c79f77, Asia/Dubai
    -
    359  &kZoneAsia_Kabul, // 0x153b5601, Asia/Kabul
    -
    360  &kZoneAsia_Ashkhabad, // 0x15454f09, Asia/Ashkhabad -> Asia/Ashgabat
    -
    361  &kZoneAsia_Macao, // 0x155f88b3, Asia/Macao -> Asia/Macau
    -
    362  &kZoneAsia_Macau, // 0x155f88b9, Asia/Macau
    -
    363  &kZoneAsia_Qatar, // 0x15a8330b, Asia/Qatar
    -
    364  &kZoneAsia_Seoul, // 0x15ce82da, Asia/Seoul
    -
    365  &kZoneAsia_Tokyo, // 0x15e606a8, Asia/Tokyo
    -
    366  &kZoneAsia_Tel_Aviv, // 0x166d7c2c, Asia/Tel_Aviv -> Asia/Jerusalem
    -
    367  &kZoneAsia_Thimphu, // 0x170380d1, Asia/Thimphu
    -
    368  &kZoneAmerica_Guayaquil, // 0x17e64958, America/Guayaquil
    -
    369  &kZoneAmerica_Montserrat, // 0x199b0a35, America/Montserrat -> America/Puerto_Rico
    -
    370  &kZoneAmerica_Kentucky_Louisville, // 0x1a21024b, America/Kentucky/Louisville
    -
    371  &kZoneAsia_Pontianak, // 0x1a76c057, Asia/Pontianak
    -
    372  &kZoneEurope_Podgorica, // 0x1c1a499c, Europe/Podgorica -> Europe/Belgrade
    -
    373  &kZoneAtlantic_Reykjavik, // 0x1c2b4f74, Atlantic/Reykjavik -> Africa/Abidjan
    -
    374  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    375  &kZoneEurope_Luxembourg, // 0x1f8bc6ce, Europe/Luxembourg -> Europe/Brussels
    -
    376  &kZoneAsia_Aden, // 0x1fa7084a, Asia/Aden -> Asia/Riyadh
    -
    377  &kZoneAsia_Baku, // 0x1fa788b5, Asia/Baku
    -
    378  &kZoneAsia_Hovd, // 0x1fab0fe3, Asia/Hovd
    -
    379  &kZoneAmerica_Montreal, // 0x203a1ea8, America/Montreal -> America/Toronto
    -
    380  &kZoneAsia_Ho_Chi_Minh, // 0x20f2d127, Asia/Ho_Chi_Minh
    -
    381  &kZonePacific_Fiji, // 0x23383ba5, Pacific/Fiji
    -
    382  &kZonePacific_Niue, // 0x233ca014, Pacific/Niue
    -
    383  &kZonePacific_Truk, // 0x234010a9, Pacific/Truk -> Pacific/Port_Moresby
    -
    384  &kZonePacific_Wake, // 0x23416c2b, Pacific/Wake -> Pacific/Tarawa
    -
    385  &kZoneAustralia_Adelaide, // 0x2428e8a3, Australia/Adelaide
    -
    386  &kZonePacific_Auckland, // 0x25062f86, Pacific/Auckland
    -
    387  &kZonePacific_Tongatapu, // 0x262ca836, Pacific/Tongatapu
    -
    388  &kZoneAmerica_Monterrey, // 0x269a1deb, America/Monterrey
    -
    389  &kZoneEtc_Greenwich, // 0x26daa98c, Etc/Greenwich -> Etc/GMT
    -
    390  &kZoneAustralia_Currie, // 0x278b6a24, Australia/Currie -> Australia/Hobart
    -
    391  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    392  &kZonePacific_Pohnpei, // 0x28929f96, Pacific/Pohnpei -> Pacific/Guadalcanal
    -
    393  &kZoneAmerica_Indiana_Indianapolis, // 0x28a669a4, America/Indiana/Indianapolis
    -
    394  &kZoneAustralia_Canberra, // 0x2a09ae58, Australia/Canberra -> Australia/Sydney
    -
    395  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    396  &kZoneJamaica, // 0x2e44fdab, Jamaica -> America/Jamaica
    -
    397  &kZonePacific_Chatham, // 0x2f0de999, Pacific/Chatham
    -
    398  &kZoneEtc_Universal, // 0x2f8cb9a9, Etc/Universal -> Etc/UTC
    -
    399  &kZoneAmerica_Indiana_Marengo, // 0x2feeee72, America/Indiana/Marengo
    -
    400  &kZoneAfrica_Djibouti, // 0x30ea01d4, Africa/Djibouti -> Africa/Nairobi
    -
    401  &kZoneAsia_Ulaanbaatar, // 0x30f0cc4e, Asia/Ulaanbaatar
    -
    402  &kZoneAfrica_Gaborone, // 0x317c0aa7, Africa/Gaborone -> Africa/Maputo
    -
    403  &kZoneAsia_Calcutta, // 0x328a44c3, Asia/Calcutta -> Asia/Kolkata
    -
    404  &kZoneAustralia_Hobart, // 0x32bf951a, Australia/Hobart
    -
    405  &kZoneAsia_Dushanbe, // 0x32fc5c3c, Asia/Dushanbe
    -
    406  &kZoneAtlantic_South_Georgia, // 0x33013174, Atlantic/South_Georgia
    -
    407  &kZoneAmerica_Phoenix, // 0x34b5af01, America/Phoenix
    -
    408  &kZoneAsia_Ulan_Bator, // 0x394db4d9, Asia/Ulan_Bator -> Asia/Ulaanbaatar
    -
    409  &kZoneAfrica_Brazzaville, // 0x39cda760, Africa/Brazzaville -> Africa/Lagos
    -
    410  &kZoneAmerica_Cayenne, // 0x3c617269, America/Cayenne
    -
    411  &kZoneAfrica_Porto_Novo, // 0x3d1bf95d, Africa/Porto-Novo -> Africa/Lagos
    -
    412  &kZoneAtlantic_Bermuda, // 0x3d4bb1c4, Atlantic/Bermuda
    -
    413  &kZoneAmerica_Managua, // 0x3d5e7600, America/Managua
    -
    414  &kZoneAmerica_Marigot, // 0x3dab3a59, America/Marigot -> America/Puerto_Rico
    -
    415  &kZoneEurope_Guernsey, // 0x3db12c16, Europe/Guernsey -> Europe/London
    -
    416  &kZoneAfrica_Nouakchott, // 0x3dc49dba, Africa/Nouakchott -> Africa/Abidjan
    -
    417  &kZoneAmerica_Louisville, // 0x3dcb47ee, America/Louisville -> America/Kentucky/Louisville
    -
    418  &kZoneEtc_GMT_PLUS_10, // 0x3f8f1cc4, Etc/GMT+10
    -
    419  &kZoneEtc_GMT_PLUS_11, // 0x3f8f1cc5, Etc/GMT+11
    -
    420  &kZoneEtc_GMT_PLUS_12, // 0x3f8f1cc6, Etc/GMT+12
    -
    421  &kZoneEtc_GMT_10, // 0x3f8f2546, Etc/GMT-10
    -
    422  &kZoneEtc_GMT_11, // 0x3f8f2547, Etc/GMT-11
    -
    423  &kZoneEtc_GMT_12, // 0x3f8f2548, Etc/GMT-12
    -
    424  &kZoneEtc_GMT_13, // 0x3f8f2549, Etc/GMT-13
    -
    425  &kZoneEtc_GMT_14, // 0x3f8f254a, Etc/GMT-14
    -
    426  &kZoneCanada_Pacific, // 0x40fa3c7b, Canada/Pacific -> America/Vancouver
    -
    427  &kZoneEurope_Athens, // 0x4318fa27, Europe/Athens
    -
    428  &kZoneIndian_Kerguelen, // 0x4351b389, Indian/Kerguelen -> Indian/Maldives
    -
    429  &kZoneEurope_Berlin, // 0x44644c20, Europe/Berlin
    -
    430  &kZoneAtlantic_St_Helena, // 0x451fc5f7, Atlantic/St_Helena -> Africa/Abidjan
    -
    431  &kZoneIndian_Chagos, // 0x456f7c3c, Indian/Chagos
    -
    432  &kZoneIndian_Mahe, // 0x45e725e2, Indian/Mahe -> Asia/Dubai
    -
    433  &kZoneIndian_Comoro, // 0x45f4deb6, Indian/Comoro -> Africa/Nairobi
    -
    434  &kZoneEurope_Dublin, // 0x4a275f62, Europe/Dublin
    -
    435  &kZoneAsia_Nicosia, // 0x4b0fcf78, Asia/Nicosia
    -
    436  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    437  &kZoneAustralia_Sydney, // 0x4d1e9776, Australia/Sydney
    -
    438  &kZoneNZ_CHAT, // 0x4d42afda, NZ-CHAT -> Pacific/Chatham
    -
    439  &kZoneUS_Arizona, // 0x4ec52670, US/Arizona -> America/Phoenix
    -
    440  &kZoneUS_Aleutian, // 0x4fe013ef, US/Aleutian -> America/Adak
    -
    441  &kZoneAustralia_Brisbane, // 0x4fedc9c0, Australia/Brisbane
    -
    442  &kZoneAsia_Karachi, // 0x527f5245, Asia/Karachi
    -
    443  &kZoneAsia_Kashgar, // 0x52955193, Asia/Kashgar -> Asia/Urumqi
    -
    444  &kZoneCanada_Atlantic, // 0x536b119c, Canada/Atlantic -> America/Halifax
    -
    445  &kZonePacific_Gambier, // 0x53720c3a, Pacific/Gambier
    -
    446  &kZoneAmerica_Martinique, // 0x551e84c5, America/Martinique
    -
    447  &kZoneAmerica_Jamaica, // 0x565dad6c, America/Jamaica
    -
    448  &kZoneUS_Samoa, // 0x566821cd, US/Samoa -> Pacific/Pago_Pago
    -
    449  &kZoneHongkong, // 0x56d36560, Hongkong -> Asia/Hong_Kong
    -
    450  &kZoneEurope_Jersey, // 0x570dae76, Europe/Jersey -> Europe/London
    -
    451  &kZoneAsia_Hong_Kong, // 0x577f28ac, Asia/Hong_Kong
    -
    452  &kZonePacific_Marquesas, // 0x57ca7135, Pacific/Marquesas
    -
    453  &kZoneAmerica_Miquelon, // 0x59674330, America/Miquelon
    -
    454  &kZoneAntarctica_DumontDUrville, // 0x5a3c656c, Antarctica/DumontDUrville -> Pacific/Port_Moresby
    -
    455  &kZoneAtlantic_Jan_Mayen, // 0x5a7535b6, Atlantic/Jan_Mayen -> Europe/Berlin
    -
    456  &kZoneAmerica_Anchorage, // 0x5a79260e, America/Anchorage
    -
    457  &kZoneUS_Eastern, // 0x5bb7e78e, US/Eastern -> America/New_York
    -
    458  &kZoneAsia_Jerusalem, // 0x5becd23a, Asia/Jerusalem
    -
    459  &kZoneEurope_Stockholm, // 0x5bf6fbb8, Europe/Stockholm -> Europe/Berlin
    -
    460  &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon
    -
    461  &kZoneAtlantic_Cape_Verde, // 0x5c5e1772, Atlantic/Cape_Verde
    -
    462  &kZoneEurope_London, // 0x5c6a84ae, Europe/London
    -
    463  &kZoneAsia_Ujung_Pandang, // 0x5d001eb3, Asia/Ujung_Pandang -> Asia/Makassar
    -
    464  &kZoneAfrica_Mbabane, // 0x5d3bdd40, Africa/Mbabane -> Africa/Johannesburg
    -
    465  &kZoneEurope_Madrid, // 0x5dbd1535, Europe/Madrid
    -
    466  &kZoneAmerica_Moncton, // 0x5e07fe24, America/Moncton
    -
    467  &kZoneEurope_Monaco, // 0x5ebf9f01, Europe/Monaco -> Europe/Paris
    -
    468  &kZonePacific_Pago_Pago, // 0x603aebd0, Pacific/Pago_Pago
    -
    469  &kZonePacific_Enderbury, // 0x61599a93, Pacific/Enderbury -> Pacific/Kanton
    -
    470  &kZoneCanada_Central, // 0x626710f5, Canada/Central -> America/Winnipeg
    -
    471  &kZoneAmerica_Creston, // 0x62a70204, America/Creston -> America/Phoenix
    -
    472  &kZoneAmerica_Costa_Rica, // 0x63ff66be, America/Costa_Rica
    -
    473  &kZoneEurope_Prague, // 0x65ee5d48, Europe/Prague
    -
    474  &kZoneBrazil_East, // 0x669578c5, Brazil/East -> America/Sao_Paulo
    -
    475  &kZoneAfrica_Kinshasa, // 0x6695d70c, Africa/Kinshasa -> Africa/Lagos
    -
    476  &kZoneBrazil_West, // 0x669f689b, Brazil/West -> America/Manaus
    -
    477  &kZoneAfrica_Mogadishu, // 0x66bc159b, Africa/Mogadishu -> Africa/Nairobi
    -
    478  &kZoneAmerica_Puerto_Rico, // 0x6752ca31, America/Puerto_Rico
    -
    479  &kZoneAfrica_Freetown, // 0x6823dd64, Africa/Freetown -> Africa/Abidjan
    -
    480  &kZoneIndian_Christmas, // 0x68c207d5, Indian/Christmas -> Asia/Bangkok
    -
    481  &kZoneAmerica_Indianapolis, // 0x6a009ae1, America/Indianapolis -> America/Indiana/Indianapolis
    -
    482  &kZoneEurope_Sarajevo, // 0x6a576c3f, Europe/Sarajevo -> Europe/Belgrade
    -
    483  &kZoneAmerica_Curacao, // 0x6a879184, America/Curacao -> America/Puerto_Rico
    -
    484  &kZoneAsia_Makassar, // 0x6aa21c85, Asia/Makassar
    -
    485  &kZoneEurope_Helsinki, // 0x6ab2975b, Europe/Helsinki
    -
    486  &kZoneAmerica_Lower_Princes, // 0x6ae45b62, America/Lower_Princes -> America/Puerto_Rico
    -
    487  &kZoneAmerica_Porto_Velho, // 0x6b1aac77, America/Porto_Velho
    -
    488  &kZoneEurope_Skopje, // 0x6c76fdd0, Europe/Skopje -> Europe/Belgrade
    -
    489  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    490  &kZoneAmerica_Dawson_Creek, // 0x6cf24e5b, America/Dawson_Creek
    -
    491  &kZoneAsia_Rangoon, // 0x6d1217c6, Asia/Rangoon -> Asia/Yangon
    -
    492  &kZoneUS_East_Indiana, // 0x6dcf558a, US/East-Indiana -> America/Indiana/Indianapolis
    -
    493  &kZoneAmerica_Blanc_Sablon, // 0x6e299892, America/Blanc-Sablon -> America/Puerto_Rico
    -
    494  &kZoneEurope_Tirane, // 0x6ea95b47, Europe/Tirane
    -
    495  &kZoneUS_Mountain, // 0x6eb88247, US/Mountain -> America/Denver
    -
    496  &kZoneAntarctica_McMurdo, // 0x6eeb5585, Antarctica/McMurdo -> Pacific/Auckland
    -
    497  &kZoneAfrica_Lubumbashi, // 0x6fd88566, Africa/Lubumbashi -> Africa/Maputo
    -
    498  &kZoneIndian_Reunion, // 0x7076c047, Indian/Reunion -> Asia/Dubai
    -
    499  &kZoneAsia_Kolkata, // 0x72c06cd9, Asia/Kolkata
    -
    500  &kZoneEurope_Vienna, // 0x734cc2e5, Europe/Vienna
    -
    501  &kZoneAfrica_Asmara, // 0x73b278ef, Africa/Asmara -> Africa/Nairobi
    -
    502  &kZoneAfrica_Asmera, // 0x73b289f3, Africa/Asmera -> Africa/Nairobi
    -
    503  &kZoneAmerica_Santiago, // 0x7410c9bc, America/Santiago
    -
    504  &kZoneAfrica_Bamako, // 0x74c1e7a5, Africa/Bamako -> Africa/Abidjan
    -
    505  &kZoneAfrica_Bangui, // 0x74c28ed0, Africa/Bangui -> Africa/Lagos
    -
    506  &kZoneAfrica_Banjul, // 0x74c29b96, Africa/Banjul -> Africa/Abidjan
    -
    507  &kZoneEurope_Nicosia, // 0x74efab8a, Europe/Nicosia -> Asia/Nicosia
    -
    508  &kZoneEurope_Warsaw, // 0x75185c19, Europe/Warsaw
    -
    509  &kZoneAmerica_El_Salvador, // 0x752ad652, America/El_Salvador
    -
    510  &kZoneAfrica_Bissau, // 0x75564141, Africa/Bissau
    -
    511  &kZoneUS_Michigan, // 0x766bb7bc, US/Michigan -> America/Detroit
    -
    512  &kZoneCanada_Saskatchewan, // 0x77311f49, Canada/Saskatchewan -> America/Regina
    -
    513  &kZoneAfrica_Accra, // 0x77d5b054, Africa/Accra -> Africa/Abidjan
    -
    514  &kZoneAfrica_Ceuta, // 0x77fb46ec, Africa/Ceuta
    -
    515  &kZoneAfrica_Dakar, // 0x780b00fd, Africa/Dakar -> Africa/Abidjan
    -
    516  &kZoneAfrica_Lagos, // 0x789bb5d0, Africa/Lagos
    -
    517  &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek
    -
    518  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    519  &kZoneAmerica_Tortola, // 0x7931462b, America/Tortola -> America/Puerto_Rico
    -
    520  &kZoneAfrica_Tunis, // 0x79378e6d, Africa/Tunis
    -
    521  &kZoneAfrica_Douala, // 0x7a6df310, Africa/Douala -> Africa/Lagos
    -
    522  &kZoneAfrica_Conakry, // 0x7ab36b31, Africa/Conakry -> Africa/Abidjan
    -
    523  &kZoneIndian_Mauritius, // 0x7b09c02a, Indian/Mauritius
    -
    524  &kZoneEurope_Zagreb, // 0x7c11c9ff, Europe/Zagreb -> Europe/Belgrade
    -
    525  &kZoneCuba, // 0x7c83cba0, Cuba -> America/Havana
    -
    526  &kZoneEire, // 0x7c84b36a, Eire -> Europe/Dublin
    -
    527  &kZoneGMT0, // 0x7c8550fd, GMT0 -> Etc/GMT
    -
    528  &kZoneIran, // 0x7c87090f, Iran -> Asia/Tehran
    -
    529  &kZoneZulu, // 0x7c9069b5, Zulu -> Etc/UTC
    -
    530  &kZoneEurope_Zurich, // 0x7d8195b9, Europe/Zurich
    -
    531  &kZoneChile_Continental, // 0x7e2bdb18, Chile/Continental -> America/Santiago
    -
    532  &kZoneAmerica_Fort_Wayne, // 0x7eaaaf24, America/Fort_Wayne -> America/Indiana/Indianapolis
    -
    533  &kZoneAsia_Kuching, // 0x801b003b, Asia/Kuching
    -
    534  &kZoneAtlantic_Madeira, // 0x81b5c037, Atlantic/Madeira
    -
    535  &kZoneAmerica_Atikokan, // 0x81b92098, America/Atikokan -> America/Panama
    -
    536  &kZoneAfrica_Harare, // 0x82c39a2d, Africa/Harare -> Africa/Maputo
    -
    537  &kZoneAmerica_Shiprock, // 0x82fb7049, America/Shiprock -> America/Denver
    -
    538  &kZonePacific_Kiritimati, // 0x8305073a, Pacific/Kiritimati
    -
    539  &kZoneAmerica_St_Vincent, // 0x8460e523, America/St_Vincent -> America/Puerto_Rico
    -
    540  &kZonePacific_Pitcairn, // 0x8837d8bd, Pacific/Pitcairn
    -
    541  &kZoneAsia_Vientiane, // 0x89d68d75, Asia/Vientiane -> Asia/Bangkok
    -
    542  &kZonePacific_Chuuk, // 0x8a090b23, Pacific/Chuuk -> Pacific/Port_Moresby
    -
    543  &kZonePacific_Efate, // 0x8a2bce28, Pacific/Efate
    -
    544  &kZoneAfrica_Kigali, // 0x8a4dcf2b, Africa/Kigali -> Africa/Maputo
    -
    545  &kZoneAustralia_ACT, // 0x8a970eb2, Australia/ACT -> Australia/Sydney
    -
    546  &kZoneAustralia_LHI, // 0x8a973e17, Australia/LHI -> Australia/Lord_Howe
    -
    547  &kZoneAustralia_NSW, // 0x8a974812, Australia/NSW -> Australia/Sydney
    -
    548  &kZonePacific_Nauru, // 0x8acc41ae, Pacific/Nauru
    -
    549  &kZoneEST5EDT, // 0x8adc72a3, EST5EDT -> America/New_York
    -
    550  &kZonePacific_Palau, // 0x8af04a36, Pacific/Palau
    -
    551  &kZonePacific_Samoa, // 0x8b2699b4, Pacific/Samoa -> Pacific/Pago_Pago
    -
    552  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    553  &kZoneAustralia_Eucla, // 0x8cf99e44, Australia/Eucla
    -
    554  &kZoneAfrica_Luanda, // 0x8d7909cf, Africa/Luanda -> Africa/Lagos
    -
    555  &kZoneAfrica_Lusaka, // 0x8d82b23b, Africa/Lusaka -> Africa/Maputo
    -
    556  &kZoneAustralia_North, // 0x8d997165, Australia/North -> Australia/Darwin
    -
    557  &kZoneAustralia_Perth, // 0x8db8269d, Australia/Perth
    -
    558  &kZoneAustralia_South, // 0x8df3f8ad, Australia/South -> Australia/Adelaide
    -
    559  &kZonePacific_Kwajalein, // 0x8e216759, Pacific/Kwajalein
    -
    560  &kZoneAmerica_Port_au_Prince, // 0x8e4a7bdc, America/Port-au-Prince
    -
    561  &kZoneAfrica_Malabo, // 0x8e6a1906, Africa/Malabo -> Africa/Lagos
    -
    562  &kZoneAfrica_Maputo, // 0x8e6ca1f0, Africa/Maputo
    -
    563  &kZoneAfrica_Maseru, // 0x8e6e02c7, Africa/Maseru -> Africa/Johannesburg
    -
    564  &kZoneAustralia_Yancowinna, // 0x90bac131, Australia/Yancowinna -> Australia/Broken_Hill
    -
    565  &kZoneAfrica_Niamey, // 0x914a30fd, Africa/Niamey -> Africa/Lagos
    -
    566  &kZoneAsia_Yerevan, // 0x9185c8cc, Asia/Yerevan
    -
    567  &kZoneAmerica_Detroit, // 0x925cfbc1, America/Detroit
    -
    568  &kZoneAsia_Choibalsan, // 0x928aa4a6, Asia/Choibalsan -> Asia/Ulaanbaatar
    -
    569  &kZoneAmerica_Belize, // 0x93256c81, America/Belize
    -
    570  &kZoneAmerica_Bogota, // 0x93d7bc62, America/Bogota
    -
    571  &kZoneAmerica_Cayman, // 0x953961df, America/Cayman -> America/Panama
    -
    572  &kZoneAmerica_Glace_Bay, // 0x9681f8dd, America/Glace_Bay
    -
    573  &kZoneAmerica_Grenada, // 0x968ce4d8, America/Grenada -> America/Puerto_Rico
    -
    574  &kZoneAmerica_Aruba, // 0x97cf8651, America/Aruba -> America/Puerto_Rico
    -
    575  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    576  &kZoneAmerica_Belem, // 0x97da580b, America/Belem
    -
    577  &kZoneAmerica_Boise, // 0x97dfc8d8, America/Boise
    -
    578  &kZoneEurope_Andorra, // 0x97f6764b, Europe/Andorra
    -
    579  &kZoneAmerica_Adak, // 0x97fe49d7, America/Adak
    -
    580  &kZoneAmerica_Atka, // 0x97fe8f27, America/Atka -> America/Adak
    -
    581  &kZoneAmerica_Lima, // 0x980468c9, America/Lima
    -
    582  &kZoneAmerica_Nome, // 0x98059b15, America/Nome
    -
    583  &kZoneIndian_Maldives, // 0x9869681c, Indian/Maldives
    -
    584  &kZoneAmerica_Sitka, // 0x99104ce2, America/Sitka
    -
    585  &kZoneAmerica_Thule, // 0x9921dd68, America/Thule
    -
    586  &kZonePacific_Rarotonga, // 0x9981a3b0, Pacific/Rarotonga
    -
    587  &kZoneAsia_Kathmandu, // 0x9a96ce6f, Asia/Kathmandu
    -
    588  &kZoneAmerica_Rainy_River, // 0x9cd58a10, America/Rainy_River -> America/Winnipeg
    -
    589  &kZoneEurope_Budapest, // 0x9ce0197c, Europe/Budapest
    -
    590  &kZoneAsia_Baghdad, // 0x9ceffbed, Asia/Baghdad
    -
    591  &kZoneAsia_Bahrain, // 0x9d078487, Asia/Bahrain -> Asia/Qatar
    -
    592  &kZoneEtc_GMT_PLUS_0, // 0x9d13da13, Etc/GMT+0 -> Etc/GMT
    -
    593  &kZoneEtc_GMT_PLUS_1, // 0x9d13da14, Etc/GMT+1
    -
    594  &kZoneEtc_GMT_PLUS_2, // 0x9d13da15, Etc/GMT+2
    -
    595  &kZoneEtc_GMT_PLUS_3, // 0x9d13da16, Etc/GMT+3
    -
    596  &kZoneEtc_GMT_PLUS_4, // 0x9d13da17, Etc/GMT+4
    -
    597  &kZoneEtc_GMT_PLUS_5, // 0x9d13da18, Etc/GMT+5
    -
    598  &kZoneEtc_GMT_PLUS_6, // 0x9d13da19, Etc/GMT+6
    -
    599  &kZoneEtc_GMT_PLUS_7, // 0x9d13da1a, Etc/GMT+7
    -
    600  &kZoneEtc_GMT_PLUS_8, // 0x9d13da1b, Etc/GMT+8
    -
    601  &kZoneEtc_GMT_PLUS_9, // 0x9d13da1c, Etc/GMT+9
    -
    602  &kZoneEtc_GMT_0, // 0x9d13da55, Etc/GMT-0 -> Etc/GMT
    -
    603  &kZoneEtc_GMT_1, // 0x9d13da56, Etc/GMT-1
    -
    604  &kZoneEtc_GMT_2, // 0x9d13da57, Etc/GMT-2
    -
    605  &kZoneEtc_GMT_3, // 0x9d13da58, Etc/GMT-3
    -
    606  &kZoneEtc_GMT_4, // 0x9d13da59, Etc/GMT-4
    -
    607  &kZoneEtc_GMT_5, // 0x9d13da5a, Etc/GMT-5
    -
    608  &kZoneEtc_GMT_6, // 0x9d13da5b, Etc/GMT-6
    -
    609  &kZoneEtc_GMT_7, // 0x9d13da5c, Etc/GMT-7
    -
    610  &kZoneEtc_GMT_8, // 0x9d13da5d, Etc/GMT-8
    -
    611  &kZoneEtc_GMT_9, // 0x9d13da5e, Etc/GMT-9
    -
    612  &kZoneAmerica_Nipigon, // 0x9d2a8b1a, America/Nipigon -> America/Toronto
    -
    613  &kZoneAsia_Bangkok, // 0x9d6e3aaf, Asia/Bangkok
    -
    614  &kZoneAmerica_North_Dakota_Center, // 0x9da42814, America/North_Dakota/Center
    -
    615  &kZoneIndian_Antananarivo, // 0x9ebf5289, Indian/Antananarivo -> Africa/Nairobi
    -
    616  &kZoneAfrica_Ndjamena, // 0x9fe09898, Africa/Ndjamena
    -
    617  &kZoneAmerica_Guyana, // 0x9ff7bd0b, America/Guyana
    -
    618  &kZoneAfrica_Dar_es_Salaam, // 0xa04c47b6, Africa/Dar_es_Salaam -> Africa/Nairobi
    -
    619  &kZoneAmerica_Havana, // 0xa0e15675, America/Havana
    -
    620  &kZoneEurope_Kiev, // 0xa2c19eb3, Europe/Kiev -> Europe/Kyiv
    -
    621  &kZoneEurope_Kyiv, // 0xa2c1e347, Europe/Kyiv
    -
    622  &kZoneEurope_Oslo, // 0xa2c3fba1, Europe/Oslo -> Europe/Berlin
    -
    623  &kZoneEurope_Rome, // 0xa2c58fd7, Europe/Rome
    -
    624  &kZoneAmerica_Inuvik, // 0xa42189fc, America/Inuvik
    -
    625  &kZoneAmerica_Juneau, // 0xa6f13e2e, America/Juneau
    -
    626  &kZoneAustralia_Lord_Howe, // 0xa748b67d, Australia/Lord_Howe
    -
    627  &kZonePacific_Port_Moresby, // 0xa7ba7f68, Pacific/Port_Moresby
    -
    628  &kZoneAsia_Katmandu, // 0xa7ec12c7, Asia/Katmandu -> Asia/Kathmandu
    -
    629  &kZoneAsia_Beirut, // 0xa7f3d5fd, Asia/Beirut
    -
    630  &kZoneSingapore, // 0xa8598c8d, Singapore -> Asia/Singapore
    -
    631  &kZoneAfrica_Nairobi, // 0xa87ab57e, Africa/Nairobi
    -
    632  &kZoneAsia_Brunei, // 0xa8e595f7, Asia/Brunei -> Asia/Kuching
    -
    633  &kZoneUS_Pacific, // 0xa950f6ab, US/Pacific -> America/Los_Angeles
    -
    634  &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos
    -
    635  &kZoneAmerica_La_Paz, // 0xaa29125d, America/La_Paz
    -
    636  &kZoneAmerica_Coral_Harbour, // 0xabcb7569, America/Coral_Harbour -> America/Panama
    -
    637  &kZoneAmerica_Manaus, // 0xac86bf8b, America/Manaus
    -
    638  &kZoneAmerica_Merida, // 0xacd172d8, America/Merida
    -
    639  &kZoneEurope_Chisinau, // 0xad58aa18, Europe/Chisinau
    -
    640  &kZoneAmerica_Nassau, // 0xaedef011, America/Nassau -> America/Toronto
    -
    641  &kZoneAmerica_Anguilla, // 0xafe31333, America/Anguilla -> America/Puerto_Rico
    -
    642  &kZoneEurope_Uzhgorod, // 0xb066f5d6, Europe/Uzhgorod -> Europe/Kyiv
    -
    643  &kZoneAustralia_Broken_Hill, // 0xb06eada3, Australia/Broken_Hill
    -
    644  &kZoneChile_EasterIsland, // 0xb0982af8, Chile/EasterIsland -> Pacific/Easter
    -
    645  &kZonePacific_Johnston, // 0xb15d7b36, Pacific/Johnston -> Pacific/Honolulu
    -
    646  &kZoneAfrica_Timbuktu, // 0xb164d56f, Africa/Timbuktu -> Africa/Abidjan
    -
    647  &kZoneAmerica_St_Thomas, // 0xb1b3d778, America/St_Thomas -> America/Puerto_Rico
    -
    648  &kZoneAmerica_Paramaribo, // 0xb319e4c4, America/Paramaribo
    -
    649  &kZoneAmerica_Panama, // 0xb3863854, America/Panama
    -
    650  &kZoneAsia_Harbin, // 0xb5af1186, Asia/Harbin -> Asia/Shanghai
    -
    651  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    652  &kZoneAmerica_Regina, // 0xb875371c, America/Regina
    -
    653  &kZoneAsia_Ashgabat, // 0xba87598d, Asia/Ashgabat
    -
    654  &kZoneIsrael, // 0xba88c9e5, Israel -> Asia/Jerusalem
    -
    655  &kZonePacific_Yap, // 0xbb40138d, Pacific/Yap -> Pacific/Port_Moresby
    -
    656  &kZoneAmerica_Halifax, // 0xbc5b7183, America/Halifax
    -
    657  &kZoneEurope_Ljubljana, // 0xbd98cdb7, Europe/Ljubljana -> Europe/Belgrade
    -
    658  &kZoneAsia_Kuwait, // 0xbe1b2f27, Asia/Kuwait -> Asia/Riyadh
    -
    659  &kZoneEurope_Tiraspol, // 0xbe704472, Europe/Tiraspol -> Europe/Chisinau
    -
    660  &kZoneAmerica_Tegucigalpa, // 0xbfd6fd4c, America/Tegucigalpa
    -
    661  &kZoneAmerica_Antigua, // 0xc067a32f, America/Antigua -> America/Puerto_Rico
    -
    662  &kZoneEurope_Busingen, // 0xc06d2cdf, Europe/Busingen -> Europe/Zurich
    -
    663  &kZoneAsia_Manila, // 0xc156c944, Asia/Manila
    -
    664  &kZoneAfrica_Kampala, // 0xc1d30e31, Africa/Kampala -> Africa/Nairobi
    -
    665  &kZoneAfrica_Abidjan, // 0xc21305a3, Africa/Abidjan
    -
    666  &kZoneAmerica_Virgin, // 0xc2183ab5, America/Virgin -> America/Puerto_Rico
    -
    667  &kZoneAsia_Phnom_Penh, // 0xc224945e, Asia/Phnom_Penh -> Asia/Bangkok
    -
    668  &kZoneAsia_Muscat, // 0xc2c3565f, Asia/Muscat -> Asia/Dubai
    -
    669  &kZonePortugal, // 0xc3274593, Portugal -> Europe/Lisbon
    -
    670  &kZoneNavajo, // 0xc4ef0e24, Navajo -> America/Denver
    -
    671  &kZoneAsia_Jayapura, // 0xc6833c2f, Asia/Jayapura
    -
    672  &kZoneAsia_Chungking, // 0xc7121dd0, Asia/Chungking -> Asia/Shanghai
    -
    673  &kZoneGreenwich, // 0xc84d4221, Greenwich -> Etc/GMT
    -
    674  &kZonePoland, // 0xca913b23, Poland -> Europe/Warsaw
    -
    675  &kZoneUS_Central, // 0xcabdcb25, US/Central -> America/Chicago
    -
    676  &kZoneEurope_Vatican, // 0xcb485dca, Europe/Vatican -> Europe/Rome
    -
    677  &kZoneAmerica_Barbados, // 0xcbbc3b04, America/Barbados
    -
    678  &kZoneAmerica_Guadeloupe, // 0xcd1f8a31, America/Guadeloupe -> America/Puerto_Rico
    -
    679  &kZoneAntarctica_South_Pole, // 0xcd96b290, Antarctica/South_Pole -> Pacific/Auckland
    -
    680  &kZoneAsia_Riyadh, // 0xcd973d93, Asia/Riyadh
    -
    681  &kZoneAmerica_Dominica, // 0xcecb4c4a, America/Dominica -> America/Puerto_Rico
    -
    682  &kZoneEurope_San_Marino, // 0xcef7724b, Europe/San_Marino -> Europe/Rome
    -
    683  &kZoneAsia_Saigon, // 0xcf52f713, Asia/Saigon -> Asia/Ho_Chi_Minh
    -
    684  &kZonePacific_Easter, // 0xcf54f7e7, Pacific/Easter
    -
    685  &kZoneAsia_Singapore, // 0xcf8581fa, Asia/Singapore
    -
    686  &kZoneEurope_Belfast, // 0xd07dd1e5, Europe/Belfast -> Europe/London
    -
    687  &kZoneUniversal, // 0xd0ff523e, Universal -> Etc/UTC
    -
    688  &kZoneAsia_Taipei, // 0xd1a844ae, Asia/Taipei
    -
    689  &kZoneAsia_Tehran, // 0xd1f02254, Asia/Tehran
    -
    690  &kZoneAsia_Thimbu, // 0xd226e31b, Asia/Thimbu -> Asia/Thimphu
    -
    691  &kZoneArctic_Longyearbyen, // 0xd23e7859, Arctic/Longyearbyen -> Europe/Berlin
    -
    692  &kZoneAustralia_Queensland, // 0xd326ed0a, Australia/Queensland -> Australia/Brisbane
    -
    693  &kZoneAfrica_Lome, // 0xd51c3a07, Africa/Lome -> Africa/Abidjan
    -
    694  &kZoneAsia_Urumqi, // 0xd5379735, Asia/Urumqi
    -
    695  &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg
    -
    696  &kZoneAmerica_Port_of_Spain, // 0xd8b28d59, America/Port_of_Spain -> America/Puerto_Rico
    -
    697  &kZoneEtc_GMT, // 0xd8e2de58, Etc/GMT
    -
    698  &kZoneEtc_UCT, // 0xd8e3189c, Etc/UCT -> Etc/UTC
    -
    699  &kZoneEtc_UTC, // 0xd8e31abc, Etc/UTC
    -
    700  &kZoneAmerica_Yakutat, // 0xd8ee31e9, America/Yakutat
    -
    701  &kZoneAfrica_Algiers, // 0xd94515c1, Africa/Algiers
    -
    702  &kZonePST8PDT, // 0xd99ee2dc, PST8PDT -> America/Los_Angeles
    -
    703  &kZoneEurope_Bratislava, // 0xda493bed, Europe/Bratislava -> Europe/Prague
    -
    704  &kZonePacific_Funafuti, // 0xdb402d65, Pacific/Funafuti -> Pacific/Tarawa
    -
    705  &kZoneAmerica_Matamoros, // 0xdd1b0259, America/Matamoros
    -
    706  &kZonePacific_Kanton, // 0xdd512f0e, Pacific/Kanton
    -
    707  &kZoneAsia_Yangon, // 0xdd54a8be, Asia/Yangon
    -
    708  &kZoneAustralia_West, // 0xdd858a5d, Australia/West -> Australia/Perth
    -
    709  &kZonePacific_Kosrae, // 0xde5139a8, Pacific/Kosrae
    -
    710  &kZoneEurope_Brussels, // 0xdee07337, Europe/Brussels
    -
    711  &kZoneAmerica_Swift_Current, // 0xdef98e55, America/Swift_Current
    -
    712  &kZoneAustralia_Lindeman, // 0xe05029e2, Australia/Lindeman
    -
    713  &kZoneEurope_Belgrade, // 0xe0532b3a, Europe/Belgrade
    -
    714  &kZoneAfrica_Blantyre, // 0xe08d813b, Africa/Blantyre -> Africa/Maputo
    -
    715  &kZoneAmerica_Menominee, // 0xe0e9c583, America/Menominee
    -
    716  &kZoneEurope_Copenhagen, // 0xe0ed30bc, Europe/Copenhagen -> Europe/Berlin
    -
    717  &kZoneAtlantic_Faroe, // 0xe110a971, Atlantic/Faroe
    -
    718  &kZonePacific_Majuro, // 0xe1f95371, Pacific/Majuro -> Pacific/Tarawa
    -
    719  &kZonePacific_Midway, // 0xe286d38e, Pacific/Midway -> Pacific/Pago_Pago
    -
    720  &kZoneAntarctica_Syowa, // 0xe330c7e1, Antarctica/Syowa -> Asia/Riyadh
    -
    721  &kZonePacific_Noumea, // 0xe551b788, Pacific/Noumea
    -
    722  &kZoneIceland, // 0xe56a35b5, Iceland -> Africa/Abidjan
    -
    723  &kZoneIndian_Mayotte, // 0xe6880bca, Indian/Mayotte -> Africa/Nairobi
    -
    724  &kZoneAustralia_Tasmania, // 0xe6d76648, Australia/Tasmania -> Australia/Hobart
    -
    725  &kZonePacific_Honolulu, // 0xe6e70af9, Pacific/Honolulu
    -
    726  &kZoneAmerica_Kralendijk, // 0xe7c456c5, America/Kralendijk -> America/Puerto_Rico
    -
    727  &kZonePacific_Ponape, // 0xe9f80086, Pacific/Ponape -> Pacific/Guadalcanal
    -
    728  &kZoneEurope_Zaporozhye, // 0xeab9767f, Europe/Zaporozhye -> Europe/Kyiv
    -
    729  &kZoneEurope_Isle_of_Man, // 0xeaf84580, Europe/Isle_of_Man -> Europe/London
    -
    730  &kZoneCST6CDT, // 0xf0e87d00, CST6CDT -> America/Chicago
    -
    731  &kZonePacific_Tahiti, // 0xf24c2446, Pacific/Tahiti
    -
    732  &kZonePacific_Tarawa, // 0xf2517e63, Pacific/Tarawa
    -
    733  &kZoneMST7MDT, // 0xf2af9375, MST7MDT -> America/Denver
    -
    734  &kZoneCanada_Eastern, // 0xf3612d5e, Canada/Eastern -> America/Toronto
    -
    735  &kZoneAsia_Tashkent, // 0xf3924254, Asia/Tashkent
    -
    736  &kZonePacific_Guadalcanal, // 0xf4dd25f0, Pacific/Guadalcanal
    -
    737  &kZoneEtc_GMT0, // 0xf53ea988, Etc/GMT0 -> Etc/GMT
    -
    738  &kZoneEtc_Zulu, // 0xf549c240, Etc/Zulu -> Etc/UTC
    -
    739  &kZoneAmerica_Danmarkshavn, // 0xf554d204, America/Danmarkshavn
    -
    740  &kZoneAsia_Shanghai, // 0xf895a7f5, Asia/Shanghai
    -
    741  &kZoneEurope_Gibraltar, // 0xf8e325fc, Europe/Gibraltar
    -
    742  &kZoneAsia_Chongqing, // 0xf937fb90, Asia/Chongqing -> Asia/Shanghai
    -
    743  &kZoneAtlantic_Azores, // 0xf93ed918, Atlantic/Azores
    -
    744  &kZonePacific_Wallis, // 0xf94ddb0f, Pacific/Wallis -> Pacific/Tarawa
    -
    745  &kZoneAmerica_Thunder_Bay, // 0xf962e71b, America/Thunder_Bay -> America/Toronto
    -
    746  &kZoneAmerica_Montevideo, // 0xfa214780, America/Montevideo
    -
    747  &kZoneUS_Alaska, // 0xfa300bc9, US/Alaska -> America/Anchorage
    -
    748  &kZoneGB_Eire, // 0xfa70e300, GB-Eire -> Europe/London
    -
    749  &kZoneEurope_Malta, // 0xfb1560f3, Europe/Malta
    -
    750  &kZoneEurope_Bucharest, // 0xfb349ec5, Europe/Bucharest
    -
    751  &kZoneEurope_Paris, // 0xfb4bc2a3, Europe/Paris
    -
    752  &kZoneEurope_Sofia, // 0xfb898656, Europe/Sofia
    -
    753  &kZoneCanada_Mountain, // 0xfb8a8217, Canada/Mountain -> America/Edmonton
    -
    754  &kZoneEurope_Vaduz, // 0xfbb81bae, Europe/Vaduz -> Europe/Zurich
    -
    755  &kZoneAtlantic_Canary, // 0xfc23f2c2, Atlantic/Canary
    -
    756  &kZoneAmerica_Campo_Grande, // 0xfec3e7a6, America/Campo_Grande
    -
    757 
    -
    758 };
    -
    759 
    -
    760 }
    -
    761 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/zonedb_2zone__registry_8h_source.html b/docs/html/zonedb_2zone__registry_8h_source.html deleted file mode 100644 index ba06e23c0..000000000 --- a/docs/html/zonedb_2zone__registry_8h_source.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/zone_registry.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope basic
    -
    10 // --db_namespace zonedb
    -
    11 // --zi_namespace basic::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 446 (215 zones, 231 links)
    -
    30 // Unsupported Zones: 151 (125 zones, 26 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2023]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2025]
    -
    40 // Max Buffer Size: 6
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 446
    -
    44 // Eras: 227
    -
    45 // Policies: 63
    -
    46 // Rules: 352
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 3168
    -
    51 // Policies: 189
    -
    52 // Eras: 2497
    -
    53 // Zones: 2795
    -
    54 // Links: 3003
    -
    55 // Registry: 892
    -
    56 // Formats: 175
    -
    57 // Letters: 29
    -
    58 // Fragments: 116
    -
    59 // Names: 4142 (original: 6494)
    -
    60 // TOTAL: 17022
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 4224
    -
    65 // Policies: 504
    -
    66 // Eras: 3632
    -
    67 // Zones: 5160
    -
    68 // Links: 5544
    -
    69 // Registry: 1784
    -
    70 // Formats: 175
    -
    71 // Letters: 41
    -
    72 // Fragments: 138
    -
    73 // Names: 4142 (original: 6494)
    -
    74 // TOTAL: 25368
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #ifndef ACE_TIME_ZONEDB_ZONE_REGISTRY_H
    -
    79 #define ACE_TIME_ZONEDB_ZONE_REGISTRY_H
    -
    80 
    -
    81 #include <zoneinfo/infos.h>
    -
    82 
    -
    83 namespace ace_time {
    -
    84 namespace zonedb {
    -
    85 
    -
    86 // Zones
    -
    87 const uint16_t kZoneRegistrySize = 215;
    -
    88 extern const basic::Info::ZoneInfo* const kZoneRegistry[215];
    -
    89 
    -
    90 // Zones and Links
    -
    91 const uint16_t kZoneAndLinkRegistrySize = 446;
    -
    92 extern const basic::Info::ZoneInfo* const kZoneAndLinkRegistry[446];
    -
    93 
    -
    94 }
    -
    95 }
    -
    96 #endif
    -
    - - - - diff --git a/docs/html/zonedbc_2zone__infos_8cpp_source.html b/docs/html/zonedbc_2zone__infos_8cpp_source.html deleted file mode 100644 index cf6be7514..000000000 --- a/docs/html/zonedbc_2zone__infos_8cpp_source.html +++ /dev/null @@ -1,36379 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/zone_infos.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace zonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --start_year 1800
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [1800,2200]
    -
    33 // Accurate Years: [-32767,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1844,2087]
    -
    37 // Lower/Upper Truncated: [False,False]
    -
    38 //
    -
    39 // Estimator Years: [1800,2090]
    -
    40 // Max Buffer Size: 8
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 1956
    -
    45 // Policies: 134
    -
    46 // Rules: 2235
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 26820
    -
    51 // Policies: 402
    -
    52 // Eras: 29340
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 486
    -
    57 // Letters: 160
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 71989
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 26820
    -
    65 // Policies: 1072
    -
    66 // Eras: 39120
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 486
    -
    71 // Letters: 216
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 90292
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #include <zoneinfo/compat.h>
    -
    79 #include "zone_policies.h"
    -
    80 #include "zone_infos.h"
    -
    81 
    -
    82 namespace ace_time {
    -
    83 namespace zonedbc {
    -
    84 
    -
    85 //---------------------------------------------------------------------------
    -
    86 // ZoneContext
    -
    87 //---------------------------------------------------------------------------
    -
    88 
    -
    89 static const char kVersionString[] ACE_TIME_PROGMEM = "2025b";
    -
    90 const __FlashStringHelper* const kTzDatabaseVersion =
    -
    91  (const __FlashStringHelper*) kVersionString;
    -
    92 
    -
    93 static const char kFragment1[] ACE_TIME_PROGMEM = "Africa/";
    -
    94 static const char kFragment2[] ACE_TIME_PROGMEM = "America/";
    -
    95 static const char kFragment3[] ACE_TIME_PROGMEM = "Antarctica/";
    -
    96 static const char kFragment4[] ACE_TIME_PROGMEM = "Argentina/";
    -
    97 static const char kFragment5[] ACE_TIME_PROGMEM = "Asia/";
    -
    98 static const char kFragment6[] ACE_TIME_PROGMEM = "Atlantic/";
    -
    99 static const char kFragment7[] ACE_TIME_PROGMEM = "Australia/";
    -
    100 static const char kFragment8[] ACE_TIME_PROGMEM = "Brazil/";
    -
    101 static const char kFragment9[] ACE_TIME_PROGMEM = "Canada/";
    -
    102 static const char kFragment10[] ACE_TIME_PROGMEM = "Etc/";
    -
    103 static const char kFragment11[] ACE_TIME_PROGMEM = "Europe/";
    -
    104 static const char kFragment12[] ACE_TIME_PROGMEM = "Indian/";
    -
    105 static const char kFragment13[] ACE_TIME_PROGMEM = "Indiana/";
    -
    106 static const char kFragment14[] ACE_TIME_PROGMEM = "Pacific/";
    -
    107 
    -
    108 const char* const kFragments[] ACE_TIME_PROGMEM = {
    -
    109  nullptr, // '\x00' cannot exist
    -
    110  kFragment1, // '\x01' "Africa/"
    -
    111  kFragment2, // '\x02' "America/"
    -
    112  kFragment3, // '\x03' "Antarctica/"
    -
    113  kFragment4, // '\x04' "Argentina/"
    -
    114  kFragment5, // '\x05' "Asia/"
    -
    115  kFragment6, // '\x06' "Atlantic/"
    -
    116  kFragment7, // '\x07' "Australia/"
    -
    117  kFragment8, // '\x08' "Brazil/"
    -
    118  kFragment9, // '\x09' "Canada/"
    -
    119  kFragment10, // '\x0a' "Etc/"
    -
    120  kFragment11, // '\x0b' "Europe/"
    -
    121  kFragment12, // '\x0c' "Indian/"
    -
    122  kFragment13, // '\x0d' "Indiana/"
    -
    123  kFragment14, // '\x0e' "Pacific/"
    -
    124 
    -
    125 };
    -
    126 
    -
    127 static const char kLetter0[] ACE_TIME_PROGMEM = "";
    -
    128 static const char kLetter1[] ACE_TIME_PROGMEM = "+00";
    -
    129 static const char kLetter2[] ACE_TIME_PROGMEM = "+02";
    -
    130 static const char kLetter3[] ACE_TIME_PROGMEM = "+05";
    -
    131 static const char kLetter4[] ACE_TIME_PROGMEM = "-0430";
    -
    132 static const char kLetter5[] ACE_TIME_PROGMEM = "-0530";
    -
    133 static const char kLetter6[] ACE_TIME_PROGMEM = "BDST";
    -
    134 static const char kLetter7[] ACE_TIME_PROGMEM = "BST";
    -
    135 static const char kLetter8[] ACE_TIME_PROGMEM = "CAT";
    -
    136 static const char kLetter9[] ACE_TIME_PROGMEM = "CDT";
    -
    137 static const char kLetter10[] ACE_TIME_PROGMEM = "CPT";
    -
    138 static const char kLetter11[] ACE_TIME_PROGMEM = "CST";
    -
    139 static const char kLetter12[] ACE_TIME_PROGMEM = "CWT";
    -
    140 static const char kLetter13[] ACE_TIME_PROGMEM = "D";
    -
    141 static const char kLetter14[] ACE_TIME_PROGMEM = "DD";
    -
    142 static const char kLetter15[] ACE_TIME_PROGMEM = "EDT";
    -
    143 static const char kLetter16[] ACE_TIME_PROGMEM = "EST";
    -
    144 static const char kLetter17[] ACE_TIME_PROGMEM = "GMT";
    -
    145 static const char kLetter18[] ACE_TIME_PROGMEM = "M";
    -
    146 static const char kLetter19[] ACE_TIME_PROGMEM = "MDST";
    -
    147 static const char kLetter20[] ACE_TIME_PROGMEM = "MMT";
    -
    148 static const char kLetter21[] ACE_TIME_PROGMEM = "MSD";
    -
    149 static const char kLetter22[] ACE_TIME_PROGMEM = "MSK";
    -
    150 static const char kLetter23[] ACE_TIME_PROGMEM = "MST";
    -
    151 static const char kLetter24[] ACE_TIME_PROGMEM = "P";
    -
    152 static const char kLetter25[] ACE_TIME_PROGMEM = "S";
    -
    153 static const char kLetter26[] ACE_TIME_PROGMEM = "W";
    -
    154 static const char kLetter27[] ACE_TIME_PROGMEM = "WAT";
    -
    155 
    -
    156 const char* const kLetters[] ACE_TIME_PROGMEM = {
    -
    157  kLetter0, // ""
    -
    158  kLetter1, // "+00"
    -
    159  kLetter2, // "+02"
    -
    160  kLetter3, // "+05"
    -
    161  kLetter4, // "-0430"
    -
    162  kLetter5, // "-0530"
    -
    163  kLetter6, // "BDST"
    -
    164  kLetter7, // "BST"
    -
    165  kLetter8, // "CAT"
    -
    166  kLetter9, // "CDT"
    -
    167  kLetter10, // "CPT"
    -
    168  kLetter11, // "CST"
    -
    169  kLetter12, // "CWT"
    -
    170  kLetter13, // "D"
    -
    171  kLetter14, // "DD"
    -
    172  kLetter15, // "EDT"
    -
    173  kLetter16, // "EST"
    -
    174  kLetter17, // "GMT"
    -
    175  kLetter18, // "M"
    -
    176  kLetter19, // "MDST"
    -
    177  kLetter20, // "MMT"
    -
    178  kLetter21, // "MSD"
    -
    179  kLetter22, // "MSK"
    -
    180  kLetter23, // "MST"
    -
    181  kLetter24, // "P"
    -
    182  kLetter25, // "S"
    -
    183  kLetter26, // "W"
    -
    184  kLetter27, // "WAT"
    -
    185 
    -
    186 };
    -
    187 
    -
    188 const complete::Info::ZoneContext kZoneContext ACE_TIME_PROGMEM = {
    -
    189  1800 /*startYear*/,
    -
    190  2200 /*untilYear*/,
    -
    191  -32767 /*startYearAccurate*/,
    -
    192  32767 /*untilYearAccurate*/,
    -
    193  2100 /*baseYear*/,
    -
    194  8 /*maxTransitions*/,
    -
    195  kVersionString /*tzVersion*/,
    -
    196  15 /*numFragments*/,
    -
    197  28 /*numLetters*/,
    -
    198  kFragments /*fragments*/,
    -
    199  kLetters /*letters*/,
    -
    200 };
    -
    201 
    -
    202 //---------------------------------------------------------------------------
    -
    203 // Zones: 340
    -
    204 // Eras: 1956
    -
    205 //---------------------------------------------------------------------------
    -
    206 
    -
    207 //---------------------------------------------------------------------------
    -
    208 // Zone name: Africa/Abidjan
    -
    209 // Eras: 2
    -
    210 //---------------------------------------------------------------------------
    -
    211 
    -
    212 static const complete::Info::ZoneEra kZoneEraAfrica_Abidjan[] ACE_TIME_PROGMEM = {
    -
    213  // -0:16:08 - LMT 1912 Jan 1
    -
    214  {
    -
    215  nullptr /*zonePolicy*/,
    -
    216  "LMT" /*format*/,
    -
    217  -65 /*offsetCode (-968/15)*/,
    -
    218  7 /*offsetRemainder (-968%15)*/,
    -
    219  0 /*deltaMinutes*/,
    -
    220  1912 /*untilYear*/,
    -
    221  1 /*untilMonth*/,
    -
    222  1 /*untilDay*/,
    -
    223  0 /*untilTimeCode (0/15)*/,
    -
    224  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    225  },
    -
    226  // 0:00 - GMT
    -
    227  {
    -
    228  nullptr /*zonePolicy*/,
    -
    229  "GMT" /*format*/,
    -
    230  0 /*offsetCode (0/15)*/,
    -
    231  0 /*offsetRemainder (0%15)*/,
    -
    232  0 /*deltaMinutes*/,
    -
    233  32767 /*untilYear*/,
    -
    234  1 /*untilMonth*/,
    -
    235  1 /*untilDay*/,
    -
    236  0 /*untilTimeCode (0/15)*/,
    -
    237  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    238  },
    -
    239 
    -
    240 };
    -
    241 
    -
    242 static const char kZoneNameAfrica_Abidjan[] ACE_TIME_PROGMEM = "\x01" "Abidjan";
    -
    243 
    -
    244 const complete::Info::ZoneInfo kZoneAfrica_Abidjan ACE_TIME_PROGMEM = {
    -
    245  kZoneNameAfrica_Abidjan /*name*/,
    -
    246  0xc21305a3 /*zoneId*/,
    -
    247  &kZoneContext /*zoneContext*/,
    -
    248  2 /*numEras*/,
    -
    249  kZoneEraAfrica_Abidjan /*eras*/,
    -
    250  nullptr /*targetInfo*/,
    -
    251 };
    -
    252 
    -
    253 //---------------------------------------------------------------------------
    -
    254 // Zone name: Africa/Algiers
    -
    255 // Eras: 10
    -
    256 //---------------------------------------------------------------------------
    -
    257 
    -
    258 static const complete::Info::ZoneEra kZoneEraAfrica_Algiers[] ACE_TIME_PROGMEM = {
    -
    259  // 0:12:12 - LMT 1891 Mar 16
    -
    260  {
    -
    261  nullptr /*zonePolicy*/,
    -
    262  "LMT" /*format*/,
    -
    263  48 /*offsetCode (732/15)*/,
    -
    264  12 /*offsetRemainder (732%15)*/,
    -
    265  0 /*deltaMinutes*/,
    -
    266  1891 /*untilYear*/,
    -
    267  3 /*untilMonth*/,
    -
    268  16 /*untilDay*/,
    -
    269  0 /*untilTimeCode (0/15)*/,
    -
    270  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    271  },
    -
    272  // 0:09:21 - PMT 1911 Mar 11
    -
    273  {
    -
    274  nullptr /*zonePolicy*/,
    -
    275  "PMT" /*format*/,
    -
    276  37 /*offsetCode (561/15)*/,
    -
    277  6 /*offsetRemainder (561%15)*/,
    -
    278  0 /*deltaMinutes*/,
    -
    279  1911 /*untilYear*/,
    -
    280  3 /*untilMonth*/,
    -
    281  11 /*untilDay*/,
    -
    282  0 /*untilTimeCode (0/15)*/,
    -
    283  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    284  },
    -
    285  // 0:00 Algeria WE%sT 1940 Feb 25 2:00
    -
    286  {
    -
    287  &kZonePolicyAlgeria /*zonePolicy*/,
    -
    288  "WE%T" /*format*/,
    -
    289  0 /*offsetCode (0/15)*/,
    -
    290  0 /*offsetRemainder (0%15)*/,
    -
    291  0 /*deltaMinutes*/,
    -
    292  1940 /*untilYear*/,
    -
    293  2 /*untilMonth*/,
    -
    294  25 /*untilDay*/,
    -
    295  480 /*untilTimeCode (7200/15)*/,
    -
    296  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    297  },
    -
    298  // 1:00 Algeria CE%sT 1946 Oct 7
    -
    299  {
    -
    300  &kZonePolicyAlgeria /*zonePolicy*/,
    -
    301  "CE%T" /*format*/,
    -
    302  240 /*offsetCode (3600/15)*/,
    -
    303  0 /*offsetRemainder (3600%15)*/,
    -
    304  0 /*deltaMinutes*/,
    -
    305  1946 /*untilYear*/,
    -
    306  10 /*untilMonth*/,
    -
    307  7 /*untilDay*/,
    -
    308  0 /*untilTimeCode (0/15)*/,
    -
    309  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    310  },
    -
    311  // 0:00 - WET 1956 Jan 29
    -
    312  {
    -
    313  nullptr /*zonePolicy*/,
    -
    314  "WET" /*format*/,
    -
    315  0 /*offsetCode (0/15)*/,
    -
    316  0 /*offsetRemainder (0%15)*/,
    -
    317  0 /*deltaMinutes*/,
    -
    318  1956 /*untilYear*/,
    -
    319  1 /*untilMonth*/,
    -
    320  29 /*untilDay*/,
    -
    321  0 /*untilTimeCode (0/15)*/,
    -
    322  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    323  },
    -
    324  // 1:00 - CET 1963 Apr 14
    -
    325  {
    -
    326  nullptr /*zonePolicy*/,
    -
    327  "CET" /*format*/,
    -
    328  240 /*offsetCode (3600/15)*/,
    -
    329  0 /*offsetRemainder (3600%15)*/,
    -
    330  0 /*deltaMinutes*/,
    -
    331  1963 /*untilYear*/,
    -
    332  4 /*untilMonth*/,
    -
    333  14 /*untilDay*/,
    -
    334  0 /*untilTimeCode (0/15)*/,
    -
    335  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    336  },
    -
    337  // 0:00 Algeria WE%sT 1977 Oct 21
    -
    338  {
    -
    339  &kZonePolicyAlgeria /*zonePolicy*/,
    -
    340  "WE%T" /*format*/,
    -
    341  0 /*offsetCode (0/15)*/,
    -
    342  0 /*offsetRemainder (0%15)*/,
    -
    343  0 /*deltaMinutes*/,
    -
    344  1977 /*untilYear*/,
    -
    345  10 /*untilMonth*/,
    -
    346  21 /*untilDay*/,
    -
    347  0 /*untilTimeCode (0/15)*/,
    -
    348  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    349  },
    -
    350  // 1:00 Algeria CE%sT 1979 Oct 26
    -
    351  {
    -
    352  &kZonePolicyAlgeria /*zonePolicy*/,
    -
    353  "CE%T" /*format*/,
    -
    354  240 /*offsetCode (3600/15)*/,
    -
    355  0 /*offsetRemainder (3600%15)*/,
    -
    356  0 /*deltaMinutes*/,
    -
    357  1979 /*untilYear*/,
    -
    358  10 /*untilMonth*/,
    -
    359  26 /*untilDay*/,
    -
    360  0 /*untilTimeCode (0/15)*/,
    -
    361  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    362  },
    -
    363  // 0:00 Algeria WE%sT 1981 May
    -
    364  {
    -
    365  &kZonePolicyAlgeria /*zonePolicy*/,
    -
    366  "WE%T" /*format*/,
    -
    367  0 /*offsetCode (0/15)*/,
    -
    368  0 /*offsetRemainder (0%15)*/,
    -
    369  0 /*deltaMinutes*/,
    -
    370  1981 /*untilYear*/,
    -
    371  5 /*untilMonth*/,
    -
    372  1 /*untilDay*/,
    -
    373  0 /*untilTimeCode (0/15)*/,
    -
    374  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    375  },
    -
    376  // 1:00 - CET
    -
    377  {
    -
    378  nullptr /*zonePolicy*/,
    -
    379  "CET" /*format*/,
    -
    380  240 /*offsetCode (3600/15)*/,
    -
    381  0 /*offsetRemainder (3600%15)*/,
    -
    382  0 /*deltaMinutes*/,
    -
    383  32767 /*untilYear*/,
    -
    384  1 /*untilMonth*/,
    -
    385  1 /*untilDay*/,
    -
    386  0 /*untilTimeCode (0/15)*/,
    -
    387  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    388  },
    -
    389 
    -
    390 };
    -
    391 
    -
    392 static const char kZoneNameAfrica_Algiers[] ACE_TIME_PROGMEM = "\x01" "Algiers";
    -
    393 
    -
    394 const complete::Info::ZoneInfo kZoneAfrica_Algiers ACE_TIME_PROGMEM = {
    -
    395  kZoneNameAfrica_Algiers /*name*/,
    -
    396  0xd94515c1 /*zoneId*/,
    -
    397  &kZoneContext /*zoneContext*/,
    -
    398  10 /*numEras*/,
    -
    399  kZoneEraAfrica_Algiers /*eras*/,
    -
    400  nullptr /*targetInfo*/,
    -
    401 };
    -
    402 
    -
    403 //---------------------------------------------------------------------------
    -
    404 // Zone name: Africa/Bissau
    -
    405 // Eras: 3
    -
    406 //---------------------------------------------------------------------------
    -
    407 
    -
    408 static const complete::Info::ZoneEra kZoneEraAfrica_Bissau[] ACE_TIME_PROGMEM = {
    -
    409  // -1:02:20 - LMT 1912 Jan 1 1:00u
    -
    410  {
    -
    411  nullptr /*zonePolicy*/,
    -
    412  "LMT" /*format*/,
    -
    413  -250 /*offsetCode (-3740/15)*/,
    -
    414  10 /*offsetRemainder (-3740%15)*/,
    -
    415  0 /*deltaMinutes*/,
    -
    416  1912 /*untilYear*/,
    -
    417  1 /*untilMonth*/,
    -
    418  1 /*untilDay*/,
    -
    419  240 /*untilTimeCode (3600/15)*/,
    -
    420  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    421  },
    -
    422  // -1:00 - %z 1975
    -
    423  {
    -
    424  nullptr /*zonePolicy*/,
    -
    425  "" /*format*/,
    -
    426  -240 /*offsetCode (-3600/15)*/,
    -
    427  0 /*offsetRemainder (-3600%15)*/,
    -
    428  0 /*deltaMinutes*/,
    -
    429  1975 /*untilYear*/,
    -
    430  1 /*untilMonth*/,
    -
    431  1 /*untilDay*/,
    -
    432  0 /*untilTimeCode (0/15)*/,
    -
    433  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    434  },
    -
    435  // 0:00 - GMT
    -
    436  {
    -
    437  nullptr /*zonePolicy*/,
    -
    438  "GMT" /*format*/,
    -
    439  0 /*offsetCode (0/15)*/,
    -
    440  0 /*offsetRemainder (0%15)*/,
    -
    441  0 /*deltaMinutes*/,
    -
    442  32767 /*untilYear*/,
    -
    443  1 /*untilMonth*/,
    -
    444  1 /*untilDay*/,
    -
    445  0 /*untilTimeCode (0/15)*/,
    -
    446  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    447  },
    -
    448 
    -
    449 };
    -
    450 
    -
    451 static const char kZoneNameAfrica_Bissau[] ACE_TIME_PROGMEM = "\x01" "Bissau";
    -
    452 
    -
    453 const complete::Info::ZoneInfo kZoneAfrica_Bissau ACE_TIME_PROGMEM = {
    -
    454  kZoneNameAfrica_Bissau /*name*/,
    -
    455  0x75564141 /*zoneId*/,
    -
    456  &kZoneContext /*zoneContext*/,
    -
    457  3 /*numEras*/,
    -
    458  kZoneEraAfrica_Bissau /*eras*/,
    -
    459  nullptr /*targetInfo*/,
    -
    460 };
    -
    461 
    -
    462 //---------------------------------------------------------------------------
    -
    463 // Zone name: Africa/Cairo
    -
    464 // Eras: 2
    -
    465 //---------------------------------------------------------------------------
    -
    466 
    -
    467 static const complete::Info::ZoneEra kZoneEraAfrica_Cairo[] ACE_TIME_PROGMEM = {
    -
    468  // 2:05:09 - LMT 1900 Oct
    -
    469  {
    -
    470  nullptr /*zonePolicy*/,
    -
    471  "LMT" /*format*/,
    -
    472  500 /*offsetCode (7509/15)*/,
    -
    473  9 /*offsetRemainder (7509%15)*/,
    -
    474  0 /*deltaMinutes*/,
    -
    475  1900 /*untilYear*/,
    -
    476  10 /*untilMonth*/,
    -
    477  1 /*untilDay*/,
    -
    478  0 /*untilTimeCode (0/15)*/,
    -
    479  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    480  },
    -
    481  // 2:00 Egypt EE%sT
    -
    482  {
    -
    483  &kZonePolicyEgypt /*zonePolicy*/,
    -
    484  "EE%T" /*format*/,
    -
    485  480 /*offsetCode (7200/15)*/,
    -
    486  0 /*offsetRemainder (7200%15)*/,
    -
    487  0 /*deltaMinutes*/,
    -
    488  32767 /*untilYear*/,
    -
    489  1 /*untilMonth*/,
    -
    490  1 /*untilDay*/,
    -
    491  0 /*untilTimeCode (0/15)*/,
    -
    492  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    493  },
    -
    494 
    -
    495 };
    -
    496 
    -
    497 static const char kZoneNameAfrica_Cairo[] ACE_TIME_PROGMEM = "\x01" "Cairo";
    -
    498 
    -
    499 const complete::Info::ZoneInfo kZoneAfrica_Cairo ACE_TIME_PROGMEM = {
    -
    500  kZoneNameAfrica_Cairo /*name*/,
    -
    501  0x77f8e228 /*zoneId*/,
    -
    502  &kZoneContext /*zoneContext*/,
    -
    503  2 /*numEras*/,
    -
    504  kZoneEraAfrica_Cairo /*eras*/,
    -
    505  nullptr /*targetInfo*/,
    -
    506 };
    -
    507 
    -
    508 //---------------------------------------------------------------------------
    -
    509 // Zone name: Africa/Casablanca
    -
    510 // Eras: 5
    -
    511 //---------------------------------------------------------------------------
    -
    512 
    -
    513 static const complete::Info::ZoneEra kZoneEraAfrica_Casablanca[] ACE_TIME_PROGMEM = {
    -
    514  // -0:30:20 - LMT 1913 Oct 26
    -
    515  {
    -
    516  nullptr /*zonePolicy*/,
    -
    517  "LMT" /*format*/,
    -
    518  -122 /*offsetCode (-1820/15)*/,
    -
    519  10 /*offsetRemainder (-1820%15)*/,
    -
    520  0 /*deltaMinutes*/,
    -
    521  1913 /*untilYear*/,
    -
    522  10 /*untilMonth*/,
    -
    523  26 /*untilDay*/,
    -
    524  0 /*untilTimeCode (0/15)*/,
    -
    525  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    526  },
    -
    527  // 0:00 Morocco %z 1984 Mar 16
    -
    528  {
    -
    529  &kZonePolicyMorocco /*zonePolicy*/,
    -
    530  "" /*format*/,
    -
    531  0 /*offsetCode (0/15)*/,
    -
    532  0 /*offsetRemainder (0%15)*/,
    -
    533  0 /*deltaMinutes*/,
    -
    534  1984 /*untilYear*/,
    -
    535  3 /*untilMonth*/,
    -
    536  16 /*untilDay*/,
    -
    537  0 /*untilTimeCode (0/15)*/,
    -
    538  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    539  },
    -
    540  // 1:00 - %z 1986
    -
    541  {
    -
    542  nullptr /*zonePolicy*/,
    -
    543  "" /*format*/,
    -
    544  240 /*offsetCode (3600/15)*/,
    -
    545  0 /*offsetRemainder (3600%15)*/,
    -
    546  0 /*deltaMinutes*/,
    -
    547  1986 /*untilYear*/,
    -
    548  1 /*untilMonth*/,
    -
    549  1 /*untilDay*/,
    -
    550  0 /*untilTimeCode (0/15)*/,
    -
    551  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    552  },
    -
    553  // 0:00 Morocco %z 2018 Oct 28 3:00
    -
    554  {
    -
    555  &kZonePolicyMorocco /*zonePolicy*/,
    -
    556  "" /*format*/,
    -
    557  0 /*offsetCode (0/15)*/,
    -
    558  0 /*offsetRemainder (0%15)*/,
    -
    559  0 /*deltaMinutes*/,
    -
    560  2018 /*untilYear*/,
    -
    561  10 /*untilMonth*/,
    -
    562  28 /*untilDay*/,
    -
    563  720 /*untilTimeCode (10800/15)*/,
    -
    564  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    565  },
    -
    566  // 1:00 Morocco %z
    -
    567  {
    -
    568  &kZonePolicyMorocco /*zonePolicy*/,
    -
    569  "" /*format*/,
    -
    570  240 /*offsetCode (3600/15)*/,
    -
    571  0 /*offsetRemainder (3600%15)*/,
    -
    572  0 /*deltaMinutes*/,
    -
    573  32767 /*untilYear*/,
    -
    574  1 /*untilMonth*/,
    -
    575  1 /*untilDay*/,
    -
    576  0 /*untilTimeCode (0/15)*/,
    -
    577  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    578  },
    -
    579 
    -
    580 };
    -
    581 
    -
    582 static const char kZoneNameAfrica_Casablanca[] ACE_TIME_PROGMEM = "\x01" "Casablanca";
    -
    583 
    -
    584 const complete::Info::ZoneInfo kZoneAfrica_Casablanca ACE_TIME_PROGMEM = {
    -
    585  kZoneNameAfrica_Casablanca /*name*/,
    -
    586  0xc59f1b33 /*zoneId*/,
    -
    587  &kZoneContext /*zoneContext*/,
    -
    588  5 /*numEras*/,
    -
    589  kZoneEraAfrica_Casablanca /*eras*/,
    -
    590  nullptr /*targetInfo*/,
    -
    591 };
    -
    592 
    -
    593 //---------------------------------------------------------------------------
    -
    594 // Zone name: Africa/Ceuta
    -
    595 // Eras: 9
    -
    596 //---------------------------------------------------------------------------
    -
    597 
    -
    598 static const complete::Info::ZoneEra kZoneEraAfrica_Ceuta[] ACE_TIME_PROGMEM = {
    -
    599  // -0:21:16 - LMT 1901 Jan 1 0:00u
    -
    600  {
    -
    601  nullptr /*zonePolicy*/,
    -
    602  "LMT" /*format*/,
    -
    603  -86 /*offsetCode (-1276/15)*/,
    -
    604  14 /*offsetRemainder (-1276%15)*/,
    -
    605  0 /*deltaMinutes*/,
    -
    606  1901 /*untilYear*/,
    -
    607  1 /*untilMonth*/,
    -
    608  1 /*untilDay*/,
    -
    609  0 /*untilTimeCode (0/15)*/,
    -
    610  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    611  },
    -
    612  // 0:00 - WET 1918 May 6 23:00
    -
    613  {
    -
    614  nullptr /*zonePolicy*/,
    -
    615  "WET" /*format*/,
    -
    616  0 /*offsetCode (0/15)*/,
    -
    617  0 /*offsetRemainder (0%15)*/,
    -
    618  0 /*deltaMinutes*/,
    -
    619  1918 /*untilYear*/,
    -
    620  5 /*untilMonth*/,
    -
    621  6 /*untilDay*/,
    -
    622  5520 /*untilTimeCode (82800/15)*/,
    -
    623  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    624  },
    -
    625  // 0:00 1:00 WEST 1918 Oct 7 23:00
    -
    626  {
    -
    627  nullptr /*zonePolicy*/,
    -
    628  "WEST" /*format*/,
    -
    629  0 /*offsetCode (0/15)*/,
    -
    630  0 /*offsetRemainder (0%15)*/,
    -
    631  60 /*deltaMinutes*/,
    -
    632  1918 /*untilYear*/,
    -
    633  10 /*untilMonth*/,
    -
    634  7 /*untilDay*/,
    -
    635  5520 /*untilTimeCode (82800/15)*/,
    -
    636  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    637  },
    -
    638  // 0:00 - WET 1924
    -
    639  {
    -
    640  nullptr /*zonePolicy*/,
    -
    641  "WET" /*format*/,
    -
    642  0 /*offsetCode (0/15)*/,
    -
    643  0 /*offsetRemainder (0%15)*/,
    -
    644  0 /*deltaMinutes*/,
    -
    645  1924 /*untilYear*/,
    -
    646  1 /*untilMonth*/,
    -
    647  1 /*untilDay*/,
    -
    648  0 /*untilTimeCode (0/15)*/,
    -
    649  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    650  },
    -
    651  // 0:00 Spain WE%sT 1929
    -
    652  {
    -
    653  &kZonePolicySpain /*zonePolicy*/,
    -
    654  "WE%T" /*format*/,
    -
    655  0 /*offsetCode (0/15)*/,
    -
    656  0 /*offsetRemainder (0%15)*/,
    -
    657  0 /*deltaMinutes*/,
    -
    658  1929 /*untilYear*/,
    -
    659  1 /*untilMonth*/,
    -
    660  1 /*untilDay*/,
    -
    661  0 /*untilTimeCode (0/15)*/,
    -
    662  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    663  },
    -
    664  // 0:00 - WET 1967
    -
    665  {
    -
    666  nullptr /*zonePolicy*/,
    -
    667  "WET" /*format*/,
    -
    668  0 /*offsetCode (0/15)*/,
    -
    669  0 /*offsetRemainder (0%15)*/,
    -
    670  0 /*deltaMinutes*/,
    -
    671  1967 /*untilYear*/,
    -
    672  1 /*untilMonth*/,
    -
    673  1 /*untilDay*/,
    -
    674  0 /*untilTimeCode (0/15)*/,
    -
    675  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    676  },
    -
    677  // 0:00 SpainAfrica WE%sT 1984 Mar 16
    -
    678  {
    -
    679  &kZonePolicySpainAfrica /*zonePolicy*/,
    -
    680  "WE%T" /*format*/,
    -
    681  0 /*offsetCode (0/15)*/,
    -
    682  0 /*offsetRemainder (0%15)*/,
    -
    683  0 /*deltaMinutes*/,
    -
    684  1984 /*untilYear*/,
    -
    685  3 /*untilMonth*/,
    -
    686  16 /*untilDay*/,
    -
    687  0 /*untilTimeCode (0/15)*/,
    -
    688  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    689  },
    -
    690  // 1:00 - CET 1986
    -
    691  {
    -
    692  nullptr /*zonePolicy*/,
    -
    693  "CET" /*format*/,
    -
    694  240 /*offsetCode (3600/15)*/,
    -
    695  0 /*offsetRemainder (3600%15)*/,
    -
    696  0 /*deltaMinutes*/,
    -
    697  1986 /*untilYear*/,
    -
    698  1 /*untilMonth*/,
    -
    699  1 /*untilDay*/,
    -
    700  0 /*untilTimeCode (0/15)*/,
    -
    701  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    702  },
    -
    703  // 1:00 EU CE%sT
    -
    704  {
    -
    705  &kZonePolicyEU /*zonePolicy*/,
    -
    706  "CE%T" /*format*/,
    -
    707  240 /*offsetCode (3600/15)*/,
    -
    708  0 /*offsetRemainder (3600%15)*/,
    -
    709  0 /*deltaMinutes*/,
    -
    710  32767 /*untilYear*/,
    -
    711  1 /*untilMonth*/,
    -
    712  1 /*untilDay*/,
    -
    713  0 /*untilTimeCode (0/15)*/,
    -
    714  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    715  },
    -
    716 
    -
    717 };
    -
    718 
    -
    719 static const char kZoneNameAfrica_Ceuta[] ACE_TIME_PROGMEM = "\x01" "Ceuta";
    -
    720 
    -
    721 const complete::Info::ZoneInfo kZoneAfrica_Ceuta ACE_TIME_PROGMEM = {
    -
    722  kZoneNameAfrica_Ceuta /*name*/,
    -
    723  0x77fb46ec /*zoneId*/,
    -
    724  &kZoneContext /*zoneContext*/,
    -
    725  9 /*numEras*/,
    -
    726  kZoneEraAfrica_Ceuta /*eras*/,
    -
    727  nullptr /*targetInfo*/,
    -
    728 };
    -
    729 
    -
    730 //---------------------------------------------------------------------------
    -
    731 // Zone name: Africa/El_Aaiun
    -
    732 // Eras: 4
    -
    733 //---------------------------------------------------------------------------
    -
    734 
    -
    735 static const complete::Info::ZoneEra kZoneEraAfrica_El_Aaiun[] ACE_TIME_PROGMEM = {
    -
    736  // -0:52:48 - LMT 1934 Jan
    -
    737  {
    -
    738  nullptr /*zonePolicy*/,
    -
    739  "LMT" /*format*/,
    -
    740  -212 /*offsetCode (-3168/15)*/,
    -
    741  12 /*offsetRemainder (-3168%15)*/,
    -
    742  0 /*deltaMinutes*/,
    -
    743  1934 /*untilYear*/,
    -
    744  1 /*untilMonth*/,
    -
    745  1 /*untilDay*/,
    -
    746  0 /*untilTimeCode (0/15)*/,
    -
    747  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    748  },
    -
    749  // -1:00 - %z 1976 Apr 14
    -
    750  {
    -
    751  nullptr /*zonePolicy*/,
    -
    752  "" /*format*/,
    -
    753  -240 /*offsetCode (-3600/15)*/,
    -
    754  0 /*offsetRemainder (-3600%15)*/,
    -
    755  0 /*deltaMinutes*/,
    -
    756  1976 /*untilYear*/,
    -
    757  4 /*untilMonth*/,
    -
    758  14 /*untilDay*/,
    -
    759  0 /*untilTimeCode (0/15)*/,
    -
    760  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    761  },
    -
    762  // 0:00 Morocco %z 2018 Oct 28 3:00
    -
    763  {
    -
    764  &kZonePolicyMorocco /*zonePolicy*/,
    -
    765  "" /*format*/,
    -
    766  0 /*offsetCode (0/15)*/,
    -
    767  0 /*offsetRemainder (0%15)*/,
    -
    768  0 /*deltaMinutes*/,
    -
    769  2018 /*untilYear*/,
    -
    770  10 /*untilMonth*/,
    -
    771  28 /*untilDay*/,
    -
    772  720 /*untilTimeCode (10800/15)*/,
    -
    773  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    774  },
    -
    775  // 1:00 Morocco %z
    -
    776  {
    -
    777  &kZonePolicyMorocco /*zonePolicy*/,
    -
    778  "" /*format*/,
    -
    779  240 /*offsetCode (3600/15)*/,
    -
    780  0 /*offsetRemainder (3600%15)*/,
    -
    781  0 /*deltaMinutes*/,
    -
    782  32767 /*untilYear*/,
    -
    783  1 /*untilMonth*/,
    -
    784  1 /*untilDay*/,
    -
    785  0 /*untilTimeCode (0/15)*/,
    -
    786  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    787  },
    -
    788 
    -
    789 };
    -
    790 
    -
    791 static const char kZoneNameAfrica_El_Aaiun[] ACE_TIME_PROGMEM = "\x01" "El_Aaiun";
    -
    792 
    -
    793 const complete::Info::ZoneInfo kZoneAfrica_El_Aaiun ACE_TIME_PROGMEM = {
    -
    794  kZoneNameAfrica_El_Aaiun /*name*/,
    -
    795  0x9d6fb118 /*zoneId*/,
    -
    796  &kZoneContext /*zoneContext*/,
    -
    797  4 /*numEras*/,
    -
    798  kZoneEraAfrica_El_Aaiun /*eras*/,
    -
    799  nullptr /*targetInfo*/,
    -
    800 };
    -
    801 
    -
    802 //---------------------------------------------------------------------------
    -
    803 // Zone name: Africa/Johannesburg
    -
    804 // Eras: 3
    -
    805 //---------------------------------------------------------------------------
    -
    806 
    -
    807 static const complete::Info::ZoneEra kZoneEraAfrica_Johannesburg[] ACE_TIME_PROGMEM = {
    -
    808  // 1:52:00 - LMT 1892 Feb 8
    -
    809  {
    -
    810  nullptr /*zonePolicy*/,
    -
    811  "LMT" /*format*/,
    -
    812  448 /*offsetCode (6720/15)*/,
    -
    813  0 /*offsetRemainder (6720%15)*/,
    -
    814  0 /*deltaMinutes*/,
    -
    815  1892 /*untilYear*/,
    -
    816  2 /*untilMonth*/,
    -
    817  8 /*untilDay*/,
    -
    818  0 /*untilTimeCode (0/15)*/,
    -
    819  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    820  },
    -
    821  // 1:30 - SAST 1903 Mar
    -
    822  {
    -
    823  nullptr /*zonePolicy*/,
    -
    824  "SAST" /*format*/,
    -
    825  360 /*offsetCode (5400/15)*/,
    -
    826  0 /*offsetRemainder (5400%15)*/,
    -
    827  0 /*deltaMinutes*/,
    -
    828  1903 /*untilYear*/,
    -
    829  3 /*untilMonth*/,
    -
    830  1 /*untilDay*/,
    -
    831  0 /*untilTimeCode (0/15)*/,
    -
    832  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    833  },
    -
    834  // 2:00 SA SAST
    -
    835  {
    -
    836  &kZonePolicySA /*zonePolicy*/,
    -
    837  "SAST" /*format*/,
    -
    838  480 /*offsetCode (7200/15)*/,
    -
    839  0 /*offsetRemainder (7200%15)*/,
    -
    840  0 /*deltaMinutes*/,
    -
    841  32767 /*untilYear*/,
    -
    842  1 /*untilMonth*/,
    -
    843  1 /*untilDay*/,
    -
    844  0 /*untilTimeCode (0/15)*/,
    -
    845  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    846  },
    -
    847 
    -
    848 };
    -
    849 
    -
    850 static const char kZoneNameAfrica_Johannesburg[] ACE_TIME_PROGMEM = "\x01" "Johannesburg";
    -
    851 
    -
    852 const complete::Info::ZoneInfo kZoneAfrica_Johannesburg ACE_TIME_PROGMEM = {
    -
    853  kZoneNameAfrica_Johannesburg /*name*/,
    -
    854  0xd5d157a0 /*zoneId*/,
    -
    855  &kZoneContext /*zoneContext*/,
    -
    856  3 /*numEras*/,
    -
    857  kZoneEraAfrica_Johannesburg /*eras*/,
    -
    858  nullptr /*targetInfo*/,
    -
    859 };
    -
    860 
    -
    861 //---------------------------------------------------------------------------
    -
    862 // Zone name: Africa/Juba
    -
    863 // Eras: 4
    -
    864 //---------------------------------------------------------------------------
    -
    865 
    -
    866 static const complete::Info::ZoneEra kZoneEraAfrica_Juba[] ACE_TIME_PROGMEM = {
    -
    867  // 2:06:28 - LMT 1931
    -
    868  {
    -
    869  nullptr /*zonePolicy*/,
    -
    870  "LMT" /*format*/,
    -
    871  505 /*offsetCode (7588/15)*/,
    -
    872  13 /*offsetRemainder (7588%15)*/,
    -
    873  0 /*deltaMinutes*/,
    -
    874  1931 /*untilYear*/,
    -
    875  1 /*untilMonth*/,
    -
    876  1 /*untilDay*/,
    -
    877  0 /*untilTimeCode (0/15)*/,
    -
    878  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    879  },
    -
    880  // 2:00 Sudan CA%sT 2000 Jan 15 12:00
    -
    881  {
    -
    882  &kZonePolicySudan /*zonePolicy*/,
    -
    883  "CA%T" /*format*/,
    -
    884  480 /*offsetCode (7200/15)*/,
    -
    885  0 /*offsetRemainder (7200%15)*/,
    -
    886  0 /*deltaMinutes*/,
    -
    887  2000 /*untilYear*/,
    -
    888  1 /*untilMonth*/,
    -
    889  15 /*untilDay*/,
    -
    890  2880 /*untilTimeCode (43200/15)*/,
    -
    891  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    892  },
    -
    893  // 3:00 - EAT 2021 Feb 1 00:00
    -
    894  {
    -
    895  nullptr /*zonePolicy*/,
    -
    896  "EAT" /*format*/,
    -
    897  720 /*offsetCode (10800/15)*/,
    -
    898  0 /*offsetRemainder (10800%15)*/,
    -
    899  0 /*deltaMinutes*/,
    -
    900  2021 /*untilYear*/,
    -
    901  2 /*untilMonth*/,
    -
    902  1 /*untilDay*/,
    -
    903  0 /*untilTimeCode (0/15)*/,
    -
    904  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    905  },
    -
    906  // 2:00 - CAT
    -
    907  {
    -
    908  nullptr /*zonePolicy*/,
    -
    909  "CAT" /*format*/,
    -
    910  480 /*offsetCode (7200/15)*/,
    -
    911  0 /*offsetRemainder (7200%15)*/,
    -
    912  0 /*deltaMinutes*/,
    -
    913  32767 /*untilYear*/,
    -
    914  1 /*untilMonth*/,
    -
    915  1 /*untilDay*/,
    -
    916  0 /*untilTimeCode (0/15)*/,
    -
    917  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    918  },
    -
    919 
    -
    920 };
    -
    921 
    -
    922 static const char kZoneNameAfrica_Juba[] ACE_TIME_PROGMEM = "\x01" "Juba";
    -
    923 
    -
    924 const complete::Info::ZoneInfo kZoneAfrica_Juba ACE_TIME_PROGMEM = {
    -
    925  kZoneNameAfrica_Juba /*name*/,
    -
    926  0xd51b395c /*zoneId*/,
    -
    927  &kZoneContext /*zoneContext*/,
    -
    928  4 /*numEras*/,
    -
    929  kZoneEraAfrica_Juba /*eras*/,
    -
    930  nullptr /*targetInfo*/,
    -
    931 };
    -
    932 
    -
    933 //---------------------------------------------------------------------------
    -
    934 // Zone name: Africa/Khartoum
    -
    935 // Eras: 4
    -
    936 //---------------------------------------------------------------------------
    -
    937 
    -
    938 static const complete::Info::ZoneEra kZoneEraAfrica_Khartoum[] ACE_TIME_PROGMEM = {
    -
    939  // 2:10:08 - LMT 1931
    -
    940  {
    -
    941  nullptr /*zonePolicy*/,
    -
    942  "LMT" /*format*/,
    -
    943  520 /*offsetCode (7808/15)*/,
    -
    944  8 /*offsetRemainder (7808%15)*/,
    -
    945  0 /*deltaMinutes*/,
    -
    946  1931 /*untilYear*/,
    -
    947  1 /*untilMonth*/,
    -
    948  1 /*untilDay*/,
    -
    949  0 /*untilTimeCode (0/15)*/,
    -
    950  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    951  },
    -
    952  // 2:00 Sudan CA%sT 2000 Jan 15 12:00
    -
    953  {
    -
    954  &kZonePolicySudan /*zonePolicy*/,
    -
    955  "CA%T" /*format*/,
    -
    956  480 /*offsetCode (7200/15)*/,
    -
    957  0 /*offsetRemainder (7200%15)*/,
    -
    958  0 /*deltaMinutes*/,
    -
    959  2000 /*untilYear*/,
    -
    960  1 /*untilMonth*/,
    -
    961  15 /*untilDay*/,
    -
    962  2880 /*untilTimeCode (43200/15)*/,
    -
    963  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    964  },
    -
    965  // 3:00 - EAT 2017 Nov 1
    -
    966  {
    -
    967  nullptr /*zonePolicy*/,
    -
    968  "EAT" /*format*/,
    -
    969  720 /*offsetCode (10800/15)*/,
    -
    970  0 /*offsetRemainder (10800%15)*/,
    -
    971  0 /*deltaMinutes*/,
    -
    972  2017 /*untilYear*/,
    -
    973  11 /*untilMonth*/,
    -
    974  1 /*untilDay*/,
    -
    975  0 /*untilTimeCode (0/15)*/,
    -
    976  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    977  },
    -
    978  // 2:00 - CAT
    -
    979  {
    -
    980  nullptr /*zonePolicy*/,
    -
    981  "CAT" /*format*/,
    -
    982  480 /*offsetCode (7200/15)*/,
    -
    983  0 /*offsetRemainder (7200%15)*/,
    -
    984  0 /*deltaMinutes*/,
    -
    985  32767 /*untilYear*/,
    -
    986  1 /*untilMonth*/,
    -
    987  1 /*untilDay*/,
    -
    988  0 /*untilTimeCode (0/15)*/,
    -
    989  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    990  },
    -
    991 
    -
    992 };
    -
    993 
    -
    994 static const char kZoneNameAfrica_Khartoum[] ACE_TIME_PROGMEM = "\x01" "Khartoum";
    -
    995 
    -
    996 const complete::Info::ZoneInfo kZoneAfrica_Khartoum ACE_TIME_PROGMEM = {
    -
    997  kZoneNameAfrica_Khartoum /*name*/,
    -
    998  0xfb3d4205 /*zoneId*/,
    -
    999  &kZoneContext /*zoneContext*/,
    -
    1000  4 /*numEras*/,
    -
    1001  kZoneEraAfrica_Khartoum /*eras*/,
    -
    1002  nullptr /*targetInfo*/,
    -
    1003 };
    -
    1004 
    -
    1005 //---------------------------------------------------------------------------
    -
    1006 // Zone name: Africa/Lagos
    -
    1007 // Eras: 5
    -
    1008 //---------------------------------------------------------------------------
    -
    1009 
    -
    1010 static const complete::Info::ZoneEra kZoneEraAfrica_Lagos[] ACE_TIME_PROGMEM = {
    -
    1011  // 0:13:35 - LMT 1905 Jul 1
    -
    1012  {
    -
    1013  nullptr /*zonePolicy*/,
    -
    1014  "LMT" /*format*/,
    -
    1015  54 /*offsetCode (815/15)*/,
    -
    1016  5 /*offsetRemainder (815%15)*/,
    -
    1017  0 /*deltaMinutes*/,
    -
    1018  1905 /*untilYear*/,
    -
    1019  7 /*untilMonth*/,
    -
    1020  1 /*untilDay*/,
    -
    1021  0 /*untilTimeCode (0/15)*/,
    -
    1022  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1023  },
    -
    1024  // 0:00 - GMT 1908 Jul 1
    -
    1025  {
    -
    1026  nullptr /*zonePolicy*/,
    -
    1027  "GMT" /*format*/,
    -
    1028  0 /*offsetCode (0/15)*/,
    -
    1029  0 /*offsetRemainder (0%15)*/,
    -
    1030  0 /*deltaMinutes*/,
    -
    1031  1908 /*untilYear*/,
    -
    1032  7 /*untilMonth*/,
    -
    1033  1 /*untilDay*/,
    -
    1034  0 /*untilTimeCode (0/15)*/,
    -
    1035  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1036  },
    -
    1037  // 0:13:35 - LMT 1914 Jan 1
    -
    1038  {
    -
    1039  nullptr /*zonePolicy*/,
    -
    1040  "LMT" /*format*/,
    -
    1041  54 /*offsetCode (815/15)*/,
    -
    1042  5 /*offsetRemainder (815%15)*/,
    -
    1043  0 /*deltaMinutes*/,
    -
    1044  1914 /*untilYear*/,
    -
    1045  1 /*untilMonth*/,
    -
    1046  1 /*untilDay*/,
    -
    1047  0 /*untilTimeCode (0/15)*/,
    -
    1048  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1049  },
    -
    1050  // 0:30 - %z 1919 Sep 1
    -
    1051  {
    -
    1052  nullptr /*zonePolicy*/,
    -
    1053  "" /*format*/,
    -
    1054  120 /*offsetCode (1800/15)*/,
    -
    1055  0 /*offsetRemainder (1800%15)*/,
    -
    1056  0 /*deltaMinutes*/,
    -
    1057  1919 /*untilYear*/,
    -
    1058  9 /*untilMonth*/,
    -
    1059  1 /*untilDay*/,
    -
    1060  0 /*untilTimeCode (0/15)*/,
    -
    1061  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1062  },
    -
    1063  // 1:00 - WAT
    -
    1064  {
    -
    1065  nullptr /*zonePolicy*/,
    -
    1066  "WAT" /*format*/,
    -
    1067  240 /*offsetCode (3600/15)*/,
    -
    1068  0 /*offsetRemainder (3600%15)*/,
    -
    1069  0 /*deltaMinutes*/,
    -
    1070  32767 /*untilYear*/,
    -
    1071  1 /*untilMonth*/,
    -
    1072  1 /*untilDay*/,
    -
    1073  0 /*untilTimeCode (0/15)*/,
    -
    1074  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1075  },
    -
    1076 
    -
    1077 };
    -
    1078 
    -
    1079 static const char kZoneNameAfrica_Lagos[] ACE_TIME_PROGMEM = "\x01" "Lagos";
    -
    1080 
    -
    1081 const complete::Info::ZoneInfo kZoneAfrica_Lagos ACE_TIME_PROGMEM = {
    -
    1082  kZoneNameAfrica_Lagos /*name*/,
    -
    1083  0x789bb5d0 /*zoneId*/,
    -
    1084  &kZoneContext /*zoneContext*/,
    -
    1085  5 /*numEras*/,
    -
    1086  kZoneEraAfrica_Lagos /*eras*/,
    -
    1087  nullptr /*targetInfo*/,
    -
    1088 };
    -
    1089 
    -
    1090 //---------------------------------------------------------------------------
    -
    1091 // Zone name: Africa/Maputo
    -
    1092 // Eras: 2
    -
    1093 //---------------------------------------------------------------------------
    -
    1094 
    -
    1095 static const complete::Info::ZoneEra kZoneEraAfrica_Maputo[] ACE_TIME_PROGMEM = {
    -
    1096  // 2:10:18 - LMT 1909
    -
    1097  {
    -
    1098  nullptr /*zonePolicy*/,
    -
    1099  "LMT" /*format*/,
    -
    1100  521 /*offsetCode (7818/15)*/,
    -
    1101  3 /*offsetRemainder (7818%15)*/,
    -
    1102  0 /*deltaMinutes*/,
    -
    1103  1909 /*untilYear*/,
    -
    1104  1 /*untilMonth*/,
    -
    1105  1 /*untilDay*/,
    -
    1106  0 /*untilTimeCode (0/15)*/,
    -
    1107  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1108  },
    -
    1109  // 2:00 - CAT
    -
    1110  {
    -
    1111  nullptr /*zonePolicy*/,
    -
    1112  "CAT" /*format*/,
    -
    1113  480 /*offsetCode (7200/15)*/,
    -
    1114  0 /*offsetRemainder (7200%15)*/,
    -
    1115  0 /*deltaMinutes*/,
    -
    1116  32767 /*untilYear*/,
    -
    1117  1 /*untilMonth*/,
    -
    1118  1 /*untilDay*/,
    -
    1119  0 /*untilTimeCode (0/15)*/,
    -
    1120  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1121  },
    -
    1122 
    -
    1123 };
    -
    1124 
    -
    1125 static const char kZoneNameAfrica_Maputo[] ACE_TIME_PROGMEM = "\x01" "Maputo";
    -
    1126 
    -
    1127 const complete::Info::ZoneInfo kZoneAfrica_Maputo ACE_TIME_PROGMEM = {
    -
    1128  kZoneNameAfrica_Maputo /*name*/,
    -
    1129  0x8e6ca1f0 /*zoneId*/,
    -
    1130  &kZoneContext /*zoneContext*/,
    -
    1131  2 /*numEras*/,
    -
    1132  kZoneEraAfrica_Maputo /*eras*/,
    -
    1133  nullptr /*targetInfo*/,
    -
    1134 };
    -
    1135 
    -
    1136 //---------------------------------------------------------------------------
    -
    1137 // Zone name: Africa/Monrovia
    -
    1138 // Eras: 4
    -
    1139 //---------------------------------------------------------------------------
    -
    1140 
    -
    1141 static const complete::Info::ZoneEra kZoneEraAfrica_Monrovia[] ACE_TIME_PROGMEM = {
    -
    1142  // -0:43:08 - LMT 1882
    -
    1143  {
    -
    1144  nullptr /*zonePolicy*/,
    -
    1145  "LMT" /*format*/,
    -
    1146  -173 /*offsetCode (-2588/15)*/,
    -
    1147  7 /*offsetRemainder (-2588%15)*/,
    -
    1148  0 /*deltaMinutes*/,
    -
    1149  1882 /*untilYear*/,
    -
    1150  1 /*untilMonth*/,
    -
    1151  1 /*untilDay*/,
    -
    1152  0 /*untilTimeCode (0/15)*/,
    -
    1153  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1154  },
    -
    1155  // -0:43:08 - MMT 1919 Mar
    -
    1156  {
    -
    1157  nullptr /*zonePolicy*/,
    -
    1158  "MMT" /*format*/,
    -
    1159  -173 /*offsetCode (-2588/15)*/,
    -
    1160  7 /*offsetRemainder (-2588%15)*/,
    -
    1161  0 /*deltaMinutes*/,
    -
    1162  1919 /*untilYear*/,
    -
    1163  3 /*untilMonth*/,
    -
    1164  1 /*untilDay*/,
    -
    1165  0 /*untilTimeCode (0/15)*/,
    -
    1166  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1167  },
    -
    1168  // -0:44:30 - MMT 1972 Jan 7
    -
    1169  {
    -
    1170  nullptr /*zonePolicy*/,
    -
    1171  "MMT" /*format*/,
    -
    1172  -178 /*offsetCode (-2670/15)*/,
    -
    1173  0 /*offsetRemainder (-2670%15)*/,
    -
    1174  0 /*deltaMinutes*/,
    -
    1175  1972 /*untilYear*/,
    -
    1176  1 /*untilMonth*/,
    -
    1177  7 /*untilDay*/,
    -
    1178  0 /*untilTimeCode (0/15)*/,
    -
    1179  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1180  },
    -
    1181  // 0:00 - GMT
    -
    1182  {
    -
    1183  nullptr /*zonePolicy*/,
    -
    1184  "GMT" /*format*/,
    -
    1185  0 /*offsetCode (0/15)*/,
    -
    1186  0 /*offsetRemainder (0%15)*/,
    -
    1187  0 /*deltaMinutes*/,
    -
    1188  32767 /*untilYear*/,
    -
    1189  1 /*untilMonth*/,
    -
    1190  1 /*untilDay*/,
    -
    1191  0 /*untilTimeCode (0/15)*/,
    -
    1192  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1193  },
    -
    1194 
    -
    1195 };
    -
    1196 
    -
    1197 static const char kZoneNameAfrica_Monrovia[] ACE_TIME_PROGMEM = "\x01" "Monrovia";
    -
    1198 
    -
    1199 const complete::Info::ZoneInfo kZoneAfrica_Monrovia ACE_TIME_PROGMEM = {
    -
    1200  kZoneNameAfrica_Monrovia /*name*/,
    -
    1201  0x0ce90385 /*zoneId*/,
    -
    1202  &kZoneContext /*zoneContext*/,
    -
    1203  4 /*numEras*/,
    -
    1204  kZoneEraAfrica_Monrovia /*eras*/,
    -
    1205  nullptr /*targetInfo*/,
    -
    1206 };
    -
    1207 
    -
    1208 //---------------------------------------------------------------------------
    -
    1209 // Zone name: Africa/Nairobi
    -
    1210 // Eras: 6
    -
    1211 //---------------------------------------------------------------------------
    -
    1212 
    -
    1213 static const complete::Info::ZoneEra kZoneEraAfrica_Nairobi[] ACE_TIME_PROGMEM = {
    -
    1214  // 2:27:16 - LMT 1908 May
    -
    1215  {
    -
    1216  nullptr /*zonePolicy*/,
    -
    1217  "LMT" /*format*/,
    -
    1218  589 /*offsetCode (8836/15)*/,
    -
    1219  1 /*offsetRemainder (8836%15)*/,
    -
    1220  0 /*deltaMinutes*/,
    -
    1221  1908 /*untilYear*/,
    -
    1222  5 /*untilMonth*/,
    -
    1223  1 /*untilDay*/,
    -
    1224  0 /*untilTimeCode (0/15)*/,
    -
    1225  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1226  },
    -
    1227  // 2:30 - %z 1928 Jun 30 24:00
    -
    1228  {
    -
    1229  nullptr /*zonePolicy*/,
    -
    1230  "" /*format*/,
    -
    1231  600 /*offsetCode (9000/15)*/,
    -
    1232  0 /*offsetRemainder (9000%15)*/,
    -
    1233  0 /*deltaMinutes*/,
    -
    1234  1928 /*untilYear*/,
    -
    1235  6 /*untilMonth*/,
    -
    1236  30 /*untilDay*/,
    -
    1237  5760 /*untilTimeCode (86400/15)*/,
    -
    1238  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1239  },
    -
    1240  // 3:00 - EAT 1930 Jan 4 24:00
    -
    1241  {
    -
    1242  nullptr /*zonePolicy*/,
    -
    1243  "EAT" /*format*/,
    -
    1244  720 /*offsetCode (10800/15)*/,
    -
    1245  0 /*offsetRemainder (10800%15)*/,
    -
    1246  0 /*deltaMinutes*/,
    -
    1247  1930 /*untilYear*/,
    -
    1248  1 /*untilMonth*/,
    -
    1249  4 /*untilDay*/,
    -
    1250  5760 /*untilTimeCode (86400/15)*/,
    -
    1251  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1252  },
    -
    1253  // 2:30 - %z 1936 Dec 31 24:00
    -
    1254  {
    -
    1255  nullptr /*zonePolicy*/,
    -
    1256  "" /*format*/,
    -
    1257  600 /*offsetCode (9000/15)*/,
    -
    1258  0 /*offsetRemainder (9000%15)*/,
    -
    1259  0 /*deltaMinutes*/,
    -
    1260  1936 /*untilYear*/,
    -
    1261  12 /*untilMonth*/,
    -
    1262  31 /*untilDay*/,
    -
    1263  5760 /*untilTimeCode (86400/15)*/,
    -
    1264  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1265  },
    -
    1266  // 2:45 - %z 1942 Jul 31 24:00
    -
    1267  {
    -
    1268  nullptr /*zonePolicy*/,
    -
    1269  "" /*format*/,
    -
    1270  660 /*offsetCode (9900/15)*/,
    -
    1271  0 /*offsetRemainder (9900%15)*/,
    -
    1272  0 /*deltaMinutes*/,
    -
    1273  1942 /*untilYear*/,
    -
    1274  7 /*untilMonth*/,
    -
    1275  31 /*untilDay*/,
    -
    1276  5760 /*untilTimeCode (86400/15)*/,
    -
    1277  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1278  },
    -
    1279  // 3:00 - EAT
    -
    1280  {
    -
    1281  nullptr /*zonePolicy*/,
    -
    1282  "EAT" /*format*/,
    -
    1283  720 /*offsetCode (10800/15)*/,
    -
    1284  0 /*offsetRemainder (10800%15)*/,
    -
    1285  0 /*deltaMinutes*/,
    -
    1286  32767 /*untilYear*/,
    -
    1287  1 /*untilMonth*/,
    -
    1288  1 /*untilDay*/,
    -
    1289  0 /*untilTimeCode (0/15)*/,
    -
    1290  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1291  },
    -
    1292 
    -
    1293 };
    -
    1294 
    -
    1295 static const char kZoneNameAfrica_Nairobi[] ACE_TIME_PROGMEM = "\x01" "Nairobi";
    -
    1296 
    -
    1297 const complete::Info::ZoneInfo kZoneAfrica_Nairobi ACE_TIME_PROGMEM = {
    -
    1298  kZoneNameAfrica_Nairobi /*name*/,
    -
    1299  0xa87ab57e /*zoneId*/,
    -
    1300  &kZoneContext /*zoneContext*/,
    -
    1301  6 /*numEras*/,
    -
    1302  kZoneEraAfrica_Nairobi /*eras*/,
    -
    1303  nullptr /*targetInfo*/,
    -
    1304 };
    -
    1305 
    -
    1306 //---------------------------------------------------------------------------
    -
    1307 // Zone name: Africa/Ndjamena
    -
    1308 // Eras: 4
    -
    1309 //---------------------------------------------------------------------------
    -
    1310 
    -
    1311 static const complete::Info::ZoneEra kZoneEraAfrica_Ndjamena[] ACE_TIME_PROGMEM = {
    -
    1312  // 1:00:12 - LMT 1912 Jan 1
    -
    1313  {
    -
    1314  nullptr /*zonePolicy*/,
    -
    1315  "LMT" /*format*/,
    -
    1316  240 /*offsetCode (3612/15)*/,
    -
    1317  12 /*offsetRemainder (3612%15)*/,
    -
    1318  0 /*deltaMinutes*/,
    -
    1319  1912 /*untilYear*/,
    -
    1320  1 /*untilMonth*/,
    -
    1321  1 /*untilDay*/,
    -
    1322  0 /*untilTimeCode (0/15)*/,
    -
    1323  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1324  },
    -
    1325  // 1:00 - WAT 1979 Oct 14
    -
    1326  {
    -
    1327  nullptr /*zonePolicy*/,
    -
    1328  "WAT" /*format*/,
    -
    1329  240 /*offsetCode (3600/15)*/,
    -
    1330  0 /*offsetRemainder (3600%15)*/,
    -
    1331  0 /*deltaMinutes*/,
    -
    1332  1979 /*untilYear*/,
    -
    1333  10 /*untilMonth*/,
    -
    1334  14 /*untilDay*/,
    -
    1335  0 /*untilTimeCode (0/15)*/,
    -
    1336  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1337  },
    -
    1338  // 1:00 1:00 WAST 1980 Mar 8
    -
    1339  {
    -
    1340  nullptr /*zonePolicy*/,
    -
    1341  "WAST" /*format*/,
    -
    1342  240 /*offsetCode (3600/15)*/,
    -
    1343  0 /*offsetRemainder (3600%15)*/,
    -
    1344  60 /*deltaMinutes*/,
    -
    1345  1980 /*untilYear*/,
    -
    1346  3 /*untilMonth*/,
    -
    1347  8 /*untilDay*/,
    -
    1348  0 /*untilTimeCode (0/15)*/,
    -
    1349  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1350  },
    -
    1351  // 1:00 - WAT
    -
    1352  {
    -
    1353  nullptr /*zonePolicy*/,
    -
    1354  "WAT" /*format*/,
    -
    1355  240 /*offsetCode (3600/15)*/,
    -
    1356  0 /*offsetRemainder (3600%15)*/,
    -
    1357  0 /*deltaMinutes*/,
    -
    1358  32767 /*untilYear*/,
    -
    1359  1 /*untilMonth*/,
    -
    1360  1 /*untilDay*/,
    -
    1361  0 /*untilTimeCode (0/15)*/,
    -
    1362  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1363  },
    -
    1364 
    -
    1365 };
    -
    1366 
    -
    1367 static const char kZoneNameAfrica_Ndjamena[] ACE_TIME_PROGMEM = "\x01" "Ndjamena";
    -
    1368 
    -
    1369 const complete::Info::ZoneInfo kZoneAfrica_Ndjamena ACE_TIME_PROGMEM = {
    -
    1370  kZoneNameAfrica_Ndjamena /*name*/,
    -
    1371  0x9fe09898 /*zoneId*/,
    -
    1372  &kZoneContext /*zoneContext*/,
    -
    1373  4 /*numEras*/,
    -
    1374  kZoneEraAfrica_Ndjamena /*eras*/,
    -
    1375  nullptr /*targetInfo*/,
    -
    1376 };
    -
    1377 
    -
    1378 //---------------------------------------------------------------------------
    -
    1379 // Zone name: Africa/Sao_Tome
    -
    1380 // Eras: 5
    -
    1381 //---------------------------------------------------------------------------
    -
    1382 
    -
    1383 static const complete::Info::ZoneEra kZoneEraAfrica_Sao_Tome[] ACE_TIME_PROGMEM = {
    -
    1384  // 0:26:56 - LMT 1884
    -
    1385  {
    -
    1386  nullptr /*zonePolicy*/,
    -
    1387  "LMT" /*format*/,
    -
    1388  107 /*offsetCode (1616/15)*/,
    -
    1389  11 /*offsetRemainder (1616%15)*/,
    -
    1390  0 /*deltaMinutes*/,
    -
    1391  1884 /*untilYear*/,
    -
    1392  1 /*untilMonth*/,
    -
    1393  1 /*untilDay*/,
    -
    1394  0 /*untilTimeCode (0/15)*/,
    -
    1395  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1396  },
    -
    1397  // -0:36:45 - LMT 1912 Jan 1 00:00u
    -
    1398  {
    -
    1399  nullptr /*zonePolicy*/,
    -
    1400  "LMT" /*format*/,
    -
    1401  -147 /*offsetCode (-2205/15)*/,
    -
    1402  0 /*offsetRemainder (-2205%15)*/,
    -
    1403  0 /*deltaMinutes*/,
    -
    1404  1912 /*untilYear*/,
    -
    1405  1 /*untilMonth*/,
    -
    1406  1 /*untilDay*/,
    -
    1407  0 /*untilTimeCode (0/15)*/,
    -
    1408  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    1409  },
    -
    1410  // 0:00 - GMT 2018 Jan 1 01:00
    -
    1411  {
    -
    1412  nullptr /*zonePolicy*/,
    -
    1413  "GMT" /*format*/,
    -
    1414  0 /*offsetCode (0/15)*/,
    -
    1415  0 /*offsetRemainder (0%15)*/,
    -
    1416  0 /*deltaMinutes*/,
    -
    1417  2018 /*untilYear*/,
    -
    1418  1 /*untilMonth*/,
    -
    1419  1 /*untilDay*/,
    -
    1420  240 /*untilTimeCode (3600/15)*/,
    -
    1421  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1422  },
    -
    1423  // 1:00 - WAT 2019 Jan 1 02:00
    -
    1424  {
    -
    1425  nullptr /*zonePolicy*/,
    -
    1426  "WAT" /*format*/,
    -
    1427  240 /*offsetCode (3600/15)*/,
    -
    1428  0 /*offsetRemainder (3600%15)*/,
    -
    1429  0 /*deltaMinutes*/,
    -
    1430  2019 /*untilYear*/,
    -
    1431  1 /*untilMonth*/,
    -
    1432  1 /*untilDay*/,
    -
    1433  480 /*untilTimeCode (7200/15)*/,
    -
    1434  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1435  },
    -
    1436  // 0:00 - GMT
    -
    1437  {
    -
    1438  nullptr /*zonePolicy*/,
    -
    1439  "GMT" /*format*/,
    -
    1440  0 /*offsetCode (0/15)*/,
    -
    1441  0 /*offsetRemainder (0%15)*/,
    -
    1442  0 /*deltaMinutes*/,
    -
    1443  32767 /*untilYear*/,
    -
    1444  1 /*untilMonth*/,
    -
    1445  1 /*untilDay*/,
    -
    1446  0 /*untilTimeCode (0/15)*/,
    -
    1447  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1448  },
    -
    1449 
    -
    1450 };
    -
    1451 
    -
    1452 static const char kZoneNameAfrica_Sao_Tome[] ACE_TIME_PROGMEM = "\x01" "Sao_Tome";
    -
    1453 
    -
    1454 const complete::Info::ZoneInfo kZoneAfrica_Sao_Tome ACE_TIME_PROGMEM = {
    -
    1455  kZoneNameAfrica_Sao_Tome /*name*/,
    -
    1456  0x61b319d1 /*zoneId*/,
    -
    1457  &kZoneContext /*zoneContext*/,
    -
    1458  5 /*numEras*/,
    -
    1459  kZoneEraAfrica_Sao_Tome /*eras*/,
    -
    1460  nullptr /*targetInfo*/,
    -
    1461 };
    -
    1462 
    -
    1463 //---------------------------------------------------------------------------
    -
    1464 // Zone name: Africa/Tripoli
    -
    1465 // Eras: 9
    -
    1466 //---------------------------------------------------------------------------
    -
    1467 
    -
    1468 static const complete::Info::ZoneEra kZoneEraAfrica_Tripoli[] ACE_TIME_PROGMEM = {
    -
    1469  // 0:52:44 - LMT 1920
    -
    1470  {
    -
    1471  nullptr /*zonePolicy*/,
    -
    1472  "LMT" /*format*/,
    -
    1473  210 /*offsetCode (3164/15)*/,
    -
    1474  14 /*offsetRemainder (3164%15)*/,
    -
    1475  0 /*deltaMinutes*/,
    -
    1476  1920 /*untilYear*/,
    -
    1477  1 /*untilMonth*/,
    -
    1478  1 /*untilDay*/,
    -
    1479  0 /*untilTimeCode (0/15)*/,
    -
    1480  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1481  },
    -
    1482  // 1:00 Libya CE%sT 1959
    -
    1483  {
    -
    1484  &kZonePolicyLibya /*zonePolicy*/,
    -
    1485  "CE%T" /*format*/,
    -
    1486  240 /*offsetCode (3600/15)*/,
    -
    1487  0 /*offsetRemainder (3600%15)*/,
    -
    1488  0 /*deltaMinutes*/,
    -
    1489  1959 /*untilYear*/,
    -
    1490  1 /*untilMonth*/,
    -
    1491  1 /*untilDay*/,
    -
    1492  0 /*untilTimeCode (0/15)*/,
    -
    1493  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1494  },
    -
    1495  // 2:00 - EET 1982
    -
    1496  {
    -
    1497  nullptr /*zonePolicy*/,
    -
    1498  "EET" /*format*/,
    -
    1499  480 /*offsetCode (7200/15)*/,
    -
    1500  0 /*offsetRemainder (7200%15)*/,
    -
    1501  0 /*deltaMinutes*/,
    -
    1502  1982 /*untilYear*/,
    -
    1503  1 /*untilMonth*/,
    -
    1504  1 /*untilDay*/,
    -
    1505  0 /*untilTimeCode (0/15)*/,
    -
    1506  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1507  },
    -
    1508  // 1:00 Libya CE%sT 1990 May 4
    -
    1509  {
    -
    1510  &kZonePolicyLibya /*zonePolicy*/,
    -
    1511  "CE%T" /*format*/,
    -
    1512  240 /*offsetCode (3600/15)*/,
    -
    1513  0 /*offsetRemainder (3600%15)*/,
    -
    1514  0 /*deltaMinutes*/,
    -
    1515  1990 /*untilYear*/,
    -
    1516  5 /*untilMonth*/,
    -
    1517  4 /*untilDay*/,
    -
    1518  0 /*untilTimeCode (0/15)*/,
    -
    1519  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1520  },
    -
    1521  // 2:00 - EET 1996 Sep 30
    -
    1522  {
    -
    1523  nullptr /*zonePolicy*/,
    -
    1524  "EET" /*format*/,
    -
    1525  480 /*offsetCode (7200/15)*/,
    -
    1526  0 /*offsetRemainder (7200%15)*/,
    -
    1527  0 /*deltaMinutes*/,
    -
    1528  1996 /*untilYear*/,
    -
    1529  9 /*untilMonth*/,
    -
    1530  30 /*untilDay*/,
    -
    1531  0 /*untilTimeCode (0/15)*/,
    -
    1532  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1533  },
    -
    1534  // 1:00 Libya CE%sT 1997 Oct 4
    -
    1535  {
    -
    1536  &kZonePolicyLibya /*zonePolicy*/,
    -
    1537  "CE%T" /*format*/,
    -
    1538  240 /*offsetCode (3600/15)*/,
    -
    1539  0 /*offsetRemainder (3600%15)*/,
    -
    1540  0 /*deltaMinutes*/,
    -
    1541  1997 /*untilYear*/,
    -
    1542  10 /*untilMonth*/,
    -
    1543  4 /*untilDay*/,
    -
    1544  0 /*untilTimeCode (0/15)*/,
    -
    1545  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1546  },
    -
    1547  // 2:00 - EET 2012 Nov 10 2:00
    -
    1548  {
    -
    1549  nullptr /*zonePolicy*/,
    -
    1550  "EET" /*format*/,
    -
    1551  480 /*offsetCode (7200/15)*/,
    -
    1552  0 /*offsetRemainder (7200%15)*/,
    -
    1553  0 /*deltaMinutes*/,
    -
    1554  2012 /*untilYear*/,
    -
    1555  11 /*untilMonth*/,
    -
    1556  10 /*untilDay*/,
    -
    1557  480 /*untilTimeCode (7200/15)*/,
    -
    1558  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1559  },
    -
    1560  // 1:00 Libya CE%sT 2013 Oct 25 2:00
    -
    1561  {
    -
    1562  &kZonePolicyLibya /*zonePolicy*/,
    -
    1563  "CE%T" /*format*/,
    -
    1564  240 /*offsetCode (3600/15)*/,
    -
    1565  0 /*offsetRemainder (3600%15)*/,
    -
    1566  0 /*deltaMinutes*/,
    -
    1567  2013 /*untilYear*/,
    -
    1568  10 /*untilMonth*/,
    -
    1569  25 /*untilDay*/,
    -
    1570  480 /*untilTimeCode (7200/15)*/,
    -
    1571  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1572  },
    -
    1573  // 2:00 - EET
    -
    1574  {
    -
    1575  nullptr /*zonePolicy*/,
    -
    1576  "EET" /*format*/,
    -
    1577  480 /*offsetCode (7200/15)*/,
    -
    1578  0 /*offsetRemainder (7200%15)*/,
    -
    1579  0 /*deltaMinutes*/,
    -
    1580  32767 /*untilYear*/,
    -
    1581  1 /*untilMonth*/,
    -
    1582  1 /*untilDay*/,
    -
    1583  0 /*untilTimeCode (0/15)*/,
    -
    1584  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1585  },
    -
    1586 
    -
    1587 };
    -
    1588 
    -
    1589 static const char kZoneNameAfrica_Tripoli[] ACE_TIME_PROGMEM = "\x01" "Tripoli";
    -
    1590 
    -
    1591 const complete::Info::ZoneInfo kZoneAfrica_Tripoli ACE_TIME_PROGMEM = {
    -
    1592  kZoneNameAfrica_Tripoli /*name*/,
    -
    1593  0x9dfebd3d /*zoneId*/,
    -
    1594  &kZoneContext /*zoneContext*/,
    -
    1595  9 /*numEras*/,
    -
    1596  kZoneEraAfrica_Tripoli /*eras*/,
    -
    1597  nullptr /*targetInfo*/,
    -
    1598 };
    -
    1599 
    -
    1600 //---------------------------------------------------------------------------
    -
    1601 // Zone name: Africa/Tunis
    -
    1602 // Eras: 3
    -
    1603 //---------------------------------------------------------------------------
    -
    1604 
    -
    1605 static const complete::Info::ZoneEra kZoneEraAfrica_Tunis[] ACE_TIME_PROGMEM = {
    -
    1606  // 0:40:44 - LMT 1881 May 12
    -
    1607  {
    -
    1608  nullptr /*zonePolicy*/,
    -
    1609  "LMT" /*format*/,
    -
    1610  162 /*offsetCode (2444/15)*/,
    -
    1611  14 /*offsetRemainder (2444%15)*/,
    -
    1612  0 /*deltaMinutes*/,
    -
    1613  1881 /*untilYear*/,
    -
    1614  5 /*untilMonth*/,
    -
    1615  12 /*untilDay*/,
    -
    1616  0 /*untilTimeCode (0/15)*/,
    -
    1617  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1618  },
    -
    1619  // 0:09:21 - PMT 1911 Mar 11
    -
    1620  {
    -
    1621  nullptr /*zonePolicy*/,
    -
    1622  "PMT" /*format*/,
    -
    1623  37 /*offsetCode (561/15)*/,
    -
    1624  6 /*offsetRemainder (561%15)*/,
    -
    1625  0 /*deltaMinutes*/,
    -
    1626  1911 /*untilYear*/,
    -
    1627  3 /*untilMonth*/,
    -
    1628  11 /*untilDay*/,
    -
    1629  0 /*untilTimeCode (0/15)*/,
    -
    1630  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1631  },
    -
    1632  // 1:00 Tunisia CE%sT
    -
    1633  {
    -
    1634  &kZonePolicyTunisia /*zonePolicy*/,
    -
    1635  "CE%T" /*format*/,
    -
    1636  240 /*offsetCode (3600/15)*/,
    -
    1637  0 /*offsetRemainder (3600%15)*/,
    -
    1638  0 /*deltaMinutes*/,
    -
    1639  32767 /*untilYear*/,
    -
    1640  1 /*untilMonth*/,
    -
    1641  1 /*untilDay*/,
    -
    1642  0 /*untilTimeCode (0/15)*/,
    -
    1643  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1644  },
    -
    1645 
    -
    1646 };
    -
    1647 
    -
    1648 static const char kZoneNameAfrica_Tunis[] ACE_TIME_PROGMEM = "\x01" "Tunis";
    -
    1649 
    -
    1650 const complete::Info::ZoneInfo kZoneAfrica_Tunis ACE_TIME_PROGMEM = {
    -
    1651  kZoneNameAfrica_Tunis /*name*/,
    -
    1652  0x79378e6d /*zoneId*/,
    -
    1653  &kZoneContext /*zoneContext*/,
    -
    1654  3 /*numEras*/,
    -
    1655  kZoneEraAfrica_Tunis /*eras*/,
    -
    1656  nullptr /*targetInfo*/,
    -
    1657 };
    -
    1658 
    -
    1659 //---------------------------------------------------------------------------
    -
    1660 // Zone name: Africa/Windhoek
    -
    1661 // Eras: 6
    -
    1662 //---------------------------------------------------------------------------
    -
    1663 
    -
    1664 static const complete::Info::ZoneEra kZoneEraAfrica_Windhoek[] ACE_TIME_PROGMEM = {
    -
    1665  // 1:08:24 - LMT 1892 Feb 8
    -
    1666  {
    -
    1667  nullptr /*zonePolicy*/,
    -
    1668  "LMT" /*format*/,
    -
    1669  273 /*offsetCode (4104/15)*/,
    -
    1670  9 /*offsetRemainder (4104%15)*/,
    -
    1671  0 /*deltaMinutes*/,
    -
    1672  1892 /*untilYear*/,
    -
    1673  2 /*untilMonth*/,
    -
    1674  8 /*untilDay*/,
    -
    1675  0 /*untilTimeCode (0/15)*/,
    -
    1676  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1677  },
    -
    1678  // 1:30 - %z 1903 Mar
    -
    1679  {
    -
    1680  nullptr /*zonePolicy*/,
    -
    1681  "" /*format*/,
    -
    1682  360 /*offsetCode (5400/15)*/,
    -
    1683  0 /*offsetRemainder (5400%15)*/,
    -
    1684  0 /*deltaMinutes*/,
    -
    1685  1903 /*untilYear*/,
    -
    1686  3 /*untilMonth*/,
    -
    1687  1 /*untilDay*/,
    -
    1688  0 /*untilTimeCode (0/15)*/,
    -
    1689  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1690  },
    -
    1691  // 2:00 - SAST 1942 Sep 20 2:00
    -
    1692  {
    -
    1693  nullptr /*zonePolicy*/,
    -
    1694  "SAST" /*format*/,
    -
    1695  480 /*offsetCode (7200/15)*/,
    -
    1696  0 /*offsetRemainder (7200%15)*/,
    -
    1697  0 /*deltaMinutes*/,
    -
    1698  1942 /*untilYear*/,
    -
    1699  9 /*untilMonth*/,
    -
    1700  20 /*untilDay*/,
    -
    1701  480 /*untilTimeCode (7200/15)*/,
    -
    1702  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1703  },
    -
    1704  // 2:00 1:00 SAST 1943 Mar 21 2:00
    -
    1705  {
    -
    1706  nullptr /*zonePolicy*/,
    -
    1707  "SAST" /*format*/,
    -
    1708  480 /*offsetCode (7200/15)*/,
    -
    1709  0 /*offsetRemainder (7200%15)*/,
    -
    1710  60 /*deltaMinutes*/,
    -
    1711  1943 /*untilYear*/,
    -
    1712  3 /*untilMonth*/,
    -
    1713  21 /*untilDay*/,
    -
    1714  480 /*untilTimeCode (7200/15)*/,
    -
    1715  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1716  },
    -
    1717  // 2:00 - SAST 1990 Mar 21
    -
    1718  {
    -
    1719  nullptr /*zonePolicy*/,
    -
    1720  "SAST" /*format*/,
    -
    1721  480 /*offsetCode (7200/15)*/,
    -
    1722  0 /*offsetRemainder (7200%15)*/,
    -
    1723  0 /*deltaMinutes*/,
    -
    1724  1990 /*untilYear*/,
    -
    1725  3 /*untilMonth*/,
    -
    1726  21 /*untilDay*/,
    -
    1727  0 /*untilTimeCode (0/15)*/,
    -
    1728  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1729  },
    -
    1730  // 2:00 Namibia %s
    -
    1731  {
    -
    1732  &kZonePolicyNamibia /*zonePolicy*/,
    -
    1733  "%" /*format*/,
    -
    1734  480 /*offsetCode (7200/15)*/,
    -
    1735  0 /*offsetRemainder (7200%15)*/,
    -
    1736  0 /*deltaMinutes*/,
    -
    1737  32767 /*untilYear*/,
    -
    1738  1 /*untilMonth*/,
    -
    1739  1 /*untilDay*/,
    -
    1740  0 /*untilTimeCode (0/15)*/,
    -
    1741  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1742  },
    -
    1743 
    -
    1744 };
    -
    1745 
    -
    1746 static const char kZoneNameAfrica_Windhoek[] ACE_TIME_PROGMEM = "\x01" "Windhoek";
    -
    1747 
    -
    1748 const complete::Info::ZoneInfo kZoneAfrica_Windhoek ACE_TIME_PROGMEM = {
    -
    1749  kZoneNameAfrica_Windhoek /*name*/,
    -
    1750  0x789c9bd3 /*zoneId*/,
    -
    1751  &kZoneContext /*zoneContext*/,
    -
    1752  6 /*numEras*/,
    -
    1753  kZoneEraAfrica_Windhoek /*eras*/,
    -
    1754  nullptr /*targetInfo*/,
    -
    1755 };
    -
    1756 
    -
    1757 //---------------------------------------------------------------------------
    -
    1758 // Zone name: America/Adak
    -
    1759 // Eras: 9
    -
    1760 //---------------------------------------------------------------------------
    -
    1761 
    -
    1762 static const complete::Info::ZoneEra kZoneEraAmerica_Adak[] ACE_TIME_PROGMEM = {
    -
    1763  // 12:13:22 - LMT 1867 Oct 19 12:44:35
    -
    1764  {
    -
    1765  nullptr /*zonePolicy*/,
    -
    1766  "LMT" /*format*/,
    -
    1767  2933 /*offsetCode (44002/15)*/,
    -
    1768  7 /*offsetRemainder (44002%15)*/,
    -
    1769  0 /*deltaMinutes*/,
    -
    1770  1867 /*untilYear*/,
    -
    1771  10 /*untilMonth*/,
    -
    1772  19 /*untilDay*/,
    -
    1773  3058 /*untilTimeCode (45875/15)*/,
    -
    1774  5 /*untilTimeModifier (kAtcSuffixW + seconds=5)*/,
    -
    1775  },
    -
    1776  // -11:46:38 - LMT 1900 Aug 20 12:00
    -
    1777  {
    -
    1778  nullptr /*zonePolicy*/,
    -
    1779  "LMT" /*format*/,
    -
    1780  -2827 /*offsetCode (-42398/15)*/,
    -
    1781  7 /*offsetRemainder (-42398%15)*/,
    -
    1782  0 /*deltaMinutes*/,
    -
    1783  1900 /*untilYear*/,
    -
    1784  8 /*untilMonth*/,
    -
    1785  20 /*untilDay*/,
    -
    1786  2880 /*untilTimeCode (43200/15)*/,
    -
    1787  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1788  },
    -
    1789  // -11:00 - NST 1942
    -
    1790  {
    -
    1791  nullptr /*zonePolicy*/,
    -
    1792  "NST" /*format*/,
    -
    1793  -2640 /*offsetCode (-39600/15)*/,
    -
    1794  0 /*offsetRemainder (-39600%15)*/,
    -
    1795  0 /*deltaMinutes*/,
    -
    1796  1942 /*untilYear*/,
    -
    1797  1 /*untilMonth*/,
    -
    1798  1 /*untilDay*/,
    -
    1799  0 /*untilTimeCode (0/15)*/,
    -
    1800  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1801  },
    -
    1802  // -11:00 US N%sT 1946
    -
    1803  {
    -
    1804  &kZonePolicyUS /*zonePolicy*/,
    -
    1805  "N%T" /*format*/,
    -
    1806  -2640 /*offsetCode (-39600/15)*/,
    -
    1807  0 /*offsetRemainder (-39600%15)*/,
    -
    1808  0 /*deltaMinutes*/,
    -
    1809  1946 /*untilYear*/,
    -
    1810  1 /*untilMonth*/,
    -
    1811  1 /*untilDay*/,
    -
    1812  0 /*untilTimeCode (0/15)*/,
    -
    1813  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1814  },
    -
    1815  // -11:00 - NST 1967 Apr
    -
    1816  {
    -
    1817  nullptr /*zonePolicy*/,
    -
    1818  "NST" /*format*/,
    -
    1819  -2640 /*offsetCode (-39600/15)*/,
    -
    1820  0 /*offsetRemainder (-39600%15)*/,
    -
    1821  0 /*deltaMinutes*/,
    -
    1822  1967 /*untilYear*/,
    -
    1823  4 /*untilMonth*/,
    -
    1824  1 /*untilDay*/,
    -
    1825  0 /*untilTimeCode (0/15)*/,
    -
    1826  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1827  },
    -
    1828  // -11:00 - BST 1969
    -
    1829  {
    -
    1830  nullptr /*zonePolicy*/,
    -
    1831  "BST" /*format*/,
    -
    1832  -2640 /*offsetCode (-39600/15)*/,
    -
    1833  0 /*offsetRemainder (-39600%15)*/,
    -
    1834  0 /*deltaMinutes*/,
    -
    1835  1969 /*untilYear*/,
    -
    1836  1 /*untilMonth*/,
    -
    1837  1 /*untilDay*/,
    -
    1838  0 /*untilTimeCode (0/15)*/,
    -
    1839  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1840  },
    -
    1841  // -11:00 US B%sT 1983 Oct 30 2:00
    -
    1842  {
    -
    1843  &kZonePolicyUS /*zonePolicy*/,
    -
    1844  "B%T" /*format*/,
    -
    1845  -2640 /*offsetCode (-39600/15)*/,
    -
    1846  0 /*offsetRemainder (-39600%15)*/,
    -
    1847  0 /*deltaMinutes*/,
    -
    1848  1983 /*untilYear*/,
    -
    1849  10 /*untilMonth*/,
    -
    1850  30 /*untilDay*/,
    -
    1851  480 /*untilTimeCode (7200/15)*/,
    -
    1852  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1853  },
    -
    1854  // -10:00 US AH%sT 1983 Nov 30
    -
    1855  {
    -
    1856  &kZonePolicyUS /*zonePolicy*/,
    -
    1857  "AH%T" /*format*/,
    -
    1858  -2400 /*offsetCode (-36000/15)*/,
    -
    1859  0 /*offsetRemainder (-36000%15)*/,
    -
    1860  0 /*deltaMinutes*/,
    -
    1861  1983 /*untilYear*/,
    -
    1862  11 /*untilMonth*/,
    -
    1863  30 /*untilDay*/,
    -
    1864  0 /*untilTimeCode (0/15)*/,
    -
    1865  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1866  },
    -
    1867  // -10:00 US H%sT
    -
    1868  {
    -
    1869  &kZonePolicyUS /*zonePolicy*/,
    -
    1870  "H%T" /*format*/,
    -
    1871  -2400 /*offsetCode (-36000/15)*/,
    -
    1872  0 /*offsetRemainder (-36000%15)*/,
    -
    1873  0 /*deltaMinutes*/,
    -
    1874  32767 /*untilYear*/,
    -
    1875  1 /*untilMonth*/,
    -
    1876  1 /*untilDay*/,
    -
    1877  0 /*untilTimeCode (0/15)*/,
    -
    1878  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1879  },
    -
    1880 
    -
    1881 };
    -
    1882 
    -
    1883 static const char kZoneNameAmerica_Adak[] ACE_TIME_PROGMEM = "\x02" "Adak";
    -
    1884 
    -
    1885 const complete::Info::ZoneInfo kZoneAmerica_Adak ACE_TIME_PROGMEM = {
    -
    1886  kZoneNameAmerica_Adak /*name*/,
    -
    1887  0x97fe49d7 /*zoneId*/,
    -
    1888  &kZoneContext /*zoneContext*/,
    -
    1889  9 /*numEras*/,
    -
    1890  kZoneEraAmerica_Adak /*eras*/,
    -
    1891  nullptr /*targetInfo*/,
    -
    1892 };
    -
    1893 
    -
    1894 //---------------------------------------------------------------------------
    -
    1895 // Zone name: America/Anchorage
    -
    1896 // Eras: 8
    -
    1897 //---------------------------------------------------------------------------
    -
    1898 
    -
    1899 static const complete::Info::ZoneEra kZoneEraAmerica_Anchorage[] ACE_TIME_PROGMEM = {
    -
    1900  // 14:00:24 - LMT 1867 Oct 19 14:31:37
    -
    1901  {
    -
    1902  nullptr /*zonePolicy*/,
    -
    1903  "LMT" /*format*/,
    -
    1904  3361 /*offsetCode (50424/15)*/,
    -
    1905  9 /*offsetRemainder (50424%15)*/,
    -
    1906  0 /*deltaMinutes*/,
    -
    1907  1867 /*untilYear*/,
    -
    1908  10 /*untilMonth*/,
    -
    1909  19 /*untilDay*/,
    -
    1910  3486 /*untilTimeCode (52297/15)*/,
    -
    1911  7 /*untilTimeModifier (kAtcSuffixW + seconds=7)*/,
    -
    1912  },
    -
    1913  // -9:59:36 - LMT 1900 Aug 20 12:00
    -
    1914  {
    -
    1915  nullptr /*zonePolicy*/,
    -
    1916  "LMT" /*format*/,
    -
    1917  -2399 /*offsetCode (-35976/15)*/,
    -
    1918  9 /*offsetRemainder (-35976%15)*/,
    -
    1919  0 /*deltaMinutes*/,
    -
    1920  1900 /*untilYear*/,
    -
    1921  8 /*untilMonth*/,
    -
    1922  20 /*untilDay*/,
    -
    1923  2880 /*untilTimeCode (43200/15)*/,
    -
    1924  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1925  },
    -
    1926  // -10:00 - AST 1942
    -
    1927  {
    -
    1928  nullptr /*zonePolicy*/,
    -
    1929  "AST" /*format*/,
    -
    1930  -2400 /*offsetCode (-36000/15)*/,
    -
    1931  0 /*offsetRemainder (-36000%15)*/,
    -
    1932  0 /*deltaMinutes*/,
    -
    1933  1942 /*untilYear*/,
    -
    1934  1 /*untilMonth*/,
    -
    1935  1 /*untilDay*/,
    -
    1936  0 /*untilTimeCode (0/15)*/,
    -
    1937  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1938  },
    -
    1939  // -10:00 US A%sT 1967 Apr
    -
    1940  {
    -
    1941  &kZonePolicyUS /*zonePolicy*/,
    -
    1942  "A%T" /*format*/,
    -
    1943  -2400 /*offsetCode (-36000/15)*/,
    -
    1944  0 /*offsetRemainder (-36000%15)*/,
    -
    1945  0 /*deltaMinutes*/,
    -
    1946  1967 /*untilYear*/,
    -
    1947  4 /*untilMonth*/,
    -
    1948  1 /*untilDay*/,
    -
    1949  0 /*untilTimeCode (0/15)*/,
    -
    1950  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1951  },
    -
    1952  // -10:00 - AHST 1969
    -
    1953  {
    -
    1954  nullptr /*zonePolicy*/,
    -
    1955  "AHST" /*format*/,
    -
    1956  -2400 /*offsetCode (-36000/15)*/,
    -
    1957  0 /*offsetRemainder (-36000%15)*/,
    -
    1958  0 /*deltaMinutes*/,
    -
    1959  1969 /*untilYear*/,
    -
    1960  1 /*untilMonth*/,
    -
    1961  1 /*untilDay*/,
    -
    1962  0 /*untilTimeCode (0/15)*/,
    -
    1963  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1964  },
    -
    1965  // -10:00 US AH%sT 1983 Oct 30 2:00
    -
    1966  {
    -
    1967  &kZonePolicyUS /*zonePolicy*/,
    -
    1968  "AH%T" /*format*/,
    -
    1969  -2400 /*offsetCode (-36000/15)*/,
    -
    1970  0 /*offsetRemainder (-36000%15)*/,
    -
    1971  0 /*deltaMinutes*/,
    -
    1972  1983 /*untilYear*/,
    -
    1973  10 /*untilMonth*/,
    -
    1974  30 /*untilDay*/,
    -
    1975  480 /*untilTimeCode (7200/15)*/,
    -
    1976  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1977  },
    -
    1978  // -9:00 US Y%sT 1983 Nov 30
    -
    1979  {
    -
    1980  &kZonePolicyUS /*zonePolicy*/,
    -
    1981  "Y%T" /*format*/,
    -
    1982  -2160 /*offsetCode (-32400/15)*/,
    -
    1983  0 /*offsetRemainder (-32400%15)*/,
    -
    1984  0 /*deltaMinutes*/,
    -
    1985  1983 /*untilYear*/,
    -
    1986  11 /*untilMonth*/,
    -
    1987  30 /*untilDay*/,
    -
    1988  0 /*untilTimeCode (0/15)*/,
    -
    1989  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1990  },
    -
    1991  // -9:00 US AK%sT
    -
    1992  {
    -
    1993  &kZonePolicyUS /*zonePolicy*/,
    -
    1994  "AK%T" /*format*/,
    -
    1995  -2160 /*offsetCode (-32400/15)*/,
    -
    1996  0 /*offsetRemainder (-32400%15)*/,
    -
    1997  0 /*deltaMinutes*/,
    -
    1998  32767 /*untilYear*/,
    -
    1999  1 /*untilMonth*/,
    -
    2000  1 /*untilDay*/,
    -
    2001  0 /*untilTimeCode (0/15)*/,
    -
    2002  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2003  },
    -
    2004 
    -
    2005 };
    -
    2006 
    -
    2007 static const char kZoneNameAmerica_Anchorage[] ACE_TIME_PROGMEM = "\x02" "Anchorage";
    -
    2008 
    -
    2009 const complete::Info::ZoneInfo kZoneAmerica_Anchorage ACE_TIME_PROGMEM = {
    -
    2010  kZoneNameAmerica_Anchorage /*name*/,
    -
    2011  0x5a79260e /*zoneId*/,
    -
    2012  &kZoneContext /*zoneContext*/,
    -
    2013  8 /*numEras*/,
    -
    2014  kZoneEraAmerica_Anchorage /*eras*/,
    -
    2015  nullptr /*targetInfo*/,
    -
    2016 };
    -
    2017 
    -
    2018 //---------------------------------------------------------------------------
    -
    2019 // Zone name: America/Araguaina
    -
    2020 // Eras: 7
    -
    2021 //---------------------------------------------------------------------------
    -
    2022 
    -
    2023 static const complete::Info::ZoneEra kZoneEraAmerica_Araguaina[] ACE_TIME_PROGMEM = {
    -
    2024  // -3:12:48 - LMT 1914
    -
    2025  {
    -
    2026  nullptr /*zonePolicy*/,
    -
    2027  "LMT" /*format*/,
    -
    2028  -772 /*offsetCode (-11568/15)*/,
    -
    2029  12 /*offsetRemainder (-11568%15)*/,
    -
    2030  0 /*deltaMinutes*/,
    -
    2031  1914 /*untilYear*/,
    -
    2032  1 /*untilMonth*/,
    -
    2033  1 /*untilDay*/,
    -
    2034  0 /*untilTimeCode (0/15)*/,
    -
    2035  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2036  },
    -
    2037  // -3:00 Brazil %z 1990 Sep 17
    -
    2038  {
    -
    2039  &kZonePolicyBrazil /*zonePolicy*/,
    -
    2040  "" /*format*/,
    -
    2041  -720 /*offsetCode (-10800/15)*/,
    -
    2042  0 /*offsetRemainder (-10800%15)*/,
    -
    2043  0 /*deltaMinutes*/,
    -
    2044  1990 /*untilYear*/,
    -
    2045  9 /*untilMonth*/,
    -
    2046  17 /*untilDay*/,
    -
    2047  0 /*untilTimeCode (0/15)*/,
    -
    2048  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2049  },
    -
    2050  // -3:00 - %z 1995 Sep 14
    -
    2051  {
    -
    2052  nullptr /*zonePolicy*/,
    -
    2053  "" /*format*/,
    -
    2054  -720 /*offsetCode (-10800/15)*/,
    -
    2055  0 /*offsetRemainder (-10800%15)*/,
    -
    2056  0 /*deltaMinutes*/,
    -
    2057  1995 /*untilYear*/,
    -
    2058  9 /*untilMonth*/,
    -
    2059  14 /*untilDay*/,
    -
    2060  0 /*untilTimeCode (0/15)*/,
    -
    2061  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2062  },
    -
    2063  // -3:00 Brazil %z 2003 Sep 24
    -
    2064  {
    -
    2065  &kZonePolicyBrazil /*zonePolicy*/,
    -
    2066  "" /*format*/,
    -
    2067  -720 /*offsetCode (-10800/15)*/,
    -
    2068  0 /*offsetRemainder (-10800%15)*/,
    -
    2069  0 /*deltaMinutes*/,
    -
    2070  2003 /*untilYear*/,
    -
    2071  9 /*untilMonth*/,
    -
    2072  24 /*untilDay*/,
    -
    2073  0 /*untilTimeCode (0/15)*/,
    -
    2074  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2075  },
    -
    2076  // -3:00 - %z 2012 Oct 21
    -
    2077  {
    -
    2078  nullptr /*zonePolicy*/,
    -
    2079  "" /*format*/,
    -
    2080  -720 /*offsetCode (-10800/15)*/,
    -
    2081  0 /*offsetRemainder (-10800%15)*/,
    -
    2082  0 /*deltaMinutes*/,
    -
    2083  2012 /*untilYear*/,
    -
    2084  10 /*untilMonth*/,
    -
    2085  21 /*untilDay*/,
    -
    2086  0 /*untilTimeCode (0/15)*/,
    -
    2087  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2088  },
    -
    2089  // -3:00 Brazil %z 2013 Sep
    -
    2090  {
    -
    2091  &kZonePolicyBrazil /*zonePolicy*/,
    -
    2092  "" /*format*/,
    -
    2093  -720 /*offsetCode (-10800/15)*/,
    -
    2094  0 /*offsetRemainder (-10800%15)*/,
    -
    2095  0 /*deltaMinutes*/,
    -
    2096  2013 /*untilYear*/,
    -
    2097  9 /*untilMonth*/,
    -
    2098  1 /*untilDay*/,
    -
    2099  0 /*untilTimeCode (0/15)*/,
    -
    2100  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2101  },
    -
    2102  // -3:00 - %z
    -
    2103  {
    -
    2104  nullptr /*zonePolicy*/,
    -
    2105  "" /*format*/,
    -
    2106  -720 /*offsetCode (-10800/15)*/,
    -
    2107  0 /*offsetRemainder (-10800%15)*/,
    -
    2108  0 /*deltaMinutes*/,
    -
    2109  32767 /*untilYear*/,
    -
    2110  1 /*untilMonth*/,
    -
    2111  1 /*untilDay*/,
    -
    2112  0 /*untilTimeCode (0/15)*/,
    -
    2113  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2114  },
    -
    2115 
    -
    2116 };
    -
    2117 
    -
    2118 static const char kZoneNameAmerica_Araguaina[] ACE_TIME_PROGMEM = "\x02" "Araguaina";
    -
    2119 
    -
    2120 const complete::Info::ZoneInfo kZoneAmerica_Araguaina ACE_TIME_PROGMEM = {
    -
    2121  kZoneNameAmerica_Araguaina /*name*/,
    -
    2122  0x6f9a3aef /*zoneId*/,
    -
    2123  &kZoneContext /*zoneContext*/,
    -
    2124  7 /*numEras*/,
    -
    2125  kZoneEraAmerica_Araguaina /*eras*/,
    -
    2126  nullptr /*targetInfo*/,
    -
    2127 };
    -
    2128 
    -
    2129 //---------------------------------------------------------------------------
    -
    2130 // Zone name: America/Argentina/Buenos_Aires
    -
    2131 // Eras: 7
    -
    2132 //---------------------------------------------------------------------------
    -
    2133 
    -
    2134 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Buenos_Aires[] ACE_TIME_PROGMEM = {
    -
    2135  // -3:53:48 - LMT 1894 Oct 31
    -
    2136  {
    -
    2137  nullptr /*zonePolicy*/,
    -
    2138  "LMT" /*format*/,
    -
    2139  -936 /*offsetCode (-14028/15)*/,
    -
    2140  12 /*offsetRemainder (-14028%15)*/,
    -
    2141  0 /*deltaMinutes*/,
    -
    2142  1894 /*untilYear*/,
    -
    2143  10 /*untilMonth*/,
    -
    2144  31 /*untilDay*/,
    -
    2145  0 /*untilTimeCode (0/15)*/,
    -
    2146  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2147  },
    -
    2148  // -4:16:48 - CMT 1920 May
    -
    2149  {
    -
    2150  nullptr /*zonePolicy*/,
    -
    2151  "CMT" /*format*/,
    -
    2152  -1028 /*offsetCode (-15408/15)*/,
    -
    2153  12 /*offsetRemainder (-15408%15)*/,
    -
    2154  0 /*deltaMinutes*/,
    -
    2155  1920 /*untilYear*/,
    -
    2156  5 /*untilMonth*/,
    -
    2157  1 /*untilDay*/,
    -
    2158  0 /*untilTimeCode (0/15)*/,
    -
    2159  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2160  },
    -
    2161  // -4:00 - %z 1930 Dec
    -
    2162  {
    -
    2163  nullptr /*zonePolicy*/,
    -
    2164  "" /*format*/,
    -
    2165  -960 /*offsetCode (-14400/15)*/,
    -
    2166  0 /*offsetRemainder (-14400%15)*/,
    -
    2167  0 /*deltaMinutes*/,
    -
    2168  1930 /*untilYear*/,
    -
    2169  12 /*untilMonth*/,
    -
    2170  1 /*untilDay*/,
    -
    2171  0 /*untilTimeCode (0/15)*/,
    -
    2172  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2173  },
    -
    2174  // -4:00 Arg %z 1969 Oct 5
    -
    2175  {
    -
    2176  &kZonePolicyArg /*zonePolicy*/,
    -
    2177  "" /*format*/,
    -
    2178  -960 /*offsetCode (-14400/15)*/,
    -
    2179  0 /*offsetRemainder (-14400%15)*/,
    -
    2180  0 /*deltaMinutes*/,
    -
    2181  1969 /*untilYear*/,
    -
    2182  10 /*untilMonth*/,
    -
    2183  5 /*untilDay*/,
    -
    2184  0 /*untilTimeCode (0/15)*/,
    -
    2185  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2186  },
    -
    2187  // -3:00 Arg %z 1999 Oct 3
    -
    2188  {
    -
    2189  &kZonePolicyArg /*zonePolicy*/,
    -
    2190  "" /*format*/,
    -
    2191  -720 /*offsetCode (-10800/15)*/,
    -
    2192  0 /*offsetRemainder (-10800%15)*/,
    -
    2193  0 /*deltaMinutes*/,
    -
    2194  1999 /*untilYear*/,
    -
    2195  10 /*untilMonth*/,
    -
    2196  3 /*untilDay*/,
    -
    2197  0 /*untilTimeCode (0/15)*/,
    -
    2198  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2199  },
    -
    2200  // -4:00 Arg %z 2000 Mar 3
    -
    2201  {
    -
    2202  &kZonePolicyArg /*zonePolicy*/,
    -
    2203  "" /*format*/,
    -
    2204  -960 /*offsetCode (-14400/15)*/,
    -
    2205  0 /*offsetRemainder (-14400%15)*/,
    -
    2206  0 /*deltaMinutes*/,
    -
    2207  2000 /*untilYear*/,
    -
    2208  3 /*untilMonth*/,
    -
    2209  3 /*untilDay*/,
    -
    2210  0 /*untilTimeCode (0/15)*/,
    -
    2211  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2212  },
    -
    2213  // -3:00 Arg %z
    -
    2214  {
    -
    2215  &kZonePolicyArg /*zonePolicy*/,
    -
    2216  "" /*format*/,
    -
    2217  -720 /*offsetCode (-10800/15)*/,
    -
    2218  0 /*offsetRemainder (-10800%15)*/,
    -
    2219  0 /*deltaMinutes*/,
    -
    2220  32767 /*untilYear*/,
    -
    2221  1 /*untilMonth*/,
    -
    2222  1 /*untilDay*/,
    -
    2223  0 /*untilTimeCode (0/15)*/,
    -
    2224  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2225  },
    -
    2226 
    -
    2227 };
    -
    2228 
    -
    2229 static const char kZoneNameAmerica_Argentina_Buenos_Aires[] ACE_TIME_PROGMEM = "\x02" "\x04" "Buenos_Aires";
    -
    2230 
    -
    2231 const complete::Info::ZoneInfo kZoneAmerica_Argentina_Buenos_Aires ACE_TIME_PROGMEM = {
    -
    2232  kZoneNameAmerica_Argentina_Buenos_Aires /*name*/,
    -
    2233  0xd43b4c0d /*zoneId*/,
    -
    2234  &kZoneContext /*zoneContext*/,
    -
    2235  7 /*numEras*/,
    -
    2236  kZoneEraAmerica_Argentina_Buenos_Aires /*eras*/,
    -
    2237  nullptr /*targetInfo*/,
    -
    2238 };
    -
    2239 
    -
    2240 //---------------------------------------------------------------------------
    -
    2241 // Zone name: America/Argentina/Catamarca
    -
    2242 // Eras: 12
    -
    2243 //---------------------------------------------------------------------------
    -
    2244 
    -
    2245 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Catamarca[] ACE_TIME_PROGMEM = {
    -
    2246  // -4:23:08 - LMT 1894 Oct 31
    -
    2247  {
    -
    2248  nullptr /*zonePolicy*/,
    -
    2249  "LMT" /*format*/,
    -
    2250  -1053 /*offsetCode (-15788/15)*/,
    -
    2251  7 /*offsetRemainder (-15788%15)*/,
    -
    2252  0 /*deltaMinutes*/,
    -
    2253  1894 /*untilYear*/,
    -
    2254  10 /*untilMonth*/,
    -
    2255  31 /*untilDay*/,
    -
    2256  0 /*untilTimeCode (0/15)*/,
    -
    2257  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2258  },
    -
    2259  // -4:16:48 - CMT 1920 May
    -
    2260  {
    -
    2261  nullptr /*zonePolicy*/,
    -
    2262  "CMT" /*format*/,
    -
    2263  -1028 /*offsetCode (-15408/15)*/,
    -
    2264  12 /*offsetRemainder (-15408%15)*/,
    -
    2265  0 /*deltaMinutes*/,
    -
    2266  1920 /*untilYear*/,
    -
    2267  5 /*untilMonth*/,
    -
    2268  1 /*untilDay*/,
    -
    2269  0 /*untilTimeCode (0/15)*/,
    -
    2270  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2271  },
    -
    2272  // -4:00 - %z 1930 Dec
    -
    2273  {
    -
    2274  nullptr /*zonePolicy*/,
    -
    2275  "" /*format*/,
    -
    2276  -960 /*offsetCode (-14400/15)*/,
    -
    2277  0 /*offsetRemainder (-14400%15)*/,
    -
    2278  0 /*deltaMinutes*/,
    -
    2279  1930 /*untilYear*/,
    -
    2280  12 /*untilMonth*/,
    -
    2281  1 /*untilDay*/,
    -
    2282  0 /*untilTimeCode (0/15)*/,
    -
    2283  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2284  },
    -
    2285  // -4:00 Arg %z 1969 Oct 5
    -
    2286  {
    -
    2287  &kZonePolicyArg /*zonePolicy*/,
    -
    2288  "" /*format*/,
    -
    2289  -960 /*offsetCode (-14400/15)*/,
    -
    2290  0 /*offsetRemainder (-14400%15)*/,
    -
    2291  0 /*deltaMinutes*/,
    -
    2292  1969 /*untilYear*/,
    -
    2293  10 /*untilMonth*/,
    -
    2294  5 /*untilDay*/,
    -
    2295  0 /*untilTimeCode (0/15)*/,
    -
    2296  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2297  },
    -
    2298  // -3:00 Arg %z 1991 Mar 3
    -
    2299  {
    -
    2300  &kZonePolicyArg /*zonePolicy*/,
    -
    2301  "" /*format*/,
    -
    2302  -720 /*offsetCode (-10800/15)*/,
    -
    2303  0 /*offsetRemainder (-10800%15)*/,
    -
    2304  0 /*deltaMinutes*/,
    -
    2305  1991 /*untilYear*/,
    -
    2306  3 /*untilMonth*/,
    -
    2307  3 /*untilDay*/,
    -
    2308  0 /*untilTimeCode (0/15)*/,
    -
    2309  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2310  },
    -
    2311  // -4:00 - %z 1991 Oct 20
    -
    2312  {
    -
    2313  nullptr /*zonePolicy*/,
    -
    2314  "" /*format*/,
    -
    2315  -960 /*offsetCode (-14400/15)*/,
    -
    2316  0 /*offsetRemainder (-14400%15)*/,
    -
    2317  0 /*deltaMinutes*/,
    -
    2318  1991 /*untilYear*/,
    -
    2319  10 /*untilMonth*/,
    -
    2320  20 /*untilDay*/,
    -
    2321  0 /*untilTimeCode (0/15)*/,
    -
    2322  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2323  },
    -
    2324  // -3:00 Arg %z 1999 Oct 3
    -
    2325  {
    -
    2326  &kZonePolicyArg /*zonePolicy*/,
    -
    2327  "" /*format*/,
    -
    2328  -720 /*offsetCode (-10800/15)*/,
    -
    2329  0 /*offsetRemainder (-10800%15)*/,
    -
    2330  0 /*deltaMinutes*/,
    -
    2331  1999 /*untilYear*/,
    -
    2332  10 /*untilMonth*/,
    -
    2333  3 /*untilDay*/,
    -
    2334  0 /*untilTimeCode (0/15)*/,
    -
    2335  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2336  },
    -
    2337  // -4:00 Arg %z 2000 Mar 3
    -
    2338  {
    -
    2339  &kZonePolicyArg /*zonePolicy*/,
    -
    2340  "" /*format*/,
    -
    2341  -960 /*offsetCode (-14400/15)*/,
    -
    2342  0 /*offsetRemainder (-14400%15)*/,
    -
    2343  0 /*deltaMinutes*/,
    -
    2344  2000 /*untilYear*/,
    -
    2345  3 /*untilMonth*/,
    -
    2346  3 /*untilDay*/,
    -
    2347  0 /*untilTimeCode (0/15)*/,
    -
    2348  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2349  },
    -
    2350  // -3:00 - %z 2004 Jun 1
    -
    2351  {
    -
    2352  nullptr /*zonePolicy*/,
    -
    2353  "" /*format*/,
    -
    2354  -720 /*offsetCode (-10800/15)*/,
    -
    2355  0 /*offsetRemainder (-10800%15)*/,
    -
    2356  0 /*deltaMinutes*/,
    -
    2357  2004 /*untilYear*/,
    -
    2358  6 /*untilMonth*/,
    -
    2359  1 /*untilDay*/,
    -
    2360  0 /*untilTimeCode (0/15)*/,
    -
    2361  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2362  },
    -
    2363  // -4:00 - %z 2004 Jun 20
    -
    2364  {
    -
    2365  nullptr /*zonePolicy*/,
    -
    2366  "" /*format*/,
    -
    2367  -960 /*offsetCode (-14400/15)*/,
    -
    2368  0 /*offsetRemainder (-14400%15)*/,
    -
    2369  0 /*deltaMinutes*/,
    -
    2370  2004 /*untilYear*/,
    -
    2371  6 /*untilMonth*/,
    -
    2372  20 /*untilDay*/,
    -
    2373  0 /*untilTimeCode (0/15)*/,
    -
    2374  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2375  },
    -
    2376  // -3:00 Arg %z 2008 Oct 18
    -
    2377  {
    -
    2378  &kZonePolicyArg /*zonePolicy*/,
    -
    2379  "" /*format*/,
    -
    2380  -720 /*offsetCode (-10800/15)*/,
    -
    2381  0 /*offsetRemainder (-10800%15)*/,
    -
    2382  0 /*deltaMinutes*/,
    -
    2383  2008 /*untilYear*/,
    -
    2384  10 /*untilMonth*/,
    -
    2385  18 /*untilDay*/,
    -
    2386  0 /*untilTimeCode (0/15)*/,
    -
    2387  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2388  },
    -
    2389  // -3:00 - %z
    -
    2390  {
    -
    2391  nullptr /*zonePolicy*/,
    -
    2392  "" /*format*/,
    -
    2393  -720 /*offsetCode (-10800/15)*/,
    -
    2394  0 /*offsetRemainder (-10800%15)*/,
    -
    2395  0 /*deltaMinutes*/,
    -
    2396  32767 /*untilYear*/,
    -
    2397  1 /*untilMonth*/,
    -
    2398  1 /*untilDay*/,
    -
    2399  0 /*untilTimeCode (0/15)*/,
    -
    2400  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2401  },
    -
    2402 
    -
    2403 };
    -
    2404 
    -
    2405 static const char kZoneNameAmerica_Argentina_Catamarca[] ACE_TIME_PROGMEM = "\x02" "\x04" "Catamarca";
    -
    2406 
    -
    2407 const complete::Info::ZoneInfo kZoneAmerica_Argentina_Catamarca ACE_TIME_PROGMEM = {
    -
    2408  kZoneNameAmerica_Argentina_Catamarca /*name*/,
    -
    2409  0x8d40986b /*zoneId*/,
    -
    2410  &kZoneContext /*zoneContext*/,
    -
    2411  12 /*numEras*/,
    -
    2412  kZoneEraAmerica_Argentina_Catamarca /*eras*/,
    -
    2413  nullptr /*targetInfo*/,
    -
    2414 };
    -
    2415 
    -
    2416 //---------------------------------------------------------------------------
    -
    2417 // Zone name: America/Argentina/Cordoba
    -
    2418 // Eras: 9
    -
    2419 //---------------------------------------------------------------------------
    -
    2420 
    -
    2421 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Cordoba[] ACE_TIME_PROGMEM = {
    -
    2422  // -4:16:48 - LMT 1894 Oct 31
    -
    2423  {
    -
    2424  nullptr /*zonePolicy*/,
    -
    2425  "LMT" /*format*/,
    -
    2426  -1028 /*offsetCode (-15408/15)*/,
    -
    2427  12 /*offsetRemainder (-15408%15)*/,
    -
    2428  0 /*deltaMinutes*/,
    -
    2429  1894 /*untilYear*/,
    -
    2430  10 /*untilMonth*/,
    -
    2431  31 /*untilDay*/,
    -
    2432  0 /*untilTimeCode (0/15)*/,
    -
    2433  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2434  },
    -
    2435  // -4:16:48 - CMT 1920 May
    -
    2436  {
    -
    2437  nullptr /*zonePolicy*/,
    -
    2438  "CMT" /*format*/,
    -
    2439  -1028 /*offsetCode (-15408/15)*/,
    -
    2440  12 /*offsetRemainder (-15408%15)*/,
    -
    2441  0 /*deltaMinutes*/,
    -
    2442  1920 /*untilYear*/,
    -
    2443  5 /*untilMonth*/,
    -
    2444  1 /*untilDay*/,
    -
    2445  0 /*untilTimeCode (0/15)*/,
    -
    2446  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2447  },
    -
    2448  // -4:00 - %z 1930 Dec
    -
    2449  {
    -
    2450  nullptr /*zonePolicy*/,
    -
    2451  "" /*format*/,
    -
    2452  -960 /*offsetCode (-14400/15)*/,
    -
    2453  0 /*offsetRemainder (-14400%15)*/,
    -
    2454  0 /*deltaMinutes*/,
    -
    2455  1930 /*untilYear*/,
    -
    2456  12 /*untilMonth*/,
    -
    2457  1 /*untilDay*/,
    -
    2458  0 /*untilTimeCode (0/15)*/,
    -
    2459  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2460  },
    -
    2461  // -4:00 Arg %z 1969 Oct 5
    -
    2462  {
    -
    2463  &kZonePolicyArg /*zonePolicy*/,
    -
    2464  "" /*format*/,
    -
    2465  -960 /*offsetCode (-14400/15)*/,
    -
    2466  0 /*offsetRemainder (-14400%15)*/,
    -
    2467  0 /*deltaMinutes*/,
    -
    2468  1969 /*untilYear*/,
    -
    2469  10 /*untilMonth*/,
    -
    2470  5 /*untilDay*/,
    -
    2471  0 /*untilTimeCode (0/15)*/,
    -
    2472  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2473  },
    -
    2474  // -3:00 Arg %z 1991 Mar 3
    -
    2475  {
    -
    2476  &kZonePolicyArg /*zonePolicy*/,
    -
    2477  "" /*format*/,
    -
    2478  -720 /*offsetCode (-10800/15)*/,
    -
    2479  0 /*offsetRemainder (-10800%15)*/,
    -
    2480  0 /*deltaMinutes*/,
    -
    2481  1991 /*untilYear*/,
    -
    2482  3 /*untilMonth*/,
    -
    2483  3 /*untilDay*/,
    -
    2484  0 /*untilTimeCode (0/15)*/,
    -
    2485  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2486  },
    -
    2487  // -4:00 - %z 1991 Oct 20
    -
    2488  {
    -
    2489  nullptr /*zonePolicy*/,
    -
    2490  "" /*format*/,
    -
    2491  -960 /*offsetCode (-14400/15)*/,
    -
    2492  0 /*offsetRemainder (-14400%15)*/,
    -
    2493  0 /*deltaMinutes*/,
    -
    2494  1991 /*untilYear*/,
    -
    2495  10 /*untilMonth*/,
    -
    2496  20 /*untilDay*/,
    -
    2497  0 /*untilTimeCode (0/15)*/,
    -
    2498  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2499  },
    -
    2500  // -3:00 Arg %z 1999 Oct 3
    -
    2501  {
    -
    2502  &kZonePolicyArg /*zonePolicy*/,
    -
    2503  "" /*format*/,
    -
    2504  -720 /*offsetCode (-10800/15)*/,
    -
    2505  0 /*offsetRemainder (-10800%15)*/,
    -
    2506  0 /*deltaMinutes*/,
    -
    2507  1999 /*untilYear*/,
    -
    2508  10 /*untilMonth*/,
    -
    2509  3 /*untilDay*/,
    -
    2510  0 /*untilTimeCode (0/15)*/,
    -
    2511  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2512  },
    -
    2513  // -4:00 Arg %z 2000 Mar 3
    -
    2514  {
    -
    2515  &kZonePolicyArg /*zonePolicy*/,
    -
    2516  "" /*format*/,
    -
    2517  -960 /*offsetCode (-14400/15)*/,
    -
    2518  0 /*offsetRemainder (-14400%15)*/,
    -
    2519  0 /*deltaMinutes*/,
    -
    2520  2000 /*untilYear*/,
    -
    2521  3 /*untilMonth*/,
    -
    2522  3 /*untilDay*/,
    -
    2523  0 /*untilTimeCode (0/15)*/,
    -
    2524  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2525  },
    -
    2526  // -3:00 Arg %z
    -
    2527  {
    -
    2528  &kZonePolicyArg /*zonePolicy*/,
    -
    2529  "" /*format*/,
    -
    2530  -720 /*offsetCode (-10800/15)*/,
    -
    2531  0 /*offsetRemainder (-10800%15)*/,
    -
    2532  0 /*deltaMinutes*/,
    -
    2533  32767 /*untilYear*/,
    -
    2534  1 /*untilMonth*/,
    -
    2535  1 /*untilDay*/,
    -
    2536  0 /*untilTimeCode (0/15)*/,
    -
    2537  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2538  },
    -
    2539 
    -
    2540 };
    -
    2541 
    -
    2542 static const char kZoneNameAmerica_Argentina_Cordoba[] ACE_TIME_PROGMEM = "\x02" "\x04" "Cordoba";
    -
    2543 
    -
    2544 const complete::Info::ZoneInfo kZoneAmerica_Argentina_Cordoba ACE_TIME_PROGMEM = {
    -
    2545  kZoneNameAmerica_Argentina_Cordoba /*name*/,
    -
    2546  0xbfccc308 /*zoneId*/,
    -
    2547  &kZoneContext /*zoneContext*/,
    -
    2548  9 /*numEras*/,
    -
    2549  kZoneEraAmerica_Argentina_Cordoba /*eras*/,
    -
    2550  nullptr /*targetInfo*/,
    -
    2551 };
    -
    2552 
    -
    2553 //---------------------------------------------------------------------------
    -
    2554 // Zone name: America/Argentina/Jujuy
    -
    2555 // Eras: 13
    -
    2556 //---------------------------------------------------------------------------
    -
    2557 
    -
    2558 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Jujuy[] ACE_TIME_PROGMEM = {
    -
    2559  // -4:21:12 - LMT 1894 Oct 31
    -
    2560  {
    -
    2561  nullptr /*zonePolicy*/,
    -
    2562  "LMT" /*format*/,
    -
    2563  -1045 /*offsetCode (-15672/15)*/,
    -
    2564  3 /*offsetRemainder (-15672%15)*/,
    -
    2565  0 /*deltaMinutes*/,
    -
    2566  1894 /*untilYear*/,
    -
    2567  10 /*untilMonth*/,
    -
    2568  31 /*untilDay*/,
    -
    2569  0 /*untilTimeCode (0/15)*/,
    -
    2570  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2571  },
    -
    2572  // -4:16:48 - CMT 1920 May
    -
    2573  {
    -
    2574  nullptr /*zonePolicy*/,
    -
    2575  "CMT" /*format*/,
    -
    2576  -1028 /*offsetCode (-15408/15)*/,
    -
    2577  12 /*offsetRemainder (-15408%15)*/,
    -
    2578  0 /*deltaMinutes*/,
    -
    2579  1920 /*untilYear*/,
    -
    2580  5 /*untilMonth*/,
    -
    2581  1 /*untilDay*/,
    -
    2582  0 /*untilTimeCode (0/15)*/,
    -
    2583  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2584  },
    -
    2585  // -4:00 - %z 1930 Dec
    -
    2586  {
    -
    2587  nullptr /*zonePolicy*/,
    -
    2588  "" /*format*/,
    -
    2589  -960 /*offsetCode (-14400/15)*/,
    -
    2590  0 /*offsetRemainder (-14400%15)*/,
    -
    2591  0 /*deltaMinutes*/,
    -
    2592  1930 /*untilYear*/,
    -
    2593  12 /*untilMonth*/,
    -
    2594  1 /*untilDay*/,
    -
    2595  0 /*untilTimeCode (0/15)*/,
    -
    2596  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2597  },
    -
    2598  // -4:00 Arg %z 1969 Oct 5
    -
    2599  {
    -
    2600  &kZonePolicyArg /*zonePolicy*/,
    -
    2601  "" /*format*/,
    -
    2602  -960 /*offsetCode (-14400/15)*/,
    -
    2603  0 /*offsetRemainder (-14400%15)*/,
    -
    2604  0 /*deltaMinutes*/,
    -
    2605  1969 /*untilYear*/,
    -
    2606  10 /*untilMonth*/,
    -
    2607  5 /*untilDay*/,
    -
    2608  0 /*untilTimeCode (0/15)*/,
    -
    2609  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2610  },
    -
    2611  // -3:00 Arg %z 1990 Mar 4
    -
    2612  {
    -
    2613  &kZonePolicyArg /*zonePolicy*/,
    -
    2614  "" /*format*/,
    -
    2615  -720 /*offsetCode (-10800/15)*/,
    -
    2616  0 /*offsetRemainder (-10800%15)*/,
    -
    2617  0 /*deltaMinutes*/,
    -
    2618  1990 /*untilYear*/,
    -
    2619  3 /*untilMonth*/,
    -
    2620  4 /*untilDay*/,
    -
    2621  0 /*untilTimeCode (0/15)*/,
    -
    2622  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2623  },
    -
    2624  // -4:00 - %z 1990 Oct 28
    -
    2625  {
    -
    2626  nullptr /*zonePolicy*/,
    -
    2627  "" /*format*/,
    -
    2628  -960 /*offsetCode (-14400/15)*/,
    -
    2629  0 /*offsetRemainder (-14400%15)*/,
    -
    2630  0 /*deltaMinutes*/,
    -
    2631  1990 /*untilYear*/,
    -
    2632  10 /*untilMonth*/,
    -
    2633  28 /*untilDay*/,
    -
    2634  0 /*untilTimeCode (0/15)*/,
    -
    2635  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2636  },
    -
    2637  // -4:00 1:00 %z 1991 Mar 17
    -
    2638  {
    -
    2639  nullptr /*zonePolicy*/,
    -
    2640  "" /*format*/,
    -
    2641  -960 /*offsetCode (-14400/15)*/,
    -
    2642  0 /*offsetRemainder (-14400%15)*/,
    -
    2643  60 /*deltaMinutes*/,
    -
    2644  1991 /*untilYear*/,
    -
    2645  3 /*untilMonth*/,
    -
    2646  17 /*untilDay*/,
    -
    2647  0 /*untilTimeCode (0/15)*/,
    -
    2648  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2649  },
    -
    2650  // -4:00 - %z 1991 Oct 6
    -
    2651  {
    -
    2652  nullptr /*zonePolicy*/,
    -
    2653  "" /*format*/,
    -
    2654  -960 /*offsetCode (-14400/15)*/,
    -
    2655  0 /*offsetRemainder (-14400%15)*/,
    -
    2656  0 /*deltaMinutes*/,
    -
    2657  1991 /*untilYear*/,
    -
    2658  10 /*untilMonth*/,
    -
    2659  6 /*untilDay*/,
    -
    2660  0 /*untilTimeCode (0/15)*/,
    -
    2661  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2662  },
    -
    2663  // -3:00 1:00 %z 1992
    -
    2664  {
    -
    2665  nullptr /*zonePolicy*/,
    -
    2666  "" /*format*/,
    -
    2667  -720 /*offsetCode (-10800/15)*/,
    -
    2668  0 /*offsetRemainder (-10800%15)*/,
    -
    2669  60 /*deltaMinutes*/,
    -
    2670  1992 /*untilYear*/,
    -
    2671  1 /*untilMonth*/,
    -
    2672  1 /*untilDay*/,
    -
    2673  0 /*untilTimeCode (0/15)*/,
    -
    2674  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2675  },
    -
    2676  // -3:00 Arg %z 1999 Oct 3
    -
    2677  {
    -
    2678  &kZonePolicyArg /*zonePolicy*/,
    -
    2679  "" /*format*/,
    -
    2680  -720 /*offsetCode (-10800/15)*/,
    -
    2681  0 /*offsetRemainder (-10800%15)*/,
    -
    2682  0 /*deltaMinutes*/,
    -
    2683  1999 /*untilYear*/,
    -
    2684  10 /*untilMonth*/,
    -
    2685  3 /*untilDay*/,
    -
    2686  0 /*untilTimeCode (0/15)*/,
    -
    2687  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2688  },
    -
    2689  // -4:00 Arg %z 2000 Mar 3
    -
    2690  {
    -
    2691  &kZonePolicyArg /*zonePolicy*/,
    -
    2692  "" /*format*/,
    -
    2693  -960 /*offsetCode (-14400/15)*/,
    -
    2694  0 /*offsetRemainder (-14400%15)*/,
    -
    2695  0 /*deltaMinutes*/,
    -
    2696  2000 /*untilYear*/,
    -
    2697  3 /*untilMonth*/,
    -
    2698  3 /*untilDay*/,
    -
    2699  0 /*untilTimeCode (0/15)*/,
    -
    2700  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2701  },
    -
    2702  // -3:00 Arg %z 2008 Oct 18
    -
    2703  {
    -
    2704  &kZonePolicyArg /*zonePolicy*/,
    -
    2705  "" /*format*/,
    -
    2706  -720 /*offsetCode (-10800/15)*/,
    -
    2707  0 /*offsetRemainder (-10800%15)*/,
    -
    2708  0 /*deltaMinutes*/,
    -
    2709  2008 /*untilYear*/,
    -
    2710  10 /*untilMonth*/,
    -
    2711  18 /*untilDay*/,
    -
    2712  0 /*untilTimeCode (0/15)*/,
    -
    2713  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2714  },
    -
    2715  // -3:00 - %z
    -
    2716  {
    -
    2717  nullptr /*zonePolicy*/,
    -
    2718  "" /*format*/,
    -
    2719  -720 /*offsetCode (-10800/15)*/,
    -
    2720  0 /*offsetRemainder (-10800%15)*/,
    -
    2721  0 /*deltaMinutes*/,
    -
    2722  32767 /*untilYear*/,
    -
    2723  1 /*untilMonth*/,
    -
    2724  1 /*untilDay*/,
    -
    2725  0 /*untilTimeCode (0/15)*/,
    -
    2726  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2727  },
    -
    2728 
    -
    2729 };
    -
    2730 
    -
    2731 static const char kZoneNameAmerica_Argentina_Jujuy[] ACE_TIME_PROGMEM = "\x02" "\x04" "Jujuy";
    -
    2732 
    -
    2733 const complete::Info::ZoneInfo kZoneAmerica_Argentina_Jujuy ACE_TIME_PROGMEM = {
    -
    2734  kZoneNameAmerica_Argentina_Jujuy /*name*/,
    -
    2735  0x5f2f46c5 /*zoneId*/,
    -
    2736  &kZoneContext /*zoneContext*/,
    -
    2737  13 /*numEras*/,
    -
    2738  kZoneEraAmerica_Argentina_Jujuy /*eras*/,
    -
    2739  nullptr /*targetInfo*/,
    -
    2740 };
    -
    2741 
    -
    2742 //---------------------------------------------------------------------------
    -
    2743 // Zone name: America/Argentina/La_Rioja
    -
    2744 // Eras: 12
    -
    2745 //---------------------------------------------------------------------------
    -
    2746 
    -
    2747 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_La_Rioja[] ACE_TIME_PROGMEM = {
    -
    2748  // -4:27:24 - LMT 1894 Oct 31
    -
    2749  {
    -
    2750  nullptr /*zonePolicy*/,
    -
    2751  "LMT" /*format*/,
    -
    2752  -1070 /*offsetCode (-16044/15)*/,
    -
    2753  6 /*offsetRemainder (-16044%15)*/,
    -
    2754  0 /*deltaMinutes*/,
    -
    2755  1894 /*untilYear*/,
    -
    2756  10 /*untilMonth*/,
    -
    2757  31 /*untilDay*/,
    -
    2758  0 /*untilTimeCode (0/15)*/,
    -
    2759  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2760  },
    -
    2761  // -4:16:48 - CMT 1920 May
    -
    2762  {
    -
    2763  nullptr /*zonePolicy*/,
    -
    2764  "CMT" /*format*/,
    -
    2765  -1028 /*offsetCode (-15408/15)*/,
    -
    2766  12 /*offsetRemainder (-15408%15)*/,
    -
    2767  0 /*deltaMinutes*/,
    -
    2768  1920 /*untilYear*/,
    -
    2769  5 /*untilMonth*/,
    -
    2770  1 /*untilDay*/,
    -
    2771  0 /*untilTimeCode (0/15)*/,
    -
    2772  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2773  },
    -
    2774  // -4:00 - %z 1930 Dec
    -
    2775  {
    -
    2776  nullptr /*zonePolicy*/,
    -
    2777  "" /*format*/,
    -
    2778  -960 /*offsetCode (-14400/15)*/,
    -
    2779  0 /*offsetRemainder (-14400%15)*/,
    -
    2780  0 /*deltaMinutes*/,
    -
    2781  1930 /*untilYear*/,
    -
    2782  12 /*untilMonth*/,
    -
    2783  1 /*untilDay*/,
    -
    2784  0 /*untilTimeCode (0/15)*/,
    -
    2785  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2786  },
    -
    2787  // -4:00 Arg %z 1969 Oct 5
    -
    2788  {
    -
    2789  &kZonePolicyArg /*zonePolicy*/,
    -
    2790  "" /*format*/,
    -
    2791  -960 /*offsetCode (-14400/15)*/,
    -
    2792  0 /*offsetRemainder (-14400%15)*/,
    -
    2793  0 /*deltaMinutes*/,
    -
    2794  1969 /*untilYear*/,
    -
    2795  10 /*untilMonth*/,
    -
    2796  5 /*untilDay*/,
    -
    2797  0 /*untilTimeCode (0/15)*/,
    -
    2798  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2799  },
    -
    2800  // -3:00 Arg %z 1991 Mar 1
    -
    2801  {
    -
    2802  &kZonePolicyArg /*zonePolicy*/,
    -
    2803  "" /*format*/,
    -
    2804  -720 /*offsetCode (-10800/15)*/,
    -
    2805  0 /*offsetRemainder (-10800%15)*/,
    -
    2806  0 /*deltaMinutes*/,
    -
    2807  1991 /*untilYear*/,
    -
    2808  3 /*untilMonth*/,
    -
    2809  1 /*untilDay*/,
    -
    2810  0 /*untilTimeCode (0/15)*/,
    -
    2811  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2812  },
    -
    2813  // -4:00 - %z 1991 May 7
    -
    2814  {
    -
    2815  nullptr /*zonePolicy*/,
    -
    2816  "" /*format*/,
    -
    2817  -960 /*offsetCode (-14400/15)*/,
    -
    2818  0 /*offsetRemainder (-14400%15)*/,
    -
    2819  0 /*deltaMinutes*/,
    -
    2820  1991 /*untilYear*/,
    -
    2821  5 /*untilMonth*/,
    -
    2822  7 /*untilDay*/,
    -
    2823  0 /*untilTimeCode (0/15)*/,
    -
    2824  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2825  },
    -
    2826  // -3:00 Arg %z 1999 Oct 3
    -
    2827  {
    -
    2828  &kZonePolicyArg /*zonePolicy*/,
    -
    2829  "" /*format*/,
    -
    2830  -720 /*offsetCode (-10800/15)*/,
    -
    2831  0 /*offsetRemainder (-10800%15)*/,
    -
    2832  0 /*deltaMinutes*/,
    -
    2833  1999 /*untilYear*/,
    -
    2834  10 /*untilMonth*/,
    -
    2835  3 /*untilDay*/,
    -
    2836  0 /*untilTimeCode (0/15)*/,
    -
    2837  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2838  },
    -
    2839  // -4:00 Arg %z 2000 Mar 3
    -
    2840  {
    -
    2841  &kZonePolicyArg /*zonePolicy*/,
    -
    2842  "" /*format*/,
    -
    2843  -960 /*offsetCode (-14400/15)*/,
    -
    2844  0 /*offsetRemainder (-14400%15)*/,
    -
    2845  0 /*deltaMinutes*/,
    -
    2846  2000 /*untilYear*/,
    -
    2847  3 /*untilMonth*/,
    -
    2848  3 /*untilDay*/,
    -
    2849  0 /*untilTimeCode (0/15)*/,
    -
    2850  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2851  },
    -
    2852  // -3:00 - %z 2004 Jun 1
    -
    2853  {
    -
    2854  nullptr /*zonePolicy*/,
    -
    2855  "" /*format*/,
    -
    2856  -720 /*offsetCode (-10800/15)*/,
    -
    2857  0 /*offsetRemainder (-10800%15)*/,
    -
    2858  0 /*deltaMinutes*/,
    -
    2859  2004 /*untilYear*/,
    -
    2860  6 /*untilMonth*/,
    -
    2861  1 /*untilDay*/,
    -
    2862  0 /*untilTimeCode (0/15)*/,
    -
    2863  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2864  },
    -
    2865  // -4:00 - %z 2004 Jun 20
    -
    2866  {
    -
    2867  nullptr /*zonePolicy*/,
    -
    2868  "" /*format*/,
    -
    2869  -960 /*offsetCode (-14400/15)*/,
    -
    2870  0 /*offsetRemainder (-14400%15)*/,
    -
    2871  0 /*deltaMinutes*/,
    -
    2872  2004 /*untilYear*/,
    -
    2873  6 /*untilMonth*/,
    -
    2874  20 /*untilDay*/,
    -
    2875  0 /*untilTimeCode (0/15)*/,
    -
    2876  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2877  },
    -
    2878  // -3:00 Arg %z 2008 Oct 18
    -
    2879  {
    -
    2880  &kZonePolicyArg /*zonePolicy*/,
    -
    2881  "" /*format*/,
    -
    2882  -720 /*offsetCode (-10800/15)*/,
    -
    2883  0 /*offsetRemainder (-10800%15)*/,
    -
    2884  0 /*deltaMinutes*/,
    -
    2885  2008 /*untilYear*/,
    -
    2886  10 /*untilMonth*/,
    -
    2887  18 /*untilDay*/,
    -
    2888  0 /*untilTimeCode (0/15)*/,
    -
    2889  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2890  },
    -
    2891  // -3:00 - %z
    -
    2892  {
    -
    2893  nullptr /*zonePolicy*/,
    -
    2894  "" /*format*/,
    -
    2895  -720 /*offsetCode (-10800/15)*/,
    -
    2896  0 /*offsetRemainder (-10800%15)*/,
    -
    2897  0 /*deltaMinutes*/,
    -
    2898  32767 /*untilYear*/,
    -
    2899  1 /*untilMonth*/,
    -
    2900  1 /*untilDay*/,
    -
    2901  0 /*untilTimeCode (0/15)*/,
    -
    2902  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2903  },
    -
    2904 
    -
    2905 };
    -
    2906 
    -
    2907 static const char kZoneNameAmerica_Argentina_La_Rioja[] ACE_TIME_PROGMEM = "\x02" "\x04" "La_Rioja";
    -
    2908 
    -
    2909 const complete::Info::ZoneInfo kZoneAmerica_Argentina_La_Rioja ACE_TIME_PROGMEM = {
    -
    2910  kZoneNameAmerica_Argentina_La_Rioja /*name*/,
    -
    2911  0xa46b7eef /*zoneId*/,
    -
    2912  &kZoneContext /*zoneContext*/,
    -
    2913  12 /*numEras*/,
    -
    2914  kZoneEraAmerica_Argentina_La_Rioja /*eras*/,
    -
    2915  nullptr /*targetInfo*/,
    -
    2916 };
    -
    2917 
    -
    2918 //---------------------------------------------------------------------------
    -
    2919 // Zone name: America/Argentina/Mendoza
    -
    2920 // Eras: 16
    -
    2921 //---------------------------------------------------------------------------
    -
    2922 
    -
    2923 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Mendoza[] ACE_TIME_PROGMEM = {
    -
    2924  // -4:35:16 - LMT 1894 Oct 31
    -
    2925  {
    -
    2926  nullptr /*zonePolicy*/,
    -
    2927  "LMT" /*format*/,
    -
    2928  -1102 /*offsetCode (-16516/15)*/,
    -
    2929  14 /*offsetRemainder (-16516%15)*/,
    -
    2930  0 /*deltaMinutes*/,
    -
    2931  1894 /*untilYear*/,
    -
    2932  10 /*untilMonth*/,
    -
    2933  31 /*untilDay*/,
    -
    2934  0 /*untilTimeCode (0/15)*/,
    -
    2935  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2936  },
    -
    2937  // -4:16:48 - CMT 1920 May
    -
    2938  {
    -
    2939  nullptr /*zonePolicy*/,
    -
    2940  "CMT" /*format*/,
    -
    2941  -1028 /*offsetCode (-15408/15)*/,
    -
    2942  12 /*offsetRemainder (-15408%15)*/,
    -
    2943  0 /*deltaMinutes*/,
    -
    2944  1920 /*untilYear*/,
    -
    2945  5 /*untilMonth*/,
    -
    2946  1 /*untilDay*/,
    -
    2947  0 /*untilTimeCode (0/15)*/,
    -
    2948  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2949  },
    -
    2950  // -4:00 - %z 1930 Dec
    -
    2951  {
    -
    2952  nullptr /*zonePolicy*/,
    -
    2953  "" /*format*/,
    -
    2954  -960 /*offsetCode (-14400/15)*/,
    -
    2955  0 /*offsetRemainder (-14400%15)*/,
    -
    2956  0 /*deltaMinutes*/,
    -
    2957  1930 /*untilYear*/,
    -
    2958  12 /*untilMonth*/,
    -
    2959  1 /*untilDay*/,
    -
    2960  0 /*untilTimeCode (0/15)*/,
    -
    2961  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2962  },
    -
    2963  // -4:00 Arg %z 1969 Oct 5
    -
    2964  {
    -
    2965  &kZonePolicyArg /*zonePolicy*/,
    -
    2966  "" /*format*/,
    -
    2967  -960 /*offsetCode (-14400/15)*/,
    -
    2968  0 /*offsetRemainder (-14400%15)*/,
    -
    2969  0 /*deltaMinutes*/,
    -
    2970  1969 /*untilYear*/,
    -
    2971  10 /*untilMonth*/,
    -
    2972  5 /*untilDay*/,
    -
    2973  0 /*untilTimeCode (0/15)*/,
    -
    2974  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2975  },
    -
    2976  // -3:00 Arg %z 1990 Mar 4
    -
    2977  {
    -
    2978  &kZonePolicyArg /*zonePolicy*/,
    -
    2979  "" /*format*/,
    -
    2980  -720 /*offsetCode (-10800/15)*/,
    -
    2981  0 /*offsetRemainder (-10800%15)*/,
    -
    2982  0 /*deltaMinutes*/,
    -
    2983  1990 /*untilYear*/,
    -
    2984  3 /*untilMonth*/,
    -
    2985  4 /*untilDay*/,
    -
    2986  0 /*untilTimeCode (0/15)*/,
    -
    2987  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2988  },
    -
    2989  // -4:00 - %z 1990 Oct 15
    -
    2990  {
    -
    2991  nullptr /*zonePolicy*/,
    -
    2992  "" /*format*/,
    -
    2993  -960 /*offsetCode (-14400/15)*/,
    -
    2994  0 /*offsetRemainder (-14400%15)*/,
    -
    2995  0 /*deltaMinutes*/,
    -
    2996  1990 /*untilYear*/,
    -
    2997  10 /*untilMonth*/,
    -
    2998  15 /*untilDay*/,
    -
    2999  0 /*untilTimeCode (0/15)*/,
    -
    3000  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3001  },
    -
    3002  // -4:00 1:00 %z 1991 Mar 1
    -
    3003  {
    -
    3004  nullptr /*zonePolicy*/,
    -
    3005  "" /*format*/,
    -
    3006  -960 /*offsetCode (-14400/15)*/,
    -
    3007  0 /*offsetRemainder (-14400%15)*/,
    -
    3008  60 /*deltaMinutes*/,
    -
    3009  1991 /*untilYear*/,
    -
    3010  3 /*untilMonth*/,
    -
    3011  1 /*untilDay*/,
    -
    3012  0 /*untilTimeCode (0/15)*/,
    -
    3013  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3014  },
    -
    3015  // -4:00 - %z 1991 Oct 15
    -
    3016  {
    -
    3017  nullptr /*zonePolicy*/,
    -
    3018  "" /*format*/,
    -
    3019  -960 /*offsetCode (-14400/15)*/,
    -
    3020  0 /*offsetRemainder (-14400%15)*/,
    -
    3021  0 /*deltaMinutes*/,
    -
    3022  1991 /*untilYear*/,
    -
    3023  10 /*untilMonth*/,
    -
    3024  15 /*untilDay*/,
    -
    3025  0 /*untilTimeCode (0/15)*/,
    -
    3026  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3027  },
    -
    3028  // -4:00 1:00 %z 1992 Mar 1
    -
    3029  {
    -
    3030  nullptr /*zonePolicy*/,
    -
    3031  "" /*format*/,
    -
    3032  -960 /*offsetCode (-14400/15)*/,
    -
    3033  0 /*offsetRemainder (-14400%15)*/,
    -
    3034  60 /*deltaMinutes*/,
    -
    3035  1992 /*untilYear*/,
    -
    3036  3 /*untilMonth*/,
    -
    3037  1 /*untilDay*/,
    -
    3038  0 /*untilTimeCode (0/15)*/,
    -
    3039  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3040  },
    -
    3041  // -4:00 - %z 1992 Oct 18
    -
    3042  {
    -
    3043  nullptr /*zonePolicy*/,
    -
    3044  "" /*format*/,
    -
    3045  -960 /*offsetCode (-14400/15)*/,
    -
    3046  0 /*offsetRemainder (-14400%15)*/,
    -
    3047  0 /*deltaMinutes*/,
    -
    3048  1992 /*untilYear*/,
    -
    3049  10 /*untilMonth*/,
    -
    3050  18 /*untilDay*/,
    -
    3051  0 /*untilTimeCode (0/15)*/,
    -
    3052  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3053  },
    -
    3054  // -3:00 Arg %z 1999 Oct 3
    -
    3055  {
    -
    3056  &kZonePolicyArg /*zonePolicy*/,
    -
    3057  "" /*format*/,
    -
    3058  -720 /*offsetCode (-10800/15)*/,
    -
    3059  0 /*offsetRemainder (-10800%15)*/,
    -
    3060  0 /*deltaMinutes*/,
    -
    3061  1999 /*untilYear*/,
    -
    3062  10 /*untilMonth*/,
    -
    3063  3 /*untilDay*/,
    -
    3064  0 /*untilTimeCode (0/15)*/,
    -
    3065  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3066  },
    -
    3067  // -4:00 Arg %z 2000 Mar 3
    -
    3068  {
    -
    3069  &kZonePolicyArg /*zonePolicy*/,
    -
    3070  "" /*format*/,
    -
    3071  -960 /*offsetCode (-14400/15)*/,
    -
    3072  0 /*offsetRemainder (-14400%15)*/,
    -
    3073  0 /*deltaMinutes*/,
    -
    3074  2000 /*untilYear*/,
    -
    3075  3 /*untilMonth*/,
    -
    3076  3 /*untilDay*/,
    -
    3077  0 /*untilTimeCode (0/15)*/,
    -
    3078  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3079  },
    -
    3080  // -3:00 - %z 2004 May 23
    -
    3081  {
    -
    3082  nullptr /*zonePolicy*/,
    -
    3083  "" /*format*/,
    -
    3084  -720 /*offsetCode (-10800/15)*/,
    -
    3085  0 /*offsetRemainder (-10800%15)*/,
    -
    3086  0 /*deltaMinutes*/,
    -
    3087  2004 /*untilYear*/,
    -
    3088  5 /*untilMonth*/,
    -
    3089  23 /*untilDay*/,
    -
    3090  0 /*untilTimeCode (0/15)*/,
    -
    3091  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3092  },
    -
    3093  // -4:00 - %z 2004 Sep 26
    -
    3094  {
    -
    3095  nullptr /*zonePolicy*/,
    -
    3096  "" /*format*/,
    -
    3097  -960 /*offsetCode (-14400/15)*/,
    -
    3098  0 /*offsetRemainder (-14400%15)*/,
    -
    3099  0 /*deltaMinutes*/,
    -
    3100  2004 /*untilYear*/,
    -
    3101  9 /*untilMonth*/,
    -
    3102  26 /*untilDay*/,
    -
    3103  0 /*untilTimeCode (0/15)*/,
    -
    3104  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3105  },
    -
    3106  // -3:00 Arg %z 2008 Oct 18
    -
    3107  {
    -
    3108  &kZonePolicyArg /*zonePolicy*/,
    -
    3109  "" /*format*/,
    -
    3110  -720 /*offsetCode (-10800/15)*/,
    -
    3111  0 /*offsetRemainder (-10800%15)*/,
    -
    3112  0 /*deltaMinutes*/,
    -
    3113  2008 /*untilYear*/,
    -
    3114  10 /*untilMonth*/,
    -
    3115  18 /*untilDay*/,
    -
    3116  0 /*untilTimeCode (0/15)*/,
    -
    3117  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3118  },
    -
    3119  // -3:00 - %z
    -
    3120  {
    -
    3121  nullptr /*zonePolicy*/,
    -
    3122  "" /*format*/,
    -
    3123  -720 /*offsetCode (-10800/15)*/,
    -
    3124  0 /*offsetRemainder (-10800%15)*/,
    -
    3125  0 /*deltaMinutes*/,
    -
    3126  32767 /*untilYear*/,
    -
    3127  1 /*untilMonth*/,
    -
    3128  1 /*untilDay*/,
    -
    3129  0 /*untilTimeCode (0/15)*/,
    -
    3130  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3131  },
    -
    3132 
    -
    3133 };
    -
    3134 
    -
    3135 static const char kZoneNameAmerica_Argentina_Mendoza[] ACE_TIME_PROGMEM = "\x02" "\x04" "Mendoza";
    -
    3136 
    -
    3137 const complete::Info::ZoneInfo kZoneAmerica_Argentina_Mendoza ACE_TIME_PROGMEM = {
    -
    3138  kZoneNameAmerica_Argentina_Mendoza /*name*/,
    -
    3139  0xa9f72d5c /*zoneId*/,
    -
    3140  &kZoneContext /*zoneContext*/,
    -
    3141  16 /*numEras*/,
    -
    3142  kZoneEraAmerica_Argentina_Mendoza /*eras*/,
    -
    3143  nullptr /*targetInfo*/,
    -
    3144 };
    -
    3145 
    -
    3146 //---------------------------------------------------------------------------
    -
    3147 // Zone name: America/Argentina/Rio_Gallegos
    -
    3148 // Eras: 10
    -
    3149 //---------------------------------------------------------------------------
    -
    3150 
    -
    3151 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Rio_Gallegos[] ACE_TIME_PROGMEM = {
    -
    3152  // -4:36:52 - LMT 1894 Oct 31
    -
    3153  {
    -
    3154  nullptr /*zonePolicy*/,
    -
    3155  "LMT" /*format*/,
    -
    3156  -1108 /*offsetCode (-16612/15)*/,
    -
    3157  8 /*offsetRemainder (-16612%15)*/,
    -
    3158  0 /*deltaMinutes*/,
    -
    3159  1894 /*untilYear*/,
    -
    3160  10 /*untilMonth*/,
    -
    3161  31 /*untilDay*/,
    -
    3162  0 /*untilTimeCode (0/15)*/,
    -
    3163  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3164  },
    -
    3165  // -4:16:48 - CMT 1920 May
    -
    3166  {
    -
    3167  nullptr /*zonePolicy*/,
    -
    3168  "CMT" /*format*/,
    -
    3169  -1028 /*offsetCode (-15408/15)*/,
    -
    3170  12 /*offsetRemainder (-15408%15)*/,
    -
    3171  0 /*deltaMinutes*/,
    -
    3172  1920 /*untilYear*/,
    -
    3173  5 /*untilMonth*/,
    -
    3174  1 /*untilDay*/,
    -
    3175  0 /*untilTimeCode (0/15)*/,
    -
    3176  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3177  },
    -
    3178  // -4:00 - %z 1930 Dec
    -
    3179  {
    -
    3180  nullptr /*zonePolicy*/,
    -
    3181  "" /*format*/,
    -
    3182  -960 /*offsetCode (-14400/15)*/,
    -
    3183  0 /*offsetRemainder (-14400%15)*/,
    -
    3184  0 /*deltaMinutes*/,
    -
    3185  1930 /*untilYear*/,
    -
    3186  12 /*untilMonth*/,
    -
    3187  1 /*untilDay*/,
    -
    3188  0 /*untilTimeCode (0/15)*/,
    -
    3189  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3190  },
    -
    3191  // -4:00 Arg %z 1969 Oct 5
    -
    3192  {
    -
    3193  &kZonePolicyArg /*zonePolicy*/,
    -
    3194  "" /*format*/,
    -
    3195  -960 /*offsetCode (-14400/15)*/,
    -
    3196  0 /*offsetRemainder (-14400%15)*/,
    -
    3197  0 /*deltaMinutes*/,
    -
    3198  1969 /*untilYear*/,
    -
    3199  10 /*untilMonth*/,
    -
    3200  5 /*untilDay*/,
    -
    3201  0 /*untilTimeCode (0/15)*/,
    -
    3202  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3203  },
    -
    3204  // -3:00 Arg %z 1999 Oct 3
    -
    3205  {
    -
    3206  &kZonePolicyArg /*zonePolicy*/,
    -
    3207  "" /*format*/,
    -
    3208  -720 /*offsetCode (-10800/15)*/,
    -
    3209  0 /*offsetRemainder (-10800%15)*/,
    -
    3210  0 /*deltaMinutes*/,
    -
    3211  1999 /*untilYear*/,
    -
    3212  10 /*untilMonth*/,
    -
    3213  3 /*untilDay*/,
    -
    3214  0 /*untilTimeCode (0/15)*/,
    -
    3215  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3216  },
    -
    3217  // -4:00 Arg %z 2000 Mar 3
    -
    3218  {
    -
    3219  &kZonePolicyArg /*zonePolicy*/,
    -
    3220  "" /*format*/,
    -
    3221  -960 /*offsetCode (-14400/15)*/,
    -
    3222  0 /*offsetRemainder (-14400%15)*/,
    -
    3223  0 /*deltaMinutes*/,
    -
    3224  2000 /*untilYear*/,
    -
    3225  3 /*untilMonth*/,
    -
    3226  3 /*untilDay*/,
    -
    3227  0 /*untilTimeCode (0/15)*/,
    -
    3228  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3229  },
    -
    3230  // -3:00 - %z 2004 Jun 1
    -
    3231  {
    -
    3232  nullptr /*zonePolicy*/,
    -
    3233  "" /*format*/,
    -
    3234  -720 /*offsetCode (-10800/15)*/,
    -
    3235  0 /*offsetRemainder (-10800%15)*/,
    -
    3236  0 /*deltaMinutes*/,
    -
    3237  2004 /*untilYear*/,
    -
    3238  6 /*untilMonth*/,
    -
    3239  1 /*untilDay*/,
    -
    3240  0 /*untilTimeCode (0/15)*/,
    -
    3241  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3242  },
    -
    3243  // -4:00 - %z 2004 Jun 20
    -
    3244  {
    -
    3245  nullptr /*zonePolicy*/,
    -
    3246  "" /*format*/,
    -
    3247  -960 /*offsetCode (-14400/15)*/,
    -
    3248  0 /*offsetRemainder (-14400%15)*/,
    -
    3249  0 /*deltaMinutes*/,
    -
    3250  2004 /*untilYear*/,
    -
    3251  6 /*untilMonth*/,
    -
    3252  20 /*untilDay*/,
    -
    3253  0 /*untilTimeCode (0/15)*/,
    -
    3254  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3255  },
    -
    3256  // -3:00 Arg %z 2008 Oct 18
    -
    3257  {
    -
    3258  &kZonePolicyArg /*zonePolicy*/,
    -
    3259  "" /*format*/,
    -
    3260  -720 /*offsetCode (-10800/15)*/,
    -
    3261  0 /*offsetRemainder (-10800%15)*/,
    -
    3262  0 /*deltaMinutes*/,
    -
    3263  2008 /*untilYear*/,
    -
    3264  10 /*untilMonth*/,
    -
    3265  18 /*untilDay*/,
    -
    3266  0 /*untilTimeCode (0/15)*/,
    -
    3267  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3268  },
    -
    3269  // -3:00 - %z
    -
    3270  {
    -
    3271  nullptr /*zonePolicy*/,
    -
    3272  "" /*format*/,
    -
    3273  -720 /*offsetCode (-10800/15)*/,
    -
    3274  0 /*offsetRemainder (-10800%15)*/,
    -
    3275  0 /*deltaMinutes*/,
    -
    3276  32767 /*untilYear*/,
    -
    3277  1 /*untilMonth*/,
    -
    3278  1 /*untilDay*/,
    -
    3279  0 /*untilTimeCode (0/15)*/,
    -
    3280  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3281  },
    -
    3282 
    -
    3283 };
    -
    3284 
    -
    3285 static const char kZoneNameAmerica_Argentina_Rio_Gallegos[] ACE_TIME_PROGMEM = "\x02" "\x04" "Rio_Gallegos";
    -
    3286 
    -
    3287 const complete::Info::ZoneInfo kZoneAmerica_Argentina_Rio_Gallegos ACE_TIME_PROGMEM = {
    -
    3288  kZoneNameAmerica_Argentina_Rio_Gallegos /*name*/,
    -
    3289  0xc5b0f565 /*zoneId*/,
    -
    3290  &kZoneContext /*zoneContext*/,
    -
    3291  10 /*numEras*/,
    -
    3292  kZoneEraAmerica_Argentina_Rio_Gallegos /*eras*/,
    -
    3293  nullptr /*targetInfo*/,
    -
    3294 };
    -
    3295 
    -
    3296 //---------------------------------------------------------------------------
    -
    3297 // Zone name: America/Argentina/Salta
    -
    3298 // Eras: 10
    -
    3299 //---------------------------------------------------------------------------
    -
    3300 
    -
    3301 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Salta[] ACE_TIME_PROGMEM = {
    -
    3302  // -4:21:40 - LMT 1894 Oct 31
    -
    3303  {
    -
    3304  nullptr /*zonePolicy*/,
    -
    3305  "LMT" /*format*/,
    -
    3306  -1047 /*offsetCode (-15700/15)*/,
    -
    3307  5 /*offsetRemainder (-15700%15)*/,
    -
    3308  0 /*deltaMinutes*/,
    -
    3309  1894 /*untilYear*/,
    -
    3310  10 /*untilMonth*/,
    -
    3311  31 /*untilDay*/,
    -
    3312  0 /*untilTimeCode (0/15)*/,
    -
    3313  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3314  },
    -
    3315  // -4:16:48 - CMT 1920 May
    -
    3316  {
    -
    3317  nullptr /*zonePolicy*/,
    -
    3318  "CMT" /*format*/,
    -
    3319  -1028 /*offsetCode (-15408/15)*/,
    -
    3320  12 /*offsetRemainder (-15408%15)*/,
    -
    3321  0 /*deltaMinutes*/,
    -
    3322  1920 /*untilYear*/,
    -
    3323  5 /*untilMonth*/,
    -
    3324  1 /*untilDay*/,
    -
    3325  0 /*untilTimeCode (0/15)*/,
    -
    3326  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3327  },
    -
    3328  // -4:00 - %z 1930 Dec
    -
    3329  {
    -
    3330  nullptr /*zonePolicy*/,
    -
    3331  "" /*format*/,
    -
    3332  -960 /*offsetCode (-14400/15)*/,
    -
    3333  0 /*offsetRemainder (-14400%15)*/,
    -
    3334  0 /*deltaMinutes*/,
    -
    3335  1930 /*untilYear*/,
    -
    3336  12 /*untilMonth*/,
    -
    3337  1 /*untilDay*/,
    -
    3338  0 /*untilTimeCode (0/15)*/,
    -
    3339  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3340  },
    -
    3341  // -4:00 Arg %z 1969 Oct 5
    -
    3342  {
    -
    3343  &kZonePolicyArg /*zonePolicy*/,
    -
    3344  "" /*format*/,
    -
    3345  -960 /*offsetCode (-14400/15)*/,
    -
    3346  0 /*offsetRemainder (-14400%15)*/,
    -
    3347  0 /*deltaMinutes*/,
    -
    3348  1969 /*untilYear*/,
    -
    3349  10 /*untilMonth*/,
    -
    3350  5 /*untilDay*/,
    -
    3351  0 /*untilTimeCode (0/15)*/,
    -
    3352  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3353  },
    -
    3354  // -3:00 Arg %z 1991 Mar 3
    -
    3355  {
    -
    3356  &kZonePolicyArg /*zonePolicy*/,
    -
    3357  "" /*format*/,
    -
    3358  -720 /*offsetCode (-10800/15)*/,
    -
    3359  0 /*offsetRemainder (-10800%15)*/,
    -
    3360  0 /*deltaMinutes*/,
    -
    3361  1991 /*untilYear*/,
    -
    3362  3 /*untilMonth*/,
    -
    3363  3 /*untilDay*/,
    -
    3364  0 /*untilTimeCode (0/15)*/,
    -
    3365  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3366  },
    -
    3367  // -4:00 - %z 1991 Oct 20
    -
    3368  {
    -
    3369  nullptr /*zonePolicy*/,
    -
    3370  "" /*format*/,
    -
    3371  -960 /*offsetCode (-14400/15)*/,
    -
    3372  0 /*offsetRemainder (-14400%15)*/,
    -
    3373  0 /*deltaMinutes*/,
    -
    3374  1991 /*untilYear*/,
    -
    3375  10 /*untilMonth*/,
    -
    3376  20 /*untilDay*/,
    -
    3377  0 /*untilTimeCode (0/15)*/,
    -
    3378  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3379  },
    -
    3380  // -3:00 Arg %z 1999 Oct 3
    -
    3381  {
    -
    3382  &kZonePolicyArg /*zonePolicy*/,
    -
    3383  "" /*format*/,
    -
    3384  -720 /*offsetCode (-10800/15)*/,
    -
    3385  0 /*offsetRemainder (-10800%15)*/,
    -
    3386  0 /*deltaMinutes*/,
    -
    3387  1999 /*untilYear*/,
    -
    3388  10 /*untilMonth*/,
    -
    3389  3 /*untilDay*/,
    -
    3390  0 /*untilTimeCode (0/15)*/,
    -
    3391  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3392  },
    -
    3393  // -4:00 Arg %z 2000 Mar 3
    -
    3394  {
    -
    3395  &kZonePolicyArg /*zonePolicy*/,
    -
    3396  "" /*format*/,
    -
    3397  -960 /*offsetCode (-14400/15)*/,
    -
    3398  0 /*offsetRemainder (-14400%15)*/,
    -
    3399  0 /*deltaMinutes*/,
    -
    3400  2000 /*untilYear*/,
    -
    3401  3 /*untilMonth*/,
    -
    3402  3 /*untilDay*/,
    -
    3403  0 /*untilTimeCode (0/15)*/,
    -
    3404  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3405  },
    -
    3406  // -3:00 Arg %z 2008 Oct 18
    -
    3407  {
    -
    3408  &kZonePolicyArg /*zonePolicy*/,
    -
    3409  "" /*format*/,
    -
    3410  -720 /*offsetCode (-10800/15)*/,
    -
    3411  0 /*offsetRemainder (-10800%15)*/,
    -
    3412  0 /*deltaMinutes*/,
    -
    3413  2008 /*untilYear*/,
    -
    3414  10 /*untilMonth*/,
    -
    3415  18 /*untilDay*/,
    -
    3416  0 /*untilTimeCode (0/15)*/,
    -
    3417  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3418  },
    -
    3419  // -3:00 - %z
    -
    3420  {
    -
    3421  nullptr /*zonePolicy*/,
    -
    3422  "" /*format*/,
    -
    3423  -720 /*offsetCode (-10800/15)*/,
    -
    3424  0 /*offsetRemainder (-10800%15)*/,
    -
    3425  0 /*deltaMinutes*/,
    -
    3426  32767 /*untilYear*/,
    -
    3427  1 /*untilMonth*/,
    -
    3428  1 /*untilDay*/,
    -
    3429  0 /*untilTimeCode (0/15)*/,
    -
    3430  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3431  },
    -
    3432 
    -
    3433 };
    -
    3434 
    -
    3435 static const char kZoneNameAmerica_Argentina_Salta[] ACE_TIME_PROGMEM = "\x02" "\x04" "Salta";
    -
    3436 
    -
    3437 const complete::Info::ZoneInfo kZoneAmerica_Argentina_Salta ACE_TIME_PROGMEM = {
    -
    3438  kZoneNameAmerica_Argentina_Salta /*name*/,
    -
    3439  0x5fc73403 /*zoneId*/,
    -
    3440  &kZoneContext /*zoneContext*/,
    -
    3441  10 /*numEras*/,
    -
    3442  kZoneEraAmerica_Argentina_Salta /*eras*/,
    -
    3443  nullptr /*targetInfo*/,
    -
    3444 };
    -
    3445 
    -
    3446 //---------------------------------------------------------------------------
    -
    3447 // Zone name: America/Argentina/San_Juan
    -
    3448 // Eras: 12
    -
    3449 //---------------------------------------------------------------------------
    -
    3450 
    -
    3451 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_San_Juan[] ACE_TIME_PROGMEM = {
    -
    3452  // -4:34:04 - LMT 1894 Oct 31
    -
    3453  {
    -
    3454  nullptr /*zonePolicy*/,
    -
    3455  "LMT" /*format*/,
    -
    3456  -1097 /*offsetCode (-16444/15)*/,
    -
    3457  11 /*offsetRemainder (-16444%15)*/,
    -
    3458  0 /*deltaMinutes*/,
    -
    3459  1894 /*untilYear*/,
    -
    3460  10 /*untilMonth*/,
    -
    3461  31 /*untilDay*/,
    -
    3462  0 /*untilTimeCode (0/15)*/,
    -
    3463  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3464  },
    -
    3465  // -4:16:48 - CMT 1920 May
    -
    3466  {
    -
    3467  nullptr /*zonePolicy*/,
    -
    3468  "CMT" /*format*/,
    -
    3469  -1028 /*offsetCode (-15408/15)*/,
    -
    3470  12 /*offsetRemainder (-15408%15)*/,
    -
    3471  0 /*deltaMinutes*/,
    -
    3472  1920 /*untilYear*/,
    -
    3473  5 /*untilMonth*/,
    -
    3474  1 /*untilDay*/,
    -
    3475  0 /*untilTimeCode (0/15)*/,
    -
    3476  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3477  },
    -
    3478  // -4:00 - %z 1930 Dec
    -
    3479  {
    -
    3480  nullptr /*zonePolicy*/,
    -
    3481  "" /*format*/,
    -
    3482  -960 /*offsetCode (-14400/15)*/,
    -
    3483  0 /*offsetRemainder (-14400%15)*/,
    -
    3484  0 /*deltaMinutes*/,
    -
    3485  1930 /*untilYear*/,
    -
    3486  12 /*untilMonth*/,
    -
    3487  1 /*untilDay*/,
    -
    3488  0 /*untilTimeCode (0/15)*/,
    -
    3489  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3490  },
    -
    3491  // -4:00 Arg %z 1969 Oct 5
    -
    3492  {
    -
    3493  &kZonePolicyArg /*zonePolicy*/,
    -
    3494  "" /*format*/,
    -
    3495  -960 /*offsetCode (-14400/15)*/,
    -
    3496  0 /*offsetRemainder (-14400%15)*/,
    -
    3497  0 /*deltaMinutes*/,
    -
    3498  1969 /*untilYear*/,
    -
    3499  10 /*untilMonth*/,
    -
    3500  5 /*untilDay*/,
    -
    3501  0 /*untilTimeCode (0/15)*/,
    -
    3502  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3503  },
    -
    3504  // -3:00 Arg %z 1991 Mar 1
    -
    3505  {
    -
    3506  &kZonePolicyArg /*zonePolicy*/,
    -
    3507  "" /*format*/,
    -
    3508  -720 /*offsetCode (-10800/15)*/,
    -
    3509  0 /*offsetRemainder (-10800%15)*/,
    -
    3510  0 /*deltaMinutes*/,
    -
    3511  1991 /*untilYear*/,
    -
    3512  3 /*untilMonth*/,
    -
    3513  1 /*untilDay*/,
    -
    3514  0 /*untilTimeCode (0/15)*/,
    -
    3515  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3516  },
    -
    3517  // -4:00 - %z 1991 May 7
    -
    3518  {
    -
    3519  nullptr /*zonePolicy*/,
    -
    3520  "" /*format*/,
    -
    3521  -960 /*offsetCode (-14400/15)*/,
    -
    3522  0 /*offsetRemainder (-14400%15)*/,
    -
    3523  0 /*deltaMinutes*/,
    -
    3524  1991 /*untilYear*/,
    -
    3525  5 /*untilMonth*/,
    -
    3526  7 /*untilDay*/,
    -
    3527  0 /*untilTimeCode (0/15)*/,
    -
    3528  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3529  },
    -
    3530  // -3:00 Arg %z 1999 Oct 3
    -
    3531  {
    -
    3532  &kZonePolicyArg /*zonePolicy*/,
    -
    3533  "" /*format*/,
    -
    3534  -720 /*offsetCode (-10800/15)*/,
    -
    3535  0 /*offsetRemainder (-10800%15)*/,
    -
    3536  0 /*deltaMinutes*/,
    -
    3537  1999 /*untilYear*/,
    -
    3538  10 /*untilMonth*/,
    -
    3539  3 /*untilDay*/,
    -
    3540  0 /*untilTimeCode (0/15)*/,
    -
    3541  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3542  },
    -
    3543  // -4:00 Arg %z 2000 Mar 3
    -
    3544  {
    -
    3545  &kZonePolicyArg /*zonePolicy*/,
    -
    3546  "" /*format*/,
    -
    3547  -960 /*offsetCode (-14400/15)*/,
    -
    3548  0 /*offsetRemainder (-14400%15)*/,
    -
    3549  0 /*deltaMinutes*/,
    -
    3550  2000 /*untilYear*/,
    -
    3551  3 /*untilMonth*/,
    -
    3552  3 /*untilDay*/,
    -
    3553  0 /*untilTimeCode (0/15)*/,
    -
    3554  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3555  },
    -
    3556  // -3:00 - %z 2004 May 31
    -
    3557  {
    -
    3558  nullptr /*zonePolicy*/,
    -
    3559  "" /*format*/,
    -
    3560  -720 /*offsetCode (-10800/15)*/,
    -
    3561  0 /*offsetRemainder (-10800%15)*/,
    -
    3562  0 /*deltaMinutes*/,
    -
    3563  2004 /*untilYear*/,
    -
    3564  5 /*untilMonth*/,
    -
    3565  31 /*untilDay*/,
    -
    3566  0 /*untilTimeCode (0/15)*/,
    -
    3567  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3568  },
    -
    3569  // -4:00 - %z 2004 Jul 25
    -
    3570  {
    -
    3571  nullptr /*zonePolicy*/,
    -
    3572  "" /*format*/,
    -
    3573  -960 /*offsetCode (-14400/15)*/,
    -
    3574  0 /*offsetRemainder (-14400%15)*/,
    -
    3575  0 /*deltaMinutes*/,
    -
    3576  2004 /*untilYear*/,
    -
    3577  7 /*untilMonth*/,
    -
    3578  25 /*untilDay*/,
    -
    3579  0 /*untilTimeCode (0/15)*/,
    -
    3580  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3581  },
    -
    3582  // -3:00 Arg %z 2008 Oct 18
    -
    3583  {
    -
    3584  &kZonePolicyArg /*zonePolicy*/,
    -
    3585  "" /*format*/,
    -
    3586  -720 /*offsetCode (-10800/15)*/,
    -
    3587  0 /*offsetRemainder (-10800%15)*/,
    -
    3588  0 /*deltaMinutes*/,
    -
    3589  2008 /*untilYear*/,
    -
    3590  10 /*untilMonth*/,
    -
    3591  18 /*untilDay*/,
    -
    3592  0 /*untilTimeCode (0/15)*/,
    -
    3593  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3594  },
    -
    3595  // -3:00 - %z
    -
    3596  {
    -
    3597  nullptr /*zonePolicy*/,
    -
    3598  "" /*format*/,
    -
    3599  -720 /*offsetCode (-10800/15)*/,
    -
    3600  0 /*offsetRemainder (-10800%15)*/,
    -
    3601  0 /*deltaMinutes*/,
    -
    3602  32767 /*untilYear*/,
    -
    3603  1 /*untilMonth*/,
    -
    3604  1 /*untilDay*/,
    -
    3605  0 /*untilTimeCode (0/15)*/,
    -
    3606  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3607  },
    -
    3608 
    -
    3609 };
    -
    3610 
    -
    3611 static const char kZoneNameAmerica_Argentina_San_Juan[] ACE_TIME_PROGMEM = "\x02" "\x04" "San_Juan";
    -
    3612 
    -
    3613 const complete::Info::ZoneInfo kZoneAmerica_Argentina_San_Juan ACE_TIME_PROGMEM = {
    -
    3614  kZoneNameAmerica_Argentina_San_Juan /*name*/,
    -
    3615  0x3e1009bd /*zoneId*/,
    -
    3616  &kZoneContext /*zoneContext*/,
    -
    3617  12 /*numEras*/,
    -
    3618  kZoneEraAmerica_Argentina_San_Juan /*eras*/,
    -
    3619  nullptr /*targetInfo*/,
    -
    3620 };
    -
    3621 
    -
    3622 //---------------------------------------------------------------------------
    -
    3623 // Zone name: America/Argentina/San_Luis
    -
    3624 // Eras: 16
    -
    3625 //---------------------------------------------------------------------------
    -
    3626 
    -
    3627 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_San_Luis[] ACE_TIME_PROGMEM = {
    -
    3628  // -4:25:24 - LMT 1894 Oct 31
    -
    3629  {
    -
    3630  nullptr /*zonePolicy*/,
    -
    3631  "LMT" /*format*/,
    -
    3632  -1062 /*offsetCode (-15924/15)*/,
    -
    3633  6 /*offsetRemainder (-15924%15)*/,
    -
    3634  0 /*deltaMinutes*/,
    -
    3635  1894 /*untilYear*/,
    -
    3636  10 /*untilMonth*/,
    -
    3637  31 /*untilDay*/,
    -
    3638  0 /*untilTimeCode (0/15)*/,
    -
    3639  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3640  },
    -
    3641  // -4:16:48 - CMT 1920 May
    -
    3642  {
    -
    3643  nullptr /*zonePolicy*/,
    -
    3644  "CMT" /*format*/,
    -
    3645  -1028 /*offsetCode (-15408/15)*/,
    -
    3646  12 /*offsetRemainder (-15408%15)*/,
    -
    3647  0 /*deltaMinutes*/,
    -
    3648  1920 /*untilYear*/,
    -
    3649  5 /*untilMonth*/,
    -
    3650  1 /*untilDay*/,
    -
    3651  0 /*untilTimeCode (0/15)*/,
    -
    3652  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3653  },
    -
    3654  // -4:00 - %z 1930 Dec
    -
    3655  {
    -
    3656  nullptr /*zonePolicy*/,
    -
    3657  "" /*format*/,
    -
    3658  -960 /*offsetCode (-14400/15)*/,
    -
    3659  0 /*offsetRemainder (-14400%15)*/,
    -
    3660  0 /*deltaMinutes*/,
    -
    3661  1930 /*untilYear*/,
    -
    3662  12 /*untilMonth*/,
    -
    3663  1 /*untilDay*/,
    -
    3664  0 /*untilTimeCode (0/15)*/,
    -
    3665  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3666  },
    -
    3667  // -4:00 Arg %z 1969 Oct 5
    -
    3668  {
    -
    3669  &kZonePolicyArg /*zonePolicy*/,
    -
    3670  "" /*format*/,
    -
    3671  -960 /*offsetCode (-14400/15)*/,
    -
    3672  0 /*offsetRemainder (-14400%15)*/,
    -
    3673  0 /*deltaMinutes*/,
    -
    3674  1969 /*untilYear*/,
    -
    3675  10 /*untilMonth*/,
    -
    3676  5 /*untilDay*/,
    -
    3677  0 /*untilTimeCode (0/15)*/,
    -
    3678  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3679  },
    -
    3680  // -3:00 Arg %z 1990
    -
    3681  {
    -
    3682  &kZonePolicyArg /*zonePolicy*/,
    -
    3683  "" /*format*/,
    -
    3684  -720 /*offsetCode (-10800/15)*/,
    -
    3685  0 /*offsetRemainder (-10800%15)*/,
    -
    3686  0 /*deltaMinutes*/,
    -
    3687  1990 /*untilYear*/,
    -
    3688  1 /*untilMonth*/,
    -
    3689  1 /*untilDay*/,
    -
    3690  0 /*untilTimeCode (0/15)*/,
    -
    3691  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3692  },
    -
    3693  // -3:00 1:00 %z 1990 Mar 14
    -
    3694  {
    -
    3695  nullptr /*zonePolicy*/,
    -
    3696  "" /*format*/,
    -
    3697  -720 /*offsetCode (-10800/15)*/,
    -
    3698  0 /*offsetRemainder (-10800%15)*/,
    -
    3699  60 /*deltaMinutes*/,
    -
    3700  1990 /*untilYear*/,
    -
    3701  3 /*untilMonth*/,
    -
    3702  14 /*untilDay*/,
    -
    3703  0 /*untilTimeCode (0/15)*/,
    -
    3704  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3705  },
    -
    3706  // -4:00 - %z 1990 Oct 15
    -
    3707  {
    -
    3708  nullptr /*zonePolicy*/,
    -
    3709  "" /*format*/,
    -
    3710  -960 /*offsetCode (-14400/15)*/,
    -
    3711  0 /*offsetRemainder (-14400%15)*/,
    -
    3712  0 /*deltaMinutes*/,
    -
    3713  1990 /*untilYear*/,
    -
    3714  10 /*untilMonth*/,
    -
    3715  15 /*untilDay*/,
    -
    3716  0 /*untilTimeCode (0/15)*/,
    -
    3717  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3718  },
    -
    3719  // -4:00 1:00 %z 1991 Mar 1
    -
    3720  {
    -
    3721  nullptr /*zonePolicy*/,
    -
    3722  "" /*format*/,
    -
    3723  -960 /*offsetCode (-14400/15)*/,
    -
    3724  0 /*offsetRemainder (-14400%15)*/,
    -
    3725  60 /*deltaMinutes*/,
    -
    3726  1991 /*untilYear*/,
    -
    3727  3 /*untilMonth*/,
    -
    3728  1 /*untilDay*/,
    -
    3729  0 /*untilTimeCode (0/15)*/,
    -
    3730  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3731  },
    -
    3732  // -4:00 - %z 1991 Jun 1
    -
    3733  {
    -
    3734  nullptr /*zonePolicy*/,
    -
    3735  "" /*format*/,
    -
    3736  -960 /*offsetCode (-14400/15)*/,
    -
    3737  0 /*offsetRemainder (-14400%15)*/,
    -
    3738  0 /*deltaMinutes*/,
    -
    3739  1991 /*untilYear*/,
    -
    3740  6 /*untilMonth*/,
    -
    3741  1 /*untilDay*/,
    -
    3742  0 /*untilTimeCode (0/15)*/,
    -
    3743  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3744  },
    -
    3745  // -3:00 - %z 1999 Oct 3
    -
    3746  {
    -
    3747  nullptr /*zonePolicy*/,
    -
    3748  "" /*format*/,
    -
    3749  -720 /*offsetCode (-10800/15)*/,
    -
    3750  0 /*offsetRemainder (-10800%15)*/,
    -
    3751  0 /*deltaMinutes*/,
    -
    3752  1999 /*untilYear*/,
    -
    3753  10 /*untilMonth*/,
    -
    3754  3 /*untilDay*/,
    -
    3755  0 /*untilTimeCode (0/15)*/,
    -
    3756  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3757  },
    -
    3758  // -4:00 1:00 %z 2000 Mar 3
    -
    3759  {
    -
    3760  nullptr /*zonePolicy*/,
    -
    3761  "" /*format*/,
    -
    3762  -960 /*offsetCode (-14400/15)*/,
    -
    3763  0 /*offsetRemainder (-14400%15)*/,
    -
    3764  60 /*deltaMinutes*/,
    -
    3765  2000 /*untilYear*/,
    -
    3766  3 /*untilMonth*/,
    -
    3767  3 /*untilDay*/,
    -
    3768  0 /*untilTimeCode (0/15)*/,
    -
    3769  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3770  },
    -
    3771  // -3:00 - %z 2004 May 31
    -
    3772  {
    -
    3773  nullptr /*zonePolicy*/,
    -
    3774  "" /*format*/,
    -
    3775  -720 /*offsetCode (-10800/15)*/,
    -
    3776  0 /*offsetRemainder (-10800%15)*/,
    -
    3777  0 /*deltaMinutes*/,
    -
    3778  2004 /*untilYear*/,
    -
    3779  5 /*untilMonth*/,
    -
    3780  31 /*untilDay*/,
    -
    3781  0 /*untilTimeCode (0/15)*/,
    -
    3782  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3783  },
    -
    3784  // -4:00 - %z 2004 Jul 25
    -
    3785  {
    -
    3786  nullptr /*zonePolicy*/,
    -
    3787  "" /*format*/,
    -
    3788  -960 /*offsetCode (-14400/15)*/,
    -
    3789  0 /*offsetRemainder (-14400%15)*/,
    -
    3790  0 /*deltaMinutes*/,
    -
    3791  2004 /*untilYear*/,
    -
    3792  7 /*untilMonth*/,
    -
    3793  25 /*untilDay*/,
    -
    3794  0 /*untilTimeCode (0/15)*/,
    -
    3795  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3796  },
    -
    3797  // -3:00 Arg %z 2008 Jan 21
    -
    3798  {
    -
    3799  &kZonePolicyArg /*zonePolicy*/,
    -
    3800  "" /*format*/,
    -
    3801  -720 /*offsetCode (-10800/15)*/,
    -
    3802  0 /*offsetRemainder (-10800%15)*/,
    -
    3803  0 /*deltaMinutes*/,
    -
    3804  2008 /*untilYear*/,
    -
    3805  1 /*untilMonth*/,
    -
    3806  21 /*untilDay*/,
    -
    3807  0 /*untilTimeCode (0/15)*/,
    -
    3808  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3809  },
    -
    3810  // -4:00 SanLuis %z 2009 Oct 11
    -
    3811  {
    -
    3812  &kZonePolicySanLuis /*zonePolicy*/,
    -
    3813  "" /*format*/,
    -
    3814  -960 /*offsetCode (-14400/15)*/,
    -
    3815  0 /*offsetRemainder (-14400%15)*/,
    -
    3816  0 /*deltaMinutes*/,
    -
    3817  2009 /*untilYear*/,
    -
    3818  10 /*untilMonth*/,
    -
    3819  11 /*untilDay*/,
    -
    3820  0 /*untilTimeCode (0/15)*/,
    -
    3821  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3822  },
    -
    3823  // -3:00 - %z
    -
    3824  {
    -
    3825  nullptr /*zonePolicy*/,
    -
    3826  "" /*format*/,
    -
    3827  -720 /*offsetCode (-10800/15)*/,
    -
    3828  0 /*offsetRemainder (-10800%15)*/,
    -
    3829  0 /*deltaMinutes*/,
    -
    3830  32767 /*untilYear*/,
    -
    3831  1 /*untilMonth*/,
    -
    3832  1 /*untilDay*/,
    -
    3833  0 /*untilTimeCode (0/15)*/,
    -
    3834  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3835  },
    -
    3836 
    -
    3837 };
    -
    3838 
    -
    3839 static const char kZoneNameAmerica_Argentina_San_Luis[] ACE_TIME_PROGMEM = "\x02" "\x04" "San_Luis";
    -
    3840 
    -
    3841 const complete::Info::ZoneInfo kZoneAmerica_Argentina_San_Luis ACE_TIME_PROGMEM = {
    -
    3842  kZoneNameAmerica_Argentina_San_Luis /*name*/,
    -
    3843  0x3e11238c /*zoneId*/,
    -
    3844  &kZoneContext /*zoneContext*/,
    -
    3845  16 /*numEras*/,
    -
    3846  kZoneEraAmerica_Argentina_San_Luis /*eras*/,
    -
    3847  nullptr /*targetInfo*/,
    -
    3848 };
    -
    3849 
    -
    3850 //---------------------------------------------------------------------------
    -
    3851 // Zone name: America/Argentina/Tucuman
    -
    3852 // Eras: 11
    -
    3853 //---------------------------------------------------------------------------
    -
    3854 
    -
    3855 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Tucuman[] ACE_TIME_PROGMEM = {
    -
    3856  // -4:20:52 - LMT 1894 Oct 31
    -
    3857  {
    -
    3858  nullptr /*zonePolicy*/,
    -
    3859  "LMT" /*format*/,
    -
    3860  -1044 /*offsetCode (-15652/15)*/,
    -
    3861  8 /*offsetRemainder (-15652%15)*/,
    -
    3862  0 /*deltaMinutes*/,
    -
    3863  1894 /*untilYear*/,
    -
    3864  10 /*untilMonth*/,
    -
    3865  31 /*untilDay*/,
    -
    3866  0 /*untilTimeCode (0/15)*/,
    -
    3867  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3868  },
    -
    3869  // -4:16:48 - CMT 1920 May
    -
    3870  {
    -
    3871  nullptr /*zonePolicy*/,
    -
    3872  "CMT" /*format*/,
    -
    3873  -1028 /*offsetCode (-15408/15)*/,
    -
    3874  12 /*offsetRemainder (-15408%15)*/,
    -
    3875  0 /*deltaMinutes*/,
    -
    3876  1920 /*untilYear*/,
    -
    3877  5 /*untilMonth*/,
    -
    3878  1 /*untilDay*/,
    -
    3879  0 /*untilTimeCode (0/15)*/,
    -
    3880  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3881  },
    -
    3882  // -4:00 - %z 1930 Dec
    -
    3883  {
    -
    3884  nullptr /*zonePolicy*/,
    -
    3885  "" /*format*/,
    -
    3886  -960 /*offsetCode (-14400/15)*/,
    -
    3887  0 /*offsetRemainder (-14400%15)*/,
    -
    3888  0 /*deltaMinutes*/,
    -
    3889  1930 /*untilYear*/,
    -
    3890  12 /*untilMonth*/,
    -
    3891  1 /*untilDay*/,
    -
    3892  0 /*untilTimeCode (0/15)*/,
    -
    3893  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3894  },
    -
    3895  // -4:00 Arg %z 1969 Oct 5
    -
    3896  {
    -
    3897  &kZonePolicyArg /*zonePolicy*/,
    -
    3898  "" /*format*/,
    -
    3899  -960 /*offsetCode (-14400/15)*/,
    -
    3900  0 /*offsetRemainder (-14400%15)*/,
    -
    3901  0 /*deltaMinutes*/,
    -
    3902  1969 /*untilYear*/,
    -
    3903  10 /*untilMonth*/,
    -
    3904  5 /*untilDay*/,
    -
    3905  0 /*untilTimeCode (0/15)*/,
    -
    3906  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3907  },
    -
    3908  // -3:00 Arg %z 1991 Mar 3
    -
    3909  {
    -
    3910  &kZonePolicyArg /*zonePolicy*/,
    -
    3911  "" /*format*/,
    -
    3912  -720 /*offsetCode (-10800/15)*/,
    -
    3913  0 /*offsetRemainder (-10800%15)*/,
    -
    3914  0 /*deltaMinutes*/,
    -
    3915  1991 /*untilYear*/,
    -
    3916  3 /*untilMonth*/,
    -
    3917  3 /*untilDay*/,
    -
    3918  0 /*untilTimeCode (0/15)*/,
    -
    3919  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3920  },
    -
    3921  // -4:00 - %z 1991 Oct 20
    -
    3922  {
    -
    3923  nullptr /*zonePolicy*/,
    -
    3924  "" /*format*/,
    -
    3925  -960 /*offsetCode (-14400/15)*/,
    -
    3926  0 /*offsetRemainder (-14400%15)*/,
    -
    3927  0 /*deltaMinutes*/,
    -
    3928  1991 /*untilYear*/,
    -
    3929  10 /*untilMonth*/,
    -
    3930  20 /*untilDay*/,
    -
    3931  0 /*untilTimeCode (0/15)*/,
    -
    3932  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3933  },
    -
    3934  // -3:00 Arg %z 1999 Oct 3
    -
    3935  {
    -
    3936  &kZonePolicyArg /*zonePolicy*/,
    -
    3937  "" /*format*/,
    -
    3938  -720 /*offsetCode (-10800/15)*/,
    -
    3939  0 /*offsetRemainder (-10800%15)*/,
    -
    3940  0 /*deltaMinutes*/,
    -
    3941  1999 /*untilYear*/,
    -
    3942  10 /*untilMonth*/,
    -
    3943  3 /*untilDay*/,
    -
    3944  0 /*untilTimeCode (0/15)*/,
    -
    3945  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3946  },
    -
    3947  // -4:00 Arg %z 2000 Mar 3
    -
    3948  {
    -
    3949  &kZonePolicyArg /*zonePolicy*/,
    -
    3950  "" /*format*/,
    -
    3951  -960 /*offsetCode (-14400/15)*/,
    -
    3952  0 /*offsetRemainder (-14400%15)*/,
    -
    3953  0 /*deltaMinutes*/,
    -
    3954  2000 /*untilYear*/,
    -
    3955  3 /*untilMonth*/,
    -
    3956  3 /*untilDay*/,
    -
    3957  0 /*untilTimeCode (0/15)*/,
    -
    3958  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3959  },
    -
    3960  // -3:00 - %z 2004 Jun 1
    -
    3961  {
    -
    3962  nullptr /*zonePolicy*/,
    -
    3963  "" /*format*/,
    -
    3964  -720 /*offsetCode (-10800/15)*/,
    -
    3965  0 /*offsetRemainder (-10800%15)*/,
    -
    3966  0 /*deltaMinutes*/,
    -
    3967  2004 /*untilYear*/,
    -
    3968  6 /*untilMonth*/,
    -
    3969  1 /*untilDay*/,
    -
    3970  0 /*untilTimeCode (0/15)*/,
    -
    3971  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3972  },
    -
    3973  // -4:00 - %z 2004 Jun 13
    -
    3974  {
    -
    3975  nullptr /*zonePolicy*/,
    -
    3976  "" /*format*/,
    -
    3977  -960 /*offsetCode (-14400/15)*/,
    -
    3978  0 /*offsetRemainder (-14400%15)*/,
    -
    3979  0 /*deltaMinutes*/,
    -
    3980  2004 /*untilYear*/,
    -
    3981  6 /*untilMonth*/,
    -
    3982  13 /*untilDay*/,
    -
    3983  0 /*untilTimeCode (0/15)*/,
    -
    3984  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3985  },
    -
    3986  // -3:00 Arg %z
    -
    3987  {
    -
    3988  &kZonePolicyArg /*zonePolicy*/,
    -
    3989  "" /*format*/,
    -
    3990  -720 /*offsetCode (-10800/15)*/,
    -
    3991  0 /*offsetRemainder (-10800%15)*/,
    -
    3992  0 /*deltaMinutes*/,
    -
    3993  32767 /*untilYear*/,
    -
    3994  1 /*untilMonth*/,
    -
    3995  1 /*untilDay*/,
    -
    3996  0 /*untilTimeCode (0/15)*/,
    -
    3997  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3998  },
    -
    3999 
    -
    4000 };
    -
    4001 
    -
    4002 static const char kZoneNameAmerica_Argentina_Tucuman[] ACE_TIME_PROGMEM = "\x02" "\x04" "Tucuman";
    -
    4003 
    -
    4004 const complete::Info::ZoneInfo kZoneAmerica_Argentina_Tucuman ACE_TIME_PROGMEM = {
    -
    4005  kZoneNameAmerica_Argentina_Tucuman /*name*/,
    -
    4006  0xe96399eb /*zoneId*/,
    -
    4007  &kZoneContext /*zoneContext*/,
    -
    4008  11 /*numEras*/,
    -
    4009  kZoneEraAmerica_Argentina_Tucuman /*eras*/,
    -
    4010  nullptr /*targetInfo*/,
    -
    4011 };
    -
    4012 
    -
    4013 //---------------------------------------------------------------------------
    -
    4014 // Zone name: America/Argentina/Ushuaia
    -
    4015 // Eras: 10
    -
    4016 //---------------------------------------------------------------------------
    -
    4017 
    -
    4018 static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Ushuaia[] ACE_TIME_PROGMEM = {
    -
    4019  // -4:33:12 - LMT 1894 Oct 31
    -
    4020  {
    -
    4021  nullptr /*zonePolicy*/,
    -
    4022  "LMT" /*format*/,
    -
    4023  -1093 /*offsetCode (-16392/15)*/,
    -
    4024  3 /*offsetRemainder (-16392%15)*/,
    -
    4025  0 /*deltaMinutes*/,
    -
    4026  1894 /*untilYear*/,
    -
    4027  10 /*untilMonth*/,
    -
    4028  31 /*untilDay*/,
    -
    4029  0 /*untilTimeCode (0/15)*/,
    -
    4030  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4031  },
    -
    4032  // -4:16:48 - CMT 1920 May
    -
    4033  {
    -
    4034  nullptr /*zonePolicy*/,
    -
    4035  "CMT" /*format*/,
    -
    4036  -1028 /*offsetCode (-15408/15)*/,
    -
    4037  12 /*offsetRemainder (-15408%15)*/,
    -
    4038  0 /*deltaMinutes*/,
    -
    4039  1920 /*untilYear*/,
    -
    4040  5 /*untilMonth*/,
    -
    4041  1 /*untilDay*/,
    -
    4042  0 /*untilTimeCode (0/15)*/,
    -
    4043  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4044  },
    -
    4045  // -4:00 - %z 1930 Dec
    -
    4046  {
    -
    4047  nullptr /*zonePolicy*/,
    -
    4048  "" /*format*/,
    -
    4049  -960 /*offsetCode (-14400/15)*/,
    -
    4050  0 /*offsetRemainder (-14400%15)*/,
    -
    4051  0 /*deltaMinutes*/,
    -
    4052  1930 /*untilYear*/,
    -
    4053  12 /*untilMonth*/,
    -
    4054  1 /*untilDay*/,
    -
    4055  0 /*untilTimeCode (0/15)*/,
    -
    4056  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4057  },
    -
    4058  // -4:00 Arg %z 1969 Oct 5
    -
    4059  {
    -
    4060  &kZonePolicyArg /*zonePolicy*/,
    -
    4061  "" /*format*/,
    -
    4062  -960 /*offsetCode (-14400/15)*/,
    -
    4063  0 /*offsetRemainder (-14400%15)*/,
    -
    4064  0 /*deltaMinutes*/,
    -
    4065  1969 /*untilYear*/,
    -
    4066  10 /*untilMonth*/,
    -
    4067  5 /*untilDay*/,
    -
    4068  0 /*untilTimeCode (0/15)*/,
    -
    4069  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4070  },
    -
    4071  // -3:00 Arg %z 1999 Oct 3
    -
    4072  {
    -
    4073  &kZonePolicyArg /*zonePolicy*/,
    -
    4074  "" /*format*/,
    -
    4075  -720 /*offsetCode (-10800/15)*/,
    -
    4076  0 /*offsetRemainder (-10800%15)*/,
    -
    4077  0 /*deltaMinutes*/,
    -
    4078  1999 /*untilYear*/,
    -
    4079  10 /*untilMonth*/,
    -
    4080  3 /*untilDay*/,
    -
    4081  0 /*untilTimeCode (0/15)*/,
    -
    4082  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4083  },
    -
    4084  // -4:00 Arg %z 2000 Mar 3
    -
    4085  {
    -
    4086  &kZonePolicyArg /*zonePolicy*/,
    -
    4087  "" /*format*/,
    -
    4088  -960 /*offsetCode (-14400/15)*/,
    -
    4089  0 /*offsetRemainder (-14400%15)*/,
    -
    4090  0 /*deltaMinutes*/,
    -
    4091  2000 /*untilYear*/,
    -
    4092  3 /*untilMonth*/,
    -
    4093  3 /*untilDay*/,
    -
    4094  0 /*untilTimeCode (0/15)*/,
    -
    4095  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4096  },
    -
    4097  // -3:00 - %z 2004 May 30
    -
    4098  {
    -
    4099  nullptr /*zonePolicy*/,
    -
    4100  "" /*format*/,
    -
    4101  -720 /*offsetCode (-10800/15)*/,
    -
    4102  0 /*offsetRemainder (-10800%15)*/,
    -
    4103  0 /*deltaMinutes*/,
    -
    4104  2004 /*untilYear*/,
    -
    4105  5 /*untilMonth*/,
    -
    4106  30 /*untilDay*/,
    -
    4107  0 /*untilTimeCode (0/15)*/,
    -
    4108  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4109  },
    -
    4110  // -4:00 - %z 2004 Jun 20
    -
    4111  {
    -
    4112  nullptr /*zonePolicy*/,
    -
    4113  "" /*format*/,
    -
    4114  -960 /*offsetCode (-14400/15)*/,
    -
    4115  0 /*offsetRemainder (-14400%15)*/,
    -
    4116  0 /*deltaMinutes*/,
    -
    4117  2004 /*untilYear*/,
    -
    4118  6 /*untilMonth*/,
    -
    4119  20 /*untilDay*/,
    -
    4120  0 /*untilTimeCode (0/15)*/,
    -
    4121  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4122  },
    -
    4123  // -3:00 Arg %z 2008 Oct 18
    -
    4124  {
    -
    4125  &kZonePolicyArg /*zonePolicy*/,
    -
    4126  "" /*format*/,
    -
    4127  -720 /*offsetCode (-10800/15)*/,
    -
    4128  0 /*offsetRemainder (-10800%15)*/,
    -
    4129  0 /*deltaMinutes*/,
    -
    4130  2008 /*untilYear*/,
    -
    4131  10 /*untilMonth*/,
    -
    4132  18 /*untilDay*/,
    -
    4133  0 /*untilTimeCode (0/15)*/,
    -
    4134  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4135  },
    -
    4136  // -3:00 - %z
    -
    4137  {
    -
    4138  nullptr /*zonePolicy*/,
    -
    4139  "" /*format*/,
    -
    4140  -720 /*offsetCode (-10800/15)*/,
    -
    4141  0 /*offsetRemainder (-10800%15)*/,
    -
    4142  0 /*deltaMinutes*/,
    -
    4143  32767 /*untilYear*/,
    -
    4144  1 /*untilMonth*/,
    -
    4145  1 /*untilDay*/,
    -
    4146  0 /*untilTimeCode (0/15)*/,
    -
    4147  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4148  },
    -
    4149 
    -
    4150 };
    -
    4151 
    -
    4152 static const char kZoneNameAmerica_Argentina_Ushuaia[] ACE_TIME_PROGMEM = "\x02" "\x04" "Ushuaia";
    -
    4153 
    -
    4154 const complete::Info::ZoneInfo kZoneAmerica_Argentina_Ushuaia ACE_TIME_PROGMEM = {
    -
    4155  kZoneNameAmerica_Argentina_Ushuaia /*name*/,
    -
    4156  0x320dcdde /*zoneId*/,
    -
    4157  &kZoneContext /*zoneContext*/,
    -
    4158  10 /*numEras*/,
    -
    4159  kZoneEraAmerica_Argentina_Ushuaia /*eras*/,
    -
    4160  nullptr /*targetInfo*/,
    -
    4161 };
    -
    4162 
    -
    4163 //---------------------------------------------------------------------------
    -
    4164 // Zone name: America/Asuncion
    -
    4165 // Eras: 6
    -
    4166 //---------------------------------------------------------------------------
    -
    4167 
    -
    4168 static const complete::Info::ZoneEra kZoneEraAmerica_Asuncion[] ACE_TIME_PROGMEM = {
    -
    4169  // -3:50:40 - LMT 1890
    -
    4170  {
    -
    4171  nullptr /*zonePolicy*/,
    -
    4172  "LMT" /*format*/,
    -
    4173  -923 /*offsetCode (-13840/15)*/,
    -
    4174  5 /*offsetRemainder (-13840%15)*/,
    -
    4175  0 /*deltaMinutes*/,
    -
    4176  1890 /*untilYear*/,
    -
    4177  1 /*untilMonth*/,
    -
    4178  1 /*untilDay*/,
    -
    4179  0 /*untilTimeCode (0/15)*/,
    -
    4180  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4181  },
    -
    4182  // -3:50:40 - AMT 1931 Oct 10
    -
    4183  {
    -
    4184  nullptr /*zonePolicy*/,
    -
    4185  "AMT" /*format*/,
    -
    4186  -923 /*offsetCode (-13840/15)*/,
    -
    4187  5 /*offsetRemainder (-13840%15)*/,
    -
    4188  0 /*deltaMinutes*/,
    -
    4189  1931 /*untilYear*/,
    -
    4190  10 /*untilMonth*/,
    -
    4191  10 /*untilDay*/,
    -
    4192  0 /*untilTimeCode (0/15)*/,
    -
    4193  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4194  },
    -
    4195  // -4:00 - %z 1972 Oct
    -
    4196  {
    -
    4197  nullptr /*zonePolicy*/,
    -
    4198  "" /*format*/,
    -
    4199  -960 /*offsetCode (-14400/15)*/,
    -
    4200  0 /*offsetRemainder (-14400%15)*/,
    -
    4201  0 /*deltaMinutes*/,
    -
    4202  1972 /*untilYear*/,
    -
    4203  10 /*untilMonth*/,
    -
    4204  1 /*untilDay*/,
    -
    4205  0 /*untilTimeCode (0/15)*/,
    -
    4206  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4207  },
    -
    4208  // -3:00 - %z 1974 Apr
    -
    4209  {
    -
    4210  nullptr /*zonePolicy*/,
    -
    4211  "" /*format*/,
    -
    4212  -720 /*offsetCode (-10800/15)*/,
    -
    4213  0 /*offsetRemainder (-10800%15)*/,
    -
    4214  0 /*deltaMinutes*/,
    -
    4215  1974 /*untilYear*/,
    -
    4216  4 /*untilMonth*/,
    -
    4217  1 /*untilDay*/,
    -
    4218  0 /*untilTimeCode (0/15)*/,
    -
    4219  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4220  },
    -
    4221  // -4:00 Para %z 2024 Oct 15
    -
    4222  {
    -
    4223  &kZonePolicyPara /*zonePolicy*/,
    -
    4224  "" /*format*/,
    -
    4225  -960 /*offsetCode (-14400/15)*/,
    -
    4226  0 /*offsetRemainder (-14400%15)*/,
    -
    4227  0 /*deltaMinutes*/,
    -
    4228  2024 /*untilYear*/,
    -
    4229  10 /*untilMonth*/,
    -
    4230  15 /*untilDay*/,
    -
    4231  0 /*untilTimeCode (0/15)*/,
    -
    4232  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4233  },
    -
    4234  // -3:00 - %z
    -
    4235  {
    -
    4236  nullptr /*zonePolicy*/,
    -
    4237  "" /*format*/,
    -
    4238  -720 /*offsetCode (-10800/15)*/,
    -
    4239  0 /*offsetRemainder (-10800%15)*/,
    -
    4240  0 /*deltaMinutes*/,
    -
    4241  32767 /*untilYear*/,
    -
    4242  1 /*untilMonth*/,
    -
    4243  1 /*untilDay*/,
    -
    4244  0 /*untilTimeCode (0/15)*/,
    -
    4245  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4246  },
    -
    4247 
    -
    4248 };
    -
    4249 
    -
    4250 static const char kZoneNameAmerica_Asuncion[] ACE_TIME_PROGMEM = "\x02" "Asuncion";
    -
    4251 
    -
    4252 const complete::Info::ZoneInfo kZoneAmerica_Asuncion ACE_TIME_PROGMEM = {
    -
    4253  kZoneNameAmerica_Asuncion /*name*/,
    -
    4254  0x50ec79a6 /*zoneId*/,
    -
    4255  &kZoneContext /*zoneContext*/,
    -
    4256  6 /*numEras*/,
    -
    4257  kZoneEraAmerica_Asuncion /*eras*/,
    -
    4258  nullptr /*targetInfo*/,
    -
    4259 };
    -
    4260 
    -
    4261 //---------------------------------------------------------------------------
    -
    4262 // Zone name: America/Bahia
    -
    4263 // Eras: 5
    -
    4264 //---------------------------------------------------------------------------
    -
    4265 
    -
    4266 static const complete::Info::ZoneEra kZoneEraAmerica_Bahia[] ACE_TIME_PROGMEM = {
    -
    4267  // -2:34:04 - LMT 1914
    -
    4268  {
    -
    4269  nullptr /*zonePolicy*/,
    -
    4270  "LMT" /*format*/,
    -
    4271  -617 /*offsetCode (-9244/15)*/,
    -
    4272  11 /*offsetRemainder (-9244%15)*/,
    -
    4273  0 /*deltaMinutes*/,
    -
    4274  1914 /*untilYear*/,
    -
    4275  1 /*untilMonth*/,
    -
    4276  1 /*untilDay*/,
    -
    4277  0 /*untilTimeCode (0/15)*/,
    -
    4278  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4279  },
    -
    4280  // -3:00 Brazil %z 2003 Sep 24
    -
    4281  {
    -
    4282  &kZonePolicyBrazil /*zonePolicy*/,
    -
    4283  "" /*format*/,
    -
    4284  -720 /*offsetCode (-10800/15)*/,
    -
    4285  0 /*offsetRemainder (-10800%15)*/,
    -
    4286  0 /*deltaMinutes*/,
    -
    4287  2003 /*untilYear*/,
    -
    4288  9 /*untilMonth*/,
    -
    4289  24 /*untilDay*/,
    -
    4290  0 /*untilTimeCode (0/15)*/,
    -
    4291  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4292  },
    -
    4293  // -3:00 - %z 2011 Oct 16
    -
    4294  {
    -
    4295  nullptr /*zonePolicy*/,
    -
    4296  "" /*format*/,
    -
    4297  -720 /*offsetCode (-10800/15)*/,
    -
    4298  0 /*offsetRemainder (-10800%15)*/,
    -
    4299  0 /*deltaMinutes*/,
    -
    4300  2011 /*untilYear*/,
    -
    4301  10 /*untilMonth*/,
    -
    4302  16 /*untilDay*/,
    -
    4303  0 /*untilTimeCode (0/15)*/,
    -
    4304  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4305  },
    -
    4306  // -3:00 Brazil %z 2012 Oct 21
    -
    4307  {
    -
    4308  &kZonePolicyBrazil /*zonePolicy*/,
    -
    4309  "" /*format*/,
    -
    4310  -720 /*offsetCode (-10800/15)*/,
    -
    4311  0 /*offsetRemainder (-10800%15)*/,
    -
    4312  0 /*deltaMinutes*/,
    -
    4313  2012 /*untilYear*/,
    -
    4314  10 /*untilMonth*/,
    -
    4315  21 /*untilDay*/,
    -
    4316  0 /*untilTimeCode (0/15)*/,
    -
    4317  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4318  },
    -
    4319  // -3:00 - %z
    -
    4320  {
    -
    4321  nullptr /*zonePolicy*/,
    -
    4322  "" /*format*/,
    -
    4323  -720 /*offsetCode (-10800/15)*/,
    -
    4324  0 /*offsetRemainder (-10800%15)*/,
    -
    4325  0 /*deltaMinutes*/,
    -
    4326  32767 /*untilYear*/,
    -
    4327  1 /*untilMonth*/,
    -
    4328  1 /*untilDay*/,
    -
    4329  0 /*untilTimeCode (0/15)*/,
    -
    4330  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4331  },
    -
    4332 
    -
    4333 };
    -
    4334 
    -
    4335 static const char kZoneNameAmerica_Bahia[] ACE_TIME_PROGMEM = "\x02" "Bahia";
    -
    4336 
    -
    4337 const complete::Info::ZoneInfo kZoneAmerica_Bahia ACE_TIME_PROGMEM = {
    -
    4338  kZoneNameAmerica_Bahia /*name*/,
    -
    4339  0x97d815fb /*zoneId*/,
    -
    4340  &kZoneContext /*zoneContext*/,
    -
    4341  5 /*numEras*/,
    -
    4342  kZoneEraAmerica_Bahia /*eras*/,
    -
    4343  nullptr /*targetInfo*/,
    -
    4344 };
    -
    4345 
    -
    4346 //---------------------------------------------------------------------------
    -
    4347 // Zone name: America/Bahia_Banderas
    -
    4348 // Eras: 8
    -
    4349 //---------------------------------------------------------------------------
    -
    4350 
    -
    4351 static const complete::Info::ZoneEra kZoneEraAmerica_Bahia_Banderas[] ACE_TIME_PROGMEM = {
    -
    4352  // -7:01:00 - LMT 1922 Jan 1 7:00u
    -
    4353  {
    -
    4354  nullptr /*zonePolicy*/,
    -
    4355  "LMT" /*format*/,
    -
    4356  -1684 /*offsetCode (-25260/15)*/,
    -
    4357  0 /*offsetRemainder (-25260%15)*/,
    -
    4358  0 /*deltaMinutes*/,
    -
    4359  1922 /*untilYear*/,
    -
    4360  1 /*untilMonth*/,
    -
    4361  1 /*untilDay*/,
    -
    4362  1680 /*untilTimeCode (25200/15)*/,
    -
    4363  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    4364  },
    -
    4365  // -7:00 - MST 1927 Jun 10
    -
    4366  {
    -
    4367  nullptr /*zonePolicy*/,
    -
    4368  "MST" /*format*/,
    -
    4369  -1680 /*offsetCode (-25200/15)*/,
    -
    4370  0 /*offsetRemainder (-25200%15)*/,
    -
    4371  0 /*deltaMinutes*/,
    -
    4372  1927 /*untilYear*/,
    -
    4373  6 /*untilMonth*/,
    -
    4374  10 /*untilDay*/,
    -
    4375  0 /*untilTimeCode (0/15)*/,
    -
    4376  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4377  },
    -
    4378  // -6:00 - CST 1930 Nov 15
    -
    4379  {
    -
    4380  nullptr /*zonePolicy*/,
    -
    4381  "CST" /*format*/,
    -
    4382  -1440 /*offsetCode (-21600/15)*/,
    -
    4383  0 /*offsetRemainder (-21600%15)*/,
    -
    4384  0 /*deltaMinutes*/,
    -
    4385  1930 /*untilYear*/,
    -
    4386  11 /*untilMonth*/,
    -
    4387  15 /*untilDay*/,
    -
    4388  0 /*untilTimeCode (0/15)*/,
    -
    4389  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4390  },
    -
    4391  // -7:00 Mexico M%sT 1932 Apr 1
    -
    4392  {
    -
    4393  &kZonePolicyMexico /*zonePolicy*/,
    -
    4394  "M%T" /*format*/,
    -
    4395  -1680 /*offsetCode (-25200/15)*/,
    -
    4396  0 /*offsetRemainder (-25200%15)*/,
    -
    4397  0 /*deltaMinutes*/,
    -
    4398  1932 /*untilYear*/,
    -
    4399  4 /*untilMonth*/,
    -
    4400  1 /*untilDay*/,
    -
    4401  0 /*untilTimeCode (0/15)*/,
    -
    4402  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4403  },
    -
    4404  // -6:00 - CST 1942 Apr 24
    -
    4405  {
    -
    4406  nullptr /*zonePolicy*/,
    -
    4407  "CST" /*format*/,
    -
    4408  -1440 /*offsetCode (-21600/15)*/,
    -
    4409  0 /*offsetRemainder (-21600%15)*/,
    -
    4410  0 /*deltaMinutes*/,
    -
    4411  1942 /*untilYear*/,
    -
    4412  4 /*untilMonth*/,
    -
    4413  24 /*untilDay*/,
    -
    4414  0 /*untilTimeCode (0/15)*/,
    -
    4415  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4416  },
    -
    4417  // -7:00 - MST 1970
    -
    4418  {
    -
    4419  nullptr /*zonePolicy*/,
    -
    4420  "MST" /*format*/,
    -
    4421  -1680 /*offsetCode (-25200/15)*/,
    -
    4422  0 /*offsetRemainder (-25200%15)*/,
    -
    4423  0 /*deltaMinutes*/,
    -
    4424  1970 /*untilYear*/,
    -
    4425  1 /*untilMonth*/,
    -
    4426  1 /*untilDay*/,
    -
    4427  0 /*untilTimeCode (0/15)*/,
    -
    4428  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4429  },
    -
    4430  // -7:00 Mexico M%sT 2010 Apr 4 2:00
    -
    4431  {
    -
    4432  &kZonePolicyMexico /*zonePolicy*/,
    -
    4433  "M%T" /*format*/,
    -
    4434  -1680 /*offsetCode (-25200/15)*/,
    -
    4435  0 /*offsetRemainder (-25200%15)*/,
    -
    4436  0 /*deltaMinutes*/,
    -
    4437  2010 /*untilYear*/,
    -
    4438  4 /*untilMonth*/,
    -
    4439  4 /*untilDay*/,
    -
    4440  480 /*untilTimeCode (7200/15)*/,
    -
    4441  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4442  },
    -
    4443  // -6:00 Mexico C%sT
    -
    4444  {
    -
    4445  &kZonePolicyMexico /*zonePolicy*/,
    -
    4446  "C%T" /*format*/,
    -
    4447  -1440 /*offsetCode (-21600/15)*/,
    -
    4448  0 /*offsetRemainder (-21600%15)*/,
    -
    4449  0 /*deltaMinutes*/,
    -
    4450  32767 /*untilYear*/,
    -
    4451  1 /*untilMonth*/,
    -
    4452  1 /*untilDay*/,
    -
    4453  0 /*untilTimeCode (0/15)*/,
    -
    4454  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4455  },
    -
    4456 
    -
    4457 };
    -
    4458 
    -
    4459 static const char kZoneNameAmerica_Bahia_Banderas[] ACE_TIME_PROGMEM = "\x02" "Bahia_Banderas";
    -
    4460 
    -
    4461 const complete::Info::ZoneInfo kZoneAmerica_Bahia_Banderas ACE_TIME_PROGMEM = {
    -
    4462  kZoneNameAmerica_Bahia_Banderas /*name*/,
    -
    4463  0x14f6329a /*zoneId*/,
    -
    4464  &kZoneContext /*zoneContext*/,
    -
    4465  8 /*numEras*/,
    -
    4466  kZoneEraAmerica_Bahia_Banderas /*eras*/,
    -
    4467  nullptr /*targetInfo*/,
    -
    4468 };
    -
    4469 
    -
    4470 //---------------------------------------------------------------------------
    -
    4471 // Zone name: America/Barbados
    -
    4472 // Eras: 4
    -
    4473 //---------------------------------------------------------------------------
    -
    4474 
    -
    4475 static const complete::Info::ZoneEra kZoneEraAmerica_Barbados[] ACE_TIME_PROGMEM = {
    -
    4476  // -3:58:29 - LMT 1911 Aug 28
    -
    4477  {
    -
    4478  nullptr /*zonePolicy*/,
    -
    4479  "LMT" /*format*/,
    -
    4480  -954 /*offsetCode (-14309/15)*/,
    -
    4481  1 /*offsetRemainder (-14309%15)*/,
    -
    4482  0 /*deltaMinutes*/,
    -
    4483  1911 /*untilYear*/,
    -
    4484  8 /*untilMonth*/,
    -
    4485  28 /*untilDay*/,
    -
    4486  0 /*untilTimeCode (0/15)*/,
    -
    4487  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4488  },
    -
    4489  // -4:00 Barb A%sT 1944
    -
    4490  {
    -
    4491  &kZonePolicyBarb /*zonePolicy*/,
    -
    4492  "A%T" /*format*/,
    -
    4493  -960 /*offsetCode (-14400/15)*/,
    -
    4494  0 /*offsetRemainder (-14400%15)*/,
    -
    4495  0 /*deltaMinutes*/,
    -
    4496  1944 /*untilYear*/,
    -
    4497  1 /*untilMonth*/,
    -
    4498  1 /*untilDay*/,
    -
    4499  0 /*untilTimeCode (0/15)*/,
    -
    4500  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4501  },
    -
    4502  // -4:00 Barb AST/-0330 1945
    -
    4503  {
    -
    4504  &kZonePolicyBarb /*zonePolicy*/,
    -
    4505  "AST/-0330" /*format*/,
    -
    4506  -960 /*offsetCode (-14400/15)*/,
    -
    4507  0 /*offsetRemainder (-14400%15)*/,
    -
    4508  0 /*deltaMinutes*/,
    -
    4509  1945 /*untilYear*/,
    -
    4510  1 /*untilMonth*/,
    -
    4511  1 /*untilDay*/,
    -
    4512  0 /*untilTimeCode (0/15)*/,
    -
    4513  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4514  },
    -
    4515  // -4:00 Barb A%sT
    -
    4516  {
    -
    4517  &kZonePolicyBarb /*zonePolicy*/,
    -
    4518  "A%T" /*format*/,
    -
    4519  -960 /*offsetCode (-14400/15)*/,
    -
    4520  0 /*offsetRemainder (-14400%15)*/,
    -
    4521  0 /*deltaMinutes*/,
    -
    4522  32767 /*untilYear*/,
    -
    4523  1 /*untilMonth*/,
    -
    4524  1 /*untilDay*/,
    -
    4525  0 /*untilTimeCode (0/15)*/,
    -
    4526  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4527  },
    -
    4528 
    -
    4529 };
    -
    4530 
    -
    4531 static const char kZoneNameAmerica_Barbados[] ACE_TIME_PROGMEM = "\x02" "Barbados";
    -
    4532 
    -
    4533 const complete::Info::ZoneInfo kZoneAmerica_Barbados ACE_TIME_PROGMEM = {
    -
    4534  kZoneNameAmerica_Barbados /*name*/,
    -
    4535  0xcbbc3b04 /*zoneId*/,
    -
    4536  &kZoneContext /*zoneContext*/,
    -
    4537  4 /*numEras*/,
    -
    4538  kZoneEraAmerica_Barbados /*eras*/,
    -
    4539  nullptr /*targetInfo*/,
    -
    4540 };
    -
    4541 
    -
    4542 //---------------------------------------------------------------------------
    -
    4543 // Zone name: America/Belem
    -
    4544 // Eras: 3
    -
    4545 //---------------------------------------------------------------------------
    -
    4546 
    -
    4547 static const complete::Info::ZoneEra kZoneEraAmerica_Belem[] ACE_TIME_PROGMEM = {
    -
    4548  // -3:13:56 - LMT 1914
    -
    4549  {
    -
    4550  nullptr /*zonePolicy*/,
    -
    4551  "LMT" /*format*/,
    -
    4552  -776 /*offsetCode (-11636/15)*/,
    -
    4553  4 /*offsetRemainder (-11636%15)*/,
    -
    4554  0 /*deltaMinutes*/,
    -
    4555  1914 /*untilYear*/,
    -
    4556  1 /*untilMonth*/,
    -
    4557  1 /*untilDay*/,
    -
    4558  0 /*untilTimeCode (0/15)*/,
    -
    4559  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4560  },
    -
    4561  // -3:00 Brazil %z 1988 Sep 12
    -
    4562  {
    -
    4563  &kZonePolicyBrazil /*zonePolicy*/,
    -
    4564  "" /*format*/,
    -
    4565  -720 /*offsetCode (-10800/15)*/,
    -
    4566  0 /*offsetRemainder (-10800%15)*/,
    -
    4567  0 /*deltaMinutes*/,
    -
    4568  1988 /*untilYear*/,
    -
    4569  9 /*untilMonth*/,
    -
    4570  12 /*untilDay*/,
    -
    4571  0 /*untilTimeCode (0/15)*/,
    -
    4572  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4573  },
    -
    4574  // -3:00 - %z
    -
    4575  {
    -
    4576  nullptr /*zonePolicy*/,
    -
    4577  "" /*format*/,
    -
    4578  -720 /*offsetCode (-10800/15)*/,
    -
    4579  0 /*offsetRemainder (-10800%15)*/,
    -
    4580  0 /*deltaMinutes*/,
    -
    4581  32767 /*untilYear*/,
    -
    4582  1 /*untilMonth*/,
    -
    4583  1 /*untilDay*/,
    -
    4584  0 /*untilTimeCode (0/15)*/,
    -
    4585  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4586  },
    -
    4587 
    -
    4588 };
    -
    4589 
    -
    4590 static const char kZoneNameAmerica_Belem[] ACE_TIME_PROGMEM = "\x02" "Belem";
    -
    4591 
    -
    4592 const complete::Info::ZoneInfo kZoneAmerica_Belem ACE_TIME_PROGMEM = {
    -
    4593  kZoneNameAmerica_Belem /*name*/,
    -
    4594  0x97da580b /*zoneId*/,
    -
    4595  &kZoneContext /*zoneContext*/,
    -
    4596  3 /*numEras*/,
    -
    4597  kZoneEraAmerica_Belem /*eras*/,
    -
    4598  nullptr /*targetInfo*/,
    -
    4599 };
    -
    4600 
    -
    4601 //---------------------------------------------------------------------------
    -
    4602 // Zone name: America/Belize
    -
    4603 // Eras: 2
    -
    4604 //---------------------------------------------------------------------------
    -
    4605 
    -
    4606 static const complete::Info::ZoneEra kZoneEraAmerica_Belize[] ACE_TIME_PROGMEM = {
    -
    4607  // -5:52:48 - LMT 1912 Apr 1
    -
    4608  {
    -
    4609  nullptr /*zonePolicy*/,
    -
    4610  "LMT" /*format*/,
    -
    4611  -1412 /*offsetCode (-21168/15)*/,
    -
    4612  12 /*offsetRemainder (-21168%15)*/,
    -
    4613  0 /*deltaMinutes*/,
    -
    4614  1912 /*untilYear*/,
    -
    4615  4 /*untilMonth*/,
    -
    4616  1 /*untilDay*/,
    -
    4617  0 /*untilTimeCode (0/15)*/,
    -
    4618  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4619  },
    -
    4620  // -6:00 Belize %s
    -
    4621  {
    -
    4622  &kZonePolicyBelize /*zonePolicy*/,
    -
    4623  "%" /*format*/,
    -
    4624  -1440 /*offsetCode (-21600/15)*/,
    -
    4625  0 /*offsetRemainder (-21600%15)*/,
    -
    4626  0 /*deltaMinutes*/,
    -
    4627  32767 /*untilYear*/,
    -
    4628  1 /*untilMonth*/,
    -
    4629  1 /*untilDay*/,
    -
    4630  0 /*untilTimeCode (0/15)*/,
    -
    4631  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4632  },
    -
    4633 
    -
    4634 };
    -
    4635 
    -
    4636 static const char kZoneNameAmerica_Belize[] ACE_TIME_PROGMEM = "\x02" "Belize";
    -
    4637 
    -
    4638 const complete::Info::ZoneInfo kZoneAmerica_Belize ACE_TIME_PROGMEM = {
    -
    4639  kZoneNameAmerica_Belize /*name*/,
    -
    4640  0x93256c81 /*zoneId*/,
    -
    4641  &kZoneContext /*zoneContext*/,
    -
    4642  2 /*numEras*/,
    -
    4643  kZoneEraAmerica_Belize /*eras*/,
    -
    4644  nullptr /*targetInfo*/,
    -
    4645 };
    -
    4646 
    -
    4647 //---------------------------------------------------------------------------
    -
    4648 // Zone name: America/Boa_Vista
    -
    4649 // Eras: 5
    -
    4650 //---------------------------------------------------------------------------
    -
    4651 
    -
    4652 static const complete::Info::ZoneEra kZoneEraAmerica_Boa_Vista[] ACE_TIME_PROGMEM = {
    -
    4653  // -4:02:40 - LMT 1914
    -
    4654  {
    -
    4655  nullptr /*zonePolicy*/,
    -
    4656  "LMT" /*format*/,
    -
    4657  -971 /*offsetCode (-14560/15)*/,
    -
    4658  5 /*offsetRemainder (-14560%15)*/,
    -
    4659  0 /*deltaMinutes*/,
    -
    4660  1914 /*untilYear*/,
    -
    4661  1 /*untilMonth*/,
    -
    4662  1 /*untilDay*/,
    -
    4663  0 /*untilTimeCode (0/15)*/,
    -
    4664  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4665  },
    -
    4666  // -4:00 Brazil %z 1988 Sep 12
    -
    4667  {
    -
    4668  &kZonePolicyBrazil /*zonePolicy*/,
    -
    4669  "" /*format*/,
    -
    4670  -960 /*offsetCode (-14400/15)*/,
    -
    4671  0 /*offsetRemainder (-14400%15)*/,
    -
    4672  0 /*deltaMinutes*/,
    -
    4673  1988 /*untilYear*/,
    -
    4674  9 /*untilMonth*/,
    -
    4675  12 /*untilDay*/,
    -
    4676  0 /*untilTimeCode (0/15)*/,
    -
    4677  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4678  },
    -
    4679  // -4:00 - %z 1999 Sep 30
    -
    4680  {
    -
    4681  nullptr /*zonePolicy*/,
    -
    4682  "" /*format*/,
    -
    4683  -960 /*offsetCode (-14400/15)*/,
    -
    4684  0 /*offsetRemainder (-14400%15)*/,
    -
    4685  0 /*deltaMinutes*/,
    -
    4686  1999 /*untilYear*/,
    -
    4687  9 /*untilMonth*/,
    -
    4688  30 /*untilDay*/,
    -
    4689  0 /*untilTimeCode (0/15)*/,
    -
    4690  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4691  },
    -
    4692  // -4:00 Brazil %z 2000 Oct 15
    -
    4693  {
    -
    4694  &kZonePolicyBrazil /*zonePolicy*/,
    -
    4695  "" /*format*/,
    -
    4696  -960 /*offsetCode (-14400/15)*/,
    -
    4697  0 /*offsetRemainder (-14400%15)*/,
    -
    4698  0 /*deltaMinutes*/,
    -
    4699  2000 /*untilYear*/,
    -
    4700  10 /*untilMonth*/,
    -
    4701  15 /*untilDay*/,
    -
    4702  0 /*untilTimeCode (0/15)*/,
    -
    4703  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4704  },
    -
    4705  // -4:00 - %z
    -
    4706  {
    -
    4707  nullptr /*zonePolicy*/,
    -
    4708  "" /*format*/,
    -
    4709  -960 /*offsetCode (-14400/15)*/,
    -
    4710  0 /*offsetRemainder (-14400%15)*/,
    -
    4711  0 /*deltaMinutes*/,
    -
    4712  32767 /*untilYear*/,
    -
    4713  1 /*untilMonth*/,
    -
    4714  1 /*untilDay*/,
    -
    4715  0 /*untilTimeCode (0/15)*/,
    -
    4716  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4717  },
    -
    4718 
    -
    4719 };
    -
    4720 
    -
    4721 static const char kZoneNameAmerica_Boa_Vista[] ACE_TIME_PROGMEM = "\x02" "Boa_Vista";
    -
    4722 
    -
    4723 const complete::Info::ZoneInfo kZoneAmerica_Boa_Vista ACE_TIME_PROGMEM = {
    -
    4724  kZoneNameAmerica_Boa_Vista /*name*/,
    -
    4725  0x0a7b7efe /*zoneId*/,
    -
    4726  &kZoneContext /*zoneContext*/,
    -
    4727  5 /*numEras*/,
    -
    4728  kZoneEraAmerica_Boa_Vista /*eras*/,
    -
    4729  nullptr /*targetInfo*/,
    -
    4730 };
    -
    4731 
    -
    4732 //---------------------------------------------------------------------------
    -
    4733 // Zone name: America/Bogota
    -
    4734 // Eras: 3
    -
    4735 //---------------------------------------------------------------------------
    -
    4736 
    -
    4737 static const complete::Info::ZoneEra kZoneEraAmerica_Bogota[] ACE_TIME_PROGMEM = {
    -
    4738  // -4:56:16 - LMT 1884 Mar 13
    -
    4739  {
    -
    4740  nullptr /*zonePolicy*/,
    -
    4741  "LMT" /*format*/,
    -
    4742  -1186 /*offsetCode (-17776/15)*/,
    -
    4743  14 /*offsetRemainder (-17776%15)*/,
    -
    4744  0 /*deltaMinutes*/,
    -
    4745  1884 /*untilYear*/,
    -
    4746  3 /*untilMonth*/,
    -
    4747  13 /*untilDay*/,
    -
    4748  0 /*untilTimeCode (0/15)*/,
    -
    4749  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4750  },
    -
    4751  // -4:56:16 - BMT 1914 Nov 23
    -
    4752  {
    -
    4753  nullptr /*zonePolicy*/,
    -
    4754  "BMT" /*format*/,
    -
    4755  -1186 /*offsetCode (-17776/15)*/,
    -
    4756  14 /*offsetRemainder (-17776%15)*/,
    -
    4757  0 /*deltaMinutes*/,
    -
    4758  1914 /*untilYear*/,
    -
    4759  11 /*untilMonth*/,
    -
    4760  23 /*untilDay*/,
    -
    4761  0 /*untilTimeCode (0/15)*/,
    -
    4762  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4763  },
    -
    4764  // -5:00 CO %z
    -
    4765  {
    -
    4766  &kZonePolicyCO /*zonePolicy*/,
    -
    4767  "" /*format*/,
    -
    4768  -1200 /*offsetCode (-18000/15)*/,
    -
    4769  0 /*offsetRemainder (-18000%15)*/,
    -
    4770  0 /*deltaMinutes*/,
    -
    4771  32767 /*untilYear*/,
    -
    4772  1 /*untilMonth*/,
    -
    4773  1 /*untilDay*/,
    -
    4774  0 /*untilTimeCode (0/15)*/,
    -
    4775  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4776  },
    -
    4777 
    -
    4778 };
    -
    4779 
    -
    4780 static const char kZoneNameAmerica_Bogota[] ACE_TIME_PROGMEM = "\x02" "Bogota";
    -
    4781 
    -
    4782 const complete::Info::ZoneInfo kZoneAmerica_Bogota ACE_TIME_PROGMEM = {
    -
    4783  kZoneNameAmerica_Bogota /*name*/,
    -
    4784  0x93d7bc62 /*zoneId*/,
    -
    4785  &kZoneContext /*zoneContext*/,
    -
    4786  3 /*numEras*/,
    -
    4787  kZoneEraAmerica_Bogota /*eras*/,
    -
    4788  nullptr /*targetInfo*/,
    -
    4789 };
    -
    4790 
    -
    4791 //---------------------------------------------------------------------------
    -
    4792 // Zone name: America/Boise
    -
    4793 // Eras: 5
    -
    4794 //---------------------------------------------------------------------------
    -
    4795 
    -
    4796 static const complete::Info::ZoneEra kZoneEraAmerica_Boise[] ACE_TIME_PROGMEM = {
    -
    4797  // -7:44:49 - LMT 1883 Nov 18 20:00u
    -
    4798  {
    -
    4799  nullptr /*zonePolicy*/,
    -
    4800  "LMT" /*format*/,
    -
    4801  -1860 /*offsetCode (-27889/15)*/,
    -
    4802  11 /*offsetRemainder (-27889%15)*/,
    -
    4803  0 /*deltaMinutes*/,
    -
    4804  1883 /*untilYear*/,
    -
    4805  11 /*untilMonth*/,
    -
    4806  18 /*untilDay*/,
    -
    4807  4800 /*untilTimeCode (72000/15)*/,
    -
    4808  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    4809  },
    -
    4810  // -8:00 US P%sT 1923 May 13 2:00
    -
    4811  {
    -
    4812  &kZonePolicyUS /*zonePolicy*/,
    -
    4813  "P%T" /*format*/,
    -
    4814  -1920 /*offsetCode (-28800/15)*/,
    -
    4815  0 /*offsetRemainder (-28800%15)*/,
    -
    4816  0 /*deltaMinutes*/,
    -
    4817  1923 /*untilYear*/,
    -
    4818  5 /*untilMonth*/,
    -
    4819  13 /*untilDay*/,
    -
    4820  480 /*untilTimeCode (7200/15)*/,
    -
    4821  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4822  },
    -
    4823  // -7:00 US M%sT 1974
    -
    4824  {
    -
    4825  &kZonePolicyUS /*zonePolicy*/,
    -
    4826  "M%T" /*format*/,
    -
    4827  -1680 /*offsetCode (-25200/15)*/,
    -
    4828  0 /*offsetRemainder (-25200%15)*/,
    -
    4829  0 /*deltaMinutes*/,
    -
    4830  1974 /*untilYear*/,
    -
    4831  1 /*untilMonth*/,
    -
    4832  1 /*untilDay*/,
    -
    4833  0 /*untilTimeCode (0/15)*/,
    -
    4834  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4835  },
    -
    4836  // -7:00 - MST 1974 Feb 3 2:00
    -
    4837  {
    -
    4838  nullptr /*zonePolicy*/,
    -
    4839  "MST" /*format*/,
    -
    4840  -1680 /*offsetCode (-25200/15)*/,
    -
    4841  0 /*offsetRemainder (-25200%15)*/,
    -
    4842  0 /*deltaMinutes*/,
    -
    4843  1974 /*untilYear*/,
    -
    4844  2 /*untilMonth*/,
    -
    4845  3 /*untilDay*/,
    -
    4846  480 /*untilTimeCode (7200/15)*/,
    -
    4847  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4848  },
    -
    4849  // -7:00 US M%sT
    -
    4850  {
    -
    4851  &kZonePolicyUS /*zonePolicy*/,
    -
    4852  "M%T" /*format*/,
    -
    4853  -1680 /*offsetCode (-25200/15)*/,
    -
    4854  0 /*offsetRemainder (-25200%15)*/,
    -
    4855  0 /*deltaMinutes*/,
    -
    4856  32767 /*untilYear*/,
    -
    4857  1 /*untilMonth*/,
    -
    4858  1 /*untilDay*/,
    -
    4859  0 /*untilTimeCode (0/15)*/,
    -
    4860  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4861  },
    -
    4862 
    -
    4863 };
    -
    4864 
    -
    4865 static const char kZoneNameAmerica_Boise[] ACE_TIME_PROGMEM = "\x02" "Boise";
    -
    4866 
    -
    4867 const complete::Info::ZoneInfo kZoneAmerica_Boise ACE_TIME_PROGMEM = {
    -
    4868  kZoneNameAmerica_Boise /*name*/,
    -
    4869  0x97dfc8d8 /*zoneId*/,
    -
    4870  &kZoneContext /*zoneContext*/,
    -
    4871  5 /*numEras*/,
    -
    4872  kZoneEraAmerica_Boise /*eras*/,
    -
    4873  nullptr /*targetInfo*/,
    -
    4874 };
    -
    4875 
    -
    4876 //---------------------------------------------------------------------------
    -
    4877 // Zone name: America/Cambridge_Bay
    -
    4878 // Eras: 6
    -
    4879 //---------------------------------------------------------------------------
    -
    4880 
    -
    4881 static const complete::Info::ZoneEra kZoneEraAmerica_Cambridge_Bay[] ACE_TIME_PROGMEM = {
    -
    4882  // 0 - -00 1920
    -
    4883  {
    -
    4884  nullptr /*zonePolicy*/,
    -
    4885  "-00" /*format*/,
    -
    4886  0 /*offsetCode (0/15)*/,
    -
    4887  0 /*offsetRemainder (0%15)*/,
    -
    4888  0 /*deltaMinutes*/,
    -
    4889  1920 /*untilYear*/,
    -
    4890  1 /*untilMonth*/,
    -
    4891  1 /*untilDay*/,
    -
    4892  0 /*untilTimeCode (0/15)*/,
    -
    4893  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4894  },
    -
    4895  // -7:00 NT_YK M%sT 1999 Oct 31 2:00
    -
    4896  {
    -
    4897  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    4898  "M%T" /*format*/,
    -
    4899  -1680 /*offsetCode (-25200/15)*/,
    -
    4900  0 /*offsetRemainder (-25200%15)*/,
    -
    4901  0 /*deltaMinutes*/,
    -
    4902  1999 /*untilYear*/,
    -
    4903  10 /*untilMonth*/,
    -
    4904  31 /*untilDay*/,
    -
    4905  480 /*untilTimeCode (7200/15)*/,
    -
    4906  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4907  },
    -
    4908  // -6:00 Canada C%sT 2000 Oct 29 2:00
    -
    4909  {
    -
    4910  &kZonePolicyCanada /*zonePolicy*/,
    -
    4911  "C%T" /*format*/,
    -
    4912  -1440 /*offsetCode (-21600/15)*/,
    -
    4913  0 /*offsetRemainder (-21600%15)*/,
    -
    4914  0 /*deltaMinutes*/,
    -
    4915  2000 /*untilYear*/,
    -
    4916  10 /*untilMonth*/,
    -
    4917  29 /*untilDay*/,
    -
    4918  480 /*untilTimeCode (7200/15)*/,
    -
    4919  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4920  },
    -
    4921  // -5:00 - EST 2000 Nov 5 0:00
    -
    4922  {
    -
    4923  nullptr /*zonePolicy*/,
    -
    4924  "EST" /*format*/,
    -
    4925  -1200 /*offsetCode (-18000/15)*/,
    -
    4926  0 /*offsetRemainder (-18000%15)*/,
    -
    4927  0 /*deltaMinutes*/,
    -
    4928  2000 /*untilYear*/,
    -
    4929  11 /*untilMonth*/,
    -
    4930  5 /*untilDay*/,
    -
    4931  0 /*untilTimeCode (0/15)*/,
    -
    4932  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4933  },
    -
    4934  // -6:00 - CST 2001 Apr 1 3:00
    -
    4935  {
    -
    4936  nullptr /*zonePolicy*/,
    -
    4937  "CST" /*format*/,
    -
    4938  -1440 /*offsetCode (-21600/15)*/,
    -
    4939  0 /*offsetRemainder (-21600%15)*/,
    -
    4940  0 /*deltaMinutes*/,
    -
    4941  2001 /*untilYear*/,
    -
    4942  4 /*untilMonth*/,
    -
    4943  1 /*untilDay*/,
    -
    4944  720 /*untilTimeCode (10800/15)*/,
    -
    4945  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4946  },
    -
    4947  // -7:00 Canada M%sT
    -
    4948  {
    -
    4949  &kZonePolicyCanada /*zonePolicy*/,
    -
    4950  "M%T" /*format*/,
    -
    4951  -1680 /*offsetCode (-25200/15)*/,
    -
    4952  0 /*offsetRemainder (-25200%15)*/,
    -
    4953  0 /*deltaMinutes*/,
    -
    4954  32767 /*untilYear*/,
    -
    4955  1 /*untilMonth*/,
    -
    4956  1 /*untilDay*/,
    -
    4957  0 /*untilTimeCode (0/15)*/,
    -
    4958  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4959  },
    -
    4960 
    -
    4961 };
    -
    4962 
    -
    4963 static const char kZoneNameAmerica_Cambridge_Bay[] ACE_TIME_PROGMEM = "\x02" "Cambridge_Bay";
    -
    4964 
    -
    4965 const complete::Info::ZoneInfo kZoneAmerica_Cambridge_Bay ACE_TIME_PROGMEM = {
    -
    4966  kZoneNameAmerica_Cambridge_Bay /*name*/,
    -
    4967  0xd5a44aff /*zoneId*/,
    -
    4968  &kZoneContext /*zoneContext*/,
    -
    4969  6 /*numEras*/,
    -
    4970  kZoneEraAmerica_Cambridge_Bay /*eras*/,
    -
    4971  nullptr /*targetInfo*/,
    -
    4972 };
    -
    4973 
    -
    4974 //---------------------------------------------------------------------------
    -
    4975 // Zone name: America/Campo_Grande
    -
    4976 // Eras: 2
    -
    4977 //---------------------------------------------------------------------------
    -
    4978 
    -
    4979 static const complete::Info::ZoneEra kZoneEraAmerica_Campo_Grande[] ACE_TIME_PROGMEM = {
    -
    4980  // -3:38:28 - LMT 1914
    -
    4981  {
    -
    4982  nullptr /*zonePolicy*/,
    -
    4983  "LMT" /*format*/,
    -
    4984  -874 /*offsetCode (-13108/15)*/,
    -
    4985  2 /*offsetRemainder (-13108%15)*/,
    -
    4986  0 /*deltaMinutes*/,
    -
    4987  1914 /*untilYear*/,
    -
    4988  1 /*untilMonth*/,
    -
    4989  1 /*untilDay*/,
    -
    4990  0 /*untilTimeCode (0/15)*/,
    -
    4991  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4992  },
    -
    4993  // -4:00 Brazil %z
    -
    4994  {
    -
    4995  &kZonePolicyBrazil /*zonePolicy*/,
    -
    4996  "" /*format*/,
    -
    4997  -960 /*offsetCode (-14400/15)*/,
    -
    4998  0 /*offsetRemainder (-14400%15)*/,
    -
    4999  0 /*deltaMinutes*/,
    -
    5000  32767 /*untilYear*/,
    -
    5001  1 /*untilMonth*/,
    -
    5002  1 /*untilDay*/,
    -
    5003  0 /*untilTimeCode (0/15)*/,
    -
    5004  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5005  },
    -
    5006 
    -
    5007 };
    -
    5008 
    -
    5009 static const char kZoneNameAmerica_Campo_Grande[] ACE_TIME_PROGMEM = "\x02" "Campo_Grande";
    -
    5010 
    -
    5011 const complete::Info::ZoneInfo kZoneAmerica_Campo_Grande ACE_TIME_PROGMEM = {
    -
    5012  kZoneNameAmerica_Campo_Grande /*name*/,
    -
    5013  0xfec3e7a6 /*zoneId*/,
    -
    5014  &kZoneContext /*zoneContext*/,
    -
    5015  2 /*numEras*/,
    -
    5016  kZoneEraAmerica_Campo_Grande /*eras*/,
    -
    5017  nullptr /*targetInfo*/,
    -
    5018 };
    -
    5019 
    -
    5020 //---------------------------------------------------------------------------
    -
    5021 // Zone name: America/Cancun
    -
    5022 // Eras: 7
    -
    5023 //---------------------------------------------------------------------------
    -
    5024 
    -
    5025 static const complete::Info::ZoneEra kZoneEraAmerica_Cancun[] ACE_TIME_PROGMEM = {
    -
    5026  // -5:47:04 - LMT 1922 Jan 1 6:00u
    -
    5027  {
    -
    5028  nullptr /*zonePolicy*/,
    -
    5029  "LMT" /*format*/,
    -
    5030  -1389 /*offsetCode (-20824/15)*/,
    -
    5031  11 /*offsetRemainder (-20824%15)*/,
    -
    5032  0 /*deltaMinutes*/,
    -
    5033  1922 /*untilYear*/,
    -
    5034  1 /*untilMonth*/,
    -
    5035  1 /*untilDay*/,
    -
    5036  1440 /*untilTimeCode (21600/15)*/,
    -
    5037  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5038  },
    -
    5039  // -6:00 - CST 1981 Dec 26 2:00
    -
    5040  {
    -
    5041  nullptr /*zonePolicy*/,
    -
    5042  "CST" /*format*/,
    -
    5043  -1440 /*offsetCode (-21600/15)*/,
    -
    5044  0 /*offsetRemainder (-21600%15)*/,
    -
    5045  0 /*deltaMinutes*/,
    -
    5046  1981 /*untilYear*/,
    -
    5047  12 /*untilMonth*/,
    -
    5048  26 /*untilDay*/,
    -
    5049  480 /*untilTimeCode (7200/15)*/,
    -
    5050  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5051  },
    -
    5052  // -5:00 - EST 1983 Jan 4 0:00
    -
    5053  {
    -
    5054  nullptr /*zonePolicy*/,
    -
    5055  "EST" /*format*/,
    -
    5056  -1200 /*offsetCode (-18000/15)*/,
    -
    5057  0 /*offsetRemainder (-18000%15)*/,
    -
    5058  0 /*deltaMinutes*/,
    -
    5059  1983 /*untilYear*/,
    -
    5060  1 /*untilMonth*/,
    -
    5061  4 /*untilDay*/,
    -
    5062  0 /*untilTimeCode (0/15)*/,
    -
    5063  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5064  },
    -
    5065  // -6:00 Mexico C%sT 1997 Oct 26 2:00
    -
    5066  {
    -
    5067  &kZonePolicyMexico /*zonePolicy*/,
    -
    5068  "C%T" /*format*/,
    -
    5069  -1440 /*offsetCode (-21600/15)*/,
    -
    5070  0 /*offsetRemainder (-21600%15)*/,
    -
    5071  0 /*deltaMinutes*/,
    -
    5072  1997 /*untilYear*/,
    -
    5073  10 /*untilMonth*/,
    -
    5074  26 /*untilDay*/,
    -
    5075  480 /*untilTimeCode (7200/15)*/,
    -
    5076  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5077  },
    -
    5078  // -5:00 Mexico E%sT 1998 Aug 2 2:00
    -
    5079  {
    -
    5080  &kZonePolicyMexico /*zonePolicy*/,
    -
    5081  "E%T" /*format*/,
    -
    5082  -1200 /*offsetCode (-18000/15)*/,
    -
    5083  0 /*offsetRemainder (-18000%15)*/,
    -
    5084  0 /*deltaMinutes*/,
    -
    5085  1998 /*untilYear*/,
    -
    5086  8 /*untilMonth*/,
    -
    5087  2 /*untilDay*/,
    -
    5088  480 /*untilTimeCode (7200/15)*/,
    -
    5089  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5090  },
    -
    5091  // -6:00 Mexico C%sT 2015 Feb 1 2:00
    -
    5092  {
    -
    5093  &kZonePolicyMexico /*zonePolicy*/,
    -
    5094  "C%T" /*format*/,
    -
    5095  -1440 /*offsetCode (-21600/15)*/,
    -
    5096  0 /*offsetRemainder (-21600%15)*/,
    -
    5097  0 /*deltaMinutes*/,
    -
    5098  2015 /*untilYear*/,
    -
    5099  2 /*untilMonth*/,
    -
    5100  1 /*untilDay*/,
    -
    5101  480 /*untilTimeCode (7200/15)*/,
    -
    5102  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5103  },
    -
    5104  // -5:00 - EST
    -
    5105  {
    -
    5106  nullptr /*zonePolicy*/,
    -
    5107  "EST" /*format*/,
    -
    5108  -1200 /*offsetCode (-18000/15)*/,
    -
    5109  0 /*offsetRemainder (-18000%15)*/,
    -
    5110  0 /*deltaMinutes*/,
    -
    5111  32767 /*untilYear*/,
    -
    5112  1 /*untilMonth*/,
    -
    5113  1 /*untilDay*/,
    -
    5114  0 /*untilTimeCode (0/15)*/,
    -
    5115  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5116  },
    -
    5117 
    -
    5118 };
    -
    5119 
    -
    5120 static const char kZoneNameAmerica_Cancun[] ACE_TIME_PROGMEM = "\x02" "Cancun";
    -
    5121 
    -
    5122 const complete::Info::ZoneInfo kZoneAmerica_Cancun ACE_TIME_PROGMEM = {
    -
    5123  kZoneNameAmerica_Cancun /*name*/,
    -
    5124  0x953331be /*zoneId*/,
    -
    5125  &kZoneContext /*zoneContext*/,
    -
    5126  7 /*numEras*/,
    -
    5127  kZoneEraAmerica_Cancun /*eras*/,
    -
    5128  nullptr /*targetInfo*/,
    -
    5129 };
    -
    5130 
    -
    5131 //---------------------------------------------------------------------------
    -
    5132 // Zone name: America/Caracas
    -
    5133 // Eras: 6
    -
    5134 //---------------------------------------------------------------------------
    -
    5135 
    -
    5136 static const complete::Info::ZoneEra kZoneEraAmerica_Caracas[] ACE_TIME_PROGMEM = {
    -
    5137  // -4:27:44 - LMT 1890
    -
    5138  {
    -
    5139  nullptr /*zonePolicy*/,
    -
    5140  "LMT" /*format*/,
    -
    5141  -1071 /*offsetCode (-16064/15)*/,
    -
    5142  1 /*offsetRemainder (-16064%15)*/,
    -
    5143  0 /*deltaMinutes*/,
    -
    5144  1890 /*untilYear*/,
    -
    5145  1 /*untilMonth*/,
    -
    5146  1 /*untilDay*/,
    -
    5147  0 /*untilTimeCode (0/15)*/,
    -
    5148  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5149  },
    -
    5150  // -4:27:40 - CMT 1912 Feb 12
    -
    5151  {
    -
    5152  nullptr /*zonePolicy*/,
    -
    5153  "CMT" /*format*/,
    -
    5154  -1071 /*offsetCode (-16060/15)*/,
    -
    5155  5 /*offsetRemainder (-16060%15)*/,
    -
    5156  0 /*deltaMinutes*/,
    -
    5157  1912 /*untilYear*/,
    -
    5158  2 /*untilMonth*/,
    -
    5159  12 /*untilDay*/,
    -
    5160  0 /*untilTimeCode (0/15)*/,
    -
    5161  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5162  },
    -
    5163  // -4:30 - %z 1965 Jan 1 0:00
    -
    5164  {
    -
    5165  nullptr /*zonePolicy*/,
    -
    5166  "" /*format*/,
    -
    5167  -1080 /*offsetCode (-16200/15)*/,
    -
    5168  0 /*offsetRemainder (-16200%15)*/,
    -
    5169  0 /*deltaMinutes*/,
    -
    5170  1965 /*untilYear*/,
    -
    5171  1 /*untilMonth*/,
    -
    5172  1 /*untilDay*/,
    -
    5173  0 /*untilTimeCode (0/15)*/,
    -
    5174  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5175  },
    -
    5176  // -4:00 - %z 2007 Dec 9 3:00
    -
    5177  {
    -
    5178  nullptr /*zonePolicy*/,
    -
    5179  "" /*format*/,
    -
    5180  -960 /*offsetCode (-14400/15)*/,
    -
    5181  0 /*offsetRemainder (-14400%15)*/,
    -
    5182  0 /*deltaMinutes*/,
    -
    5183  2007 /*untilYear*/,
    -
    5184  12 /*untilMonth*/,
    -
    5185  9 /*untilDay*/,
    -
    5186  720 /*untilTimeCode (10800/15)*/,
    -
    5187  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5188  },
    -
    5189  // -4:30 - %z 2016 May 1 2:30
    -
    5190  {
    -
    5191  nullptr /*zonePolicy*/,
    -
    5192  "" /*format*/,
    -
    5193  -1080 /*offsetCode (-16200/15)*/,
    -
    5194  0 /*offsetRemainder (-16200%15)*/,
    -
    5195  0 /*deltaMinutes*/,
    -
    5196  2016 /*untilYear*/,
    -
    5197  5 /*untilMonth*/,
    -
    5198  1 /*untilDay*/,
    -
    5199  600 /*untilTimeCode (9000/15)*/,
    -
    5200  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5201  },
    -
    5202  // -4:00 - %z
    -
    5203  {
    -
    5204  nullptr /*zonePolicy*/,
    -
    5205  "" /*format*/,
    -
    5206  -960 /*offsetCode (-14400/15)*/,
    -
    5207  0 /*offsetRemainder (-14400%15)*/,
    -
    5208  0 /*deltaMinutes*/,
    -
    5209  32767 /*untilYear*/,
    -
    5210  1 /*untilMonth*/,
    -
    5211  1 /*untilDay*/,
    -
    5212  0 /*untilTimeCode (0/15)*/,
    -
    5213  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5214  },
    -
    5215 
    -
    5216 };
    -
    5217 
    -
    5218 static const char kZoneNameAmerica_Caracas[] ACE_TIME_PROGMEM = "\x02" "Caracas";
    -
    5219 
    -
    5220 const complete::Info::ZoneInfo kZoneAmerica_Caracas ACE_TIME_PROGMEM = {
    -
    5221  kZoneNameAmerica_Caracas /*name*/,
    -
    5222  0x3be064f4 /*zoneId*/,
    -
    5223  &kZoneContext /*zoneContext*/,
    -
    5224  6 /*numEras*/,
    -
    5225  kZoneEraAmerica_Caracas /*eras*/,
    -
    5226  nullptr /*targetInfo*/,
    -
    5227 };
    -
    5228 
    -
    5229 //---------------------------------------------------------------------------
    -
    5230 // Zone name: America/Cayenne
    -
    5231 // Eras: 3
    -
    5232 //---------------------------------------------------------------------------
    -
    5233 
    -
    5234 static const complete::Info::ZoneEra kZoneEraAmerica_Cayenne[] ACE_TIME_PROGMEM = {
    -
    5235  // -3:29:20 - LMT 1911 Jul 1
    -
    5236  {
    -
    5237  nullptr /*zonePolicy*/,
    -
    5238  "LMT" /*format*/,
    -
    5239  -838 /*offsetCode (-12560/15)*/,
    -
    5240  10 /*offsetRemainder (-12560%15)*/,
    -
    5241  0 /*deltaMinutes*/,
    -
    5242  1911 /*untilYear*/,
    -
    5243  7 /*untilMonth*/,
    -
    5244  1 /*untilDay*/,
    -
    5245  0 /*untilTimeCode (0/15)*/,
    -
    5246  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5247  },
    -
    5248  // -4:00 - %z 1967 Oct
    -
    5249  {
    -
    5250  nullptr /*zonePolicy*/,
    -
    5251  "" /*format*/,
    -
    5252  -960 /*offsetCode (-14400/15)*/,
    -
    5253  0 /*offsetRemainder (-14400%15)*/,
    -
    5254  0 /*deltaMinutes*/,
    -
    5255  1967 /*untilYear*/,
    -
    5256  10 /*untilMonth*/,
    -
    5257  1 /*untilDay*/,
    -
    5258  0 /*untilTimeCode (0/15)*/,
    -
    5259  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5260  },
    -
    5261  // -3:00 - %z
    -
    5262  {
    -
    5263  nullptr /*zonePolicy*/,
    -
    5264  "" /*format*/,
    -
    5265  -720 /*offsetCode (-10800/15)*/,
    -
    5266  0 /*offsetRemainder (-10800%15)*/,
    -
    5267  0 /*deltaMinutes*/,
    -
    5268  32767 /*untilYear*/,
    -
    5269  1 /*untilMonth*/,
    -
    5270  1 /*untilDay*/,
    -
    5271  0 /*untilTimeCode (0/15)*/,
    -
    5272  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5273  },
    -
    5274 
    -
    5275 };
    -
    5276 
    -
    5277 static const char kZoneNameAmerica_Cayenne[] ACE_TIME_PROGMEM = "\x02" "Cayenne";
    -
    5278 
    -
    5279 const complete::Info::ZoneInfo kZoneAmerica_Cayenne ACE_TIME_PROGMEM = {
    -
    5280  kZoneNameAmerica_Cayenne /*name*/,
    -
    5281  0x3c617269 /*zoneId*/,
    -
    5282  &kZoneContext /*zoneContext*/,
    -
    5283  3 /*numEras*/,
    -
    5284  kZoneEraAmerica_Cayenne /*eras*/,
    -
    5285  nullptr /*targetInfo*/,
    -
    5286 };
    -
    5287 
    -
    5288 //---------------------------------------------------------------------------
    -
    5289 // Zone name: America/Chicago
    -
    5290 // Eras: 8
    -
    5291 //---------------------------------------------------------------------------
    -
    5292 
    -
    5293 static const complete::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = {
    -
    5294  // -5:50:36 - LMT 1883 Nov 18 18:00u
    -
    5295  {
    -
    5296  nullptr /*zonePolicy*/,
    -
    5297  "LMT" /*format*/,
    -
    5298  -1403 /*offsetCode (-21036/15)*/,
    -
    5299  9 /*offsetRemainder (-21036%15)*/,
    -
    5300  0 /*deltaMinutes*/,
    -
    5301  1883 /*untilYear*/,
    -
    5302  11 /*untilMonth*/,
    -
    5303  18 /*untilDay*/,
    -
    5304  4320 /*untilTimeCode (64800/15)*/,
    -
    5305  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5306  },
    -
    5307  // -6:00 US C%sT 1920
    -
    5308  {
    -
    5309  &kZonePolicyUS /*zonePolicy*/,
    -
    5310  "C%T" /*format*/,
    -
    5311  -1440 /*offsetCode (-21600/15)*/,
    -
    5312  0 /*offsetRemainder (-21600%15)*/,
    -
    5313  0 /*deltaMinutes*/,
    -
    5314  1920 /*untilYear*/,
    -
    5315  1 /*untilMonth*/,
    -
    5316  1 /*untilDay*/,
    -
    5317  0 /*untilTimeCode (0/15)*/,
    -
    5318  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5319  },
    -
    5320  // -6:00 Chicago C%sT 1936 Mar 1 2:00
    -
    5321  {
    -
    5322  &kZonePolicyChicago /*zonePolicy*/,
    -
    5323  "C%T" /*format*/,
    -
    5324  -1440 /*offsetCode (-21600/15)*/,
    -
    5325  0 /*offsetRemainder (-21600%15)*/,
    -
    5326  0 /*deltaMinutes*/,
    -
    5327  1936 /*untilYear*/,
    -
    5328  3 /*untilMonth*/,
    -
    5329  1 /*untilDay*/,
    -
    5330  480 /*untilTimeCode (7200/15)*/,
    -
    5331  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5332  },
    -
    5333  // -5:00 - EST 1936 Nov 15 2:00
    -
    5334  {
    -
    5335  nullptr /*zonePolicy*/,
    -
    5336  "EST" /*format*/,
    -
    5337  -1200 /*offsetCode (-18000/15)*/,
    -
    5338  0 /*offsetRemainder (-18000%15)*/,
    -
    5339  0 /*deltaMinutes*/,
    -
    5340  1936 /*untilYear*/,
    -
    5341  11 /*untilMonth*/,
    -
    5342  15 /*untilDay*/,
    -
    5343  480 /*untilTimeCode (7200/15)*/,
    -
    5344  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5345  },
    -
    5346  // -6:00 Chicago C%sT 1942
    -
    5347  {
    -
    5348  &kZonePolicyChicago /*zonePolicy*/,
    -
    5349  "C%T" /*format*/,
    -
    5350  -1440 /*offsetCode (-21600/15)*/,
    -
    5351  0 /*offsetRemainder (-21600%15)*/,
    -
    5352  0 /*deltaMinutes*/,
    -
    5353  1942 /*untilYear*/,
    -
    5354  1 /*untilMonth*/,
    -
    5355  1 /*untilDay*/,
    -
    5356  0 /*untilTimeCode (0/15)*/,
    -
    5357  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5358  },
    -
    5359  // -6:00 US C%sT 1946
    -
    5360  {
    -
    5361  &kZonePolicyUS /*zonePolicy*/,
    -
    5362  "C%T" /*format*/,
    -
    5363  -1440 /*offsetCode (-21600/15)*/,
    -
    5364  0 /*offsetRemainder (-21600%15)*/,
    -
    5365  0 /*deltaMinutes*/,
    -
    5366  1946 /*untilYear*/,
    -
    5367  1 /*untilMonth*/,
    -
    5368  1 /*untilDay*/,
    -
    5369  0 /*untilTimeCode (0/15)*/,
    -
    5370  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5371  },
    -
    5372  // -6:00 Chicago C%sT 1967
    -
    5373  {
    -
    5374  &kZonePolicyChicago /*zonePolicy*/,
    -
    5375  "C%T" /*format*/,
    -
    5376  -1440 /*offsetCode (-21600/15)*/,
    -
    5377  0 /*offsetRemainder (-21600%15)*/,
    -
    5378  0 /*deltaMinutes*/,
    -
    5379  1967 /*untilYear*/,
    -
    5380  1 /*untilMonth*/,
    -
    5381  1 /*untilDay*/,
    -
    5382  0 /*untilTimeCode (0/15)*/,
    -
    5383  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5384  },
    -
    5385  // -6:00 US C%sT
    -
    5386  {
    -
    5387  &kZonePolicyUS /*zonePolicy*/,
    -
    5388  "C%T" /*format*/,
    -
    5389  -1440 /*offsetCode (-21600/15)*/,
    -
    5390  0 /*offsetRemainder (-21600%15)*/,
    -
    5391  0 /*deltaMinutes*/,
    -
    5392  32767 /*untilYear*/,
    -
    5393  1 /*untilMonth*/,
    -
    5394  1 /*untilDay*/,
    -
    5395  0 /*untilTimeCode (0/15)*/,
    -
    5396  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5397  },
    -
    5398 
    -
    5399 };
    -
    5400 
    -
    5401 static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "\x02" "Chicago";
    -
    5402 
    -
    5403 const complete::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = {
    -
    5404  kZoneNameAmerica_Chicago /*name*/,
    -
    5405  0x4b92b5d4 /*zoneId*/,
    -
    5406  &kZoneContext /*zoneContext*/,
    -
    5407  8 /*numEras*/,
    -
    5408  kZoneEraAmerica_Chicago /*eras*/,
    -
    5409  nullptr /*targetInfo*/,
    -
    5410 };
    -
    5411 
    -
    5412 //---------------------------------------------------------------------------
    -
    5413 // Zone name: America/Chihuahua
    -
    5414 // Eras: 9
    -
    5415 //---------------------------------------------------------------------------
    -
    5416 
    -
    5417 static const complete::Info::ZoneEra kZoneEraAmerica_Chihuahua[] ACE_TIME_PROGMEM = {
    -
    5418  // -7:04:20 - LMT 1922 Jan 1 7:00u
    -
    5419  {
    -
    5420  nullptr /*zonePolicy*/,
    -
    5421  "LMT" /*format*/,
    -
    5422  -1698 /*offsetCode (-25460/15)*/,
    -
    5423  10 /*offsetRemainder (-25460%15)*/,
    -
    5424  0 /*deltaMinutes*/,
    -
    5425  1922 /*untilYear*/,
    -
    5426  1 /*untilMonth*/,
    -
    5427  1 /*untilDay*/,
    -
    5428  1680 /*untilTimeCode (25200/15)*/,
    -
    5429  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5430  },
    -
    5431  // -7:00 - MST 1927 Jun 10
    -
    5432  {
    -
    5433  nullptr /*zonePolicy*/,
    -
    5434  "MST" /*format*/,
    -
    5435  -1680 /*offsetCode (-25200/15)*/,
    -
    5436  0 /*offsetRemainder (-25200%15)*/,
    -
    5437  0 /*deltaMinutes*/,
    -
    5438  1927 /*untilYear*/,
    -
    5439  6 /*untilMonth*/,
    -
    5440  10 /*untilDay*/,
    -
    5441  0 /*untilTimeCode (0/15)*/,
    -
    5442  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5443  },
    -
    5444  // -6:00 - CST 1930 Nov 15
    -
    5445  {
    -
    5446  nullptr /*zonePolicy*/,
    -
    5447  "CST" /*format*/,
    -
    5448  -1440 /*offsetCode (-21600/15)*/,
    -
    5449  0 /*offsetRemainder (-21600%15)*/,
    -
    5450  0 /*deltaMinutes*/,
    -
    5451  1930 /*untilYear*/,
    -
    5452  11 /*untilMonth*/,
    -
    5453  15 /*untilDay*/,
    -
    5454  0 /*untilTimeCode (0/15)*/,
    -
    5455  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5456  },
    -
    5457  // -7:00 Mexico M%sT 1932 Apr 1
    -
    5458  {
    -
    5459  &kZonePolicyMexico /*zonePolicy*/,
    -
    5460  "M%T" /*format*/,
    -
    5461  -1680 /*offsetCode (-25200/15)*/,
    -
    5462  0 /*offsetRemainder (-25200%15)*/,
    -
    5463  0 /*deltaMinutes*/,
    -
    5464  1932 /*untilYear*/,
    -
    5465  4 /*untilMonth*/,
    -
    5466  1 /*untilDay*/,
    -
    5467  0 /*untilTimeCode (0/15)*/,
    -
    5468  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5469  },
    -
    5470  // -6:00 - CST 1996
    -
    5471  {
    -
    5472  nullptr /*zonePolicy*/,
    -
    5473  "CST" /*format*/,
    -
    5474  -1440 /*offsetCode (-21600/15)*/,
    -
    5475  0 /*offsetRemainder (-21600%15)*/,
    -
    5476  0 /*deltaMinutes*/,
    -
    5477  1996 /*untilYear*/,
    -
    5478  1 /*untilMonth*/,
    -
    5479  1 /*untilDay*/,
    -
    5480  0 /*untilTimeCode (0/15)*/,
    -
    5481  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5482  },
    -
    5483  // -6:00 Mexico C%sT 1998
    -
    5484  {
    -
    5485  &kZonePolicyMexico /*zonePolicy*/,
    -
    5486  "C%T" /*format*/,
    -
    5487  -1440 /*offsetCode (-21600/15)*/,
    -
    5488  0 /*offsetRemainder (-21600%15)*/,
    -
    5489  0 /*deltaMinutes*/,
    -
    5490  1998 /*untilYear*/,
    -
    5491  1 /*untilMonth*/,
    -
    5492  1 /*untilDay*/,
    -
    5493  0 /*untilTimeCode (0/15)*/,
    -
    5494  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5495  },
    -
    5496  // -6:00 - CST 1998 Apr Sun>=1 3:00
    -
    5497  {
    -
    5498  nullptr /*zonePolicy*/,
    -
    5499  "CST" /*format*/,
    -
    5500  -1440 /*offsetCode (-21600/15)*/,
    -
    5501  0 /*offsetRemainder (-21600%15)*/,
    -
    5502  0 /*deltaMinutes*/,
    -
    5503  1998 /*untilYear*/,
    -
    5504  4 /*untilMonth*/,
    -
    5505  5 /*untilDay*/,
    -
    5506  720 /*untilTimeCode (10800/15)*/,
    -
    5507  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5508  },
    -
    5509  // -7:00 Mexico M%sT 2022 Oct 30 2:00
    -
    5510  {
    -
    5511  &kZonePolicyMexico /*zonePolicy*/,
    -
    5512  "M%T" /*format*/,
    -
    5513  -1680 /*offsetCode (-25200/15)*/,
    -
    5514  0 /*offsetRemainder (-25200%15)*/,
    -
    5515  0 /*deltaMinutes*/,
    -
    5516  2022 /*untilYear*/,
    -
    5517  10 /*untilMonth*/,
    -
    5518  30 /*untilDay*/,
    -
    5519  480 /*untilTimeCode (7200/15)*/,
    -
    5520  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5521  },
    -
    5522  // -6:00 - CST
    -
    5523  {
    -
    5524  nullptr /*zonePolicy*/,
    -
    5525  "CST" /*format*/,
    -
    5526  -1440 /*offsetCode (-21600/15)*/,
    -
    5527  0 /*offsetRemainder (-21600%15)*/,
    -
    5528  0 /*deltaMinutes*/,
    -
    5529  32767 /*untilYear*/,
    -
    5530  1 /*untilMonth*/,
    -
    5531  1 /*untilDay*/,
    -
    5532  0 /*untilTimeCode (0/15)*/,
    -
    5533  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5534  },
    -
    5535 
    -
    5536 };
    -
    5537 
    -
    5538 static const char kZoneNameAmerica_Chihuahua[] ACE_TIME_PROGMEM = "\x02" "Chihuahua";
    -
    5539 
    -
    5540 const complete::Info::ZoneInfo kZoneAmerica_Chihuahua ACE_TIME_PROGMEM = {
    -
    5541  kZoneNameAmerica_Chihuahua /*name*/,
    -
    5542  0x8827d776 /*zoneId*/,
    -
    5543  &kZoneContext /*zoneContext*/,
    -
    5544  9 /*numEras*/,
    -
    5545  kZoneEraAmerica_Chihuahua /*eras*/,
    -
    5546  nullptr /*targetInfo*/,
    -
    5547 };
    -
    5548 
    -
    5549 //---------------------------------------------------------------------------
    -
    5550 // Zone name: America/Ciudad_Juarez
    -
    5551 // Eras: 11
    -
    5552 //---------------------------------------------------------------------------
    -
    5553 
    -
    5554 static const complete::Info::ZoneEra kZoneEraAmerica_Ciudad_Juarez[] ACE_TIME_PROGMEM = {
    -
    5555  // -7:05:56 - LMT 1922 Jan 1 7:00u
    -
    5556  {
    -
    5557  nullptr /*zonePolicy*/,
    -
    5558  "LMT" /*format*/,
    -
    5559  -1704 /*offsetCode (-25556/15)*/,
    -
    5560  4 /*offsetRemainder (-25556%15)*/,
    -
    5561  0 /*deltaMinutes*/,
    -
    5562  1922 /*untilYear*/,
    -
    5563  1 /*untilMonth*/,
    -
    5564  1 /*untilDay*/,
    -
    5565  1680 /*untilTimeCode (25200/15)*/,
    -
    5566  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5567  },
    -
    5568  // -7:00 - MST 1927 Jun 10
    -
    5569  {
    -
    5570  nullptr /*zonePolicy*/,
    -
    5571  "MST" /*format*/,
    -
    5572  -1680 /*offsetCode (-25200/15)*/,
    -
    5573  0 /*offsetRemainder (-25200%15)*/,
    -
    5574  0 /*deltaMinutes*/,
    -
    5575  1927 /*untilYear*/,
    -
    5576  6 /*untilMonth*/,
    -
    5577  10 /*untilDay*/,
    -
    5578  0 /*untilTimeCode (0/15)*/,
    -
    5579  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5580  },
    -
    5581  // -6:00 - CST 1930 Nov 15
    -
    5582  {
    -
    5583  nullptr /*zonePolicy*/,
    -
    5584  "CST" /*format*/,
    -
    5585  -1440 /*offsetCode (-21600/15)*/,
    -
    5586  0 /*offsetRemainder (-21600%15)*/,
    -
    5587  0 /*deltaMinutes*/,
    -
    5588  1930 /*untilYear*/,
    -
    5589  11 /*untilMonth*/,
    -
    5590  15 /*untilDay*/,
    -
    5591  0 /*untilTimeCode (0/15)*/,
    -
    5592  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5593  },
    -
    5594  // -7:00 Mexico M%sT 1932 Apr 1
    -
    5595  {
    -
    5596  &kZonePolicyMexico /*zonePolicy*/,
    -
    5597  "M%T" /*format*/,
    -
    5598  -1680 /*offsetCode (-25200/15)*/,
    -
    5599  0 /*offsetRemainder (-25200%15)*/,
    -
    5600  0 /*deltaMinutes*/,
    -
    5601  1932 /*untilYear*/,
    -
    5602  4 /*untilMonth*/,
    -
    5603  1 /*untilDay*/,
    -
    5604  0 /*untilTimeCode (0/15)*/,
    -
    5605  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5606  },
    -
    5607  // -6:00 - CST 1996
    -
    5608  {
    -
    5609  nullptr /*zonePolicy*/,
    -
    5610  "CST" /*format*/,
    -
    5611  -1440 /*offsetCode (-21600/15)*/,
    -
    5612  0 /*offsetRemainder (-21600%15)*/,
    -
    5613  0 /*deltaMinutes*/,
    -
    5614  1996 /*untilYear*/,
    -
    5615  1 /*untilMonth*/,
    -
    5616  1 /*untilDay*/,
    -
    5617  0 /*untilTimeCode (0/15)*/,
    -
    5618  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5619  },
    -
    5620  // -6:00 Mexico C%sT 1998
    -
    5621  {
    -
    5622  &kZonePolicyMexico /*zonePolicy*/,
    -
    5623  "C%T" /*format*/,
    -
    5624  -1440 /*offsetCode (-21600/15)*/,
    -
    5625  0 /*offsetRemainder (-21600%15)*/,
    -
    5626  0 /*deltaMinutes*/,
    -
    5627  1998 /*untilYear*/,
    -
    5628  1 /*untilMonth*/,
    -
    5629  1 /*untilDay*/,
    -
    5630  0 /*untilTimeCode (0/15)*/,
    -
    5631  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5632  },
    -
    5633  // -6:00 - CST 1998 Apr Sun>=1 3:00
    -
    5634  {
    -
    5635  nullptr /*zonePolicy*/,
    -
    5636  "CST" /*format*/,
    -
    5637  -1440 /*offsetCode (-21600/15)*/,
    -
    5638  0 /*offsetRemainder (-21600%15)*/,
    -
    5639  0 /*deltaMinutes*/,
    -
    5640  1998 /*untilYear*/,
    -
    5641  4 /*untilMonth*/,
    -
    5642  5 /*untilDay*/,
    -
    5643  720 /*untilTimeCode (10800/15)*/,
    -
    5644  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5645  },
    -
    5646  // -7:00 Mexico M%sT 2010
    -
    5647  {
    -
    5648  &kZonePolicyMexico /*zonePolicy*/,
    -
    5649  "M%T" /*format*/,
    -
    5650  -1680 /*offsetCode (-25200/15)*/,
    -
    5651  0 /*offsetRemainder (-25200%15)*/,
    -
    5652  0 /*deltaMinutes*/,
    -
    5653  2010 /*untilYear*/,
    -
    5654  1 /*untilMonth*/,
    -
    5655  1 /*untilDay*/,
    -
    5656  0 /*untilTimeCode (0/15)*/,
    -
    5657  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5658  },
    -
    5659  // -7:00 US M%sT 2022 Oct 30 2:00
    -
    5660  {
    -
    5661  &kZonePolicyUS /*zonePolicy*/,
    -
    5662  "M%T" /*format*/,
    -
    5663  -1680 /*offsetCode (-25200/15)*/,
    -
    5664  0 /*offsetRemainder (-25200%15)*/,
    -
    5665  0 /*deltaMinutes*/,
    -
    5666  2022 /*untilYear*/,
    -
    5667  10 /*untilMonth*/,
    -
    5668  30 /*untilDay*/,
    -
    5669  480 /*untilTimeCode (7200/15)*/,
    -
    5670  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5671  },
    -
    5672  // -6:00 - CST 2022 Nov 30 0:00
    -
    5673  {
    -
    5674  nullptr /*zonePolicy*/,
    -
    5675  "CST" /*format*/,
    -
    5676  -1440 /*offsetCode (-21600/15)*/,
    -
    5677  0 /*offsetRemainder (-21600%15)*/,
    -
    5678  0 /*deltaMinutes*/,
    -
    5679  2022 /*untilYear*/,
    -
    5680  11 /*untilMonth*/,
    -
    5681  30 /*untilDay*/,
    -
    5682  0 /*untilTimeCode (0/15)*/,
    -
    5683  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5684  },
    -
    5685  // -7:00 US M%sT
    -
    5686  {
    -
    5687  &kZonePolicyUS /*zonePolicy*/,
    -
    5688  "M%T" /*format*/,
    -
    5689  -1680 /*offsetCode (-25200/15)*/,
    -
    5690  0 /*offsetRemainder (-25200%15)*/,
    -
    5691  0 /*deltaMinutes*/,
    -
    5692  32767 /*untilYear*/,
    -
    5693  1 /*untilMonth*/,
    -
    5694  1 /*untilDay*/,
    -
    5695  0 /*untilTimeCode (0/15)*/,
    -
    5696  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5697  },
    -
    5698 
    -
    5699 };
    -
    5700 
    -
    5701 static const char kZoneNameAmerica_Ciudad_Juarez[] ACE_TIME_PROGMEM = "\x02" "Ciudad_Juarez";
    -
    5702 
    -
    5703 const complete::Info::ZoneInfo kZoneAmerica_Ciudad_Juarez ACE_TIME_PROGMEM = {
    -
    5704  kZoneNameAmerica_Ciudad_Juarez /*name*/,
    -
    5705  0x7347fc60 /*zoneId*/,
    -
    5706  &kZoneContext /*zoneContext*/,
    -
    5707  11 /*numEras*/,
    -
    5708  kZoneEraAmerica_Ciudad_Juarez /*eras*/,
    -
    5709  nullptr /*targetInfo*/,
    -
    5710 };
    -
    5711 
    -
    5712 //---------------------------------------------------------------------------
    -
    5713 // Zone name: America/Costa_Rica
    -
    5714 // Eras: 3
    -
    5715 //---------------------------------------------------------------------------
    -
    5716 
    -
    5717 static const complete::Info::ZoneEra kZoneEraAmerica_Costa_Rica[] ACE_TIME_PROGMEM = {
    -
    5718  // -5:36:13 - LMT 1890
    -
    5719  {
    -
    5720  nullptr /*zonePolicy*/,
    -
    5721  "LMT" /*format*/,
    -
    5722  -1345 /*offsetCode (-20173/15)*/,
    -
    5723  2 /*offsetRemainder (-20173%15)*/,
    -
    5724  0 /*deltaMinutes*/,
    -
    5725  1890 /*untilYear*/,
    -
    5726  1 /*untilMonth*/,
    -
    5727  1 /*untilDay*/,
    -
    5728  0 /*untilTimeCode (0/15)*/,
    -
    5729  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5730  },
    -
    5731  // -5:36:13 - SJMT 1921 Jan 15
    -
    5732  {
    -
    5733  nullptr /*zonePolicy*/,
    -
    5734  "SJMT" /*format*/,
    -
    5735  -1345 /*offsetCode (-20173/15)*/,
    -
    5736  2 /*offsetRemainder (-20173%15)*/,
    -
    5737  0 /*deltaMinutes*/,
    -
    5738  1921 /*untilYear*/,
    -
    5739  1 /*untilMonth*/,
    -
    5740  15 /*untilDay*/,
    -
    5741  0 /*untilTimeCode (0/15)*/,
    -
    5742  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5743  },
    -
    5744  // -6:00 CR C%sT
    -
    5745  {
    -
    5746  &kZonePolicyCR /*zonePolicy*/,
    -
    5747  "C%T" /*format*/,
    -
    5748  -1440 /*offsetCode (-21600/15)*/,
    -
    5749  0 /*offsetRemainder (-21600%15)*/,
    -
    5750  0 /*deltaMinutes*/,
    -
    5751  32767 /*untilYear*/,
    -
    5752  1 /*untilMonth*/,
    -
    5753  1 /*untilDay*/,
    -
    5754  0 /*untilTimeCode (0/15)*/,
    -
    5755  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5756  },
    -
    5757 
    -
    5758 };
    -
    5759 
    -
    5760 static const char kZoneNameAmerica_Costa_Rica[] ACE_TIME_PROGMEM = "\x02" "Costa_Rica";
    -
    5761 
    -
    5762 const complete::Info::ZoneInfo kZoneAmerica_Costa_Rica ACE_TIME_PROGMEM = {
    -
    5763  kZoneNameAmerica_Costa_Rica /*name*/,
    -
    5764  0x63ff66be /*zoneId*/,
    -
    5765  &kZoneContext /*zoneContext*/,
    -
    5766  3 /*numEras*/,
    -
    5767  kZoneEraAmerica_Costa_Rica /*eras*/,
    -
    5768  nullptr /*targetInfo*/,
    -
    5769 };
    -
    5770 
    -
    5771 //---------------------------------------------------------------------------
    -
    5772 // Zone name: America/Coyhaique
    -
    5773 // Eras: 14
    -
    5774 //---------------------------------------------------------------------------
    -
    5775 
    -
    5776 static const complete::Info::ZoneEra kZoneEraAmerica_Coyhaique[] ACE_TIME_PROGMEM = {
    -
    5777  // -4:48:16 - LMT 1890
    -
    5778  {
    -
    5779  nullptr /*zonePolicy*/,
    -
    5780  "LMT" /*format*/,
    -
    5781  -1154 /*offsetCode (-17296/15)*/,
    -
    5782  14 /*offsetRemainder (-17296%15)*/,
    -
    5783  0 /*deltaMinutes*/,
    -
    5784  1890 /*untilYear*/,
    -
    5785  1 /*untilMonth*/,
    -
    5786  1 /*untilDay*/,
    -
    5787  0 /*untilTimeCode (0/15)*/,
    -
    5788  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5789  },
    -
    5790  // -4:42:45 - SMT 1910 Jan 10
    -
    5791  {
    -
    5792  nullptr /*zonePolicy*/,
    -
    5793  "SMT" /*format*/,
    -
    5794  -1131 /*offsetCode (-16965/15)*/,
    -
    5795  0 /*offsetRemainder (-16965%15)*/,
    -
    5796  0 /*deltaMinutes*/,
    -
    5797  1910 /*untilYear*/,
    -
    5798  1 /*untilMonth*/,
    -
    5799  10 /*untilDay*/,
    -
    5800  0 /*untilTimeCode (0/15)*/,
    -
    5801  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5802  },
    -
    5803  // -5:00 - %z 1916 Jul 1
    -
    5804  {
    -
    5805  nullptr /*zonePolicy*/,
    -
    5806  "" /*format*/,
    -
    5807  -1200 /*offsetCode (-18000/15)*/,
    -
    5808  0 /*offsetRemainder (-18000%15)*/,
    -
    5809  0 /*deltaMinutes*/,
    -
    5810  1916 /*untilYear*/,
    -
    5811  7 /*untilMonth*/,
    -
    5812  1 /*untilDay*/,
    -
    5813  0 /*untilTimeCode (0/15)*/,
    -
    5814  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5815  },
    -
    5816  // -4:42:45 - SMT 1918 Sep 10
    -
    5817  {
    -
    5818  nullptr /*zonePolicy*/,
    -
    5819  "SMT" /*format*/,
    -
    5820  -1131 /*offsetCode (-16965/15)*/,
    -
    5821  0 /*offsetRemainder (-16965%15)*/,
    -
    5822  0 /*deltaMinutes*/,
    -
    5823  1918 /*untilYear*/,
    -
    5824  9 /*untilMonth*/,
    -
    5825  10 /*untilDay*/,
    -
    5826  0 /*untilTimeCode (0/15)*/,
    -
    5827  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5828  },
    -
    5829  // -4:00 - %z 1919 Jul 1
    -
    5830  {
    -
    5831  nullptr /*zonePolicy*/,
    -
    5832  "" /*format*/,
    -
    5833  -960 /*offsetCode (-14400/15)*/,
    -
    5834  0 /*offsetRemainder (-14400%15)*/,
    -
    5835  0 /*deltaMinutes*/,
    -
    5836  1919 /*untilYear*/,
    -
    5837  7 /*untilMonth*/,
    -
    5838  1 /*untilDay*/,
    -
    5839  0 /*untilTimeCode (0/15)*/,
    -
    5840  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5841  },
    -
    5842  // -4:42:45 - SMT 1927 Sep 1
    -
    5843  {
    -
    5844  nullptr /*zonePolicy*/,
    -
    5845  "SMT" /*format*/,
    -
    5846  -1131 /*offsetCode (-16965/15)*/,
    -
    5847  0 /*offsetRemainder (-16965%15)*/,
    -
    5848  0 /*deltaMinutes*/,
    -
    5849  1927 /*untilYear*/,
    -
    5850  9 /*untilMonth*/,
    -
    5851  1 /*untilDay*/,
    -
    5852  0 /*untilTimeCode (0/15)*/,
    -
    5853  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5854  },
    -
    5855  // -5:00 Chile %z 1932 Sep 1
    -
    5856  {
    -
    5857  &kZonePolicyChile /*zonePolicy*/,
    -
    5858  "" /*format*/,
    -
    5859  -1200 /*offsetCode (-18000/15)*/,
    -
    5860  0 /*offsetRemainder (-18000%15)*/,
    -
    5861  0 /*deltaMinutes*/,
    -
    5862  1932 /*untilYear*/,
    -
    5863  9 /*untilMonth*/,
    -
    5864  1 /*untilDay*/,
    -
    5865  0 /*untilTimeCode (0/15)*/,
    -
    5866  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5867  },
    -
    5868  // -4:00 - %z 1942 Jun 1
    -
    5869  {
    -
    5870  nullptr /*zonePolicy*/,
    -
    5871  "" /*format*/,
    -
    5872  -960 /*offsetCode (-14400/15)*/,
    -
    5873  0 /*offsetRemainder (-14400%15)*/,
    -
    5874  0 /*deltaMinutes*/,
    -
    5875  1942 /*untilYear*/,
    -
    5876  6 /*untilMonth*/,
    -
    5877  1 /*untilDay*/,
    -
    5878  0 /*untilTimeCode (0/15)*/,
    -
    5879  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5880  },
    -
    5881  // -5:00 - %z 1942 Aug 1
    -
    5882  {
    -
    5883  nullptr /*zonePolicy*/,
    -
    5884  "" /*format*/,
    -
    5885  -1200 /*offsetCode (-18000/15)*/,
    -
    5886  0 /*offsetRemainder (-18000%15)*/,
    -
    5887  0 /*deltaMinutes*/,
    -
    5888  1942 /*untilYear*/,
    -
    5889  8 /*untilMonth*/,
    -
    5890  1 /*untilDay*/,
    -
    5891  0 /*untilTimeCode (0/15)*/,
    -
    5892  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5893  },
    -
    5894  // -4:00 - %z 1946 Aug 28 24:00
    -
    5895  {
    -
    5896  nullptr /*zonePolicy*/,
    -
    5897  "" /*format*/,
    -
    5898  -960 /*offsetCode (-14400/15)*/,
    -
    5899  0 /*offsetRemainder (-14400%15)*/,
    -
    5900  0 /*deltaMinutes*/,
    -
    5901  1946 /*untilYear*/,
    -
    5902  8 /*untilMonth*/,
    -
    5903  28 /*untilDay*/,
    -
    5904  5760 /*untilTimeCode (86400/15)*/,
    -
    5905  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5906  },
    -
    5907  // -5:00 1:00 %z 1947 Mar 31 24:00
    -
    5908  {
    -
    5909  nullptr /*zonePolicy*/,
    -
    5910  "" /*format*/,
    -
    5911  -1200 /*offsetCode (-18000/15)*/,
    -
    5912  0 /*offsetRemainder (-18000%15)*/,
    -
    5913  60 /*deltaMinutes*/,
    -
    5914  1947 /*untilYear*/,
    -
    5915  3 /*untilMonth*/,
    -
    5916  31 /*untilDay*/,
    -
    5917  5760 /*untilTimeCode (86400/15)*/,
    -
    5918  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5919  },
    -
    5920  // -5:00 - %z 1947 May 21 23:00
    -
    5921  {
    -
    5922  nullptr /*zonePolicy*/,
    -
    5923  "" /*format*/,
    -
    5924  -1200 /*offsetCode (-18000/15)*/,
    -
    5925  0 /*offsetRemainder (-18000%15)*/,
    -
    5926  0 /*deltaMinutes*/,
    -
    5927  1947 /*untilYear*/,
    -
    5928  5 /*untilMonth*/,
    -
    5929  21 /*untilDay*/,
    -
    5930  5520 /*untilTimeCode (82800/15)*/,
    -
    5931  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5932  },
    -
    5933  // -4:00 Chile %z 2025 Mar 20
    -
    5934  {
    -
    5935  &kZonePolicyChile /*zonePolicy*/,
    -
    5936  "" /*format*/,
    -
    5937  -960 /*offsetCode (-14400/15)*/,
    -
    5938  0 /*offsetRemainder (-14400%15)*/,
    -
    5939  0 /*deltaMinutes*/,
    -
    5940  2025 /*untilYear*/,
    -
    5941  3 /*untilMonth*/,
    -
    5942  20 /*untilDay*/,
    -
    5943  0 /*untilTimeCode (0/15)*/,
    -
    5944  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5945  },
    -
    5946  // -3:00 - %z
    -
    5947  {
    -
    5948  nullptr /*zonePolicy*/,
    -
    5949  "" /*format*/,
    -
    5950  -720 /*offsetCode (-10800/15)*/,
    -
    5951  0 /*offsetRemainder (-10800%15)*/,
    -
    5952  0 /*deltaMinutes*/,
    -
    5953  32767 /*untilYear*/,
    -
    5954  1 /*untilMonth*/,
    -
    5955  1 /*untilDay*/,
    -
    5956  0 /*untilTimeCode (0/15)*/,
    -
    5957  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5958  },
    -
    5959 
    -
    5960 };
    -
    5961 
    -
    5962 static const char kZoneNameAmerica_Coyhaique[] ACE_TIME_PROGMEM = "\x02" "Coyhaique";
    -
    5963 
    -
    5964 const complete::Info::ZoneInfo kZoneAmerica_Coyhaique ACE_TIME_PROGMEM = {
    -
    5965  kZoneNameAmerica_Coyhaique /*name*/,
    -
    5966  0xcc3314ee /*zoneId*/,
    -
    5967  &kZoneContext /*zoneContext*/,
    -
    5968  14 /*numEras*/,
    -
    5969  kZoneEraAmerica_Coyhaique /*eras*/,
    -
    5970  nullptr /*targetInfo*/,
    -
    5971 };
    -
    5972 
    -
    5973 //---------------------------------------------------------------------------
    -
    5974 // Zone name: America/Cuiaba
    -
    5975 // Eras: 4
    -
    5976 //---------------------------------------------------------------------------
    -
    5977 
    -
    5978 static const complete::Info::ZoneEra kZoneEraAmerica_Cuiaba[] ACE_TIME_PROGMEM = {
    -
    5979  // -3:44:20 - LMT 1914
    -
    5980  {
    -
    5981  nullptr /*zonePolicy*/,
    -
    5982  "LMT" /*format*/,
    -
    5983  -898 /*offsetCode (-13460/15)*/,
    -
    5984  10 /*offsetRemainder (-13460%15)*/,
    -
    5985  0 /*deltaMinutes*/,
    -
    5986  1914 /*untilYear*/,
    -
    5987  1 /*untilMonth*/,
    -
    5988  1 /*untilDay*/,
    -
    5989  0 /*untilTimeCode (0/15)*/,
    -
    5990  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5991  },
    -
    5992  // -4:00 Brazil %z 2003 Sep 24
    -
    5993  {
    -
    5994  &kZonePolicyBrazil /*zonePolicy*/,
    -
    5995  "" /*format*/,
    -
    5996  -960 /*offsetCode (-14400/15)*/,
    -
    5997  0 /*offsetRemainder (-14400%15)*/,
    -
    5998  0 /*deltaMinutes*/,
    -
    5999  2003 /*untilYear*/,
    -
    6000  9 /*untilMonth*/,
    -
    6001  24 /*untilDay*/,
    -
    6002  0 /*untilTimeCode (0/15)*/,
    -
    6003  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6004  },
    -
    6005  // -4:00 - %z 2004 Oct 1
    -
    6006  {
    -
    6007  nullptr /*zonePolicy*/,
    -
    6008  "" /*format*/,
    -
    6009  -960 /*offsetCode (-14400/15)*/,
    -
    6010  0 /*offsetRemainder (-14400%15)*/,
    -
    6011  0 /*deltaMinutes*/,
    -
    6012  2004 /*untilYear*/,
    -
    6013  10 /*untilMonth*/,
    -
    6014  1 /*untilDay*/,
    -
    6015  0 /*untilTimeCode (0/15)*/,
    -
    6016  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6017  },
    -
    6018  // -4:00 Brazil %z
    -
    6019  {
    -
    6020  &kZonePolicyBrazil /*zonePolicy*/,
    -
    6021  "" /*format*/,
    -
    6022  -960 /*offsetCode (-14400/15)*/,
    -
    6023  0 /*offsetRemainder (-14400%15)*/,
    -
    6024  0 /*deltaMinutes*/,
    -
    6025  32767 /*untilYear*/,
    -
    6026  1 /*untilMonth*/,
    -
    6027  1 /*untilDay*/,
    -
    6028  0 /*untilTimeCode (0/15)*/,
    -
    6029  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6030  },
    -
    6031 
    -
    6032 };
    -
    6033 
    -
    6034 static const char kZoneNameAmerica_Cuiaba[] ACE_TIME_PROGMEM = "\x02" "Cuiaba";
    -
    6035 
    -
    6036 const complete::Info::ZoneInfo kZoneAmerica_Cuiaba ACE_TIME_PROGMEM = {
    -
    6037  kZoneNameAmerica_Cuiaba /*name*/,
    -
    6038  0x969a52eb /*zoneId*/,
    -
    6039  &kZoneContext /*zoneContext*/,
    -
    6040  4 /*numEras*/,
    -
    6041  kZoneEraAmerica_Cuiaba /*eras*/,
    -
    6042  nullptr /*targetInfo*/,
    -
    6043 };
    -
    6044 
    -
    6045 //---------------------------------------------------------------------------
    -
    6046 // Zone name: America/Danmarkshavn
    -
    6047 // Eras: 4
    -
    6048 //---------------------------------------------------------------------------
    -
    6049 
    -
    6050 static const complete::Info::ZoneEra kZoneEraAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = {
    -
    6051  // -1:14:40 - LMT 1916 Jul 28
    -
    6052  {
    -
    6053  nullptr /*zonePolicy*/,
    -
    6054  "LMT" /*format*/,
    -
    6055  -299 /*offsetCode (-4480/15)*/,
    -
    6056  5 /*offsetRemainder (-4480%15)*/,
    -
    6057  0 /*deltaMinutes*/,
    -
    6058  1916 /*untilYear*/,
    -
    6059  7 /*untilMonth*/,
    -
    6060  28 /*untilDay*/,
    -
    6061  0 /*untilTimeCode (0/15)*/,
    -
    6062  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6063  },
    -
    6064  // -3:00 - %z 1980 Apr 6 2:00
    -
    6065  {
    -
    6066  nullptr /*zonePolicy*/,
    -
    6067  "" /*format*/,
    -
    6068  -720 /*offsetCode (-10800/15)*/,
    -
    6069  0 /*offsetRemainder (-10800%15)*/,
    -
    6070  0 /*deltaMinutes*/,
    -
    6071  1980 /*untilYear*/,
    -
    6072  4 /*untilMonth*/,
    -
    6073  6 /*untilDay*/,
    -
    6074  480 /*untilTimeCode (7200/15)*/,
    -
    6075  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6076  },
    -
    6077  // -3:00 EU %z 1996
    -
    6078  {
    -
    6079  &kZonePolicyEU /*zonePolicy*/,
    -
    6080  "" /*format*/,
    -
    6081  -720 /*offsetCode (-10800/15)*/,
    -
    6082  0 /*offsetRemainder (-10800%15)*/,
    -
    6083  0 /*deltaMinutes*/,
    -
    6084  1996 /*untilYear*/,
    -
    6085  1 /*untilMonth*/,
    -
    6086  1 /*untilDay*/,
    -
    6087  0 /*untilTimeCode (0/15)*/,
    -
    6088  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6089  },
    -
    6090  // 0:00 - GMT
    -
    6091  {
    -
    6092  nullptr /*zonePolicy*/,
    -
    6093  "GMT" /*format*/,
    -
    6094  0 /*offsetCode (0/15)*/,
    -
    6095  0 /*offsetRemainder (0%15)*/,
    -
    6096  0 /*deltaMinutes*/,
    -
    6097  32767 /*untilYear*/,
    -
    6098  1 /*untilMonth*/,
    -
    6099  1 /*untilDay*/,
    -
    6100  0 /*untilTimeCode (0/15)*/,
    -
    6101  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6102  },
    -
    6103 
    -
    6104 };
    -
    6105 
    -
    6106 static const char kZoneNameAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = "\x02" "Danmarkshavn";
    -
    6107 
    -
    6108 const complete::Info::ZoneInfo kZoneAmerica_Danmarkshavn ACE_TIME_PROGMEM = {
    -
    6109  kZoneNameAmerica_Danmarkshavn /*name*/,
    -
    6110  0xf554d204 /*zoneId*/,
    -
    6111  &kZoneContext /*zoneContext*/,
    -
    6112  4 /*numEras*/,
    -
    6113  kZoneEraAmerica_Danmarkshavn /*eras*/,
    -
    6114  nullptr /*targetInfo*/,
    -
    6115 };
    -
    6116 
    -
    6117 //---------------------------------------------------------------------------
    -
    6118 // Zone name: America/Dawson
    -
    6119 // Eras: 6
    -
    6120 //---------------------------------------------------------------------------
    -
    6121 
    -
    6122 static const complete::Info::ZoneEra kZoneEraAmerica_Dawson[] ACE_TIME_PROGMEM = {
    -
    6123  // -9:17:40 - LMT 1900 Aug 20
    -
    6124  {
    -
    6125  nullptr /*zonePolicy*/,
    -
    6126  "LMT" /*format*/,
    -
    6127  -2231 /*offsetCode (-33460/15)*/,
    -
    6128  5 /*offsetRemainder (-33460%15)*/,
    -
    6129  0 /*deltaMinutes*/,
    -
    6130  1900 /*untilYear*/,
    -
    6131  8 /*untilMonth*/,
    -
    6132  20 /*untilDay*/,
    -
    6133  0 /*untilTimeCode (0/15)*/,
    -
    6134  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6135  },
    -
    6136  // -9:00 NT_YK Y%sT 1965
    -
    6137  {
    -
    6138  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    6139  "Y%T" /*format*/,
    -
    6140  -2160 /*offsetCode (-32400/15)*/,
    -
    6141  0 /*offsetRemainder (-32400%15)*/,
    -
    6142  0 /*deltaMinutes*/,
    -
    6143  1965 /*untilYear*/,
    -
    6144  1 /*untilMonth*/,
    -
    6145  1 /*untilDay*/,
    -
    6146  0 /*untilTimeCode (0/15)*/,
    -
    6147  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6148  },
    -
    6149  // -9:00 Yukon Y%sT 1973 Oct 28 0:00
    -
    6150  {
    -
    6151  &kZonePolicyYukon /*zonePolicy*/,
    -
    6152  "Y%T" /*format*/,
    -
    6153  -2160 /*offsetCode (-32400/15)*/,
    -
    6154  0 /*offsetRemainder (-32400%15)*/,
    -
    6155  0 /*deltaMinutes*/,
    -
    6156  1973 /*untilYear*/,
    -
    6157  10 /*untilMonth*/,
    -
    6158  28 /*untilDay*/,
    -
    6159  0 /*untilTimeCode (0/15)*/,
    -
    6160  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6161  },
    -
    6162  // -8:00 - PST 1980
    -
    6163  {
    -
    6164  nullptr /*zonePolicy*/,
    -
    6165  "PST" /*format*/,
    -
    6166  -1920 /*offsetCode (-28800/15)*/,
    -
    6167  0 /*offsetRemainder (-28800%15)*/,
    -
    6168  0 /*deltaMinutes*/,
    -
    6169  1980 /*untilYear*/,
    -
    6170  1 /*untilMonth*/,
    -
    6171  1 /*untilDay*/,
    -
    6172  0 /*untilTimeCode (0/15)*/,
    -
    6173  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6174  },
    -
    6175  // -8:00 Canada P%sT 2020 Nov 1
    -
    6176  {
    -
    6177  &kZonePolicyCanada /*zonePolicy*/,
    -
    6178  "P%T" /*format*/,
    -
    6179  -1920 /*offsetCode (-28800/15)*/,
    -
    6180  0 /*offsetRemainder (-28800%15)*/,
    -
    6181  0 /*deltaMinutes*/,
    -
    6182  2020 /*untilYear*/,
    -
    6183  11 /*untilMonth*/,
    -
    6184  1 /*untilDay*/,
    -
    6185  0 /*untilTimeCode (0/15)*/,
    -
    6186  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6187  },
    -
    6188  // -7:00 - MST
    -
    6189  {
    -
    6190  nullptr /*zonePolicy*/,
    -
    6191  "MST" /*format*/,
    -
    6192  -1680 /*offsetCode (-25200/15)*/,
    -
    6193  0 /*offsetRemainder (-25200%15)*/,
    -
    6194  0 /*deltaMinutes*/,
    -
    6195  32767 /*untilYear*/,
    -
    6196  1 /*untilMonth*/,
    -
    6197  1 /*untilDay*/,
    -
    6198  0 /*untilTimeCode (0/15)*/,
    -
    6199  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6200  },
    -
    6201 
    -
    6202 };
    -
    6203 
    -
    6204 static const char kZoneNameAmerica_Dawson[] ACE_TIME_PROGMEM = "\x02" "Dawson";
    -
    6205 
    -
    6206 const complete::Info::ZoneInfo kZoneAmerica_Dawson ACE_TIME_PROGMEM = {
    -
    6207  kZoneNameAmerica_Dawson /*name*/,
    -
    6208  0x978d8d12 /*zoneId*/,
    -
    6209  &kZoneContext /*zoneContext*/,
    -
    6210  6 /*numEras*/,
    -
    6211  kZoneEraAmerica_Dawson /*eras*/,
    -
    6212  nullptr /*targetInfo*/,
    -
    6213 };
    -
    6214 
    -
    6215 //---------------------------------------------------------------------------
    -
    6216 // Zone name: America/Dawson_Creek
    -
    6217 // Eras: 4
    -
    6218 //---------------------------------------------------------------------------
    -
    6219 
    -
    6220 static const complete::Info::ZoneEra kZoneEraAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = {
    -
    6221  // -8:00:56 - LMT 1884
    -
    6222  {
    -
    6223  nullptr /*zonePolicy*/,
    -
    6224  "LMT" /*format*/,
    -
    6225  -1924 /*offsetCode (-28856/15)*/,
    -
    6226  4 /*offsetRemainder (-28856%15)*/,
    -
    6227  0 /*deltaMinutes*/,
    -
    6228  1884 /*untilYear*/,
    -
    6229  1 /*untilMonth*/,
    -
    6230  1 /*untilDay*/,
    -
    6231  0 /*untilTimeCode (0/15)*/,
    -
    6232  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6233  },
    -
    6234  // -8:00 Canada P%sT 1947
    -
    6235  {
    -
    6236  &kZonePolicyCanada /*zonePolicy*/,
    -
    6237  "P%T" /*format*/,
    -
    6238  -1920 /*offsetCode (-28800/15)*/,
    -
    6239  0 /*offsetRemainder (-28800%15)*/,
    -
    6240  0 /*deltaMinutes*/,
    -
    6241  1947 /*untilYear*/,
    -
    6242  1 /*untilMonth*/,
    -
    6243  1 /*untilDay*/,
    -
    6244  0 /*untilTimeCode (0/15)*/,
    -
    6245  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6246  },
    -
    6247  // -8:00 Vanc P%sT 1972 Aug 30 2:00
    -
    6248  {
    -
    6249  &kZonePolicyVanc /*zonePolicy*/,
    -
    6250  "P%T" /*format*/,
    -
    6251  -1920 /*offsetCode (-28800/15)*/,
    -
    6252  0 /*offsetRemainder (-28800%15)*/,
    -
    6253  0 /*deltaMinutes*/,
    -
    6254  1972 /*untilYear*/,
    -
    6255  8 /*untilMonth*/,
    -
    6256  30 /*untilDay*/,
    -
    6257  480 /*untilTimeCode (7200/15)*/,
    -
    6258  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6259  },
    -
    6260  // -7:00 - MST
    -
    6261  {
    -
    6262  nullptr /*zonePolicy*/,
    -
    6263  "MST" /*format*/,
    -
    6264  -1680 /*offsetCode (-25200/15)*/,
    -
    6265  0 /*offsetRemainder (-25200%15)*/,
    -
    6266  0 /*deltaMinutes*/,
    -
    6267  32767 /*untilYear*/,
    -
    6268  1 /*untilMonth*/,
    -
    6269  1 /*untilDay*/,
    -
    6270  0 /*untilTimeCode (0/15)*/,
    -
    6271  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6272  },
    -
    6273 
    -
    6274 };
    -
    6275 
    -
    6276 static const char kZoneNameAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = "\x02" "Dawson_Creek";
    -
    6277 
    -
    6278 const complete::Info::ZoneInfo kZoneAmerica_Dawson_Creek ACE_TIME_PROGMEM = {
    -
    6279  kZoneNameAmerica_Dawson_Creek /*name*/,
    -
    6280  0x6cf24e5b /*zoneId*/,
    -
    6281  &kZoneContext /*zoneContext*/,
    -
    6282  4 /*numEras*/,
    -
    6283  kZoneEraAmerica_Dawson_Creek /*eras*/,
    -
    6284  nullptr /*targetInfo*/,
    -
    6285 };
    -
    6286 
    -
    6287 //---------------------------------------------------------------------------
    -
    6288 // Zone name: America/Denver
    -
    6289 // Eras: 6
    -
    6290 //---------------------------------------------------------------------------
    -
    6291 
    -
    6292 static const complete::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = {
    -
    6293  // -6:59:56 - LMT 1883 Nov 18 19:00u
    -
    6294  {
    -
    6295  nullptr /*zonePolicy*/,
    -
    6296  "LMT" /*format*/,
    -
    6297  -1680 /*offsetCode (-25196/15)*/,
    -
    6298  4 /*offsetRemainder (-25196%15)*/,
    -
    6299  0 /*deltaMinutes*/,
    -
    6300  1883 /*untilYear*/,
    -
    6301  11 /*untilMonth*/,
    -
    6302  18 /*untilDay*/,
    -
    6303  4560 /*untilTimeCode (68400/15)*/,
    -
    6304  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    6305  },
    -
    6306  // -7:00 US M%sT 1920
    -
    6307  {
    -
    6308  &kZonePolicyUS /*zonePolicy*/,
    -
    6309  "M%T" /*format*/,
    -
    6310  -1680 /*offsetCode (-25200/15)*/,
    -
    6311  0 /*offsetRemainder (-25200%15)*/,
    -
    6312  0 /*deltaMinutes*/,
    -
    6313  1920 /*untilYear*/,
    -
    6314  1 /*untilMonth*/,
    -
    6315  1 /*untilDay*/,
    -
    6316  0 /*untilTimeCode (0/15)*/,
    -
    6317  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6318  },
    -
    6319  // -7:00 Denver M%sT 1942
    -
    6320  {
    -
    6321  &kZonePolicyDenver /*zonePolicy*/,
    -
    6322  "M%T" /*format*/,
    -
    6323  -1680 /*offsetCode (-25200/15)*/,
    -
    6324  0 /*offsetRemainder (-25200%15)*/,
    -
    6325  0 /*deltaMinutes*/,
    -
    6326  1942 /*untilYear*/,
    -
    6327  1 /*untilMonth*/,
    -
    6328  1 /*untilDay*/,
    -
    6329  0 /*untilTimeCode (0/15)*/,
    -
    6330  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6331  },
    -
    6332  // -7:00 US M%sT 1946
    -
    6333  {
    -
    6334  &kZonePolicyUS /*zonePolicy*/,
    -
    6335  "M%T" /*format*/,
    -
    6336  -1680 /*offsetCode (-25200/15)*/,
    -
    6337  0 /*offsetRemainder (-25200%15)*/,
    -
    6338  0 /*deltaMinutes*/,
    -
    6339  1946 /*untilYear*/,
    -
    6340  1 /*untilMonth*/,
    -
    6341  1 /*untilDay*/,
    -
    6342  0 /*untilTimeCode (0/15)*/,
    -
    6343  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6344  },
    -
    6345  // -7:00 Denver M%sT 1967
    -
    6346  {
    -
    6347  &kZonePolicyDenver /*zonePolicy*/,
    -
    6348  "M%T" /*format*/,
    -
    6349  -1680 /*offsetCode (-25200/15)*/,
    -
    6350  0 /*offsetRemainder (-25200%15)*/,
    -
    6351  0 /*deltaMinutes*/,
    -
    6352  1967 /*untilYear*/,
    -
    6353  1 /*untilMonth*/,
    -
    6354  1 /*untilDay*/,
    -
    6355  0 /*untilTimeCode (0/15)*/,
    -
    6356  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6357  },
    -
    6358  // -7:00 US M%sT
    -
    6359  {
    -
    6360  &kZonePolicyUS /*zonePolicy*/,
    -
    6361  "M%T" /*format*/,
    -
    6362  -1680 /*offsetCode (-25200/15)*/,
    -
    6363  0 /*offsetRemainder (-25200%15)*/,
    -
    6364  0 /*deltaMinutes*/,
    -
    6365  32767 /*untilYear*/,
    -
    6366  1 /*untilMonth*/,
    -
    6367  1 /*untilDay*/,
    -
    6368  0 /*untilTimeCode (0/15)*/,
    -
    6369  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6370  },
    -
    6371 
    -
    6372 };
    -
    6373 
    -
    6374 static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "\x02" "Denver";
    -
    6375 
    -
    6376 const complete::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = {
    -
    6377  kZoneNameAmerica_Denver /*name*/,
    -
    6378  0x97d10b2a /*zoneId*/,
    -
    6379  &kZoneContext /*zoneContext*/,
    -
    6380  6 /*numEras*/,
    -
    6381  kZoneEraAmerica_Denver /*eras*/,
    -
    6382  nullptr /*targetInfo*/,
    -
    6383 };
    -
    6384 
    -
    6385 //---------------------------------------------------------------------------
    -
    6386 // Zone name: America/Detroit
    -
    6387 // Eras: 10
    -
    6388 //---------------------------------------------------------------------------
    -
    6389 
    -
    6390 static const complete::Info::ZoneEra kZoneEraAmerica_Detroit[] ACE_TIME_PROGMEM = {
    -
    6391  // -5:32:11 - LMT 1905
    -
    6392  {
    -
    6393  nullptr /*zonePolicy*/,
    -
    6394  "LMT" /*format*/,
    -
    6395  -1329 /*offsetCode (-19931/15)*/,
    -
    6396  4 /*offsetRemainder (-19931%15)*/,
    -
    6397  0 /*deltaMinutes*/,
    -
    6398  1905 /*untilYear*/,
    -
    6399  1 /*untilMonth*/,
    -
    6400  1 /*untilDay*/,
    -
    6401  0 /*untilTimeCode (0/15)*/,
    -
    6402  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6403  },
    -
    6404  // -6:00 - CST 1915 May 15 2:00
    -
    6405  {
    -
    6406  nullptr /*zonePolicy*/,
    -
    6407  "CST" /*format*/,
    -
    6408  -1440 /*offsetCode (-21600/15)*/,
    -
    6409  0 /*offsetRemainder (-21600%15)*/,
    -
    6410  0 /*deltaMinutes*/,
    -
    6411  1915 /*untilYear*/,
    -
    6412  5 /*untilMonth*/,
    -
    6413  15 /*untilDay*/,
    -
    6414  480 /*untilTimeCode (7200/15)*/,
    -
    6415  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6416  },
    -
    6417  // -5:00 - EST 1942
    -
    6418  {
    -
    6419  nullptr /*zonePolicy*/,
    -
    6420  "EST" /*format*/,
    -
    6421  -1200 /*offsetCode (-18000/15)*/,
    -
    6422  0 /*offsetRemainder (-18000%15)*/,
    -
    6423  0 /*deltaMinutes*/,
    -
    6424  1942 /*untilYear*/,
    -
    6425  1 /*untilMonth*/,
    -
    6426  1 /*untilDay*/,
    -
    6427  0 /*untilTimeCode (0/15)*/,
    -
    6428  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6429  },
    -
    6430  // -5:00 US E%sT 1946
    -
    6431  {
    -
    6432  &kZonePolicyUS /*zonePolicy*/,
    -
    6433  "E%T" /*format*/,
    -
    6434  -1200 /*offsetCode (-18000/15)*/,
    -
    6435  0 /*offsetRemainder (-18000%15)*/,
    -
    6436  0 /*deltaMinutes*/,
    -
    6437  1946 /*untilYear*/,
    -
    6438  1 /*untilMonth*/,
    -
    6439  1 /*untilDay*/,
    -
    6440  0 /*untilTimeCode (0/15)*/,
    -
    6441  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6442  },
    -
    6443  // -5:00 Detroit E%sT 1967 Jun 14 0:01
    -
    6444  {
    -
    6445  &kZonePolicyDetroit /*zonePolicy*/,
    -
    6446  "E%T" /*format*/,
    -
    6447  -1200 /*offsetCode (-18000/15)*/,
    -
    6448  0 /*offsetRemainder (-18000%15)*/,
    -
    6449  0 /*deltaMinutes*/,
    -
    6450  1967 /*untilYear*/,
    -
    6451  6 /*untilMonth*/,
    -
    6452  14 /*untilDay*/,
    -
    6453  4 /*untilTimeCode (60/15)*/,
    -
    6454  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6455  },
    -
    6456  // -5:00 US E%sT 1969
    -
    6457  {
    -
    6458  &kZonePolicyUS /*zonePolicy*/,
    -
    6459  "E%T" /*format*/,
    -
    6460  -1200 /*offsetCode (-18000/15)*/,
    -
    6461  0 /*offsetRemainder (-18000%15)*/,
    -
    6462  0 /*deltaMinutes*/,
    -
    6463  1969 /*untilYear*/,
    -
    6464  1 /*untilMonth*/,
    -
    6465  1 /*untilDay*/,
    -
    6466  0 /*untilTimeCode (0/15)*/,
    -
    6467  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6468  },
    -
    6469  // -5:00 - EST 1973
    -
    6470  {
    -
    6471  nullptr /*zonePolicy*/,
    -
    6472  "EST" /*format*/,
    -
    6473  -1200 /*offsetCode (-18000/15)*/,
    -
    6474  0 /*offsetRemainder (-18000%15)*/,
    -
    6475  0 /*deltaMinutes*/,
    -
    6476  1973 /*untilYear*/,
    -
    6477  1 /*untilMonth*/,
    -
    6478  1 /*untilDay*/,
    -
    6479  0 /*untilTimeCode (0/15)*/,
    -
    6480  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6481  },
    -
    6482  // -5:00 US E%sT 1975
    -
    6483  {
    -
    6484  &kZonePolicyUS /*zonePolicy*/,
    -
    6485  "E%T" /*format*/,
    -
    6486  -1200 /*offsetCode (-18000/15)*/,
    -
    6487  0 /*offsetRemainder (-18000%15)*/,
    -
    6488  0 /*deltaMinutes*/,
    -
    6489  1975 /*untilYear*/,
    -
    6490  1 /*untilMonth*/,
    -
    6491  1 /*untilDay*/,
    -
    6492  0 /*untilTimeCode (0/15)*/,
    -
    6493  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6494  },
    -
    6495  // -5:00 - EST 1975 Apr 27 2:00
    -
    6496  {
    -
    6497  nullptr /*zonePolicy*/,
    -
    6498  "EST" /*format*/,
    -
    6499  -1200 /*offsetCode (-18000/15)*/,
    -
    6500  0 /*offsetRemainder (-18000%15)*/,
    -
    6501  0 /*deltaMinutes*/,
    -
    6502  1975 /*untilYear*/,
    -
    6503  4 /*untilMonth*/,
    -
    6504  27 /*untilDay*/,
    -
    6505  480 /*untilTimeCode (7200/15)*/,
    -
    6506  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6507  },
    -
    6508  // -5:00 US E%sT
    -
    6509  {
    -
    6510  &kZonePolicyUS /*zonePolicy*/,
    -
    6511  "E%T" /*format*/,
    -
    6512  -1200 /*offsetCode (-18000/15)*/,
    -
    6513  0 /*offsetRemainder (-18000%15)*/,
    -
    6514  0 /*deltaMinutes*/,
    -
    6515  32767 /*untilYear*/,
    -
    6516  1 /*untilMonth*/,
    -
    6517  1 /*untilDay*/,
    -
    6518  0 /*untilTimeCode (0/15)*/,
    -
    6519  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6520  },
    -
    6521 
    -
    6522 };
    -
    6523 
    -
    6524 static const char kZoneNameAmerica_Detroit[] ACE_TIME_PROGMEM = "\x02" "Detroit";
    -
    6525 
    -
    6526 const complete::Info::ZoneInfo kZoneAmerica_Detroit ACE_TIME_PROGMEM = {
    -
    6527  kZoneNameAmerica_Detroit /*name*/,
    -
    6528  0x925cfbc1 /*zoneId*/,
    -
    6529  &kZoneContext /*zoneContext*/,
    -
    6530  10 /*numEras*/,
    -
    6531  kZoneEraAmerica_Detroit /*eras*/,
    -
    6532  nullptr /*targetInfo*/,
    -
    6533 };
    -
    6534 
    -
    6535 //---------------------------------------------------------------------------
    -
    6536 // Zone name: America/Edmonton
    -
    6537 // Eras: 3
    -
    6538 //---------------------------------------------------------------------------
    -
    6539 
    -
    6540 static const complete::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = {
    -
    6541  // -7:33:52 - LMT 1906 Sep
    -
    6542  {
    -
    6543  nullptr /*zonePolicy*/,
    -
    6544  "LMT" /*format*/,
    -
    6545  -1816 /*offsetCode (-27232/15)*/,
    -
    6546  8 /*offsetRemainder (-27232%15)*/,
    -
    6547  0 /*deltaMinutes*/,
    -
    6548  1906 /*untilYear*/,
    -
    6549  9 /*untilMonth*/,
    -
    6550  1 /*untilDay*/,
    -
    6551  0 /*untilTimeCode (0/15)*/,
    -
    6552  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6553  },
    -
    6554  // -7:00 Edm M%sT 1987
    -
    6555  {
    -
    6556  &kZonePolicyEdm /*zonePolicy*/,
    -
    6557  "M%T" /*format*/,
    -
    6558  -1680 /*offsetCode (-25200/15)*/,
    -
    6559  0 /*offsetRemainder (-25200%15)*/,
    -
    6560  0 /*deltaMinutes*/,
    -
    6561  1987 /*untilYear*/,
    -
    6562  1 /*untilMonth*/,
    -
    6563  1 /*untilDay*/,
    -
    6564  0 /*untilTimeCode (0/15)*/,
    -
    6565  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6566  },
    -
    6567  // -7:00 Canada M%sT
    -
    6568  {
    -
    6569  &kZonePolicyCanada /*zonePolicy*/,
    -
    6570  "M%T" /*format*/,
    -
    6571  -1680 /*offsetCode (-25200/15)*/,
    -
    6572  0 /*offsetRemainder (-25200%15)*/,
    -
    6573  0 /*deltaMinutes*/,
    -
    6574  32767 /*untilYear*/,
    -
    6575  1 /*untilMonth*/,
    -
    6576  1 /*untilDay*/,
    -
    6577  0 /*untilTimeCode (0/15)*/,
    -
    6578  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6579  },
    -
    6580 
    -
    6581 };
    -
    6582 
    -
    6583 static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "\x02" "Edmonton";
    -
    6584 
    -
    6585 const complete::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = {
    -
    6586  kZoneNameAmerica_Edmonton /*name*/,
    -
    6587  0x6cb9484a /*zoneId*/,
    -
    6588  &kZoneContext /*zoneContext*/,
    -
    6589  3 /*numEras*/,
    -
    6590  kZoneEraAmerica_Edmonton /*eras*/,
    -
    6591  nullptr /*targetInfo*/,
    -
    6592 };
    -
    6593 
    -
    6594 //---------------------------------------------------------------------------
    -
    6595 // Zone name: America/Eirunepe
    -
    6596 // Eras: 7
    -
    6597 //---------------------------------------------------------------------------
    -
    6598 
    -
    6599 static const complete::Info::ZoneEra kZoneEraAmerica_Eirunepe[] ACE_TIME_PROGMEM = {
    -
    6600  // -4:39:28 - LMT 1914
    -
    6601  {
    -
    6602  nullptr /*zonePolicy*/,
    -
    6603  "LMT" /*format*/,
    -
    6604  -1118 /*offsetCode (-16768/15)*/,
    -
    6605  2 /*offsetRemainder (-16768%15)*/,
    -
    6606  0 /*deltaMinutes*/,
    -
    6607  1914 /*untilYear*/,
    -
    6608  1 /*untilMonth*/,
    -
    6609  1 /*untilDay*/,
    -
    6610  0 /*untilTimeCode (0/15)*/,
    -
    6611  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6612  },
    -
    6613  // -5:00 Brazil %z 1988 Sep 12
    -
    6614  {
    -
    6615  &kZonePolicyBrazil /*zonePolicy*/,
    -
    6616  "" /*format*/,
    -
    6617  -1200 /*offsetCode (-18000/15)*/,
    -
    6618  0 /*offsetRemainder (-18000%15)*/,
    -
    6619  0 /*deltaMinutes*/,
    -
    6620  1988 /*untilYear*/,
    -
    6621  9 /*untilMonth*/,
    -
    6622  12 /*untilDay*/,
    -
    6623  0 /*untilTimeCode (0/15)*/,
    -
    6624  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6625  },
    -
    6626  // -5:00 - %z 1993 Sep 28
    -
    6627  {
    -
    6628  nullptr /*zonePolicy*/,
    -
    6629  "" /*format*/,
    -
    6630  -1200 /*offsetCode (-18000/15)*/,
    -
    6631  0 /*offsetRemainder (-18000%15)*/,
    -
    6632  0 /*deltaMinutes*/,
    -
    6633  1993 /*untilYear*/,
    -
    6634  9 /*untilMonth*/,
    -
    6635  28 /*untilDay*/,
    -
    6636  0 /*untilTimeCode (0/15)*/,
    -
    6637  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6638  },
    -
    6639  // -5:00 Brazil %z 1994 Sep 22
    -
    6640  {
    -
    6641  &kZonePolicyBrazil /*zonePolicy*/,
    -
    6642  "" /*format*/,
    -
    6643  -1200 /*offsetCode (-18000/15)*/,
    -
    6644  0 /*offsetRemainder (-18000%15)*/,
    -
    6645  0 /*deltaMinutes*/,
    -
    6646  1994 /*untilYear*/,
    -
    6647  9 /*untilMonth*/,
    -
    6648  22 /*untilDay*/,
    -
    6649  0 /*untilTimeCode (0/15)*/,
    -
    6650  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6651  },
    -
    6652  // -5:00 - %z 2008 Jun 24 0:00
    -
    6653  {
    -
    6654  nullptr /*zonePolicy*/,
    -
    6655  "" /*format*/,
    -
    6656  -1200 /*offsetCode (-18000/15)*/,
    -
    6657  0 /*offsetRemainder (-18000%15)*/,
    -
    6658  0 /*deltaMinutes*/,
    -
    6659  2008 /*untilYear*/,
    -
    6660  6 /*untilMonth*/,
    -
    6661  24 /*untilDay*/,
    -
    6662  0 /*untilTimeCode (0/15)*/,
    -
    6663  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6664  },
    -
    6665  // -4:00 - %z 2013 Nov 10
    -
    6666  {
    -
    6667  nullptr /*zonePolicy*/,
    -
    6668  "" /*format*/,
    -
    6669  -960 /*offsetCode (-14400/15)*/,
    -
    6670  0 /*offsetRemainder (-14400%15)*/,
    -
    6671  0 /*deltaMinutes*/,
    -
    6672  2013 /*untilYear*/,
    -
    6673  11 /*untilMonth*/,
    -
    6674  10 /*untilDay*/,
    -
    6675  0 /*untilTimeCode (0/15)*/,
    -
    6676  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6677  },
    -
    6678  // -5:00 - %z
    -
    6679  {
    -
    6680  nullptr /*zonePolicy*/,
    -
    6681  "" /*format*/,
    -
    6682  -1200 /*offsetCode (-18000/15)*/,
    -
    6683  0 /*offsetRemainder (-18000%15)*/,
    -
    6684  0 /*deltaMinutes*/,
    -
    6685  32767 /*untilYear*/,
    -
    6686  1 /*untilMonth*/,
    -
    6687  1 /*untilDay*/,
    -
    6688  0 /*untilTimeCode (0/15)*/,
    -
    6689  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6690  },
    -
    6691 
    -
    6692 };
    -
    6693 
    -
    6694 static const char kZoneNameAmerica_Eirunepe[] ACE_TIME_PROGMEM = "\x02" "Eirunepe";
    -
    6695 
    -
    6696 const complete::Info::ZoneInfo kZoneAmerica_Eirunepe ACE_TIME_PROGMEM = {
    -
    6697  kZoneNameAmerica_Eirunepe /*name*/,
    -
    6698  0xf9b29683 /*zoneId*/,
    -
    6699  &kZoneContext /*zoneContext*/,
    -
    6700  7 /*numEras*/,
    -
    6701  kZoneEraAmerica_Eirunepe /*eras*/,
    -
    6702  nullptr /*targetInfo*/,
    -
    6703 };
    -
    6704 
    -
    6705 //---------------------------------------------------------------------------
    -
    6706 // Zone name: America/El_Salvador
    -
    6707 // Eras: 2
    -
    6708 //---------------------------------------------------------------------------
    -
    6709 
    -
    6710 static const complete::Info::ZoneEra kZoneEraAmerica_El_Salvador[] ACE_TIME_PROGMEM = {
    -
    6711  // -5:56:48 - LMT 1921
    -
    6712  {
    -
    6713  nullptr /*zonePolicy*/,
    -
    6714  "LMT" /*format*/,
    -
    6715  -1428 /*offsetCode (-21408/15)*/,
    -
    6716  12 /*offsetRemainder (-21408%15)*/,
    -
    6717  0 /*deltaMinutes*/,
    -
    6718  1921 /*untilYear*/,
    -
    6719  1 /*untilMonth*/,
    -
    6720  1 /*untilDay*/,
    -
    6721  0 /*untilTimeCode (0/15)*/,
    -
    6722  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6723  },
    -
    6724  // -6:00 Salv C%sT
    -
    6725  {
    -
    6726  &kZonePolicySalv /*zonePolicy*/,
    -
    6727  "C%T" /*format*/,
    -
    6728  -1440 /*offsetCode (-21600/15)*/,
    -
    6729  0 /*offsetRemainder (-21600%15)*/,
    -
    6730  0 /*deltaMinutes*/,
    -
    6731  32767 /*untilYear*/,
    -
    6732  1 /*untilMonth*/,
    -
    6733  1 /*untilDay*/,
    -
    6734  0 /*untilTimeCode (0/15)*/,
    -
    6735  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6736  },
    -
    6737 
    -
    6738 };
    -
    6739 
    -
    6740 static const char kZoneNameAmerica_El_Salvador[] ACE_TIME_PROGMEM = "\x02" "El_Salvador";
    -
    6741 
    -
    6742 const complete::Info::ZoneInfo kZoneAmerica_El_Salvador ACE_TIME_PROGMEM = {
    -
    6743  kZoneNameAmerica_El_Salvador /*name*/,
    -
    6744  0x752ad652 /*zoneId*/,
    -
    6745  &kZoneContext /*zoneContext*/,
    -
    6746  2 /*numEras*/,
    -
    6747  kZoneEraAmerica_El_Salvador /*eras*/,
    -
    6748  nullptr /*targetInfo*/,
    -
    6749 };
    -
    6750 
    -
    6751 //---------------------------------------------------------------------------
    -
    6752 // Zone name: America/Fort_Nelson
    -
    6753 // Eras: 6
    -
    6754 //---------------------------------------------------------------------------
    -
    6755 
    -
    6756 static const complete::Info::ZoneEra kZoneEraAmerica_Fort_Nelson[] ACE_TIME_PROGMEM = {
    -
    6757  // -8:10:47 - LMT 1884
    -
    6758  {
    -
    6759  nullptr /*zonePolicy*/,
    -
    6760  "LMT" /*format*/,
    -
    6761  -1964 /*offsetCode (-29447/15)*/,
    -
    6762  13 /*offsetRemainder (-29447%15)*/,
    -
    6763  0 /*deltaMinutes*/,
    -
    6764  1884 /*untilYear*/,
    -
    6765  1 /*untilMonth*/,
    -
    6766  1 /*untilDay*/,
    -
    6767  0 /*untilTimeCode (0/15)*/,
    -
    6768  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6769  },
    -
    6770  // -8:00 Vanc P%sT 1946
    -
    6771  {
    -
    6772  &kZonePolicyVanc /*zonePolicy*/,
    -
    6773  "P%T" /*format*/,
    -
    6774  -1920 /*offsetCode (-28800/15)*/,
    -
    6775  0 /*offsetRemainder (-28800%15)*/,
    -
    6776  0 /*deltaMinutes*/,
    -
    6777  1946 /*untilYear*/,
    -
    6778  1 /*untilMonth*/,
    -
    6779  1 /*untilDay*/,
    -
    6780  0 /*untilTimeCode (0/15)*/,
    -
    6781  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6782  },
    -
    6783  // -8:00 - PST 1947
    -
    6784  {
    -
    6785  nullptr /*zonePolicy*/,
    -
    6786  "PST" /*format*/,
    -
    6787  -1920 /*offsetCode (-28800/15)*/,
    -
    6788  0 /*offsetRemainder (-28800%15)*/,
    -
    6789  0 /*deltaMinutes*/,
    -
    6790  1947 /*untilYear*/,
    -
    6791  1 /*untilMonth*/,
    -
    6792  1 /*untilDay*/,
    -
    6793  0 /*untilTimeCode (0/15)*/,
    -
    6794  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6795  },
    -
    6796  // -8:00 Vanc P%sT 1987
    -
    6797  {
    -
    6798  &kZonePolicyVanc /*zonePolicy*/,
    -
    6799  "P%T" /*format*/,
    -
    6800  -1920 /*offsetCode (-28800/15)*/,
    -
    6801  0 /*offsetRemainder (-28800%15)*/,
    -
    6802  0 /*deltaMinutes*/,
    -
    6803  1987 /*untilYear*/,
    -
    6804  1 /*untilMonth*/,
    -
    6805  1 /*untilDay*/,
    -
    6806  0 /*untilTimeCode (0/15)*/,
    -
    6807  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6808  },
    -
    6809  // -8:00 Canada P%sT 2015 Mar 8 2:00
    -
    6810  {
    -
    6811  &kZonePolicyCanada /*zonePolicy*/,
    -
    6812  "P%T" /*format*/,
    -
    6813  -1920 /*offsetCode (-28800/15)*/,
    -
    6814  0 /*offsetRemainder (-28800%15)*/,
    -
    6815  0 /*deltaMinutes*/,
    -
    6816  2015 /*untilYear*/,
    -
    6817  3 /*untilMonth*/,
    -
    6818  8 /*untilDay*/,
    -
    6819  480 /*untilTimeCode (7200/15)*/,
    -
    6820  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6821  },
    -
    6822  // -7:00 - MST
    -
    6823  {
    -
    6824  nullptr /*zonePolicy*/,
    -
    6825  "MST" /*format*/,
    -
    6826  -1680 /*offsetCode (-25200/15)*/,
    -
    6827  0 /*offsetRemainder (-25200%15)*/,
    -
    6828  0 /*deltaMinutes*/,
    -
    6829  32767 /*untilYear*/,
    -
    6830  1 /*untilMonth*/,
    -
    6831  1 /*untilDay*/,
    -
    6832  0 /*untilTimeCode (0/15)*/,
    -
    6833  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6834  },
    -
    6835 
    -
    6836 };
    -
    6837 
    -
    6838 static const char kZoneNameAmerica_Fort_Nelson[] ACE_TIME_PROGMEM = "\x02" "Fort_Nelson";
    -
    6839 
    -
    6840 const complete::Info::ZoneInfo kZoneAmerica_Fort_Nelson ACE_TIME_PROGMEM = {
    -
    6841  kZoneNameAmerica_Fort_Nelson /*name*/,
    -
    6842  0x3f437e0f /*zoneId*/,
    -
    6843  &kZoneContext /*zoneContext*/,
    -
    6844  6 /*numEras*/,
    -
    6845  kZoneEraAmerica_Fort_Nelson /*eras*/,
    -
    6846  nullptr /*targetInfo*/,
    -
    6847 };
    -
    6848 
    -
    6849 //---------------------------------------------------------------------------
    -
    6850 // Zone name: America/Fortaleza
    -
    6851 // Eras: 7
    -
    6852 //---------------------------------------------------------------------------
    -
    6853 
    -
    6854 static const complete::Info::ZoneEra kZoneEraAmerica_Fortaleza[] ACE_TIME_PROGMEM = {
    -
    6855  // -2:34:00 - LMT 1914
    -
    6856  {
    -
    6857  nullptr /*zonePolicy*/,
    -
    6858  "LMT" /*format*/,
    -
    6859  -616 /*offsetCode (-9240/15)*/,
    -
    6860  0 /*offsetRemainder (-9240%15)*/,
    -
    6861  0 /*deltaMinutes*/,
    -
    6862  1914 /*untilYear*/,
    -
    6863  1 /*untilMonth*/,
    -
    6864  1 /*untilDay*/,
    -
    6865  0 /*untilTimeCode (0/15)*/,
    -
    6866  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6867  },
    -
    6868  // -3:00 Brazil %z 1990 Sep 17
    -
    6869  {
    -
    6870  &kZonePolicyBrazil /*zonePolicy*/,
    -
    6871  "" /*format*/,
    -
    6872  -720 /*offsetCode (-10800/15)*/,
    -
    6873  0 /*offsetRemainder (-10800%15)*/,
    -
    6874  0 /*deltaMinutes*/,
    -
    6875  1990 /*untilYear*/,
    -
    6876  9 /*untilMonth*/,
    -
    6877  17 /*untilDay*/,
    -
    6878  0 /*untilTimeCode (0/15)*/,
    -
    6879  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6880  },
    -
    6881  // -3:00 - %z 1999 Sep 30
    -
    6882  {
    -
    6883  nullptr /*zonePolicy*/,
    -
    6884  "" /*format*/,
    -
    6885  -720 /*offsetCode (-10800/15)*/,
    -
    6886  0 /*offsetRemainder (-10800%15)*/,
    -
    6887  0 /*deltaMinutes*/,
    -
    6888  1999 /*untilYear*/,
    -
    6889  9 /*untilMonth*/,
    -
    6890  30 /*untilDay*/,
    -
    6891  0 /*untilTimeCode (0/15)*/,
    -
    6892  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6893  },
    -
    6894  // -3:00 Brazil %z 2000 Oct 22
    -
    6895  {
    -
    6896  &kZonePolicyBrazil /*zonePolicy*/,
    -
    6897  "" /*format*/,
    -
    6898  -720 /*offsetCode (-10800/15)*/,
    -
    6899  0 /*offsetRemainder (-10800%15)*/,
    -
    6900  0 /*deltaMinutes*/,
    -
    6901  2000 /*untilYear*/,
    -
    6902  10 /*untilMonth*/,
    -
    6903  22 /*untilDay*/,
    -
    6904  0 /*untilTimeCode (0/15)*/,
    -
    6905  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6906  },
    -
    6907  // -3:00 - %z 2001 Sep 13
    -
    6908  {
    -
    6909  nullptr /*zonePolicy*/,
    -
    6910  "" /*format*/,
    -
    6911  -720 /*offsetCode (-10800/15)*/,
    -
    6912  0 /*offsetRemainder (-10800%15)*/,
    -
    6913  0 /*deltaMinutes*/,
    -
    6914  2001 /*untilYear*/,
    -
    6915  9 /*untilMonth*/,
    -
    6916  13 /*untilDay*/,
    -
    6917  0 /*untilTimeCode (0/15)*/,
    -
    6918  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6919  },
    -
    6920  // -3:00 Brazil %z 2002 Oct 1
    -
    6921  {
    -
    6922  &kZonePolicyBrazil /*zonePolicy*/,
    -
    6923  "" /*format*/,
    -
    6924  -720 /*offsetCode (-10800/15)*/,
    -
    6925  0 /*offsetRemainder (-10800%15)*/,
    -
    6926  0 /*deltaMinutes*/,
    -
    6927  2002 /*untilYear*/,
    -
    6928  10 /*untilMonth*/,
    -
    6929  1 /*untilDay*/,
    -
    6930  0 /*untilTimeCode (0/15)*/,
    -
    6931  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6932  },
    -
    6933  // -3:00 - %z
    -
    6934  {
    -
    6935  nullptr /*zonePolicy*/,
    -
    6936  "" /*format*/,
    -
    6937  -720 /*offsetCode (-10800/15)*/,
    -
    6938  0 /*offsetRemainder (-10800%15)*/,
    -
    6939  0 /*deltaMinutes*/,
    -
    6940  32767 /*untilYear*/,
    -
    6941  1 /*untilMonth*/,
    -
    6942  1 /*untilDay*/,
    -
    6943  0 /*untilTimeCode (0/15)*/,
    -
    6944  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6945  },
    -
    6946 
    -
    6947 };
    -
    6948 
    -
    6949 static const char kZoneNameAmerica_Fortaleza[] ACE_TIME_PROGMEM = "\x02" "Fortaleza";
    -
    6950 
    -
    6951 const complete::Info::ZoneInfo kZoneAmerica_Fortaleza ACE_TIME_PROGMEM = {
    -
    6952  kZoneNameAmerica_Fortaleza /*name*/,
    -
    6953  0x2ad018ee /*zoneId*/,
    -
    6954  &kZoneContext /*zoneContext*/,
    -
    6955  7 /*numEras*/,
    -
    6956  kZoneEraAmerica_Fortaleza /*eras*/,
    -
    6957  nullptr /*targetInfo*/,
    -
    6958 };
    -
    6959 
    -
    6960 //---------------------------------------------------------------------------
    -
    6961 // Zone name: America/Glace_Bay
    -
    6962 // Eras: 6
    -
    6963 //---------------------------------------------------------------------------
    -
    6964 
    -
    6965 static const complete::Info::ZoneEra kZoneEraAmerica_Glace_Bay[] ACE_TIME_PROGMEM = {
    -
    6966  // -3:59:48 - LMT 1902 Jun 15
    -
    6967  {
    -
    6968  nullptr /*zonePolicy*/,
    -
    6969  "LMT" /*format*/,
    -
    6970  -960 /*offsetCode (-14388/15)*/,
    -
    6971  12 /*offsetRemainder (-14388%15)*/,
    -
    6972  0 /*deltaMinutes*/,
    -
    6973  1902 /*untilYear*/,
    -
    6974  6 /*untilMonth*/,
    -
    6975  15 /*untilDay*/,
    -
    6976  0 /*untilTimeCode (0/15)*/,
    -
    6977  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6978  },
    -
    6979  // -4:00 Canada A%sT 1953
    -
    6980  {
    -
    6981  &kZonePolicyCanada /*zonePolicy*/,
    -
    6982  "A%T" /*format*/,
    -
    6983  -960 /*offsetCode (-14400/15)*/,
    -
    6984  0 /*offsetRemainder (-14400%15)*/,
    -
    6985  0 /*deltaMinutes*/,
    -
    6986  1953 /*untilYear*/,
    -
    6987  1 /*untilMonth*/,
    -
    6988  1 /*untilDay*/,
    -
    6989  0 /*untilTimeCode (0/15)*/,
    -
    6990  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6991  },
    -
    6992  // -4:00 Halifax A%sT 1954
    -
    6993  {
    -
    6994  &kZonePolicyHalifax /*zonePolicy*/,
    -
    6995  "A%T" /*format*/,
    -
    6996  -960 /*offsetCode (-14400/15)*/,
    -
    6997  0 /*offsetRemainder (-14400%15)*/,
    -
    6998  0 /*deltaMinutes*/,
    -
    6999  1954 /*untilYear*/,
    -
    7000  1 /*untilMonth*/,
    -
    7001  1 /*untilDay*/,
    -
    7002  0 /*untilTimeCode (0/15)*/,
    -
    7003  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7004  },
    -
    7005  // -4:00 - AST 1972
    -
    7006  {
    -
    7007  nullptr /*zonePolicy*/,
    -
    7008  "AST" /*format*/,
    -
    7009  -960 /*offsetCode (-14400/15)*/,
    -
    7010  0 /*offsetRemainder (-14400%15)*/,
    -
    7011  0 /*deltaMinutes*/,
    -
    7012  1972 /*untilYear*/,
    -
    7013  1 /*untilMonth*/,
    -
    7014  1 /*untilDay*/,
    -
    7015  0 /*untilTimeCode (0/15)*/,
    -
    7016  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7017  },
    -
    7018  // -4:00 Halifax A%sT 1974
    -
    7019  {
    -
    7020  &kZonePolicyHalifax /*zonePolicy*/,
    -
    7021  "A%T" /*format*/,
    -
    7022  -960 /*offsetCode (-14400/15)*/,
    -
    7023  0 /*offsetRemainder (-14400%15)*/,
    -
    7024  0 /*deltaMinutes*/,
    -
    7025  1974 /*untilYear*/,
    -
    7026  1 /*untilMonth*/,
    -
    7027  1 /*untilDay*/,
    -
    7028  0 /*untilTimeCode (0/15)*/,
    -
    7029  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7030  },
    -
    7031  // -4:00 Canada A%sT
    -
    7032  {
    -
    7033  &kZonePolicyCanada /*zonePolicy*/,
    -
    7034  "A%T" /*format*/,
    -
    7035  -960 /*offsetCode (-14400/15)*/,
    -
    7036  0 /*offsetRemainder (-14400%15)*/,
    -
    7037  0 /*deltaMinutes*/,
    -
    7038  32767 /*untilYear*/,
    -
    7039  1 /*untilMonth*/,
    -
    7040  1 /*untilDay*/,
    -
    7041  0 /*untilTimeCode (0/15)*/,
    -
    7042  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7043  },
    -
    7044 
    -
    7045 };
    -
    7046 
    -
    7047 static const char kZoneNameAmerica_Glace_Bay[] ACE_TIME_PROGMEM = "\x02" "Glace_Bay";
    -
    7048 
    -
    7049 const complete::Info::ZoneInfo kZoneAmerica_Glace_Bay ACE_TIME_PROGMEM = {
    -
    7050  kZoneNameAmerica_Glace_Bay /*name*/,
    -
    7051  0x9681f8dd /*zoneId*/,
    -
    7052  &kZoneContext /*zoneContext*/,
    -
    7053  6 /*numEras*/,
    -
    7054  kZoneEraAmerica_Glace_Bay /*eras*/,
    -
    7055  nullptr /*targetInfo*/,
    -
    7056 };
    -
    7057 
    -
    7058 //---------------------------------------------------------------------------
    -
    7059 // Zone name: America/Goose_Bay
    -
    7060 // Eras: 10
    -
    7061 //---------------------------------------------------------------------------
    -
    7062 
    -
    7063 static const complete::Info::ZoneEra kZoneEraAmerica_Goose_Bay[] ACE_TIME_PROGMEM = {
    -
    7064  // -4:01:40 - LMT 1884
    -
    7065  {
    -
    7066  nullptr /*zonePolicy*/,
    -
    7067  "LMT" /*format*/,
    -
    7068  -967 /*offsetCode (-14500/15)*/,
    -
    7069  5 /*offsetRemainder (-14500%15)*/,
    -
    7070  0 /*deltaMinutes*/,
    -
    7071  1884 /*untilYear*/,
    -
    7072  1 /*untilMonth*/,
    -
    7073  1 /*untilDay*/,
    -
    7074  0 /*untilTimeCode (0/15)*/,
    -
    7075  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7076  },
    -
    7077  // -3:30:52 - NST 1918
    -
    7078  {
    -
    7079  nullptr /*zonePolicy*/,
    -
    7080  "NST" /*format*/,
    -
    7081  -844 /*offsetCode (-12652/15)*/,
    -
    7082  8 /*offsetRemainder (-12652%15)*/,
    -
    7083  0 /*deltaMinutes*/,
    -
    7084  1918 /*untilYear*/,
    -
    7085  1 /*untilMonth*/,
    -
    7086  1 /*untilDay*/,
    -
    7087  0 /*untilTimeCode (0/15)*/,
    -
    7088  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7089  },
    -
    7090  // -3:30:52 Canada N%sT 1919
    -
    7091  {
    -
    7092  &kZonePolicyCanada /*zonePolicy*/,
    -
    7093  "N%T" /*format*/,
    -
    7094  -844 /*offsetCode (-12652/15)*/,
    -
    7095  8 /*offsetRemainder (-12652%15)*/,
    -
    7096  0 /*deltaMinutes*/,
    -
    7097  1919 /*untilYear*/,
    -
    7098  1 /*untilMonth*/,
    -
    7099  1 /*untilDay*/,
    -
    7100  0 /*untilTimeCode (0/15)*/,
    -
    7101  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7102  },
    -
    7103  // -3:30:52 - NST 1935 Mar 30
    -
    7104  {
    -
    7105  nullptr /*zonePolicy*/,
    -
    7106  "NST" /*format*/,
    -
    7107  -844 /*offsetCode (-12652/15)*/,
    -
    7108  8 /*offsetRemainder (-12652%15)*/,
    -
    7109  0 /*deltaMinutes*/,
    -
    7110  1935 /*untilYear*/,
    -
    7111  3 /*untilMonth*/,
    -
    7112  30 /*untilDay*/,
    -
    7113  0 /*untilTimeCode (0/15)*/,
    -
    7114  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7115  },
    -
    7116  // -3:30 - NST 1936
    -
    7117  {
    -
    7118  nullptr /*zonePolicy*/,
    -
    7119  "NST" /*format*/,
    -
    7120  -840 /*offsetCode (-12600/15)*/,
    -
    7121  0 /*offsetRemainder (-12600%15)*/,
    -
    7122  0 /*deltaMinutes*/,
    -
    7123  1936 /*untilYear*/,
    -
    7124  1 /*untilMonth*/,
    -
    7125  1 /*untilDay*/,
    -
    7126  0 /*untilTimeCode (0/15)*/,
    -
    7127  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7128  },
    -
    7129  // -3:30 StJohns N%sT 1942 May 11
    -
    7130  {
    -
    7131  &kZonePolicyStJohns /*zonePolicy*/,
    -
    7132  "N%T" /*format*/,
    -
    7133  -840 /*offsetCode (-12600/15)*/,
    -
    7134  0 /*offsetRemainder (-12600%15)*/,
    -
    7135  0 /*deltaMinutes*/,
    -
    7136  1942 /*untilYear*/,
    -
    7137  5 /*untilMonth*/,
    -
    7138  11 /*untilDay*/,
    -
    7139  0 /*untilTimeCode (0/15)*/,
    -
    7140  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7141  },
    -
    7142  // -3:30 Canada N%sT 1946
    -
    7143  {
    -
    7144  &kZonePolicyCanada /*zonePolicy*/,
    -
    7145  "N%T" /*format*/,
    -
    7146  -840 /*offsetCode (-12600/15)*/,
    -
    7147  0 /*offsetRemainder (-12600%15)*/,
    -
    7148  0 /*deltaMinutes*/,
    -
    7149  1946 /*untilYear*/,
    -
    7150  1 /*untilMonth*/,
    -
    7151  1 /*untilDay*/,
    -
    7152  0 /*untilTimeCode (0/15)*/,
    -
    7153  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7154  },
    -
    7155  // -3:30 StJohns N%sT 1966 Mar 15 2:00
    -
    7156  {
    -
    7157  &kZonePolicyStJohns /*zonePolicy*/,
    -
    7158  "N%T" /*format*/,
    -
    7159  -840 /*offsetCode (-12600/15)*/,
    -
    7160  0 /*offsetRemainder (-12600%15)*/,
    -
    7161  0 /*deltaMinutes*/,
    -
    7162  1966 /*untilYear*/,
    -
    7163  3 /*untilMonth*/,
    -
    7164  15 /*untilDay*/,
    -
    7165  480 /*untilTimeCode (7200/15)*/,
    -
    7166  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7167  },
    -
    7168  // -4:00 StJohns A%sT 2011 Nov
    -
    7169  {
    -
    7170  &kZonePolicyStJohns /*zonePolicy*/,
    -
    7171  "A%T" /*format*/,
    -
    7172  -960 /*offsetCode (-14400/15)*/,
    -
    7173  0 /*offsetRemainder (-14400%15)*/,
    -
    7174  0 /*deltaMinutes*/,
    -
    7175  2011 /*untilYear*/,
    -
    7176  11 /*untilMonth*/,
    -
    7177  1 /*untilDay*/,
    -
    7178  0 /*untilTimeCode (0/15)*/,
    -
    7179  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7180  },
    -
    7181  // -4:00 Canada A%sT
    -
    7182  {
    -
    7183  &kZonePolicyCanada /*zonePolicy*/,
    -
    7184  "A%T" /*format*/,
    -
    7185  -960 /*offsetCode (-14400/15)*/,
    -
    7186  0 /*offsetRemainder (-14400%15)*/,
    -
    7187  0 /*deltaMinutes*/,
    -
    7188  32767 /*untilYear*/,
    -
    7189  1 /*untilMonth*/,
    -
    7190  1 /*untilDay*/,
    -
    7191  0 /*untilTimeCode (0/15)*/,
    -
    7192  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7193  },
    -
    7194 
    -
    7195 };
    -
    7196 
    -
    7197 static const char kZoneNameAmerica_Goose_Bay[] ACE_TIME_PROGMEM = "\x02" "Goose_Bay";
    -
    7198 
    -
    7199 const complete::Info::ZoneInfo kZoneAmerica_Goose_Bay ACE_TIME_PROGMEM = {
    -
    7200  kZoneNameAmerica_Goose_Bay /*name*/,
    -
    7201  0xb649541e /*zoneId*/,
    -
    7202  &kZoneContext /*zoneContext*/,
    -
    7203  10 /*numEras*/,
    -
    7204  kZoneEraAmerica_Goose_Bay /*eras*/,
    -
    7205  nullptr /*targetInfo*/,
    -
    7206 };
    -
    7207 
    -
    7208 //---------------------------------------------------------------------------
    -
    7209 // Zone name: America/Grand_Turk
    -
    7210 // Eras: 6
    -
    7211 //---------------------------------------------------------------------------
    -
    7212 
    -
    7213 static const complete::Info::ZoneEra kZoneEraAmerica_Grand_Turk[] ACE_TIME_PROGMEM = {
    -
    7214  // -4:44:32 - LMT 1890
    -
    7215  {
    -
    7216  nullptr /*zonePolicy*/,
    -
    7217  "LMT" /*format*/,
    -
    7218  -1139 /*offsetCode (-17072/15)*/,
    -
    7219  13 /*offsetRemainder (-17072%15)*/,
    -
    7220  0 /*deltaMinutes*/,
    -
    7221  1890 /*untilYear*/,
    -
    7222  1 /*untilMonth*/,
    -
    7223  1 /*untilDay*/,
    -
    7224  0 /*untilTimeCode (0/15)*/,
    -
    7225  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7226  },
    -
    7227  // -5:07:10 - KMT 1912 Feb
    -
    7228  {
    -
    7229  nullptr /*zonePolicy*/,
    -
    7230  "KMT" /*format*/,
    -
    7231  -1229 /*offsetCode (-18430/15)*/,
    -
    7232  5 /*offsetRemainder (-18430%15)*/,
    -
    7233  0 /*deltaMinutes*/,
    -
    7234  1912 /*untilYear*/,
    -
    7235  2 /*untilMonth*/,
    -
    7236  1 /*untilDay*/,
    -
    7237  0 /*untilTimeCode (0/15)*/,
    -
    7238  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7239  },
    -
    7240  // -5:00 - EST 1979
    -
    7241  {
    -
    7242  nullptr /*zonePolicy*/,
    -
    7243  "EST" /*format*/,
    -
    7244  -1200 /*offsetCode (-18000/15)*/,
    -
    7245  0 /*offsetRemainder (-18000%15)*/,
    -
    7246  0 /*deltaMinutes*/,
    -
    7247  1979 /*untilYear*/,
    -
    7248  1 /*untilMonth*/,
    -
    7249  1 /*untilDay*/,
    -
    7250  0 /*untilTimeCode (0/15)*/,
    -
    7251  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7252  },
    -
    7253  // -5:00 US E%sT 2015 Mar 8 2:00
    -
    7254  {
    -
    7255  &kZonePolicyUS /*zonePolicy*/,
    -
    7256  "E%T" /*format*/,
    -
    7257  -1200 /*offsetCode (-18000/15)*/,
    -
    7258  0 /*offsetRemainder (-18000%15)*/,
    -
    7259  0 /*deltaMinutes*/,
    -
    7260  2015 /*untilYear*/,
    -
    7261  3 /*untilMonth*/,
    -
    7262  8 /*untilDay*/,
    -
    7263  480 /*untilTimeCode (7200/15)*/,
    -
    7264  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7265  },
    -
    7266  // -4:00 - AST 2018 Mar 11 3:00
    -
    7267  {
    -
    7268  nullptr /*zonePolicy*/,
    -
    7269  "AST" /*format*/,
    -
    7270  -960 /*offsetCode (-14400/15)*/,
    -
    7271  0 /*offsetRemainder (-14400%15)*/,
    -
    7272  0 /*deltaMinutes*/,
    -
    7273  2018 /*untilYear*/,
    -
    7274  3 /*untilMonth*/,
    -
    7275  11 /*untilDay*/,
    -
    7276  720 /*untilTimeCode (10800/15)*/,
    -
    7277  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7278  },
    -
    7279  // -5:00 US E%sT
    -
    7280  {
    -
    7281  &kZonePolicyUS /*zonePolicy*/,
    -
    7282  "E%T" /*format*/,
    -
    7283  -1200 /*offsetCode (-18000/15)*/,
    -
    7284  0 /*offsetRemainder (-18000%15)*/,
    -
    7285  0 /*deltaMinutes*/,
    -
    7286  32767 /*untilYear*/,
    -
    7287  1 /*untilMonth*/,
    -
    7288  1 /*untilDay*/,
    -
    7289  0 /*untilTimeCode (0/15)*/,
    -
    7290  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7291  },
    -
    7292 
    -
    7293 };
    -
    7294 
    -
    7295 static const char kZoneNameAmerica_Grand_Turk[] ACE_TIME_PROGMEM = "\x02" "Grand_Turk";
    -
    7296 
    -
    7297 const complete::Info::ZoneInfo kZoneAmerica_Grand_Turk ACE_TIME_PROGMEM = {
    -
    7298  kZoneNameAmerica_Grand_Turk /*name*/,
    -
    7299  0x6e216197 /*zoneId*/,
    -
    7300  &kZoneContext /*zoneContext*/,
    -
    7301  6 /*numEras*/,
    -
    7302  kZoneEraAmerica_Grand_Turk /*eras*/,
    -
    7303  nullptr /*targetInfo*/,
    -
    7304 };
    -
    7305 
    -
    7306 //---------------------------------------------------------------------------
    -
    7307 // Zone name: America/Guatemala
    -
    7308 // Eras: 2
    -
    7309 //---------------------------------------------------------------------------
    -
    7310 
    -
    7311 static const complete::Info::ZoneEra kZoneEraAmerica_Guatemala[] ACE_TIME_PROGMEM = {
    -
    7312  // -6:02:04 - LMT 1918 Oct 5
    -
    7313  {
    -
    7314  nullptr /*zonePolicy*/,
    -
    7315  "LMT" /*format*/,
    -
    7316  -1449 /*offsetCode (-21724/15)*/,
    -
    7317  11 /*offsetRemainder (-21724%15)*/,
    -
    7318  0 /*deltaMinutes*/,
    -
    7319  1918 /*untilYear*/,
    -
    7320  10 /*untilMonth*/,
    -
    7321  5 /*untilDay*/,
    -
    7322  0 /*untilTimeCode (0/15)*/,
    -
    7323  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7324  },
    -
    7325  // -6:00 Guat C%sT
    -
    7326  {
    -
    7327  &kZonePolicyGuat /*zonePolicy*/,
    -
    7328  "C%T" /*format*/,
    -
    7329  -1440 /*offsetCode (-21600/15)*/,
    -
    7330  0 /*offsetRemainder (-21600%15)*/,
    -
    7331  0 /*deltaMinutes*/,
    -
    7332  32767 /*untilYear*/,
    -
    7333  1 /*untilMonth*/,
    -
    7334  1 /*untilDay*/,
    -
    7335  0 /*untilTimeCode (0/15)*/,
    -
    7336  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7337  },
    -
    7338 
    -
    7339 };
    -
    7340 
    -
    7341 static const char kZoneNameAmerica_Guatemala[] ACE_TIME_PROGMEM = "\x02" "Guatemala";
    -
    7342 
    -
    7343 const complete::Info::ZoneInfo kZoneAmerica_Guatemala ACE_TIME_PROGMEM = {
    -
    7344  kZoneNameAmerica_Guatemala /*name*/,
    -
    7345  0x0c8259f7 /*zoneId*/,
    -
    7346  &kZoneContext /*zoneContext*/,
    -
    7347  2 /*numEras*/,
    -
    7348  kZoneEraAmerica_Guatemala /*eras*/,
    -
    7349  nullptr /*targetInfo*/,
    -
    7350 };
    -
    7351 
    -
    7352 //---------------------------------------------------------------------------
    -
    7353 // Zone name: America/Guayaquil
    -
    7354 // Eras: 3
    -
    7355 //---------------------------------------------------------------------------
    -
    7356 
    -
    7357 static const complete::Info::ZoneEra kZoneEraAmerica_Guayaquil[] ACE_TIME_PROGMEM = {
    -
    7358  // -5:19:20 - LMT 1890
    -
    7359  {
    -
    7360  nullptr /*zonePolicy*/,
    -
    7361  "LMT" /*format*/,
    -
    7362  -1278 /*offsetCode (-19160/15)*/,
    -
    7363  10 /*offsetRemainder (-19160%15)*/,
    -
    7364  0 /*deltaMinutes*/,
    -
    7365  1890 /*untilYear*/,
    -
    7366  1 /*untilMonth*/,
    -
    7367  1 /*untilDay*/,
    -
    7368  0 /*untilTimeCode (0/15)*/,
    -
    7369  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7370  },
    -
    7371  // -5:14:00 - QMT 1931
    -
    7372  {
    -
    7373  nullptr /*zonePolicy*/,
    -
    7374  "QMT" /*format*/,
    -
    7375  -1256 /*offsetCode (-18840/15)*/,
    -
    7376  0 /*offsetRemainder (-18840%15)*/,
    -
    7377  0 /*deltaMinutes*/,
    -
    7378  1931 /*untilYear*/,
    -
    7379  1 /*untilMonth*/,
    -
    7380  1 /*untilDay*/,
    -
    7381  0 /*untilTimeCode (0/15)*/,
    -
    7382  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7383  },
    -
    7384  // -5:00 Ecuador %z
    -
    7385  {
    -
    7386  &kZonePolicyEcuador /*zonePolicy*/,
    -
    7387  "" /*format*/,
    -
    7388  -1200 /*offsetCode (-18000/15)*/,
    -
    7389  0 /*offsetRemainder (-18000%15)*/,
    -
    7390  0 /*deltaMinutes*/,
    -
    7391  32767 /*untilYear*/,
    -
    7392  1 /*untilMonth*/,
    -
    7393  1 /*untilDay*/,
    -
    7394  0 /*untilTimeCode (0/15)*/,
    -
    7395  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7396  },
    -
    7397 
    -
    7398 };
    -
    7399 
    -
    7400 static const char kZoneNameAmerica_Guayaquil[] ACE_TIME_PROGMEM = "\x02" "Guayaquil";
    -
    7401 
    -
    7402 const complete::Info::ZoneInfo kZoneAmerica_Guayaquil ACE_TIME_PROGMEM = {
    -
    7403  kZoneNameAmerica_Guayaquil /*name*/,
    -
    7404  0x17e64958 /*zoneId*/,
    -
    7405  &kZoneContext /*zoneContext*/,
    -
    7406  3 /*numEras*/,
    -
    7407  kZoneEraAmerica_Guayaquil /*eras*/,
    -
    7408  nullptr /*targetInfo*/,
    -
    7409 };
    -
    7410 
    -
    7411 //---------------------------------------------------------------------------
    -
    7412 // Zone name: America/Guyana
    -
    7413 // Eras: 5
    -
    7414 //---------------------------------------------------------------------------
    -
    7415 
    -
    7416 static const complete::Info::ZoneEra kZoneEraAmerica_Guyana[] ACE_TIME_PROGMEM = {
    -
    7417  // -3:52:39 - LMT 1911 Aug 1
    -
    7418  {
    -
    7419  nullptr /*zonePolicy*/,
    -
    7420  "LMT" /*format*/,
    -
    7421  -931 /*offsetCode (-13959/15)*/,
    -
    7422  6 /*offsetRemainder (-13959%15)*/,
    -
    7423  0 /*deltaMinutes*/,
    -
    7424  1911 /*untilYear*/,
    -
    7425  8 /*untilMonth*/,
    -
    7426  1 /*untilDay*/,
    -
    7427  0 /*untilTimeCode (0/15)*/,
    -
    7428  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7429  },
    -
    7430  // -4:00 - %z 1915 Mar 1
    -
    7431  {
    -
    7432  nullptr /*zonePolicy*/,
    -
    7433  "" /*format*/,
    -
    7434  -960 /*offsetCode (-14400/15)*/,
    -
    7435  0 /*offsetRemainder (-14400%15)*/,
    -
    7436  0 /*deltaMinutes*/,
    -
    7437  1915 /*untilYear*/,
    -
    7438  3 /*untilMonth*/,
    -
    7439  1 /*untilDay*/,
    -
    7440  0 /*untilTimeCode (0/15)*/,
    -
    7441  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7442  },
    -
    7443  // -3:45 - %z 1975 Aug 1
    -
    7444  {
    -
    7445  nullptr /*zonePolicy*/,
    -
    7446  "" /*format*/,
    -
    7447  -900 /*offsetCode (-13500/15)*/,
    -
    7448  0 /*offsetRemainder (-13500%15)*/,
    -
    7449  0 /*deltaMinutes*/,
    -
    7450  1975 /*untilYear*/,
    -
    7451  8 /*untilMonth*/,
    -
    7452  1 /*untilDay*/,
    -
    7453  0 /*untilTimeCode (0/15)*/,
    -
    7454  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7455  },
    -
    7456  // -3:00 - %z 1992 Mar 29 1:00
    -
    7457  {
    -
    7458  nullptr /*zonePolicy*/,
    -
    7459  "" /*format*/,
    -
    7460  -720 /*offsetCode (-10800/15)*/,
    -
    7461  0 /*offsetRemainder (-10800%15)*/,
    -
    7462  0 /*deltaMinutes*/,
    -
    7463  1992 /*untilYear*/,
    -
    7464  3 /*untilMonth*/,
    -
    7465  29 /*untilDay*/,
    -
    7466  240 /*untilTimeCode (3600/15)*/,
    -
    7467  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7468  },
    -
    7469  // -4:00 - %z
    -
    7470  {
    -
    7471  nullptr /*zonePolicy*/,
    -
    7472  "" /*format*/,
    -
    7473  -960 /*offsetCode (-14400/15)*/,
    -
    7474  0 /*offsetRemainder (-14400%15)*/,
    -
    7475  0 /*deltaMinutes*/,
    -
    7476  32767 /*untilYear*/,
    -
    7477  1 /*untilMonth*/,
    -
    7478  1 /*untilDay*/,
    -
    7479  0 /*untilTimeCode (0/15)*/,
    -
    7480  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7481  },
    -
    7482 
    -
    7483 };
    -
    7484 
    -
    7485 static const char kZoneNameAmerica_Guyana[] ACE_TIME_PROGMEM = "\x02" "Guyana";
    -
    7486 
    -
    7487 const complete::Info::ZoneInfo kZoneAmerica_Guyana ACE_TIME_PROGMEM = {
    -
    7488  kZoneNameAmerica_Guyana /*name*/,
    -
    7489  0x9ff7bd0b /*zoneId*/,
    -
    7490  &kZoneContext /*zoneContext*/,
    -
    7491  5 /*numEras*/,
    -
    7492  kZoneEraAmerica_Guyana /*eras*/,
    -
    7493  nullptr /*targetInfo*/,
    -
    7494 };
    -
    7495 
    -
    7496 //---------------------------------------------------------------------------
    -
    7497 // Zone name: America/Halifax
    -
    7498 // Eras: 7
    -
    7499 //---------------------------------------------------------------------------
    -
    7500 
    -
    7501 static const complete::Info::ZoneEra kZoneEraAmerica_Halifax[] ACE_TIME_PROGMEM = {
    -
    7502  // -4:14:24 - LMT 1902 Jun 15
    -
    7503  {
    -
    7504  nullptr /*zonePolicy*/,
    -
    7505  "LMT" /*format*/,
    -
    7506  -1018 /*offsetCode (-15264/15)*/,
    -
    7507  6 /*offsetRemainder (-15264%15)*/,
    -
    7508  0 /*deltaMinutes*/,
    -
    7509  1902 /*untilYear*/,
    -
    7510  6 /*untilMonth*/,
    -
    7511  15 /*untilDay*/,
    -
    7512  0 /*untilTimeCode (0/15)*/,
    -
    7513  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7514  },
    -
    7515  // -4:00 Halifax A%sT 1918
    -
    7516  {
    -
    7517  &kZonePolicyHalifax /*zonePolicy*/,
    -
    7518  "A%T" /*format*/,
    -
    7519  -960 /*offsetCode (-14400/15)*/,
    -
    7520  0 /*offsetRemainder (-14400%15)*/,
    -
    7521  0 /*deltaMinutes*/,
    -
    7522  1918 /*untilYear*/,
    -
    7523  1 /*untilMonth*/,
    -
    7524  1 /*untilDay*/,
    -
    7525  0 /*untilTimeCode (0/15)*/,
    -
    7526  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7527  },
    -
    7528  // -4:00 Canada A%sT 1919
    -
    7529  {
    -
    7530  &kZonePolicyCanada /*zonePolicy*/,
    -
    7531  "A%T" /*format*/,
    -
    7532  -960 /*offsetCode (-14400/15)*/,
    -
    7533  0 /*offsetRemainder (-14400%15)*/,
    -
    7534  0 /*deltaMinutes*/,
    -
    7535  1919 /*untilYear*/,
    -
    7536  1 /*untilMonth*/,
    -
    7537  1 /*untilDay*/,
    -
    7538  0 /*untilTimeCode (0/15)*/,
    -
    7539  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7540  },
    -
    7541  // -4:00 Halifax A%sT 1942 Feb 9 2:00s
    -
    7542  {
    -
    7543  &kZonePolicyHalifax /*zonePolicy*/,
    -
    7544  "A%T" /*format*/,
    -
    7545  -960 /*offsetCode (-14400/15)*/,
    -
    7546  0 /*offsetRemainder (-14400%15)*/,
    -
    7547  0 /*deltaMinutes*/,
    -
    7548  1942 /*untilYear*/,
    -
    7549  2 /*untilMonth*/,
    -
    7550  9 /*untilDay*/,
    -
    7551  480 /*untilTimeCode (7200/15)*/,
    -
    7552  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    7553  },
    -
    7554  // -4:00 Canada A%sT 1946
    -
    7555  {
    -
    7556  &kZonePolicyCanada /*zonePolicy*/,
    -
    7557  "A%T" /*format*/,
    -
    7558  -960 /*offsetCode (-14400/15)*/,
    -
    7559  0 /*offsetRemainder (-14400%15)*/,
    -
    7560  0 /*deltaMinutes*/,
    -
    7561  1946 /*untilYear*/,
    -
    7562  1 /*untilMonth*/,
    -
    7563  1 /*untilDay*/,
    -
    7564  0 /*untilTimeCode (0/15)*/,
    -
    7565  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7566  },
    -
    7567  // -4:00 Halifax A%sT 1974
    -
    7568  {
    -
    7569  &kZonePolicyHalifax /*zonePolicy*/,
    -
    7570  "A%T" /*format*/,
    -
    7571  -960 /*offsetCode (-14400/15)*/,
    -
    7572  0 /*offsetRemainder (-14400%15)*/,
    -
    7573  0 /*deltaMinutes*/,
    -
    7574  1974 /*untilYear*/,
    -
    7575  1 /*untilMonth*/,
    -
    7576  1 /*untilDay*/,
    -
    7577  0 /*untilTimeCode (0/15)*/,
    -
    7578  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7579  },
    -
    7580  // -4:00 Canada A%sT
    -
    7581  {
    -
    7582  &kZonePolicyCanada /*zonePolicy*/,
    -
    7583  "A%T" /*format*/,
    -
    7584  -960 /*offsetCode (-14400/15)*/,
    -
    7585  0 /*offsetRemainder (-14400%15)*/,
    -
    7586  0 /*deltaMinutes*/,
    -
    7587  32767 /*untilYear*/,
    -
    7588  1 /*untilMonth*/,
    -
    7589  1 /*untilDay*/,
    -
    7590  0 /*untilTimeCode (0/15)*/,
    -
    7591  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7592  },
    -
    7593 
    -
    7594 };
    -
    7595 
    -
    7596 static const char kZoneNameAmerica_Halifax[] ACE_TIME_PROGMEM = "\x02" "Halifax";
    -
    7597 
    -
    7598 const complete::Info::ZoneInfo kZoneAmerica_Halifax ACE_TIME_PROGMEM = {
    -
    7599  kZoneNameAmerica_Halifax /*name*/,
    -
    7600  0xbc5b7183 /*zoneId*/,
    -
    7601  &kZoneContext /*zoneContext*/,
    -
    7602  7 /*numEras*/,
    -
    7603  kZoneEraAmerica_Halifax /*eras*/,
    -
    7604  nullptr /*targetInfo*/,
    -
    7605 };
    -
    7606 
    -
    7607 //---------------------------------------------------------------------------
    -
    7608 // Zone name: America/Havana
    -
    7609 // Eras: 3
    -
    7610 //---------------------------------------------------------------------------
    -
    7611 
    -
    7612 static const complete::Info::ZoneEra kZoneEraAmerica_Havana[] ACE_TIME_PROGMEM = {
    -
    7613  // -5:29:28 - LMT 1890
    -
    7614  {
    -
    7615  nullptr /*zonePolicy*/,
    -
    7616  "LMT" /*format*/,
    -
    7617  -1318 /*offsetCode (-19768/15)*/,
    -
    7618  2 /*offsetRemainder (-19768%15)*/,
    -
    7619  0 /*deltaMinutes*/,
    -
    7620  1890 /*untilYear*/,
    -
    7621  1 /*untilMonth*/,
    -
    7622  1 /*untilDay*/,
    -
    7623  0 /*untilTimeCode (0/15)*/,
    -
    7624  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7625  },
    -
    7626  // -5:29:36 - HMT 1925 Jul 19 12:00
    -
    7627  {
    -
    7628  nullptr /*zonePolicy*/,
    -
    7629  "HMT" /*format*/,
    -
    7630  -1319 /*offsetCode (-19776/15)*/,
    -
    7631  9 /*offsetRemainder (-19776%15)*/,
    -
    7632  0 /*deltaMinutes*/,
    -
    7633  1925 /*untilYear*/,
    -
    7634  7 /*untilMonth*/,
    -
    7635  19 /*untilDay*/,
    -
    7636  2880 /*untilTimeCode (43200/15)*/,
    -
    7637  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7638  },
    -
    7639  // -5:00 Cuba C%sT
    -
    7640  {
    -
    7641  &kZonePolicyCuba /*zonePolicy*/,
    -
    7642  "C%T" /*format*/,
    -
    7643  -1200 /*offsetCode (-18000/15)*/,
    -
    7644  0 /*offsetRemainder (-18000%15)*/,
    -
    7645  0 /*deltaMinutes*/,
    -
    7646  32767 /*untilYear*/,
    -
    7647  1 /*untilMonth*/,
    -
    7648  1 /*untilDay*/,
    -
    7649  0 /*untilTimeCode (0/15)*/,
    -
    7650  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7651  },
    -
    7652 
    -
    7653 };
    -
    7654 
    -
    7655 static const char kZoneNameAmerica_Havana[] ACE_TIME_PROGMEM = "\x02" "Havana";
    -
    7656 
    -
    7657 const complete::Info::ZoneInfo kZoneAmerica_Havana ACE_TIME_PROGMEM = {
    -
    7658  kZoneNameAmerica_Havana /*name*/,
    -
    7659  0xa0e15675 /*zoneId*/,
    -
    7660  &kZoneContext /*zoneContext*/,
    -
    7661  3 /*numEras*/,
    -
    7662  kZoneEraAmerica_Havana /*eras*/,
    -
    7663  nullptr /*targetInfo*/,
    -
    7664 };
    -
    7665 
    -
    7666 //---------------------------------------------------------------------------
    -
    7667 // Zone name: America/Hermosillo
    -
    7668 // Eras: 8
    -
    7669 //---------------------------------------------------------------------------
    -
    7670 
    -
    7671 static const complete::Info::ZoneEra kZoneEraAmerica_Hermosillo[] ACE_TIME_PROGMEM = {
    -
    7672  // -7:23:52 - LMT 1922 Jan 1 7:00u
    -
    7673  {
    -
    7674  nullptr /*zonePolicy*/,
    -
    7675  "LMT" /*format*/,
    -
    7676  -1776 /*offsetCode (-26632/15)*/,
    -
    7677  8 /*offsetRemainder (-26632%15)*/,
    -
    7678  0 /*deltaMinutes*/,
    -
    7679  1922 /*untilYear*/,
    -
    7680  1 /*untilMonth*/,
    -
    7681  1 /*untilDay*/,
    -
    7682  1680 /*untilTimeCode (25200/15)*/,
    -
    7683  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    7684  },
    -
    7685  // -7:00 - MST 1927 Jun 10
    -
    7686  {
    -
    7687  nullptr /*zonePolicy*/,
    -
    7688  "MST" /*format*/,
    -
    7689  -1680 /*offsetCode (-25200/15)*/,
    -
    7690  0 /*offsetRemainder (-25200%15)*/,
    -
    7691  0 /*deltaMinutes*/,
    -
    7692  1927 /*untilYear*/,
    -
    7693  6 /*untilMonth*/,
    -
    7694  10 /*untilDay*/,
    -
    7695  0 /*untilTimeCode (0/15)*/,
    -
    7696  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7697  },
    -
    7698  // -6:00 - CST 1930 Nov 15
    -
    7699  {
    -
    7700  nullptr /*zonePolicy*/,
    -
    7701  "CST" /*format*/,
    -
    7702  -1440 /*offsetCode (-21600/15)*/,
    -
    7703  0 /*offsetRemainder (-21600%15)*/,
    -
    7704  0 /*deltaMinutes*/,
    -
    7705  1930 /*untilYear*/,
    -
    7706  11 /*untilMonth*/,
    -
    7707  15 /*untilDay*/,
    -
    7708  0 /*untilTimeCode (0/15)*/,
    -
    7709  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7710  },
    -
    7711  // -7:00 Mexico M%sT 1932 Apr 1
    -
    7712  {
    -
    7713  &kZonePolicyMexico /*zonePolicy*/,
    -
    7714  "M%T" /*format*/,
    -
    7715  -1680 /*offsetCode (-25200/15)*/,
    -
    7716  0 /*offsetRemainder (-25200%15)*/,
    -
    7717  0 /*deltaMinutes*/,
    -
    7718  1932 /*untilYear*/,
    -
    7719  4 /*untilMonth*/,
    -
    7720  1 /*untilDay*/,
    -
    7721  0 /*untilTimeCode (0/15)*/,
    -
    7722  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7723  },
    -
    7724  // -6:00 - CST 1942 Apr 24
    -
    7725  {
    -
    7726  nullptr /*zonePolicy*/,
    -
    7727  "CST" /*format*/,
    -
    7728  -1440 /*offsetCode (-21600/15)*/,
    -
    7729  0 /*offsetRemainder (-21600%15)*/,
    -
    7730  0 /*deltaMinutes*/,
    -
    7731  1942 /*untilYear*/,
    -
    7732  4 /*untilMonth*/,
    -
    7733  24 /*untilDay*/,
    -
    7734  0 /*untilTimeCode (0/15)*/,
    -
    7735  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7736  },
    -
    7737  // -7:00 - MST 1996
    -
    7738  {
    -
    7739  nullptr /*zonePolicy*/,
    -
    7740  "MST" /*format*/,
    -
    7741  -1680 /*offsetCode (-25200/15)*/,
    -
    7742  0 /*offsetRemainder (-25200%15)*/,
    -
    7743  0 /*deltaMinutes*/,
    -
    7744  1996 /*untilYear*/,
    -
    7745  1 /*untilMonth*/,
    -
    7746  1 /*untilDay*/,
    -
    7747  0 /*untilTimeCode (0/15)*/,
    -
    7748  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7749  },
    -
    7750  // -7:00 Mexico M%sT 1999
    -
    7751  {
    -
    7752  &kZonePolicyMexico /*zonePolicy*/,
    -
    7753  "M%T" /*format*/,
    -
    7754  -1680 /*offsetCode (-25200/15)*/,
    -
    7755  0 /*offsetRemainder (-25200%15)*/,
    -
    7756  0 /*deltaMinutes*/,
    -
    7757  1999 /*untilYear*/,
    -
    7758  1 /*untilMonth*/,
    -
    7759  1 /*untilDay*/,
    -
    7760  0 /*untilTimeCode (0/15)*/,
    -
    7761  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7762  },
    -
    7763  // -7:00 - MST
    -
    7764  {
    -
    7765  nullptr /*zonePolicy*/,
    -
    7766  "MST" /*format*/,
    -
    7767  -1680 /*offsetCode (-25200/15)*/,
    -
    7768  0 /*offsetRemainder (-25200%15)*/,
    -
    7769  0 /*deltaMinutes*/,
    -
    7770  32767 /*untilYear*/,
    -
    7771  1 /*untilMonth*/,
    -
    7772  1 /*untilDay*/,
    -
    7773  0 /*untilTimeCode (0/15)*/,
    -
    7774  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7775  },
    -
    7776 
    -
    7777 };
    -
    7778 
    -
    7779 static const char kZoneNameAmerica_Hermosillo[] ACE_TIME_PROGMEM = "\x02" "Hermosillo";
    -
    7780 
    -
    7781 const complete::Info::ZoneInfo kZoneAmerica_Hermosillo ACE_TIME_PROGMEM = {
    -
    7782  kZoneNameAmerica_Hermosillo /*name*/,
    -
    7783  0x065d21c4 /*zoneId*/,
    -
    7784  &kZoneContext /*zoneContext*/,
    -
    7785  8 /*numEras*/,
    -
    7786  kZoneEraAmerica_Hermosillo /*eras*/,
    -
    7787  nullptr /*targetInfo*/,
    -
    7788 };
    -
    7789 
    -
    7790 //---------------------------------------------------------------------------
    -
    7791 // Zone name: America/Indiana/Indianapolis
    -
    7792 // Eras: 11
    -
    7793 //---------------------------------------------------------------------------
    -
    7794 
    -
    7795 static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = {
    -
    7796  // -5:44:38 - LMT 1883 Nov 18 18:00u
    -
    7797  {
    -
    7798  nullptr /*zonePolicy*/,
    -
    7799  "LMT" /*format*/,
    -
    7800  -1379 /*offsetCode (-20678/15)*/,
    -
    7801  7 /*offsetRemainder (-20678%15)*/,
    -
    7802  0 /*deltaMinutes*/,
    -
    7803  1883 /*untilYear*/,
    -
    7804  11 /*untilMonth*/,
    -
    7805  18 /*untilDay*/,
    -
    7806  4320 /*untilTimeCode (64800/15)*/,
    -
    7807  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    7808  },
    -
    7809  // -6:00 US C%sT 1920
    -
    7810  {
    -
    7811  &kZonePolicyUS /*zonePolicy*/,
    -
    7812  "C%T" /*format*/,
    -
    7813  -1440 /*offsetCode (-21600/15)*/,
    -
    7814  0 /*offsetRemainder (-21600%15)*/,
    -
    7815  0 /*deltaMinutes*/,
    -
    7816  1920 /*untilYear*/,
    -
    7817  1 /*untilMonth*/,
    -
    7818  1 /*untilDay*/,
    -
    7819  0 /*untilTimeCode (0/15)*/,
    -
    7820  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7821  },
    -
    7822  // -6:00 Indianapolis C%sT 1942
    -
    7823  {
    -
    7824  &kZonePolicyIndianapolis /*zonePolicy*/,
    -
    7825  "C%T" /*format*/,
    -
    7826  -1440 /*offsetCode (-21600/15)*/,
    -
    7827  0 /*offsetRemainder (-21600%15)*/,
    -
    7828  0 /*deltaMinutes*/,
    -
    7829  1942 /*untilYear*/,
    -
    7830  1 /*untilMonth*/,
    -
    7831  1 /*untilDay*/,
    -
    7832  0 /*untilTimeCode (0/15)*/,
    -
    7833  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7834  },
    -
    7835  // -6:00 US C%sT 1946
    -
    7836  {
    -
    7837  &kZonePolicyUS /*zonePolicy*/,
    -
    7838  "C%T" /*format*/,
    -
    7839  -1440 /*offsetCode (-21600/15)*/,
    -
    7840  0 /*offsetRemainder (-21600%15)*/,
    -
    7841  0 /*deltaMinutes*/,
    -
    7842  1946 /*untilYear*/,
    -
    7843  1 /*untilMonth*/,
    -
    7844  1 /*untilDay*/,
    -
    7845  0 /*untilTimeCode (0/15)*/,
    -
    7846  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7847  },
    -
    7848  // -6:00 Indianapolis C%sT 1955 Apr 24 2:00
    -
    7849  {
    -
    7850  &kZonePolicyIndianapolis /*zonePolicy*/,
    -
    7851  "C%T" /*format*/,
    -
    7852  -1440 /*offsetCode (-21600/15)*/,
    -
    7853  0 /*offsetRemainder (-21600%15)*/,
    -
    7854  0 /*deltaMinutes*/,
    -
    7855  1955 /*untilYear*/,
    -
    7856  4 /*untilMonth*/,
    -
    7857  24 /*untilDay*/,
    -
    7858  480 /*untilTimeCode (7200/15)*/,
    -
    7859  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7860  },
    -
    7861  // -5:00 - EST 1957 Sep 29 2:00
    -
    7862  {
    -
    7863  nullptr /*zonePolicy*/,
    -
    7864  "EST" /*format*/,
    -
    7865  -1200 /*offsetCode (-18000/15)*/,
    -
    7866  0 /*offsetRemainder (-18000%15)*/,
    -
    7867  0 /*deltaMinutes*/,
    -
    7868  1957 /*untilYear*/,
    -
    7869  9 /*untilMonth*/,
    -
    7870  29 /*untilDay*/,
    -
    7871  480 /*untilTimeCode (7200/15)*/,
    -
    7872  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7873  },
    -
    7874  // -6:00 - CST 1958 Apr 27 2:00
    -
    7875  {
    -
    7876  nullptr /*zonePolicy*/,
    -
    7877  "CST" /*format*/,
    -
    7878  -1440 /*offsetCode (-21600/15)*/,
    -
    7879  0 /*offsetRemainder (-21600%15)*/,
    -
    7880  0 /*deltaMinutes*/,
    -
    7881  1958 /*untilYear*/,
    -
    7882  4 /*untilMonth*/,
    -
    7883  27 /*untilDay*/,
    -
    7884  480 /*untilTimeCode (7200/15)*/,
    -
    7885  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7886  },
    -
    7887  // -5:00 - EST 1969
    -
    7888  {
    -
    7889  nullptr /*zonePolicy*/,
    -
    7890  "EST" /*format*/,
    -
    7891  -1200 /*offsetCode (-18000/15)*/,
    -
    7892  0 /*offsetRemainder (-18000%15)*/,
    -
    7893  0 /*deltaMinutes*/,
    -
    7894  1969 /*untilYear*/,
    -
    7895  1 /*untilMonth*/,
    -
    7896  1 /*untilDay*/,
    -
    7897  0 /*untilTimeCode (0/15)*/,
    -
    7898  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7899  },
    -
    7900  // -5:00 US E%sT 1971
    -
    7901  {
    -
    7902  &kZonePolicyUS /*zonePolicy*/,
    -
    7903  "E%T" /*format*/,
    -
    7904  -1200 /*offsetCode (-18000/15)*/,
    -
    7905  0 /*offsetRemainder (-18000%15)*/,
    -
    7906  0 /*deltaMinutes*/,
    -
    7907  1971 /*untilYear*/,
    -
    7908  1 /*untilMonth*/,
    -
    7909  1 /*untilDay*/,
    -
    7910  0 /*untilTimeCode (0/15)*/,
    -
    7911  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7912  },
    -
    7913  // -5:00 - EST 2006
    -
    7914  {
    -
    7915  nullptr /*zonePolicy*/,
    -
    7916  "EST" /*format*/,
    -
    7917  -1200 /*offsetCode (-18000/15)*/,
    -
    7918  0 /*offsetRemainder (-18000%15)*/,
    -
    7919  0 /*deltaMinutes*/,
    -
    7920  2006 /*untilYear*/,
    -
    7921  1 /*untilMonth*/,
    -
    7922  1 /*untilDay*/,
    -
    7923  0 /*untilTimeCode (0/15)*/,
    -
    7924  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7925  },
    -
    7926  // -5:00 US E%sT
    -
    7927  {
    -
    7928  &kZonePolicyUS /*zonePolicy*/,
    -
    7929  "E%T" /*format*/,
    -
    7930  -1200 /*offsetCode (-18000/15)*/,
    -
    7931  0 /*offsetRemainder (-18000%15)*/,
    -
    7932  0 /*deltaMinutes*/,
    -
    7933  32767 /*untilYear*/,
    -
    7934  1 /*untilMonth*/,
    -
    7935  1 /*untilDay*/,
    -
    7936  0 /*untilTimeCode (0/15)*/,
    -
    7937  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7938  },
    -
    7939 
    -
    7940 };
    -
    7941 
    -
    7942 static const char kZoneNameAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Indianapolis";
    -
    7943 
    -
    7944 const complete::Info::ZoneInfo kZoneAmerica_Indiana_Indianapolis ACE_TIME_PROGMEM = {
    -
    7945  kZoneNameAmerica_Indiana_Indianapolis /*name*/,
    -
    7946  0x28a669a4 /*zoneId*/,
    -
    7947  &kZoneContext /*zoneContext*/,
    -
    7948  11 /*numEras*/,
    -
    7949  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    7950  nullptr /*targetInfo*/,
    -
    7951 };
    -
    7952 
    -
    7953 //---------------------------------------------------------------------------
    -
    7954 // Zone name: America/Indiana/Knox
    -
    7955 // Eras: 7
    -
    7956 //---------------------------------------------------------------------------
    -
    7957 
    -
    7958 static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Knox[] ACE_TIME_PROGMEM = {
    -
    7959  // -5:46:30 - LMT 1883 Nov 18 18:00u
    -
    7960  {
    -
    7961  nullptr /*zonePolicy*/,
    -
    7962  "LMT" /*format*/,
    -
    7963  -1386 /*offsetCode (-20790/15)*/,
    -
    7964  0 /*offsetRemainder (-20790%15)*/,
    -
    7965  0 /*deltaMinutes*/,
    -
    7966  1883 /*untilYear*/,
    -
    7967  11 /*untilMonth*/,
    -
    7968  18 /*untilDay*/,
    -
    7969  4320 /*untilTimeCode (64800/15)*/,
    -
    7970  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    7971  },
    -
    7972  // -6:00 US C%sT 1947
    -
    7973  {
    -
    7974  &kZonePolicyUS /*zonePolicy*/,
    -
    7975  "C%T" /*format*/,
    -
    7976  -1440 /*offsetCode (-21600/15)*/,
    -
    7977  0 /*offsetRemainder (-21600%15)*/,
    -
    7978  0 /*deltaMinutes*/,
    -
    7979  1947 /*untilYear*/,
    -
    7980  1 /*untilMonth*/,
    -
    7981  1 /*untilDay*/,
    -
    7982  0 /*untilTimeCode (0/15)*/,
    -
    7983  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7984  },
    -
    7985  // -6:00 Starke C%sT 1962 Apr 29 2:00
    -
    7986  {
    -
    7987  &kZonePolicyStarke /*zonePolicy*/,
    -
    7988  "C%T" /*format*/,
    -
    7989  -1440 /*offsetCode (-21600/15)*/,
    -
    7990  0 /*offsetRemainder (-21600%15)*/,
    -
    7991  0 /*deltaMinutes*/,
    -
    7992  1962 /*untilYear*/,
    -
    7993  4 /*untilMonth*/,
    -
    7994  29 /*untilDay*/,
    -
    7995  480 /*untilTimeCode (7200/15)*/,
    -
    7996  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7997  },
    -
    7998  // -5:00 - EST 1963 Oct 27 2:00
    -
    7999  {
    -
    8000  nullptr /*zonePolicy*/,
    -
    8001  "EST" /*format*/,
    -
    8002  -1200 /*offsetCode (-18000/15)*/,
    -
    8003  0 /*offsetRemainder (-18000%15)*/,
    -
    8004  0 /*deltaMinutes*/,
    -
    8005  1963 /*untilYear*/,
    -
    8006  10 /*untilMonth*/,
    -
    8007  27 /*untilDay*/,
    -
    8008  480 /*untilTimeCode (7200/15)*/,
    -
    8009  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8010  },
    -
    8011  // -6:00 US C%sT 1991 Oct 27 2:00
    -
    8012  {
    -
    8013  &kZonePolicyUS /*zonePolicy*/,
    -
    8014  "C%T" /*format*/,
    -
    8015  -1440 /*offsetCode (-21600/15)*/,
    -
    8016  0 /*offsetRemainder (-21600%15)*/,
    -
    8017  0 /*deltaMinutes*/,
    -
    8018  1991 /*untilYear*/,
    -
    8019  10 /*untilMonth*/,
    -
    8020  27 /*untilDay*/,
    -
    8021  480 /*untilTimeCode (7200/15)*/,
    -
    8022  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8023  },
    -
    8024  // -5:00 - EST 2006 Apr 2 2:00
    -
    8025  {
    -
    8026  nullptr /*zonePolicy*/,
    -
    8027  "EST" /*format*/,
    -
    8028  -1200 /*offsetCode (-18000/15)*/,
    -
    8029  0 /*offsetRemainder (-18000%15)*/,
    -
    8030  0 /*deltaMinutes*/,
    -
    8031  2006 /*untilYear*/,
    -
    8032  4 /*untilMonth*/,
    -
    8033  2 /*untilDay*/,
    -
    8034  480 /*untilTimeCode (7200/15)*/,
    -
    8035  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8036  },
    -
    8037  // -6:00 US C%sT
    -
    8038  {
    -
    8039  &kZonePolicyUS /*zonePolicy*/,
    -
    8040  "C%T" /*format*/,
    -
    8041  -1440 /*offsetCode (-21600/15)*/,
    -
    8042  0 /*offsetRemainder (-21600%15)*/,
    -
    8043  0 /*deltaMinutes*/,
    -
    8044  32767 /*untilYear*/,
    -
    8045  1 /*untilMonth*/,
    -
    8046  1 /*untilDay*/,
    -
    8047  0 /*untilTimeCode (0/15)*/,
    -
    8048  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8049  },
    -
    8050 
    -
    8051 };
    -
    8052 
    -
    8053 static const char kZoneNameAmerica_Indiana_Knox[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Knox";
    -
    8054 
    -
    8055 const complete::Info::ZoneInfo kZoneAmerica_Indiana_Knox ACE_TIME_PROGMEM = {
    -
    8056  kZoneNameAmerica_Indiana_Knox /*name*/,
    -
    8057  0x6554adc9 /*zoneId*/,
    -
    8058  &kZoneContext /*zoneContext*/,
    -
    8059  7 /*numEras*/,
    -
    8060  kZoneEraAmerica_Indiana_Knox /*eras*/,
    -
    8061  nullptr /*targetInfo*/,
    -
    8062 };
    -
    8063 
    -
    8064 //---------------------------------------------------------------------------
    -
    8065 // Zone name: America/Indiana/Marengo
    -
    8066 // Eras: 9
    -
    8067 //---------------------------------------------------------------------------
    -
    8068 
    -
    8069 static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = {
    -
    8070  // -5:45:23 - LMT 1883 Nov 18 18:00u
    -
    8071  {
    -
    8072  nullptr /*zonePolicy*/,
    -
    8073  "LMT" /*format*/,
    -
    8074  -1382 /*offsetCode (-20723/15)*/,
    -
    8075  7 /*offsetRemainder (-20723%15)*/,
    -
    8076  0 /*deltaMinutes*/,
    -
    8077  1883 /*untilYear*/,
    -
    8078  11 /*untilMonth*/,
    -
    8079  18 /*untilDay*/,
    -
    8080  4320 /*untilTimeCode (64800/15)*/,
    -
    8081  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    8082  },
    -
    8083  // -6:00 US C%sT 1951
    -
    8084  {
    -
    8085  &kZonePolicyUS /*zonePolicy*/,
    -
    8086  "C%T" /*format*/,
    -
    8087  -1440 /*offsetCode (-21600/15)*/,
    -
    8088  0 /*offsetRemainder (-21600%15)*/,
    -
    8089  0 /*deltaMinutes*/,
    -
    8090  1951 /*untilYear*/,
    -
    8091  1 /*untilMonth*/,
    -
    8092  1 /*untilDay*/,
    -
    8093  0 /*untilTimeCode (0/15)*/,
    -
    8094  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8095  },
    -
    8096  // -6:00 Marengo C%sT 1961 Apr 30 2:00
    -
    8097  {
    -
    8098  &kZonePolicyMarengo /*zonePolicy*/,
    -
    8099  "C%T" /*format*/,
    -
    8100  -1440 /*offsetCode (-21600/15)*/,
    -
    8101  0 /*offsetRemainder (-21600%15)*/,
    -
    8102  0 /*deltaMinutes*/,
    -
    8103  1961 /*untilYear*/,
    -
    8104  4 /*untilMonth*/,
    -
    8105  30 /*untilDay*/,
    -
    8106  480 /*untilTimeCode (7200/15)*/,
    -
    8107  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8108  },
    -
    8109  // -5:00 - EST 1969
    -
    8110  {
    -
    8111  nullptr /*zonePolicy*/,
    -
    8112  "EST" /*format*/,
    -
    8113  -1200 /*offsetCode (-18000/15)*/,
    -
    8114  0 /*offsetRemainder (-18000%15)*/,
    -
    8115  0 /*deltaMinutes*/,
    -
    8116  1969 /*untilYear*/,
    -
    8117  1 /*untilMonth*/,
    -
    8118  1 /*untilDay*/,
    -
    8119  0 /*untilTimeCode (0/15)*/,
    -
    8120  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8121  },
    -
    8122  // -5:00 US E%sT 1974 Jan 6 2:00
    -
    8123  {
    -
    8124  &kZonePolicyUS /*zonePolicy*/,
    -
    8125  "E%T" /*format*/,
    -
    8126  -1200 /*offsetCode (-18000/15)*/,
    -
    8127  0 /*offsetRemainder (-18000%15)*/,
    -
    8128  0 /*deltaMinutes*/,
    -
    8129  1974 /*untilYear*/,
    -
    8130  1 /*untilMonth*/,
    -
    8131  6 /*untilDay*/,
    -
    8132  480 /*untilTimeCode (7200/15)*/,
    -
    8133  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8134  },
    -
    8135  // -6:00 1:00 CDT 1974 Oct 27 2:00
    -
    8136  {
    -
    8137  nullptr /*zonePolicy*/,
    -
    8138  "CDT" /*format*/,
    -
    8139  -1440 /*offsetCode (-21600/15)*/,
    -
    8140  0 /*offsetRemainder (-21600%15)*/,
    -
    8141  60 /*deltaMinutes*/,
    -
    8142  1974 /*untilYear*/,
    -
    8143  10 /*untilMonth*/,
    -
    8144  27 /*untilDay*/,
    -
    8145  480 /*untilTimeCode (7200/15)*/,
    -
    8146  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8147  },
    -
    8148  // -5:00 US E%sT 1976
    -
    8149  {
    -
    8150  &kZonePolicyUS /*zonePolicy*/,
    -
    8151  "E%T" /*format*/,
    -
    8152  -1200 /*offsetCode (-18000/15)*/,
    -
    8153  0 /*offsetRemainder (-18000%15)*/,
    -
    8154  0 /*deltaMinutes*/,
    -
    8155  1976 /*untilYear*/,
    -
    8156  1 /*untilMonth*/,
    -
    8157  1 /*untilDay*/,
    -
    8158  0 /*untilTimeCode (0/15)*/,
    -
    8159  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8160  },
    -
    8161  // -5:00 - EST 2006
    -
    8162  {
    -
    8163  nullptr /*zonePolicy*/,
    -
    8164  "EST" /*format*/,
    -
    8165  -1200 /*offsetCode (-18000/15)*/,
    -
    8166  0 /*offsetRemainder (-18000%15)*/,
    -
    8167  0 /*deltaMinutes*/,
    -
    8168  2006 /*untilYear*/,
    -
    8169  1 /*untilMonth*/,
    -
    8170  1 /*untilDay*/,
    -
    8171  0 /*untilTimeCode (0/15)*/,
    -
    8172  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8173  },
    -
    8174  // -5:00 US E%sT
    -
    8175  {
    -
    8176  &kZonePolicyUS /*zonePolicy*/,
    -
    8177  "E%T" /*format*/,
    -
    8178  -1200 /*offsetCode (-18000/15)*/,
    -
    8179  0 /*offsetRemainder (-18000%15)*/,
    -
    8180  0 /*deltaMinutes*/,
    -
    8181  32767 /*untilYear*/,
    -
    8182  1 /*untilMonth*/,
    -
    8183  1 /*untilDay*/,
    -
    8184  0 /*untilTimeCode (0/15)*/,
    -
    8185  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8186  },
    -
    8187 
    -
    8188 };
    -
    8189 
    -
    8190 static const char kZoneNameAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Marengo";
    -
    8191 
    -
    8192 const complete::Info::ZoneInfo kZoneAmerica_Indiana_Marengo ACE_TIME_PROGMEM = {
    -
    8193  kZoneNameAmerica_Indiana_Marengo /*name*/,
    -
    8194  0x2feeee72 /*zoneId*/,
    -
    8195  &kZoneContext /*zoneContext*/,
    -
    8196  9 /*numEras*/,
    -
    8197  kZoneEraAmerica_Indiana_Marengo /*eras*/,
    -
    8198  nullptr /*targetInfo*/,
    -
    8199 };
    -
    8200 
    -
    8201 //---------------------------------------------------------------------------
    -
    8202 // Zone name: America/Indiana/Petersburg
    -
    8203 // Eras: 8
    -
    8204 //---------------------------------------------------------------------------
    -
    8205 
    -
    8206 static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Petersburg[] ACE_TIME_PROGMEM = {
    -
    8207  // -5:49:07 - LMT 1883 Nov 18 18:00u
    -
    8208  {
    -
    8209  nullptr /*zonePolicy*/,
    -
    8210  "LMT" /*format*/,
    -
    8211  -1397 /*offsetCode (-20947/15)*/,
    -
    8212  8 /*offsetRemainder (-20947%15)*/,
    -
    8213  0 /*deltaMinutes*/,
    -
    8214  1883 /*untilYear*/,
    -
    8215  11 /*untilMonth*/,
    -
    8216  18 /*untilDay*/,
    -
    8217  4320 /*untilTimeCode (64800/15)*/,
    -
    8218  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    8219  },
    -
    8220  // -6:00 US C%sT 1955
    -
    8221  {
    -
    8222  &kZonePolicyUS /*zonePolicy*/,
    -
    8223  "C%T" /*format*/,
    -
    8224  -1440 /*offsetCode (-21600/15)*/,
    -
    8225  0 /*offsetRemainder (-21600%15)*/,
    -
    8226  0 /*deltaMinutes*/,
    -
    8227  1955 /*untilYear*/,
    -
    8228  1 /*untilMonth*/,
    -
    8229  1 /*untilDay*/,
    -
    8230  0 /*untilTimeCode (0/15)*/,
    -
    8231  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8232  },
    -
    8233  // -6:00 Pike C%sT 1965 Apr 25 2:00
    -
    8234  {
    -
    8235  &kZonePolicyPike /*zonePolicy*/,
    -
    8236  "C%T" /*format*/,
    -
    8237  -1440 /*offsetCode (-21600/15)*/,
    -
    8238  0 /*offsetRemainder (-21600%15)*/,
    -
    8239  0 /*deltaMinutes*/,
    -
    8240  1965 /*untilYear*/,
    -
    8241  4 /*untilMonth*/,
    -
    8242  25 /*untilDay*/,
    -
    8243  480 /*untilTimeCode (7200/15)*/,
    -
    8244  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8245  },
    -
    8246  // -5:00 - EST 1966 Oct 30 2:00
    -
    8247  {
    -
    8248  nullptr /*zonePolicy*/,
    -
    8249  "EST" /*format*/,
    -
    8250  -1200 /*offsetCode (-18000/15)*/,
    -
    8251  0 /*offsetRemainder (-18000%15)*/,
    -
    8252  0 /*deltaMinutes*/,
    -
    8253  1966 /*untilYear*/,
    -
    8254  10 /*untilMonth*/,
    -
    8255  30 /*untilDay*/,
    -
    8256  480 /*untilTimeCode (7200/15)*/,
    -
    8257  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8258  },
    -
    8259  // -6:00 US C%sT 1977 Oct 30 2:00
    -
    8260  {
    -
    8261  &kZonePolicyUS /*zonePolicy*/,
    -
    8262  "C%T" /*format*/,
    -
    8263  -1440 /*offsetCode (-21600/15)*/,
    -
    8264  0 /*offsetRemainder (-21600%15)*/,
    -
    8265  0 /*deltaMinutes*/,
    -
    8266  1977 /*untilYear*/,
    -
    8267  10 /*untilMonth*/,
    -
    8268  30 /*untilDay*/,
    -
    8269  480 /*untilTimeCode (7200/15)*/,
    -
    8270  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8271  },
    -
    8272  // -5:00 - EST 2006 Apr 2 2:00
    -
    8273  {
    -
    8274  nullptr /*zonePolicy*/,
    -
    8275  "EST" /*format*/,
    -
    8276  -1200 /*offsetCode (-18000/15)*/,
    -
    8277  0 /*offsetRemainder (-18000%15)*/,
    -
    8278  0 /*deltaMinutes*/,
    -
    8279  2006 /*untilYear*/,
    -
    8280  4 /*untilMonth*/,
    -
    8281  2 /*untilDay*/,
    -
    8282  480 /*untilTimeCode (7200/15)*/,
    -
    8283  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8284  },
    -
    8285  // -6:00 US C%sT 2007 Nov 4 2:00
    -
    8286  {
    -
    8287  &kZonePolicyUS /*zonePolicy*/,
    -
    8288  "C%T" /*format*/,
    -
    8289  -1440 /*offsetCode (-21600/15)*/,
    -
    8290  0 /*offsetRemainder (-21600%15)*/,
    -
    8291  0 /*deltaMinutes*/,
    -
    8292  2007 /*untilYear*/,
    -
    8293  11 /*untilMonth*/,
    -
    8294  4 /*untilDay*/,
    -
    8295  480 /*untilTimeCode (7200/15)*/,
    -
    8296  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8297  },
    -
    8298  // -5:00 US E%sT
    -
    8299  {
    -
    8300  &kZonePolicyUS /*zonePolicy*/,
    -
    8301  "E%T" /*format*/,
    -
    8302  -1200 /*offsetCode (-18000/15)*/,
    -
    8303  0 /*offsetRemainder (-18000%15)*/,
    -
    8304  0 /*deltaMinutes*/,
    -
    8305  32767 /*untilYear*/,
    -
    8306  1 /*untilMonth*/,
    -
    8307  1 /*untilDay*/,
    -
    8308  0 /*untilTimeCode (0/15)*/,
    -
    8309  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8310  },
    -
    8311 
    -
    8312 };
    -
    8313 
    -
    8314 static const char kZoneNameAmerica_Indiana_Petersburg[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Petersburg";
    -
    8315 
    -
    8316 const complete::Info::ZoneInfo kZoneAmerica_Indiana_Petersburg ACE_TIME_PROGMEM = {
    -
    8317  kZoneNameAmerica_Indiana_Petersburg /*name*/,
    -
    8318  0x94ac7acc /*zoneId*/,
    -
    8319  &kZoneContext /*zoneContext*/,
    -
    8320  8 /*numEras*/,
    -
    8321  kZoneEraAmerica_Indiana_Petersburg /*eras*/,
    -
    8322  nullptr /*targetInfo*/,
    -
    8323 };
    -
    8324 
    -
    8325 //---------------------------------------------------------------------------
    -
    8326 // Zone name: America/Indiana/Tell_City
    -
    8327 // Eras: 8
    -
    8328 //---------------------------------------------------------------------------
    -
    8329 
    -
    8330 static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Tell_City[] ACE_TIME_PROGMEM = {
    -
    8331  // -5:47:03 - LMT 1883 Nov 18 18:00u
    -
    8332  {
    -
    8333  nullptr /*zonePolicy*/,
    -
    8334  "LMT" /*format*/,
    -
    8335  -1389 /*offsetCode (-20823/15)*/,
    -
    8336  12 /*offsetRemainder (-20823%15)*/,
    -
    8337  0 /*deltaMinutes*/,
    -
    8338  1883 /*untilYear*/,
    -
    8339  11 /*untilMonth*/,
    -
    8340  18 /*untilDay*/,
    -
    8341  4320 /*untilTimeCode (64800/15)*/,
    -
    8342  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    8343  },
    -
    8344  // -6:00 US C%sT 1946
    -
    8345  {
    -
    8346  &kZonePolicyUS /*zonePolicy*/,
    -
    8347  "C%T" /*format*/,
    -
    8348  -1440 /*offsetCode (-21600/15)*/,
    -
    8349  0 /*offsetRemainder (-21600%15)*/,
    -
    8350  0 /*deltaMinutes*/,
    -
    8351  1946 /*untilYear*/,
    -
    8352  1 /*untilMonth*/,
    -
    8353  1 /*untilDay*/,
    -
    8354  0 /*untilTimeCode (0/15)*/,
    -
    8355  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8356  },
    -
    8357  // -6:00 Perry C%sT 1964 Apr 26 2:00
    -
    8358  {
    -
    8359  &kZonePolicyPerry /*zonePolicy*/,
    -
    8360  "C%T" /*format*/,
    -
    8361  -1440 /*offsetCode (-21600/15)*/,
    -
    8362  0 /*offsetRemainder (-21600%15)*/,
    -
    8363  0 /*deltaMinutes*/,
    -
    8364  1964 /*untilYear*/,
    -
    8365  4 /*untilMonth*/,
    -
    8366  26 /*untilDay*/,
    -
    8367  480 /*untilTimeCode (7200/15)*/,
    -
    8368  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8369  },
    -
    8370  // -5:00 - EST 1967 Oct 29 2:00
    -
    8371  {
    -
    8372  nullptr /*zonePolicy*/,
    -
    8373  "EST" /*format*/,
    -
    8374  -1200 /*offsetCode (-18000/15)*/,
    -
    8375  0 /*offsetRemainder (-18000%15)*/,
    -
    8376  0 /*deltaMinutes*/,
    -
    8377  1967 /*untilYear*/,
    -
    8378  10 /*untilMonth*/,
    -
    8379  29 /*untilDay*/,
    -
    8380  480 /*untilTimeCode (7200/15)*/,
    -
    8381  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8382  },
    -
    8383  // -6:00 US C%sT 1969 Apr 27 2:00
    -
    8384  {
    -
    8385  &kZonePolicyUS /*zonePolicy*/,
    -
    8386  "C%T" /*format*/,
    -
    8387  -1440 /*offsetCode (-21600/15)*/,
    -
    8388  0 /*offsetRemainder (-21600%15)*/,
    -
    8389  0 /*deltaMinutes*/,
    -
    8390  1969 /*untilYear*/,
    -
    8391  4 /*untilMonth*/,
    -
    8392  27 /*untilDay*/,
    -
    8393  480 /*untilTimeCode (7200/15)*/,
    -
    8394  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8395  },
    -
    8396  // -5:00 US E%sT 1971
    -
    8397  {
    -
    8398  &kZonePolicyUS /*zonePolicy*/,
    -
    8399  "E%T" /*format*/,
    -
    8400  -1200 /*offsetCode (-18000/15)*/,
    -
    8401  0 /*offsetRemainder (-18000%15)*/,
    -
    8402  0 /*deltaMinutes*/,
    -
    8403  1971 /*untilYear*/,
    -
    8404  1 /*untilMonth*/,
    -
    8405  1 /*untilDay*/,
    -
    8406  0 /*untilTimeCode (0/15)*/,
    -
    8407  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8408  },
    -
    8409  // -5:00 - EST 2006 Apr 2 2:00
    -
    8410  {
    -
    8411  nullptr /*zonePolicy*/,
    -
    8412  "EST" /*format*/,
    -
    8413  -1200 /*offsetCode (-18000/15)*/,
    -
    8414  0 /*offsetRemainder (-18000%15)*/,
    -
    8415  0 /*deltaMinutes*/,
    -
    8416  2006 /*untilYear*/,
    -
    8417  4 /*untilMonth*/,
    -
    8418  2 /*untilDay*/,
    -
    8419  480 /*untilTimeCode (7200/15)*/,
    -
    8420  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8421  },
    -
    8422  // -6:00 US C%sT
    -
    8423  {
    -
    8424  &kZonePolicyUS /*zonePolicy*/,
    -
    8425  "C%T" /*format*/,
    -
    8426  -1440 /*offsetCode (-21600/15)*/,
    -
    8427  0 /*offsetRemainder (-21600%15)*/,
    -
    8428  0 /*deltaMinutes*/,
    -
    8429  32767 /*untilYear*/,
    -
    8430  1 /*untilMonth*/,
    -
    8431  1 /*untilDay*/,
    -
    8432  0 /*untilTimeCode (0/15)*/,
    -
    8433  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8434  },
    -
    8435 
    -
    8436 };
    -
    8437 
    -
    8438 static const char kZoneNameAmerica_Indiana_Tell_City[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Tell_City";
    -
    8439 
    -
    8440 const complete::Info::ZoneInfo kZoneAmerica_Indiana_Tell_City ACE_TIME_PROGMEM = {
    -
    8441  kZoneNameAmerica_Indiana_Tell_City /*name*/,
    -
    8442  0x09263612 /*zoneId*/,
    -
    8443  &kZoneContext /*zoneContext*/,
    -
    8444  8 /*numEras*/,
    -
    8445  kZoneEraAmerica_Indiana_Tell_City /*eras*/,
    -
    8446  nullptr /*targetInfo*/,
    -
    8447 };
    -
    8448 
    -
    8449 //---------------------------------------------------------------------------
    -
    8450 // Zone name: America/Indiana/Vevay
    -
    8451 // Eras: 6
    -
    8452 //---------------------------------------------------------------------------
    -
    8453 
    -
    8454 static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = {
    -
    8455  // -5:40:16 - LMT 1883 Nov 18 18:00u
    -
    8456  {
    -
    8457  nullptr /*zonePolicy*/,
    -
    8458  "LMT" /*format*/,
    -
    8459  -1362 /*offsetCode (-20416/15)*/,
    -
    8460  14 /*offsetRemainder (-20416%15)*/,
    -
    8461  0 /*deltaMinutes*/,
    -
    8462  1883 /*untilYear*/,
    -
    8463  11 /*untilMonth*/,
    -
    8464  18 /*untilDay*/,
    -
    8465  4320 /*untilTimeCode (64800/15)*/,
    -
    8466  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    8467  },
    -
    8468  // -6:00 US C%sT 1954 Apr 25 2:00
    -
    8469  {
    -
    8470  &kZonePolicyUS /*zonePolicy*/,
    -
    8471  "C%T" /*format*/,
    -
    8472  -1440 /*offsetCode (-21600/15)*/,
    -
    8473  0 /*offsetRemainder (-21600%15)*/,
    -
    8474  0 /*deltaMinutes*/,
    -
    8475  1954 /*untilYear*/,
    -
    8476  4 /*untilMonth*/,
    -
    8477  25 /*untilDay*/,
    -
    8478  480 /*untilTimeCode (7200/15)*/,
    -
    8479  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8480  },
    -
    8481  // -5:00 - EST 1969
    -
    8482  {
    -
    8483  nullptr /*zonePolicy*/,
    -
    8484  "EST" /*format*/,
    -
    8485  -1200 /*offsetCode (-18000/15)*/,
    -
    8486  0 /*offsetRemainder (-18000%15)*/,
    -
    8487  0 /*deltaMinutes*/,
    -
    8488  1969 /*untilYear*/,
    -
    8489  1 /*untilMonth*/,
    -
    8490  1 /*untilDay*/,
    -
    8491  0 /*untilTimeCode (0/15)*/,
    -
    8492  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8493  },
    -
    8494  // -5:00 US E%sT 1973
    -
    8495  {
    -
    8496  &kZonePolicyUS /*zonePolicy*/,
    -
    8497  "E%T" /*format*/,
    -
    8498  -1200 /*offsetCode (-18000/15)*/,
    -
    8499  0 /*offsetRemainder (-18000%15)*/,
    -
    8500  0 /*deltaMinutes*/,
    -
    8501  1973 /*untilYear*/,
    -
    8502  1 /*untilMonth*/,
    -
    8503  1 /*untilDay*/,
    -
    8504  0 /*untilTimeCode (0/15)*/,
    -
    8505  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8506  },
    -
    8507  // -5:00 - EST 2006
    -
    8508  {
    -
    8509  nullptr /*zonePolicy*/,
    -
    8510  "EST" /*format*/,
    -
    8511  -1200 /*offsetCode (-18000/15)*/,
    -
    8512  0 /*offsetRemainder (-18000%15)*/,
    -
    8513  0 /*deltaMinutes*/,
    -
    8514  2006 /*untilYear*/,
    -
    8515  1 /*untilMonth*/,
    -
    8516  1 /*untilDay*/,
    -
    8517  0 /*untilTimeCode (0/15)*/,
    -
    8518  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8519  },
    -
    8520  // -5:00 US E%sT
    -
    8521  {
    -
    8522  &kZonePolicyUS /*zonePolicy*/,
    -
    8523  "E%T" /*format*/,
    -
    8524  -1200 /*offsetCode (-18000/15)*/,
    -
    8525  0 /*offsetRemainder (-18000%15)*/,
    -
    8526  0 /*deltaMinutes*/,
    -
    8527  32767 /*untilYear*/,
    -
    8528  1 /*untilMonth*/,
    -
    8529  1 /*untilDay*/,
    -
    8530  0 /*untilTimeCode (0/15)*/,
    -
    8531  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8532  },
    -
    8533 
    -
    8534 };
    -
    8535 
    -
    8536 static const char kZoneNameAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Vevay";
    -
    8537 
    -
    8538 const complete::Info::ZoneInfo kZoneAmerica_Indiana_Vevay ACE_TIME_PROGMEM = {
    -
    8539  kZoneNameAmerica_Indiana_Vevay /*name*/,
    -
    8540  0x10aca054 /*zoneId*/,
    -
    8541  &kZoneContext /*zoneContext*/,
    -
    8542  6 /*numEras*/,
    -
    8543  kZoneEraAmerica_Indiana_Vevay /*eras*/,
    -
    8544  nullptr /*targetInfo*/,
    -
    8545 };
    -
    8546 
    -
    8547 //---------------------------------------------------------------------------
    -
    8548 // Zone name: America/Indiana/Vincennes
    -
    8549 // Eras: 8
    -
    8550 //---------------------------------------------------------------------------
    -
    8551 
    -
    8552 static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Vincennes[] ACE_TIME_PROGMEM = {
    -
    8553  // -5:50:07 - LMT 1883 Nov 18 18:00u
    -
    8554  {
    -
    8555  nullptr /*zonePolicy*/,
    -
    8556  "LMT" /*format*/,
    -
    8557  -1401 /*offsetCode (-21007/15)*/,
    -
    8558  8 /*offsetRemainder (-21007%15)*/,
    -
    8559  0 /*deltaMinutes*/,
    -
    8560  1883 /*untilYear*/,
    -
    8561  11 /*untilMonth*/,
    -
    8562  18 /*untilDay*/,
    -
    8563  4320 /*untilTimeCode (64800/15)*/,
    -
    8564  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    8565  },
    -
    8566  // -6:00 US C%sT 1946
    -
    8567  {
    -
    8568  &kZonePolicyUS /*zonePolicy*/,
    -
    8569  "C%T" /*format*/,
    -
    8570  -1440 /*offsetCode (-21600/15)*/,
    -
    8571  0 /*offsetRemainder (-21600%15)*/,
    -
    8572  0 /*deltaMinutes*/,
    -
    8573  1946 /*untilYear*/,
    -
    8574  1 /*untilMonth*/,
    -
    8575  1 /*untilDay*/,
    -
    8576  0 /*untilTimeCode (0/15)*/,
    -
    8577  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8578  },
    -
    8579  // -6:00 Vincennes C%sT 1964 Apr 26 2:00
    -
    8580  {
    -
    8581  &kZonePolicyVincennes /*zonePolicy*/,
    -
    8582  "C%T" /*format*/,
    -
    8583  -1440 /*offsetCode (-21600/15)*/,
    -
    8584  0 /*offsetRemainder (-21600%15)*/,
    -
    8585  0 /*deltaMinutes*/,
    -
    8586  1964 /*untilYear*/,
    -
    8587  4 /*untilMonth*/,
    -
    8588  26 /*untilDay*/,
    -
    8589  480 /*untilTimeCode (7200/15)*/,
    -
    8590  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8591  },
    -
    8592  // -5:00 - EST 1969
    -
    8593  {
    -
    8594  nullptr /*zonePolicy*/,
    -
    8595  "EST" /*format*/,
    -
    8596  -1200 /*offsetCode (-18000/15)*/,
    -
    8597  0 /*offsetRemainder (-18000%15)*/,
    -
    8598  0 /*deltaMinutes*/,
    -
    8599  1969 /*untilYear*/,
    -
    8600  1 /*untilMonth*/,
    -
    8601  1 /*untilDay*/,
    -
    8602  0 /*untilTimeCode (0/15)*/,
    -
    8603  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8604  },
    -
    8605  // -5:00 US E%sT 1971
    -
    8606  {
    -
    8607  &kZonePolicyUS /*zonePolicy*/,
    -
    8608  "E%T" /*format*/,
    -
    8609  -1200 /*offsetCode (-18000/15)*/,
    -
    8610  0 /*offsetRemainder (-18000%15)*/,
    -
    8611  0 /*deltaMinutes*/,
    -
    8612  1971 /*untilYear*/,
    -
    8613  1 /*untilMonth*/,
    -
    8614  1 /*untilDay*/,
    -
    8615  0 /*untilTimeCode (0/15)*/,
    -
    8616  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8617  },
    -
    8618  // -5:00 - EST 2006 Apr 2 2:00
    -
    8619  {
    -
    8620  nullptr /*zonePolicy*/,
    -
    8621  "EST" /*format*/,
    -
    8622  -1200 /*offsetCode (-18000/15)*/,
    -
    8623  0 /*offsetRemainder (-18000%15)*/,
    -
    8624  0 /*deltaMinutes*/,
    -
    8625  2006 /*untilYear*/,
    -
    8626  4 /*untilMonth*/,
    -
    8627  2 /*untilDay*/,
    -
    8628  480 /*untilTimeCode (7200/15)*/,
    -
    8629  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8630  },
    -
    8631  // -6:00 US C%sT 2007 Nov 4 2:00
    -
    8632  {
    -
    8633  &kZonePolicyUS /*zonePolicy*/,
    -
    8634  "C%T" /*format*/,
    -
    8635  -1440 /*offsetCode (-21600/15)*/,
    -
    8636  0 /*offsetRemainder (-21600%15)*/,
    -
    8637  0 /*deltaMinutes*/,
    -
    8638  2007 /*untilYear*/,
    -
    8639  11 /*untilMonth*/,
    -
    8640  4 /*untilDay*/,
    -
    8641  480 /*untilTimeCode (7200/15)*/,
    -
    8642  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8643  },
    -
    8644  // -5:00 US E%sT
    -
    8645  {
    -
    8646  &kZonePolicyUS /*zonePolicy*/,
    -
    8647  "E%T" /*format*/,
    -
    8648  -1200 /*offsetCode (-18000/15)*/,
    -
    8649  0 /*offsetRemainder (-18000%15)*/,
    -
    8650  0 /*deltaMinutes*/,
    -
    8651  32767 /*untilYear*/,
    -
    8652  1 /*untilMonth*/,
    -
    8653  1 /*untilDay*/,
    -
    8654  0 /*untilTimeCode (0/15)*/,
    -
    8655  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8656  },
    -
    8657 
    -
    8658 };
    -
    8659 
    -
    8660 static const char kZoneNameAmerica_Indiana_Vincennes[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Vincennes";
    -
    8661 
    -
    8662 const complete::Info::ZoneInfo kZoneAmerica_Indiana_Vincennes ACE_TIME_PROGMEM = {
    -
    8663  kZoneNameAmerica_Indiana_Vincennes /*name*/,
    -
    8664  0x28a0b212 /*zoneId*/,
    -
    8665  &kZoneContext /*zoneContext*/,
    -
    8666  8 /*numEras*/,
    -
    8667  kZoneEraAmerica_Indiana_Vincennes /*eras*/,
    -
    8668  nullptr /*targetInfo*/,
    -
    8669 };
    -
    8670 
    -
    8671 //---------------------------------------------------------------------------
    -
    8672 // Zone name: America/Indiana/Winamac
    -
    8673 // Eras: 8
    -
    8674 //---------------------------------------------------------------------------
    -
    8675 
    -
    8676 static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Winamac[] ACE_TIME_PROGMEM = {
    -
    8677  // -5:46:25 - LMT 1883 Nov 18 18:00u
    -
    8678  {
    -
    8679  nullptr /*zonePolicy*/,
    -
    8680  "LMT" /*format*/,
    -
    8681  -1386 /*offsetCode (-20785/15)*/,
    -
    8682  5 /*offsetRemainder (-20785%15)*/,
    -
    8683  0 /*deltaMinutes*/,
    -
    8684  1883 /*untilYear*/,
    -
    8685  11 /*untilMonth*/,
    -
    8686  18 /*untilDay*/,
    -
    8687  4320 /*untilTimeCode (64800/15)*/,
    -
    8688  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    8689  },
    -
    8690  // -6:00 US C%sT 1946
    -
    8691  {
    -
    8692  &kZonePolicyUS /*zonePolicy*/,
    -
    8693  "C%T" /*format*/,
    -
    8694  -1440 /*offsetCode (-21600/15)*/,
    -
    8695  0 /*offsetRemainder (-21600%15)*/,
    -
    8696  0 /*deltaMinutes*/,
    -
    8697  1946 /*untilYear*/,
    -
    8698  1 /*untilMonth*/,
    -
    8699  1 /*untilDay*/,
    -
    8700  0 /*untilTimeCode (0/15)*/,
    -
    8701  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8702  },
    -
    8703  // -6:00 Pulaski C%sT 1961 Apr 30 2:00
    -
    8704  {
    -
    8705  &kZonePolicyPulaski /*zonePolicy*/,
    -
    8706  "C%T" /*format*/,
    -
    8707  -1440 /*offsetCode (-21600/15)*/,
    -
    8708  0 /*offsetRemainder (-21600%15)*/,
    -
    8709  0 /*deltaMinutes*/,
    -
    8710  1961 /*untilYear*/,
    -
    8711  4 /*untilMonth*/,
    -
    8712  30 /*untilDay*/,
    -
    8713  480 /*untilTimeCode (7200/15)*/,
    -
    8714  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8715  },
    -
    8716  // -5:00 - EST 1969
    -
    8717  {
    -
    8718  nullptr /*zonePolicy*/,
    -
    8719  "EST" /*format*/,
    -
    8720  -1200 /*offsetCode (-18000/15)*/,
    -
    8721  0 /*offsetRemainder (-18000%15)*/,
    -
    8722  0 /*deltaMinutes*/,
    -
    8723  1969 /*untilYear*/,
    -
    8724  1 /*untilMonth*/,
    -
    8725  1 /*untilDay*/,
    -
    8726  0 /*untilTimeCode (0/15)*/,
    -
    8727  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8728  },
    -
    8729  // -5:00 US E%sT 1971
    -
    8730  {
    -
    8731  &kZonePolicyUS /*zonePolicy*/,
    -
    8732  "E%T" /*format*/,
    -
    8733  -1200 /*offsetCode (-18000/15)*/,
    -
    8734  0 /*offsetRemainder (-18000%15)*/,
    -
    8735  0 /*deltaMinutes*/,
    -
    8736  1971 /*untilYear*/,
    -
    8737  1 /*untilMonth*/,
    -
    8738  1 /*untilDay*/,
    -
    8739  0 /*untilTimeCode (0/15)*/,
    -
    8740  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8741  },
    -
    8742  // -5:00 - EST 2006 Apr 2 2:00
    -
    8743  {
    -
    8744  nullptr /*zonePolicy*/,
    -
    8745  "EST" /*format*/,
    -
    8746  -1200 /*offsetCode (-18000/15)*/,
    -
    8747  0 /*offsetRemainder (-18000%15)*/,
    -
    8748  0 /*deltaMinutes*/,
    -
    8749  2006 /*untilYear*/,
    -
    8750  4 /*untilMonth*/,
    -
    8751  2 /*untilDay*/,
    -
    8752  480 /*untilTimeCode (7200/15)*/,
    -
    8753  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8754  },
    -
    8755  // -6:00 US C%sT 2007 Mar 11 2:00
    -
    8756  {
    -
    8757  &kZonePolicyUS /*zonePolicy*/,
    -
    8758  "C%T" /*format*/,
    -
    8759  -1440 /*offsetCode (-21600/15)*/,
    -
    8760  0 /*offsetRemainder (-21600%15)*/,
    -
    8761  0 /*deltaMinutes*/,
    -
    8762  2007 /*untilYear*/,
    -
    8763  3 /*untilMonth*/,
    -
    8764  11 /*untilDay*/,
    -
    8765  480 /*untilTimeCode (7200/15)*/,
    -
    8766  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8767  },
    -
    8768  // -5:00 US E%sT
    -
    8769  {
    -
    8770  &kZonePolicyUS /*zonePolicy*/,
    -
    8771  "E%T" /*format*/,
    -
    8772  -1200 /*offsetCode (-18000/15)*/,
    -
    8773  0 /*offsetRemainder (-18000%15)*/,
    -
    8774  0 /*deltaMinutes*/,
    -
    8775  32767 /*untilYear*/,
    -
    8776  1 /*untilMonth*/,
    -
    8777  1 /*untilDay*/,
    -
    8778  0 /*untilTimeCode (0/15)*/,
    -
    8779  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8780  },
    -
    8781 
    -
    8782 };
    -
    8783 
    -
    8784 static const char kZoneNameAmerica_Indiana_Winamac[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Winamac";
    -
    8785 
    -
    8786 const complete::Info::ZoneInfo kZoneAmerica_Indiana_Winamac ACE_TIME_PROGMEM = {
    -
    8787  kZoneNameAmerica_Indiana_Winamac /*name*/,
    -
    8788  0x4413fa69 /*zoneId*/,
    -
    8789  &kZoneContext /*zoneContext*/,
    -
    8790  8 /*numEras*/,
    -
    8791  kZoneEraAmerica_Indiana_Winamac /*eras*/,
    -
    8792  nullptr /*targetInfo*/,
    -
    8793 };
    -
    8794 
    -
    8795 //---------------------------------------------------------------------------
    -
    8796 // Zone name: America/Inuvik
    -
    8797 // Eras: 4
    -
    8798 //---------------------------------------------------------------------------
    -
    8799 
    -
    8800 static const complete::Info::ZoneEra kZoneEraAmerica_Inuvik[] ACE_TIME_PROGMEM = {
    -
    8801  // 0 - -00 1953
    -
    8802  {
    -
    8803  nullptr /*zonePolicy*/,
    -
    8804  "-00" /*format*/,
    -
    8805  0 /*offsetCode (0/15)*/,
    -
    8806  0 /*offsetRemainder (0%15)*/,
    -
    8807  0 /*deltaMinutes*/,
    -
    8808  1953 /*untilYear*/,
    -
    8809  1 /*untilMonth*/,
    -
    8810  1 /*untilDay*/,
    -
    8811  0 /*untilTimeCode (0/15)*/,
    -
    8812  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8813  },
    -
    8814  // -8:00 NT_YK P%sT 1979 Apr lastSun 2:00
    -
    8815  {
    -
    8816  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    8817  "P%T" /*format*/,
    -
    8818  -1920 /*offsetCode (-28800/15)*/,
    -
    8819  0 /*offsetRemainder (-28800%15)*/,
    -
    8820  0 /*deltaMinutes*/,
    -
    8821  1979 /*untilYear*/,
    -
    8822  4 /*untilMonth*/,
    -
    8823  29 /*untilDay*/,
    -
    8824  480 /*untilTimeCode (7200/15)*/,
    -
    8825  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8826  },
    -
    8827  // -7:00 NT_YK M%sT 1980
    -
    8828  {
    -
    8829  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    8830  "M%T" /*format*/,
    -
    8831  -1680 /*offsetCode (-25200/15)*/,
    -
    8832  0 /*offsetRemainder (-25200%15)*/,
    -
    8833  0 /*deltaMinutes*/,
    -
    8834  1980 /*untilYear*/,
    -
    8835  1 /*untilMonth*/,
    -
    8836  1 /*untilDay*/,
    -
    8837  0 /*untilTimeCode (0/15)*/,
    -
    8838  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8839  },
    -
    8840  // -7:00 Canada M%sT
    -
    8841  {
    -
    8842  &kZonePolicyCanada /*zonePolicy*/,
    -
    8843  "M%T" /*format*/,
    -
    8844  -1680 /*offsetCode (-25200/15)*/,
    -
    8845  0 /*offsetRemainder (-25200%15)*/,
    -
    8846  0 /*deltaMinutes*/,
    -
    8847  32767 /*untilYear*/,
    -
    8848  1 /*untilMonth*/,
    -
    8849  1 /*untilDay*/,
    -
    8850  0 /*untilTimeCode (0/15)*/,
    -
    8851  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8852  },
    -
    8853 
    -
    8854 };
    -
    8855 
    -
    8856 static const char kZoneNameAmerica_Inuvik[] ACE_TIME_PROGMEM = "\x02" "Inuvik";
    -
    8857 
    -
    8858 const complete::Info::ZoneInfo kZoneAmerica_Inuvik ACE_TIME_PROGMEM = {
    -
    8859  kZoneNameAmerica_Inuvik /*name*/,
    -
    8860  0xa42189fc /*zoneId*/,
    -
    8861  &kZoneContext /*zoneContext*/,
    -
    8862  4 /*numEras*/,
    -
    8863  kZoneEraAmerica_Inuvik /*eras*/,
    -
    8864  nullptr /*targetInfo*/,
    -
    8865 };
    -
    8866 
    -
    8867 //---------------------------------------------------------------------------
    -
    8868 // Zone name: America/Iqaluit
    -
    8869 // Eras: 4
    -
    8870 //---------------------------------------------------------------------------
    -
    8871 
    -
    8872 static const complete::Info::ZoneEra kZoneEraAmerica_Iqaluit[] ACE_TIME_PROGMEM = {
    -
    8873  // 0 - -00 1942 Aug
    -
    8874  {
    -
    8875  nullptr /*zonePolicy*/,
    -
    8876  "-00" /*format*/,
    -
    8877  0 /*offsetCode (0/15)*/,
    -
    8878  0 /*offsetRemainder (0%15)*/,
    -
    8879  0 /*deltaMinutes*/,
    -
    8880  1942 /*untilYear*/,
    -
    8881  8 /*untilMonth*/,
    -
    8882  1 /*untilDay*/,
    -
    8883  0 /*untilTimeCode (0/15)*/,
    -
    8884  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8885  },
    -
    8886  // -5:00 NT_YK E%sT 1999 Oct 31 2:00
    -
    8887  {
    -
    8888  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    8889  "E%T" /*format*/,
    -
    8890  -1200 /*offsetCode (-18000/15)*/,
    -
    8891  0 /*offsetRemainder (-18000%15)*/,
    -
    8892  0 /*deltaMinutes*/,
    -
    8893  1999 /*untilYear*/,
    -
    8894  10 /*untilMonth*/,
    -
    8895  31 /*untilDay*/,
    -
    8896  480 /*untilTimeCode (7200/15)*/,
    -
    8897  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8898  },
    -
    8899  // -6:00 Canada C%sT 2000 Oct 29 2:00
    -
    8900  {
    -
    8901  &kZonePolicyCanada /*zonePolicy*/,
    -
    8902  "C%T" /*format*/,
    -
    8903  -1440 /*offsetCode (-21600/15)*/,
    -
    8904  0 /*offsetRemainder (-21600%15)*/,
    -
    8905  0 /*deltaMinutes*/,
    -
    8906  2000 /*untilYear*/,
    -
    8907  10 /*untilMonth*/,
    -
    8908  29 /*untilDay*/,
    -
    8909  480 /*untilTimeCode (7200/15)*/,
    -
    8910  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8911  },
    -
    8912  // -5:00 Canada E%sT
    -
    8913  {
    -
    8914  &kZonePolicyCanada /*zonePolicy*/,
    -
    8915  "E%T" /*format*/,
    -
    8916  -1200 /*offsetCode (-18000/15)*/,
    -
    8917  0 /*offsetRemainder (-18000%15)*/,
    -
    8918  0 /*deltaMinutes*/,
    -
    8919  32767 /*untilYear*/,
    -
    8920  1 /*untilMonth*/,
    -
    8921  1 /*untilDay*/,
    -
    8922  0 /*untilTimeCode (0/15)*/,
    -
    8923  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8924  },
    -
    8925 
    -
    8926 };
    -
    8927 
    -
    8928 static const char kZoneNameAmerica_Iqaluit[] ACE_TIME_PROGMEM = "\x02" "Iqaluit";
    -
    8929 
    -
    8930 const complete::Info::ZoneInfo kZoneAmerica_Iqaluit ACE_TIME_PROGMEM = {
    -
    8931  kZoneNameAmerica_Iqaluit /*name*/,
    -
    8932  0x2de310bf /*zoneId*/,
    -
    8933  &kZoneContext /*zoneContext*/,
    -
    8934  4 /*numEras*/,
    -
    8935  kZoneEraAmerica_Iqaluit /*eras*/,
    -
    8936  nullptr /*targetInfo*/,
    -
    8937 };
    -
    8938 
    -
    8939 //---------------------------------------------------------------------------
    -
    8940 // Zone name: America/Jamaica
    -
    8941 // Eras: 5
    -
    8942 //---------------------------------------------------------------------------
    -
    8943 
    -
    8944 static const complete::Info::ZoneEra kZoneEraAmerica_Jamaica[] ACE_TIME_PROGMEM = {
    -
    8945  // -5:07:10 - LMT 1890
    -
    8946  {
    -
    8947  nullptr /*zonePolicy*/,
    -
    8948  "LMT" /*format*/,
    -
    8949  -1229 /*offsetCode (-18430/15)*/,
    -
    8950  5 /*offsetRemainder (-18430%15)*/,
    -
    8951  0 /*deltaMinutes*/,
    -
    8952  1890 /*untilYear*/,
    -
    8953  1 /*untilMonth*/,
    -
    8954  1 /*untilDay*/,
    -
    8955  0 /*untilTimeCode (0/15)*/,
    -
    8956  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8957  },
    -
    8958  // -5:07:10 - KMT 1912 Feb
    -
    8959  {
    -
    8960  nullptr /*zonePolicy*/,
    -
    8961  "KMT" /*format*/,
    -
    8962  -1229 /*offsetCode (-18430/15)*/,
    -
    8963  5 /*offsetRemainder (-18430%15)*/,
    -
    8964  0 /*deltaMinutes*/,
    -
    8965  1912 /*untilYear*/,
    -
    8966  2 /*untilMonth*/,
    -
    8967  1 /*untilDay*/,
    -
    8968  0 /*untilTimeCode (0/15)*/,
    -
    8969  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8970  },
    -
    8971  // -5:00 - EST 1974
    -
    8972  {
    -
    8973  nullptr /*zonePolicy*/,
    -
    8974  "EST" /*format*/,
    -
    8975  -1200 /*offsetCode (-18000/15)*/,
    -
    8976  0 /*offsetRemainder (-18000%15)*/,
    -
    8977  0 /*deltaMinutes*/,
    -
    8978  1974 /*untilYear*/,
    -
    8979  1 /*untilMonth*/,
    -
    8980  1 /*untilDay*/,
    -
    8981  0 /*untilTimeCode (0/15)*/,
    -
    8982  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8983  },
    -
    8984  // -5:00 US E%sT 1984
    -
    8985  {
    -
    8986  &kZonePolicyUS /*zonePolicy*/,
    -
    8987  "E%T" /*format*/,
    -
    8988  -1200 /*offsetCode (-18000/15)*/,
    -
    8989  0 /*offsetRemainder (-18000%15)*/,
    -
    8990  0 /*deltaMinutes*/,
    -
    8991  1984 /*untilYear*/,
    -
    8992  1 /*untilMonth*/,
    -
    8993  1 /*untilDay*/,
    -
    8994  0 /*untilTimeCode (0/15)*/,
    -
    8995  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8996  },
    -
    8997  // -5:00 - EST
    -
    8998  {
    -
    8999  nullptr /*zonePolicy*/,
    -
    9000  "EST" /*format*/,
    -
    9001  -1200 /*offsetCode (-18000/15)*/,
    -
    9002  0 /*offsetRemainder (-18000%15)*/,
    -
    9003  0 /*deltaMinutes*/,
    -
    9004  32767 /*untilYear*/,
    -
    9005  1 /*untilMonth*/,
    -
    9006  1 /*untilDay*/,
    -
    9007  0 /*untilTimeCode (0/15)*/,
    -
    9008  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9009  },
    -
    9010 
    -
    9011 };
    -
    9012 
    -
    9013 static const char kZoneNameAmerica_Jamaica[] ACE_TIME_PROGMEM = "\x02" "Jamaica";
    -
    9014 
    -
    9015 const complete::Info::ZoneInfo kZoneAmerica_Jamaica ACE_TIME_PROGMEM = {
    -
    9016  kZoneNameAmerica_Jamaica /*name*/,
    -
    9017  0x565dad6c /*zoneId*/,
    -
    9018  &kZoneContext /*zoneContext*/,
    -
    9019  5 /*numEras*/,
    -
    9020  kZoneEraAmerica_Jamaica /*eras*/,
    -
    9021  nullptr /*targetInfo*/,
    -
    9022 };
    -
    9023 
    -
    9024 //---------------------------------------------------------------------------
    -
    9025 // Zone name: America/Juneau
    -
    9026 // Eras: 10
    -
    9027 //---------------------------------------------------------------------------
    -
    9028 
    -
    9029 static const complete::Info::ZoneEra kZoneEraAmerica_Juneau[] ACE_TIME_PROGMEM = {
    -
    9030  // 15:02:19 - LMT 1867 Oct 19 15:33:32
    -
    9031  {
    -
    9032  nullptr /*zonePolicy*/,
    -
    9033  "LMT" /*format*/,
    -
    9034  3609 /*offsetCode (54139/15)*/,
    -
    9035  4 /*offsetRemainder (54139%15)*/,
    -
    9036  0 /*deltaMinutes*/,
    -
    9037  1867 /*untilYear*/,
    -
    9038  10 /*untilMonth*/,
    -
    9039  19 /*untilDay*/,
    -
    9040  3734 /*untilTimeCode (56012/15)*/,
    -
    9041  2 /*untilTimeModifier (kAtcSuffixW + seconds=2)*/,
    -
    9042  },
    -
    9043  // -8:57:41 - LMT 1900 Aug 20 12:00
    -
    9044  {
    -
    9045  nullptr /*zonePolicy*/,
    -
    9046  "LMT" /*format*/,
    -
    9047  -2151 /*offsetCode (-32261/15)*/,
    -
    9048  4 /*offsetRemainder (-32261%15)*/,
    -
    9049  0 /*deltaMinutes*/,
    -
    9050  1900 /*untilYear*/,
    -
    9051  8 /*untilMonth*/,
    -
    9052  20 /*untilDay*/,
    -
    9053  2880 /*untilTimeCode (43200/15)*/,
    -
    9054  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9055  },
    -
    9056  // -8:00 - PST 1942
    -
    9057  {
    -
    9058  nullptr /*zonePolicy*/,
    -
    9059  "PST" /*format*/,
    -
    9060  -1920 /*offsetCode (-28800/15)*/,
    -
    9061  0 /*offsetRemainder (-28800%15)*/,
    -
    9062  0 /*deltaMinutes*/,
    -
    9063  1942 /*untilYear*/,
    -
    9064  1 /*untilMonth*/,
    -
    9065  1 /*untilDay*/,
    -
    9066  0 /*untilTimeCode (0/15)*/,
    -
    9067  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9068  },
    -
    9069  // -8:00 US P%sT 1946
    -
    9070  {
    -
    9071  &kZonePolicyUS /*zonePolicy*/,
    -
    9072  "P%T" /*format*/,
    -
    9073  -1920 /*offsetCode (-28800/15)*/,
    -
    9074  0 /*offsetRemainder (-28800%15)*/,
    -
    9075  0 /*deltaMinutes*/,
    -
    9076  1946 /*untilYear*/,
    -
    9077  1 /*untilMonth*/,
    -
    9078  1 /*untilDay*/,
    -
    9079  0 /*untilTimeCode (0/15)*/,
    -
    9080  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9081  },
    -
    9082  // -8:00 - PST 1969
    -
    9083  {
    -
    9084  nullptr /*zonePolicy*/,
    -
    9085  "PST" /*format*/,
    -
    9086  -1920 /*offsetCode (-28800/15)*/,
    -
    9087  0 /*offsetRemainder (-28800%15)*/,
    -
    9088  0 /*deltaMinutes*/,
    -
    9089  1969 /*untilYear*/,
    -
    9090  1 /*untilMonth*/,
    -
    9091  1 /*untilDay*/,
    -
    9092  0 /*untilTimeCode (0/15)*/,
    -
    9093  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9094  },
    -
    9095  // -8:00 US P%sT 1980 Apr 27 2:00
    -
    9096  {
    -
    9097  &kZonePolicyUS /*zonePolicy*/,
    -
    9098  "P%T" /*format*/,
    -
    9099  -1920 /*offsetCode (-28800/15)*/,
    -
    9100  0 /*offsetRemainder (-28800%15)*/,
    -
    9101  0 /*deltaMinutes*/,
    -
    9102  1980 /*untilYear*/,
    -
    9103  4 /*untilMonth*/,
    -
    9104  27 /*untilDay*/,
    -
    9105  480 /*untilTimeCode (7200/15)*/,
    -
    9106  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9107  },
    -
    9108  // -9:00 US Y%sT 1980 Oct 26 2:00
    -
    9109  {
    -
    9110  &kZonePolicyUS /*zonePolicy*/,
    -
    9111  "Y%T" /*format*/,
    -
    9112  -2160 /*offsetCode (-32400/15)*/,
    -
    9113  0 /*offsetRemainder (-32400%15)*/,
    -
    9114  0 /*deltaMinutes*/,
    -
    9115  1980 /*untilYear*/,
    -
    9116  10 /*untilMonth*/,
    -
    9117  26 /*untilDay*/,
    -
    9118  480 /*untilTimeCode (7200/15)*/,
    -
    9119  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9120  },
    -
    9121  // -8:00 US P%sT 1983 Oct 30 2:00
    -
    9122  {
    -
    9123  &kZonePolicyUS /*zonePolicy*/,
    -
    9124  "P%T" /*format*/,
    -
    9125  -1920 /*offsetCode (-28800/15)*/,
    -
    9126  0 /*offsetRemainder (-28800%15)*/,
    -
    9127  0 /*deltaMinutes*/,
    -
    9128  1983 /*untilYear*/,
    -
    9129  10 /*untilMonth*/,
    -
    9130  30 /*untilDay*/,
    -
    9131  480 /*untilTimeCode (7200/15)*/,
    -
    9132  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9133  },
    -
    9134  // -9:00 US Y%sT 1983 Nov 30
    -
    9135  {
    -
    9136  &kZonePolicyUS /*zonePolicy*/,
    -
    9137  "Y%T" /*format*/,
    -
    9138  -2160 /*offsetCode (-32400/15)*/,
    -
    9139  0 /*offsetRemainder (-32400%15)*/,
    -
    9140  0 /*deltaMinutes*/,
    -
    9141  1983 /*untilYear*/,
    -
    9142  11 /*untilMonth*/,
    -
    9143  30 /*untilDay*/,
    -
    9144  0 /*untilTimeCode (0/15)*/,
    -
    9145  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9146  },
    -
    9147  // -9:00 US AK%sT
    -
    9148  {
    -
    9149  &kZonePolicyUS /*zonePolicy*/,
    -
    9150  "AK%T" /*format*/,
    -
    9151  -2160 /*offsetCode (-32400/15)*/,
    -
    9152  0 /*offsetRemainder (-32400%15)*/,
    -
    9153  0 /*deltaMinutes*/,
    -
    9154  32767 /*untilYear*/,
    -
    9155  1 /*untilMonth*/,
    -
    9156  1 /*untilDay*/,
    -
    9157  0 /*untilTimeCode (0/15)*/,
    -
    9158  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9159  },
    -
    9160 
    -
    9161 };
    -
    9162 
    -
    9163 static const char kZoneNameAmerica_Juneau[] ACE_TIME_PROGMEM = "\x02" "Juneau";
    -
    9164 
    -
    9165 const complete::Info::ZoneInfo kZoneAmerica_Juneau ACE_TIME_PROGMEM = {
    -
    9166  kZoneNameAmerica_Juneau /*name*/,
    -
    9167  0xa6f13e2e /*zoneId*/,
    -
    9168  &kZoneContext /*zoneContext*/,
    -
    9169  10 /*numEras*/,
    -
    9170  kZoneEraAmerica_Juneau /*eras*/,
    -
    9171  nullptr /*targetInfo*/,
    -
    9172 };
    -
    9173 
    -
    9174 //---------------------------------------------------------------------------
    -
    9175 // Zone name: America/Kentucky/Louisville
    -
    9176 // Eras: 9
    -
    9177 //---------------------------------------------------------------------------
    -
    9178 
    -
    9179 static const complete::Info::ZoneEra kZoneEraAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = {
    -
    9180  // -5:43:02 - LMT 1883 Nov 18 18:00u
    -
    9181  {
    -
    9182  nullptr /*zonePolicy*/,
    -
    9183  "LMT" /*format*/,
    -
    9184  -1373 /*offsetCode (-20582/15)*/,
    -
    9185  13 /*offsetRemainder (-20582%15)*/,
    -
    9186  0 /*deltaMinutes*/,
    -
    9187  1883 /*untilYear*/,
    -
    9188  11 /*untilMonth*/,
    -
    9189  18 /*untilDay*/,
    -
    9190  4320 /*untilTimeCode (64800/15)*/,
    -
    9191  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    9192  },
    -
    9193  // -6:00 US C%sT 1921
    -
    9194  {
    -
    9195  &kZonePolicyUS /*zonePolicy*/,
    -
    9196  "C%T" /*format*/,
    -
    9197  -1440 /*offsetCode (-21600/15)*/,
    -
    9198  0 /*offsetRemainder (-21600%15)*/,
    -
    9199  0 /*deltaMinutes*/,
    -
    9200  1921 /*untilYear*/,
    -
    9201  1 /*untilMonth*/,
    -
    9202  1 /*untilDay*/,
    -
    9203  0 /*untilTimeCode (0/15)*/,
    -
    9204  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9205  },
    -
    9206  // -6:00 Louisville C%sT 1942
    -
    9207  {
    -
    9208  &kZonePolicyLouisville /*zonePolicy*/,
    -
    9209  "C%T" /*format*/,
    -
    9210  -1440 /*offsetCode (-21600/15)*/,
    -
    9211  0 /*offsetRemainder (-21600%15)*/,
    -
    9212  0 /*deltaMinutes*/,
    -
    9213  1942 /*untilYear*/,
    -
    9214  1 /*untilMonth*/,
    -
    9215  1 /*untilDay*/,
    -
    9216  0 /*untilTimeCode (0/15)*/,
    -
    9217  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9218  },
    -
    9219  // -6:00 US C%sT 1946
    -
    9220  {
    -
    9221  &kZonePolicyUS /*zonePolicy*/,
    -
    9222  "C%T" /*format*/,
    -
    9223  -1440 /*offsetCode (-21600/15)*/,
    -
    9224  0 /*offsetRemainder (-21600%15)*/,
    -
    9225  0 /*deltaMinutes*/,
    -
    9226  1946 /*untilYear*/,
    -
    9227  1 /*untilMonth*/,
    -
    9228  1 /*untilDay*/,
    -
    9229  0 /*untilTimeCode (0/15)*/,
    -
    9230  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9231  },
    -
    9232  // -6:00 Louisville C%sT 1961 Jul 23 2:00
    -
    9233  {
    -
    9234  &kZonePolicyLouisville /*zonePolicy*/,
    -
    9235  "C%T" /*format*/,
    -
    9236  -1440 /*offsetCode (-21600/15)*/,
    -
    9237  0 /*offsetRemainder (-21600%15)*/,
    -
    9238  0 /*deltaMinutes*/,
    -
    9239  1961 /*untilYear*/,
    -
    9240  7 /*untilMonth*/,
    -
    9241  23 /*untilDay*/,
    -
    9242  480 /*untilTimeCode (7200/15)*/,
    -
    9243  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9244  },
    -
    9245  // -5:00 - EST 1968
    -
    9246  {
    -
    9247  nullptr /*zonePolicy*/,
    -
    9248  "EST" /*format*/,
    -
    9249  -1200 /*offsetCode (-18000/15)*/,
    -
    9250  0 /*offsetRemainder (-18000%15)*/,
    -
    9251  0 /*deltaMinutes*/,
    -
    9252  1968 /*untilYear*/,
    -
    9253  1 /*untilMonth*/,
    -
    9254  1 /*untilDay*/,
    -
    9255  0 /*untilTimeCode (0/15)*/,
    -
    9256  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9257  },
    -
    9258  // -5:00 US E%sT 1974 Jan 6 2:00
    -
    9259  {
    -
    9260  &kZonePolicyUS /*zonePolicy*/,
    -
    9261  "E%T" /*format*/,
    -
    9262  -1200 /*offsetCode (-18000/15)*/,
    -
    9263  0 /*offsetRemainder (-18000%15)*/,
    -
    9264  0 /*deltaMinutes*/,
    -
    9265  1974 /*untilYear*/,
    -
    9266  1 /*untilMonth*/,
    -
    9267  6 /*untilDay*/,
    -
    9268  480 /*untilTimeCode (7200/15)*/,
    -
    9269  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9270  },
    -
    9271  // -6:00 1:00 CDT 1974 Oct 27 2:00
    -
    9272  {
    -
    9273  nullptr /*zonePolicy*/,
    -
    9274  "CDT" /*format*/,
    -
    9275  -1440 /*offsetCode (-21600/15)*/,
    -
    9276  0 /*offsetRemainder (-21600%15)*/,
    -
    9277  60 /*deltaMinutes*/,
    -
    9278  1974 /*untilYear*/,
    -
    9279  10 /*untilMonth*/,
    -
    9280  27 /*untilDay*/,
    -
    9281  480 /*untilTimeCode (7200/15)*/,
    -
    9282  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9283  },
    -
    9284  // -5:00 US E%sT
    -
    9285  {
    -
    9286  &kZonePolicyUS /*zonePolicy*/,
    -
    9287  "E%T" /*format*/,
    -
    9288  -1200 /*offsetCode (-18000/15)*/,
    -
    9289  0 /*offsetRemainder (-18000%15)*/,
    -
    9290  0 /*deltaMinutes*/,
    -
    9291  32767 /*untilYear*/,
    -
    9292  1 /*untilMonth*/,
    -
    9293  1 /*untilDay*/,
    -
    9294  0 /*untilTimeCode (0/15)*/,
    -
    9295  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9296  },
    -
    9297 
    -
    9298 };
    -
    9299 
    -
    9300 static const char kZoneNameAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = "\x02" "Kentucky/Louisville";
    -
    9301 
    -
    9302 const complete::Info::ZoneInfo kZoneAmerica_Kentucky_Louisville ACE_TIME_PROGMEM = {
    -
    9303  kZoneNameAmerica_Kentucky_Louisville /*name*/,
    -
    9304  0x1a21024b /*zoneId*/,
    -
    9305  &kZoneContext /*zoneContext*/,
    -
    9306  9 /*numEras*/,
    -
    9307  kZoneEraAmerica_Kentucky_Louisville /*eras*/,
    -
    9308  nullptr /*targetInfo*/,
    -
    9309 };
    -
    9310 
    -
    9311 //---------------------------------------------------------------------------
    -
    9312 // Zone name: America/Kentucky/Monticello
    -
    9313 // Eras: 5
    -
    9314 //---------------------------------------------------------------------------
    -
    9315 
    -
    9316 static const complete::Info::ZoneEra kZoneEraAmerica_Kentucky_Monticello[] ACE_TIME_PROGMEM = {
    -
    9317  // -5:39:24 - LMT 1883 Nov 18 18:00u
    -
    9318  {
    -
    9319  nullptr /*zonePolicy*/,
    -
    9320  "LMT" /*format*/,
    -
    9321  -1358 /*offsetCode (-20364/15)*/,
    -
    9322  6 /*offsetRemainder (-20364%15)*/,
    -
    9323  0 /*deltaMinutes*/,
    -
    9324  1883 /*untilYear*/,
    -
    9325  11 /*untilMonth*/,
    -
    9326  18 /*untilDay*/,
    -
    9327  4320 /*untilTimeCode (64800/15)*/,
    -
    9328  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    9329  },
    -
    9330  // -6:00 US C%sT 1946
    -
    9331  {
    -
    9332  &kZonePolicyUS /*zonePolicy*/,
    -
    9333  "C%T" /*format*/,
    -
    9334  -1440 /*offsetCode (-21600/15)*/,
    -
    9335  0 /*offsetRemainder (-21600%15)*/,
    -
    9336  0 /*deltaMinutes*/,
    -
    9337  1946 /*untilYear*/,
    -
    9338  1 /*untilMonth*/,
    -
    9339  1 /*untilDay*/,
    -
    9340  0 /*untilTimeCode (0/15)*/,
    -
    9341  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9342  },
    -
    9343  // -6:00 - CST 1968
    -
    9344  {
    -
    9345  nullptr /*zonePolicy*/,
    -
    9346  "CST" /*format*/,
    -
    9347  -1440 /*offsetCode (-21600/15)*/,
    -
    9348  0 /*offsetRemainder (-21600%15)*/,
    -
    9349  0 /*deltaMinutes*/,
    -
    9350  1968 /*untilYear*/,
    -
    9351  1 /*untilMonth*/,
    -
    9352  1 /*untilDay*/,
    -
    9353  0 /*untilTimeCode (0/15)*/,
    -
    9354  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9355  },
    -
    9356  // -6:00 US C%sT 2000 Oct 29 2:00
    -
    9357  {
    -
    9358  &kZonePolicyUS /*zonePolicy*/,
    -
    9359  "C%T" /*format*/,
    -
    9360  -1440 /*offsetCode (-21600/15)*/,
    -
    9361  0 /*offsetRemainder (-21600%15)*/,
    -
    9362  0 /*deltaMinutes*/,
    -
    9363  2000 /*untilYear*/,
    -
    9364  10 /*untilMonth*/,
    -
    9365  29 /*untilDay*/,
    -
    9366  480 /*untilTimeCode (7200/15)*/,
    -
    9367  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9368  },
    -
    9369  // -5:00 US E%sT
    -
    9370  {
    -
    9371  &kZonePolicyUS /*zonePolicy*/,
    -
    9372  "E%T" /*format*/,
    -
    9373  -1200 /*offsetCode (-18000/15)*/,
    -
    9374  0 /*offsetRemainder (-18000%15)*/,
    -
    9375  0 /*deltaMinutes*/,
    -
    9376  32767 /*untilYear*/,
    -
    9377  1 /*untilMonth*/,
    -
    9378  1 /*untilDay*/,
    -
    9379  0 /*untilTimeCode (0/15)*/,
    -
    9380  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9381  },
    -
    9382 
    -
    9383 };
    -
    9384 
    -
    9385 static const char kZoneNameAmerica_Kentucky_Monticello[] ACE_TIME_PROGMEM = "\x02" "Kentucky/Monticello";
    -
    9386 
    -
    9387 const complete::Info::ZoneInfo kZoneAmerica_Kentucky_Monticello ACE_TIME_PROGMEM = {
    -
    9388  kZoneNameAmerica_Kentucky_Monticello /*name*/,
    -
    9389  0xde71c439 /*zoneId*/,
    -
    9390  &kZoneContext /*zoneContext*/,
    -
    9391  5 /*numEras*/,
    -
    9392  kZoneEraAmerica_Kentucky_Monticello /*eras*/,
    -
    9393  nullptr /*targetInfo*/,
    -
    9394 };
    -
    9395 
    -
    9396 //---------------------------------------------------------------------------
    -
    9397 // Zone name: America/La_Paz
    -
    9398 // Eras: 4
    -
    9399 //---------------------------------------------------------------------------
    -
    9400 
    -
    9401 static const complete::Info::ZoneEra kZoneEraAmerica_La_Paz[] ACE_TIME_PROGMEM = {
    -
    9402  // -4:32:36 - LMT 1890
    -
    9403  {
    -
    9404  nullptr /*zonePolicy*/,
    -
    9405  "LMT" /*format*/,
    -
    9406  -1091 /*offsetCode (-16356/15)*/,
    -
    9407  9 /*offsetRemainder (-16356%15)*/,
    -
    9408  0 /*deltaMinutes*/,
    -
    9409  1890 /*untilYear*/,
    -
    9410  1 /*untilMonth*/,
    -
    9411  1 /*untilDay*/,
    -
    9412  0 /*untilTimeCode (0/15)*/,
    -
    9413  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9414  },
    -
    9415  // -4:32:36 - CMT 1931 Oct 15
    -
    9416  {
    -
    9417  nullptr /*zonePolicy*/,
    -
    9418  "CMT" /*format*/,
    -
    9419  -1091 /*offsetCode (-16356/15)*/,
    -
    9420  9 /*offsetRemainder (-16356%15)*/,
    -
    9421  0 /*deltaMinutes*/,
    -
    9422  1931 /*untilYear*/,
    -
    9423  10 /*untilMonth*/,
    -
    9424  15 /*untilDay*/,
    -
    9425  0 /*untilTimeCode (0/15)*/,
    -
    9426  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9427  },
    -
    9428  // -4:32:36 1:00 BST 1932 Mar 21
    -
    9429  {
    -
    9430  nullptr /*zonePolicy*/,
    -
    9431  "BST" /*format*/,
    -
    9432  -1091 /*offsetCode (-16356/15)*/,
    -
    9433  9 /*offsetRemainder (-16356%15)*/,
    -
    9434  60 /*deltaMinutes*/,
    -
    9435  1932 /*untilYear*/,
    -
    9436  3 /*untilMonth*/,
    -
    9437  21 /*untilDay*/,
    -
    9438  0 /*untilTimeCode (0/15)*/,
    -
    9439  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9440  },
    -
    9441  // -4:00 - %z
    -
    9442  {
    -
    9443  nullptr /*zonePolicy*/,
    -
    9444  "" /*format*/,
    -
    9445  -960 /*offsetCode (-14400/15)*/,
    -
    9446  0 /*offsetRemainder (-14400%15)*/,
    -
    9447  0 /*deltaMinutes*/,
    -
    9448  32767 /*untilYear*/,
    -
    9449  1 /*untilMonth*/,
    -
    9450  1 /*untilDay*/,
    -
    9451  0 /*untilTimeCode (0/15)*/,
    -
    9452  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9453  },
    -
    9454 
    -
    9455 };
    -
    9456 
    -
    9457 static const char kZoneNameAmerica_La_Paz[] ACE_TIME_PROGMEM = "\x02" "La_Paz";
    -
    9458 
    -
    9459 const complete::Info::ZoneInfo kZoneAmerica_La_Paz ACE_TIME_PROGMEM = {
    -
    9460  kZoneNameAmerica_La_Paz /*name*/,
    -
    9461  0xaa29125d /*zoneId*/,
    -
    9462  &kZoneContext /*zoneContext*/,
    -
    9463  4 /*numEras*/,
    -
    9464  kZoneEraAmerica_La_Paz /*eras*/,
    -
    9465  nullptr /*targetInfo*/,
    -
    9466 };
    -
    9467 
    -
    9468 //---------------------------------------------------------------------------
    -
    9469 // Zone name: America/Lima
    -
    9470 // Eras: 3
    -
    9471 //---------------------------------------------------------------------------
    -
    9472 
    -
    9473 static const complete::Info::ZoneEra kZoneEraAmerica_Lima[] ACE_TIME_PROGMEM = {
    -
    9474  // -5:08:12 - LMT 1890
    -
    9475  {
    -
    9476  nullptr /*zonePolicy*/,
    -
    9477  "LMT" /*format*/,
    -
    9478  -1233 /*offsetCode (-18492/15)*/,
    -
    9479  3 /*offsetRemainder (-18492%15)*/,
    -
    9480  0 /*deltaMinutes*/,
    -
    9481  1890 /*untilYear*/,
    -
    9482  1 /*untilMonth*/,
    -
    9483  1 /*untilDay*/,
    -
    9484  0 /*untilTimeCode (0/15)*/,
    -
    9485  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9486  },
    -
    9487  // -5:08:36 - LMT 1908 Jul 28
    -
    9488  {
    -
    9489  nullptr /*zonePolicy*/,
    -
    9490  "LMT" /*format*/,
    -
    9491  -1235 /*offsetCode (-18516/15)*/,
    -
    9492  9 /*offsetRemainder (-18516%15)*/,
    -
    9493  0 /*deltaMinutes*/,
    -
    9494  1908 /*untilYear*/,
    -
    9495  7 /*untilMonth*/,
    -
    9496  28 /*untilDay*/,
    -
    9497  0 /*untilTimeCode (0/15)*/,
    -
    9498  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9499  },
    -
    9500  // -5:00 Peru %z
    -
    9501  {
    -
    9502  &kZonePolicyPeru /*zonePolicy*/,
    -
    9503  "" /*format*/,
    -
    9504  -1200 /*offsetCode (-18000/15)*/,
    -
    9505  0 /*offsetRemainder (-18000%15)*/,
    -
    9506  0 /*deltaMinutes*/,
    -
    9507  32767 /*untilYear*/,
    -
    9508  1 /*untilMonth*/,
    -
    9509  1 /*untilDay*/,
    -
    9510  0 /*untilTimeCode (0/15)*/,
    -
    9511  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9512  },
    -
    9513 
    -
    9514 };
    -
    9515 
    -
    9516 static const char kZoneNameAmerica_Lima[] ACE_TIME_PROGMEM = "\x02" "Lima";
    -
    9517 
    -
    9518 const complete::Info::ZoneInfo kZoneAmerica_Lima ACE_TIME_PROGMEM = {
    -
    9519  kZoneNameAmerica_Lima /*name*/,
    -
    9520  0x980468c9 /*zoneId*/,
    -
    9521  &kZoneContext /*zoneContext*/,
    -
    9522  3 /*numEras*/,
    -
    9523  kZoneEraAmerica_Lima /*eras*/,
    -
    9524  nullptr /*targetInfo*/,
    -
    9525 };
    -
    9526 
    -
    9527 //---------------------------------------------------------------------------
    -
    9528 // Zone name: America/Los_Angeles
    -
    9529 // Eras: 4
    -
    9530 //---------------------------------------------------------------------------
    -
    9531 
    -
    9532 static const complete::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = {
    -
    9533  // -7:52:58 - LMT 1883 Nov 18 20:00u
    -
    9534  {
    -
    9535  nullptr /*zonePolicy*/,
    -
    9536  "LMT" /*format*/,
    -
    9537  -1892 /*offsetCode (-28378/15)*/,
    -
    9538  2 /*offsetRemainder (-28378%15)*/,
    -
    9539  0 /*deltaMinutes*/,
    -
    9540  1883 /*untilYear*/,
    -
    9541  11 /*untilMonth*/,
    -
    9542  18 /*untilDay*/,
    -
    9543  4800 /*untilTimeCode (72000/15)*/,
    -
    9544  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    9545  },
    -
    9546  // -8:00 US P%sT 1946
    -
    9547  {
    -
    9548  &kZonePolicyUS /*zonePolicy*/,
    -
    9549  "P%T" /*format*/,
    -
    9550  -1920 /*offsetCode (-28800/15)*/,
    -
    9551  0 /*offsetRemainder (-28800%15)*/,
    -
    9552  0 /*deltaMinutes*/,
    -
    9553  1946 /*untilYear*/,
    -
    9554  1 /*untilMonth*/,
    -
    9555  1 /*untilDay*/,
    -
    9556  0 /*untilTimeCode (0/15)*/,
    -
    9557  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9558  },
    -
    9559  // -8:00 CA P%sT 1967
    -
    9560  {
    -
    9561  &kZonePolicyCA /*zonePolicy*/,
    -
    9562  "P%T" /*format*/,
    -
    9563  -1920 /*offsetCode (-28800/15)*/,
    -
    9564  0 /*offsetRemainder (-28800%15)*/,
    -
    9565  0 /*deltaMinutes*/,
    -
    9566  1967 /*untilYear*/,
    -
    9567  1 /*untilMonth*/,
    -
    9568  1 /*untilDay*/,
    -
    9569  0 /*untilTimeCode (0/15)*/,
    -
    9570  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9571  },
    -
    9572  // -8:00 US P%sT
    -
    9573  {
    -
    9574  &kZonePolicyUS /*zonePolicy*/,
    -
    9575  "P%T" /*format*/,
    -
    9576  -1920 /*offsetCode (-28800/15)*/,
    -
    9577  0 /*offsetRemainder (-28800%15)*/,
    -
    9578  0 /*deltaMinutes*/,
    -
    9579  32767 /*untilYear*/,
    -
    9580  1 /*untilMonth*/,
    -
    9581  1 /*untilDay*/,
    -
    9582  0 /*untilTimeCode (0/15)*/,
    -
    9583  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9584  },
    -
    9585 
    -
    9586 };
    -
    9587 
    -
    9588 static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "\x02" "Los_Angeles";
    -
    9589 
    -
    9590 const complete::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = {
    -
    9591  kZoneNameAmerica_Los_Angeles /*name*/,
    -
    9592  0xb7f7e8f2 /*zoneId*/,
    -
    9593  &kZoneContext /*zoneContext*/,
    -
    9594  4 /*numEras*/,
    -
    9595  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    9596  nullptr /*targetInfo*/,
    -
    9597 };
    -
    9598 
    -
    9599 //---------------------------------------------------------------------------
    -
    9600 // Zone name: America/Maceio
    -
    9601 // Eras: 9
    -
    9602 //---------------------------------------------------------------------------
    -
    9603 
    -
    9604 static const complete::Info::ZoneEra kZoneEraAmerica_Maceio[] ACE_TIME_PROGMEM = {
    -
    9605  // -2:22:52 - LMT 1914
    -
    9606  {
    -
    9607  nullptr /*zonePolicy*/,
    -
    9608  "LMT" /*format*/,
    -
    9609  -572 /*offsetCode (-8572/15)*/,
    -
    9610  8 /*offsetRemainder (-8572%15)*/,
    -
    9611  0 /*deltaMinutes*/,
    -
    9612  1914 /*untilYear*/,
    -
    9613  1 /*untilMonth*/,
    -
    9614  1 /*untilDay*/,
    -
    9615  0 /*untilTimeCode (0/15)*/,
    -
    9616  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9617  },
    -
    9618  // -3:00 Brazil %z 1990 Sep 17
    -
    9619  {
    -
    9620  &kZonePolicyBrazil /*zonePolicy*/,
    -
    9621  "" /*format*/,
    -
    9622  -720 /*offsetCode (-10800/15)*/,
    -
    9623  0 /*offsetRemainder (-10800%15)*/,
    -
    9624  0 /*deltaMinutes*/,
    -
    9625  1990 /*untilYear*/,
    -
    9626  9 /*untilMonth*/,
    -
    9627  17 /*untilDay*/,
    -
    9628  0 /*untilTimeCode (0/15)*/,
    -
    9629  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9630  },
    -
    9631  // -3:00 - %z 1995 Oct 13
    -
    9632  {
    -
    9633  nullptr /*zonePolicy*/,
    -
    9634  "" /*format*/,
    -
    9635  -720 /*offsetCode (-10800/15)*/,
    -
    9636  0 /*offsetRemainder (-10800%15)*/,
    -
    9637  0 /*deltaMinutes*/,
    -
    9638  1995 /*untilYear*/,
    -
    9639  10 /*untilMonth*/,
    -
    9640  13 /*untilDay*/,
    -
    9641  0 /*untilTimeCode (0/15)*/,
    -
    9642  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9643  },
    -
    9644  // -3:00 Brazil %z 1996 Sep 4
    -
    9645  {
    -
    9646  &kZonePolicyBrazil /*zonePolicy*/,
    -
    9647  "" /*format*/,
    -
    9648  -720 /*offsetCode (-10800/15)*/,
    -
    9649  0 /*offsetRemainder (-10800%15)*/,
    -
    9650  0 /*deltaMinutes*/,
    -
    9651  1996 /*untilYear*/,
    -
    9652  9 /*untilMonth*/,
    -
    9653  4 /*untilDay*/,
    -
    9654  0 /*untilTimeCode (0/15)*/,
    -
    9655  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9656  },
    -
    9657  // -3:00 - %z 1999 Sep 30
    -
    9658  {
    -
    9659  nullptr /*zonePolicy*/,
    -
    9660  "" /*format*/,
    -
    9661  -720 /*offsetCode (-10800/15)*/,
    -
    9662  0 /*offsetRemainder (-10800%15)*/,
    -
    9663  0 /*deltaMinutes*/,
    -
    9664  1999 /*untilYear*/,
    -
    9665  9 /*untilMonth*/,
    -
    9666  30 /*untilDay*/,
    -
    9667  0 /*untilTimeCode (0/15)*/,
    -
    9668  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9669  },
    -
    9670  // -3:00 Brazil %z 2000 Oct 22
    -
    9671  {
    -
    9672  &kZonePolicyBrazil /*zonePolicy*/,
    -
    9673  "" /*format*/,
    -
    9674  -720 /*offsetCode (-10800/15)*/,
    -
    9675  0 /*offsetRemainder (-10800%15)*/,
    -
    9676  0 /*deltaMinutes*/,
    -
    9677  2000 /*untilYear*/,
    -
    9678  10 /*untilMonth*/,
    -
    9679  22 /*untilDay*/,
    -
    9680  0 /*untilTimeCode (0/15)*/,
    -
    9681  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9682  },
    -
    9683  // -3:00 - %z 2001 Sep 13
    -
    9684  {
    -
    9685  nullptr /*zonePolicy*/,
    -
    9686  "" /*format*/,
    -
    9687  -720 /*offsetCode (-10800/15)*/,
    -
    9688  0 /*offsetRemainder (-10800%15)*/,
    -
    9689  0 /*deltaMinutes*/,
    -
    9690  2001 /*untilYear*/,
    -
    9691  9 /*untilMonth*/,
    -
    9692  13 /*untilDay*/,
    -
    9693  0 /*untilTimeCode (0/15)*/,
    -
    9694  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9695  },
    -
    9696  // -3:00 Brazil %z 2002 Oct 1
    -
    9697  {
    -
    9698  &kZonePolicyBrazil /*zonePolicy*/,
    -
    9699  "" /*format*/,
    -
    9700  -720 /*offsetCode (-10800/15)*/,
    -
    9701  0 /*offsetRemainder (-10800%15)*/,
    -
    9702  0 /*deltaMinutes*/,
    -
    9703  2002 /*untilYear*/,
    -
    9704  10 /*untilMonth*/,
    -
    9705  1 /*untilDay*/,
    -
    9706  0 /*untilTimeCode (0/15)*/,
    -
    9707  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9708  },
    -
    9709  // -3:00 - %z
    -
    9710  {
    -
    9711  nullptr /*zonePolicy*/,
    -
    9712  "" /*format*/,
    -
    9713  -720 /*offsetCode (-10800/15)*/,
    -
    9714  0 /*offsetRemainder (-10800%15)*/,
    -
    9715  0 /*deltaMinutes*/,
    -
    9716  32767 /*untilYear*/,
    -
    9717  1 /*untilMonth*/,
    -
    9718  1 /*untilDay*/,
    -
    9719  0 /*untilTimeCode (0/15)*/,
    -
    9720  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9721  },
    -
    9722 
    -
    9723 };
    -
    9724 
    -
    9725 static const char kZoneNameAmerica_Maceio[] ACE_TIME_PROGMEM = "\x02" "Maceio";
    -
    9726 
    -
    9727 const complete::Info::ZoneInfo kZoneAmerica_Maceio ACE_TIME_PROGMEM = {
    -
    9728  kZoneNameAmerica_Maceio /*name*/,
    -
    9729  0xac80c6d4 /*zoneId*/,
    -
    9730  &kZoneContext /*zoneContext*/,
    -
    9731  9 /*numEras*/,
    -
    9732  kZoneEraAmerica_Maceio /*eras*/,
    -
    9733  nullptr /*targetInfo*/,
    -
    9734 };
    -
    9735 
    -
    9736 //---------------------------------------------------------------------------
    -
    9737 // Zone name: America/Managua
    -
    9738 // Eras: 9
    -
    9739 //---------------------------------------------------------------------------
    -
    9740 
    -
    9741 static const complete::Info::ZoneEra kZoneEraAmerica_Managua[] ACE_TIME_PROGMEM = {
    -
    9742  // -5:45:08 - LMT 1890
    -
    9743  {
    -
    9744  nullptr /*zonePolicy*/,
    -
    9745  "LMT" /*format*/,
    -
    9746  -1381 /*offsetCode (-20708/15)*/,
    -
    9747  7 /*offsetRemainder (-20708%15)*/,
    -
    9748  0 /*deltaMinutes*/,
    -
    9749  1890 /*untilYear*/,
    -
    9750  1 /*untilMonth*/,
    -
    9751  1 /*untilDay*/,
    -
    9752  0 /*untilTimeCode (0/15)*/,
    -
    9753  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9754  },
    -
    9755  // -5:45:12 - MMT 1934 Jun 23
    -
    9756  {
    -
    9757  nullptr /*zonePolicy*/,
    -
    9758  "MMT" /*format*/,
    -
    9759  -1381 /*offsetCode (-20712/15)*/,
    -
    9760  3 /*offsetRemainder (-20712%15)*/,
    -
    9761  0 /*deltaMinutes*/,
    -
    9762  1934 /*untilYear*/,
    -
    9763  6 /*untilMonth*/,
    -
    9764  23 /*untilDay*/,
    -
    9765  0 /*untilTimeCode (0/15)*/,
    -
    9766  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9767  },
    -
    9768  // -6:00 - CST 1973 May
    -
    9769  {
    -
    9770  nullptr /*zonePolicy*/,
    -
    9771  "CST" /*format*/,
    -
    9772  -1440 /*offsetCode (-21600/15)*/,
    -
    9773  0 /*offsetRemainder (-21600%15)*/,
    -
    9774  0 /*deltaMinutes*/,
    -
    9775  1973 /*untilYear*/,
    -
    9776  5 /*untilMonth*/,
    -
    9777  1 /*untilDay*/,
    -
    9778  0 /*untilTimeCode (0/15)*/,
    -
    9779  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9780  },
    -
    9781  // -5:00 - EST 1975 Feb 16
    -
    9782  {
    -
    9783  nullptr /*zonePolicy*/,
    -
    9784  "EST" /*format*/,
    -
    9785  -1200 /*offsetCode (-18000/15)*/,
    -
    9786  0 /*offsetRemainder (-18000%15)*/,
    -
    9787  0 /*deltaMinutes*/,
    -
    9788  1975 /*untilYear*/,
    -
    9789  2 /*untilMonth*/,
    -
    9790  16 /*untilDay*/,
    -
    9791  0 /*untilTimeCode (0/15)*/,
    -
    9792  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9793  },
    -
    9794  // -6:00 Nic C%sT 1992 Jan 1 4:00
    -
    9795  {
    -
    9796  &kZonePolicyNic /*zonePolicy*/,
    -
    9797  "C%T" /*format*/,
    -
    9798  -1440 /*offsetCode (-21600/15)*/,
    -
    9799  0 /*offsetRemainder (-21600%15)*/,
    -
    9800  0 /*deltaMinutes*/,
    -
    9801  1992 /*untilYear*/,
    -
    9802  1 /*untilMonth*/,
    -
    9803  1 /*untilDay*/,
    -
    9804  960 /*untilTimeCode (14400/15)*/,
    -
    9805  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9806  },
    -
    9807  // -5:00 - EST 1992 Sep 24
    -
    9808  {
    -
    9809  nullptr /*zonePolicy*/,
    -
    9810  "EST" /*format*/,
    -
    9811  -1200 /*offsetCode (-18000/15)*/,
    -
    9812  0 /*offsetRemainder (-18000%15)*/,
    -
    9813  0 /*deltaMinutes*/,
    -
    9814  1992 /*untilYear*/,
    -
    9815  9 /*untilMonth*/,
    -
    9816  24 /*untilDay*/,
    -
    9817  0 /*untilTimeCode (0/15)*/,
    -
    9818  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9819  },
    -
    9820  // -6:00 - CST 1993
    -
    9821  {
    -
    9822  nullptr /*zonePolicy*/,
    -
    9823  "CST" /*format*/,
    -
    9824  -1440 /*offsetCode (-21600/15)*/,
    -
    9825  0 /*offsetRemainder (-21600%15)*/,
    -
    9826  0 /*deltaMinutes*/,
    -
    9827  1993 /*untilYear*/,
    -
    9828  1 /*untilMonth*/,
    -
    9829  1 /*untilDay*/,
    -
    9830  0 /*untilTimeCode (0/15)*/,
    -
    9831  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9832  },
    -
    9833  // -5:00 - EST 1997
    -
    9834  {
    -
    9835  nullptr /*zonePolicy*/,
    -
    9836  "EST" /*format*/,
    -
    9837  -1200 /*offsetCode (-18000/15)*/,
    -
    9838  0 /*offsetRemainder (-18000%15)*/,
    -
    9839  0 /*deltaMinutes*/,
    -
    9840  1997 /*untilYear*/,
    -
    9841  1 /*untilMonth*/,
    -
    9842  1 /*untilDay*/,
    -
    9843  0 /*untilTimeCode (0/15)*/,
    -
    9844  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9845  },
    -
    9846  // -6:00 Nic C%sT
    -
    9847  {
    -
    9848  &kZonePolicyNic /*zonePolicy*/,
    -
    9849  "C%T" /*format*/,
    -
    9850  -1440 /*offsetCode (-21600/15)*/,
    -
    9851  0 /*offsetRemainder (-21600%15)*/,
    -
    9852  0 /*deltaMinutes*/,
    -
    9853  32767 /*untilYear*/,
    -
    9854  1 /*untilMonth*/,
    -
    9855  1 /*untilDay*/,
    -
    9856  0 /*untilTimeCode (0/15)*/,
    -
    9857  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9858  },
    -
    9859 
    -
    9860 };
    -
    9861 
    -
    9862 static const char kZoneNameAmerica_Managua[] ACE_TIME_PROGMEM = "\x02" "Managua";
    -
    9863 
    -
    9864 const complete::Info::ZoneInfo kZoneAmerica_Managua ACE_TIME_PROGMEM = {
    -
    9865  kZoneNameAmerica_Managua /*name*/,
    -
    9866  0x3d5e7600 /*zoneId*/,
    -
    9867  &kZoneContext /*zoneContext*/,
    -
    9868  9 /*numEras*/,
    -
    9869  kZoneEraAmerica_Managua /*eras*/,
    -
    9870  nullptr /*targetInfo*/,
    -
    9871 };
    -
    9872 
    -
    9873 //---------------------------------------------------------------------------
    -
    9874 // Zone name: America/Manaus
    -
    9875 // Eras: 5
    -
    9876 //---------------------------------------------------------------------------
    -
    9877 
    -
    9878 static const complete::Info::ZoneEra kZoneEraAmerica_Manaus[] ACE_TIME_PROGMEM = {
    -
    9879  // -4:00:04 - LMT 1914
    -
    9880  {
    -
    9881  nullptr /*zonePolicy*/,
    -
    9882  "LMT" /*format*/,
    -
    9883  -961 /*offsetCode (-14404/15)*/,
    -
    9884  11 /*offsetRemainder (-14404%15)*/,
    -
    9885  0 /*deltaMinutes*/,
    -
    9886  1914 /*untilYear*/,
    -
    9887  1 /*untilMonth*/,
    -
    9888  1 /*untilDay*/,
    -
    9889  0 /*untilTimeCode (0/15)*/,
    -
    9890  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9891  },
    -
    9892  // -4:00 Brazil %z 1988 Sep 12
    -
    9893  {
    -
    9894  &kZonePolicyBrazil /*zonePolicy*/,
    -
    9895  "" /*format*/,
    -
    9896  -960 /*offsetCode (-14400/15)*/,
    -
    9897  0 /*offsetRemainder (-14400%15)*/,
    -
    9898  0 /*deltaMinutes*/,
    -
    9899  1988 /*untilYear*/,
    -
    9900  9 /*untilMonth*/,
    -
    9901  12 /*untilDay*/,
    -
    9902  0 /*untilTimeCode (0/15)*/,
    -
    9903  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9904  },
    -
    9905  // -4:00 - %z 1993 Sep 28
    -
    9906  {
    -
    9907  nullptr /*zonePolicy*/,
    -
    9908  "" /*format*/,
    -
    9909  -960 /*offsetCode (-14400/15)*/,
    -
    9910  0 /*offsetRemainder (-14400%15)*/,
    -
    9911  0 /*deltaMinutes*/,
    -
    9912  1993 /*untilYear*/,
    -
    9913  9 /*untilMonth*/,
    -
    9914  28 /*untilDay*/,
    -
    9915  0 /*untilTimeCode (0/15)*/,
    -
    9916  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9917  },
    -
    9918  // -4:00 Brazil %z 1994 Sep 22
    -
    9919  {
    -
    9920  &kZonePolicyBrazil /*zonePolicy*/,
    -
    9921  "" /*format*/,
    -
    9922  -960 /*offsetCode (-14400/15)*/,
    -
    9923  0 /*offsetRemainder (-14400%15)*/,
    -
    9924  0 /*deltaMinutes*/,
    -
    9925  1994 /*untilYear*/,
    -
    9926  9 /*untilMonth*/,
    -
    9927  22 /*untilDay*/,
    -
    9928  0 /*untilTimeCode (0/15)*/,
    -
    9929  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9930  },
    -
    9931  // -4:00 - %z
    -
    9932  {
    -
    9933  nullptr /*zonePolicy*/,
    -
    9934  "" /*format*/,
    -
    9935  -960 /*offsetCode (-14400/15)*/,
    -
    9936  0 /*offsetRemainder (-14400%15)*/,
    -
    9937  0 /*deltaMinutes*/,
    -
    9938  32767 /*untilYear*/,
    -
    9939  1 /*untilMonth*/,
    -
    9940  1 /*untilDay*/,
    -
    9941  0 /*untilTimeCode (0/15)*/,
    -
    9942  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9943  },
    -
    9944 
    -
    9945 };
    -
    9946 
    -
    9947 static const char kZoneNameAmerica_Manaus[] ACE_TIME_PROGMEM = "\x02" "Manaus";
    -
    9948 
    -
    9949 const complete::Info::ZoneInfo kZoneAmerica_Manaus ACE_TIME_PROGMEM = {
    -
    9950  kZoneNameAmerica_Manaus /*name*/,
    -
    9951  0xac86bf8b /*zoneId*/,
    -
    9952  &kZoneContext /*zoneContext*/,
    -
    9953  5 /*numEras*/,
    -
    9954  kZoneEraAmerica_Manaus /*eras*/,
    -
    9955  nullptr /*targetInfo*/,
    -
    9956 };
    -
    9957 
    -
    9958 //---------------------------------------------------------------------------
    -
    9959 // Zone name: America/Martinique
    -
    9960 // Eras: 5
    -
    9961 //---------------------------------------------------------------------------
    -
    9962 
    -
    9963 static const complete::Info::ZoneEra kZoneEraAmerica_Martinique[] ACE_TIME_PROGMEM = {
    -
    9964  // -4:04:20 - LMT 1890
    -
    9965  {
    -
    9966  nullptr /*zonePolicy*/,
    -
    9967  "LMT" /*format*/,
    -
    9968  -978 /*offsetCode (-14660/15)*/,
    -
    9969  10 /*offsetRemainder (-14660%15)*/,
    -
    9970  0 /*deltaMinutes*/,
    -
    9971  1890 /*untilYear*/,
    -
    9972  1 /*untilMonth*/,
    -
    9973  1 /*untilDay*/,
    -
    9974  0 /*untilTimeCode (0/15)*/,
    -
    9975  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9976  },
    -
    9977  // -4:04:20 - FFMT 1911 May 1
    -
    9978  {
    -
    9979  nullptr /*zonePolicy*/,
    -
    9980  "FFMT" /*format*/,
    -
    9981  -978 /*offsetCode (-14660/15)*/,
    -
    9982  10 /*offsetRemainder (-14660%15)*/,
    -
    9983  0 /*deltaMinutes*/,
    -
    9984  1911 /*untilYear*/,
    -
    9985  5 /*untilMonth*/,
    -
    9986  1 /*untilDay*/,
    -
    9987  0 /*untilTimeCode (0/15)*/,
    -
    9988  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9989  },
    -
    9990  // -4:00 - AST 1980 Apr 6
    -
    9991  {
    -
    9992  nullptr /*zonePolicy*/,
    -
    9993  "AST" /*format*/,
    -
    9994  -960 /*offsetCode (-14400/15)*/,
    -
    9995  0 /*offsetRemainder (-14400%15)*/,
    -
    9996  0 /*deltaMinutes*/,
    -
    9997  1980 /*untilYear*/,
    -
    9998  4 /*untilMonth*/,
    -
    9999  6 /*untilDay*/,
    -
    10000  0 /*untilTimeCode (0/15)*/,
    -
    10001  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10002  },
    -
    10003  // -4:00 1:00 ADT 1980 Sep 28
    -
    10004  {
    -
    10005  nullptr /*zonePolicy*/,
    -
    10006  "ADT" /*format*/,
    -
    10007  -960 /*offsetCode (-14400/15)*/,
    -
    10008  0 /*offsetRemainder (-14400%15)*/,
    -
    10009  60 /*deltaMinutes*/,
    -
    10010  1980 /*untilYear*/,
    -
    10011  9 /*untilMonth*/,
    -
    10012  28 /*untilDay*/,
    -
    10013  0 /*untilTimeCode (0/15)*/,
    -
    10014  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10015  },
    -
    10016  // -4:00 - AST
    -
    10017  {
    -
    10018  nullptr /*zonePolicy*/,
    -
    10019  "AST" /*format*/,
    -
    10020  -960 /*offsetCode (-14400/15)*/,
    -
    10021  0 /*offsetRemainder (-14400%15)*/,
    -
    10022  0 /*deltaMinutes*/,
    -
    10023  32767 /*untilYear*/,
    -
    10024  1 /*untilMonth*/,
    -
    10025  1 /*untilDay*/,
    -
    10026  0 /*untilTimeCode (0/15)*/,
    -
    10027  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10028  },
    -
    10029 
    -
    10030 };
    -
    10031 
    -
    10032 static const char kZoneNameAmerica_Martinique[] ACE_TIME_PROGMEM = "\x02" "Martinique";
    -
    10033 
    -
    10034 const complete::Info::ZoneInfo kZoneAmerica_Martinique ACE_TIME_PROGMEM = {
    -
    10035  kZoneNameAmerica_Martinique /*name*/,
    -
    10036  0x551e84c5 /*zoneId*/,
    -
    10037  &kZoneContext /*zoneContext*/,
    -
    10038  5 /*numEras*/,
    -
    10039  kZoneEraAmerica_Martinique /*eras*/,
    -
    10040  nullptr /*targetInfo*/,
    -
    10041 };
    -
    10042 
    -
    10043 //---------------------------------------------------------------------------
    -
    10044 // Zone name: America/Matamoros
    -
    10045 // Eras: 5
    -
    10046 //---------------------------------------------------------------------------
    -
    10047 
    -
    10048 static const complete::Info::ZoneEra kZoneEraAmerica_Matamoros[] ACE_TIME_PROGMEM = {
    -
    10049  // -6:30:00 - LMT 1922 Jan 1 6:00u
    -
    10050  {
    -
    10051  nullptr /*zonePolicy*/,
    -
    10052  "LMT" /*format*/,
    -
    10053  -1560 /*offsetCode (-23400/15)*/,
    -
    10054  0 /*offsetRemainder (-23400%15)*/,
    -
    10055  0 /*deltaMinutes*/,
    -
    10056  1922 /*untilYear*/,
    -
    10057  1 /*untilMonth*/,
    -
    10058  1 /*untilDay*/,
    -
    10059  1440 /*untilTimeCode (21600/15)*/,
    -
    10060  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    10061  },
    -
    10062  // -6:00 - CST 1988
    -
    10063  {
    -
    10064  nullptr /*zonePolicy*/,
    -
    10065  "CST" /*format*/,
    -
    10066  -1440 /*offsetCode (-21600/15)*/,
    -
    10067  0 /*offsetRemainder (-21600%15)*/,
    -
    10068  0 /*deltaMinutes*/,
    -
    10069  1988 /*untilYear*/,
    -
    10070  1 /*untilMonth*/,
    -
    10071  1 /*untilDay*/,
    -
    10072  0 /*untilTimeCode (0/15)*/,
    -
    10073  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10074  },
    -
    10075  // -6:00 US C%sT 1989
    -
    10076  {
    -
    10077  &kZonePolicyUS /*zonePolicy*/,
    -
    10078  "C%T" /*format*/,
    -
    10079  -1440 /*offsetCode (-21600/15)*/,
    -
    10080  0 /*offsetRemainder (-21600%15)*/,
    -
    10081  0 /*deltaMinutes*/,
    -
    10082  1989 /*untilYear*/,
    -
    10083  1 /*untilMonth*/,
    -
    10084  1 /*untilDay*/,
    -
    10085  0 /*untilTimeCode (0/15)*/,
    -
    10086  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10087  },
    -
    10088  // -6:00 Mexico C%sT 2010
    -
    10089  {
    -
    10090  &kZonePolicyMexico /*zonePolicy*/,
    -
    10091  "C%T" /*format*/,
    -
    10092  -1440 /*offsetCode (-21600/15)*/,
    -
    10093  0 /*offsetRemainder (-21600%15)*/,
    -
    10094  0 /*deltaMinutes*/,
    -
    10095  2010 /*untilYear*/,
    -
    10096  1 /*untilMonth*/,
    -
    10097  1 /*untilDay*/,
    -
    10098  0 /*untilTimeCode (0/15)*/,
    -
    10099  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10100  },
    -
    10101  // -6:00 US C%sT
    -
    10102  {
    -
    10103  &kZonePolicyUS /*zonePolicy*/,
    -
    10104  "C%T" /*format*/,
    -
    10105  -1440 /*offsetCode (-21600/15)*/,
    -
    10106  0 /*offsetRemainder (-21600%15)*/,
    -
    10107  0 /*deltaMinutes*/,
    -
    10108  32767 /*untilYear*/,
    -
    10109  1 /*untilMonth*/,
    -
    10110  1 /*untilDay*/,
    -
    10111  0 /*untilTimeCode (0/15)*/,
    -
    10112  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10113  },
    -
    10114 
    -
    10115 };
    -
    10116 
    -
    10117 static const char kZoneNameAmerica_Matamoros[] ACE_TIME_PROGMEM = "\x02" "Matamoros";
    -
    10118 
    -
    10119 const complete::Info::ZoneInfo kZoneAmerica_Matamoros ACE_TIME_PROGMEM = {
    -
    10120  kZoneNameAmerica_Matamoros /*name*/,
    -
    10121  0xdd1b0259 /*zoneId*/,
    -
    10122  &kZoneContext /*zoneContext*/,
    -
    10123  5 /*numEras*/,
    -
    10124  kZoneEraAmerica_Matamoros /*eras*/,
    -
    10125  nullptr /*targetInfo*/,
    -
    10126 };
    -
    10127 
    -
    10128 //---------------------------------------------------------------------------
    -
    10129 // Zone name: America/Mazatlan
    -
    10130 // Eras: 7
    -
    10131 //---------------------------------------------------------------------------
    -
    10132 
    -
    10133 static const complete::Info::ZoneEra kZoneEraAmerica_Mazatlan[] ACE_TIME_PROGMEM = {
    -
    10134  // -7:05:40 - LMT 1922 Jan 1 7:00u
    -
    10135  {
    -
    10136  nullptr /*zonePolicy*/,
    -
    10137  "LMT" /*format*/,
    -
    10138  -1703 /*offsetCode (-25540/15)*/,
    -
    10139  5 /*offsetRemainder (-25540%15)*/,
    -
    10140  0 /*deltaMinutes*/,
    -
    10141  1922 /*untilYear*/,
    -
    10142  1 /*untilMonth*/,
    -
    10143  1 /*untilDay*/,
    -
    10144  1680 /*untilTimeCode (25200/15)*/,
    -
    10145  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    10146  },
    -
    10147  // -7:00 - MST 1927 Jun 10
    -
    10148  {
    -
    10149  nullptr /*zonePolicy*/,
    -
    10150  "MST" /*format*/,
    -
    10151  -1680 /*offsetCode (-25200/15)*/,
    -
    10152  0 /*offsetRemainder (-25200%15)*/,
    -
    10153  0 /*deltaMinutes*/,
    -
    10154  1927 /*untilYear*/,
    -
    10155  6 /*untilMonth*/,
    -
    10156  10 /*untilDay*/,
    -
    10157  0 /*untilTimeCode (0/15)*/,
    -
    10158  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10159  },
    -
    10160  // -6:00 - CST 1930 Nov 15
    -
    10161  {
    -
    10162  nullptr /*zonePolicy*/,
    -
    10163  "CST" /*format*/,
    -
    10164  -1440 /*offsetCode (-21600/15)*/,
    -
    10165  0 /*offsetRemainder (-21600%15)*/,
    -
    10166  0 /*deltaMinutes*/,
    -
    10167  1930 /*untilYear*/,
    -
    10168  11 /*untilMonth*/,
    -
    10169  15 /*untilDay*/,
    -
    10170  0 /*untilTimeCode (0/15)*/,
    -
    10171  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10172  },
    -
    10173  // -7:00 Mexico M%sT 1932 Apr 1
    -
    10174  {
    -
    10175  &kZonePolicyMexico /*zonePolicy*/,
    -
    10176  "M%T" /*format*/,
    -
    10177  -1680 /*offsetCode (-25200/15)*/,
    -
    10178  0 /*offsetRemainder (-25200%15)*/,
    -
    10179  0 /*deltaMinutes*/,
    -
    10180  1932 /*untilYear*/,
    -
    10181  4 /*untilMonth*/,
    -
    10182  1 /*untilDay*/,
    -
    10183  0 /*untilTimeCode (0/15)*/,
    -
    10184  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10185  },
    -
    10186  // -6:00 - CST 1942 Apr 24
    -
    10187  {
    -
    10188  nullptr /*zonePolicy*/,
    -
    10189  "CST" /*format*/,
    -
    10190  -1440 /*offsetCode (-21600/15)*/,
    -
    10191  0 /*offsetRemainder (-21600%15)*/,
    -
    10192  0 /*deltaMinutes*/,
    -
    10193  1942 /*untilYear*/,
    -
    10194  4 /*untilMonth*/,
    -
    10195  24 /*untilDay*/,
    -
    10196  0 /*untilTimeCode (0/15)*/,
    -
    10197  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10198  },
    -
    10199  // -7:00 - MST 1970
    -
    10200  {
    -
    10201  nullptr /*zonePolicy*/,
    -
    10202  "MST" /*format*/,
    -
    10203  -1680 /*offsetCode (-25200/15)*/,
    -
    10204  0 /*offsetRemainder (-25200%15)*/,
    -
    10205  0 /*deltaMinutes*/,
    -
    10206  1970 /*untilYear*/,
    -
    10207  1 /*untilMonth*/,
    -
    10208  1 /*untilDay*/,
    -
    10209  0 /*untilTimeCode (0/15)*/,
    -
    10210  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10211  },
    -
    10212  // -7:00 Mexico M%sT
    -
    10213  {
    -
    10214  &kZonePolicyMexico /*zonePolicy*/,
    -
    10215  "M%T" /*format*/,
    -
    10216  -1680 /*offsetCode (-25200/15)*/,
    -
    10217  0 /*offsetRemainder (-25200%15)*/,
    -
    10218  0 /*deltaMinutes*/,
    -
    10219  32767 /*untilYear*/,
    -
    10220  1 /*untilMonth*/,
    -
    10221  1 /*untilDay*/,
    -
    10222  0 /*untilTimeCode (0/15)*/,
    -
    10223  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10224  },
    -
    10225 
    -
    10226 };
    -
    10227 
    -
    10228 static const char kZoneNameAmerica_Mazatlan[] ACE_TIME_PROGMEM = "\x02" "Mazatlan";
    -
    10229 
    -
    10230 const complete::Info::ZoneInfo kZoneAmerica_Mazatlan ACE_TIME_PROGMEM = {
    -
    10231  kZoneNameAmerica_Mazatlan /*name*/,
    -
    10232  0x0532189e /*zoneId*/,
    -
    10233  &kZoneContext /*zoneContext*/,
    -
    10234  7 /*numEras*/,
    -
    10235  kZoneEraAmerica_Mazatlan /*eras*/,
    -
    10236  nullptr /*targetInfo*/,
    -
    10237 };
    -
    10238 
    -
    10239 //---------------------------------------------------------------------------
    -
    10240 // Zone name: America/Menominee
    -
    10241 // Eras: 5
    -
    10242 //---------------------------------------------------------------------------
    -
    10243 
    -
    10244 static const complete::Info::ZoneEra kZoneEraAmerica_Menominee[] ACE_TIME_PROGMEM = {
    -
    10245  // -5:50:27 - LMT 1885 Sep 18 12:00
    -
    10246  {
    -
    10247  nullptr /*zonePolicy*/,
    -
    10248  "LMT" /*format*/,
    -
    10249  -1402 /*offsetCode (-21027/15)*/,
    -
    10250  3 /*offsetRemainder (-21027%15)*/,
    -
    10251  0 /*deltaMinutes*/,
    -
    10252  1885 /*untilYear*/,
    -
    10253  9 /*untilMonth*/,
    -
    10254  18 /*untilDay*/,
    -
    10255  2880 /*untilTimeCode (43200/15)*/,
    -
    10256  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10257  },
    -
    10258  // -6:00 US C%sT 1946
    -
    10259  {
    -
    10260  &kZonePolicyUS /*zonePolicy*/,
    -
    10261  "C%T" /*format*/,
    -
    10262  -1440 /*offsetCode (-21600/15)*/,
    -
    10263  0 /*offsetRemainder (-21600%15)*/,
    -
    10264  0 /*deltaMinutes*/,
    -
    10265  1946 /*untilYear*/,
    -
    10266  1 /*untilMonth*/,
    -
    10267  1 /*untilDay*/,
    -
    10268  0 /*untilTimeCode (0/15)*/,
    -
    10269  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10270  },
    -
    10271  // -6:00 Menominee C%sT 1969 Apr 27 2:00
    -
    10272  {
    -
    10273  &kZonePolicyMenominee /*zonePolicy*/,
    -
    10274  "C%T" /*format*/,
    -
    10275  -1440 /*offsetCode (-21600/15)*/,
    -
    10276  0 /*offsetRemainder (-21600%15)*/,
    -
    10277  0 /*deltaMinutes*/,
    -
    10278  1969 /*untilYear*/,
    -
    10279  4 /*untilMonth*/,
    -
    10280  27 /*untilDay*/,
    -
    10281  480 /*untilTimeCode (7200/15)*/,
    -
    10282  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10283  },
    -
    10284  // -5:00 - EST 1973 Apr 29 2:00
    -
    10285  {
    -
    10286  nullptr /*zonePolicy*/,
    -
    10287  "EST" /*format*/,
    -
    10288  -1200 /*offsetCode (-18000/15)*/,
    -
    10289  0 /*offsetRemainder (-18000%15)*/,
    -
    10290  0 /*deltaMinutes*/,
    -
    10291  1973 /*untilYear*/,
    -
    10292  4 /*untilMonth*/,
    -
    10293  29 /*untilDay*/,
    -
    10294  480 /*untilTimeCode (7200/15)*/,
    -
    10295  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10296  },
    -
    10297  // -6:00 US C%sT
    -
    10298  {
    -
    10299  &kZonePolicyUS /*zonePolicy*/,
    -
    10300  "C%T" /*format*/,
    -
    10301  -1440 /*offsetCode (-21600/15)*/,
    -
    10302  0 /*offsetRemainder (-21600%15)*/,
    -
    10303  0 /*deltaMinutes*/,
    -
    10304  32767 /*untilYear*/,
    -
    10305  1 /*untilMonth*/,
    -
    10306  1 /*untilDay*/,
    -
    10307  0 /*untilTimeCode (0/15)*/,
    -
    10308  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10309  },
    -
    10310 
    -
    10311 };
    -
    10312 
    -
    10313 static const char kZoneNameAmerica_Menominee[] ACE_TIME_PROGMEM = "\x02" "Menominee";
    -
    10314 
    -
    10315 const complete::Info::ZoneInfo kZoneAmerica_Menominee ACE_TIME_PROGMEM = {
    -
    10316  kZoneNameAmerica_Menominee /*name*/,
    -
    10317  0xe0e9c583 /*zoneId*/,
    -
    10318  &kZoneContext /*zoneContext*/,
    -
    10319  5 /*numEras*/,
    -
    10320  kZoneEraAmerica_Menominee /*eras*/,
    -
    10321  nullptr /*targetInfo*/,
    -
    10322 };
    -
    10323 
    -
    10324 //---------------------------------------------------------------------------
    -
    10325 // Zone name: America/Merida
    -
    10326 // Eras: 4
    -
    10327 //---------------------------------------------------------------------------
    -
    10328 
    -
    10329 static const complete::Info::ZoneEra kZoneEraAmerica_Merida[] ACE_TIME_PROGMEM = {
    -
    10330  // -5:58:28 - LMT 1922 Jan 1 6:00u
    -
    10331  {
    -
    10332  nullptr /*zonePolicy*/,
    -
    10333  "LMT" /*format*/,
    -
    10334  -1434 /*offsetCode (-21508/15)*/,
    -
    10335  2 /*offsetRemainder (-21508%15)*/,
    -
    10336  0 /*deltaMinutes*/,
    -
    10337  1922 /*untilYear*/,
    -
    10338  1 /*untilMonth*/,
    -
    10339  1 /*untilDay*/,
    -
    10340  1440 /*untilTimeCode (21600/15)*/,
    -
    10341  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    10342  },
    -
    10343  // -6:00 - CST 1981 Dec 26 2:00
    -
    10344  {
    -
    10345  nullptr /*zonePolicy*/,
    -
    10346  "CST" /*format*/,
    -
    10347  -1440 /*offsetCode (-21600/15)*/,
    -
    10348  0 /*offsetRemainder (-21600%15)*/,
    -
    10349  0 /*deltaMinutes*/,
    -
    10350  1981 /*untilYear*/,
    -
    10351  12 /*untilMonth*/,
    -
    10352  26 /*untilDay*/,
    -
    10353  480 /*untilTimeCode (7200/15)*/,
    -
    10354  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10355  },
    -
    10356  // -5:00 - EST 1982 Nov 2 2:00
    -
    10357  {
    -
    10358  nullptr /*zonePolicy*/,
    -
    10359  "EST" /*format*/,
    -
    10360  -1200 /*offsetCode (-18000/15)*/,
    -
    10361  0 /*offsetRemainder (-18000%15)*/,
    -
    10362  0 /*deltaMinutes*/,
    -
    10363  1982 /*untilYear*/,
    -
    10364  11 /*untilMonth*/,
    -
    10365  2 /*untilDay*/,
    -
    10366  480 /*untilTimeCode (7200/15)*/,
    -
    10367  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10368  },
    -
    10369  // -6:00 Mexico C%sT
    -
    10370  {
    -
    10371  &kZonePolicyMexico /*zonePolicy*/,
    -
    10372  "C%T" /*format*/,
    -
    10373  -1440 /*offsetCode (-21600/15)*/,
    -
    10374  0 /*offsetRemainder (-21600%15)*/,
    -
    10375  0 /*deltaMinutes*/,
    -
    10376  32767 /*untilYear*/,
    -
    10377  1 /*untilMonth*/,
    -
    10378  1 /*untilDay*/,
    -
    10379  0 /*untilTimeCode (0/15)*/,
    -
    10380  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10381  },
    -
    10382 
    -
    10383 };
    -
    10384 
    -
    10385 static const char kZoneNameAmerica_Merida[] ACE_TIME_PROGMEM = "\x02" "Merida";
    -
    10386 
    -
    10387 const complete::Info::ZoneInfo kZoneAmerica_Merida ACE_TIME_PROGMEM = {
    -
    10388  kZoneNameAmerica_Merida /*name*/,
    -
    10389  0xacd172d8 /*zoneId*/,
    -
    10390  &kZoneContext /*zoneContext*/,
    -
    10391  4 /*numEras*/,
    -
    10392  kZoneEraAmerica_Merida /*eras*/,
    -
    10393  nullptr /*targetInfo*/,
    -
    10394 };
    -
    10395 
    -
    10396 //---------------------------------------------------------------------------
    -
    10397 // Zone name: America/Metlakatla
    -
    10398 // Eras: 10
    -
    10399 //---------------------------------------------------------------------------
    -
    10400 
    -
    10401 static const complete::Info::ZoneEra kZoneEraAmerica_Metlakatla[] ACE_TIME_PROGMEM = {
    -
    10402  // 15:13:42 - LMT 1867 Oct 19 15:44:55
    -
    10403  {
    -
    10404  nullptr /*zonePolicy*/,
    -
    10405  "LMT" /*format*/,
    -
    10406  3654 /*offsetCode (54822/15)*/,
    -
    10407  12 /*offsetRemainder (54822%15)*/,
    -
    10408  0 /*deltaMinutes*/,
    -
    10409  1867 /*untilYear*/,
    -
    10410  10 /*untilMonth*/,
    -
    10411  19 /*untilDay*/,
    -
    10412  3779 /*untilTimeCode (56695/15)*/,
    -
    10413  10 /*untilTimeModifier (kAtcSuffixW + seconds=10)*/,
    -
    10414  },
    -
    10415  // -8:46:18 - LMT 1900 Aug 20 12:00
    -
    10416  {
    -
    10417  nullptr /*zonePolicy*/,
    -
    10418  "LMT" /*format*/,
    -
    10419  -2106 /*offsetCode (-31578/15)*/,
    -
    10420  12 /*offsetRemainder (-31578%15)*/,
    -
    10421  0 /*deltaMinutes*/,
    -
    10422  1900 /*untilYear*/,
    -
    10423  8 /*untilMonth*/,
    -
    10424  20 /*untilDay*/,
    -
    10425  2880 /*untilTimeCode (43200/15)*/,
    -
    10426  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10427  },
    -
    10428  // -8:00 - PST 1942
    -
    10429  {
    -
    10430  nullptr /*zonePolicy*/,
    -
    10431  "PST" /*format*/,
    -
    10432  -1920 /*offsetCode (-28800/15)*/,
    -
    10433  0 /*offsetRemainder (-28800%15)*/,
    -
    10434  0 /*deltaMinutes*/,
    -
    10435  1942 /*untilYear*/,
    -
    10436  1 /*untilMonth*/,
    -
    10437  1 /*untilDay*/,
    -
    10438  0 /*untilTimeCode (0/15)*/,
    -
    10439  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10440  },
    -
    10441  // -8:00 US P%sT 1946
    -
    10442  {
    -
    10443  &kZonePolicyUS /*zonePolicy*/,
    -
    10444  "P%T" /*format*/,
    -
    10445  -1920 /*offsetCode (-28800/15)*/,
    -
    10446  0 /*offsetRemainder (-28800%15)*/,
    -
    10447  0 /*deltaMinutes*/,
    -
    10448  1946 /*untilYear*/,
    -
    10449  1 /*untilMonth*/,
    -
    10450  1 /*untilDay*/,
    -
    10451  0 /*untilTimeCode (0/15)*/,
    -
    10452  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10453  },
    -
    10454  // -8:00 - PST 1969
    -
    10455  {
    -
    10456  nullptr /*zonePolicy*/,
    -
    10457  "PST" /*format*/,
    -
    10458  -1920 /*offsetCode (-28800/15)*/,
    -
    10459  0 /*offsetRemainder (-28800%15)*/,
    -
    10460  0 /*deltaMinutes*/,
    -
    10461  1969 /*untilYear*/,
    -
    10462  1 /*untilMonth*/,
    -
    10463  1 /*untilDay*/,
    -
    10464  0 /*untilTimeCode (0/15)*/,
    -
    10465  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10466  },
    -
    10467  // -8:00 US P%sT 1983 Oct 30 2:00
    -
    10468  {
    -
    10469  &kZonePolicyUS /*zonePolicy*/,
    -
    10470  "P%T" /*format*/,
    -
    10471  -1920 /*offsetCode (-28800/15)*/,
    -
    10472  0 /*offsetRemainder (-28800%15)*/,
    -
    10473  0 /*deltaMinutes*/,
    -
    10474  1983 /*untilYear*/,
    -
    10475  10 /*untilMonth*/,
    -
    10476  30 /*untilDay*/,
    -
    10477  480 /*untilTimeCode (7200/15)*/,
    -
    10478  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10479  },
    -
    10480  // -8:00 - PST 2015 Nov 1 2:00
    -
    10481  {
    -
    10482  nullptr /*zonePolicy*/,
    -
    10483  "PST" /*format*/,
    -
    10484  -1920 /*offsetCode (-28800/15)*/,
    -
    10485  0 /*offsetRemainder (-28800%15)*/,
    -
    10486  0 /*deltaMinutes*/,
    -
    10487  2015 /*untilYear*/,
    -
    10488  11 /*untilMonth*/,
    -
    10489  1 /*untilDay*/,
    -
    10490  480 /*untilTimeCode (7200/15)*/,
    -
    10491  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10492  },
    -
    10493  // -9:00 US AK%sT 2018 Nov 4 2:00
    -
    10494  {
    -
    10495  &kZonePolicyUS /*zonePolicy*/,
    -
    10496  "AK%T" /*format*/,
    -
    10497  -2160 /*offsetCode (-32400/15)*/,
    -
    10498  0 /*offsetRemainder (-32400%15)*/,
    -
    10499  0 /*deltaMinutes*/,
    -
    10500  2018 /*untilYear*/,
    -
    10501  11 /*untilMonth*/,
    -
    10502  4 /*untilDay*/,
    -
    10503  480 /*untilTimeCode (7200/15)*/,
    -
    10504  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10505  },
    -
    10506  // -8:00 - PST 2019 Jan 20 2:00
    -
    10507  {
    -
    10508  nullptr /*zonePolicy*/,
    -
    10509  "PST" /*format*/,
    -
    10510  -1920 /*offsetCode (-28800/15)*/,
    -
    10511  0 /*offsetRemainder (-28800%15)*/,
    -
    10512  0 /*deltaMinutes*/,
    -
    10513  2019 /*untilYear*/,
    -
    10514  1 /*untilMonth*/,
    -
    10515  20 /*untilDay*/,
    -
    10516  480 /*untilTimeCode (7200/15)*/,
    -
    10517  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10518  },
    -
    10519  // -9:00 US AK%sT
    -
    10520  {
    -
    10521  &kZonePolicyUS /*zonePolicy*/,
    -
    10522  "AK%T" /*format*/,
    -
    10523  -2160 /*offsetCode (-32400/15)*/,
    -
    10524  0 /*offsetRemainder (-32400%15)*/,
    -
    10525  0 /*deltaMinutes*/,
    -
    10526  32767 /*untilYear*/,
    -
    10527  1 /*untilMonth*/,
    -
    10528  1 /*untilDay*/,
    -
    10529  0 /*untilTimeCode (0/15)*/,
    -
    10530  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10531  },
    -
    10532 
    -
    10533 };
    -
    10534 
    -
    10535 static const char kZoneNameAmerica_Metlakatla[] ACE_TIME_PROGMEM = "\x02" "Metlakatla";
    -
    10536 
    -
    10537 const complete::Info::ZoneInfo kZoneAmerica_Metlakatla ACE_TIME_PROGMEM = {
    -
    10538  kZoneNameAmerica_Metlakatla /*name*/,
    -
    10539  0x84de2686 /*zoneId*/,
    -
    10540  &kZoneContext /*zoneContext*/,
    -
    10541  10 /*numEras*/,
    -
    10542  kZoneEraAmerica_Metlakatla /*eras*/,
    -
    10543  nullptr /*targetInfo*/,
    -
    10544 };
    -
    10545 
    -
    10546 //---------------------------------------------------------------------------
    -
    10547 // Zone name: America/Mexico_City
    -
    10548 // Eras: 7
    -
    10549 //---------------------------------------------------------------------------
    -
    10550 
    -
    10551 static const complete::Info::ZoneEra kZoneEraAmerica_Mexico_City[] ACE_TIME_PROGMEM = {
    -
    10552  // -6:36:36 - LMT 1922 Jan 1 7:00u
    -
    10553  {
    -
    10554  nullptr /*zonePolicy*/,
    -
    10555  "LMT" /*format*/,
    -
    10556  -1587 /*offsetCode (-23796/15)*/,
    -
    10557  9 /*offsetRemainder (-23796%15)*/,
    -
    10558  0 /*deltaMinutes*/,
    -
    10559  1922 /*untilYear*/,
    -
    10560  1 /*untilMonth*/,
    -
    10561  1 /*untilDay*/,
    -
    10562  1680 /*untilTimeCode (25200/15)*/,
    -
    10563  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    10564  },
    -
    10565  // -7:00 - MST 1927 Jun 10
    -
    10566  {
    -
    10567  nullptr /*zonePolicy*/,
    -
    10568  "MST" /*format*/,
    -
    10569  -1680 /*offsetCode (-25200/15)*/,
    -
    10570  0 /*offsetRemainder (-25200%15)*/,
    -
    10571  0 /*deltaMinutes*/,
    -
    10572  1927 /*untilYear*/,
    -
    10573  6 /*untilMonth*/,
    -
    10574  10 /*untilDay*/,
    -
    10575  0 /*untilTimeCode (0/15)*/,
    -
    10576  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10577  },
    -
    10578  // -6:00 - CST 1930 Nov 15
    -
    10579  {
    -
    10580  nullptr /*zonePolicy*/,
    -
    10581  "CST" /*format*/,
    -
    10582  -1440 /*offsetCode (-21600/15)*/,
    -
    10583  0 /*offsetRemainder (-21600%15)*/,
    -
    10584  0 /*deltaMinutes*/,
    -
    10585  1930 /*untilYear*/,
    -
    10586  11 /*untilMonth*/,
    -
    10587  15 /*untilDay*/,
    -
    10588  0 /*untilTimeCode (0/15)*/,
    -
    10589  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10590  },
    -
    10591  // -7:00 Mexico M%sT 1932 Apr 1
    -
    10592  {
    -
    10593  &kZonePolicyMexico /*zonePolicy*/,
    -
    10594  "M%T" /*format*/,
    -
    10595  -1680 /*offsetCode (-25200/15)*/,
    -
    10596  0 /*offsetRemainder (-25200%15)*/,
    -
    10597  0 /*deltaMinutes*/,
    -
    10598  1932 /*untilYear*/,
    -
    10599  4 /*untilMonth*/,
    -
    10600  1 /*untilDay*/,
    -
    10601  0 /*untilTimeCode (0/15)*/,
    -
    10602  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10603  },
    -
    10604  // -6:00 Mexico C%sT 2001 Sep 30 2:00
    -
    10605  {
    -
    10606  &kZonePolicyMexico /*zonePolicy*/,
    -
    10607  "C%T" /*format*/,
    -
    10608  -1440 /*offsetCode (-21600/15)*/,
    -
    10609  0 /*offsetRemainder (-21600%15)*/,
    -
    10610  0 /*deltaMinutes*/,
    -
    10611  2001 /*untilYear*/,
    -
    10612  9 /*untilMonth*/,
    -
    10613  30 /*untilDay*/,
    -
    10614  480 /*untilTimeCode (7200/15)*/,
    -
    10615  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10616  },
    -
    10617  // -6:00 - CST 2002 Feb 20
    -
    10618  {
    -
    10619  nullptr /*zonePolicy*/,
    -
    10620  "CST" /*format*/,
    -
    10621  -1440 /*offsetCode (-21600/15)*/,
    -
    10622  0 /*offsetRemainder (-21600%15)*/,
    -
    10623  0 /*deltaMinutes*/,
    -
    10624  2002 /*untilYear*/,
    -
    10625  2 /*untilMonth*/,
    -
    10626  20 /*untilDay*/,
    -
    10627  0 /*untilTimeCode (0/15)*/,
    -
    10628  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10629  },
    -
    10630  // -6:00 Mexico C%sT
    -
    10631  {
    -
    10632  &kZonePolicyMexico /*zonePolicy*/,
    -
    10633  "C%T" /*format*/,
    -
    10634  -1440 /*offsetCode (-21600/15)*/,
    -
    10635  0 /*offsetRemainder (-21600%15)*/,
    -
    10636  0 /*deltaMinutes*/,
    -
    10637  32767 /*untilYear*/,
    -
    10638  1 /*untilMonth*/,
    -
    10639  1 /*untilDay*/,
    -
    10640  0 /*untilTimeCode (0/15)*/,
    -
    10641  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10642  },
    -
    10643 
    -
    10644 };
    -
    10645 
    -
    10646 static const char kZoneNameAmerica_Mexico_City[] ACE_TIME_PROGMEM = "\x02" "Mexico_City";
    -
    10647 
    -
    10648 const complete::Info::ZoneInfo kZoneAmerica_Mexico_City ACE_TIME_PROGMEM = {
    -
    10649  kZoneNameAmerica_Mexico_City /*name*/,
    -
    10650  0xd0d93f43 /*zoneId*/,
    -
    10651  &kZoneContext /*zoneContext*/,
    -
    10652  7 /*numEras*/,
    -
    10653  kZoneEraAmerica_Mexico_City /*eras*/,
    -
    10654  nullptr /*targetInfo*/,
    -
    10655 };
    -
    10656 
    -
    10657 //---------------------------------------------------------------------------
    -
    10658 // Zone name: America/Miquelon
    -
    10659 // Eras: 4
    -
    10660 //---------------------------------------------------------------------------
    -
    10661 
    -
    10662 static const complete::Info::ZoneEra kZoneEraAmerica_Miquelon[] ACE_TIME_PROGMEM = {
    -
    10663  // -3:44:40 - LMT 1911 Jun 15
    -
    10664  {
    -
    10665  nullptr /*zonePolicy*/,
    -
    10666  "LMT" /*format*/,
    -
    10667  -899 /*offsetCode (-13480/15)*/,
    -
    10668  5 /*offsetRemainder (-13480%15)*/,
    -
    10669  0 /*deltaMinutes*/,
    -
    10670  1911 /*untilYear*/,
    -
    10671  6 /*untilMonth*/,
    -
    10672  15 /*untilDay*/,
    -
    10673  0 /*untilTimeCode (0/15)*/,
    -
    10674  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10675  },
    -
    10676  // -4:00 - AST 1980 May
    -
    10677  {
    -
    10678  nullptr /*zonePolicy*/,
    -
    10679  "AST" /*format*/,
    -
    10680  -960 /*offsetCode (-14400/15)*/,
    -
    10681  0 /*offsetRemainder (-14400%15)*/,
    -
    10682  0 /*deltaMinutes*/,
    -
    10683  1980 /*untilYear*/,
    -
    10684  5 /*untilMonth*/,
    -
    10685  1 /*untilDay*/,
    -
    10686  0 /*untilTimeCode (0/15)*/,
    -
    10687  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10688  },
    -
    10689  // -3:00 - %z 1987
    -
    10690  {
    -
    10691  nullptr /*zonePolicy*/,
    -
    10692  "" /*format*/,
    -
    10693  -720 /*offsetCode (-10800/15)*/,
    -
    10694  0 /*offsetRemainder (-10800%15)*/,
    -
    10695  0 /*deltaMinutes*/,
    -
    10696  1987 /*untilYear*/,
    -
    10697  1 /*untilMonth*/,
    -
    10698  1 /*untilDay*/,
    -
    10699  0 /*untilTimeCode (0/15)*/,
    -
    10700  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10701  },
    -
    10702  // -3:00 Canada %z
    -
    10703  {
    -
    10704  &kZonePolicyCanada /*zonePolicy*/,
    -
    10705  "" /*format*/,
    -
    10706  -720 /*offsetCode (-10800/15)*/,
    -
    10707  0 /*offsetRemainder (-10800%15)*/,
    -
    10708  0 /*deltaMinutes*/,
    -
    10709  32767 /*untilYear*/,
    -
    10710  1 /*untilMonth*/,
    -
    10711  1 /*untilDay*/,
    -
    10712  0 /*untilTimeCode (0/15)*/,
    -
    10713  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10714  },
    -
    10715 
    -
    10716 };
    -
    10717 
    -
    10718 static const char kZoneNameAmerica_Miquelon[] ACE_TIME_PROGMEM = "\x02" "Miquelon";
    -
    10719 
    -
    10720 const complete::Info::ZoneInfo kZoneAmerica_Miquelon ACE_TIME_PROGMEM = {
    -
    10721  kZoneNameAmerica_Miquelon /*name*/,
    -
    10722  0x59674330 /*zoneId*/,
    -
    10723  &kZoneContext /*zoneContext*/,
    -
    10724  4 /*numEras*/,
    -
    10725  kZoneEraAmerica_Miquelon /*eras*/,
    -
    10726  nullptr /*targetInfo*/,
    -
    10727 };
    -
    10728 
    -
    10729 //---------------------------------------------------------------------------
    -
    10730 // Zone name: America/Moncton
    -
    10731 // Eras: 9
    -
    10732 //---------------------------------------------------------------------------
    -
    10733 
    -
    10734 static const complete::Info::ZoneEra kZoneEraAmerica_Moncton[] ACE_TIME_PROGMEM = {
    -
    10735  // -4:19:08 - LMT 1883 Dec 9
    -
    10736  {
    -
    10737  nullptr /*zonePolicy*/,
    -
    10738  "LMT" /*format*/,
    -
    10739  -1037 /*offsetCode (-15548/15)*/,
    -
    10740  7 /*offsetRemainder (-15548%15)*/,
    -
    10741  0 /*deltaMinutes*/,
    -
    10742  1883 /*untilYear*/,
    -
    10743  12 /*untilMonth*/,
    -
    10744  9 /*untilDay*/,
    -
    10745  0 /*untilTimeCode (0/15)*/,
    -
    10746  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10747  },
    -
    10748  // -5:00 - EST 1902 Jun 15
    -
    10749  {
    -
    10750  nullptr /*zonePolicy*/,
    -
    10751  "EST" /*format*/,
    -
    10752  -1200 /*offsetCode (-18000/15)*/,
    -
    10753  0 /*offsetRemainder (-18000%15)*/,
    -
    10754  0 /*deltaMinutes*/,
    -
    10755  1902 /*untilYear*/,
    -
    10756  6 /*untilMonth*/,
    -
    10757  15 /*untilDay*/,
    -
    10758  0 /*untilTimeCode (0/15)*/,
    -
    10759  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10760  },
    -
    10761  // -4:00 Canada A%sT 1933
    -
    10762  {
    -
    10763  &kZonePolicyCanada /*zonePolicy*/,
    -
    10764  "A%T" /*format*/,
    -
    10765  -960 /*offsetCode (-14400/15)*/,
    -
    10766  0 /*offsetRemainder (-14400%15)*/,
    -
    10767  0 /*deltaMinutes*/,
    -
    10768  1933 /*untilYear*/,
    -
    10769  1 /*untilMonth*/,
    -
    10770  1 /*untilDay*/,
    -
    10771  0 /*untilTimeCode (0/15)*/,
    -
    10772  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10773  },
    -
    10774  // -4:00 Moncton A%sT 1942
    -
    10775  {
    -
    10776  &kZonePolicyMoncton /*zonePolicy*/,
    -
    10777  "A%T" /*format*/,
    -
    10778  -960 /*offsetCode (-14400/15)*/,
    -
    10779  0 /*offsetRemainder (-14400%15)*/,
    -
    10780  0 /*deltaMinutes*/,
    -
    10781  1942 /*untilYear*/,
    -
    10782  1 /*untilMonth*/,
    -
    10783  1 /*untilDay*/,
    -
    10784  0 /*untilTimeCode (0/15)*/,
    -
    10785  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10786  },
    -
    10787  // -4:00 Canada A%sT 1946
    -
    10788  {
    -
    10789  &kZonePolicyCanada /*zonePolicy*/,
    -
    10790  "A%T" /*format*/,
    -
    10791  -960 /*offsetCode (-14400/15)*/,
    -
    10792  0 /*offsetRemainder (-14400%15)*/,
    -
    10793  0 /*deltaMinutes*/,
    -
    10794  1946 /*untilYear*/,
    -
    10795  1 /*untilMonth*/,
    -
    10796  1 /*untilDay*/,
    -
    10797  0 /*untilTimeCode (0/15)*/,
    -
    10798  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10799  },
    -
    10800  // -4:00 Moncton A%sT 1973
    -
    10801  {
    -
    10802  &kZonePolicyMoncton /*zonePolicy*/,
    -
    10803  "A%T" /*format*/,
    -
    10804  -960 /*offsetCode (-14400/15)*/,
    -
    10805  0 /*offsetRemainder (-14400%15)*/,
    -
    10806  0 /*deltaMinutes*/,
    -
    10807  1973 /*untilYear*/,
    -
    10808  1 /*untilMonth*/,
    -
    10809  1 /*untilDay*/,
    -
    10810  0 /*untilTimeCode (0/15)*/,
    -
    10811  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10812  },
    -
    10813  // -4:00 Canada A%sT 1993
    -
    10814  {
    -
    10815  &kZonePolicyCanada /*zonePolicy*/,
    -
    10816  "A%T" /*format*/,
    -
    10817  -960 /*offsetCode (-14400/15)*/,
    -
    10818  0 /*offsetRemainder (-14400%15)*/,
    -
    10819  0 /*deltaMinutes*/,
    -
    10820  1993 /*untilYear*/,
    -
    10821  1 /*untilMonth*/,
    -
    10822  1 /*untilDay*/,
    -
    10823  0 /*untilTimeCode (0/15)*/,
    -
    10824  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10825  },
    -
    10826  // -4:00 Moncton A%sT 2007
    -
    10827  {
    -
    10828  &kZonePolicyMoncton /*zonePolicy*/,
    -
    10829  "A%T" /*format*/,
    -
    10830  -960 /*offsetCode (-14400/15)*/,
    -
    10831  0 /*offsetRemainder (-14400%15)*/,
    -
    10832  0 /*deltaMinutes*/,
    -
    10833  2007 /*untilYear*/,
    -
    10834  1 /*untilMonth*/,
    -
    10835  1 /*untilDay*/,
    -
    10836  0 /*untilTimeCode (0/15)*/,
    -
    10837  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10838  },
    -
    10839  // -4:00 Canada A%sT
    -
    10840  {
    -
    10841  &kZonePolicyCanada /*zonePolicy*/,
    -
    10842  "A%T" /*format*/,
    -
    10843  -960 /*offsetCode (-14400/15)*/,
    -
    10844  0 /*offsetRemainder (-14400%15)*/,
    -
    10845  0 /*deltaMinutes*/,
    -
    10846  32767 /*untilYear*/,
    -
    10847  1 /*untilMonth*/,
    -
    10848  1 /*untilDay*/,
    -
    10849  0 /*untilTimeCode (0/15)*/,
    -
    10850  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10851  },
    -
    10852 
    -
    10853 };
    -
    10854 
    -
    10855 static const char kZoneNameAmerica_Moncton[] ACE_TIME_PROGMEM = "\x02" "Moncton";
    -
    10856 
    -
    10857 const complete::Info::ZoneInfo kZoneAmerica_Moncton ACE_TIME_PROGMEM = {
    -
    10858  kZoneNameAmerica_Moncton /*name*/,
    -
    10859  0x5e07fe24 /*zoneId*/,
    -
    10860  &kZoneContext /*zoneContext*/,
    -
    10861  9 /*numEras*/,
    -
    10862  kZoneEraAmerica_Moncton /*eras*/,
    -
    10863  nullptr /*targetInfo*/,
    -
    10864 };
    -
    10865 
    -
    10866 //---------------------------------------------------------------------------
    -
    10867 // Zone name: America/Monterrey
    -
    10868 // Eras: 7
    -
    10869 //---------------------------------------------------------------------------
    -
    10870 
    -
    10871 static const complete::Info::ZoneEra kZoneEraAmerica_Monterrey[] ACE_TIME_PROGMEM = {
    -
    10872  // -6:41:16 - LMT 1922 Jan 1 6:00u
    -
    10873  {
    -
    10874  nullptr /*zonePolicy*/,
    -
    10875  "LMT" /*format*/,
    -
    10876  -1606 /*offsetCode (-24076/15)*/,
    -
    10877  14 /*offsetRemainder (-24076%15)*/,
    -
    10878  0 /*deltaMinutes*/,
    -
    10879  1922 /*untilYear*/,
    -
    10880  1 /*untilMonth*/,
    -
    10881  1 /*untilDay*/,
    -
    10882  1440 /*untilTimeCode (21600/15)*/,
    -
    10883  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    10884  },
    -
    10885  // -7:00 - MST 1927 Jun 10
    -
    10886  {
    -
    10887  nullptr /*zonePolicy*/,
    -
    10888  "MST" /*format*/,
    -
    10889  -1680 /*offsetCode (-25200/15)*/,
    -
    10890  0 /*offsetRemainder (-25200%15)*/,
    -
    10891  0 /*deltaMinutes*/,
    -
    10892  1927 /*untilYear*/,
    -
    10893  6 /*untilMonth*/,
    -
    10894  10 /*untilDay*/,
    -
    10895  0 /*untilTimeCode (0/15)*/,
    -
    10896  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10897  },
    -
    10898  // -6:00 - CST 1930 Nov 15
    -
    10899  {
    -
    10900  nullptr /*zonePolicy*/,
    -
    10901  "CST" /*format*/,
    -
    10902  -1440 /*offsetCode (-21600/15)*/,
    -
    10903  0 /*offsetRemainder (-21600%15)*/,
    -
    10904  0 /*deltaMinutes*/,
    -
    10905  1930 /*untilYear*/,
    -
    10906  11 /*untilMonth*/,
    -
    10907  15 /*untilDay*/,
    -
    10908  0 /*untilTimeCode (0/15)*/,
    -
    10909  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10910  },
    -
    10911  // -7:00 Mexico M%sT 1932 Apr 1
    -
    10912  {
    -
    10913  &kZonePolicyMexico /*zonePolicy*/,
    -
    10914  "M%T" /*format*/,
    -
    10915  -1680 /*offsetCode (-25200/15)*/,
    -
    10916  0 /*offsetRemainder (-25200%15)*/,
    -
    10917  0 /*deltaMinutes*/,
    -
    10918  1932 /*untilYear*/,
    -
    10919  4 /*untilMonth*/,
    -
    10920  1 /*untilDay*/,
    -
    10921  0 /*untilTimeCode (0/15)*/,
    -
    10922  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10923  },
    -
    10924  // -6:00 - CST 1988
    -
    10925  {
    -
    10926  nullptr /*zonePolicy*/,
    -
    10927  "CST" /*format*/,
    -
    10928  -1440 /*offsetCode (-21600/15)*/,
    -
    10929  0 /*offsetRemainder (-21600%15)*/,
    -
    10930  0 /*deltaMinutes*/,
    -
    10931  1988 /*untilYear*/,
    -
    10932  1 /*untilMonth*/,
    -
    10933  1 /*untilDay*/,
    -
    10934  0 /*untilTimeCode (0/15)*/,
    -
    10935  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10936  },
    -
    10937  // -6:00 US C%sT 1989
    -
    10938  {
    -
    10939  &kZonePolicyUS /*zonePolicy*/,
    -
    10940  "C%T" /*format*/,
    -
    10941  -1440 /*offsetCode (-21600/15)*/,
    -
    10942  0 /*offsetRemainder (-21600%15)*/,
    -
    10943  0 /*deltaMinutes*/,
    -
    10944  1989 /*untilYear*/,
    -
    10945  1 /*untilMonth*/,
    -
    10946  1 /*untilDay*/,
    -
    10947  0 /*untilTimeCode (0/15)*/,
    -
    10948  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10949  },
    -
    10950  // -6:00 Mexico C%sT
    -
    10951  {
    -
    10952  &kZonePolicyMexico /*zonePolicy*/,
    -
    10953  "C%T" /*format*/,
    -
    10954  -1440 /*offsetCode (-21600/15)*/,
    -
    10955  0 /*offsetRemainder (-21600%15)*/,
    -
    10956  0 /*deltaMinutes*/,
    -
    10957  32767 /*untilYear*/,
    -
    10958  1 /*untilMonth*/,
    -
    10959  1 /*untilDay*/,
    -
    10960  0 /*untilTimeCode (0/15)*/,
    -
    10961  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10962  },
    -
    10963 
    -
    10964 };
    -
    10965 
    -
    10966 static const char kZoneNameAmerica_Monterrey[] ACE_TIME_PROGMEM = "\x02" "Monterrey";
    -
    10967 
    -
    10968 const complete::Info::ZoneInfo kZoneAmerica_Monterrey ACE_TIME_PROGMEM = {
    -
    10969  kZoneNameAmerica_Monterrey /*name*/,
    -
    10970  0x269a1deb /*zoneId*/,
    -
    10971  &kZoneContext /*zoneContext*/,
    -
    10972  7 /*numEras*/,
    -
    10973  kZoneEraAmerica_Monterrey /*eras*/,
    -
    10974  nullptr /*targetInfo*/,
    -
    10975 };
    -
    10976 
    -
    10977 //---------------------------------------------------------------------------
    -
    10978 // Zone name: America/Montevideo
    -
    10979 // Eras: 11
    -
    10980 //---------------------------------------------------------------------------
    -
    10981 
    -
    10982 static const complete::Info::ZoneEra kZoneEraAmerica_Montevideo[] ACE_TIME_PROGMEM = {
    -
    10983  // -3:44:51 - LMT 1908 Jun 10
    -
    10984  {
    -
    10985  nullptr /*zonePolicy*/,
    -
    10986  "LMT" /*format*/,
    -
    10987  -900 /*offsetCode (-13491/15)*/,
    -
    10988  9 /*offsetRemainder (-13491%15)*/,
    -
    10989  0 /*deltaMinutes*/,
    -
    10990  1908 /*untilYear*/,
    -
    10991  6 /*untilMonth*/,
    -
    10992  10 /*untilDay*/,
    -
    10993  0 /*untilTimeCode (0/15)*/,
    -
    10994  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10995  },
    -
    10996  // -3:44:51 - MMT 1920 May 1
    -
    10997  {
    -
    10998  nullptr /*zonePolicy*/,
    -
    10999  "MMT" /*format*/,
    -
    11000  -900 /*offsetCode (-13491/15)*/,
    -
    11001  9 /*offsetRemainder (-13491%15)*/,
    -
    11002  0 /*deltaMinutes*/,
    -
    11003  1920 /*untilYear*/,
    -
    11004  5 /*untilMonth*/,
    -
    11005  1 /*untilDay*/,
    -
    11006  0 /*untilTimeCode (0/15)*/,
    -
    11007  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11008  },
    -
    11009  // -4:00 - %z 1923 Oct 1
    -
    11010  {
    -
    11011  nullptr /*zonePolicy*/,
    -
    11012  "" /*format*/,
    -
    11013  -960 /*offsetCode (-14400/15)*/,
    -
    11014  0 /*offsetRemainder (-14400%15)*/,
    -
    11015  0 /*deltaMinutes*/,
    -
    11016  1923 /*untilYear*/,
    -
    11017  10 /*untilMonth*/,
    -
    11018  1 /*untilDay*/,
    -
    11019  0 /*untilTimeCode (0/15)*/,
    -
    11020  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11021  },
    -
    11022  // -3:30 Uruguay %z 1942 Dec 14
    -
    11023  {
    -
    11024  &kZonePolicyUruguay /*zonePolicy*/,
    -
    11025  "" /*format*/,
    -
    11026  -840 /*offsetCode (-12600/15)*/,
    -
    11027  0 /*offsetRemainder (-12600%15)*/,
    -
    11028  0 /*deltaMinutes*/,
    -
    11029  1942 /*untilYear*/,
    -
    11030  12 /*untilMonth*/,
    -
    11031  14 /*untilDay*/,
    -
    11032  0 /*untilTimeCode (0/15)*/,
    -
    11033  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11034  },
    -
    11035  // -3:00 Uruguay %z 1960
    -
    11036  {
    -
    11037  &kZonePolicyUruguay /*zonePolicy*/,
    -
    11038  "" /*format*/,
    -
    11039  -720 /*offsetCode (-10800/15)*/,
    -
    11040  0 /*offsetRemainder (-10800%15)*/,
    -
    11041  0 /*deltaMinutes*/,
    -
    11042  1960 /*untilYear*/,
    -
    11043  1 /*untilMonth*/,
    -
    11044  1 /*untilDay*/,
    -
    11045  0 /*untilTimeCode (0/15)*/,
    -
    11046  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11047  },
    -
    11048  // -3:00 Uruguay %z 1968
    -
    11049  {
    -
    11050  &kZonePolicyUruguay /*zonePolicy*/,
    -
    11051  "" /*format*/,
    -
    11052  -720 /*offsetCode (-10800/15)*/,
    -
    11053  0 /*offsetRemainder (-10800%15)*/,
    -
    11054  0 /*deltaMinutes*/,
    -
    11055  1968 /*untilYear*/,
    -
    11056  1 /*untilMonth*/,
    -
    11057  1 /*untilDay*/,
    -
    11058  0 /*untilTimeCode (0/15)*/,
    -
    11059  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11060  },
    -
    11061  // -3:00 Uruguay %z 1970
    -
    11062  {
    -
    11063  &kZonePolicyUruguay /*zonePolicy*/,
    -
    11064  "" /*format*/,
    -
    11065  -720 /*offsetCode (-10800/15)*/,
    -
    11066  0 /*offsetRemainder (-10800%15)*/,
    -
    11067  0 /*deltaMinutes*/,
    -
    11068  1970 /*untilYear*/,
    -
    11069  1 /*untilMonth*/,
    -
    11070  1 /*untilDay*/,
    -
    11071  0 /*untilTimeCode (0/15)*/,
    -
    11072  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11073  },
    -
    11074  // -3:00 Uruguay %z 1974
    -
    11075  {
    -
    11076  &kZonePolicyUruguay /*zonePolicy*/,
    -
    11077  "" /*format*/,
    -
    11078  -720 /*offsetCode (-10800/15)*/,
    -
    11079  0 /*offsetRemainder (-10800%15)*/,
    -
    11080  0 /*deltaMinutes*/,
    -
    11081  1974 /*untilYear*/,
    -
    11082  1 /*untilMonth*/,
    -
    11083  1 /*untilDay*/,
    -
    11084  0 /*untilTimeCode (0/15)*/,
    -
    11085  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11086  },
    -
    11087  // -3:00 Uruguay %z 1974 Mar 10
    -
    11088  {
    -
    11089  &kZonePolicyUruguay /*zonePolicy*/,
    -
    11090  "" /*format*/,
    -
    11091  -720 /*offsetCode (-10800/15)*/,
    -
    11092  0 /*offsetRemainder (-10800%15)*/,
    -
    11093  0 /*deltaMinutes*/,
    -
    11094  1974 /*untilYear*/,
    -
    11095  3 /*untilMonth*/,
    -
    11096  10 /*untilDay*/,
    -
    11097  0 /*untilTimeCode (0/15)*/,
    -
    11098  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11099  },
    -
    11100  // -3:00 Uruguay %z 1974 Dec 22
    -
    11101  {
    -
    11102  &kZonePolicyUruguay /*zonePolicy*/,
    -
    11103  "" /*format*/,
    -
    11104  -720 /*offsetCode (-10800/15)*/,
    -
    11105  0 /*offsetRemainder (-10800%15)*/,
    -
    11106  0 /*deltaMinutes*/,
    -
    11107  1974 /*untilYear*/,
    -
    11108  12 /*untilMonth*/,
    -
    11109  22 /*untilDay*/,
    -
    11110  0 /*untilTimeCode (0/15)*/,
    -
    11111  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11112  },
    -
    11113  // -3:00 Uruguay %z
    -
    11114  {
    -
    11115  &kZonePolicyUruguay /*zonePolicy*/,
    -
    11116  "" /*format*/,
    -
    11117  -720 /*offsetCode (-10800/15)*/,
    -
    11118  0 /*offsetRemainder (-10800%15)*/,
    -
    11119  0 /*deltaMinutes*/,
    -
    11120  32767 /*untilYear*/,
    -
    11121  1 /*untilMonth*/,
    -
    11122  1 /*untilDay*/,
    -
    11123  0 /*untilTimeCode (0/15)*/,
    -
    11124  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11125  },
    -
    11126 
    -
    11127 };
    -
    11128 
    -
    11129 static const char kZoneNameAmerica_Montevideo[] ACE_TIME_PROGMEM = "\x02" "Montevideo";
    -
    11130 
    -
    11131 const complete::Info::ZoneInfo kZoneAmerica_Montevideo ACE_TIME_PROGMEM = {
    -
    11132  kZoneNameAmerica_Montevideo /*name*/,
    -
    11133  0xfa214780 /*zoneId*/,
    -
    11134  &kZoneContext /*zoneContext*/,
    -
    11135  11 /*numEras*/,
    -
    11136  kZoneEraAmerica_Montevideo /*eras*/,
    -
    11137  nullptr /*targetInfo*/,
    -
    11138 };
    -
    11139 
    -
    11140 //---------------------------------------------------------------------------
    -
    11141 // Zone name: America/New_York
    -
    11142 // Eras: 6
    -
    11143 //---------------------------------------------------------------------------
    -
    11144 
    -
    11145 static const complete::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = {
    -
    11146  // -4:56:02 - LMT 1883 Nov 18 17:00u
    -
    11147  {
    -
    11148  nullptr /*zonePolicy*/,
    -
    11149  "LMT" /*format*/,
    -
    11150  -1185 /*offsetCode (-17762/15)*/,
    -
    11151  13 /*offsetRemainder (-17762%15)*/,
    -
    11152  0 /*deltaMinutes*/,
    -
    11153  1883 /*untilYear*/,
    -
    11154  11 /*untilMonth*/,
    -
    11155  18 /*untilDay*/,
    -
    11156  4080 /*untilTimeCode (61200/15)*/,
    -
    11157  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    11158  },
    -
    11159  // -5:00 US E%sT 1920
    -
    11160  {
    -
    11161  &kZonePolicyUS /*zonePolicy*/,
    -
    11162  "E%T" /*format*/,
    -
    11163  -1200 /*offsetCode (-18000/15)*/,
    -
    11164  0 /*offsetRemainder (-18000%15)*/,
    -
    11165  0 /*deltaMinutes*/,
    -
    11166  1920 /*untilYear*/,
    -
    11167  1 /*untilMonth*/,
    -
    11168  1 /*untilDay*/,
    -
    11169  0 /*untilTimeCode (0/15)*/,
    -
    11170  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11171  },
    -
    11172  // -5:00 NYC E%sT 1942
    -
    11173  {
    -
    11174  &kZonePolicyNYC /*zonePolicy*/,
    -
    11175  "E%T" /*format*/,
    -
    11176  -1200 /*offsetCode (-18000/15)*/,
    -
    11177  0 /*offsetRemainder (-18000%15)*/,
    -
    11178  0 /*deltaMinutes*/,
    -
    11179  1942 /*untilYear*/,
    -
    11180  1 /*untilMonth*/,
    -
    11181  1 /*untilDay*/,
    -
    11182  0 /*untilTimeCode (0/15)*/,
    -
    11183  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11184  },
    -
    11185  // -5:00 US E%sT 1946
    -
    11186  {
    -
    11187  &kZonePolicyUS /*zonePolicy*/,
    -
    11188  "E%T" /*format*/,
    -
    11189  -1200 /*offsetCode (-18000/15)*/,
    -
    11190  0 /*offsetRemainder (-18000%15)*/,
    -
    11191  0 /*deltaMinutes*/,
    -
    11192  1946 /*untilYear*/,
    -
    11193  1 /*untilMonth*/,
    -
    11194  1 /*untilDay*/,
    -
    11195  0 /*untilTimeCode (0/15)*/,
    -
    11196  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11197  },
    -
    11198  // -5:00 NYC E%sT 1967
    -
    11199  {
    -
    11200  &kZonePolicyNYC /*zonePolicy*/,
    -
    11201  "E%T" /*format*/,
    -
    11202  -1200 /*offsetCode (-18000/15)*/,
    -
    11203  0 /*offsetRemainder (-18000%15)*/,
    -
    11204  0 /*deltaMinutes*/,
    -
    11205  1967 /*untilYear*/,
    -
    11206  1 /*untilMonth*/,
    -
    11207  1 /*untilDay*/,
    -
    11208  0 /*untilTimeCode (0/15)*/,
    -
    11209  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11210  },
    -
    11211  // -5:00 US E%sT
    -
    11212  {
    -
    11213  &kZonePolicyUS /*zonePolicy*/,
    -
    11214  "E%T" /*format*/,
    -
    11215  -1200 /*offsetCode (-18000/15)*/,
    -
    11216  0 /*offsetRemainder (-18000%15)*/,
    -
    11217  0 /*deltaMinutes*/,
    -
    11218  32767 /*untilYear*/,
    -
    11219  1 /*untilMonth*/,
    -
    11220  1 /*untilDay*/,
    -
    11221  0 /*untilTimeCode (0/15)*/,
    -
    11222  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11223  },
    -
    11224 
    -
    11225 };
    -
    11226 
    -
    11227 static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "\x02" "New_York";
    -
    11228 
    -
    11229 const complete::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = {
    -
    11230  kZoneNameAmerica_New_York /*name*/,
    -
    11231  0x1e2a7654 /*zoneId*/,
    -
    11232  &kZoneContext /*zoneContext*/,
    -
    11233  6 /*numEras*/,
    -
    11234  kZoneEraAmerica_New_York /*eras*/,
    -
    11235  nullptr /*targetInfo*/,
    -
    11236 };
    -
    11237 
    -
    11238 //---------------------------------------------------------------------------
    -
    11239 // Zone name: America/Nome
    -
    11240 // Eras: 9
    -
    11241 //---------------------------------------------------------------------------
    -
    11242 
    -
    11243 static const complete::Info::ZoneEra kZoneEraAmerica_Nome[] ACE_TIME_PROGMEM = {
    -
    11244  // 12:58:22 - LMT 1867 Oct 19 13:29:35
    -
    11245  {
    -
    11246  nullptr /*zonePolicy*/,
    -
    11247  "LMT" /*format*/,
    -
    11248  3113 /*offsetCode (46702/15)*/,
    -
    11249  7 /*offsetRemainder (46702%15)*/,
    -
    11250  0 /*deltaMinutes*/,
    -
    11251  1867 /*untilYear*/,
    -
    11252  10 /*untilMonth*/,
    -
    11253  19 /*untilDay*/,
    -
    11254  3238 /*untilTimeCode (48575/15)*/,
    -
    11255  5 /*untilTimeModifier (kAtcSuffixW + seconds=5)*/,
    -
    11256  },
    -
    11257  // -11:01:38 - LMT 1900 Aug 20 12:00
    -
    11258  {
    -
    11259  nullptr /*zonePolicy*/,
    -
    11260  "LMT" /*format*/,
    -
    11261  -2647 /*offsetCode (-39698/15)*/,
    -
    11262  7 /*offsetRemainder (-39698%15)*/,
    -
    11263  0 /*deltaMinutes*/,
    -
    11264  1900 /*untilYear*/,
    -
    11265  8 /*untilMonth*/,
    -
    11266  20 /*untilDay*/,
    -
    11267  2880 /*untilTimeCode (43200/15)*/,
    -
    11268  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11269  },
    -
    11270  // -11:00 - NST 1942
    -
    11271  {
    -
    11272  nullptr /*zonePolicy*/,
    -
    11273  "NST" /*format*/,
    -
    11274  -2640 /*offsetCode (-39600/15)*/,
    -
    11275  0 /*offsetRemainder (-39600%15)*/,
    -
    11276  0 /*deltaMinutes*/,
    -
    11277  1942 /*untilYear*/,
    -
    11278  1 /*untilMonth*/,
    -
    11279  1 /*untilDay*/,
    -
    11280  0 /*untilTimeCode (0/15)*/,
    -
    11281  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11282  },
    -
    11283  // -11:00 US N%sT 1946
    -
    11284  {
    -
    11285  &kZonePolicyUS /*zonePolicy*/,
    -
    11286  "N%T" /*format*/,
    -
    11287  -2640 /*offsetCode (-39600/15)*/,
    -
    11288  0 /*offsetRemainder (-39600%15)*/,
    -
    11289  0 /*deltaMinutes*/,
    -
    11290  1946 /*untilYear*/,
    -
    11291  1 /*untilMonth*/,
    -
    11292  1 /*untilDay*/,
    -
    11293  0 /*untilTimeCode (0/15)*/,
    -
    11294  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11295  },
    -
    11296  // -11:00 - NST 1967 Apr
    -
    11297  {
    -
    11298  nullptr /*zonePolicy*/,
    -
    11299  "NST" /*format*/,
    -
    11300  -2640 /*offsetCode (-39600/15)*/,
    -
    11301  0 /*offsetRemainder (-39600%15)*/,
    -
    11302  0 /*deltaMinutes*/,
    -
    11303  1967 /*untilYear*/,
    -
    11304  4 /*untilMonth*/,
    -
    11305  1 /*untilDay*/,
    -
    11306  0 /*untilTimeCode (0/15)*/,
    -
    11307  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11308  },
    -
    11309  // -11:00 - BST 1969
    -
    11310  {
    -
    11311  nullptr /*zonePolicy*/,
    -
    11312  "BST" /*format*/,
    -
    11313  -2640 /*offsetCode (-39600/15)*/,
    -
    11314  0 /*offsetRemainder (-39600%15)*/,
    -
    11315  0 /*deltaMinutes*/,
    -
    11316  1969 /*untilYear*/,
    -
    11317  1 /*untilMonth*/,
    -
    11318  1 /*untilDay*/,
    -
    11319  0 /*untilTimeCode (0/15)*/,
    -
    11320  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11321  },
    -
    11322  // -11:00 US B%sT 1983 Oct 30 2:00
    -
    11323  {
    -
    11324  &kZonePolicyUS /*zonePolicy*/,
    -
    11325  "B%T" /*format*/,
    -
    11326  -2640 /*offsetCode (-39600/15)*/,
    -
    11327  0 /*offsetRemainder (-39600%15)*/,
    -
    11328  0 /*deltaMinutes*/,
    -
    11329  1983 /*untilYear*/,
    -
    11330  10 /*untilMonth*/,
    -
    11331  30 /*untilDay*/,
    -
    11332  480 /*untilTimeCode (7200/15)*/,
    -
    11333  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11334  },
    -
    11335  // -9:00 US Y%sT 1983 Nov 30
    -
    11336  {
    -
    11337  &kZonePolicyUS /*zonePolicy*/,
    -
    11338  "Y%T" /*format*/,
    -
    11339  -2160 /*offsetCode (-32400/15)*/,
    -
    11340  0 /*offsetRemainder (-32400%15)*/,
    -
    11341  0 /*deltaMinutes*/,
    -
    11342  1983 /*untilYear*/,
    -
    11343  11 /*untilMonth*/,
    -
    11344  30 /*untilDay*/,
    -
    11345  0 /*untilTimeCode (0/15)*/,
    -
    11346  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11347  },
    -
    11348  // -9:00 US AK%sT
    -
    11349  {
    -
    11350  &kZonePolicyUS /*zonePolicy*/,
    -
    11351  "AK%T" /*format*/,
    -
    11352  -2160 /*offsetCode (-32400/15)*/,
    -
    11353  0 /*offsetRemainder (-32400%15)*/,
    -
    11354  0 /*deltaMinutes*/,
    -
    11355  32767 /*untilYear*/,
    -
    11356  1 /*untilMonth*/,
    -
    11357  1 /*untilDay*/,
    -
    11358  0 /*untilTimeCode (0/15)*/,
    -
    11359  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11360  },
    -
    11361 
    -
    11362 };
    -
    11363 
    -
    11364 static const char kZoneNameAmerica_Nome[] ACE_TIME_PROGMEM = "\x02" "Nome";
    -
    11365 
    -
    11366 const complete::Info::ZoneInfo kZoneAmerica_Nome ACE_TIME_PROGMEM = {
    -
    11367  kZoneNameAmerica_Nome /*name*/,
    -
    11368  0x98059b15 /*zoneId*/,
    -
    11369  &kZoneContext /*zoneContext*/,
    -
    11370  9 /*numEras*/,
    -
    11371  kZoneEraAmerica_Nome /*eras*/,
    -
    11372  nullptr /*targetInfo*/,
    -
    11373 };
    -
    11374 
    -
    11375 //---------------------------------------------------------------------------
    -
    11376 // Zone name: America/Noronha
    -
    11377 // Eras: 7
    -
    11378 //---------------------------------------------------------------------------
    -
    11379 
    -
    11380 static const complete::Info::ZoneEra kZoneEraAmerica_Noronha[] ACE_TIME_PROGMEM = {
    -
    11381  // -2:09:40 - LMT 1914
    -
    11382  {
    -
    11383  nullptr /*zonePolicy*/,
    -
    11384  "LMT" /*format*/,
    -
    11385  -519 /*offsetCode (-7780/15)*/,
    -
    11386  5 /*offsetRemainder (-7780%15)*/,
    -
    11387  0 /*deltaMinutes*/,
    -
    11388  1914 /*untilYear*/,
    -
    11389  1 /*untilMonth*/,
    -
    11390  1 /*untilDay*/,
    -
    11391  0 /*untilTimeCode (0/15)*/,
    -
    11392  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11393  },
    -
    11394  // -2:00 Brazil %z 1990 Sep 17
    -
    11395  {
    -
    11396  &kZonePolicyBrazil /*zonePolicy*/,
    -
    11397  "" /*format*/,
    -
    11398  -480 /*offsetCode (-7200/15)*/,
    -
    11399  0 /*offsetRemainder (-7200%15)*/,
    -
    11400  0 /*deltaMinutes*/,
    -
    11401  1990 /*untilYear*/,
    -
    11402  9 /*untilMonth*/,
    -
    11403  17 /*untilDay*/,
    -
    11404  0 /*untilTimeCode (0/15)*/,
    -
    11405  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11406  },
    -
    11407  // -2:00 - %z 1999 Sep 30
    -
    11408  {
    -
    11409  nullptr /*zonePolicy*/,
    -
    11410  "" /*format*/,
    -
    11411  -480 /*offsetCode (-7200/15)*/,
    -
    11412  0 /*offsetRemainder (-7200%15)*/,
    -
    11413  0 /*deltaMinutes*/,
    -
    11414  1999 /*untilYear*/,
    -
    11415  9 /*untilMonth*/,
    -
    11416  30 /*untilDay*/,
    -
    11417  0 /*untilTimeCode (0/15)*/,
    -
    11418  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11419  },
    -
    11420  // -2:00 Brazil %z 2000 Oct 15
    -
    11421  {
    -
    11422  &kZonePolicyBrazil /*zonePolicy*/,
    -
    11423  "" /*format*/,
    -
    11424  -480 /*offsetCode (-7200/15)*/,
    -
    11425  0 /*offsetRemainder (-7200%15)*/,
    -
    11426  0 /*deltaMinutes*/,
    -
    11427  2000 /*untilYear*/,
    -
    11428  10 /*untilMonth*/,
    -
    11429  15 /*untilDay*/,
    -
    11430  0 /*untilTimeCode (0/15)*/,
    -
    11431  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11432  },
    -
    11433  // -2:00 - %z 2001 Sep 13
    -
    11434  {
    -
    11435  nullptr /*zonePolicy*/,
    -
    11436  "" /*format*/,
    -
    11437  -480 /*offsetCode (-7200/15)*/,
    -
    11438  0 /*offsetRemainder (-7200%15)*/,
    -
    11439  0 /*deltaMinutes*/,
    -
    11440  2001 /*untilYear*/,
    -
    11441  9 /*untilMonth*/,
    -
    11442  13 /*untilDay*/,
    -
    11443  0 /*untilTimeCode (0/15)*/,
    -
    11444  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11445  },
    -
    11446  // -2:00 Brazil %z 2002 Oct 1
    -
    11447  {
    -
    11448  &kZonePolicyBrazil /*zonePolicy*/,
    -
    11449  "" /*format*/,
    -
    11450  -480 /*offsetCode (-7200/15)*/,
    -
    11451  0 /*offsetRemainder (-7200%15)*/,
    -
    11452  0 /*deltaMinutes*/,
    -
    11453  2002 /*untilYear*/,
    -
    11454  10 /*untilMonth*/,
    -
    11455  1 /*untilDay*/,
    -
    11456  0 /*untilTimeCode (0/15)*/,
    -
    11457  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11458  },
    -
    11459  // -2:00 - %z
    -
    11460  {
    -
    11461  nullptr /*zonePolicy*/,
    -
    11462  "" /*format*/,
    -
    11463  -480 /*offsetCode (-7200/15)*/,
    -
    11464  0 /*offsetRemainder (-7200%15)*/,
    -
    11465  0 /*deltaMinutes*/,
    -
    11466  32767 /*untilYear*/,
    -
    11467  1 /*untilMonth*/,
    -
    11468  1 /*untilDay*/,
    -
    11469  0 /*untilTimeCode (0/15)*/,
    -
    11470  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11471  },
    -
    11472 
    -
    11473 };
    -
    11474 
    -
    11475 static const char kZoneNameAmerica_Noronha[] ACE_TIME_PROGMEM = "\x02" "Noronha";
    -
    11476 
    -
    11477 const complete::Info::ZoneInfo kZoneAmerica_Noronha ACE_TIME_PROGMEM = {
    -
    11478  kZoneNameAmerica_Noronha /*name*/,
    -
    11479  0xab5116fb /*zoneId*/,
    -
    11480  &kZoneContext /*zoneContext*/,
    -
    11481  7 /*numEras*/,
    -
    11482  kZoneEraAmerica_Noronha /*eras*/,
    -
    11483  nullptr /*targetInfo*/,
    -
    11484 };
    -
    11485 
    -
    11486 //---------------------------------------------------------------------------
    -
    11487 // Zone name: America/North_Dakota/Beulah
    -
    11488 // Eras: 3
    -
    11489 //---------------------------------------------------------------------------
    -
    11490 
    -
    11491 static const complete::Info::ZoneEra kZoneEraAmerica_North_Dakota_Beulah[] ACE_TIME_PROGMEM = {
    -
    11492  // -6:47:07 - LMT 1883 Nov 18 19:00u
    -
    11493  {
    -
    11494  nullptr /*zonePolicy*/,
    -
    11495  "LMT" /*format*/,
    -
    11496  -1629 /*offsetCode (-24427/15)*/,
    -
    11497  8 /*offsetRemainder (-24427%15)*/,
    -
    11498  0 /*deltaMinutes*/,
    -
    11499  1883 /*untilYear*/,
    -
    11500  11 /*untilMonth*/,
    -
    11501  18 /*untilDay*/,
    -
    11502  4560 /*untilTimeCode (68400/15)*/,
    -
    11503  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    11504  },
    -
    11505  // -7:00 US M%sT 2010 Nov 7 2:00
    -
    11506  {
    -
    11507  &kZonePolicyUS /*zonePolicy*/,
    -
    11508  "M%T" /*format*/,
    -
    11509  -1680 /*offsetCode (-25200/15)*/,
    -
    11510  0 /*offsetRemainder (-25200%15)*/,
    -
    11511  0 /*deltaMinutes*/,
    -
    11512  2010 /*untilYear*/,
    -
    11513  11 /*untilMonth*/,
    -
    11514  7 /*untilDay*/,
    -
    11515  480 /*untilTimeCode (7200/15)*/,
    -
    11516  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11517  },
    -
    11518  // -6:00 US C%sT
    -
    11519  {
    -
    11520  &kZonePolicyUS /*zonePolicy*/,
    -
    11521  "C%T" /*format*/,
    -
    11522  -1440 /*offsetCode (-21600/15)*/,
    -
    11523  0 /*offsetRemainder (-21600%15)*/,
    -
    11524  0 /*deltaMinutes*/,
    -
    11525  32767 /*untilYear*/,
    -
    11526  1 /*untilMonth*/,
    -
    11527  1 /*untilDay*/,
    -
    11528  0 /*untilTimeCode (0/15)*/,
    -
    11529  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11530  },
    -
    11531 
    -
    11532 };
    -
    11533 
    -
    11534 static const char kZoneNameAmerica_North_Dakota_Beulah[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/Beulah";
    -
    11535 
    -
    11536 const complete::Info::ZoneInfo kZoneAmerica_North_Dakota_Beulah ACE_TIME_PROGMEM = {
    -
    11537  kZoneNameAmerica_North_Dakota_Beulah /*name*/,
    -
    11538  0x9b52b384 /*zoneId*/,
    -
    11539  &kZoneContext /*zoneContext*/,
    -
    11540  3 /*numEras*/,
    -
    11541  kZoneEraAmerica_North_Dakota_Beulah /*eras*/,
    -
    11542  nullptr /*targetInfo*/,
    -
    11543 };
    -
    11544 
    -
    11545 //---------------------------------------------------------------------------
    -
    11546 // Zone name: America/North_Dakota/Center
    -
    11547 // Eras: 3
    -
    11548 //---------------------------------------------------------------------------
    -
    11549 
    -
    11550 static const complete::Info::ZoneEra kZoneEraAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = {
    -
    11551  // -6:45:12 - LMT 1883 Nov 18 19:00u
    -
    11552  {
    -
    11553  nullptr /*zonePolicy*/,
    -
    11554  "LMT" /*format*/,
    -
    11555  -1621 /*offsetCode (-24312/15)*/,
    -
    11556  3 /*offsetRemainder (-24312%15)*/,
    -
    11557  0 /*deltaMinutes*/,
    -
    11558  1883 /*untilYear*/,
    -
    11559  11 /*untilMonth*/,
    -
    11560  18 /*untilDay*/,
    -
    11561  4560 /*untilTimeCode (68400/15)*/,
    -
    11562  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    11563  },
    -
    11564  // -7:00 US M%sT 1992 Oct 25 2:00
    -
    11565  {
    -
    11566  &kZonePolicyUS /*zonePolicy*/,
    -
    11567  "M%T" /*format*/,
    -
    11568  -1680 /*offsetCode (-25200/15)*/,
    -
    11569  0 /*offsetRemainder (-25200%15)*/,
    -
    11570  0 /*deltaMinutes*/,
    -
    11571  1992 /*untilYear*/,
    -
    11572  10 /*untilMonth*/,
    -
    11573  25 /*untilDay*/,
    -
    11574  480 /*untilTimeCode (7200/15)*/,
    -
    11575  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11576  },
    -
    11577  // -6:00 US C%sT
    -
    11578  {
    -
    11579  &kZonePolicyUS /*zonePolicy*/,
    -
    11580  "C%T" /*format*/,
    -
    11581  -1440 /*offsetCode (-21600/15)*/,
    -
    11582  0 /*offsetRemainder (-21600%15)*/,
    -
    11583  0 /*deltaMinutes*/,
    -
    11584  32767 /*untilYear*/,
    -
    11585  1 /*untilMonth*/,
    -
    11586  1 /*untilDay*/,
    -
    11587  0 /*untilTimeCode (0/15)*/,
    -
    11588  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11589  },
    -
    11590 
    -
    11591 };
    -
    11592 
    -
    11593 static const char kZoneNameAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/Center";
    -
    11594 
    -
    11595 const complete::Info::ZoneInfo kZoneAmerica_North_Dakota_Center ACE_TIME_PROGMEM = {
    -
    11596  kZoneNameAmerica_North_Dakota_Center /*name*/,
    -
    11597  0x9da42814 /*zoneId*/,
    -
    11598  &kZoneContext /*zoneContext*/,
    -
    11599  3 /*numEras*/,
    -
    11600  kZoneEraAmerica_North_Dakota_Center /*eras*/,
    -
    11601  nullptr /*targetInfo*/,
    -
    11602 };
    -
    11603 
    -
    11604 //---------------------------------------------------------------------------
    -
    11605 // Zone name: America/North_Dakota/New_Salem
    -
    11606 // Eras: 3
    -
    11607 //---------------------------------------------------------------------------
    -
    11608 
    -
    11609 static const complete::Info::ZoneEra kZoneEraAmerica_North_Dakota_New_Salem[] ACE_TIME_PROGMEM = {
    -
    11610  // -6:45:39 - LMT 1883 Nov 18 19:00u
    -
    11611  {
    -
    11612  nullptr /*zonePolicy*/,
    -
    11613  "LMT" /*format*/,
    -
    11614  -1623 /*offsetCode (-24339/15)*/,
    -
    11615  6 /*offsetRemainder (-24339%15)*/,
    -
    11616  0 /*deltaMinutes*/,
    -
    11617  1883 /*untilYear*/,
    -
    11618  11 /*untilMonth*/,
    -
    11619  18 /*untilDay*/,
    -
    11620  4560 /*untilTimeCode (68400/15)*/,
    -
    11621  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    11622  },
    -
    11623  // -7:00 US M%sT 2003 Oct 26 2:00
    -
    11624  {
    -
    11625  &kZonePolicyUS /*zonePolicy*/,
    -
    11626  "M%T" /*format*/,
    -
    11627  -1680 /*offsetCode (-25200/15)*/,
    -
    11628  0 /*offsetRemainder (-25200%15)*/,
    -
    11629  0 /*deltaMinutes*/,
    -
    11630  2003 /*untilYear*/,
    -
    11631  10 /*untilMonth*/,
    -
    11632  26 /*untilDay*/,
    -
    11633  480 /*untilTimeCode (7200/15)*/,
    -
    11634  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11635  },
    -
    11636  // -6:00 US C%sT
    -
    11637  {
    -
    11638  &kZonePolicyUS /*zonePolicy*/,
    -
    11639  "C%T" /*format*/,
    -
    11640  -1440 /*offsetCode (-21600/15)*/,
    -
    11641  0 /*offsetRemainder (-21600%15)*/,
    -
    11642  0 /*deltaMinutes*/,
    -
    11643  32767 /*untilYear*/,
    -
    11644  1 /*untilMonth*/,
    -
    11645  1 /*untilDay*/,
    -
    11646  0 /*untilTimeCode (0/15)*/,
    -
    11647  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11648  },
    -
    11649 
    -
    11650 };
    -
    11651 
    -
    11652 static const char kZoneNameAmerica_North_Dakota_New_Salem[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/New_Salem";
    -
    11653 
    -
    11654 const complete::Info::ZoneInfo kZoneAmerica_North_Dakota_New_Salem ACE_TIME_PROGMEM = {
    -
    11655  kZoneNameAmerica_North_Dakota_New_Salem /*name*/,
    -
    11656  0x04f9958e /*zoneId*/,
    -
    11657  &kZoneContext /*zoneContext*/,
    -
    11658  3 /*numEras*/,
    -
    11659  kZoneEraAmerica_North_Dakota_New_Salem /*eras*/,
    -
    11660  nullptr /*targetInfo*/,
    -
    11661 };
    -
    11662 
    -
    11663 //---------------------------------------------------------------------------
    -
    11664 // Zone name: America/Nuuk
    -
    11665 // Eras: 5
    -
    11666 //---------------------------------------------------------------------------
    -
    11667 
    -
    11668 static const complete::Info::ZoneEra kZoneEraAmerica_Nuuk[] ACE_TIME_PROGMEM = {
    -
    11669  // -3:26:56 - LMT 1916 Jul 28
    -
    11670  {
    -
    11671  nullptr /*zonePolicy*/,
    -
    11672  "LMT" /*format*/,
    -
    11673  -828 /*offsetCode (-12416/15)*/,
    -
    11674  4 /*offsetRemainder (-12416%15)*/,
    -
    11675  0 /*deltaMinutes*/,
    -
    11676  1916 /*untilYear*/,
    -
    11677  7 /*untilMonth*/,
    -
    11678  28 /*untilDay*/,
    -
    11679  0 /*untilTimeCode (0/15)*/,
    -
    11680  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11681  },
    -
    11682  // -3:00 - %z 1980 Apr 6 2:00
    -
    11683  {
    -
    11684  nullptr /*zonePolicy*/,
    -
    11685  "" /*format*/,
    -
    11686  -720 /*offsetCode (-10800/15)*/,
    -
    11687  0 /*offsetRemainder (-10800%15)*/,
    -
    11688  0 /*deltaMinutes*/,
    -
    11689  1980 /*untilYear*/,
    -
    11690  4 /*untilMonth*/,
    -
    11691  6 /*untilDay*/,
    -
    11692  480 /*untilTimeCode (7200/15)*/,
    -
    11693  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11694  },
    -
    11695  // -3:00 EU %z 2023 Mar 26 1:00u
    -
    11696  {
    -
    11697  &kZonePolicyEU /*zonePolicy*/,
    -
    11698  "" /*format*/,
    -
    11699  -720 /*offsetCode (-10800/15)*/,
    -
    11700  0 /*offsetRemainder (-10800%15)*/,
    -
    11701  0 /*deltaMinutes*/,
    -
    11702  2023 /*untilYear*/,
    -
    11703  3 /*untilMonth*/,
    -
    11704  26 /*untilDay*/,
    -
    11705  240 /*untilTimeCode (3600/15)*/,
    -
    11706  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    11707  },
    -
    11708  // -2:00 - %z 2023 Oct 29 1:00u
    -
    11709  {
    -
    11710  nullptr /*zonePolicy*/,
    -
    11711  "" /*format*/,
    -
    11712  -480 /*offsetCode (-7200/15)*/,
    -
    11713  0 /*offsetRemainder (-7200%15)*/,
    -
    11714  0 /*deltaMinutes*/,
    -
    11715  2023 /*untilYear*/,
    -
    11716  10 /*untilMonth*/,
    -
    11717  29 /*untilDay*/,
    -
    11718  240 /*untilTimeCode (3600/15)*/,
    -
    11719  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    11720  },
    -
    11721  // -2:00 EU %z
    -
    11722  {
    -
    11723  &kZonePolicyEU /*zonePolicy*/,
    -
    11724  "" /*format*/,
    -
    11725  -480 /*offsetCode (-7200/15)*/,
    -
    11726  0 /*offsetRemainder (-7200%15)*/,
    -
    11727  0 /*deltaMinutes*/,
    -
    11728  32767 /*untilYear*/,
    -
    11729  1 /*untilMonth*/,
    -
    11730  1 /*untilDay*/,
    -
    11731  0 /*untilTimeCode (0/15)*/,
    -
    11732  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11733  },
    -
    11734 
    -
    11735 };
    -
    11736 
    -
    11737 static const char kZoneNameAmerica_Nuuk[] ACE_TIME_PROGMEM = "\x02" "Nuuk";
    -
    11738 
    -
    11739 const complete::Info::ZoneInfo kZoneAmerica_Nuuk ACE_TIME_PROGMEM = {
    -
    11740  kZoneNameAmerica_Nuuk /*name*/,
    -
    11741  0x9805b5a9 /*zoneId*/,
    -
    11742  &kZoneContext /*zoneContext*/,
    -
    11743  5 /*numEras*/,
    -
    11744  kZoneEraAmerica_Nuuk /*eras*/,
    -
    11745  nullptr /*targetInfo*/,
    -
    11746 };
    -
    11747 
    -
    11748 //---------------------------------------------------------------------------
    -
    11749 // Zone name: America/Ojinaga
    -
    11750 // Eras: 11
    -
    11751 //---------------------------------------------------------------------------
    -
    11752 
    -
    11753 static const complete::Info::ZoneEra kZoneEraAmerica_Ojinaga[] ACE_TIME_PROGMEM = {
    -
    11754  // -6:57:40 - LMT 1922 Jan 1 7:00u
    -
    11755  {
    -
    11756  nullptr /*zonePolicy*/,
    -
    11757  "LMT" /*format*/,
    -
    11758  -1671 /*offsetCode (-25060/15)*/,
    -
    11759  5 /*offsetRemainder (-25060%15)*/,
    -
    11760  0 /*deltaMinutes*/,
    -
    11761  1922 /*untilYear*/,
    -
    11762  1 /*untilMonth*/,
    -
    11763  1 /*untilDay*/,
    -
    11764  1680 /*untilTimeCode (25200/15)*/,
    -
    11765  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    11766  },
    -
    11767  // -7:00 - MST 1927 Jun 10
    -
    11768  {
    -
    11769  nullptr /*zonePolicy*/,
    -
    11770  "MST" /*format*/,
    -
    11771  -1680 /*offsetCode (-25200/15)*/,
    -
    11772  0 /*offsetRemainder (-25200%15)*/,
    -
    11773  0 /*deltaMinutes*/,
    -
    11774  1927 /*untilYear*/,
    -
    11775  6 /*untilMonth*/,
    -
    11776  10 /*untilDay*/,
    -
    11777  0 /*untilTimeCode (0/15)*/,
    -
    11778  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11779  },
    -
    11780  // -6:00 - CST 1930 Nov 15
    -
    11781  {
    -
    11782  nullptr /*zonePolicy*/,
    -
    11783  "CST" /*format*/,
    -
    11784  -1440 /*offsetCode (-21600/15)*/,
    -
    11785  0 /*offsetRemainder (-21600%15)*/,
    -
    11786  0 /*deltaMinutes*/,
    -
    11787  1930 /*untilYear*/,
    -
    11788  11 /*untilMonth*/,
    -
    11789  15 /*untilDay*/,
    -
    11790  0 /*untilTimeCode (0/15)*/,
    -
    11791  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11792  },
    -
    11793  // -7:00 Mexico M%sT 1932 Apr 1
    -
    11794  {
    -
    11795  &kZonePolicyMexico /*zonePolicy*/,
    -
    11796  "M%T" /*format*/,
    -
    11797  -1680 /*offsetCode (-25200/15)*/,
    -
    11798  0 /*offsetRemainder (-25200%15)*/,
    -
    11799  0 /*deltaMinutes*/,
    -
    11800  1932 /*untilYear*/,
    -
    11801  4 /*untilMonth*/,
    -
    11802  1 /*untilDay*/,
    -
    11803  0 /*untilTimeCode (0/15)*/,
    -
    11804  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11805  },
    -
    11806  // -6:00 - CST 1996
    -
    11807  {
    -
    11808  nullptr /*zonePolicy*/,
    -
    11809  "CST" /*format*/,
    -
    11810  -1440 /*offsetCode (-21600/15)*/,
    -
    11811  0 /*offsetRemainder (-21600%15)*/,
    -
    11812  0 /*deltaMinutes*/,
    -
    11813  1996 /*untilYear*/,
    -
    11814  1 /*untilMonth*/,
    -
    11815  1 /*untilDay*/,
    -
    11816  0 /*untilTimeCode (0/15)*/,
    -
    11817  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11818  },
    -
    11819  // -6:00 Mexico C%sT 1998
    -
    11820  {
    -
    11821  &kZonePolicyMexico /*zonePolicy*/,
    -
    11822  "C%T" /*format*/,
    -
    11823  -1440 /*offsetCode (-21600/15)*/,
    -
    11824  0 /*offsetRemainder (-21600%15)*/,
    -
    11825  0 /*deltaMinutes*/,
    -
    11826  1998 /*untilYear*/,
    -
    11827  1 /*untilMonth*/,
    -
    11828  1 /*untilDay*/,
    -
    11829  0 /*untilTimeCode (0/15)*/,
    -
    11830  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11831  },
    -
    11832  // -6:00 - CST 1998 Apr Sun>=1 3:00
    -
    11833  {
    -
    11834  nullptr /*zonePolicy*/,
    -
    11835  "CST" /*format*/,
    -
    11836  -1440 /*offsetCode (-21600/15)*/,
    -
    11837  0 /*offsetRemainder (-21600%15)*/,
    -
    11838  0 /*deltaMinutes*/,
    -
    11839  1998 /*untilYear*/,
    -
    11840  4 /*untilMonth*/,
    -
    11841  5 /*untilDay*/,
    -
    11842  720 /*untilTimeCode (10800/15)*/,
    -
    11843  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11844  },
    -
    11845  // -7:00 Mexico M%sT 2010
    -
    11846  {
    -
    11847  &kZonePolicyMexico /*zonePolicy*/,
    -
    11848  "M%T" /*format*/,
    -
    11849  -1680 /*offsetCode (-25200/15)*/,
    -
    11850  0 /*offsetRemainder (-25200%15)*/,
    -
    11851  0 /*deltaMinutes*/,
    -
    11852  2010 /*untilYear*/,
    -
    11853  1 /*untilMonth*/,
    -
    11854  1 /*untilDay*/,
    -
    11855  0 /*untilTimeCode (0/15)*/,
    -
    11856  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11857  },
    -
    11858  // -7:00 US M%sT 2022 Oct 30 2:00
    -
    11859  {
    -
    11860  &kZonePolicyUS /*zonePolicy*/,
    -
    11861  "M%T" /*format*/,
    -
    11862  -1680 /*offsetCode (-25200/15)*/,
    -
    11863  0 /*offsetRemainder (-25200%15)*/,
    -
    11864  0 /*deltaMinutes*/,
    -
    11865  2022 /*untilYear*/,
    -
    11866  10 /*untilMonth*/,
    -
    11867  30 /*untilDay*/,
    -
    11868  480 /*untilTimeCode (7200/15)*/,
    -
    11869  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11870  },
    -
    11871  // -6:00 - CST 2022 Nov 30 0:00
    -
    11872  {
    -
    11873  nullptr /*zonePolicy*/,
    -
    11874  "CST" /*format*/,
    -
    11875  -1440 /*offsetCode (-21600/15)*/,
    -
    11876  0 /*offsetRemainder (-21600%15)*/,
    -
    11877  0 /*deltaMinutes*/,
    -
    11878  2022 /*untilYear*/,
    -
    11879  11 /*untilMonth*/,
    -
    11880  30 /*untilDay*/,
    -
    11881  0 /*untilTimeCode (0/15)*/,
    -
    11882  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11883  },
    -
    11884  // -6:00 US C%sT
    -
    11885  {
    -
    11886  &kZonePolicyUS /*zonePolicy*/,
    -
    11887  "C%T" /*format*/,
    -
    11888  -1440 /*offsetCode (-21600/15)*/,
    -
    11889  0 /*offsetRemainder (-21600%15)*/,
    -
    11890  0 /*deltaMinutes*/,
    -
    11891  32767 /*untilYear*/,
    -
    11892  1 /*untilMonth*/,
    -
    11893  1 /*untilDay*/,
    -
    11894  0 /*untilTimeCode (0/15)*/,
    -
    11895  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11896  },
    -
    11897 
    -
    11898 };
    -
    11899 
    -
    11900 static const char kZoneNameAmerica_Ojinaga[] ACE_TIME_PROGMEM = "\x02" "Ojinaga";
    -
    11901 
    -
    11902 const complete::Info::ZoneInfo kZoneAmerica_Ojinaga ACE_TIME_PROGMEM = {
    -
    11903  kZoneNameAmerica_Ojinaga /*name*/,
    -
    11904  0xebfde83f /*zoneId*/,
    -
    11905  &kZoneContext /*zoneContext*/,
    -
    11906  11 /*numEras*/,
    -
    11907  kZoneEraAmerica_Ojinaga /*eras*/,
    -
    11908  nullptr /*targetInfo*/,
    -
    11909 };
    -
    11910 
    -
    11911 //---------------------------------------------------------------------------
    -
    11912 // Zone name: America/Panama
    -
    11913 // Eras: 3
    -
    11914 //---------------------------------------------------------------------------
    -
    11915 
    -
    11916 static const complete::Info::ZoneEra kZoneEraAmerica_Panama[] ACE_TIME_PROGMEM = {
    -
    11917  // -5:18:08 - LMT 1890
    -
    11918  {
    -
    11919  nullptr /*zonePolicy*/,
    -
    11920  "LMT" /*format*/,
    -
    11921  -1273 /*offsetCode (-19088/15)*/,
    -
    11922  7 /*offsetRemainder (-19088%15)*/,
    -
    11923  0 /*deltaMinutes*/,
    -
    11924  1890 /*untilYear*/,
    -
    11925  1 /*untilMonth*/,
    -
    11926  1 /*untilDay*/,
    -
    11927  0 /*untilTimeCode (0/15)*/,
    -
    11928  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11929  },
    -
    11930  // -5:19:36 - CMT 1908 Apr 22
    -
    11931  {
    -
    11932  nullptr /*zonePolicy*/,
    -
    11933  "CMT" /*format*/,
    -
    11934  -1279 /*offsetCode (-19176/15)*/,
    -
    11935  9 /*offsetRemainder (-19176%15)*/,
    -
    11936  0 /*deltaMinutes*/,
    -
    11937  1908 /*untilYear*/,
    -
    11938  4 /*untilMonth*/,
    -
    11939  22 /*untilDay*/,
    -
    11940  0 /*untilTimeCode (0/15)*/,
    -
    11941  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11942  },
    -
    11943  // -5:00 - EST
    -
    11944  {
    -
    11945  nullptr /*zonePolicy*/,
    -
    11946  "EST" /*format*/,
    -
    11947  -1200 /*offsetCode (-18000/15)*/,
    -
    11948  0 /*offsetRemainder (-18000%15)*/,
    -
    11949  0 /*deltaMinutes*/,
    -
    11950  32767 /*untilYear*/,
    -
    11951  1 /*untilMonth*/,
    -
    11952  1 /*untilDay*/,
    -
    11953  0 /*untilTimeCode (0/15)*/,
    -
    11954  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11955  },
    -
    11956 
    -
    11957 };
    -
    11958 
    -
    11959 static const char kZoneNameAmerica_Panama[] ACE_TIME_PROGMEM = "\x02" "Panama";
    -
    11960 
    -
    11961 const complete::Info::ZoneInfo kZoneAmerica_Panama ACE_TIME_PROGMEM = {
    -
    11962  kZoneNameAmerica_Panama /*name*/,
    -
    11963  0xb3863854 /*zoneId*/,
    -
    11964  &kZoneContext /*zoneContext*/,
    -
    11965  3 /*numEras*/,
    -
    11966  kZoneEraAmerica_Panama /*eras*/,
    -
    11967  nullptr /*targetInfo*/,
    -
    11968 };
    -
    11969 
    -
    11970 //---------------------------------------------------------------------------
    -
    11971 // Zone name: America/Paramaribo
    -
    11972 // Eras: 5
    -
    11973 //---------------------------------------------------------------------------
    -
    11974 
    -
    11975 static const complete::Info::ZoneEra kZoneEraAmerica_Paramaribo[] ACE_TIME_PROGMEM = {
    -
    11976  // -3:40:40 - LMT 1911
    -
    11977  {
    -
    11978  nullptr /*zonePolicy*/,
    -
    11979  "LMT" /*format*/,
    -
    11980  -883 /*offsetCode (-13240/15)*/,
    -
    11981  5 /*offsetRemainder (-13240%15)*/,
    -
    11982  0 /*deltaMinutes*/,
    -
    11983  1911 /*untilYear*/,
    -
    11984  1 /*untilMonth*/,
    -
    11985  1 /*untilDay*/,
    -
    11986  0 /*untilTimeCode (0/15)*/,
    -
    11987  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11988  },
    -
    11989  // -3:40:52 - PMT 1935
    -
    11990  {
    -
    11991  nullptr /*zonePolicy*/,
    -
    11992  "PMT" /*format*/,
    -
    11993  -884 /*offsetCode (-13252/15)*/,
    -
    11994  8 /*offsetRemainder (-13252%15)*/,
    -
    11995  0 /*deltaMinutes*/,
    -
    11996  1935 /*untilYear*/,
    -
    11997  1 /*untilMonth*/,
    -
    11998  1 /*untilDay*/,
    -
    11999  0 /*untilTimeCode (0/15)*/,
    -
    12000  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12001  },
    -
    12002  // -3:40:36 - PMT 1945 Oct
    -
    12003  {
    -
    12004  nullptr /*zonePolicy*/,
    -
    12005  "PMT" /*format*/,
    -
    12006  -883 /*offsetCode (-13236/15)*/,
    -
    12007  9 /*offsetRemainder (-13236%15)*/,
    -
    12008  0 /*deltaMinutes*/,
    -
    12009  1945 /*untilYear*/,
    -
    12010  10 /*untilMonth*/,
    -
    12011  1 /*untilDay*/,
    -
    12012  0 /*untilTimeCode (0/15)*/,
    -
    12013  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12014  },
    -
    12015  // -3:30 - %z 1984 Oct
    -
    12016  {
    -
    12017  nullptr /*zonePolicy*/,
    -
    12018  "" /*format*/,
    -
    12019  -840 /*offsetCode (-12600/15)*/,
    -
    12020  0 /*offsetRemainder (-12600%15)*/,
    -
    12021  0 /*deltaMinutes*/,
    -
    12022  1984 /*untilYear*/,
    -
    12023  10 /*untilMonth*/,
    -
    12024  1 /*untilDay*/,
    -
    12025  0 /*untilTimeCode (0/15)*/,
    -
    12026  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12027  },
    -
    12028  // -3:00 - %z
    -
    12029  {
    -
    12030  nullptr /*zonePolicy*/,
    -
    12031  "" /*format*/,
    -
    12032  -720 /*offsetCode (-10800/15)*/,
    -
    12033  0 /*offsetRemainder (-10800%15)*/,
    -
    12034  0 /*deltaMinutes*/,
    -
    12035  32767 /*untilYear*/,
    -
    12036  1 /*untilMonth*/,
    -
    12037  1 /*untilDay*/,
    -
    12038  0 /*untilTimeCode (0/15)*/,
    -
    12039  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12040  },
    -
    12041 
    -
    12042 };
    -
    12043 
    -
    12044 static const char kZoneNameAmerica_Paramaribo[] ACE_TIME_PROGMEM = "\x02" "Paramaribo";
    -
    12045 
    -
    12046 const complete::Info::ZoneInfo kZoneAmerica_Paramaribo ACE_TIME_PROGMEM = {
    -
    12047  kZoneNameAmerica_Paramaribo /*name*/,
    -
    12048  0xb319e4c4 /*zoneId*/,
    -
    12049  &kZoneContext /*zoneContext*/,
    -
    12050  5 /*numEras*/,
    -
    12051  kZoneEraAmerica_Paramaribo /*eras*/,
    -
    12052  nullptr /*targetInfo*/,
    -
    12053 };
    -
    12054 
    -
    12055 //---------------------------------------------------------------------------
    -
    12056 // Zone name: America/Phoenix
    -
    12057 // Eras: 7
    -
    12058 //---------------------------------------------------------------------------
    -
    12059 
    -
    12060 static const complete::Info::ZoneEra kZoneEraAmerica_Phoenix[] ACE_TIME_PROGMEM = {
    -
    12061  // -7:28:18 - LMT 1883 Nov 18 19:00u
    -
    12062  {
    -
    12063  nullptr /*zonePolicy*/,
    -
    12064  "LMT" /*format*/,
    -
    12065  -1794 /*offsetCode (-26898/15)*/,
    -
    12066  12 /*offsetRemainder (-26898%15)*/,
    -
    12067  0 /*deltaMinutes*/,
    -
    12068  1883 /*untilYear*/,
    -
    12069  11 /*untilMonth*/,
    -
    12070  18 /*untilDay*/,
    -
    12071  4560 /*untilTimeCode (68400/15)*/,
    -
    12072  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    12073  },
    -
    12074  // -7:00 US M%sT 1944 Jan 1 0:01
    -
    12075  {
    -
    12076  &kZonePolicyUS /*zonePolicy*/,
    -
    12077  "M%T" /*format*/,
    -
    12078  -1680 /*offsetCode (-25200/15)*/,
    -
    12079  0 /*offsetRemainder (-25200%15)*/,
    -
    12080  0 /*deltaMinutes*/,
    -
    12081  1944 /*untilYear*/,
    -
    12082  1 /*untilMonth*/,
    -
    12083  1 /*untilDay*/,
    -
    12084  4 /*untilTimeCode (60/15)*/,
    -
    12085  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12086  },
    -
    12087  // -7:00 - MST 1944 Apr 1 0:01
    -
    12088  {
    -
    12089  nullptr /*zonePolicy*/,
    -
    12090  "MST" /*format*/,
    -
    12091  -1680 /*offsetCode (-25200/15)*/,
    -
    12092  0 /*offsetRemainder (-25200%15)*/,
    -
    12093  0 /*deltaMinutes*/,
    -
    12094  1944 /*untilYear*/,
    -
    12095  4 /*untilMonth*/,
    -
    12096  1 /*untilDay*/,
    -
    12097  4 /*untilTimeCode (60/15)*/,
    -
    12098  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12099  },
    -
    12100  // -7:00 US M%sT 1944 Oct 1 0:01
    -
    12101  {
    -
    12102  &kZonePolicyUS /*zonePolicy*/,
    -
    12103  "M%T" /*format*/,
    -
    12104  -1680 /*offsetCode (-25200/15)*/,
    -
    12105  0 /*offsetRemainder (-25200%15)*/,
    -
    12106  0 /*deltaMinutes*/,
    -
    12107  1944 /*untilYear*/,
    -
    12108  10 /*untilMonth*/,
    -
    12109  1 /*untilDay*/,
    -
    12110  4 /*untilTimeCode (60/15)*/,
    -
    12111  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12112  },
    -
    12113  // -7:00 - MST 1967
    -
    12114  {
    -
    12115  nullptr /*zonePolicy*/,
    -
    12116  "MST" /*format*/,
    -
    12117  -1680 /*offsetCode (-25200/15)*/,
    -
    12118  0 /*offsetRemainder (-25200%15)*/,
    -
    12119  0 /*deltaMinutes*/,
    -
    12120  1967 /*untilYear*/,
    -
    12121  1 /*untilMonth*/,
    -
    12122  1 /*untilDay*/,
    -
    12123  0 /*untilTimeCode (0/15)*/,
    -
    12124  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12125  },
    -
    12126  // -7:00 US M%sT 1968 Mar 21
    -
    12127  {
    -
    12128  &kZonePolicyUS /*zonePolicy*/,
    -
    12129  "M%T" /*format*/,
    -
    12130  -1680 /*offsetCode (-25200/15)*/,
    -
    12131  0 /*offsetRemainder (-25200%15)*/,
    -
    12132  0 /*deltaMinutes*/,
    -
    12133  1968 /*untilYear*/,
    -
    12134  3 /*untilMonth*/,
    -
    12135  21 /*untilDay*/,
    -
    12136  0 /*untilTimeCode (0/15)*/,
    -
    12137  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12138  },
    -
    12139  // -7:00 - MST
    -
    12140  {
    -
    12141  nullptr /*zonePolicy*/,
    -
    12142  "MST" /*format*/,
    -
    12143  -1680 /*offsetCode (-25200/15)*/,
    -
    12144  0 /*offsetRemainder (-25200%15)*/,
    -
    12145  0 /*deltaMinutes*/,
    -
    12146  32767 /*untilYear*/,
    -
    12147  1 /*untilMonth*/,
    -
    12148  1 /*untilDay*/,
    -
    12149  0 /*untilTimeCode (0/15)*/,
    -
    12150  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12151  },
    -
    12152 
    -
    12153 };
    -
    12154 
    -
    12155 static const char kZoneNameAmerica_Phoenix[] ACE_TIME_PROGMEM = "\x02" "Phoenix";
    -
    12156 
    -
    12157 const complete::Info::ZoneInfo kZoneAmerica_Phoenix ACE_TIME_PROGMEM = {
    -
    12158  kZoneNameAmerica_Phoenix /*name*/,
    -
    12159  0x34b5af01 /*zoneId*/,
    -
    12160  &kZoneContext /*zoneContext*/,
    -
    12161  7 /*numEras*/,
    -
    12162  kZoneEraAmerica_Phoenix /*eras*/,
    -
    12163  nullptr /*targetInfo*/,
    -
    12164 };
    -
    12165 
    -
    12166 //---------------------------------------------------------------------------
    -
    12167 // Zone name: America/Port-au-Prince
    -
    12168 // Eras: 3
    -
    12169 //---------------------------------------------------------------------------
    -
    12170 
    -
    12171 static const complete::Info::ZoneEra kZoneEraAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = {
    -
    12172  // -4:49:20 - LMT 1890
    -
    12173  {
    -
    12174  nullptr /*zonePolicy*/,
    -
    12175  "LMT" /*format*/,
    -
    12176  -1158 /*offsetCode (-17360/15)*/,
    -
    12177  10 /*offsetRemainder (-17360%15)*/,
    -
    12178  0 /*deltaMinutes*/,
    -
    12179  1890 /*untilYear*/,
    -
    12180  1 /*untilMonth*/,
    -
    12181  1 /*untilDay*/,
    -
    12182  0 /*untilTimeCode (0/15)*/,
    -
    12183  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12184  },
    -
    12185  // -4:49 - PPMT 1917 Jan 24 12:00
    -
    12186  {
    -
    12187  nullptr /*zonePolicy*/,
    -
    12188  "PPMT" /*format*/,
    -
    12189  -1156 /*offsetCode (-17340/15)*/,
    -
    12190  0 /*offsetRemainder (-17340%15)*/,
    -
    12191  0 /*deltaMinutes*/,
    -
    12192  1917 /*untilYear*/,
    -
    12193  1 /*untilMonth*/,
    -
    12194  24 /*untilDay*/,
    -
    12195  2880 /*untilTimeCode (43200/15)*/,
    -
    12196  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12197  },
    -
    12198  // -5:00 Haiti E%sT
    -
    12199  {
    -
    12200  &kZonePolicyHaiti /*zonePolicy*/,
    -
    12201  "E%T" /*format*/,
    -
    12202  -1200 /*offsetCode (-18000/15)*/,
    -
    12203  0 /*offsetRemainder (-18000%15)*/,
    -
    12204  0 /*deltaMinutes*/,
    -
    12205  32767 /*untilYear*/,
    -
    12206  1 /*untilMonth*/,
    -
    12207  1 /*untilDay*/,
    -
    12208  0 /*untilTimeCode (0/15)*/,
    -
    12209  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12210  },
    -
    12211 
    -
    12212 };
    -
    12213 
    -
    12214 static const char kZoneNameAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = "\x02" "Port-au-Prince";
    -
    12215 
    -
    12216 const complete::Info::ZoneInfo kZoneAmerica_Port_au_Prince ACE_TIME_PROGMEM = {
    -
    12217  kZoneNameAmerica_Port_au_Prince /*name*/,
    -
    12218  0x8e4a7bdc /*zoneId*/,
    -
    12219  &kZoneContext /*zoneContext*/,
    -
    12220  3 /*numEras*/,
    -
    12221  kZoneEraAmerica_Port_au_Prince /*eras*/,
    -
    12222  nullptr /*targetInfo*/,
    -
    12223 };
    -
    12224 
    -
    12225 //---------------------------------------------------------------------------
    -
    12226 // Zone name: America/Porto_Velho
    -
    12227 // Eras: 3
    -
    12228 //---------------------------------------------------------------------------
    -
    12229 
    -
    12230 static const complete::Info::ZoneEra kZoneEraAmerica_Porto_Velho[] ACE_TIME_PROGMEM = {
    -
    12231  // -4:15:36 - LMT 1914
    -
    12232  {
    -
    12233  nullptr /*zonePolicy*/,
    -
    12234  "LMT" /*format*/,
    -
    12235  -1023 /*offsetCode (-15336/15)*/,
    -
    12236  9 /*offsetRemainder (-15336%15)*/,
    -
    12237  0 /*deltaMinutes*/,
    -
    12238  1914 /*untilYear*/,
    -
    12239  1 /*untilMonth*/,
    -
    12240  1 /*untilDay*/,
    -
    12241  0 /*untilTimeCode (0/15)*/,
    -
    12242  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12243  },
    -
    12244  // -4:00 Brazil %z 1988 Sep 12
    -
    12245  {
    -
    12246  &kZonePolicyBrazil /*zonePolicy*/,
    -
    12247  "" /*format*/,
    -
    12248  -960 /*offsetCode (-14400/15)*/,
    -
    12249  0 /*offsetRemainder (-14400%15)*/,
    -
    12250  0 /*deltaMinutes*/,
    -
    12251  1988 /*untilYear*/,
    -
    12252  9 /*untilMonth*/,
    -
    12253  12 /*untilDay*/,
    -
    12254  0 /*untilTimeCode (0/15)*/,
    -
    12255  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12256  },
    -
    12257  // -4:00 - %z
    -
    12258  {
    -
    12259  nullptr /*zonePolicy*/,
    -
    12260  "" /*format*/,
    -
    12261  -960 /*offsetCode (-14400/15)*/,
    -
    12262  0 /*offsetRemainder (-14400%15)*/,
    -
    12263  0 /*deltaMinutes*/,
    -
    12264  32767 /*untilYear*/,
    -
    12265  1 /*untilMonth*/,
    -
    12266  1 /*untilDay*/,
    -
    12267  0 /*untilTimeCode (0/15)*/,
    -
    12268  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12269  },
    -
    12270 
    -
    12271 };
    -
    12272 
    -
    12273 static const char kZoneNameAmerica_Porto_Velho[] ACE_TIME_PROGMEM = "\x02" "Porto_Velho";
    -
    12274 
    -
    12275 const complete::Info::ZoneInfo kZoneAmerica_Porto_Velho ACE_TIME_PROGMEM = {
    -
    12276  kZoneNameAmerica_Porto_Velho /*name*/,
    -
    12277  0x6b1aac77 /*zoneId*/,
    -
    12278  &kZoneContext /*zoneContext*/,
    -
    12279  3 /*numEras*/,
    -
    12280  kZoneEraAmerica_Porto_Velho /*eras*/,
    -
    12281  nullptr /*targetInfo*/,
    -
    12282 };
    -
    12283 
    -
    12284 //---------------------------------------------------------------------------
    -
    12285 // Zone name: America/Puerto_Rico
    -
    12286 // Eras: 4
    -
    12287 //---------------------------------------------------------------------------
    -
    12288 
    -
    12289 static const complete::Info::ZoneEra kZoneEraAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = {
    -
    12290  // -4:24:25 - LMT 1899 Mar 28 12:00
    -
    12291  {
    -
    12292  nullptr /*zonePolicy*/,
    -
    12293  "LMT" /*format*/,
    -
    12294  -1058 /*offsetCode (-15865/15)*/,
    -
    12295  5 /*offsetRemainder (-15865%15)*/,
    -
    12296  0 /*deltaMinutes*/,
    -
    12297  1899 /*untilYear*/,
    -
    12298  3 /*untilMonth*/,
    -
    12299  28 /*untilDay*/,
    -
    12300  2880 /*untilTimeCode (43200/15)*/,
    -
    12301  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12302  },
    -
    12303  // -4:00 - AST 1942 May 3
    -
    12304  {
    -
    12305  nullptr /*zonePolicy*/,
    -
    12306  "AST" /*format*/,
    -
    12307  -960 /*offsetCode (-14400/15)*/,
    -
    12308  0 /*offsetRemainder (-14400%15)*/,
    -
    12309  0 /*deltaMinutes*/,
    -
    12310  1942 /*untilYear*/,
    -
    12311  5 /*untilMonth*/,
    -
    12312  3 /*untilDay*/,
    -
    12313  0 /*untilTimeCode (0/15)*/,
    -
    12314  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12315  },
    -
    12316  // -4:00 US A%sT 1946
    -
    12317  {
    -
    12318  &kZonePolicyUS /*zonePolicy*/,
    -
    12319  "A%T" /*format*/,
    -
    12320  -960 /*offsetCode (-14400/15)*/,
    -
    12321  0 /*offsetRemainder (-14400%15)*/,
    -
    12322  0 /*deltaMinutes*/,
    -
    12323  1946 /*untilYear*/,
    -
    12324  1 /*untilMonth*/,
    -
    12325  1 /*untilDay*/,
    -
    12326  0 /*untilTimeCode (0/15)*/,
    -
    12327  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12328  },
    -
    12329  // -4:00 - AST
    -
    12330  {
    -
    12331  nullptr /*zonePolicy*/,
    -
    12332  "AST" /*format*/,
    -
    12333  -960 /*offsetCode (-14400/15)*/,
    -
    12334  0 /*offsetRemainder (-14400%15)*/,
    -
    12335  0 /*deltaMinutes*/,
    -
    12336  32767 /*untilYear*/,
    -
    12337  1 /*untilMonth*/,
    -
    12338  1 /*untilDay*/,
    -
    12339  0 /*untilTimeCode (0/15)*/,
    -
    12340  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12341  },
    -
    12342 
    -
    12343 };
    -
    12344 
    -
    12345 static const char kZoneNameAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = "\x02" "Puerto_Rico";
    -
    12346 
    -
    12347 const complete::Info::ZoneInfo kZoneAmerica_Puerto_Rico ACE_TIME_PROGMEM = {
    -
    12348  kZoneNameAmerica_Puerto_Rico /*name*/,
    -
    12349  0x6752ca31 /*zoneId*/,
    -
    12350  &kZoneContext /*zoneContext*/,
    -
    12351  4 /*numEras*/,
    -
    12352  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    12353  nullptr /*targetInfo*/,
    -
    12354 };
    -
    12355 
    -
    12356 //---------------------------------------------------------------------------
    -
    12357 // Zone name: America/Punta_Arenas
    -
    12358 // Eras: 14
    -
    12359 //---------------------------------------------------------------------------
    -
    12360 
    -
    12361 static const complete::Info::ZoneEra kZoneEraAmerica_Punta_Arenas[] ACE_TIME_PROGMEM = {
    -
    12362  // -4:43:40 - LMT 1890
    -
    12363  {
    -
    12364  nullptr /*zonePolicy*/,
    -
    12365  "LMT" /*format*/,
    -
    12366  -1135 /*offsetCode (-17020/15)*/,
    -
    12367  5 /*offsetRemainder (-17020%15)*/,
    -
    12368  0 /*deltaMinutes*/,
    -
    12369  1890 /*untilYear*/,
    -
    12370  1 /*untilMonth*/,
    -
    12371  1 /*untilDay*/,
    -
    12372  0 /*untilTimeCode (0/15)*/,
    -
    12373  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12374  },
    -
    12375  // -4:42:45 - SMT 1910 Jan 10
    -
    12376  {
    -
    12377  nullptr /*zonePolicy*/,
    -
    12378  "SMT" /*format*/,
    -
    12379  -1131 /*offsetCode (-16965/15)*/,
    -
    12380  0 /*offsetRemainder (-16965%15)*/,
    -
    12381  0 /*deltaMinutes*/,
    -
    12382  1910 /*untilYear*/,
    -
    12383  1 /*untilMonth*/,
    -
    12384  10 /*untilDay*/,
    -
    12385  0 /*untilTimeCode (0/15)*/,
    -
    12386  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12387  },
    -
    12388  // -5:00 - %z 1916 Jul 1
    -
    12389  {
    -
    12390  nullptr /*zonePolicy*/,
    -
    12391  "" /*format*/,
    -
    12392  -1200 /*offsetCode (-18000/15)*/,
    -
    12393  0 /*offsetRemainder (-18000%15)*/,
    -
    12394  0 /*deltaMinutes*/,
    -
    12395  1916 /*untilYear*/,
    -
    12396  7 /*untilMonth*/,
    -
    12397  1 /*untilDay*/,
    -
    12398  0 /*untilTimeCode (0/15)*/,
    -
    12399  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12400  },
    -
    12401  // -4:42:45 - SMT 1918 Sep 10
    -
    12402  {
    -
    12403  nullptr /*zonePolicy*/,
    -
    12404  "SMT" /*format*/,
    -
    12405  -1131 /*offsetCode (-16965/15)*/,
    -
    12406  0 /*offsetRemainder (-16965%15)*/,
    -
    12407  0 /*deltaMinutes*/,
    -
    12408  1918 /*untilYear*/,
    -
    12409  9 /*untilMonth*/,
    -
    12410  10 /*untilDay*/,
    -
    12411  0 /*untilTimeCode (0/15)*/,
    -
    12412  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12413  },
    -
    12414  // -4:00 - %z 1919 Jul 1
    -
    12415  {
    -
    12416  nullptr /*zonePolicy*/,
    -
    12417  "" /*format*/,
    -
    12418  -960 /*offsetCode (-14400/15)*/,
    -
    12419  0 /*offsetRemainder (-14400%15)*/,
    -
    12420  0 /*deltaMinutes*/,
    -
    12421  1919 /*untilYear*/,
    -
    12422  7 /*untilMonth*/,
    -
    12423  1 /*untilDay*/,
    -
    12424  0 /*untilTimeCode (0/15)*/,
    -
    12425  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12426  },
    -
    12427  // -4:42:45 - SMT 1927 Sep 1
    -
    12428  {
    -
    12429  nullptr /*zonePolicy*/,
    -
    12430  "SMT" /*format*/,
    -
    12431  -1131 /*offsetCode (-16965/15)*/,
    -
    12432  0 /*offsetRemainder (-16965%15)*/,
    -
    12433  0 /*deltaMinutes*/,
    -
    12434  1927 /*untilYear*/,
    -
    12435  9 /*untilMonth*/,
    -
    12436  1 /*untilDay*/,
    -
    12437  0 /*untilTimeCode (0/15)*/,
    -
    12438  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12439  },
    -
    12440  // -5:00 Chile %z 1932 Sep 1
    -
    12441  {
    -
    12442  &kZonePolicyChile /*zonePolicy*/,
    -
    12443  "" /*format*/,
    -
    12444  -1200 /*offsetCode (-18000/15)*/,
    -
    12445  0 /*offsetRemainder (-18000%15)*/,
    -
    12446  0 /*deltaMinutes*/,
    -
    12447  1932 /*untilYear*/,
    -
    12448  9 /*untilMonth*/,
    -
    12449  1 /*untilDay*/,
    -
    12450  0 /*untilTimeCode (0/15)*/,
    -
    12451  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12452  },
    -
    12453  // -4:00 - %z 1942 Jun 1
    -
    12454  {
    -
    12455  nullptr /*zonePolicy*/,
    -
    12456  "" /*format*/,
    -
    12457  -960 /*offsetCode (-14400/15)*/,
    -
    12458  0 /*offsetRemainder (-14400%15)*/,
    -
    12459  0 /*deltaMinutes*/,
    -
    12460  1942 /*untilYear*/,
    -
    12461  6 /*untilMonth*/,
    -
    12462  1 /*untilDay*/,
    -
    12463  0 /*untilTimeCode (0/15)*/,
    -
    12464  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12465  },
    -
    12466  // -5:00 - %z 1942 Aug 1
    -
    12467  {
    -
    12468  nullptr /*zonePolicy*/,
    -
    12469  "" /*format*/,
    -
    12470  -1200 /*offsetCode (-18000/15)*/,
    -
    12471  0 /*offsetRemainder (-18000%15)*/,
    -
    12472  0 /*deltaMinutes*/,
    -
    12473  1942 /*untilYear*/,
    -
    12474  8 /*untilMonth*/,
    -
    12475  1 /*untilDay*/,
    -
    12476  0 /*untilTimeCode (0/15)*/,
    -
    12477  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12478  },
    -
    12479  // -4:00 - %z 1946 Aug 28 24:00
    -
    12480  {
    -
    12481  nullptr /*zonePolicy*/,
    -
    12482  "" /*format*/,
    -
    12483  -960 /*offsetCode (-14400/15)*/,
    -
    12484  0 /*offsetRemainder (-14400%15)*/,
    -
    12485  0 /*deltaMinutes*/,
    -
    12486  1946 /*untilYear*/,
    -
    12487  8 /*untilMonth*/,
    -
    12488  28 /*untilDay*/,
    -
    12489  5760 /*untilTimeCode (86400/15)*/,
    -
    12490  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12491  },
    -
    12492  // -5:00 1:00 %z 1947 Mar 31 24:00
    -
    12493  {
    -
    12494  nullptr /*zonePolicy*/,
    -
    12495  "" /*format*/,
    -
    12496  -1200 /*offsetCode (-18000/15)*/,
    -
    12497  0 /*offsetRemainder (-18000%15)*/,
    -
    12498  60 /*deltaMinutes*/,
    -
    12499  1947 /*untilYear*/,
    -
    12500  3 /*untilMonth*/,
    -
    12501  31 /*untilDay*/,
    -
    12502  5760 /*untilTimeCode (86400/15)*/,
    -
    12503  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12504  },
    -
    12505  // -5:00 - %z 1947 May 21 23:00
    -
    12506  {
    -
    12507  nullptr /*zonePolicy*/,
    -
    12508  "" /*format*/,
    -
    12509  -1200 /*offsetCode (-18000/15)*/,
    -
    12510  0 /*offsetRemainder (-18000%15)*/,
    -
    12511  0 /*deltaMinutes*/,
    -
    12512  1947 /*untilYear*/,
    -
    12513  5 /*untilMonth*/,
    -
    12514  21 /*untilDay*/,
    -
    12515  5520 /*untilTimeCode (82800/15)*/,
    -
    12516  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12517  },
    -
    12518  // -4:00 Chile %z 2016 Dec 4
    -
    12519  {
    -
    12520  &kZonePolicyChile /*zonePolicy*/,
    -
    12521  "" /*format*/,
    -
    12522  -960 /*offsetCode (-14400/15)*/,
    -
    12523  0 /*offsetRemainder (-14400%15)*/,
    -
    12524  0 /*deltaMinutes*/,
    -
    12525  2016 /*untilYear*/,
    -
    12526  12 /*untilMonth*/,
    -
    12527  4 /*untilDay*/,
    -
    12528  0 /*untilTimeCode (0/15)*/,
    -
    12529  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12530  },
    -
    12531  // -3:00 - %z
    -
    12532  {
    -
    12533  nullptr /*zonePolicy*/,
    -
    12534  "" /*format*/,
    -
    12535  -720 /*offsetCode (-10800/15)*/,
    -
    12536  0 /*offsetRemainder (-10800%15)*/,
    -
    12537  0 /*deltaMinutes*/,
    -
    12538  32767 /*untilYear*/,
    -
    12539  1 /*untilMonth*/,
    -
    12540  1 /*untilDay*/,
    -
    12541  0 /*untilTimeCode (0/15)*/,
    -
    12542  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12543  },
    -
    12544 
    -
    12545 };
    -
    12546 
    -
    12547 static const char kZoneNameAmerica_Punta_Arenas[] ACE_TIME_PROGMEM = "\x02" "Punta_Arenas";
    -
    12548 
    -
    12549 const complete::Info::ZoneInfo kZoneAmerica_Punta_Arenas ACE_TIME_PROGMEM = {
    -
    12550  kZoneNameAmerica_Punta_Arenas /*name*/,
    -
    12551  0xc2c3bce7 /*zoneId*/,
    -
    12552  &kZoneContext /*zoneContext*/,
    -
    12553  14 /*numEras*/,
    -
    12554  kZoneEraAmerica_Punta_Arenas /*eras*/,
    -
    12555  nullptr /*targetInfo*/,
    -
    12556 };
    -
    12557 
    -
    12558 //---------------------------------------------------------------------------
    -
    12559 // Zone name: America/Rankin_Inlet
    -
    12560 // Eras: 4
    -
    12561 //---------------------------------------------------------------------------
    -
    12562 
    -
    12563 static const complete::Info::ZoneEra kZoneEraAmerica_Rankin_Inlet[] ACE_TIME_PROGMEM = {
    -
    12564  // 0 - -00 1957
    -
    12565  {
    -
    12566  nullptr /*zonePolicy*/,
    -
    12567  "-00" /*format*/,
    -
    12568  0 /*offsetCode (0/15)*/,
    -
    12569  0 /*offsetRemainder (0%15)*/,
    -
    12570  0 /*deltaMinutes*/,
    -
    12571  1957 /*untilYear*/,
    -
    12572  1 /*untilMonth*/,
    -
    12573  1 /*untilDay*/,
    -
    12574  0 /*untilTimeCode (0/15)*/,
    -
    12575  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12576  },
    -
    12577  // -6:00 NT_YK C%sT 2000 Oct 29 2:00
    -
    12578  {
    -
    12579  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    12580  "C%T" /*format*/,
    -
    12581  -1440 /*offsetCode (-21600/15)*/,
    -
    12582  0 /*offsetRemainder (-21600%15)*/,
    -
    12583  0 /*deltaMinutes*/,
    -
    12584  2000 /*untilYear*/,
    -
    12585  10 /*untilMonth*/,
    -
    12586  29 /*untilDay*/,
    -
    12587  480 /*untilTimeCode (7200/15)*/,
    -
    12588  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12589  },
    -
    12590  // -5:00 - EST 2001 Apr 1 3:00
    -
    12591  {
    -
    12592  nullptr /*zonePolicy*/,
    -
    12593  "EST" /*format*/,
    -
    12594  -1200 /*offsetCode (-18000/15)*/,
    -
    12595  0 /*offsetRemainder (-18000%15)*/,
    -
    12596  0 /*deltaMinutes*/,
    -
    12597  2001 /*untilYear*/,
    -
    12598  4 /*untilMonth*/,
    -
    12599  1 /*untilDay*/,
    -
    12600  720 /*untilTimeCode (10800/15)*/,
    -
    12601  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12602  },
    -
    12603  // -6:00 Canada C%sT
    -
    12604  {
    -
    12605  &kZonePolicyCanada /*zonePolicy*/,
    -
    12606  "C%T" /*format*/,
    -
    12607  -1440 /*offsetCode (-21600/15)*/,
    -
    12608  0 /*offsetRemainder (-21600%15)*/,
    -
    12609  0 /*deltaMinutes*/,
    -
    12610  32767 /*untilYear*/,
    -
    12611  1 /*untilMonth*/,
    -
    12612  1 /*untilDay*/,
    -
    12613  0 /*untilTimeCode (0/15)*/,
    -
    12614  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12615  },
    -
    12616 
    -
    12617 };
    -
    12618 
    -
    12619 static const char kZoneNameAmerica_Rankin_Inlet[] ACE_TIME_PROGMEM = "\x02" "Rankin_Inlet";
    -
    12620 
    -
    12621 const complete::Info::ZoneInfo kZoneAmerica_Rankin_Inlet ACE_TIME_PROGMEM = {
    -
    12622  kZoneNameAmerica_Rankin_Inlet /*name*/,
    -
    12623  0xc8de4984 /*zoneId*/,
    -
    12624  &kZoneContext /*zoneContext*/,
    -
    12625  4 /*numEras*/,
    -
    12626  kZoneEraAmerica_Rankin_Inlet /*eras*/,
    -
    12627  nullptr /*targetInfo*/,
    -
    12628 };
    -
    12629 
    -
    12630 //---------------------------------------------------------------------------
    -
    12631 // Zone name: America/Recife
    -
    12632 // Eras: 7
    -
    12633 //---------------------------------------------------------------------------
    -
    12634 
    -
    12635 static const complete::Info::ZoneEra kZoneEraAmerica_Recife[] ACE_TIME_PROGMEM = {
    -
    12636  // -2:19:36 - LMT 1914
    -
    12637  {
    -
    12638  nullptr /*zonePolicy*/,
    -
    12639  "LMT" /*format*/,
    -
    12640  -559 /*offsetCode (-8376/15)*/,
    -
    12641  9 /*offsetRemainder (-8376%15)*/,
    -
    12642  0 /*deltaMinutes*/,
    -
    12643  1914 /*untilYear*/,
    -
    12644  1 /*untilMonth*/,
    -
    12645  1 /*untilDay*/,
    -
    12646  0 /*untilTimeCode (0/15)*/,
    -
    12647  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12648  },
    -
    12649  // -3:00 Brazil %z 1990 Sep 17
    -
    12650  {
    -
    12651  &kZonePolicyBrazil /*zonePolicy*/,
    -
    12652  "" /*format*/,
    -
    12653  -720 /*offsetCode (-10800/15)*/,
    -
    12654  0 /*offsetRemainder (-10800%15)*/,
    -
    12655  0 /*deltaMinutes*/,
    -
    12656  1990 /*untilYear*/,
    -
    12657  9 /*untilMonth*/,
    -
    12658  17 /*untilDay*/,
    -
    12659  0 /*untilTimeCode (0/15)*/,
    -
    12660  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12661  },
    -
    12662  // -3:00 - %z 1999 Sep 30
    -
    12663  {
    -
    12664  nullptr /*zonePolicy*/,
    -
    12665  "" /*format*/,
    -
    12666  -720 /*offsetCode (-10800/15)*/,
    -
    12667  0 /*offsetRemainder (-10800%15)*/,
    -
    12668  0 /*deltaMinutes*/,
    -
    12669  1999 /*untilYear*/,
    -
    12670  9 /*untilMonth*/,
    -
    12671  30 /*untilDay*/,
    -
    12672  0 /*untilTimeCode (0/15)*/,
    -
    12673  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12674  },
    -
    12675  // -3:00 Brazil %z 2000 Oct 15
    -
    12676  {
    -
    12677  &kZonePolicyBrazil /*zonePolicy*/,
    -
    12678  "" /*format*/,
    -
    12679  -720 /*offsetCode (-10800/15)*/,
    -
    12680  0 /*offsetRemainder (-10800%15)*/,
    -
    12681  0 /*deltaMinutes*/,
    -
    12682  2000 /*untilYear*/,
    -
    12683  10 /*untilMonth*/,
    -
    12684  15 /*untilDay*/,
    -
    12685  0 /*untilTimeCode (0/15)*/,
    -
    12686  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12687  },
    -
    12688  // -3:00 - %z 2001 Sep 13
    -
    12689  {
    -
    12690  nullptr /*zonePolicy*/,
    -
    12691  "" /*format*/,
    -
    12692  -720 /*offsetCode (-10800/15)*/,
    -
    12693  0 /*offsetRemainder (-10800%15)*/,
    -
    12694  0 /*deltaMinutes*/,
    -
    12695  2001 /*untilYear*/,
    -
    12696  9 /*untilMonth*/,
    -
    12697  13 /*untilDay*/,
    -
    12698  0 /*untilTimeCode (0/15)*/,
    -
    12699  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12700  },
    -
    12701  // -3:00 Brazil %z 2002 Oct 1
    -
    12702  {
    -
    12703  &kZonePolicyBrazil /*zonePolicy*/,
    -
    12704  "" /*format*/,
    -
    12705  -720 /*offsetCode (-10800/15)*/,
    -
    12706  0 /*offsetRemainder (-10800%15)*/,
    -
    12707  0 /*deltaMinutes*/,
    -
    12708  2002 /*untilYear*/,
    -
    12709  10 /*untilMonth*/,
    -
    12710  1 /*untilDay*/,
    -
    12711  0 /*untilTimeCode (0/15)*/,
    -
    12712  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12713  },
    -
    12714  // -3:00 - %z
    -
    12715  {
    -
    12716  nullptr /*zonePolicy*/,
    -
    12717  "" /*format*/,
    -
    12718  -720 /*offsetCode (-10800/15)*/,
    -
    12719  0 /*offsetRemainder (-10800%15)*/,
    -
    12720  0 /*deltaMinutes*/,
    -
    12721  32767 /*untilYear*/,
    -
    12722  1 /*untilMonth*/,
    -
    12723  1 /*untilDay*/,
    -
    12724  0 /*untilTimeCode (0/15)*/,
    -
    12725  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12726  },
    -
    12727 
    -
    12728 };
    -
    12729 
    -
    12730 static const char kZoneNameAmerica_Recife[] ACE_TIME_PROGMEM = "\x02" "Recife";
    -
    12731 
    -
    12732 const complete::Info::ZoneInfo kZoneAmerica_Recife ACE_TIME_PROGMEM = {
    -
    12733  kZoneNameAmerica_Recife /*name*/,
    -
    12734  0xb8730494 /*zoneId*/,
    -
    12735  &kZoneContext /*zoneContext*/,
    -
    12736  7 /*numEras*/,
    -
    12737  kZoneEraAmerica_Recife /*eras*/,
    -
    12738  nullptr /*targetInfo*/,
    -
    12739 };
    -
    12740 
    -
    12741 //---------------------------------------------------------------------------
    -
    12742 // Zone name: America/Regina
    -
    12743 // Eras: 3
    -
    12744 //---------------------------------------------------------------------------
    -
    12745 
    -
    12746 static const complete::Info::ZoneEra kZoneEraAmerica_Regina[] ACE_TIME_PROGMEM = {
    -
    12747  // -6:58:36 - LMT 1905 Sep
    -
    12748  {
    -
    12749  nullptr /*zonePolicy*/,
    -
    12750  "LMT" /*format*/,
    -
    12751  -1675 /*offsetCode (-25116/15)*/,
    -
    12752  9 /*offsetRemainder (-25116%15)*/,
    -
    12753  0 /*deltaMinutes*/,
    -
    12754  1905 /*untilYear*/,
    -
    12755  9 /*untilMonth*/,
    -
    12756  1 /*untilDay*/,
    -
    12757  0 /*untilTimeCode (0/15)*/,
    -
    12758  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12759  },
    -
    12760  // -7:00 Regina M%sT 1960 Apr lastSun 2:00
    -
    12761  {
    -
    12762  &kZonePolicyRegina /*zonePolicy*/,
    -
    12763  "M%T" /*format*/,
    -
    12764  -1680 /*offsetCode (-25200/15)*/,
    -
    12765  0 /*offsetRemainder (-25200%15)*/,
    -
    12766  0 /*deltaMinutes*/,
    -
    12767  1960 /*untilYear*/,
    -
    12768  4 /*untilMonth*/,
    -
    12769  24 /*untilDay*/,
    -
    12770  480 /*untilTimeCode (7200/15)*/,
    -
    12771  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12772  },
    -
    12773  // -6:00 - CST
    -
    12774  {
    -
    12775  nullptr /*zonePolicy*/,
    -
    12776  "CST" /*format*/,
    -
    12777  -1440 /*offsetCode (-21600/15)*/,
    -
    12778  0 /*offsetRemainder (-21600%15)*/,
    -
    12779  0 /*deltaMinutes*/,
    -
    12780  32767 /*untilYear*/,
    -
    12781  1 /*untilMonth*/,
    -
    12782  1 /*untilDay*/,
    -
    12783  0 /*untilTimeCode (0/15)*/,
    -
    12784  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12785  },
    -
    12786 
    -
    12787 };
    -
    12788 
    -
    12789 static const char kZoneNameAmerica_Regina[] ACE_TIME_PROGMEM = "\x02" "Regina";
    -
    12790 
    -
    12791 const complete::Info::ZoneInfo kZoneAmerica_Regina ACE_TIME_PROGMEM = {
    -
    12792  kZoneNameAmerica_Regina /*name*/,
    -
    12793  0xb875371c /*zoneId*/,
    -
    12794  &kZoneContext /*zoneContext*/,
    -
    12795  3 /*numEras*/,
    -
    12796  kZoneEraAmerica_Regina /*eras*/,
    -
    12797  nullptr /*targetInfo*/,
    -
    12798 };
    -
    12799 
    -
    12800 //---------------------------------------------------------------------------
    -
    12801 // Zone name: America/Resolute
    -
    12802 // Eras: 6
    -
    12803 //---------------------------------------------------------------------------
    -
    12804 
    -
    12805 static const complete::Info::ZoneEra kZoneEraAmerica_Resolute[] ACE_TIME_PROGMEM = {
    -
    12806  // 0 - -00 1947 Aug 31
    -
    12807  {
    -
    12808  nullptr /*zonePolicy*/,
    -
    12809  "-00" /*format*/,
    -
    12810  0 /*offsetCode (0/15)*/,
    -
    12811  0 /*offsetRemainder (0%15)*/,
    -
    12812  0 /*deltaMinutes*/,
    -
    12813  1947 /*untilYear*/,
    -
    12814  8 /*untilMonth*/,
    -
    12815  31 /*untilDay*/,
    -
    12816  0 /*untilTimeCode (0/15)*/,
    -
    12817  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12818  },
    -
    12819  // -6:00 NT_YK C%sT 2000 Oct 29 2:00
    -
    12820  {
    -
    12821  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    12822  "C%T" /*format*/,
    -
    12823  -1440 /*offsetCode (-21600/15)*/,
    -
    12824  0 /*offsetRemainder (-21600%15)*/,
    -
    12825  0 /*deltaMinutes*/,
    -
    12826  2000 /*untilYear*/,
    -
    12827  10 /*untilMonth*/,
    -
    12828  29 /*untilDay*/,
    -
    12829  480 /*untilTimeCode (7200/15)*/,
    -
    12830  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12831  },
    -
    12832  // -5:00 - EST 2001 Apr 1 3:00
    -
    12833  {
    -
    12834  nullptr /*zonePolicy*/,
    -
    12835  "EST" /*format*/,
    -
    12836  -1200 /*offsetCode (-18000/15)*/,
    -
    12837  0 /*offsetRemainder (-18000%15)*/,
    -
    12838  0 /*deltaMinutes*/,
    -
    12839  2001 /*untilYear*/,
    -
    12840  4 /*untilMonth*/,
    -
    12841  1 /*untilDay*/,
    -
    12842  720 /*untilTimeCode (10800/15)*/,
    -
    12843  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12844  },
    -
    12845  // -6:00 Canada C%sT 2006 Oct 29 2:00
    -
    12846  {
    -
    12847  &kZonePolicyCanada /*zonePolicy*/,
    -
    12848  "C%T" /*format*/,
    -
    12849  -1440 /*offsetCode (-21600/15)*/,
    -
    12850  0 /*offsetRemainder (-21600%15)*/,
    -
    12851  0 /*deltaMinutes*/,
    -
    12852  2006 /*untilYear*/,
    -
    12853  10 /*untilMonth*/,
    -
    12854  29 /*untilDay*/,
    -
    12855  480 /*untilTimeCode (7200/15)*/,
    -
    12856  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12857  },
    -
    12858  // -5:00 - EST 2007 Mar 11 3:00
    -
    12859  {
    -
    12860  nullptr /*zonePolicy*/,
    -
    12861  "EST" /*format*/,
    -
    12862  -1200 /*offsetCode (-18000/15)*/,
    -
    12863  0 /*offsetRemainder (-18000%15)*/,
    -
    12864  0 /*deltaMinutes*/,
    -
    12865  2007 /*untilYear*/,
    -
    12866  3 /*untilMonth*/,
    -
    12867  11 /*untilDay*/,
    -
    12868  720 /*untilTimeCode (10800/15)*/,
    -
    12869  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12870  },
    -
    12871  // -6:00 Canada C%sT
    -
    12872  {
    -
    12873  &kZonePolicyCanada /*zonePolicy*/,
    -
    12874  "C%T" /*format*/,
    -
    12875  -1440 /*offsetCode (-21600/15)*/,
    -
    12876  0 /*offsetRemainder (-21600%15)*/,
    -
    12877  0 /*deltaMinutes*/,
    -
    12878  32767 /*untilYear*/,
    -
    12879  1 /*untilMonth*/,
    -
    12880  1 /*untilDay*/,
    -
    12881  0 /*untilTimeCode (0/15)*/,
    -
    12882  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12883  },
    -
    12884 
    -
    12885 };
    -
    12886 
    -
    12887 static const char kZoneNameAmerica_Resolute[] ACE_TIME_PROGMEM = "\x02" "Resolute";
    -
    12888 
    -
    12889 const complete::Info::ZoneInfo kZoneAmerica_Resolute ACE_TIME_PROGMEM = {
    -
    12890  kZoneNameAmerica_Resolute /*name*/,
    -
    12891  0xc7093459 /*zoneId*/,
    -
    12892  &kZoneContext /*zoneContext*/,
    -
    12893  6 /*numEras*/,
    -
    12894  kZoneEraAmerica_Resolute /*eras*/,
    -
    12895  nullptr /*targetInfo*/,
    -
    12896 };
    -
    12897 
    -
    12898 //---------------------------------------------------------------------------
    -
    12899 // Zone name: America/Rio_Branco
    -
    12900 // Eras: 5
    -
    12901 //---------------------------------------------------------------------------
    -
    12902 
    -
    12903 static const complete::Info::ZoneEra kZoneEraAmerica_Rio_Branco[] ACE_TIME_PROGMEM = {
    -
    12904  // -4:31:12 - LMT 1914
    -
    12905  {
    -
    12906  nullptr /*zonePolicy*/,
    -
    12907  "LMT" /*format*/,
    -
    12908  -1085 /*offsetCode (-16272/15)*/,
    -
    12909  3 /*offsetRemainder (-16272%15)*/,
    -
    12910  0 /*deltaMinutes*/,
    -
    12911  1914 /*untilYear*/,
    -
    12912  1 /*untilMonth*/,
    -
    12913  1 /*untilDay*/,
    -
    12914  0 /*untilTimeCode (0/15)*/,
    -
    12915  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12916  },
    -
    12917  // -5:00 Brazil %z 1988 Sep 12
    -
    12918  {
    -
    12919  &kZonePolicyBrazil /*zonePolicy*/,
    -
    12920  "" /*format*/,
    -
    12921  -1200 /*offsetCode (-18000/15)*/,
    -
    12922  0 /*offsetRemainder (-18000%15)*/,
    -
    12923  0 /*deltaMinutes*/,
    -
    12924  1988 /*untilYear*/,
    -
    12925  9 /*untilMonth*/,
    -
    12926  12 /*untilDay*/,
    -
    12927  0 /*untilTimeCode (0/15)*/,
    -
    12928  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12929  },
    -
    12930  // -5:00 - %z 2008 Jun 24 0:00
    -
    12931  {
    -
    12932  nullptr /*zonePolicy*/,
    -
    12933  "" /*format*/,
    -
    12934  -1200 /*offsetCode (-18000/15)*/,
    -
    12935  0 /*offsetRemainder (-18000%15)*/,
    -
    12936  0 /*deltaMinutes*/,
    -
    12937  2008 /*untilYear*/,
    -
    12938  6 /*untilMonth*/,
    -
    12939  24 /*untilDay*/,
    -
    12940  0 /*untilTimeCode (0/15)*/,
    -
    12941  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12942  },
    -
    12943  // -4:00 - %z 2013 Nov 10
    -
    12944  {
    -
    12945  nullptr /*zonePolicy*/,
    -
    12946  "" /*format*/,
    -
    12947  -960 /*offsetCode (-14400/15)*/,
    -
    12948  0 /*offsetRemainder (-14400%15)*/,
    -
    12949  0 /*deltaMinutes*/,
    -
    12950  2013 /*untilYear*/,
    -
    12951  11 /*untilMonth*/,
    -
    12952  10 /*untilDay*/,
    -
    12953  0 /*untilTimeCode (0/15)*/,
    -
    12954  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12955  },
    -
    12956  // -5:00 - %z
    -
    12957  {
    -
    12958  nullptr /*zonePolicy*/,
    -
    12959  "" /*format*/,
    -
    12960  -1200 /*offsetCode (-18000/15)*/,
    -
    12961  0 /*offsetRemainder (-18000%15)*/,
    -
    12962  0 /*deltaMinutes*/,
    -
    12963  32767 /*untilYear*/,
    -
    12964  1 /*untilMonth*/,
    -
    12965  1 /*untilDay*/,
    -
    12966  0 /*untilTimeCode (0/15)*/,
    -
    12967  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12968  },
    -
    12969 
    -
    12970 };
    -
    12971 
    -
    12972 static const char kZoneNameAmerica_Rio_Branco[] ACE_TIME_PROGMEM = "\x02" "Rio_Branco";
    -
    12973 
    -
    12974 const complete::Info::ZoneInfo kZoneAmerica_Rio_Branco ACE_TIME_PROGMEM = {
    -
    12975  kZoneNameAmerica_Rio_Branco /*name*/,
    -
    12976  0x9d352764 /*zoneId*/,
    -
    12977  &kZoneContext /*zoneContext*/,
    -
    12978  5 /*numEras*/,
    -
    12979  kZoneEraAmerica_Rio_Branco /*eras*/,
    -
    12980  nullptr /*targetInfo*/,
    -
    12981 };
    -
    12982 
    -
    12983 //---------------------------------------------------------------------------
    -
    12984 // Zone name: America/Santarem
    -
    12985 // Eras: 4
    -
    12986 //---------------------------------------------------------------------------
    -
    12987 
    -
    12988 static const complete::Info::ZoneEra kZoneEraAmerica_Santarem[] ACE_TIME_PROGMEM = {
    -
    12989  // -3:38:48 - LMT 1914
    -
    12990  {
    -
    12991  nullptr /*zonePolicy*/,
    -
    12992  "LMT" /*format*/,
    -
    12993  -876 /*offsetCode (-13128/15)*/,
    -
    12994  12 /*offsetRemainder (-13128%15)*/,
    -
    12995  0 /*deltaMinutes*/,
    -
    12996  1914 /*untilYear*/,
    -
    12997  1 /*untilMonth*/,
    -
    12998  1 /*untilDay*/,
    -
    12999  0 /*untilTimeCode (0/15)*/,
    -
    13000  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13001  },
    -
    13002  // -4:00 Brazil %z 1988 Sep 12
    -
    13003  {
    -
    13004  &kZonePolicyBrazil /*zonePolicy*/,
    -
    13005  "" /*format*/,
    -
    13006  -960 /*offsetCode (-14400/15)*/,
    -
    13007  0 /*offsetRemainder (-14400%15)*/,
    -
    13008  0 /*deltaMinutes*/,
    -
    13009  1988 /*untilYear*/,
    -
    13010  9 /*untilMonth*/,
    -
    13011  12 /*untilDay*/,
    -
    13012  0 /*untilTimeCode (0/15)*/,
    -
    13013  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13014  },
    -
    13015  // -4:00 - %z 2008 Jun 24 0:00
    -
    13016  {
    -
    13017  nullptr /*zonePolicy*/,
    -
    13018  "" /*format*/,
    -
    13019  -960 /*offsetCode (-14400/15)*/,
    -
    13020  0 /*offsetRemainder (-14400%15)*/,
    -
    13021  0 /*deltaMinutes*/,
    -
    13022  2008 /*untilYear*/,
    -
    13023  6 /*untilMonth*/,
    -
    13024  24 /*untilDay*/,
    -
    13025  0 /*untilTimeCode (0/15)*/,
    -
    13026  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13027  },
    -
    13028  // -3:00 - %z
    -
    13029  {
    -
    13030  nullptr /*zonePolicy*/,
    -
    13031  "" /*format*/,
    -
    13032  -720 /*offsetCode (-10800/15)*/,
    -
    13033  0 /*offsetRemainder (-10800%15)*/,
    -
    13034  0 /*deltaMinutes*/,
    -
    13035  32767 /*untilYear*/,
    -
    13036  1 /*untilMonth*/,
    -
    13037  1 /*untilDay*/,
    -
    13038  0 /*untilTimeCode (0/15)*/,
    -
    13039  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13040  },
    -
    13041 
    -
    13042 };
    -
    13043 
    -
    13044 static const char kZoneNameAmerica_Santarem[] ACE_TIME_PROGMEM = "\x02" "Santarem";
    -
    13045 
    -
    13046 const complete::Info::ZoneInfo kZoneAmerica_Santarem ACE_TIME_PROGMEM = {
    -
    13047  kZoneNameAmerica_Santarem /*name*/,
    -
    13048  0x740caec1 /*zoneId*/,
    -
    13049  &kZoneContext /*zoneContext*/,
    -
    13050  4 /*numEras*/,
    -
    13051  kZoneEraAmerica_Santarem /*eras*/,
    -
    13052  nullptr /*targetInfo*/,
    -
    13053 };
    -
    13054 
    -
    13055 //---------------------------------------------------------------------------
    -
    13056 // Zone name: America/Santiago
    -
    13057 // Eras: 14
    -
    13058 //---------------------------------------------------------------------------
    -
    13059 
    -
    13060 static const complete::Info::ZoneEra kZoneEraAmerica_Santiago[] ACE_TIME_PROGMEM = {
    -
    13061  // -4:42:45 - LMT 1890
    -
    13062  {
    -
    13063  nullptr /*zonePolicy*/,
    -
    13064  "LMT" /*format*/,
    -
    13065  -1131 /*offsetCode (-16965/15)*/,
    -
    13066  0 /*offsetRemainder (-16965%15)*/,
    -
    13067  0 /*deltaMinutes*/,
    -
    13068  1890 /*untilYear*/,
    -
    13069  1 /*untilMonth*/,
    -
    13070  1 /*untilDay*/,
    -
    13071  0 /*untilTimeCode (0/15)*/,
    -
    13072  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13073  },
    -
    13074  // -4:42:45 - SMT 1910 Jan 10
    -
    13075  {
    -
    13076  nullptr /*zonePolicy*/,
    -
    13077  "SMT" /*format*/,
    -
    13078  -1131 /*offsetCode (-16965/15)*/,
    -
    13079  0 /*offsetRemainder (-16965%15)*/,
    -
    13080  0 /*deltaMinutes*/,
    -
    13081  1910 /*untilYear*/,
    -
    13082  1 /*untilMonth*/,
    -
    13083  10 /*untilDay*/,
    -
    13084  0 /*untilTimeCode (0/15)*/,
    -
    13085  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13086  },
    -
    13087  // -5:00 - %z 1916 Jul 1
    -
    13088  {
    -
    13089  nullptr /*zonePolicy*/,
    -
    13090  "" /*format*/,
    -
    13091  -1200 /*offsetCode (-18000/15)*/,
    -
    13092  0 /*offsetRemainder (-18000%15)*/,
    -
    13093  0 /*deltaMinutes*/,
    -
    13094  1916 /*untilYear*/,
    -
    13095  7 /*untilMonth*/,
    -
    13096  1 /*untilDay*/,
    -
    13097  0 /*untilTimeCode (0/15)*/,
    -
    13098  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13099  },
    -
    13100  // -4:42:45 - SMT 1918 Sep 10
    -
    13101  {
    -
    13102  nullptr /*zonePolicy*/,
    -
    13103  "SMT" /*format*/,
    -
    13104  -1131 /*offsetCode (-16965/15)*/,
    -
    13105  0 /*offsetRemainder (-16965%15)*/,
    -
    13106  0 /*deltaMinutes*/,
    -
    13107  1918 /*untilYear*/,
    -
    13108  9 /*untilMonth*/,
    -
    13109  10 /*untilDay*/,
    -
    13110  0 /*untilTimeCode (0/15)*/,
    -
    13111  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13112  },
    -
    13113  // -4:00 - %z 1919 Jul 1
    -
    13114  {
    -
    13115  nullptr /*zonePolicy*/,
    -
    13116  "" /*format*/,
    -
    13117  -960 /*offsetCode (-14400/15)*/,
    -
    13118  0 /*offsetRemainder (-14400%15)*/,
    -
    13119  0 /*deltaMinutes*/,
    -
    13120  1919 /*untilYear*/,
    -
    13121  7 /*untilMonth*/,
    -
    13122  1 /*untilDay*/,
    -
    13123  0 /*untilTimeCode (0/15)*/,
    -
    13124  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13125  },
    -
    13126  // -4:42:45 - SMT 1927 Sep 1
    -
    13127  {
    -
    13128  nullptr /*zonePolicy*/,
    -
    13129  "SMT" /*format*/,
    -
    13130  -1131 /*offsetCode (-16965/15)*/,
    -
    13131  0 /*offsetRemainder (-16965%15)*/,
    -
    13132  0 /*deltaMinutes*/,
    -
    13133  1927 /*untilYear*/,
    -
    13134  9 /*untilMonth*/,
    -
    13135  1 /*untilDay*/,
    -
    13136  0 /*untilTimeCode (0/15)*/,
    -
    13137  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13138  },
    -
    13139  // -5:00 Chile %z 1932 Sep 1
    -
    13140  {
    -
    13141  &kZonePolicyChile /*zonePolicy*/,
    -
    13142  "" /*format*/,
    -
    13143  -1200 /*offsetCode (-18000/15)*/,
    -
    13144  0 /*offsetRemainder (-18000%15)*/,
    -
    13145  0 /*deltaMinutes*/,
    -
    13146  1932 /*untilYear*/,
    -
    13147  9 /*untilMonth*/,
    -
    13148  1 /*untilDay*/,
    -
    13149  0 /*untilTimeCode (0/15)*/,
    -
    13150  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13151  },
    -
    13152  // -4:00 - %z 1942 Jun 1
    -
    13153  {
    -
    13154  nullptr /*zonePolicy*/,
    -
    13155  "" /*format*/,
    -
    13156  -960 /*offsetCode (-14400/15)*/,
    -
    13157  0 /*offsetRemainder (-14400%15)*/,
    -
    13158  0 /*deltaMinutes*/,
    -
    13159  1942 /*untilYear*/,
    -
    13160  6 /*untilMonth*/,
    -
    13161  1 /*untilDay*/,
    -
    13162  0 /*untilTimeCode (0/15)*/,
    -
    13163  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13164  },
    -
    13165  // -5:00 - %z 1942 Aug 1
    -
    13166  {
    -
    13167  nullptr /*zonePolicy*/,
    -
    13168  "" /*format*/,
    -
    13169  -1200 /*offsetCode (-18000/15)*/,
    -
    13170  0 /*offsetRemainder (-18000%15)*/,
    -
    13171  0 /*deltaMinutes*/,
    -
    13172  1942 /*untilYear*/,
    -
    13173  8 /*untilMonth*/,
    -
    13174  1 /*untilDay*/,
    -
    13175  0 /*untilTimeCode (0/15)*/,
    -
    13176  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13177  },
    -
    13178  // -4:00 - %z 1946 Jul 14 24:00
    -
    13179  {
    -
    13180  nullptr /*zonePolicy*/,
    -
    13181  "" /*format*/,
    -
    13182  -960 /*offsetCode (-14400/15)*/,
    -
    13183  0 /*offsetRemainder (-14400%15)*/,
    -
    13184  0 /*deltaMinutes*/,
    -
    13185  1946 /*untilYear*/,
    -
    13186  7 /*untilMonth*/,
    -
    13187  14 /*untilDay*/,
    -
    13188  5760 /*untilTimeCode (86400/15)*/,
    -
    13189  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13190  },
    -
    13191  // -4:00 1:00 %z 1946 Aug 28 24:00
    -
    13192  {
    -
    13193  nullptr /*zonePolicy*/,
    -
    13194  "" /*format*/,
    -
    13195  -960 /*offsetCode (-14400/15)*/,
    -
    13196  0 /*offsetRemainder (-14400%15)*/,
    -
    13197  60 /*deltaMinutes*/,
    -
    13198  1946 /*untilYear*/,
    -
    13199  8 /*untilMonth*/,
    -
    13200  28 /*untilDay*/,
    -
    13201  5760 /*untilTimeCode (86400/15)*/,
    -
    13202  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13203  },
    -
    13204  // -5:00 1:00 %z 1947 Mar 31 24:00
    -
    13205  {
    -
    13206  nullptr /*zonePolicy*/,
    -
    13207  "" /*format*/,
    -
    13208  -1200 /*offsetCode (-18000/15)*/,
    -
    13209  0 /*offsetRemainder (-18000%15)*/,
    -
    13210  60 /*deltaMinutes*/,
    -
    13211  1947 /*untilYear*/,
    -
    13212  3 /*untilMonth*/,
    -
    13213  31 /*untilDay*/,
    -
    13214  5760 /*untilTimeCode (86400/15)*/,
    -
    13215  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13216  },
    -
    13217  // -5:00 - %z 1947 May 21 23:00
    -
    13218  {
    -
    13219  nullptr /*zonePolicy*/,
    -
    13220  "" /*format*/,
    -
    13221  -1200 /*offsetCode (-18000/15)*/,
    -
    13222  0 /*offsetRemainder (-18000%15)*/,
    -
    13223  0 /*deltaMinutes*/,
    -
    13224  1947 /*untilYear*/,
    -
    13225  5 /*untilMonth*/,
    -
    13226  21 /*untilDay*/,
    -
    13227  5520 /*untilTimeCode (82800/15)*/,
    -
    13228  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13229  },
    -
    13230  // -4:00 Chile %z
    -
    13231  {
    -
    13232  &kZonePolicyChile /*zonePolicy*/,
    -
    13233  "" /*format*/,
    -
    13234  -960 /*offsetCode (-14400/15)*/,
    -
    13235  0 /*offsetRemainder (-14400%15)*/,
    -
    13236  0 /*deltaMinutes*/,
    -
    13237  32767 /*untilYear*/,
    -
    13238  1 /*untilMonth*/,
    -
    13239  1 /*untilDay*/,
    -
    13240  0 /*untilTimeCode (0/15)*/,
    -
    13241  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13242  },
    -
    13243 
    -
    13244 };
    -
    13245 
    -
    13246 static const char kZoneNameAmerica_Santiago[] ACE_TIME_PROGMEM = "\x02" "Santiago";
    -
    13247 
    -
    13248 const complete::Info::ZoneInfo kZoneAmerica_Santiago ACE_TIME_PROGMEM = {
    -
    13249  kZoneNameAmerica_Santiago /*name*/,
    -
    13250  0x7410c9bc /*zoneId*/,
    -
    13251  &kZoneContext /*zoneContext*/,
    -
    13252  14 /*numEras*/,
    -
    13253  kZoneEraAmerica_Santiago /*eras*/,
    -
    13254  nullptr /*targetInfo*/,
    -
    13255 };
    -
    13256 
    -
    13257 //---------------------------------------------------------------------------
    -
    13258 // Zone name: America/Santo_Domingo
    -
    13259 // Eras: 6
    -
    13260 //---------------------------------------------------------------------------
    -
    13261 
    -
    13262 static const complete::Info::ZoneEra kZoneEraAmerica_Santo_Domingo[] ACE_TIME_PROGMEM = {
    -
    13263  // -4:39:36 - LMT 1890
    -
    13264  {
    -
    13265  nullptr /*zonePolicy*/,
    -
    13266  "LMT" /*format*/,
    -
    13267  -1119 /*offsetCode (-16776/15)*/,
    -
    13268  9 /*offsetRemainder (-16776%15)*/,
    -
    13269  0 /*deltaMinutes*/,
    -
    13270  1890 /*untilYear*/,
    -
    13271  1 /*untilMonth*/,
    -
    13272  1 /*untilDay*/,
    -
    13273  0 /*untilTimeCode (0/15)*/,
    -
    13274  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13275  },
    -
    13276  // -4:40 - SDMT 1933 Apr 1 12:00
    -
    13277  {
    -
    13278  nullptr /*zonePolicy*/,
    -
    13279  "SDMT" /*format*/,
    -
    13280  -1120 /*offsetCode (-16800/15)*/,
    -
    13281  0 /*offsetRemainder (-16800%15)*/,
    -
    13282  0 /*deltaMinutes*/,
    -
    13283  1933 /*untilYear*/,
    -
    13284  4 /*untilMonth*/,
    -
    13285  1 /*untilDay*/,
    -
    13286  2880 /*untilTimeCode (43200/15)*/,
    -
    13287  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13288  },
    -
    13289  // -5:00 DR %s 1974 Oct 27
    -
    13290  {
    -
    13291  &kZonePolicyDR /*zonePolicy*/,
    -
    13292  "%" /*format*/,
    -
    13293  -1200 /*offsetCode (-18000/15)*/,
    -
    13294  0 /*offsetRemainder (-18000%15)*/,
    -
    13295  0 /*deltaMinutes*/,
    -
    13296  1974 /*untilYear*/,
    -
    13297  10 /*untilMonth*/,
    -
    13298  27 /*untilDay*/,
    -
    13299  0 /*untilTimeCode (0/15)*/,
    -
    13300  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13301  },
    -
    13302  // -4:00 - AST 2000 Oct 29 2:00
    -
    13303  {
    -
    13304  nullptr /*zonePolicy*/,
    -
    13305  "AST" /*format*/,
    -
    13306  -960 /*offsetCode (-14400/15)*/,
    -
    13307  0 /*offsetRemainder (-14400%15)*/,
    -
    13308  0 /*deltaMinutes*/,
    -
    13309  2000 /*untilYear*/,
    -
    13310  10 /*untilMonth*/,
    -
    13311  29 /*untilDay*/,
    -
    13312  480 /*untilTimeCode (7200/15)*/,
    -
    13313  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13314  },
    -
    13315  // -5:00 US E%sT 2000 Dec 3 1:00
    -
    13316  {
    -
    13317  &kZonePolicyUS /*zonePolicy*/,
    -
    13318  "E%T" /*format*/,
    -
    13319  -1200 /*offsetCode (-18000/15)*/,
    -
    13320  0 /*offsetRemainder (-18000%15)*/,
    -
    13321  0 /*deltaMinutes*/,
    -
    13322  2000 /*untilYear*/,
    -
    13323  12 /*untilMonth*/,
    -
    13324  3 /*untilDay*/,
    -
    13325  240 /*untilTimeCode (3600/15)*/,
    -
    13326  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13327  },
    -
    13328  // -4:00 - AST
    -
    13329  {
    -
    13330  nullptr /*zonePolicy*/,
    -
    13331  "AST" /*format*/,
    -
    13332  -960 /*offsetCode (-14400/15)*/,
    -
    13333  0 /*offsetRemainder (-14400%15)*/,
    -
    13334  0 /*deltaMinutes*/,
    -
    13335  32767 /*untilYear*/,
    -
    13336  1 /*untilMonth*/,
    -
    13337  1 /*untilDay*/,
    -
    13338  0 /*untilTimeCode (0/15)*/,
    -
    13339  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13340  },
    -
    13341 
    -
    13342 };
    -
    13343 
    -
    13344 static const char kZoneNameAmerica_Santo_Domingo[] ACE_TIME_PROGMEM = "\x02" "Santo_Domingo";
    -
    13345 
    -
    13346 const complete::Info::ZoneInfo kZoneAmerica_Santo_Domingo ACE_TIME_PROGMEM = {
    -
    13347  kZoneNameAmerica_Santo_Domingo /*name*/,
    -
    13348  0x75a0d177 /*zoneId*/,
    -
    13349  &kZoneContext /*zoneContext*/,
    -
    13350  6 /*numEras*/,
    -
    13351  kZoneEraAmerica_Santo_Domingo /*eras*/,
    -
    13352  nullptr /*targetInfo*/,
    -
    13353 };
    -
    13354 
    -
    13355 //---------------------------------------------------------------------------
    -
    13356 // Zone name: America/Sao_Paulo
    -
    13357 // Eras: 4
    -
    13358 //---------------------------------------------------------------------------
    -
    13359 
    -
    13360 static const complete::Info::ZoneEra kZoneEraAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = {
    -
    13361  // -3:06:28 - LMT 1914
    -
    13362  {
    -
    13363  nullptr /*zonePolicy*/,
    -
    13364  "LMT" /*format*/,
    -
    13365  -746 /*offsetCode (-11188/15)*/,
    -
    13366  2 /*offsetRemainder (-11188%15)*/,
    -
    13367  0 /*deltaMinutes*/,
    -
    13368  1914 /*untilYear*/,
    -
    13369  1 /*untilMonth*/,
    -
    13370  1 /*untilDay*/,
    -
    13371  0 /*untilTimeCode (0/15)*/,
    -
    13372  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13373  },
    -
    13374  // -3:00 Brazil %z 1963 Oct 23 0:00
    -
    13375  {
    -
    13376  &kZonePolicyBrazil /*zonePolicy*/,
    -
    13377  "" /*format*/,
    -
    13378  -720 /*offsetCode (-10800/15)*/,
    -
    13379  0 /*offsetRemainder (-10800%15)*/,
    -
    13380  0 /*deltaMinutes*/,
    -
    13381  1963 /*untilYear*/,
    -
    13382  10 /*untilMonth*/,
    -
    13383  23 /*untilDay*/,
    -
    13384  0 /*untilTimeCode (0/15)*/,
    -
    13385  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13386  },
    -
    13387  // -3:00 1:00 %z 1964
    -
    13388  {
    -
    13389  nullptr /*zonePolicy*/,
    -
    13390  "" /*format*/,
    -
    13391  -720 /*offsetCode (-10800/15)*/,
    -
    13392  0 /*offsetRemainder (-10800%15)*/,
    -
    13393  60 /*deltaMinutes*/,
    -
    13394  1964 /*untilYear*/,
    -
    13395  1 /*untilMonth*/,
    -
    13396  1 /*untilDay*/,
    -
    13397  0 /*untilTimeCode (0/15)*/,
    -
    13398  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13399  },
    -
    13400  // -3:00 Brazil %z
    -
    13401  {
    -
    13402  &kZonePolicyBrazil /*zonePolicy*/,
    -
    13403  "" /*format*/,
    -
    13404  -720 /*offsetCode (-10800/15)*/,
    -
    13405  0 /*offsetRemainder (-10800%15)*/,
    -
    13406  0 /*deltaMinutes*/,
    -
    13407  32767 /*untilYear*/,
    -
    13408  1 /*untilMonth*/,
    -
    13409  1 /*untilDay*/,
    -
    13410  0 /*untilTimeCode (0/15)*/,
    -
    13411  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13412  },
    -
    13413 
    -
    13414 };
    -
    13415 
    -
    13416 static const char kZoneNameAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = "\x02" "Sao_Paulo";
    -
    13417 
    -
    13418 const complete::Info::ZoneInfo kZoneAmerica_Sao_Paulo ACE_TIME_PROGMEM = {
    -
    13419  kZoneNameAmerica_Sao_Paulo /*name*/,
    -
    13420  0x1063bfc9 /*zoneId*/,
    -
    13421  &kZoneContext /*zoneContext*/,
    -
    13422  4 /*numEras*/,
    -
    13423  kZoneEraAmerica_Sao_Paulo /*eras*/,
    -
    13424  nullptr /*targetInfo*/,
    -
    13425 };
    -
    13426 
    -
    13427 //---------------------------------------------------------------------------
    -
    13428 // Zone name: America/Scoresbysund
    -
    13429 // Eras: 5
    -
    13430 //---------------------------------------------------------------------------
    -
    13431 
    -
    13432 static const complete::Info::ZoneEra kZoneEraAmerica_Scoresbysund[] ACE_TIME_PROGMEM = {
    -
    13433  // -1:27:52 - LMT 1916 Jul 28
    -
    13434  {
    -
    13435  nullptr /*zonePolicy*/,
    -
    13436  "LMT" /*format*/,
    -
    13437  -352 /*offsetCode (-5272/15)*/,
    -
    13438  8 /*offsetRemainder (-5272%15)*/,
    -
    13439  0 /*deltaMinutes*/,
    -
    13440  1916 /*untilYear*/,
    -
    13441  7 /*untilMonth*/,
    -
    13442  28 /*untilDay*/,
    -
    13443  0 /*untilTimeCode (0/15)*/,
    -
    13444  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13445  },
    -
    13446  // -2:00 - %z 1980 Apr 6 2:00
    -
    13447  {
    -
    13448  nullptr /*zonePolicy*/,
    -
    13449  "" /*format*/,
    -
    13450  -480 /*offsetCode (-7200/15)*/,
    -
    13451  0 /*offsetRemainder (-7200%15)*/,
    -
    13452  0 /*deltaMinutes*/,
    -
    13453  1980 /*untilYear*/,
    -
    13454  4 /*untilMonth*/,
    -
    13455  6 /*untilDay*/,
    -
    13456  480 /*untilTimeCode (7200/15)*/,
    -
    13457  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13458  },
    -
    13459  // -2:00 C-Eur %z 1981 Mar 29
    -
    13460  {
    -
    13461  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    13462  "" /*format*/,
    -
    13463  -480 /*offsetCode (-7200/15)*/,
    -
    13464  0 /*offsetRemainder (-7200%15)*/,
    -
    13465  0 /*deltaMinutes*/,
    -
    13466  1981 /*untilYear*/,
    -
    13467  3 /*untilMonth*/,
    -
    13468  29 /*untilDay*/,
    -
    13469  0 /*untilTimeCode (0/15)*/,
    -
    13470  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13471  },
    -
    13472  // -1:00 EU %z 2024 Mar 31
    -
    13473  {
    -
    13474  &kZonePolicyEU /*zonePolicy*/,
    -
    13475  "" /*format*/,
    -
    13476  -240 /*offsetCode (-3600/15)*/,
    -
    13477  0 /*offsetRemainder (-3600%15)*/,
    -
    13478  0 /*deltaMinutes*/,
    -
    13479  2024 /*untilYear*/,
    -
    13480  3 /*untilMonth*/,
    -
    13481  31 /*untilDay*/,
    -
    13482  0 /*untilTimeCode (0/15)*/,
    -
    13483  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13484  },
    -
    13485  // -2:00 EU %z
    -
    13486  {
    -
    13487  &kZonePolicyEU /*zonePolicy*/,
    -
    13488  "" /*format*/,
    -
    13489  -480 /*offsetCode (-7200/15)*/,
    -
    13490  0 /*offsetRemainder (-7200%15)*/,
    -
    13491  0 /*deltaMinutes*/,
    -
    13492  32767 /*untilYear*/,
    -
    13493  1 /*untilMonth*/,
    -
    13494  1 /*untilDay*/,
    -
    13495  0 /*untilTimeCode (0/15)*/,
    -
    13496  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13497  },
    -
    13498 
    -
    13499 };
    -
    13500 
    -
    13501 static const char kZoneNameAmerica_Scoresbysund[] ACE_TIME_PROGMEM = "\x02" "Scoresbysund";
    -
    13502 
    -
    13503 const complete::Info::ZoneInfo kZoneAmerica_Scoresbysund ACE_TIME_PROGMEM = {
    -
    13504  kZoneNameAmerica_Scoresbysund /*name*/,
    -
    13505  0x123f8d2a /*zoneId*/,
    -
    13506  &kZoneContext /*zoneContext*/,
    -
    13507  5 /*numEras*/,
    -
    13508  kZoneEraAmerica_Scoresbysund /*eras*/,
    -
    13509  nullptr /*targetInfo*/,
    -
    13510 };
    -
    13511 
    -
    13512 //---------------------------------------------------------------------------
    -
    13513 // Zone name: America/Sitka
    -
    13514 // Eras: 8
    -
    13515 //---------------------------------------------------------------------------
    -
    13516 
    -
    13517 static const complete::Info::ZoneEra kZoneEraAmerica_Sitka[] ACE_TIME_PROGMEM = {
    -
    13518  // 14:58:47 - LMT 1867 Oct 19 15:30
    -
    13519  {
    -
    13520  nullptr /*zonePolicy*/,
    -
    13521  "LMT" /*format*/,
    -
    13522  3595 /*offsetCode (53927/15)*/,
    -
    13523  2 /*offsetRemainder (53927%15)*/,
    -
    13524  0 /*deltaMinutes*/,
    -
    13525  1867 /*untilYear*/,
    -
    13526  10 /*untilMonth*/,
    -
    13527  19 /*untilDay*/,
    -
    13528  3720 /*untilTimeCode (55800/15)*/,
    -
    13529  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13530  },
    -
    13531  // -9:01:13 - LMT 1900 Aug 20 12:00
    -
    13532  {
    -
    13533  nullptr /*zonePolicy*/,
    -
    13534  "LMT" /*format*/,
    -
    13535  -2165 /*offsetCode (-32473/15)*/,
    -
    13536  2 /*offsetRemainder (-32473%15)*/,
    -
    13537  0 /*deltaMinutes*/,
    -
    13538  1900 /*untilYear*/,
    -
    13539  8 /*untilMonth*/,
    -
    13540  20 /*untilDay*/,
    -
    13541  2880 /*untilTimeCode (43200/15)*/,
    -
    13542  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13543  },
    -
    13544  // -8:00 - PST 1942
    -
    13545  {
    -
    13546  nullptr /*zonePolicy*/,
    -
    13547  "PST" /*format*/,
    -
    13548  -1920 /*offsetCode (-28800/15)*/,
    -
    13549  0 /*offsetRemainder (-28800%15)*/,
    -
    13550  0 /*deltaMinutes*/,
    -
    13551  1942 /*untilYear*/,
    -
    13552  1 /*untilMonth*/,
    -
    13553  1 /*untilDay*/,
    -
    13554  0 /*untilTimeCode (0/15)*/,
    -
    13555  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13556  },
    -
    13557  // -8:00 US P%sT 1946
    -
    13558  {
    -
    13559  &kZonePolicyUS /*zonePolicy*/,
    -
    13560  "P%T" /*format*/,
    -
    13561  -1920 /*offsetCode (-28800/15)*/,
    -
    13562  0 /*offsetRemainder (-28800%15)*/,
    -
    13563  0 /*deltaMinutes*/,
    -
    13564  1946 /*untilYear*/,
    -
    13565  1 /*untilMonth*/,
    -
    13566  1 /*untilDay*/,
    -
    13567  0 /*untilTimeCode (0/15)*/,
    -
    13568  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13569  },
    -
    13570  // -8:00 - PST 1969
    -
    13571  {
    -
    13572  nullptr /*zonePolicy*/,
    -
    13573  "PST" /*format*/,
    -
    13574  -1920 /*offsetCode (-28800/15)*/,
    -
    13575  0 /*offsetRemainder (-28800%15)*/,
    -
    13576  0 /*deltaMinutes*/,
    -
    13577  1969 /*untilYear*/,
    -
    13578  1 /*untilMonth*/,
    -
    13579  1 /*untilDay*/,
    -
    13580  0 /*untilTimeCode (0/15)*/,
    -
    13581  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13582  },
    -
    13583  // -8:00 US P%sT 1983 Oct 30 2:00
    -
    13584  {
    -
    13585  &kZonePolicyUS /*zonePolicy*/,
    -
    13586  "P%T" /*format*/,
    -
    13587  -1920 /*offsetCode (-28800/15)*/,
    -
    13588  0 /*offsetRemainder (-28800%15)*/,
    -
    13589  0 /*deltaMinutes*/,
    -
    13590  1983 /*untilYear*/,
    -
    13591  10 /*untilMonth*/,
    -
    13592  30 /*untilDay*/,
    -
    13593  480 /*untilTimeCode (7200/15)*/,
    -
    13594  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13595  },
    -
    13596  // -9:00 US Y%sT 1983 Nov 30
    -
    13597  {
    -
    13598  &kZonePolicyUS /*zonePolicy*/,
    -
    13599  "Y%T" /*format*/,
    -
    13600  -2160 /*offsetCode (-32400/15)*/,
    -
    13601  0 /*offsetRemainder (-32400%15)*/,
    -
    13602  0 /*deltaMinutes*/,
    -
    13603  1983 /*untilYear*/,
    -
    13604  11 /*untilMonth*/,
    -
    13605  30 /*untilDay*/,
    -
    13606  0 /*untilTimeCode (0/15)*/,
    -
    13607  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13608  },
    -
    13609  // -9:00 US AK%sT
    -
    13610  {
    -
    13611  &kZonePolicyUS /*zonePolicy*/,
    -
    13612  "AK%T" /*format*/,
    -
    13613  -2160 /*offsetCode (-32400/15)*/,
    -
    13614  0 /*offsetRemainder (-32400%15)*/,
    -
    13615  0 /*deltaMinutes*/,
    -
    13616  32767 /*untilYear*/,
    -
    13617  1 /*untilMonth*/,
    -
    13618  1 /*untilDay*/,
    -
    13619  0 /*untilTimeCode (0/15)*/,
    -
    13620  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13621  },
    -
    13622 
    -
    13623 };
    -
    13624 
    -
    13625 static const char kZoneNameAmerica_Sitka[] ACE_TIME_PROGMEM = "\x02" "Sitka";
    -
    13626 
    -
    13627 const complete::Info::ZoneInfo kZoneAmerica_Sitka ACE_TIME_PROGMEM = {
    -
    13628  kZoneNameAmerica_Sitka /*name*/,
    -
    13629  0x99104ce2 /*zoneId*/,
    -
    13630  &kZoneContext /*zoneContext*/,
    -
    13631  8 /*numEras*/,
    -
    13632  kZoneEraAmerica_Sitka /*eras*/,
    -
    13633  nullptr /*targetInfo*/,
    -
    13634 };
    -
    13635 
    -
    13636 //---------------------------------------------------------------------------
    -
    13637 // Zone name: America/St_Johns
    -
    13638 // Eras: 8
    -
    13639 //---------------------------------------------------------------------------
    -
    13640 
    -
    13641 static const complete::Info::ZoneEra kZoneEraAmerica_St_Johns[] ACE_TIME_PROGMEM = {
    -
    13642  // -3:30:52 - LMT 1884
    -
    13643  {
    -
    13644  nullptr /*zonePolicy*/,
    -
    13645  "LMT" /*format*/,
    -
    13646  -844 /*offsetCode (-12652/15)*/,
    -
    13647  8 /*offsetRemainder (-12652%15)*/,
    -
    13648  0 /*deltaMinutes*/,
    -
    13649  1884 /*untilYear*/,
    -
    13650  1 /*untilMonth*/,
    -
    13651  1 /*untilDay*/,
    -
    13652  0 /*untilTimeCode (0/15)*/,
    -
    13653  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13654  },
    -
    13655  // -3:30:52 StJohns N%sT 1918
    -
    13656  {
    -
    13657  &kZonePolicyStJohns /*zonePolicy*/,
    -
    13658  "N%T" /*format*/,
    -
    13659  -844 /*offsetCode (-12652/15)*/,
    -
    13660  8 /*offsetRemainder (-12652%15)*/,
    -
    13661  0 /*deltaMinutes*/,
    -
    13662  1918 /*untilYear*/,
    -
    13663  1 /*untilMonth*/,
    -
    13664  1 /*untilDay*/,
    -
    13665  0 /*untilTimeCode (0/15)*/,
    -
    13666  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13667  },
    -
    13668  // -3:30:52 Canada N%sT 1919
    -
    13669  {
    -
    13670  &kZonePolicyCanada /*zonePolicy*/,
    -
    13671  "N%T" /*format*/,
    -
    13672  -844 /*offsetCode (-12652/15)*/,
    -
    13673  8 /*offsetRemainder (-12652%15)*/,
    -
    13674  0 /*deltaMinutes*/,
    -
    13675  1919 /*untilYear*/,
    -
    13676  1 /*untilMonth*/,
    -
    13677  1 /*untilDay*/,
    -
    13678  0 /*untilTimeCode (0/15)*/,
    -
    13679  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13680  },
    -
    13681  // -3:30:52 StJohns N%sT 1935 Mar 30
    -
    13682  {
    -
    13683  &kZonePolicyStJohns /*zonePolicy*/,
    -
    13684  "N%T" /*format*/,
    -
    13685  -844 /*offsetCode (-12652/15)*/,
    -
    13686  8 /*offsetRemainder (-12652%15)*/,
    -
    13687  0 /*deltaMinutes*/,
    -
    13688  1935 /*untilYear*/,
    -
    13689  3 /*untilMonth*/,
    -
    13690  30 /*untilDay*/,
    -
    13691  0 /*untilTimeCode (0/15)*/,
    -
    13692  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13693  },
    -
    13694  // -3:30 StJohns N%sT 1942 May 11
    -
    13695  {
    -
    13696  &kZonePolicyStJohns /*zonePolicy*/,
    -
    13697  "N%T" /*format*/,
    -
    13698  -840 /*offsetCode (-12600/15)*/,
    -
    13699  0 /*offsetRemainder (-12600%15)*/,
    -
    13700  0 /*deltaMinutes*/,
    -
    13701  1942 /*untilYear*/,
    -
    13702  5 /*untilMonth*/,
    -
    13703  11 /*untilDay*/,
    -
    13704  0 /*untilTimeCode (0/15)*/,
    -
    13705  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13706  },
    -
    13707  // -3:30 Canada N%sT 1946
    -
    13708  {
    -
    13709  &kZonePolicyCanada /*zonePolicy*/,
    -
    13710  "N%T" /*format*/,
    -
    13711  -840 /*offsetCode (-12600/15)*/,
    -
    13712  0 /*offsetRemainder (-12600%15)*/,
    -
    13713  0 /*deltaMinutes*/,
    -
    13714  1946 /*untilYear*/,
    -
    13715  1 /*untilMonth*/,
    -
    13716  1 /*untilDay*/,
    -
    13717  0 /*untilTimeCode (0/15)*/,
    -
    13718  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13719  },
    -
    13720  // -3:30 StJohns N%sT 2011 Nov
    -
    13721  {
    -
    13722  &kZonePolicyStJohns /*zonePolicy*/,
    -
    13723  "N%T" /*format*/,
    -
    13724  -840 /*offsetCode (-12600/15)*/,
    -
    13725  0 /*offsetRemainder (-12600%15)*/,
    -
    13726  0 /*deltaMinutes*/,
    -
    13727  2011 /*untilYear*/,
    -
    13728  11 /*untilMonth*/,
    -
    13729  1 /*untilDay*/,
    -
    13730  0 /*untilTimeCode (0/15)*/,
    -
    13731  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13732  },
    -
    13733  // -3:30 Canada N%sT
    -
    13734  {
    -
    13735  &kZonePolicyCanada /*zonePolicy*/,
    -
    13736  "N%T" /*format*/,
    -
    13737  -840 /*offsetCode (-12600/15)*/,
    -
    13738  0 /*offsetRemainder (-12600%15)*/,
    -
    13739  0 /*deltaMinutes*/,
    -
    13740  32767 /*untilYear*/,
    -
    13741  1 /*untilMonth*/,
    -
    13742  1 /*untilDay*/,
    -
    13743  0 /*untilTimeCode (0/15)*/,
    -
    13744  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13745  },
    -
    13746 
    -
    13747 };
    -
    13748 
    -
    13749 static const char kZoneNameAmerica_St_Johns[] ACE_TIME_PROGMEM = "\x02" "St_Johns";
    -
    13750 
    -
    13751 const complete::Info::ZoneInfo kZoneAmerica_St_Johns ACE_TIME_PROGMEM = {
    -
    13752  kZoneNameAmerica_St_Johns /*name*/,
    -
    13753  0x04b14e6e /*zoneId*/,
    -
    13754  &kZoneContext /*zoneContext*/,
    -
    13755  8 /*numEras*/,
    -
    13756  kZoneEraAmerica_St_Johns /*eras*/,
    -
    13757  nullptr /*targetInfo*/,
    -
    13758 };
    -
    13759 
    -
    13760 //---------------------------------------------------------------------------
    -
    13761 // Zone name: America/Swift_Current
    -
    13762 // Eras: 5
    -
    13763 //---------------------------------------------------------------------------
    -
    13764 
    -
    13765 static const complete::Info::ZoneEra kZoneEraAmerica_Swift_Current[] ACE_TIME_PROGMEM = {
    -
    13766  // -7:11:20 - LMT 1905 Sep
    -
    13767  {
    -
    13768  nullptr /*zonePolicy*/,
    -
    13769  "LMT" /*format*/,
    -
    13770  -1726 /*offsetCode (-25880/15)*/,
    -
    13771  10 /*offsetRemainder (-25880%15)*/,
    -
    13772  0 /*deltaMinutes*/,
    -
    13773  1905 /*untilYear*/,
    -
    13774  9 /*untilMonth*/,
    -
    13775  1 /*untilDay*/,
    -
    13776  0 /*untilTimeCode (0/15)*/,
    -
    13777  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13778  },
    -
    13779  // -7:00 Canada M%sT 1946 Apr lastSun 2:00
    -
    13780  {
    -
    13781  &kZonePolicyCanada /*zonePolicy*/,
    -
    13782  "M%T" /*format*/,
    -
    13783  -1680 /*offsetCode (-25200/15)*/,
    -
    13784  0 /*offsetRemainder (-25200%15)*/,
    -
    13785  0 /*deltaMinutes*/,
    -
    13786  1946 /*untilYear*/,
    -
    13787  4 /*untilMonth*/,
    -
    13788  28 /*untilDay*/,
    -
    13789  480 /*untilTimeCode (7200/15)*/,
    -
    13790  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13791  },
    -
    13792  // -7:00 Regina M%sT 1950
    -
    13793  {
    -
    13794  &kZonePolicyRegina /*zonePolicy*/,
    -
    13795  "M%T" /*format*/,
    -
    13796  -1680 /*offsetCode (-25200/15)*/,
    -
    13797  0 /*offsetRemainder (-25200%15)*/,
    -
    13798  0 /*deltaMinutes*/,
    -
    13799  1950 /*untilYear*/,
    -
    13800  1 /*untilMonth*/,
    -
    13801  1 /*untilDay*/,
    -
    13802  0 /*untilTimeCode (0/15)*/,
    -
    13803  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13804  },
    -
    13805  // -7:00 Swift M%sT 1972 Apr lastSun 2:00
    -
    13806  {
    -
    13807  &kZonePolicySwift /*zonePolicy*/,
    -
    13808  "M%T" /*format*/,
    -
    13809  -1680 /*offsetCode (-25200/15)*/,
    -
    13810  0 /*offsetRemainder (-25200%15)*/,
    -
    13811  0 /*deltaMinutes*/,
    -
    13812  1972 /*untilYear*/,
    -
    13813  4 /*untilMonth*/,
    -
    13814  30 /*untilDay*/,
    -
    13815  480 /*untilTimeCode (7200/15)*/,
    -
    13816  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13817  },
    -
    13818  // -6:00 - CST
    -
    13819  {
    -
    13820  nullptr /*zonePolicy*/,
    -
    13821  "CST" /*format*/,
    -
    13822  -1440 /*offsetCode (-21600/15)*/,
    -
    13823  0 /*offsetRemainder (-21600%15)*/,
    -
    13824  0 /*deltaMinutes*/,
    -
    13825  32767 /*untilYear*/,
    -
    13826  1 /*untilMonth*/,
    -
    13827  1 /*untilDay*/,
    -
    13828  0 /*untilTimeCode (0/15)*/,
    -
    13829  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13830  },
    -
    13831 
    -
    13832 };
    -
    13833 
    -
    13834 static const char kZoneNameAmerica_Swift_Current[] ACE_TIME_PROGMEM = "\x02" "Swift_Current";
    -
    13835 
    -
    13836 const complete::Info::ZoneInfo kZoneAmerica_Swift_Current ACE_TIME_PROGMEM = {
    -
    13837  kZoneNameAmerica_Swift_Current /*name*/,
    -
    13838  0xdef98e55 /*zoneId*/,
    -
    13839  &kZoneContext /*zoneContext*/,
    -
    13840  5 /*numEras*/,
    -
    13841  kZoneEraAmerica_Swift_Current /*eras*/,
    -
    13842  nullptr /*targetInfo*/,
    -
    13843 };
    -
    13844 
    -
    13845 //---------------------------------------------------------------------------
    -
    13846 // Zone name: America/Tegucigalpa
    -
    13847 // Eras: 2
    -
    13848 //---------------------------------------------------------------------------
    -
    13849 
    -
    13850 static const complete::Info::ZoneEra kZoneEraAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = {
    -
    13851  // -5:48:52 - LMT 1921 Apr
    -
    13852  {
    -
    13853  nullptr /*zonePolicy*/,
    -
    13854  "LMT" /*format*/,
    -
    13855  -1396 /*offsetCode (-20932/15)*/,
    -
    13856  8 /*offsetRemainder (-20932%15)*/,
    -
    13857  0 /*deltaMinutes*/,
    -
    13858  1921 /*untilYear*/,
    -
    13859  4 /*untilMonth*/,
    -
    13860  1 /*untilDay*/,
    -
    13861  0 /*untilTimeCode (0/15)*/,
    -
    13862  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13863  },
    -
    13864  // -6:00 Hond C%sT
    -
    13865  {
    -
    13866  &kZonePolicyHond /*zonePolicy*/,
    -
    13867  "C%T" /*format*/,
    -
    13868  -1440 /*offsetCode (-21600/15)*/,
    -
    13869  0 /*offsetRemainder (-21600%15)*/,
    -
    13870  0 /*deltaMinutes*/,
    -
    13871  32767 /*untilYear*/,
    -
    13872  1 /*untilMonth*/,
    -
    13873  1 /*untilDay*/,
    -
    13874  0 /*untilTimeCode (0/15)*/,
    -
    13875  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13876  },
    -
    13877 
    -
    13878 };
    -
    13879 
    -
    13880 static const char kZoneNameAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = "\x02" "Tegucigalpa";
    -
    13881 
    -
    13882 const complete::Info::ZoneInfo kZoneAmerica_Tegucigalpa ACE_TIME_PROGMEM = {
    -
    13883  kZoneNameAmerica_Tegucigalpa /*name*/,
    -
    13884  0xbfd6fd4c /*zoneId*/,
    -
    13885  &kZoneContext /*zoneContext*/,
    -
    13886  2 /*numEras*/,
    -
    13887  kZoneEraAmerica_Tegucigalpa /*eras*/,
    -
    13888  nullptr /*targetInfo*/,
    -
    13889 };
    -
    13890 
    -
    13891 //---------------------------------------------------------------------------
    -
    13892 // Zone name: America/Thule
    -
    13893 // Eras: 2
    -
    13894 //---------------------------------------------------------------------------
    -
    13895 
    -
    13896 static const complete::Info::ZoneEra kZoneEraAmerica_Thule[] ACE_TIME_PROGMEM = {
    -
    13897  // -4:35:08 - LMT 1916 Jul 28
    -
    13898  {
    -
    13899  nullptr /*zonePolicy*/,
    -
    13900  "LMT" /*format*/,
    -
    13901  -1101 /*offsetCode (-16508/15)*/,
    -
    13902  7 /*offsetRemainder (-16508%15)*/,
    -
    13903  0 /*deltaMinutes*/,
    -
    13904  1916 /*untilYear*/,
    -
    13905  7 /*untilMonth*/,
    -
    13906  28 /*untilDay*/,
    -
    13907  0 /*untilTimeCode (0/15)*/,
    -
    13908  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13909  },
    -
    13910  // -4:00 Thule A%sT
    -
    13911  {
    -
    13912  &kZonePolicyThule /*zonePolicy*/,
    -
    13913  "A%T" /*format*/,
    -
    13914  -960 /*offsetCode (-14400/15)*/,
    -
    13915  0 /*offsetRemainder (-14400%15)*/,
    -
    13916  0 /*deltaMinutes*/,
    -
    13917  32767 /*untilYear*/,
    -
    13918  1 /*untilMonth*/,
    -
    13919  1 /*untilDay*/,
    -
    13920  0 /*untilTimeCode (0/15)*/,
    -
    13921  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13922  },
    -
    13923 
    -
    13924 };
    -
    13925 
    -
    13926 static const char kZoneNameAmerica_Thule[] ACE_TIME_PROGMEM = "\x02" "Thule";
    -
    13927 
    -
    13928 const complete::Info::ZoneInfo kZoneAmerica_Thule ACE_TIME_PROGMEM = {
    -
    13929  kZoneNameAmerica_Thule /*name*/,
    -
    13930  0x9921dd68 /*zoneId*/,
    -
    13931  &kZoneContext /*zoneContext*/,
    -
    13932  2 /*numEras*/,
    -
    13933  kZoneEraAmerica_Thule /*eras*/,
    -
    13934  nullptr /*targetInfo*/,
    -
    13935 };
    -
    13936 
    -
    13937 //---------------------------------------------------------------------------
    -
    13938 // Zone name: America/Tijuana
    -
    13939 // Eras: 25
    -
    13940 //---------------------------------------------------------------------------
    -
    13941 
    -
    13942 static const complete::Info::ZoneEra kZoneEraAmerica_Tijuana[] ACE_TIME_PROGMEM = {
    -
    13943  // -7:48:04 - LMT 1922 Jan 1 7:00u
    -
    13944  {
    -
    13945  nullptr /*zonePolicy*/,
    -
    13946  "LMT" /*format*/,
    -
    13947  -1873 /*offsetCode (-28084/15)*/,
    -
    13948  11 /*offsetRemainder (-28084%15)*/,
    -
    13949  0 /*deltaMinutes*/,
    -
    13950  1922 /*untilYear*/,
    -
    13951  1 /*untilMonth*/,
    -
    13952  1 /*untilDay*/,
    -
    13953  1680 /*untilTimeCode (25200/15)*/,
    -
    13954  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    13955  },
    -
    13956  // -7:00 - MST 1924
    -
    13957  {
    -
    13958  nullptr /*zonePolicy*/,
    -
    13959  "MST" /*format*/,
    -
    13960  -1680 /*offsetCode (-25200/15)*/,
    -
    13961  0 /*offsetRemainder (-25200%15)*/,
    -
    13962  0 /*deltaMinutes*/,
    -
    13963  1924 /*untilYear*/,
    -
    13964  1 /*untilMonth*/,
    -
    13965  1 /*untilDay*/,
    -
    13966  0 /*untilTimeCode (0/15)*/,
    -
    13967  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13968  },
    -
    13969  // -8:00 - PST 1927 Jun 10
    -
    13970  {
    -
    13971  nullptr /*zonePolicy*/,
    -
    13972  "PST" /*format*/,
    -
    13973  -1920 /*offsetCode (-28800/15)*/,
    -
    13974  0 /*offsetRemainder (-28800%15)*/,
    -
    13975  0 /*deltaMinutes*/,
    -
    13976  1927 /*untilYear*/,
    -
    13977  6 /*untilMonth*/,
    -
    13978  10 /*untilDay*/,
    -
    13979  0 /*untilTimeCode (0/15)*/,
    -
    13980  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13981  },
    -
    13982  // -7:00 - MST 1930 Nov 15
    -
    13983  {
    -
    13984  nullptr /*zonePolicy*/,
    -
    13985  "MST" /*format*/,
    -
    13986  -1680 /*offsetCode (-25200/15)*/,
    -
    13987  0 /*offsetRemainder (-25200%15)*/,
    -
    13988  0 /*deltaMinutes*/,
    -
    13989  1930 /*untilYear*/,
    -
    13990  11 /*untilMonth*/,
    -
    13991  15 /*untilDay*/,
    -
    13992  0 /*untilTimeCode (0/15)*/,
    -
    13993  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13994  },
    -
    13995  // -8:00 - PST 1931 Apr 1
    -
    13996  {
    -
    13997  nullptr /*zonePolicy*/,
    -
    13998  "PST" /*format*/,
    -
    13999  -1920 /*offsetCode (-28800/15)*/,
    -
    14000  0 /*offsetRemainder (-28800%15)*/,
    -
    14001  0 /*deltaMinutes*/,
    -
    14002  1931 /*untilYear*/,
    -
    14003  4 /*untilMonth*/,
    -
    14004  1 /*untilDay*/,
    -
    14005  0 /*untilTimeCode (0/15)*/,
    -
    14006  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14007  },
    -
    14008  // -8:00 1:00 PDT 1931 Sep 30
    -
    14009  {
    -
    14010  nullptr /*zonePolicy*/,
    -
    14011  "PDT" /*format*/,
    -
    14012  -1920 /*offsetCode (-28800/15)*/,
    -
    14013  0 /*offsetRemainder (-28800%15)*/,
    -
    14014  60 /*deltaMinutes*/,
    -
    14015  1931 /*untilYear*/,
    -
    14016  9 /*untilMonth*/,
    -
    14017  30 /*untilDay*/,
    -
    14018  0 /*untilTimeCode (0/15)*/,
    -
    14019  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14020  },
    -
    14021  // -8:00 - PST 1942 Apr 24
    -
    14022  {
    -
    14023  nullptr /*zonePolicy*/,
    -
    14024  "PST" /*format*/,
    -
    14025  -1920 /*offsetCode (-28800/15)*/,
    -
    14026  0 /*offsetRemainder (-28800%15)*/,
    -
    14027  0 /*deltaMinutes*/,
    -
    14028  1942 /*untilYear*/,
    -
    14029  4 /*untilMonth*/,
    -
    14030  24 /*untilDay*/,
    -
    14031  0 /*untilTimeCode (0/15)*/,
    -
    14032  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14033  },
    -
    14034  // -8:00 1:00 PWT 1945 Aug 14 23:00u
    -
    14035  {
    -
    14036  nullptr /*zonePolicy*/,
    -
    14037  "PWT" /*format*/,
    -
    14038  -1920 /*offsetCode (-28800/15)*/,
    -
    14039  0 /*offsetRemainder (-28800%15)*/,
    -
    14040  60 /*deltaMinutes*/,
    -
    14041  1945 /*untilYear*/,
    -
    14042  8 /*untilMonth*/,
    -
    14043  14 /*untilDay*/,
    -
    14044  5520 /*untilTimeCode (82800/15)*/,
    -
    14045  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    14046  },
    -
    14047  // -8:00 1:00 PPT 1945 Nov 15
    -
    14048  {
    -
    14049  nullptr /*zonePolicy*/,
    -
    14050  "PPT" /*format*/,
    -
    14051  -1920 /*offsetCode (-28800/15)*/,
    -
    14052  0 /*offsetRemainder (-28800%15)*/,
    -
    14053  60 /*deltaMinutes*/,
    -
    14054  1945 /*untilYear*/,
    -
    14055  11 /*untilMonth*/,
    -
    14056  15 /*untilDay*/,
    -
    14057  0 /*untilTimeCode (0/15)*/,
    -
    14058  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14059  },
    -
    14060  // -8:00 - PST 1948 Apr 5
    -
    14061  {
    -
    14062  nullptr /*zonePolicy*/,
    -
    14063  "PST" /*format*/,
    -
    14064  -1920 /*offsetCode (-28800/15)*/,
    -
    14065  0 /*offsetRemainder (-28800%15)*/,
    -
    14066  0 /*deltaMinutes*/,
    -
    14067  1948 /*untilYear*/,
    -
    14068  4 /*untilMonth*/,
    -
    14069  5 /*untilDay*/,
    -
    14070  0 /*untilTimeCode (0/15)*/,
    -
    14071  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14072  },
    -
    14073  // -8:00 1:00 PDT 1949 Jan 14
    -
    14074  {
    -
    14075  nullptr /*zonePolicy*/,
    -
    14076  "PDT" /*format*/,
    -
    14077  -1920 /*offsetCode (-28800/15)*/,
    -
    14078  0 /*offsetRemainder (-28800%15)*/,
    -
    14079  60 /*deltaMinutes*/,
    -
    14080  1949 /*untilYear*/,
    -
    14081  1 /*untilMonth*/,
    -
    14082  14 /*untilDay*/,
    -
    14083  0 /*untilTimeCode (0/15)*/,
    -
    14084  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14085  },
    -
    14086  // -8:00 - PST 1950 May 1
    -
    14087  {
    -
    14088  nullptr /*zonePolicy*/,
    -
    14089  "PST" /*format*/,
    -
    14090  -1920 /*offsetCode (-28800/15)*/,
    -
    14091  0 /*offsetRemainder (-28800%15)*/,
    -
    14092  0 /*deltaMinutes*/,
    -
    14093  1950 /*untilYear*/,
    -
    14094  5 /*untilMonth*/,
    -
    14095  1 /*untilDay*/,
    -
    14096  0 /*untilTimeCode (0/15)*/,
    -
    14097  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14098  },
    -
    14099  // -8:00 1:00 PDT 1950 Sep 24
    -
    14100  {
    -
    14101  nullptr /*zonePolicy*/,
    -
    14102  "PDT" /*format*/,
    -
    14103  -1920 /*offsetCode (-28800/15)*/,
    -
    14104  0 /*offsetRemainder (-28800%15)*/,
    -
    14105  60 /*deltaMinutes*/,
    -
    14106  1950 /*untilYear*/,
    -
    14107  9 /*untilMonth*/,
    -
    14108  24 /*untilDay*/,
    -
    14109  0 /*untilTimeCode (0/15)*/,
    -
    14110  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14111  },
    -
    14112  // -8:00 - PST 1951 Apr 29 2:00
    -
    14113  {
    -
    14114  nullptr /*zonePolicy*/,
    -
    14115  "PST" /*format*/,
    -
    14116  -1920 /*offsetCode (-28800/15)*/,
    -
    14117  0 /*offsetRemainder (-28800%15)*/,
    -
    14118  0 /*deltaMinutes*/,
    -
    14119  1951 /*untilYear*/,
    -
    14120  4 /*untilMonth*/,
    -
    14121  29 /*untilDay*/,
    -
    14122  480 /*untilTimeCode (7200/15)*/,
    -
    14123  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14124  },
    -
    14125  // -8:00 1:00 PDT 1951 Sep 30 2:00
    -
    14126  {
    -
    14127  nullptr /*zonePolicy*/,
    -
    14128  "PDT" /*format*/,
    -
    14129  -1920 /*offsetCode (-28800/15)*/,
    -
    14130  0 /*offsetRemainder (-28800%15)*/,
    -
    14131  60 /*deltaMinutes*/,
    -
    14132  1951 /*untilYear*/,
    -
    14133  9 /*untilMonth*/,
    -
    14134  30 /*untilDay*/,
    -
    14135  480 /*untilTimeCode (7200/15)*/,
    -
    14136  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14137  },
    -
    14138  // -8:00 - PST 1952 Apr 27 2:00
    -
    14139  {
    -
    14140  nullptr /*zonePolicy*/,
    -
    14141  "PST" /*format*/,
    -
    14142  -1920 /*offsetCode (-28800/15)*/,
    -
    14143  0 /*offsetRemainder (-28800%15)*/,
    -
    14144  0 /*deltaMinutes*/,
    -
    14145  1952 /*untilYear*/,
    -
    14146  4 /*untilMonth*/,
    -
    14147  27 /*untilDay*/,
    -
    14148  480 /*untilTimeCode (7200/15)*/,
    -
    14149  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14150  },
    -
    14151  // -8:00 1:00 PDT 1952 Sep 28 2:00
    -
    14152  {
    -
    14153  nullptr /*zonePolicy*/,
    -
    14154  "PDT" /*format*/,
    -
    14155  -1920 /*offsetCode (-28800/15)*/,
    -
    14156  0 /*offsetRemainder (-28800%15)*/,
    -
    14157  60 /*deltaMinutes*/,
    -
    14158  1952 /*untilYear*/,
    -
    14159  9 /*untilMonth*/,
    -
    14160  28 /*untilDay*/,
    -
    14161  480 /*untilTimeCode (7200/15)*/,
    -
    14162  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14163  },
    -
    14164  // -8:00 - PST 1954
    -
    14165  {
    -
    14166  nullptr /*zonePolicy*/,
    -
    14167  "PST" /*format*/,
    -
    14168  -1920 /*offsetCode (-28800/15)*/,
    -
    14169  0 /*offsetRemainder (-28800%15)*/,
    -
    14170  0 /*deltaMinutes*/,
    -
    14171  1954 /*untilYear*/,
    -
    14172  1 /*untilMonth*/,
    -
    14173  1 /*untilDay*/,
    -
    14174  0 /*untilTimeCode (0/15)*/,
    -
    14175  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14176  },
    -
    14177  // -8:00 CA P%sT 1961
    -
    14178  {
    -
    14179  &kZonePolicyCA /*zonePolicy*/,
    -
    14180  "P%T" /*format*/,
    -
    14181  -1920 /*offsetCode (-28800/15)*/,
    -
    14182  0 /*offsetRemainder (-28800%15)*/,
    -
    14183  0 /*deltaMinutes*/,
    -
    14184  1961 /*untilYear*/,
    -
    14185  1 /*untilMonth*/,
    -
    14186  1 /*untilDay*/,
    -
    14187  0 /*untilTimeCode (0/15)*/,
    -
    14188  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14189  },
    -
    14190  // -8:00 - PST 1976
    -
    14191  {
    -
    14192  nullptr /*zonePolicy*/,
    -
    14193  "PST" /*format*/,
    -
    14194  -1920 /*offsetCode (-28800/15)*/,
    -
    14195  0 /*offsetRemainder (-28800%15)*/,
    -
    14196  0 /*deltaMinutes*/,
    -
    14197  1976 /*untilYear*/,
    -
    14198  1 /*untilMonth*/,
    -
    14199  1 /*untilDay*/,
    -
    14200  0 /*untilTimeCode (0/15)*/,
    -
    14201  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14202  },
    -
    14203  // -8:00 US P%sT 1996
    -
    14204  {
    -
    14205  &kZonePolicyUS /*zonePolicy*/,
    -
    14206  "P%T" /*format*/,
    -
    14207  -1920 /*offsetCode (-28800/15)*/,
    -
    14208  0 /*offsetRemainder (-28800%15)*/,
    -
    14209  0 /*deltaMinutes*/,
    -
    14210  1996 /*untilYear*/,
    -
    14211  1 /*untilMonth*/,
    -
    14212  1 /*untilDay*/,
    -
    14213  0 /*untilTimeCode (0/15)*/,
    -
    14214  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14215  },
    -
    14216  // -8:00 Mexico P%sT 2001
    -
    14217  {
    -
    14218  &kZonePolicyMexico /*zonePolicy*/,
    -
    14219  "P%T" /*format*/,
    -
    14220  -1920 /*offsetCode (-28800/15)*/,
    -
    14221  0 /*offsetRemainder (-28800%15)*/,
    -
    14222  0 /*deltaMinutes*/,
    -
    14223  2001 /*untilYear*/,
    -
    14224  1 /*untilMonth*/,
    -
    14225  1 /*untilDay*/,
    -
    14226  0 /*untilTimeCode (0/15)*/,
    -
    14227  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14228  },
    -
    14229  // -8:00 US P%sT 2002 Feb 20
    -
    14230  {
    -
    14231  &kZonePolicyUS /*zonePolicy*/,
    -
    14232  "P%T" /*format*/,
    -
    14233  -1920 /*offsetCode (-28800/15)*/,
    -
    14234  0 /*offsetRemainder (-28800%15)*/,
    -
    14235  0 /*deltaMinutes*/,
    -
    14236  2002 /*untilYear*/,
    -
    14237  2 /*untilMonth*/,
    -
    14238  20 /*untilDay*/,
    -
    14239  0 /*untilTimeCode (0/15)*/,
    -
    14240  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14241  },
    -
    14242  // -8:00 Mexico P%sT 2010
    -
    14243  {
    -
    14244  &kZonePolicyMexico /*zonePolicy*/,
    -
    14245  "P%T" /*format*/,
    -
    14246  -1920 /*offsetCode (-28800/15)*/,
    -
    14247  0 /*offsetRemainder (-28800%15)*/,
    -
    14248  0 /*deltaMinutes*/,
    -
    14249  2010 /*untilYear*/,
    -
    14250  1 /*untilMonth*/,
    -
    14251  1 /*untilDay*/,
    -
    14252  0 /*untilTimeCode (0/15)*/,
    -
    14253  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14254  },
    -
    14255  // -8:00 US P%sT
    -
    14256  {
    -
    14257  &kZonePolicyUS /*zonePolicy*/,
    -
    14258  "P%T" /*format*/,
    -
    14259  -1920 /*offsetCode (-28800/15)*/,
    -
    14260  0 /*offsetRemainder (-28800%15)*/,
    -
    14261  0 /*deltaMinutes*/,
    -
    14262  32767 /*untilYear*/,
    -
    14263  1 /*untilMonth*/,
    -
    14264  1 /*untilDay*/,
    -
    14265  0 /*untilTimeCode (0/15)*/,
    -
    14266  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14267  },
    -
    14268 
    -
    14269 };
    -
    14270 
    -
    14271 static const char kZoneNameAmerica_Tijuana[] ACE_TIME_PROGMEM = "\x02" "Tijuana";
    -
    14272 
    -
    14273 const complete::Info::ZoneInfo kZoneAmerica_Tijuana ACE_TIME_PROGMEM = {
    -
    14274  kZoneNameAmerica_Tijuana /*name*/,
    -
    14275  0x6aa1df72 /*zoneId*/,
    -
    14276  &kZoneContext /*zoneContext*/,
    -
    14277  25 /*numEras*/,
    -
    14278  kZoneEraAmerica_Tijuana /*eras*/,
    -
    14279  nullptr /*targetInfo*/,
    -
    14280 };
    -
    14281 
    -
    14282 //---------------------------------------------------------------------------
    -
    14283 // Zone name: America/Toronto
    -
    14284 // Eras: 6
    -
    14285 //---------------------------------------------------------------------------
    -
    14286 
    -
    14287 static const complete::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = {
    -
    14288  // -5:17:32 - LMT 1895
    -
    14289  {
    -
    14290  nullptr /*zonePolicy*/,
    -
    14291  "LMT" /*format*/,
    -
    14292  -1271 /*offsetCode (-19052/15)*/,
    -
    14293  13 /*offsetRemainder (-19052%15)*/,
    -
    14294  0 /*deltaMinutes*/,
    -
    14295  1895 /*untilYear*/,
    -
    14296  1 /*untilMonth*/,
    -
    14297  1 /*untilDay*/,
    -
    14298  0 /*untilTimeCode (0/15)*/,
    -
    14299  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14300  },
    -
    14301  // -5:00 Canada E%sT 1919
    -
    14302  {
    -
    14303  &kZonePolicyCanada /*zonePolicy*/,
    -
    14304  "E%T" /*format*/,
    -
    14305  -1200 /*offsetCode (-18000/15)*/,
    -
    14306  0 /*offsetRemainder (-18000%15)*/,
    -
    14307  0 /*deltaMinutes*/,
    -
    14308  1919 /*untilYear*/,
    -
    14309  1 /*untilMonth*/,
    -
    14310  1 /*untilDay*/,
    -
    14311  0 /*untilTimeCode (0/15)*/,
    -
    14312  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14313  },
    -
    14314  // -5:00 Toronto E%sT 1942 Feb 9 2:00s
    -
    14315  {
    -
    14316  &kZonePolicyToronto /*zonePolicy*/,
    -
    14317  "E%T" /*format*/,
    -
    14318  -1200 /*offsetCode (-18000/15)*/,
    -
    14319  0 /*offsetRemainder (-18000%15)*/,
    -
    14320  0 /*deltaMinutes*/,
    -
    14321  1942 /*untilYear*/,
    -
    14322  2 /*untilMonth*/,
    -
    14323  9 /*untilDay*/,
    -
    14324  480 /*untilTimeCode (7200/15)*/,
    -
    14325  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14326  },
    -
    14327  // -5:00 Canada E%sT 1946
    -
    14328  {
    -
    14329  &kZonePolicyCanada /*zonePolicy*/,
    -
    14330  "E%T" /*format*/,
    -
    14331  -1200 /*offsetCode (-18000/15)*/,
    -
    14332  0 /*offsetRemainder (-18000%15)*/,
    -
    14333  0 /*deltaMinutes*/,
    -
    14334  1946 /*untilYear*/,
    -
    14335  1 /*untilMonth*/,
    -
    14336  1 /*untilDay*/,
    -
    14337  0 /*untilTimeCode (0/15)*/,
    -
    14338  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14339  },
    -
    14340  // -5:00 Toronto E%sT 1974
    -
    14341  {
    -
    14342  &kZonePolicyToronto /*zonePolicy*/,
    -
    14343  "E%T" /*format*/,
    -
    14344  -1200 /*offsetCode (-18000/15)*/,
    -
    14345  0 /*offsetRemainder (-18000%15)*/,
    -
    14346  0 /*deltaMinutes*/,
    -
    14347  1974 /*untilYear*/,
    -
    14348  1 /*untilMonth*/,
    -
    14349  1 /*untilDay*/,
    -
    14350  0 /*untilTimeCode (0/15)*/,
    -
    14351  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14352  },
    -
    14353  // -5:00 Canada E%sT
    -
    14354  {
    -
    14355  &kZonePolicyCanada /*zonePolicy*/,
    -
    14356  "E%T" /*format*/,
    -
    14357  -1200 /*offsetCode (-18000/15)*/,
    -
    14358  0 /*offsetRemainder (-18000%15)*/,
    -
    14359  0 /*deltaMinutes*/,
    -
    14360  32767 /*untilYear*/,
    -
    14361  1 /*untilMonth*/,
    -
    14362  1 /*untilDay*/,
    -
    14363  0 /*untilTimeCode (0/15)*/,
    -
    14364  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14365  },
    -
    14366 
    -
    14367 };
    -
    14368 
    -
    14369 static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "\x02" "Toronto";
    -
    14370 
    -
    14371 const complete::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = {
    -
    14372  kZoneNameAmerica_Toronto /*name*/,
    -
    14373  0x792e851b /*zoneId*/,
    -
    14374  &kZoneContext /*zoneContext*/,
    -
    14375  6 /*numEras*/,
    -
    14376  kZoneEraAmerica_Toronto /*eras*/,
    -
    14377  nullptr /*targetInfo*/,
    -
    14378 };
    -
    14379 
    -
    14380 //---------------------------------------------------------------------------
    -
    14381 // Zone name: America/Vancouver
    -
    14382 // Eras: 3
    -
    14383 //---------------------------------------------------------------------------
    -
    14384 
    -
    14385 static const complete::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = {
    -
    14386  // -8:12:28 - LMT 1884
    -
    14387  {
    -
    14388  nullptr /*zonePolicy*/,
    -
    14389  "LMT" /*format*/,
    -
    14390  -1970 /*offsetCode (-29548/15)*/,
    -
    14391  2 /*offsetRemainder (-29548%15)*/,
    -
    14392  0 /*deltaMinutes*/,
    -
    14393  1884 /*untilYear*/,
    -
    14394  1 /*untilMonth*/,
    -
    14395  1 /*untilDay*/,
    -
    14396  0 /*untilTimeCode (0/15)*/,
    -
    14397  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14398  },
    -
    14399  // -8:00 Vanc P%sT 1987
    -
    14400  {
    -
    14401  &kZonePolicyVanc /*zonePolicy*/,
    -
    14402  "P%T" /*format*/,
    -
    14403  -1920 /*offsetCode (-28800/15)*/,
    -
    14404  0 /*offsetRemainder (-28800%15)*/,
    -
    14405  0 /*deltaMinutes*/,
    -
    14406  1987 /*untilYear*/,
    -
    14407  1 /*untilMonth*/,
    -
    14408  1 /*untilDay*/,
    -
    14409  0 /*untilTimeCode (0/15)*/,
    -
    14410  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14411  },
    -
    14412  // -8:00 Canada P%sT
    -
    14413  {
    -
    14414  &kZonePolicyCanada /*zonePolicy*/,
    -
    14415  "P%T" /*format*/,
    -
    14416  -1920 /*offsetCode (-28800/15)*/,
    -
    14417  0 /*offsetRemainder (-28800%15)*/,
    -
    14418  0 /*deltaMinutes*/,
    -
    14419  32767 /*untilYear*/,
    -
    14420  1 /*untilMonth*/,
    -
    14421  1 /*untilDay*/,
    -
    14422  0 /*untilTimeCode (0/15)*/,
    -
    14423  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14424  },
    -
    14425 
    -
    14426 };
    -
    14427 
    -
    14428 static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "\x02" "Vancouver";
    -
    14429 
    -
    14430 const complete::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = {
    -
    14431  kZoneNameAmerica_Vancouver /*name*/,
    -
    14432  0x2c6f6b1f /*zoneId*/,
    -
    14433  &kZoneContext /*zoneContext*/,
    -
    14434  3 /*numEras*/,
    -
    14435  kZoneEraAmerica_Vancouver /*eras*/,
    -
    14436  nullptr /*targetInfo*/,
    -
    14437 };
    -
    14438 
    -
    14439 //---------------------------------------------------------------------------
    -
    14440 // Zone name: America/Whitehorse
    -
    14441 // Eras: 6
    -
    14442 //---------------------------------------------------------------------------
    -
    14443 
    -
    14444 static const complete::Info::ZoneEra kZoneEraAmerica_Whitehorse[] ACE_TIME_PROGMEM = {
    -
    14445  // -9:00:12 - LMT 1900 Aug 20
    -
    14446  {
    -
    14447  nullptr /*zonePolicy*/,
    -
    14448  "LMT" /*format*/,
    -
    14449  -2161 /*offsetCode (-32412/15)*/,
    -
    14450  3 /*offsetRemainder (-32412%15)*/,
    -
    14451  0 /*deltaMinutes*/,
    -
    14452  1900 /*untilYear*/,
    -
    14453  8 /*untilMonth*/,
    -
    14454  20 /*untilDay*/,
    -
    14455  0 /*untilTimeCode (0/15)*/,
    -
    14456  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14457  },
    -
    14458  // -9:00 NT_YK Y%sT 1965
    -
    14459  {
    -
    14460  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    14461  "Y%T" /*format*/,
    -
    14462  -2160 /*offsetCode (-32400/15)*/,
    -
    14463  0 /*offsetRemainder (-32400%15)*/,
    -
    14464  0 /*deltaMinutes*/,
    -
    14465  1965 /*untilYear*/,
    -
    14466  1 /*untilMonth*/,
    -
    14467  1 /*untilDay*/,
    -
    14468  0 /*untilTimeCode (0/15)*/,
    -
    14469  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14470  },
    -
    14471  // -9:00 Yukon Y%sT 1966 Feb 27 0:00
    -
    14472  {
    -
    14473  &kZonePolicyYukon /*zonePolicy*/,
    -
    14474  "Y%T" /*format*/,
    -
    14475  -2160 /*offsetCode (-32400/15)*/,
    -
    14476  0 /*offsetRemainder (-32400%15)*/,
    -
    14477  0 /*deltaMinutes*/,
    -
    14478  1966 /*untilYear*/,
    -
    14479  2 /*untilMonth*/,
    -
    14480  27 /*untilDay*/,
    -
    14481  0 /*untilTimeCode (0/15)*/,
    -
    14482  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14483  },
    -
    14484  // -8:00 - PST 1980
    -
    14485  {
    -
    14486  nullptr /*zonePolicy*/,
    -
    14487  "PST" /*format*/,
    -
    14488  -1920 /*offsetCode (-28800/15)*/,
    -
    14489  0 /*offsetRemainder (-28800%15)*/,
    -
    14490  0 /*deltaMinutes*/,
    -
    14491  1980 /*untilYear*/,
    -
    14492  1 /*untilMonth*/,
    -
    14493  1 /*untilDay*/,
    -
    14494  0 /*untilTimeCode (0/15)*/,
    -
    14495  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14496  },
    -
    14497  // -8:00 Canada P%sT 2020 Nov 1
    -
    14498  {
    -
    14499  &kZonePolicyCanada /*zonePolicy*/,
    -
    14500  "P%T" /*format*/,
    -
    14501  -1920 /*offsetCode (-28800/15)*/,
    -
    14502  0 /*offsetRemainder (-28800%15)*/,
    -
    14503  0 /*deltaMinutes*/,
    -
    14504  2020 /*untilYear*/,
    -
    14505  11 /*untilMonth*/,
    -
    14506  1 /*untilDay*/,
    -
    14507  0 /*untilTimeCode (0/15)*/,
    -
    14508  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14509  },
    -
    14510  // -7:00 - MST
    -
    14511  {
    -
    14512  nullptr /*zonePolicy*/,
    -
    14513  "MST" /*format*/,
    -
    14514  -1680 /*offsetCode (-25200/15)*/,
    -
    14515  0 /*offsetRemainder (-25200%15)*/,
    -
    14516  0 /*deltaMinutes*/,
    -
    14517  32767 /*untilYear*/,
    -
    14518  1 /*untilMonth*/,
    -
    14519  1 /*untilDay*/,
    -
    14520  0 /*untilTimeCode (0/15)*/,
    -
    14521  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14522  },
    -
    14523 
    -
    14524 };
    -
    14525 
    -
    14526 static const char kZoneNameAmerica_Whitehorse[] ACE_TIME_PROGMEM = "\x02" "Whitehorse";
    -
    14527 
    -
    14528 const complete::Info::ZoneInfo kZoneAmerica_Whitehorse ACE_TIME_PROGMEM = {
    -
    14529  kZoneNameAmerica_Whitehorse /*name*/,
    -
    14530  0x54e0e3e8 /*zoneId*/,
    -
    14531  &kZoneContext /*zoneContext*/,
    -
    14532  6 /*numEras*/,
    -
    14533  kZoneEraAmerica_Whitehorse /*eras*/,
    -
    14534  nullptr /*targetInfo*/,
    -
    14535 };
    -
    14536 
    -
    14537 //---------------------------------------------------------------------------
    -
    14538 // Zone name: America/Winnipeg
    -
    14539 // Eras: 3
    -
    14540 //---------------------------------------------------------------------------
    -
    14541 
    -
    14542 static const complete::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = {
    -
    14543  // -6:28:36 - LMT 1887 Jul 16
    -
    14544  {
    -
    14545  nullptr /*zonePolicy*/,
    -
    14546  "LMT" /*format*/,
    -
    14547  -1555 /*offsetCode (-23316/15)*/,
    -
    14548  9 /*offsetRemainder (-23316%15)*/,
    -
    14549  0 /*deltaMinutes*/,
    -
    14550  1887 /*untilYear*/,
    -
    14551  7 /*untilMonth*/,
    -
    14552  16 /*untilDay*/,
    -
    14553  0 /*untilTimeCode (0/15)*/,
    -
    14554  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14555  },
    -
    14556  // -6:00 Winn C%sT 2006
    -
    14557  {
    -
    14558  &kZonePolicyWinn /*zonePolicy*/,
    -
    14559  "C%T" /*format*/,
    -
    14560  -1440 /*offsetCode (-21600/15)*/,
    -
    14561  0 /*offsetRemainder (-21600%15)*/,
    -
    14562  0 /*deltaMinutes*/,
    -
    14563  2006 /*untilYear*/,
    -
    14564  1 /*untilMonth*/,
    -
    14565  1 /*untilDay*/,
    -
    14566  0 /*untilTimeCode (0/15)*/,
    -
    14567  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14568  },
    -
    14569  // -6:00 Canada C%sT
    -
    14570  {
    -
    14571  &kZonePolicyCanada /*zonePolicy*/,
    -
    14572  "C%T" /*format*/,
    -
    14573  -1440 /*offsetCode (-21600/15)*/,
    -
    14574  0 /*offsetRemainder (-21600%15)*/,
    -
    14575  0 /*deltaMinutes*/,
    -
    14576  32767 /*untilYear*/,
    -
    14577  1 /*untilMonth*/,
    -
    14578  1 /*untilDay*/,
    -
    14579  0 /*untilTimeCode (0/15)*/,
    -
    14580  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14581  },
    -
    14582 
    -
    14583 };
    -
    14584 
    -
    14585 static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "\x02" "Winnipeg";
    -
    14586 
    -
    14587 const complete::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = {
    -
    14588  kZoneNameAmerica_Winnipeg /*name*/,
    -
    14589  0x8c7dafc7 /*zoneId*/,
    -
    14590  &kZoneContext /*zoneContext*/,
    -
    14591  3 /*numEras*/,
    -
    14592  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    14593  nullptr /*targetInfo*/,
    -
    14594 };
    -
    14595 
    -
    14596 //---------------------------------------------------------------------------
    -
    14597 // Zone name: America/Yakutat
    -
    14598 // Eras: 7
    -
    14599 //---------------------------------------------------------------------------
    -
    14600 
    -
    14601 static const complete::Info::ZoneEra kZoneEraAmerica_Yakutat[] ACE_TIME_PROGMEM = {
    -
    14602  // 14:41:05 - LMT 1867 Oct 19 15:12:18
    -
    14603  {
    -
    14604  nullptr /*zonePolicy*/,
    -
    14605  "LMT" /*format*/,
    -
    14606  3524 /*offsetCode (52865/15)*/,
    -
    14607  5 /*offsetRemainder (52865%15)*/,
    -
    14608  0 /*deltaMinutes*/,
    -
    14609  1867 /*untilYear*/,
    -
    14610  10 /*untilMonth*/,
    -
    14611  19 /*untilDay*/,
    -
    14612  3649 /*untilTimeCode (54738/15)*/,
    -
    14613  3 /*untilTimeModifier (kAtcSuffixW + seconds=3)*/,
    -
    14614  },
    -
    14615  // -9:18:55 - LMT 1900 Aug 20 12:00
    -
    14616  {
    -
    14617  nullptr /*zonePolicy*/,
    -
    14618  "LMT" /*format*/,
    -
    14619  -2236 /*offsetCode (-33535/15)*/,
    -
    14620  5 /*offsetRemainder (-33535%15)*/,
    -
    14621  0 /*deltaMinutes*/,
    -
    14622  1900 /*untilYear*/,
    -
    14623  8 /*untilMonth*/,
    -
    14624  20 /*untilDay*/,
    -
    14625  2880 /*untilTimeCode (43200/15)*/,
    -
    14626  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14627  },
    -
    14628  // -9:00 - YST 1942
    -
    14629  {
    -
    14630  nullptr /*zonePolicy*/,
    -
    14631  "YST" /*format*/,
    -
    14632  -2160 /*offsetCode (-32400/15)*/,
    -
    14633  0 /*offsetRemainder (-32400%15)*/,
    -
    14634  0 /*deltaMinutes*/,
    -
    14635  1942 /*untilYear*/,
    -
    14636  1 /*untilMonth*/,
    -
    14637  1 /*untilDay*/,
    -
    14638  0 /*untilTimeCode (0/15)*/,
    -
    14639  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14640  },
    -
    14641  // -9:00 US Y%sT 1946
    -
    14642  {
    -
    14643  &kZonePolicyUS /*zonePolicy*/,
    -
    14644  "Y%T" /*format*/,
    -
    14645  -2160 /*offsetCode (-32400/15)*/,
    -
    14646  0 /*offsetRemainder (-32400%15)*/,
    -
    14647  0 /*deltaMinutes*/,
    -
    14648  1946 /*untilYear*/,
    -
    14649  1 /*untilMonth*/,
    -
    14650  1 /*untilDay*/,
    -
    14651  0 /*untilTimeCode (0/15)*/,
    -
    14652  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14653  },
    -
    14654  // -9:00 - YST 1969
    -
    14655  {
    -
    14656  nullptr /*zonePolicy*/,
    -
    14657  "YST" /*format*/,
    -
    14658  -2160 /*offsetCode (-32400/15)*/,
    -
    14659  0 /*offsetRemainder (-32400%15)*/,
    -
    14660  0 /*deltaMinutes*/,
    -
    14661  1969 /*untilYear*/,
    -
    14662  1 /*untilMonth*/,
    -
    14663  1 /*untilDay*/,
    -
    14664  0 /*untilTimeCode (0/15)*/,
    -
    14665  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14666  },
    -
    14667  // -9:00 US Y%sT 1983 Nov 30
    -
    14668  {
    -
    14669  &kZonePolicyUS /*zonePolicy*/,
    -
    14670  "Y%T" /*format*/,
    -
    14671  -2160 /*offsetCode (-32400/15)*/,
    -
    14672  0 /*offsetRemainder (-32400%15)*/,
    -
    14673  0 /*deltaMinutes*/,
    -
    14674  1983 /*untilYear*/,
    -
    14675  11 /*untilMonth*/,
    -
    14676  30 /*untilDay*/,
    -
    14677  0 /*untilTimeCode (0/15)*/,
    -
    14678  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14679  },
    -
    14680  // -9:00 US AK%sT
    -
    14681  {
    -
    14682  &kZonePolicyUS /*zonePolicy*/,
    -
    14683  "AK%T" /*format*/,
    -
    14684  -2160 /*offsetCode (-32400/15)*/,
    -
    14685  0 /*offsetRemainder (-32400%15)*/,
    -
    14686  0 /*deltaMinutes*/,
    -
    14687  32767 /*untilYear*/,
    -
    14688  1 /*untilMonth*/,
    -
    14689  1 /*untilDay*/,
    -
    14690  0 /*untilTimeCode (0/15)*/,
    -
    14691  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14692  },
    -
    14693 
    -
    14694 };
    -
    14695 
    -
    14696 static const char kZoneNameAmerica_Yakutat[] ACE_TIME_PROGMEM = "\x02" "Yakutat";
    -
    14697 
    -
    14698 const complete::Info::ZoneInfo kZoneAmerica_Yakutat ACE_TIME_PROGMEM = {
    -
    14699  kZoneNameAmerica_Yakutat /*name*/,
    -
    14700  0xd8ee31e9 /*zoneId*/,
    -
    14701  &kZoneContext /*zoneContext*/,
    -
    14702  7 /*numEras*/,
    -
    14703  kZoneEraAmerica_Yakutat /*eras*/,
    -
    14704  nullptr /*targetInfo*/,
    -
    14705 };
    -
    14706 
    -
    14707 //---------------------------------------------------------------------------
    -
    14708 // Zone name: Antarctica/Casey
    -
    14709 // Eras: 18
    -
    14710 //---------------------------------------------------------------------------
    -
    14711 
    -
    14712 static const complete::Info::ZoneEra kZoneEraAntarctica_Casey[] ACE_TIME_PROGMEM = {
    -
    14713  // 0 - -00 1969
    -
    14714  {
    -
    14715  nullptr /*zonePolicy*/,
    -
    14716  "-00" /*format*/,
    -
    14717  0 /*offsetCode (0/15)*/,
    -
    14718  0 /*offsetRemainder (0%15)*/,
    -
    14719  0 /*deltaMinutes*/,
    -
    14720  1969 /*untilYear*/,
    -
    14721  1 /*untilMonth*/,
    -
    14722  1 /*untilDay*/,
    -
    14723  0 /*untilTimeCode (0/15)*/,
    -
    14724  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14725  },
    -
    14726  // 8:00 - %z 2009 Oct 18 2:00
    -
    14727  {
    -
    14728  nullptr /*zonePolicy*/,
    -
    14729  "" /*format*/,
    -
    14730  1920 /*offsetCode (28800/15)*/,
    -
    14731  0 /*offsetRemainder (28800%15)*/,
    -
    14732  0 /*deltaMinutes*/,
    -
    14733  2009 /*untilYear*/,
    -
    14734  10 /*untilMonth*/,
    -
    14735  18 /*untilDay*/,
    -
    14736  480 /*untilTimeCode (7200/15)*/,
    -
    14737  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14738  },
    -
    14739  // 11:00 - %z 2010 Mar 5 2:00
    -
    14740  {
    -
    14741  nullptr /*zonePolicy*/,
    -
    14742  "" /*format*/,
    -
    14743  2640 /*offsetCode (39600/15)*/,
    -
    14744  0 /*offsetRemainder (39600%15)*/,
    -
    14745  0 /*deltaMinutes*/,
    -
    14746  2010 /*untilYear*/,
    -
    14747  3 /*untilMonth*/,
    -
    14748  5 /*untilDay*/,
    -
    14749  480 /*untilTimeCode (7200/15)*/,
    -
    14750  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14751  },
    -
    14752  // 8:00 - %z 2011 Oct 28 2:00
    -
    14753  {
    -
    14754  nullptr /*zonePolicy*/,
    -
    14755  "" /*format*/,
    -
    14756  1920 /*offsetCode (28800/15)*/,
    -
    14757  0 /*offsetRemainder (28800%15)*/,
    -
    14758  0 /*deltaMinutes*/,
    -
    14759  2011 /*untilYear*/,
    -
    14760  10 /*untilMonth*/,
    -
    14761  28 /*untilDay*/,
    -
    14762  480 /*untilTimeCode (7200/15)*/,
    -
    14763  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14764  },
    -
    14765  // 11:00 - %z 2012 Feb 21 17:00u
    -
    14766  {
    -
    14767  nullptr /*zonePolicy*/,
    -
    14768  "" /*format*/,
    -
    14769  2640 /*offsetCode (39600/15)*/,
    -
    14770  0 /*offsetRemainder (39600%15)*/,
    -
    14771  0 /*deltaMinutes*/,
    -
    14772  2012 /*untilYear*/,
    -
    14773  2 /*untilMonth*/,
    -
    14774  21 /*untilDay*/,
    -
    14775  4080 /*untilTimeCode (61200/15)*/,
    -
    14776  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    14777  },
    -
    14778  // 8:00 - %z 2016 Oct 22
    -
    14779  {
    -
    14780  nullptr /*zonePolicy*/,
    -
    14781  "" /*format*/,
    -
    14782  1920 /*offsetCode (28800/15)*/,
    -
    14783  0 /*offsetRemainder (28800%15)*/,
    -
    14784  0 /*deltaMinutes*/,
    -
    14785  2016 /*untilYear*/,
    -
    14786  10 /*untilMonth*/,
    -
    14787  22 /*untilDay*/,
    -
    14788  0 /*untilTimeCode (0/15)*/,
    -
    14789  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14790  },
    -
    14791  // 11:00 - %z 2018 Mar 11 4:00
    -
    14792  {
    -
    14793  nullptr /*zonePolicy*/,
    -
    14794  "" /*format*/,
    -
    14795  2640 /*offsetCode (39600/15)*/,
    -
    14796  0 /*offsetRemainder (39600%15)*/,
    -
    14797  0 /*deltaMinutes*/,
    -
    14798  2018 /*untilYear*/,
    -
    14799  3 /*untilMonth*/,
    -
    14800  11 /*untilDay*/,
    -
    14801  960 /*untilTimeCode (14400/15)*/,
    -
    14802  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14803  },
    -
    14804  // 8:00 - %z 2018 Oct 7 4:00
    -
    14805  {
    -
    14806  nullptr /*zonePolicy*/,
    -
    14807  "" /*format*/,
    -
    14808  1920 /*offsetCode (28800/15)*/,
    -
    14809  0 /*offsetRemainder (28800%15)*/,
    -
    14810  0 /*deltaMinutes*/,
    -
    14811  2018 /*untilYear*/,
    -
    14812  10 /*untilMonth*/,
    -
    14813  7 /*untilDay*/,
    -
    14814  960 /*untilTimeCode (14400/15)*/,
    -
    14815  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14816  },
    -
    14817  // 11:00 - %z 2019 Mar 17 3:00
    -
    14818  {
    -
    14819  nullptr /*zonePolicy*/,
    -
    14820  "" /*format*/,
    -
    14821  2640 /*offsetCode (39600/15)*/,
    -
    14822  0 /*offsetRemainder (39600%15)*/,
    -
    14823  0 /*deltaMinutes*/,
    -
    14824  2019 /*untilYear*/,
    -
    14825  3 /*untilMonth*/,
    -
    14826  17 /*untilDay*/,
    -
    14827  720 /*untilTimeCode (10800/15)*/,
    -
    14828  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14829  },
    -
    14830  // 8:00 - %z 2019 Oct 4 3:00
    -
    14831  {
    -
    14832  nullptr /*zonePolicy*/,
    -
    14833  "" /*format*/,
    -
    14834  1920 /*offsetCode (28800/15)*/,
    -
    14835  0 /*offsetRemainder (28800%15)*/,
    -
    14836  0 /*deltaMinutes*/,
    -
    14837  2019 /*untilYear*/,
    -
    14838  10 /*untilMonth*/,
    -
    14839  4 /*untilDay*/,
    -
    14840  720 /*untilTimeCode (10800/15)*/,
    -
    14841  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14842  },
    -
    14843  // 11:00 - %z 2020 Mar 8 3:00
    -
    14844  {
    -
    14845  nullptr /*zonePolicy*/,
    -
    14846  "" /*format*/,
    -
    14847  2640 /*offsetCode (39600/15)*/,
    -
    14848  0 /*offsetRemainder (39600%15)*/,
    -
    14849  0 /*deltaMinutes*/,
    -
    14850  2020 /*untilYear*/,
    -
    14851  3 /*untilMonth*/,
    -
    14852  8 /*untilDay*/,
    -
    14853  720 /*untilTimeCode (10800/15)*/,
    -
    14854  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14855  },
    -
    14856  // 8:00 - %z 2020 Oct 4 0:01
    -
    14857  {
    -
    14858  nullptr /*zonePolicy*/,
    -
    14859  "" /*format*/,
    -
    14860  1920 /*offsetCode (28800/15)*/,
    -
    14861  0 /*offsetRemainder (28800%15)*/,
    -
    14862  0 /*deltaMinutes*/,
    -
    14863  2020 /*untilYear*/,
    -
    14864  10 /*untilMonth*/,
    -
    14865  4 /*untilDay*/,
    -
    14866  4 /*untilTimeCode (60/15)*/,
    -
    14867  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14868  },
    -
    14869  // 11:00 - %z 2021 Mar 14 0:00
    -
    14870  {
    -
    14871  nullptr /*zonePolicy*/,
    -
    14872  "" /*format*/,
    -
    14873  2640 /*offsetCode (39600/15)*/,
    -
    14874  0 /*offsetRemainder (39600%15)*/,
    -
    14875  0 /*deltaMinutes*/,
    -
    14876  2021 /*untilYear*/,
    -
    14877  3 /*untilMonth*/,
    -
    14878  14 /*untilDay*/,
    -
    14879  0 /*untilTimeCode (0/15)*/,
    -
    14880  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14881  },
    -
    14882  // 8:00 - %z 2021 Oct 3 0:01
    -
    14883  {
    -
    14884  nullptr /*zonePolicy*/,
    -
    14885  "" /*format*/,
    -
    14886  1920 /*offsetCode (28800/15)*/,
    -
    14887  0 /*offsetRemainder (28800%15)*/,
    -
    14888  0 /*deltaMinutes*/,
    -
    14889  2021 /*untilYear*/,
    -
    14890  10 /*untilMonth*/,
    -
    14891  3 /*untilDay*/,
    -
    14892  4 /*untilTimeCode (60/15)*/,
    -
    14893  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14894  },
    -
    14895  // 11:00 - %z 2022 Mar 13 0:00
    -
    14896  {
    -
    14897  nullptr /*zonePolicy*/,
    -
    14898  "" /*format*/,
    -
    14899  2640 /*offsetCode (39600/15)*/,
    -
    14900  0 /*offsetRemainder (39600%15)*/,
    -
    14901  0 /*deltaMinutes*/,
    -
    14902  2022 /*untilYear*/,
    -
    14903  3 /*untilMonth*/,
    -
    14904  13 /*untilDay*/,
    -
    14905  0 /*untilTimeCode (0/15)*/,
    -
    14906  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14907  },
    -
    14908  // 8:00 - %z 2022 Oct 2 0:01
    -
    14909  {
    -
    14910  nullptr /*zonePolicy*/,
    -
    14911  "" /*format*/,
    -
    14912  1920 /*offsetCode (28800/15)*/,
    -
    14913  0 /*offsetRemainder (28800%15)*/,
    -
    14914  0 /*deltaMinutes*/,
    -
    14915  2022 /*untilYear*/,
    -
    14916  10 /*untilMonth*/,
    -
    14917  2 /*untilDay*/,
    -
    14918  4 /*untilTimeCode (60/15)*/,
    -
    14919  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14920  },
    -
    14921  // 11:00 - %z 2023 Mar 9 3:00
    -
    14922  {
    -
    14923  nullptr /*zonePolicy*/,
    -
    14924  "" /*format*/,
    -
    14925  2640 /*offsetCode (39600/15)*/,
    -
    14926  0 /*offsetRemainder (39600%15)*/,
    -
    14927  0 /*deltaMinutes*/,
    -
    14928  2023 /*untilYear*/,
    -
    14929  3 /*untilMonth*/,
    -
    14930  9 /*untilDay*/,
    -
    14931  720 /*untilTimeCode (10800/15)*/,
    -
    14932  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14933  },
    -
    14934  // 8:00 - %z
    -
    14935  {
    -
    14936  nullptr /*zonePolicy*/,
    -
    14937  "" /*format*/,
    -
    14938  1920 /*offsetCode (28800/15)*/,
    -
    14939  0 /*offsetRemainder (28800%15)*/,
    -
    14940  0 /*deltaMinutes*/,
    -
    14941  32767 /*untilYear*/,
    -
    14942  1 /*untilMonth*/,
    -
    14943  1 /*untilDay*/,
    -
    14944  0 /*untilTimeCode (0/15)*/,
    -
    14945  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14946  },
    -
    14947 
    -
    14948 };
    -
    14949 
    -
    14950 static const char kZoneNameAntarctica_Casey[] ACE_TIME_PROGMEM = "\x03" "Casey";
    -
    14951 
    -
    14952 const complete::Info::ZoneInfo kZoneAntarctica_Casey ACE_TIME_PROGMEM = {
    -
    14953  kZoneNameAntarctica_Casey /*name*/,
    -
    14954  0xe2022583 /*zoneId*/,
    -
    14955  &kZoneContext /*zoneContext*/,
    -
    14956  18 /*numEras*/,
    -
    14957  kZoneEraAntarctica_Casey /*eras*/,
    -
    14958  nullptr /*targetInfo*/,
    -
    14959 };
    -
    14960 
    -
    14961 //---------------------------------------------------------------------------
    -
    14962 // Zone name: Antarctica/Davis
    -
    14963 // Eras: 8
    -
    14964 //---------------------------------------------------------------------------
    -
    14965 
    -
    14966 static const complete::Info::ZoneEra kZoneEraAntarctica_Davis[] ACE_TIME_PROGMEM = {
    -
    14967  // 0 - -00 1957 Jan 13
    -
    14968  {
    -
    14969  nullptr /*zonePolicy*/,
    -
    14970  "-00" /*format*/,
    -
    14971  0 /*offsetCode (0/15)*/,
    -
    14972  0 /*offsetRemainder (0%15)*/,
    -
    14973  0 /*deltaMinutes*/,
    -
    14974  1957 /*untilYear*/,
    -
    14975  1 /*untilMonth*/,
    -
    14976  13 /*untilDay*/,
    -
    14977  0 /*untilTimeCode (0/15)*/,
    -
    14978  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14979  },
    -
    14980  // 7:00 - %z 1964 Nov
    -
    14981  {
    -
    14982  nullptr /*zonePolicy*/,
    -
    14983  "" /*format*/,
    -
    14984  1680 /*offsetCode (25200/15)*/,
    -
    14985  0 /*offsetRemainder (25200%15)*/,
    -
    14986  0 /*deltaMinutes*/,
    -
    14987  1964 /*untilYear*/,
    -
    14988  11 /*untilMonth*/,
    -
    14989  1 /*untilDay*/,
    -
    14990  0 /*untilTimeCode (0/15)*/,
    -
    14991  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14992  },
    -
    14993  // 0 - -00 1969 Feb
    -
    14994  {
    -
    14995  nullptr /*zonePolicy*/,
    -
    14996  "-00" /*format*/,
    -
    14997  0 /*offsetCode (0/15)*/,
    -
    14998  0 /*offsetRemainder (0%15)*/,
    -
    14999  0 /*deltaMinutes*/,
    -
    15000  1969 /*untilYear*/,
    -
    15001  2 /*untilMonth*/,
    -
    15002  1 /*untilDay*/,
    -
    15003  0 /*untilTimeCode (0/15)*/,
    -
    15004  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15005  },
    -
    15006  // 7:00 - %z 2009 Oct 18 2:00
    -
    15007  {
    -
    15008  nullptr /*zonePolicy*/,
    -
    15009  "" /*format*/,
    -
    15010  1680 /*offsetCode (25200/15)*/,
    -
    15011  0 /*offsetRemainder (25200%15)*/,
    -
    15012  0 /*deltaMinutes*/,
    -
    15013  2009 /*untilYear*/,
    -
    15014  10 /*untilMonth*/,
    -
    15015  18 /*untilDay*/,
    -
    15016  480 /*untilTimeCode (7200/15)*/,
    -
    15017  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15018  },
    -
    15019  // 5:00 - %z 2010 Mar 10 20:00u
    -
    15020  {
    -
    15021  nullptr /*zonePolicy*/,
    -
    15022  "" /*format*/,
    -
    15023  1200 /*offsetCode (18000/15)*/,
    -
    15024  0 /*offsetRemainder (18000%15)*/,
    -
    15025  0 /*deltaMinutes*/,
    -
    15026  2010 /*untilYear*/,
    -
    15027  3 /*untilMonth*/,
    -
    15028  10 /*untilDay*/,
    -
    15029  4800 /*untilTimeCode (72000/15)*/,
    -
    15030  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    15031  },
    -
    15032  // 7:00 - %z 2011 Oct 28 2:00
    -
    15033  {
    -
    15034  nullptr /*zonePolicy*/,
    -
    15035  "" /*format*/,
    -
    15036  1680 /*offsetCode (25200/15)*/,
    -
    15037  0 /*offsetRemainder (25200%15)*/,
    -
    15038  0 /*deltaMinutes*/,
    -
    15039  2011 /*untilYear*/,
    -
    15040  10 /*untilMonth*/,
    -
    15041  28 /*untilDay*/,
    -
    15042  480 /*untilTimeCode (7200/15)*/,
    -
    15043  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15044  },
    -
    15045  // 5:00 - %z 2012 Feb 21 20:00u
    -
    15046  {
    -
    15047  nullptr /*zonePolicy*/,
    -
    15048  "" /*format*/,
    -
    15049  1200 /*offsetCode (18000/15)*/,
    -
    15050  0 /*offsetRemainder (18000%15)*/,
    -
    15051  0 /*deltaMinutes*/,
    -
    15052  2012 /*untilYear*/,
    -
    15053  2 /*untilMonth*/,
    -
    15054  21 /*untilDay*/,
    -
    15055  4800 /*untilTimeCode (72000/15)*/,
    -
    15056  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    15057  },
    -
    15058  // 7:00 - %z
    -
    15059  {
    -
    15060  nullptr /*zonePolicy*/,
    -
    15061  "" /*format*/,
    -
    15062  1680 /*offsetCode (25200/15)*/,
    -
    15063  0 /*offsetRemainder (25200%15)*/,
    -
    15064  0 /*deltaMinutes*/,
    -
    15065  32767 /*untilYear*/,
    -
    15066  1 /*untilMonth*/,
    -
    15067  1 /*untilDay*/,
    -
    15068  0 /*untilTimeCode (0/15)*/,
    -
    15069  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15070  },
    -
    15071 
    -
    15072 };
    -
    15073 
    -
    15074 static const char kZoneNameAntarctica_Davis[] ACE_TIME_PROGMEM = "\x03" "Davis";
    -
    15075 
    -
    15076 const complete::Info::ZoneInfo kZoneAntarctica_Davis ACE_TIME_PROGMEM = {
    -
    15077  kZoneNameAntarctica_Davis /*name*/,
    -
    15078  0xe2144b45 /*zoneId*/,
    -
    15079  &kZoneContext /*zoneContext*/,
    -
    15080  8 /*numEras*/,
    -
    15081  kZoneEraAntarctica_Davis /*eras*/,
    -
    15082  nullptr /*targetInfo*/,
    -
    15083 };
    -
    15084 
    -
    15085 //---------------------------------------------------------------------------
    -
    15086 // Zone name: Antarctica/Macquarie
    -
    15087 // Eras: 9
    -
    15088 //---------------------------------------------------------------------------
    -
    15089 
    -
    15090 static const complete::Info::ZoneEra kZoneEraAntarctica_Macquarie[] ACE_TIME_PROGMEM = {
    -
    15091  // 0 - -00 1899 Nov
    -
    15092  {
    -
    15093  nullptr /*zonePolicy*/,
    -
    15094  "-00" /*format*/,
    -
    15095  0 /*offsetCode (0/15)*/,
    -
    15096  0 /*offsetRemainder (0%15)*/,
    -
    15097  0 /*deltaMinutes*/,
    -
    15098  1899 /*untilYear*/,
    -
    15099  11 /*untilMonth*/,
    -
    15100  1 /*untilDay*/,
    -
    15101  0 /*untilTimeCode (0/15)*/,
    -
    15102  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15103  },
    -
    15104  // 10:00 - AEST 1916 Oct 1 2:00
    -
    15105  {
    -
    15106  nullptr /*zonePolicy*/,
    -
    15107  "AEST" /*format*/,
    -
    15108  2400 /*offsetCode (36000/15)*/,
    -
    15109  0 /*offsetRemainder (36000%15)*/,
    -
    15110  0 /*deltaMinutes*/,
    -
    15111  1916 /*untilYear*/,
    -
    15112  10 /*untilMonth*/,
    -
    15113  1 /*untilDay*/,
    -
    15114  480 /*untilTimeCode (7200/15)*/,
    -
    15115  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15116  },
    -
    15117  // 10:00 1:00 AEDT 1917 Feb
    -
    15118  {
    -
    15119  nullptr /*zonePolicy*/,
    -
    15120  "AEDT" /*format*/,
    -
    15121  2400 /*offsetCode (36000/15)*/,
    -
    15122  0 /*offsetRemainder (36000%15)*/,
    -
    15123  60 /*deltaMinutes*/,
    -
    15124  1917 /*untilYear*/,
    -
    15125  2 /*untilMonth*/,
    -
    15126  1 /*untilDay*/,
    -
    15127  0 /*untilTimeCode (0/15)*/,
    -
    15128  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15129  },
    -
    15130  // 10:00 Aus AE%sT 1919 Apr 1 0:00s
    -
    15131  {
    -
    15132  &kZonePolicyAus /*zonePolicy*/,
    -
    15133  "AE%T" /*format*/,
    -
    15134  2400 /*offsetCode (36000/15)*/,
    -
    15135  0 /*offsetRemainder (36000%15)*/,
    -
    15136  0 /*deltaMinutes*/,
    -
    15137  1919 /*untilYear*/,
    -
    15138  4 /*untilMonth*/,
    -
    15139  1 /*untilDay*/,
    -
    15140  0 /*untilTimeCode (0/15)*/,
    -
    15141  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15142  },
    -
    15143  // 0 - -00 1948 Mar 25
    -
    15144  {
    -
    15145  nullptr /*zonePolicy*/,
    -
    15146  "-00" /*format*/,
    -
    15147  0 /*offsetCode (0/15)*/,
    -
    15148  0 /*offsetRemainder (0%15)*/,
    -
    15149  0 /*deltaMinutes*/,
    -
    15150  1948 /*untilYear*/,
    -
    15151  3 /*untilMonth*/,
    -
    15152  25 /*untilDay*/,
    -
    15153  0 /*untilTimeCode (0/15)*/,
    -
    15154  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15155  },
    -
    15156  // 10:00 Aus AE%sT 1967
    -
    15157  {
    -
    15158  &kZonePolicyAus /*zonePolicy*/,
    -
    15159  "AE%T" /*format*/,
    -
    15160  2400 /*offsetCode (36000/15)*/,
    -
    15161  0 /*offsetRemainder (36000%15)*/,
    -
    15162  0 /*deltaMinutes*/,
    -
    15163  1967 /*untilYear*/,
    -
    15164  1 /*untilMonth*/,
    -
    15165  1 /*untilDay*/,
    -
    15166  0 /*untilTimeCode (0/15)*/,
    -
    15167  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15168  },
    -
    15169  // 10:00 AT AE%sT 2010
    -
    15170  {
    -
    15171  &kZonePolicyAT /*zonePolicy*/,
    -
    15172  "AE%T" /*format*/,
    -
    15173  2400 /*offsetCode (36000/15)*/,
    -
    15174  0 /*offsetRemainder (36000%15)*/,
    -
    15175  0 /*deltaMinutes*/,
    -
    15176  2010 /*untilYear*/,
    -
    15177  1 /*untilMonth*/,
    -
    15178  1 /*untilDay*/,
    -
    15179  0 /*untilTimeCode (0/15)*/,
    -
    15180  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15181  },
    -
    15182  // 10:00 1:00 AEDT 2011
    -
    15183  {
    -
    15184  nullptr /*zonePolicy*/,
    -
    15185  "AEDT" /*format*/,
    -
    15186  2400 /*offsetCode (36000/15)*/,
    -
    15187  0 /*offsetRemainder (36000%15)*/,
    -
    15188  60 /*deltaMinutes*/,
    -
    15189  2011 /*untilYear*/,
    -
    15190  1 /*untilMonth*/,
    -
    15191  1 /*untilDay*/,
    -
    15192  0 /*untilTimeCode (0/15)*/,
    -
    15193  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15194  },
    -
    15195  // 10:00 AT AE%sT
    -
    15196  {
    -
    15197  &kZonePolicyAT /*zonePolicy*/,
    -
    15198  "AE%T" /*format*/,
    -
    15199  2400 /*offsetCode (36000/15)*/,
    -
    15200  0 /*offsetRemainder (36000%15)*/,
    -
    15201  0 /*deltaMinutes*/,
    -
    15202  32767 /*untilYear*/,
    -
    15203  1 /*untilMonth*/,
    -
    15204  1 /*untilDay*/,
    -
    15205  0 /*untilTimeCode (0/15)*/,
    -
    15206  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15207  },
    -
    15208 
    -
    15209 };
    -
    15210 
    -
    15211 static const char kZoneNameAntarctica_Macquarie[] ACE_TIME_PROGMEM = "\x03" "Macquarie";
    -
    15212 
    -
    15213 const complete::Info::ZoneInfo kZoneAntarctica_Macquarie ACE_TIME_PROGMEM = {
    -
    15214  kZoneNameAntarctica_Macquarie /*name*/,
    -
    15215  0x92f47626 /*zoneId*/,
    -
    15216  &kZoneContext /*zoneContext*/,
    -
    15217  9 /*numEras*/,
    -
    15218  kZoneEraAntarctica_Macquarie /*eras*/,
    -
    15219  nullptr /*targetInfo*/,
    -
    15220 };
    -
    15221 
    -
    15222 //---------------------------------------------------------------------------
    -
    15223 // Zone name: Antarctica/Mawson
    -
    15224 // Eras: 3
    -
    15225 //---------------------------------------------------------------------------
    -
    15226 
    -
    15227 static const complete::Info::ZoneEra kZoneEraAntarctica_Mawson[] ACE_TIME_PROGMEM = {
    -
    15228  // 0 - -00 1954 Feb 13
    -
    15229  {
    -
    15230  nullptr /*zonePolicy*/,
    -
    15231  "-00" /*format*/,
    -
    15232  0 /*offsetCode (0/15)*/,
    -
    15233  0 /*offsetRemainder (0%15)*/,
    -
    15234  0 /*deltaMinutes*/,
    -
    15235  1954 /*untilYear*/,
    -
    15236  2 /*untilMonth*/,
    -
    15237  13 /*untilDay*/,
    -
    15238  0 /*untilTimeCode (0/15)*/,
    -
    15239  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15240  },
    -
    15241  // 6:00 - %z 2009 Oct 18 2:00
    -
    15242  {
    -
    15243  nullptr /*zonePolicy*/,
    -
    15244  "" /*format*/,
    -
    15245  1440 /*offsetCode (21600/15)*/,
    -
    15246  0 /*offsetRemainder (21600%15)*/,
    -
    15247  0 /*deltaMinutes*/,
    -
    15248  2009 /*untilYear*/,
    -
    15249  10 /*untilMonth*/,
    -
    15250  18 /*untilDay*/,
    -
    15251  480 /*untilTimeCode (7200/15)*/,
    -
    15252  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15253  },
    -
    15254  // 5:00 - %z
    -
    15255  {
    -
    15256  nullptr /*zonePolicy*/,
    -
    15257  "" /*format*/,
    -
    15258  1200 /*offsetCode (18000/15)*/,
    -
    15259  0 /*offsetRemainder (18000%15)*/,
    -
    15260  0 /*deltaMinutes*/,
    -
    15261  32767 /*untilYear*/,
    -
    15262  1 /*untilMonth*/,
    -
    15263  1 /*untilDay*/,
    -
    15264  0 /*untilTimeCode (0/15)*/,
    -
    15265  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15266  },
    -
    15267 
    -
    15268 };
    -
    15269 
    -
    15270 static const char kZoneNameAntarctica_Mawson[] ACE_TIME_PROGMEM = "\x03" "Mawson";
    -
    15271 
    -
    15272 const complete::Info::ZoneInfo kZoneAntarctica_Mawson ACE_TIME_PROGMEM = {
    -
    15273  kZoneNameAntarctica_Mawson /*name*/,
    -
    15274  0x399cd863 /*zoneId*/,
    -
    15275  &kZoneContext /*zoneContext*/,
    -
    15276  3 /*numEras*/,
    -
    15277  kZoneEraAntarctica_Mawson /*eras*/,
    -
    15278  nullptr /*targetInfo*/,
    -
    15279 };
    -
    15280 
    -
    15281 //---------------------------------------------------------------------------
    -
    15282 // Zone name: Antarctica/Palmer
    -
    15283 // Eras: 5
    -
    15284 //---------------------------------------------------------------------------
    -
    15285 
    -
    15286 static const complete::Info::ZoneEra kZoneEraAntarctica_Palmer[] ACE_TIME_PROGMEM = {
    -
    15287  // 0 - -00 1965
    -
    15288  {
    -
    15289  nullptr /*zonePolicy*/,
    -
    15290  "-00" /*format*/,
    -
    15291  0 /*offsetCode (0/15)*/,
    -
    15292  0 /*offsetRemainder (0%15)*/,
    -
    15293  0 /*deltaMinutes*/,
    -
    15294  1965 /*untilYear*/,
    -
    15295  1 /*untilMonth*/,
    -
    15296  1 /*untilDay*/,
    -
    15297  0 /*untilTimeCode (0/15)*/,
    -
    15298  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15299  },
    -
    15300  // -4:00 Arg %z 1969 Oct 5
    -
    15301  {
    -
    15302  &kZonePolicyArg /*zonePolicy*/,
    -
    15303  "" /*format*/,
    -
    15304  -960 /*offsetCode (-14400/15)*/,
    -
    15305  0 /*offsetRemainder (-14400%15)*/,
    -
    15306  0 /*deltaMinutes*/,
    -
    15307  1969 /*untilYear*/,
    -
    15308  10 /*untilMonth*/,
    -
    15309  5 /*untilDay*/,
    -
    15310  0 /*untilTimeCode (0/15)*/,
    -
    15311  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15312  },
    -
    15313  // -3:00 Arg %z 1982 May
    -
    15314  {
    -
    15315  &kZonePolicyArg /*zonePolicy*/,
    -
    15316  "" /*format*/,
    -
    15317  -720 /*offsetCode (-10800/15)*/,
    -
    15318  0 /*offsetRemainder (-10800%15)*/,
    -
    15319  0 /*deltaMinutes*/,
    -
    15320  1982 /*untilYear*/,
    -
    15321  5 /*untilMonth*/,
    -
    15322  1 /*untilDay*/,
    -
    15323  0 /*untilTimeCode (0/15)*/,
    -
    15324  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15325  },
    -
    15326  // -4:00 Chile %z 2016 Dec 4
    -
    15327  {
    -
    15328  &kZonePolicyChile /*zonePolicy*/,
    -
    15329  "" /*format*/,
    -
    15330  -960 /*offsetCode (-14400/15)*/,
    -
    15331  0 /*offsetRemainder (-14400%15)*/,
    -
    15332  0 /*deltaMinutes*/,
    -
    15333  2016 /*untilYear*/,
    -
    15334  12 /*untilMonth*/,
    -
    15335  4 /*untilDay*/,
    -
    15336  0 /*untilTimeCode (0/15)*/,
    -
    15337  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15338  },
    -
    15339  // -3:00 - %z
    -
    15340  {
    -
    15341  nullptr /*zonePolicy*/,
    -
    15342  "" /*format*/,
    -
    15343  -720 /*offsetCode (-10800/15)*/,
    -
    15344  0 /*offsetRemainder (-10800%15)*/,
    -
    15345  0 /*deltaMinutes*/,
    -
    15346  32767 /*untilYear*/,
    -
    15347  1 /*untilMonth*/,
    -
    15348  1 /*untilDay*/,
    -
    15349  0 /*untilTimeCode (0/15)*/,
    -
    15350  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15351  },
    -
    15352 
    -
    15353 };
    -
    15354 
    -
    15355 static const char kZoneNameAntarctica_Palmer[] ACE_TIME_PROGMEM = "\x03" "Palmer";
    -
    15356 
    -
    15357 const complete::Info::ZoneInfo kZoneAntarctica_Palmer ACE_TIME_PROGMEM = {
    -
    15358  kZoneNameAntarctica_Palmer /*name*/,
    -
    15359  0x40962f4f /*zoneId*/,
    -
    15360  &kZoneContext /*zoneContext*/,
    -
    15361  5 /*numEras*/,
    -
    15362  kZoneEraAntarctica_Palmer /*eras*/,
    -
    15363  nullptr /*targetInfo*/,
    -
    15364 };
    -
    15365 
    -
    15366 //---------------------------------------------------------------------------
    -
    15367 // Zone name: Antarctica/Rothera
    -
    15368 // Eras: 2
    -
    15369 //---------------------------------------------------------------------------
    -
    15370 
    -
    15371 static const complete::Info::ZoneEra kZoneEraAntarctica_Rothera[] ACE_TIME_PROGMEM = {
    -
    15372  // 0 - -00 1976 Dec 1
    -
    15373  {
    -
    15374  nullptr /*zonePolicy*/,
    -
    15375  "-00" /*format*/,
    -
    15376  0 /*offsetCode (0/15)*/,
    -
    15377  0 /*offsetRemainder (0%15)*/,
    -
    15378  0 /*deltaMinutes*/,
    -
    15379  1976 /*untilYear*/,
    -
    15380  12 /*untilMonth*/,
    -
    15381  1 /*untilDay*/,
    -
    15382  0 /*untilTimeCode (0/15)*/,
    -
    15383  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15384  },
    -
    15385  // -3:00 - %z
    -
    15386  {
    -
    15387  nullptr /*zonePolicy*/,
    -
    15388  "" /*format*/,
    -
    15389  -720 /*offsetCode (-10800/15)*/,
    -
    15390  0 /*offsetRemainder (-10800%15)*/,
    -
    15391  0 /*deltaMinutes*/,
    -
    15392  32767 /*untilYear*/,
    -
    15393  1 /*untilMonth*/,
    -
    15394  1 /*untilDay*/,
    -
    15395  0 /*untilTimeCode (0/15)*/,
    -
    15396  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15397  },
    -
    15398 
    -
    15399 };
    -
    15400 
    -
    15401 static const char kZoneNameAntarctica_Rothera[] ACE_TIME_PROGMEM = "\x03" "Rothera";
    -
    15402 
    -
    15403 const complete::Info::ZoneInfo kZoneAntarctica_Rothera ACE_TIME_PROGMEM = {
    -
    15404  kZoneNameAntarctica_Rothera /*name*/,
    -
    15405  0x0e86d203 /*zoneId*/,
    -
    15406  &kZoneContext /*zoneContext*/,
    -
    15407  2 /*numEras*/,
    -
    15408  kZoneEraAntarctica_Rothera /*eras*/,
    -
    15409  nullptr /*targetInfo*/,
    -
    15410 };
    -
    15411 
    -
    15412 //---------------------------------------------------------------------------
    -
    15413 // Zone name: Antarctica/Troll
    -
    15414 // Eras: 2
    -
    15415 //---------------------------------------------------------------------------
    -
    15416 
    -
    15417 static const complete::Info::ZoneEra kZoneEraAntarctica_Troll[] ACE_TIME_PROGMEM = {
    -
    15418  // 0 - -00 2005 Feb 12
    -
    15419  {
    -
    15420  nullptr /*zonePolicy*/,
    -
    15421  "-00" /*format*/,
    -
    15422  0 /*offsetCode (0/15)*/,
    -
    15423  0 /*offsetRemainder (0%15)*/,
    -
    15424  0 /*deltaMinutes*/,
    -
    15425  2005 /*untilYear*/,
    -
    15426  2 /*untilMonth*/,
    -
    15427  12 /*untilDay*/,
    -
    15428  0 /*untilTimeCode (0/15)*/,
    -
    15429  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15430  },
    -
    15431  // 0:00 Troll %s
    -
    15432  {
    -
    15433  &kZonePolicyTroll /*zonePolicy*/,
    -
    15434  "%" /*format*/,
    -
    15435  0 /*offsetCode (0/15)*/,
    -
    15436  0 /*offsetRemainder (0%15)*/,
    -
    15437  0 /*deltaMinutes*/,
    -
    15438  32767 /*untilYear*/,
    -
    15439  1 /*untilMonth*/,
    -
    15440  1 /*untilDay*/,
    -
    15441  0 /*untilTimeCode (0/15)*/,
    -
    15442  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15443  },
    -
    15444 
    -
    15445 };
    -
    15446 
    -
    15447 static const char kZoneNameAntarctica_Troll[] ACE_TIME_PROGMEM = "\x03" "Troll";
    -
    15448 
    -
    15449 const complete::Info::ZoneInfo kZoneAntarctica_Troll ACE_TIME_PROGMEM = {
    -
    15450  kZoneNameAntarctica_Troll /*name*/,
    -
    15451  0xe33f085b /*zoneId*/,
    -
    15452  &kZoneContext /*zoneContext*/,
    -
    15453  2 /*numEras*/,
    -
    15454  kZoneEraAntarctica_Troll /*eras*/,
    -
    15455  nullptr /*targetInfo*/,
    -
    15456 };
    -
    15457 
    -
    15458 //---------------------------------------------------------------------------
    -
    15459 // Zone name: Antarctica/Vostok
    -
    15460 // Eras: 5
    -
    15461 //---------------------------------------------------------------------------
    -
    15462 
    -
    15463 static const complete::Info::ZoneEra kZoneEraAntarctica_Vostok[] ACE_TIME_PROGMEM = {
    -
    15464  // 0 - -00 1957 Dec 16
    -
    15465  {
    -
    15466  nullptr /*zonePolicy*/,
    -
    15467  "-00" /*format*/,
    -
    15468  0 /*offsetCode (0/15)*/,
    -
    15469  0 /*offsetRemainder (0%15)*/,
    -
    15470  0 /*deltaMinutes*/,
    -
    15471  1957 /*untilYear*/,
    -
    15472  12 /*untilMonth*/,
    -
    15473  16 /*untilDay*/,
    -
    15474  0 /*untilTimeCode (0/15)*/,
    -
    15475  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15476  },
    -
    15477  // 7:00 - %z 1994 Feb
    -
    15478  {
    -
    15479  nullptr /*zonePolicy*/,
    -
    15480  "" /*format*/,
    -
    15481  1680 /*offsetCode (25200/15)*/,
    -
    15482  0 /*offsetRemainder (25200%15)*/,
    -
    15483  0 /*deltaMinutes*/,
    -
    15484  1994 /*untilYear*/,
    -
    15485  2 /*untilMonth*/,
    -
    15486  1 /*untilDay*/,
    -
    15487  0 /*untilTimeCode (0/15)*/,
    -
    15488  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15489  },
    -
    15490  // 0 - -00 1994 Nov
    -
    15491  {
    -
    15492  nullptr /*zonePolicy*/,
    -
    15493  "-00" /*format*/,
    -
    15494  0 /*offsetCode (0/15)*/,
    -
    15495  0 /*offsetRemainder (0%15)*/,
    -
    15496  0 /*deltaMinutes*/,
    -
    15497  1994 /*untilYear*/,
    -
    15498  11 /*untilMonth*/,
    -
    15499  1 /*untilDay*/,
    -
    15500  0 /*untilTimeCode (0/15)*/,
    -
    15501  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15502  },
    -
    15503  // 7:00 - %z 2023 Dec 18 2:00
    -
    15504  {
    -
    15505  nullptr /*zonePolicy*/,
    -
    15506  "" /*format*/,
    -
    15507  1680 /*offsetCode (25200/15)*/,
    -
    15508  0 /*offsetRemainder (25200%15)*/,
    -
    15509  0 /*deltaMinutes*/,
    -
    15510  2023 /*untilYear*/,
    -
    15511  12 /*untilMonth*/,
    -
    15512  18 /*untilDay*/,
    -
    15513  480 /*untilTimeCode (7200/15)*/,
    -
    15514  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15515  },
    -
    15516  // 5:00 - %z
    -
    15517  {
    -
    15518  nullptr /*zonePolicy*/,
    -
    15519  "" /*format*/,
    -
    15520  1200 /*offsetCode (18000/15)*/,
    -
    15521  0 /*offsetRemainder (18000%15)*/,
    -
    15522  0 /*deltaMinutes*/,
    -
    15523  32767 /*untilYear*/,
    -
    15524  1 /*untilMonth*/,
    -
    15525  1 /*untilDay*/,
    -
    15526  0 /*untilTimeCode (0/15)*/,
    -
    15527  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15528  },
    -
    15529 
    -
    15530 };
    -
    15531 
    -
    15532 static const char kZoneNameAntarctica_Vostok[] ACE_TIME_PROGMEM = "\x03" "Vostok";
    -
    15533 
    -
    15534 const complete::Info::ZoneInfo kZoneAntarctica_Vostok ACE_TIME_PROGMEM = {
    -
    15535  kZoneNameAntarctica_Vostok /*name*/,
    -
    15536  0x4f966fd4 /*zoneId*/,
    -
    15537  &kZoneContext /*zoneContext*/,
    -
    15538  5 /*numEras*/,
    -
    15539  kZoneEraAntarctica_Vostok /*eras*/,
    -
    15540  nullptr /*targetInfo*/,
    -
    15541 };
    -
    15542 
    -
    15543 //---------------------------------------------------------------------------
    -
    15544 // Zone name: Asia/Almaty
    -
    15545 // Eras: 7
    -
    15546 //---------------------------------------------------------------------------
    -
    15547 
    -
    15548 static const complete::Info::ZoneEra kZoneEraAsia_Almaty[] ACE_TIME_PROGMEM = {
    -
    15549  // 5:07:48 - LMT 1924 May 2
    -
    15550  {
    -
    15551  nullptr /*zonePolicy*/,
    -
    15552  "LMT" /*format*/,
    -
    15553  1231 /*offsetCode (18468/15)*/,
    -
    15554  3 /*offsetRemainder (18468%15)*/,
    -
    15555  0 /*deltaMinutes*/,
    -
    15556  1924 /*untilYear*/,
    -
    15557  5 /*untilMonth*/,
    -
    15558  2 /*untilDay*/,
    -
    15559  0 /*untilTimeCode (0/15)*/,
    -
    15560  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15561  },
    -
    15562  // 5:00 - %z 1930 Jun 21
    -
    15563  {
    -
    15564  nullptr /*zonePolicy*/,
    -
    15565  "" /*format*/,
    -
    15566  1200 /*offsetCode (18000/15)*/,
    -
    15567  0 /*offsetRemainder (18000%15)*/,
    -
    15568  0 /*deltaMinutes*/,
    -
    15569  1930 /*untilYear*/,
    -
    15570  6 /*untilMonth*/,
    -
    15571  21 /*untilDay*/,
    -
    15572  0 /*untilTimeCode (0/15)*/,
    -
    15573  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15574  },
    -
    15575  // 6:00 RussiaAsia %z 1991 Mar 31 2:00s
    -
    15576  {
    -
    15577  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    15578  "" /*format*/,
    -
    15579  1440 /*offsetCode (21600/15)*/,
    -
    15580  0 /*offsetRemainder (21600%15)*/,
    -
    15581  0 /*deltaMinutes*/,
    -
    15582  1991 /*untilYear*/,
    -
    15583  3 /*untilMonth*/,
    -
    15584  31 /*untilDay*/,
    -
    15585  480 /*untilTimeCode (7200/15)*/,
    -
    15586  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15587  },
    -
    15588  // 5:00 RussiaAsia %z 1992 Jan 19 2:00s
    -
    15589  {
    -
    15590  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    15591  "" /*format*/,
    -
    15592  1200 /*offsetCode (18000/15)*/,
    -
    15593  0 /*offsetRemainder (18000%15)*/,
    -
    15594  0 /*deltaMinutes*/,
    -
    15595  1992 /*untilYear*/,
    -
    15596  1 /*untilMonth*/,
    -
    15597  19 /*untilDay*/,
    -
    15598  480 /*untilTimeCode (7200/15)*/,
    -
    15599  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15600  },
    -
    15601  // 6:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    15602  {
    -
    15603  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    15604  "" /*format*/,
    -
    15605  1440 /*offsetCode (21600/15)*/,
    -
    15606  0 /*offsetRemainder (21600%15)*/,
    -
    15607  0 /*deltaMinutes*/,
    -
    15608  2004 /*untilYear*/,
    -
    15609  10 /*untilMonth*/,
    -
    15610  31 /*untilDay*/,
    -
    15611  480 /*untilTimeCode (7200/15)*/,
    -
    15612  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15613  },
    -
    15614  // 6:00 - %z 2024 Mar 1 0:00
    -
    15615  {
    -
    15616  nullptr /*zonePolicy*/,
    -
    15617  "" /*format*/,
    -
    15618  1440 /*offsetCode (21600/15)*/,
    -
    15619  0 /*offsetRemainder (21600%15)*/,
    -
    15620  0 /*deltaMinutes*/,
    -
    15621  2024 /*untilYear*/,
    -
    15622  3 /*untilMonth*/,
    -
    15623  1 /*untilDay*/,
    -
    15624  0 /*untilTimeCode (0/15)*/,
    -
    15625  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15626  },
    -
    15627  // 5:00 - %z
    -
    15628  {
    -
    15629  nullptr /*zonePolicy*/,
    -
    15630  "" /*format*/,
    -
    15631  1200 /*offsetCode (18000/15)*/,
    -
    15632  0 /*offsetRemainder (18000%15)*/,
    -
    15633  0 /*deltaMinutes*/,
    -
    15634  32767 /*untilYear*/,
    -
    15635  1 /*untilMonth*/,
    -
    15636  1 /*untilDay*/,
    -
    15637  0 /*untilTimeCode (0/15)*/,
    -
    15638  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15639  },
    -
    15640 
    -
    15641 };
    -
    15642 
    -
    15643 static const char kZoneNameAsia_Almaty[] ACE_TIME_PROGMEM = "\x05" "Almaty";
    -
    15644 
    -
    15645 const complete::Info::ZoneInfo kZoneAsia_Almaty ACE_TIME_PROGMEM = {
    -
    15646  kZoneNameAsia_Almaty /*name*/,
    -
    15647  0xa61f41fa /*zoneId*/,
    -
    15648  &kZoneContext /*zoneContext*/,
    -
    15649  7 /*numEras*/,
    -
    15650  kZoneEraAsia_Almaty /*eras*/,
    -
    15651  nullptr /*targetInfo*/,
    -
    15652 };
    -
    15653 
    -
    15654 //---------------------------------------------------------------------------
    -
    15655 // Zone name: Asia/Amman
    -
    15656 // Eras: 3
    -
    15657 //---------------------------------------------------------------------------
    -
    15658 
    -
    15659 static const complete::Info::ZoneEra kZoneEraAsia_Amman[] ACE_TIME_PROGMEM = {
    -
    15660  // 2:23:44 - LMT 1931
    -
    15661  {
    -
    15662  nullptr /*zonePolicy*/,
    -
    15663  "LMT" /*format*/,
    -
    15664  574 /*offsetCode (8624/15)*/,
    -
    15665  14 /*offsetRemainder (8624%15)*/,
    -
    15666  0 /*deltaMinutes*/,
    -
    15667  1931 /*untilYear*/,
    -
    15668  1 /*untilMonth*/,
    -
    15669  1 /*untilDay*/,
    -
    15670  0 /*untilTimeCode (0/15)*/,
    -
    15671  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15672  },
    -
    15673  // 2:00 Jordan EE%sT 2022 Oct 28 0:00s
    -
    15674  {
    -
    15675  &kZonePolicyJordan /*zonePolicy*/,
    -
    15676  "EE%T" /*format*/,
    -
    15677  480 /*offsetCode (7200/15)*/,
    -
    15678  0 /*offsetRemainder (7200%15)*/,
    -
    15679  0 /*deltaMinutes*/,
    -
    15680  2022 /*untilYear*/,
    -
    15681  10 /*untilMonth*/,
    -
    15682  28 /*untilDay*/,
    -
    15683  0 /*untilTimeCode (0/15)*/,
    -
    15684  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15685  },
    -
    15686  // 3:00 - %z
    -
    15687  {
    -
    15688  nullptr /*zonePolicy*/,
    -
    15689  "" /*format*/,
    -
    15690  720 /*offsetCode (10800/15)*/,
    -
    15691  0 /*offsetRemainder (10800%15)*/,
    -
    15692  0 /*deltaMinutes*/,
    -
    15693  32767 /*untilYear*/,
    -
    15694  1 /*untilMonth*/,
    -
    15695  1 /*untilDay*/,
    -
    15696  0 /*untilTimeCode (0/15)*/,
    -
    15697  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15698  },
    -
    15699 
    -
    15700 };
    -
    15701 
    -
    15702 static const char kZoneNameAsia_Amman[] ACE_TIME_PROGMEM = "\x05" "Amman";
    -
    15703 
    -
    15704 const complete::Info::ZoneInfo kZoneAsia_Amman ACE_TIME_PROGMEM = {
    -
    15705  kZoneNameAsia_Amman /*name*/,
    -
    15706  0x148d21bc /*zoneId*/,
    -
    15707  &kZoneContext /*zoneContext*/,
    -
    15708  3 /*numEras*/,
    -
    15709  kZoneEraAsia_Amman /*eras*/,
    -
    15710  nullptr /*targetInfo*/,
    -
    15711 };
    -
    15712 
    -
    15713 //---------------------------------------------------------------------------
    -
    15714 // Zone name: Asia/Anadyr
    -
    15715 // Eras: 8
    -
    15716 //---------------------------------------------------------------------------
    -
    15717 
    -
    15718 static const complete::Info::ZoneEra kZoneEraAsia_Anadyr[] ACE_TIME_PROGMEM = {
    -
    15719  // 11:49:56 - LMT 1924 May 2
    -
    15720  {
    -
    15721  nullptr /*zonePolicy*/,
    -
    15722  "LMT" /*format*/,
    -
    15723  2839 /*offsetCode (42596/15)*/,
    -
    15724  11 /*offsetRemainder (42596%15)*/,
    -
    15725  0 /*deltaMinutes*/,
    -
    15726  1924 /*untilYear*/,
    -
    15727  5 /*untilMonth*/,
    -
    15728  2 /*untilDay*/,
    -
    15729  0 /*untilTimeCode (0/15)*/,
    -
    15730  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15731  },
    -
    15732  // 12:00 - %z 1930 Jun 21
    -
    15733  {
    -
    15734  nullptr /*zonePolicy*/,
    -
    15735  "" /*format*/,
    -
    15736  2880 /*offsetCode (43200/15)*/,
    -
    15737  0 /*offsetRemainder (43200%15)*/,
    -
    15738  0 /*deltaMinutes*/,
    -
    15739  1930 /*untilYear*/,
    -
    15740  6 /*untilMonth*/,
    -
    15741  21 /*untilDay*/,
    -
    15742  0 /*untilTimeCode (0/15)*/,
    -
    15743  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15744  },
    -
    15745  // 13:00 Russia %z 1982 Apr 1 0:00s
    -
    15746  {
    -
    15747  &kZonePolicyRussia /*zonePolicy*/,
    -
    15748  "" /*format*/,
    -
    15749  3120 /*offsetCode (46800/15)*/,
    -
    15750  0 /*offsetRemainder (46800%15)*/,
    -
    15751  0 /*deltaMinutes*/,
    -
    15752  1982 /*untilYear*/,
    -
    15753  4 /*untilMonth*/,
    -
    15754  1 /*untilDay*/,
    -
    15755  0 /*untilTimeCode (0/15)*/,
    -
    15756  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15757  },
    -
    15758  // 12:00 Russia %z 1991 Mar 31 2:00s
    -
    15759  {
    -
    15760  &kZonePolicyRussia /*zonePolicy*/,
    -
    15761  "" /*format*/,
    -
    15762  2880 /*offsetCode (43200/15)*/,
    -
    15763  0 /*offsetRemainder (43200%15)*/,
    -
    15764  0 /*deltaMinutes*/,
    -
    15765  1991 /*untilYear*/,
    -
    15766  3 /*untilMonth*/,
    -
    15767  31 /*untilDay*/,
    -
    15768  480 /*untilTimeCode (7200/15)*/,
    -
    15769  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15770  },
    -
    15771  // 11:00 Russia %z 1992 Jan 19 2:00s
    -
    15772  {
    -
    15773  &kZonePolicyRussia /*zonePolicy*/,
    -
    15774  "" /*format*/,
    -
    15775  2640 /*offsetCode (39600/15)*/,
    -
    15776  0 /*offsetRemainder (39600%15)*/,
    -
    15777  0 /*deltaMinutes*/,
    -
    15778  1992 /*untilYear*/,
    -
    15779  1 /*untilMonth*/,
    -
    15780  19 /*untilDay*/,
    -
    15781  480 /*untilTimeCode (7200/15)*/,
    -
    15782  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15783  },
    -
    15784  // 12:00 Russia %z 2010 Mar 28 2:00s
    -
    15785  {
    -
    15786  &kZonePolicyRussia /*zonePolicy*/,
    -
    15787  "" /*format*/,
    -
    15788  2880 /*offsetCode (43200/15)*/,
    -
    15789  0 /*offsetRemainder (43200%15)*/,
    -
    15790  0 /*deltaMinutes*/,
    -
    15791  2010 /*untilYear*/,
    -
    15792  3 /*untilMonth*/,
    -
    15793  28 /*untilDay*/,
    -
    15794  480 /*untilTimeCode (7200/15)*/,
    -
    15795  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15796  },
    -
    15797  // 11:00 Russia %z 2011 Mar 27 2:00s
    -
    15798  {
    -
    15799  &kZonePolicyRussia /*zonePolicy*/,
    -
    15800  "" /*format*/,
    -
    15801  2640 /*offsetCode (39600/15)*/,
    -
    15802  0 /*offsetRemainder (39600%15)*/,
    -
    15803  0 /*deltaMinutes*/,
    -
    15804  2011 /*untilYear*/,
    -
    15805  3 /*untilMonth*/,
    -
    15806  27 /*untilDay*/,
    -
    15807  480 /*untilTimeCode (7200/15)*/,
    -
    15808  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15809  },
    -
    15810  // 12:00 - %z
    -
    15811  {
    -
    15812  nullptr /*zonePolicy*/,
    -
    15813  "" /*format*/,
    -
    15814  2880 /*offsetCode (43200/15)*/,
    -
    15815  0 /*offsetRemainder (43200%15)*/,
    -
    15816  0 /*deltaMinutes*/,
    -
    15817  32767 /*untilYear*/,
    -
    15818  1 /*untilMonth*/,
    -
    15819  1 /*untilDay*/,
    -
    15820  0 /*untilTimeCode (0/15)*/,
    -
    15821  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15822  },
    -
    15823 
    -
    15824 };
    -
    15825 
    -
    15826 static const char kZoneNameAsia_Anadyr[] ACE_TIME_PROGMEM = "\x05" "Anadyr";
    -
    15827 
    -
    15828 const complete::Info::ZoneInfo kZoneAsia_Anadyr ACE_TIME_PROGMEM = {
    -
    15829  kZoneNameAsia_Anadyr /*name*/,
    -
    15830  0xa63cebd1 /*zoneId*/,
    -
    15831  &kZoneContext /*zoneContext*/,
    -
    15832  8 /*numEras*/,
    -
    15833  kZoneEraAsia_Anadyr /*eras*/,
    -
    15834  nullptr /*targetInfo*/,
    -
    15835 };
    -
    15836 
    -
    15837 //---------------------------------------------------------------------------
    -
    15838 // Zone name: Asia/Aqtau
    -
    15839 // Eras: 9
    -
    15840 //---------------------------------------------------------------------------
    -
    15841 
    -
    15842 static const complete::Info::ZoneEra kZoneEraAsia_Aqtau[] ACE_TIME_PROGMEM = {
    -
    15843  // 3:21:04 - LMT 1924 May 2
    -
    15844  {
    -
    15845  nullptr /*zonePolicy*/,
    -
    15846  "LMT" /*format*/,
    -
    15847  804 /*offsetCode (12064/15)*/,
    -
    15848  4 /*offsetRemainder (12064%15)*/,
    -
    15849  0 /*deltaMinutes*/,
    -
    15850  1924 /*untilYear*/,
    -
    15851  5 /*untilMonth*/,
    -
    15852  2 /*untilDay*/,
    -
    15853  0 /*untilTimeCode (0/15)*/,
    -
    15854  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15855  },
    -
    15856  // 4:00 - %z 1930 Jun 21
    -
    15857  {
    -
    15858  nullptr /*zonePolicy*/,
    -
    15859  "" /*format*/,
    -
    15860  960 /*offsetCode (14400/15)*/,
    -
    15861  0 /*offsetRemainder (14400%15)*/,
    -
    15862  0 /*deltaMinutes*/,
    -
    15863  1930 /*untilYear*/,
    -
    15864  6 /*untilMonth*/,
    -
    15865  21 /*untilDay*/,
    -
    15866  0 /*untilTimeCode (0/15)*/,
    -
    15867  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15868  },
    -
    15869  // 5:00 - %z 1981 Oct 1
    -
    15870  {
    -
    15871  nullptr /*zonePolicy*/,
    -
    15872  "" /*format*/,
    -
    15873  1200 /*offsetCode (18000/15)*/,
    -
    15874  0 /*offsetRemainder (18000%15)*/,
    -
    15875  0 /*deltaMinutes*/,
    -
    15876  1981 /*untilYear*/,
    -
    15877  10 /*untilMonth*/,
    -
    15878  1 /*untilDay*/,
    -
    15879  0 /*untilTimeCode (0/15)*/,
    -
    15880  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15881  },
    -
    15882  // 6:00 - %z 1982 Apr 1
    -
    15883  {
    -
    15884  nullptr /*zonePolicy*/,
    -
    15885  "" /*format*/,
    -
    15886  1440 /*offsetCode (21600/15)*/,
    -
    15887  0 /*offsetRemainder (21600%15)*/,
    -
    15888  0 /*deltaMinutes*/,
    -
    15889  1982 /*untilYear*/,
    -
    15890  4 /*untilMonth*/,
    -
    15891  1 /*untilDay*/,
    -
    15892  0 /*untilTimeCode (0/15)*/,
    -
    15893  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15894  },
    -
    15895  // 5:00 RussiaAsia %z 1991 Mar 31 2:00s
    -
    15896  {
    -
    15897  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    15898  "" /*format*/,
    -
    15899  1200 /*offsetCode (18000/15)*/,
    -
    15900  0 /*offsetRemainder (18000%15)*/,
    -
    15901  0 /*deltaMinutes*/,
    -
    15902  1991 /*untilYear*/,
    -
    15903  3 /*untilMonth*/,
    -
    15904  31 /*untilDay*/,
    -
    15905  480 /*untilTimeCode (7200/15)*/,
    -
    15906  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15907  },
    -
    15908  // 4:00 RussiaAsia %z 1992 Jan 19 2:00s
    -
    15909  {
    -
    15910  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    15911  "" /*format*/,
    -
    15912  960 /*offsetCode (14400/15)*/,
    -
    15913  0 /*offsetRemainder (14400%15)*/,
    -
    15914  0 /*deltaMinutes*/,
    -
    15915  1992 /*untilYear*/,
    -
    15916  1 /*untilMonth*/,
    -
    15917  19 /*untilDay*/,
    -
    15918  480 /*untilTimeCode (7200/15)*/,
    -
    15919  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15920  },
    -
    15921  // 5:00 RussiaAsia %z 1994 Sep 25 2:00s
    -
    15922  {
    -
    15923  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    15924  "" /*format*/,
    -
    15925  1200 /*offsetCode (18000/15)*/,
    -
    15926  0 /*offsetRemainder (18000%15)*/,
    -
    15927  0 /*deltaMinutes*/,
    -
    15928  1994 /*untilYear*/,
    -
    15929  9 /*untilMonth*/,
    -
    15930  25 /*untilDay*/,
    -
    15931  480 /*untilTimeCode (7200/15)*/,
    -
    15932  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15933  },
    -
    15934  // 4:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    15935  {
    -
    15936  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    15937  "" /*format*/,
    -
    15938  960 /*offsetCode (14400/15)*/,
    -
    15939  0 /*offsetRemainder (14400%15)*/,
    -
    15940  0 /*deltaMinutes*/,
    -
    15941  2004 /*untilYear*/,
    -
    15942  10 /*untilMonth*/,
    -
    15943  31 /*untilDay*/,
    -
    15944  480 /*untilTimeCode (7200/15)*/,
    -
    15945  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    15946  },
    -
    15947  // 5:00 - %z
    -
    15948  {
    -
    15949  nullptr /*zonePolicy*/,
    -
    15950  "" /*format*/,
    -
    15951  1200 /*offsetCode (18000/15)*/,
    -
    15952  0 /*offsetRemainder (18000%15)*/,
    -
    15953  0 /*deltaMinutes*/,
    -
    15954  32767 /*untilYear*/,
    -
    15955  1 /*untilMonth*/,
    -
    15956  1 /*untilDay*/,
    -
    15957  0 /*untilTimeCode (0/15)*/,
    -
    15958  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15959  },
    -
    15960 
    -
    15961 };
    -
    15962 
    -
    15963 static const char kZoneNameAsia_Aqtau[] ACE_TIME_PROGMEM = "\x05" "Aqtau";
    -
    15964 
    -
    15965 const complete::Info::ZoneInfo kZoneAsia_Aqtau ACE_TIME_PROGMEM = {
    -
    15966  kZoneNameAsia_Aqtau /*name*/,
    -
    15967  0x148f710e /*zoneId*/,
    -
    15968  &kZoneContext /*zoneContext*/,
    -
    15969  9 /*numEras*/,
    -
    15970  kZoneEraAsia_Aqtau /*eras*/,
    -
    15971  nullptr /*targetInfo*/,
    -
    15972 };
    -
    15973 
    -
    15974 //---------------------------------------------------------------------------
    -
    15975 // Zone name: Asia/Aqtobe
    -
    15976 // Eras: 9
    -
    15977 //---------------------------------------------------------------------------
    -
    15978 
    -
    15979 static const complete::Info::ZoneEra kZoneEraAsia_Aqtobe[] ACE_TIME_PROGMEM = {
    -
    15980  // 3:48:40 - LMT 1924 May 2
    -
    15981  {
    -
    15982  nullptr /*zonePolicy*/,
    -
    15983  "LMT" /*format*/,
    -
    15984  914 /*offsetCode (13720/15)*/,
    -
    15985  10 /*offsetRemainder (13720%15)*/,
    -
    15986  0 /*deltaMinutes*/,
    -
    15987  1924 /*untilYear*/,
    -
    15988  5 /*untilMonth*/,
    -
    15989  2 /*untilDay*/,
    -
    15990  0 /*untilTimeCode (0/15)*/,
    -
    15991  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15992  },
    -
    15993  // 4:00 - %z 1930 Jun 21
    -
    15994  {
    -
    15995  nullptr /*zonePolicy*/,
    -
    15996  "" /*format*/,
    -
    15997  960 /*offsetCode (14400/15)*/,
    -
    15998  0 /*offsetRemainder (14400%15)*/,
    -
    15999  0 /*deltaMinutes*/,
    -
    16000  1930 /*untilYear*/,
    -
    16001  6 /*untilMonth*/,
    -
    16002  21 /*untilDay*/,
    -
    16003  0 /*untilTimeCode (0/15)*/,
    -
    16004  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16005  },
    -
    16006  // 5:00 - %z 1981 Apr 1
    -
    16007  {
    -
    16008  nullptr /*zonePolicy*/,
    -
    16009  "" /*format*/,
    -
    16010  1200 /*offsetCode (18000/15)*/,
    -
    16011  0 /*offsetRemainder (18000%15)*/,
    -
    16012  0 /*deltaMinutes*/,
    -
    16013  1981 /*untilYear*/,
    -
    16014  4 /*untilMonth*/,
    -
    16015  1 /*untilDay*/,
    -
    16016  0 /*untilTimeCode (0/15)*/,
    -
    16017  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16018  },
    -
    16019  // 5:00 1:00 %z 1981 Oct 1
    -
    16020  {
    -
    16021  nullptr /*zonePolicy*/,
    -
    16022  "" /*format*/,
    -
    16023  1200 /*offsetCode (18000/15)*/,
    -
    16024  0 /*offsetRemainder (18000%15)*/,
    -
    16025  60 /*deltaMinutes*/,
    -
    16026  1981 /*untilYear*/,
    -
    16027  10 /*untilMonth*/,
    -
    16028  1 /*untilDay*/,
    -
    16029  0 /*untilTimeCode (0/15)*/,
    -
    16030  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16031  },
    -
    16032  // 6:00 - %z 1982 Apr 1
    -
    16033  {
    -
    16034  nullptr /*zonePolicy*/,
    -
    16035  "" /*format*/,
    -
    16036  1440 /*offsetCode (21600/15)*/,
    -
    16037  0 /*offsetRemainder (21600%15)*/,
    -
    16038  0 /*deltaMinutes*/,
    -
    16039  1982 /*untilYear*/,
    -
    16040  4 /*untilMonth*/,
    -
    16041  1 /*untilDay*/,
    -
    16042  0 /*untilTimeCode (0/15)*/,
    -
    16043  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16044  },
    -
    16045  // 5:00 RussiaAsia %z 1991 Mar 31 2:00s
    -
    16046  {
    -
    16047  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16048  "" /*format*/,
    -
    16049  1200 /*offsetCode (18000/15)*/,
    -
    16050  0 /*offsetRemainder (18000%15)*/,
    -
    16051  0 /*deltaMinutes*/,
    -
    16052  1991 /*untilYear*/,
    -
    16053  3 /*untilMonth*/,
    -
    16054  31 /*untilDay*/,
    -
    16055  480 /*untilTimeCode (7200/15)*/,
    -
    16056  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16057  },
    -
    16058  // 4:00 RussiaAsia %z 1992 Jan 19 2:00s
    -
    16059  {
    -
    16060  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16061  "" /*format*/,
    -
    16062  960 /*offsetCode (14400/15)*/,
    -
    16063  0 /*offsetRemainder (14400%15)*/,
    -
    16064  0 /*deltaMinutes*/,
    -
    16065  1992 /*untilYear*/,
    -
    16066  1 /*untilMonth*/,
    -
    16067  19 /*untilDay*/,
    -
    16068  480 /*untilTimeCode (7200/15)*/,
    -
    16069  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16070  },
    -
    16071  // 5:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    16072  {
    -
    16073  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16074  "" /*format*/,
    -
    16075  1200 /*offsetCode (18000/15)*/,
    -
    16076  0 /*offsetRemainder (18000%15)*/,
    -
    16077  0 /*deltaMinutes*/,
    -
    16078  2004 /*untilYear*/,
    -
    16079  10 /*untilMonth*/,
    -
    16080  31 /*untilDay*/,
    -
    16081  480 /*untilTimeCode (7200/15)*/,
    -
    16082  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16083  },
    -
    16084  // 5:00 - %z
    -
    16085  {
    -
    16086  nullptr /*zonePolicy*/,
    -
    16087  "" /*format*/,
    -
    16088  1200 /*offsetCode (18000/15)*/,
    -
    16089  0 /*offsetRemainder (18000%15)*/,
    -
    16090  0 /*deltaMinutes*/,
    -
    16091  32767 /*untilYear*/,
    -
    16092  1 /*untilMonth*/,
    -
    16093  1 /*untilDay*/,
    -
    16094  0 /*untilTimeCode (0/15)*/,
    -
    16095  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16096  },
    -
    16097 
    -
    16098 };
    -
    16099 
    -
    16100 static const char kZoneNameAsia_Aqtobe[] ACE_TIME_PROGMEM = "\x05" "Aqtobe";
    -
    16101 
    -
    16102 const complete::Info::ZoneInfo kZoneAsia_Aqtobe ACE_TIME_PROGMEM = {
    -
    16103  kZoneNameAsia_Aqtobe /*name*/,
    -
    16104  0xa67dcc4e /*zoneId*/,
    -
    16105  &kZoneContext /*zoneContext*/,
    -
    16106  9 /*numEras*/,
    -
    16107  kZoneEraAsia_Aqtobe /*eras*/,
    -
    16108  nullptr /*targetInfo*/,
    -
    16109 };
    -
    16110 
    -
    16111 //---------------------------------------------------------------------------
    -
    16112 // Zone name: Asia/Ashgabat
    -
    16113 // Eras: 5
    -
    16114 //---------------------------------------------------------------------------
    -
    16115 
    -
    16116 static const complete::Info::ZoneEra kZoneEraAsia_Ashgabat[] ACE_TIME_PROGMEM = {
    -
    16117  // 3:53:32 - LMT 1924 May 2
    -
    16118  {
    -
    16119  nullptr /*zonePolicy*/,
    -
    16120  "LMT" /*format*/,
    -
    16121  934 /*offsetCode (14012/15)*/,
    -
    16122  2 /*offsetRemainder (14012%15)*/,
    -
    16123  0 /*deltaMinutes*/,
    -
    16124  1924 /*untilYear*/,
    -
    16125  5 /*untilMonth*/,
    -
    16126  2 /*untilDay*/,
    -
    16127  0 /*untilTimeCode (0/15)*/,
    -
    16128  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16129  },
    -
    16130  // 4:00 - %z 1930 Jun 21
    -
    16131  {
    -
    16132  nullptr /*zonePolicy*/,
    -
    16133  "" /*format*/,
    -
    16134  960 /*offsetCode (14400/15)*/,
    -
    16135  0 /*offsetRemainder (14400%15)*/,
    -
    16136  0 /*deltaMinutes*/,
    -
    16137  1930 /*untilYear*/,
    -
    16138  6 /*untilMonth*/,
    -
    16139  21 /*untilDay*/,
    -
    16140  0 /*untilTimeCode (0/15)*/,
    -
    16141  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16142  },
    -
    16143  // 5:00 RussiaAsia %z 1991 Mar 31 2:00
    -
    16144  {
    -
    16145  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16146  "" /*format*/,
    -
    16147  1200 /*offsetCode (18000/15)*/,
    -
    16148  0 /*offsetRemainder (18000%15)*/,
    -
    16149  0 /*deltaMinutes*/,
    -
    16150  1991 /*untilYear*/,
    -
    16151  3 /*untilMonth*/,
    -
    16152  31 /*untilDay*/,
    -
    16153  480 /*untilTimeCode (7200/15)*/,
    -
    16154  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16155  },
    -
    16156  // 4:00 RussiaAsia %z 1992 Jan 19 2:00
    -
    16157  {
    -
    16158  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16159  "" /*format*/,
    -
    16160  960 /*offsetCode (14400/15)*/,
    -
    16161  0 /*offsetRemainder (14400%15)*/,
    -
    16162  0 /*deltaMinutes*/,
    -
    16163  1992 /*untilYear*/,
    -
    16164  1 /*untilMonth*/,
    -
    16165  19 /*untilDay*/,
    -
    16166  480 /*untilTimeCode (7200/15)*/,
    -
    16167  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16168  },
    -
    16169  // 5:00 - %z
    -
    16170  {
    -
    16171  nullptr /*zonePolicy*/,
    -
    16172  "" /*format*/,
    -
    16173  1200 /*offsetCode (18000/15)*/,
    -
    16174  0 /*offsetRemainder (18000%15)*/,
    -
    16175  0 /*deltaMinutes*/,
    -
    16176  32767 /*untilYear*/,
    -
    16177  1 /*untilMonth*/,
    -
    16178  1 /*untilDay*/,
    -
    16179  0 /*untilTimeCode (0/15)*/,
    -
    16180  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16181  },
    -
    16182 
    -
    16183 };
    -
    16184 
    -
    16185 static const char kZoneNameAsia_Ashgabat[] ACE_TIME_PROGMEM = "\x05" "Ashgabat";
    -
    16186 
    -
    16187 const complete::Info::ZoneInfo kZoneAsia_Ashgabat ACE_TIME_PROGMEM = {
    -
    16188  kZoneNameAsia_Ashgabat /*name*/,
    -
    16189  0xba87598d /*zoneId*/,
    -
    16190  &kZoneContext /*zoneContext*/,
    -
    16191  5 /*numEras*/,
    -
    16192  kZoneEraAsia_Ashgabat /*eras*/,
    -
    16193  nullptr /*targetInfo*/,
    -
    16194 };
    -
    16195 
    -
    16196 //---------------------------------------------------------------------------
    -
    16197 // Zone name: Asia/Atyrau
    -
    16198 // Eras: 9
    -
    16199 //---------------------------------------------------------------------------
    -
    16200 
    -
    16201 static const complete::Info::ZoneEra kZoneEraAsia_Atyrau[] ACE_TIME_PROGMEM = {
    -
    16202  // 3:27:44 - LMT 1924 May 2
    -
    16203  {
    -
    16204  nullptr /*zonePolicy*/,
    -
    16205  "LMT" /*format*/,
    -
    16206  830 /*offsetCode (12464/15)*/,
    -
    16207  14 /*offsetRemainder (12464%15)*/,
    -
    16208  0 /*deltaMinutes*/,
    -
    16209  1924 /*untilYear*/,
    -
    16210  5 /*untilMonth*/,
    -
    16211  2 /*untilDay*/,
    -
    16212  0 /*untilTimeCode (0/15)*/,
    -
    16213  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16214  },
    -
    16215  // 3:00 - %z 1930 Jun 21
    -
    16216  {
    -
    16217  nullptr /*zonePolicy*/,
    -
    16218  "" /*format*/,
    -
    16219  720 /*offsetCode (10800/15)*/,
    -
    16220  0 /*offsetRemainder (10800%15)*/,
    -
    16221  0 /*deltaMinutes*/,
    -
    16222  1930 /*untilYear*/,
    -
    16223  6 /*untilMonth*/,
    -
    16224  21 /*untilDay*/,
    -
    16225  0 /*untilTimeCode (0/15)*/,
    -
    16226  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16227  },
    -
    16228  // 5:00 - %z 1981 Oct 1
    -
    16229  {
    -
    16230  nullptr /*zonePolicy*/,
    -
    16231  "" /*format*/,
    -
    16232  1200 /*offsetCode (18000/15)*/,
    -
    16233  0 /*offsetRemainder (18000%15)*/,
    -
    16234  0 /*deltaMinutes*/,
    -
    16235  1981 /*untilYear*/,
    -
    16236  10 /*untilMonth*/,
    -
    16237  1 /*untilDay*/,
    -
    16238  0 /*untilTimeCode (0/15)*/,
    -
    16239  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16240  },
    -
    16241  // 6:00 - %z 1982 Apr 1
    -
    16242  {
    -
    16243  nullptr /*zonePolicy*/,
    -
    16244  "" /*format*/,
    -
    16245  1440 /*offsetCode (21600/15)*/,
    -
    16246  0 /*offsetRemainder (21600%15)*/,
    -
    16247  0 /*deltaMinutes*/,
    -
    16248  1982 /*untilYear*/,
    -
    16249  4 /*untilMonth*/,
    -
    16250  1 /*untilDay*/,
    -
    16251  0 /*untilTimeCode (0/15)*/,
    -
    16252  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16253  },
    -
    16254  // 5:00 RussiaAsia %z 1991 Mar 31 2:00s
    -
    16255  {
    -
    16256  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16257  "" /*format*/,
    -
    16258  1200 /*offsetCode (18000/15)*/,
    -
    16259  0 /*offsetRemainder (18000%15)*/,
    -
    16260  0 /*deltaMinutes*/,
    -
    16261  1991 /*untilYear*/,
    -
    16262  3 /*untilMonth*/,
    -
    16263  31 /*untilDay*/,
    -
    16264  480 /*untilTimeCode (7200/15)*/,
    -
    16265  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16266  },
    -
    16267  // 4:00 RussiaAsia %z 1992 Jan 19 2:00s
    -
    16268  {
    -
    16269  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16270  "" /*format*/,
    -
    16271  960 /*offsetCode (14400/15)*/,
    -
    16272  0 /*offsetRemainder (14400%15)*/,
    -
    16273  0 /*deltaMinutes*/,
    -
    16274  1992 /*untilYear*/,
    -
    16275  1 /*untilMonth*/,
    -
    16276  19 /*untilDay*/,
    -
    16277  480 /*untilTimeCode (7200/15)*/,
    -
    16278  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16279  },
    -
    16280  // 5:00 RussiaAsia %z 1999 Mar 28 2:00s
    -
    16281  {
    -
    16282  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16283  "" /*format*/,
    -
    16284  1200 /*offsetCode (18000/15)*/,
    -
    16285  0 /*offsetRemainder (18000%15)*/,
    -
    16286  0 /*deltaMinutes*/,
    -
    16287  1999 /*untilYear*/,
    -
    16288  3 /*untilMonth*/,
    -
    16289  28 /*untilDay*/,
    -
    16290  480 /*untilTimeCode (7200/15)*/,
    -
    16291  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16292  },
    -
    16293  // 4:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    16294  {
    -
    16295  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16296  "" /*format*/,
    -
    16297  960 /*offsetCode (14400/15)*/,
    -
    16298  0 /*offsetRemainder (14400%15)*/,
    -
    16299  0 /*deltaMinutes*/,
    -
    16300  2004 /*untilYear*/,
    -
    16301  10 /*untilMonth*/,
    -
    16302  31 /*untilDay*/,
    -
    16303  480 /*untilTimeCode (7200/15)*/,
    -
    16304  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16305  },
    -
    16306  // 5:00 - %z
    -
    16307  {
    -
    16308  nullptr /*zonePolicy*/,
    -
    16309  "" /*format*/,
    -
    16310  1200 /*offsetCode (18000/15)*/,
    -
    16311  0 /*offsetRemainder (18000%15)*/,
    -
    16312  0 /*deltaMinutes*/,
    -
    16313  32767 /*untilYear*/,
    -
    16314  1 /*untilMonth*/,
    -
    16315  1 /*untilDay*/,
    -
    16316  0 /*untilTimeCode (0/15)*/,
    -
    16317  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16318  },
    -
    16319 
    -
    16320 };
    -
    16321 
    -
    16322 static const char kZoneNameAsia_Atyrau[] ACE_TIME_PROGMEM = "\x05" "Atyrau";
    -
    16323 
    -
    16324 const complete::Info::ZoneInfo kZoneAsia_Atyrau ACE_TIME_PROGMEM = {
    -
    16325  kZoneNameAsia_Atyrau /*name*/,
    -
    16326  0xa6b6e068 /*zoneId*/,
    -
    16327  &kZoneContext /*zoneContext*/,
    -
    16328  9 /*numEras*/,
    -
    16329  kZoneEraAsia_Atyrau /*eras*/,
    -
    16330  nullptr /*targetInfo*/,
    -
    16331 };
    -
    16332 
    -
    16333 //---------------------------------------------------------------------------
    -
    16334 // Zone name: Asia/Baghdad
    -
    16335 // Eras: 4
    -
    16336 //---------------------------------------------------------------------------
    -
    16337 
    -
    16338 static const complete::Info::ZoneEra kZoneEraAsia_Baghdad[] ACE_TIME_PROGMEM = {
    -
    16339  // 2:57:40 - LMT 1890
    -
    16340  {
    -
    16341  nullptr /*zonePolicy*/,
    -
    16342  "LMT" /*format*/,
    -
    16343  710 /*offsetCode (10660/15)*/,
    -
    16344  10 /*offsetRemainder (10660%15)*/,
    -
    16345  0 /*deltaMinutes*/,
    -
    16346  1890 /*untilYear*/,
    -
    16347  1 /*untilMonth*/,
    -
    16348  1 /*untilDay*/,
    -
    16349  0 /*untilTimeCode (0/15)*/,
    -
    16350  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16351  },
    -
    16352  // 2:57:36 - BMT 1918
    -
    16353  {
    -
    16354  nullptr /*zonePolicy*/,
    -
    16355  "BMT" /*format*/,
    -
    16356  710 /*offsetCode (10656/15)*/,
    -
    16357  6 /*offsetRemainder (10656%15)*/,
    -
    16358  0 /*deltaMinutes*/,
    -
    16359  1918 /*untilYear*/,
    -
    16360  1 /*untilMonth*/,
    -
    16361  1 /*untilDay*/,
    -
    16362  0 /*untilTimeCode (0/15)*/,
    -
    16363  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16364  },
    -
    16365  // 3:00 - %z 1982 May
    -
    16366  {
    -
    16367  nullptr /*zonePolicy*/,
    -
    16368  "" /*format*/,
    -
    16369  720 /*offsetCode (10800/15)*/,
    -
    16370  0 /*offsetRemainder (10800%15)*/,
    -
    16371  0 /*deltaMinutes*/,
    -
    16372  1982 /*untilYear*/,
    -
    16373  5 /*untilMonth*/,
    -
    16374  1 /*untilDay*/,
    -
    16375  0 /*untilTimeCode (0/15)*/,
    -
    16376  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16377  },
    -
    16378  // 3:00 Iraq %z
    -
    16379  {
    -
    16380  &kZonePolicyIraq /*zonePolicy*/,
    -
    16381  "" /*format*/,
    -
    16382  720 /*offsetCode (10800/15)*/,
    -
    16383  0 /*offsetRemainder (10800%15)*/,
    -
    16384  0 /*deltaMinutes*/,
    -
    16385  32767 /*untilYear*/,
    -
    16386  1 /*untilMonth*/,
    -
    16387  1 /*untilDay*/,
    -
    16388  0 /*untilTimeCode (0/15)*/,
    -
    16389  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16390  },
    -
    16391 
    -
    16392 };
    -
    16393 
    -
    16394 static const char kZoneNameAsia_Baghdad[] ACE_TIME_PROGMEM = "\x05" "Baghdad";
    -
    16395 
    -
    16396 const complete::Info::ZoneInfo kZoneAsia_Baghdad ACE_TIME_PROGMEM = {
    -
    16397  kZoneNameAsia_Baghdad /*name*/,
    -
    16398  0x9ceffbed /*zoneId*/,
    -
    16399  &kZoneContext /*zoneContext*/,
    -
    16400  4 /*numEras*/,
    -
    16401  kZoneEraAsia_Baghdad /*eras*/,
    -
    16402  nullptr /*targetInfo*/,
    -
    16403 };
    -
    16404 
    -
    16405 //---------------------------------------------------------------------------
    -
    16406 // Zone name: Asia/Baku
    -
    16407 // Eras: 7
    -
    16408 //---------------------------------------------------------------------------
    -
    16409 
    -
    16410 static const complete::Info::ZoneEra kZoneEraAsia_Baku[] ACE_TIME_PROGMEM = {
    -
    16411  // 3:19:24 - LMT 1924 May 2
    -
    16412  {
    -
    16413  nullptr /*zonePolicy*/,
    -
    16414  "LMT" /*format*/,
    -
    16415  797 /*offsetCode (11964/15)*/,
    -
    16416  9 /*offsetRemainder (11964%15)*/,
    -
    16417  0 /*deltaMinutes*/,
    -
    16418  1924 /*untilYear*/,
    -
    16419  5 /*untilMonth*/,
    -
    16420  2 /*untilDay*/,
    -
    16421  0 /*untilTimeCode (0/15)*/,
    -
    16422  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16423  },
    -
    16424  // 3:00 - %z 1957 Mar
    -
    16425  {
    -
    16426  nullptr /*zonePolicy*/,
    -
    16427  "" /*format*/,
    -
    16428  720 /*offsetCode (10800/15)*/,
    -
    16429  0 /*offsetRemainder (10800%15)*/,
    -
    16430  0 /*deltaMinutes*/,
    -
    16431  1957 /*untilYear*/,
    -
    16432  3 /*untilMonth*/,
    -
    16433  1 /*untilDay*/,
    -
    16434  0 /*untilTimeCode (0/15)*/,
    -
    16435  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16436  },
    -
    16437  // 4:00 RussiaAsia %z 1991 Mar 31 2:00s
    -
    16438  {
    -
    16439  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16440  "" /*format*/,
    -
    16441  960 /*offsetCode (14400/15)*/,
    -
    16442  0 /*offsetRemainder (14400%15)*/,
    -
    16443  0 /*deltaMinutes*/,
    -
    16444  1991 /*untilYear*/,
    -
    16445  3 /*untilMonth*/,
    -
    16446  31 /*untilDay*/,
    -
    16447  480 /*untilTimeCode (7200/15)*/,
    -
    16448  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16449  },
    -
    16450  // 3:00 RussiaAsia %z 1992 Sep lastSun 2:00s
    -
    16451  {
    -
    16452  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16453  "" /*format*/,
    -
    16454  720 /*offsetCode (10800/15)*/,
    -
    16455  0 /*offsetRemainder (10800%15)*/,
    -
    16456  0 /*deltaMinutes*/,
    -
    16457  1992 /*untilYear*/,
    -
    16458  9 /*untilMonth*/,
    -
    16459  27 /*untilDay*/,
    -
    16460  480 /*untilTimeCode (7200/15)*/,
    -
    16461  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16462  },
    -
    16463  // 4:00 - %z 1996
    -
    16464  {
    -
    16465  nullptr /*zonePolicy*/,
    -
    16466  "" /*format*/,
    -
    16467  960 /*offsetCode (14400/15)*/,
    -
    16468  0 /*offsetRemainder (14400%15)*/,
    -
    16469  0 /*deltaMinutes*/,
    -
    16470  1996 /*untilYear*/,
    -
    16471  1 /*untilMonth*/,
    -
    16472  1 /*untilDay*/,
    -
    16473  0 /*untilTimeCode (0/15)*/,
    -
    16474  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16475  },
    -
    16476  // 4:00 EUAsia %z 1997
    -
    16477  {
    -
    16478  &kZonePolicyEUAsia /*zonePolicy*/,
    -
    16479  "" /*format*/,
    -
    16480  960 /*offsetCode (14400/15)*/,
    -
    16481  0 /*offsetRemainder (14400%15)*/,
    -
    16482  0 /*deltaMinutes*/,
    -
    16483  1997 /*untilYear*/,
    -
    16484  1 /*untilMonth*/,
    -
    16485  1 /*untilDay*/,
    -
    16486  0 /*untilTimeCode (0/15)*/,
    -
    16487  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16488  },
    -
    16489  // 4:00 Azer %z
    -
    16490  {
    -
    16491  &kZonePolicyAzer /*zonePolicy*/,
    -
    16492  "" /*format*/,
    -
    16493  960 /*offsetCode (14400/15)*/,
    -
    16494  0 /*offsetRemainder (14400%15)*/,
    -
    16495  0 /*deltaMinutes*/,
    -
    16496  32767 /*untilYear*/,
    -
    16497  1 /*untilMonth*/,
    -
    16498  1 /*untilDay*/,
    -
    16499  0 /*untilTimeCode (0/15)*/,
    -
    16500  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16501  },
    -
    16502 
    -
    16503 };
    -
    16504 
    -
    16505 static const char kZoneNameAsia_Baku[] ACE_TIME_PROGMEM = "\x05" "Baku";
    -
    16506 
    -
    16507 const complete::Info::ZoneInfo kZoneAsia_Baku ACE_TIME_PROGMEM = {
    -
    16508  kZoneNameAsia_Baku /*name*/,
    -
    16509  0x1fa788b5 /*zoneId*/,
    -
    16510  &kZoneContext /*zoneContext*/,
    -
    16511  7 /*numEras*/,
    -
    16512  kZoneEraAsia_Baku /*eras*/,
    -
    16513  nullptr /*targetInfo*/,
    -
    16514 };
    -
    16515 
    -
    16516 //---------------------------------------------------------------------------
    -
    16517 // Zone name: Asia/Bangkok
    -
    16518 // Eras: 3
    -
    16519 //---------------------------------------------------------------------------
    -
    16520 
    -
    16521 static const complete::Info::ZoneEra kZoneEraAsia_Bangkok[] ACE_TIME_PROGMEM = {
    -
    16522  // 6:42:04 - LMT 1880
    -
    16523  {
    -
    16524  nullptr /*zonePolicy*/,
    -
    16525  "LMT" /*format*/,
    -
    16526  1608 /*offsetCode (24124/15)*/,
    -
    16527  4 /*offsetRemainder (24124%15)*/,
    -
    16528  0 /*deltaMinutes*/,
    -
    16529  1880 /*untilYear*/,
    -
    16530  1 /*untilMonth*/,
    -
    16531  1 /*untilDay*/,
    -
    16532  0 /*untilTimeCode (0/15)*/,
    -
    16533  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16534  },
    -
    16535  // 6:42:04 - BMT 1920 Apr
    -
    16536  {
    -
    16537  nullptr /*zonePolicy*/,
    -
    16538  "BMT" /*format*/,
    -
    16539  1608 /*offsetCode (24124/15)*/,
    -
    16540  4 /*offsetRemainder (24124%15)*/,
    -
    16541  0 /*deltaMinutes*/,
    -
    16542  1920 /*untilYear*/,
    -
    16543  4 /*untilMonth*/,
    -
    16544  1 /*untilDay*/,
    -
    16545  0 /*untilTimeCode (0/15)*/,
    -
    16546  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16547  },
    -
    16548  // 7:00 - %z
    -
    16549  {
    -
    16550  nullptr /*zonePolicy*/,
    -
    16551  "" /*format*/,
    -
    16552  1680 /*offsetCode (25200/15)*/,
    -
    16553  0 /*offsetRemainder (25200%15)*/,
    -
    16554  0 /*deltaMinutes*/,
    -
    16555  32767 /*untilYear*/,
    -
    16556  1 /*untilMonth*/,
    -
    16557  1 /*untilDay*/,
    -
    16558  0 /*untilTimeCode (0/15)*/,
    -
    16559  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16560  },
    -
    16561 
    -
    16562 };
    -
    16563 
    -
    16564 static const char kZoneNameAsia_Bangkok[] ACE_TIME_PROGMEM = "\x05" "Bangkok";
    -
    16565 
    -
    16566 const complete::Info::ZoneInfo kZoneAsia_Bangkok ACE_TIME_PROGMEM = {
    -
    16567  kZoneNameAsia_Bangkok /*name*/,
    -
    16568  0x9d6e3aaf /*zoneId*/,
    -
    16569  &kZoneContext /*zoneContext*/,
    -
    16570  3 /*numEras*/,
    -
    16571  kZoneEraAsia_Bangkok /*eras*/,
    -
    16572  nullptr /*targetInfo*/,
    -
    16573 };
    -
    16574 
    -
    16575 //---------------------------------------------------------------------------
    -
    16576 // Zone name: Asia/Barnaul
    -
    16577 // Eras: 9
    -
    16578 //---------------------------------------------------------------------------
    -
    16579 
    -
    16580 static const complete::Info::ZoneEra kZoneEraAsia_Barnaul[] ACE_TIME_PROGMEM = {
    -
    16581  // 5:35:00 - LMT 1919 Dec 10
    -
    16582  {
    -
    16583  nullptr /*zonePolicy*/,
    -
    16584  "LMT" /*format*/,
    -
    16585  1340 /*offsetCode (20100/15)*/,
    -
    16586  0 /*offsetRemainder (20100%15)*/,
    -
    16587  0 /*deltaMinutes*/,
    -
    16588  1919 /*untilYear*/,
    -
    16589  12 /*untilMonth*/,
    -
    16590  10 /*untilDay*/,
    -
    16591  0 /*untilTimeCode (0/15)*/,
    -
    16592  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16593  },
    -
    16594  // 6:00 - %z 1930 Jun 21
    -
    16595  {
    -
    16596  nullptr /*zonePolicy*/,
    -
    16597  "" /*format*/,
    -
    16598  1440 /*offsetCode (21600/15)*/,
    -
    16599  0 /*offsetRemainder (21600%15)*/,
    -
    16600  0 /*deltaMinutes*/,
    -
    16601  1930 /*untilYear*/,
    -
    16602  6 /*untilMonth*/,
    -
    16603  21 /*untilDay*/,
    -
    16604  0 /*untilTimeCode (0/15)*/,
    -
    16605  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16606  },
    -
    16607  // 7:00 Russia %z 1991 Mar 31 2:00s
    -
    16608  {
    -
    16609  &kZonePolicyRussia /*zonePolicy*/,
    -
    16610  "" /*format*/,
    -
    16611  1680 /*offsetCode (25200/15)*/,
    -
    16612  0 /*offsetRemainder (25200%15)*/,
    -
    16613  0 /*deltaMinutes*/,
    -
    16614  1991 /*untilYear*/,
    -
    16615  3 /*untilMonth*/,
    -
    16616  31 /*untilDay*/,
    -
    16617  480 /*untilTimeCode (7200/15)*/,
    -
    16618  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16619  },
    -
    16620  // 6:00 Russia %z 1992 Jan 19 2:00s
    -
    16621  {
    -
    16622  &kZonePolicyRussia /*zonePolicy*/,
    -
    16623  "" /*format*/,
    -
    16624  1440 /*offsetCode (21600/15)*/,
    -
    16625  0 /*offsetRemainder (21600%15)*/,
    -
    16626  0 /*deltaMinutes*/,
    -
    16627  1992 /*untilYear*/,
    -
    16628  1 /*untilMonth*/,
    -
    16629  19 /*untilDay*/,
    -
    16630  480 /*untilTimeCode (7200/15)*/,
    -
    16631  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16632  },
    -
    16633  // 7:00 Russia %z 1995 May 28
    -
    16634  {
    -
    16635  &kZonePolicyRussia /*zonePolicy*/,
    -
    16636  "" /*format*/,
    -
    16637  1680 /*offsetCode (25200/15)*/,
    -
    16638  0 /*offsetRemainder (25200%15)*/,
    -
    16639  0 /*deltaMinutes*/,
    -
    16640  1995 /*untilYear*/,
    -
    16641  5 /*untilMonth*/,
    -
    16642  28 /*untilDay*/,
    -
    16643  0 /*untilTimeCode (0/15)*/,
    -
    16644  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16645  },
    -
    16646  // 6:00 Russia %z 2011 Mar 27 2:00s
    -
    16647  {
    -
    16648  &kZonePolicyRussia /*zonePolicy*/,
    -
    16649  "" /*format*/,
    -
    16650  1440 /*offsetCode (21600/15)*/,
    -
    16651  0 /*offsetRemainder (21600%15)*/,
    -
    16652  0 /*deltaMinutes*/,
    -
    16653  2011 /*untilYear*/,
    -
    16654  3 /*untilMonth*/,
    -
    16655  27 /*untilDay*/,
    -
    16656  480 /*untilTimeCode (7200/15)*/,
    -
    16657  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16658  },
    -
    16659  // 7:00 - %z 2014 Oct 26 2:00s
    -
    16660  {
    -
    16661  nullptr /*zonePolicy*/,
    -
    16662  "" /*format*/,
    -
    16663  1680 /*offsetCode (25200/15)*/,
    -
    16664  0 /*offsetRemainder (25200%15)*/,
    -
    16665  0 /*deltaMinutes*/,
    -
    16666  2014 /*untilYear*/,
    -
    16667  10 /*untilMonth*/,
    -
    16668  26 /*untilDay*/,
    -
    16669  480 /*untilTimeCode (7200/15)*/,
    -
    16670  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16671  },
    -
    16672  // 6:00 - %z 2016 Mar 27 2:00s
    -
    16673  {
    -
    16674  nullptr /*zonePolicy*/,
    -
    16675  "" /*format*/,
    -
    16676  1440 /*offsetCode (21600/15)*/,
    -
    16677  0 /*offsetRemainder (21600%15)*/,
    -
    16678  0 /*deltaMinutes*/,
    -
    16679  2016 /*untilYear*/,
    -
    16680  3 /*untilMonth*/,
    -
    16681  27 /*untilDay*/,
    -
    16682  480 /*untilTimeCode (7200/15)*/,
    -
    16683  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16684  },
    -
    16685  // 7:00 - %z
    -
    16686  {
    -
    16687  nullptr /*zonePolicy*/,
    -
    16688  "" /*format*/,
    -
    16689  1680 /*offsetCode (25200/15)*/,
    -
    16690  0 /*offsetRemainder (25200%15)*/,
    -
    16691  0 /*deltaMinutes*/,
    -
    16692  32767 /*untilYear*/,
    -
    16693  1 /*untilMonth*/,
    -
    16694  1 /*untilDay*/,
    -
    16695  0 /*untilTimeCode (0/15)*/,
    -
    16696  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16697  },
    -
    16698 
    -
    16699 };
    -
    16700 
    -
    16701 static const char kZoneNameAsia_Barnaul[] ACE_TIME_PROGMEM = "\x05" "Barnaul";
    -
    16702 
    -
    16703 const complete::Info::ZoneInfo kZoneAsia_Barnaul ACE_TIME_PROGMEM = {
    -
    16704  kZoneNameAsia_Barnaul /*name*/,
    -
    16705  0x9dba4997 /*zoneId*/,
    -
    16706  &kZoneContext /*zoneContext*/,
    -
    16707  9 /*numEras*/,
    -
    16708  kZoneEraAsia_Barnaul /*eras*/,
    -
    16709  nullptr /*targetInfo*/,
    -
    16710 };
    -
    16711 
    -
    16712 //---------------------------------------------------------------------------
    -
    16713 // Zone name: Asia/Beirut
    -
    16714 // Eras: 2
    -
    16715 //---------------------------------------------------------------------------
    -
    16716 
    -
    16717 static const complete::Info::ZoneEra kZoneEraAsia_Beirut[] ACE_TIME_PROGMEM = {
    -
    16718  // 2:22:00 - LMT 1880
    -
    16719  {
    -
    16720  nullptr /*zonePolicy*/,
    -
    16721  "LMT" /*format*/,
    -
    16722  568 /*offsetCode (8520/15)*/,
    -
    16723  0 /*offsetRemainder (8520%15)*/,
    -
    16724  0 /*deltaMinutes*/,
    -
    16725  1880 /*untilYear*/,
    -
    16726  1 /*untilMonth*/,
    -
    16727  1 /*untilDay*/,
    -
    16728  0 /*untilTimeCode (0/15)*/,
    -
    16729  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16730  },
    -
    16731  // 2:00 Lebanon EE%sT
    -
    16732  {
    -
    16733  &kZonePolicyLebanon /*zonePolicy*/,
    -
    16734  "EE%T" /*format*/,
    -
    16735  480 /*offsetCode (7200/15)*/,
    -
    16736  0 /*offsetRemainder (7200%15)*/,
    -
    16737  0 /*deltaMinutes*/,
    -
    16738  32767 /*untilYear*/,
    -
    16739  1 /*untilMonth*/,
    -
    16740  1 /*untilDay*/,
    -
    16741  0 /*untilTimeCode (0/15)*/,
    -
    16742  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16743  },
    -
    16744 
    -
    16745 };
    -
    16746 
    -
    16747 static const char kZoneNameAsia_Beirut[] ACE_TIME_PROGMEM = "\x05" "Beirut";
    -
    16748 
    -
    16749 const complete::Info::ZoneInfo kZoneAsia_Beirut ACE_TIME_PROGMEM = {
    -
    16750  kZoneNameAsia_Beirut /*name*/,
    -
    16751  0xa7f3d5fd /*zoneId*/,
    -
    16752  &kZoneContext /*zoneContext*/,
    -
    16753  2 /*numEras*/,
    -
    16754  kZoneEraAsia_Beirut /*eras*/,
    -
    16755  nullptr /*targetInfo*/,
    -
    16756 };
    -
    16757 
    -
    16758 //---------------------------------------------------------------------------
    -
    16759 // Zone name: Asia/Bishkek
    -
    16760 // Eras: 6
    -
    16761 //---------------------------------------------------------------------------
    -
    16762 
    -
    16763 static const complete::Info::ZoneEra kZoneEraAsia_Bishkek[] ACE_TIME_PROGMEM = {
    -
    16764  // 4:58:24 - LMT 1924 May 2
    -
    16765  {
    -
    16766  nullptr /*zonePolicy*/,
    -
    16767  "LMT" /*format*/,
    -
    16768  1193 /*offsetCode (17904/15)*/,
    -
    16769  9 /*offsetRemainder (17904%15)*/,
    -
    16770  0 /*deltaMinutes*/,
    -
    16771  1924 /*untilYear*/,
    -
    16772  5 /*untilMonth*/,
    -
    16773  2 /*untilDay*/,
    -
    16774  0 /*untilTimeCode (0/15)*/,
    -
    16775  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16776  },
    -
    16777  // 5:00 - %z 1930 Jun 21
    -
    16778  {
    -
    16779  nullptr /*zonePolicy*/,
    -
    16780  "" /*format*/,
    -
    16781  1200 /*offsetCode (18000/15)*/,
    -
    16782  0 /*offsetRemainder (18000%15)*/,
    -
    16783  0 /*deltaMinutes*/,
    -
    16784  1930 /*untilYear*/,
    -
    16785  6 /*untilMonth*/,
    -
    16786  21 /*untilDay*/,
    -
    16787  0 /*untilTimeCode (0/15)*/,
    -
    16788  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16789  },
    -
    16790  // 6:00 RussiaAsia %z 1991 Mar 31 2:00s
    -
    16791  {
    -
    16792  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16793  "" /*format*/,
    -
    16794  1440 /*offsetCode (21600/15)*/,
    -
    16795  0 /*offsetRemainder (21600%15)*/,
    -
    16796  0 /*deltaMinutes*/,
    -
    16797  1991 /*untilYear*/,
    -
    16798  3 /*untilMonth*/,
    -
    16799  31 /*untilDay*/,
    -
    16800  480 /*untilTimeCode (7200/15)*/,
    -
    16801  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16802  },
    -
    16803  // 5:00 RussiaAsia %z 1991 Aug 31 2:00
    -
    16804  {
    -
    16805  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    16806  "" /*format*/,
    -
    16807  1200 /*offsetCode (18000/15)*/,
    -
    16808  0 /*offsetRemainder (18000%15)*/,
    -
    16809  0 /*deltaMinutes*/,
    -
    16810  1991 /*untilYear*/,
    -
    16811  8 /*untilMonth*/,
    -
    16812  31 /*untilDay*/,
    -
    16813  480 /*untilTimeCode (7200/15)*/,
    -
    16814  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16815  },
    -
    16816  // 5:00 Kyrgyz %z 2005 Aug 12
    -
    16817  {
    -
    16818  &kZonePolicyKyrgyz /*zonePolicy*/,
    -
    16819  "" /*format*/,
    -
    16820  1200 /*offsetCode (18000/15)*/,
    -
    16821  0 /*offsetRemainder (18000%15)*/,
    -
    16822  0 /*deltaMinutes*/,
    -
    16823  2005 /*untilYear*/,
    -
    16824  8 /*untilMonth*/,
    -
    16825  12 /*untilDay*/,
    -
    16826  0 /*untilTimeCode (0/15)*/,
    -
    16827  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16828  },
    -
    16829  // 6:00 - %z
    -
    16830  {
    -
    16831  nullptr /*zonePolicy*/,
    -
    16832  "" /*format*/,
    -
    16833  1440 /*offsetCode (21600/15)*/,
    -
    16834  0 /*offsetRemainder (21600%15)*/,
    -
    16835  0 /*deltaMinutes*/,
    -
    16836  32767 /*untilYear*/,
    -
    16837  1 /*untilMonth*/,
    -
    16838  1 /*untilDay*/,
    -
    16839  0 /*untilTimeCode (0/15)*/,
    -
    16840  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16841  },
    -
    16842 
    -
    16843 };
    -
    16844 
    -
    16845 static const char kZoneNameAsia_Bishkek[] ACE_TIME_PROGMEM = "\x05" "Bishkek";
    -
    16846 
    -
    16847 const complete::Info::ZoneInfo kZoneAsia_Bishkek ACE_TIME_PROGMEM = {
    -
    16848  kZoneNameAsia_Bishkek /*name*/,
    -
    16849  0xb0728553 /*zoneId*/,
    -
    16850  &kZoneContext /*zoneContext*/,
    -
    16851  6 /*numEras*/,
    -
    16852  kZoneEraAsia_Bishkek /*eras*/,
    -
    16853  nullptr /*targetInfo*/,
    -
    16854 };
    -
    16855 
    -
    16856 //---------------------------------------------------------------------------
    -
    16857 // Zone name: Asia/Chita
    -
    16858 // Eras: 8
    -
    16859 //---------------------------------------------------------------------------
    -
    16860 
    -
    16861 static const complete::Info::ZoneEra kZoneEraAsia_Chita[] ACE_TIME_PROGMEM = {
    -
    16862  // 7:33:52 - LMT 1919 Dec 15
    -
    16863  {
    -
    16864  nullptr /*zonePolicy*/,
    -
    16865  "LMT" /*format*/,
    -
    16866  1815 /*offsetCode (27232/15)*/,
    -
    16867  7 /*offsetRemainder (27232%15)*/,
    -
    16868  0 /*deltaMinutes*/,
    -
    16869  1919 /*untilYear*/,
    -
    16870  12 /*untilMonth*/,
    -
    16871  15 /*untilDay*/,
    -
    16872  0 /*untilTimeCode (0/15)*/,
    -
    16873  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16874  },
    -
    16875  // 8:00 - %z 1930 Jun 21
    -
    16876  {
    -
    16877  nullptr /*zonePolicy*/,
    -
    16878  "" /*format*/,
    -
    16879  1920 /*offsetCode (28800/15)*/,
    -
    16880  0 /*offsetRemainder (28800%15)*/,
    -
    16881  0 /*deltaMinutes*/,
    -
    16882  1930 /*untilYear*/,
    -
    16883  6 /*untilMonth*/,
    -
    16884  21 /*untilDay*/,
    -
    16885  0 /*untilTimeCode (0/15)*/,
    -
    16886  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16887  },
    -
    16888  // 9:00 Russia %z 1991 Mar 31 2:00s
    -
    16889  {
    -
    16890  &kZonePolicyRussia /*zonePolicy*/,
    -
    16891  "" /*format*/,
    -
    16892  2160 /*offsetCode (32400/15)*/,
    -
    16893  0 /*offsetRemainder (32400%15)*/,
    -
    16894  0 /*deltaMinutes*/,
    -
    16895  1991 /*untilYear*/,
    -
    16896  3 /*untilMonth*/,
    -
    16897  31 /*untilDay*/,
    -
    16898  480 /*untilTimeCode (7200/15)*/,
    -
    16899  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16900  },
    -
    16901  // 8:00 Russia %z 1992 Jan 19 2:00s
    -
    16902  {
    -
    16903  &kZonePolicyRussia /*zonePolicy*/,
    -
    16904  "" /*format*/,
    -
    16905  1920 /*offsetCode (28800/15)*/,
    -
    16906  0 /*offsetRemainder (28800%15)*/,
    -
    16907  0 /*deltaMinutes*/,
    -
    16908  1992 /*untilYear*/,
    -
    16909  1 /*untilMonth*/,
    -
    16910  19 /*untilDay*/,
    -
    16911  480 /*untilTimeCode (7200/15)*/,
    -
    16912  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16913  },
    -
    16914  // 9:00 Russia %z 2011 Mar 27 2:00s
    -
    16915  {
    -
    16916  &kZonePolicyRussia /*zonePolicy*/,
    -
    16917  "" /*format*/,
    -
    16918  2160 /*offsetCode (32400/15)*/,
    -
    16919  0 /*offsetRemainder (32400%15)*/,
    -
    16920  0 /*deltaMinutes*/,
    -
    16921  2011 /*untilYear*/,
    -
    16922  3 /*untilMonth*/,
    -
    16923  27 /*untilDay*/,
    -
    16924  480 /*untilTimeCode (7200/15)*/,
    -
    16925  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16926  },
    -
    16927  // 10:00 - %z 2014 Oct 26 2:00s
    -
    16928  {
    -
    16929  nullptr /*zonePolicy*/,
    -
    16930  "" /*format*/,
    -
    16931  2400 /*offsetCode (36000/15)*/,
    -
    16932  0 /*offsetRemainder (36000%15)*/,
    -
    16933  0 /*deltaMinutes*/,
    -
    16934  2014 /*untilYear*/,
    -
    16935  10 /*untilMonth*/,
    -
    16936  26 /*untilDay*/,
    -
    16937  480 /*untilTimeCode (7200/15)*/,
    -
    16938  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    16939  },
    -
    16940  // 8:00 - %z 2016 Mar 27 2:00
    -
    16941  {
    -
    16942  nullptr /*zonePolicy*/,
    -
    16943  "" /*format*/,
    -
    16944  1920 /*offsetCode (28800/15)*/,
    -
    16945  0 /*offsetRemainder (28800%15)*/,
    -
    16946  0 /*deltaMinutes*/,
    -
    16947  2016 /*untilYear*/,
    -
    16948  3 /*untilMonth*/,
    -
    16949  27 /*untilDay*/,
    -
    16950  480 /*untilTimeCode (7200/15)*/,
    -
    16951  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16952  },
    -
    16953  // 9:00 - %z
    -
    16954  {
    -
    16955  nullptr /*zonePolicy*/,
    -
    16956  "" /*format*/,
    -
    16957  2160 /*offsetCode (32400/15)*/,
    -
    16958  0 /*offsetRemainder (32400%15)*/,
    -
    16959  0 /*deltaMinutes*/,
    -
    16960  32767 /*untilYear*/,
    -
    16961  1 /*untilMonth*/,
    -
    16962  1 /*untilDay*/,
    -
    16963  0 /*untilTimeCode (0/15)*/,
    -
    16964  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16965  },
    -
    16966 
    -
    16967 };
    -
    16968 
    -
    16969 static const char kZoneNameAsia_Chita[] ACE_TIME_PROGMEM = "\x05" "Chita";
    -
    16970 
    -
    16971 const complete::Info::ZoneInfo kZoneAsia_Chita ACE_TIME_PROGMEM = {
    -
    16972  kZoneNameAsia_Chita /*name*/,
    -
    16973  0x14ae863b /*zoneId*/,
    -
    16974  &kZoneContext /*zoneContext*/,
    -
    16975  8 /*numEras*/,
    -
    16976  kZoneEraAsia_Chita /*eras*/,
    -
    16977  nullptr /*targetInfo*/,
    -
    16978 };
    -
    16979 
    -
    16980 //---------------------------------------------------------------------------
    -
    16981 // Zone name: Asia/Colombo
    -
    16982 // Eras: 9
    -
    16983 //---------------------------------------------------------------------------
    -
    16984 
    -
    16985 static const complete::Info::ZoneEra kZoneEraAsia_Colombo[] ACE_TIME_PROGMEM = {
    -
    16986  // 5:19:24 - LMT 1880
    -
    16987  {
    -
    16988  nullptr /*zonePolicy*/,
    -
    16989  "LMT" /*format*/,
    -
    16990  1277 /*offsetCode (19164/15)*/,
    -
    16991  9 /*offsetRemainder (19164%15)*/,
    -
    16992  0 /*deltaMinutes*/,
    -
    16993  1880 /*untilYear*/,
    -
    16994  1 /*untilMonth*/,
    -
    16995  1 /*untilDay*/,
    -
    16996  0 /*untilTimeCode (0/15)*/,
    -
    16997  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16998  },
    -
    16999  // 5:19:32 - MMT 1906
    -
    17000  {
    -
    17001  nullptr /*zonePolicy*/,
    -
    17002  "MMT" /*format*/,
    -
    17003  1278 /*offsetCode (19172/15)*/,
    -
    17004  2 /*offsetRemainder (19172%15)*/,
    -
    17005  0 /*deltaMinutes*/,
    -
    17006  1906 /*untilYear*/,
    -
    17007  1 /*untilMonth*/,
    -
    17008  1 /*untilDay*/,
    -
    17009  0 /*untilTimeCode (0/15)*/,
    -
    17010  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17011  },
    -
    17012  // 5:30 - %z 1942 Jan 5
    -
    17013  {
    -
    17014  nullptr /*zonePolicy*/,
    -
    17015  "" /*format*/,
    -
    17016  1320 /*offsetCode (19800/15)*/,
    -
    17017  0 /*offsetRemainder (19800%15)*/,
    -
    17018  0 /*deltaMinutes*/,
    -
    17019  1942 /*untilYear*/,
    -
    17020  1 /*untilMonth*/,
    -
    17021  5 /*untilDay*/,
    -
    17022  0 /*untilTimeCode (0/15)*/,
    -
    17023  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17024  },
    -
    17025  // 5:30 0:30 %z 1942 Sep
    -
    17026  {
    -
    17027  nullptr /*zonePolicy*/,
    -
    17028  "" /*format*/,
    -
    17029  1320 /*offsetCode (19800/15)*/,
    -
    17030  0 /*offsetRemainder (19800%15)*/,
    -
    17031  30 /*deltaMinutes*/,
    -
    17032  1942 /*untilYear*/,
    -
    17033  9 /*untilMonth*/,
    -
    17034  1 /*untilDay*/,
    -
    17035  0 /*untilTimeCode (0/15)*/,
    -
    17036  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17037  },
    -
    17038  // 5:30 1:00 %z 1945 Oct 16 2:00
    -
    17039  {
    -
    17040  nullptr /*zonePolicy*/,
    -
    17041  "" /*format*/,
    -
    17042  1320 /*offsetCode (19800/15)*/,
    -
    17043  0 /*offsetRemainder (19800%15)*/,
    -
    17044  60 /*deltaMinutes*/,
    -
    17045  1945 /*untilYear*/,
    -
    17046  10 /*untilMonth*/,
    -
    17047  16 /*untilDay*/,
    -
    17048  480 /*untilTimeCode (7200/15)*/,
    -
    17049  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17050  },
    -
    17051  // 5:30 - %z 1996 May 25 0:00
    -
    17052  {
    -
    17053  nullptr /*zonePolicy*/,
    -
    17054  "" /*format*/,
    -
    17055  1320 /*offsetCode (19800/15)*/,
    -
    17056  0 /*offsetRemainder (19800%15)*/,
    -
    17057  0 /*deltaMinutes*/,
    -
    17058  1996 /*untilYear*/,
    -
    17059  5 /*untilMonth*/,
    -
    17060  25 /*untilDay*/,
    -
    17061  0 /*untilTimeCode (0/15)*/,
    -
    17062  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17063  },
    -
    17064  // 6:30 - %z 1996 Oct 26 0:30
    -
    17065  {
    -
    17066  nullptr /*zonePolicy*/,
    -
    17067  "" /*format*/,
    -
    17068  1560 /*offsetCode (23400/15)*/,
    -
    17069  0 /*offsetRemainder (23400%15)*/,
    -
    17070  0 /*deltaMinutes*/,
    -
    17071  1996 /*untilYear*/,
    -
    17072  10 /*untilMonth*/,
    -
    17073  26 /*untilDay*/,
    -
    17074  120 /*untilTimeCode (1800/15)*/,
    -
    17075  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17076  },
    -
    17077  // 6:00 - %z 2006 Apr 15 0:30
    -
    17078  {
    -
    17079  nullptr /*zonePolicy*/,
    -
    17080  "" /*format*/,
    -
    17081  1440 /*offsetCode (21600/15)*/,
    -
    17082  0 /*offsetRemainder (21600%15)*/,
    -
    17083  0 /*deltaMinutes*/,
    -
    17084  2006 /*untilYear*/,
    -
    17085  4 /*untilMonth*/,
    -
    17086  15 /*untilDay*/,
    -
    17087  120 /*untilTimeCode (1800/15)*/,
    -
    17088  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17089  },
    -
    17090  // 5:30 - %z
    -
    17091  {
    -
    17092  nullptr /*zonePolicy*/,
    -
    17093  "" /*format*/,
    -
    17094  1320 /*offsetCode (19800/15)*/,
    -
    17095  0 /*offsetRemainder (19800%15)*/,
    -
    17096  0 /*deltaMinutes*/,
    -
    17097  32767 /*untilYear*/,
    -
    17098  1 /*untilMonth*/,
    -
    17099  1 /*untilDay*/,
    -
    17100  0 /*untilTimeCode (0/15)*/,
    -
    17101  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17102  },
    -
    17103 
    -
    17104 };
    -
    17105 
    -
    17106 static const char kZoneNameAsia_Colombo[] ACE_TIME_PROGMEM = "\x05" "Colombo";
    -
    17107 
    -
    17108 const complete::Info::ZoneInfo kZoneAsia_Colombo ACE_TIME_PROGMEM = {
    -
    17109  kZoneNameAsia_Colombo /*name*/,
    -
    17110  0x0af0e91d /*zoneId*/,
    -
    17111  &kZoneContext /*zoneContext*/,
    -
    17112  9 /*numEras*/,
    -
    17113  kZoneEraAsia_Colombo /*eras*/,
    -
    17114  nullptr /*targetInfo*/,
    -
    17115 };
    -
    17116 
    -
    17117 //---------------------------------------------------------------------------
    -
    17118 // Zone name: Asia/Damascus
    -
    17119 // Eras: 3
    -
    17120 //---------------------------------------------------------------------------
    -
    17121 
    -
    17122 static const complete::Info::ZoneEra kZoneEraAsia_Damascus[] ACE_TIME_PROGMEM = {
    -
    17123  // 2:25:12 - LMT 1920
    -
    17124  {
    -
    17125  nullptr /*zonePolicy*/,
    -
    17126  "LMT" /*format*/,
    -
    17127  580 /*offsetCode (8712/15)*/,
    -
    17128  12 /*offsetRemainder (8712%15)*/,
    -
    17129  0 /*deltaMinutes*/,
    -
    17130  1920 /*untilYear*/,
    -
    17131  1 /*untilMonth*/,
    -
    17132  1 /*untilDay*/,
    -
    17133  0 /*untilTimeCode (0/15)*/,
    -
    17134  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17135  },
    -
    17136  // 2:00 Syria EE%sT 2022 Oct 28 0:00
    -
    17137  {
    -
    17138  &kZonePolicySyria /*zonePolicy*/,
    -
    17139  "EE%T" /*format*/,
    -
    17140  480 /*offsetCode (7200/15)*/,
    -
    17141  0 /*offsetRemainder (7200%15)*/,
    -
    17142  0 /*deltaMinutes*/,
    -
    17143  2022 /*untilYear*/,
    -
    17144  10 /*untilMonth*/,
    -
    17145  28 /*untilDay*/,
    -
    17146  0 /*untilTimeCode (0/15)*/,
    -
    17147  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17148  },
    -
    17149  // 3:00 - %z
    -
    17150  {
    -
    17151  nullptr /*zonePolicy*/,
    -
    17152  "" /*format*/,
    -
    17153  720 /*offsetCode (10800/15)*/,
    -
    17154  0 /*offsetRemainder (10800%15)*/,
    -
    17155  0 /*deltaMinutes*/,
    -
    17156  32767 /*untilYear*/,
    -
    17157  1 /*untilMonth*/,
    -
    17158  1 /*untilDay*/,
    -
    17159  0 /*untilTimeCode (0/15)*/,
    -
    17160  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17161  },
    -
    17162 
    -
    17163 };
    -
    17164 
    -
    17165 static const char kZoneNameAsia_Damascus[] ACE_TIME_PROGMEM = "\x05" "Damascus";
    -
    17166 
    -
    17167 const complete::Info::ZoneInfo kZoneAsia_Damascus ACE_TIME_PROGMEM = {
    -
    17168  kZoneNameAsia_Damascus /*name*/,
    -
    17169  0x20fbb063 /*zoneId*/,
    -
    17170  &kZoneContext /*zoneContext*/,
    -
    17171  3 /*numEras*/,
    -
    17172  kZoneEraAsia_Damascus /*eras*/,
    -
    17173  nullptr /*targetInfo*/,
    -
    17174 };
    -
    17175 
    -
    17176 //---------------------------------------------------------------------------
    -
    17177 // Zone name: Asia/Dhaka
    -
    17178 // Eras: 7
    -
    17179 //---------------------------------------------------------------------------
    -
    17180 
    -
    17181 static const complete::Info::ZoneEra kZoneEraAsia_Dhaka[] ACE_TIME_PROGMEM = {
    -
    17182  // 6:01:40 - LMT 1890
    -
    17183  {
    -
    17184  nullptr /*zonePolicy*/,
    -
    17185  "LMT" /*format*/,
    -
    17186  1446 /*offsetCode (21700/15)*/,
    -
    17187  10 /*offsetRemainder (21700%15)*/,
    -
    17188  0 /*deltaMinutes*/,
    -
    17189  1890 /*untilYear*/,
    -
    17190  1 /*untilMonth*/,
    -
    17191  1 /*untilDay*/,
    -
    17192  0 /*untilTimeCode (0/15)*/,
    -
    17193  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17194  },
    -
    17195  // 5:53:20 - HMT 1941 Oct
    -
    17196  {
    -
    17197  nullptr /*zonePolicy*/,
    -
    17198  "HMT" /*format*/,
    -
    17199  1413 /*offsetCode (21200/15)*/,
    -
    17200  5 /*offsetRemainder (21200%15)*/,
    -
    17201  0 /*deltaMinutes*/,
    -
    17202  1941 /*untilYear*/,
    -
    17203  10 /*untilMonth*/,
    -
    17204  1 /*untilDay*/,
    -
    17205  0 /*untilTimeCode (0/15)*/,
    -
    17206  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17207  },
    -
    17208  // 6:30 - %z 1942 May 15
    -
    17209  {
    -
    17210  nullptr /*zonePolicy*/,
    -
    17211  "" /*format*/,
    -
    17212  1560 /*offsetCode (23400/15)*/,
    -
    17213  0 /*offsetRemainder (23400%15)*/,
    -
    17214  0 /*deltaMinutes*/,
    -
    17215  1942 /*untilYear*/,
    -
    17216  5 /*untilMonth*/,
    -
    17217  15 /*untilDay*/,
    -
    17218  0 /*untilTimeCode (0/15)*/,
    -
    17219  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17220  },
    -
    17221  // 5:30 - %z 1942 Sep
    -
    17222  {
    -
    17223  nullptr /*zonePolicy*/,
    -
    17224  "" /*format*/,
    -
    17225  1320 /*offsetCode (19800/15)*/,
    -
    17226  0 /*offsetRemainder (19800%15)*/,
    -
    17227  0 /*deltaMinutes*/,
    -
    17228  1942 /*untilYear*/,
    -
    17229  9 /*untilMonth*/,
    -
    17230  1 /*untilDay*/,
    -
    17231  0 /*untilTimeCode (0/15)*/,
    -
    17232  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17233  },
    -
    17234  // 6:30 - %z 1951 Sep 30
    -
    17235  {
    -
    17236  nullptr /*zonePolicy*/,
    -
    17237  "" /*format*/,
    -
    17238  1560 /*offsetCode (23400/15)*/,
    -
    17239  0 /*offsetRemainder (23400%15)*/,
    -
    17240  0 /*deltaMinutes*/,
    -
    17241  1951 /*untilYear*/,
    -
    17242  9 /*untilMonth*/,
    -
    17243  30 /*untilDay*/,
    -
    17244  0 /*untilTimeCode (0/15)*/,
    -
    17245  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17246  },
    -
    17247  // 6:00 - %z 2009
    -
    17248  {
    -
    17249  nullptr /*zonePolicy*/,
    -
    17250  "" /*format*/,
    -
    17251  1440 /*offsetCode (21600/15)*/,
    -
    17252  0 /*offsetRemainder (21600%15)*/,
    -
    17253  0 /*deltaMinutes*/,
    -
    17254  2009 /*untilYear*/,
    -
    17255  1 /*untilMonth*/,
    -
    17256  1 /*untilDay*/,
    -
    17257  0 /*untilTimeCode (0/15)*/,
    -
    17258  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17259  },
    -
    17260  // 6:00 Dhaka %z
    -
    17261  {
    -
    17262  &kZonePolicyDhaka /*zonePolicy*/,
    -
    17263  "" /*format*/,
    -
    17264  1440 /*offsetCode (21600/15)*/,
    -
    17265  0 /*offsetRemainder (21600%15)*/,
    -
    17266  0 /*deltaMinutes*/,
    -
    17267  32767 /*untilYear*/,
    -
    17268  1 /*untilMonth*/,
    -
    17269  1 /*untilDay*/,
    -
    17270  0 /*untilTimeCode (0/15)*/,
    -
    17271  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17272  },
    -
    17273 
    -
    17274 };
    -
    17275 
    -
    17276 static const char kZoneNameAsia_Dhaka[] ACE_TIME_PROGMEM = "\x05" "Dhaka";
    -
    17277 
    -
    17278 const complete::Info::ZoneInfo kZoneAsia_Dhaka ACE_TIME_PROGMEM = {
    -
    17279  kZoneNameAsia_Dhaka /*name*/,
    -
    17280  0x14c07b8b /*zoneId*/,
    -
    17281  &kZoneContext /*zoneContext*/,
    -
    17282  7 /*numEras*/,
    -
    17283  kZoneEraAsia_Dhaka /*eras*/,
    -
    17284  nullptr /*targetInfo*/,
    -
    17285 };
    -
    17286 
    -
    17287 //---------------------------------------------------------------------------
    -
    17288 // Zone name: Asia/Dili
    -
    17289 // Eras: 5
    -
    17290 //---------------------------------------------------------------------------
    -
    17291 
    -
    17292 static const complete::Info::ZoneEra kZoneEraAsia_Dili[] ACE_TIME_PROGMEM = {
    -
    17293  // 8:22:20 - LMT 1911 Dec 31 16:00u
    -
    17294  {
    -
    17295  nullptr /*zonePolicy*/,
    -
    17296  "LMT" /*format*/,
    -
    17297  2009 /*offsetCode (30140/15)*/,
    -
    17298  5 /*offsetRemainder (30140%15)*/,
    -
    17299  0 /*deltaMinutes*/,
    -
    17300  1911 /*untilYear*/,
    -
    17301  12 /*untilMonth*/,
    -
    17302  31 /*untilDay*/,
    -
    17303  3840 /*untilTimeCode (57600/15)*/,
    -
    17304  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    17305  },
    -
    17306  // 8:00 - %z 1942 Feb 21 23:00
    -
    17307  {
    -
    17308  nullptr /*zonePolicy*/,
    -
    17309  "" /*format*/,
    -
    17310  1920 /*offsetCode (28800/15)*/,
    -
    17311  0 /*offsetRemainder (28800%15)*/,
    -
    17312  0 /*deltaMinutes*/,
    -
    17313  1942 /*untilYear*/,
    -
    17314  2 /*untilMonth*/,
    -
    17315  21 /*untilDay*/,
    -
    17316  5520 /*untilTimeCode (82800/15)*/,
    -
    17317  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17318  },
    -
    17319  // 9:00 - %z 1976 May 3
    -
    17320  {
    -
    17321  nullptr /*zonePolicy*/,
    -
    17322  "" /*format*/,
    -
    17323  2160 /*offsetCode (32400/15)*/,
    -
    17324  0 /*offsetRemainder (32400%15)*/,
    -
    17325  0 /*deltaMinutes*/,
    -
    17326  1976 /*untilYear*/,
    -
    17327  5 /*untilMonth*/,
    -
    17328  3 /*untilDay*/,
    -
    17329  0 /*untilTimeCode (0/15)*/,
    -
    17330  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17331  },
    -
    17332  // 8:00 - %z 2000 Sep 17 0:00
    -
    17333  {
    -
    17334  nullptr /*zonePolicy*/,
    -
    17335  "" /*format*/,
    -
    17336  1920 /*offsetCode (28800/15)*/,
    -
    17337  0 /*offsetRemainder (28800%15)*/,
    -
    17338  0 /*deltaMinutes*/,
    -
    17339  2000 /*untilYear*/,
    -
    17340  9 /*untilMonth*/,
    -
    17341  17 /*untilDay*/,
    -
    17342  0 /*untilTimeCode (0/15)*/,
    -
    17343  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17344  },
    -
    17345  // 9:00 - %z
    -
    17346  {
    -
    17347  nullptr /*zonePolicy*/,
    -
    17348  "" /*format*/,
    -
    17349  2160 /*offsetCode (32400/15)*/,
    -
    17350  0 /*offsetRemainder (32400%15)*/,
    -
    17351  0 /*deltaMinutes*/,
    -
    17352  32767 /*untilYear*/,
    -
    17353  1 /*untilMonth*/,
    -
    17354  1 /*untilDay*/,
    -
    17355  0 /*untilTimeCode (0/15)*/,
    -
    17356  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17357  },
    -
    17358 
    -
    17359 };
    -
    17360 
    -
    17361 static const char kZoneNameAsia_Dili[] ACE_TIME_PROGMEM = "\x05" "Dili";
    -
    17362 
    -
    17363 const complete::Info::ZoneInfo kZoneAsia_Dili ACE_TIME_PROGMEM = {
    -
    17364  kZoneNameAsia_Dili /*name*/,
    -
    17365  0x1fa8c394 /*zoneId*/,
    -
    17366  &kZoneContext /*zoneContext*/,
    -
    17367  5 /*numEras*/,
    -
    17368  kZoneEraAsia_Dili /*eras*/,
    -
    17369  nullptr /*targetInfo*/,
    -
    17370 };
    -
    17371 
    -
    17372 //---------------------------------------------------------------------------
    -
    17373 // Zone name: Asia/Dubai
    -
    17374 // Eras: 2
    -
    17375 //---------------------------------------------------------------------------
    -
    17376 
    -
    17377 static const complete::Info::ZoneEra kZoneEraAsia_Dubai[] ACE_TIME_PROGMEM = {
    -
    17378  // 3:41:12 - LMT 1920
    -
    17379  {
    -
    17380  nullptr /*zonePolicy*/,
    -
    17381  "LMT" /*format*/,
    -
    17382  884 /*offsetCode (13272/15)*/,
    -
    17383  12 /*offsetRemainder (13272%15)*/,
    -
    17384  0 /*deltaMinutes*/,
    -
    17385  1920 /*untilYear*/,
    -
    17386  1 /*untilMonth*/,
    -
    17387  1 /*untilDay*/,
    -
    17388  0 /*untilTimeCode (0/15)*/,
    -
    17389  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17390  },
    -
    17391  // 4:00 - %z
    -
    17392  {
    -
    17393  nullptr /*zonePolicy*/,
    -
    17394  "" /*format*/,
    -
    17395  960 /*offsetCode (14400/15)*/,
    -
    17396  0 /*offsetRemainder (14400%15)*/,
    -
    17397  0 /*deltaMinutes*/,
    -
    17398  32767 /*untilYear*/,
    -
    17399  1 /*untilMonth*/,
    -
    17400  1 /*untilDay*/,
    -
    17401  0 /*untilTimeCode (0/15)*/,
    -
    17402  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17403  },
    -
    17404 
    -
    17405 };
    -
    17406 
    -
    17407 static const char kZoneNameAsia_Dubai[] ACE_TIME_PROGMEM = "\x05" "Dubai";
    -
    17408 
    -
    17409 const complete::Info::ZoneInfo kZoneAsia_Dubai ACE_TIME_PROGMEM = {
    -
    17410  kZoneNameAsia_Dubai /*name*/,
    -
    17411  0x14c79f77 /*zoneId*/,
    -
    17412  &kZoneContext /*zoneContext*/,
    -
    17413  2 /*numEras*/,
    -
    17414  kZoneEraAsia_Dubai /*eras*/,
    -
    17415  nullptr /*targetInfo*/,
    -
    17416 };
    -
    17417 
    -
    17418 //---------------------------------------------------------------------------
    -
    17419 // Zone name: Asia/Dushanbe
    -
    17420 // Eras: 5
    -
    17421 //---------------------------------------------------------------------------
    -
    17422 
    -
    17423 static const complete::Info::ZoneEra kZoneEraAsia_Dushanbe[] ACE_TIME_PROGMEM = {
    -
    17424  // 4:35:12 - LMT 1924 May 2
    -
    17425  {
    -
    17426  nullptr /*zonePolicy*/,
    -
    17427  "LMT" /*format*/,
    -
    17428  1100 /*offsetCode (16512/15)*/,
    -
    17429  12 /*offsetRemainder (16512%15)*/,
    -
    17430  0 /*deltaMinutes*/,
    -
    17431  1924 /*untilYear*/,
    -
    17432  5 /*untilMonth*/,
    -
    17433  2 /*untilDay*/,
    -
    17434  0 /*untilTimeCode (0/15)*/,
    -
    17435  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17436  },
    -
    17437  // 5:00 - %z 1930 Jun 21
    -
    17438  {
    -
    17439  nullptr /*zonePolicy*/,
    -
    17440  "" /*format*/,
    -
    17441  1200 /*offsetCode (18000/15)*/,
    -
    17442  0 /*offsetRemainder (18000%15)*/,
    -
    17443  0 /*deltaMinutes*/,
    -
    17444  1930 /*untilYear*/,
    -
    17445  6 /*untilMonth*/,
    -
    17446  21 /*untilDay*/,
    -
    17447  0 /*untilTimeCode (0/15)*/,
    -
    17448  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17449  },
    -
    17450  // 6:00 RussiaAsia %z 1991 Mar 31 2:00s
    -
    17451  {
    -
    17452  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    17453  "" /*format*/,
    -
    17454  1440 /*offsetCode (21600/15)*/,
    -
    17455  0 /*offsetRemainder (21600%15)*/,
    -
    17456  0 /*deltaMinutes*/,
    -
    17457  1991 /*untilYear*/,
    -
    17458  3 /*untilMonth*/,
    -
    17459  31 /*untilDay*/,
    -
    17460  480 /*untilTimeCode (7200/15)*/,
    -
    17461  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    17462  },
    -
    17463  // 5:00 1:00 %z 1991 Sep 9 2:00s
    -
    17464  {
    -
    17465  nullptr /*zonePolicy*/,
    -
    17466  "" /*format*/,
    -
    17467  1200 /*offsetCode (18000/15)*/,
    -
    17468  0 /*offsetRemainder (18000%15)*/,
    -
    17469  60 /*deltaMinutes*/,
    -
    17470  1991 /*untilYear*/,
    -
    17471  9 /*untilMonth*/,
    -
    17472  9 /*untilDay*/,
    -
    17473  480 /*untilTimeCode (7200/15)*/,
    -
    17474  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    17475  },
    -
    17476  // 5:00 - %z
    -
    17477  {
    -
    17478  nullptr /*zonePolicy*/,
    -
    17479  "" /*format*/,
    -
    17480  1200 /*offsetCode (18000/15)*/,
    -
    17481  0 /*offsetRemainder (18000%15)*/,
    -
    17482  0 /*deltaMinutes*/,
    -
    17483  32767 /*untilYear*/,
    -
    17484  1 /*untilMonth*/,
    -
    17485  1 /*untilDay*/,
    -
    17486  0 /*untilTimeCode (0/15)*/,
    -
    17487  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17488  },
    -
    17489 
    -
    17490 };
    -
    17491 
    -
    17492 static const char kZoneNameAsia_Dushanbe[] ACE_TIME_PROGMEM = "\x05" "Dushanbe";
    -
    17493 
    -
    17494 const complete::Info::ZoneInfo kZoneAsia_Dushanbe ACE_TIME_PROGMEM = {
    -
    17495  kZoneNameAsia_Dushanbe /*name*/,
    -
    17496  0x32fc5c3c /*zoneId*/,
    -
    17497  &kZoneContext /*zoneContext*/,
    -
    17498  5 /*numEras*/,
    -
    17499  kZoneEraAsia_Dushanbe /*eras*/,
    -
    17500  nullptr /*targetInfo*/,
    -
    17501 };
    -
    17502 
    -
    17503 //---------------------------------------------------------------------------
    -
    17504 // Zone name: Asia/Famagusta
    -
    17505 // Eras: 5
    -
    17506 //---------------------------------------------------------------------------
    -
    17507 
    -
    17508 static const complete::Info::ZoneEra kZoneEraAsia_Famagusta[] ACE_TIME_PROGMEM = {
    -
    17509  // 2:15:48 - LMT 1921 Nov 14
    -
    17510  {
    -
    17511  nullptr /*zonePolicy*/,
    -
    17512  "LMT" /*format*/,
    -
    17513  543 /*offsetCode (8148/15)*/,
    -
    17514  3 /*offsetRemainder (8148%15)*/,
    -
    17515  0 /*deltaMinutes*/,
    -
    17516  1921 /*untilYear*/,
    -
    17517  11 /*untilMonth*/,
    -
    17518  14 /*untilDay*/,
    -
    17519  0 /*untilTimeCode (0/15)*/,
    -
    17520  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17521  },
    -
    17522  // 2:00 Cyprus EE%sT 1998 Sep
    -
    17523  {
    -
    17524  &kZonePolicyCyprus /*zonePolicy*/,
    -
    17525  "EE%T" /*format*/,
    -
    17526  480 /*offsetCode (7200/15)*/,
    -
    17527  0 /*offsetRemainder (7200%15)*/,
    -
    17528  0 /*deltaMinutes*/,
    -
    17529  1998 /*untilYear*/,
    -
    17530  9 /*untilMonth*/,
    -
    17531  1 /*untilDay*/,
    -
    17532  0 /*untilTimeCode (0/15)*/,
    -
    17533  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17534  },
    -
    17535  // 2:00 EUAsia EE%sT 2016 Sep 8
    -
    17536  {
    -
    17537  &kZonePolicyEUAsia /*zonePolicy*/,
    -
    17538  "EE%T" /*format*/,
    -
    17539  480 /*offsetCode (7200/15)*/,
    -
    17540  0 /*offsetRemainder (7200%15)*/,
    -
    17541  0 /*deltaMinutes*/,
    -
    17542  2016 /*untilYear*/,
    -
    17543  9 /*untilMonth*/,
    -
    17544  8 /*untilDay*/,
    -
    17545  0 /*untilTimeCode (0/15)*/,
    -
    17546  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17547  },
    -
    17548  // 3:00 - %z 2017 Oct 29 1:00u
    -
    17549  {
    -
    17550  nullptr /*zonePolicy*/,
    -
    17551  "" /*format*/,
    -
    17552  720 /*offsetCode (10800/15)*/,
    -
    17553  0 /*offsetRemainder (10800%15)*/,
    -
    17554  0 /*deltaMinutes*/,
    -
    17555  2017 /*untilYear*/,
    -
    17556  10 /*untilMonth*/,
    -
    17557  29 /*untilDay*/,
    -
    17558  240 /*untilTimeCode (3600/15)*/,
    -
    17559  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    17560  },
    -
    17561  // 2:00 EUAsia EE%sT
    -
    17562  {
    -
    17563  &kZonePolicyEUAsia /*zonePolicy*/,
    -
    17564  "EE%T" /*format*/,
    -
    17565  480 /*offsetCode (7200/15)*/,
    -
    17566  0 /*offsetRemainder (7200%15)*/,
    -
    17567  0 /*deltaMinutes*/,
    -
    17568  32767 /*untilYear*/,
    -
    17569  1 /*untilMonth*/,
    -
    17570  1 /*untilDay*/,
    -
    17571  0 /*untilTimeCode (0/15)*/,
    -
    17572  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17573  },
    -
    17574 
    -
    17575 };
    -
    17576 
    -
    17577 static const char kZoneNameAsia_Famagusta[] ACE_TIME_PROGMEM = "\x05" "Famagusta";
    -
    17578 
    -
    17579 const complete::Info::ZoneInfo kZoneAsia_Famagusta ACE_TIME_PROGMEM = {
    -
    17580  kZoneNameAsia_Famagusta /*name*/,
    -
    17581  0x289b4f8b /*zoneId*/,
    -
    17582  &kZoneContext /*zoneContext*/,
    -
    17583  5 /*numEras*/,
    -
    17584  kZoneEraAsia_Famagusta /*eras*/,
    -
    17585  nullptr /*targetInfo*/,
    -
    17586 };
    -
    17587 
    -
    17588 //---------------------------------------------------------------------------
    -
    17589 // Zone name: Asia/Gaza
    -
    17590 // Eras: 12
    -
    17591 //---------------------------------------------------------------------------
    -
    17592 
    -
    17593 static const complete::Info::ZoneEra kZoneEraAsia_Gaza[] ACE_TIME_PROGMEM = {
    -
    17594  // 2:17:52 - LMT 1900 Oct
    -
    17595  {
    -
    17596  nullptr /*zonePolicy*/,
    -
    17597  "LMT" /*format*/,
    -
    17598  551 /*offsetCode (8272/15)*/,
    -
    17599  7 /*offsetRemainder (8272%15)*/,
    -
    17600  0 /*deltaMinutes*/,
    -
    17601  1900 /*untilYear*/,
    -
    17602  10 /*untilMonth*/,
    -
    17603  1 /*untilDay*/,
    -
    17604  0 /*untilTimeCode (0/15)*/,
    -
    17605  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17606  },
    -
    17607  // 2:00 Zion EET/EEST 1948 May 15
    -
    17608  {
    -
    17609  &kZonePolicyZion /*zonePolicy*/,
    -
    17610  "EET/EEST" /*format*/,
    -
    17611  480 /*offsetCode (7200/15)*/,
    -
    17612  0 /*offsetRemainder (7200%15)*/,
    -
    17613  0 /*deltaMinutes*/,
    -
    17614  1948 /*untilYear*/,
    -
    17615  5 /*untilMonth*/,
    -
    17616  15 /*untilDay*/,
    -
    17617  0 /*untilTimeCode (0/15)*/,
    -
    17618  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17619  },
    -
    17620  // 2:00 EgyptAsia EE%sT 1967 Jun 5
    -
    17621  {
    -
    17622  &kZonePolicyEgyptAsia /*zonePolicy*/,
    -
    17623  "EE%T" /*format*/,
    -
    17624  480 /*offsetCode (7200/15)*/,
    -
    17625  0 /*offsetRemainder (7200%15)*/,
    -
    17626  0 /*deltaMinutes*/,
    -
    17627  1967 /*untilYear*/,
    -
    17628  6 /*untilMonth*/,
    -
    17629  5 /*untilDay*/,
    -
    17630  0 /*untilTimeCode (0/15)*/,
    -
    17631  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17632  },
    -
    17633  // 2:00 Zion I%sT 1996
    -
    17634  {
    -
    17635  &kZonePolicyZion /*zonePolicy*/,
    -
    17636  "I%T" /*format*/,
    -
    17637  480 /*offsetCode (7200/15)*/,
    -
    17638  0 /*offsetRemainder (7200%15)*/,
    -
    17639  0 /*deltaMinutes*/,
    -
    17640  1996 /*untilYear*/,
    -
    17641  1 /*untilMonth*/,
    -
    17642  1 /*untilDay*/,
    -
    17643  0 /*untilTimeCode (0/15)*/,
    -
    17644  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17645  },
    -
    17646  // 2:00 Jordan EE%sT 1999
    -
    17647  {
    -
    17648  &kZonePolicyJordan /*zonePolicy*/,
    -
    17649  "EE%T" /*format*/,
    -
    17650  480 /*offsetCode (7200/15)*/,
    -
    17651  0 /*offsetRemainder (7200%15)*/,
    -
    17652  0 /*deltaMinutes*/,
    -
    17653  1999 /*untilYear*/,
    -
    17654  1 /*untilMonth*/,
    -
    17655  1 /*untilDay*/,
    -
    17656  0 /*untilTimeCode (0/15)*/,
    -
    17657  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17658  },
    -
    17659  // 2:00 Palestine EE%sT 2008 Aug 29 0:00
    -
    17660  {
    -
    17661  &kZonePolicyPalestine /*zonePolicy*/,
    -
    17662  "EE%T" /*format*/,
    -
    17663  480 /*offsetCode (7200/15)*/,
    -
    17664  0 /*offsetRemainder (7200%15)*/,
    -
    17665  0 /*deltaMinutes*/,
    -
    17666  2008 /*untilYear*/,
    -
    17667  8 /*untilMonth*/,
    -
    17668  29 /*untilDay*/,
    -
    17669  0 /*untilTimeCode (0/15)*/,
    -
    17670  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17671  },
    -
    17672  // 2:00 - EET 2008 Sep
    -
    17673  {
    -
    17674  nullptr /*zonePolicy*/,
    -
    17675  "EET" /*format*/,
    -
    17676  480 /*offsetCode (7200/15)*/,
    -
    17677  0 /*offsetRemainder (7200%15)*/,
    -
    17678  0 /*deltaMinutes*/,
    -
    17679  2008 /*untilYear*/,
    -
    17680  9 /*untilMonth*/,
    -
    17681  1 /*untilDay*/,
    -
    17682  0 /*untilTimeCode (0/15)*/,
    -
    17683  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17684  },
    -
    17685  // 2:00 Palestine EE%sT 2010
    -
    17686  {
    -
    17687  &kZonePolicyPalestine /*zonePolicy*/,
    -
    17688  "EE%T" /*format*/,
    -
    17689  480 /*offsetCode (7200/15)*/,
    -
    17690  0 /*offsetRemainder (7200%15)*/,
    -
    17691  0 /*deltaMinutes*/,
    -
    17692  2010 /*untilYear*/,
    -
    17693  1 /*untilMonth*/,
    -
    17694  1 /*untilDay*/,
    -
    17695  0 /*untilTimeCode (0/15)*/,
    -
    17696  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17697  },
    -
    17698  // 2:00 - EET 2010 Mar 27 0:01
    -
    17699  {
    -
    17700  nullptr /*zonePolicy*/,
    -
    17701  "EET" /*format*/,
    -
    17702  480 /*offsetCode (7200/15)*/,
    -
    17703  0 /*offsetRemainder (7200%15)*/,
    -
    17704  0 /*deltaMinutes*/,
    -
    17705  2010 /*untilYear*/,
    -
    17706  3 /*untilMonth*/,
    -
    17707  27 /*untilDay*/,
    -
    17708  4 /*untilTimeCode (60/15)*/,
    -
    17709  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17710  },
    -
    17711  // 2:00 Palestine EE%sT 2011 Aug 1
    -
    17712  {
    -
    17713  &kZonePolicyPalestine /*zonePolicy*/,
    -
    17714  "EE%T" /*format*/,
    -
    17715  480 /*offsetCode (7200/15)*/,
    -
    17716  0 /*offsetRemainder (7200%15)*/,
    -
    17717  0 /*deltaMinutes*/,
    -
    17718  2011 /*untilYear*/,
    -
    17719  8 /*untilMonth*/,
    -
    17720  1 /*untilDay*/,
    -
    17721  0 /*untilTimeCode (0/15)*/,
    -
    17722  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17723  },
    -
    17724  // 2:00 - EET 2012
    -
    17725  {
    -
    17726  nullptr /*zonePolicy*/,
    -
    17727  "EET" /*format*/,
    -
    17728  480 /*offsetCode (7200/15)*/,
    -
    17729  0 /*offsetRemainder (7200%15)*/,
    -
    17730  0 /*deltaMinutes*/,
    -
    17731  2012 /*untilYear*/,
    -
    17732  1 /*untilMonth*/,
    -
    17733  1 /*untilDay*/,
    -
    17734  0 /*untilTimeCode (0/15)*/,
    -
    17735  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17736  },
    -
    17737  // 2:00 Palestine EE%sT
    -
    17738  {
    -
    17739  &kZonePolicyPalestine /*zonePolicy*/,
    -
    17740  "EE%T" /*format*/,
    -
    17741  480 /*offsetCode (7200/15)*/,
    -
    17742  0 /*offsetRemainder (7200%15)*/,
    -
    17743  0 /*deltaMinutes*/,
    -
    17744  32767 /*untilYear*/,
    -
    17745  1 /*untilMonth*/,
    -
    17746  1 /*untilDay*/,
    -
    17747  0 /*untilTimeCode (0/15)*/,
    -
    17748  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17749  },
    -
    17750 
    -
    17751 };
    -
    17752 
    -
    17753 static const char kZoneNameAsia_Gaza[] ACE_TIME_PROGMEM = "\x05" "Gaza";
    -
    17754 
    -
    17755 const complete::Info::ZoneInfo kZoneAsia_Gaza ACE_TIME_PROGMEM = {
    -
    17756  kZoneNameAsia_Gaza /*name*/,
    -
    17757  0x1faa4875 /*zoneId*/,
    -
    17758  &kZoneContext /*zoneContext*/,
    -
    17759  12 /*numEras*/,
    -
    17760  kZoneEraAsia_Gaza /*eras*/,
    -
    17761  nullptr /*targetInfo*/,
    -
    17762 };
    -
    17763 
    -
    17764 //---------------------------------------------------------------------------
    -
    17765 // Zone name: Asia/Hebron
    -
    17766 // Eras: 6
    -
    17767 //---------------------------------------------------------------------------
    -
    17768 
    -
    17769 static const complete::Info::ZoneEra kZoneEraAsia_Hebron[] ACE_TIME_PROGMEM = {
    -
    17770  // 2:20:23 - LMT 1900 Oct
    -
    17771  {
    -
    17772  nullptr /*zonePolicy*/,
    -
    17773  "LMT" /*format*/,
    -
    17774  561 /*offsetCode (8423/15)*/,
    -
    17775  8 /*offsetRemainder (8423%15)*/,
    -
    17776  0 /*deltaMinutes*/,
    -
    17777  1900 /*untilYear*/,
    -
    17778  10 /*untilMonth*/,
    -
    17779  1 /*untilDay*/,
    -
    17780  0 /*untilTimeCode (0/15)*/,
    -
    17781  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17782  },
    -
    17783  // 2:00 Zion EET/EEST 1948 May 15
    -
    17784  {
    -
    17785  &kZonePolicyZion /*zonePolicy*/,
    -
    17786  "EET/EEST" /*format*/,
    -
    17787  480 /*offsetCode (7200/15)*/,
    -
    17788  0 /*offsetRemainder (7200%15)*/,
    -
    17789  0 /*deltaMinutes*/,
    -
    17790  1948 /*untilYear*/,
    -
    17791  5 /*untilMonth*/,
    -
    17792  15 /*untilDay*/,
    -
    17793  0 /*untilTimeCode (0/15)*/,
    -
    17794  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17795  },
    -
    17796  // 2:00 EgyptAsia EE%sT 1967 Jun 5
    -
    17797  {
    -
    17798  &kZonePolicyEgyptAsia /*zonePolicy*/,
    -
    17799  "EE%T" /*format*/,
    -
    17800  480 /*offsetCode (7200/15)*/,
    -
    17801  0 /*offsetRemainder (7200%15)*/,
    -
    17802  0 /*deltaMinutes*/,
    -
    17803  1967 /*untilYear*/,
    -
    17804  6 /*untilMonth*/,
    -
    17805  5 /*untilDay*/,
    -
    17806  0 /*untilTimeCode (0/15)*/,
    -
    17807  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17808  },
    -
    17809  // 2:00 Zion I%sT 1996
    -
    17810  {
    -
    17811  &kZonePolicyZion /*zonePolicy*/,
    -
    17812  "I%T" /*format*/,
    -
    17813  480 /*offsetCode (7200/15)*/,
    -
    17814  0 /*offsetRemainder (7200%15)*/,
    -
    17815  0 /*deltaMinutes*/,
    -
    17816  1996 /*untilYear*/,
    -
    17817  1 /*untilMonth*/,
    -
    17818  1 /*untilDay*/,
    -
    17819  0 /*untilTimeCode (0/15)*/,
    -
    17820  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17821  },
    -
    17822  // 2:00 Jordan EE%sT 1999
    -
    17823  {
    -
    17824  &kZonePolicyJordan /*zonePolicy*/,
    -
    17825  "EE%T" /*format*/,
    -
    17826  480 /*offsetCode (7200/15)*/,
    -
    17827  0 /*offsetRemainder (7200%15)*/,
    -
    17828  0 /*deltaMinutes*/,
    -
    17829  1999 /*untilYear*/,
    -
    17830  1 /*untilMonth*/,
    -
    17831  1 /*untilDay*/,
    -
    17832  0 /*untilTimeCode (0/15)*/,
    -
    17833  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17834  },
    -
    17835  // 2:00 Palestine EE%sT
    -
    17836  {
    -
    17837  &kZonePolicyPalestine /*zonePolicy*/,
    -
    17838  "EE%T" /*format*/,
    -
    17839  480 /*offsetCode (7200/15)*/,
    -
    17840  0 /*offsetRemainder (7200%15)*/,
    -
    17841  0 /*deltaMinutes*/,
    -
    17842  32767 /*untilYear*/,
    -
    17843  1 /*untilMonth*/,
    -
    17844  1 /*untilDay*/,
    -
    17845  0 /*untilTimeCode (0/15)*/,
    -
    17846  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17847  },
    -
    17848 
    -
    17849 };
    -
    17850 
    -
    17851 static const char kZoneNameAsia_Hebron[] ACE_TIME_PROGMEM = "\x05" "Hebron";
    -
    17852 
    -
    17853 const complete::Info::ZoneInfo kZoneAsia_Hebron ACE_TIME_PROGMEM = {
    -
    17854  kZoneNameAsia_Hebron /*name*/,
    -
    17855  0xb5eef250 /*zoneId*/,
    -
    17856  &kZoneContext /*zoneContext*/,
    -
    17857  6 /*numEras*/,
    -
    17858  kZoneEraAsia_Hebron /*eras*/,
    -
    17859  nullptr /*targetInfo*/,
    -
    17860 };
    -
    17861 
    -
    17862 //---------------------------------------------------------------------------
    -
    17863 // Zone name: Asia/Ho_Chi_Minh
    -
    17864 // Eras: 10
    -
    17865 //---------------------------------------------------------------------------
    -
    17866 
    -
    17867 static const complete::Info::ZoneEra kZoneEraAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = {
    -
    17868  // 7:06:30 - LMT 1906 Jul 1
    -
    17869  {
    -
    17870  nullptr /*zonePolicy*/,
    -
    17871  "LMT" /*format*/,
    -
    17872  1706 /*offsetCode (25590/15)*/,
    -
    17873  0 /*offsetRemainder (25590%15)*/,
    -
    17874  0 /*deltaMinutes*/,
    -
    17875  1906 /*untilYear*/,
    -
    17876  7 /*untilMonth*/,
    -
    17877  1 /*untilDay*/,
    -
    17878  0 /*untilTimeCode (0/15)*/,
    -
    17879  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17880  },
    -
    17881  // 7:06:30 - PLMT 1911 May 1
    -
    17882  {
    -
    17883  nullptr /*zonePolicy*/,
    -
    17884  "PLMT" /*format*/,
    -
    17885  1706 /*offsetCode (25590/15)*/,
    -
    17886  0 /*offsetRemainder (25590%15)*/,
    -
    17887  0 /*deltaMinutes*/,
    -
    17888  1911 /*untilYear*/,
    -
    17889  5 /*untilMonth*/,
    -
    17890  1 /*untilDay*/,
    -
    17891  0 /*untilTimeCode (0/15)*/,
    -
    17892  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17893  },
    -
    17894  // 7:00 - %z 1942 Dec 31 23:00
    -
    17895  {
    -
    17896  nullptr /*zonePolicy*/,
    -
    17897  "" /*format*/,
    -
    17898  1680 /*offsetCode (25200/15)*/,
    -
    17899  0 /*offsetRemainder (25200%15)*/,
    -
    17900  0 /*deltaMinutes*/,
    -
    17901  1942 /*untilYear*/,
    -
    17902  12 /*untilMonth*/,
    -
    17903  31 /*untilDay*/,
    -
    17904  5520 /*untilTimeCode (82800/15)*/,
    -
    17905  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17906  },
    -
    17907  // 8:00 - %z 1945 Mar 14 23:00
    -
    17908  {
    -
    17909  nullptr /*zonePolicy*/,
    -
    17910  "" /*format*/,
    -
    17911  1920 /*offsetCode (28800/15)*/,
    -
    17912  0 /*offsetRemainder (28800%15)*/,
    -
    17913  0 /*deltaMinutes*/,
    -
    17914  1945 /*untilYear*/,
    -
    17915  3 /*untilMonth*/,
    -
    17916  14 /*untilDay*/,
    -
    17917  5520 /*untilTimeCode (82800/15)*/,
    -
    17918  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17919  },
    -
    17920  // 9:00 - %z 1945 Sep 1 24:00
    -
    17921  {
    -
    17922  nullptr /*zonePolicy*/,
    -
    17923  "" /*format*/,
    -
    17924  2160 /*offsetCode (32400/15)*/,
    -
    17925  0 /*offsetRemainder (32400%15)*/,
    -
    17926  0 /*deltaMinutes*/,
    -
    17927  1945 /*untilYear*/,
    -
    17928  9 /*untilMonth*/,
    -
    17929  1 /*untilDay*/,
    -
    17930  5760 /*untilTimeCode (86400/15)*/,
    -
    17931  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17932  },
    -
    17933  // 7:00 - %z 1947 Apr 1
    -
    17934  {
    -
    17935  nullptr /*zonePolicy*/,
    -
    17936  "" /*format*/,
    -
    17937  1680 /*offsetCode (25200/15)*/,
    -
    17938  0 /*offsetRemainder (25200%15)*/,
    -
    17939  0 /*deltaMinutes*/,
    -
    17940  1947 /*untilYear*/,
    -
    17941  4 /*untilMonth*/,
    -
    17942  1 /*untilDay*/,
    -
    17943  0 /*untilTimeCode (0/15)*/,
    -
    17944  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17945  },
    -
    17946  // 8:00 - %z 1955 Jul 1 01:00
    -
    17947  {
    -
    17948  nullptr /*zonePolicy*/,
    -
    17949  "" /*format*/,
    -
    17950  1920 /*offsetCode (28800/15)*/,
    -
    17951  0 /*offsetRemainder (28800%15)*/,
    -
    17952  0 /*deltaMinutes*/,
    -
    17953  1955 /*untilYear*/,
    -
    17954  7 /*untilMonth*/,
    -
    17955  1 /*untilDay*/,
    -
    17956  240 /*untilTimeCode (3600/15)*/,
    -
    17957  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17958  },
    -
    17959  // 7:00 - %z 1959 Dec 31 23:00
    -
    17960  {
    -
    17961  nullptr /*zonePolicy*/,
    -
    17962  "" /*format*/,
    -
    17963  1680 /*offsetCode (25200/15)*/,
    -
    17964  0 /*offsetRemainder (25200%15)*/,
    -
    17965  0 /*deltaMinutes*/,
    -
    17966  1959 /*untilYear*/,
    -
    17967  12 /*untilMonth*/,
    -
    17968  31 /*untilDay*/,
    -
    17969  5520 /*untilTimeCode (82800/15)*/,
    -
    17970  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17971  },
    -
    17972  // 8:00 - %z 1975 Jun 13
    -
    17973  {
    -
    17974  nullptr /*zonePolicy*/,
    -
    17975  "" /*format*/,
    -
    17976  1920 /*offsetCode (28800/15)*/,
    -
    17977  0 /*offsetRemainder (28800%15)*/,
    -
    17978  0 /*deltaMinutes*/,
    -
    17979  1975 /*untilYear*/,
    -
    17980  6 /*untilMonth*/,
    -
    17981  13 /*untilDay*/,
    -
    17982  0 /*untilTimeCode (0/15)*/,
    -
    17983  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17984  },
    -
    17985  // 7:00 - %z
    -
    17986  {
    -
    17987  nullptr /*zonePolicy*/,
    -
    17988  "" /*format*/,
    -
    17989  1680 /*offsetCode (25200/15)*/,
    -
    17990  0 /*offsetRemainder (25200%15)*/,
    -
    17991  0 /*deltaMinutes*/,
    -
    17992  32767 /*untilYear*/,
    -
    17993  1 /*untilMonth*/,
    -
    17994  1 /*untilDay*/,
    -
    17995  0 /*untilTimeCode (0/15)*/,
    -
    17996  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17997  },
    -
    17998 
    -
    17999 };
    -
    18000 
    -
    18001 static const char kZoneNameAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = "\x05" "Ho_Chi_Minh";
    -
    18002 
    -
    18003 const complete::Info::ZoneInfo kZoneAsia_Ho_Chi_Minh ACE_TIME_PROGMEM = {
    -
    18004  kZoneNameAsia_Ho_Chi_Minh /*name*/,
    -
    18005  0x20f2d127 /*zoneId*/,
    -
    18006  &kZoneContext /*zoneContext*/,
    -
    18007  10 /*numEras*/,
    -
    18008  kZoneEraAsia_Ho_Chi_Minh /*eras*/,
    -
    18009  nullptr /*targetInfo*/,
    -
    18010 };
    -
    18011 
    -
    18012 //---------------------------------------------------------------------------
    -
    18013 // Zone name: Asia/Hong_Kong
    -
    18014 // Eras: 6
    -
    18015 //---------------------------------------------------------------------------
    -
    18016 
    -
    18017 static const complete::Info::ZoneEra kZoneEraAsia_Hong_Kong[] ACE_TIME_PROGMEM = {
    -
    18018  // 7:36:42 - LMT 1904 Oct 29 17:00u
    -
    18019  {
    -
    18020  nullptr /*zonePolicy*/,
    -
    18021  "LMT" /*format*/,
    -
    18022  1826 /*offsetCode (27402/15)*/,
    -
    18023  12 /*offsetRemainder (27402%15)*/,
    -
    18024  0 /*deltaMinutes*/,
    -
    18025  1904 /*untilYear*/,
    -
    18026  10 /*untilMonth*/,
    -
    18027  29 /*untilDay*/,
    -
    18028  4080 /*untilTimeCode (61200/15)*/,
    -
    18029  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    18030  },
    -
    18031  // 8:00 - HKT 1941 Jun 15 3:00
    -
    18032  {
    -
    18033  nullptr /*zonePolicy*/,
    -
    18034  "HKT" /*format*/,
    -
    18035  1920 /*offsetCode (28800/15)*/,
    -
    18036  0 /*offsetRemainder (28800%15)*/,
    -
    18037  0 /*deltaMinutes*/,
    -
    18038  1941 /*untilYear*/,
    -
    18039  6 /*untilMonth*/,
    -
    18040  15 /*untilDay*/,
    -
    18041  720 /*untilTimeCode (10800/15)*/,
    -
    18042  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18043  },
    -
    18044  // 8:00 1:00 HKST 1941 Oct 1 4:00
    -
    18045  {
    -
    18046  nullptr /*zonePolicy*/,
    -
    18047  "HKST" /*format*/,
    -
    18048  1920 /*offsetCode (28800/15)*/,
    -
    18049  0 /*offsetRemainder (28800%15)*/,
    -
    18050  60 /*deltaMinutes*/,
    -
    18051  1941 /*untilYear*/,
    -
    18052  10 /*untilMonth*/,
    -
    18053  1 /*untilDay*/,
    -
    18054  960 /*untilTimeCode (14400/15)*/,
    -
    18055  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18056  },
    -
    18057  // 8:00 0:30 HKWT 1941 Dec 25
    -
    18058  {
    -
    18059  nullptr /*zonePolicy*/,
    -
    18060  "HKWT" /*format*/,
    -
    18061  1920 /*offsetCode (28800/15)*/,
    -
    18062  0 /*offsetRemainder (28800%15)*/,
    -
    18063  30 /*deltaMinutes*/,
    -
    18064  1941 /*untilYear*/,
    -
    18065  12 /*untilMonth*/,
    -
    18066  25 /*untilDay*/,
    -
    18067  0 /*untilTimeCode (0/15)*/,
    -
    18068  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18069  },
    -
    18070  // 9:00 - JST 1945 Nov 18 2:00
    -
    18071  {
    -
    18072  nullptr /*zonePolicy*/,
    -
    18073  "JST" /*format*/,
    -
    18074  2160 /*offsetCode (32400/15)*/,
    -
    18075  0 /*offsetRemainder (32400%15)*/,
    -
    18076  0 /*deltaMinutes*/,
    -
    18077  1945 /*untilYear*/,
    -
    18078  11 /*untilMonth*/,
    -
    18079  18 /*untilDay*/,
    -
    18080  480 /*untilTimeCode (7200/15)*/,
    -
    18081  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18082  },
    -
    18083  // 8:00 HK HK%sT
    -
    18084  {
    -
    18085  &kZonePolicyHK /*zonePolicy*/,
    -
    18086  "HK%T" /*format*/,
    -
    18087  1920 /*offsetCode (28800/15)*/,
    -
    18088  0 /*offsetRemainder (28800%15)*/,
    -
    18089  0 /*deltaMinutes*/,
    -
    18090  32767 /*untilYear*/,
    -
    18091  1 /*untilMonth*/,
    -
    18092  1 /*untilDay*/,
    -
    18093  0 /*untilTimeCode (0/15)*/,
    -
    18094  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18095  },
    -
    18096 
    -
    18097 };
    -
    18098 
    -
    18099 static const char kZoneNameAsia_Hong_Kong[] ACE_TIME_PROGMEM = "\x05" "Hong_Kong";
    -
    18100 
    -
    18101 const complete::Info::ZoneInfo kZoneAsia_Hong_Kong ACE_TIME_PROGMEM = {
    -
    18102  kZoneNameAsia_Hong_Kong /*name*/,
    -
    18103  0x577f28ac /*zoneId*/,
    -
    18104  &kZoneContext /*zoneContext*/,
    -
    18105  6 /*numEras*/,
    -
    18106  kZoneEraAsia_Hong_Kong /*eras*/,
    -
    18107  nullptr /*targetInfo*/,
    -
    18108 };
    -
    18109 
    -
    18110 //---------------------------------------------------------------------------
    -
    18111 // Zone name: Asia/Hovd
    -
    18112 // Eras: 3
    -
    18113 //---------------------------------------------------------------------------
    -
    18114 
    -
    18115 static const complete::Info::ZoneEra kZoneEraAsia_Hovd[] ACE_TIME_PROGMEM = {
    -
    18116  // 6:06:36 - LMT 1905 Aug
    -
    18117  {
    -
    18118  nullptr /*zonePolicy*/,
    -
    18119  "LMT" /*format*/,
    -
    18120  1466 /*offsetCode (21996/15)*/,
    -
    18121  6 /*offsetRemainder (21996%15)*/,
    -
    18122  0 /*deltaMinutes*/,
    -
    18123  1905 /*untilYear*/,
    -
    18124  8 /*untilMonth*/,
    -
    18125  1 /*untilDay*/,
    -
    18126  0 /*untilTimeCode (0/15)*/,
    -
    18127  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18128  },
    -
    18129  // 6:00 - %z 1978
    -
    18130  {
    -
    18131  nullptr /*zonePolicy*/,
    -
    18132  "" /*format*/,
    -
    18133  1440 /*offsetCode (21600/15)*/,
    -
    18134  0 /*offsetRemainder (21600%15)*/,
    -
    18135  0 /*deltaMinutes*/,
    -
    18136  1978 /*untilYear*/,
    -
    18137  1 /*untilMonth*/,
    -
    18138  1 /*untilDay*/,
    -
    18139  0 /*untilTimeCode (0/15)*/,
    -
    18140  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18141  },
    -
    18142  // 7:00 Mongol %z
    -
    18143  {
    -
    18144  &kZonePolicyMongol /*zonePolicy*/,
    -
    18145  "" /*format*/,
    -
    18146  1680 /*offsetCode (25200/15)*/,
    -
    18147  0 /*offsetRemainder (25200%15)*/,
    -
    18148  0 /*deltaMinutes*/,
    -
    18149  32767 /*untilYear*/,
    -
    18150  1 /*untilMonth*/,
    -
    18151  1 /*untilDay*/,
    -
    18152  0 /*untilTimeCode (0/15)*/,
    -
    18153  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18154  },
    -
    18155 
    -
    18156 };
    -
    18157 
    -
    18158 static const char kZoneNameAsia_Hovd[] ACE_TIME_PROGMEM = "\x05" "Hovd";
    -
    18159 
    -
    18160 const complete::Info::ZoneInfo kZoneAsia_Hovd ACE_TIME_PROGMEM = {
    -
    18161  kZoneNameAsia_Hovd /*name*/,
    -
    18162  0x1fab0fe3 /*zoneId*/,
    -
    18163  &kZoneContext /*zoneContext*/,
    -
    18164  3 /*numEras*/,
    -
    18165  kZoneEraAsia_Hovd /*eras*/,
    -
    18166  nullptr /*targetInfo*/,
    -
    18167 };
    -
    18168 
    -
    18169 //---------------------------------------------------------------------------
    -
    18170 // Zone name: Asia/Irkutsk
    -
    18171 // Eras: 8
    -
    18172 //---------------------------------------------------------------------------
    -
    18173 
    -
    18174 static const complete::Info::ZoneEra kZoneEraAsia_Irkutsk[] ACE_TIME_PROGMEM = {
    -
    18175  // 6:57:05 - LMT 1880
    -
    18176  {
    -
    18177  nullptr /*zonePolicy*/,
    -
    18178  "LMT" /*format*/,
    -
    18179  1668 /*offsetCode (25025/15)*/,
    -
    18180  5 /*offsetRemainder (25025%15)*/,
    -
    18181  0 /*deltaMinutes*/,
    -
    18182  1880 /*untilYear*/,
    -
    18183  1 /*untilMonth*/,
    -
    18184  1 /*untilDay*/,
    -
    18185  0 /*untilTimeCode (0/15)*/,
    -
    18186  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18187  },
    -
    18188  // 6:57:05 - IMT 1920 Jan 25
    -
    18189  {
    -
    18190  nullptr /*zonePolicy*/,
    -
    18191  "IMT" /*format*/,
    -
    18192  1668 /*offsetCode (25025/15)*/,
    -
    18193  5 /*offsetRemainder (25025%15)*/,
    -
    18194  0 /*deltaMinutes*/,
    -
    18195  1920 /*untilYear*/,
    -
    18196  1 /*untilMonth*/,
    -
    18197  25 /*untilDay*/,
    -
    18198  0 /*untilTimeCode (0/15)*/,
    -
    18199  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18200  },
    -
    18201  // 7:00 - %z 1930 Jun 21
    -
    18202  {
    -
    18203  nullptr /*zonePolicy*/,
    -
    18204  "" /*format*/,
    -
    18205  1680 /*offsetCode (25200/15)*/,
    -
    18206  0 /*offsetRemainder (25200%15)*/,
    -
    18207  0 /*deltaMinutes*/,
    -
    18208  1930 /*untilYear*/,
    -
    18209  6 /*untilMonth*/,
    -
    18210  21 /*untilDay*/,
    -
    18211  0 /*untilTimeCode (0/15)*/,
    -
    18212  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18213  },
    -
    18214  // 8:00 Russia %z 1991 Mar 31 2:00s
    -
    18215  {
    -
    18216  &kZonePolicyRussia /*zonePolicy*/,
    -
    18217  "" /*format*/,
    -
    18218  1920 /*offsetCode (28800/15)*/,
    -
    18219  0 /*offsetRemainder (28800%15)*/,
    -
    18220  0 /*deltaMinutes*/,
    -
    18221  1991 /*untilYear*/,
    -
    18222  3 /*untilMonth*/,
    -
    18223  31 /*untilDay*/,
    -
    18224  480 /*untilTimeCode (7200/15)*/,
    -
    18225  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18226  },
    -
    18227  // 7:00 Russia %z 1992 Jan 19 2:00s
    -
    18228  {
    -
    18229  &kZonePolicyRussia /*zonePolicy*/,
    -
    18230  "" /*format*/,
    -
    18231  1680 /*offsetCode (25200/15)*/,
    -
    18232  0 /*offsetRemainder (25200%15)*/,
    -
    18233  0 /*deltaMinutes*/,
    -
    18234  1992 /*untilYear*/,
    -
    18235  1 /*untilMonth*/,
    -
    18236  19 /*untilDay*/,
    -
    18237  480 /*untilTimeCode (7200/15)*/,
    -
    18238  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18239  },
    -
    18240  // 8:00 Russia %z 2011 Mar 27 2:00s
    -
    18241  {
    -
    18242  &kZonePolicyRussia /*zonePolicy*/,
    -
    18243  "" /*format*/,
    -
    18244  1920 /*offsetCode (28800/15)*/,
    -
    18245  0 /*offsetRemainder (28800%15)*/,
    -
    18246  0 /*deltaMinutes*/,
    -
    18247  2011 /*untilYear*/,
    -
    18248  3 /*untilMonth*/,
    -
    18249  27 /*untilDay*/,
    -
    18250  480 /*untilTimeCode (7200/15)*/,
    -
    18251  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18252  },
    -
    18253  // 9:00 - %z 2014 Oct 26 2:00s
    -
    18254  {
    -
    18255  nullptr /*zonePolicy*/,
    -
    18256  "" /*format*/,
    -
    18257  2160 /*offsetCode (32400/15)*/,
    -
    18258  0 /*offsetRemainder (32400%15)*/,
    -
    18259  0 /*deltaMinutes*/,
    -
    18260  2014 /*untilYear*/,
    -
    18261  10 /*untilMonth*/,
    -
    18262  26 /*untilDay*/,
    -
    18263  480 /*untilTimeCode (7200/15)*/,
    -
    18264  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18265  },
    -
    18266  // 8:00 - %z
    -
    18267  {
    -
    18268  nullptr /*zonePolicy*/,
    -
    18269  "" /*format*/,
    -
    18270  1920 /*offsetCode (28800/15)*/,
    -
    18271  0 /*offsetRemainder (28800%15)*/,
    -
    18272  0 /*deltaMinutes*/,
    -
    18273  32767 /*untilYear*/,
    -
    18274  1 /*untilMonth*/,
    -
    18275  1 /*untilDay*/,
    -
    18276  0 /*untilTimeCode (0/15)*/,
    -
    18277  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18278  },
    -
    18279 
    -
    18280 };
    -
    18281 
    -
    18282 static const char kZoneNameAsia_Irkutsk[] ACE_TIME_PROGMEM = "\x05" "Irkutsk";
    -
    18283 
    -
    18284 const complete::Info::ZoneInfo kZoneAsia_Irkutsk ACE_TIME_PROGMEM = {
    -
    18285  kZoneNameAsia_Irkutsk /*name*/,
    -
    18286  0xdfbf213f /*zoneId*/,
    -
    18287  &kZoneContext /*zoneContext*/,
    -
    18288  8 /*numEras*/,
    -
    18289  kZoneEraAsia_Irkutsk /*eras*/,
    -
    18290  nullptr /*targetInfo*/,
    -
    18291 };
    -
    18292 
    -
    18293 //---------------------------------------------------------------------------
    -
    18294 // Zone name: Asia/Jakarta
    -
    18295 // Eras: 9
    -
    18296 //---------------------------------------------------------------------------
    -
    18297 
    -
    18298 static const complete::Info::ZoneEra kZoneEraAsia_Jakarta[] ACE_TIME_PROGMEM = {
    -
    18299  // 7:07:12 - LMT 1867 Aug 10
    -
    18300  {
    -
    18301  nullptr /*zonePolicy*/,
    -
    18302  "LMT" /*format*/,
    -
    18303  1708 /*offsetCode (25632/15)*/,
    -
    18304  12 /*offsetRemainder (25632%15)*/,
    -
    18305  0 /*deltaMinutes*/,
    -
    18306  1867 /*untilYear*/,
    -
    18307  8 /*untilMonth*/,
    -
    18308  10 /*untilDay*/,
    -
    18309  0 /*untilTimeCode (0/15)*/,
    -
    18310  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18311  },
    -
    18312  // 7:07:12 - BMT 1923 Dec 31 16:40u
    -
    18313  {
    -
    18314  nullptr /*zonePolicy*/,
    -
    18315  "BMT" /*format*/,
    -
    18316  1708 /*offsetCode (25632/15)*/,
    -
    18317  12 /*offsetRemainder (25632%15)*/,
    -
    18318  0 /*deltaMinutes*/,
    -
    18319  1923 /*untilYear*/,
    -
    18320  12 /*untilMonth*/,
    -
    18321  31 /*untilDay*/,
    -
    18322  4000 /*untilTimeCode (60000/15)*/,
    -
    18323  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    18324  },
    -
    18325  // 7:20 - %z 1932 Nov
    -
    18326  {
    -
    18327  nullptr /*zonePolicy*/,
    -
    18328  "" /*format*/,
    -
    18329  1760 /*offsetCode (26400/15)*/,
    -
    18330  0 /*offsetRemainder (26400%15)*/,
    -
    18331  0 /*deltaMinutes*/,
    -
    18332  1932 /*untilYear*/,
    -
    18333  11 /*untilMonth*/,
    -
    18334  1 /*untilDay*/,
    -
    18335  0 /*untilTimeCode (0/15)*/,
    -
    18336  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18337  },
    -
    18338  // 7:30 - %z 1942 Mar 23
    -
    18339  {
    -
    18340  nullptr /*zonePolicy*/,
    -
    18341  "" /*format*/,
    -
    18342  1800 /*offsetCode (27000/15)*/,
    -
    18343  0 /*offsetRemainder (27000%15)*/,
    -
    18344  0 /*deltaMinutes*/,
    -
    18345  1942 /*untilYear*/,
    -
    18346  3 /*untilMonth*/,
    -
    18347  23 /*untilDay*/,
    -
    18348  0 /*untilTimeCode (0/15)*/,
    -
    18349  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18350  },
    -
    18351  // 9:00 - %z 1945 Sep 23
    -
    18352  {
    -
    18353  nullptr /*zonePolicy*/,
    -
    18354  "" /*format*/,
    -
    18355  2160 /*offsetCode (32400/15)*/,
    -
    18356  0 /*offsetRemainder (32400%15)*/,
    -
    18357  0 /*deltaMinutes*/,
    -
    18358  1945 /*untilYear*/,
    -
    18359  9 /*untilMonth*/,
    -
    18360  23 /*untilDay*/,
    -
    18361  0 /*untilTimeCode (0/15)*/,
    -
    18362  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18363  },
    -
    18364  // 7:30 - %z 1948 May
    -
    18365  {
    -
    18366  nullptr /*zonePolicy*/,
    -
    18367  "" /*format*/,
    -
    18368  1800 /*offsetCode (27000/15)*/,
    -
    18369  0 /*offsetRemainder (27000%15)*/,
    -
    18370  0 /*deltaMinutes*/,
    -
    18371  1948 /*untilYear*/,
    -
    18372  5 /*untilMonth*/,
    -
    18373  1 /*untilDay*/,
    -
    18374  0 /*untilTimeCode (0/15)*/,
    -
    18375  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18376  },
    -
    18377  // 8:00 - %z 1950 May
    -
    18378  {
    -
    18379  nullptr /*zonePolicy*/,
    -
    18380  "" /*format*/,
    -
    18381  1920 /*offsetCode (28800/15)*/,
    -
    18382  0 /*offsetRemainder (28800%15)*/,
    -
    18383  0 /*deltaMinutes*/,
    -
    18384  1950 /*untilYear*/,
    -
    18385  5 /*untilMonth*/,
    -
    18386  1 /*untilDay*/,
    -
    18387  0 /*untilTimeCode (0/15)*/,
    -
    18388  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18389  },
    -
    18390  // 7:30 - %z 1964
    -
    18391  {
    -
    18392  nullptr /*zonePolicy*/,
    -
    18393  "" /*format*/,
    -
    18394  1800 /*offsetCode (27000/15)*/,
    -
    18395  0 /*offsetRemainder (27000%15)*/,
    -
    18396  0 /*deltaMinutes*/,
    -
    18397  1964 /*untilYear*/,
    -
    18398  1 /*untilMonth*/,
    -
    18399  1 /*untilDay*/,
    -
    18400  0 /*untilTimeCode (0/15)*/,
    -
    18401  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18402  },
    -
    18403  // 7:00 - WIB
    -
    18404  {
    -
    18405  nullptr /*zonePolicy*/,
    -
    18406  "WIB" /*format*/,
    -
    18407  1680 /*offsetCode (25200/15)*/,
    -
    18408  0 /*offsetRemainder (25200%15)*/,
    -
    18409  0 /*deltaMinutes*/,
    -
    18410  32767 /*untilYear*/,
    -
    18411  1 /*untilMonth*/,
    -
    18412  1 /*untilDay*/,
    -
    18413  0 /*untilTimeCode (0/15)*/,
    -
    18414  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18415  },
    -
    18416 
    -
    18417 };
    -
    18418 
    -
    18419 static const char kZoneNameAsia_Jakarta[] ACE_TIME_PROGMEM = "\x05" "Jakarta";
    -
    18420 
    -
    18421 const complete::Info::ZoneInfo kZoneAsia_Jakarta ACE_TIME_PROGMEM = {
    -
    18422  kZoneNameAsia_Jakarta /*name*/,
    -
    18423  0x0506ab50 /*zoneId*/,
    -
    18424  &kZoneContext /*zoneContext*/,
    -
    18425  9 /*numEras*/,
    -
    18426  kZoneEraAsia_Jakarta /*eras*/,
    -
    18427  nullptr /*targetInfo*/,
    -
    18428 };
    -
    18429 
    -
    18430 //---------------------------------------------------------------------------
    -
    18431 // Zone name: Asia/Jayapura
    -
    18432 // Eras: 4
    -
    18433 //---------------------------------------------------------------------------
    -
    18434 
    -
    18435 static const complete::Info::ZoneEra kZoneEraAsia_Jayapura[] ACE_TIME_PROGMEM = {
    -
    18436  // 9:22:48 - LMT 1932 Nov
    -
    18437  {
    -
    18438  nullptr /*zonePolicy*/,
    -
    18439  "LMT" /*format*/,
    -
    18440  2251 /*offsetCode (33768/15)*/,
    -
    18441  3 /*offsetRemainder (33768%15)*/,
    -
    18442  0 /*deltaMinutes*/,
    -
    18443  1932 /*untilYear*/,
    -
    18444  11 /*untilMonth*/,
    -
    18445  1 /*untilDay*/,
    -
    18446  0 /*untilTimeCode (0/15)*/,
    -
    18447  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18448  },
    -
    18449  // 9:00 - %z 1944 Sep 1
    -
    18450  {
    -
    18451  nullptr /*zonePolicy*/,
    -
    18452  "" /*format*/,
    -
    18453  2160 /*offsetCode (32400/15)*/,
    -
    18454  0 /*offsetRemainder (32400%15)*/,
    -
    18455  0 /*deltaMinutes*/,
    -
    18456  1944 /*untilYear*/,
    -
    18457  9 /*untilMonth*/,
    -
    18458  1 /*untilDay*/,
    -
    18459  0 /*untilTimeCode (0/15)*/,
    -
    18460  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18461  },
    -
    18462  // 9:30 - %z 1964
    -
    18463  {
    -
    18464  nullptr /*zonePolicy*/,
    -
    18465  "" /*format*/,
    -
    18466  2280 /*offsetCode (34200/15)*/,
    -
    18467  0 /*offsetRemainder (34200%15)*/,
    -
    18468  0 /*deltaMinutes*/,
    -
    18469  1964 /*untilYear*/,
    -
    18470  1 /*untilMonth*/,
    -
    18471  1 /*untilDay*/,
    -
    18472  0 /*untilTimeCode (0/15)*/,
    -
    18473  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18474  },
    -
    18475  // 9:00 - WIT
    -
    18476  {
    -
    18477  nullptr /*zonePolicy*/,
    -
    18478  "WIT" /*format*/,
    -
    18479  2160 /*offsetCode (32400/15)*/,
    -
    18480  0 /*offsetRemainder (32400%15)*/,
    -
    18481  0 /*deltaMinutes*/,
    -
    18482  32767 /*untilYear*/,
    -
    18483  1 /*untilMonth*/,
    -
    18484  1 /*untilDay*/,
    -
    18485  0 /*untilTimeCode (0/15)*/,
    -
    18486  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18487  },
    -
    18488 
    -
    18489 };
    -
    18490 
    -
    18491 static const char kZoneNameAsia_Jayapura[] ACE_TIME_PROGMEM = "\x05" "Jayapura";
    -
    18492 
    -
    18493 const complete::Info::ZoneInfo kZoneAsia_Jayapura ACE_TIME_PROGMEM = {
    -
    18494  kZoneNameAsia_Jayapura /*name*/,
    -
    18495  0xc6833c2f /*zoneId*/,
    -
    18496  &kZoneContext /*zoneContext*/,
    -
    18497  4 /*numEras*/,
    -
    18498  kZoneEraAsia_Jayapura /*eras*/,
    -
    18499  nullptr /*targetInfo*/,
    -
    18500 };
    -
    18501 
    -
    18502 //---------------------------------------------------------------------------
    -
    18503 // Zone name: Asia/Jerusalem
    -
    18504 // Eras: 3
    -
    18505 //---------------------------------------------------------------------------
    -
    18506 
    -
    18507 static const complete::Info::ZoneEra kZoneEraAsia_Jerusalem[] ACE_TIME_PROGMEM = {
    -
    18508  // 2:20:54 - LMT 1880
    -
    18509  {
    -
    18510  nullptr /*zonePolicy*/,
    -
    18511  "LMT" /*format*/,
    -
    18512  563 /*offsetCode (8454/15)*/,
    -
    18513  9 /*offsetRemainder (8454%15)*/,
    -
    18514  0 /*deltaMinutes*/,
    -
    18515  1880 /*untilYear*/,
    -
    18516  1 /*untilMonth*/,
    -
    18517  1 /*untilDay*/,
    -
    18518  0 /*untilTimeCode (0/15)*/,
    -
    18519  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18520  },
    -
    18521  // 2:20:40 - JMT 1918
    -
    18522  {
    -
    18523  nullptr /*zonePolicy*/,
    -
    18524  "JMT" /*format*/,
    -
    18525  562 /*offsetCode (8440/15)*/,
    -
    18526  10 /*offsetRemainder (8440%15)*/,
    -
    18527  0 /*deltaMinutes*/,
    -
    18528  1918 /*untilYear*/,
    -
    18529  1 /*untilMonth*/,
    -
    18530  1 /*untilDay*/,
    -
    18531  0 /*untilTimeCode (0/15)*/,
    -
    18532  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18533  },
    -
    18534  // 2:00 Zion I%sT
    -
    18535  {
    -
    18536  &kZonePolicyZion /*zonePolicy*/,
    -
    18537  "I%T" /*format*/,
    -
    18538  480 /*offsetCode (7200/15)*/,
    -
    18539  0 /*offsetRemainder (7200%15)*/,
    -
    18540  0 /*deltaMinutes*/,
    -
    18541  32767 /*untilYear*/,
    -
    18542  1 /*untilMonth*/,
    -
    18543  1 /*untilDay*/,
    -
    18544  0 /*untilTimeCode (0/15)*/,
    -
    18545  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18546  },
    -
    18547 
    -
    18548 };
    -
    18549 
    -
    18550 static const char kZoneNameAsia_Jerusalem[] ACE_TIME_PROGMEM = "\x05" "Jerusalem";
    -
    18551 
    -
    18552 const complete::Info::ZoneInfo kZoneAsia_Jerusalem ACE_TIME_PROGMEM = {
    -
    18553  kZoneNameAsia_Jerusalem /*name*/,
    -
    18554  0x5becd23a /*zoneId*/,
    -
    18555  &kZoneContext /*zoneContext*/,
    -
    18556  3 /*numEras*/,
    -
    18557  kZoneEraAsia_Jerusalem /*eras*/,
    -
    18558  nullptr /*targetInfo*/,
    -
    18559 };
    -
    18560 
    -
    18561 //---------------------------------------------------------------------------
    -
    18562 // Zone name: Asia/Kabul
    -
    18563 // Eras: 3
    -
    18564 //---------------------------------------------------------------------------
    -
    18565 
    -
    18566 static const complete::Info::ZoneEra kZoneEraAsia_Kabul[] ACE_TIME_PROGMEM = {
    -
    18567  // 4:36:48 - LMT 1890
    -
    18568  {
    -
    18569  nullptr /*zonePolicy*/,
    -
    18570  "LMT" /*format*/,
    -
    18571  1107 /*offsetCode (16608/15)*/,
    -
    18572  3 /*offsetRemainder (16608%15)*/,
    -
    18573  0 /*deltaMinutes*/,
    -
    18574  1890 /*untilYear*/,
    -
    18575  1 /*untilMonth*/,
    -
    18576  1 /*untilDay*/,
    -
    18577  0 /*untilTimeCode (0/15)*/,
    -
    18578  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18579  },
    -
    18580  // 4:00 - %z 1945
    -
    18581  {
    -
    18582  nullptr /*zonePolicy*/,
    -
    18583  "" /*format*/,
    -
    18584  960 /*offsetCode (14400/15)*/,
    -
    18585  0 /*offsetRemainder (14400%15)*/,
    -
    18586  0 /*deltaMinutes*/,
    -
    18587  1945 /*untilYear*/,
    -
    18588  1 /*untilMonth*/,
    -
    18589  1 /*untilDay*/,
    -
    18590  0 /*untilTimeCode (0/15)*/,
    -
    18591  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18592  },
    -
    18593  // 4:30 - %z
    -
    18594  {
    -
    18595  nullptr /*zonePolicy*/,
    -
    18596  "" /*format*/,
    -
    18597  1080 /*offsetCode (16200/15)*/,
    -
    18598  0 /*offsetRemainder (16200%15)*/,
    -
    18599  0 /*deltaMinutes*/,
    -
    18600  32767 /*untilYear*/,
    -
    18601  1 /*untilMonth*/,
    -
    18602  1 /*untilDay*/,
    -
    18603  0 /*untilTimeCode (0/15)*/,
    -
    18604  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18605  },
    -
    18606 
    -
    18607 };
    -
    18608 
    -
    18609 static const char kZoneNameAsia_Kabul[] ACE_TIME_PROGMEM = "\x05" "Kabul";
    -
    18610 
    -
    18611 const complete::Info::ZoneInfo kZoneAsia_Kabul ACE_TIME_PROGMEM = {
    -
    18612  kZoneNameAsia_Kabul /*name*/,
    -
    18613  0x153b5601 /*zoneId*/,
    -
    18614  &kZoneContext /*zoneContext*/,
    -
    18615  3 /*numEras*/,
    -
    18616  kZoneEraAsia_Kabul /*eras*/,
    -
    18617  nullptr /*targetInfo*/,
    -
    18618 };
    -
    18619 
    -
    18620 //---------------------------------------------------------------------------
    -
    18621 // Zone name: Asia/Kamchatka
    -
    18622 // Eras: 7
    -
    18623 //---------------------------------------------------------------------------
    -
    18624 
    -
    18625 static const complete::Info::ZoneEra kZoneEraAsia_Kamchatka[] ACE_TIME_PROGMEM = {
    -
    18626  // 10:34:36 - LMT 1922 Nov 10
    -
    18627  {
    -
    18628  nullptr /*zonePolicy*/,
    -
    18629  "LMT" /*format*/,
    -
    18630  2538 /*offsetCode (38076/15)*/,
    -
    18631  6 /*offsetRemainder (38076%15)*/,
    -
    18632  0 /*deltaMinutes*/,
    -
    18633  1922 /*untilYear*/,
    -
    18634  11 /*untilMonth*/,
    -
    18635  10 /*untilDay*/,
    -
    18636  0 /*untilTimeCode (0/15)*/,
    -
    18637  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18638  },
    -
    18639  // 11:00 - %z 1930 Jun 21
    -
    18640  {
    -
    18641  nullptr /*zonePolicy*/,
    -
    18642  "" /*format*/,
    -
    18643  2640 /*offsetCode (39600/15)*/,
    -
    18644  0 /*offsetRemainder (39600%15)*/,
    -
    18645  0 /*deltaMinutes*/,
    -
    18646  1930 /*untilYear*/,
    -
    18647  6 /*untilMonth*/,
    -
    18648  21 /*untilDay*/,
    -
    18649  0 /*untilTimeCode (0/15)*/,
    -
    18650  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18651  },
    -
    18652  // 12:00 Russia %z 1991 Mar 31 2:00s
    -
    18653  {
    -
    18654  &kZonePolicyRussia /*zonePolicy*/,
    -
    18655  "" /*format*/,
    -
    18656  2880 /*offsetCode (43200/15)*/,
    -
    18657  0 /*offsetRemainder (43200%15)*/,
    -
    18658  0 /*deltaMinutes*/,
    -
    18659  1991 /*untilYear*/,
    -
    18660  3 /*untilMonth*/,
    -
    18661  31 /*untilDay*/,
    -
    18662  480 /*untilTimeCode (7200/15)*/,
    -
    18663  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18664  },
    -
    18665  // 11:00 Russia %z 1992 Jan 19 2:00s
    -
    18666  {
    -
    18667  &kZonePolicyRussia /*zonePolicy*/,
    -
    18668  "" /*format*/,
    -
    18669  2640 /*offsetCode (39600/15)*/,
    -
    18670  0 /*offsetRemainder (39600%15)*/,
    -
    18671  0 /*deltaMinutes*/,
    -
    18672  1992 /*untilYear*/,
    -
    18673  1 /*untilMonth*/,
    -
    18674  19 /*untilDay*/,
    -
    18675  480 /*untilTimeCode (7200/15)*/,
    -
    18676  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18677  },
    -
    18678  // 12:00 Russia %z 2010 Mar 28 2:00s
    -
    18679  {
    -
    18680  &kZonePolicyRussia /*zonePolicy*/,
    -
    18681  "" /*format*/,
    -
    18682  2880 /*offsetCode (43200/15)*/,
    -
    18683  0 /*offsetRemainder (43200%15)*/,
    -
    18684  0 /*deltaMinutes*/,
    -
    18685  2010 /*untilYear*/,
    -
    18686  3 /*untilMonth*/,
    -
    18687  28 /*untilDay*/,
    -
    18688  480 /*untilTimeCode (7200/15)*/,
    -
    18689  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18690  },
    -
    18691  // 11:00 Russia %z 2011 Mar 27 2:00s
    -
    18692  {
    -
    18693  &kZonePolicyRussia /*zonePolicy*/,
    -
    18694  "" /*format*/,
    -
    18695  2640 /*offsetCode (39600/15)*/,
    -
    18696  0 /*offsetRemainder (39600%15)*/,
    -
    18697  0 /*deltaMinutes*/,
    -
    18698  2011 /*untilYear*/,
    -
    18699  3 /*untilMonth*/,
    -
    18700  27 /*untilDay*/,
    -
    18701  480 /*untilTimeCode (7200/15)*/,
    -
    18702  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18703  },
    -
    18704  // 12:00 - %z
    -
    18705  {
    -
    18706  nullptr /*zonePolicy*/,
    -
    18707  "" /*format*/,
    -
    18708  2880 /*offsetCode (43200/15)*/,
    -
    18709  0 /*offsetRemainder (43200%15)*/,
    -
    18710  0 /*deltaMinutes*/,
    -
    18711  32767 /*untilYear*/,
    -
    18712  1 /*untilMonth*/,
    -
    18713  1 /*untilDay*/,
    -
    18714  0 /*untilTimeCode (0/15)*/,
    -
    18715  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18716  },
    -
    18717 
    -
    18718 };
    -
    18719 
    -
    18720 static const char kZoneNameAsia_Kamchatka[] ACE_TIME_PROGMEM = "\x05" "Kamchatka";
    -
    18721 
    -
    18722 const complete::Info::ZoneInfo kZoneAsia_Kamchatka ACE_TIME_PROGMEM = {
    -
    18723  kZoneNameAsia_Kamchatka /*name*/,
    -
    18724  0x73baf9d7 /*zoneId*/,
    -
    18725  &kZoneContext /*zoneContext*/,
    -
    18726  7 /*numEras*/,
    -
    18727  kZoneEraAsia_Kamchatka /*eras*/,
    -
    18728  nullptr /*targetInfo*/,
    -
    18729 };
    -
    18730 
    -
    18731 //---------------------------------------------------------------------------
    -
    18732 // Zone name: Asia/Karachi
    -
    18733 // Eras: 6
    -
    18734 //---------------------------------------------------------------------------
    -
    18735 
    -
    18736 static const complete::Info::ZoneEra kZoneEraAsia_Karachi[] ACE_TIME_PROGMEM = {
    -
    18737  // 4:28:12 - LMT 1907
    -
    18738  {
    -
    18739  nullptr /*zonePolicy*/,
    -
    18740  "LMT" /*format*/,
    -
    18741  1072 /*offsetCode (16092/15)*/,
    -
    18742  12 /*offsetRemainder (16092%15)*/,
    -
    18743  0 /*deltaMinutes*/,
    -
    18744  1907 /*untilYear*/,
    -
    18745  1 /*untilMonth*/,
    -
    18746  1 /*untilDay*/,
    -
    18747  0 /*untilTimeCode (0/15)*/,
    -
    18748  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18749  },
    -
    18750  // 5:30 - %z 1942 Sep
    -
    18751  {
    -
    18752  nullptr /*zonePolicy*/,
    -
    18753  "" /*format*/,
    -
    18754  1320 /*offsetCode (19800/15)*/,
    -
    18755  0 /*offsetRemainder (19800%15)*/,
    -
    18756  0 /*deltaMinutes*/,
    -
    18757  1942 /*untilYear*/,
    -
    18758  9 /*untilMonth*/,
    -
    18759  1 /*untilDay*/,
    -
    18760  0 /*untilTimeCode (0/15)*/,
    -
    18761  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18762  },
    -
    18763  // 5:30 1:00 %z 1945 Oct 15
    -
    18764  {
    -
    18765  nullptr /*zonePolicy*/,
    -
    18766  "" /*format*/,
    -
    18767  1320 /*offsetCode (19800/15)*/,
    -
    18768  0 /*offsetRemainder (19800%15)*/,
    -
    18769  60 /*deltaMinutes*/,
    -
    18770  1945 /*untilYear*/,
    -
    18771  10 /*untilMonth*/,
    -
    18772  15 /*untilDay*/,
    -
    18773  0 /*untilTimeCode (0/15)*/,
    -
    18774  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18775  },
    -
    18776  // 5:30 - %z 1951 Sep 30
    -
    18777  {
    -
    18778  nullptr /*zonePolicy*/,
    -
    18779  "" /*format*/,
    -
    18780  1320 /*offsetCode (19800/15)*/,
    -
    18781  0 /*offsetRemainder (19800%15)*/,
    -
    18782  0 /*deltaMinutes*/,
    -
    18783  1951 /*untilYear*/,
    -
    18784  9 /*untilMonth*/,
    -
    18785  30 /*untilDay*/,
    -
    18786  0 /*untilTimeCode (0/15)*/,
    -
    18787  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18788  },
    -
    18789  // 5:00 - %z 1971 Mar 26
    -
    18790  {
    -
    18791  nullptr /*zonePolicy*/,
    -
    18792  "" /*format*/,
    -
    18793  1200 /*offsetCode (18000/15)*/,
    -
    18794  0 /*offsetRemainder (18000%15)*/,
    -
    18795  0 /*deltaMinutes*/,
    -
    18796  1971 /*untilYear*/,
    -
    18797  3 /*untilMonth*/,
    -
    18798  26 /*untilDay*/,
    -
    18799  0 /*untilTimeCode (0/15)*/,
    -
    18800  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18801  },
    -
    18802  // 5:00 Pakistan PK%sT
    -
    18803  {
    -
    18804  &kZonePolicyPakistan /*zonePolicy*/,
    -
    18805  "PK%T" /*format*/,
    -
    18806  1200 /*offsetCode (18000/15)*/,
    -
    18807  0 /*offsetRemainder (18000%15)*/,
    -
    18808  0 /*deltaMinutes*/,
    -
    18809  32767 /*untilYear*/,
    -
    18810  1 /*untilMonth*/,
    -
    18811  1 /*untilDay*/,
    -
    18812  0 /*untilTimeCode (0/15)*/,
    -
    18813  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18814  },
    -
    18815 
    -
    18816 };
    -
    18817 
    -
    18818 static const char kZoneNameAsia_Karachi[] ACE_TIME_PROGMEM = "\x05" "Karachi";
    -
    18819 
    -
    18820 const complete::Info::ZoneInfo kZoneAsia_Karachi ACE_TIME_PROGMEM = {
    -
    18821  kZoneNameAsia_Karachi /*name*/,
    -
    18822  0x527f5245 /*zoneId*/,
    -
    18823  &kZoneContext /*zoneContext*/,
    -
    18824  6 /*numEras*/,
    -
    18825  kZoneEraAsia_Karachi /*eras*/,
    -
    18826  nullptr /*targetInfo*/,
    -
    18827 };
    -
    18828 
    -
    18829 //---------------------------------------------------------------------------
    -
    18830 // Zone name: Asia/Kathmandu
    -
    18831 // Eras: 3
    -
    18832 //---------------------------------------------------------------------------
    -
    18833 
    -
    18834 static const complete::Info::ZoneEra kZoneEraAsia_Kathmandu[] ACE_TIME_PROGMEM = {
    -
    18835  // 5:41:16 - LMT 1920
    -
    18836  {
    -
    18837  nullptr /*zonePolicy*/,
    -
    18838  "LMT" /*format*/,
    -
    18839  1365 /*offsetCode (20476/15)*/,
    -
    18840  1 /*offsetRemainder (20476%15)*/,
    -
    18841  0 /*deltaMinutes*/,
    -
    18842  1920 /*untilYear*/,
    -
    18843  1 /*untilMonth*/,
    -
    18844  1 /*untilDay*/,
    -
    18845  0 /*untilTimeCode (0/15)*/,
    -
    18846  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18847  },
    -
    18848  // 5:30 - %z 1986
    -
    18849  {
    -
    18850  nullptr /*zonePolicy*/,
    -
    18851  "" /*format*/,
    -
    18852  1320 /*offsetCode (19800/15)*/,
    -
    18853  0 /*offsetRemainder (19800%15)*/,
    -
    18854  0 /*deltaMinutes*/,
    -
    18855  1986 /*untilYear*/,
    -
    18856  1 /*untilMonth*/,
    -
    18857  1 /*untilDay*/,
    -
    18858  0 /*untilTimeCode (0/15)*/,
    -
    18859  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18860  },
    -
    18861  // 5:45 - %z
    -
    18862  {
    -
    18863  nullptr /*zonePolicy*/,
    -
    18864  "" /*format*/,
    -
    18865  1380 /*offsetCode (20700/15)*/,
    -
    18866  0 /*offsetRemainder (20700%15)*/,
    -
    18867  0 /*deltaMinutes*/,
    -
    18868  32767 /*untilYear*/,
    -
    18869  1 /*untilMonth*/,
    -
    18870  1 /*untilDay*/,
    -
    18871  0 /*untilTimeCode (0/15)*/,
    -
    18872  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18873  },
    -
    18874 
    -
    18875 };
    -
    18876 
    -
    18877 static const char kZoneNameAsia_Kathmandu[] ACE_TIME_PROGMEM = "\x05" "Kathmandu";
    -
    18878 
    -
    18879 const complete::Info::ZoneInfo kZoneAsia_Kathmandu ACE_TIME_PROGMEM = {
    -
    18880  kZoneNameAsia_Kathmandu /*name*/,
    -
    18881  0x9a96ce6f /*zoneId*/,
    -
    18882  &kZoneContext /*zoneContext*/,
    -
    18883  3 /*numEras*/,
    -
    18884  kZoneEraAsia_Kathmandu /*eras*/,
    -
    18885  nullptr /*targetInfo*/,
    -
    18886 };
    -
    18887 
    -
    18888 //---------------------------------------------------------------------------
    -
    18889 // Zone name: Asia/Khandyga
    -
    18890 // Eras: 9
    -
    18891 //---------------------------------------------------------------------------
    -
    18892 
    -
    18893 static const complete::Info::ZoneEra kZoneEraAsia_Khandyga[] ACE_TIME_PROGMEM = {
    -
    18894  // 9:02:13 - LMT 1919 Dec 15
    -
    18895  {
    -
    18896  nullptr /*zonePolicy*/,
    -
    18897  "LMT" /*format*/,
    -
    18898  2168 /*offsetCode (32533/15)*/,
    -
    18899  13 /*offsetRemainder (32533%15)*/,
    -
    18900  0 /*deltaMinutes*/,
    -
    18901  1919 /*untilYear*/,
    -
    18902  12 /*untilMonth*/,
    -
    18903  15 /*untilDay*/,
    -
    18904  0 /*untilTimeCode (0/15)*/,
    -
    18905  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18906  },
    -
    18907  // 8:00 - %z 1930 Jun 21
    -
    18908  {
    -
    18909  nullptr /*zonePolicy*/,
    -
    18910  "" /*format*/,
    -
    18911  1920 /*offsetCode (28800/15)*/,
    -
    18912  0 /*offsetRemainder (28800%15)*/,
    -
    18913  0 /*deltaMinutes*/,
    -
    18914  1930 /*untilYear*/,
    -
    18915  6 /*untilMonth*/,
    -
    18916  21 /*untilDay*/,
    -
    18917  0 /*untilTimeCode (0/15)*/,
    -
    18918  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18919  },
    -
    18920  // 9:00 Russia %z 1991 Mar 31 2:00s
    -
    18921  {
    -
    18922  &kZonePolicyRussia /*zonePolicy*/,
    -
    18923  "" /*format*/,
    -
    18924  2160 /*offsetCode (32400/15)*/,
    -
    18925  0 /*offsetRemainder (32400%15)*/,
    -
    18926  0 /*deltaMinutes*/,
    -
    18927  1991 /*untilYear*/,
    -
    18928  3 /*untilMonth*/,
    -
    18929  31 /*untilDay*/,
    -
    18930  480 /*untilTimeCode (7200/15)*/,
    -
    18931  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18932  },
    -
    18933  // 8:00 Russia %z 1992 Jan 19 2:00s
    -
    18934  {
    -
    18935  &kZonePolicyRussia /*zonePolicy*/,
    -
    18936  "" /*format*/,
    -
    18937  1920 /*offsetCode (28800/15)*/,
    -
    18938  0 /*offsetRemainder (28800%15)*/,
    -
    18939  0 /*deltaMinutes*/,
    -
    18940  1992 /*untilYear*/,
    -
    18941  1 /*untilMonth*/,
    -
    18942  19 /*untilDay*/,
    -
    18943  480 /*untilTimeCode (7200/15)*/,
    -
    18944  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18945  },
    -
    18946  // 9:00 Russia %z 2004
    -
    18947  {
    -
    18948  &kZonePolicyRussia /*zonePolicy*/,
    -
    18949  "" /*format*/,
    -
    18950  2160 /*offsetCode (32400/15)*/,
    -
    18951  0 /*offsetRemainder (32400%15)*/,
    -
    18952  0 /*deltaMinutes*/,
    -
    18953  2004 /*untilYear*/,
    -
    18954  1 /*untilMonth*/,
    -
    18955  1 /*untilDay*/,
    -
    18956  0 /*untilTimeCode (0/15)*/,
    -
    18957  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18958  },
    -
    18959  // 10:00 Russia %z 2011 Mar 27 2:00s
    -
    18960  {
    -
    18961  &kZonePolicyRussia /*zonePolicy*/,
    -
    18962  "" /*format*/,
    -
    18963  2400 /*offsetCode (36000/15)*/,
    -
    18964  0 /*offsetRemainder (36000%15)*/,
    -
    18965  0 /*deltaMinutes*/,
    -
    18966  2011 /*untilYear*/,
    -
    18967  3 /*untilMonth*/,
    -
    18968  27 /*untilDay*/,
    -
    18969  480 /*untilTimeCode (7200/15)*/,
    -
    18970  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18971  },
    -
    18972  // 11:00 - %z 2011 Sep 13 0:00s
    -
    18973  {
    -
    18974  nullptr /*zonePolicy*/,
    -
    18975  "" /*format*/,
    -
    18976  2640 /*offsetCode (39600/15)*/,
    -
    18977  0 /*offsetRemainder (39600%15)*/,
    -
    18978  0 /*deltaMinutes*/,
    -
    18979  2011 /*untilYear*/,
    -
    18980  9 /*untilMonth*/,
    -
    18981  13 /*untilDay*/,
    -
    18982  0 /*untilTimeCode (0/15)*/,
    -
    18983  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18984  },
    -
    18985  // 10:00 - %z 2014 Oct 26 2:00s
    -
    18986  {
    -
    18987  nullptr /*zonePolicy*/,
    -
    18988  "" /*format*/,
    -
    18989  2400 /*offsetCode (36000/15)*/,
    -
    18990  0 /*offsetRemainder (36000%15)*/,
    -
    18991  0 /*deltaMinutes*/,
    -
    18992  2014 /*untilYear*/,
    -
    18993  10 /*untilMonth*/,
    -
    18994  26 /*untilDay*/,
    -
    18995  480 /*untilTimeCode (7200/15)*/,
    -
    18996  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18997  },
    -
    18998  // 9:00 - %z
    -
    18999  {
    -
    19000  nullptr /*zonePolicy*/,
    -
    19001  "" /*format*/,
    -
    19002  2160 /*offsetCode (32400/15)*/,
    -
    19003  0 /*offsetRemainder (32400%15)*/,
    -
    19004  0 /*deltaMinutes*/,
    -
    19005  32767 /*untilYear*/,
    -
    19006  1 /*untilMonth*/,
    -
    19007  1 /*untilDay*/,
    -
    19008  0 /*untilTimeCode (0/15)*/,
    -
    19009  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19010  },
    -
    19011 
    -
    19012 };
    -
    19013 
    -
    19014 static const char kZoneNameAsia_Khandyga[] ACE_TIME_PROGMEM = "\x05" "Khandyga";
    -
    19015 
    -
    19016 const complete::Info::ZoneInfo kZoneAsia_Khandyga ACE_TIME_PROGMEM = {
    -
    19017  kZoneNameAsia_Khandyga /*name*/,
    -
    19018  0x9685a4d9 /*zoneId*/,
    -
    19019  &kZoneContext /*zoneContext*/,
    -
    19020  9 /*numEras*/,
    -
    19021  kZoneEraAsia_Khandyga /*eras*/,
    -
    19022  nullptr /*targetInfo*/,
    -
    19023 };
    -
    19024 
    -
    19025 //---------------------------------------------------------------------------
    -
    19026 // Zone name: Asia/Kolkata
    -
    19027 // Eras: 8
    -
    19028 //---------------------------------------------------------------------------
    -
    19029 
    -
    19030 static const complete::Info::ZoneEra kZoneEraAsia_Kolkata[] ACE_TIME_PROGMEM = {
    -
    19031  // 5:53:28 - LMT 1854 Jun 28
    -
    19032  {
    -
    19033  nullptr /*zonePolicy*/,
    -
    19034  "LMT" /*format*/,
    -
    19035  1413 /*offsetCode (21208/15)*/,
    -
    19036  13 /*offsetRemainder (21208%15)*/,
    -
    19037  0 /*deltaMinutes*/,
    -
    19038  1854 /*untilYear*/,
    -
    19039  6 /*untilMonth*/,
    -
    19040  28 /*untilDay*/,
    -
    19041  0 /*untilTimeCode (0/15)*/,
    -
    19042  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19043  },
    -
    19044  // 5:53:20 - HMT 1870
    -
    19045  {
    -
    19046  nullptr /*zonePolicy*/,
    -
    19047  "HMT" /*format*/,
    -
    19048  1413 /*offsetCode (21200/15)*/,
    -
    19049  5 /*offsetRemainder (21200%15)*/,
    -
    19050  0 /*deltaMinutes*/,
    -
    19051  1870 /*untilYear*/,
    -
    19052  1 /*untilMonth*/,
    -
    19053  1 /*untilDay*/,
    -
    19054  0 /*untilTimeCode (0/15)*/,
    -
    19055  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19056  },
    -
    19057  // 5:21:10 - MMT 1906 Jan 1
    -
    19058  {
    -
    19059  nullptr /*zonePolicy*/,
    -
    19060  "MMT" /*format*/,
    -
    19061  1284 /*offsetCode (19270/15)*/,
    -
    19062  10 /*offsetRemainder (19270%15)*/,
    -
    19063  0 /*deltaMinutes*/,
    -
    19064  1906 /*untilYear*/,
    -
    19065  1 /*untilMonth*/,
    -
    19066  1 /*untilDay*/,
    -
    19067  0 /*untilTimeCode (0/15)*/,
    -
    19068  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19069  },
    -
    19070  // 5:30 - IST 1941 Oct
    -
    19071  {
    -
    19072  nullptr /*zonePolicy*/,
    -
    19073  "IST" /*format*/,
    -
    19074  1320 /*offsetCode (19800/15)*/,
    -
    19075  0 /*offsetRemainder (19800%15)*/,
    -
    19076  0 /*deltaMinutes*/,
    -
    19077  1941 /*untilYear*/,
    -
    19078  10 /*untilMonth*/,
    -
    19079  1 /*untilDay*/,
    -
    19080  0 /*untilTimeCode (0/15)*/,
    -
    19081  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19082  },
    -
    19083  // 5:30 1:00 %z 1942 May 15
    -
    19084  {
    -
    19085  nullptr /*zonePolicy*/,
    -
    19086  "" /*format*/,
    -
    19087  1320 /*offsetCode (19800/15)*/,
    -
    19088  0 /*offsetRemainder (19800%15)*/,
    -
    19089  60 /*deltaMinutes*/,
    -
    19090  1942 /*untilYear*/,
    -
    19091  5 /*untilMonth*/,
    -
    19092  15 /*untilDay*/,
    -
    19093  0 /*untilTimeCode (0/15)*/,
    -
    19094  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19095  },
    -
    19096  // 5:30 - IST 1942 Sep
    -
    19097  {
    -
    19098  nullptr /*zonePolicy*/,
    -
    19099  "IST" /*format*/,
    -
    19100  1320 /*offsetCode (19800/15)*/,
    -
    19101  0 /*offsetRemainder (19800%15)*/,
    -
    19102  0 /*deltaMinutes*/,
    -
    19103  1942 /*untilYear*/,
    -
    19104  9 /*untilMonth*/,
    -
    19105  1 /*untilDay*/,
    -
    19106  0 /*untilTimeCode (0/15)*/,
    -
    19107  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19108  },
    -
    19109  // 5:30 1:00 %z 1945 Oct 15
    -
    19110  {
    -
    19111  nullptr /*zonePolicy*/,
    -
    19112  "" /*format*/,
    -
    19113  1320 /*offsetCode (19800/15)*/,
    -
    19114  0 /*offsetRemainder (19800%15)*/,
    -
    19115  60 /*deltaMinutes*/,
    -
    19116  1945 /*untilYear*/,
    -
    19117  10 /*untilMonth*/,
    -
    19118  15 /*untilDay*/,
    -
    19119  0 /*untilTimeCode (0/15)*/,
    -
    19120  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19121  },
    -
    19122  // 5:30 - IST
    -
    19123  {
    -
    19124  nullptr /*zonePolicy*/,
    -
    19125  "IST" /*format*/,
    -
    19126  1320 /*offsetCode (19800/15)*/,
    -
    19127  0 /*offsetRemainder (19800%15)*/,
    -
    19128  0 /*deltaMinutes*/,
    -
    19129  32767 /*untilYear*/,
    -
    19130  1 /*untilMonth*/,
    -
    19131  1 /*untilDay*/,
    -
    19132  0 /*untilTimeCode (0/15)*/,
    -
    19133  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19134  },
    -
    19135 
    -
    19136 };
    -
    19137 
    -
    19138 static const char kZoneNameAsia_Kolkata[] ACE_TIME_PROGMEM = "\x05" "Kolkata";
    -
    19139 
    -
    19140 const complete::Info::ZoneInfo kZoneAsia_Kolkata ACE_TIME_PROGMEM = {
    -
    19141  kZoneNameAsia_Kolkata /*name*/,
    -
    19142  0x72c06cd9 /*zoneId*/,
    -
    19143  &kZoneContext /*zoneContext*/,
    -
    19144  8 /*numEras*/,
    -
    19145  kZoneEraAsia_Kolkata /*eras*/,
    -
    19146  nullptr /*targetInfo*/,
    -
    19147 };
    -
    19148 
    -
    19149 //---------------------------------------------------------------------------
    -
    19150 // Zone name: Asia/Krasnoyarsk
    -
    19151 // Eras: 7
    -
    19152 //---------------------------------------------------------------------------
    -
    19153 
    -
    19154 static const complete::Info::ZoneEra kZoneEraAsia_Krasnoyarsk[] ACE_TIME_PROGMEM = {
    -
    19155  // 6:11:26 - LMT 1920 Jan 6
    -
    19156  {
    -
    19157  nullptr /*zonePolicy*/,
    -
    19158  "LMT" /*format*/,
    -
    19159  1485 /*offsetCode (22286/15)*/,
    -
    19160  11 /*offsetRemainder (22286%15)*/,
    -
    19161  0 /*deltaMinutes*/,
    -
    19162  1920 /*untilYear*/,
    -
    19163  1 /*untilMonth*/,
    -
    19164  6 /*untilDay*/,
    -
    19165  0 /*untilTimeCode (0/15)*/,
    -
    19166  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19167  },
    -
    19168  // 6:00 - %z 1930 Jun 21
    -
    19169  {
    -
    19170  nullptr /*zonePolicy*/,
    -
    19171  "" /*format*/,
    -
    19172  1440 /*offsetCode (21600/15)*/,
    -
    19173  0 /*offsetRemainder (21600%15)*/,
    -
    19174  0 /*deltaMinutes*/,
    -
    19175  1930 /*untilYear*/,
    -
    19176  6 /*untilMonth*/,
    -
    19177  21 /*untilDay*/,
    -
    19178  0 /*untilTimeCode (0/15)*/,
    -
    19179  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19180  },
    -
    19181  // 7:00 Russia %z 1991 Mar 31 2:00s
    -
    19182  {
    -
    19183  &kZonePolicyRussia /*zonePolicy*/,
    -
    19184  "" /*format*/,
    -
    19185  1680 /*offsetCode (25200/15)*/,
    -
    19186  0 /*offsetRemainder (25200%15)*/,
    -
    19187  0 /*deltaMinutes*/,
    -
    19188  1991 /*untilYear*/,
    -
    19189  3 /*untilMonth*/,
    -
    19190  31 /*untilDay*/,
    -
    19191  480 /*untilTimeCode (7200/15)*/,
    -
    19192  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19193  },
    -
    19194  // 6:00 Russia %z 1992 Jan 19 2:00s
    -
    19195  {
    -
    19196  &kZonePolicyRussia /*zonePolicy*/,
    -
    19197  "" /*format*/,
    -
    19198  1440 /*offsetCode (21600/15)*/,
    -
    19199  0 /*offsetRemainder (21600%15)*/,
    -
    19200  0 /*deltaMinutes*/,
    -
    19201  1992 /*untilYear*/,
    -
    19202  1 /*untilMonth*/,
    -
    19203  19 /*untilDay*/,
    -
    19204  480 /*untilTimeCode (7200/15)*/,
    -
    19205  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19206  },
    -
    19207  // 7:00 Russia %z 2011 Mar 27 2:00s
    -
    19208  {
    -
    19209  &kZonePolicyRussia /*zonePolicy*/,
    -
    19210  "" /*format*/,
    -
    19211  1680 /*offsetCode (25200/15)*/,
    -
    19212  0 /*offsetRemainder (25200%15)*/,
    -
    19213  0 /*deltaMinutes*/,
    -
    19214  2011 /*untilYear*/,
    -
    19215  3 /*untilMonth*/,
    -
    19216  27 /*untilDay*/,
    -
    19217  480 /*untilTimeCode (7200/15)*/,
    -
    19218  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19219  },
    -
    19220  // 8:00 - %z 2014 Oct 26 2:00s
    -
    19221  {
    -
    19222  nullptr /*zonePolicy*/,
    -
    19223  "" /*format*/,
    -
    19224  1920 /*offsetCode (28800/15)*/,
    -
    19225  0 /*offsetRemainder (28800%15)*/,
    -
    19226  0 /*deltaMinutes*/,
    -
    19227  2014 /*untilYear*/,
    -
    19228  10 /*untilMonth*/,
    -
    19229  26 /*untilDay*/,
    -
    19230  480 /*untilTimeCode (7200/15)*/,
    -
    19231  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19232  },
    -
    19233  // 7:00 - %z
    -
    19234  {
    -
    19235  nullptr /*zonePolicy*/,
    -
    19236  "" /*format*/,
    -
    19237  1680 /*offsetCode (25200/15)*/,
    -
    19238  0 /*offsetRemainder (25200%15)*/,
    -
    19239  0 /*deltaMinutes*/,
    -
    19240  32767 /*untilYear*/,
    -
    19241  1 /*untilMonth*/,
    -
    19242  1 /*untilDay*/,
    -
    19243  0 /*untilTimeCode (0/15)*/,
    -
    19244  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19245  },
    -
    19246 
    -
    19247 };
    -
    19248 
    -
    19249 static const char kZoneNameAsia_Krasnoyarsk[] ACE_TIME_PROGMEM = "\x05" "Krasnoyarsk";
    -
    19250 
    -
    19251 const complete::Info::ZoneInfo kZoneAsia_Krasnoyarsk ACE_TIME_PROGMEM = {
    -
    19252  kZoneNameAsia_Krasnoyarsk /*name*/,
    -
    19253  0xd0376c6a /*zoneId*/,
    -
    19254  &kZoneContext /*zoneContext*/,
    -
    19255  7 /*numEras*/,
    -
    19256  kZoneEraAsia_Krasnoyarsk /*eras*/,
    -
    19257  nullptr /*targetInfo*/,
    -
    19258 };
    -
    19259 
    -
    19260 //---------------------------------------------------------------------------
    -
    19261 // Zone name: Asia/Kuching
    -
    19262 // Eras: 5
    -
    19263 //---------------------------------------------------------------------------
    -
    19264 
    -
    19265 static const complete::Info::ZoneEra kZoneEraAsia_Kuching[] ACE_TIME_PROGMEM = {
    -
    19266  // 7:21:20 - LMT 1926 Mar
    -
    19267  {
    -
    19268  nullptr /*zonePolicy*/,
    -
    19269  "LMT" /*format*/,
    -
    19270  1765 /*offsetCode (26480/15)*/,
    -
    19271  5 /*offsetRemainder (26480%15)*/,
    -
    19272  0 /*deltaMinutes*/,
    -
    19273  1926 /*untilYear*/,
    -
    19274  3 /*untilMonth*/,
    -
    19275  1 /*untilDay*/,
    -
    19276  0 /*untilTimeCode (0/15)*/,
    -
    19277  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19278  },
    -
    19279  // 7:30 - %z 1933
    -
    19280  {
    -
    19281  nullptr /*zonePolicy*/,
    -
    19282  "" /*format*/,
    -
    19283  1800 /*offsetCode (27000/15)*/,
    -
    19284  0 /*offsetRemainder (27000%15)*/,
    -
    19285  0 /*deltaMinutes*/,
    -
    19286  1933 /*untilYear*/,
    -
    19287  1 /*untilMonth*/,
    -
    19288  1 /*untilDay*/,
    -
    19289  0 /*untilTimeCode (0/15)*/,
    -
    19290  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19291  },
    -
    19292  // 8:00 NBorneo %z 1942 Feb 16
    -
    19293  {
    -
    19294  &kZonePolicyNBorneo /*zonePolicy*/,
    -
    19295  "" /*format*/,
    -
    19296  1920 /*offsetCode (28800/15)*/,
    -
    19297  0 /*offsetRemainder (28800%15)*/,
    -
    19298  0 /*deltaMinutes*/,
    -
    19299  1942 /*untilYear*/,
    -
    19300  2 /*untilMonth*/,
    -
    19301  16 /*untilDay*/,
    -
    19302  0 /*untilTimeCode (0/15)*/,
    -
    19303  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19304  },
    -
    19305  // 9:00 - %z 1945 Sep 12
    -
    19306  {
    -
    19307  nullptr /*zonePolicy*/,
    -
    19308  "" /*format*/,
    -
    19309  2160 /*offsetCode (32400/15)*/,
    -
    19310  0 /*offsetRemainder (32400%15)*/,
    -
    19311  0 /*deltaMinutes*/,
    -
    19312  1945 /*untilYear*/,
    -
    19313  9 /*untilMonth*/,
    -
    19314  12 /*untilDay*/,
    -
    19315  0 /*untilTimeCode (0/15)*/,
    -
    19316  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19317  },
    -
    19318  // 8:00 - %z
    -
    19319  {
    -
    19320  nullptr /*zonePolicy*/,
    -
    19321  "" /*format*/,
    -
    19322  1920 /*offsetCode (28800/15)*/,
    -
    19323  0 /*offsetRemainder (28800%15)*/,
    -
    19324  0 /*deltaMinutes*/,
    -
    19325  32767 /*untilYear*/,
    -
    19326  1 /*untilMonth*/,
    -
    19327  1 /*untilDay*/,
    -
    19328  0 /*untilTimeCode (0/15)*/,
    -
    19329  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19330  },
    -
    19331 
    -
    19332 };
    -
    19333 
    -
    19334 static const char kZoneNameAsia_Kuching[] ACE_TIME_PROGMEM = "\x05" "Kuching";
    -
    19335 
    -
    19336 const complete::Info::ZoneInfo kZoneAsia_Kuching ACE_TIME_PROGMEM = {
    -
    19337  kZoneNameAsia_Kuching /*name*/,
    -
    19338  0x801b003b /*zoneId*/,
    -
    19339  &kZoneContext /*zoneContext*/,
    -
    19340  5 /*numEras*/,
    -
    19341  kZoneEraAsia_Kuching /*eras*/,
    -
    19342  nullptr /*targetInfo*/,
    -
    19343 };
    -
    19344 
    -
    19345 //---------------------------------------------------------------------------
    -
    19346 // Zone name: Asia/Macau
    -
    19347 // Eras: 4
    -
    19348 //---------------------------------------------------------------------------
    -
    19349 
    -
    19350 static const complete::Info::ZoneEra kZoneEraAsia_Macau[] ACE_TIME_PROGMEM = {
    -
    19351  // 7:34:10 - LMT 1904 Oct 30
    -
    19352  {
    -
    19353  nullptr /*zonePolicy*/,
    -
    19354  "LMT" /*format*/,
    -
    19355  1816 /*offsetCode (27250/15)*/,
    -
    19356  10 /*offsetRemainder (27250%15)*/,
    -
    19357  0 /*deltaMinutes*/,
    -
    19358  1904 /*untilYear*/,
    -
    19359  10 /*untilMonth*/,
    -
    19360  30 /*untilDay*/,
    -
    19361  0 /*untilTimeCode (0/15)*/,
    -
    19362  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19363  },
    -
    19364  // 8:00 - CST 1941 Dec 21 23:00
    -
    19365  {
    -
    19366  nullptr /*zonePolicy*/,
    -
    19367  "CST" /*format*/,
    -
    19368  1920 /*offsetCode (28800/15)*/,
    -
    19369  0 /*offsetRemainder (28800%15)*/,
    -
    19370  0 /*deltaMinutes*/,
    -
    19371  1941 /*untilYear*/,
    -
    19372  12 /*untilMonth*/,
    -
    19373  21 /*untilDay*/,
    -
    19374  5520 /*untilTimeCode (82800/15)*/,
    -
    19375  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19376  },
    -
    19377  // 9:00 Macau %z 1945 Sep 30 24:00
    -
    19378  {
    -
    19379  &kZonePolicyMacau /*zonePolicy*/,
    -
    19380  "" /*format*/,
    -
    19381  2160 /*offsetCode (32400/15)*/,
    -
    19382  0 /*offsetRemainder (32400%15)*/,
    -
    19383  0 /*deltaMinutes*/,
    -
    19384  1945 /*untilYear*/,
    -
    19385  9 /*untilMonth*/,
    -
    19386  30 /*untilDay*/,
    -
    19387  5760 /*untilTimeCode (86400/15)*/,
    -
    19388  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19389  },
    -
    19390  // 8:00 Macau C%sT
    -
    19391  {
    -
    19392  &kZonePolicyMacau /*zonePolicy*/,
    -
    19393  "C%T" /*format*/,
    -
    19394  1920 /*offsetCode (28800/15)*/,
    -
    19395  0 /*offsetRemainder (28800%15)*/,
    -
    19396  0 /*deltaMinutes*/,
    -
    19397  32767 /*untilYear*/,
    -
    19398  1 /*untilMonth*/,
    -
    19399  1 /*untilDay*/,
    -
    19400  0 /*untilTimeCode (0/15)*/,
    -
    19401  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19402  },
    -
    19403 
    -
    19404 };
    -
    19405 
    -
    19406 static const char kZoneNameAsia_Macau[] ACE_TIME_PROGMEM = "\x05" "Macau";
    -
    19407 
    -
    19408 const complete::Info::ZoneInfo kZoneAsia_Macau ACE_TIME_PROGMEM = {
    -
    19409  kZoneNameAsia_Macau /*name*/,
    -
    19410  0x155f88b9 /*zoneId*/,
    -
    19411  &kZoneContext /*zoneContext*/,
    -
    19412  4 /*numEras*/,
    -
    19413  kZoneEraAsia_Macau /*eras*/,
    -
    19414  nullptr /*targetInfo*/,
    -
    19415 };
    -
    19416 
    -
    19417 //---------------------------------------------------------------------------
    -
    19418 // Zone name: Asia/Magadan
    -
    19419 // Eras: 8
    -
    19420 //---------------------------------------------------------------------------
    -
    19421 
    -
    19422 static const complete::Info::ZoneEra kZoneEraAsia_Magadan[] ACE_TIME_PROGMEM = {
    -
    19423  // 10:03:12 - LMT 1924 May 2
    -
    19424  {
    -
    19425  nullptr /*zonePolicy*/,
    -
    19426  "LMT" /*format*/,
    -
    19427  2412 /*offsetCode (36192/15)*/,
    -
    19428  12 /*offsetRemainder (36192%15)*/,
    -
    19429  0 /*deltaMinutes*/,
    -
    19430  1924 /*untilYear*/,
    -
    19431  5 /*untilMonth*/,
    -
    19432  2 /*untilDay*/,
    -
    19433  0 /*untilTimeCode (0/15)*/,
    -
    19434  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19435  },
    -
    19436  // 10:00 - %z 1930 Jun 21
    -
    19437  {
    -
    19438  nullptr /*zonePolicy*/,
    -
    19439  "" /*format*/,
    -
    19440  2400 /*offsetCode (36000/15)*/,
    -
    19441  0 /*offsetRemainder (36000%15)*/,
    -
    19442  0 /*deltaMinutes*/,
    -
    19443  1930 /*untilYear*/,
    -
    19444  6 /*untilMonth*/,
    -
    19445  21 /*untilDay*/,
    -
    19446  0 /*untilTimeCode (0/15)*/,
    -
    19447  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19448  },
    -
    19449  // 11:00 Russia %z 1991 Mar 31 2:00s
    -
    19450  {
    -
    19451  &kZonePolicyRussia /*zonePolicy*/,
    -
    19452  "" /*format*/,
    -
    19453  2640 /*offsetCode (39600/15)*/,
    -
    19454  0 /*offsetRemainder (39600%15)*/,
    -
    19455  0 /*deltaMinutes*/,
    -
    19456  1991 /*untilYear*/,
    -
    19457  3 /*untilMonth*/,
    -
    19458  31 /*untilDay*/,
    -
    19459  480 /*untilTimeCode (7200/15)*/,
    -
    19460  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19461  },
    -
    19462  // 10:00 Russia %z 1992 Jan 19 2:00s
    -
    19463  {
    -
    19464  &kZonePolicyRussia /*zonePolicy*/,
    -
    19465  "" /*format*/,
    -
    19466  2400 /*offsetCode (36000/15)*/,
    -
    19467  0 /*offsetRemainder (36000%15)*/,
    -
    19468  0 /*deltaMinutes*/,
    -
    19469  1992 /*untilYear*/,
    -
    19470  1 /*untilMonth*/,
    -
    19471  19 /*untilDay*/,
    -
    19472  480 /*untilTimeCode (7200/15)*/,
    -
    19473  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19474  },
    -
    19475  // 11:00 Russia %z 2011 Mar 27 2:00s
    -
    19476  {
    -
    19477  &kZonePolicyRussia /*zonePolicy*/,
    -
    19478  "" /*format*/,
    -
    19479  2640 /*offsetCode (39600/15)*/,
    -
    19480  0 /*offsetRemainder (39600%15)*/,
    -
    19481  0 /*deltaMinutes*/,
    -
    19482  2011 /*untilYear*/,
    -
    19483  3 /*untilMonth*/,
    -
    19484  27 /*untilDay*/,
    -
    19485  480 /*untilTimeCode (7200/15)*/,
    -
    19486  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19487  },
    -
    19488  // 12:00 - %z 2014 Oct 26 2:00s
    -
    19489  {
    -
    19490  nullptr /*zonePolicy*/,
    -
    19491  "" /*format*/,
    -
    19492  2880 /*offsetCode (43200/15)*/,
    -
    19493  0 /*offsetRemainder (43200%15)*/,
    -
    19494  0 /*deltaMinutes*/,
    -
    19495  2014 /*untilYear*/,
    -
    19496  10 /*untilMonth*/,
    -
    19497  26 /*untilDay*/,
    -
    19498  480 /*untilTimeCode (7200/15)*/,
    -
    19499  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19500  },
    -
    19501  // 10:00 - %z 2016 Apr 24 2:00s
    -
    19502  {
    -
    19503  nullptr /*zonePolicy*/,
    -
    19504  "" /*format*/,
    -
    19505  2400 /*offsetCode (36000/15)*/,
    -
    19506  0 /*offsetRemainder (36000%15)*/,
    -
    19507  0 /*deltaMinutes*/,
    -
    19508  2016 /*untilYear*/,
    -
    19509  4 /*untilMonth*/,
    -
    19510  24 /*untilDay*/,
    -
    19511  480 /*untilTimeCode (7200/15)*/,
    -
    19512  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19513  },
    -
    19514  // 11:00 - %z
    -
    19515  {
    -
    19516  nullptr /*zonePolicy*/,
    -
    19517  "" /*format*/,
    -
    19518  2640 /*offsetCode (39600/15)*/,
    -
    19519  0 /*offsetRemainder (39600%15)*/,
    -
    19520  0 /*deltaMinutes*/,
    -
    19521  32767 /*untilYear*/,
    -
    19522  1 /*untilMonth*/,
    -
    19523  1 /*untilDay*/,
    -
    19524  0 /*untilTimeCode (0/15)*/,
    -
    19525  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19526  },
    -
    19527 
    -
    19528 };
    -
    19529 
    -
    19530 static const char kZoneNameAsia_Magadan[] ACE_TIME_PROGMEM = "\x05" "Magadan";
    -
    19531 
    -
    19532 const complete::Info::ZoneInfo kZoneAsia_Magadan ACE_TIME_PROGMEM = {
    -
    19533  kZoneNameAsia_Magadan /*name*/,
    -
    19534  0xebacc19b /*zoneId*/,
    -
    19535  &kZoneContext /*zoneContext*/,
    -
    19536  8 /*numEras*/,
    -
    19537  kZoneEraAsia_Magadan /*eras*/,
    -
    19538  nullptr /*targetInfo*/,
    -
    19539 };
    -
    19540 
    -
    19541 //---------------------------------------------------------------------------
    -
    19542 // Zone name: Asia/Makassar
    -
    19543 // Eras: 5
    -
    19544 //---------------------------------------------------------------------------
    -
    19545 
    -
    19546 static const complete::Info::ZoneEra kZoneEraAsia_Makassar[] ACE_TIME_PROGMEM = {
    -
    19547  // 7:57:36 - LMT 1920
    -
    19548  {
    -
    19549  nullptr /*zonePolicy*/,
    -
    19550  "LMT" /*format*/,
    -
    19551  1910 /*offsetCode (28656/15)*/,
    -
    19552  6 /*offsetRemainder (28656%15)*/,
    -
    19553  0 /*deltaMinutes*/,
    -
    19554  1920 /*untilYear*/,
    -
    19555  1 /*untilMonth*/,
    -
    19556  1 /*untilDay*/,
    -
    19557  0 /*untilTimeCode (0/15)*/,
    -
    19558  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19559  },
    -
    19560  // 7:57:36 - MMT 1932 Nov
    -
    19561  {
    -
    19562  nullptr /*zonePolicy*/,
    -
    19563  "MMT" /*format*/,
    -
    19564  1910 /*offsetCode (28656/15)*/,
    -
    19565  6 /*offsetRemainder (28656%15)*/,
    -
    19566  0 /*deltaMinutes*/,
    -
    19567  1932 /*untilYear*/,
    -
    19568  11 /*untilMonth*/,
    -
    19569  1 /*untilDay*/,
    -
    19570  0 /*untilTimeCode (0/15)*/,
    -
    19571  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19572  },
    -
    19573  // 8:00 - %z 1942 Feb 9
    -
    19574  {
    -
    19575  nullptr /*zonePolicy*/,
    -
    19576  "" /*format*/,
    -
    19577  1920 /*offsetCode (28800/15)*/,
    -
    19578  0 /*offsetRemainder (28800%15)*/,
    -
    19579  0 /*deltaMinutes*/,
    -
    19580  1942 /*untilYear*/,
    -
    19581  2 /*untilMonth*/,
    -
    19582  9 /*untilDay*/,
    -
    19583  0 /*untilTimeCode (0/15)*/,
    -
    19584  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19585  },
    -
    19586  // 9:00 - %z 1945 Sep 23
    -
    19587  {
    -
    19588  nullptr /*zonePolicy*/,
    -
    19589  "" /*format*/,
    -
    19590  2160 /*offsetCode (32400/15)*/,
    -
    19591  0 /*offsetRemainder (32400%15)*/,
    -
    19592  0 /*deltaMinutes*/,
    -
    19593  1945 /*untilYear*/,
    -
    19594  9 /*untilMonth*/,
    -
    19595  23 /*untilDay*/,
    -
    19596  0 /*untilTimeCode (0/15)*/,
    -
    19597  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19598  },
    -
    19599  // 8:00 - WITA
    -
    19600  {
    -
    19601  nullptr /*zonePolicy*/,
    -
    19602  "WITA" /*format*/,
    -
    19603  1920 /*offsetCode (28800/15)*/,
    -
    19604  0 /*offsetRemainder (28800%15)*/,
    -
    19605  0 /*deltaMinutes*/,
    -
    19606  32767 /*untilYear*/,
    -
    19607  1 /*untilMonth*/,
    -
    19608  1 /*untilDay*/,
    -
    19609  0 /*untilTimeCode (0/15)*/,
    -
    19610  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19611  },
    -
    19612 
    -
    19613 };
    -
    19614 
    -
    19615 static const char kZoneNameAsia_Makassar[] ACE_TIME_PROGMEM = "\x05" "Makassar";
    -
    19616 
    -
    19617 const complete::Info::ZoneInfo kZoneAsia_Makassar ACE_TIME_PROGMEM = {
    -
    19618  kZoneNameAsia_Makassar /*name*/,
    -
    19619  0x6aa21c85 /*zoneId*/,
    -
    19620  &kZoneContext /*zoneContext*/,
    -
    19621  5 /*numEras*/,
    -
    19622  kZoneEraAsia_Makassar /*eras*/,
    -
    19623  nullptr /*targetInfo*/,
    -
    19624 };
    -
    19625 
    -
    19626 //---------------------------------------------------------------------------
    -
    19627 // Zone name: Asia/Manila
    -
    19628 // Eras: 5
    -
    19629 //---------------------------------------------------------------------------
    -
    19630 
    -
    19631 static const complete::Info::ZoneEra kZoneEraAsia_Manila[] ACE_TIME_PROGMEM = {
    -
    19632  // -15:56:08 - LMT 1844 Dec 31
    -
    19633  {
    -
    19634  nullptr /*zonePolicy*/,
    -
    19635  "LMT" /*format*/,
    -
    19636  -3825 /*offsetCode (-57368/15)*/,
    -
    19637  7 /*offsetRemainder (-57368%15)*/,
    -
    19638  0 /*deltaMinutes*/,
    -
    19639  1844 /*untilYear*/,
    -
    19640  12 /*untilMonth*/,
    -
    19641  31 /*untilDay*/,
    -
    19642  0 /*untilTimeCode (0/15)*/,
    -
    19643  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19644  },
    -
    19645  // 8:03:52 - LMT 1899 Sep 6 4:00u
    -
    19646  {
    -
    19647  nullptr /*zonePolicy*/,
    -
    19648  "LMT" /*format*/,
    -
    19649  1935 /*offsetCode (29032/15)*/,
    -
    19650  7 /*offsetRemainder (29032%15)*/,
    -
    19651  0 /*deltaMinutes*/,
    -
    19652  1899 /*untilYear*/,
    -
    19653  9 /*untilMonth*/,
    -
    19654  6 /*untilDay*/,
    -
    19655  960 /*untilTimeCode (14400/15)*/,
    -
    19656  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    19657  },
    -
    19658  // 8:00 Phil P%sT 1942 Feb 11 24:00
    -
    19659  {
    -
    19660  &kZonePolicyPhil /*zonePolicy*/,
    -
    19661  "P%T" /*format*/,
    -
    19662  1920 /*offsetCode (28800/15)*/,
    -
    19663  0 /*offsetRemainder (28800%15)*/,
    -
    19664  0 /*deltaMinutes*/,
    -
    19665  1942 /*untilYear*/,
    -
    19666  2 /*untilMonth*/,
    -
    19667  11 /*untilDay*/,
    -
    19668  5760 /*untilTimeCode (86400/15)*/,
    -
    19669  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19670  },
    -
    19671  // 9:00 - JST 1945 Mar 4
    -
    19672  {
    -
    19673  nullptr /*zonePolicy*/,
    -
    19674  "JST" /*format*/,
    -
    19675  2160 /*offsetCode (32400/15)*/,
    -
    19676  0 /*offsetRemainder (32400%15)*/,
    -
    19677  0 /*deltaMinutes*/,
    -
    19678  1945 /*untilYear*/,
    -
    19679  3 /*untilMonth*/,
    -
    19680  4 /*untilDay*/,
    -
    19681  0 /*untilTimeCode (0/15)*/,
    -
    19682  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19683  },
    -
    19684  // 8:00 Phil P%sT
    -
    19685  {
    -
    19686  &kZonePolicyPhil /*zonePolicy*/,
    -
    19687  "P%T" /*format*/,
    -
    19688  1920 /*offsetCode (28800/15)*/,
    -
    19689  0 /*offsetRemainder (28800%15)*/,
    -
    19690  0 /*deltaMinutes*/,
    -
    19691  32767 /*untilYear*/,
    -
    19692  1 /*untilMonth*/,
    -
    19693  1 /*untilDay*/,
    -
    19694  0 /*untilTimeCode (0/15)*/,
    -
    19695  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19696  },
    -
    19697 
    -
    19698 };
    -
    19699 
    -
    19700 static const char kZoneNameAsia_Manila[] ACE_TIME_PROGMEM = "\x05" "Manila";
    -
    19701 
    -
    19702 const complete::Info::ZoneInfo kZoneAsia_Manila ACE_TIME_PROGMEM = {
    -
    19703  kZoneNameAsia_Manila /*name*/,
    -
    19704  0xc156c944 /*zoneId*/,
    -
    19705  &kZoneContext /*zoneContext*/,
    -
    19706  5 /*numEras*/,
    -
    19707  kZoneEraAsia_Manila /*eras*/,
    -
    19708  nullptr /*targetInfo*/,
    -
    19709 };
    -
    19710 
    -
    19711 //---------------------------------------------------------------------------
    -
    19712 // Zone name: Asia/Nicosia
    -
    19713 // Eras: 3
    -
    19714 //---------------------------------------------------------------------------
    -
    19715 
    -
    19716 static const complete::Info::ZoneEra kZoneEraAsia_Nicosia[] ACE_TIME_PROGMEM = {
    -
    19717  // 2:13:28 - LMT 1921 Nov 14
    -
    19718  {
    -
    19719  nullptr /*zonePolicy*/,
    -
    19720  "LMT" /*format*/,
    -
    19721  533 /*offsetCode (8008/15)*/,
    -
    19722  13 /*offsetRemainder (8008%15)*/,
    -
    19723  0 /*deltaMinutes*/,
    -
    19724  1921 /*untilYear*/,
    -
    19725  11 /*untilMonth*/,
    -
    19726  14 /*untilDay*/,
    -
    19727  0 /*untilTimeCode (0/15)*/,
    -
    19728  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19729  },
    -
    19730  // 2:00 Cyprus EE%sT 1998 Sep
    -
    19731  {
    -
    19732  &kZonePolicyCyprus /*zonePolicy*/,
    -
    19733  "EE%T" /*format*/,
    -
    19734  480 /*offsetCode (7200/15)*/,
    -
    19735  0 /*offsetRemainder (7200%15)*/,
    -
    19736  0 /*deltaMinutes*/,
    -
    19737  1998 /*untilYear*/,
    -
    19738  9 /*untilMonth*/,
    -
    19739  1 /*untilDay*/,
    -
    19740  0 /*untilTimeCode (0/15)*/,
    -
    19741  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19742  },
    -
    19743  // 2:00 EUAsia EE%sT
    -
    19744  {
    -
    19745  &kZonePolicyEUAsia /*zonePolicy*/,
    -
    19746  "EE%T" /*format*/,
    -
    19747  480 /*offsetCode (7200/15)*/,
    -
    19748  0 /*offsetRemainder (7200%15)*/,
    -
    19749  0 /*deltaMinutes*/,
    -
    19750  32767 /*untilYear*/,
    -
    19751  1 /*untilMonth*/,
    -
    19752  1 /*untilDay*/,
    -
    19753  0 /*untilTimeCode (0/15)*/,
    -
    19754  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19755  },
    -
    19756 
    -
    19757 };
    -
    19758 
    -
    19759 static const char kZoneNameAsia_Nicosia[] ACE_TIME_PROGMEM = "\x05" "Nicosia";
    -
    19760 
    -
    19761 const complete::Info::ZoneInfo kZoneAsia_Nicosia ACE_TIME_PROGMEM = {
    -
    19762  kZoneNameAsia_Nicosia /*name*/,
    -
    19763  0x4b0fcf78 /*zoneId*/,
    -
    19764  &kZoneContext /*zoneContext*/,
    -
    19765  3 /*numEras*/,
    -
    19766  kZoneEraAsia_Nicosia /*eras*/,
    -
    19767  nullptr /*targetInfo*/,
    -
    19768 };
    -
    19769 
    -
    19770 //---------------------------------------------------------------------------
    -
    19771 // Zone name: Asia/Novokuznetsk
    -
    19772 // Eras: 7
    -
    19773 //---------------------------------------------------------------------------
    -
    19774 
    -
    19775 static const complete::Info::ZoneEra kZoneEraAsia_Novokuznetsk[] ACE_TIME_PROGMEM = {
    -
    19776  // 5:48:48 - LMT 1924 May 1
    -
    19777  {
    -
    19778  nullptr /*zonePolicy*/,
    -
    19779  "LMT" /*format*/,
    -
    19780  1395 /*offsetCode (20928/15)*/,
    -
    19781  3 /*offsetRemainder (20928%15)*/,
    -
    19782  0 /*deltaMinutes*/,
    -
    19783  1924 /*untilYear*/,
    -
    19784  5 /*untilMonth*/,
    -
    19785  1 /*untilDay*/,
    -
    19786  0 /*untilTimeCode (0/15)*/,
    -
    19787  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19788  },
    -
    19789  // 6:00 - %z 1930 Jun 21
    -
    19790  {
    -
    19791  nullptr /*zonePolicy*/,
    -
    19792  "" /*format*/,
    -
    19793  1440 /*offsetCode (21600/15)*/,
    -
    19794  0 /*offsetRemainder (21600%15)*/,
    -
    19795  0 /*deltaMinutes*/,
    -
    19796  1930 /*untilYear*/,
    -
    19797  6 /*untilMonth*/,
    -
    19798  21 /*untilDay*/,
    -
    19799  0 /*untilTimeCode (0/15)*/,
    -
    19800  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19801  },
    -
    19802  // 7:00 Russia %z 1991 Mar 31 2:00s
    -
    19803  {
    -
    19804  &kZonePolicyRussia /*zonePolicy*/,
    -
    19805  "" /*format*/,
    -
    19806  1680 /*offsetCode (25200/15)*/,
    -
    19807  0 /*offsetRemainder (25200%15)*/,
    -
    19808  0 /*deltaMinutes*/,
    -
    19809  1991 /*untilYear*/,
    -
    19810  3 /*untilMonth*/,
    -
    19811  31 /*untilDay*/,
    -
    19812  480 /*untilTimeCode (7200/15)*/,
    -
    19813  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19814  },
    -
    19815  // 6:00 Russia %z 1992 Jan 19 2:00s
    -
    19816  {
    -
    19817  &kZonePolicyRussia /*zonePolicy*/,
    -
    19818  "" /*format*/,
    -
    19819  1440 /*offsetCode (21600/15)*/,
    -
    19820  0 /*offsetRemainder (21600%15)*/,
    -
    19821  0 /*deltaMinutes*/,
    -
    19822  1992 /*untilYear*/,
    -
    19823  1 /*untilMonth*/,
    -
    19824  19 /*untilDay*/,
    -
    19825  480 /*untilTimeCode (7200/15)*/,
    -
    19826  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19827  },
    -
    19828  // 7:00 Russia %z 2010 Mar 28 2:00s
    -
    19829  {
    -
    19830  &kZonePolicyRussia /*zonePolicy*/,
    -
    19831  "" /*format*/,
    -
    19832  1680 /*offsetCode (25200/15)*/,
    -
    19833  0 /*offsetRemainder (25200%15)*/,
    -
    19834  0 /*deltaMinutes*/,
    -
    19835  2010 /*untilYear*/,
    -
    19836  3 /*untilMonth*/,
    -
    19837  28 /*untilDay*/,
    -
    19838  480 /*untilTimeCode (7200/15)*/,
    -
    19839  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19840  },
    -
    19841  // 6:00 Russia %z 2011 Mar 27 2:00s
    -
    19842  {
    -
    19843  &kZonePolicyRussia /*zonePolicy*/,
    -
    19844  "" /*format*/,
    -
    19845  1440 /*offsetCode (21600/15)*/,
    -
    19846  0 /*offsetRemainder (21600%15)*/,
    -
    19847  0 /*deltaMinutes*/,
    -
    19848  2011 /*untilYear*/,
    -
    19849  3 /*untilMonth*/,
    -
    19850  27 /*untilDay*/,
    -
    19851  480 /*untilTimeCode (7200/15)*/,
    -
    19852  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19853  },
    -
    19854  // 7:00 - %z
    -
    19855  {
    -
    19856  nullptr /*zonePolicy*/,
    -
    19857  "" /*format*/,
    -
    19858  1680 /*offsetCode (25200/15)*/,
    -
    19859  0 /*offsetRemainder (25200%15)*/,
    -
    19860  0 /*deltaMinutes*/,
    -
    19861  32767 /*untilYear*/,
    -
    19862  1 /*untilMonth*/,
    -
    19863  1 /*untilDay*/,
    -
    19864  0 /*untilTimeCode (0/15)*/,
    -
    19865  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19866  },
    -
    19867 
    -
    19868 };
    -
    19869 
    -
    19870 static const char kZoneNameAsia_Novokuznetsk[] ACE_TIME_PROGMEM = "\x05" "Novokuznetsk";
    -
    19871 
    -
    19872 const complete::Info::ZoneInfo kZoneAsia_Novokuznetsk ACE_TIME_PROGMEM = {
    -
    19873  kZoneNameAsia_Novokuznetsk /*name*/,
    -
    19874  0x69264f93 /*zoneId*/,
    -
    19875  &kZoneContext /*zoneContext*/,
    -
    19876  7 /*numEras*/,
    -
    19877  kZoneEraAsia_Novokuznetsk /*eras*/,
    -
    19878  nullptr /*targetInfo*/,
    -
    19879 };
    -
    19880 
    -
    19881 //---------------------------------------------------------------------------
    -
    19882 // Zone name: Asia/Novosibirsk
    -
    19883 // Eras: 9
    -
    19884 //---------------------------------------------------------------------------
    -
    19885 
    -
    19886 static const complete::Info::ZoneEra kZoneEraAsia_Novosibirsk[] ACE_TIME_PROGMEM = {
    -
    19887  // 5:31:40 - LMT 1919 Dec 14 6:00
    -
    19888  {
    -
    19889  nullptr /*zonePolicy*/,
    -
    19890  "LMT" /*format*/,
    -
    19891  1326 /*offsetCode (19900/15)*/,
    -
    19892  10 /*offsetRemainder (19900%15)*/,
    -
    19893  0 /*deltaMinutes*/,
    -
    19894  1919 /*untilYear*/,
    -
    19895  12 /*untilMonth*/,
    -
    19896  14 /*untilDay*/,
    -
    19897  1440 /*untilTimeCode (21600/15)*/,
    -
    19898  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19899  },
    -
    19900  // 6:00 - %z 1930 Jun 21
    -
    19901  {
    -
    19902  nullptr /*zonePolicy*/,
    -
    19903  "" /*format*/,
    -
    19904  1440 /*offsetCode (21600/15)*/,
    -
    19905  0 /*offsetRemainder (21600%15)*/,
    -
    19906  0 /*deltaMinutes*/,
    -
    19907  1930 /*untilYear*/,
    -
    19908  6 /*untilMonth*/,
    -
    19909  21 /*untilDay*/,
    -
    19910  0 /*untilTimeCode (0/15)*/,
    -
    19911  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19912  },
    -
    19913  // 7:00 Russia %z 1991 Mar 31 2:00s
    -
    19914  {
    -
    19915  &kZonePolicyRussia /*zonePolicy*/,
    -
    19916  "" /*format*/,
    -
    19917  1680 /*offsetCode (25200/15)*/,
    -
    19918  0 /*offsetRemainder (25200%15)*/,
    -
    19919  0 /*deltaMinutes*/,
    -
    19920  1991 /*untilYear*/,
    -
    19921  3 /*untilMonth*/,
    -
    19922  31 /*untilDay*/,
    -
    19923  480 /*untilTimeCode (7200/15)*/,
    -
    19924  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19925  },
    -
    19926  // 6:00 Russia %z 1992 Jan 19 2:00s
    -
    19927  {
    -
    19928  &kZonePolicyRussia /*zonePolicy*/,
    -
    19929  "" /*format*/,
    -
    19930  1440 /*offsetCode (21600/15)*/,
    -
    19931  0 /*offsetRemainder (21600%15)*/,
    -
    19932  0 /*deltaMinutes*/,
    -
    19933  1992 /*untilYear*/,
    -
    19934  1 /*untilMonth*/,
    -
    19935  19 /*untilDay*/,
    -
    19936  480 /*untilTimeCode (7200/15)*/,
    -
    19937  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19938  },
    -
    19939  // 7:00 Russia %z 1993 May 23
    -
    19940  {
    -
    19941  &kZonePolicyRussia /*zonePolicy*/,
    -
    19942  "" /*format*/,
    -
    19943  1680 /*offsetCode (25200/15)*/,
    -
    19944  0 /*offsetRemainder (25200%15)*/,
    -
    19945  0 /*deltaMinutes*/,
    -
    19946  1993 /*untilYear*/,
    -
    19947  5 /*untilMonth*/,
    -
    19948  23 /*untilDay*/,
    -
    19949  0 /*untilTimeCode (0/15)*/,
    -
    19950  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19951  },
    -
    19952  // 6:00 Russia %z 2011 Mar 27 2:00s
    -
    19953  {
    -
    19954  &kZonePolicyRussia /*zonePolicy*/,
    -
    19955  "" /*format*/,
    -
    19956  1440 /*offsetCode (21600/15)*/,
    -
    19957  0 /*offsetRemainder (21600%15)*/,
    -
    19958  0 /*deltaMinutes*/,
    -
    19959  2011 /*untilYear*/,
    -
    19960  3 /*untilMonth*/,
    -
    19961  27 /*untilDay*/,
    -
    19962  480 /*untilTimeCode (7200/15)*/,
    -
    19963  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19964  },
    -
    19965  // 7:00 - %z 2014 Oct 26 2:00s
    -
    19966  {
    -
    19967  nullptr /*zonePolicy*/,
    -
    19968  "" /*format*/,
    -
    19969  1680 /*offsetCode (25200/15)*/,
    -
    19970  0 /*offsetRemainder (25200%15)*/,
    -
    19971  0 /*deltaMinutes*/,
    -
    19972  2014 /*untilYear*/,
    -
    19973  10 /*untilMonth*/,
    -
    19974  26 /*untilDay*/,
    -
    19975  480 /*untilTimeCode (7200/15)*/,
    -
    19976  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19977  },
    -
    19978  // 6:00 - %z 2016 Jul 24 2:00s
    -
    19979  {
    -
    19980  nullptr /*zonePolicy*/,
    -
    19981  "" /*format*/,
    -
    19982  1440 /*offsetCode (21600/15)*/,
    -
    19983  0 /*offsetRemainder (21600%15)*/,
    -
    19984  0 /*deltaMinutes*/,
    -
    19985  2016 /*untilYear*/,
    -
    19986  7 /*untilMonth*/,
    -
    19987  24 /*untilDay*/,
    -
    19988  480 /*untilTimeCode (7200/15)*/,
    -
    19989  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    19990  },
    -
    19991  // 7:00 - %z
    -
    19992  {
    -
    19993  nullptr /*zonePolicy*/,
    -
    19994  "" /*format*/,
    -
    19995  1680 /*offsetCode (25200/15)*/,
    -
    19996  0 /*offsetRemainder (25200%15)*/,
    -
    19997  0 /*deltaMinutes*/,
    -
    19998  32767 /*untilYear*/,
    -
    19999  1 /*untilMonth*/,
    -
    20000  1 /*untilDay*/,
    -
    20001  0 /*untilTimeCode (0/15)*/,
    -
    20002  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20003  },
    -
    20004 
    -
    20005 };
    -
    20006 
    -
    20007 static const char kZoneNameAsia_Novosibirsk[] ACE_TIME_PROGMEM = "\x05" "Novosibirsk";
    -
    20008 
    -
    20009 const complete::Info::ZoneInfo kZoneAsia_Novosibirsk ACE_TIME_PROGMEM = {
    -
    20010  kZoneNameAsia_Novosibirsk /*name*/,
    -
    20011  0xa2a435cb /*zoneId*/,
    -
    20012  &kZoneContext /*zoneContext*/,
    -
    20013  9 /*numEras*/,
    -
    20014  kZoneEraAsia_Novosibirsk /*eras*/,
    -
    20015  nullptr /*targetInfo*/,
    -
    20016 };
    -
    20017 
    -
    20018 //---------------------------------------------------------------------------
    -
    20019 // Zone name: Asia/Omsk
    -
    20020 // Eras: 7
    -
    20021 //---------------------------------------------------------------------------
    -
    20022 
    -
    20023 static const complete::Info::ZoneEra kZoneEraAsia_Omsk[] ACE_TIME_PROGMEM = {
    -
    20024  // 4:53:30 - LMT 1919 Nov 14
    -
    20025  {
    -
    20026  nullptr /*zonePolicy*/,
    -
    20027  "LMT" /*format*/,
    -
    20028  1174 /*offsetCode (17610/15)*/,
    -
    20029  0 /*offsetRemainder (17610%15)*/,
    -
    20030  0 /*deltaMinutes*/,
    -
    20031  1919 /*untilYear*/,
    -
    20032  11 /*untilMonth*/,
    -
    20033  14 /*untilDay*/,
    -
    20034  0 /*untilTimeCode (0/15)*/,
    -
    20035  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20036  },
    -
    20037  // 5:00 - %z 1930 Jun 21
    -
    20038  {
    -
    20039  nullptr /*zonePolicy*/,
    -
    20040  "" /*format*/,
    -
    20041  1200 /*offsetCode (18000/15)*/,
    -
    20042  0 /*offsetRemainder (18000%15)*/,
    -
    20043  0 /*deltaMinutes*/,
    -
    20044  1930 /*untilYear*/,
    -
    20045  6 /*untilMonth*/,
    -
    20046  21 /*untilDay*/,
    -
    20047  0 /*untilTimeCode (0/15)*/,
    -
    20048  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20049  },
    -
    20050  // 6:00 Russia %z 1991 Mar 31 2:00s
    -
    20051  {
    -
    20052  &kZonePolicyRussia /*zonePolicy*/,
    -
    20053  "" /*format*/,
    -
    20054  1440 /*offsetCode (21600/15)*/,
    -
    20055  0 /*offsetRemainder (21600%15)*/,
    -
    20056  0 /*deltaMinutes*/,
    -
    20057  1991 /*untilYear*/,
    -
    20058  3 /*untilMonth*/,
    -
    20059  31 /*untilDay*/,
    -
    20060  480 /*untilTimeCode (7200/15)*/,
    -
    20061  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20062  },
    -
    20063  // 5:00 Russia %z 1992 Jan 19 2:00s
    -
    20064  {
    -
    20065  &kZonePolicyRussia /*zonePolicy*/,
    -
    20066  "" /*format*/,
    -
    20067  1200 /*offsetCode (18000/15)*/,
    -
    20068  0 /*offsetRemainder (18000%15)*/,
    -
    20069  0 /*deltaMinutes*/,
    -
    20070  1992 /*untilYear*/,
    -
    20071  1 /*untilMonth*/,
    -
    20072  19 /*untilDay*/,
    -
    20073  480 /*untilTimeCode (7200/15)*/,
    -
    20074  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20075  },
    -
    20076  // 6:00 Russia %z 2011 Mar 27 2:00s
    -
    20077  {
    -
    20078  &kZonePolicyRussia /*zonePolicy*/,
    -
    20079  "" /*format*/,
    -
    20080  1440 /*offsetCode (21600/15)*/,
    -
    20081  0 /*offsetRemainder (21600%15)*/,
    -
    20082  0 /*deltaMinutes*/,
    -
    20083  2011 /*untilYear*/,
    -
    20084  3 /*untilMonth*/,
    -
    20085  27 /*untilDay*/,
    -
    20086  480 /*untilTimeCode (7200/15)*/,
    -
    20087  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20088  },
    -
    20089  // 7:00 - %z 2014 Oct 26 2:00s
    -
    20090  {
    -
    20091  nullptr /*zonePolicy*/,
    -
    20092  "" /*format*/,
    -
    20093  1680 /*offsetCode (25200/15)*/,
    -
    20094  0 /*offsetRemainder (25200%15)*/,
    -
    20095  0 /*deltaMinutes*/,
    -
    20096  2014 /*untilYear*/,
    -
    20097  10 /*untilMonth*/,
    -
    20098  26 /*untilDay*/,
    -
    20099  480 /*untilTimeCode (7200/15)*/,
    -
    20100  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20101  },
    -
    20102  // 6:00 - %z
    -
    20103  {
    -
    20104  nullptr /*zonePolicy*/,
    -
    20105  "" /*format*/,
    -
    20106  1440 /*offsetCode (21600/15)*/,
    -
    20107  0 /*offsetRemainder (21600%15)*/,
    -
    20108  0 /*deltaMinutes*/,
    -
    20109  32767 /*untilYear*/,
    -
    20110  1 /*untilMonth*/,
    -
    20111  1 /*untilDay*/,
    -
    20112  0 /*untilTimeCode (0/15)*/,
    -
    20113  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20114  },
    -
    20115 
    -
    20116 };
    -
    20117 
    -
    20118 static const char kZoneNameAsia_Omsk[] ACE_TIME_PROGMEM = "\x05" "Omsk";
    -
    20119 
    -
    20120 const complete::Info::ZoneInfo kZoneAsia_Omsk ACE_TIME_PROGMEM = {
    -
    20121  kZoneNameAsia_Omsk /*name*/,
    -
    20122  0x1faeddac /*zoneId*/,
    -
    20123  &kZoneContext /*zoneContext*/,
    -
    20124  7 /*numEras*/,
    -
    20125  kZoneEraAsia_Omsk /*eras*/,
    -
    20126  nullptr /*targetInfo*/,
    -
    20127 };
    -
    20128 
    -
    20129 //---------------------------------------------------------------------------
    -
    20130 // Zone name: Asia/Oral
    -
    20131 // Eras: 10
    -
    20132 //---------------------------------------------------------------------------
    -
    20133 
    -
    20134 static const complete::Info::ZoneEra kZoneEraAsia_Oral[] ACE_TIME_PROGMEM = {
    -
    20135  // 3:25:24 - LMT 1924 May 2
    -
    20136  {
    -
    20137  nullptr /*zonePolicy*/,
    -
    20138  "LMT" /*format*/,
    -
    20139  821 /*offsetCode (12324/15)*/,
    -
    20140  9 /*offsetRemainder (12324%15)*/,
    -
    20141  0 /*deltaMinutes*/,
    -
    20142  1924 /*untilYear*/,
    -
    20143  5 /*untilMonth*/,
    -
    20144  2 /*untilDay*/,
    -
    20145  0 /*untilTimeCode (0/15)*/,
    -
    20146  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20147  },
    -
    20148  // 3:00 - %z 1930 Jun 21
    -
    20149  {
    -
    20150  nullptr /*zonePolicy*/,
    -
    20151  "" /*format*/,
    -
    20152  720 /*offsetCode (10800/15)*/,
    -
    20153  0 /*offsetRemainder (10800%15)*/,
    -
    20154  0 /*deltaMinutes*/,
    -
    20155  1930 /*untilYear*/,
    -
    20156  6 /*untilMonth*/,
    -
    20157  21 /*untilDay*/,
    -
    20158  0 /*untilTimeCode (0/15)*/,
    -
    20159  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20160  },
    -
    20161  // 5:00 - %z 1981 Apr 1
    -
    20162  {
    -
    20163  nullptr /*zonePolicy*/,
    -
    20164  "" /*format*/,
    -
    20165  1200 /*offsetCode (18000/15)*/,
    -
    20166  0 /*offsetRemainder (18000%15)*/,
    -
    20167  0 /*deltaMinutes*/,
    -
    20168  1981 /*untilYear*/,
    -
    20169  4 /*untilMonth*/,
    -
    20170  1 /*untilDay*/,
    -
    20171  0 /*untilTimeCode (0/15)*/,
    -
    20172  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20173  },
    -
    20174  // 5:00 1:00 %z 1981 Oct 1
    -
    20175  {
    -
    20176  nullptr /*zonePolicy*/,
    -
    20177  "" /*format*/,
    -
    20178  1200 /*offsetCode (18000/15)*/,
    -
    20179  0 /*offsetRemainder (18000%15)*/,
    -
    20180  60 /*deltaMinutes*/,
    -
    20181  1981 /*untilYear*/,
    -
    20182  10 /*untilMonth*/,
    -
    20183  1 /*untilDay*/,
    -
    20184  0 /*untilTimeCode (0/15)*/,
    -
    20185  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20186  },
    -
    20187  // 6:00 - %z 1982 Apr 1
    -
    20188  {
    -
    20189  nullptr /*zonePolicy*/,
    -
    20190  "" /*format*/,
    -
    20191  1440 /*offsetCode (21600/15)*/,
    -
    20192  0 /*offsetRemainder (21600%15)*/,
    -
    20193  0 /*deltaMinutes*/,
    -
    20194  1982 /*untilYear*/,
    -
    20195  4 /*untilMonth*/,
    -
    20196  1 /*untilDay*/,
    -
    20197  0 /*untilTimeCode (0/15)*/,
    -
    20198  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20199  },
    -
    20200  // 5:00 RussiaAsia %z 1989 Mar 26 2:00s
    -
    20201  {
    -
    20202  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20203  "" /*format*/,
    -
    20204  1200 /*offsetCode (18000/15)*/,
    -
    20205  0 /*offsetRemainder (18000%15)*/,
    -
    20206  0 /*deltaMinutes*/,
    -
    20207  1989 /*untilYear*/,
    -
    20208  3 /*untilMonth*/,
    -
    20209  26 /*untilDay*/,
    -
    20210  480 /*untilTimeCode (7200/15)*/,
    -
    20211  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20212  },
    -
    20213  // 4:00 RussiaAsia %z 1992 Jan 19 2:00s
    -
    20214  {
    -
    20215  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20216  "" /*format*/,
    -
    20217  960 /*offsetCode (14400/15)*/,
    -
    20218  0 /*offsetRemainder (14400%15)*/,
    -
    20219  0 /*deltaMinutes*/,
    -
    20220  1992 /*untilYear*/,
    -
    20221  1 /*untilMonth*/,
    -
    20222  19 /*untilDay*/,
    -
    20223  480 /*untilTimeCode (7200/15)*/,
    -
    20224  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20225  },
    -
    20226  // 5:00 RussiaAsia %z 1992 Mar 29 2:00s
    -
    20227  {
    -
    20228  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20229  "" /*format*/,
    -
    20230  1200 /*offsetCode (18000/15)*/,
    -
    20231  0 /*offsetRemainder (18000%15)*/,
    -
    20232  0 /*deltaMinutes*/,
    -
    20233  1992 /*untilYear*/,
    -
    20234  3 /*untilMonth*/,
    -
    20235  29 /*untilDay*/,
    -
    20236  480 /*untilTimeCode (7200/15)*/,
    -
    20237  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20238  },
    -
    20239  // 4:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    20240  {
    -
    20241  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20242  "" /*format*/,
    -
    20243  960 /*offsetCode (14400/15)*/,
    -
    20244  0 /*offsetRemainder (14400%15)*/,
    -
    20245  0 /*deltaMinutes*/,
    -
    20246  2004 /*untilYear*/,
    -
    20247  10 /*untilMonth*/,
    -
    20248  31 /*untilDay*/,
    -
    20249  480 /*untilTimeCode (7200/15)*/,
    -
    20250  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20251  },
    -
    20252  // 5:00 - %z
    -
    20253  {
    -
    20254  nullptr /*zonePolicy*/,
    -
    20255  "" /*format*/,
    -
    20256  1200 /*offsetCode (18000/15)*/,
    -
    20257  0 /*offsetRemainder (18000%15)*/,
    -
    20258  0 /*deltaMinutes*/,
    -
    20259  32767 /*untilYear*/,
    -
    20260  1 /*untilMonth*/,
    -
    20261  1 /*untilDay*/,
    -
    20262  0 /*untilTimeCode (0/15)*/,
    -
    20263  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20264  },
    -
    20265 
    -
    20266 };
    -
    20267 
    -
    20268 static const char kZoneNameAsia_Oral[] ACE_TIME_PROGMEM = "\x05" "Oral";
    -
    20269 
    -
    20270 const complete::Info::ZoneInfo kZoneAsia_Oral ACE_TIME_PROGMEM = {
    -
    20271  kZoneNameAsia_Oral /*name*/,
    -
    20272  0x1faef0a0 /*zoneId*/,
    -
    20273  &kZoneContext /*zoneContext*/,
    -
    20274  10 /*numEras*/,
    -
    20275  kZoneEraAsia_Oral /*eras*/,
    -
    20276  nullptr /*targetInfo*/,
    -
    20277 };
    -
    20278 
    -
    20279 //---------------------------------------------------------------------------
    -
    20280 // Zone name: Asia/Pontianak
    -
    20281 // Eras: 9
    -
    20282 //---------------------------------------------------------------------------
    -
    20283 
    -
    20284 static const complete::Info::ZoneEra kZoneEraAsia_Pontianak[] ACE_TIME_PROGMEM = {
    -
    20285  // 7:17:20 - LMT 1908 May
    -
    20286  {
    -
    20287  nullptr /*zonePolicy*/,
    -
    20288  "LMT" /*format*/,
    -
    20289  1749 /*offsetCode (26240/15)*/,
    -
    20290  5 /*offsetRemainder (26240%15)*/,
    -
    20291  0 /*deltaMinutes*/,
    -
    20292  1908 /*untilYear*/,
    -
    20293  5 /*untilMonth*/,
    -
    20294  1 /*untilDay*/,
    -
    20295  0 /*untilTimeCode (0/15)*/,
    -
    20296  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20297  },
    -
    20298  // 7:17:20 - PMT 1932 Nov
    -
    20299  {
    -
    20300  nullptr /*zonePolicy*/,
    -
    20301  "PMT" /*format*/,
    -
    20302  1749 /*offsetCode (26240/15)*/,
    -
    20303  5 /*offsetRemainder (26240%15)*/,
    -
    20304  0 /*deltaMinutes*/,
    -
    20305  1932 /*untilYear*/,
    -
    20306  11 /*untilMonth*/,
    -
    20307  1 /*untilDay*/,
    -
    20308  0 /*untilTimeCode (0/15)*/,
    -
    20309  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20310  },
    -
    20311  // 7:30 - %z 1942 Jan 29
    -
    20312  {
    -
    20313  nullptr /*zonePolicy*/,
    -
    20314  "" /*format*/,
    -
    20315  1800 /*offsetCode (27000/15)*/,
    -
    20316  0 /*offsetRemainder (27000%15)*/,
    -
    20317  0 /*deltaMinutes*/,
    -
    20318  1942 /*untilYear*/,
    -
    20319  1 /*untilMonth*/,
    -
    20320  29 /*untilDay*/,
    -
    20321  0 /*untilTimeCode (0/15)*/,
    -
    20322  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20323  },
    -
    20324  // 9:00 - %z 1945 Sep 23
    -
    20325  {
    -
    20326  nullptr /*zonePolicy*/,
    -
    20327  "" /*format*/,
    -
    20328  2160 /*offsetCode (32400/15)*/,
    -
    20329  0 /*offsetRemainder (32400%15)*/,
    -
    20330  0 /*deltaMinutes*/,
    -
    20331  1945 /*untilYear*/,
    -
    20332  9 /*untilMonth*/,
    -
    20333  23 /*untilDay*/,
    -
    20334  0 /*untilTimeCode (0/15)*/,
    -
    20335  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20336  },
    -
    20337  // 7:30 - %z 1948 May
    -
    20338  {
    -
    20339  nullptr /*zonePolicy*/,
    -
    20340  "" /*format*/,
    -
    20341  1800 /*offsetCode (27000/15)*/,
    -
    20342  0 /*offsetRemainder (27000%15)*/,
    -
    20343  0 /*deltaMinutes*/,
    -
    20344  1948 /*untilYear*/,
    -
    20345  5 /*untilMonth*/,
    -
    20346  1 /*untilDay*/,
    -
    20347  0 /*untilTimeCode (0/15)*/,
    -
    20348  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20349  },
    -
    20350  // 8:00 - %z 1950 May
    -
    20351  {
    -
    20352  nullptr /*zonePolicy*/,
    -
    20353  "" /*format*/,
    -
    20354  1920 /*offsetCode (28800/15)*/,
    -
    20355  0 /*offsetRemainder (28800%15)*/,
    -
    20356  0 /*deltaMinutes*/,
    -
    20357  1950 /*untilYear*/,
    -
    20358  5 /*untilMonth*/,
    -
    20359  1 /*untilDay*/,
    -
    20360  0 /*untilTimeCode (0/15)*/,
    -
    20361  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20362  },
    -
    20363  // 7:30 - %z 1964
    -
    20364  {
    -
    20365  nullptr /*zonePolicy*/,
    -
    20366  "" /*format*/,
    -
    20367  1800 /*offsetCode (27000/15)*/,
    -
    20368  0 /*offsetRemainder (27000%15)*/,
    -
    20369  0 /*deltaMinutes*/,
    -
    20370  1964 /*untilYear*/,
    -
    20371  1 /*untilMonth*/,
    -
    20372  1 /*untilDay*/,
    -
    20373  0 /*untilTimeCode (0/15)*/,
    -
    20374  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20375  },
    -
    20376  // 8:00 - WITA 1988 Jan 1
    -
    20377  {
    -
    20378  nullptr /*zonePolicy*/,
    -
    20379  "WITA" /*format*/,
    -
    20380  1920 /*offsetCode (28800/15)*/,
    -
    20381  0 /*offsetRemainder (28800%15)*/,
    -
    20382  0 /*deltaMinutes*/,
    -
    20383  1988 /*untilYear*/,
    -
    20384  1 /*untilMonth*/,
    -
    20385  1 /*untilDay*/,
    -
    20386  0 /*untilTimeCode (0/15)*/,
    -
    20387  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20388  },
    -
    20389  // 7:00 - WIB
    -
    20390  {
    -
    20391  nullptr /*zonePolicy*/,
    -
    20392  "WIB" /*format*/,
    -
    20393  1680 /*offsetCode (25200/15)*/,
    -
    20394  0 /*offsetRemainder (25200%15)*/,
    -
    20395  0 /*deltaMinutes*/,
    -
    20396  32767 /*untilYear*/,
    -
    20397  1 /*untilMonth*/,
    -
    20398  1 /*untilDay*/,
    -
    20399  0 /*untilTimeCode (0/15)*/,
    -
    20400  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20401  },
    -
    20402 
    -
    20403 };
    -
    20404 
    -
    20405 static const char kZoneNameAsia_Pontianak[] ACE_TIME_PROGMEM = "\x05" "Pontianak";
    -
    20406 
    -
    20407 const complete::Info::ZoneInfo kZoneAsia_Pontianak ACE_TIME_PROGMEM = {
    -
    20408  kZoneNameAsia_Pontianak /*name*/,
    -
    20409  0x1a76c057 /*zoneId*/,
    -
    20410  &kZoneContext /*zoneContext*/,
    -
    20411  9 /*numEras*/,
    -
    20412  kZoneEraAsia_Pontianak /*eras*/,
    -
    20413  nullptr /*targetInfo*/,
    -
    20414 };
    -
    20415 
    -
    20416 //---------------------------------------------------------------------------
    -
    20417 // Zone name: Asia/Pyongyang
    -
    20418 // Eras: 6
    -
    20419 //---------------------------------------------------------------------------
    -
    20420 
    -
    20421 static const complete::Info::ZoneEra kZoneEraAsia_Pyongyang[] ACE_TIME_PROGMEM = {
    -
    20422  // 8:23:00 - LMT 1908 Apr 1
    -
    20423  {
    -
    20424  nullptr /*zonePolicy*/,
    -
    20425  "LMT" /*format*/,
    -
    20426  2012 /*offsetCode (30180/15)*/,
    -
    20427  0 /*offsetRemainder (30180%15)*/,
    -
    20428  0 /*deltaMinutes*/,
    -
    20429  1908 /*untilYear*/,
    -
    20430  4 /*untilMonth*/,
    -
    20431  1 /*untilDay*/,
    -
    20432  0 /*untilTimeCode (0/15)*/,
    -
    20433  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20434  },
    -
    20435  // 8:30 - KST 1912 Jan 1
    -
    20436  {
    -
    20437  nullptr /*zonePolicy*/,
    -
    20438  "KST" /*format*/,
    -
    20439  2040 /*offsetCode (30600/15)*/,
    -
    20440  0 /*offsetRemainder (30600%15)*/,
    -
    20441  0 /*deltaMinutes*/,
    -
    20442  1912 /*untilYear*/,
    -
    20443  1 /*untilMonth*/,
    -
    20444  1 /*untilDay*/,
    -
    20445  0 /*untilTimeCode (0/15)*/,
    -
    20446  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20447  },
    -
    20448  // 9:00 - JST 1945 Aug 24
    -
    20449  {
    -
    20450  nullptr /*zonePolicy*/,
    -
    20451  "JST" /*format*/,
    -
    20452  2160 /*offsetCode (32400/15)*/,
    -
    20453  0 /*offsetRemainder (32400%15)*/,
    -
    20454  0 /*deltaMinutes*/,
    -
    20455  1945 /*untilYear*/,
    -
    20456  8 /*untilMonth*/,
    -
    20457  24 /*untilDay*/,
    -
    20458  0 /*untilTimeCode (0/15)*/,
    -
    20459  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20460  },
    -
    20461  // 9:00 - KST 2015 Aug 15 00:00
    -
    20462  {
    -
    20463  nullptr /*zonePolicy*/,
    -
    20464  "KST" /*format*/,
    -
    20465  2160 /*offsetCode (32400/15)*/,
    -
    20466  0 /*offsetRemainder (32400%15)*/,
    -
    20467  0 /*deltaMinutes*/,
    -
    20468  2015 /*untilYear*/,
    -
    20469  8 /*untilMonth*/,
    -
    20470  15 /*untilDay*/,
    -
    20471  0 /*untilTimeCode (0/15)*/,
    -
    20472  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20473  },
    -
    20474  // 8:30 - KST 2018 May 4 23:30
    -
    20475  {
    -
    20476  nullptr /*zonePolicy*/,
    -
    20477  "KST" /*format*/,
    -
    20478  2040 /*offsetCode (30600/15)*/,
    -
    20479  0 /*offsetRemainder (30600%15)*/,
    -
    20480  0 /*deltaMinutes*/,
    -
    20481  2018 /*untilYear*/,
    -
    20482  5 /*untilMonth*/,
    -
    20483  4 /*untilDay*/,
    -
    20484  5640 /*untilTimeCode (84600/15)*/,
    -
    20485  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20486  },
    -
    20487  // 9:00 - KST
    -
    20488  {
    -
    20489  nullptr /*zonePolicy*/,
    -
    20490  "KST" /*format*/,
    -
    20491  2160 /*offsetCode (32400/15)*/,
    -
    20492  0 /*offsetRemainder (32400%15)*/,
    -
    20493  0 /*deltaMinutes*/,
    -
    20494  32767 /*untilYear*/,
    -
    20495  1 /*untilMonth*/,
    -
    20496  1 /*untilDay*/,
    -
    20497  0 /*untilTimeCode (0/15)*/,
    -
    20498  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20499  },
    -
    20500 
    -
    20501 };
    -
    20502 
    -
    20503 static const char kZoneNameAsia_Pyongyang[] ACE_TIME_PROGMEM = "\x05" "Pyongyang";
    -
    20504 
    -
    20505 const complete::Info::ZoneInfo kZoneAsia_Pyongyang ACE_TIME_PROGMEM = {
    -
    20506  kZoneNameAsia_Pyongyang /*name*/,
    -
    20507  0x93ed1c8e /*zoneId*/,
    -
    20508  &kZoneContext /*zoneContext*/,
    -
    20509  6 /*numEras*/,
    -
    20510  kZoneEraAsia_Pyongyang /*eras*/,
    -
    20511  nullptr /*targetInfo*/,
    -
    20512 };
    -
    20513 
    -
    20514 //---------------------------------------------------------------------------
    -
    20515 // Zone name: Asia/Qatar
    -
    20516 // Eras: 3
    -
    20517 //---------------------------------------------------------------------------
    -
    20518 
    -
    20519 static const complete::Info::ZoneEra kZoneEraAsia_Qatar[] ACE_TIME_PROGMEM = {
    -
    20520  // 3:26:08 - LMT 1920
    -
    20521  {
    -
    20522  nullptr /*zonePolicy*/,
    -
    20523  "LMT" /*format*/,
    -
    20524  824 /*offsetCode (12368/15)*/,
    -
    20525  8 /*offsetRemainder (12368%15)*/,
    -
    20526  0 /*deltaMinutes*/,
    -
    20527  1920 /*untilYear*/,
    -
    20528  1 /*untilMonth*/,
    -
    20529  1 /*untilDay*/,
    -
    20530  0 /*untilTimeCode (0/15)*/,
    -
    20531  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20532  },
    -
    20533  // 4:00 - %z 1972 Jun
    -
    20534  {
    -
    20535  nullptr /*zonePolicy*/,
    -
    20536  "" /*format*/,
    -
    20537  960 /*offsetCode (14400/15)*/,
    -
    20538  0 /*offsetRemainder (14400%15)*/,
    -
    20539  0 /*deltaMinutes*/,
    -
    20540  1972 /*untilYear*/,
    -
    20541  6 /*untilMonth*/,
    -
    20542  1 /*untilDay*/,
    -
    20543  0 /*untilTimeCode (0/15)*/,
    -
    20544  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20545  },
    -
    20546  // 3:00 - %z
    -
    20547  {
    -
    20548  nullptr /*zonePolicy*/,
    -
    20549  "" /*format*/,
    -
    20550  720 /*offsetCode (10800/15)*/,
    -
    20551  0 /*offsetRemainder (10800%15)*/,
    -
    20552  0 /*deltaMinutes*/,
    -
    20553  32767 /*untilYear*/,
    -
    20554  1 /*untilMonth*/,
    -
    20555  1 /*untilDay*/,
    -
    20556  0 /*untilTimeCode (0/15)*/,
    -
    20557  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20558  },
    -
    20559 
    -
    20560 };
    -
    20561 
    -
    20562 static const char kZoneNameAsia_Qatar[] ACE_TIME_PROGMEM = "\x05" "Qatar";
    -
    20563 
    -
    20564 const complete::Info::ZoneInfo kZoneAsia_Qatar ACE_TIME_PROGMEM = {
    -
    20565  kZoneNameAsia_Qatar /*name*/,
    -
    20566  0x15a8330b /*zoneId*/,
    -
    20567  &kZoneContext /*zoneContext*/,
    -
    20568  3 /*numEras*/,
    -
    20569  kZoneEraAsia_Qatar /*eras*/,
    -
    20570  nullptr /*targetInfo*/,
    -
    20571 };
    -
    20572 
    -
    20573 //---------------------------------------------------------------------------
    -
    20574 // Zone name: Asia/Qostanay
    -
    20575 // Eras: 10
    -
    20576 //---------------------------------------------------------------------------
    -
    20577 
    -
    20578 static const complete::Info::ZoneEra kZoneEraAsia_Qostanay[] ACE_TIME_PROGMEM = {
    -
    20579  // 4:14:28 - LMT 1924 May 2
    -
    20580  {
    -
    20581  nullptr /*zonePolicy*/,
    -
    20582  "LMT" /*format*/,
    -
    20583  1017 /*offsetCode (15268/15)*/,
    -
    20584  13 /*offsetRemainder (15268%15)*/,
    -
    20585  0 /*deltaMinutes*/,
    -
    20586  1924 /*untilYear*/,
    -
    20587  5 /*untilMonth*/,
    -
    20588  2 /*untilDay*/,
    -
    20589  0 /*untilTimeCode (0/15)*/,
    -
    20590  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20591  },
    -
    20592  // 4:00 - %z 1930 Jun 21
    -
    20593  {
    -
    20594  nullptr /*zonePolicy*/,
    -
    20595  "" /*format*/,
    -
    20596  960 /*offsetCode (14400/15)*/,
    -
    20597  0 /*offsetRemainder (14400%15)*/,
    -
    20598  0 /*deltaMinutes*/,
    -
    20599  1930 /*untilYear*/,
    -
    20600  6 /*untilMonth*/,
    -
    20601  21 /*untilDay*/,
    -
    20602  0 /*untilTimeCode (0/15)*/,
    -
    20603  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20604  },
    -
    20605  // 5:00 - %z 1981 Apr 1
    -
    20606  {
    -
    20607  nullptr /*zonePolicy*/,
    -
    20608  "" /*format*/,
    -
    20609  1200 /*offsetCode (18000/15)*/,
    -
    20610  0 /*offsetRemainder (18000%15)*/,
    -
    20611  0 /*deltaMinutes*/,
    -
    20612  1981 /*untilYear*/,
    -
    20613  4 /*untilMonth*/,
    -
    20614  1 /*untilDay*/,
    -
    20615  0 /*untilTimeCode (0/15)*/,
    -
    20616  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20617  },
    -
    20618  // 5:00 1:00 %z 1981 Oct 1
    -
    20619  {
    -
    20620  nullptr /*zonePolicy*/,
    -
    20621  "" /*format*/,
    -
    20622  1200 /*offsetCode (18000/15)*/,
    -
    20623  0 /*offsetRemainder (18000%15)*/,
    -
    20624  60 /*deltaMinutes*/,
    -
    20625  1981 /*untilYear*/,
    -
    20626  10 /*untilMonth*/,
    -
    20627  1 /*untilDay*/,
    -
    20628  0 /*untilTimeCode (0/15)*/,
    -
    20629  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20630  },
    -
    20631  // 6:00 - %z 1982 Apr 1
    -
    20632  {
    -
    20633  nullptr /*zonePolicy*/,
    -
    20634  "" /*format*/,
    -
    20635  1440 /*offsetCode (21600/15)*/,
    -
    20636  0 /*offsetRemainder (21600%15)*/,
    -
    20637  0 /*deltaMinutes*/,
    -
    20638  1982 /*untilYear*/,
    -
    20639  4 /*untilMonth*/,
    -
    20640  1 /*untilDay*/,
    -
    20641  0 /*untilTimeCode (0/15)*/,
    -
    20642  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20643  },
    -
    20644  // 5:00 RussiaAsia %z 1991 Mar 31 2:00s
    -
    20645  {
    -
    20646  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20647  "" /*format*/,
    -
    20648  1200 /*offsetCode (18000/15)*/,
    -
    20649  0 /*offsetRemainder (18000%15)*/,
    -
    20650  0 /*deltaMinutes*/,
    -
    20651  1991 /*untilYear*/,
    -
    20652  3 /*untilMonth*/,
    -
    20653  31 /*untilDay*/,
    -
    20654  480 /*untilTimeCode (7200/15)*/,
    -
    20655  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20656  },
    -
    20657  // 4:00 RussiaAsia %z 1992 Jan 19 2:00s
    -
    20658  {
    -
    20659  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20660  "" /*format*/,
    -
    20661  960 /*offsetCode (14400/15)*/,
    -
    20662  0 /*offsetRemainder (14400%15)*/,
    -
    20663  0 /*deltaMinutes*/,
    -
    20664  1992 /*untilYear*/,
    -
    20665  1 /*untilMonth*/,
    -
    20666  19 /*untilDay*/,
    -
    20667  480 /*untilTimeCode (7200/15)*/,
    -
    20668  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20669  },
    -
    20670  // 5:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    20671  {
    -
    20672  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20673  "" /*format*/,
    -
    20674  1200 /*offsetCode (18000/15)*/,
    -
    20675  0 /*offsetRemainder (18000%15)*/,
    -
    20676  0 /*deltaMinutes*/,
    -
    20677  2004 /*untilYear*/,
    -
    20678  10 /*untilMonth*/,
    -
    20679  31 /*untilDay*/,
    -
    20680  480 /*untilTimeCode (7200/15)*/,
    -
    20681  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20682  },
    -
    20683  // 6:00 - %z 2024 Mar 1 0:00
    -
    20684  {
    -
    20685  nullptr /*zonePolicy*/,
    -
    20686  "" /*format*/,
    -
    20687  1440 /*offsetCode (21600/15)*/,
    -
    20688  0 /*offsetRemainder (21600%15)*/,
    -
    20689  0 /*deltaMinutes*/,
    -
    20690  2024 /*untilYear*/,
    -
    20691  3 /*untilMonth*/,
    -
    20692  1 /*untilDay*/,
    -
    20693  0 /*untilTimeCode (0/15)*/,
    -
    20694  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20695  },
    -
    20696  // 5:00 - %z
    -
    20697  {
    -
    20698  nullptr /*zonePolicy*/,
    -
    20699  "" /*format*/,
    -
    20700  1200 /*offsetCode (18000/15)*/,
    -
    20701  0 /*offsetRemainder (18000%15)*/,
    -
    20702  0 /*deltaMinutes*/,
    -
    20703  32767 /*untilYear*/,
    -
    20704  1 /*untilMonth*/,
    -
    20705  1 /*untilDay*/,
    -
    20706  0 /*untilTimeCode (0/15)*/,
    -
    20707  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20708  },
    -
    20709 
    -
    20710 };
    -
    20711 
    -
    20712 static const char kZoneNameAsia_Qostanay[] ACE_TIME_PROGMEM = "\x05" "Qostanay";
    -
    20713 
    -
    20714 const complete::Info::ZoneInfo kZoneAsia_Qostanay ACE_TIME_PROGMEM = {
    -
    20715  kZoneNameAsia_Qostanay /*name*/,
    -
    20716  0x654fe522 /*zoneId*/,
    -
    20717  &kZoneContext /*zoneContext*/,
    -
    20718  10 /*numEras*/,
    -
    20719  kZoneEraAsia_Qostanay /*eras*/,
    -
    20720  nullptr /*targetInfo*/,
    -
    20721 };
    -
    20722 
    -
    20723 //---------------------------------------------------------------------------
    -
    20724 // Zone name: Asia/Qyzylorda
    -
    20725 // Eras: 12
    -
    20726 //---------------------------------------------------------------------------
    -
    20727 
    -
    20728 static const complete::Info::ZoneEra kZoneEraAsia_Qyzylorda[] ACE_TIME_PROGMEM = {
    -
    20729  // 4:21:52 - LMT 1924 May 2
    -
    20730  {
    -
    20731  nullptr /*zonePolicy*/,
    -
    20732  "LMT" /*format*/,
    -
    20733  1047 /*offsetCode (15712/15)*/,
    -
    20734  7 /*offsetRemainder (15712%15)*/,
    -
    20735  0 /*deltaMinutes*/,
    -
    20736  1924 /*untilYear*/,
    -
    20737  5 /*untilMonth*/,
    -
    20738  2 /*untilDay*/,
    -
    20739  0 /*untilTimeCode (0/15)*/,
    -
    20740  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20741  },
    -
    20742  // 4:00 - %z 1930 Jun 21
    -
    20743  {
    -
    20744  nullptr /*zonePolicy*/,
    -
    20745  "" /*format*/,
    -
    20746  960 /*offsetCode (14400/15)*/,
    -
    20747  0 /*offsetRemainder (14400%15)*/,
    -
    20748  0 /*deltaMinutes*/,
    -
    20749  1930 /*untilYear*/,
    -
    20750  6 /*untilMonth*/,
    -
    20751  21 /*untilDay*/,
    -
    20752  0 /*untilTimeCode (0/15)*/,
    -
    20753  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20754  },
    -
    20755  // 5:00 - %z 1981 Apr 1
    -
    20756  {
    -
    20757  nullptr /*zonePolicy*/,
    -
    20758  "" /*format*/,
    -
    20759  1200 /*offsetCode (18000/15)*/,
    -
    20760  0 /*offsetRemainder (18000%15)*/,
    -
    20761  0 /*deltaMinutes*/,
    -
    20762  1981 /*untilYear*/,
    -
    20763  4 /*untilMonth*/,
    -
    20764  1 /*untilDay*/,
    -
    20765  0 /*untilTimeCode (0/15)*/,
    -
    20766  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20767  },
    -
    20768  // 5:00 1:00 %z 1981 Oct 1
    -
    20769  {
    -
    20770  nullptr /*zonePolicy*/,
    -
    20771  "" /*format*/,
    -
    20772  1200 /*offsetCode (18000/15)*/,
    -
    20773  0 /*offsetRemainder (18000%15)*/,
    -
    20774  60 /*deltaMinutes*/,
    -
    20775  1981 /*untilYear*/,
    -
    20776  10 /*untilMonth*/,
    -
    20777  1 /*untilDay*/,
    -
    20778  0 /*untilTimeCode (0/15)*/,
    -
    20779  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20780  },
    -
    20781  // 6:00 - %z 1982 Apr 1
    -
    20782  {
    -
    20783  nullptr /*zonePolicy*/,
    -
    20784  "" /*format*/,
    -
    20785  1440 /*offsetCode (21600/15)*/,
    -
    20786  0 /*offsetRemainder (21600%15)*/,
    -
    20787  0 /*deltaMinutes*/,
    -
    20788  1982 /*untilYear*/,
    -
    20789  4 /*untilMonth*/,
    -
    20790  1 /*untilDay*/,
    -
    20791  0 /*untilTimeCode (0/15)*/,
    -
    20792  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20793  },
    -
    20794  // 5:00 RussiaAsia %z 1991 Mar 31 2:00s
    -
    20795  {
    -
    20796  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20797  "" /*format*/,
    -
    20798  1200 /*offsetCode (18000/15)*/,
    -
    20799  0 /*offsetRemainder (18000%15)*/,
    -
    20800  0 /*deltaMinutes*/,
    -
    20801  1991 /*untilYear*/,
    -
    20802  3 /*untilMonth*/,
    -
    20803  31 /*untilDay*/,
    -
    20804  480 /*untilTimeCode (7200/15)*/,
    -
    20805  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20806  },
    -
    20807  // 4:00 RussiaAsia %z 1991 Sep 29 2:00s
    -
    20808  {
    -
    20809  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20810  "" /*format*/,
    -
    20811  960 /*offsetCode (14400/15)*/,
    -
    20812  0 /*offsetRemainder (14400%15)*/,
    -
    20813  0 /*deltaMinutes*/,
    -
    20814  1991 /*untilYear*/,
    -
    20815  9 /*untilMonth*/,
    -
    20816  29 /*untilDay*/,
    -
    20817  480 /*untilTimeCode (7200/15)*/,
    -
    20818  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20819  },
    -
    20820  // 5:00 RussiaAsia %z 1992 Jan 19 2:00s
    -
    20821  {
    -
    20822  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20823  "" /*format*/,
    -
    20824  1200 /*offsetCode (18000/15)*/,
    -
    20825  0 /*offsetRemainder (18000%15)*/,
    -
    20826  0 /*deltaMinutes*/,
    -
    20827  1992 /*untilYear*/,
    -
    20828  1 /*untilMonth*/,
    -
    20829  19 /*untilDay*/,
    -
    20830  480 /*untilTimeCode (7200/15)*/,
    -
    20831  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20832  },
    -
    20833  // 6:00 RussiaAsia %z 1992 Mar 29 2:00s
    -
    20834  {
    -
    20835  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20836  "" /*format*/,
    -
    20837  1440 /*offsetCode (21600/15)*/,
    -
    20838  0 /*offsetRemainder (21600%15)*/,
    -
    20839  0 /*deltaMinutes*/,
    -
    20840  1992 /*untilYear*/,
    -
    20841  3 /*untilMonth*/,
    -
    20842  29 /*untilDay*/,
    -
    20843  480 /*untilTimeCode (7200/15)*/,
    -
    20844  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20845  },
    -
    20846  // 5:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    20847  {
    -
    20848  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    20849  "" /*format*/,
    -
    20850  1200 /*offsetCode (18000/15)*/,
    -
    20851  0 /*offsetRemainder (18000%15)*/,
    -
    20852  0 /*deltaMinutes*/,
    -
    20853  2004 /*untilYear*/,
    -
    20854  10 /*untilMonth*/,
    -
    20855  31 /*untilDay*/,
    -
    20856  480 /*untilTimeCode (7200/15)*/,
    -
    20857  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20858  },
    -
    20859  // 6:00 - %z 2018 Dec 21 0:00
    -
    20860  {
    -
    20861  nullptr /*zonePolicy*/,
    -
    20862  "" /*format*/,
    -
    20863  1440 /*offsetCode (21600/15)*/,
    -
    20864  0 /*offsetRemainder (21600%15)*/,
    -
    20865  0 /*deltaMinutes*/,
    -
    20866  2018 /*untilYear*/,
    -
    20867  12 /*untilMonth*/,
    -
    20868  21 /*untilDay*/,
    -
    20869  0 /*untilTimeCode (0/15)*/,
    -
    20870  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20871  },
    -
    20872  // 5:00 - %z
    -
    20873  {
    -
    20874  nullptr /*zonePolicy*/,
    -
    20875  "" /*format*/,
    -
    20876  1200 /*offsetCode (18000/15)*/,
    -
    20877  0 /*offsetRemainder (18000%15)*/,
    -
    20878  0 /*deltaMinutes*/,
    -
    20879  32767 /*untilYear*/,
    -
    20880  1 /*untilMonth*/,
    -
    20881  1 /*untilDay*/,
    -
    20882  0 /*untilTimeCode (0/15)*/,
    -
    20883  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20884  },
    -
    20885 
    -
    20886 };
    -
    20887 
    -
    20888 static const char kZoneNameAsia_Qyzylorda[] ACE_TIME_PROGMEM = "\x05" "Qyzylorda";
    -
    20889 
    -
    20890 const complete::Info::ZoneInfo kZoneAsia_Qyzylorda ACE_TIME_PROGMEM = {
    -
    20891  kZoneNameAsia_Qyzylorda /*name*/,
    -
    20892  0x71282e81 /*zoneId*/,
    -
    20893  &kZoneContext /*zoneContext*/,
    -
    20894  12 /*numEras*/,
    -
    20895  kZoneEraAsia_Qyzylorda /*eras*/,
    -
    20896  nullptr /*targetInfo*/,
    -
    20897 };
    -
    20898 
    -
    20899 //---------------------------------------------------------------------------
    -
    20900 // Zone name: Asia/Riyadh
    -
    20901 // Eras: 2
    -
    20902 //---------------------------------------------------------------------------
    -
    20903 
    -
    20904 static const complete::Info::ZoneEra kZoneEraAsia_Riyadh[] ACE_TIME_PROGMEM = {
    -
    20905  // 3:06:52 - LMT 1947 Mar 14
    -
    20906  {
    -
    20907  nullptr /*zonePolicy*/,
    -
    20908  "LMT" /*format*/,
    -
    20909  747 /*offsetCode (11212/15)*/,
    -
    20910  7 /*offsetRemainder (11212%15)*/,
    -
    20911  0 /*deltaMinutes*/,
    -
    20912  1947 /*untilYear*/,
    -
    20913  3 /*untilMonth*/,
    -
    20914  14 /*untilDay*/,
    -
    20915  0 /*untilTimeCode (0/15)*/,
    -
    20916  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20917  },
    -
    20918  // 3:00 - %z
    -
    20919  {
    -
    20920  nullptr /*zonePolicy*/,
    -
    20921  "" /*format*/,
    -
    20922  720 /*offsetCode (10800/15)*/,
    -
    20923  0 /*offsetRemainder (10800%15)*/,
    -
    20924  0 /*deltaMinutes*/,
    -
    20925  32767 /*untilYear*/,
    -
    20926  1 /*untilMonth*/,
    -
    20927  1 /*untilDay*/,
    -
    20928  0 /*untilTimeCode (0/15)*/,
    -
    20929  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20930  },
    -
    20931 
    -
    20932 };
    -
    20933 
    -
    20934 static const char kZoneNameAsia_Riyadh[] ACE_TIME_PROGMEM = "\x05" "Riyadh";
    -
    20935 
    -
    20936 const complete::Info::ZoneInfo kZoneAsia_Riyadh ACE_TIME_PROGMEM = {
    -
    20937  kZoneNameAsia_Riyadh /*name*/,
    -
    20938  0xcd973d93 /*zoneId*/,
    -
    20939  &kZoneContext /*zoneContext*/,
    -
    20940  2 /*numEras*/,
    -
    20941  kZoneEraAsia_Riyadh /*eras*/,
    -
    20942  nullptr /*targetInfo*/,
    -
    20943 };
    -
    20944 
    -
    20945 //---------------------------------------------------------------------------
    -
    20946 // Zone name: Asia/Sakhalin
    -
    20947 // Eras: 9
    -
    20948 //---------------------------------------------------------------------------
    -
    20949 
    -
    20950 static const complete::Info::ZoneEra kZoneEraAsia_Sakhalin[] ACE_TIME_PROGMEM = {
    -
    20951  // 9:30:48 - LMT 1905 Aug 23
    -
    20952  {
    -
    20953  nullptr /*zonePolicy*/,
    -
    20954  "LMT" /*format*/,
    -
    20955  2283 /*offsetCode (34248/15)*/,
    -
    20956  3 /*offsetRemainder (34248%15)*/,
    -
    20957  0 /*deltaMinutes*/,
    -
    20958  1905 /*untilYear*/,
    -
    20959  8 /*untilMonth*/,
    -
    20960  23 /*untilDay*/,
    -
    20961  0 /*untilTimeCode (0/15)*/,
    -
    20962  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20963  },
    -
    20964  // 9:00 - %z 1945 Aug 25
    -
    20965  {
    -
    20966  nullptr /*zonePolicy*/,
    -
    20967  "" /*format*/,
    -
    20968  2160 /*offsetCode (32400/15)*/,
    -
    20969  0 /*offsetRemainder (32400%15)*/,
    -
    20970  0 /*deltaMinutes*/,
    -
    20971  1945 /*untilYear*/,
    -
    20972  8 /*untilMonth*/,
    -
    20973  25 /*untilDay*/,
    -
    20974  0 /*untilTimeCode (0/15)*/,
    -
    20975  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20976  },
    -
    20977  // 11:00 Russia %z 1991 Mar 31 2:00s
    -
    20978  {
    -
    20979  &kZonePolicyRussia /*zonePolicy*/,
    -
    20980  "" /*format*/,
    -
    20981  2640 /*offsetCode (39600/15)*/,
    -
    20982  0 /*offsetRemainder (39600%15)*/,
    -
    20983  0 /*deltaMinutes*/,
    -
    20984  1991 /*untilYear*/,
    -
    20985  3 /*untilMonth*/,
    -
    20986  31 /*untilDay*/,
    -
    20987  480 /*untilTimeCode (7200/15)*/,
    -
    20988  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20989  },
    -
    20990  // 10:00 Russia %z 1992 Jan 19 2:00s
    -
    20991  {
    -
    20992  &kZonePolicyRussia /*zonePolicy*/,
    -
    20993  "" /*format*/,
    -
    20994  2400 /*offsetCode (36000/15)*/,
    -
    20995  0 /*offsetRemainder (36000%15)*/,
    -
    20996  0 /*deltaMinutes*/,
    -
    20997  1992 /*untilYear*/,
    -
    20998  1 /*untilMonth*/,
    -
    20999  19 /*untilDay*/,
    -
    21000  480 /*untilTimeCode (7200/15)*/,
    -
    21001  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21002  },
    -
    21003  // 11:00 Russia %z 1997 Mar lastSun 2:00s
    -
    21004  {
    -
    21005  &kZonePolicyRussia /*zonePolicy*/,
    -
    21006  "" /*format*/,
    -
    21007  2640 /*offsetCode (39600/15)*/,
    -
    21008  0 /*offsetRemainder (39600%15)*/,
    -
    21009  0 /*deltaMinutes*/,
    -
    21010  1997 /*untilYear*/,
    -
    21011  3 /*untilMonth*/,
    -
    21012  30 /*untilDay*/,
    -
    21013  480 /*untilTimeCode (7200/15)*/,
    -
    21014  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21015  },
    -
    21016  // 10:00 Russia %z 2011 Mar 27 2:00s
    -
    21017  {
    -
    21018  &kZonePolicyRussia /*zonePolicy*/,
    -
    21019  "" /*format*/,
    -
    21020  2400 /*offsetCode (36000/15)*/,
    -
    21021  0 /*offsetRemainder (36000%15)*/,
    -
    21022  0 /*deltaMinutes*/,
    -
    21023  2011 /*untilYear*/,
    -
    21024  3 /*untilMonth*/,
    -
    21025  27 /*untilDay*/,
    -
    21026  480 /*untilTimeCode (7200/15)*/,
    -
    21027  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21028  },
    -
    21029  // 11:00 - %z 2014 Oct 26 2:00s
    -
    21030  {
    -
    21031  nullptr /*zonePolicy*/,
    -
    21032  "" /*format*/,
    -
    21033  2640 /*offsetCode (39600/15)*/,
    -
    21034  0 /*offsetRemainder (39600%15)*/,
    -
    21035  0 /*deltaMinutes*/,
    -
    21036  2014 /*untilYear*/,
    -
    21037  10 /*untilMonth*/,
    -
    21038  26 /*untilDay*/,
    -
    21039  480 /*untilTimeCode (7200/15)*/,
    -
    21040  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21041  },
    -
    21042  // 10:00 - %z 2016 Mar 27 2:00s
    -
    21043  {
    -
    21044  nullptr /*zonePolicy*/,
    -
    21045  "" /*format*/,
    -
    21046  2400 /*offsetCode (36000/15)*/,
    -
    21047  0 /*offsetRemainder (36000%15)*/,
    -
    21048  0 /*deltaMinutes*/,
    -
    21049  2016 /*untilYear*/,
    -
    21050  3 /*untilMonth*/,
    -
    21051  27 /*untilDay*/,
    -
    21052  480 /*untilTimeCode (7200/15)*/,
    -
    21053  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21054  },
    -
    21055  // 11:00 - %z
    -
    21056  {
    -
    21057  nullptr /*zonePolicy*/,
    -
    21058  "" /*format*/,
    -
    21059  2640 /*offsetCode (39600/15)*/,
    -
    21060  0 /*offsetRemainder (39600%15)*/,
    -
    21061  0 /*deltaMinutes*/,
    -
    21062  32767 /*untilYear*/,
    -
    21063  1 /*untilMonth*/,
    -
    21064  1 /*untilDay*/,
    -
    21065  0 /*untilTimeCode (0/15)*/,
    -
    21066  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21067  },
    -
    21068 
    -
    21069 };
    -
    21070 
    -
    21071 static const char kZoneNameAsia_Sakhalin[] ACE_TIME_PROGMEM = "\x05" "Sakhalin";
    -
    21072 
    -
    21073 const complete::Info::ZoneInfo kZoneAsia_Sakhalin ACE_TIME_PROGMEM = {
    -
    21074  kZoneNameAsia_Sakhalin /*name*/,
    -
    21075  0xf4a1c9bd /*zoneId*/,
    -
    21076  &kZoneContext /*zoneContext*/,
    -
    21077  9 /*numEras*/,
    -
    21078  kZoneEraAsia_Sakhalin /*eras*/,
    -
    21079  nullptr /*targetInfo*/,
    -
    21080 };
    -
    21081 
    -
    21082 //---------------------------------------------------------------------------
    -
    21083 // Zone name: Asia/Samarkand
    -
    21084 // Eras: 7
    -
    21085 //---------------------------------------------------------------------------
    -
    21086 
    -
    21087 static const complete::Info::ZoneEra kZoneEraAsia_Samarkand[] ACE_TIME_PROGMEM = {
    -
    21088  // 4:27:53 - LMT 1924 May 2
    -
    21089  {
    -
    21090  nullptr /*zonePolicy*/,
    -
    21091  "LMT" /*format*/,
    -
    21092  1071 /*offsetCode (16073/15)*/,
    -
    21093  8 /*offsetRemainder (16073%15)*/,
    -
    21094  0 /*deltaMinutes*/,
    -
    21095  1924 /*untilYear*/,
    -
    21096  5 /*untilMonth*/,
    -
    21097  2 /*untilDay*/,
    -
    21098  0 /*untilTimeCode (0/15)*/,
    -
    21099  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21100  },
    -
    21101  // 4:00 - %z 1930 Jun 21
    -
    21102  {
    -
    21103  nullptr /*zonePolicy*/,
    -
    21104  "" /*format*/,
    -
    21105  960 /*offsetCode (14400/15)*/,
    -
    21106  0 /*offsetRemainder (14400%15)*/,
    -
    21107  0 /*deltaMinutes*/,
    -
    21108  1930 /*untilYear*/,
    -
    21109  6 /*untilMonth*/,
    -
    21110  21 /*untilDay*/,
    -
    21111  0 /*untilTimeCode (0/15)*/,
    -
    21112  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21113  },
    -
    21114  // 5:00 - %z 1981 Apr 1
    -
    21115  {
    -
    21116  nullptr /*zonePolicy*/,
    -
    21117  "" /*format*/,
    -
    21118  1200 /*offsetCode (18000/15)*/,
    -
    21119  0 /*offsetRemainder (18000%15)*/,
    -
    21120  0 /*deltaMinutes*/,
    -
    21121  1981 /*untilYear*/,
    -
    21122  4 /*untilMonth*/,
    -
    21123  1 /*untilDay*/,
    -
    21124  0 /*untilTimeCode (0/15)*/,
    -
    21125  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21126  },
    -
    21127  // 5:00 1:00 %z 1981 Oct 1
    -
    21128  {
    -
    21129  nullptr /*zonePolicy*/,
    -
    21130  "" /*format*/,
    -
    21131  1200 /*offsetCode (18000/15)*/,
    -
    21132  0 /*offsetRemainder (18000%15)*/,
    -
    21133  60 /*deltaMinutes*/,
    -
    21134  1981 /*untilYear*/,
    -
    21135  10 /*untilMonth*/,
    -
    21136  1 /*untilDay*/,
    -
    21137  0 /*untilTimeCode (0/15)*/,
    -
    21138  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21139  },
    -
    21140  // 6:00 - %z 1982 Apr 1
    -
    21141  {
    -
    21142  nullptr /*zonePolicy*/,
    -
    21143  "" /*format*/,
    -
    21144  1440 /*offsetCode (21600/15)*/,
    -
    21145  0 /*offsetRemainder (21600%15)*/,
    -
    21146  0 /*deltaMinutes*/,
    -
    21147  1982 /*untilYear*/,
    -
    21148  4 /*untilMonth*/,
    -
    21149  1 /*untilDay*/,
    -
    21150  0 /*untilTimeCode (0/15)*/,
    -
    21151  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21152  },
    -
    21153  // 5:00 RussiaAsia %z 1992
    -
    21154  {
    -
    21155  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    21156  "" /*format*/,
    -
    21157  1200 /*offsetCode (18000/15)*/,
    -
    21158  0 /*offsetRemainder (18000%15)*/,
    -
    21159  0 /*deltaMinutes*/,
    -
    21160  1992 /*untilYear*/,
    -
    21161  1 /*untilMonth*/,
    -
    21162  1 /*untilDay*/,
    -
    21163  0 /*untilTimeCode (0/15)*/,
    -
    21164  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21165  },
    -
    21166  // 5:00 - %z
    -
    21167  {
    -
    21168  nullptr /*zonePolicy*/,
    -
    21169  "" /*format*/,
    -
    21170  1200 /*offsetCode (18000/15)*/,
    -
    21171  0 /*offsetRemainder (18000%15)*/,
    -
    21172  0 /*deltaMinutes*/,
    -
    21173  32767 /*untilYear*/,
    -
    21174  1 /*untilMonth*/,
    -
    21175  1 /*untilDay*/,
    -
    21176  0 /*untilTimeCode (0/15)*/,
    -
    21177  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21178  },
    -
    21179 
    -
    21180 };
    -
    21181 
    -
    21182 static const char kZoneNameAsia_Samarkand[] ACE_TIME_PROGMEM = "\x05" "Samarkand";
    -
    21183 
    -
    21184 const complete::Info::ZoneInfo kZoneAsia_Samarkand ACE_TIME_PROGMEM = {
    -
    21185  kZoneNameAsia_Samarkand /*name*/,
    -
    21186  0x13ae5104 /*zoneId*/,
    -
    21187  &kZoneContext /*zoneContext*/,
    -
    21188  7 /*numEras*/,
    -
    21189  kZoneEraAsia_Samarkand /*eras*/,
    -
    21190  nullptr /*targetInfo*/,
    -
    21191 };
    -
    21192 
    -
    21193 //---------------------------------------------------------------------------
    -
    21194 // Zone name: Asia/Seoul
    -
    21195 // Eras: 6
    -
    21196 //---------------------------------------------------------------------------
    -
    21197 
    -
    21198 static const complete::Info::ZoneEra kZoneEraAsia_Seoul[] ACE_TIME_PROGMEM = {
    -
    21199  // 8:27:52 - LMT 1908 Apr 1
    -
    21200  {
    -
    21201  nullptr /*zonePolicy*/,
    -
    21202  "LMT" /*format*/,
    -
    21203  2031 /*offsetCode (30472/15)*/,
    -
    21204  7 /*offsetRemainder (30472%15)*/,
    -
    21205  0 /*deltaMinutes*/,
    -
    21206  1908 /*untilYear*/,
    -
    21207  4 /*untilMonth*/,
    -
    21208  1 /*untilDay*/,
    -
    21209  0 /*untilTimeCode (0/15)*/,
    -
    21210  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21211  },
    -
    21212  // 8:30 - KST 1912 Jan 1
    -
    21213  {
    -
    21214  nullptr /*zonePolicy*/,
    -
    21215  "KST" /*format*/,
    -
    21216  2040 /*offsetCode (30600/15)*/,
    -
    21217  0 /*offsetRemainder (30600%15)*/,
    -
    21218  0 /*deltaMinutes*/,
    -
    21219  1912 /*untilYear*/,
    -
    21220  1 /*untilMonth*/,
    -
    21221  1 /*untilDay*/,
    -
    21222  0 /*untilTimeCode (0/15)*/,
    -
    21223  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21224  },
    -
    21225  // 9:00 - JST 1945 Sep 8
    -
    21226  {
    -
    21227  nullptr /*zonePolicy*/,
    -
    21228  "JST" /*format*/,
    -
    21229  2160 /*offsetCode (32400/15)*/,
    -
    21230  0 /*offsetRemainder (32400%15)*/,
    -
    21231  0 /*deltaMinutes*/,
    -
    21232  1945 /*untilYear*/,
    -
    21233  9 /*untilMonth*/,
    -
    21234  8 /*untilDay*/,
    -
    21235  0 /*untilTimeCode (0/15)*/,
    -
    21236  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21237  },
    -
    21238  // 9:00 ROK K%sT 1954 Mar 21
    -
    21239  {
    -
    21240  &kZonePolicyROK /*zonePolicy*/,
    -
    21241  "K%T" /*format*/,
    -
    21242  2160 /*offsetCode (32400/15)*/,
    -
    21243  0 /*offsetRemainder (32400%15)*/,
    -
    21244  0 /*deltaMinutes*/,
    -
    21245  1954 /*untilYear*/,
    -
    21246  3 /*untilMonth*/,
    -
    21247  21 /*untilDay*/,
    -
    21248  0 /*untilTimeCode (0/15)*/,
    -
    21249  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21250  },
    -
    21251  // 8:30 ROK K%sT 1961 Aug 10
    -
    21252  {
    -
    21253  &kZonePolicyROK /*zonePolicy*/,
    -
    21254  "K%T" /*format*/,
    -
    21255  2040 /*offsetCode (30600/15)*/,
    -
    21256  0 /*offsetRemainder (30600%15)*/,
    -
    21257  0 /*deltaMinutes*/,
    -
    21258  1961 /*untilYear*/,
    -
    21259  8 /*untilMonth*/,
    -
    21260  10 /*untilDay*/,
    -
    21261  0 /*untilTimeCode (0/15)*/,
    -
    21262  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21263  },
    -
    21264  // 9:00 ROK K%sT
    -
    21265  {
    -
    21266  &kZonePolicyROK /*zonePolicy*/,
    -
    21267  "K%T" /*format*/,
    -
    21268  2160 /*offsetCode (32400/15)*/,
    -
    21269  0 /*offsetRemainder (32400%15)*/,
    -
    21270  0 /*deltaMinutes*/,
    -
    21271  32767 /*untilYear*/,
    -
    21272  1 /*untilMonth*/,
    -
    21273  1 /*untilDay*/,
    -
    21274  0 /*untilTimeCode (0/15)*/,
    -
    21275  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21276  },
    -
    21277 
    -
    21278 };
    -
    21279 
    -
    21280 static const char kZoneNameAsia_Seoul[] ACE_TIME_PROGMEM = "\x05" "Seoul";
    -
    21281 
    -
    21282 const complete::Info::ZoneInfo kZoneAsia_Seoul ACE_TIME_PROGMEM = {
    -
    21283  kZoneNameAsia_Seoul /*name*/,
    -
    21284  0x15ce82da /*zoneId*/,
    -
    21285  &kZoneContext /*zoneContext*/,
    -
    21286  6 /*numEras*/,
    -
    21287  kZoneEraAsia_Seoul /*eras*/,
    -
    21288  nullptr /*targetInfo*/,
    -
    21289 };
    -
    21290 
    -
    21291 //---------------------------------------------------------------------------
    -
    21292 // Zone name: Asia/Shanghai
    -
    21293 // Eras: 3
    -
    21294 //---------------------------------------------------------------------------
    -
    21295 
    -
    21296 static const complete::Info::ZoneEra kZoneEraAsia_Shanghai[] ACE_TIME_PROGMEM = {
    -
    21297  // 8:05:43 - LMT 1901
    -
    21298  {
    -
    21299  nullptr /*zonePolicy*/,
    -
    21300  "LMT" /*format*/,
    -
    21301  1942 /*offsetCode (29143/15)*/,
    -
    21302  13 /*offsetRemainder (29143%15)*/,
    -
    21303  0 /*deltaMinutes*/,
    -
    21304  1901 /*untilYear*/,
    -
    21305  1 /*untilMonth*/,
    -
    21306  1 /*untilDay*/,
    -
    21307  0 /*untilTimeCode (0/15)*/,
    -
    21308  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21309  },
    -
    21310  // 8:00 Shang C%sT 1949 May 28
    -
    21311  {
    -
    21312  &kZonePolicyShang /*zonePolicy*/,
    -
    21313  "C%T" /*format*/,
    -
    21314  1920 /*offsetCode (28800/15)*/,
    -
    21315  0 /*offsetRemainder (28800%15)*/,
    -
    21316  0 /*deltaMinutes*/,
    -
    21317  1949 /*untilYear*/,
    -
    21318  5 /*untilMonth*/,
    -
    21319  28 /*untilDay*/,
    -
    21320  0 /*untilTimeCode (0/15)*/,
    -
    21321  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21322  },
    -
    21323  // 8:00 PRC C%sT
    -
    21324  {
    -
    21325  &kZonePolicyPRC /*zonePolicy*/,
    -
    21326  "C%T" /*format*/,
    -
    21327  1920 /*offsetCode (28800/15)*/,
    -
    21328  0 /*offsetRemainder (28800%15)*/,
    -
    21329  0 /*deltaMinutes*/,
    -
    21330  32767 /*untilYear*/,
    -
    21331  1 /*untilMonth*/,
    -
    21332  1 /*untilDay*/,
    -
    21333  0 /*untilTimeCode (0/15)*/,
    -
    21334  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21335  },
    -
    21336 
    -
    21337 };
    -
    21338 
    -
    21339 static const char kZoneNameAsia_Shanghai[] ACE_TIME_PROGMEM = "\x05" "Shanghai";
    -
    21340 
    -
    21341 const complete::Info::ZoneInfo kZoneAsia_Shanghai ACE_TIME_PROGMEM = {
    -
    21342  kZoneNameAsia_Shanghai /*name*/,
    -
    21343  0xf895a7f5 /*zoneId*/,
    -
    21344  &kZoneContext /*zoneContext*/,
    -
    21345  3 /*numEras*/,
    -
    21346  kZoneEraAsia_Shanghai /*eras*/,
    -
    21347  nullptr /*targetInfo*/,
    -
    21348 };
    -
    21349 
    -
    21350 //---------------------------------------------------------------------------
    -
    21351 // Zone name: Asia/Singapore
    -
    21352 // Eras: 9
    -
    21353 //---------------------------------------------------------------------------
    -
    21354 
    -
    21355 static const complete::Info::ZoneEra kZoneEraAsia_Singapore[] ACE_TIME_PROGMEM = {
    -
    21356  // 6:55:25 - LMT 1901 Jan 1
    -
    21357  {
    -
    21358  nullptr /*zonePolicy*/,
    -
    21359  "LMT" /*format*/,
    -
    21360  1661 /*offsetCode (24925/15)*/,
    -
    21361  10 /*offsetRemainder (24925%15)*/,
    -
    21362  0 /*deltaMinutes*/,
    -
    21363  1901 /*untilYear*/,
    -
    21364  1 /*untilMonth*/,
    -
    21365  1 /*untilDay*/,
    -
    21366  0 /*untilTimeCode (0/15)*/,
    -
    21367  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21368  },
    -
    21369  // 6:55:25 - SMT 1905 Jun 1
    -
    21370  {
    -
    21371  nullptr /*zonePolicy*/,
    -
    21372  "SMT" /*format*/,
    -
    21373  1661 /*offsetCode (24925/15)*/,
    -
    21374  10 /*offsetRemainder (24925%15)*/,
    -
    21375  0 /*deltaMinutes*/,
    -
    21376  1905 /*untilYear*/,
    -
    21377  6 /*untilMonth*/,
    -
    21378  1 /*untilDay*/,
    -
    21379  0 /*untilTimeCode (0/15)*/,
    -
    21380  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21381  },
    -
    21382  // 7:00 - %z 1933 Jan 1
    -
    21383  {
    -
    21384  nullptr /*zonePolicy*/,
    -
    21385  "" /*format*/,
    -
    21386  1680 /*offsetCode (25200/15)*/,
    -
    21387  0 /*offsetRemainder (25200%15)*/,
    -
    21388  0 /*deltaMinutes*/,
    -
    21389  1933 /*untilYear*/,
    -
    21390  1 /*untilMonth*/,
    -
    21391  1 /*untilDay*/,
    -
    21392  0 /*untilTimeCode (0/15)*/,
    -
    21393  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21394  },
    -
    21395  // 7:00 0:20 %z 1936 Jan 1
    -
    21396  {
    -
    21397  nullptr /*zonePolicy*/,
    -
    21398  "" /*format*/,
    -
    21399  1680 /*offsetCode (25200/15)*/,
    -
    21400  0 /*offsetRemainder (25200%15)*/,
    -
    21401  20 /*deltaMinutes*/,
    -
    21402  1936 /*untilYear*/,
    -
    21403  1 /*untilMonth*/,
    -
    21404  1 /*untilDay*/,
    -
    21405  0 /*untilTimeCode (0/15)*/,
    -
    21406  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21407  },
    -
    21408  // 7:20 - %z 1941 Sep 1
    -
    21409  {
    -
    21410  nullptr /*zonePolicy*/,
    -
    21411  "" /*format*/,
    -
    21412  1760 /*offsetCode (26400/15)*/,
    -
    21413  0 /*offsetRemainder (26400%15)*/,
    -
    21414  0 /*deltaMinutes*/,
    -
    21415  1941 /*untilYear*/,
    -
    21416  9 /*untilMonth*/,
    -
    21417  1 /*untilDay*/,
    -
    21418  0 /*untilTimeCode (0/15)*/,
    -
    21419  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21420  },
    -
    21421  // 7:30 - %z 1942 Feb 16
    -
    21422  {
    -
    21423  nullptr /*zonePolicy*/,
    -
    21424  "" /*format*/,
    -
    21425  1800 /*offsetCode (27000/15)*/,
    -
    21426  0 /*offsetRemainder (27000%15)*/,
    -
    21427  0 /*deltaMinutes*/,
    -
    21428  1942 /*untilYear*/,
    -
    21429  2 /*untilMonth*/,
    -
    21430  16 /*untilDay*/,
    -
    21431  0 /*untilTimeCode (0/15)*/,
    -
    21432  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21433  },
    -
    21434  // 9:00 - %z 1945 Sep 12
    -
    21435  {
    -
    21436  nullptr /*zonePolicy*/,
    -
    21437  "" /*format*/,
    -
    21438  2160 /*offsetCode (32400/15)*/,
    -
    21439  0 /*offsetRemainder (32400%15)*/,
    -
    21440  0 /*deltaMinutes*/,
    -
    21441  1945 /*untilYear*/,
    -
    21442  9 /*untilMonth*/,
    -
    21443  12 /*untilDay*/,
    -
    21444  0 /*untilTimeCode (0/15)*/,
    -
    21445  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21446  },
    -
    21447  // 7:30 - %z 1981 Dec 31 16:00u
    -
    21448  {
    -
    21449  nullptr /*zonePolicy*/,
    -
    21450  "" /*format*/,
    -
    21451  1800 /*offsetCode (27000/15)*/,
    -
    21452  0 /*offsetRemainder (27000%15)*/,
    -
    21453  0 /*deltaMinutes*/,
    -
    21454  1981 /*untilYear*/,
    -
    21455  12 /*untilMonth*/,
    -
    21456  31 /*untilDay*/,
    -
    21457  3840 /*untilTimeCode (57600/15)*/,
    -
    21458  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    21459  },
    -
    21460  // 8:00 - %z
    -
    21461  {
    -
    21462  nullptr /*zonePolicy*/,
    -
    21463  "" /*format*/,
    -
    21464  1920 /*offsetCode (28800/15)*/,
    -
    21465  0 /*offsetRemainder (28800%15)*/,
    -
    21466  0 /*deltaMinutes*/,
    -
    21467  32767 /*untilYear*/,
    -
    21468  1 /*untilMonth*/,
    -
    21469  1 /*untilDay*/,
    -
    21470  0 /*untilTimeCode (0/15)*/,
    -
    21471  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21472  },
    -
    21473 
    -
    21474 };
    -
    21475 
    -
    21476 static const char kZoneNameAsia_Singapore[] ACE_TIME_PROGMEM = "\x05" "Singapore";
    -
    21477 
    -
    21478 const complete::Info::ZoneInfo kZoneAsia_Singapore ACE_TIME_PROGMEM = {
    -
    21479  kZoneNameAsia_Singapore /*name*/,
    -
    21480  0xcf8581fa /*zoneId*/,
    -
    21481  &kZoneContext /*zoneContext*/,
    -
    21482  9 /*numEras*/,
    -
    21483  kZoneEraAsia_Singapore /*eras*/,
    -
    21484  nullptr /*targetInfo*/,
    -
    21485 };
    -
    21486 
    -
    21487 //---------------------------------------------------------------------------
    -
    21488 // Zone name: Asia/Srednekolymsk
    -
    21489 // Eras: 7
    -
    21490 //---------------------------------------------------------------------------
    -
    21491 
    -
    21492 static const complete::Info::ZoneEra kZoneEraAsia_Srednekolymsk[] ACE_TIME_PROGMEM = {
    -
    21493  // 10:14:52 - LMT 1924 May 2
    -
    21494  {
    -
    21495  nullptr /*zonePolicy*/,
    -
    21496  "LMT" /*format*/,
    -
    21497  2459 /*offsetCode (36892/15)*/,
    -
    21498  7 /*offsetRemainder (36892%15)*/,
    -
    21499  0 /*deltaMinutes*/,
    -
    21500  1924 /*untilYear*/,
    -
    21501  5 /*untilMonth*/,
    -
    21502  2 /*untilDay*/,
    -
    21503  0 /*untilTimeCode (0/15)*/,
    -
    21504  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21505  },
    -
    21506  // 10:00 - %z 1930 Jun 21
    -
    21507  {
    -
    21508  nullptr /*zonePolicy*/,
    -
    21509  "" /*format*/,
    -
    21510  2400 /*offsetCode (36000/15)*/,
    -
    21511  0 /*offsetRemainder (36000%15)*/,
    -
    21512  0 /*deltaMinutes*/,
    -
    21513  1930 /*untilYear*/,
    -
    21514  6 /*untilMonth*/,
    -
    21515  21 /*untilDay*/,
    -
    21516  0 /*untilTimeCode (0/15)*/,
    -
    21517  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21518  },
    -
    21519  // 11:00 Russia %z 1991 Mar 31 2:00s
    -
    21520  {
    -
    21521  &kZonePolicyRussia /*zonePolicy*/,
    -
    21522  "" /*format*/,
    -
    21523  2640 /*offsetCode (39600/15)*/,
    -
    21524  0 /*offsetRemainder (39600%15)*/,
    -
    21525  0 /*deltaMinutes*/,
    -
    21526  1991 /*untilYear*/,
    -
    21527  3 /*untilMonth*/,
    -
    21528  31 /*untilDay*/,
    -
    21529  480 /*untilTimeCode (7200/15)*/,
    -
    21530  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21531  },
    -
    21532  // 10:00 Russia %z 1992 Jan 19 2:00s
    -
    21533  {
    -
    21534  &kZonePolicyRussia /*zonePolicy*/,
    -
    21535  "" /*format*/,
    -
    21536  2400 /*offsetCode (36000/15)*/,
    -
    21537  0 /*offsetRemainder (36000%15)*/,
    -
    21538  0 /*deltaMinutes*/,
    -
    21539  1992 /*untilYear*/,
    -
    21540  1 /*untilMonth*/,
    -
    21541  19 /*untilDay*/,
    -
    21542  480 /*untilTimeCode (7200/15)*/,
    -
    21543  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21544  },
    -
    21545  // 11:00 Russia %z 2011 Mar 27 2:00s
    -
    21546  {
    -
    21547  &kZonePolicyRussia /*zonePolicy*/,
    -
    21548  "" /*format*/,
    -
    21549  2640 /*offsetCode (39600/15)*/,
    -
    21550  0 /*offsetRemainder (39600%15)*/,
    -
    21551  0 /*deltaMinutes*/,
    -
    21552  2011 /*untilYear*/,
    -
    21553  3 /*untilMonth*/,
    -
    21554  27 /*untilDay*/,
    -
    21555  480 /*untilTimeCode (7200/15)*/,
    -
    21556  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21557  },
    -
    21558  // 12:00 - %z 2014 Oct 26 2:00s
    -
    21559  {
    -
    21560  nullptr /*zonePolicy*/,
    -
    21561  "" /*format*/,
    -
    21562  2880 /*offsetCode (43200/15)*/,
    -
    21563  0 /*offsetRemainder (43200%15)*/,
    -
    21564  0 /*deltaMinutes*/,
    -
    21565  2014 /*untilYear*/,
    -
    21566  10 /*untilMonth*/,
    -
    21567  26 /*untilDay*/,
    -
    21568  480 /*untilTimeCode (7200/15)*/,
    -
    21569  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21570  },
    -
    21571  // 11:00 - %z
    -
    21572  {
    -
    21573  nullptr /*zonePolicy*/,
    -
    21574  "" /*format*/,
    -
    21575  2640 /*offsetCode (39600/15)*/,
    -
    21576  0 /*offsetRemainder (39600%15)*/,
    -
    21577  0 /*deltaMinutes*/,
    -
    21578  32767 /*untilYear*/,
    -
    21579  1 /*untilMonth*/,
    -
    21580  1 /*untilDay*/,
    -
    21581  0 /*untilTimeCode (0/15)*/,
    -
    21582  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21583  },
    -
    21584 
    -
    21585 };
    -
    21586 
    -
    21587 static const char kZoneNameAsia_Srednekolymsk[] ACE_TIME_PROGMEM = "\x05" "Srednekolymsk";
    -
    21588 
    -
    21589 const complete::Info::ZoneInfo kZoneAsia_Srednekolymsk ACE_TIME_PROGMEM = {
    -
    21590  kZoneNameAsia_Srednekolymsk /*name*/,
    -
    21591  0xbf8e337d /*zoneId*/,
    -
    21592  &kZoneContext /*zoneContext*/,
    -
    21593  7 /*numEras*/,
    -
    21594  kZoneEraAsia_Srednekolymsk /*eras*/,
    -
    21595  nullptr /*targetInfo*/,
    -
    21596 };
    -
    21597 
    -
    21598 //---------------------------------------------------------------------------
    -
    21599 // Zone name: Asia/Taipei
    -
    21600 // Eras: 4
    -
    21601 //---------------------------------------------------------------------------
    -
    21602 
    -
    21603 static const complete::Info::ZoneEra kZoneEraAsia_Taipei[] ACE_TIME_PROGMEM = {
    -
    21604  // 8:06:00 - LMT 1896 Jan 1
    -
    21605  {
    -
    21606  nullptr /*zonePolicy*/,
    -
    21607  "LMT" /*format*/,
    -
    21608  1944 /*offsetCode (29160/15)*/,
    -
    21609  0 /*offsetRemainder (29160%15)*/,
    -
    21610  0 /*deltaMinutes*/,
    -
    21611  1896 /*untilYear*/,
    -
    21612  1 /*untilMonth*/,
    -
    21613  1 /*untilDay*/,
    -
    21614  0 /*untilTimeCode (0/15)*/,
    -
    21615  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21616  },
    -
    21617  // 8:00 - CST 1937 Oct 1
    -
    21618  {
    -
    21619  nullptr /*zonePolicy*/,
    -
    21620  "CST" /*format*/,
    -
    21621  1920 /*offsetCode (28800/15)*/,
    -
    21622  0 /*offsetRemainder (28800%15)*/,
    -
    21623  0 /*deltaMinutes*/,
    -
    21624  1937 /*untilYear*/,
    -
    21625  10 /*untilMonth*/,
    -
    21626  1 /*untilDay*/,
    -
    21627  0 /*untilTimeCode (0/15)*/,
    -
    21628  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21629  },
    -
    21630  // 9:00 - JST 1945 Sep 21 1:00
    -
    21631  {
    -
    21632  nullptr /*zonePolicy*/,
    -
    21633  "JST" /*format*/,
    -
    21634  2160 /*offsetCode (32400/15)*/,
    -
    21635  0 /*offsetRemainder (32400%15)*/,
    -
    21636  0 /*deltaMinutes*/,
    -
    21637  1945 /*untilYear*/,
    -
    21638  9 /*untilMonth*/,
    -
    21639  21 /*untilDay*/,
    -
    21640  240 /*untilTimeCode (3600/15)*/,
    -
    21641  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21642  },
    -
    21643  // 8:00 Taiwan C%sT
    -
    21644  {
    -
    21645  &kZonePolicyTaiwan /*zonePolicy*/,
    -
    21646  "C%T" /*format*/,
    -
    21647  1920 /*offsetCode (28800/15)*/,
    -
    21648  0 /*offsetRemainder (28800%15)*/,
    -
    21649  0 /*deltaMinutes*/,
    -
    21650  32767 /*untilYear*/,
    -
    21651  1 /*untilMonth*/,
    -
    21652  1 /*untilDay*/,
    -
    21653  0 /*untilTimeCode (0/15)*/,
    -
    21654  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21655  },
    -
    21656 
    -
    21657 };
    -
    21658 
    -
    21659 static const char kZoneNameAsia_Taipei[] ACE_TIME_PROGMEM = "\x05" "Taipei";
    -
    21660 
    -
    21661 const complete::Info::ZoneInfo kZoneAsia_Taipei ACE_TIME_PROGMEM = {
    -
    21662  kZoneNameAsia_Taipei /*name*/,
    -
    21663  0xd1a844ae /*zoneId*/,
    -
    21664  &kZoneContext /*zoneContext*/,
    -
    21665  4 /*numEras*/,
    -
    21666  kZoneEraAsia_Taipei /*eras*/,
    -
    21667  nullptr /*targetInfo*/,
    -
    21668 };
    -
    21669 
    -
    21670 //---------------------------------------------------------------------------
    -
    21671 // Zone name: Asia/Tashkent
    -
    21672 // Eras: 5
    -
    21673 //---------------------------------------------------------------------------
    -
    21674 
    -
    21675 static const complete::Info::ZoneEra kZoneEraAsia_Tashkent[] ACE_TIME_PROGMEM = {
    -
    21676  // 4:37:11 - LMT 1924 May 2
    -
    21677  {
    -
    21678  nullptr /*zonePolicy*/,
    -
    21679  "LMT" /*format*/,
    -
    21680  1108 /*offsetCode (16631/15)*/,
    -
    21681  11 /*offsetRemainder (16631%15)*/,
    -
    21682  0 /*deltaMinutes*/,
    -
    21683  1924 /*untilYear*/,
    -
    21684  5 /*untilMonth*/,
    -
    21685  2 /*untilDay*/,
    -
    21686  0 /*untilTimeCode (0/15)*/,
    -
    21687  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21688  },
    -
    21689  // 5:00 - %z 1930 Jun 21
    -
    21690  {
    -
    21691  nullptr /*zonePolicy*/,
    -
    21692  "" /*format*/,
    -
    21693  1200 /*offsetCode (18000/15)*/,
    -
    21694  0 /*offsetRemainder (18000%15)*/,
    -
    21695  0 /*deltaMinutes*/,
    -
    21696  1930 /*untilYear*/,
    -
    21697  6 /*untilMonth*/,
    -
    21698  21 /*untilDay*/,
    -
    21699  0 /*untilTimeCode (0/15)*/,
    -
    21700  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21701  },
    -
    21702  // 6:00 RussiaAsia %z 1991 Mar 31 2:00
    -
    21703  {
    -
    21704  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    21705  "" /*format*/,
    -
    21706  1440 /*offsetCode (21600/15)*/,
    -
    21707  0 /*offsetRemainder (21600%15)*/,
    -
    21708  0 /*deltaMinutes*/,
    -
    21709  1991 /*untilYear*/,
    -
    21710  3 /*untilMonth*/,
    -
    21711  31 /*untilDay*/,
    -
    21712  480 /*untilTimeCode (7200/15)*/,
    -
    21713  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21714  },
    -
    21715  // 5:00 RussiaAsia %z 1992
    -
    21716  {
    -
    21717  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    21718  "" /*format*/,
    -
    21719  1200 /*offsetCode (18000/15)*/,
    -
    21720  0 /*offsetRemainder (18000%15)*/,
    -
    21721  0 /*deltaMinutes*/,
    -
    21722  1992 /*untilYear*/,
    -
    21723  1 /*untilMonth*/,
    -
    21724  1 /*untilDay*/,
    -
    21725  0 /*untilTimeCode (0/15)*/,
    -
    21726  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21727  },
    -
    21728  // 5:00 - %z
    -
    21729  {
    -
    21730  nullptr /*zonePolicy*/,
    -
    21731  "" /*format*/,
    -
    21732  1200 /*offsetCode (18000/15)*/,
    -
    21733  0 /*offsetRemainder (18000%15)*/,
    -
    21734  0 /*deltaMinutes*/,
    -
    21735  32767 /*untilYear*/,
    -
    21736  1 /*untilMonth*/,
    -
    21737  1 /*untilDay*/,
    -
    21738  0 /*untilTimeCode (0/15)*/,
    -
    21739  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21740  },
    -
    21741 
    -
    21742 };
    -
    21743 
    -
    21744 static const char kZoneNameAsia_Tashkent[] ACE_TIME_PROGMEM = "\x05" "Tashkent";
    -
    21745 
    -
    21746 const complete::Info::ZoneInfo kZoneAsia_Tashkent ACE_TIME_PROGMEM = {
    -
    21747  kZoneNameAsia_Tashkent /*name*/,
    -
    21748  0xf3924254 /*zoneId*/,
    -
    21749  &kZoneContext /*zoneContext*/,
    -
    21750  5 /*numEras*/,
    -
    21751  kZoneEraAsia_Tashkent /*eras*/,
    -
    21752  nullptr /*targetInfo*/,
    -
    21753 };
    -
    21754 
    -
    21755 //---------------------------------------------------------------------------
    -
    21756 // Zone name: Asia/Tbilisi
    -
    21757 // Eras: 11
    -
    21758 //---------------------------------------------------------------------------
    -
    21759 
    -
    21760 static const complete::Info::ZoneEra kZoneEraAsia_Tbilisi[] ACE_TIME_PROGMEM = {
    -
    21761  // 2:59:11 - LMT 1880
    -
    21762  {
    -
    21763  nullptr /*zonePolicy*/,
    -
    21764  "LMT" /*format*/,
    -
    21765  716 /*offsetCode (10751/15)*/,
    -
    21766  11 /*offsetRemainder (10751%15)*/,
    -
    21767  0 /*deltaMinutes*/,
    -
    21768  1880 /*untilYear*/,
    -
    21769  1 /*untilMonth*/,
    -
    21770  1 /*untilDay*/,
    -
    21771  0 /*untilTimeCode (0/15)*/,
    -
    21772  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21773  },
    -
    21774  // 2:59:11 - TBMT 1924 May 2
    -
    21775  {
    -
    21776  nullptr /*zonePolicy*/,
    -
    21777  "TBMT" /*format*/,
    -
    21778  716 /*offsetCode (10751/15)*/,
    -
    21779  11 /*offsetRemainder (10751%15)*/,
    -
    21780  0 /*deltaMinutes*/,
    -
    21781  1924 /*untilYear*/,
    -
    21782  5 /*untilMonth*/,
    -
    21783  2 /*untilDay*/,
    -
    21784  0 /*untilTimeCode (0/15)*/,
    -
    21785  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21786  },
    -
    21787  // 3:00 - %z 1957 Mar
    -
    21788  {
    -
    21789  nullptr /*zonePolicy*/,
    -
    21790  "" /*format*/,
    -
    21791  720 /*offsetCode (10800/15)*/,
    -
    21792  0 /*offsetRemainder (10800%15)*/,
    -
    21793  0 /*deltaMinutes*/,
    -
    21794  1957 /*untilYear*/,
    -
    21795  3 /*untilMonth*/,
    -
    21796  1 /*untilDay*/,
    -
    21797  0 /*untilTimeCode (0/15)*/,
    -
    21798  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21799  },
    -
    21800  // 4:00 RussiaAsia %z 1991 Mar 31 2:00s
    -
    21801  {
    -
    21802  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    21803  "" /*format*/,
    -
    21804  960 /*offsetCode (14400/15)*/,
    -
    21805  0 /*offsetRemainder (14400%15)*/,
    -
    21806  0 /*deltaMinutes*/,
    -
    21807  1991 /*untilYear*/,
    -
    21808  3 /*untilMonth*/,
    -
    21809  31 /*untilDay*/,
    -
    21810  480 /*untilTimeCode (7200/15)*/,
    -
    21811  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21812  },
    -
    21813  // 3:00 RussiaAsia %z 1992
    -
    21814  {
    -
    21815  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    21816  "" /*format*/,
    -
    21817  720 /*offsetCode (10800/15)*/,
    -
    21818  0 /*offsetRemainder (10800%15)*/,
    -
    21819  0 /*deltaMinutes*/,
    -
    21820  1992 /*untilYear*/,
    -
    21821  1 /*untilMonth*/,
    -
    21822  1 /*untilDay*/,
    -
    21823  0 /*untilTimeCode (0/15)*/,
    -
    21824  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21825  },
    -
    21826  // 3:00 E-EurAsia %z 1994 Sep lastSun
    -
    21827  {
    -
    21828  &kZonePolicyE_EurAsia /*zonePolicy*/,
    -
    21829  "" /*format*/,
    -
    21830  720 /*offsetCode (10800/15)*/,
    -
    21831  0 /*offsetRemainder (10800%15)*/,
    -
    21832  0 /*deltaMinutes*/,
    -
    21833  1994 /*untilYear*/,
    -
    21834  9 /*untilMonth*/,
    -
    21835  25 /*untilDay*/,
    -
    21836  0 /*untilTimeCode (0/15)*/,
    -
    21837  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21838  },
    -
    21839  // 4:00 E-EurAsia %z 1996 Oct lastSun
    -
    21840  {
    -
    21841  &kZonePolicyE_EurAsia /*zonePolicy*/,
    -
    21842  "" /*format*/,
    -
    21843  960 /*offsetCode (14400/15)*/,
    -
    21844  0 /*offsetRemainder (14400%15)*/,
    -
    21845  0 /*deltaMinutes*/,
    -
    21846  1996 /*untilYear*/,
    -
    21847  10 /*untilMonth*/,
    -
    21848  27 /*untilDay*/,
    -
    21849  0 /*untilTimeCode (0/15)*/,
    -
    21850  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21851  },
    -
    21852  // 4:00 1:00 %z 1997 Mar lastSun
    -
    21853  {
    -
    21854  nullptr /*zonePolicy*/,
    -
    21855  "" /*format*/,
    -
    21856  960 /*offsetCode (14400/15)*/,
    -
    21857  0 /*offsetRemainder (14400%15)*/,
    -
    21858  60 /*deltaMinutes*/,
    -
    21859  1997 /*untilYear*/,
    -
    21860  3 /*untilMonth*/,
    -
    21861  30 /*untilDay*/,
    -
    21862  0 /*untilTimeCode (0/15)*/,
    -
    21863  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21864  },
    -
    21865  // 4:00 E-EurAsia %z 2004 Jun 27
    -
    21866  {
    -
    21867  &kZonePolicyE_EurAsia /*zonePolicy*/,
    -
    21868  "" /*format*/,
    -
    21869  960 /*offsetCode (14400/15)*/,
    -
    21870  0 /*offsetRemainder (14400%15)*/,
    -
    21871  0 /*deltaMinutes*/,
    -
    21872  2004 /*untilYear*/,
    -
    21873  6 /*untilMonth*/,
    -
    21874  27 /*untilDay*/,
    -
    21875  0 /*untilTimeCode (0/15)*/,
    -
    21876  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21877  },
    -
    21878  // 3:00 RussiaAsia %z 2005 Mar lastSun 2:00
    -
    21879  {
    -
    21880  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    21881  "" /*format*/,
    -
    21882  720 /*offsetCode (10800/15)*/,
    -
    21883  0 /*offsetRemainder (10800%15)*/,
    -
    21884  0 /*deltaMinutes*/,
    -
    21885  2005 /*untilYear*/,
    -
    21886  3 /*untilMonth*/,
    -
    21887  27 /*untilDay*/,
    -
    21888  480 /*untilTimeCode (7200/15)*/,
    -
    21889  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21890  },
    -
    21891  // 4:00 - %z
    -
    21892  {
    -
    21893  nullptr /*zonePolicy*/,
    -
    21894  "" /*format*/,
    -
    21895  960 /*offsetCode (14400/15)*/,
    -
    21896  0 /*offsetRemainder (14400%15)*/,
    -
    21897  0 /*deltaMinutes*/,
    -
    21898  32767 /*untilYear*/,
    -
    21899  1 /*untilMonth*/,
    -
    21900  1 /*untilDay*/,
    -
    21901  0 /*untilTimeCode (0/15)*/,
    -
    21902  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21903  },
    -
    21904 
    -
    21905 };
    -
    21906 
    -
    21907 static const char kZoneNameAsia_Tbilisi[] ACE_TIME_PROGMEM = "\x05" "Tbilisi";
    -
    21908 
    -
    21909 const complete::Info::ZoneInfo kZoneAsia_Tbilisi ACE_TIME_PROGMEM = {
    -
    21910  kZoneNameAsia_Tbilisi /*name*/,
    -
    21911  0x0903e442 /*zoneId*/,
    -
    21912  &kZoneContext /*zoneContext*/,
    -
    21913  11 /*numEras*/,
    -
    21914  kZoneEraAsia_Tbilisi /*eras*/,
    -
    21915  nullptr /*targetInfo*/,
    -
    21916 };
    -
    21917 
    -
    21918 //---------------------------------------------------------------------------
    -
    21919 // Zone name: Asia/Tehran
    -
    21920 // Eras: 5
    -
    21921 //---------------------------------------------------------------------------
    -
    21922 
    -
    21923 static const complete::Info::ZoneEra kZoneEraAsia_Tehran[] ACE_TIME_PROGMEM = {
    -
    21924  // 3:25:44 - LMT 1916
    -
    21925  {
    -
    21926  nullptr /*zonePolicy*/,
    -
    21927  "LMT" /*format*/,
    -
    21928  822 /*offsetCode (12344/15)*/,
    -
    21929  14 /*offsetRemainder (12344%15)*/,
    -
    21930  0 /*deltaMinutes*/,
    -
    21931  1916 /*untilYear*/,
    -
    21932  1 /*untilMonth*/,
    -
    21933  1 /*untilDay*/,
    -
    21934  0 /*untilTimeCode (0/15)*/,
    -
    21935  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21936  },
    -
    21937  // 3:25:44 - TMT 1935 Jun 13
    -
    21938  {
    -
    21939  nullptr /*zonePolicy*/,
    -
    21940  "TMT" /*format*/,
    -
    21941  822 /*offsetCode (12344/15)*/,
    -
    21942  14 /*offsetRemainder (12344%15)*/,
    -
    21943  0 /*deltaMinutes*/,
    -
    21944  1935 /*untilYear*/,
    -
    21945  6 /*untilMonth*/,
    -
    21946  13 /*untilDay*/,
    -
    21947  0 /*untilTimeCode (0/15)*/,
    -
    21948  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21949  },
    -
    21950  // 3:30 Iran %z 1977 Oct 20 24:00
    -
    21951  {
    -
    21952  &kZonePolicyIran /*zonePolicy*/,
    -
    21953  "" /*format*/,
    -
    21954  840 /*offsetCode (12600/15)*/,
    -
    21955  0 /*offsetRemainder (12600%15)*/,
    -
    21956  0 /*deltaMinutes*/,
    -
    21957  1977 /*untilYear*/,
    -
    21958  10 /*untilMonth*/,
    -
    21959  20 /*untilDay*/,
    -
    21960  5760 /*untilTimeCode (86400/15)*/,
    -
    21961  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21962  },
    -
    21963  // 4:00 Iran %z 1978 Nov 10 24:00
    -
    21964  {
    -
    21965  &kZonePolicyIran /*zonePolicy*/,
    -
    21966  "" /*format*/,
    -
    21967  960 /*offsetCode (14400/15)*/,
    -
    21968  0 /*offsetRemainder (14400%15)*/,
    -
    21969  0 /*deltaMinutes*/,
    -
    21970  1978 /*untilYear*/,
    -
    21971  11 /*untilMonth*/,
    -
    21972  10 /*untilDay*/,
    -
    21973  5760 /*untilTimeCode (86400/15)*/,
    -
    21974  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21975  },
    -
    21976  // 3:30 Iran %z
    -
    21977  {
    -
    21978  &kZonePolicyIran /*zonePolicy*/,
    -
    21979  "" /*format*/,
    -
    21980  840 /*offsetCode (12600/15)*/,
    -
    21981  0 /*offsetRemainder (12600%15)*/,
    -
    21982  0 /*deltaMinutes*/,
    -
    21983  32767 /*untilYear*/,
    -
    21984  1 /*untilMonth*/,
    -
    21985  1 /*untilDay*/,
    -
    21986  0 /*untilTimeCode (0/15)*/,
    -
    21987  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21988  },
    -
    21989 
    -
    21990 };
    -
    21991 
    -
    21992 static const char kZoneNameAsia_Tehran[] ACE_TIME_PROGMEM = "\x05" "Tehran";
    -
    21993 
    -
    21994 const complete::Info::ZoneInfo kZoneAsia_Tehran ACE_TIME_PROGMEM = {
    -
    21995  kZoneNameAsia_Tehran /*name*/,
    -
    21996  0xd1f02254 /*zoneId*/,
    -
    21997  &kZoneContext /*zoneContext*/,
    -
    21998  5 /*numEras*/,
    -
    21999  kZoneEraAsia_Tehran /*eras*/,
    -
    22000  nullptr /*targetInfo*/,
    -
    22001 };
    -
    22002 
    -
    22003 //---------------------------------------------------------------------------
    -
    22004 // Zone name: Asia/Thimphu
    -
    22005 // Eras: 3
    -
    22006 //---------------------------------------------------------------------------
    -
    22007 
    -
    22008 static const complete::Info::ZoneEra kZoneEraAsia_Thimphu[] ACE_TIME_PROGMEM = {
    -
    22009  // 5:58:36 - LMT 1947 Aug 15
    -
    22010  {
    -
    22011  nullptr /*zonePolicy*/,
    -
    22012  "LMT" /*format*/,
    -
    22013  1434 /*offsetCode (21516/15)*/,
    -
    22014  6 /*offsetRemainder (21516%15)*/,
    -
    22015  0 /*deltaMinutes*/,
    -
    22016  1947 /*untilYear*/,
    -
    22017  8 /*untilMonth*/,
    -
    22018  15 /*untilDay*/,
    -
    22019  0 /*untilTimeCode (0/15)*/,
    -
    22020  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22021  },
    -
    22022  // 5:30 - %z 1987 Oct
    -
    22023  {
    -
    22024  nullptr /*zonePolicy*/,
    -
    22025  "" /*format*/,
    -
    22026  1320 /*offsetCode (19800/15)*/,
    -
    22027  0 /*offsetRemainder (19800%15)*/,
    -
    22028  0 /*deltaMinutes*/,
    -
    22029  1987 /*untilYear*/,
    -
    22030  10 /*untilMonth*/,
    -
    22031  1 /*untilDay*/,
    -
    22032  0 /*untilTimeCode (0/15)*/,
    -
    22033  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22034  },
    -
    22035  // 6:00 - %z
    -
    22036  {
    -
    22037  nullptr /*zonePolicy*/,
    -
    22038  "" /*format*/,
    -
    22039  1440 /*offsetCode (21600/15)*/,
    -
    22040  0 /*offsetRemainder (21600%15)*/,
    -
    22041  0 /*deltaMinutes*/,
    -
    22042  32767 /*untilYear*/,
    -
    22043  1 /*untilMonth*/,
    -
    22044  1 /*untilDay*/,
    -
    22045  0 /*untilTimeCode (0/15)*/,
    -
    22046  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22047  },
    -
    22048 
    -
    22049 };
    -
    22050 
    -
    22051 static const char kZoneNameAsia_Thimphu[] ACE_TIME_PROGMEM = "\x05" "Thimphu";
    -
    22052 
    -
    22053 const complete::Info::ZoneInfo kZoneAsia_Thimphu ACE_TIME_PROGMEM = {
    -
    22054  kZoneNameAsia_Thimphu /*name*/,
    -
    22055  0x170380d1 /*zoneId*/,
    -
    22056  &kZoneContext /*zoneContext*/,
    -
    22057  3 /*numEras*/,
    -
    22058  kZoneEraAsia_Thimphu /*eras*/,
    -
    22059  nullptr /*targetInfo*/,
    -
    22060 };
    -
    22061 
    -
    22062 //---------------------------------------------------------------------------
    -
    22063 // Zone name: Asia/Tokyo
    -
    22064 // Eras: 2
    -
    22065 //---------------------------------------------------------------------------
    -
    22066 
    -
    22067 static const complete::Info::ZoneEra kZoneEraAsia_Tokyo[] ACE_TIME_PROGMEM = {
    -
    22068  // 9:18:59 - LMT 1887 Dec 31 15:00u
    -
    22069  {
    -
    22070  nullptr /*zonePolicy*/,
    -
    22071  "LMT" /*format*/,
    -
    22072  2235 /*offsetCode (33539/15)*/,
    -
    22073  14 /*offsetRemainder (33539%15)*/,
    -
    22074  0 /*deltaMinutes*/,
    -
    22075  1887 /*untilYear*/,
    -
    22076  12 /*untilMonth*/,
    -
    22077  31 /*untilDay*/,
    -
    22078  3600 /*untilTimeCode (54000/15)*/,
    -
    22079  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    22080  },
    -
    22081  // 9:00 Japan J%sT
    -
    22082  {
    -
    22083  &kZonePolicyJapan /*zonePolicy*/,
    -
    22084  "J%T" /*format*/,
    -
    22085  2160 /*offsetCode (32400/15)*/,
    -
    22086  0 /*offsetRemainder (32400%15)*/,
    -
    22087  0 /*deltaMinutes*/,
    -
    22088  32767 /*untilYear*/,
    -
    22089  1 /*untilMonth*/,
    -
    22090  1 /*untilDay*/,
    -
    22091  0 /*untilTimeCode (0/15)*/,
    -
    22092  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22093  },
    -
    22094 
    -
    22095 };
    -
    22096 
    -
    22097 static const char kZoneNameAsia_Tokyo[] ACE_TIME_PROGMEM = "\x05" "Tokyo";
    -
    22098 
    -
    22099 const complete::Info::ZoneInfo kZoneAsia_Tokyo ACE_TIME_PROGMEM = {
    -
    22100  kZoneNameAsia_Tokyo /*name*/,
    -
    22101  0x15e606a8 /*zoneId*/,
    -
    22102  &kZoneContext /*zoneContext*/,
    -
    22103  2 /*numEras*/,
    -
    22104  kZoneEraAsia_Tokyo /*eras*/,
    -
    22105  nullptr /*targetInfo*/,
    -
    22106 };
    -
    22107 
    -
    22108 //---------------------------------------------------------------------------
    -
    22109 // Zone name: Asia/Tomsk
    -
    22110 // Eras: 9
    -
    22111 //---------------------------------------------------------------------------
    -
    22112 
    -
    22113 static const complete::Info::ZoneEra kZoneEraAsia_Tomsk[] ACE_TIME_PROGMEM = {
    -
    22114  // 5:39:51 - LMT 1919 Dec 22
    -
    22115  {
    -
    22116  nullptr /*zonePolicy*/,
    -
    22117  "LMT" /*format*/,
    -
    22118  1359 /*offsetCode (20391/15)*/,
    -
    22119  6 /*offsetRemainder (20391%15)*/,
    -
    22120  0 /*deltaMinutes*/,
    -
    22121  1919 /*untilYear*/,
    -
    22122  12 /*untilMonth*/,
    -
    22123  22 /*untilDay*/,
    -
    22124  0 /*untilTimeCode (0/15)*/,
    -
    22125  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22126  },
    -
    22127  // 6:00 - %z 1930 Jun 21
    -
    22128  {
    -
    22129  nullptr /*zonePolicy*/,
    -
    22130  "" /*format*/,
    -
    22131  1440 /*offsetCode (21600/15)*/,
    -
    22132  0 /*offsetRemainder (21600%15)*/,
    -
    22133  0 /*deltaMinutes*/,
    -
    22134  1930 /*untilYear*/,
    -
    22135  6 /*untilMonth*/,
    -
    22136  21 /*untilDay*/,
    -
    22137  0 /*untilTimeCode (0/15)*/,
    -
    22138  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22139  },
    -
    22140  // 7:00 Russia %z 1991 Mar 31 2:00s
    -
    22141  {
    -
    22142  &kZonePolicyRussia /*zonePolicy*/,
    -
    22143  "" /*format*/,
    -
    22144  1680 /*offsetCode (25200/15)*/,
    -
    22145  0 /*offsetRemainder (25200%15)*/,
    -
    22146  0 /*deltaMinutes*/,
    -
    22147  1991 /*untilYear*/,
    -
    22148  3 /*untilMonth*/,
    -
    22149  31 /*untilDay*/,
    -
    22150  480 /*untilTimeCode (7200/15)*/,
    -
    22151  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22152  },
    -
    22153  // 6:00 Russia %z 1992 Jan 19 2:00s
    -
    22154  {
    -
    22155  &kZonePolicyRussia /*zonePolicy*/,
    -
    22156  "" /*format*/,
    -
    22157  1440 /*offsetCode (21600/15)*/,
    -
    22158  0 /*offsetRemainder (21600%15)*/,
    -
    22159  0 /*deltaMinutes*/,
    -
    22160  1992 /*untilYear*/,
    -
    22161  1 /*untilMonth*/,
    -
    22162  19 /*untilDay*/,
    -
    22163  480 /*untilTimeCode (7200/15)*/,
    -
    22164  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22165  },
    -
    22166  // 7:00 Russia %z 2002 May 1 3:00
    -
    22167  {
    -
    22168  &kZonePolicyRussia /*zonePolicy*/,
    -
    22169  "" /*format*/,
    -
    22170  1680 /*offsetCode (25200/15)*/,
    -
    22171  0 /*offsetRemainder (25200%15)*/,
    -
    22172  0 /*deltaMinutes*/,
    -
    22173  2002 /*untilYear*/,
    -
    22174  5 /*untilMonth*/,
    -
    22175  1 /*untilDay*/,
    -
    22176  720 /*untilTimeCode (10800/15)*/,
    -
    22177  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22178  },
    -
    22179  // 6:00 Russia %z 2011 Mar 27 2:00s
    -
    22180  {
    -
    22181  &kZonePolicyRussia /*zonePolicy*/,
    -
    22182  "" /*format*/,
    -
    22183  1440 /*offsetCode (21600/15)*/,
    -
    22184  0 /*offsetRemainder (21600%15)*/,
    -
    22185  0 /*deltaMinutes*/,
    -
    22186  2011 /*untilYear*/,
    -
    22187  3 /*untilMonth*/,
    -
    22188  27 /*untilDay*/,
    -
    22189  480 /*untilTimeCode (7200/15)*/,
    -
    22190  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22191  },
    -
    22192  // 7:00 - %z 2014 Oct 26 2:00s
    -
    22193  {
    -
    22194  nullptr /*zonePolicy*/,
    -
    22195  "" /*format*/,
    -
    22196  1680 /*offsetCode (25200/15)*/,
    -
    22197  0 /*offsetRemainder (25200%15)*/,
    -
    22198  0 /*deltaMinutes*/,
    -
    22199  2014 /*untilYear*/,
    -
    22200  10 /*untilMonth*/,
    -
    22201  26 /*untilDay*/,
    -
    22202  480 /*untilTimeCode (7200/15)*/,
    -
    22203  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22204  },
    -
    22205  // 6:00 - %z 2016 May 29 2:00s
    -
    22206  {
    -
    22207  nullptr /*zonePolicy*/,
    -
    22208  "" /*format*/,
    -
    22209  1440 /*offsetCode (21600/15)*/,
    -
    22210  0 /*offsetRemainder (21600%15)*/,
    -
    22211  0 /*deltaMinutes*/,
    -
    22212  2016 /*untilYear*/,
    -
    22213  5 /*untilMonth*/,
    -
    22214  29 /*untilDay*/,
    -
    22215  480 /*untilTimeCode (7200/15)*/,
    -
    22216  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22217  },
    -
    22218  // 7:00 - %z
    -
    22219  {
    -
    22220  nullptr /*zonePolicy*/,
    -
    22221  "" /*format*/,
    -
    22222  1680 /*offsetCode (25200/15)*/,
    -
    22223  0 /*offsetRemainder (25200%15)*/,
    -
    22224  0 /*deltaMinutes*/,
    -
    22225  32767 /*untilYear*/,
    -
    22226  1 /*untilMonth*/,
    -
    22227  1 /*untilDay*/,
    -
    22228  0 /*untilTimeCode (0/15)*/,
    -
    22229  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22230  },
    -
    22231 
    -
    22232 };
    -
    22233 
    -
    22234 static const char kZoneNameAsia_Tomsk[] ACE_TIME_PROGMEM = "\x05" "Tomsk";
    -
    22235 
    -
    22236 const complete::Info::ZoneInfo kZoneAsia_Tomsk ACE_TIME_PROGMEM = {
    -
    22237  kZoneNameAsia_Tomsk /*name*/,
    -
    22238  0x15e60e60 /*zoneId*/,
    -
    22239  &kZoneContext /*zoneContext*/,
    -
    22240  9 /*numEras*/,
    -
    22241  kZoneEraAsia_Tomsk /*eras*/,
    -
    22242  nullptr /*targetInfo*/,
    -
    22243 };
    -
    22244 
    -
    22245 //---------------------------------------------------------------------------
    -
    22246 // Zone name: Asia/Ulaanbaatar
    -
    22247 // Eras: 3
    -
    22248 //---------------------------------------------------------------------------
    -
    22249 
    -
    22250 static const complete::Info::ZoneEra kZoneEraAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = {
    -
    22251  // 7:07:32 - LMT 1905 Aug
    -
    22252  {
    -
    22253  nullptr /*zonePolicy*/,
    -
    22254  "LMT" /*format*/,
    -
    22255  1710 /*offsetCode (25652/15)*/,
    -
    22256  2 /*offsetRemainder (25652%15)*/,
    -
    22257  0 /*deltaMinutes*/,
    -
    22258  1905 /*untilYear*/,
    -
    22259  8 /*untilMonth*/,
    -
    22260  1 /*untilDay*/,
    -
    22261  0 /*untilTimeCode (0/15)*/,
    -
    22262  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22263  },
    -
    22264  // 7:00 - %z 1978
    -
    22265  {
    -
    22266  nullptr /*zonePolicy*/,
    -
    22267  "" /*format*/,
    -
    22268  1680 /*offsetCode (25200/15)*/,
    -
    22269  0 /*offsetRemainder (25200%15)*/,
    -
    22270  0 /*deltaMinutes*/,
    -
    22271  1978 /*untilYear*/,
    -
    22272  1 /*untilMonth*/,
    -
    22273  1 /*untilDay*/,
    -
    22274  0 /*untilTimeCode (0/15)*/,
    -
    22275  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22276  },
    -
    22277  // 8:00 Mongol %z
    -
    22278  {
    -
    22279  &kZonePolicyMongol /*zonePolicy*/,
    -
    22280  "" /*format*/,
    -
    22281  1920 /*offsetCode (28800/15)*/,
    -
    22282  0 /*offsetRemainder (28800%15)*/,
    -
    22283  0 /*deltaMinutes*/,
    -
    22284  32767 /*untilYear*/,
    -
    22285  1 /*untilMonth*/,
    -
    22286  1 /*untilDay*/,
    -
    22287  0 /*untilTimeCode (0/15)*/,
    -
    22288  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22289  },
    -
    22290 
    -
    22291 };
    -
    22292 
    -
    22293 static const char kZoneNameAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = "\x05" "Ulaanbaatar";
    -
    22294 
    -
    22295 const complete::Info::ZoneInfo kZoneAsia_Ulaanbaatar ACE_TIME_PROGMEM = {
    -
    22296  kZoneNameAsia_Ulaanbaatar /*name*/,
    -
    22297  0x30f0cc4e /*zoneId*/,
    -
    22298  &kZoneContext /*zoneContext*/,
    -
    22299  3 /*numEras*/,
    -
    22300  kZoneEraAsia_Ulaanbaatar /*eras*/,
    -
    22301  nullptr /*targetInfo*/,
    -
    22302 };
    -
    22303 
    -
    22304 //---------------------------------------------------------------------------
    -
    22305 // Zone name: Asia/Urumqi
    -
    22306 // Eras: 2
    -
    22307 //---------------------------------------------------------------------------
    -
    22308 
    -
    22309 static const complete::Info::ZoneEra kZoneEraAsia_Urumqi[] ACE_TIME_PROGMEM = {
    -
    22310  // 5:50:20 - LMT 1928
    -
    22311  {
    -
    22312  nullptr /*zonePolicy*/,
    -
    22313  "LMT" /*format*/,
    -
    22314  1401 /*offsetCode (21020/15)*/,
    -
    22315  5 /*offsetRemainder (21020%15)*/,
    -
    22316  0 /*deltaMinutes*/,
    -
    22317  1928 /*untilYear*/,
    -
    22318  1 /*untilMonth*/,
    -
    22319  1 /*untilDay*/,
    -
    22320  0 /*untilTimeCode (0/15)*/,
    -
    22321  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22322  },
    -
    22323  // 6:00 - %z
    -
    22324  {
    -
    22325  nullptr /*zonePolicy*/,
    -
    22326  "" /*format*/,
    -
    22327  1440 /*offsetCode (21600/15)*/,
    -
    22328  0 /*offsetRemainder (21600%15)*/,
    -
    22329  0 /*deltaMinutes*/,
    -
    22330  32767 /*untilYear*/,
    -
    22331  1 /*untilMonth*/,
    -
    22332  1 /*untilDay*/,
    -
    22333  0 /*untilTimeCode (0/15)*/,
    -
    22334  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22335  },
    -
    22336 
    -
    22337 };
    -
    22338 
    -
    22339 static const char kZoneNameAsia_Urumqi[] ACE_TIME_PROGMEM = "\x05" "Urumqi";
    -
    22340 
    -
    22341 const complete::Info::ZoneInfo kZoneAsia_Urumqi ACE_TIME_PROGMEM = {
    -
    22342  kZoneNameAsia_Urumqi /*name*/,
    -
    22343  0xd5379735 /*zoneId*/,
    -
    22344  &kZoneContext /*zoneContext*/,
    -
    22345  2 /*numEras*/,
    -
    22346  kZoneEraAsia_Urumqi /*eras*/,
    -
    22347  nullptr /*targetInfo*/,
    -
    22348 };
    -
    22349 
    -
    22350 //---------------------------------------------------------------------------
    -
    22351 // Zone name: Asia/Ust-Nera
    -
    22352 // Eras: 9
    -
    22353 //---------------------------------------------------------------------------
    -
    22354 
    -
    22355 static const complete::Info::ZoneEra kZoneEraAsia_Ust_Nera[] ACE_TIME_PROGMEM = {
    -
    22356  // 9:32:54 - LMT 1919 Dec 15
    -
    22357  {
    -
    22358  nullptr /*zonePolicy*/,
    -
    22359  "LMT" /*format*/,
    -
    22360  2291 /*offsetCode (34374/15)*/,
    -
    22361  9 /*offsetRemainder (34374%15)*/,
    -
    22362  0 /*deltaMinutes*/,
    -
    22363  1919 /*untilYear*/,
    -
    22364  12 /*untilMonth*/,
    -
    22365  15 /*untilDay*/,
    -
    22366  0 /*untilTimeCode (0/15)*/,
    -
    22367  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22368  },
    -
    22369  // 8:00 - %z 1930 Jun 21
    -
    22370  {
    -
    22371  nullptr /*zonePolicy*/,
    -
    22372  "" /*format*/,
    -
    22373  1920 /*offsetCode (28800/15)*/,
    -
    22374  0 /*offsetRemainder (28800%15)*/,
    -
    22375  0 /*deltaMinutes*/,
    -
    22376  1930 /*untilYear*/,
    -
    22377  6 /*untilMonth*/,
    -
    22378  21 /*untilDay*/,
    -
    22379  0 /*untilTimeCode (0/15)*/,
    -
    22380  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22381  },
    -
    22382  // 9:00 Russia %z 1981 Apr 1
    -
    22383  {
    -
    22384  &kZonePolicyRussia /*zonePolicy*/,
    -
    22385  "" /*format*/,
    -
    22386  2160 /*offsetCode (32400/15)*/,
    -
    22387  0 /*offsetRemainder (32400%15)*/,
    -
    22388  0 /*deltaMinutes*/,
    -
    22389  1981 /*untilYear*/,
    -
    22390  4 /*untilMonth*/,
    -
    22391  1 /*untilDay*/,
    -
    22392  0 /*untilTimeCode (0/15)*/,
    -
    22393  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22394  },
    -
    22395  // 11:00 Russia %z 1991 Mar 31 2:00s
    -
    22396  {
    -
    22397  &kZonePolicyRussia /*zonePolicy*/,
    -
    22398  "" /*format*/,
    -
    22399  2640 /*offsetCode (39600/15)*/,
    -
    22400  0 /*offsetRemainder (39600%15)*/,
    -
    22401  0 /*deltaMinutes*/,
    -
    22402  1991 /*untilYear*/,
    -
    22403  3 /*untilMonth*/,
    -
    22404  31 /*untilDay*/,
    -
    22405  480 /*untilTimeCode (7200/15)*/,
    -
    22406  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22407  },
    -
    22408  // 10:00 Russia %z 1992 Jan 19 2:00s
    -
    22409  {
    -
    22410  &kZonePolicyRussia /*zonePolicy*/,
    -
    22411  "" /*format*/,
    -
    22412  2400 /*offsetCode (36000/15)*/,
    -
    22413  0 /*offsetRemainder (36000%15)*/,
    -
    22414  0 /*deltaMinutes*/,
    -
    22415  1992 /*untilYear*/,
    -
    22416  1 /*untilMonth*/,
    -
    22417  19 /*untilDay*/,
    -
    22418  480 /*untilTimeCode (7200/15)*/,
    -
    22419  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22420  },
    -
    22421  // 11:00 Russia %z 2011 Mar 27 2:00s
    -
    22422  {
    -
    22423  &kZonePolicyRussia /*zonePolicy*/,
    -
    22424  "" /*format*/,
    -
    22425  2640 /*offsetCode (39600/15)*/,
    -
    22426  0 /*offsetRemainder (39600%15)*/,
    -
    22427  0 /*deltaMinutes*/,
    -
    22428  2011 /*untilYear*/,
    -
    22429  3 /*untilMonth*/,
    -
    22430  27 /*untilDay*/,
    -
    22431  480 /*untilTimeCode (7200/15)*/,
    -
    22432  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22433  },
    -
    22434  // 12:00 - %z 2011 Sep 13 0:00s
    -
    22435  {
    -
    22436  nullptr /*zonePolicy*/,
    -
    22437  "" /*format*/,
    -
    22438  2880 /*offsetCode (43200/15)*/,
    -
    22439  0 /*offsetRemainder (43200%15)*/,
    -
    22440  0 /*deltaMinutes*/,
    -
    22441  2011 /*untilYear*/,
    -
    22442  9 /*untilMonth*/,
    -
    22443  13 /*untilDay*/,
    -
    22444  0 /*untilTimeCode (0/15)*/,
    -
    22445  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22446  },
    -
    22447  // 11:00 - %z 2014 Oct 26 2:00s
    -
    22448  {
    -
    22449  nullptr /*zonePolicy*/,
    -
    22450  "" /*format*/,
    -
    22451  2640 /*offsetCode (39600/15)*/,
    -
    22452  0 /*offsetRemainder (39600%15)*/,
    -
    22453  0 /*deltaMinutes*/,
    -
    22454  2014 /*untilYear*/,
    -
    22455  10 /*untilMonth*/,
    -
    22456  26 /*untilDay*/,
    -
    22457  480 /*untilTimeCode (7200/15)*/,
    -
    22458  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22459  },
    -
    22460  // 10:00 - %z
    -
    22461  {
    -
    22462  nullptr /*zonePolicy*/,
    -
    22463  "" /*format*/,
    -
    22464  2400 /*offsetCode (36000/15)*/,
    -
    22465  0 /*offsetRemainder (36000%15)*/,
    -
    22466  0 /*deltaMinutes*/,
    -
    22467  32767 /*untilYear*/,
    -
    22468  1 /*untilMonth*/,
    -
    22469  1 /*untilDay*/,
    -
    22470  0 /*untilTimeCode (0/15)*/,
    -
    22471  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22472  },
    -
    22473 
    -
    22474 };
    -
    22475 
    -
    22476 static const char kZoneNameAsia_Ust_Nera[] ACE_TIME_PROGMEM = "\x05" "Ust-Nera";
    -
    22477 
    -
    22478 const complete::Info::ZoneInfo kZoneAsia_Ust_Nera ACE_TIME_PROGMEM = {
    -
    22479  kZoneNameAsia_Ust_Nera /*name*/,
    -
    22480  0x4785f921 /*zoneId*/,
    -
    22481  &kZoneContext /*zoneContext*/,
    -
    22482  9 /*numEras*/,
    -
    22483  kZoneEraAsia_Ust_Nera /*eras*/,
    -
    22484  nullptr /*targetInfo*/,
    -
    22485 };
    -
    22486 
    -
    22487 //---------------------------------------------------------------------------
    -
    22488 // Zone name: Asia/Vladivostok
    -
    22489 // Eras: 7
    -
    22490 //---------------------------------------------------------------------------
    -
    22491 
    -
    22492 static const complete::Info::ZoneEra kZoneEraAsia_Vladivostok[] ACE_TIME_PROGMEM = {
    -
    22493  // 8:47:31 - LMT 1922 Nov 15
    -
    22494  {
    -
    22495  nullptr /*zonePolicy*/,
    -
    22496  "LMT" /*format*/,
    -
    22497  2110 /*offsetCode (31651/15)*/,
    -
    22498  1 /*offsetRemainder (31651%15)*/,
    -
    22499  0 /*deltaMinutes*/,
    -
    22500  1922 /*untilYear*/,
    -
    22501  11 /*untilMonth*/,
    -
    22502  15 /*untilDay*/,
    -
    22503  0 /*untilTimeCode (0/15)*/,
    -
    22504  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22505  },
    -
    22506  // 9:00 - %z 1930 Jun 21
    -
    22507  {
    -
    22508  nullptr /*zonePolicy*/,
    -
    22509  "" /*format*/,
    -
    22510  2160 /*offsetCode (32400/15)*/,
    -
    22511  0 /*offsetRemainder (32400%15)*/,
    -
    22512  0 /*deltaMinutes*/,
    -
    22513  1930 /*untilYear*/,
    -
    22514  6 /*untilMonth*/,
    -
    22515  21 /*untilDay*/,
    -
    22516  0 /*untilTimeCode (0/15)*/,
    -
    22517  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22518  },
    -
    22519  // 10:00 Russia %z 1991 Mar 31 2:00s
    -
    22520  {
    -
    22521  &kZonePolicyRussia /*zonePolicy*/,
    -
    22522  "" /*format*/,
    -
    22523  2400 /*offsetCode (36000/15)*/,
    -
    22524  0 /*offsetRemainder (36000%15)*/,
    -
    22525  0 /*deltaMinutes*/,
    -
    22526  1991 /*untilYear*/,
    -
    22527  3 /*untilMonth*/,
    -
    22528  31 /*untilDay*/,
    -
    22529  480 /*untilTimeCode (7200/15)*/,
    -
    22530  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22531  },
    -
    22532  // 9:00 Russia %z 1992 Jan 19 2:00s
    -
    22533  {
    -
    22534  &kZonePolicyRussia /*zonePolicy*/,
    -
    22535  "" /*format*/,
    -
    22536  2160 /*offsetCode (32400/15)*/,
    -
    22537  0 /*offsetRemainder (32400%15)*/,
    -
    22538  0 /*deltaMinutes*/,
    -
    22539  1992 /*untilYear*/,
    -
    22540  1 /*untilMonth*/,
    -
    22541  19 /*untilDay*/,
    -
    22542  480 /*untilTimeCode (7200/15)*/,
    -
    22543  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22544  },
    -
    22545  // 10:00 Russia %z 2011 Mar 27 2:00s
    -
    22546  {
    -
    22547  &kZonePolicyRussia /*zonePolicy*/,
    -
    22548  "" /*format*/,
    -
    22549  2400 /*offsetCode (36000/15)*/,
    -
    22550  0 /*offsetRemainder (36000%15)*/,
    -
    22551  0 /*deltaMinutes*/,
    -
    22552  2011 /*untilYear*/,
    -
    22553  3 /*untilMonth*/,
    -
    22554  27 /*untilDay*/,
    -
    22555  480 /*untilTimeCode (7200/15)*/,
    -
    22556  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22557  },
    -
    22558  // 11:00 - %z 2014 Oct 26 2:00s
    -
    22559  {
    -
    22560  nullptr /*zonePolicy*/,
    -
    22561  "" /*format*/,
    -
    22562  2640 /*offsetCode (39600/15)*/,
    -
    22563  0 /*offsetRemainder (39600%15)*/,
    -
    22564  0 /*deltaMinutes*/,
    -
    22565  2014 /*untilYear*/,
    -
    22566  10 /*untilMonth*/,
    -
    22567  26 /*untilDay*/,
    -
    22568  480 /*untilTimeCode (7200/15)*/,
    -
    22569  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22570  },
    -
    22571  // 10:00 - %z
    -
    22572  {
    -
    22573  nullptr /*zonePolicy*/,
    -
    22574  "" /*format*/,
    -
    22575  2400 /*offsetCode (36000/15)*/,
    -
    22576  0 /*offsetRemainder (36000%15)*/,
    -
    22577  0 /*deltaMinutes*/,
    -
    22578  32767 /*untilYear*/,
    -
    22579  1 /*untilMonth*/,
    -
    22580  1 /*untilDay*/,
    -
    22581  0 /*untilTimeCode (0/15)*/,
    -
    22582  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22583  },
    -
    22584 
    -
    22585 };
    -
    22586 
    -
    22587 static const char kZoneNameAsia_Vladivostok[] ACE_TIME_PROGMEM = "\x05" "Vladivostok";
    -
    22588 
    -
    22589 const complete::Info::ZoneInfo kZoneAsia_Vladivostok ACE_TIME_PROGMEM = {
    -
    22590  kZoneNameAsia_Vladivostok /*name*/,
    -
    22591  0x29de34a8 /*zoneId*/,
    -
    22592  &kZoneContext /*zoneContext*/,
    -
    22593  7 /*numEras*/,
    -
    22594  kZoneEraAsia_Vladivostok /*eras*/,
    -
    22595  nullptr /*targetInfo*/,
    -
    22596 };
    -
    22597 
    -
    22598 //---------------------------------------------------------------------------
    -
    22599 // Zone name: Asia/Yakutsk
    -
    22600 // Eras: 7
    -
    22601 //---------------------------------------------------------------------------
    -
    22602 
    -
    22603 static const complete::Info::ZoneEra kZoneEraAsia_Yakutsk[] ACE_TIME_PROGMEM = {
    -
    22604  // 8:38:58 - LMT 1919 Dec 15
    -
    22605  {
    -
    22606  nullptr /*zonePolicy*/,
    -
    22607  "LMT" /*format*/,
    -
    22608  2075 /*offsetCode (31138/15)*/,
    -
    22609  13 /*offsetRemainder (31138%15)*/,
    -
    22610  0 /*deltaMinutes*/,
    -
    22611  1919 /*untilYear*/,
    -
    22612  12 /*untilMonth*/,
    -
    22613  15 /*untilDay*/,
    -
    22614  0 /*untilTimeCode (0/15)*/,
    -
    22615  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22616  },
    -
    22617  // 8:00 - %z 1930 Jun 21
    -
    22618  {
    -
    22619  nullptr /*zonePolicy*/,
    -
    22620  "" /*format*/,
    -
    22621  1920 /*offsetCode (28800/15)*/,
    -
    22622  0 /*offsetRemainder (28800%15)*/,
    -
    22623  0 /*deltaMinutes*/,
    -
    22624  1930 /*untilYear*/,
    -
    22625  6 /*untilMonth*/,
    -
    22626  21 /*untilDay*/,
    -
    22627  0 /*untilTimeCode (0/15)*/,
    -
    22628  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22629  },
    -
    22630  // 9:00 Russia %z 1991 Mar 31 2:00s
    -
    22631  {
    -
    22632  &kZonePolicyRussia /*zonePolicy*/,
    -
    22633  "" /*format*/,
    -
    22634  2160 /*offsetCode (32400/15)*/,
    -
    22635  0 /*offsetRemainder (32400%15)*/,
    -
    22636  0 /*deltaMinutes*/,
    -
    22637  1991 /*untilYear*/,
    -
    22638  3 /*untilMonth*/,
    -
    22639  31 /*untilDay*/,
    -
    22640  480 /*untilTimeCode (7200/15)*/,
    -
    22641  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22642  },
    -
    22643  // 8:00 Russia %z 1992 Jan 19 2:00s
    -
    22644  {
    -
    22645  &kZonePolicyRussia /*zonePolicy*/,
    -
    22646  "" /*format*/,
    -
    22647  1920 /*offsetCode (28800/15)*/,
    -
    22648  0 /*offsetRemainder (28800%15)*/,
    -
    22649  0 /*deltaMinutes*/,
    -
    22650  1992 /*untilYear*/,
    -
    22651  1 /*untilMonth*/,
    -
    22652  19 /*untilDay*/,
    -
    22653  480 /*untilTimeCode (7200/15)*/,
    -
    22654  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22655  },
    -
    22656  // 9:00 Russia %z 2011 Mar 27 2:00s
    -
    22657  {
    -
    22658  &kZonePolicyRussia /*zonePolicy*/,
    -
    22659  "" /*format*/,
    -
    22660  2160 /*offsetCode (32400/15)*/,
    -
    22661  0 /*offsetRemainder (32400%15)*/,
    -
    22662  0 /*deltaMinutes*/,
    -
    22663  2011 /*untilYear*/,
    -
    22664  3 /*untilMonth*/,
    -
    22665  27 /*untilDay*/,
    -
    22666  480 /*untilTimeCode (7200/15)*/,
    -
    22667  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22668  },
    -
    22669  // 10:00 - %z 2014 Oct 26 2:00s
    -
    22670  {
    -
    22671  nullptr /*zonePolicy*/,
    -
    22672  "" /*format*/,
    -
    22673  2400 /*offsetCode (36000/15)*/,
    -
    22674  0 /*offsetRemainder (36000%15)*/,
    -
    22675  0 /*deltaMinutes*/,
    -
    22676  2014 /*untilYear*/,
    -
    22677  10 /*untilMonth*/,
    -
    22678  26 /*untilDay*/,
    -
    22679  480 /*untilTimeCode (7200/15)*/,
    -
    22680  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22681  },
    -
    22682  // 9:00 - %z
    -
    22683  {
    -
    22684  nullptr /*zonePolicy*/,
    -
    22685  "" /*format*/,
    -
    22686  2160 /*offsetCode (32400/15)*/,
    -
    22687  0 /*offsetRemainder (32400%15)*/,
    -
    22688  0 /*deltaMinutes*/,
    -
    22689  32767 /*untilYear*/,
    -
    22690  1 /*untilMonth*/,
    -
    22691  1 /*untilDay*/,
    -
    22692  0 /*untilTimeCode (0/15)*/,
    -
    22693  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22694  },
    -
    22695 
    -
    22696 };
    -
    22697 
    -
    22698 static const char kZoneNameAsia_Yakutsk[] ACE_TIME_PROGMEM = "\x05" "Yakutsk";
    -
    22699 
    -
    22700 const complete::Info::ZoneInfo kZoneAsia_Yakutsk ACE_TIME_PROGMEM = {
    -
    22701  kZoneNameAsia_Yakutsk /*name*/,
    -
    22702  0x87bb3a9e /*zoneId*/,
    -
    22703  &kZoneContext /*zoneContext*/,
    -
    22704  7 /*numEras*/,
    -
    22705  kZoneEraAsia_Yakutsk /*eras*/,
    -
    22706  nullptr /*targetInfo*/,
    -
    22707 };
    -
    22708 
    -
    22709 //---------------------------------------------------------------------------
    -
    22710 // Zone name: Asia/Yangon
    -
    22711 // Eras: 5
    -
    22712 //---------------------------------------------------------------------------
    -
    22713 
    -
    22714 static const complete::Info::ZoneEra kZoneEraAsia_Yangon[] ACE_TIME_PROGMEM = {
    -
    22715  // 6:24:47 - LMT 1880
    -
    22716  {
    -
    22717  nullptr /*zonePolicy*/,
    -
    22718  "LMT" /*format*/,
    -
    22719  1539 /*offsetCode (23087/15)*/,
    -
    22720  2 /*offsetRemainder (23087%15)*/,
    -
    22721  0 /*deltaMinutes*/,
    -
    22722  1880 /*untilYear*/,
    -
    22723  1 /*untilMonth*/,
    -
    22724  1 /*untilDay*/,
    -
    22725  0 /*untilTimeCode (0/15)*/,
    -
    22726  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22727  },
    -
    22728  // 6:24:47 - RMT 1920
    -
    22729  {
    -
    22730  nullptr /*zonePolicy*/,
    -
    22731  "RMT" /*format*/,
    -
    22732  1539 /*offsetCode (23087/15)*/,
    -
    22733  2 /*offsetRemainder (23087%15)*/,
    -
    22734  0 /*deltaMinutes*/,
    -
    22735  1920 /*untilYear*/,
    -
    22736  1 /*untilMonth*/,
    -
    22737  1 /*untilDay*/,
    -
    22738  0 /*untilTimeCode (0/15)*/,
    -
    22739  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22740  },
    -
    22741  // 6:30 - %z 1942 May
    -
    22742  {
    -
    22743  nullptr /*zonePolicy*/,
    -
    22744  "" /*format*/,
    -
    22745  1560 /*offsetCode (23400/15)*/,
    -
    22746  0 /*offsetRemainder (23400%15)*/,
    -
    22747  0 /*deltaMinutes*/,
    -
    22748  1942 /*untilYear*/,
    -
    22749  5 /*untilMonth*/,
    -
    22750  1 /*untilDay*/,
    -
    22751  0 /*untilTimeCode (0/15)*/,
    -
    22752  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22753  },
    -
    22754  // 9:00 - %z 1945 May 3
    -
    22755  {
    -
    22756  nullptr /*zonePolicy*/,
    -
    22757  "" /*format*/,
    -
    22758  2160 /*offsetCode (32400/15)*/,
    -
    22759  0 /*offsetRemainder (32400%15)*/,
    -
    22760  0 /*deltaMinutes*/,
    -
    22761  1945 /*untilYear*/,
    -
    22762  5 /*untilMonth*/,
    -
    22763  3 /*untilDay*/,
    -
    22764  0 /*untilTimeCode (0/15)*/,
    -
    22765  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22766  },
    -
    22767  // 6:30 - %z
    -
    22768  {
    -
    22769  nullptr /*zonePolicy*/,
    -
    22770  "" /*format*/,
    -
    22771  1560 /*offsetCode (23400/15)*/,
    -
    22772  0 /*offsetRemainder (23400%15)*/,
    -
    22773  0 /*deltaMinutes*/,
    -
    22774  32767 /*untilYear*/,
    -
    22775  1 /*untilMonth*/,
    -
    22776  1 /*untilDay*/,
    -
    22777  0 /*untilTimeCode (0/15)*/,
    -
    22778  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22779  },
    -
    22780 
    -
    22781 };
    -
    22782 
    -
    22783 static const char kZoneNameAsia_Yangon[] ACE_TIME_PROGMEM = "\x05" "Yangon";
    -
    22784 
    -
    22785 const complete::Info::ZoneInfo kZoneAsia_Yangon ACE_TIME_PROGMEM = {
    -
    22786  kZoneNameAsia_Yangon /*name*/,
    -
    22787  0xdd54a8be /*zoneId*/,
    -
    22788  &kZoneContext /*zoneContext*/,
    -
    22789  5 /*numEras*/,
    -
    22790  kZoneEraAsia_Yangon /*eras*/,
    -
    22791  nullptr /*targetInfo*/,
    -
    22792 };
    -
    22793 
    -
    22794 //---------------------------------------------------------------------------
    -
    22795 // Zone name: Asia/Yekaterinburg
    -
    22796 // Eras: 8
    -
    22797 //---------------------------------------------------------------------------
    -
    22798 
    -
    22799 static const complete::Info::ZoneEra kZoneEraAsia_Yekaterinburg[] ACE_TIME_PROGMEM = {
    -
    22800  // 4:02:33 - LMT 1916 Jul 3
    -
    22801  {
    -
    22802  nullptr /*zonePolicy*/,
    -
    22803  "LMT" /*format*/,
    -
    22804  970 /*offsetCode (14553/15)*/,
    -
    22805  3 /*offsetRemainder (14553%15)*/,
    -
    22806  0 /*deltaMinutes*/,
    -
    22807  1916 /*untilYear*/,
    -
    22808  7 /*untilMonth*/,
    -
    22809  3 /*untilDay*/,
    -
    22810  0 /*untilTimeCode (0/15)*/,
    -
    22811  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22812  },
    -
    22813  // 3:45:05 - PMT 1919 Jul 15 4:00
    -
    22814  {
    -
    22815  nullptr /*zonePolicy*/,
    -
    22816  "PMT" /*format*/,
    -
    22817  900 /*offsetCode (13505/15)*/,
    -
    22818  5 /*offsetRemainder (13505%15)*/,
    -
    22819  0 /*deltaMinutes*/,
    -
    22820  1919 /*untilYear*/,
    -
    22821  7 /*untilMonth*/,
    -
    22822  15 /*untilDay*/,
    -
    22823  960 /*untilTimeCode (14400/15)*/,
    -
    22824  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22825  },
    -
    22826  // 4:00 - %z 1930 Jun 21
    -
    22827  {
    -
    22828  nullptr /*zonePolicy*/,
    -
    22829  "" /*format*/,
    -
    22830  960 /*offsetCode (14400/15)*/,
    -
    22831  0 /*offsetRemainder (14400%15)*/,
    -
    22832  0 /*deltaMinutes*/,
    -
    22833  1930 /*untilYear*/,
    -
    22834  6 /*untilMonth*/,
    -
    22835  21 /*untilDay*/,
    -
    22836  0 /*untilTimeCode (0/15)*/,
    -
    22837  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22838  },
    -
    22839  // 5:00 Russia %z 1991 Mar 31 2:00s
    -
    22840  {
    -
    22841  &kZonePolicyRussia /*zonePolicy*/,
    -
    22842  "" /*format*/,
    -
    22843  1200 /*offsetCode (18000/15)*/,
    -
    22844  0 /*offsetRemainder (18000%15)*/,
    -
    22845  0 /*deltaMinutes*/,
    -
    22846  1991 /*untilYear*/,
    -
    22847  3 /*untilMonth*/,
    -
    22848  31 /*untilDay*/,
    -
    22849  480 /*untilTimeCode (7200/15)*/,
    -
    22850  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22851  },
    -
    22852  // 4:00 Russia %z 1992 Jan 19 2:00s
    -
    22853  {
    -
    22854  &kZonePolicyRussia /*zonePolicy*/,
    -
    22855  "" /*format*/,
    -
    22856  960 /*offsetCode (14400/15)*/,
    -
    22857  0 /*offsetRemainder (14400%15)*/,
    -
    22858  0 /*deltaMinutes*/,
    -
    22859  1992 /*untilYear*/,
    -
    22860  1 /*untilMonth*/,
    -
    22861  19 /*untilDay*/,
    -
    22862  480 /*untilTimeCode (7200/15)*/,
    -
    22863  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22864  },
    -
    22865  // 5:00 Russia %z 2011 Mar 27 2:00s
    -
    22866  {
    -
    22867  &kZonePolicyRussia /*zonePolicy*/,
    -
    22868  "" /*format*/,
    -
    22869  1200 /*offsetCode (18000/15)*/,
    -
    22870  0 /*offsetRemainder (18000%15)*/,
    -
    22871  0 /*deltaMinutes*/,
    -
    22872  2011 /*untilYear*/,
    -
    22873  3 /*untilMonth*/,
    -
    22874  27 /*untilDay*/,
    -
    22875  480 /*untilTimeCode (7200/15)*/,
    -
    22876  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22877  },
    -
    22878  // 6:00 - %z 2014 Oct 26 2:00s
    -
    22879  {
    -
    22880  nullptr /*zonePolicy*/,
    -
    22881  "" /*format*/,
    -
    22882  1440 /*offsetCode (21600/15)*/,
    -
    22883  0 /*offsetRemainder (21600%15)*/,
    -
    22884  0 /*deltaMinutes*/,
    -
    22885  2014 /*untilYear*/,
    -
    22886  10 /*untilMonth*/,
    -
    22887  26 /*untilDay*/,
    -
    22888  480 /*untilTimeCode (7200/15)*/,
    -
    22889  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22890  },
    -
    22891  // 5:00 - %z
    -
    22892  {
    -
    22893  nullptr /*zonePolicy*/,
    -
    22894  "" /*format*/,
    -
    22895  1200 /*offsetCode (18000/15)*/,
    -
    22896  0 /*offsetRemainder (18000%15)*/,
    -
    22897  0 /*deltaMinutes*/,
    -
    22898  32767 /*untilYear*/,
    -
    22899  1 /*untilMonth*/,
    -
    22900  1 /*untilDay*/,
    -
    22901  0 /*untilTimeCode (0/15)*/,
    -
    22902  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22903  },
    -
    22904 
    -
    22905 };
    -
    22906 
    -
    22907 static const char kZoneNameAsia_Yekaterinburg[] ACE_TIME_PROGMEM = "\x05" "Yekaterinburg";
    -
    22908 
    -
    22909 const complete::Info::ZoneInfo kZoneAsia_Yekaterinburg ACE_TIME_PROGMEM = {
    -
    22910  kZoneNameAsia_Yekaterinburg /*name*/,
    -
    22911  0xfb544c6e /*zoneId*/,
    -
    22912  &kZoneContext /*zoneContext*/,
    -
    22913  8 /*numEras*/,
    -
    22914  kZoneEraAsia_Yekaterinburg /*eras*/,
    -
    22915  nullptr /*targetInfo*/,
    -
    22916 };
    -
    22917 
    -
    22918 //---------------------------------------------------------------------------
    -
    22919 // Zone name: Asia/Yerevan
    -
    22920 // Eras: 7
    -
    22921 //---------------------------------------------------------------------------
    -
    22922 
    -
    22923 static const complete::Info::ZoneEra kZoneEraAsia_Yerevan[] ACE_TIME_PROGMEM = {
    -
    22924  // 2:58:00 - LMT 1924 May 2
    -
    22925  {
    -
    22926  nullptr /*zonePolicy*/,
    -
    22927  "LMT" /*format*/,
    -
    22928  712 /*offsetCode (10680/15)*/,
    -
    22929  0 /*offsetRemainder (10680%15)*/,
    -
    22930  0 /*deltaMinutes*/,
    -
    22931  1924 /*untilYear*/,
    -
    22932  5 /*untilMonth*/,
    -
    22933  2 /*untilDay*/,
    -
    22934  0 /*untilTimeCode (0/15)*/,
    -
    22935  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22936  },
    -
    22937  // 3:00 - %z 1957 Mar
    -
    22938  {
    -
    22939  nullptr /*zonePolicy*/,
    -
    22940  "" /*format*/,
    -
    22941  720 /*offsetCode (10800/15)*/,
    -
    22942  0 /*offsetRemainder (10800%15)*/,
    -
    22943  0 /*deltaMinutes*/,
    -
    22944  1957 /*untilYear*/,
    -
    22945  3 /*untilMonth*/,
    -
    22946  1 /*untilDay*/,
    -
    22947  0 /*untilTimeCode (0/15)*/,
    -
    22948  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22949  },
    -
    22950  // 4:00 RussiaAsia %z 1991 Mar 31 2:00s
    -
    22951  {
    -
    22952  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    22953  "" /*format*/,
    -
    22954  960 /*offsetCode (14400/15)*/,
    -
    22955  0 /*offsetRemainder (14400%15)*/,
    -
    22956  0 /*deltaMinutes*/,
    -
    22957  1991 /*untilYear*/,
    -
    22958  3 /*untilMonth*/,
    -
    22959  31 /*untilDay*/,
    -
    22960  480 /*untilTimeCode (7200/15)*/,
    -
    22961  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22962  },
    -
    22963  // 3:00 RussiaAsia %z 1995 Sep 24 2:00s
    -
    22964  {
    -
    22965  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    22966  "" /*format*/,
    -
    22967  720 /*offsetCode (10800/15)*/,
    -
    22968  0 /*offsetRemainder (10800%15)*/,
    -
    22969  0 /*deltaMinutes*/,
    -
    22970  1995 /*untilYear*/,
    -
    22971  9 /*untilMonth*/,
    -
    22972  24 /*untilDay*/,
    -
    22973  480 /*untilTimeCode (7200/15)*/,
    -
    22974  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22975  },
    -
    22976  // 4:00 - %z 1997
    -
    22977  {
    -
    22978  nullptr /*zonePolicy*/,
    -
    22979  "" /*format*/,
    -
    22980  960 /*offsetCode (14400/15)*/,
    -
    22981  0 /*offsetRemainder (14400%15)*/,
    -
    22982  0 /*deltaMinutes*/,
    -
    22983  1997 /*untilYear*/,
    -
    22984  1 /*untilMonth*/,
    -
    22985  1 /*untilDay*/,
    -
    22986  0 /*untilTimeCode (0/15)*/,
    -
    22987  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22988  },
    -
    22989  // 4:00 RussiaAsia %z 2011
    -
    22990  {
    -
    22991  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    22992  "" /*format*/,
    -
    22993  960 /*offsetCode (14400/15)*/,
    -
    22994  0 /*offsetRemainder (14400%15)*/,
    -
    22995  0 /*deltaMinutes*/,
    -
    22996  2011 /*untilYear*/,
    -
    22997  1 /*untilMonth*/,
    -
    22998  1 /*untilDay*/,
    -
    22999  0 /*untilTimeCode (0/15)*/,
    -
    23000  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23001  },
    -
    23002  // 4:00 Armenia %z
    -
    23003  {
    -
    23004  &kZonePolicyArmenia /*zonePolicy*/,
    -
    23005  "" /*format*/,
    -
    23006  960 /*offsetCode (14400/15)*/,
    -
    23007  0 /*offsetRemainder (14400%15)*/,
    -
    23008  0 /*deltaMinutes*/,
    -
    23009  32767 /*untilYear*/,
    -
    23010  1 /*untilMonth*/,
    -
    23011  1 /*untilDay*/,
    -
    23012  0 /*untilTimeCode (0/15)*/,
    -
    23013  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23014  },
    -
    23015 
    -
    23016 };
    -
    23017 
    -
    23018 static const char kZoneNameAsia_Yerevan[] ACE_TIME_PROGMEM = "\x05" "Yerevan";
    -
    23019 
    -
    23020 const complete::Info::ZoneInfo kZoneAsia_Yerevan ACE_TIME_PROGMEM = {
    -
    23021  kZoneNameAsia_Yerevan /*name*/,
    -
    23022  0x9185c8cc /*zoneId*/,
    -
    23023  &kZoneContext /*zoneContext*/,
    -
    23024  7 /*numEras*/,
    -
    23025  kZoneEraAsia_Yerevan /*eras*/,
    -
    23026  nullptr /*targetInfo*/,
    -
    23027 };
    -
    23028 
    -
    23029 //---------------------------------------------------------------------------
    -
    23030 // Zone name: Atlantic/Azores
    -
    23031 // Eras: 8
    -
    23032 //---------------------------------------------------------------------------
    -
    23033 
    -
    23034 static const complete::Info::ZoneEra kZoneEraAtlantic_Azores[] ACE_TIME_PROGMEM = {
    -
    23035  // -1:42:40 - LMT 1884
    -
    23036  {
    -
    23037  nullptr /*zonePolicy*/,
    -
    23038  "LMT" /*format*/,
    -
    23039  -411 /*offsetCode (-6160/15)*/,
    -
    23040  5 /*offsetRemainder (-6160%15)*/,
    -
    23041  0 /*deltaMinutes*/,
    -
    23042  1884 /*untilYear*/,
    -
    23043  1 /*untilMonth*/,
    -
    23044  1 /*untilDay*/,
    -
    23045  0 /*untilTimeCode (0/15)*/,
    -
    23046  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23047  },
    -
    23048  // -1:54:32 - HMT 1912 Jan 1 2:00u
    -
    23049  {
    -
    23050  nullptr /*zonePolicy*/,
    -
    23051  "HMT" /*format*/,
    -
    23052  -459 /*offsetCode (-6872/15)*/,
    -
    23053  13 /*offsetRemainder (-6872%15)*/,
    -
    23054  0 /*deltaMinutes*/,
    -
    23055  1912 /*untilYear*/,
    -
    23056  1 /*untilMonth*/,
    -
    23057  1 /*untilDay*/,
    -
    23058  480 /*untilTimeCode (7200/15)*/,
    -
    23059  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    23060  },
    -
    23061  // -2:00 Port %z 1966 Oct 2 2:00s
    -
    23062  {
    -
    23063  &kZonePolicyPort /*zonePolicy*/,
    -
    23064  "" /*format*/,
    -
    23065  -480 /*offsetCode (-7200/15)*/,
    -
    23066  0 /*offsetRemainder (-7200%15)*/,
    -
    23067  0 /*deltaMinutes*/,
    -
    23068  1966 /*untilYear*/,
    -
    23069  10 /*untilMonth*/,
    -
    23070  2 /*untilDay*/,
    -
    23071  480 /*untilTimeCode (7200/15)*/,
    -
    23072  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    23073  },
    -
    23074  // -1:00 - %z 1982 Mar 28 0:00s
    -
    23075  {
    -
    23076  nullptr /*zonePolicy*/,
    -
    23077  "" /*format*/,
    -
    23078  -240 /*offsetCode (-3600/15)*/,
    -
    23079  0 /*offsetRemainder (-3600%15)*/,
    -
    23080  0 /*deltaMinutes*/,
    -
    23081  1982 /*untilYear*/,
    -
    23082  3 /*untilMonth*/,
    -
    23083  28 /*untilDay*/,
    -
    23084  0 /*untilTimeCode (0/15)*/,
    -
    23085  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    23086  },
    -
    23087  // -1:00 Port %z 1986
    -
    23088  {
    -
    23089  &kZonePolicyPort /*zonePolicy*/,
    -
    23090  "" /*format*/,
    -
    23091  -240 /*offsetCode (-3600/15)*/,
    -
    23092  0 /*offsetRemainder (-3600%15)*/,
    -
    23093  0 /*deltaMinutes*/,
    -
    23094  1986 /*untilYear*/,
    -
    23095  1 /*untilMonth*/,
    -
    23096  1 /*untilDay*/,
    -
    23097  0 /*untilTimeCode (0/15)*/,
    -
    23098  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23099  },
    -
    23100  // -1:00 EU %z 1992 Dec 27 1:00s
    -
    23101  {
    -
    23102  &kZonePolicyEU /*zonePolicy*/,
    -
    23103  "" /*format*/,
    -
    23104  -240 /*offsetCode (-3600/15)*/,
    -
    23105  0 /*offsetRemainder (-3600%15)*/,
    -
    23106  0 /*deltaMinutes*/,
    -
    23107  1992 /*untilYear*/,
    -
    23108  12 /*untilMonth*/,
    -
    23109  27 /*untilDay*/,
    -
    23110  240 /*untilTimeCode (3600/15)*/,
    -
    23111  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    23112  },
    -
    23113  // 0:00 EU WE%sT 1993 Jun 17 1:00u
    -
    23114  {
    -
    23115  &kZonePolicyEU /*zonePolicy*/,
    -
    23116  "WE%T" /*format*/,
    -
    23117  0 /*offsetCode (0/15)*/,
    -
    23118  0 /*offsetRemainder (0%15)*/,
    -
    23119  0 /*deltaMinutes*/,
    -
    23120  1993 /*untilYear*/,
    -
    23121  6 /*untilMonth*/,
    -
    23122  17 /*untilDay*/,
    -
    23123  240 /*untilTimeCode (3600/15)*/,
    -
    23124  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    23125  },
    -
    23126  // -1:00 EU %z
    -
    23127  {
    -
    23128  &kZonePolicyEU /*zonePolicy*/,
    -
    23129  "" /*format*/,
    -
    23130  -240 /*offsetCode (-3600/15)*/,
    -
    23131  0 /*offsetRemainder (-3600%15)*/,
    -
    23132  0 /*deltaMinutes*/,
    -
    23133  32767 /*untilYear*/,
    -
    23134  1 /*untilMonth*/,
    -
    23135  1 /*untilDay*/,
    -
    23136  0 /*untilTimeCode (0/15)*/,
    -
    23137  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23138  },
    -
    23139 
    -
    23140 };
    -
    23141 
    -
    23142 static const char kZoneNameAtlantic_Azores[] ACE_TIME_PROGMEM = "\x06" "Azores";
    -
    23143 
    -
    23144 const complete::Info::ZoneInfo kZoneAtlantic_Azores ACE_TIME_PROGMEM = {
    -
    23145  kZoneNameAtlantic_Azores /*name*/,
    -
    23146  0xf93ed918 /*zoneId*/,
    -
    23147  &kZoneContext /*zoneContext*/,
    -
    23148  8 /*numEras*/,
    -
    23149  kZoneEraAtlantic_Azores /*eras*/,
    -
    23150  nullptr /*targetInfo*/,
    -
    23151 };
    -
    23152 
    -
    23153 //---------------------------------------------------------------------------
    -
    23154 // Zone name: Atlantic/Bermuda
    -
    23155 // Eras: 5
    -
    23156 //---------------------------------------------------------------------------
    -
    23157 
    -
    23158 static const complete::Info::ZoneEra kZoneEraAtlantic_Bermuda[] ACE_TIME_PROGMEM = {
    -
    23159  // -4:19:18 - LMT 1890
    -
    23160  {
    -
    23161  nullptr /*zonePolicy*/,
    -
    23162  "LMT" /*format*/,
    -
    23163  -1038 /*offsetCode (-15558/15)*/,
    -
    23164  12 /*offsetRemainder (-15558%15)*/,
    -
    23165  0 /*deltaMinutes*/,
    -
    23166  1890 /*untilYear*/,
    -
    23167  1 /*untilMonth*/,
    -
    23168  1 /*untilDay*/,
    -
    23169  0 /*untilTimeCode (0/15)*/,
    -
    23170  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23171  },
    -
    23172  // -4:19:18 Bermuda BMT/BST 1930 Jan 1 2:00
    -
    23173  {
    -
    23174  &kZonePolicyBermuda /*zonePolicy*/,
    -
    23175  "BMT/BST" /*format*/,
    -
    23176  -1038 /*offsetCode (-15558/15)*/,
    -
    23177  12 /*offsetRemainder (-15558%15)*/,
    -
    23178  0 /*deltaMinutes*/,
    -
    23179  1930 /*untilYear*/,
    -
    23180  1 /*untilMonth*/,
    -
    23181  1 /*untilDay*/,
    -
    23182  480 /*untilTimeCode (7200/15)*/,
    -
    23183  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23184  },
    -
    23185  // -4:00 Bermuda A%sT 1974 Apr 28 2:00
    -
    23186  {
    -
    23187  &kZonePolicyBermuda /*zonePolicy*/,
    -
    23188  "A%T" /*format*/,
    -
    23189  -960 /*offsetCode (-14400/15)*/,
    -
    23190  0 /*offsetRemainder (-14400%15)*/,
    -
    23191  0 /*deltaMinutes*/,
    -
    23192  1974 /*untilYear*/,
    -
    23193  4 /*untilMonth*/,
    -
    23194  28 /*untilDay*/,
    -
    23195  480 /*untilTimeCode (7200/15)*/,
    -
    23196  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23197  },
    -
    23198  // -4:00 Canada A%sT 1976
    -
    23199  {
    -
    23200  &kZonePolicyCanada /*zonePolicy*/,
    -
    23201  "A%T" /*format*/,
    -
    23202  -960 /*offsetCode (-14400/15)*/,
    -
    23203  0 /*offsetRemainder (-14400%15)*/,
    -
    23204  0 /*deltaMinutes*/,
    -
    23205  1976 /*untilYear*/,
    -
    23206  1 /*untilMonth*/,
    -
    23207  1 /*untilDay*/,
    -
    23208  0 /*untilTimeCode (0/15)*/,
    -
    23209  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23210  },
    -
    23211  // -4:00 US A%sT
    -
    23212  {
    -
    23213  &kZonePolicyUS /*zonePolicy*/,
    -
    23214  "A%T" /*format*/,
    -
    23215  -960 /*offsetCode (-14400/15)*/,
    -
    23216  0 /*offsetRemainder (-14400%15)*/,
    -
    23217  0 /*deltaMinutes*/,
    -
    23218  32767 /*untilYear*/,
    -
    23219  1 /*untilMonth*/,
    -
    23220  1 /*untilDay*/,
    -
    23221  0 /*untilTimeCode (0/15)*/,
    -
    23222  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23223  },
    -
    23224 
    -
    23225 };
    -
    23226 
    -
    23227 static const char kZoneNameAtlantic_Bermuda[] ACE_TIME_PROGMEM = "\x06" "Bermuda";
    -
    23228 
    -
    23229 const complete::Info::ZoneInfo kZoneAtlantic_Bermuda ACE_TIME_PROGMEM = {
    -
    23230  kZoneNameAtlantic_Bermuda /*name*/,
    -
    23231  0x3d4bb1c4 /*zoneId*/,
    -
    23232  &kZoneContext /*zoneContext*/,
    -
    23233  5 /*numEras*/,
    -
    23234  kZoneEraAtlantic_Bermuda /*eras*/,
    -
    23235  nullptr /*targetInfo*/,
    -
    23236 };
    -
    23237 
    -
    23238 //---------------------------------------------------------------------------
    -
    23239 // Zone name: Atlantic/Canary
    -
    23240 // Eras: 5
    -
    23241 //---------------------------------------------------------------------------
    -
    23242 
    -
    23243 static const complete::Info::ZoneEra kZoneEraAtlantic_Canary[] ACE_TIME_PROGMEM = {
    -
    23244  // -1:01:36 - LMT 1922 Mar
    -
    23245  {
    -
    23246  nullptr /*zonePolicy*/,
    -
    23247  "LMT" /*format*/,
    -
    23248  -247 /*offsetCode (-3696/15)*/,
    -
    23249  9 /*offsetRemainder (-3696%15)*/,
    -
    23250  0 /*deltaMinutes*/,
    -
    23251  1922 /*untilYear*/,
    -
    23252  3 /*untilMonth*/,
    -
    23253  1 /*untilDay*/,
    -
    23254  0 /*untilTimeCode (0/15)*/,
    -
    23255  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23256  },
    -
    23257  // -1:00 - %z 1946 Sep 30 1:00
    -
    23258  {
    -
    23259  nullptr /*zonePolicy*/,
    -
    23260  "" /*format*/,
    -
    23261  -240 /*offsetCode (-3600/15)*/,
    -
    23262  0 /*offsetRemainder (-3600%15)*/,
    -
    23263  0 /*deltaMinutes*/,
    -
    23264  1946 /*untilYear*/,
    -
    23265  9 /*untilMonth*/,
    -
    23266  30 /*untilDay*/,
    -
    23267  240 /*untilTimeCode (3600/15)*/,
    -
    23268  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23269  },
    -
    23270  // 0:00 - WET 1980 Apr 6 0:00s
    -
    23271  {
    -
    23272  nullptr /*zonePolicy*/,
    -
    23273  "WET" /*format*/,
    -
    23274  0 /*offsetCode (0/15)*/,
    -
    23275  0 /*offsetRemainder (0%15)*/,
    -
    23276  0 /*deltaMinutes*/,
    -
    23277  1980 /*untilYear*/,
    -
    23278  4 /*untilMonth*/,
    -
    23279  6 /*untilDay*/,
    -
    23280  0 /*untilTimeCode (0/15)*/,
    -
    23281  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    23282  },
    -
    23283  // 0:00 1:00 WEST 1980 Sep 28 1:00u
    -
    23284  {
    -
    23285  nullptr /*zonePolicy*/,
    -
    23286  "WEST" /*format*/,
    -
    23287  0 /*offsetCode (0/15)*/,
    -
    23288  0 /*offsetRemainder (0%15)*/,
    -
    23289  60 /*deltaMinutes*/,
    -
    23290  1980 /*untilYear*/,
    -
    23291  9 /*untilMonth*/,
    -
    23292  28 /*untilDay*/,
    -
    23293  240 /*untilTimeCode (3600/15)*/,
    -
    23294  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    23295  },
    -
    23296  // 0:00 EU WE%sT
    -
    23297  {
    -
    23298  &kZonePolicyEU /*zonePolicy*/,
    -
    23299  "WE%T" /*format*/,
    -
    23300  0 /*offsetCode (0/15)*/,
    -
    23301  0 /*offsetRemainder (0%15)*/,
    -
    23302  0 /*deltaMinutes*/,
    -
    23303  32767 /*untilYear*/,
    -
    23304  1 /*untilMonth*/,
    -
    23305  1 /*untilDay*/,
    -
    23306  0 /*untilTimeCode (0/15)*/,
    -
    23307  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23308  },
    -
    23309 
    -
    23310 };
    -
    23311 
    -
    23312 static const char kZoneNameAtlantic_Canary[] ACE_TIME_PROGMEM = "\x06" "Canary";
    -
    23313 
    -
    23314 const complete::Info::ZoneInfo kZoneAtlantic_Canary ACE_TIME_PROGMEM = {
    -
    23315  kZoneNameAtlantic_Canary /*name*/,
    -
    23316  0xfc23f2c2 /*zoneId*/,
    -
    23317  &kZoneContext /*zoneContext*/,
    -
    23318  5 /*numEras*/,
    -
    23319  kZoneEraAtlantic_Canary /*eras*/,
    -
    23320  nullptr /*targetInfo*/,
    -
    23321 };
    -
    23322 
    -
    23323 //---------------------------------------------------------------------------
    -
    23324 // Zone name: Atlantic/Cape_Verde
    -
    23325 // Eras: 5
    -
    23326 //---------------------------------------------------------------------------
    -
    23327 
    -
    23328 static const complete::Info::ZoneEra kZoneEraAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = {
    -
    23329  // -1:34:04 - LMT 1912 Jan 01 2:00u
    -
    23330  {
    -
    23331  nullptr /*zonePolicy*/,
    -
    23332  "LMT" /*format*/,
    -
    23333  -377 /*offsetCode (-5644/15)*/,
    -
    23334  11 /*offsetRemainder (-5644%15)*/,
    -
    23335  0 /*deltaMinutes*/,
    -
    23336  1912 /*untilYear*/,
    -
    23337  1 /*untilMonth*/,
    -
    23338  1 /*untilDay*/,
    -
    23339  480 /*untilTimeCode (7200/15)*/,
    -
    23340  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    23341  },
    -
    23342  // -2:00 - %z 1942 Sep
    -
    23343  {
    -
    23344  nullptr /*zonePolicy*/,
    -
    23345  "" /*format*/,
    -
    23346  -480 /*offsetCode (-7200/15)*/,
    -
    23347  0 /*offsetRemainder (-7200%15)*/,
    -
    23348  0 /*deltaMinutes*/,
    -
    23349  1942 /*untilYear*/,
    -
    23350  9 /*untilMonth*/,
    -
    23351  1 /*untilDay*/,
    -
    23352  0 /*untilTimeCode (0/15)*/,
    -
    23353  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23354  },
    -
    23355  // -2:00 1:00 %z 1945 Oct 15
    -
    23356  {
    -
    23357  nullptr /*zonePolicy*/,
    -
    23358  "" /*format*/,
    -
    23359  -480 /*offsetCode (-7200/15)*/,
    -
    23360  0 /*offsetRemainder (-7200%15)*/,
    -
    23361  60 /*deltaMinutes*/,
    -
    23362  1945 /*untilYear*/,
    -
    23363  10 /*untilMonth*/,
    -
    23364  15 /*untilDay*/,
    -
    23365  0 /*untilTimeCode (0/15)*/,
    -
    23366  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23367  },
    -
    23368  // -2:00 - %z 1975 Nov 25 2:00
    -
    23369  {
    -
    23370  nullptr /*zonePolicy*/,
    -
    23371  "" /*format*/,
    -
    23372  -480 /*offsetCode (-7200/15)*/,
    -
    23373  0 /*offsetRemainder (-7200%15)*/,
    -
    23374  0 /*deltaMinutes*/,
    -
    23375  1975 /*untilYear*/,
    -
    23376  11 /*untilMonth*/,
    -
    23377  25 /*untilDay*/,
    -
    23378  480 /*untilTimeCode (7200/15)*/,
    -
    23379  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23380  },
    -
    23381  // -1:00 - %z
    -
    23382  {
    -
    23383  nullptr /*zonePolicy*/,
    -
    23384  "" /*format*/,
    -
    23385  -240 /*offsetCode (-3600/15)*/,
    -
    23386  0 /*offsetRemainder (-3600%15)*/,
    -
    23387  0 /*deltaMinutes*/,
    -
    23388  32767 /*untilYear*/,
    -
    23389  1 /*untilMonth*/,
    -
    23390  1 /*untilDay*/,
    -
    23391  0 /*untilTimeCode (0/15)*/,
    -
    23392  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23393  },
    -
    23394 
    -
    23395 };
    -
    23396 
    -
    23397 static const char kZoneNameAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = "\x06" "Cape_Verde";
    -
    23398 
    -
    23399 const complete::Info::ZoneInfo kZoneAtlantic_Cape_Verde ACE_TIME_PROGMEM = {
    -
    23400  kZoneNameAtlantic_Cape_Verde /*name*/,
    -
    23401  0x5c5e1772 /*zoneId*/,
    -
    23402  &kZoneContext /*zoneContext*/,
    -
    23403  5 /*numEras*/,
    -
    23404  kZoneEraAtlantic_Cape_Verde /*eras*/,
    -
    23405  nullptr /*targetInfo*/,
    -
    23406 };
    -
    23407 
    -
    23408 //---------------------------------------------------------------------------
    -
    23409 // Zone name: Atlantic/Faroe
    -
    23410 // Eras: 3
    -
    23411 //---------------------------------------------------------------------------
    -
    23412 
    -
    23413 static const complete::Info::ZoneEra kZoneEraAtlantic_Faroe[] ACE_TIME_PROGMEM = {
    -
    23414  // -0:27:04 - LMT 1908 Jan 11
    -
    23415  {
    -
    23416  nullptr /*zonePolicy*/,
    -
    23417  "LMT" /*format*/,
    -
    23418  -109 /*offsetCode (-1624/15)*/,
    -
    23419  11 /*offsetRemainder (-1624%15)*/,
    -
    23420  0 /*deltaMinutes*/,
    -
    23421  1908 /*untilYear*/,
    -
    23422  1 /*untilMonth*/,
    -
    23423  11 /*untilDay*/,
    -
    23424  0 /*untilTimeCode (0/15)*/,
    -
    23425  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23426  },
    -
    23427  // 0:00 - WET 1981
    -
    23428  {
    -
    23429  nullptr /*zonePolicy*/,
    -
    23430  "WET" /*format*/,
    -
    23431  0 /*offsetCode (0/15)*/,
    -
    23432  0 /*offsetRemainder (0%15)*/,
    -
    23433  0 /*deltaMinutes*/,
    -
    23434  1981 /*untilYear*/,
    -
    23435  1 /*untilMonth*/,
    -
    23436  1 /*untilDay*/,
    -
    23437  0 /*untilTimeCode (0/15)*/,
    -
    23438  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23439  },
    -
    23440  // 0:00 EU WE%sT
    -
    23441  {
    -
    23442  &kZonePolicyEU /*zonePolicy*/,
    -
    23443  "WE%T" /*format*/,
    -
    23444  0 /*offsetCode (0/15)*/,
    -
    23445  0 /*offsetRemainder (0%15)*/,
    -
    23446  0 /*deltaMinutes*/,
    -
    23447  32767 /*untilYear*/,
    -
    23448  1 /*untilMonth*/,
    -
    23449  1 /*untilDay*/,
    -
    23450  0 /*untilTimeCode (0/15)*/,
    -
    23451  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23452  },
    -
    23453 
    -
    23454 };
    -
    23455 
    -
    23456 static const char kZoneNameAtlantic_Faroe[] ACE_TIME_PROGMEM = "\x06" "Faroe";
    -
    23457 
    -
    23458 const complete::Info::ZoneInfo kZoneAtlantic_Faroe ACE_TIME_PROGMEM = {
    -
    23459  kZoneNameAtlantic_Faroe /*name*/,
    -
    23460  0xe110a971 /*zoneId*/,
    -
    23461  &kZoneContext /*zoneContext*/,
    -
    23462  3 /*numEras*/,
    -
    23463  kZoneEraAtlantic_Faroe /*eras*/,
    -
    23464  nullptr /*targetInfo*/,
    -
    23465 };
    -
    23466 
    -
    23467 //---------------------------------------------------------------------------
    -
    23468 // Zone name: Atlantic/Madeira
    -
    23469 // Eras: 6
    -
    23470 //---------------------------------------------------------------------------
    -
    23471 
    -
    23472 static const complete::Info::ZoneEra kZoneEraAtlantic_Madeira[] ACE_TIME_PROGMEM = {
    -
    23473  // -1:07:36 - LMT 1884
    -
    23474  {
    -
    23475  nullptr /*zonePolicy*/,
    -
    23476  "LMT" /*format*/,
    -
    23477  -271 /*offsetCode (-4056/15)*/,
    -
    23478  9 /*offsetRemainder (-4056%15)*/,
    -
    23479  0 /*deltaMinutes*/,
    -
    23480  1884 /*untilYear*/,
    -
    23481  1 /*untilMonth*/,
    -
    23482  1 /*untilDay*/,
    -
    23483  0 /*untilTimeCode (0/15)*/,
    -
    23484  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23485  },
    -
    23486  // -1:07:36 - FMT 1912 Jan 1 1:00u
    -
    23487  {
    -
    23488  nullptr /*zonePolicy*/,
    -
    23489  "FMT" /*format*/,
    -
    23490  -271 /*offsetCode (-4056/15)*/,
    -
    23491  9 /*offsetRemainder (-4056%15)*/,
    -
    23492  0 /*deltaMinutes*/,
    -
    23493  1912 /*untilYear*/,
    -
    23494  1 /*untilMonth*/,
    -
    23495  1 /*untilDay*/,
    -
    23496  240 /*untilTimeCode (3600/15)*/,
    -
    23497  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    23498  },
    -
    23499  // -1:00 Port %z 1966 Oct 2 2:00s
    -
    23500  {
    -
    23501  &kZonePolicyPort /*zonePolicy*/,
    -
    23502  "" /*format*/,
    -
    23503  -240 /*offsetCode (-3600/15)*/,
    -
    23504  0 /*offsetRemainder (-3600%15)*/,
    -
    23505  0 /*deltaMinutes*/,
    -
    23506  1966 /*untilYear*/,
    -
    23507  10 /*untilMonth*/,
    -
    23508  2 /*untilDay*/,
    -
    23509  480 /*untilTimeCode (7200/15)*/,
    -
    23510  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    23511  },
    -
    23512  // 0:00 - WET 1982 Apr 4
    -
    23513  {
    -
    23514  nullptr /*zonePolicy*/,
    -
    23515  "WET" /*format*/,
    -
    23516  0 /*offsetCode (0/15)*/,
    -
    23517  0 /*offsetRemainder (0%15)*/,
    -
    23518  0 /*deltaMinutes*/,
    -
    23519  1982 /*untilYear*/,
    -
    23520  4 /*untilMonth*/,
    -
    23521  4 /*untilDay*/,
    -
    23522  0 /*untilTimeCode (0/15)*/,
    -
    23523  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23524  },
    -
    23525  // 0:00 Port WE%sT 1986 Jul 31
    -
    23526  {
    -
    23527  &kZonePolicyPort /*zonePolicy*/,
    -
    23528  "WE%T" /*format*/,
    -
    23529  0 /*offsetCode (0/15)*/,
    -
    23530  0 /*offsetRemainder (0%15)*/,
    -
    23531  0 /*deltaMinutes*/,
    -
    23532  1986 /*untilYear*/,
    -
    23533  7 /*untilMonth*/,
    -
    23534  31 /*untilDay*/,
    -
    23535  0 /*untilTimeCode (0/15)*/,
    -
    23536  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23537  },
    -
    23538  // 0:00 EU WE%sT
    -
    23539  {
    -
    23540  &kZonePolicyEU /*zonePolicy*/,
    -
    23541  "WE%T" /*format*/,
    -
    23542  0 /*offsetCode (0/15)*/,
    -
    23543  0 /*offsetRemainder (0%15)*/,
    -
    23544  0 /*deltaMinutes*/,
    -
    23545  32767 /*untilYear*/,
    -
    23546  1 /*untilMonth*/,
    -
    23547  1 /*untilDay*/,
    -
    23548  0 /*untilTimeCode (0/15)*/,
    -
    23549  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23550  },
    -
    23551 
    -
    23552 };
    -
    23553 
    -
    23554 static const char kZoneNameAtlantic_Madeira[] ACE_TIME_PROGMEM = "\x06" "Madeira";
    -
    23555 
    -
    23556 const complete::Info::ZoneInfo kZoneAtlantic_Madeira ACE_TIME_PROGMEM = {
    -
    23557  kZoneNameAtlantic_Madeira /*name*/,
    -
    23558  0x81b5c037 /*zoneId*/,
    -
    23559  &kZoneContext /*zoneContext*/,
    -
    23560  6 /*numEras*/,
    -
    23561  kZoneEraAtlantic_Madeira /*eras*/,
    -
    23562  nullptr /*targetInfo*/,
    -
    23563 };
    -
    23564 
    -
    23565 //---------------------------------------------------------------------------
    -
    23566 // Zone name: Atlantic/South_Georgia
    -
    23567 // Eras: 2
    -
    23568 //---------------------------------------------------------------------------
    -
    23569 
    -
    23570 static const complete::Info::ZoneEra kZoneEraAtlantic_South_Georgia[] ACE_TIME_PROGMEM = {
    -
    23571  // -2:26:08 - LMT 1890
    -
    23572  {
    -
    23573  nullptr /*zonePolicy*/,
    -
    23574  "LMT" /*format*/,
    -
    23575  -585 /*offsetCode (-8768/15)*/,
    -
    23576  7 /*offsetRemainder (-8768%15)*/,
    -
    23577  0 /*deltaMinutes*/,
    -
    23578  1890 /*untilYear*/,
    -
    23579  1 /*untilMonth*/,
    -
    23580  1 /*untilDay*/,
    -
    23581  0 /*untilTimeCode (0/15)*/,
    -
    23582  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23583  },
    -
    23584  // -2:00 - %z
    -
    23585  {
    -
    23586  nullptr /*zonePolicy*/,
    -
    23587  "" /*format*/,
    -
    23588  -480 /*offsetCode (-7200/15)*/,
    -
    23589  0 /*offsetRemainder (-7200%15)*/,
    -
    23590  0 /*deltaMinutes*/,
    -
    23591  32767 /*untilYear*/,
    -
    23592  1 /*untilMonth*/,
    -
    23593  1 /*untilDay*/,
    -
    23594  0 /*untilTimeCode (0/15)*/,
    -
    23595  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23596  },
    -
    23597 
    -
    23598 };
    -
    23599 
    -
    23600 static const char kZoneNameAtlantic_South_Georgia[] ACE_TIME_PROGMEM = "\x06" "South_Georgia";
    -
    23601 
    -
    23602 const complete::Info::ZoneInfo kZoneAtlantic_South_Georgia ACE_TIME_PROGMEM = {
    -
    23603  kZoneNameAtlantic_South_Georgia /*name*/,
    -
    23604  0x33013174 /*zoneId*/,
    -
    23605  &kZoneContext /*zoneContext*/,
    -
    23606  2 /*numEras*/,
    -
    23607  kZoneEraAtlantic_South_Georgia /*eras*/,
    -
    23608  nullptr /*targetInfo*/,
    -
    23609 };
    -
    23610 
    -
    23611 //---------------------------------------------------------------------------
    -
    23612 // Zone name: Atlantic/Stanley
    -
    23613 // Eras: 6
    -
    23614 //---------------------------------------------------------------------------
    -
    23615 
    -
    23616 static const complete::Info::ZoneEra kZoneEraAtlantic_Stanley[] ACE_TIME_PROGMEM = {
    -
    23617  // -3:51:24 - LMT 1890
    -
    23618  {
    -
    23619  nullptr /*zonePolicy*/,
    -
    23620  "LMT" /*format*/,
    -
    23621  -926 /*offsetCode (-13884/15)*/,
    -
    23622  6 /*offsetRemainder (-13884%15)*/,
    -
    23623  0 /*deltaMinutes*/,
    -
    23624  1890 /*untilYear*/,
    -
    23625  1 /*untilMonth*/,
    -
    23626  1 /*untilDay*/,
    -
    23627  0 /*untilTimeCode (0/15)*/,
    -
    23628  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23629  },
    -
    23630  // -3:51:24 - SMT 1912 Mar 12
    -
    23631  {
    -
    23632  nullptr /*zonePolicy*/,
    -
    23633  "SMT" /*format*/,
    -
    23634  -926 /*offsetCode (-13884/15)*/,
    -
    23635  6 /*offsetRemainder (-13884%15)*/,
    -
    23636  0 /*deltaMinutes*/,
    -
    23637  1912 /*untilYear*/,
    -
    23638  3 /*untilMonth*/,
    -
    23639  12 /*untilDay*/,
    -
    23640  0 /*untilTimeCode (0/15)*/,
    -
    23641  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23642  },
    -
    23643  // -4:00 Falk %z 1983 May
    -
    23644  {
    -
    23645  &kZonePolicyFalk /*zonePolicy*/,
    -
    23646  "" /*format*/,
    -
    23647  -960 /*offsetCode (-14400/15)*/,
    -
    23648  0 /*offsetRemainder (-14400%15)*/,
    -
    23649  0 /*deltaMinutes*/,
    -
    23650  1983 /*untilYear*/,
    -
    23651  5 /*untilMonth*/,
    -
    23652  1 /*untilDay*/,
    -
    23653  0 /*untilTimeCode (0/15)*/,
    -
    23654  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23655  },
    -
    23656  // -3:00 Falk %z 1985 Sep 15
    -
    23657  {
    -
    23658  &kZonePolicyFalk /*zonePolicy*/,
    -
    23659  "" /*format*/,
    -
    23660  -720 /*offsetCode (-10800/15)*/,
    -
    23661  0 /*offsetRemainder (-10800%15)*/,
    -
    23662  0 /*deltaMinutes*/,
    -
    23663  1985 /*untilYear*/,
    -
    23664  9 /*untilMonth*/,
    -
    23665  15 /*untilDay*/,
    -
    23666  0 /*untilTimeCode (0/15)*/,
    -
    23667  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23668  },
    -
    23669  // -4:00 Falk %z 2010 Sep 5 2:00
    -
    23670  {
    -
    23671  &kZonePolicyFalk /*zonePolicy*/,
    -
    23672  "" /*format*/,
    -
    23673  -960 /*offsetCode (-14400/15)*/,
    -
    23674  0 /*offsetRemainder (-14400%15)*/,
    -
    23675  0 /*deltaMinutes*/,
    -
    23676  2010 /*untilYear*/,
    -
    23677  9 /*untilMonth*/,
    -
    23678  5 /*untilDay*/,
    -
    23679  480 /*untilTimeCode (7200/15)*/,
    -
    23680  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23681  },
    -
    23682  // -3:00 - %z
    -
    23683  {
    -
    23684  nullptr /*zonePolicy*/,
    -
    23685  "" /*format*/,
    -
    23686  -720 /*offsetCode (-10800/15)*/,
    -
    23687  0 /*offsetRemainder (-10800%15)*/,
    -
    23688  0 /*deltaMinutes*/,
    -
    23689  32767 /*untilYear*/,
    -
    23690  1 /*untilMonth*/,
    -
    23691  1 /*untilDay*/,
    -
    23692  0 /*untilTimeCode (0/15)*/,
    -
    23693  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23694  },
    -
    23695 
    -
    23696 };
    -
    23697 
    -
    23698 static const char kZoneNameAtlantic_Stanley[] ACE_TIME_PROGMEM = "\x06" "Stanley";
    -
    23699 
    -
    23700 const complete::Info::ZoneInfo kZoneAtlantic_Stanley ACE_TIME_PROGMEM = {
    -
    23701  kZoneNameAtlantic_Stanley /*name*/,
    -
    23702  0x7bb3e1c4 /*zoneId*/,
    -
    23703  &kZoneContext /*zoneContext*/,
    -
    23704  6 /*numEras*/,
    -
    23705  kZoneEraAtlantic_Stanley /*eras*/,
    -
    23706  nullptr /*targetInfo*/,
    -
    23707 };
    -
    23708 
    -
    23709 //---------------------------------------------------------------------------
    -
    23710 // Zone name: Australia/Adelaide
    -
    23711 // Eras: 4
    -
    23712 //---------------------------------------------------------------------------
    -
    23713 
    -
    23714 static const complete::Info::ZoneEra kZoneEraAustralia_Adelaide[] ACE_TIME_PROGMEM = {
    -
    23715  // 9:14:20 - LMT 1895 Feb
    -
    23716  {
    -
    23717  nullptr /*zonePolicy*/,
    -
    23718  "LMT" /*format*/,
    -
    23719  2217 /*offsetCode (33260/15)*/,
    -
    23720  5 /*offsetRemainder (33260%15)*/,
    -
    23721  0 /*deltaMinutes*/,
    -
    23722  1895 /*untilYear*/,
    -
    23723  2 /*untilMonth*/,
    -
    23724  1 /*untilDay*/,
    -
    23725  0 /*untilTimeCode (0/15)*/,
    -
    23726  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23727  },
    -
    23728  // 9:00 - ACST 1899 May
    -
    23729  {
    -
    23730  nullptr /*zonePolicy*/,
    -
    23731  "ACST" /*format*/,
    -
    23732  2160 /*offsetCode (32400/15)*/,
    -
    23733  0 /*offsetRemainder (32400%15)*/,
    -
    23734  0 /*deltaMinutes*/,
    -
    23735  1899 /*untilYear*/,
    -
    23736  5 /*untilMonth*/,
    -
    23737  1 /*untilDay*/,
    -
    23738  0 /*untilTimeCode (0/15)*/,
    -
    23739  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23740  },
    -
    23741  // 9:30 Aus AC%sT 1971
    -
    23742  {
    -
    23743  &kZonePolicyAus /*zonePolicy*/,
    -
    23744  "AC%T" /*format*/,
    -
    23745  2280 /*offsetCode (34200/15)*/,
    -
    23746  0 /*offsetRemainder (34200%15)*/,
    -
    23747  0 /*deltaMinutes*/,
    -
    23748  1971 /*untilYear*/,
    -
    23749  1 /*untilMonth*/,
    -
    23750  1 /*untilDay*/,
    -
    23751  0 /*untilTimeCode (0/15)*/,
    -
    23752  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23753  },
    -
    23754  // 9:30 AS AC%sT
    -
    23755  {
    -
    23756  &kZonePolicyAS /*zonePolicy*/,
    -
    23757  "AC%T" /*format*/,
    -
    23758  2280 /*offsetCode (34200/15)*/,
    -
    23759  0 /*offsetRemainder (34200%15)*/,
    -
    23760  0 /*deltaMinutes*/,
    -
    23761  32767 /*untilYear*/,
    -
    23762  1 /*untilMonth*/,
    -
    23763  1 /*untilDay*/,
    -
    23764  0 /*untilTimeCode (0/15)*/,
    -
    23765  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23766  },
    -
    23767 
    -
    23768 };
    -
    23769 
    -
    23770 static const char kZoneNameAustralia_Adelaide[] ACE_TIME_PROGMEM = "\x07" "Adelaide";
    -
    23771 
    -
    23772 const complete::Info::ZoneInfo kZoneAustralia_Adelaide ACE_TIME_PROGMEM = {
    -
    23773  kZoneNameAustralia_Adelaide /*name*/,
    -
    23774  0x2428e8a3 /*zoneId*/,
    -
    23775  &kZoneContext /*zoneContext*/,
    -
    23776  4 /*numEras*/,
    -
    23777  kZoneEraAustralia_Adelaide /*eras*/,
    -
    23778  nullptr /*targetInfo*/,
    -
    23779 };
    -
    23780 
    -
    23781 //---------------------------------------------------------------------------
    -
    23782 // Zone name: Australia/Brisbane
    -
    23783 // Eras: 3
    -
    23784 //---------------------------------------------------------------------------
    -
    23785 
    -
    23786 static const complete::Info::ZoneEra kZoneEraAustralia_Brisbane[] ACE_TIME_PROGMEM = {
    -
    23787  // 10:12:08 - LMT 1895
    -
    23788  {
    -
    23789  nullptr /*zonePolicy*/,
    -
    23790  "LMT" /*format*/,
    -
    23791  2448 /*offsetCode (36728/15)*/,
    -
    23792  8 /*offsetRemainder (36728%15)*/,
    -
    23793  0 /*deltaMinutes*/,
    -
    23794  1895 /*untilYear*/,
    -
    23795  1 /*untilMonth*/,
    -
    23796  1 /*untilDay*/,
    -
    23797  0 /*untilTimeCode (0/15)*/,
    -
    23798  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23799  },
    -
    23800  // 10:00 Aus AE%sT 1971
    -
    23801  {
    -
    23802  &kZonePolicyAus /*zonePolicy*/,
    -
    23803  "AE%T" /*format*/,
    -
    23804  2400 /*offsetCode (36000/15)*/,
    -
    23805  0 /*offsetRemainder (36000%15)*/,
    -
    23806  0 /*deltaMinutes*/,
    -
    23807  1971 /*untilYear*/,
    -
    23808  1 /*untilMonth*/,
    -
    23809  1 /*untilDay*/,
    -
    23810  0 /*untilTimeCode (0/15)*/,
    -
    23811  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23812  },
    -
    23813  // 10:00 AQ AE%sT
    -
    23814  {
    -
    23815  &kZonePolicyAQ /*zonePolicy*/,
    -
    23816  "AE%T" /*format*/,
    -
    23817  2400 /*offsetCode (36000/15)*/,
    -
    23818  0 /*offsetRemainder (36000%15)*/,
    -
    23819  0 /*deltaMinutes*/,
    -
    23820  32767 /*untilYear*/,
    -
    23821  1 /*untilMonth*/,
    -
    23822  1 /*untilDay*/,
    -
    23823  0 /*untilTimeCode (0/15)*/,
    -
    23824  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23825  },
    -
    23826 
    -
    23827 };
    -
    23828 
    -
    23829 static const char kZoneNameAustralia_Brisbane[] ACE_TIME_PROGMEM = "\x07" "Brisbane";
    -
    23830 
    -
    23831 const complete::Info::ZoneInfo kZoneAustralia_Brisbane ACE_TIME_PROGMEM = {
    -
    23832  kZoneNameAustralia_Brisbane /*name*/,
    -
    23833  0x4fedc9c0 /*zoneId*/,
    -
    23834  &kZoneContext /*zoneContext*/,
    -
    23835  3 /*numEras*/,
    -
    23836  kZoneEraAustralia_Brisbane /*eras*/,
    -
    23837  nullptr /*targetInfo*/,
    -
    23838 };
    -
    23839 
    -
    23840 //---------------------------------------------------------------------------
    -
    23841 // Zone name: Australia/Broken_Hill
    -
    23842 // Eras: 6
    -
    23843 //---------------------------------------------------------------------------
    -
    23844 
    -
    23845 static const complete::Info::ZoneEra kZoneEraAustralia_Broken_Hill[] ACE_TIME_PROGMEM = {
    -
    23846  // 9:25:48 - LMT 1895 Feb
    -
    23847  {
    -
    23848  nullptr /*zonePolicy*/,
    -
    23849  "LMT" /*format*/,
    -
    23850  2263 /*offsetCode (33948/15)*/,
    -
    23851  3 /*offsetRemainder (33948%15)*/,
    -
    23852  0 /*deltaMinutes*/,
    -
    23853  1895 /*untilYear*/,
    -
    23854  2 /*untilMonth*/,
    -
    23855  1 /*untilDay*/,
    -
    23856  0 /*untilTimeCode (0/15)*/,
    -
    23857  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23858  },
    -
    23859  // 10:00 - AEST 1896 Aug 23
    -
    23860  {
    -
    23861  nullptr /*zonePolicy*/,
    -
    23862  "AEST" /*format*/,
    -
    23863  2400 /*offsetCode (36000/15)*/,
    -
    23864  0 /*offsetRemainder (36000%15)*/,
    -
    23865  0 /*deltaMinutes*/,
    -
    23866  1896 /*untilYear*/,
    -
    23867  8 /*untilMonth*/,
    -
    23868  23 /*untilDay*/,
    -
    23869  0 /*untilTimeCode (0/15)*/,
    -
    23870  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23871  },
    -
    23872  // 9:00 - ACST 1899 May
    -
    23873  {
    -
    23874  nullptr /*zonePolicy*/,
    -
    23875  "ACST" /*format*/,
    -
    23876  2160 /*offsetCode (32400/15)*/,
    -
    23877  0 /*offsetRemainder (32400%15)*/,
    -
    23878  0 /*deltaMinutes*/,
    -
    23879  1899 /*untilYear*/,
    -
    23880  5 /*untilMonth*/,
    -
    23881  1 /*untilDay*/,
    -
    23882  0 /*untilTimeCode (0/15)*/,
    -
    23883  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23884  },
    -
    23885  // 9:30 Aus AC%sT 1971
    -
    23886  {
    -
    23887  &kZonePolicyAus /*zonePolicy*/,
    -
    23888  "AC%T" /*format*/,
    -
    23889  2280 /*offsetCode (34200/15)*/,
    -
    23890  0 /*offsetRemainder (34200%15)*/,
    -
    23891  0 /*deltaMinutes*/,
    -
    23892  1971 /*untilYear*/,
    -
    23893  1 /*untilMonth*/,
    -
    23894  1 /*untilDay*/,
    -
    23895  0 /*untilTimeCode (0/15)*/,
    -
    23896  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23897  },
    -
    23898  // 9:30 AN AC%sT 2000
    -
    23899  {
    -
    23900  &kZonePolicyAN /*zonePolicy*/,
    -
    23901  "AC%T" /*format*/,
    -
    23902  2280 /*offsetCode (34200/15)*/,
    -
    23903  0 /*offsetRemainder (34200%15)*/,
    -
    23904  0 /*deltaMinutes*/,
    -
    23905  2000 /*untilYear*/,
    -
    23906  1 /*untilMonth*/,
    -
    23907  1 /*untilDay*/,
    -
    23908  0 /*untilTimeCode (0/15)*/,
    -
    23909  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23910  },
    -
    23911  // 9:30 AS AC%sT
    -
    23912  {
    -
    23913  &kZonePolicyAS /*zonePolicy*/,
    -
    23914  "AC%T" /*format*/,
    -
    23915  2280 /*offsetCode (34200/15)*/,
    -
    23916  0 /*offsetRemainder (34200%15)*/,
    -
    23917  0 /*deltaMinutes*/,
    -
    23918  32767 /*untilYear*/,
    -
    23919  1 /*untilMonth*/,
    -
    23920  1 /*untilDay*/,
    -
    23921  0 /*untilTimeCode (0/15)*/,
    -
    23922  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23923  },
    -
    23924 
    -
    23925 };
    -
    23926 
    -
    23927 static const char kZoneNameAustralia_Broken_Hill[] ACE_TIME_PROGMEM = "\x07" "Broken_Hill";
    -
    23928 
    -
    23929 const complete::Info::ZoneInfo kZoneAustralia_Broken_Hill ACE_TIME_PROGMEM = {
    -
    23930  kZoneNameAustralia_Broken_Hill /*name*/,
    -
    23931  0xb06eada3 /*zoneId*/,
    -
    23932  &kZoneContext /*zoneContext*/,
    -
    23933  6 /*numEras*/,
    -
    23934  kZoneEraAustralia_Broken_Hill /*eras*/,
    -
    23935  nullptr /*targetInfo*/,
    -
    23936 };
    -
    23937 
    -
    23938 //---------------------------------------------------------------------------
    -
    23939 // Zone name: Australia/Darwin
    -
    23940 // Eras: 3
    -
    23941 //---------------------------------------------------------------------------
    -
    23942 
    -
    23943 static const complete::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = {
    -
    23944  // 8:43:20 - LMT 1895 Feb
    -
    23945  {
    -
    23946  nullptr /*zonePolicy*/,
    -
    23947  "LMT" /*format*/,
    -
    23948  2093 /*offsetCode (31400/15)*/,
    -
    23949  5 /*offsetRemainder (31400%15)*/,
    -
    23950  0 /*deltaMinutes*/,
    -
    23951  1895 /*untilYear*/,
    -
    23952  2 /*untilMonth*/,
    -
    23953  1 /*untilDay*/,
    -
    23954  0 /*untilTimeCode (0/15)*/,
    -
    23955  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23956  },
    -
    23957  // 9:00 - ACST 1899 May
    -
    23958  {
    -
    23959  nullptr /*zonePolicy*/,
    -
    23960  "ACST" /*format*/,
    -
    23961  2160 /*offsetCode (32400/15)*/,
    -
    23962  0 /*offsetRemainder (32400%15)*/,
    -
    23963  0 /*deltaMinutes*/,
    -
    23964  1899 /*untilYear*/,
    -
    23965  5 /*untilMonth*/,
    -
    23966  1 /*untilDay*/,
    -
    23967  0 /*untilTimeCode (0/15)*/,
    -
    23968  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23969  },
    -
    23970  // 9:30 Aus AC%sT
    -
    23971  {
    -
    23972  &kZonePolicyAus /*zonePolicy*/,
    -
    23973  "AC%T" /*format*/,
    -
    23974  2280 /*offsetCode (34200/15)*/,
    -
    23975  0 /*offsetRemainder (34200%15)*/,
    -
    23976  0 /*deltaMinutes*/,
    -
    23977  32767 /*untilYear*/,
    -
    23978  1 /*untilMonth*/,
    -
    23979  1 /*untilDay*/,
    -
    23980  0 /*untilTimeCode (0/15)*/,
    -
    23981  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23982  },
    -
    23983 
    -
    23984 };
    -
    23985 
    -
    23986 static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "\x07" "Darwin";
    -
    23987 
    -
    23988 const complete::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = {
    -
    23989  kZoneNameAustralia_Darwin /*name*/,
    -
    23990  0x2876bdff /*zoneId*/,
    -
    23991  &kZoneContext /*zoneContext*/,
    -
    23992  3 /*numEras*/,
    -
    23993  kZoneEraAustralia_Darwin /*eras*/,
    -
    23994  nullptr /*targetInfo*/,
    -
    23995 };
    -
    23996 
    -
    23997 //---------------------------------------------------------------------------
    -
    23998 // Zone name: Australia/Eucla
    -
    23999 // Eras: 3
    -
    24000 //---------------------------------------------------------------------------
    -
    24001 
    -
    24002 static const complete::Info::ZoneEra kZoneEraAustralia_Eucla[] ACE_TIME_PROGMEM = {
    -
    24003  // 8:35:28 - LMT 1895 Dec
    -
    24004  {
    -
    24005  nullptr /*zonePolicy*/,
    -
    24006  "LMT" /*format*/,
    -
    24007  2061 /*offsetCode (30928/15)*/,
    -
    24008  13 /*offsetRemainder (30928%15)*/,
    -
    24009  0 /*deltaMinutes*/,
    -
    24010  1895 /*untilYear*/,
    -
    24011  12 /*untilMonth*/,
    -
    24012  1 /*untilDay*/,
    -
    24013  0 /*untilTimeCode (0/15)*/,
    -
    24014  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24015  },
    -
    24016  // 8:45 Aus %z 1943 Jul
    -
    24017  {
    -
    24018  &kZonePolicyAus /*zonePolicy*/,
    -
    24019  "" /*format*/,
    -
    24020  2100 /*offsetCode (31500/15)*/,
    -
    24021  0 /*offsetRemainder (31500%15)*/,
    -
    24022  0 /*deltaMinutes*/,
    -
    24023  1943 /*untilYear*/,
    -
    24024  7 /*untilMonth*/,
    -
    24025  1 /*untilDay*/,
    -
    24026  0 /*untilTimeCode (0/15)*/,
    -
    24027  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24028  },
    -
    24029  // 8:45 AW %z
    -
    24030  {
    -
    24031  &kZonePolicyAW /*zonePolicy*/,
    -
    24032  "" /*format*/,
    -
    24033  2100 /*offsetCode (31500/15)*/,
    -
    24034  0 /*offsetRemainder (31500%15)*/,
    -
    24035  0 /*deltaMinutes*/,
    -
    24036  32767 /*untilYear*/,
    -
    24037  1 /*untilMonth*/,
    -
    24038  1 /*untilDay*/,
    -
    24039  0 /*untilTimeCode (0/15)*/,
    -
    24040  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24041  },
    -
    24042 
    -
    24043 };
    -
    24044 
    -
    24045 static const char kZoneNameAustralia_Eucla[] ACE_TIME_PROGMEM = "\x07" "Eucla";
    -
    24046 
    -
    24047 const complete::Info::ZoneInfo kZoneAustralia_Eucla ACE_TIME_PROGMEM = {
    -
    24048  kZoneNameAustralia_Eucla /*name*/,
    -
    24049  0x8cf99e44 /*zoneId*/,
    -
    24050  &kZoneContext /*zoneContext*/,
    -
    24051  3 /*numEras*/,
    -
    24052  kZoneEraAustralia_Eucla /*eras*/,
    -
    24053  nullptr /*targetInfo*/,
    -
    24054 };
    -
    24055 
    -
    24056 //---------------------------------------------------------------------------
    -
    24057 // Zone name: Australia/Hobart
    -
    24058 // Eras: 4
    -
    24059 //---------------------------------------------------------------------------
    -
    24060 
    -
    24061 static const complete::Info::ZoneEra kZoneEraAustralia_Hobart[] ACE_TIME_PROGMEM = {
    -
    24062  // 9:49:16 - LMT 1895 Sep
    -
    24063  {
    -
    24064  nullptr /*zonePolicy*/,
    -
    24065  "LMT" /*format*/,
    -
    24066  2357 /*offsetCode (35356/15)*/,
    -
    24067  1 /*offsetRemainder (35356%15)*/,
    -
    24068  0 /*deltaMinutes*/,
    -
    24069  1895 /*untilYear*/,
    -
    24070  9 /*untilMonth*/,
    -
    24071  1 /*untilDay*/,
    -
    24072  0 /*untilTimeCode (0/15)*/,
    -
    24073  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24074  },
    -
    24075  // 10:00 AT AE%sT 1919 Oct 24
    -
    24076  {
    -
    24077  &kZonePolicyAT /*zonePolicy*/,
    -
    24078  "AE%T" /*format*/,
    -
    24079  2400 /*offsetCode (36000/15)*/,
    -
    24080  0 /*offsetRemainder (36000%15)*/,
    -
    24081  0 /*deltaMinutes*/,
    -
    24082  1919 /*untilYear*/,
    -
    24083  10 /*untilMonth*/,
    -
    24084  24 /*untilDay*/,
    -
    24085  0 /*untilTimeCode (0/15)*/,
    -
    24086  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24087  },
    -
    24088  // 10:00 Aus AE%sT 1967
    -
    24089  {
    -
    24090  &kZonePolicyAus /*zonePolicy*/,
    -
    24091  "AE%T" /*format*/,
    -
    24092  2400 /*offsetCode (36000/15)*/,
    -
    24093  0 /*offsetRemainder (36000%15)*/,
    -
    24094  0 /*deltaMinutes*/,
    -
    24095  1967 /*untilYear*/,
    -
    24096  1 /*untilMonth*/,
    -
    24097  1 /*untilDay*/,
    -
    24098  0 /*untilTimeCode (0/15)*/,
    -
    24099  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24100  },
    -
    24101  // 10:00 AT AE%sT
    -
    24102  {
    -
    24103  &kZonePolicyAT /*zonePolicy*/,
    -
    24104  "AE%T" /*format*/,
    -
    24105  2400 /*offsetCode (36000/15)*/,
    -
    24106  0 /*offsetRemainder (36000%15)*/,
    -
    24107  0 /*deltaMinutes*/,
    -
    24108  32767 /*untilYear*/,
    -
    24109  1 /*untilMonth*/,
    -
    24110  1 /*untilDay*/,
    -
    24111  0 /*untilTimeCode (0/15)*/,
    -
    24112  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24113  },
    -
    24114 
    -
    24115 };
    -
    24116 
    -
    24117 static const char kZoneNameAustralia_Hobart[] ACE_TIME_PROGMEM = "\x07" "Hobart";
    -
    24118 
    -
    24119 const complete::Info::ZoneInfo kZoneAustralia_Hobart ACE_TIME_PROGMEM = {
    -
    24120  kZoneNameAustralia_Hobart /*name*/,
    -
    24121  0x32bf951a /*zoneId*/,
    -
    24122  &kZoneContext /*zoneContext*/,
    -
    24123  4 /*numEras*/,
    -
    24124  kZoneEraAustralia_Hobart /*eras*/,
    -
    24125  nullptr /*targetInfo*/,
    -
    24126 };
    -
    24127 
    -
    24128 //---------------------------------------------------------------------------
    -
    24129 // Zone name: Australia/Lindeman
    -
    24130 // Eras: 4
    -
    24131 //---------------------------------------------------------------------------
    -
    24132 
    -
    24133 static const complete::Info::ZoneEra kZoneEraAustralia_Lindeman[] ACE_TIME_PROGMEM = {
    -
    24134  // 9:55:56 - LMT 1895
    -
    24135  {
    -
    24136  nullptr /*zonePolicy*/,
    -
    24137  "LMT" /*format*/,
    -
    24138  2383 /*offsetCode (35756/15)*/,
    -
    24139  11 /*offsetRemainder (35756%15)*/,
    -
    24140  0 /*deltaMinutes*/,
    -
    24141  1895 /*untilYear*/,
    -
    24142  1 /*untilMonth*/,
    -
    24143  1 /*untilDay*/,
    -
    24144  0 /*untilTimeCode (0/15)*/,
    -
    24145  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24146  },
    -
    24147  // 10:00 Aus AE%sT 1971
    -
    24148  {
    -
    24149  &kZonePolicyAus /*zonePolicy*/,
    -
    24150  "AE%T" /*format*/,
    -
    24151  2400 /*offsetCode (36000/15)*/,
    -
    24152  0 /*offsetRemainder (36000%15)*/,
    -
    24153  0 /*deltaMinutes*/,
    -
    24154  1971 /*untilYear*/,
    -
    24155  1 /*untilMonth*/,
    -
    24156  1 /*untilDay*/,
    -
    24157  0 /*untilTimeCode (0/15)*/,
    -
    24158  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24159  },
    -
    24160  // 10:00 AQ AE%sT 1992 Jul
    -
    24161  {
    -
    24162  &kZonePolicyAQ /*zonePolicy*/,
    -
    24163  "AE%T" /*format*/,
    -
    24164  2400 /*offsetCode (36000/15)*/,
    -
    24165  0 /*offsetRemainder (36000%15)*/,
    -
    24166  0 /*deltaMinutes*/,
    -
    24167  1992 /*untilYear*/,
    -
    24168  7 /*untilMonth*/,
    -
    24169  1 /*untilDay*/,
    -
    24170  0 /*untilTimeCode (0/15)*/,
    -
    24171  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24172  },
    -
    24173  // 10:00 Holiday AE%sT
    -
    24174  {
    -
    24175  &kZonePolicyHoliday /*zonePolicy*/,
    -
    24176  "AE%T" /*format*/,
    -
    24177  2400 /*offsetCode (36000/15)*/,
    -
    24178  0 /*offsetRemainder (36000%15)*/,
    -
    24179  0 /*deltaMinutes*/,
    -
    24180  32767 /*untilYear*/,
    -
    24181  1 /*untilMonth*/,
    -
    24182  1 /*untilDay*/,
    -
    24183  0 /*untilTimeCode (0/15)*/,
    -
    24184  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24185  },
    -
    24186 
    -
    24187 };
    -
    24188 
    -
    24189 static const char kZoneNameAustralia_Lindeman[] ACE_TIME_PROGMEM = "\x07" "Lindeman";
    -
    24190 
    -
    24191 const complete::Info::ZoneInfo kZoneAustralia_Lindeman ACE_TIME_PROGMEM = {
    -
    24192  kZoneNameAustralia_Lindeman /*name*/,
    -
    24193  0xe05029e2 /*zoneId*/,
    -
    24194  &kZoneContext /*zoneContext*/,
    -
    24195  4 /*numEras*/,
    -
    24196  kZoneEraAustralia_Lindeman /*eras*/,
    -
    24197  nullptr /*targetInfo*/,
    -
    24198 };
    -
    24199 
    -
    24200 //---------------------------------------------------------------------------
    -
    24201 // Zone name: Australia/Lord_Howe
    -
    24202 // Eras: 4
    -
    24203 //---------------------------------------------------------------------------
    -
    24204 
    -
    24205 static const complete::Info::ZoneEra kZoneEraAustralia_Lord_Howe[] ACE_TIME_PROGMEM = {
    -
    24206  // 10:36:20 - LMT 1895 Feb
    -
    24207  {
    -
    24208  nullptr /*zonePolicy*/,
    -
    24209  "LMT" /*format*/,
    -
    24210  2545 /*offsetCode (38180/15)*/,
    -
    24211  5 /*offsetRemainder (38180%15)*/,
    -
    24212  0 /*deltaMinutes*/,
    -
    24213  1895 /*untilYear*/,
    -
    24214  2 /*untilMonth*/,
    -
    24215  1 /*untilDay*/,
    -
    24216  0 /*untilTimeCode (0/15)*/,
    -
    24217  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24218  },
    -
    24219  // 10:00 - AEST 1981 Mar
    -
    24220  {
    -
    24221  nullptr /*zonePolicy*/,
    -
    24222  "AEST" /*format*/,
    -
    24223  2400 /*offsetCode (36000/15)*/,
    -
    24224  0 /*offsetRemainder (36000%15)*/,
    -
    24225  0 /*deltaMinutes*/,
    -
    24226  1981 /*untilYear*/,
    -
    24227  3 /*untilMonth*/,
    -
    24228  1 /*untilDay*/,
    -
    24229  0 /*untilTimeCode (0/15)*/,
    -
    24230  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24231  },
    -
    24232  // 10:30 LH %z 1985 Jul
    -
    24233  {
    -
    24234  &kZonePolicyLH /*zonePolicy*/,
    -
    24235  "" /*format*/,
    -
    24236  2520 /*offsetCode (37800/15)*/,
    -
    24237  0 /*offsetRemainder (37800%15)*/,
    -
    24238  0 /*deltaMinutes*/,
    -
    24239  1985 /*untilYear*/,
    -
    24240  7 /*untilMonth*/,
    -
    24241  1 /*untilDay*/,
    -
    24242  0 /*untilTimeCode (0/15)*/,
    -
    24243  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24244  },
    -
    24245  // 10:30 LH %z
    -
    24246  {
    -
    24247  &kZonePolicyLH /*zonePolicy*/,
    -
    24248  "" /*format*/,
    -
    24249  2520 /*offsetCode (37800/15)*/,
    -
    24250  0 /*offsetRemainder (37800%15)*/,
    -
    24251  0 /*deltaMinutes*/,
    -
    24252  32767 /*untilYear*/,
    -
    24253  1 /*untilMonth*/,
    -
    24254  1 /*untilDay*/,
    -
    24255  0 /*untilTimeCode (0/15)*/,
    -
    24256  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24257  },
    -
    24258 
    -
    24259 };
    -
    24260 
    -
    24261 static const char kZoneNameAustralia_Lord_Howe[] ACE_TIME_PROGMEM = "\x07" "Lord_Howe";
    -
    24262 
    -
    24263 const complete::Info::ZoneInfo kZoneAustralia_Lord_Howe ACE_TIME_PROGMEM = {
    -
    24264  kZoneNameAustralia_Lord_Howe /*name*/,
    -
    24265  0xa748b67d /*zoneId*/,
    -
    24266  &kZoneContext /*zoneContext*/,
    -
    24267  4 /*numEras*/,
    -
    24268  kZoneEraAustralia_Lord_Howe /*eras*/,
    -
    24269  nullptr /*targetInfo*/,
    -
    24270 };
    -
    24271 
    -
    24272 //---------------------------------------------------------------------------
    -
    24273 // Zone name: Australia/Melbourne
    -
    24274 // Eras: 3
    -
    24275 //---------------------------------------------------------------------------
    -
    24276 
    -
    24277 static const complete::Info::ZoneEra kZoneEraAustralia_Melbourne[] ACE_TIME_PROGMEM = {
    -
    24278  // 9:39:52 - LMT 1895 Feb
    -
    24279  {
    -
    24280  nullptr /*zonePolicy*/,
    -
    24281  "LMT" /*format*/,
    -
    24282  2319 /*offsetCode (34792/15)*/,
    -
    24283  7 /*offsetRemainder (34792%15)*/,
    -
    24284  0 /*deltaMinutes*/,
    -
    24285  1895 /*untilYear*/,
    -
    24286  2 /*untilMonth*/,
    -
    24287  1 /*untilDay*/,
    -
    24288  0 /*untilTimeCode (0/15)*/,
    -
    24289  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24290  },
    -
    24291  // 10:00 Aus AE%sT 1971
    -
    24292  {
    -
    24293  &kZonePolicyAus /*zonePolicy*/,
    -
    24294  "AE%T" /*format*/,
    -
    24295  2400 /*offsetCode (36000/15)*/,
    -
    24296  0 /*offsetRemainder (36000%15)*/,
    -
    24297  0 /*deltaMinutes*/,
    -
    24298  1971 /*untilYear*/,
    -
    24299  1 /*untilMonth*/,
    -
    24300  1 /*untilDay*/,
    -
    24301  0 /*untilTimeCode (0/15)*/,
    -
    24302  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24303  },
    -
    24304  // 10:00 AV AE%sT
    -
    24305  {
    -
    24306  &kZonePolicyAV /*zonePolicy*/,
    -
    24307  "AE%T" /*format*/,
    -
    24308  2400 /*offsetCode (36000/15)*/,
    -
    24309  0 /*offsetRemainder (36000%15)*/,
    -
    24310  0 /*deltaMinutes*/,
    -
    24311  32767 /*untilYear*/,
    -
    24312  1 /*untilMonth*/,
    -
    24313  1 /*untilDay*/,
    -
    24314  0 /*untilTimeCode (0/15)*/,
    -
    24315  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24316  },
    -
    24317 
    -
    24318 };
    -
    24319 
    -
    24320 static const char kZoneNameAustralia_Melbourne[] ACE_TIME_PROGMEM = "\x07" "Melbourne";
    -
    24321 
    -
    24322 const complete::Info::ZoneInfo kZoneAustralia_Melbourne ACE_TIME_PROGMEM = {
    -
    24323  kZoneNameAustralia_Melbourne /*name*/,
    -
    24324  0x0fe559a3 /*zoneId*/,
    -
    24325  &kZoneContext /*zoneContext*/,
    -
    24326  3 /*numEras*/,
    -
    24327  kZoneEraAustralia_Melbourne /*eras*/,
    -
    24328  nullptr /*targetInfo*/,
    -
    24329 };
    -
    24330 
    -
    24331 //---------------------------------------------------------------------------
    -
    24332 // Zone name: Australia/Perth
    -
    24333 // Eras: 3
    -
    24334 //---------------------------------------------------------------------------
    -
    24335 
    -
    24336 static const complete::Info::ZoneEra kZoneEraAustralia_Perth[] ACE_TIME_PROGMEM = {
    -
    24337  // 7:43:24 - LMT 1895 Dec
    -
    24338  {
    -
    24339  nullptr /*zonePolicy*/,
    -
    24340  "LMT" /*format*/,
    -
    24341  1853 /*offsetCode (27804/15)*/,
    -
    24342  9 /*offsetRemainder (27804%15)*/,
    -
    24343  0 /*deltaMinutes*/,
    -
    24344  1895 /*untilYear*/,
    -
    24345  12 /*untilMonth*/,
    -
    24346  1 /*untilDay*/,
    -
    24347  0 /*untilTimeCode (0/15)*/,
    -
    24348  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24349  },
    -
    24350  // 8:00 Aus AW%sT 1943 Jul
    -
    24351  {
    -
    24352  &kZonePolicyAus /*zonePolicy*/,
    -
    24353  "AW%T" /*format*/,
    -
    24354  1920 /*offsetCode (28800/15)*/,
    -
    24355  0 /*offsetRemainder (28800%15)*/,
    -
    24356  0 /*deltaMinutes*/,
    -
    24357  1943 /*untilYear*/,
    -
    24358  7 /*untilMonth*/,
    -
    24359  1 /*untilDay*/,
    -
    24360  0 /*untilTimeCode (0/15)*/,
    -
    24361  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24362  },
    -
    24363  // 8:00 AW AW%sT
    -
    24364  {
    -
    24365  &kZonePolicyAW /*zonePolicy*/,
    -
    24366  "AW%T" /*format*/,
    -
    24367  1920 /*offsetCode (28800/15)*/,
    -
    24368  0 /*offsetRemainder (28800%15)*/,
    -
    24369  0 /*deltaMinutes*/,
    -
    24370  32767 /*untilYear*/,
    -
    24371  1 /*untilMonth*/,
    -
    24372  1 /*untilDay*/,
    -
    24373  0 /*untilTimeCode (0/15)*/,
    -
    24374  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24375  },
    -
    24376 
    -
    24377 };
    -
    24378 
    -
    24379 static const char kZoneNameAustralia_Perth[] ACE_TIME_PROGMEM = "\x07" "Perth";
    -
    24380 
    -
    24381 const complete::Info::ZoneInfo kZoneAustralia_Perth ACE_TIME_PROGMEM = {
    -
    24382  kZoneNameAustralia_Perth /*name*/,
    -
    24383  0x8db8269d /*zoneId*/,
    -
    24384  &kZoneContext /*zoneContext*/,
    -
    24385  3 /*numEras*/,
    -
    24386  kZoneEraAustralia_Perth /*eras*/,
    -
    24387  nullptr /*targetInfo*/,
    -
    24388 };
    -
    24389 
    -
    24390 //---------------------------------------------------------------------------
    -
    24391 // Zone name: Australia/Sydney
    -
    24392 // Eras: 3
    -
    24393 //---------------------------------------------------------------------------
    -
    24394 
    -
    24395 static const complete::Info::ZoneEra kZoneEraAustralia_Sydney[] ACE_TIME_PROGMEM = {
    -
    24396  // 10:04:52 - LMT 1895 Feb
    -
    24397  {
    -
    24398  nullptr /*zonePolicy*/,
    -
    24399  "LMT" /*format*/,
    -
    24400  2419 /*offsetCode (36292/15)*/,
    -
    24401  7 /*offsetRemainder (36292%15)*/,
    -
    24402  0 /*deltaMinutes*/,
    -
    24403  1895 /*untilYear*/,
    -
    24404  2 /*untilMonth*/,
    -
    24405  1 /*untilDay*/,
    -
    24406  0 /*untilTimeCode (0/15)*/,
    -
    24407  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24408  },
    -
    24409  // 10:00 Aus AE%sT 1971
    -
    24410  {
    -
    24411  &kZonePolicyAus /*zonePolicy*/,
    -
    24412  "AE%T" /*format*/,
    -
    24413  2400 /*offsetCode (36000/15)*/,
    -
    24414  0 /*offsetRemainder (36000%15)*/,
    -
    24415  0 /*deltaMinutes*/,
    -
    24416  1971 /*untilYear*/,
    -
    24417  1 /*untilMonth*/,
    -
    24418  1 /*untilDay*/,
    -
    24419  0 /*untilTimeCode (0/15)*/,
    -
    24420  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24421  },
    -
    24422  // 10:00 AN AE%sT
    -
    24423  {
    -
    24424  &kZonePolicyAN /*zonePolicy*/,
    -
    24425  "AE%T" /*format*/,
    -
    24426  2400 /*offsetCode (36000/15)*/,
    -
    24427  0 /*offsetRemainder (36000%15)*/,
    -
    24428  0 /*deltaMinutes*/,
    -
    24429  32767 /*untilYear*/,
    -
    24430  1 /*untilMonth*/,
    -
    24431  1 /*untilDay*/,
    -
    24432  0 /*untilTimeCode (0/15)*/,
    -
    24433  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24434  },
    -
    24435 
    -
    24436 };
    -
    24437 
    -
    24438 static const char kZoneNameAustralia_Sydney[] ACE_TIME_PROGMEM = "\x07" "Sydney";
    -
    24439 
    -
    24440 const complete::Info::ZoneInfo kZoneAustralia_Sydney ACE_TIME_PROGMEM = {
    -
    24441  kZoneNameAustralia_Sydney /*name*/,
    -
    24442  0x4d1e9776 /*zoneId*/,
    -
    24443  &kZoneContext /*zoneContext*/,
    -
    24444  3 /*numEras*/,
    -
    24445  kZoneEraAustralia_Sydney /*eras*/,
    -
    24446  nullptr /*targetInfo*/,
    -
    24447 };
    -
    24448 
    -
    24449 //---------------------------------------------------------------------------
    -
    24450 // Zone name: Etc/GMT
    -
    24451 // Eras: 1
    -
    24452 //---------------------------------------------------------------------------
    -
    24453 
    -
    24454 static const complete::Info::ZoneEra kZoneEraEtc_GMT[] ACE_TIME_PROGMEM = {
    -
    24455  // 0 - GMT
    -
    24456  {
    -
    24457  nullptr /*zonePolicy*/,
    -
    24458  "GMT" /*format*/,
    -
    24459  0 /*offsetCode (0/15)*/,
    -
    24460  0 /*offsetRemainder (0%15)*/,
    -
    24461  0 /*deltaMinutes*/,
    -
    24462  32767 /*untilYear*/,
    -
    24463  1 /*untilMonth*/,
    -
    24464  1 /*untilDay*/,
    -
    24465  0 /*untilTimeCode (0/15)*/,
    -
    24466  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24467  },
    -
    24468 
    -
    24469 };
    -
    24470 
    -
    24471 static const char kZoneNameEtc_GMT[] ACE_TIME_PROGMEM = "\x0a" "GMT";
    -
    24472 
    -
    24473 const complete::Info::ZoneInfo kZoneEtc_GMT ACE_TIME_PROGMEM = {
    -
    24474  kZoneNameEtc_GMT /*name*/,
    -
    24475  0xd8e2de58 /*zoneId*/,
    -
    24476  &kZoneContext /*zoneContext*/,
    -
    24477  1 /*numEras*/,
    -
    24478  kZoneEraEtc_GMT /*eras*/,
    -
    24479  nullptr /*targetInfo*/,
    -
    24480 };
    -
    24481 
    -
    24482 //---------------------------------------------------------------------------
    -
    24483 // Zone name: Etc/GMT+1
    -
    24484 // Eras: 1
    -
    24485 //---------------------------------------------------------------------------
    -
    24486 
    -
    24487 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = {
    -
    24488  // -1 - %z
    -
    24489  {
    -
    24490  nullptr /*zonePolicy*/,
    -
    24491  "" /*format*/,
    -
    24492  -240 /*offsetCode (-3600/15)*/,
    -
    24493  0 /*offsetRemainder (-3600%15)*/,
    -
    24494  0 /*deltaMinutes*/,
    -
    24495  32767 /*untilYear*/,
    -
    24496  1 /*untilMonth*/,
    -
    24497  1 /*untilDay*/,
    -
    24498  0 /*untilTimeCode (0/15)*/,
    -
    24499  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24500  },
    -
    24501 
    -
    24502 };
    -
    24503 
    -
    24504 static const char kZoneNameEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = "\x0a" "GMT+1";
    -
    24505 
    -
    24506 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_1 ACE_TIME_PROGMEM = {
    -
    24507  kZoneNameEtc_GMT_PLUS_1 /*name*/,
    -
    24508  0x9d13da14 /*zoneId*/,
    -
    24509  &kZoneContext /*zoneContext*/,
    -
    24510  1 /*numEras*/,
    -
    24511  kZoneEraEtc_GMT_PLUS_1 /*eras*/,
    -
    24512  nullptr /*targetInfo*/,
    -
    24513 };
    -
    24514 
    -
    24515 //---------------------------------------------------------------------------
    -
    24516 // Zone name: Etc/GMT+10
    -
    24517 // Eras: 1
    -
    24518 //---------------------------------------------------------------------------
    -
    24519 
    -
    24520 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = {
    -
    24521  // -10 - %z
    -
    24522  {
    -
    24523  nullptr /*zonePolicy*/,
    -
    24524  "" /*format*/,
    -
    24525  -2400 /*offsetCode (-36000/15)*/,
    -
    24526  0 /*offsetRemainder (-36000%15)*/,
    -
    24527  0 /*deltaMinutes*/,
    -
    24528  32767 /*untilYear*/,
    -
    24529  1 /*untilMonth*/,
    -
    24530  1 /*untilDay*/,
    -
    24531  0 /*untilTimeCode (0/15)*/,
    -
    24532  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24533  },
    -
    24534 
    -
    24535 };
    -
    24536 
    -
    24537 static const char kZoneNameEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = "\x0a" "GMT+10";
    -
    24538 
    -
    24539 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_10 ACE_TIME_PROGMEM = {
    -
    24540  kZoneNameEtc_GMT_PLUS_10 /*name*/,
    -
    24541  0x3f8f1cc4 /*zoneId*/,
    -
    24542  &kZoneContext /*zoneContext*/,
    -
    24543  1 /*numEras*/,
    -
    24544  kZoneEraEtc_GMT_PLUS_10 /*eras*/,
    -
    24545  nullptr /*targetInfo*/,
    -
    24546 };
    -
    24547 
    -
    24548 //---------------------------------------------------------------------------
    -
    24549 // Zone name: Etc/GMT+11
    -
    24550 // Eras: 1
    -
    24551 //---------------------------------------------------------------------------
    -
    24552 
    -
    24553 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = {
    -
    24554  // -11 - %z
    -
    24555  {
    -
    24556  nullptr /*zonePolicy*/,
    -
    24557  "" /*format*/,
    -
    24558  -2640 /*offsetCode (-39600/15)*/,
    -
    24559  0 /*offsetRemainder (-39600%15)*/,
    -
    24560  0 /*deltaMinutes*/,
    -
    24561  32767 /*untilYear*/,
    -
    24562  1 /*untilMonth*/,
    -
    24563  1 /*untilDay*/,
    -
    24564  0 /*untilTimeCode (0/15)*/,
    -
    24565  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24566  },
    -
    24567 
    -
    24568 };
    -
    24569 
    -
    24570 static const char kZoneNameEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = "\x0a" "GMT+11";
    -
    24571 
    -
    24572 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_11 ACE_TIME_PROGMEM = {
    -
    24573  kZoneNameEtc_GMT_PLUS_11 /*name*/,
    -
    24574  0x3f8f1cc5 /*zoneId*/,
    -
    24575  &kZoneContext /*zoneContext*/,
    -
    24576  1 /*numEras*/,
    -
    24577  kZoneEraEtc_GMT_PLUS_11 /*eras*/,
    -
    24578  nullptr /*targetInfo*/,
    -
    24579 };
    -
    24580 
    -
    24581 //---------------------------------------------------------------------------
    -
    24582 // Zone name: Etc/GMT+12
    -
    24583 // Eras: 1
    -
    24584 //---------------------------------------------------------------------------
    -
    24585 
    -
    24586 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = {
    -
    24587  // -12 - %z
    -
    24588  {
    -
    24589  nullptr /*zonePolicy*/,
    -
    24590  "" /*format*/,
    -
    24591  -2880 /*offsetCode (-43200/15)*/,
    -
    24592  0 /*offsetRemainder (-43200%15)*/,
    -
    24593  0 /*deltaMinutes*/,
    -
    24594  32767 /*untilYear*/,
    -
    24595  1 /*untilMonth*/,
    -
    24596  1 /*untilDay*/,
    -
    24597  0 /*untilTimeCode (0/15)*/,
    -
    24598  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24599  },
    -
    24600 
    -
    24601 };
    -
    24602 
    -
    24603 static const char kZoneNameEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = "\x0a" "GMT+12";
    -
    24604 
    -
    24605 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_12 ACE_TIME_PROGMEM = {
    -
    24606  kZoneNameEtc_GMT_PLUS_12 /*name*/,
    -
    24607  0x3f8f1cc6 /*zoneId*/,
    -
    24608  &kZoneContext /*zoneContext*/,
    -
    24609  1 /*numEras*/,
    -
    24610  kZoneEraEtc_GMT_PLUS_12 /*eras*/,
    -
    24611  nullptr /*targetInfo*/,
    -
    24612 };
    -
    24613 
    -
    24614 //---------------------------------------------------------------------------
    -
    24615 // Zone name: Etc/GMT+2
    -
    24616 // Eras: 1
    -
    24617 //---------------------------------------------------------------------------
    -
    24618 
    -
    24619 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = {
    -
    24620  // -2 - %z
    -
    24621  {
    -
    24622  nullptr /*zonePolicy*/,
    -
    24623  "" /*format*/,
    -
    24624  -480 /*offsetCode (-7200/15)*/,
    -
    24625  0 /*offsetRemainder (-7200%15)*/,
    -
    24626  0 /*deltaMinutes*/,
    -
    24627  32767 /*untilYear*/,
    -
    24628  1 /*untilMonth*/,
    -
    24629  1 /*untilDay*/,
    -
    24630  0 /*untilTimeCode (0/15)*/,
    -
    24631  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24632  },
    -
    24633 
    -
    24634 };
    -
    24635 
    -
    24636 static const char kZoneNameEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = "\x0a" "GMT+2";
    -
    24637 
    -
    24638 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_2 ACE_TIME_PROGMEM = {
    -
    24639  kZoneNameEtc_GMT_PLUS_2 /*name*/,
    -
    24640  0x9d13da15 /*zoneId*/,
    -
    24641  &kZoneContext /*zoneContext*/,
    -
    24642  1 /*numEras*/,
    -
    24643  kZoneEraEtc_GMT_PLUS_2 /*eras*/,
    -
    24644  nullptr /*targetInfo*/,
    -
    24645 };
    -
    24646 
    -
    24647 //---------------------------------------------------------------------------
    -
    24648 // Zone name: Etc/GMT+3
    -
    24649 // Eras: 1
    -
    24650 //---------------------------------------------------------------------------
    -
    24651 
    -
    24652 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = {
    -
    24653  // -3 - %z
    -
    24654  {
    -
    24655  nullptr /*zonePolicy*/,
    -
    24656  "" /*format*/,
    -
    24657  -720 /*offsetCode (-10800/15)*/,
    -
    24658  0 /*offsetRemainder (-10800%15)*/,
    -
    24659  0 /*deltaMinutes*/,
    -
    24660  32767 /*untilYear*/,
    -
    24661  1 /*untilMonth*/,
    -
    24662  1 /*untilDay*/,
    -
    24663  0 /*untilTimeCode (0/15)*/,
    -
    24664  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24665  },
    -
    24666 
    -
    24667 };
    -
    24668 
    -
    24669 static const char kZoneNameEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = "\x0a" "GMT+3";
    -
    24670 
    -
    24671 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_3 ACE_TIME_PROGMEM = {
    -
    24672  kZoneNameEtc_GMT_PLUS_3 /*name*/,
    -
    24673  0x9d13da16 /*zoneId*/,
    -
    24674  &kZoneContext /*zoneContext*/,
    -
    24675  1 /*numEras*/,
    -
    24676  kZoneEraEtc_GMT_PLUS_3 /*eras*/,
    -
    24677  nullptr /*targetInfo*/,
    -
    24678 };
    -
    24679 
    -
    24680 //---------------------------------------------------------------------------
    -
    24681 // Zone name: Etc/GMT+4
    -
    24682 // Eras: 1
    -
    24683 //---------------------------------------------------------------------------
    -
    24684 
    -
    24685 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = {
    -
    24686  // -4 - %z
    -
    24687  {
    -
    24688  nullptr /*zonePolicy*/,
    -
    24689  "" /*format*/,
    -
    24690  -960 /*offsetCode (-14400/15)*/,
    -
    24691  0 /*offsetRemainder (-14400%15)*/,
    -
    24692  0 /*deltaMinutes*/,
    -
    24693  32767 /*untilYear*/,
    -
    24694  1 /*untilMonth*/,
    -
    24695  1 /*untilDay*/,
    -
    24696  0 /*untilTimeCode (0/15)*/,
    -
    24697  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24698  },
    -
    24699 
    -
    24700 };
    -
    24701 
    -
    24702 static const char kZoneNameEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = "\x0a" "GMT+4";
    -
    24703 
    -
    24704 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_4 ACE_TIME_PROGMEM = {
    -
    24705  kZoneNameEtc_GMT_PLUS_4 /*name*/,
    -
    24706  0x9d13da17 /*zoneId*/,
    -
    24707  &kZoneContext /*zoneContext*/,
    -
    24708  1 /*numEras*/,
    -
    24709  kZoneEraEtc_GMT_PLUS_4 /*eras*/,
    -
    24710  nullptr /*targetInfo*/,
    -
    24711 };
    -
    24712 
    -
    24713 //---------------------------------------------------------------------------
    -
    24714 // Zone name: Etc/GMT+5
    -
    24715 // Eras: 1
    -
    24716 //---------------------------------------------------------------------------
    -
    24717 
    -
    24718 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = {
    -
    24719  // -5 - %z
    -
    24720  {
    -
    24721  nullptr /*zonePolicy*/,
    -
    24722  "" /*format*/,
    -
    24723  -1200 /*offsetCode (-18000/15)*/,
    -
    24724  0 /*offsetRemainder (-18000%15)*/,
    -
    24725  0 /*deltaMinutes*/,
    -
    24726  32767 /*untilYear*/,
    -
    24727  1 /*untilMonth*/,
    -
    24728  1 /*untilDay*/,
    -
    24729  0 /*untilTimeCode (0/15)*/,
    -
    24730  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24731  },
    -
    24732 
    -
    24733 };
    -
    24734 
    -
    24735 static const char kZoneNameEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = "\x0a" "GMT+5";
    -
    24736 
    -
    24737 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_5 ACE_TIME_PROGMEM = {
    -
    24738  kZoneNameEtc_GMT_PLUS_5 /*name*/,
    -
    24739  0x9d13da18 /*zoneId*/,
    -
    24740  &kZoneContext /*zoneContext*/,
    -
    24741  1 /*numEras*/,
    -
    24742  kZoneEraEtc_GMT_PLUS_5 /*eras*/,
    -
    24743  nullptr /*targetInfo*/,
    -
    24744 };
    -
    24745 
    -
    24746 //---------------------------------------------------------------------------
    -
    24747 // Zone name: Etc/GMT+6
    -
    24748 // Eras: 1
    -
    24749 //---------------------------------------------------------------------------
    -
    24750 
    -
    24751 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = {
    -
    24752  // -6 - %z
    -
    24753  {
    -
    24754  nullptr /*zonePolicy*/,
    -
    24755  "" /*format*/,
    -
    24756  -1440 /*offsetCode (-21600/15)*/,
    -
    24757  0 /*offsetRemainder (-21600%15)*/,
    -
    24758  0 /*deltaMinutes*/,
    -
    24759  32767 /*untilYear*/,
    -
    24760  1 /*untilMonth*/,
    -
    24761  1 /*untilDay*/,
    -
    24762  0 /*untilTimeCode (0/15)*/,
    -
    24763  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24764  },
    -
    24765 
    -
    24766 };
    -
    24767 
    -
    24768 static const char kZoneNameEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = "\x0a" "GMT+6";
    -
    24769 
    -
    24770 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_6 ACE_TIME_PROGMEM = {
    -
    24771  kZoneNameEtc_GMT_PLUS_6 /*name*/,
    -
    24772  0x9d13da19 /*zoneId*/,
    -
    24773  &kZoneContext /*zoneContext*/,
    -
    24774  1 /*numEras*/,
    -
    24775  kZoneEraEtc_GMT_PLUS_6 /*eras*/,
    -
    24776  nullptr /*targetInfo*/,
    -
    24777 };
    -
    24778 
    -
    24779 //---------------------------------------------------------------------------
    -
    24780 // Zone name: Etc/GMT+7
    -
    24781 // Eras: 1
    -
    24782 //---------------------------------------------------------------------------
    -
    24783 
    -
    24784 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = {
    -
    24785  // -7 - %z
    -
    24786  {
    -
    24787  nullptr /*zonePolicy*/,
    -
    24788  "" /*format*/,
    -
    24789  -1680 /*offsetCode (-25200/15)*/,
    -
    24790  0 /*offsetRemainder (-25200%15)*/,
    -
    24791  0 /*deltaMinutes*/,
    -
    24792  32767 /*untilYear*/,
    -
    24793  1 /*untilMonth*/,
    -
    24794  1 /*untilDay*/,
    -
    24795  0 /*untilTimeCode (0/15)*/,
    -
    24796  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24797  },
    -
    24798 
    -
    24799 };
    -
    24800 
    -
    24801 static const char kZoneNameEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = "\x0a" "GMT+7";
    -
    24802 
    -
    24803 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_7 ACE_TIME_PROGMEM = {
    -
    24804  kZoneNameEtc_GMT_PLUS_7 /*name*/,
    -
    24805  0x9d13da1a /*zoneId*/,
    -
    24806  &kZoneContext /*zoneContext*/,
    -
    24807  1 /*numEras*/,
    -
    24808  kZoneEraEtc_GMT_PLUS_7 /*eras*/,
    -
    24809  nullptr /*targetInfo*/,
    -
    24810 };
    -
    24811 
    -
    24812 //---------------------------------------------------------------------------
    -
    24813 // Zone name: Etc/GMT+8
    -
    24814 // Eras: 1
    -
    24815 //---------------------------------------------------------------------------
    -
    24816 
    -
    24817 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = {
    -
    24818  // -8 - %z
    -
    24819  {
    -
    24820  nullptr /*zonePolicy*/,
    -
    24821  "" /*format*/,
    -
    24822  -1920 /*offsetCode (-28800/15)*/,
    -
    24823  0 /*offsetRemainder (-28800%15)*/,
    -
    24824  0 /*deltaMinutes*/,
    -
    24825  32767 /*untilYear*/,
    -
    24826  1 /*untilMonth*/,
    -
    24827  1 /*untilDay*/,
    -
    24828  0 /*untilTimeCode (0/15)*/,
    -
    24829  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24830  },
    -
    24831 
    -
    24832 };
    -
    24833 
    -
    24834 static const char kZoneNameEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = "\x0a" "GMT+8";
    -
    24835 
    -
    24836 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_8 ACE_TIME_PROGMEM = {
    -
    24837  kZoneNameEtc_GMT_PLUS_8 /*name*/,
    -
    24838  0x9d13da1b /*zoneId*/,
    -
    24839  &kZoneContext /*zoneContext*/,
    -
    24840  1 /*numEras*/,
    -
    24841  kZoneEraEtc_GMT_PLUS_8 /*eras*/,
    -
    24842  nullptr /*targetInfo*/,
    -
    24843 };
    -
    24844 
    -
    24845 //---------------------------------------------------------------------------
    -
    24846 // Zone name: Etc/GMT+9
    -
    24847 // Eras: 1
    -
    24848 //---------------------------------------------------------------------------
    -
    24849 
    -
    24850 static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = {
    -
    24851  // -9 - %z
    -
    24852  {
    -
    24853  nullptr /*zonePolicy*/,
    -
    24854  "" /*format*/,
    -
    24855  -2160 /*offsetCode (-32400/15)*/,
    -
    24856  0 /*offsetRemainder (-32400%15)*/,
    -
    24857  0 /*deltaMinutes*/,
    -
    24858  32767 /*untilYear*/,
    -
    24859  1 /*untilMonth*/,
    -
    24860  1 /*untilDay*/,
    -
    24861  0 /*untilTimeCode (0/15)*/,
    -
    24862  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24863  },
    -
    24864 
    -
    24865 };
    -
    24866 
    -
    24867 static const char kZoneNameEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = "\x0a" "GMT+9";
    -
    24868 
    -
    24869 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_9 ACE_TIME_PROGMEM = {
    -
    24870  kZoneNameEtc_GMT_PLUS_9 /*name*/,
    -
    24871  0x9d13da1c /*zoneId*/,
    -
    24872  &kZoneContext /*zoneContext*/,
    -
    24873  1 /*numEras*/,
    -
    24874  kZoneEraEtc_GMT_PLUS_9 /*eras*/,
    -
    24875  nullptr /*targetInfo*/,
    -
    24876 };
    -
    24877 
    -
    24878 //---------------------------------------------------------------------------
    -
    24879 // Zone name: Etc/GMT-1
    -
    24880 // Eras: 1
    -
    24881 //---------------------------------------------------------------------------
    -
    24882 
    -
    24883 static const complete::Info::ZoneEra kZoneEraEtc_GMT_1[] ACE_TIME_PROGMEM = {
    -
    24884  // 1 - %z
    -
    24885  {
    -
    24886  nullptr /*zonePolicy*/,
    -
    24887  "" /*format*/,
    -
    24888  240 /*offsetCode (3600/15)*/,
    -
    24889  0 /*offsetRemainder (3600%15)*/,
    -
    24890  0 /*deltaMinutes*/,
    -
    24891  32767 /*untilYear*/,
    -
    24892  1 /*untilMonth*/,
    -
    24893  1 /*untilDay*/,
    -
    24894  0 /*untilTimeCode (0/15)*/,
    -
    24895  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24896  },
    -
    24897 
    -
    24898 };
    -
    24899 
    -
    24900 static const char kZoneNameEtc_GMT_1[] ACE_TIME_PROGMEM = "\x0a" "GMT-1";
    -
    24901 
    -
    24902 const complete::Info::ZoneInfo kZoneEtc_GMT_1 ACE_TIME_PROGMEM = {
    -
    24903  kZoneNameEtc_GMT_1 /*name*/,
    -
    24904  0x9d13da56 /*zoneId*/,
    -
    24905  &kZoneContext /*zoneContext*/,
    -
    24906  1 /*numEras*/,
    -
    24907  kZoneEraEtc_GMT_1 /*eras*/,
    -
    24908  nullptr /*targetInfo*/,
    -
    24909 };
    -
    24910 
    -
    24911 //---------------------------------------------------------------------------
    -
    24912 // Zone name: Etc/GMT-10
    -
    24913 // Eras: 1
    -
    24914 //---------------------------------------------------------------------------
    -
    24915 
    -
    24916 static const complete::Info::ZoneEra kZoneEraEtc_GMT_10[] ACE_TIME_PROGMEM = {
    -
    24917  // 10 - %z
    -
    24918  {
    -
    24919  nullptr /*zonePolicy*/,
    -
    24920  "" /*format*/,
    -
    24921  2400 /*offsetCode (36000/15)*/,
    -
    24922  0 /*offsetRemainder (36000%15)*/,
    -
    24923  0 /*deltaMinutes*/,
    -
    24924  32767 /*untilYear*/,
    -
    24925  1 /*untilMonth*/,
    -
    24926  1 /*untilDay*/,
    -
    24927  0 /*untilTimeCode (0/15)*/,
    -
    24928  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24929  },
    -
    24930 
    -
    24931 };
    -
    24932 
    -
    24933 static const char kZoneNameEtc_GMT_10[] ACE_TIME_PROGMEM = "\x0a" "GMT-10";
    -
    24934 
    -
    24935 const complete::Info::ZoneInfo kZoneEtc_GMT_10 ACE_TIME_PROGMEM = {
    -
    24936  kZoneNameEtc_GMT_10 /*name*/,
    -
    24937  0x3f8f2546 /*zoneId*/,
    -
    24938  &kZoneContext /*zoneContext*/,
    -
    24939  1 /*numEras*/,
    -
    24940  kZoneEraEtc_GMT_10 /*eras*/,
    -
    24941  nullptr /*targetInfo*/,
    -
    24942 };
    -
    24943 
    -
    24944 //---------------------------------------------------------------------------
    -
    24945 // Zone name: Etc/GMT-11
    -
    24946 // Eras: 1
    -
    24947 //---------------------------------------------------------------------------
    -
    24948 
    -
    24949 static const complete::Info::ZoneEra kZoneEraEtc_GMT_11[] ACE_TIME_PROGMEM = {
    -
    24950  // 11 - %z
    -
    24951  {
    -
    24952  nullptr /*zonePolicy*/,
    -
    24953  "" /*format*/,
    -
    24954  2640 /*offsetCode (39600/15)*/,
    -
    24955  0 /*offsetRemainder (39600%15)*/,
    -
    24956  0 /*deltaMinutes*/,
    -
    24957  32767 /*untilYear*/,
    -
    24958  1 /*untilMonth*/,
    -
    24959  1 /*untilDay*/,
    -
    24960  0 /*untilTimeCode (0/15)*/,
    -
    24961  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24962  },
    -
    24963 
    -
    24964 };
    -
    24965 
    -
    24966 static const char kZoneNameEtc_GMT_11[] ACE_TIME_PROGMEM = "\x0a" "GMT-11";
    -
    24967 
    -
    24968 const complete::Info::ZoneInfo kZoneEtc_GMT_11 ACE_TIME_PROGMEM = {
    -
    24969  kZoneNameEtc_GMT_11 /*name*/,
    -
    24970  0x3f8f2547 /*zoneId*/,
    -
    24971  &kZoneContext /*zoneContext*/,
    -
    24972  1 /*numEras*/,
    -
    24973  kZoneEraEtc_GMT_11 /*eras*/,
    -
    24974  nullptr /*targetInfo*/,
    -
    24975 };
    -
    24976 
    -
    24977 //---------------------------------------------------------------------------
    -
    24978 // Zone name: Etc/GMT-12
    -
    24979 // Eras: 1
    -
    24980 //---------------------------------------------------------------------------
    -
    24981 
    -
    24982 static const complete::Info::ZoneEra kZoneEraEtc_GMT_12[] ACE_TIME_PROGMEM = {
    -
    24983  // 12 - %z
    -
    24984  {
    -
    24985  nullptr /*zonePolicy*/,
    -
    24986  "" /*format*/,
    -
    24987  2880 /*offsetCode (43200/15)*/,
    -
    24988  0 /*offsetRemainder (43200%15)*/,
    -
    24989  0 /*deltaMinutes*/,
    -
    24990  32767 /*untilYear*/,
    -
    24991  1 /*untilMonth*/,
    -
    24992  1 /*untilDay*/,
    -
    24993  0 /*untilTimeCode (0/15)*/,
    -
    24994  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24995  },
    -
    24996 
    -
    24997 };
    -
    24998 
    -
    24999 static const char kZoneNameEtc_GMT_12[] ACE_TIME_PROGMEM = "\x0a" "GMT-12";
    -
    25000 
    -
    25001 const complete::Info::ZoneInfo kZoneEtc_GMT_12 ACE_TIME_PROGMEM = {
    -
    25002  kZoneNameEtc_GMT_12 /*name*/,
    -
    25003  0x3f8f2548 /*zoneId*/,
    -
    25004  &kZoneContext /*zoneContext*/,
    -
    25005  1 /*numEras*/,
    -
    25006  kZoneEraEtc_GMT_12 /*eras*/,
    -
    25007  nullptr /*targetInfo*/,
    -
    25008 };
    -
    25009 
    -
    25010 //---------------------------------------------------------------------------
    -
    25011 // Zone name: Etc/GMT-13
    -
    25012 // Eras: 1
    -
    25013 //---------------------------------------------------------------------------
    -
    25014 
    -
    25015 static const complete::Info::ZoneEra kZoneEraEtc_GMT_13[] ACE_TIME_PROGMEM = {
    -
    25016  // 13 - %z
    -
    25017  {
    -
    25018  nullptr /*zonePolicy*/,
    -
    25019  "" /*format*/,
    -
    25020  3120 /*offsetCode (46800/15)*/,
    -
    25021  0 /*offsetRemainder (46800%15)*/,
    -
    25022  0 /*deltaMinutes*/,
    -
    25023  32767 /*untilYear*/,
    -
    25024  1 /*untilMonth*/,
    -
    25025  1 /*untilDay*/,
    -
    25026  0 /*untilTimeCode (0/15)*/,
    -
    25027  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25028  },
    -
    25029 
    -
    25030 };
    -
    25031 
    -
    25032 static const char kZoneNameEtc_GMT_13[] ACE_TIME_PROGMEM = "\x0a" "GMT-13";
    -
    25033 
    -
    25034 const complete::Info::ZoneInfo kZoneEtc_GMT_13 ACE_TIME_PROGMEM = {
    -
    25035  kZoneNameEtc_GMT_13 /*name*/,
    -
    25036  0x3f8f2549 /*zoneId*/,
    -
    25037  &kZoneContext /*zoneContext*/,
    -
    25038  1 /*numEras*/,
    -
    25039  kZoneEraEtc_GMT_13 /*eras*/,
    -
    25040  nullptr /*targetInfo*/,
    -
    25041 };
    -
    25042 
    -
    25043 //---------------------------------------------------------------------------
    -
    25044 // Zone name: Etc/GMT-14
    -
    25045 // Eras: 1
    -
    25046 //---------------------------------------------------------------------------
    -
    25047 
    -
    25048 static const complete::Info::ZoneEra kZoneEraEtc_GMT_14[] ACE_TIME_PROGMEM = {
    -
    25049  // 14 - %z
    -
    25050  {
    -
    25051  nullptr /*zonePolicy*/,
    -
    25052  "" /*format*/,
    -
    25053  3360 /*offsetCode (50400/15)*/,
    -
    25054  0 /*offsetRemainder (50400%15)*/,
    -
    25055  0 /*deltaMinutes*/,
    -
    25056  32767 /*untilYear*/,
    -
    25057  1 /*untilMonth*/,
    -
    25058  1 /*untilDay*/,
    -
    25059  0 /*untilTimeCode (0/15)*/,
    -
    25060  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25061  },
    -
    25062 
    -
    25063 };
    -
    25064 
    -
    25065 static const char kZoneNameEtc_GMT_14[] ACE_TIME_PROGMEM = "\x0a" "GMT-14";
    -
    25066 
    -
    25067 const complete::Info::ZoneInfo kZoneEtc_GMT_14 ACE_TIME_PROGMEM = {
    -
    25068  kZoneNameEtc_GMT_14 /*name*/,
    -
    25069  0x3f8f254a /*zoneId*/,
    -
    25070  &kZoneContext /*zoneContext*/,
    -
    25071  1 /*numEras*/,
    -
    25072  kZoneEraEtc_GMT_14 /*eras*/,
    -
    25073  nullptr /*targetInfo*/,
    -
    25074 };
    -
    25075 
    -
    25076 //---------------------------------------------------------------------------
    -
    25077 // Zone name: Etc/GMT-2
    -
    25078 // Eras: 1
    -
    25079 //---------------------------------------------------------------------------
    -
    25080 
    -
    25081 static const complete::Info::ZoneEra kZoneEraEtc_GMT_2[] ACE_TIME_PROGMEM = {
    -
    25082  // 2 - %z
    -
    25083  {
    -
    25084  nullptr /*zonePolicy*/,
    -
    25085  "" /*format*/,
    -
    25086  480 /*offsetCode (7200/15)*/,
    -
    25087  0 /*offsetRemainder (7200%15)*/,
    -
    25088  0 /*deltaMinutes*/,
    -
    25089  32767 /*untilYear*/,
    -
    25090  1 /*untilMonth*/,
    -
    25091  1 /*untilDay*/,
    -
    25092  0 /*untilTimeCode (0/15)*/,
    -
    25093  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25094  },
    -
    25095 
    -
    25096 };
    -
    25097 
    -
    25098 static const char kZoneNameEtc_GMT_2[] ACE_TIME_PROGMEM = "\x0a" "GMT-2";
    -
    25099 
    -
    25100 const complete::Info::ZoneInfo kZoneEtc_GMT_2 ACE_TIME_PROGMEM = {
    -
    25101  kZoneNameEtc_GMT_2 /*name*/,
    -
    25102  0x9d13da57 /*zoneId*/,
    -
    25103  &kZoneContext /*zoneContext*/,
    -
    25104  1 /*numEras*/,
    -
    25105  kZoneEraEtc_GMT_2 /*eras*/,
    -
    25106  nullptr /*targetInfo*/,
    -
    25107 };
    -
    25108 
    -
    25109 //---------------------------------------------------------------------------
    -
    25110 // Zone name: Etc/GMT-3
    -
    25111 // Eras: 1
    -
    25112 //---------------------------------------------------------------------------
    -
    25113 
    -
    25114 static const complete::Info::ZoneEra kZoneEraEtc_GMT_3[] ACE_TIME_PROGMEM = {
    -
    25115  // 3 - %z
    -
    25116  {
    -
    25117  nullptr /*zonePolicy*/,
    -
    25118  "" /*format*/,
    -
    25119  720 /*offsetCode (10800/15)*/,
    -
    25120  0 /*offsetRemainder (10800%15)*/,
    -
    25121  0 /*deltaMinutes*/,
    -
    25122  32767 /*untilYear*/,
    -
    25123  1 /*untilMonth*/,
    -
    25124  1 /*untilDay*/,
    -
    25125  0 /*untilTimeCode (0/15)*/,
    -
    25126  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25127  },
    -
    25128 
    -
    25129 };
    -
    25130 
    -
    25131 static const char kZoneNameEtc_GMT_3[] ACE_TIME_PROGMEM = "\x0a" "GMT-3";
    -
    25132 
    -
    25133 const complete::Info::ZoneInfo kZoneEtc_GMT_3 ACE_TIME_PROGMEM = {
    -
    25134  kZoneNameEtc_GMT_3 /*name*/,
    -
    25135  0x9d13da58 /*zoneId*/,
    -
    25136  &kZoneContext /*zoneContext*/,
    -
    25137  1 /*numEras*/,
    -
    25138  kZoneEraEtc_GMT_3 /*eras*/,
    -
    25139  nullptr /*targetInfo*/,
    -
    25140 };
    -
    25141 
    -
    25142 //---------------------------------------------------------------------------
    -
    25143 // Zone name: Etc/GMT-4
    -
    25144 // Eras: 1
    -
    25145 //---------------------------------------------------------------------------
    -
    25146 
    -
    25147 static const complete::Info::ZoneEra kZoneEraEtc_GMT_4[] ACE_TIME_PROGMEM = {
    -
    25148  // 4 - %z
    -
    25149  {
    -
    25150  nullptr /*zonePolicy*/,
    -
    25151  "" /*format*/,
    -
    25152  960 /*offsetCode (14400/15)*/,
    -
    25153  0 /*offsetRemainder (14400%15)*/,
    -
    25154  0 /*deltaMinutes*/,
    -
    25155  32767 /*untilYear*/,
    -
    25156  1 /*untilMonth*/,
    -
    25157  1 /*untilDay*/,
    -
    25158  0 /*untilTimeCode (0/15)*/,
    -
    25159  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25160  },
    -
    25161 
    -
    25162 };
    -
    25163 
    -
    25164 static const char kZoneNameEtc_GMT_4[] ACE_TIME_PROGMEM = "\x0a" "GMT-4";
    -
    25165 
    -
    25166 const complete::Info::ZoneInfo kZoneEtc_GMT_4 ACE_TIME_PROGMEM = {
    -
    25167  kZoneNameEtc_GMT_4 /*name*/,
    -
    25168  0x9d13da59 /*zoneId*/,
    -
    25169  &kZoneContext /*zoneContext*/,
    -
    25170  1 /*numEras*/,
    -
    25171  kZoneEraEtc_GMT_4 /*eras*/,
    -
    25172  nullptr /*targetInfo*/,
    -
    25173 };
    -
    25174 
    -
    25175 //---------------------------------------------------------------------------
    -
    25176 // Zone name: Etc/GMT-5
    -
    25177 // Eras: 1
    -
    25178 //---------------------------------------------------------------------------
    -
    25179 
    -
    25180 static const complete::Info::ZoneEra kZoneEraEtc_GMT_5[] ACE_TIME_PROGMEM = {
    -
    25181  // 5 - %z
    -
    25182  {
    -
    25183  nullptr /*zonePolicy*/,
    -
    25184  "" /*format*/,
    -
    25185  1200 /*offsetCode (18000/15)*/,
    -
    25186  0 /*offsetRemainder (18000%15)*/,
    -
    25187  0 /*deltaMinutes*/,
    -
    25188  32767 /*untilYear*/,
    -
    25189  1 /*untilMonth*/,
    -
    25190  1 /*untilDay*/,
    -
    25191  0 /*untilTimeCode (0/15)*/,
    -
    25192  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25193  },
    -
    25194 
    -
    25195 };
    -
    25196 
    -
    25197 static const char kZoneNameEtc_GMT_5[] ACE_TIME_PROGMEM = "\x0a" "GMT-5";
    -
    25198 
    -
    25199 const complete::Info::ZoneInfo kZoneEtc_GMT_5 ACE_TIME_PROGMEM = {
    -
    25200  kZoneNameEtc_GMT_5 /*name*/,
    -
    25201  0x9d13da5a /*zoneId*/,
    -
    25202  &kZoneContext /*zoneContext*/,
    -
    25203  1 /*numEras*/,
    -
    25204  kZoneEraEtc_GMT_5 /*eras*/,
    -
    25205  nullptr /*targetInfo*/,
    -
    25206 };
    -
    25207 
    -
    25208 //---------------------------------------------------------------------------
    -
    25209 // Zone name: Etc/GMT-6
    -
    25210 // Eras: 1
    -
    25211 //---------------------------------------------------------------------------
    -
    25212 
    -
    25213 static const complete::Info::ZoneEra kZoneEraEtc_GMT_6[] ACE_TIME_PROGMEM = {
    -
    25214  // 6 - %z
    -
    25215  {
    -
    25216  nullptr /*zonePolicy*/,
    -
    25217  "" /*format*/,
    -
    25218  1440 /*offsetCode (21600/15)*/,
    -
    25219  0 /*offsetRemainder (21600%15)*/,
    -
    25220  0 /*deltaMinutes*/,
    -
    25221  32767 /*untilYear*/,
    -
    25222  1 /*untilMonth*/,
    -
    25223  1 /*untilDay*/,
    -
    25224  0 /*untilTimeCode (0/15)*/,
    -
    25225  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25226  },
    -
    25227 
    -
    25228 };
    -
    25229 
    -
    25230 static const char kZoneNameEtc_GMT_6[] ACE_TIME_PROGMEM = "\x0a" "GMT-6";
    -
    25231 
    -
    25232 const complete::Info::ZoneInfo kZoneEtc_GMT_6 ACE_TIME_PROGMEM = {
    -
    25233  kZoneNameEtc_GMT_6 /*name*/,
    -
    25234  0x9d13da5b /*zoneId*/,
    -
    25235  &kZoneContext /*zoneContext*/,
    -
    25236  1 /*numEras*/,
    -
    25237  kZoneEraEtc_GMT_6 /*eras*/,
    -
    25238  nullptr /*targetInfo*/,
    -
    25239 };
    -
    25240 
    -
    25241 //---------------------------------------------------------------------------
    -
    25242 // Zone name: Etc/GMT-7
    -
    25243 // Eras: 1
    -
    25244 //---------------------------------------------------------------------------
    -
    25245 
    -
    25246 static const complete::Info::ZoneEra kZoneEraEtc_GMT_7[] ACE_TIME_PROGMEM = {
    -
    25247  // 7 - %z
    -
    25248  {
    -
    25249  nullptr /*zonePolicy*/,
    -
    25250  "" /*format*/,
    -
    25251  1680 /*offsetCode (25200/15)*/,
    -
    25252  0 /*offsetRemainder (25200%15)*/,
    -
    25253  0 /*deltaMinutes*/,
    -
    25254  32767 /*untilYear*/,
    -
    25255  1 /*untilMonth*/,
    -
    25256  1 /*untilDay*/,
    -
    25257  0 /*untilTimeCode (0/15)*/,
    -
    25258  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25259  },
    -
    25260 
    -
    25261 };
    -
    25262 
    -
    25263 static const char kZoneNameEtc_GMT_7[] ACE_TIME_PROGMEM = "\x0a" "GMT-7";
    -
    25264 
    -
    25265 const complete::Info::ZoneInfo kZoneEtc_GMT_7 ACE_TIME_PROGMEM = {
    -
    25266  kZoneNameEtc_GMT_7 /*name*/,
    -
    25267  0x9d13da5c /*zoneId*/,
    -
    25268  &kZoneContext /*zoneContext*/,
    -
    25269  1 /*numEras*/,
    -
    25270  kZoneEraEtc_GMT_7 /*eras*/,
    -
    25271  nullptr /*targetInfo*/,
    -
    25272 };
    -
    25273 
    -
    25274 //---------------------------------------------------------------------------
    -
    25275 // Zone name: Etc/GMT-8
    -
    25276 // Eras: 1
    -
    25277 //---------------------------------------------------------------------------
    -
    25278 
    -
    25279 static const complete::Info::ZoneEra kZoneEraEtc_GMT_8[] ACE_TIME_PROGMEM = {
    -
    25280  // 8 - %z
    -
    25281  {
    -
    25282  nullptr /*zonePolicy*/,
    -
    25283  "" /*format*/,
    -
    25284  1920 /*offsetCode (28800/15)*/,
    -
    25285  0 /*offsetRemainder (28800%15)*/,
    -
    25286  0 /*deltaMinutes*/,
    -
    25287  32767 /*untilYear*/,
    -
    25288  1 /*untilMonth*/,
    -
    25289  1 /*untilDay*/,
    -
    25290  0 /*untilTimeCode (0/15)*/,
    -
    25291  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25292  },
    -
    25293 
    -
    25294 };
    -
    25295 
    -
    25296 static const char kZoneNameEtc_GMT_8[] ACE_TIME_PROGMEM = "\x0a" "GMT-8";
    -
    25297 
    -
    25298 const complete::Info::ZoneInfo kZoneEtc_GMT_8 ACE_TIME_PROGMEM = {
    -
    25299  kZoneNameEtc_GMT_8 /*name*/,
    -
    25300  0x9d13da5d /*zoneId*/,
    -
    25301  &kZoneContext /*zoneContext*/,
    -
    25302  1 /*numEras*/,
    -
    25303  kZoneEraEtc_GMT_8 /*eras*/,
    -
    25304  nullptr /*targetInfo*/,
    -
    25305 };
    -
    25306 
    -
    25307 //---------------------------------------------------------------------------
    -
    25308 // Zone name: Etc/GMT-9
    -
    25309 // Eras: 1
    -
    25310 //---------------------------------------------------------------------------
    -
    25311 
    -
    25312 static const complete::Info::ZoneEra kZoneEraEtc_GMT_9[] ACE_TIME_PROGMEM = {
    -
    25313  // 9 - %z
    -
    25314  {
    -
    25315  nullptr /*zonePolicy*/,
    -
    25316  "" /*format*/,
    -
    25317  2160 /*offsetCode (32400/15)*/,
    -
    25318  0 /*offsetRemainder (32400%15)*/,
    -
    25319  0 /*deltaMinutes*/,
    -
    25320  32767 /*untilYear*/,
    -
    25321  1 /*untilMonth*/,
    -
    25322  1 /*untilDay*/,
    -
    25323  0 /*untilTimeCode (0/15)*/,
    -
    25324  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25325  },
    -
    25326 
    -
    25327 };
    -
    25328 
    -
    25329 static const char kZoneNameEtc_GMT_9[] ACE_TIME_PROGMEM = "\x0a" "GMT-9";
    -
    25330 
    -
    25331 const complete::Info::ZoneInfo kZoneEtc_GMT_9 ACE_TIME_PROGMEM = {
    -
    25332  kZoneNameEtc_GMT_9 /*name*/,
    -
    25333  0x9d13da5e /*zoneId*/,
    -
    25334  &kZoneContext /*zoneContext*/,
    -
    25335  1 /*numEras*/,
    -
    25336  kZoneEraEtc_GMT_9 /*eras*/,
    -
    25337  nullptr /*targetInfo*/,
    -
    25338 };
    -
    25339 
    -
    25340 //---------------------------------------------------------------------------
    -
    25341 // Zone name: Etc/UTC
    -
    25342 // Eras: 1
    -
    25343 //---------------------------------------------------------------------------
    -
    25344 
    -
    25345 static const complete::Info::ZoneEra kZoneEraEtc_UTC[] ACE_TIME_PROGMEM = {
    -
    25346  // 0 - UTC
    -
    25347  {
    -
    25348  nullptr /*zonePolicy*/,
    -
    25349  "UTC" /*format*/,
    -
    25350  0 /*offsetCode (0/15)*/,
    -
    25351  0 /*offsetRemainder (0%15)*/,
    -
    25352  0 /*deltaMinutes*/,
    -
    25353  32767 /*untilYear*/,
    -
    25354  1 /*untilMonth*/,
    -
    25355  1 /*untilDay*/,
    -
    25356  0 /*untilTimeCode (0/15)*/,
    -
    25357  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25358  },
    -
    25359 
    -
    25360 };
    -
    25361 
    -
    25362 static const char kZoneNameEtc_UTC[] ACE_TIME_PROGMEM = "\x0a" "UTC";
    -
    25363 
    -
    25364 const complete::Info::ZoneInfo kZoneEtc_UTC ACE_TIME_PROGMEM = {
    -
    25365  kZoneNameEtc_UTC /*name*/,
    -
    25366  0xd8e31abc /*zoneId*/,
    -
    25367  &kZoneContext /*zoneContext*/,
    -
    25368  1 /*numEras*/,
    -
    25369  kZoneEraEtc_UTC /*eras*/,
    -
    25370  nullptr /*targetInfo*/,
    -
    25371 };
    -
    25372 
    -
    25373 //---------------------------------------------------------------------------
    -
    25374 // Zone name: Europe/Andorra
    -
    25375 // Eras: 4
    -
    25376 //---------------------------------------------------------------------------
    -
    25377 
    -
    25378 static const complete::Info::ZoneEra kZoneEraEurope_Andorra[] ACE_TIME_PROGMEM = {
    -
    25379  // 0:06:04 - LMT 1901
    -
    25380  {
    -
    25381  nullptr /*zonePolicy*/,
    -
    25382  "LMT" /*format*/,
    -
    25383  24 /*offsetCode (364/15)*/,
    -
    25384  4 /*offsetRemainder (364%15)*/,
    -
    25385  0 /*deltaMinutes*/,
    -
    25386  1901 /*untilYear*/,
    -
    25387  1 /*untilMonth*/,
    -
    25388  1 /*untilDay*/,
    -
    25389  0 /*untilTimeCode (0/15)*/,
    -
    25390  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25391  },
    -
    25392  // 0:00 - WET 1946 Sep 30
    -
    25393  {
    -
    25394  nullptr /*zonePolicy*/,
    -
    25395  "WET" /*format*/,
    -
    25396  0 /*offsetCode (0/15)*/,
    -
    25397  0 /*offsetRemainder (0%15)*/,
    -
    25398  0 /*deltaMinutes*/,
    -
    25399  1946 /*untilYear*/,
    -
    25400  9 /*untilMonth*/,
    -
    25401  30 /*untilDay*/,
    -
    25402  0 /*untilTimeCode (0/15)*/,
    -
    25403  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25404  },
    -
    25405  // 1:00 - CET 1985 Mar 31 2:00
    -
    25406  {
    -
    25407  nullptr /*zonePolicy*/,
    -
    25408  "CET" /*format*/,
    -
    25409  240 /*offsetCode (3600/15)*/,
    -
    25410  0 /*offsetRemainder (3600%15)*/,
    -
    25411  0 /*deltaMinutes*/,
    -
    25412  1985 /*untilYear*/,
    -
    25413  3 /*untilMonth*/,
    -
    25414  31 /*untilDay*/,
    -
    25415  480 /*untilTimeCode (7200/15)*/,
    -
    25416  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25417  },
    -
    25418  // 1:00 EU CE%sT
    -
    25419  {
    -
    25420  &kZonePolicyEU /*zonePolicy*/,
    -
    25421  "CE%T" /*format*/,
    -
    25422  240 /*offsetCode (3600/15)*/,
    -
    25423  0 /*offsetRemainder (3600%15)*/,
    -
    25424  0 /*deltaMinutes*/,
    -
    25425  32767 /*untilYear*/,
    -
    25426  1 /*untilMonth*/,
    -
    25427  1 /*untilDay*/,
    -
    25428  0 /*untilTimeCode (0/15)*/,
    -
    25429  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25430  },
    -
    25431 
    -
    25432 };
    -
    25433 
    -
    25434 static const char kZoneNameEurope_Andorra[] ACE_TIME_PROGMEM = "\x0b" "Andorra";
    -
    25435 
    -
    25436 const complete::Info::ZoneInfo kZoneEurope_Andorra ACE_TIME_PROGMEM = {
    -
    25437  kZoneNameEurope_Andorra /*name*/,
    -
    25438  0x97f6764b /*zoneId*/,
    -
    25439  &kZoneContext /*zoneContext*/,
    -
    25440  4 /*numEras*/,
    -
    25441  kZoneEraEurope_Andorra /*eras*/,
    -
    25442  nullptr /*targetInfo*/,
    -
    25443 };
    -
    25444 
    -
    25445 //---------------------------------------------------------------------------
    -
    25446 // Zone name: Europe/Astrakhan
    -
    25447 // Eras: 9
    -
    25448 //---------------------------------------------------------------------------
    -
    25449 
    -
    25450 static const complete::Info::ZoneEra kZoneEraEurope_Astrakhan[] ACE_TIME_PROGMEM = {
    -
    25451  // 3:12:12 - LMT 1924 May
    -
    25452  {
    -
    25453  nullptr /*zonePolicy*/,
    -
    25454  "LMT" /*format*/,
    -
    25455  768 /*offsetCode (11532/15)*/,
    -
    25456  12 /*offsetRemainder (11532%15)*/,
    -
    25457  0 /*deltaMinutes*/,
    -
    25458  1924 /*untilYear*/,
    -
    25459  5 /*untilMonth*/,
    -
    25460  1 /*untilDay*/,
    -
    25461  0 /*untilTimeCode (0/15)*/,
    -
    25462  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25463  },
    -
    25464  // 3:00 - %z 1930 Jun 21
    -
    25465  {
    -
    25466  nullptr /*zonePolicy*/,
    -
    25467  "" /*format*/,
    -
    25468  720 /*offsetCode (10800/15)*/,
    -
    25469  0 /*offsetRemainder (10800%15)*/,
    -
    25470  0 /*deltaMinutes*/,
    -
    25471  1930 /*untilYear*/,
    -
    25472  6 /*untilMonth*/,
    -
    25473  21 /*untilDay*/,
    -
    25474  0 /*untilTimeCode (0/15)*/,
    -
    25475  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25476  },
    -
    25477  // 4:00 Russia %z 1989 Mar 26 2:00s
    -
    25478  {
    -
    25479  &kZonePolicyRussia /*zonePolicy*/,
    -
    25480  "" /*format*/,
    -
    25481  960 /*offsetCode (14400/15)*/,
    -
    25482  0 /*offsetRemainder (14400%15)*/,
    -
    25483  0 /*deltaMinutes*/,
    -
    25484  1989 /*untilYear*/,
    -
    25485  3 /*untilMonth*/,
    -
    25486  26 /*untilDay*/,
    -
    25487  480 /*untilTimeCode (7200/15)*/,
    -
    25488  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25489  },
    -
    25490  // 3:00 Russia %z 1991 Mar 31 2:00s
    -
    25491  {
    -
    25492  &kZonePolicyRussia /*zonePolicy*/,
    -
    25493  "" /*format*/,
    -
    25494  720 /*offsetCode (10800/15)*/,
    -
    25495  0 /*offsetRemainder (10800%15)*/,
    -
    25496  0 /*deltaMinutes*/,
    -
    25497  1991 /*untilYear*/,
    -
    25498  3 /*untilMonth*/,
    -
    25499  31 /*untilDay*/,
    -
    25500  480 /*untilTimeCode (7200/15)*/,
    -
    25501  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25502  },
    -
    25503  // 4:00 - %z 1992 Mar 29 2:00s
    -
    25504  {
    -
    25505  nullptr /*zonePolicy*/,
    -
    25506  "" /*format*/,
    -
    25507  960 /*offsetCode (14400/15)*/,
    -
    25508  0 /*offsetRemainder (14400%15)*/,
    -
    25509  0 /*deltaMinutes*/,
    -
    25510  1992 /*untilYear*/,
    -
    25511  3 /*untilMonth*/,
    -
    25512  29 /*untilDay*/,
    -
    25513  480 /*untilTimeCode (7200/15)*/,
    -
    25514  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25515  },
    -
    25516  // 3:00 Russia %z 2011 Mar 27 2:00s
    -
    25517  {
    -
    25518  &kZonePolicyRussia /*zonePolicy*/,
    -
    25519  "" /*format*/,
    -
    25520  720 /*offsetCode (10800/15)*/,
    -
    25521  0 /*offsetRemainder (10800%15)*/,
    -
    25522  0 /*deltaMinutes*/,
    -
    25523  2011 /*untilYear*/,
    -
    25524  3 /*untilMonth*/,
    -
    25525  27 /*untilDay*/,
    -
    25526  480 /*untilTimeCode (7200/15)*/,
    -
    25527  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25528  },
    -
    25529  // 4:00 - %z 2014 Oct 26 2:00s
    -
    25530  {
    -
    25531  nullptr /*zonePolicy*/,
    -
    25532  "" /*format*/,
    -
    25533  960 /*offsetCode (14400/15)*/,
    -
    25534  0 /*offsetRemainder (14400%15)*/,
    -
    25535  0 /*deltaMinutes*/,
    -
    25536  2014 /*untilYear*/,
    -
    25537  10 /*untilMonth*/,
    -
    25538  26 /*untilDay*/,
    -
    25539  480 /*untilTimeCode (7200/15)*/,
    -
    25540  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25541  },
    -
    25542  // 3:00 - %z 2016 Mar 27 2:00s
    -
    25543  {
    -
    25544  nullptr /*zonePolicy*/,
    -
    25545  "" /*format*/,
    -
    25546  720 /*offsetCode (10800/15)*/,
    -
    25547  0 /*offsetRemainder (10800%15)*/,
    -
    25548  0 /*deltaMinutes*/,
    -
    25549  2016 /*untilYear*/,
    -
    25550  3 /*untilMonth*/,
    -
    25551  27 /*untilDay*/,
    -
    25552  480 /*untilTimeCode (7200/15)*/,
    -
    25553  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25554  },
    -
    25555  // 4:00 - %z
    -
    25556  {
    -
    25557  nullptr /*zonePolicy*/,
    -
    25558  "" /*format*/,
    -
    25559  960 /*offsetCode (14400/15)*/,
    -
    25560  0 /*offsetRemainder (14400%15)*/,
    -
    25561  0 /*deltaMinutes*/,
    -
    25562  32767 /*untilYear*/,
    -
    25563  1 /*untilMonth*/,
    -
    25564  1 /*untilDay*/,
    -
    25565  0 /*untilTimeCode (0/15)*/,
    -
    25566  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25567  },
    -
    25568 
    -
    25569 };
    -
    25570 
    -
    25571 static const char kZoneNameEurope_Astrakhan[] ACE_TIME_PROGMEM = "\x0b" "Astrakhan";
    -
    25572 
    -
    25573 const complete::Info::ZoneInfo kZoneEurope_Astrakhan ACE_TIME_PROGMEM = {
    -
    25574  kZoneNameEurope_Astrakhan /*name*/,
    -
    25575  0xe22256e1 /*zoneId*/,
    -
    25576  &kZoneContext /*zoneContext*/,
    -
    25577  9 /*numEras*/,
    -
    25578  kZoneEraEurope_Astrakhan /*eras*/,
    -
    25579  nullptr /*targetInfo*/,
    -
    25580 };
    -
    25581 
    -
    25582 //---------------------------------------------------------------------------
    -
    25583 // Zone name: Europe/Athens
    -
    25584 // Eras: 6
    -
    25585 //---------------------------------------------------------------------------
    -
    25586 
    -
    25587 static const complete::Info::ZoneEra kZoneEraEurope_Athens[] ACE_TIME_PROGMEM = {
    -
    25588  // 1:34:52 - LMT 1895 Sep 14
    -
    25589  {
    -
    25590  nullptr /*zonePolicy*/,
    -
    25591  "LMT" /*format*/,
    -
    25592  379 /*offsetCode (5692/15)*/,
    -
    25593  7 /*offsetRemainder (5692%15)*/,
    -
    25594  0 /*deltaMinutes*/,
    -
    25595  1895 /*untilYear*/,
    -
    25596  9 /*untilMonth*/,
    -
    25597  14 /*untilDay*/,
    -
    25598  0 /*untilTimeCode (0/15)*/,
    -
    25599  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25600  },
    -
    25601  // 1:34:52 - AMT 1916 Jul 28 0:01
    -
    25602  {
    -
    25603  nullptr /*zonePolicy*/,
    -
    25604  "AMT" /*format*/,
    -
    25605  379 /*offsetCode (5692/15)*/,
    -
    25606  7 /*offsetRemainder (5692%15)*/,
    -
    25607  0 /*deltaMinutes*/,
    -
    25608  1916 /*untilYear*/,
    -
    25609  7 /*untilMonth*/,
    -
    25610  28 /*untilDay*/,
    -
    25611  4 /*untilTimeCode (60/15)*/,
    -
    25612  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25613  },
    -
    25614  // 2:00 Greece EE%sT 1941 Apr 30
    -
    25615  {
    -
    25616  &kZonePolicyGreece /*zonePolicy*/,
    -
    25617  "EE%T" /*format*/,
    -
    25618  480 /*offsetCode (7200/15)*/,
    -
    25619  0 /*offsetRemainder (7200%15)*/,
    -
    25620  0 /*deltaMinutes*/,
    -
    25621  1941 /*untilYear*/,
    -
    25622  4 /*untilMonth*/,
    -
    25623  30 /*untilDay*/,
    -
    25624  0 /*untilTimeCode (0/15)*/,
    -
    25625  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25626  },
    -
    25627  // 1:00 Greece CE%sT 1944 Apr 4
    -
    25628  {
    -
    25629  &kZonePolicyGreece /*zonePolicy*/,
    -
    25630  "CE%T" /*format*/,
    -
    25631  240 /*offsetCode (3600/15)*/,
    -
    25632  0 /*offsetRemainder (3600%15)*/,
    -
    25633  0 /*deltaMinutes*/,
    -
    25634  1944 /*untilYear*/,
    -
    25635  4 /*untilMonth*/,
    -
    25636  4 /*untilDay*/,
    -
    25637  0 /*untilTimeCode (0/15)*/,
    -
    25638  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25639  },
    -
    25640  // 2:00 Greece EE%sT 1981
    -
    25641  {
    -
    25642  &kZonePolicyGreece /*zonePolicy*/,
    -
    25643  "EE%T" /*format*/,
    -
    25644  480 /*offsetCode (7200/15)*/,
    -
    25645  0 /*offsetRemainder (7200%15)*/,
    -
    25646  0 /*deltaMinutes*/,
    -
    25647  1981 /*untilYear*/,
    -
    25648  1 /*untilMonth*/,
    -
    25649  1 /*untilDay*/,
    -
    25650  0 /*untilTimeCode (0/15)*/,
    -
    25651  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25652  },
    -
    25653  // 2:00 EU EE%sT
    -
    25654  {
    -
    25655  &kZonePolicyEU /*zonePolicy*/,
    -
    25656  "EE%T" /*format*/,
    -
    25657  480 /*offsetCode (7200/15)*/,
    -
    25658  0 /*offsetRemainder (7200%15)*/,
    -
    25659  0 /*deltaMinutes*/,
    -
    25660  32767 /*untilYear*/,
    -
    25661  1 /*untilMonth*/,
    -
    25662  1 /*untilDay*/,
    -
    25663  0 /*untilTimeCode (0/15)*/,
    -
    25664  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25665  },
    -
    25666 
    -
    25667 };
    -
    25668 
    -
    25669 static const char kZoneNameEurope_Athens[] ACE_TIME_PROGMEM = "\x0b" "Athens";
    -
    25670 
    -
    25671 const complete::Info::ZoneInfo kZoneEurope_Athens ACE_TIME_PROGMEM = {
    -
    25672  kZoneNameEurope_Athens /*name*/,
    -
    25673  0x4318fa27 /*zoneId*/,
    -
    25674  &kZoneContext /*zoneContext*/,
    -
    25675  6 /*numEras*/,
    -
    25676  kZoneEraEurope_Athens /*eras*/,
    -
    25677  nullptr /*targetInfo*/,
    -
    25678 };
    -
    25679 
    -
    25680 //---------------------------------------------------------------------------
    -
    25681 // Zone name: Europe/Belgrade
    -
    25682 // Eras: 7
    -
    25683 //---------------------------------------------------------------------------
    -
    25684 
    -
    25685 static const complete::Info::ZoneEra kZoneEraEurope_Belgrade[] ACE_TIME_PROGMEM = {
    -
    25686  // 1:22:00 - LMT 1884
    -
    25687  {
    -
    25688  nullptr /*zonePolicy*/,
    -
    25689  "LMT" /*format*/,
    -
    25690  328 /*offsetCode (4920/15)*/,
    -
    25691  0 /*offsetRemainder (4920%15)*/,
    -
    25692  0 /*deltaMinutes*/,
    -
    25693  1884 /*untilYear*/,
    -
    25694  1 /*untilMonth*/,
    -
    25695  1 /*untilDay*/,
    -
    25696  0 /*untilTimeCode (0/15)*/,
    -
    25697  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25698  },
    -
    25699  // 1:00 - CET 1941 Apr 18 23:00
    -
    25700  {
    -
    25701  nullptr /*zonePolicy*/,
    -
    25702  "CET" /*format*/,
    -
    25703  240 /*offsetCode (3600/15)*/,
    -
    25704  0 /*offsetRemainder (3600%15)*/,
    -
    25705  0 /*deltaMinutes*/,
    -
    25706  1941 /*untilYear*/,
    -
    25707  4 /*untilMonth*/,
    -
    25708  18 /*untilDay*/,
    -
    25709  5520 /*untilTimeCode (82800/15)*/,
    -
    25710  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25711  },
    -
    25712  // 1:00 C-Eur CE%sT 1945
    -
    25713  {
    -
    25714  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    25715  "CE%T" /*format*/,
    -
    25716  240 /*offsetCode (3600/15)*/,
    -
    25717  0 /*offsetRemainder (3600%15)*/,
    -
    25718  0 /*deltaMinutes*/,
    -
    25719  1945 /*untilYear*/,
    -
    25720  1 /*untilMonth*/,
    -
    25721  1 /*untilDay*/,
    -
    25722  0 /*untilTimeCode (0/15)*/,
    -
    25723  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25724  },
    -
    25725  // 1:00 - CET 1945 May 8 2:00s
    -
    25726  {
    -
    25727  nullptr /*zonePolicy*/,
    -
    25728  "CET" /*format*/,
    -
    25729  240 /*offsetCode (3600/15)*/,
    -
    25730  0 /*offsetRemainder (3600%15)*/,
    -
    25731  0 /*deltaMinutes*/,
    -
    25732  1945 /*untilYear*/,
    -
    25733  5 /*untilMonth*/,
    -
    25734  8 /*untilDay*/,
    -
    25735  480 /*untilTimeCode (7200/15)*/,
    -
    25736  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25737  },
    -
    25738  // 1:00 1:00 CEST 1945 Sep 16 2:00s
    -
    25739  {
    -
    25740  nullptr /*zonePolicy*/,
    -
    25741  "CEST" /*format*/,
    -
    25742  240 /*offsetCode (3600/15)*/,
    -
    25743  0 /*offsetRemainder (3600%15)*/,
    -
    25744  60 /*deltaMinutes*/,
    -
    25745  1945 /*untilYear*/,
    -
    25746  9 /*untilMonth*/,
    -
    25747  16 /*untilDay*/,
    -
    25748  480 /*untilTimeCode (7200/15)*/,
    -
    25749  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25750  },
    -
    25751  // 1:00 - CET 1982 Nov 27
    -
    25752  {
    -
    25753  nullptr /*zonePolicy*/,
    -
    25754  "CET" /*format*/,
    -
    25755  240 /*offsetCode (3600/15)*/,
    -
    25756  0 /*offsetRemainder (3600%15)*/,
    -
    25757  0 /*deltaMinutes*/,
    -
    25758  1982 /*untilYear*/,
    -
    25759  11 /*untilMonth*/,
    -
    25760  27 /*untilDay*/,
    -
    25761  0 /*untilTimeCode (0/15)*/,
    -
    25762  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25763  },
    -
    25764  // 1:00 EU CE%sT
    -
    25765  {
    -
    25766  &kZonePolicyEU /*zonePolicy*/,
    -
    25767  "CE%T" /*format*/,
    -
    25768  240 /*offsetCode (3600/15)*/,
    -
    25769  0 /*offsetRemainder (3600%15)*/,
    -
    25770  0 /*deltaMinutes*/,
    -
    25771  32767 /*untilYear*/,
    -
    25772  1 /*untilMonth*/,
    -
    25773  1 /*untilDay*/,
    -
    25774  0 /*untilTimeCode (0/15)*/,
    -
    25775  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25776  },
    -
    25777 
    -
    25778 };
    -
    25779 
    -
    25780 static const char kZoneNameEurope_Belgrade[] ACE_TIME_PROGMEM = "\x0b" "Belgrade";
    -
    25781 
    -
    25782 const complete::Info::ZoneInfo kZoneEurope_Belgrade ACE_TIME_PROGMEM = {
    -
    25783  kZoneNameEurope_Belgrade /*name*/,
    -
    25784  0xe0532b3a /*zoneId*/,
    -
    25785  &kZoneContext /*zoneContext*/,
    -
    25786  7 /*numEras*/,
    -
    25787  kZoneEraEurope_Belgrade /*eras*/,
    -
    25788  nullptr /*targetInfo*/,
    -
    25789 };
    -
    25790 
    -
    25791 //---------------------------------------------------------------------------
    -
    25792 // Zone name: Europe/Berlin
    -
    25793 // Eras: 5
    -
    25794 //---------------------------------------------------------------------------
    -
    25795 
    -
    25796 static const complete::Info::ZoneEra kZoneEraEurope_Berlin[] ACE_TIME_PROGMEM = {
    -
    25797  // 0:53:28 - LMT 1893 Apr
    -
    25798  {
    -
    25799  nullptr /*zonePolicy*/,
    -
    25800  "LMT" /*format*/,
    -
    25801  213 /*offsetCode (3208/15)*/,
    -
    25802  13 /*offsetRemainder (3208%15)*/,
    -
    25803  0 /*deltaMinutes*/,
    -
    25804  1893 /*untilYear*/,
    -
    25805  4 /*untilMonth*/,
    -
    25806  1 /*untilDay*/,
    -
    25807  0 /*untilTimeCode (0/15)*/,
    -
    25808  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25809  },
    -
    25810  // 1:00 C-Eur CE%sT 1945 May 24 2:00
    -
    25811  {
    -
    25812  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    25813  "CE%T" /*format*/,
    -
    25814  240 /*offsetCode (3600/15)*/,
    -
    25815  0 /*offsetRemainder (3600%15)*/,
    -
    25816  0 /*deltaMinutes*/,
    -
    25817  1945 /*untilYear*/,
    -
    25818  5 /*untilMonth*/,
    -
    25819  24 /*untilDay*/,
    -
    25820  480 /*untilTimeCode (7200/15)*/,
    -
    25821  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25822  },
    -
    25823  // 1:00 SovietZone CE%sT 1946
    -
    25824  {
    -
    25825  &kZonePolicySovietZone /*zonePolicy*/,
    -
    25826  "CE%T" /*format*/,
    -
    25827  240 /*offsetCode (3600/15)*/,
    -
    25828  0 /*offsetRemainder (3600%15)*/,
    -
    25829  0 /*deltaMinutes*/,
    -
    25830  1946 /*untilYear*/,
    -
    25831  1 /*untilMonth*/,
    -
    25832  1 /*untilDay*/,
    -
    25833  0 /*untilTimeCode (0/15)*/,
    -
    25834  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25835  },
    -
    25836  // 1:00 Germany CE%sT 1980
    -
    25837  {
    -
    25838  &kZonePolicyGermany /*zonePolicy*/,
    -
    25839  "CE%T" /*format*/,
    -
    25840  240 /*offsetCode (3600/15)*/,
    -
    25841  0 /*offsetRemainder (3600%15)*/,
    -
    25842  0 /*deltaMinutes*/,
    -
    25843  1980 /*untilYear*/,
    -
    25844  1 /*untilMonth*/,
    -
    25845  1 /*untilDay*/,
    -
    25846  0 /*untilTimeCode (0/15)*/,
    -
    25847  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25848  },
    -
    25849  // 1:00 EU CE%sT
    -
    25850  {
    -
    25851  &kZonePolicyEU /*zonePolicy*/,
    -
    25852  "CE%T" /*format*/,
    -
    25853  240 /*offsetCode (3600/15)*/,
    -
    25854  0 /*offsetRemainder (3600%15)*/,
    -
    25855  0 /*deltaMinutes*/,
    -
    25856  32767 /*untilYear*/,
    -
    25857  1 /*untilMonth*/,
    -
    25858  1 /*untilDay*/,
    -
    25859  0 /*untilTimeCode (0/15)*/,
    -
    25860  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25861  },
    -
    25862 
    -
    25863 };
    -
    25864 
    -
    25865 static const char kZoneNameEurope_Berlin[] ACE_TIME_PROGMEM = "\x0b" "Berlin";
    -
    25866 
    -
    25867 const complete::Info::ZoneInfo kZoneEurope_Berlin ACE_TIME_PROGMEM = {
    -
    25868  kZoneNameEurope_Berlin /*name*/,
    -
    25869  0x44644c20 /*zoneId*/,
    -
    25870  &kZoneContext /*zoneContext*/,
    -
    25871  5 /*numEras*/,
    -
    25872  kZoneEraEurope_Berlin /*eras*/,
    -
    25873  nullptr /*targetInfo*/,
    -
    25874 };
    -
    25875 
    -
    25876 //---------------------------------------------------------------------------
    -
    25877 // Zone name: Europe/Brussels
    -
    25878 // Eras: 9
    -
    25879 //---------------------------------------------------------------------------
    -
    25880 
    -
    25881 static const complete::Info::ZoneEra kZoneEraEurope_Brussels[] ACE_TIME_PROGMEM = {
    -
    25882  // 0:17:30 - LMT 1880
    -
    25883  {
    -
    25884  nullptr /*zonePolicy*/,
    -
    25885  "LMT" /*format*/,
    -
    25886  70 /*offsetCode (1050/15)*/,
    -
    25887  0 /*offsetRemainder (1050%15)*/,
    -
    25888  0 /*deltaMinutes*/,
    -
    25889  1880 /*untilYear*/,
    -
    25890  1 /*untilMonth*/,
    -
    25891  1 /*untilDay*/,
    -
    25892  0 /*untilTimeCode (0/15)*/,
    -
    25893  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25894  },
    -
    25895  // 0:17:30 - BMT 1892 May 1 00:17:30
    -
    25896  {
    -
    25897  nullptr /*zonePolicy*/,
    -
    25898  "BMT" /*format*/,
    -
    25899  70 /*offsetCode (1050/15)*/,
    -
    25900  0 /*offsetRemainder (1050%15)*/,
    -
    25901  0 /*deltaMinutes*/,
    -
    25902  1892 /*untilYear*/,
    -
    25903  5 /*untilMonth*/,
    -
    25904  1 /*untilDay*/,
    -
    25905  70 /*untilTimeCode (1050/15)*/,
    -
    25906  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25907  },
    -
    25908  // 0:00 - WET 1914 Nov 8
    -
    25909  {
    -
    25910  nullptr /*zonePolicy*/,
    -
    25911  "WET" /*format*/,
    -
    25912  0 /*offsetCode (0/15)*/,
    -
    25913  0 /*offsetRemainder (0%15)*/,
    -
    25914  0 /*deltaMinutes*/,
    -
    25915  1914 /*untilYear*/,
    -
    25916  11 /*untilMonth*/,
    -
    25917  8 /*untilDay*/,
    -
    25918  0 /*untilTimeCode (0/15)*/,
    -
    25919  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25920  },
    -
    25921  // 1:00 - CET 1916 May 1 0:00
    -
    25922  {
    -
    25923  nullptr /*zonePolicy*/,
    -
    25924  "CET" /*format*/,
    -
    25925  240 /*offsetCode (3600/15)*/,
    -
    25926  0 /*offsetRemainder (3600%15)*/,
    -
    25927  0 /*deltaMinutes*/,
    -
    25928  1916 /*untilYear*/,
    -
    25929  5 /*untilMonth*/,
    -
    25930  1 /*untilDay*/,
    -
    25931  0 /*untilTimeCode (0/15)*/,
    -
    25932  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25933  },
    -
    25934  // 1:00 C-Eur CE%sT 1918 Nov 11 11:00u
    -
    25935  {
    -
    25936  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    25937  "CE%T" /*format*/,
    -
    25938  240 /*offsetCode (3600/15)*/,
    -
    25939  0 /*offsetRemainder (3600%15)*/,
    -
    25940  0 /*deltaMinutes*/,
    -
    25941  1918 /*untilYear*/,
    -
    25942  11 /*untilMonth*/,
    -
    25943  11 /*untilDay*/,
    -
    25944  2640 /*untilTimeCode (39600/15)*/,
    -
    25945  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    25946  },
    -
    25947  // 0:00 Belgium WE%sT 1940 May 20 2:00s
    -
    25948  {
    -
    25949  &kZonePolicyBelgium /*zonePolicy*/,
    -
    25950  "WE%T" /*format*/,
    -
    25951  0 /*offsetCode (0/15)*/,
    -
    25952  0 /*offsetRemainder (0%15)*/,
    -
    25953  0 /*deltaMinutes*/,
    -
    25954  1940 /*untilYear*/,
    -
    25955  5 /*untilMonth*/,
    -
    25956  20 /*untilDay*/,
    -
    25957  480 /*untilTimeCode (7200/15)*/,
    -
    25958  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25959  },
    -
    25960  // 1:00 C-Eur CE%sT 1944 Sep 3
    -
    25961  {
    -
    25962  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    25963  "CE%T" /*format*/,
    -
    25964  240 /*offsetCode (3600/15)*/,
    -
    25965  0 /*offsetRemainder (3600%15)*/,
    -
    25966  0 /*deltaMinutes*/,
    -
    25967  1944 /*untilYear*/,
    -
    25968  9 /*untilMonth*/,
    -
    25969  3 /*untilDay*/,
    -
    25970  0 /*untilTimeCode (0/15)*/,
    -
    25971  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25972  },
    -
    25973  // 1:00 Belgium CE%sT 1977
    -
    25974  {
    -
    25975  &kZonePolicyBelgium /*zonePolicy*/,
    -
    25976  "CE%T" /*format*/,
    -
    25977  240 /*offsetCode (3600/15)*/,
    -
    25978  0 /*offsetRemainder (3600%15)*/,
    -
    25979  0 /*deltaMinutes*/,
    -
    25980  1977 /*untilYear*/,
    -
    25981  1 /*untilMonth*/,
    -
    25982  1 /*untilDay*/,
    -
    25983  0 /*untilTimeCode (0/15)*/,
    -
    25984  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25985  },
    -
    25986  // 1:00 EU CE%sT
    -
    25987  {
    -
    25988  &kZonePolicyEU /*zonePolicy*/,
    -
    25989  "CE%T" /*format*/,
    -
    25990  240 /*offsetCode (3600/15)*/,
    -
    25991  0 /*offsetRemainder (3600%15)*/,
    -
    25992  0 /*deltaMinutes*/,
    -
    25993  32767 /*untilYear*/,
    -
    25994  1 /*untilMonth*/,
    -
    25995  1 /*untilDay*/,
    -
    25996  0 /*untilTimeCode (0/15)*/,
    -
    25997  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25998  },
    -
    25999 
    -
    26000 };
    -
    26001 
    -
    26002 static const char kZoneNameEurope_Brussels[] ACE_TIME_PROGMEM = "\x0b" "Brussels";
    -
    26003 
    -
    26004 const complete::Info::ZoneInfo kZoneEurope_Brussels ACE_TIME_PROGMEM = {
    -
    26005  kZoneNameEurope_Brussels /*name*/,
    -
    26006  0xdee07337 /*zoneId*/,
    -
    26007  &kZoneContext /*zoneContext*/,
    -
    26008  9 /*numEras*/,
    -
    26009  kZoneEraEurope_Brussels /*eras*/,
    -
    26010  nullptr /*targetInfo*/,
    -
    26011 };
    -
    26012 
    -
    26013 //---------------------------------------------------------------------------
    -
    26014 // Zone name: Europe/Bucharest
    -
    26015 // Eras: 7
    -
    26016 //---------------------------------------------------------------------------
    -
    26017 
    -
    26018 static const complete::Info::ZoneEra kZoneEraEurope_Bucharest[] ACE_TIME_PROGMEM = {
    -
    26019  // 1:44:24 - LMT 1891 Oct
    -
    26020  {
    -
    26021  nullptr /*zonePolicy*/,
    -
    26022  "LMT" /*format*/,
    -
    26023  417 /*offsetCode (6264/15)*/,
    -
    26024  9 /*offsetRemainder (6264%15)*/,
    -
    26025  0 /*deltaMinutes*/,
    -
    26026  1891 /*untilYear*/,
    -
    26027  10 /*untilMonth*/,
    -
    26028  1 /*untilDay*/,
    -
    26029  0 /*untilTimeCode (0/15)*/,
    -
    26030  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26031  },
    -
    26032  // 1:44:24 - BMT 1931 Jul 24
    -
    26033  {
    -
    26034  nullptr /*zonePolicy*/,
    -
    26035  "BMT" /*format*/,
    -
    26036  417 /*offsetCode (6264/15)*/,
    -
    26037  9 /*offsetRemainder (6264%15)*/,
    -
    26038  0 /*deltaMinutes*/,
    -
    26039  1931 /*untilYear*/,
    -
    26040  7 /*untilMonth*/,
    -
    26041  24 /*untilDay*/,
    -
    26042  0 /*untilTimeCode (0/15)*/,
    -
    26043  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26044  },
    -
    26045  // 2:00 Romania EE%sT 1981 Mar 29 2:00s
    -
    26046  {
    -
    26047  &kZonePolicyRomania /*zonePolicy*/,
    -
    26048  "EE%T" /*format*/,
    -
    26049  480 /*offsetCode (7200/15)*/,
    -
    26050  0 /*offsetRemainder (7200%15)*/,
    -
    26051  0 /*deltaMinutes*/,
    -
    26052  1981 /*untilYear*/,
    -
    26053  3 /*untilMonth*/,
    -
    26054  29 /*untilDay*/,
    -
    26055  480 /*untilTimeCode (7200/15)*/,
    -
    26056  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26057  },
    -
    26058  // 2:00 C-Eur EE%sT 1991
    -
    26059  {
    -
    26060  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    26061  "EE%T" /*format*/,
    -
    26062  480 /*offsetCode (7200/15)*/,
    -
    26063  0 /*offsetRemainder (7200%15)*/,
    -
    26064  0 /*deltaMinutes*/,
    -
    26065  1991 /*untilYear*/,
    -
    26066  1 /*untilMonth*/,
    -
    26067  1 /*untilDay*/,
    -
    26068  0 /*untilTimeCode (0/15)*/,
    -
    26069  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26070  },
    -
    26071  // 2:00 Romania EE%sT 1994
    -
    26072  {
    -
    26073  &kZonePolicyRomania /*zonePolicy*/,
    -
    26074  "EE%T" /*format*/,
    -
    26075  480 /*offsetCode (7200/15)*/,
    -
    26076  0 /*offsetRemainder (7200%15)*/,
    -
    26077  0 /*deltaMinutes*/,
    -
    26078  1994 /*untilYear*/,
    -
    26079  1 /*untilMonth*/,
    -
    26080  1 /*untilDay*/,
    -
    26081  0 /*untilTimeCode (0/15)*/,
    -
    26082  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26083  },
    -
    26084  // 2:00 E-Eur EE%sT 1997
    -
    26085  {
    -
    26086  &kZonePolicyE_Eur /*zonePolicy*/,
    -
    26087  "EE%T" /*format*/,
    -
    26088  480 /*offsetCode (7200/15)*/,
    -
    26089  0 /*offsetRemainder (7200%15)*/,
    -
    26090  0 /*deltaMinutes*/,
    -
    26091  1997 /*untilYear*/,
    -
    26092  1 /*untilMonth*/,
    -
    26093  1 /*untilDay*/,
    -
    26094  0 /*untilTimeCode (0/15)*/,
    -
    26095  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26096  },
    -
    26097  // 2:00 EU EE%sT
    -
    26098  {
    -
    26099  &kZonePolicyEU /*zonePolicy*/,
    -
    26100  "EE%T" /*format*/,
    -
    26101  480 /*offsetCode (7200/15)*/,
    -
    26102  0 /*offsetRemainder (7200%15)*/,
    -
    26103  0 /*deltaMinutes*/,
    -
    26104  32767 /*untilYear*/,
    -
    26105  1 /*untilMonth*/,
    -
    26106  1 /*untilDay*/,
    -
    26107  0 /*untilTimeCode (0/15)*/,
    -
    26108  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26109  },
    -
    26110 
    -
    26111 };
    -
    26112 
    -
    26113 static const char kZoneNameEurope_Bucharest[] ACE_TIME_PROGMEM = "\x0b" "Bucharest";
    -
    26114 
    -
    26115 const complete::Info::ZoneInfo kZoneEurope_Bucharest ACE_TIME_PROGMEM = {
    -
    26116  kZoneNameEurope_Bucharest /*name*/,
    -
    26117  0xfb349ec5 /*zoneId*/,
    -
    26118  &kZoneContext /*zoneContext*/,
    -
    26119  7 /*numEras*/,
    -
    26120  kZoneEraEurope_Bucharest /*eras*/,
    -
    26121  nullptr /*targetInfo*/,
    -
    26122 };
    -
    26123 
    -
    26124 //---------------------------------------------------------------------------
    -
    26125 // Zone name: Europe/Budapest
    -
    26126 // Eras: 6
    -
    26127 //---------------------------------------------------------------------------
    -
    26128 
    -
    26129 static const complete::Info::ZoneEra kZoneEraEurope_Budapest[] ACE_TIME_PROGMEM = {
    -
    26130  // 1:16:20 - LMT 1890 Nov 1
    -
    26131  {
    -
    26132  nullptr /*zonePolicy*/,
    -
    26133  "LMT" /*format*/,
    -
    26134  305 /*offsetCode (4580/15)*/,
    -
    26135  5 /*offsetRemainder (4580%15)*/,
    -
    26136  0 /*deltaMinutes*/,
    -
    26137  1890 /*untilYear*/,
    -
    26138  11 /*untilMonth*/,
    -
    26139  1 /*untilDay*/,
    -
    26140  0 /*untilTimeCode (0/15)*/,
    -
    26141  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26142  },
    -
    26143  // 1:00 C-Eur CE%sT 1918
    -
    26144  {
    -
    26145  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    26146  "CE%T" /*format*/,
    -
    26147  240 /*offsetCode (3600/15)*/,
    -
    26148  0 /*offsetRemainder (3600%15)*/,
    -
    26149  0 /*deltaMinutes*/,
    -
    26150  1918 /*untilYear*/,
    -
    26151  1 /*untilMonth*/,
    -
    26152  1 /*untilDay*/,
    -
    26153  0 /*untilTimeCode (0/15)*/,
    -
    26154  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26155  },
    -
    26156  // 1:00 Hungary CE%sT 1941 Apr 7 23:00
    -
    26157  {
    -
    26158  &kZonePolicyHungary /*zonePolicy*/,
    -
    26159  "CE%T" /*format*/,
    -
    26160  240 /*offsetCode (3600/15)*/,
    -
    26161  0 /*offsetRemainder (3600%15)*/,
    -
    26162  0 /*deltaMinutes*/,
    -
    26163  1941 /*untilYear*/,
    -
    26164  4 /*untilMonth*/,
    -
    26165  7 /*untilDay*/,
    -
    26166  5520 /*untilTimeCode (82800/15)*/,
    -
    26167  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26168  },
    -
    26169  // 1:00 C-Eur CE%sT 1945
    -
    26170  {
    -
    26171  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    26172  "CE%T" /*format*/,
    -
    26173  240 /*offsetCode (3600/15)*/,
    -
    26174  0 /*offsetRemainder (3600%15)*/,
    -
    26175  0 /*deltaMinutes*/,
    -
    26176  1945 /*untilYear*/,
    -
    26177  1 /*untilMonth*/,
    -
    26178  1 /*untilDay*/,
    -
    26179  0 /*untilTimeCode (0/15)*/,
    -
    26180  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26181  },
    -
    26182  // 1:00 Hungary CE%sT 1984
    -
    26183  {
    -
    26184  &kZonePolicyHungary /*zonePolicy*/,
    -
    26185  "CE%T" /*format*/,
    -
    26186  240 /*offsetCode (3600/15)*/,
    -
    26187  0 /*offsetRemainder (3600%15)*/,
    -
    26188  0 /*deltaMinutes*/,
    -
    26189  1984 /*untilYear*/,
    -
    26190  1 /*untilMonth*/,
    -
    26191  1 /*untilDay*/,
    -
    26192  0 /*untilTimeCode (0/15)*/,
    -
    26193  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26194  },
    -
    26195  // 1:00 EU CE%sT
    -
    26196  {
    -
    26197  &kZonePolicyEU /*zonePolicy*/,
    -
    26198  "CE%T" /*format*/,
    -
    26199  240 /*offsetCode (3600/15)*/,
    -
    26200  0 /*offsetRemainder (3600%15)*/,
    -
    26201  0 /*deltaMinutes*/,
    -
    26202  32767 /*untilYear*/,
    -
    26203  1 /*untilMonth*/,
    -
    26204  1 /*untilDay*/,
    -
    26205  0 /*untilTimeCode (0/15)*/,
    -
    26206  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26207  },
    -
    26208 
    -
    26209 };
    -
    26210 
    -
    26211 static const char kZoneNameEurope_Budapest[] ACE_TIME_PROGMEM = "\x0b" "Budapest";
    -
    26212 
    -
    26213 const complete::Info::ZoneInfo kZoneEurope_Budapest ACE_TIME_PROGMEM = {
    -
    26214  kZoneNameEurope_Budapest /*name*/,
    -
    26215  0x9ce0197c /*zoneId*/,
    -
    26216  &kZoneContext /*zoneContext*/,
    -
    26217  6 /*numEras*/,
    -
    26218  kZoneEraEurope_Budapest /*eras*/,
    -
    26219  nullptr /*targetInfo*/,
    -
    26220 };
    -
    26221 
    -
    26222 //---------------------------------------------------------------------------
    -
    26223 // Zone name: Europe/Chisinau
    -
    26224 // Eras: 10
    -
    26225 //---------------------------------------------------------------------------
    -
    26226 
    -
    26227 static const complete::Info::ZoneEra kZoneEraEurope_Chisinau[] ACE_TIME_PROGMEM = {
    -
    26228  // 1:55:20 - LMT 1880
    -
    26229  {
    -
    26230  nullptr /*zonePolicy*/,
    -
    26231  "LMT" /*format*/,
    -
    26232  461 /*offsetCode (6920/15)*/,
    -
    26233  5 /*offsetRemainder (6920%15)*/,
    -
    26234  0 /*deltaMinutes*/,
    -
    26235  1880 /*untilYear*/,
    -
    26236  1 /*untilMonth*/,
    -
    26237  1 /*untilDay*/,
    -
    26238  0 /*untilTimeCode (0/15)*/,
    -
    26239  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26240  },
    -
    26241  // 1:55 - CMT 1918 Feb 15
    -
    26242  {
    -
    26243  nullptr /*zonePolicy*/,
    -
    26244  "CMT" /*format*/,
    -
    26245  460 /*offsetCode (6900/15)*/,
    -
    26246  0 /*offsetRemainder (6900%15)*/,
    -
    26247  0 /*deltaMinutes*/,
    -
    26248  1918 /*untilYear*/,
    -
    26249  2 /*untilMonth*/,
    -
    26250  15 /*untilDay*/,
    -
    26251  0 /*untilTimeCode (0/15)*/,
    -
    26252  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26253  },
    -
    26254  // 1:44:24 - BMT 1931 Jul 24
    -
    26255  {
    -
    26256  nullptr /*zonePolicy*/,
    -
    26257  "BMT" /*format*/,
    -
    26258  417 /*offsetCode (6264/15)*/,
    -
    26259  9 /*offsetRemainder (6264%15)*/,
    -
    26260  0 /*deltaMinutes*/,
    -
    26261  1931 /*untilYear*/,
    -
    26262  7 /*untilMonth*/,
    -
    26263  24 /*untilDay*/,
    -
    26264  0 /*untilTimeCode (0/15)*/,
    -
    26265  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26266  },
    -
    26267  // 2:00 Romania EE%sT 1940 Aug 15
    -
    26268  {
    -
    26269  &kZonePolicyRomania /*zonePolicy*/,
    -
    26270  "EE%T" /*format*/,
    -
    26271  480 /*offsetCode (7200/15)*/,
    -
    26272  0 /*offsetRemainder (7200%15)*/,
    -
    26273  0 /*deltaMinutes*/,
    -
    26274  1940 /*untilYear*/,
    -
    26275  8 /*untilMonth*/,
    -
    26276  15 /*untilDay*/,
    -
    26277  0 /*untilTimeCode (0/15)*/,
    -
    26278  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26279  },
    -
    26280  // 2:00 1:00 EEST 1941 Jul 17
    -
    26281  {
    -
    26282  nullptr /*zonePolicy*/,
    -
    26283  "EEST" /*format*/,
    -
    26284  480 /*offsetCode (7200/15)*/,
    -
    26285  0 /*offsetRemainder (7200%15)*/,
    -
    26286  60 /*deltaMinutes*/,
    -
    26287  1941 /*untilYear*/,
    -
    26288  7 /*untilMonth*/,
    -
    26289  17 /*untilDay*/,
    -
    26290  0 /*untilTimeCode (0/15)*/,
    -
    26291  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26292  },
    -
    26293  // 1:00 C-Eur CE%sT 1944 Aug 24
    -
    26294  {
    -
    26295  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    26296  "CE%T" /*format*/,
    -
    26297  240 /*offsetCode (3600/15)*/,
    -
    26298  0 /*offsetRemainder (3600%15)*/,
    -
    26299  0 /*deltaMinutes*/,
    -
    26300  1944 /*untilYear*/,
    -
    26301  8 /*untilMonth*/,
    -
    26302  24 /*untilDay*/,
    -
    26303  0 /*untilTimeCode (0/15)*/,
    -
    26304  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26305  },
    -
    26306  // 3:00 Russia MSK/MSD 1990 May 6 2:00
    -
    26307  {
    -
    26308  &kZonePolicyRussia /*zonePolicy*/,
    -
    26309  "MSK/MSD" /*format*/,
    -
    26310  720 /*offsetCode (10800/15)*/,
    -
    26311  0 /*offsetRemainder (10800%15)*/,
    -
    26312  0 /*deltaMinutes*/,
    -
    26313  1990 /*untilYear*/,
    -
    26314  5 /*untilMonth*/,
    -
    26315  6 /*untilDay*/,
    -
    26316  480 /*untilTimeCode (7200/15)*/,
    -
    26317  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26318  },
    -
    26319  // 2:00 Russia EE%sT 1992
    -
    26320  {
    -
    26321  &kZonePolicyRussia /*zonePolicy*/,
    -
    26322  "EE%T" /*format*/,
    -
    26323  480 /*offsetCode (7200/15)*/,
    -
    26324  0 /*offsetRemainder (7200%15)*/,
    -
    26325  0 /*deltaMinutes*/,
    -
    26326  1992 /*untilYear*/,
    -
    26327  1 /*untilMonth*/,
    -
    26328  1 /*untilDay*/,
    -
    26329  0 /*untilTimeCode (0/15)*/,
    -
    26330  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26331  },
    -
    26332  // 2:00 E-Eur EE%sT 1997
    -
    26333  {
    -
    26334  &kZonePolicyE_Eur /*zonePolicy*/,
    -
    26335  "EE%T" /*format*/,
    -
    26336  480 /*offsetCode (7200/15)*/,
    -
    26337  0 /*offsetRemainder (7200%15)*/,
    -
    26338  0 /*deltaMinutes*/,
    -
    26339  1997 /*untilYear*/,
    -
    26340  1 /*untilMonth*/,
    -
    26341  1 /*untilDay*/,
    -
    26342  0 /*untilTimeCode (0/15)*/,
    -
    26343  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26344  },
    -
    26345  // 2:00 Moldova EE%sT
    -
    26346  {
    -
    26347  &kZonePolicyMoldova /*zonePolicy*/,
    -
    26348  "EE%T" /*format*/,
    -
    26349  480 /*offsetCode (7200/15)*/,
    -
    26350  0 /*offsetRemainder (7200%15)*/,
    -
    26351  0 /*deltaMinutes*/,
    -
    26352  32767 /*untilYear*/,
    -
    26353  1 /*untilMonth*/,
    -
    26354  1 /*untilDay*/,
    -
    26355  0 /*untilTimeCode (0/15)*/,
    -
    26356  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26357  },
    -
    26358 
    -
    26359 };
    -
    26360 
    -
    26361 static const char kZoneNameEurope_Chisinau[] ACE_TIME_PROGMEM = "\x0b" "Chisinau";
    -
    26362 
    -
    26363 const complete::Info::ZoneInfo kZoneEurope_Chisinau ACE_TIME_PROGMEM = {
    -
    26364  kZoneNameEurope_Chisinau /*name*/,
    -
    26365  0xad58aa18 /*zoneId*/,
    -
    26366  &kZoneContext /*zoneContext*/,
    -
    26367  10 /*numEras*/,
    -
    26368  kZoneEraEurope_Chisinau /*eras*/,
    -
    26369  nullptr /*targetInfo*/,
    -
    26370 };
    -
    26371 
    -
    26372 //---------------------------------------------------------------------------
    -
    26373 // Zone name: Europe/Dublin
    -
    26374 // Eras: 11
    -
    26375 //---------------------------------------------------------------------------
    -
    26376 
    -
    26377 static const complete::Info::ZoneEra kZoneEraEurope_Dublin[] ACE_TIME_PROGMEM = {
    -
    26378  // -0:25:21 - LMT 1880 Aug 2
    -
    26379  {
    -
    26380  nullptr /*zonePolicy*/,
    -
    26381  "LMT" /*format*/,
    -
    26382  -102 /*offsetCode (-1521/15)*/,
    -
    26383  9 /*offsetRemainder (-1521%15)*/,
    -
    26384  0 /*deltaMinutes*/,
    -
    26385  1880 /*untilYear*/,
    -
    26386  8 /*untilMonth*/,
    -
    26387  2 /*untilDay*/,
    -
    26388  0 /*untilTimeCode (0/15)*/,
    -
    26389  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26390  },
    -
    26391  // -0:25:21 - DMT 1916 May 21 2:00s
    -
    26392  {
    -
    26393  nullptr /*zonePolicy*/,
    -
    26394  "DMT" /*format*/,
    -
    26395  -102 /*offsetCode (-1521/15)*/,
    -
    26396  9 /*offsetRemainder (-1521%15)*/,
    -
    26397  0 /*deltaMinutes*/,
    -
    26398  1916 /*untilYear*/,
    -
    26399  5 /*untilMonth*/,
    -
    26400  21 /*untilDay*/,
    -
    26401  480 /*untilTimeCode (7200/15)*/,
    -
    26402  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26403  },
    -
    26404  // -0:25:21 1:00 IST 1916 Oct 1 2:00s
    -
    26405  {
    -
    26406  nullptr /*zonePolicy*/,
    -
    26407  "IST" /*format*/,
    -
    26408  -102 /*offsetCode (-1521/15)*/,
    -
    26409  9 /*offsetRemainder (-1521%15)*/,
    -
    26410  60 /*deltaMinutes*/,
    -
    26411  1916 /*untilYear*/,
    -
    26412  10 /*untilMonth*/,
    -
    26413  1 /*untilDay*/,
    -
    26414  480 /*untilTimeCode (7200/15)*/,
    -
    26415  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26416  },
    -
    26417  // 0:00 GB-Eire %s 1921 Dec 6
    -
    26418  {
    -
    26419  &kZonePolicyGB_Eire /*zonePolicy*/,
    -
    26420  "%" /*format*/,
    -
    26421  0 /*offsetCode (0/15)*/,
    -
    26422  0 /*offsetRemainder (0%15)*/,
    -
    26423  0 /*deltaMinutes*/,
    -
    26424  1921 /*untilYear*/,
    -
    26425  12 /*untilMonth*/,
    -
    26426  6 /*untilDay*/,
    -
    26427  0 /*untilTimeCode (0/15)*/,
    -
    26428  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26429  },
    -
    26430  // 0:00 GB-Eire GMT/IST 1940 Feb 25 2:00s
    -
    26431  {
    -
    26432  &kZonePolicyGB_Eire /*zonePolicy*/,
    -
    26433  "GMT/IST" /*format*/,
    -
    26434  0 /*offsetCode (0/15)*/,
    -
    26435  0 /*offsetRemainder (0%15)*/,
    -
    26436  0 /*deltaMinutes*/,
    -
    26437  1940 /*untilYear*/,
    -
    26438  2 /*untilMonth*/,
    -
    26439  25 /*untilDay*/,
    -
    26440  480 /*untilTimeCode (7200/15)*/,
    -
    26441  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26442  },
    -
    26443  // 0:00 1:00 IST 1946 Oct 6 2:00s
    -
    26444  {
    -
    26445  nullptr /*zonePolicy*/,
    -
    26446  "IST" /*format*/,
    -
    26447  0 /*offsetCode (0/15)*/,
    -
    26448  0 /*offsetRemainder (0%15)*/,
    -
    26449  60 /*deltaMinutes*/,
    -
    26450  1946 /*untilYear*/,
    -
    26451  10 /*untilMonth*/,
    -
    26452  6 /*untilDay*/,
    -
    26453  480 /*untilTimeCode (7200/15)*/,
    -
    26454  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26455  },
    -
    26456  // 0:00 - GMT 1947 Mar 16 2:00s
    -
    26457  {
    -
    26458  nullptr /*zonePolicy*/,
    -
    26459  "GMT" /*format*/,
    -
    26460  0 /*offsetCode (0/15)*/,
    -
    26461  0 /*offsetRemainder (0%15)*/,
    -
    26462  0 /*deltaMinutes*/,
    -
    26463  1947 /*untilYear*/,
    -
    26464  3 /*untilMonth*/,
    -
    26465  16 /*untilDay*/,
    -
    26466  480 /*untilTimeCode (7200/15)*/,
    -
    26467  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26468  },
    -
    26469  // 0:00 1:00 IST 1947 Nov 2 2:00s
    -
    26470  {
    -
    26471  nullptr /*zonePolicy*/,
    -
    26472  "IST" /*format*/,
    -
    26473  0 /*offsetCode (0/15)*/,
    -
    26474  0 /*offsetRemainder (0%15)*/,
    -
    26475  60 /*deltaMinutes*/,
    -
    26476  1947 /*untilYear*/,
    -
    26477  11 /*untilMonth*/,
    -
    26478  2 /*untilDay*/,
    -
    26479  480 /*untilTimeCode (7200/15)*/,
    -
    26480  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26481  },
    -
    26482  // 0:00 - GMT 1948 Apr 18 2:00s
    -
    26483  {
    -
    26484  nullptr /*zonePolicy*/,
    -
    26485  "GMT" /*format*/,
    -
    26486  0 /*offsetCode (0/15)*/,
    -
    26487  0 /*offsetRemainder (0%15)*/,
    -
    26488  0 /*deltaMinutes*/,
    -
    26489  1948 /*untilYear*/,
    -
    26490  4 /*untilMonth*/,
    -
    26491  18 /*untilDay*/,
    -
    26492  480 /*untilTimeCode (7200/15)*/,
    -
    26493  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26494  },
    -
    26495  // 0:00 GB-Eire GMT/IST 1968 Oct 27
    -
    26496  {
    -
    26497  &kZonePolicyGB_Eire /*zonePolicy*/,
    -
    26498  "GMT/IST" /*format*/,
    -
    26499  0 /*offsetCode (0/15)*/,
    -
    26500  0 /*offsetRemainder (0%15)*/,
    -
    26501  0 /*deltaMinutes*/,
    -
    26502  1968 /*untilYear*/,
    -
    26503  10 /*untilMonth*/,
    -
    26504  27 /*untilDay*/,
    -
    26505  0 /*untilTimeCode (0/15)*/,
    -
    26506  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26507  },
    -
    26508  // 1:00 Eire IST/GMT
    -
    26509  {
    -
    26510  &kZonePolicyEire /*zonePolicy*/,
    -
    26511  "IST/GMT" /*format*/,
    -
    26512  240 /*offsetCode (3600/15)*/,
    -
    26513  0 /*offsetRemainder (3600%15)*/,
    -
    26514  0 /*deltaMinutes*/,
    -
    26515  32767 /*untilYear*/,
    -
    26516  1 /*untilMonth*/,
    -
    26517  1 /*untilDay*/,
    -
    26518  0 /*untilTimeCode (0/15)*/,
    -
    26519  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26520  },
    -
    26521 
    -
    26522 };
    -
    26523 
    -
    26524 static const char kZoneNameEurope_Dublin[] ACE_TIME_PROGMEM = "\x0b" "Dublin";
    -
    26525 
    -
    26526 const complete::Info::ZoneInfo kZoneEurope_Dublin ACE_TIME_PROGMEM = {
    -
    26527  kZoneNameEurope_Dublin /*name*/,
    -
    26528  0x4a275f62 /*zoneId*/,
    -
    26529  &kZoneContext /*zoneContext*/,
    -
    26530  11 /*numEras*/,
    -
    26531  kZoneEraEurope_Dublin /*eras*/,
    -
    26532  nullptr /*targetInfo*/,
    -
    26533 };
    -
    26534 
    -
    26535 //---------------------------------------------------------------------------
    -
    26536 // Zone name: Europe/Gibraltar
    -
    26537 // Eras: 4
    -
    26538 //---------------------------------------------------------------------------
    -
    26539 
    -
    26540 static const complete::Info::ZoneEra kZoneEraEurope_Gibraltar[] ACE_TIME_PROGMEM = {
    -
    26541  // -0:21:24 - LMT 1880 Aug 2
    -
    26542  {
    -
    26543  nullptr /*zonePolicy*/,
    -
    26544  "LMT" /*format*/,
    -
    26545  -86 /*offsetCode (-1284/15)*/,
    -
    26546  6 /*offsetRemainder (-1284%15)*/,
    -
    26547  0 /*deltaMinutes*/,
    -
    26548  1880 /*untilYear*/,
    -
    26549  8 /*untilMonth*/,
    -
    26550  2 /*untilDay*/,
    -
    26551  0 /*untilTimeCode (0/15)*/,
    -
    26552  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26553  },
    -
    26554  // 0:00 GB-Eire %s 1957 Apr 14 2:00
    -
    26555  {
    -
    26556  &kZonePolicyGB_Eire /*zonePolicy*/,
    -
    26557  "%" /*format*/,
    -
    26558  0 /*offsetCode (0/15)*/,
    -
    26559  0 /*offsetRemainder (0%15)*/,
    -
    26560  0 /*deltaMinutes*/,
    -
    26561  1957 /*untilYear*/,
    -
    26562  4 /*untilMonth*/,
    -
    26563  14 /*untilDay*/,
    -
    26564  480 /*untilTimeCode (7200/15)*/,
    -
    26565  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26566  },
    -
    26567  // 1:00 - CET 1982
    -
    26568  {
    -
    26569  nullptr /*zonePolicy*/,
    -
    26570  "CET" /*format*/,
    -
    26571  240 /*offsetCode (3600/15)*/,
    -
    26572  0 /*offsetRemainder (3600%15)*/,
    -
    26573  0 /*deltaMinutes*/,
    -
    26574  1982 /*untilYear*/,
    -
    26575  1 /*untilMonth*/,
    -
    26576  1 /*untilDay*/,
    -
    26577  0 /*untilTimeCode (0/15)*/,
    -
    26578  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26579  },
    -
    26580  // 1:00 EU CE%sT
    -
    26581  {
    -
    26582  &kZonePolicyEU /*zonePolicy*/,
    -
    26583  "CE%T" /*format*/,
    -
    26584  240 /*offsetCode (3600/15)*/,
    -
    26585  0 /*offsetRemainder (3600%15)*/,
    -
    26586  0 /*deltaMinutes*/,
    -
    26587  32767 /*untilYear*/,
    -
    26588  1 /*untilMonth*/,
    -
    26589  1 /*untilDay*/,
    -
    26590  0 /*untilTimeCode (0/15)*/,
    -
    26591  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26592  },
    -
    26593 
    -
    26594 };
    -
    26595 
    -
    26596 static const char kZoneNameEurope_Gibraltar[] ACE_TIME_PROGMEM = "\x0b" "Gibraltar";
    -
    26597 
    -
    26598 const complete::Info::ZoneInfo kZoneEurope_Gibraltar ACE_TIME_PROGMEM = {
    -
    26599  kZoneNameEurope_Gibraltar /*name*/,
    -
    26600  0xf8e325fc /*zoneId*/,
    -
    26601  &kZoneContext /*zoneContext*/,
    -
    26602  4 /*numEras*/,
    -
    26603  kZoneEraEurope_Gibraltar /*eras*/,
    -
    26604  nullptr /*targetInfo*/,
    -
    26605 };
    -
    26606 
    -
    26607 //---------------------------------------------------------------------------
    -
    26608 // Zone name: Europe/Helsinki
    -
    26609 // Eras: 4
    -
    26610 //---------------------------------------------------------------------------
    -
    26611 
    -
    26612 static const complete::Info::ZoneEra kZoneEraEurope_Helsinki[] ACE_TIME_PROGMEM = {
    -
    26613  // 1:39:49 - LMT 1878 May 31
    -
    26614  {
    -
    26615  nullptr /*zonePolicy*/,
    -
    26616  "LMT" /*format*/,
    -
    26617  399 /*offsetCode (5989/15)*/,
    -
    26618  4 /*offsetRemainder (5989%15)*/,
    -
    26619  0 /*deltaMinutes*/,
    -
    26620  1878 /*untilYear*/,
    -
    26621  5 /*untilMonth*/,
    -
    26622  31 /*untilDay*/,
    -
    26623  0 /*untilTimeCode (0/15)*/,
    -
    26624  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26625  },
    -
    26626  // 1:39:49 - HMT 1921 May
    -
    26627  {
    -
    26628  nullptr /*zonePolicy*/,
    -
    26629  "HMT" /*format*/,
    -
    26630  399 /*offsetCode (5989/15)*/,
    -
    26631  4 /*offsetRemainder (5989%15)*/,
    -
    26632  0 /*deltaMinutes*/,
    -
    26633  1921 /*untilYear*/,
    -
    26634  5 /*untilMonth*/,
    -
    26635  1 /*untilDay*/,
    -
    26636  0 /*untilTimeCode (0/15)*/,
    -
    26637  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26638  },
    -
    26639  // 2:00 Finland EE%sT 1983
    -
    26640  {
    -
    26641  &kZonePolicyFinland /*zonePolicy*/,
    -
    26642  "EE%T" /*format*/,
    -
    26643  480 /*offsetCode (7200/15)*/,
    -
    26644  0 /*offsetRemainder (7200%15)*/,
    -
    26645  0 /*deltaMinutes*/,
    -
    26646  1983 /*untilYear*/,
    -
    26647  1 /*untilMonth*/,
    -
    26648  1 /*untilDay*/,
    -
    26649  0 /*untilTimeCode (0/15)*/,
    -
    26650  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26651  },
    -
    26652  // 2:00 EU EE%sT
    -
    26653  {
    -
    26654  &kZonePolicyEU /*zonePolicy*/,
    -
    26655  "EE%T" /*format*/,
    -
    26656  480 /*offsetCode (7200/15)*/,
    -
    26657  0 /*offsetRemainder (7200%15)*/,
    -
    26658  0 /*deltaMinutes*/,
    -
    26659  32767 /*untilYear*/,
    -
    26660  1 /*untilMonth*/,
    -
    26661  1 /*untilDay*/,
    -
    26662  0 /*untilTimeCode (0/15)*/,
    -
    26663  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26664  },
    -
    26665 
    -
    26666 };
    -
    26667 
    -
    26668 static const char kZoneNameEurope_Helsinki[] ACE_TIME_PROGMEM = "\x0b" "Helsinki";
    -
    26669 
    -
    26670 const complete::Info::ZoneInfo kZoneEurope_Helsinki ACE_TIME_PROGMEM = {
    -
    26671  kZoneNameEurope_Helsinki /*name*/,
    -
    26672  0x6ab2975b /*zoneId*/,
    -
    26673  &kZoneContext /*zoneContext*/,
    -
    26674  4 /*numEras*/,
    -
    26675  kZoneEraEurope_Helsinki /*eras*/,
    -
    26676  nullptr /*targetInfo*/,
    -
    26677 };
    -
    26678 
    -
    26679 //---------------------------------------------------------------------------
    -
    26680 // Zone name: Europe/Istanbul
    -
    26681 // Eras: 13
    -
    26682 //---------------------------------------------------------------------------
    -
    26683 
    -
    26684 static const complete::Info::ZoneEra kZoneEraEurope_Istanbul[] ACE_TIME_PROGMEM = {
    -
    26685  // 1:55:52 - LMT 1880
    -
    26686  {
    -
    26687  nullptr /*zonePolicy*/,
    -
    26688  "LMT" /*format*/,
    -
    26689  463 /*offsetCode (6952/15)*/,
    -
    26690  7 /*offsetRemainder (6952%15)*/,
    -
    26691  0 /*deltaMinutes*/,
    -
    26692  1880 /*untilYear*/,
    -
    26693  1 /*untilMonth*/,
    -
    26694  1 /*untilDay*/,
    -
    26695  0 /*untilTimeCode (0/15)*/,
    -
    26696  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26697  },
    -
    26698  // 1:56:56 - IMT 1910 Oct
    -
    26699  {
    -
    26700  nullptr /*zonePolicy*/,
    -
    26701  "IMT" /*format*/,
    -
    26702  467 /*offsetCode (7016/15)*/,
    -
    26703  11 /*offsetRemainder (7016%15)*/,
    -
    26704  0 /*deltaMinutes*/,
    -
    26705  1910 /*untilYear*/,
    -
    26706  10 /*untilMonth*/,
    -
    26707  1 /*untilDay*/,
    -
    26708  0 /*untilTimeCode (0/15)*/,
    -
    26709  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26710  },
    -
    26711  // 2:00 Turkey EE%sT 1978 Jun 29
    -
    26712  {
    -
    26713  &kZonePolicyTurkey /*zonePolicy*/,
    -
    26714  "EE%T" /*format*/,
    -
    26715  480 /*offsetCode (7200/15)*/,
    -
    26716  0 /*offsetRemainder (7200%15)*/,
    -
    26717  0 /*deltaMinutes*/,
    -
    26718  1978 /*untilYear*/,
    -
    26719  6 /*untilMonth*/,
    -
    26720  29 /*untilDay*/,
    -
    26721  0 /*untilTimeCode (0/15)*/,
    -
    26722  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26723  },
    -
    26724  // 3:00 Turkey %z 1984 Nov 1 2:00
    -
    26725  {
    -
    26726  &kZonePolicyTurkey /*zonePolicy*/,
    -
    26727  "" /*format*/,
    -
    26728  720 /*offsetCode (10800/15)*/,
    -
    26729  0 /*offsetRemainder (10800%15)*/,
    -
    26730  0 /*deltaMinutes*/,
    -
    26731  1984 /*untilYear*/,
    -
    26732  11 /*untilMonth*/,
    -
    26733  1 /*untilDay*/,
    -
    26734  480 /*untilTimeCode (7200/15)*/,
    -
    26735  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26736  },
    -
    26737  // 2:00 Turkey EE%sT 2007
    -
    26738  {
    -
    26739  &kZonePolicyTurkey /*zonePolicy*/,
    -
    26740  "EE%T" /*format*/,
    -
    26741  480 /*offsetCode (7200/15)*/,
    -
    26742  0 /*offsetRemainder (7200%15)*/,
    -
    26743  0 /*deltaMinutes*/,
    -
    26744  2007 /*untilYear*/,
    -
    26745  1 /*untilMonth*/,
    -
    26746  1 /*untilDay*/,
    -
    26747  0 /*untilTimeCode (0/15)*/,
    -
    26748  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26749  },
    -
    26750  // 2:00 EU EE%sT 2011 Mar 27 1:00u
    -
    26751  {
    -
    26752  &kZonePolicyEU /*zonePolicy*/,
    -
    26753  "EE%T" /*format*/,
    -
    26754  480 /*offsetCode (7200/15)*/,
    -
    26755  0 /*offsetRemainder (7200%15)*/,
    -
    26756  0 /*deltaMinutes*/,
    -
    26757  2011 /*untilYear*/,
    -
    26758  3 /*untilMonth*/,
    -
    26759  27 /*untilDay*/,
    -
    26760  240 /*untilTimeCode (3600/15)*/,
    -
    26761  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    26762  },
    -
    26763  // 2:00 - EET 2011 Mar 28 1:00u
    -
    26764  {
    -
    26765  nullptr /*zonePolicy*/,
    -
    26766  "EET" /*format*/,
    -
    26767  480 /*offsetCode (7200/15)*/,
    -
    26768  0 /*offsetRemainder (7200%15)*/,
    -
    26769  0 /*deltaMinutes*/,
    -
    26770  2011 /*untilYear*/,
    -
    26771  3 /*untilMonth*/,
    -
    26772  28 /*untilDay*/,
    -
    26773  240 /*untilTimeCode (3600/15)*/,
    -
    26774  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    26775  },
    -
    26776  // 2:00 EU EE%sT 2014 Mar 30 1:00u
    -
    26777  {
    -
    26778  &kZonePolicyEU /*zonePolicy*/,
    -
    26779  "EE%T" /*format*/,
    -
    26780  480 /*offsetCode (7200/15)*/,
    -
    26781  0 /*offsetRemainder (7200%15)*/,
    -
    26782  0 /*deltaMinutes*/,
    -
    26783  2014 /*untilYear*/,
    -
    26784  3 /*untilMonth*/,
    -
    26785  30 /*untilDay*/,
    -
    26786  240 /*untilTimeCode (3600/15)*/,
    -
    26787  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    26788  },
    -
    26789  // 2:00 - EET 2014 Mar 31 1:00u
    -
    26790  {
    -
    26791  nullptr /*zonePolicy*/,
    -
    26792  "EET" /*format*/,
    -
    26793  480 /*offsetCode (7200/15)*/,
    -
    26794  0 /*offsetRemainder (7200%15)*/,
    -
    26795  0 /*deltaMinutes*/,
    -
    26796  2014 /*untilYear*/,
    -
    26797  3 /*untilMonth*/,
    -
    26798  31 /*untilDay*/,
    -
    26799  240 /*untilTimeCode (3600/15)*/,
    -
    26800  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    26801  },
    -
    26802  // 2:00 EU EE%sT 2015 Oct 25 1:00u
    -
    26803  {
    -
    26804  &kZonePolicyEU /*zonePolicy*/,
    -
    26805  "EE%T" /*format*/,
    -
    26806  480 /*offsetCode (7200/15)*/,
    -
    26807  0 /*offsetRemainder (7200%15)*/,
    -
    26808  0 /*deltaMinutes*/,
    -
    26809  2015 /*untilYear*/,
    -
    26810  10 /*untilMonth*/,
    -
    26811  25 /*untilDay*/,
    -
    26812  240 /*untilTimeCode (3600/15)*/,
    -
    26813  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    26814  },
    -
    26815  // 2:00 1:00 EEST 2015 Nov 8 1:00u
    -
    26816  {
    -
    26817  nullptr /*zonePolicy*/,
    -
    26818  "EEST" /*format*/,
    -
    26819  480 /*offsetCode (7200/15)*/,
    -
    26820  0 /*offsetRemainder (7200%15)*/,
    -
    26821  60 /*deltaMinutes*/,
    -
    26822  2015 /*untilYear*/,
    -
    26823  11 /*untilMonth*/,
    -
    26824  8 /*untilDay*/,
    -
    26825  240 /*untilTimeCode (3600/15)*/,
    -
    26826  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    26827  },
    -
    26828  // 2:00 EU EE%sT 2016 Sep 7
    -
    26829  {
    -
    26830  &kZonePolicyEU /*zonePolicy*/,
    -
    26831  "EE%T" /*format*/,
    -
    26832  480 /*offsetCode (7200/15)*/,
    -
    26833  0 /*offsetRemainder (7200%15)*/,
    -
    26834  0 /*deltaMinutes*/,
    -
    26835  2016 /*untilYear*/,
    -
    26836  9 /*untilMonth*/,
    -
    26837  7 /*untilDay*/,
    -
    26838  0 /*untilTimeCode (0/15)*/,
    -
    26839  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26840  },
    -
    26841  // 3:00 - %z
    -
    26842  {
    -
    26843  nullptr /*zonePolicy*/,
    -
    26844  "" /*format*/,
    -
    26845  720 /*offsetCode (10800/15)*/,
    -
    26846  0 /*offsetRemainder (10800%15)*/,
    -
    26847  0 /*deltaMinutes*/,
    -
    26848  32767 /*untilYear*/,
    -
    26849  1 /*untilMonth*/,
    -
    26850  1 /*untilDay*/,
    -
    26851  0 /*untilTimeCode (0/15)*/,
    -
    26852  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26853  },
    -
    26854 
    -
    26855 };
    -
    26856 
    -
    26857 static const char kZoneNameEurope_Istanbul[] ACE_TIME_PROGMEM = "\x0b" "Istanbul";
    -
    26858 
    -
    26859 const complete::Info::ZoneInfo kZoneEurope_Istanbul ACE_TIME_PROGMEM = {
    -
    26860  kZoneNameEurope_Istanbul /*name*/,
    -
    26861  0x9e09d6e6 /*zoneId*/,
    -
    26862  &kZoneContext /*zoneContext*/,
    -
    26863  13 /*numEras*/,
    -
    26864  kZoneEraEurope_Istanbul /*eras*/,
    -
    26865  nullptr /*targetInfo*/,
    -
    26866 };
    -
    26867 
    -
    26868 //---------------------------------------------------------------------------
    -
    26869 // Zone name: Europe/Kaliningrad
    -
    26870 // Eras: 7
    -
    26871 //---------------------------------------------------------------------------
    -
    26872 
    -
    26873 static const complete::Info::ZoneEra kZoneEraEurope_Kaliningrad[] ACE_TIME_PROGMEM = {
    -
    26874  // 1:22:00 - LMT 1893 Apr
    -
    26875  {
    -
    26876  nullptr /*zonePolicy*/,
    -
    26877  "LMT" /*format*/,
    -
    26878  328 /*offsetCode (4920/15)*/,
    -
    26879  0 /*offsetRemainder (4920%15)*/,
    -
    26880  0 /*deltaMinutes*/,
    -
    26881  1893 /*untilYear*/,
    -
    26882  4 /*untilMonth*/,
    -
    26883  1 /*untilDay*/,
    -
    26884  0 /*untilTimeCode (0/15)*/,
    -
    26885  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26886  },
    -
    26887  // 1:00 C-Eur CE%sT 1945 Apr 10
    -
    26888  {
    -
    26889  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    26890  "CE%T" /*format*/,
    -
    26891  240 /*offsetCode (3600/15)*/,
    -
    26892  0 /*offsetRemainder (3600%15)*/,
    -
    26893  0 /*deltaMinutes*/,
    -
    26894  1945 /*untilYear*/,
    -
    26895  4 /*untilMonth*/,
    -
    26896  10 /*untilDay*/,
    -
    26897  0 /*untilTimeCode (0/15)*/,
    -
    26898  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26899  },
    -
    26900  // 2:00 Poland EE%sT 1946 Apr 7
    -
    26901  {
    -
    26902  &kZonePolicyPoland /*zonePolicy*/,
    -
    26903  "EE%T" /*format*/,
    -
    26904  480 /*offsetCode (7200/15)*/,
    -
    26905  0 /*offsetRemainder (7200%15)*/,
    -
    26906  0 /*deltaMinutes*/,
    -
    26907  1946 /*untilYear*/,
    -
    26908  4 /*untilMonth*/,
    -
    26909  7 /*untilDay*/,
    -
    26910  0 /*untilTimeCode (0/15)*/,
    -
    26911  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26912  },
    -
    26913  // 3:00 Russia MSK/MSD 1989 Mar 26 2:00s
    -
    26914  {
    -
    26915  &kZonePolicyRussia /*zonePolicy*/,
    -
    26916  "MSK/MSD" /*format*/,
    -
    26917  720 /*offsetCode (10800/15)*/,
    -
    26918  0 /*offsetRemainder (10800%15)*/,
    -
    26919  0 /*deltaMinutes*/,
    -
    26920  1989 /*untilYear*/,
    -
    26921  3 /*untilMonth*/,
    -
    26922  26 /*untilDay*/,
    -
    26923  480 /*untilTimeCode (7200/15)*/,
    -
    26924  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26925  },
    -
    26926  // 2:00 Russia EE%sT 2011 Mar 27 2:00s
    -
    26927  {
    -
    26928  &kZonePolicyRussia /*zonePolicy*/,
    -
    26929  "EE%T" /*format*/,
    -
    26930  480 /*offsetCode (7200/15)*/,
    -
    26931  0 /*offsetRemainder (7200%15)*/,
    -
    26932  0 /*deltaMinutes*/,
    -
    26933  2011 /*untilYear*/,
    -
    26934  3 /*untilMonth*/,
    -
    26935  27 /*untilDay*/,
    -
    26936  480 /*untilTimeCode (7200/15)*/,
    -
    26937  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26938  },
    -
    26939  // 3:00 - %z 2014 Oct 26 2:00s
    -
    26940  {
    -
    26941  nullptr /*zonePolicy*/,
    -
    26942  "" /*format*/,
    -
    26943  720 /*offsetCode (10800/15)*/,
    -
    26944  0 /*offsetRemainder (10800%15)*/,
    -
    26945  0 /*deltaMinutes*/,
    -
    26946  2014 /*untilYear*/,
    -
    26947  10 /*untilMonth*/,
    -
    26948  26 /*untilDay*/,
    -
    26949  480 /*untilTimeCode (7200/15)*/,
    -
    26950  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26951  },
    -
    26952  // 2:00 - EET
    -
    26953  {
    -
    26954  nullptr /*zonePolicy*/,
    -
    26955  "EET" /*format*/,
    -
    26956  480 /*offsetCode (7200/15)*/,
    -
    26957  0 /*offsetRemainder (7200%15)*/,
    -
    26958  0 /*deltaMinutes*/,
    -
    26959  32767 /*untilYear*/,
    -
    26960  1 /*untilMonth*/,
    -
    26961  1 /*untilDay*/,
    -
    26962  0 /*untilTimeCode (0/15)*/,
    -
    26963  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26964  },
    -
    26965 
    -
    26966 };
    -
    26967 
    -
    26968 static const char kZoneNameEurope_Kaliningrad[] ACE_TIME_PROGMEM = "\x0b" "Kaliningrad";
    -
    26969 
    -
    26970 const complete::Info::ZoneInfo kZoneEurope_Kaliningrad ACE_TIME_PROGMEM = {
    -
    26971  kZoneNameEurope_Kaliningrad /*name*/,
    -
    26972  0xd33b2f28 /*zoneId*/,
    -
    26973  &kZoneContext /*zoneContext*/,
    -
    26974  7 /*numEras*/,
    -
    26975  kZoneEraEurope_Kaliningrad /*eras*/,
    -
    26976  nullptr /*targetInfo*/,
    -
    26977 };
    -
    26978 
    -
    26979 //---------------------------------------------------------------------------
    -
    26980 // Zone name: Europe/Kirov
    -
    26981 // Eras: 8
    -
    26982 //---------------------------------------------------------------------------
    -
    26983 
    -
    26984 static const complete::Info::ZoneEra kZoneEraEurope_Kirov[] ACE_TIME_PROGMEM = {
    -
    26985  // 3:18:48 - LMT 1919 Jul 1 0:00u
    -
    26986  {
    -
    26987  nullptr /*zonePolicy*/,
    -
    26988  "LMT" /*format*/,
    -
    26989  795 /*offsetCode (11928/15)*/,
    -
    26990  3 /*offsetRemainder (11928%15)*/,
    -
    26991  0 /*deltaMinutes*/,
    -
    26992  1919 /*untilYear*/,
    -
    26993  7 /*untilMonth*/,
    -
    26994  1 /*untilDay*/,
    -
    26995  0 /*untilTimeCode (0/15)*/,
    -
    26996  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    26997  },
    -
    26998  // 3:00 - %z 1930 Jun 21
    -
    26999  {
    -
    27000  nullptr /*zonePolicy*/,
    -
    27001  "" /*format*/,
    -
    27002  720 /*offsetCode (10800/15)*/,
    -
    27003  0 /*offsetRemainder (10800%15)*/,
    -
    27004  0 /*deltaMinutes*/,
    -
    27005  1930 /*untilYear*/,
    -
    27006  6 /*untilMonth*/,
    -
    27007  21 /*untilDay*/,
    -
    27008  0 /*untilTimeCode (0/15)*/,
    -
    27009  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27010  },
    -
    27011  // 4:00 Russia %z 1989 Mar 26 2:00s
    -
    27012  {
    -
    27013  &kZonePolicyRussia /*zonePolicy*/,
    -
    27014  "" /*format*/,
    -
    27015  960 /*offsetCode (14400/15)*/,
    -
    27016  0 /*offsetRemainder (14400%15)*/,
    -
    27017  0 /*deltaMinutes*/,
    -
    27018  1989 /*untilYear*/,
    -
    27019  3 /*untilMonth*/,
    -
    27020  26 /*untilDay*/,
    -
    27021  480 /*untilTimeCode (7200/15)*/,
    -
    27022  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27023  },
    -
    27024  // 3:00 Russia MSK/MSD 1991 Mar 31 2:00s
    -
    27025  {
    -
    27026  &kZonePolicyRussia /*zonePolicy*/,
    -
    27027  "MSK/MSD" /*format*/,
    -
    27028  720 /*offsetCode (10800/15)*/,
    -
    27029  0 /*offsetRemainder (10800%15)*/,
    -
    27030  0 /*deltaMinutes*/,
    -
    27031  1991 /*untilYear*/,
    -
    27032  3 /*untilMonth*/,
    -
    27033  31 /*untilDay*/,
    -
    27034  480 /*untilTimeCode (7200/15)*/,
    -
    27035  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27036  },
    -
    27037  // 4:00 - %z 1992 Mar 29 2:00s
    -
    27038  {
    -
    27039  nullptr /*zonePolicy*/,
    -
    27040  "" /*format*/,
    -
    27041  960 /*offsetCode (14400/15)*/,
    -
    27042  0 /*offsetRemainder (14400%15)*/,
    -
    27043  0 /*deltaMinutes*/,
    -
    27044  1992 /*untilYear*/,
    -
    27045  3 /*untilMonth*/,
    -
    27046  29 /*untilDay*/,
    -
    27047  480 /*untilTimeCode (7200/15)*/,
    -
    27048  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27049  },
    -
    27050  // 3:00 Russia MSK/MSD 2011 Mar 27 2:00s
    -
    27051  {
    -
    27052  &kZonePolicyRussia /*zonePolicy*/,
    -
    27053  "MSK/MSD" /*format*/,
    -
    27054  720 /*offsetCode (10800/15)*/,
    -
    27055  0 /*offsetRemainder (10800%15)*/,
    -
    27056  0 /*deltaMinutes*/,
    -
    27057  2011 /*untilYear*/,
    -
    27058  3 /*untilMonth*/,
    -
    27059  27 /*untilDay*/,
    -
    27060  480 /*untilTimeCode (7200/15)*/,
    -
    27061  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27062  },
    -
    27063  // 4:00 - MSK 2014 Oct 26 2:00s
    -
    27064  {
    -
    27065  nullptr /*zonePolicy*/,
    -
    27066  "MSK" /*format*/,
    -
    27067  960 /*offsetCode (14400/15)*/,
    -
    27068  0 /*offsetRemainder (14400%15)*/,
    -
    27069  0 /*deltaMinutes*/,
    -
    27070  2014 /*untilYear*/,
    -
    27071  10 /*untilMonth*/,
    -
    27072  26 /*untilDay*/,
    -
    27073  480 /*untilTimeCode (7200/15)*/,
    -
    27074  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27075  },
    -
    27076  // 3:00 - MSK
    -
    27077  {
    -
    27078  nullptr /*zonePolicy*/,
    -
    27079  "MSK" /*format*/,
    -
    27080  720 /*offsetCode (10800/15)*/,
    -
    27081  0 /*offsetRemainder (10800%15)*/,
    -
    27082  0 /*deltaMinutes*/,
    -
    27083  32767 /*untilYear*/,
    -
    27084  1 /*untilMonth*/,
    -
    27085  1 /*untilDay*/,
    -
    27086  0 /*untilTimeCode (0/15)*/,
    -
    27087  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27088  },
    -
    27089 
    -
    27090 };
    -
    27091 
    -
    27092 static const char kZoneNameEurope_Kirov[] ACE_TIME_PROGMEM = "\x0b" "Kirov";
    -
    27093 
    -
    27094 const complete::Info::ZoneInfo kZoneEurope_Kirov ACE_TIME_PROGMEM = {
    -
    27095  kZoneNameEurope_Kirov /*name*/,
    -
    27096  0xfaf5abef /*zoneId*/,
    -
    27097  &kZoneContext /*zoneContext*/,
    -
    27098  8 /*numEras*/,
    -
    27099  kZoneEraEurope_Kirov /*eras*/,
    -
    27100  nullptr /*targetInfo*/,
    -
    27101 };
    -
    27102 
    -
    27103 //---------------------------------------------------------------------------
    -
    27104 // Zone name: Europe/Kyiv
    -
    27105 // Eras: 9
    -
    27106 //---------------------------------------------------------------------------
    -
    27107 
    -
    27108 static const complete::Info::ZoneEra kZoneEraEurope_Kyiv[] ACE_TIME_PROGMEM = {
    -
    27109  // 2:02:04 - LMT 1880
    -
    27110  {
    -
    27111  nullptr /*zonePolicy*/,
    -
    27112  "LMT" /*format*/,
    -
    27113  488 /*offsetCode (7324/15)*/,
    -
    27114  4 /*offsetRemainder (7324%15)*/,
    -
    27115  0 /*deltaMinutes*/,
    -
    27116  1880 /*untilYear*/,
    -
    27117  1 /*untilMonth*/,
    -
    27118  1 /*untilDay*/,
    -
    27119  0 /*untilTimeCode (0/15)*/,
    -
    27120  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27121  },
    -
    27122  // 2:02:04 - KMT 1924 May 2
    -
    27123  {
    -
    27124  nullptr /*zonePolicy*/,
    -
    27125  "KMT" /*format*/,
    -
    27126  488 /*offsetCode (7324/15)*/,
    -
    27127  4 /*offsetRemainder (7324%15)*/,
    -
    27128  0 /*deltaMinutes*/,
    -
    27129  1924 /*untilYear*/,
    -
    27130  5 /*untilMonth*/,
    -
    27131  2 /*untilDay*/,
    -
    27132  0 /*untilTimeCode (0/15)*/,
    -
    27133  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27134  },
    -
    27135  // 2:00 - EET 1930 Jun 21
    -
    27136  {
    -
    27137  nullptr /*zonePolicy*/,
    -
    27138  "EET" /*format*/,
    -
    27139  480 /*offsetCode (7200/15)*/,
    -
    27140  0 /*offsetRemainder (7200%15)*/,
    -
    27141  0 /*deltaMinutes*/,
    -
    27142  1930 /*untilYear*/,
    -
    27143  6 /*untilMonth*/,
    -
    27144  21 /*untilDay*/,
    -
    27145  0 /*untilTimeCode (0/15)*/,
    -
    27146  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27147  },
    -
    27148  // 3:00 - MSK 1941 Sep 20
    -
    27149  {
    -
    27150  nullptr /*zonePolicy*/,
    -
    27151  "MSK" /*format*/,
    -
    27152  720 /*offsetCode (10800/15)*/,
    -
    27153  0 /*offsetRemainder (10800%15)*/,
    -
    27154  0 /*deltaMinutes*/,
    -
    27155  1941 /*untilYear*/,
    -
    27156  9 /*untilMonth*/,
    -
    27157  20 /*untilDay*/,
    -
    27158  0 /*untilTimeCode (0/15)*/,
    -
    27159  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27160  },
    -
    27161  // 1:00 C-Eur CE%sT 1943 Nov 6
    -
    27162  {
    -
    27163  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    27164  "CE%T" /*format*/,
    -
    27165  240 /*offsetCode (3600/15)*/,
    -
    27166  0 /*offsetRemainder (3600%15)*/,
    -
    27167  0 /*deltaMinutes*/,
    -
    27168  1943 /*untilYear*/,
    -
    27169  11 /*untilMonth*/,
    -
    27170  6 /*untilDay*/,
    -
    27171  0 /*untilTimeCode (0/15)*/,
    -
    27172  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27173  },
    -
    27174  // 3:00 Russia MSK/MSD 1990 Jul 1 2:00
    -
    27175  {
    -
    27176  &kZonePolicyRussia /*zonePolicy*/,
    -
    27177  "MSK/MSD" /*format*/,
    -
    27178  720 /*offsetCode (10800/15)*/,
    -
    27179  0 /*offsetRemainder (10800%15)*/,
    -
    27180  0 /*deltaMinutes*/,
    -
    27181  1990 /*untilYear*/,
    -
    27182  7 /*untilMonth*/,
    -
    27183  1 /*untilDay*/,
    -
    27184  480 /*untilTimeCode (7200/15)*/,
    -
    27185  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27186  },
    -
    27187  // 2:00 1:00 EEST 1991 Sep 29 3:00
    -
    27188  {
    -
    27189  nullptr /*zonePolicy*/,
    -
    27190  "EEST" /*format*/,
    -
    27191  480 /*offsetCode (7200/15)*/,
    -
    27192  0 /*offsetRemainder (7200%15)*/,
    -
    27193  60 /*deltaMinutes*/,
    -
    27194  1991 /*untilYear*/,
    -
    27195  9 /*untilMonth*/,
    -
    27196  29 /*untilDay*/,
    -
    27197  720 /*untilTimeCode (10800/15)*/,
    -
    27198  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27199  },
    -
    27200  // 2:00 C-Eur EE%sT 1996 May 13
    -
    27201  {
    -
    27202  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    27203  "EE%T" /*format*/,
    -
    27204  480 /*offsetCode (7200/15)*/,
    -
    27205  0 /*offsetRemainder (7200%15)*/,
    -
    27206  0 /*deltaMinutes*/,
    -
    27207  1996 /*untilYear*/,
    -
    27208  5 /*untilMonth*/,
    -
    27209  13 /*untilDay*/,
    -
    27210  0 /*untilTimeCode (0/15)*/,
    -
    27211  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27212  },
    -
    27213  // 2:00 EU EE%sT
    -
    27214  {
    -
    27215  &kZonePolicyEU /*zonePolicy*/,
    -
    27216  "EE%T" /*format*/,
    -
    27217  480 /*offsetCode (7200/15)*/,
    -
    27218  0 /*offsetRemainder (7200%15)*/,
    -
    27219  0 /*deltaMinutes*/,
    -
    27220  32767 /*untilYear*/,
    -
    27221  1 /*untilMonth*/,
    -
    27222  1 /*untilDay*/,
    -
    27223  0 /*untilTimeCode (0/15)*/,
    -
    27224  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27225  },
    -
    27226 
    -
    27227 };
    -
    27228 
    -
    27229 static const char kZoneNameEurope_Kyiv[] ACE_TIME_PROGMEM = "\x0b" "Kyiv";
    -
    27230 
    -
    27231 const complete::Info::ZoneInfo kZoneEurope_Kyiv ACE_TIME_PROGMEM = {
    -
    27232  kZoneNameEurope_Kyiv /*name*/,
    -
    27233  0xa2c1e347 /*zoneId*/,
    -
    27234  &kZoneContext /*zoneContext*/,
    -
    27235  9 /*numEras*/,
    -
    27236  kZoneEraEurope_Kyiv /*eras*/,
    -
    27237  nullptr /*targetInfo*/,
    -
    27238 };
    -
    27239 
    -
    27240 //---------------------------------------------------------------------------
    -
    27241 // Zone name: Europe/Lisbon
    -
    27242 // Eras: 8
    -
    27243 //---------------------------------------------------------------------------
    -
    27244 
    -
    27245 static const complete::Info::ZoneEra kZoneEraEurope_Lisbon[] ACE_TIME_PROGMEM = {
    -
    27246  // -0:36:45 - LMT 1884
    -
    27247  {
    -
    27248  nullptr /*zonePolicy*/,
    -
    27249  "LMT" /*format*/,
    -
    27250  -147 /*offsetCode (-2205/15)*/,
    -
    27251  0 /*offsetRemainder (-2205%15)*/,
    -
    27252  0 /*deltaMinutes*/,
    -
    27253  1884 /*untilYear*/,
    -
    27254  1 /*untilMonth*/,
    -
    27255  1 /*untilDay*/,
    -
    27256  0 /*untilTimeCode (0/15)*/,
    -
    27257  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27258  },
    -
    27259  // -0:36:45 - LMT 1912 Jan 1 0:00u
    -
    27260  {
    -
    27261  nullptr /*zonePolicy*/,
    -
    27262  "LMT" /*format*/,
    -
    27263  -147 /*offsetCode (-2205/15)*/,
    -
    27264  0 /*offsetRemainder (-2205%15)*/,
    -
    27265  0 /*deltaMinutes*/,
    -
    27266  1912 /*untilYear*/,
    -
    27267  1 /*untilMonth*/,
    -
    27268  1 /*untilDay*/,
    -
    27269  0 /*untilTimeCode (0/15)*/,
    -
    27270  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27271  },
    -
    27272  // 0:00 Port WE%sT 1966 Oct 2 2:00s
    -
    27273  {
    -
    27274  &kZonePolicyPort /*zonePolicy*/,
    -
    27275  "WE%T" /*format*/,
    -
    27276  0 /*offsetCode (0/15)*/,
    -
    27277  0 /*offsetRemainder (0%15)*/,
    -
    27278  0 /*deltaMinutes*/,
    -
    27279  1966 /*untilYear*/,
    -
    27280  10 /*untilMonth*/,
    -
    27281  2 /*untilDay*/,
    -
    27282  480 /*untilTimeCode (7200/15)*/,
    -
    27283  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27284  },
    -
    27285  // 1:00 - CET 1976 Sep 26 1:00
    -
    27286  {
    -
    27287  nullptr /*zonePolicy*/,
    -
    27288  "CET" /*format*/,
    -
    27289  240 /*offsetCode (3600/15)*/,
    -
    27290  0 /*offsetRemainder (3600%15)*/,
    -
    27291  0 /*deltaMinutes*/,
    -
    27292  1976 /*untilYear*/,
    -
    27293  9 /*untilMonth*/,
    -
    27294  26 /*untilDay*/,
    -
    27295  240 /*untilTimeCode (3600/15)*/,
    -
    27296  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27297  },
    -
    27298  // 0:00 Port WE%sT 1986
    -
    27299  {
    -
    27300  &kZonePolicyPort /*zonePolicy*/,
    -
    27301  "WE%T" /*format*/,
    -
    27302  0 /*offsetCode (0/15)*/,
    -
    27303  0 /*offsetRemainder (0%15)*/,
    -
    27304  0 /*deltaMinutes*/,
    -
    27305  1986 /*untilYear*/,
    -
    27306  1 /*untilMonth*/,
    -
    27307  1 /*untilDay*/,
    -
    27308  0 /*untilTimeCode (0/15)*/,
    -
    27309  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27310  },
    -
    27311  // 0:00 EU WE%sT 1992 Sep 27 1:00u
    -
    27312  {
    -
    27313  &kZonePolicyEU /*zonePolicy*/,
    -
    27314  "WE%T" /*format*/,
    -
    27315  0 /*offsetCode (0/15)*/,
    -
    27316  0 /*offsetRemainder (0%15)*/,
    -
    27317  0 /*deltaMinutes*/,
    -
    27318  1992 /*untilYear*/,
    -
    27319  9 /*untilMonth*/,
    -
    27320  27 /*untilDay*/,
    -
    27321  240 /*untilTimeCode (3600/15)*/,
    -
    27322  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27323  },
    -
    27324  // 1:00 EU CE%sT 1996 Mar 31 1:00u
    -
    27325  {
    -
    27326  &kZonePolicyEU /*zonePolicy*/,
    -
    27327  "CE%T" /*format*/,
    -
    27328  240 /*offsetCode (3600/15)*/,
    -
    27329  0 /*offsetRemainder (3600%15)*/,
    -
    27330  0 /*deltaMinutes*/,
    -
    27331  1996 /*untilYear*/,
    -
    27332  3 /*untilMonth*/,
    -
    27333  31 /*untilDay*/,
    -
    27334  240 /*untilTimeCode (3600/15)*/,
    -
    27335  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27336  },
    -
    27337  // 0:00 EU WE%sT
    -
    27338  {
    -
    27339  &kZonePolicyEU /*zonePolicy*/,
    -
    27340  "WE%T" /*format*/,
    -
    27341  0 /*offsetCode (0/15)*/,
    -
    27342  0 /*offsetRemainder (0%15)*/,
    -
    27343  0 /*deltaMinutes*/,
    -
    27344  32767 /*untilYear*/,
    -
    27345  1 /*untilMonth*/,
    -
    27346  1 /*untilDay*/,
    -
    27347  0 /*untilTimeCode (0/15)*/,
    -
    27348  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27349  },
    -
    27350 
    -
    27351 };
    -
    27352 
    -
    27353 static const char kZoneNameEurope_Lisbon[] ACE_TIME_PROGMEM = "\x0b" "Lisbon";
    -
    27354 
    -
    27355 const complete::Info::ZoneInfo kZoneEurope_Lisbon ACE_TIME_PROGMEM = {
    -
    27356  kZoneNameEurope_Lisbon /*name*/,
    -
    27357  0x5c00a70b /*zoneId*/,
    -
    27358  &kZoneContext /*zoneContext*/,
    -
    27359  8 /*numEras*/,
    -
    27360  kZoneEraEurope_Lisbon /*eras*/,
    -
    27361  nullptr /*targetInfo*/,
    -
    27362 };
    -
    27363 
    -
    27364 //---------------------------------------------------------------------------
    -
    27365 // Zone name: Europe/London
    -
    27366 // Eras: 5
    -
    27367 //---------------------------------------------------------------------------
    -
    27368 
    -
    27369 static const complete::Info::ZoneEra kZoneEraEurope_London[] ACE_TIME_PROGMEM = {
    -
    27370  // -0:01:15 - LMT 1847 Dec 1
    -
    27371  {
    -
    27372  nullptr /*zonePolicy*/,
    -
    27373  "LMT" /*format*/,
    -
    27374  -5 /*offsetCode (-75/15)*/,
    -
    27375  0 /*offsetRemainder (-75%15)*/,
    -
    27376  0 /*deltaMinutes*/,
    -
    27377  1847 /*untilYear*/,
    -
    27378  12 /*untilMonth*/,
    -
    27379  1 /*untilDay*/,
    -
    27380  0 /*untilTimeCode (0/15)*/,
    -
    27381  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27382  },
    -
    27383  // 0:00 GB-Eire %s 1968 Oct 27
    -
    27384  {
    -
    27385  &kZonePolicyGB_Eire /*zonePolicy*/,
    -
    27386  "%" /*format*/,
    -
    27387  0 /*offsetCode (0/15)*/,
    -
    27388  0 /*offsetRemainder (0%15)*/,
    -
    27389  0 /*deltaMinutes*/,
    -
    27390  1968 /*untilYear*/,
    -
    27391  10 /*untilMonth*/,
    -
    27392  27 /*untilDay*/,
    -
    27393  0 /*untilTimeCode (0/15)*/,
    -
    27394  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27395  },
    -
    27396  // 1:00 - BST 1971 Oct 31 2:00u
    -
    27397  {
    -
    27398  nullptr /*zonePolicy*/,
    -
    27399  "BST" /*format*/,
    -
    27400  240 /*offsetCode (3600/15)*/,
    -
    27401  0 /*offsetRemainder (3600%15)*/,
    -
    27402  0 /*deltaMinutes*/,
    -
    27403  1971 /*untilYear*/,
    -
    27404  10 /*untilMonth*/,
    -
    27405  31 /*untilDay*/,
    -
    27406  480 /*untilTimeCode (7200/15)*/,
    -
    27407  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27408  },
    -
    27409  // 0:00 GB-Eire %s 1996
    -
    27410  {
    -
    27411  &kZonePolicyGB_Eire /*zonePolicy*/,
    -
    27412  "%" /*format*/,
    -
    27413  0 /*offsetCode (0/15)*/,
    -
    27414  0 /*offsetRemainder (0%15)*/,
    -
    27415  0 /*deltaMinutes*/,
    -
    27416  1996 /*untilYear*/,
    -
    27417  1 /*untilMonth*/,
    -
    27418  1 /*untilDay*/,
    -
    27419  0 /*untilTimeCode (0/15)*/,
    -
    27420  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27421  },
    -
    27422  // 0:00 EU GMT/BST
    -
    27423  {
    -
    27424  &kZonePolicyEU /*zonePolicy*/,
    -
    27425  "GMT/BST" /*format*/,
    -
    27426  0 /*offsetCode (0/15)*/,
    -
    27427  0 /*offsetRemainder (0%15)*/,
    -
    27428  0 /*deltaMinutes*/,
    -
    27429  32767 /*untilYear*/,
    -
    27430  1 /*untilMonth*/,
    -
    27431  1 /*untilDay*/,
    -
    27432  0 /*untilTimeCode (0/15)*/,
    -
    27433  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27434  },
    -
    27435 
    -
    27436 };
    -
    27437 
    -
    27438 static const char kZoneNameEurope_London[] ACE_TIME_PROGMEM = "\x0b" "London";
    -
    27439 
    -
    27440 const complete::Info::ZoneInfo kZoneEurope_London ACE_TIME_PROGMEM = {
    -
    27441  kZoneNameEurope_London /*name*/,
    -
    27442  0x5c6a84ae /*zoneId*/,
    -
    27443  &kZoneContext /*zoneContext*/,
    -
    27444  5 /*numEras*/,
    -
    27445  kZoneEraEurope_London /*eras*/,
    -
    27446  nullptr /*targetInfo*/,
    -
    27447 };
    -
    27448 
    -
    27449 //---------------------------------------------------------------------------
    -
    27450 // Zone name: Europe/Madrid
    -
    27451 // Eras: 4
    -
    27452 //---------------------------------------------------------------------------
    -
    27453 
    -
    27454 static const complete::Info::ZoneEra kZoneEraEurope_Madrid[] ACE_TIME_PROGMEM = {
    -
    27455  // -0:14:44 - LMT 1901 Jan 1 0:00u
    -
    27456  {
    -
    27457  nullptr /*zonePolicy*/,
    -
    27458  "LMT" /*format*/,
    -
    27459  -59 /*offsetCode (-884/15)*/,
    -
    27460  1 /*offsetRemainder (-884%15)*/,
    -
    27461  0 /*deltaMinutes*/,
    -
    27462  1901 /*untilYear*/,
    -
    27463  1 /*untilMonth*/,
    -
    27464  1 /*untilDay*/,
    -
    27465  0 /*untilTimeCode (0/15)*/,
    -
    27466  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27467  },
    -
    27468  // 0:00 Spain WE%sT 1940 Mar 16 23:00
    -
    27469  {
    -
    27470  &kZonePolicySpain /*zonePolicy*/,
    -
    27471  "WE%T" /*format*/,
    -
    27472  0 /*offsetCode (0/15)*/,
    -
    27473  0 /*offsetRemainder (0%15)*/,
    -
    27474  0 /*deltaMinutes*/,
    -
    27475  1940 /*untilYear*/,
    -
    27476  3 /*untilMonth*/,
    -
    27477  16 /*untilDay*/,
    -
    27478  5520 /*untilTimeCode (82800/15)*/,
    -
    27479  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27480  },
    -
    27481  // 1:00 Spain CE%sT 1979
    -
    27482  {
    -
    27483  &kZonePolicySpain /*zonePolicy*/,
    -
    27484  "CE%T" /*format*/,
    -
    27485  240 /*offsetCode (3600/15)*/,
    -
    27486  0 /*offsetRemainder (3600%15)*/,
    -
    27487  0 /*deltaMinutes*/,
    -
    27488  1979 /*untilYear*/,
    -
    27489  1 /*untilMonth*/,
    -
    27490  1 /*untilDay*/,
    -
    27491  0 /*untilTimeCode (0/15)*/,
    -
    27492  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27493  },
    -
    27494  // 1:00 EU CE%sT
    -
    27495  {
    -
    27496  &kZonePolicyEU /*zonePolicy*/,
    -
    27497  "CE%T" /*format*/,
    -
    27498  240 /*offsetCode (3600/15)*/,
    -
    27499  0 /*offsetRemainder (3600%15)*/,
    -
    27500  0 /*deltaMinutes*/,
    -
    27501  32767 /*untilYear*/,
    -
    27502  1 /*untilMonth*/,
    -
    27503  1 /*untilDay*/,
    -
    27504  0 /*untilTimeCode (0/15)*/,
    -
    27505  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27506  },
    -
    27507 
    -
    27508 };
    -
    27509 
    -
    27510 static const char kZoneNameEurope_Madrid[] ACE_TIME_PROGMEM = "\x0b" "Madrid";
    -
    27511 
    -
    27512 const complete::Info::ZoneInfo kZoneEurope_Madrid ACE_TIME_PROGMEM = {
    -
    27513  kZoneNameEurope_Madrid /*name*/,
    -
    27514  0x5dbd1535 /*zoneId*/,
    -
    27515  &kZoneContext /*zoneContext*/,
    -
    27516  4 /*numEras*/,
    -
    27517  kZoneEraEurope_Madrid /*eras*/,
    -
    27518  nullptr /*targetInfo*/,
    -
    27519 };
    -
    27520 
    -
    27521 //---------------------------------------------------------------------------
    -
    27522 // Zone name: Europe/Malta
    -
    27523 // Eras: 4
    -
    27524 //---------------------------------------------------------------------------
    -
    27525 
    -
    27526 static const complete::Info::ZoneEra kZoneEraEurope_Malta[] ACE_TIME_PROGMEM = {
    -
    27527  // 0:58:04 - LMT 1893 Nov 2
    -
    27528  {
    -
    27529  nullptr /*zonePolicy*/,
    -
    27530  "LMT" /*format*/,
    -
    27531  232 /*offsetCode (3484/15)*/,
    -
    27532  4 /*offsetRemainder (3484%15)*/,
    -
    27533  0 /*deltaMinutes*/,
    -
    27534  1893 /*untilYear*/,
    -
    27535  11 /*untilMonth*/,
    -
    27536  2 /*untilDay*/,
    -
    27537  0 /*untilTimeCode (0/15)*/,
    -
    27538  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27539  },
    -
    27540  // 1:00 Italy CE%sT 1973 Mar 31
    -
    27541  {
    -
    27542  &kZonePolicyItaly /*zonePolicy*/,
    -
    27543  "CE%T" /*format*/,
    -
    27544  240 /*offsetCode (3600/15)*/,
    -
    27545  0 /*offsetRemainder (3600%15)*/,
    -
    27546  0 /*deltaMinutes*/,
    -
    27547  1973 /*untilYear*/,
    -
    27548  3 /*untilMonth*/,
    -
    27549  31 /*untilDay*/,
    -
    27550  0 /*untilTimeCode (0/15)*/,
    -
    27551  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27552  },
    -
    27553  // 1:00 Malta CE%sT 1981
    -
    27554  {
    -
    27555  &kZonePolicyMalta /*zonePolicy*/,
    -
    27556  "CE%T" /*format*/,
    -
    27557  240 /*offsetCode (3600/15)*/,
    -
    27558  0 /*offsetRemainder (3600%15)*/,
    -
    27559  0 /*deltaMinutes*/,
    -
    27560  1981 /*untilYear*/,
    -
    27561  1 /*untilMonth*/,
    -
    27562  1 /*untilDay*/,
    -
    27563  0 /*untilTimeCode (0/15)*/,
    -
    27564  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27565  },
    -
    27566  // 1:00 EU CE%sT
    -
    27567  {
    -
    27568  &kZonePolicyEU /*zonePolicy*/,
    -
    27569  "CE%T" /*format*/,
    -
    27570  240 /*offsetCode (3600/15)*/,
    -
    27571  0 /*offsetRemainder (3600%15)*/,
    -
    27572  0 /*deltaMinutes*/,
    -
    27573  32767 /*untilYear*/,
    -
    27574  1 /*untilMonth*/,
    -
    27575  1 /*untilDay*/,
    -
    27576  0 /*untilTimeCode (0/15)*/,
    -
    27577  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27578  },
    -
    27579 
    -
    27580 };
    -
    27581 
    -
    27582 static const char kZoneNameEurope_Malta[] ACE_TIME_PROGMEM = "\x0b" "Malta";
    -
    27583 
    -
    27584 const complete::Info::ZoneInfo kZoneEurope_Malta ACE_TIME_PROGMEM = {
    -
    27585  kZoneNameEurope_Malta /*name*/,
    -
    27586  0xfb1560f3 /*zoneId*/,
    -
    27587  &kZoneContext /*zoneContext*/,
    -
    27588  4 /*numEras*/,
    -
    27589  kZoneEraEurope_Malta /*eras*/,
    -
    27590  nullptr /*targetInfo*/,
    -
    27591 };
    -
    27592 
    -
    27593 //---------------------------------------------------------------------------
    -
    27594 // Zone name: Europe/Minsk
    -
    27595 // Eras: 9
    -
    27596 //---------------------------------------------------------------------------
    -
    27597 
    -
    27598 static const complete::Info::ZoneEra kZoneEraEurope_Minsk[] ACE_TIME_PROGMEM = {
    -
    27599  // 1:50:16 - LMT 1880
    -
    27600  {
    -
    27601  nullptr /*zonePolicy*/,
    -
    27602  "LMT" /*format*/,
    -
    27603  441 /*offsetCode (6616/15)*/,
    -
    27604  1 /*offsetRemainder (6616%15)*/,
    -
    27605  0 /*deltaMinutes*/,
    -
    27606  1880 /*untilYear*/,
    -
    27607  1 /*untilMonth*/,
    -
    27608  1 /*untilDay*/,
    -
    27609  0 /*untilTimeCode (0/15)*/,
    -
    27610  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27611  },
    -
    27612  // 1:50 - MMT 1924 May 2
    -
    27613  {
    -
    27614  nullptr /*zonePolicy*/,
    -
    27615  "MMT" /*format*/,
    -
    27616  440 /*offsetCode (6600/15)*/,
    -
    27617  0 /*offsetRemainder (6600%15)*/,
    -
    27618  0 /*deltaMinutes*/,
    -
    27619  1924 /*untilYear*/,
    -
    27620  5 /*untilMonth*/,
    -
    27621  2 /*untilDay*/,
    -
    27622  0 /*untilTimeCode (0/15)*/,
    -
    27623  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27624  },
    -
    27625  // 2:00 - EET 1930 Jun 21
    -
    27626  {
    -
    27627  nullptr /*zonePolicy*/,
    -
    27628  "EET" /*format*/,
    -
    27629  480 /*offsetCode (7200/15)*/,
    -
    27630  0 /*offsetRemainder (7200%15)*/,
    -
    27631  0 /*deltaMinutes*/,
    -
    27632  1930 /*untilYear*/,
    -
    27633  6 /*untilMonth*/,
    -
    27634  21 /*untilDay*/,
    -
    27635  0 /*untilTimeCode (0/15)*/,
    -
    27636  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27637  },
    -
    27638  // 3:00 - MSK 1941 Jun 28
    -
    27639  {
    -
    27640  nullptr /*zonePolicy*/,
    -
    27641  "MSK" /*format*/,
    -
    27642  720 /*offsetCode (10800/15)*/,
    -
    27643  0 /*offsetRemainder (10800%15)*/,
    -
    27644  0 /*deltaMinutes*/,
    -
    27645  1941 /*untilYear*/,
    -
    27646  6 /*untilMonth*/,
    -
    27647  28 /*untilDay*/,
    -
    27648  0 /*untilTimeCode (0/15)*/,
    -
    27649  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27650  },
    -
    27651  // 1:00 C-Eur CE%sT 1944 Jul 3
    -
    27652  {
    -
    27653  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    27654  "CE%T" /*format*/,
    -
    27655  240 /*offsetCode (3600/15)*/,
    -
    27656  0 /*offsetRemainder (3600%15)*/,
    -
    27657  0 /*deltaMinutes*/,
    -
    27658  1944 /*untilYear*/,
    -
    27659  7 /*untilMonth*/,
    -
    27660  3 /*untilDay*/,
    -
    27661  0 /*untilTimeCode (0/15)*/,
    -
    27662  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27663  },
    -
    27664  // 3:00 Russia MSK/MSD 1990
    -
    27665  {
    -
    27666  &kZonePolicyRussia /*zonePolicy*/,
    -
    27667  "MSK/MSD" /*format*/,
    -
    27668  720 /*offsetCode (10800/15)*/,
    -
    27669  0 /*offsetRemainder (10800%15)*/,
    -
    27670  0 /*deltaMinutes*/,
    -
    27671  1990 /*untilYear*/,
    -
    27672  1 /*untilMonth*/,
    -
    27673  1 /*untilDay*/,
    -
    27674  0 /*untilTimeCode (0/15)*/,
    -
    27675  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27676  },
    -
    27677  // 3:00 - MSK 1991 Mar 31 2:00s
    -
    27678  {
    -
    27679  nullptr /*zonePolicy*/,
    -
    27680  "MSK" /*format*/,
    -
    27681  720 /*offsetCode (10800/15)*/,
    -
    27682  0 /*offsetRemainder (10800%15)*/,
    -
    27683  0 /*deltaMinutes*/,
    -
    27684  1991 /*untilYear*/,
    -
    27685  3 /*untilMonth*/,
    -
    27686  31 /*untilDay*/,
    -
    27687  480 /*untilTimeCode (7200/15)*/,
    -
    27688  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27689  },
    -
    27690  // 2:00 Russia EE%sT 2011 Mar 27 2:00s
    -
    27691  {
    -
    27692  &kZonePolicyRussia /*zonePolicy*/,
    -
    27693  "EE%T" /*format*/,
    -
    27694  480 /*offsetCode (7200/15)*/,
    -
    27695  0 /*offsetRemainder (7200%15)*/,
    -
    27696  0 /*deltaMinutes*/,
    -
    27697  2011 /*untilYear*/,
    -
    27698  3 /*untilMonth*/,
    -
    27699  27 /*untilDay*/,
    -
    27700  480 /*untilTimeCode (7200/15)*/,
    -
    27701  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27702  },
    -
    27703  // 3:00 - %z
    -
    27704  {
    -
    27705  nullptr /*zonePolicy*/,
    -
    27706  "" /*format*/,
    -
    27707  720 /*offsetCode (10800/15)*/,
    -
    27708  0 /*offsetRemainder (10800%15)*/,
    -
    27709  0 /*deltaMinutes*/,
    -
    27710  32767 /*untilYear*/,
    -
    27711  1 /*untilMonth*/,
    -
    27712  1 /*untilDay*/,
    -
    27713  0 /*untilTimeCode (0/15)*/,
    -
    27714  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27715  },
    -
    27716 
    -
    27717 };
    -
    27718 
    -
    27719 static const char kZoneNameEurope_Minsk[] ACE_TIME_PROGMEM = "\x0b" "Minsk";
    -
    27720 
    -
    27721 const complete::Info::ZoneInfo kZoneEurope_Minsk ACE_TIME_PROGMEM = {
    -
    27722  kZoneNameEurope_Minsk /*name*/,
    -
    27723  0xfb19cc66 /*zoneId*/,
    -
    27724  &kZoneContext /*zoneContext*/,
    -
    27725  9 /*numEras*/,
    -
    27726  kZoneEraEurope_Minsk /*eras*/,
    -
    27727  nullptr /*targetInfo*/,
    -
    27728 };
    -
    27729 
    -
    27730 //---------------------------------------------------------------------------
    -
    27731 // Zone name: Europe/Moscow
    -
    27732 // Eras: 11
    -
    27733 //---------------------------------------------------------------------------
    -
    27734 
    -
    27735 static const complete::Info::ZoneEra kZoneEraEurope_Moscow[] ACE_TIME_PROGMEM = {
    -
    27736  // 2:30:17 - LMT 1880
    -
    27737  {
    -
    27738  nullptr /*zonePolicy*/,
    -
    27739  "LMT" /*format*/,
    -
    27740  601 /*offsetCode (9017/15)*/,
    -
    27741  2 /*offsetRemainder (9017%15)*/,
    -
    27742  0 /*deltaMinutes*/,
    -
    27743  1880 /*untilYear*/,
    -
    27744  1 /*untilMonth*/,
    -
    27745  1 /*untilDay*/,
    -
    27746  0 /*untilTimeCode (0/15)*/,
    -
    27747  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27748  },
    -
    27749  // 2:30:17 - MMT 1916 Jul 3
    -
    27750  {
    -
    27751  nullptr /*zonePolicy*/,
    -
    27752  "MMT" /*format*/,
    -
    27753  601 /*offsetCode (9017/15)*/,
    -
    27754  2 /*offsetRemainder (9017%15)*/,
    -
    27755  0 /*deltaMinutes*/,
    -
    27756  1916 /*untilYear*/,
    -
    27757  7 /*untilMonth*/,
    -
    27758  3 /*untilDay*/,
    -
    27759  0 /*untilTimeCode (0/15)*/,
    -
    27760  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27761  },
    -
    27762  // 2:31:19 Russia %s 1919 Jul 1 0:00u
    -
    27763  {
    -
    27764  &kZonePolicyRussia /*zonePolicy*/,
    -
    27765  "%" /*format*/,
    -
    27766  605 /*offsetCode (9079/15)*/,
    -
    27767  4 /*offsetRemainder (9079%15)*/,
    -
    27768  0 /*deltaMinutes*/,
    -
    27769  1919 /*untilYear*/,
    -
    27770  7 /*untilMonth*/,
    -
    27771  1 /*untilDay*/,
    -
    27772  0 /*untilTimeCode (0/15)*/,
    -
    27773  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27774  },
    -
    27775  // 3:00 Russia %s 1921 Oct
    -
    27776  {
    -
    27777  &kZonePolicyRussia /*zonePolicy*/,
    -
    27778  "%" /*format*/,
    -
    27779  720 /*offsetCode (10800/15)*/,
    -
    27780  0 /*offsetRemainder (10800%15)*/,
    -
    27781  0 /*deltaMinutes*/,
    -
    27782  1921 /*untilYear*/,
    -
    27783  10 /*untilMonth*/,
    -
    27784  1 /*untilDay*/,
    -
    27785  0 /*untilTimeCode (0/15)*/,
    -
    27786  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27787  },
    -
    27788  // 3:00 Russia MSK/MSD 1922 Oct
    -
    27789  {
    -
    27790  &kZonePolicyRussia /*zonePolicy*/,
    -
    27791  "MSK/MSD" /*format*/,
    -
    27792  720 /*offsetCode (10800/15)*/,
    -
    27793  0 /*offsetRemainder (10800%15)*/,
    -
    27794  0 /*deltaMinutes*/,
    -
    27795  1922 /*untilYear*/,
    -
    27796  10 /*untilMonth*/,
    -
    27797  1 /*untilDay*/,
    -
    27798  0 /*untilTimeCode (0/15)*/,
    -
    27799  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27800  },
    -
    27801  // 2:00 - EET 1930 Jun 21
    -
    27802  {
    -
    27803  nullptr /*zonePolicy*/,
    -
    27804  "EET" /*format*/,
    -
    27805  480 /*offsetCode (7200/15)*/,
    -
    27806  0 /*offsetRemainder (7200%15)*/,
    -
    27807  0 /*deltaMinutes*/,
    -
    27808  1930 /*untilYear*/,
    -
    27809  6 /*untilMonth*/,
    -
    27810  21 /*untilDay*/,
    -
    27811  0 /*untilTimeCode (0/15)*/,
    -
    27812  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27813  },
    -
    27814  // 3:00 Russia MSK/MSD 1991 Mar 31 2:00s
    -
    27815  {
    -
    27816  &kZonePolicyRussia /*zonePolicy*/,
    -
    27817  "MSK/MSD" /*format*/,
    -
    27818  720 /*offsetCode (10800/15)*/,
    -
    27819  0 /*offsetRemainder (10800%15)*/,
    -
    27820  0 /*deltaMinutes*/,
    -
    27821  1991 /*untilYear*/,
    -
    27822  3 /*untilMonth*/,
    -
    27823  31 /*untilDay*/,
    -
    27824  480 /*untilTimeCode (7200/15)*/,
    -
    27825  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27826  },
    -
    27827  // 2:00 Russia EE%sT 1992 Jan 19 2:00s
    -
    27828  {
    -
    27829  &kZonePolicyRussia /*zonePolicy*/,
    -
    27830  "EE%T" /*format*/,
    -
    27831  480 /*offsetCode (7200/15)*/,
    -
    27832  0 /*offsetRemainder (7200%15)*/,
    -
    27833  0 /*deltaMinutes*/,
    -
    27834  1992 /*untilYear*/,
    -
    27835  1 /*untilMonth*/,
    -
    27836  19 /*untilDay*/,
    -
    27837  480 /*untilTimeCode (7200/15)*/,
    -
    27838  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27839  },
    -
    27840  // 3:00 Russia MSK/MSD 2011 Mar 27 2:00s
    -
    27841  {
    -
    27842  &kZonePolicyRussia /*zonePolicy*/,
    -
    27843  "MSK/MSD" /*format*/,
    -
    27844  720 /*offsetCode (10800/15)*/,
    -
    27845  0 /*offsetRemainder (10800%15)*/,
    -
    27846  0 /*deltaMinutes*/,
    -
    27847  2011 /*untilYear*/,
    -
    27848  3 /*untilMonth*/,
    -
    27849  27 /*untilDay*/,
    -
    27850  480 /*untilTimeCode (7200/15)*/,
    -
    27851  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27852  },
    -
    27853  // 4:00 - MSK 2014 Oct 26 2:00s
    -
    27854  {
    -
    27855  nullptr /*zonePolicy*/,
    -
    27856  "MSK" /*format*/,
    -
    27857  960 /*offsetCode (14400/15)*/,
    -
    27858  0 /*offsetRemainder (14400%15)*/,
    -
    27859  0 /*deltaMinutes*/,
    -
    27860  2014 /*untilYear*/,
    -
    27861  10 /*untilMonth*/,
    -
    27862  26 /*untilDay*/,
    -
    27863  480 /*untilTimeCode (7200/15)*/,
    -
    27864  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27865  },
    -
    27866  // 3:00 - MSK
    -
    27867  {
    -
    27868  nullptr /*zonePolicy*/,
    -
    27869  "MSK" /*format*/,
    -
    27870  720 /*offsetCode (10800/15)*/,
    -
    27871  0 /*offsetRemainder (10800%15)*/,
    -
    27872  0 /*deltaMinutes*/,
    -
    27873  32767 /*untilYear*/,
    -
    27874  1 /*untilMonth*/,
    -
    27875  1 /*untilDay*/,
    -
    27876  0 /*untilTimeCode (0/15)*/,
    -
    27877  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27878  },
    -
    27879 
    -
    27880 };
    -
    27881 
    -
    27882 static const char kZoneNameEurope_Moscow[] ACE_TIME_PROGMEM = "\x0b" "Moscow";
    -
    27883 
    -
    27884 const complete::Info::ZoneInfo kZoneEurope_Moscow ACE_TIME_PROGMEM = {
    -
    27885  kZoneNameEurope_Moscow /*name*/,
    -
    27886  0x5ec266fc /*zoneId*/,
    -
    27887  &kZoneContext /*zoneContext*/,
    -
    27888  11 /*numEras*/,
    -
    27889  kZoneEraEurope_Moscow /*eras*/,
    -
    27890  nullptr /*targetInfo*/,
    -
    27891 };
    -
    27892 
    -
    27893 //---------------------------------------------------------------------------
    -
    27894 // Zone name: Europe/Paris
    -
    27895 // Eras: 7
    -
    27896 //---------------------------------------------------------------------------
    -
    27897 
    -
    27898 static const complete::Info::ZoneEra kZoneEraEurope_Paris[] ACE_TIME_PROGMEM = {
    -
    27899  // 0:09:21 - LMT 1891 Mar 16
    -
    27900  {
    -
    27901  nullptr /*zonePolicy*/,
    -
    27902  "LMT" /*format*/,
    -
    27903  37 /*offsetCode (561/15)*/,
    -
    27904  6 /*offsetRemainder (561%15)*/,
    -
    27905  0 /*deltaMinutes*/,
    -
    27906  1891 /*untilYear*/,
    -
    27907  3 /*untilMonth*/,
    -
    27908  16 /*untilDay*/,
    -
    27909  0 /*untilTimeCode (0/15)*/,
    -
    27910  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27911  },
    -
    27912  // 0:09:21 - PMT 1911 Mar 11
    -
    27913  {
    -
    27914  nullptr /*zonePolicy*/,
    -
    27915  "PMT" /*format*/,
    -
    27916  37 /*offsetCode (561/15)*/,
    -
    27917  6 /*offsetRemainder (561%15)*/,
    -
    27918  0 /*deltaMinutes*/,
    -
    27919  1911 /*untilYear*/,
    -
    27920  3 /*untilMonth*/,
    -
    27921  11 /*untilDay*/,
    -
    27922  0 /*untilTimeCode (0/15)*/,
    -
    27923  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27924  },
    -
    27925  // 0:00 France WE%sT 1940 Jun 14 23:00
    -
    27926  {
    -
    27927  &kZonePolicyFrance /*zonePolicy*/,
    -
    27928  "WE%T" /*format*/,
    -
    27929  0 /*offsetCode (0/15)*/,
    -
    27930  0 /*offsetRemainder (0%15)*/,
    -
    27931  0 /*deltaMinutes*/,
    -
    27932  1940 /*untilYear*/,
    -
    27933  6 /*untilMonth*/,
    -
    27934  14 /*untilDay*/,
    -
    27935  5520 /*untilTimeCode (82800/15)*/,
    -
    27936  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27937  },
    -
    27938  // 1:00 C-Eur CE%sT 1944 Aug 25
    -
    27939  {
    -
    27940  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    27941  "CE%T" /*format*/,
    -
    27942  240 /*offsetCode (3600/15)*/,
    -
    27943  0 /*offsetRemainder (3600%15)*/,
    -
    27944  0 /*deltaMinutes*/,
    -
    27945  1944 /*untilYear*/,
    -
    27946  8 /*untilMonth*/,
    -
    27947  25 /*untilDay*/,
    -
    27948  0 /*untilTimeCode (0/15)*/,
    -
    27949  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27950  },
    -
    27951  // 0:00 France WE%sT 1945 Sep 16 3:00
    -
    27952  {
    -
    27953  &kZonePolicyFrance /*zonePolicy*/,
    -
    27954  "WE%T" /*format*/,
    -
    27955  0 /*offsetCode (0/15)*/,
    -
    27956  0 /*offsetRemainder (0%15)*/,
    -
    27957  0 /*deltaMinutes*/,
    -
    27958  1945 /*untilYear*/,
    -
    27959  9 /*untilMonth*/,
    -
    27960  16 /*untilDay*/,
    -
    27961  720 /*untilTimeCode (10800/15)*/,
    -
    27962  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27963  },
    -
    27964  // 1:00 France CE%sT 1977
    -
    27965  {
    -
    27966  &kZonePolicyFrance /*zonePolicy*/,
    -
    27967  "CE%T" /*format*/,
    -
    27968  240 /*offsetCode (3600/15)*/,
    -
    27969  0 /*offsetRemainder (3600%15)*/,
    -
    27970  0 /*deltaMinutes*/,
    -
    27971  1977 /*untilYear*/,
    -
    27972  1 /*untilMonth*/,
    -
    27973  1 /*untilDay*/,
    -
    27974  0 /*untilTimeCode (0/15)*/,
    -
    27975  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27976  },
    -
    27977  // 1:00 EU CE%sT
    -
    27978  {
    -
    27979  &kZonePolicyEU /*zonePolicy*/,
    -
    27980  "CE%T" /*format*/,
    -
    27981  240 /*offsetCode (3600/15)*/,
    -
    27982  0 /*offsetRemainder (3600%15)*/,
    -
    27983  0 /*deltaMinutes*/,
    -
    27984  32767 /*untilYear*/,
    -
    27985  1 /*untilMonth*/,
    -
    27986  1 /*untilDay*/,
    -
    27987  0 /*untilTimeCode (0/15)*/,
    -
    27988  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27989  },
    -
    27990 
    -
    27991 };
    -
    27992 
    -
    27993 static const char kZoneNameEurope_Paris[] ACE_TIME_PROGMEM = "\x0b" "Paris";
    -
    27994 
    -
    27995 const complete::Info::ZoneInfo kZoneEurope_Paris ACE_TIME_PROGMEM = {
    -
    27996  kZoneNameEurope_Paris /*name*/,
    -
    27997  0xfb4bc2a3 /*zoneId*/,
    -
    27998  &kZoneContext /*zoneContext*/,
    -
    27999  7 /*numEras*/,
    -
    28000  kZoneEraEurope_Paris /*eras*/,
    -
    28001  nullptr /*targetInfo*/,
    -
    28002 };
    -
    28003 
    -
    28004 //---------------------------------------------------------------------------
    -
    28005 // Zone name: Europe/Prague
    -
    28006 // Eras: 7
    -
    28007 //---------------------------------------------------------------------------
    -
    28008 
    -
    28009 static const complete::Info::ZoneEra kZoneEraEurope_Prague[] ACE_TIME_PROGMEM = {
    -
    28010  // 0:57:44 - LMT 1850
    -
    28011  {
    -
    28012  nullptr /*zonePolicy*/,
    -
    28013  "LMT" /*format*/,
    -
    28014  230 /*offsetCode (3464/15)*/,
    -
    28015  14 /*offsetRemainder (3464%15)*/,
    -
    28016  0 /*deltaMinutes*/,
    -
    28017  1850 /*untilYear*/,
    -
    28018  1 /*untilMonth*/,
    -
    28019  1 /*untilDay*/,
    -
    28020  0 /*untilTimeCode (0/15)*/,
    -
    28021  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28022  },
    -
    28023  // 0:57:44 - PMT 1891 Oct
    -
    28024  {
    -
    28025  nullptr /*zonePolicy*/,
    -
    28026  "PMT" /*format*/,
    -
    28027  230 /*offsetCode (3464/15)*/,
    -
    28028  14 /*offsetRemainder (3464%15)*/,
    -
    28029  0 /*deltaMinutes*/,
    -
    28030  1891 /*untilYear*/,
    -
    28031  10 /*untilMonth*/,
    -
    28032  1 /*untilDay*/,
    -
    28033  0 /*untilTimeCode (0/15)*/,
    -
    28034  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28035  },
    -
    28036  // 1:00 C-Eur CE%sT 1945 May 9
    -
    28037  {
    -
    28038  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    28039  "CE%T" /*format*/,
    -
    28040  240 /*offsetCode (3600/15)*/,
    -
    28041  0 /*offsetRemainder (3600%15)*/,
    -
    28042  0 /*deltaMinutes*/,
    -
    28043  1945 /*untilYear*/,
    -
    28044  5 /*untilMonth*/,
    -
    28045  9 /*untilDay*/,
    -
    28046  0 /*untilTimeCode (0/15)*/,
    -
    28047  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28048  },
    -
    28049  // 1:00 Czech CE%sT 1946 Dec 1 3:00
    -
    28050  {
    -
    28051  &kZonePolicyCzech /*zonePolicy*/,
    -
    28052  "CE%T" /*format*/,
    -
    28053  240 /*offsetCode (3600/15)*/,
    -
    28054  0 /*offsetRemainder (3600%15)*/,
    -
    28055  0 /*deltaMinutes*/,
    -
    28056  1946 /*untilYear*/,
    -
    28057  12 /*untilMonth*/,
    -
    28058  1 /*untilDay*/,
    -
    28059  720 /*untilTimeCode (10800/15)*/,
    -
    28060  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28061  },
    -
    28062  // 1:00 -1:00 GMT 1947 Feb 23 2:00
    -
    28063  {
    -
    28064  nullptr /*zonePolicy*/,
    -
    28065  "GMT" /*format*/,
    -
    28066  240 /*offsetCode (3600/15)*/,
    -
    28067  0 /*offsetRemainder (3600%15)*/,
    -
    28068  -60 /*deltaMinutes*/,
    -
    28069  1947 /*untilYear*/,
    -
    28070  2 /*untilMonth*/,
    -
    28071  23 /*untilDay*/,
    -
    28072  480 /*untilTimeCode (7200/15)*/,
    -
    28073  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28074  },
    -
    28075  // 1:00 Czech CE%sT 1979
    -
    28076  {
    -
    28077  &kZonePolicyCzech /*zonePolicy*/,
    -
    28078  "CE%T" /*format*/,
    -
    28079  240 /*offsetCode (3600/15)*/,
    -
    28080  0 /*offsetRemainder (3600%15)*/,
    -
    28081  0 /*deltaMinutes*/,
    -
    28082  1979 /*untilYear*/,
    -
    28083  1 /*untilMonth*/,
    -
    28084  1 /*untilDay*/,
    -
    28085  0 /*untilTimeCode (0/15)*/,
    -
    28086  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28087  },
    -
    28088  // 1:00 EU CE%sT
    -
    28089  {
    -
    28090  &kZonePolicyEU /*zonePolicy*/,
    -
    28091  "CE%T" /*format*/,
    -
    28092  240 /*offsetCode (3600/15)*/,
    -
    28093  0 /*offsetRemainder (3600%15)*/,
    -
    28094  0 /*deltaMinutes*/,
    -
    28095  32767 /*untilYear*/,
    -
    28096  1 /*untilMonth*/,
    -
    28097  1 /*untilDay*/,
    -
    28098  0 /*untilTimeCode (0/15)*/,
    -
    28099  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28100  },
    -
    28101 
    -
    28102 };
    -
    28103 
    -
    28104 static const char kZoneNameEurope_Prague[] ACE_TIME_PROGMEM = "\x0b" "Prague";
    -
    28105 
    -
    28106 const complete::Info::ZoneInfo kZoneEurope_Prague ACE_TIME_PROGMEM = {
    -
    28107  kZoneNameEurope_Prague /*name*/,
    -
    28108  0x65ee5d48 /*zoneId*/,
    -
    28109  &kZoneContext /*zoneContext*/,
    -
    28110  7 /*numEras*/,
    -
    28111  kZoneEraEurope_Prague /*eras*/,
    -
    28112  nullptr /*targetInfo*/,
    -
    28113 };
    -
    28114 
    -
    28115 //---------------------------------------------------------------------------
    -
    28116 // Zone name: Europe/Riga
    -
    28117 // Eras: 15
    -
    28118 //---------------------------------------------------------------------------
    -
    28119 
    -
    28120 static const complete::Info::ZoneEra kZoneEraEurope_Riga[] ACE_TIME_PROGMEM = {
    -
    28121  // 1:36:34 - LMT 1880
    -
    28122  {
    -
    28123  nullptr /*zonePolicy*/,
    -
    28124  "LMT" /*format*/,
    -
    28125  386 /*offsetCode (5794/15)*/,
    -
    28126  4 /*offsetRemainder (5794%15)*/,
    -
    28127  0 /*deltaMinutes*/,
    -
    28128  1880 /*untilYear*/,
    -
    28129  1 /*untilMonth*/,
    -
    28130  1 /*untilDay*/,
    -
    28131  0 /*untilTimeCode (0/15)*/,
    -
    28132  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28133  },
    -
    28134  // 1:36:34 - RMT 1918 Apr 15 2:00
    -
    28135  {
    -
    28136  nullptr /*zonePolicy*/,
    -
    28137  "RMT" /*format*/,
    -
    28138  386 /*offsetCode (5794/15)*/,
    -
    28139  4 /*offsetRemainder (5794%15)*/,
    -
    28140  0 /*deltaMinutes*/,
    -
    28141  1918 /*untilYear*/,
    -
    28142  4 /*untilMonth*/,
    -
    28143  15 /*untilDay*/,
    -
    28144  480 /*untilTimeCode (7200/15)*/,
    -
    28145  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28146  },
    -
    28147  // 1:36:34 1:00 LST 1918 Sep 16 3:00
    -
    28148  {
    -
    28149  nullptr /*zonePolicy*/,
    -
    28150  "LST" /*format*/,
    -
    28151  386 /*offsetCode (5794/15)*/,
    -
    28152  4 /*offsetRemainder (5794%15)*/,
    -
    28153  60 /*deltaMinutes*/,
    -
    28154  1918 /*untilYear*/,
    -
    28155  9 /*untilMonth*/,
    -
    28156  16 /*untilDay*/,
    -
    28157  720 /*untilTimeCode (10800/15)*/,
    -
    28158  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28159  },
    -
    28160  // 1:36:34 - RMT 1919 Apr 1 2:00
    -
    28161  {
    -
    28162  nullptr /*zonePolicy*/,
    -
    28163  "RMT" /*format*/,
    -
    28164  386 /*offsetCode (5794/15)*/,
    -
    28165  4 /*offsetRemainder (5794%15)*/,
    -
    28166  0 /*deltaMinutes*/,
    -
    28167  1919 /*untilYear*/,
    -
    28168  4 /*untilMonth*/,
    -
    28169  1 /*untilDay*/,
    -
    28170  480 /*untilTimeCode (7200/15)*/,
    -
    28171  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28172  },
    -
    28173  // 1:36:34 1:00 LST 1919 May 22 3:00
    -
    28174  {
    -
    28175  nullptr /*zonePolicy*/,
    -
    28176  "LST" /*format*/,
    -
    28177  386 /*offsetCode (5794/15)*/,
    -
    28178  4 /*offsetRemainder (5794%15)*/,
    -
    28179  60 /*deltaMinutes*/,
    -
    28180  1919 /*untilYear*/,
    -
    28181  5 /*untilMonth*/,
    -
    28182  22 /*untilDay*/,
    -
    28183  720 /*untilTimeCode (10800/15)*/,
    -
    28184  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28185  },
    -
    28186  // 1:36:34 - RMT 1926 May 11
    -
    28187  {
    -
    28188  nullptr /*zonePolicy*/,
    -
    28189  "RMT" /*format*/,
    -
    28190  386 /*offsetCode (5794/15)*/,
    -
    28191  4 /*offsetRemainder (5794%15)*/,
    -
    28192  0 /*deltaMinutes*/,
    -
    28193  1926 /*untilYear*/,
    -
    28194  5 /*untilMonth*/,
    -
    28195  11 /*untilDay*/,
    -
    28196  0 /*untilTimeCode (0/15)*/,
    -
    28197  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28198  },
    -
    28199  // 2:00 - EET 1940 Aug 5
    -
    28200  {
    -
    28201  nullptr /*zonePolicy*/,
    -
    28202  "EET" /*format*/,
    -
    28203  480 /*offsetCode (7200/15)*/,
    -
    28204  0 /*offsetRemainder (7200%15)*/,
    -
    28205  0 /*deltaMinutes*/,
    -
    28206  1940 /*untilYear*/,
    -
    28207  8 /*untilMonth*/,
    -
    28208  5 /*untilDay*/,
    -
    28209  0 /*untilTimeCode (0/15)*/,
    -
    28210  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28211  },
    -
    28212  // 3:00 - MSK 1941 Jul
    -
    28213  {
    -
    28214  nullptr /*zonePolicy*/,
    -
    28215  "MSK" /*format*/,
    -
    28216  720 /*offsetCode (10800/15)*/,
    -
    28217  0 /*offsetRemainder (10800%15)*/,
    -
    28218  0 /*deltaMinutes*/,
    -
    28219  1941 /*untilYear*/,
    -
    28220  7 /*untilMonth*/,
    -
    28221  1 /*untilDay*/,
    -
    28222  0 /*untilTimeCode (0/15)*/,
    -
    28223  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28224  },
    -
    28225  // 1:00 C-Eur CE%sT 1944 Oct 13
    -
    28226  {
    -
    28227  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    28228  "CE%T" /*format*/,
    -
    28229  240 /*offsetCode (3600/15)*/,
    -
    28230  0 /*offsetRemainder (3600%15)*/,
    -
    28231  0 /*deltaMinutes*/,
    -
    28232  1944 /*untilYear*/,
    -
    28233  10 /*untilMonth*/,
    -
    28234  13 /*untilDay*/,
    -
    28235  0 /*untilTimeCode (0/15)*/,
    -
    28236  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28237  },
    -
    28238  // 3:00 Russia MSK/MSD 1989 Mar lastSun 2:00s
    -
    28239  {
    -
    28240  &kZonePolicyRussia /*zonePolicy*/,
    -
    28241  "MSK/MSD" /*format*/,
    -
    28242  720 /*offsetCode (10800/15)*/,
    -
    28243  0 /*offsetRemainder (10800%15)*/,
    -
    28244  0 /*deltaMinutes*/,
    -
    28245  1989 /*untilYear*/,
    -
    28246  3 /*untilMonth*/,
    -
    28247  26 /*untilDay*/,
    -
    28248  480 /*untilTimeCode (7200/15)*/,
    -
    28249  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28250  },
    -
    28251  // 2:00 1:00 EEST 1989 Sep lastSun 2:00s
    -
    28252  {
    -
    28253  nullptr /*zonePolicy*/,
    -
    28254  "EEST" /*format*/,
    -
    28255  480 /*offsetCode (7200/15)*/,
    -
    28256  0 /*offsetRemainder (7200%15)*/,
    -
    28257  60 /*deltaMinutes*/,
    -
    28258  1989 /*untilYear*/,
    -
    28259  9 /*untilMonth*/,
    -
    28260  24 /*untilDay*/,
    -
    28261  480 /*untilTimeCode (7200/15)*/,
    -
    28262  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28263  },
    -
    28264  // 2:00 Latvia EE%sT 1997 Jan 21
    -
    28265  {
    -
    28266  &kZonePolicyLatvia /*zonePolicy*/,
    -
    28267  "EE%T" /*format*/,
    -
    28268  480 /*offsetCode (7200/15)*/,
    -
    28269  0 /*offsetRemainder (7200%15)*/,
    -
    28270  0 /*deltaMinutes*/,
    -
    28271  1997 /*untilYear*/,
    -
    28272  1 /*untilMonth*/,
    -
    28273  21 /*untilDay*/,
    -
    28274  0 /*untilTimeCode (0/15)*/,
    -
    28275  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28276  },
    -
    28277  // 2:00 EU EE%sT 2000 Feb 29
    -
    28278  {
    -
    28279  &kZonePolicyEU /*zonePolicy*/,
    -
    28280  "EE%T" /*format*/,
    -
    28281  480 /*offsetCode (7200/15)*/,
    -
    28282  0 /*offsetRemainder (7200%15)*/,
    -
    28283  0 /*deltaMinutes*/,
    -
    28284  2000 /*untilYear*/,
    -
    28285  2 /*untilMonth*/,
    -
    28286  29 /*untilDay*/,
    -
    28287  0 /*untilTimeCode (0/15)*/,
    -
    28288  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28289  },
    -
    28290  // 2:00 - EET 2001 Jan 2
    -
    28291  {
    -
    28292  nullptr /*zonePolicy*/,
    -
    28293  "EET" /*format*/,
    -
    28294  480 /*offsetCode (7200/15)*/,
    -
    28295  0 /*offsetRemainder (7200%15)*/,
    -
    28296  0 /*deltaMinutes*/,
    -
    28297  2001 /*untilYear*/,
    -
    28298  1 /*untilMonth*/,
    -
    28299  2 /*untilDay*/,
    -
    28300  0 /*untilTimeCode (0/15)*/,
    -
    28301  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28302  },
    -
    28303  // 2:00 EU EE%sT
    -
    28304  {
    -
    28305  &kZonePolicyEU /*zonePolicy*/,
    -
    28306  "EE%T" /*format*/,
    -
    28307  480 /*offsetCode (7200/15)*/,
    -
    28308  0 /*offsetRemainder (7200%15)*/,
    -
    28309  0 /*deltaMinutes*/,
    -
    28310  32767 /*untilYear*/,
    -
    28311  1 /*untilMonth*/,
    -
    28312  1 /*untilDay*/,
    -
    28313  0 /*untilTimeCode (0/15)*/,
    -
    28314  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28315  },
    -
    28316 
    -
    28317 };
    -
    28318 
    -
    28319 static const char kZoneNameEurope_Riga[] ACE_TIME_PROGMEM = "\x0b" "Riga";
    -
    28320 
    -
    28321 const complete::Info::ZoneInfo kZoneEurope_Riga ACE_TIME_PROGMEM = {
    -
    28322  kZoneNameEurope_Riga /*name*/,
    -
    28323  0xa2c57587 /*zoneId*/,
    -
    28324  &kZoneContext /*zoneContext*/,
    -
    28325  15 /*numEras*/,
    -
    28326  kZoneEraEurope_Riga /*eras*/,
    -
    28327  nullptr /*targetInfo*/,
    -
    28328 };
    -
    28329 
    -
    28330 //---------------------------------------------------------------------------
    -
    28331 // Zone name: Europe/Rome
    -
    28332 // Eras: 6
    -
    28333 //---------------------------------------------------------------------------
    -
    28334 
    -
    28335 static const complete::Info::ZoneEra kZoneEraEurope_Rome[] ACE_TIME_PROGMEM = {
    -
    28336  // 0:49:56 - LMT 1866 Dec 12
    -
    28337  {
    -
    28338  nullptr /*zonePolicy*/,
    -
    28339  "LMT" /*format*/,
    -
    28340  199 /*offsetCode (2996/15)*/,
    -
    28341  11 /*offsetRemainder (2996%15)*/,
    -
    28342  0 /*deltaMinutes*/,
    -
    28343  1866 /*untilYear*/,
    -
    28344  12 /*untilMonth*/,
    -
    28345  12 /*untilDay*/,
    -
    28346  0 /*untilTimeCode (0/15)*/,
    -
    28347  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28348  },
    -
    28349  // 0:49:56 - RMT 1893 Oct 31 23:00u
    -
    28350  {
    -
    28351  nullptr /*zonePolicy*/,
    -
    28352  "RMT" /*format*/,
    -
    28353  199 /*offsetCode (2996/15)*/,
    -
    28354  11 /*offsetRemainder (2996%15)*/,
    -
    28355  0 /*deltaMinutes*/,
    -
    28356  1893 /*untilYear*/,
    -
    28357  10 /*untilMonth*/,
    -
    28358  31 /*untilDay*/,
    -
    28359  5520 /*untilTimeCode (82800/15)*/,
    -
    28360  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    28361  },
    -
    28362  // 1:00 Italy CE%sT 1943 Sep 10
    -
    28363  {
    -
    28364  &kZonePolicyItaly /*zonePolicy*/,
    -
    28365  "CE%T" /*format*/,
    -
    28366  240 /*offsetCode (3600/15)*/,
    -
    28367  0 /*offsetRemainder (3600%15)*/,
    -
    28368  0 /*deltaMinutes*/,
    -
    28369  1943 /*untilYear*/,
    -
    28370  9 /*untilMonth*/,
    -
    28371  10 /*untilDay*/,
    -
    28372  0 /*untilTimeCode (0/15)*/,
    -
    28373  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28374  },
    -
    28375  // 1:00 C-Eur CE%sT 1944 Jun 4
    -
    28376  {
    -
    28377  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    28378  "CE%T" /*format*/,
    -
    28379  240 /*offsetCode (3600/15)*/,
    -
    28380  0 /*offsetRemainder (3600%15)*/,
    -
    28381  0 /*deltaMinutes*/,
    -
    28382  1944 /*untilYear*/,
    -
    28383  6 /*untilMonth*/,
    -
    28384  4 /*untilDay*/,
    -
    28385  0 /*untilTimeCode (0/15)*/,
    -
    28386  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28387  },
    -
    28388  // 1:00 Italy CE%sT 1980
    -
    28389  {
    -
    28390  &kZonePolicyItaly /*zonePolicy*/,
    -
    28391  "CE%T" /*format*/,
    -
    28392  240 /*offsetCode (3600/15)*/,
    -
    28393  0 /*offsetRemainder (3600%15)*/,
    -
    28394  0 /*deltaMinutes*/,
    -
    28395  1980 /*untilYear*/,
    -
    28396  1 /*untilMonth*/,
    -
    28397  1 /*untilDay*/,
    -
    28398  0 /*untilTimeCode (0/15)*/,
    -
    28399  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28400  },
    -
    28401  // 1:00 EU CE%sT
    -
    28402  {
    -
    28403  &kZonePolicyEU /*zonePolicy*/,
    -
    28404  "CE%T" /*format*/,
    -
    28405  240 /*offsetCode (3600/15)*/,
    -
    28406  0 /*offsetRemainder (3600%15)*/,
    -
    28407  0 /*deltaMinutes*/,
    -
    28408  32767 /*untilYear*/,
    -
    28409  1 /*untilMonth*/,
    -
    28410  1 /*untilDay*/,
    -
    28411  0 /*untilTimeCode (0/15)*/,
    -
    28412  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28413  },
    -
    28414 
    -
    28415 };
    -
    28416 
    -
    28417 static const char kZoneNameEurope_Rome[] ACE_TIME_PROGMEM = "\x0b" "Rome";
    -
    28418 
    -
    28419 const complete::Info::ZoneInfo kZoneEurope_Rome ACE_TIME_PROGMEM = {
    -
    28420  kZoneNameEurope_Rome /*name*/,
    -
    28421  0xa2c58fd7 /*zoneId*/,
    -
    28422  &kZoneContext /*zoneContext*/,
    -
    28423  6 /*numEras*/,
    -
    28424  kZoneEraEurope_Rome /*eras*/,
    -
    28425  nullptr /*targetInfo*/,
    -
    28426 };
    -
    28427 
    -
    28428 //---------------------------------------------------------------------------
    -
    28429 // Zone name: Europe/Samara
    -
    28430 // Eras: 10
    -
    28431 //---------------------------------------------------------------------------
    -
    28432 
    -
    28433 static const complete::Info::ZoneEra kZoneEraEurope_Samara[] ACE_TIME_PROGMEM = {
    -
    28434  // 3:20:20 - LMT 1919 Jul 1 0:00u
    -
    28435  {
    -
    28436  nullptr /*zonePolicy*/,
    -
    28437  "LMT" /*format*/,
    -
    28438  801 /*offsetCode (12020/15)*/,
    -
    28439  5 /*offsetRemainder (12020%15)*/,
    -
    28440  0 /*deltaMinutes*/,
    -
    28441  1919 /*untilYear*/,
    -
    28442  7 /*untilMonth*/,
    -
    28443  1 /*untilDay*/,
    -
    28444  0 /*untilTimeCode (0/15)*/,
    -
    28445  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    28446  },
    -
    28447  // 3:00 - %z 1930 Jun 21
    -
    28448  {
    -
    28449  nullptr /*zonePolicy*/,
    -
    28450  "" /*format*/,
    -
    28451  720 /*offsetCode (10800/15)*/,
    -
    28452  0 /*offsetRemainder (10800%15)*/,
    -
    28453  0 /*deltaMinutes*/,
    -
    28454  1930 /*untilYear*/,
    -
    28455  6 /*untilMonth*/,
    -
    28456  21 /*untilDay*/,
    -
    28457  0 /*untilTimeCode (0/15)*/,
    -
    28458  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28459  },
    -
    28460  // 4:00 - %z 1935 Jan 27
    -
    28461  {
    -
    28462  nullptr /*zonePolicy*/,
    -
    28463  "" /*format*/,
    -
    28464  960 /*offsetCode (14400/15)*/,
    -
    28465  0 /*offsetRemainder (14400%15)*/,
    -
    28466  0 /*deltaMinutes*/,
    -
    28467  1935 /*untilYear*/,
    -
    28468  1 /*untilMonth*/,
    -
    28469  27 /*untilDay*/,
    -
    28470  0 /*untilTimeCode (0/15)*/,
    -
    28471  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28472  },
    -
    28473  // 4:00 Russia %z 1989 Mar 26 2:00s
    -
    28474  {
    -
    28475  &kZonePolicyRussia /*zonePolicy*/,
    -
    28476  "" /*format*/,
    -
    28477  960 /*offsetCode (14400/15)*/,
    -
    28478  0 /*offsetRemainder (14400%15)*/,
    -
    28479  0 /*deltaMinutes*/,
    -
    28480  1989 /*untilYear*/,
    -
    28481  3 /*untilMonth*/,
    -
    28482  26 /*untilDay*/,
    -
    28483  480 /*untilTimeCode (7200/15)*/,
    -
    28484  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28485  },
    -
    28486  // 3:00 Russia %z 1991 Mar 31 2:00s
    -
    28487  {
    -
    28488  &kZonePolicyRussia /*zonePolicy*/,
    -
    28489  "" /*format*/,
    -
    28490  720 /*offsetCode (10800/15)*/,
    -
    28491  0 /*offsetRemainder (10800%15)*/,
    -
    28492  0 /*deltaMinutes*/,
    -
    28493  1991 /*untilYear*/,
    -
    28494  3 /*untilMonth*/,
    -
    28495  31 /*untilDay*/,
    -
    28496  480 /*untilTimeCode (7200/15)*/,
    -
    28497  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28498  },
    -
    28499  // 2:00 Russia %z 1991 Sep 29 2:00s
    -
    28500  {
    -
    28501  &kZonePolicyRussia /*zonePolicy*/,
    -
    28502  "" /*format*/,
    -
    28503  480 /*offsetCode (7200/15)*/,
    -
    28504  0 /*offsetRemainder (7200%15)*/,
    -
    28505  0 /*deltaMinutes*/,
    -
    28506  1991 /*untilYear*/,
    -
    28507  9 /*untilMonth*/,
    -
    28508  29 /*untilDay*/,
    -
    28509  480 /*untilTimeCode (7200/15)*/,
    -
    28510  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28511  },
    -
    28512  // 3:00 - %z 1991 Oct 20 3:00
    -
    28513  {
    -
    28514  nullptr /*zonePolicy*/,
    -
    28515  "" /*format*/,
    -
    28516  720 /*offsetCode (10800/15)*/,
    -
    28517  0 /*offsetRemainder (10800%15)*/,
    -
    28518  0 /*deltaMinutes*/,
    -
    28519  1991 /*untilYear*/,
    -
    28520  10 /*untilMonth*/,
    -
    28521  20 /*untilDay*/,
    -
    28522  720 /*untilTimeCode (10800/15)*/,
    -
    28523  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28524  },
    -
    28525  // 4:00 Russia %z 2010 Mar 28 2:00s
    -
    28526  {
    -
    28527  &kZonePolicyRussia /*zonePolicy*/,
    -
    28528  "" /*format*/,
    -
    28529  960 /*offsetCode (14400/15)*/,
    -
    28530  0 /*offsetRemainder (14400%15)*/,
    -
    28531  0 /*deltaMinutes*/,
    -
    28532  2010 /*untilYear*/,
    -
    28533  3 /*untilMonth*/,
    -
    28534  28 /*untilDay*/,
    -
    28535  480 /*untilTimeCode (7200/15)*/,
    -
    28536  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28537  },
    -
    28538  // 3:00 Russia %z 2011 Mar 27 2:00s
    -
    28539  {
    -
    28540  &kZonePolicyRussia /*zonePolicy*/,
    -
    28541  "" /*format*/,
    -
    28542  720 /*offsetCode (10800/15)*/,
    -
    28543  0 /*offsetRemainder (10800%15)*/,
    -
    28544  0 /*deltaMinutes*/,
    -
    28545  2011 /*untilYear*/,
    -
    28546  3 /*untilMonth*/,
    -
    28547  27 /*untilDay*/,
    -
    28548  480 /*untilTimeCode (7200/15)*/,
    -
    28549  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28550  },
    -
    28551  // 4:00 - %z
    -
    28552  {
    -
    28553  nullptr /*zonePolicy*/,
    -
    28554  "" /*format*/,
    -
    28555  960 /*offsetCode (14400/15)*/,
    -
    28556  0 /*offsetRemainder (14400%15)*/,
    -
    28557  0 /*deltaMinutes*/,
    -
    28558  32767 /*untilYear*/,
    -
    28559  1 /*untilMonth*/,
    -
    28560  1 /*untilDay*/,
    -
    28561  0 /*untilTimeCode (0/15)*/,
    -
    28562  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28563  },
    -
    28564 
    -
    28565 };
    -
    28566 
    -
    28567 static const char kZoneNameEurope_Samara[] ACE_TIME_PROGMEM = "\x0b" "Samara";
    -
    28568 
    -
    28569 const complete::Info::ZoneInfo kZoneEurope_Samara ACE_TIME_PROGMEM = {
    -
    28570  kZoneNameEurope_Samara /*name*/,
    -
    28571  0x6bc0b139 /*zoneId*/,
    -
    28572  &kZoneContext /*zoneContext*/,
    -
    28573  10 /*numEras*/,
    -
    28574  kZoneEraEurope_Samara /*eras*/,
    -
    28575  nullptr /*targetInfo*/,
    -
    28576 };
    -
    28577 
    -
    28578 //---------------------------------------------------------------------------
    -
    28579 // Zone name: Europe/Saratov
    -
    28580 // Eras: 9
    -
    28581 //---------------------------------------------------------------------------
    -
    28582 
    -
    28583 static const complete::Info::ZoneEra kZoneEraEurope_Saratov[] ACE_TIME_PROGMEM = {
    -
    28584  // 3:04:18 - LMT 1919 Jul 1 0:00u
    -
    28585  {
    -
    28586  nullptr /*zonePolicy*/,
    -
    28587  "LMT" /*format*/,
    -
    28588  737 /*offsetCode (11058/15)*/,
    -
    28589  3 /*offsetRemainder (11058%15)*/,
    -
    28590  0 /*deltaMinutes*/,
    -
    28591  1919 /*untilYear*/,
    -
    28592  7 /*untilMonth*/,
    -
    28593  1 /*untilDay*/,
    -
    28594  0 /*untilTimeCode (0/15)*/,
    -
    28595  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    28596  },
    -
    28597  // 3:00 - %z 1930 Jun 21
    -
    28598  {
    -
    28599  nullptr /*zonePolicy*/,
    -
    28600  "" /*format*/,
    -
    28601  720 /*offsetCode (10800/15)*/,
    -
    28602  0 /*offsetRemainder (10800%15)*/,
    -
    28603  0 /*deltaMinutes*/,
    -
    28604  1930 /*untilYear*/,
    -
    28605  6 /*untilMonth*/,
    -
    28606  21 /*untilDay*/,
    -
    28607  0 /*untilTimeCode (0/15)*/,
    -
    28608  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28609  },
    -
    28610  // 4:00 Russia %z 1988 Mar 27 2:00s
    -
    28611  {
    -
    28612  &kZonePolicyRussia /*zonePolicy*/,
    -
    28613  "" /*format*/,
    -
    28614  960 /*offsetCode (14400/15)*/,
    -
    28615  0 /*offsetRemainder (14400%15)*/,
    -
    28616  0 /*deltaMinutes*/,
    -
    28617  1988 /*untilYear*/,
    -
    28618  3 /*untilMonth*/,
    -
    28619  27 /*untilDay*/,
    -
    28620  480 /*untilTimeCode (7200/15)*/,
    -
    28621  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28622  },
    -
    28623  // 3:00 Russia %z 1991 Mar 31 2:00s
    -
    28624  {
    -
    28625  &kZonePolicyRussia /*zonePolicy*/,
    -
    28626  "" /*format*/,
    -
    28627  720 /*offsetCode (10800/15)*/,
    -
    28628  0 /*offsetRemainder (10800%15)*/,
    -
    28629  0 /*deltaMinutes*/,
    -
    28630  1991 /*untilYear*/,
    -
    28631  3 /*untilMonth*/,
    -
    28632  31 /*untilDay*/,
    -
    28633  480 /*untilTimeCode (7200/15)*/,
    -
    28634  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28635  },
    -
    28636  // 4:00 - %z 1992 Mar 29 2:00s
    -
    28637  {
    -
    28638  nullptr /*zonePolicy*/,
    -
    28639  "" /*format*/,
    -
    28640  960 /*offsetCode (14400/15)*/,
    -
    28641  0 /*offsetRemainder (14400%15)*/,
    -
    28642  0 /*deltaMinutes*/,
    -
    28643  1992 /*untilYear*/,
    -
    28644  3 /*untilMonth*/,
    -
    28645  29 /*untilDay*/,
    -
    28646  480 /*untilTimeCode (7200/15)*/,
    -
    28647  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28648  },
    -
    28649  // 3:00 Russia %z 2011 Mar 27 2:00s
    -
    28650  {
    -
    28651  &kZonePolicyRussia /*zonePolicy*/,
    -
    28652  "" /*format*/,
    -
    28653  720 /*offsetCode (10800/15)*/,
    -
    28654  0 /*offsetRemainder (10800%15)*/,
    -
    28655  0 /*deltaMinutes*/,
    -
    28656  2011 /*untilYear*/,
    -
    28657  3 /*untilMonth*/,
    -
    28658  27 /*untilDay*/,
    -
    28659  480 /*untilTimeCode (7200/15)*/,
    -
    28660  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28661  },
    -
    28662  // 4:00 - %z 2014 Oct 26 2:00s
    -
    28663  {
    -
    28664  nullptr /*zonePolicy*/,
    -
    28665  "" /*format*/,
    -
    28666  960 /*offsetCode (14400/15)*/,
    -
    28667  0 /*offsetRemainder (14400%15)*/,
    -
    28668  0 /*deltaMinutes*/,
    -
    28669  2014 /*untilYear*/,
    -
    28670  10 /*untilMonth*/,
    -
    28671  26 /*untilDay*/,
    -
    28672  480 /*untilTimeCode (7200/15)*/,
    -
    28673  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28674  },
    -
    28675  // 3:00 - %z 2016 Dec 4 2:00s
    -
    28676  {
    -
    28677  nullptr /*zonePolicy*/,
    -
    28678  "" /*format*/,
    -
    28679  720 /*offsetCode (10800/15)*/,
    -
    28680  0 /*offsetRemainder (10800%15)*/,
    -
    28681  0 /*deltaMinutes*/,
    -
    28682  2016 /*untilYear*/,
    -
    28683  12 /*untilMonth*/,
    -
    28684  4 /*untilDay*/,
    -
    28685  480 /*untilTimeCode (7200/15)*/,
    -
    28686  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28687  },
    -
    28688  // 4:00 - %z
    -
    28689  {
    -
    28690  nullptr /*zonePolicy*/,
    -
    28691  "" /*format*/,
    -
    28692  960 /*offsetCode (14400/15)*/,
    -
    28693  0 /*offsetRemainder (14400%15)*/,
    -
    28694  0 /*deltaMinutes*/,
    -
    28695  32767 /*untilYear*/,
    -
    28696  1 /*untilMonth*/,
    -
    28697  1 /*untilDay*/,
    -
    28698  0 /*untilTimeCode (0/15)*/,
    -
    28699  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28700  },
    -
    28701 
    -
    28702 };
    -
    28703 
    -
    28704 static const char kZoneNameEurope_Saratov[] ACE_TIME_PROGMEM = "\x0b" "Saratov";
    -
    28705 
    -
    28706 const complete::Info::ZoneInfo kZoneEurope_Saratov ACE_TIME_PROGMEM = {
    -
    28707  kZoneNameEurope_Saratov /*name*/,
    -
    28708  0xe4315da4 /*zoneId*/,
    -
    28709  &kZoneContext /*zoneContext*/,
    -
    28710  9 /*numEras*/,
    -
    28711  kZoneEraEurope_Saratov /*eras*/,
    -
    28712  nullptr /*targetInfo*/,
    -
    28713 };
    -
    28714 
    -
    28715 //---------------------------------------------------------------------------
    -
    28716 // Zone name: Europe/Simferopol
    -
    28717 // Eras: 15
    -
    28718 //---------------------------------------------------------------------------
    -
    28719 
    -
    28720 static const complete::Info::ZoneEra kZoneEraEurope_Simferopol[] ACE_TIME_PROGMEM = {
    -
    28721  // 2:16:24 - LMT 1880
    -
    28722  {
    -
    28723  nullptr /*zonePolicy*/,
    -
    28724  "LMT" /*format*/,
    -
    28725  545 /*offsetCode (8184/15)*/,
    -
    28726  9 /*offsetRemainder (8184%15)*/,
    -
    28727  0 /*deltaMinutes*/,
    -
    28728  1880 /*untilYear*/,
    -
    28729  1 /*untilMonth*/,
    -
    28730  1 /*untilDay*/,
    -
    28731  0 /*untilTimeCode (0/15)*/,
    -
    28732  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28733  },
    -
    28734  // 2:16 - SMT 1924 May 2
    -
    28735  {
    -
    28736  nullptr /*zonePolicy*/,
    -
    28737  "SMT" /*format*/,
    -
    28738  544 /*offsetCode (8160/15)*/,
    -
    28739  0 /*offsetRemainder (8160%15)*/,
    -
    28740  0 /*deltaMinutes*/,
    -
    28741  1924 /*untilYear*/,
    -
    28742  5 /*untilMonth*/,
    -
    28743  2 /*untilDay*/,
    -
    28744  0 /*untilTimeCode (0/15)*/,
    -
    28745  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28746  },
    -
    28747  // 2:00 - EET 1930 Jun 21
    -
    28748  {
    -
    28749  nullptr /*zonePolicy*/,
    -
    28750  "EET" /*format*/,
    -
    28751  480 /*offsetCode (7200/15)*/,
    -
    28752  0 /*offsetRemainder (7200%15)*/,
    -
    28753  0 /*deltaMinutes*/,
    -
    28754  1930 /*untilYear*/,
    -
    28755  6 /*untilMonth*/,
    -
    28756  21 /*untilDay*/,
    -
    28757  0 /*untilTimeCode (0/15)*/,
    -
    28758  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28759  },
    -
    28760  // 3:00 - MSK 1941 Nov
    -
    28761  {
    -
    28762  nullptr /*zonePolicy*/,
    -
    28763  "MSK" /*format*/,
    -
    28764  720 /*offsetCode (10800/15)*/,
    -
    28765  0 /*offsetRemainder (10800%15)*/,
    -
    28766  0 /*deltaMinutes*/,
    -
    28767  1941 /*untilYear*/,
    -
    28768  11 /*untilMonth*/,
    -
    28769  1 /*untilDay*/,
    -
    28770  0 /*untilTimeCode (0/15)*/,
    -
    28771  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28772  },
    -
    28773  // 1:00 C-Eur CE%sT 1944 Apr 13
    -
    28774  {
    -
    28775  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    28776  "CE%T" /*format*/,
    -
    28777  240 /*offsetCode (3600/15)*/,
    -
    28778  0 /*offsetRemainder (3600%15)*/,
    -
    28779  0 /*deltaMinutes*/,
    -
    28780  1944 /*untilYear*/,
    -
    28781  4 /*untilMonth*/,
    -
    28782  13 /*untilDay*/,
    -
    28783  0 /*untilTimeCode (0/15)*/,
    -
    28784  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28785  },
    -
    28786  // 3:00 Russia MSK/MSD 1990
    -
    28787  {
    -
    28788  &kZonePolicyRussia /*zonePolicy*/,
    -
    28789  "MSK/MSD" /*format*/,
    -
    28790  720 /*offsetCode (10800/15)*/,
    -
    28791  0 /*offsetRemainder (10800%15)*/,
    -
    28792  0 /*deltaMinutes*/,
    -
    28793  1990 /*untilYear*/,
    -
    28794  1 /*untilMonth*/,
    -
    28795  1 /*untilDay*/,
    -
    28796  0 /*untilTimeCode (0/15)*/,
    -
    28797  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28798  },
    -
    28799  // 3:00 - MSK 1990 Jul 1 2:00
    -
    28800  {
    -
    28801  nullptr /*zonePolicy*/,
    -
    28802  "MSK" /*format*/,
    -
    28803  720 /*offsetCode (10800/15)*/,
    -
    28804  0 /*offsetRemainder (10800%15)*/,
    -
    28805  0 /*deltaMinutes*/,
    -
    28806  1990 /*untilYear*/,
    -
    28807  7 /*untilMonth*/,
    -
    28808  1 /*untilDay*/,
    -
    28809  480 /*untilTimeCode (7200/15)*/,
    -
    28810  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28811  },
    -
    28812  // 2:00 - EET 1992 Mar 20
    -
    28813  {
    -
    28814  nullptr /*zonePolicy*/,
    -
    28815  "EET" /*format*/,
    -
    28816  480 /*offsetCode (7200/15)*/,
    -
    28817  0 /*offsetRemainder (7200%15)*/,
    -
    28818  0 /*deltaMinutes*/,
    -
    28819  1992 /*untilYear*/,
    -
    28820  3 /*untilMonth*/,
    -
    28821  20 /*untilDay*/,
    -
    28822  0 /*untilTimeCode (0/15)*/,
    -
    28823  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28824  },
    -
    28825  // 2:00 C-Eur EE%sT 1994 May
    -
    28826  {
    -
    28827  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    28828  "EE%T" /*format*/,
    -
    28829  480 /*offsetCode (7200/15)*/,
    -
    28830  0 /*offsetRemainder (7200%15)*/,
    -
    28831  0 /*deltaMinutes*/,
    -
    28832  1994 /*untilYear*/,
    -
    28833  5 /*untilMonth*/,
    -
    28834  1 /*untilDay*/,
    -
    28835  0 /*untilTimeCode (0/15)*/,
    -
    28836  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28837  },
    -
    28838  // 3:00 C-Eur MSK/MSD 1996 Mar 31 0:00s
    -
    28839  {
    -
    28840  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    28841  "MSK/MSD" /*format*/,
    -
    28842  720 /*offsetCode (10800/15)*/,
    -
    28843  0 /*offsetRemainder (10800%15)*/,
    -
    28844  0 /*deltaMinutes*/,
    -
    28845  1996 /*untilYear*/,
    -
    28846  3 /*untilMonth*/,
    -
    28847  31 /*untilDay*/,
    -
    28848  0 /*untilTimeCode (0/15)*/,
    -
    28849  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28850  },
    -
    28851  // 3:00 1:00 MSD 1996 Oct 27 3:00s
    -
    28852  {
    -
    28853  nullptr /*zonePolicy*/,
    -
    28854  "MSD" /*format*/,
    -
    28855  720 /*offsetCode (10800/15)*/,
    -
    28856  0 /*offsetRemainder (10800%15)*/,
    -
    28857  60 /*deltaMinutes*/,
    -
    28858  1996 /*untilYear*/,
    -
    28859  10 /*untilMonth*/,
    -
    28860  27 /*untilDay*/,
    -
    28861  720 /*untilTimeCode (10800/15)*/,
    -
    28862  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28863  },
    -
    28864  // 3:00 - MSK 1997 Mar lastSun 1:00u
    -
    28865  {
    -
    28866  nullptr /*zonePolicy*/,
    -
    28867  "MSK" /*format*/,
    -
    28868  720 /*offsetCode (10800/15)*/,
    -
    28869  0 /*offsetRemainder (10800%15)*/,
    -
    28870  0 /*deltaMinutes*/,
    -
    28871  1997 /*untilYear*/,
    -
    28872  3 /*untilMonth*/,
    -
    28873  30 /*untilDay*/,
    -
    28874  240 /*untilTimeCode (3600/15)*/,
    -
    28875  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    28876  },
    -
    28877  // 2:00 EU EE%sT 2014 Mar 30 2:00
    -
    28878  {
    -
    28879  &kZonePolicyEU /*zonePolicy*/,
    -
    28880  "EE%T" /*format*/,
    -
    28881  480 /*offsetCode (7200/15)*/,
    -
    28882  0 /*offsetRemainder (7200%15)*/,
    -
    28883  0 /*deltaMinutes*/,
    -
    28884  2014 /*untilYear*/,
    -
    28885  3 /*untilMonth*/,
    -
    28886  30 /*untilDay*/,
    -
    28887  480 /*untilTimeCode (7200/15)*/,
    -
    28888  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28889  },
    -
    28890  // 4:00 - MSK 2014 Oct 26 2:00s
    -
    28891  {
    -
    28892  nullptr /*zonePolicy*/,
    -
    28893  "MSK" /*format*/,
    -
    28894  960 /*offsetCode (14400/15)*/,
    -
    28895  0 /*offsetRemainder (14400%15)*/,
    -
    28896  0 /*deltaMinutes*/,
    -
    28897  2014 /*untilYear*/,
    -
    28898  10 /*untilMonth*/,
    -
    28899  26 /*untilDay*/,
    -
    28900  480 /*untilTimeCode (7200/15)*/,
    -
    28901  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28902  },
    -
    28903  // 3:00 - MSK
    -
    28904  {
    -
    28905  nullptr /*zonePolicy*/,
    -
    28906  "MSK" /*format*/,
    -
    28907  720 /*offsetCode (10800/15)*/,
    -
    28908  0 /*offsetRemainder (10800%15)*/,
    -
    28909  0 /*deltaMinutes*/,
    -
    28910  32767 /*untilYear*/,
    -
    28911  1 /*untilMonth*/,
    -
    28912  1 /*untilDay*/,
    -
    28913  0 /*untilTimeCode (0/15)*/,
    -
    28914  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28915  },
    -
    28916 
    -
    28917 };
    -
    28918 
    -
    28919 static const char kZoneNameEurope_Simferopol[] ACE_TIME_PROGMEM = "\x0b" "Simferopol";
    -
    28920 
    -
    28921 const complete::Info::ZoneInfo kZoneEurope_Simferopol ACE_TIME_PROGMEM = {
    -
    28922  kZoneNameEurope_Simferopol /*name*/,
    -
    28923  0xda9eb724 /*zoneId*/,
    -
    28924  &kZoneContext /*zoneContext*/,
    -
    28925  15 /*numEras*/,
    -
    28926  kZoneEraEurope_Simferopol /*eras*/,
    -
    28927  nullptr /*targetInfo*/,
    -
    28928 };
    -
    28929 
    -
    28930 //---------------------------------------------------------------------------
    -
    28931 // Zone name: Europe/Sofia
    -
    28932 // Eras: 10
    -
    28933 //---------------------------------------------------------------------------
    -
    28934 
    -
    28935 static const complete::Info::ZoneEra kZoneEraEurope_Sofia[] ACE_TIME_PROGMEM = {
    -
    28936  // 1:33:16 - LMT 1880
    -
    28937  {
    -
    28938  nullptr /*zonePolicy*/,
    -
    28939  "LMT" /*format*/,
    -
    28940  373 /*offsetCode (5596/15)*/,
    -
    28941  1 /*offsetRemainder (5596%15)*/,
    -
    28942  0 /*deltaMinutes*/,
    -
    28943  1880 /*untilYear*/,
    -
    28944  1 /*untilMonth*/,
    -
    28945  1 /*untilDay*/,
    -
    28946  0 /*untilTimeCode (0/15)*/,
    -
    28947  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28948  },
    -
    28949  // 1:56:56 - IMT 1894 Nov 30
    -
    28950  {
    -
    28951  nullptr /*zonePolicy*/,
    -
    28952  "IMT" /*format*/,
    -
    28953  467 /*offsetCode (7016/15)*/,
    -
    28954  11 /*offsetRemainder (7016%15)*/,
    -
    28955  0 /*deltaMinutes*/,
    -
    28956  1894 /*untilYear*/,
    -
    28957  11 /*untilMonth*/,
    -
    28958  30 /*untilDay*/,
    -
    28959  0 /*untilTimeCode (0/15)*/,
    -
    28960  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28961  },
    -
    28962  // 2:00 - EET 1942 Nov 2 3:00
    -
    28963  {
    -
    28964  nullptr /*zonePolicy*/,
    -
    28965  "EET" /*format*/,
    -
    28966  480 /*offsetCode (7200/15)*/,
    -
    28967  0 /*offsetRemainder (7200%15)*/,
    -
    28968  0 /*deltaMinutes*/,
    -
    28969  1942 /*untilYear*/,
    -
    28970  11 /*untilMonth*/,
    -
    28971  2 /*untilDay*/,
    -
    28972  720 /*untilTimeCode (10800/15)*/,
    -
    28973  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28974  },
    -
    28975  // 1:00 C-Eur CE%sT 1945
    -
    28976  {
    -
    28977  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    28978  "CE%T" /*format*/,
    -
    28979  240 /*offsetCode (3600/15)*/,
    -
    28980  0 /*offsetRemainder (3600%15)*/,
    -
    28981  0 /*deltaMinutes*/,
    -
    28982  1945 /*untilYear*/,
    -
    28983  1 /*untilMonth*/,
    -
    28984  1 /*untilDay*/,
    -
    28985  0 /*untilTimeCode (0/15)*/,
    -
    28986  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28987  },
    -
    28988  // 1:00 - CET 1945 Apr 2 3:00
    -
    28989  {
    -
    28990  nullptr /*zonePolicy*/,
    -
    28991  "CET" /*format*/,
    -
    28992  240 /*offsetCode (3600/15)*/,
    -
    28993  0 /*offsetRemainder (3600%15)*/,
    -
    28994  0 /*deltaMinutes*/,
    -
    28995  1945 /*untilYear*/,
    -
    28996  4 /*untilMonth*/,
    -
    28997  2 /*untilDay*/,
    -
    28998  720 /*untilTimeCode (10800/15)*/,
    -
    28999  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29000  },
    -
    29001  // 2:00 - EET 1979 Mar 31 23:00
    -
    29002  {
    -
    29003  nullptr /*zonePolicy*/,
    -
    29004  "EET" /*format*/,
    -
    29005  480 /*offsetCode (7200/15)*/,
    -
    29006  0 /*offsetRemainder (7200%15)*/,
    -
    29007  0 /*deltaMinutes*/,
    -
    29008  1979 /*untilYear*/,
    -
    29009  3 /*untilMonth*/,
    -
    29010  31 /*untilDay*/,
    -
    29011  5520 /*untilTimeCode (82800/15)*/,
    -
    29012  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29013  },
    -
    29014  // 2:00 Bulg EE%sT 1982 Sep 26 3:00
    -
    29015  {
    -
    29016  &kZonePolicyBulg /*zonePolicy*/,
    -
    29017  "EE%T" /*format*/,
    -
    29018  480 /*offsetCode (7200/15)*/,
    -
    29019  0 /*offsetRemainder (7200%15)*/,
    -
    29020  0 /*deltaMinutes*/,
    -
    29021  1982 /*untilYear*/,
    -
    29022  9 /*untilMonth*/,
    -
    29023  26 /*untilDay*/,
    -
    29024  720 /*untilTimeCode (10800/15)*/,
    -
    29025  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29026  },
    -
    29027  // 2:00 C-Eur EE%sT 1991
    -
    29028  {
    -
    29029  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    29030  "EE%T" /*format*/,
    -
    29031  480 /*offsetCode (7200/15)*/,
    -
    29032  0 /*offsetRemainder (7200%15)*/,
    -
    29033  0 /*deltaMinutes*/,
    -
    29034  1991 /*untilYear*/,
    -
    29035  1 /*untilMonth*/,
    -
    29036  1 /*untilDay*/,
    -
    29037  0 /*untilTimeCode (0/15)*/,
    -
    29038  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29039  },
    -
    29040  // 2:00 E-Eur EE%sT 1997
    -
    29041  {
    -
    29042  &kZonePolicyE_Eur /*zonePolicy*/,
    -
    29043  "EE%T" /*format*/,
    -
    29044  480 /*offsetCode (7200/15)*/,
    -
    29045  0 /*offsetRemainder (7200%15)*/,
    -
    29046  0 /*deltaMinutes*/,
    -
    29047  1997 /*untilYear*/,
    -
    29048  1 /*untilMonth*/,
    -
    29049  1 /*untilDay*/,
    -
    29050  0 /*untilTimeCode (0/15)*/,
    -
    29051  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29052  },
    -
    29053  // 2:00 EU EE%sT
    -
    29054  {
    -
    29055  &kZonePolicyEU /*zonePolicy*/,
    -
    29056  "EE%T" /*format*/,
    -
    29057  480 /*offsetCode (7200/15)*/,
    -
    29058  0 /*offsetRemainder (7200%15)*/,
    -
    29059  0 /*deltaMinutes*/,
    -
    29060  32767 /*untilYear*/,
    -
    29061  1 /*untilMonth*/,
    -
    29062  1 /*untilDay*/,
    -
    29063  0 /*untilTimeCode (0/15)*/,
    -
    29064  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29065  },
    -
    29066 
    -
    29067 };
    -
    29068 
    -
    29069 static const char kZoneNameEurope_Sofia[] ACE_TIME_PROGMEM = "\x0b" "Sofia";
    -
    29070 
    -
    29071 const complete::Info::ZoneInfo kZoneEurope_Sofia ACE_TIME_PROGMEM = {
    -
    29072  kZoneNameEurope_Sofia /*name*/,
    -
    29073  0xfb898656 /*zoneId*/,
    -
    29074  &kZoneContext /*zoneContext*/,
    -
    29075  10 /*numEras*/,
    -
    29076  kZoneEraEurope_Sofia /*eras*/,
    -
    29077  nullptr /*targetInfo*/,
    -
    29078 };
    -
    29079 
    -
    29080 //---------------------------------------------------------------------------
    -
    29081 // Zone name: Europe/Tallinn
    -
    29082 // Eras: 13
    -
    29083 //---------------------------------------------------------------------------
    -
    29084 
    -
    29085 static const complete::Info::ZoneEra kZoneEraEurope_Tallinn[] ACE_TIME_PROGMEM = {
    -
    29086  // 1:39:00 - LMT 1880
    -
    29087  {
    -
    29088  nullptr /*zonePolicy*/,
    -
    29089  "LMT" /*format*/,
    -
    29090  396 /*offsetCode (5940/15)*/,
    -
    29091  0 /*offsetRemainder (5940%15)*/,
    -
    29092  0 /*deltaMinutes*/,
    -
    29093  1880 /*untilYear*/,
    -
    29094  1 /*untilMonth*/,
    -
    29095  1 /*untilDay*/,
    -
    29096  0 /*untilTimeCode (0/15)*/,
    -
    29097  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29098  },
    -
    29099  // 1:39:00 - TMT 1918 Feb
    -
    29100  {
    -
    29101  nullptr /*zonePolicy*/,
    -
    29102  "TMT" /*format*/,
    -
    29103  396 /*offsetCode (5940/15)*/,
    -
    29104  0 /*offsetRemainder (5940%15)*/,
    -
    29105  0 /*deltaMinutes*/,
    -
    29106  1918 /*untilYear*/,
    -
    29107  2 /*untilMonth*/,
    -
    29108  1 /*untilDay*/,
    -
    29109  0 /*untilTimeCode (0/15)*/,
    -
    29110  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29111  },
    -
    29112  // 1:00 C-Eur CE%sT 1919 Jul
    -
    29113  {
    -
    29114  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    29115  "CE%T" /*format*/,
    -
    29116  240 /*offsetCode (3600/15)*/,
    -
    29117  0 /*offsetRemainder (3600%15)*/,
    -
    29118  0 /*deltaMinutes*/,
    -
    29119  1919 /*untilYear*/,
    -
    29120  7 /*untilMonth*/,
    -
    29121  1 /*untilDay*/,
    -
    29122  0 /*untilTimeCode (0/15)*/,
    -
    29123  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29124  },
    -
    29125  // 1:39:00 - TMT 1921 May
    -
    29126  {
    -
    29127  nullptr /*zonePolicy*/,
    -
    29128  "TMT" /*format*/,
    -
    29129  396 /*offsetCode (5940/15)*/,
    -
    29130  0 /*offsetRemainder (5940%15)*/,
    -
    29131  0 /*deltaMinutes*/,
    -
    29132  1921 /*untilYear*/,
    -
    29133  5 /*untilMonth*/,
    -
    29134  1 /*untilDay*/,
    -
    29135  0 /*untilTimeCode (0/15)*/,
    -
    29136  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29137  },
    -
    29138  // 2:00 - EET 1940 Aug 6
    -
    29139  {
    -
    29140  nullptr /*zonePolicy*/,
    -
    29141  "EET" /*format*/,
    -
    29142  480 /*offsetCode (7200/15)*/,
    -
    29143  0 /*offsetRemainder (7200%15)*/,
    -
    29144  0 /*deltaMinutes*/,
    -
    29145  1940 /*untilYear*/,
    -
    29146  8 /*untilMonth*/,
    -
    29147  6 /*untilDay*/,
    -
    29148  0 /*untilTimeCode (0/15)*/,
    -
    29149  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29150  },
    -
    29151  // 3:00 - MSK 1941 Sep 15
    -
    29152  {
    -
    29153  nullptr /*zonePolicy*/,
    -
    29154  "MSK" /*format*/,
    -
    29155  720 /*offsetCode (10800/15)*/,
    -
    29156  0 /*offsetRemainder (10800%15)*/,
    -
    29157  0 /*deltaMinutes*/,
    -
    29158  1941 /*untilYear*/,
    -
    29159  9 /*untilMonth*/,
    -
    29160  15 /*untilDay*/,
    -
    29161  0 /*untilTimeCode (0/15)*/,
    -
    29162  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29163  },
    -
    29164  // 1:00 C-Eur CE%sT 1944 Sep 22
    -
    29165  {
    -
    29166  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    29167  "CE%T" /*format*/,
    -
    29168  240 /*offsetCode (3600/15)*/,
    -
    29169  0 /*offsetRemainder (3600%15)*/,
    -
    29170  0 /*deltaMinutes*/,
    -
    29171  1944 /*untilYear*/,
    -
    29172  9 /*untilMonth*/,
    -
    29173  22 /*untilDay*/,
    -
    29174  0 /*untilTimeCode (0/15)*/,
    -
    29175  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29176  },
    -
    29177  // 3:00 Russia MSK/MSD 1989 Mar 26 2:00s
    -
    29178  {
    -
    29179  &kZonePolicyRussia /*zonePolicy*/,
    -
    29180  "MSK/MSD" /*format*/,
    -
    29181  720 /*offsetCode (10800/15)*/,
    -
    29182  0 /*offsetRemainder (10800%15)*/,
    -
    29183  0 /*deltaMinutes*/,
    -
    29184  1989 /*untilYear*/,
    -
    29185  3 /*untilMonth*/,
    -
    29186  26 /*untilDay*/,
    -
    29187  480 /*untilTimeCode (7200/15)*/,
    -
    29188  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29189  },
    -
    29190  // 2:00 1:00 EEST 1989 Sep 24 2:00s
    -
    29191  {
    -
    29192  nullptr /*zonePolicy*/,
    -
    29193  "EEST" /*format*/,
    -
    29194  480 /*offsetCode (7200/15)*/,
    -
    29195  0 /*offsetRemainder (7200%15)*/,
    -
    29196  60 /*deltaMinutes*/,
    -
    29197  1989 /*untilYear*/,
    -
    29198  9 /*untilMonth*/,
    -
    29199  24 /*untilDay*/,
    -
    29200  480 /*untilTimeCode (7200/15)*/,
    -
    29201  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29202  },
    -
    29203  // 2:00 C-Eur EE%sT 1998 Sep 22
    -
    29204  {
    -
    29205  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    29206  "EE%T" /*format*/,
    -
    29207  480 /*offsetCode (7200/15)*/,
    -
    29208  0 /*offsetRemainder (7200%15)*/,
    -
    29209  0 /*deltaMinutes*/,
    -
    29210  1998 /*untilYear*/,
    -
    29211  9 /*untilMonth*/,
    -
    29212  22 /*untilDay*/,
    -
    29213  0 /*untilTimeCode (0/15)*/,
    -
    29214  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29215  },
    -
    29216  // 2:00 EU EE%sT 1999 Oct 31 4:00
    -
    29217  {
    -
    29218  &kZonePolicyEU /*zonePolicy*/,
    -
    29219  "EE%T" /*format*/,
    -
    29220  480 /*offsetCode (7200/15)*/,
    -
    29221  0 /*offsetRemainder (7200%15)*/,
    -
    29222  0 /*deltaMinutes*/,
    -
    29223  1999 /*untilYear*/,
    -
    29224  10 /*untilMonth*/,
    -
    29225  31 /*untilDay*/,
    -
    29226  960 /*untilTimeCode (14400/15)*/,
    -
    29227  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29228  },
    -
    29229  // 2:00 - EET 2002 Feb 21
    -
    29230  {
    -
    29231  nullptr /*zonePolicy*/,
    -
    29232  "EET" /*format*/,
    -
    29233  480 /*offsetCode (7200/15)*/,
    -
    29234  0 /*offsetRemainder (7200%15)*/,
    -
    29235  0 /*deltaMinutes*/,
    -
    29236  2002 /*untilYear*/,
    -
    29237  2 /*untilMonth*/,
    -
    29238  21 /*untilDay*/,
    -
    29239  0 /*untilTimeCode (0/15)*/,
    -
    29240  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29241  },
    -
    29242  // 2:00 EU EE%sT
    -
    29243  {
    -
    29244  &kZonePolicyEU /*zonePolicy*/,
    -
    29245  "EE%T" /*format*/,
    -
    29246  480 /*offsetCode (7200/15)*/,
    -
    29247  0 /*offsetRemainder (7200%15)*/,
    -
    29248  0 /*deltaMinutes*/,
    -
    29249  32767 /*untilYear*/,
    -
    29250  1 /*untilMonth*/,
    -
    29251  1 /*untilDay*/,
    -
    29252  0 /*untilTimeCode (0/15)*/,
    -
    29253  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29254  },
    -
    29255 
    -
    29256 };
    -
    29257 
    -
    29258 static const char kZoneNameEurope_Tallinn[] ACE_TIME_PROGMEM = "\x0b" "Tallinn";
    -
    29259 
    -
    29260 const complete::Info::ZoneInfo kZoneEurope_Tallinn ACE_TIME_PROGMEM = {
    -
    29261  kZoneNameEurope_Tallinn /*name*/,
    -
    29262  0x30c4e096 /*zoneId*/,
    -
    29263  &kZoneContext /*zoneContext*/,
    -
    29264  13 /*numEras*/,
    -
    29265  kZoneEraEurope_Tallinn /*eras*/,
    -
    29266  nullptr /*targetInfo*/,
    -
    29267 };
    -
    29268 
    -
    29269 //---------------------------------------------------------------------------
    -
    29270 // Zone name: Europe/Tirane
    -
    29271 // Eras: 4
    -
    29272 //---------------------------------------------------------------------------
    -
    29273 
    -
    29274 static const complete::Info::ZoneEra kZoneEraEurope_Tirane[] ACE_TIME_PROGMEM = {
    -
    29275  // 1:19:20 - LMT 1914
    -
    29276  {
    -
    29277  nullptr /*zonePolicy*/,
    -
    29278  "LMT" /*format*/,
    -
    29279  317 /*offsetCode (4760/15)*/,
    -
    29280  5 /*offsetRemainder (4760%15)*/,
    -
    29281  0 /*deltaMinutes*/,
    -
    29282  1914 /*untilYear*/,
    -
    29283  1 /*untilMonth*/,
    -
    29284  1 /*untilDay*/,
    -
    29285  0 /*untilTimeCode (0/15)*/,
    -
    29286  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29287  },
    -
    29288  // 1:00 - CET 1940 Jun 16
    -
    29289  {
    -
    29290  nullptr /*zonePolicy*/,
    -
    29291  "CET" /*format*/,
    -
    29292  240 /*offsetCode (3600/15)*/,
    -
    29293  0 /*offsetRemainder (3600%15)*/,
    -
    29294  0 /*deltaMinutes*/,
    -
    29295  1940 /*untilYear*/,
    -
    29296  6 /*untilMonth*/,
    -
    29297  16 /*untilDay*/,
    -
    29298  0 /*untilTimeCode (0/15)*/,
    -
    29299  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29300  },
    -
    29301  // 1:00 Albania CE%sT 1984 Jul
    -
    29302  {
    -
    29303  &kZonePolicyAlbania /*zonePolicy*/,
    -
    29304  "CE%T" /*format*/,
    -
    29305  240 /*offsetCode (3600/15)*/,
    -
    29306  0 /*offsetRemainder (3600%15)*/,
    -
    29307  0 /*deltaMinutes*/,
    -
    29308  1984 /*untilYear*/,
    -
    29309  7 /*untilMonth*/,
    -
    29310  1 /*untilDay*/,
    -
    29311  0 /*untilTimeCode (0/15)*/,
    -
    29312  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29313  },
    -
    29314  // 1:00 EU CE%sT
    -
    29315  {
    -
    29316  &kZonePolicyEU /*zonePolicy*/,
    -
    29317  "CE%T" /*format*/,
    -
    29318  240 /*offsetCode (3600/15)*/,
    -
    29319  0 /*offsetRemainder (3600%15)*/,
    -
    29320  0 /*deltaMinutes*/,
    -
    29321  32767 /*untilYear*/,
    -
    29322  1 /*untilMonth*/,
    -
    29323  1 /*untilDay*/,
    -
    29324  0 /*untilTimeCode (0/15)*/,
    -
    29325  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29326  },
    -
    29327 
    -
    29328 };
    -
    29329 
    -
    29330 static const char kZoneNameEurope_Tirane[] ACE_TIME_PROGMEM = "\x0b" "Tirane";
    -
    29331 
    -
    29332 const complete::Info::ZoneInfo kZoneEurope_Tirane ACE_TIME_PROGMEM = {
    -
    29333  kZoneNameEurope_Tirane /*name*/,
    -
    29334  0x6ea95b47 /*zoneId*/,
    -
    29335  &kZoneContext /*zoneContext*/,
    -
    29336  4 /*numEras*/,
    -
    29337  kZoneEraEurope_Tirane /*eras*/,
    -
    29338  nullptr /*targetInfo*/,
    -
    29339 };
    -
    29340 
    -
    29341 //---------------------------------------------------------------------------
    -
    29342 // Zone name: Europe/Ulyanovsk
    -
    29343 // Eras: 9
    -
    29344 //---------------------------------------------------------------------------
    -
    29345 
    -
    29346 static const complete::Info::ZoneEra kZoneEraEurope_Ulyanovsk[] ACE_TIME_PROGMEM = {
    -
    29347  // 3:13:36 - LMT 1919 Jul 1 0:00u
    -
    29348  {
    -
    29349  nullptr /*zonePolicy*/,
    -
    29350  "LMT" /*format*/,
    -
    29351  774 /*offsetCode (11616/15)*/,
    -
    29352  6 /*offsetRemainder (11616%15)*/,
    -
    29353  0 /*deltaMinutes*/,
    -
    29354  1919 /*untilYear*/,
    -
    29355  7 /*untilMonth*/,
    -
    29356  1 /*untilDay*/,
    -
    29357  0 /*untilTimeCode (0/15)*/,
    -
    29358  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    29359  },
    -
    29360  // 3:00 - %z 1930 Jun 21
    -
    29361  {
    -
    29362  nullptr /*zonePolicy*/,
    -
    29363  "" /*format*/,
    -
    29364  720 /*offsetCode (10800/15)*/,
    -
    29365  0 /*offsetRemainder (10800%15)*/,
    -
    29366  0 /*deltaMinutes*/,
    -
    29367  1930 /*untilYear*/,
    -
    29368  6 /*untilMonth*/,
    -
    29369  21 /*untilDay*/,
    -
    29370  0 /*untilTimeCode (0/15)*/,
    -
    29371  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29372  },
    -
    29373  // 4:00 Russia %z 1989 Mar 26 2:00s
    -
    29374  {
    -
    29375  &kZonePolicyRussia /*zonePolicy*/,
    -
    29376  "" /*format*/,
    -
    29377  960 /*offsetCode (14400/15)*/,
    -
    29378  0 /*offsetRemainder (14400%15)*/,
    -
    29379  0 /*deltaMinutes*/,
    -
    29380  1989 /*untilYear*/,
    -
    29381  3 /*untilMonth*/,
    -
    29382  26 /*untilDay*/,
    -
    29383  480 /*untilTimeCode (7200/15)*/,
    -
    29384  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29385  },
    -
    29386  // 3:00 Russia %z 1991 Mar 31 2:00s
    -
    29387  {
    -
    29388  &kZonePolicyRussia /*zonePolicy*/,
    -
    29389  "" /*format*/,
    -
    29390  720 /*offsetCode (10800/15)*/,
    -
    29391  0 /*offsetRemainder (10800%15)*/,
    -
    29392  0 /*deltaMinutes*/,
    -
    29393  1991 /*untilYear*/,
    -
    29394  3 /*untilMonth*/,
    -
    29395  31 /*untilDay*/,
    -
    29396  480 /*untilTimeCode (7200/15)*/,
    -
    29397  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29398  },
    -
    29399  // 2:00 Russia %z 1992 Jan 19 2:00s
    -
    29400  {
    -
    29401  &kZonePolicyRussia /*zonePolicy*/,
    -
    29402  "" /*format*/,
    -
    29403  480 /*offsetCode (7200/15)*/,
    -
    29404  0 /*offsetRemainder (7200%15)*/,
    -
    29405  0 /*deltaMinutes*/,
    -
    29406  1992 /*untilYear*/,
    -
    29407  1 /*untilMonth*/,
    -
    29408  19 /*untilDay*/,
    -
    29409  480 /*untilTimeCode (7200/15)*/,
    -
    29410  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29411  },
    -
    29412  // 3:00 Russia %z 2011 Mar 27 2:00s
    -
    29413  {
    -
    29414  &kZonePolicyRussia /*zonePolicy*/,
    -
    29415  "" /*format*/,
    -
    29416  720 /*offsetCode (10800/15)*/,
    -
    29417  0 /*offsetRemainder (10800%15)*/,
    -
    29418  0 /*deltaMinutes*/,
    -
    29419  2011 /*untilYear*/,
    -
    29420  3 /*untilMonth*/,
    -
    29421  27 /*untilDay*/,
    -
    29422  480 /*untilTimeCode (7200/15)*/,
    -
    29423  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29424  },
    -
    29425  // 4:00 - %z 2014 Oct 26 2:00s
    -
    29426  {
    -
    29427  nullptr /*zonePolicy*/,
    -
    29428  "" /*format*/,
    -
    29429  960 /*offsetCode (14400/15)*/,
    -
    29430  0 /*offsetRemainder (14400%15)*/,
    -
    29431  0 /*deltaMinutes*/,
    -
    29432  2014 /*untilYear*/,
    -
    29433  10 /*untilMonth*/,
    -
    29434  26 /*untilDay*/,
    -
    29435  480 /*untilTimeCode (7200/15)*/,
    -
    29436  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29437  },
    -
    29438  // 3:00 - %z 2016 Mar 27 2:00s
    -
    29439  {
    -
    29440  nullptr /*zonePolicy*/,
    -
    29441  "" /*format*/,
    -
    29442  720 /*offsetCode (10800/15)*/,
    -
    29443  0 /*offsetRemainder (10800%15)*/,
    -
    29444  0 /*deltaMinutes*/,
    -
    29445  2016 /*untilYear*/,
    -
    29446  3 /*untilMonth*/,
    -
    29447  27 /*untilDay*/,
    -
    29448  480 /*untilTimeCode (7200/15)*/,
    -
    29449  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29450  },
    -
    29451  // 4:00 - %z
    -
    29452  {
    -
    29453  nullptr /*zonePolicy*/,
    -
    29454  "" /*format*/,
    -
    29455  960 /*offsetCode (14400/15)*/,
    -
    29456  0 /*offsetRemainder (14400%15)*/,
    -
    29457  0 /*deltaMinutes*/,
    -
    29458  32767 /*untilYear*/,
    -
    29459  1 /*untilMonth*/,
    -
    29460  1 /*untilDay*/,
    -
    29461  0 /*untilTimeCode (0/15)*/,
    -
    29462  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29463  },
    -
    29464 
    -
    29465 };
    -
    29466 
    -
    29467 static const char kZoneNameEurope_Ulyanovsk[] ACE_TIME_PROGMEM = "\x0b" "Ulyanovsk";
    -
    29468 
    -
    29469 const complete::Info::ZoneInfo kZoneEurope_Ulyanovsk ACE_TIME_PROGMEM = {
    -
    29470  kZoneNameEurope_Ulyanovsk /*name*/,
    -
    29471  0xe03783d0 /*zoneId*/,
    -
    29472  &kZoneContext /*zoneContext*/,
    -
    29473  9 /*numEras*/,
    -
    29474  kZoneEraEurope_Ulyanovsk /*eras*/,
    -
    29475  nullptr /*targetInfo*/,
    -
    29476 };
    -
    29477 
    -
    29478 //---------------------------------------------------------------------------
    -
    29479 // Zone name: Europe/Vienna
    -
    29480 // Eras: 8
    -
    29481 //---------------------------------------------------------------------------
    -
    29482 
    -
    29483 static const complete::Info::ZoneEra kZoneEraEurope_Vienna[] ACE_TIME_PROGMEM = {
    -
    29484  // 1:05:21 - LMT 1893 Apr
    -
    29485  {
    -
    29486  nullptr /*zonePolicy*/,
    -
    29487  "LMT" /*format*/,
    -
    29488  261 /*offsetCode (3921/15)*/,
    -
    29489  6 /*offsetRemainder (3921%15)*/,
    -
    29490  0 /*deltaMinutes*/,
    -
    29491  1893 /*untilYear*/,
    -
    29492  4 /*untilMonth*/,
    -
    29493  1 /*untilDay*/,
    -
    29494  0 /*untilTimeCode (0/15)*/,
    -
    29495  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29496  },
    -
    29497  // 1:00 C-Eur CE%sT 1920
    -
    29498  {
    -
    29499  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    29500  "CE%T" /*format*/,
    -
    29501  240 /*offsetCode (3600/15)*/,
    -
    29502  0 /*offsetRemainder (3600%15)*/,
    -
    29503  0 /*deltaMinutes*/,
    -
    29504  1920 /*untilYear*/,
    -
    29505  1 /*untilMonth*/,
    -
    29506  1 /*untilDay*/,
    -
    29507  0 /*untilTimeCode (0/15)*/,
    -
    29508  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29509  },
    -
    29510  // 1:00 Austria CE%sT 1940 Apr 1 2:00s
    -
    29511  {
    -
    29512  &kZonePolicyAustria /*zonePolicy*/,
    -
    29513  "CE%T" /*format*/,
    -
    29514  240 /*offsetCode (3600/15)*/,
    -
    29515  0 /*offsetRemainder (3600%15)*/,
    -
    29516  0 /*deltaMinutes*/,
    -
    29517  1940 /*untilYear*/,
    -
    29518  4 /*untilMonth*/,
    -
    29519  1 /*untilDay*/,
    -
    29520  480 /*untilTimeCode (7200/15)*/,
    -
    29521  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29522  },
    -
    29523  // 1:00 C-Eur CE%sT 1945 Apr 2 2:00s
    -
    29524  {
    -
    29525  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    29526  "CE%T" /*format*/,
    -
    29527  240 /*offsetCode (3600/15)*/,
    -
    29528  0 /*offsetRemainder (3600%15)*/,
    -
    29529  0 /*deltaMinutes*/,
    -
    29530  1945 /*untilYear*/,
    -
    29531  4 /*untilMonth*/,
    -
    29532  2 /*untilDay*/,
    -
    29533  480 /*untilTimeCode (7200/15)*/,
    -
    29534  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29535  },
    -
    29536  // 1:00 1:00 CEST 1945 Apr 12 2:00s
    -
    29537  {
    -
    29538  nullptr /*zonePolicy*/,
    -
    29539  "CEST" /*format*/,
    -
    29540  240 /*offsetCode (3600/15)*/,
    -
    29541  0 /*offsetRemainder (3600%15)*/,
    -
    29542  60 /*deltaMinutes*/,
    -
    29543  1945 /*untilYear*/,
    -
    29544  4 /*untilMonth*/,
    -
    29545  12 /*untilDay*/,
    -
    29546  480 /*untilTimeCode (7200/15)*/,
    -
    29547  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29548  },
    -
    29549  // 1:00 - CET 1946
    -
    29550  {
    -
    29551  nullptr /*zonePolicy*/,
    -
    29552  "CET" /*format*/,
    -
    29553  240 /*offsetCode (3600/15)*/,
    -
    29554  0 /*offsetRemainder (3600%15)*/,
    -
    29555  0 /*deltaMinutes*/,
    -
    29556  1946 /*untilYear*/,
    -
    29557  1 /*untilMonth*/,
    -
    29558  1 /*untilDay*/,
    -
    29559  0 /*untilTimeCode (0/15)*/,
    -
    29560  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29561  },
    -
    29562  // 1:00 Austria CE%sT 1981
    -
    29563  {
    -
    29564  &kZonePolicyAustria /*zonePolicy*/,
    -
    29565  "CE%T" /*format*/,
    -
    29566  240 /*offsetCode (3600/15)*/,
    -
    29567  0 /*offsetRemainder (3600%15)*/,
    -
    29568  0 /*deltaMinutes*/,
    -
    29569  1981 /*untilYear*/,
    -
    29570  1 /*untilMonth*/,
    -
    29571  1 /*untilDay*/,
    -
    29572  0 /*untilTimeCode (0/15)*/,
    -
    29573  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29574  },
    -
    29575  // 1:00 EU CE%sT
    -
    29576  {
    -
    29577  &kZonePolicyEU /*zonePolicy*/,
    -
    29578  "CE%T" /*format*/,
    -
    29579  240 /*offsetCode (3600/15)*/,
    -
    29580  0 /*offsetRemainder (3600%15)*/,
    -
    29581  0 /*deltaMinutes*/,
    -
    29582  32767 /*untilYear*/,
    -
    29583  1 /*untilMonth*/,
    -
    29584  1 /*untilDay*/,
    -
    29585  0 /*untilTimeCode (0/15)*/,
    -
    29586  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29587  },
    -
    29588 
    -
    29589 };
    -
    29590 
    -
    29591 static const char kZoneNameEurope_Vienna[] ACE_TIME_PROGMEM = "\x0b" "Vienna";
    -
    29592 
    -
    29593 const complete::Info::ZoneInfo kZoneEurope_Vienna ACE_TIME_PROGMEM = {
    -
    29594  kZoneNameEurope_Vienna /*name*/,
    -
    29595  0x734cc2e5 /*zoneId*/,
    -
    29596  &kZoneContext /*zoneContext*/,
    -
    29597  8 /*numEras*/,
    -
    29598  kZoneEraEurope_Vienna /*eras*/,
    -
    29599  nullptr /*targetInfo*/,
    -
    29600 };
    -
    29601 
    -
    29602 //---------------------------------------------------------------------------
    -
    29603 // Zone name: Europe/Vilnius
    -
    29604 // Eras: 15
    -
    29605 //---------------------------------------------------------------------------
    -
    29606 
    -
    29607 static const complete::Info::ZoneEra kZoneEraEurope_Vilnius[] ACE_TIME_PROGMEM = {
    -
    29608  // 1:41:16 - LMT 1880
    -
    29609  {
    -
    29610  nullptr /*zonePolicy*/,
    -
    29611  "LMT" /*format*/,
    -
    29612  405 /*offsetCode (6076/15)*/,
    -
    29613  1 /*offsetRemainder (6076%15)*/,
    -
    29614  0 /*deltaMinutes*/,
    -
    29615  1880 /*untilYear*/,
    -
    29616  1 /*untilMonth*/,
    -
    29617  1 /*untilDay*/,
    -
    29618  0 /*untilTimeCode (0/15)*/,
    -
    29619  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29620  },
    -
    29621  // 1:24:00 - WMT 1917
    -
    29622  {
    -
    29623  nullptr /*zonePolicy*/,
    -
    29624  "WMT" /*format*/,
    -
    29625  336 /*offsetCode (5040/15)*/,
    -
    29626  0 /*offsetRemainder (5040%15)*/,
    -
    29627  0 /*deltaMinutes*/,
    -
    29628  1917 /*untilYear*/,
    -
    29629  1 /*untilMonth*/,
    -
    29630  1 /*untilDay*/,
    -
    29631  0 /*untilTimeCode (0/15)*/,
    -
    29632  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29633  },
    -
    29634  // 1:35:36 - KMT 1919 Oct 10
    -
    29635  {
    -
    29636  nullptr /*zonePolicy*/,
    -
    29637  "KMT" /*format*/,
    -
    29638  382 /*offsetCode (5736/15)*/,
    -
    29639  6 /*offsetRemainder (5736%15)*/,
    -
    29640  0 /*deltaMinutes*/,
    -
    29641  1919 /*untilYear*/,
    -
    29642  10 /*untilMonth*/,
    -
    29643  10 /*untilDay*/,
    -
    29644  0 /*untilTimeCode (0/15)*/,
    -
    29645  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29646  },
    -
    29647  // 1:00 - CET 1920 Jul 12
    -
    29648  {
    -
    29649  nullptr /*zonePolicy*/,
    -
    29650  "CET" /*format*/,
    -
    29651  240 /*offsetCode (3600/15)*/,
    -
    29652  0 /*offsetRemainder (3600%15)*/,
    -
    29653  0 /*deltaMinutes*/,
    -
    29654  1920 /*untilYear*/,
    -
    29655  7 /*untilMonth*/,
    -
    29656  12 /*untilDay*/,
    -
    29657  0 /*untilTimeCode (0/15)*/,
    -
    29658  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29659  },
    -
    29660  // 2:00 - EET 1920 Oct 9
    -
    29661  {
    -
    29662  nullptr /*zonePolicy*/,
    -
    29663  "EET" /*format*/,
    -
    29664  480 /*offsetCode (7200/15)*/,
    -
    29665  0 /*offsetRemainder (7200%15)*/,
    -
    29666  0 /*deltaMinutes*/,
    -
    29667  1920 /*untilYear*/,
    -
    29668  10 /*untilMonth*/,
    -
    29669  9 /*untilDay*/,
    -
    29670  0 /*untilTimeCode (0/15)*/,
    -
    29671  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29672  },
    -
    29673  // 1:00 - CET 1940 Aug 3
    -
    29674  {
    -
    29675  nullptr /*zonePolicy*/,
    -
    29676  "CET" /*format*/,
    -
    29677  240 /*offsetCode (3600/15)*/,
    -
    29678  0 /*offsetRemainder (3600%15)*/,
    -
    29679  0 /*deltaMinutes*/,
    -
    29680  1940 /*untilYear*/,
    -
    29681  8 /*untilMonth*/,
    -
    29682  3 /*untilDay*/,
    -
    29683  0 /*untilTimeCode (0/15)*/,
    -
    29684  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29685  },
    -
    29686  // 3:00 - MSK 1941 Jun 24
    -
    29687  {
    -
    29688  nullptr /*zonePolicy*/,
    -
    29689  "MSK" /*format*/,
    -
    29690  720 /*offsetCode (10800/15)*/,
    -
    29691  0 /*offsetRemainder (10800%15)*/,
    -
    29692  0 /*deltaMinutes*/,
    -
    29693  1941 /*untilYear*/,
    -
    29694  6 /*untilMonth*/,
    -
    29695  24 /*untilDay*/,
    -
    29696  0 /*untilTimeCode (0/15)*/,
    -
    29697  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29698  },
    -
    29699  // 1:00 C-Eur CE%sT 1944 Aug
    -
    29700  {
    -
    29701  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    29702  "CE%T" /*format*/,
    -
    29703  240 /*offsetCode (3600/15)*/,
    -
    29704  0 /*offsetRemainder (3600%15)*/,
    -
    29705  0 /*deltaMinutes*/,
    -
    29706  1944 /*untilYear*/,
    -
    29707  8 /*untilMonth*/,
    -
    29708  1 /*untilDay*/,
    -
    29709  0 /*untilTimeCode (0/15)*/,
    -
    29710  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29711  },
    -
    29712  // 3:00 Russia MSK/MSD 1989 Mar 26 2:00s
    -
    29713  {
    -
    29714  &kZonePolicyRussia /*zonePolicy*/,
    -
    29715  "MSK/MSD" /*format*/,
    -
    29716  720 /*offsetCode (10800/15)*/,
    -
    29717  0 /*offsetRemainder (10800%15)*/,
    -
    29718  0 /*deltaMinutes*/,
    -
    29719  1989 /*untilYear*/,
    -
    29720  3 /*untilMonth*/,
    -
    29721  26 /*untilDay*/,
    -
    29722  480 /*untilTimeCode (7200/15)*/,
    -
    29723  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29724  },
    -
    29725  // 2:00 Russia EE%sT 1991 Sep 29 2:00s
    -
    29726  {
    -
    29727  &kZonePolicyRussia /*zonePolicy*/,
    -
    29728  "EE%T" /*format*/,
    -
    29729  480 /*offsetCode (7200/15)*/,
    -
    29730  0 /*offsetRemainder (7200%15)*/,
    -
    29731  0 /*deltaMinutes*/,
    -
    29732  1991 /*untilYear*/,
    -
    29733  9 /*untilMonth*/,
    -
    29734  29 /*untilDay*/,
    -
    29735  480 /*untilTimeCode (7200/15)*/,
    -
    29736  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29737  },
    -
    29738  // 2:00 C-Eur EE%sT 1998
    -
    29739  {
    -
    29740  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    29741  "EE%T" /*format*/,
    -
    29742  480 /*offsetCode (7200/15)*/,
    -
    29743  0 /*offsetRemainder (7200%15)*/,
    -
    29744  0 /*deltaMinutes*/,
    -
    29745  1998 /*untilYear*/,
    -
    29746  1 /*untilMonth*/,
    -
    29747  1 /*untilDay*/,
    -
    29748  0 /*untilTimeCode (0/15)*/,
    -
    29749  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29750  },
    -
    29751  // 2:00 - EET 1998 Mar 29 1:00u
    -
    29752  {
    -
    29753  nullptr /*zonePolicy*/,
    -
    29754  "EET" /*format*/,
    -
    29755  480 /*offsetCode (7200/15)*/,
    -
    29756  0 /*offsetRemainder (7200%15)*/,
    -
    29757  0 /*deltaMinutes*/,
    -
    29758  1998 /*untilYear*/,
    -
    29759  3 /*untilMonth*/,
    -
    29760  29 /*untilDay*/,
    -
    29761  240 /*untilTimeCode (3600/15)*/,
    -
    29762  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    29763  },
    -
    29764  // 1:00 EU CE%sT 1999 Oct 31 1:00u
    -
    29765  {
    -
    29766  &kZonePolicyEU /*zonePolicy*/,
    -
    29767  "CE%T" /*format*/,
    -
    29768  240 /*offsetCode (3600/15)*/,
    -
    29769  0 /*offsetRemainder (3600%15)*/,
    -
    29770  0 /*deltaMinutes*/,
    -
    29771  1999 /*untilYear*/,
    -
    29772  10 /*untilMonth*/,
    -
    29773  31 /*untilDay*/,
    -
    29774  240 /*untilTimeCode (3600/15)*/,
    -
    29775  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    29776  },
    -
    29777  // 2:00 - EET 2003 Jan 1
    -
    29778  {
    -
    29779  nullptr /*zonePolicy*/,
    -
    29780  "EET" /*format*/,
    -
    29781  480 /*offsetCode (7200/15)*/,
    -
    29782  0 /*offsetRemainder (7200%15)*/,
    -
    29783  0 /*deltaMinutes*/,
    -
    29784  2003 /*untilYear*/,
    -
    29785  1 /*untilMonth*/,
    -
    29786  1 /*untilDay*/,
    -
    29787  0 /*untilTimeCode (0/15)*/,
    -
    29788  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29789  },
    -
    29790  // 2:00 EU EE%sT
    -
    29791  {
    -
    29792  &kZonePolicyEU /*zonePolicy*/,
    -
    29793  "EE%T" /*format*/,
    -
    29794  480 /*offsetCode (7200/15)*/,
    -
    29795  0 /*offsetRemainder (7200%15)*/,
    -
    29796  0 /*deltaMinutes*/,
    -
    29797  32767 /*untilYear*/,
    -
    29798  1 /*untilMonth*/,
    -
    29799  1 /*untilDay*/,
    -
    29800  0 /*untilTimeCode (0/15)*/,
    -
    29801  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29802  },
    -
    29803 
    -
    29804 };
    -
    29805 
    -
    29806 static const char kZoneNameEurope_Vilnius[] ACE_TIME_PROGMEM = "\x0b" "Vilnius";
    -
    29807 
    -
    29808 const complete::Info::ZoneInfo kZoneEurope_Vilnius ACE_TIME_PROGMEM = {
    -
    29809  kZoneNameEurope_Vilnius /*name*/,
    -
    29810  0xdd63b8ce /*zoneId*/,
    -
    29811  &kZoneContext /*zoneContext*/,
    -
    29812  15 /*numEras*/,
    -
    29813  kZoneEraEurope_Vilnius /*eras*/,
    -
    29814  nullptr /*targetInfo*/,
    -
    29815 };
    -
    29816 
    -
    29817 //---------------------------------------------------------------------------
    -
    29818 // Zone name: Europe/Volgograd
    -
    29819 // Eras: 11
    -
    29820 //---------------------------------------------------------------------------
    -
    29821 
    -
    29822 static const complete::Info::ZoneEra kZoneEraEurope_Volgograd[] ACE_TIME_PROGMEM = {
    -
    29823  // 2:57:40 - LMT 1920 Jan 3
    -
    29824  {
    -
    29825  nullptr /*zonePolicy*/,
    -
    29826  "LMT" /*format*/,
    -
    29827  710 /*offsetCode (10660/15)*/,
    -
    29828  10 /*offsetRemainder (10660%15)*/,
    -
    29829  0 /*deltaMinutes*/,
    -
    29830  1920 /*untilYear*/,
    -
    29831  1 /*untilMonth*/,
    -
    29832  3 /*untilDay*/,
    -
    29833  0 /*untilTimeCode (0/15)*/,
    -
    29834  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29835  },
    -
    29836  // 3:00 - %z 1930 Jun 21
    -
    29837  {
    -
    29838  nullptr /*zonePolicy*/,
    -
    29839  "" /*format*/,
    -
    29840  720 /*offsetCode (10800/15)*/,
    -
    29841  0 /*offsetRemainder (10800%15)*/,
    -
    29842  0 /*deltaMinutes*/,
    -
    29843  1930 /*untilYear*/,
    -
    29844  6 /*untilMonth*/,
    -
    29845  21 /*untilDay*/,
    -
    29846  0 /*untilTimeCode (0/15)*/,
    -
    29847  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29848  },
    -
    29849  // 4:00 - %z 1961 Nov 11
    -
    29850  {
    -
    29851  nullptr /*zonePolicy*/,
    -
    29852  "" /*format*/,
    -
    29853  960 /*offsetCode (14400/15)*/,
    -
    29854  0 /*offsetRemainder (14400%15)*/,
    -
    29855  0 /*deltaMinutes*/,
    -
    29856  1961 /*untilYear*/,
    -
    29857  11 /*untilMonth*/,
    -
    29858  11 /*untilDay*/,
    -
    29859  0 /*untilTimeCode (0/15)*/,
    -
    29860  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29861  },
    -
    29862  // 4:00 Russia %z 1988 Mar 27 2:00s
    -
    29863  {
    -
    29864  &kZonePolicyRussia /*zonePolicy*/,
    -
    29865  "" /*format*/,
    -
    29866  960 /*offsetCode (14400/15)*/,
    -
    29867  0 /*offsetRemainder (14400%15)*/,
    -
    29868  0 /*deltaMinutes*/,
    -
    29869  1988 /*untilYear*/,
    -
    29870  3 /*untilMonth*/,
    -
    29871  27 /*untilDay*/,
    -
    29872  480 /*untilTimeCode (7200/15)*/,
    -
    29873  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29874  },
    -
    29875  // 3:00 Russia MSK/MSD 1991 Mar 31 2:00s
    -
    29876  {
    -
    29877  &kZonePolicyRussia /*zonePolicy*/,
    -
    29878  "MSK/MSD" /*format*/,
    -
    29879  720 /*offsetCode (10800/15)*/,
    -
    29880  0 /*offsetRemainder (10800%15)*/,
    -
    29881  0 /*deltaMinutes*/,
    -
    29882  1991 /*untilYear*/,
    -
    29883  3 /*untilMonth*/,
    -
    29884  31 /*untilDay*/,
    -
    29885  480 /*untilTimeCode (7200/15)*/,
    -
    29886  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29887  },
    -
    29888  // 4:00 - %z 1992 Mar 29 2:00s
    -
    29889  {
    -
    29890  nullptr /*zonePolicy*/,
    -
    29891  "" /*format*/,
    -
    29892  960 /*offsetCode (14400/15)*/,
    -
    29893  0 /*offsetRemainder (14400%15)*/,
    -
    29894  0 /*deltaMinutes*/,
    -
    29895  1992 /*untilYear*/,
    -
    29896  3 /*untilMonth*/,
    -
    29897  29 /*untilDay*/,
    -
    29898  480 /*untilTimeCode (7200/15)*/,
    -
    29899  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29900  },
    -
    29901  // 3:00 Russia MSK/MSD 2011 Mar 27 2:00s
    -
    29902  {
    -
    29903  &kZonePolicyRussia /*zonePolicy*/,
    -
    29904  "MSK/MSD" /*format*/,
    -
    29905  720 /*offsetCode (10800/15)*/,
    -
    29906  0 /*offsetRemainder (10800%15)*/,
    -
    29907  0 /*deltaMinutes*/,
    -
    29908  2011 /*untilYear*/,
    -
    29909  3 /*untilMonth*/,
    -
    29910  27 /*untilDay*/,
    -
    29911  480 /*untilTimeCode (7200/15)*/,
    -
    29912  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29913  },
    -
    29914  // 4:00 - MSK 2014 Oct 26 2:00s
    -
    29915  {
    -
    29916  nullptr /*zonePolicy*/,
    -
    29917  "MSK" /*format*/,
    -
    29918  960 /*offsetCode (14400/15)*/,
    -
    29919  0 /*offsetRemainder (14400%15)*/,
    -
    29920  0 /*deltaMinutes*/,
    -
    29921  2014 /*untilYear*/,
    -
    29922  10 /*untilMonth*/,
    -
    29923  26 /*untilDay*/,
    -
    29924  480 /*untilTimeCode (7200/15)*/,
    -
    29925  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29926  },
    -
    29927  // 3:00 - MSK 2018 Oct 28 2:00s
    -
    29928  {
    -
    29929  nullptr /*zonePolicy*/,
    -
    29930  "MSK" /*format*/,
    -
    29931  720 /*offsetCode (10800/15)*/,
    -
    29932  0 /*offsetRemainder (10800%15)*/,
    -
    29933  0 /*deltaMinutes*/,
    -
    29934  2018 /*untilYear*/,
    -
    29935  10 /*untilMonth*/,
    -
    29936  28 /*untilDay*/,
    -
    29937  480 /*untilTimeCode (7200/15)*/,
    -
    29938  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29939  },
    -
    29940  // 4:00 - %z 2020 Dec 27 2:00s
    -
    29941  {
    -
    29942  nullptr /*zonePolicy*/,
    -
    29943  "" /*format*/,
    -
    29944  960 /*offsetCode (14400/15)*/,
    -
    29945  0 /*offsetRemainder (14400%15)*/,
    -
    29946  0 /*deltaMinutes*/,
    -
    29947  2020 /*untilYear*/,
    -
    29948  12 /*untilMonth*/,
    -
    29949  27 /*untilDay*/,
    -
    29950  480 /*untilTimeCode (7200/15)*/,
    -
    29951  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    29952  },
    -
    29953  // 3:00 - MSK
    -
    29954  {
    -
    29955  nullptr /*zonePolicy*/,
    -
    29956  "MSK" /*format*/,
    -
    29957  720 /*offsetCode (10800/15)*/,
    -
    29958  0 /*offsetRemainder (10800%15)*/,
    -
    29959  0 /*deltaMinutes*/,
    -
    29960  32767 /*untilYear*/,
    -
    29961  1 /*untilMonth*/,
    -
    29962  1 /*untilDay*/,
    -
    29963  0 /*untilTimeCode (0/15)*/,
    -
    29964  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29965  },
    -
    29966 
    -
    29967 };
    -
    29968 
    -
    29969 static const char kZoneNameEurope_Volgograd[] ACE_TIME_PROGMEM = "\x0b" "Volgograd";
    -
    29970 
    -
    29971 const complete::Info::ZoneInfo kZoneEurope_Volgograd ACE_TIME_PROGMEM = {
    -
    29972  kZoneNameEurope_Volgograd /*name*/,
    -
    29973  0x3ed0f389 /*zoneId*/,
    -
    29974  &kZoneContext /*zoneContext*/,
    -
    29975  11 /*numEras*/,
    -
    29976  kZoneEraEurope_Volgograd /*eras*/,
    -
    29977  nullptr /*targetInfo*/,
    -
    29978 };
    -
    29979 
    -
    29980 //---------------------------------------------------------------------------
    -
    29981 // Zone name: Europe/Warsaw
    -
    29982 // Eras: 9
    -
    29983 //---------------------------------------------------------------------------
    -
    29984 
    -
    29985 static const complete::Info::ZoneEra kZoneEraEurope_Warsaw[] ACE_TIME_PROGMEM = {
    -
    29986  // 1:24:00 - LMT 1880
    -
    29987  {
    -
    29988  nullptr /*zonePolicy*/,
    -
    29989  "LMT" /*format*/,
    -
    29990  336 /*offsetCode (5040/15)*/,
    -
    29991  0 /*offsetRemainder (5040%15)*/,
    -
    29992  0 /*deltaMinutes*/,
    -
    29993  1880 /*untilYear*/,
    -
    29994  1 /*untilMonth*/,
    -
    29995  1 /*untilDay*/,
    -
    29996  0 /*untilTimeCode (0/15)*/,
    -
    29997  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    29998  },
    -
    29999  // 1:24:00 - WMT 1915 Aug 5
    -
    30000  {
    -
    30001  nullptr /*zonePolicy*/,
    -
    30002  "WMT" /*format*/,
    -
    30003  336 /*offsetCode (5040/15)*/,
    -
    30004  0 /*offsetRemainder (5040%15)*/,
    -
    30005  0 /*deltaMinutes*/,
    -
    30006  1915 /*untilYear*/,
    -
    30007  8 /*untilMonth*/,
    -
    30008  5 /*untilDay*/,
    -
    30009  0 /*untilTimeCode (0/15)*/,
    -
    30010  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30011  },
    -
    30012  // 1:00 C-Eur CE%sT 1918 Sep 16 3:00
    -
    30013  {
    -
    30014  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    30015  "CE%T" /*format*/,
    -
    30016  240 /*offsetCode (3600/15)*/,
    -
    30017  0 /*offsetRemainder (3600%15)*/,
    -
    30018  0 /*deltaMinutes*/,
    -
    30019  1918 /*untilYear*/,
    -
    30020  9 /*untilMonth*/,
    -
    30021  16 /*untilDay*/,
    -
    30022  720 /*untilTimeCode (10800/15)*/,
    -
    30023  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30024  },
    -
    30025  // 2:00 Poland EE%sT 1922 Jun
    -
    30026  {
    -
    30027  &kZonePolicyPoland /*zonePolicy*/,
    -
    30028  "EE%T" /*format*/,
    -
    30029  480 /*offsetCode (7200/15)*/,
    -
    30030  0 /*offsetRemainder (7200%15)*/,
    -
    30031  0 /*deltaMinutes*/,
    -
    30032  1922 /*untilYear*/,
    -
    30033  6 /*untilMonth*/,
    -
    30034  1 /*untilDay*/,
    -
    30035  0 /*untilTimeCode (0/15)*/,
    -
    30036  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30037  },
    -
    30038  // 1:00 Poland CE%sT 1940 Jun 23 2:00
    -
    30039  {
    -
    30040  &kZonePolicyPoland /*zonePolicy*/,
    -
    30041  "CE%T" /*format*/,
    -
    30042  240 /*offsetCode (3600/15)*/,
    -
    30043  0 /*offsetRemainder (3600%15)*/,
    -
    30044  0 /*deltaMinutes*/,
    -
    30045  1940 /*untilYear*/,
    -
    30046  6 /*untilMonth*/,
    -
    30047  23 /*untilDay*/,
    -
    30048  480 /*untilTimeCode (7200/15)*/,
    -
    30049  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30050  },
    -
    30051  // 1:00 C-Eur CE%sT 1944 Oct
    -
    30052  {
    -
    30053  &kZonePolicyC_Eur /*zonePolicy*/,
    -
    30054  "CE%T" /*format*/,
    -
    30055  240 /*offsetCode (3600/15)*/,
    -
    30056  0 /*offsetRemainder (3600%15)*/,
    -
    30057  0 /*deltaMinutes*/,
    -
    30058  1944 /*untilYear*/,
    -
    30059  10 /*untilMonth*/,
    -
    30060  1 /*untilDay*/,
    -
    30061  0 /*untilTimeCode (0/15)*/,
    -
    30062  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30063  },
    -
    30064  // 1:00 Poland CE%sT 1977
    -
    30065  {
    -
    30066  &kZonePolicyPoland /*zonePolicy*/,
    -
    30067  "CE%T" /*format*/,
    -
    30068  240 /*offsetCode (3600/15)*/,
    -
    30069  0 /*offsetRemainder (3600%15)*/,
    -
    30070  0 /*deltaMinutes*/,
    -
    30071  1977 /*untilYear*/,
    -
    30072  1 /*untilMonth*/,
    -
    30073  1 /*untilDay*/,
    -
    30074  0 /*untilTimeCode (0/15)*/,
    -
    30075  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30076  },
    -
    30077  // 1:00 W-Eur CE%sT 1988
    -
    30078  {
    -
    30079  &kZonePolicyW_Eur /*zonePolicy*/,
    -
    30080  "CE%T" /*format*/,
    -
    30081  240 /*offsetCode (3600/15)*/,
    -
    30082  0 /*offsetRemainder (3600%15)*/,
    -
    30083  0 /*deltaMinutes*/,
    -
    30084  1988 /*untilYear*/,
    -
    30085  1 /*untilMonth*/,
    -
    30086  1 /*untilDay*/,
    -
    30087  0 /*untilTimeCode (0/15)*/,
    -
    30088  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30089  },
    -
    30090  // 1:00 EU CE%sT
    -
    30091  {
    -
    30092  &kZonePolicyEU /*zonePolicy*/,
    -
    30093  "CE%T" /*format*/,
    -
    30094  240 /*offsetCode (3600/15)*/,
    -
    30095  0 /*offsetRemainder (3600%15)*/,
    -
    30096  0 /*deltaMinutes*/,
    -
    30097  32767 /*untilYear*/,
    -
    30098  1 /*untilMonth*/,
    -
    30099  1 /*untilDay*/,
    -
    30100  0 /*untilTimeCode (0/15)*/,
    -
    30101  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30102  },
    -
    30103 
    -
    30104 };
    -
    30105 
    -
    30106 static const char kZoneNameEurope_Warsaw[] ACE_TIME_PROGMEM = "\x0b" "Warsaw";
    -
    30107 
    -
    30108 const complete::Info::ZoneInfo kZoneEurope_Warsaw ACE_TIME_PROGMEM = {
    -
    30109  kZoneNameEurope_Warsaw /*name*/,
    -
    30110  0x75185c19 /*zoneId*/,
    -
    30111  &kZoneContext /*zoneContext*/,
    -
    30112  9 /*numEras*/,
    -
    30113  kZoneEraEurope_Warsaw /*eras*/,
    -
    30114  nullptr /*targetInfo*/,
    -
    30115 };
    -
    30116 
    -
    30117 //---------------------------------------------------------------------------
    -
    30118 // Zone name: Europe/Zurich
    -
    30119 // Eras: 4
    -
    30120 //---------------------------------------------------------------------------
    -
    30121 
    -
    30122 static const complete::Info::ZoneEra kZoneEraEurope_Zurich[] ACE_TIME_PROGMEM = {
    -
    30123  // 0:34:08 - LMT 1853 Jul 16
    -
    30124  {
    -
    30125  nullptr /*zonePolicy*/,
    -
    30126  "LMT" /*format*/,
    -
    30127  136 /*offsetCode (2048/15)*/,
    -
    30128  8 /*offsetRemainder (2048%15)*/,
    -
    30129  0 /*deltaMinutes*/,
    -
    30130  1853 /*untilYear*/,
    -
    30131  7 /*untilMonth*/,
    -
    30132  16 /*untilDay*/,
    -
    30133  0 /*untilTimeCode (0/15)*/,
    -
    30134  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30135  },
    -
    30136  // 0:29:46 - BMT 1894 Jun
    -
    30137  {
    -
    30138  nullptr /*zonePolicy*/,
    -
    30139  "BMT" /*format*/,
    -
    30140  119 /*offsetCode (1786/15)*/,
    -
    30141  1 /*offsetRemainder (1786%15)*/,
    -
    30142  0 /*deltaMinutes*/,
    -
    30143  1894 /*untilYear*/,
    -
    30144  6 /*untilMonth*/,
    -
    30145  1 /*untilDay*/,
    -
    30146  0 /*untilTimeCode (0/15)*/,
    -
    30147  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30148  },
    -
    30149  // 1:00 Swiss CE%sT 1981
    -
    30150  {
    -
    30151  &kZonePolicySwiss /*zonePolicy*/,
    -
    30152  "CE%T" /*format*/,
    -
    30153  240 /*offsetCode (3600/15)*/,
    -
    30154  0 /*offsetRemainder (3600%15)*/,
    -
    30155  0 /*deltaMinutes*/,
    -
    30156  1981 /*untilYear*/,
    -
    30157  1 /*untilMonth*/,
    -
    30158  1 /*untilDay*/,
    -
    30159  0 /*untilTimeCode (0/15)*/,
    -
    30160  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30161  },
    -
    30162  // 1:00 EU CE%sT
    -
    30163  {
    -
    30164  &kZonePolicyEU /*zonePolicy*/,
    -
    30165  "CE%T" /*format*/,
    -
    30166  240 /*offsetCode (3600/15)*/,
    -
    30167  0 /*offsetRemainder (3600%15)*/,
    -
    30168  0 /*deltaMinutes*/,
    -
    30169  32767 /*untilYear*/,
    -
    30170  1 /*untilMonth*/,
    -
    30171  1 /*untilDay*/,
    -
    30172  0 /*untilTimeCode (0/15)*/,
    -
    30173  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30174  },
    -
    30175 
    -
    30176 };
    -
    30177 
    -
    30178 static const char kZoneNameEurope_Zurich[] ACE_TIME_PROGMEM = "\x0b" "Zurich";
    -
    30179 
    -
    30180 const complete::Info::ZoneInfo kZoneEurope_Zurich ACE_TIME_PROGMEM = {
    -
    30181  kZoneNameEurope_Zurich /*name*/,
    -
    30182  0x7d8195b9 /*zoneId*/,
    -
    30183  &kZoneContext /*zoneContext*/,
    -
    30184  4 /*numEras*/,
    -
    30185  kZoneEraEurope_Zurich /*eras*/,
    -
    30186  nullptr /*targetInfo*/,
    -
    30187 };
    -
    30188 
    -
    30189 //---------------------------------------------------------------------------
    -
    30190 // Zone name: Indian/Chagos
    -
    30191 // Eras: 3
    -
    30192 //---------------------------------------------------------------------------
    -
    30193 
    -
    30194 static const complete::Info::ZoneEra kZoneEraIndian_Chagos[] ACE_TIME_PROGMEM = {
    -
    30195  // 4:49:40 - LMT 1907
    -
    30196  {
    -
    30197  nullptr /*zonePolicy*/,
    -
    30198  "LMT" /*format*/,
    -
    30199  1158 /*offsetCode (17380/15)*/,
    -
    30200  10 /*offsetRemainder (17380%15)*/,
    -
    30201  0 /*deltaMinutes*/,
    -
    30202  1907 /*untilYear*/,
    -
    30203  1 /*untilMonth*/,
    -
    30204  1 /*untilDay*/,
    -
    30205  0 /*untilTimeCode (0/15)*/,
    -
    30206  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30207  },
    -
    30208  // 5:00 - %z 1996
    -
    30209  {
    -
    30210  nullptr /*zonePolicy*/,
    -
    30211  "" /*format*/,
    -
    30212  1200 /*offsetCode (18000/15)*/,
    -
    30213  0 /*offsetRemainder (18000%15)*/,
    -
    30214  0 /*deltaMinutes*/,
    -
    30215  1996 /*untilYear*/,
    -
    30216  1 /*untilMonth*/,
    -
    30217  1 /*untilDay*/,
    -
    30218  0 /*untilTimeCode (0/15)*/,
    -
    30219  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30220  },
    -
    30221  // 6:00 - %z
    -
    30222  {
    -
    30223  nullptr /*zonePolicy*/,
    -
    30224  "" /*format*/,
    -
    30225  1440 /*offsetCode (21600/15)*/,
    -
    30226  0 /*offsetRemainder (21600%15)*/,
    -
    30227  0 /*deltaMinutes*/,
    -
    30228  32767 /*untilYear*/,
    -
    30229  1 /*untilMonth*/,
    -
    30230  1 /*untilDay*/,
    -
    30231  0 /*untilTimeCode (0/15)*/,
    -
    30232  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30233  },
    -
    30234 
    -
    30235 };
    -
    30236 
    -
    30237 static const char kZoneNameIndian_Chagos[] ACE_TIME_PROGMEM = "\x0c" "Chagos";
    -
    30238 
    -
    30239 const complete::Info::ZoneInfo kZoneIndian_Chagos ACE_TIME_PROGMEM = {
    -
    30240  kZoneNameIndian_Chagos /*name*/,
    -
    30241  0x456f7c3c /*zoneId*/,
    -
    30242  &kZoneContext /*zoneContext*/,
    -
    30243  3 /*numEras*/,
    -
    30244  kZoneEraIndian_Chagos /*eras*/,
    -
    30245  nullptr /*targetInfo*/,
    -
    30246 };
    -
    30247 
    -
    30248 //---------------------------------------------------------------------------
    -
    30249 // Zone name: Indian/Maldives
    -
    30250 // Eras: 3
    -
    30251 //---------------------------------------------------------------------------
    -
    30252 
    -
    30253 static const complete::Info::ZoneEra kZoneEraIndian_Maldives[] ACE_TIME_PROGMEM = {
    -
    30254  // 4:54:00 - LMT 1880
    -
    30255  {
    -
    30256  nullptr /*zonePolicy*/,
    -
    30257  "LMT" /*format*/,
    -
    30258  1176 /*offsetCode (17640/15)*/,
    -
    30259  0 /*offsetRemainder (17640%15)*/,
    -
    30260  0 /*deltaMinutes*/,
    -
    30261  1880 /*untilYear*/,
    -
    30262  1 /*untilMonth*/,
    -
    30263  1 /*untilDay*/,
    -
    30264  0 /*untilTimeCode (0/15)*/,
    -
    30265  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30266  },
    -
    30267  // 4:54:00 - MMT 1960
    -
    30268  {
    -
    30269  nullptr /*zonePolicy*/,
    -
    30270  "MMT" /*format*/,
    -
    30271  1176 /*offsetCode (17640/15)*/,
    -
    30272  0 /*offsetRemainder (17640%15)*/,
    -
    30273  0 /*deltaMinutes*/,
    -
    30274  1960 /*untilYear*/,
    -
    30275  1 /*untilMonth*/,
    -
    30276  1 /*untilDay*/,
    -
    30277  0 /*untilTimeCode (0/15)*/,
    -
    30278  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30279  },
    -
    30280  // 5:00 - %z
    -
    30281  {
    -
    30282  nullptr /*zonePolicy*/,
    -
    30283  "" /*format*/,
    -
    30284  1200 /*offsetCode (18000/15)*/,
    -
    30285  0 /*offsetRemainder (18000%15)*/,
    -
    30286  0 /*deltaMinutes*/,
    -
    30287  32767 /*untilYear*/,
    -
    30288  1 /*untilMonth*/,
    -
    30289  1 /*untilDay*/,
    -
    30290  0 /*untilTimeCode (0/15)*/,
    -
    30291  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30292  },
    -
    30293 
    -
    30294 };
    -
    30295 
    -
    30296 static const char kZoneNameIndian_Maldives[] ACE_TIME_PROGMEM = "\x0c" "Maldives";
    -
    30297 
    -
    30298 const complete::Info::ZoneInfo kZoneIndian_Maldives ACE_TIME_PROGMEM = {
    -
    30299  kZoneNameIndian_Maldives /*name*/,
    -
    30300  0x9869681c /*zoneId*/,
    -
    30301  &kZoneContext /*zoneContext*/,
    -
    30302  3 /*numEras*/,
    -
    30303  kZoneEraIndian_Maldives /*eras*/,
    -
    30304  nullptr /*targetInfo*/,
    -
    30305 };
    -
    30306 
    -
    30307 //---------------------------------------------------------------------------
    -
    30308 // Zone name: Indian/Mauritius
    -
    30309 // Eras: 2
    -
    30310 //---------------------------------------------------------------------------
    -
    30311 
    -
    30312 static const complete::Info::ZoneEra kZoneEraIndian_Mauritius[] ACE_TIME_PROGMEM = {
    -
    30313  // 3:50:00 - LMT 1907
    -
    30314  {
    -
    30315  nullptr /*zonePolicy*/,
    -
    30316  "LMT" /*format*/,
    -
    30317  920 /*offsetCode (13800/15)*/,
    -
    30318  0 /*offsetRemainder (13800%15)*/,
    -
    30319  0 /*deltaMinutes*/,
    -
    30320  1907 /*untilYear*/,
    -
    30321  1 /*untilMonth*/,
    -
    30322  1 /*untilDay*/,
    -
    30323  0 /*untilTimeCode (0/15)*/,
    -
    30324  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30325  },
    -
    30326  // 4:00 Mauritius %z
    -
    30327  {
    -
    30328  &kZonePolicyMauritius /*zonePolicy*/,
    -
    30329  "" /*format*/,
    -
    30330  960 /*offsetCode (14400/15)*/,
    -
    30331  0 /*offsetRemainder (14400%15)*/,
    -
    30332  0 /*deltaMinutes*/,
    -
    30333  32767 /*untilYear*/,
    -
    30334  1 /*untilMonth*/,
    -
    30335  1 /*untilDay*/,
    -
    30336  0 /*untilTimeCode (0/15)*/,
    -
    30337  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30338  },
    -
    30339 
    -
    30340 };
    -
    30341 
    -
    30342 static const char kZoneNameIndian_Mauritius[] ACE_TIME_PROGMEM = "\x0c" "Mauritius";
    -
    30343 
    -
    30344 const complete::Info::ZoneInfo kZoneIndian_Mauritius ACE_TIME_PROGMEM = {
    -
    30345  kZoneNameIndian_Mauritius /*name*/,
    -
    30346  0x7b09c02a /*zoneId*/,
    -
    30347  &kZoneContext /*zoneContext*/,
    -
    30348  2 /*numEras*/,
    -
    30349  kZoneEraIndian_Mauritius /*eras*/,
    -
    30350  nullptr /*targetInfo*/,
    -
    30351 };
    -
    30352 
    -
    30353 //---------------------------------------------------------------------------
    -
    30354 // Zone name: Pacific/Apia
    -
    30355 // Eras: 5
    -
    30356 //---------------------------------------------------------------------------
    -
    30357 
    -
    30358 static const complete::Info::ZoneEra kZoneEraPacific_Apia[] ACE_TIME_PROGMEM = {
    -
    30359  // 12:33:04 - LMT 1892 Jul 5
    -
    30360  {
    -
    30361  nullptr /*zonePolicy*/,
    -
    30362  "LMT" /*format*/,
    -
    30363  3012 /*offsetCode (45184/15)*/,
    -
    30364  4 /*offsetRemainder (45184%15)*/,
    -
    30365  0 /*deltaMinutes*/,
    -
    30366  1892 /*untilYear*/,
    -
    30367  7 /*untilMonth*/,
    -
    30368  5 /*untilDay*/,
    -
    30369  0 /*untilTimeCode (0/15)*/,
    -
    30370  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30371  },
    -
    30372  // -11:26:56 - LMT 1911
    -
    30373  {
    -
    30374  nullptr /*zonePolicy*/,
    -
    30375  "LMT" /*format*/,
    -
    30376  -2748 /*offsetCode (-41216/15)*/,
    -
    30377  4 /*offsetRemainder (-41216%15)*/,
    -
    30378  0 /*deltaMinutes*/,
    -
    30379  1911 /*untilYear*/,
    -
    30380  1 /*untilMonth*/,
    -
    30381  1 /*untilDay*/,
    -
    30382  0 /*untilTimeCode (0/15)*/,
    -
    30383  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30384  },
    -
    30385  // -11:30 - %z 1950
    -
    30386  {
    -
    30387  nullptr /*zonePolicy*/,
    -
    30388  "" /*format*/,
    -
    30389  -2760 /*offsetCode (-41400/15)*/,
    -
    30390  0 /*offsetRemainder (-41400%15)*/,
    -
    30391  0 /*deltaMinutes*/,
    -
    30392  1950 /*untilYear*/,
    -
    30393  1 /*untilMonth*/,
    -
    30394  1 /*untilDay*/,
    -
    30395  0 /*untilTimeCode (0/15)*/,
    -
    30396  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30397  },
    -
    30398  // -11:00 WS %z 2011 Dec 29 24:00
    -
    30399  {
    -
    30400  &kZonePolicyWS /*zonePolicy*/,
    -
    30401  "" /*format*/,
    -
    30402  -2640 /*offsetCode (-39600/15)*/,
    -
    30403  0 /*offsetRemainder (-39600%15)*/,
    -
    30404  0 /*deltaMinutes*/,
    -
    30405  2011 /*untilYear*/,
    -
    30406  12 /*untilMonth*/,
    -
    30407  29 /*untilDay*/,
    -
    30408  5760 /*untilTimeCode (86400/15)*/,
    -
    30409  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30410  },
    -
    30411  // 13:00 WS %z
    -
    30412  {
    -
    30413  &kZonePolicyWS /*zonePolicy*/,
    -
    30414  "" /*format*/,
    -
    30415  3120 /*offsetCode (46800/15)*/,
    -
    30416  0 /*offsetRemainder (46800%15)*/,
    -
    30417  0 /*deltaMinutes*/,
    -
    30418  32767 /*untilYear*/,
    -
    30419  1 /*untilMonth*/,
    -
    30420  1 /*untilDay*/,
    -
    30421  0 /*untilTimeCode (0/15)*/,
    -
    30422  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30423  },
    -
    30424 
    -
    30425 };
    -
    30426 
    -
    30427 static const char kZoneNamePacific_Apia[] ACE_TIME_PROGMEM = "\x0e" "Apia";
    -
    30428 
    -
    30429 const complete::Info::ZoneInfo kZonePacific_Apia ACE_TIME_PROGMEM = {
    -
    30430  kZoneNamePacific_Apia /*name*/,
    -
    30431  0x23359b5e /*zoneId*/,
    -
    30432  &kZoneContext /*zoneContext*/,
    -
    30433  5 /*numEras*/,
    -
    30434  kZoneEraPacific_Apia /*eras*/,
    -
    30435  nullptr /*targetInfo*/,
    -
    30436 };
    -
    30437 
    -
    30438 //---------------------------------------------------------------------------
    -
    30439 // Zone name: Pacific/Auckland
    -
    30440 // Eras: 3
    -
    30441 //---------------------------------------------------------------------------
    -
    30442 
    -
    30443 static const complete::Info::ZoneEra kZoneEraPacific_Auckland[] ACE_TIME_PROGMEM = {
    -
    30444  // 11:39:04 - LMT 1868 Nov 2
    -
    30445  {
    -
    30446  nullptr /*zonePolicy*/,
    -
    30447  "LMT" /*format*/,
    -
    30448  2796 /*offsetCode (41944/15)*/,
    -
    30449  4 /*offsetRemainder (41944%15)*/,
    -
    30450  0 /*deltaMinutes*/,
    -
    30451  1868 /*untilYear*/,
    -
    30452  11 /*untilMonth*/,
    -
    30453  2 /*untilDay*/,
    -
    30454  0 /*untilTimeCode (0/15)*/,
    -
    30455  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30456  },
    -
    30457  // 11:30 NZ NZ%sT 1946 Jan 1
    -
    30458  {
    -
    30459  &kZonePolicyNZ /*zonePolicy*/,
    -
    30460  "NZ%T" /*format*/,
    -
    30461  2760 /*offsetCode (41400/15)*/,
    -
    30462  0 /*offsetRemainder (41400%15)*/,
    -
    30463  0 /*deltaMinutes*/,
    -
    30464  1946 /*untilYear*/,
    -
    30465  1 /*untilMonth*/,
    -
    30466  1 /*untilDay*/,
    -
    30467  0 /*untilTimeCode (0/15)*/,
    -
    30468  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30469  },
    -
    30470  // 12:00 NZ NZ%sT
    -
    30471  {
    -
    30472  &kZonePolicyNZ /*zonePolicy*/,
    -
    30473  "NZ%T" /*format*/,
    -
    30474  2880 /*offsetCode (43200/15)*/,
    -
    30475  0 /*offsetRemainder (43200%15)*/,
    -
    30476  0 /*deltaMinutes*/,
    -
    30477  32767 /*untilYear*/,
    -
    30478  1 /*untilMonth*/,
    -
    30479  1 /*untilDay*/,
    -
    30480  0 /*untilTimeCode (0/15)*/,
    -
    30481  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30482  },
    -
    30483 
    -
    30484 };
    -
    30485 
    -
    30486 static const char kZoneNamePacific_Auckland[] ACE_TIME_PROGMEM = "\x0e" "Auckland";
    -
    30487 
    -
    30488 const complete::Info::ZoneInfo kZonePacific_Auckland ACE_TIME_PROGMEM = {
    -
    30489  kZoneNamePacific_Auckland /*name*/,
    -
    30490  0x25062f86 /*zoneId*/,
    -
    30491  &kZoneContext /*zoneContext*/,
    -
    30492  3 /*numEras*/,
    -
    30493  kZoneEraPacific_Auckland /*eras*/,
    -
    30494  nullptr /*targetInfo*/,
    -
    30495 };
    -
    30496 
    -
    30497 //---------------------------------------------------------------------------
    -
    30498 // Zone name: Pacific/Bougainville
    -
    30499 // Eras: 6
    -
    30500 //---------------------------------------------------------------------------
    -
    30501 
    -
    30502 static const complete::Info::ZoneEra kZoneEraPacific_Bougainville[] ACE_TIME_PROGMEM = {
    -
    30503  // 10:22:16 - LMT 1880
    -
    30504  {
    -
    30505  nullptr /*zonePolicy*/,
    -
    30506  "LMT" /*format*/,
    -
    30507  2489 /*offsetCode (37336/15)*/,
    -
    30508  1 /*offsetRemainder (37336%15)*/,
    -
    30509  0 /*deltaMinutes*/,
    -
    30510  1880 /*untilYear*/,
    -
    30511  1 /*untilMonth*/,
    -
    30512  1 /*untilDay*/,
    -
    30513  0 /*untilTimeCode (0/15)*/,
    -
    30514  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30515  },
    -
    30516  // 9:48:32 - PMMT 1895
    -
    30517  {
    -
    30518  nullptr /*zonePolicy*/,
    -
    30519  "PMMT" /*format*/,
    -
    30520  2354 /*offsetCode (35312/15)*/,
    -
    30521  2 /*offsetRemainder (35312%15)*/,
    -
    30522  0 /*deltaMinutes*/,
    -
    30523  1895 /*untilYear*/,
    -
    30524  1 /*untilMonth*/,
    -
    30525  1 /*untilDay*/,
    -
    30526  0 /*untilTimeCode (0/15)*/,
    -
    30527  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30528  },
    -
    30529  // 10:00 - %z 1942 Jul
    -
    30530  {
    -
    30531  nullptr /*zonePolicy*/,
    -
    30532  "" /*format*/,
    -
    30533  2400 /*offsetCode (36000/15)*/,
    -
    30534  0 /*offsetRemainder (36000%15)*/,
    -
    30535  0 /*deltaMinutes*/,
    -
    30536  1942 /*untilYear*/,
    -
    30537  7 /*untilMonth*/,
    -
    30538  1 /*untilDay*/,
    -
    30539  0 /*untilTimeCode (0/15)*/,
    -
    30540  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30541  },
    -
    30542  // 9:00 - %z 1945 Aug 21
    -
    30543  {
    -
    30544  nullptr /*zonePolicy*/,
    -
    30545  "" /*format*/,
    -
    30546  2160 /*offsetCode (32400/15)*/,
    -
    30547  0 /*offsetRemainder (32400%15)*/,
    -
    30548  0 /*deltaMinutes*/,
    -
    30549  1945 /*untilYear*/,
    -
    30550  8 /*untilMonth*/,
    -
    30551  21 /*untilDay*/,
    -
    30552  0 /*untilTimeCode (0/15)*/,
    -
    30553  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30554  },
    -
    30555  // 10:00 - %z 2014 Dec 28 2:00
    -
    30556  {
    -
    30557  nullptr /*zonePolicy*/,
    -
    30558  "" /*format*/,
    -
    30559  2400 /*offsetCode (36000/15)*/,
    -
    30560  0 /*offsetRemainder (36000%15)*/,
    -
    30561  0 /*deltaMinutes*/,
    -
    30562  2014 /*untilYear*/,
    -
    30563  12 /*untilMonth*/,
    -
    30564  28 /*untilDay*/,
    -
    30565  480 /*untilTimeCode (7200/15)*/,
    -
    30566  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30567  },
    -
    30568  // 11:00 - %z
    -
    30569  {
    -
    30570  nullptr /*zonePolicy*/,
    -
    30571  "" /*format*/,
    -
    30572  2640 /*offsetCode (39600/15)*/,
    -
    30573  0 /*offsetRemainder (39600%15)*/,
    -
    30574  0 /*deltaMinutes*/,
    -
    30575  32767 /*untilYear*/,
    -
    30576  1 /*untilMonth*/,
    -
    30577  1 /*untilDay*/,
    -
    30578  0 /*untilTimeCode (0/15)*/,
    -
    30579  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30580  },
    -
    30581 
    -
    30582 };
    -
    30583 
    -
    30584 static const char kZoneNamePacific_Bougainville[] ACE_TIME_PROGMEM = "\x0e" "Bougainville";
    -
    30585 
    -
    30586 const complete::Info::ZoneInfo kZonePacific_Bougainville ACE_TIME_PROGMEM = {
    -
    30587  kZoneNamePacific_Bougainville /*name*/,
    -
    30588  0x5e10f7a4 /*zoneId*/,
    -
    30589  &kZoneContext /*zoneContext*/,
    -
    30590  6 /*numEras*/,
    -
    30591  kZoneEraPacific_Bougainville /*eras*/,
    -
    30592  nullptr /*targetInfo*/,
    -
    30593 };
    -
    30594 
    -
    30595 //---------------------------------------------------------------------------
    -
    30596 // Zone name: Pacific/Chatham
    -
    30597 // Eras: 3
    -
    30598 //---------------------------------------------------------------------------
    -
    30599 
    -
    30600 static const complete::Info::ZoneEra kZoneEraPacific_Chatham[] ACE_TIME_PROGMEM = {
    -
    30601  // 12:13:48 - LMT 1868 Nov 2
    -
    30602  {
    -
    30603  nullptr /*zonePolicy*/,
    -
    30604  "LMT" /*format*/,
    -
    30605  2935 /*offsetCode (44028/15)*/,
    -
    30606  3 /*offsetRemainder (44028%15)*/,
    -
    30607  0 /*deltaMinutes*/,
    -
    30608  1868 /*untilYear*/,
    -
    30609  11 /*untilMonth*/,
    -
    30610  2 /*untilDay*/,
    -
    30611  0 /*untilTimeCode (0/15)*/,
    -
    30612  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30613  },
    -
    30614  // 12:15 - %z 1946 Jan 1
    -
    30615  {
    -
    30616  nullptr /*zonePolicy*/,
    -
    30617  "" /*format*/,
    -
    30618  2940 /*offsetCode (44100/15)*/,
    -
    30619  0 /*offsetRemainder (44100%15)*/,
    -
    30620  0 /*deltaMinutes*/,
    -
    30621  1946 /*untilYear*/,
    -
    30622  1 /*untilMonth*/,
    -
    30623  1 /*untilDay*/,
    -
    30624  0 /*untilTimeCode (0/15)*/,
    -
    30625  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30626  },
    -
    30627  // 12:45 Chatham %z
    -
    30628  {
    -
    30629  &kZonePolicyChatham /*zonePolicy*/,
    -
    30630  "" /*format*/,
    -
    30631  3060 /*offsetCode (45900/15)*/,
    -
    30632  0 /*offsetRemainder (45900%15)*/,
    -
    30633  0 /*deltaMinutes*/,
    -
    30634  32767 /*untilYear*/,
    -
    30635  1 /*untilMonth*/,
    -
    30636  1 /*untilDay*/,
    -
    30637  0 /*untilTimeCode (0/15)*/,
    -
    30638  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30639  },
    -
    30640 
    -
    30641 };
    -
    30642 
    -
    30643 static const char kZoneNamePacific_Chatham[] ACE_TIME_PROGMEM = "\x0e" "Chatham";
    -
    30644 
    -
    30645 const complete::Info::ZoneInfo kZonePacific_Chatham ACE_TIME_PROGMEM = {
    -
    30646  kZoneNamePacific_Chatham /*name*/,
    -
    30647  0x2f0de999 /*zoneId*/,
    -
    30648  &kZoneContext /*zoneContext*/,
    -
    30649  3 /*numEras*/,
    -
    30650  kZoneEraPacific_Chatham /*eras*/,
    -
    30651  nullptr /*targetInfo*/,
    -
    30652 };
    -
    30653 
    -
    30654 //---------------------------------------------------------------------------
    -
    30655 // Zone name: Pacific/Easter
    -
    30656 // Eras: 4
    -
    30657 //---------------------------------------------------------------------------
    -
    30658 
    -
    30659 static const complete::Info::ZoneEra kZoneEraPacific_Easter[] ACE_TIME_PROGMEM = {
    -
    30660  // -7:17:28 - LMT 1890
    -
    30661  {
    -
    30662  nullptr /*zonePolicy*/,
    -
    30663  "LMT" /*format*/,
    -
    30664  -1750 /*offsetCode (-26248/15)*/,
    -
    30665  2 /*offsetRemainder (-26248%15)*/,
    -
    30666  0 /*deltaMinutes*/,
    -
    30667  1890 /*untilYear*/,
    -
    30668  1 /*untilMonth*/,
    -
    30669  1 /*untilDay*/,
    -
    30670  0 /*untilTimeCode (0/15)*/,
    -
    30671  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30672  },
    -
    30673  // -7:17:28 - EMT 1932 Sep
    -
    30674  {
    -
    30675  nullptr /*zonePolicy*/,
    -
    30676  "EMT" /*format*/,
    -
    30677  -1750 /*offsetCode (-26248/15)*/,
    -
    30678  2 /*offsetRemainder (-26248%15)*/,
    -
    30679  0 /*deltaMinutes*/,
    -
    30680  1932 /*untilYear*/,
    -
    30681  9 /*untilMonth*/,
    -
    30682  1 /*untilDay*/,
    -
    30683  0 /*untilTimeCode (0/15)*/,
    -
    30684  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30685  },
    -
    30686  // -7:00 Chile %z 1982 Mar 14 3:00u
    -
    30687  {
    -
    30688  &kZonePolicyChile /*zonePolicy*/,
    -
    30689  "" /*format*/,
    -
    30690  -1680 /*offsetCode (-25200/15)*/,
    -
    30691  0 /*offsetRemainder (-25200%15)*/,
    -
    30692  0 /*deltaMinutes*/,
    -
    30693  1982 /*untilYear*/,
    -
    30694  3 /*untilMonth*/,
    -
    30695  14 /*untilDay*/,
    -
    30696  720 /*untilTimeCode (10800/15)*/,
    -
    30697  32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    30698  },
    -
    30699  // -6:00 Chile %z
    -
    30700  {
    -
    30701  &kZonePolicyChile /*zonePolicy*/,
    -
    30702  "" /*format*/,
    -
    30703  -1440 /*offsetCode (-21600/15)*/,
    -
    30704  0 /*offsetRemainder (-21600%15)*/,
    -
    30705  0 /*deltaMinutes*/,
    -
    30706  32767 /*untilYear*/,
    -
    30707  1 /*untilMonth*/,
    -
    30708  1 /*untilDay*/,
    -
    30709  0 /*untilTimeCode (0/15)*/,
    -
    30710  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30711  },
    -
    30712 
    -
    30713 };
    -
    30714 
    -
    30715 static const char kZoneNamePacific_Easter[] ACE_TIME_PROGMEM = "\x0e" "Easter";
    -
    30716 
    -
    30717 const complete::Info::ZoneInfo kZonePacific_Easter ACE_TIME_PROGMEM = {
    -
    30718  kZoneNamePacific_Easter /*name*/,
    -
    30719  0xcf54f7e7 /*zoneId*/,
    -
    30720  &kZoneContext /*zoneContext*/,
    -
    30721  4 /*numEras*/,
    -
    30722  kZoneEraPacific_Easter /*eras*/,
    -
    30723  nullptr /*targetInfo*/,
    -
    30724 };
    -
    30725 
    -
    30726 //---------------------------------------------------------------------------
    -
    30727 // Zone name: Pacific/Efate
    -
    30728 // Eras: 2
    -
    30729 //---------------------------------------------------------------------------
    -
    30730 
    -
    30731 static const complete::Info::ZoneEra kZoneEraPacific_Efate[] ACE_TIME_PROGMEM = {
    -
    30732  // 11:13:16 - LMT 1912 Jan 13
    -
    30733  {
    -
    30734  nullptr /*zonePolicy*/,
    -
    30735  "LMT" /*format*/,
    -
    30736  2693 /*offsetCode (40396/15)*/,
    -
    30737  1 /*offsetRemainder (40396%15)*/,
    -
    30738  0 /*deltaMinutes*/,
    -
    30739  1912 /*untilYear*/,
    -
    30740  1 /*untilMonth*/,
    -
    30741  13 /*untilDay*/,
    -
    30742  0 /*untilTimeCode (0/15)*/,
    -
    30743  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30744  },
    -
    30745  // 11:00 Vanuatu %z
    -
    30746  {
    -
    30747  &kZonePolicyVanuatu /*zonePolicy*/,
    -
    30748  "" /*format*/,
    -
    30749  2640 /*offsetCode (39600/15)*/,
    -
    30750  0 /*offsetRemainder (39600%15)*/,
    -
    30751  0 /*deltaMinutes*/,
    -
    30752  32767 /*untilYear*/,
    -
    30753  1 /*untilMonth*/,
    -
    30754  1 /*untilDay*/,
    -
    30755  0 /*untilTimeCode (0/15)*/,
    -
    30756  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30757  },
    -
    30758 
    -
    30759 };
    -
    30760 
    -
    30761 static const char kZoneNamePacific_Efate[] ACE_TIME_PROGMEM = "\x0e" "Efate";
    -
    30762 
    -
    30763 const complete::Info::ZoneInfo kZonePacific_Efate ACE_TIME_PROGMEM = {
    -
    30764  kZoneNamePacific_Efate /*name*/,
    -
    30765  0x8a2bce28 /*zoneId*/,
    -
    30766  &kZoneContext /*zoneContext*/,
    -
    30767  2 /*numEras*/,
    -
    30768  kZoneEraPacific_Efate /*eras*/,
    -
    30769  nullptr /*targetInfo*/,
    -
    30770 };
    -
    30771 
    -
    30772 //---------------------------------------------------------------------------
    -
    30773 // Zone name: Pacific/Fakaofo
    -
    30774 // Eras: 3
    -
    30775 //---------------------------------------------------------------------------
    -
    30776 
    -
    30777 static const complete::Info::ZoneEra kZoneEraPacific_Fakaofo[] ACE_TIME_PROGMEM = {
    -
    30778  // -11:24:56 - LMT 1901
    -
    30779  {
    -
    30780  nullptr /*zonePolicy*/,
    -
    30781  "LMT" /*format*/,
    -
    30782  -2740 /*offsetCode (-41096/15)*/,
    -
    30783  4 /*offsetRemainder (-41096%15)*/,
    -
    30784  0 /*deltaMinutes*/,
    -
    30785  1901 /*untilYear*/,
    -
    30786  1 /*untilMonth*/,
    -
    30787  1 /*untilDay*/,
    -
    30788  0 /*untilTimeCode (0/15)*/,
    -
    30789  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30790  },
    -
    30791  // -11:00 - %z 2011 Dec 30
    -
    30792  {
    -
    30793  nullptr /*zonePolicy*/,
    -
    30794  "" /*format*/,
    -
    30795  -2640 /*offsetCode (-39600/15)*/,
    -
    30796  0 /*offsetRemainder (-39600%15)*/,
    -
    30797  0 /*deltaMinutes*/,
    -
    30798  2011 /*untilYear*/,
    -
    30799  12 /*untilMonth*/,
    -
    30800  30 /*untilDay*/,
    -
    30801  0 /*untilTimeCode (0/15)*/,
    -
    30802  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30803  },
    -
    30804  // 13:00 - %z
    -
    30805  {
    -
    30806  nullptr /*zonePolicy*/,
    -
    30807  "" /*format*/,
    -
    30808  3120 /*offsetCode (46800/15)*/,
    -
    30809  0 /*offsetRemainder (46800%15)*/,
    -
    30810  0 /*deltaMinutes*/,
    -
    30811  32767 /*untilYear*/,
    -
    30812  1 /*untilMonth*/,
    -
    30813  1 /*untilDay*/,
    -
    30814  0 /*untilTimeCode (0/15)*/,
    -
    30815  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30816  },
    -
    30817 
    -
    30818 };
    -
    30819 
    -
    30820 static const char kZoneNamePacific_Fakaofo[] ACE_TIME_PROGMEM = "\x0e" "Fakaofo";
    -
    30821 
    -
    30822 const complete::Info::ZoneInfo kZonePacific_Fakaofo ACE_TIME_PROGMEM = {
    -
    30823  kZoneNamePacific_Fakaofo /*name*/,
    -
    30824  0x06532bba /*zoneId*/,
    -
    30825  &kZoneContext /*zoneContext*/,
    -
    30826  3 /*numEras*/,
    -
    30827  kZoneEraPacific_Fakaofo /*eras*/,
    -
    30828  nullptr /*targetInfo*/,
    -
    30829 };
    -
    30830 
    -
    30831 //---------------------------------------------------------------------------
    -
    30832 // Zone name: Pacific/Fiji
    -
    30833 // Eras: 2
    -
    30834 //---------------------------------------------------------------------------
    -
    30835 
    -
    30836 static const complete::Info::ZoneEra kZoneEraPacific_Fiji[] ACE_TIME_PROGMEM = {
    -
    30837  // 11:55:44 - LMT 1915 Oct 26
    -
    30838  {
    -
    30839  nullptr /*zonePolicy*/,
    -
    30840  "LMT" /*format*/,
    -
    30841  2862 /*offsetCode (42944/15)*/,
    -
    30842  14 /*offsetRemainder (42944%15)*/,
    -
    30843  0 /*deltaMinutes*/,
    -
    30844  1915 /*untilYear*/,
    -
    30845  10 /*untilMonth*/,
    -
    30846  26 /*untilDay*/,
    -
    30847  0 /*untilTimeCode (0/15)*/,
    -
    30848  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30849  },
    -
    30850  // 12:00 Fiji %z
    -
    30851  {
    -
    30852  &kZonePolicyFiji /*zonePolicy*/,
    -
    30853  "" /*format*/,
    -
    30854  2880 /*offsetCode (43200/15)*/,
    -
    30855  0 /*offsetRemainder (43200%15)*/,
    -
    30856  0 /*deltaMinutes*/,
    -
    30857  32767 /*untilYear*/,
    -
    30858  1 /*untilMonth*/,
    -
    30859  1 /*untilDay*/,
    -
    30860  0 /*untilTimeCode (0/15)*/,
    -
    30861  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30862  },
    -
    30863 
    -
    30864 };
    -
    30865 
    -
    30866 static const char kZoneNamePacific_Fiji[] ACE_TIME_PROGMEM = "\x0e" "Fiji";
    -
    30867 
    -
    30868 const complete::Info::ZoneInfo kZonePacific_Fiji ACE_TIME_PROGMEM = {
    -
    30869  kZoneNamePacific_Fiji /*name*/,
    -
    30870  0x23383ba5 /*zoneId*/,
    -
    30871  &kZoneContext /*zoneContext*/,
    -
    30872  2 /*numEras*/,
    -
    30873  kZoneEraPacific_Fiji /*eras*/,
    -
    30874  nullptr /*targetInfo*/,
    -
    30875 };
    -
    30876 
    -
    30877 //---------------------------------------------------------------------------
    -
    30878 // Zone name: Pacific/Galapagos
    -
    30879 // Eras: 3
    -
    30880 //---------------------------------------------------------------------------
    -
    30881 
    -
    30882 static const complete::Info::ZoneEra kZoneEraPacific_Galapagos[] ACE_TIME_PROGMEM = {
    -
    30883  // -5:58:24 - LMT 1931
    -
    30884  {
    -
    30885  nullptr /*zonePolicy*/,
    -
    30886  "LMT" /*format*/,
    -
    30887  -1434 /*offsetCode (-21504/15)*/,
    -
    30888  6 /*offsetRemainder (-21504%15)*/,
    -
    30889  0 /*deltaMinutes*/,
    -
    30890  1931 /*untilYear*/,
    -
    30891  1 /*untilMonth*/,
    -
    30892  1 /*untilDay*/,
    -
    30893  0 /*untilTimeCode (0/15)*/,
    -
    30894  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30895  },
    -
    30896  // -5:00 - %z 1986
    -
    30897  {
    -
    30898  nullptr /*zonePolicy*/,
    -
    30899  "" /*format*/,
    -
    30900  -1200 /*offsetCode (-18000/15)*/,
    -
    30901  0 /*offsetRemainder (-18000%15)*/,
    -
    30902  0 /*deltaMinutes*/,
    -
    30903  1986 /*untilYear*/,
    -
    30904  1 /*untilMonth*/,
    -
    30905  1 /*untilDay*/,
    -
    30906  0 /*untilTimeCode (0/15)*/,
    -
    30907  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30908  },
    -
    30909  // -6:00 Ecuador %z
    -
    30910  {
    -
    30911  &kZonePolicyEcuador /*zonePolicy*/,
    -
    30912  "" /*format*/,
    -
    30913  -1440 /*offsetCode (-21600/15)*/,
    -
    30914  0 /*offsetRemainder (-21600%15)*/,
    -
    30915  0 /*deltaMinutes*/,
    -
    30916  32767 /*untilYear*/,
    -
    30917  1 /*untilMonth*/,
    -
    30918  1 /*untilDay*/,
    -
    30919  0 /*untilTimeCode (0/15)*/,
    -
    30920  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30921  },
    -
    30922 
    -
    30923 };
    -
    30924 
    -
    30925 static const char kZoneNamePacific_Galapagos[] ACE_TIME_PROGMEM = "\x0e" "Galapagos";
    -
    30926 
    -
    30927 const complete::Info::ZoneInfo kZonePacific_Galapagos ACE_TIME_PROGMEM = {
    -
    30928  kZoneNamePacific_Galapagos /*name*/,
    -
    30929  0xa952f752 /*zoneId*/,
    -
    30930  &kZoneContext /*zoneContext*/,
    -
    30931  3 /*numEras*/,
    -
    30932  kZoneEraPacific_Galapagos /*eras*/,
    -
    30933  nullptr /*targetInfo*/,
    -
    30934 };
    -
    30935 
    -
    30936 //---------------------------------------------------------------------------
    -
    30937 // Zone name: Pacific/Gambier
    -
    30938 // Eras: 2
    -
    30939 //---------------------------------------------------------------------------
    -
    30940 
    -
    30941 static const complete::Info::ZoneEra kZoneEraPacific_Gambier[] ACE_TIME_PROGMEM = {
    -
    30942  // -8:59:48 - LMT 1912 Oct 1
    -
    30943  {
    -
    30944  nullptr /*zonePolicy*/,
    -
    30945  "LMT" /*format*/,
    -
    30946  -2160 /*offsetCode (-32388/15)*/,
    -
    30947  12 /*offsetRemainder (-32388%15)*/,
    -
    30948  0 /*deltaMinutes*/,
    -
    30949  1912 /*untilYear*/,
    -
    30950  10 /*untilMonth*/,
    -
    30951  1 /*untilDay*/,
    -
    30952  0 /*untilTimeCode (0/15)*/,
    -
    30953  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30954  },
    -
    30955  // -9:00 - %z
    -
    30956  {
    -
    30957  nullptr /*zonePolicy*/,
    -
    30958  "" /*format*/,
    -
    30959  -2160 /*offsetCode (-32400/15)*/,
    -
    30960  0 /*offsetRemainder (-32400%15)*/,
    -
    30961  0 /*deltaMinutes*/,
    -
    30962  32767 /*untilYear*/,
    -
    30963  1 /*untilMonth*/,
    -
    30964  1 /*untilDay*/,
    -
    30965  0 /*untilTimeCode (0/15)*/,
    -
    30966  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    30967  },
    -
    30968 
    -
    30969 };
    -
    30970 
    -
    30971 static const char kZoneNamePacific_Gambier[] ACE_TIME_PROGMEM = "\x0e" "Gambier";
    -
    30972 
    -
    30973 const complete::Info::ZoneInfo kZonePacific_Gambier ACE_TIME_PROGMEM = {
    -
    30974  kZoneNamePacific_Gambier /*name*/,
    -
    30975  0x53720c3a /*zoneId*/,
    -
    30976  &kZoneContext /*zoneContext*/,
    -
    30977  2 /*numEras*/,
    -
    30978  kZoneEraPacific_Gambier /*eras*/,
    -
    30979  nullptr /*targetInfo*/,
    -
    30980 };
    -
    30981 
    -
    30982 //---------------------------------------------------------------------------
    -
    30983 // Zone name: Pacific/Guadalcanal
    -
    30984 // Eras: 2
    -
    30985 //---------------------------------------------------------------------------
    -
    30986 
    -
    30987 static const complete::Info::ZoneEra kZoneEraPacific_Guadalcanal[] ACE_TIME_PROGMEM = {
    -
    30988  // 10:39:48 - LMT 1912 Oct 1
    -
    30989  {
    -
    30990  nullptr /*zonePolicy*/,
    -
    30991  "LMT" /*format*/,
    -
    30992  2559 /*offsetCode (38388/15)*/,
    -
    30993  3 /*offsetRemainder (38388%15)*/,
    -
    30994  0 /*deltaMinutes*/,
    -
    30995  1912 /*untilYear*/,
    -
    30996  10 /*untilMonth*/,
    -
    30997  1 /*untilDay*/,
    -
    30998  0 /*untilTimeCode (0/15)*/,
    -
    30999  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31000  },
    -
    31001  // 11:00 - %z
    -
    31002  {
    -
    31003  nullptr /*zonePolicy*/,
    -
    31004  "" /*format*/,
    -
    31005  2640 /*offsetCode (39600/15)*/,
    -
    31006  0 /*offsetRemainder (39600%15)*/,
    -
    31007  0 /*deltaMinutes*/,
    -
    31008  32767 /*untilYear*/,
    -
    31009  1 /*untilMonth*/,
    -
    31010  1 /*untilDay*/,
    -
    31011  0 /*untilTimeCode (0/15)*/,
    -
    31012  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31013  },
    -
    31014 
    -
    31015 };
    -
    31016 
    -
    31017 static const char kZoneNamePacific_Guadalcanal[] ACE_TIME_PROGMEM = "\x0e" "Guadalcanal";
    -
    31018 
    -
    31019 const complete::Info::ZoneInfo kZonePacific_Guadalcanal ACE_TIME_PROGMEM = {
    -
    31020  kZoneNamePacific_Guadalcanal /*name*/,
    -
    31021  0xf4dd25f0 /*zoneId*/,
    -
    31022  &kZoneContext /*zoneContext*/,
    -
    31023  2 /*numEras*/,
    -
    31024  kZoneEraPacific_Guadalcanal /*eras*/,
    -
    31025  nullptr /*targetInfo*/,
    -
    31026 };
    -
    31027 
    -
    31028 //---------------------------------------------------------------------------
    -
    31029 // Zone name: Pacific/Guam
    -
    31030 // Eras: 6
    -
    31031 //---------------------------------------------------------------------------
    -
    31032 
    -
    31033 static const complete::Info::ZoneEra kZoneEraPacific_Guam[] ACE_TIME_PROGMEM = {
    -
    31034  // -14:21:00 - LMT 1844 Dec 31
    -
    31035  {
    -
    31036  nullptr /*zonePolicy*/,
    -
    31037  "LMT" /*format*/,
    -
    31038  -3444 /*offsetCode (-51660/15)*/,
    -
    31039  0 /*offsetRemainder (-51660%15)*/,
    -
    31040  0 /*deltaMinutes*/,
    -
    31041  1844 /*untilYear*/,
    -
    31042  12 /*untilMonth*/,
    -
    31043  31 /*untilDay*/,
    -
    31044  0 /*untilTimeCode (0/15)*/,
    -
    31045  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31046  },
    -
    31047  // 9:39:00 - LMT 1901
    -
    31048  {
    -
    31049  nullptr /*zonePolicy*/,
    -
    31050  "LMT" /*format*/,
    -
    31051  2316 /*offsetCode (34740/15)*/,
    -
    31052  0 /*offsetRemainder (34740%15)*/,
    -
    31053  0 /*deltaMinutes*/,
    -
    31054  1901 /*untilYear*/,
    -
    31055  1 /*untilMonth*/,
    -
    31056  1 /*untilDay*/,
    -
    31057  0 /*untilTimeCode (0/15)*/,
    -
    31058  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31059  },
    -
    31060  // 10:00 - GST 1941 Dec 10
    -
    31061  {
    -
    31062  nullptr /*zonePolicy*/,
    -
    31063  "GST" /*format*/,
    -
    31064  2400 /*offsetCode (36000/15)*/,
    -
    31065  0 /*offsetRemainder (36000%15)*/,
    -
    31066  0 /*deltaMinutes*/,
    -
    31067  1941 /*untilYear*/,
    -
    31068  12 /*untilMonth*/,
    -
    31069  10 /*untilDay*/,
    -
    31070  0 /*untilTimeCode (0/15)*/,
    -
    31071  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31072  },
    -
    31073  // 9:00 - %z 1944 Jul 31
    -
    31074  {
    -
    31075  nullptr /*zonePolicy*/,
    -
    31076  "" /*format*/,
    -
    31077  2160 /*offsetCode (32400/15)*/,
    -
    31078  0 /*offsetRemainder (32400%15)*/,
    -
    31079  0 /*deltaMinutes*/,
    -
    31080  1944 /*untilYear*/,
    -
    31081  7 /*untilMonth*/,
    -
    31082  31 /*untilDay*/,
    -
    31083  0 /*untilTimeCode (0/15)*/,
    -
    31084  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31085  },
    -
    31086  // 10:00 Guam G%sT 2000 Dec 23
    -
    31087  {
    -
    31088  &kZonePolicyGuam /*zonePolicy*/,
    -
    31089  "G%T" /*format*/,
    -
    31090  2400 /*offsetCode (36000/15)*/,
    -
    31091  0 /*offsetRemainder (36000%15)*/,
    -
    31092  0 /*deltaMinutes*/,
    -
    31093  2000 /*untilYear*/,
    -
    31094  12 /*untilMonth*/,
    -
    31095  23 /*untilDay*/,
    -
    31096  0 /*untilTimeCode (0/15)*/,
    -
    31097  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31098  },
    -
    31099  // 10:00 - ChST
    -
    31100  {
    -
    31101  nullptr /*zonePolicy*/,
    -
    31102  "ChST" /*format*/,
    -
    31103  2400 /*offsetCode (36000/15)*/,
    -
    31104  0 /*offsetRemainder (36000%15)*/,
    -
    31105  0 /*deltaMinutes*/,
    -
    31106  32767 /*untilYear*/,
    -
    31107  1 /*untilMonth*/,
    -
    31108  1 /*untilDay*/,
    -
    31109  0 /*untilTimeCode (0/15)*/,
    -
    31110  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31111  },
    -
    31112 
    -
    31113 };
    -
    31114 
    -
    31115 static const char kZoneNamePacific_Guam[] ACE_TIME_PROGMEM = "\x0e" "Guam";
    -
    31116 
    -
    31117 const complete::Info::ZoneInfo kZonePacific_Guam ACE_TIME_PROGMEM = {
    -
    31118  kZoneNamePacific_Guam /*name*/,
    -
    31119  0x2338f9ed /*zoneId*/,
    -
    31120  &kZoneContext /*zoneContext*/,
    -
    31121  6 /*numEras*/,
    -
    31122  kZoneEraPacific_Guam /*eras*/,
    -
    31123  nullptr /*targetInfo*/,
    -
    31124 };
    -
    31125 
    -
    31126 //---------------------------------------------------------------------------
    -
    31127 // Zone name: Pacific/Honolulu
    -
    31128 // Eras: 5
    -
    31129 //---------------------------------------------------------------------------
    -
    31130 
    -
    31131 static const complete::Info::ZoneEra kZoneEraPacific_Honolulu[] ACE_TIME_PROGMEM = {
    -
    31132  // -10:31:26 - LMT 1896 Jan 13 12:00
    -
    31133  {
    -
    31134  nullptr /*zonePolicy*/,
    -
    31135  "LMT" /*format*/,
    -
    31136  -2526 /*offsetCode (-37886/15)*/,
    -
    31137  4 /*offsetRemainder (-37886%15)*/,
    -
    31138  0 /*deltaMinutes*/,
    -
    31139  1896 /*untilYear*/,
    -
    31140  1 /*untilMonth*/,
    -
    31141  13 /*untilDay*/,
    -
    31142  2880 /*untilTimeCode (43200/15)*/,
    -
    31143  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31144  },
    -
    31145  // -10:30 - HST 1933 Apr 30 2:00
    -
    31146  {
    -
    31147  nullptr /*zonePolicy*/,
    -
    31148  "HST" /*format*/,
    -
    31149  -2520 /*offsetCode (-37800/15)*/,
    -
    31150  0 /*offsetRemainder (-37800%15)*/,
    -
    31151  0 /*deltaMinutes*/,
    -
    31152  1933 /*untilYear*/,
    -
    31153  4 /*untilMonth*/,
    -
    31154  30 /*untilDay*/,
    -
    31155  480 /*untilTimeCode (7200/15)*/,
    -
    31156  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31157  },
    -
    31158  // -10:30 1:00 HDT 1933 May 21 12:00
    -
    31159  {
    -
    31160  nullptr /*zonePolicy*/,
    -
    31161  "HDT" /*format*/,
    -
    31162  -2520 /*offsetCode (-37800/15)*/,
    -
    31163  0 /*offsetRemainder (-37800%15)*/,
    -
    31164  60 /*deltaMinutes*/,
    -
    31165  1933 /*untilYear*/,
    -
    31166  5 /*untilMonth*/,
    -
    31167  21 /*untilDay*/,
    -
    31168  2880 /*untilTimeCode (43200/15)*/,
    -
    31169  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31170  },
    -
    31171  // -10:30 US H%sT 1947 Jun 8 2:00
    -
    31172  {
    -
    31173  &kZonePolicyUS /*zonePolicy*/,
    -
    31174  "H%T" /*format*/,
    -
    31175  -2520 /*offsetCode (-37800/15)*/,
    -
    31176  0 /*offsetRemainder (-37800%15)*/,
    -
    31177  0 /*deltaMinutes*/,
    -
    31178  1947 /*untilYear*/,
    -
    31179  6 /*untilMonth*/,
    -
    31180  8 /*untilDay*/,
    -
    31181  480 /*untilTimeCode (7200/15)*/,
    -
    31182  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31183  },
    -
    31184  // -10:00 - HST
    -
    31185  {
    -
    31186  nullptr /*zonePolicy*/,
    -
    31187  "HST" /*format*/,
    -
    31188  -2400 /*offsetCode (-36000/15)*/,
    -
    31189  0 /*offsetRemainder (-36000%15)*/,
    -
    31190  0 /*deltaMinutes*/,
    -
    31191  32767 /*untilYear*/,
    -
    31192  1 /*untilMonth*/,
    -
    31193  1 /*untilDay*/,
    -
    31194  0 /*untilTimeCode (0/15)*/,
    -
    31195  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31196  },
    -
    31197 
    -
    31198 };
    -
    31199 
    -
    31200 static const char kZoneNamePacific_Honolulu[] ACE_TIME_PROGMEM = "\x0e" "Honolulu";
    -
    31201 
    -
    31202 const complete::Info::ZoneInfo kZonePacific_Honolulu ACE_TIME_PROGMEM = {
    -
    31203  kZoneNamePacific_Honolulu /*name*/,
    -
    31204  0xe6e70af9 /*zoneId*/,
    -
    31205  &kZoneContext /*zoneContext*/,
    -
    31206  5 /*numEras*/,
    -
    31207  kZoneEraPacific_Honolulu /*eras*/,
    -
    31208  nullptr /*targetInfo*/,
    -
    31209 };
    -
    31210 
    -
    31211 //---------------------------------------------------------------------------
    -
    31212 // Zone name: Pacific/Kanton
    -
    31213 // Eras: 4
    -
    31214 //---------------------------------------------------------------------------
    -
    31215 
    -
    31216 static const complete::Info::ZoneEra kZoneEraPacific_Kanton[] ACE_TIME_PROGMEM = {
    -
    31217  // 0 - -00 1937 Aug 31
    -
    31218  {
    -
    31219  nullptr /*zonePolicy*/,
    -
    31220  "-00" /*format*/,
    -
    31221  0 /*offsetCode (0/15)*/,
    -
    31222  0 /*offsetRemainder (0%15)*/,
    -
    31223  0 /*deltaMinutes*/,
    -
    31224  1937 /*untilYear*/,
    -
    31225  8 /*untilMonth*/,
    -
    31226  31 /*untilDay*/,
    -
    31227  0 /*untilTimeCode (0/15)*/,
    -
    31228  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31229  },
    -
    31230  // -12:00 - %z 1979 Oct
    -
    31231  {
    -
    31232  nullptr /*zonePolicy*/,
    -
    31233  "" /*format*/,
    -
    31234  -2880 /*offsetCode (-43200/15)*/,
    -
    31235  0 /*offsetRemainder (-43200%15)*/,
    -
    31236  0 /*deltaMinutes*/,
    -
    31237  1979 /*untilYear*/,
    -
    31238  10 /*untilMonth*/,
    -
    31239  1 /*untilDay*/,
    -
    31240  0 /*untilTimeCode (0/15)*/,
    -
    31241  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31242  },
    -
    31243  // -11:00 - %z 1994 Dec 31
    -
    31244  {
    -
    31245  nullptr /*zonePolicy*/,
    -
    31246  "" /*format*/,
    -
    31247  -2640 /*offsetCode (-39600/15)*/,
    -
    31248  0 /*offsetRemainder (-39600%15)*/,
    -
    31249  0 /*deltaMinutes*/,
    -
    31250  1994 /*untilYear*/,
    -
    31251  12 /*untilMonth*/,
    -
    31252  31 /*untilDay*/,
    -
    31253  0 /*untilTimeCode (0/15)*/,
    -
    31254  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31255  },
    -
    31256  // 13:00 - %z
    -
    31257  {
    -
    31258  nullptr /*zonePolicy*/,
    -
    31259  "" /*format*/,
    -
    31260  3120 /*offsetCode (46800/15)*/,
    -
    31261  0 /*offsetRemainder (46800%15)*/,
    -
    31262  0 /*deltaMinutes*/,
    -
    31263  32767 /*untilYear*/,
    -
    31264  1 /*untilMonth*/,
    -
    31265  1 /*untilDay*/,
    -
    31266  0 /*untilTimeCode (0/15)*/,
    -
    31267  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31268  },
    -
    31269 
    -
    31270 };
    -
    31271 
    -
    31272 static const char kZoneNamePacific_Kanton[] ACE_TIME_PROGMEM = "\x0e" "Kanton";
    -
    31273 
    -
    31274 const complete::Info::ZoneInfo kZonePacific_Kanton ACE_TIME_PROGMEM = {
    -
    31275  kZoneNamePacific_Kanton /*name*/,
    -
    31276  0xdd512f0e /*zoneId*/,
    -
    31277  &kZoneContext /*zoneContext*/,
    -
    31278  4 /*numEras*/,
    -
    31279  kZoneEraPacific_Kanton /*eras*/,
    -
    31280  nullptr /*targetInfo*/,
    -
    31281 };
    -
    31282 
    -
    31283 //---------------------------------------------------------------------------
    -
    31284 // Zone name: Pacific/Kiritimati
    -
    31285 // Eras: 4
    -
    31286 //---------------------------------------------------------------------------
    -
    31287 
    -
    31288 static const complete::Info::ZoneEra kZoneEraPacific_Kiritimati[] ACE_TIME_PROGMEM = {
    -
    31289  // -10:29:20 - LMT 1901
    -
    31290  {
    -
    31291  nullptr /*zonePolicy*/,
    -
    31292  "LMT" /*format*/,
    -
    31293  -2518 /*offsetCode (-37760/15)*/,
    -
    31294  10 /*offsetRemainder (-37760%15)*/,
    -
    31295  0 /*deltaMinutes*/,
    -
    31296  1901 /*untilYear*/,
    -
    31297  1 /*untilMonth*/,
    -
    31298  1 /*untilDay*/,
    -
    31299  0 /*untilTimeCode (0/15)*/,
    -
    31300  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31301  },
    -
    31302  // -10:40 - %z 1979 Oct
    -
    31303  {
    -
    31304  nullptr /*zonePolicy*/,
    -
    31305  "" /*format*/,
    -
    31306  -2560 /*offsetCode (-38400/15)*/,
    -
    31307  0 /*offsetRemainder (-38400%15)*/,
    -
    31308  0 /*deltaMinutes*/,
    -
    31309  1979 /*untilYear*/,
    -
    31310  10 /*untilMonth*/,
    -
    31311  1 /*untilDay*/,
    -
    31312  0 /*untilTimeCode (0/15)*/,
    -
    31313  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31314  },
    -
    31315  // -10:00 - %z 1994 Dec 31
    -
    31316  {
    -
    31317  nullptr /*zonePolicy*/,
    -
    31318  "" /*format*/,
    -
    31319  -2400 /*offsetCode (-36000/15)*/,
    -
    31320  0 /*offsetRemainder (-36000%15)*/,
    -
    31321  0 /*deltaMinutes*/,
    -
    31322  1994 /*untilYear*/,
    -
    31323  12 /*untilMonth*/,
    -
    31324  31 /*untilDay*/,
    -
    31325  0 /*untilTimeCode (0/15)*/,
    -
    31326  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31327  },
    -
    31328  // 14:00 - %z
    -
    31329  {
    -
    31330  nullptr /*zonePolicy*/,
    -
    31331  "" /*format*/,
    -
    31332  3360 /*offsetCode (50400/15)*/,
    -
    31333  0 /*offsetRemainder (50400%15)*/,
    -
    31334  0 /*deltaMinutes*/,
    -
    31335  32767 /*untilYear*/,
    -
    31336  1 /*untilMonth*/,
    -
    31337  1 /*untilDay*/,
    -
    31338  0 /*untilTimeCode (0/15)*/,
    -
    31339  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31340  },
    -
    31341 
    -
    31342 };
    -
    31343 
    -
    31344 static const char kZoneNamePacific_Kiritimati[] ACE_TIME_PROGMEM = "\x0e" "Kiritimati";
    -
    31345 
    -
    31346 const complete::Info::ZoneInfo kZonePacific_Kiritimati ACE_TIME_PROGMEM = {
    -
    31347  kZoneNamePacific_Kiritimati /*name*/,
    -
    31348  0x8305073a /*zoneId*/,
    -
    31349  &kZoneContext /*zoneContext*/,
    -
    31350  4 /*numEras*/,
    -
    31351  kZoneEraPacific_Kiritimati /*eras*/,
    -
    31352  nullptr /*targetInfo*/,
    -
    31353 };
    -
    31354 
    -
    31355 //---------------------------------------------------------------------------
    -
    31356 // Zone name: Pacific/Kosrae
    -
    31357 // Eras: 10
    -
    31358 //---------------------------------------------------------------------------
    -
    31359 
    -
    31360 static const complete::Info::ZoneEra kZoneEraPacific_Kosrae[] ACE_TIME_PROGMEM = {
    -
    31361  // -13:08:04 - LMT 1844 Dec 31
    -
    31362  {
    -
    31363  nullptr /*zonePolicy*/,
    -
    31364  "LMT" /*format*/,
    -
    31365  -3153 /*offsetCode (-47284/15)*/,
    -
    31366  11 /*offsetRemainder (-47284%15)*/,
    -
    31367  0 /*deltaMinutes*/,
    -
    31368  1844 /*untilYear*/,
    -
    31369  12 /*untilMonth*/,
    -
    31370  31 /*untilDay*/,
    -
    31371  0 /*untilTimeCode (0/15)*/,
    -
    31372  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31373  },
    -
    31374  // 10:51:56 - LMT 1901
    -
    31375  {
    -
    31376  nullptr /*zonePolicy*/,
    -
    31377  "LMT" /*format*/,
    -
    31378  2607 /*offsetCode (39116/15)*/,
    -
    31379  11 /*offsetRemainder (39116%15)*/,
    -
    31380  0 /*deltaMinutes*/,
    -
    31381  1901 /*untilYear*/,
    -
    31382  1 /*untilMonth*/,
    -
    31383  1 /*untilDay*/,
    -
    31384  0 /*untilTimeCode (0/15)*/,
    -
    31385  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31386  },
    -
    31387  // 11:00 - %z 1914 Oct
    -
    31388  {
    -
    31389  nullptr /*zonePolicy*/,
    -
    31390  "" /*format*/,
    -
    31391  2640 /*offsetCode (39600/15)*/,
    -
    31392  0 /*offsetRemainder (39600%15)*/,
    -
    31393  0 /*deltaMinutes*/,
    -
    31394  1914 /*untilYear*/,
    -
    31395  10 /*untilMonth*/,
    -
    31396  1 /*untilDay*/,
    -
    31397  0 /*untilTimeCode (0/15)*/,
    -
    31398  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31399  },
    -
    31400  // 9:00 - %z 1919 Feb 1
    -
    31401  {
    -
    31402  nullptr /*zonePolicy*/,
    -
    31403  "" /*format*/,
    -
    31404  2160 /*offsetCode (32400/15)*/,
    -
    31405  0 /*offsetRemainder (32400%15)*/,
    -
    31406  0 /*deltaMinutes*/,
    -
    31407  1919 /*untilYear*/,
    -
    31408  2 /*untilMonth*/,
    -
    31409  1 /*untilDay*/,
    -
    31410  0 /*untilTimeCode (0/15)*/,
    -
    31411  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31412  },
    -
    31413  // 11:00 - %z 1937
    -
    31414  {
    -
    31415  nullptr /*zonePolicy*/,
    -
    31416  "" /*format*/,
    -
    31417  2640 /*offsetCode (39600/15)*/,
    -
    31418  0 /*offsetRemainder (39600%15)*/,
    -
    31419  0 /*deltaMinutes*/,
    -
    31420  1937 /*untilYear*/,
    -
    31421  1 /*untilMonth*/,
    -
    31422  1 /*untilDay*/,
    -
    31423  0 /*untilTimeCode (0/15)*/,
    -
    31424  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31425  },
    -
    31426  // 10:00 - %z 1941 Apr 1
    -
    31427  {
    -
    31428  nullptr /*zonePolicy*/,
    -
    31429  "" /*format*/,
    -
    31430  2400 /*offsetCode (36000/15)*/,
    -
    31431  0 /*offsetRemainder (36000%15)*/,
    -
    31432  0 /*deltaMinutes*/,
    -
    31433  1941 /*untilYear*/,
    -
    31434  4 /*untilMonth*/,
    -
    31435  1 /*untilDay*/,
    -
    31436  0 /*untilTimeCode (0/15)*/,
    -
    31437  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31438  },
    -
    31439  // 9:00 - %z 1945 Aug
    -
    31440  {
    -
    31441  nullptr /*zonePolicy*/,
    -
    31442  "" /*format*/,
    -
    31443  2160 /*offsetCode (32400/15)*/,
    -
    31444  0 /*offsetRemainder (32400%15)*/,
    -
    31445  0 /*deltaMinutes*/,
    -
    31446  1945 /*untilYear*/,
    -
    31447  8 /*untilMonth*/,
    -
    31448  1 /*untilDay*/,
    -
    31449  0 /*untilTimeCode (0/15)*/,
    -
    31450  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31451  },
    -
    31452  // 11:00 - %z 1969 Oct
    -
    31453  {
    -
    31454  nullptr /*zonePolicy*/,
    -
    31455  "" /*format*/,
    -
    31456  2640 /*offsetCode (39600/15)*/,
    -
    31457  0 /*offsetRemainder (39600%15)*/,
    -
    31458  0 /*deltaMinutes*/,
    -
    31459  1969 /*untilYear*/,
    -
    31460  10 /*untilMonth*/,
    -
    31461  1 /*untilDay*/,
    -
    31462  0 /*untilTimeCode (0/15)*/,
    -
    31463  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31464  },
    -
    31465  // 12:00 - %z 1999
    -
    31466  {
    -
    31467  nullptr /*zonePolicy*/,
    -
    31468  "" /*format*/,
    -
    31469  2880 /*offsetCode (43200/15)*/,
    -
    31470  0 /*offsetRemainder (43200%15)*/,
    -
    31471  0 /*deltaMinutes*/,
    -
    31472  1999 /*untilYear*/,
    -
    31473  1 /*untilMonth*/,
    -
    31474  1 /*untilDay*/,
    -
    31475  0 /*untilTimeCode (0/15)*/,
    -
    31476  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31477  },
    -
    31478  // 11:00 - %z
    -
    31479  {
    -
    31480  nullptr /*zonePolicy*/,
    -
    31481  "" /*format*/,
    -
    31482  2640 /*offsetCode (39600/15)*/,
    -
    31483  0 /*offsetRemainder (39600%15)*/,
    -
    31484  0 /*deltaMinutes*/,
    -
    31485  32767 /*untilYear*/,
    -
    31486  1 /*untilMonth*/,
    -
    31487  1 /*untilDay*/,
    -
    31488  0 /*untilTimeCode (0/15)*/,
    -
    31489  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31490  },
    -
    31491 
    -
    31492 };
    -
    31493 
    -
    31494 static const char kZoneNamePacific_Kosrae[] ACE_TIME_PROGMEM = "\x0e" "Kosrae";
    -
    31495 
    -
    31496 const complete::Info::ZoneInfo kZonePacific_Kosrae ACE_TIME_PROGMEM = {
    -
    31497  kZoneNamePacific_Kosrae /*name*/,
    -
    31498  0xde5139a8 /*zoneId*/,
    -
    31499  &kZoneContext /*zoneContext*/,
    -
    31500  10 /*numEras*/,
    -
    31501  kZoneEraPacific_Kosrae /*eras*/,
    -
    31502  nullptr /*targetInfo*/,
    -
    31503 };
    -
    31504 
    -
    31505 //---------------------------------------------------------------------------
    -
    31506 // Zone name: Pacific/Kwajalein
    -
    31507 // Eras: 7
    -
    31508 //---------------------------------------------------------------------------
    -
    31509 
    -
    31510 static const complete::Info::ZoneEra kZoneEraPacific_Kwajalein[] ACE_TIME_PROGMEM = {
    -
    31511  // 11:09:20 - LMT 1901
    -
    31512  {
    -
    31513  nullptr /*zonePolicy*/,
    -
    31514  "LMT" /*format*/,
    -
    31515  2677 /*offsetCode (40160/15)*/,
    -
    31516  5 /*offsetRemainder (40160%15)*/,
    -
    31517  0 /*deltaMinutes*/,
    -
    31518  1901 /*untilYear*/,
    -
    31519  1 /*untilMonth*/,
    -
    31520  1 /*untilDay*/,
    -
    31521  0 /*untilTimeCode (0/15)*/,
    -
    31522  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31523  },
    -
    31524  // 11:00 - %z 1937
    -
    31525  {
    -
    31526  nullptr /*zonePolicy*/,
    -
    31527  "" /*format*/,
    -
    31528  2640 /*offsetCode (39600/15)*/,
    -
    31529  0 /*offsetRemainder (39600%15)*/,
    -
    31530  0 /*deltaMinutes*/,
    -
    31531  1937 /*untilYear*/,
    -
    31532  1 /*untilMonth*/,
    -
    31533  1 /*untilDay*/,
    -
    31534  0 /*untilTimeCode (0/15)*/,
    -
    31535  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31536  },
    -
    31537  // 10:00 - %z 1941 Apr 1
    -
    31538  {
    -
    31539  nullptr /*zonePolicy*/,
    -
    31540  "" /*format*/,
    -
    31541  2400 /*offsetCode (36000/15)*/,
    -
    31542  0 /*offsetRemainder (36000%15)*/,
    -
    31543  0 /*deltaMinutes*/,
    -
    31544  1941 /*untilYear*/,
    -
    31545  4 /*untilMonth*/,
    -
    31546  1 /*untilDay*/,
    -
    31547  0 /*untilTimeCode (0/15)*/,
    -
    31548  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31549  },
    -
    31550  // 9:00 - %z 1944 Feb 6
    -
    31551  {
    -
    31552  nullptr /*zonePolicy*/,
    -
    31553  "" /*format*/,
    -
    31554  2160 /*offsetCode (32400/15)*/,
    -
    31555  0 /*offsetRemainder (32400%15)*/,
    -
    31556  0 /*deltaMinutes*/,
    -
    31557  1944 /*untilYear*/,
    -
    31558  2 /*untilMonth*/,
    -
    31559  6 /*untilDay*/,
    -
    31560  0 /*untilTimeCode (0/15)*/,
    -
    31561  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31562  },
    -
    31563  // 11:00 - %z 1969 Oct
    -
    31564  {
    -
    31565  nullptr /*zonePolicy*/,
    -
    31566  "" /*format*/,
    -
    31567  2640 /*offsetCode (39600/15)*/,
    -
    31568  0 /*offsetRemainder (39600%15)*/,
    -
    31569  0 /*deltaMinutes*/,
    -
    31570  1969 /*untilYear*/,
    -
    31571  10 /*untilMonth*/,
    -
    31572  1 /*untilDay*/,
    -
    31573  0 /*untilTimeCode (0/15)*/,
    -
    31574  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31575  },
    -
    31576  // -12:00 - %z 1993 Aug 20 24:00
    -
    31577  {
    -
    31578  nullptr /*zonePolicy*/,
    -
    31579  "" /*format*/,
    -
    31580  -2880 /*offsetCode (-43200/15)*/,
    -
    31581  0 /*offsetRemainder (-43200%15)*/,
    -
    31582  0 /*deltaMinutes*/,
    -
    31583  1993 /*untilYear*/,
    -
    31584  8 /*untilMonth*/,
    -
    31585  20 /*untilDay*/,
    -
    31586  5760 /*untilTimeCode (86400/15)*/,
    -
    31587  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31588  },
    -
    31589  // 12:00 - %z
    -
    31590  {
    -
    31591  nullptr /*zonePolicy*/,
    -
    31592  "" /*format*/,
    -
    31593  2880 /*offsetCode (43200/15)*/,
    -
    31594  0 /*offsetRemainder (43200%15)*/,
    -
    31595  0 /*deltaMinutes*/,
    -
    31596  32767 /*untilYear*/,
    -
    31597  1 /*untilMonth*/,
    -
    31598  1 /*untilDay*/,
    -
    31599  0 /*untilTimeCode (0/15)*/,
    -
    31600  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31601  },
    -
    31602 
    -
    31603 };
    -
    31604 
    -
    31605 static const char kZoneNamePacific_Kwajalein[] ACE_TIME_PROGMEM = "\x0e" "Kwajalein";
    -
    31606 
    -
    31607 const complete::Info::ZoneInfo kZonePacific_Kwajalein ACE_TIME_PROGMEM = {
    -
    31608  kZoneNamePacific_Kwajalein /*name*/,
    -
    31609  0x8e216759 /*zoneId*/,
    -
    31610  &kZoneContext /*zoneContext*/,
    -
    31611  7 /*numEras*/,
    -
    31612  kZoneEraPacific_Kwajalein /*eras*/,
    -
    31613  nullptr /*targetInfo*/,
    -
    31614 };
    -
    31615 
    -
    31616 //---------------------------------------------------------------------------
    -
    31617 // Zone name: Pacific/Marquesas
    -
    31618 // Eras: 2
    -
    31619 //---------------------------------------------------------------------------
    -
    31620 
    -
    31621 static const complete::Info::ZoneEra kZoneEraPacific_Marquesas[] ACE_TIME_PROGMEM = {
    -
    31622  // -9:18:00 - LMT 1912 Oct 1
    -
    31623  {
    -
    31624  nullptr /*zonePolicy*/,
    -
    31625  "LMT" /*format*/,
    -
    31626  -2232 /*offsetCode (-33480/15)*/,
    -
    31627  0 /*offsetRemainder (-33480%15)*/,
    -
    31628  0 /*deltaMinutes*/,
    -
    31629  1912 /*untilYear*/,
    -
    31630  10 /*untilMonth*/,
    -
    31631  1 /*untilDay*/,
    -
    31632  0 /*untilTimeCode (0/15)*/,
    -
    31633  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31634  },
    -
    31635  // -9:30 - %z
    -
    31636  {
    -
    31637  nullptr /*zonePolicy*/,
    -
    31638  "" /*format*/,
    -
    31639  -2280 /*offsetCode (-34200/15)*/,
    -
    31640  0 /*offsetRemainder (-34200%15)*/,
    -
    31641  0 /*deltaMinutes*/,
    -
    31642  32767 /*untilYear*/,
    -
    31643  1 /*untilMonth*/,
    -
    31644  1 /*untilDay*/,
    -
    31645  0 /*untilTimeCode (0/15)*/,
    -
    31646  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31647  },
    -
    31648 
    -
    31649 };
    -
    31650 
    -
    31651 static const char kZoneNamePacific_Marquesas[] ACE_TIME_PROGMEM = "\x0e" "Marquesas";
    -
    31652 
    -
    31653 const complete::Info::ZoneInfo kZonePacific_Marquesas ACE_TIME_PROGMEM = {
    -
    31654  kZoneNamePacific_Marquesas /*name*/,
    -
    31655  0x57ca7135 /*zoneId*/,
    -
    31656  &kZoneContext /*zoneContext*/,
    -
    31657  2 /*numEras*/,
    -
    31658  kZoneEraPacific_Marquesas /*eras*/,
    -
    31659  nullptr /*targetInfo*/,
    -
    31660 };
    -
    31661 
    -
    31662 //---------------------------------------------------------------------------
    -
    31663 // Zone name: Pacific/Nauru
    -
    31664 // Eras: 5
    -
    31665 //---------------------------------------------------------------------------
    -
    31666 
    -
    31667 static const complete::Info::ZoneEra kZoneEraPacific_Nauru[] ACE_TIME_PROGMEM = {
    -
    31668  // 11:07:40 - LMT 1921 Jan 15
    -
    31669  {
    -
    31670  nullptr /*zonePolicy*/,
    -
    31671  "LMT" /*format*/,
    -
    31672  2670 /*offsetCode (40060/15)*/,
    -
    31673  10 /*offsetRemainder (40060%15)*/,
    -
    31674  0 /*deltaMinutes*/,
    -
    31675  1921 /*untilYear*/,
    -
    31676  1 /*untilMonth*/,
    -
    31677  15 /*untilDay*/,
    -
    31678  0 /*untilTimeCode (0/15)*/,
    -
    31679  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31680  },
    -
    31681  // 11:30 - %z 1942 Aug 29
    -
    31682  {
    -
    31683  nullptr /*zonePolicy*/,
    -
    31684  "" /*format*/,
    -
    31685  2760 /*offsetCode (41400/15)*/,
    -
    31686  0 /*offsetRemainder (41400%15)*/,
    -
    31687  0 /*deltaMinutes*/,
    -
    31688  1942 /*untilYear*/,
    -
    31689  8 /*untilMonth*/,
    -
    31690  29 /*untilDay*/,
    -
    31691  0 /*untilTimeCode (0/15)*/,
    -
    31692  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31693  },
    -
    31694  // 9:00 - %z 1945 Sep 8
    -
    31695  {
    -
    31696  nullptr /*zonePolicy*/,
    -
    31697  "" /*format*/,
    -
    31698  2160 /*offsetCode (32400/15)*/,
    -
    31699  0 /*offsetRemainder (32400%15)*/,
    -
    31700  0 /*deltaMinutes*/,
    -
    31701  1945 /*untilYear*/,
    -
    31702  9 /*untilMonth*/,
    -
    31703  8 /*untilDay*/,
    -
    31704  0 /*untilTimeCode (0/15)*/,
    -
    31705  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31706  },
    -
    31707  // 11:30 - %z 1979 Feb 10 2:00
    -
    31708  {
    -
    31709  nullptr /*zonePolicy*/,
    -
    31710  "" /*format*/,
    -
    31711  2760 /*offsetCode (41400/15)*/,
    -
    31712  0 /*offsetRemainder (41400%15)*/,
    -
    31713  0 /*deltaMinutes*/,
    -
    31714  1979 /*untilYear*/,
    -
    31715  2 /*untilMonth*/,
    -
    31716  10 /*untilDay*/,
    -
    31717  480 /*untilTimeCode (7200/15)*/,
    -
    31718  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31719  },
    -
    31720  // 12:00 - %z
    -
    31721  {
    -
    31722  nullptr /*zonePolicy*/,
    -
    31723  "" /*format*/,
    -
    31724  2880 /*offsetCode (43200/15)*/,
    -
    31725  0 /*offsetRemainder (43200%15)*/,
    -
    31726  0 /*deltaMinutes*/,
    -
    31727  32767 /*untilYear*/,
    -
    31728  1 /*untilMonth*/,
    -
    31729  1 /*untilDay*/,
    -
    31730  0 /*untilTimeCode (0/15)*/,
    -
    31731  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31732  },
    -
    31733 
    -
    31734 };
    -
    31735 
    -
    31736 static const char kZoneNamePacific_Nauru[] ACE_TIME_PROGMEM = "\x0e" "Nauru";
    -
    31737 
    -
    31738 const complete::Info::ZoneInfo kZonePacific_Nauru ACE_TIME_PROGMEM = {
    -
    31739  kZoneNamePacific_Nauru /*name*/,
    -
    31740  0x8acc41ae /*zoneId*/,
    -
    31741  &kZoneContext /*zoneContext*/,
    -
    31742  5 /*numEras*/,
    -
    31743  kZoneEraPacific_Nauru /*eras*/,
    -
    31744  nullptr /*targetInfo*/,
    -
    31745 };
    -
    31746 
    -
    31747 //---------------------------------------------------------------------------
    -
    31748 // Zone name: Pacific/Niue
    -
    31749 // Eras: 3
    -
    31750 //---------------------------------------------------------------------------
    -
    31751 
    -
    31752 static const complete::Info::ZoneEra kZoneEraPacific_Niue[] ACE_TIME_PROGMEM = {
    -
    31753  // -11:19:40 - LMT 1952 Oct 16
    -
    31754  {
    -
    31755  nullptr /*zonePolicy*/,
    -
    31756  "LMT" /*format*/,
    -
    31757  -2719 /*offsetCode (-40780/15)*/,
    -
    31758  5 /*offsetRemainder (-40780%15)*/,
    -
    31759  0 /*deltaMinutes*/,
    -
    31760  1952 /*untilYear*/,
    -
    31761  10 /*untilMonth*/,
    -
    31762  16 /*untilDay*/,
    -
    31763  0 /*untilTimeCode (0/15)*/,
    -
    31764  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31765  },
    -
    31766  // -11:20 - %z 1964 Jul
    -
    31767  {
    -
    31768  nullptr /*zonePolicy*/,
    -
    31769  "" /*format*/,
    -
    31770  -2720 /*offsetCode (-40800/15)*/,
    -
    31771  0 /*offsetRemainder (-40800%15)*/,
    -
    31772  0 /*deltaMinutes*/,
    -
    31773  1964 /*untilYear*/,
    -
    31774  7 /*untilMonth*/,
    -
    31775  1 /*untilDay*/,
    -
    31776  0 /*untilTimeCode (0/15)*/,
    -
    31777  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31778  },
    -
    31779  // -11:00 - %z
    -
    31780  {
    -
    31781  nullptr /*zonePolicy*/,
    -
    31782  "" /*format*/,
    -
    31783  -2640 /*offsetCode (-39600/15)*/,
    -
    31784  0 /*offsetRemainder (-39600%15)*/,
    -
    31785  0 /*deltaMinutes*/,
    -
    31786  32767 /*untilYear*/,
    -
    31787  1 /*untilMonth*/,
    -
    31788  1 /*untilDay*/,
    -
    31789  0 /*untilTimeCode (0/15)*/,
    -
    31790  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31791  },
    -
    31792 
    -
    31793 };
    -
    31794 
    -
    31795 static const char kZoneNamePacific_Niue[] ACE_TIME_PROGMEM = "\x0e" "Niue";
    -
    31796 
    -
    31797 const complete::Info::ZoneInfo kZonePacific_Niue ACE_TIME_PROGMEM = {
    -
    31798  kZoneNamePacific_Niue /*name*/,
    -
    31799  0x233ca014 /*zoneId*/,
    -
    31800  &kZoneContext /*zoneContext*/,
    -
    31801  3 /*numEras*/,
    -
    31802  kZoneEraPacific_Niue /*eras*/,
    -
    31803  nullptr /*targetInfo*/,
    -
    31804 };
    -
    31805 
    -
    31806 //---------------------------------------------------------------------------
    -
    31807 // Zone name: Pacific/Norfolk
    -
    31808 // Eras: 7
    -
    31809 //---------------------------------------------------------------------------
    -
    31810 
    -
    31811 static const complete::Info::ZoneEra kZoneEraPacific_Norfolk[] ACE_TIME_PROGMEM = {
    -
    31812  // 11:11:52 - LMT 1901
    -
    31813  {
    -
    31814  nullptr /*zonePolicy*/,
    -
    31815  "LMT" /*format*/,
    -
    31816  2687 /*offsetCode (40312/15)*/,
    -
    31817  7 /*offsetRemainder (40312%15)*/,
    -
    31818  0 /*deltaMinutes*/,
    -
    31819  1901 /*untilYear*/,
    -
    31820  1 /*untilMonth*/,
    -
    31821  1 /*untilDay*/,
    -
    31822  0 /*untilTimeCode (0/15)*/,
    -
    31823  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31824  },
    -
    31825  // 11:12 - %z 1951
    -
    31826  {
    -
    31827  nullptr /*zonePolicy*/,
    -
    31828  "" /*format*/,
    -
    31829  2688 /*offsetCode (40320/15)*/,
    -
    31830  0 /*offsetRemainder (40320%15)*/,
    -
    31831  0 /*deltaMinutes*/,
    -
    31832  1951 /*untilYear*/,
    -
    31833  1 /*untilMonth*/,
    -
    31834  1 /*untilDay*/,
    -
    31835  0 /*untilTimeCode (0/15)*/,
    -
    31836  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31837  },
    -
    31838  // 11:30 - %z 1974 Oct 27 02:00s
    -
    31839  {
    -
    31840  nullptr /*zonePolicy*/,
    -
    31841  "" /*format*/,
    -
    31842  2760 /*offsetCode (41400/15)*/,
    -
    31843  0 /*offsetRemainder (41400%15)*/,
    -
    31844  0 /*deltaMinutes*/,
    -
    31845  1974 /*untilYear*/,
    -
    31846  10 /*untilMonth*/,
    -
    31847  27 /*untilDay*/,
    -
    31848  480 /*untilTimeCode (7200/15)*/,
    -
    31849  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    31850  },
    -
    31851  // 11:30 1:00 %z 1975 Mar 2 02:00s
    -
    31852  {
    -
    31853  nullptr /*zonePolicy*/,
    -
    31854  "" /*format*/,
    -
    31855  2760 /*offsetCode (41400/15)*/,
    -
    31856  0 /*offsetRemainder (41400%15)*/,
    -
    31857  60 /*deltaMinutes*/,
    -
    31858  1975 /*untilYear*/,
    -
    31859  3 /*untilMonth*/,
    -
    31860  2 /*untilDay*/,
    -
    31861  480 /*untilTimeCode (7200/15)*/,
    -
    31862  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    31863  },
    -
    31864  // 11:30 - %z 2015 Oct 4 02:00s
    -
    31865  {
    -
    31866  nullptr /*zonePolicy*/,
    -
    31867  "" /*format*/,
    -
    31868  2760 /*offsetCode (41400/15)*/,
    -
    31869  0 /*offsetRemainder (41400%15)*/,
    -
    31870  0 /*deltaMinutes*/,
    -
    31871  2015 /*untilYear*/,
    -
    31872  10 /*untilMonth*/,
    -
    31873  4 /*untilDay*/,
    -
    31874  480 /*untilTimeCode (7200/15)*/,
    -
    31875  16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    31876  },
    -
    31877  // 11:00 - %z 2019 Jul
    -
    31878  {
    -
    31879  nullptr /*zonePolicy*/,
    -
    31880  "" /*format*/,
    -
    31881  2640 /*offsetCode (39600/15)*/,
    -
    31882  0 /*offsetRemainder (39600%15)*/,
    -
    31883  0 /*deltaMinutes*/,
    -
    31884  2019 /*untilYear*/,
    -
    31885  7 /*untilMonth*/,
    -
    31886  1 /*untilDay*/,
    -
    31887  0 /*untilTimeCode (0/15)*/,
    -
    31888  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31889  },
    -
    31890  // 11:00 AN %z
    -
    31891  {
    -
    31892  &kZonePolicyAN /*zonePolicy*/,
    -
    31893  "" /*format*/,
    -
    31894  2640 /*offsetCode (39600/15)*/,
    -
    31895  0 /*offsetRemainder (39600%15)*/,
    -
    31896  0 /*deltaMinutes*/,
    -
    31897  32767 /*untilYear*/,
    -
    31898  1 /*untilMonth*/,
    -
    31899  1 /*untilDay*/,
    -
    31900  0 /*untilTimeCode (0/15)*/,
    -
    31901  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31902  },
    -
    31903 
    -
    31904 };
    -
    31905 
    -
    31906 static const char kZoneNamePacific_Norfolk[] ACE_TIME_PROGMEM = "\x0e" "Norfolk";
    -
    31907 
    -
    31908 const complete::Info::ZoneInfo kZonePacific_Norfolk ACE_TIME_PROGMEM = {
    -
    31909  kZoneNamePacific_Norfolk /*name*/,
    -
    31910  0x8f4eb4be /*zoneId*/,
    -
    31911  &kZoneContext /*zoneContext*/,
    -
    31912  7 /*numEras*/,
    -
    31913  kZoneEraPacific_Norfolk /*eras*/,
    -
    31914  nullptr /*targetInfo*/,
    -
    31915 };
    -
    31916 
    -
    31917 //---------------------------------------------------------------------------
    -
    31918 // Zone name: Pacific/Noumea
    -
    31919 // Eras: 2
    -
    31920 //---------------------------------------------------------------------------
    -
    31921 
    -
    31922 static const complete::Info::ZoneEra kZoneEraPacific_Noumea[] ACE_TIME_PROGMEM = {
    -
    31923  // 11:05:48 - LMT 1912 Jan 13
    -
    31924  {
    -
    31925  nullptr /*zonePolicy*/,
    -
    31926  "LMT" /*format*/,
    -
    31927  2663 /*offsetCode (39948/15)*/,
    -
    31928  3 /*offsetRemainder (39948%15)*/,
    -
    31929  0 /*deltaMinutes*/,
    -
    31930  1912 /*untilYear*/,
    -
    31931  1 /*untilMonth*/,
    -
    31932  13 /*untilDay*/,
    -
    31933  0 /*untilTimeCode (0/15)*/,
    -
    31934  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31935  },
    -
    31936  // 11:00 NC %z
    -
    31937  {
    -
    31938  &kZonePolicyNC /*zonePolicy*/,
    -
    31939  "" /*format*/,
    -
    31940  2640 /*offsetCode (39600/15)*/,
    -
    31941  0 /*offsetRemainder (39600%15)*/,
    -
    31942  0 /*deltaMinutes*/,
    -
    31943  32767 /*untilYear*/,
    -
    31944  1 /*untilMonth*/,
    -
    31945  1 /*untilDay*/,
    -
    31946  0 /*untilTimeCode (0/15)*/,
    -
    31947  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31948  },
    -
    31949 
    -
    31950 };
    -
    31951 
    -
    31952 static const char kZoneNamePacific_Noumea[] ACE_TIME_PROGMEM = "\x0e" "Noumea";
    -
    31953 
    -
    31954 const complete::Info::ZoneInfo kZonePacific_Noumea ACE_TIME_PROGMEM = {
    -
    31955  kZoneNamePacific_Noumea /*name*/,
    -
    31956  0xe551b788 /*zoneId*/,
    -
    31957  &kZoneContext /*zoneContext*/,
    -
    31958  2 /*numEras*/,
    -
    31959  kZoneEraPacific_Noumea /*eras*/,
    -
    31960  nullptr /*targetInfo*/,
    -
    31961 };
    -
    31962 
    -
    31963 //---------------------------------------------------------------------------
    -
    31964 // Zone name: Pacific/Pago_Pago
    -
    31965 // Eras: 3
    -
    31966 //---------------------------------------------------------------------------
    -
    31967 
    -
    31968 static const complete::Info::ZoneEra kZoneEraPacific_Pago_Pago[] ACE_TIME_PROGMEM = {
    -
    31969  // 12:37:12 - LMT 1892 Jul 5
    -
    31970  {
    -
    31971  nullptr /*zonePolicy*/,
    -
    31972  "LMT" /*format*/,
    -
    31973  3028 /*offsetCode (45432/15)*/,
    -
    31974  12 /*offsetRemainder (45432%15)*/,
    -
    31975  0 /*deltaMinutes*/,
    -
    31976  1892 /*untilYear*/,
    -
    31977  7 /*untilMonth*/,
    -
    31978  5 /*untilDay*/,
    -
    31979  0 /*untilTimeCode (0/15)*/,
    -
    31980  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31981  },
    -
    31982  // -11:22:48 - LMT 1911
    -
    31983  {
    -
    31984  nullptr /*zonePolicy*/,
    -
    31985  "LMT" /*format*/,
    -
    31986  -2732 /*offsetCode (-40968/15)*/,
    -
    31987  12 /*offsetRemainder (-40968%15)*/,
    -
    31988  0 /*deltaMinutes*/,
    -
    31989  1911 /*untilYear*/,
    -
    31990  1 /*untilMonth*/,
    -
    31991  1 /*untilDay*/,
    -
    31992  0 /*untilTimeCode (0/15)*/,
    -
    31993  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    31994  },
    -
    31995  // -11:00 - SST
    -
    31996  {
    -
    31997  nullptr /*zonePolicy*/,
    -
    31998  "SST" /*format*/,
    -
    31999  -2640 /*offsetCode (-39600/15)*/,
    -
    32000  0 /*offsetRemainder (-39600%15)*/,
    -
    32001  0 /*deltaMinutes*/,
    -
    32002  32767 /*untilYear*/,
    -
    32003  1 /*untilMonth*/,
    -
    32004  1 /*untilDay*/,
    -
    32005  0 /*untilTimeCode (0/15)*/,
    -
    32006  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32007  },
    -
    32008 
    -
    32009 };
    -
    32010 
    -
    32011 static const char kZoneNamePacific_Pago_Pago[] ACE_TIME_PROGMEM = "\x0e" "Pago_Pago";
    -
    32012 
    -
    32013 const complete::Info::ZoneInfo kZonePacific_Pago_Pago ACE_TIME_PROGMEM = {
    -
    32014  kZoneNamePacific_Pago_Pago /*name*/,
    -
    32015  0x603aebd0 /*zoneId*/,
    -
    32016  &kZoneContext /*zoneContext*/,
    -
    32017  3 /*numEras*/,
    -
    32018  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    32019  nullptr /*targetInfo*/,
    -
    32020 };
    -
    32021 
    -
    32022 //---------------------------------------------------------------------------
    -
    32023 // Zone name: Pacific/Palau
    -
    32024 // Eras: 3
    -
    32025 //---------------------------------------------------------------------------
    -
    32026 
    -
    32027 static const complete::Info::ZoneEra kZoneEraPacific_Palau[] ACE_TIME_PROGMEM = {
    -
    32028  // -15:02:04 - LMT 1844 Dec 31
    -
    32029  {
    -
    32030  nullptr /*zonePolicy*/,
    -
    32031  "LMT" /*format*/,
    -
    32032  -3609 /*offsetCode (-54124/15)*/,
    -
    32033  11 /*offsetRemainder (-54124%15)*/,
    -
    32034  0 /*deltaMinutes*/,
    -
    32035  1844 /*untilYear*/,
    -
    32036  12 /*untilMonth*/,
    -
    32037  31 /*untilDay*/,
    -
    32038  0 /*untilTimeCode (0/15)*/,
    -
    32039  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32040  },
    -
    32041  // 8:57:56 - LMT 1901
    -
    32042  {
    -
    32043  nullptr /*zonePolicy*/,
    -
    32044  "LMT" /*format*/,
    -
    32045  2151 /*offsetCode (32276/15)*/,
    -
    32046  11 /*offsetRemainder (32276%15)*/,
    -
    32047  0 /*deltaMinutes*/,
    -
    32048  1901 /*untilYear*/,
    -
    32049  1 /*untilMonth*/,
    -
    32050  1 /*untilDay*/,
    -
    32051  0 /*untilTimeCode (0/15)*/,
    -
    32052  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32053  },
    -
    32054  // 9:00 - %z
    -
    32055  {
    -
    32056  nullptr /*zonePolicy*/,
    -
    32057  "" /*format*/,
    -
    32058  2160 /*offsetCode (32400/15)*/,
    -
    32059  0 /*offsetRemainder (32400%15)*/,
    -
    32060  0 /*deltaMinutes*/,
    -
    32061  32767 /*untilYear*/,
    -
    32062  1 /*untilMonth*/,
    -
    32063  1 /*untilDay*/,
    -
    32064  0 /*untilTimeCode (0/15)*/,
    -
    32065  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32066  },
    -
    32067 
    -
    32068 };
    -
    32069 
    -
    32070 static const char kZoneNamePacific_Palau[] ACE_TIME_PROGMEM = "\x0e" "Palau";
    -
    32071 
    -
    32072 const complete::Info::ZoneInfo kZonePacific_Palau ACE_TIME_PROGMEM = {
    -
    32073  kZoneNamePacific_Palau /*name*/,
    -
    32074  0x8af04a36 /*zoneId*/,
    -
    32075  &kZoneContext /*zoneContext*/,
    -
    32076  3 /*numEras*/,
    -
    32077  kZoneEraPacific_Palau /*eras*/,
    -
    32078  nullptr /*targetInfo*/,
    -
    32079 };
    -
    32080 
    -
    32081 //---------------------------------------------------------------------------
    -
    32082 // Zone name: Pacific/Pitcairn
    -
    32083 // Eras: 3
    -
    32084 //---------------------------------------------------------------------------
    -
    32085 
    -
    32086 static const complete::Info::ZoneEra kZoneEraPacific_Pitcairn[] ACE_TIME_PROGMEM = {
    -
    32087  // -8:40:20 - LMT 1901
    -
    32088  {
    -
    32089  nullptr /*zonePolicy*/,
    -
    32090  "LMT" /*format*/,
    -
    32091  -2082 /*offsetCode (-31220/15)*/,
    -
    32092  10 /*offsetRemainder (-31220%15)*/,
    -
    32093  0 /*deltaMinutes*/,
    -
    32094  1901 /*untilYear*/,
    -
    32095  1 /*untilMonth*/,
    -
    32096  1 /*untilDay*/,
    -
    32097  0 /*untilTimeCode (0/15)*/,
    -
    32098  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32099  },
    -
    32100  // -8:30 - %z 1998 Apr 27 0:00
    -
    32101  {
    -
    32102  nullptr /*zonePolicy*/,
    -
    32103  "" /*format*/,
    -
    32104  -2040 /*offsetCode (-30600/15)*/,
    -
    32105  0 /*offsetRemainder (-30600%15)*/,
    -
    32106  0 /*deltaMinutes*/,
    -
    32107  1998 /*untilYear*/,
    -
    32108  4 /*untilMonth*/,
    -
    32109  27 /*untilDay*/,
    -
    32110  0 /*untilTimeCode (0/15)*/,
    -
    32111  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32112  },
    -
    32113  // -8:00 - %z
    -
    32114  {
    -
    32115  nullptr /*zonePolicy*/,
    -
    32116  "" /*format*/,
    -
    32117  -1920 /*offsetCode (-28800/15)*/,
    -
    32118  0 /*offsetRemainder (-28800%15)*/,
    -
    32119  0 /*deltaMinutes*/,
    -
    32120  32767 /*untilYear*/,
    -
    32121  1 /*untilMonth*/,
    -
    32122  1 /*untilDay*/,
    -
    32123  0 /*untilTimeCode (0/15)*/,
    -
    32124  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32125  },
    -
    32126 
    -
    32127 };
    -
    32128 
    -
    32129 static const char kZoneNamePacific_Pitcairn[] ACE_TIME_PROGMEM = "\x0e" "Pitcairn";
    -
    32130 
    -
    32131 const complete::Info::ZoneInfo kZonePacific_Pitcairn ACE_TIME_PROGMEM = {
    -
    32132  kZoneNamePacific_Pitcairn /*name*/,
    -
    32133  0x8837d8bd /*zoneId*/,
    -
    32134  &kZoneContext /*zoneContext*/,
    -
    32135  3 /*numEras*/,
    -
    32136  kZoneEraPacific_Pitcairn /*eras*/,
    -
    32137  nullptr /*targetInfo*/,
    -
    32138 };
    -
    32139 
    -
    32140 //---------------------------------------------------------------------------
    -
    32141 // Zone name: Pacific/Port_Moresby
    -
    32142 // Eras: 3
    -
    32143 //---------------------------------------------------------------------------
    -
    32144 
    -
    32145 static const complete::Info::ZoneEra kZoneEraPacific_Port_Moresby[] ACE_TIME_PROGMEM = {
    -
    32146  // 9:48:40 - LMT 1880
    -
    32147  {
    -
    32148  nullptr /*zonePolicy*/,
    -
    32149  "LMT" /*format*/,
    -
    32150  2354 /*offsetCode (35320/15)*/,
    -
    32151  10 /*offsetRemainder (35320%15)*/,
    -
    32152  0 /*deltaMinutes*/,
    -
    32153  1880 /*untilYear*/,
    -
    32154  1 /*untilMonth*/,
    -
    32155  1 /*untilDay*/,
    -
    32156  0 /*untilTimeCode (0/15)*/,
    -
    32157  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32158  },
    -
    32159  // 9:48:32 - PMMT 1895
    -
    32160  {
    -
    32161  nullptr /*zonePolicy*/,
    -
    32162  "PMMT" /*format*/,
    -
    32163  2354 /*offsetCode (35312/15)*/,
    -
    32164  2 /*offsetRemainder (35312%15)*/,
    -
    32165  0 /*deltaMinutes*/,
    -
    32166  1895 /*untilYear*/,
    -
    32167  1 /*untilMonth*/,
    -
    32168  1 /*untilDay*/,
    -
    32169  0 /*untilTimeCode (0/15)*/,
    -
    32170  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32171  },
    -
    32172  // 10:00 - %z
    -
    32173  {
    -
    32174  nullptr /*zonePolicy*/,
    -
    32175  "" /*format*/,
    -
    32176  2400 /*offsetCode (36000/15)*/,
    -
    32177  0 /*offsetRemainder (36000%15)*/,
    -
    32178  0 /*deltaMinutes*/,
    -
    32179  32767 /*untilYear*/,
    -
    32180  1 /*untilMonth*/,
    -
    32181  1 /*untilDay*/,
    -
    32182  0 /*untilTimeCode (0/15)*/,
    -
    32183  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32184  },
    -
    32185 
    -
    32186 };
    -
    32187 
    -
    32188 static const char kZoneNamePacific_Port_Moresby[] ACE_TIME_PROGMEM = "\x0e" "Port_Moresby";
    -
    32189 
    -
    32190 const complete::Info::ZoneInfo kZonePacific_Port_Moresby ACE_TIME_PROGMEM = {
    -
    32191  kZoneNamePacific_Port_Moresby /*name*/,
    -
    32192  0xa7ba7f68 /*zoneId*/,
    -
    32193  &kZoneContext /*zoneContext*/,
    -
    32194  3 /*numEras*/,
    -
    32195  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    32196  nullptr /*targetInfo*/,
    -
    32197 };
    -
    32198 
    -
    32199 //---------------------------------------------------------------------------
    -
    32200 // Zone name: Pacific/Rarotonga
    -
    32201 // Eras: 4
    -
    32202 //---------------------------------------------------------------------------
    -
    32203 
    -
    32204 static const complete::Info::ZoneEra kZoneEraPacific_Rarotonga[] ACE_TIME_PROGMEM = {
    -
    32205  // 13:20:56 - LMT 1899 Dec 26
    -
    32206  {
    -
    32207  nullptr /*zonePolicy*/,
    -
    32208  "LMT" /*format*/,
    -
    32209  3203 /*offsetCode (48056/15)*/,
    -
    32210  11 /*offsetRemainder (48056%15)*/,
    -
    32211  0 /*deltaMinutes*/,
    -
    32212  1899 /*untilYear*/,
    -
    32213  12 /*untilMonth*/,
    -
    32214  26 /*untilDay*/,
    -
    32215  0 /*untilTimeCode (0/15)*/,
    -
    32216  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32217  },
    -
    32218  // -10:39:04 - LMT 1952 Oct 16
    -
    32219  {
    -
    32220  nullptr /*zonePolicy*/,
    -
    32221  "LMT" /*format*/,
    -
    32222  -2557 /*offsetCode (-38344/15)*/,
    -
    32223  11 /*offsetRemainder (-38344%15)*/,
    -
    32224  0 /*deltaMinutes*/,
    -
    32225  1952 /*untilYear*/,
    -
    32226  10 /*untilMonth*/,
    -
    32227  16 /*untilDay*/,
    -
    32228  0 /*untilTimeCode (0/15)*/,
    -
    32229  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32230  },
    -
    32231  // -10:30 - %z 1978 Nov 12
    -
    32232  {
    -
    32233  nullptr /*zonePolicy*/,
    -
    32234  "" /*format*/,
    -
    32235  -2520 /*offsetCode (-37800/15)*/,
    -
    32236  0 /*offsetRemainder (-37800%15)*/,
    -
    32237  0 /*deltaMinutes*/,
    -
    32238  1978 /*untilYear*/,
    -
    32239  11 /*untilMonth*/,
    -
    32240  12 /*untilDay*/,
    -
    32241  0 /*untilTimeCode (0/15)*/,
    -
    32242  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32243  },
    -
    32244  // -10:00 Cook %z
    -
    32245  {
    -
    32246  &kZonePolicyCook /*zonePolicy*/,
    -
    32247  "" /*format*/,
    -
    32248  -2400 /*offsetCode (-36000/15)*/,
    -
    32249  0 /*offsetRemainder (-36000%15)*/,
    -
    32250  0 /*deltaMinutes*/,
    -
    32251  32767 /*untilYear*/,
    -
    32252  1 /*untilMonth*/,
    -
    32253  1 /*untilDay*/,
    -
    32254  0 /*untilTimeCode (0/15)*/,
    -
    32255  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32256  },
    -
    32257 
    -
    32258 };
    -
    32259 
    -
    32260 static const char kZoneNamePacific_Rarotonga[] ACE_TIME_PROGMEM = "\x0e" "Rarotonga";
    -
    32261 
    -
    32262 const complete::Info::ZoneInfo kZonePacific_Rarotonga ACE_TIME_PROGMEM = {
    -
    32263  kZoneNamePacific_Rarotonga /*name*/,
    -
    32264  0x9981a3b0 /*zoneId*/,
    -
    32265  &kZoneContext /*zoneContext*/,
    -
    32266  4 /*numEras*/,
    -
    32267  kZoneEraPacific_Rarotonga /*eras*/,
    -
    32268  nullptr /*targetInfo*/,
    -
    32269 };
    -
    32270 
    -
    32271 //---------------------------------------------------------------------------
    -
    32272 // Zone name: Pacific/Tahiti
    -
    32273 // Eras: 2
    -
    32274 //---------------------------------------------------------------------------
    -
    32275 
    -
    32276 static const complete::Info::ZoneEra kZoneEraPacific_Tahiti[] ACE_TIME_PROGMEM = {
    -
    32277  // -9:58:16 - LMT 1912 Oct 1
    -
    32278  {
    -
    32279  nullptr /*zonePolicy*/,
    -
    32280  "LMT" /*format*/,
    -
    32281  -2394 /*offsetCode (-35896/15)*/,
    -
    32282  14 /*offsetRemainder (-35896%15)*/,
    -
    32283  0 /*deltaMinutes*/,
    -
    32284  1912 /*untilYear*/,
    -
    32285  10 /*untilMonth*/,
    -
    32286  1 /*untilDay*/,
    -
    32287  0 /*untilTimeCode (0/15)*/,
    -
    32288  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32289  },
    -
    32290  // -10:00 - %z
    -
    32291  {
    -
    32292  nullptr /*zonePolicy*/,
    -
    32293  "" /*format*/,
    -
    32294  -2400 /*offsetCode (-36000/15)*/,
    -
    32295  0 /*offsetRemainder (-36000%15)*/,
    -
    32296  0 /*deltaMinutes*/,
    -
    32297  32767 /*untilYear*/,
    -
    32298  1 /*untilMonth*/,
    -
    32299  1 /*untilDay*/,
    -
    32300  0 /*untilTimeCode (0/15)*/,
    -
    32301  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32302  },
    -
    32303 
    -
    32304 };
    -
    32305 
    -
    32306 static const char kZoneNamePacific_Tahiti[] ACE_TIME_PROGMEM = "\x0e" "Tahiti";
    -
    32307 
    -
    32308 const complete::Info::ZoneInfo kZonePacific_Tahiti ACE_TIME_PROGMEM = {
    -
    32309  kZoneNamePacific_Tahiti /*name*/,
    -
    32310  0xf24c2446 /*zoneId*/,
    -
    32311  &kZoneContext /*zoneContext*/,
    -
    32312  2 /*numEras*/,
    -
    32313  kZoneEraPacific_Tahiti /*eras*/,
    -
    32314  nullptr /*targetInfo*/,
    -
    32315 };
    -
    32316 
    -
    32317 //---------------------------------------------------------------------------
    -
    32318 // Zone name: Pacific/Tarawa
    -
    32319 // Eras: 2
    -
    32320 //---------------------------------------------------------------------------
    -
    32321 
    -
    32322 static const complete::Info::ZoneEra kZoneEraPacific_Tarawa[] ACE_TIME_PROGMEM = {
    -
    32323  // 11:32:04 - LMT 1901
    -
    32324  {
    -
    32325  nullptr /*zonePolicy*/,
    -
    32326  "LMT" /*format*/,
    -
    32327  2768 /*offsetCode (41524/15)*/,
    -
    32328  4 /*offsetRemainder (41524%15)*/,
    -
    32329  0 /*deltaMinutes*/,
    -
    32330  1901 /*untilYear*/,
    -
    32331  1 /*untilMonth*/,
    -
    32332  1 /*untilDay*/,
    -
    32333  0 /*untilTimeCode (0/15)*/,
    -
    32334  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32335  },
    -
    32336  // 12:00 - %z
    -
    32337  {
    -
    32338  nullptr /*zonePolicy*/,
    -
    32339  "" /*format*/,
    -
    32340  2880 /*offsetCode (43200/15)*/,
    -
    32341  0 /*offsetRemainder (43200%15)*/,
    -
    32342  0 /*deltaMinutes*/,
    -
    32343  32767 /*untilYear*/,
    -
    32344  1 /*untilMonth*/,
    -
    32345  1 /*untilDay*/,
    -
    32346  0 /*untilTimeCode (0/15)*/,
    -
    32347  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32348  },
    -
    32349 
    -
    32350 };
    -
    32351 
    -
    32352 static const char kZoneNamePacific_Tarawa[] ACE_TIME_PROGMEM = "\x0e" "Tarawa";
    -
    32353 
    -
    32354 const complete::Info::ZoneInfo kZonePacific_Tarawa ACE_TIME_PROGMEM = {
    -
    32355  kZoneNamePacific_Tarawa /*name*/,
    -
    32356  0xf2517e63 /*zoneId*/,
    -
    32357  &kZoneContext /*zoneContext*/,
    -
    32358  2 /*numEras*/,
    -
    32359  kZoneEraPacific_Tarawa /*eras*/,
    -
    32360  nullptr /*targetInfo*/,
    -
    32361 };
    -
    32362 
    -
    32363 //---------------------------------------------------------------------------
    -
    32364 // Zone name: Pacific/Tongatapu
    -
    32365 // Eras: 4
    -
    32366 //---------------------------------------------------------------------------
    -
    32367 
    -
    32368 static const complete::Info::ZoneEra kZoneEraPacific_Tongatapu[] ACE_TIME_PROGMEM = {
    -
    32369  // 12:19:12 - LMT 1945 Sep 10
    -
    32370  {
    -
    32371  nullptr /*zonePolicy*/,
    -
    32372  "LMT" /*format*/,
    -
    32373  2956 /*offsetCode (44352/15)*/,
    -
    32374  12 /*offsetRemainder (44352%15)*/,
    -
    32375  0 /*deltaMinutes*/,
    -
    32376  1945 /*untilYear*/,
    -
    32377  9 /*untilMonth*/,
    -
    32378  10 /*untilDay*/,
    -
    32379  0 /*untilTimeCode (0/15)*/,
    -
    32380  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32381  },
    -
    32382  // 12:20 - %z 1961
    -
    32383  {
    -
    32384  nullptr /*zonePolicy*/,
    -
    32385  "" /*format*/,
    -
    32386  2960 /*offsetCode (44400/15)*/,
    -
    32387  0 /*offsetRemainder (44400%15)*/,
    -
    32388  0 /*deltaMinutes*/,
    -
    32389  1961 /*untilYear*/,
    -
    32390  1 /*untilMonth*/,
    -
    32391  1 /*untilDay*/,
    -
    32392  0 /*untilTimeCode (0/15)*/,
    -
    32393  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32394  },
    -
    32395  // 13:00 - %z 1999
    -
    32396  {
    -
    32397  nullptr /*zonePolicy*/,
    -
    32398  "" /*format*/,
    -
    32399  3120 /*offsetCode (46800/15)*/,
    -
    32400  0 /*offsetRemainder (46800%15)*/,
    -
    32401  0 /*deltaMinutes*/,
    -
    32402  1999 /*untilYear*/,
    -
    32403  1 /*untilMonth*/,
    -
    32404  1 /*untilDay*/,
    -
    32405  0 /*untilTimeCode (0/15)*/,
    -
    32406  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32407  },
    -
    32408  // 13:00 Tonga %z
    -
    32409  {
    -
    32410  &kZonePolicyTonga /*zonePolicy*/,
    -
    32411  "" /*format*/,
    -
    32412  3120 /*offsetCode (46800/15)*/,
    -
    32413  0 /*offsetRemainder (46800%15)*/,
    -
    32414  0 /*deltaMinutes*/,
    -
    32415  32767 /*untilYear*/,
    -
    32416  1 /*untilMonth*/,
    -
    32417  1 /*untilDay*/,
    -
    32418  0 /*untilTimeCode (0/15)*/,
    -
    32419  0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    32420  },
    -
    32421 
    -
    32422 };
    -
    32423 
    -
    32424 static const char kZoneNamePacific_Tongatapu[] ACE_TIME_PROGMEM = "\x0e" "Tongatapu";
    -
    32425 
    -
    32426 const complete::Info::ZoneInfo kZonePacific_Tongatapu ACE_TIME_PROGMEM = {
    -
    32427  kZoneNamePacific_Tongatapu /*name*/,
    -
    32428  0x262ca836 /*zoneId*/,
    -
    32429  &kZoneContext /*zoneContext*/,
    -
    32430  4 /*numEras*/,
    -
    32431  kZoneEraPacific_Tongatapu /*eras*/,
    -
    32432  nullptr /*targetInfo*/,
    -
    32433 };
    -
    32434 
    -
    32435 
    -
    32436 
    -
    32437 //---------------------------------------------------------------------------
    -
    32438 // Links: 257
    -
    32439 //---------------------------------------------------------------------------
    -
    32440 
    -
    32441 //---------------------------------------------------------------------------
    -
    32442 // Link name: Africa/Accra -> Africa/Abidjan
    -
    32443 //---------------------------------------------------------------------------
    -
    32444 
    -
    32445 static const char kZoneNameAfrica_Accra[] ACE_TIME_PROGMEM = "\x01" "Accra";
    -
    32446 
    -
    32447 const complete::Info::ZoneInfo kZoneAfrica_Accra ACE_TIME_PROGMEM = {
    -
    32448  kZoneNameAfrica_Accra /*name*/,
    -
    32449  0x77d5b054 /*zoneId*/,
    -
    32450  &kZoneContext /*zoneContext*/,
    -
    32451  2 /*numEras*/,
    -
    32452  kZoneEraAfrica_Abidjan /*eras*/,
    -
    32453  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    32454 };
    -
    32455 
    -
    32456 //---------------------------------------------------------------------------
    -
    32457 // Link name: Africa/Addis_Ababa -> Africa/Nairobi
    -
    32458 //---------------------------------------------------------------------------
    -
    32459 
    -
    32460 static const char kZoneNameAfrica_Addis_Ababa[] ACE_TIME_PROGMEM = "\x01" "Addis_Ababa";
    -
    32461 
    -
    32462 const complete::Info::ZoneInfo kZoneAfrica_Addis_Ababa ACE_TIME_PROGMEM = {
    -
    32463  kZoneNameAfrica_Addis_Ababa /*name*/,
    -
    32464  0x05ae1e65 /*zoneId*/,
    -
    32465  &kZoneContext /*zoneContext*/,
    -
    32466  6 /*numEras*/,
    -
    32467  kZoneEraAfrica_Nairobi /*eras*/,
    -
    32468  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    32469 };
    -
    32470 
    -
    32471 //---------------------------------------------------------------------------
    -
    32472 // Link name: Africa/Asmara -> Africa/Nairobi
    -
    32473 //---------------------------------------------------------------------------
    -
    32474 
    -
    32475 static const char kZoneNameAfrica_Asmara[] ACE_TIME_PROGMEM = "\x01" "Asmara";
    -
    32476 
    -
    32477 const complete::Info::ZoneInfo kZoneAfrica_Asmara ACE_TIME_PROGMEM = {
    -
    32478  kZoneNameAfrica_Asmara /*name*/,
    -
    32479  0x73b278ef /*zoneId*/,
    -
    32480  &kZoneContext /*zoneContext*/,
    -
    32481  6 /*numEras*/,
    -
    32482  kZoneEraAfrica_Nairobi /*eras*/,
    -
    32483  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    32484 };
    -
    32485 
    -
    32486 //---------------------------------------------------------------------------
    -
    32487 // Link name: Africa/Asmera -> Africa/Nairobi
    -
    32488 //---------------------------------------------------------------------------
    -
    32489 
    -
    32490 static const char kZoneNameAfrica_Asmera[] ACE_TIME_PROGMEM = "\x01" "Asmera";
    -
    32491 
    -
    32492 const complete::Info::ZoneInfo kZoneAfrica_Asmera ACE_TIME_PROGMEM = {
    -
    32493  kZoneNameAfrica_Asmera /*name*/,
    -
    32494  0x73b289f3 /*zoneId*/,
    -
    32495  &kZoneContext /*zoneContext*/,
    -
    32496  6 /*numEras*/,
    -
    32497  kZoneEraAfrica_Nairobi /*eras*/,
    -
    32498  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    32499 };
    -
    32500 
    -
    32501 //---------------------------------------------------------------------------
    -
    32502 // Link name: Africa/Bamako -> Africa/Abidjan
    -
    32503 //---------------------------------------------------------------------------
    -
    32504 
    -
    32505 static const char kZoneNameAfrica_Bamako[] ACE_TIME_PROGMEM = "\x01" "Bamako";
    -
    32506 
    -
    32507 const complete::Info::ZoneInfo kZoneAfrica_Bamako ACE_TIME_PROGMEM = {
    -
    32508  kZoneNameAfrica_Bamako /*name*/,
    -
    32509  0x74c1e7a5 /*zoneId*/,
    -
    32510  &kZoneContext /*zoneContext*/,
    -
    32511  2 /*numEras*/,
    -
    32512  kZoneEraAfrica_Abidjan /*eras*/,
    -
    32513  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    32514 };
    -
    32515 
    -
    32516 //---------------------------------------------------------------------------
    -
    32517 // Link name: Africa/Bangui -> Africa/Lagos
    -
    32518 //---------------------------------------------------------------------------
    -
    32519 
    -
    32520 static const char kZoneNameAfrica_Bangui[] ACE_TIME_PROGMEM = "\x01" "Bangui";
    -
    32521 
    -
    32522 const complete::Info::ZoneInfo kZoneAfrica_Bangui ACE_TIME_PROGMEM = {
    -
    32523  kZoneNameAfrica_Bangui /*name*/,
    -
    32524  0x74c28ed0 /*zoneId*/,
    -
    32525  &kZoneContext /*zoneContext*/,
    -
    32526  5 /*numEras*/,
    -
    32527  kZoneEraAfrica_Lagos /*eras*/,
    -
    32528  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    32529 };
    -
    32530 
    -
    32531 //---------------------------------------------------------------------------
    -
    32532 // Link name: Africa/Banjul -> Africa/Abidjan
    -
    32533 //---------------------------------------------------------------------------
    -
    32534 
    -
    32535 static const char kZoneNameAfrica_Banjul[] ACE_TIME_PROGMEM = "\x01" "Banjul";
    -
    32536 
    -
    32537 const complete::Info::ZoneInfo kZoneAfrica_Banjul ACE_TIME_PROGMEM = {
    -
    32538  kZoneNameAfrica_Banjul /*name*/,
    -
    32539  0x74c29b96 /*zoneId*/,
    -
    32540  &kZoneContext /*zoneContext*/,
    -
    32541  2 /*numEras*/,
    -
    32542  kZoneEraAfrica_Abidjan /*eras*/,
    -
    32543  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    32544 };
    -
    32545 
    -
    32546 //---------------------------------------------------------------------------
    -
    32547 // Link name: Africa/Blantyre -> Africa/Maputo
    -
    32548 //---------------------------------------------------------------------------
    -
    32549 
    -
    32550 static const char kZoneNameAfrica_Blantyre[] ACE_TIME_PROGMEM = "\x01" "Blantyre";
    -
    32551 
    -
    32552 const complete::Info::ZoneInfo kZoneAfrica_Blantyre ACE_TIME_PROGMEM = {
    -
    32553  kZoneNameAfrica_Blantyre /*name*/,
    -
    32554  0xe08d813b /*zoneId*/,
    -
    32555  &kZoneContext /*zoneContext*/,
    -
    32556  2 /*numEras*/,
    -
    32557  kZoneEraAfrica_Maputo /*eras*/,
    -
    32558  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    32559 };
    -
    32560 
    -
    32561 //---------------------------------------------------------------------------
    -
    32562 // Link name: Africa/Brazzaville -> Africa/Lagos
    -
    32563 //---------------------------------------------------------------------------
    -
    32564 
    -
    32565 static const char kZoneNameAfrica_Brazzaville[] ACE_TIME_PROGMEM = "\x01" "Brazzaville";
    -
    32566 
    -
    32567 const complete::Info::ZoneInfo kZoneAfrica_Brazzaville ACE_TIME_PROGMEM = {
    -
    32568  kZoneNameAfrica_Brazzaville /*name*/,
    -
    32569  0x39cda760 /*zoneId*/,
    -
    32570  &kZoneContext /*zoneContext*/,
    -
    32571  5 /*numEras*/,
    -
    32572  kZoneEraAfrica_Lagos /*eras*/,
    -
    32573  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    32574 };
    -
    32575 
    -
    32576 //---------------------------------------------------------------------------
    -
    32577 // Link name: Africa/Bujumbura -> Africa/Maputo
    -
    32578 //---------------------------------------------------------------------------
    -
    32579 
    -
    32580 static const char kZoneNameAfrica_Bujumbura[] ACE_TIME_PROGMEM = "\x01" "Bujumbura";
    -
    32581 
    -
    32582 const complete::Info::ZoneInfo kZoneAfrica_Bujumbura ACE_TIME_PROGMEM = {
    -
    32583  kZoneNameAfrica_Bujumbura /*name*/,
    -
    32584  0x05232a47 /*zoneId*/,
    -
    32585  &kZoneContext /*zoneContext*/,
    -
    32586  2 /*numEras*/,
    -
    32587  kZoneEraAfrica_Maputo /*eras*/,
    -
    32588  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    32589 };
    -
    32590 
    -
    32591 //---------------------------------------------------------------------------
    -
    32592 // Link name: Africa/Conakry -> Africa/Abidjan
    -
    32593 //---------------------------------------------------------------------------
    -
    32594 
    -
    32595 static const char kZoneNameAfrica_Conakry[] ACE_TIME_PROGMEM = "\x01" "Conakry";
    -
    32596 
    -
    32597 const complete::Info::ZoneInfo kZoneAfrica_Conakry ACE_TIME_PROGMEM = {
    -
    32598  kZoneNameAfrica_Conakry /*name*/,
    -
    32599  0x7ab36b31 /*zoneId*/,
    -
    32600  &kZoneContext /*zoneContext*/,
    -
    32601  2 /*numEras*/,
    -
    32602  kZoneEraAfrica_Abidjan /*eras*/,
    -
    32603  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    32604 };
    -
    32605 
    -
    32606 //---------------------------------------------------------------------------
    -
    32607 // Link name: Africa/Dakar -> Africa/Abidjan
    -
    32608 //---------------------------------------------------------------------------
    -
    32609 
    -
    32610 static const char kZoneNameAfrica_Dakar[] ACE_TIME_PROGMEM = "\x01" "Dakar";
    -
    32611 
    -
    32612 const complete::Info::ZoneInfo kZoneAfrica_Dakar ACE_TIME_PROGMEM = {
    -
    32613  kZoneNameAfrica_Dakar /*name*/,
    -
    32614  0x780b00fd /*zoneId*/,
    -
    32615  &kZoneContext /*zoneContext*/,
    -
    32616  2 /*numEras*/,
    -
    32617  kZoneEraAfrica_Abidjan /*eras*/,
    -
    32618  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    32619 };
    -
    32620 
    -
    32621 //---------------------------------------------------------------------------
    -
    32622 // Link name: Africa/Dar_es_Salaam -> Africa/Nairobi
    -
    32623 //---------------------------------------------------------------------------
    -
    32624 
    -
    32625 static const char kZoneNameAfrica_Dar_es_Salaam[] ACE_TIME_PROGMEM = "\x01" "Dar_es_Salaam";
    -
    32626 
    -
    32627 const complete::Info::ZoneInfo kZoneAfrica_Dar_es_Salaam ACE_TIME_PROGMEM = {
    -
    32628  kZoneNameAfrica_Dar_es_Salaam /*name*/,
    -
    32629  0xa04c47b6 /*zoneId*/,
    -
    32630  &kZoneContext /*zoneContext*/,
    -
    32631  6 /*numEras*/,
    -
    32632  kZoneEraAfrica_Nairobi /*eras*/,
    -
    32633  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    32634 };
    -
    32635 
    -
    32636 //---------------------------------------------------------------------------
    -
    32637 // Link name: Africa/Djibouti -> Africa/Nairobi
    -
    32638 //---------------------------------------------------------------------------
    -
    32639 
    -
    32640 static const char kZoneNameAfrica_Djibouti[] ACE_TIME_PROGMEM = "\x01" "Djibouti";
    -
    32641 
    -
    32642 const complete::Info::ZoneInfo kZoneAfrica_Djibouti ACE_TIME_PROGMEM = {
    -
    32643  kZoneNameAfrica_Djibouti /*name*/,
    -
    32644  0x30ea01d4 /*zoneId*/,
    -
    32645  &kZoneContext /*zoneContext*/,
    -
    32646  6 /*numEras*/,
    -
    32647  kZoneEraAfrica_Nairobi /*eras*/,
    -
    32648  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    32649 };
    -
    32650 
    -
    32651 //---------------------------------------------------------------------------
    -
    32652 // Link name: Africa/Douala -> Africa/Lagos
    -
    32653 //---------------------------------------------------------------------------
    -
    32654 
    -
    32655 static const char kZoneNameAfrica_Douala[] ACE_TIME_PROGMEM = "\x01" "Douala";
    -
    32656 
    -
    32657 const complete::Info::ZoneInfo kZoneAfrica_Douala ACE_TIME_PROGMEM = {
    -
    32658  kZoneNameAfrica_Douala /*name*/,
    -
    32659  0x7a6df310 /*zoneId*/,
    -
    32660  &kZoneContext /*zoneContext*/,
    -
    32661  5 /*numEras*/,
    -
    32662  kZoneEraAfrica_Lagos /*eras*/,
    -
    32663  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    32664 };
    -
    32665 
    -
    32666 //---------------------------------------------------------------------------
    -
    32667 // Link name: Africa/Freetown -> Africa/Abidjan
    -
    32668 //---------------------------------------------------------------------------
    -
    32669 
    -
    32670 static const char kZoneNameAfrica_Freetown[] ACE_TIME_PROGMEM = "\x01" "Freetown";
    -
    32671 
    -
    32672 const complete::Info::ZoneInfo kZoneAfrica_Freetown ACE_TIME_PROGMEM = {
    -
    32673  kZoneNameAfrica_Freetown /*name*/,
    -
    32674  0x6823dd64 /*zoneId*/,
    -
    32675  &kZoneContext /*zoneContext*/,
    -
    32676  2 /*numEras*/,
    -
    32677  kZoneEraAfrica_Abidjan /*eras*/,
    -
    32678  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    32679 };
    -
    32680 
    -
    32681 //---------------------------------------------------------------------------
    -
    32682 // Link name: Africa/Gaborone -> Africa/Maputo
    -
    32683 //---------------------------------------------------------------------------
    -
    32684 
    -
    32685 static const char kZoneNameAfrica_Gaborone[] ACE_TIME_PROGMEM = "\x01" "Gaborone";
    -
    32686 
    -
    32687 const complete::Info::ZoneInfo kZoneAfrica_Gaborone ACE_TIME_PROGMEM = {
    -
    32688  kZoneNameAfrica_Gaborone /*name*/,
    -
    32689  0x317c0aa7 /*zoneId*/,
    -
    32690  &kZoneContext /*zoneContext*/,
    -
    32691  2 /*numEras*/,
    -
    32692  kZoneEraAfrica_Maputo /*eras*/,
    -
    32693  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    32694 };
    -
    32695 
    -
    32696 //---------------------------------------------------------------------------
    -
    32697 // Link name: Africa/Harare -> Africa/Maputo
    -
    32698 //---------------------------------------------------------------------------
    -
    32699 
    -
    32700 static const char kZoneNameAfrica_Harare[] ACE_TIME_PROGMEM = "\x01" "Harare";
    -
    32701 
    -
    32702 const complete::Info::ZoneInfo kZoneAfrica_Harare ACE_TIME_PROGMEM = {
    -
    32703  kZoneNameAfrica_Harare /*name*/,
    -
    32704  0x82c39a2d /*zoneId*/,
    -
    32705  &kZoneContext /*zoneContext*/,
    -
    32706  2 /*numEras*/,
    -
    32707  kZoneEraAfrica_Maputo /*eras*/,
    -
    32708  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    32709 };
    -
    32710 
    -
    32711 //---------------------------------------------------------------------------
    -
    32712 // Link name: Africa/Kampala -> Africa/Nairobi
    -
    32713 //---------------------------------------------------------------------------
    -
    32714 
    -
    32715 static const char kZoneNameAfrica_Kampala[] ACE_TIME_PROGMEM = "\x01" "Kampala";
    -
    32716 
    -
    32717 const complete::Info::ZoneInfo kZoneAfrica_Kampala ACE_TIME_PROGMEM = {
    -
    32718  kZoneNameAfrica_Kampala /*name*/,
    -
    32719  0xc1d30e31 /*zoneId*/,
    -
    32720  &kZoneContext /*zoneContext*/,
    -
    32721  6 /*numEras*/,
    -
    32722  kZoneEraAfrica_Nairobi /*eras*/,
    -
    32723  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    32724 };
    -
    32725 
    -
    32726 //---------------------------------------------------------------------------
    -
    32727 // Link name: Africa/Kigali -> Africa/Maputo
    -
    32728 //---------------------------------------------------------------------------
    -
    32729 
    -
    32730 static const char kZoneNameAfrica_Kigali[] ACE_TIME_PROGMEM = "\x01" "Kigali";
    -
    32731 
    -
    32732 const complete::Info::ZoneInfo kZoneAfrica_Kigali ACE_TIME_PROGMEM = {
    -
    32733  kZoneNameAfrica_Kigali /*name*/,
    -
    32734  0x8a4dcf2b /*zoneId*/,
    -
    32735  &kZoneContext /*zoneContext*/,
    -
    32736  2 /*numEras*/,
    -
    32737  kZoneEraAfrica_Maputo /*eras*/,
    -
    32738  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    32739 };
    -
    32740 
    -
    32741 //---------------------------------------------------------------------------
    -
    32742 // Link name: Africa/Kinshasa -> Africa/Lagos
    -
    32743 //---------------------------------------------------------------------------
    -
    32744 
    -
    32745 static const char kZoneNameAfrica_Kinshasa[] ACE_TIME_PROGMEM = "\x01" "Kinshasa";
    -
    32746 
    -
    32747 const complete::Info::ZoneInfo kZoneAfrica_Kinshasa ACE_TIME_PROGMEM = {
    -
    32748  kZoneNameAfrica_Kinshasa /*name*/,
    -
    32749  0x6695d70c /*zoneId*/,
    -
    32750  &kZoneContext /*zoneContext*/,
    -
    32751  5 /*numEras*/,
    -
    32752  kZoneEraAfrica_Lagos /*eras*/,
    -
    32753  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    32754 };
    -
    32755 
    -
    32756 //---------------------------------------------------------------------------
    -
    32757 // Link name: Africa/Libreville -> Africa/Lagos
    -
    32758 //---------------------------------------------------------------------------
    -
    32759 
    -
    32760 static const char kZoneNameAfrica_Libreville[] ACE_TIME_PROGMEM = "\x01" "Libreville";
    -
    32761 
    -
    32762 const complete::Info::ZoneInfo kZoneAfrica_Libreville ACE_TIME_PROGMEM = {
    -
    32763  kZoneNameAfrica_Libreville /*name*/,
    -
    32764  0x01d96de4 /*zoneId*/,
    -
    32765  &kZoneContext /*zoneContext*/,
    -
    32766  5 /*numEras*/,
    -
    32767  kZoneEraAfrica_Lagos /*eras*/,
    -
    32768  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    32769 };
    -
    32770 
    -
    32771 //---------------------------------------------------------------------------
    -
    32772 // Link name: Africa/Lome -> Africa/Abidjan
    -
    32773 //---------------------------------------------------------------------------
    -
    32774 
    -
    32775 static const char kZoneNameAfrica_Lome[] ACE_TIME_PROGMEM = "\x01" "Lome";
    -
    32776 
    -
    32777 const complete::Info::ZoneInfo kZoneAfrica_Lome ACE_TIME_PROGMEM = {
    -
    32778  kZoneNameAfrica_Lome /*name*/,
    -
    32779  0xd51c3a07 /*zoneId*/,
    -
    32780  &kZoneContext /*zoneContext*/,
    -
    32781  2 /*numEras*/,
    -
    32782  kZoneEraAfrica_Abidjan /*eras*/,
    -
    32783  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    32784 };
    -
    32785 
    -
    32786 //---------------------------------------------------------------------------
    -
    32787 // Link name: Africa/Luanda -> Africa/Lagos
    -
    32788 //---------------------------------------------------------------------------
    -
    32789 
    -
    32790 static const char kZoneNameAfrica_Luanda[] ACE_TIME_PROGMEM = "\x01" "Luanda";
    -
    32791 
    -
    32792 const complete::Info::ZoneInfo kZoneAfrica_Luanda ACE_TIME_PROGMEM = {
    -
    32793  kZoneNameAfrica_Luanda /*name*/,
    -
    32794  0x8d7909cf /*zoneId*/,
    -
    32795  &kZoneContext /*zoneContext*/,
    -
    32796  5 /*numEras*/,
    -
    32797  kZoneEraAfrica_Lagos /*eras*/,
    -
    32798  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    32799 };
    -
    32800 
    -
    32801 //---------------------------------------------------------------------------
    -
    32802 // Link name: Africa/Lubumbashi -> Africa/Maputo
    -
    32803 //---------------------------------------------------------------------------
    -
    32804 
    -
    32805 static const char kZoneNameAfrica_Lubumbashi[] ACE_TIME_PROGMEM = "\x01" "Lubumbashi";
    -
    32806 
    -
    32807 const complete::Info::ZoneInfo kZoneAfrica_Lubumbashi ACE_TIME_PROGMEM = {
    -
    32808  kZoneNameAfrica_Lubumbashi /*name*/,
    -
    32809  0x6fd88566 /*zoneId*/,
    -
    32810  &kZoneContext /*zoneContext*/,
    -
    32811  2 /*numEras*/,
    -
    32812  kZoneEraAfrica_Maputo /*eras*/,
    -
    32813  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    32814 };
    -
    32815 
    -
    32816 //---------------------------------------------------------------------------
    -
    32817 // Link name: Africa/Lusaka -> Africa/Maputo
    -
    32818 //---------------------------------------------------------------------------
    -
    32819 
    -
    32820 static const char kZoneNameAfrica_Lusaka[] ACE_TIME_PROGMEM = "\x01" "Lusaka";
    -
    32821 
    -
    32822 const complete::Info::ZoneInfo kZoneAfrica_Lusaka ACE_TIME_PROGMEM = {
    -
    32823  kZoneNameAfrica_Lusaka /*name*/,
    -
    32824  0x8d82b23b /*zoneId*/,
    -
    32825  &kZoneContext /*zoneContext*/,
    -
    32826  2 /*numEras*/,
    -
    32827  kZoneEraAfrica_Maputo /*eras*/,
    -
    32828  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    32829 };
    -
    32830 
    -
    32831 //---------------------------------------------------------------------------
    -
    32832 // Link name: Africa/Malabo -> Africa/Lagos
    -
    32833 //---------------------------------------------------------------------------
    -
    32834 
    -
    32835 static const char kZoneNameAfrica_Malabo[] ACE_TIME_PROGMEM = "\x01" "Malabo";
    -
    32836 
    -
    32837 const complete::Info::ZoneInfo kZoneAfrica_Malabo ACE_TIME_PROGMEM = {
    -
    32838  kZoneNameAfrica_Malabo /*name*/,
    -
    32839  0x8e6a1906 /*zoneId*/,
    -
    32840  &kZoneContext /*zoneContext*/,
    -
    32841  5 /*numEras*/,
    -
    32842  kZoneEraAfrica_Lagos /*eras*/,
    -
    32843  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    32844 };
    -
    32845 
    -
    32846 //---------------------------------------------------------------------------
    -
    32847 // Link name: Africa/Maseru -> Africa/Johannesburg
    -
    32848 //---------------------------------------------------------------------------
    -
    32849 
    -
    32850 static const char kZoneNameAfrica_Maseru[] ACE_TIME_PROGMEM = "\x01" "Maseru";
    -
    32851 
    -
    32852 const complete::Info::ZoneInfo kZoneAfrica_Maseru ACE_TIME_PROGMEM = {
    -
    32853  kZoneNameAfrica_Maseru /*name*/,
    -
    32854  0x8e6e02c7 /*zoneId*/,
    -
    32855  &kZoneContext /*zoneContext*/,
    -
    32856  3 /*numEras*/,
    -
    32857  kZoneEraAfrica_Johannesburg /*eras*/,
    -
    32858  &kZoneAfrica_Johannesburg /*targetInfo*/,
    -
    32859 };
    -
    32860 
    -
    32861 //---------------------------------------------------------------------------
    -
    32862 // Link name: Africa/Mbabane -> Africa/Johannesburg
    -
    32863 //---------------------------------------------------------------------------
    -
    32864 
    -
    32865 static const char kZoneNameAfrica_Mbabane[] ACE_TIME_PROGMEM = "\x01" "Mbabane";
    -
    32866 
    -
    32867 const complete::Info::ZoneInfo kZoneAfrica_Mbabane ACE_TIME_PROGMEM = {
    -
    32868  kZoneNameAfrica_Mbabane /*name*/,
    -
    32869  0x5d3bdd40 /*zoneId*/,
    -
    32870  &kZoneContext /*zoneContext*/,
    -
    32871  3 /*numEras*/,
    -
    32872  kZoneEraAfrica_Johannesburg /*eras*/,
    -
    32873  &kZoneAfrica_Johannesburg /*targetInfo*/,
    -
    32874 };
    -
    32875 
    -
    32876 //---------------------------------------------------------------------------
    -
    32877 // Link name: Africa/Mogadishu -> Africa/Nairobi
    -
    32878 //---------------------------------------------------------------------------
    -
    32879 
    -
    32880 static const char kZoneNameAfrica_Mogadishu[] ACE_TIME_PROGMEM = "\x01" "Mogadishu";
    -
    32881 
    -
    32882 const complete::Info::ZoneInfo kZoneAfrica_Mogadishu ACE_TIME_PROGMEM = {
    -
    32883  kZoneNameAfrica_Mogadishu /*name*/,
    -
    32884  0x66bc159b /*zoneId*/,
    -
    32885  &kZoneContext /*zoneContext*/,
    -
    32886  6 /*numEras*/,
    -
    32887  kZoneEraAfrica_Nairobi /*eras*/,
    -
    32888  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    32889 };
    -
    32890 
    -
    32891 //---------------------------------------------------------------------------
    -
    32892 // Link name: Africa/Niamey -> Africa/Lagos
    -
    32893 //---------------------------------------------------------------------------
    -
    32894 
    -
    32895 static const char kZoneNameAfrica_Niamey[] ACE_TIME_PROGMEM = "\x01" "Niamey";
    -
    32896 
    -
    32897 const complete::Info::ZoneInfo kZoneAfrica_Niamey ACE_TIME_PROGMEM = {
    -
    32898  kZoneNameAfrica_Niamey /*name*/,
    -
    32899  0x914a30fd /*zoneId*/,
    -
    32900  &kZoneContext /*zoneContext*/,
    -
    32901  5 /*numEras*/,
    -
    32902  kZoneEraAfrica_Lagos /*eras*/,
    -
    32903  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    32904 };
    -
    32905 
    -
    32906 //---------------------------------------------------------------------------
    -
    32907 // Link name: Africa/Nouakchott -> Africa/Abidjan
    -
    32908 //---------------------------------------------------------------------------
    -
    32909 
    -
    32910 static const char kZoneNameAfrica_Nouakchott[] ACE_TIME_PROGMEM = "\x01" "Nouakchott";
    -
    32911 
    -
    32912 const complete::Info::ZoneInfo kZoneAfrica_Nouakchott ACE_TIME_PROGMEM = {
    -
    32913  kZoneNameAfrica_Nouakchott /*name*/,
    -
    32914  0x3dc49dba /*zoneId*/,
    -
    32915  &kZoneContext /*zoneContext*/,
    -
    32916  2 /*numEras*/,
    -
    32917  kZoneEraAfrica_Abidjan /*eras*/,
    -
    32918  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    32919 };
    -
    32920 
    -
    32921 //---------------------------------------------------------------------------
    -
    32922 // Link name: Africa/Ouagadougou -> Africa/Abidjan
    -
    32923 //---------------------------------------------------------------------------
    -
    32924 
    -
    32925 static const char kZoneNameAfrica_Ouagadougou[] ACE_TIME_PROGMEM = "\x01" "Ouagadougou";
    -
    32926 
    -
    32927 const complete::Info::ZoneInfo kZoneAfrica_Ouagadougou ACE_TIME_PROGMEM = {
    -
    32928  kZoneNameAfrica_Ouagadougou /*name*/,
    -
    32929  0x04d7219a /*zoneId*/,
    -
    32930  &kZoneContext /*zoneContext*/,
    -
    32931  2 /*numEras*/,
    -
    32932  kZoneEraAfrica_Abidjan /*eras*/,
    -
    32933  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    32934 };
    -
    32935 
    -
    32936 //---------------------------------------------------------------------------
    -
    32937 // Link name: Africa/Porto-Novo -> Africa/Lagos
    -
    32938 //---------------------------------------------------------------------------
    -
    32939 
    -
    32940 static const char kZoneNameAfrica_Porto_Novo[] ACE_TIME_PROGMEM = "\x01" "Porto-Novo";
    -
    32941 
    -
    32942 const complete::Info::ZoneInfo kZoneAfrica_Porto_Novo ACE_TIME_PROGMEM = {
    -
    32943  kZoneNameAfrica_Porto_Novo /*name*/,
    -
    32944  0x3d1bf95d /*zoneId*/,
    -
    32945  &kZoneContext /*zoneContext*/,
    -
    32946  5 /*numEras*/,
    -
    32947  kZoneEraAfrica_Lagos /*eras*/,
    -
    32948  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    32949 };
    -
    32950 
    -
    32951 //---------------------------------------------------------------------------
    -
    32952 // Link name: Africa/Timbuktu -> Africa/Abidjan
    -
    32953 //---------------------------------------------------------------------------
    -
    32954 
    -
    32955 static const char kZoneNameAfrica_Timbuktu[] ACE_TIME_PROGMEM = "\x01" "Timbuktu";
    -
    32956 
    -
    32957 const complete::Info::ZoneInfo kZoneAfrica_Timbuktu ACE_TIME_PROGMEM = {
    -
    32958  kZoneNameAfrica_Timbuktu /*name*/,
    -
    32959  0xb164d56f /*zoneId*/,
    -
    32960  &kZoneContext /*zoneContext*/,
    -
    32961  2 /*numEras*/,
    -
    32962  kZoneEraAfrica_Abidjan /*eras*/,
    -
    32963  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    32964 };
    -
    32965 
    -
    32966 //---------------------------------------------------------------------------
    -
    32967 // Link name: America/Anguilla -> America/Puerto_Rico
    -
    32968 //---------------------------------------------------------------------------
    -
    32969 
    -
    32970 static const char kZoneNameAmerica_Anguilla[] ACE_TIME_PROGMEM = "\x02" "Anguilla";
    -
    32971 
    -
    32972 const complete::Info::ZoneInfo kZoneAmerica_Anguilla ACE_TIME_PROGMEM = {
    -
    32973  kZoneNameAmerica_Anguilla /*name*/,
    -
    32974  0xafe31333 /*zoneId*/,
    -
    32975  &kZoneContext /*zoneContext*/,
    -
    32976  4 /*numEras*/,
    -
    32977  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    32978  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    32979 };
    -
    32980 
    -
    32981 //---------------------------------------------------------------------------
    -
    32982 // Link name: America/Antigua -> America/Puerto_Rico
    -
    32983 //---------------------------------------------------------------------------
    -
    32984 
    -
    32985 static const char kZoneNameAmerica_Antigua[] ACE_TIME_PROGMEM = "\x02" "Antigua";
    -
    32986 
    -
    32987 const complete::Info::ZoneInfo kZoneAmerica_Antigua ACE_TIME_PROGMEM = {
    -
    32988  kZoneNameAmerica_Antigua /*name*/,
    -
    32989  0xc067a32f /*zoneId*/,
    -
    32990  &kZoneContext /*zoneContext*/,
    -
    32991  4 /*numEras*/,
    -
    32992  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    32993  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    32994 };
    -
    32995 
    -
    32996 //---------------------------------------------------------------------------
    -
    32997 // Link name: America/Argentina/ComodRivadavia -> America/Argentina/Catamarca
    -
    32998 //---------------------------------------------------------------------------
    -
    32999 
    -
    33000 static const char kZoneNameAmerica_Argentina_ComodRivadavia[] ACE_TIME_PROGMEM = "\x02" "\x04" "ComodRivadavia";
    -
    33001 
    -
    33002 const complete::Info::ZoneInfo kZoneAmerica_Argentina_ComodRivadavia ACE_TIME_PROGMEM = {
    -
    33003  kZoneNameAmerica_Argentina_ComodRivadavia /*name*/,
    -
    33004  0x22758877 /*zoneId*/,
    -
    33005  &kZoneContext /*zoneContext*/,
    -
    33006  12 /*numEras*/,
    -
    33007  kZoneEraAmerica_Argentina_Catamarca /*eras*/,
    -
    33008  &kZoneAmerica_Argentina_Catamarca /*targetInfo*/,
    -
    33009 };
    -
    33010 
    -
    33011 //---------------------------------------------------------------------------
    -
    33012 // Link name: America/Aruba -> America/Puerto_Rico
    -
    33013 //---------------------------------------------------------------------------
    -
    33014 
    -
    33015 static const char kZoneNameAmerica_Aruba[] ACE_TIME_PROGMEM = "\x02" "Aruba";
    -
    33016 
    -
    33017 const complete::Info::ZoneInfo kZoneAmerica_Aruba ACE_TIME_PROGMEM = {
    -
    33018  kZoneNameAmerica_Aruba /*name*/,
    -
    33019  0x97cf8651 /*zoneId*/,
    -
    33020  &kZoneContext /*zoneContext*/,
    -
    33021  4 /*numEras*/,
    -
    33022  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33023  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33024 };
    -
    33025 
    -
    33026 //---------------------------------------------------------------------------
    -
    33027 // Link name: America/Atikokan -> America/Panama
    -
    33028 //---------------------------------------------------------------------------
    -
    33029 
    -
    33030 static const char kZoneNameAmerica_Atikokan[] ACE_TIME_PROGMEM = "\x02" "Atikokan";
    -
    33031 
    -
    33032 const complete::Info::ZoneInfo kZoneAmerica_Atikokan ACE_TIME_PROGMEM = {
    -
    33033  kZoneNameAmerica_Atikokan /*name*/,
    -
    33034  0x81b92098 /*zoneId*/,
    -
    33035  &kZoneContext /*zoneContext*/,
    -
    33036  3 /*numEras*/,
    -
    33037  kZoneEraAmerica_Panama /*eras*/,
    -
    33038  &kZoneAmerica_Panama /*targetInfo*/,
    -
    33039 };
    -
    33040 
    -
    33041 //---------------------------------------------------------------------------
    -
    33042 // Link name: America/Atka -> America/Adak
    -
    33043 //---------------------------------------------------------------------------
    -
    33044 
    -
    33045 static const char kZoneNameAmerica_Atka[] ACE_TIME_PROGMEM = "\x02" "Atka";
    -
    33046 
    -
    33047 const complete::Info::ZoneInfo kZoneAmerica_Atka ACE_TIME_PROGMEM = {
    -
    33048  kZoneNameAmerica_Atka /*name*/,
    -
    33049  0x97fe8f27 /*zoneId*/,
    -
    33050  &kZoneContext /*zoneContext*/,
    -
    33051  9 /*numEras*/,
    -
    33052  kZoneEraAmerica_Adak /*eras*/,
    -
    33053  &kZoneAmerica_Adak /*targetInfo*/,
    -
    33054 };
    -
    33055 
    -
    33056 //---------------------------------------------------------------------------
    -
    33057 // Link name: America/Blanc-Sablon -> America/Puerto_Rico
    -
    33058 //---------------------------------------------------------------------------
    -
    33059 
    -
    33060 static const char kZoneNameAmerica_Blanc_Sablon[] ACE_TIME_PROGMEM = "\x02" "Blanc-Sablon";
    -
    33061 
    -
    33062 const complete::Info::ZoneInfo kZoneAmerica_Blanc_Sablon ACE_TIME_PROGMEM = {
    -
    33063  kZoneNameAmerica_Blanc_Sablon /*name*/,
    -
    33064  0x6e299892 /*zoneId*/,
    -
    33065  &kZoneContext /*zoneContext*/,
    -
    33066  4 /*numEras*/,
    -
    33067  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33068  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33069 };
    -
    33070 
    -
    33071 //---------------------------------------------------------------------------
    -
    33072 // Link name: America/Buenos_Aires -> America/Argentina/Buenos_Aires
    -
    33073 //---------------------------------------------------------------------------
    -
    33074 
    -
    33075 static const char kZoneNameAmerica_Buenos_Aires[] ACE_TIME_PROGMEM = "\x02" "Buenos_Aires";
    -
    33076 
    -
    33077 const complete::Info::ZoneInfo kZoneAmerica_Buenos_Aires ACE_TIME_PROGMEM = {
    -
    33078  kZoneNameAmerica_Buenos_Aires /*name*/,
    -
    33079  0x67d79a05 /*zoneId*/,
    -
    33080  &kZoneContext /*zoneContext*/,
    -
    33081  7 /*numEras*/,
    -
    33082  kZoneEraAmerica_Argentina_Buenos_Aires /*eras*/,
    -
    33083  &kZoneAmerica_Argentina_Buenos_Aires /*targetInfo*/,
    -
    33084 };
    -
    33085 
    -
    33086 //---------------------------------------------------------------------------
    -
    33087 // Link name: America/Catamarca -> America/Argentina/Catamarca
    -
    33088 //---------------------------------------------------------------------------
    -
    33089 
    -
    33090 static const char kZoneNameAmerica_Catamarca[] ACE_TIME_PROGMEM = "\x02" "Catamarca";
    -
    33091 
    -
    33092 const complete::Info::ZoneInfo kZoneAmerica_Catamarca ACE_TIME_PROGMEM = {
    -
    33093  kZoneNameAmerica_Catamarca /*name*/,
    -
    33094  0x5036e963 /*zoneId*/,
    -
    33095  &kZoneContext /*zoneContext*/,
    -
    33096  12 /*numEras*/,
    -
    33097  kZoneEraAmerica_Argentina_Catamarca /*eras*/,
    -
    33098  &kZoneAmerica_Argentina_Catamarca /*targetInfo*/,
    -
    33099 };
    -
    33100 
    -
    33101 //---------------------------------------------------------------------------
    -
    33102 // Link name: America/Cayman -> America/Panama
    -
    33103 //---------------------------------------------------------------------------
    -
    33104 
    -
    33105 static const char kZoneNameAmerica_Cayman[] ACE_TIME_PROGMEM = "\x02" "Cayman";
    -
    33106 
    -
    33107 const complete::Info::ZoneInfo kZoneAmerica_Cayman ACE_TIME_PROGMEM = {
    -
    33108  kZoneNameAmerica_Cayman /*name*/,
    -
    33109  0x953961df /*zoneId*/,
    -
    33110  &kZoneContext /*zoneContext*/,
    -
    33111  3 /*numEras*/,
    -
    33112  kZoneEraAmerica_Panama /*eras*/,
    -
    33113  &kZoneAmerica_Panama /*targetInfo*/,
    -
    33114 };
    -
    33115 
    -
    33116 //---------------------------------------------------------------------------
    -
    33117 // Link name: America/Coral_Harbour -> America/Panama
    -
    33118 //---------------------------------------------------------------------------
    -
    33119 
    -
    33120 static const char kZoneNameAmerica_Coral_Harbour[] ACE_TIME_PROGMEM = "\x02" "Coral_Harbour";
    -
    33121 
    -
    33122 const complete::Info::ZoneInfo kZoneAmerica_Coral_Harbour ACE_TIME_PROGMEM = {
    -
    33123  kZoneNameAmerica_Coral_Harbour /*name*/,
    -
    33124  0xabcb7569 /*zoneId*/,
    -
    33125  &kZoneContext /*zoneContext*/,
    -
    33126  3 /*numEras*/,
    -
    33127  kZoneEraAmerica_Panama /*eras*/,
    -
    33128  &kZoneAmerica_Panama /*targetInfo*/,
    -
    33129 };
    -
    33130 
    -
    33131 //---------------------------------------------------------------------------
    -
    33132 // Link name: America/Cordoba -> America/Argentina/Cordoba
    -
    33133 //---------------------------------------------------------------------------
    -
    33134 
    -
    33135 static const char kZoneNameAmerica_Cordoba[] ACE_TIME_PROGMEM = "\x02" "Cordoba";
    -
    33136 
    -
    33137 const complete::Info::ZoneInfo kZoneAmerica_Cordoba ACE_TIME_PROGMEM = {
    -
    33138  kZoneNameAmerica_Cordoba /*name*/,
    -
    33139  0x5c8a7600 /*zoneId*/,
    -
    33140  &kZoneContext /*zoneContext*/,
    -
    33141  9 /*numEras*/,
    -
    33142  kZoneEraAmerica_Argentina_Cordoba /*eras*/,
    -
    33143  &kZoneAmerica_Argentina_Cordoba /*targetInfo*/,
    -
    33144 };
    -
    33145 
    -
    33146 //---------------------------------------------------------------------------
    -
    33147 // Link name: America/Creston -> America/Phoenix
    -
    33148 //---------------------------------------------------------------------------
    -
    33149 
    -
    33150 static const char kZoneNameAmerica_Creston[] ACE_TIME_PROGMEM = "\x02" "Creston";
    -
    33151 
    -
    33152 const complete::Info::ZoneInfo kZoneAmerica_Creston ACE_TIME_PROGMEM = {
    -
    33153  kZoneNameAmerica_Creston /*name*/,
    -
    33154  0x62a70204 /*zoneId*/,
    -
    33155  &kZoneContext /*zoneContext*/,
    -
    33156  7 /*numEras*/,
    -
    33157  kZoneEraAmerica_Phoenix /*eras*/,
    -
    33158  &kZoneAmerica_Phoenix /*targetInfo*/,
    -
    33159 };
    -
    33160 
    -
    33161 //---------------------------------------------------------------------------
    -
    33162 // Link name: America/Curacao -> America/Puerto_Rico
    -
    33163 //---------------------------------------------------------------------------
    -
    33164 
    -
    33165 static const char kZoneNameAmerica_Curacao[] ACE_TIME_PROGMEM = "\x02" "Curacao";
    -
    33166 
    -
    33167 const complete::Info::ZoneInfo kZoneAmerica_Curacao ACE_TIME_PROGMEM = {
    -
    33168  kZoneNameAmerica_Curacao /*name*/,
    -
    33169  0x6a879184 /*zoneId*/,
    -
    33170  &kZoneContext /*zoneContext*/,
    -
    33171  4 /*numEras*/,
    -
    33172  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33173  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33174 };
    -
    33175 
    -
    33176 //---------------------------------------------------------------------------
    -
    33177 // Link name: America/Dominica -> America/Puerto_Rico
    -
    33178 //---------------------------------------------------------------------------
    -
    33179 
    -
    33180 static const char kZoneNameAmerica_Dominica[] ACE_TIME_PROGMEM = "\x02" "Dominica";
    -
    33181 
    -
    33182 const complete::Info::ZoneInfo kZoneAmerica_Dominica ACE_TIME_PROGMEM = {
    -
    33183  kZoneNameAmerica_Dominica /*name*/,
    -
    33184  0xcecb4c4a /*zoneId*/,
    -
    33185  &kZoneContext /*zoneContext*/,
    -
    33186  4 /*numEras*/,
    -
    33187  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33188  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33189 };
    -
    33190 
    -
    33191 //---------------------------------------------------------------------------
    -
    33192 // Link name: America/Ensenada -> America/Tijuana
    -
    33193 //---------------------------------------------------------------------------
    -
    33194 
    -
    33195 static const char kZoneNameAmerica_Ensenada[] ACE_TIME_PROGMEM = "\x02" "Ensenada";
    -
    33196 
    -
    33197 const complete::Info::ZoneInfo kZoneAmerica_Ensenada ACE_TIME_PROGMEM = {
    -
    33198  kZoneNameAmerica_Ensenada /*name*/,
    -
    33199  0x7bc95445 /*zoneId*/,
    -
    33200  &kZoneContext /*zoneContext*/,
    -
    33201  25 /*numEras*/,
    -
    33202  kZoneEraAmerica_Tijuana /*eras*/,
    -
    33203  &kZoneAmerica_Tijuana /*targetInfo*/,
    -
    33204 };
    -
    33205 
    -
    33206 //---------------------------------------------------------------------------
    -
    33207 // Link name: America/Fort_Wayne -> America/Indiana/Indianapolis
    -
    33208 //---------------------------------------------------------------------------
    -
    33209 
    -
    33210 static const char kZoneNameAmerica_Fort_Wayne[] ACE_TIME_PROGMEM = "\x02" "Fort_Wayne";
    -
    33211 
    -
    33212 const complete::Info::ZoneInfo kZoneAmerica_Fort_Wayne ACE_TIME_PROGMEM = {
    -
    33213  kZoneNameAmerica_Fort_Wayne /*name*/,
    -
    33214  0x7eaaaf24 /*zoneId*/,
    -
    33215  &kZoneContext /*zoneContext*/,
    -
    33216  11 /*numEras*/,
    -
    33217  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    33218  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
    -
    33219 };
    -
    33220 
    -
    33221 //---------------------------------------------------------------------------
    -
    33222 // Link name: America/Godthab -> America/Nuuk
    -
    33223 //---------------------------------------------------------------------------
    -
    33224 
    -
    33225 static const char kZoneNameAmerica_Godthab[] ACE_TIME_PROGMEM = "\x02" "Godthab";
    -
    33226 
    -
    33227 const complete::Info::ZoneInfo kZoneAmerica_Godthab ACE_TIME_PROGMEM = {
    -
    33228  kZoneNameAmerica_Godthab /*name*/,
    -
    33229  0x8f7eba1f /*zoneId*/,
    -
    33230  &kZoneContext /*zoneContext*/,
    -
    33231  5 /*numEras*/,
    -
    33232  kZoneEraAmerica_Nuuk /*eras*/,
    -
    33233  &kZoneAmerica_Nuuk /*targetInfo*/,
    -
    33234 };
    -
    33235 
    -
    33236 //---------------------------------------------------------------------------
    -
    33237 // Link name: America/Grenada -> America/Puerto_Rico
    -
    33238 //---------------------------------------------------------------------------
    -
    33239 
    -
    33240 static const char kZoneNameAmerica_Grenada[] ACE_TIME_PROGMEM = "\x02" "Grenada";
    -
    33241 
    -
    33242 const complete::Info::ZoneInfo kZoneAmerica_Grenada ACE_TIME_PROGMEM = {
    -
    33243  kZoneNameAmerica_Grenada /*name*/,
    -
    33244  0x968ce4d8 /*zoneId*/,
    -
    33245  &kZoneContext /*zoneContext*/,
    -
    33246  4 /*numEras*/,
    -
    33247  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33248  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33249 };
    -
    33250 
    -
    33251 //---------------------------------------------------------------------------
    -
    33252 // Link name: America/Guadeloupe -> America/Puerto_Rico
    -
    33253 //---------------------------------------------------------------------------
    -
    33254 
    -
    33255 static const char kZoneNameAmerica_Guadeloupe[] ACE_TIME_PROGMEM = "\x02" "Guadeloupe";
    -
    33256 
    -
    33257 const complete::Info::ZoneInfo kZoneAmerica_Guadeloupe ACE_TIME_PROGMEM = {
    -
    33258  kZoneNameAmerica_Guadeloupe /*name*/,
    -
    33259  0xcd1f8a31 /*zoneId*/,
    -
    33260  &kZoneContext /*zoneContext*/,
    -
    33261  4 /*numEras*/,
    -
    33262  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33263  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33264 };
    -
    33265 
    -
    33266 //---------------------------------------------------------------------------
    -
    33267 // Link name: America/Indianapolis -> America/Indiana/Indianapolis
    -
    33268 //---------------------------------------------------------------------------
    -
    33269 
    -
    33270 static const char kZoneNameAmerica_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "Indianapolis";
    -
    33271 
    -
    33272 const complete::Info::ZoneInfo kZoneAmerica_Indianapolis ACE_TIME_PROGMEM = {
    -
    33273  kZoneNameAmerica_Indianapolis /*name*/,
    -
    33274  0x6a009ae1 /*zoneId*/,
    -
    33275  &kZoneContext /*zoneContext*/,
    -
    33276  11 /*numEras*/,
    -
    33277  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    33278  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
    -
    33279 };
    -
    33280 
    -
    33281 //---------------------------------------------------------------------------
    -
    33282 // Link name: America/Jujuy -> America/Argentina/Jujuy
    -
    33283 //---------------------------------------------------------------------------
    -
    33284 
    -
    33285 static const char kZoneNameAmerica_Jujuy[] ACE_TIME_PROGMEM = "\x02" "Jujuy";
    -
    33286 
    -
    33287 const complete::Info::ZoneInfo kZoneAmerica_Jujuy ACE_TIME_PROGMEM = {
    -
    33288  kZoneNameAmerica_Jujuy /*name*/,
    -
    33289  0x9873dbbd /*zoneId*/,
    -
    33290  &kZoneContext /*zoneContext*/,
    -
    33291  13 /*numEras*/,
    -
    33292  kZoneEraAmerica_Argentina_Jujuy /*eras*/,
    -
    33293  &kZoneAmerica_Argentina_Jujuy /*targetInfo*/,
    -
    33294 };
    -
    33295 
    -
    33296 //---------------------------------------------------------------------------
    -
    33297 // Link name: America/Knox_IN -> America/Indiana/Knox
    -
    33298 //---------------------------------------------------------------------------
    -
    33299 
    -
    33300 static const char kZoneNameAmerica_Knox_IN[] ACE_TIME_PROGMEM = "\x02" "Knox_IN";
    -
    33301 
    -
    33302 const complete::Info::ZoneInfo kZoneAmerica_Knox_IN ACE_TIME_PROGMEM = {
    -
    33303  kZoneNameAmerica_Knox_IN /*name*/,
    -
    33304  0xc1db9a1c /*zoneId*/,
    -
    33305  &kZoneContext /*zoneContext*/,
    -
    33306  7 /*numEras*/,
    -
    33307  kZoneEraAmerica_Indiana_Knox /*eras*/,
    -
    33308  &kZoneAmerica_Indiana_Knox /*targetInfo*/,
    -
    33309 };
    -
    33310 
    -
    33311 //---------------------------------------------------------------------------
    -
    33312 // Link name: America/Kralendijk -> America/Puerto_Rico
    -
    33313 //---------------------------------------------------------------------------
    -
    33314 
    -
    33315 static const char kZoneNameAmerica_Kralendijk[] ACE_TIME_PROGMEM = "\x02" "Kralendijk";
    -
    33316 
    -
    33317 const complete::Info::ZoneInfo kZoneAmerica_Kralendijk ACE_TIME_PROGMEM = {
    -
    33318  kZoneNameAmerica_Kralendijk /*name*/,
    -
    33319  0xe7c456c5 /*zoneId*/,
    -
    33320  &kZoneContext /*zoneContext*/,
    -
    33321  4 /*numEras*/,
    -
    33322  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33323  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33324 };
    -
    33325 
    -
    33326 //---------------------------------------------------------------------------
    -
    33327 // Link name: America/Louisville -> America/Kentucky/Louisville
    -
    33328 //---------------------------------------------------------------------------
    -
    33329 
    -
    33330 static const char kZoneNameAmerica_Louisville[] ACE_TIME_PROGMEM = "\x02" "Louisville";
    -
    33331 
    -
    33332 const complete::Info::ZoneInfo kZoneAmerica_Louisville ACE_TIME_PROGMEM = {
    -
    33333  kZoneNameAmerica_Louisville /*name*/,
    -
    33334  0x3dcb47ee /*zoneId*/,
    -
    33335  &kZoneContext /*zoneContext*/,
    -
    33336  9 /*numEras*/,
    -
    33337  kZoneEraAmerica_Kentucky_Louisville /*eras*/,
    -
    33338  &kZoneAmerica_Kentucky_Louisville /*targetInfo*/,
    -
    33339 };
    -
    33340 
    -
    33341 //---------------------------------------------------------------------------
    -
    33342 // Link name: America/Lower_Princes -> America/Puerto_Rico
    -
    33343 //---------------------------------------------------------------------------
    -
    33344 
    -
    33345 static const char kZoneNameAmerica_Lower_Princes[] ACE_TIME_PROGMEM = "\x02" "Lower_Princes";
    -
    33346 
    -
    33347 const complete::Info::ZoneInfo kZoneAmerica_Lower_Princes ACE_TIME_PROGMEM = {
    -
    33348  kZoneNameAmerica_Lower_Princes /*name*/,
    -
    33349  0x6ae45b62 /*zoneId*/,
    -
    33350  &kZoneContext /*zoneContext*/,
    -
    33351  4 /*numEras*/,
    -
    33352  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33353  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33354 };
    -
    33355 
    -
    33356 //---------------------------------------------------------------------------
    -
    33357 // Link name: America/Marigot -> America/Puerto_Rico
    -
    33358 //---------------------------------------------------------------------------
    -
    33359 
    -
    33360 static const char kZoneNameAmerica_Marigot[] ACE_TIME_PROGMEM = "\x02" "Marigot";
    -
    33361 
    -
    33362 const complete::Info::ZoneInfo kZoneAmerica_Marigot ACE_TIME_PROGMEM = {
    -
    33363  kZoneNameAmerica_Marigot /*name*/,
    -
    33364  0x3dab3a59 /*zoneId*/,
    -
    33365  &kZoneContext /*zoneContext*/,
    -
    33366  4 /*numEras*/,
    -
    33367  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33368  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33369 };
    -
    33370 
    -
    33371 //---------------------------------------------------------------------------
    -
    33372 // Link name: America/Mendoza -> America/Argentina/Mendoza
    -
    33373 //---------------------------------------------------------------------------
    -
    33374 
    -
    33375 static const char kZoneNameAmerica_Mendoza[] ACE_TIME_PROGMEM = "\x02" "Mendoza";
    -
    33376 
    -
    33377 const complete::Info::ZoneInfo kZoneAmerica_Mendoza ACE_TIME_PROGMEM = {
    -
    33378  kZoneNameAmerica_Mendoza /*name*/,
    -
    33379  0x46b4e054 /*zoneId*/,
    -
    33380  &kZoneContext /*zoneContext*/,
    -
    33381  16 /*numEras*/,
    -
    33382  kZoneEraAmerica_Argentina_Mendoza /*eras*/,
    -
    33383  &kZoneAmerica_Argentina_Mendoza /*targetInfo*/,
    -
    33384 };
    -
    33385 
    -
    33386 //---------------------------------------------------------------------------
    -
    33387 // Link name: America/Montreal -> America/Toronto
    -
    33388 //---------------------------------------------------------------------------
    -
    33389 
    -
    33390 static const char kZoneNameAmerica_Montreal[] ACE_TIME_PROGMEM = "\x02" "Montreal";
    -
    33391 
    -
    33392 const complete::Info::ZoneInfo kZoneAmerica_Montreal ACE_TIME_PROGMEM = {
    -
    33393  kZoneNameAmerica_Montreal /*name*/,
    -
    33394  0x203a1ea8 /*zoneId*/,
    -
    33395  &kZoneContext /*zoneContext*/,
    -
    33396  6 /*numEras*/,
    -
    33397  kZoneEraAmerica_Toronto /*eras*/,
    -
    33398  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    33399 };
    -
    33400 
    -
    33401 //---------------------------------------------------------------------------
    -
    33402 // Link name: America/Montserrat -> America/Puerto_Rico
    -
    33403 //---------------------------------------------------------------------------
    -
    33404 
    -
    33405 static const char kZoneNameAmerica_Montserrat[] ACE_TIME_PROGMEM = "\x02" "Montserrat";
    -
    33406 
    -
    33407 const complete::Info::ZoneInfo kZoneAmerica_Montserrat ACE_TIME_PROGMEM = {
    -
    33408  kZoneNameAmerica_Montserrat /*name*/,
    -
    33409  0x199b0a35 /*zoneId*/,
    -
    33410  &kZoneContext /*zoneContext*/,
    -
    33411  4 /*numEras*/,
    -
    33412  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33413  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33414 };
    -
    33415 
    -
    33416 //---------------------------------------------------------------------------
    -
    33417 // Link name: America/Nassau -> America/Toronto
    -
    33418 //---------------------------------------------------------------------------
    -
    33419 
    -
    33420 static const char kZoneNameAmerica_Nassau[] ACE_TIME_PROGMEM = "\x02" "Nassau";
    -
    33421 
    -
    33422 const complete::Info::ZoneInfo kZoneAmerica_Nassau ACE_TIME_PROGMEM = {
    -
    33423  kZoneNameAmerica_Nassau /*name*/,
    -
    33424  0xaedef011 /*zoneId*/,
    -
    33425  &kZoneContext /*zoneContext*/,
    -
    33426  6 /*numEras*/,
    -
    33427  kZoneEraAmerica_Toronto /*eras*/,
    -
    33428  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    33429 };
    -
    33430 
    -
    33431 //---------------------------------------------------------------------------
    -
    33432 // Link name: America/Nipigon -> America/Toronto
    -
    33433 //---------------------------------------------------------------------------
    -
    33434 
    -
    33435 static const char kZoneNameAmerica_Nipigon[] ACE_TIME_PROGMEM = "\x02" "Nipigon";
    -
    33436 
    -
    33437 const complete::Info::ZoneInfo kZoneAmerica_Nipigon ACE_TIME_PROGMEM = {
    -
    33438  kZoneNameAmerica_Nipigon /*name*/,
    -
    33439  0x9d2a8b1a /*zoneId*/,
    -
    33440  &kZoneContext /*zoneContext*/,
    -
    33441  6 /*numEras*/,
    -
    33442  kZoneEraAmerica_Toronto /*eras*/,
    -
    33443  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    33444 };
    -
    33445 
    -
    33446 //---------------------------------------------------------------------------
    -
    33447 // Link name: America/Pangnirtung -> America/Iqaluit
    -
    33448 //---------------------------------------------------------------------------
    -
    33449 
    -
    33450 static const char kZoneNameAmerica_Pangnirtung[] ACE_TIME_PROGMEM = "\x02" "Pangnirtung";
    -
    33451 
    -
    33452 const complete::Info::ZoneInfo kZoneAmerica_Pangnirtung ACE_TIME_PROGMEM = {
    -
    33453  kZoneNameAmerica_Pangnirtung /*name*/,
    -
    33454  0x2d999193 /*zoneId*/,
    -
    33455  &kZoneContext /*zoneContext*/,
    -
    33456  4 /*numEras*/,
    -
    33457  kZoneEraAmerica_Iqaluit /*eras*/,
    -
    33458  &kZoneAmerica_Iqaluit /*targetInfo*/,
    -
    33459 };
    -
    33460 
    -
    33461 //---------------------------------------------------------------------------
    -
    33462 // Link name: America/Port_of_Spain -> America/Puerto_Rico
    -
    33463 //---------------------------------------------------------------------------
    -
    33464 
    -
    33465 static const char kZoneNameAmerica_Port_of_Spain[] ACE_TIME_PROGMEM = "\x02" "Port_of_Spain";
    -
    33466 
    -
    33467 const complete::Info::ZoneInfo kZoneAmerica_Port_of_Spain ACE_TIME_PROGMEM = {
    -
    33468  kZoneNameAmerica_Port_of_Spain /*name*/,
    -
    33469  0xd8b28d59 /*zoneId*/,
    -
    33470  &kZoneContext /*zoneContext*/,
    -
    33471  4 /*numEras*/,
    -
    33472  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33473  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33474 };
    -
    33475 
    -
    33476 //---------------------------------------------------------------------------
    -
    33477 // Link name: America/Porto_Acre -> America/Rio_Branco
    -
    33478 //---------------------------------------------------------------------------
    -
    33479 
    -
    33480 static const char kZoneNameAmerica_Porto_Acre[] ACE_TIME_PROGMEM = "\x02" "Porto_Acre";
    -
    33481 
    -
    33482 const complete::Info::ZoneInfo kZoneAmerica_Porto_Acre ACE_TIME_PROGMEM = {
    -
    33483  kZoneNameAmerica_Porto_Acre /*name*/,
    -
    33484  0xcce5bf54 /*zoneId*/,
    -
    33485  &kZoneContext /*zoneContext*/,
    -
    33486  5 /*numEras*/,
    -
    33487  kZoneEraAmerica_Rio_Branco /*eras*/,
    -
    33488  &kZoneAmerica_Rio_Branco /*targetInfo*/,
    -
    33489 };
    -
    33490 
    -
    33491 //---------------------------------------------------------------------------
    -
    33492 // Link name: America/Rainy_River -> America/Winnipeg
    -
    33493 //---------------------------------------------------------------------------
    -
    33494 
    -
    33495 static const char kZoneNameAmerica_Rainy_River[] ACE_TIME_PROGMEM = "\x02" "Rainy_River";
    -
    33496 
    -
    33497 const complete::Info::ZoneInfo kZoneAmerica_Rainy_River ACE_TIME_PROGMEM = {
    -
    33498  kZoneNameAmerica_Rainy_River /*name*/,
    -
    33499  0x9cd58a10 /*zoneId*/,
    -
    33500  &kZoneContext /*zoneContext*/,
    -
    33501  3 /*numEras*/,
    -
    33502  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    33503  &kZoneAmerica_Winnipeg /*targetInfo*/,
    -
    33504 };
    -
    33505 
    -
    33506 //---------------------------------------------------------------------------
    -
    33507 // Link name: America/Rosario -> America/Argentina/Cordoba
    -
    33508 //---------------------------------------------------------------------------
    -
    33509 
    -
    33510 static const char kZoneNameAmerica_Rosario[] ACE_TIME_PROGMEM = "\x02" "Rosario";
    -
    33511 
    -
    33512 const complete::Info::ZoneInfo kZoneAmerica_Rosario ACE_TIME_PROGMEM = {
    -
    33513  kZoneNameAmerica_Rosario /*name*/,
    -
    33514  0xdf448665 /*zoneId*/,
    -
    33515  &kZoneContext /*zoneContext*/,
    -
    33516  9 /*numEras*/,
    -
    33517  kZoneEraAmerica_Argentina_Cordoba /*eras*/,
    -
    33518  &kZoneAmerica_Argentina_Cordoba /*targetInfo*/,
    -
    33519 };
    -
    33520 
    -
    33521 //---------------------------------------------------------------------------
    -
    33522 // Link name: America/Santa_Isabel -> America/Tijuana
    -
    33523 //---------------------------------------------------------------------------
    -
    33524 
    -
    33525 static const char kZoneNameAmerica_Santa_Isabel[] ACE_TIME_PROGMEM = "\x02" "Santa_Isabel";
    -
    33526 
    -
    33527 const complete::Info::ZoneInfo kZoneAmerica_Santa_Isabel ACE_TIME_PROGMEM = {
    -
    33528  kZoneNameAmerica_Santa_Isabel /*name*/,
    -
    33529  0xfd18a56c /*zoneId*/,
    -
    33530  &kZoneContext /*zoneContext*/,
    -
    33531  25 /*numEras*/,
    -
    33532  kZoneEraAmerica_Tijuana /*eras*/,
    -
    33533  &kZoneAmerica_Tijuana /*targetInfo*/,
    -
    33534 };
    -
    33535 
    -
    33536 //---------------------------------------------------------------------------
    -
    33537 // Link name: America/Shiprock -> America/Denver
    -
    33538 //---------------------------------------------------------------------------
    -
    33539 
    -
    33540 static const char kZoneNameAmerica_Shiprock[] ACE_TIME_PROGMEM = "\x02" "Shiprock";
    -
    33541 
    -
    33542 const complete::Info::ZoneInfo kZoneAmerica_Shiprock ACE_TIME_PROGMEM = {
    -
    33543  kZoneNameAmerica_Shiprock /*name*/,
    -
    33544  0x82fb7049 /*zoneId*/,
    -
    33545  &kZoneContext /*zoneContext*/,
    -
    33546  6 /*numEras*/,
    -
    33547  kZoneEraAmerica_Denver /*eras*/,
    -
    33548  &kZoneAmerica_Denver /*targetInfo*/,
    -
    33549 };
    -
    33550 
    -
    33551 //---------------------------------------------------------------------------
    -
    33552 // Link name: America/St_Barthelemy -> America/Puerto_Rico
    -
    33553 //---------------------------------------------------------------------------
    -
    33554 
    -
    33555 static const char kZoneNameAmerica_St_Barthelemy[] ACE_TIME_PROGMEM = "\x02" "St_Barthelemy";
    -
    33556 
    -
    33557 const complete::Info::ZoneInfo kZoneAmerica_St_Barthelemy ACE_TIME_PROGMEM = {
    -
    33558  kZoneNameAmerica_St_Barthelemy /*name*/,
    -
    33559  0x054e6a79 /*zoneId*/,
    -
    33560  &kZoneContext /*zoneContext*/,
    -
    33561  4 /*numEras*/,
    -
    33562  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33563  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33564 };
    -
    33565 
    -
    33566 //---------------------------------------------------------------------------
    -
    33567 // Link name: America/St_Kitts -> America/Puerto_Rico
    -
    33568 //---------------------------------------------------------------------------
    -
    33569 
    -
    33570 static const char kZoneNameAmerica_St_Kitts[] ACE_TIME_PROGMEM = "\x02" "St_Kitts";
    -
    33571 
    -
    33572 const complete::Info::ZoneInfo kZoneAmerica_St_Kitts ACE_TIME_PROGMEM = {
    -
    33573  kZoneNameAmerica_St_Kitts /*name*/,
    -
    33574  0x04c0507b /*zoneId*/,
    -
    33575  &kZoneContext /*zoneContext*/,
    -
    33576  4 /*numEras*/,
    -
    33577  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33578  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33579 };
    -
    33580 
    -
    33581 //---------------------------------------------------------------------------
    -
    33582 // Link name: America/St_Lucia -> America/Puerto_Rico
    -
    33583 //---------------------------------------------------------------------------
    -
    33584 
    -
    33585 static const char kZoneNameAmerica_St_Lucia[] ACE_TIME_PROGMEM = "\x02" "St_Lucia";
    -
    33586 
    -
    33587 const complete::Info::ZoneInfo kZoneAmerica_St_Lucia ACE_TIME_PROGMEM = {
    -
    33588  kZoneNameAmerica_St_Lucia /*name*/,
    -
    33589  0x04d8b3ba /*zoneId*/,
    -
    33590  &kZoneContext /*zoneContext*/,
    -
    33591  4 /*numEras*/,
    -
    33592  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33593  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33594 };
    -
    33595 
    -
    33596 //---------------------------------------------------------------------------
    -
    33597 // Link name: America/St_Thomas -> America/Puerto_Rico
    -
    33598 //---------------------------------------------------------------------------
    -
    33599 
    -
    33600 static const char kZoneNameAmerica_St_Thomas[] ACE_TIME_PROGMEM = "\x02" "St_Thomas";
    -
    33601 
    -
    33602 const complete::Info::ZoneInfo kZoneAmerica_St_Thomas ACE_TIME_PROGMEM = {
    -
    33603  kZoneNameAmerica_St_Thomas /*name*/,
    -
    33604  0xb1b3d778 /*zoneId*/,
    -
    33605  &kZoneContext /*zoneContext*/,
    -
    33606  4 /*numEras*/,
    -
    33607  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33608  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33609 };
    -
    33610 
    -
    33611 //---------------------------------------------------------------------------
    -
    33612 // Link name: America/St_Vincent -> America/Puerto_Rico
    -
    33613 //---------------------------------------------------------------------------
    -
    33614 
    -
    33615 static const char kZoneNameAmerica_St_Vincent[] ACE_TIME_PROGMEM = "\x02" "St_Vincent";
    -
    33616 
    -
    33617 const complete::Info::ZoneInfo kZoneAmerica_St_Vincent ACE_TIME_PROGMEM = {
    -
    33618  kZoneNameAmerica_St_Vincent /*name*/,
    -
    33619  0x8460e523 /*zoneId*/,
    -
    33620  &kZoneContext /*zoneContext*/,
    -
    33621  4 /*numEras*/,
    -
    33622  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33623  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33624 };
    -
    33625 
    -
    33626 //---------------------------------------------------------------------------
    -
    33627 // Link name: America/Thunder_Bay -> America/Toronto
    -
    33628 //---------------------------------------------------------------------------
    -
    33629 
    -
    33630 static const char kZoneNameAmerica_Thunder_Bay[] ACE_TIME_PROGMEM = "\x02" "Thunder_Bay";
    -
    33631 
    -
    33632 const complete::Info::ZoneInfo kZoneAmerica_Thunder_Bay ACE_TIME_PROGMEM = {
    -
    33633  kZoneNameAmerica_Thunder_Bay /*name*/,
    -
    33634  0xf962e71b /*zoneId*/,
    -
    33635  &kZoneContext /*zoneContext*/,
    -
    33636  6 /*numEras*/,
    -
    33637  kZoneEraAmerica_Toronto /*eras*/,
    -
    33638  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    33639 };
    -
    33640 
    -
    33641 //---------------------------------------------------------------------------
    -
    33642 // Link name: America/Tortola -> America/Puerto_Rico
    -
    33643 //---------------------------------------------------------------------------
    -
    33644 
    -
    33645 static const char kZoneNameAmerica_Tortola[] ACE_TIME_PROGMEM = "\x02" "Tortola";
    -
    33646 
    -
    33647 const complete::Info::ZoneInfo kZoneAmerica_Tortola ACE_TIME_PROGMEM = {
    -
    33648  kZoneNameAmerica_Tortola /*name*/,
    -
    33649  0x7931462b /*zoneId*/,
    -
    33650  &kZoneContext /*zoneContext*/,
    -
    33651  4 /*numEras*/,
    -
    33652  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33653  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33654 };
    -
    33655 
    -
    33656 //---------------------------------------------------------------------------
    -
    33657 // Link name: America/Virgin -> America/Puerto_Rico
    -
    33658 //---------------------------------------------------------------------------
    -
    33659 
    -
    33660 static const char kZoneNameAmerica_Virgin[] ACE_TIME_PROGMEM = "\x02" "Virgin";
    -
    33661 
    -
    33662 const complete::Info::ZoneInfo kZoneAmerica_Virgin ACE_TIME_PROGMEM = {
    -
    33663  kZoneNameAmerica_Virgin /*name*/,
    -
    33664  0xc2183ab5 /*zoneId*/,
    -
    33665  &kZoneContext /*zoneContext*/,
    -
    33666  4 /*numEras*/,
    -
    33667  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    33668  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    33669 };
    -
    33670 
    -
    33671 //---------------------------------------------------------------------------
    -
    33672 // Link name: America/Yellowknife -> America/Edmonton
    -
    33673 //---------------------------------------------------------------------------
    -
    33674 
    -
    33675 static const char kZoneNameAmerica_Yellowknife[] ACE_TIME_PROGMEM = "\x02" "Yellowknife";
    -
    33676 
    -
    33677 const complete::Info::ZoneInfo kZoneAmerica_Yellowknife ACE_TIME_PROGMEM = {
    -
    33678  kZoneNameAmerica_Yellowknife /*name*/,
    -
    33679  0x0f76c76f /*zoneId*/,
    -
    33680  &kZoneContext /*zoneContext*/,
    -
    33681  3 /*numEras*/,
    -
    33682  kZoneEraAmerica_Edmonton /*eras*/,
    -
    33683  &kZoneAmerica_Edmonton /*targetInfo*/,
    -
    33684 };
    -
    33685 
    -
    33686 //---------------------------------------------------------------------------
    -
    33687 // Link name: Antarctica/DumontDUrville -> Pacific/Port_Moresby
    -
    33688 //---------------------------------------------------------------------------
    -
    33689 
    -
    33690 static const char kZoneNameAntarctica_DumontDUrville[] ACE_TIME_PROGMEM = "\x03" "DumontDUrville";
    -
    33691 
    -
    33692 const complete::Info::ZoneInfo kZoneAntarctica_DumontDUrville ACE_TIME_PROGMEM = {
    -
    33693  kZoneNameAntarctica_DumontDUrville /*name*/,
    -
    33694  0x5a3c656c /*zoneId*/,
    -
    33695  &kZoneContext /*zoneContext*/,
    -
    33696  3 /*numEras*/,
    -
    33697  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    33698  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    33699 };
    -
    33700 
    -
    33701 //---------------------------------------------------------------------------
    -
    33702 // Link name: Antarctica/McMurdo -> Pacific/Auckland
    -
    33703 //---------------------------------------------------------------------------
    -
    33704 
    -
    33705 static const char kZoneNameAntarctica_McMurdo[] ACE_TIME_PROGMEM = "\x03" "McMurdo";
    -
    33706 
    -
    33707 const complete::Info::ZoneInfo kZoneAntarctica_McMurdo ACE_TIME_PROGMEM = {
    -
    33708  kZoneNameAntarctica_McMurdo /*name*/,
    -
    33709  0x6eeb5585 /*zoneId*/,
    -
    33710  &kZoneContext /*zoneContext*/,
    -
    33711  3 /*numEras*/,
    -
    33712  kZoneEraPacific_Auckland /*eras*/,
    -
    33713  &kZonePacific_Auckland /*targetInfo*/,
    -
    33714 };
    -
    33715 
    -
    33716 //---------------------------------------------------------------------------
    -
    33717 // Link name: Antarctica/South_Pole -> Pacific/Auckland
    -
    33718 //---------------------------------------------------------------------------
    -
    33719 
    -
    33720 static const char kZoneNameAntarctica_South_Pole[] ACE_TIME_PROGMEM = "\x03" "South_Pole";
    -
    33721 
    -
    33722 const complete::Info::ZoneInfo kZoneAntarctica_South_Pole ACE_TIME_PROGMEM = {
    -
    33723  kZoneNameAntarctica_South_Pole /*name*/,
    -
    33724  0xcd96b290 /*zoneId*/,
    -
    33725  &kZoneContext /*zoneContext*/,
    -
    33726  3 /*numEras*/,
    -
    33727  kZoneEraPacific_Auckland /*eras*/,
    -
    33728  &kZonePacific_Auckland /*targetInfo*/,
    -
    33729 };
    -
    33730 
    -
    33731 //---------------------------------------------------------------------------
    -
    33732 // Link name: Antarctica/Syowa -> Asia/Riyadh
    -
    33733 //---------------------------------------------------------------------------
    -
    33734 
    -
    33735 static const char kZoneNameAntarctica_Syowa[] ACE_TIME_PROGMEM = "\x03" "Syowa";
    -
    33736 
    -
    33737 const complete::Info::ZoneInfo kZoneAntarctica_Syowa ACE_TIME_PROGMEM = {
    -
    33738  kZoneNameAntarctica_Syowa /*name*/,
    -
    33739  0xe330c7e1 /*zoneId*/,
    -
    33740  &kZoneContext /*zoneContext*/,
    -
    33741  2 /*numEras*/,
    -
    33742  kZoneEraAsia_Riyadh /*eras*/,
    -
    33743  &kZoneAsia_Riyadh /*targetInfo*/,
    -
    33744 };
    -
    33745 
    -
    33746 //---------------------------------------------------------------------------
    -
    33747 // Link name: Arctic/Longyearbyen -> Europe/Berlin
    -
    33748 //---------------------------------------------------------------------------
    -
    33749 
    -
    33750 static const char kZoneNameArctic_Longyearbyen[] ACE_TIME_PROGMEM = "Arctic/Longyearbyen";
    -
    33751 
    -
    33752 const complete::Info::ZoneInfo kZoneArctic_Longyearbyen ACE_TIME_PROGMEM = {
    -
    33753  kZoneNameArctic_Longyearbyen /*name*/,
    -
    33754  0xd23e7859 /*zoneId*/,
    -
    33755  &kZoneContext /*zoneContext*/,
    -
    33756  5 /*numEras*/,
    -
    33757  kZoneEraEurope_Berlin /*eras*/,
    -
    33758  &kZoneEurope_Berlin /*targetInfo*/,
    -
    33759 };
    -
    33760 
    -
    33761 //---------------------------------------------------------------------------
    -
    33762 // Link name: Asia/Aden -> Asia/Riyadh
    -
    33763 //---------------------------------------------------------------------------
    -
    33764 
    -
    33765 static const char kZoneNameAsia_Aden[] ACE_TIME_PROGMEM = "\x05" "Aden";
    -
    33766 
    -
    33767 const complete::Info::ZoneInfo kZoneAsia_Aden ACE_TIME_PROGMEM = {
    -
    33768  kZoneNameAsia_Aden /*name*/,
    -
    33769  0x1fa7084a /*zoneId*/,
    -
    33770  &kZoneContext /*zoneContext*/,
    -
    33771  2 /*numEras*/,
    -
    33772  kZoneEraAsia_Riyadh /*eras*/,
    -
    33773  &kZoneAsia_Riyadh /*targetInfo*/,
    -
    33774 };
    -
    33775 
    -
    33776 //---------------------------------------------------------------------------
    -
    33777 // Link name: Asia/Ashkhabad -> Asia/Ashgabat
    -
    33778 //---------------------------------------------------------------------------
    -
    33779 
    -
    33780 static const char kZoneNameAsia_Ashkhabad[] ACE_TIME_PROGMEM = "\x05" "Ashkhabad";
    -
    33781 
    -
    33782 const complete::Info::ZoneInfo kZoneAsia_Ashkhabad ACE_TIME_PROGMEM = {
    -
    33783  kZoneNameAsia_Ashkhabad /*name*/,
    -
    33784  0x15454f09 /*zoneId*/,
    -
    33785  &kZoneContext /*zoneContext*/,
    -
    33786  5 /*numEras*/,
    -
    33787  kZoneEraAsia_Ashgabat /*eras*/,
    -
    33788  &kZoneAsia_Ashgabat /*targetInfo*/,
    -
    33789 };
    -
    33790 
    -
    33791 //---------------------------------------------------------------------------
    -
    33792 // Link name: Asia/Bahrain -> Asia/Qatar
    -
    33793 //---------------------------------------------------------------------------
    -
    33794 
    -
    33795 static const char kZoneNameAsia_Bahrain[] ACE_TIME_PROGMEM = "\x05" "Bahrain";
    -
    33796 
    -
    33797 const complete::Info::ZoneInfo kZoneAsia_Bahrain ACE_TIME_PROGMEM = {
    -
    33798  kZoneNameAsia_Bahrain /*name*/,
    -
    33799  0x9d078487 /*zoneId*/,
    -
    33800  &kZoneContext /*zoneContext*/,
    -
    33801  3 /*numEras*/,
    -
    33802  kZoneEraAsia_Qatar /*eras*/,
    -
    33803  &kZoneAsia_Qatar /*targetInfo*/,
    -
    33804 };
    -
    33805 
    -
    33806 //---------------------------------------------------------------------------
    -
    33807 // Link name: Asia/Brunei -> Asia/Kuching
    -
    33808 //---------------------------------------------------------------------------
    -
    33809 
    -
    33810 static const char kZoneNameAsia_Brunei[] ACE_TIME_PROGMEM = "\x05" "Brunei";
    -
    33811 
    -
    33812 const complete::Info::ZoneInfo kZoneAsia_Brunei ACE_TIME_PROGMEM = {
    -
    33813  kZoneNameAsia_Brunei /*name*/,
    -
    33814  0xa8e595f7 /*zoneId*/,
    -
    33815  &kZoneContext /*zoneContext*/,
    -
    33816  5 /*numEras*/,
    -
    33817  kZoneEraAsia_Kuching /*eras*/,
    -
    33818  &kZoneAsia_Kuching /*targetInfo*/,
    -
    33819 };
    -
    33820 
    -
    33821 //---------------------------------------------------------------------------
    -
    33822 // Link name: Asia/Calcutta -> Asia/Kolkata
    -
    33823 //---------------------------------------------------------------------------
    -
    33824 
    -
    33825 static const char kZoneNameAsia_Calcutta[] ACE_TIME_PROGMEM = "\x05" "Calcutta";
    -
    33826 
    -
    33827 const complete::Info::ZoneInfo kZoneAsia_Calcutta ACE_TIME_PROGMEM = {
    -
    33828  kZoneNameAsia_Calcutta /*name*/,
    -
    33829  0x328a44c3 /*zoneId*/,
    -
    33830  &kZoneContext /*zoneContext*/,
    -
    33831  8 /*numEras*/,
    -
    33832  kZoneEraAsia_Kolkata /*eras*/,
    -
    33833  &kZoneAsia_Kolkata /*targetInfo*/,
    -
    33834 };
    -
    33835 
    -
    33836 //---------------------------------------------------------------------------
    -
    33837 // Link name: Asia/Choibalsan -> Asia/Ulaanbaatar
    -
    33838 //---------------------------------------------------------------------------
    -
    33839 
    -
    33840 static const char kZoneNameAsia_Choibalsan[] ACE_TIME_PROGMEM = "\x05" "Choibalsan";
    -
    33841 
    -
    33842 const complete::Info::ZoneInfo kZoneAsia_Choibalsan ACE_TIME_PROGMEM = {
    -
    33843  kZoneNameAsia_Choibalsan /*name*/,
    -
    33844  0x928aa4a6 /*zoneId*/,
    -
    33845  &kZoneContext /*zoneContext*/,
    -
    33846  3 /*numEras*/,
    -
    33847  kZoneEraAsia_Ulaanbaatar /*eras*/,
    -
    33848  &kZoneAsia_Ulaanbaatar /*targetInfo*/,
    -
    33849 };
    -
    33850 
    -
    33851 //---------------------------------------------------------------------------
    -
    33852 // Link name: Asia/Chongqing -> Asia/Shanghai
    -
    33853 //---------------------------------------------------------------------------
    -
    33854 
    -
    33855 static const char kZoneNameAsia_Chongqing[] ACE_TIME_PROGMEM = "\x05" "Chongqing";
    -
    33856 
    -
    33857 const complete::Info::ZoneInfo kZoneAsia_Chongqing ACE_TIME_PROGMEM = {
    -
    33858  kZoneNameAsia_Chongqing /*name*/,
    -
    33859  0xf937fb90 /*zoneId*/,
    -
    33860  &kZoneContext /*zoneContext*/,
    -
    33861  3 /*numEras*/,
    -
    33862  kZoneEraAsia_Shanghai /*eras*/,
    -
    33863  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    33864 };
    -
    33865 
    -
    33866 //---------------------------------------------------------------------------
    -
    33867 // Link name: Asia/Chungking -> Asia/Shanghai
    -
    33868 //---------------------------------------------------------------------------
    -
    33869 
    -
    33870 static const char kZoneNameAsia_Chungking[] ACE_TIME_PROGMEM = "\x05" "Chungking";
    -
    33871 
    -
    33872 const complete::Info::ZoneInfo kZoneAsia_Chungking ACE_TIME_PROGMEM = {
    -
    33873  kZoneNameAsia_Chungking /*name*/,
    -
    33874  0xc7121dd0 /*zoneId*/,
    -
    33875  &kZoneContext /*zoneContext*/,
    -
    33876  3 /*numEras*/,
    -
    33877  kZoneEraAsia_Shanghai /*eras*/,
    -
    33878  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    33879 };
    -
    33880 
    -
    33881 //---------------------------------------------------------------------------
    -
    33882 // Link name: Asia/Dacca -> Asia/Dhaka
    -
    33883 //---------------------------------------------------------------------------
    -
    33884 
    -
    33885 static const char kZoneNameAsia_Dacca[] ACE_TIME_PROGMEM = "\x05" "Dacca";
    -
    33886 
    -
    33887 const complete::Info::ZoneInfo kZoneAsia_Dacca ACE_TIME_PROGMEM = {
    -
    33888  kZoneNameAsia_Dacca /*name*/,
    -
    33889  0x14bcac5e /*zoneId*/,
    -
    33890  &kZoneContext /*zoneContext*/,
    -
    33891  7 /*numEras*/,
    -
    33892  kZoneEraAsia_Dhaka /*eras*/,
    -
    33893  &kZoneAsia_Dhaka /*targetInfo*/,
    -
    33894 };
    -
    33895 
    -
    33896 //---------------------------------------------------------------------------
    -
    33897 // Link name: Asia/Harbin -> Asia/Shanghai
    -
    33898 //---------------------------------------------------------------------------
    -
    33899 
    -
    33900 static const char kZoneNameAsia_Harbin[] ACE_TIME_PROGMEM = "\x05" "Harbin";
    -
    33901 
    -
    33902 const complete::Info::ZoneInfo kZoneAsia_Harbin ACE_TIME_PROGMEM = {
    -
    33903  kZoneNameAsia_Harbin /*name*/,
    -
    33904  0xb5af1186 /*zoneId*/,
    -
    33905  &kZoneContext /*zoneContext*/,
    -
    33906  3 /*numEras*/,
    -
    33907  kZoneEraAsia_Shanghai /*eras*/,
    -
    33908  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    33909 };
    -
    33910 
    -
    33911 //---------------------------------------------------------------------------
    -
    33912 // Link name: Asia/Istanbul -> Europe/Istanbul
    -
    33913 //---------------------------------------------------------------------------
    -
    33914 
    -
    33915 static const char kZoneNameAsia_Istanbul[] ACE_TIME_PROGMEM = "\x05" "Istanbul";
    -
    33916 
    -
    33917 const complete::Info::ZoneInfo kZoneAsia_Istanbul ACE_TIME_PROGMEM = {
    -
    33918  kZoneNameAsia_Istanbul /*name*/,
    -
    33919  0x382e7894 /*zoneId*/,
    -
    33920  &kZoneContext /*zoneContext*/,
    -
    33921  13 /*numEras*/,
    -
    33922  kZoneEraEurope_Istanbul /*eras*/,
    -
    33923  &kZoneEurope_Istanbul /*targetInfo*/,
    -
    33924 };
    -
    33925 
    -
    33926 //---------------------------------------------------------------------------
    -
    33927 // Link name: Asia/Kashgar -> Asia/Urumqi
    -
    33928 //---------------------------------------------------------------------------
    -
    33929 
    -
    33930 static const char kZoneNameAsia_Kashgar[] ACE_TIME_PROGMEM = "\x05" "Kashgar";
    -
    33931 
    -
    33932 const complete::Info::ZoneInfo kZoneAsia_Kashgar ACE_TIME_PROGMEM = {
    -
    33933  kZoneNameAsia_Kashgar /*name*/,
    -
    33934  0x52955193 /*zoneId*/,
    -
    33935  &kZoneContext /*zoneContext*/,
    -
    33936  2 /*numEras*/,
    -
    33937  kZoneEraAsia_Urumqi /*eras*/,
    -
    33938  &kZoneAsia_Urumqi /*targetInfo*/,
    -
    33939 };
    -
    33940 
    -
    33941 //---------------------------------------------------------------------------
    -
    33942 // Link name: Asia/Katmandu -> Asia/Kathmandu
    -
    33943 //---------------------------------------------------------------------------
    -
    33944 
    -
    33945 static const char kZoneNameAsia_Katmandu[] ACE_TIME_PROGMEM = "\x05" "Katmandu";
    -
    33946 
    -
    33947 const complete::Info::ZoneInfo kZoneAsia_Katmandu ACE_TIME_PROGMEM = {
    -
    33948  kZoneNameAsia_Katmandu /*name*/,
    -
    33949  0xa7ec12c7 /*zoneId*/,
    -
    33950  &kZoneContext /*zoneContext*/,
    -
    33951  3 /*numEras*/,
    -
    33952  kZoneEraAsia_Kathmandu /*eras*/,
    -
    33953  &kZoneAsia_Kathmandu /*targetInfo*/,
    -
    33954 };
    -
    33955 
    -
    33956 //---------------------------------------------------------------------------
    -
    33957 // Link name: Asia/Kuala_Lumpur -> Asia/Singapore
    -
    33958 //---------------------------------------------------------------------------
    -
    33959 
    -
    33960 static const char kZoneNameAsia_Kuala_Lumpur[] ACE_TIME_PROGMEM = "\x05" "Kuala_Lumpur";
    -
    33961 
    -
    33962 const complete::Info::ZoneInfo kZoneAsia_Kuala_Lumpur ACE_TIME_PROGMEM = {
    -
    33963  kZoneNameAsia_Kuala_Lumpur /*name*/,
    -
    33964  0x014763c4 /*zoneId*/,
    -
    33965  &kZoneContext /*zoneContext*/,
    -
    33966  9 /*numEras*/,
    -
    33967  kZoneEraAsia_Singapore /*eras*/,
    -
    33968  &kZoneAsia_Singapore /*targetInfo*/,
    -
    33969 };
    -
    33970 
    -
    33971 //---------------------------------------------------------------------------
    -
    33972 // Link name: Asia/Kuwait -> Asia/Riyadh
    -
    33973 //---------------------------------------------------------------------------
    -
    33974 
    -
    33975 static const char kZoneNameAsia_Kuwait[] ACE_TIME_PROGMEM = "\x05" "Kuwait";
    -
    33976 
    -
    33977 const complete::Info::ZoneInfo kZoneAsia_Kuwait ACE_TIME_PROGMEM = {
    -
    33978  kZoneNameAsia_Kuwait /*name*/,
    -
    33979  0xbe1b2f27 /*zoneId*/,
    -
    33980  &kZoneContext /*zoneContext*/,
    -
    33981  2 /*numEras*/,
    -
    33982  kZoneEraAsia_Riyadh /*eras*/,
    -
    33983  &kZoneAsia_Riyadh /*targetInfo*/,
    -
    33984 };
    -
    33985 
    -
    33986 //---------------------------------------------------------------------------
    -
    33987 // Link name: Asia/Macao -> Asia/Macau
    -
    33988 //---------------------------------------------------------------------------
    -
    33989 
    -
    33990 static const char kZoneNameAsia_Macao[] ACE_TIME_PROGMEM = "\x05" "Macao";
    -
    33991 
    -
    33992 const complete::Info::ZoneInfo kZoneAsia_Macao ACE_TIME_PROGMEM = {
    -
    33993  kZoneNameAsia_Macao /*name*/,
    -
    33994  0x155f88b3 /*zoneId*/,
    -
    33995  &kZoneContext /*zoneContext*/,
    -
    33996  4 /*numEras*/,
    -
    33997  kZoneEraAsia_Macau /*eras*/,
    -
    33998  &kZoneAsia_Macau /*targetInfo*/,
    -
    33999 };
    -
    34000 
    -
    34001 //---------------------------------------------------------------------------
    -
    34002 // Link name: Asia/Muscat -> Asia/Dubai
    -
    34003 //---------------------------------------------------------------------------
    -
    34004 
    -
    34005 static const char kZoneNameAsia_Muscat[] ACE_TIME_PROGMEM = "\x05" "Muscat";
    -
    34006 
    -
    34007 const complete::Info::ZoneInfo kZoneAsia_Muscat ACE_TIME_PROGMEM = {
    -
    34008  kZoneNameAsia_Muscat /*name*/,
    -
    34009  0xc2c3565f /*zoneId*/,
    -
    34010  &kZoneContext /*zoneContext*/,
    -
    34011  2 /*numEras*/,
    -
    34012  kZoneEraAsia_Dubai /*eras*/,
    -
    34013  &kZoneAsia_Dubai /*targetInfo*/,
    -
    34014 };
    -
    34015 
    -
    34016 //---------------------------------------------------------------------------
    -
    34017 // Link name: Asia/Phnom_Penh -> Asia/Bangkok
    -
    34018 //---------------------------------------------------------------------------
    -
    34019 
    -
    34020 static const char kZoneNameAsia_Phnom_Penh[] ACE_TIME_PROGMEM = "\x05" "Phnom_Penh";
    -
    34021 
    -
    34022 const complete::Info::ZoneInfo kZoneAsia_Phnom_Penh ACE_TIME_PROGMEM = {
    -
    34023  kZoneNameAsia_Phnom_Penh /*name*/,
    -
    34024  0xc224945e /*zoneId*/,
    -
    34025  &kZoneContext /*zoneContext*/,
    -
    34026  3 /*numEras*/,
    -
    34027  kZoneEraAsia_Bangkok /*eras*/,
    -
    34028  &kZoneAsia_Bangkok /*targetInfo*/,
    -
    34029 };
    -
    34030 
    -
    34031 //---------------------------------------------------------------------------
    -
    34032 // Link name: Asia/Rangoon -> Asia/Yangon
    -
    34033 //---------------------------------------------------------------------------
    -
    34034 
    -
    34035 static const char kZoneNameAsia_Rangoon[] ACE_TIME_PROGMEM = "\x05" "Rangoon";
    -
    34036 
    -
    34037 const complete::Info::ZoneInfo kZoneAsia_Rangoon ACE_TIME_PROGMEM = {
    -
    34038  kZoneNameAsia_Rangoon /*name*/,
    -
    34039  0x6d1217c6 /*zoneId*/,
    -
    34040  &kZoneContext /*zoneContext*/,
    -
    34041  5 /*numEras*/,
    -
    34042  kZoneEraAsia_Yangon /*eras*/,
    -
    34043  &kZoneAsia_Yangon /*targetInfo*/,
    -
    34044 };
    -
    34045 
    -
    34046 //---------------------------------------------------------------------------
    -
    34047 // Link name: Asia/Saigon -> Asia/Ho_Chi_Minh
    -
    34048 //---------------------------------------------------------------------------
    -
    34049 
    -
    34050 static const char kZoneNameAsia_Saigon[] ACE_TIME_PROGMEM = "\x05" "Saigon";
    -
    34051 
    -
    34052 const complete::Info::ZoneInfo kZoneAsia_Saigon ACE_TIME_PROGMEM = {
    -
    34053  kZoneNameAsia_Saigon /*name*/,
    -
    34054  0xcf52f713 /*zoneId*/,
    -
    34055  &kZoneContext /*zoneContext*/,
    -
    34056  10 /*numEras*/,
    -
    34057  kZoneEraAsia_Ho_Chi_Minh /*eras*/,
    -
    34058  &kZoneAsia_Ho_Chi_Minh /*targetInfo*/,
    -
    34059 };
    -
    34060 
    -
    34061 //---------------------------------------------------------------------------
    -
    34062 // Link name: Asia/Tel_Aviv -> Asia/Jerusalem
    -
    34063 //---------------------------------------------------------------------------
    -
    34064 
    -
    34065 static const char kZoneNameAsia_Tel_Aviv[] ACE_TIME_PROGMEM = "\x05" "Tel_Aviv";
    -
    34066 
    -
    34067 const complete::Info::ZoneInfo kZoneAsia_Tel_Aviv ACE_TIME_PROGMEM = {
    -
    34068  kZoneNameAsia_Tel_Aviv /*name*/,
    -
    34069  0x166d7c2c /*zoneId*/,
    -
    34070  &kZoneContext /*zoneContext*/,
    -
    34071  3 /*numEras*/,
    -
    34072  kZoneEraAsia_Jerusalem /*eras*/,
    -
    34073  &kZoneAsia_Jerusalem /*targetInfo*/,
    -
    34074 };
    -
    34075 
    -
    34076 //---------------------------------------------------------------------------
    -
    34077 // Link name: Asia/Thimbu -> Asia/Thimphu
    -
    34078 //---------------------------------------------------------------------------
    -
    34079 
    -
    34080 static const char kZoneNameAsia_Thimbu[] ACE_TIME_PROGMEM = "\x05" "Thimbu";
    -
    34081 
    -
    34082 const complete::Info::ZoneInfo kZoneAsia_Thimbu ACE_TIME_PROGMEM = {
    -
    34083  kZoneNameAsia_Thimbu /*name*/,
    -
    34084  0xd226e31b /*zoneId*/,
    -
    34085  &kZoneContext /*zoneContext*/,
    -
    34086  3 /*numEras*/,
    -
    34087  kZoneEraAsia_Thimphu /*eras*/,
    -
    34088  &kZoneAsia_Thimphu /*targetInfo*/,
    -
    34089 };
    -
    34090 
    -
    34091 //---------------------------------------------------------------------------
    -
    34092 // Link name: Asia/Ujung_Pandang -> Asia/Makassar
    -
    34093 //---------------------------------------------------------------------------
    -
    34094 
    -
    34095 static const char kZoneNameAsia_Ujung_Pandang[] ACE_TIME_PROGMEM = "\x05" "Ujung_Pandang";
    -
    34096 
    -
    34097 const complete::Info::ZoneInfo kZoneAsia_Ujung_Pandang ACE_TIME_PROGMEM = {
    -
    34098  kZoneNameAsia_Ujung_Pandang /*name*/,
    -
    34099  0x5d001eb3 /*zoneId*/,
    -
    34100  &kZoneContext /*zoneContext*/,
    -
    34101  5 /*numEras*/,
    -
    34102  kZoneEraAsia_Makassar /*eras*/,
    -
    34103  &kZoneAsia_Makassar /*targetInfo*/,
    -
    34104 };
    -
    34105 
    -
    34106 //---------------------------------------------------------------------------
    -
    34107 // Link name: Asia/Ulan_Bator -> Asia/Ulaanbaatar
    -
    34108 //---------------------------------------------------------------------------
    -
    34109 
    -
    34110 static const char kZoneNameAsia_Ulan_Bator[] ACE_TIME_PROGMEM = "\x05" "Ulan_Bator";
    -
    34111 
    -
    34112 const complete::Info::ZoneInfo kZoneAsia_Ulan_Bator ACE_TIME_PROGMEM = {
    -
    34113  kZoneNameAsia_Ulan_Bator /*name*/,
    -
    34114  0x394db4d9 /*zoneId*/,
    -
    34115  &kZoneContext /*zoneContext*/,
    -
    34116  3 /*numEras*/,
    -
    34117  kZoneEraAsia_Ulaanbaatar /*eras*/,
    -
    34118  &kZoneAsia_Ulaanbaatar /*targetInfo*/,
    -
    34119 };
    -
    34120 
    -
    34121 //---------------------------------------------------------------------------
    -
    34122 // Link name: Asia/Vientiane -> Asia/Bangkok
    -
    34123 //---------------------------------------------------------------------------
    -
    34124 
    -
    34125 static const char kZoneNameAsia_Vientiane[] ACE_TIME_PROGMEM = "\x05" "Vientiane";
    -
    34126 
    -
    34127 const complete::Info::ZoneInfo kZoneAsia_Vientiane ACE_TIME_PROGMEM = {
    -
    34128  kZoneNameAsia_Vientiane /*name*/,
    -
    34129  0x89d68d75 /*zoneId*/,
    -
    34130  &kZoneContext /*zoneContext*/,
    -
    34131  3 /*numEras*/,
    -
    34132  kZoneEraAsia_Bangkok /*eras*/,
    -
    34133  &kZoneAsia_Bangkok /*targetInfo*/,
    -
    34134 };
    -
    34135 
    -
    34136 //---------------------------------------------------------------------------
    -
    34137 // Link name: Atlantic/Faeroe -> Atlantic/Faroe
    -
    34138 //---------------------------------------------------------------------------
    -
    34139 
    -
    34140 static const char kZoneNameAtlantic_Faeroe[] ACE_TIME_PROGMEM = "\x06" "Faeroe";
    -
    34141 
    -
    34142 const complete::Info::ZoneInfo kZoneAtlantic_Faeroe ACE_TIME_PROGMEM = {
    -
    34143  kZoneNameAtlantic_Faeroe /*name*/,
    -
    34144  0x031ec516 /*zoneId*/,
    -
    34145  &kZoneContext /*zoneContext*/,
    -
    34146  3 /*numEras*/,
    -
    34147  kZoneEraAtlantic_Faroe /*eras*/,
    -
    34148  &kZoneAtlantic_Faroe /*targetInfo*/,
    -
    34149 };
    -
    34150 
    -
    34151 //---------------------------------------------------------------------------
    -
    34152 // Link name: Atlantic/Jan_Mayen -> Europe/Berlin
    -
    34153 //---------------------------------------------------------------------------
    -
    34154 
    -
    34155 static const char kZoneNameAtlantic_Jan_Mayen[] ACE_TIME_PROGMEM = "\x06" "Jan_Mayen";
    -
    34156 
    -
    34157 const complete::Info::ZoneInfo kZoneAtlantic_Jan_Mayen ACE_TIME_PROGMEM = {
    -
    34158  kZoneNameAtlantic_Jan_Mayen /*name*/,
    -
    34159  0x5a7535b6 /*zoneId*/,
    -
    34160  &kZoneContext /*zoneContext*/,
    -
    34161  5 /*numEras*/,
    -
    34162  kZoneEraEurope_Berlin /*eras*/,
    -
    34163  &kZoneEurope_Berlin /*targetInfo*/,
    -
    34164 };
    -
    34165 
    -
    34166 //---------------------------------------------------------------------------
    -
    34167 // Link name: Atlantic/Reykjavik -> Africa/Abidjan
    -
    34168 //---------------------------------------------------------------------------
    -
    34169 
    -
    34170 static const char kZoneNameAtlantic_Reykjavik[] ACE_TIME_PROGMEM = "\x06" "Reykjavik";
    -
    34171 
    -
    34172 const complete::Info::ZoneInfo kZoneAtlantic_Reykjavik ACE_TIME_PROGMEM = {
    -
    34173  kZoneNameAtlantic_Reykjavik /*name*/,
    -
    34174  0x1c2b4f74 /*zoneId*/,
    -
    34175  &kZoneContext /*zoneContext*/,
    -
    34176  2 /*numEras*/,
    -
    34177  kZoneEraAfrica_Abidjan /*eras*/,
    -
    34178  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    34179 };
    -
    34180 
    -
    34181 //---------------------------------------------------------------------------
    -
    34182 // Link name: Atlantic/St_Helena -> Africa/Abidjan
    -
    34183 //---------------------------------------------------------------------------
    -
    34184 
    -
    34185 static const char kZoneNameAtlantic_St_Helena[] ACE_TIME_PROGMEM = "\x06" "St_Helena";
    -
    34186 
    -
    34187 const complete::Info::ZoneInfo kZoneAtlantic_St_Helena ACE_TIME_PROGMEM = {
    -
    34188  kZoneNameAtlantic_St_Helena /*name*/,
    -
    34189  0x451fc5f7 /*zoneId*/,
    -
    34190  &kZoneContext /*zoneContext*/,
    -
    34191  2 /*numEras*/,
    -
    34192  kZoneEraAfrica_Abidjan /*eras*/,
    -
    34193  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    34194 };
    -
    34195 
    -
    34196 //---------------------------------------------------------------------------
    -
    34197 // Link name: Australia/ACT -> Australia/Sydney
    -
    34198 //---------------------------------------------------------------------------
    -
    34199 
    -
    34200 static const char kZoneNameAustralia_ACT[] ACE_TIME_PROGMEM = "\x07" "ACT";
    -
    34201 
    -
    34202 const complete::Info::ZoneInfo kZoneAustralia_ACT ACE_TIME_PROGMEM = {
    -
    34203  kZoneNameAustralia_ACT /*name*/,
    -
    34204  0x8a970eb2 /*zoneId*/,
    -
    34205  &kZoneContext /*zoneContext*/,
    -
    34206  3 /*numEras*/,
    -
    34207  kZoneEraAustralia_Sydney /*eras*/,
    -
    34208  &kZoneAustralia_Sydney /*targetInfo*/,
    -
    34209 };
    -
    34210 
    -
    34211 //---------------------------------------------------------------------------
    -
    34212 // Link name: Australia/Canberra -> Australia/Sydney
    -
    34213 //---------------------------------------------------------------------------
    -
    34214 
    -
    34215 static const char kZoneNameAustralia_Canberra[] ACE_TIME_PROGMEM = "\x07" "Canberra";
    -
    34216 
    -
    34217 const complete::Info::ZoneInfo kZoneAustralia_Canberra ACE_TIME_PROGMEM = {
    -
    34218  kZoneNameAustralia_Canberra /*name*/,
    -
    34219  0x2a09ae58 /*zoneId*/,
    -
    34220  &kZoneContext /*zoneContext*/,
    -
    34221  3 /*numEras*/,
    -
    34222  kZoneEraAustralia_Sydney /*eras*/,
    -
    34223  &kZoneAustralia_Sydney /*targetInfo*/,
    -
    34224 };
    -
    34225 
    -
    34226 //---------------------------------------------------------------------------
    -
    34227 // Link name: Australia/Currie -> Australia/Hobart
    -
    34228 //---------------------------------------------------------------------------
    -
    34229 
    -
    34230 static const char kZoneNameAustralia_Currie[] ACE_TIME_PROGMEM = "\x07" "Currie";
    -
    34231 
    -
    34232 const complete::Info::ZoneInfo kZoneAustralia_Currie ACE_TIME_PROGMEM = {
    -
    34233  kZoneNameAustralia_Currie /*name*/,
    -
    34234  0x278b6a24 /*zoneId*/,
    -
    34235  &kZoneContext /*zoneContext*/,
    -
    34236  4 /*numEras*/,
    -
    34237  kZoneEraAustralia_Hobart /*eras*/,
    -
    34238  &kZoneAustralia_Hobart /*targetInfo*/,
    -
    34239 };
    -
    34240 
    -
    34241 //---------------------------------------------------------------------------
    -
    34242 // Link name: Australia/LHI -> Australia/Lord_Howe
    -
    34243 //---------------------------------------------------------------------------
    -
    34244 
    -
    34245 static const char kZoneNameAustralia_LHI[] ACE_TIME_PROGMEM = "\x07" "LHI";
    -
    34246 
    -
    34247 const complete::Info::ZoneInfo kZoneAustralia_LHI ACE_TIME_PROGMEM = {
    -
    34248  kZoneNameAustralia_LHI /*name*/,
    -
    34249  0x8a973e17 /*zoneId*/,
    -
    34250  &kZoneContext /*zoneContext*/,
    -
    34251  4 /*numEras*/,
    -
    34252  kZoneEraAustralia_Lord_Howe /*eras*/,
    -
    34253  &kZoneAustralia_Lord_Howe /*targetInfo*/,
    -
    34254 };
    -
    34255 
    -
    34256 //---------------------------------------------------------------------------
    -
    34257 // Link name: Australia/NSW -> Australia/Sydney
    -
    34258 //---------------------------------------------------------------------------
    -
    34259 
    -
    34260 static const char kZoneNameAustralia_NSW[] ACE_TIME_PROGMEM = "\x07" "NSW";
    -
    34261 
    -
    34262 const complete::Info::ZoneInfo kZoneAustralia_NSW ACE_TIME_PROGMEM = {
    -
    34263  kZoneNameAustralia_NSW /*name*/,
    -
    34264  0x8a974812 /*zoneId*/,
    -
    34265  &kZoneContext /*zoneContext*/,
    -
    34266  3 /*numEras*/,
    -
    34267  kZoneEraAustralia_Sydney /*eras*/,
    -
    34268  &kZoneAustralia_Sydney /*targetInfo*/,
    -
    34269 };
    -
    34270 
    -
    34271 //---------------------------------------------------------------------------
    -
    34272 // Link name: Australia/North -> Australia/Darwin
    -
    34273 //---------------------------------------------------------------------------
    -
    34274 
    -
    34275 static const char kZoneNameAustralia_North[] ACE_TIME_PROGMEM = "\x07" "North";
    -
    34276 
    -
    34277 const complete::Info::ZoneInfo kZoneAustralia_North ACE_TIME_PROGMEM = {
    -
    34278  kZoneNameAustralia_North /*name*/,
    -
    34279  0x8d997165 /*zoneId*/,
    -
    34280  &kZoneContext /*zoneContext*/,
    -
    34281  3 /*numEras*/,
    -
    34282  kZoneEraAustralia_Darwin /*eras*/,
    -
    34283  &kZoneAustralia_Darwin /*targetInfo*/,
    -
    34284 };
    -
    34285 
    -
    34286 //---------------------------------------------------------------------------
    -
    34287 // Link name: Australia/Queensland -> Australia/Brisbane
    -
    34288 //---------------------------------------------------------------------------
    -
    34289 
    -
    34290 static const char kZoneNameAustralia_Queensland[] ACE_TIME_PROGMEM = "\x07" "Queensland";
    -
    34291 
    -
    34292 const complete::Info::ZoneInfo kZoneAustralia_Queensland ACE_TIME_PROGMEM = {
    -
    34293  kZoneNameAustralia_Queensland /*name*/,
    -
    34294  0xd326ed0a /*zoneId*/,
    -
    34295  &kZoneContext /*zoneContext*/,
    -
    34296  3 /*numEras*/,
    -
    34297  kZoneEraAustralia_Brisbane /*eras*/,
    -
    34298  &kZoneAustralia_Brisbane /*targetInfo*/,
    -
    34299 };
    -
    34300 
    -
    34301 //---------------------------------------------------------------------------
    -
    34302 // Link name: Australia/South -> Australia/Adelaide
    -
    34303 //---------------------------------------------------------------------------
    -
    34304 
    -
    34305 static const char kZoneNameAustralia_South[] ACE_TIME_PROGMEM = "\x07" "South";
    -
    34306 
    -
    34307 const complete::Info::ZoneInfo kZoneAustralia_South ACE_TIME_PROGMEM = {
    -
    34308  kZoneNameAustralia_South /*name*/,
    -
    34309  0x8df3f8ad /*zoneId*/,
    -
    34310  &kZoneContext /*zoneContext*/,
    -
    34311  4 /*numEras*/,
    -
    34312  kZoneEraAustralia_Adelaide /*eras*/,
    -
    34313  &kZoneAustralia_Adelaide /*targetInfo*/,
    -
    34314 };
    -
    34315 
    -
    34316 //---------------------------------------------------------------------------
    -
    34317 // Link name: Australia/Tasmania -> Australia/Hobart
    -
    34318 //---------------------------------------------------------------------------
    -
    34319 
    -
    34320 static const char kZoneNameAustralia_Tasmania[] ACE_TIME_PROGMEM = "\x07" "Tasmania";
    -
    34321 
    -
    34322 const complete::Info::ZoneInfo kZoneAustralia_Tasmania ACE_TIME_PROGMEM = {
    -
    34323  kZoneNameAustralia_Tasmania /*name*/,
    -
    34324  0xe6d76648 /*zoneId*/,
    -
    34325  &kZoneContext /*zoneContext*/,
    -
    34326  4 /*numEras*/,
    -
    34327  kZoneEraAustralia_Hobart /*eras*/,
    -
    34328  &kZoneAustralia_Hobart /*targetInfo*/,
    -
    34329 };
    -
    34330 
    -
    34331 //---------------------------------------------------------------------------
    -
    34332 // Link name: Australia/Victoria -> Australia/Melbourne
    -
    34333 //---------------------------------------------------------------------------
    -
    34334 
    -
    34335 static const char kZoneNameAustralia_Victoria[] ACE_TIME_PROGMEM = "\x07" "Victoria";
    -
    34336 
    -
    34337 const complete::Info::ZoneInfo kZoneAustralia_Victoria ACE_TIME_PROGMEM = {
    -
    34338  kZoneNameAustralia_Victoria /*name*/,
    -
    34339  0x0260d5db /*zoneId*/,
    -
    34340  &kZoneContext /*zoneContext*/,
    -
    34341  3 /*numEras*/,
    -
    34342  kZoneEraAustralia_Melbourne /*eras*/,
    -
    34343  &kZoneAustralia_Melbourne /*targetInfo*/,
    -
    34344 };
    -
    34345 
    -
    34346 //---------------------------------------------------------------------------
    -
    34347 // Link name: Australia/West -> Australia/Perth
    -
    34348 //---------------------------------------------------------------------------
    -
    34349 
    -
    34350 static const char kZoneNameAustralia_West[] ACE_TIME_PROGMEM = "\x07" "West";
    -
    34351 
    -
    34352 const complete::Info::ZoneInfo kZoneAustralia_West ACE_TIME_PROGMEM = {
    -
    34353  kZoneNameAustralia_West /*name*/,
    -
    34354  0xdd858a5d /*zoneId*/,
    -
    34355  &kZoneContext /*zoneContext*/,
    -
    34356  3 /*numEras*/,
    -
    34357  kZoneEraAustralia_Perth /*eras*/,
    -
    34358  &kZoneAustralia_Perth /*targetInfo*/,
    -
    34359 };
    -
    34360 
    -
    34361 //---------------------------------------------------------------------------
    -
    34362 // Link name: Australia/Yancowinna -> Australia/Broken_Hill
    -
    34363 //---------------------------------------------------------------------------
    -
    34364 
    -
    34365 static const char kZoneNameAustralia_Yancowinna[] ACE_TIME_PROGMEM = "\x07" "Yancowinna";
    -
    34366 
    -
    34367 const complete::Info::ZoneInfo kZoneAustralia_Yancowinna ACE_TIME_PROGMEM = {
    -
    34368  kZoneNameAustralia_Yancowinna /*name*/,
    -
    34369  0x90bac131 /*zoneId*/,
    -
    34370  &kZoneContext /*zoneContext*/,
    -
    34371  6 /*numEras*/,
    -
    34372  kZoneEraAustralia_Broken_Hill /*eras*/,
    -
    34373  &kZoneAustralia_Broken_Hill /*targetInfo*/,
    -
    34374 };
    -
    34375 
    -
    34376 //---------------------------------------------------------------------------
    -
    34377 // Link name: Brazil/Acre -> America/Rio_Branco
    -
    34378 //---------------------------------------------------------------------------
    -
    34379 
    -
    34380 static const char kZoneNameBrazil_Acre[] ACE_TIME_PROGMEM = "\x08" "Acre";
    -
    34381 
    -
    34382 const complete::Info::ZoneInfo kZoneBrazil_Acre ACE_TIME_PROGMEM = {
    -
    34383  kZoneNameBrazil_Acre /*name*/,
    -
    34384  0x66934f93 /*zoneId*/,
    -
    34385  &kZoneContext /*zoneContext*/,
    -
    34386  5 /*numEras*/,
    -
    34387  kZoneEraAmerica_Rio_Branco /*eras*/,
    -
    34388  &kZoneAmerica_Rio_Branco /*targetInfo*/,
    -
    34389 };
    -
    34390 
    -
    34391 //---------------------------------------------------------------------------
    -
    34392 // Link name: Brazil/DeNoronha -> America/Noronha
    -
    34393 //---------------------------------------------------------------------------
    -
    34394 
    -
    34395 static const char kZoneNameBrazil_DeNoronha[] ACE_TIME_PROGMEM = "\x08" "DeNoronha";
    -
    34396 
    -
    34397 const complete::Info::ZoneInfo kZoneBrazil_DeNoronha ACE_TIME_PROGMEM = {
    -
    34398  kZoneNameBrazil_DeNoronha /*name*/,
    -
    34399  0x9b4cb496 /*zoneId*/,
    -
    34400  &kZoneContext /*zoneContext*/,
    -
    34401  7 /*numEras*/,
    -
    34402  kZoneEraAmerica_Noronha /*eras*/,
    -
    34403  &kZoneAmerica_Noronha /*targetInfo*/,
    -
    34404 };
    -
    34405 
    -
    34406 //---------------------------------------------------------------------------
    -
    34407 // Link name: Brazil/East -> America/Sao_Paulo
    -
    34408 //---------------------------------------------------------------------------
    -
    34409 
    -
    34410 static const char kZoneNameBrazil_East[] ACE_TIME_PROGMEM = "\x08" "East";
    -
    34411 
    -
    34412 const complete::Info::ZoneInfo kZoneBrazil_East ACE_TIME_PROGMEM = {
    -
    34413  kZoneNameBrazil_East /*name*/,
    -
    34414  0x669578c5 /*zoneId*/,
    -
    34415  &kZoneContext /*zoneContext*/,
    -
    34416  4 /*numEras*/,
    -
    34417  kZoneEraAmerica_Sao_Paulo /*eras*/,
    -
    34418  &kZoneAmerica_Sao_Paulo /*targetInfo*/,
    -
    34419 };
    -
    34420 
    -
    34421 //---------------------------------------------------------------------------
    -
    34422 // Link name: Brazil/West -> America/Manaus
    -
    34423 //---------------------------------------------------------------------------
    -
    34424 
    -
    34425 static const char kZoneNameBrazil_West[] ACE_TIME_PROGMEM = "\x08" "West";
    -
    34426 
    -
    34427 const complete::Info::ZoneInfo kZoneBrazil_West ACE_TIME_PROGMEM = {
    -
    34428  kZoneNameBrazil_West /*name*/,
    -
    34429  0x669f689b /*zoneId*/,
    -
    34430  &kZoneContext /*zoneContext*/,
    -
    34431  5 /*numEras*/,
    -
    34432  kZoneEraAmerica_Manaus /*eras*/,
    -
    34433  &kZoneAmerica_Manaus /*targetInfo*/,
    -
    34434 };
    -
    34435 
    -
    34436 //---------------------------------------------------------------------------
    -
    34437 // Link name: CET -> Europe/Brussels
    -
    34438 //---------------------------------------------------------------------------
    -
    34439 
    -
    34440 static const char kZoneNameCET[] ACE_TIME_PROGMEM = "CET";
    -
    34441 
    -
    34442 const complete::Info::ZoneInfo kZoneCET ACE_TIME_PROGMEM = {
    -
    34443  kZoneNameCET /*name*/,
    -
    34444  0x0b87d921 /*zoneId*/,
    -
    34445  &kZoneContext /*zoneContext*/,
    -
    34446  9 /*numEras*/,
    -
    34447  kZoneEraEurope_Brussels /*eras*/,
    -
    34448  &kZoneEurope_Brussels /*targetInfo*/,
    -
    34449 };
    -
    34450 
    -
    34451 //---------------------------------------------------------------------------
    -
    34452 // Link name: CST6CDT -> America/Chicago
    -
    34453 //---------------------------------------------------------------------------
    -
    34454 
    -
    34455 static const char kZoneNameCST6CDT[] ACE_TIME_PROGMEM = "CST6CDT";
    -
    34456 
    -
    34457 const complete::Info::ZoneInfo kZoneCST6CDT ACE_TIME_PROGMEM = {
    -
    34458  kZoneNameCST6CDT /*name*/,
    -
    34459  0xf0e87d00 /*zoneId*/,
    -
    34460  &kZoneContext /*zoneContext*/,
    -
    34461  8 /*numEras*/,
    -
    34462  kZoneEraAmerica_Chicago /*eras*/,
    -
    34463  &kZoneAmerica_Chicago /*targetInfo*/,
    -
    34464 };
    -
    34465 
    -
    34466 //---------------------------------------------------------------------------
    -
    34467 // Link name: Canada/Atlantic -> America/Halifax
    -
    34468 //---------------------------------------------------------------------------
    -
    34469 
    -
    34470 static const char kZoneNameCanada_Atlantic[] ACE_TIME_PROGMEM = "\x09" "Atlantic";
    -
    34471 
    -
    34472 const complete::Info::ZoneInfo kZoneCanada_Atlantic ACE_TIME_PROGMEM = {
    -
    34473  kZoneNameCanada_Atlantic /*name*/,
    -
    34474  0x536b119c /*zoneId*/,
    -
    34475  &kZoneContext /*zoneContext*/,
    -
    34476  7 /*numEras*/,
    -
    34477  kZoneEraAmerica_Halifax /*eras*/,
    -
    34478  &kZoneAmerica_Halifax /*targetInfo*/,
    -
    34479 };
    -
    34480 
    -
    34481 //---------------------------------------------------------------------------
    -
    34482 // Link name: Canada/Central -> America/Winnipeg
    -
    34483 //---------------------------------------------------------------------------
    -
    34484 
    -
    34485 static const char kZoneNameCanada_Central[] ACE_TIME_PROGMEM = "\x09" "Central";
    -
    34486 
    -
    34487 const complete::Info::ZoneInfo kZoneCanada_Central ACE_TIME_PROGMEM = {
    -
    34488  kZoneNameCanada_Central /*name*/,
    -
    34489  0x626710f5 /*zoneId*/,
    -
    34490  &kZoneContext /*zoneContext*/,
    -
    34491  3 /*numEras*/,
    -
    34492  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    34493  &kZoneAmerica_Winnipeg /*targetInfo*/,
    -
    34494 };
    -
    34495 
    -
    34496 //---------------------------------------------------------------------------
    -
    34497 // Link name: Canada/Eastern -> America/Toronto
    -
    34498 //---------------------------------------------------------------------------
    -
    34499 
    -
    34500 static const char kZoneNameCanada_Eastern[] ACE_TIME_PROGMEM = "\x09" "Eastern";
    -
    34501 
    -
    34502 const complete::Info::ZoneInfo kZoneCanada_Eastern ACE_TIME_PROGMEM = {
    -
    34503  kZoneNameCanada_Eastern /*name*/,
    -
    34504  0xf3612d5e /*zoneId*/,
    -
    34505  &kZoneContext /*zoneContext*/,
    -
    34506  6 /*numEras*/,
    -
    34507  kZoneEraAmerica_Toronto /*eras*/,
    -
    34508  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    34509 };
    -
    34510 
    -
    34511 //---------------------------------------------------------------------------
    -
    34512 // Link name: Canada/Mountain -> America/Edmonton
    -
    34513 //---------------------------------------------------------------------------
    -
    34514 
    -
    34515 static const char kZoneNameCanada_Mountain[] ACE_TIME_PROGMEM = "\x09" "Mountain";
    -
    34516 
    -
    34517 const complete::Info::ZoneInfo kZoneCanada_Mountain ACE_TIME_PROGMEM = {
    -
    34518  kZoneNameCanada_Mountain /*name*/,
    -
    34519  0xfb8a8217 /*zoneId*/,
    -
    34520  &kZoneContext /*zoneContext*/,
    -
    34521  3 /*numEras*/,
    -
    34522  kZoneEraAmerica_Edmonton /*eras*/,
    -
    34523  &kZoneAmerica_Edmonton /*targetInfo*/,
    -
    34524 };
    -
    34525 
    -
    34526 //---------------------------------------------------------------------------
    -
    34527 // Link name: Canada/Newfoundland -> America/St_Johns
    -
    34528 //---------------------------------------------------------------------------
    -
    34529 
    -
    34530 static const char kZoneNameCanada_Newfoundland[] ACE_TIME_PROGMEM = "\x09" "Newfoundland";
    -
    34531 
    -
    34532 const complete::Info::ZoneInfo kZoneCanada_Newfoundland ACE_TIME_PROGMEM = {
    -
    34533  kZoneNameCanada_Newfoundland /*name*/,
    -
    34534  0xb396e991 /*zoneId*/,
    -
    34535  &kZoneContext /*zoneContext*/,
    -
    34536  8 /*numEras*/,
    -
    34537  kZoneEraAmerica_St_Johns /*eras*/,
    -
    34538  &kZoneAmerica_St_Johns /*targetInfo*/,
    -
    34539 };
    -
    34540 
    -
    34541 //---------------------------------------------------------------------------
    -
    34542 // Link name: Canada/Pacific -> America/Vancouver
    -
    34543 //---------------------------------------------------------------------------
    -
    34544 
    -
    34545 static const char kZoneNameCanada_Pacific[] ACE_TIME_PROGMEM = "\x09" "Pacific";
    -
    34546 
    -
    34547 const complete::Info::ZoneInfo kZoneCanada_Pacific ACE_TIME_PROGMEM = {
    -
    34548  kZoneNameCanada_Pacific /*name*/,
    -
    34549  0x40fa3c7b /*zoneId*/,
    -
    34550  &kZoneContext /*zoneContext*/,
    -
    34551  3 /*numEras*/,
    -
    34552  kZoneEraAmerica_Vancouver /*eras*/,
    -
    34553  &kZoneAmerica_Vancouver /*targetInfo*/,
    -
    34554 };
    -
    34555 
    -
    34556 //---------------------------------------------------------------------------
    -
    34557 // Link name: Canada/Saskatchewan -> America/Regina
    -
    34558 //---------------------------------------------------------------------------
    -
    34559 
    -
    34560 static const char kZoneNameCanada_Saskatchewan[] ACE_TIME_PROGMEM = "\x09" "Saskatchewan";
    -
    34561 
    -
    34562 const complete::Info::ZoneInfo kZoneCanada_Saskatchewan ACE_TIME_PROGMEM = {
    -
    34563  kZoneNameCanada_Saskatchewan /*name*/,
    -
    34564  0x77311f49 /*zoneId*/,
    -
    34565  &kZoneContext /*zoneContext*/,
    -
    34566  3 /*numEras*/,
    -
    34567  kZoneEraAmerica_Regina /*eras*/,
    -
    34568  &kZoneAmerica_Regina /*targetInfo*/,
    -
    34569 };
    -
    34570 
    -
    34571 //---------------------------------------------------------------------------
    -
    34572 // Link name: Canada/Yukon -> America/Whitehorse
    -
    34573 //---------------------------------------------------------------------------
    -
    34574 
    -
    34575 static const char kZoneNameCanada_Yukon[] ACE_TIME_PROGMEM = "\x09" "Yukon";
    -
    34576 
    -
    34577 const complete::Info::ZoneInfo kZoneCanada_Yukon ACE_TIME_PROGMEM = {
    -
    34578  kZoneNameCanada_Yukon /*name*/,
    -
    34579  0x78dd35c2 /*zoneId*/,
    -
    34580  &kZoneContext /*zoneContext*/,
    -
    34581  6 /*numEras*/,
    -
    34582  kZoneEraAmerica_Whitehorse /*eras*/,
    -
    34583  &kZoneAmerica_Whitehorse /*targetInfo*/,
    -
    34584 };
    -
    34585 
    -
    34586 //---------------------------------------------------------------------------
    -
    34587 // Link name: Chile/Continental -> America/Santiago
    -
    34588 //---------------------------------------------------------------------------
    -
    34589 
    -
    34590 static const char kZoneNameChile_Continental[] ACE_TIME_PROGMEM = "Chile/Continental";
    -
    34591 
    -
    34592 const complete::Info::ZoneInfo kZoneChile_Continental ACE_TIME_PROGMEM = {
    -
    34593  kZoneNameChile_Continental /*name*/,
    -
    34594  0x7e2bdb18 /*zoneId*/,
    -
    34595  &kZoneContext /*zoneContext*/,
    -
    34596  14 /*numEras*/,
    -
    34597  kZoneEraAmerica_Santiago /*eras*/,
    -
    34598  &kZoneAmerica_Santiago /*targetInfo*/,
    -
    34599 };
    -
    34600 
    -
    34601 //---------------------------------------------------------------------------
    -
    34602 // Link name: Chile/EasterIsland -> Pacific/Easter
    -
    34603 //---------------------------------------------------------------------------
    -
    34604 
    -
    34605 static const char kZoneNameChile_EasterIsland[] ACE_TIME_PROGMEM = "Chile/EasterIsland";
    -
    34606 
    -
    34607 const complete::Info::ZoneInfo kZoneChile_EasterIsland ACE_TIME_PROGMEM = {
    -
    34608  kZoneNameChile_EasterIsland /*name*/,
    -
    34609  0xb0982af8 /*zoneId*/,
    -
    34610  &kZoneContext /*zoneContext*/,
    -
    34611  4 /*numEras*/,
    -
    34612  kZoneEraPacific_Easter /*eras*/,
    -
    34613  &kZonePacific_Easter /*targetInfo*/,
    -
    34614 };
    -
    34615 
    -
    34616 //---------------------------------------------------------------------------
    -
    34617 // Link name: Cuba -> America/Havana
    -
    34618 //---------------------------------------------------------------------------
    -
    34619 
    -
    34620 static const char kZoneNameCuba[] ACE_TIME_PROGMEM = "Cuba";
    -
    34621 
    -
    34622 const complete::Info::ZoneInfo kZoneCuba ACE_TIME_PROGMEM = {
    -
    34623  kZoneNameCuba /*name*/,
    -
    34624  0x7c83cba0 /*zoneId*/,
    -
    34625  &kZoneContext /*zoneContext*/,
    -
    34626  3 /*numEras*/,
    -
    34627  kZoneEraAmerica_Havana /*eras*/,
    -
    34628  &kZoneAmerica_Havana /*targetInfo*/,
    -
    34629 };
    -
    34630 
    -
    34631 //---------------------------------------------------------------------------
    -
    34632 // Link name: EET -> Europe/Athens
    -
    34633 //---------------------------------------------------------------------------
    -
    34634 
    -
    34635 static const char kZoneNameEET[] ACE_TIME_PROGMEM = "EET";
    -
    34636 
    -
    34637 const complete::Info::ZoneInfo kZoneEET ACE_TIME_PROGMEM = {
    -
    34638  kZoneNameEET /*name*/,
    -
    34639  0x0b87e1a3 /*zoneId*/,
    -
    34640  &kZoneContext /*zoneContext*/,
    -
    34641  6 /*numEras*/,
    -
    34642  kZoneEraEurope_Athens /*eras*/,
    -
    34643  &kZoneEurope_Athens /*targetInfo*/,
    -
    34644 };
    -
    34645 
    -
    34646 //---------------------------------------------------------------------------
    -
    34647 // Link name: EST -> America/Panama
    -
    34648 //---------------------------------------------------------------------------
    -
    34649 
    -
    34650 static const char kZoneNameEST[] ACE_TIME_PROGMEM = "EST";
    -
    34651 
    -
    34652 const complete::Info::ZoneInfo kZoneEST ACE_TIME_PROGMEM = {
    -
    34653  kZoneNameEST /*name*/,
    -
    34654  0x0b87e371 /*zoneId*/,
    -
    34655  &kZoneContext /*zoneContext*/,
    -
    34656  3 /*numEras*/,
    -
    34657  kZoneEraAmerica_Panama /*eras*/,
    -
    34658  &kZoneAmerica_Panama /*targetInfo*/,
    -
    34659 };
    -
    34660 
    -
    34661 //---------------------------------------------------------------------------
    -
    34662 // Link name: EST5EDT -> America/New_York
    -
    34663 //---------------------------------------------------------------------------
    -
    34664 
    -
    34665 static const char kZoneNameEST5EDT[] ACE_TIME_PROGMEM = "EST5EDT";
    -
    34666 
    -
    34667 const complete::Info::ZoneInfo kZoneEST5EDT ACE_TIME_PROGMEM = {
    -
    34668  kZoneNameEST5EDT /*name*/,
    -
    34669  0x8adc72a3 /*zoneId*/,
    -
    34670  &kZoneContext /*zoneContext*/,
    -
    34671  6 /*numEras*/,
    -
    34672  kZoneEraAmerica_New_York /*eras*/,
    -
    34673  &kZoneAmerica_New_York /*targetInfo*/,
    -
    34674 };
    -
    34675 
    -
    34676 //---------------------------------------------------------------------------
    -
    34677 // Link name: Egypt -> Africa/Cairo
    -
    34678 //---------------------------------------------------------------------------
    -
    34679 
    -
    34680 static const char kZoneNameEgypt[] ACE_TIME_PROGMEM = "Egypt";
    -
    34681 
    -
    34682 const complete::Info::ZoneInfo kZoneEgypt ACE_TIME_PROGMEM = {
    -
    34683  kZoneNameEgypt /*name*/,
    -
    34684  0x0d1a278e /*zoneId*/,
    -
    34685  &kZoneContext /*zoneContext*/,
    -
    34686  2 /*numEras*/,
    -
    34687  kZoneEraAfrica_Cairo /*eras*/,
    -
    34688  &kZoneAfrica_Cairo /*targetInfo*/,
    -
    34689 };
    -
    34690 
    -
    34691 //---------------------------------------------------------------------------
    -
    34692 // Link name: Eire -> Europe/Dublin
    -
    34693 //---------------------------------------------------------------------------
    -
    34694 
    -
    34695 static const char kZoneNameEire[] ACE_TIME_PROGMEM = "Eire";
    -
    34696 
    -
    34697 const complete::Info::ZoneInfo kZoneEire ACE_TIME_PROGMEM = {
    -
    34698  kZoneNameEire /*name*/,
    -
    34699  0x7c84b36a /*zoneId*/,
    -
    34700  &kZoneContext /*zoneContext*/,
    -
    34701  11 /*numEras*/,
    -
    34702  kZoneEraEurope_Dublin /*eras*/,
    -
    34703  &kZoneEurope_Dublin /*targetInfo*/,
    -
    34704 };
    -
    34705 
    -
    34706 //---------------------------------------------------------------------------
    -
    34707 // Link name: Etc/GMT+0 -> Etc/GMT
    -
    34708 //---------------------------------------------------------------------------
    -
    34709 
    -
    34710 static const char kZoneNameEtc_GMT_PLUS_0[] ACE_TIME_PROGMEM = "\x0a" "GMT+0";
    -
    34711 
    -
    34712 const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_0 ACE_TIME_PROGMEM = {
    -
    34713  kZoneNameEtc_GMT_PLUS_0 /*name*/,
    -
    34714  0x9d13da13 /*zoneId*/,
    -
    34715  &kZoneContext /*zoneContext*/,
    -
    34716  1 /*numEras*/,
    -
    34717  kZoneEraEtc_GMT /*eras*/,
    -
    34718  &kZoneEtc_GMT /*targetInfo*/,
    -
    34719 };
    -
    34720 
    -
    34721 //---------------------------------------------------------------------------
    -
    34722 // Link name: Etc/GMT-0 -> Etc/GMT
    -
    34723 //---------------------------------------------------------------------------
    -
    34724 
    -
    34725 static const char kZoneNameEtc_GMT_0[] ACE_TIME_PROGMEM = "\x0a" "GMT-0";
    -
    34726 
    -
    34727 const complete::Info::ZoneInfo kZoneEtc_GMT_0 ACE_TIME_PROGMEM = {
    -
    34728  kZoneNameEtc_GMT_0 /*name*/,
    -
    34729  0x9d13da55 /*zoneId*/,
    -
    34730  &kZoneContext /*zoneContext*/,
    -
    34731  1 /*numEras*/,
    -
    34732  kZoneEraEtc_GMT /*eras*/,
    -
    34733  &kZoneEtc_GMT /*targetInfo*/,
    -
    34734 };
    -
    34735 
    -
    34736 //---------------------------------------------------------------------------
    -
    34737 // Link name: Etc/GMT0 -> Etc/GMT
    -
    34738 //---------------------------------------------------------------------------
    -
    34739 
    -
    34740 static const char kZoneNameEtc_GMT0[] ACE_TIME_PROGMEM = "\x0a" "GMT0";
    -
    34741 
    -
    34742 const complete::Info::ZoneInfo kZoneEtc_GMT0 ACE_TIME_PROGMEM = {
    -
    34743  kZoneNameEtc_GMT0 /*name*/,
    -
    34744  0xf53ea988 /*zoneId*/,
    -
    34745  &kZoneContext /*zoneContext*/,
    -
    34746  1 /*numEras*/,
    -
    34747  kZoneEraEtc_GMT /*eras*/,
    -
    34748  &kZoneEtc_GMT /*targetInfo*/,
    -
    34749 };
    -
    34750 
    -
    34751 //---------------------------------------------------------------------------
    -
    34752 // Link name: Etc/Greenwich -> Etc/GMT
    -
    34753 //---------------------------------------------------------------------------
    -
    34754 
    -
    34755 static const char kZoneNameEtc_Greenwich[] ACE_TIME_PROGMEM = "\x0a" "Greenwich";
    -
    34756 
    -
    34757 const complete::Info::ZoneInfo kZoneEtc_Greenwich ACE_TIME_PROGMEM = {
    -
    34758  kZoneNameEtc_Greenwich /*name*/,
    -
    34759  0x26daa98c /*zoneId*/,
    -
    34760  &kZoneContext /*zoneContext*/,
    -
    34761  1 /*numEras*/,
    -
    34762  kZoneEraEtc_GMT /*eras*/,
    -
    34763  &kZoneEtc_GMT /*targetInfo*/,
    -
    34764 };
    -
    34765 
    -
    34766 //---------------------------------------------------------------------------
    -
    34767 // Link name: Etc/UCT -> Etc/UTC
    -
    34768 //---------------------------------------------------------------------------
    -
    34769 
    -
    34770 static const char kZoneNameEtc_UCT[] ACE_TIME_PROGMEM = "\x0a" "UCT";
    -
    34771 
    -
    34772 const complete::Info::ZoneInfo kZoneEtc_UCT ACE_TIME_PROGMEM = {
    -
    34773  kZoneNameEtc_UCT /*name*/,
    -
    34774  0xd8e3189c /*zoneId*/,
    -
    34775  &kZoneContext /*zoneContext*/,
    -
    34776  1 /*numEras*/,
    -
    34777  kZoneEraEtc_UTC /*eras*/,
    -
    34778  &kZoneEtc_UTC /*targetInfo*/,
    -
    34779 };
    -
    34780 
    -
    34781 //---------------------------------------------------------------------------
    -
    34782 // Link name: Etc/Universal -> Etc/UTC
    -
    34783 //---------------------------------------------------------------------------
    -
    34784 
    -
    34785 static const char kZoneNameEtc_Universal[] ACE_TIME_PROGMEM = "\x0a" "Universal";
    -
    34786 
    -
    34787 const complete::Info::ZoneInfo kZoneEtc_Universal ACE_TIME_PROGMEM = {
    -
    34788  kZoneNameEtc_Universal /*name*/,
    -
    34789  0x2f8cb9a9 /*zoneId*/,
    -
    34790  &kZoneContext /*zoneContext*/,
    -
    34791  1 /*numEras*/,
    -
    34792  kZoneEraEtc_UTC /*eras*/,
    -
    34793  &kZoneEtc_UTC /*targetInfo*/,
    -
    34794 };
    -
    34795 
    -
    34796 //---------------------------------------------------------------------------
    -
    34797 // Link name: Etc/Zulu -> Etc/UTC
    -
    34798 //---------------------------------------------------------------------------
    -
    34799 
    -
    34800 static const char kZoneNameEtc_Zulu[] ACE_TIME_PROGMEM = "\x0a" "Zulu";
    -
    34801 
    -
    34802 const complete::Info::ZoneInfo kZoneEtc_Zulu ACE_TIME_PROGMEM = {
    -
    34803  kZoneNameEtc_Zulu /*name*/,
    -
    34804  0xf549c240 /*zoneId*/,
    -
    34805  &kZoneContext /*zoneContext*/,
    -
    34806  1 /*numEras*/,
    -
    34807  kZoneEraEtc_UTC /*eras*/,
    -
    34808  &kZoneEtc_UTC /*targetInfo*/,
    -
    34809 };
    -
    34810 
    -
    34811 //---------------------------------------------------------------------------
    -
    34812 // Link name: Europe/Amsterdam -> Europe/Brussels
    -
    34813 //---------------------------------------------------------------------------
    -
    34814 
    -
    34815 static const char kZoneNameEurope_Amsterdam[] ACE_TIME_PROGMEM = "\x0b" "Amsterdam";
    -
    34816 
    -
    34817 const complete::Info::ZoneInfo kZoneEurope_Amsterdam ACE_TIME_PROGMEM = {
    -
    34818  kZoneNameEurope_Amsterdam /*name*/,
    -
    34819  0x109395c2 /*zoneId*/,
    -
    34820  &kZoneContext /*zoneContext*/,
    -
    34821  9 /*numEras*/,
    -
    34822  kZoneEraEurope_Brussels /*eras*/,
    -
    34823  &kZoneEurope_Brussels /*targetInfo*/,
    -
    34824 };
    -
    34825 
    -
    34826 //---------------------------------------------------------------------------
    -
    34827 // Link name: Europe/Belfast -> Europe/London
    -
    34828 //---------------------------------------------------------------------------
    -
    34829 
    -
    34830 static const char kZoneNameEurope_Belfast[] ACE_TIME_PROGMEM = "\x0b" "Belfast";
    -
    34831 
    -
    34832 const complete::Info::ZoneInfo kZoneEurope_Belfast ACE_TIME_PROGMEM = {
    -
    34833  kZoneNameEurope_Belfast /*name*/,
    -
    34834  0xd07dd1e5 /*zoneId*/,
    -
    34835  &kZoneContext /*zoneContext*/,
    -
    34836  5 /*numEras*/,
    -
    34837  kZoneEraEurope_London /*eras*/,
    -
    34838  &kZoneEurope_London /*targetInfo*/,
    -
    34839 };
    -
    34840 
    -
    34841 //---------------------------------------------------------------------------
    -
    34842 // Link name: Europe/Bratislava -> Europe/Prague
    -
    34843 //---------------------------------------------------------------------------
    -
    34844 
    -
    34845 static const char kZoneNameEurope_Bratislava[] ACE_TIME_PROGMEM = "\x0b" "Bratislava";
    -
    34846 
    -
    34847 const complete::Info::ZoneInfo kZoneEurope_Bratislava ACE_TIME_PROGMEM = {
    -
    34848  kZoneNameEurope_Bratislava /*name*/,
    -
    34849  0xda493bed /*zoneId*/,
    -
    34850  &kZoneContext /*zoneContext*/,
    -
    34851  7 /*numEras*/,
    -
    34852  kZoneEraEurope_Prague /*eras*/,
    -
    34853  &kZoneEurope_Prague /*targetInfo*/,
    -
    34854 };
    -
    34855 
    -
    34856 //---------------------------------------------------------------------------
    -
    34857 // Link name: Europe/Busingen -> Europe/Zurich
    -
    34858 //---------------------------------------------------------------------------
    -
    34859 
    -
    34860 static const char kZoneNameEurope_Busingen[] ACE_TIME_PROGMEM = "\x0b" "Busingen";
    -
    34861 
    -
    34862 const complete::Info::ZoneInfo kZoneEurope_Busingen ACE_TIME_PROGMEM = {
    -
    34863  kZoneNameEurope_Busingen /*name*/,
    -
    34864  0xc06d2cdf /*zoneId*/,
    -
    34865  &kZoneContext /*zoneContext*/,
    -
    34866  4 /*numEras*/,
    -
    34867  kZoneEraEurope_Zurich /*eras*/,
    -
    34868  &kZoneEurope_Zurich /*targetInfo*/,
    -
    34869 };
    -
    34870 
    -
    34871 //---------------------------------------------------------------------------
    -
    34872 // Link name: Europe/Copenhagen -> Europe/Berlin
    -
    34873 //---------------------------------------------------------------------------
    -
    34874 
    -
    34875 static const char kZoneNameEurope_Copenhagen[] ACE_TIME_PROGMEM = "\x0b" "Copenhagen";
    -
    34876 
    -
    34877 const complete::Info::ZoneInfo kZoneEurope_Copenhagen ACE_TIME_PROGMEM = {
    -
    34878  kZoneNameEurope_Copenhagen /*name*/,
    -
    34879  0xe0ed30bc /*zoneId*/,
    -
    34880  &kZoneContext /*zoneContext*/,
    -
    34881  5 /*numEras*/,
    -
    34882  kZoneEraEurope_Berlin /*eras*/,
    -
    34883  &kZoneEurope_Berlin /*targetInfo*/,
    -
    34884 };
    -
    34885 
    -
    34886 //---------------------------------------------------------------------------
    -
    34887 // Link name: Europe/Guernsey -> Europe/London
    -
    34888 //---------------------------------------------------------------------------
    -
    34889 
    -
    34890 static const char kZoneNameEurope_Guernsey[] ACE_TIME_PROGMEM = "\x0b" "Guernsey";
    -
    34891 
    -
    34892 const complete::Info::ZoneInfo kZoneEurope_Guernsey ACE_TIME_PROGMEM = {
    -
    34893  kZoneNameEurope_Guernsey /*name*/,
    -
    34894  0x3db12c16 /*zoneId*/,
    -
    34895  &kZoneContext /*zoneContext*/,
    -
    34896  5 /*numEras*/,
    -
    34897  kZoneEraEurope_London /*eras*/,
    -
    34898  &kZoneEurope_London /*targetInfo*/,
    -
    34899 };
    -
    34900 
    -
    34901 //---------------------------------------------------------------------------
    -
    34902 // Link name: Europe/Isle_of_Man -> Europe/London
    -
    34903 //---------------------------------------------------------------------------
    -
    34904 
    -
    34905 static const char kZoneNameEurope_Isle_of_Man[] ACE_TIME_PROGMEM = "\x0b" "Isle_of_Man";
    -
    34906 
    -
    34907 const complete::Info::ZoneInfo kZoneEurope_Isle_of_Man ACE_TIME_PROGMEM = {
    -
    34908  kZoneNameEurope_Isle_of_Man /*name*/,
    -
    34909  0xeaf84580 /*zoneId*/,
    -
    34910  &kZoneContext /*zoneContext*/,
    -
    34911  5 /*numEras*/,
    -
    34912  kZoneEraEurope_London /*eras*/,
    -
    34913  &kZoneEurope_London /*targetInfo*/,
    -
    34914 };
    -
    34915 
    -
    34916 //---------------------------------------------------------------------------
    -
    34917 // Link name: Europe/Jersey -> Europe/London
    -
    34918 //---------------------------------------------------------------------------
    -
    34919 
    -
    34920 static const char kZoneNameEurope_Jersey[] ACE_TIME_PROGMEM = "\x0b" "Jersey";
    -
    34921 
    -
    34922 const complete::Info::ZoneInfo kZoneEurope_Jersey ACE_TIME_PROGMEM = {
    -
    34923  kZoneNameEurope_Jersey /*name*/,
    -
    34924  0x570dae76 /*zoneId*/,
    -
    34925  &kZoneContext /*zoneContext*/,
    -
    34926  5 /*numEras*/,
    -
    34927  kZoneEraEurope_London /*eras*/,
    -
    34928  &kZoneEurope_London /*targetInfo*/,
    -
    34929 };
    -
    34930 
    -
    34931 //---------------------------------------------------------------------------
    -
    34932 // Link name: Europe/Kiev -> Europe/Kyiv
    -
    34933 //---------------------------------------------------------------------------
    -
    34934 
    -
    34935 static const char kZoneNameEurope_Kiev[] ACE_TIME_PROGMEM = "\x0b" "Kiev";
    -
    34936 
    -
    34937 const complete::Info::ZoneInfo kZoneEurope_Kiev ACE_TIME_PROGMEM = {
    -
    34938  kZoneNameEurope_Kiev /*name*/,
    -
    34939  0xa2c19eb3 /*zoneId*/,
    -
    34940  &kZoneContext /*zoneContext*/,
    -
    34941  9 /*numEras*/,
    -
    34942  kZoneEraEurope_Kyiv /*eras*/,
    -
    34943  &kZoneEurope_Kyiv /*targetInfo*/,
    -
    34944 };
    -
    34945 
    -
    34946 //---------------------------------------------------------------------------
    -
    34947 // Link name: Europe/Ljubljana -> Europe/Belgrade
    -
    34948 //---------------------------------------------------------------------------
    -
    34949 
    -
    34950 static const char kZoneNameEurope_Ljubljana[] ACE_TIME_PROGMEM = "\x0b" "Ljubljana";
    -
    34951 
    -
    34952 const complete::Info::ZoneInfo kZoneEurope_Ljubljana ACE_TIME_PROGMEM = {
    -
    34953  kZoneNameEurope_Ljubljana /*name*/,
    -
    34954  0xbd98cdb7 /*zoneId*/,
    -
    34955  &kZoneContext /*zoneContext*/,
    -
    34956  7 /*numEras*/,
    -
    34957  kZoneEraEurope_Belgrade /*eras*/,
    -
    34958  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    34959 };
    -
    34960 
    -
    34961 //---------------------------------------------------------------------------
    -
    34962 // Link name: Europe/Luxembourg -> Europe/Brussels
    -
    34963 //---------------------------------------------------------------------------
    -
    34964 
    -
    34965 static const char kZoneNameEurope_Luxembourg[] ACE_TIME_PROGMEM = "\x0b" "Luxembourg";
    -
    34966 
    -
    34967 const complete::Info::ZoneInfo kZoneEurope_Luxembourg ACE_TIME_PROGMEM = {
    -
    34968  kZoneNameEurope_Luxembourg /*name*/,
    -
    34969  0x1f8bc6ce /*zoneId*/,
    -
    34970  &kZoneContext /*zoneContext*/,
    -
    34971  9 /*numEras*/,
    -
    34972  kZoneEraEurope_Brussels /*eras*/,
    -
    34973  &kZoneEurope_Brussels /*targetInfo*/,
    -
    34974 };
    -
    34975 
    -
    34976 //---------------------------------------------------------------------------
    -
    34977 // Link name: Europe/Mariehamn -> Europe/Helsinki
    -
    34978 //---------------------------------------------------------------------------
    -
    34979 
    -
    34980 static const char kZoneNameEurope_Mariehamn[] ACE_TIME_PROGMEM = "\x0b" "Mariehamn";
    -
    34981 
    -
    34982 const complete::Info::ZoneInfo kZoneEurope_Mariehamn ACE_TIME_PROGMEM = {
    -
    34983  kZoneNameEurope_Mariehamn /*name*/,
    -
    34984  0x0caa6496 /*zoneId*/,
    -
    34985  &kZoneContext /*zoneContext*/,
    -
    34986  4 /*numEras*/,
    -
    34987  kZoneEraEurope_Helsinki /*eras*/,
    -
    34988  &kZoneEurope_Helsinki /*targetInfo*/,
    -
    34989 };
    -
    34990 
    -
    34991 //---------------------------------------------------------------------------
    -
    34992 // Link name: Europe/Monaco -> Europe/Paris
    -
    34993 //---------------------------------------------------------------------------
    -
    34994 
    -
    34995 static const char kZoneNameEurope_Monaco[] ACE_TIME_PROGMEM = "\x0b" "Monaco";
    -
    34996 
    -
    34997 const complete::Info::ZoneInfo kZoneEurope_Monaco ACE_TIME_PROGMEM = {
    -
    34998  kZoneNameEurope_Monaco /*name*/,
    -
    34999  0x5ebf9f01 /*zoneId*/,
    -
    35000  &kZoneContext /*zoneContext*/,
    -
    35001  7 /*numEras*/,
    -
    35002  kZoneEraEurope_Paris /*eras*/,
    -
    35003  &kZoneEurope_Paris /*targetInfo*/,
    -
    35004 };
    -
    35005 
    -
    35006 //---------------------------------------------------------------------------
    -
    35007 // Link name: Europe/Nicosia -> Asia/Nicosia
    -
    35008 //---------------------------------------------------------------------------
    -
    35009 
    -
    35010 static const char kZoneNameEurope_Nicosia[] ACE_TIME_PROGMEM = "\x0b" "Nicosia";
    -
    35011 
    -
    35012 const complete::Info::ZoneInfo kZoneEurope_Nicosia ACE_TIME_PROGMEM = {
    -
    35013  kZoneNameEurope_Nicosia /*name*/,
    -
    35014  0x74efab8a /*zoneId*/,
    -
    35015  &kZoneContext /*zoneContext*/,
    -
    35016  3 /*numEras*/,
    -
    35017  kZoneEraAsia_Nicosia /*eras*/,
    -
    35018  &kZoneAsia_Nicosia /*targetInfo*/,
    -
    35019 };
    -
    35020 
    -
    35021 //---------------------------------------------------------------------------
    -
    35022 // Link name: Europe/Oslo -> Europe/Berlin
    -
    35023 //---------------------------------------------------------------------------
    -
    35024 
    -
    35025 static const char kZoneNameEurope_Oslo[] ACE_TIME_PROGMEM = "\x0b" "Oslo";
    -
    35026 
    -
    35027 const complete::Info::ZoneInfo kZoneEurope_Oslo ACE_TIME_PROGMEM = {
    -
    35028  kZoneNameEurope_Oslo /*name*/,
    -
    35029  0xa2c3fba1 /*zoneId*/,
    -
    35030  &kZoneContext /*zoneContext*/,
    -
    35031  5 /*numEras*/,
    -
    35032  kZoneEraEurope_Berlin /*eras*/,
    -
    35033  &kZoneEurope_Berlin /*targetInfo*/,
    -
    35034 };
    -
    35035 
    -
    35036 //---------------------------------------------------------------------------
    -
    35037 // Link name: Europe/Podgorica -> Europe/Belgrade
    -
    35038 //---------------------------------------------------------------------------
    -
    35039 
    -
    35040 static const char kZoneNameEurope_Podgorica[] ACE_TIME_PROGMEM = "\x0b" "Podgorica";
    -
    35041 
    -
    35042 const complete::Info::ZoneInfo kZoneEurope_Podgorica ACE_TIME_PROGMEM = {
    -
    35043  kZoneNameEurope_Podgorica /*name*/,
    -
    35044  0x1c1a499c /*zoneId*/,
    -
    35045  &kZoneContext /*zoneContext*/,
    -
    35046  7 /*numEras*/,
    -
    35047  kZoneEraEurope_Belgrade /*eras*/,
    -
    35048  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    35049 };
    -
    35050 
    -
    35051 //---------------------------------------------------------------------------
    -
    35052 // Link name: Europe/San_Marino -> Europe/Rome
    -
    35053 //---------------------------------------------------------------------------
    -
    35054 
    -
    35055 static const char kZoneNameEurope_San_Marino[] ACE_TIME_PROGMEM = "\x0b" "San_Marino";
    -
    35056 
    -
    35057 const complete::Info::ZoneInfo kZoneEurope_San_Marino ACE_TIME_PROGMEM = {
    -
    35058  kZoneNameEurope_San_Marino /*name*/,
    -
    35059  0xcef7724b /*zoneId*/,
    -
    35060  &kZoneContext /*zoneContext*/,
    -
    35061  6 /*numEras*/,
    -
    35062  kZoneEraEurope_Rome /*eras*/,
    -
    35063  &kZoneEurope_Rome /*targetInfo*/,
    -
    35064 };
    -
    35065 
    -
    35066 //---------------------------------------------------------------------------
    -
    35067 // Link name: Europe/Sarajevo -> Europe/Belgrade
    -
    35068 //---------------------------------------------------------------------------
    -
    35069 
    -
    35070 static const char kZoneNameEurope_Sarajevo[] ACE_TIME_PROGMEM = "\x0b" "Sarajevo";
    -
    35071 
    -
    35072 const complete::Info::ZoneInfo kZoneEurope_Sarajevo ACE_TIME_PROGMEM = {
    -
    35073  kZoneNameEurope_Sarajevo /*name*/,
    -
    35074  0x6a576c3f /*zoneId*/,
    -
    35075  &kZoneContext /*zoneContext*/,
    -
    35076  7 /*numEras*/,
    -
    35077  kZoneEraEurope_Belgrade /*eras*/,
    -
    35078  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    35079 };
    -
    35080 
    -
    35081 //---------------------------------------------------------------------------
    -
    35082 // Link name: Europe/Skopje -> Europe/Belgrade
    -
    35083 //---------------------------------------------------------------------------
    -
    35084 
    -
    35085 static const char kZoneNameEurope_Skopje[] ACE_TIME_PROGMEM = "\x0b" "Skopje";
    -
    35086 
    -
    35087 const complete::Info::ZoneInfo kZoneEurope_Skopje ACE_TIME_PROGMEM = {
    -
    35088  kZoneNameEurope_Skopje /*name*/,
    -
    35089  0x6c76fdd0 /*zoneId*/,
    -
    35090  &kZoneContext /*zoneContext*/,
    -
    35091  7 /*numEras*/,
    -
    35092  kZoneEraEurope_Belgrade /*eras*/,
    -
    35093  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    35094 };
    -
    35095 
    -
    35096 //---------------------------------------------------------------------------
    -
    35097 // Link name: Europe/Stockholm -> Europe/Berlin
    -
    35098 //---------------------------------------------------------------------------
    -
    35099 
    -
    35100 static const char kZoneNameEurope_Stockholm[] ACE_TIME_PROGMEM = "\x0b" "Stockholm";
    -
    35101 
    -
    35102 const complete::Info::ZoneInfo kZoneEurope_Stockholm ACE_TIME_PROGMEM = {
    -
    35103  kZoneNameEurope_Stockholm /*name*/,
    -
    35104  0x5bf6fbb8 /*zoneId*/,
    -
    35105  &kZoneContext /*zoneContext*/,
    -
    35106  5 /*numEras*/,
    -
    35107  kZoneEraEurope_Berlin /*eras*/,
    -
    35108  &kZoneEurope_Berlin /*targetInfo*/,
    -
    35109 };
    -
    35110 
    -
    35111 //---------------------------------------------------------------------------
    -
    35112 // Link name: Europe/Tiraspol -> Europe/Chisinau
    -
    35113 //---------------------------------------------------------------------------
    -
    35114 
    -
    35115 static const char kZoneNameEurope_Tiraspol[] ACE_TIME_PROGMEM = "\x0b" "Tiraspol";
    -
    35116 
    -
    35117 const complete::Info::ZoneInfo kZoneEurope_Tiraspol ACE_TIME_PROGMEM = {
    -
    35118  kZoneNameEurope_Tiraspol /*name*/,
    -
    35119  0xbe704472 /*zoneId*/,
    -
    35120  &kZoneContext /*zoneContext*/,
    -
    35121  10 /*numEras*/,
    -
    35122  kZoneEraEurope_Chisinau /*eras*/,
    -
    35123  &kZoneEurope_Chisinau /*targetInfo*/,
    -
    35124 };
    -
    35125 
    -
    35126 //---------------------------------------------------------------------------
    -
    35127 // Link name: Europe/Uzhgorod -> Europe/Kyiv
    -
    35128 //---------------------------------------------------------------------------
    -
    35129 
    -
    35130 static const char kZoneNameEurope_Uzhgorod[] ACE_TIME_PROGMEM = "\x0b" "Uzhgorod";
    -
    35131 
    -
    35132 const complete::Info::ZoneInfo kZoneEurope_Uzhgorod ACE_TIME_PROGMEM = {
    -
    35133  kZoneNameEurope_Uzhgorod /*name*/,
    -
    35134  0xb066f5d6 /*zoneId*/,
    -
    35135  &kZoneContext /*zoneContext*/,
    -
    35136  9 /*numEras*/,
    -
    35137  kZoneEraEurope_Kyiv /*eras*/,
    -
    35138  &kZoneEurope_Kyiv /*targetInfo*/,
    -
    35139 };
    -
    35140 
    -
    35141 //---------------------------------------------------------------------------
    -
    35142 // Link name: Europe/Vaduz -> Europe/Zurich
    -
    35143 //---------------------------------------------------------------------------
    -
    35144 
    -
    35145 static const char kZoneNameEurope_Vaduz[] ACE_TIME_PROGMEM = "\x0b" "Vaduz";
    -
    35146 
    -
    35147 const complete::Info::ZoneInfo kZoneEurope_Vaduz ACE_TIME_PROGMEM = {
    -
    35148  kZoneNameEurope_Vaduz /*name*/,
    -
    35149  0xfbb81bae /*zoneId*/,
    -
    35150  &kZoneContext /*zoneContext*/,
    -
    35151  4 /*numEras*/,
    -
    35152  kZoneEraEurope_Zurich /*eras*/,
    -
    35153  &kZoneEurope_Zurich /*targetInfo*/,
    -
    35154 };
    -
    35155 
    -
    35156 //---------------------------------------------------------------------------
    -
    35157 // Link name: Europe/Vatican -> Europe/Rome
    -
    35158 //---------------------------------------------------------------------------
    -
    35159 
    -
    35160 static const char kZoneNameEurope_Vatican[] ACE_TIME_PROGMEM = "\x0b" "Vatican";
    -
    35161 
    -
    35162 const complete::Info::ZoneInfo kZoneEurope_Vatican ACE_TIME_PROGMEM = {
    -
    35163  kZoneNameEurope_Vatican /*name*/,
    -
    35164  0xcb485dca /*zoneId*/,
    -
    35165  &kZoneContext /*zoneContext*/,
    -
    35166  6 /*numEras*/,
    -
    35167  kZoneEraEurope_Rome /*eras*/,
    -
    35168  &kZoneEurope_Rome /*targetInfo*/,
    -
    35169 };
    -
    35170 
    -
    35171 //---------------------------------------------------------------------------
    -
    35172 // Link name: Europe/Zagreb -> Europe/Belgrade
    -
    35173 //---------------------------------------------------------------------------
    -
    35174 
    -
    35175 static const char kZoneNameEurope_Zagreb[] ACE_TIME_PROGMEM = "\x0b" "Zagreb";
    -
    35176 
    -
    35177 const complete::Info::ZoneInfo kZoneEurope_Zagreb ACE_TIME_PROGMEM = {
    -
    35178  kZoneNameEurope_Zagreb /*name*/,
    -
    35179  0x7c11c9ff /*zoneId*/,
    -
    35180  &kZoneContext /*zoneContext*/,
    -
    35181  7 /*numEras*/,
    -
    35182  kZoneEraEurope_Belgrade /*eras*/,
    -
    35183  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    35184 };
    -
    35185 
    -
    35186 //---------------------------------------------------------------------------
    -
    35187 // Link name: Europe/Zaporozhye -> Europe/Kyiv
    -
    35188 //---------------------------------------------------------------------------
    -
    35189 
    -
    35190 static const char kZoneNameEurope_Zaporozhye[] ACE_TIME_PROGMEM = "\x0b" "Zaporozhye";
    -
    35191 
    -
    35192 const complete::Info::ZoneInfo kZoneEurope_Zaporozhye ACE_TIME_PROGMEM = {
    -
    35193  kZoneNameEurope_Zaporozhye /*name*/,
    -
    35194  0xeab9767f /*zoneId*/,
    -
    35195  &kZoneContext /*zoneContext*/,
    -
    35196  9 /*numEras*/,
    -
    35197  kZoneEraEurope_Kyiv /*eras*/,
    -
    35198  &kZoneEurope_Kyiv /*targetInfo*/,
    -
    35199 };
    -
    35200 
    -
    35201 //---------------------------------------------------------------------------
    -
    35202 // Link name: GB -> Europe/London
    -
    35203 //---------------------------------------------------------------------------
    -
    35204 
    -
    35205 static const char kZoneNameGB[] ACE_TIME_PROGMEM = "GB";
    -
    35206 
    -
    35207 const complete::Info::ZoneInfo kZoneGB ACE_TIME_PROGMEM = {
    -
    35208  kZoneNameGB /*name*/,
    -
    35209  0x005973ae /*zoneId*/,
    -
    35210  &kZoneContext /*zoneContext*/,
    -
    35211  5 /*numEras*/,
    -
    35212  kZoneEraEurope_London /*eras*/,
    -
    35213  &kZoneEurope_London /*targetInfo*/,
    -
    35214 };
    -
    35215 
    -
    35216 //---------------------------------------------------------------------------
    -
    35217 // Link name: GB-Eire -> Europe/London
    -
    35218 //---------------------------------------------------------------------------
    -
    35219 
    -
    35220 static const char kZoneNameGB_Eire[] ACE_TIME_PROGMEM = "GB-Eire";
    -
    35221 
    -
    35222 const complete::Info::ZoneInfo kZoneGB_Eire ACE_TIME_PROGMEM = {
    -
    35223  kZoneNameGB_Eire /*name*/,
    -
    35224  0xfa70e300 /*zoneId*/,
    -
    35225  &kZoneContext /*zoneContext*/,
    -
    35226  5 /*numEras*/,
    -
    35227  kZoneEraEurope_London /*eras*/,
    -
    35228  &kZoneEurope_London /*targetInfo*/,
    -
    35229 };
    -
    35230 
    -
    35231 //---------------------------------------------------------------------------
    -
    35232 // Link name: GMT -> Etc/GMT
    -
    35233 //---------------------------------------------------------------------------
    -
    35234 
    -
    35235 static const char kZoneNameGMT[] ACE_TIME_PROGMEM = "GMT";
    -
    35236 
    -
    35237 const complete::Info::ZoneInfo kZoneGMT ACE_TIME_PROGMEM = {
    -
    35238  kZoneNameGMT /*name*/,
    -
    35239  0x0b87eb2d /*zoneId*/,
    -
    35240  &kZoneContext /*zoneContext*/,
    -
    35241  1 /*numEras*/,
    -
    35242  kZoneEraEtc_GMT /*eras*/,
    -
    35243  &kZoneEtc_GMT /*targetInfo*/,
    -
    35244 };
    -
    35245 
    -
    35246 //---------------------------------------------------------------------------
    -
    35247 // Link name: GMT+0 -> Etc/GMT
    -
    35248 //---------------------------------------------------------------------------
    -
    35249 
    -
    35250 static const char kZoneNameGMT_PLUS_0[] ACE_TIME_PROGMEM = "GMT+0";
    -
    35251 
    -
    35252 const complete::Info::ZoneInfo kZoneGMT_PLUS_0 ACE_TIME_PROGMEM = {
    -
    35253  kZoneNameGMT_PLUS_0 /*name*/,
    -
    35254  0x0d2f7028 /*zoneId*/,
    -
    35255  &kZoneContext /*zoneContext*/,
    -
    35256  1 /*numEras*/,
    -
    35257  kZoneEraEtc_GMT /*eras*/,
    -
    35258  &kZoneEtc_GMT /*targetInfo*/,
    -
    35259 };
    -
    35260 
    -
    35261 //---------------------------------------------------------------------------
    -
    35262 // Link name: GMT-0 -> Etc/GMT
    -
    35263 //---------------------------------------------------------------------------
    -
    35264 
    -
    35265 static const char kZoneNameGMT_0[] ACE_TIME_PROGMEM = "GMT-0";
    -
    35266 
    -
    35267 const complete::Info::ZoneInfo kZoneGMT_0 ACE_TIME_PROGMEM = {
    -
    35268  kZoneNameGMT_0 /*name*/,
    -
    35269  0x0d2f706a /*zoneId*/,
    -
    35270  &kZoneContext /*zoneContext*/,
    -
    35271  1 /*numEras*/,
    -
    35272  kZoneEraEtc_GMT /*eras*/,
    -
    35273  &kZoneEtc_GMT /*targetInfo*/,
    -
    35274 };
    -
    35275 
    -
    35276 //---------------------------------------------------------------------------
    -
    35277 // Link name: GMT0 -> Etc/GMT
    -
    35278 //---------------------------------------------------------------------------
    -
    35279 
    -
    35280 static const char kZoneNameGMT0[] ACE_TIME_PROGMEM = "GMT0";
    -
    35281 
    -
    35282 const complete::Info::ZoneInfo kZoneGMT0 ACE_TIME_PROGMEM = {
    -
    35283  kZoneNameGMT0 /*name*/,
    -
    35284  0x7c8550fd /*zoneId*/,
    -
    35285  &kZoneContext /*zoneContext*/,
    -
    35286  1 /*numEras*/,
    -
    35287  kZoneEraEtc_GMT /*eras*/,
    -
    35288  &kZoneEtc_GMT /*targetInfo*/,
    -
    35289 };
    -
    35290 
    -
    35291 //---------------------------------------------------------------------------
    -
    35292 // Link name: Greenwich -> Etc/GMT
    -
    35293 //---------------------------------------------------------------------------
    -
    35294 
    -
    35295 static const char kZoneNameGreenwich[] ACE_TIME_PROGMEM = "Greenwich";
    -
    35296 
    -
    35297 const complete::Info::ZoneInfo kZoneGreenwich ACE_TIME_PROGMEM = {
    -
    35298  kZoneNameGreenwich /*name*/,
    -
    35299  0xc84d4221 /*zoneId*/,
    -
    35300  &kZoneContext /*zoneContext*/,
    -
    35301  1 /*numEras*/,
    -
    35302  kZoneEraEtc_GMT /*eras*/,
    -
    35303  &kZoneEtc_GMT /*targetInfo*/,
    -
    35304 };
    -
    35305 
    -
    35306 //---------------------------------------------------------------------------
    -
    35307 // Link name: HST -> Pacific/Honolulu
    -
    35308 //---------------------------------------------------------------------------
    -
    35309 
    -
    35310 static const char kZoneNameHST[] ACE_TIME_PROGMEM = "HST";
    -
    35311 
    -
    35312 const complete::Info::ZoneInfo kZoneHST ACE_TIME_PROGMEM = {
    -
    35313  kZoneNameHST /*name*/,
    -
    35314  0x0b87f034 /*zoneId*/,
    -
    35315  &kZoneContext /*zoneContext*/,
    -
    35316  5 /*numEras*/,
    -
    35317  kZoneEraPacific_Honolulu /*eras*/,
    -
    35318  &kZonePacific_Honolulu /*targetInfo*/,
    -
    35319 };
    -
    35320 
    -
    35321 //---------------------------------------------------------------------------
    -
    35322 // Link name: Hongkong -> Asia/Hong_Kong
    -
    35323 //---------------------------------------------------------------------------
    -
    35324 
    -
    35325 static const char kZoneNameHongkong[] ACE_TIME_PROGMEM = "Hongkong";
    -
    35326 
    -
    35327 const complete::Info::ZoneInfo kZoneHongkong ACE_TIME_PROGMEM = {
    -
    35328  kZoneNameHongkong /*name*/,
    -
    35329  0x56d36560 /*zoneId*/,
    -
    35330  &kZoneContext /*zoneContext*/,
    -
    35331  6 /*numEras*/,
    -
    35332  kZoneEraAsia_Hong_Kong /*eras*/,
    -
    35333  &kZoneAsia_Hong_Kong /*targetInfo*/,
    -
    35334 };
    -
    35335 
    -
    35336 //---------------------------------------------------------------------------
    -
    35337 // Link name: Iceland -> Africa/Abidjan
    -
    35338 //---------------------------------------------------------------------------
    -
    35339 
    -
    35340 static const char kZoneNameIceland[] ACE_TIME_PROGMEM = "Iceland";
    -
    35341 
    -
    35342 const complete::Info::ZoneInfo kZoneIceland ACE_TIME_PROGMEM = {
    -
    35343  kZoneNameIceland /*name*/,
    -
    35344  0xe56a35b5 /*zoneId*/,
    -
    35345  &kZoneContext /*zoneContext*/,
    -
    35346  2 /*numEras*/,
    -
    35347  kZoneEraAfrica_Abidjan /*eras*/,
    -
    35348  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    35349 };
    -
    35350 
    -
    35351 //---------------------------------------------------------------------------
    -
    35352 // Link name: Indian/Antananarivo -> Africa/Nairobi
    -
    35353 //---------------------------------------------------------------------------
    -
    35354 
    -
    35355 static const char kZoneNameIndian_Antananarivo[] ACE_TIME_PROGMEM = "\x0c" "Antananarivo";
    -
    35356 
    -
    35357 const complete::Info::ZoneInfo kZoneIndian_Antananarivo ACE_TIME_PROGMEM = {
    -
    35358  kZoneNameIndian_Antananarivo /*name*/,
    -
    35359  0x9ebf5289 /*zoneId*/,
    -
    35360  &kZoneContext /*zoneContext*/,
    -
    35361  6 /*numEras*/,
    -
    35362  kZoneEraAfrica_Nairobi /*eras*/,
    -
    35363  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    35364 };
    -
    35365 
    -
    35366 //---------------------------------------------------------------------------
    -
    35367 // Link name: Indian/Christmas -> Asia/Bangkok
    -
    35368 //---------------------------------------------------------------------------
    -
    35369 
    -
    35370 static const char kZoneNameIndian_Christmas[] ACE_TIME_PROGMEM = "\x0c" "Christmas";
    -
    35371 
    -
    35372 const complete::Info::ZoneInfo kZoneIndian_Christmas ACE_TIME_PROGMEM = {
    -
    35373  kZoneNameIndian_Christmas /*name*/,
    -
    35374  0x68c207d5 /*zoneId*/,
    -
    35375  &kZoneContext /*zoneContext*/,
    -
    35376  3 /*numEras*/,
    -
    35377  kZoneEraAsia_Bangkok /*eras*/,
    -
    35378  &kZoneAsia_Bangkok /*targetInfo*/,
    -
    35379 };
    -
    35380 
    -
    35381 //---------------------------------------------------------------------------
    -
    35382 // Link name: Indian/Cocos -> Asia/Yangon
    -
    35383 //---------------------------------------------------------------------------
    -
    35384 
    -
    35385 static const char kZoneNameIndian_Cocos[] ACE_TIME_PROGMEM = "\x0c" "Cocos";
    -
    35386 
    -
    35387 const complete::Info::ZoneInfo kZoneIndian_Cocos ACE_TIME_PROGMEM = {
    -
    35388  kZoneNameIndian_Cocos /*name*/,
    -
    35389  0x021e86de /*zoneId*/,
    -
    35390  &kZoneContext /*zoneContext*/,
    -
    35391  5 /*numEras*/,
    -
    35392  kZoneEraAsia_Yangon /*eras*/,
    -
    35393  &kZoneAsia_Yangon /*targetInfo*/,
    -
    35394 };
    -
    35395 
    -
    35396 //---------------------------------------------------------------------------
    -
    35397 // Link name: Indian/Comoro -> Africa/Nairobi
    -
    35398 //---------------------------------------------------------------------------
    -
    35399 
    -
    35400 static const char kZoneNameIndian_Comoro[] ACE_TIME_PROGMEM = "\x0c" "Comoro";
    -
    35401 
    -
    35402 const complete::Info::ZoneInfo kZoneIndian_Comoro ACE_TIME_PROGMEM = {
    -
    35403  kZoneNameIndian_Comoro /*name*/,
    -
    35404  0x45f4deb6 /*zoneId*/,
    -
    35405  &kZoneContext /*zoneContext*/,
    -
    35406  6 /*numEras*/,
    -
    35407  kZoneEraAfrica_Nairobi /*eras*/,
    -
    35408  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    35409 };
    -
    35410 
    -
    35411 //---------------------------------------------------------------------------
    -
    35412 // Link name: Indian/Kerguelen -> Indian/Maldives
    -
    35413 //---------------------------------------------------------------------------
    -
    35414 
    -
    35415 static const char kZoneNameIndian_Kerguelen[] ACE_TIME_PROGMEM = "\x0c" "Kerguelen";
    -
    35416 
    -
    35417 const complete::Info::ZoneInfo kZoneIndian_Kerguelen ACE_TIME_PROGMEM = {
    -
    35418  kZoneNameIndian_Kerguelen /*name*/,
    -
    35419  0x4351b389 /*zoneId*/,
    -
    35420  &kZoneContext /*zoneContext*/,
    -
    35421  3 /*numEras*/,
    -
    35422  kZoneEraIndian_Maldives /*eras*/,
    -
    35423  &kZoneIndian_Maldives /*targetInfo*/,
    -
    35424 };
    -
    35425 
    -
    35426 //---------------------------------------------------------------------------
    -
    35427 // Link name: Indian/Mahe -> Asia/Dubai
    -
    35428 //---------------------------------------------------------------------------
    -
    35429 
    -
    35430 static const char kZoneNameIndian_Mahe[] ACE_TIME_PROGMEM = "\x0c" "Mahe";
    -
    35431 
    -
    35432 const complete::Info::ZoneInfo kZoneIndian_Mahe ACE_TIME_PROGMEM = {
    -
    35433  kZoneNameIndian_Mahe /*name*/,
    -
    35434  0x45e725e2 /*zoneId*/,
    -
    35435  &kZoneContext /*zoneContext*/,
    -
    35436  2 /*numEras*/,
    -
    35437  kZoneEraAsia_Dubai /*eras*/,
    -
    35438  &kZoneAsia_Dubai /*targetInfo*/,
    -
    35439 };
    -
    35440 
    -
    35441 //---------------------------------------------------------------------------
    -
    35442 // Link name: Indian/Mayotte -> Africa/Nairobi
    -
    35443 //---------------------------------------------------------------------------
    -
    35444 
    -
    35445 static const char kZoneNameIndian_Mayotte[] ACE_TIME_PROGMEM = "\x0c" "Mayotte";
    -
    35446 
    -
    35447 const complete::Info::ZoneInfo kZoneIndian_Mayotte ACE_TIME_PROGMEM = {
    -
    35448  kZoneNameIndian_Mayotte /*name*/,
    -
    35449  0xe6880bca /*zoneId*/,
    -
    35450  &kZoneContext /*zoneContext*/,
    -
    35451  6 /*numEras*/,
    -
    35452  kZoneEraAfrica_Nairobi /*eras*/,
    -
    35453  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    35454 };
    -
    35455 
    -
    35456 //---------------------------------------------------------------------------
    -
    35457 // Link name: Indian/Reunion -> Asia/Dubai
    -
    35458 //---------------------------------------------------------------------------
    -
    35459 
    -
    35460 static const char kZoneNameIndian_Reunion[] ACE_TIME_PROGMEM = "\x0c" "Reunion";
    -
    35461 
    -
    35462 const complete::Info::ZoneInfo kZoneIndian_Reunion ACE_TIME_PROGMEM = {
    -
    35463  kZoneNameIndian_Reunion /*name*/,
    -
    35464  0x7076c047 /*zoneId*/,
    -
    35465  &kZoneContext /*zoneContext*/,
    -
    35466  2 /*numEras*/,
    -
    35467  kZoneEraAsia_Dubai /*eras*/,
    -
    35468  &kZoneAsia_Dubai /*targetInfo*/,
    -
    35469 };
    -
    35470 
    -
    35471 //---------------------------------------------------------------------------
    -
    35472 // Link name: Iran -> Asia/Tehran
    -
    35473 //---------------------------------------------------------------------------
    -
    35474 
    -
    35475 static const char kZoneNameIran[] ACE_TIME_PROGMEM = "Iran";
    -
    35476 
    -
    35477 const complete::Info::ZoneInfo kZoneIran ACE_TIME_PROGMEM = {
    -
    35478  kZoneNameIran /*name*/,
    -
    35479  0x7c87090f /*zoneId*/,
    -
    35480  &kZoneContext /*zoneContext*/,
    -
    35481  5 /*numEras*/,
    -
    35482  kZoneEraAsia_Tehran /*eras*/,
    -
    35483  &kZoneAsia_Tehran /*targetInfo*/,
    -
    35484 };
    -
    35485 
    -
    35486 //---------------------------------------------------------------------------
    -
    35487 // Link name: Israel -> Asia/Jerusalem
    -
    35488 //---------------------------------------------------------------------------
    -
    35489 
    -
    35490 static const char kZoneNameIsrael[] ACE_TIME_PROGMEM = "Israel";
    -
    35491 
    -
    35492 const complete::Info::ZoneInfo kZoneIsrael ACE_TIME_PROGMEM = {
    -
    35493  kZoneNameIsrael /*name*/,
    -
    35494  0xba88c9e5 /*zoneId*/,
    -
    35495  &kZoneContext /*zoneContext*/,
    -
    35496  3 /*numEras*/,
    -
    35497  kZoneEraAsia_Jerusalem /*eras*/,
    -
    35498  &kZoneAsia_Jerusalem /*targetInfo*/,
    -
    35499 };
    -
    35500 
    -
    35501 //---------------------------------------------------------------------------
    -
    35502 // Link name: Jamaica -> America/Jamaica
    -
    35503 //---------------------------------------------------------------------------
    -
    35504 
    -
    35505 static const char kZoneNameJamaica[] ACE_TIME_PROGMEM = "Jamaica";
    -
    35506 
    -
    35507 const complete::Info::ZoneInfo kZoneJamaica ACE_TIME_PROGMEM = {
    -
    35508  kZoneNameJamaica /*name*/,
    -
    35509  0x2e44fdab /*zoneId*/,
    -
    35510  &kZoneContext /*zoneContext*/,
    -
    35511  5 /*numEras*/,
    -
    35512  kZoneEraAmerica_Jamaica /*eras*/,
    -
    35513  &kZoneAmerica_Jamaica /*targetInfo*/,
    -
    35514 };
    -
    35515 
    -
    35516 //---------------------------------------------------------------------------
    -
    35517 // Link name: Japan -> Asia/Tokyo
    -
    35518 //---------------------------------------------------------------------------
    -
    35519 
    -
    35520 static const char kZoneNameJapan[] ACE_TIME_PROGMEM = "Japan";
    -
    35521 
    -
    35522 const complete::Info::ZoneInfo kZoneJapan ACE_TIME_PROGMEM = {
    -
    35523  kZoneNameJapan /*name*/,
    -
    35524  0x0d712f8f /*zoneId*/,
    -
    35525  &kZoneContext /*zoneContext*/,
    -
    35526  2 /*numEras*/,
    -
    35527  kZoneEraAsia_Tokyo /*eras*/,
    -
    35528  &kZoneAsia_Tokyo /*targetInfo*/,
    -
    35529 };
    -
    35530 
    -
    35531 //---------------------------------------------------------------------------
    -
    35532 // Link name: Kwajalein -> Pacific/Kwajalein
    -
    35533 //---------------------------------------------------------------------------
    -
    35534 
    -
    35535 static const char kZoneNameKwajalein[] ACE_TIME_PROGMEM = "Kwajalein";
    -
    35536 
    -
    35537 const complete::Info::ZoneInfo kZoneKwajalein ACE_TIME_PROGMEM = {
    -
    35538  kZoneNameKwajalein /*name*/,
    -
    35539  0x0e57afbb /*zoneId*/,
    -
    35540  &kZoneContext /*zoneContext*/,
    -
    35541  7 /*numEras*/,
    -
    35542  kZoneEraPacific_Kwajalein /*eras*/,
    -
    35543  &kZonePacific_Kwajalein /*targetInfo*/,
    -
    35544 };
    -
    35545 
    -
    35546 //---------------------------------------------------------------------------
    -
    35547 // Link name: Libya -> Africa/Tripoli
    -
    35548 //---------------------------------------------------------------------------
    -
    35549 
    -
    35550 static const char kZoneNameLibya[] ACE_TIME_PROGMEM = "Libya";
    -
    35551 
    -
    35552 const complete::Info::ZoneInfo kZoneLibya ACE_TIME_PROGMEM = {
    -
    35553  kZoneNameLibya /*name*/,
    -
    35554  0x0d998b16 /*zoneId*/,
    -
    35555  &kZoneContext /*zoneContext*/,
    -
    35556  9 /*numEras*/,
    -
    35557  kZoneEraAfrica_Tripoli /*eras*/,
    -
    35558  &kZoneAfrica_Tripoli /*targetInfo*/,
    -
    35559 };
    -
    35560 
    -
    35561 //---------------------------------------------------------------------------
    -
    35562 // Link name: MET -> Europe/Brussels
    -
    35563 //---------------------------------------------------------------------------
    -
    35564 
    -
    35565 static const char kZoneNameMET[] ACE_TIME_PROGMEM = "MET";
    -
    35566 
    -
    35567 const complete::Info::ZoneInfo kZoneMET ACE_TIME_PROGMEM = {
    -
    35568  kZoneNameMET /*name*/,
    -
    35569  0x0b8803ab /*zoneId*/,
    -
    35570  &kZoneContext /*zoneContext*/,
    -
    35571  9 /*numEras*/,
    -
    35572  kZoneEraEurope_Brussels /*eras*/,
    -
    35573  &kZoneEurope_Brussels /*targetInfo*/,
    -
    35574 };
    -
    35575 
    -
    35576 //---------------------------------------------------------------------------
    -
    35577 // Link name: MST -> America/Phoenix
    -
    35578 //---------------------------------------------------------------------------
    -
    35579 
    -
    35580 static const char kZoneNameMST[] ACE_TIME_PROGMEM = "MST";
    -
    35581 
    -
    35582 const complete::Info::ZoneInfo kZoneMST ACE_TIME_PROGMEM = {
    -
    35583  kZoneNameMST /*name*/,
    -
    35584  0x0b880579 /*zoneId*/,
    -
    35585  &kZoneContext /*zoneContext*/,
    -
    35586  7 /*numEras*/,
    -
    35587  kZoneEraAmerica_Phoenix /*eras*/,
    -
    35588  &kZoneAmerica_Phoenix /*targetInfo*/,
    -
    35589 };
    -
    35590 
    -
    35591 //---------------------------------------------------------------------------
    -
    35592 // Link name: MST7MDT -> America/Denver
    -
    35593 //---------------------------------------------------------------------------
    -
    35594 
    -
    35595 static const char kZoneNameMST7MDT[] ACE_TIME_PROGMEM = "MST7MDT";
    -
    35596 
    -
    35597 const complete::Info::ZoneInfo kZoneMST7MDT ACE_TIME_PROGMEM = {
    -
    35598  kZoneNameMST7MDT /*name*/,
    -
    35599  0xf2af9375 /*zoneId*/,
    -
    35600  &kZoneContext /*zoneContext*/,
    -
    35601  6 /*numEras*/,
    -
    35602  kZoneEraAmerica_Denver /*eras*/,
    -
    35603  &kZoneAmerica_Denver /*targetInfo*/,
    -
    35604 };
    -
    35605 
    -
    35606 //---------------------------------------------------------------------------
    -
    35607 // Link name: Mexico/BajaNorte -> America/Tijuana
    -
    35608 //---------------------------------------------------------------------------
    -
    35609 
    -
    35610 static const char kZoneNameMexico_BajaNorte[] ACE_TIME_PROGMEM = "Mexico/BajaNorte";
    -
    35611 
    -
    35612 const complete::Info::ZoneInfo kZoneMexico_BajaNorte ACE_TIME_PROGMEM = {
    -
    35613  kZoneNameMexico_BajaNorte /*name*/,
    -
    35614  0xfcf7150f /*zoneId*/,
    -
    35615  &kZoneContext /*zoneContext*/,
    -
    35616  25 /*numEras*/,
    -
    35617  kZoneEraAmerica_Tijuana /*eras*/,
    -
    35618  &kZoneAmerica_Tijuana /*targetInfo*/,
    -
    35619 };
    -
    35620 
    -
    35621 //---------------------------------------------------------------------------
    -
    35622 // Link name: Mexico/BajaSur -> America/Mazatlan
    -
    35623 //---------------------------------------------------------------------------
    -
    35624 
    -
    35625 static const char kZoneNameMexico_BajaSur[] ACE_TIME_PROGMEM = "Mexico/BajaSur";
    -
    35626 
    -
    35627 const complete::Info::ZoneInfo kZoneMexico_BajaSur ACE_TIME_PROGMEM = {
    -
    35628  kZoneNameMexico_BajaSur /*name*/,
    -
    35629  0x08ee3641 /*zoneId*/,
    -
    35630  &kZoneContext /*zoneContext*/,
    -
    35631  7 /*numEras*/,
    -
    35632  kZoneEraAmerica_Mazatlan /*eras*/,
    -
    35633  &kZoneAmerica_Mazatlan /*targetInfo*/,
    -
    35634 };
    -
    35635 
    -
    35636 //---------------------------------------------------------------------------
    -
    35637 // Link name: Mexico/General -> America/Mexico_City
    -
    35638 //---------------------------------------------------------------------------
    -
    35639 
    -
    35640 static const char kZoneNameMexico_General[] ACE_TIME_PROGMEM = "Mexico/General";
    -
    35641 
    -
    35642 const complete::Info::ZoneInfo kZoneMexico_General ACE_TIME_PROGMEM = {
    -
    35643  kZoneNameMexico_General /*name*/,
    -
    35644  0x93711d57 /*zoneId*/,
    -
    35645  &kZoneContext /*zoneContext*/,
    -
    35646  7 /*numEras*/,
    -
    35647  kZoneEraAmerica_Mexico_City /*eras*/,
    -
    35648  &kZoneAmerica_Mexico_City /*targetInfo*/,
    -
    35649 };
    -
    35650 
    -
    35651 //---------------------------------------------------------------------------
    -
    35652 // Link name: NZ -> Pacific/Auckland
    -
    35653 //---------------------------------------------------------------------------
    -
    35654 
    -
    35655 static const char kZoneNameNZ[] ACE_TIME_PROGMEM = "NZ";
    -
    35656 
    -
    35657 const complete::Info::ZoneInfo kZoneNZ ACE_TIME_PROGMEM = {
    -
    35658  kZoneNameNZ /*name*/,
    -
    35659  0x005974ad /*zoneId*/,
    -
    35660  &kZoneContext /*zoneContext*/,
    -
    35661  3 /*numEras*/,
    -
    35662  kZoneEraPacific_Auckland /*eras*/,
    -
    35663  &kZonePacific_Auckland /*targetInfo*/,
    -
    35664 };
    -
    35665 
    -
    35666 //---------------------------------------------------------------------------
    -
    35667 // Link name: NZ-CHAT -> Pacific/Chatham
    -
    35668 //---------------------------------------------------------------------------
    -
    35669 
    -
    35670 static const char kZoneNameNZ_CHAT[] ACE_TIME_PROGMEM = "NZ-CHAT";
    -
    35671 
    -
    35672 const complete::Info::ZoneInfo kZoneNZ_CHAT ACE_TIME_PROGMEM = {
    -
    35673  kZoneNameNZ_CHAT /*name*/,
    -
    35674  0x4d42afda /*zoneId*/,
    -
    35675  &kZoneContext /*zoneContext*/,
    -
    35676  3 /*numEras*/,
    -
    35677  kZoneEraPacific_Chatham /*eras*/,
    -
    35678  &kZonePacific_Chatham /*targetInfo*/,
    -
    35679 };
    -
    35680 
    -
    35681 //---------------------------------------------------------------------------
    -
    35682 // Link name: Navajo -> America/Denver
    -
    35683 //---------------------------------------------------------------------------
    -
    35684 
    -
    35685 static const char kZoneNameNavajo[] ACE_TIME_PROGMEM = "Navajo";
    -
    35686 
    -
    35687 const complete::Info::ZoneInfo kZoneNavajo ACE_TIME_PROGMEM = {
    -
    35688  kZoneNameNavajo /*name*/,
    -
    35689  0xc4ef0e24 /*zoneId*/,
    -
    35690  &kZoneContext /*zoneContext*/,
    -
    35691  6 /*numEras*/,
    -
    35692  kZoneEraAmerica_Denver /*eras*/,
    -
    35693  &kZoneAmerica_Denver /*targetInfo*/,
    -
    35694 };
    -
    35695 
    -
    35696 //---------------------------------------------------------------------------
    -
    35697 // Link name: PRC -> Asia/Shanghai
    -
    35698 //---------------------------------------------------------------------------
    -
    35699 
    -
    35700 static const char kZoneNamePRC[] ACE_TIME_PROGMEM = "PRC";
    -
    35701 
    -
    35702 const complete::Info::ZoneInfo kZonePRC ACE_TIME_PROGMEM = {
    -
    35703  kZoneNamePRC /*name*/,
    -
    35704  0x0b88120a /*zoneId*/,
    -
    35705  &kZoneContext /*zoneContext*/,
    -
    35706  3 /*numEras*/,
    -
    35707  kZoneEraAsia_Shanghai /*eras*/,
    -
    35708  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    35709 };
    -
    35710 
    -
    35711 //---------------------------------------------------------------------------
    -
    35712 // Link name: PST8PDT -> America/Los_Angeles
    -
    35713 //---------------------------------------------------------------------------
    -
    35714 
    -
    35715 static const char kZoneNamePST8PDT[] ACE_TIME_PROGMEM = "PST8PDT";
    -
    35716 
    -
    35717 const complete::Info::ZoneInfo kZonePST8PDT ACE_TIME_PROGMEM = {
    -
    35718  kZoneNamePST8PDT /*name*/,
    -
    35719  0xd99ee2dc /*zoneId*/,
    -
    35720  &kZoneContext /*zoneContext*/,
    -
    35721  4 /*numEras*/,
    -
    35722  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    35723  &kZoneAmerica_Los_Angeles /*targetInfo*/,
    -
    35724 };
    -
    35725 
    -
    35726 //---------------------------------------------------------------------------
    -
    35727 // Link name: Pacific/Chuuk -> Pacific/Port_Moresby
    -
    35728 //---------------------------------------------------------------------------
    -
    35729 
    -
    35730 static const char kZoneNamePacific_Chuuk[] ACE_TIME_PROGMEM = "\x0e" "Chuuk";
    -
    35731 
    -
    35732 const complete::Info::ZoneInfo kZonePacific_Chuuk ACE_TIME_PROGMEM = {
    -
    35733  kZoneNamePacific_Chuuk /*name*/,
    -
    35734  0x8a090b23 /*zoneId*/,
    -
    35735  &kZoneContext /*zoneContext*/,
    -
    35736  3 /*numEras*/,
    -
    35737  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    35738  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    35739 };
    -
    35740 
    -
    35741 //---------------------------------------------------------------------------
    -
    35742 // Link name: Pacific/Enderbury -> Pacific/Kanton
    -
    35743 //---------------------------------------------------------------------------
    -
    35744 
    -
    35745 static const char kZoneNamePacific_Enderbury[] ACE_TIME_PROGMEM = "\x0e" "Enderbury";
    -
    35746 
    -
    35747 const complete::Info::ZoneInfo kZonePacific_Enderbury ACE_TIME_PROGMEM = {
    -
    35748  kZoneNamePacific_Enderbury /*name*/,
    -
    35749  0x61599a93 /*zoneId*/,
    -
    35750  &kZoneContext /*zoneContext*/,
    -
    35751  4 /*numEras*/,
    -
    35752  kZoneEraPacific_Kanton /*eras*/,
    -
    35753  &kZonePacific_Kanton /*targetInfo*/,
    -
    35754 };
    -
    35755 
    -
    35756 //---------------------------------------------------------------------------
    -
    35757 // Link name: Pacific/Funafuti -> Pacific/Tarawa
    -
    35758 //---------------------------------------------------------------------------
    -
    35759 
    -
    35760 static const char kZoneNamePacific_Funafuti[] ACE_TIME_PROGMEM = "\x0e" "Funafuti";
    -
    35761 
    -
    35762 const complete::Info::ZoneInfo kZonePacific_Funafuti ACE_TIME_PROGMEM = {
    -
    35763  kZoneNamePacific_Funafuti /*name*/,
    -
    35764  0xdb402d65 /*zoneId*/,
    -
    35765  &kZoneContext /*zoneContext*/,
    -
    35766  2 /*numEras*/,
    -
    35767  kZoneEraPacific_Tarawa /*eras*/,
    -
    35768  &kZonePacific_Tarawa /*targetInfo*/,
    -
    35769 };
    -
    35770 
    -
    35771 //---------------------------------------------------------------------------
    -
    35772 // Link name: Pacific/Johnston -> Pacific/Honolulu
    -
    35773 //---------------------------------------------------------------------------
    -
    35774 
    -
    35775 static const char kZoneNamePacific_Johnston[] ACE_TIME_PROGMEM = "\x0e" "Johnston";
    -
    35776 
    -
    35777 const complete::Info::ZoneInfo kZonePacific_Johnston ACE_TIME_PROGMEM = {
    -
    35778  kZoneNamePacific_Johnston /*name*/,
    -
    35779  0xb15d7b36 /*zoneId*/,
    -
    35780  &kZoneContext /*zoneContext*/,
    -
    35781  5 /*numEras*/,
    -
    35782  kZoneEraPacific_Honolulu /*eras*/,
    -
    35783  &kZonePacific_Honolulu /*targetInfo*/,
    -
    35784 };
    -
    35785 
    -
    35786 //---------------------------------------------------------------------------
    -
    35787 // Link name: Pacific/Majuro -> Pacific/Tarawa
    -
    35788 //---------------------------------------------------------------------------
    -
    35789 
    -
    35790 static const char kZoneNamePacific_Majuro[] ACE_TIME_PROGMEM = "\x0e" "Majuro";
    -
    35791 
    -
    35792 const complete::Info::ZoneInfo kZonePacific_Majuro ACE_TIME_PROGMEM = {
    -
    35793  kZoneNamePacific_Majuro /*name*/,
    -
    35794  0xe1f95371 /*zoneId*/,
    -
    35795  &kZoneContext /*zoneContext*/,
    -
    35796  2 /*numEras*/,
    -
    35797  kZoneEraPacific_Tarawa /*eras*/,
    -
    35798  &kZonePacific_Tarawa /*targetInfo*/,
    -
    35799 };
    -
    35800 
    -
    35801 //---------------------------------------------------------------------------
    -
    35802 // Link name: Pacific/Midway -> Pacific/Pago_Pago
    -
    35803 //---------------------------------------------------------------------------
    -
    35804 
    -
    35805 static const char kZoneNamePacific_Midway[] ACE_TIME_PROGMEM = "\x0e" "Midway";
    -
    35806 
    -
    35807 const complete::Info::ZoneInfo kZonePacific_Midway ACE_TIME_PROGMEM = {
    -
    35808  kZoneNamePacific_Midway /*name*/,
    -
    35809  0xe286d38e /*zoneId*/,
    -
    35810  &kZoneContext /*zoneContext*/,
    -
    35811  3 /*numEras*/,
    -
    35812  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    35813  &kZonePacific_Pago_Pago /*targetInfo*/,
    -
    35814 };
    -
    35815 
    -
    35816 //---------------------------------------------------------------------------
    -
    35817 // Link name: Pacific/Pohnpei -> Pacific/Guadalcanal
    -
    35818 //---------------------------------------------------------------------------
    -
    35819 
    -
    35820 static const char kZoneNamePacific_Pohnpei[] ACE_TIME_PROGMEM = "\x0e" "Pohnpei";
    -
    35821 
    -
    35822 const complete::Info::ZoneInfo kZonePacific_Pohnpei ACE_TIME_PROGMEM = {
    -
    35823  kZoneNamePacific_Pohnpei /*name*/,
    -
    35824  0x28929f96 /*zoneId*/,
    -
    35825  &kZoneContext /*zoneContext*/,
    -
    35826  2 /*numEras*/,
    -
    35827  kZoneEraPacific_Guadalcanal /*eras*/,
    -
    35828  &kZonePacific_Guadalcanal /*targetInfo*/,
    -
    35829 };
    -
    35830 
    -
    35831 //---------------------------------------------------------------------------
    -
    35832 // Link name: Pacific/Ponape -> Pacific/Guadalcanal
    -
    35833 //---------------------------------------------------------------------------
    -
    35834 
    -
    35835 static const char kZoneNamePacific_Ponape[] ACE_TIME_PROGMEM = "\x0e" "Ponape";
    -
    35836 
    -
    35837 const complete::Info::ZoneInfo kZonePacific_Ponape ACE_TIME_PROGMEM = {
    -
    35838  kZoneNamePacific_Ponape /*name*/,
    -
    35839  0xe9f80086 /*zoneId*/,
    -
    35840  &kZoneContext /*zoneContext*/,
    -
    35841  2 /*numEras*/,
    -
    35842  kZoneEraPacific_Guadalcanal /*eras*/,
    -
    35843  &kZonePacific_Guadalcanal /*targetInfo*/,
    -
    35844 };
    -
    35845 
    -
    35846 //---------------------------------------------------------------------------
    -
    35847 // Link name: Pacific/Saipan -> Pacific/Guam
    -
    35848 //---------------------------------------------------------------------------
    -
    35849 
    -
    35850 static const char kZoneNamePacific_Saipan[] ACE_TIME_PROGMEM = "\x0e" "Saipan";
    -
    35851 
    -
    35852 const complete::Info::ZoneInfo kZonePacific_Saipan ACE_TIME_PROGMEM = {
    -
    35853  kZoneNamePacific_Saipan /*name*/,
    -
    35854  0xeff7a35f /*zoneId*/,
    -
    35855  &kZoneContext /*zoneContext*/,
    -
    35856  6 /*numEras*/,
    -
    35857  kZoneEraPacific_Guam /*eras*/,
    -
    35858  &kZonePacific_Guam /*targetInfo*/,
    -
    35859 };
    -
    35860 
    -
    35861 //---------------------------------------------------------------------------
    -
    35862 // Link name: Pacific/Samoa -> Pacific/Pago_Pago
    -
    35863 //---------------------------------------------------------------------------
    -
    35864 
    -
    35865 static const char kZoneNamePacific_Samoa[] ACE_TIME_PROGMEM = "\x0e" "Samoa";
    -
    35866 
    -
    35867 const complete::Info::ZoneInfo kZonePacific_Samoa ACE_TIME_PROGMEM = {
    -
    35868  kZoneNamePacific_Samoa /*name*/,
    -
    35869  0x8b2699b4 /*zoneId*/,
    -
    35870  &kZoneContext /*zoneContext*/,
    -
    35871  3 /*numEras*/,
    -
    35872  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    35873  &kZonePacific_Pago_Pago /*targetInfo*/,
    -
    35874 };
    -
    35875 
    -
    35876 //---------------------------------------------------------------------------
    -
    35877 // Link name: Pacific/Truk -> Pacific/Port_Moresby
    -
    35878 //---------------------------------------------------------------------------
    -
    35879 
    -
    35880 static const char kZoneNamePacific_Truk[] ACE_TIME_PROGMEM = "\x0e" "Truk";
    -
    35881 
    -
    35882 const complete::Info::ZoneInfo kZonePacific_Truk ACE_TIME_PROGMEM = {
    -
    35883  kZoneNamePacific_Truk /*name*/,
    -
    35884  0x234010a9 /*zoneId*/,
    -
    35885  &kZoneContext /*zoneContext*/,
    -
    35886  3 /*numEras*/,
    -
    35887  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    35888  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    35889 };
    -
    35890 
    -
    35891 //---------------------------------------------------------------------------
    -
    35892 // Link name: Pacific/Wake -> Pacific/Tarawa
    -
    35893 //---------------------------------------------------------------------------
    -
    35894 
    -
    35895 static const char kZoneNamePacific_Wake[] ACE_TIME_PROGMEM = "\x0e" "Wake";
    -
    35896 
    -
    35897 const complete::Info::ZoneInfo kZonePacific_Wake ACE_TIME_PROGMEM = {
    -
    35898  kZoneNamePacific_Wake /*name*/,
    -
    35899  0x23416c2b /*zoneId*/,
    -
    35900  &kZoneContext /*zoneContext*/,
    -
    35901  2 /*numEras*/,
    -
    35902  kZoneEraPacific_Tarawa /*eras*/,
    -
    35903  &kZonePacific_Tarawa /*targetInfo*/,
    -
    35904 };
    -
    35905 
    -
    35906 //---------------------------------------------------------------------------
    -
    35907 // Link name: Pacific/Wallis -> Pacific/Tarawa
    -
    35908 //---------------------------------------------------------------------------
    -
    35909 
    -
    35910 static const char kZoneNamePacific_Wallis[] ACE_TIME_PROGMEM = "\x0e" "Wallis";
    -
    35911 
    -
    35912 const complete::Info::ZoneInfo kZonePacific_Wallis ACE_TIME_PROGMEM = {
    -
    35913  kZoneNamePacific_Wallis /*name*/,
    -
    35914  0xf94ddb0f /*zoneId*/,
    -
    35915  &kZoneContext /*zoneContext*/,
    -
    35916  2 /*numEras*/,
    -
    35917  kZoneEraPacific_Tarawa /*eras*/,
    -
    35918  &kZonePacific_Tarawa /*targetInfo*/,
    -
    35919 };
    -
    35920 
    -
    35921 //---------------------------------------------------------------------------
    -
    35922 // Link name: Pacific/Yap -> Pacific/Port_Moresby
    -
    35923 //---------------------------------------------------------------------------
    -
    35924 
    -
    35925 static const char kZoneNamePacific_Yap[] ACE_TIME_PROGMEM = "\x0e" "Yap";
    -
    35926 
    -
    35927 const complete::Info::ZoneInfo kZonePacific_Yap ACE_TIME_PROGMEM = {
    -
    35928  kZoneNamePacific_Yap /*name*/,
    -
    35929  0xbb40138d /*zoneId*/,
    -
    35930  &kZoneContext /*zoneContext*/,
    -
    35931  3 /*numEras*/,
    -
    35932  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    35933  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    35934 };
    -
    35935 
    -
    35936 //---------------------------------------------------------------------------
    -
    35937 // Link name: Poland -> Europe/Warsaw
    -
    35938 //---------------------------------------------------------------------------
    -
    35939 
    -
    35940 static const char kZoneNamePoland[] ACE_TIME_PROGMEM = "Poland";
    -
    35941 
    -
    35942 const complete::Info::ZoneInfo kZonePoland ACE_TIME_PROGMEM = {
    -
    35943  kZoneNamePoland /*name*/,
    -
    35944  0xca913b23 /*zoneId*/,
    -
    35945  &kZoneContext /*zoneContext*/,
    -
    35946  9 /*numEras*/,
    -
    35947  kZoneEraEurope_Warsaw /*eras*/,
    -
    35948  &kZoneEurope_Warsaw /*targetInfo*/,
    -
    35949 };
    -
    35950 
    -
    35951 //---------------------------------------------------------------------------
    -
    35952 // Link name: Portugal -> Europe/Lisbon
    -
    35953 //---------------------------------------------------------------------------
    -
    35954 
    -
    35955 static const char kZoneNamePortugal[] ACE_TIME_PROGMEM = "Portugal";
    -
    35956 
    -
    35957 const complete::Info::ZoneInfo kZonePortugal ACE_TIME_PROGMEM = {
    -
    35958  kZoneNamePortugal /*name*/,
    -
    35959  0xc3274593 /*zoneId*/,
    -
    35960  &kZoneContext /*zoneContext*/,
    -
    35961  8 /*numEras*/,
    -
    35962  kZoneEraEurope_Lisbon /*eras*/,
    -
    35963  &kZoneEurope_Lisbon /*targetInfo*/,
    -
    35964 };
    -
    35965 
    -
    35966 //---------------------------------------------------------------------------
    -
    35967 // Link name: ROC -> Asia/Taipei
    -
    35968 //---------------------------------------------------------------------------
    -
    35969 
    -
    35970 static const char kZoneNameROC[] ACE_TIME_PROGMEM = "ROC";
    -
    35971 
    -
    35972 const complete::Info::ZoneInfo kZoneROC ACE_TIME_PROGMEM = {
    -
    35973  kZoneNameROC /*name*/,
    -
    35974  0x0b881a29 /*zoneId*/,
    -
    35975  &kZoneContext /*zoneContext*/,
    -
    35976  4 /*numEras*/,
    -
    35977  kZoneEraAsia_Taipei /*eras*/,
    -
    35978  &kZoneAsia_Taipei /*targetInfo*/,
    -
    35979 };
    -
    35980 
    -
    35981 //---------------------------------------------------------------------------
    -
    35982 // Link name: ROK -> Asia/Seoul
    -
    35983 //---------------------------------------------------------------------------
    -
    35984 
    -
    35985 static const char kZoneNameROK[] ACE_TIME_PROGMEM = "ROK";
    -
    35986 
    -
    35987 const complete::Info::ZoneInfo kZoneROK ACE_TIME_PROGMEM = {
    -
    35988  kZoneNameROK /*name*/,
    -
    35989  0x0b881a31 /*zoneId*/,
    -
    35990  &kZoneContext /*zoneContext*/,
    -
    35991  6 /*numEras*/,
    -
    35992  kZoneEraAsia_Seoul /*eras*/,
    -
    35993  &kZoneAsia_Seoul /*targetInfo*/,
    -
    35994 };
    -
    35995 
    -
    35996 //---------------------------------------------------------------------------
    -
    35997 // Link name: Singapore -> Asia/Singapore
    -
    35998 //---------------------------------------------------------------------------
    -
    35999 
    -
    36000 static const char kZoneNameSingapore[] ACE_TIME_PROGMEM = "Singapore";
    -
    36001 
    -
    36002 const complete::Info::ZoneInfo kZoneSingapore ACE_TIME_PROGMEM = {
    -
    36003  kZoneNameSingapore /*name*/,
    -
    36004  0xa8598c8d /*zoneId*/,
    -
    36005  &kZoneContext /*zoneContext*/,
    -
    36006  9 /*numEras*/,
    -
    36007  kZoneEraAsia_Singapore /*eras*/,
    -
    36008  &kZoneAsia_Singapore /*targetInfo*/,
    -
    36009 };
    -
    36010 
    -
    36011 //---------------------------------------------------------------------------
    -
    36012 // Link name: Turkey -> Europe/Istanbul
    -
    36013 //---------------------------------------------------------------------------
    -
    36014 
    -
    36015 static const char kZoneNameTurkey[] ACE_TIME_PROGMEM = "Turkey";
    -
    36016 
    -
    36017 const complete::Info::ZoneInfo kZoneTurkey ACE_TIME_PROGMEM = {
    -
    36018  kZoneNameTurkey /*name*/,
    -
    36019  0xd455e469 /*zoneId*/,
    -
    36020  &kZoneContext /*zoneContext*/,
    -
    36021  13 /*numEras*/,
    -
    36022  kZoneEraEurope_Istanbul /*eras*/,
    -
    36023  &kZoneEurope_Istanbul /*targetInfo*/,
    -
    36024 };
    -
    36025 
    -
    36026 //---------------------------------------------------------------------------
    -
    36027 // Link name: UCT -> Etc/UTC
    -
    36028 //---------------------------------------------------------------------------
    -
    36029 
    -
    36030 static const char kZoneNameUCT[] ACE_TIME_PROGMEM = "UCT";
    -
    36031 
    -
    36032 const complete::Info::ZoneInfo kZoneUCT ACE_TIME_PROGMEM = {
    -
    36033  kZoneNameUCT /*name*/,
    -
    36034  0x0b882571 /*zoneId*/,
    -
    36035  &kZoneContext /*zoneContext*/,
    -
    36036  1 /*numEras*/,
    -
    36037  kZoneEraEtc_UTC /*eras*/,
    -
    36038  &kZoneEtc_UTC /*targetInfo*/,
    -
    36039 };
    -
    36040 
    -
    36041 //---------------------------------------------------------------------------
    -
    36042 // Link name: US/Alaska -> America/Anchorage
    -
    36043 //---------------------------------------------------------------------------
    -
    36044 
    -
    36045 static const char kZoneNameUS_Alaska[] ACE_TIME_PROGMEM = "US/Alaska";
    -
    36046 
    -
    36047 const complete::Info::ZoneInfo kZoneUS_Alaska ACE_TIME_PROGMEM = {
    -
    36048  kZoneNameUS_Alaska /*name*/,
    -
    36049  0xfa300bc9 /*zoneId*/,
    -
    36050  &kZoneContext /*zoneContext*/,
    -
    36051  8 /*numEras*/,
    -
    36052  kZoneEraAmerica_Anchorage /*eras*/,
    -
    36053  &kZoneAmerica_Anchorage /*targetInfo*/,
    -
    36054 };
    -
    36055 
    -
    36056 //---------------------------------------------------------------------------
    -
    36057 // Link name: US/Aleutian -> America/Adak
    -
    36058 //---------------------------------------------------------------------------
    -
    36059 
    -
    36060 static const char kZoneNameUS_Aleutian[] ACE_TIME_PROGMEM = "US/Aleutian";
    -
    36061 
    -
    36062 const complete::Info::ZoneInfo kZoneUS_Aleutian ACE_TIME_PROGMEM = {
    -
    36063  kZoneNameUS_Aleutian /*name*/,
    -
    36064  0x4fe013ef /*zoneId*/,
    -
    36065  &kZoneContext /*zoneContext*/,
    -
    36066  9 /*numEras*/,
    -
    36067  kZoneEraAmerica_Adak /*eras*/,
    -
    36068  &kZoneAmerica_Adak /*targetInfo*/,
    -
    36069 };
    -
    36070 
    -
    36071 //---------------------------------------------------------------------------
    -
    36072 // Link name: US/Arizona -> America/Phoenix
    -
    36073 //---------------------------------------------------------------------------
    -
    36074 
    -
    36075 static const char kZoneNameUS_Arizona[] ACE_TIME_PROGMEM = "US/Arizona";
    -
    36076 
    -
    36077 const complete::Info::ZoneInfo kZoneUS_Arizona ACE_TIME_PROGMEM = {
    -
    36078  kZoneNameUS_Arizona /*name*/,
    -
    36079  0x4ec52670 /*zoneId*/,
    -
    36080  &kZoneContext /*zoneContext*/,
    -
    36081  7 /*numEras*/,
    -
    36082  kZoneEraAmerica_Phoenix /*eras*/,
    -
    36083  &kZoneAmerica_Phoenix /*targetInfo*/,
    -
    36084 };
    -
    36085 
    -
    36086 //---------------------------------------------------------------------------
    -
    36087 // Link name: US/Central -> America/Chicago
    -
    36088 //---------------------------------------------------------------------------
    -
    36089 
    -
    36090 static const char kZoneNameUS_Central[] ACE_TIME_PROGMEM = "US/Central";
    -
    36091 
    -
    36092 const complete::Info::ZoneInfo kZoneUS_Central ACE_TIME_PROGMEM = {
    -
    36093  kZoneNameUS_Central /*name*/,
    -
    36094  0xcabdcb25 /*zoneId*/,
    -
    36095  &kZoneContext /*zoneContext*/,
    -
    36096  8 /*numEras*/,
    -
    36097  kZoneEraAmerica_Chicago /*eras*/,
    -
    36098  &kZoneAmerica_Chicago /*targetInfo*/,
    -
    36099 };
    -
    36100 
    -
    36101 //---------------------------------------------------------------------------
    -
    36102 // Link name: US/East-Indiana -> America/Indiana/Indianapolis
    -
    36103 //---------------------------------------------------------------------------
    -
    36104 
    -
    36105 static const char kZoneNameUS_East_Indiana[] ACE_TIME_PROGMEM = "US/East-Indiana";
    -
    36106 
    -
    36107 const complete::Info::ZoneInfo kZoneUS_East_Indiana ACE_TIME_PROGMEM = {
    -
    36108  kZoneNameUS_East_Indiana /*name*/,
    -
    36109  0x6dcf558a /*zoneId*/,
    -
    36110  &kZoneContext /*zoneContext*/,
    -
    36111  11 /*numEras*/,
    -
    36112  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    36113  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
    -
    36114 };
    -
    36115 
    -
    36116 //---------------------------------------------------------------------------
    -
    36117 // Link name: US/Eastern -> America/New_York
    -
    36118 //---------------------------------------------------------------------------
    -
    36119 
    -
    36120 static const char kZoneNameUS_Eastern[] ACE_TIME_PROGMEM = "US/Eastern";
    -
    36121 
    -
    36122 const complete::Info::ZoneInfo kZoneUS_Eastern ACE_TIME_PROGMEM = {
    -
    36123  kZoneNameUS_Eastern /*name*/,
    -
    36124  0x5bb7e78e /*zoneId*/,
    -
    36125  &kZoneContext /*zoneContext*/,
    -
    36126  6 /*numEras*/,
    -
    36127  kZoneEraAmerica_New_York /*eras*/,
    -
    36128  &kZoneAmerica_New_York /*targetInfo*/,
    -
    36129 };
    -
    36130 
    -
    36131 //---------------------------------------------------------------------------
    -
    36132 // Link name: US/Hawaii -> Pacific/Honolulu
    -
    36133 //---------------------------------------------------------------------------
    -
    36134 
    -
    36135 static const char kZoneNameUS_Hawaii[] ACE_TIME_PROGMEM = "US/Hawaii";
    -
    36136 
    -
    36137 const complete::Info::ZoneInfo kZoneUS_Hawaii ACE_TIME_PROGMEM = {
    -
    36138  kZoneNameUS_Hawaii /*name*/,
    -
    36139  0x09c8de2f /*zoneId*/,
    -
    36140  &kZoneContext /*zoneContext*/,
    -
    36141  5 /*numEras*/,
    -
    36142  kZoneEraPacific_Honolulu /*eras*/,
    -
    36143  &kZonePacific_Honolulu /*targetInfo*/,
    -
    36144 };
    -
    36145 
    -
    36146 //---------------------------------------------------------------------------
    -
    36147 // Link name: US/Indiana-Starke -> America/Indiana/Knox
    -
    36148 //---------------------------------------------------------------------------
    -
    36149 
    -
    36150 static const char kZoneNameUS_Indiana_Starke[] ACE_TIME_PROGMEM = "US/Indiana-Starke";
    -
    36151 
    -
    36152 const complete::Info::ZoneInfo kZoneUS_Indiana_Starke ACE_TIME_PROGMEM = {
    -
    36153  kZoneNameUS_Indiana_Starke /*name*/,
    -
    36154  0x67977be7 /*zoneId*/,
    -
    36155  &kZoneContext /*zoneContext*/,
    -
    36156  7 /*numEras*/,
    -
    36157  kZoneEraAmerica_Indiana_Knox /*eras*/,
    -
    36158  &kZoneAmerica_Indiana_Knox /*targetInfo*/,
    -
    36159 };
    -
    36160 
    -
    36161 //---------------------------------------------------------------------------
    -
    36162 // Link name: US/Michigan -> America/Detroit
    -
    36163 //---------------------------------------------------------------------------
    -
    36164 
    -
    36165 static const char kZoneNameUS_Michigan[] ACE_TIME_PROGMEM = "US/Michigan";
    -
    36166 
    -
    36167 const complete::Info::ZoneInfo kZoneUS_Michigan ACE_TIME_PROGMEM = {
    -
    36168  kZoneNameUS_Michigan /*name*/,
    -
    36169  0x766bb7bc /*zoneId*/,
    -
    36170  &kZoneContext /*zoneContext*/,
    -
    36171  10 /*numEras*/,
    -
    36172  kZoneEraAmerica_Detroit /*eras*/,
    -
    36173  &kZoneAmerica_Detroit /*targetInfo*/,
    -
    36174 };
    -
    36175 
    -
    36176 //---------------------------------------------------------------------------
    -
    36177 // Link name: US/Mountain -> America/Denver
    -
    36178 //---------------------------------------------------------------------------
    -
    36179 
    -
    36180 static const char kZoneNameUS_Mountain[] ACE_TIME_PROGMEM = "US/Mountain";
    -
    36181 
    -
    36182 const complete::Info::ZoneInfo kZoneUS_Mountain ACE_TIME_PROGMEM = {
    -
    36183  kZoneNameUS_Mountain /*name*/,
    -
    36184  0x6eb88247 /*zoneId*/,
    -
    36185  &kZoneContext /*zoneContext*/,
    -
    36186  6 /*numEras*/,
    -
    36187  kZoneEraAmerica_Denver /*eras*/,
    -
    36188  &kZoneAmerica_Denver /*targetInfo*/,
    -
    36189 };
    -
    36190 
    -
    36191 //---------------------------------------------------------------------------
    -
    36192 // Link name: US/Pacific -> America/Los_Angeles
    -
    36193 //---------------------------------------------------------------------------
    -
    36194 
    -
    36195 static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific";
    -
    36196 
    -
    36197 const complete::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = {
    -
    36198  kZoneNameUS_Pacific /*name*/,
    -
    36199  0xa950f6ab /*zoneId*/,
    -
    36200  &kZoneContext /*zoneContext*/,
    -
    36201  4 /*numEras*/,
    -
    36202  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    36203  &kZoneAmerica_Los_Angeles /*targetInfo*/,
    -
    36204 };
    -
    36205 
    -
    36206 //---------------------------------------------------------------------------
    -
    36207 // Link name: US/Samoa -> Pacific/Pago_Pago
    -
    36208 //---------------------------------------------------------------------------
    -
    36209 
    -
    36210 static const char kZoneNameUS_Samoa[] ACE_TIME_PROGMEM = "US/Samoa";
    -
    36211 
    -
    36212 const complete::Info::ZoneInfo kZoneUS_Samoa ACE_TIME_PROGMEM = {
    -
    36213  kZoneNameUS_Samoa /*name*/,
    -
    36214  0x566821cd /*zoneId*/,
    -
    36215  &kZoneContext /*zoneContext*/,
    -
    36216  3 /*numEras*/,
    -
    36217  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    36218  &kZonePacific_Pago_Pago /*targetInfo*/,
    -
    36219 };
    -
    36220 
    -
    36221 //---------------------------------------------------------------------------
    -
    36222 // Link name: UTC -> Etc/UTC
    -
    36223 //---------------------------------------------------------------------------
    -
    36224 
    -
    36225 static const char kZoneNameUTC[] ACE_TIME_PROGMEM = "UTC";
    -
    36226 
    -
    36227 const complete::Info::ZoneInfo kZoneUTC ACE_TIME_PROGMEM = {
    -
    36228  kZoneNameUTC /*name*/,
    -
    36229  0x0b882791 /*zoneId*/,
    -
    36230  &kZoneContext /*zoneContext*/,
    -
    36231  1 /*numEras*/,
    -
    36232  kZoneEraEtc_UTC /*eras*/,
    -
    36233  &kZoneEtc_UTC /*targetInfo*/,
    -
    36234 };
    -
    36235 
    -
    36236 //---------------------------------------------------------------------------
    -
    36237 // Link name: Universal -> Etc/UTC
    -
    36238 //---------------------------------------------------------------------------
    -
    36239 
    -
    36240 static const char kZoneNameUniversal[] ACE_TIME_PROGMEM = "Universal";
    -
    36241 
    -
    36242 const complete::Info::ZoneInfo kZoneUniversal ACE_TIME_PROGMEM = {
    -
    36243  kZoneNameUniversal /*name*/,
    -
    36244  0xd0ff523e /*zoneId*/,
    -
    36245  &kZoneContext /*zoneContext*/,
    -
    36246  1 /*numEras*/,
    -
    36247  kZoneEraEtc_UTC /*eras*/,
    -
    36248  &kZoneEtc_UTC /*targetInfo*/,
    -
    36249 };
    -
    36250 
    -
    36251 //---------------------------------------------------------------------------
    -
    36252 // Link name: W-SU -> Europe/Moscow
    -
    36253 //---------------------------------------------------------------------------
    -
    36254 
    -
    36255 static const char kZoneNameW_SU[] ACE_TIME_PROGMEM = "W-SU";
    -
    36256 
    -
    36257 const complete::Info::ZoneInfo kZoneW_SU ACE_TIME_PROGMEM = {
    -
    36258  kZoneNameW_SU /*name*/,
    -
    36259  0x7c8d8ef1 /*zoneId*/,
    -
    36260  &kZoneContext /*zoneContext*/,
    -
    36261  11 /*numEras*/,
    -
    36262  kZoneEraEurope_Moscow /*eras*/,
    -
    36263  &kZoneEurope_Moscow /*targetInfo*/,
    -
    36264 };
    -
    36265 
    -
    36266 //---------------------------------------------------------------------------
    -
    36267 // Link name: WET -> Europe/Lisbon
    -
    36268 //---------------------------------------------------------------------------
    -
    36269 
    -
    36270 static const char kZoneNameWET[] ACE_TIME_PROGMEM = "WET";
    -
    36271 
    -
    36272 const complete::Info::ZoneInfo kZoneWET ACE_TIME_PROGMEM = {
    -
    36273  kZoneNameWET /*name*/,
    -
    36274  0x0b882e35 /*zoneId*/,
    -
    36275  &kZoneContext /*zoneContext*/,
    -
    36276  8 /*numEras*/,
    -
    36277  kZoneEraEurope_Lisbon /*eras*/,
    -
    36278  &kZoneEurope_Lisbon /*targetInfo*/,
    -
    36279 };
    -
    36280 
    -
    36281 //---------------------------------------------------------------------------
    -
    36282 // Link name: Zulu -> Etc/UTC
    -
    36283 //---------------------------------------------------------------------------
    -
    36284 
    -
    36285 static const char kZoneNameZulu[] ACE_TIME_PROGMEM = "Zulu";
    -
    36286 
    -
    36287 const complete::Info::ZoneInfo kZoneZulu ACE_TIME_PROGMEM = {
    -
    36288  kZoneNameZulu /*name*/,
    -
    36289  0x7c9069b5 /*zoneId*/,
    -
    36290  &kZoneContext /*zoneContext*/,
    -
    36291  1 /*numEras*/,
    -
    36292  kZoneEraEtc_UTC /*eras*/,
    -
    36293  &kZoneEtc_UTC /*targetInfo*/,
    -
    36294 };
    -
    36295 
    -
    36296 
    -
    36297 }
    -
    36298 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/zonedbc_2zone__infos_8h_source.html b/docs/html/zonedbc_2zone__infos_8h_source.html deleted file mode 100644 index e4c727327..000000000 --- a/docs/html/zonedbc_2zone__infos_8h_source.html +++ /dev/null @@ -1,3035 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/zone_infos.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace zonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --start_year 1800
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [1800,2200]
    -
    33 // Accurate Years: [-32767,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1844,2087]
    -
    37 // Lower/Upper Truncated: [False,False]
    -
    38 //
    -
    39 // Estimator Years: [1800,2090]
    -
    40 // Max Buffer Size: 8
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 1956
    -
    45 // Policies: 134
    -
    46 // Rules: 2235
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 26820
    -
    51 // Policies: 402
    -
    52 // Eras: 29340
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 486
    -
    57 // Letters: 160
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 71989
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 26820
    -
    65 // Policies: 1072
    -
    66 // Eras: 39120
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 486
    -
    71 // Letters: 216
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 90292
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #ifndef ACE_TIME_ZONEDBC_ZONE_INFOS_H
    -
    79 #define ACE_TIME_ZONEDBC_ZONE_INFOS_H
    -
    80 
    -
    81 #include <zoneinfo/infos.h>
    -
    82 
    -
    83 class __FlashStringHelper;
    -
    84 
    -
    85 namespace ace_time {
    -
    86 namespace zonedbc {
    -
    87 
    -
    88 //---------------------------------------------------------------------------
    -
    89 // ZoneContext (should not be in PROGMEM)
    -
    90 //---------------------------------------------------------------------------
    -
    91 
    -
    92 // Version of the TZ Database which generated these files.
    -
    93 extern const __FlashStringHelper* const kTzDatabaseVersion;
    -
    94 
    -
    95 // Metadata about the zonedb files.
    -
    96 extern const complete::Info::ZoneContext kZoneContext;
    -
    97 
    -
    98 //---------------------------------------------------------------------------
    -
    99 // Supported zones: 340
    -
    100 //---------------------------------------------------------------------------
    -
    101 
    -
    102 extern const complete::Info::ZoneInfo kZoneAfrica_Abidjan; // Africa/Abidjan
    -
    103 extern const complete::Info::ZoneInfo kZoneAfrica_Algiers; // Africa/Algiers
    -
    104 extern const complete::Info::ZoneInfo kZoneAfrica_Bissau; // Africa/Bissau
    -
    105 extern const complete::Info::ZoneInfo kZoneAfrica_Cairo; // Africa/Cairo
    -
    106 extern const complete::Info::ZoneInfo kZoneAfrica_Casablanca; // Africa/Casablanca
    -
    107 extern const complete::Info::ZoneInfo kZoneAfrica_Ceuta; // Africa/Ceuta
    -
    108 extern const complete::Info::ZoneInfo kZoneAfrica_El_Aaiun; // Africa/El_Aaiun
    -
    109 extern const complete::Info::ZoneInfo kZoneAfrica_Johannesburg; // Africa/Johannesburg
    -
    110 extern const complete::Info::ZoneInfo kZoneAfrica_Juba; // Africa/Juba
    -
    111 extern const complete::Info::ZoneInfo kZoneAfrica_Khartoum; // Africa/Khartoum
    -
    112 extern const complete::Info::ZoneInfo kZoneAfrica_Lagos; // Africa/Lagos
    -
    113 extern const complete::Info::ZoneInfo kZoneAfrica_Maputo; // Africa/Maputo
    -
    114 extern const complete::Info::ZoneInfo kZoneAfrica_Monrovia; // Africa/Monrovia
    -
    115 extern const complete::Info::ZoneInfo kZoneAfrica_Nairobi; // Africa/Nairobi
    -
    116 extern const complete::Info::ZoneInfo kZoneAfrica_Ndjamena; // Africa/Ndjamena
    -
    117 extern const complete::Info::ZoneInfo kZoneAfrica_Sao_Tome; // Africa/Sao_Tome
    -
    118 extern const complete::Info::ZoneInfo kZoneAfrica_Tripoli; // Africa/Tripoli
    -
    119 extern const complete::Info::ZoneInfo kZoneAfrica_Tunis; // Africa/Tunis
    -
    120 extern const complete::Info::ZoneInfo kZoneAfrica_Windhoek; // Africa/Windhoek
    -
    121 extern const complete::Info::ZoneInfo kZoneAmerica_Adak; // America/Adak
    -
    122 extern const complete::Info::ZoneInfo kZoneAmerica_Anchorage; // America/Anchorage
    -
    123 extern const complete::Info::ZoneInfo kZoneAmerica_Araguaina; // America/Araguaina
    -
    124 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_Buenos_Aires; // America/Argentina/Buenos_Aires
    -
    125 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_Catamarca; // America/Argentina/Catamarca
    -
    126 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_Cordoba; // America/Argentina/Cordoba
    -
    127 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_Jujuy; // America/Argentina/Jujuy
    -
    128 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_La_Rioja; // America/Argentina/La_Rioja
    -
    129 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_Mendoza; // America/Argentina/Mendoza
    -
    130 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_Rio_Gallegos; // America/Argentina/Rio_Gallegos
    -
    131 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_Salta; // America/Argentina/Salta
    -
    132 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_San_Juan; // America/Argentina/San_Juan
    -
    133 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_San_Luis; // America/Argentina/San_Luis
    -
    134 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_Tucuman; // America/Argentina/Tucuman
    -
    135 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_Ushuaia; // America/Argentina/Ushuaia
    -
    136 extern const complete::Info::ZoneInfo kZoneAmerica_Asuncion; // America/Asuncion
    -
    137 extern const complete::Info::ZoneInfo kZoneAmerica_Bahia; // America/Bahia
    -
    138 extern const complete::Info::ZoneInfo kZoneAmerica_Bahia_Banderas; // America/Bahia_Banderas
    -
    139 extern const complete::Info::ZoneInfo kZoneAmerica_Barbados; // America/Barbados
    -
    140 extern const complete::Info::ZoneInfo kZoneAmerica_Belem; // America/Belem
    -
    141 extern const complete::Info::ZoneInfo kZoneAmerica_Belize; // America/Belize
    -
    142 extern const complete::Info::ZoneInfo kZoneAmerica_Boa_Vista; // America/Boa_Vista
    -
    143 extern const complete::Info::ZoneInfo kZoneAmerica_Bogota; // America/Bogota
    -
    144 extern const complete::Info::ZoneInfo kZoneAmerica_Boise; // America/Boise
    -
    145 extern const complete::Info::ZoneInfo kZoneAmerica_Cambridge_Bay; // America/Cambridge_Bay
    -
    146 extern const complete::Info::ZoneInfo kZoneAmerica_Campo_Grande; // America/Campo_Grande
    -
    147 extern const complete::Info::ZoneInfo kZoneAmerica_Cancun; // America/Cancun
    -
    148 extern const complete::Info::ZoneInfo kZoneAmerica_Caracas; // America/Caracas
    -
    149 extern const complete::Info::ZoneInfo kZoneAmerica_Cayenne; // America/Cayenne
    -
    150 extern const complete::Info::ZoneInfo kZoneAmerica_Chicago; // America/Chicago
    -
    151 extern const complete::Info::ZoneInfo kZoneAmerica_Chihuahua; // America/Chihuahua
    -
    152 extern const complete::Info::ZoneInfo kZoneAmerica_Ciudad_Juarez; // America/Ciudad_Juarez
    -
    153 extern const complete::Info::ZoneInfo kZoneAmerica_Costa_Rica; // America/Costa_Rica
    -
    154 extern const complete::Info::ZoneInfo kZoneAmerica_Coyhaique; // America/Coyhaique
    -
    155 extern const complete::Info::ZoneInfo kZoneAmerica_Cuiaba; // America/Cuiaba
    -
    156 extern const complete::Info::ZoneInfo kZoneAmerica_Danmarkshavn; // America/Danmarkshavn
    -
    157 extern const complete::Info::ZoneInfo kZoneAmerica_Dawson; // America/Dawson
    -
    158 extern const complete::Info::ZoneInfo kZoneAmerica_Dawson_Creek; // America/Dawson_Creek
    -
    159 extern const complete::Info::ZoneInfo kZoneAmerica_Denver; // America/Denver
    -
    160 extern const complete::Info::ZoneInfo kZoneAmerica_Detroit; // America/Detroit
    -
    161 extern const complete::Info::ZoneInfo kZoneAmerica_Edmonton; // America/Edmonton
    -
    162 extern const complete::Info::ZoneInfo kZoneAmerica_Eirunepe; // America/Eirunepe
    -
    163 extern const complete::Info::ZoneInfo kZoneAmerica_El_Salvador; // America/El_Salvador
    -
    164 extern const complete::Info::ZoneInfo kZoneAmerica_Fort_Nelson; // America/Fort_Nelson
    -
    165 extern const complete::Info::ZoneInfo kZoneAmerica_Fortaleza; // America/Fortaleza
    -
    166 extern const complete::Info::ZoneInfo kZoneAmerica_Glace_Bay; // America/Glace_Bay
    -
    167 extern const complete::Info::ZoneInfo kZoneAmerica_Goose_Bay; // America/Goose_Bay
    -
    168 extern const complete::Info::ZoneInfo kZoneAmerica_Grand_Turk; // America/Grand_Turk
    -
    169 extern const complete::Info::ZoneInfo kZoneAmerica_Guatemala; // America/Guatemala
    -
    170 extern const complete::Info::ZoneInfo kZoneAmerica_Guayaquil; // America/Guayaquil
    -
    171 extern const complete::Info::ZoneInfo kZoneAmerica_Guyana; // America/Guyana
    -
    172 extern const complete::Info::ZoneInfo kZoneAmerica_Halifax; // America/Halifax
    -
    173 extern const complete::Info::ZoneInfo kZoneAmerica_Havana; // America/Havana
    -
    174 extern const complete::Info::ZoneInfo kZoneAmerica_Hermosillo; // America/Hermosillo
    -
    175 extern const complete::Info::ZoneInfo kZoneAmerica_Indiana_Indianapolis; // America/Indiana/Indianapolis
    -
    176 extern const complete::Info::ZoneInfo kZoneAmerica_Indiana_Knox; // America/Indiana/Knox
    -
    177 extern const complete::Info::ZoneInfo kZoneAmerica_Indiana_Marengo; // America/Indiana/Marengo
    -
    178 extern const complete::Info::ZoneInfo kZoneAmerica_Indiana_Petersburg; // America/Indiana/Petersburg
    -
    179 extern const complete::Info::ZoneInfo kZoneAmerica_Indiana_Tell_City; // America/Indiana/Tell_City
    -
    180 extern const complete::Info::ZoneInfo kZoneAmerica_Indiana_Vevay; // America/Indiana/Vevay
    -
    181 extern const complete::Info::ZoneInfo kZoneAmerica_Indiana_Vincennes; // America/Indiana/Vincennes
    -
    182 extern const complete::Info::ZoneInfo kZoneAmerica_Indiana_Winamac; // America/Indiana/Winamac
    -
    183 extern const complete::Info::ZoneInfo kZoneAmerica_Inuvik; // America/Inuvik
    -
    184 extern const complete::Info::ZoneInfo kZoneAmerica_Iqaluit; // America/Iqaluit
    -
    185 extern const complete::Info::ZoneInfo kZoneAmerica_Jamaica; // America/Jamaica
    -
    186 extern const complete::Info::ZoneInfo kZoneAmerica_Juneau; // America/Juneau
    -
    187 extern const complete::Info::ZoneInfo kZoneAmerica_Kentucky_Louisville; // America/Kentucky/Louisville
    -
    188 extern const complete::Info::ZoneInfo kZoneAmerica_Kentucky_Monticello; // America/Kentucky/Monticello
    -
    189 extern const complete::Info::ZoneInfo kZoneAmerica_La_Paz; // America/La_Paz
    -
    190 extern const complete::Info::ZoneInfo kZoneAmerica_Lima; // America/Lima
    -
    191 extern const complete::Info::ZoneInfo kZoneAmerica_Los_Angeles; // America/Los_Angeles
    -
    192 extern const complete::Info::ZoneInfo kZoneAmerica_Maceio; // America/Maceio
    -
    193 extern const complete::Info::ZoneInfo kZoneAmerica_Managua; // America/Managua
    -
    194 extern const complete::Info::ZoneInfo kZoneAmerica_Manaus; // America/Manaus
    -
    195 extern const complete::Info::ZoneInfo kZoneAmerica_Martinique; // America/Martinique
    -
    196 extern const complete::Info::ZoneInfo kZoneAmerica_Matamoros; // America/Matamoros
    -
    197 extern const complete::Info::ZoneInfo kZoneAmerica_Mazatlan; // America/Mazatlan
    -
    198 extern const complete::Info::ZoneInfo kZoneAmerica_Menominee; // America/Menominee
    -
    199 extern const complete::Info::ZoneInfo kZoneAmerica_Merida; // America/Merida
    -
    200 extern const complete::Info::ZoneInfo kZoneAmerica_Metlakatla; // America/Metlakatla
    -
    201 extern const complete::Info::ZoneInfo kZoneAmerica_Mexico_City; // America/Mexico_City
    -
    202 extern const complete::Info::ZoneInfo kZoneAmerica_Miquelon; // America/Miquelon
    -
    203 extern const complete::Info::ZoneInfo kZoneAmerica_Moncton; // America/Moncton
    -
    204 extern const complete::Info::ZoneInfo kZoneAmerica_Monterrey; // America/Monterrey
    -
    205 extern const complete::Info::ZoneInfo kZoneAmerica_Montevideo; // America/Montevideo
    -
    206 extern const complete::Info::ZoneInfo kZoneAmerica_New_York; // America/New_York
    -
    207 extern const complete::Info::ZoneInfo kZoneAmerica_Nome; // America/Nome
    -
    208 extern const complete::Info::ZoneInfo kZoneAmerica_Noronha; // America/Noronha
    -
    209 extern const complete::Info::ZoneInfo kZoneAmerica_North_Dakota_Beulah; // America/North_Dakota/Beulah
    -
    210 extern const complete::Info::ZoneInfo kZoneAmerica_North_Dakota_Center; // America/North_Dakota/Center
    -
    211 extern const complete::Info::ZoneInfo kZoneAmerica_North_Dakota_New_Salem; // America/North_Dakota/New_Salem
    -
    212 extern const complete::Info::ZoneInfo kZoneAmerica_Nuuk; // America/Nuuk
    -
    213 extern const complete::Info::ZoneInfo kZoneAmerica_Ojinaga; // America/Ojinaga
    -
    214 extern const complete::Info::ZoneInfo kZoneAmerica_Panama; // America/Panama
    -
    215 extern const complete::Info::ZoneInfo kZoneAmerica_Paramaribo; // America/Paramaribo
    -
    216 extern const complete::Info::ZoneInfo kZoneAmerica_Phoenix; // America/Phoenix
    -
    217 extern const complete::Info::ZoneInfo kZoneAmerica_Port_au_Prince; // America/Port-au-Prince
    -
    218 extern const complete::Info::ZoneInfo kZoneAmerica_Porto_Velho; // America/Porto_Velho
    -
    219 extern const complete::Info::ZoneInfo kZoneAmerica_Puerto_Rico; // America/Puerto_Rico
    -
    220 extern const complete::Info::ZoneInfo kZoneAmerica_Punta_Arenas; // America/Punta_Arenas
    -
    221 extern const complete::Info::ZoneInfo kZoneAmerica_Rankin_Inlet; // America/Rankin_Inlet
    -
    222 extern const complete::Info::ZoneInfo kZoneAmerica_Recife; // America/Recife
    -
    223 extern const complete::Info::ZoneInfo kZoneAmerica_Regina; // America/Regina
    -
    224 extern const complete::Info::ZoneInfo kZoneAmerica_Resolute; // America/Resolute
    -
    225 extern const complete::Info::ZoneInfo kZoneAmerica_Rio_Branco; // America/Rio_Branco
    -
    226 extern const complete::Info::ZoneInfo kZoneAmerica_Santarem; // America/Santarem
    -
    227 extern const complete::Info::ZoneInfo kZoneAmerica_Santiago; // America/Santiago
    -
    228 extern const complete::Info::ZoneInfo kZoneAmerica_Santo_Domingo; // America/Santo_Domingo
    -
    229 extern const complete::Info::ZoneInfo kZoneAmerica_Sao_Paulo; // America/Sao_Paulo
    -
    230 extern const complete::Info::ZoneInfo kZoneAmerica_Scoresbysund; // America/Scoresbysund
    -
    231 extern const complete::Info::ZoneInfo kZoneAmerica_Sitka; // America/Sitka
    -
    232 extern const complete::Info::ZoneInfo kZoneAmerica_St_Johns; // America/St_Johns
    -
    233 extern const complete::Info::ZoneInfo kZoneAmerica_Swift_Current; // America/Swift_Current
    -
    234 extern const complete::Info::ZoneInfo kZoneAmerica_Tegucigalpa; // America/Tegucigalpa
    -
    235 extern const complete::Info::ZoneInfo kZoneAmerica_Thule; // America/Thule
    -
    236 extern const complete::Info::ZoneInfo kZoneAmerica_Tijuana; // America/Tijuana
    -
    237 extern const complete::Info::ZoneInfo kZoneAmerica_Toronto; // America/Toronto
    -
    238 extern const complete::Info::ZoneInfo kZoneAmerica_Vancouver; // America/Vancouver
    -
    239 extern const complete::Info::ZoneInfo kZoneAmerica_Whitehorse; // America/Whitehorse
    -
    240 extern const complete::Info::ZoneInfo kZoneAmerica_Winnipeg; // America/Winnipeg
    -
    241 extern const complete::Info::ZoneInfo kZoneAmerica_Yakutat; // America/Yakutat
    -
    242 extern const complete::Info::ZoneInfo kZoneAntarctica_Casey; // Antarctica/Casey
    -
    243 extern const complete::Info::ZoneInfo kZoneAntarctica_Davis; // Antarctica/Davis
    -
    244 extern const complete::Info::ZoneInfo kZoneAntarctica_Macquarie; // Antarctica/Macquarie
    -
    245 extern const complete::Info::ZoneInfo kZoneAntarctica_Mawson; // Antarctica/Mawson
    -
    246 extern const complete::Info::ZoneInfo kZoneAntarctica_Palmer; // Antarctica/Palmer
    -
    247 extern const complete::Info::ZoneInfo kZoneAntarctica_Rothera; // Antarctica/Rothera
    -
    248 extern const complete::Info::ZoneInfo kZoneAntarctica_Troll; // Antarctica/Troll
    -
    249 extern const complete::Info::ZoneInfo kZoneAntarctica_Vostok; // Antarctica/Vostok
    -
    250 extern const complete::Info::ZoneInfo kZoneAsia_Almaty; // Asia/Almaty
    -
    251 extern const complete::Info::ZoneInfo kZoneAsia_Amman; // Asia/Amman
    -
    252 extern const complete::Info::ZoneInfo kZoneAsia_Anadyr; // Asia/Anadyr
    -
    253 extern const complete::Info::ZoneInfo kZoneAsia_Aqtau; // Asia/Aqtau
    -
    254 extern const complete::Info::ZoneInfo kZoneAsia_Aqtobe; // Asia/Aqtobe
    -
    255 extern const complete::Info::ZoneInfo kZoneAsia_Ashgabat; // Asia/Ashgabat
    -
    256 extern const complete::Info::ZoneInfo kZoneAsia_Atyrau; // Asia/Atyrau
    -
    257 extern const complete::Info::ZoneInfo kZoneAsia_Baghdad; // Asia/Baghdad
    -
    258 extern const complete::Info::ZoneInfo kZoneAsia_Baku; // Asia/Baku
    -
    259 extern const complete::Info::ZoneInfo kZoneAsia_Bangkok; // Asia/Bangkok
    -
    260 extern const complete::Info::ZoneInfo kZoneAsia_Barnaul; // Asia/Barnaul
    -
    261 extern const complete::Info::ZoneInfo kZoneAsia_Beirut; // Asia/Beirut
    -
    262 extern const complete::Info::ZoneInfo kZoneAsia_Bishkek; // Asia/Bishkek
    -
    263 extern const complete::Info::ZoneInfo kZoneAsia_Chita; // Asia/Chita
    -
    264 extern const complete::Info::ZoneInfo kZoneAsia_Colombo; // Asia/Colombo
    -
    265 extern const complete::Info::ZoneInfo kZoneAsia_Damascus; // Asia/Damascus
    -
    266 extern const complete::Info::ZoneInfo kZoneAsia_Dhaka; // Asia/Dhaka
    -
    267 extern const complete::Info::ZoneInfo kZoneAsia_Dili; // Asia/Dili
    -
    268 extern const complete::Info::ZoneInfo kZoneAsia_Dubai; // Asia/Dubai
    -
    269 extern const complete::Info::ZoneInfo kZoneAsia_Dushanbe; // Asia/Dushanbe
    -
    270 extern const complete::Info::ZoneInfo kZoneAsia_Famagusta; // Asia/Famagusta
    -
    271 extern const complete::Info::ZoneInfo kZoneAsia_Gaza; // Asia/Gaza
    -
    272 extern const complete::Info::ZoneInfo kZoneAsia_Hebron; // Asia/Hebron
    -
    273 extern const complete::Info::ZoneInfo kZoneAsia_Ho_Chi_Minh; // Asia/Ho_Chi_Minh
    -
    274 extern const complete::Info::ZoneInfo kZoneAsia_Hong_Kong; // Asia/Hong_Kong
    -
    275 extern const complete::Info::ZoneInfo kZoneAsia_Hovd; // Asia/Hovd
    -
    276 extern const complete::Info::ZoneInfo kZoneAsia_Irkutsk; // Asia/Irkutsk
    -
    277 extern const complete::Info::ZoneInfo kZoneAsia_Jakarta; // Asia/Jakarta
    -
    278 extern const complete::Info::ZoneInfo kZoneAsia_Jayapura; // Asia/Jayapura
    -
    279 extern const complete::Info::ZoneInfo kZoneAsia_Jerusalem; // Asia/Jerusalem
    -
    280 extern const complete::Info::ZoneInfo kZoneAsia_Kabul; // Asia/Kabul
    -
    281 extern const complete::Info::ZoneInfo kZoneAsia_Kamchatka; // Asia/Kamchatka
    -
    282 extern const complete::Info::ZoneInfo kZoneAsia_Karachi; // Asia/Karachi
    -
    283 extern const complete::Info::ZoneInfo kZoneAsia_Kathmandu; // Asia/Kathmandu
    -
    284 extern const complete::Info::ZoneInfo kZoneAsia_Khandyga; // Asia/Khandyga
    -
    285 extern const complete::Info::ZoneInfo kZoneAsia_Kolkata; // Asia/Kolkata
    -
    286 extern const complete::Info::ZoneInfo kZoneAsia_Krasnoyarsk; // Asia/Krasnoyarsk
    -
    287 extern const complete::Info::ZoneInfo kZoneAsia_Kuching; // Asia/Kuching
    -
    288 extern const complete::Info::ZoneInfo kZoneAsia_Macau; // Asia/Macau
    -
    289 extern const complete::Info::ZoneInfo kZoneAsia_Magadan; // Asia/Magadan
    -
    290 extern const complete::Info::ZoneInfo kZoneAsia_Makassar; // Asia/Makassar
    -
    291 extern const complete::Info::ZoneInfo kZoneAsia_Manila; // Asia/Manila
    -
    292 extern const complete::Info::ZoneInfo kZoneAsia_Nicosia; // Asia/Nicosia
    -
    293 extern const complete::Info::ZoneInfo kZoneAsia_Novokuznetsk; // Asia/Novokuznetsk
    -
    294 extern const complete::Info::ZoneInfo kZoneAsia_Novosibirsk; // Asia/Novosibirsk
    -
    295 extern const complete::Info::ZoneInfo kZoneAsia_Omsk; // Asia/Omsk
    -
    296 extern const complete::Info::ZoneInfo kZoneAsia_Oral; // Asia/Oral
    -
    297 extern const complete::Info::ZoneInfo kZoneAsia_Pontianak; // Asia/Pontianak
    -
    298 extern const complete::Info::ZoneInfo kZoneAsia_Pyongyang; // Asia/Pyongyang
    -
    299 extern const complete::Info::ZoneInfo kZoneAsia_Qatar; // Asia/Qatar
    -
    300 extern const complete::Info::ZoneInfo kZoneAsia_Qostanay; // Asia/Qostanay
    -
    301 extern const complete::Info::ZoneInfo kZoneAsia_Qyzylorda; // Asia/Qyzylorda
    -
    302 extern const complete::Info::ZoneInfo kZoneAsia_Riyadh; // Asia/Riyadh
    -
    303 extern const complete::Info::ZoneInfo kZoneAsia_Sakhalin; // Asia/Sakhalin
    -
    304 extern const complete::Info::ZoneInfo kZoneAsia_Samarkand; // Asia/Samarkand
    -
    305 extern const complete::Info::ZoneInfo kZoneAsia_Seoul; // Asia/Seoul
    -
    306 extern const complete::Info::ZoneInfo kZoneAsia_Shanghai; // Asia/Shanghai
    -
    307 extern const complete::Info::ZoneInfo kZoneAsia_Singapore; // Asia/Singapore
    -
    308 extern const complete::Info::ZoneInfo kZoneAsia_Srednekolymsk; // Asia/Srednekolymsk
    -
    309 extern const complete::Info::ZoneInfo kZoneAsia_Taipei; // Asia/Taipei
    -
    310 extern const complete::Info::ZoneInfo kZoneAsia_Tashkent; // Asia/Tashkent
    -
    311 extern const complete::Info::ZoneInfo kZoneAsia_Tbilisi; // Asia/Tbilisi
    -
    312 extern const complete::Info::ZoneInfo kZoneAsia_Tehran; // Asia/Tehran
    -
    313 extern const complete::Info::ZoneInfo kZoneAsia_Thimphu; // Asia/Thimphu
    -
    314 extern const complete::Info::ZoneInfo kZoneAsia_Tokyo; // Asia/Tokyo
    -
    315 extern const complete::Info::ZoneInfo kZoneAsia_Tomsk; // Asia/Tomsk
    -
    316 extern const complete::Info::ZoneInfo kZoneAsia_Ulaanbaatar; // Asia/Ulaanbaatar
    -
    317 extern const complete::Info::ZoneInfo kZoneAsia_Urumqi; // Asia/Urumqi
    -
    318 extern const complete::Info::ZoneInfo kZoneAsia_Ust_Nera; // Asia/Ust-Nera
    -
    319 extern const complete::Info::ZoneInfo kZoneAsia_Vladivostok; // Asia/Vladivostok
    -
    320 extern const complete::Info::ZoneInfo kZoneAsia_Yakutsk; // Asia/Yakutsk
    -
    321 extern const complete::Info::ZoneInfo kZoneAsia_Yangon; // Asia/Yangon
    -
    322 extern const complete::Info::ZoneInfo kZoneAsia_Yekaterinburg; // Asia/Yekaterinburg
    -
    323 extern const complete::Info::ZoneInfo kZoneAsia_Yerevan; // Asia/Yerevan
    -
    324 extern const complete::Info::ZoneInfo kZoneAtlantic_Azores; // Atlantic/Azores
    -
    325 extern const complete::Info::ZoneInfo kZoneAtlantic_Bermuda; // Atlantic/Bermuda
    -
    326 extern const complete::Info::ZoneInfo kZoneAtlantic_Canary; // Atlantic/Canary
    -
    327 extern const complete::Info::ZoneInfo kZoneAtlantic_Cape_Verde; // Atlantic/Cape_Verde
    -
    328 extern const complete::Info::ZoneInfo kZoneAtlantic_Faroe; // Atlantic/Faroe
    -
    329 extern const complete::Info::ZoneInfo kZoneAtlantic_Madeira; // Atlantic/Madeira
    -
    330 extern const complete::Info::ZoneInfo kZoneAtlantic_South_Georgia; // Atlantic/South_Georgia
    -
    331 extern const complete::Info::ZoneInfo kZoneAtlantic_Stanley; // Atlantic/Stanley
    -
    332 extern const complete::Info::ZoneInfo kZoneAustralia_Adelaide; // Australia/Adelaide
    -
    333 extern const complete::Info::ZoneInfo kZoneAustralia_Brisbane; // Australia/Brisbane
    -
    334 extern const complete::Info::ZoneInfo kZoneAustralia_Broken_Hill; // Australia/Broken_Hill
    -
    335 extern const complete::Info::ZoneInfo kZoneAustralia_Darwin; // Australia/Darwin
    -
    336 extern const complete::Info::ZoneInfo kZoneAustralia_Eucla; // Australia/Eucla
    -
    337 extern const complete::Info::ZoneInfo kZoneAustralia_Hobart; // Australia/Hobart
    -
    338 extern const complete::Info::ZoneInfo kZoneAustralia_Lindeman; // Australia/Lindeman
    -
    339 extern const complete::Info::ZoneInfo kZoneAustralia_Lord_Howe; // Australia/Lord_Howe
    -
    340 extern const complete::Info::ZoneInfo kZoneAustralia_Melbourne; // Australia/Melbourne
    -
    341 extern const complete::Info::ZoneInfo kZoneAustralia_Perth; // Australia/Perth
    -
    342 extern const complete::Info::ZoneInfo kZoneAustralia_Sydney; // Australia/Sydney
    -
    343 extern const complete::Info::ZoneInfo kZoneEtc_GMT; // Etc/GMT
    -
    344 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_1; // Etc/GMT+1
    -
    345 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_10; // Etc/GMT+10
    -
    346 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_11; // Etc/GMT+11
    -
    347 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_12; // Etc/GMT+12
    -
    348 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_2; // Etc/GMT+2
    -
    349 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_3; // Etc/GMT+3
    -
    350 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_4; // Etc/GMT+4
    -
    351 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_5; // Etc/GMT+5
    -
    352 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_6; // Etc/GMT+6
    -
    353 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_7; // Etc/GMT+7
    -
    354 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_8; // Etc/GMT+8
    -
    355 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_9; // Etc/GMT+9
    -
    356 extern const complete::Info::ZoneInfo kZoneEtc_GMT_1; // Etc/GMT-1
    -
    357 extern const complete::Info::ZoneInfo kZoneEtc_GMT_10; // Etc/GMT-10
    -
    358 extern const complete::Info::ZoneInfo kZoneEtc_GMT_11; // Etc/GMT-11
    -
    359 extern const complete::Info::ZoneInfo kZoneEtc_GMT_12; // Etc/GMT-12
    -
    360 extern const complete::Info::ZoneInfo kZoneEtc_GMT_13; // Etc/GMT-13
    -
    361 extern const complete::Info::ZoneInfo kZoneEtc_GMT_14; // Etc/GMT-14
    -
    362 extern const complete::Info::ZoneInfo kZoneEtc_GMT_2; // Etc/GMT-2
    -
    363 extern const complete::Info::ZoneInfo kZoneEtc_GMT_3; // Etc/GMT-3
    -
    364 extern const complete::Info::ZoneInfo kZoneEtc_GMT_4; // Etc/GMT-4
    -
    365 extern const complete::Info::ZoneInfo kZoneEtc_GMT_5; // Etc/GMT-5
    -
    366 extern const complete::Info::ZoneInfo kZoneEtc_GMT_6; // Etc/GMT-6
    -
    367 extern const complete::Info::ZoneInfo kZoneEtc_GMT_7; // Etc/GMT-7
    -
    368 extern const complete::Info::ZoneInfo kZoneEtc_GMT_8; // Etc/GMT-8
    -
    369 extern const complete::Info::ZoneInfo kZoneEtc_GMT_9; // Etc/GMT-9
    -
    370 extern const complete::Info::ZoneInfo kZoneEtc_UTC; // Etc/UTC
    -
    371 extern const complete::Info::ZoneInfo kZoneEurope_Andorra; // Europe/Andorra
    -
    372 extern const complete::Info::ZoneInfo kZoneEurope_Astrakhan; // Europe/Astrakhan
    -
    373 extern const complete::Info::ZoneInfo kZoneEurope_Athens; // Europe/Athens
    -
    374 extern const complete::Info::ZoneInfo kZoneEurope_Belgrade; // Europe/Belgrade
    -
    375 extern const complete::Info::ZoneInfo kZoneEurope_Berlin; // Europe/Berlin
    -
    376 extern const complete::Info::ZoneInfo kZoneEurope_Brussels; // Europe/Brussels
    -
    377 extern const complete::Info::ZoneInfo kZoneEurope_Bucharest; // Europe/Bucharest
    -
    378 extern const complete::Info::ZoneInfo kZoneEurope_Budapest; // Europe/Budapest
    -
    379 extern const complete::Info::ZoneInfo kZoneEurope_Chisinau; // Europe/Chisinau
    -
    380 extern const complete::Info::ZoneInfo kZoneEurope_Dublin; // Europe/Dublin
    -
    381 extern const complete::Info::ZoneInfo kZoneEurope_Gibraltar; // Europe/Gibraltar
    -
    382 extern const complete::Info::ZoneInfo kZoneEurope_Helsinki; // Europe/Helsinki
    -
    383 extern const complete::Info::ZoneInfo kZoneEurope_Istanbul; // Europe/Istanbul
    -
    384 extern const complete::Info::ZoneInfo kZoneEurope_Kaliningrad; // Europe/Kaliningrad
    -
    385 extern const complete::Info::ZoneInfo kZoneEurope_Kirov; // Europe/Kirov
    -
    386 extern const complete::Info::ZoneInfo kZoneEurope_Kyiv; // Europe/Kyiv
    -
    387 extern const complete::Info::ZoneInfo kZoneEurope_Lisbon; // Europe/Lisbon
    -
    388 extern const complete::Info::ZoneInfo kZoneEurope_London; // Europe/London
    -
    389 extern const complete::Info::ZoneInfo kZoneEurope_Madrid; // Europe/Madrid
    -
    390 extern const complete::Info::ZoneInfo kZoneEurope_Malta; // Europe/Malta
    -
    391 extern const complete::Info::ZoneInfo kZoneEurope_Minsk; // Europe/Minsk
    -
    392 extern const complete::Info::ZoneInfo kZoneEurope_Moscow; // Europe/Moscow
    -
    393 extern const complete::Info::ZoneInfo kZoneEurope_Paris; // Europe/Paris
    -
    394 extern const complete::Info::ZoneInfo kZoneEurope_Prague; // Europe/Prague
    -
    395 extern const complete::Info::ZoneInfo kZoneEurope_Riga; // Europe/Riga
    -
    396 extern const complete::Info::ZoneInfo kZoneEurope_Rome; // Europe/Rome
    -
    397 extern const complete::Info::ZoneInfo kZoneEurope_Samara; // Europe/Samara
    -
    398 extern const complete::Info::ZoneInfo kZoneEurope_Saratov; // Europe/Saratov
    -
    399 extern const complete::Info::ZoneInfo kZoneEurope_Simferopol; // Europe/Simferopol
    -
    400 extern const complete::Info::ZoneInfo kZoneEurope_Sofia; // Europe/Sofia
    -
    401 extern const complete::Info::ZoneInfo kZoneEurope_Tallinn; // Europe/Tallinn
    -
    402 extern const complete::Info::ZoneInfo kZoneEurope_Tirane; // Europe/Tirane
    -
    403 extern const complete::Info::ZoneInfo kZoneEurope_Ulyanovsk; // Europe/Ulyanovsk
    -
    404 extern const complete::Info::ZoneInfo kZoneEurope_Vienna; // Europe/Vienna
    -
    405 extern const complete::Info::ZoneInfo kZoneEurope_Vilnius; // Europe/Vilnius
    -
    406 extern const complete::Info::ZoneInfo kZoneEurope_Volgograd; // Europe/Volgograd
    -
    407 extern const complete::Info::ZoneInfo kZoneEurope_Warsaw; // Europe/Warsaw
    -
    408 extern const complete::Info::ZoneInfo kZoneEurope_Zurich; // Europe/Zurich
    -
    409 extern const complete::Info::ZoneInfo kZoneIndian_Chagos; // Indian/Chagos
    -
    410 extern const complete::Info::ZoneInfo kZoneIndian_Maldives; // Indian/Maldives
    -
    411 extern const complete::Info::ZoneInfo kZoneIndian_Mauritius; // Indian/Mauritius
    -
    412 extern const complete::Info::ZoneInfo kZonePacific_Apia; // Pacific/Apia
    -
    413 extern const complete::Info::ZoneInfo kZonePacific_Auckland; // Pacific/Auckland
    -
    414 extern const complete::Info::ZoneInfo kZonePacific_Bougainville; // Pacific/Bougainville
    -
    415 extern const complete::Info::ZoneInfo kZonePacific_Chatham; // Pacific/Chatham
    -
    416 extern const complete::Info::ZoneInfo kZonePacific_Easter; // Pacific/Easter
    -
    417 extern const complete::Info::ZoneInfo kZonePacific_Efate; // Pacific/Efate
    -
    418 extern const complete::Info::ZoneInfo kZonePacific_Fakaofo; // Pacific/Fakaofo
    -
    419 extern const complete::Info::ZoneInfo kZonePacific_Fiji; // Pacific/Fiji
    -
    420 extern const complete::Info::ZoneInfo kZonePacific_Galapagos; // Pacific/Galapagos
    -
    421 extern const complete::Info::ZoneInfo kZonePacific_Gambier; // Pacific/Gambier
    -
    422 extern const complete::Info::ZoneInfo kZonePacific_Guadalcanal; // Pacific/Guadalcanal
    -
    423 extern const complete::Info::ZoneInfo kZonePacific_Guam; // Pacific/Guam
    -
    424 extern const complete::Info::ZoneInfo kZonePacific_Honolulu; // Pacific/Honolulu
    -
    425 extern const complete::Info::ZoneInfo kZonePacific_Kanton; // Pacific/Kanton
    -
    426 extern const complete::Info::ZoneInfo kZonePacific_Kiritimati; // Pacific/Kiritimati
    -
    427 extern const complete::Info::ZoneInfo kZonePacific_Kosrae; // Pacific/Kosrae
    -
    428 extern const complete::Info::ZoneInfo kZonePacific_Kwajalein; // Pacific/Kwajalein
    -
    429 extern const complete::Info::ZoneInfo kZonePacific_Marquesas; // Pacific/Marquesas
    -
    430 extern const complete::Info::ZoneInfo kZonePacific_Nauru; // Pacific/Nauru
    -
    431 extern const complete::Info::ZoneInfo kZonePacific_Niue; // Pacific/Niue
    -
    432 extern const complete::Info::ZoneInfo kZonePacific_Norfolk; // Pacific/Norfolk
    -
    433 extern const complete::Info::ZoneInfo kZonePacific_Noumea; // Pacific/Noumea
    -
    434 extern const complete::Info::ZoneInfo kZonePacific_Pago_Pago; // Pacific/Pago_Pago
    -
    435 extern const complete::Info::ZoneInfo kZonePacific_Palau; // Pacific/Palau
    -
    436 extern const complete::Info::ZoneInfo kZonePacific_Pitcairn; // Pacific/Pitcairn
    -
    437 extern const complete::Info::ZoneInfo kZonePacific_Port_Moresby; // Pacific/Port_Moresby
    -
    438 extern const complete::Info::ZoneInfo kZonePacific_Rarotonga; // Pacific/Rarotonga
    -
    439 extern const complete::Info::ZoneInfo kZonePacific_Tahiti; // Pacific/Tahiti
    -
    440 extern const complete::Info::ZoneInfo kZonePacific_Tarawa; // Pacific/Tarawa
    -
    441 extern const complete::Info::ZoneInfo kZonePacific_Tongatapu; // Pacific/Tongatapu
    -
    442 
    -
    443 
    -
    444 // Zone Ids
    -
    445 
    -
    446 const uint32_t kZoneIdAfrica_Abidjan = 0xc21305a3; // Africa/Abidjan
    -
    447 const uint32_t kZoneIdAfrica_Algiers = 0xd94515c1; // Africa/Algiers
    -
    448 const uint32_t kZoneIdAfrica_Bissau = 0x75564141; // Africa/Bissau
    -
    449 const uint32_t kZoneIdAfrica_Cairo = 0x77f8e228; // Africa/Cairo
    -
    450 const uint32_t kZoneIdAfrica_Casablanca = 0xc59f1b33; // Africa/Casablanca
    -
    451 const uint32_t kZoneIdAfrica_Ceuta = 0x77fb46ec; // Africa/Ceuta
    -
    452 const uint32_t kZoneIdAfrica_El_Aaiun = 0x9d6fb118; // Africa/El_Aaiun
    -
    453 const uint32_t kZoneIdAfrica_Johannesburg = 0xd5d157a0; // Africa/Johannesburg
    -
    454 const uint32_t kZoneIdAfrica_Juba = 0xd51b395c; // Africa/Juba
    -
    455 const uint32_t kZoneIdAfrica_Khartoum = 0xfb3d4205; // Africa/Khartoum
    -
    456 const uint32_t kZoneIdAfrica_Lagos = 0x789bb5d0; // Africa/Lagos
    -
    457 const uint32_t kZoneIdAfrica_Maputo = 0x8e6ca1f0; // Africa/Maputo
    -
    458 const uint32_t kZoneIdAfrica_Monrovia = 0x0ce90385; // Africa/Monrovia
    -
    459 const uint32_t kZoneIdAfrica_Nairobi = 0xa87ab57e; // Africa/Nairobi
    -
    460 const uint32_t kZoneIdAfrica_Ndjamena = 0x9fe09898; // Africa/Ndjamena
    -
    461 const uint32_t kZoneIdAfrica_Sao_Tome = 0x61b319d1; // Africa/Sao_Tome
    -
    462 const uint32_t kZoneIdAfrica_Tripoli = 0x9dfebd3d; // Africa/Tripoli
    -
    463 const uint32_t kZoneIdAfrica_Tunis = 0x79378e6d; // Africa/Tunis
    -
    464 const uint32_t kZoneIdAfrica_Windhoek = 0x789c9bd3; // Africa/Windhoek
    -
    465 const uint32_t kZoneIdAmerica_Adak = 0x97fe49d7; // America/Adak
    -
    466 const uint32_t kZoneIdAmerica_Anchorage = 0x5a79260e; // America/Anchorage
    -
    467 const uint32_t kZoneIdAmerica_Araguaina = 0x6f9a3aef; // America/Araguaina
    -
    468 const uint32_t kZoneIdAmerica_Argentina_Buenos_Aires = 0xd43b4c0d; // America/Argentina/Buenos_Aires
    -
    469 const uint32_t kZoneIdAmerica_Argentina_Catamarca = 0x8d40986b; // America/Argentina/Catamarca
    -
    470 const uint32_t kZoneIdAmerica_Argentina_Cordoba = 0xbfccc308; // America/Argentina/Cordoba
    -
    471 const uint32_t kZoneIdAmerica_Argentina_Jujuy = 0x5f2f46c5; // America/Argentina/Jujuy
    -
    472 const uint32_t kZoneIdAmerica_Argentina_La_Rioja = 0xa46b7eef; // America/Argentina/La_Rioja
    -
    473 const uint32_t kZoneIdAmerica_Argentina_Mendoza = 0xa9f72d5c; // America/Argentina/Mendoza
    -
    474 const uint32_t kZoneIdAmerica_Argentina_Rio_Gallegos = 0xc5b0f565; // America/Argentina/Rio_Gallegos
    -
    475 const uint32_t kZoneIdAmerica_Argentina_Salta = 0x5fc73403; // America/Argentina/Salta
    -
    476 const uint32_t kZoneIdAmerica_Argentina_San_Juan = 0x3e1009bd; // America/Argentina/San_Juan
    -
    477 const uint32_t kZoneIdAmerica_Argentina_San_Luis = 0x3e11238c; // America/Argentina/San_Luis
    -
    478 const uint32_t kZoneIdAmerica_Argentina_Tucuman = 0xe96399eb; // America/Argentina/Tucuman
    -
    479 const uint32_t kZoneIdAmerica_Argentina_Ushuaia = 0x320dcdde; // America/Argentina/Ushuaia
    -
    480 const uint32_t kZoneIdAmerica_Asuncion = 0x50ec79a6; // America/Asuncion
    -
    481 const uint32_t kZoneIdAmerica_Bahia = 0x97d815fb; // America/Bahia
    -
    482 const uint32_t kZoneIdAmerica_Bahia_Banderas = 0x14f6329a; // America/Bahia_Banderas
    -
    483 const uint32_t kZoneIdAmerica_Barbados = 0xcbbc3b04; // America/Barbados
    -
    484 const uint32_t kZoneIdAmerica_Belem = 0x97da580b; // America/Belem
    -
    485 const uint32_t kZoneIdAmerica_Belize = 0x93256c81; // America/Belize
    -
    486 const uint32_t kZoneIdAmerica_Boa_Vista = 0x0a7b7efe; // America/Boa_Vista
    -
    487 const uint32_t kZoneIdAmerica_Bogota = 0x93d7bc62; // America/Bogota
    -
    488 const uint32_t kZoneIdAmerica_Boise = 0x97dfc8d8; // America/Boise
    -
    489 const uint32_t kZoneIdAmerica_Cambridge_Bay = 0xd5a44aff; // America/Cambridge_Bay
    -
    490 const uint32_t kZoneIdAmerica_Campo_Grande = 0xfec3e7a6; // America/Campo_Grande
    -
    491 const uint32_t kZoneIdAmerica_Cancun = 0x953331be; // America/Cancun
    -
    492 const uint32_t kZoneIdAmerica_Caracas = 0x3be064f4; // America/Caracas
    -
    493 const uint32_t kZoneIdAmerica_Cayenne = 0x3c617269; // America/Cayenne
    -
    494 const uint32_t kZoneIdAmerica_Chicago = 0x4b92b5d4; // America/Chicago
    -
    495 const uint32_t kZoneIdAmerica_Chihuahua = 0x8827d776; // America/Chihuahua
    -
    496 const uint32_t kZoneIdAmerica_Ciudad_Juarez = 0x7347fc60; // America/Ciudad_Juarez
    -
    497 const uint32_t kZoneIdAmerica_Costa_Rica = 0x63ff66be; // America/Costa_Rica
    -
    498 const uint32_t kZoneIdAmerica_Coyhaique = 0xcc3314ee; // America/Coyhaique
    -
    499 const uint32_t kZoneIdAmerica_Cuiaba = 0x969a52eb; // America/Cuiaba
    -
    500 const uint32_t kZoneIdAmerica_Danmarkshavn = 0xf554d204; // America/Danmarkshavn
    -
    501 const uint32_t kZoneIdAmerica_Dawson = 0x978d8d12; // America/Dawson
    -
    502 const uint32_t kZoneIdAmerica_Dawson_Creek = 0x6cf24e5b; // America/Dawson_Creek
    -
    503 const uint32_t kZoneIdAmerica_Denver = 0x97d10b2a; // America/Denver
    -
    504 const uint32_t kZoneIdAmerica_Detroit = 0x925cfbc1; // America/Detroit
    -
    505 const uint32_t kZoneIdAmerica_Edmonton = 0x6cb9484a; // America/Edmonton
    -
    506 const uint32_t kZoneIdAmerica_Eirunepe = 0xf9b29683; // America/Eirunepe
    -
    507 const uint32_t kZoneIdAmerica_El_Salvador = 0x752ad652; // America/El_Salvador
    -
    508 const uint32_t kZoneIdAmerica_Fort_Nelson = 0x3f437e0f; // America/Fort_Nelson
    -
    509 const uint32_t kZoneIdAmerica_Fortaleza = 0x2ad018ee; // America/Fortaleza
    -
    510 const uint32_t kZoneIdAmerica_Glace_Bay = 0x9681f8dd; // America/Glace_Bay
    -
    511 const uint32_t kZoneIdAmerica_Goose_Bay = 0xb649541e; // America/Goose_Bay
    -
    512 const uint32_t kZoneIdAmerica_Grand_Turk = 0x6e216197; // America/Grand_Turk
    -
    513 const uint32_t kZoneIdAmerica_Guatemala = 0x0c8259f7; // America/Guatemala
    -
    514 const uint32_t kZoneIdAmerica_Guayaquil = 0x17e64958; // America/Guayaquil
    -
    515 const uint32_t kZoneIdAmerica_Guyana = 0x9ff7bd0b; // America/Guyana
    -
    516 const uint32_t kZoneIdAmerica_Halifax = 0xbc5b7183; // America/Halifax
    -
    517 const uint32_t kZoneIdAmerica_Havana = 0xa0e15675; // America/Havana
    -
    518 const uint32_t kZoneIdAmerica_Hermosillo = 0x065d21c4; // America/Hermosillo
    -
    519 const uint32_t kZoneIdAmerica_Indiana_Indianapolis = 0x28a669a4; // America/Indiana/Indianapolis
    -
    520 const uint32_t kZoneIdAmerica_Indiana_Knox = 0x6554adc9; // America/Indiana/Knox
    -
    521 const uint32_t kZoneIdAmerica_Indiana_Marengo = 0x2feeee72; // America/Indiana/Marengo
    -
    522 const uint32_t kZoneIdAmerica_Indiana_Petersburg = 0x94ac7acc; // America/Indiana/Petersburg
    -
    523 const uint32_t kZoneIdAmerica_Indiana_Tell_City = 0x09263612; // America/Indiana/Tell_City
    -
    524 const uint32_t kZoneIdAmerica_Indiana_Vevay = 0x10aca054; // America/Indiana/Vevay
    -
    525 const uint32_t kZoneIdAmerica_Indiana_Vincennes = 0x28a0b212; // America/Indiana/Vincennes
    -
    526 const uint32_t kZoneIdAmerica_Indiana_Winamac = 0x4413fa69; // America/Indiana/Winamac
    -
    527 const uint32_t kZoneIdAmerica_Inuvik = 0xa42189fc; // America/Inuvik
    -
    528 const uint32_t kZoneIdAmerica_Iqaluit = 0x2de310bf; // America/Iqaluit
    -
    529 const uint32_t kZoneIdAmerica_Jamaica = 0x565dad6c; // America/Jamaica
    -
    530 const uint32_t kZoneIdAmerica_Juneau = 0xa6f13e2e; // America/Juneau
    -
    531 const uint32_t kZoneIdAmerica_Kentucky_Louisville = 0x1a21024b; // America/Kentucky/Louisville
    -
    532 const uint32_t kZoneIdAmerica_Kentucky_Monticello = 0xde71c439; // America/Kentucky/Monticello
    -
    533 const uint32_t kZoneIdAmerica_La_Paz = 0xaa29125d; // America/La_Paz
    -
    534 const uint32_t kZoneIdAmerica_Lima = 0x980468c9; // America/Lima
    -
    535 const uint32_t kZoneIdAmerica_Los_Angeles = 0xb7f7e8f2; // America/Los_Angeles
    -
    536 const uint32_t kZoneIdAmerica_Maceio = 0xac80c6d4; // America/Maceio
    -
    537 const uint32_t kZoneIdAmerica_Managua = 0x3d5e7600; // America/Managua
    -
    538 const uint32_t kZoneIdAmerica_Manaus = 0xac86bf8b; // America/Manaus
    -
    539 const uint32_t kZoneIdAmerica_Martinique = 0x551e84c5; // America/Martinique
    -
    540 const uint32_t kZoneIdAmerica_Matamoros = 0xdd1b0259; // America/Matamoros
    -
    541 const uint32_t kZoneIdAmerica_Mazatlan = 0x0532189e; // America/Mazatlan
    -
    542 const uint32_t kZoneIdAmerica_Menominee = 0xe0e9c583; // America/Menominee
    -
    543 const uint32_t kZoneIdAmerica_Merida = 0xacd172d8; // America/Merida
    -
    544 const uint32_t kZoneIdAmerica_Metlakatla = 0x84de2686; // America/Metlakatla
    -
    545 const uint32_t kZoneIdAmerica_Mexico_City = 0xd0d93f43; // America/Mexico_City
    -
    546 const uint32_t kZoneIdAmerica_Miquelon = 0x59674330; // America/Miquelon
    -
    547 const uint32_t kZoneIdAmerica_Moncton = 0x5e07fe24; // America/Moncton
    -
    548 const uint32_t kZoneIdAmerica_Monterrey = 0x269a1deb; // America/Monterrey
    -
    549 const uint32_t kZoneIdAmerica_Montevideo = 0xfa214780; // America/Montevideo
    -
    550 const uint32_t kZoneIdAmerica_New_York = 0x1e2a7654; // America/New_York
    -
    551 const uint32_t kZoneIdAmerica_Nome = 0x98059b15; // America/Nome
    -
    552 const uint32_t kZoneIdAmerica_Noronha = 0xab5116fb; // America/Noronha
    -
    553 const uint32_t kZoneIdAmerica_North_Dakota_Beulah = 0x9b52b384; // America/North_Dakota/Beulah
    -
    554 const uint32_t kZoneIdAmerica_North_Dakota_Center = 0x9da42814; // America/North_Dakota/Center
    -
    555 const uint32_t kZoneIdAmerica_North_Dakota_New_Salem = 0x04f9958e; // America/North_Dakota/New_Salem
    -
    556 const uint32_t kZoneIdAmerica_Nuuk = 0x9805b5a9; // America/Nuuk
    -
    557 const uint32_t kZoneIdAmerica_Ojinaga = 0xebfde83f; // America/Ojinaga
    -
    558 const uint32_t kZoneIdAmerica_Panama = 0xb3863854; // America/Panama
    -
    559 const uint32_t kZoneIdAmerica_Paramaribo = 0xb319e4c4; // America/Paramaribo
    -
    560 const uint32_t kZoneIdAmerica_Phoenix = 0x34b5af01; // America/Phoenix
    -
    561 const uint32_t kZoneIdAmerica_Port_au_Prince = 0x8e4a7bdc; // America/Port-au-Prince
    -
    562 const uint32_t kZoneIdAmerica_Porto_Velho = 0x6b1aac77; // America/Porto_Velho
    -
    563 const uint32_t kZoneIdAmerica_Puerto_Rico = 0x6752ca31; // America/Puerto_Rico
    -
    564 const uint32_t kZoneIdAmerica_Punta_Arenas = 0xc2c3bce7; // America/Punta_Arenas
    -
    565 const uint32_t kZoneIdAmerica_Rankin_Inlet = 0xc8de4984; // America/Rankin_Inlet
    -
    566 const uint32_t kZoneIdAmerica_Recife = 0xb8730494; // America/Recife
    -
    567 const uint32_t kZoneIdAmerica_Regina = 0xb875371c; // America/Regina
    -
    568 const uint32_t kZoneIdAmerica_Resolute = 0xc7093459; // America/Resolute
    -
    569 const uint32_t kZoneIdAmerica_Rio_Branco = 0x9d352764; // America/Rio_Branco
    -
    570 const uint32_t kZoneIdAmerica_Santarem = 0x740caec1; // America/Santarem
    -
    571 const uint32_t kZoneIdAmerica_Santiago = 0x7410c9bc; // America/Santiago
    -
    572 const uint32_t kZoneIdAmerica_Santo_Domingo = 0x75a0d177; // America/Santo_Domingo
    -
    573 const uint32_t kZoneIdAmerica_Sao_Paulo = 0x1063bfc9; // America/Sao_Paulo
    -
    574 const uint32_t kZoneIdAmerica_Scoresbysund = 0x123f8d2a; // America/Scoresbysund
    -
    575 const uint32_t kZoneIdAmerica_Sitka = 0x99104ce2; // America/Sitka
    -
    576 const uint32_t kZoneIdAmerica_St_Johns = 0x04b14e6e; // America/St_Johns
    -
    577 const uint32_t kZoneIdAmerica_Swift_Current = 0xdef98e55; // America/Swift_Current
    -
    578 const uint32_t kZoneIdAmerica_Tegucigalpa = 0xbfd6fd4c; // America/Tegucigalpa
    -
    579 const uint32_t kZoneIdAmerica_Thule = 0x9921dd68; // America/Thule
    -
    580 const uint32_t kZoneIdAmerica_Tijuana = 0x6aa1df72; // America/Tijuana
    -
    581 const uint32_t kZoneIdAmerica_Toronto = 0x792e851b; // America/Toronto
    -
    582 const uint32_t kZoneIdAmerica_Vancouver = 0x2c6f6b1f; // America/Vancouver
    -
    583 const uint32_t kZoneIdAmerica_Whitehorse = 0x54e0e3e8; // America/Whitehorse
    -
    584 const uint32_t kZoneIdAmerica_Winnipeg = 0x8c7dafc7; // America/Winnipeg
    -
    585 const uint32_t kZoneIdAmerica_Yakutat = 0xd8ee31e9; // America/Yakutat
    -
    586 const uint32_t kZoneIdAntarctica_Casey = 0xe2022583; // Antarctica/Casey
    -
    587 const uint32_t kZoneIdAntarctica_Davis = 0xe2144b45; // Antarctica/Davis
    -
    588 const uint32_t kZoneIdAntarctica_Macquarie = 0x92f47626; // Antarctica/Macquarie
    -
    589 const uint32_t kZoneIdAntarctica_Mawson = 0x399cd863; // Antarctica/Mawson
    -
    590 const uint32_t kZoneIdAntarctica_Palmer = 0x40962f4f; // Antarctica/Palmer
    -
    591 const uint32_t kZoneIdAntarctica_Rothera = 0x0e86d203; // Antarctica/Rothera
    -
    592 const uint32_t kZoneIdAntarctica_Troll = 0xe33f085b; // Antarctica/Troll
    -
    593 const uint32_t kZoneIdAntarctica_Vostok = 0x4f966fd4; // Antarctica/Vostok
    -
    594 const uint32_t kZoneIdAsia_Almaty = 0xa61f41fa; // Asia/Almaty
    -
    595 const uint32_t kZoneIdAsia_Amman = 0x148d21bc; // Asia/Amman
    -
    596 const uint32_t kZoneIdAsia_Anadyr = 0xa63cebd1; // Asia/Anadyr
    -
    597 const uint32_t kZoneIdAsia_Aqtau = 0x148f710e; // Asia/Aqtau
    -
    598 const uint32_t kZoneIdAsia_Aqtobe = 0xa67dcc4e; // Asia/Aqtobe
    -
    599 const uint32_t kZoneIdAsia_Ashgabat = 0xba87598d; // Asia/Ashgabat
    -
    600 const uint32_t kZoneIdAsia_Atyrau = 0xa6b6e068; // Asia/Atyrau
    -
    601 const uint32_t kZoneIdAsia_Baghdad = 0x9ceffbed; // Asia/Baghdad
    -
    602 const uint32_t kZoneIdAsia_Baku = 0x1fa788b5; // Asia/Baku
    -
    603 const uint32_t kZoneIdAsia_Bangkok = 0x9d6e3aaf; // Asia/Bangkok
    -
    604 const uint32_t kZoneIdAsia_Barnaul = 0x9dba4997; // Asia/Barnaul
    -
    605 const uint32_t kZoneIdAsia_Beirut = 0xa7f3d5fd; // Asia/Beirut
    -
    606 const uint32_t kZoneIdAsia_Bishkek = 0xb0728553; // Asia/Bishkek
    -
    607 const uint32_t kZoneIdAsia_Chita = 0x14ae863b; // Asia/Chita
    -
    608 const uint32_t kZoneIdAsia_Colombo = 0x0af0e91d; // Asia/Colombo
    -
    609 const uint32_t kZoneIdAsia_Damascus = 0x20fbb063; // Asia/Damascus
    -
    610 const uint32_t kZoneIdAsia_Dhaka = 0x14c07b8b; // Asia/Dhaka
    -
    611 const uint32_t kZoneIdAsia_Dili = 0x1fa8c394; // Asia/Dili
    -
    612 const uint32_t kZoneIdAsia_Dubai = 0x14c79f77; // Asia/Dubai
    -
    613 const uint32_t kZoneIdAsia_Dushanbe = 0x32fc5c3c; // Asia/Dushanbe
    -
    614 const uint32_t kZoneIdAsia_Famagusta = 0x289b4f8b; // Asia/Famagusta
    -
    615 const uint32_t kZoneIdAsia_Gaza = 0x1faa4875; // Asia/Gaza
    -
    616 const uint32_t kZoneIdAsia_Hebron = 0xb5eef250; // Asia/Hebron
    -
    617 const uint32_t kZoneIdAsia_Ho_Chi_Minh = 0x20f2d127; // Asia/Ho_Chi_Minh
    -
    618 const uint32_t kZoneIdAsia_Hong_Kong = 0x577f28ac; // Asia/Hong_Kong
    -
    619 const uint32_t kZoneIdAsia_Hovd = 0x1fab0fe3; // Asia/Hovd
    -
    620 const uint32_t kZoneIdAsia_Irkutsk = 0xdfbf213f; // Asia/Irkutsk
    -
    621 const uint32_t kZoneIdAsia_Jakarta = 0x0506ab50; // Asia/Jakarta
    -
    622 const uint32_t kZoneIdAsia_Jayapura = 0xc6833c2f; // Asia/Jayapura
    -
    623 const uint32_t kZoneIdAsia_Jerusalem = 0x5becd23a; // Asia/Jerusalem
    -
    624 const uint32_t kZoneIdAsia_Kabul = 0x153b5601; // Asia/Kabul
    -
    625 const uint32_t kZoneIdAsia_Kamchatka = 0x73baf9d7; // Asia/Kamchatka
    -
    626 const uint32_t kZoneIdAsia_Karachi = 0x527f5245; // Asia/Karachi
    -
    627 const uint32_t kZoneIdAsia_Kathmandu = 0x9a96ce6f; // Asia/Kathmandu
    -
    628 const uint32_t kZoneIdAsia_Khandyga = 0x9685a4d9; // Asia/Khandyga
    -
    629 const uint32_t kZoneIdAsia_Kolkata = 0x72c06cd9; // Asia/Kolkata
    -
    630 const uint32_t kZoneIdAsia_Krasnoyarsk = 0xd0376c6a; // Asia/Krasnoyarsk
    -
    631 const uint32_t kZoneIdAsia_Kuching = 0x801b003b; // Asia/Kuching
    -
    632 const uint32_t kZoneIdAsia_Macau = 0x155f88b9; // Asia/Macau
    -
    633 const uint32_t kZoneIdAsia_Magadan = 0xebacc19b; // Asia/Magadan
    -
    634 const uint32_t kZoneIdAsia_Makassar = 0x6aa21c85; // Asia/Makassar
    -
    635 const uint32_t kZoneIdAsia_Manila = 0xc156c944; // Asia/Manila
    -
    636 const uint32_t kZoneIdAsia_Nicosia = 0x4b0fcf78; // Asia/Nicosia
    -
    637 const uint32_t kZoneIdAsia_Novokuznetsk = 0x69264f93; // Asia/Novokuznetsk
    -
    638 const uint32_t kZoneIdAsia_Novosibirsk = 0xa2a435cb; // Asia/Novosibirsk
    -
    639 const uint32_t kZoneIdAsia_Omsk = 0x1faeddac; // Asia/Omsk
    -
    640 const uint32_t kZoneIdAsia_Oral = 0x1faef0a0; // Asia/Oral
    -
    641 const uint32_t kZoneIdAsia_Pontianak = 0x1a76c057; // Asia/Pontianak
    -
    642 const uint32_t kZoneIdAsia_Pyongyang = 0x93ed1c8e; // Asia/Pyongyang
    -
    643 const uint32_t kZoneIdAsia_Qatar = 0x15a8330b; // Asia/Qatar
    -
    644 const uint32_t kZoneIdAsia_Qostanay = 0x654fe522; // Asia/Qostanay
    -
    645 const uint32_t kZoneIdAsia_Qyzylorda = 0x71282e81; // Asia/Qyzylorda
    -
    646 const uint32_t kZoneIdAsia_Riyadh = 0xcd973d93; // Asia/Riyadh
    -
    647 const uint32_t kZoneIdAsia_Sakhalin = 0xf4a1c9bd; // Asia/Sakhalin
    -
    648 const uint32_t kZoneIdAsia_Samarkand = 0x13ae5104; // Asia/Samarkand
    -
    649 const uint32_t kZoneIdAsia_Seoul = 0x15ce82da; // Asia/Seoul
    -
    650 const uint32_t kZoneIdAsia_Shanghai = 0xf895a7f5; // Asia/Shanghai
    -
    651 const uint32_t kZoneIdAsia_Singapore = 0xcf8581fa; // Asia/Singapore
    -
    652 const uint32_t kZoneIdAsia_Srednekolymsk = 0xbf8e337d; // Asia/Srednekolymsk
    -
    653 const uint32_t kZoneIdAsia_Taipei = 0xd1a844ae; // Asia/Taipei
    -
    654 const uint32_t kZoneIdAsia_Tashkent = 0xf3924254; // Asia/Tashkent
    -
    655 const uint32_t kZoneIdAsia_Tbilisi = 0x0903e442; // Asia/Tbilisi
    -
    656 const uint32_t kZoneIdAsia_Tehran = 0xd1f02254; // Asia/Tehran
    -
    657 const uint32_t kZoneIdAsia_Thimphu = 0x170380d1; // Asia/Thimphu
    -
    658 const uint32_t kZoneIdAsia_Tokyo = 0x15e606a8; // Asia/Tokyo
    -
    659 const uint32_t kZoneIdAsia_Tomsk = 0x15e60e60; // Asia/Tomsk
    -
    660 const uint32_t kZoneIdAsia_Ulaanbaatar = 0x30f0cc4e; // Asia/Ulaanbaatar
    -
    661 const uint32_t kZoneIdAsia_Urumqi = 0xd5379735; // Asia/Urumqi
    -
    662 const uint32_t kZoneIdAsia_Ust_Nera = 0x4785f921; // Asia/Ust-Nera
    -
    663 const uint32_t kZoneIdAsia_Vladivostok = 0x29de34a8; // Asia/Vladivostok
    -
    664 const uint32_t kZoneIdAsia_Yakutsk = 0x87bb3a9e; // Asia/Yakutsk
    -
    665 const uint32_t kZoneIdAsia_Yangon = 0xdd54a8be; // Asia/Yangon
    -
    666 const uint32_t kZoneIdAsia_Yekaterinburg = 0xfb544c6e; // Asia/Yekaterinburg
    -
    667 const uint32_t kZoneIdAsia_Yerevan = 0x9185c8cc; // Asia/Yerevan
    -
    668 const uint32_t kZoneIdAtlantic_Azores = 0xf93ed918; // Atlantic/Azores
    -
    669 const uint32_t kZoneIdAtlantic_Bermuda = 0x3d4bb1c4; // Atlantic/Bermuda
    -
    670 const uint32_t kZoneIdAtlantic_Canary = 0xfc23f2c2; // Atlantic/Canary
    -
    671 const uint32_t kZoneIdAtlantic_Cape_Verde = 0x5c5e1772; // Atlantic/Cape_Verde
    -
    672 const uint32_t kZoneIdAtlantic_Faroe = 0xe110a971; // Atlantic/Faroe
    -
    673 const uint32_t kZoneIdAtlantic_Madeira = 0x81b5c037; // Atlantic/Madeira
    -
    674 const uint32_t kZoneIdAtlantic_South_Georgia = 0x33013174; // Atlantic/South_Georgia
    -
    675 const uint32_t kZoneIdAtlantic_Stanley = 0x7bb3e1c4; // Atlantic/Stanley
    -
    676 const uint32_t kZoneIdAustralia_Adelaide = 0x2428e8a3; // Australia/Adelaide
    -
    677 const uint32_t kZoneIdAustralia_Brisbane = 0x4fedc9c0; // Australia/Brisbane
    -
    678 const uint32_t kZoneIdAustralia_Broken_Hill = 0xb06eada3; // Australia/Broken_Hill
    -
    679 const uint32_t kZoneIdAustralia_Darwin = 0x2876bdff; // Australia/Darwin
    -
    680 const uint32_t kZoneIdAustralia_Eucla = 0x8cf99e44; // Australia/Eucla
    -
    681 const uint32_t kZoneIdAustralia_Hobart = 0x32bf951a; // Australia/Hobart
    -
    682 const uint32_t kZoneIdAustralia_Lindeman = 0xe05029e2; // Australia/Lindeman
    -
    683 const uint32_t kZoneIdAustralia_Lord_Howe = 0xa748b67d; // Australia/Lord_Howe
    -
    684 const uint32_t kZoneIdAustralia_Melbourne = 0x0fe559a3; // Australia/Melbourne
    -
    685 const uint32_t kZoneIdAustralia_Perth = 0x8db8269d; // Australia/Perth
    -
    686 const uint32_t kZoneIdAustralia_Sydney = 0x4d1e9776; // Australia/Sydney
    -
    687 const uint32_t kZoneIdEtc_GMT = 0xd8e2de58; // Etc/GMT
    -
    688 const uint32_t kZoneIdEtc_GMT_PLUS_1 = 0x9d13da14; // Etc/GMT+1
    -
    689 const uint32_t kZoneIdEtc_GMT_PLUS_10 = 0x3f8f1cc4; // Etc/GMT+10
    -
    690 const uint32_t kZoneIdEtc_GMT_PLUS_11 = 0x3f8f1cc5; // Etc/GMT+11
    -
    691 const uint32_t kZoneIdEtc_GMT_PLUS_12 = 0x3f8f1cc6; // Etc/GMT+12
    -
    692 const uint32_t kZoneIdEtc_GMT_PLUS_2 = 0x9d13da15; // Etc/GMT+2
    -
    693 const uint32_t kZoneIdEtc_GMT_PLUS_3 = 0x9d13da16; // Etc/GMT+3
    -
    694 const uint32_t kZoneIdEtc_GMT_PLUS_4 = 0x9d13da17; // Etc/GMT+4
    -
    695 const uint32_t kZoneIdEtc_GMT_PLUS_5 = 0x9d13da18; // Etc/GMT+5
    -
    696 const uint32_t kZoneIdEtc_GMT_PLUS_6 = 0x9d13da19; // Etc/GMT+6
    -
    697 const uint32_t kZoneIdEtc_GMT_PLUS_7 = 0x9d13da1a; // Etc/GMT+7
    -
    698 const uint32_t kZoneIdEtc_GMT_PLUS_8 = 0x9d13da1b; // Etc/GMT+8
    -
    699 const uint32_t kZoneIdEtc_GMT_PLUS_9 = 0x9d13da1c; // Etc/GMT+9
    -
    700 const uint32_t kZoneIdEtc_GMT_1 = 0x9d13da56; // Etc/GMT-1
    -
    701 const uint32_t kZoneIdEtc_GMT_10 = 0x3f8f2546; // Etc/GMT-10
    -
    702 const uint32_t kZoneIdEtc_GMT_11 = 0x3f8f2547; // Etc/GMT-11
    -
    703 const uint32_t kZoneIdEtc_GMT_12 = 0x3f8f2548; // Etc/GMT-12
    -
    704 const uint32_t kZoneIdEtc_GMT_13 = 0x3f8f2549; // Etc/GMT-13
    -
    705 const uint32_t kZoneIdEtc_GMT_14 = 0x3f8f254a; // Etc/GMT-14
    -
    706 const uint32_t kZoneIdEtc_GMT_2 = 0x9d13da57; // Etc/GMT-2
    -
    707 const uint32_t kZoneIdEtc_GMT_3 = 0x9d13da58; // Etc/GMT-3
    -
    708 const uint32_t kZoneIdEtc_GMT_4 = 0x9d13da59; // Etc/GMT-4
    -
    709 const uint32_t kZoneIdEtc_GMT_5 = 0x9d13da5a; // Etc/GMT-5
    -
    710 const uint32_t kZoneIdEtc_GMT_6 = 0x9d13da5b; // Etc/GMT-6
    -
    711 const uint32_t kZoneIdEtc_GMT_7 = 0x9d13da5c; // Etc/GMT-7
    -
    712 const uint32_t kZoneIdEtc_GMT_8 = 0x9d13da5d; // Etc/GMT-8
    -
    713 const uint32_t kZoneIdEtc_GMT_9 = 0x9d13da5e; // Etc/GMT-9
    -
    714 const uint32_t kZoneIdEtc_UTC = 0xd8e31abc; // Etc/UTC
    -
    715 const uint32_t kZoneIdEurope_Andorra = 0x97f6764b; // Europe/Andorra
    -
    716 const uint32_t kZoneIdEurope_Astrakhan = 0xe22256e1; // Europe/Astrakhan
    -
    717 const uint32_t kZoneIdEurope_Athens = 0x4318fa27; // Europe/Athens
    -
    718 const uint32_t kZoneIdEurope_Belgrade = 0xe0532b3a; // Europe/Belgrade
    -
    719 const uint32_t kZoneIdEurope_Berlin = 0x44644c20; // Europe/Berlin
    -
    720 const uint32_t kZoneIdEurope_Brussels = 0xdee07337; // Europe/Brussels
    -
    721 const uint32_t kZoneIdEurope_Bucharest = 0xfb349ec5; // Europe/Bucharest
    -
    722 const uint32_t kZoneIdEurope_Budapest = 0x9ce0197c; // Europe/Budapest
    -
    723 const uint32_t kZoneIdEurope_Chisinau = 0xad58aa18; // Europe/Chisinau
    -
    724 const uint32_t kZoneIdEurope_Dublin = 0x4a275f62; // Europe/Dublin
    -
    725 const uint32_t kZoneIdEurope_Gibraltar = 0xf8e325fc; // Europe/Gibraltar
    -
    726 const uint32_t kZoneIdEurope_Helsinki = 0x6ab2975b; // Europe/Helsinki
    -
    727 const uint32_t kZoneIdEurope_Istanbul = 0x9e09d6e6; // Europe/Istanbul
    -
    728 const uint32_t kZoneIdEurope_Kaliningrad = 0xd33b2f28; // Europe/Kaliningrad
    -
    729 const uint32_t kZoneIdEurope_Kirov = 0xfaf5abef; // Europe/Kirov
    -
    730 const uint32_t kZoneIdEurope_Kyiv = 0xa2c1e347; // Europe/Kyiv
    -
    731 const uint32_t kZoneIdEurope_Lisbon = 0x5c00a70b; // Europe/Lisbon
    -
    732 const uint32_t kZoneIdEurope_London = 0x5c6a84ae; // Europe/London
    -
    733 const uint32_t kZoneIdEurope_Madrid = 0x5dbd1535; // Europe/Madrid
    -
    734 const uint32_t kZoneIdEurope_Malta = 0xfb1560f3; // Europe/Malta
    -
    735 const uint32_t kZoneIdEurope_Minsk = 0xfb19cc66; // Europe/Minsk
    -
    736 const uint32_t kZoneIdEurope_Moscow = 0x5ec266fc; // Europe/Moscow
    -
    737 const uint32_t kZoneIdEurope_Paris = 0xfb4bc2a3; // Europe/Paris
    -
    738 const uint32_t kZoneIdEurope_Prague = 0x65ee5d48; // Europe/Prague
    -
    739 const uint32_t kZoneIdEurope_Riga = 0xa2c57587; // Europe/Riga
    -
    740 const uint32_t kZoneIdEurope_Rome = 0xa2c58fd7; // Europe/Rome
    -
    741 const uint32_t kZoneIdEurope_Samara = 0x6bc0b139; // Europe/Samara
    -
    742 const uint32_t kZoneIdEurope_Saratov = 0xe4315da4; // Europe/Saratov
    -
    743 const uint32_t kZoneIdEurope_Simferopol = 0xda9eb724; // Europe/Simferopol
    -
    744 const uint32_t kZoneIdEurope_Sofia = 0xfb898656; // Europe/Sofia
    -
    745 const uint32_t kZoneIdEurope_Tallinn = 0x30c4e096; // Europe/Tallinn
    -
    746 const uint32_t kZoneIdEurope_Tirane = 0x6ea95b47; // Europe/Tirane
    -
    747 const uint32_t kZoneIdEurope_Ulyanovsk = 0xe03783d0; // Europe/Ulyanovsk
    -
    748 const uint32_t kZoneIdEurope_Vienna = 0x734cc2e5; // Europe/Vienna
    -
    749 const uint32_t kZoneIdEurope_Vilnius = 0xdd63b8ce; // Europe/Vilnius
    -
    750 const uint32_t kZoneIdEurope_Volgograd = 0x3ed0f389; // Europe/Volgograd
    -
    751 const uint32_t kZoneIdEurope_Warsaw = 0x75185c19; // Europe/Warsaw
    -
    752 const uint32_t kZoneIdEurope_Zurich = 0x7d8195b9; // Europe/Zurich
    -
    753 const uint32_t kZoneIdIndian_Chagos = 0x456f7c3c; // Indian/Chagos
    -
    754 const uint32_t kZoneIdIndian_Maldives = 0x9869681c; // Indian/Maldives
    -
    755 const uint32_t kZoneIdIndian_Mauritius = 0x7b09c02a; // Indian/Mauritius
    -
    756 const uint32_t kZoneIdPacific_Apia = 0x23359b5e; // Pacific/Apia
    -
    757 const uint32_t kZoneIdPacific_Auckland = 0x25062f86; // Pacific/Auckland
    -
    758 const uint32_t kZoneIdPacific_Bougainville = 0x5e10f7a4; // Pacific/Bougainville
    -
    759 const uint32_t kZoneIdPacific_Chatham = 0x2f0de999; // Pacific/Chatham
    -
    760 const uint32_t kZoneIdPacific_Easter = 0xcf54f7e7; // Pacific/Easter
    -
    761 const uint32_t kZoneIdPacific_Efate = 0x8a2bce28; // Pacific/Efate
    -
    762 const uint32_t kZoneIdPacific_Fakaofo = 0x06532bba; // Pacific/Fakaofo
    -
    763 const uint32_t kZoneIdPacific_Fiji = 0x23383ba5; // Pacific/Fiji
    -
    764 const uint32_t kZoneIdPacific_Galapagos = 0xa952f752; // Pacific/Galapagos
    -
    765 const uint32_t kZoneIdPacific_Gambier = 0x53720c3a; // Pacific/Gambier
    -
    766 const uint32_t kZoneIdPacific_Guadalcanal = 0xf4dd25f0; // Pacific/Guadalcanal
    -
    767 const uint32_t kZoneIdPacific_Guam = 0x2338f9ed; // Pacific/Guam
    -
    768 const uint32_t kZoneIdPacific_Honolulu = 0xe6e70af9; // Pacific/Honolulu
    -
    769 const uint32_t kZoneIdPacific_Kanton = 0xdd512f0e; // Pacific/Kanton
    -
    770 const uint32_t kZoneIdPacific_Kiritimati = 0x8305073a; // Pacific/Kiritimati
    -
    771 const uint32_t kZoneIdPacific_Kosrae = 0xde5139a8; // Pacific/Kosrae
    -
    772 const uint32_t kZoneIdPacific_Kwajalein = 0x8e216759; // Pacific/Kwajalein
    -
    773 const uint32_t kZoneIdPacific_Marquesas = 0x57ca7135; // Pacific/Marquesas
    -
    774 const uint32_t kZoneIdPacific_Nauru = 0x8acc41ae; // Pacific/Nauru
    -
    775 const uint32_t kZoneIdPacific_Niue = 0x233ca014; // Pacific/Niue
    -
    776 const uint32_t kZoneIdPacific_Norfolk = 0x8f4eb4be; // Pacific/Norfolk
    -
    777 const uint32_t kZoneIdPacific_Noumea = 0xe551b788; // Pacific/Noumea
    -
    778 const uint32_t kZoneIdPacific_Pago_Pago = 0x603aebd0; // Pacific/Pago_Pago
    -
    779 const uint32_t kZoneIdPacific_Palau = 0x8af04a36; // Pacific/Palau
    -
    780 const uint32_t kZoneIdPacific_Pitcairn = 0x8837d8bd; // Pacific/Pitcairn
    -
    781 const uint32_t kZoneIdPacific_Port_Moresby = 0xa7ba7f68; // Pacific/Port_Moresby
    -
    782 const uint32_t kZoneIdPacific_Rarotonga = 0x9981a3b0; // Pacific/Rarotonga
    -
    783 const uint32_t kZoneIdPacific_Tahiti = 0xf24c2446; // Pacific/Tahiti
    -
    784 const uint32_t kZoneIdPacific_Tarawa = 0xf2517e63; // Pacific/Tarawa
    -
    785 const uint32_t kZoneIdPacific_Tongatapu = 0x262ca836; // Pacific/Tongatapu
    -
    786 
    -
    787 
    -
    788 //---------------------------------------------------------------------------
    -
    789 // Supported links: 257
    -
    790 //---------------------------------------------------------------------------
    -
    791 
    -
    792 extern const complete::Info::ZoneInfo kZoneAfrica_Accra; // Africa/Accra -> Africa/Abidjan
    -
    793 extern const complete::Info::ZoneInfo kZoneAfrica_Addis_Ababa; // Africa/Addis_Ababa -> Africa/Nairobi
    -
    794 extern const complete::Info::ZoneInfo kZoneAfrica_Asmara; // Africa/Asmara -> Africa/Nairobi
    -
    795 extern const complete::Info::ZoneInfo kZoneAfrica_Asmera; // Africa/Asmera -> Africa/Nairobi
    -
    796 extern const complete::Info::ZoneInfo kZoneAfrica_Bamako; // Africa/Bamako -> Africa/Abidjan
    -
    797 extern const complete::Info::ZoneInfo kZoneAfrica_Bangui; // Africa/Bangui -> Africa/Lagos
    -
    798 extern const complete::Info::ZoneInfo kZoneAfrica_Banjul; // Africa/Banjul -> Africa/Abidjan
    -
    799 extern const complete::Info::ZoneInfo kZoneAfrica_Blantyre; // Africa/Blantyre -> Africa/Maputo
    -
    800 extern const complete::Info::ZoneInfo kZoneAfrica_Brazzaville; // Africa/Brazzaville -> Africa/Lagos
    -
    801 extern const complete::Info::ZoneInfo kZoneAfrica_Bujumbura; // Africa/Bujumbura -> Africa/Maputo
    -
    802 extern const complete::Info::ZoneInfo kZoneAfrica_Conakry; // Africa/Conakry -> Africa/Abidjan
    -
    803 extern const complete::Info::ZoneInfo kZoneAfrica_Dakar; // Africa/Dakar -> Africa/Abidjan
    -
    804 extern const complete::Info::ZoneInfo kZoneAfrica_Dar_es_Salaam; // Africa/Dar_es_Salaam -> Africa/Nairobi
    -
    805 extern const complete::Info::ZoneInfo kZoneAfrica_Djibouti; // Africa/Djibouti -> Africa/Nairobi
    -
    806 extern const complete::Info::ZoneInfo kZoneAfrica_Douala; // Africa/Douala -> Africa/Lagos
    -
    807 extern const complete::Info::ZoneInfo kZoneAfrica_Freetown; // Africa/Freetown -> Africa/Abidjan
    -
    808 extern const complete::Info::ZoneInfo kZoneAfrica_Gaborone; // Africa/Gaborone -> Africa/Maputo
    -
    809 extern const complete::Info::ZoneInfo kZoneAfrica_Harare; // Africa/Harare -> Africa/Maputo
    -
    810 extern const complete::Info::ZoneInfo kZoneAfrica_Kampala; // Africa/Kampala -> Africa/Nairobi
    -
    811 extern const complete::Info::ZoneInfo kZoneAfrica_Kigali; // Africa/Kigali -> Africa/Maputo
    -
    812 extern const complete::Info::ZoneInfo kZoneAfrica_Kinshasa; // Africa/Kinshasa -> Africa/Lagos
    -
    813 extern const complete::Info::ZoneInfo kZoneAfrica_Libreville; // Africa/Libreville -> Africa/Lagos
    -
    814 extern const complete::Info::ZoneInfo kZoneAfrica_Lome; // Africa/Lome -> Africa/Abidjan
    -
    815 extern const complete::Info::ZoneInfo kZoneAfrica_Luanda; // Africa/Luanda -> Africa/Lagos
    -
    816 extern const complete::Info::ZoneInfo kZoneAfrica_Lubumbashi; // Africa/Lubumbashi -> Africa/Maputo
    -
    817 extern const complete::Info::ZoneInfo kZoneAfrica_Lusaka; // Africa/Lusaka -> Africa/Maputo
    -
    818 extern const complete::Info::ZoneInfo kZoneAfrica_Malabo; // Africa/Malabo -> Africa/Lagos
    -
    819 extern const complete::Info::ZoneInfo kZoneAfrica_Maseru; // Africa/Maseru -> Africa/Johannesburg
    -
    820 extern const complete::Info::ZoneInfo kZoneAfrica_Mbabane; // Africa/Mbabane -> Africa/Johannesburg
    -
    821 extern const complete::Info::ZoneInfo kZoneAfrica_Mogadishu; // Africa/Mogadishu -> Africa/Nairobi
    -
    822 extern const complete::Info::ZoneInfo kZoneAfrica_Niamey; // Africa/Niamey -> Africa/Lagos
    -
    823 extern const complete::Info::ZoneInfo kZoneAfrica_Nouakchott; // Africa/Nouakchott -> Africa/Abidjan
    -
    824 extern const complete::Info::ZoneInfo kZoneAfrica_Ouagadougou; // Africa/Ouagadougou -> Africa/Abidjan
    -
    825 extern const complete::Info::ZoneInfo kZoneAfrica_Porto_Novo; // Africa/Porto-Novo -> Africa/Lagos
    -
    826 extern const complete::Info::ZoneInfo kZoneAfrica_Timbuktu; // Africa/Timbuktu -> Africa/Abidjan
    -
    827 extern const complete::Info::ZoneInfo kZoneAmerica_Anguilla; // America/Anguilla -> America/Puerto_Rico
    -
    828 extern const complete::Info::ZoneInfo kZoneAmerica_Antigua; // America/Antigua -> America/Puerto_Rico
    -
    829 extern const complete::Info::ZoneInfo kZoneAmerica_Argentina_ComodRivadavia; // America/Argentina/ComodRivadavia -> America/Argentina/Catamarca
    -
    830 extern const complete::Info::ZoneInfo kZoneAmerica_Aruba; // America/Aruba -> America/Puerto_Rico
    -
    831 extern const complete::Info::ZoneInfo kZoneAmerica_Atikokan; // America/Atikokan -> America/Panama
    -
    832 extern const complete::Info::ZoneInfo kZoneAmerica_Atka; // America/Atka -> America/Adak
    -
    833 extern const complete::Info::ZoneInfo kZoneAmerica_Blanc_Sablon; // America/Blanc-Sablon -> America/Puerto_Rico
    -
    834 extern const complete::Info::ZoneInfo kZoneAmerica_Buenos_Aires; // America/Buenos_Aires -> America/Argentina/Buenos_Aires
    -
    835 extern const complete::Info::ZoneInfo kZoneAmerica_Catamarca; // America/Catamarca -> America/Argentina/Catamarca
    -
    836 extern const complete::Info::ZoneInfo kZoneAmerica_Cayman; // America/Cayman -> America/Panama
    -
    837 extern const complete::Info::ZoneInfo kZoneAmerica_Coral_Harbour; // America/Coral_Harbour -> America/Panama
    -
    838 extern const complete::Info::ZoneInfo kZoneAmerica_Cordoba; // America/Cordoba -> America/Argentina/Cordoba
    -
    839 extern const complete::Info::ZoneInfo kZoneAmerica_Creston; // America/Creston -> America/Phoenix
    -
    840 extern const complete::Info::ZoneInfo kZoneAmerica_Curacao; // America/Curacao -> America/Puerto_Rico
    -
    841 extern const complete::Info::ZoneInfo kZoneAmerica_Dominica; // America/Dominica -> America/Puerto_Rico
    -
    842 extern const complete::Info::ZoneInfo kZoneAmerica_Ensenada; // America/Ensenada -> America/Tijuana
    -
    843 extern const complete::Info::ZoneInfo kZoneAmerica_Fort_Wayne; // America/Fort_Wayne -> America/Indiana/Indianapolis
    -
    844 extern const complete::Info::ZoneInfo kZoneAmerica_Godthab; // America/Godthab -> America/Nuuk
    -
    845 extern const complete::Info::ZoneInfo kZoneAmerica_Grenada; // America/Grenada -> America/Puerto_Rico
    -
    846 extern const complete::Info::ZoneInfo kZoneAmerica_Guadeloupe; // America/Guadeloupe -> America/Puerto_Rico
    -
    847 extern const complete::Info::ZoneInfo kZoneAmerica_Indianapolis; // America/Indianapolis -> America/Indiana/Indianapolis
    -
    848 extern const complete::Info::ZoneInfo kZoneAmerica_Jujuy; // America/Jujuy -> America/Argentina/Jujuy
    -
    849 extern const complete::Info::ZoneInfo kZoneAmerica_Knox_IN; // America/Knox_IN -> America/Indiana/Knox
    -
    850 extern const complete::Info::ZoneInfo kZoneAmerica_Kralendijk; // America/Kralendijk -> America/Puerto_Rico
    -
    851 extern const complete::Info::ZoneInfo kZoneAmerica_Louisville; // America/Louisville -> America/Kentucky/Louisville
    -
    852 extern const complete::Info::ZoneInfo kZoneAmerica_Lower_Princes; // America/Lower_Princes -> America/Puerto_Rico
    -
    853 extern const complete::Info::ZoneInfo kZoneAmerica_Marigot; // America/Marigot -> America/Puerto_Rico
    -
    854 extern const complete::Info::ZoneInfo kZoneAmerica_Mendoza; // America/Mendoza -> America/Argentina/Mendoza
    -
    855 extern const complete::Info::ZoneInfo kZoneAmerica_Montreal; // America/Montreal -> America/Toronto
    -
    856 extern const complete::Info::ZoneInfo kZoneAmerica_Montserrat; // America/Montserrat -> America/Puerto_Rico
    -
    857 extern const complete::Info::ZoneInfo kZoneAmerica_Nassau; // America/Nassau -> America/Toronto
    -
    858 extern const complete::Info::ZoneInfo kZoneAmerica_Nipigon; // America/Nipigon -> America/Toronto
    -
    859 extern const complete::Info::ZoneInfo kZoneAmerica_Pangnirtung; // America/Pangnirtung -> America/Iqaluit
    -
    860 extern const complete::Info::ZoneInfo kZoneAmerica_Port_of_Spain; // America/Port_of_Spain -> America/Puerto_Rico
    -
    861 extern const complete::Info::ZoneInfo kZoneAmerica_Porto_Acre; // America/Porto_Acre -> America/Rio_Branco
    -
    862 extern const complete::Info::ZoneInfo kZoneAmerica_Rainy_River; // America/Rainy_River -> America/Winnipeg
    -
    863 extern const complete::Info::ZoneInfo kZoneAmerica_Rosario; // America/Rosario -> America/Argentina/Cordoba
    -
    864 extern const complete::Info::ZoneInfo kZoneAmerica_Santa_Isabel; // America/Santa_Isabel -> America/Tijuana
    -
    865 extern const complete::Info::ZoneInfo kZoneAmerica_Shiprock; // America/Shiprock -> America/Denver
    -
    866 extern const complete::Info::ZoneInfo kZoneAmerica_St_Barthelemy; // America/St_Barthelemy -> America/Puerto_Rico
    -
    867 extern const complete::Info::ZoneInfo kZoneAmerica_St_Kitts; // America/St_Kitts -> America/Puerto_Rico
    -
    868 extern const complete::Info::ZoneInfo kZoneAmerica_St_Lucia; // America/St_Lucia -> America/Puerto_Rico
    -
    869 extern const complete::Info::ZoneInfo kZoneAmerica_St_Thomas; // America/St_Thomas -> America/Puerto_Rico
    -
    870 extern const complete::Info::ZoneInfo kZoneAmerica_St_Vincent; // America/St_Vincent -> America/Puerto_Rico
    -
    871 extern const complete::Info::ZoneInfo kZoneAmerica_Thunder_Bay; // America/Thunder_Bay -> America/Toronto
    -
    872 extern const complete::Info::ZoneInfo kZoneAmerica_Tortola; // America/Tortola -> America/Puerto_Rico
    -
    873 extern const complete::Info::ZoneInfo kZoneAmerica_Virgin; // America/Virgin -> America/Puerto_Rico
    -
    874 extern const complete::Info::ZoneInfo kZoneAmerica_Yellowknife; // America/Yellowknife -> America/Edmonton
    -
    875 extern const complete::Info::ZoneInfo kZoneAntarctica_DumontDUrville; // Antarctica/DumontDUrville -> Pacific/Port_Moresby
    -
    876 extern const complete::Info::ZoneInfo kZoneAntarctica_McMurdo; // Antarctica/McMurdo -> Pacific/Auckland
    -
    877 extern const complete::Info::ZoneInfo kZoneAntarctica_South_Pole; // Antarctica/South_Pole -> Pacific/Auckland
    -
    878 extern const complete::Info::ZoneInfo kZoneAntarctica_Syowa; // Antarctica/Syowa -> Asia/Riyadh
    -
    879 extern const complete::Info::ZoneInfo kZoneArctic_Longyearbyen; // Arctic/Longyearbyen -> Europe/Berlin
    -
    880 extern const complete::Info::ZoneInfo kZoneAsia_Aden; // Asia/Aden -> Asia/Riyadh
    -
    881 extern const complete::Info::ZoneInfo kZoneAsia_Ashkhabad; // Asia/Ashkhabad -> Asia/Ashgabat
    -
    882 extern const complete::Info::ZoneInfo kZoneAsia_Bahrain; // Asia/Bahrain -> Asia/Qatar
    -
    883 extern const complete::Info::ZoneInfo kZoneAsia_Brunei; // Asia/Brunei -> Asia/Kuching
    -
    884 extern const complete::Info::ZoneInfo kZoneAsia_Calcutta; // Asia/Calcutta -> Asia/Kolkata
    -
    885 extern const complete::Info::ZoneInfo kZoneAsia_Choibalsan; // Asia/Choibalsan -> Asia/Ulaanbaatar
    -
    886 extern const complete::Info::ZoneInfo kZoneAsia_Chongqing; // Asia/Chongqing -> Asia/Shanghai
    -
    887 extern const complete::Info::ZoneInfo kZoneAsia_Chungking; // Asia/Chungking -> Asia/Shanghai
    -
    888 extern const complete::Info::ZoneInfo kZoneAsia_Dacca; // Asia/Dacca -> Asia/Dhaka
    -
    889 extern const complete::Info::ZoneInfo kZoneAsia_Harbin; // Asia/Harbin -> Asia/Shanghai
    -
    890 extern const complete::Info::ZoneInfo kZoneAsia_Istanbul; // Asia/Istanbul -> Europe/Istanbul
    -
    891 extern const complete::Info::ZoneInfo kZoneAsia_Kashgar; // Asia/Kashgar -> Asia/Urumqi
    -
    892 extern const complete::Info::ZoneInfo kZoneAsia_Katmandu; // Asia/Katmandu -> Asia/Kathmandu
    -
    893 extern const complete::Info::ZoneInfo kZoneAsia_Kuala_Lumpur; // Asia/Kuala_Lumpur -> Asia/Singapore
    -
    894 extern const complete::Info::ZoneInfo kZoneAsia_Kuwait; // Asia/Kuwait -> Asia/Riyadh
    -
    895 extern const complete::Info::ZoneInfo kZoneAsia_Macao; // Asia/Macao -> Asia/Macau
    -
    896 extern const complete::Info::ZoneInfo kZoneAsia_Muscat; // Asia/Muscat -> Asia/Dubai
    -
    897 extern const complete::Info::ZoneInfo kZoneAsia_Phnom_Penh; // Asia/Phnom_Penh -> Asia/Bangkok
    -
    898 extern const complete::Info::ZoneInfo kZoneAsia_Rangoon; // Asia/Rangoon -> Asia/Yangon
    -
    899 extern const complete::Info::ZoneInfo kZoneAsia_Saigon; // Asia/Saigon -> Asia/Ho_Chi_Minh
    -
    900 extern const complete::Info::ZoneInfo kZoneAsia_Tel_Aviv; // Asia/Tel_Aviv -> Asia/Jerusalem
    -
    901 extern const complete::Info::ZoneInfo kZoneAsia_Thimbu; // Asia/Thimbu -> Asia/Thimphu
    -
    902 extern const complete::Info::ZoneInfo kZoneAsia_Ujung_Pandang; // Asia/Ujung_Pandang -> Asia/Makassar
    -
    903 extern const complete::Info::ZoneInfo kZoneAsia_Ulan_Bator; // Asia/Ulan_Bator -> Asia/Ulaanbaatar
    -
    904 extern const complete::Info::ZoneInfo kZoneAsia_Vientiane; // Asia/Vientiane -> Asia/Bangkok
    -
    905 extern const complete::Info::ZoneInfo kZoneAtlantic_Faeroe; // Atlantic/Faeroe -> Atlantic/Faroe
    -
    906 extern const complete::Info::ZoneInfo kZoneAtlantic_Jan_Mayen; // Atlantic/Jan_Mayen -> Europe/Berlin
    -
    907 extern const complete::Info::ZoneInfo kZoneAtlantic_Reykjavik; // Atlantic/Reykjavik -> Africa/Abidjan
    -
    908 extern const complete::Info::ZoneInfo kZoneAtlantic_St_Helena; // Atlantic/St_Helena -> Africa/Abidjan
    -
    909 extern const complete::Info::ZoneInfo kZoneAustralia_ACT; // Australia/ACT -> Australia/Sydney
    -
    910 extern const complete::Info::ZoneInfo kZoneAustralia_Canberra; // Australia/Canberra -> Australia/Sydney
    -
    911 extern const complete::Info::ZoneInfo kZoneAustralia_Currie; // Australia/Currie -> Australia/Hobart
    -
    912 extern const complete::Info::ZoneInfo kZoneAustralia_LHI; // Australia/LHI -> Australia/Lord_Howe
    -
    913 extern const complete::Info::ZoneInfo kZoneAustralia_NSW; // Australia/NSW -> Australia/Sydney
    -
    914 extern const complete::Info::ZoneInfo kZoneAustralia_North; // Australia/North -> Australia/Darwin
    -
    915 extern const complete::Info::ZoneInfo kZoneAustralia_Queensland; // Australia/Queensland -> Australia/Brisbane
    -
    916 extern const complete::Info::ZoneInfo kZoneAustralia_South; // Australia/South -> Australia/Adelaide
    -
    917 extern const complete::Info::ZoneInfo kZoneAustralia_Tasmania; // Australia/Tasmania -> Australia/Hobart
    -
    918 extern const complete::Info::ZoneInfo kZoneAustralia_Victoria; // Australia/Victoria -> Australia/Melbourne
    -
    919 extern const complete::Info::ZoneInfo kZoneAustralia_West; // Australia/West -> Australia/Perth
    -
    920 extern const complete::Info::ZoneInfo kZoneAustralia_Yancowinna; // Australia/Yancowinna -> Australia/Broken_Hill
    -
    921 extern const complete::Info::ZoneInfo kZoneBrazil_Acre; // Brazil/Acre -> America/Rio_Branco
    -
    922 extern const complete::Info::ZoneInfo kZoneBrazil_DeNoronha; // Brazil/DeNoronha -> America/Noronha
    -
    923 extern const complete::Info::ZoneInfo kZoneBrazil_East; // Brazil/East -> America/Sao_Paulo
    -
    924 extern const complete::Info::ZoneInfo kZoneBrazil_West; // Brazil/West -> America/Manaus
    -
    925 extern const complete::Info::ZoneInfo kZoneCET; // CET -> Europe/Brussels
    -
    926 extern const complete::Info::ZoneInfo kZoneCST6CDT; // CST6CDT -> America/Chicago
    -
    927 extern const complete::Info::ZoneInfo kZoneCanada_Atlantic; // Canada/Atlantic -> America/Halifax
    -
    928 extern const complete::Info::ZoneInfo kZoneCanada_Central; // Canada/Central -> America/Winnipeg
    -
    929 extern const complete::Info::ZoneInfo kZoneCanada_Eastern; // Canada/Eastern -> America/Toronto
    -
    930 extern const complete::Info::ZoneInfo kZoneCanada_Mountain; // Canada/Mountain -> America/Edmonton
    -
    931 extern const complete::Info::ZoneInfo kZoneCanada_Newfoundland; // Canada/Newfoundland -> America/St_Johns
    -
    932 extern const complete::Info::ZoneInfo kZoneCanada_Pacific; // Canada/Pacific -> America/Vancouver
    -
    933 extern const complete::Info::ZoneInfo kZoneCanada_Saskatchewan; // Canada/Saskatchewan -> America/Regina
    -
    934 extern const complete::Info::ZoneInfo kZoneCanada_Yukon; // Canada/Yukon -> America/Whitehorse
    -
    935 extern const complete::Info::ZoneInfo kZoneChile_Continental; // Chile/Continental -> America/Santiago
    -
    936 extern const complete::Info::ZoneInfo kZoneChile_EasterIsland; // Chile/EasterIsland -> Pacific/Easter
    -
    937 extern const complete::Info::ZoneInfo kZoneCuba; // Cuba -> America/Havana
    -
    938 extern const complete::Info::ZoneInfo kZoneEET; // EET -> Europe/Athens
    -
    939 extern const complete::Info::ZoneInfo kZoneEST; // EST -> America/Panama
    -
    940 extern const complete::Info::ZoneInfo kZoneEST5EDT; // EST5EDT -> America/New_York
    -
    941 extern const complete::Info::ZoneInfo kZoneEgypt; // Egypt -> Africa/Cairo
    -
    942 extern const complete::Info::ZoneInfo kZoneEire; // Eire -> Europe/Dublin
    -
    943 extern const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_0; // Etc/GMT+0 -> Etc/GMT
    -
    944 extern const complete::Info::ZoneInfo kZoneEtc_GMT_0; // Etc/GMT-0 -> Etc/GMT
    -
    945 extern const complete::Info::ZoneInfo kZoneEtc_GMT0; // Etc/GMT0 -> Etc/GMT
    -
    946 extern const complete::Info::ZoneInfo kZoneEtc_Greenwich; // Etc/Greenwich -> Etc/GMT
    -
    947 extern const complete::Info::ZoneInfo kZoneEtc_UCT; // Etc/UCT -> Etc/UTC
    -
    948 extern const complete::Info::ZoneInfo kZoneEtc_Universal; // Etc/Universal -> Etc/UTC
    -
    949 extern const complete::Info::ZoneInfo kZoneEtc_Zulu; // Etc/Zulu -> Etc/UTC
    -
    950 extern const complete::Info::ZoneInfo kZoneEurope_Amsterdam; // Europe/Amsterdam -> Europe/Brussels
    -
    951 extern const complete::Info::ZoneInfo kZoneEurope_Belfast; // Europe/Belfast -> Europe/London
    -
    952 extern const complete::Info::ZoneInfo kZoneEurope_Bratislava; // Europe/Bratislava -> Europe/Prague
    -
    953 extern const complete::Info::ZoneInfo kZoneEurope_Busingen; // Europe/Busingen -> Europe/Zurich
    -
    954 extern const complete::Info::ZoneInfo kZoneEurope_Copenhagen; // Europe/Copenhagen -> Europe/Berlin
    -
    955 extern const complete::Info::ZoneInfo kZoneEurope_Guernsey; // Europe/Guernsey -> Europe/London
    -
    956 extern const complete::Info::ZoneInfo kZoneEurope_Isle_of_Man; // Europe/Isle_of_Man -> Europe/London
    -
    957 extern const complete::Info::ZoneInfo kZoneEurope_Jersey; // Europe/Jersey -> Europe/London
    -
    958 extern const complete::Info::ZoneInfo kZoneEurope_Kiev; // Europe/Kiev -> Europe/Kyiv
    -
    959 extern const complete::Info::ZoneInfo kZoneEurope_Ljubljana; // Europe/Ljubljana -> Europe/Belgrade
    -
    960 extern const complete::Info::ZoneInfo kZoneEurope_Luxembourg; // Europe/Luxembourg -> Europe/Brussels
    -
    961 extern const complete::Info::ZoneInfo kZoneEurope_Mariehamn; // Europe/Mariehamn -> Europe/Helsinki
    -
    962 extern const complete::Info::ZoneInfo kZoneEurope_Monaco; // Europe/Monaco -> Europe/Paris
    -
    963 extern const complete::Info::ZoneInfo kZoneEurope_Nicosia; // Europe/Nicosia -> Asia/Nicosia
    -
    964 extern const complete::Info::ZoneInfo kZoneEurope_Oslo; // Europe/Oslo -> Europe/Berlin
    -
    965 extern const complete::Info::ZoneInfo kZoneEurope_Podgorica; // Europe/Podgorica -> Europe/Belgrade
    -
    966 extern const complete::Info::ZoneInfo kZoneEurope_San_Marino; // Europe/San_Marino -> Europe/Rome
    -
    967 extern const complete::Info::ZoneInfo kZoneEurope_Sarajevo; // Europe/Sarajevo -> Europe/Belgrade
    -
    968 extern const complete::Info::ZoneInfo kZoneEurope_Skopje; // Europe/Skopje -> Europe/Belgrade
    -
    969 extern const complete::Info::ZoneInfo kZoneEurope_Stockholm; // Europe/Stockholm -> Europe/Berlin
    -
    970 extern const complete::Info::ZoneInfo kZoneEurope_Tiraspol; // Europe/Tiraspol -> Europe/Chisinau
    -
    971 extern const complete::Info::ZoneInfo kZoneEurope_Uzhgorod; // Europe/Uzhgorod -> Europe/Kyiv
    -
    972 extern const complete::Info::ZoneInfo kZoneEurope_Vaduz; // Europe/Vaduz -> Europe/Zurich
    -
    973 extern const complete::Info::ZoneInfo kZoneEurope_Vatican; // Europe/Vatican -> Europe/Rome
    -
    974 extern const complete::Info::ZoneInfo kZoneEurope_Zagreb; // Europe/Zagreb -> Europe/Belgrade
    -
    975 extern const complete::Info::ZoneInfo kZoneEurope_Zaporozhye; // Europe/Zaporozhye -> Europe/Kyiv
    -
    976 extern const complete::Info::ZoneInfo kZoneGB; // GB -> Europe/London
    -
    977 extern const complete::Info::ZoneInfo kZoneGB_Eire; // GB-Eire -> Europe/London
    -
    978 extern const complete::Info::ZoneInfo kZoneGMT; // GMT -> Etc/GMT
    -
    979 extern const complete::Info::ZoneInfo kZoneGMT_PLUS_0; // GMT+0 -> Etc/GMT
    -
    980 extern const complete::Info::ZoneInfo kZoneGMT_0; // GMT-0 -> Etc/GMT
    -
    981 extern const complete::Info::ZoneInfo kZoneGMT0; // GMT0 -> Etc/GMT
    -
    982 extern const complete::Info::ZoneInfo kZoneGreenwich; // Greenwich -> Etc/GMT
    -
    983 extern const complete::Info::ZoneInfo kZoneHST; // HST -> Pacific/Honolulu
    -
    984 extern const complete::Info::ZoneInfo kZoneHongkong; // Hongkong -> Asia/Hong_Kong
    -
    985 extern const complete::Info::ZoneInfo kZoneIceland; // Iceland -> Africa/Abidjan
    -
    986 extern const complete::Info::ZoneInfo kZoneIndian_Antananarivo; // Indian/Antananarivo -> Africa/Nairobi
    -
    987 extern const complete::Info::ZoneInfo kZoneIndian_Christmas; // Indian/Christmas -> Asia/Bangkok
    -
    988 extern const complete::Info::ZoneInfo kZoneIndian_Cocos; // Indian/Cocos -> Asia/Yangon
    -
    989 extern const complete::Info::ZoneInfo kZoneIndian_Comoro; // Indian/Comoro -> Africa/Nairobi
    -
    990 extern const complete::Info::ZoneInfo kZoneIndian_Kerguelen; // Indian/Kerguelen -> Indian/Maldives
    -
    991 extern const complete::Info::ZoneInfo kZoneIndian_Mahe; // Indian/Mahe -> Asia/Dubai
    -
    992 extern const complete::Info::ZoneInfo kZoneIndian_Mayotte; // Indian/Mayotte -> Africa/Nairobi
    -
    993 extern const complete::Info::ZoneInfo kZoneIndian_Reunion; // Indian/Reunion -> Asia/Dubai
    -
    994 extern const complete::Info::ZoneInfo kZoneIran; // Iran -> Asia/Tehran
    -
    995 extern const complete::Info::ZoneInfo kZoneIsrael; // Israel -> Asia/Jerusalem
    -
    996 extern const complete::Info::ZoneInfo kZoneJamaica; // Jamaica -> America/Jamaica
    -
    997 extern const complete::Info::ZoneInfo kZoneJapan; // Japan -> Asia/Tokyo
    -
    998 extern const complete::Info::ZoneInfo kZoneKwajalein; // Kwajalein -> Pacific/Kwajalein
    -
    999 extern const complete::Info::ZoneInfo kZoneLibya; // Libya -> Africa/Tripoli
    -
    1000 extern const complete::Info::ZoneInfo kZoneMET; // MET -> Europe/Brussels
    -
    1001 extern const complete::Info::ZoneInfo kZoneMST; // MST -> America/Phoenix
    -
    1002 extern const complete::Info::ZoneInfo kZoneMST7MDT; // MST7MDT -> America/Denver
    -
    1003 extern const complete::Info::ZoneInfo kZoneMexico_BajaNorte; // Mexico/BajaNorte -> America/Tijuana
    -
    1004 extern const complete::Info::ZoneInfo kZoneMexico_BajaSur; // Mexico/BajaSur -> America/Mazatlan
    -
    1005 extern const complete::Info::ZoneInfo kZoneMexico_General; // Mexico/General -> America/Mexico_City
    -
    1006 extern const complete::Info::ZoneInfo kZoneNZ; // NZ -> Pacific/Auckland
    -
    1007 extern const complete::Info::ZoneInfo kZoneNZ_CHAT; // NZ-CHAT -> Pacific/Chatham
    -
    1008 extern const complete::Info::ZoneInfo kZoneNavajo; // Navajo -> America/Denver
    -
    1009 extern const complete::Info::ZoneInfo kZonePRC; // PRC -> Asia/Shanghai
    -
    1010 extern const complete::Info::ZoneInfo kZonePST8PDT; // PST8PDT -> America/Los_Angeles
    -
    1011 extern const complete::Info::ZoneInfo kZonePacific_Chuuk; // Pacific/Chuuk -> Pacific/Port_Moresby
    -
    1012 extern const complete::Info::ZoneInfo kZonePacific_Enderbury; // Pacific/Enderbury -> Pacific/Kanton
    -
    1013 extern const complete::Info::ZoneInfo kZonePacific_Funafuti; // Pacific/Funafuti -> Pacific/Tarawa
    -
    1014 extern const complete::Info::ZoneInfo kZonePacific_Johnston; // Pacific/Johnston -> Pacific/Honolulu
    -
    1015 extern const complete::Info::ZoneInfo kZonePacific_Majuro; // Pacific/Majuro -> Pacific/Tarawa
    -
    1016 extern const complete::Info::ZoneInfo kZonePacific_Midway; // Pacific/Midway -> Pacific/Pago_Pago
    -
    1017 extern const complete::Info::ZoneInfo kZonePacific_Pohnpei; // Pacific/Pohnpei -> Pacific/Guadalcanal
    -
    1018 extern const complete::Info::ZoneInfo kZonePacific_Ponape; // Pacific/Ponape -> Pacific/Guadalcanal
    -
    1019 extern const complete::Info::ZoneInfo kZonePacific_Saipan; // Pacific/Saipan -> Pacific/Guam
    -
    1020 extern const complete::Info::ZoneInfo kZonePacific_Samoa; // Pacific/Samoa -> Pacific/Pago_Pago
    -
    1021 extern const complete::Info::ZoneInfo kZonePacific_Truk; // Pacific/Truk -> Pacific/Port_Moresby
    -
    1022 extern const complete::Info::ZoneInfo kZonePacific_Wake; // Pacific/Wake -> Pacific/Tarawa
    -
    1023 extern const complete::Info::ZoneInfo kZonePacific_Wallis; // Pacific/Wallis -> Pacific/Tarawa
    -
    1024 extern const complete::Info::ZoneInfo kZonePacific_Yap; // Pacific/Yap -> Pacific/Port_Moresby
    -
    1025 extern const complete::Info::ZoneInfo kZonePoland; // Poland -> Europe/Warsaw
    -
    1026 extern const complete::Info::ZoneInfo kZonePortugal; // Portugal -> Europe/Lisbon
    -
    1027 extern const complete::Info::ZoneInfo kZoneROC; // ROC -> Asia/Taipei
    -
    1028 extern const complete::Info::ZoneInfo kZoneROK; // ROK -> Asia/Seoul
    -
    1029 extern const complete::Info::ZoneInfo kZoneSingapore; // Singapore -> Asia/Singapore
    -
    1030 extern const complete::Info::ZoneInfo kZoneTurkey; // Turkey -> Europe/Istanbul
    -
    1031 extern const complete::Info::ZoneInfo kZoneUCT; // UCT -> Etc/UTC
    -
    1032 extern const complete::Info::ZoneInfo kZoneUS_Alaska; // US/Alaska -> America/Anchorage
    -
    1033 extern const complete::Info::ZoneInfo kZoneUS_Aleutian; // US/Aleutian -> America/Adak
    -
    1034 extern const complete::Info::ZoneInfo kZoneUS_Arizona; // US/Arizona -> America/Phoenix
    -
    1035 extern const complete::Info::ZoneInfo kZoneUS_Central; // US/Central -> America/Chicago
    -
    1036 extern const complete::Info::ZoneInfo kZoneUS_East_Indiana; // US/East-Indiana -> America/Indiana/Indianapolis
    -
    1037 extern const complete::Info::ZoneInfo kZoneUS_Eastern; // US/Eastern -> America/New_York
    -
    1038 extern const complete::Info::ZoneInfo kZoneUS_Hawaii; // US/Hawaii -> Pacific/Honolulu
    -
    1039 extern const complete::Info::ZoneInfo kZoneUS_Indiana_Starke; // US/Indiana-Starke -> America/Indiana/Knox
    -
    1040 extern const complete::Info::ZoneInfo kZoneUS_Michigan; // US/Michigan -> America/Detroit
    -
    1041 extern const complete::Info::ZoneInfo kZoneUS_Mountain; // US/Mountain -> America/Denver
    -
    1042 extern const complete::Info::ZoneInfo kZoneUS_Pacific; // US/Pacific -> America/Los_Angeles
    -
    1043 extern const complete::Info::ZoneInfo kZoneUS_Samoa; // US/Samoa -> Pacific/Pago_Pago
    -
    1044 extern const complete::Info::ZoneInfo kZoneUTC; // UTC -> Etc/UTC
    -
    1045 extern const complete::Info::ZoneInfo kZoneUniversal; // Universal -> Etc/UTC
    -
    1046 extern const complete::Info::ZoneInfo kZoneW_SU; // W-SU -> Europe/Moscow
    -
    1047 extern const complete::Info::ZoneInfo kZoneWET; // WET -> Europe/Lisbon
    -
    1048 extern const complete::Info::ZoneInfo kZoneZulu; // Zulu -> Etc/UTC
    -
    1049 
    -
    1050 
    -
    1051 // Zone Ids
    -
    1052 
    -
    1053 const uint32_t kZoneIdAfrica_Accra = 0x77d5b054; // Africa/Accra
    -
    1054 const uint32_t kZoneIdAfrica_Addis_Ababa = 0x05ae1e65; // Africa/Addis_Ababa
    -
    1055 const uint32_t kZoneIdAfrica_Asmara = 0x73b278ef; // Africa/Asmara
    -
    1056 const uint32_t kZoneIdAfrica_Asmera = 0x73b289f3; // Africa/Asmera
    -
    1057 const uint32_t kZoneIdAfrica_Bamako = 0x74c1e7a5; // Africa/Bamako
    -
    1058 const uint32_t kZoneIdAfrica_Bangui = 0x74c28ed0; // Africa/Bangui
    -
    1059 const uint32_t kZoneIdAfrica_Banjul = 0x74c29b96; // Africa/Banjul
    -
    1060 const uint32_t kZoneIdAfrica_Blantyre = 0xe08d813b; // Africa/Blantyre
    -
    1061 const uint32_t kZoneIdAfrica_Brazzaville = 0x39cda760; // Africa/Brazzaville
    -
    1062 const uint32_t kZoneIdAfrica_Bujumbura = 0x05232a47; // Africa/Bujumbura
    -
    1063 const uint32_t kZoneIdAfrica_Conakry = 0x7ab36b31; // Africa/Conakry
    -
    1064 const uint32_t kZoneIdAfrica_Dakar = 0x780b00fd; // Africa/Dakar
    -
    1065 const uint32_t kZoneIdAfrica_Dar_es_Salaam = 0xa04c47b6; // Africa/Dar_es_Salaam
    -
    1066 const uint32_t kZoneIdAfrica_Djibouti = 0x30ea01d4; // Africa/Djibouti
    -
    1067 const uint32_t kZoneIdAfrica_Douala = 0x7a6df310; // Africa/Douala
    -
    1068 const uint32_t kZoneIdAfrica_Freetown = 0x6823dd64; // Africa/Freetown
    -
    1069 const uint32_t kZoneIdAfrica_Gaborone = 0x317c0aa7; // Africa/Gaborone
    -
    1070 const uint32_t kZoneIdAfrica_Harare = 0x82c39a2d; // Africa/Harare
    -
    1071 const uint32_t kZoneIdAfrica_Kampala = 0xc1d30e31; // Africa/Kampala
    -
    1072 const uint32_t kZoneIdAfrica_Kigali = 0x8a4dcf2b; // Africa/Kigali
    -
    1073 const uint32_t kZoneIdAfrica_Kinshasa = 0x6695d70c; // Africa/Kinshasa
    -
    1074 const uint32_t kZoneIdAfrica_Libreville = 0x01d96de4; // Africa/Libreville
    -
    1075 const uint32_t kZoneIdAfrica_Lome = 0xd51c3a07; // Africa/Lome
    -
    1076 const uint32_t kZoneIdAfrica_Luanda = 0x8d7909cf; // Africa/Luanda
    -
    1077 const uint32_t kZoneIdAfrica_Lubumbashi = 0x6fd88566; // Africa/Lubumbashi
    -
    1078 const uint32_t kZoneIdAfrica_Lusaka = 0x8d82b23b; // Africa/Lusaka
    -
    1079 const uint32_t kZoneIdAfrica_Malabo = 0x8e6a1906; // Africa/Malabo
    -
    1080 const uint32_t kZoneIdAfrica_Maseru = 0x8e6e02c7; // Africa/Maseru
    -
    1081 const uint32_t kZoneIdAfrica_Mbabane = 0x5d3bdd40; // Africa/Mbabane
    -
    1082 const uint32_t kZoneIdAfrica_Mogadishu = 0x66bc159b; // Africa/Mogadishu
    -
    1083 const uint32_t kZoneIdAfrica_Niamey = 0x914a30fd; // Africa/Niamey
    -
    1084 const uint32_t kZoneIdAfrica_Nouakchott = 0x3dc49dba; // Africa/Nouakchott
    -
    1085 const uint32_t kZoneIdAfrica_Ouagadougou = 0x04d7219a; // Africa/Ouagadougou
    -
    1086 const uint32_t kZoneIdAfrica_Porto_Novo = 0x3d1bf95d; // Africa/Porto-Novo
    -
    1087 const uint32_t kZoneIdAfrica_Timbuktu = 0xb164d56f; // Africa/Timbuktu
    -
    1088 const uint32_t kZoneIdAmerica_Anguilla = 0xafe31333; // America/Anguilla
    -
    1089 const uint32_t kZoneIdAmerica_Antigua = 0xc067a32f; // America/Antigua
    -
    1090 const uint32_t kZoneIdAmerica_Argentina_ComodRivadavia = 0x22758877; // America/Argentina/ComodRivadavia
    -
    1091 const uint32_t kZoneIdAmerica_Aruba = 0x97cf8651; // America/Aruba
    -
    1092 const uint32_t kZoneIdAmerica_Atikokan = 0x81b92098; // America/Atikokan
    -
    1093 const uint32_t kZoneIdAmerica_Atka = 0x97fe8f27; // America/Atka
    -
    1094 const uint32_t kZoneIdAmerica_Blanc_Sablon = 0x6e299892; // America/Blanc-Sablon
    -
    1095 const uint32_t kZoneIdAmerica_Buenos_Aires = 0x67d79a05; // America/Buenos_Aires
    -
    1096 const uint32_t kZoneIdAmerica_Catamarca = 0x5036e963; // America/Catamarca
    -
    1097 const uint32_t kZoneIdAmerica_Cayman = 0x953961df; // America/Cayman
    -
    1098 const uint32_t kZoneIdAmerica_Coral_Harbour = 0xabcb7569; // America/Coral_Harbour
    -
    1099 const uint32_t kZoneIdAmerica_Cordoba = 0x5c8a7600; // America/Cordoba
    -
    1100 const uint32_t kZoneIdAmerica_Creston = 0x62a70204; // America/Creston
    -
    1101 const uint32_t kZoneIdAmerica_Curacao = 0x6a879184; // America/Curacao
    -
    1102 const uint32_t kZoneIdAmerica_Dominica = 0xcecb4c4a; // America/Dominica
    -
    1103 const uint32_t kZoneIdAmerica_Ensenada = 0x7bc95445; // America/Ensenada
    -
    1104 const uint32_t kZoneIdAmerica_Fort_Wayne = 0x7eaaaf24; // America/Fort_Wayne
    -
    1105 const uint32_t kZoneIdAmerica_Godthab = 0x8f7eba1f; // America/Godthab
    -
    1106 const uint32_t kZoneIdAmerica_Grenada = 0x968ce4d8; // America/Grenada
    -
    1107 const uint32_t kZoneIdAmerica_Guadeloupe = 0xcd1f8a31; // America/Guadeloupe
    -
    1108 const uint32_t kZoneIdAmerica_Indianapolis = 0x6a009ae1; // America/Indianapolis
    -
    1109 const uint32_t kZoneIdAmerica_Jujuy = 0x9873dbbd; // America/Jujuy
    -
    1110 const uint32_t kZoneIdAmerica_Knox_IN = 0xc1db9a1c; // America/Knox_IN
    -
    1111 const uint32_t kZoneIdAmerica_Kralendijk = 0xe7c456c5; // America/Kralendijk
    -
    1112 const uint32_t kZoneIdAmerica_Louisville = 0x3dcb47ee; // America/Louisville
    -
    1113 const uint32_t kZoneIdAmerica_Lower_Princes = 0x6ae45b62; // America/Lower_Princes
    -
    1114 const uint32_t kZoneIdAmerica_Marigot = 0x3dab3a59; // America/Marigot
    -
    1115 const uint32_t kZoneIdAmerica_Mendoza = 0x46b4e054; // America/Mendoza
    -
    1116 const uint32_t kZoneIdAmerica_Montreal = 0x203a1ea8; // America/Montreal
    -
    1117 const uint32_t kZoneIdAmerica_Montserrat = 0x199b0a35; // America/Montserrat
    -
    1118 const uint32_t kZoneIdAmerica_Nassau = 0xaedef011; // America/Nassau
    -
    1119 const uint32_t kZoneIdAmerica_Nipigon = 0x9d2a8b1a; // America/Nipigon
    -
    1120 const uint32_t kZoneIdAmerica_Pangnirtung = 0x2d999193; // America/Pangnirtung
    -
    1121 const uint32_t kZoneIdAmerica_Port_of_Spain = 0xd8b28d59; // America/Port_of_Spain
    -
    1122 const uint32_t kZoneIdAmerica_Porto_Acre = 0xcce5bf54; // America/Porto_Acre
    -
    1123 const uint32_t kZoneIdAmerica_Rainy_River = 0x9cd58a10; // America/Rainy_River
    -
    1124 const uint32_t kZoneIdAmerica_Rosario = 0xdf448665; // America/Rosario
    -
    1125 const uint32_t kZoneIdAmerica_Santa_Isabel = 0xfd18a56c; // America/Santa_Isabel
    -
    1126 const uint32_t kZoneIdAmerica_Shiprock = 0x82fb7049; // America/Shiprock
    -
    1127 const uint32_t kZoneIdAmerica_St_Barthelemy = 0x054e6a79; // America/St_Barthelemy
    -
    1128 const uint32_t kZoneIdAmerica_St_Kitts = 0x04c0507b; // America/St_Kitts
    -
    1129 const uint32_t kZoneIdAmerica_St_Lucia = 0x04d8b3ba; // America/St_Lucia
    -
    1130 const uint32_t kZoneIdAmerica_St_Thomas = 0xb1b3d778; // America/St_Thomas
    -
    1131 const uint32_t kZoneIdAmerica_St_Vincent = 0x8460e523; // America/St_Vincent
    -
    1132 const uint32_t kZoneIdAmerica_Thunder_Bay = 0xf962e71b; // America/Thunder_Bay
    -
    1133 const uint32_t kZoneIdAmerica_Tortola = 0x7931462b; // America/Tortola
    -
    1134 const uint32_t kZoneIdAmerica_Virgin = 0xc2183ab5; // America/Virgin
    -
    1135 const uint32_t kZoneIdAmerica_Yellowknife = 0x0f76c76f; // America/Yellowknife
    -
    1136 const uint32_t kZoneIdAntarctica_DumontDUrville = 0x5a3c656c; // Antarctica/DumontDUrville
    -
    1137 const uint32_t kZoneIdAntarctica_McMurdo = 0x6eeb5585; // Antarctica/McMurdo
    -
    1138 const uint32_t kZoneIdAntarctica_South_Pole = 0xcd96b290; // Antarctica/South_Pole
    -
    1139 const uint32_t kZoneIdAntarctica_Syowa = 0xe330c7e1; // Antarctica/Syowa
    -
    1140 const uint32_t kZoneIdArctic_Longyearbyen = 0xd23e7859; // Arctic/Longyearbyen
    -
    1141 const uint32_t kZoneIdAsia_Aden = 0x1fa7084a; // Asia/Aden
    -
    1142 const uint32_t kZoneIdAsia_Ashkhabad = 0x15454f09; // Asia/Ashkhabad
    -
    1143 const uint32_t kZoneIdAsia_Bahrain = 0x9d078487; // Asia/Bahrain
    -
    1144 const uint32_t kZoneIdAsia_Brunei = 0xa8e595f7; // Asia/Brunei
    -
    1145 const uint32_t kZoneIdAsia_Calcutta = 0x328a44c3; // Asia/Calcutta
    -
    1146 const uint32_t kZoneIdAsia_Choibalsan = 0x928aa4a6; // Asia/Choibalsan
    -
    1147 const uint32_t kZoneIdAsia_Chongqing = 0xf937fb90; // Asia/Chongqing
    -
    1148 const uint32_t kZoneIdAsia_Chungking = 0xc7121dd0; // Asia/Chungking
    -
    1149 const uint32_t kZoneIdAsia_Dacca = 0x14bcac5e; // Asia/Dacca
    -
    1150 const uint32_t kZoneIdAsia_Harbin = 0xb5af1186; // Asia/Harbin
    -
    1151 const uint32_t kZoneIdAsia_Istanbul = 0x382e7894; // Asia/Istanbul
    -
    1152 const uint32_t kZoneIdAsia_Kashgar = 0x52955193; // Asia/Kashgar
    -
    1153 const uint32_t kZoneIdAsia_Katmandu = 0xa7ec12c7; // Asia/Katmandu
    -
    1154 const uint32_t kZoneIdAsia_Kuala_Lumpur = 0x014763c4; // Asia/Kuala_Lumpur
    -
    1155 const uint32_t kZoneIdAsia_Kuwait = 0xbe1b2f27; // Asia/Kuwait
    -
    1156 const uint32_t kZoneIdAsia_Macao = 0x155f88b3; // Asia/Macao
    -
    1157 const uint32_t kZoneIdAsia_Muscat = 0xc2c3565f; // Asia/Muscat
    -
    1158 const uint32_t kZoneIdAsia_Phnom_Penh = 0xc224945e; // Asia/Phnom_Penh
    -
    1159 const uint32_t kZoneIdAsia_Rangoon = 0x6d1217c6; // Asia/Rangoon
    -
    1160 const uint32_t kZoneIdAsia_Saigon = 0xcf52f713; // Asia/Saigon
    -
    1161 const uint32_t kZoneIdAsia_Tel_Aviv = 0x166d7c2c; // Asia/Tel_Aviv
    -
    1162 const uint32_t kZoneIdAsia_Thimbu = 0xd226e31b; // Asia/Thimbu
    -
    1163 const uint32_t kZoneIdAsia_Ujung_Pandang = 0x5d001eb3; // Asia/Ujung_Pandang
    -
    1164 const uint32_t kZoneIdAsia_Ulan_Bator = 0x394db4d9; // Asia/Ulan_Bator
    -
    1165 const uint32_t kZoneIdAsia_Vientiane = 0x89d68d75; // Asia/Vientiane
    -
    1166 const uint32_t kZoneIdAtlantic_Faeroe = 0x031ec516; // Atlantic/Faeroe
    -
    1167 const uint32_t kZoneIdAtlantic_Jan_Mayen = 0x5a7535b6; // Atlantic/Jan_Mayen
    -
    1168 const uint32_t kZoneIdAtlantic_Reykjavik = 0x1c2b4f74; // Atlantic/Reykjavik
    -
    1169 const uint32_t kZoneIdAtlantic_St_Helena = 0x451fc5f7; // Atlantic/St_Helena
    -
    1170 const uint32_t kZoneIdAustralia_ACT = 0x8a970eb2; // Australia/ACT
    -
    1171 const uint32_t kZoneIdAustralia_Canberra = 0x2a09ae58; // Australia/Canberra
    -
    1172 const uint32_t kZoneIdAustralia_Currie = 0x278b6a24; // Australia/Currie
    -
    1173 const uint32_t kZoneIdAustralia_LHI = 0x8a973e17; // Australia/LHI
    -
    1174 const uint32_t kZoneIdAustralia_NSW = 0x8a974812; // Australia/NSW
    -
    1175 const uint32_t kZoneIdAustralia_North = 0x8d997165; // Australia/North
    -
    1176 const uint32_t kZoneIdAustralia_Queensland = 0xd326ed0a; // Australia/Queensland
    -
    1177 const uint32_t kZoneIdAustralia_South = 0x8df3f8ad; // Australia/South
    -
    1178 const uint32_t kZoneIdAustralia_Tasmania = 0xe6d76648; // Australia/Tasmania
    -
    1179 const uint32_t kZoneIdAustralia_Victoria = 0x0260d5db; // Australia/Victoria
    -
    1180 const uint32_t kZoneIdAustralia_West = 0xdd858a5d; // Australia/West
    -
    1181 const uint32_t kZoneIdAustralia_Yancowinna = 0x90bac131; // Australia/Yancowinna
    -
    1182 const uint32_t kZoneIdBrazil_Acre = 0x66934f93; // Brazil/Acre
    -
    1183 const uint32_t kZoneIdBrazil_DeNoronha = 0x9b4cb496; // Brazil/DeNoronha
    -
    1184 const uint32_t kZoneIdBrazil_East = 0x669578c5; // Brazil/East
    -
    1185 const uint32_t kZoneIdBrazil_West = 0x669f689b; // Brazil/West
    -
    1186 const uint32_t kZoneIdCET = 0x0b87d921; // CET
    -
    1187 const uint32_t kZoneIdCST6CDT = 0xf0e87d00; // CST6CDT
    -
    1188 const uint32_t kZoneIdCanada_Atlantic = 0x536b119c; // Canada/Atlantic
    -
    1189 const uint32_t kZoneIdCanada_Central = 0x626710f5; // Canada/Central
    -
    1190 const uint32_t kZoneIdCanada_Eastern = 0xf3612d5e; // Canada/Eastern
    -
    1191 const uint32_t kZoneIdCanada_Mountain = 0xfb8a8217; // Canada/Mountain
    -
    1192 const uint32_t kZoneIdCanada_Newfoundland = 0xb396e991; // Canada/Newfoundland
    -
    1193 const uint32_t kZoneIdCanada_Pacific = 0x40fa3c7b; // Canada/Pacific
    -
    1194 const uint32_t kZoneIdCanada_Saskatchewan = 0x77311f49; // Canada/Saskatchewan
    -
    1195 const uint32_t kZoneIdCanada_Yukon = 0x78dd35c2; // Canada/Yukon
    -
    1196 const uint32_t kZoneIdChile_Continental = 0x7e2bdb18; // Chile/Continental
    -
    1197 const uint32_t kZoneIdChile_EasterIsland = 0xb0982af8; // Chile/EasterIsland
    -
    1198 const uint32_t kZoneIdCuba = 0x7c83cba0; // Cuba
    -
    1199 const uint32_t kZoneIdEET = 0x0b87e1a3; // EET
    -
    1200 const uint32_t kZoneIdEST = 0x0b87e371; // EST
    -
    1201 const uint32_t kZoneIdEST5EDT = 0x8adc72a3; // EST5EDT
    -
    1202 const uint32_t kZoneIdEgypt = 0x0d1a278e; // Egypt
    -
    1203 const uint32_t kZoneIdEire = 0x7c84b36a; // Eire
    -
    1204 const uint32_t kZoneIdEtc_GMT_PLUS_0 = 0x9d13da13; // Etc/GMT+0
    -
    1205 const uint32_t kZoneIdEtc_GMT_0 = 0x9d13da55; // Etc/GMT-0
    -
    1206 const uint32_t kZoneIdEtc_GMT0 = 0xf53ea988; // Etc/GMT0
    -
    1207 const uint32_t kZoneIdEtc_Greenwich = 0x26daa98c; // Etc/Greenwich
    -
    1208 const uint32_t kZoneIdEtc_UCT = 0xd8e3189c; // Etc/UCT
    -
    1209 const uint32_t kZoneIdEtc_Universal = 0x2f8cb9a9; // Etc/Universal
    -
    1210 const uint32_t kZoneIdEtc_Zulu = 0xf549c240; // Etc/Zulu
    -
    1211 const uint32_t kZoneIdEurope_Amsterdam = 0x109395c2; // Europe/Amsterdam
    -
    1212 const uint32_t kZoneIdEurope_Belfast = 0xd07dd1e5; // Europe/Belfast
    -
    1213 const uint32_t kZoneIdEurope_Bratislava = 0xda493bed; // Europe/Bratislava
    -
    1214 const uint32_t kZoneIdEurope_Busingen = 0xc06d2cdf; // Europe/Busingen
    -
    1215 const uint32_t kZoneIdEurope_Copenhagen = 0xe0ed30bc; // Europe/Copenhagen
    -
    1216 const uint32_t kZoneIdEurope_Guernsey = 0x3db12c16; // Europe/Guernsey
    -
    1217 const uint32_t kZoneIdEurope_Isle_of_Man = 0xeaf84580; // Europe/Isle_of_Man
    -
    1218 const uint32_t kZoneIdEurope_Jersey = 0x570dae76; // Europe/Jersey
    -
    1219 const uint32_t kZoneIdEurope_Kiev = 0xa2c19eb3; // Europe/Kiev
    -
    1220 const uint32_t kZoneIdEurope_Ljubljana = 0xbd98cdb7; // Europe/Ljubljana
    -
    1221 const uint32_t kZoneIdEurope_Luxembourg = 0x1f8bc6ce; // Europe/Luxembourg
    -
    1222 const uint32_t kZoneIdEurope_Mariehamn = 0x0caa6496; // Europe/Mariehamn
    -
    1223 const uint32_t kZoneIdEurope_Monaco = 0x5ebf9f01; // Europe/Monaco
    -
    1224 const uint32_t kZoneIdEurope_Nicosia = 0x74efab8a; // Europe/Nicosia
    -
    1225 const uint32_t kZoneIdEurope_Oslo = 0xa2c3fba1; // Europe/Oslo
    -
    1226 const uint32_t kZoneIdEurope_Podgorica = 0x1c1a499c; // Europe/Podgorica
    -
    1227 const uint32_t kZoneIdEurope_San_Marino = 0xcef7724b; // Europe/San_Marino
    -
    1228 const uint32_t kZoneIdEurope_Sarajevo = 0x6a576c3f; // Europe/Sarajevo
    -
    1229 const uint32_t kZoneIdEurope_Skopje = 0x6c76fdd0; // Europe/Skopje
    -
    1230 const uint32_t kZoneIdEurope_Stockholm = 0x5bf6fbb8; // Europe/Stockholm
    -
    1231 const uint32_t kZoneIdEurope_Tiraspol = 0xbe704472; // Europe/Tiraspol
    -
    1232 const uint32_t kZoneIdEurope_Uzhgorod = 0xb066f5d6; // Europe/Uzhgorod
    -
    1233 const uint32_t kZoneIdEurope_Vaduz = 0xfbb81bae; // Europe/Vaduz
    -
    1234 const uint32_t kZoneIdEurope_Vatican = 0xcb485dca; // Europe/Vatican
    -
    1235 const uint32_t kZoneIdEurope_Zagreb = 0x7c11c9ff; // Europe/Zagreb
    -
    1236 const uint32_t kZoneIdEurope_Zaporozhye = 0xeab9767f; // Europe/Zaporozhye
    -
    1237 const uint32_t kZoneIdGB = 0x005973ae; // GB
    -
    1238 const uint32_t kZoneIdGB_Eire = 0xfa70e300; // GB-Eire
    -
    1239 const uint32_t kZoneIdGMT = 0x0b87eb2d; // GMT
    -
    1240 const uint32_t kZoneIdGMT_PLUS_0 = 0x0d2f7028; // GMT+0
    -
    1241 const uint32_t kZoneIdGMT_0 = 0x0d2f706a; // GMT-0
    -
    1242 const uint32_t kZoneIdGMT0 = 0x7c8550fd; // GMT0
    -
    1243 const uint32_t kZoneIdGreenwich = 0xc84d4221; // Greenwich
    -
    1244 const uint32_t kZoneIdHST = 0x0b87f034; // HST
    -
    1245 const uint32_t kZoneIdHongkong = 0x56d36560; // Hongkong
    -
    1246 const uint32_t kZoneIdIceland = 0xe56a35b5; // Iceland
    -
    1247 const uint32_t kZoneIdIndian_Antananarivo = 0x9ebf5289; // Indian/Antananarivo
    -
    1248 const uint32_t kZoneIdIndian_Christmas = 0x68c207d5; // Indian/Christmas
    -
    1249 const uint32_t kZoneIdIndian_Cocos = 0x021e86de; // Indian/Cocos
    -
    1250 const uint32_t kZoneIdIndian_Comoro = 0x45f4deb6; // Indian/Comoro
    -
    1251 const uint32_t kZoneIdIndian_Kerguelen = 0x4351b389; // Indian/Kerguelen
    -
    1252 const uint32_t kZoneIdIndian_Mahe = 0x45e725e2; // Indian/Mahe
    -
    1253 const uint32_t kZoneIdIndian_Mayotte = 0xe6880bca; // Indian/Mayotte
    -
    1254 const uint32_t kZoneIdIndian_Reunion = 0x7076c047; // Indian/Reunion
    -
    1255 const uint32_t kZoneIdIran = 0x7c87090f; // Iran
    -
    1256 const uint32_t kZoneIdIsrael = 0xba88c9e5; // Israel
    -
    1257 const uint32_t kZoneIdJamaica = 0x2e44fdab; // Jamaica
    -
    1258 const uint32_t kZoneIdJapan = 0x0d712f8f; // Japan
    -
    1259 const uint32_t kZoneIdKwajalein = 0x0e57afbb; // Kwajalein
    -
    1260 const uint32_t kZoneIdLibya = 0x0d998b16; // Libya
    -
    1261 const uint32_t kZoneIdMET = 0x0b8803ab; // MET
    -
    1262 const uint32_t kZoneIdMST = 0x0b880579; // MST
    -
    1263 const uint32_t kZoneIdMST7MDT = 0xf2af9375; // MST7MDT
    -
    1264 const uint32_t kZoneIdMexico_BajaNorte = 0xfcf7150f; // Mexico/BajaNorte
    -
    1265 const uint32_t kZoneIdMexico_BajaSur = 0x08ee3641; // Mexico/BajaSur
    -
    1266 const uint32_t kZoneIdMexico_General = 0x93711d57; // Mexico/General
    -
    1267 const uint32_t kZoneIdNZ = 0x005974ad; // NZ
    -
    1268 const uint32_t kZoneIdNZ_CHAT = 0x4d42afda; // NZ-CHAT
    -
    1269 const uint32_t kZoneIdNavajo = 0xc4ef0e24; // Navajo
    -
    1270 const uint32_t kZoneIdPRC = 0x0b88120a; // PRC
    -
    1271 const uint32_t kZoneIdPST8PDT = 0xd99ee2dc; // PST8PDT
    -
    1272 const uint32_t kZoneIdPacific_Chuuk = 0x8a090b23; // Pacific/Chuuk
    -
    1273 const uint32_t kZoneIdPacific_Enderbury = 0x61599a93; // Pacific/Enderbury
    -
    1274 const uint32_t kZoneIdPacific_Funafuti = 0xdb402d65; // Pacific/Funafuti
    -
    1275 const uint32_t kZoneIdPacific_Johnston = 0xb15d7b36; // Pacific/Johnston
    -
    1276 const uint32_t kZoneIdPacific_Majuro = 0xe1f95371; // Pacific/Majuro
    -
    1277 const uint32_t kZoneIdPacific_Midway = 0xe286d38e; // Pacific/Midway
    -
    1278 const uint32_t kZoneIdPacific_Pohnpei = 0x28929f96; // Pacific/Pohnpei
    -
    1279 const uint32_t kZoneIdPacific_Ponape = 0xe9f80086; // Pacific/Ponape
    -
    1280 const uint32_t kZoneIdPacific_Saipan = 0xeff7a35f; // Pacific/Saipan
    -
    1281 const uint32_t kZoneIdPacific_Samoa = 0x8b2699b4; // Pacific/Samoa
    -
    1282 const uint32_t kZoneIdPacific_Truk = 0x234010a9; // Pacific/Truk
    -
    1283 const uint32_t kZoneIdPacific_Wake = 0x23416c2b; // Pacific/Wake
    -
    1284 const uint32_t kZoneIdPacific_Wallis = 0xf94ddb0f; // Pacific/Wallis
    -
    1285 const uint32_t kZoneIdPacific_Yap = 0xbb40138d; // Pacific/Yap
    -
    1286 const uint32_t kZoneIdPoland = 0xca913b23; // Poland
    -
    1287 const uint32_t kZoneIdPortugal = 0xc3274593; // Portugal
    -
    1288 const uint32_t kZoneIdROC = 0x0b881a29; // ROC
    -
    1289 const uint32_t kZoneIdROK = 0x0b881a31; // ROK
    -
    1290 const uint32_t kZoneIdSingapore = 0xa8598c8d; // Singapore
    -
    1291 const uint32_t kZoneIdTurkey = 0xd455e469; // Turkey
    -
    1292 const uint32_t kZoneIdUCT = 0x0b882571; // UCT
    -
    1293 const uint32_t kZoneIdUS_Alaska = 0xfa300bc9; // US/Alaska
    -
    1294 const uint32_t kZoneIdUS_Aleutian = 0x4fe013ef; // US/Aleutian
    -
    1295 const uint32_t kZoneIdUS_Arizona = 0x4ec52670; // US/Arizona
    -
    1296 const uint32_t kZoneIdUS_Central = 0xcabdcb25; // US/Central
    -
    1297 const uint32_t kZoneIdUS_East_Indiana = 0x6dcf558a; // US/East-Indiana
    -
    1298 const uint32_t kZoneIdUS_Eastern = 0x5bb7e78e; // US/Eastern
    -
    1299 const uint32_t kZoneIdUS_Hawaii = 0x09c8de2f; // US/Hawaii
    -
    1300 const uint32_t kZoneIdUS_Indiana_Starke = 0x67977be7; // US/Indiana-Starke
    -
    1301 const uint32_t kZoneIdUS_Michigan = 0x766bb7bc; // US/Michigan
    -
    1302 const uint32_t kZoneIdUS_Mountain = 0x6eb88247; // US/Mountain
    -
    1303 const uint32_t kZoneIdUS_Pacific = 0xa950f6ab; // US/Pacific
    -
    1304 const uint32_t kZoneIdUS_Samoa = 0x566821cd; // US/Samoa
    -
    1305 const uint32_t kZoneIdUTC = 0x0b882791; // UTC
    -
    1306 const uint32_t kZoneIdUniversal = 0xd0ff523e; // Universal
    -
    1307 const uint32_t kZoneIdW_SU = 0x7c8d8ef1; // W-SU
    -
    1308 const uint32_t kZoneIdWET = 0x0b882e35; // WET
    -
    1309 const uint32_t kZoneIdZulu = 0x7c9069b5; // Zulu
    -
    1310 
    -
    1311 
    -
    1312 //---------------------------------------------------------------------------
    -
    1313 // Maximum size of the Transition buffer in ExtendedZoneProcessor for each zone
    -
    1314 // over the given years. Used only in the AceTimeValidation/Extended*Test tests
    -
    1315 // for ExtendedZoneProcessor.
    -
    1316 //
    -
    1317 // MaxBufSize: 8
    -
    1318 //---------------------------------------------------------------------------
    -
    1319 
    -
    1320 const uint8_t kZoneBufSizeAfrica_Abidjan = 2; // Africa/Abidjan in 1911
    -
    1321 const uint8_t kZoneBufSizeAfrica_Algiers = 6; // Africa/Algiers in 1977
    -
    1322 const uint8_t kZoneBufSizeAfrica_Bissau = 2; // Africa/Bissau in 1911
    -
    1323 const uint8_t kZoneBufSizeAfrica_Cairo = 5; // Africa/Cairo in 1944
    -
    1324 const uint8_t kZoneBufSizeAfrica_Casablanca = 7; // Africa/Casablanca in 2013
    -
    1325 const uint8_t kZoneBufSizeAfrica_Ceuta = 6; // Africa/Ceuta in 1986
    -
    1326 const uint8_t kZoneBufSizeAfrica_El_Aaiun = 7; // Africa/El_Aaiun in 2013
    -
    1327 const uint8_t kZoneBufSizeAfrica_Johannesburg = 4; // Africa/Johannesburg in 1943
    -
    1328 const uint8_t kZoneBufSizeAfrica_Juba = 4; // Africa/Juba in 1970
    -
    1329 const uint8_t kZoneBufSizeAfrica_Khartoum = 4; // Africa/Khartoum in 1970
    -
    1330 const uint8_t kZoneBufSizeAfrica_Lagos = 2; // Africa/Lagos in 1905
    -
    1331 const uint8_t kZoneBufSizeAfrica_Maputo = 2; // Africa/Maputo in 1908
    -
    1332 const uint8_t kZoneBufSizeAfrica_Monrovia = 2; // Africa/Monrovia in 1881
    -
    1333 const uint8_t kZoneBufSizeAfrica_Nairobi = 2; // Africa/Nairobi in 1908
    -
    1334 const uint8_t kZoneBufSizeAfrica_Ndjamena = 2; // Africa/Ndjamena in 1911
    -
    1335 const uint8_t kZoneBufSizeAfrica_Sao_Tome = 3; // Africa/Sao_Tome in 2018
    -
    1336 const uint8_t kZoneBufSizeAfrica_Tripoli = 5; // Africa/Tripoli in 1982
    -
    1337 const uint8_t kZoneBufSizeAfrica_Tunis = 7; // Africa/Tunis in 1943
    -
    1338 const uint8_t kZoneBufSizeAfrica_Windhoek = 4; // Africa/Windhoek in 1994
    -
    1339 const uint8_t kZoneBufSizeAmerica_Adak = 6; // America/Adak in 1983
    -
    1340 const uint8_t kZoneBufSizeAmerica_Anchorage = 6; // America/Anchorage in 1983
    -
    1341 const uint8_t kZoneBufSizeAmerica_Araguaina = 6; // America/Araguaina in 1964
    -
    1342 const uint8_t kZoneBufSizeAmerica_Argentina_Buenos_Aires = 6; // America/Argentina/Buenos_Aires in 1931
    -
    1343 const uint8_t kZoneBufSizeAmerica_Argentina_Catamarca = 6; // America/Argentina/Catamarca in 1931
    -
    1344 const uint8_t kZoneBufSizeAmerica_Argentina_Cordoba = 6; // America/Argentina/Cordoba in 1931
    -
    1345 const uint8_t kZoneBufSizeAmerica_Argentina_Jujuy = 6; // America/Argentina/Jujuy in 1931
    -
    1346 const uint8_t kZoneBufSizeAmerica_Argentina_La_Rioja = 6; // America/Argentina/La_Rioja in 1931
    -
    1347 const uint8_t kZoneBufSizeAmerica_Argentina_Mendoza = 6; // America/Argentina/Mendoza in 1931
    -
    1348 const uint8_t kZoneBufSizeAmerica_Argentina_Rio_Gallegos = 6; // America/Argentina/Rio_Gallegos in 1931
    -
    1349 const uint8_t kZoneBufSizeAmerica_Argentina_Salta = 6; // America/Argentina/Salta in 1931
    -
    1350 const uint8_t kZoneBufSizeAmerica_Argentina_San_Juan = 6; // America/Argentina/San_Juan in 1931
    -
    1351 const uint8_t kZoneBufSizeAmerica_Argentina_San_Luis = 7; // America/Argentina/San_Luis in 2008
    -
    1352 const uint8_t kZoneBufSizeAmerica_Argentina_Tucuman = 6; // America/Argentina/Tucuman in 1931
    -
    1353 const uint8_t kZoneBufSizeAmerica_Argentina_Ushuaia = 6; // America/Argentina/Ushuaia in 1931
    -
    1354 const uint8_t kZoneBufSizeAmerica_Asuncion = 5; // America/Asuncion in 1977
    -
    1355 const uint8_t kZoneBufSizeAmerica_Bahia = 6; // America/Bahia in 1964
    -
    1356 const uint8_t kZoneBufSizeAmerica_Bahia_Banderas = 5; // America/Bahia_Banderas in 2010
    -
    1357 const uint8_t kZoneBufSizeAmerica_Barbados = 6; // America/Barbados in 1944
    -
    1358 const uint8_t kZoneBufSizeAmerica_Belem = 6; // America/Belem in 1964
    -
    1359 const uint8_t kZoneBufSizeAmerica_Belize = 5; // America/Belize in 1921
    -
    1360 const uint8_t kZoneBufSizeAmerica_Boa_Vista = 6; // America/Boa_Vista in 1964
    -
    1361 const uint8_t kZoneBufSizeAmerica_Bogota = 3; // America/Bogota in 1914
    -
    1362 const uint8_t kZoneBufSizeAmerica_Boise = 6; // America/Boise in 1974
    -
    1363 const uint8_t kZoneBufSizeAmerica_Cambridge_Bay = 6; // America/Cambridge_Bay in 2008
    -
    1364 const uint8_t kZoneBufSizeAmerica_Campo_Grande = 6; // America/Campo_Grande in 1964
    -
    1365 const uint8_t kZoneBufSizeAmerica_Cancun = 5; // America/Cancun in 1997
    -
    1366 const uint8_t kZoneBufSizeAmerica_Caracas = 2; // America/Caracas in 1889
    -
    1367 const uint8_t kZoneBufSizeAmerica_Cayenne = 2; // America/Cayenne in 1911
    -
    1368 const uint8_t kZoneBufSizeAmerica_Chicago = 6; // America/Chicago in 2008
    -
    1369 const uint8_t kZoneBufSizeAmerica_Chihuahua = 6; // America/Chihuahua in 1998
    -
    1370 const uint8_t kZoneBufSizeAmerica_Ciudad_Juarez = 7; // America/Ciudad_Juarez in 2022
    -
    1371 const uint8_t kZoneBufSizeAmerica_Costa_Rica = 5; // America/Costa_Rica in 1979
    -
    1372 const uint8_t kZoneBufSizeAmerica_Coyhaique = 6; // America/Coyhaique in 1969
    -
    1373 const uint8_t kZoneBufSizeAmerica_Cuiaba = 6; // America/Cuiaba in 1964
    -
    1374 const uint8_t kZoneBufSizeAmerica_Danmarkshavn = 5; // America/Danmarkshavn in 1980
    -
    1375 const uint8_t kZoneBufSizeAmerica_Dawson = 6; // America/Dawson in 2008
    -
    1376 const uint8_t kZoneBufSizeAmerica_Dawson_Creek = 5; // America/Dawson_Creek in 1947
    -
    1377 const uint8_t kZoneBufSizeAmerica_Denver = 6; // America/Denver in 1919
    -
    1378 const uint8_t kZoneBufSizeAmerica_Detroit = 6; // America/Detroit in 2008
    -
    1379 const uint8_t kZoneBufSizeAmerica_Edmonton = 6; // America/Edmonton in 2008
    -
    1380 const uint8_t kZoneBufSizeAmerica_Eirunepe = 6; // America/Eirunepe in 1964
    -
    1381 const uint8_t kZoneBufSizeAmerica_El_Salvador = 4; // America/El_Salvador in 1987
    -
    1382 const uint8_t kZoneBufSizeAmerica_Fort_Nelson = 6; // America/Fort_Nelson in 2008
    -
    1383 const uint8_t kZoneBufSizeAmerica_Fortaleza = 6; // America/Fortaleza in 1964
    -
    1384 const uint8_t kZoneBufSizeAmerica_Glace_Bay = 6; // America/Glace_Bay in 2008
    -
    1385 const uint8_t kZoneBufSizeAmerica_Goose_Bay = 6; // America/Goose_Bay in 2008
    -
    1386 const uint8_t kZoneBufSizeAmerica_Grand_Turk = 6; // America/Grand_Turk in 2008
    -
    1387 const uint8_t kZoneBufSizeAmerica_Guatemala = 3; // America/Guatemala in 1918
    -
    1388 const uint8_t kZoneBufSizeAmerica_Guayaquil = 3; // America/Guayaquil in 1930
    -
    1389 const uint8_t kZoneBufSizeAmerica_Guyana = 2; // America/Guyana in 1911
    -
    1390 const uint8_t kZoneBufSizeAmerica_Halifax = 6; // America/Halifax in 1918
    -
    1391 const uint8_t kZoneBufSizeAmerica_Havana = 6; // America/Havana in 2015
    -
    1392 const uint8_t kZoneBufSizeAmerica_Hermosillo = 5; // America/Hermosillo in 1996
    -
    1393 const uint8_t kZoneBufSizeAmerica_Indiana_Indianapolis = 6; // America/Indiana/Indianapolis in 2006
    -
    1394 const uint8_t kZoneBufSizeAmerica_Indiana_Knox = 6; // America/Indiana/Knox in 2006
    -
    1395 const uint8_t kZoneBufSizeAmerica_Indiana_Marengo = 6; // America/Indiana/Marengo in 2006
    -
    1396 const uint8_t kZoneBufSizeAmerica_Indiana_Petersburg = 6; // America/Indiana/Petersburg in 2006
    -
    1397 const uint8_t kZoneBufSizeAmerica_Indiana_Tell_City = 6; // America/Indiana/Tell_City in 2006
    -
    1398 const uint8_t kZoneBufSizeAmerica_Indiana_Vevay = 6; // America/Indiana/Vevay in 2006
    -
    1399 const uint8_t kZoneBufSizeAmerica_Indiana_Vincennes = 6; // America/Indiana/Vincennes in 2006
    -
    1400 const uint8_t kZoneBufSizeAmerica_Indiana_Winamac = 6; // America/Indiana/Winamac in 2006
    -
    1401 const uint8_t kZoneBufSizeAmerica_Inuvik = 6; // America/Inuvik in 2008
    -
    1402 const uint8_t kZoneBufSizeAmerica_Iqaluit = 6; // America/Iqaluit in 2008
    -
    1403 const uint8_t kZoneBufSizeAmerica_Jamaica = 5; // America/Jamaica in 1974
    -
    1404 const uint8_t kZoneBufSizeAmerica_Juneau = 6; // America/Juneau in 1983
    -
    1405 const uint8_t kZoneBufSizeAmerica_Kentucky_Louisville = 6; // America/Kentucky/Louisville in 2008
    -
    1406 const uint8_t kZoneBufSizeAmerica_Kentucky_Monticello = 6; // America/Kentucky/Monticello in 2008
    -
    1407 const uint8_t kZoneBufSizeAmerica_La_Paz = 2; // America/La_Paz in 1889
    -
    1408 const uint8_t kZoneBufSizeAmerica_Lima = 5; // America/Lima in 1938
    -
    1409 const uint8_t kZoneBufSizeAmerica_Los_Angeles = 6; // America/Los_Angeles in 2008
    -
    1410 const uint8_t kZoneBufSizeAmerica_Maceio = 6; // America/Maceio in 1964
    -
    1411 const uint8_t kZoneBufSizeAmerica_Managua = 5; // America/Managua in 1979
    -
    1412 const uint8_t kZoneBufSizeAmerica_Manaus = 6; // America/Manaus in 1964
    -
    1413 const uint8_t kZoneBufSizeAmerica_Martinique = 3; // America/Martinique in 1980
    -
    1414 const uint8_t kZoneBufSizeAmerica_Matamoros = 6; // America/Matamoros in 1988
    -
    1415 const uint8_t kZoneBufSizeAmerica_Mazatlan = 4; // America/Mazatlan in 1996
    -
    1416 const uint8_t kZoneBufSizeAmerica_Menominee = 6; // America/Menominee in 2008
    -
    1417 const uint8_t kZoneBufSizeAmerica_Merida = 4; // America/Merida in 1982
    -
    1418 const uint8_t kZoneBufSizeAmerica_Metlakatla = 6; // America/Metlakatla in 2016
    -
    1419 const uint8_t kZoneBufSizeAmerica_Mexico_City = 5; // America/Mexico_City in 2002
    -
    1420 const uint8_t kZoneBufSizeAmerica_Miquelon = 6; // America/Miquelon in 2008
    -
    1421 const uint8_t kZoneBufSizeAmerica_Moncton = 6; // America/Moncton in 2006
    -
    1422 const uint8_t kZoneBufSizeAmerica_Monterrey = 6; // America/Monterrey in 1988
    -
    1423 const uint8_t kZoneBufSizeAmerica_Montevideo = 8; // America/Montevideo in 1974
    -
    1424 const uint8_t kZoneBufSizeAmerica_New_York = 6; // America/New_York in 1919
    -
    1425 const uint8_t kZoneBufSizeAmerica_Nome = 6; // America/Nome in 1983
    -
    1426 const uint8_t kZoneBufSizeAmerica_Noronha = 6; // America/Noronha in 1964
    -
    1427 const uint8_t kZoneBufSizeAmerica_North_Dakota_Beulah = 6; // America/North_Dakota/Beulah in 2008
    -
    1428 const uint8_t kZoneBufSizeAmerica_North_Dakota_Center = 6; // America/North_Dakota/Center in 2008
    -
    1429 const uint8_t kZoneBufSizeAmerica_North_Dakota_New_Salem = 6; // America/North_Dakota/New_Salem in 2008
    -
    1430 const uint8_t kZoneBufSizeAmerica_Nuuk = 6; // America/Nuuk in 2023
    -
    1431 const uint8_t kZoneBufSizeAmerica_Ojinaga = 7; // America/Ojinaga in 2022
    -
    1432 const uint8_t kZoneBufSizeAmerica_Panama = 2; // America/Panama in 1889
    -
    1433 const uint8_t kZoneBufSizeAmerica_Paramaribo = 2; // America/Paramaribo in 1910
    -
    1434 const uint8_t kZoneBufSizeAmerica_Phoenix = 5; // America/Phoenix in 1918
    -
    1435 const uint8_t kZoneBufSizeAmerica_Port_au_Prince = 6; // America/Port-au-Prince in 2013
    -
    1436 const uint8_t kZoneBufSizeAmerica_Porto_Velho = 6; // America/Porto_Velho in 1964
    -
    1437 const uint8_t kZoneBufSizeAmerica_Puerto_Rico = 4; // America/Puerto_Rico in 1945
    -
    1438 const uint8_t kZoneBufSizeAmerica_Punta_Arenas = 6; // America/Punta_Arenas in 1969
    -
    1439 const uint8_t kZoneBufSizeAmerica_Rankin_Inlet = 6; // America/Rankin_Inlet in 2008
    -
    1440 const uint8_t kZoneBufSizeAmerica_Recife = 6; // America/Recife in 1964
    -
    1441 const uint8_t kZoneBufSizeAmerica_Regina = 4; // America/Regina in 1930
    -
    1442 const uint8_t kZoneBufSizeAmerica_Resolute = 6; // America/Resolute in 2007
    -
    1443 const uint8_t kZoneBufSizeAmerica_Rio_Branco = 6; // America/Rio_Branco in 1964
    -
    1444 const uint8_t kZoneBufSizeAmerica_Santarem = 6; // America/Santarem in 1964
    -
    1445 const uint8_t kZoneBufSizeAmerica_Santiago = 6; // America/Santiago in 1969
    -
    1446 const uint8_t kZoneBufSizeAmerica_Santo_Domingo = 4; // America/Santo_Domingo in 1970
    -
    1447 const uint8_t kZoneBufSizeAmerica_Sao_Paulo = 6; // America/Sao_Paulo in 1964
    -
    1448 const uint8_t kZoneBufSizeAmerica_Scoresbysund = 6; // America/Scoresbysund in 2024
    -
    1449 const uint8_t kZoneBufSizeAmerica_Sitka = 6; // America/Sitka in 1983
    -
    1450 const uint8_t kZoneBufSizeAmerica_St_Johns = 6; // America/St_Johns in 1918
    -
    1451 const uint8_t kZoneBufSizeAmerica_Swift_Current = 5; // America/Swift_Current in 1946
    -
    1452 const uint8_t kZoneBufSizeAmerica_Tegucigalpa = 4; // America/Tegucigalpa in 1987
    -
    1453 const uint8_t kZoneBufSizeAmerica_Thule = 6; // America/Thule in 2008
    -
    1454 const uint8_t kZoneBufSizeAmerica_Tijuana = 6; // America/Tijuana in 2009
    -
    1455 const uint8_t kZoneBufSizeAmerica_Toronto = 6; // America/Toronto in 1918
    -
    1456 const uint8_t kZoneBufSizeAmerica_Vancouver = 6; // America/Vancouver in 2008
    -
    1457 const uint8_t kZoneBufSizeAmerica_Whitehorse = 6; // America/Whitehorse in 2008
    -
    1458 const uint8_t kZoneBufSizeAmerica_Winnipeg = 6; // America/Winnipeg in 2006
    -
    1459 const uint8_t kZoneBufSizeAmerica_Yakutat = 6; // America/Yakutat in 1983
    -
    1460 const uint8_t kZoneBufSizeAntarctica_Casey = 3; // Antarctica/Casey in 2018
    -
    1461 const uint8_t kZoneBufSizeAntarctica_Davis = 2; // Antarctica/Davis in 1956
    -
    1462 const uint8_t kZoneBufSizeAntarctica_Macquarie = 5; // Antarctica/Macquarie in 1967
    -
    1463 const uint8_t kZoneBufSizeAntarctica_Mawson = 2; // Antarctica/Mawson in 1954
    -
    1464 const uint8_t kZoneBufSizeAntarctica_Palmer = 6; // Antarctica/Palmer in 1965
    -
    1465 const uint8_t kZoneBufSizeAntarctica_Rothera = 2; // Antarctica/Rothera in 1976
    -
    1466 const uint8_t kZoneBufSizeAntarctica_Troll = 6; // Antarctica/Troll in 2005
    -
    1467 const uint8_t kZoneBufSizeAntarctica_Vostok = 3; // Antarctica/Vostok in 1994
    -
    1468 const uint8_t kZoneBufSizeAsia_Almaty = 6; // Asia/Almaty in 1991
    -
    1469 const uint8_t kZoneBufSizeAsia_Amman = 6; // Asia/Amman in 2014
    -
    1470 const uint8_t kZoneBufSizeAsia_Anadyr = 6; // Asia/Anadyr in 1991
    -
    1471 const uint8_t kZoneBufSizeAsia_Aqtau = 6; // Asia/Aqtau in 1991
    -
    1472 const uint8_t kZoneBufSizeAsia_Aqtobe = 6; // Asia/Aqtobe in 1991
    -
    1473 const uint8_t kZoneBufSizeAsia_Ashgabat = 5; // Asia/Ashgabat in 1987
    -
    1474 const uint8_t kZoneBufSizeAsia_Atyrau = 6; // Asia/Atyrau in 1991
    -
    1475 const uint8_t kZoneBufSizeAsia_Baghdad = 5; // Asia/Baghdad in 1982
    -
    1476 const uint8_t kZoneBufSizeAsia_Baku = 7; // Asia/Baku in 1996
    -
    1477 const uint8_t kZoneBufSizeAsia_Bangkok = 2; // Asia/Bangkok in 1879
    -
    1478 const uint8_t kZoneBufSizeAsia_Barnaul = 6; // Asia/Barnaul in 1991
    -
    1479 const uint8_t kZoneBufSizeAsia_Beirut = 5; // Asia/Beirut in 1921
    -
    1480 const uint8_t kZoneBufSizeAsia_Bishkek = 5; // Asia/Bishkek in 1987
    -
    1481 const uint8_t kZoneBufSizeAsia_Chita = 6; // Asia/Chita in 1991
    -
    1482 const uint8_t kZoneBufSizeAsia_Colombo = 3; // Asia/Colombo in 1942
    -
    1483 const uint8_t kZoneBufSizeAsia_Damascus = 6; // Asia/Damascus in 2008
    -
    1484 const uint8_t kZoneBufSizeAsia_Dhaka = 4; // Asia/Dhaka in 2009
    -
    1485 const uint8_t kZoneBufSizeAsia_Dili = 2; // Asia/Dili in 1911
    -
    1486 const uint8_t kZoneBufSizeAsia_Dubai = 2; // Asia/Dubai in 1919
    -
    1487 const uint8_t kZoneBufSizeAsia_Dushanbe = 5; // Asia/Dushanbe in 1987
    -
    1488 const uint8_t kZoneBufSizeAsia_Famagusta = 6; // Asia/Famagusta in 1998
    -
    1489 const uint8_t kZoneBufSizeAsia_Gaza = 7; // Asia/Gaza in 2008
    -
    1490 const uint8_t kZoneBufSizeAsia_Hebron = 7; // Asia/Hebron in 2011
    -
    1491 const uint8_t kZoneBufSizeAsia_Ho_Chi_Minh = 3; // Asia/Ho_Chi_Minh in 1945
    -
    1492 const uint8_t kZoneBufSizeAsia_Hong_Kong = 6; // Asia/Hong_Kong in 1956
    -
    1493 const uint8_t kZoneBufSizeAsia_Hovd = 5; // Asia/Hovd in 1984
    -
    1494 const uint8_t kZoneBufSizeAsia_Irkutsk = 6; // Asia/Irkutsk in 1991
    -
    1495 const uint8_t kZoneBufSizeAsia_Jakarta = 2; // Asia/Jakarta in 1867
    -
    1496 const uint8_t kZoneBufSizeAsia_Jayapura = 2; // Asia/Jayapura in 1932
    -
    1497 const uint8_t kZoneBufSizeAsia_Jerusalem = 5; // Asia/Jerusalem in 1948
    -
    1498 const uint8_t kZoneBufSizeAsia_Kabul = 2; // Asia/Kabul in 1889
    -
    1499 const uint8_t kZoneBufSizeAsia_Kamchatka = 6; // Asia/Kamchatka in 1991
    -
    1500 const uint8_t kZoneBufSizeAsia_Karachi = 4; // Asia/Karachi in 2008
    -
    1501 const uint8_t kZoneBufSizeAsia_Kathmandu = 2; // Asia/Kathmandu in 1919
    -
    1502 const uint8_t kZoneBufSizeAsia_Khandyga = 6; // Asia/Khandyga in 1991
    -
    1503 const uint8_t kZoneBufSizeAsia_Kolkata = 3; // Asia/Kolkata in 1942
    -
    1504 const uint8_t kZoneBufSizeAsia_Krasnoyarsk = 6; // Asia/Krasnoyarsk in 1991
    -
    1505 const uint8_t kZoneBufSizeAsia_Kuching = 5; // Asia/Kuching in 1936
    -
    1506 const uint8_t kZoneBufSizeAsia_Macau = 6; // Asia/Macau in 1959
    -
    1507 const uint8_t kZoneBufSizeAsia_Magadan = 6; // Asia/Magadan in 1991
    -
    1508 const uint8_t kZoneBufSizeAsia_Makassar = 2; // Asia/Makassar in 1919
    -
    1509 const uint8_t kZoneBufSizeAsia_Manila = 3; // Asia/Manila in 1899
    -
    1510 const uint8_t kZoneBufSizeAsia_Nicosia = 6; // Asia/Nicosia in 1998
    -
    1511 const uint8_t kZoneBufSizeAsia_Novokuznetsk = 6; // Asia/Novokuznetsk in 1991
    -
    1512 const uint8_t kZoneBufSizeAsia_Novosibirsk = 6; // Asia/Novosibirsk in 1991
    -
    1513 const uint8_t kZoneBufSizeAsia_Omsk = 6; // Asia/Omsk in 1991
    -
    1514 const uint8_t kZoneBufSizeAsia_Oral = 7; // Asia/Oral in 1992
    -
    1515 const uint8_t kZoneBufSizeAsia_Pontianak = 2; // Asia/Pontianak in 1908
    -
    1516 const uint8_t kZoneBufSizeAsia_Pyongyang = 2; // Asia/Pyongyang in 1908
    -
    1517 const uint8_t kZoneBufSizeAsia_Qatar = 2; // Asia/Qatar in 1919
    -
    1518 const uint8_t kZoneBufSizeAsia_Qostanay = 6; // Asia/Qostanay in 1991
    -
    1519 const uint8_t kZoneBufSizeAsia_Qyzylorda = 7; // Asia/Qyzylorda in 1992
    -
    1520 const uint8_t kZoneBufSizeAsia_Riyadh = 2; // Asia/Riyadh in 1947
    -
    1521 const uint8_t kZoneBufSizeAsia_Sakhalin = 6; // Asia/Sakhalin in 1991
    -
    1522 const uint8_t kZoneBufSizeAsia_Samarkand = 5; // Asia/Samarkand in 1982
    -
    1523 const uint8_t kZoneBufSizeAsia_Seoul = 4; // Asia/Seoul in 1948
    -
    1524 const uint8_t kZoneBufSizeAsia_Shanghai = 5; // Asia/Shanghai in 1940
    -
    1525 const uint8_t kZoneBufSizeAsia_Singapore = 2; // Asia/Singapore in 1900
    -
    1526 const uint8_t kZoneBufSizeAsia_Srednekolymsk = 6; // Asia/Srednekolymsk in 1991
    -
    1527 const uint8_t kZoneBufSizeAsia_Taipei = 5; // Asia/Taipei in 1948
    -
    1528 const uint8_t kZoneBufSizeAsia_Tashkent = 5; // Asia/Tashkent in 1987
    -
    1529 const uint8_t kZoneBufSizeAsia_Tbilisi = 6; // Asia/Tbilisi in 1991
    -
    1530 const uint8_t kZoneBufSizeAsia_Tehran = 6; // Asia/Tehran in 1977
    -
    1531 const uint8_t kZoneBufSizeAsia_Thimphu = 2; // Asia/Thimphu in 1947
    -
    1532 const uint8_t kZoneBufSizeAsia_Tokyo = 4; // Asia/Tokyo in 1948
    -
    1533 const uint8_t kZoneBufSizeAsia_Tomsk = 6; // Asia/Tomsk in 1991
    -
    1534 const uint8_t kZoneBufSizeAsia_Ulaanbaatar = 5; // Asia/Ulaanbaatar in 1984
    -
    1535 const uint8_t kZoneBufSizeAsia_Urumqi = 2; // Asia/Urumqi in 1927
    -
    1536 const uint8_t kZoneBufSizeAsia_Ust_Nera = 6; // Asia/Ust-Nera in 1991
    -
    1537 const uint8_t kZoneBufSizeAsia_Vladivostok = 6; // Asia/Vladivostok in 1991
    -
    1538 const uint8_t kZoneBufSizeAsia_Yakutsk = 6; // Asia/Yakutsk in 1991
    -
    1539 const uint8_t kZoneBufSizeAsia_Yangon = 2; // Asia/Yangon in 1879
    -
    1540 const uint8_t kZoneBufSizeAsia_Yekaterinburg = 6; // Asia/Yekaterinburg in 1991
    -
    1541 const uint8_t kZoneBufSizeAsia_Yerevan = 6; // Asia/Yerevan in 1991
    -
    1542 const uint8_t kZoneBufSizeAtlantic_Azores = 7; // Atlantic/Azores in 1942
    -
    1543 const uint8_t kZoneBufSizeAtlantic_Bermuda = 6; // Atlantic/Bermuda in 2008
    -
    1544 const uint8_t kZoneBufSizeAtlantic_Canary = 5; // Atlantic/Canary in 1980
    -
    1545 const uint8_t kZoneBufSizeAtlantic_Cape_Verde = 2; // Atlantic/Cape_Verde in 1911
    -
    1546 const uint8_t kZoneBufSizeAtlantic_Faroe = 5; // Atlantic/Faroe in 1981
    -
    1547 const uint8_t kZoneBufSizeAtlantic_Madeira = 7; // Atlantic/Madeira in 1942
    -
    1548 const uint8_t kZoneBufSizeAtlantic_South_Georgia = 2; // Atlantic/South_Georgia in 1889
    -
    1549 const uint8_t kZoneBufSizeAtlantic_Stanley = 5; // Atlantic/Stanley in 1938
    -
    1550 const uint8_t kZoneBufSizeAustralia_Adelaide = 6; // Australia/Adelaide in 1942
    -
    1551 const uint8_t kZoneBufSizeAustralia_Brisbane = 6; // Australia/Brisbane in 1942
    -
    1552 const uint8_t kZoneBufSizeAustralia_Broken_Hill = 6; // Australia/Broken_Hill in 1942
    -
    1553 const uint8_t kZoneBufSizeAustralia_Darwin = 6; // Australia/Darwin in 1942
    -
    1554 const uint8_t kZoneBufSizeAustralia_Eucla = 6; // Australia/Eucla in 1942
    -
    1555 const uint8_t kZoneBufSizeAustralia_Hobart = 6; // Australia/Hobart in 1942
    -
    1556 const uint8_t kZoneBufSizeAustralia_Lindeman = 6; // Australia/Lindeman in 1942
    -
    1557 const uint8_t kZoneBufSizeAustralia_Lord_Howe = 6; // Australia/Lord_Howe in 1985
    -
    1558 const uint8_t kZoneBufSizeAustralia_Melbourne = 6; // Australia/Melbourne in 1942
    -
    1559 const uint8_t kZoneBufSizeAustralia_Perth = 6; // Australia/Perth in 1942
    -
    1560 const uint8_t kZoneBufSizeAustralia_Sydney = 6; // Australia/Sydney in 1942
    -
    1561 const uint8_t kZoneBufSizeEtc_GMT = 1; // Etc/GMT in 1799
    -
    1562 const uint8_t kZoneBufSizeEtc_GMT_PLUS_1 = 1; // Etc/GMT+1 in 1799
    -
    1563 const uint8_t kZoneBufSizeEtc_GMT_PLUS_10 = 1; // Etc/GMT+10 in 1799
    -
    1564 const uint8_t kZoneBufSizeEtc_GMT_PLUS_11 = 1; // Etc/GMT+11 in 1799
    -
    1565 const uint8_t kZoneBufSizeEtc_GMT_PLUS_12 = 1; // Etc/GMT+12 in 1799
    -
    1566 const uint8_t kZoneBufSizeEtc_GMT_PLUS_2 = 1; // Etc/GMT+2 in 1799
    -
    1567 const uint8_t kZoneBufSizeEtc_GMT_PLUS_3 = 1; // Etc/GMT+3 in 1799
    -
    1568 const uint8_t kZoneBufSizeEtc_GMT_PLUS_4 = 1; // Etc/GMT+4 in 1799
    -
    1569 const uint8_t kZoneBufSizeEtc_GMT_PLUS_5 = 1; // Etc/GMT+5 in 1799
    -
    1570 const uint8_t kZoneBufSizeEtc_GMT_PLUS_6 = 1; // Etc/GMT+6 in 1799
    -
    1571 const uint8_t kZoneBufSizeEtc_GMT_PLUS_7 = 1; // Etc/GMT+7 in 1799
    -
    1572 const uint8_t kZoneBufSizeEtc_GMT_PLUS_8 = 1; // Etc/GMT+8 in 1799
    -
    1573 const uint8_t kZoneBufSizeEtc_GMT_PLUS_9 = 1; // Etc/GMT+9 in 1799
    -
    1574 const uint8_t kZoneBufSizeEtc_GMT_1 = 1; // Etc/GMT-1 in 1799
    -
    1575 const uint8_t kZoneBufSizeEtc_GMT_10 = 1; // Etc/GMT-10 in 1799
    -
    1576 const uint8_t kZoneBufSizeEtc_GMT_11 = 1; // Etc/GMT-11 in 1799
    -
    1577 const uint8_t kZoneBufSizeEtc_GMT_12 = 1; // Etc/GMT-12 in 1799
    -
    1578 const uint8_t kZoneBufSizeEtc_GMT_13 = 1; // Etc/GMT-13 in 1799
    -
    1579 const uint8_t kZoneBufSizeEtc_GMT_14 = 1; // Etc/GMT-14 in 1799
    -
    1580 const uint8_t kZoneBufSizeEtc_GMT_2 = 1; // Etc/GMT-2 in 1799
    -
    1581 const uint8_t kZoneBufSizeEtc_GMT_3 = 1; // Etc/GMT-3 in 1799
    -
    1582 const uint8_t kZoneBufSizeEtc_GMT_4 = 1; // Etc/GMT-4 in 1799
    -
    1583 const uint8_t kZoneBufSizeEtc_GMT_5 = 1; // Etc/GMT-5 in 1799
    -
    1584 const uint8_t kZoneBufSizeEtc_GMT_6 = 1; // Etc/GMT-6 in 1799
    -
    1585 const uint8_t kZoneBufSizeEtc_GMT_7 = 1; // Etc/GMT-7 in 1799
    -
    1586 const uint8_t kZoneBufSizeEtc_GMT_8 = 1; // Etc/GMT-8 in 1799
    -
    1587 const uint8_t kZoneBufSizeEtc_GMT_9 = 1; // Etc/GMT-9 in 1799
    -
    1588 const uint8_t kZoneBufSizeEtc_UTC = 1; // Etc/UTC in 1799
    -
    1589 const uint8_t kZoneBufSizeEurope_Andorra = 6; // Europe/Andorra in 1985
    -
    1590 const uint8_t kZoneBufSizeEurope_Astrakhan = 6; // Europe/Astrakhan in 1989
    -
    1591 const uint8_t kZoneBufSizeEurope_Athens = 5; // Europe/Athens in 1941
    -
    1592 const uint8_t kZoneBufSizeEurope_Belgrade = 5; // Europe/Belgrade in 1943
    -
    1593 const uint8_t kZoneBufSizeEurope_Berlin = 7; // Europe/Berlin in 1945
    -
    1594 const uint8_t kZoneBufSizeEurope_Brussels = 6; // Europe/Brussels in 1918
    -
    1595 const uint8_t kZoneBufSizeEurope_Bucharest = 6; // Europe/Bucharest in 1990
    -
    1596 const uint8_t kZoneBufSizeEurope_Budapest = 6; // Europe/Budapest in 1945
    -
    1597 const uint8_t kZoneBufSizeEurope_Chisinau = 6; // Europe/Chisinau in 1990
    -
    1598 const uint8_t kZoneBufSizeEurope_Dublin = 6; // Europe/Dublin in 1921
    -
    1599 const uint8_t kZoneBufSizeEurope_Gibraltar = 7; // Europe/Gibraltar in 1947
    -
    1600 const uint8_t kZoneBufSizeEurope_Helsinki = 6; // Europe/Helsinki in 1982
    -
    1601 const uint8_t kZoneBufSizeEurope_Istanbul = 7; // Europe/Istanbul in 2011
    -
    1602 const uint8_t kZoneBufSizeEurope_Kaliningrad = 6; // Europe/Kaliningrad in 1945
    -
    1603 const uint8_t kZoneBufSizeEurope_Kirov = 6; // Europe/Kirov in 1989
    -
    1604 const uint8_t kZoneBufSizeEurope_Kyiv = 6; // Europe/Kyiv in 1996
    -
    1605 const uint8_t kZoneBufSizeEurope_Lisbon = 7; // Europe/Lisbon in 1942
    -
    1606 const uint8_t kZoneBufSizeEurope_London = 7; // Europe/London in 1947
    -
    1607 const uint8_t kZoneBufSizeEurope_Madrid = 5; // Europe/Madrid in 1938
    -
    1608 const uint8_t kZoneBufSizeEurope_Malta = 5; // Europe/Malta in 1917
    -
    1609 const uint8_t kZoneBufSizeEurope_Minsk = 6; // Europe/Minsk in 1991
    -
    1610 const uint8_t kZoneBufSizeEurope_Moscow = 7; // Europe/Moscow in 1921
    -
    1611 const uint8_t kZoneBufSizeEurope_Paris = 5; // Europe/Paris in 1919
    -
    1612 const uint8_t kZoneBufSizeEurope_Prague = 6; // Europe/Prague in 1945
    -
    1613 const uint8_t kZoneBufSizeEurope_Riga = 6; // Europe/Riga in 1989
    -
    1614 const uint8_t kZoneBufSizeEurope_Rome = 5; // Europe/Rome in 1917
    -
    1615 const uint8_t kZoneBufSizeEurope_Samara = 7; // Europe/Samara in 1991
    -
    1616 const uint8_t kZoneBufSizeEurope_Saratov = 6; // Europe/Saratov in 1988
    -
    1617 const uint8_t kZoneBufSizeEurope_Simferopol = 6; // Europe/Simferopol in 1992
    -
    1618 const uint8_t kZoneBufSizeEurope_Sofia = 6; // Europe/Sofia in 1982
    -
    1619 const uint8_t kZoneBufSizeEurope_Tallinn = 6; // Europe/Tallinn in 1989
    -
    1620 const uint8_t kZoneBufSizeEurope_Tirane = 6; // Europe/Tirane in 1984
    -
    1621 const uint8_t kZoneBufSizeEurope_Ulyanovsk = 6; // Europe/Ulyanovsk in 1989
    -
    1622 const uint8_t kZoneBufSizeEurope_Vienna = 5; // Europe/Vienna in 1943
    -
    1623 const uint8_t kZoneBufSizeEurope_Vilnius = 7; // Europe/Vilnius in 1998
    -
    1624 const uint8_t kZoneBufSizeEurope_Volgograd = 6; // Europe/Volgograd in 1988
    -
    1625 const uint8_t kZoneBufSizeEurope_Warsaw = 6; // Europe/Warsaw in 1987
    -
    1626 const uint8_t kZoneBufSizeEurope_Zurich = 5; // Europe/Zurich in 1981
    -
    1627 const uint8_t kZoneBufSizeIndian_Chagos = 2; // Indian/Chagos in 1906
    -
    1628 const uint8_t kZoneBufSizeIndian_Maldives = 2; // Indian/Maldives in 1879
    -
    1629 const uint8_t kZoneBufSizeIndian_Mauritius = 3; // Indian/Mauritius in 1906
    -
    1630 const uint8_t kZoneBufSizePacific_Apia = 5; // Pacific/Apia in 2011
    -
    1631 const uint8_t kZoneBufSizePacific_Auckland = 5; // Pacific/Auckland in 1928
    -
    1632 const uint8_t kZoneBufSizePacific_Bougainville = 2; // Pacific/Bougainville in 1879
    -
    1633 const uint8_t kZoneBufSizePacific_Chatham = 5; // Pacific/Chatham in 1975
    -
    1634 const uint8_t kZoneBufSizePacific_Easter = 6; // Pacific/Easter in 1969
    -
    1635 const uint8_t kZoneBufSizePacific_Efate = 5; // Pacific/Efate in 1986
    -
    1636 const uint8_t kZoneBufSizePacific_Fakaofo = 2; // Pacific/Fakaofo in 1900
    -
    1637 const uint8_t kZoneBufSizePacific_Fiji = 6; // Pacific/Fiji in 2017
    -
    1638 const uint8_t kZoneBufSizePacific_Galapagos = 3; // Pacific/Galapagos in 1985
    -
    1639 const uint8_t kZoneBufSizePacific_Gambier = 2; // Pacific/Gambier in 1912
    -
    1640 const uint8_t kZoneBufSizePacific_Guadalcanal = 2; // Pacific/Guadalcanal in 1912
    -
    1641 const uint8_t kZoneBufSizePacific_Guam = 5; // Pacific/Guam in 1969
    -
    1642 const uint8_t kZoneBufSizePacific_Honolulu = 4; // Pacific/Honolulu in 1933
    -
    1643 const uint8_t kZoneBufSizePacific_Kanton = 2; // Pacific/Kanton in 1937
    -
    1644 const uint8_t kZoneBufSizePacific_Kiritimati = 2; // Pacific/Kiritimati in 1900
    -
    1645 const uint8_t kZoneBufSizePacific_Kosrae = 2; // Pacific/Kosrae in 1844
    -
    1646 const uint8_t kZoneBufSizePacific_Kwajalein = 2; // Pacific/Kwajalein in 1900
    -
    1647 const uint8_t kZoneBufSizePacific_Marquesas = 2; // Pacific/Marquesas in 1912
    -
    1648 const uint8_t kZoneBufSizePacific_Nauru = 2; // Pacific/Nauru in 1920
    -
    1649 const uint8_t kZoneBufSizePacific_Niue = 2; // Pacific/Niue in 1952
    -
    1650 const uint8_t kZoneBufSizePacific_Norfolk = 4; // Pacific/Norfolk in 2019
    -
    1651 const uint8_t kZoneBufSizePacific_Noumea = 5; // Pacific/Noumea in 1978
    -
    1652 const uint8_t kZoneBufSizePacific_Pago_Pago = 2; // Pacific/Pago_Pago in 1892
    -
    1653 const uint8_t kZoneBufSizePacific_Palau = 2; // Pacific/Palau in 1844
    -
    1654 const uint8_t kZoneBufSizePacific_Pitcairn = 2; // Pacific/Pitcairn in 1900
    -
    1655 const uint8_t kZoneBufSizePacific_Port_Moresby = 2; // Pacific/Port_Moresby in 1879
    -
    1656 const uint8_t kZoneBufSizePacific_Rarotonga = 6; // Pacific/Rarotonga in 1979
    -
    1657 const uint8_t kZoneBufSizePacific_Tahiti = 2; // Pacific/Tahiti in 1912
    -
    1658 const uint8_t kZoneBufSizePacific_Tarawa = 2; // Pacific/Tarawa in 1900
    -
    1659 const uint8_t kZoneBufSizePacific_Tongatapu = 5; // Pacific/Tongatapu in 1999
    -
    1660 
    -
    1661 
    -
    1662 //---------------------------------------------------------------------------
    -
    1663 // Unsupported zones: 0
    -
    1664 //---------------------------------------------------------------------------
    -
    1665 
    -
    1666 
    -
    1667 
    -
    1668 //---------------------------------------------------------------------------
    -
    1669 // Notable zones: 300
    -
    1670 //---------------------------------------------------------------------------
    -
    1671 
    -
    1672 // Africa/Abidjan {STDOFF '-0:16:08' not multiple of :15 min}
    -
    1673 // Africa/Algiers {
    -
    1674 // STDOFF '0:09:21' not multiple of :15 min,
    -
    1675 // STDOFF '0:12:12' not multiple of :15 min,
    -
    1676 // }
    -
    1677 // Africa/Bissau {STDOFF '-1:02:20' not multiple of :15 min}
    -
    1678 // Africa/Cairo {STDOFF '2:05:09' not multiple of :15 min}
    -
    1679 // Africa/Casablanca {
    -
    1680 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1681 // STDOFF '-0:30:20' not multiple of :15 min,
    -
    1682 // Morocco {SAVE '-1:00' is a negative DST}
    -
    1683 // }
    -
    1684 // Africa/Ceuta {
    -
    1685 // STDOFF '-0:21:16' not multiple of :15 min,
    -
    1686 // Spain {SAVE '2:00' different from 1:00}
    -
    1687 // }
    -
    1688 // Africa/El_Aaiun {
    -
    1689 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1690 // STDOFF '-0:52:48' not multiple of :15 min,
    -
    1691 // Morocco {SAVE '-1:00' is a negative DST}
    -
    1692 // }
    -
    1693 // Africa/Johannesburg {
    -
    1694 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1695 // STDOFF '1:52:00' not multiple of :15 min,
    -
    1696 // }
    -
    1697 // Africa/Juba {STDOFF '2:06:28' not multiple of :15 min}
    -
    1698 // Africa/Khartoum {STDOFF '2:10:08' not multiple of :15 min}
    -
    1699 // Africa/Lagos {STDOFF '0:13:35' not multiple of :15 min}
    -
    1700 // Africa/Maputo {STDOFF '2:10:18' not multiple of :15 min}
    -
    1701 // Africa/Monrovia {
    -
    1702 // STDOFF '-0:43:08' not multiple of :15 min,
    -
    1703 // STDOFF '-0:44:30' not multiple of :15 min,
    -
    1704 // }
    -
    1705 // Africa/Nairobi {
    -
    1706 // STDOFF '2:27:16' not multiple of :15 min,
    -
    1707 // STDOFF '2:45' not multiple of :30 min,
    -
    1708 // }
    -
    1709 // Africa/Ndjamena {STDOFF '1:00:12' not multiple of :15 min}
    -
    1710 // Africa/Sao_Tome {
    -
    1711 // STDOFF '-0:36:45' not multiple of :15 min,
    -
    1712 // STDOFF '0:26:56' not multiple of :15 min,
    -
    1713 // }
    -
    1714 // Africa/Tripoli {STDOFF '0:52:44' not multiple of :15 min}
    -
    1715 // Africa/Tunis {
    -
    1716 // STDOFF '0:09:21' not multiple of :15 min,
    -
    1717 // STDOFF '0:40:44' not multiple of :15 min,
    -
    1718 // }
    -
    1719 // Africa/Windhoek {
    -
    1720 // STDOFF '1:08:24' not multiple of :15 min,
    -
    1721 // Namibia {
    -
    1722 // LETTER 'CAT' not single character,
    -
    1723 // LETTER 'WAT' not single character,
    -
    1724 // SAVE '-1:00' is a negative DST,
    -
    1725 // }
    -
    1726 // }
    -
    1727 // America/Adak {
    -
    1728 // STDOFF '-11:46:38' not multiple of :15 min,
    -
    1729 // STDOFF '12:13:22' not multiple of :15 min,
    -
    1730 // UNTIL '12:44:35' not multiple of :01 min,
    -
    1731 // UNTIL '12:44:35' not multiple of :15 min,
    -
    1732 // }
    -
    1733 // America/Anchorage {
    -
    1734 // STDOFF '-9:59:36' not multiple of :15 min,
    -
    1735 // STDOFF '14:00:24' not multiple of :15 min,
    -
    1736 // UNTIL '14:31:37' not multiple of :01 min,
    -
    1737 // UNTIL '14:31:37' not multiple of :15 min,
    -
    1738 // }
    -
    1739 // America/Araguaina {
    -
    1740 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1741 // STDOFF '-3:12:48' not multiple of :15 min,
    -
    1742 // }
    -
    1743 // America/Argentina/Buenos_Aires {
    -
    1744 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1745 // STDOFF '-3:53:48' not multiple of :15 min,
    -
    1746 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1747 // }
    -
    1748 // America/Argentina/Catamarca {
    -
    1749 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1750 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1751 // STDOFF '-4:23:08' not multiple of :15 min,
    -
    1752 // }
    -
    1753 // America/Argentina/Cordoba {
    -
    1754 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1755 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1756 // }
    -
    1757 // America/Argentina/Jujuy {
    -
    1758 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1759 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1760 // STDOFF '-4:21:12' not multiple of :15 min,
    -
    1761 // }
    -
    1762 // America/Argentina/La_Rioja {
    -
    1763 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1764 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1765 // STDOFF '-4:27:24' not multiple of :15 min,
    -
    1766 // }
    -
    1767 // America/Argentina/Mendoza {
    -
    1768 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1769 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1770 // STDOFF '-4:35:16' not multiple of :15 min,
    -
    1771 // }
    -
    1772 // America/Argentina/Rio_Gallegos {
    -
    1773 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1774 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1775 // STDOFF '-4:36:52' not multiple of :15 min,
    -
    1776 // }
    -
    1777 // America/Argentina/Salta {
    -
    1778 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1779 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1780 // STDOFF '-4:21:40' not multiple of :15 min,
    -
    1781 // }
    -
    1782 // America/Argentina/San_Juan {
    -
    1783 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1784 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1785 // STDOFF '-4:34:04' not multiple of :15 min,
    -
    1786 // }
    -
    1787 // America/Argentina/San_Luis {
    -
    1788 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1789 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1790 // STDOFF '-4:25:24' not multiple of :15 min,
    -
    1791 // }
    -
    1792 // America/Argentina/Tucuman {
    -
    1793 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1794 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1795 // STDOFF '-4:20:52' not multiple of :15 min,
    -
    1796 // }
    -
    1797 // America/Argentina/Ushuaia {
    -
    1798 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1799 // STDOFF '-4:16:48' not multiple of :15 min,
    -
    1800 // STDOFF '-4:33:12' not multiple of :15 min,
    -
    1801 // }
    -
    1802 // America/Asuncion {
    -
    1803 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1804 // STDOFF '-3:50:40' not multiple of :15 min,
    -
    1805 // }
    -
    1806 // America/Bahia {
    -
    1807 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1808 // STDOFF '-2:34:04' not multiple of :15 min,
    -
    1809 // }
    -
    1810 // America/Bahia_Banderas {STDOFF '-7:01:00' not multiple of :15 min}
    -
    1811 // America/Barbados {
    -
    1812 // STDOFF '-3:58:29' not multiple of :15 min,
    -
    1813 // Barb {SAVE '0:30' different from 1:00}
    -
    1814 // }
    -
    1815 // America/Belem {
    -
    1816 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1817 // STDOFF '-3:13:56' not multiple of :15 min,
    -
    1818 // }
    -
    1819 // America/Belize {
    -
    1820 // STDOFF '-5:52:48' not multiple of :15 min,
    -
    1821 // Belize {
    -
    1822 // LETTER '-0530' not single character,
    -
    1823 // LETTER 'CDT' not single character,
    -
    1824 // LETTER 'CPT' not single character,
    -
    1825 // LETTER 'CST' not single character,
    -
    1826 // LETTER 'CWT' not single character,
    -
    1827 // SAVE '0:30' different from 1:00,
    -
    1828 // }
    -
    1829 // }
    -
    1830 // America/Boa_Vista {
    -
    1831 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1832 // STDOFF '-4:02:40' not multiple of :15 min,
    -
    1833 // }
    -
    1834 // America/Bogota {
    -
    1835 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1836 // STDOFF '-4:56:16' not multiple of :15 min,
    -
    1837 // }
    -
    1838 // America/Boise {STDOFF '-7:44:49' not multiple of :15 min}
    -
    1839 // America/Campo_Grande {
    -
    1840 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1841 // STDOFF '-3:38:28' not multiple of :15 min,
    -
    1842 // }
    -
    1843 // America/Cancun {STDOFF '-5:47:04' not multiple of :15 min}
    -
    1844 // America/Caracas {
    -
    1845 // STDOFF '-4:27:40' not multiple of :15 min,
    -
    1846 // STDOFF '-4:27:44' not multiple of :15 min,
    -
    1847 // }
    -
    1848 // America/Cayenne {STDOFF '-3:29:20' not multiple of :15 min}
    -
    1849 // America/Chicago {STDOFF '-5:50:36' not multiple of :15 min}
    -
    1850 // America/Chihuahua {STDOFF '-7:04:20' not multiple of :15 min}
    -
    1851 // America/Ciudad_Juarez {STDOFF '-7:05:56' not multiple of :15 min}
    -
    1852 // America/Costa_Rica {STDOFF '-5:36:13' not multiple of :15 min}
    -
    1853 // America/Coyhaique {
    -
    1854 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1855 // STDOFF '-4:42:45' not multiple of :15 min,
    -
    1856 // STDOFF '-4:48:16' not multiple of :15 min,
    -
    1857 // }
    -
    1858 // America/Cuiaba {
    -
    1859 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1860 // STDOFF '-3:44:20' not multiple of :15 min,
    -
    1861 // }
    -
    1862 // America/Danmarkshavn {
    -
    1863 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1864 // STDOFF '-1:14:40' not multiple of :15 min,
    -
    1865 // }
    -
    1866 // America/Dawson {
    -
    1867 // STDOFF '-9:17:40' not multiple of :15 min,
    -
    1868 // Yukon {
    -
    1869 // LETTER 'DD' not single character,
    -
    1870 // SAVE '2:00' different from 1:00,
    -
    1871 // }
    -
    1872 // }
    -
    1873 // America/Dawson_Creek {STDOFF '-8:00:56' not multiple of :15 min}
    -
    1874 // America/Denver {STDOFF '-6:59:56' not multiple of :15 min}
    -
    1875 // America/Detroit {
    -
    1876 // STDOFF '-5:32:11' not multiple of :15 min,
    -
    1877 // UNTIL '0:01' not multiple of :15 min,
    -
    1878 // }
    -
    1879 // America/Edmonton {STDOFF '-7:33:52' not multiple of :15 min}
    -
    1880 // America/Eirunepe {
    -
    1881 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1882 // STDOFF '-4:39:28' not multiple of :15 min,
    -
    1883 // }
    -
    1884 // America/El_Salvador {STDOFF '-5:56:48' not multiple of :15 min}
    -
    1885 // America/Fort_Nelson {STDOFF '-8:10:47' not multiple of :15 min}
    -
    1886 // America/Fortaleza {
    -
    1887 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1888 // STDOFF '-2:34:00' not multiple of :15 min,
    -
    1889 // }
    -
    1890 // America/Glace_Bay {STDOFF '-3:59:48' not multiple of :15 min}
    -
    1891 // America/Goose_Bay {
    -
    1892 // STDOFF '-3:30:52' not multiple of :15 min,
    -
    1893 // STDOFF '-4:01:40' not multiple of :15 min,
    -
    1894 // StJohns {
    -
    1895 // AT '0:01' not multiple of :15 min,
    -
    1896 // LETTER 'DD' not single character,
    -
    1897 // SAVE '2:00' different from 1:00,
    -
    1898 // }
    -
    1899 // }
    -
    1900 // America/Grand_Turk {
    -
    1901 // STDOFF '-4:44:32' not multiple of :15 min,
    -
    1902 // STDOFF '-5:07:10' not multiple of :15 min,
    -
    1903 // }
    -
    1904 // America/Guatemala {STDOFF '-6:02:04' not multiple of :15 min}
    -
    1905 // America/Guayaquil {
    -
    1906 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1907 // STDOFF '-5:14:00' not multiple of :15 min,
    -
    1908 // STDOFF '-5:19:20' not multiple of :15 min,
    -
    1909 // }
    -
    1910 // America/Guyana {
    -
    1911 // STDOFF '-3:45' not multiple of :30 min,
    -
    1912 // STDOFF '-3:52:39' not multiple of :15 min,
    -
    1913 // }
    -
    1914 // America/Halifax {STDOFF '-4:14:24' not multiple of :15 min}
    -
    1915 // America/Havana {
    -
    1916 // STDOFF '-5:29:28' not multiple of :15 min,
    -
    1917 // STDOFF '-5:29:36' not multiple of :15 min,
    -
    1918 // }
    -
    1919 // America/Hermosillo {STDOFF '-7:23:52' not multiple of :15 min}
    -
    1920 // America/Indiana/Indianapolis {STDOFF '-5:44:38' not multiple of :15 min}
    -
    1921 // America/Indiana/Knox {STDOFF '-5:46:30' not multiple of :15 min}
    -
    1922 // America/Indiana/Marengo {STDOFF '-5:45:23' not multiple of :15 min}
    -
    1923 // America/Indiana/Petersburg {STDOFF '-5:49:07' not multiple of :15 min}
    -
    1924 // America/Indiana/Tell_City {STDOFF '-5:47:03' not multiple of :15 min}
    -
    1925 // America/Indiana/Vevay {STDOFF '-5:40:16' not multiple of :15 min}
    -
    1926 // America/Indiana/Vincennes {STDOFF '-5:50:07' not multiple of :15 min}
    -
    1927 // America/Indiana/Winamac {STDOFF '-5:46:25' not multiple of :15 min}
    -
    1928 // America/Jamaica {STDOFF '-5:07:10' not multiple of :15 min}
    -
    1929 // America/Juneau {
    -
    1930 // STDOFF '-8:57:41' not multiple of :15 min,
    -
    1931 // STDOFF '15:02:19' not multiple of :15 min,
    -
    1932 // UNTIL '15:33:32' not multiple of :01 min,
    -
    1933 // UNTIL '15:33:32' not multiple of :15 min,
    -
    1934 // }
    -
    1935 // America/Kentucky/Louisville {
    -
    1936 // STDOFF '-5:43:02' not multiple of :15 min,
    -
    1937 // Louisville {AT '0:01' not multiple of :15 min}
    -
    1938 // }
    -
    1939 // America/Kentucky/Monticello {STDOFF '-5:39:24' not multiple of :15 min}
    -
    1940 // America/La_Paz {STDOFF '-4:32:36' not multiple of :15 min}
    -
    1941 // America/Lima {
    -
    1942 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1943 // STDOFF '-5:08:12' not multiple of :15 min,
    -
    1944 // STDOFF '-5:08:36' not multiple of :15 min,
    -
    1945 // }
    -
    1946 // America/Los_Angeles {
    -
    1947 // STDOFF '-7:52:58' not multiple of :15 min,
    -
    1948 // CA {AT '2:01' not multiple of :15 min}
    -
    1949 // }
    -
    1950 // America/Maceio {
    -
    1951 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1952 // STDOFF '-2:22:52' not multiple of :15 min,
    -
    1953 // }
    -
    1954 // America/Managua {
    -
    1955 // STDOFF '-5:45:08' not multiple of :15 min,
    -
    1956 // STDOFF '-5:45:12' not multiple of :15 min,
    -
    1957 // }
    -
    1958 // America/Manaus {
    -
    1959 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1960 // STDOFF '-4:00:04' not multiple of :15 min,
    -
    1961 // }
    -
    1962 // America/Martinique {STDOFF '-4:04:20' not multiple of :15 min}
    -
    1963 // America/Mazatlan {STDOFF '-7:05:40' not multiple of :15 min}
    -
    1964 // America/Menominee {STDOFF '-5:50:27' not multiple of :15 min}
    -
    1965 // America/Merida {STDOFF '-5:58:28' not multiple of :15 min}
    -
    1966 // America/Metlakatla {
    -
    1967 // STDOFF '-8:46:18' not multiple of :15 min,
    -
    1968 // STDOFF '15:13:42' not multiple of :15 min,
    -
    1969 // UNTIL '15:44:55' not multiple of :01 min,
    -
    1970 // UNTIL '15:44:55' not multiple of :15 min,
    -
    1971 // }
    -
    1972 // America/Mexico_City {STDOFF '-6:36:36' not multiple of :15 min}
    -
    1973 // America/Miquelon {
    -
    1974 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1975 // STDOFF '-3:44:40' not multiple of :15 min,
    -
    1976 // }
    -
    1977 // America/Moncton {
    -
    1978 // STDOFF '-4:19:08' not multiple of :15 min,
    -
    1979 // Moncton {AT '0:01' not multiple of :15 min}
    -
    1980 // }
    -
    1981 // America/Monterrey {STDOFF '-6:41:16' not multiple of :15 min}
    -
    1982 // America/Montevideo {
    -
    1983 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1984 // STDOFF '-3:44:51' not multiple of :15 min,
    -
    1985 // Uruguay {
    -
    1986 // SAVE '0:30' different from 1:00,
    -
    1987 // SAVE '1:30' different from 1:00,
    -
    1988 // }
    -
    1989 // }
    -
    1990 // America/New_York {STDOFF '-4:56:02' not multiple of :15 min}
    -
    1991 // America/Nome {
    -
    1992 // STDOFF '-11:01:38' not multiple of :15 min,
    -
    1993 // STDOFF '12:58:22' not multiple of :15 min,
    -
    1994 // UNTIL '13:29:35' not multiple of :01 min,
    -
    1995 // UNTIL '13:29:35' not multiple of :15 min,
    -
    1996 // }
    -
    1997 // America/Noronha {
    -
    1998 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1999 // STDOFF '-2:09:40' not multiple of :15 min,
    -
    2000 // }
    -
    2001 // America/North_Dakota/Beulah {STDOFF '-6:47:07' not multiple of :15 min}
    -
    2002 // America/North_Dakota/Center {STDOFF '-6:45:12' not multiple of :15 min}
    -
    2003 // America/North_Dakota/New_Salem {STDOFF '-6:45:39' not multiple of :15 min}
    -
    2004 // America/Nuuk {
    -
    2005 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2006 // STDOFF '-3:26:56' not multiple of :15 min,
    -
    2007 // }
    -
    2008 // America/Ojinaga {STDOFF '-6:57:40' not multiple of :15 min}
    -
    2009 // America/Panama {
    -
    2010 // STDOFF '-5:18:08' not multiple of :15 min,
    -
    2011 // STDOFF '-5:19:36' not multiple of :15 min,
    -
    2012 // }
    -
    2013 // America/Paramaribo {
    -
    2014 // STDOFF '-3:40:36' not multiple of :15 min,
    -
    2015 // STDOFF '-3:40:40' not multiple of :15 min,
    -
    2016 // STDOFF '-3:40:52' not multiple of :15 min,
    -
    2017 // }
    -
    2018 // America/Phoenix {
    -
    2019 // STDOFF '-7:28:18' not multiple of :15 min,
    -
    2020 // UNTIL '0:01' not multiple of :15 min,
    -
    2021 // }
    -
    2022 // America/Port-au-Prince {
    -
    2023 // STDOFF '-4:49' not multiple of :15 min,
    -
    2024 // STDOFF '-4:49:20' not multiple of :15 min,
    -
    2025 // }
    -
    2026 // America/Porto_Velho {
    -
    2027 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2028 // STDOFF '-4:15:36' not multiple of :15 min,
    -
    2029 // }
    -
    2030 // America/Puerto_Rico {STDOFF '-4:24:25' not multiple of :15 min}
    -
    2031 // America/Punta_Arenas {
    -
    2032 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2033 // STDOFF '-4:42:45' not multiple of :15 min,
    -
    2034 // STDOFF '-4:43:40' not multiple of :15 min,
    -
    2035 // }
    -
    2036 // America/Recife {
    -
    2037 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2038 // STDOFF '-2:19:36' not multiple of :15 min,
    -
    2039 // }
    -
    2040 // America/Regina {STDOFF '-6:58:36' not multiple of :15 min}
    -
    2041 // America/Rio_Branco {
    -
    2042 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2043 // STDOFF '-4:31:12' not multiple of :15 min,
    -
    2044 // }
    -
    2045 // America/Santarem {
    -
    2046 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2047 // STDOFF '-3:38:48' not multiple of :15 min,
    -
    2048 // }
    -
    2049 // America/Santiago {
    -
    2050 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2051 // STDOFF '-4:42:45' not multiple of :15 min,
    -
    2052 // }
    -
    2053 // America/Santo_Domingo {
    -
    2054 // STDOFF '-4:39:36' not multiple of :15 min,
    -
    2055 // STDOFF '-4:40' not multiple of :15 min,
    -
    2056 // DR {
    -
    2057 // LETTER '-0430' not single character,
    -
    2058 // LETTER 'EDT' not single character,
    -
    2059 // LETTER 'EST' not single character,
    -
    2060 // SAVE '0:30' different from 1:00,
    -
    2061 // }
    -
    2062 // }
    -
    2063 // America/Sao_Paulo {
    -
    2064 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2065 // STDOFF '-3:06:28' not multiple of :15 min,
    -
    2066 // }
    -
    2067 // America/Scoresbysund {
    -
    2068 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2069 // STDOFF '-1:27:52' not multiple of :15 min,
    -
    2070 // }
    -
    2071 // America/Sitka {
    -
    2072 // STDOFF '-9:01:13' not multiple of :15 min,
    -
    2073 // STDOFF '14:58:47' not multiple of :15 min,
    -
    2074 // }
    -
    2075 // America/St_Johns {
    -
    2076 // STDOFF '-3:30:52' not multiple of :15 min,
    -
    2077 // StJohns {
    -
    2078 // AT '0:01' not multiple of :15 min,
    -
    2079 // LETTER 'DD' not single character,
    -
    2080 // SAVE '2:00' different from 1:00,
    -
    2081 // }
    -
    2082 // }
    -
    2083 // America/Swift_Current {STDOFF '-7:11:20' not multiple of :15 min}
    -
    2084 // America/Tegucigalpa {STDOFF '-5:48:52' not multiple of :15 min}
    -
    2085 // America/Thule {STDOFF '-4:35:08' not multiple of :15 min}
    -
    2086 // America/Tijuana {
    -
    2087 // STDOFF '-7:48:04' not multiple of :15 min,
    -
    2088 // CA {AT '2:01' not multiple of :15 min}
    -
    2089 // }
    -
    2090 // America/Toronto {STDOFF '-5:17:32' not multiple of :15 min}
    -
    2091 // America/Vancouver {STDOFF '-8:12:28' not multiple of :15 min}
    -
    2092 // America/Whitehorse {
    -
    2093 // STDOFF '-9:00:12' not multiple of :15 min,
    -
    2094 // Yukon {
    -
    2095 // LETTER 'DD' not single character,
    -
    2096 // SAVE '2:00' different from 1:00,
    -
    2097 // }
    -
    2098 // }
    -
    2099 // America/Winnipeg {STDOFF '-6:28:36' not multiple of :15 min}
    -
    2100 // America/Yakutat {
    -
    2101 // STDOFF '-9:18:55' not multiple of :15 min,
    -
    2102 // STDOFF '14:41:05' not multiple of :15 min,
    -
    2103 // UNTIL '15:12:18' not multiple of :01 min,
    -
    2104 // UNTIL '15:12:18' not multiple of :15 min,
    -
    2105 // }
    -
    2106 // Antarctica/Casey {UNTIL '0:01' not multiple of :15 min}
    -
    2107 // Antarctica/Palmer {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    2108 // Antarctica/Troll {
    -
    2109 // Troll {
    -
    2110 // LETTER '+00' not single character,
    -
    2111 // LETTER '+02' not single character,
    -
    2112 // SAVE '2:00' different from 1:00,
    -
    2113 // }
    -
    2114 // }
    -
    2115 // Asia/Almaty {
    -
    2116 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2117 // STDOFF '5:07:48' not multiple of :15 min,
    -
    2118 // }
    -
    2119 // Asia/Amman {STDOFF '2:23:44' not multiple of :15 min}
    -
    2120 // Asia/Anadyr {
    -
    2121 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2122 // STDOFF '11:49:56' not multiple of :15 min,
    -
    2123 // Russia {
    -
    2124 // LETTER '+05' not single character,
    -
    2125 // LETTER 'MDST' not single character,
    -
    2126 // LETTER 'MMT' not single character,
    -
    2127 // LETTER 'MSD' not single character,
    -
    2128 // LETTER 'MSK' not single character,
    -
    2129 // LETTER 'MST' not single character,
    -
    2130 // SAVE '2:00' different from 1:00,
    -
    2131 // }
    -
    2132 // }
    -
    2133 // Asia/Aqtau {
    -
    2134 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2135 // STDOFF '3:21:04' not multiple of :15 min,
    -
    2136 // }
    -
    2137 // Asia/Aqtobe {
    -
    2138 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2139 // STDOFF '3:48:40' not multiple of :15 min,
    -
    2140 // }
    -
    2141 // Asia/Ashgabat {
    -
    2142 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2143 // STDOFF '3:53:32' not multiple of :15 min,
    -
    2144 // }
    -
    2145 // Asia/Atyrau {
    -
    2146 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2147 // STDOFF '3:27:44' not multiple of :15 min,
    -
    2148 // }
    -
    2149 // Asia/Baghdad {
    -
    2150 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2151 // STDOFF '2:57:36' not multiple of :15 min,
    -
    2152 // STDOFF '2:57:40' not multiple of :15 min,
    -
    2153 // }
    -
    2154 // Asia/Baku {
    -
    2155 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2156 // STDOFF '3:19:24' not multiple of :15 min,
    -
    2157 // }
    -
    2158 // Asia/Bangkok {STDOFF '6:42:04' not multiple of :15 min}
    -
    2159 // Asia/Barnaul {
    -
    2160 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2161 // STDOFF '5:35:00' not multiple of :15 min,
    -
    2162 // Russia {
    -
    2163 // LETTER '+05' not single character,
    -
    2164 // LETTER 'MDST' not single character,
    -
    2165 // LETTER 'MMT' not single character,
    -
    2166 // LETTER 'MSD' not single character,
    -
    2167 // LETTER 'MSK' not single character,
    -
    2168 // LETTER 'MST' not single character,
    -
    2169 // SAVE '2:00' different from 1:00,
    -
    2170 // }
    -
    2171 // }
    -
    2172 // Asia/Beirut {STDOFF '2:22:00' not multiple of :15 min}
    -
    2173 // Asia/Bishkek {
    -
    2174 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2175 // STDOFF '4:58:24' not multiple of :15 min,
    -
    2176 // }
    -
    2177 // Asia/Chita {
    -
    2178 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2179 // STDOFF '7:33:52' not multiple of :15 min,
    -
    2180 // Russia {
    -
    2181 // LETTER '+05' not single character,
    -
    2182 // LETTER 'MDST' not single character,
    -
    2183 // LETTER 'MMT' not single character,
    -
    2184 // LETTER 'MSD' not single character,
    -
    2185 // LETTER 'MSK' not single character,
    -
    2186 // LETTER 'MST' not single character,
    -
    2187 // SAVE '2:00' different from 1:00,
    -
    2188 // }
    -
    2189 // }
    -
    2190 // Asia/Colombo {
    -
    2191 // RULES '0:30' different from 1:00,
    -
    2192 // STDOFF '5:19:24' not multiple of :15 min,
    -
    2193 // STDOFF '5:19:32' not multiple of :15 min,
    -
    2194 // }
    -
    2195 // Asia/Damascus {STDOFF '2:25:12' not multiple of :15 min}
    -
    2196 // Asia/Dhaka {
    -
    2197 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2198 // STDOFF '5:53:20' not multiple of :15 min,
    -
    2199 // STDOFF '6:01:40' not multiple of :15 min,
    -
    2200 // }
    -
    2201 // Asia/Dili {STDOFF '8:22:20' not multiple of :15 min}
    -
    2202 // Asia/Dubai {STDOFF '3:41:12' not multiple of :15 min}
    -
    2203 // Asia/Dushanbe {
    -
    2204 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2205 // STDOFF '4:35:12' not multiple of :15 min,
    -
    2206 // }
    -
    2207 // Asia/Famagusta {STDOFF '2:15:48' not multiple of :15 min}
    -
    2208 // Asia/Gaza {
    -
    2209 // STDOFF '2:17:52' not multiple of :15 min,
    -
    2210 // UNTIL '0:01' not multiple of :15 min,
    -
    2211 // Palestine {AT '0:01' not multiple of :15 min}
    -
    2212 // Zion {
    -
    2213 // LETTER 'DD' not single character,
    -
    2214 // SAVE '2:00' different from 1:00,
    -
    2215 // }
    -
    2216 // }
    -
    2217 // Asia/Hebron {
    -
    2218 // STDOFF '2:20:23' not multiple of :15 min,
    -
    2219 // Palestine {AT '0:01' not multiple of :15 min}
    -
    2220 // Zion {
    -
    2221 // LETTER 'DD' not single character,
    -
    2222 // SAVE '2:00' different from 1:00,
    -
    2223 // }
    -
    2224 // }
    -
    2225 // Asia/Ho_Chi_Minh {STDOFF '7:06:30' not multiple of :15 min}
    -
    2226 // Asia/Hong_Kong {
    -
    2227 // RULES '0:30' different from 1:00,
    -
    2228 // STDOFF '7:36:42' not multiple of :15 min,
    -
    2229 // }
    -
    2230 // Asia/Hovd {
    -
    2231 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2232 // STDOFF '6:06:36' not multiple of :15 min,
    -
    2233 // }
    -
    2234 // Asia/Irkutsk {
    -
    2235 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2236 // STDOFF '6:57:05' not multiple of :15 min,
    -
    2237 // Russia {
    -
    2238 // LETTER '+05' not single character,
    -
    2239 // LETTER 'MDST' not single character,
    -
    2240 // LETTER 'MMT' not single character,
    -
    2241 // LETTER 'MSD' not single character,
    -
    2242 // LETTER 'MSK' not single character,
    -
    2243 // LETTER 'MST' not single character,
    -
    2244 // SAVE '2:00' different from 1:00,
    -
    2245 // }
    -
    2246 // }
    -
    2247 // Asia/Jakarta {
    -
    2248 // STDOFF '7:07:12' not multiple of :15 min,
    -
    2249 // STDOFF '7:20' not multiple of :15 min,
    -
    2250 // UNTIL '16:40' not multiple of :15 min,
    -
    2251 // }
    -
    2252 // Asia/Jayapura {STDOFF '9:22:48' not multiple of :15 min}
    -
    2253 // Asia/Jerusalem {
    -
    2254 // STDOFF '2:20:40' not multiple of :15 min,
    -
    2255 // STDOFF '2:20:54' not multiple of :15 min,
    -
    2256 // Zion {
    -
    2257 // LETTER 'DD' not single character,
    -
    2258 // SAVE '2:00' different from 1:00,
    -
    2259 // }
    -
    2260 // }
    -
    2261 // Asia/Kabul {STDOFF '4:36:48' not multiple of :15 min}
    -
    2262 // Asia/Kamchatka {
    -
    2263 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2264 // STDOFF '10:34:36' not multiple of :15 min,
    -
    2265 // Russia {
    -
    2266 // LETTER '+05' not single character,
    -
    2267 // LETTER 'MDST' not single character,
    -
    2268 // LETTER 'MMT' not single character,
    -
    2269 // LETTER 'MSD' not single character,
    -
    2270 // LETTER 'MSK' not single character,
    -
    2271 // LETTER 'MST' not single character,
    -
    2272 // SAVE '2:00' different from 1:00,
    -
    2273 // }
    -
    2274 // }
    -
    2275 // Asia/Karachi {STDOFF '4:28:12' not multiple of :15 min}
    -
    2276 // Asia/Kathmandu {
    -
    2277 // STDOFF '5:41:16' not multiple of :15 min,
    -
    2278 // STDOFF '5:45' not multiple of :30 min,
    -
    2279 // }
    -
    2280 // Asia/Khandyga {
    -
    2281 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2282 // STDOFF '9:02:13' not multiple of :15 min,
    -
    2283 // Russia {
    -
    2284 // LETTER '+05' not single character,
    -
    2285 // LETTER 'MDST' not single character,
    -
    2286 // LETTER 'MMT' not single character,
    -
    2287 // LETTER 'MSD' not single character,
    -
    2288 // LETTER 'MSK' not single character,
    -
    2289 // LETTER 'MST' not single character,
    -
    2290 // SAVE '2:00' different from 1:00,
    -
    2291 // }
    -
    2292 // }
    -
    2293 // Asia/Kolkata {
    -
    2294 // STDOFF '5:21:10' not multiple of :15 min,
    -
    2295 // STDOFF '5:53:20' not multiple of :15 min,
    -
    2296 // STDOFF '5:53:28' not multiple of :15 min,
    -
    2297 // }
    -
    2298 // Asia/Krasnoyarsk {
    -
    2299 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2300 // STDOFF '6:11:26' not multiple of :15 min,
    -
    2301 // Russia {
    -
    2302 // LETTER '+05' not single character,
    -
    2303 // LETTER 'MDST' not single character,
    -
    2304 // LETTER 'MMT' not single character,
    -
    2305 // LETTER 'MSD' not single character,
    -
    2306 // LETTER 'MSK' not single character,
    -
    2307 // LETTER 'MST' not single character,
    -
    2308 // SAVE '2:00' different from 1:00,
    -
    2309 // }
    -
    2310 // }
    -
    2311 // Asia/Kuching {
    -
    2312 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2313 // STDOFF '7:21:20' not multiple of :15 min,
    -
    2314 // NBorneo {SAVE '0:20' different from 1:00}
    -
    2315 // }
    -
    2316 // Asia/Macau {
    -
    2317 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2318 // STDOFF '7:34:10' not multiple of :15 min,
    -
    2319 // }
    -
    2320 // Asia/Magadan {
    -
    2321 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2322 // STDOFF '10:03:12' not multiple of :15 min,
    -
    2323 // Russia {
    -
    2324 // LETTER '+05' not single character,
    -
    2325 // LETTER 'MDST' not single character,
    -
    2326 // LETTER 'MMT' not single character,
    -
    2327 // LETTER 'MSD' not single character,
    -
    2328 // LETTER 'MSK' not single character,
    -
    2329 // LETTER 'MST' not single character,
    -
    2330 // SAVE '2:00' different from 1:00,
    -
    2331 // }
    -
    2332 // }
    -
    2333 // Asia/Makassar {STDOFF '7:57:36' not multiple of :15 min}
    -
    2334 // Asia/Manila {
    -
    2335 // STDOFF '-15:56:08' not multiple of :15 min,
    -
    2336 // STDOFF '8:03:52' not multiple of :15 min,
    -
    2337 // }
    -
    2338 // Asia/Nicosia {STDOFF '2:13:28' not multiple of :15 min}
    -
    2339 // Asia/Novokuznetsk {
    -
    2340 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2341 // STDOFF '5:48:48' not multiple of :15 min,
    -
    2342 // Russia {
    -
    2343 // LETTER '+05' not single character,
    -
    2344 // LETTER 'MDST' not single character,
    -
    2345 // LETTER 'MMT' not single character,
    -
    2346 // LETTER 'MSD' not single character,
    -
    2347 // LETTER 'MSK' not single character,
    -
    2348 // LETTER 'MST' not single character,
    -
    2349 // SAVE '2:00' different from 1:00,
    -
    2350 // }
    -
    2351 // }
    -
    2352 // Asia/Novosibirsk {
    -
    2353 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2354 // STDOFF '5:31:40' not multiple of :15 min,
    -
    2355 // Russia {
    -
    2356 // LETTER '+05' not single character,
    -
    2357 // LETTER 'MDST' not single character,
    -
    2358 // LETTER 'MMT' not single character,
    -
    2359 // LETTER 'MSD' not single character,
    -
    2360 // LETTER 'MSK' not single character,
    -
    2361 // LETTER 'MST' not single character,
    -
    2362 // SAVE '2:00' different from 1:00,
    -
    2363 // }
    -
    2364 // }
    -
    2365 // Asia/Omsk {
    -
    2366 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2367 // STDOFF '4:53:30' not multiple of :15 min,
    -
    2368 // Russia {
    -
    2369 // LETTER '+05' not single character,
    -
    2370 // LETTER 'MDST' not single character,
    -
    2371 // LETTER 'MMT' not single character,
    -
    2372 // LETTER 'MSD' not single character,
    -
    2373 // LETTER 'MSK' not single character,
    -
    2374 // LETTER 'MST' not single character,
    -
    2375 // SAVE '2:00' different from 1:00,
    -
    2376 // }
    -
    2377 // }
    -
    2378 // Asia/Oral {
    -
    2379 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2380 // STDOFF '3:25:24' not multiple of :15 min,
    -
    2381 // }
    -
    2382 // Asia/Pontianak {STDOFF '7:17:20' not multiple of :15 min}
    -
    2383 // Asia/Pyongyang {STDOFF '8:23:00' not multiple of :15 min}
    -
    2384 // Asia/Qatar {STDOFF '3:26:08' not multiple of :15 min}
    -
    2385 // Asia/Qostanay {
    -
    2386 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2387 // STDOFF '4:14:28' not multiple of :15 min,
    -
    2388 // }
    -
    2389 // Asia/Qyzylorda {
    -
    2390 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2391 // STDOFF '4:21:52' not multiple of :15 min,
    -
    2392 // }
    -
    2393 // Asia/Riyadh {STDOFF '3:06:52' not multiple of :15 min}
    -
    2394 // Asia/Sakhalin {
    -
    2395 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2396 // STDOFF '9:30:48' not multiple of :15 min,
    -
    2397 // Russia {
    -
    2398 // LETTER '+05' not single character,
    -
    2399 // LETTER 'MDST' not single character,
    -
    2400 // LETTER 'MMT' not single character,
    -
    2401 // LETTER 'MSD' not single character,
    -
    2402 // LETTER 'MSK' not single character,
    -
    2403 // LETTER 'MST' not single character,
    -
    2404 // SAVE '2:00' different from 1:00,
    -
    2405 // }
    -
    2406 // }
    -
    2407 // Asia/Samarkand {
    -
    2408 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2409 // STDOFF '4:27:53' not multiple of :15 min,
    -
    2410 // }
    -
    2411 // Asia/Seoul {STDOFF '8:27:52' not multiple of :15 min}
    -
    2412 // Asia/Shanghai {STDOFF '8:05:43' not multiple of :15 min}
    -
    2413 // Asia/Singapore {
    -
    2414 // RULES '0:20' different from 1:00,
    -
    2415 // STDOFF '6:55:25' not multiple of :15 min,
    -
    2416 // STDOFF '7:20' not multiple of :15 min,
    -
    2417 // }
    -
    2418 // Asia/Srednekolymsk {
    -
    2419 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2420 // STDOFF '10:14:52' not multiple of :15 min,
    -
    2421 // Russia {
    -
    2422 // LETTER '+05' not single character,
    -
    2423 // LETTER 'MDST' not single character,
    -
    2424 // LETTER 'MMT' not single character,
    -
    2425 // LETTER 'MSD' not single character,
    -
    2426 // LETTER 'MSK' not single character,
    -
    2427 // LETTER 'MST' not single character,
    -
    2428 // SAVE '2:00' different from 1:00,
    -
    2429 // }
    -
    2430 // }
    -
    2431 // Asia/Taipei {STDOFF '8:06:00' not multiple of :15 min}
    -
    2432 // Asia/Tashkent {
    -
    2433 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2434 // STDOFF '4:37:11' not multiple of :15 min,
    -
    2435 // }
    -
    2436 // Asia/Tbilisi {
    -
    2437 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2438 // STDOFF '2:59:11' not multiple of :15 min,
    -
    2439 // }
    -
    2440 // Asia/Tehran {
    -
    2441 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2442 // STDOFF '3:25:44' not multiple of :15 min,
    -
    2443 // }
    -
    2444 // Asia/Thimphu {STDOFF '5:58:36' not multiple of :15 min}
    -
    2445 // Asia/Tokyo {STDOFF '9:18:59' not multiple of :15 min}
    -
    2446 // Asia/Tomsk {
    -
    2447 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2448 // STDOFF '5:39:51' not multiple of :15 min,
    -
    2449 // Russia {
    -
    2450 // LETTER '+05' not single character,
    -
    2451 // LETTER 'MDST' not single character,
    -
    2452 // LETTER 'MMT' not single character,
    -
    2453 // LETTER 'MSD' not single character,
    -
    2454 // LETTER 'MSK' not single character,
    -
    2455 // LETTER 'MST' not single character,
    -
    2456 // SAVE '2:00' different from 1:00,
    -
    2457 // }
    -
    2458 // }
    -
    2459 // Asia/Ulaanbaatar {
    -
    2460 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2461 // STDOFF '7:07:32' not multiple of :15 min,
    -
    2462 // }
    -
    2463 // Asia/Urumqi {STDOFF '5:50:20' not multiple of :15 min}
    -
    2464 // Asia/Ust-Nera {
    -
    2465 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2466 // STDOFF '9:32:54' not multiple of :15 min,
    -
    2467 // Russia {
    -
    2468 // LETTER '+05' not single character,
    -
    2469 // LETTER 'MDST' not single character,
    -
    2470 // LETTER 'MMT' not single character,
    -
    2471 // LETTER 'MSD' not single character,
    -
    2472 // LETTER 'MSK' not single character,
    -
    2473 // LETTER 'MST' not single character,
    -
    2474 // SAVE '2:00' different from 1:00,
    -
    2475 // }
    -
    2476 // }
    -
    2477 // Asia/Vladivostok {
    -
    2478 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2479 // STDOFF '8:47:31' not multiple of :15 min,
    -
    2480 // Russia {
    -
    2481 // LETTER '+05' not single character,
    -
    2482 // LETTER 'MDST' not single character,
    -
    2483 // LETTER 'MMT' not single character,
    -
    2484 // LETTER 'MSD' not single character,
    -
    2485 // LETTER 'MSK' not single character,
    -
    2486 // LETTER 'MST' not single character,
    -
    2487 // SAVE '2:00' different from 1:00,
    -
    2488 // }
    -
    2489 // }
    -
    2490 // Asia/Yakutsk {
    -
    2491 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2492 // STDOFF '8:38:58' not multiple of :15 min,
    -
    2493 // Russia {
    -
    2494 // LETTER '+05' not single character,
    -
    2495 // LETTER 'MDST' not single character,
    -
    2496 // LETTER 'MMT' not single character,
    -
    2497 // LETTER 'MSD' not single character,
    -
    2498 // LETTER 'MSK' not single character,
    -
    2499 // LETTER 'MST' not single character,
    -
    2500 // SAVE '2:00' different from 1:00,
    -
    2501 // }
    -
    2502 // }
    -
    2503 // Asia/Yangon {STDOFF '6:24:47' not multiple of :15 min}
    -
    2504 // Asia/Yekaterinburg {
    -
    2505 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2506 // STDOFF '3:45:05' not multiple of :15 min,
    -
    2507 // STDOFF '4:02:33' not multiple of :15 min,
    -
    2508 // Russia {
    -
    2509 // LETTER '+05' not single character,
    -
    2510 // LETTER 'MDST' not single character,
    -
    2511 // LETTER 'MMT' not single character,
    -
    2512 // LETTER 'MSD' not single character,
    -
    2513 // LETTER 'MSK' not single character,
    -
    2514 // LETTER 'MST' not single character,
    -
    2515 // SAVE '2:00' different from 1:00,
    -
    2516 // }
    -
    2517 // }
    -
    2518 // Asia/Yerevan {
    -
    2519 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2520 // STDOFF '2:58:00' not multiple of :15 min,
    -
    2521 // }
    -
    2522 // Atlantic/Azores {
    -
    2523 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2524 // STDOFF '-1:42:40' not multiple of :15 min,
    -
    2525 // STDOFF '-1:54:32' not multiple of :15 min,
    -
    2526 // Port {SAVE '2:00' different from 1:00}
    -
    2527 // }
    -
    2528 // Atlantic/Bermuda {STDOFF '-4:19:18' not multiple of :15 min}
    -
    2529 // Atlantic/Canary {STDOFF '-1:01:36' not multiple of :15 min}
    -
    2530 // Atlantic/Cape_Verde {STDOFF '-1:34:04' not multiple of :15 min}
    -
    2531 // Atlantic/Faroe {STDOFF '-0:27:04' not multiple of :15 min}
    -
    2532 // Atlantic/Madeira {
    -
    2533 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2534 // STDOFF '-1:07:36' not multiple of :15 min,
    -
    2535 // Port {SAVE '2:00' different from 1:00}
    -
    2536 // }
    -
    2537 // Atlantic/South_Georgia {STDOFF '-2:26:08' not multiple of :15 min}
    -
    2538 // Atlantic/Stanley {
    -
    2539 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2540 // STDOFF '-3:51:24' not multiple of :15 min,
    -
    2541 // }
    -
    2542 // Australia/Adelaide {STDOFF '9:14:20' not multiple of :15 min}
    -
    2543 // Australia/Brisbane {STDOFF '10:12:08' not multiple of :15 min}
    -
    2544 // Australia/Broken_Hill {STDOFF '9:25:48' not multiple of :15 min}
    -
    2545 // Australia/Darwin {STDOFF '8:43:20' not multiple of :15 min}
    -
    2546 // Australia/Eucla {
    -
    2547 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2548 // STDOFF '8:35:28' not multiple of :15 min,
    -
    2549 // STDOFF '8:45' not multiple of :30 min,
    -
    2550 // }
    -
    2551 // Australia/Hobart {STDOFF '9:49:16' not multiple of :15 min}
    -
    2552 // Australia/Lindeman {STDOFF '9:55:56' not multiple of :15 min}
    -
    2553 // Australia/Lord_Howe {
    -
    2554 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2555 // STDOFF '10:36:20' not multiple of :15 min,
    -
    2556 // LH {SAVE '0:30' different from 1:00}
    -
    2557 // }
    -
    2558 // Australia/Melbourne {STDOFF '9:39:52' not multiple of :15 min}
    -
    2559 // Australia/Perth {STDOFF '7:43:24' not multiple of :15 min}
    -
    2560 // Australia/Sydney {STDOFF '10:04:52' not multiple of :15 min}
    -
    2561 // Europe/Andorra {STDOFF '0:06:04' not multiple of :15 min}
    -
    2562 // Europe/Astrakhan {
    -
    2563 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2564 // STDOFF '3:12:12' not multiple of :15 min,
    -
    2565 // Russia {
    -
    2566 // LETTER '+05' not single character,
    -
    2567 // LETTER 'MDST' not single character,
    -
    2568 // LETTER 'MMT' not single character,
    -
    2569 // LETTER 'MSD' not single character,
    -
    2570 // LETTER 'MSK' not single character,
    -
    2571 // LETTER 'MST' not single character,
    -
    2572 // SAVE '2:00' different from 1:00,
    -
    2573 // }
    -
    2574 // }
    -
    2575 // Europe/Athens {
    -
    2576 // STDOFF '1:34:52' not multiple of :15 min,
    -
    2577 // UNTIL '0:01' not multiple of :15 min,
    -
    2578 // }
    -
    2579 // Europe/Belgrade {STDOFF '1:22:00' not multiple of :15 min}
    -
    2580 // Europe/Berlin {
    -
    2581 // STDOFF '0:53:28' not multiple of :15 min,
    -
    2582 // Germany {SAVE '2:00' different from 1:00}
    -
    2583 // SovietZone {SAVE '2:00' different from 1:00}
    -
    2584 // }
    -
    2585 // Europe/Brussels {
    -
    2586 // STDOFF '0:17:30' not multiple of :15 min,
    -
    2587 // UNTIL '00:17:30' not multiple of :01 min,
    -
    2588 // UNTIL '00:17:30' not multiple of :15 min,
    -
    2589 // }
    -
    2590 // Europe/Bucharest {STDOFF '1:44:24' not multiple of :15 min}
    -
    2591 // Europe/Budapest {STDOFF '1:16:20' not multiple of :15 min}
    -
    2592 // Europe/Chisinau {
    -
    2593 // STDOFF '1:44:24' not multiple of :15 min,
    -
    2594 // STDOFF '1:55' not multiple of :15 min,
    -
    2595 // STDOFF '1:55:20' not multiple of :15 min,
    -
    2596 // Russia {
    -
    2597 // LETTER '+05' not single character,
    -
    2598 // LETTER 'MDST' not single character,
    -
    2599 // LETTER 'MMT' not single character,
    -
    2600 // LETTER 'MSD' not single character,
    -
    2601 // LETTER 'MSK' not single character,
    -
    2602 // LETTER 'MST' not single character,
    -
    2603 // SAVE '2:00' different from 1:00,
    -
    2604 // }
    -
    2605 // }
    -
    2606 // Europe/Dublin {
    -
    2607 // STDOFF '-0:25:21' not multiple of :15 min,
    -
    2608 // Eire {SAVE '-1:00' is a negative DST}
    -
    2609 // GB-Eire {
    -
    2610 // LETTER 'BDST' not single character,
    -
    2611 // LETTER 'BST' not single character,
    -
    2612 // LETTER 'GMT' not single character,
    -
    2613 // SAVE '2:00' different from 1:00,
    -
    2614 // }
    -
    2615 // }
    -
    2616 // Europe/Gibraltar {
    -
    2617 // STDOFF '-0:21:24' not multiple of :15 min,
    -
    2618 // GB-Eire {
    -
    2619 // LETTER 'BDST' not single character,
    -
    2620 // LETTER 'BST' not single character,
    -
    2621 // LETTER 'GMT' not single character,
    -
    2622 // SAVE '2:00' different from 1:00,
    -
    2623 // }
    -
    2624 // }
    -
    2625 // Europe/Helsinki {STDOFF '1:39:49' not multiple of :15 min}
    -
    2626 // Europe/Istanbul {
    -
    2627 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2628 // STDOFF '1:55:52' not multiple of :15 min,
    -
    2629 // STDOFF '1:56:56' not multiple of :15 min,
    -
    2630 // }
    -
    2631 // Europe/Kaliningrad {
    -
    2632 // STDOFF '1:22:00' not multiple of :15 min,
    -
    2633 // Russia {
    -
    2634 // LETTER '+05' not single character,
    -
    2635 // LETTER 'MDST' not single character,
    -
    2636 // LETTER 'MMT' not single character,
    -
    2637 // LETTER 'MSD' not single character,
    -
    2638 // LETTER 'MSK' not single character,
    -
    2639 // LETTER 'MST' not single character,
    -
    2640 // SAVE '2:00' different from 1:00,
    -
    2641 // }
    -
    2642 // }
    -
    2643 // Europe/Kirov {
    -
    2644 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2645 // STDOFF '3:18:48' not multiple of :15 min,
    -
    2646 // Russia {
    -
    2647 // LETTER '+05' not single character,
    -
    2648 // LETTER 'MDST' not single character,
    -
    2649 // LETTER 'MMT' not single character,
    -
    2650 // LETTER 'MSD' not single character,
    -
    2651 // LETTER 'MSK' not single character,
    -
    2652 // LETTER 'MST' not single character,
    -
    2653 // SAVE '2:00' different from 1:00,
    -
    2654 // }
    -
    2655 // }
    -
    2656 // Europe/Kyiv {
    -
    2657 // STDOFF '2:02:04' not multiple of :15 min,
    -
    2658 // Russia {
    -
    2659 // LETTER '+05' not single character,
    -
    2660 // LETTER 'MDST' not single character,
    -
    2661 // LETTER 'MMT' not single character,
    -
    2662 // LETTER 'MSD' not single character,
    -
    2663 // LETTER 'MSK' not single character,
    -
    2664 // LETTER 'MST' not single character,
    -
    2665 // SAVE '2:00' different from 1:00,
    -
    2666 // }
    -
    2667 // }
    -
    2668 // Europe/Lisbon {
    -
    2669 // STDOFF '-0:36:45' not multiple of :15 min,
    -
    2670 // Port {SAVE '2:00' different from 1:00}
    -
    2671 // }
    -
    2672 // Europe/London {
    -
    2673 // STDOFF '-0:01:15' not multiple of :15 min,
    -
    2674 // GB-Eire {
    -
    2675 // LETTER 'BDST' not single character,
    -
    2676 // LETTER 'BST' not single character,
    -
    2677 // LETTER 'GMT' not single character,
    -
    2678 // SAVE '2:00' different from 1:00,
    -
    2679 // }
    -
    2680 // }
    -
    2681 // Europe/Madrid {
    -
    2682 // STDOFF '-0:14:44' not multiple of :15 min,
    -
    2683 // Spain {SAVE '2:00' different from 1:00}
    -
    2684 // }
    -
    2685 // Europe/Malta {STDOFF '0:58:04' not multiple of :15 min}
    -
    2686 // Europe/Minsk {
    -
    2687 // STDOFF '1:50' not multiple of :15 min,
    -
    2688 // STDOFF '1:50:16' not multiple of :15 min,
    -
    2689 // Russia {
    -
    2690 // LETTER '+05' not single character,
    -
    2691 // LETTER 'MDST' not single character,
    -
    2692 // LETTER 'MMT' not single character,
    -
    2693 // LETTER 'MSD' not single character,
    -
    2694 // LETTER 'MSK' not single character,
    -
    2695 // LETTER 'MST' not single character,
    -
    2696 // SAVE '2:00' different from 1:00,
    -
    2697 // }
    -
    2698 // }
    -
    2699 // Europe/Moscow {
    -
    2700 // STDOFF '2:30:17' not multiple of :15 min,
    -
    2701 // STDOFF '2:31:19' not multiple of :15 min,
    -
    2702 // Russia {
    -
    2703 // LETTER '+05' not single character,
    -
    2704 // LETTER 'MDST' not single character,
    -
    2705 // LETTER 'MMT' not single character,
    -
    2706 // LETTER 'MSD' not single character,
    -
    2707 // LETTER 'MSK' not single character,
    -
    2708 // LETTER 'MST' not single character,
    -
    2709 // SAVE '2:00' different from 1:00,
    -
    2710 // }
    -
    2711 // }
    -
    2712 // Europe/Paris {
    -
    2713 // STDOFF '0:09:21' not multiple of :15 min,
    -
    2714 // France {SAVE '2:00' different from 1:00}
    -
    2715 // }
    -
    2716 // Europe/Prague {
    -
    2717 // RULES '-1:00' is a negative DST,
    -
    2718 // STDOFF '0:57:44' not multiple of :15 min,
    -
    2719 // }
    -
    2720 // Europe/Riga {
    -
    2721 // STDOFF '1:36:34' not multiple of :15 min,
    -
    2722 // Russia {
    -
    2723 // LETTER '+05' not single character,
    -
    2724 // LETTER 'MDST' not single character,
    -
    2725 // LETTER 'MMT' not single character,
    -
    2726 // LETTER 'MSD' not single character,
    -
    2727 // LETTER 'MSK' not single character,
    -
    2728 // LETTER 'MST' not single character,
    -
    2729 // SAVE '2:00' different from 1:00,
    -
    2730 // }
    -
    2731 // }
    -
    2732 // Europe/Rome {STDOFF '0:49:56' not multiple of :15 min}
    -
    2733 // Europe/Samara {
    -
    2734 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2735 // STDOFF '3:20:20' not multiple of :15 min,
    -
    2736 // Russia {
    -
    2737 // LETTER '+05' not single character,
    -
    2738 // LETTER 'MDST' not single character,
    -
    2739 // LETTER 'MMT' not single character,
    -
    2740 // LETTER 'MSD' not single character,
    -
    2741 // LETTER 'MSK' not single character,
    -
    2742 // LETTER 'MST' not single character,
    -
    2743 // SAVE '2:00' different from 1:00,
    -
    2744 // }
    -
    2745 // }
    -
    2746 // Europe/Saratov {
    -
    2747 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2748 // STDOFF '3:04:18' not multiple of :15 min,
    -
    2749 // Russia {
    -
    2750 // LETTER '+05' not single character,
    -
    2751 // LETTER 'MDST' not single character,
    -
    2752 // LETTER 'MMT' not single character,
    -
    2753 // LETTER 'MSD' not single character,
    -
    2754 // LETTER 'MSK' not single character,
    -
    2755 // LETTER 'MST' not single character,
    -
    2756 // SAVE '2:00' different from 1:00,
    -
    2757 // }
    -
    2758 // }
    -
    2759 // Europe/Simferopol {
    -
    2760 // STDOFF '2:16' not multiple of :15 min,
    -
    2761 // STDOFF '2:16:24' not multiple of :15 min,
    -
    2762 // Russia {
    -
    2763 // LETTER '+05' not single character,
    -
    2764 // LETTER 'MDST' not single character,
    -
    2765 // LETTER 'MMT' not single character,
    -
    2766 // LETTER 'MSD' not single character,
    -
    2767 // LETTER 'MSK' not single character,
    -
    2768 // LETTER 'MST' not single character,
    -
    2769 // SAVE '2:00' different from 1:00,
    -
    2770 // }
    -
    2771 // }
    -
    2772 // Europe/Sofia {
    -
    2773 // STDOFF '1:33:16' not multiple of :15 min,
    -
    2774 // STDOFF '1:56:56' not multiple of :15 min,
    -
    2775 // }
    -
    2776 // Europe/Tallinn {
    -
    2777 // STDOFF '1:39:00' not multiple of :15 min,
    -
    2778 // Russia {
    -
    2779 // LETTER '+05' not single character,
    -
    2780 // LETTER 'MDST' not single character,
    -
    2781 // LETTER 'MMT' not single character,
    -
    2782 // LETTER 'MSD' not single character,
    -
    2783 // LETTER 'MSK' not single character,
    -
    2784 // LETTER 'MST' not single character,
    -
    2785 // SAVE '2:00' different from 1:00,
    -
    2786 // }
    -
    2787 // }
    -
    2788 // Europe/Tirane {STDOFF '1:19:20' not multiple of :15 min}
    -
    2789 // Europe/Ulyanovsk {
    -
    2790 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2791 // STDOFF '3:13:36' not multiple of :15 min,
    -
    2792 // Russia {
    -
    2793 // LETTER '+05' not single character,
    -
    2794 // LETTER 'MDST' not single character,
    -
    2795 // LETTER 'MMT' not single character,
    -
    2796 // LETTER 'MSD' not single character,
    -
    2797 // LETTER 'MSK' not single character,
    -
    2798 // LETTER 'MST' not single character,
    -
    2799 // SAVE '2:00' different from 1:00,
    -
    2800 // }
    -
    2801 // }
    -
    2802 // Europe/Vienna {STDOFF '1:05:21' not multiple of :15 min}
    -
    2803 // Europe/Vilnius {
    -
    2804 // STDOFF '1:24:00' not multiple of :15 min,
    -
    2805 // STDOFF '1:35:36' not multiple of :15 min,
    -
    2806 // STDOFF '1:41:16' not multiple of :15 min,
    -
    2807 // Russia {
    -
    2808 // LETTER '+05' not single character,
    -
    2809 // LETTER 'MDST' not single character,
    -
    2810 // LETTER 'MMT' not single character,
    -
    2811 // LETTER 'MSD' not single character,
    -
    2812 // LETTER 'MSK' not single character,
    -
    2813 // LETTER 'MST' not single character,
    -
    2814 // SAVE '2:00' different from 1:00,
    -
    2815 // }
    -
    2816 // }
    -
    2817 // Europe/Volgograd {
    -
    2818 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2819 // STDOFF '2:57:40' not multiple of :15 min,
    -
    2820 // Russia {
    -
    2821 // LETTER '+05' not single character,
    -
    2822 // LETTER 'MDST' not single character,
    -
    2823 // LETTER 'MMT' not single character,
    -
    2824 // LETTER 'MSD' not single character,
    -
    2825 // LETTER 'MSK' not single character,
    -
    2826 // LETTER 'MST' not single character,
    -
    2827 // SAVE '2:00' different from 1:00,
    -
    2828 // }
    -
    2829 // }
    -
    2830 // Europe/Warsaw {STDOFF '1:24:00' not multiple of :15 min}
    -
    2831 // Europe/Zurich {
    -
    2832 // STDOFF '0:29:46' not multiple of :15 min,
    -
    2833 // STDOFF '0:34:08' not multiple of :15 min,
    -
    2834 // }
    -
    2835 // Indian/Chagos {STDOFF '4:49:40' not multiple of :15 min}
    -
    2836 // Indian/Maldives {STDOFF '4:54:00' not multiple of :15 min}
    -
    2837 // Indian/Mauritius {
    -
    2838 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2839 // STDOFF '3:50:00' not multiple of :15 min,
    -
    2840 // }
    -
    2841 // Pacific/Apia {
    -
    2842 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2843 // STDOFF '-11:26:56' not multiple of :15 min,
    -
    2844 // STDOFF '12:33:04' not multiple of :15 min,
    -
    2845 // }
    -
    2846 // Pacific/Auckland {
    -
    2847 // STDOFF '11:39:04' not multiple of :15 min,
    -
    2848 // NZ {SAVE '0:30' different from 1:00}
    -
    2849 // }
    -
    2850 // Pacific/Bougainville {
    -
    2851 // STDOFF '10:22:16' not multiple of :15 min,
    -
    2852 // STDOFF '9:48:32' not multiple of :15 min,
    -
    2853 // }
    -
    2854 // Pacific/Chatham {
    -
    2855 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2856 // STDOFF '12:13:48' not multiple of :15 min,
    -
    2857 // STDOFF '12:15' not multiple of :30 min,
    -
    2858 // STDOFF '12:45' not multiple of :30 min,
    -
    2859 // }
    -
    2860 // Pacific/Easter {
    -
    2861 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2862 // STDOFF '-7:17:28' not multiple of :15 min,
    -
    2863 // }
    -
    2864 // Pacific/Efate {
    -
    2865 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2866 // STDOFF '11:13:16' not multiple of :15 min,
    -
    2867 // }
    -
    2868 // Pacific/Fakaofo {STDOFF '-11:24:56' not multiple of :15 min}
    -
    2869 // Pacific/Fiji {
    -
    2870 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2871 // STDOFF '11:55:44' not multiple of :15 min,
    -
    2872 // }
    -
    2873 // Pacific/Galapagos {
    -
    2874 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2875 // STDOFF '-5:58:24' not multiple of :15 min,
    -
    2876 // }
    -
    2877 // Pacific/Gambier {STDOFF '-8:59:48' not multiple of :15 min}
    -
    2878 // Pacific/Guadalcanal {STDOFF '10:39:48' not multiple of :15 min}
    -
    2879 // Pacific/Guam {
    -
    2880 // STDOFF '-14:21:00' not multiple of :15 min,
    -
    2881 // STDOFF '9:39:00' not multiple of :15 min,
    -
    2882 // Guam {
    -
    2883 // AT '0:01' not multiple of :15 min,
    -
    2884 // AT '2:01' not multiple of :15 min,
    -
    2885 // }
    -
    2886 // }
    -
    2887 // Pacific/Honolulu {STDOFF '-10:31:26' not multiple of :15 min}
    -
    2888 // Pacific/Kiritimati {
    -
    2889 // STDOFF '-10:29:20' not multiple of :15 min,
    -
    2890 // STDOFF '-10:40' not multiple of :15 min,
    -
    2891 // }
    -
    2892 // Pacific/Kosrae {
    -
    2893 // STDOFF '-13:08:04' not multiple of :15 min,
    -
    2894 // STDOFF '10:51:56' not multiple of :15 min,
    -
    2895 // }
    -
    2896 // Pacific/Kwajalein {STDOFF '11:09:20' not multiple of :15 min}
    -
    2897 // Pacific/Marquesas {STDOFF '-9:18:00' not multiple of :15 min}
    -
    2898 // Pacific/Nauru {STDOFF '11:07:40' not multiple of :15 min}
    -
    2899 // Pacific/Niue {
    -
    2900 // STDOFF '-11:19:40' not multiple of :15 min,
    -
    2901 // STDOFF '-11:20' not multiple of :15 min,
    -
    2902 // }
    -
    2903 // Pacific/Norfolk {
    -
    2904 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2905 // STDOFF '11:11:52' not multiple of :15 min,
    -
    2906 // STDOFF '11:12' not multiple of :15 min,
    -
    2907 // }
    -
    2908 // Pacific/Noumea {
    -
    2909 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2910 // STDOFF '11:05:48' not multiple of :15 min,
    -
    2911 // }
    -
    2912 // Pacific/Pago_Pago {
    -
    2913 // STDOFF '-11:22:48' not multiple of :15 min,
    -
    2914 // STDOFF '12:37:12' not multiple of :15 min,
    -
    2915 // }
    -
    2916 // Pacific/Palau {
    -
    2917 // STDOFF '-15:02:04' not multiple of :15 min,
    -
    2918 // STDOFF '8:57:56' not multiple of :15 min,
    -
    2919 // }
    -
    2920 // Pacific/Pitcairn {STDOFF '-8:40:20' not multiple of :15 min}
    -
    2921 // Pacific/Port_Moresby {
    -
    2922 // STDOFF '9:48:32' not multiple of :15 min,
    -
    2923 // STDOFF '9:48:40' not multiple of :15 min,
    -
    2924 // }
    -
    2925 // Pacific/Rarotonga {
    -
    2926 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2927 // STDOFF '-10:39:04' not multiple of :15 min,
    -
    2928 // STDOFF '13:20:56' not multiple of :15 min,
    -
    2929 // Cook {SAVE '0:30' different from 1:00}
    -
    2930 // }
    -
    2931 // Pacific/Tahiti {STDOFF '-9:58:16' not multiple of :15 min}
    -
    2932 // Pacific/Tarawa {STDOFF '11:32:04' not multiple of :15 min}
    -
    2933 // Pacific/Tongatapu {
    -
    2934 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    2935 // STDOFF '12:19:12' not multiple of :15 min,
    -
    2936 // STDOFF '12:20' not multiple of :15 min,
    -
    2937 // }
    -
    2938 
    -
    2939 
    -
    2940 //---------------------------------------------------------------------------
    -
    2941 // Unsupported links: 0
    -
    2942 //---------------------------------------------------------------------------
    -
    2943 
    -
    2944 
    -
    2945 
    -
    2946 //---------------------------------------------------------------------------
    -
    2947 // Notable links: 0
    -
    2948 //---------------------------------------------------------------------------
    -
    2949 
    -
    2950 
    -
    2951 
    -
    2952 }
    -
    2953 }
    -
    2954 
    -
    2955 #endif
    -
    - - - - diff --git a/docs/html/zonedbc_2zone__policies_8cpp_source.html b/docs/html/zonedbc_2zone__policies_8cpp_source.html deleted file mode 100644 index faccad9cc..000000000 --- a/docs/html/zonedbc_2zone__policies_8cpp_source.html +++ /dev/null @@ -1,28869 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/zone_policies.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace zonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --start_year 1800
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [1800,2200]
    -
    33 // Accurate Years: [-32767,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1844,2087]
    -
    37 // Lower/Upper Truncated: [False,False]
    -
    38 //
    -
    39 // Estimator Years: [1800,2090]
    -
    40 // Max Buffer Size: 8
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 1956
    -
    45 // Policies: 134
    -
    46 // Rules: 2235
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 26820
    -
    51 // Policies: 402
    -
    52 // Eras: 29340
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 486
    -
    57 // Letters: 160
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 71989
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 26820
    -
    65 // Policies: 1072
    -
    66 // Eras: 39120
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 486
    -
    71 // Letters: 216
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 90292
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #include <zoneinfo/compat.h>
    -
    79 #include "zone_policies.h"
    -
    80 
    -
    81 namespace ace_time {
    -
    82 namespace zonedbc {
    -
    83 
    -
    84 //---------------------------------------------------------------------------
    -
    85 // Policies: 134
    -
    86 // Rules: 2235
    -
    87 //---------------------------------------------------------------------------
    -
    88 
    -
    89 //---------------------------------------------------------------------------
    -
    90 // Policy name: AN
    -
    91 // Rules: 17
    -
    92 //---------------------------------------------------------------------------
    -
    93 
    -
    94 static const complete::Info::ZoneRule kZoneRulesAN[] ACE_TIME_PROGMEM = {
    -
    95  // Anchor: Rule AN 1972 only - Feb 27 2:00s 0 S
    -
    96  {
    -
    97  -32767 /*fromYear*/,
    -
    98  -32767 /*toYear*/,
    -
    99  1 /*inMonth*/,
    -
    100  0 /*onDayOfWeek*/,
    -
    101  1 /*onDayOfMonth*/,
    -
    102  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    103  0 /*atTimeCode (0/15)*/,
    -
    104  0 /*deltaMinutes*/,
    -
    105  25 /*letterIndex ("S")*/,
    -
    106  },
    -
    107  // Rule AN 1971 1985 - Oct lastSun 2:00s 1:00 D
    -
    108  {
    -
    109  1971 /*fromYear*/,
    -
    110  1985 /*toYear*/,
    -
    111  10 /*inMonth*/,
    -
    112  7 /*onDayOfWeek*/,
    -
    113  0 /*onDayOfMonth*/,
    -
    114  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    115  480 /*atTimeCode (7200/15)*/,
    -
    116  60 /*deltaMinutes*/,
    -
    117  13 /*letterIndex ("D")*/,
    -
    118  },
    -
    119  // Rule AN 1972 only - Feb 27 2:00s 0 S
    -
    120  {
    -
    121  1972 /*fromYear*/,
    -
    122  1972 /*toYear*/,
    -
    123  2 /*inMonth*/,
    -
    124  0 /*onDayOfWeek*/,
    -
    125  27 /*onDayOfMonth*/,
    -
    126  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    127  480 /*atTimeCode (7200/15)*/,
    -
    128  0 /*deltaMinutes*/,
    -
    129  25 /*letterIndex ("S")*/,
    -
    130  },
    -
    131  // Rule AN 1973 1981 - Mar Sun>=1 2:00s 0 S
    -
    132  {
    -
    133  1973 /*fromYear*/,
    -
    134  1981 /*toYear*/,
    -
    135  3 /*inMonth*/,
    -
    136  7 /*onDayOfWeek*/,
    -
    137  1 /*onDayOfMonth*/,
    -
    138  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    139  480 /*atTimeCode (7200/15)*/,
    -
    140  0 /*deltaMinutes*/,
    -
    141  25 /*letterIndex ("S")*/,
    -
    142  },
    -
    143  // Rule AN 1982 only - Apr Sun>=1 2:00s 0 S
    -
    144  {
    -
    145  1982 /*fromYear*/,
    -
    146  1982 /*toYear*/,
    -
    147  4 /*inMonth*/,
    -
    148  7 /*onDayOfWeek*/,
    -
    149  1 /*onDayOfMonth*/,
    -
    150  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    151  480 /*atTimeCode (7200/15)*/,
    -
    152  0 /*deltaMinutes*/,
    -
    153  25 /*letterIndex ("S")*/,
    -
    154  },
    -
    155  // Rule AN 1983 1985 - Mar Sun>=1 2:00s 0 S
    -
    156  {
    -
    157  1983 /*fromYear*/,
    -
    158  1985 /*toYear*/,
    -
    159  3 /*inMonth*/,
    -
    160  7 /*onDayOfWeek*/,
    -
    161  1 /*onDayOfMonth*/,
    -
    162  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    163  480 /*atTimeCode (7200/15)*/,
    -
    164  0 /*deltaMinutes*/,
    -
    165  25 /*letterIndex ("S")*/,
    -
    166  },
    -
    167  // Rule AN 1986 1989 - Mar Sun>=15 2:00s 0 S
    -
    168  {
    -
    169  1986 /*fromYear*/,
    -
    170  1989 /*toYear*/,
    -
    171  3 /*inMonth*/,
    -
    172  7 /*onDayOfWeek*/,
    -
    173  15 /*onDayOfMonth*/,
    -
    174  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    175  480 /*atTimeCode (7200/15)*/,
    -
    176  0 /*deltaMinutes*/,
    -
    177  25 /*letterIndex ("S")*/,
    -
    178  },
    -
    179  // Rule AN 1986 only - Oct 19 2:00s 1:00 D
    -
    180  {
    -
    181  1986 /*fromYear*/,
    -
    182  1986 /*toYear*/,
    -
    183  10 /*inMonth*/,
    -
    184  0 /*onDayOfWeek*/,
    -
    185  19 /*onDayOfMonth*/,
    -
    186  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    187  480 /*atTimeCode (7200/15)*/,
    -
    188  60 /*deltaMinutes*/,
    -
    189  13 /*letterIndex ("D")*/,
    -
    190  },
    -
    191  // Rule AN 1987 1999 - Oct lastSun 2:00s 1:00 D
    -
    192  {
    -
    193  1987 /*fromYear*/,
    -
    194  1999 /*toYear*/,
    -
    195  10 /*inMonth*/,
    -
    196  7 /*onDayOfWeek*/,
    -
    197  0 /*onDayOfMonth*/,
    -
    198  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    199  480 /*atTimeCode (7200/15)*/,
    -
    200  60 /*deltaMinutes*/,
    -
    201  13 /*letterIndex ("D")*/,
    -
    202  },
    -
    203  // Rule AN 1990 1995 - Mar Sun>=1 2:00s 0 S
    -
    204  {
    -
    205  1990 /*fromYear*/,
    -
    206  1995 /*toYear*/,
    -
    207  3 /*inMonth*/,
    -
    208  7 /*onDayOfWeek*/,
    -
    209  1 /*onDayOfMonth*/,
    -
    210  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    211  480 /*atTimeCode (7200/15)*/,
    -
    212  0 /*deltaMinutes*/,
    -
    213  25 /*letterIndex ("S")*/,
    -
    214  },
    -
    215  // Rule AN 1996 2005 - Mar lastSun 2:00s 0 S
    -
    216  {
    -
    217  1996 /*fromYear*/,
    -
    218  2005 /*toYear*/,
    -
    219  3 /*inMonth*/,
    -
    220  7 /*onDayOfWeek*/,
    -
    221  0 /*onDayOfMonth*/,
    -
    222  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    223  480 /*atTimeCode (7200/15)*/,
    -
    224  0 /*deltaMinutes*/,
    -
    225  25 /*letterIndex ("S")*/,
    -
    226  },
    -
    227  // Rule AN 2000 only - Aug lastSun 2:00s 1:00 D
    -
    228  {
    -
    229  2000 /*fromYear*/,
    -
    230  2000 /*toYear*/,
    -
    231  8 /*inMonth*/,
    -
    232  7 /*onDayOfWeek*/,
    -
    233  0 /*onDayOfMonth*/,
    -
    234  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    235  480 /*atTimeCode (7200/15)*/,
    -
    236  60 /*deltaMinutes*/,
    -
    237  13 /*letterIndex ("D")*/,
    -
    238  },
    -
    239  // Rule AN 2001 2007 - Oct lastSun 2:00s 1:00 D
    -
    240  {
    -
    241  2001 /*fromYear*/,
    -
    242  2007 /*toYear*/,
    -
    243  10 /*inMonth*/,
    -
    244  7 /*onDayOfWeek*/,
    -
    245  0 /*onDayOfMonth*/,
    -
    246  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    247  480 /*atTimeCode (7200/15)*/,
    -
    248  60 /*deltaMinutes*/,
    -
    249  13 /*letterIndex ("D")*/,
    -
    250  },
    -
    251  // Rule AN 2006 only - Apr Sun>=1 2:00s 0 S
    -
    252  {
    -
    253  2006 /*fromYear*/,
    -
    254  2006 /*toYear*/,
    -
    255  4 /*inMonth*/,
    -
    256  7 /*onDayOfWeek*/,
    -
    257  1 /*onDayOfMonth*/,
    -
    258  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    259  480 /*atTimeCode (7200/15)*/,
    -
    260  0 /*deltaMinutes*/,
    -
    261  25 /*letterIndex ("S")*/,
    -
    262  },
    -
    263  // Rule AN 2007 only - Mar lastSun 2:00s 0 S
    -
    264  {
    -
    265  2007 /*fromYear*/,
    -
    266  2007 /*toYear*/,
    -
    267  3 /*inMonth*/,
    -
    268  7 /*onDayOfWeek*/,
    -
    269  0 /*onDayOfMonth*/,
    -
    270  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    271  480 /*atTimeCode (7200/15)*/,
    -
    272  0 /*deltaMinutes*/,
    -
    273  25 /*letterIndex ("S")*/,
    -
    274  },
    -
    275  // Rule AN 2008 max - Apr Sun>=1 2:00s 0 S
    -
    276  {
    -
    277  2008 /*fromYear*/,
    -
    278  32766 /*toYear*/,
    -
    279  4 /*inMonth*/,
    -
    280  7 /*onDayOfWeek*/,
    -
    281  1 /*onDayOfMonth*/,
    -
    282  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    283  480 /*atTimeCode (7200/15)*/,
    -
    284  0 /*deltaMinutes*/,
    -
    285  25 /*letterIndex ("S")*/,
    -
    286  },
    -
    287  // Rule AN 2008 max - Oct Sun>=1 2:00s 1:00 D
    -
    288  {
    -
    289  2008 /*fromYear*/,
    -
    290  32766 /*toYear*/,
    -
    291  10 /*inMonth*/,
    -
    292  7 /*onDayOfWeek*/,
    -
    293  1 /*onDayOfMonth*/,
    -
    294  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    295  480 /*atTimeCode (7200/15)*/,
    -
    296  60 /*deltaMinutes*/,
    -
    297  13 /*letterIndex ("D")*/,
    -
    298  },
    -
    299 
    -
    300 };
    -
    301 
    -
    302 const complete::Info::ZonePolicy kZonePolicyAN ACE_TIME_PROGMEM = {
    -
    303  kZoneRulesAN /*rules*/,
    -
    304  17 /*numRules*/,
    -
    305 };
    -
    306 
    -
    307 //---------------------------------------------------------------------------
    -
    308 // Policy name: AQ
    -
    309 // Rules: 5
    -
    310 //---------------------------------------------------------------------------
    -
    311 
    -
    312 static const complete::Info::ZoneRule kZoneRulesAQ[] ACE_TIME_PROGMEM = {
    -
    313  // Anchor: Rule AQ 1972 only - Feb lastSun 2:00s 0 S
    -
    314  {
    -
    315  -32767 /*fromYear*/,
    -
    316  -32767 /*toYear*/,
    -
    317  1 /*inMonth*/,
    -
    318  0 /*onDayOfWeek*/,
    -
    319  1 /*onDayOfMonth*/,
    -
    320  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    321  0 /*atTimeCode (0/15)*/,
    -
    322  0 /*deltaMinutes*/,
    -
    323  25 /*letterIndex ("S")*/,
    -
    324  },
    -
    325  // Rule AQ 1971 only - Oct lastSun 2:00s 1:00 D
    -
    326  {
    -
    327  1971 /*fromYear*/,
    -
    328  1971 /*toYear*/,
    -
    329  10 /*inMonth*/,
    -
    330  7 /*onDayOfWeek*/,
    -
    331  0 /*onDayOfMonth*/,
    -
    332  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    333  480 /*atTimeCode (7200/15)*/,
    -
    334  60 /*deltaMinutes*/,
    -
    335  13 /*letterIndex ("D")*/,
    -
    336  },
    -
    337  // Rule AQ 1972 only - Feb lastSun 2:00s 0 S
    -
    338  {
    -
    339  1972 /*fromYear*/,
    -
    340  1972 /*toYear*/,
    -
    341  2 /*inMonth*/,
    -
    342  7 /*onDayOfWeek*/,
    -
    343  0 /*onDayOfMonth*/,
    -
    344  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    345  480 /*atTimeCode (7200/15)*/,
    -
    346  0 /*deltaMinutes*/,
    -
    347  25 /*letterIndex ("S")*/,
    -
    348  },
    -
    349  // Rule AQ 1989 1991 - Oct lastSun 2:00s 1:00 D
    -
    350  {
    -
    351  1989 /*fromYear*/,
    -
    352  1991 /*toYear*/,
    -
    353  10 /*inMonth*/,
    -
    354  7 /*onDayOfWeek*/,
    -
    355  0 /*onDayOfMonth*/,
    -
    356  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    357  480 /*atTimeCode (7200/15)*/,
    -
    358  60 /*deltaMinutes*/,
    -
    359  13 /*letterIndex ("D")*/,
    -
    360  },
    -
    361  // Rule AQ 1990 1992 - Mar Sun>=1 2:00s 0 S
    -
    362  {
    -
    363  1990 /*fromYear*/,
    -
    364  1992 /*toYear*/,
    -
    365  3 /*inMonth*/,
    -
    366  7 /*onDayOfWeek*/,
    -
    367  1 /*onDayOfMonth*/,
    -
    368  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    369  480 /*atTimeCode (7200/15)*/,
    -
    370  0 /*deltaMinutes*/,
    -
    371  25 /*letterIndex ("S")*/,
    -
    372  },
    -
    373 
    -
    374 };
    -
    375 
    -
    376 const complete::Info::ZonePolicy kZonePolicyAQ ACE_TIME_PROGMEM = {
    -
    377  kZoneRulesAQ /*rules*/,
    -
    378  5 /*numRules*/,
    -
    379 };
    -
    380 
    -
    381 //---------------------------------------------------------------------------
    -
    382 // Policy name: AS
    -
    383 // Rules: 16
    -
    384 //---------------------------------------------------------------------------
    -
    385 
    -
    386 static const complete::Info::ZoneRule kZoneRulesAS[] ACE_TIME_PROGMEM = {
    -
    387  // Anchor: Rule AS 1972 only - Feb 27 2:00s 0 S
    -
    388  {
    -
    389  -32767 /*fromYear*/,
    -
    390  -32767 /*toYear*/,
    -
    391  1 /*inMonth*/,
    -
    392  0 /*onDayOfWeek*/,
    -
    393  1 /*onDayOfMonth*/,
    -
    394  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    395  0 /*atTimeCode (0/15)*/,
    -
    396  0 /*deltaMinutes*/,
    -
    397  25 /*letterIndex ("S")*/,
    -
    398  },
    -
    399  // Rule AS 1971 1985 - Oct lastSun 2:00s 1:00 D
    -
    400  {
    -
    401  1971 /*fromYear*/,
    -
    402  1985 /*toYear*/,
    -
    403  10 /*inMonth*/,
    -
    404  7 /*onDayOfWeek*/,
    -
    405  0 /*onDayOfMonth*/,
    -
    406  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    407  480 /*atTimeCode (7200/15)*/,
    -
    408  60 /*deltaMinutes*/,
    -
    409  13 /*letterIndex ("D")*/,
    -
    410  },
    -
    411  // Rule AS 1986 only - Oct 19 2:00s 1:00 D
    -
    412  {
    -
    413  1986 /*fromYear*/,
    -
    414  1986 /*toYear*/,
    -
    415  10 /*inMonth*/,
    -
    416  0 /*onDayOfWeek*/,
    -
    417  19 /*onDayOfMonth*/,
    -
    418  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    419  480 /*atTimeCode (7200/15)*/,
    -
    420  60 /*deltaMinutes*/,
    -
    421  13 /*letterIndex ("D")*/,
    -
    422  },
    -
    423  // Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 D
    -
    424  {
    -
    425  1987 /*fromYear*/,
    -
    426  2007 /*toYear*/,
    -
    427  10 /*inMonth*/,
    -
    428  7 /*onDayOfWeek*/,
    -
    429  0 /*onDayOfMonth*/,
    -
    430  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    431  480 /*atTimeCode (7200/15)*/,
    -
    432  60 /*deltaMinutes*/,
    -
    433  13 /*letterIndex ("D")*/,
    -
    434  },
    -
    435  // Rule AS 1972 only - Feb 27 2:00s 0 S
    -
    436  {
    -
    437  1972 /*fromYear*/,
    -
    438  1972 /*toYear*/,
    -
    439  2 /*inMonth*/,
    -
    440  0 /*onDayOfWeek*/,
    -
    441  27 /*onDayOfMonth*/,
    -
    442  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    443  480 /*atTimeCode (7200/15)*/,
    -
    444  0 /*deltaMinutes*/,
    -
    445  25 /*letterIndex ("S")*/,
    -
    446  },
    -
    447  // Rule AS 1973 1985 - Mar Sun>=1 2:00s 0 S
    -
    448  {
    -
    449  1973 /*fromYear*/,
    -
    450  1985 /*toYear*/,
    -
    451  3 /*inMonth*/,
    -
    452  7 /*onDayOfWeek*/,
    -
    453  1 /*onDayOfMonth*/,
    -
    454  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    455  480 /*atTimeCode (7200/15)*/,
    -
    456  0 /*deltaMinutes*/,
    -
    457  25 /*letterIndex ("S")*/,
    -
    458  },
    -
    459  // Rule AS 1986 1990 - Mar Sun>=15 2:00s 0 S
    -
    460  {
    -
    461  1986 /*fromYear*/,
    -
    462  1990 /*toYear*/,
    -
    463  3 /*inMonth*/,
    -
    464  7 /*onDayOfWeek*/,
    -
    465  15 /*onDayOfMonth*/,
    -
    466  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    467  480 /*atTimeCode (7200/15)*/,
    -
    468  0 /*deltaMinutes*/,
    -
    469  25 /*letterIndex ("S")*/,
    -
    470  },
    -
    471  // Rule AS 1991 only - Mar 3 2:00s 0 S
    -
    472  {
    -
    473  1991 /*fromYear*/,
    -
    474  1991 /*toYear*/,
    -
    475  3 /*inMonth*/,
    -
    476  0 /*onDayOfWeek*/,
    -
    477  3 /*onDayOfMonth*/,
    -
    478  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    479  480 /*atTimeCode (7200/15)*/,
    -
    480  0 /*deltaMinutes*/,
    -
    481  25 /*letterIndex ("S")*/,
    -
    482  },
    -
    483  // Rule AS 1992 only - Mar 22 2:00s 0 S
    -
    484  {
    -
    485  1992 /*fromYear*/,
    -
    486  1992 /*toYear*/,
    -
    487  3 /*inMonth*/,
    -
    488  0 /*onDayOfWeek*/,
    -
    489  22 /*onDayOfMonth*/,
    -
    490  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    491  480 /*atTimeCode (7200/15)*/,
    -
    492  0 /*deltaMinutes*/,
    -
    493  25 /*letterIndex ("S")*/,
    -
    494  },
    -
    495  // Rule AS 1993 only - Mar 7 2:00s 0 S
    -
    496  {
    -
    497  1993 /*fromYear*/,
    -
    498  1993 /*toYear*/,
    -
    499  3 /*inMonth*/,
    -
    500  0 /*onDayOfWeek*/,
    -
    501  7 /*onDayOfMonth*/,
    -
    502  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    503  480 /*atTimeCode (7200/15)*/,
    -
    504  0 /*deltaMinutes*/,
    -
    505  25 /*letterIndex ("S")*/,
    -
    506  },
    -
    507  // Rule AS 1994 only - Mar 20 2:00s 0 S
    -
    508  {
    -
    509  1994 /*fromYear*/,
    -
    510  1994 /*toYear*/,
    -
    511  3 /*inMonth*/,
    -
    512  0 /*onDayOfWeek*/,
    -
    513  20 /*onDayOfMonth*/,
    -
    514  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    515  480 /*atTimeCode (7200/15)*/,
    -
    516  0 /*deltaMinutes*/,
    -
    517  25 /*letterIndex ("S")*/,
    -
    518  },
    -
    519  // Rule AS 1995 2005 - Mar lastSun 2:00s 0 S
    -
    520  {
    -
    521  1995 /*fromYear*/,
    -
    522  2005 /*toYear*/,
    -
    523  3 /*inMonth*/,
    -
    524  7 /*onDayOfWeek*/,
    -
    525  0 /*onDayOfMonth*/,
    -
    526  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    527  480 /*atTimeCode (7200/15)*/,
    -
    528  0 /*deltaMinutes*/,
    -
    529  25 /*letterIndex ("S")*/,
    -
    530  },
    -
    531  // Rule AS 2006 only - Apr 2 2:00s 0 S
    -
    532  {
    -
    533  2006 /*fromYear*/,
    -
    534  2006 /*toYear*/,
    -
    535  4 /*inMonth*/,
    -
    536  0 /*onDayOfWeek*/,
    -
    537  2 /*onDayOfMonth*/,
    -
    538  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    539  480 /*atTimeCode (7200/15)*/,
    -
    540  0 /*deltaMinutes*/,
    -
    541  25 /*letterIndex ("S")*/,
    -
    542  },
    -
    543  // Rule AS 2007 only - Mar lastSun 2:00s 0 S
    -
    544  {
    -
    545  2007 /*fromYear*/,
    -
    546  2007 /*toYear*/,
    -
    547  3 /*inMonth*/,
    -
    548  7 /*onDayOfWeek*/,
    -
    549  0 /*onDayOfMonth*/,
    -
    550  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    551  480 /*atTimeCode (7200/15)*/,
    -
    552  0 /*deltaMinutes*/,
    -
    553  25 /*letterIndex ("S")*/,
    -
    554  },
    -
    555  // Rule AS 2008 max - Apr Sun>=1 2:00s 0 S
    -
    556  {
    -
    557  2008 /*fromYear*/,
    -
    558  32766 /*toYear*/,
    -
    559  4 /*inMonth*/,
    -
    560  7 /*onDayOfWeek*/,
    -
    561  1 /*onDayOfMonth*/,
    -
    562  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    563  480 /*atTimeCode (7200/15)*/,
    -
    564  0 /*deltaMinutes*/,
    -
    565  25 /*letterIndex ("S")*/,
    -
    566  },
    -
    567  // Rule AS 2008 max - Oct Sun>=1 2:00s 1:00 D
    -
    568  {
    -
    569  2008 /*fromYear*/,
    -
    570  32766 /*toYear*/,
    -
    571  10 /*inMonth*/,
    -
    572  7 /*onDayOfWeek*/,
    -
    573  1 /*onDayOfMonth*/,
    -
    574  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    575  480 /*atTimeCode (7200/15)*/,
    -
    576  60 /*deltaMinutes*/,
    -
    577  13 /*letterIndex ("D")*/,
    -
    578  },
    -
    579 
    -
    580 };
    -
    581 
    -
    582 const complete::Info::ZonePolicy kZonePolicyAS ACE_TIME_PROGMEM = {
    -
    583  kZoneRulesAS /*rules*/,
    -
    584  16 /*numRules*/,
    -
    585 };
    -
    586 
    -
    587 //---------------------------------------------------------------------------
    -
    588 // Policy name: AT
    -
    589 // Rules: 24
    -
    590 //---------------------------------------------------------------------------
    -
    591 
    -
    592 static const complete::Info::ZoneRule kZoneRulesAT[] ACE_TIME_PROGMEM = {
    -
    593  // Anchor: Rule AT 1917 only - Mar lastSun 2:00s 0 S
    -
    594  {
    -
    595  -32767 /*fromYear*/,
    -
    596  -32767 /*toYear*/,
    -
    597  1 /*inMonth*/,
    -
    598  0 /*onDayOfWeek*/,
    -
    599  1 /*onDayOfMonth*/,
    -
    600  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    601  0 /*atTimeCode (0/15)*/,
    -
    602  0 /*deltaMinutes*/,
    -
    603  25 /*letterIndex ("S")*/,
    -
    604  },
    -
    605  // Rule AT 1916 only - Oct Sun>=1 2:00s 1:00 D
    -
    606  {
    -
    607  1916 /*fromYear*/,
    -
    608  1916 /*toYear*/,
    -
    609  10 /*inMonth*/,
    -
    610  7 /*onDayOfWeek*/,
    -
    611  1 /*onDayOfMonth*/,
    -
    612  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    613  480 /*atTimeCode (7200/15)*/,
    -
    614  60 /*deltaMinutes*/,
    -
    615  13 /*letterIndex ("D")*/,
    -
    616  },
    -
    617  // Rule AT 1917 only - Mar lastSun 2:00s 0 S
    -
    618  {
    -
    619  1917 /*fromYear*/,
    -
    620  1917 /*toYear*/,
    -
    621  3 /*inMonth*/,
    -
    622  7 /*onDayOfWeek*/,
    -
    623  0 /*onDayOfMonth*/,
    -
    624  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    625  480 /*atTimeCode (7200/15)*/,
    -
    626  0 /*deltaMinutes*/,
    -
    627  25 /*letterIndex ("S")*/,
    -
    628  },
    -
    629  // Rule AT 1917 1918 - Oct Sun>=22 2:00s 1:00 D
    -
    630  {
    -
    631  1917 /*fromYear*/,
    -
    632  1918 /*toYear*/,
    -
    633  10 /*inMonth*/,
    -
    634  7 /*onDayOfWeek*/,
    -
    635  22 /*onDayOfMonth*/,
    -
    636  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    637  480 /*atTimeCode (7200/15)*/,
    -
    638  60 /*deltaMinutes*/,
    -
    639  13 /*letterIndex ("D")*/,
    -
    640  },
    -
    641  // Rule AT 1918 1919 - Mar Sun>=1 2:00s 0 S
    -
    642  {
    -
    643  1918 /*fromYear*/,
    -
    644  1919 /*toYear*/,
    -
    645  3 /*inMonth*/,
    -
    646  7 /*onDayOfWeek*/,
    -
    647  1 /*onDayOfMonth*/,
    -
    648  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    649  480 /*atTimeCode (7200/15)*/,
    -
    650  0 /*deltaMinutes*/,
    -
    651  25 /*letterIndex ("S")*/,
    -
    652  },
    -
    653  // Rule AT 1967 only - Oct Sun>=1 2:00s 1:00 D
    -
    654  {
    -
    655  1967 /*fromYear*/,
    -
    656  1967 /*toYear*/,
    -
    657  10 /*inMonth*/,
    -
    658  7 /*onDayOfWeek*/,
    -
    659  1 /*onDayOfMonth*/,
    -
    660  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    661  480 /*atTimeCode (7200/15)*/,
    -
    662  60 /*deltaMinutes*/,
    -
    663  13 /*letterIndex ("D")*/,
    -
    664  },
    -
    665  // Rule AT 1968 only - Mar Sun>=29 2:00s 0 S
    -
    666  {
    -
    667  1968 /*fromYear*/,
    -
    668  1968 /*toYear*/,
    -
    669  3 /*inMonth*/,
    -
    670  7 /*onDayOfWeek*/,
    -
    671  29 /*onDayOfMonth*/,
    -
    672  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    673  480 /*atTimeCode (7200/15)*/,
    -
    674  0 /*deltaMinutes*/,
    -
    675  25 /*letterIndex ("S")*/,
    -
    676  },
    -
    677  // Rule AT 1968 1985 - Oct lastSun 2:00s 1:00 D
    -
    678  {
    -
    679  1968 /*fromYear*/,
    -
    680  1985 /*toYear*/,
    -
    681  10 /*inMonth*/,
    -
    682  7 /*onDayOfWeek*/,
    -
    683  0 /*onDayOfMonth*/,
    -
    684  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    685  480 /*atTimeCode (7200/15)*/,
    -
    686  60 /*deltaMinutes*/,
    -
    687  13 /*letterIndex ("D")*/,
    -
    688  },
    -
    689  // Rule AT 1969 1971 - Mar Sun>=8 2:00s 0 S
    -
    690  {
    -
    691  1969 /*fromYear*/,
    -
    692  1971 /*toYear*/,
    -
    693  3 /*inMonth*/,
    -
    694  7 /*onDayOfWeek*/,
    -
    695  8 /*onDayOfMonth*/,
    -
    696  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    697  480 /*atTimeCode (7200/15)*/,
    -
    698  0 /*deltaMinutes*/,
    -
    699  25 /*letterIndex ("S")*/,
    -
    700  },
    -
    701  // Rule AT 1972 only - Feb lastSun 2:00s 0 S
    -
    702  {
    -
    703  1972 /*fromYear*/,
    -
    704  1972 /*toYear*/,
    -
    705  2 /*inMonth*/,
    -
    706  7 /*onDayOfWeek*/,
    -
    707  0 /*onDayOfMonth*/,
    -
    708  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    709  480 /*atTimeCode (7200/15)*/,
    -
    710  0 /*deltaMinutes*/,
    -
    711  25 /*letterIndex ("S")*/,
    -
    712  },
    -
    713  // Rule AT 1973 1981 - Mar Sun>=1 2:00s 0 S
    -
    714  {
    -
    715  1973 /*fromYear*/,
    -
    716  1981 /*toYear*/,
    -
    717  3 /*inMonth*/,
    -
    718  7 /*onDayOfWeek*/,
    -
    719  1 /*onDayOfMonth*/,
    -
    720  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    721  480 /*atTimeCode (7200/15)*/,
    -
    722  0 /*deltaMinutes*/,
    -
    723  25 /*letterIndex ("S")*/,
    -
    724  },
    -
    725  // Rule AT 1982 1983 - Mar lastSun 2:00s 0 S
    -
    726  {
    -
    727  1982 /*fromYear*/,
    -
    728  1983 /*toYear*/,
    -
    729  3 /*inMonth*/,
    -
    730  7 /*onDayOfWeek*/,
    -
    731  0 /*onDayOfMonth*/,
    -
    732  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    733  480 /*atTimeCode (7200/15)*/,
    -
    734  0 /*deltaMinutes*/,
    -
    735  25 /*letterIndex ("S")*/,
    -
    736  },
    -
    737  // Rule AT 1984 1986 - Mar Sun>=1 2:00s 0 S
    -
    738  {
    -
    739  1984 /*fromYear*/,
    -
    740  1986 /*toYear*/,
    -
    741  3 /*inMonth*/,
    -
    742  7 /*onDayOfWeek*/,
    -
    743  1 /*onDayOfMonth*/,
    -
    744  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    745  480 /*atTimeCode (7200/15)*/,
    -
    746  0 /*deltaMinutes*/,
    -
    747  25 /*letterIndex ("S")*/,
    -
    748  },
    -
    749  // Rule AT 1986 only - Oct Sun>=15 2:00s 1:00 D
    -
    750  {
    -
    751  1986 /*fromYear*/,
    -
    752  1986 /*toYear*/,
    -
    753  10 /*inMonth*/,
    -
    754  7 /*onDayOfWeek*/,
    -
    755  15 /*onDayOfMonth*/,
    -
    756  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    757  480 /*atTimeCode (7200/15)*/,
    -
    758  60 /*deltaMinutes*/,
    -
    759  13 /*letterIndex ("D")*/,
    -
    760  },
    -
    761  // Rule AT 1987 1990 - Mar Sun>=15 2:00s 0 S
    -
    762  {
    -
    763  1987 /*fromYear*/,
    -
    764  1990 /*toYear*/,
    -
    765  3 /*inMonth*/,
    -
    766  7 /*onDayOfWeek*/,
    -
    767  15 /*onDayOfMonth*/,
    -
    768  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    769  480 /*atTimeCode (7200/15)*/,
    -
    770  0 /*deltaMinutes*/,
    -
    771  25 /*letterIndex ("S")*/,
    -
    772  },
    -
    773  // Rule AT 1987 only - Oct Sun>=22 2:00s 1:00 D
    -
    774  {
    -
    775  1987 /*fromYear*/,
    -
    776  1987 /*toYear*/,
    -
    777  10 /*inMonth*/,
    -
    778  7 /*onDayOfWeek*/,
    -
    779  22 /*onDayOfMonth*/,
    -
    780  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    781  480 /*atTimeCode (7200/15)*/,
    -
    782  60 /*deltaMinutes*/,
    -
    783  13 /*letterIndex ("D")*/,
    -
    784  },
    -
    785  // Rule AT 1988 1990 - Oct lastSun 2:00s 1:00 D
    -
    786  {
    -
    787  1988 /*fromYear*/,
    -
    788  1990 /*toYear*/,
    -
    789  10 /*inMonth*/,
    -
    790  7 /*onDayOfWeek*/,
    -
    791  0 /*onDayOfMonth*/,
    -
    792  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    793  480 /*atTimeCode (7200/15)*/,
    -
    794  60 /*deltaMinutes*/,
    -
    795  13 /*letterIndex ("D")*/,
    -
    796  },
    -
    797  // Rule AT 1991 1999 - Oct Sun>=1 2:00s 1:00 D
    -
    798  {
    -
    799  1991 /*fromYear*/,
    -
    800  1999 /*toYear*/,
    -
    801  10 /*inMonth*/,
    -
    802  7 /*onDayOfWeek*/,
    -
    803  1 /*onDayOfMonth*/,
    -
    804  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    805  480 /*atTimeCode (7200/15)*/,
    -
    806  60 /*deltaMinutes*/,
    -
    807  13 /*letterIndex ("D")*/,
    -
    808  },
    -
    809  // Rule AT 1991 2005 - Mar lastSun 2:00s 0 S
    -
    810  {
    -
    811  1991 /*fromYear*/,
    -
    812  2005 /*toYear*/,
    -
    813  3 /*inMonth*/,
    -
    814  7 /*onDayOfWeek*/,
    -
    815  0 /*onDayOfMonth*/,
    -
    816  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    817  480 /*atTimeCode (7200/15)*/,
    -
    818  0 /*deltaMinutes*/,
    -
    819  25 /*letterIndex ("S")*/,
    -
    820  },
    -
    821  // Rule AT 2000 only - Aug lastSun 2:00s 1:00 D
    -
    822  {
    -
    823  2000 /*fromYear*/,
    -
    824  2000 /*toYear*/,
    -
    825  8 /*inMonth*/,
    -
    826  7 /*onDayOfWeek*/,
    -
    827  0 /*onDayOfMonth*/,
    -
    828  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    829  480 /*atTimeCode (7200/15)*/,
    -
    830  60 /*deltaMinutes*/,
    -
    831  13 /*letterIndex ("D")*/,
    -
    832  },
    -
    833  // Rule AT 2001 max - Oct Sun>=1 2:00s 1:00 D
    -
    834  {
    -
    835  2001 /*fromYear*/,
    -
    836  32766 /*toYear*/,
    -
    837  10 /*inMonth*/,
    -
    838  7 /*onDayOfWeek*/,
    -
    839  1 /*onDayOfMonth*/,
    -
    840  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    841  480 /*atTimeCode (7200/15)*/,
    -
    842  60 /*deltaMinutes*/,
    -
    843  13 /*letterIndex ("D")*/,
    -
    844  },
    -
    845  // Rule AT 2006 only - Apr Sun>=1 2:00s 0 S
    -
    846  {
    -
    847  2006 /*fromYear*/,
    -
    848  2006 /*toYear*/,
    -
    849  4 /*inMonth*/,
    -
    850  7 /*onDayOfWeek*/,
    -
    851  1 /*onDayOfMonth*/,
    -
    852  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    853  480 /*atTimeCode (7200/15)*/,
    -
    854  0 /*deltaMinutes*/,
    -
    855  25 /*letterIndex ("S")*/,
    -
    856  },
    -
    857  // Rule AT 2007 only - Mar lastSun 2:00s 0 S
    -
    858  {
    -
    859  2007 /*fromYear*/,
    -
    860  2007 /*toYear*/,
    -
    861  3 /*inMonth*/,
    -
    862  7 /*onDayOfWeek*/,
    -
    863  0 /*onDayOfMonth*/,
    -
    864  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    865  480 /*atTimeCode (7200/15)*/,
    -
    866  0 /*deltaMinutes*/,
    -
    867  25 /*letterIndex ("S")*/,
    -
    868  },
    -
    869  // Rule AT 2008 max - Apr Sun>=1 2:00s 0 S
    -
    870  {
    -
    871  2008 /*fromYear*/,
    -
    872  32766 /*toYear*/,
    -
    873  4 /*inMonth*/,
    -
    874  7 /*onDayOfWeek*/,
    -
    875  1 /*onDayOfMonth*/,
    -
    876  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    877  480 /*atTimeCode (7200/15)*/,
    -
    878  0 /*deltaMinutes*/,
    -
    879  25 /*letterIndex ("S")*/,
    -
    880  },
    -
    881 
    -
    882 };
    -
    883 
    -
    884 const complete::Info::ZonePolicy kZonePolicyAT ACE_TIME_PROGMEM = {
    -
    885  kZoneRulesAT /*rules*/,
    -
    886  24 /*numRules*/,
    -
    887 };
    -
    888 
    -
    889 //---------------------------------------------------------------------------
    -
    890 // Policy name: AV
    -
    891 // Rules: 15
    -
    892 //---------------------------------------------------------------------------
    -
    893 
    -
    894 static const complete::Info::ZoneRule kZoneRulesAV[] ACE_TIME_PROGMEM = {
    -
    895  // Anchor: Rule AV 1972 only - Feb lastSun 2:00s 0 S
    -
    896  {
    -
    897  -32767 /*fromYear*/,
    -
    898  -32767 /*toYear*/,
    -
    899  1 /*inMonth*/,
    -
    900  0 /*onDayOfWeek*/,
    -
    901  1 /*onDayOfMonth*/,
    -
    902  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    903  0 /*atTimeCode (0/15)*/,
    -
    904  0 /*deltaMinutes*/,
    -
    905  25 /*letterIndex ("S")*/,
    -
    906  },
    -
    907  // Rule AV 1971 1985 - Oct lastSun 2:00s 1:00 D
    -
    908  {
    -
    909  1971 /*fromYear*/,
    -
    910  1985 /*toYear*/,
    -
    911  10 /*inMonth*/,
    -
    912  7 /*onDayOfWeek*/,
    -
    913  0 /*onDayOfMonth*/,
    -
    914  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    915  480 /*atTimeCode (7200/15)*/,
    -
    916  60 /*deltaMinutes*/,
    -
    917  13 /*letterIndex ("D")*/,
    -
    918  },
    -
    919  // Rule AV 1972 only - Feb lastSun 2:00s 0 S
    -
    920  {
    -
    921  1972 /*fromYear*/,
    -
    922  1972 /*toYear*/,
    -
    923  2 /*inMonth*/,
    -
    924  7 /*onDayOfWeek*/,
    -
    925  0 /*onDayOfMonth*/,
    -
    926  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    927  480 /*atTimeCode (7200/15)*/,
    -
    928  0 /*deltaMinutes*/,
    -
    929  25 /*letterIndex ("S")*/,
    -
    930  },
    -
    931  // Rule AV 1973 1985 - Mar Sun>=1 2:00s 0 S
    -
    932  {
    -
    933  1973 /*fromYear*/,
    -
    934  1985 /*toYear*/,
    -
    935  3 /*inMonth*/,
    -
    936  7 /*onDayOfWeek*/,
    -
    937  1 /*onDayOfMonth*/,
    -
    938  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    939  480 /*atTimeCode (7200/15)*/,
    -
    940  0 /*deltaMinutes*/,
    -
    941  25 /*letterIndex ("S")*/,
    -
    942  },
    -
    943  // Rule AV 1986 1990 - Mar Sun>=15 2:00s 0 S
    -
    944  {
    -
    945  1986 /*fromYear*/,
    -
    946  1990 /*toYear*/,
    -
    947  3 /*inMonth*/,
    -
    948  7 /*onDayOfWeek*/,
    -
    949  15 /*onDayOfMonth*/,
    -
    950  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    951  480 /*atTimeCode (7200/15)*/,
    -
    952  0 /*deltaMinutes*/,
    -
    953  25 /*letterIndex ("S")*/,
    -
    954  },
    -
    955  // Rule AV 1986 1987 - Oct Sun>=15 2:00s 1:00 D
    -
    956  {
    -
    957  1986 /*fromYear*/,
    -
    958  1987 /*toYear*/,
    -
    959  10 /*inMonth*/,
    -
    960  7 /*onDayOfWeek*/,
    -
    961  15 /*onDayOfMonth*/,
    -
    962  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    963  480 /*atTimeCode (7200/15)*/,
    -
    964  60 /*deltaMinutes*/,
    -
    965  13 /*letterIndex ("D")*/,
    -
    966  },
    -
    967  // Rule AV 1988 1999 - Oct lastSun 2:00s 1:00 D
    -
    968  {
    -
    969  1988 /*fromYear*/,
    -
    970  1999 /*toYear*/,
    -
    971  10 /*inMonth*/,
    -
    972  7 /*onDayOfWeek*/,
    -
    973  0 /*onDayOfMonth*/,
    -
    974  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    975  480 /*atTimeCode (7200/15)*/,
    -
    976  60 /*deltaMinutes*/,
    -
    977  13 /*letterIndex ("D")*/,
    -
    978  },
    -
    979  // Rule AV 1991 1994 - Mar Sun>=1 2:00s 0 S
    -
    980  {
    -
    981  1991 /*fromYear*/,
    -
    982  1994 /*toYear*/,
    -
    983  3 /*inMonth*/,
    -
    984  7 /*onDayOfWeek*/,
    -
    985  1 /*onDayOfMonth*/,
    -
    986  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    987  480 /*atTimeCode (7200/15)*/,
    -
    988  0 /*deltaMinutes*/,
    -
    989  25 /*letterIndex ("S")*/,
    -
    990  },
    -
    991  // Rule AV 1995 2005 - Mar lastSun 2:00s 0 S
    -
    992  {
    -
    993  1995 /*fromYear*/,
    -
    994  2005 /*toYear*/,
    -
    995  3 /*inMonth*/,
    -
    996  7 /*onDayOfWeek*/,
    -
    997  0 /*onDayOfMonth*/,
    -
    998  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    999  480 /*atTimeCode (7200/15)*/,
    -
    1000  0 /*deltaMinutes*/,
    -
    1001  25 /*letterIndex ("S")*/,
    -
    1002  },
    -
    1003  // Rule AV 2000 only - Aug lastSun 2:00s 1:00 D
    -
    1004  {
    -
    1005  2000 /*fromYear*/,
    -
    1006  2000 /*toYear*/,
    -
    1007  8 /*inMonth*/,
    -
    1008  7 /*onDayOfWeek*/,
    -
    1009  0 /*onDayOfMonth*/,
    -
    1010  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1011  480 /*atTimeCode (7200/15)*/,
    -
    1012  60 /*deltaMinutes*/,
    -
    1013  13 /*letterIndex ("D")*/,
    -
    1014  },
    -
    1015  // Rule AV 2001 2007 - Oct lastSun 2:00s 1:00 D
    -
    1016  {
    -
    1017  2001 /*fromYear*/,
    -
    1018  2007 /*toYear*/,
    -
    1019  10 /*inMonth*/,
    -
    1020  7 /*onDayOfWeek*/,
    -
    1021  0 /*onDayOfMonth*/,
    -
    1022  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1023  480 /*atTimeCode (7200/15)*/,
    -
    1024  60 /*deltaMinutes*/,
    -
    1025  13 /*letterIndex ("D")*/,
    -
    1026  },
    -
    1027  // Rule AV 2006 only - Apr Sun>=1 2:00s 0 S
    -
    1028  {
    -
    1029  2006 /*fromYear*/,
    -
    1030  2006 /*toYear*/,
    -
    1031  4 /*inMonth*/,
    -
    1032  7 /*onDayOfWeek*/,
    -
    1033  1 /*onDayOfMonth*/,
    -
    1034  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1035  480 /*atTimeCode (7200/15)*/,
    -
    1036  0 /*deltaMinutes*/,
    -
    1037  25 /*letterIndex ("S")*/,
    -
    1038  },
    -
    1039  // Rule AV 2007 only - Mar lastSun 2:00s 0 S
    -
    1040  {
    -
    1041  2007 /*fromYear*/,
    -
    1042  2007 /*toYear*/,
    -
    1043  3 /*inMonth*/,
    -
    1044  7 /*onDayOfWeek*/,
    -
    1045  0 /*onDayOfMonth*/,
    -
    1046  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1047  480 /*atTimeCode (7200/15)*/,
    -
    1048  0 /*deltaMinutes*/,
    -
    1049  25 /*letterIndex ("S")*/,
    -
    1050  },
    -
    1051  // Rule AV 2008 max - Apr Sun>=1 2:00s 0 S
    -
    1052  {
    -
    1053  2008 /*fromYear*/,
    -
    1054  32766 /*toYear*/,
    -
    1055  4 /*inMonth*/,
    -
    1056  7 /*onDayOfWeek*/,
    -
    1057  1 /*onDayOfMonth*/,
    -
    1058  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1059  480 /*atTimeCode (7200/15)*/,
    -
    1060  0 /*deltaMinutes*/,
    -
    1061  25 /*letterIndex ("S")*/,
    -
    1062  },
    -
    1063  // Rule AV 2008 max - Oct Sun>=1 2:00s 1:00 D
    -
    1064  {
    -
    1065  2008 /*fromYear*/,
    -
    1066  32766 /*toYear*/,
    -
    1067  10 /*inMonth*/,
    -
    1068  7 /*onDayOfWeek*/,
    -
    1069  1 /*onDayOfMonth*/,
    -
    1070  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1071  480 /*atTimeCode (7200/15)*/,
    -
    1072  60 /*deltaMinutes*/,
    -
    1073  13 /*letterIndex ("D")*/,
    -
    1074  },
    -
    1075 
    -
    1076 };
    -
    1077 
    -
    1078 const complete::Info::ZonePolicy kZonePolicyAV ACE_TIME_PROGMEM = {
    -
    1079  kZoneRulesAV /*rules*/,
    -
    1080  15 /*numRules*/,
    -
    1081 };
    -
    1082 
    -
    1083 //---------------------------------------------------------------------------
    -
    1084 // Policy name: AW
    -
    1085 // Rules: 10
    -
    1086 //---------------------------------------------------------------------------
    -
    1087 
    -
    1088 static const complete::Info::ZoneRule kZoneRulesAW[] ACE_TIME_PROGMEM = {
    -
    1089  // Anchor: Rule AW 1975 only - Mar Sun>=1 2:00s 0 S
    -
    1090  {
    -
    1091  -32767 /*fromYear*/,
    -
    1092  -32767 /*toYear*/,
    -
    1093  1 /*inMonth*/,
    -
    1094  0 /*onDayOfWeek*/,
    -
    1095  1 /*onDayOfMonth*/,
    -
    1096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1097  0 /*atTimeCode (0/15)*/,
    -
    1098  0 /*deltaMinutes*/,
    -
    1099  25 /*letterIndex ("S")*/,
    -
    1100  },
    -
    1101  // Rule AW 1974 only - Oct lastSun 2:00s 1:00 D
    -
    1102  {
    -
    1103  1974 /*fromYear*/,
    -
    1104  1974 /*toYear*/,
    -
    1105  10 /*inMonth*/,
    -
    1106  7 /*onDayOfWeek*/,
    -
    1107  0 /*onDayOfMonth*/,
    -
    1108  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1109  480 /*atTimeCode (7200/15)*/,
    -
    1110  60 /*deltaMinutes*/,
    -
    1111  13 /*letterIndex ("D")*/,
    -
    1112  },
    -
    1113  // Rule AW 1975 only - Mar Sun>=1 2:00s 0 S
    -
    1114  {
    -
    1115  1975 /*fromYear*/,
    -
    1116  1975 /*toYear*/,
    -
    1117  3 /*inMonth*/,
    -
    1118  7 /*onDayOfWeek*/,
    -
    1119  1 /*onDayOfMonth*/,
    -
    1120  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1121  480 /*atTimeCode (7200/15)*/,
    -
    1122  0 /*deltaMinutes*/,
    -
    1123  25 /*letterIndex ("S")*/,
    -
    1124  },
    -
    1125  // Rule AW 1983 only - Oct lastSun 2:00s 1:00 D
    -
    1126  {
    -
    1127  1983 /*fromYear*/,
    -
    1128  1983 /*toYear*/,
    -
    1129  10 /*inMonth*/,
    -
    1130  7 /*onDayOfWeek*/,
    -
    1131  0 /*onDayOfMonth*/,
    -
    1132  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1133  480 /*atTimeCode (7200/15)*/,
    -
    1134  60 /*deltaMinutes*/,
    -
    1135  13 /*letterIndex ("D")*/,
    -
    1136  },
    -
    1137  // Rule AW 1984 only - Mar Sun>=1 2:00s 0 S
    -
    1138  {
    -
    1139  1984 /*fromYear*/,
    -
    1140  1984 /*toYear*/,
    -
    1141  3 /*inMonth*/,
    -
    1142  7 /*onDayOfWeek*/,
    -
    1143  1 /*onDayOfMonth*/,
    -
    1144  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1145  480 /*atTimeCode (7200/15)*/,
    -
    1146  0 /*deltaMinutes*/,
    -
    1147  25 /*letterIndex ("S")*/,
    -
    1148  },
    -
    1149  // Rule AW 1991 only - Nov 17 2:00s 1:00 D
    -
    1150  {
    -
    1151  1991 /*fromYear*/,
    -
    1152  1991 /*toYear*/,
    -
    1153  11 /*inMonth*/,
    -
    1154  0 /*onDayOfWeek*/,
    -
    1155  17 /*onDayOfMonth*/,
    -
    1156  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1157  480 /*atTimeCode (7200/15)*/,
    -
    1158  60 /*deltaMinutes*/,
    -
    1159  13 /*letterIndex ("D")*/,
    -
    1160  },
    -
    1161  // Rule AW 1992 only - Mar Sun>=1 2:00s 0 S
    -
    1162  {
    -
    1163  1992 /*fromYear*/,
    -
    1164  1992 /*toYear*/,
    -
    1165  3 /*inMonth*/,
    -
    1166  7 /*onDayOfWeek*/,
    -
    1167  1 /*onDayOfMonth*/,
    -
    1168  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1169  480 /*atTimeCode (7200/15)*/,
    -
    1170  0 /*deltaMinutes*/,
    -
    1171  25 /*letterIndex ("S")*/,
    -
    1172  },
    -
    1173  // Rule AW 2006 only - Dec 3 2:00s 1:00 D
    -
    1174  {
    -
    1175  2006 /*fromYear*/,
    -
    1176  2006 /*toYear*/,
    -
    1177  12 /*inMonth*/,
    -
    1178  0 /*onDayOfWeek*/,
    -
    1179  3 /*onDayOfMonth*/,
    -
    1180  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1181  480 /*atTimeCode (7200/15)*/,
    -
    1182  60 /*deltaMinutes*/,
    -
    1183  13 /*letterIndex ("D")*/,
    -
    1184  },
    -
    1185  // Rule AW 2007 2009 - Mar lastSun 2:00s 0 S
    -
    1186  {
    -
    1187  2007 /*fromYear*/,
    -
    1188  2009 /*toYear*/,
    -
    1189  3 /*inMonth*/,
    -
    1190  7 /*onDayOfWeek*/,
    -
    1191  0 /*onDayOfMonth*/,
    -
    1192  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1193  480 /*atTimeCode (7200/15)*/,
    -
    1194  0 /*deltaMinutes*/,
    -
    1195  25 /*letterIndex ("S")*/,
    -
    1196  },
    -
    1197  // Rule AW 2007 2008 - Oct lastSun 2:00s 1:00 D
    -
    1198  {
    -
    1199  2007 /*fromYear*/,
    -
    1200  2008 /*toYear*/,
    -
    1201  10 /*inMonth*/,
    -
    1202  7 /*onDayOfWeek*/,
    -
    1203  0 /*onDayOfMonth*/,
    -
    1204  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1205  480 /*atTimeCode (7200/15)*/,
    -
    1206  60 /*deltaMinutes*/,
    -
    1207  13 /*letterIndex ("D")*/,
    -
    1208  },
    -
    1209 
    -
    1210 };
    -
    1211 
    -
    1212 const complete::Info::ZonePolicy kZonePolicyAW ACE_TIME_PROGMEM = {
    -
    1213  kZoneRulesAW /*rules*/,
    -
    1214  10 /*numRules*/,
    -
    1215 };
    -
    1216 
    -
    1217 //---------------------------------------------------------------------------
    -
    1218 // Policy name: Albania
    -
    1219 // Rules: 26
    -
    1220 //---------------------------------------------------------------------------
    -
    1221 
    -
    1222 static const complete::Info::ZoneRule kZoneRulesAlbania[] ACE_TIME_PROGMEM = {
    -
    1223  // Anchor: Rule Albania 1942 only - Nov 2 3:00 0 -
    -
    1224  {
    -
    1225  -32767 /*fromYear*/,
    -
    1226  -32767 /*toYear*/,
    -
    1227  1 /*inMonth*/,
    -
    1228  0 /*onDayOfWeek*/,
    -
    1229  1 /*onDayOfMonth*/,
    -
    1230  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1231  0 /*atTimeCode (0/15)*/,
    -
    1232  0 /*deltaMinutes*/,
    -
    1233  0 /*letterIndex ("")*/,
    -
    1234  },
    -
    1235  // Rule Albania 1940 only - Jun 16 0:00 1:00 S
    -
    1236  {
    -
    1237  1940 /*fromYear*/,
    -
    1238  1940 /*toYear*/,
    -
    1239  6 /*inMonth*/,
    -
    1240  0 /*onDayOfWeek*/,
    -
    1241  16 /*onDayOfMonth*/,
    -
    1242  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1243  0 /*atTimeCode (0/15)*/,
    -
    1244  60 /*deltaMinutes*/,
    -
    1245  25 /*letterIndex ("S")*/,
    -
    1246  },
    -
    1247  // Rule Albania 1942 only - Nov 2 3:00 0 -
    -
    1248  {
    -
    1249  1942 /*fromYear*/,
    -
    1250  1942 /*toYear*/,
    -
    1251  11 /*inMonth*/,
    -
    1252  0 /*onDayOfWeek*/,
    -
    1253  2 /*onDayOfMonth*/,
    -
    1254  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1255  720 /*atTimeCode (10800/15)*/,
    -
    1256  0 /*deltaMinutes*/,
    -
    1257  0 /*letterIndex ("")*/,
    -
    1258  },
    -
    1259  // Rule Albania 1943 only - Mar 29 2:00 1:00 S
    -
    1260  {
    -
    1261  1943 /*fromYear*/,
    -
    1262  1943 /*toYear*/,
    -
    1263  3 /*inMonth*/,
    -
    1264  0 /*onDayOfWeek*/,
    -
    1265  29 /*onDayOfMonth*/,
    -
    1266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1267  480 /*atTimeCode (7200/15)*/,
    -
    1268  60 /*deltaMinutes*/,
    -
    1269  25 /*letterIndex ("S")*/,
    -
    1270  },
    -
    1271  // Rule Albania 1943 only - Apr 10 3:00 0 -
    -
    1272  {
    -
    1273  1943 /*fromYear*/,
    -
    1274  1943 /*toYear*/,
    -
    1275  4 /*inMonth*/,
    -
    1276  0 /*onDayOfWeek*/,
    -
    1277  10 /*onDayOfMonth*/,
    -
    1278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1279  720 /*atTimeCode (10800/15)*/,
    -
    1280  0 /*deltaMinutes*/,
    -
    1281  0 /*letterIndex ("")*/,
    -
    1282  },
    -
    1283  // Rule Albania 1974 only - May 4 0:00 1:00 S
    -
    1284  {
    -
    1285  1974 /*fromYear*/,
    -
    1286  1974 /*toYear*/,
    -
    1287  5 /*inMonth*/,
    -
    1288  0 /*onDayOfWeek*/,
    -
    1289  4 /*onDayOfMonth*/,
    -
    1290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1291  0 /*atTimeCode (0/15)*/,
    -
    1292  60 /*deltaMinutes*/,
    -
    1293  25 /*letterIndex ("S")*/,
    -
    1294  },
    -
    1295  // Rule Albania 1974 only - Oct 2 0:00 0 -
    -
    1296  {
    -
    1297  1974 /*fromYear*/,
    -
    1298  1974 /*toYear*/,
    -
    1299  10 /*inMonth*/,
    -
    1300  0 /*onDayOfWeek*/,
    -
    1301  2 /*onDayOfMonth*/,
    -
    1302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1303  0 /*atTimeCode (0/15)*/,
    -
    1304  0 /*deltaMinutes*/,
    -
    1305  0 /*letterIndex ("")*/,
    -
    1306  },
    -
    1307  // Rule Albania 1975 only - May 1 0:00 1:00 S
    -
    1308  {
    -
    1309  1975 /*fromYear*/,
    -
    1310  1975 /*toYear*/,
    -
    1311  5 /*inMonth*/,
    -
    1312  0 /*onDayOfWeek*/,
    -
    1313  1 /*onDayOfMonth*/,
    -
    1314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1315  0 /*atTimeCode (0/15)*/,
    -
    1316  60 /*deltaMinutes*/,
    -
    1317  25 /*letterIndex ("S")*/,
    -
    1318  },
    -
    1319  // Rule Albania 1975 only - Oct 2 0:00 0 -
    -
    1320  {
    -
    1321  1975 /*fromYear*/,
    -
    1322  1975 /*toYear*/,
    -
    1323  10 /*inMonth*/,
    -
    1324  0 /*onDayOfWeek*/,
    -
    1325  2 /*onDayOfMonth*/,
    -
    1326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1327  0 /*atTimeCode (0/15)*/,
    -
    1328  0 /*deltaMinutes*/,
    -
    1329  0 /*letterIndex ("")*/,
    -
    1330  },
    -
    1331  // Rule Albania 1976 only - May 2 0:00 1:00 S
    -
    1332  {
    -
    1333  1976 /*fromYear*/,
    -
    1334  1976 /*toYear*/,
    -
    1335  5 /*inMonth*/,
    -
    1336  0 /*onDayOfWeek*/,
    -
    1337  2 /*onDayOfMonth*/,
    -
    1338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1339  0 /*atTimeCode (0/15)*/,
    -
    1340  60 /*deltaMinutes*/,
    -
    1341  25 /*letterIndex ("S")*/,
    -
    1342  },
    -
    1343  // Rule Albania 1976 only - Oct 3 0:00 0 -
    -
    1344  {
    -
    1345  1976 /*fromYear*/,
    -
    1346  1976 /*toYear*/,
    -
    1347  10 /*inMonth*/,
    -
    1348  0 /*onDayOfWeek*/,
    -
    1349  3 /*onDayOfMonth*/,
    -
    1350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1351  0 /*atTimeCode (0/15)*/,
    -
    1352  0 /*deltaMinutes*/,
    -
    1353  0 /*letterIndex ("")*/,
    -
    1354  },
    -
    1355  // Rule Albania 1977 only - May 8 0:00 1:00 S
    -
    1356  {
    -
    1357  1977 /*fromYear*/,
    -
    1358  1977 /*toYear*/,
    -
    1359  5 /*inMonth*/,
    -
    1360  0 /*onDayOfWeek*/,
    -
    1361  8 /*onDayOfMonth*/,
    -
    1362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1363  0 /*atTimeCode (0/15)*/,
    -
    1364  60 /*deltaMinutes*/,
    -
    1365  25 /*letterIndex ("S")*/,
    -
    1366  },
    -
    1367  // Rule Albania 1977 only - Oct 2 0:00 0 -
    -
    1368  {
    -
    1369  1977 /*fromYear*/,
    -
    1370  1977 /*toYear*/,
    -
    1371  10 /*inMonth*/,
    -
    1372  0 /*onDayOfWeek*/,
    -
    1373  2 /*onDayOfMonth*/,
    -
    1374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1375  0 /*atTimeCode (0/15)*/,
    -
    1376  0 /*deltaMinutes*/,
    -
    1377  0 /*letterIndex ("")*/,
    -
    1378  },
    -
    1379  // Rule Albania 1978 only - May 6 0:00 1:00 S
    -
    1380  {
    -
    1381  1978 /*fromYear*/,
    -
    1382  1978 /*toYear*/,
    -
    1383  5 /*inMonth*/,
    -
    1384  0 /*onDayOfWeek*/,
    -
    1385  6 /*onDayOfMonth*/,
    -
    1386  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1387  0 /*atTimeCode (0/15)*/,
    -
    1388  60 /*deltaMinutes*/,
    -
    1389  25 /*letterIndex ("S")*/,
    -
    1390  },
    -
    1391  // Rule Albania 1978 only - Oct 1 0:00 0 -
    -
    1392  {
    -
    1393  1978 /*fromYear*/,
    -
    1394  1978 /*toYear*/,
    -
    1395  10 /*inMonth*/,
    -
    1396  0 /*onDayOfWeek*/,
    -
    1397  1 /*onDayOfMonth*/,
    -
    1398  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1399  0 /*atTimeCode (0/15)*/,
    -
    1400  0 /*deltaMinutes*/,
    -
    1401  0 /*letterIndex ("")*/,
    -
    1402  },
    -
    1403  // Rule Albania 1979 only - May 5 0:00 1:00 S
    -
    1404  {
    -
    1405  1979 /*fromYear*/,
    -
    1406  1979 /*toYear*/,
    -
    1407  5 /*inMonth*/,
    -
    1408  0 /*onDayOfWeek*/,
    -
    1409  5 /*onDayOfMonth*/,
    -
    1410  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1411  0 /*atTimeCode (0/15)*/,
    -
    1412  60 /*deltaMinutes*/,
    -
    1413  25 /*letterIndex ("S")*/,
    -
    1414  },
    -
    1415  // Rule Albania 1979 only - Sep 30 0:00 0 -
    -
    1416  {
    -
    1417  1979 /*fromYear*/,
    -
    1418  1979 /*toYear*/,
    -
    1419  9 /*inMonth*/,
    -
    1420  0 /*onDayOfWeek*/,
    -
    1421  30 /*onDayOfMonth*/,
    -
    1422  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1423  0 /*atTimeCode (0/15)*/,
    -
    1424  0 /*deltaMinutes*/,
    -
    1425  0 /*letterIndex ("")*/,
    -
    1426  },
    -
    1427  // Rule Albania 1980 only - May 3 0:00 1:00 S
    -
    1428  {
    -
    1429  1980 /*fromYear*/,
    -
    1430  1980 /*toYear*/,
    -
    1431  5 /*inMonth*/,
    -
    1432  0 /*onDayOfWeek*/,
    -
    1433  3 /*onDayOfMonth*/,
    -
    1434  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1435  0 /*atTimeCode (0/15)*/,
    -
    1436  60 /*deltaMinutes*/,
    -
    1437  25 /*letterIndex ("S")*/,
    -
    1438  },
    -
    1439  // Rule Albania 1980 only - Oct 4 0:00 0 -
    -
    1440  {
    -
    1441  1980 /*fromYear*/,
    -
    1442  1980 /*toYear*/,
    -
    1443  10 /*inMonth*/,
    -
    1444  0 /*onDayOfWeek*/,
    -
    1445  4 /*onDayOfMonth*/,
    -
    1446  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1447  0 /*atTimeCode (0/15)*/,
    -
    1448  0 /*deltaMinutes*/,
    -
    1449  0 /*letterIndex ("")*/,
    -
    1450  },
    -
    1451  // Rule Albania 1981 only - Apr 26 0:00 1:00 S
    -
    1452  {
    -
    1453  1981 /*fromYear*/,
    -
    1454  1981 /*toYear*/,
    -
    1455  4 /*inMonth*/,
    -
    1456  0 /*onDayOfWeek*/,
    -
    1457  26 /*onDayOfMonth*/,
    -
    1458  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1459  0 /*atTimeCode (0/15)*/,
    -
    1460  60 /*deltaMinutes*/,
    -
    1461  25 /*letterIndex ("S")*/,
    -
    1462  },
    -
    1463  // Rule Albania 1981 only - Sep 27 0:00 0 -
    -
    1464  {
    -
    1465  1981 /*fromYear*/,
    -
    1466  1981 /*toYear*/,
    -
    1467  9 /*inMonth*/,
    -
    1468  0 /*onDayOfWeek*/,
    -
    1469  27 /*onDayOfMonth*/,
    -
    1470  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1471  0 /*atTimeCode (0/15)*/,
    -
    1472  0 /*deltaMinutes*/,
    -
    1473  0 /*letterIndex ("")*/,
    -
    1474  },
    -
    1475  // Rule Albania 1982 only - May 2 0:00 1:00 S
    -
    1476  {
    -
    1477  1982 /*fromYear*/,
    -
    1478  1982 /*toYear*/,
    -
    1479  5 /*inMonth*/,
    -
    1480  0 /*onDayOfWeek*/,
    -
    1481  2 /*onDayOfMonth*/,
    -
    1482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1483  0 /*atTimeCode (0/15)*/,
    -
    1484  60 /*deltaMinutes*/,
    -
    1485  25 /*letterIndex ("S")*/,
    -
    1486  },
    -
    1487  // Rule Albania 1982 only - Oct 3 0:00 0 -
    -
    1488  {
    -
    1489  1982 /*fromYear*/,
    -
    1490  1982 /*toYear*/,
    -
    1491  10 /*inMonth*/,
    -
    1492  0 /*onDayOfWeek*/,
    -
    1493  3 /*onDayOfMonth*/,
    -
    1494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1495  0 /*atTimeCode (0/15)*/,
    -
    1496  0 /*deltaMinutes*/,
    -
    1497  0 /*letterIndex ("")*/,
    -
    1498  },
    -
    1499  // Rule Albania 1983 only - Apr 18 0:00 1:00 S
    -
    1500  {
    -
    1501  1983 /*fromYear*/,
    -
    1502  1983 /*toYear*/,
    -
    1503  4 /*inMonth*/,
    -
    1504  0 /*onDayOfWeek*/,
    -
    1505  18 /*onDayOfMonth*/,
    -
    1506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1507  0 /*atTimeCode (0/15)*/,
    -
    1508  60 /*deltaMinutes*/,
    -
    1509  25 /*letterIndex ("S")*/,
    -
    1510  },
    -
    1511  // Rule Albania 1983 only - Oct 1 0:00 0 -
    -
    1512  {
    -
    1513  1983 /*fromYear*/,
    -
    1514  1983 /*toYear*/,
    -
    1515  10 /*inMonth*/,
    -
    1516  0 /*onDayOfWeek*/,
    -
    1517  1 /*onDayOfMonth*/,
    -
    1518  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1519  0 /*atTimeCode (0/15)*/,
    -
    1520  0 /*deltaMinutes*/,
    -
    1521  0 /*letterIndex ("")*/,
    -
    1522  },
    -
    1523  // Rule Albania 1984 only - Apr 1 0:00 1:00 S
    -
    1524  {
    -
    1525  1984 /*fromYear*/,
    -
    1526  1984 /*toYear*/,
    -
    1527  4 /*inMonth*/,
    -
    1528  0 /*onDayOfWeek*/,
    -
    1529  1 /*onDayOfMonth*/,
    -
    1530  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1531  0 /*atTimeCode (0/15)*/,
    -
    1532  60 /*deltaMinutes*/,
    -
    1533  25 /*letterIndex ("S")*/,
    -
    1534  },
    -
    1535 
    -
    1536 };
    -
    1537 
    -
    1538 const complete::Info::ZonePolicy kZonePolicyAlbania ACE_TIME_PROGMEM = {
    -
    1539  kZoneRulesAlbania /*rules*/,
    -
    1540  26 /*numRules*/,
    -
    1541 };
    -
    1542 
    -
    1543 //---------------------------------------------------------------------------
    -
    1544 // Policy name: Algeria
    -
    1545 // Rules: 23
    -
    1546 //---------------------------------------------------------------------------
    -
    1547 
    -
    1548 static const complete::Info::ZoneRule kZoneRulesAlgeria[] ACE_TIME_PROGMEM = {
    -
    1549  // Anchor: Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 -
    -
    1550  {
    -
    1551  -32767 /*fromYear*/,
    -
    1552  -32767 /*toYear*/,
    -
    1553  1 /*inMonth*/,
    -
    1554  0 /*onDayOfWeek*/,
    -
    1555  1 /*onDayOfMonth*/,
    -
    1556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1557  0 /*atTimeCode (0/15)*/,
    -
    1558  0 /*deltaMinutes*/,
    -
    1559  0 /*letterIndex ("")*/,
    -
    1560  },
    -
    1561  // Rule Algeria 1916 only - Jun 14 23:00s 1:00 S
    -
    1562  {
    -
    1563  1916 /*fromYear*/,
    -
    1564  1916 /*toYear*/,
    -
    1565  6 /*inMonth*/,
    -
    1566  0 /*onDayOfWeek*/,
    -
    1567  14 /*onDayOfMonth*/,
    -
    1568  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1569  5520 /*atTimeCode (82800/15)*/,
    -
    1570  60 /*deltaMinutes*/,
    -
    1571  25 /*letterIndex ("S")*/,
    -
    1572  },
    -
    1573  // Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 -
    -
    1574  {
    -
    1575  1916 /*fromYear*/,
    -
    1576  1919 /*toYear*/,
    -
    1577  10 /*inMonth*/,
    -
    1578  7 /*onDayOfWeek*/,
    -
    1579  1 /*onDayOfMonth*/,
    -
    1580  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1581  5520 /*atTimeCode (82800/15)*/,
    -
    1582  0 /*deltaMinutes*/,
    -
    1583  0 /*letterIndex ("")*/,
    -
    1584  },
    -
    1585  // Rule Algeria 1917 only - Mar 24 23:00s 1:00 S
    -
    1586  {
    -
    1587  1917 /*fromYear*/,
    -
    1588  1917 /*toYear*/,
    -
    1589  3 /*inMonth*/,
    -
    1590  0 /*onDayOfWeek*/,
    -
    1591  24 /*onDayOfMonth*/,
    -
    1592  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1593  5520 /*atTimeCode (82800/15)*/,
    -
    1594  60 /*deltaMinutes*/,
    -
    1595  25 /*letterIndex ("S")*/,
    -
    1596  },
    -
    1597  // Rule Algeria 1918 only - Mar 9 23:00s 1:00 S
    -
    1598  {
    -
    1599  1918 /*fromYear*/,
    -
    1600  1918 /*toYear*/,
    -
    1601  3 /*inMonth*/,
    -
    1602  0 /*onDayOfWeek*/,
    -
    1603  9 /*onDayOfMonth*/,
    -
    1604  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1605  5520 /*atTimeCode (82800/15)*/,
    -
    1606  60 /*deltaMinutes*/,
    -
    1607  25 /*letterIndex ("S")*/,
    -
    1608  },
    -
    1609  // Rule Algeria 1919 only - Mar 1 23:00s 1:00 S
    -
    1610  {
    -
    1611  1919 /*fromYear*/,
    -
    1612  1919 /*toYear*/,
    -
    1613  3 /*inMonth*/,
    -
    1614  0 /*onDayOfWeek*/,
    -
    1615  1 /*onDayOfMonth*/,
    -
    1616  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1617  5520 /*atTimeCode (82800/15)*/,
    -
    1618  60 /*deltaMinutes*/,
    -
    1619  25 /*letterIndex ("S")*/,
    -
    1620  },
    -
    1621  // Rule Algeria 1920 only - Feb 14 23:00s 1:00 S
    -
    1622  {
    -
    1623  1920 /*fromYear*/,
    -
    1624  1920 /*toYear*/,
    -
    1625  2 /*inMonth*/,
    -
    1626  0 /*onDayOfWeek*/,
    -
    1627  14 /*onDayOfMonth*/,
    -
    1628  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1629  5520 /*atTimeCode (82800/15)*/,
    -
    1630  60 /*deltaMinutes*/,
    -
    1631  25 /*letterIndex ("S")*/,
    -
    1632  },
    -
    1633  // Rule Algeria 1920 only - Oct 23 23:00s 0 -
    -
    1634  {
    -
    1635  1920 /*fromYear*/,
    -
    1636  1920 /*toYear*/,
    -
    1637  10 /*inMonth*/,
    -
    1638  0 /*onDayOfWeek*/,
    -
    1639  23 /*onDayOfMonth*/,
    -
    1640  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1641  5520 /*atTimeCode (82800/15)*/,
    -
    1642  0 /*deltaMinutes*/,
    -
    1643  0 /*letterIndex ("")*/,
    -
    1644  },
    -
    1645  // Rule Algeria 1921 only - Mar 14 23:00s 1:00 S
    -
    1646  {
    -
    1647  1921 /*fromYear*/,
    -
    1648  1921 /*toYear*/,
    -
    1649  3 /*inMonth*/,
    -
    1650  0 /*onDayOfWeek*/,
    -
    1651  14 /*onDayOfMonth*/,
    -
    1652  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1653  5520 /*atTimeCode (82800/15)*/,
    -
    1654  60 /*deltaMinutes*/,
    -
    1655  25 /*letterIndex ("S")*/,
    -
    1656  },
    -
    1657  // Rule Algeria 1921 only - Jun 21 23:00s 0 -
    -
    1658  {
    -
    1659  1921 /*fromYear*/,
    -
    1660  1921 /*toYear*/,
    -
    1661  6 /*inMonth*/,
    -
    1662  0 /*onDayOfWeek*/,
    -
    1663  21 /*onDayOfMonth*/,
    -
    1664  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1665  5520 /*atTimeCode (82800/15)*/,
    -
    1666  0 /*deltaMinutes*/,
    -
    1667  0 /*letterIndex ("")*/,
    -
    1668  },
    -
    1669  // Rule Algeria 1939 only - Sep 11 23:00s 1:00 S
    -
    1670  {
    -
    1671  1939 /*fromYear*/,
    -
    1672  1939 /*toYear*/,
    -
    1673  9 /*inMonth*/,
    -
    1674  0 /*onDayOfWeek*/,
    -
    1675  11 /*onDayOfMonth*/,
    -
    1676  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1677  5520 /*atTimeCode (82800/15)*/,
    -
    1678  60 /*deltaMinutes*/,
    -
    1679  25 /*letterIndex ("S")*/,
    -
    1680  },
    -
    1681  // Rule Algeria 1939 only - Nov 19 1:00 0 -
    -
    1682  {
    -
    1683  1939 /*fromYear*/,
    -
    1684  1939 /*toYear*/,
    -
    1685  11 /*inMonth*/,
    -
    1686  0 /*onDayOfWeek*/,
    -
    1687  19 /*onDayOfMonth*/,
    -
    1688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1689  240 /*atTimeCode (3600/15)*/,
    -
    1690  0 /*deltaMinutes*/,
    -
    1691  0 /*letterIndex ("")*/,
    -
    1692  },
    -
    1693  // Rule Algeria 1944 1945 - Apr Mon>=1 2:00 1:00 S
    -
    1694  {
    -
    1695  1944 /*fromYear*/,
    -
    1696  1945 /*toYear*/,
    -
    1697  4 /*inMonth*/,
    -
    1698  1 /*onDayOfWeek*/,
    -
    1699  1 /*onDayOfMonth*/,
    -
    1700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1701  480 /*atTimeCode (7200/15)*/,
    -
    1702  60 /*deltaMinutes*/,
    -
    1703  25 /*letterIndex ("S")*/,
    -
    1704  },
    -
    1705  // Rule Algeria 1944 only - Oct 8 2:00 0 -
    -
    1706  {
    -
    1707  1944 /*fromYear*/,
    -
    1708  1944 /*toYear*/,
    -
    1709  10 /*inMonth*/,
    -
    1710  0 /*onDayOfWeek*/,
    -
    1711  8 /*onDayOfMonth*/,
    -
    1712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1713  480 /*atTimeCode (7200/15)*/,
    -
    1714  0 /*deltaMinutes*/,
    -
    1715  0 /*letterIndex ("")*/,
    -
    1716  },
    -
    1717  // Rule Algeria 1945 only - Sep 16 1:00 0 -
    -
    1718  {
    -
    1719  1945 /*fromYear*/,
    -
    1720  1945 /*toYear*/,
    -
    1721  9 /*inMonth*/,
    -
    1722  0 /*onDayOfWeek*/,
    -
    1723  16 /*onDayOfMonth*/,
    -
    1724  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1725  240 /*atTimeCode (3600/15)*/,
    -
    1726  0 /*deltaMinutes*/,
    -
    1727  0 /*letterIndex ("")*/,
    -
    1728  },
    -
    1729  // Rule Algeria 1971 only - Apr 25 23:00s 1:00 S
    -
    1730  {
    -
    1731  1971 /*fromYear*/,
    -
    1732  1971 /*toYear*/,
    -
    1733  4 /*inMonth*/,
    -
    1734  0 /*onDayOfWeek*/,
    -
    1735  25 /*onDayOfMonth*/,
    -
    1736  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1737  5520 /*atTimeCode (82800/15)*/,
    -
    1738  60 /*deltaMinutes*/,
    -
    1739  25 /*letterIndex ("S")*/,
    -
    1740  },
    -
    1741  // Rule Algeria 1971 only - Sep 26 23:00s 0 -
    -
    1742  {
    -
    1743  1971 /*fromYear*/,
    -
    1744  1971 /*toYear*/,
    -
    1745  9 /*inMonth*/,
    -
    1746  0 /*onDayOfWeek*/,
    -
    1747  26 /*onDayOfMonth*/,
    -
    1748  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    1749  5520 /*atTimeCode (82800/15)*/,
    -
    1750  0 /*deltaMinutes*/,
    -
    1751  0 /*letterIndex ("")*/,
    -
    1752  },
    -
    1753  // Rule Algeria 1977 only - May 6 0:00 1:00 S
    -
    1754  {
    -
    1755  1977 /*fromYear*/,
    -
    1756  1977 /*toYear*/,
    -
    1757  5 /*inMonth*/,
    -
    1758  0 /*onDayOfWeek*/,
    -
    1759  6 /*onDayOfMonth*/,
    -
    1760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1761  0 /*atTimeCode (0/15)*/,
    -
    1762  60 /*deltaMinutes*/,
    -
    1763  25 /*letterIndex ("S")*/,
    -
    1764  },
    -
    1765  // Rule Algeria 1977 only - Oct 21 0:00 0 -
    -
    1766  {
    -
    1767  1977 /*fromYear*/,
    -
    1768  1977 /*toYear*/,
    -
    1769  10 /*inMonth*/,
    -
    1770  0 /*onDayOfWeek*/,
    -
    1771  21 /*onDayOfMonth*/,
    -
    1772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1773  0 /*atTimeCode (0/15)*/,
    -
    1774  0 /*deltaMinutes*/,
    -
    1775  0 /*letterIndex ("")*/,
    -
    1776  },
    -
    1777  // Rule Algeria 1978 only - Mar 24 1:00 1:00 S
    -
    1778  {
    -
    1779  1978 /*fromYear*/,
    -
    1780  1978 /*toYear*/,
    -
    1781  3 /*inMonth*/,
    -
    1782  0 /*onDayOfWeek*/,
    -
    1783  24 /*onDayOfMonth*/,
    -
    1784  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1785  240 /*atTimeCode (3600/15)*/,
    -
    1786  60 /*deltaMinutes*/,
    -
    1787  25 /*letterIndex ("S")*/,
    -
    1788  },
    -
    1789  // Rule Algeria 1978 only - Sep 22 3:00 0 -
    -
    1790  {
    -
    1791  1978 /*fromYear*/,
    -
    1792  1978 /*toYear*/,
    -
    1793  9 /*inMonth*/,
    -
    1794  0 /*onDayOfWeek*/,
    -
    1795  22 /*onDayOfMonth*/,
    -
    1796  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1797  720 /*atTimeCode (10800/15)*/,
    -
    1798  0 /*deltaMinutes*/,
    -
    1799  0 /*letterIndex ("")*/,
    -
    1800  },
    -
    1801  // Rule Algeria 1980 only - Apr 25 0:00 1:00 S
    -
    1802  {
    -
    1803  1980 /*fromYear*/,
    -
    1804  1980 /*toYear*/,
    -
    1805  4 /*inMonth*/,
    -
    1806  0 /*onDayOfWeek*/,
    -
    1807  25 /*onDayOfMonth*/,
    -
    1808  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1809  0 /*atTimeCode (0/15)*/,
    -
    1810  60 /*deltaMinutes*/,
    -
    1811  25 /*letterIndex ("S")*/,
    -
    1812  },
    -
    1813  // Rule Algeria 1980 only - Oct 31 2:00 0 -
    -
    1814  {
    -
    1815  1980 /*fromYear*/,
    -
    1816  1980 /*toYear*/,
    -
    1817  10 /*inMonth*/,
    -
    1818  0 /*onDayOfWeek*/,
    -
    1819  31 /*onDayOfMonth*/,
    -
    1820  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1821  480 /*atTimeCode (7200/15)*/,
    -
    1822  0 /*deltaMinutes*/,
    -
    1823  0 /*letterIndex ("")*/,
    -
    1824  },
    -
    1825 
    -
    1826 };
    -
    1827 
    -
    1828 const complete::Info::ZonePolicy kZonePolicyAlgeria ACE_TIME_PROGMEM = {
    -
    1829  kZoneRulesAlgeria /*rules*/,
    -
    1830  23 /*numRules*/,
    -
    1831 };
    -
    1832 
    -
    1833 //---------------------------------------------------------------------------
    -
    1834 // Policy name: Arg
    -
    1835 // Rules: 30
    -
    1836 //---------------------------------------------------------------------------
    -
    1837 
    -
    1838 static const complete::Info::ZoneRule kZoneRulesArg[] ACE_TIME_PROGMEM = {
    -
    1839  // Anchor: Rule Arg 1931 only - Apr 1 0:00 0 -
    -
    1840  {
    -
    1841  -32767 /*fromYear*/,
    -
    1842  -32767 /*toYear*/,
    -
    1843  1 /*inMonth*/,
    -
    1844  0 /*onDayOfWeek*/,
    -
    1845  1 /*onDayOfMonth*/,
    -
    1846  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1847  0 /*atTimeCode (0/15)*/,
    -
    1848  0 /*deltaMinutes*/,
    -
    1849  0 /*letterIndex ("")*/,
    -
    1850  },
    -
    1851  // Rule Arg 1930 only - Dec 1 0:00 1:00 -
    -
    1852  {
    -
    1853  1930 /*fromYear*/,
    -
    1854  1930 /*toYear*/,
    -
    1855  12 /*inMonth*/,
    -
    1856  0 /*onDayOfWeek*/,
    -
    1857  1 /*onDayOfMonth*/,
    -
    1858  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1859  0 /*atTimeCode (0/15)*/,
    -
    1860  60 /*deltaMinutes*/,
    -
    1861  0 /*letterIndex ("")*/,
    -
    1862  },
    -
    1863  // Rule Arg 1931 only - Apr 1 0:00 0 -
    -
    1864  {
    -
    1865  1931 /*fromYear*/,
    -
    1866  1931 /*toYear*/,
    -
    1867  4 /*inMonth*/,
    -
    1868  0 /*onDayOfWeek*/,
    -
    1869  1 /*onDayOfMonth*/,
    -
    1870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1871  0 /*atTimeCode (0/15)*/,
    -
    1872  0 /*deltaMinutes*/,
    -
    1873  0 /*letterIndex ("")*/,
    -
    1874  },
    -
    1875  // Rule Arg 1931 only - Oct 15 0:00 1:00 -
    -
    1876  {
    -
    1877  1931 /*fromYear*/,
    -
    1878  1931 /*toYear*/,
    -
    1879  10 /*inMonth*/,
    -
    1880  0 /*onDayOfWeek*/,
    -
    1881  15 /*onDayOfMonth*/,
    -
    1882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1883  0 /*atTimeCode (0/15)*/,
    -
    1884  60 /*deltaMinutes*/,
    -
    1885  0 /*letterIndex ("")*/,
    -
    1886  },
    -
    1887  // Rule Arg 1932 1940 - Mar 1 0:00 0 -
    -
    1888  {
    -
    1889  1932 /*fromYear*/,
    -
    1890  1940 /*toYear*/,
    -
    1891  3 /*inMonth*/,
    -
    1892  0 /*onDayOfWeek*/,
    -
    1893  1 /*onDayOfMonth*/,
    -
    1894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1895  0 /*atTimeCode (0/15)*/,
    -
    1896  0 /*deltaMinutes*/,
    -
    1897  0 /*letterIndex ("")*/,
    -
    1898  },
    -
    1899  // Rule Arg 1932 1939 - Nov 1 0:00 1:00 -
    -
    1900  {
    -
    1901  1932 /*fromYear*/,
    -
    1902  1939 /*toYear*/,
    -
    1903  11 /*inMonth*/,
    -
    1904  0 /*onDayOfWeek*/,
    -
    1905  1 /*onDayOfMonth*/,
    -
    1906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1907  0 /*atTimeCode (0/15)*/,
    -
    1908  60 /*deltaMinutes*/,
    -
    1909  0 /*letterIndex ("")*/,
    -
    1910  },
    -
    1911  // Rule Arg 1940 only - Jul 1 0:00 1:00 -
    -
    1912  {
    -
    1913  1940 /*fromYear*/,
    -
    1914  1940 /*toYear*/,
    -
    1915  7 /*inMonth*/,
    -
    1916  0 /*onDayOfWeek*/,
    -
    1917  1 /*onDayOfMonth*/,
    -
    1918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1919  0 /*atTimeCode (0/15)*/,
    -
    1920  60 /*deltaMinutes*/,
    -
    1921  0 /*letterIndex ("")*/,
    -
    1922  },
    -
    1923  // Rule Arg 1941 only - Jun 15 0:00 0 -
    -
    1924  {
    -
    1925  1941 /*fromYear*/,
    -
    1926  1941 /*toYear*/,
    -
    1927  6 /*inMonth*/,
    -
    1928  0 /*onDayOfWeek*/,
    -
    1929  15 /*onDayOfMonth*/,
    -
    1930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1931  0 /*atTimeCode (0/15)*/,
    -
    1932  0 /*deltaMinutes*/,
    -
    1933  0 /*letterIndex ("")*/,
    -
    1934  },
    -
    1935  // Rule Arg 1941 only - Oct 15 0:00 1:00 -
    -
    1936  {
    -
    1937  1941 /*fromYear*/,
    -
    1938  1941 /*toYear*/,
    -
    1939  10 /*inMonth*/,
    -
    1940  0 /*onDayOfWeek*/,
    -
    1941  15 /*onDayOfMonth*/,
    -
    1942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1943  0 /*atTimeCode (0/15)*/,
    -
    1944  60 /*deltaMinutes*/,
    -
    1945  0 /*letterIndex ("")*/,
    -
    1946  },
    -
    1947  // Rule Arg 1943 only - Aug 1 0:00 0 -
    -
    1948  {
    -
    1949  1943 /*fromYear*/,
    -
    1950  1943 /*toYear*/,
    -
    1951  8 /*inMonth*/,
    -
    1952  0 /*onDayOfWeek*/,
    -
    1953  1 /*onDayOfMonth*/,
    -
    1954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1955  0 /*atTimeCode (0/15)*/,
    -
    1956  0 /*deltaMinutes*/,
    -
    1957  0 /*letterIndex ("")*/,
    -
    1958  },
    -
    1959  // Rule Arg 1943 only - Oct 15 0:00 1:00 -
    -
    1960  {
    -
    1961  1943 /*fromYear*/,
    -
    1962  1943 /*toYear*/,
    -
    1963  10 /*inMonth*/,
    -
    1964  0 /*onDayOfWeek*/,
    -
    1965  15 /*onDayOfMonth*/,
    -
    1966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1967  0 /*atTimeCode (0/15)*/,
    -
    1968  60 /*deltaMinutes*/,
    -
    1969  0 /*letterIndex ("")*/,
    -
    1970  },
    -
    1971  // Rule Arg 1946 only - Mar 1 0:00 0 -
    -
    1972  {
    -
    1973  1946 /*fromYear*/,
    -
    1974  1946 /*toYear*/,
    -
    1975  3 /*inMonth*/,
    -
    1976  0 /*onDayOfWeek*/,
    -
    1977  1 /*onDayOfMonth*/,
    -
    1978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1979  0 /*atTimeCode (0/15)*/,
    -
    1980  0 /*deltaMinutes*/,
    -
    1981  0 /*letterIndex ("")*/,
    -
    1982  },
    -
    1983  // Rule Arg 1946 only - Oct 1 0:00 1:00 -
    -
    1984  {
    -
    1985  1946 /*fromYear*/,
    -
    1986  1946 /*toYear*/,
    -
    1987  10 /*inMonth*/,
    -
    1988  0 /*onDayOfWeek*/,
    -
    1989  1 /*onDayOfMonth*/,
    -
    1990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    1991  0 /*atTimeCode (0/15)*/,
    -
    1992  60 /*deltaMinutes*/,
    -
    1993  0 /*letterIndex ("")*/,
    -
    1994  },
    -
    1995  // Rule Arg 1963 only - Oct 1 0:00 0 -
    -
    1996  {
    -
    1997  1963 /*fromYear*/,
    -
    1998  1963 /*toYear*/,
    -
    1999  10 /*inMonth*/,
    -
    2000  0 /*onDayOfWeek*/,
    -
    2001  1 /*onDayOfMonth*/,
    -
    2002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2003  0 /*atTimeCode (0/15)*/,
    -
    2004  0 /*deltaMinutes*/,
    -
    2005  0 /*letterIndex ("")*/,
    -
    2006  },
    -
    2007  // Rule Arg 1963 only - Dec 15 0:00 1:00 -
    -
    2008  {
    -
    2009  1963 /*fromYear*/,
    -
    2010  1963 /*toYear*/,
    -
    2011  12 /*inMonth*/,
    -
    2012  0 /*onDayOfWeek*/,
    -
    2013  15 /*onDayOfMonth*/,
    -
    2014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2015  0 /*atTimeCode (0/15)*/,
    -
    2016  60 /*deltaMinutes*/,
    -
    2017  0 /*letterIndex ("")*/,
    -
    2018  },
    -
    2019  // Rule Arg 1964 1966 - Mar 1 0:00 0 -
    -
    2020  {
    -
    2021  1964 /*fromYear*/,
    -
    2022  1966 /*toYear*/,
    -
    2023  3 /*inMonth*/,
    -
    2024  0 /*onDayOfWeek*/,
    -
    2025  1 /*onDayOfMonth*/,
    -
    2026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2027  0 /*atTimeCode (0/15)*/,
    -
    2028  0 /*deltaMinutes*/,
    -
    2029  0 /*letterIndex ("")*/,
    -
    2030  },
    -
    2031  // Rule Arg 1964 1966 - Oct 15 0:00 1:00 -
    -
    2032  {
    -
    2033  1964 /*fromYear*/,
    -
    2034  1966 /*toYear*/,
    -
    2035  10 /*inMonth*/,
    -
    2036  0 /*onDayOfWeek*/,
    -
    2037  15 /*onDayOfMonth*/,
    -
    2038  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2039  0 /*atTimeCode (0/15)*/,
    -
    2040  60 /*deltaMinutes*/,
    -
    2041  0 /*letterIndex ("")*/,
    -
    2042  },
    -
    2043  // Rule Arg 1967 only - Apr 2 0:00 0 -
    -
    2044  {
    -
    2045  1967 /*fromYear*/,
    -
    2046  1967 /*toYear*/,
    -
    2047  4 /*inMonth*/,
    -
    2048  0 /*onDayOfWeek*/,
    -
    2049  2 /*onDayOfMonth*/,
    -
    2050  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2051  0 /*atTimeCode (0/15)*/,
    -
    2052  0 /*deltaMinutes*/,
    -
    2053  0 /*letterIndex ("")*/,
    -
    2054  },
    -
    2055  // Rule Arg 1967 1968 - Oct Sun>=1 0:00 1:00 -
    -
    2056  {
    -
    2057  1967 /*fromYear*/,
    -
    2058  1968 /*toYear*/,
    -
    2059  10 /*inMonth*/,
    -
    2060  7 /*onDayOfWeek*/,
    -
    2061  1 /*onDayOfMonth*/,
    -
    2062  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2063  0 /*atTimeCode (0/15)*/,
    -
    2064  60 /*deltaMinutes*/,
    -
    2065  0 /*letterIndex ("")*/,
    -
    2066  },
    -
    2067  // Rule Arg 1968 1969 - Apr Sun>=1 0:00 0 -
    -
    2068  {
    -
    2069  1968 /*fromYear*/,
    -
    2070  1969 /*toYear*/,
    -
    2071  4 /*inMonth*/,
    -
    2072  7 /*onDayOfWeek*/,
    -
    2073  1 /*onDayOfMonth*/,
    -
    2074  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2075  0 /*atTimeCode (0/15)*/,
    -
    2076  0 /*deltaMinutes*/,
    -
    2077  0 /*letterIndex ("")*/,
    -
    2078  },
    -
    2079  // Rule Arg 1974 only - Jan 23 0:00 1:00 -
    -
    2080  {
    -
    2081  1974 /*fromYear*/,
    -
    2082  1974 /*toYear*/,
    -
    2083  1 /*inMonth*/,
    -
    2084  0 /*onDayOfWeek*/,
    -
    2085  23 /*onDayOfMonth*/,
    -
    2086  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2087  0 /*atTimeCode (0/15)*/,
    -
    2088  60 /*deltaMinutes*/,
    -
    2089  0 /*letterIndex ("")*/,
    -
    2090  },
    -
    2091  // Rule Arg 1974 only - May 1 0:00 0 -
    -
    2092  {
    -
    2093  1974 /*fromYear*/,
    -
    2094  1974 /*toYear*/,
    -
    2095  5 /*inMonth*/,
    -
    2096  0 /*onDayOfWeek*/,
    -
    2097  1 /*onDayOfMonth*/,
    -
    2098  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2099  0 /*atTimeCode (0/15)*/,
    -
    2100  0 /*deltaMinutes*/,
    -
    2101  0 /*letterIndex ("")*/,
    -
    2102  },
    -
    2103  // Rule Arg 1988 only - Dec 1 0:00 1:00 -
    -
    2104  {
    -
    2105  1988 /*fromYear*/,
    -
    2106  1988 /*toYear*/,
    -
    2107  12 /*inMonth*/,
    -
    2108  0 /*onDayOfWeek*/,
    -
    2109  1 /*onDayOfMonth*/,
    -
    2110  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2111  0 /*atTimeCode (0/15)*/,
    -
    2112  60 /*deltaMinutes*/,
    -
    2113  0 /*letterIndex ("")*/,
    -
    2114  },
    -
    2115  // Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 -
    -
    2116  {
    -
    2117  1989 /*fromYear*/,
    -
    2118  1993 /*toYear*/,
    -
    2119  3 /*inMonth*/,
    -
    2120  7 /*onDayOfWeek*/,
    -
    2121  1 /*onDayOfMonth*/,
    -
    2122  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2123  0 /*atTimeCode (0/15)*/,
    -
    2124  0 /*deltaMinutes*/,
    -
    2125  0 /*letterIndex ("")*/,
    -
    2126  },
    -
    2127  // Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 -
    -
    2128  {
    -
    2129  1989 /*fromYear*/,
    -
    2130  1992 /*toYear*/,
    -
    2131  10 /*inMonth*/,
    -
    2132  7 /*onDayOfWeek*/,
    -
    2133  15 /*onDayOfMonth*/,
    -
    2134  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2135  0 /*atTimeCode (0/15)*/,
    -
    2136  60 /*deltaMinutes*/,
    -
    2137  0 /*letterIndex ("")*/,
    -
    2138  },
    -
    2139  // Rule Arg 1999 only - Oct Sun>=1 0:00 1:00 -
    -
    2140  {
    -
    2141  1999 /*fromYear*/,
    -
    2142  1999 /*toYear*/,
    -
    2143  10 /*inMonth*/,
    -
    2144  7 /*onDayOfWeek*/,
    -
    2145  1 /*onDayOfMonth*/,
    -
    2146  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2147  0 /*atTimeCode (0/15)*/,
    -
    2148  60 /*deltaMinutes*/,
    -
    2149  0 /*letterIndex ("")*/,
    -
    2150  },
    -
    2151  // Rule Arg 2000 only - Mar 3 0:00 0 -
    -
    2152  {
    -
    2153  2000 /*fromYear*/,
    -
    2154  2000 /*toYear*/,
    -
    2155  3 /*inMonth*/,
    -
    2156  0 /*onDayOfWeek*/,
    -
    2157  3 /*onDayOfMonth*/,
    -
    2158  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2159  0 /*atTimeCode (0/15)*/,
    -
    2160  0 /*deltaMinutes*/,
    -
    2161  0 /*letterIndex ("")*/,
    -
    2162  },
    -
    2163  // Rule Arg 2007 only - Dec 30 0:00 1:00 -
    -
    2164  {
    -
    2165  2007 /*fromYear*/,
    -
    2166  2007 /*toYear*/,
    -
    2167  12 /*inMonth*/,
    -
    2168  0 /*onDayOfWeek*/,
    -
    2169  30 /*onDayOfMonth*/,
    -
    2170  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2171  0 /*atTimeCode (0/15)*/,
    -
    2172  60 /*deltaMinutes*/,
    -
    2173  0 /*letterIndex ("")*/,
    -
    2174  },
    -
    2175  // Rule Arg 2008 2009 - Mar Sun>=15 0:00 0 -
    -
    2176  {
    -
    2177  2008 /*fromYear*/,
    -
    2178  2009 /*toYear*/,
    -
    2179  3 /*inMonth*/,
    -
    2180  7 /*onDayOfWeek*/,
    -
    2181  15 /*onDayOfMonth*/,
    -
    2182  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2183  0 /*atTimeCode (0/15)*/,
    -
    2184  0 /*deltaMinutes*/,
    -
    2185  0 /*letterIndex ("")*/,
    -
    2186  },
    -
    2187  // Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 -
    -
    2188  {
    -
    2189  2008 /*fromYear*/,
    -
    2190  2008 /*toYear*/,
    -
    2191  10 /*inMonth*/,
    -
    2192  7 /*onDayOfWeek*/,
    -
    2193  15 /*onDayOfMonth*/,
    -
    2194  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2195  0 /*atTimeCode (0/15)*/,
    -
    2196  60 /*deltaMinutes*/,
    -
    2197  0 /*letterIndex ("")*/,
    -
    2198  },
    -
    2199 
    -
    2200 };
    -
    2201 
    -
    2202 const complete::Info::ZonePolicy kZonePolicyArg ACE_TIME_PROGMEM = {
    -
    2203  kZoneRulesArg /*rules*/,
    -
    2204  30 /*numRules*/,
    -
    2205 };
    -
    2206 
    -
    2207 //---------------------------------------------------------------------------
    -
    2208 // Policy name: Armenia
    -
    2209 // Rules: 3
    -
    2210 //---------------------------------------------------------------------------
    -
    2211 
    -
    2212 static const complete::Info::ZoneRule kZoneRulesArmenia[] ACE_TIME_PROGMEM = {
    -
    2213  // Anchor: Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
    -
    2214  {
    -
    2215  -32767 /*fromYear*/,
    -
    2216  -32767 /*toYear*/,
    -
    2217  1 /*inMonth*/,
    -
    2218  0 /*onDayOfWeek*/,
    -
    2219  1 /*onDayOfMonth*/,
    -
    2220  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2221  0 /*atTimeCode (0/15)*/,
    -
    2222  0 /*deltaMinutes*/,
    -
    2223  0 /*letterIndex ("")*/,
    -
    2224  },
    -
    2225  // Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 -
    -
    2226  {
    -
    2227  2011 /*fromYear*/,
    -
    2228  2011 /*toYear*/,
    -
    2229  3 /*inMonth*/,
    -
    2230  7 /*onDayOfWeek*/,
    -
    2231  0 /*onDayOfMonth*/,
    -
    2232  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2233  480 /*atTimeCode (7200/15)*/,
    -
    2234  60 /*deltaMinutes*/,
    -
    2235  0 /*letterIndex ("")*/,
    -
    2236  },
    -
    2237  // Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
    -
    2238  {
    -
    2239  2011 /*fromYear*/,
    -
    2240  2011 /*toYear*/,
    -
    2241  10 /*inMonth*/,
    -
    2242  7 /*onDayOfWeek*/,
    -
    2243  0 /*onDayOfMonth*/,
    -
    2244  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2245  480 /*atTimeCode (7200/15)*/,
    -
    2246  0 /*deltaMinutes*/,
    -
    2247  0 /*letterIndex ("")*/,
    -
    2248  },
    -
    2249 
    -
    2250 };
    -
    2251 
    -
    2252 const complete::Info::ZonePolicy kZonePolicyArmenia ACE_TIME_PROGMEM = {
    -
    2253  kZoneRulesArmenia /*rules*/,
    -
    2254  3 /*numRules*/,
    -
    2255 };
    -
    2256 
    -
    2257 //---------------------------------------------------------------------------
    -
    2258 // Policy name: Aus
    -
    2259 // Rules: 8
    -
    2260 //---------------------------------------------------------------------------
    -
    2261 
    -
    2262 static const complete::Info::ZoneRule kZoneRulesAus[] ACE_TIME_PROGMEM = {
    -
    2263  // Anchor: Rule Aus 1917 only - Mar lastSun 2:00s 0 S
    -
    2264  {
    -
    2265  -32767 /*fromYear*/,
    -
    2266  -32767 /*toYear*/,
    -
    2267  1 /*inMonth*/,
    -
    2268  0 /*onDayOfWeek*/,
    -
    2269  1 /*onDayOfMonth*/,
    -
    2270  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2271  0 /*atTimeCode (0/15)*/,
    -
    2272  0 /*deltaMinutes*/,
    -
    2273  25 /*letterIndex ("S")*/,
    -
    2274  },
    -
    2275  // Rule Aus 1917 only - Jan 1 2:00s 1:00 D
    -
    2276  {
    -
    2277  1917 /*fromYear*/,
    -
    2278  1917 /*toYear*/,
    -
    2279  1 /*inMonth*/,
    -
    2280  0 /*onDayOfWeek*/,
    -
    2281  1 /*onDayOfMonth*/,
    -
    2282  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2283  480 /*atTimeCode (7200/15)*/,
    -
    2284  60 /*deltaMinutes*/,
    -
    2285  13 /*letterIndex ("D")*/,
    -
    2286  },
    -
    2287  // Rule Aus 1917 only - Mar lastSun 2:00s 0 S
    -
    2288  {
    -
    2289  1917 /*fromYear*/,
    -
    2290  1917 /*toYear*/,
    -
    2291  3 /*inMonth*/,
    -
    2292  7 /*onDayOfWeek*/,
    -
    2293  0 /*onDayOfMonth*/,
    -
    2294  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2295  480 /*atTimeCode (7200/15)*/,
    -
    2296  0 /*deltaMinutes*/,
    -
    2297  25 /*letterIndex ("S")*/,
    -
    2298  },
    -
    2299  // Rule Aus 1942 only - Jan 1 2:00s 1:00 D
    -
    2300  {
    -
    2301  1942 /*fromYear*/,
    -
    2302  1942 /*toYear*/,
    -
    2303  1 /*inMonth*/,
    -
    2304  0 /*onDayOfWeek*/,
    -
    2305  1 /*onDayOfMonth*/,
    -
    2306  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2307  480 /*atTimeCode (7200/15)*/,
    -
    2308  60 /*deltaMinutes*/,
    -
    2309  13 /*letterIndex ("D")*/,
    -
    2310  },
    -
    2311  // Rule Aus 1942 only - Mar lastSun 2:00s 0 S
    -
    2312  {
    -
    2313  1942 /*fromYear*/,
    -
    2314  1942 /*toYear*/,
    -
    2315  3 /*inMonth*/,
    -
    2316  7 /*onDayOfWeek*/,
    -
    2317  0 /*onDayOfMonth*/,
    -
    2318  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2319  480 /*atTimeCode (7200/15)*/,
    -
    2320  0 /*deltaMinutes*/,
    -
    2321  25 /*letterIndex ("S")*/,
    -
    2322  },
    -
    2323  // Rule Aus 1942 only - Sep 27 2:00s 1:00 D
    -
    2324  {
    -
    2325  1942 /*fromYear*/,
    -
    2326  1942 /*toYear*/,
    -
    2327  9 /*inMonth*/,
    -
    2328  0 /*onDayOfWeek*/,
    -
    2329  27 /*onDayOfMonth*/,
    -
    2330  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2331  480 /*atTimeCode (7200/15)*/,
    -
    2332  60 /*deltaMinutes*/,
    -
    2333  13 /*letterIndex ("D")*/,
    -
    2334  },
    -
    2335  // Rule Aus 1943 1944 - Mar lastSun 2:00s 0 S
    -
    2336  {
    -
    2337  1943 /*fromYear*/,
    -
    2338  1944 /*toYear*/,
    -
    2339  3 /*inMonth*/,
    -
    2340  7 /*onDayOfWeek*/,
    -
    2341  0 /*onDayOfMonth*/,
    -
    2342  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2343  480 /*atTimeCode (7200/15)*/,
    -
    2344  0 /*deltaMinutes*/,
    -
    2345  25 /*letterIndex ("S")*/,
    -
    2346  },
    -
    2347  // Rule Aus 1943 only - Oct 3 2:00s 1:00 D
    -
    2348  {
    -
    2349  1943 /*fromYear*/,
    -
    2350  1943 /*toYear*/,
    -
    2351  10 /*inMonth*/,
    -
    2352  0 /*onDayOfWeek*/,
    -
    2353  3 /*onDayOfMonth*/,
    -
    2354  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2355  480 /*atTimeCode (7200/15)*/,
    -
    2356  60 /*deltaMinutes*/,
    -
    2357  13 /*letterIndex ("D")*/,
    -
    2358  },
    -
    2359 
    -
    2360 };
    -
    2361 
    -
    2362 const complete::Info::ZonePolicy kZonePolicyAus ACE_TIME_PROGMEM = {
    -
    2363  kZoneRulesAus /*rules*/,
    -
    2364  8 /*numRules*/,
    -
    2365 };
    -
    2366 
    -
    2367 //---------------------------------------------------------------------------
    -
    2368 // Policy name: Austria
    -
    2369 // Rules: 10
    -
    2370 //---------------------------------------------------------------------------
    -
    2371 
    -
    2372 static const complete::Info::ZoneRule kZoneRulesAustria[] ACE_TIME_PROGMEM = {
    -
    2373  // Anchor: Rule Austria 1920 only - Sep 13 2:00s 0 -
    -
    2374  {
    -
    2375  -32767 /*fromYear*/,
    -
    2376  -32767 /*toYear*/,
    -
    2377  1 /*inMonth*/,
    -
    2378  0 /*onDayOfWeek*/,
    -
    2379  1 /*onDayOfMonth*/,
    -
    2380  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2381  0 /*atTimeCode (0/15)*/,
    -
    2382  0 /*deltaMinutes*/,
    -
    2383  0 /*letterIndex ("")*/,
    -
    2384  },
    -
    2385  // Rule Austria 1920 only - Apr 5 2:00s 1:00 S
    -
    2386  {
    -
    2387  1920 /*fromYear*/,
    -
    2388  1920 /*toYear*/,
    -
    2389  4 /*inMonth*/,
    -
    2390  0 /*onDayOfWeek*/,
    -
    2391  5 /*onDayOfMonth*/,
    -
    2392  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2393  480 /*atTimeCode (7200/15)*/,
    -
    2394  60 /*deltaMinutes*/,
    -
    2395  25 /*letterIndex ("S")*/,
    -
    2396  },
    -
    2397  // Rule Austria 1920 only - Sep 13 2:00s 0 -
    -
    2398  {
    -
    2399  1920 /*fromYear*/,
    -
    2400  1920 /*toYear*/,
    -
    2401  9 /*inMonth*/,
    -
    2402  0 /*onDayOfWeek*/,
    -
    2403  13 /*onDayOfMonth*/,
    -
    2404  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2405  480 /*atTimeCode (7200/15)*/,
    -
    2406  0 /*deltaMinutes*/,
    -
    2407  0 /*letterIndex ("")*/,
    -
    2408  },
    -
    2409  // Rule Austria 1946 only - Apr 14 2:00s 1:00 S
    -
    2410  {
    -
    2411  1946 /*fromYear*/,
    -
    2412  1946 /*toYear*/,
    -
    2413  4 /*inMonth*/,
    -
    2414  0 /*onDayOfWeek*/,
    -
    2415  14 /*onDayOfMonth*/,
    -
    2416  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2417  480 /*atTimeCode (7200/15)*/,
    -
    2418  60 /*deltaMinutes*/,
    -
    2419  25 /*letterIndex ("S")*/,
    -
    2420  },
    -
    2421  // Rule Austria 1946 only - Oct 7 2:00s 0 -
    -
    2422  {
    -
    2423  1946 /*fromYear*/,
    -
    2424  1946 /*toYear*/,
    -
    2425  10 /*inMonth*/,
    -
    2426  0 /*onDayOfWeek*/,
    -
    2427  7 /*onDayOfMonth*/,
    -
    2428  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2429  480 /*atTimeCode (7200/15)*/,
    -
    2430  0 /*deltaMinutes*/,
    -
    2431  0 /*letterIndex ("")*/,
    -
    2432  },
    -
    2433  // Rule Austria 1947 1948 - Oct Sun>=1 2:00s 0 -
    -
    2434  {
    -
    2435  1947 /*fromYear*/,
    -
    2436  1948 /*toYear*/,
    -
    2437  10 /*inMonth*/,
    -
    2438  7 /*onDayOfWeek*/,
    -
    2439  1 /*onDayOfMonth*/,
    -
    2440  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2441  480 /*atTimeCode (7200/15)*/,
    -
    2442  0 /*deltaMinutes*/,
    -
    2443  0 /*letterIndex ("")*/,
    -
    2444  },
    -
    2445  // Rule Austria 1947 only - Apr 6 2:00s 1:00 S
    -
    2446  {
    -
    2447  1947 /*fromYear*/,
    -
    2448  1947 /*toYear*/,
    -
    2449  4 /*inMonth*/,
    -
    2450  0 /*onDayOfWeek*/,
    -
    2451  6 /*onDayOfMonth*/,
    -
    2452  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2453  480 /*atTimeCode (7200/15)*/,
    -
    2454  60 /*deltaMinutes*/,
    -
    2455  25 /*letterIndex ("S")*/,
    -
    2456  },
    -
    2457  // Rule Austria 1948 only - Apr 18 2:00s 1:00 S
    -
    2458  {
    -
    2459  1948 /*fromYear*/,
    -
    2460  1948 /*toYear*/,
    -
    2461  4 /*inMonth*/,
    -
    2462  0 /*onDayOfWeek*/,
    -
    2463  18 /*onDayOfMonth*/,
    -
    2464  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2465  480 /*atTimeCode (7200/15)*/,
    -
    2466  60 /*deltaMinutes*/,
    -
    2467  25 /*letterIndex ("S")*/,
    -
    2468  },
    -
    2469  // Rule Austria 1980 only - Apr 6 0:00 1:00 S
    -
    2470  {
    -
    2471  1980 /*fromYear*/,
    -
    2472  1980 /*toYear*/,
    -
    2473  4 /*inMonth*/,
    -
    2474  0 /*onDayOfWeek*/,
    -
    2475  6 /*onDayOfMonth*/,
    -
    2476  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2477  0 /*atTimeCode (0/15)*/,
    -
    2478  60 /*deltaMinutes*/,
    -
    2479  25 /*letterIndex ("S")*/,
    -
    2480  },
    -
    2481  // Rule Austria 1980 only - Sep 28 0:00 0 -
    -
    2482  {
    -
    2483  1980 /*fromYear*/,
    -
    2484  1980 /*toYear*/,
    -
    2485  9 /*inMonth*/,
    -
    2486  0 /*onDayOfWeek*/,
    -
    2487  28 /*onDayOfMonth*/,
    -
    2488  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2489  0 /*atTimeCode (0/15)*/,
    -
    2490  0 /*deltaMinutes*/,
    -
    2491  0 /*letterIndex ("")*/,
    -
    2492  },
    -
    2493 
    -
    2494 };
    -
    2495 
    -
    2496 const complete::Info::ZonePolicy kZonePolicyAustria ACE_TIME_PROGMEM = {
    -
    2497  kZoneRulesAustria /*rules*/,
    -
    2498  10 /*numRules*/,
    -
    2499 };
    -
    2500 
    -
    2501 //---------------------------------------------------------------------------
    -
    2502 // Policy name: Azer
    -
    2503 // Rules: 3
    -
    2504 //---------------------------------------------------------------------------
    -
    2505 
    -
    2506 static const complete::Info::ZoneRule kZoneRulesAzer[] ACE_TIME_PROGMEM = {
    -
    2507  // Anchor: Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
    -
    2508  {
    -
    2509  -32767 /*fromYear*/,
    -
    2510  -32767 /*toYear*/,
    -
    2511  1 /*inMonth*/,
    -
    2512  0 /*onDayOfWeek*/,
    -
    2513  1 /*onDayOfMonth*/,
    -
    2514  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2515  0 /*atTimeCode (0/15)*/,
    -
    2516  0 /*deltaMinutes*/,
    -
    2517  0 /*letterIndex ("")*/,
    -
    2518  },
    -
    2519  // Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 -
    -
    2520  {
    -
    2521  1997 /*fromYear*/,
    -
    2522  2015 /*toYear*/,
    -
    2523  3 /*inMonth*/,
    -
    2524  7 /*onDayOfWeek*/,
    -
    2525  0 /*onDayOfMonth*/,
    -
    2526  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2527  960 /*atTimeCode (14400/15)*/,
    -
    2528  60 /*deltaMinutes*/,
    -
    2529  0 /*letterIndex ("")*/,
    -
    2530  },
    -
    2531  // Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
    -
    2532  {
    -
    2533  1997 /*fromYear*/,
    -
    2534  2015 /*toYear*/,
    -
    2535  10 /*inMonth*/,
    -
    2536  7 /*onDayOfWeek*/,
    -
    2537  0 /*onDayOfMonth*/,
    -
    2538  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2539  1200 /*atTimeCode (18000/15)*/,
    -
    2540  0 /*deltaMinutes*/,
    -
    2541  0 /*letterIndex ("")*/,
    -
    2542  },
    -
    2543 
    -
    2544 };
    -
    2545 
    -
    2546 const complete::Info::ZonePolicy kZonePolicyAzer ACE_TIME_PROGMEM = {
    -
    2547  kZoneRulesAzer /*rules*/,
    -
    2548  3 /*numRules*/,
    -
    2549 };
    -
    2550 
    -
    2551 //---------------------------------------------------------------------------
    -
    2552 // Policy name: Barb
    -
    2553 // Rules: 12
    -
    2554 //---------------------------------------------------------------------------
    -
    2555 
    -
    2556 static const complete::Info::ZoneRule kZoneRulesBarb[] ACE_TIME_PROGMEM = {
    -
    2557  // Anchor: Rule Barb 1942 only - Aug 31 6:00u 0 S
    -
    2558  {
    -
    2559  -32767 /*fromYear*/,
    -
    2560  -32767 /*toYear*/,
    -
    2561  1 /*inMonth*/,
    -
    2562  0 /*onDayOfWeek*/,
    -
    2563  1 /*onDayOfMonth*/,
    -
    2564  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2565  0 /*atTimeCode (0/15)*/,
    -
    2566  0 /*deltaMinutes*/,
    -
    2567  25 /*letterIndex ("S")*/,
    -
    2568  },
    -
    2569  // Rule Barb 1942 only - Apr 19 5:00u 1:00 D
    -
    2570  {
    -
    2571  1942 /*fromYear*/,
    -
    2572  1942 /*toYear*/,
    -
    2573  4 /*inMonth*/,
    -
    2574  0 /*onDayOfWeek*/,
    -
    2575  19 /*onDayOfMonth*/,
    -
    2576  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    2577  1200 /*atTimeCode (18000/15)*/,
    -
    2578  60 /*deltaMinutes*/,
    -
    2579  13 /*letterIndex ("D")*/,
    -
    2580  },
    -
    2581  // Rule Barb 1942 only - Aug 31 6:00u 0 S
    -
    2582  {
    -
    2583  1942 /*fromYear*/,
    -
    2584  1942 /*toYear*/,
    -
    2585  8 /*inMonth*/,
    -
    2586  0 /*onDayOfWeek*/,
    -
    2587  31 /*onDayOfMonth*/,
    -
    2588  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    2589  1440 /*atTimeCode (21600/15)*/,
    -
    2590  0 /*deltaMinutes*/,
    -
    2591  25 /*letterIndex ("S")*/,
    -
    2592  },
    -
    2593  // Rule Barb 1943 only - May 2 5:00u 1:00 D
    -
    2594  {
    -
    2595  1943 /*fromYear*/,
    -
    2596  1943 /*toYear*/,
    -
    2597  5 /*inMonth*/,
    -
    2598  0 /*onDayOfWeek*/,
    -
    2599  2 /*onDayOfMonth*/,
    -
    2600  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    2601  1200 /*atTimeCode (18000/15)*/,
    -
    2602  60 /*deltaMinutes*/,
    -
    2603  13 /*letterIndex ("D")*/,
    -
    2604  },
    -
    2605  // Rule Barb 1943 only - Sep 5 6:00u 0 S
    -
    2606  {
    -
    2607  1943 /*fromYear*/,
    -
    2608  1943 /*toYear*/,
    -
    2609  9 /*inMonth*/,
    -
    2610  0 /*onDayOfWeek*/,
    -
    2611  5 /*onDayOfMonth*/,
    -
    2612  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    2613  1440 /*atTimeCode (21600/15)*/,
    -
    2614  0 /*deltaMinutes*/,
    -
    2615  25 /*letterIndex ("S")*/,
    -
    2616  },
    -
    2617  // Rule Barb 1944 only - Apr 10 5:00u 0:30 -
    -
    2618  {
    -
    2619  1944 /*fromYear*/,
    -
    2620  1944 /*toYear*/,
    -
    2621  4 /*inMonth*/,
    -
    2622  0 /*onDayOfWeek*/,
    -
    2623  10 /*onDayOfMonth*/,
    -
    2624  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    2625  1200 /*atTimeCode (18000/15)*/,
    -
    2626  30 /*deltaMinutes*/,
    -
    2627  0 /*letterIndex ("")*/,
    -
    2628  },
    -
    2629  // Rule Barb 1944 only - Sep 10 6:00u 0 S
    -
    2630  {
    -
    2631  1944 /*fromYear*/,
    -
    2632  1944 /*toYear*/,
    -
    2633  9 /*inMonth*/,
    -
    2634  0 /*onDayOfWeek*/,
    -
    2635  10 /*onDayOfMonth*/,
    -
    2636  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    2637  1440 /*atTimeCode (21600/15)*/,
    -
    2638  0 /*deltaMinutes*/,
    -
    2639  25 /*letterIndex ("S")*/,
    -
    2640  },
    -
    2641  // Rule Barb 1977 only - Jun 12 2:00 1:00 D
    -
    2642  {
    -
    2643  1977 /*fromYear*/,
    -
    2644  1977 /*toYear*/,
    -
    2645  6 /*inMonth*/,
    -
    2646  0 /*onDayOfWeek*/,
    -
    2647  12 /*onDayOfMonth*/,
    -
    2648  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2649  480 /*atTimeCode (7200/15)*/,
    -
    2650  60 /*deltaMinutes*/,
    -
    2651  13 /*letterIndex ("D")*/,
    -
    2652  },
    -
    2653  // Rule Barb 1977 1978 - Oct Sun>=1 2:00 0 S
    -
    2654  {
    -
    2655  1977 /*fromYear*/,
    -
    2656  1978 /*toYear*/,
    -
    2657  10 /*inMonth*/,
    -
    2658  7 /*onDayOfWeek*/,
    -
    2659  1 /*onDayOfMonth*/,
    -
    2660  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2661  480 /*atTimeCode (7200/15)*/,
    -
    2662  0 /*deltaMinutes*/,
    -
    2663  25 /*letterIndex ("S")*/,
    -
    2664  },
    -
    2665  // Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D
    -
    2666  {
    -
    2667  1978 /*fromYear*/,
    -
    2668  1980 /*toYear*/,
    -
    2669  4 /*inMonth*/,
    -
    2670  7 /*onDayOfWeek*/,
    -
    2671  15 /*onDayOfMonth*/,
    -
    2672  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2673  480 /*atTimeCode (7200/15)*/,
    -
    2674  60 /*deltaMinutes*/,
    -
    2675  13 /*letterIndex ("D")*/,
    -
    2676  },
    -
    2677  // Rule Barb 1979 only - Sep 30 2:00 0 S
    -
    2678  {
    -
    2679  1979 /*fromYear*/,
    -
    2680  1979 /*toYear*/,
    -
    2681  9 /*inMonth*/,
    -
    2682  0 /*onDayOfWeek*/,
    -
    2683  30 /*onDayOfMonth*/,
    -
    2684  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2685  480 /*atTimeCode (7200/15)*/,
    -
    2686  0 /*deltaMinutes*/,
    -
    2687  25 /*letterIndex ("S")*/,
    -
    2688  },
    -
    2689  // Rule Barb 1980 only - Sep 25 2:00 0 S
    -
    2690  {
    -
    2691  1980 /*fromYear*/,
    -
    2692  1980 /*toYear*/,
    -
    2693  9 /*inMonth*/,
    -
    2694  0 /*onDayOfWeek*/,
    -
    2695  25 /*onDayOfMonth*/,
    -
    2696  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2697  480 /*atTimeCode (7200/15)*/,
    -
    2698  0 /*deltaMinutes*/,
    -
    2699  25 /*letterIndex ("S")*/,
    -
    2700  },
    -
    2701 
    -
    2702 };
    -
    2703 
    -
    2704 const complete::Info::ZonePolicy kZonePolicyBarb ACE_TIME_PROGMEM = {
    -
    2705  kZoneRulesBarb /*rules*/,
    -
    2706  12 /*numRules*/,
    -
    2707 };
    -
    2708 
    -
    2709 //---------------------------------------------------------------------------
    -
    2710 // Policy name: Belgium
    -
    2711 // Rules: 35
    -
    2712 //---------------------------------------------------------------------------
    -
    2713 
    -
    2714 static const complete::Info::ZoneRule kZoneRulesBelgium[] ACE_TIME_PROGMEM = {
    -
    2715  // Anchor: Rule Belgium 1918 1919 - Oct Sat>=1 23:00s 0 -
    -
    2716  {
    -
    2717  -32767 /*fromYear*/,
    -
    2718  -32767 /*toYear*/,
    -
    2719  1 /*inMonth*/,
    -
    2720  0 /*onDayOfWeek*/,
    -
    2721  1 /*onDayOfMonth*/,
    -
    2722  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    2723  0 /*atTimeCode (0/15)*/,
    -
    2724  0 /*deltaMinutes*/,
    -
    2725  0 /*letterIndex ("")*/,
    -
    2726  },
    -
    2727  // Rule Belgium 1918 only - Mar 9 0:00s 1:00 S
    -
    2728  {
    -
    2729  1918 /*fromYear*/,
    -
    2730  1918 /*toYear*/,
    -
    2731  3 /*inMonth*/,
    -
    2732  0 /*onDayOfWeek*/,
    -
    2733  9 /*onDayOfMonth*/,
    -
    2734  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2735  0 /*atTimeCode (0/15)*/,
    -
    2736  60 /*deltaMinutes*/,
    -
    2737  25 /*letterIndex ("S")*/,
    -
    2738  },
    -
    2739  // Rule Belgium 1918 1919 - Oct Sat>=1 23:00s 0 -
    -
    2740  {
    -
    2741  1918 /*fromYear*/,
    -
    2742  1919 /*toYear*/,
    -
    2743  10 /*inMonth*/,
    -
    2744  6 /*onDayOfWeek*/,
    -
    2745  1 /*onDayOfMonth*/,
    -
    2746  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2747  5520 /*atTimeCode (82800/15)*/,
    -
    2748  0 /*deltaMinutes*/,
    -
    2749  0 /*letterIndex ("")*/,
    -
    2750  },
    -
    2751  // Rule Belgium 1919 only - Mar 1 23:00s 1:00 S
    -
    2752  {
    -
    2753  1919 /*fromYear*/,
    -
    2754  1919 /*toYear*/,
    -
    2755  3 /*inMonth*/,
    -
    2756  0 /*onDayOfWeek*/,
    -
    2757  1 /*onDayOfMonth*/,
    -
    2758  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2759  5520 /*atTimeCode (82800/15)*/,
    -
    2760  60 /*deltaMinutes*/,
    -
    2761  25 /*letterIndex ("S")*/,
    -
    2762  },
    -
    2763  // Rule Belgium 1920 only - Feb 14 23:00s 1:00 S
    -
    2764  {
    -
    2765  1920 /*fromYear*/,
    -
    2766  1920 /*toYear*/,
    -
    2767  2 /*inMonth*/,
    -
    2768  0 /*onDayOfWeek*/,
    -
    2769  14 /*onDayOfMonth*/,
    -
    2770  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2771  5520 /*atTimeCode (82800/15)*/,
    -
    2772  60 /*deltaMinutes*/,
    -
    2773  25 /*letterIndex ("S")*/,
    -
    2774  },
    -
    2775  // Rule Belgium 1920 only - Oct 23 23:00s 0 -
    -
    2776  {
    -
    2777  1920 /*fromYear*/,
    -
    2778  1920 /*toYear*/,
    -
    2779  10 /*inMonth*/,
    -
    2780  0 /*onDayOfWeek*/,
    -
    2781  23 /*onDayOfMonth*/,
    -
    2782  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2783  5520 /*atTimeCode (82800/15)*/,
    -
    2784  0 /*deltaMinutes*/,
    -
    2785  0 /*letterIndex ("")*/,
    -
    2786  },
    -
    2787  // Rule Belgium 1921 only - Mar 14 23:00s 1:00 S
    -
    2788  {
    -
    2789  1921 /*fromYear*/,
    -
    2790  1921 /*toYear*/,
    -
    2791  3 /*inMonth*/,
    -
    2792  0 /*onDayOfWeek*/,
    -
    2793  14 /*onDayOfMonth*/,
    -
    2794  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2795  5520 /*atTimeCode (82800/15)*/,
    -
    2796  60 /*deltaMinutes*/,
    -
    2797  25 /*letterIndex ("S")*/,
    -
    2798  },
    -
    2799  // Rule Belgium 1921 only - Oct 25 23:00s 0 -
    -
    2800  {
    -
    2801  1921 /*fromYear*/,
    -
    2802  1921 /*toYear*/,
    -
    2803  10 /*inMonth*/,
    -
    2804  0 /*onDayOfWeek*/,
    -
    2805  25 /*onDayOfMonth*/,
    -
    2806  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2807  5520 /*atTimeCode (82800/15)*/,
    -
    2808  0 /*deltaMinutes*/,
    -
    2809  0 /*letterIndex ("")*/,
    -
    2810  },
    -
    2811  // Rule Belgium 1922 only - Mar 25 23:00s 1:00 S
    -
    2812  {
    -
    2813  1922 /*fromYear*/,
    -
    2814  1922 /*toYear*/,
    -
    2815  3 /*inMonth*/,
    -
    2816  0 /*onDayOfWeek*/,
    -
    2817  25 /*onDayOfMonth*/,
    -
    2818  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2819  5520 /*atTimeCode (82800/15)*/,
    -
    2820  60 /*deltaMinutes*/,
    -
    2821  25 /*letterIndex ("S")*/,
    -
    2822  },
    -
    2823  // Rule Belgium 1922 1927 - Oct Sat>=1 23:00s 0 -
    -
    2824  {
    -
    2825  1922 /*fromYear*/,
    -
    2826  1927 /*toYear*/,
    -
    2827  10 /*inMonth*/,
    -
    2828  6 /*onDayOfWeek*/,
    -
    2829  1 /*onDayOfMonth*/,
    -
    2830  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2831  5520 /*atTimeCode (82800/15)*/,
    -
    2832  0 /*deltaMinutes*/,
    -
    2833  0 /*letterIndex ("")*/,
    -
    2834  },
    -
    2835  // Rule Belgium 1923 only - Apr 21 23:00s 1:00 S
    -
    2836  {
    -
    2837  1923 /*fromYear*/,
    -
    2838  1923 /*toYear*/,
    -
    2839  4 /*inMonth*/,
    -
    2840  0 /*onDayOfWeek*/,
    -
    2841  21 /*onDayOfMonth*/,
    -
    2842  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2843  5520 /*atTimeCode (82800/15)*/,
    -
    2844  60 /*deltaMinutes*/,
    -
    2845  25 /*letterIndex ("S")*/,
    -
    2846  },
    -
    2847  // Rule Belgium 1924 only - Mar 29 23:00s 1:00 S
    -
    2848  {
    -
    2849  1924 /*fromYear*/,
    -
    2850  1924 /*toYear*/,
    -
    2851  3 /*inMonth*/,
    -
    2852  0 /*onDayOfWeek*/,
    -
    2853  29 /*onDayOfMonth*/,
    -
    2854  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2855  5520 /*atTimeCode (82800/15)*/,
    -
    2856  60 /*deltaMinutes*/,
    -
    2857  25 /*letterIndex ("S")*/,
    -
    2858  },
    -
    2859  // Rule Belgium 1925 only - Apr 4 23:00s 1:00 S
    -
    2860  {
    -
    2861  1925 /*fromYear*/,
    -
    2862  1925 /*toYear*/,
    -
    2863  4 /*inMonth*/,
    -
    2864  0 /*onDayOfWeek*/,
    -
    2865  4 /*onDayOfMonth*/,
    -
    2866  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2867  5520 /*atTimeCode (82800/15)*/,
    -
    2868  60 /*deltaMinutes*/,
    -
    2869  25 /*letterIndex ("S")*/,
    -
    2870  },
    -
    2871  // Rule Belgium 1926 only - Apr 17 23:00s 1:00 S
    -
    2872  {
    -
    2873  1926 /*fromYear*/,
    -
    2874  1926 /*toYear*/,
    -
    2875  4 /*inMonth*/,
    -
    2876  0 /*onDayOfWeek*/,
    -
    2877  17 /*onDayOfMonth*/,
    -
    2878  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2879  5520 /*atTimeCode (82800/15)*/,
    -
    2880  60 /*deltaMinutes*/,
    -
    2881  25 /*letterIndex ("S")*/,
    -
    2882  },
    -
    2883  // Rule Belgium 1927 only - Apr 9 23:00s 1:00 S
    -
    2884  {
    -
    2885  1927 /*fromYear*/,
    -
    2886  1927 /*toYear*/,
    -
    2887  4 /*inMonth*/,
    -
    2888  0 /*onDayOfWeek*/,
    -
    2889  9 /*onDayOfMonth*/,
    -
    2890  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2891  5520 /*atTimeCode (82800/15)*/,
    -
    2892  60 /*deltaMinutes*/,
    -
    2893  25 /*letterIndex ("S")*/,
    -
    2894  },
    -
    2895  // Rule Belgium 1928 only - Apr 14 23:00s 1:00 S
    -
    2896  {
    -
    2897  1928 /*fromYear*/,
    -
    2898  1928 /*toYear*/,
    -
    2899  4 /*inMonth*/,
    -
    2900  0 /*onDayOfWeek*/,
    -
    2901  14 /*onDayOfMonth*/,
    -
    2902  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2903  5520 /*atTimeCode (82800/15)*/,
    -
    2904  60 /*deltaMinutes*/,
    -
    2905  25 /*letterIndex ("S")*/,
    -
    2906  },
    -
    2907  // Rule Belgium 1928 1938 - Oct Sun>=2 2:00s 0 -
    -
    2908  {
    -
    2909  1928 /*fromYear*/,
    -
    2910  1938 /*toYear*/,
    -
    2911  10 /*inMonth*/,
    -
    2912  7 /*onDayOfWeek*/,
    -
    2913  2 /*onDayOfMonth*/,
    -
    2914  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2915  480 /*atTimeCode (7200/15)*/,
    -
    2916  0 /*deltaMinutes*/,
    -
    2917  0 /*letterIndex ("")*/,
    -
    2918  },
    -
    2919  // Rule Belgium 1929 only - Apr 21 2:00s 1:00 S
    -
    2920  {
    -
    2921  1929 /*fromYear*/,
    -
    2922  1929 /*toYear*/,
    -
    2923  4 /*inMonth*/,
    -
    2924  0 /*onDayOfWeek*/,
    -
    2925  21 /*onDayOfMonth*/,
    -
    2926  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2927  480 /*atTimeCode (7200/15)*/,
    -
    2928  60 /*deltaMinutes*/,
    -
    2929  25 /*letterIndex ("S")*/,
    -
    2930  },
    -
    2931  // Rule Belgium 1930 only - Apr 13 2:00s 1:00 S
    -
    2932  {
    -
    2933  1930 /*fromYear*/,
    -
    2934  1930 /*toYear*/,
    -
    2935  4 /*inMonth*/,
    -
    2936  0 /*onDayOfWeek*/,
    -
    2937  13 /*onDayOfMonth*/,
    -
    2938  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2939  480 /*atTimeCode (7200/15)*/,
    -
    2940  60 /*deltaMinutes*/,
    -
    2941  25 /*letterIndex ("S")*/,
    -
    2942  },
    -
    2943  // Rule Belgium 1931 only - Apr 19 2:00s 1:00 S
    -
    2944  {
    -
    2945  1931 /*fromYear*/,
    -
    2946  1931 /*toYear*/,
    -
    2947  4 /*inMonth*/,
    -
    2948  0 /*onDayOfWeek*/,
    -
    2949  19 /*onDayOfMonth*/,
    -
    2950  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2951  480 /*atTimeCode (7200/15)*/,
    -
    2952  60 /*deltaMinutes*/,
    -
    2953  25 /*letterIndex ("S")*/,
    -
    2954  },
    -
    2955  // Rule Belgium 1932 only - Apr 3 2:00s 1:00 S
    -
    2956  {
    -
    2957  1932 /*fromYear*/,
    -
    2958  1932 /*toYear*/,
    -
    2959  4 /*inMonth*/,
    -
    2960  0 /*onDayOfWeek*/,
    -
    2961  3 /*onDayOfMonth*/,
    -
    2962  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2963  480 /*atTimeCode (7200/15)*/,
    -
    2964  60 /*deltaMinutes*/,
    -
    2965  25 /*letterIndex ("S")*/,
    -
    2966  },
    -
    2967  // Rule Belgium 1933 only - Mar 26 2:00s 1:00 S
    -
    2968  {
    -
    2969  1933 /*fromYear*/,
    -
    2970  1933 /*toYear*/,
    -
    2971  3 /*inMonth*/,
    -
    2972  0 /*onDayOfWeek*/,
    -
    2973  26 /*onDayOfMonth*/,
    -
    2974  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2975  480 /*atTimeCode (7200/15)*/,
    -
    2976  60 /*deltaMinutes*/,
    -
    2977  25 /*letterIndex ("S")*/,
    -
    2978  },
    -
    2979  // Rule Belgium 1934 only - Apr 8 2:00s 1:00 S
    -
    2980  {
    -
    2981  1934 /*fromYear*/,
    -
    2982  1934 /*toYear*/,
    -
    2983  4 /*inMonth*/,
    -
    2984  0 /*onDayOfWeek*/,
    -
    2985  8 /*onDayOfMonth*/,
    -
    2986  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2987  480 /*atTimeCode (7200/15)*/,
    -
    2988  60 /*deltaMinutes*/,
    -
    2989  25 /*letterIndex ("S")*/,
    -
    2990  },
    -
    2991  // Rule Belgium 1935 only - Mar 31 2:00s 1:00 S
    -
    2992  {
    -
    2993  1935 /*fromYear*/,
    -
    2994  1935 /*toYear*/,
    -
    2995  3 /*inMonth*/,
    -
    2996  0 /*onDayOfWeek*/,
    -
    2997  31 /*onDayOfMonth*/,
    -
    2998  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    2999  480 /*atTimeCode (7200/15)*/,
    -
    3000  60 /*deltaMinutes*/,
    -
    3001  25 /*letterIndex ("S")*/,
    -
    3002  },
    -
    3003  // Rule Belgium 1936 only - Apr 19 2:00s 1:00 S
    -
    3004  {
    -
    3005  1936 /*fromYear*/,
    -
    3006  1936 /*toYear*/,
    -
    3007  4 /*inMonth*/,
    -
    3008  0 /*onDayOfWeek*/,
    -
    3009  19 /*onDayOfMonth*/,
    -
    3010  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    3011  480 /*atTimeCode (7200/15)*/,
    -
    3012  60 /*deltaMinutes*/,
    -
    3013  25 /*letterIndex ("S")*/,
    -
    3014  },
    -
    3015  // Rule Belgium 1937 only - Apr 4 2:00s 1:00 S
    -
    3016  {
    -
    3017  1937 /*fromYear*/,
    -
    3018  1937 /*toYear*/,
    -
    3019  4 /*inMonth*/,
    -
    3020  0 /*onDayOfWeek*/,
    -
    3021  4 /*onDayOfMonth*/,
    -
    3022  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    3023  480 /*atTimeCode (7200/15)*/,
    -
    3024  60 /*deltaMinutes*/,
    -
    3025  25 /*letterIndex ("S")*/,
    -
    3026  },
    -
    3027  // Rule Belgium 1938 only - Mar 27 2:00s 1:00 S
    -
    3028  {
    -
    3029  1938 /*fromYear*/,
    -
    3030  1938 /*toYear*/,
    -
    3031  3 /*inMonth*/,
    -
    3032  0 /*onDayOfWeek*/,
    -
    3033  27 /*onDayOfMonth*/,
    -
    3034  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    3035  480 /*atTimeCode (7200/15)*/,
    -
    3036  60 /*deltaMinutes*/,
    -
    3037  25 /*letterIndex ("S")*/,
    -
    3038  },
    -
    3039  // Rule Belgium 1939 only - Apr 16 2:00s 1:00 S
    -
    3040  {
    -
    3041  1939 /*fromYear*/,
    -
    3042  1939 /*toYear*/,
    -
    3043  4 /*inMonth*/,
    -
    3044  0 /*onDayOfWeek*/,
    -
    3045  16 /*onDayOfMonth*/,
    -
    3046  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    3047  480 /*atTimeCode (7200/15)*/,
    -
    3048  60 /*deltaMinutes*/,
    -
    3049  25 /*letterIndex ("S")*/,
    -
    3050  },
    -
    3051  // Rule Belgium 1939 only - Nov 19 2:00s 0 -
    -
    3052  {
    -
    3053  1939 /*fromYear*/,
    -
    3054  1939 /*toYear*/,
    -
    3055  11 /*inMonth*/,
    -
    3056  0 /*onDayOfWeek*/,
    -
    3057  19 /*onDayOfMonth*/,
    -
    3058  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    3059  480 /*atTimeCode (7200/15)*/,
    -
    3060  0 /*deltaMinutes*/,
    -
    3061  0 /*letterIndex ("")*/,
    -
    3062  },
    -
    3063  // Rule Belgium 1940 only - Feb 25 2:00s 1:00 S
    -
    3064  {
    -
    3065  1940 /*fromYear*/,
    -
    3066  1940 /*toYear*/,
    -
    3067  2 /*inMonth*/,
    -
    3068  0 /*onDayOfWeek*/,
    -
    3069  25 /*onDayOfMonth*/,
    -
    3070  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    3071  480 /*atTimeCode (7200/15)*/,
    -
    3072  60 /*deltaMinutes*/,
    -
    3073  25 /*letterIndex ("S")*/,
    -
    3074  },
    -
    3075  // Rule Belgium 1944 only - Sep 17 2:00s 0 -
    -
    3076  {
    -
    3077  1944 /*fromYear*/,
    -
    3078  1944 /*toYear*/,
    -
    3079  9 /*inMonth*/,
    -
    3080  0 /*onDayOfWeek*/,
    -
    3081  17 /*onDayOfMonth*/,
    -
    3082  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    3083  480 /*atTimeCode (7200/15)*/,
    -
    3084  0 /*deltaMinutes*/,
    -
    3085  0 /*letterIndex ("")*/,
    -
    3086  },
    -
    3087  // Rule Belgium 1945 only - Apr 2 2:00s 1:00 S
    -
    3088  {
    -
    3089  1945 /*fromYear*/,
    -
    3090  1945 /*toYear*/,
    -
    3091  4 /*inMonth*/,
    -
    3092  0 /*onDayOfWeek*/,
    -
    3093  2 /*onDayOfMonth*/,
    -
    3094  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    3095  480 /*atTimeCode (7200/15)*/,
    -
    3096  60 /*deltaMinutes*/,
    -
    3097  25 /*letterIndex ("S")*/,
    -
    3098  },
    -
    3099  // Rule Belgium 1945 only - Sep 16 2:00s 0 -
    -
    3100  {
    -
    3101  1945 /*fromYear*/,
    -
    3102  1945 /*toYear*/,
    -
    3103  9 /*inMonth*/,
    -
    3104  0 /*onDayOfWeek*/,
    -
    3105  16 /*onDayOfMonth*/,
    -
    3106  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    3107  480 /*atTimeCode (7200/15)*/,
    -
    3108  0 /*deltaMinutes*/,
    -
    3109  0 /*letterIndex ("")*/,
    -
    3110  },
    -
    3111  // Rule Belgium 1946 only - May 19 2:00s 1:00 S
    -
    3112  {
    -
    3113  1946 /*fromYear*/,
    -
    3114  1946 /*toYear*/,
    -
    3115  5 /*inMonth*/,
    -
    3116  0 /*onDayOfWeek*/,
    -
    3117  19 /*onDayOfMonth*/,
    -
    3118  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    3119  480 /*atTimeCode (7200/15)*/,
    -
    3120  60 /*deltaMinutes*/,
    -
    3121  25 /*letterIndex ("S")*/,
    -
    3122  },
    -
    3123  // Rule Belgium 1946 only - Oct 7 2:00s 0 -
    -
    3124  {
    -
    3125  1946 /*fromYear*/,
    -
    3126  1946 /*toYear*/,
    -
    3127  10 /*inMonth*/,
    -
    3128  0 /*onDayOfWeek*/,
    -
    3129  7 /*onDayOfMonth*/,
    -
    3130  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    3131  480 /*atTimeCode (7200/15)*/,
    -
    3132  0 /*deltaMinutes*/,
    -
    3133  0 /*letterIndex ("")*/,
    -
    3134  },
    -
    3135 
    -
    3136 };
    -
    3137 
    -
    3138 const complete::Info::ZonePolicy kZonePolicyBelgium ACE_TIME_PROGMEM = {
    -
    3139  kZoneRulesBelgium /*rules*/,
    -
    3140  35 /*numRules*/,
    -
    3141 };
    -
    3142 
    -
    3143 //---------------------------------------------------------------------------
    -
    3144 // Policy name: Belize
    -
    3145 // Rules: 12
    -
    3146 //---------------------------------------------------------------------------
    -
    3147 
    -
    3148 static const complete::Info::ZoneRule kZoneRulesBelize[] ACE_TIME_PROGMEM = {
    -
    3149  // Anchor: Rule Belize 1919 1942 - Feb Sat>=8 24:00 0 CST
    -
    3150  {
    -
    3151  -32767 /*fromYear*/,
    -
    3152  -32767 /*toYear*/,
    -
    3153  1 /*inMonth*/,
    -
    3154  0 /*onDayOfWeek*/,
    -
    3155  1 /*onDayOfMonth*/,
    -
    3156  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3157  0 /*atTimeCode (0/15)*/,
    -
    3158  0 /*deltaMinutes*/,
    -
    3159  11 /*letterIndex ("CST")*/,
    -
    3160  },
    -
    3161  // Rule Belize 1918 1941 - Oct Sat>=1 24:00 0:30 -0530
    -
    3162  {
    -
    3163  1918 /*fromYear*/,
    -
    3164  1941 /*toYear*/,
    -
    3165  10 /*inMonth*/,
    -
    3166  6 /*onDayOfWeek*/,
    -
    3167  1 /*onDayOfMonth*/,
    -
    3168  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3169  5760 /*atTimeCode (86400/15)*/,
    -
    3170  30 /*deltaMinutes*/,
    -
    3171  5 /*letterIndex ("-0530")*/,
    -
    3172  },
    -
    3173  // Rule Belize 1919 1942 - Feb Sat>=8 24:00 0 CST
    -
    3174  {
    -
    3175  1919 /*fromYear*/,
    -
    3176  1942 /*toYear*/,
    -
    3177  2 /*inMonth*/,
    -
    3178  6 /*onDayOfWeek*/,
    -
    3179  8 /*onDayOfMonth*/,
    -
    3180  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3181  5760 /*atTimeCode (86400/15)*/,
    -
    3182  0 /*deltaMinutes*/,
    -
    3183  11 /*letterIndex ("CST")*/,
    -
    3184  },
    -
    3185  // Rule Belize 1942 only - Jun 27 24:00 1:00 CWT
    -
    3186  {
    -
    3187  1942 /*fromYear*/,
    -
    3188  1942 /*toYear*/,
    -
    3189  6 /*inMonth*/,
    -
    3190  0 /*onDayOfWeek*/,
    -
    3191  27 /*onDayOfMonth*/,
    -
    3192  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3193  5760 /*atTimeCode (86400/15)*/,
    -
    3194  60 /*deltaMinutes*/,
    -
    3195  12 /*letterIndex ("CWT")*/,
    -
    3196  },
    -
    3197  // Rule Belize 1945 only - Aug 14 23:00u 1:00 CPT
    -
    3198  {
    -
    3199  1945 /*fromYear*/,
    -
    3200  1945 /*toYear*/,
    -
    3201  8 /*inMonth*/,
    -
    3202  0 /*onDayOfWeek*/,
    -
    3203  14 /*onDayOfMonth*/,
    -
    3204  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    3205  5520 /*atTimeCode (82800/15)*/,
    -
    3206  60 /*deltaMinutes*/,
    -
    3207  10 /*letterIndex ("CPT")*/,
    -
    3208  },
    -
    3209  // Rule Belize 1945 only - Dec 15 24:00 0 CST
    -
    3210  {
    -
    3211  1945 /*fromYear*/,
    -
    3212  1945 /*toYear*/,
    -
    3213  12 /*inMonth*/,
    -
    3214  0 /*onDayOfWeek*/,
    -
    3215  15 /*onDayOfMonth*/,
    -
    3216  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3217  5760 /*atTimeCode (86400/15)*/,
    -
    3218  0 /*deltaMinutes*/,
    -
    3219  11 /*letterIndex ("CST")*/,
    -
    3220  },
    -
    3221  // Rule Belize 1947 1967 - Oct Sat>=1 24:00 0:30 -0530
    -
    3222  {
    -
    3223  1947 /*fromYear*/,
    -
    3224  1967 /*toYear*/,
    -
    3225  10 /*inMonth*/,
    -
    3226  6 /*onDayOfWeek*/,
    -
    3227  1 /*onDayOfMonth*/,
    -
    3228  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3229  5760 /*atTimeCode (86400/15)*/,
    -
    3230  30 /*deltaMinutes*/,
    -
    3231  5 /*letterIndex ("-0530")*/,
    -
    3232  },
    -
    3233  // Rule Belize 1948 1968 - Feb Sat>=8 24:00 0 CST
    -
    3234  {
    -
    3235  1948 /*fromYear*/,
    -
    3236  1968 /*toYear*/,
    -
    3237  2 /*inMonth*/,
    -
    3238  6 /*onDayOfWeek*/,
    -
    3239  8 /*onDayOfMonth*/,
    -
    3240  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3241  5760 /*atTimeCode (86400/15)*/,
    -
    3242  0 /*deltaMinutes*/,
    -
    3243  11 /*letterIndex ("CST")*/,
    -
    3244  },
    -
    3245  // Rule Belize 1973 only - Dec 5 0:00 1:00 CDT
    -
    3246  {
    -
    3247  1973 /*fromYear*/,
    -
    3248  1973 /*toYear*/,
    -
    3249  12 /*inMonth*/,
    -
    3250  0 /*onDayOfWeek*/,
    -
    3251  5 /*onDayOfMonth*/,
    -
    3252  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3253  0 /*atTimeCode (0/15)*/,
    -
    3254  60 /*deltaMinutes*/,
    -
    3255  9 /*letterIndex ("CDT")*/,
    -
    3256  },
    -
    3257  // Rule Belize 1974 only - Feb 9 0:00 0 CST
    -
    3258  {
    -
    3259  1974 /*fromYear*/,
    -
    3260  1974 /*toYear*/,
    -
    3261  2 /*inMonth*/,
    -
    3262  0 /*onDayOfWeek*/,
    -
    3263  9 /*onDayOfMonth*/,
    -
    3264  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3265  0 /*atTimeCode (0/15)*/,
    -
    3266  0 /*deltaMinutes*/,
    -
    3267  11 /*letterIndex ("CST")*/,
    -
    3268  },
    -
    3269  // Rule Belize 1982 only - Dec 18 0:00 1:00 CDT
    -
    3270  {
    -
    3271  1982 /*fromYear*/,
    -
    3272  1982 /*toYear*/,
    -
    3273  12 /*inMonth*/,
    -
    3274  0 /*onDayOfWeek*/,
    -
    3275  18 /*onDayOfMonth*/,
    -
    3276  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3277  0 /*atTimeCode (0/15)*/,
    -
    3278  60 /*deltaMinutes*/,
    -
    3279  9 /*letterIndex ("CDT")*/,
    -
    3280  },
    -
    3281  // Rule Belize 1983 only - Feb 12 0:00 0 CST
    -
    3282  {
    -
    3283  1983 /*fromYear*/,
    -
    3284  1983 /*toYear*/,
    -
    3285  2 /*inMonth*/,
    -
    3286  0 /*onDayOfWeek*/,
    -
    3287  12 /*onDayOfMonth*/,
    -
    3288  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3289  0 /*atTimeCode (0/15)*/,
    -
    3290  0 /*deltaMinutes*/,
    -
    3291  11 /*letterIndex ("CST")*/,
    -
    3292  },
    -
    3293 
    -
    3294 };
    -
    3295 
    -
    3296 const complete::Info::ZonePolicy kZonePolicyBelize ACE_TIME_PROGMEM = {
    -
    3297  kZoneRulesBelize /*rules*/,
    -
    3298  12 /*numRules*/,
    -
    3299 };
    -
    3300 
    -
    3301 //---------------------------------------------------------------------------
    -
    3302 // Policy name: Bermuda
    -
    3303 // Rules: 17
    -
    3304 //---------------------------------------------------------------------------
    -
    3305 
    -
    3306 static const complete::Info::ZoneRule kZoneRulesBermuda[] ACE_TIME_PROGMEM = {
    -
    3307  // Anchor: Rule Bermuda 1917 only - Sep 30 24:00 0 -
    -
    3308  {
    -
    3309  -32767 /*fromYear*/,
    -
    3310  -32767 /*toYear*/,
    -
    3311  1 /*inMonth*/,
    -
    3312  0 /*onDayOfWeek*/,
    -
    3313  1 /*onDayOfMonth*/,
    -
    3314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3315  0 /*atTimeCode (0/15)*/,
    -
    3316  0 /*deltaMinutes*/,
    -
    3317  0 /*letterIndex ("")*/,
    -
    3318  },
    -
    3319  // Rule Bermuda 1917 only - Apr 5 24:00 1:00 -
    -
    3320  {
    -
    3321  1917 /*fromYear*/,
    -
    3322  1917 /*toYear*/,
    -
    3323  4 /*inMonth*/,
    -
    3324  0 /*onDayOfWeek*/,
    -
    3325  5 /*onDayOfMonth*/,
    -
    3326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3327  5760 /*atTimeCode (86400/15)*/,
    -
    3328  60 /*deltaMinutes*/,
    -
    3329  0 /*letterIndex ("")*/,
    -
    3330  },
    -
    3331  // Rule Bermuda 1917 only - Sep 30 24:00 0 -
    -
    3332  {
    -
    3333  1917 /*fromYear*/,
    -
    3334  1917 /*toYear*/,
    -
    3335  9 /*inMonth*/,
    -
    3336  0 /*onDayOfWeek*/,
    -
    3337  30 /*onDayOfMonth*/,
    -
    3338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3339  5760 /*atTimeCode (86400/15)*/,
    -
    3340  0 /*deltaMinutes*/,
    -
    3341  0 /*letterIndex ("")*/,
    -
    3342  },
    -
    3343  // Rule Bermuda 1918 only - Apr 13 24:00 1:00 -
    -
    3344  {
    -
    3345  1918 /*fromYear*/,
    -
    3346  1918 /*toYear*/,
    -
    3347  4 /*inMonth*/,
    -
    3348  0 /*onDayOfWeek*/,
    -
    3349  13 /*onDayOfMonth*/,
    -
    3350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3351  5760 /*atTimeCode (86400/15)*/,
    -
    3352  60 /*deltaMinutes*/,
    -
    3353  0 /*letterIndex ("")*/,
    -
    3354  },
    -
    3355  // Rule Bermuda 1918 only - Sep 15 24:00 0 S
    -
    3356  {
    -
    3357  1918 /*fromYear*/,
    -
    3358  1918 /*toYear*/,
    -
    3359  9 /*inMonth*/,
    -
    3360  0 /*onDayOfWeek*/,
    -
    3361  15 /*onDayOfMonth*/,
    -
    3362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3363  5760 /*atTimeCode (86400/15)*/,
    -
    3364  0 /*deltaMinutes*/,
    -
    3365  25 /*letterIndex ("S")*/,
    -
    3366  },
    -
    3367  // Rule Bermuda 1942 only - Jan 11 2:00 1:00 D
    -
    3368  {
    -
    3369  1942 /*fromYear*/,
    -
    3370  1942 /*toYear*/,
    -
    3371  1 /*inMonth*/,
    -
    3372  0 /*onDayOfWeek*/,
    -
    3373  11 /*onDayOfMonth*/,
    -
    3374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3375  480 /*atTimeCode (7200/15)*/,
    -
    3376  60 /*deltaMinutes*/,
    -
    3377  13 /*letterIndex ("D")*/,
    -
    3378  },
    -
    3379  // Rule Bermuda 1942 only - Oct 18 2:00 0 S
    -
    3380  {
    -
    3381  1942 /*fromYear*/,
    -
    3382  1942 /*toYear*/,
    -
    3383  10 /*inMonth*/,
    -
    3384  0 /*onDayOfWeek*/,
    -
    3385  18 /*onDayOfMonth*/,
    -
    3386  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3387  480 /*atTimeCode (7200/15)*/,
    -
    3388  0 /*deltaMinutes*/,
    -
    3389  25 /*letterIndex ("S")*/,
    -
    3390  },
    -
    3391  // Rule Bermuda 1943 only - Mar 21 2:00 1:00 D
    -
    3392  {
    -
    3393  1943 /*fromYear*/,
    -
    3394  1943 /*toYear*/,
    -
    3395  3 /*inMonth*/,
    -
    3396  0 /*onDayOfWeek*/,
    -
    3397  21 /*onDayOfMonth*/,
    -
    3398  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3399  480 /*atTimeCode (7200/15)*/,
    -
    3400  60 /*deltaMinutes*/,
    -
    3401  13 /*letterIndex ("D")*/,
    -
    3402  },
    -
    3403  // Rule Bermuda 1943 only - Oct 31 2:00 0 S
    -
    3404  {
    -
    3405  1943 /*fromYear*/,
    -
    3406  1943 /*toYear*/,
    -
    3407  10 /*inMonth*/,
    -
    3408  0 /*onDayOfWeek*/,
    -
    3409  31 /*onDayOfMonth*/,
    -
    3410  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3411  480 /*atTimeCode (7200/15)*/,
    -
    3412  0 /*deltaMinutes*/,
    -
    3413  25 /*letterIndex ("S")*/,
    -
    3414  },
    -
    3415  // Rule Bermuda 1944 1945 - Mar Sun>=8 2:00 1:00 D
    -
    3416  {
    -
    3417  1944 /*fromYear*/,
    -
    3418  1945 /*toYear*/,
    -
    3419  3 /*inMonth*/,
    -
    3420  7 /*onDayOfWeek*/,
    -
    3421  8 /*onDayOfMonth*/,
    -
    3422  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3423  480 /*atTimeCode (7200/15)*/,
    -
    3424  60 /*deltaMinutes*/,
    -
    3425  13 /*letterIndex ("D")*/,
    -
    3426  },
    -
    3427  // Rule Bermuda 1944 1945 - Nov Sun>=1 2:00 0 S
    -
    3428  {
    -
    3429  1944 /*fromYear*/,
    -
    3430  1945 /*toYear*/,
    -
    3431  11 /*inMonth*/,
    -
    3432  7 /*onDayOfWeek*/,
    -
    3433  1 /*onDayOfMonth*/,
    -
    3434  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3435  480 /*atTimeCode (7200/15)*/,
    -
    3436  0 /*deltaMinutes*/,
    -
    3437  25 /*letterIndex ("S")*/,
    -
    3438  },
    -
    3439  // Rule Bermuda 1947 only - May Sun>=15 2:00 1:00 D
    -
    3440  {
    -
    3441  1947 /*fromYear*/,
    -
    3442  1947 /*toYear*/,
    -
    3443  5 /*inMonth*/,
    -
    3444  7 /*onDayOfWeek*/,
    -
    3445  15 /*onDayOfMonth*/,
    -
    3446  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3447  480 /*atTimeCode (7200/15)*/,
    -
    3448  60 /*deltaMinutes*/,
    -
    3449  13 /*letterIndex ("D")*/,
    -
    3450  },
    -
    3451  // Rule Bermuda 1947 only - Sep Sun>=8 2:00 0 S
    -
    3452  {
    -
    3453  1947 /*fromYear*/,
    -
    3454  1947 /*toYear*/,
    -
    3455  9 /*inMonth*/,
    -
    3456  7 /*onDayOfWeek*/,
    -
    3457  8 /*onDayOfMonth*/,
    -
    3458  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3459  480 /*atTimeCode (7200/15)*/,
    -
    3460  0 /*deltaMinutes*/,
    -
    3461  25 /*letterIndex ("S")*/,
    -
    3462  },
    -
    3463  // Rule Bermuda 1948 1952 - May Sun>=22 2:00 1:00 D
    -
    3464  {
    -
    3465  1948 /*fromYear*/,
    -
    3466  1952 /*toYear*/,
    -
    3467  5 /*inMonth*/,
    -
    3468  7 /*onDayOfWeek*/,
    -
    3469  22 /*onDayOfMonth*/,
    -
    3470  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3471  480 /*atTimeCode (7200/15)*/,
    -
    3472  60 /*deltaMinutes*/,
    -
    3473  13 /*letterIndex ("D")*/,
    -
    3474  },
    -
    3475  // Rule Bermuda 1948 1952 - Sep Sun>=1 2:00 0 S
    -
    3476  {
    -
    3477  1948 /*fromYear*/,
    -
    3478  1952 /*toYear*/,
    -
    3479  9 /*inMonth*/,
    -
    3480  7 /*onDayOfWeek*/,
    -
    3481  1 /*onDayOfMonth*/,
    -
    3482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3483  480 /*atTimeCode (7200/15)*/,
    -
    3484  0 /*deltaMinutes*/,
    -
    3485  25 /*letterIndex ("S")*/,
    -
    3486  },
    -
    3487  // Rule Bermuda 1956 only - May Sun>=22 2:00 1:00 D
    -
    3488  {
    -
    3489  1956 /*fromYear*/,
    -
    3490  1956 /*toYear*/,
    -
    3491  5 /*inMonth*/,
    -
    3492  7 /*onDayOfWeek*/,
    -
    3493  22 /*onDayOfMonth*/,
    -
    3494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3495  480 /*atTimeCode (7200/15)*/,
    -
    3496  60 /*deltaMinutes*/,
    -
    3497  13 /*letterIndex ("D")*/,
    -
    3498  },
    -
    3499  // Rule Bermuda 1956 only - Oct lastSun 2:00 0 S
    -
    3500  {
    -
    3501  1956 /*fromYear*/,
    -
    3502  1956 /*toYear*/,
    -
    3503  10 /*inMonth*/,
    -
    3504  7 /*onDayOfWeek*/,
    -
    3505  0 /*onDayOfMonth*/,
    -
    3506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3507  480 /*atTimeCode (7200/15)*/,
    -
    3508  0 /*deltaMinutes*/,
    -
    3509  25 /*letterIndex ("S")*/,
    -
    3510  },
    -
    3511 
    -
    3512 };
    -
    3513 
    -
    3514 const complete::Info::ZonePolicy kZonePolicyBermuda ACE_TIME_PROGMEM = {
    -
    3515  kZoneRulesBermuda /*rules*/,
    -
    3516  17 /*numRules*/,
    -
    3517 };
    -
    3518 
    -
    3519 //---------------------------------------------------------------------------
    -
    3520 // Policy name: Brazil
    -
    3521 // Rules: 58
    -
    3522 //---------------------------------------------------------------------------
    -
    3523 
    -
    3524 static const complete::Info::ZoneRule kZoneRulesBrazil[] ACE_TIME_PROGMEM = {
    -
    3525  // Anchor: Rule Brazil 1932 1933 - Apr 1 0:00 0 -
    -
    3526  {
    -
    3527  -32767 /*fromYear*/,
    -
    3528  -32767 /*toYear*/,
    -
    3529  1 /*inMonth*/,
    -
    3530  0 /*onDayOfWeek*/,
    -
    3531  1 /*onDayOfMonth*/,
    -
    3532  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3533  0 /*atTimeCode (0/15)*/,
    -
    3534  0 /*deltaMinutes*/,
    -
    3535  0 /*letterIndex ("")*/,
    -
    3536  },
    -
    3537  // Rule Brazil 1931 only - Oct 3 11:00 1:00 -
    -
    3538  {
    -
    3539  1931 /*fromYear*/,
    -
    3540  1931 /*toYear*/,
    -
    3541  10 /*inMonth*/,
    -
    3542  0 /*onDayOfWeek*/,
    -
    3543  3 /*onDayOfMonth*/,
    -
    3544  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3545  2640 /*atTimeCode (39600/15)*/,
    -
    3546  60 /*deltaMinutes*/,
    -
    3547  0 /*letterIndex ("")*/,
    -
    3548  },
    -
    3549  // Rule Brazil 1932 1933 - Apr 1 0:00 0 -
    -
    3550  {
    -
    3551  1932 /*fromYear*/,
    -
    3552  1933 /*toYear*/,
    -
    3553  4 /*inMonth*/,
    -
    3554  0 /*onDayOfWeek*/,
    -
    3555  1 /*onDayOfMonth*/,
    -
    3556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3557  0 /*atTimeCode (0/15)*/,
    -
    3558  0 /*deltaMinutes*/,
    -
    3559  0 /*letterIndex ("")*/,
    -
    3560  },
    -
    3561  // Rule Brazil 1932 only - Oct 3 0:00 1:00 -
    -
    3562  {
    -
    3563  1932 /*fromYear*/,
    -
    3564  1932 /*toYear*/,
    -
    3565  10 /*inMonth*/,
    -
    3566  0 /*onDayOfWeek*/,
    -
    3567  3 /*onDayOfMonth*/,
    -
    3568  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3569  0 /*atTimeCode (0/15)*/,
    -
    3570  60 /*deltaMinutes*/,
    -
    3571  0 /*letterIndex ("")*/,
    -
    3572  },
    -
    3573  // Rule Brazil 1949 1952 - Dec 1 0:00 1:00 -
    -
    3574  {
    -
    3575  1949 /*fromYear*/,
    -
    3576  1952 /*toYear*/,
    -
    3577  12 /*inMonth*/,
    -
    3578  0 /*onDayOfWeek*/,
    -
    3579  1 /*onDayOfMonth*/,
    -
    3580  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3581  0 /*atTimeCode (0/15)*/,
    -
    3582  60 /*deltaMinutes*/,
    -
    3583  0 /*letterIndex ("")*/,
    -
    3584  },
    -
    3585  // Rule Brazil 1950 only - Apr 16 1:00 0 -
    -
    3586  {
    -
    3587  1950 /*fromYear*/,
    -
    3588  1950 /*toYear*/,
    -
    3589  4 /*inMonth*/,
    -
    3590  0 /*onDayOfWeek*/,
    -
    3591  16 /*onDayOfMonth*/,
    -
    3592  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3593  240 /*atTimeCode (3600/15)*/,
    -
    3594  0 /*deltaMinutes*/,
    -
    3595  0 /*letterIndex ("")*/,
    -
    3596  },
    -
    3597  // Rule Brazil 1951 1952 - Apr 1 0:00 0 -
    -
    3598  {
    -
    3599  1951 /*fromYear*/,
    -
    3600  1952 /*toYear*/,
    -
    3601  4 /*inMonth*/,
    -
    3602  0 /*onDayOfWeek*/,
    -
    3603  1 /*onDayOfMonth*/,
    -
    3604  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3605  0 /*atTimeCode (0/15)*/,
    -
    3606  0 /*deltaMinutes*/,
    -
    3607  0 /*letterIndex ("")*/,
    -
    3608  },
    -
    3609  // Rule Brazil 1953 only - Mar 1 0:00 0 -
    -
    3610  {
    -
    3611  1953 /*fromYear*/,
    -
    3612  1953 /*toYear*/,
    -
    3613  3 /*inMonth*/,
    -
    3614  0 /*onDayOfWeek*/,
    -
    3615  1 /*onDayOfMonth*/,
    -
    3616  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3617  0 /*atTimeCode (0/15)*/,
    -
    3618  0 /*deltaMinutes*/,
    -
    3619  0 /*letterIndex ("")*/,
    -
    3620  },
    -
    3621  // Rule Brazil 1963 only - Dec 9 0:00 1:00 -
    -
    3622  {
    -
    3623  1963 /*fromYear*/,
    -
    3624  1963 /*toYear*/,
    -
    3625  12 /*inMonth*/,
    -
    3626  0 /*onDayOfWeek*/,
    -
    3627  9 /*onDayOfMonth*/,
    -
    3628  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3629  0 /*atTimeCode (0/15)*/,
    -
    3630  60 /*deltaMinutes*/,
    -
    3631  0 /*letterIndex ("")*/,
    -
    3632  },
    -
    3633  // Rule Brazil 1964 only - Mar 1 0:00 0 -
    -
    3634  {
    -
    3635  1964 /*fromYear*/,
    -
    3636  1964 /*toYear*/,
    -
    3637  3 /*inMonth*/,
    -
    3638  0 /*onDayOfWeek*/,
    -
    3639  1 /*onDayOfMonth*/,
    -
    3640  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3641  0 /*atTimeCode (0/15)*/,
    -
    3642  0 /*deltaMinutes*/,
    -
    3643  0 /*letterIndex ("")*/,
    -
    3644  },
    -
    3645  // Rule Brazil 1965 only - Jan 31 0:00 1:00 -
    -
    3646  {
    -
    3647  1965 /*fromYear*/,
    -
    3648  1965 /*toYear*/,
    -
    3649  1 /*inMonth*/,
    -
    3650  0 /*onDayOfWeek*/,
    -
    3651  31 /*onDayOfMonth*/,
    -
    3652  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3653  0 /*atTimeCode (0/15)*/,
    -
    3654  60 /*deltaMinutes*/,
    -
    3655  0 /*letterIndex ("")*/,
    -
    3656  },
    -
    3657  // Rule Brazil 1965 only - Mar 31 0:00 0 -
    -
    3658  {
    -
    3659  1965 /*fromYear*/,
    -
    3660  1965 /*toYear*/,
    -
    3661  3 /*inMonth*/,
    -
    3662  0 /*onDayOfWeek*/,
    -
    3663  31 /*onDayOfMonth*/,
    -
    3664  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3665  0 /*atTimeCode (0/15)*/,
    -
    3666  0 /*deltaMinutes*/,
    -
    3667  0 /*letterIndex ("")*/,
    -
    3668  },
    -
    3669  // Rule Brazil 1965 only - Dec 1 0:00 1:00 -
    -
    3670  {
    -
    3671  1965 /*fromYear*/,
    -
    3672  1965 /*toYear*/,
    -
    3673  12 /*inMonth*/,
    -
    3674  0 /*onDayOfWeek*/,
    -
    3675  1 /*onDayOfMonth*/,
    -
    3676  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3677  0 /*atTimeCode (0/15)*/,
    -
    3678  60 /*deltaMinutes*/,
    -
    3679  0 /*letterIndex ("")*/,
    -
    3680  },
    -
    3681  // Rule Brazil 1966 1968 - Mar 1 0:00 0 -
    -
    3682  {
    -
    3683  1966 /*fromYear*/,
    -
    3684  1968 /*toYear*/,
    -
    3685  3 /*inMonth*/,
    -
    3686  0 /*onDayOfWeek*/,
    -
    3687  1 /*onDayOfMonth*/,
    -
    3688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3689  0 /*atTimeCode (0/15)*/,
    -
    3690  0 /*deltaMinutes*/,
    -
    3691  0 /*letterIndex ("")*/,
    -
    3692  },
    -
    3693  // Rule Brazil 1966 1967 - Nov 1 0:00 1:00 -
    -
    3694  {
    -
    3695  1966 /*fromYear*/,
    -
    3696  1967 /*toYear*/,
    -
    3697  11 /*inMonth*/,
    -
    3698  0 /*onDayOfWeek*/,
    -
    3699  1 /*onDayOfMonth*/,
    -
    3700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3701  0 /*atTimeCode (0/15)*/,
    -
    3702  60 /*deltaMinutes*/,
    -
    3703  0 /*letterIndex ("")*/,
    -
    3704  },
    -
    3705  // Rule Brazil 1985 only - Nov 2 0:00 1:00 -
    -
    3706  {
    -
    3707  1985 /*fromYear*/,
    -
    3708  1985 /*toYear*/,
    -
    3709  11 /*inMonth*/,
    -
    3710  0 /*onDayOfWeek*/,
    -
    3711  2 /*onDayOfMonth*/,
    -
    3712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3713  0 /*atTimeCode (0/15)*/,
    -
    3714  60 /*deltaMinutes*/,
    -
    3715  0 /*letterIndex ("")*/,
    -
    3716  },
    -
    3717  // Rule Brazil 1986 only - Mar 15 0:00 0 -
    -
    3718  {
    -
    3719  1986 /*fromYear*/,
    -
    3720  1986 /*toYear*/,
    -
    3721  3 /*inMonth*/,
    -
    3722  0 /*onDayOfWeek*/,
    -
    3723  15 /*onDayOfMonth*/,
    -
    3724  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3725  0 /*atTimeCode (0/15)*/,
    -
    3726  0 /*deltaMinutes*/,
    -
    3727  0 /*letterIndex ("")*/,
    -
    3728  },
    -
    3729  // Rule Brazil 1986 only - Oct 25 0:00 1:00 -
    -
    3730  {
    -
    3731  1986 /*fromYear*/,
    -
    3732  1986 /*toYear*/,
    -
    3733  10 /*inMonth*/,
    -
    3734  0 /*onDayOfWeek*/,
    -
    3735  25 /*onDayOfMonth*/,
    -
    3736  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3737  0 /*atTimeCode (0/15)*/,
    -
    3738  60 /*deltaMinutes*/,
    -
    3739  0 /*letterIndex ("")*/,
    -
    3740  },
    -
    3741  // Rule Brazil 1987 only - Feb 14 0:00 0 -
    -
    3742  {
    -
    3743  1987 /*fromYear*/,
    -
    3744  1987 /*toYear*/,
    -
    3745  2 /*inMonth*/,
    -
    3746  0 /*onDayOfWeek*/,
    -
    3747  14 /*onDayOfMonth*/,
    -
    3748  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3749  0 /*atTimeCode (0/15)*/,
    -
    3750  0 /*deltaMinutes*/,
    -
    3751  0 /*letterIndex ("")*/,
    -
    3752  },
    -
    3753  // Rule Brazil 1987 only - Oct 25 0:00 1:00 -
    -
    3754  {
    -
    3755  1987 /*fromYear*/,
    -
    3756  1987 /*toYear*/,
    -
    3757  10 /*inMonth*/,
    -
    3758  0 /*onDayOfWeek*/,
    -
    3759  25 /*onDayOfMonth*/,
    -
    3760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3761  0 /*atTimeCode (0/15)*/,
    -
    3762  60 /*deltaMinutes*/,
    -
    3763  0 /*letterIndex ("")*/,
    -
    3764  },
    -
    3765  // Rule Brazil 1988 only - Feb 7 0:00 0 -
    -
    3766  {
    -
    3767  1988 /*fromYear*/,
    -
    3768  1988 /*toYear*/,
    -
    3769  2 /*inMonth*/,
    -
    3770  0 /*onDayOfWeek*/,
    -
    3771  7 /*onDayOfMonth*/,
    -
    3772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3773  0 /*atTimeCode (0/15)*/,
    -
    3774  0 /*deltaMinutes*/,
    -
    3775  0 /*letterIndex ("")*/,
    -
    3776  },
    -
    3777  // Rule Brazil 1988 only - Oct 16 0:00 1:00 -
    -
    3778  {
    -
    3779  1988 /*fromYear*/,
    -
    3780  1988 /*toYear*/,
    -
    3781  10 /*inMonth*/,
    -
    3782  0 /*onDayOfWeek*/,
    -
    3783  16 /*onDayOfMonth*/,
    -
    3784  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3785  0 /*atTimeCode (0/15)*/,
    -
    3786  60 /*deltaMinutes*/,
    -
    3787  0 /*letterIndex ("")*/,
    -
    3788  },
    -
    3789  // Rule Brazil 1989 only - Jan 29 0:00 0 -
    -
    3790  {
    -
    3791  1989 /*fromYear*/,
    -
    3792  1989 /*toYear*/,
    -
    3793  1 /*inMonth*/,
    -
    3794  0 /*onDayOfWeek*/,
    -
    3795  29 /*onDayOfMonth*/,
    -
    3796  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3797  0 /*atTimeCode (0/15)*/,
    -
    3798  0 /*deltaMinutes*/,
    -
    3799  0 /*letterIndex ("")*/,
    -
    3800  },
    -
    3801  // Rule Brazil 1989 only - Oct 15 0:00 1:00 -
    -
    3802  {
    -
    3803  1989 /*fromYear*/,
    -
    3804  1989 /*toYear*/,
    -
    3805  10 /*inMonth*/,
    -
    3806  0 /*onDayOfWeek*/,
    -
    3807  15 /*onDayOfMonth*/,
    -
    3808  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3809  0 /*atTimeCode (0/15)*/,
    -
    3810  60 /*deltaMinutes*/,
    -
    3811  0 /*letterIndex ("")*/,
    -
    3812  },
    -
    3813  // Rule Brazil 1990 only - Feb 11 0:00 0 -
    -
    3814  {
    -
    3815  1990 /*fromYear*/,
    -
    3816  1990 /*toYear*/,
    -
    3817  2 /*inMonth*/,
    -
    3818  0 /*onDayOfWeek*/,
    -
    3819  11 /*onDayOfMonth*/,
    -
    3820  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3821  0 /*atTimeCode (0/15)*/,
    -
    3822  0 /*deltaMinutes*/,
    -
    3823  0 /*letterIndex ("")*/,
    -
    3824  },
    -
    3825  // Rule Brazil 1990 only - Oct 21 0:00 1:00 -
    -
    3826  {
    -
    3827  1990 /*fromYear*/,
    -
    3828  1990 /*toYear*/,
    -
    3829  10 /*inMonth*/,
    -
    3830  0 /*onDayOfWeek*/,
    -
    3831  21 /*onDayOfMonth*/,
    -
    3832  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3833  0 /*atTimeCode (0/15)*/,
    -
    3834  60 /*deltaMinutes*/,
    -
    3835  0 /*letterIndex ("")*/,
    -
    3836  },
    -
    3837  // Rule Brazil 1991 only - Feb 17 0:00 0 -
    -
    3838  {
    -
    3839  1991 /*fromYear*/,
    -
    3840  1991 /*toYear*/,
    -
    3841  2 /*inMonth*/,
    -
    3842  0 /*onDayOfWeek*/,
    -
    3843  17 /*onDayOfMonth*/,
    -
    3844  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3845  0 /*atTimeCode (0/15)*/,
    -
    3846  0 /*deltaMinutes*/,
    -
    3847  0 /*letterIndex ("")*/,
    -
    3848  },
    -
    3849  // Rule Brazil 1991 only - Oct 20 0:00 1:00 -
    -
    3850  {
    -
    3851  1991 /*fromYear*/,
    -
    3852  1991 /*toYear*/,
    -
    3853  10 /*inMonth*/,
    -
    3854  0 /*onDayOfWeek*/,
    -
    3855  20 /*onDayOfMonth*/,
    -
    3856  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3857  0 /*atTimeCode (0/15)*/,
    -
    3858  60 /*deltaMinutes*/,
    -
    3859  0 /*letterIndex ("")*/,
    -
    3860  },
    -
    3861  // Rule Brazil 1992 only - Feb 9 0:00 0 -
    -
    3862  {
    -
    3863  1992 /*fromYear*/,
    -
    3864  1992 /*toYear*/,
    -
    3865  2 /*inMonth*/,
    -
    3866  0 /*onDayOfWeek*/,
    -
    3867  9 /*onDayOfMonth*/,
    -
    3868  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3869  0 /*atTimeCode (0/15)*/,
    -
    3870  0 /*deltaMinutes*/,
    -
    3871  0 /*letterIndex ("")*/,
    -
    3872  },
    -
    3873  // Rule Brazil 1992 only - Oct 25 0:00 1:00 -
    -
    3874  {
    -
    3875  1992 /*fromYear*/,
    -
    3876  1992 /*toYear*/,
    -
    3877  10 /*inMonth*/,
    -
    3878  0 /*onDayOfWeek*/,
    -
    3879  25 /*onDayOfMonth*/,
    -
    3880  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3881  0 /*atTimeCode (0/15)*/,
    -
    3882  60 /*deltaMinutes*/,
    -
    3883  0 /*letterIndex ("")*/,
    -
    3884  },
    -
    3885  // Rule Brazil 1993 only - Jan 31 0:00 0 -
    -
    3886  {
    -
    3887  1993 /*fromYear*/,
    -
    3888  1993 /*toYear*/,
    -
    3889  1 /*inMonth*/,
    -
    3890  0 /*onDayOfWeek*/,
    -
    3891  31 /*onDayOfMonth*/,
    -
    3892  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3893  0 /*atTimeCode (0/15)*/,
    -
    3894  0 /*deltaMinutes*/,
    -
    3895  0 /*letterIndex ("")*/,
    -
    3896  },
    -
    3897  // Rule Brazil 1993 1995 - Oct Sun>=11 0:00 1:00 -
    -
    3898  {
    -
    3899  1993 /*fromYear*/,
    -
    3900  1995 /*toYear*/,
    -
    3901  10 /*inMonth*/,
    -
    3902  7 /*onDayOfWeek*/,
    -
    3903  11 /*onDayOfMonth*/,
    -
    3904  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3905  0 /*atTimeCode (0/15)*/,
    -
    3906  60 /*deltaMinutes*/,
    -
    3907  0 /*letterIndex ("")*/,
    -
    3908  },
    -
    3909  // Rule Brazil 1994 1995 - Feb Sun>=15 0:00 0 -
    -
    3910  {
    -
    3911  1994 /*fromYear*/,
    -
    3912  1995 /*toYear*/,
    -
    3913  2 /*inMonth*/,
    -
    3914  7 /*onDayOfWeek*/,
    -
    3915  15 /*onDayOfMonth*/,
    -
    3916  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3917  0 /*atTimeCode (0/15)*/,
    -
    3918  0 /*deltaMinutes*/,
    -
    3919  0 /*letterIndex ("")*/,
    -
    3920  },
    -
    3921  // Rule Brazil 1996 only - Feb 11 0:00 0 -
    -
    3922  {
    -
    3923  1996 /*fromYear*/,
    -
    3924  1996 /*toYear*/,
    -
    3925  2 /*inMonth*/,
    -
    3926  0 /*onDayOfWeek*/,
    -
    3927  11 /*onDayOfMonth*/,
    -
    3928  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3929  0 /*atTimeCode (0/15)*/,
    -
    3930  0 /*deltaMinutes*/,
    -
    3931  0 /*letterIndex ("")*/,
    -
    3932  },
    -
    3933  // Rule Brazil 1996 only - Oct 6 0:00 1:00 -
    -
    3934  {
    -
    3935  1996 /*fromYear*/,
    -
    3936  1996 /*toYear*/,
    -
    3937  10 /*inMonth*/,
    -
    3938  0 /*onDayOfWeek*/,
    -
    3939  6 /*onDayOfMonth*/,
    -
    3940  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3941  0 /*atTimeCode (0/15)*/,
    -
    3942  60 /*deltaMinutes*/,
    -
    3943  0 /*letterIndex ("")*/,
    -
    3944  },
    -
    3945  // Rule Brazil 1997 only - Feb 16 0:00 0 -
    -
    3946  {
    -
    3947  1997 /*fromYear*/,
    -
    3948  1997 /*toYear*/,
    -
    3949  2 /*inMonth*/,
    -
    3950  0 /*onDayOfWeek*/,
    -
    3951  16 /*onDayOfMonth*/,
    -
    3952  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3953  0 /*atTimeCode (0/15)*/,
    -
    3954  0 /*deltaMinutes*/,
    -
    3955  0 /*letterIndex ("")*/,
    -
    3956  },
    -
    3957  // Rule Brazil 1997 only - Oct 6 0:00 1:00 -
    -
    3958  {
    -
    3959  1997 /*fromYear*/,
    -
    3960  1997 /*toYear*/,
    -
    3961  10 /*inMonth*/,
    -
    3962  0 /*onDayOfWeek*/,
    -
    3963  6 /*onDayOfMonth*/,
    -
    3964  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3965  0 /*atTimeCode (0/15)*/,
    -
    3966  60 /*deltaMinutes*/,
    -
    3967  0 /*letterIndex ("")*/,
    -
    3968  },
    -
    3969  // Rule Brazil 1998 only - Mar 1 0:00 0 -
    -
    3970  {
    -
    3971  1998 /*fromYear*/,
    -
    3972  1998 /*toYear*/,
    -
    3973  3 /*inMonth*/,
    -
    3974  0 /*onDayOfWeek*/,
    -
    3975  1 /*onDayOfMonth*/,
    -
    3976  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3977  0 /*atTimeCode (0/15)*/,
    -
    3978  0 /*deltaMinutes*/,
    -
    3979  0 /*letterIndex ("")*/,
    -
    3980  },
    -
    3981  // Rule Brazil 1998 only - Oct 11 0:00 1:00 -
    -
    3982  {
    -
    3983  1998 /*fromYear*/,
    -
    3984  1998 /*toYear*/,
    -
    3985  10 /*inMonth*/,
    -
    3986  0 /*onDayOfWeek*/,
    -
    3987  11 /*onDayOfMonth*/,
    -
    3988  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    3989  0 /*atTimeCode (0/15)*/,
    -
    3990  60 /*deltaMinutes*/,
    -
    3991  0 /*letterIndex ("")*/,
    -
    3992  },
    -
    3993  // Rule Brazil 1999 only - Feb 21 0:00 0 -
    -
    3994  {
    -
    3995  1999 /*fromYear*/,
    -
    3996  1999 /*toYear*/,
    -
    3997  2 /*inMonth*/,
    -
    3998  0 /*onDayOfWeek*/,
    -
    3999  21 /*onDayOfMonth*/,
    -
    4000  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4001  0 /*atTimeCode (0/15)*/,
    -
    4002  0 /*deltaMinutes*/,
    -
    4003  0 /*letterIndex ("")*/,
    -
    4004  },
    -
    4005  // Rule Brazil 1999 only - Oct 3 0:00 1:00 -
    -
    4006  {
    -
    4007  1999 /*fromYear*/,
    -
    4008  1999 /*toYear*/,
    -
    4009  10 /*inMonth*/,
    -
    4010  0 /*onDayOfWeek*/,
    -
    4011  3 /*onDayOfMonth*/,
    -
    4012  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4013  0 /*atTimeCode (0/15)*/,
    -
    4014  60 /*deltaMinutes*/,
    -
    4015  0 /*letterIndex ("")*/,
    -
    4016  },
    -
    4017  // Rule Brazil 2000 only - Feb 27 0:00 0 -
    -
    4018  {
    -
    4019  2000 /*fromYear*/,
    -
    4020  2000 /*toYear*/,
    -
    4021  2 /*inMonth*/,
    -
    4022  0 /*onDayOfWeek*/,
    -
    4023  27 /*onDayOfMonth*/,
    -
    4024  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4025  0 /*atTimeCode (0/15)*/,
    -
    4026  0 /*deltaMinutes*/,
    -
    4027  0 /*letterIndex ("")*/,
    -
    4028  },
    -
    4029  // Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 -
    -
    4030  {
    -
    4031  2000 /*fromYear*/,
    -
    4032  2001 /*toYear*/,
    -
    4033  10 /*inMonth*/,
    -
    4034  7 /*onDayOfWeek*/,
    -
    4035  8 /*onDayOfMonth*/,
    -
    4036  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4037  0 /*atTimeCode (0/15)*/,
    -
    4038  60 /*deltaMinutes*/,
    -
    4039  0 /*letterIndex ("")*/,
    -
    4040  },
    -
    4041  // Rule Brazil 2001 2006 - Feb Sun>=15 0:00 0 -
    -
    4042  {
    -
    4043  2001 /*fromYear*/,
    -
    4044  2006 /*toYear*/,
    -
    4045  2 /*inMonth*/,
    -
    4046  7 /*onDayOfWeek*/,
    -
    4047  15 /*onDayOfMonth*/,
    -
    4048  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4049  0 /*atTimeCode (0/15)*/,
    -
    4050  0 /*deltaMinutes*/,
    -
    4051  0 /*letterIndex ("")*/,
    -
    4052  },
    -
    4053  // Rule Brazil 2002 only - Nov 3 0:00 1:00 -
    -
    4054  {
    -
    4055  2002 /*fromYear*/,
    -
    4056  2002 /*toYear*/,
    -
    4057  11 /*inMonth*/,
    -
    4058  0 /*onDayOfWeek*/,
    -
    4059  3 /*onDayOfMonth*/,
    -
    4060  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4061  0 /*atTimeCode (0/15)*/,
    -
    4062  60 /*deltaMinutes*/,
    -
    4063  0 /*letterIndex ("")*/,
    -
    4064  },
    -
    4065  // Rule Brazil 2003 only - Oct 19 0:00 1:00 -
    -
    4066  {
    -
    4067  2003 /*fromYear*/,
    -
    4068  2003 /*toYear*/,
    -
    4069  10 /*inMonth*/,
    -
    4070  0 /*onDayOfWeek*/,
    -
    4071  19 /*onDayOfMonth*/,
    -
    4072  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4073  0 /*atTimeCode (0/15)*/,
    -
    4074  60 /*deltaMinutes*/,
    -
    4075  0 /*letterIndex ("")*/,
    -
    4076  },
    -
    4077  // Rule Brazil 2004 only - Nov 2 0:00 1:00 -
    -
    4078  {
    -
    4079  2004 /*fromYear*/,
    -
    4080  2004 /*toYear*/,
    -
    4081  11 /*inMonth*/,
    -
    4082  0 /*onDayOfWeek*/,
    -
    4083  2 /*onDayOfMonth*/,
    -
    4084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4085  0 /*atTimeCode (0/15)*/,
    -
    4086  60 /*deltaMinutes*/,
    -
    4087  0 /*letterIndex ("")*/,
    -
    4088  },
    -
    4089  // Rule Brazil 2005 only - Oct 16 0:00 1:00 -
    -
    4090  {
    -
    4091  2005 /*fromYear*/,
    -
    4092  2005 /*toYear*/,
    -
    4093  10 /*inMonth*/,
    -
    4094  0 /*onDayOfWeek*/,
    -
    4095  16 /*onDayOfMonth*/,
    -
    4096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4097  0 /*atTimeCode (0/15)*/,
    -
    4098  60 /*deltaMinutes*/,
    -
    4099  0 /*letterIndex ("")*/,
    -
    4100  },
    -
    4101  // Rule Brazil 2006 only - Nov 5 0:00 1:00 -
    -
    4102  {
    -
    4103  2006 /*fromYear*/,
    -
    4104  2006 /*toYear*/,
    -
    4105  11 /*inMonth*/,
    -
    4106  0 /*onDayOfWeek*/,
    -
    4107  5 /*onDayOfMonth*/,
    -
    4108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4109  0 /*atTimeCode (0/15)*/,
    -
    4110  60 /*deltaMinutes*/,
    -
    4111  0 /*letterIndex ("")*/,
    -
    4112  },
    -
    4113  // Rule Brazil 2007 only - Feb 25 0:00 0 -
    -
    4114  {
    -
    4115  2007 /*fromYear*/,
    -
    4116  2007 /*toYear*/,
    -
    4117  2 /*inMonth*/,
    -
    4118  0 /*onDayOfWeek*/,
    -
    4119  25 /*onDayOfMonth*/,
    -
    4120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4121  0 /*atTimeCode (0/15)*/,
    -
    4122  0 /*deltaMinutes*/,
    -
    4123  0 /*letterIndex ("")*/,
    -
    4124  },
    -
    4125  // Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 -
    -
    4126  {
    -
    4127  2007 /*fromYear*/,
    -
    4128  2007 /*toYear*/,
    -
    4129  10 /*inMonth*/,
    -
    4130  7 /*onDayOfWeek*/,
    -
    4131  8 /*onDayOfMonth*/,
    -
    4132  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4133  0 /*atTimeCode (0/15)*/,
    -
    4134  60 /*deltaMinutes*/,
    -
    4135  0 /*letterIndex ("")*/,
    -
    4136  },
    -
    4137  // Rule Brazil 2008 2017 - Oct Sun>=15 0:00 1:00 -
    -
    4138  {
    -
    4139  2008 /*fromYear*/,
    -
    4140  2017 /*toYear*/,
    -
    4141  10 /*inMonth*/,
    -
    4142  7 /*onDayOfWeek*/,
    -
    4143  15 /*onDayOfMonth*/,
    -
    4144  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4145  0 /*atTimeCode (0/15)*/,
    -
    4146  60 /*deltaMinutes*/,
    -
    4147  0 /*letterIndex ("")*/,
    -
    4148  },
    -
    4149  // Rule Brazil 2008 2011 - Feb Sun>=15 0:00 0 -
    -
    4150  {
    -
    4151  2008 /*fromYear*/,
    -
    4152  2011 /*toYear*/,
    -
    4153  2 /*inMonth*/,
    -
    4154  7 /*onDayOfWeek*/,
    -
    4155  15 /*onDayOfMonth*/,
    -
    4156  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4157  0 /*atTimeCode (0/15)*/,
    -
    4158  0 /*deltaMinutes*/,
    -
    4159  0 /*letterIndex ("")*/,
    -
    4160  },
    -
    4161  // Rule Brazil 2012 only - Feb Sun>=22 0:00 0 -
    -
    4162  {
    -
    4163  2012 /*fromYear*/,
    -
    4164  2012 /*toYear*/,
    -
    4165  2 /*inMonth*/,
    -
    4166  7 /*onDayOfWeek*/,
    -
    4167  22 /*onDayOfMonth*/,
    -
    4168  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4169  0 /*atTimeCode (0/15)*/,
    -
    4170  0 /*deltaMinutes*/,
    -
    4171  0 /*letterIndex ("")*/,
    -
    4172  },
    -
    4173  // Rule Brazil 2013 2014 - Feb Sun>=15 0:00 0 -
    -
    4174  {
    -
    4175  2013 /*fromYear*/,
    -
    4176  2014 /*toYear*/,
    -
    4177  2 /*inMonth*/,
    -
    4178  7 /*onDayOfWeek*/,
    -
    4179  15 /*onDayOfMonth*/,
    -
    4180  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4181  0 /*atTimeCode (0/15)*/,
    -
    4182  0 /*deltaMinutes*/,
    -
    4183  0 /*letterIndex ("")*/,
    -
    4184  },
    -
    4185  // Rule Brazil 2015 only - Feb Sun>=22 0:00 0 -
    -
    4186  {
    -
    4187  2015 /*fromYear*/,
    -
    4188  2015 /*toYear*/,
    -
    4189  2 /*inMonth*/,
    -
    4190  7 /*onDayOfWeek*/,
    -
    4191  22 /*onDayOfMonth*/,
    -
    4192  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4193  0 /*atTimeCode (0/15)*/,
    -
    4194  0 /*deltaMinutes*/,
    -
    4195  0 /*letterIndex ("")*/,
    -
    4196  },
    -
    4197  // Rule Brazil 2016 2019 - Feb Sun>=15 0:00 0 -
    -
    4198  {
    -
    4199  2016 /*fromYear*/,
    -
    4200  2019 /*toYear*/,
    -
    4201  2 /*inMonth*/,
    -
    4202  7 /*onDayOfWeek*/,
    -
    4203  15 /*onDayOfMonth*/,
    -
    4204  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4205  0 /*atTimeCode (0/15)*/,
    -
    4206  0 /*deltaMinutes*/,
    -
    4207  0 /*letterIndex ("")*/,
    -
    4208  },
    -
    4209  // Rule Brazil 2018 only - Nov Sun>=1 0:00 1:00 -
    -
    4210  {
    -
    4211  2018 /*fromYear*/,
    -
    4212  2018 /*toYear*/,
    -
    4213  11 /*inMonth*/,
    -
    4214  7 /*onDayOfWeek*/,
    -
    4215  1 /*onDayOfMonth*/,
    -
    4216  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4217  0 /*atTimeCode (0/15)*/,
    -
    4218  60 /*deltaMinutes*/,
    -
    4219  0 /*letterIndex ("")*/,
    -
    4220  },
    -
    4221 
    -
    4222 };
    -
    4223 
    -
    4224 const complete::Info::ZonePolicy kZonePolicyBrazil ACE_TIME_PROGMEM = {
    -
    4225  kZoneRulesBrazil /*rules*/,
    -
    4226  58 /*numRules*/,
    -
    4227 };
    -
    4228 
    -
    4229 //---------------------------------------------------------------------------
    -
    4230 // Policy name: Bulg
    -
    4231 // Rules: 6
    -
    4232 //---------------------------------------------------------------------------
    -
    4233 
    -
    4234 static const complete::Info::ZoneRule kZoneRulesBulg[] ACE_TIME_PROGMEM = {
    -
    4235  // Anchor: Rule Bulg 1979 only - Oct 1 1:00 0 -
    -
    4236  {
    -
    4237  -32767 /*fromYear*/,
    -
    4238  -32767 /*toYear*/,
    -
    4239  1 /*inMonth*/,
    -
    4240  0 /*onDayOfWeek*/,
    -
    4241  1 /*onDayOfMonth*/,
    -
    4242  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4243  0 /*atTimeCode (0/15)*/,
    -
    4244  0 /*deltaMinutes*/,
    -
    4245  0 /*letterIndex ("")*/,
    -
    4246  },
    -
    4247  // Rule Bulg 1979 only - Mar 31 23:00 1:00 S
    -
    4248  {
    -
    4249  1979 /*fromYear*/,
    -
    4250  1979 /*toYear*/,
    -
    4251  3 /*inMonth*/,
    -
    4252  0 /*onDayOfWeek*/,
    -
    4253  31 /*onDayOfMonth*/,
    -
    4254  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4255  5520 /*atTimeCode (82800/15)*/,
    -
    4256  60 /*deltaMinutes*/,
    -
    4257  25 /*letterIndex ("S")*/,
    -
    4258  },
    -
    4259  // Rule Bulg 1979 only - Oct 1 1:00 0 -
    -
    4260  {
    -
    4261  1979 /*fromYear*/,
    -
    4262  1979 /*toYear*/,
    -
    4263  10 /*inMonth*/,
    -
    4264  0 /*onDayOfWeek*/,
    -
    4265  1 /*onDayOfMonth*/,
    -
    4266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4267  240 /*atTimeCode (3600/15)*/,
    -
    4268  0 /*deltaMinutes*/,
    -
    4269  0 /*letterIndex ("")*/,
    -
    4270  },
    -
    4271  // Rule Bulg 1980 1982 - Apr Sat>=1 23:00 1:00 S
    -
    4272  {
    -
    4273  1980 /*fromYear*/,
    -
    4274  1982 /*toYear*/,
    -
    4275  4 /*inMonth*/,
    -
    4276  6 /*onDayOfWeek*/,
    -
    4277  1 /*onDayOfMonth*/,
    -
    4278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4279  5520 /*atTimeCode (82800/15)*/,
    -
    4280  60 /*deltaMinutes*/,
    -
    4281  25 /*letterIndex ("S")*/,
    -
    4282  },
    -
    4283  // Rule Bulg 1980 only - Sep 29 1:00 0 -
    -
    4284  {
    -
    4285  1980 /*fromYear*/,
    -
    4286  1980 /*toYear*/,
    -
    4287  9 /*inMonth*/,
    -
    4288  0 /*onDayOfWeek*/,
    -
    4289  29 /*onDayOfMonth*/,
    -
    4290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4291  240 /*atTimeCode (3600/15)*/,
    -
    4292  0 /*deltaMinutes*/,
    -
    4293  0 /*letterIndex ("")*/,
    -
    4294  },
    -
    4295  // Rule Bulg 1981 only - Sep 27 2:00 0 -
    -
    4296  {
    -
    4297  1981 /*fromYear*/,
    -
    4298  1981 /*toYear*/,
    -
    4299  9 /*inMonth*/,
    -
    4300  0 /*onDayOfWeek*/,
    -
    4301  27 /*onDayOfMonth*/,
    -
    4302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4303  480 /*atTimeCode (7200/15)*/,
    -
    4304  0 /*deltaMinutes*/,
    -
    4305  0 /*letterIndex ("")*/,
    -
    4306  },
    -
    4307 
    -
    4308 };
    -
    4309 
    -
    4310 const complete::Info::ZonePolicy kZonePolicyBulg ACE_TIME_PROGMEM = {
    -
    4311  kZoneRulesBulg /*rules*/,
    -
    4312  6 /*numRules*/,
    -
    4313 };
    -
    4314 
    -
    4315 //---------------------------------------------------------------------------
    -
    4316 // Policy name: C-Eur
    -
    4317 // Rules: 18
    -
    4318 //---------------------------------------------------------------------------
    -
    4319 
    -
    4320 static const complete::Info::ZoneRule kZoneRulesC_Eur[] ACE_TIME_PROGMEM = {
    -
    4321  // Anchor: Rule C-Eur 1916 only - Oct 1 1:00 0 -
    -
    4322  {
    -
    4323  -32767 /*fromYear*/,
    -
    4324  -32767 /*toYear*/,
    -
    4325  1 /*inMonth*/,
    -
    4326  0 /*onDayOfWeek*/,
    -
    4327  1 /*onDayOfMonth*/,
    -
    4328  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4329  0 /*atTimeCode (0/15)*/,
    -
    4330  0 /*deltaMinutes*/,
    -
    4331  0 /*letterIndex ("")*/,
    -
    4332  },
    -
    4333  // Rule C-Eur 1916 only - Apr 30 23:00 1:00 S
    -
    4334  {
    -
    4335  1916 /*fromYear*/,
    -
    4336  1916 /*toYear*/,
    -
    4337  4 /*inMonth*/,
    -
    4338  0 /*onDayOfWeek*/,
    -
    4339  30 /*onDayOfMonth*/,
    -
    4340  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4341  5520 /*atTimeCode (82800/15)*/,
    -
    4342  60 /*deltaMinutes*/,
    -
    4343  25 /*letterIndex ("S")*/,
    -
    4344  },
    -
    4345  // Rule C-Eur 1916 only - Oct 1 1:00 0 -
    -
    4346  {
    -
    4347  1916 /*fromYear*/,
    -
    4348  1916 /*toYear*/,
    -
    4349  10 /*inMonth*/,
    -
    4350  0 /*onDayOfWeek*/,
    -
    4351  1 /*onDayOfMonth*/,
    -
    4352  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4353  240 /*atTimeCode (3600/15)*/,
    -
    4354  0 /*deltaMinutes*/,
    -
    4355  0 /*letterIndex ("")*/,
    -
    4356  },
    -
    4357  // Rule C-Eur 1917 1918 - Apr Mon>=15 2:00s 1:00 S
    -
    4358  {
    -
    4359  1917 /*fromYear*/,
    -
    4360  1918 /*toYear*/,
    -
    4361  4 /*inMonth*/,
    -
    4362  1 /*onDayOfWeek*/,
    -
    4363  15 /*onDayOfMonth*/,
    -
    4364  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4365  480 /*atTimeCode (7200/15)*/,
    -
    4366  60 /*deltaMinutes*/,
    -
    4367  25 /*letterIndex ("S")*/,
    -
    4368  },
    -
    4369  // Rule C-Eur 1917 1918 - Sep Mon>=15 2:00s 0 -
    -
    4370  {
    -
    4371  1917 /*fromYear*/,
    -
    4372  1918 /*toYear*/,
    -
    4373  9 /*inMonth*/,
    -
    4374  1 /*onDayOfWeek*/,
    -
    4375  15 /*onDayOfMonth*/,
    -
    4376  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4377  480 /*atTimeCode (7200/15)*/,
    -
    4378  0 /*deltaMinutes*/,
    -
    4379  0 /*letterIndex ("")*/,
    -
    4380  },
    -
    4381  // Rule C-Eur 1940 only - Apr 1 2:00s 1:00 S
    -
    4382  {
    -
    4383  1940 /*fromYear*/,
    -
    4384  1940 /*toYear*/,
    -
    4385  4 /*inMonth*/,
    -
    4386  0 /*onDayOfWeek*/,
    -
    4387  1 /*onDayOfMonth*/,
    -
    4388  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4389  480 /*atTimeCode (7200/15)*/,
    -
    4390  60 /*deltaMinutes*/,
    -
    4391  25 /*letterIndex ("S")*/,
    -
    4392  },
    -
    4393  // Rule C-Eur 1942 only - Nov 2 2:00s 0 -
    -
    4394  {
    -
    4395  1942 /*fromYear*/,
    -
    4396  1942 /*toYear*/,
    -
    4397  11 /*inMonth*/,
    -
    4398  0 /*onDayOfWeek*/,
    -
    4399  2 /*onDayOfMonth*/,
    -
    4400  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4401  480 /*atTimeCode (7200/15)*/,
    -
    4402  0 /*deltaMinutes*/,
    -
    4403  0 /*letterIndex ("")*/,
    -
    4404  },
    -
    4405  // Rule C-Eur 1943 only - Mar 29 2:00s 1:00 S
    -
    4406  {
    -
    4407  1943 /*fromYear*/,
    -
    4408  1943 /*toYear*/,
    -
    4409  3 /*inMonth*/,
    -
    4410  0 /*onDayOfWeek*/,
    -
    4411  29 /*onDayOfMonth*/,
    -
    4412  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4413  480 /*atTimeCode (7200/15)*/,
    -
    4414  60 /*deltaMinutes*/,
    -
    4415  25 /*letterIndex ("S")*/,
    -
    4416  },
    -
    4417  // Rule C-Eur 1943 only - Oct 4 2:00s 0 -
    -
    4418  {
    -
    4419  1943 /*fromYear*/,
    -
    4420  1943 /*toYear*/,
    -
    4421  10 /*inMonth*/,
    -
    4422  0 /*onDayOfWeek*/,
    -
    4423  4 /*onDayOfMonth*/,
    -
    4424  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4425  480 /*atTimeCode (7200/15)*/,
    -
    4426  0 /*deltaMinutes*/,
    -
    4427  0 /*letterIndex ("")*/,
    -
    4428  },
    -
    4429  // Rule C-Eur 1944 1945 - Apr Mon>=1 2:00s 1:00 S
    -
    4430  {
    -
    4431  1944 /*fromYear*/,
    -
    4432  1945 /*toYear*/,
    -
    4433  4 /*inMonth*/,
    -
    4434  1 /*onDayOfWeek*/,
    -
    4435  1 /*onDayOfMonth*/,
    -
    4436  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4437  480 /*atTimeCode (7200/15)*/,
    -
    4438  60 /*deltaMinutes*/,
    -
    4439  25 /*letterIndex ("S")*/,
    -
    4440  },
    -
    4441  // Rule C-Eur 1944 only - Oct 2 2:00s 0 -
    -
    4442  {
    -
    4443  1944 /*fromYear*/,
    -
    4444  1944 /*toYear*/,
    -
    4445  10 /*inMonth*/,
    -
    4446  0 /*onDayOfWeek*/,
    -
    4447  2 /*onDayOfMonth*/,
    -
    4448  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4449  480 /*atTimeCode (7200/15)*/,
    -
    4450  0 /*deltaMinutes*/,
    -
    4451  0 /*letterIndex ("")*/,
    -
    4452  },
    -
    4453  // Rule C-Eur 1945 only - Sep 16 2:00s 0 -
    -
    4454  {
    -
    4455  1945 /*fromYear*/,
    -
    4456  1945 /*toYear*/,
    -
    4457  9 /*inMonth*/,
    -
    4458  0 /*onDayOfWeek*/,
    -
    4459  16 /*onDayOfMonth*/,
    -
    4460  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4461  480 /*atTimeCode (7200/15)*/,
    -
    4462  0 /*deltaMinutes*/,
    -
    4463  0 /*letterIndex ("")*/,
    -
    4464  },
    -
    4465  // Rule C-Eur 1977 1980 - Apr Sun>=1 2:00s 1:00 S
    -
    4466  {
    -
    4467  1977 /*fromYear*/,
    -
    4468  1980 /*toYear*/,
    -
    4469  4 /*inMonth*/,
    -
    4470  7 /*onDayOfWeek*/,
    -
    4471  1 /*onDayOfMonth*/,
    -
    4472  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4473  480 /*atTimeCode (7200/15)*/,
    -
    4474  60 /*deltaMinutes*/,
    -
    4475  25 /*letterIndex ("S")*/,
    -
    4476  },
    -
    4477  // Rule C-Eur 1977 only - Sep lastSun 2:00s 0 -
    -
    4478  {
    -
    4479  1977 /*fromYear*/,
    -
    4480  1977 /*toYear*/,
    -
    4481  9 /*inMonth*/,
    -
    4482  7 /*onDayOfWeek*/,
    -
    4483  0 /*onDayOfMonth*/,
    -
    4484  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4485  480 /*atTimeCode (7200/15)*/,
    -
    4486  0 /*deltaMinutes*/,
    -
    4487  0 /*letterIndex ("")*/,
    -
    4488  },
    -
    4489  // Rule C-Eur 1978 only - Oct 1 2:00s 0 -
    -
    4490  {
    -
    4491  1978 /*fromYear*/,
    -
    4492  1978 /*toYear*/,
    -
    4493  10 /*inMonth*/,
    -
    4494  0 /*onDayOfWeek*/,
    -
    4495  1 /*onDayOfMonth*/,
    -
    4496  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4497  480 /*atTimeCode (7200/15)*/,
    -
    4498  0 /*deltaMinutes*/,
    -
    4499  0 /*letterIndex ("")*/,
    -
    4500  },
    -
    4501  // Rule C-Eur 1979 1995 - Sep lastSun 2:00s 0 -
    -
    4502  {
    -
    4503  1979 /*fromYear*/,
    -
    4504  1995 /*toYear*/,
    -
    4505  9 /*inMonth*/,
    -
    4506  7 /*onDayOfWeek*/,
    -
    4507  0 /*onDayOfMonth*/,
    -
    4508  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4509  480 /*atTimeCode (7200/15)*/,
    -
    4510  0 /*deltaMinutes*/,
    -
    4511  0 /*letterIndex ("")*/,
    -
    4512  },
    -
    4513  // Rule C-Eur 1981 max - Mar lastSun 2:00s 1:00 S
    -
    4514  {
    -
    4515  1981 /*fromYear*/,
    -
    4516  32766 /*toYear*/,
    -
    4517  3 /*inMonth*/,
    -
    4518  7 /*onDayOfWeek*/,
    -
    4519  0 /*onDayOfMonth*/,
    -
    4520  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4521  480 /*atTimeCode (7200/15)*/,
    -
    4522  60 /*deltaMinutes*/,
    -
    4523  25 /*letterIndex ("S")*/,
    -
    4524  },
    -
    4525  // Rule C-Eur 1996 max - Oct lastSun 2:00s 0 -
    -
    4526  {
    -
    4527  1996 /*fromYear*/,
    -
    4528  32766 /*toYear*/,
    -
    4529  10 /*inMonth*/,
    -
    4530  7 /*onDayOfWeek*/,
    -
    4531  0 /*onDayOfMonth*/,
    -
    4532  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4533  480 /*atTimeCode (7200/15)*/,
    -
    4534  0 /*deltaMinutes*/,
    -
    4535  0 /*letterIndex ("")*/,
    -
    4536  },
    -
    4537 
    -
    4538 };
    -
    4539 
    -
    4540 const complete::Info::ZonePolicy kZonePolicyC_Eur ACE_TIME_PROGMEM = {
    -
    4541  kZoneRulesC_Eur /*rules*/,
    -
    4542  18 /*numRules*/,
    -
    4543 };
    -
    4544 
    -
    4545 //---------------------------------------------------------------------------
    -
    4546 // Policy name: CA
    -
    4547 // Rules: 6
    -
    4548 //---------------------------------------------------------------------------
    -
    4549 
    -
    4550 static const complete::Info::ZoneRule kZoneRulesCA[] ACE_TIME_PROGMEM = {
    -
    4551  // Anchor: Rule CA 1949 only - Jan 1 2:00 0 S
    -
    4552  {
    -
    4553  -32767 /*fromYear*/,
    -
    4554  -32767 /*toYear*/,
    -
    4555  1 /*inMonth*/,
    -
    4556  0 /*onDayOfWeek*/,
    -
    4557  1 /*onDayOfMonth*/,
    -
    4558  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4559  0 /*atTimeCode (0/15)*/,
    -
    4560  0 /*deltaMinutes*/,
    -
    4561  25 /*letterIndex ("S")*/,
    -
    4562  },
    -
    4563  // Rule CA 1948 only - Mar 14 2:01 1:00 D
    -
    4564  {
    -
    4565  1948 /*fromYear*/,
    -
    4566  1948 /*toYear*/,
    -
    4567  3 /*inMonth*/,
    -
    4568  0 /*onDayOfWeek*/,
    -
    4569  14 /*onDayOfMonth*/,
    -
    4570  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4571  484 /*atTimeCode (7260/15)*/,
    -
    4572  60 /*deltaMinutes*/,
    -
    4573  13 /*letterIndex ("D")*/,
    -
    4574  },
    -
    4575  // Rule CA 1949 only - Jan 1 2:00 0 S
    -
    4576  {
    -
    4577  1949 /*fromYear*/,
    -
    4578  1949 /*toYear*/,
    -
    4579  1 /*inMonth*/,
    -
    4580  0 /*onDayOfWeek*/,
    -
    4581  1 /*onDayOfMonth*/,
    -
    4582  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4583  480 /*atTimeCode (7200/15)*/,
    -
    4584  0 /*deltaMinutes*/,
    -
    4585  25 /*letterIndex ("S")*/,
    -
    4586  },
    -
    4587  // Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D
    -
    4588  {
    -
    4589  1950 /*fromYear*/,
    -
    4590  1966 /*toYear*/,
    -
    4591  4 /*inMonth*/,
    -
    4592  7 /*onDayOfWeek*/,
    -
    4593  0 /*onDayOfMonth*/,
    -
    4594  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4595  240 /*atTimeCode (3600/15)*/,
    -
    4596  60 /*deltaMinutes*/,
    -
    4597  13 /*letterIndex ("D")*/,
    -
    4598  },
    -
    4599  // Rule CA 1950 1961 - Sep lastSun 2:00 0 S
    -
    4600  {
    -
    4601  1950 /*fromYear*/,
    -
    4602  1961 /*toYear*/,
    -
    4603  9 /*inMonth*/,
    -
    4604  7 /*onDayOfWeek*/,
    -
    4605  0 /*onDayOfMonth*/,
    -
    4606  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4607  480 /*atTimeCode (7200/15)*/,
    -
    4608  0 /*deltaMinutes*/,
    -
    4609  25 /*letterIndex ("S")*/,
    -
    4610  },
    -
    4611  // Rule CA 1962 1966 - Oct lastSun 2:00 0 S
    -
    4612  {
    -
    4613  1962 /*fromYear*/,
    -
    4614  1966 /*toYear*/,
    -
    4615  10 /*inMonth*/,
    -
    4616  7 /*onDayOfWeek*/,
    -
    4617  0 /*onDayOfMonth*/,
    -
    4618  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4619  480 /*atTimeCode (7200/15)*/,
    -
    4620  0 /*deltaMinutes*/,
    -
    4621  25 /*letterIndex ("S")*/,
    -
    4622  },
    -
    4623 
    -
    4624 };
    -
    4625 
    -
    4626 const complete::Info::ZonePolicy kZonePolicyCA ACE_TIME_PROGMEM = {
    -
    4627  kZoneRulesCA /*rules*/,
    -
    4628  6 /*numRules*/,
    -
    4629 };
    -
    4630 
    -
    4631 //---------------------------------------------------------------------------
    -
    4632 // Policy name: CO
    -
    4633 // Rules: 3
    -
    4634 //---------------------------------------------------------------------------
    -
    4635 
    -
    4636 static const complete::Info::ZoneRule kZoneRulesCO[] ACE_TIME_PROGMEM = {
    -
    4637  // Anchor: Rule CO 1993 only - Feb 6 24:00 0 -
    -
    4638  {
    -
    4639  -32767 /*fromYear*/,
    -
    4640  -32767 /*toYear*/,
    -
    4641  1 /*inMonth*/,
    -
    4642  0 /*onDayOfWeek*/,
    -
    4643  1 /*onDayOfMonth*/,
    -
    4644  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4645  0 /*atTimeCode (0/15)*/,
    -
    4646  0 /*deltaMinutes*/,
    -
    4647  0 /*letterIndex ("")*/,
    -
    4648  },
    -
    4649  // Rule CO 1992 only - May 3 0:00 1:00 -
    -
    4650  {
    -
    4651  1992 /*fromYear*/,
    -
    4652  1992 /*toYear*/,
    -
    4653  5 /*inMonth*/,
    -
    4654  0 /*onDayOfWeek*/,
    -
    4655  3 /*onDayOfMonth*/,
    -
    4656  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4657  0 /*atTimeCode (0/15)*/,
    -
    4658  60 /*deltaMinutes*/,
    -
    4659  0 /*letterIndex ("")*/,
    -
    4660  },
    -
    4661  // Rule CO 1993 only - Feb 6 24:00 0 -
    -
    4662  {
    -
    4663  1993 /*fromYear*/,
    -
    4664  1993 /*toYear*/,
    -
    4665  2 /*inMonth*/,
    -
    4666  0 /*onDayOfWeek*/,
    -
    4667  6 /*onDayOfMonth*/,
    -
    4668  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4669  5760 /*atTimeCode (86400/15)*/,
    -
    4670  0 /*deltaMinutes*/,
    -
    4671  0 /*letterIndex ("")*/,
    -
    4672  },
    -
    4673 
    -
    4674 };
    -
    4675 
    -
    4676 const complete::Info::ZonePolicy kZonePolicyCO ACE_TIME_PROGMEM = {
    -
    4677  kZoneRulesCO /*rules*/,
    -
    4678  3 /*numRules*/,
    -
    4679 };
    -
    4680 
    -
    4681 //---------------------------------------------------------------------------
    -
    4682 // Policy name: CR
    -
    4683 // Rules: 6
    -
    4684 //---------------------------------------------------------------------------
    -
    4685 
    -
    4686 static const complete::Info::ZoneRule kZoneRulesCR[] ACE_TIME_PROGMEM = {
    -
    4687  // Anchor: Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S
    -
    4688  {
    -
    4689  -32767 /*fromYear*/,
    -
    4690  -32767 /*toYear*/,
    -
    4691  1 /*inMonth*/,
    -
    4692  0 /*onDayOfWeek*/,
    -
    4693  1 /*onDayOfMonth*/,
    -
    4694  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4695  0 /*atTimeCode (0/15)*/,
    -
    4696  0 /*deltaMinutes*/,
    -
    4697  25 /*letterIndex ("S")*/,
    -
    4698  },
    -
    4699  // Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D
    -
    4700  {
    -
    4701  1979 /*fromYear*/,
    -
    4702  1980 /*toYear*/,
    -
    4703  2 /*inMonth*/,
    -
    4704  7 /*onDayOfWeek*/,
    -
    4705  0 /*onDayOfMonth*/,
    -
    4706  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4707  0 /*atTimeCode (0/15)*/,
    -
    4708  60 /*deltaMinutes*/,
    -
    4709  13 /*letterIndex ("D")*/,
    -
    4710  },
    -
    4711  // Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S
    -
    4712  {
    -
    4713  1979 /*fromYear*/,
    -
    4714  1980 /*toYear*/,
    -
    4715  6 /*inMonth*/,
    -
    4716  7 /*onDayOfWeek*/,
    -
    4717  1 /*onDayOfMonth*/,
    -
    4718  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4719  0 /*atTimeCode (0/15)*/,
    -
    4720  0 /*deltaMinutes*/,
    -
    4721  25 /*letterIndex ("S")*/,
    -
    4722  },
    -
    4723  // Rule CR 1991 1992 - Jan Sat>=15 0:00 1:00 D
    -
    4724  {
    -
    4725  1991 /*fromYear*/,
    -
    4726  1992 /*toYear*/,
    -
    4727  1 /*inMonth*/,
    -
    4728  6 /*onDayOfWeek*/,
    -
    4729  15 /*onDayOfMonth*/,
    -
    4730  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4731  0 /*atTimeCode (0/15)*/,
    -
    4732  60 /*deltaMinutes*/,
    -
    4733  13 /*letterIndex ("D")*/,
    -
    4734  },
    -
    4735  // Rule CR 1991 only - Jul 1 0:00 0 S
    -
    4736  {
    -
    4737  1991 /*fromYear*/,
    -
    4738  1991 /*toYear*/,
    -
    4739  7 /*inMonth*/,
    -
    4740  0 /*onDayOfWeek*/,
    -
    4741  1 /*onDayOfMonth*/,
    -
    4742  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4743  0 /*atTimeCode (0/15)*/,
    -
    4744  0 /*deltaMinutes*/,
    -
    4745  25 /*letterIndex ("S")*/,
    -
    4746  },
    -
    4747  // Rule CR 1992 only - Mar 15 0:00 0 S
    -
    4748  {
    -
    4749  1992 /*fromYear*/,
    -
    4750  1992 /*toYear*/,
    -
    4751  3 /*inMonth*/,
    -
    4752  0 /*onDayOfWeek*/,
    -
    4753  15 /*onDayOfMonth*/,
    -
    4754  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4755  0 /*atTimeCode (0/15)*/,
    -
    4756  0 /*deltaMinutes*/,
    -
    4757  25 /*letterIndex ("S")*/,
    -
    4758  },
    -
    4759 
    -
    4760 };
    -
    4761 
    -
    4762 const complete::Info::ZonePolicy kZonePolicyCR ACE_TIME_PROGMEM = {
    -
    4763  kZoneRulesCR /*rules*/,
    -
    4764  6 /*numRules*/,
    -
    4765 };
    -
    4766 
    -
    4767 //---------------------------------------------------------------------------
    -
    4768 // Policy name: Canada
    -
    4769 // Rules: 11
    -
    4770 //---------------------------------------------------------------------------
    -
    4771 
    -
    4772 static const complete::Info::ZoneRule kZoneRulesCanada[] ACE_TIME_PROGMEM = {
    -
    4773  // Anchor: Rule Canada 1918 only - Oct 27 2:00 0 S
    -
    4774  {
    -
    4775  -32767 /*fromYear*/,
    -
    4776  -32767 /*toYear*/,
    -
    4777  1 /*inMonth*/,
    -
    4778  0 /*onDayOfWeek*/,
    -
    4779  1 /*onDayOfMonth*/,
    -
    4780  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4781  0 /*atTimeCode (0/15)*/,
    -
    4782  0 /*deltaMinutes*/,
    -
    4783  25 /*letterIndex ("S")*/,
    -
    4784  },
    -
    4785  // Rule Canada 1918 only - Apr 14 2:00 1:00 D
    -
    4786  {
    -
    4787  1918 /*fromYear*/,
    -
    4788  1918 /*toYear*/,
    -
    4789  4 /*inMonth*/,
    -
    4790  0 /*onDayOfWeek*/,
    -
    4791  14 /*onDayOfMonth*/,
    -
    4792  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4793  480 /*atTimeCode (7200/15)*/,
    -
    4794  60 /*deltaMinutes*/,
    -
    4795  13 /*letterIndex ("D")*/,
    -
    4796  },
    -
    4797  // Rule Canada 1918 only - Oct 27 2:00 0 S
    -
    4798  {
    -
    4799  1918 /*fromYear*/,
    -
    4800  1918 /*toYear*/,
    -
    4801  10 /*inMonth*/,
    -
    4802  0 /*onDayOfWeek*/,
    -
    4803  27 /*onDayOfMonth*/,
    -
    4804  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4805  480 /*atTimeCode (7200/15)*/,
    -
    4806  0 /*deltaMinutes*/,
    -
    4807  25 /*letterIndex ("S")*/,
    -
    4808  },
    -
    4809  // Rule Canada 1942 only - Feb 9 2:00 1:00 W
    -
    4810  {
    -
    4811  1942 /*fromYear*/,
    -
    4812  1942 /*toYear*/,
    -
    4813  2 /*inMonth*/,
    -
    4814  0 /*onDayOfWeek*/,
    -
    4815  9 /*onDayOfMonth*/,
    -
    4816  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4817  480 /*atTimeCode (7200/15)*/,
    -
    4818  60 /*deltaMinutes*/,
    -
    4819  26 /*letterIndex ("W")*/,
    -
    4820  },
    -
    4821  // Rule Canada 1945 only - Aug 14 23:00u 1:00 P
    -
    4822  {
    -
    4823  1945 /*fromYear*/,
    -
    4824  1945 /*toYear*/,
    -
    4825  8 /*inMonth*/,
    -
    4826  0 /*onDayOfWeek*/,
    -
    4827  14 /*onDayOfMonth*/,
    -
    4828  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    4829  5520 /*atTimeCode (82800/15)*/,
    -
    4830  60 /*deltaMinutes*/,
    -
    4831  24 /*letterIndex ("P")*/,
    -
    4832  },
    -
    4833  // Rule Canada 1945 only - Sep 30 2:00 0 S
    -
    4834  {
    -
    4835  1945 /*fromYear*/,
    -
    4836  1945 /*toYear*/,
    -
    4837  9 /*inMonth*/,
    -
    4838  0 /*onDayOfWeek*/,
    -
    4839  30 /*onDayOfMonth*/,
    -
    4840  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4841  480 /*atTimeCode (7200/15)*/,
    -
    4842  0 /*deltaMinutes*/,
    -
    4843  25 /*letterIndex ("S")*/,
    -
    4844  },
    -
    4845  // Rule Canada 1974 1986 - Apr lastSun 2:00 1:00 D
    -
    4846  {
    -
    4847  1974 /*fromYear*/,
    -
    4848  1986 /*toYear*/,
    -
    4849  4 /*inMonth*/,
    -
    4850  7 /*onDayOfWeek*/,
    -
    4851  0 /*onDayOfMonth*/,
    -
    4852  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4853  480 /*atTimeCode (7200/15)*/,
    -
    4854  60 /*deltaMinutes*/,
    -
    4855  13 /*letterIndex ("D")*/,
    -
    4856  },
    -
    4857  // Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
    -
    4858  {
    -
    4859  1974 /*fromYear*/,
    -
    4860  2006 /*toYear*/,
    -
    4861  10 /*inMonth*/,
    -
    4862  7 /*onDayOfWeek*/,
    -
    4863  0 /*onDayOfMonth*/,
    -
    4864  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4865  480 /*atTimeCode (7200/15)*/,
    -
    4866  0 /*deltaMinutes*/,
    -
    4867  25 /*letterIndex ("S")*/,
    -
    4868  },
    -
    4869  // Rule Canada 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    4870  {
    -
    4871  1987 /*fromYear*/,
    -
    4872  2006 /*toYear*/,
    -
    4873  4 /*inMonth*/,
    -
    4874  7 /*onDayOfWeek*/,
    -
    4875  1 /*onDayOfMonth*/,
    -
    4876  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4877  480 /*atTimeCode (7200/15)*/,
    -
    4878  60 /*deltaMinutes*/,
    -
    4879  13 /*letterIndex ("D")*/,
    -
    4880  },
    -
    4881  // Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    4882  {
    -
    4883  2007 /*fromYear*/,
    -
    4884  32766 /*toYear*/,
    -
    4885  3 /*inMonth*/,
    -
    4886  7 /*onDayOfWeek*/,
    -
    4887  8 /*onDayOfMonth*/,
    -
    4888  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4889  480 /*atTimeCode (7200/15)*/,
    -
    4890  60 /*deltaMinutes*/,
    -
    4891  13 /*letterIndex ("D")*/,
    -
    4892  },
    -
    4893  // Rule Canada 2007 max - Nov Sun>=1 2:00 0 S
    -
    4894  {
    -
    4895  2007 /*fromYear*/,
    -
    4896  32766 /*toYear*/,
    -
    4897  11 /*inMonth*/,
    -
    4898  7 /*onDayOfWeek*/,
    -
    4899  1 /*onDayOfMonth*/,
    -
    4900  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4901  480 /*atTimeCode (7200/15)*/,
    -
    4902  0 /*deltaMinutes*/,
    -
    4903  25 /*letterIndex ("S")*/,
    -
    4904  },
    -
    4905 
    -
    4906 };
    -
    4907 
    -
    4908 const complete::Info::ZonePolicy kZonePolicyCanada ACE_TIME_PROGMEM = {
    -
    4909  kZoneRulesCanada /*rules*/,
    -
    4910  11 /*numRules*/,
    -
    4911 };
    -
    4912 
    -
    4913 //---------------------------------------------------------------------------
    -
    4914 // Policy name: Chatham
    -
    4915 // Rules: 10
    -
    4916 //---------------------------------------------------------------------------
    -
    4917 
    -
    4918 static const complete::Info::ZoneRule kZoneRulesChatham[] ACE_TIME_PROGMEM = {
    -
    4919  // Anchor: Rule Chatham 1975 only - Feb lastSun 2:45s 0 -
    -
    4920  {
    -
    4921  -32767 /*fromYear*/,
    -
    4922  -32767 /*toYear*/,
    -
    4923  1 /*inMonth*/,
    -
    4924  0 /*onDayOfWeek*/,
    -
    4925  1 /*onDayOfMonth*/,
    -
    4926  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    4927  0 /*atTimeCode (0/15)*/,
    -
    4928  0 /*deltaMinutes*/,
    -
    4929  0 /*letterIndex ("")*/,
    -
    4930  },
    -
    4931  // Rule Chatham 1974 only - Nov Sun>=1 2:45s 1:00 -
    -
    4932  {
    -
    4933  1974 /*fromYear*/,
    -
    4934  1974 /*toYear*/,
    -
    4935  11 /*inMonth*/,
    -
    4936  7 /*onDayOfWeek*/,
    -
    4937  1 /*onDayOfMonth*/,
    -
    4938  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4939  660 /*atTimeCode (9900/15)*/,
    -
    4940  60 /*deltaMinutes*/,
    -
    4941  0 /*letterIndex ("")*/,
    -
    4942  },
    -
    4943  // Rule Chatham 1975 only - Feb lastSun 2:45s 0 -
    -
    4944  {
    -
    4945  1975 /*fromYear*/,
    -
    4946  1975 /*toYear*/,
    -
    4947  2 /*inMonth*/,
    -
    4948  7 /*onDayOfWeek*/,
    -
    4949  0 /*onDayOfMonth*/,
    -
    4950  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4951  660 /*atTimeCode (9900/15)*/,
    -
    4952  0 /*deltaMinutes*/,
    -
    4953  0 /*letterIndex ("")*/,
    -
    4954  },
    -
    4955  // Rule Chatham 1975 1988 - Oct lastSun 2:45s 1:00 -
    -
    4956  {
    -
    4957  1975 /*fromYear*/,
    -
    4958  1988 /*toYear*/,
    -
    4959  10 /*inMonth*/,
    -
    4960  7 /*onDayOfWeek*/,
    -
    4961  0 /*onDayOfMonth*/,
    -
    4962  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4963  660 /*atTimeCode (9900/15)*/,
    -
    4964  60 /*deltaMinutes*/,
    -
    4965  0 /*letterIndex ("")*/,
    -
    4966  },
    -
    4967  // Rule Chatham 1976 1989 - Mar Sun>=1 2:45s 0 -
    -
    4968  {
    -
    4969  1976 /*fromYear*/,
    -
    4970  1989 /*toYear*/,
    -
    4971  3 /*inMonth*/,
    -
    4972  7 /*onDayOfWeek*/,
    -
    4973  1 /*onDayOfMonth*/,
    -
    4974  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4975  660 /*atTimeCode (9900/15)*/,
    -
    4976  0 /*deltaMinutes*/,
    -
    4977  0 /*letterIndex ("")*/,
    -
    4978  },
    -
    4979  // Rule Chatham 1989 only - Oct Sun>=8 2:45s 1:00 -
    -
    4980  {
    -
    4981  1989 /*fromYear*/,
    -
    4982  1989 /*toYear*/,
    -
    4983  10 /*inMonth*/,
    -
    4984  7 /*onDayOfWeek*/,
    -
    4985  8 /*onDayOfMonth*/,
    -
    4986  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4987  660 /*atTimeCode (9900/15)*/,
    -
    4988  60 /*deltaMinutes*/,
    -
    4989  0 /*letterIndex ("")*/,
    -
    4990  },
    -
    4991  // Rule Chatham 1990 2006 - Oct Sun>=1 2:45s 1:00 -
    -
    4992  {
    -
    4993  1990 /*fromYear*/,
    -
    4994  2006 /*toYear*/,
    -
    4995  10 /*inMonth*/,
    -
    4996  7 /*onDayOfWeek*/,
    -
    4997  1 /*onDayOfMonth*/,
    -
    4998  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    4999  660 /*atTimeCode (9900/15)*/,
    -
    5000  60 /*deltaMinutes*/,
    -
    5001  0 /*letterIndex ("")*/,
    -
    5002  },
    -
    5003  // Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 -
    -
    5004  {
    -
    5005  1990 /*fromYear*/,
    -
    5006  2007 /*toYear*/,
    -
    5007  3 /*inMonth*/,
    -
    5008  7 /*onDayOfWeek*/,
    -
    5009  15 /*onDayOfMonth*/,
    -
    5010  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    5011  660 /*atTimeCode (9900/15)*/,
    -
    5012  0 /*deltaMinutes*/,
    -
    5013  0 /*letterIndex ("")*/,
    -
    5014  },
    -
    5015  // Rule Chatham 2007 max - Sep lastSun 2:45s 1:00 -
    -
    5016  {
    -
    5017  2007 /*fromYear*/,
    -
    5018  32766 /*toYear*/,
    -
    5019  9 /*inMonth*/,
    -
    5020  7 /*onDayOfWeek*/,
    -
    5021  0 /*onDayOfMonth*/,
    -
    5022  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    5023  660 /*atTimeCode (9900/15)*/,
    -
    5024  60 /*deltaMinutes*/,
    -
    5025  0 /*letterIndex ("")*/,
    -
    5026  },
    -
    5027  // Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 -
    -
    5028  {
    -
    5029  2008 /*fromYear*/,
    -
    5030  32766 /*toYear*/,
    -
    5031  4 /*inMonth*/,
    -
    5032  7 /*onDayOfWeek*/,
    -
    5033  1 /*onDayOfMonth*/,
    -
    5034  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    5035  660 /*atTimeCode (9900/15)*/,
    -
    5036  0 /*deltaMinutes*/,
    -
    5037  0 /*letterIndex ("")*/,
    -
    5038  },
    -
    5039 
    -
    5040 };
    -
    5041 
    -
    5042 const complete::Info::ZonePolicy kZonePolicyChatham ACE_TIME_PROGMEM = {
    -
    5043  kZoneRulesChatham /*rules*/,
    -
    5044  10 /*numRules*/,
    -
    5045 };
    -
    5046 
    -
    5047 //---------------------------------------------------------------------------
    -
    5048 // Policy name: Chicago
    -
    5049 // Rules: 7
    -
    5050 //---------------------------------------------------------------------------
    -
    5051 
    -
    5052 static const complete::Info::ZoneRule kZoneRulesChicago[] ACE_TIME_PROGMEM = {
    -
    5053  // Anchor: Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S
    -
    5054  {
    -
    5055  -32767 /*fromYear*/,
    -
    5056  -32767 /*toYear*/,
    -
    5057  1 /*inMonth*/,
    -
    5058  0 /*onDayOfWeek*/,
    -
    5059  1 /*onDayOfMonth*/,
    -
    5060  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5061  0 /*atTimeCode (0/15)*/,
    -
    5062  0 /*deltaMinutes*/,
    -
    5063  25 /*letterIndex ("S")*/,
    -
    5064  },
    -
    5065  // Rule Chicago 1920 only - Jun 13 2:00 1:00 D
    -
    5066  {
    -
    5067  1920 /*fromYear*/,
    -
    5068  1920 /*toYear*/,
    -
    5069  6 /*inMonth*/,
    -
    5070  0 /*onDayOfWeek*/,
    -
    5071  13 /*onDayOfMonth*/,
    -
    5072  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5073  480 /*atTimeCode (7200/15)*/,
    -
    5074  60 /*deltaMinutes*/,
    -
    5075  13 /*letterIndex ("D")*/,
    -
    5076  },
    -
    5077  // Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S
    -
    5078  {
    -
    5079  1920 /*fromYear*/,
    -
    5080  1921 /*toYear*/,
    -
    5081  10 /*inMonth*/,
    -
    5082  7 /*onDayOfWeek*/,
    -
    5083  0 /*onDayOfMonth*/,
    -
    5084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5085  480 /*atTimeCode (7200/15)*/,
    -
    5086  0 /*deltaMinutes*/,
    -
    5087  25 /*letterIndex ("S")*/,
    -
    5088  },
    -
    5089  // Rule Chicago 1921 only - Mar lastSun 2:00 1:00 D
    -
    5090  {
    -
    5091  1921 /*fromYear*/,
    -
    5092  1921 /*toYear*/,
    -
    5093  3 /*inMonth*/,
    -
    5094  7 /*onDayOfWeek*/,
    -
    5095  0 /*onDayOfMonth*/,
    -
    5096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5097  480 /*atTimeCode (7200/15)*/,
    -
    5098  60 /*deltaMinutes*/,
    -
    5099  13 /*letterIndex ("D")*/,
    -
    5100  },
    -
    5101  // Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D
    -
    5102  {
    -
    5103  1922 /*fromYear*/,
    -
    5104  1966 /*toYear*/,
    -
    5105  4 /*inMonth*/,
    -
    5106  7 /*onDayOfWeek*/,
    -
    5107  0 /*onDayOfMonth*/,
    -
    5108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5109  480 /*atTimeCode (7200/15)*/,
    -
    5110  60 /*deltaMinutes*/,
    -
    5111  13 /*letterIndex ("D")*/,
    -
    5112  },
    -
    5113  // Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S
    -
    5114  {
    -
    5115  1922 /*fromYear*/,
    -
    5116  1954 /*toYear*/,
    -
    5117  9 /*inMonth*/,
    -
    5118  7 /*onDayOfWeek*/,
    -
    5119  0 /*onDayOfMonth*/,
    -
    5120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5121  480 /*atTimeCode (7200/15)*/,
    -
    5122  0 /*deltaMinutes*/,
    -
    5123  25 /*letterIndex ("S")*/,
    -
    5124  },
    -
    5125  // Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S
    -
    5126  {
    -
    5127  1955 /*fromYear*/,
    -
    5128  1966 /*toYear*/,
    -
    5129  10 /*inMonth*/,
    -
    5130  7 /*onDayOfWeek*/,
    -
    5131  0 /*onDayOfMonth*/,
    -
    5132  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5133  480 /*atTimeCode (7200/15)*/,
    -
    5134  0 /*deltaMinutes*/,
    -
    5135  25 /*letterIndex ("S")*/,
    -
    5136  },
    -
    5137 
    -
    5138 };
    -
    5139 
    -
    5140 const complete::Info::ZonePolicy kZonePolicyChicago ACE_TIME_PROGMEM = {
    -
    5141  kZoneRulesChicago /*rules*/,
    -
    5142  7 /*numRules*/,
    -
    5143 };
    -
    5144 
    -
    5145 //---------------------------------------------------------------------------
    -
    5146 // Policy name: Chile
    -
    5147 // Rules: 37
    -
    5148 //---------------------------------------------------------------------------
    -
    5149 
    -
    5150 static const complete::Info::ZoneRule kZoneRulesChile[] ACE_TIME_PROGMEM = {
    -
    5151  // Anchor: Rule Chile 1928 1932 - Apr 1 0:00 0 -
    -
    5152  {
    -
    5153  -32767 /*fromYear*/,
    -
    5154  -32767 /*toYear*/,
    -
    5155  1 /*inMonth*/,
    -
    5156  0 /*onDayOfWeek*/,
    -
    5157  1 /*onDayOfMonth*/,
    -
    5158  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5159  0 /*atTimeCode (0/15)*/,
    -
    5160  0 /*deltaMinutes*/,
    -
    5161  0 /*letterIndex ("")*/,
    -
    5162  },
    -
    5163  // Rule Chile 1927 1931 - Sep 1 0:00 1:00 -
    -
    5164  {
    -
    5165  1927 /*fromYear*/,
    -
    5166  1931 /*toYear*/,
    -
    5167  9 /*inMonth*/,
    -
    5168  0 /*onDayOfWeek*/,
    -
    5169  1 /*onDayOfMonth*/,
    -
    5170  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5171  0 /*atTimeCode (0/15)*/,
    -
    5172  60 /*deltaMinutes*/,
    -
    5173  0 /*letterIndex ("")*/,
    -
    5174  },
    -
    5175  // Rule Chile 1928 1932 - Apr 1 0:00 0 -
    -
    5176  {
    -
    5177  1928 /*fromYear*/,
    -
    5178  1932 /*toYear*/,
    -
    5179  4 /*inMonth*/,
    -
    5180  0 /*onDayOfWeek*/,
    -
    5181  1 /*onDayOfMonth*/,
    -
    5182  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5183  0 /*atTimeCode (0/15)*/,
    -
    5184  0 /*deltaMinutes*/,
    -
    5185  0 /*letterIndex ("")*/,
    -
    5186  },
    -
    5187  // Rule Chile 1968 only - Nov 3 4:00u 1:00 -
    -
    5188  {
    -
    5189  1968 /*fromYear*/,
    -
    5190  1968 /*toYear*/,
    -
    5191  11 /*inMonth*/,
    -
    5192  0 /*onDayOfWeek*/,
    -
    5193  3 /*onDayOfMonth*/,
    -
    5194  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5195  960 /*atTimeCode (14400/15)*/,
    -
    5196  60 /*deltaMinutes*/,
    -
    5197  0 /*letterIndex ("")*/,
    -
    5198  },
    -
    5199  // Rule Chile 1969 only - Mar 30 3:00u 0 -
    -
    5200  {
    -
    5201  1969 /*fromYear*/,
    -
    5202  1969 /*toYear*/,
    -
    5203  3 /*inMonth*/,
    -
    5204  0 /*onDayOfWeek*/,
    -
    5205  30 /*onDayOfMonth*/,
    -
    5206  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5207  720 /*atTimeCode (10800/15)*/,
    -
    5208  0 /*deltaMinutes*/,
    -
    5209  0 /*letterIndex ("")*/,
    -
    5210  },
    -
    5211  // Rule Chile 1969 only - Nov 23 4:00u 1:00 -
    -
    5212  {
    -
    5213  1969 /*fromYear*/,
    -
    5214  1969 /*toYear*/,
    -
    5215  11 /*inMonth*/,
    -
    5216  0 /*onDayOfWeek*/,
    -
    5217  23 /*onDayOfMonth*/,
    -
    5218  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5219  960 /*atTimeCode (14400/15)*/,
    -
    5220  60 /*deltaMinutes*/,
    -
    5221  0 /*letterIndex ("")*/,
    -
    5222  },
    -
    5223  // Rule Chile 1970 only - Mar 29 3:00u 0 -
    -
    5224  {
    -
    5225  1970 /*fromYear*/,
    -
    5226  1970 /*toYear*/,
    -
    5227  3 /*inMonth*/,
    -
    5228  0 /*onDayOfWeek*/,
    -
    5229  29 /*onDayOfMonth*/,
    -
    5230  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5231  720 /*atTimeCode (10800/15)*/,
    -
    5232  0 /*deltaMinutes*/,
    -
    5233  0 /*letterIndex ("")*/,
    -
    5234  },
    -
    5235  // Rule Chile 1971 only - Mar 14 3:00u 0 -
    -
    5236  {
    -
    5237  1971 /*fromYear*/,
    -
    5238  1971 /*toYear*/,
    -
    5239  3 /*inMonth*/,
    -
    5240  0 /*onDayOfWeek*/,
    -
    5241  14 /*onDayOfMonth*/,
    -
    5242  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5243  720 /*atTimeCode (10800/15)*/,
    -
    5244  0 /*deltaMinutes*/,
    -
    5245  0 /*letterIndex ("")*/,
    -
    5246  },
    -
    5247  // Rule Chile 1970 1972 - Oct Sun>=9 4:00u 1:00 -
    -
    5248  {
    -
    5249  1970 /*fromYear*/,
    -
    5250  1972 /*toYear*/,
    -
    5251  10 /*inMonth*/,
    -
    5252  7 /*onDayOfWeek*/,
    -
    5253  9 /*onDayOfMonth*/,
    -
    5254  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5255  960 /*atTimeCode (14400/15)*/,
    -
    5256  60 /*deltaMinutes*/,
    -
    5257  0 /*letterIndex ("")*/,
    -
    5258  },
    -
    5259  // Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 -
    -
    5260  {
    -
    5261  1972 /*fromYear*/,
    -
    5262  1986 /*toYear*/,
    -
    5263  3 /*inMonth*/,
    -
    5264  7 /*onDayOfWeek*/,
    -
    5265  9 /*onDayOfMonth*/,
    -
    5266  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5267  720 /*atTimeCode (10800/15)*/,
    -
    5268  0 /*deltaMinutes*/,
    -
    5269  0 /*letterIndex ("")*/,
    -
    5270  },
    -
    5271  // Rule Chile 1973 only - Sep 30 4:00u 1:00 -
    -
    5272  {
    -
    5273  1973 /*fromYear*/,
    -
    5274  1973 /*toYear*/,
    -
    5275  9 /*inMonth*/,
    -
    5276  0 /*onDayOfWeek*/,
    -
    5277  30 /*onDayOfMonth*/,
    -
    5278  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5279  960 /*atTimeCode (14400/15)*/,
    -
    5280  60 /*deltaMinutes*/,
    -
    5281  0 /*letterIndex ("")*/,
    -
    5282  },
    -
    5283  // Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 -
    -
    5284  {
    -
    5285  1974 /*fromYear*/,
    -
    5286  1987 /*toYear*/,
    -
    5287  10 /*inMonth*/,
    -
    5288  7 /*onDayOfWeek*/,
    -
    5289  9 /*onDayOfMonth*/,
    -
    5290  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5291  960 /*atTimeCode (14400/15)*/,
    -
    5292  60 /*deltaMinutes*/,
    -
    5293  0 /*letterIndex ("")*/,
    -
    5294  },
    -
    5295  // Rule Chile 1987 only - Apr 12 3:00u 0 -
    -
    5296  {
    -
    5297  1987 /*fromYear*/,
    -
    5298  1987 /*toYear*/,
    -
    5299  4 /*inMonth*/,
    -
    5300  0 /*onDayOfWeek*/,
    -
    5301  12 /*onDayOfMonth*/,
    -
    5302  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5303  720 /*atTimeCode (10800/15)*/,
    -
    5304  0 /*deltaMinutes*/,
    -
    5305  0 /*letterIndex ("")*/,
    -
    5306  },
    -
    5307  // Rule Chile 1988 1990 - Mar Sun>=9 3:00u 0 -
    -
    5308  {
    -
    5309  1988 /*fromYear*/,
    -
    5310  1990 /*toYear*/,
    -
    5311  3 /*inMonth*/,
    -
    5312  7 /*onDayOfWeek*/,
    -
    5313  9 /*onDayOfMonth*/,
    -
    5314  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5315  720 /*atTimeCode (10800/15)*/,
    -
    5316  0 /*deltaMinutes*/,
    -
    5317  0 /*letterIndex ("")*/,
    -
    5318  },
    -
    5319  // Rule Chile 1988 1989 - Oct Sun>=9 4:00u 1:00 -
    -
    5320  {
    -
    5321  1988 /*fromYear*/,
    -
    5322  1989 /*toYear*/,
    -
    5323  10 /*inMonth*/,
    -
    5324  7 /*onDayOfWeek*/,
    -
    5325  9 /*onDayOfMonth*/,
    -
    5326  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5327  960 /*atTimeCode (14400/15)*/,
    -
    5328  60 /*deltaMinutes*/,
    -
    5329  0 /*letterIndex ("")*/,
    -
    5330  },
    -
    5331  // Rule Chile 1990 only - Sep 16 4:00u 1:00 -
    -
    5332  {
    -
    5333  1990 /*fromYear*/,
    -
    5334  1990 /*toYear*/,
    -
    5335  9 /*inMonth*/,
    -
    5336  0 /*onDayOfWeek*/,
    -
    5337  16 /*onDayOfMonth*/,
    -
    5338  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5339  960 /*atTimeCode (14400/15)*/,
    -
    5340  60 /*deltaMinutes*/,
    -
    5341  0 /*letterIndex ("")*/,
    -
    5342  },
    -
    5343  // Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 -
    -
    5344  {
    -
    5345  1991 /*fromYear*/,
    -
    5346  1996 /*toYear*/,
    -
    5347  3 /*inMonth*/,
    -
    5348  7 /*onDayOfWeek*/,
    -
    5349  9 /*onDayOfMonth*/,
    -
    5350  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5351  720 /*atTimeCode (10800/15)*/,
    -
    5352  0 /*deltaMinutes*/,
    -
    5353  0 /*letterIndex ("")*/,
    -
    5354  },
    -
    5355  // Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 -
    -
    5356  {
    -
    5357  1991 /*fromYear*/,
    -
    5358  1997 /*toYear*/,
    -
    5359  10 /*inMonth*/,
    -
    5360  7 /*onDayOfWeek*/,
    -
    5361  9 /*onDayOfMonth*/,
    -
    5362  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5363  960 /*atTimeCode (14400/15)*/,
    -
    5364  60 /*deltaMinutes*/,
    -
    5365  0 /*letterIndex ("")*/,
    -
    5366  },
    -
    5367  // Rule Chile 1997 only - Mar 30 3:00u 0 -
    -
    5368  {
    -
    5369  1997 /*fromYear*/,
    -
    5370  1997 /*toYear*/,
    -
    5371  3 /*inMonth*/,
    -
    5372  0 /*onDayOfWeek*/,
    -
    5373  30 /*onDayOfMonth*/,
    -
    5374  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5375  720 /*atTimeCode (10800/15)*/,
    -
    5376  0 /*deltaMinutes*/,
    -
    5377  0 /*letterIndex ("")*/,
    -
    5378  },
    -
    5379  // Rule Chile 1998 only - Mar Sun>=9 3:00u 0 -
    -
    5380  {
    -
    5381  1998 /*fromYear*/,
    -
    5382  1998 /*toYear*/,
    -
    5383  3 /*inMonth*/,
    -
    5384  7 /*onDayOfWeek*/,
    -
    5385  9 /*onDayOfMonth*/,
    -
    5386  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5387  720 /*atTimeCode (10800/15)*/,
    -
    5388  0 /*deltaMinutes*/,
    -
    5389  0 /*letterIndex ("")*/,
    -
    5390  },
    -
    5391  // Rule Chile 1998 only - Sep 27 4:00u 1:00 -
    -
    5392  {
    -
    5393  1998 /*fromYear*/,
    -
    5394  1998 /*toYear*/,
    -
    5395  9 /*inMonth*/,
    -
    5396  0 /*onDayOfWeek*/,
    -
    5397  27 /*onDayOfMonth*/,
    -
    5398  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5399  960 /*atTimeCode (14400/15)*/,
    -
    5400  60 /*deltaMinutes*/,
    -
    5401  0 /*letterIndex ("")*/,
    -
    5402  },
    -
    5403  // Rule Chile 1999 only - Apr 4 3:00u 0 -
    -
    5404  {
    -
    5405  1999 /*fromYear*/,
    -
    5406  1999 /*toYear*/,
    -
    5407  4 /*inMonth*/,
    -
    5408  0 /*onDayOfWeek*/,
    -
    5409  4 /*onDayOfMonth*/,
    -
    5410  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5411  720 /*atTimeCode (10800/15)*/,
    -
    5412  0 /*deltaMinutes*/,
    -
    5413  0 /*letterIndex ("")*/,
    -
    5414  },
    -
    5415  // Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 -
    -
    5416  {
    -
    5417  1999 /*fromYear*/,
    -
    5418  2010 /*toYear*/,
    -
    5419  10 /*inMonth*/,
    -
    5420  7 /*onDayOfWeek*/,
    -
    5421  9 /*onDayOfMonth*/,
    -
    5422  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5423  960 /*atTimeCode (14400/15)*/,
    -
    5424  60 /*deltaMinutes*/,
    -
    5425  0 /*letterIndex ("")*/,
    -
    5426  },
    -
    5427  // Rule Chile 2000 2007 - Mar Sun>=9 3:00u 0 -
    -
    5428  {
    -
    5429  2000 /*fromYear*/,
    -
    5430  2007 /*toYear*/,
    -
    5431  3 /*inMonth*/,
    -
    5432  7 /*onDayOfWeek*/,
    -
    5433  9 /*onDayOfMonth*/,
    -
    5434  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5435  720 /*atTimeCode (10800/15)*/,
    -
    5436  0 /*deltaMinutes*/,
    -
    5437  0 /*letterIndex ("")*/,
    -
    5438  },
    -
    5439  // Rule Chile 2008 only - Mar 30 3:00u 0 -
    -
    5440  {
    -
    5441  2008 /*fromYear*/,
    -
    5442  2008 /*toYear*/,
    -
    5443  3 /*inMonth*/,
    -
    5444  0 /*onDayOfWeek*/,
    -
    5445  30 /*onDayOfMonth*/,
    -
    5446  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5447  720 /*atTimeCode (10800/15)*/,
    -
    5448  0 /*deltaMinutes*/,
    -
    5449  0 /*letterIndex ("")*/,
    -
    5450  },
    -
    5451  // Rule Chile 2009 only - Mar Sun>=9 3:00u 0 -
    -
    5452  {
    -
    5453  2009 /*fromYear*/,
    -
    5454  2009 /*toYear*/,
    -
    5455  3 /*inMonth*/,
    -
    5456  7 /*onDayOfWeek*/,
    -
    5457  9 /*onDayOfMonth*/,
    -
    5458  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5459  720 /*atTimeCode (10800/15)*/,
    -
    5460  0 /*deltaMinutes*/,
    -
    5461  0 /*letterIndex ("")*/,
    -
    5462  },
    -
    5463  // Rule Chile 2010 only - Apr Sun>=1 3:00u 0 -
    -
    5464  {
    -
    5465  2010 /*fromYear*/,
    -
    5466  2010 /*toYear*/,
    -
    5467  4 /*inMonth*/,
    -
    5468  7 /*onDayOfWeek*/,
    -
    5469  1 /*onDayOfMonth*/,
    -
    5470  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5471  720 /*atTimeCode (10800/15)*/,
    -
    5472  0 /*deltaMinutes*/,
    -
    5473  0 /*letterIndex ("")*/,
    -
    5474  },
    -
    5475  // Rule Chile 2011 only - May Sun>=2 3:00u 0 -
    -
    5476  {
    -
    5477  2011 /*fromYear*/,
    -
    5478  2011 /*toYear*/,
    -
    5479  5 /*inMonth*/,
    -
    5480  7 /*onDayOfWeek*/,
    -
    5481  2 /*onDayOfMonth*/,
    -
    5482  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5483  720 /*atTimeCode (10800/15)*/,
    -
    5484  0 /*deltaMinutes*/,
    -
    5485  0 /*letterIndex ("")*/,
    -
    5486  },
    -
    5487  // Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 -
    -
    5488  {
    -
    5489  2011 /*fromYear*/,
    -
    5490  2011 /*toYear*/,
    -
    5491  8 /*inMonth*/,
    -
    5492  7 /*onDayOfWeek*/,
    -
    5493  16 /*onDayOfMonth*/,
    -
    5494  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5495  960 /*atTimeCode (14400/15)*/,
    -
    5496  60 /*deltaMinutes*/,
    -
    5497  0 /*letterIndex ("")*/,
    -
    5498  },
    -
    5499  // Rule Chile 2012 2014 - Apr Sun>=23 3:00u 0 -
    -
    5500  {
    -
    5501  2012 /*fromYear*/,
    -
    5502  2014 /*toYear*/,
    -
    5503  4 /*inMonth*/,
    -
    5504  7 /*onDayOfWeek*/,
    -
    5505  23 /*onDayOfMonth*/,
    -
    5506  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5507  720 /*atTimeCode (10800/15)*/,
    -
    5508  0 /*deltaMinutes*/,
    -
    5509  0 /*letterIndex ("")*/,
    -
    5510  },
    -
    5511  // Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 -
    -
    5512  {
    -
    5513  2012 /*fromYear*/,
    -
    5514  2014 /*toYear*/,
    -
    5515  9 /*inMonth*/,
    -
    5516  7 /*onDayOfWeek*/,
    -
    5517  2 /*onDayOfMonth*/,
    -
    5518  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5519  960 /*atTimeCode (14400/15)*/,
    -
    5520  60 /*deltaMinutes*/,
    -
    5521  0 /*letterIndex ("")*/,
    -
    5522  },
    -
    5523  // Rule Chile 2016 2018 - May Sun>=9 3:00u 0 -
    -
    5524  {
    -
    5525  2016 /*fromYear*/,
    -
    5526  2018 /*toYear*/,
    -
    5527  5 /*inMonth*/,
    -
    5528  7 /*onDayOfWeek*/,
    -
    5529  9 /*onDayOfMonth*/,
    -
    5530  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5531  720 /*atTimeCode (10800/15)*/,
    -
    5532  0 /*deltaMinutes*/,
    -
    5533  0 /*letterIndex ("")*/,
    -
    5534  },
    -
    5535  // Rule Chile 2016 2018 - Aug Sun>=9 4:00u 1:00 -
    -
    5536  {
    -
    5537  2016 /*fromYear*/,
    -
    5538  2018 /*toYear*/,
    -
    5539  8 /*inMonth*/,
    -
    5540  7 /*onDayOfWeek*/,
    -
    5541  9 /*onDayOfMonth*/,
    -
    5542  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5543  960 /*atTimeCode (14400/15)*/,
    -
    5544  60 /*deltaMinutes*/,
    -
    5545  0 /*letterIndex ("")*/,
    -
    5546  },
    -
    5547  // Rule Chile 2019 max - Apr Sun>=2 3:00u 0 -
    -
    5548  {
    -
    5549  2019 /*fromYear*/,
    -
    5550  32766 /*toYear*/,
    -
    5551  4 /*inMonth*/,
    -
    5552  7 /*onDayOfWeek*/,
    -
    5553  2 /*onDayOfMonth*/,
    -
    5554  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5555  720 /*atTimeCode (10800/15)*/,
    -
    5556  0 /*deltaMinutes*/,
    -
    5557  0 /*letterIndex ("")*/,
    -
    5558  },
    -
    5559  // Rule Chile 2019 2021 - Sep Sun>=2 4:00u 1:00 -
    -
    5560  {
    -
    5561  2019 /*fromYear*/,
    -
    5562  2021 /*toYear*/,
    -
    5563  9 /*inMonth*/,
    -
    5564  7 /*onDayOfWeek*/,
    -
    5565  2 /*onDayOfMonth*/,
    -
    5566  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5567  960 /*atTimeCode (14400/15)*/,
    -
    5568  60 /*deltaMinutes*/,
    -
    5569  0 /*letterIndex ("")*/,
    -
    5570  },
    -
    5571  // Rule Chile 2022 only - Sep Sun>=9 4:00u 1:00 -
    -
    5572  {
    -
    5573  2022 /*fromYear*/,
    -
    5574  2022 /*toYear*/,
    -
    5575  9 /*inMonth*/,
    -
    5576  7 /*onDayOfWeek*/,
    -
    5577  9 /*onDayOfMonth*/,
    -
    5578  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5579  960 /*atTimeCode (14400/15)*/,
    -
    5580  60 /*deltaMinutes*/,
    -
    5581  0 /*letterIndex ("")*/,
    -
    5582  },
    -
    5583  // Rule Chile 2023 max - Sep Sun>=2 4:00u 1:00 -
    -
    5584  {
    -
    5585  2023 /*fromYear*/,
    -
    5586  32766 /*toYear*/,
    -
    5587  9 /*inMonth*/,
    -
    5588  7 /*onDayOfWeek*/,
    -
    5589  2 /*onDayOfMonth*/,
    -
    5590  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    5591  960 /*atTimeCode (14400/15)*/,
    -
    5592  60 /*deltaMinutes*/,
    -
    5593  0 /*letterIndex ("")*/,
    -
    5594  },
    -
    5595 
    -
    5596 };
    -
    5597 
    -
    5598 const complete::Info::ZonePolicy kZonePolicyChile ACE_TIME_PROGMEM = {
    -
    5599  kZoneRulesChile /*rules*/,
    -
    5600  37 /*numRules*/,
    -
    5601 };
    -
    5602 
    -
    5603 //---------------------------------------------------------------------------
    -
    5604 // Policy name: Cook
    -
    5605 // Rules: 4
    -
    5606 //---------------------------------------------------------------------------
    -
    5607 
    -
    5608 static const complete::Info::ZoneRule kZoneRulesCook[] ACE_TIME_PROGMEM = {
    -
    5609  // Anchor: Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
    -
    5610  {
    -
    5611  -32767 /*fromYear*/,
    -
    5612  -32767 /*toYear*/,
    -
    5613  1 /*inMonth*/,
    -
    5614  0 /*onDayOfWeek*/,
    -
    5615  1 /*onDayOfMonth*/,
    -
    5616  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5617  0 /*atTimeCode (0/15)*/,
    -
    5618  0 /*deltaMinutes*/,
    -
    5619  0 /*letterIndex ("")*/,
    -
    5620  },
    -
    5621  // Rule Cook 1978 only - Nov 12 0:00 0:30 -
    -
    5622  {
    -
    5623  1978 /*fromYear*/,
    -
    5624  1978 /*toYear*/,
    -
    5625  11 /*inMonth*/,
    -
    5626  0 /*onDayOfWeek*/,
    -
    5627  12 /*onDayOfMonth*/,
    -
    5628  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5629  0 /*atTimeCode (0/15)*/,
    -
    5630  30 /*deltaMinutes*/,
    -
    5631  0 /*letterIndex ("")*/,
    -
    5632  },
    -
    5633  // Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
    -
    5634  {
    -
    5635  1979 /*fromYear*/,
    -
    5636  1991 /*toYear*/,
    -
    5637  3 /*inMonth*/,
    -
    5638  7 /*onDayOfWeek*/,
    -
    5639  1 /*onDayOfMonth*/,
    -
    5640  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5641  0 /*atTimeCode (0/15)*/,
    -
    5642  0 /*deltaMinutes*/,
    -
    5643  0 /*letterIndex ("")*/,
    -
    5644  },
    -
    5645  // Rule Cook 1979 1990 - Oct lastSun 0:00 0:30 -
    -
    5646  {
    -
    5647  1979 /*fromYear*/,
    -
    5648  1990 /*toYear*/,
    -
    5649  10 /*inMonth*/,
    -
    5650  7 /*onDayOfWeek*/,
    -
    5651  0 /*onDayOfMonth*/,
    -
    5652  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5653  0 /*atTimeCode (0/15)*/,
    -
    5654  30 /*deltaMinutes*/,
    -
    5655  0 /*letterIndex ("")*/,
    -
    5656  },
    -
    5657 
    -
    5658 };
    -
    5659 
    -
    5660 const complete::Info::ZonePolicy kZonePolicyCook ACE_TIME_PROGMEM = {
    -
    5661  kZoneRulesCook /*rules*/,
    -
    5662  4 /*numRules*/,
    -
    5663 };
    -
    5664 
    -
    5665 //---------------------------------------------------------------------------
    -
    5666 // Policy name: Cuba
    -
    5667 // Rules: 40
    -
    5668 //---------------------------------------------------------------------------
    -
    5669 
    -
    5670 static const complete::Info::ZoneRule kZoneRulesCuba[] ACE_TIME_PROGMEM = {
    -
    5671  // Anchor: Rule Cuba 1928 only - Oct 10 0:00 0 S
    -
    5672  {
    -
    5673  -32767 /*fromYear*/,
    -
    5674  -32767 /*toYear*/,
    -
    5675  1 /*inMonth*/,
    -
    5676  0 /*onDayOfWeek*/,
    -
    5677  1 /*onDayOfMonth*/,
    -
    5678  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5679  0 /*atTimeCode (0/15)*/,
    -
    5680  0 /*deltaMinutes*/,
    -
    5681  25 /*letterIndex ("S")*/,
    -
    5682  },
    -
    5683  // Rule Cuba 1928 only - Jun 10 0:00 1:00 D
    -
    5684  {
    -
    5685  1928 /*fromYear*/,
    -
    5686  1928 /*toYear*/,
    -
    5687  6 /*inMonth*/,
    -
    5688  0 /*onDayOfWeek*/,
    -
    5689  10 /*onDayOfMonth*/,
    -
    5690  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5691  0 /*atTimeCode (0/15)*/,
    -
    5692  60 /*deltaMinutes*/,
    -
    5693  13 /*letterIndex ("D")*/,
    -
    5694  },
    -
    5695  // Rule Cuba 1928 only - Oct 10 0:00 0 S
    -
    5696  {
    -
    5697  1928 /*fromYear*/,
    -
    5698  1928 /*toYear*/,
    -
    5699  10 /*inMonth*/,
    -
    5700  0 /*onDayOfWeek*/,
    -
    5701  10 /*onDayOfMonth*/,
    -
    5702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5703  0 /*atTimeCode (0/15)*/,
    -
    5704  0 /*deltaMinutes*/,
    -
    5705  25 /*letterIndex ("S")*/,
    -
    5706  },
    -
    5707  // Rule Cuba 1940 1942 - Jun Sun>=1 0:00 1:00 D
    -
    5708  {
    -
    5709  1940 /*fromYear*/,
    -
    5710  1942 /*toYear*/,
    -
    5711  6 /*inMonth*/,
    -
    5712  7 /*onDayOfWeek*/,
    -
    5713  1 /*onDayOfMonth*/,
    -
    5714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5715  0 /*atTimeCode (0/15)*/,
    -
    5716  60 /*deltaMinutes*/,
    -
    5717  13 /*letterIndex ("D")*/,
    -
    5718  },
    -
    5719  // Rule Cuba 1940 1942 - Sep Sun>=1 0:00 0 S
    -
    5720  {
    -
    5721  1940 /*fromYear*/,
    -
    5722  1942 /*toYear*/,
    -
    5723  9 /*inMonth*/,
    -
    5724  7 /*onDayOfWeek*/,
    -
    5725  1 /*onDayOfMonth*/,
    -
    5726  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5727  0 /*atTimeCode (0/15)*/,
    -
    5728  0 /*deltaMinutes*/,
    -
    5729  25 /*letterIndex ("S")*/,
    -
    5730  },
    -
    5731  // Rule Cuba 1945 1946 - Jun Sun>=1 0:00 1:00 D
    -
    5732  {
    -
    5733  1945 /*fromYear*/,
    -
    5734  1946 /*toYear*/,
    -
    5735  6 /*inMonth*/,
    -
    5736  7 /*onDayOfWeek*/,
    -
    5737  1 /*onDayOfMonth*/,
    -
    5738  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5739  0 /*atTimeCode (0/15)*/,
    -
    5740  60 /*deltaMinutes*/,
    -
    5741  13 /*letterIndex ("D")*/,
    -
    5742  },
    -
    5743  // Rule Cuba 1945 1946 - Sep Sun>=1 0:00 0 S
    -
    5744  {
    -
    5745  1945 /*fromYear*/,
    -
    5746  1946 /*toYear*/,
    -
    5747  9 /*inMonth*/,
    -
    5748  7 /*onDayOfWeek*/,
    -
    5749  1 /*onDayOfMonth*/,
    -
    5750  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5751  0 /*atTimeCode (0/15)*/,
    -
    5752  0 /*deltaMinutes*/,
    -
    5753  25 /*letterIndex ("S")*/,
    -
    5754  },
    -
    5755  // Rule Cuba 1965 only - Jun 1 0:00 1:00 D
    -
    5756  {
    -
    5757  1965 /*fromYear*/,
    -
    5758  1965 /*toYear*/,
    -
    5759  6 /*inMonth*/,
    -
    5760  0 /*onDayOfWeek*/,
    -
    5761  1 /*onDayOfMonth*/,
    -
    5762  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5763  0 /*atTimeCode (0/15)*/,
    -
    5764  60 /*deltaMinutes*/,
    -
    5765  13 /*letterIndex ("D")*/,
    -
    5766  },
    -
    5767  // Rule Cuba 1965 only - Sep 30 0:00 0 S
    -
    5768  {
    -
    5769  1965 /*fromYear*/,
    -
    5770  1965 /*toYear*/,
    -
    5771  9 /*inMonth*/,
    -
    5772  0 /*onDayOfWeek*/,
    -
    5773  30 /*onDayOfMonth*/,
    -
    5774  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5775  0 /*atTimeCode (0/15)*/,
    -
    5776  0 /*deltaMinutes*/,
    -
    5777  25 /*letterIndex ("S")*/,
    -
    5778  },
    -
    5779  // Rule Cuba 1966 only - May 29 0:00 1:00 D
    -
    5780  {
    -
    5781  1966 /*fromYear*/,
    -
    5782  1966 /*toYear*/,
    -
    5783  5 /*inMonth*/,
    -
    5784  0 /*onDayOfWeek*/,
    -
    5785  29 /*onDayOfMonth*/,
    -
    5786  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5787  0 /*atTimeCode (0/15)*/,
    -
    5788  60 /*deltaMinutes*/,
    -
    5789  13 /*letterIndex ("D")*/,
    -
    5790  },
    -
    5791  // Rule Cuba 1966 only - Oct 2 0:00 0 S
    -
    5792  {
    -
    5793  1966 /*fromYear*/,
    -
    5794  1966 /*toYear*/,
    -
    5795  10 /*inMonth*/,
    -
    5796  0 /*onDayOfWeek*/,
    -
    5797  2 /*onDayOfMonth*/,
    -
    5798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5799  0 /*atTimeCode (0/15)*/,
    -
    5800  0 /*deltaMinutes*/,
    -
    5801  25 /*letterIndex ("S")*/,
    -
    5802  },
    -
    5803  // Rule Cuba 1967 only - Apr 8 0:00 1:00 D
    -
    5804  {
    -
    5805  1967 /*fromYear*/,
    -
    5806  1967 /*toYear*/,
    -
    5807  4 /*inMonth*/,
    -
    5808  0 /*onDayOfWeek*/,
    -
    5809  8 /*onDayOfMonth*/,
    -
    5810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5811  0 /*atTimeCode (0/15)*/,
    -
    5812  60 /*deltaMinutes*/,
    -
    5813  13 /*letterIndex ("D")*/,
    -
    5814  },
    -
    5815  // Rule Cuba 1967 1968 - Sep Sun>=8 0:00 0 S
    -
    5816  {
    -
    5817  1967 /*fromYear*/,
    -
    5818  1968 /*toYear*/,
    -
    5819  9 /*inMonth*/,
    -
    5820  7 /*onDayOfWeek*/,
    -
    5821  8 /*onDayOfMonth*/,
    -
    5822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5823  0 /*atTimeCode (0/15)*/,
    -
    5824  0 /*deltaMinutes*/,
    -
    5825  25 /*letterIndex ("S")*/,
    -
    5826  },
    -
    5827  // Rule Cuba 1968 only - Apr 14 0:00 1:00 D
    -
    5828  {
    -
    5829  1968 /*fromYear*/,
    -
    5830  1968 /*toYear*/,
    -
    5831  4 /*inMonth*/,
    -
    5832  0 /*onDayOfWeek*/,
    -
    5833  14 /*onDayOfMonth*/,
    -
    5834  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5835  0 /*atTimeCode (0/15)*/,
    -
    5836  60 /*deltaMinutes*/,
    -
    5837  13 /*letterIndex ("D")*/,
    -
    5838  },
    -
    5839  // Rule Cuba 1969 1977 - Apr lastSun 0:00 1:00 D
    -
    5840  {
    -
    5841  1969 /*fromYear*/,
    -
    5842  1977 /*toYear*/,
    -
    5843  4 /*inMonth*/,
    -
    5844  7 /*onDayOfWeek*/,
    -
    5845  0 /*onDayOfMonth*/,
    -
    5846  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5847  0 /*atTimeCode (0/15)*/,
    -
    5848  60 /*deltaMinutes*/,
    -
    5849  13 /*letterIndex ("D")*/,
    -
    5850  },
    -
    5851  // Rule Cuba 1969 1971 - Oct lastSun 0:00 0 S
    -
    5852  {
    -
    5853  1969 /*fromYear*/,
    -
    5854  1971 /*toYear*/,
    -
    5855  10 /*inMonth*/,
    -
    5856  7 /*onDayOfWeek*/,
    -
    5857  0 /*onDayOfMonth*/,
    -
    5858  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5859  0 /*atTimeCode (0/15)*/,
    -
    5860  0 /*deltaMinutes*/,
    -
    5861  25 /*letterIndex ("S")*/,
    -
    5862  },
    -
    5863  // Rule Cuba 1972 1974 - Oct 8 0:00 0 S
    -
    5864  {
    -
    5865  1972 /*fromYear*/,
    -
    5866  1974 /*toYear*/,
    -
    5867  10 /*inMonth*/,
    -
    5868  0 /*onDayOfWeek*/,
    -
    5869  8 /*onDayOfMonth*/,
    -
    5870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5871  0 /*atTimeCode (0/15)*/,
    -
    5872  0 /*deltaMinutes*/,
    -
    5873  25 /*letterIndex ("S")*/,
    -
    5874  },
    -
    5875  // Rule Cuba 1975 1977 - Oct lastSun 0:00 0 S
    -
    5876  {
    -
    5877  1975 /*fromYear*/,
    -
    5878  1977 /*toYear*/,
    -
    5879  10 /*inMonth*/,
    -
    5880  7 /*onDayOfWeek*/,
    -
    5881  0 /*onDayOfMonth*/,
    -
    5882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5883  0 /*atTimeCode (0/15)*/,
    -
    5884  0 /*deltaMinutes*/,
    -
    5885  25 /*letterIndex ("S")*/,
    -
    5886  },
    -
    5887  // Rule Cuba 1978 only - May 7 0:00 1:00 D
    -
    5888  {
    -
    5889  1978 /*fromYear*/,
    -
    5890  1978 /*toYear*/,
    -
    5891  5 /*inMonth*/,
    -
    5892  0 /*onDayOfWeek*/,
    -
    5893  7 /*onDayOfMonth*/,
    -
    5894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5895  0 /*atTimeCode (0/15)*/,
    -
    5896  60 /*deltaMinutes*/,
    -
    5897  13 /*letterIndex ("D")*/,
    -
    5898  },
    -
    5899  // Rule Cuba 1978 1990 - Oct Sun>=8 0:00 0 S
    -
    5900  {
    -
    5901  1978 /*fromYear*/,
    -
    5902  1990 /*toYear*/,
    -
    5903  10 /*inMonth*/,
    -
    5904  7 /*onDayOfWeek*/,
    -
    5905  8 /*onDayOfMonth*/,
    -
    5906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5907  0 /*atTimeCode (0/15)*/,
    -
    5908  0 /*deltaMinutes*/,
    -
    5909  25 /*letterIndex ("S")*/,
    -
    5910  },
    -
    5911  // Rule Cuba 1979 1980 - Mar Sun>=15 0:00 1:00 D
    -
    5912  {
    -
    5913  1979 /*fromYear*/,
    -
    5914  1980 /*toYear*/,
    -
    5915  3 /*inMonth*/,
    -
    5916  7 /*onDayOfWeek*/,
    -
    5917  15 /*onDayOfMonth*/,
    -
    5918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5919  0 /*atTimeCode (0/15)*/,
    -
    5920  60 /*deltaMinutes*/,
    -
    5921  13 /*letterIndex ("D")*/,
    -
    5922  },
    -
    5923  // Rule Cuba 1981 1985 - May Sun>=5 0:00 1:00 D
    -
    5924  {
    -
    5925  1981 /*fromYear*/,
    -
    5926  1985 /*toYear*/,
    -
    5927  5 /*inMonth*/,
    -
    5928  7 /*onDayOfWeek*/,
    -
    5929  5 /*onDayOfMonth*/,
    -
    5930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5931  0 /*atTimeCode (0/15)*/,
    -
    5932  60 /*deltaMinutes*/,
    -
    5933  13 /*letterIndex ("D")*/,
    -
    5934  },
    -
    5935  // Rule Cuba 1986 1989 - Mar Sun>=14 0:00 1:00 D
    -
    5936  {
    -
    5937  1986 /*fromYear*/,
    -
    5938  1989 /*toYear*/,
    -
    5939  3 /*inMonth*/,
    -
    5940  7 /*onDayOfWeek*/,
    -
    5941  14 /*onDayOfMonth*/,
    -
    5942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5943  0 /*atTimeCode (0/15)*/,
    -
    5944  60 /*deltaMinutes*/,
    -
    5945  13 /*letterIndex ("D")*/,
    -
    5946  },
    -
    5947  // Rule Cuba 1990 1997 - Apr Sun>=1 0:00 1:00 D
    -
    5948  {
    -
    5949  1990 /*fromYear*/,
    -
    5950  1997 /*toYear*/,
    -
    5951  4 /*inMonth*/,
    -
    5952  7 /*onDayOfWeek*/,
    -
    5953  1 /*onDayOfMonth*/,
    -
    5954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    5955  0 /*atTimeCode (0/15)*/,
    -
    5956  60 /*deltaMinutes*/,
    -
    5957  13 /*letterIndex ("D")*/,
    -
    5958  },
    -
    5959  // Rule Cuba 1991 1995 - Oct Sun>=8 0:00s 0 S
    -
    5960  {
    -
    5961  1991 /*fromYear*/,
    -
    5962  1995 /*toYear*/,
    -
    5963  10 /*inMonth*/,
    -
    5964  7 /*onDayOfWeek*/,
    -
    5965  8 /*onDayOfMonth*/,
    -
    5966  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    5967  0 /*atTimeCode (0/15)*/,
    -
    5968  0 /*deltaMinutes*/,
    -
    5969  25 /*letterIndex ("S")*/,
    -
    5970  },
    -
    5971  // Rule Cuba 1996 only - Oct 6 0:00s 0 S
    -
    5972  {
    -
    5973  1996 /*fromYear*/,
    -
    5974  1996 /*toYear*/,
    -
    5975  10 /*inMonth*/,
    -
    5976  0 /*onDayOfWeek*/,
    -
    5977  6 /*onDayOfMonth*/,
    -
    5978  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    5979  0 /*atTimeCode (0/15)*/,
    -
    5980  0 /*deltaMinutes*/,
    -
    5981  25 /*letterIndex ("S")*/,
    -
    5982  },
    -
    5983  // Rule Cuba 1997 only - Oct 12 0:00s 0 S
    -
    5984  {
    -
    5985  1997 /*fromYear*/,
    -
    5986  1997 /*toYear*/,
    -
    5987  10 /*inMonth*/,
    -
    5988  0 /*onDayOfWeek*/,
    -
    5989  12 /*onDayOfMonth*/,
    -
    5990  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    5991  0 /*atTimeCode (0/15)*/,
    -
    5992  0 /*deltaMinutes*/,
    -
    5993  25 /*letterIndex ("S")*/,
    -
    5994  },
    -
    5995  // Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D
    -
    5996  {
    -
    5997  1998 /*fromYear*/,
    -
    5998  1999 /*toYear*/,
    -
    5999  3 /*inMonth*/,
    -
    6000  7 /*onDayOfWeek*/,
    -
    6001  0 /*onDayOfMonth*/,
    -
    6002  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6003  0 /*atTimeCode (0/15)*/,
    -
    6004  60 /*deltaMinutes*/,
    -
    6005  13 /*letterIndex ("D")*/,
    -
    6006  },
    -
    6007  // Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S
    -
    6008  {
    -
    6009  1998 /*fromYear*/,
    -
    6010  2003 /*toYear*/,
    -
    6011  10 /*inMonth*/,
    -
    6012  7 /*onDayOfWeek*/,
    -
    6013  0 /*onDayOfMonth*/,
    -
    6014  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6015  0 /*atTimeCode (0/15)*/,
    -
    6016  0 /*deltaMinutes*/,
    -
    6017  25 /*letterIndex ("S")*/,
    -
    6018  },
    -
    6019  // Rule Cuba 2000 2003 - Apr Sun>=1 0:00s 1:00 D
    -
    6020  {
    -
    6021  2000 /*fromYear*/,
    -
    6022  2003 /*toYear*/,
    -
    6023  4 /*inMonth*/,
    -
    6024  7 /*onDayOfWeek*/,
    -
    6025  1 /*onDayOfMonth*/,
    -
    6026  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6027  0 /*atTimeCode (0/15)*/,
    -
    6028  60 /*deltaMinutes*/,
    -
    6029  13 /*letterIndex ("D")*/,
    -
    6030  },
    -
    6031  // Rule Cuba 2004 only - Mar lastSun 0:00s 1:00 D
    -
    6032  {
    -
    6033  2004 /*fromYear*/,
    -
    6034  2004 /*toYear*/,
    -
    6035  3 /*inMonth*/,
    -
    6036  7 /*onDayOfWeek*/,
    -
    6037  0 /*onDayOfMonth*/,
    -
    6038  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6039  0 /*atTimeCode (0/15)*/,
    -
    6040  60 /*deltaMinutes*/,
    -
    6041  13 /*letterIndex ("D")*/,
    -
    6042  },
    -
    6043  // Rule Cuba 2006 2010 - Oct lastSun 0:00s 0 S
    -
    6044  {
    -
    6045  2006 /*fromYear*/,
    -
    6046  2010 /*toYear*/,
    -
    6047  10 /*inMonth*/,
    -
    6048  7 /*onDayOfWeek*/,
    -
    6049  0 /*onDayOfMonth*/,
    -
    6050  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6051  0 /*atTimeCode (0/15)*/,
    -
    6052  0 /*deltaMinutes*/,
    -
    6053  25 /*letterIndex ("S")*/,
    -
    6054  },
    -
    6055  // Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D
    -
    6056  {
    -
    6057  2007 /*fromYear*/,
    -
    6058  2007 /*toYear*/,
    -
    6059  3 /*inMonth*/,
    -
    6060  7 /*onDayOfWeek*/,
    -
    6061  8 /*onDayOfMonth*/,
    -
    6062  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6063  0 /*atTimeCode (0/15)*/,
    -
    6064  60 /*deltaMinutes*/,
    -
    6065  13 /*letterIndex ("D")*/,
    -
    6066  },
    -
    6067  // Rule Cuba 2008 only - Mar Sun>=15 0:00s 1:00 D
    -
    6068  {
    -
    6069  2008 /*fromYear*/,
    -
    6070  2008 /*toYear*/,
    -
    6071  3 /*inMonth*/,
    -
    6072  7 /*onDayOfWeek*/,
    -
    6073  15 /*onDayOfMonth*/,
    -
    6074  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6075  0 /*atTimeCode (0/15)*/,
    -
    6076  60 /*deltaMinutes*/,
    -
    6077  13 /*letterIndex ("D")*/,
    -
    6078  },
    -
    6079  // Rule Cuba 2009 2010 - Mar Sun>=8 0:00s 1:00 D
    -
    6080  {
    -
    6081  2009 /*fromYear*/,
    -
    6082  2010 /*toYear*/,
    -
    6083  3 /*inMonth*/,
    -
    6084  7 /*onDayOfWeek*/,
    -
    6085  8 /*onDayOfMonth*/,
    -
    6086  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6087  0 /*atTimeCode (0/15)*/,
    -
    6088  60 /*deltaMinutes*/,
    -
    6089  13 /*letterIndex ("D")*/,
    -
    6090  },
    -
    6091  // Rule Cuba 2011 only - Mar Sun>=15 0:00s 1:00 D
    -
    6092  {
    -
    6093  2011 /*fromYear*/,
    -
    6094  2011 /*toYear*/,
    -
    6095  3 /*inMonth*/,
    -
    6096  7 /*onDayOfWeek*/,
    -
    6097  15 /*onDayOfMonth*/,
    -
    6098  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6099  0 /*atTimeCode (0/15)*/,
    -
    6100  60 /*deltaMinutes*/,
    -
    6101  13 /*letterIndex ("D")*/,
    -
    6102  },
    -
    6103  // Rule Cuba 2011 only - Nov 13 0:00s 0 S
    -
    6104  {
    -
    6105  2011 /*fromYear*/,
    -
    6106  2011 /*toYear*/,
    -
    6107  11 /*inMonth*/,
    -
    6108  0 /*onDayOfWeek*/,
    -
    6109  13 /*onDayOfMonth*/,
    -
    6110  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6111  0 /*atTimeCode (0/15)*/,
    -
    6112  0 /*deltaMinutes*/,
    -
    6113  25 /*letterIndex ("S")*/,
    -
    6114  },
    -
    6115  // Rule Cuba 2012 only - Apr 1 0:00s 1:00 D
    -
    6116  {
    -
    6117  2012 /*fromYear*/,
    -
    6118  2012 /*toYear*/,
    -
    6119  4 /*inMonth*/,
    -
    6120  0 /*onDayOfWeek*/,
    -
    6121  1 /*onDayOfMonth*/,
    -
    6122  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6123  0 /*atTimeCode (0/15)*/,
    -
    6124  60 /*deltaMinutes*/,
    -
    6125  13 /*letterIndex ("D")*/,
    -
    6126  },
    -
    6127  // Rule Cuba 2012 max - Nov Sun>=1 0:00s 0 S
    -
    6128  {
    -
    6129  2012 /*fromYear*/,
    -
    6130  32766 /*toYear*/,
    -
    6131  11 /*inMonth*/,
    -
    6132  7 /*onDayOfWeek*/,
    -
    6133  1 /*onDayOfMonth*/,
    -
    6134  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6135  0 /*atTimeCode (0/15)*/,
    -
    6136  0 /*deltaMinutes*/,
    -
    6137  25 /*letterIndex ("S")*/,
    -
    6138  },
    -
    6139  // Rule Cuba 2013 max - Mar Sun>=8 0:00s 1:00 D
    -
    6140  {
    -
    6141  2013 /*fromYear*/,
    -
    6142  32766 /*toYear*/,
    -
    6143  3 /*inMonth*/,
    -
    6144  7 /*onDayOfWeek*/,
    -
    6145  8 /*onDayOfMonth*/,
    -
    6146  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6147  0 /*atTimeCode (0/15)*/,
    -
    6148  60 /*deltaMinutes*/,
    -
    6149  13 /*letterIndex ("D")*/,
    -
    6150  },
    -
    6151 
    -
    6152 };
    -
    6153 
    -
    6154 const complete::Info::ZonePolicy kZonePolicyCuba ACE_TIME_PROGMEM = {
    -
    6155  kZoneRulesCuba /*rules*/,
    -
    6156  40 /*numRules*/,
    -
    6157 };
    -
    6158 
    -
    6159 //---------------------------------------------------------------------------
    -
    6160 // Policy name: Cyprus
    -
    6161 // Rules: 10
    -
    6162 //---------------------------------------------------------------------------
    -
    6163 
    -
    6164 static const complete::Info::ZoneRule kZoneRulesCyprus[] ACE_TIME_PROGMEM = {
    -
    6165  // Anchor: Rule Cyprus 1975 only - Oct 12 0:00 0 -
    -
    6166  {
    -
    6167  -32767 /*fromYear*/,
    -
    6168  -32767 /*toYear*/,
    -
    6169  1 /*inMonth*/,
    -
    6170  0 /*onDayOfWeek*/,
    -
    6171  1 /*onDayOfMonth*/,
    -
    6172  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6173  0 /*atTimeCode (0/15)*/,
    -
    6174  0 /*deltaMinutes*/,
    -
    6175  0 /*letterIndex ("")*/,
    -
    6176  },
    -
    6177  // Rule Cyprus 1975 only - Apr 13 0:00 1:00 S
    -
    6178  {
    -
    6179  1975 /*fromYear*/,
    -
    6180  1975 /*toYear*/,
    -
    6181  4 /*inMonth*/,
    -
    6182  0 /*onDayOfWeek*/,
    -
    6183  13 /*onDayOfMonth*/,
    -
    6184  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6185  0 /*atTimeCode (0/15)*/,
    -
    6186  60 /*deltaMinutes*/,
    -
    6187  25 /*letterIndex ("S")*/,
    -
    6188  },
    -
    6189  // Rule Cyprus 1975 only - Oct 12 0:00 0 -
    -
    6190  {
    -
    6191  1975 /*fromYear*/,
    -
    6192  1975 /*toYear*/,
    -
    6193  10 /*inMonth*/,
    -
    6194  0 /*onDayOfWeek*/,
    -
    6195  12 /*onDayOfMonth*/,
    -
    6196  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6197  0 /*atTimeCode (0/15)*/,
    -
    6198  0 /*deltaMinutes*/,
    -
    6199  0 /*letterIndex ("")*/,
    -
    6200  },
    -
    6201  // Rule Cyprus 1976 only - May 15 0:00 1:00 S
    -
    6202  {
    -
    6203  1976 /*fromYear*/,
    -
    6204  1976 /*toYear*/,
    -
    6205  5 /*inMonth*/,
    -
    6206  0 /*onDayOfWeek*/,
    -
    6207  15 /*onDayOfMonth*/,
    -
    6208  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6209  0 /*atTimeCode (0/15)*/,
    -
    6210  60 /*deltaMinutes*/,
    -
    6211  25 /*letterIndex ("S")*/,
    -
    6212  },
    -
    6213  // Rule Cyprus 1976 only - Oct 11 0:00 0 -
    -
    6214  {
    -
    6215  1976 /*fromYear*/,
    -
    6216  1976 /*toYear*/,
    -
    6217  10 /*inMonth*/,
    -
    6218  0 /*onDayOfWeek*/,
    -
    6219  11 /*onDayOfMonth*/,
    -
    6220  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6221  0 /*atTimeCode (0/15)*/,
    -
    6222  0 /*deltaMinutes*/,
    -
    6223  0 /*letterIndex ("")*/,
    -
    6224  },
    -
    6225  // Rule Cyprus 1977 1980 - Apr Sun>=1 0:00 1:00 S
    -
    6226  {
    -
    6227  1977 /*fromYear*/,
    -
    6228  1980 /*toYear*/,
    -
    6229  4 /*inMonth*/,
    -
    6230  7 /*onDayOfWeek*/,
    -
    6231  1 /*onDayOfMonth*/,
    -
    6232  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6233  0 /*atTimeCode (0/15)*/,
    -
    6234  60 /*deltaMinutes*/,
    -
    6235  25 /*letterIndex ("S")*/,
    -
    6236  },
    -
    6237  // Rule Cyprus 1977 only - Sep 25 0:00 0 -
    -
    6238  {
    -
    6239  1977 /*fromYear*/,
    -
    6240  1977 /*toYear*/,
    -
    6241  9 /*inMonth*/,
    -
    6242  0 /*onDayOfWeek*/,
    -
    6243  25 /*onDayOfMonth*/,
    -
    6244  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6245  0 /*atTimeCode (0/15)*/,
    -
    6246  0 /*deltaMinutes*/,
    -
    6247  0 /*letterIndex ("")*/,
    -
    6248  },
    -
    6249  // Rule Cyprus 1978 only - Oct 2 0:00 0 -
    -
    6250  {
    -
    6251  1978 /*fromYear*/,
    -
    6252  1978 /*toYear*/,
    -
    6253  10 /*inMonth*/,
    -
    6254  0 /*onDayOfWeek*/,
    -
    6255  2 /*onDayOfMonth*/,
    -
    6256  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6257  0 /*atTimeCode (0/15)*/,
    -
    6258  0 /*deltaMinutes*/,
    -
    6259  0 /*letterIndex ("")*/,
    -
    6260  },
    -
    6261  // Rule Cyprus 1979 1997 - Sep lastSun 0:00 0 -
    -
    6262  {
    -
    6263  1979 /*fromYear*/,
    -
    6264  1997 /*toYear*/,
    -
    6265  9 /*inMonth*/,
    -
    6266  7 /*onDayOfWeek*/,
    -
    6267  0 /*onDayOfMonth*/,
    -
    6268  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6269  0 /*atTimeCode (0/15)*/,
    -
    6270  0 /*deltaMinutes*/,
    -
    6271  0 /*letterIndex ("")*/,
    -
    6272  },
    -
    6273  // Rule Cyprus 1981 1998 - Mar lastSun 0:00 1:00 S
    -
    6274  {
    -
    6275  1981 /*fromYear*/,
    -
    6276  1998 /*toYear*/,
    -
    6277  3 /*inMonth*/,
    -
    6278  7 /*onDayOfWeek*/,
    -
    6279  0 /*onDayOfMonth*/,
    -
    6280  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6281  0 /*atTimeCode (0/15)*/,
    -
    6282  60 /*deltaMinutes*/,
    -
    6283  25 /*letterIndex ("S")*/,
    -
    6284  },
    -
    6285 
    -
    6286 };
    -
    6287 
    -
    6288 const complete::Info::ZonePolicy kZonePolicyCyprus ACE_TIME_PROGMEM = {
    -
    6289  kZoneRulesCyprus /*rules*/,
    -
    6290  10 /*numRules*/,
    -
    6291 };
    -
    6292 
    -
    6293 //---------------------------------------------------------------------------
    -
    6294 // Policy name: Czech
    -
    6295 // Rules: 7
    -
    6296 //---------------------------------------------------------------------------
    -
    6297 
    -
    6298 static const complete::Info::ZoneRule kZoneRulesCzech[] ACE_TIME_PROGMEM = {
    -
    6299  // Anchor: Rule Czech 1945 only - Oct 1 2:00s 0 -
    -
    6300  {
    -
    6301  -32767 /*fromYear*/,
    -
    6302  -32767 /*toYear*/,
    -
    6303  1 /*inMonth*/,
    -
    6304  0 /*onDayOfWeek*/,
    -
    6305  1 /*onDayOfMonth*/,
    -
    6306  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6307  0 /*atTimeCode (0/15)*/,
    -
    6308  0 /*deltaMinutes*/,
    -
    6309  0 /*letterIndex ("")*/,
    -
    6310  },
    -
    6311  // Rule Czech 1945 only - Apr Mon>=1 2:00s 1:00 S
    -
    6312  {
    -
    6313  1945 /*fromYear*/,
    -
    6314  1945 /*toYear*/,
    -
    6315  4 /*inMonth*/,
    -
    6316  1 /*onDayOfWeek*/,
    -
    6317  1 /*onDayOfMonth*/,
    -
    6318  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6319  480 /*atTimeCode (7200/15)*/,
    -
    6320  60 /*deltaMinutes*/,
    -
    6321  25 /*letterIndex ("S")*/,
    -
    6322  },
    -
    6323  // Rule Czech 1945 only - Oct 1 2:00s 0 -
    -
    6324  {
    -
    6325  1945 /*fromYear*/,
    -
    6326  1945 /*toYear*/,
    -
    6327  10 /*inMonth*/,
    -
    6328  0 /*onDayOfWeek*/,
    -
    6329  1 /*onDayOfMonth*/,
    -
    6330  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6331  480 /*atTimeCode (7200/15)*/,
    -
    6332  0 /*deltaMinutes*/,
    -
    6333  0 /*letterIndex ("")*/,
    -
    6334  },
    -
    6335  // Rule Czech 1946 only - May 6 2:00s 1:00 S
    -
    6336  {
    -
    6337  1946 /*fromYear*/,
    -
    6338  1946 /*toYear*/,
    -
    6339  5 /*inMonth*/,
    -
    6340  0 /*onDayOfWeek*/,
    -
    6341  6 /*onDayOfMonth*/,
    -
    6342  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6343  480 /*atTimeCode (7200/15)*/,
    -
    6344  60 /*deltaMinutes*/,
    -
    6345  25 /*letterIndex ("S")*/,
    -
    6346  },
    -
    6347  // Rule Czech 1946 1949 - Oct Sun>=1 2:00s 0 -
    -
    6348  {
    -
    6349  1946 /*fromYear*/,
    -
    6350  1949 /*toYear*/,
    -
    6351  10 /*inMonth*/,
    -
    6352  7 /*onDayOfWeek*/,
    -
    6353  1 /*onDayOfMonth*/,
    -
    6354  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6355  480 /*atTimeCode (7200/15)*/,
    -
    6356  0 /*deltaMinutes*/,
    -
    6357  0 /*letterIndex ("")*/,
    -
    6358  },
    -
    6359  // Rule Czech 1947 1948 - Apr Sun>=15 2:00s 1:00 S
    -
    6360  {
    -
    6361  1947 /*fromYear*/,
    -
    6362  1948 /*toYear*/,
    -
    6363  4 /*inMonth*/,
    -
    6364  7 /*onDayOfWeek*/,
    -
    6365  15 /*onDayOfMonth*/,
    -
    6366  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6367  480 /*atTimeCode (7200/15)*/,
    -
    6368  60 /*deltaMinutes*/,
    -
    6369  25 /*letterIndex ("S")*/,
    -
    6370  },
    -
    6371  // Rule Czech 1949 only - Apr 9 2:00s 1:00 S
    -
    6372  {
    -
    6373  1949 /*fromYear*/,
    -
    6374  1949 /*toYear*/,
    -
    6375  4 /*inMonth*/,
    -
    6376  0 /*onDayOfWeek*/,
    -
    6377  9 /*onDayOfMonth*/,
    -
    6378  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    6379  480 /*atTimeCode (7200/15)*/,
    -
    6380  60 /*deltaMinutes*/,
    -
    6381  25 /*letterIndex ("S")*/,
    -
    6382  },
    -
    6383 
    -
    6384 };
    -
    6385 
    -
    6386 const complete::Info::ZonePolicy kZonePolicyCzech ACE_TIME_PROGMEM = {
    -
    6387  kZoneRulesCzech /*rules*/,
    -
    6388  7 /*numRules*/,
    -
    6389 };
    -
    6390 
    -
    6391 //---------------------------------------------------------------------------
    -
    6392 // Policy name: DR
    -
    6393 // Rules: 7
    -
    6394 //---------------------------------------------------------------------------
    -
    6395 
    -
    6396 static const complete::Info::ZoneRule kZoneRulesDR[] ACE_TIME_PROGMEM = {
    -
    6397  // Anchor: Rule DR 1967 only - Feb 28 0:00 0 EST
    -
    6398  {
    -
    6399  -32767 /*fromYear*/,
    -
    6400  -32767 /*toYear*/,
    -
    6401  1 /*inMonth*/,
    -
    6402  0 /*onDayOfWeek*/,
    -
    6403  1 /*onDayOfMonth*/,
    -
    6404  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6405  0 /*atTimeCode (0/15)*/,
    -
    6406  0 /*deltaMinutes*/,
    -
    6407  16 /*letterIndex ("EST")*/,
    -
    6408  },
    -
    6409  // Rule DR 1966 only - Oct 30 0:00 1:00 EDT
    -
    6410  {
    -
    6411  1966 /*fromYear*/,
    -
    6412  1966 /*toYear*/,
    -
    6413  10 /*inMonth*/,
    -
    6414  0 /*onDayOfWeek*/,
    -
    6415  30 /*onDayOfMonth*/,
    -
    6416  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6417  0 /*atTimeCode (0/15)*/,
    -
    6418  60 /*deltaMinutes*/,
    -
    6419  15 /*letterIndex ("EDT")*/,
    -
    6420  },
    -
    6421  // Rule DR 1967 only - Feb 28 0:00 0 EST
    -
    6422  {
    -
    6423  1967 /*fromYear*/,
    -
    6424  1967 /*toYear*/,
    -
    6425  2 /*inMonth*/,
    -
    6426  0 /*onDayOfWeek*/,
    -
    6427  28 /*onDayOfMonth*/,
    -
    6428  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6429  0 /*atTimeCode (0/15)*/,
    -
    6430  0 /*deltaMinutes*/,
    -
    6431  16 /*letterIndex ("EST")*/,
    -
    6432  },
    -
    6433  // Rule DR 1969 1973 - Oct lastSun 0:00 0:30 -0430
    -
    6434  {
    -
    6435  1969 /*fromYear*/,
    -
    6436  1973 /*toYear*/,
    -
    6437  10 /*inMonth*/,
    -
    6438  7 /*onDayOfWeek*/,
    -
    6439  0 /*onDayOfMonth*/,
    -
    6440  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6441  0 /*atTimeCode (0/15)*/,
    -
    6442  30 /*deltaMinutes*/,
    -
    6443  4 /*letterIndex ("-0430")*/,
    -
    6444  },
    -
    6445  // Rule DR 1970 only - Feb 21 0:00 0 EST
    -
    6446  {
    -
    6447  1970 /*fromYear*/,
    -
    6448  1970 /*toYear*/,
    -
    6449  2 /*inMonth*/,
    -
    6450  0 /*onDayOfWeek*/,
    -
    6451  21 /*onDayOfMonth*/,
    -
    6452  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6453  0 /*atTimeCode (0/15)*/,
    -
    6454  0 /*deltaMinutes*/,
    -
    6455  16 /*letterIndex ("EST")*/,
    -
    6456  },
    -
    6457  // Rule DR 1971 only - Jan 20 0:00 0 EST
    -
    6458  {
    -
    6459  1971 /*fromYear*/,
    -
    6460  1971 /*toYear*/,
    -
    6461  1 /*inMonth*/,
    -
    6462  0 /*onDayOfWeek*/,
    -
    6463  20 /*onDayOfMonth*/,
    -
    6464  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6465  0 /*atTimeCode (0/15)*/,
    -
    6466  0 /*deltaMinutes*/,
    -
    6467  16 /*letterIndex ("EST")*/,
    -
    6468  },
    -
    6469  // Rule DR 1972 1974 - Jan 21 0:00 0 EST
    -
    6470  {
    -
    6471  1972 /*fromYear*/,
    -
    6472  1974 /*toYear*/,
    -
    6473  1 /*inMonth*/,
    -
    6474  0 /*onDayOfWeek*/,
    -
    6475  21 /*onDayOfMonth*/,
    -
    6476  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6477  0 /*atTimeCode (0/15)*/,
    -
    6478  0 /*deltaMinutes*/,
    -
    6479  16 /*letterIndex ("EST")*/,
    -
    6480  },
    -
    6481 
    -
    6482 };
    -
    6483 
    -
    6484 const complete::Info::ZonePolicy kZonePolicyDR ACE_TIME_PROGMEM = {
    -
    6485  kZoneRulesDR /*rules*/,
    -
    6486  7 /*numRules*/,
    -
    6487 };
    -
    6488 
    -
    6489 //---------------------------------------------------------------------------
    -
    6490 // Policy name: Denver
    -
    6491 // Rules: 6
    -
    6492 //---------------------------------------------------------------------------
    -
    6493 
    -
    6494 static const complete::Info::ZoneRule kZoneRulesDenver[] ACE_TIME_PROGMEM = {
    -
    6495  // Anchor: Rule Denver 1920 only - Oct lastSun 2:00 0 S
    -
    6496  {
    -
    6497  -32767 /*fromYear*/,
    -
    6498  -32767 /*toYear*/,
    -
    6499  1 /*inMonth*/,
    -
    6500  0 /*onDayOfWeek*/,
    -
    6501  1 /*onDayOfMonth*/,
    -
    6502  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6503  0 /*atTimeCode (0/15)*/,
    -
    6504  0 /*deltaMinutes*/,
    -
    6505  25 /*letterIndex ("S")*/,
    -
    6506  },
    -
    6507  // Rule Denver 1920 1921 - Mar lastSun 2:00 1:00 D
    -
    6508  {
    -
    6509  1920 /*fromYear*/,
    -
    6510  1921 /*toYear*/,
    -
    6511  3 /*inMonth*/,
    -
    6512  7 /*onDayOfWeek*/,
    -
    6513  0 /*onDayOfMonth*/,
    -
    6514  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6515  480 /*atTimeCode (7200/15)*/,
    -
    6516  60 /*deltaMinutes*/,
    -
    6517  13 /*letterIndex ("D")*/,
    -
    6518  },
    -
    6519  // Rule Denver 1920 only - Oct lastSun 2:00 0 S
    -
    6520  {
    -
    6521  1920 /*fromYear*/,
    -
    6522  1920 /*toYear*/,
    -
    6523  10 /*inMonth*/,
    -
    6524  7 /*onDayOfWeek*/,
    -
    6525  0 /*onDayOfMonth*/,
    -
    6526  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6527  480 /*atTimeCode (7200/15)*/,
    -
    6528  0 /*deltaMinutes*/,
    -
    6529  25 /*letterIndex ("S")*/,
    -
    6530  },
    -
    6531  // Rule Denver 1921 only - May 22 2:00 0 S
    -
    6532  {
    -
    6533  1921 /*fromYear*/,
    -
    6534  1921 /*toYear*/,
    -
    6535  5 /*inMonth*/,
    -
    6536  0 /*onDayOfWeek*/,
    -
    6537  22 /*onDayOfMonth*/,
    -
    6538  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6539  480 /*atTimeCode (7200/15)*/,
    -
    6540  0 /*deltaMinutes*/,
    -
    6541  25 /*letterIndex ("S")*/,
    -
    6542  },
    -
    6543  // Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D
    -
    6544  {
    -
    6545  1965 /*fromYear*/,
    -
    6546  1966 /*toYear*/,
    -
    6547  4 /*inMonth*/,
    -
    6548  7 /*onDayOfWeek*/,
    -
    6549  0 /*onDayOfMonth*/,
    -
    6550  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6551  480 /*atTimeCode (7200/15)*/,
    -
    6552  60 /*deltaMinutes*/,
    -
    6553  13 /*letterIndex ("D")*/,
    -
    6554  },
    -
    6555  // Rule Denver 1965 1966 - Oct lastSun 2:00 0 S
    -
    6556  {
    -
    6557  1965 /*fromYear*/,
    -
    6558  1966 /*toYear*/,
    -
    6559  10 /*inMonth*/,
    -
    6560  7 /*onDayOfWeek*/,
    -
    6561  0 /*onDayOfMonth*/,
    -
    6562  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6563  480 /*atTimeCode (7200/15)*/,
    -
    6564  0 /*deltaMinutes*/,
    -
    6565  25 /*letterIndex ("S")*/,
    -
    6566  },
    -
    6567 
    -
    6568 };
    -
    6569 
    -
    6570 const complete::Info::ZonePolicy kZonePolicyDenver ACE_TIME_PROGMEM = {
    -
    6571  kZoneRulesDenver /*rules*/,
    -
    6572  6 /*numRules*/,
    -
    6573 };
    -
    6574 
    -
    6575 //---------------------------------------------------------------------------
    -
    6576 // Policy name: Detroit
    -
    6577 // Rules: 3
    -
    6578 //---------------------------------------------------------------------------
    -
    6579 
    -
    6580 static const complete::Info::ZoneRule kZoneRulesDetroit[] ACE_TIME_PROGMEM = {
    -
    6581  // Anchor: Rule Detroit 1948 only - Sep lastSun 2:00 0 S
    -
    6582  {
    -
    6583  -32767 /*fromYear*/,
    -
    6584  -32767 /*toYear*/,
    -
    6585  1 /*inMonth*/,
    -
    6586  0 /*onDayOfWeek*/,
    -
    6587  1 /*onDayOfMonth*/,
    -
    6588  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6589  0 /*atTimeCode (0/15)*/,
    -
    6590  0 /*deltaMinutes*/,
    -
    6591  25 /*letterIndex ("S")*/,
    -
    6592  },
    -
    6593  // Rule Detroit 1948 only - Apr lastSun 2:00 1:00 D
    -
    6594  {
    -
    6595  1948 /*fromYear*/,
    -
    6596  1948 /*toYear*/,
    -
    6597  4 /*inMonth*/,
    -
    6598  7 /*onDayOfWeek*/,
    -
    6599  0 /*onDayOfMonth*/,
    -
    6600  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6601  480 /*atTimeCode (7200/15)*/,
    -
    6602  60 /*deltaMinutes*/,
    -
    6603  13 /*letterIndex ("D")*/,
    -
    6604  },
    -
    6605  // Rule Detroit 1948 only - Sep lastSun 2:00 0 S
    -
    6606  {
    -
    6607  1948 /*fromYear*/,
    -
    6608  1948 /*toYear*/,
    -
    6609  9 /*inMonth*/,
    -
    6610  7 /*onDayOfWeek*/,
    -
    6611  0 /*onDayOfMonth*/,
    -
    6612  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6613  480 /*atTimeCode (7200/15)*/,
    -
    6614  0 /*deltaMinutes*/,
    -
    6615  25 /*letterIndex ("S")*/,
    -
    6616  },
    -
    6617 
    -
    6618 };
    -
    6619 
    -
    6620 const complete::Info::ZonePolicy kZonePolicyDetroit ACE_TIME_PROGMEM = {
    -
    6621  kZoneRulesDetroit /*rules*/,
    -
    6622  3 /*numRules*/,
    -
    6623 };
    -
    6624 
    -
    6625 //---------------------------------------------------------------------------
    -
    6626 // Policy name: Dhaka
    -
    6627 // Rules: 3
    -
    6628 //---------------------------------------------------------------------------
    -
    6629 
    -
    6630 static const complete::Info::ZoneRule kZoneRulesDhaka[] ACE_TIME_PROGMEM = {
    -
    6631  // Anchor: Rule Dhaka 2009 only - Dec 31 24:00 0 -
    -
    6632  {
    -
    6633  -32767 /*fromYear*/,
    -
    6634  -32767 /*toYear*/,
    -
    6635  1 /*inMonth*/,
    -
    6636  0 /*onDayOfWeek*/,
    -
    6637  1 /*onDayOfMonth*/,
    -
    6638  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6639  0 /*atTimeCode (0/15)*/,
    -
    6640  0 /*deltaMinutes*/,
    -
    6641  0 /*letterIndex ("")*/,
    -
    6642  },
    -
    6643  // Rule Dhaka 2009 only - Jun 19 23:00 1:00 -
    -
    6644  {
    -
    6645  2009 /*fromYear*/,
    -
    6646  2009 /*toYear*/,
    -
    6647  6 /*inMonth*/,
    -
    6648  0 /*onDayOfWeek*/,
    -
    6649  19 /*onDayOfMonth*/,
    -
    6650  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6651  5520 /*atTimeCode (82800/15)*/,
    -
    6652  60 /*deltaMinutes*/,
    -
    6653  0 /*letterIndex ("")*/,
    -
    6654  },
    -
    6655  // Rule Dhaka 2009 only - Dec 31 24:00 0 -
    -
    6656  {
    -
    6657  2009 /*fromYear*/,
    -
    6658  2009 /*toYear*/,
    -
    6659  12 /*inMonth*/,
    -
    6660  0 /*onDayOfWeek*/,
    -
    6661  31 /*onDayOfMonth*/,
    -
    6662  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6663  5760 /*atTimeCode (86400/15)*/,
    -
    6664  0 /*deltaMinutes*/,
    -
    6665  0 /*letterIndex ("")*/,
    -
    6666  },
    -
    6667 
    -
    6668 };
    -
    6669 
    -
    6670 const complete::Info::ZonePolicy kZonePolicyDhaka ACE_TIME_PROGMEM = {
    -
    6671  kZoneRulesDhaka /*rules*/,
    -
    6672  3 /*numRules*/,
    -
    6673 };
    -
    6674 
    -
    6675 //---------------------------------------------------------------------------
    -
    6676 // Policy name: E-Eur
    -
    6677 // Rules: 7
    -
    6678 //---------------------------------------------------------------------------
    -
    6679 
    -
    6680 static const complete::Info::ZoneRule kZoneRulesE_Eur[] ACE_TIME_PROGMEM = {
    -
    6681  // Anchor: Rule E-Eur 1977 only - Sep lastSun 0:00 0 -
    -
    6682  {
    -
    6683  -32767 /*fromYear*/,
    -
    6684  -32767 /*toYear*/,
    -
    6685  1 /*inMonth*/,
    -
    6686  0 /*onDayOfWeek*/,
    -
    6687  1 /*onDayOfMonth*/,
    -
    6688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6689  0 /*atTimeCode (0/15)*/,
    -
    6690  0 /*deltaMinutes*/,
    -
    6691  0 /*letterIndex ("")*/,
    -
    6692  },
    -
    6693  // Rule E-Eur 1977 1980 - Apr Sun>=1 0:00 1:00 S
    -
    6694  {
    -
    6695  1977 /*fromYear*/,
    -
    6696  1980 /*toYear*/,
    -
    6697  4 /*inMonth*/,
    -
    6698  7 /*onDayOfWeek*/,
    -
    6699  1 /*onDayOfMonth*/,
    -
    6700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6701  0 /*atTimeCode (0/15)*/,
    -
    6702  60 /*deltaMinutes*/,
    -
    6703  25 /*letterIndex ("S")*/,
    -
    6704  },
    -
    6705  // Rule E-Eur 1977 only - Sep lastSun 0:00 0 -
    -
    6706  {
    -
    6707  1977 /*fromYear*/,
    -
    6708  1977 /*toYear*/,
    -
    6709  9 /*inMonth*/,
    -
    6710  7 /*onDayOfWeek*/,
    -
    6711  0 /*onDayOfMonth*/,
    -
    6712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6713  0 /*atTimeCode (0/15)*/,
    -
    6714  0 /*deltaMinutes*/,
    -
    6715  0 /*letterIndex ("")*/,
    -
    6716  },
    -
    6717  // Rule E-Eur 1978 only - Oct 1 0:00 0 -
    -
    6718  {
    -
    6719  1978 /*fromYear*/,
    -
    6720  1978 /*toYear*/,
    -
    6721  10 /*inMonth*/,
    -
    6722  0 /*onDayOfWeek*/,
    -
    6723  1 /*onDayOfMonth*/,
    -
    6724  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6725  0 /*atTimeCode (0/15)*/,
    -
    6726  0 /*deltaMinutes*/,
    -
    6727  0 /*letterIndex ("")*/,
    -
    6728  },
    -
    6729  // Rule E-Eur 1979 1995 - Sep lastSun 0:00 0 -
    -
    6730  {
    -
    6731  1979 /*fromYear*/,
    -
    6732  1995 /*toYear*/,
    -
    6733  9 /*inMonth*/,
    -
    6734  7 /*onDayOfWeek*/,
    -
    6735  0 /*onDayOfMonth*/,
    -
    6736  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6737  0 /*atTimeCode (0/15)*/,
    -
    6738  0 /*deltaMinutes*/,
    -
    6739  0 /*letterIndex ("")*/,
    -
    6740  },
    -
    6741  // Rule E-Eur 1981 max - Mar lastSun 0:00 1:00 S
    -
    6742  {
    -
    6743  1981 /*fromYear*/,
    -
    6744  32766 /*toYear*/,
    -
    6745  3 /*inMonth*/,
    -
    6746  7 /*onDayOfWeek*/,
    -
    6747  0 /*onDayOfMonth*/,
    -
    6748  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6749  0 /*atTimeCode (0/15)*/,
    -
    6750  60 /*deltaMinutes*/,
    -
    6751  25 /*letterIndex ("S")*/,
    -
    6752  },
    -
    6753  // Rule E-Eur 1996 max - Oct lastSun 0:00 0 -
    -
    6754  {
    -
    6755  1996 /*fromYear*/,
    -
    6756  32766 /*toYear*/,
    -
    6757  10 /*inMonth*/,
    -
    6758  7 /*onDayOfWeek*/,
    -
    6759  0 /*onDayOfMonth*/,
    -
    6760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6761  0 /*atTimeCode (0/15)*/,
    -
    6762  0 /*deltaMinutes*/,
    -
    6763  0 /*letterIndex ("")*/,
    -
    6764  },
    -
    6765 
    -
    6766 };
    -
    6767 
    -
    6768 const complete::Info::ZonePolicy kZonePolicyE_Eur ACE_TIME_PROGMEM = {
    -
    6769  kZoneRulesE_Eur /*rules*/,
    -
    6770  7 /*numRules*/,
    -
    6771 };
    -
    6772 
    -
    6773 //---------------------------------------------------------------------------
    -
    6774 // Policy name: E-EurAsia
    -
    6775 // Rules: 4
    -
    6776 //---------------------------------------------------------------------------
    -
    6777 
    -
    6778 static const complete::Info::ZoneRule kZoneRulesE_EurAsia[] ACE_TIME_PROGMEM = {
    -
    6779  // Anchor: Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 -
    -
    6780  {
    -
    6781  -32767 /*fromYear*/,
    -
    6782  -32767 /*toYear*/,
    -
    6783  1 /*inMonth*/,
    -
    6784  0 /*onDayOfWeek*/,
    -
    6785  1 /*onDayOfMonth*/,
    -
    6786  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6787  0 /*atTimeCode (0/15)*/,
    -
    6788  0 /*deltaMinutes*/,
    -
    6789  0 /*letterIndex ("")*/,
    -
    6790  },
    -
    6791  // Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 -
    -
    6792  {
    -
    6793  1981 /*fromYear*/,
    -
    6794  32766 /*toYear*/,
    -
    6795  3 /*inMonth*/,
    -
    6796  7 /*onDayOfWeek*/,
    -
    6797  0 /*onDayOfMonth*/,
    -
    6798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6799  0 /*atTimeCode (0/15)*/,
    -
    6800  60 /*deltaMinutes*/,
    -
    6801  0 /*letterIndex ("")*/,
    -
    6802  },
    -
    6803  // Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 -
    -
    6804  {
    -
    6805  1979 /*fromYear*/,
    -
    6806  1995 /*toYear*/,
    -
    6807  9 /*inMonth*/,
    -
    6808  7 /*onDayOfWeek*/,
    -
    6809  0 /*onDayOfMonth*/,
    -
    6810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6811  0 /*atTimeCode (0/15)*/,
    -
    6812  0 /*deltaMinutes*/,
    -
    6813  0 /*letterIndex ("")*/,
    -
    6814  },
    -
    6815  // Rule E-EurAsia 1996 max - Oct lastSun 0:00 0 -
    -
    6816  {
    -
    6817  1996 /*fromYear*/,
    -
    6818  32766 /*toYear*/,
    -
    6819  10 /*inMonth*/,
    -
    6820  7 /*onDayOfWeek*/,
    -
    6821  0 /*onDayOfMonth*/,
    -
    6822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6823  0 /*atTimeCode (0/15)*/,
    -
    6824  0 /*deltaMinutes*/,
    -
    6825  0 /*letterIndex ("")*/,
    -
    6826  },
    -
    6827 
    -
    6828 };
    -
    6829 
    -
    6830 const complete::Info::ZonePolicy kZonePolicyE_EurAsia ACE_TIME_PROGMEM = {
    -
    6831  kZoneRulesE_EurAsia /*rules*/,
    -
    6832  4 /*numRules*/,
    -
    6833 };
    -
    6834 
    -
    6835 //---------------------------------------------------------------------------
    -
    6836 // Policy name: EU
    -
    6837 // Rules: 7
    -
    6838 //---------------------------------------------------------------------------
    -
    6839 
    -
    6840 static const complete::Info::ZoneRule kZoneRulesEU[] ACE_TIME_PROGMEM = {
    -
    6841  // Anchor: Rule EU 1977 only - Sep lastSun 1:00u 0 -
    -
    6842  {
    -
    6843  -32767 /*fromYear*/,
    -
    6844  -32767 /*toYear*/,
    -
    6845  1 /*inMonth*/,
    -
    6846  0 /*onDayOfWeek*/,
    -
    6847  1 /*onDayOfMonth*/,
    -
    6848  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6849  0 /*atTimeCode (0/15)*/,
    -
    6850  0 /*deltaMinutes*/,
    -
    6851  0 /*letterIndex ("")*/,
    -
    6852  },
    -
    6853  // Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S
    -
    6854  {
    -
    6855  1977 /*fromYear*/,
    -
    6856  1980 /*toYear*/,
    -
    6857  4 /*inMonth*/,
    -
    6858  7 /*onDayOfWeek*/,
    -
    6859  1 /*onDayOfMonth*/,
    -
    6860  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    6861  240 /*atTimeCode (3600/15)*/,
    -
    6862  60 /*deltaMinutes*/,
    -
    6863  25 /*letterIndex ("S")*/,
    -
    6864  },
    -
    6865  // Rule EU 1977 only - Sep lastSun 1:00u 0 -
    -
    6866  {
    -
    6867  1977 /*fromYear*/,
    -
    6868  1977 /*toYear*/,
    -
    6869  9 /*inMonth*/,
    -
    6870  7 /*onDayOfWeek*/,
    -
    6871  0 /*onDayOfMonth*/,
    -
    6872  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    6873  240 /*atTimeCode (3600/15)*/,
    -
    6874  0 /*deltaMinutes*/,
    -
    6875  0 /*letterIndex ("")*/,
    -
    6876  },
    -
    6877  // Rule EU 1978 only - Oct 1 1:00u 0 -
    -
    6878  {
    -
    6879  1978 /*fromYear*/,
    -
    6880  1978 /*toYear*/,
    -
    6881  10 /*inMonth*/,
    -
    6882  0 /*onDayOfWeek*/,
    -
    6883  1 /*onDayOfMonth*/,
    -
    6884  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    6885  240 /*atTimeCode (3600/15)*/,
    -
    6886  0 /*deltaMinutes*/,
    -
    6887  0 /*letterIndex ("")*/,
    -
    6888  },
    -
    6889  // Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
    -
    6890  {
    -
    6891  1979 /*fromYear*/,
    -
    6892  1995 /*toYear*/,
    -
    6893  9 /*inMonth*/,
    -
    6894  7 /*onDayOfWeek*/,
    -
    6895  0 /*onDayOfMonth*/,
    -
    6896  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    6897  240 /*atTimeCode (3600/15)*/,
    -
    6898  0 /*deltaMinutes*/,
    -
    6899  0 /*letterIndex ("")*/,
    -
    6900  },
    -
    6901  // Rule EU 1981 max - Mar lastSun 1:00u 1:00 S
    -
    6902  {
    -
    6903  1981 /*fromYear*/,
    -
    6904  32766 /*toYear*/,
    -
    6905  3 /*inMonth*/,
    -
    6906  7 /*onDayOfWeek*/,
    -
    6907  0 /*onDayOfMonth*/,
    -
    6908  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    6909  240 /*atTimeCode (3600/15)*/,
    -
    6910  60 /*deltaMinutes*/,
    -
    6911  25 /*letterIndex ("S")*/,
    -
    6912  },
    -
    6913  // Rule EU 1996 max - Oct lastSun 1:00u 0 -
    -
    6914  {
    -
    6915  1996 /*fromYear*/,
    -
    6916  32766 /*toYear*/,
    -
    6917  10 /*inMonth*/,
    -
    6918  7 /*onDayOfWeek*/,
    -
    6919  0 /*onDayOfMonth*/,
    -
    6920  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    6921  240 /*atTimeCode (3600/15)*/,
    -
    6922  0 /*deltaMinutes*/,
    -
    6923  0 /*letterIndex ("")*/,
    -
    6924  },
    -
    6925 
    -
    6926 };
    -
    6927 
    -
    6928 const complete::Info::ZonePolicy kZonePolicyEU ACE_TIME_PROGMEM = {
    -
    6929  kZoneRulesEU /*rules*/,
    -
    6930  7 /*numRules*/,
    -
    6931 };
    -
    6932 
    -
    6933 //---------------------------------------------------------------------------
    -
    6934 // Policy name: EUAsia
    -
    6935 // Rules: 4
    -
    6936 //---------------------------------------------------------------------------
    -
    6937 
    -
    6938 static const complete::Info::ZoneRule kZoneRulesEUAsia[] ACE_TIME_PROGMEM = {
    -
    6939  // Anchor: Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
    -
    6940  {
    -
    6941  -32767 /*fromYear*/,
    -
    6942  -32767 /*toYear*/,
    -
    6943  1 /*inMonth*/,
    -
    6944  0 /*onDayOfWeek*/,
    -
    6945  1 /*onDayOfMonth*/,
    -
    6946  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    6947  0 /*atTimeCode (0/15)*/,
    -
    6948  0 /*deltaMinutes*/,
    -
    6949  0 /*letterIndex ("")*/,
    -
    6950  },
    -
    6951  // Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
    -
    6952  {
    -
    6953  1981 /*fromYear*/,
    -
    6954  32766 /*toYear*/,
    -
    6955  3 /*inMonth*/,
    -
    6956  7 /*onDayOfWeek*/,
    -
    6957  0 /*onDayOfMonth*/,
    -
    6958  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    6959  240 /*atTimeCode (3600/15)*/,
    -
    6960  60 /*deltaMinutes*/,
    -
    6961  25 /*letterIndex ("S")*/,
    -
    6962  },
    -
    6963  // Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
    -
    6964  {
    -
    6965  1979 /*fromYear*/,
    -
    6966  1995 /*toYear*/,
    -
    6967  9 /*inMonth*/,
    -
    6968  7 /*onDayOfWeek*/,
    -
    6969  0 /*onDayOfMonth*/,
    -
    6970  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    6971  240 /*atTimeCode (3600/15)*/,
    -
    6972  0 /*deltaMinutes*/,
    -
    6973  0 /*letterIndex ("")*/,
    -
    6974  },
    -
    6975  // Rule EUAsia 1996 max - Oct lastSun 1:00u 0 -
    -
    6976  {
    -
    6977  1996 /*fromYear*/,
    -
    6978  32766 /*toYear*/,
    -
    6979  10 /*inMonth*/,
    -
    6980  7 /*onDayOfWeek*/,
    -
    6981  0 /*onDayOfMonth*/,
    -
    6982  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    6983  240 /*atTimeCode (3600/15)*/,
    -
    6984  0 /*deltaMinutes*/,
    -
    6985  0 /*letterIndex ("")*/,
    -
    6986  },
    -
    6987 
    -
    6988 };
    -
    6989 
    -
    6990 const complete::Info::ZonePolicy kZonePolicyEUAsia ACE_TIME_PROGMEM = {
    -
    6991  kZoneRulesEUAsia /*rules*/,
    -
    6992  4 /*numRules*/,
    -
    6993 };
    -
    6994 
    -
    6995 //---------------------------------------------------------------------------
    -
    6996 // Policy name: Ecuador
    -
    6997 // Rules: 3
    -
    6998 //---------------------------------------------------------------------------
    -
    6999 
    -
    7000 static const complete::Info::ZoneRule kZoneRulesEcuador[] ACE_TIME_PROGMEM = {
    -
    7001  // Anchor: Rule Ecuador 1993 only - Feb 5 0:00 0 -
    -
    7002  {
    -
    7003  -32767 /*fromYear*/,
    -
    7004  -32767 /*toYear*/,
    -
    7005  1 /*inMonth*/,
    -
    7006  0 /*onDayOfWeek*/,
    -
    7007  1 /*onDayOfMonth*/,
    -
    7008  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7009  0 /*atTimeCode (0/15)*/,
    -
    7010  0 /*deltaMinutes*/,
    -
    7011  0 /*letterIndex ("")*/,
    -
    7012  },
    -
    7013  // Rule Ecuador 1992 only - Nov 28 0:00 1:00 -
    -
    7014  {
    -
    7015  1992 /*fromYear*/,
    -
    7016  1992 /*toYear*/,
    -
    7017  11 /*inMonth*/,
    -
    7018  0 /*onDayOfWeek*/,
    -
    7019  28 /*onDayOfMonth*/,
    -
    7020  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7021  0 /*atTimeCode (0/15)*/,
    -
    7022  60 /*deltaMinutes*/,
    -
    7023  0 /*letterIndex ("")*/,
    -
    7024  },
    -
    7025  // Rule Ecuador 1993 only - Feb 5 0:00 0 -
    -
    7026  {
    -
    7027  1993 /*fromYear*/,
    -
    7028  1993 /*toYear*/,
    -
    7029  2 /*inMonth*/,
    -
    7030  0 /*onDayOfWeek*/,
    -
    7031  5 /*onDayOfMonth*/,
    -
    7032  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7033  0 /*atTimeCode (0/15)*/,
    -
    7034  0 /*deltaMinutes*/,
    -
    7035  0 /*letterIndex ("")*/,
    -
    7036  },
    -
    7037 
    -
    7038 };
    -
    7039 
    -
    7040 const complete::Info::ZonePolicy kZonePolicyEcuador ACE_TIME_PROGMEM = {
    -
    7041  kZoneRulesEcuador /*rules*/,
    -
    7042  3 /*numRules*/,
    -
    7043 };
    -
    7044 
    -
    7045 //---------------------------------------------------------------------------
    -
    7046 // Policy name: Edm
    -
    7047 // Rules: 14
    -
    7048 //---------------------------------------------------------------------------
    -
    7049 
    -
    7050 static const complete::Info::ZoneRule kZoneRulesEdm[] ACE_TIME_PROGMEM = {
    -
    7051  // Anchor: Rule Edm 1918 only - Oct 27 2:00 0 S
    -
    7052  {
    -
    7053  -32767 /*fromYear*/,
    -
    7054  -32767 /*toYear*/,
    -
    7055  1 /*inMonth*/,
    -
    7056  0 /*onDayOfWeek*/,
    -
    7057  1 /*onDayOfMonth*/,
    -
    7058  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7059  0 /*atTimeCode (0/15)*/,
    -
    7060  0 /*deltaMinutes*/,
    -
    7061  25 /*letterIndex ("S")*/,
    -
    7062  },
    -
    7063  // Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D
    -
    7064  {
    -
    7065  1918 /*fromYear*/,
    -
    7066  1919 /*toYear*/,
    -
    7067  4 /*inMonth*/,
    -
    7068  7 /*onDayOfWeek*/,
    -
    7069  8 /*onDayOfMonth*/,
    -
    7070  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7071  480 /*atTimeCode (7200/15)*/,
    -
    7072  60 /*deltaMinutes*/,
    -
    7073  13 /*letterIndex ("D")*/,
    -
    7074  },
    -
    7075  // Rule Edm 1918 only - Oct 27 2:00 0 S
    -
    7076  {
    -
    7077  1918 /*fromYear*/,
    -
    7078  1918 /*toYear*/,
    -
    7079  10 /*inMonth*/,
    -
    7080  0 /*onDayOfWeek*/,
    -
    7081  27 /*onDayOfMonth*/,
    -
    7082  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7083  480 /*atTimeCode (7200/15)*/,
    -
    7084  0 /*deltaMinutes*/,
    -
    7085  25 /*letterIndex ("S")*/,
    -
    7086  },
    -
    7087  // Rule Edm 1919 only - May 27 2:00 0 S
    -
    7088  {
    -
    7089  1919 /*fromYear*/,
    -
    7090  1919 /*toYear*/,
    -
    7091  5 /*inMonth*/,
    -
    7092  0 /*onDayOfWeek*/,
    -
    7093  27 /*onDayOfMonth*/,
    -
    7094  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7095  480 /*atTimeCode (7200/15)*/,
    -
    7096  0 /*deltaMinutes*/,
    -
    7097  25 /*letterIndex ("S")*/,
    -
    7098  },
    -
    7099  // Rule Edm 1920 1923 - Apr lastSun 2:00 1:00 D
    -
    7100  {
    -
    7101  1920 /*fromYear*/,
    -
    7102  1923 /*toYear*/,
    -
    7103  4 /*inMonth*/,
    -
    7104  7 /*onDayOfWeek*/,
    -
    7105  0 /*onDayOfMonth*/,
    -
    7106  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7107  480 /*atTimeCode (7200/15)*/,
    -
    7108  60 /*deltaMinutes*/,
    -
    7109  13 /*letterIndex ("D")*/,
    -
    7110  },
    -
    7111  // Rule Edm 1920 only - Oct lastSun 2:00 0 S
    -
    7112  {
    -
    7113  1920 /*fromYear*/,
    -
    7114  1920 /*toYear*/,
    -
    7115  10 /*inMonth*/,
    -
    7116  7 /*onDayOfWeek*/,
    -
    7117  0 /*onDayOfMonth*/,
    -
    7118  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7119  480 /*atTimeCode (7200/15)*/,
    -
    7120  0 /*deltaMinutes*/,
    -
    7121  25 /*letterIndex ("S")*/,
    -
    7122  },
    -
    7123  // Rule Edm 1921 1923 - Sep lastSun 2:00 0 S
    -
    7124  {
    -
    7125  1921 /*fromYear*/,
    -
    7126  1923 /*toYear*/,
    -
    7127  9 /*inMonth*/,
    -
    7128  7 /*onDayOfWeek*/,
    -
    7129  0 /*onDayOfMonth*/,
    -
    7130  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7131  480 /*atTimeCode (7200/15)*/,
    -
    7132  0 /*deltaMinutes*/,
    -
    7133  25 /*letterIndex ("S")*/,
    -
    7134  },
    -
    7135  // Rule Edm 1942 only - Feb 9 2:00 1:00 W
    -
    7136  {
    -
    7137  1942 /*fromYear*/,
    -
    7138  1942 /*toYear*/,
    -
    7139  2 /*inMonth*/,
    -
    7140  0 /*onDayOfWeek*/,
    -
    7141  9 /*onDayOfMonth*/,
    -
    7142  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7143  480 /*atTimeCode (7200/15)*/,
    -
    7144  60 /*deltaMinutes*/,
    -
    7145  26 /*letterIndex ("W")*/,
    -
    7146  },
    -
    7147  // Rule Edm 1945 only - Aug 14 23:00u 1:00 P
    -
    7148  {
    -
    7149  1945 /*fromYear*/,
    -
    7150  1945 /*toYear*/,
    -
    7151  8 /*inMonth*/,
    -
    7152  0 /*onDayOfWeek*/,
    -
    7153  14 /*onDayOfMonth*/,
    -
    7154  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    7155  5520 /*atTimeCode (82800/15)*/,
    -
    7156  60 /*deltaMinutes*/,
    -
    7157  24 /*letterIndex ("P")*/,
    -
    7158  },
    -
    7159  // Rule Edm 1945 only - Sep lastSun 2:00 0 S
    -
    7160  {
    -
    7161  1945 /*fromYear*/,
    -
    7162  1945 /*toYear*/,
    -
    7163  9 /*inMonth*/,
    -
    7164  7 /*onDayOfWeek*/,
    -
    7165  0 /*onDayOfMonth*/,
    -
    7166  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7167  480 /*atTimeCode (7200/15)*/,
    -
    7168  0 /*deltaMinutes*/,
    -
    7169  25 /*letterIndex ("S")*/,
    -
    7170  },
    -
    7171  // Rule Edm 1947 only - Apr lastSun 2:00 1:00 D
    -
    7172  {
    -
    7173  1947 /*fromYear*/,
    -
    7174  1947 /*toYear*/,
    -
    7175  4 /*inMonth*/,
    -
    7176  7 /*onDayOfWeek*/,
    -
    7177  0 /*onDayOfMonth*/,
    -
    7178  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7179  480 /*atTimeCode (7200/15)*/,
    -
    7180  60 /*deltaMinutes*/,
    -
    7181  13 /*letterIndex ("D")*/,
    -
    7182  },
    -
    7183  // Rule Edm 1947 only - Sep lastSun 2:00 0 S
    -
    7184  {
    -
    7185  1947 /*fromYear*/,
    -
    7186  1947 /*toYear*/,
    -
    7187  9 /*inMonth*/,
    -
    7188  7 /*onDayOfWeek*/,
    -
    7189  0 /*onDayOfMonth*/,
    -
    7190  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7191  480 /*atTimeCode (7200/15)*/,
    -
    7192  0 /*deltaMinutes*/,
    -
    7193  25 /*letterIndex ("S")*/,
    -
    7194  },
    -
    7195  // Rule Edm 1972 1986 - Apr lastSun 2:00 1:00 D
    -
    7196  {
    -
    7197  1972 /*fromYear*/,
    -
    7198  1986 /*toYear*/,
    -
    7199  4 /*inMonth*/,
    -
    7200  7 /*onDayOfWeek*/,
    -
    7201  0 /*onDayOfMonth*/,
    -
    7202  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7203  480 /*atTimeCode (7200/15)*/,
    -
    7204  60 /*deltaMinutes*/,
    -
    7205  13 /*letterIndex ("D")*/,
    -
    7206  },
    -
    7207  // Rule Edm 1972 2006 - Oct lastSun 2:00 0 S
    -
    7208  {
    -
    7209  1972 /*fromYear*/,
    -
    7210  2006 /*toYear*/,
    -
    7211  10 /*inMonth*/,
    -
    7212  7 /*onDayOfWeek*/,
    -
    7213  0 /*onDayOfMonth*/,
    -
    7214  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7215  480 /*atTimeCode (7200/15)*/,
    -
    7216  0 /*deltaMinutes*/,
    -
    7217  25 /*letterIndex ("S")*/,
    -
    7218  },
    -
    7219 
    -
    7220 };
    -
    7221 
    -
    7222 const complete::Info::ZonePolicy kZonePolicyEdm ACE_TIME_PROGMEM = {
    -
    7223  kZoneRulesEdm /*rules*/,
    -
    7224  14 /*numRules*/,
    -
    7225 };
    -
    7226 
    -
    7227 //---------------------------------------------------------------------------
    -
    7228 // Policy name: Egypt
    -
    7229 // Rules: 35
    -
    7230 //---------------------------------------------------------------------------
    -
    7231 
    -
    7232 static const complete::Info::ZoneRule kZoneRulesEgypt[] ACE_TIME_PROGMEM = {
    -
    7233  // Anchor: Rule Egypt 1940 only - Oct 1 0:00 0 -
    -
    7234  {
    -
    7235  -32767 /*fromYear*/,
    -
    7236  -32767 /*toYear*/,
    -
    7237  1 /*inMonth*/,
    -
    7238  0 /*onDayOfWeek*/,
    -
    7239  1 /*onDayOfMonth*/,
    -
    7240  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7241  0 /*atTimeCode (0/15)*/,
    -
    7242  0 /*deltaMinutes*/,
    -
    7243  0 /*letterIndex ("")*/,
    -
    7244  },
    -
    7245  // Rule Egypt 1940 only - Jul 15 0:00 1:00 S
    -
    7246  {
    -
    7247  1940 /*fromYear*/,
    -
    7248  1940 /*toYear*/,
    -
    7249  7 /*inMonth*/,
    -
    7250  0 /*onDayOfWeek*/,
    -
    7251  15 /*onDayOfMonth*/,
    -
    7252  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7253  0 /*atTimeCode (0/15)*/,
    -
    7254  60 /*deltaMinutes*/,
    -
    7255  25 /*letterIndex ("S")*/,
    -
    7256  },
    -
    7257  // Rule Egypt 1940 only - Oct 1 0:00 0 -
    -
    7258  {
    -
    7259  1940 /*fromYear*/,
    -
    7260  1940 /*toYear*/,
    -
    7261  10 /*inMonth*/,
    -
    7262  0 /*onDayOfWeek*/,
    -
    7263  1 /*onDayOfMonth*/,
    -
    7264  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7265  0 /*atTimeCode (0/15)*/,
    -
    7266  0 /*deltaMinutes*/,
    -
    7267  0 /*letterIndex ("")*/,
    -
    7268  },
    -
    7269  // Rule Egypt 1941 only - Apr 15 0:00 1:00 S
    -
    7270  {
    -
    7271  1941 /*fromYear*/,
    -
    7272  1941 /*toYear*/,
    -
    7273  4 /*inMonth*/,
    -
    7274  0 /*onDayOfWeek*/,
    -
    7275  15 /*onDayOfMonth*/,
    -
    7276  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7277  0 /*atTimeCode (0/15)*/,
    -
    7278  60 /*deltaMinutes*/,
    -
    7279  25 /*letterIndex ("S")*/,
    -
    7280  },
    -
    7281  // Rule Egypt 1941 only - Sep 16 0:00 0 -
    -
    7282  {
    -
    7283  1941 /*fromYear*/,
    -
    7284  1941 /*toYear*/,
    -
    7285  9 /*inMonth*/,
    -
    7286  0 /*onDayOfWeek*/,
    -
    7287  16 /*onDayOfMonth*/,
    -
    7288  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7289  0 /*atTimeCode (0/15)*/,
    -
    7290  0 /*deltaMinutes*/,
    -
    7291  0 /*letterIndex ("")*/,
    -
    7292  },
    -
    7293  // Rule Egypt 1942 1944 - Apr 1 0:00 1:00 S
    -
    7294  {
    -
    7295  1942 /*fromYear*/,
    -
    7296  1944 /*toYear*/,
    -
    7297  4 /*inMonth*/,
    -
    7298  0 /*onDayOfWeek*/,
    -
    7299  1 /*onDayOfMonth*/,
    -
    7300  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7301  0 /*atTimeCode (0/15)*/,
    -
    7302  60 /*deltaMinutes*/,
    -
    7303  25 /*letterIndex ("S")*/,
    -
    7304  },
    -
    7305  // Rule Egypt 1942 only - Oct 27 0:00 0 -
    -
    7306  {
    -
    7307  1942 /*fromYear*/,
    -
    7308  1942 /*toYear*/,
    -
    7309  10 /*inMonth*/,
    -
    7310  0 /*onDayOfWeek*/,
    -
    7311  27 /*onDayOfMonth*/,
    -
    7312  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7313  0 /*atTimeCode (0/15)*/,
    -
    7314  0 /*deltaMinutes*/,
    -
    7315  0 /*letterIndex ("")*/,
    -
    7316  },
    -
    7317  // Rule Egypt 1943 1945 - Nov 1 0:00 0 -
    -
    7318  {
    -
    7319  1943 /*fromYear*/,
    -
    7320  1945 /*toYear*/,
    -
    7321  11 /*inMonth*/,
    -
    7322  0 /*onDayOfWeek*/,
    -
    7323  1 /*onDayOfMonth*/,
    -
    7324  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7325  0 /*atTimeCode (0/15)*/,
    -
    7326  0 /*deltaMinutes*/,
    -
    7327  0 /*letterIndex ("")*/,
    -
    7328  },
    -
    7329  // Rule Egypt 1945 only - Apr 16 0:00 1:00 S
    -
    7330  {
    -
    7331  1945 /*fromYear*/,
    -
    7332  1945 /*toYear*/,
    -
    7333  4 /*inMonth*/,
    -
    7334  0 /*onDayOfWeek*/,
    -
    7335  16 /*onDayOfMonth*/,
    -
    7336  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7337  0 /*atTimeCode (0/15)*/,
    -
    7338  60 /*deltaMinutes*/,
    -
    7339  25 /*letterIndex ("S")*/,
    -
    7340  },
    -
    7341  // Rule Egypt 1957 only - May 10 0:00 1:00 S
    -
    7342  {
    -
    7343  1957 /*fromYear*/,
    -
    7344  1957 /*toYear*/,
    -
    7345  5 /*inMonth*/,
    -
    7346  0 /*onDayOfWeek*/,
    -
    7347  10 /*onDayOfMonth*/,
    -
    7348  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7349  0 /*atTimeCode (0/15)*/,
    -
    7350  60 /*deltaMinutes*/,
    -
    7351  25 /*letterIndex ("S")*/,
    -
    7352  },
    -
    7353  // Rule Egypt 1957 1958 - Oct 1 0:00 0 -
    -
    7354  {
    -
    7355  1957 /*fromYear*/,
    -
    7356  1958 /*toYear*/,
    -
    7357  10 /*inMonth*/,
    -
    7358  0 /*onDayOfWeek*/,
    -
    7359  1 /*onDayOfMonth*/,
    -
    7360  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7361  0 /*atTimeCode (0/15)*/,
    -
    7362  0 /*deltaMinutes*/,
    -
    7363  0 /*letterIndex ("")*/,
    -
    7364  },
    -
    7365  // Rule Egypt 1958 only - May 1 0:00 1:00 S
    -
    7366  {
    -
    7367  1958 /*fromYear*/,
    -
    7368  1958 /*toYear*/,
    -
    7369  5 /*inMonth*/,
    -
    7370  0 /*onDayOfWeek*/,
    -
    7371  1 /*onDayOfMonth*/,
    -
    7372  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7373  0 /*atTimeCode (0/15)*/,
    -
    7374  60 /*deltaMinutes*/,
    -
    7375  25 /*letterIndex ("S")*/,
    -
    7376  },
    -
    7377  // Rule Egypt 1959 1981 - May 1 1:00 1:00 S
    -
    7378  {
    -
    7379  1959 /*fromYear*/,
    -
    7380  1981 /*toYear*/,
    -
    7381  5 /*inMonth*/,
    -
    7382  0 /*onDayOfWeek*/,
    -
    7383  1 /*onDayOfMonth*/,
    -
    7384  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7385  240 /*atTimeCode (3600/15)*/,
    -
    7386  60 /*deltaMinutes*/,
    -
    7387  25 /*letterIndex ("S")*/,
    -
    7388  },
    -
    7389  // Rule Egypt 1959 1965 - Sep 30 3:00 0 -
    -
    7390  {
    -
    7391  1959 /*fromYear*/,
    -
    7392  1965 /*toYear*/,
    -
    7393  9 /*inMonth*/,
    -
    7394  0 /*onDayOfWeek*/,
    -
    7395  30 /*onDayOfMonth*/,
    -
    7396  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7397  720 /*atTimeCode (10800/15)*/,
    -
    7398  0 /*deltaMinutes*/,
    -
    7399  0 /*letterIndex ("")*/,
    -
    7400  },
    -
    7401  // Rule Egypt 1966 1994 - Oct 1 3:00 0 -
    -
    7402  {
    -
    7403  1966 /*fromYear*/,
    -
    7404  1994 /*toYear*/,
    -
    7405  10 /*inMonth*/,
    -
    7406  0 /*onDayOfWeek*/,
    -
    7407  1 /*onDayOfMonth*/,
    -
    7408  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7409  720 /*atTimeCode (10800/15)*/,
    -
    7410  0 /*deltaMinutes*/,
    -
    7411  0 /*letterIndex ("")*/,
    -
    7412  },
    -
    7413  // Rule Egypt 1982 only - Jul 25 1:00 1:00 S
    -
    7414  {
    -
    7415  1982 /*fromYear*/,
    -
    7416  1982 /*toYear*/,
    -
    7417  7 /*inMonth*/,
    -
    7418  0 /*onDayOfWeek*/,
    -
    7419  25 /*onDayOfMonth*/,
    -
    7420  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7421  240 /*atTimeCode (3600/15)*/,
    -
    7422  60 /*deltaMinutes*/,
    -
    7423  25 /*letterIndex ("S")*/,
    -
    7424  },
    -
    7425  // Rule Egypt 1983 only - Jul 12 1:00 1:00 S
    -
    7426  {
    -
    7427  1983 /*fromYear*/,
    -
    7428  1983 /*toYear*/,
    -
    7429  7 /*inMonth*/,
    -
    7430  0 /*onDayOfWeek*/,
    -
    7431  12 /*onDayOfMonth*/,
    -
    7432  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7433  240 /*atTimeCode (3600/15)*/,
    -
    7434  60 /*deltaMinutes*/,
    -
    7435  25 /*letterIndex ("S")*/,
    -
    7436  },
    -
    7437  // Rule Egypt 1984 1988 - May 1 1:00 1:00 S
    -
    7438  {
    -
    7439  1984 /*fromYear*/,
    -
    7440  1988 /*toYear*/,
    -
    7441  5 /*inMonth*/,
    -
    7442  0 /*onDayOfWeek*/,
    -
    7443  1 /*onDayOfMonth*/,
    -
    7444  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7445  240 /*atTimeCode (3600/15)*/,
    -
    7446  60 /*deltaMinutes*/,
    -
    7447  25 /*letterIndex ("S")*/,
    -
    7448  },
    -
    7449  // Rule Egypt 1989 only - May 6 1:00 1:00 S
    -
    7450  {
    -
    7451  1989 /*fromYear*/,
    -
    7452  1989 /*toYear*/,
    -
    7453  5 /*inMonth*/,
    -
    7454  0 /*onDayOfWeek*/,
    -
    7455  6 /*onDayOfMonth*/,
    -
    7456  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7457  240 /*atTimeCode (3600/15)*/,
    -
    7458  60 /*deltaMinutes*/,
    -
    7459  25 /*letterIndex ("S")*/,
    -
    7460  },
    -
    7461  // Rule Egypt 1990 1994 - May 1 1:00 1:00 S
    -
    7462  {
    -
    7463  1990 /*fromYear*/,
    -
    7464  1994 /*toYear*/,
    -
    7465  5 /*inMonth*/,
    -
    7466  0 /*onDayOfWeek*/,
    -
    7467  1 /*onDayOfMonth*/,
    -
    7468  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7469  240 /*atTimeCode (3600/15)*/,
    -
    7470  60 /*deltaMinutes*/,
    -
    7471  25 /*letterIndex ("S")*/,
    -
    7472  },
    -
    7473  // Rule Egypt 1995 2010 - Apr lastFri 0:00s 1:00 S
    -
    7474  {
    -
    7475  1995 /*fromYear*/,
    -
    7476  2010 /*toYear*/,
    -
    7477  4 /*inMonth*/,
    -
    7478  5 /*onDayOfWeek*/,
    -
    7479  0 /*onDayOfMonth*/,
    -
    7480  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    7481  0 /*atTimeCode (0/15)*/,
    -
    7482  60 /*deltaMinutes*/,
    -
    7483  25 /*letterIndex ("S")*/,
    -
    7484  },
    -
    7485  // Rule Egypt 1995 2005 - Sep lastThu 24:00 0 -
    -
    7486  {
    -
    7487  1995 /*fromYear*/,
    -
    7488  2005 /*toYear*/,
    -
    7489  9 /*inMonth*/,
    -
    7490  4 /*onDayOfWeek*/,
    -
    7491  0 /*onDayOfMonth*/,
    -
    7492  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7493  5760 /*atTimeCode (86400/15)*/,
    -
    7494  0 /*deltaMinutes*/,
    -
    7495  0 /*letterIndex ("")*/,
    -
    7496  },
    -
    7497  // Rule Egypt 2006 only - Sep 21 24:00 0 -
    -
    7498  {
    -
    7499  2006 /*fromYear*/,
    -
    7500  2006 /*toYear*/,
    -
    7501  9 /*inMonth*/,
    -
    7502  0 /*onDayOfWeek*/,
    -
    7503  21 /*onDayOfMonth*/,
    -
    7504  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7505  5760 /*atTimeCode (86400/15)*/,
    -
    7506  0 /*deltaMinutes*/,
    -
    7507  0 /*letterIndex ("")*/,
    -
    7508  },
    -
    7509  // Rule Egypt 2007 only - Sep Thu>=1 24:00 0 -
    -
    7510  {
    -
    7511  2007 /*fromYear*/,
    -
    7512  2007 /*toYear*/,
    -
    7513  9 /*inMonth*/,
    -
    7514  4 /*onDayOfWeek*/,
    -
    7515  1 /*onDayOfMonth*/,
    -
    7516  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7517  5760 /*atTimeCode (86400/15)*/,
    -
    7518  0 /*deltaMinutes*/,
    -
    7519  0 /*letterIndex ("")*/,
    -
    7520  },
    -
    7521  // Rule Egypt 2008 only - Aug lastThu 24:00 0 -
    -
    7522  {
    -
    7523  2008 /*fromYear*/,
    -
    7524  2008 /*toYear*/,
    -
    7525  8 /*inMonth*/,
    -
    7526  4 /*onDayOfWeek*/,
    -
    7527  0 /*onDayOfMonth*/,
    -
    7528  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7529  5760 /*atTimeCode (86400/15)*/,
    -
    7530  0 /*deltaMinutes*/,
    -
    7531  0 /*letterIndex ("")*/,
    -
    7532  },
    -
    7533  // Rule Egypt 2009 only - Aug 20 24:00 0 -
    -
    7534  {
    -
    7535  2009 /*fromYear*/,
    -
    7536  2009 /*toYear*/,
    -
    7537  8 /*inMonth*/,
    -
    7538  0 /*onDayOfWeek*/,
    -
    7539  20 /*onDayOfMonth*/,
    -
    7540  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7541  5760 /*atTimeCode (86400/15)*/,
    -
    7542  0 /*deltaMinutes*/,
    -
    7543  0 /*letterIndex ("")*/,
    -
    7544  },
    -
    7545  // Rule Egypt 2010 only - Aug 10 24:00 0 -
    -
    7546  {
    -
    7547  2010 /*fromYear*/,
    -
    7548  2010 /*toYear*/,
    -
    7549  8 /*inMonth*/,
    -
    7550  0 /*onDayOfWeek*/,
    -
    7551  10 /*onDayOfMonth*/,
    -
    7552  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7553  5760 /*atTimeCode (86400/15)*/,
    -
    7554  0 /*deltaMinutes*/,
    -
    7555  0 /*letterIndex ("")*/,
    -
    7556  },
    -
    7557  // Rule Egypt 2010 only - Sep 9 24:00 1:00 S
    -
    7558  {
    -
    7559  2010 /*fromYear*/,
    -
    7560  2010 /*toYear*/,
    -
    7561  9 /*inMonth*/,
    -
    7562  0 /*onDayOfWeek*/,
    -
    7563  9 /*onDayOfMonth*/,
    -
    7564  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7565  5760 /*atTimeCode (86400/15)*/,
    -
    7566  60 /*deltaMinutes*/,
    -
    7567  25 /*letterIndex ("S")*/,
    -
    7568  },
    -
    7569  // Rule Egypt 2010 only - Sep lastThu 24:00 0 -
    -
    7570  {
    -
    7571  2010 /*fromYear*/,
    -
    7572  2010 /*toYear*/,
    -
    7573  9 /*inMonth*/,
    -
    7574  4 /*onDayOfWeek*/,
    -
    7575  0 /*onDayOfMonth*/,
    -
    7576  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7577  5760 /*atTimeCode (86400/15)*/,
    -
    7578  0 /*deltaMinutes*/,
    -
    7579  0 /*letterIndex ("")*/,
    -
    7580  },
    -
    7581  // Rule Egypt 2014 only - May 15 24:00 1:00 S
    -
    7582  {
    -
    7583  2014 /*fromYear*/,
    -
    7584  2014 /*toYear*/,
    -
    7585  5 /*inMonth*/,
    -
    7586  0 /*onDayOfWeek*/,
    -
    7587  15 /*onDayOfMonth*/,
    -
    7588  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7589  5760 /*atTimeCode (86400/15)*/,
    -
    7590  60 /*deltaMinutes*/,
    -
    7591  25 /*letterIndex ("S")*/,
    -
    7592  },
    -
    7593  // Rule Egypt 2014 only - Jun 26 24:00 0 -
    -
    7594  {
    -
    7595  2014 /*fromYear*/,
    -
    7596  2014 /*toYear*/,
    -
    7597  6 /*inMonth*/,
    -
    7598  0 /*onDayOfWeek*/,
    -
    7599  26 /*onDayOfMonth*/,
    -
    7600  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7601  5760 /*atTimeCode (86400/15)*/,
    -
    7602  0 /*deltaMinutes*/,
    -
    7603  0 /*letterIndex ("")*/,
    -
    7604  },
    -
    7605  // Rule Egypt 2014 only - Jul 31 24:00 1:00 S
    -
    7606  {
    -
    7607  2014 /*fromYear*/,
    -
    7608  2014 /*toYear*/,
    -
    7609  7 /*inMonth*/,
    -
    7610  0 /*onDayOfWeek*/,
    -
    7611  31 /*onDayOfMonth*/,
    -
    7612  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7613  5760 /*atTimeCode (86400/15)*/,
    -
    7614  60 /*deltaMinutes*/,
    -
    7615  25 /*letterIndex ("S")*/,
    -
    7616  },
    -
    7617  // Rule Egypt 2014 only - Sep lastThu 24:00 0 -
    -
    7618  {
    -
    7619  2014 /*fromYear*/,
    -
    7620  2014 /*toYear*/,
    -
    7621  9 /*inMonth*/,
    -
    7622  4 /*onDayOfWeek*/,
    -
    7623  0 /*onDayOfMonth*/,
    -
    7624  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7625  5760 /*atTimeCode (86400/15)*/,
    -
    7626  0 /*deltaMinutes*/,
    -
    7627  0 /*letterIndex ("")*/,
    -
    7628  },
    -
    7629  // Rule Egypt 2023 max - Apr lastFri 0:00 1:00 S
    -
    7630  {
    -
    7631  2023 /*fromYear*/,
    -
    7632  32766 /*toYear*/,
    -
    7633  4 /*inMonth*/,
    -
    7634  5 /*onDayOfWeek*/,
    -
    7635  0 /*onDayOfMonth*/,
    -
    7636  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7637  0 /*atTimeCode (0/15)*/,
    -
    7638  60 /*deltaMinutes*/,
    -
    7639  25 /*letterIndex ("S")*/,
    -
    7640  },
    -
    7641  // Rule Egypt 2023 max - Oct lastThu 24:00 0 -
    -
    7642  {
    -
    7643  2023 /*fromYear*/,
    -
    7644  32766 /*toYear*/,
    -
    7645  10 /*inMonth*/,
    -
    7646  4 /*onDayOfWeek*/,
    -
    7647  0 /*onDayOfMonth*/,
    -
    7648  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7649  5760 /*atTimeCode (86400/15)*/,
    -
    7650  0 /*deltaMinutes*/,
    -
    7651  0 /*letterIndex ("")*/,
    -
    7652  },
    -
    7653 
    -
    7654 };
    -
    7655 
    -
    7656 const complete::Info::ZonePolicy kZonePolicyEgypt ACE_TIME_PROGMEM = {
    -
    7657  kZoneRulesEgypt /*rules*/,
    -
    7658  35 /*numRules*/,
    -
    7659 };
    -
    7660 
    -
    7661 //---------------------------------------------------------------------------
    -
    7662 // Policy name: EgyptAsia
    -
    7663 // Rules: 7
    -
    7664 //---------------------------------------------------------------------------
    -
    7665 
    -
    7666 static const complete::Info::ZoneRule kZoneRulesEgyptAsia[] ACE_TIME_PROGMEM = {
    -
    7667  // Anchor: Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
    -
    7668  {
    -
    7669  -32767 /*fromYear*/,
    -
    7670  -32767 /*toYear*/,
    -
    7671  1 /*inMonth*/,
    -
    7672  0 /*onDayOfWeek*/,
    -
    7673  1 /*onDayOfMonth*/,
    -
    7674  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7675  0 /*atTimeCode (0/15)*/,
    -
    7676  0 /*deltaMinutes*/,
    -
    7677  0 /*letterIndex ("")*/,
    -
    7678  },
    -
    7679  // Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
    -
    7680  {
    -
    7681  1957 /*fromYear*/,
    -
    7682  1957 /*toYear*/,
    -
    7683  5 /*inMonth*/,
    -
    7684  0 /*onDayOfWeek*/,
    -
    7685  10 /*onDayOfMonth*/,
    -
    7686  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7687  0 /*atTimeCode (0/15)*/,
    -
    7688  60 /*deltaMinutes*/,
    -
    7689  25 /*letterIndex ("S")*/,
    -
    7690  },
    -
    7691  // Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
    -
    7692  {
    -
    7693  1957 /*fromYear*/,
    -
    7694  1958 /*toYear*/,
    -
    7695  10 /*inMonth*/,
    -
    7696  0 /*onDayOfWeek*/,
    -
    7697  1 /*onDayOfMonth*/,
    -
    7698  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7699  0 /*atTimeCode (0/15)*/,
    -
    7700  0 /*deltaMinutes*/,
    -
    7701  0 /*letterIndex ("")*/,
    -
    7702  },
    -
    7703  // Rule EgyptAsia 1958 only - May 1 0:00 1:00 S
    -
    7704  {
    -
    7705  1958 /*fromYear*/,
    -
    7706  1958 /*toYear*/,
    -
    7707  5 /*inMonth*/,
    -
    7708  0 /*onDayOfWeek*/,
    -
    7709  1 /*onDayOfMonth*/,
    -
    7710  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7711  0 /*atTimeCode (0/15)*/,
    -
    7712  60 /*deltaMinutes*/,
    -
    7713  25 /*letterIndex ("S")*/,
    -
    7714  },
    -
    7715  // Rule EgyptAsia 1959 1967 - May 1 1:00 1:00 S
    -
    7716  {
    -
    7717  1959 /*fromYear*/,
    -
    7718  1967 /*toYear*/,
    -
    7719  5 /*inMonth*/,
    -
    7720  0 /*onDayOfWeek*/,
    -
    7721  1 /*onDayOfMonth*/,
    -
    7722  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7723  240 /*atTimeCode (3600/15)*/,
    -
    7724  60 /*deltaMinutes*/,
    -
    7725  25 /*letterIndex ("S")*/,
    -
    7726  },
    -
    7727  // Rule EgyptAsia 1959 1965 - Sep 30 3:00 0 -
    -
    7728  {
    -
    7729  1959 /*fromYear*/,
    -
    7730  1965 /*toYear*/,
    -
    7731  9 /*inMonth*/,
    -
    7732  0 /*onDayOfWeek*/,
    -
    7733  30 /*onDayOfMonth*/,
    -
    7734  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7735  720 /*atTimeCode (10800/15)*/,
    -
    7736  0 /*deltaMinutes*/,
    -
    7737  0 /*letterIndex ("")*/,
    -
    7738  },
    -
    7739  // Rule EgyptAsia 1966 only - Oct 1 3:00 0 -
    -
    7740  {
    -
    7741  1966 /*fromYear*/,
    -
    7742  1966 /*toYear*/,
    -
    7743  10 /*inMonth*/,
    -
    7744  0 /*onDayOfWeek*/,
    -
    7745  1 /*onDayOfMonth*/,
    -
    7746  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7747  720 /*atTimeCode (10800/15)*/,
    -
    7748  0 /*deltaMinutes*/,
    -
    7749  0 /*letterIndex ("")*/,
    -
    7750  },
    -
    7751 
    -
    7752 };
    -
    7753 
    -
    7754 const complete::Info::ZonePolicy kZonePolicyEgyptAsia ACE_TIME_PROGMEM = {
    -
    7755  kZoneRulesEgyptAsia /*rules*/,
    -
    7756  7 /*numRules*/,
    -
    7757 };
    -
    7758 
    -
    7759 //---------------------------------------------------------------------------
    -
    7760 // Policy name: Eire
    -
    7761 // Rules: 8
    -
    7762 //---------------------------------------------------------------------------
    -
    7763 
    -
    7764 static const complete::Info::ZoneRule kZoneRulesEire[] ACE_TIME_PROGMEM = {
    -
    7765  // Anchor: Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 -
    -
    7766  {
    -
    7767  -32767 /*fromYear*/,
    -
    7768  -32767 /*toYear*/,
    -
    7769  1 /*inMonth*/,
    -
    7770  0 /*onDayOfWeek*/,
    -
    7771  1 /*onDayOfMonth*/,
    -
    7772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7773  0 /*atTimeCode (0/15)*/,
    -
    7774  0 /*deltaMinutes*/,
    -
    7775  0 /*letterIndex ("")*/,
    -
    7776  },
    -
    7777  // Rule Eire 1971 only - Oct 31 2:00u -1:00 -
    -
    7778  {
    -
    7779  1971 /*fromYear*/,
    -
    7780  1971 /*toYear*/,
    -
    7781  10 /*inMonth*/,
    -
    7782  0 /*onDayOfWeek*/,
    -
    7783  31 /*onDayOfMonth*/,
    -
    7784  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    7785  480 /*atTimeCode (7200/15)*/,
    -
    7786  -60 /*deltaMinutes*/,
    -
    7787  0 /*letterIndex ("")*/,
    -
    7788  },
    -
    7789  // Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 -
    -
    7790  {
    -
    7791  1972 /*fromYear*/,
    -
    7792  1980 /*toYear*/,
    -
    7793  3 /*inMonth*/,
    -
    7794  7 /*onDayOfWeek*/,
    -
    7795  16 /*onDayOfMonth*/,
    -
    7796  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    7797  480 /*atTimeCode (7200/15)*/,
    -
    7798  0 /*deltaMinutes*/,
    -
    7799  0 /*letterIndex ("")*/,
    -
    7800  },
    -
    7801  // Rule Eire 1972 1980 - Oct Sun>=23 2:00u -1:00 -
    -
    7802  {
    -
    7803  1972 /*fromYear*/,
    -
    7804  1980 /*toYear*/,
    -
    7805  10 /*inMonth*/,
    -
    7806  7 /*onDayOfWeek*/,
    -
    7807  23 /*onDayOfMonth*/,
    -
    7808  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    7809  480 /*atTimeCode (7200/15)*/,
    -
    7810  -60 /*deltaMinutes*/,
    -
    7811  0 /*letterIndex ("")*/,
    -
    7812  },
    -
    7813  // Rule Eire 1981 max - Mar lastSun 1:00u 0 -
    -
    7814  {
    -
    7815  1981 /*fromYear*/,
    -
    7816  32766 /*toYear*/,
    -
    7817  3 /*inMonth*/,
    -
    7818  7 /*onDayOfWeek*/,
    -
    7819  0 /*onDayOfMonth*/,
    -
    7820  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    7821  240 /*atTimeCode (3600/15)*/,
    -
    7822  0 /*deltaMinutes*/,
    -
    7823  0 /*letterIndex ("")*/,
    -
    7824  },
    -
    7825  // Rule Eire 1981 1989 - Oct Sun>=23 1:00u -1:00 -
    -
    7826  {
    -
    7827  1981 /*fromYear*/,
    -
    7828  1989 /*toYear*/,
    -
    7829  10 /*inMonth*/,
    -
    7830  7 /*onDayOfWeek*/,
    -
    7831  23 /*onDayOfMonth*/,
    -
    7832  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    7833  240 /*atTimeCode (3600/15)*/,
    -
    7834  -60 /*deltaMinutes*/,
    -
    7835  0 /*letterIndex ("")*/,
    -
    7836  },
    -
    7837  // Rule Eire 1990 1995 - Oct Sun>=22 1:00u -1:00 -
    -
    7838  {
    -
    7839  1990 /*fromYear*/,
    -
    7840  1995 /*toYear*/,
    -
    7841  10 /*inMonth*/,
    -
    7842  7 /*onDayOfWeek*/,
    -
    7843  22 /*onDayOfMonth*/,
    -
    7844  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    7845  240 /*atTimeCode (3600/15)*/,
    -
    7846  -60 /*deltaMinutes*/,
    -
    7847  0 /*letterIndex ("")*/,
    -
    7848  },
    -
    7849  // Rule Eire 1996 max - Oct lastSun 1:00u -1:00 -
    -
    7850  {
    -
    7851  1996 /*fromYear*/,
    -
    7852  32766 /*toYear*/,
    -
    7853  10 /*inMonth*/,
    -
    7854  7 /*onDayOfWeek*/,
    -
    7855  0 /*onDayOfMonth*/,
    -
    7856  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    7857  240 /*atTimeCode (3600/15)*/,
    -
    7858  -60 /*deltaMinutes*/,
    -
    7859  0 /*letterIndex ("")*/,
    -
    7860  },
    -
    7861 
    -
    7862 };
    -
    7863 
    -
    7864 const complete::Info::ZonePolicy kZonePolicyEire ACE_TIME_PROGMEM = {
    -
    7865  kZoneRulesEire /*rules*/,
    -
    7866  8 /*numRules*/,
    -
    7867 };
    -
    7868 
    -
    7869 //---------------------------------------------------------------------------
    -
    7870 // Policy name: Falk
    -
    7871 // Rules: 13
    -
    7872 //---------------------------------------------------------------------------
    -
    7873 
    -
    7874 static const complete::Info::ZoneRule kZoneRulesFalk[] ACE_TIME_PROGMEM = {
    -
    7875  // Anchor: Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 -
    -
    7876  {
    -
    7877  -32767 /*fromYear*/,
    -
    7878  -32767 /*toYear*/,
    -
    7879  1 /*inMonth*/,
    -
    7880  0 /*onDayOfWeek*/,
    -
    7881  1 /*onDayOfMonth*/,
    -
    7882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7883  0 /*atTimeCode (0/15)*/,
    -
    7884  0 /*deltaMinutes*/,
    -
    7885  0 /*letterIndex ("")*/,
    -
    7886  },
    -
    7887  // Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 -
    -
    7888  {
    -
    7889  1937 /*fromYear*/,
    -
    7890  1938 /*toYear*/,
    -
    7891  9 /*inMonth*/,
    -
    7892  7 /*onDayOfWeek*/,
    -
    7893  0 /*onDayOfMonth*/,
    -
    7894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7895  0 /*atTimeCode (0/15)*/,
    -
    7896  60 /*deltaMinutes*/,
    -
    7897  0 /*letterIndex ("")*/,
    -
    7898  },
    -
    7899  // Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 -
    -
    7900  {
    -
    7901  1938 /*fromYear*/,
    -
    7902  1942 /*toYear*/,
    -
    7903  3 /*inMonth*/,
    -
    7904  7 /*onDayOfWeek*/,
    -
    7905  19 /*onDayOfMonth*/,
    -
    7906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7907  0 /*atTimeCode (0/15)*/,
    -
    7908  0 /*deltaMinutes*/,
    -
    7909  0 /*letterIndex ("")*/,
    -
    7910  },
    -
    7911  // Rule Falk 1939 only - Oct 1 0:00 1:00 -
    -
    7912  {
    -
    7913  1939 /*fromYear*/,
    -
    7914  1939 /*toYear*/,
    -
    7915  10 /*inMonth*/,
    -
    7916  0 /*onDayOfWeek*/,
    -
    7917  1 /*onDayOfMonth*/,
    -
    7918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7919  0 /*atTimeCode (0/15)*/,
    -
    7920  60 /*deltaMinutes*/,
    -
    7921  0 /*letterIndex ("")*/,
    -
    7922  },
    -
    7923  // Rule Falk 1940 1942 - Sep lastSun 0:00 1:00 -
    -
    7924  {
    -
    7925  1940 /*fromYear*/,
    -
    7926  1942 /*toYear*/,
    -
    7927  9 /*inMonth*/,
    -
    7928  7 /*onDayOfWeek*/,
    -
    7929  0 /*onDayOfMonth*/,
    -
    7930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7931  0 /*atTimeCode (0/15)*/,
    -
    7932  60 /*deltaMinutes*/,
    -
    7933  0 /*letterIndex ("")*/,
    -
    7934  },
    -
    7935  // Rule Falk 1943 only - Jan 1 0:00 0 -
    -
    7936  {
    -
    7937  1943 /*fromYear*/,
    -
    7938  1943 /*toYear*/,
    -
    7939  1 /*inMonth*/,
    -
    7940  0 /*onDayOfWeek*/,
    -
    7941  1 /*onDayOfMonth*/,
    -
    7942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7943  0 /*atTimeCode (0/15)*/,
    -
    7944  0 /*deltaMinutes*/,
    -
    7945  0 /*letterIndex ("")*/,
    -
    7946  },
    -
    7947  // Rule Falk 1983 only - Sep lastSun 0:00 1:00 -
    -
    7948  {
    -
    7949  1983 /*fromYear*/,
    -
    7950  1983 /*toYear*/,
    -
    7951  9 /*inMonth*/,
    -
    7952  7 /*onDayOfWeek*/,
    -
    7953  0 /*onDayOfMonth*/,
    -
    7954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7955  0 /*atTimeCode (0/15)*/,
    -
    7956  60 /*deltaMinutes*/,
    -
    7957  0 /*letterIndex ("")*/,
    -
    7958  },
    -
    7959  // Rule Falk 1984 1985 - Apr lastSun 0:00 0 -
    -
    7960  {
    -
    7961  1984 /*fromYear*/,
    -
    7962  1985 /*toYear*/,
    -
    7963  4 /*inMonth*/,
    -
    7964  7 /*onDayOfWeek*/,
    -
    7965  0 /*onDayOfMonth*/,
    -
    7966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7967  0 /*atTimeCode (0/15)*/,
    -
    7968  0 /*deltaMinutes*/,
    -
    7969  0 /*letterIndex ("")*/,
    -
    7970  },
    -
    7971  // Rule Falk 1984 only - Sep 16 0:00 1:00 -
    -
    7972  {
    -
    7973  1984 /*fromYear*/,
    -
    7974  1984 /*toYear*/,
    -
    7975  9 /*inMonth*/,
    -
    7976  0 /*onDayOfWeek*/,
    -
    7977  16 /*onDayOfMonth*/,
    -
    7978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7979  0 /*atTimeCode (0/15)*/,
    -
    7980  60 /*deltaMinutes*/,
    -
    7981  0 /*letterIndex ("")*/,
    -
    7982  },
    -
    7983  // Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 -
    -
    7984  {
    -
    7985  1985 /*fromYear*/,
    -
    7986  2000 /*toYear*/,
    -
    7987  9 /*inMonth*/,
    -
    7988  7 /*onDayOfWeek*/,
    -
    7989  9 /*onDayOfMonth*/,
    -
    7990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    7991  0 /*atTimeCode (0/15)*/,
    -
    7992  60 /*deltaMinutes*/,
    -
    7993  0 /*letterIndex ("")*/,
    -
    7994  },
    -
    7995  // Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 -
    -
    7996  {
    -
    7997  1986 /*fromYear*/,
    -
    7998  2000 /*toYear*/,
    -
    7999  4 /*inMonth*/,
    -
    8000  7 /*onDayOfWeek*/,
    -
    8001  16 /*onDayOfMonth*/,
    -
    8002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8003  0 /*atTimeCode (0/15)*/,
    -
    8004  0 /*deltaMinutes*/,
    -
    8005  0 /*letterIndex ("")*/,
    -
    8006  },
    -
    8007  // Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 -
    -
    8008  {
    -
    8009  2001 /*fromYear*/,
    -
    8010  2010 /*toYear*/,
    -
    8011  4 /*inMonth*/,
    -
    8012  7 /*onDayOfWeek*/,
    -
    8013  15 /*onDayOfMonth*/,
    -
    8014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8015  480 /*atTimeCode (7200/15)*/,
    -
    8016  0 /*deltaMinutes*/,
    -
    8017  0 /*letterIndex ("")*/,
    -
    8018  },
    -
    8019  // Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 -
    -
    8020  {
    -
    8021  2001 /*fromYear*/,
    -
    8022  2010 /*toYear*/,
    -
    8023  9 /*inMonth*/,
    -
    8024  7 /*onDayOfWeek*/,
    -
    8025  1 /*onDayOfMonth*/,
    -
    8026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8027  480 /*atTimeCode (7200/15)*/,
    -
    8028  60 /*deltaMinutes*/,
    -
    8029  0 /*letterIndex ("")*/,
    -
    8030  },
    -
    8031 
    -
    8032 };
    -
    8033 
    -
    8034 const complete::Info::ZonePolicy kZonePolicyFalk ACE_TIME_PROGMEM = {
    -
    8035  kZoneRulesFalk /*rules*/,
    -
    8036  13 /*numRules*/,
    -
    8037 };
    -
    8038 
    -
    8039 //---------------------------------------------------------------------------
    -
    8040 // Policy name: Fiji
    -
    8041 // Rules: 13
    -
    8042 //---------------------------------------------------------------------------
    -
    8043 
    -
    8044 static const complete::Info::ZoneRule kZoneRulesFiji[] ACE_TIME_PROGMEM = {
    -
    8045  // Anchor: Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
    -
    8046  {
    -
    8047  -32767 /*fromYear*/,
    -
    8048  -32767 /*toYear*/,
    -
    8049  1 /*inMonth*/,
    -
    8050  0 /*onDayOfWeek*/,
    -
    8051  1 /*onDayOfMonth*/,
    -
    8052  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8053  0 /*atTimeCode (0/15)*/,
    -
    8054  0 /*deltaMinutes*/,
    -
    8055  0 /*letterIndex ("")*/,
    -
    8056  },
    -
    8057  // Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
    -
    8058  {
    -
    8059  1998 /*fromYear*/,
    -
    8060  1999 /*toYear*/,
    -
    8061  11 /*inMonth*/,
    -
    8062  7 /*onDayOfWeek*/,
    -
    8063  1 /*onDayOfMonth*/,
    -
    8064  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8065  480 /*atTimeCode (7200/15)*/,
    -
    8066  60 /*deltaMinutes*/,
    -
    8067  0 /*letterIndex ("")*/,
    -
    8068  },
    -
    8069  // Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
    -
    8070  {
    -
    8071  1999 /*fromYear*/,
    -
    8072  2000 /*toYear*/,
    -
    8073  2 /*inMonth*/,
    -
    8074  7 /*onDayOfWeek*/,
    -
    8075  0 /*onDayOfMonth*/,
    -
    8076  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8077  720 /*atTimeCode (10800/15)*/,
    -
    8078  0 /*deltaMinutes*/,
    -
    8079  0 /*letterIndex ("")*/,
    -
    8080  },
    -
    8081  // Rule Fiji 2009 only - Nov 29 2:00 1:00 -
    -
    8082  {
    -
    8083  2009 /*fromYear*/,
    -
    8084  2009 /*toYear*/,
    -
    8085  11 /*inMonth*/,
    -
    8086  0 /*onDayOfWeek*/,
    -
    8087  29 /*onDayOfMonth*/,
    -
    8088  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8089  480 /*atTimeCode (7200/15)*/,
    -
    8090  60 /*deltaMinutes*/,
    -
    8091  0 /*letterIndex ("")*/,
    -
    8092  },
    -
    8093  // Rule Fiji 2010 only - Mar lastSun 3:00 0 -
    -
    8094  {
    -
    8095  2010 /*fromYear*/,
    -
    8096  2010 /*toYear*/,
    -
    8097  3 /*inMonth*/,
    -
    8098  7 /*onDayOfWeek*/,
    -
    8099  0 /*onDayOfMonth*/,
    -
    8100  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8101  720 /*atTimeCode (10800/15)*/,
    -
    8102  0 /*deltaMinutes*/,
    -
    8103  0 /*letterIndex ("")*/,
    -
    8104  },
    -
    8105  // Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 -
    -
    8106  {
    -
    8107  2010 /*fromYear*/,
    -
    8108  2013 /*toYear*/,
    -
    8109  10 /*inMonth*/,
    -
    8110  7 /*onDayOfWeek*/,
    -
    8111  21 /*onDayOfMonth*/,
    -
    8112  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8113  480 /*atTimeCode (7200/15)*/,
    -
    8114  60 /*deltaMinutes*/,
    -
    8115  0 /*letterIndex ("")*/,
    -
    8116  },
    -
    8117  // Rule Fiji 2011 only - Mar Sun>=1 3:00 0 -
    -
    8118  {
    -
    8119  2011 /*fromYear*/,
    -
    8120  2011 /*toYear*/,
    -
    8121  3 /*inMonth*/,
    -
    8122  7 /*onDayOfWeek*/,
    -
    8123  1 /*onDayOfMonth*/,
    -
    8124  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8125  720 /*atTimeCode (10800/15)*/,
    -
    8126  0 /*deltaMinutes*/,
    -
    8127  0 /*letterIndex ("")*/,
    -
    8128  },
    -
    8129  // Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 -
    -
    8130  {
    -
    8131  2012 /*fromYear*/,
    -
    8132  2013 /*toYear*/,
    -
    8133  1 /*inMonth*/,
    -
    8134  7 /*onDayOfWeek*/,
    -
    8135  18 /*onDayOfMonth*/,
    -
    8136  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8137  720 /*atTimeCode (10800/15)*/,
    -
    8138  0 /*deltaMinutes*/,
    -
    8139  0 /*letterIndex ("")*/,
    -
    8140  },
    -
    8141  // Rule Fiji 2014 only - Jan Sun>=18 2:00 0 -
    -
    8142  {
    -
    8143  2014 /*fromYear*/,
    -
    8144  2014 /*toYear*/,
    -
    8145  1 /*inMonth*/,
    -
    8146  7 /*onDayOfWeek*/,
    -
    8147  18 /*onDayOfMonth*/,
    -
    8148  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8149  480 /*atTimeCode (7200/15)*/,
    -
    8150  0 /*deltaMinutes*/,
    -
    8151  0 /*letterIndex ("")*/,
    -
    8152  },
    -
    8153  // Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 -
    -
    8154  {
    -
    8155  2014 /*fromYear*/,
    -
    8156  2018 /*toYear*/,
    -
    8157  11 /*inMonth*/,
    -
    8158  7 /*onDayOfWeek*/,
    -
    8159  1 /*onDayOfMonth*/,
    -
    8160  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8161  480 /*atTimeCode (7200/15)*/,
    -
    8162  60 /*deltaMinutes*/,
    -
    8163  0 /*letterIndex ("")*/,
    -
    8164  },
    -
    8165  // Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 -
    -
    8166  {
    -
    8167  2015 /*fromYear*/,
    -
    8168  2021 /*toYear*/,
    -
    8169  1 /*inMonth*/,
    -
    8170  7 /*onDayOfWeek*/,
    -
    8171  12 /*onDayOfMonth*/,
    -
    8172  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8173  720 /*atTimeCode (10800/15)*/,
    -
    8174  0 /*deltaMinutes*/,
    -
    8175  0 /*letterIndex ("")*/,
    -
    8176  },
    -
    8177  // Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 -
    -
    8178  {
    -
    8179  2019 /*fromYear*/,
    -
    8180  2019 /*toYear*/,
    -
    8181  11 /*inMonth*/,
    -
    8182  7 /*onDayOfWeek*/,
    -
    8183  8 /*onDayOfMonth*/,
    -
    8184  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8185  480 /*atTimeCode (7200/15)*/,
    -
    8186  60 /*deltaMinutes*/,
    -
    8187  0 /*letterIndex ("")*/,
    -
    8188  },
    -
    8189  // Rule Fiji 2020 only - Dec 20 2:00 1:00 -
    -
    8190  {
    -
    8191  2020 /*fromYear*/,
    -
    8192  2020 /*toYear*/,
    -
    8193  12 /*inMonth*/,
    -
    8194  0 /*onDayOfWeek*/,
    -
    8195  20 /*onDayOfMonth*/,
    -
    8196  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8197  480 /*atTimeCode (7200/15)*/,
    -
    8198  60 /*deltaMinutes*/,
    -
    8199  0 /*letterIndex ("")*/,
    -
    8200  },
    -
    8201 
    -
    8202 };
    -
    8203 
    -
    8204 const complete::Info::ZonePolicy kZonePolicyFiji ACE_TIME_PROGMEM = {
    -
    8205  kZoneRulesFiji /*rules*/,
    -
    8206  13 /*numRules*/,
    -
    8207 };
    -
    8208 
    -
    8209 //---------------------------------------------------------------------------
    -
    8210 // Policy name: Finland
    -
    8211 // Rules: 5
    -
    8212 //---------------------------------------------------------------------------
    -
    8213 
    -
    8214 static const complete::Info::ZoneRule kZoneRulesFinland[] ACE_TIME_PROGMEM = {
    -
    8215  // Anchor: Rule Finland 1942 only - Oct 4 1:00 0 -
    -
    8216  {
    -
    8217  -32767 /*fromYear*/,
    -
    8218  -32767 /*toYear*/,
    -
    8219  1 /*inMonth*/,
    -
    8220  0 /*onDayOfWeek*/,
    -
    8221  1 /*onDayOfMonth*/,
    -
    8222  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8223  0 /*atTimeCode (0/15)*/,
    -
    8224  0 /*deltaMinutes*/,
    -
    8225  0 /*letterIndex ("")*/,
    -
    8226  },
    -
    8227  // Rule Finland 1942 only - Apr 2 24:00 1:00 S
    -
    8228  {
    -
    8229  1942 /*fromYear*/,
    -
    8230  1942 /*toYear*/,
    -
    8231  4 /*inMonth*/,
    -
    8232  0 /*onDayOfWeek*/,
    -
    8233  2 /*onDayOfMonth*/,
    -
    8234  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8235  5760 /*atTimeCode (86400/15)*/,
    -
    8236  60 /*deltaMinutes*/,
    -
    8237  25 /*letterIndex ("S")*/,
    -
    8238  },
    -
    8239  // Rule Finland 1942 only - Oct 4 1:00 0 -
    -
    8240  {
    -
    8241  1942 /*fromYear*/,
    -
    8242  1942 /*toYear*/,
    -
    8243  10 /*inMonth*/,
    -
    8244  0 /*onDayOfWeek*/,
    -
    8245  4 /*onDayOfMonth*/,
    -
    8246  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8247  240 /*atTimeCode (3600/15)*/,
    -
    8248  0 /*deltaMinutes*/,
    -
    8249  0 /*letterIndex ("")*/,
    -
    8250  },
    -
    8251  // Rule Finland 1981 1982 - Mar lastSun 2:00 1:00 S
    -
    8252  {
    -
    8253  1981 /*fromYear*/,
    -
    8254  1982 /*toYear*/,
    -
    8255  3 /*inMonth*/,
    -
    8256  7 /*onDayOfWeek*/,
    -
    8257  0 /*onDayOfMonth*/,
    -
    8258  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8259  480 /*atTimeCode (7200/15)*/,
    -
    8260  60 /*deltaMinutes*/,
    -
    8261  25 /*letterIndex ("S")*/,
    -
    8262  },
    -
    8263  // Rule Finland 1981 1982 - Sep lastSun 3:00 0 -
    -
    8264  {
    -
    8265  1981 /*fromYear*/,
    -
    8266  1982 /*toYear*/,
    -
    8267  9 /*inMonth*/,
    -
    8268  7 /*onDayOfWeek*/,
    -
    8269  0 /*onDayOfMonth*/,
    -
    8270  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8271  720 /*atTimeCode (10800/15)*/,
    -
    8272  0 /*deltaMinutes*/,
    -
    8273  0 /*letterIndex ("")*/,
    -
    8274  },
    -
    8275 
    -
    8276 };
    -
    8277 
    -
    8278 const complete::Info::ZonePolicy kZonePolicyFinland ACE_TIME_PROGMEM = {
    -
    8279  kZoneRulesFinland /*rules*/,
    -
    8280  5 /*numRules*/,
    -
    8281 };
    -
    8282 
    -
    8283 //---------------------------------------------------------------------------
    -
    8284 // Policy name: France
    -
    8285 // Rules: 43
    -
    8286 //---------------------------------------------------------------------------
    -
    8287 
    -
    8288 static const complete::Info::ZoneRule kZoneRulesFrance[] ACE_TIME_PROGMEM = {
    -
    8289  // Anchor: Rule France 1916 1919 - Oct Sun>=1 23:00s 0 -
    -
    8290  {
    -
    8291  -32767 /*fromYear*/,
    -
    8292  -32767 /*toYear*/,
    -
    8293  1 /*inMonth*/,
    -
    8294  0 /*onDayOfWeek*/,
    -
    8295  1 /*onDayOfMonth*/,
    -
    8296  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8297  0 /*atTimeCode (0/15)*/,
    -
    8298  0 /*deltaMinutes*/,
    -
    8299  0 /*letterIndex ("")*/,
    -
    8300  },
    -
    8301  // Rule France 1916 only - Jun 14 23:00s 1:00 S
    -
    8302  {
    -
    8303  1916 /*fromYear*/,
    -
    8304  1916 /*toYear*/,
    -
    8305  6 /*inMonth*/,
    -
    8306  0 /*onDayOfWeek*/,
    -
    8307  14 /*onDayOfMonth*/,
    -
    8308  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8309  5520 /*atTimeCode (82800/15)*/,
    -
    8310  60 /*deltaMinutes*/,
    -
    8311  25 /*letterIndex ("S")*/,
    -
    8312  },
    -
    8313  // Rule France 1916 1919 - Oct Sun>=1 23:00s 0 -
    -
    8314  {
    -
    8315  1916 /*fromYear*/,
    -
    8316  1919 /*toYear*/,
    -
    8317  10 /*inMonth*/,
    -
    8318  7 /*onDayOfWeek*/,
    -
    8319  1 /*onDayOfMonth*/,
    -
    8320  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8321  5520 /*atTimeCode (82800/15)*/,
    -
    8322  0 /*deltaMinutes*/,
    -
    8323  0 /*letterIndex ("")*/,
    -
    8324  },
    -
    8325  // Rule France 1917 only - Mar 24 23:00s 1:00 S
    -
    8326  {
    -
    8327  1917 /*fromYear*/,
    -
    8328  1917 /*toYear*/,
    -
    8329  3 /*inMonth*/,
    -
    8330  0 /*onDayOfWeek*/,
    -
    8331  24 /*onDayOfMonth*/,
    -
    8332  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8333  5520 /*atTimeCode (82800/15)*/,
    -
    8334  60 /*deltaMinutes*/,
    -
    8335  25 /*letterIndex ("S")*/,
    -
    8336  },
    -
    8337  // Rule France 1918 only - Mar 9 23:00s 1:00 S
    -
    8338  {
    -
    8339  1918 /*fromYear*/,
    -
    8340  1918 /*toYear*/,
    -
    8341  3 /*inMonth*/,
    -
    8342  0 /*onDayOfWeek*/,
    -
    8343  9 /*onDayOfMonth*/,
    -
    8344  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8345  5520 /*atTimeCode (82800/15)*/,
    -
    8346  60 /*deltaMinutes*/,
    -
    8347  25 /*letterIndex ("S")*/,
    -
    8348  },
    -
    8349  // Rule France 1919 only - Mar 1 23:00s 1:00 S
    -
    8350  {
    -
    8351  1919 /*fromYear*/,
    -
    8352  1919 /*toYear*/,
    -
    8353  3 /*inMonth*/,
    -
    8354  0 /*onDayOfWeek*/,
    -
    8355  1 /*onDayOfMonth*/,
    -
    8356  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8357  5520 /*atTimeCode (82800/15)*/,
    -
    8358  60 /*deltaMinutes*/,
    -
    8359  25 /*letterIndex ("S")*/,
    -
    8360  },
    -
    8361  // Rule France 1920 only - Feb 14 23:00s 1:00 S
    -
    8362  {
    -
    8363  1920 /*fromYear*/,
    -
    8364  1920 /*toYear*/,
    -
    8365  2 /*inMonth*/,
    -
    8366  0 /*onDayOfWeek*/,
    -
    8367  14 /*onDayOfMonth*/,
    -
    8368  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8369  5520 /*atTimeCode (82800/15)*/,
    -
    8370  60 /*deltaMinutes*/,
    -
    8371  25 /*letterIndex ("S")*/,
    -
    8372  },
    -
    8373  // Rule France 1920 only - Oct 23 23:00s 0 -
    -
    8374  {
    -
    8375  1920 /*fromYear*/,
    -
    8376  1920 /*toYear*/,
    -
    8377  10 /*inMonth*/,
    -
    8378  0 /*onDayOfWeek*/,
    -
    8379  23 /*onDayOfMonth*/,
    -
    8380  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8381  5520 /*atTimeCode (82800/15)*/,
    -
    8382  0 /*deltaMinutes*/,
    -
    8383  0 /*letterIndex ("")*/,
    -
    8384  },
    -
    8385  // Rule France 1921 only - Mar 14 23:00s 1:00 S
    -
    8386  {
    -
    8387  1921 /*fromYear*/,
    -
    8388  1921 /*toYear*/,
    -
    8389  3 /*inMonth*/,
    -
    8390  0 /*onDayOfWeek*/,
    -
    8391  14 /*onDayOfMonth*/,
    -
    8392  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8393  5520 /*atTimeCode (82800/15)*/,
    -
    8394  60 /*deltaMinutes*/,
    -
    8395  25 /*letterIndex ("S")*/,
    -
    8396  },
    -
    8397  // Rule France 1921 only - Oct 25 23:00s 0 -
    -
    8398  {
    -
    8399  1921 /*fromYear*/,
    -
    8400  1921 /*toYear*/,
    -
    8401  10 /*inMonth*/,
    -
    8402  0 /*onDayOfWeek*/,
    -
    8403  25 /*onDayOfMonth*/,
    -
    8404  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8405  5520 /*atTimeCode (82800/15)*/,
    -
    8406  0 /*deltaMinutes*/,
    -
    8407  0 /*letterIndex ("")*/,
    -
    8408  },
    -
    8409  // Rule France 1922 only - Mar 25 23:00s 1:00 S
    -
    8410  {
    -
    8411  1922 /*fromYear*/,
    -
    8412  1922 /*toYear*/,
    -
    8413  3 /*inMonth*/,
    -
    8414  0 /*onDayOfWeek*/,
    -
    8415  25 /*onDayOfMonth*/,
    -
    8416  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8417  5520 /*atTimeCode (82800/15)*/,
    -
    8418  60 /*deltaMinutes*/,
    -
    8419  25 /*letterIndex ("S")*/,
    -
    8420  },
    -
    8421  // Rule France 1922 1938 - Oct Sat>=1 23:00s 0 -
    -
    8422  {
    -
    8423  1922 /*fromYear*/,
    -
    8424  1938 /*toYear*/,
    -
    8425  10 /*inMonth*/,
    -
    8426  6 /*onDayOfWeek*/,
    -
    8427  1 /*onDayOfMonth*/,
    -
    8428  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8429  5520 /*atTimeCode (82800/15)*/,
    -
    8430  0 /*deltaMinutes*/,
    -
    8431  0 /*letterIndex ("")*/,
    -
    8432  },
    -
    8433  // Rule France 1923 only - May 26 23:00s 1:00 S
    -
    8434  {
    -
    8435  1923 /*fromYear*/,
    -
    8436  1923 /*toYear*/,
    -
    8437  5 /*inMonth*/,
    -
    8438  0 /*onDayOfWeek*/,
    -
    8439  26 /*onDayOfMonth*/,
    -
    8440  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8441  5520 /*atTimeCode (82800/15)*/,
    -
    8442  60 /*deltaMinutes*/,
    -
    8443  25 /*letterIndex ("S")*/,
    -
    8444  },
    -
    8445  // Rule France 1924 only - Mar 29 23:00s 1:00 S
    -
    8446  {
    -
    8447  1924 /*fromYear*/,
    -
    8448  1924 /*toYear*/,
    -
    8449  3 /*inMonth*/,
    -
    8450  0 /*onDayOfWeek*/,
    -
    8451  29 /*onDayOfMonth*/,
    -
    8452  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8453  5520 /*atTimeCode (82800/15)*/,
    -
    8454  60 /*deltaMinutes*/,
    -
    8455  25 /*letterIndex ("S")*/,
    -
    8456  },
    -
    8457  // Rule France 1925 only - Apr 4 23:00s 1:00 S
    -
    8458  {
    -
    8459  1925 /*fromYear*/,
    -
    8460  1925 /*toYear*/,
    -
    8461  4 /*inMonth*/,
    -
    8462  0 /*onDayOfWeek*/,
    -
    8463  4 /*onDayOfMonth*/,
    -
    8464  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8465  5520 /*atTimeCode (82800/15)*/,
    -
    8466  60 /*deltaMinutes*/,
    -
    8467  25 /*letterIndex ("S")*/,
    -
    8468  },
    -
    8469  // Rule France 1926 only - Apr 17 23:00s 1:00 S
    -
    8470  {
    -
    8471  1926 /*fromYear*/,
    -
    8472  1926 /*toYear*/,
    -
    8473  4 /*inMonth*/,
    -
    8474  0 /*onDayOfWeek*/,
    -
    8475  17 /*onDayOfMonth*/,
    -
    8476  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8477  5520 /*atTimeCode (82800/15)*/,
    -
    8478  60 /*deltaMinutes*/,
    -
    8479  25 /*letterIndex ("S")*/,
    -
    8480  },
    -
    8481  // Rule France 1927 only - Apr 9 23:00s 1:00 S
    -
    8482  {
    -
    8483  1927 /*fromYear*/,
    -
    8484  1927 /*toYear*/,
    -
    8485  4 /*inMonth*/,
    -
    8486  0 /*onDayOfWeek*/,
    -
    8487  9 /*onDayOfMonth*/,
    -
    8488  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8489  5520 /*atTimeCode (82800/15)*/,
    -
    8490  60 /*deltaMinutes*/,
    -
    8491  25 /*letterIndex ("S")*/,
    -
    8492  },
    -
    8493  // Rule France 1928 only - Apr 14 23:00s 1:00 S
    -
    8494  {
    -
    8495  1928 /*fromYear*/,
    -
    8496  1928 /*toYear*/,
    -
    8497  4 /*inMonth*/,
    -
    8498  0 /*onDayOfWeek*/,
    -
    8499  14 /*onDayOfMonth*/,
    -
    8500  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8501  5520 /*atTimeCode (82800/15)*/,
    -
    8502  60 /*deltaMinutes*/,
    -
    8503  25 /*letterIndex ("S")*/,
    -
    8504  },
    -
    8505  // Rule France 1929 only - Apr 20 23:00s 1:00 S
    -
    8506  {
    -
    8507  1929 /*fromYear*/,
    -
    8508  1929 /*toYear*/,
    -
    8509  4 /*inMonth*/,
    -
    8510  0 /*onDayOfWeek*/,
    -
    8511  20 /*onDayOfMonth*/,
    -
    8512  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8513  5520 /*atTimeCode (82800/15)*/,
    -
    8514  60 /*deltaMinutes*/,
    -
    8515  25 /*letterIndex ("S")*/,
    -
    8516  },
    -
    8517  // Rule France 1930 only - Apr 12 23:00s 1:00 S
    -
    8518  {
    -
    8519  1930 /*fromYear*/,
    -
    8520  1930 /*toYear*/,
    -
    8521  4 /*inMonth*/,
    -
    8522  0 /*onDayOfWeek*/,
    -
    8523  12 /*onDayOfMonth*/,
    -
    8524  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8525  5520 /*atTimeCode (82800/15)*/,
    -
    8526  60 /*deltaMinutes*/,
    -
    8527  25 /*letterIndex ("S")*/,
    -
    8528  },
    -
    8529  // Rule France 1931 only - Apr 18 23:00s 1:00 S
    -
    8530  {
    -
    8531  1931 /*fromYear*/,
    -
    8532  1931 /*toYear*/,
    -
    8533  4 /*inMonth*/,
    -
    8534  0 /*onDayOfWeek*/,
    -
    8535  18 /*onDayOfMonth*/,
    -
    8536  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8537  5520 /*atTimeCode (82800/15)*/,
    -
    8538  60 /*deltaMinutes*/,
    -
    8539  25 /*letterIndex ("S")*/,
    -
    8540  },
    -
    8541  // Rule France 1932 only - Apr 2 23:00s 1:00 S
    -
    8542  {
    -
    8543  1932 /*fromYear*/,
    -
    8544  1932 /*toYear*/,
    -
    8545  4 /*inMonth*/,
    -
    8546  0 /*onDayOfWeek*/,
    -
    8547  2 /*onDayOfMonth*/,
    -
    8548  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8549  5520 /*atTimeCode (82800/15)*/,
    -
    8550  60 /*deltaMinutes*/,
    -
    8551  25 /*letterIndex ("S")*/,
    -
    8552  },
    -
    8553  // Rule France 1933 only - Mar 25 23:00s 1:00 S
    -
    8554  {
    -
    8555  1933 /*fromYear*/,
    -
    8556  1933 /*toYear*/,
    -
    8557  3 /*inMonth*/,
    -
    8558  0 /*onDayOfWeek*/,
    -
    8559  25 /*onDayOfMonth*/,
    -
    8560  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8561  5520 /*atTimeCode (82800/15)*/,
    -
    8562  60 /*deltaMinutes*/,
    -
    8563  25 /*letterIndex ("S")*/,
    -
    8564  },
    -
    8565  // Rule France 1934 only - Apr 7 23:00s 1:00 S
    -
    8566  {
    -
    8567  1934 /*fromYear*/,
    -
    8568  1934 /*toYear*/,
    -
    8569  4 /*inMonth*/,
    -
    8570  0 /*onDayOfWeek*/,
    -
    8571  7 /*onDayOfMonth*/,
    -
    8572  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8573  5520 /*atTimeCode (82800/15)*/,
    -
    8574  60 /*deltaMinutes*/,
    -
    8575  25 /*letterIndex ("S")*/,
    -
    8576  },
    -
    8577  // Rule France 1935 only - Mar 30 23:00s 1:00 S
    -
    8578  {
    -
    8579  1935 /*fromYear*/,
    -
    8580  1935 /*toYear*/,
    -
    8581  3 /*inMonth*/,
    -
    8582  0 /*onDayOfWeek*/,
    -
    8583  30 /*onDayOfMonth*/,
    -
    8584  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8585  5520 /*atTimeCode (82800/15)*/,
    -
    8586  60 /*deltaMinutes*/,
    -
    8587  25 /*letterIndex ("S")*/,
    -
    8588  },
    -
    8589  // Rule France 1936 only - Apr 18 23:00s 1:00 S
    -
    8590  {
    -
    8591  1936 /*fromYear*/,
    -
    8592  1936 /*toYear*/,
    -
    8593  4 /*inMonth*/,
    -
    8594  0 /*onDayOfWeek*/,
    -
    8595  18 /*onDayOfMonth*/,
    -
    8596  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8597  5520 /*atTimeCode (82800/15)*/,
    -
    8598  60 /*deltaMinutes*/,
    -
    8599  25 /*letterIndex ("S")*/,
    -
    8600  },
    -
    8601  // Rule France 1937 only - Apr 3 23:00s 1:00 S
    -
    8602  {
    -
    8603  1937 /*fromYear*/,
    -
    8604  1937 /*toYear*/,
    -
    8605  4 /*inMonth*/,
    -
    8606  0 /*onDayOfWeek*/,
    -
    8607  3 /*onDayOfMonth*/,
    -
    8608  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8609  5520 /*atTimeCode (82800/15)*/,
    -
    8610  60 /*deltaMinutes*/,
    -
    8611  25 /*letterIndex ("S")*/,
    -
    8612  },
    -
    8613  // Rule France 1938 only - Mar 26 23:00s 1:00 S
    -
    8614  {
    -
    8615  1938 /*fromYear*/,
    -
    8616  1938 /*toYear*/,
    -
    8617  3 /*inMonth*/,
    -
    8618  0 /*onDayOfWeek*/,
    -
    8619  26 /*onDayOfMonth*/,
    -
    8620  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8621  5520 /*atTimeCode (82800/15)*/,
    -
    8622  60 /*deltaMinutes*/,
    -
    8623  25 /*letterIndex ("S")*/,
    -
    8624  },
    -
    8625  // Rule France 1939 only - Apr 15 23:00s 1:00 S
    -
    8626  {
    -
    8627  1939 /*fromYear*/,
    -
    8628  1939 /*toYear*/,
    -
    8629  4 /*inMonth*/,
    -
    8630  0 /*onDayOfWeek*/,
    -
    8631  15 /*onDayOfMonth*/,
    -
    8632  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8633  5520 /*atTimeCode (82800/15)*/,
    -
    8634  60 /*deltaMinutes*/,
    -
    8635  25 /*letterIndex ("S")*/,
    -
    8636  },
    -
    8637  // Rule France 1939 only - Nov 18 23:00s 0 -
    -
    8638  {
    -
    8639  1939 /*fromYear*/,
    -
    8640  1939 /*toYear*/,
    -
    8641  11 /*inMonth*/,
    -
    8642  0 /*onDayOfWeek*/,
    -
    8643  18 /*onDayOfMonth*/,
    -
    8644  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8645  5520 /*atTimeCode (82800/15)*/,
    -
    8646  0 /*deltaMinutes*/,
    -
    8647  0 /*letterIndex ("")*/,
    -
    8648  },
    -
    8649  // Rule France 1940 only - Feb 25 2:00 1:00 S
    -
    8650  {
    -
    8651  1940 /*fromYear*/,
    -
    8652  1940 /*toYear*/,
    -
    8653  2 /*inMonth*/,
    -
    8654  0 /*onDayOfWeek*/,
    -
    8655  25 /*onDayOfMonth*/,
    -
    8656  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8657  480 /*atTimeCode (7200/15)*/,
    -
    8658  60 /*deltaMinutes*/,
    -
    8659  25 /*letterIndex ("S")*/,
    -
    8660  },
    -
    8661  // Rule France 1941 only - May 5 0:00 2:00 M
    -
    8662  {
    -
    8663  1941 /*fromYear*/,
    -
    8664  1941 /*toYear*/,
    -
    8665  5 /*inMonth*/,
    -
    8666  0 /*onDayOfWeek*/,
    -
    8667  5 /*onDayOfMonth*/,
    -
    8668  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8669  0 /*atTimeCode (0/15)*/,
    -
    8670  120 /*deltaMinutes*/,
    -
    8671  18 /*letterIndex ("M")*/,
    -
    8672  },
    -
    8673  // Rule France 1941 only - Oct 6 0:00 1:00 S
    -
    8674  {
    -
    8675  1941 /*fromYear*/,
    -
    8676  1941 /*toYear*/,
    -
    8677  10 /*inMonth*/,
    -
    8678  0 /*onDayOfWeek*/,
    -
    8679  6 /*onDayOfMonth*/,
    -
    8680  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8681  0 /*atTimeCode (0/15)*/,
    -
    8682  60 /*deltaMinutes*/,
    -
    8683  25 /*letterIndex ("S")*/,
    -
    8684  },
    -
    8685  // Rule France 1942 only - Mar 9 0:00 2:00 M
    -
    8686  {
    -
    8687  1942 /*fromYear*/,
    -
    8688  1942 /*toYear*/,
    -
    8689  3 /*inMonth*/,
    -
    8690  0 /*onDayOfWeek*/,
    -
    8691  9 /*onDayOfMonth*/,
    -
    8692  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8693  0 /*atTimeCode (0/15)*/,
    -
    8694  120 /*deltaMinutes*/,
    -
    8695  18 /*letterIndex ("M")*/,
    -
    8696  },
    -
    8697  // Rule France 1942 only - Nov 2 3:00 1:00 S
    -
    8698  {
    -
    8699  1942 /*fromYear*/,
    -
    8700  1942 /*toYear*/,
    -
    8701  11 /*inMonth*/,
    -
    8702  0 /*onDayOfWeek*/,
    -
    8703  2 /*onDayOfMonth*/,
    -
    8704  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8705  720 /*atTimeCode (10800/15)*/,
    -
    8706  60 /*deltaMinutes*/,
    -
    8707  25 /*letterIndex ("S")*/,
    -
    8708  },
    -
    8709  // Rule France 1943 only - Mar 29 2:00 2:00 M
    -
    8710  {
    -
    8711  1943 /*fromYear*/,
    -
    8712  1943 /*toYear*/,
    -
    8713  3 /*inMonth*/,
    -
    8714  0 /*onDayOfWeek*/,
    -
    8715  29 /*onDayOfMonth*/,
    -
    8716  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8717  480 /*atTimeCode (7200/15)*/,
    -
    8718  120 /*deltaMinutes*/,
    -
    8719  18 /*letterIndex ("M")*/,
    -
    8720  },
    -
    8721  // Rule France 1943 only - Oct 4 3:00 1:00 S
    -
    8722  {
    -
    8723  1943 /*fromYear*/,
    -
    8724  1943 /*toYear*/,
    -
    8725  10 /*inMonth*/,
    -
    8726  0 /*onDayOfWeek*/,
    -
    8727  4 /*onDayOfMonth*/,
    -
    8728  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8729  720 /*atTimeCode (10800/15)*/,
    -
    8730  60 /*deltaMinutes*/,
    -
    8731  25 /*letterIndex ("S")*/,
    -
    8732  },
    -
    8733  // Rule France 1944 only - Apr 3 2:00 2:00 M
    -
    8734  {
    -
    8735  1944 /*fromYear*/,
    -
    8736  1944 /*toYear*/,
    -
    8737  4 /*inMonth*/,
    -
    8738  0 /*onDayOfWeek*/,
    -
    8739  3 /*onDayOfMonth*/,
    -
    8740  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8741  480 /*atTimeCode (7200/15)*/,
    -
    8742  120 /*deltaMinutes*/,
    -
    8743  18 /*letterIndex ("M")*/,
    -
    8744  },
    -
    8745  // Rule France 1944 only - Oct 8 1:00 1:00 S
    -
    8746  {
    -
    8747  1944 /*fromYear*/,
    -
    8748  1944 /*toYear*/,
    -
    8749  10 /*inMonth*/,
    -
    8750  0 /*onDayOfWeek*/,
    -
    8751  8 /*onDayOfMonth*/,
    -
    8752  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8753  240 /*atTimeCode (3600/15)*/,
    -
    8754  60 /*deltaMinutes*/,
    -
    8755  25 /*letterIndex ("S")*/,
    -
    8756  },
    -
    8757  // Rule France 1945 only - Apr 2 2:00 2:00 M
    -
    8758  {
    -
    8759  1945 /*fromYear*/,
    -
    8760  1945 /*toYear*/,
    -
    8761  4 /*inMonth*/,
    -
    8762  0 /*onDayOfWeek*/,
    -
    8763  2 /*onDayOfMonth*/,
    -
    8764  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8765  480 /*atTimeCode (7200/15)*/,
    -
    8766  120 /*deltaMinutes*/,
    -
    8767  18 /*letterIndex ("M")*/,
    -
    8768  },
    -
    8769  // Rule France 1945 only - Sep 16 3:00 0 -
    -
    8770  {
    -
    8771  1945 /*fromYear*/,
    -
    8772  1945 /*toYear*/,
    -
    8773  9 /*inMonth*/,
    -
    8774  0 /*onDayOfWeek*/,
    -
    8775  16 /*onDayOfMonth*/,
    -
    8776  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8777  720 /*atTimeCode (10800/15)*/,
    -
    8778  0 /*deltaMinutes*/,
    -
    8779  0 /*letterIndex ("")*/,
    -
    8780  },
    -
    8781  // Rule France 1976 only - Mar 28 1:00 1:00 S
    -
    8782  {
    -
    8783  1976 /*fromYear*/,
    -
    8784  1976 /*toYear*/,
    -
    8785  3 /*inMonth*/,
    -
    8786  0 /*onDayOfWeek*/,
    -
    8787  28 /*onDayOfMonth*/,
    -
    8788  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8789  240 /*atTimeCode (3600/15)*/,
    -
    8790  60 /*deltaMinutes*/,
    -
    8791  25 /*letterIndex ("S")*/,
    -
    8792  },
    -
    8793  // Rule France 1976 only - Sep 26 1:00 0 -
    -
    8794  {
    -
    8795  1976 /*fromYear*/,
    -
    8796  1976 /*toYear*/,
    -
    8797  9 /*inMonth*/,
    -
    8798  0 /*onDayOfWeek*/,
    -
    8799  26 /*onDayOfMonth*/,
    -
    8800  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8801  240 /*atTimeCode (3600/15)*/,
    -
    8802  0 /*deltaMinutes*/,
    -
    8803  0 /*letterIndex ("")*/,
    -
    8804  },
    -
    8805 
    -
    8806 };
    -
    8807 
    -
    8808 const complete::Info::ZonePolicy kZonePolicyFrance ACE_TIME_PROGMEM = {
    -
    8809  kZoneRulesFrance /*rules*/,
    -
    8810  43 /*numRules*/,
    -
    8811 };
    -
    8812 
    -
    8813 //---------------------------------------------------------------------------
    -
    8814 // Policy name: GB-Eire
    -
    8815 // Rules: 66
    -
    8816 //---------------------------------------------------------------------------
    -
    8817 
    -
    8818 static const complete::Info::ZoneRule kZoneRulesGB_Eire[] ACE_TIME_PROGMEM = {
    -
    8819  // Anchor: Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT
    -
    8820  {
    -
    8821  -32767 /*fromYear*/,
    -
    8822  -32767 /*toYear*/,
    -
    8823  1 /*inMonth*/,
    -
    8824  0 /*onDayOfWeek*/,
    -
    8825  1 /*onDayOfMonth*/,
    -
    8826  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    8827  0 /*atTimeCode (0/15)*/,
    -
    8828  0 /*deltaMinutes*/,
    -
    8829  17 /*letterIndex ("GMT")*/,
    -
    8830  },
    -
    8831  // Rule GB-Eire 1916 only - May 21 2:00s 1:00 BST
    -
    8832  {
    -
    8833  1916 /*fromYear*/,
    -
    8834  1916 /*toYear*/,
    -
    8835  5 /*inMonth*/,
    -
    8836  0 /*onDayOfWeek*/,
    -
    8837  21 /*onDayOfMonth*/,
    -
    8838  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8839  480 /*atTimeCode (7200/15)*/,
    -
    8840  60 /*deltaMinutes*/,
    -
    8841  7 /*letterIndex ("BST")*/,
    -
    8842  },
    -
    8843  // Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT
    -
    8844  {
    -
    8845  1916 /*fromYear*/,
    -
    8846  1916 /*toYear*/,
    -
    8847  10 /*inMonth*/,
    -
    8848  0 /*onDayOfWeek*/,
    -
    8849  1 /*onDayOfMonth*/,
    -
    8850  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8851  480 /*atTimeCode (7200/15)*/,
    -
    8852  0 /*deltaMinutes*/,
    -
    8853  17 /*letterIndex ("GMT")*/,
    -
    8854  },
    -
    8855  // Rule GB-Eire 1917 only - Apr 8 2:00s 1:00 BST
    -
    8856  {
    -
    8857  1917 /*fromYear*/,
    -
    8858  1917 /*toYear*/,
    -
    8859  4 /*inMonth*/,
    -
    8860  0 /*onDayOfWeek*/,
    -
    8861  8 /*onDayOfMonth*/,
    -
    8862  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8863  480 /*atTimeCode (7200/15)*/,
    -
    8864  60 /*deltaMinutes*/,
    -
    8865  7 /*letterIndex ("BST")*/,
    -
    8866  },
    -
    8867  // Rule GB-Eire 1917 only - Sep 17 2:00s 0 GMT
    -
    8868  {
    -
    8869  1917 /*fromYear*/,
    -
    8870  1917 /*toYear*/,
    -
    8871  9 /*inMonth*/,
    -
    8872  0 /*onDayOfWeek*/,
    -
    8873  17 /*onDayOfMonth*/,
    -
    8874  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8875  480 /*atTimeCode (7200/15)*/,
    -
    8876  0 /*deltaMinutes*/,
    -
    8877  17 /*letterIndex ("GMT")*/,
    -
    8878  },
    -
    8879  // Rule GB-Eire 1918 only - Mar 24 2:00s 1:00 BST
    -
    8880  {
    -
    8881  1918 /*fromYear*/,
    -
    8882  1918 /*toYear*/,
    -
    8883  3 /*inMonth*/,
    -
    8884  0 /*onDayOfWeek*/,
    -
    8885  24 /*onDayOfMonth*/,
    -
    8886  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8887  480 /*atTimeCode (7200/15)*/,
    -
    8888  60 /*deltaMinutes*/,
    -
    8889  7 /*letterIndex ("BST")*/,
    -
    8890  },
    -
    8891  // Rule GB-Eire 1918 only - Sep 30 2:00s 0 GMT
    -
    8892  {
    -
    8893  1918 /*fromYear*/,
    -
    8894  1918 /*toYear*/,
    -
    8895  9 /*inMonth*/,
    -
    8896  0 /*onDayOfWeek*/,
    -
    8897  30 /*onDayOfMonth*/,
    -
    8898  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8899  480 /*atTimeCode (7200/15)*/,
    -
    8900  0 /*deltaMinutes*/,
    -
    8901  17 /*letterIndex ("GMT")*/,
    -
    8902  },
    -
    8903  // Rule GB-Eire 1919 only - Mar 30 2:00s 1:00 BST
    -
    8904  {
    -
    8905  1919 /*fromYear*/,
    -
    8906  1919 /*toYear*/,
    -
    8907  3 /*inMonth*/,
    -
    8908  0 /*onDayOfWeek*/,
    -
    8909  30 /*onDayOfMonth*/,
    -
    8910  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8911  480 /*atTimeCode (7200/15)*/,
    -
    8912  60 /*deltaMinutes*/,
    -
    8913  7 /*letterIndex ("BST")*/,
    -
    8914  },
    -
    8915  // Rule GB-Eire 1919 only - Sep 29 2:00s 0 GMT
    -
    8916  {
    -
    8917  1919 /*fromYear*/,
    -
    8918  1919 /*toYear*/,
    -
    8919  9 /*inMonth*/,
    -
    8920  0 /*onDayOfWeek*/,
    -
    8921  29 /*onDayOfMonth*/,
    -
    8922  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8923  480 /*atTimeCode (7200/15)*/,
    -
    8924  0 /*deltaMinutes*/,
    -
    8925  17 /*letterIndex ("GMT")*/,
    -
    8926  },
    -
    8927  // Rule GB-Eire 1920 only - Mar 28 2:00s 1:00 BST
    -
    8928  {
    -
    8929  1920 /*fromYear*/,
    -
    8930  1920 /*toYear*/,
    -
    8931  3 /*inMonth*/,
    -
    8932  0 /*onDayOfWeek*/,
    -
    8933  28 /*onDayOfMonth*/,
    -
    8934  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8935  480 /*atTimeCode (7200/15)*/,
    -
    8936  60 /*deltaMinutes*/,
    -
    8937  7 /*letterIndex ("BST")*/,
    -
    8938  },
    -
    8939  // Rule GB-Eire 1920 only - Oct 25 2:00s 0 GMT
    -
    8940  {
    -
    8941  1920 /*fromYear*/,
    -
    8942  1920 /*toYear*/,
    -
    8943  10 /*inMonth*/,
    -
    8944  0 /*onDayOfWeek*/,
    -
    8945  25 /*onDayOfMonth*/,
    -
    8946  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8947  480 /*atTimeCode (7200/15)*/,
    -
    8948  0 /*deltaMinutes*/,
    -
    8949  17 /*letterIndex ("GMT")*/,
    -
    8950  },
    -
    8951  // Rule GB-Eire 1921 only - Apr 3 2:00s 1:00 BST
    -
    8952  {
    -
    8953  1921 /*fromYear*/,
    -
    8954  1921 /*toYear*/,
    -
    8955  4 /*inMonth*/,
    -
    8956  0 /*onDayOfWeek*/,
    -
    8957  3 /*onDayOfMonth*/,
    -
    8958  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8959  480 /*atTimeCode (7200/15)*/,
    -
    8960  60 /*deltaMinutes*/,
    -
    8961  7 /*letterIndex ("BST")*/,
    -
    8962  },
    -
    8963  // Rule GB-Eire 1921 only - Oct 3 2:00s 0 GMT
    -
    8964  {
    -
    8965  1921 /*fromYear*/,
    -
    8966  1921 /*toYear*/,
    -
    8967  10 /*inMonth*/,
    -
    8968  0 /*onDayOfWeek*/,
    -
    8969  3 /*onDayOfMonth*/,
    -
    8970  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8971  480 /*atTimeCode (7200/15)*/,
    -
    8972  0 /*deltaMinutes*/,
    -
    8973  17 /*letterIndex ("GMT")*/,
    -
    8974  },
    -
    8975  // Rule GB-Eire 1922 only - Mar 26 2:00s 1:00 BST
    -
    8976  {
    -
    8977  1922 /*fromYear*/,
    -
    8978  1922 /*toYear*/,
    -
    8979  3 /*inMonth*/,
    -
    8980  0 /*onDayOfWeek*/,
    -
    8981  26 /*onDayOfMonth*/,
    -
    8982  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8983  480 /*atTimeCode (7200/15)*/,
    -
    8984  60 /*deltaMinutes*/,
    -
    8985  7 /*letterIndex ("BST")*/,
    -
    8986  },
    -
    8987  // Rule GB-Eire 1922 only - Oct 8 2:00s 0 GMT
    -
    8988  {
    -
    8989  1922 /*fromYear*/,
    -
    8990  1922 /*toYear*/,
    -
    8991  10 /*inMonth*/,
    -
    8992  0 /*onDayOfWeek*/,
    -
    8993  8 /*onDayOfMonth*/,
    -
    8994  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    8995  480 /*atTimeCode (7200/15)*/,
    -
    8996  0 /*deltaMinutes*/,
    -
    8997  17 /*letterIndex ("GMT")*/,
    -
    8998  },
    -
    8999  // Rule GB-Eire 1923 only - Apr Sun>=16 2:00s 1:00 BST
    -
    9000  {
    -
    9001  1923 /*fromYear*/,
    -
    9002  1923 /*toYear*/,
    -
    9003  4 /*inMonth*/,
    -
    9004  7 /*onDayOfWeek*/,
    -
    9005  16 /*onDayOfMonth*/,
    -
    9006  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9007  480 /*atTimeCode (7200/15)*/,
    -
    9008  60 /*deltaMinutes*/,
    -
    9009  7 /*letterIndex ("BST")*/,
    -
    9010  },
    -
    9011  // Rule GB-Eire 1923 1924 - Sep Sun>=16 2:00s 0 GMT
    -
    9012  {
    -
    9013  1923 /*fromYear*/,
    -
    9014  1924 /*toYear*/,
    -
    9015  9 /*inMonth*/,
    -
    9016  7 /*onDayOfWeek*/,
    -
    9017  16 /*onDayOfMonth*/,
    -
    9018  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9019  480 /*atTimeCode (7200/15)*/,
    -
    9020  0 /*deltaMinutes*/,
    -
    9021  17 /*letterIndex ("GMT")*/,
    -
    9022  },
    -
    9023  // Rule GB-Eire 1924 only - Apr Sun>=9 2:00s 1:00 BST
    -
    9024  {
    -
    9025  1924 /*fromYear*/,
    -
    9026  1924 /*toYear*/,
    -
    9027  4 /*inMonth*/,
    -
    9028  7 /*onDayOfWeek*/,
    -
    9029  9 /*onDayOfMonth*/,
    -
    9030  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9031  480 /*atTimeCode (7200/15)*/,
    -
    9032  60 /*deltaMinutes*/,
    -
    9033  7 /*letterIndex ("BST")*/,
    -
    9034  },
    -
    9035  // Rule GB-Eire 1925 1926 - Apr Sun>=16 2:00s 1:00 BST
    -
    9036  {
    -
    9037  1925 /*fromYear*/,
    -
    9038  1926 /*toYear*/,
    -
    9039  4 /*inMonth*/,
    -
    9040  7 /*onDayOfWeek*/,
    -
    9041  16 /*onDayOfMonth*/,
    -
    9042  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9043  480 /*atTimeCode (7200/15)*/,
    -
    9044  60 /*deltaMinutes*/,
    -
    9045  7 /*letterIndex ("BST")*/,
    -
    9046  },
    -
    9047  // Rule GB-Eire 1925 1938 - Oct Sun>=2 2:00s 0 GMT
    -
    9048  {
    -
    9049  1925 /*fromYear*/,
    -
    9050  1938 /*toYear*/,
    -
    9051  10 /*inMonth*/,
    -
    9052  7 /*onDayOfWeek*/,
    -
    9053  2 /*onDayOfMonth*/,
    -
    9054  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9055  480 /*atTimeCode (7200/15)*/,
    -
    9056  0 /*deltaMinutes*/,
    -
    9057  17 /*letterIndex ("GMT")*/,
    -
    9058  },
    -
    9059  // Rule GB-Eire 1927 only - Apr Sun>=9 2:00s 1:00 BST
    -
    9060  {
    -
    9061  1927 /*fromYear*/,
    -
    9062  1927 /*toYear*/,
    -
    9063  4 /*inMonth*/,
    -
    9064  7 /*onDayOfWeek*/,
    -
    9065  9 /*onDayOfMonth*/,
    -
    9066  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9067  480 /*atTimeCode (7200/15)*/,
    -
    9068  60 /*deltaMinutes*/,
    -
    9069  7 /*letterIndex ("BST")*/,
    -
    9070  },
    -
    9071  // Rule GB-Eire 1928 1929 - Apr Sun>=16 2:00s 1:00 BST
    -
    9072  {
    -
    9073  1928 /*fromYear*/,
    -
    9074  1929 /*toYear*/,
    -
    9075  4 /*inMonth*/,
    -
    9076  7 /*onDayOfWeek*/,
    -
    9077  16 /*onDayOfMonth*/,
    -
    9078  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9079  480 /*atTimeCode (7200/15)*/,
    -
    9080  60 /*deltaMinutes*/,
    -
    9081  7 /*letterIndex ("BST")*/,
    -
    9082  },
    -
    9083  // Rule GB-Eire 1930 only - Apr Sun>=9 2:00s 1:00 BST
    -
    9084  {
    -
    9085  1930 /*fromYear*/,
    -
    9086  1930 /*toYear*/,
    -
    9087  4 /*inMonth*/,
    -
    9088  7 /*onDayOfWeek*/,
    -
    9089  9 /*onDayOfMonth*/,
    -
    9090  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9091  480 /*atTimeCode (7200/15)*/,
    -
    9092  60 /*deltaMinutes*/,
    -
    9093  7 /*letterIndex ("BST")*/,
    -
    9094  },
    -
    9095  // Rule GB-Eire 1931 1932 - Apr Sun>=16 2:00s 1:00 BST
    -
    9096  {
    -
    9097  1931 /*fromYear*/,
    -
    9098  1932 /*toYear*/,
    -
    9099  4 /*inMonth*/,
    -
    9100  7 /*onDayOfWeek*/,
    -
    9101  16 /*onDayOfMonth*/,
    -
    9102  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9103  480 /*atTimeCode (7200/15)*/,
    -
    9104  60 /*deltaMinutes*/,
    -
    9105  7 /*letterIndex ("BST")*/,
    -
    9106  },
    -
    9107  // Rule GB-Eire 1933 only - Apr Sun>=9 2:00s 1:00 BST
    -
    9108  {
    -
    9109  1933 /*fromYear*/,
    -
    9110  1933 /*toYear*/,
    -
    9111  4 /*inMonth*/,
    -
    9112  7 /*onDayOfWeek*/,
    -
    9113  9 /*onDayOfMonth*/,
    -
    9114  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9115  480 /*atTimeCode (7200/15)*/,
    -
    9116  60 /*deltaMinutes*/,
    -
    9117  7 /*letterIndex ("BST")*/,
    -
    9118  },
    -
    9119  // Rule GB-Eire 1934 only - Apr Sun>=16 2:00s 1:00 BST
    -
    9120  {
    -
    9121  1934 /*fromYear*/,
    -
    9122  1934 /*toYear*/,
    -
    9123  4 /*inMonth*/,
    -
    9124  7 /*onDayOfWeek*/,
    -
    9125  16 /*onDayOfMonth*/,
    -
    9126  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9127  480 /*atTimeCode (7200/15)*/,
    -
    9128  60 /*deltaMinutes*/,
    -
    9129  7 /*letterIndex ("BST")*/,
    -
    9130  },
    -
    9131  // Rule GB-Eire 1935 only - Apr Sun>=9 2:00s 1:00 BST
    -
    9132  {
    -
    9133  1935 /*fromYear*/,
    -
    9134  1935 /*toYear*/,
    -
    9135  4 /*inMonth*/,
    -
    9136  7 /*onDayOfWeek*/,
    -
    9137  9 /*onDayOfMonth*/,
    -
    9138  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9139  480 /*atTimeCode (7200/15)*/,
    -
    9140  60 /*deltaMinutes*/,
    -
    9141  7 /*letterIndex ("BST")*/,
    -
    9142  },
    -
    9143  // Rule GB-Eire 1936 1937 - Apr Sun>=16 2:00s 1:00 BST
    -
    9144  {
    -
    9145  1936 /*fromYear*/,
    -
    9146  1937 /*toYear*/,
    -
    9147  4 /*inMonth*/,
    -
    9148  7 /*onDayOfWeek*/,
    -
    9149  16 /*onDayOfMonth*/,
    -
    9150  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9151  480 /*atTimeCode (7200/15)*/,
    -
    9152  60 /*deltaMinutes*/,
    -
    9153  7 /*letterIndex ("BST")*/,
    -
    9154  },
    -
    9155  // Rule GB-Eire 1938 only - Apr Sun>=9 2:00s 1:00 BST
    -
    9156  {
    -
    9157  1938 /*fromYear*/,
    -
    9158  1938 /*toYear*/,
    -
    9159  4 /*inMonth*/,
    -
    9160  7 /*onDayOfWeek*/,
    -
    9161  9 /*onDayOfMonth*/,
    -
    9162  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9163  480 /*atTimeCode (7200/15)*/,
    -
    9164  60 /*deltaMinutes*/,
    -
    9165  7 /*letterIndex ("BST")*/,
    -
    9166  },
    -
    9167  // Rule GB-Eire 1939 only - Apr Sun>=16 2:00s 1:00 BST
    -
    9168  {
    -
    9169  1939 /*fromYear*/,
    -
    9170  1939 /*toYear*/,
    -
    9171  4 /*inMonth*/,
    -
    9172  7 /*onDayOfWeek*/,
    -
    9173  16 /*onDayOfMonth*/,
    -
    9174  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9175  480 /*atTimeCode (7200/15)*/,
    -
    9176  60 /*deltaMinutes*/,
    -
    9177  7 /*letterIndex ("BST")*/,
    -
    9178  },
    -
    9179  // Rule GB-Eire 1939 only - Nov Sun>=16 2:00s 0 GMT
    -
    9180  {
    -
    9181  1939 /*fromYear*/,
    -
    9182  1939 /*toYear*/,
    -
    9183  11 /*inMonth*/,
    -
    9184  7 /*onDayOfWeek*/,
    -
    9185  16 /*onDayOfMonth*/,
    -
    9186  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9187  480 /*atTimeCode (7200/15)*/,
    -
    9188  0 /*deltaMinutes*/,
    -
    9189  17 /*letterIndex ("GMT")*/,
    -
    9190  },
    -
    9191  // Rule GB-Eire 1940 only - Feb Sun>=23 2:00s 1:00 BST
    -
    9192  {
    -
    9193  1940 /*fromYear*/,
    -
    9194  1940 /*toYear*/,
    -
    9195  2 /*inMonth*/,
    -
    9196  7 /*onDayOfWeek*/,
    -
    9197  23 /*onDayOfMonth*/,
    -
    9198  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9199  480 /*atTimeCode (7200/15)*/,
    -
    9200  60 /*deltaMinutes*/,
    -
    9201  7 /*letterIndex ("BST")*/,
    -
    9202  },
    -
    9203  // Rule GB-Eire 1941 only - May Sun>=2 1:00s 2:00 BDST
    -
    9204  {
    -
    9205  1941 /*fromYear*/,
    -
    9206  1941 /*toYear*/,
    -
    9207  5 /*inMonth*/,
    -
    9208  7 /*onDayOfWeek*/,
    -
    9209  2 /*onDayOfMonth*/,
    -
    9210  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9211  240 /*atTimeCode (3600/15)*/,
    -
    9212  120 /*deltaMinutes*/,
    -
    9213  6 /*letterIndex ("BDST")*/,
    -
    9214  },
    -
    9215  // Rule GB-Eire 1941 1943 - Aug Sun>=9 1:00s 1:00 BST
    -
    9216  {
    -
    9217  1941 /*fromYear*/,
    -
    9218  1943 /*toYear*/,
    -
    9219  8 /*inMonth*/,
    -
    9220  7 /*onDayOfWeek*/,
    -
    9221  9 /*onDayOfMonth*/,
    -
    9222  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9223  240 /*atTimeCode (3600/15)*/,
    -
    9224  60 /*deltaMinutes*/,
    -
    9225  7 /*letterIndex ("BST")*/,
    -
    9226  },
    -
    9227  // Rule GB-Eire 1942 1944 - Apr Sun>=2 1:00s 2:00 BDST
    -
    9228  {
    -
    9229  1942 /*fromYear*/,
    -
    9230  1944 /*toYear*/,
    -
    9231  4 /*inMonth*/,
    -
    9232  7 /*onDayOfWeek*/,
    -
    9233  2 /*onDayOfMonth*/,
    -
    9234  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9235  240 /*atTimeCode (3600/15)*/,
    -
    9236  120 /*deltaMinutes*/,
    -
    9237  6 /*letterIndex ("BDST")*/,
    -
    9238  },
    -
    9239  // Rule GB-Eire 1944 only - Sep Sun>=16 1:00s 1:00 BST
    -
    9240  {
    -
    9241  1944 /*fromYear*/,
    -
    9242  1944 /*toYear*/,
    -
    9243  9 /*inMonth*/,
    -
    9244  7 /*onDayOfWeek*/,
    -
    9245  16 /*onDayOfMonth*/,
    -
    9246  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9247  240 /*atTimeCode (3600/15)*/,
    -
    9248  60 /*deltaMinutes*/,
    -
    9249  7 /*letterIndex ("BST")*/,
    -
    9250  },
    -
    9251  // Rule GB-Eire 1945 only - Apr Mon>=2 1:00s 2:00 BDST
    -
    9252  {
    -
    9253  1945 /*fromYear*/,
    -
    9254  1945 /*toYear*/,
    -
    9255  4 /*inMonth*/,
    -
    9256  1 /*onDayOfWeek*/,
    -
    9257  2 /*onDayOfMonth*/,
    -
    9258  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9259  240 /*atTimeCode (3600/15)*/,
    -
    9260  120 /*deltaMinutes*/,
    -
    9261  6 /*letterIndex ("BDST")*/,
    -
    9262  },
    -
    9263  // Rule GB-Eire 1945 only - Jul Sun>=9 1:00s 1:00 BST
    -
    9264  {
    -
    9265  1945 /*fromYear*/,
    -
    9266  1945 /*toYear*/,
    -
    9267  7 /*inMonth*/,
    -
    9268  7 /*onDayOfWeek*/,
    -
    9269  9 /*onDayOfMonth*/,
    -
    9270  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9271  240 /*atTimeCode (3600/15)*/,
    -
    9272  60 /*deltaMinutes*/,
    -
    9273  7 /*letterIndex ("BST")*/,
    -
    9274  },
    -
    9275  // Rule GB-Eire 1945 1946 - Oct Sun>=2 2:00s 0 GMT
    -
    9276  {
    -
    9277  1945 /*fromYear*/,
    -
    9278  1946 /*toYear*/,
    -
    9279  10 /*inMonth*/,
    -
    9280  7 /*onDayOfWeek*/,
    -
    9281  2 /*onDayOfMonth*/,
    -
    9282  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9283  480 /*atTimeCode (7200/15)*/,
    -
    9284  0 /*deltaMinutes*/,
    -
    9285  17 /*letterIndex ("GMT")*/,
    -
    9286  },
    -
    9287  // Rule GB-Eire 1946 only - Apr Sun>=9 2:00s 1:00 BST
    -
    9288  {
    -
    9289  1946 /*fromYear*/,
    -
    9290  1946 /*toYear*/,
    -
    9291  4 /*inMonth*/,
    -
    9292  7 /*onDayOfWeek*/,
    -
    9293  9 /*onDayOfMonth*/,
    -
    9294  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9295  480 /*atTimeCode (7200/15)*/,
    -
    9296  60 /*deltaMinutes*/,
    -
    9297  7 /*letterIndex ("BST")*/,
    -
    9298  },
    -
    9299  // Rule GB-Eire 1947 only - Mar 16 2:00s 1:00 BST
    -
    9300  {
    -
    9301  1947 /*fromYear*/,
    -
    9302  1947 /*toYear*/,
    -
    9303  3 /*inMonth*/,
    -
    9304  0 /*onDayOfWeek*/,
    -
    9305  16 /*onDayOfMonth*/,
    -
    9306  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9307  480 /*atTimeCode (7200/15)*/,
    -
    9308  60 /*deltaMinutes*/,
    -
    9309  7 /*letterIndex ("BST")*/,
    -
    9310  },
    -
    9311  // Rule GB-Eire 1947 only - Apr 13 1:00s 2:00 BDST
    -
    9312  {
    -
    9313  1947 /*fromYear*/,
    -
    9314  1947 /*toYear*/,
    -
    9315  4 /*inMonth*/,
    -
    9316  0 /*onDayOfWeek*/,
    -
    9317  13 /*onDayOfMonth*/,
    -
    9318  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9319  240 /*atTimeCode (3600/15)*/,
    -
    9320  120 /*deltaMinutes*/,
    -
    9321  6 /*letterIndex ("BDST")*/,
    -
    9322  },
    -
    9323  // Rule GB-Eire 1947 only - Aug 10 1:00s 1:00 BST
    -
    9324  {
    -
    9325  1947 /*fromYear*/,
    -
    9326  1947 /*toYear*/,
    -
    9327  8 /*inMonth*/,
    -
    9328  0 /*onDayOfWeek*/,
    -
    9329  10 /*onDayOfMonth*/,
    -
    9330  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9331  240 /*atTimeCode (3600/15)*/,
    -
    9332  60 /*deltaMinutes*/,
    -
    9333  7 /*letterIndex ("BST")*/,
    -
    9334  },
    -
    9335  // Rule GB-Eire 1947 only - Nov 2 2:00s 0 GMT
    -
    9336  {
    -
    9337  1947 /*fromYear*/,
    -
    9338  1947 /*toYear*/,
    -
    9339  11 /*inMonth*/,
    -
    9340  0 /*onDayOfWeek*/,
    -
    9341  2 /*onDayOfMonth*/,
    -
    9342  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9343  480 /*atTimeCode (7200/15)*/,
    -
    9344  0 /*deltaMinutes*/,
    -
    9345  17 /*letterIndex ("GMT")*/,
    -
    9346  },
    -
    9347  // Rule GB-Eire 1948 only - Mar 14 2:00s 1:00 BST
    -
    9348  {
    -
    9349  1948 /*fromYear*/,
    -
    9350  1948 /*toYear*/,
    -
    9351  3 /*inMonth*/,
    -
    9352  0 /*onDayOfWeek*/,
    -
    9353  14 /*onDayOfMonth*/,
    -
    9354  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9355  480 /*atTimeCode (7200/15)*/,
    -
    9356  60 /*deltaMinutes*/,
    -
    9357  7 /*letterIndex ("BST")*/,
    -
    9358  },
    -
    9359  // Rule GB-Eire 1948 only - Oct 31 2:00s 0 GMT
    -
    9360  {
    -
    9361  1948 /*fromYear*/,
    -
    9362  1948 /*toYear*/,
    -
    9363  10 /*inMonth*/,
    -
    9364  0 /*onDayOfWeek*/,
    -
    9365  31 /*onDayOfMonth*/,
    -
    9366  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9367  480 /*atTimeCode (7200/15)*/,
    -
    9368  0 /*deltaMinutes*/,
    -
    9369  17 /*letterIndex ("GMT")*/,
    -
    9370  },
    -
    9371  // Rule GB-Eire 1949 only - Apr 3 2:00s 1:00 BST
    -
    9372  {
    -
    9373  1949 /*fromYear*/,
    -
    9374  1949 /*toYear*/,
    -
    9375  4 /*inMonth*/,
    -
    9376  0 /*onDayOfWeek*/,
    -
    9377  3 /*onDayOfMonth*/,
    -
    9378  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9379  480 /*atTimeCode (7200/15)*/,
    -
    9380  60 /*deltaMinutes*/,
    -
    9381  7 /*letterIndex ("BST")*/,
    -
    9382  },
    -
    9383  // Rule GB-Eire 1949 only - Oct 30 2:00s 0 GMT
    -
    9384  {
    -
    9385  1949 /*fromYear*/,
    -
    9386  1949 /*toYear*/,
    -
    9387  10 /*inMonth*/,
    -
    9388  0 /*onDayOfWeek*/,
    -
    9389  30 /*onDayOfMonth*/,
    -
    9390  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9391  480 /*atTimeCode (7200/15)*/,
    -
    9392  0 /*deltaMinutes*/,
    -
    9393  17 /*letterIndex ("GMT")*/,
    -
    9394  },
    -
    9395  // Rule GB-Eire 1950 1952 - Apr Sun>=14 2:00s 1:00 BST
    -
    9396  {
    -
    9397  1950 /*fromYear*/,
    -
    9398  1952 /*toYear*/,
    -
    9399  4 /*inMonth*/,
    -
    9400  7 /*onDayOfWeek*/,
    -
    9401  14 /*onDayOfMonth*/,
    -
    9402  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9403  480 /*atTimeCode (7200/15)*/,
    -
    9404  60 /*deltaMinutes*/,
    -
    9405  7 /*letterIndex ("BST")*/,
    -
    9406  },
    -
    9407  // Rule GB-Eire 1950 1952 - Oct Sun>=21 2:00s 0 GMT
    -
    9408  {
    -
    9409  1950 /*fromYear*/,
    -
    9410  1952 /*toYear*/,
    -
    9411  10 /*inMonth*/,
    -
    9412  7 /*onDayOfWeek*/,
    -
    9413  21 /*onDayOfMonth*/,
    -
    9414  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9415  480 /*atTimeCode (7200/15)*/,
    -
    9416  0 /*deltaMinutes*/,
    -
    9417  17 /*letterIndex ("GMT")*/,
    -
    9418  },
    -
    9419  // Rule GB-Eire 1953 only - Apr Sun>=16 2:00s 1:00 BST
    -
    9420  {
    -
    9421  1953 /*fromYear*/,
    -
    9422  1953 /*toYear*/,
    -
    9423  4 /*inMonth*/,
    -
    9424  7 /*onDayOfWeek*/,
    -
    9425  16 /*onDayOfMonth*/,
    -
    9426  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9427  480 /*atTimeCode (7200/15)*/,
    -
    9428  60 /*deltaMinutes*/,
    -
    9429  7 /*letterIndex ("BST")*/,
    -
    9430  },
    -
    9431  // Rule GB-Eire 1953 1960 - Oct Sun>=2 2:00s 0 GMT
    -
    9432  {
    -
    9433  1953 /*fromYear*/,
    -
    9434  1960 /*toYear*/,
    -
    9435  10 /*inMonth*/,
    -
    9436  7 /*onDayOfWeek*/,
    -
    9437  2 /*onDayOfMonth*/,
    -
    9438  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9439  480 /*atTimeCode (7200/15)*/,
    -
    9440  0 /*deltaMinutes*/,
    -
    9441  17 /*letterIndex ("GMT")*/,
    -
    9442  },
    -
    9443  // Rule GB-Eire 1954 only - Apr Sun>=9 2:00s 1:00 BST
    -
    9444  {
    -
    9445  1954 /*fromYear*/,
    -
    9446  1954 /*toYear*/,
    -
    9447  4 /*inMonth*/,
    -
    9448  7 /*onDayOfWeek*/,
    -
    9449  9 /*onDayOfMonth*/,
    -
    9450  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9451  480 /*atTimeCode (7200/15)*/,
    -
    9452  60 /*deltaMinutes*/,
    -
    9453  7 /*letterIndex ("BST")*/,
    -
    9454  },
    -
    9455  // Rule GB-Eire 1955 1956 - Apr Sun>=16 2:00s 1:00 BST
    -
    9456  {
    -
    9457  1955 /*fromYear*/,
    -
    9458  1956 /*toYear*/,
    -
    9459  4 /*inMonth*/,
    -
    9460  7 /*onDayOfWeek*/,
    -
    9461  16 /*onDayOfMonth*/,
    -
    9462  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9463  480 /*atTimeCode (7200/15)*/,
    -
    9464  60 /*deltaMinutes*/,
    -
    9465  7 /*letterIndex ("BST")*/,
    -
    9466  },
    -
    9467  // Rule GB-Eire 1957 only - Apr Sun>=9 2:00s 1:00 BST
    -
    9468  {
    -
    9469  1957 /*fromYear*/,
    -
    9470  1957 /*toYear*/,
    -
    9471  4 /*inMonth*/,
    -
    9472  7 /*onDayOfWeek*/,
    -
    9473  9 /*onDayOfMonth*/,
    -
    9474  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9475  480 /*atTimeCode (7200/15)*/,
    -
    9476  60 /*deltaMinutes*/,
    -
    9477  7 /*letterIndex ("BST")*/,
    -
    9478  },
    -
    9479  // Rule GB-Eire 1958 1959 - Apr Sun>=16 2:00s 1:00 BST
    -
    9480  {
    -
    9481  1958 /*fromYear*/,
    -
    9482  1959 /*toYear*/,
    -
    9483  4 /*inMonth*/,
    -
    9484  7 /*onDayOfWeek*/,
    -
    9485  16 /*onDayOfMonth*/,
    -
    9486  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9487  480 /*atTimeCode (7200/15)*/,
    -
    9488  60 /*deltaMinutes*/,
    -
    9489  7 /*letterIndex ("BST")*/,
    -
    9490  },
    -
    9491  // Rule GB-Eire 1960 only - Apr Sun>=9 2:00s 1:00 BST
    -
    9492  {
    -
    9493  1960 /*fromYear*/,
    -
    9494  1960 /*toYear*/,
    -
    9495  4 /*inMonth*/,
    -
    9496  7 /*onDayOfWeek*/,
    -
    9497  9 /*onDayOfMonth*/,
    -
    9498  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9499  480 /*atTimeCode (7200/15)*/,
    -
    9500  60 /*deltaMinutes*/,
    -
    9501  7 /*letterIndex ("BST")*/,
    -
    9502  },
    -
    9503  // Rule GB-Eire 1961 1963 - Mar lastSun 2:00s 1:00 BST
    -
    9504  {
    -
    9505  1961 /*fromYear*/,
    -
    9506  1963 /*toYear*/,
    -
    9507  3 /*inMonth*/,
    -
    9508  7 /*onDayOfWeek*/,
    -
    9509  0 /*onDayOfMonth*/,
    -
    9510  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9511  480 /*atTimeCode (7200/15)*/,
    -
    9512  60 /*deltaMinutes*/,
    -
    9513  7 /*letterIndex ("BST")*/,
    -
    9514  },
    -
    9515  // Rule GB-Eire 1961 1968 - Oct Sun>=23 2:00s 0 GMT
    -
    9516  {
    -
    9517  1961 /*fromYear*/,
    -
    9518  1968 /*toYear*/,
    -
    9519  10 /*inMonth*/,
    -
    9520  7 /*onDayOfWeek*/,
    -
    9521  23 /*onDayOfMonth*/,
    -
    9522  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9523  480 /*atTimeCode (7200/15)*/,
    -
    9524  0 /*deltaMinutes*/,
    -
    9525  17 /*letterIndex ("GMT")*/,
    -
    9526  },
    -
    9527  // Rule GB-Eire 1964 1967 - Mar Sun>=19 2:00s 1:00 BST
    -
    9528  {
    -
    9529  1964 /*fromYear*/,
    -
    9530  1967 /*toYear*/,
    -
    9531  3 /*inMonth*/,
    -
    9532  7 /*onDayOfWeek*/,
    -
    9533  19 /*onDayOfMonth*/,
    -
    9534  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9535  480 /*atTimeCode (7200/15)*/,
    -
    9536  60 /*deltaMinutes*/,
    -
    9537  7 /*letterIndex ("BST")*/,
    -
    9538  },
    -
    9539  // Rule GB-Eire 1968 only - Feb 18 2:00s 1:00 BST
    -
    9540  {
    -
    9541  1968 /*fromYear*/,
    -
    9542  1968 /*toYear*/,
    -
    9543  2 /*inMonth*/,
    -
    9544  0 /*onDayOfWeek*/,
    -
    9545  18 /*onDayOfMonth*/,
    -
    9546  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9547  480 /*atTimeCode (7200/15)*/,
    -
    9548  60 /*deltaMinutes*/,
    -
    9549  7 /*letterIndex ("BST")*/,
    -
    9550  },
    -
    9551  // Rule GB-Eire 1972 1980 - Mar Sun>=16 2:00s 1:00 BST
    -
    9552  {
    -
    9553  1972 /*fromYear*/,
    -
    9554  1980 /*toYear*/,
    -
    9555  3 /*inMonth*/,
    -
    9556  7 /*onDayOfWeek*/,
    -
    9557  16 /*onDayOfMonth*/,
    -
    9558  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9559  480 /*atTimeCode (7200/15)*/,
    -
    9560  60 /*deltaMinutes*/,
    -
    9561  7 /*letterIndex ("BST")*/,
    -
    9562  },
    -
    9563  // Rule GB-Eire 1972 1980 - Oct Sun>=23 2:00s 0 GMT
    -
    9564  {
    -
    9565  1972 /*fromYear*/,
    -
    9566  1980 /*toYear*/,
    -
    9567  10 /*inMonth*/,
    -
    9568  7 /*onDayOfWeek*/,
    -
    9569  23 /*onDayOfMonth*/,
    -
    9570  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9571  480 /*atTimeCode (7200/15)*/,
    -
    9572  0 /*deltaMinutes*/,
    -
    9573  17 /*letterIndex ("GMT")*/,
    -
    9574  },
    -
    9575  // Rule GB-Eire 1981 1995 - Mar lastSun 1:00u 1:00 BST
    -
    9576  {
    -
    9577  1981 /*fromYear*/,
    -
    9578  1995 /*toYear*/,
    -
    9579  3 /*inMonth*/,
    -
    9580  7 /*onDayOfWeek*/,
    -
    9581  0 /*onDayOfMonth*/,
    -
    9582  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    9583  240 /*atTimeCode (3600/15)*/,
    -
    9584  60 /*deltaMinutes*/,
    -
    9585  7 /*letterIndex ("BST")*/,
    -
    9586  },
    -
    9587  // Rule GB-Eire 1981 1989 - Oct Sun>=23 1:00u 0 GMT
    -
    9588  {
    -
    9589  1981 /*fromYear*/,
    -
    9590  1989 /*toYear*/,
    -
    9591  10 /*inMonth*/,
    -
    9592  7 /*onDayOfWeek*/,
    -
    9593  23 /*onDayOfMonth*/,
    -
    9594  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    9595  240 /*atTimeCode (3600/15)*/,
    -
    9596  0 /*deltaMinutes*/,
    -
    9597  17 /*letterIndex ("GMT")*/,
    -
    9598  },
    -
    9599  // Rule GB-Eire 1990 1995 - Oct Sun>=22 1:00u 0 GMT
    -
    9600  {
    -
    9601  1990 /*fromYear*/,
    -
    9602  1995 /*toYear*/,
    -
    9603  10 /*inMonth*/,
    -
    9604  7 /*onDayOfWeek*/,
    -
    9605  22 /*onDayOfMonth*/,
    -
    9606  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    9607  240 /*atTimeCode (3600/15)*/,
    -
    9608  0 /*deltaMinutes*/,
    -
    9609  17 /*letterIndex ("GMT")*/,
    -
    9610  },
    -
    9611 
    -
    9612 };
    -
    9613 
    -
    9614 const complete::Info::ZonePolicy kZonePolicyGB_Eire ACE_TIME_PROGMEM = {
    -
    9615  kZoneRulesGB_Eire /*rules*/,
    -
    9616  66 /*numRules*/,
    -
    9617 };
    -
    9618 
    -
    9619 //---------------------------------------------------------------------------
    -
    9620 // Policy name: Germany
    -
    9621 // Rules: 9
    -
    9622 //---------------------------------------------------------------------------
    -
    9623 
    -
    9624 static const complete::Info::ZoneRule kZoneRulesGermany[] ACE_TIME_PROGMEM = {
    -
    9625  // Anchor: Rule Germany 1946 only - Oct 7 2:00s 0 -
    -
    9626  {
    -
    9627  -32767 /*fromYear*/,
    -
    9628  -32767 /*toYear*/,
    -
    9629  1 /*inMonth*/,
    -
    9630  0 /*onDayOfWeek*/,
    -
    9631  1 /*onDayOfMonth*/,
    -
    9632  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9633  0 /*atTimeCode (0/15)*/,
    -
    9634  0 /*deltaMinutes*/,
    -
    9635  0 /*letterIndex ("")*/,
    -
    9636  },
    -
    9637  // Rule Germany 1946 only - Apr 14 2:00s 1:00 S
    -
    9638  {
    -
    9639  1946 /*fromYear*/,
    -
    9640  1946 /*toYear*/,
    -
    9641  4 /*inMonth*/,
    -
    9642  0 /*onDayOfWeek*/,
    -
    9643  14 /*onDayOfMonth*/,
    -
    9644  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9645  480 /*atTimeCode (7200/15)*/,
    -
    9646  60 /*deltaMinutes*/,
    -
    9647  25 /*letterIndex ("S")*/,
    -
    9648  },
    -
    9649  // Rule Germany 1946 only - Oct 7 2:00s 0 -
    -
    9650  {
    -
    9651  1946 /*fromYear*/,
    -
    9652  1946 /*toYear*/,
    -
    9653  10 /*inMonth*/,
    -
    9654  0 /*onDayOfWeek*/,
    -
    9655  7 /*onDayOfMonth*/,
    -
    9656  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9657  480 /*atTimeCode (7200/15)*/,
    -
    9658  0 /*deltaMinutes*/,
    -
    9659  0 /*letterIndex ("")*/,
    -
    9660  },
    -
    9661  // Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 -
    -
    9662  {
    -
    9663  1947 /*fromYear*/,
    -
    9664  1949 /*toYear*/,
    -
    9665  10 /*inMonth*/,
    -
    9666  7 /*onDayOfWeek*/,
    -
    9667  1 /*onDayOfMonth*/,
    -
    9668  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9669  480 /*atTimeCode (7200/15)*/,
    -
    9670  0 /*deltaMinutes*/,
    -
    9671  0 /*letterIndex ("")*/,
    -
    9672  },
    -
    9673  // Rule Germany 1947 only - Apr 6 3:00s 1:00 S
    -
    9674  {
    -
    9675  1947 /*fromYear*/,
    -
    9676  1947 /*toYear*/,
    -
    9677  4 /*inMonth*/,
    -
    9678  0 /*onDayOfWeek*/,
    -
    9679  6 /*onDayOfMonth*/,
    -
    9680  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9681  720 /*atTimeCode (10800/15)*/,
    -
    9682  60 /*deltaMinutes*/,
    -
    9683  25 /*letterIndex ("S")*/,
    -
    9684  },
    -
    9685  // Rule Germany 1947 only - May 11 2:00s 2:00 M
    -
    9686  {
    -
    9687  1947 /*fromYear*/,
    -
    9688  1947 /*toYear*/,
    -
    9689  5 /*inMonth*/,
    -
    9690  0 /*onDayOfWeek*/,
    -
    9691  11 /*onDayOfMonth*/,
    -
    9692  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9693  480 /*atTimeCode (7200/15)*/,
    -
    9694  120 /*deltaMinutes*/,
    -
    9695  18 /*letterIndex ("M")*/,
    -
    9696  },
    -
    9697  // Rule Germany 1947 only - Jun 29 3:00 1:00 S
    -
    9698  {
    -
    9699  1947 /*fromYear*/,
    -
    9700  1947 /*toYear*/,
    -
    9701  6 /*inMonth*/,
    -
    9702  0 /*onDayOfWeek*/,
    -
    9703  29 /*onDayOfMonth*/,
    -
    9704  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9705  720 /*atTimeCode (10800/15)*/,
    -
    9706  60 /*deltaMinutes*/,
    -
    9707  25 /*letterIndex ("S")*/,
    -
    9708  },
    -
    9709  // Rule Germany 1948 only - Apr 18 2:00s 1:00 S
    -
    9710  {
    -
    9711  1948 /*fromYear*/,
    -
    9712  1948 /*toYear*/,
    -
    9713  4 /*inMonth*/,
    -
    9714  0 /*onDayOfWeek*/,
    -
    9715  18 /*onDayOfMonth*/,
    -
    9716  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9717  480 /*atTimeCode (7200/15)*/,
    -
    9718  60 /*deltaMinutes*/,
    -
    9719  25 /*letterIndex ("S")*/,
    -
    9720  },
    -
    9721  // Rule Germany 1949 only - Apr 10 2:00s 1:00 S
    -
    9722  {
    -
    9723  1949 /*fromYear*/,
    -
    9724  1949 /*toYear*/,
    -
    9725  4 /*inMonth*/,
    -
    9726  0 /*onDayOfWeek*/,
    -
    9727  10 /*onDayOfMonth*/,
    -
    9728  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9729  480 /*atTimeCode (7200/15)*/,
    -
    9730  60 /*deltaMinutes*/,
    -
    9731  25 /*letterIndex ("S")*/,
    -
    9732  },
    -
    9733 
    -
    9734 };
    -
    9735 
    -
    9736 const complete::Info::ZonePolicy kZonePolicyGermany ACE_TIME_PROGMEM = {
    -
    9737  kZoneRulesGermany /*rules*/,
    -
    9738  9 /*numRules*/,
    -
    9739 };
    -
    9740 
    -
    9741 //---------------------------------------------------------------------------
    -
    9742 // Policy name: Greece
    -
    9743 // Rules: 20
    -
    9744 //---------------------------------------------------------------------------
    -
    9745 
    -
    9746 static const complete::Info::ZoneRule kZoneRulesGreece[] ACE_TIME_PROGMEM = {
    -
    9747  // Anchor: Rule Greece 1932 only - Sep 1 0:00 0 -
    -
    9748  {
    -
    9749  -32767 /*fromYear*/,
    -
    9750  -32767 /*toYear*/,
    -
    9751  1 /*inMonth*/,
    -
    9752  0 /*onDayOfWeek*/,
    -
    9753  1 /*onDayOfMonth*/,
    -
    9754  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9755  0 /*atTimeCode (0/15)*/,
    -
    9756  0 /*deltaMinutes*/,
    -
    9757  0 /*letterIndex ("")*/,
    -
    9758  },
    -
    9759  // Rule Greece 1932 only - Jul 7 0:00 1:00 S
    -
    9760  {
    -
    9761  1932 /*fromYear*/,
    -
    9762  1932 /*toYear*/,
    -
    9763  7 /*inMonth*/,
    -
    9764  0 /*onDayOfWeek*/,
    -
    9765  7 /*onDayOfMonth*/,
    -
    9766  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9767  0 /*atTimeCode (0/15)*/,
    -
    9768  60 /*deltaMinutes*/,
    -
    9769  25 /*letterIndex ("S")*/,
    -
    9770  },
    -
    9771  // Rule Greece 1932 only - Sep 1 0:00 0 -
    -
    9772  {
    -
    9773  1932 /*fromYear*/,
    -
    9774  1932 /*toYear*/,
    -
    9775  9 /*inMonth*/,
    -
    9776  0 /*onDayOfWeek*/,
    -
    9777  1 /*onDayOfMonth*/,
    -
    9778  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9779  0 /*atTimeCode (0/15)*/,
    -
    9780  0 /*deltaMinutes*/,
    -
    9781  0 /*letterIndex ("")*/,
    -
    9782  },
    -
    9783  // Rule Greece 1941 only - Apr 7 0:00 1:00 S
    -
    9784  {
    -
    9785  1941 /*fromYear*/,
    -
    9786  1941 /*toYear*/,
    -
    9787  4 /*inMonth*/,
    -
    9788  0 /*onDayOfWeek*/,
    -
    9789  7 /*onDayOfMonth*/,
    -
    9790  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9791  0 /*atTimeCode (0/15)*/,
    -
    9792  60 /*deltaMinutes*/,
    -
    9793  25 /*letterIndex ("S")*/,
    -
    9794  },
    -
    9795  // Rule Greece 1942 only - Nov 2 3:00 0 -
    -
    9796  {
    -
    9797  1942 /*fromYear*/,
    -
    9798  1942 /*toYear*/,
    -
    9799  11 /*inMonth*/,
    -
    9800  0 /*onDayOfWeek*/,
    -
    9801  2 /*onDayOfMonth*/,
    -
    9802  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9803  720 /*atTimeCode (10800/15)*/,
    -
    9804  0 /*deltaMinutes*/,
    -
    9805  0 /*letterIndex ("")*/,
    -
    9806  },
    -
    9807  // Rule Greece 1943 only - Mar 30 0:00 1:00 S
    -
    9808  {
    -
    9809  1943 /*fromYear*/,
    -
    9810  1943 /*toYear*/,
    -
    9811  3 /*inMonth*/,
    -
    9812  0 /*onDayOfWeek*/,
    -
    9813  30 /*onDayOfMonth*/,
    -
    9814  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9815  0 /*atTimeCode (0/15)*/,
    -
    9816  60 /*deltaMinutes*/,
    -
    9817  25 /*letterIndex ("S")*/,
    -
    9818  },
    -
    9819  // Rule Greece 1943 only - Oct 4 0:00 0 -
    -
    9820  {
    -
    9821  1943 /*fromYear*/,
    -
    9822  1943 /*toYear*/,
    -
    9823  10 /*inMonth*/,
    -
    9824  0 /*onDayOfWeek*/,
    -
    9825  4 /*onDayOfMonth*/,
    -
    9826  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9827  0 /*atTimeCode (0/15)*/,
    -
    9828  0 /*deltaMinutes*/,
    -
    9829  0 /*letterIndex ("")*/,
    -
    9830  },
    -
    9831  // Rule Greece 1952 only - Jul 1 0:00 1:00 S
    -
    9832  {
    -
    9833  1952 /*fromYear*/,
    -
    9834  1952 /*toYear*/,
    -
    9835  7 /*inMonth*/,
    -
    9836  0 /*onDayOfWeek*/,
    -
    9837  1 /*onDayOfMonth*/,
    -
    9838  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9839  0 /*atTimeCode (0/15)*/,
    -
    9840  60 /*deltaMinutes*/,
    -
    9841  25 /*letterIndex ("S")*/,
    -
    9842  },
    -
    9843  // Rule Greece 1952 only - Nov 2 0:00 0 -
    -
    9844  {
    -
    9845  1952 /*fromYear*/,
    -
    9846  1952 /*toYear*/,
    -
    9847  11 /*inMonth*/,
    -
    9848  0 /*onDayOfWeek*/,
    -
    9849  2 /*onDayOfMonth*/,
    -
    9850  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9851  0 /*atTimeCode (0/15)*/,
    -
    9852  0 /*deltaMinutes*/,
    -
    9853  0 /*letterIndex ("")*/,
    -
    9854  },
    -
    9855  // Rule Greece 1975 only - Apr 12 0:00s 1:00 S
    -
    9856  {
    -
    9857  1975 /*fromYear*/,
    -
    9858  1975 /*toYear*/,
    -
    9859  4 /*inMonth*/,
    -
    9860  0 /*onDayOfWeek*/,
    -
    9861  12 /*onDayOfMonth*/,
    -
    9862  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9863  0 /*atTimeCode (0/15)*/,
    -
    9864  60 /*deltaMinutes*/,
    -
    9865  25 /*letterIndex ("S")*/,
    -
    9866  },
    -
    9867  // Rule Greece 1975 only - Nov 26 0:00s 0 -
    -
    9868  {
    -
    9869  1975 /*fromYear*/,
    -
    9870  1975 /*toYear*/,
    -
    9871  11 /*inMonth*/,
    -
    9872  0 /*onDayOfWeek*/,
    -
    9873  26 /*onDayOfMonth*/,
    -
    9874  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9875  0 /*atTimeCode (0/15)*/,
    -
    9876  0 /*deltaMinutes*/,
    -
    9877  0 /*letterIndex ("")*/,
    -
    9878  },
    -
    9879  // Rule Greece 1976 only - Apr 11 2:00s 1:00 S
    -
    9880  {
    -
    9881  1976 /*fromYear*/,
    -
    9882  1976 /*toYear*/,
    -
    9883  4 /*inMonth*/,
    -
    9884  0 /*onDayOfWeek*/,
    -
    9885  11 /*onDayOfMonth*/,
    -
    9886  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9887  480 /*atTimeCode (7200/15)*/,
    -
    9888  60 /*deltaMinutes*/,
    -
    9889  25 /*letterIndex ("S")*/,
    -
    9890  },
    -
    9891  // Rule Greece 1976 only - Oct 10 2:00s 0 -
    -
    9892  {
    -
    9893  1976 /*fromYear*/,
    -
    9894  1976 /*toYear*/,
    -
    9895  10 /*inMonth*/,
    -
    9896  0 /*onDayOfWeek*/,
    -
    9897  10 /*onDayOfMonth*/,
    -
    9898  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9899  480 /*atTimeCode (7200/15)*/,
    -
    9900  0 /*deltaMinutes*/,
    -
    9901  0 /*letterIndex ("")*/,
    -
    9902  },
    -
    9903  // Rule Greece 1977 1978 - Apr Sun>=1 2:00s 1:00 S
    -
    9904  {
    -
    9905  1977 /*fromYear*/,
    -
    9906  1978 /*toYear*/,
    -
    9907  4 /*inMonth*/,
    -
    9908  7 /*onDayOfWeek*/,
    -
    9909  1 /*onDayOfMonth*/,
    -
    9910  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9911  480 /*atTimeCode (7200/15)*/,
    -
    9912  60 /*deltaMinutes*/,
    -
    9913  25 /*letterIndex ("S")*/,
    -
    9914  },
    -
    9915  // Rule Greece 1977 only - Sep 26 2:00s 0 -
    -
    9916  {
    -
    9917  1977 /*fromYear*/,
    -
    9918  1977 /*toYear*/,
    -
    9919  9 /*inMonth*/,
    -
    9920  0 /*onDayOfWeek*/,
    -
    9921  26 /*onDayOfMonth*/,
    -
    9922  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    9923  480 /*atTimeCode (7200/15)*/,
    -
    9924  0 /*deltaMinutes*/,
    -
    9925  0 /*letterIndex ("")*/,
    -
    9926  },
    -
    9927  // Rule Greece 1978 only - Sep 24 4:00 0 -
    -
    9928  {
    -
    9929  1978 /*fromYear*/,
    -
    9930  1978 /*toYear*/,
    -
    9931  9 /*inMonth*/,
    -
    9932  0 /*onDayOfWeek*/,
    -
    9933  24 /*onDayOfMonth*/,
    -
    9934  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9935  960 /*atTimeCode (14400/15)*/,
    -
    9936  0 /*deltaMinutes*/,
    -
    9937  0 /*letterIndex ("")*/,
    -
    9938  },
    -
    9939  // Rule Greece 1979 only - Apr 1 9:00 1:00 S
    -
    9940  {
    -
    9941  1979 /*fromYear*/,
    -
    9942  1979 /*toYear*/,
    -
    9943  4 /*inMonth*/,
    -
    9944  0 /*onDayOfWeek*/,
    -
    9945  1 /*onDayOfMonth*/,
    -
    9946  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9947  2160 /*atTimeCode (32400/15)*/,
    -
    9948  60 /*deltaMinutes*/,
    -
    9949  25 /*letterIndex ("S")*/,
    -
    9950  },
    -
    9951  // Rule Greece 1979 only - Sep 29 2:00 0 -
    -
    9952  {
    -
    9953  1979 /*fromYear*/,
    -
    9954  1979 /*toYear*/,
    -
    9955  9 /*inMonth*/,
    -
    9956  0 /*onDayOfWeek*/,
    -
    9957  29 /*onDayOfMonth*/,
    -
    9958  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9959  480 /*atTimeCode (7200/15)*/,
    -
    9960  0 /*deltaMinutes*/,
    -
    9961  0 /*letterIndex ("")*/,
    -
    9962  },
    -
    9963  // Rule Greece 1980 only - Apr 1 0:00 1:00 S
    -
    9964  {
    -
    9965  1980 /*fromYear*/,
    -
    9966  1980 /*toYear*/,
    -
    9967  4 /*inMonth*/,
    -
    9968  0 /*onDayOfWeek*/,
    -
    9969  1 /*onDayOfMonth*/,
    -
    9970  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9971  0 /*atTimeCode (0/15)*/,
    -
    9972  60 /*deltaMinutes*/,
    -
    9973  25 /*letterIndex ("S")*/,
    -
    9974  },
    -
    9975  // Rule Greece 1980 only - Sep 28 0:00 0 -
    -
    9976  {
    -
    9977  1980 /*fromYear*/,
    -
    9978  1980 /*toYear*/,
    -
    9979  9 /*inMonth*/,
    -
    9980  0 /*onDayOfWeek*/,
    -
    9981  28 /*onDayOfMonth*/,
    -
    9982  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    9983  0 /*atTimeCode (0/15)*/,
    -
    9984  0 /*deltaMinutes*/,
    -
    9985  0 /*letterIndex ("")*/,
    -
    9986  },
    -
    9987 
    -
    9988 };
    -
    9989 
    -
    9990 const complete::Info::ZonePolicy kZonePolicyGreece ACE_TIME_PROGMEM = {
    -
    9991  kZoneRulesGreece /*rules*/,
    -
    9992  20 /*numRules*/,
    -
    9993 };
    -
    9994 
    -
    9995 //---------------------------------------------------------------------------
    -
    9996 // Policy name: Guam
    -
    9997 // Rules: 15
    -
    9998 //---------------------------------------------------------------------------
    -
    9999 
    -
    10000 static const complete::Info::ZoneRule kZoneRulesGuam[] ACE_TIME_PROGMEM = {
    -
    10001  // Anchor: Rule Guam 1961 only - Jan 29 2:00 0 S
    -
    10002  {
    -
    10003  -32767 /*fromYear*/,
    -
    10004  -32767 /*toYear*/,
    -
    10005  1 /*inMonth*/,
    -
    10006  0 /*onDayOfWeek*/,
    -
    10007  1 /*onDayOfMonth*/,
    -
    10008  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10009  0 /*atTimeCode (0/15)*/,
    -
    10010  0 /*deltaMinutes*/,
    -
    10011  25 /*letterIndex ("S")*/,
    -
    10012  },
    -
    10013  // Rule Guam 1959 only - Jun 27 2:00 1:00 D
    -
    10014  {
    -
    10015  1959 /*fromYear*/,
    -
    10016  1959 /*toYear*/,
    -
    10017  6 /*inMonth*/,
    -
    10018  0 /*onDayOfWeek*/,
    -
    10019  27 /*onDayOfMonth*/,
    -
    10020  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10021  480 /*atTimeCode (7200/15)*/,
    -
    10022  60 /*deltaMinutes*/,
    -
    10023  13 /*letterIndex ("D")*/,
    -
    10024  },
    -
    10025  // Rule Guam 1961 only - Jan 29 2:00 0 S
    -
    10026  {
    -
    10027  1961 /*fromYear*/,
    -
    10028  1961 /*toYear*/,
    -
    10029  1 /*inMonth*/,
    -
    10030  0 /*onDayOfWeek*/,
    -
    10031  29 /*onDayOfMonth*/,
    -
    10032  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10033  480 /*atTimeCode (7200/15)*/,
    -
    10034  0 /*deltaMinutes*/,
    -
    10035  25 /*letterIndex ("S")*/,
    -
    10036  },
    -
    10037  // Rule Guam 1967 only - Sep 1 2:00 1:00 D
    -
    10038  {
    -
    10039  1967 /*fromYear*/,
    -
    10040  1967 /*toYear*/,
    -
    10041  9 /*inMonth*/,
    -
    10042  0 /*onDayOfWeek*/,
    -
    10043  1 /*onDayOfMonth*/,
    -
    10044  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10045  480 /*atTimeCode (7200/15)*/,
    -
    10046  60 /*deltaMinutes*/,
    -
    10047  13 /*letterIndex ("D")*/,
    -
    10048  },
    -
    10049  // Rule Guam 1969 only - Jan 26 0:01 0 S
    -
    10050  {
    -
    10051  1969 /*fromYear*/,
    -
    10052  1969 /*toYear*/,
    -
    10053  1 /*inMonth*/,
    -
    10054  0 /*onDayOfWeek*/,
    -
    10055  26 /*onDayOfMonth*/,
    -
    10056  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10057  4 /*atTimeCode (60/15)*/,
    -
    10058  0 /*deltaMinutes*/,
    -
    10059  25 /*letterIndex ("S")*/,
    -
    10060  },
    -
    10061  // Rule Guam 1969 only - Jun 22 2:00 1:00 D
    -
    10062  {
    -
    10063  1969 /*fromYear*/,
    -
    10064  1969 /*toYear*/,
    -
    10065  6 /*inMonth*/,
    -
    10066  0 /*onDayOfWeek*/,
    -
    10067  22 /*onDayOfMonth*/,
    -
    10068  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10069  480 /*atTimeCode (7200/15)*/,
    -
    10070  60 /*deltaMinutes*/,
    -
    10071  13 /*letterIndex ("D")*/,
    -
    10072  },
    -
    10073  // Rule Guam 1969 only - Aug 31 2:00 0 S
    -
    10074  {
    -
    10075  1969 /*fromYear*/,
    -
    10076  1969 /*toYear*/,
    -
    10077  8 /*inMonth*/,
    -
    10078  0 /*onDayOfWeek*/,
    -
    10079  31 /*onDayOfMonth*/,
    -
    10080  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10081  480 /*atTimeCode (7200/15)*/,
    -
    10082  0 /*deltaMinutes*/,
    -
    10083  25 /*letterIndex ("S")*/,
    -
    10084  },
    -
    10085  // Rule Guam 1970 1971 - Apr lastSun 2:00 1:00 D
    -
    10086  {
    -
    10087  1970 /*fromYear*/,
    -
    10088  1971 /*toYear*/,
    -
    10089  4 /*inMonth*/,
    -
    10090  7 /*onDayOfWeek*/,
    -
    10091  0 /*onDayOfMonth*/,
    -
    10092  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10093  480 /*atTimeCode (7200/15)*/,
    -
    10094  60 /*deltaMinutes*/,
    -
    10095  13 /*letterIndex ("D")*/,
    -
    10096  },
    -
    10097  // Rule Guam 1970 1971 - Sep Sun>=1 2:00 0 S
    -
    10098  {
    -
    10099  1970 /*fromYear*/,
    -
    10100  1971 /*toYear*/,
    -
    10101  9 /*inMonth*/,
    -
    10102  7 /*onDayOfWeek*/,
    -
    10103  1 /*onDayOfMonth*/,
    -
    10104  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10105  480 /*atTimeCode (7200/15)*/,
    -
    10106  0 /*deltaMinutes*/,
    -
    10107  25 /*letterIndex ("S")*/,
    -
    10108  },
    -
    10109  // Rule Guam 1973 only - Dec 16 2:00 1:00 D
    -
    10110  {
    -
    10111  1973 /*fromYear*/,
    -
    10112  1973 /*toYear*/,
    -
    10113  12 /*inMonth*/,
    -
    10114  0 /*onDayOfWeek*/,
    -
    10115  16 /*onDayOfMonth*/,
    -
    10116  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10117  480 /*atTimeCode (7200/15)*/,
    -
    10118  60 /*deltaMinutes*/,
    -
    10119  13 /*letterIndex ("D")*/,
    -
    10120  },
    -
    10121  // Rule Guam 1974 only - Feb 24 2:00 0 S
    -
    10122  {
    -
    10123  1974 /*fromYear*/,
    -
    10124  1974 /*toYear*/,
    -
    10125  2 /*inMonth*/,
    -
    10126  0 /*onDayOfWeek*/,
    -
    10127  24 /*onDayOfMonth*/,
    -
    10128  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10129  480 /*atTimeCode (7200/15)*/,
    -
    10130  0 /*deltaMinutes*/,
    -
    10131  25 /*letterIndex ("S")*/,
    -
    10132  },
    -
    10133  // Rule Guam 1976 only - May 26 2:00 1:00 D
    -
    10134  {
    -
    10135  1976 /*fromYear*/,
    -
    10136  1976 /*toYear*/,
    -
    10137  5 /*inMonth*/,
    -
    10138  0 /*onDayOfWeek*/,
    -
    10139  26 /*onDayOfMonth*/,
    -
    10140  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10141  480 /*atTimeCode (7200/15)*/,
    -
    10142  60 /*deltaMinutes*/,
    -
    10143  13 /*letterIndex ("D")*/,
    -
    10144  },
    -
    10145  // Rule Guam 1976 only - Aug 22 2:01 0 S
    -
    10146  {
    -
    10147  1976 /*fromYear*/,
    -
    10148  1976 /*toYear*/,
    -
    10149  8 /*inMonth*/,
    -
    10150  0 /*onDayOfWeek*/,
    -
    10151  22 /*onDayOfMonth*/,
    -
    10152  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10153  484 /*atTimeCode (7260/15)*/,
    -
    10154  0 /*deltaMinutes*/,
    -
    10155  25 /*letterIndex ("S")*/,
    -
    10156  },
    -
    10157  // Rule Guam 1977 only - Apr 24 2:00 1:00 D
    -
    10158  {
    -
    10159  1977 /*fromYear*/,
    -
    10160  1977 /*toYear*/,
    -
    10161  4 /*inMonth*/,
    -
    10162  0 /*onDayOfWeek*/,
    -
    10163  24 /*onDayOfMonth*/,
    -
    10164  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10165  480 /*atTimeCode (7200/15)*/,
    -
    10166  60 /*deltaMinutes*/,
    -
    10167  13 /*letterIndex ("D")*/,
    -
    10168  },
    -
    10169  // Rule Guam 1977 only - Aug 28 2:00 0 S
    -
    10170  {
    -
    10171  1977 /*fromYear*/,
    -
    10172  1977 /*toYear*/,
    -
    10173  8 /*inMonth*/,
    -
    10174  0 /*onDayOfWeek*/,
    -
    10175  28 /*onDayOfMonth*/,
    -
    10176  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10177  480 /*atTimeCode (7200/15)*/,
    -
    10178  0 /*deltaMinutes*/,
    -
    10179  25 /*letterIndex ("S")*/,
    -
    10180  },
    -
    10181 
    -
    10182 };
    -
    10183 
    -
    10184 const complete::Info::ZonePolicy kZonePolicyGuam ACE_TIME_PROGMEM = {
    -
    10185  kZoneRulesGuam /*rules*/,
    -
    10186  15 /*numRules*/,
    -
    10187 };
    -
    10188 
    -
    10189 //---------------------------------------------------------------------------
    -
    10190 // Policy name: Guat
    -
    10191 // Rules: 9
    -
    10192 //---------------------------------------------------------------------------
    -
    10193 
    -
    10194 static const complete::Info::ZoneRule kZoneRulesGuat[] ACE_TIME_PROGMEM = {
    -
    10195  // Anchor: Rule Guat 1974 only - Feb 24 0:00 0 S
    -
    10196  {
    -
    10197  -32767 /*fromYear*/,
    -
    10198  -32767 /*toYear*/,
    -
    10199  1 /*inMonth*/,
    -
    10200  0 /*onDayOfWeek*/,
    -
    10201  1 /*onDayOfMonth*/,
    -
    10202  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10203  0 /*atTimeCode (0/15)*/,
    -
    10204  0 /*deltaMinutes*/,
    -
    10205  25 /*letterIndex ("S")*/,
    -
    10206  },
    -
    10207  // Rule Guat 1973 only - Nov 25 0:00 1:00 D
    -
    10208  {
    -
    10209  1973 /*fromYear*/,
    -
    10210  1973 /*toYear*/,
    -
    10211  11 /*inMonth*/,
    -
    10212  0 /*onDayOfWeek*/,
    -
    10213  25 /*onDayOfMonth*/,
    -
    10214  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10215  0 /*atTimeCode (0/15)*/,
    -
    10216  60 /*deltaMinutes*/,
    -
    10217  13 /*letterIndex ("D")*/,
    -
    10218  },
    -
    10219  // Rule Guat 1974 only - Feb 24 0:00 0 S
    -
    10220  {
    -
    10221  1974 /*fromYear*/,
    -
    10222  1974 /*toYear*/,
    -
    10223  2 /*inMonth*/,
    -
    10224  0 /*onDayOfWeek*/,
    -
    10225  24 /*onDayOfMonth*/,
    -
    10226  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10227  0 /*atTimeCode (0/15)*/,
    -
    10228  0 /*deltaMinutes*/,
    -
    10229  25 /*letterIndex ("S")*/,
    -
    10230  },
    -
    10231  // Rule Guat 1983 only - May 21 0:00 1:00 D
    -
    10232  {
    -
    10233  1983 /*fromYear*/,
    -
    10234  1983 /*toYear*/,
    -
    10235  5 /*inMonth*/,
    -
    10236  0 /*onDayOfWeek*/,
    -
    10237  21 /*onDayOfMonth*/,
    -
    10238  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10239  0 /*atTimeCode (0/15)*/,
    -
    10240  60 /*deltaMinutes*/,
    -
    10241  13 /*letterIndex ("D")*/,
    -
    10242  },
    -
    10243  // Rule Guat 1983 only - Sep 22 0:00 0 S
    -
    10244  {
    -
    10245  1983 /*fromYear*/,
    -
    10246  1983 /*toYear*/,
    -
    10247  9 /*inMonth*/,
    -
    10248  0 /*onDayOfWeek*/,
    -
    10249  22 /*onDayOfMonth*/,
    -
    10250  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10251  0 /*atTimeCode (0/15)*/,
    -
    10252  0 /*deltaMinutes*/,
    -
    10253  25 /*letterIndex ("S")*/,
    -
    10254  },
    -
    10255  // Rule Guat 1991 only - Mar 23 0:00 1:00 D
    -
    10256  {
    -
    10257  1991 /*fromYear*/,
    -
    10258  1991 /*toYear*/,
    -
    10259  3 /*inMonth*/,
    -
    10260  0 /*onDayOfWeek*/,
    -
    10261  23 /*onDayOfMonth*/,
    -
    10262  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10263  0 /*atTimeCode (0/15)*/,
    -
    10264  60 /*deltaMinutes*/,
    -
    10265  13 /*letterIndex ("D")*/,
    -
    10266  },
    -
    10267  // Rule Guat 1991 only - Sep 7 0:00 0 S
    -
    10268  {
    -
    10269  1991 /*fromYear*/,
    -
    10270  1991 /*toYear*/,
    -
    10271  9 /*inMonth*/,
    -
    10272  0 /*onDayOfWeek*/,
    -
    10273  7 /*onDayOfMonth*/,
    -
    10274  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10275  0 /*atTimeCode (0/15)*/,
    -
    10276  0 /*deltaMinutes*/,
    -
    10277  25 /*letterIndex ("S")*/,
    -
    10278  },
    -
    10279  // Rule Guat 2006 only - Apr 30 0:00 1:00 D
    -
    10280  {
    -
    10281  2006 /*fromYear*/,
    -
    10282  2006 /*toYear*/,
    -
    10283  4 /*inMonth*/,
    -
    10284  0 /*onDayOfWeek*/,
    -
    10285  30 /*onDayOfMonth*/,
    -
    10286  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10287  0 /*atTimeCode (0/15)*/,
    -
    10288  60 /*deltaMinutes*/,
    -
    10289  13 /*letterIndex ("D")*/,
    -
    10290  },
    -
    10291  // Rule Guat 2006 only - Oct 1 0:00 0 S
    -
    10292  {
    -
    10293  2006 /*fromYear*/,
    -
    10294  2006 /*toYear*/,
    -
    10295  10 /*inMonth*/,
    -
    10296  0 /*onDayOfWeek*/,
    -
    10297  1 /*onDayOfMonth*/,
    -
    10298  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10299  0 /*atTimeCode (0/15)*/,
    -
    10300  0 /*deltaMinutes*/,
    -
    10301  25 /*letterIndex ("S")*/,
    -
    10302  },
    -
    10303 
    -
    10304 };
    -
    10305 
    -
    10306 const complete::Info::ZonePolicy kZonePolicyGuat ACE_TIME_PROGMEM = {
    -
    10307  kZoneRulesGuat /*rules*/,
    -
    10308  9 /*numRules*/,
    -
    10309 };
    -
    10310 
    -
    10311 //---------------------------------------------------------------------------
    -
    10312 // Policy name: HK
    -
    10313 // Rules: 15
    -
    10314 //---------------------------------------------------------------------------
    -
    10315 
    -
    10316 static const complete::Info::ZoneRule kZoneRulesHK[] ACE_TIME_PROGMEM = {
    -
    10317  // Anchor: Rule HK 1946 only - Dec 1 3:30s 0 -
    -
    10318  {
    -
    10319  -32767 /*fromYear*/,
    -
    10320  -32767 /*toYear*/,
    -
    10321  1 /*inMonth*/,
    -
    10322  0 /*onDayOfWeek*/,
    -
    10323  1 /*onDayOfMonth*/,
    -
    10324  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10325  0 /*atTimeCode (0/15)*/,
    -
    10326  0 /*deltaMinutes*/,
    -
    10327  0 /*letterIndex ("")*/,
    -
    10328  },
    -
    10329  // Rule HK 1946 only - Apr 21 0:00 1:00 S
    -
    10330  {
    -
    10331  1946 /*fromYear*/,
    -
    10332  1946 /*toYear*/,
    -
    10333  4 /*inMonth*/,
    -
    10334  0 /*onDayOfWeek*/,
    -
    10335  21 /*onDayOfMonth*/,
    -
    10336  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10337  0 /*atTimeCode (0/15)*/,
    -
    10338  60 /*deltaMinutes*/,
    -
    10339  25 /*letterIndex ("S")*/,
    -
    10340  },
    -
    10341  // Rule HK 1946 only - Dec 1 3:30s 0 -
    -
    10342  {
    -
    10343  1946 /*fromYear*/,
    -
    10344  1946 /*toYear*/,
    -
    10345  12 /*inMonth*/,
    -
    10346  0 /*onDayOfWeek*/,
    -
    10347  1 /*onDayOfMonth*/,
    -
    10348  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    10349  840 /*atTimeCode (12600/15)*/,
    -
    10350  0 /*deltaMinutes*/,
    -
    10351  0 /*letterIndex ("")*/,
    -
    10352  },
    -
    10353  // Rule HK 1947 only - Apr 13 3:30s 1:00 S
    -
    10354  {
    -
    10355  1947 /*fromYear*/,
    -
    10356  1947 /*toYear*/,
    -
    10357  4 /*inMonth*/,
    -
    10358  0 /*onDayOfWeek*/,
    -
    10359  13 /*onDayOfMonth*/,
    -
    10360  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    10361  840 /*atTimeCode (12600/15)*/,
    -
    10362  60 /*deltaMinutes*/,
    -
    10363  25 /*letterIndex ("S")*/,
    -
    10364  },
    -
    10365  // Rule HK 1947 only - Nov 30 3:30s 0 -
    -
    10366  {
    -
    10367  1947 /*fromYear*/,
    -
    10368  1947 /*toYear*/,
    -
    10369  11 /*inMonth*/,
    -
    10370  0 /*onDayOfWeek*/,
    -
    10371  30 /*onDayOfMonth*/,
    -
    10372  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    10373  840 /*atTimeCode (12600/15)*/,
    -
    10374  0 /*deltaMinutes*/,
    -
    10375  0 /*letterIndex ("")*/,
    -
    10376  },
    -
    10377  // Rule HK 1948 only - May 2 3:30s 1:00 S
    -
    10378  {
    -
    10379  1948 /*fromYear*/,
    -
    10380  1948 /*toYear*/,
    -
    10381  5 /*inMonth*/,
    -
    10382  0 /*onDayOfWeek*/,
    -
    10383  2 /*onDayOfMonth*/,
    -
    10384  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    10385  840 /*atTimeCode (12600/15)*/,
    -
    10386  60 /*deltaMinutes*/,
    -
    10387  25 /*letterIndex ("S")*/,
    -
    10388  },
    -
    10389  // Rule HK 1948 1952 - Oct Sun>=28 3:30s 0 -
    -
    10390  {
    -
    10391  1948 /*fromYear*/,
    -
    10392  1952 /*toYear*/,
    -
    10393  10 /*inMonth*/,
    -
    10394  7 /*onDayOfWeek*/,
    -
    10395  28 /*onDayOfMonth*/,
    -
    10396  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    10397  840 /*atTimeCode (12600/15)*/,
    -
    10398  0 /*deltaMinutes*/,
    -
    10399  0 /*letterIndex ("")*/,
    -
    10400  },
    -
    10401  // Rule HK 1949 1953 - Apr Sun>=1 3:30 1:00 S
    -
    10402  {
    -
    10403  1949 /*fromYear*/,
    -
    10404  1953 /*toYear*/,
    -
    10405  4 /*inMonth*/,
    -
    10406  7 /*onDayOfWeek*/,
    -
    10407  1 /*onDayOfMonth*/,
    -
    10408  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10409  840 /*atTimeCode (12600/15)*/,
    -
    10410  60 /*deltaMinutes*/,
    -
    10411  25 /*letterIndex ("S")*/,
    -
    10412  },
    -
    10413  // Rule HK 1953 1964 - Oct Sun>=31 3:30 0 -
    -
    10414  {
    -
    10415  1953 /*fromYear*/,
    -
    10416  1964 /*toYear*/,
    -
    10417  10 /*inMonth*/,
    -
    10418  7 /*onDayOfWeek*/,
    -
    10419  31 /*onDayOfMonth*/,
    -
    10420  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10421  840 /*atTimeCode (12600/15)*/,
    -
    10422  0 /*deltaMinutes*/,
    -
    10423  0 /*letterIndex ("")*/,
    -
    10424  },
    -
    10425  // Rule HK 1954 1964 - Mar Sun>=18 3:30 1:00 S
    -
    10426  {
    -
    10427  1954 /*fromYear*/,
    -
    10428  1964 /*toYear*/,
    -
    10429  3 /*inMonth*/,
    -
    10430  7 /*onDayOfWeek*/,
    -
    10431  18 /*onDayOfMonth*/,
    -
    10432  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10433  840 /*atTimeCode (12600/15)*/,
    -
    10434  60 /*deltaMinutes*/,
    -
    10435  25 /*letterIndex ("S")*/,
    -
    10436  },
    -
    10437  // Rule HK 1965 1976 - Apr Sun>=16 3:30 1:00 S
    -
    10438  {
    -
    10439  1965 /*fromYear*/,
    -
    10440  1976 /*toYear*/,
    -
    10441  4 /*inMonth*/,
    -
    10442  7 /*onDayOfWeek*/,
    -
    10443  16 /*onDayOfMonth*/,
    -
    10444  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10445  840 /*atTimeCode (12600/15)*/,
    -
    10446  60 /*deltaMinutes*/,
    -
    10447  25 /*letterIndex ("S")*/,
    -
    10448  },
    -
    10449  // Rule HK 1965 1976 - Oct Sun>=16 3:30 0 -
    -
    10450  {
    -
    10451  1965 /*fromYear*/,
    -
    10452  1976 /*toYear*/,
    -
    10453  10 /*inMonth*/,
    -
    10454  7 /*onDayOfWeek*/,
    -
    10455  16 /*onDayOfMonth*/,
    -
    10456  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10457  840 /*atTimeCode (12600/15)*/,
    -
    10458  0 /*deltaMinutes*/,
    -
    10459  0 /*letterIndex ("")*/,
    -
    10460  },
    -
    10461  // Rule HK 1973 only - Dec 30 3:30 1:00 S
    -
    10462  {
    -
    10463  1973 /*fromYear*/,
    -
    10464  1973 /*toYear*/,
    -
    10465  12 /*inMonth*/,
    -
    10466  0 /*onDayOfWeek*/,
    -
    10467  30 /*onDayOfMonth*/,
    -
    10468  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10469  840 /*atTimeCode (12600/15)*/,
    -
    10470  60 /*deltaMinutes*/,
    -
    10471  25 /*letterIndex ("S")*/,
    -
    10472  },
    -
    10473  // Rule HK 1979 only - May 13 3:30 1:00 S
    -
    10474  {
    -
    10475  1979 /*fromYear*/,
    -
    10476  1979 /*toYear*/,
    -
    10477  5 /*inMonth*/,
    -
    10478  0 /*onDayOfWeek*/,
    -
    10479  13 /*onDayOfMonth*/,
    -
    10480  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10481  840 /*atTimeCode (12600/15)*/,
    -
    10482  60 /*deltaMinutes*/,
    -
    10483  25 /*letterIndex ("S")*/,
    -
    10484  },
    -
    10485  // Rule HK 1979 only - Oct 21 3:30 0 -
    -
    10486  {
    -
    10487  1979 /*fromYear*/,
    -
    10488  1979 /*toYear*/,
    -
    10489  10 /*inMonth*/,
    -
    10490  0 /*onDayOfWeek*/,
    -
    10491  21 /*onDayOfMonth*/,
    -
    10492  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10493  840 /*atTimeCode (12600/15)*/,
    -
    10494  0 /*deltaMinutes*/,
    -
    10495  0 /*letterIndex ("")*/,
    -
    10496  },
    -
    10497 
    -
    10498 };
    -
    10499 
    -
    10500 const complete::Info::ZonePolicy kZonePolicyHK ACE_TIME_PROGMEM = {
    -
    10501  kZoneRulesHK /*rules*/,
    -
    10502  15 /*numRules*/,
    -
    10503 };
    -
    10504 
    -
    10505 //---------------------------------------------------------------------------
    -
    10506 // Policy name: Haiti
    -
    10507 // Rules: 12
    -
    10508 //---------------------------------------------------------------------------
    -
    10509 
    -
    10510 static const complete::Info::ZoneRule kZoneRulesHaiti[] ACE_TIME_PROGMEM = {
    -
    10511  // Anchor: Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
    -
    10512  {
    -
    10513  -32767 /*fromYear*/,
    -
    10514  -32767 /*toYear*/,
    -
    10515  1 /*inMonth*/,
    -
    10516  0 /*onDayOfWeek*/,
    -
    10517  1 /*onDayOfMonth*/,
    -
    10518  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10519  0 /*atTimeCode (0/15)*/,
    -
    10520  0 /*deltaMinutes*/,
    -
    10521  25 /*letterIndex ("S")*/,
    -
    10522  },
    -
    10523  // Rule Haiti 1983 only - May 8 0:00 1:00 D
    -
    10524  {
    -
    10525  1983 /*fromYear*/,
    -
    10526  1983 /*toYear*/,
    -
    10527  5 /*inMonth*/,
    -
    10528  0 /*onDayOfWeek*/,
    -
    10529  8 /*onDayOfMonth*/,
    -
    10530  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10531  0 /*atTimeCode (0/15)*/,
    -
    10532  60 /*deltaMinutes*/,
    -
    10533  13 /*letterIndex ("D")*/,
    -
    10534  },
    -
    10535  // Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D
    -
    10536  {
    -
    10537  1984 /*fromYear*/,
    -
    10538  1987 /*toYear*/,
    -
    10539  4 /*inMonth*/,
    -
    10540  7 /*onDayOfWeek*/,
    -
    10541  0 /*onDayOfMonth*/,
    -
    10542  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10543  0 /*atTimeCode (0/15)*/,
    -
    10544  60 /*deltaMinutes*/,
    -
    10545  13 /*letterIndex ("D")*/,
    -
    10546  },
    -
    10547  // Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
    -
    10548  {
    -
    10549  1983 /*fromYear*/,
    -
    10550  1987 /*toYear*/,
    -
    10551  10 /*inMonth*/,
    -
    10552  7 /*onDayOfWeek*/,
    -
    10553  0 /*onDayOfMonth*/,
    -
    10554  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10555  0 /*atTimeCode (0/15)*/,
    -
    10556  0 /*deltaMinutes*/,
    -
    10557  25 /*letterIndex ("S")*/,
    -
    10558  },
    -
    10559  // Rule Haiti 1988 1997 - Apr Sun>=1 1:00s 1:00 D
    -
    10560  {
    -
    10561  1988 /*fromYear*/,
    -
    10562  1997 /*toYear*/,
    -
    10563  4 /*inMonth*/,
    -
    10564  7 /*onDayOfWeek*/,
    -
    10565  1 /*onDayOfMonth*/,
    -
    10566  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    10567  240 /*atTimeCode (3600/15)*/,
    -
    10568  60 /*deltaMinutes*/,
    -
    10569  13 /*letterIndex ("D")*/,
    -
    10570  },
    -
    10571  // Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S
    -
    10572  {
    -
    10573  1988 /*fromYear*/,
    -
    10574  1997 /*toYear*/,
    -
    10575  10 /*inMonth*/,
    -
    10576  7 /*onDayOfWeek*/,
    -
    10577  0 /*onDayOfMonth*/,
    -
    10578  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    10579  240 /*atTimeCode (3600/15)*/,
    -
    10580  0 /*deltaMinutes*/,
    -
    10581  25 /*letterIndex ("S")*/,
    -
    10582  },
    -
    10583  // Rule Haiti 2005 2006 - Apr Sun>=1 0:00 1:00 D
    -
    10584  {
    -
    10585  2005 /*fromYear*/,
    -
    10586  2006 /*toYear*/,
    -
    10587  4 /*inMonth*/,
    -
    10588  7 /*onDayOfWeek*/,
    -
    10589  1 /*onDayOfMonth*/,
    -
    10590  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10591  0 /*atTimeCode (0/15)*/,
    -
    10592  60 /*deltaMinutes*/,
    -
    10593  13 /*letterIndex ("D")*/,
    -
    10594  },
    -
    10595  // Rule Haiti 2005 2006 - Oct lastSun 0:00 0 S
    -
    10596  {
    -
    10597  2005 /*fromYear*/,
    -
    10598  2006 /*toYear*/,
    -
    10599  10 /*inMonth*/,
    -
    10600  7 /*onDayOfWeek*/,
    -
    10601  0 /*onDayOfMonth*/,
    -
    10602  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10603  0 /*atTimeCode (0/15)*/,
    -
    10604  0 /*deltaMinutes*/,
    -
    10605  25 /*letterIndex ("S")*/,
    -
    10606  },
    -
    10607  // Rule Haiti 2012 2015 - Mar Sun>=8 2:00 1:00 D
    -
    10608  {
    -
    10609  2012 /*fromYear*/,
    -
    10610  2015 /*toYear*/,
    -
    10611  3 /*inMonth*/,
    -
    10612  7 /*onDayOfWeek*/,
    -
    10613  8 /*onDayOfMonth*/,
    -
    10614  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10615  480 /*atTimeCode (7200/15)*/,
    -
    10616  60 /*deltaMinutes*/,
    -
    10617  13 /*letterIndex ("D")*/,
    -
    10618  },
    -
    10619  // Rule Haiti 2012 2015 - Nov Sun>=1 2:00 0 S
    -
    10620  {
    -
    10621  2012 /*fromYear*/,
    -
    10622  2015 /*toYear*/,
    -
    10623  11 /*inMonth*/,
    -
    10624  7 /*onDayOfWeek*/,
    -
    10625  1 /*onDayOfMonth*/,
    -
    10626  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10627  480 /*atTimeCode (7200/15)*/,
    -
    10628  0 /*deltaMinutes*/,
    -
    10629  25 /*letterIndex ("S")*/,
    -
    10630  },
    -
    10631  // Rule Haiti 2017 max - Mar Sun>=8 2:00 1:00 D
    -
    10632  {
    -
    10633  2017 /*fromYear*/,
    -
    10634  32766 /*toYear*/,
    -
    10635  3 /*inMonth*/,
    -
    10636  7 /*onDayOfWeek*/,
    -
    10637  8 /*onDayOfMonth*/,
    -
    10638  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10639  480 /*atTimeCode (7200/15)*/,
    -
    10640  60 /*deltaMinutes*/,
    -
    10641  13 /*letterIndex ("D")*/,
    -
    10642  },
    -
    10643  // Rule Haiti 2017 max - Nov Sun>=1 2:00 0 S
    -
    10644  {
    -
    10645  2017 /*fromYear*/,
    -
    10646  32766 /*toYear*/,
    -
    10647  11 /*inMonth*/,
    -
    10648  7 /*onDayOfWeek*/,
    -
    10649  1 /*onDayOfMonth*/,
    -
    10650  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10651  480 /*atTimeCode (7200/15)*/,
    -
    10652  0 /*deltaMinutes*/,
    -
    10653  25 /*letterIndex ("S")*/,
    -
    10654  },
    -
    10655 
    -
    10656 };
    -
    10657 
    -
    10658 const complete::Info::ZonePolicy kZonePolicyHaiti ACE_TIME_PROGMEM = {
    -
    10659  kZoneRulesHaiti /*rules*/,
    -
    10660  12 /*numRules*/,
    -
    10661 };
    -
    10662 
    -
    10663 //---------------------------------------------------------------------------
    -
    10664 // Policy name: Halifax
    -
    10665 // Rules: 42
    -
    10666 //---------------------------------------------------------------------------
    -
    10667 
    -
    10668 static const complete::Info::ZoneRule kZoneRulesHalifax[] ACE_TIME_PROGMEM = {
    -
    10669  // Anchor: Rule Halifax 1916 only - Oct 1 0:00 0 S
    -
    10670  {
    -
    10671  -32767 /*fromYear*/,
    -
    10672  -32767 /*toYear*/,
    -
    10673  1 /*inMonth*/,
    -
    10674  0 /*onDayOfWeek*/,
    -
    10675  1 /*onDayOfMonth*/,
    -
    10676  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10677  0 /*atTimeCode (0/15)*/,
    -
    10678  0 /*deltaMinutes*/,
    -
    10679  25 /*letterIndex ("S")*/,
    -
    10680  },
    -
    10681  // Rule Halifax 1916 only - Apr 1 0:00 1:00 D
    -
    10682  {
    -
    10683  1916 /*fromYear*/,
    -
    10684  1916 /*toYear*/,
    -
    10685  4 /*inMonth*/,
    -
    10686  0 /*onDayOfWeek*/,
    -
    10687  1 /*onDayOfMonth*/,
    -
    10688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10689  0 /*atTimeCode (0/15)*/,
    -
    10690  60 /*deltaMinutes*/,
    -
    10691  13 /*letterIndex ("D")*/,
    -
    10692  },
    -
    10693  // Rule Halifax 1916 only - Oct 1 0:00 0 S
    -
    10694  {
    -
    10695  1916 /*fromYear*/,
    -
    10696  1916 /*toYear*/,
    -
    10697  10 /*inMonth*/,
    -
    10698  0 /*onDayOfWeek*/,
    -
    10699  1 /*onDayOfMonth*/,
    -
    10700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10701  0 /*atTimeCode (0/15)*/,
    -
    10702  0 /*deltaMinutes*/,
    -
    10703  25 /*letterIndex ("S")*/,
    -
    10704  },
    -
    10705  // Rule Halifax 1920 only - May 9 0:00 1:00 D
    -
    10706  {
    -
    10707  1920 /*fromYear*/,
    -
    10708  1920 /*toYear*/,
    -
    10709  5 /*inMonth*/,
    -
    10710  0 /*onDayOfWeek*/,
    -
    10711  9 /*onDayOfMonth*/,
    -
    10712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10713  0 /*atTimeCode (0/15)*/,
    -
    10714  60 /*deltaMinutes*/,
    -
    10715  13 /*letterIndex ("D")*/,
    -
    10716  },
    -
    10717  // Rule Halifax 1920 only - Aug 29 0:00 0 S
    -
    10718  {
    -
    10719  1920 /*fromYear*/,
    -
    10720  1920 /*toYear*/,
    -
    10721  8 /*inMonth*/,
    -
    10722  0 /*onDayOfWeek*/,
    -
    10723  29 /*onDayOfMonth*/,
    -
    10724  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10725  0 /*atTimeCode (0/15)*/,
    -
    10726  0 /*deltaMinutes*/,
    -
    10727  25 /*letterIndex ("S")*/,
    -
    10728  },
    -
    10729  // Rule Halifax 1921 only - May 6 0:00 1:00 D
    -
    10730  {
    -
    10731  1921 /*fromYear*/,
    -
    10732  1921 /*toYear*/,
    -
    10733  5 /*inMonth*/,
    -
    10734  0 /*onDayOfWeek*/,
    -
    10735  6 /*onDayOfMonth*/,
    -
    10736  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10737  0 /*atTimeCode (0/15)*/,
    -
    10738  60 /*deltaMinutes*/,
    -
    10739  13 /*letterIndex ("D")*/,
    -
    10740  },
    -
    10741  // Rule Halifax 1921 1922 - Sep 5 0:00 0 S
    -
    10742  {
    -
    10743  1921 /*fromYear*/,
    -
    10744  1922 /*toYear*/,
    -
    10745  9 /*inMonth*/,
    -
    10746  0 /*onDayOfWeek*/,
    -
    10747  5 /*onDayOfMonth*/,
    -
    10748  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10749  0 /*atTimeCode (0/15)*/,
    -
    10750  0 /*deltaMinutes*/,
    -
    10751  25 /*letterIndex ("S")*/,
    -
    10752  },
    -
    10753  // Rule Halifax 1922 only - Apr 30 0:00 1:00 D
    -
    10754  {
    -
    10755  1922 /*fromYear*/,
    -
    10756  1922 /*toYear*/,
    -
    10757  4 /*inMonth*/,
    -
    10758  0 /*onDayOfWeek*/,
    -
    10759  30 /*onDayOfMonth*/,
    -
    10760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10761  0 /*atTimeCode (0/15)*/,
    -
    10762  60 /*deltaMinutes*/,
    -
    10763  13 /*letterIndex ("D")*/,
    -
    10764  },
    -
    10765  // Rule Halifax 1923 1925 - May Sun>=1 0:00 1:00 D
    -
    10766  {
    -
    10767  1923 /*fromYear*/,
    -
    10768  1925 /*toYear*/,
    -
    10769  5 /*inMonth*/,
    -
    10770  7 /*onDayOfWeek*/,
    -
    10771  1 /*onDayOfMonth*/,
    -
    10772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10773  0 /*atTimeCode (0/15)*/,
    -
    10774  60 /*deltaMinutes*/,
    -
    10775  13 /*letterIndex ("D")*/,
    -
    10776  },
    -
    10777  // Rule Halifax 1923 only - Sep 4 0:00 0 S
    -
    10778  {
    -
    10779  1923 /*fromYear*/,
    -
    10780  1923 /*toYear*/,
    -
    10781  9 /*inMonth*/,
    -
    10782  0 /*onDayOfWeek*/,
    -
    10783  4 /*onDayOfMonth*/,
    -
    10784  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10785  0 /*atTimeCode (0/15)*/,
    -
    10786  0 /*deltaMinutes*/,
    -
    10787  25 /*letterIndex ("S")*/,
    -
    10788  },
    -
    10789  // Rule Halifax 1924 only - Sep 15 0:00 0 S
    -
    10790  {
    -
    10791  1924 /*fromYear*/,
    -
    10792  1924 /*toYear*/,
    -
    10793  9 /*inMonth*/,
    -
    10794  0 /*onDayOfWeek*/,
    -
    10795  15 /*onDayOfMonth*/,
    -
    10796  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10797  0 /*atTimeCode (0/15)*/,
    -
    10798  0 /*deltaMinutes*/,
    -
    10799  25 /*letterIndex ("S")*/,
    -
    10800  },
    -
    10801  // Rule Halifax 1925 only - Sep 28 0:00 0 S
    -
    10802  {
    -
    10803  1925 /*fromYear*/,
    -
    10804  1925 /*toYear*/,
    -
    10805  9 /*inMonth*/,
    -
    10806  0 /*onDayOfWeek*/,
    -
    10807  28 /*onDayOfMonth*/,
    -
    10808  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10809  0 /*atTimeCode (0/15)*/,
    -
    10810  0 /*deltaMinutes*/,
    -
    10811  25 /*letterIndex ("S")*/,
    -
    10812  },
    -
    10813  // Rule Halifax 1926 only - May 16 0:00 1:00 D
    -
    10814  {
    -
    10815  1926 /*fromYear*/,
    -
    10816  1926 /*toYear*/,
    -
    10817  5 /*inMonth*/,
    -
    10818  0 /*onDayOfWeek*/,
    -
    10819  16 /*onDayOfMonth*/,
    -
    10820  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10821  0 /*atTimeCode (0/15)*/,
    -
    10822  60 /*deltaMinutes*/,
    -
    10823  13 /*letterIndex ("D")*/,
    -
    10824  },
    -
    10825  // Rule Halifax 1926 only - Sep 13 0:00 0 S
    -
    10826  {
    -
    10827  1926 /*fromYear*/,
    -
    10828  1926 /*toYear*/,
    -
    10829  9 /*inMonth*/,
    -
    10830  0 /*onDayOfWeek*/,
    -
    10831  13 /*onDayOfMonth*/,
    -
    10832  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10833  0 /*atTimeCode (0/15)*/,
    -
    10834  0 /*deltaMinutes*/,
    -
    10835  25 /*letterIndex ("S")*/,
    -
    10836  },
    -
    10837  // Rule Halifax 1927 only - May 1 0:00 1:00 D
    -
    10838  {
    -
    10839  1927 /*fromYear*/,
    -
    10840  1927 /*toYear*/,
    -
    10841  5 /*inMonth*/,
    -
    10842  0 /*onDayOfWeek*/,
    -
    10843  1 /*onDayOfMonth*/,
    -
    10844  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10845  0 /*atTimeCode (0/15)*/,
    -
    10846  60 /*deltaMinutes*/,
    -
    10847  13 /*letterIndex ("D")*/,
    -
    10848  },
    -
    10849  // Rule Halifax 1927 only - Sep 26 0:00 0 S
    -
    10850  {
    -
    10851  1927 /*fromYear*/,
    -
    10852  1927 /*toYear*/,
    -
    10853  9 /*inMonth*/,
    -
    10854  0 /*onDayOfWeek*/,
    -
    10855  26 /*onDayOfMonth*/,
    -
    10856  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10857  0 /*atTimeCode (0/15)*/,
    -
    10858  0 /*deltaMinutes*/,
    -
    10859  25 /*letterIndex ("S")*/,
    -
    10860  },
    -
    10861  // Rule Halifax 1928 1931 - May Sun>=8 0:00 1:00 D
    -
    10862  {
    -
    10863  1928 /*fromYear*/,
    -
    10864  1931 /*toYear*/,
    -
    10865  5 /*inMonth*/,
    -
    10866  7 /*onDayOfWeek*/,
    -
    10867  8 /*onDayOfMonth*/,
    -
    10868  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10869  0 /*atTimeCode (0/15)*/,
    -
    10870  60 /*deltaMinutes*/,
    -
    10871  13 /*letterIndex ("D")*/,
    -
    10872  },
    -
    10873  // Rule Halifax 1928 only - Sep 9 0:00 0 S
    -
    10874  {
    -
    10875  1928 /*fromYear*/,
    -
    10876  1928 /*toYear*/,
    -
    10877  9 /*inMonth*/,
    -
    10878  0 /*onDayOfWeek*/,
    -
    10879  9 /*onDayOfMonth*/,
    -
    10880  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10881  0 /*atTimeCode (0/15)*/,
    -
    10882  0 /*deltaMinutes*/,
    -
    10883  25 /*letterIndex ("S")*/,
    -
    10884  },
    -
    10885  // Rule Halifax 1929 only - Sep 3 0:00 0 S
    -
    10886  {
    -
    10887  1929 /*fromYear*/,
    -
    10888  1929 /*toYear*/,
    -
    10889  9 /*inMonth*/,
    -
    10890  0 /*onDayOfWeek*/,
    -
    10891  3 /*onDayOfMonth*/,
    -
    10892  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10893  0 /*atTimeCode (0/15)*/,
    -
    10894  0 /*deltaMinutes*/,
    -
    10895  25 /*letterIndex ("S")*/,
    -
    10896  },
    -
    10897  // Rule Halifax 1930 only - Sep 15 0:00 0 S
    -
    10898  {
    -
    10899  1930 /*fromYear*/,
    -
    10900  1930 /*toYear*/,
    -
    10901  9 /*inMonth*/,
    -
    10902  0 /*onDayOfWeek*/,
    -
    10903  15 /*onDayOfMonth*/,
    -
    10904  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10905  0 /*atTimeCode (0/15)*/,
    -
    10906  0 /*deltaMinutes*/,
    -
    10907  25 /*letterIndex ("S")*/,
    -
    10908  },
    -
    10909  // Rule Halifax 1931 1932 - Sep Mon>=24 0:00 0 S
    -
    10910  {
    -
    10911  1931 /*fromYear*/,
    -
    10912  1932 /*toYear*/,
    -
    10913  9 /*inMonth*/,
    -
    10914  1 /*onDayOfWeek*/,
    -
    10915  24 /*onDayOfMonth*/,
    -
    10916  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10917  0 /*atTimeCode (0/15)*/,
    -
    10918  0 /*deltaMinutes*/,
    -
    10919  25 /*letterIndex ("S")*/,
    -
    10920  },
    -
    10921  // Rule Halifax 1932 only - May 1 0:00 1:00 D
    -
    10922  {
    -
    10923  1932 /*fromYear*/,
    -
    10924  1932 /*toYear*/,
    -
    10925  5 /*inMonth*/,
    -
    10926  0 /*onDayOfWeek*/,
    -
    10927  1 /*onDayOfMonth*/,
    -
    10928  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10929  0 /*atTimeCode (0/15)*/,
    -
    10930  60 /*deltaMinutes*/,
    -
    10931  13 /*letterIndex ("D")*/,
    -
    10932  },
    -
    10933  // Rule Halifax 1933 only - Apr 30 0:00 1:00 D
    -
    10934  {
    -
    10935  1933 /*fromYear*/,
    -
    10936  1933 /*toYear*/,
    -
    10937  4 /*inMonth*/,
    -
    10938  0 /*onDayOfWeek*/,
    -
    10939  30 /*onDayOfMonth*/,
    -
    10940  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10941  0 /*atTimeCode (0/15)*/,
    -
    10942  60 /*deltaMinutes*/,
    -
    10943  13 /*letterIndex ("D")*/,
    -
    10944  },
    -
    10945  // Rule Halifax 1933 only - Oct 2 0:00 0 S
    -
    10946  {
    -
    10947  1933 /*fromYear*/,
    -
    10948  1933 /*toYear*/,
    -
    10949  10 /*inMonth*/,
    -
    10950  0 /*onDayOfWeek*/,
    -
    10951  2 /*onDayOfMonth*/,
    -
    10952  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10953  0 /*atTimeCode (0/15)*/,
    -
    10954  0 /*deltaMinutes*/,
    -
    10955  25 /*letterIndex ("S")*/,
    -
    10956  },
    -
    10957  // Rule Halifax 1934 only - May 20 0:00 1:00 D
    -
    10958  {
    -
    10959  1934 /*fromYear*/,
    -
    10960  1934 /*toYear*/,
    -
    10961  5 /*inMonth*/,
    -
    10962  0 /*onDayOfWeek*/,
    -
    10963  20 /*onDayOfMonth*/,
    -
    10964  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10965  0 /*atTimeCode (0/15)*/,
    -
    10966  60 /*deltaMinutes*/,
    -
    10967  13 /*letterIndex ("D")*/,
    -
    10968  },
    -
    10969  // Rule Halifax 1934 only - Sep 16 0:00 0 S
    -
    10970  {
    -
    10971  1934 /*fromYear*/,
    -
    10972  1934 /*toYear*/,
    -
    10973  9 /*inMonth*/,
    -
    10974  0 /*onDayOfWeek*/,
    -
    10975  16 /*onDayOfMonth*/,
    -
    10976  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10977  0 /*atTimeCode (0/15)*/,
    -
    10978  0 /*deltaMinutes*/,
    -
    10979  25 /*letterIndex ("S")*/,
    -
    10980  },
    -
    10981  // Rule Halifax 1935 only - Jun 2 0:00 1:00 D
    -
    10982  {
    -
    10983  1935 /*fromYear*/,
    -
    10984  1935 /*toYear*/,
    -
    10985  6 /*inMonth*/,
    -
    10986  0 /*onDayOfWeek*/,
    -
    10987  2 /*onDayOfMonth*/,
    -
    10988  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    10989  0 /*atTimeCode (0/15)*/,
    -
    10990  60 /*deltaMinutes*/,
    -
    10991  13 /*letterIndex ("D")*/,
    -
    10992  },
    -
    10993  // Rule Halifax 1935 only - Sep 30 0:00 0 S
    -
    10994  {
    -
    10995  1935 /*fromYear*/,
    -
    10996  1935 /*toYear*/,
    -
    10997  9 /*inMonth*/,
    -
    10998  0 /*onDayOfWeek*/,
    -
    10999  30 /*onDayOfMonth*/,
    -
    11000  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11001  0 /*atTimeCode (0/15)*/,
    -
    11002  0 /*deltaMinutes*/,
    -
    11003  25 /*letterIndex ("S")*/,
    -
    11004  },
    -
    11005  // Rule Halifax 1936 only - Jun 1 0:00 1:00 D
    -
    11006  {
    -
    11007  1936 /*fromYear*/,
    -
    11008  1936 /*toYear*/,
    -
    11009  6 /*inMonth*/,
    -
    11010  0 /*onDayOfWeek*/,
    -
    11011  1 /*onDayOfMonth*/,
    -
    11012  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11013  0 /*atTimeCode (0/15)*/,
    -
    11014  60 /*deltaMinutes*/,
    -
    11015  13 /*letterIndex ("D")*/,
    -
    11016  },
    -
    11017  // Rule Halifax 1936 only - Sep 14 0:00 0 S
    -
    11018  {
    -
    11019  1936 /*fromYear*/,
    -
    11020  1936 /*toYear*/,
    -
    11021  9 /*inMonth*/,
    -
    11022  0 /*onDayOfWeek*/,
    -
    11023  14 /*onDayOfMonth*/,
    -
    11024  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11025  0 /*atTimeCode (0/15)*/,
    -
    11026  0 /*deltaMinutes*/,
    -
    11027  25 /*letterIndex ("S")*/,
    -
    11028  },
    -
    11029  // Rule Halifax 1937 1938 - May Sun>=1 0:00 1:00 D
    -
    11030  {
    -
    11031  1937 /*fromYear*/,
    -
    11032  1938 /*toYear*/,
    -
    11033  5 /*inMonth*/,
    -
    11034  7 /*onDayOfWeek*/,
    -
    11035  1 /*onDayOfMonth*/,
    -
    11036  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11037  0 /*atTimeCode (0/15)*/,
    -
    11038  60 /*deltaMinutes*/,
    -
    11039  13 /*letterIndex ("D")*/,
    -
    11040  },
    -
    11041  // Rule Halifax 1937 1941 - Sep Mon>=24 0:00 0 S
    -
    11042  {
    -
    11043  1937 /*fromYear*/,
    -
    11044  1941 /*toYear*/,
    -
    11045  9 /*inMonth*/,
    -
    11046  1 /*onDayOfWeek*/,
    -
    11047  24 /*onDayOfMonth*/,
    -
    11048  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11049  0 /*atTimeCode (0/15)*/,
    -
    11050  0 /*deltaMinutes*/,
    -
    11051  25 /*letterIndex ("S")*/,
    -
    11052  },
    -
    11053  // Rule Halifax 1939 only - May 28 0:00 1:00 D
    -
    11054  {
    -
    11055  1939 /*fromYear*/,
    -
    11056  1939 /*toYear*/,
    -
    11057  5 /*inMonth*/,
    -
    11058  0 /*onDayOfWeek*/,
    -
    11059  28 /*onDayOfMonth*/,
    -
    11060  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11061  0 /*atTimeCode (0/15)*/,
    -
    11062  60 /*deltaMinutes*/,
    -
    11063  13 /*letterIndex ("D")*/,
    -
    11064  },
    -
    11065  // Rule Halifax 1940 1941 - May Sun>=1 0:00 1:00 D
    -
    11066  {
    -
    11067  1940 /*fromYear*/,
    -
    11068  1941 /*toYear*/,
    -
    11069  5 /*inMonth*/,
    -
    11070  7 /*onDayOfWeek*/,
    -
    11071  1 /*onDayOfMonth*/,
    -
    11072  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11073  0 /*atTimeCode (0/15)*/,
    -
    11074  60 /*deltaMinutes*/,
    -
    11075  13 /*letterIndex ("D")*/,
    -
    11076  },
    -
    11077  // Rule Halifax 1946 1949 - Apr lastSun 2:00 1:00 D
    -
    11078  {
    -
    11079  1946 /*fromYear*/,
    -
    11080  1949 /*toYear*/,
    -
    11081  4 /*inMonth*/,
    -
    11082  7 /*onDayOfWeek*/,
    -
    11083  0 /*onDayOfMonth*/,
    -
    11084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11085  480 /*atTimeCode (7200/15)*/,
    -
    11086  60 /*deltaMinutes*/,
    -
    11087  13 /*letterIndex ("D")*/,
    -
    11088  },
    -
    11089  // Rule Halifax 1946 1949 - Sep lastSun 2:00 0 S
    -
    11090  {
    -
    11091  1946 /*fromYear*/,
    -
    11092  1949 /*toYear*/,
    -
    11093  9 /*inMonth*/,
    -
    11094  7 /*onDayOfWeek*/,
    -
    11095  0 /*onDayOfMonth*/,
    -
    11096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11097  480 /*atTimeCode (7200/15)*/,
    -
    11098  0 /*deltaMinutes*/,
    -
    11099  25 /*letterIndex ("S")*/,
    -
    11100  },
    -
    11101  // Rule Halifax 1951 1954 - Apr lastSun 2:00 1:00 D
    -
    11102  {
    -
    11103  1951 /*fromYear*/,
    -
    11104  1954 /*toYear*/,
    -
    11105  4 /*inMonth*/,
    -
    11106  7 /*onDayOfWeek*/,
    -
    11107  0 /*onDayOfMonth*/,
    -
    11108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11109  480 /*atTimeCode (7200/15)*/,
    -
    11110  60 /*deltaMinutes*/,
    -
    11111  13 /*letterIndex ("D")*/,
    -
    11112  },
    -
    11113  // Rule Halifax 1951 1954 - Sep lastSun 2:00 0 S
    -
    11114  {
    -
    11115  1951 /*fromYear*/,
    -
    11116  1954 /*toYear*/,
    -
    11117  9 /*inMonth*/,
    -
    11118  7 /*onDayOfWeek*/,
    -
    11119  0 /*onDayOfMonth*/,
    -
    11120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11121  480 /*atTimeCode (7200/15)*/,
    -
    11122  0 /*deltaMinutes*/,
    -
    11123  25 /*letterIndex ("S")*/,
    -
    11124  },
    -
    11125  // Rule Halifax 1956 1959 - Apr lastSun 2:00 1:00 D
    -
    11126  {
    -
    11127  1956 /*fromYear*/,
    -
    11128  1959 /*toYear*/,
    -
    11129  4 /*inMonth*/,
    -
    11130  7 /*onDayOfWeek*/,
    -
    11131  0 /*onDayOfMonth*/,
    -
    11132  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11133  480 /*atTimeCode (7200/15)*/,
    -
    11134  60 /*deltaMinutes*/,
    -
    11135  13 /*letterIndex ("D")*/,
    -
    11136  },
    -
    11137  // Rule Halifax 1956 1959 - Sep lastSun 2:00 0 S
    -
    11138  {
    -
    11139  1956 /*fromYear*/,
    -
    11140  1959 /*toYear*/,
    -
    11141  9 /*inMonth*/,
    -
    11142  7 /*onDayOfWeek*/,
    -
    11143  0 /*onDayOfMonth*/,
    -
    11144  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11145  480 /*atTimeCode (7200/15)*/,
    -
    11146  0 /*deltaMinutes*/,
    -
    11147  25 /*letterIndex ("S")*/,
    -
    11148  },
    -
    11149  // Rule Halifax 1962 1973 - Apr lastSun 2:00 1:00 D
    -
    11150  {
    -
    11151  1962 /*fromYear*/,
    -
    11152  1973 /*toYear*/,
    -
    11153  4 /*inMonth*/,
    -
    11154  7 /*onDayOfWeek*/,
    -
    11155  0 /*onDayOfMonth*/,
    -
    11156  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11157  480 /*atTimeCode (7200/15)*/,
    -
    11158  60 /*deltaMinutes*/,
    -
    11159  13 /*letterIndex ("D")*/,
    -
    11160  },
    -
    11161  // Rule Halifax 1962 1973 - Oct lastSun 2:00 0 S
    -
    11162  {
    -
    11163  1962 /*fromYear*/,
    -
    11164  1973 /*toYear*/,
    -
    11165  10 /*inMonth*/,
    -
    11166  7 /*onDayOfWeek*/,
    -
    11167  0 /*onDayOfMonth*/,
    -
    11168  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11169  480 /*atTimeCode (7200/15)*/,
    -
    11170  0 /*deltaMinutes*/,
    -
    11171  25 /*letterIndex ("S")*/,
    -
    11172  },
    -
    11173 
    -
    11174 };
    -
    11175 
    -
    11176 const complete::Info::ZonePolicy kZonePolicyHalifax ACE_TIME_PROGMEM = {
    -
    11177  kZoneRulesHalifax /*rules*/,
    -
    11178  42 /*numRules*/,
    -
    11179 };
    -
    11180 
    -
    11181 //---------------------------------------------------------------------------
    -
    11182 // Policy name: Holiday
    -
    11183 // Rules: 3
    -
    11184 //---------------------------------------------------------------------------
    -
    11185 
    -
    11186 static const complete::Info::ZoneRule kZoneRulesHoliday[] ACE_TIME_PROGMEM = {
    -
    11187  // Anchor: Rule Holiday 1993 1994 - Mar Sun>=1 2:00s 0 S
    -
    11188  {
    -
    11189  -32767 /*fromYear*/,
    -
    11190  -32767 /*toYear*/,
    -
    11191  1 /*inMonth*/,
    -
    11192  0 /*onDayOfWeek*/,
    -
    11193  1 /*onDayOfMonth*/,
    -
    11194  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11195  0 /*atTimeCode (0/15)*/,
    -
    11196  0 /*deltaMinutes*/,
    -
    11197  25 /*letterIndex ("S")*/,
    -
    11198  },
    -
    11199  // Rule Holiday 1992 1993 - Oct lastSun 2:00s 1:00 D
    -
    11200  {
    -
    11201  1992 /*fromYear*/,
    -
    11202  1993 /*toYear*/,
    -
    11203  10 /*inMonth*/,
    -
    11204  7 /*onDayOfWeek*/,
    -
    11205  0 /*onDayOfMonth*/,
    -
    11206  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    11207  480 /*atTimeCode (7200/15)*/,
    -
    11208  60 /*deltaMinutes*/,
    -
    11209  13 /*letterIndex ("D")*/,
    -
    11210  },
    -
    11211  // Rule Holiday 1993 1994 - Mar Sun>=1 2:00s 0 S
    -
    11212  {
    -
    11213  1993 /*fromYear*/,
    -
    11214  1994 /*toYear*/,
    -
    11215  3 /*inMonth*/,
    -
    11216  7 /*onDayOfWeek*/,
    -
    11217  1 /*onDayOfMonth*/,
    -
    11218  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    11219  480 /*atTimeCode (7200/15)*/,
    -
    11220  0 /*deltaMinutes*/,
    -
    11221  25 /*letterIndex ("S")*/,
    -
    11222  },
    -
    11223 
    -
    11224 };
    -
    11225 
    -
    11226 const complete::Info::ZonePolicy kZonePolicyHoliday ACE_TIME_PROGMEM = {
    -
    11227  kZoneRulesHoliday /*rules*/,
    -
    11228  3 /*numRules*/,
    -
    11229 };
    -
    11230 
    -
    11231 //---------------------------------------------------------------------------
    -
    11232 // Policy name: Hond
    -
    11233 // Rules: 5
    -
    11234 //---------------------------------------------------------------------------
    -
    11235 
    -
    11236 static const complete::Info::ZoneRule kZoneRulesHond[] ACE_TIME_PROGMEM = {
    -
    11237  // Anchor: Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
    -
    11238  {
    -
    11239  -32767 /*fromYear*/,
    -
    11240  -32767 /*toYear*/,
    -
    11241  1 /*inMonth*/,
    -
    11242  0 /*onDayOfWeek*/,
    -
    11243  1 /*onDayOfMonth*/,
    -
    11244  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11245  0 /*atTimeCode (0/15)*/,
    -
    11246  0 /*deltaMinutes*/,
    -
    11247  25 /*letterIndex ("S")*/,
    -
    11248  },
    -
    11249  // Rule Hond 1987 1988 - May Sun>=1 0:00 1:00 D
    -
    11250  {
    -
    11251  1987 /*fromYear*/,
    -
    11252  1988 /*toYear*/,
    -
    11253  5 /*inMonth*/,
    -
    11254  7 /*onDayOfWeek*/,
    -
    11255  1 /*onDayOfMonth*/,
    -
    11256  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11257  0 /*atTimeCode (0/15)*/,
    -
    11258  60 /*deltaMinutes*/,
    -
    11259  13 /*letterIndex ("D")*/,
    -
    11260  },
    -
    11261  // Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
    -
    11262  {
    -
    11263  1987 /*fromYear*/,
    -
    11264  1988 /*toYear*/,
    -
    11265  9 /*inMonth*/,
    -
    11266  7 /*onDayOfWeek*/,
    -
    11267  0 /*onDayOfMonth*/,
    -
    11268  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11269  0 /*atTimeCode (0/15)*/,
    -
    11270  0 /*deltaMinutes*/,
    -
    11271  25 /*letterIndex ("S")*/,
    -
    11272  },
    -
    11273  // Rule Hond 2006 only - May Sun>=1 0:00 1:00 D
    -
    11274  {
    -
    11275  2006 /*fromYear*/,
    -
    11276  2006 /*toYear*/,
    -
    11277  5 /*inMonth*/,
    -
    11278  7 /*onDayOfWeek*/,
    -
    11279  1 /*onDayOfMonth*/,
    -
    11280  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11281  0 /*atTimeCode (0/15)*/,
    -
    11282  60 /*deltaMinutes*/,
    -
    11283  13 /*letterIndex ("D")*/,
    -
    11284  },
    -
    11285  // Rule Hond 2006 only - Aug Mon>=1 0:00 0 S
    -
    11286  {
    -
    11287  2006 /*fromYear*/,
    -
    11288  2006 /*toYear*/,
    -
    11289  8 /*inMonth*/,
    -
    11290  1 /*onDayOfWeek*/,
    -
    11291  1 /*onDayOfMonth*/,
    -
    11292  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11293  0 /*atTimeCode (0/15)*/,
    -
    11294  0 /*deltaMinutes*/,
    -
    11295  25 /*letterIndex ("S")*/,
    -
    11296  },
    -
    11297 
    -
    11298 };
    -
    11299 
    -
    11300 const complete::Info::ZonePolicy kZonePolicyHond ACE_TIME_PROGMEM = {
    -
    11301  kZoneRulesHond /*rules*/,
    -
    11302  5 /*numRules*/,
    -
    11303 };
    -
    11304 
    -
    11305 //---------------------------------------------------------------------------
    -
    11306 // Policy name: Hungary
    -
    11307 // Rules: 20
    -
    11308 //---------------------------------------------------------------------------
    -
    11309 
    -
    11310 static const complete::Info::ZoneRule kZoneRulesHungary[] ACE_TIME_PROGMEM = {
    -
    11311  // Anchor: Rule Hungary 1918 1920 - Sep Mon>=15 3:00 0 -
    -
    11312  {
    -
    11313  -32767 /*fromYear*/,
    -
    11314  -32767 /*toYear*/,
    -
    11315  1 /*inMonth*/,
    -
    11316  0 /*onDayOfWeek*/,
    -
    11317  1 /*onDayOfMonth*/,
    -
    11318  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11319  0 /*atTimeCode (0/15)*/,
    -
    11320  0 /*deltaMinutes*/,
    -
    11321  0 /*letterIndex ("")*/,
    -
    11322  },
    -
    11323  // Rule Hungary 1918 1919 - Apr 15 2:00 1:00 S
    -
    11324  {
    -
    11325  1918 /*fromYear*/,
    -
    11326  1919 /*toYear*/,
    -
    11327  4 /*inMonth*/,
    -
    11328  0 /*onDayOfWeek*/,
    -
    11329  15 /*onDayOfMonth*/,
    -
    11330  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11331  480 /*atTimeCode (7200/15)*/,
    -
    11332  60 /*deltaMinutes*/,
    -
    11333  25 /*letterIndex ("S")*/,
    -
    11334  },
    -
    11335  // Rule Hungary 1918 1920 - Sep Mon>=15 3:00 0 -
    -
    11336  {
    -
    11337  1918 /*fromYear*/,
    -
    11338  1920 /*toYear*/,
    -
    11339  9 /*inMonth*/,
    -
    11340  1 /*onDayOfWeek*/,
    -
    11341  15 /*onDayOfMonth*/,
    -
    11342  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11343  720 /*atTimeCode (10800/15)*/,
    -
    11344  0 /*deltaMinutes*/,
    -
    11345  0 /*letterIndex ("")*/,
    -
    11346  },
    -
    11347  // Rule Hungary 1920 only - Apr 5 2:00 1:00 S
    -
    11348  {
    -
    11349  1920 /*fromYear*/,
    -
    11350  1920 /*toYear*/,
    -
    11351  4 /*inMonth*/,
    -
    11352  0 /*onDayOfWeek*/,
    -
    11353  5 /*onDayOfMonth*/,
    -
    11354  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11355  480 /*atTimeCode (7200/15)*/,
    -
    11356  60 /*deltaMinutes*/,
    -
    11357  25 /*letterIndex ("S")*/,
    -
    11358  },
    -
    11359  // Rule Hungary 1945 only - May 1 23:00 1:00 S
    -
    11360  {
    -
    11361  1945 /*fromYear*/,
    -
    11362  1945 /*toYear*/,
    -
    11363  5 /*inMonth*/,
    -
    11364  0 /*onDayOfWeek*/,
    -
    11365  1 /*onDayOfMonth*/,
    -
    11366  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11367  5520 /*atTimeCode (82800/15)*/,
    -
    11368  60 /*deltaMinutes*/,
    -
    11369  25 /*letterIndex ("S")*/,
    -
    11370  },
    -
    11371  // Rule Hungary 1945 only - Nov 1 1:00 0 -
    -
    11372  {
    -
    11373  1945 /*fromYear*/,
    -
    11374  1945 /*toYear*/,
    -
    11375  11 /*inMonth*/,
    -
    11376  0 /*onDayOfWeek*/,
    -
    11377  1 /*onDayOfMonth*/,
    -
    11378  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11379  240 /*atTimeCode (3600/15)*/,
    -
    11380  0 /*deltaMinutes*/,
    -
    11381  0 /*letterIndex ("")*/,
    -
    11382  },
    -
    11383  // Rule Hungary 1946 only - Mar 31 2:00s 1:00 S
    -
    11384  {
    -
    11385  1946 /*fromYear*/,
    -
    11386  1946 /*toYear*/,
    -
    11387  3 /*inMonth*/,
    -
    11388  0 /*onDayOfWeek*/,
    -
    11389  31 /*onDayOfMonth*/,
    -
    11390  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    11391  480 /*atTimeCode (7200/15)*/,
    -
    11392  60 /*deltaMinutes*/,
    -
    11393  25 /*letterIndex ("S")*/,
    -
    11394  },
    -
    11395  // Rule Hungary 1946 only - Oct 7 2:00 0 -
    -
    11396  {
    -
    11397  1946 /*fromYear*/,
    -
    11398  1946 /*toYear*/,
    -
    11399  10 /*inMonth*/,
    -
    11400  0 /*onDayOfWeek*/,
    -
    11401  7 /*onDayOfMonth*/,
    -
    11402  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11403  480 /*atTimeCode (7200/15)*/,
    -
    11404  0 /*deltaMinutes*/,
    -
    11405  0 /*letterIndex ("")*/,
    -
    11406  },
    -
    11407  // Rule Hungary 1947 1949 - Apr Sun>=4 2:00s 1:00 S
    -
    11408  {
    -
    11409  1947 /*fromYear*/,
    -
    11410  1949 /*toYear*/,
    -
    11411  4 /*inMonth*/,
    -
    11412  7 /*onDayOfWeek*/,
    -
    11413  4 /*onDayOfMonth*/,
    -
    11414  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    11415  480 /*atTimeCode (7200/15)*/,
    -
    11416  60 /*deltaMinutes*/,
    -
    11417  25 /*letterIndex ("S")*/,
    -
    11418  },
    -
    11419  // Rule Hungary 1947 1949 - Oct Sun>=1 2:00s 0 -
    -
    11420  {
    -
    11421  1947 /*fromYear*/,
    -
    11422  1949 /*toYear*/,
    -
    11423  10 /*inMonth*/,
    -
    11424  7 /*onDayOfWeek*/,
    -
    11425  1 /*onDayOfMonth*/,
    -
    11426  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    11427  480 /*atTimeCode (7200/15)*/,
    -
    11428  0 /*deltaMinutes*/,
    -
    11429  0 /*letterIndex ("")*/,
    -
    11430  },
    -
    11431  // Rule Hungary 1954 only - May 23 0:00 1:00 S
    -
    11432  {
    -
    11433  1954 /*fromYear*/,
    -
    11434  1954 /*toYear*/,
    -
    11435  5 /*inMonth*/,
    -
    11436  0 /*onDayOfWeek*/,
    -
    11437  23 /*onDayOfMonth*/,
    -
    11438  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11439  0 /*atTimeCode (0/15)*/,
    -
    11440  60 /*deltaMinutes*/,
    -
    11441  25 /*letterIndex ("S")*/,
    -
    11442  },
    -
    11443  // Rule Hungary 1954 only - Oct 3 0:00 0 -
    -
    11444  {
    -
    11445  1954 /*fromYear*/,
    -
    11446  1954 /*toYear*/,
    -
    11447  10 /*inMonth*/,
    -
    11448  0 /*onDayOfWeek*/,
    -
    11449  3 /*onDayOfMonth*/,
    -
    11450  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11451  0 /*atTimeCode (0/15)*/,
    -
    11452  0 /*deltaMinutes*/,
    -
    11453  0 /*letterIndex ("")*/,
    -
    11454  },
    -
    11455  // Rule Hungary 1955 only - May 22 2:00 1:00 S
    -
    11456  {
    -
    11457  1955 /*fromYear*/,
    -
    11458  1955 /*toYear*/,
    -
    11459  5 /*inMonth*/,
    -
    11460  0 /*onDayOfWeek*/,
    -
    11461  22 /*onDayOfMonth*/,
    -
    11462  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11463  480 /*atTimeCode (7200/15)*/,
    -
    11464  60 /*deltaMinutes*/,
    -
    11465  25 /*letterIndex ("S")*/,
    -
    11466  },
    -
    11467  // Rule Hungary 1955 only - Oct 2 3:00 0 -
    -
    11468  {
    -
    11469  1955 /*fromYear*/,
    -
    11470  1955 /*toYear*/,
    -
    11471  10 /*inMonth*/,
    -
    11472  0 /*onDayOfWeek*/,
    -
    11473  2 /*onDayOfMonth*/,
    -
    11474  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11475  720 /*atTimeCode (10800/15)*/,
    -
    11476  0 /*deltaMinutes*/,
    -
    11477  0 /*letterIndex ("")*/,
    -
    11478  },
    -
    11479  // Rule Hungary 1956 1957 - Jun Sun>=1 2:00 1:00 S
    -
    11480  {
    -
    11481  1956 /*fromYear*/,
    -
    11482  1957 /*toYear*/,
    -
    11483  6 /*inMonth*/,
    -
    11484  7 /*onDayOfWeek*/,
    -
    11485  1 /*onDayOfMonth*/,
    -
    11486  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11487  480 /*atTimeCode (7200/15)*/,
    -
    11488  60 /*deltaMinutes*/,
    -
    11489  25 /*letterIndex ("S")*/,
    -
    11490  },
    -
    11491  // Rule Hungary 1956 1957 - Sep lastSun 3:00 0 -
    -
    11492  {
    -
    11493  1956 /*fromYear*/,
    -
    11494  1957 /*toYear*/,
    -
    11495  9 /*inMonth*/,
    -
    11496  7 /*onDayOfWeek*/,
    -
    11497  0 /*onDayOfMonth*/,
    -
    11498  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11499  720 /*atTimeCode (10800/15)*/,
    -
    11500  0 /*deltaMinutes*/,
    -
    11501  0 /*letterIndex ("")*/,
    -
    11502  },
    -
    11503  // Rule Hungary 1980 only - Apr 6 0:00 1:00 S
    -
    11504  {
    -
    11505  1980 /*fromYear*/,
    -
    11506  1980 /*toYear*/,
    -
    11507  4 /*inMonth*/,
    -
    11508  0 /*onDayOfWeek*/,
    -
    11509  6 /*onDayOfMonth*/,
    -
    11510  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11511  0 /*atTimeCode (0/15)*/,
    -
    11512  60 /*deltaMinutes*/,
    -
    11513  25 /*letterIndex ("S")*/,
    -
    11514  },
    -
    11515  // Rule Hungary 1980 only - Sep 28 1:00 0 -
    -
    11516  {
    -
    11517  1980 /*fromYear*/,
    -
    11518  1980 /*toYear*/,
    -
    11519  9 /*inMonth*/,
    -
    11520  0 /*onDayOfWeek*/,
    -
    11521  28 /*onDayOfMonth*/,
    -
    11522  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11523  240 /*atTimeCode (3600/15)*/,
    -
    11524  0 /*deltaMinutes*/,
    -
    11525  0 /*letterIndex ("")*/,
    -
    11526  },
    -
    11527  // Rule Hungary 1981 1983 - Mar lastSun 0:00 1:00 S
    -
    11528  {
    -
    11529  1981 /*fromYear*/,
    -
    11530  1983 /*toYear*/,
    -
    11531  3 /*inMonth*/,
    -
    11532  7 /*onDayOfWeek*/,
    -
    11533  0 /*onDayOfMonth*/,
    -
    11534  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11535  0 /*atTimeCode (0/15)*/,
    -
    11536  60 /*deltaMinutes*/,
    -
    11537  25 /*letterIndex ("S")*/,
    -
    11538  },
    -
    11539  // Rule Hungary 1981 1983 - Sep lastSun 1:00 0 -
    -
    11540  {
    -
    11541  1981 /*fromYear*/,
    -
    11542  1983 /*toYear*/,
    -
    11543  9 /*inMonth*/,
    -
    11544  7 /*onDayOfWeek*/,
    -
    11545  0 /*onDayOfMonth*/,
    -
    11546  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11547  240 /*atTimeCode (3600/15)*/,
    -
    11548  0 /*deltaMinutes*/,
    -
    11549  0 /*letterIndex ("")*/,
    -
    11550  },
    -
    11551 
    -
    11552 };
    -
    11553 
    -
    11554 const complete::Info::ZonePolicy kZonePolicyHungary ACE_TIME_PROGMEM = {
    -
    11555  kZoneRulesHungary /*rules*/,
    -
    11556  20 /*numRules*/,
    -
    11557 };
    -
    11558 
    -
    11559 //---------------------------------------------------------------------------
    -
    11560 // Policy name: Indianapolis
    -
    11561 // Rules: 4
    -
    11562 //---------------------------------------------------------------------------
    -
    11563 
    -
    11564 static const complete::Info::ZoneRule kZoneRulesIndianapolis[] ACE_TIME_PROGMEM = {
    -
    11565  // Anchor: Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
    -
    11566  {
    -
    11567  -32767 /*fromYear*/,
    -
    11568  -32767 /*toYear*/,
    -
    11569  1 /*inMonth*/,
    -
    11570  0 /*onDayOfWeek*/,
    -
    11571  1 /*onDayOfMonth*/,
    -
    11572  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11573  0 /*atTimeCode (0/15)*/,
    -
    11574  0 /*deltaMinutes*/,
    -
    11575  25 /*letterIndex ("S")*/,
    -
    11576  },
    -
    11577  // Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D
    -
    11578  {
    -
    11579  1941 /*fromYear*/,
    -
    11580  1941 /*toYear*/,
    -
    11581  6 /*inMonth*/,
    -
    11582  0 /*onDayOfWeek*/,
    -
    11583  22 /*onDayOfMonth*/,
    -
    11584  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11585  480 /*atTimeCode (7200/15)*/,
    -
    11586  60 /*deltaMinutes*/,
    -
    11587  13 /*letterIndex ("D")*/,
    -
    11588  },
    -
    11589  // Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
    -
    11590  {
    -
    11591  1941 /*fromYear*/,
    -
    11592  1954 /*toYear*/,
    -
    11593  9 /*inMonth*/,
    -
    11594  7 /*onDayOfWeek*/,
    -
    11595  0 /*onDayOfMonth*/,
    -
    11596  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11597  480 /*atTimeCode (7200/15)*/,
    -
    11598  0 /*deltaMinutes*/,
    -
    11599  25 /*letterIndex ("S")*/,
    -
    11600  },
    -
    11601  // Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D
    -
    11602  {
    -
    11603  1946 /*fromYear*/,
    -
    11604  1954 /*toYear*/,
    -
    11605  4 /*inMonth*/,
    -
    11606  7 /*onDayOfWeek*/,
    -
    11607  0 /*onDayOfMonth*/,
    -
    11608  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11609  480 /*atTimeCode (7200/15)*/,
    -
    11610  60 /*deltaMinutes*/,
    -
    11611  13 /*letterIndex ("D")*/,
    -
    11612  },
    -
    11613 
    -
    11614 };
    -
    11615 
    -
    11616 const complete::Info::ZonePolicy kZonePolicyIndianapolis ACE_TIME_PROGMEM = {
    -
    11617  kZoneRulesIndianapolis /*rules*/,
    -
    11618  4 /*numRules*/,
    -
    11619 };
    -
    11620 
    -
    11621 //---------------------------------------------------------------------------
    -
    11622 // Policy name: Iran
    -
    11623 // Rules: 41
    -
    11624 //---------------------------------------------------------------------------
    -
    11625 
    -
    11626 static const complete::Info::ZoneRule kZoneRulesIran[] ACE_TIME_PROGMEM = {
    -
    11627  // Anchor: Rule Iran 1910 only - Jan 1 00:00 0 -
    -
    11628  {
    -
    11629  -32767 /*fromYear*/,
    -
    11630  -32767 /*toYear*/,
    -
    11631  1 /*inMonth*/,
    -
    11632  0 /*onDayOfWeek*/,
    -
    11633  1 /*onDayOfMonth*/,
    -
    11634  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11635  0 /*atTimeCode (0/15)*/,
    -
    11636  0 /*deltaMinutes*/,
    -
    11637  0 /*letterIndex ("")*/,
    -
    11638  },
    -
    11639  // Rule Iran 1910 only - Jan 1 00:00 0 -
    -
    11640  {
    -
    11641  1910 /*fromYear*/,
    -
    11642  1910 /*toYear*/,
    -
    11643  1 /*inMonth*/,
    -
    11644  0 /*onDayOfWeek*/,
    -
    11645  1 /*onDayOfMonth*/,
    -
    11646  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11647  0 /*atTimeCode (0/15)*/,
    -
    11648  0 /*deltaMinutes*/,
    -
    11649  0 /*letterIndex ("")*/,
    -
    11650  },
    -
    11651  // Rule Iran 1977 only - Mar 21 23:00 1:00 -
    -
    11652  {
    -
    11653  1977 /*fromYear*/,
    -
    11654  1977 /*toYear*/,
    -
    11655  3 /*inMonth*/,
    -
    11656  0 /*onDayOfWeek*/,
    -
    11657  21 /*onDayOfMonth*/,
    -
    11658  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11659  5520 /*atTimeCode (82800/15)*/,
    -
    11660  60 /*deltaMinutes*/,
    -
    11661  0 /*letterIndex ("")*/,
    -
    11662  },
    -
    11663  // Rule Iran 1977 only - Oct 20 24:00 0 -
    -
    11664  {
    -
    11665  1977 /*fromYear*/,
    -
    11666  1977 /*toYear*/,
    -
    11667  10 /*inMonth*/,
    -
    11668  0 /*onDayOfWeek*/,
    -
    11669  20 /*onDayOfMonth*/,
    -
    11670  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11671  5760 /*atTimeCode (86400/15)*/,
    -
    11672  0 /*deltaMinutes*/,
    -
    11673  0 /*letterIndex ("")*/,
    -
    11674  },
    -
    11675  // Rule Iran 1978 only - Mar 24 24:00 1:00 -
    -
    11676  {
    -
    11677  1978 /*fromYear*/,
    -
    11678  1978 /*toYear*/,
    -
    11679  3 /*inMonth*/,
    -
    11680  0 /*onDayOfWeek*/,
    -
    11681  24 /*onDayOfMonth*/,
    -
    11682  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11683  5760 /*atTimeCode (86400/15)*/,
    -
    11684  60 /*deltaMinutes*/,
    -
    11685  0 /*letterIndex ("")*/,
    -
    11686  },
    -
    11687  // Rule Iran 1978 only - Aug 5 01:00 0 -
    -
    11688  {
    -
    11689  1978 /*fromYear*/,
    -
    11690  1978 /*toYear*/,
    -
    11691  8 /*inMonth*/,
    -
    11692  0 /*onDayOfWeek*/,
    -
    11693  5 /*onDayOfMonth*/,
    -
    11694  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11695  240 /*atTimeCode (3600/15)*/,
    -
    11696  0 /*deltaMinutes*/,
    -
    11697  0 /*letterIndex ("")*/,
    -
    11698  },
    -
    11699  // Rule Iran 1979 only - May 26 24:00 1:00 -
    -
    11700  {
    -
    11701  1979 /*fromYear*/,
    -
    11702  1979 /*toYear*/,
    -
    11703  5 /*inMonth*/,
    -
    11704  0 /*onDayOfWeek*/,
    -
    11705  26 /*onDayOfMonth*/,
    -
    11706  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11707  5760 /*atTimeCode (86400/15)*/,
    -
    11708  60 /*deltaMinutes*/,
    -
    11709  0 /*letterIndex ("")*/,
    -
    11710  },
    -
    11711  // Rule Iran 1979 only - Sep 18 24:00 0 -
    -
    11712  {
    -
    11713  1979 /*fromYear*/,
    -
    11714  1979 /*toYear*/,
    -
    11715  9 /*inMonth*/,
    -
    11716  0 /*onDayOfWeek*/,
    -
    11717  18 /*onDayOfMonth*/,
    -
    11718  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11719  5760 /*atTimeCode (86400/15)*/,
    -
    11720  0 /*deltaMinutes*/,
    -
    11721  0 /*letterIndex ("")*/,
    -
    11722  },
    -
    11723  // Rule Iran 1980 only - Mar 20 24:00 1:00 -
    -
    11724  {
    -
    11725  1980 /*fromYear*/,
    -
    11726  1980 /*toYear*/,
    -
    11727  3 /*inMonth*/,
    -
    11728  0 /*onDayOfWeek*/,
    -
    11729  20 /*onDayOfMonth*/,
    -
    11730  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11731  5760 /*atTimeCode (86400/15)*/,
    -
    11732  60 /*deltaMinutes*/,
    -
    11733  0 /*letterIndex ("")*/,
    -
    11734  },
    -
    11735  // Rule Iran 1980 only - Sep 22 24:00 0 -
    -
    11736  {
    -
    11737  1980 /*fromYear*/,
    -
    11738  1980 /*toYear*/,
    -
    11739  9 /*inMonth*/,
    -
    11740  0 /*onDayOfWeek*/,
    -
    11741  22 /*onDayOfMonth*/,
    -
    11742  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11743  5760 /*atTimeCode (86400/15)*/,
    -
    11744  0 /*deltaMinutes*/,
    -
    11745  0 /*letterIndex ("")*/,
    -
    11746  },
    -
    11747  // Rule Iran 1991 only - May 2 24:00 1:00 -
    -
    11748  {
    -
    11749  1991 /*fromYear*/,
    -
    11750  1991 /*toYear*/,
    -
    11751  5 /*inMonth*/,
    -
    11752  0 /*onDayOfWeek*/,
    -
    11753  2 /*onDayOfMonth*/,
    -
    11754  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11755  5760 /*atTimeCode (86400/15)*/,
    -
    11756  60 /*deltaMinutes*/,
    -
    11757  0 /*letterIndex ("")*/,
    -
    11758  },
    -
    11759  // Rule Iran 1992 1995 - Mar 21 24:00 1:00 -
    -
    11760  {
    -
    11761  1992 /*fromYear*/,
    -
    11762  1995 /*toYear*/,
    -
    11763  3 /*inMonth*/,
    -
    11764  0 /*onDayOfWeek*/,
    -
    11765  21 /*onDayOfMonth*/,
    -
    11766  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11767  5760 /*atTimeCode (86400/15)*/,
    -
    11768  60 /*deltaMinutes*/,
    -
    11769  0 /*letterIndex ("")*/,
    -
    11770  },
    -
    11771  // Rule Iran 1991 1995 - Sep 21 24:00 0 -
    -
    11772  {
    -
    11773  1991 /*fromYear*/,
    -
    11774  1995 /*toYear*/,
    -
    11775  9 /*inMonth*/,
    -
    11776  0 /*onDayOfWeek*/,
    -
    11777  21 /*onDayOfMonth*/,
    -
    11778  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11779  5760 /*atTimeCode (86400/15)*/,
    -
    11780  0 /*deltaMinutes*/,
    -
    11781  0 /*letterIndex ("")*/,
    -
    11782  },
    -
    11783  // Rule Iran 1996 only - Mar 20 24:00 1:00 -
    -
    11784  {
    -
    11785  1996 /*fromYear*/,
    -
    11786  1996 /*toYear*/,
    -
    11787  3 /*inMonth*/,
    -
    11788  0 /*onDayOfWeek*/,
    -
    11789  20 /*onDayOfMonth*/,
    -
    11790  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11791  5760 /*atTimeCode (86400/15)*/,
    -
    11792  60 /*deltaMinutes*/,
    -
    11793  0 /*letterIndex ("")*/,
    -
    11794  },
    -
    11795  // Rule Iran 1996 only - Sep 20 24:00 0 -
    -
    11796  {
    -
    11797  1996 /*fromYear*/,
    -
    11798  1996 /*toYear*/,
    -
    11799  9 /*inMonth*/,
    -
    11800  0 /*onDayOfWeek*/,
    -
    11801  20 /*onDayOfMonth*/,
    -
    11802  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11803  5760 /*atTimeCode (86400/15)*/,
    -
    11804  0 /*deltaMinutes*/,
    -
    11805  0 /*letterIndex ("")*/,
    -
    11806  },
    -
    11807  // Rule Iran 1997 1999 - Mar 21 24:00 1:00 -
    -
    11808  {
    -
    11809  1997 /*fromYear*/,
    -
    11810  1999 /*toYear*/,
    -
    11811  3 /*inMonth*/,
    -
    11812  0 /*onDayOfWeek*/,
    -
    11813  21 /*onDayOfMonth*/,
    -
    11814  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11815  5760 /*atTimeCode (86400/15)*/,
    -
    11816  60 /*deltaMinutes*/,
    -
    11817  0 /*letterIndex ("")*/,
    -
    11818  },
    -
    11819  // Rule Iran 1997 1999 - Sep 21 24:00 0 -
    -
    11820  {
    -
    11821  1997 /*fromYear*/,
    -
    11822  1999 /*toYear*/,
    -
    11823  9 /*inMonth*/,
    -
    11824  0 /*onDayOfWeek*/,
    -
    11825  21 /*onDayOfMonth*/,
    -
    11826  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11827  5760 /*atTimeCode (86400/15)*/,
    -
    11828  0 /*deltaMinutes*/,
    -
    11829  0 /*letterIndex ("")*/,
    -
    11830  },
    -
    11831  // Rule Iran 2000 only - Mar 20 24:00 1:00 -
    -
    11832  {
    -
    11833  2000 /*fromYear*/,
    -
    11834  2000 /*toYear*/,
    -
    11835  3 /*inMonth*/,
    -
    11836  0 /*onDayOfWeek*/,
    -
    11837  20 /*onDayOfMonth*/,
    -
    11838  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11839  5760 /*atTimeCode (86400/15)*/,
    -
    11840  60 /*deltaMinutes*/,
    -
    11841  0 /*letterIndex ("")*/,
    -
    11842  },
    -
    11843  // Rule Iran 2000 only - Sep 20 24:00 0 -
    -
    11844  {
    -
    11845  2000 /*fromYear*/,
    -
    11846  2000 /*toYear*/,
    -
    11847  9 /*inMonth*/,
    -
    11848  0 /*onDayOfWeek*/,
    -
    11849  20 /*onDayOfMonth*/,
    -
    11850  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11851  5760 /*atTimeCode (86400/15)*/,
    -
    11852  0 /*deltaMinutes*/,
    -
    11853  0 /*letterIndex ("")*/,
    -
    11854  },
    -
    11855  // Rule Iran 2001 2003 - Mar 21 24:00 1:00 -
    -
    11856  {
    -
    11857  2001 /*fromYear*/,
    -
    11858  2003 /*toYear*/,
    -
    11859  3 /*inMonth*/,
    -
    11860  0 /*onDayOfWeek*/,
    -
    11861  21 /*onDayOfMonth*/,
    -
    11862  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11863  5760 /*atTimeCode (86400/15)*/,
    -
    11864  60 /*deltaMinutes*/,
    -
    11865  0 /*letterIndex ("")*/,
    -
    11866  },
    -
    11867  // Rule Iran 2001 2003 - Sep 21 24:00 0 -
    -
    11868  {
    -
    11869  2001 /*fromYear*/,
    -
    11870  2003 /*toYear*/,
    -
    11871  9 /*inMonth*/,
    -
    11872  0 /*onDayOfWeek*/,
    -
    11873  21 /*onDayOfMonth*/,
    -
    11874  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11875  5760 /*atTimeCode (86400/15)*/,
    -
    11876  0 /*deltaMinutes*/,
    -
    11877  0 /*letterIndex ("")*/,
    -
    11878  },
    -
    11879  // Rule Iran 2004 only - Mar 20 24:00 1:00 -
    -
    11880  {
    -
    11881  2004 /*fromYear*/,
    -
    11882  2004 /*toYear*/,
    -
    11883  3 /*inMonth*/,
    -
    11884  0 /*onDayOfWeek*/,
    -
    11885  20 /*onDayOfMonth*/,
    -
    11886  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11887  5760 /*atTimeCode (86400/15)*/,
    -
    11888  60 /*deltaMinutes*/,
    -
    11889  0 /*letterIndex ("")*/,
    -
    11890  },
    -
    11891  // Rule Iran 2004 only - Sep 20 24:00 0 -
    -
    11892  {
    -
    11893  2004 /*fromYear*/,
    -
    11894  2004 /*toYear*/,
    -
    11895  9 /*inMonth*/,
    -
    11896  0 /*onDayOfWeek*/,
    -
    11897  20 /*onDayOfMonth*/,
    -
    11898  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11899  5760 /*atTimeCode (86400/15)*/,
    -
    11900  0 /*deltaMinutes*/,
    -
    11901  0 /*letterIndex ("")*/,
    -
    11902  },
    -
    11903  // Rule Iran 2005 only - Mar 21 24:00 1:00 -
    -
    11904  {
    -
    11905  2005 /*fromYear*/,
    -
    11906  2005 /*toYear*/,
    -
    11907  3 /*inMonth*/,
    -
    11908  0 /*onDayOfWeek*/,
    -
    11909  21 /*onDayOfMonth*/,
    -
    11910  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11911  5760 /*atTimeCode (86400/15)*/,
    -
    11912  60 /*deltaMinutes*/,
    -
    11913  0 /*letterIndex ("")*/,
    -
    11914  },
    -
    11915  // Rule Iran 2005 only - Sep 21 24:00 0 -
    -
    11916  {
    -
    11917  2005 /*fromYear*/,
    -
    11918  2005 /*toYear*/,
    -
    11919  9 /*inMonth*/,
    -
    11920  0 /*onDayOfWeek*/,
    -
    11921  21 /*onDayOfMonth*/,
    -
    11922  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11923  5760 /*atTimeCode (86400/15)*/,
    -
    11924  0 /*deltaMinutes*/,
    -
    11925  0 /*letterIndex ("")*/,
    -
    11926  },
    -
    11927  // Rule Iran 2008 only - Mar 20 24:00 1:00 -
    -
    11928  {
    -
    11929  2008 /*fromYear*/,
    -
    11930  2008 /*toYear*/,
    -
    11931  3 /*inMonth*/,
    -
    11932  0 /*onDayOfWeek*/,
    -
    11933  20 /*onDayOfMonth*/,
    -
    11934  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11935  5760 /*atTimeCode (86400/15)*/,
    -
    11936  60 /*deltaMinutes*/,
    -
    11937  0 /*letterIndex ("")*/,
    -
    11938  },
    -
    11939  // Rule Iran 2008 only - Sep 20 24:00 0 -
    -
    11940  {
    -
    11941  2008 /*fromYear*/,
    -
    11942  2008 /*toYear*/,
    -
    11943  9 /*inMonth*/,
    -
    11944  0 /*onDayOfWeek*/,
    -
    11945  20 /*onDayOfMonth*/,
    -
    11946  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11947  5760 /*atTimeCode (86400/15)*/,
    -
    11948  0 /*deltaMinutes*/,
    -
    11949  0 /*letterIndex ("")*/,
    -
    11950  },
    -
    11951  // Rule Iran 2009 2011 - Mar 21 24:00 1:00 -
    -
    11952  {
    -
    11953  2009 /*fromYear*/,
    -
    11954  2011 /*toYear*/,
    -
    11955  3 /*inMonth*/,
    -
    11956  0 /*onDayOfWeek*/,
    -
    11957  21 /*onDayOfMonth*/,
    -
    11958  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11959  5760 /*atTimeCode (86400/15)*/,
    -
    11960  60 /*deltaMinutes*/,
    -
    11961  0 /*letterIndex ("")*/,
    -
    11962  },
    -
    11963  // Rule Iran 2009 2011 - Sep 21 24:00 0 -
    -
    11964  {
    -
    11965  2009 /*fromYear*/,
    -
    11966  2011 /*toYear*/,
    -
    11967  9 /*inMonth*/,
    -
    11968  0 /*onDayOfWeek*/,
    -
    11969  21 /*onDayOfMonth*/,
    -
    11970  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11971  5760 /*atTimeCode (86400/15)*/,
    -
    11972  0 /*deltaMinutes*/,
    -
    11973  0 /*letterIndex ("")*/,
    -
    11974  },
    -
    11975  // Rule Iran 2012 only - Mar 20 24:00 1:00 -
    -
    11976  {
    -
    11977  2012 /*fromYear*/,
    -
    11978  2012 /*toYear*/,
    -
    11979  3 /*inMonth*/,
    -
    11980  0 /*onDayOfWeek*/,
    -
    11981  20 /*onDayOfMonth*/,
    -
    11982  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11983  5760 /*atTimeCode (86400/15)*/,
    -
    11984  60 /*deltaMinutes*/,
    -
    11985  0 /*letterIndex ("")*/,
    -
    11986  },
    -
    11987  // Rule Iran 2012 only - Sep 20 24:00 0 -
    -
    11988  {
    -
    11989  2012 /*fromYear*/,
    -
    11990  2012 /*toYear*/,
    -
    11991  9 /*inMonth*/,
    -
    11992  0 /*onDayOfWeek*/,
    -
    11993  20 /*onDayOfMonth*/,
    -
    11994  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    11995  5760 /*atTimeCode (86400/15)*/,
    -
    11996  0 /*deltaMinutes*/,
    -
    11997  0 /*letterIndex ("")*/,
    -
    11998  },
    -
    11999  // Rule Iran 2013 2015 - Mar 21 24:00 1:00 -
    -
    12000  {
    -
    12001  2013 /*fromYear*/,
    -
    12002  2015 /*toYear*/,
    -
    12003  3 /*inMonth*/,
    -
    12004  0 /*onDayOfWeek*/,
    -
    12005  21 /*onDayOfMonth*/,
    -
    12006  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12007  5760 /*atTimeCode (86400/15)*/,
    -
    12008  60 /*deltaMinutes*/,
    -
    12009  0 /*letterIndex ("")*/,
    -
    12010  },
    -
    12011  // Rule Iran 2013 2015 - Sep 21 24:00 0 -
    -
    12012  {
    -
    12013  2013 /*fromYear*/,
    -
    12014  2015 /*toYear*/,
    -
    12015  9 /*inMonth*/,
    -
    12016  0 /*onDayOfWeek*/,
    -
    12017  21 /*onDayOfMonth*/,
    -
    12018  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12019  5760 /*atTimeCode (86400/15)*/,
    -
    12020  0 /*deltaMinutes*/,
    -
    12021  0 /*letterIndex ("")*/,
    -
    12022  },
    -
    12023  // Rule Iran 2016 only - Mar 20 24:00 1:00 -
    -
    12024  {
    -
    12025  2016 /*fromYear*/,
    -
    12026  2016 /*toYear*/,
    -
    12027  3 /*inMonth*/,
    -
    12028  0 /*onDayOfWeek*/,
    -
    12029  20 /*onDayOfMonth*/,
    -
    12030  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12031  5760 /*atTimeCode (86400/15)*/,
    -
    12032  60 /*deltaMinutes*/,
    -
    12033  0 /*letterIndex ("")*/,
    -
    12034  },
    -
    12035  // Rule Iran 2016 only - Sep 20 24:00 0 -
    -
    12036  {
    -
    12037  2016 /*fromYear*/,
    -
    12038  2016 /*toYear*/,
    -
    12039  9 /*inMonth*/,
    -
    12040  0 /*onDayOfWeek*/,
    -
    12041  20 /*onDayOfMonth*/,
    -
    12042  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12043  5760 /*atTimeCode (86400/15)*/,
    -
    12044  0 /*deltaMinutes*/,
    -
    12045  0 /*letterIndex ("")*/,
    -
    12046  },
    -
    12047  // Rule Iran 2017 2019 - Mar 21 24:00 1:00 -
    -
    12048  {
    -
    12049  2017 /*fromYear*/,
    -
    12050  2019 /*toYear*/,
    -
    12051  3 /*inMonth*/,
    -
    12052  0 /*onDayOfWeek*/,
    -
    12053  21 /*onDayOfMonth*/,
    -
    12054  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12055  5760 /*atTimeCode (86400/15)*/,
    -
    12056  60 /*deltaMinutes*/,
    -
    12057  0 /*letterIndex ("")*/,
    -
    12058  },
    -
    12059  // Rule Iran 2017 2019 - Sep 21 24:00 0 -
    -
    12060  {
    -
    12061  2017 /*fromYear*/,
    -
    12062  2019 /*toYear*/,
    -
    12063  9 /*inMonth*/,
    -
    12064  0 /*onDayOfWeek*/,
    -
    12065  21 /*onDayOfMonth*/,
    -
    12066  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12067  5760 /*atTimeCode (86400/15)*/,
    -
    12068  0 /*deltaMinutes*/,
    -
    12069  0 /*letterIndex ("")*/,
    -
    12070  },
    -
    12071  // Rule Iran 2020 only - Mar 20 24:00 1:00 -
    -
    12072  {
    -
    12073  2020 /*fromYear*/,
    -
    12074  2020 /*toYear*/,
    -
    12075  3 /*inMonth*/,
    -
    12076  0 /*onDayOfWeek*/,
    -
    12077  20 /*onDayOfMonth*/,
    -
    12078  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12079  5760 /*atTimeCode (86400/15)*/,
    -
    12080  60 /*deltaMinutes*/,
    -
    12081  0 /*letterIndex ("")*/,
    -
    12082  },
    -
    12083  // Rule Iran 2020 only - Sep 20 24:00 0 -
    -
    12084  {
    -
    12085  2020 /*fromYear*/,
    -
    12086  2020 /*toYear*/,
    -
    12087  9 /*inMonth*/,
    -
    12088  0 /*onDayOfWeek*/,
    -
    12089  20 /*onDayOfMonth*/,
    -
    12090  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12091  5760 /*atTimeCode (86400/15)*/,
    -
    12092  0 /*deltaMinutes*/,
    -
    12093  0 /*letterIndex ("")*/,
    -
    12094  },
    -
    12095  // Rule Iran 2021 2022 - Mar 21 24:00 1:00 -
    -
    12096  {
    -
    12097  2021 /*fromYear*/,
    -
    12098  2022 /*toYear*/,
    -
    12099  3 /*inMonth*/,
    -
    12100  0 /*onDayOfWeek*/,
    -
    12101  21 /*onDayOfMonth*/,
    -
    12102  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12103  5760 /*atTimeCode (86400/15)*/,
    -
    12104  60 /*deltaMinutes*/,
    -
    12105  0 /*letterIndex ("")*/,
    -
    12106  },
    -
    12107  // Rule Iran 2021 2022 - Sep 21 24:00 0 -
    -
    12108  {
    -
    12109  2021 /*fromYear*/,
    -
    12110  2022 /*toYear*/,
    -
    12111  9 /*inMonth*/,
    -
    12112  0 /*onDayOfWeek*/,
    -
    12113  21 /*onDayOfMonth*/,
    -
    12114  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12115  5760 /*atTimeCode (86400/15)*/,
    -
    12116  0 /*deltaMinutes*/,
    -
    12117  0 /*letterIndex ("")*/,
    -
    12118  },
    -
    12119 
    -
    12120 };
    -
    12121 
    -
    12122 const complete::Info::ZonePolicy kZonePolicyIran ACE_TIME_PROGMEM = {
    -
    12123  kZoneRulesIran /*rules*/,
    -
    12124  41 /*numRules*/,
    -
    12125 };
    -
    12126 
    -
    12127 //---------------------------------------------------------------------------
    -
    12128 // Policy name: Iraq
    -
    12129 // Rules: 9
    -
    12130 //---------------------------------------------------------------------------
    -
    12131 
    -
    12132 static const complete::Info::ZoneRule kZoneRulesIraq[] ACE_TIME_PROGMEM = {
    -
    12133  // Anchor: Rule Iraq 1982 1984 - Oct 1 0:00 0 -
    -
    12134  {
    -
    12135  -32767 /*fromYear*/,
    -
    12136  -32767 /*toYear*/,
    -
    12137  1 /*inMonth*/,
    -
    12138  0 /*onDayOfWeek*/,
    -
    12139  1 /*onDayOfMonth*/,
    -
    12140  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12141  0 /*atTimeCode (0/15)*/,
    -
    12142  0 /*deltaMinutes*/,
    -
    12143  0 /*letterIndex ("")*/,
    -
    12144  },
    -
    12145  // Rule Iraq 1982 only - May 1 0:00 1:00 -
    -
    12146  {
    -
    12147  1982 /*fromYear*/,
    -
    12148  1982 /*toYear*/,
    -
    12149  5 /*inMonth*/,
    -
    12150  0 /*onDayOfWeek*/,
    -
    12151  1 /*onDayOfMonth*/,
    -
    12152  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12153  0 /*atTimeCode (0/15)*/,
    -
    12154  60 /*deltaMinutes*/,
    -
    12155  0 /*letterIndex ("")*/,
    -
    12156  },
    -
    12157  // Rule Iraq 1982 1984 - Oct 1 0:00 0 -
    -
    12158  {
    -
    12159  1982 /*fromYear*/,
    -
    12160  1984 /*toYear*/,
    -
    12161  10 /*inMonth*/,
    -
    12162  0 /*onDayOfWeek*/,
    -
    12163  1 /*onDayOfMonth*/,
    -
    12164  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12165  0 /*atTimeCode (0/15)*/,
    -
    12166  0 /*deltaMinutes*/,
    -
    12167  0 /*letterIndex ("")*/,
    -
    12168  },
    -
    12169  // Rule Iraq 1983 only - Mar 31 0:00 1:00 -
    -
    12170  {
    -
    12171  1983 /*fromYear*/,
    -
    12172  1983 /*toYear*/,
    -
    12173  3 /*inMonth*/,
    -
    12174  0 /*onDayOfWeek*/,
    -
    12175  31 /*onDayOfMonth*/,
    -
    12176  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12177  0 /*atTimeCode (0/15)*/,
    -
    12178  60 /*deltaMinutes*/,
    -
    12179  0 /*letterIndex ("")*/,
    -
    12180  },
    -
    12181  // Rule Iraq 1984 1985 - Apr 1 0:00 1:00 -
    -
    12182  {
    -
    12183  1984 /*fromYear*/,
    -
    12184  1985 /*toYear*/,
    -
    12185  4 /*inMonth*/,
    -
    12186  0 /*onDayOfWeek*/,
    -
    12187  1 /*onDayOfMonth*/,
    -
    12188  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12189  0 /*atTimeCode (0/15)*/,
    -
    12190  60 /*deltaMinutes*/,
    -
    12191  0 /*letterIndex ("")*/,
    -
    12192  },
    -
    12193  // Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 -
    -
    12194  {
    -
    12195  1985 /*fromYear*/,
    -
    12196  1990 /*toYear*/,
    -
    12197  9 /*inMonth*/,
    -
    12198  7 /*onDayOfWeek*/,
    -
    12199  0 /*onDayOfMonth*/,
    -
    12200  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12201  240 /*atTimeCode (3600/15)*/,
    -
    12202  0 /*deltaMinutes*/,
    -
    12203  0 /*letterIndex ("")*/,
    -
    12204  },
    -
    12205  // Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 -
    -
    12206  {
    -
    12207  1986 /*fromYear*/,
    -
    12208  1990 /*toYear*/,
    -
    12209  3 /*inMonth*/,
    -
    12210  7 /*onDayOfWeek*/,
    -
    12211  0 /*onDayOfMonth*/,
    -
    12212  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12213  240 /*atTimeCode (3600/15)*/,
    -
    12214  60 /*deltaMinutes*/,
    -
    12215  0 /*letterIndex ("")*/,
    -
    12216  },
    -
    12217  // Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 -
    -
    12218  {
    -
    12219  1991 /*fromYear*/,
    -
    12220  2007 /*toYear*/,
    -
    12221  4 /*inMonth*/,
    -
    12222  0 /*onDayOfWeek*/,
    -
    12223  1 /*onDayOfMonth*/,
    -
    12224  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12225  720 /*atTimeCode (10800/15)*/,
    -
    12226  60 /*deltaMinutes*/,
    -
    12227  0 /*letterIndex ("")*/,
    -
    12228  },
    -
    12229  // Rule Iraq 1991 2007 - Oct 1 3:00s 0 -
    -
    12230  {
    -
    12231  1991 /*fromYear*/,
    -
    12232  2007 /*toYear*/,
    -
    12233  10 /*inMonth*/,
    -
    12234  0 /*onDayOfWeek*/,
    -
    12235  1 /*onDayOfMonth*/,
    -
    12236  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12237  720 /*atTimeCode (10800/15)*/,
    -
    12238  0 /*deltaMinutes*/,
    -
    12239  0 /*letterIndex ("")*/,
    -
    12240  },
    -
    12241 
    -
    12242 };
    -
    12243 
    -
    12244 const complete::Info::ZonePolicy kZonePolicyIraq ACE_TIME_PROGMEM = {
    -
    12245  kZoneRulesIraq /*rules*/,
    -
    12246  9 /*numRules*/,
    -
    12247 };
    -
    12248 
    -
    12249 //---------------------------------------------------------------------------
    -
    12250 // Policy name: Italy
    -
    12251 // Rules: 42
    -
    12252 //---------------------------------------------------------------------------
    -
    12253 
    -
    12254 static const complete::Info::ZoneRule kZoneRulesItaly[] ACE_TIME_PROGMEM = {
    -
    12255  // Anchor: Rule Italy 1916 1917 - Sep 30 24:00 0 -
    -
    12256  {
    -
    12257  -32767 /*fromYear*/,
    -
    12258  -32767 /*toYear*/,
    -
    12259  1 /*inMonth*/,
    -
    12260  0 /*onDayOfWeek*/,
    -
    12261  1 /*onDayOfMonth*/,
    -
    12262  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12263  0 /*atTimeCode (0/15)*/,
    -
    12264  0 /*deltaMinutes*/,
    -
    12265  0 /*letterIndex ("")*/,
    -
    12266  },
    -
    12267  // Rule Italy 1916 only - Jun 3 24:00 1:00 S
    -
    12268  {
    -
    12269  1916 /*fromYear*/,
    -
    12270  1916 /*toYear*/,
    -
    12271  6 /*inMonth*/,
    -
    12272  0 /*onDayOfWeek*/,
    -
    12273  3 /*onDayOfMonth*/,
    -
    12274  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12275  5760 /*atTimeCode (86400/15)*/,
    -
    12276  60 /*deltaMinutes*/,
    -
    12277  25 /*letterIndex ("S")*/,
    -
    12278  },
    -
    12279  // Rule Italy 1916 1917 - Sep 30 24:00 0 -
    -
    12280  {
    -
    12281  1916 /*fromYear*/,
    -
    12282  1917 /*toYear*/,
    -
    12283  9 /*inMonth*/,
    -
    12284  0 /*onDayOfWeek*/,
    -
    12285  30 /*onDayOfMonth*/,
    -
    12286  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12287  5760 /*atTimeCode (86400/15)*/,
    -
    12288  0 /*deltaMinutes*/,
    -
    12289  0 /*letterIndex ("")*/,
    -
    12290  },
    -
    12291  // Rule Italy 1917 only - Mar 31 24:00 1:00 S
    -
    12292  {
    -
    12293  1917 /*fromYear*/,
    -
    12294  1917 /*toYear*/,
    -
    12295  3 /*inMonth*/,
    -
    12296  0 /*onDayOfWeek*/,
    -
    12297  31 /*onDayOfMonth*/,
    -
    12298  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12299  5760 /*atTimeCode (86400/15)*/,
    -
    12300  60 /*deltaMinutes*/,
    -
    12301  25 /*letterIndex ("S")*/,
    -
    12302  },
    -
    12303  // Rule Italy 1918 only - Mar 9 24:00 1:00 S
    -
    12304  {
    -
    12305  1918 /*fromYear*/,
    -
    12306  1918 /*toYear*/,
    -
    12307  3 /*inMonth*/,
    -
    12308  0 /*onDayOfWeek*/,
    -
    12309  9 /*onDayOfMonth*/,
    -
    12310  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12311  5760 /*atTimeCode (86400/15)*/,
    -
    12312  60 /*deltaMinutes*/,
    -
    12313  25 /*letterIndex ("S")*/,
    -
    12314  },
    -
    12315  // Rule Italy 1918 only - Oct 6 24:00 0 -
    -
    12316  {
    -
    12317  1918 /*fromYear*/,
    -
    12318  1918 /*toYear*/,
    -
    12319  10 /*inMonth*/,
    -
    12320  0 /*onDayOfWeek*/,
    -
    12321  6 /*onDayOfMonth*/,
    -
    12322  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12323  5760 /*atTimeCode (86400/15)*/,
    -
    12324  0 /*deltaMinutes*/,
    -
    12325  0 /*letterIndex ("")*/,
    -
    12326  },
    -
    12327  // Rule Italy 1919 only - Mar 1 24:00 1:00 S
    -
    12328  {
    -
    12329  1919 /*fromYear*/,
    -
    12330  1919 /*toYear*/,
    -
    12331  3 /*inMonth*/,
    -
    12332  0 /*onDayOfWeek*/,
    -
    12333  1 /*onDayOfMonth*/,
    -
    12334  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12335  5760 /*atTimeCode (86400/15)*/,
    -
    12336  60 /*deltaMinutes*/,
    -
    12337  25 /*letterIndex ("S")*/,
    -
    12338  },
    -
    12339  // Rule Italy 1919 only - Oct 4 24:00 0 -
    -
    12340  {
    -
    12341  1919 /*fromYear*/,
    -
    12342  1919 /*toYear*/,
    -
    12343  10 /*inMonth*/,
    -
    12344  0 /*onDayOfWeek*/,
    -
    12345  4 /*onDayOfMonth*/,
    -
    12346  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12347  5760 /*atTimeCode (86400/15)*/,
    -
    12348  0 /*deltaMinutes*/,
    -
    12349  0 /*letterIndex ("")*/,
    -
    12350  },
    -
    12351  // Rule Italy 1920 only - Mar 20 24:00 1:00 S
    -
    12352  {
    -
    12353  1920 /*fromYear*/,
    -
    12354  1920 /*toYear*/,
    -
    12355  3 /*inMonth*/,
    -
    12356  0 /*onDayOfWeek*/,
    -
    12357  20 /*onDayOfMonth*/,
    -
    12358  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12359  5760 /*atTimeCode (86400/15)*/,
    -
    12360  60 /*deltaMinutes*/,
    -
    12361  25 /*letterIndex ("S")*/,
    -
    12362  },
    -
    12363  // Rule Italy 1920 only - Sep 18 24:00 0 -
    -
    12364  {
    -
    12365  1920 /*fromYear*/,
    -
    12366  1920 /*toYear*/,
    -
    12367  9 /*inMonth*/,
    -
    12368  0 /*onDayOfWeek*/,
    -
    12369  18 /*onDayOfMonth*/,
    -
    12370  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12371  5760 /*atTimeCode (86400/15)*/,
    -
    12372  0 /*deltaMinutes*/,
    -
    12373  0 /*letterIndex ("")*/,
    -
    12374  },
    -
    12375  // Rule Italy 1940 only - Jun 14 24:00 1:00 S
    -
    12376  {
    -
    12377  1940 /*fromYear*/,
    -
    12378  1940 /*toYear*/,
    -
    12379  6 /*inMonth*/,
    -
    12380  0 /*onDayOfWeek*/,
    -
    12381  14 /*onDayOfMonth*/,
    -
    12382  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12383  5760 /*atTimeCode (86400/15)*/,
    -
    12384  60 /*deltaMinutes*/,
    -
    12385  25 /*letterIndex ("S")*/,
    -
    12386  },
    -
    12387  // Rule Italy 1942 only - Nov 2 2:00s 0 -
    -
    12388  {
    -
    12389  1942 /*fromYear*/,
    -
    12390  1942 /*toYear*/,
    -
    12391  11 /*inMonth*/,
    -
    12392  0 /*onDayOfWeek*/,
    -
    12393  2 /*onDayOfMonth*/,
    -
    12394  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12395  480 /*atTimeCode (7200/15)*/,
    -
    12396  0 /*deltaMinutes*/,
    -
    12397  0 /*letterIndex ("")*/,
    -
    12398  },
    -
    12399  // Rule Italy 1943 only - Mar 29 2:00s 1:00 S
    -
    12400  {
    -
    12401  1943 /*fromYear*/,
    -
    12402  1943 /*toYear*/,
    -
    12403  3 /*inMonth*/,
    -
    12404  0 /*onDayOfWeek*/,
    -
    12405  29 /*onDayOfMonth*/,
    -
    12406  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12407  480 /*atTimeCode (7200/15)*/,
    -
    12408  60 /*deltaMinutes*/,
    -
    12409  25 /*letterIndex ("S")*/,
    -
    12410  },
    -
    12411  // Rule Italy 1943 only - Oct 4 2:00s 0 -
    -
    12412  {
    -
    12413  1943 /*fromYear*/,
    -
    12414  1943 /*toYear*/,
    -
    12415  10 /*inMonth*/,
    -
    12416  0 /*onDayOfWeek*/,
    -
    12417  4 /*onDayOfMonth*/,
    -
    12418  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12419  480 /*atTimeCode (7200/15)*/,
    -
    12420  0 /*deltaMinutes*/,
    -
    12421  0 /*letterIndex ("")*/,
    -
    12422  },
    -
    12423  // Rule Italy 1944 only - Apr 2 2:00s 1:00 S
    -
    12424  {
    -
    12425  1944 /*fromYear*/,
    -
    12426  1944 /*toYear*/,
    -
    12427  4 /*inMonth*/,
    -
    12428  0 /*onDayOfWeek*/,
    -
    12429  2 /*onDayOfMonth*/,
    -
    12430  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12431  480 /*atTimeCode (7200/15)*/,
    -
    12432  60 /*deltaMinutes*/,
    -
    12433  25 /*letterIndex ("S")*/,
    -
    12434  },
    -
    12435  // Rule Italy 1944 only - Sep 17 2:00s 0 -
    -
    12436  {
    -
    12437  1944 /*fromYear*/,
    -
    12438  1944 /*toYear*/,
    -
    12439  9 /*inMonth*/,
    -
    12440  0 /*onDayOfWeek*/,
    -
    12441  17 /*onDayOfMonth*/,
    -
    12442  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12443  480 /*atTimeCode (7200/15)*/,
    -
    12444  0 /*deltaMinutes*/,
    -
    12445  0 /*letterIndex ("")*/,
    -
    12446  },
    -
    12447  // Rule Italy 1945 only - Apr 2 2:00 1:00 S
    -
    12448  {
    -
    12449  1945 /*fromYear*/,
    -
    12450  1945 /*toYear*/,
    -
    12451  4 /*inMonth*/,
    -
    12452  0 /*onDayOfWeek*/,
    -
    12453  2 /*onDayOfMonth*/,
    -
    12454  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12455  480 /*atTimeCode (7200/15)*/,
    -
    12456  60 /*deltaMinutes*/,
    -
    12457  25 /*letterIndex ("S")*/,
    -
    12458  },
    -
    12459  // Rule Italy 1945 only - Sep 15 1:00 0 -
    -
    12460  {
    -
    12461  1945 /*fromYear*/,
    -
    12462  1945 /*toYear*/,
    -
    12463  9 /*inMonth*/,
    -
    12464  0 /*onDayOfWeek*/,
    -
    12465  15 /*onDayOfMonth*/,
    -
    12466  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12467  240 /*atTimeCode (3600/15)*/,
    -
    12468  0 /*deltaMinutes*/,
    -
    12469  0 /*letterIndex ("")*/,
    -
    12470  },
    -
    12471  // Rule Italy 1946 only - Mar 17 2:00s 1:00 S
    -
    12472  {
    -
    12473  1946 /*fromYear*/,
    -
    12474  1946 /*toYear*/,
    -
    12475  3 /*inMonth*/,
    -
    12476  0 /*onDayOfWeek*/,
    -
    12477  17 /*onDayOfMonth*/,
    -
    12478  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12479  480 /*atTimeCode (7200/15)*/,
    -
    12480  60 /*deltaMinutes*/,
    -
    12481  25 /*letterIndex ("S")*/,
    -
    12482  },
    -
    12483  // Rule Italy 1946 only - Oct 6 2:00s 0 -
    -
    12484  {
    -
    12485  1946 /*fromYear*/,
    -
    12486  1946 /*toYear*/,
    -
    12487  10 /*inMonth*/,
    -
    12488  0 /*onDayOfWeek*/,
    -
    12489  6 /*onDayOfMonth*/,
    -
    12490  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12491  480 /*atTimeCode (7200/15)*/,
    -
    12492  0 /*deltaMinutes*/,
    -
    12493  0 /*letterIndex ("")*/,
    -
    12494  },
    -
    12495  // Rule Italy 1947 only - Mar 16 0:00s 1:00 S
    -
    12496  {
    -
    12497  1947 /*fromYear*/,
    -
    12498  1947 /*toYear*/,
    -
    12499  3 /*inMonth*/,
    -
    12500  0 /*onDayOfWeek*/,
    -
    12501  16 /*onDayOfMonth*/,
    -
    12502  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12503  0 /*atTimeCode (0/15)*/,
    -
    12504  60 /*deltaMinutes*/,
    -
    12505  25 /*letterIndex ("S")*/,
    -
    12506  },
    -
    12507  // Rule Italy 1947 only - Oct 5 0:00s 0 -
    -
    12508  {
    -
    12509  1947 /*fromYear*/,
    -
    12510  1947 /*toYear*/,
    -
    12511  10 /*inMonth*/,
    -
    12512  0 /*onDayOfWeek*/,
    -
    12513  5 /*onDayOfMonth*/,
    -
    12514  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12515  0 /*atTimeCode (0/15)*/,
    -
    12516  0 /*deltaMinutes*/,
    -
    12517  0 /*letterIndex ("")*/,
    -
    12518  },
    -
    12519  // Rule Italy 1948 only - Feb 29 2:00s 1:00 S
    -
    12520  {
    -
    12521  1948 /*fromYear*/,
    -
    12522  1948 /*toYear*/,
    -
    12523  2 /*inMonth*/,
    -
    12524  0 /*onDayOfWeek*/,
    -
    12525  29 /*onDayOfMonth*/,
    -
    12526  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12527  480 /*atTimeCode (7200/15)*/,
    -
    12528  60 /*deltaMinutes*/,
    -
    12529  25 /*letterIndex ("S")*/,
    -
    12530  },
    -
    12531  // Rule Italy 1948 only - Oct 3 2:00s 0 -
    -
    12532  {
    -
    12533  1948 /*fromYear*/,
    -
    12534  1948 /*toYear*/,
    -
    12535  10 /*inMonth*/,
    -
    12536  0 /*onDayOfWeek*/,
    -
    12537  3 /*onDayOfMonth*/,
    -
    12538  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12539  480 /*atTimeCode (7200/15)*/,
    -
    12540  0 /*deltaMinutes*/,
    -
    12541  0 /*letterIndex ("")*/,
    -
    12542  },
    -
    12543  // Rule Italy 1966 1968 - May Sun>=22 0:00s 1:00 S
    -
    12544  {
    -
    12545  1966 /*fromYear*/,
    -
    12546  1968 /*toYear*/,
    -
    12547  5 /*inMonth*/,
    -
    12548  7 /*onDayOfWeek*/,
    -
    12549  22 /*onDayOfMonth*/,
    -
    12550  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12551  0 /*atTimeCode (0/15)*/,
    -
    12552  60 /*deltaMinutes*/,
    -
    12553  25 /*letterIndex ("S")*/,
    -
    12554  },
    -
    12555  // Rule Italy 1966 only - Sep 24 24:00 0 -
    -
    12556  {
    -
    12557  1966 /*fromYear*/,
    -
    12558  1966 /*toYear*/,
    -
    12559  9 /*inMonth*/,
    -
    12560  0 /*onDayOfWeek*/,
    -
    12561  24 /*onDayOfMonth*/,
    -
    12562  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12563  5760 /*atTimeCode (86400/15)*/,
    -
    12564  0 /*deltaMinutes*/,
    -
    12565  0 /*letterIndex ("")*/,
    -
    12566  },
    -
    12567  // Rule Italy 1967 1969 - Sep Sun>=22 0:00s 0 -
    -
    12568  {
    -
    12569  1967 /*fromYear*/,
    -
    12570  1969 /*toYear*/,
    -
    12571  9 /*inMonth*/,
    -
    12572  7 /*onDayOfWeek*/,
    -
    12573  22 /*onDayOfMonth*/,
    -
    12574  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12575  0 /*atTimeCode (0/15)*/,
    -
    12576  0 /*deltaMinutes*/,
    -
    12577  0 /*letterIndex ("")*/,
    -
    12578  },
    -
    12579  // Rule Italy 1969 only - Jun 1 0:00s 1:00 S
    -
    12580  {
    -
    12581  1969 /*fromYear*/,
    -
    12582  1969 /*toYear*/,
    -
    12583  6 /*inMonth*/,
    -
    12584  0 /*onDayOfWeek*/,
    -
    12585  1 /*onDayOfMonth*/,
    -
    12586  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12587  0 /*atTimeCode (0/15)*/,
    -
    12588  60 /*deltaMinutes*/,
    -
    12589  25 /*letterIndex ("S")*/,
    -
    12590  },
    -
    12591  // Rule Italy 1970 only - May 31 0:00s 1:00 S
    -
    12592  {
    -
    12593  1970 /*fromYear*/,
    -
    12594  1970 /*toYear*/,
    -
    12595  5 /*inMonth*/,
    -
    12596  0 /*onDayOfWeek*/,
    -
    12597  31 /*onDayOfMonth*/,
    -
    12598  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12599  0 /*atTimeCode (0/15)*/,
    -
    12600  60 /*deltaMinutes*/,
    -
    12601  25 /*letterIndex ("S")*/,
    -
    12602  },
    -
    12603  // Rule Italy 1970 only - Sep lastSun 0:00s 0 -
    -
    12604  {
    -
    12605  1970 /*fromYear*/,
    -
    12606  1970 /*toYear*/,
    -
    12607  9 /*inMonth*/,
    -
    12608  7 /*onDayOfWeek*/,
    -
    12609  0 /*onDayOfMonth*/,
    -
    12610  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12611  0 /*atTimeCode (0/15)*/,
    -
    12612  0 /*deltaMinutes*/,
    -
    12613  0 /*letterIndex ("")*/,
    -
    12614  },
    -
    12615  // Rule Italy 1971 1972 - May Sun>=22 0:00s 1:00 S
    -
    12616  {
    -
    12617  1971 /*fromYear*/,
    -
    12618  1972 /*toYear*/,
    -
    12619  5 /*inMonth*/,
    -
    12620  7 /*onDayOfWeek*/,
    -
    12621  22 /*onDayOfMonth*/,
    -
    12622  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12623  0 /*atTimeCode (0/15)*/,
    -
    12624  60 /*deltaMinutes*/,
    -
    12625  25 /*letterIndex ("S")*/,
    -
    12626  },
    -
    12627  // Rule Italy 1971 only - Sep lastSun 0:00s 0 -
    -
    12628  {
    -
    12629  1971 /*fromYear*/,
    -
    12630  1971 /*toYear*/,
    -
    12631  9 /*inMonth*/,
    -
    12632  7 /*onDayOfWeek*/,
    -
    12633  0 /*onDayOfMonth*/,
    -
    12634  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12635  0 /*atTimeCode (0/15)*/,
    -
    12636  0 /*deltaMinutes*/,
    -
    12637  0 /*letterIndex ("")*/,
    -
    12638  },
    -
    12639  // Rule Italy 1972 only - Oct 1 0:00s 0 -
    -
    12640  {
    -
    12641  1972 /*fromYear*/,
    -
    12642  1972 /*toYear*/,
    -
    12643  10 /*inMonth*/,
    -
    12644  0 /*onDayOfWeek*/,
    -
    12645  1 /*onDayOfMonth*/,
    -
    12646  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12647  0 /*atTimeCode (0/15)*/,
    -
    12648  0 /*deltaMinutes*/,
    -
    12649  0 /*letterIndex ("")*/,
    -
    12650  },
    -
    12651  // Rule Italy 1973 only - Jun 3 0:00s 1:00 S
    -
    12652  {
    -
    12653  1973 /*fromYear*/,
    -
    12654  1973 /*toYear*/,
    -
    12655  6 /*inMonth*/,
    -
    12656  0 /*onDayOfWeek*/,
    -
    12657  3 /*onDayOfMonth*/,
    -
    12658  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12659  0 /*atTimeCode (0/15)*/,
    -
    12660  60 /*deltaMinutes*/,
    -
    12661  25 /*letterIndex ("S")*/,
    -
    12662  },
    -
    12663  // Rule Italy 1973 1974 - Sep lastSun 0:00s 0 -
    -
    12664  {
    -
    12665  1973 /*fromYear*/,
    -
    12666  1974 /*toYear*/,
    -
    12667  9 /*inMonth*/,
    -
    12668  7 /*onDayOfWeek*/,
    -
    12669  0 /*onDayOfMonth*/,
    -
    12670  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12671  0 /*atTimeCode (0/15)*/,
    -
    12672  0 /*deltaMinutes*/,
    -
    12673  0 /*letterIndex ("")*/,
    -
    12674  },
    -
    12675  // Rule Italy 1974 only - May 26 0:00s 1:00 S
    -
    12676  {
    -
    12677  1974 /*fromYear*/,
    -
    12678  1974 /*toYear*/,
    -
    12679  5 /*inMonth*/,
    -
    12680  0 /*onDayOfWeek*/,
    -
    12681  26 /*onDayOfMonth*/,
    -
    12682  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12683  0 /*atTimeCode (0/15)*/,
    -
    12684  60 /*deltaMinutes*/,
    -
    12685  25 /*letterIndex ("S")*/,
    -
    12686  },
    -
    12687  // Rule Italy 1975 only - Jun 1 0:00s 1:00 S
    -
    12688  {
    -
    12689  1975 /*fromYear*/,
    -
    12690  1975 /*toYear*/,
    -
    12691  6 /*inMonth*/,
    -
    12692  0 /*onDayOfWeek*/,
    -
    12693  1 /*onDayOfMonth*/,
    -
    12694  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12695  0 /*atTimeCode (0/15)*/,
    -
    12696  60 /*deltaMinutes*/,
    -
    12697  25 /*letterIndex ("S")*/,
    -
    12698  },
    -
    12699  // Rule Italy 1975 1977 - Sep lastSun 0:00s 0 -
    -
    12700  {
    -
    12701  1975 /*fromYear*/,
    -
    12702  1977 /*toYear*/,
    -
    12703  9 /*inMonth*/,
    -
    12704  7 /*onDayOfWeek*/,
    -
    12705  0 /*onDayOfMonth*/,
    -
    12706  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12707  0 /*atTimeCode (0/15)*/,
    -
    12708  0 /*deltaMinutes*/,
    -
    12709  0 /*letterIndex ("")*/,
    -
    12710  },
    -
    12711  // Rule Italy 1976 only - May 30 0:00s 1:00 S
    -
    12712  {
    -
    12713  1976 /*fromYear*/,
    -
    12714  1976 /*toYear*/,
    -
    12715  5 /*inMonth*/,
    -
    12716  0 /*onDayOfWeek*/,
    -
    12717  30 /*onDayOfMonth*/,
    -
    12718  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12719  0 /*atTimeCode (0/15)*/,
    -
    12720  60 /*deltaMinutes*/,
    -
    12721  25 /*letterIndex ("S")*/,
    -
    12722  },
    -
    12723  // Rule Italy 1977 1979 - May Sun>=22 0:00s 1:00 S
    -
    12724  {
    -
    12725  1977 /*fromYear*/,
    -
    12726  1979 /*toYear*/,
    -
    12727  5 /*inMonth*/,
    -
    12728  7 /*onDayOfWeek*/,
    -
    12729  22 /*onDayOfMonth*/,
    -
    12730  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12731  0 /*atTimeCode (0/15)*/,
    -
    12732  60 /*deltaMinutes*/,
    -
    12733  25 /*letterIndex ("S")*/,
    -
    12734  },
    -
    12735  // Rule Italy 1978 only - Oct 1 0:00s 0 -
    -
    12736  {
    -
    12737  1978 /*fromYear*/,
    -
    12738  1978 /*toYear*/,
    -
    12739  10 /*inMonth*/,
    -
    12740  0 /*onDayOfWeek*/,
    -
    12741  1 /*onDayOfMonth*/,
    -
    12742  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12743  0 /*atTimeCode (0/15)*/,
    -
    12744  0 /*deltaMinutes*/,
    -
    12745  0 /*letterIndex ("")*/,
    -
    12746  },
    -
    12747  // Rule Italy 1979 only - Sep 30 0:00s 0 -
    -
    12748  {
    -
    12749  1979 /*fromYear*/,
    -
    12750  1979 /*toYear*/,
    -
    12751  9 /*inMonth*/,
    -
    12752  0 /*onDayOfWeek*/,
    -
    12753  30 /*onDayOfMonth*/,
    -
    12754  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    12755  0 /*atTimeCode (0/15)*/,
    -
    12756  0 /*deltaMinutes*/,
    -
    12757  0 /*letterIndex ("")*/,
    -
    12758  },
    -
    12759 
    -
    12760 };
    -
    12761 
    -
    12762 const complete::Info::ZonePolicy kZonePolicyItaly ACE_TIME_PROGMEM = {
    -
    12763  kZoneRulesItaly /*rules*/,
    -
    12764  42 /*numRules*/,
    -
    12765 };
    -
    12766 
    -
    12767 //---------------------------------------------------------------------------
    -
    12768 // Policy name: Japan
    -
    12769 // Rules: 5
    -
    12770 //---------------------------------------------------------------------------
    -
    12771 
    -
    12772 static const complete::Info::ZoneRule kZoneRulesJapan[] ACE_TIME_PROGMEM = {
    -
    12773  // Anchor: Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S
    -
    12774  {
    -
    12775  -32767 /*fromYear*/,
    -
    12776  -32767 /*toYear*/,
    -
    12777  1 /*inMonth*/,
    -
    12778  0 /*onDayOfWeek*/,
    -
    12779  1 /*onDayOfMonth*/,
    -
    12780  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12781  0 /*atTimeCode (0/15)*/,
    -
    12782  0 /*deltaMinutes*/,
    -
    12783  25 /*letterIndex ("S")*/,
    -
    12784  },
    -
    12785  // Rule Japan 1948 only - May Sat>=1 24:00 1:00 D
    -
    12786  {
    -
    12787  1948 /*fromYear*/,
    -
    12788  1948 /*toYear*/,
    -
    12789  5 /*inMonth*/,
    -
    12790  6 /*onDayOfWeek*/,
    -
    12791  1 /*onDayOfMonth*/,
    -
    12792  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12793  5760 /*atTimeCode (86400/15)*/,
    -
    12794  60 /*deltaMinutes*/,
    -
    12795  13 /*letterIndex ("D")*/,
    -
    12796  },
    -
    12797  // Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S
    -
    12798  {
    -
    12799  1948 /*fromYear*/,
    -
    12800  1951 /*toYear*/,
    -
    12801  9 /*inMonth*/,
    -
    12802  6 /*onDayOfWeek*/,
    -
    12803  8 /*onDayOfMonth*/,
    -
    12804  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12805  6000 /*atTimeCode (90000/15)*/,
    -
    12806  0 /*deltaMinutes*/,
    -
    12807  25 /*letterIndex ("S")*/,
    -
    12808  },
    -
    12809  // Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D
    -
    12810  {
    -
    12811  1949 /*fromYear*/,
    -
    12812  1949 /*toYear*/,
    -
    12813  4 /*inMonth*/,
    -
    12814  6 /*onDayOfWeek*/,
    -
    12815  1 /*onDayOfMonth*/,
    -
    12816  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12817  5760 /*atTimeCode (86400/15)*/,
    -
    12818  60 /*deltaMinutes*/,
    -
    12819  13 /*letterIndex ("D")*/,
    -
    12820  },
    -
    12821  // Rule Japan 1950 1951 - May Sat>=1 24:00 1:00 D
    -
    12822  {
    -
    12823  1950 /*fromYear*/,
    -
    12824  1951 /*toYear*/,
    -
    12825  5 /*inMonth*/,
    -
    12826  6 /*onDayOfWeek*/,
    -
    12827  1 /*onDayOfMonth*/,
    -
    12828  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12829  5760 /*atTimeCode (86400/15)*/,
    -
    12830  60 /*deltaMinutes*/,
    -
    12831  13 /*letterIndex ("D")*/,
    -
    12832  },
    -
    12833 
    -
    12834 };
    -
    12835 
    -
    12836 const complete::Info::ZonePolicy kZonePolicyJapan ACE_TIME_PROGMEM = {
    -
    12837  kZoneRulesJapan /*rules*/,
    -
    12838  5 /*numRules*/,
    -
    12839 };
    -
    12840 
    -
    12841 //---------------------------------------------------------------------------
    -
    12842 // Policy name: Jordan
    -
    12843 // Rules: 33
    -
    12844 //---------------------------------------------------------------------------
    -
    12845 
    -
    12846 static const complete::Info::ZoneRule kZoneRulesJordan[] ACE_TIME_PROGMEM = {
    -
    12847  // Anchor: Rule Jordan 1973 1975 - Oct 1 0:00 0 -
    -
    12848  {
    -
    12849  -32767 /*fromYear*/,
    -
    12850  -32767 /*toYear*/,
    -
    12851  1 /*inMonth*/,
    -
    12852  0 /*onDayOfWeek*/,
    -
    12853  1 /*onDayOfMonth*/,
    -
    12854  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12855  0 /*atTimeCode (0/15)*/,
    -
    12856  0 /*deltaMinutes*/,
    -
    12857  0 /*letterIndex ("")*/,
    -
    12858  },
    -
    12859  // Rule Jordan 1973 only - Jun 6 0:00 1:00 S
    -
    12860  {
    -
    12861  1973 /*fromYear*/,
    -
    12862  1973 /*toYear*/,
    -
    12863  6 /*inMonth*/,
    -
    12864  0 /*onDayOfWeek*/,
    -
    12865  6 /*onDayOfMonth*/,
    -
    12866  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12867  0 /*atTimeCode (0/15)*/,
    -
    12868  60 /*deltaMinutes*/,
    -
    12869  25 /*letterIndex ("S")*/,
    -
    12870  },
    -
    12871  // Rule Jordan 1973 1975 - Oct 1 0:00 0 -
    -
    12872  {
    -
    12873  1973 /*fromYear*/,
    -
    12874  1975 /*toYear*/,
    -
    12875  10 /*inMonth*/,
    -
    12876  0 /*onDayOfWeek*/,
    -
    12877  1 /*onDayOfMonth*/,
    -
    12878  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12879  0 /*atTimeCode (0/15)*/,
    -
    12880  0 /*deltaMinutes*/,
    -
    12881  0 /*letterIndex ("")*/,
    -
    12882  },
    -
    12883  // Rule Jordan 1974 1977 - May 1 0:00 1:00 S
    -
    12884  {
    -
    12885  1974 /*fromYear*/,
    -
    12886  1977 /*toYear*/,
    -
    12887  5 /*inMonth*/,
    -
    12888  0 /*onDayOfWeek*/,
    -
    12889  1 /*onDayOfMonth*/,
    -
    12890  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12891  0 /*atTimeCode (0/15)*/,
    -
    12892  60 /*deltaMinutes*/,
    -
    12893  25 /*letterIndex ("S")*/,
    -
    12894  },
    -
    12895  // Rule Jordan 1976 only - Nov 1 0:00 0 -
    -
    12896  {
    -
    12897  1976 /*fromYear*/,
    -
    12898  1976 /*toYear*/,
    -
    12899  11 /*inMonth*/,
    -
    12900  0 /*onDayOfWeek*/,
    -
    12901  1 /*onDayOfMonth*/,
    -
    12902  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12903  0 /*atTimeCode (0/15)*/,
    -
    12904  0 /*deltaMinutes*/,
    -
    12905  0 /*letterIndex ("")*/,
    -
    12906  },
    -
    12907  // Rule Jordan 1977 only - Oct 1 0:00 0 -
    -
    12908  {
    -
    12909  1977 /*fromYear*/,
    -
    12910  1977 /*toYear*/,
    -
    12911  10 /*inMonth*/,
    -
    12912  0 /*onDayOfWeek*/,
    -
    12913  1 /*onDayOfMonth*/,
    -
    12914  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12915  0 /*atTimeCode (0/15)*/,
    -
    12916  0 /*deltaMinutes*/,
    -
    12917  0 /*letterIndex ("")*/,
    -
    12918  },
    -
    12919  // Rule Jordan 1978 only - Apr 30 0:00 1:00 S
    -
    12920  {
    -
    12921  1978 /*fromYear*/,
    -
    12922  1978 /*toYear*/,
    -
    12923  4 /*inMonth*/,
    -
    12924  0 /*onDayOfWeek*/,
    -
    12925  30 /*onDayOfMonth*/,
    -
    12926  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12927  0 /*atTimeCode (0/15)*/,
    -
    12928  60 /*deltaMinutes*/,
    -
    12929  25 /*letterIndex ("S")*/,
    -
    12930  },
    -
    12931  // Rule Jordan 1978 only - Sep 30 0:00 0 -
    -
    12932  {
    -
    12933  1978 /*fromYear*/,
    -
    12934  1978 /*toYear*/,
    -
    12935  9 /*inMonth*/,
    -
    12936  0 /*onDayOfWeek*/,
    -
    12937  30 /*onDayOfMonth*/,
    -
    12938  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12939  0 /*atTimeCode (0/15)*/,
    -
    12940  0 /*deltaMinutes*/,
    -
    12941  0 /*letterIndex ("")*/,
    -
    12942  },
    -
    12943  // Rule Jordan 1985 only - Apr 1 0:00 1:00 S
    -
    12944  {
    -
    12945  1985 /*fromYear*/,
    -
    12946  1985 /*toYear*/,
    -
    12947  4 /*inMonth*/,
    -
    12948  0 /*onDayOfWeek*/,
    -
    12949  1 /*onDayOfMonth*/,
    -
    12950  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12951  0 /*atTimeCode (0/15)*/,
    -
    12952  60 /*deltaMinutes*/,
    -
    12953  25 /*letterIndex ("S")*/,
    -
    12954  },
    -
    12955  // Rule Jordan 1985 only - Oct 1 0:00 0 -
    -
    12956  {
    -
    12957  1985 /*fromYear*/,
    -
    12958  1985 /*toYear*/,
    -
    12959  10 /*inMonth*/,
    -
    12960  0 /*onDayOfWeek*/,
    -
    12961  1 /*onDayOfMonth*/,
    -
    12962  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12963  0 /*atTimeCode (0/15)*/,
    -
    12964  0 /*deltaMinutes*/,
    -
    12965  0 /*letterIndex ("")*/,
    -
    12966  },
    -
    12967  // Rule Jordan 1986 1988 - Apr Fri>=1 0:00 1:00 S
    -
    12968  {
    -
    12969  1986 /*fromYear*/,
    -
    12970  1988 /*toYear*/,
    -
    12971  4 /*inMonth*/,
    -
    12972  5 /*onDayOfWeek*/,
    -
    12973  1 /*onDayOfMonth*/,
    -
    12974  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12975  0 /*atTimeCode (0/15)*/,
    -
    12976  60 /*deltaMinutes*/,
    -
    12977  25 /*letterIndex ("S")*/,
    -
    12978  },
    -
    12979  // Rule Jordan 1986 1990 - Oct Fri>=1 0:00 0 -
    -
    12980  {
    -
    12981  1986 /*fromYear*/,
    -
    12982  1990 /*toYear*/,
    -
    12983  10 /*inMonth*/,
    -
    12984  5 /*onDayOfWeek*/,
    -
    12985  1 /*onDayOfMonth*/,
    -
    12986  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12987  0 /*atTimeCode (0/15)*/,
    -
    12988  0 /*deltaMinutes*/,
    -
    12989  0 /*letterIndex ("")*/,
    -
    12990  },
    -
    12991  // Rule Jordan 1989 only - May 8 0:00 1:00 S
    -
    12992  {
    -
    12993  1989 /*fromYear*/,
    -
    12994  1989 /*toYear*/,
    -
    12995  5 /*inMonth*/,
    -
    12996  0 /*onDayOfWeek*/,
    -
    12997  8 /*onDayOfMonth*/,
    -
    12998  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    12999  0 /*atTimeCode (0/15)*/,
    -
    13000  60 /*deltaMinutes*/,
    -
    13001  25 /*letterIndex ("S")*/,
    -
    13002  },
    -
    13003  // Rule Jordan 1990 only - Apr 27 0:00 1:00 S
    -
    13004  {
    -
    13005  1990 /*fromYear*/,
    -
    13006  1990 /*toYear*/,
    -
    13007  4 /*inMonth*/,
    -
    13008  0 /*onDayOfWeek*/,
    -
    13009  27 /*onDayOfMonth*/,
    -
    13010  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13011  0 /*atTimeCode (0/15)*/,
    -
    13012  60 /*deltaMinutes*/,
    -
    13013  25 /*letterIndex ("S")*/,
    -
    13014  },
    -
    13015  // Rule Jordan 1991 only - Apr 17 0:00 1:00 S
    -
    13016  {
    -
    13017  1991 /*fromYear*/,
    -
    13018  1991 /*toYear*/,
    -
    13019  4 /*inMonth*/,
    -
    13020  0 /*onDayOfWeek*/,
    -
    13021  17 /*onDayOfMonth*/,
    -
    13022  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13023  0 /*atTimeCode (0/15)*/,
    -
    13024  60 /*deltaMinutes*/,
    -
    13025  25 /*letterIndex ("S")*/,
    -
    13026  },
    -
    13027  // Rule Jordan 1991 only - Sep 27 0:00 0 -
    -
    13028  {
    -
    13029  1991 /*fromYear*/,
    -
    13030  1991 /*toYear*/,
    -
    13031  9 /*inMonth*/,
    -
    13032  0 /*onDayOfWeek*/,
    -
    13033  27 /*onDayOfMonth*/,
    -
    13034  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13035  0 /*atTimeCode (0/15)*/,
    -
    13036  0 /*deltaMinutes*/,
    -
    13037  0 /*letterIndex ("")*/,
    -
    13038  },
    -
    13039  // Rule Jordan 1992 only - Apr 10 0:00 1:00 S
    -
    13040  {
    -
    13041  1992 /*fromYear*/,
    -
    13042  1992 /*toYear*/,
    -
    13043  4 /*inMonth*/,
    -
    13044  0 /*onDayOfWeek*/,
    -
    13045  10 /*onDayOfMonth*/,
    -
    13046  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13047  0 /*atTimeCode (0/15)*/,
    -
    13048  60 /*deltaMinutes*/,
    -
    13049  25 /*letterIndex ("S")*/,
    -
    13050  },
    -
    13051  // Rule Jordan 1992 1993 - Oct Fri>=1 0:00 0 -
    -
    13052  {
    -
    13053  1992 /*fromYear*/,
    -
    13054  1993 /*toYear*/,
    -
    13055  10 /*inMonth*/,
    -
    13056  5 /*onDayOfWeek*/,
    -
    13057  1 /*onDayOfMonth*/,
    -
    13058  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13059  0 /*atTimeCode (0/15)*/,
    -
    13060  0 /*deltaMinutes*/,
    -
    13061  0 /*letterIndex ("")*/,
    -
    13062  },
    -
    13063  // Rule Jordan 1993 1998 - Apr Fri>=1 0:00 1:00 S
    -
    13064  {
    -
    13065  1993 /*fromYear*/,
    -
    13066  1998 /*toYear*/,
    -
    13067  4 /*inMonth*/,
    -
    13068  5 /*onDayOfWeek*/,
    -
    13069  1 /*onDayOfMonth*/,
    -
    13070  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13071  0 /*atTimeCode (0/15)*/,
    -
    13072  60 /*deltaMinutes*/,
    -
    13073  25 /*letterIndex ("S")*/,
    -
    13074  },
    -
    13075  // Rule Jordan 1994 only - Sep Fri>=15 0:00 0 -
    -
    13076  {
    -
    13077  1994 /*fromYear*/,
    -
    13078  1994 /*toYear*/,
    -
    13079  9 /*inMonth*/,
    -
    13080  5 /*onDayOfWeek*/,
    -
    13081  15 /*onDayOfMonth*/,
    -
    13082  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13083  0 /*atTimeCode (0/15)*/,
    -
    13084  0 /*deltaMinutes*/,
    -
    13085  0 /*letterIndex ("")*/,
    -
    13086  },
    -
    13087  // Rule Jordan 1995 1998 - Sep Fri>=15 0:00s 0 -
    -
    13088  {
    -
    13089  1995 /*fromYear*/,
    -
    13090  1998 /*toYear*/,
    -
    13091  9 /*inMonth*/,
    -
    13092  5 /*onDayOfWeek*/,
    -
    13093  15 /*onDayOfMonth*/,
    -
    13094  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13095  0 /*atTimeCode (0/15)*/,
    -
    13096  0 /*deltaMinutes*/,
    -
    13097  0 /*letterIndex ("")*/,
    -
    13098  },
    -
    13099  // Rule Jordan 1999 only - Jul 1 0:00s 1:00 S
    -
    13100  {
    -
    13101  1999 /*fromYear*/,
    -
    13102  1999 /*toYear*/,
    -
    13103  7 /*inMonth*/,
    -
    13104  0 /*onDayOfWeek*/,
    -
    13105  1 /*onDayOfMonth*/,
    -
    13106  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13107  0 /*atTimeCode (0/15)*/,
    -
    13108  60 /*deltaMinutes*/,
    -
    13109  25 /*letterIndex ("S")*/,
    -
    13110  },
    -
    13111  // Rule Jordan 1999 2002 - Sep lastFri 0:00s 0 -
    -
    13112  {
    -
    13113  1999 /*fromYear*/,
    -
    13114  2002 /*toYear*/,
    -
    13115  9 /*inMonth*/,
    -
    13116  5 /*onDayOfWeek*/,
    -
    13117  0 /*onDayOfMonth*/,
    -
    13118  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13119  0 /*atTimeCode (0/15)*/,
    -
    13120  0 /*deltaMinutes*/,
    -
    13121  0 /*letterIndex ("")*/,
    -
    13122  },
    -
    13123  // Rule Jordan 2000 2001 - Mar lastThu 0:00s 1:00 S
    -
    13124  {
    -
    13125  2000 /*fromYear*/,
    -
    13126  2001 /*toYear*/,
    -
    13127  3 /*inMonth*/,
    -
    13128  4 /*onDayOfWeek*/,
    -
    13129  0 /*onDayOfMonth*/,
    -
    13130  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13131  0 /*atTimeCode (0/15)*/,
    -
    13132  60 /*deltaMinutes*/,
    -
    13133  25 /*letterIndex ("S")*/,
    -
    13134  },
    -
    13135  // Rule Jordan 2002 2012 - Mar lastThu 24:00 1:00 S
    -
    13136  {
    -
    13137  2002 /*fromYear*/,
    -
    13138  2012 /*toYear*/,
    -
    13139  3 /*inMonth*/,
    -
    13140  4 /*onDayOfWeek*/,
    -
    13141  0 /*onDayOfMonth*/,
    -
    13142  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13143  5760 /*atTimeCode (86400/15)*/,
    -
    13144  60 /*deltaMinutes*/,
    -
    13145  25 /*letterIndex ("S")*/,
    -
    13146  },
    -
    13147  // Rule Jordan 2003 only - Oct 24 0:00s 0 -
    -
    13148  {
    -
    13149  2003 /*fromYear*/,
    -
    13150  2003 /*toYear*/,
    -
    13151  10 /*inMonth*/,
    -
    13152  0 /*onDayOfWeek*/,
    -
    13153  24 /*onDayOfMonth*/,
    -
    13154  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13155  0 /*atTimeCode (0/15)*/,
    -
    13156  0 /*deltaMinutes*/,
    -
    13157  0 /*letterIndex ("")*/,
    -
    13158  },
    -
    13159  // Rule Jordan 2004 only - Oct 15 0:00s 0 -
    -
    13160  {
    -
    13161  2004 /*fromYear*/,
    -
    13162  2004 /*toYear*/,
    -
    13163  10 /*inMonth*/,
    -
    13164  0 /*onDayOfWeek*/,
    -
    13165  15 /*onDayOfMonth*/,
    -
    13166  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13167  0 /*atTimeCode (0/15)*/,
    -
    13168  0 /*deltaMinutes*/,
    -
    13169  0 /*letterIndex ("")*/,
    -
    13170  },
    -
    13171  // Rule Jordan 2005 only - Sep lastFri 0:00s 0 -
    -
    13172  {
    -
    13173  2005 /*fromYear*/,
    -
    13174  2005 /*toYear*/,
    -
    13175  9 /*inMonth*/,
    -
    13176  5 /*onDayOfWeek*/,
    -
    13177  0 /*onDayOfMonth*/,
    -
    13178  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13179  0 /*atTimeCode (0/15)*/,
    -
    13180  0 /*deltaMinutes*/,
    -
    13181  0 /*letterIndex ("")*/,
    -
    13182  },
    -
    13183  // Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 -
    -
    13184  {
    -
    13185  2006 /*fromYear*/,
    -
    13186  2011 /*toYear*/,
    -
    13187  10 /*inMonth*/,
    -
    13188  5 /*onDayOfWeek*/,
    -
    13189  0 /*onDayOfMonth*/,
    -
    13190  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13191  0 /*atTimeCode (0/15)*/,
    -
    13192  0 /*deltaMinutes*/,
    -
    13193  0 /*letterIndex ("")*/,
    -
    13194  },
    -
    13195  // Rule Jordan 2013 only - Dec 20 0:00 0 -
    -
    13196  {
    -
    13197  2013 /*fromYear*/,
    -
    13198  2013 /*toYear*/,
    -
    13199  12 /*inMonth*/,
    -
    13200  0 /*onDayOfWeek*/,
    -
    13201  20 /*onDayOfMonth*/,
    -
    13202  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13203  0 /*atTimeCode (0/15)*/,
    -
    13204  0 /*deltaMinutes*/,
    -
    13205  0 /*letterIndex ("")*/,
    -
    13206  },
    -
    13207  // Rule Jordan 2014 2021 - Mar lastThu 24:00 1:00 S
    -
    13208  {
    -
    13209  2014 /*fromYear*/,
    -
    13210  2021 /*toYear*/,
    -
    13211  3 /*inMonth*/,
    -
    13212  4 /*onDayOfWeek*/,
    -
    13213  0 /*onDayOfMonth*/,
    -
    13214  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13215  5760 /*atTimeCode (86400/15)*/,
    -
    13216  60 /*deltaMinutes*/,
    -
    13217  25 /*letterIndex ("S")*/,
    -
    13218  },
    -
    13219  // Rule Jordan 2014 2022 - Oct lastFri 0:00s 0 -
    -
    13220  {
    -
    13221  2014 /*fromYear*/,
    -
    13222  2022 /*toYear*/,
    -
    13223  10 /*inMonth*/,
    -
    13224  5 /*onDayOfWeek*/,
    -
    13225  0 /*onDayOfMonth*/,
    -
    13226  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13227  0 /*atTimeCode (0/15)*/,
    -
    13228  0 /*deltaMinutes*/,
    -
    13229  0 /*letterIndex ("")*/,
    -
    13230  },
    -
    13231  // Rule Jordan 2022 only - Feb lastThu 24:00 1:00 S
    -
    13232  {
    -
    13233  2022 /*fromYear*/,
    -
    13234  2022 /*toYear*/,
    -
    13235  2 /*inMonth*/,
    -
    13236  4 /*onDayOfWeek*/,
    -
    13237  0 /*onDayOfMonth*/,
    -
    13238  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13239  5760 /*atTimeCode (86400/15)*/,
    -
    13240  60 /*deltaMinutes*/,
    -
    13241  25 /*letterIndex ("S")*/,
    -
    13242  },
    -
    13243 
    -
    13244 };
    -
    13245 
    -
    13246 const complete::Info::ZonePolicy kZonePolicyJordan ACE_TIME_PROGMEM = {
    -
    13247  kZoneRulesJordan /*rules*/,
    -
    13248  33 /*numRules*/,
    -
    13249 };
    -
    13250 
    -
    13251 //---------------------------------------------------------------------------
    -
    13252 // Policy name: Kyrgyz
    -
    13253 // Rules: 5
    -
    13254 //---------------------------------------------------------------------------
    -
    13255 
    -
    13256 static const complete::Info::ZoneRule kZoneRulesKyrgyz[] ACE_TIME_PROGMEM = {
    -
    13257  // Anchor: Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
    -
    13258  {
    -
    13259  -32767 /*fromYear*/,
    -
    13260  -32767 /*toYear*/,
    -
    13261  1 /*inMonth*/,
    -
    13262  0 /*onDayOfWeek*/,
    -
    13263  1 /*onDayOfMonth*/,
    -
    13264  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13265  0 /*atTimeCode (0/15)*/,
    -
    13266  0 /*deltaMinutes*/,
    -
    13267  0 /*letterIndex ("")*/,
    -
    13268  },
    -
    13269  // Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 -
    -
    13270  {
    -
    13271  1992 /*fromYear*/,
    -
    13272  1996 /*toYear*/,
    -
    13273  4 /*inMonth*/,
    -
    13274  7 /*onDayOfWeek*/,
    -
    13275  7 /*onDayOfMonth*/,
    -
    13276  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13277  0 /*atTimeCode (0/15)*/,
    -
    13278  60 /*deltaMinutes*/,
    -
    13279  0 /*letterIndex ("")*/,
    -
    13280  },
    -
    13281  // Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
    -
    13282  {
    -
    13283  1992 /*fromYear*/,
    -
    13284  1996 /*toYear*/,
    -
    13285  9 /*inMonth*/,
    -
    13286  7 /*onDayOfWeek*/,
    -
    13287  0 /*onDayOfMonth*/,
    -
    13288  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13289  0 /*atTimeCode (0/15)*/,
    -
    13290  0 /*deltaMinutes*/,
    -
    13291  0 /*letterIndex ("")*/,
    -
    13292  },
    -
    13293  // Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 -
    -
    13294  {
    -
    13295  1997 /*fromYear*/,
    -
    13296  2005 /*toYear*/,
    -
    13297  3 /*inMonth*/,
    -
    13298  7 /*onDayOfWeek*/,
    -
    13299  0 /*onDayOfMonth*/,
    -
    13300  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13301  600 /*atTimeCode (9000/15)*/,
    -
    13302  60 /*deltaMinutes*/,
    -
    13303  0 /*letterIndex ("")*/,
    -
    13304  },
    -
    13305  // Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 -
    -
    13306  {
    -
    13307  1997 /*fromYear*/,
    -
    13308  2004 /*toYear*/,
    -
    13309  10 /*inMonth*/,
    -
    13310  7 /*onDayOfWeek*/,
    -
    13311  0 /*onDayOfMonth*/,
    -
    13312  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13313  600 /*atTimeCode (9000/15)*/,
    -
    13314  0 /*deltaMinutes*/,
    -
    13315  0 /*letterIndex ("")*/,
    -
    13316  },
    -
    13317 
    -
    13318 };
    -
    13319 
    -
    13320 const complete::Info::ZonePolicy kZonePolicyKyrgyz ACE_TIME_PROGMEM = {
    -
    13321  kZoneRulesKyrgyz /*rules*/,
    -
    13322  5 /*numRules*/,
    -
    13323 };
    -
    13324 
    -
    13325 //---------------------------------------------------------------------------
    -
    13326 // Policy name: LH
    -
    13327 // Rules: 15
    -
    13328 //---------------------------------------------------------------------------
    -
    13329 
    -
    13330 static const complete::Info::ZoneRule kZoneRulesLH[] ACE_TIME_PROGMEM = {
    -
    13331  // Anchor: Rule LH 1982 1985 - Mar Sun>=1 2:00 0 -
    -
    13332  {
    -
    13333  -32767 /*fromYear*/,
    -
    13334  -32767 /*toYear*/,
    -
    13335  1 /*inMonth*/,
    -
    13336  0 /*onDayOfWeek*/,
    -
    13337  1 /*onDayOfMonth*/,
    -
    13338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13339  0 /*atTimeCode (0/15)*/,
    -
    13340  0 /*deltaMinutes*/,
    -
    13341  0 /*letterIndex ("")*/,
    -
    13342  },
    -
    13343  // Rule LH 1981 1984 - Oct lastSun 2:00 1:00 -
    -
    13344  {
    -
    13345  1981 /*fromYear*/,
    -
    13346  1984 /*toYear*/,
    -
    13347  10 /*inMonth*/,
    -
    13348  7 /*onDayOfWeek*/,
    -
    13349  0 /*onDayOfMonth*/,
    -
    13350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13351  480 /*atTimeCode (7200/15)*/,
    -
    13352  60 /*deltaMinutes*/,
    -
    13353  0 /*letterIndex ("")*/,
    -
    13354  },
    -
    13355  // Rule LH 1982 1985 - Mar Sun>=1 2:00 0 -
    -
    13356  {
    -
    13357  1982 /*fromYear*/,
    -
    13358  1985 /*toYear*/,
    -
    13359  3 /*inMonth*/,
    -
    13360  7 /*onDayOfWeek*/,
    -
    13361  1 /*onDayOfMonth*/,
    -
    13362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13363  480 /*atTimeCode (7200/15)*/,
    -
    13364  0 /*deltaMinutes*/,
    -
    13365  0 /*letterIndex ("")*/,
    -
    13366  },
    -
    13367  // Rule LH 1985 only - Oct lastSun 2:00 0:30 -
    -
    13368  {
    -
    13369  1985 /*fromYear*/,
    -
    13370  1985 /*toYear*/,
    -
    13371  10 /*inMonth*/,
    -
    13372  7 /*onDayOfWeek*/,
    -
    13373  0 /*onDayOfMonth*/,
    -
    13374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13375  480 /*atTimeCode (7200/15)*/,
    -
    13376  30 /*deltaMinutes*/,
    -
    13377  0 /*letterIndex ("")*/,
    -
    13378  },
    -
    13379  // Rule LH 1986 1989 - Mar Sun>=15 2:00 0 -
    -
    13380  {
    -
    13381  1986 /*fromYear*/,
    -
    13382  1989 /*toYear*/,
    -
    13383  3 /*inMonth*/,
    -
    13384  7 /*onDayOfWeek*/,
    -
    13385  15 /*onDayOfMonth*/,
    -
    13386  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13387  480 /*atTimeCode (7200/15)*/,
    -
    13388  0 /*deltaMinutes*/,
    -
    13389  0 /*letterIndex ("")*/,
    -
    13390  },
    -
    13391  // Rule LH 1986 only - Oct 19 2:00 0:30 -
    -
    13392  {
    -
    13393  1986 /*fromYear*/,
    -
    13394  1986 /*toYear*/,
    -
    13395  10 /*inMonth*/,
    -
    13396  0 /*onDayOfWeek*/,
    -
    13397  19 /*onDayOfMonth*/,
    -
    13398  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13399  480 /*atTimeCode (7200/15)*/,
    -
    13400  30 /*deltaMinutes*/,
    -
    13401  0 /*letterIndex ("")*/,
    -
    13402  },
    -
    13403  // Rule LH 1987 1999 - Oct lastSun 2:00 0:30 -
    -
    13404  {
    -
    13405  1987 /*fromYear*/,
    -
    13406  1999 /*toYear*/,
    -
    13407  10 /*inMonth*/,
    -
    13408  7 /*onDayOfWeek*/,
    -
    13409  0 /*onDayOfMonth*/,
    -
    13410  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13411  480 /*atTimeCode (7200/15)*/,
    -
    13412  30 /*deltaMinutes*/,
    -
    13413  0 /*letterIndex ("")*/,
    -
    13414  },
    -
    13415  // Rule LH 1990 1995 - Mar Sun>=1 2:00 0 -
    -
    13416  {
    -
    13417  1990 /*fromYear*/,
    -
    13418  1995 /*toYear*/,
    -
    13419  3 /*inMonth*/,
    -
    13420  7 /*onDayOfWeek*/,
    -
    13421  1 /*onDayOfMonth*/,
    -
    13422  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13423  480 /*atTimeCode (7200/15)*/,
    -
    13424  0 /*deltaMinutes*/,
    -
    13425  0 /*letterIndex ("")*/,
    -
    13426  },
    -
    13427  // Rule LH 1996 2005 - Mar lastSun 2:00 0 -
    -
    13428  {
    -
    13429  1996 /*fromYear*/,
    -
    13430  2005 /*toYear*/,
    -
    13431  3 /*inMonth*/,
    -
    13432  7 /*onDayOfWeek*/,
    -
    13433  0 /*onDayOfMonth*/,
    -
    13434  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13435  480 /*atTimeCode (7200/15)*/,
    -
    13436  0 /*deltaMinutes*/,
    -
    13437  0 /*letterIndex ("")*/,
    -
    13438  },
    -
    13439  // Rule LH 2000 only - Aug lastSun 2:00 0:30 -
    -
    13440  {
    -
    13441  2000 /*fromYear*/,
    -
    13442  2000 /*toYear*/,
    -
    13443  8 /*inMonth*/,
    -
    13444  7 /*onDayOfWeek*/,
    -
    13445  0 /*onDayOfMonth*/,
    -
    13446  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13447  480 /*atTimeCode (7200/15)*/,
    -
    13448  30 /*deltaMinutes*/,
    -
    13449  0 /*letterIndex ("")*/,
    -
    13450  },
    -
    13451  // Rule LH 2001 2007 - Oct lastSun 2:00 0:30 -
    -
    13452  {
    -
    13453  2001 /*fromYear*/,
    -
    13454  2007 /*toYear*/,
    -
    13455  10 /*inMonth*/,
    -
    13456  7 /*onDayOfWeek*/,
    -
    13457  0 /*onDayOfMonth*/,
    -
    13458  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13459  480 /*atTimeCode (7200/15)*/,
    -
    13460  30 /*deltaMinutes*/,
    -
    13461  0 /*letterIndex ("")*/,
    -
    13462  },
    -
    13463  // Rule LH 2006 only - Apr Sun>=1 2:00 0 -
    -
    13464  {
    -
    13465  2006 /*fromYear*/,
    -
    13466  2006 /*toYear*/,
    -
    13467  4 /*inMonth*/,
    -
    13468  7 /*onDayOfWeek*/,
    -
    13469  1 /*onDayOfMonth*/,
    -
    13470  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13471  480 /*atTimeCode (7200/15)*/,
    -
    13472  0 /*deltaMinutes*/,
    -
    13473  0 /*letterIndex ("")*/,
    -
    13474  },
    -
    13475  // Rule LH 2007 only - Mar lastSun 2:00 0 -
    -
    13476  {
    -
    13477  2007 /*fromYear*/,
    -
    13478  2007 /*toYear*/,
    -
    13479  3 /*inMonth*/,
    -
    13480  7 /*onDayOfWeek*/,
    -
    13481  0 /*onDayOfMonth*/,
    -
    13482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13483  480 /*atTimeCode (7200/15)*/,
    -
    13484  0 /*deltaMinutes*/,
    -
    13485  0 /*letterIndex ("")*/,
    -
    13486  },
    -
    13487  // Rule LH 2008 max - Apr Sun>=1 2:00 0 -
    -
    13488  {
    -
    13489  2008 /*fromYear*/,
    -
    13490  32766 /*toYear*/,
    -
    13491  4 /*inMonth*/,
    -
    13492  7 /*onDayOfWeek*/,
    -
    13493  1 /*onDayOfMonth*/,
    -
    13494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13495  480 /*atTimeCode (7200/15)*/,
    -
    13496  0 /*deltaMinutes*/,
    -
    13497  0 /*letterIndex ("")*/,
    -
    13498  },
    -
    13499  // Rule LH 2008 max - Oct Sun>=1 2:00 0:30 -
    -
    13500  {
    -
    13501  2008 /*fromYear*/,
    -
    13502  32766 /*toYear*/,
    -
    13503  10 /*inMonth*/,
    -
    13504  7 /*onDayOfWeek*/,
    -
    13505  1 /*onDayOfMonth*/,
    -
    13506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13507  480 /*atTimeCode (7200/15)*/,
    -
    13508  30 /*deltaMinutes*/,
    -
    13509  0 /*letterIndex ("")*/,
    -
    13510  },
    -
    13511 
    -
    13512 };
    -
    13513 
    -
    13514 const complete::Info::ZonePolicy kZonePolicyLH ACE_TIME_PROGMEM = {
    -
    13515  kZoneRulesLH /*rules*/,
    -
    13516  15 /*numRules*/,
    -
    13517 };
    -
    13518 
    -
    13519 //---------------------------------------------------------------------------
    -
    13520 // Policy name: Latvia
    -
    13521 // Rules: 3
    -
    13522 //---------------------------------------------------------------------------
    -
    13523 
    -
    13524 static const complete::Info::ZoneRule kZoneRulesLatvia[] ACE_TIME_PROGMEM = {
    -
    13525  // Anchor: Rule Latvia 1989 1996 - Sep lastSun 2:00s 0 -
    -
    13526  {
    -
    13527  -32767 /*fromYear*/,
    -
    13528  -32767 /*toYear*/,
    -
    13529  1 /*inMonth*/,
    -
    13530  0 /*onDayOfWeek*/,
    -
    13531  1 /*onDayOfMonth*/,
    -
    13532  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13533  0 /*atTimeCode (0/15)*/,
    -
    13534  0 /*deltaMinutes*/,
    -
    13535  0 /*letterIndex ("")*/,
    -
    13536  },
    -
    13537  // Rule Latvia 1989 1996 - Mar lastSun 2:00s 1:00 S
    -
    13538  {
    -
    13539  1989 /*fromYear*/,
    -
    13540  1996 /*toYear*/,
    -
    13541  3 /*inMonth*/,
    -
    13542  7 /*onDayOfWeek*/,
    -
    13543  0 /*onDayOfMonth*/,
    -
    13544  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13545  480 /*atTimeCode (7200/15)*/,
    -
    13546  60 /*deltaMinutes*/,
    -
    13547  25 /*letterIndex ("S")*/,
    -
    13548  },
    -
    13549  // Rule Latvia 1989 1996 - Sep lastSun 2:00s 0 -
    -
    13550  {
    -
    13551  1989 /*fromYear*/,
    -
    13552  1996 /*toYear*/,
    -
    13553  9 /*inMonth*/,
    -
    13554  7 /*onDayOfWeek*/,
    -
    13555  0 /*onDayOfMonth*/,
    -
    13556  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    13557  480 /*atTimeCode (7200/15)*/,
    -
    13558  0 /*deltaMinutes*/,
    -
    13559  0 /*letterIndex ("")*/,
    -
    13560  },
    -
    13561 
    -
    13562 };
    -
    13563 
    -
    13564 const complete::Info::ZonePolicy kZonePolicyLatvia ACE_TIME_PROGMEM = {
    -
    13565  kZoneRulesLatvia /*rules*/,
    -
    13566  3 /*numRules*/,
    -
    13567 };
    -
    13568 
    -
    13569 //---------------------------------------------------------------------------
    -
    13570 // Policy name: Lebanon
    -
    13571 // Rules: 25
    -
    13572 //---------------------------------------------------------------------------
    -
    13573 
    -
    13574 static const complete::Info::ZoneRule kZoneRulesLebanon[] ACE_TIME_PROGMEM = {
    -
    13575  // Anchor: Rule Lebanon 1920 only - Oct 25 0:00 0 -
    -
    13576  {
    -
    13577  -32767 /*fromYear*/,
    -
    13578  -32767 /*toYear*/,
    -
    13579  1 /*inMonth*/,
    -
    13580  0 /*onDayOfWeek*/,
    -
    13581  1 /*onDayOfMonth*/,
    -
    13582  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13583  0 /*atTimeCode (0/15)*/,
    -
    13584  0 /*deltaMinutes*/,
    -
    13585  0 /*letterIndex ("")*/,
    -
    13586  },
    -
    13587  // Rule Lebanon 1920 only - Mar 28 0:00 1:00 S
    -
    13588  {
    -
    13589  1920 /*fromYear*/,
    -
    13590  1920 /*toYear*/,
    -
    13591  3 /*inMonth*/,
    -
    13592  0 /*onDayOfWeek*/,
    -
    13593  28 /*onDayOfMonth*/,
    -
    13594  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13595  0 /*atTimeCode (0/15)*/,
    -
    13596  60 /*deltaMinutes*/,
    -
    13597  25 /*letterIndex ("S")*/,
    -
    13598  },
    -
    13599  // Rule Lebanon 1920 only - Oct 25 0:00 0 -
    -
    13600  {
    -
    13601  1920 /*fromYear*/,
    -
    13602  1920 /*toYear*/,
    -
    13603  10 /*inMonth*/,
    -
    13604  0 /*onDayOfWeek*/,
    -
    13605  25 /*onDayOfMonth*/,
    -
    13606  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13607  0 /*atTimeCode (0/15)*/,
    -
    13608  0 /*deltaMinutes*/,
    -
    13609  0 /*letterIndex ("")*/,
    -
    13610  },
    -
    13611  // Rule Lebanon 1921 only - Apr 3 0:00 1:00 S
    -
    13612  {
    -
    13613  1921 /*fromYear*/,
    -
    13614  1921 /*toYear*/,
    -
    13615  4 /*inMonth*/,
    -
    13616  0 /*onDayOfWeek*/,
    -
    13617  3 /*onDayOfMonth*/,
    -
    13618  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13619  0 /*atTimeCode (0/15)*/,
    -
    13620  60 /*deltaMinutes*/,
    -
    13621  25 /*letterIndex ("S")*/,
    -
    13622  },
    -
    13623  // Rule Lebanon 1921 only - Oct 3 0:00 0 -
    -
    13624  {
    -
    13625  1921 /*fromYear*/,
    -
    13626  1921 /*toYear*/,
    -
    13627  10 /*inMonth*/,
    -
    13628  0 /*onDayOfWeek*/,
    -
    13629  3 /*onDayOfMonth*/,
    -
    13630  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13631  0 /*atTimeCode (0/15)*/,
    -
    13632  0 /*deltaMinutes*/,
    -
    13633  0 /*letterIndex ("")*/,
    -
    13634  },
    -
    13635  // Rule Lebanon 1922 only - Mar 26 0:00 1:00 S
    -
    13636  {
    -
    13637  1922 /*fromYear*/,
    -
    13638  1922 /*toYear*/,
    -
    13639  3 /*inMonth*/,
    -
    13640  0 /*onDayOfWeek*/,
    -
    13641  26 /*onDayOfMonth*/,
    -
    13642  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13643  0 /*atTimeCode (0/15)*/,
    -
    13644  60 /*deltaMinutes*/,
    -
    13645  25 /*letterIndex ("S")*/,
    -
    13646  },
    -
    13647  // Rule Lebanon 1922 only - Oct 8 0:00 0 -
    -
    13648  {
    -
    13649  1922 /*fromYear*/,
    -
    13650  1922 /*toYear*/,
    -
    13651  10 /*inMonth*/,
    -
    13652  0 /*onDayOfWeek*/,
    -
    13653  8 /*onDayOfMonth*/,
    -
    13654  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13655  0 /*atTimeCode (0/15)*/,
    -
    13656  0 /*deltaMinutes*/,
    -
    13657  0 /*letterIndex ("")*/,
    -
    13658  },
    -
    13659  // Rule Lebanon 1923 only - Apr 22 0:00 1:00 S
    -
    13660  {
    -
    13661  1923 /*fromYear*/,
    -
    13662  1923 /*toYear*/,
    -
    13663  4 /*inMonth*/,
    -
    13664  0 /*onDayOfWeek*/,
    -
    13665  22 /*onDayOfMonth*/,
    -
    13666  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13667  0 /*atTimeCode (0/15)*/,
    -
    13668  60 /*deltaMinutes*/,
    -
    13669  25 /*letterIndex ("S")*/,
    -
    13670  },
    -
    13671  // Rule Lebanon 1923 only - Sep 16 0:00 0 -
    -
    13672  {
    -
    13673  1923 /*fromYear*/,
    -
    13674  1923 /*toYear*/,
    -
    13675  9 /*inMonth*/,
    -
    13676  0 /*onDayOfWeek*/,
    -
    13677  16 /*onDayOfMonth*/,
    -
    13678  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13679  0 /*atTimeCode (0/15)*/,
    -
    13680  0 /*deltaMinutes*/,
    -
    13681  0 /*letterIndex ("")*/,
    -
    13682  },
    -
    13683  // Rule Lebanon 1957 1961 - May 1 0:00 1:00 S
    -
    13684  {
    -
    13685  1957 /*fromYear*/,
    -
    13686  1961 /*toYear*/,
    -
    13687  5 /*inMonth*/,
    -
    13688  0 /*onDayOfWeek*/,
    -
    13689  1 /*onDayOfMonth*/,
    -
    13690  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13691  0 /*atTimeCode (0/15)*/,
    -
    13692  60 /*deltaMinutes*/,
    -
    13693  25 /*letterIndex ("S")*/,
    -
    13694  },
    -
    13695  // Rule Lebanon 1957 1961 - Oct 1 0:00 0 -
    -
    13696  {
    -
    13697  1957 /*fromYear*/,
    -
    13698  1961 /*toYear*/,
    -
    13699  10 /*inMonth*/,
    -
    13700  0 /*onDayOfWeek*/,
    -
    13701  1 /*onDayOfMonth*/,
    -
    13702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13703  0 /*atTimeCode (0/15)*/,
    -
    13704  0 /*deltaMinutes*/,
    -
    13705  0 /*letterIndex ("")*/,
    -
    13706  },
    -
    13707  // Rule Lebanon 1972 only - Jun 22 0:00 1:00 S
    -
    13708  {
    -
    13709  1972 /*fromYear*/,
    -
    13710  1972 /*toYear*/,
    -
    13711  6 /*inMonth*/,
    -
    13712  0 /*onDayOfWeek*/,
    -
    13713  22 /*onDayOfMonth*/,
    -
    13714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13715  0 /*atTimeCode (0/15)*/,
    -
    13716  60 /*deltaMinutes*/,
    -
    13717  25 /*letterIndex ("S")*/,
    -
    13718  },
    -
    13719  // Rule Lebanon 1972 1977 - Oct 1 0:00 0 -
    -
    13720  {
    -
    13721  1972 /*fromYear*/,
    -
    13722  1977 /*toYear*/,
    -
    13723  10 /*inMonth*/,
    -
    13724  0 /*onDayOfWeek*/,
    -
    13725  1 /*onDayOfMonth*/,
    -
    13726  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13727  0 /*atTimeCode (0/15)*/,
    -
    13728  0 /*deltaMinutes*/,
    -
    13729  0 /*letterIndex ("")*/,
    -
    13730  },
    -
    13731  // Rule Lebanon 1973 1977 - May 1 0:00 1:00 S
    -
    13732  {
    -
    13733  1973 /*fromYear*/,
    -
    13734  1977 /*toYear*/,
    -
    13735  5 /*inMonth*/,
    -
    13736  0 /*onDayOfWeek*/,
    -
    13737  1 /*onDayOfMonth*/,
    -
    13738  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13739  0 /*atTimeCode (0/15)*/,
    -
    13740  60 /*deltaMinutes*/,
    -
    13741  25 /*letterIndex ("S")*/,
    -
    13742  },
    -
    13743  // Rule Lebanon 1978 only - Apr 30 0:00 1:00 S
    -
    13744  {
    -
    13745  1978 /*fromYear*/,
    -
    13746  1978 /*toYear*/,
    -
    13747  4 /*inMonth*/,
    -
    13748  0 /*onDayOfWeek*/,
    -
    13749  30 /*onDayOfMonth*/,
    -
    13750  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13751  0 /*atTimeCode (0/15)*/,
    -
    13752  60 /*deltaMinutes*/,
    -
    13753  25 /*letterIndex ("S")*/,
    -
    13754  },
    -
    13755  // Rule Lebanon 1978 only - Sep 30 0:00 0 -
    -
    13756  {
    -
    13757  1978 /*fromYear*/,
    -
    13758  1978 /*toYear*/,
    -
    13759  9 /*inMonth*/,
    -
    13760  0 /*onDayOfWeek*/,
    -
    13761  30 /*onDayOfMonth*/,
    -
    13762  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13763  0 /*atTimeCode (0/15)*/,
    -
    13764  0 /*deltaMinutes*/,
    -
    13765  0 /*letterIndex ("")*/,
    -
    13766  },
    -
    13767  // Rule Lebanon 1984 1987 - May 1 0:00 1:00 S
    -
    13768  {
    -
    13769  1984 /*fromYear*/,
    -
    13770  1987 /*toYear*/,
    -
    13771  5 /*inMonth*/,
    -
    13772  0 /*onDayOfWeek*/,
    -
    13773  1 /*onDayOfMonth*/,
    -
    13774  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13775  0 /*atTimeCode (0/15)*/,
    -
    13776  60 /*deltaMinutes*/,
    -
    13777  25 /*letterIndex ("S")*/,
    -
    13778  },
    -
    13779  // Rule Lebanon 1984 1991 - Oct 16 0:00 0 -
    -
    13780  {
    -
    13781  1984 /*fromYear*/,
    -
    13782  1991 /*toYear*/,
    -
    13783  10 /*inMonth*/,
    -
    13784  0 /*onDayOfWeek*/,
    -
    13785  16 /*onDayOfMonth*/,
    -
    13786  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13787  0 /*atTimeCode (0/15)*/,
    -
    13788  0 /*deltaMinutes*/,
    -
    13789  0 /*letterIndex ("")*/,
    -
    13790  },
    -
    13791  // Rule Lebanon 1988 only - Jun 1 0:00 1:00 S
    -
    13792  {
    -
    13793  1988 /*fromYear*/,
    -
    13794  1988 /*toYear*/,
    -
    13795  6 /*inMonth*/,
    -
    13796  0 /*onDayOfWeek*/,
    -
    13797  1 /*onDayOfMonth*/,
    -
    13798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13799  0 /*atTimeCode (0/15)*/,
    -
    13800  60 /*deltaMinutes*/,
    -
    13801  25 /*letterIndex ("S")*/,
    -
    13802  },
    -
    13803  // Rule Lebanon 1989 only - May 10 0:00 1:00 S
    -
    13804  {
    -
    13805  1989 /*fromYear*/,
    -
    13806  1989 /*toYear*/,
    -
    13807  5 /*inMonth*/,
    -
    13808  0 /*onDayOfWeek*/,
    -
    13809  10 /*onDayOfMonth*/,
    -
    13810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13811  0 /*atTimeCode (0/15)*/,
    -
    13812  60 /*deltaMinutes*/,
    -
    13813  25 /*letterIndex ("S")*/,
    -
    13814  },
    -
    13815  // Rule Lebanon 1990 1992 - May 1 0:00 1:00 S
    -
    13816  {
    -
    13817  1990 /*fromYear*/,
    -
    13818  1992 /*toYear*/,
    -
    13819  5 /*inMonth*/,
    -
    13820  0 /*onDayOfWeek*/,
    -
    13821  1 /*onDayOfMonth*/,
    -
    13822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13823  0 /*atTimeCode (0/15)*/,
    -
    13824  60 /*deltaMinutes*/,
    -
    13825  25 /*letterIndex ("S")*/,
    -
    13826  },
    -
    13827  // Rule Lebanon 1992 only - Oct 4 0:00 0 -
    -
    13828  {
    -
    13829  1992 /*fromYear*/,
    -
    13830  1992 /*toYear*/,
    -
    13831  10 /*inMonth*/,
    -
    13832  0 /*onDayOfWeek*/,
    -
    13833  4 /*onDayOfMonth*/,
    -
    13834  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13835  0 /*atTimeCode (0/15)*/,
    -
    13836  0 /*deltaMinutes*/,
    -
    13837  0 /*letterIndex ("")*/,
    -
    13838  },
    -
    13839  // Rule Lebanon 1993 max - Mar lastSun 0:00 1:00 S
    -
    13840  {
    -
    13841  1993 /*fromYear*/,
    -
    13842  32766 /*toYear*/,
    -
    13843  3 /*inMonth*/,
    -
    13844  7 /*onDayOfWeek*/,
    -
    13845  0 /*onDayOfMonth*/,
    -
    13846  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13847  0 /*atTimeCode (0/15)*/,
    -
    13848  60 /*deltaMinutes*/,
    -
    13849  25 /*letterIndex ("S")*/,
    -
    13850  },
    -
    13851  // Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 -
    -
    13852  {
    -
    13853  1993 /*fromYear*/,
    -
    13854  1998 /*toYear*/,
    -
    13855  9 /*inMonth*/,
    -
    13856  7 /*onDayOfWeek*/,
    -
    13857  0 /*onDayOfMonth*/,
    -
    13858  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13859  0 /*atTimeCode (0/15)*/,
    -
    13860  0 /*deltaMinutes*/,
    -
    13861  0 /*letterIndex ("")*/,
    -
    13862  },
    -
    13863  // Rule Lebanon 1999 max - Oct lastSun 0:00 0 -
    -
    13864  {
    -
    13865  1999 /*fromYear*/,
    -
    13866  32766 /*toYear*/,
    -
    13867  10 /*inMonth*/,
    -
    13868  7 /*onDayOfWeek*/,
    -
    13869  0 /*onDayOfMonth*/,
    -
    13870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13871  0 /*atTimeCode (0/15)*/,
    -
    13872  0 /*deltaMinutes*/,
    -
    13873  0 /*letterIndex ("")*/,
    -
    13874  },
    -
    13875 
    -
    13876 };
    -
    13877 
    -
    13878 const complete::Info::ZonePolicy kZonePolicyLebanon ACE_TIME_PROGMEM = {
    -
    13879  kZoneRulesLebanon /*rules*/,
    -
    13880  25 /*numRules*/,
    -
    13881 };
    -
    13882 
    -
    13883 //---------------------------------------------------------------------------
    -
    13884 // Policy name: Libya
    -
    13885 // Rules: 18
    -
    13886 //---------------------------------------------------------------------------
    -
    13887 
    -
    13888 static const complete::Info::ZoneRule kZoneRulesLibya[] ACE_TIME_PROGMEM = {
    -
    13889  // Anchor: Rule Libya 1952 only - Jan 1 0:00 0 -
    -
    13890  {
    -
    13891  -32767 /*fromYear*/,
    -
    13892  -32767 /*toYear*/,
    -
    13893  1 /*inMonth*/,
    -
    13894  0 /*onDayOfWeek*/,
    -
    13895  1 /*onDayOfMonth*/,
    -
    13896  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13897  0 /*atTimeCode (0/15)*/,
    -
    13898  0 /*deltaMinutes*/,
    -
    13899  0 /*letterIndex ("")*/,
    -
    13900  },
    -
    13901  // Rule Libya 1951 only - Oct 14 2:00 1:00 S
    -
    13902  {
    -
    13903  1951 /*fromYear*/,
    -
    13904  1951 /*toYear*/,
    -
    13905  10 /*inMonth*/,
    -
    13906  0 /*onDayOfWeek*/,
    -
    13907  14 /*onDayOfMonth*/,
    -
    13908  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13909  480 /*atTimeCode (7200/15)*/,
    -
    13910  60 /*deltaMinutes*/,
    -
    13911  25 /*letterIndex ("S")*/,
    -
    13912  },
    -
    13913  // Rule Libya 1952 only - Jan 1 0:00 0 -
    -
    13914  {
    -
    13915  1952 /*fromYear*/,
    -
    13916  1952 /*toYear*/,
    -
    13917  1 /*inMonth*/,
    -
    13918  0 /*onDayOfWeek*/,
    -
    13919  1 /*onDayOfMonth*/,
    -
    13920  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13921  0 /*atTimeCode (0/15)*/,
    -
    13922  0 /*deltaMinutes*/,
    -
    13923  0 /*letterIndex ("")*/,
    -
    13924  },
    -
    13925  // Rule Libya 1953 only - Oct 9 2:00 1:00 S
    -
    13926  {
    -
    13927  1953 /*fromYear*/,
    -
    13928  1953 /*toYear*/,
    -
    13929  10 /*inMonth*/,
    -
    13930  0 /*onDayOfWeek*/,
    -
    13931  9 /*onDayOfMonth*/,
    -
    13932  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13933  480 /*atTimeCode (7200/15)*/,
    -
    13934  60 /*deltaMinutes*/,
    -
    13935  25 /*letterIndex ("S")*/,
    -
    13936  },
    -
    13937  // Rule Libya 1954 only - Jan 1 0:00 0 -
    -
    13938  {
    -
    13939  1954 /*fromYear*/,
    -
    13940  1954 /*toYear*/,
    -
    13941  1 /*inMonth*/,
    -
    13942  0 /*onDayOfWeek*/,
    -
    13943  1 /*onDayOfMonth*/,
    -
    13944  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13945  0 /*atTimeCode (0/15)*/,
    -
    13946  0 /*deltaMinutes*/,
    -
    13947  0 /*letterIndex ("")*/,
    -
    13948  },
    -
    13949  // Rule Libya 1955 only - Sep 30 0:00 1:00 S
    -
    13950  {
    -
    13951  1955 /*fromYear*/,
    -
    13952  1955 /*toYear*/,
    -
    13953  9 /*inMonth*/,
    -
    13954  0 /*onDayOfWeek*/,
    -
    13955  30 /*onDayOfMonth*/,
    -
    13956  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13957  0 /*atTimeCode (0/15)*/,
    -
    13958  60 /*deltaMinutes*/,
    -
    13959  25 /*letterIndex ("S")*/,
    -
    13960  },
    -
    13961  // Rule Libya 1956 only - Jan 1 0:00 0 -
    -
    13962  {
    -
    13963  1956 /*fromYear*/,
    -
    13964  1956 /*toYear*/,
    -
    13965  1 /*inMonth*/,
    -
    13966  0 /*onDayOfWeek*/,
    -
    13967  1 /*onDayOfMonth*/,
    -
    13968  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13969  0 /*atTimeCode (0/15)*/,
    -
    13970  0 /*deltaMinutes*/,
    -
    13971  0 /*letterIndex ("")*/,
    -
    13972  },
    -
    13973  // Rule Libya 1982 1984 - Apr 1 0:00 1:00 S
    -
    13974  {
    -
    13975  1982 /*fromYear*/,
    -
    13976  1984 /*toYear*/,
    -
    13977  4 /*inMonth*/,
    -
    13978  0 /*onDayOfWeek*/,
    -
    13979  1 /*onDayOfMonth*/,
    -
    13980  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13981  0 /*atTimeCode (0/15)*/,
    -
    13982  60 /*deltaMinutes*/,
    -
    13983  25 /*letterIndex ("S")*/,
    -
    13984  },
    -
    13985  // Rule Libya 1982 1985 - Oct 1 0:00 0 -
    -
    13986  {
    -
    13987  1982 /*fromYear*/,
    -
    13988  1985 /*toYear*/,
    -
    13989  10 /*inMonth*/,
    -
    13990  0 /*onDayOfWeek*/,
    -
    13991  1 /*onDayOfMonth*/,
    -
    13992  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    13993  0 /*atTimeCode (0/15)*/,
    -
    13994  0 /*deltaMinutes*/,
    -
    13995  0 /*letterIndex ("")*/,
    -
    13996  },
    -
    13997  // Rule Libya 1985 only - Apr 6 0:00 1:00 S
    -
    13998  {
    -
    13999  1985 /*fromYear*/,
    -
    14000  1985 /*toYear*/,
    -
    14001  4 /*inMonth*/,
    -
    14002  0 /*onDayOfWeek*/,
    -
    14003  6 /*onDayOfMonth*/,
    -
    14004  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14005  0 /*atTimeCode (0/15)*/,
    -
    14006  60 /*deltaMinutes*/,
    -
    14007  25 /*letterIndex ("S")*/,
    -
    14008  },
    -
    14009  // Rule Libya 1986 only - Apr 4 0:00 1:00 S
    -
    14010  {
    -
    14011  1986 /*fromYear*/,
    -
    14012  1986 /*toYear*/,
    -
    14013  4 /*inMonth*/,
    -
    14014  0 /*onDayOfWeek*/,
    -
    14015  4 /*onDayOfMonth*/,
    -
    14016  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14017  0 /*atTimeCode (0/15)*/,
    -
    14018  60 /*deltaMinutes*/,
    -
    14019  25 /*letterIndex ("S")*/,
    -
    14020  },
    -
    14021  // Rule Libya 1986 only - Oct 3 0:00 0 -
    -
    14022  {
    -
    14023  1986 /*fromYear*/,
    -
    14024  1986 /*toYear*/,
    -
    14025  10 /*inMonth*/,
    -
    14026  0 /*onDayOfWeek*/,
    -
    14027  3 /*onDayOfMonth*/,
    -
    14028  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14029  0 /*atTimeCode (0/15)*/,
    -
    14030  0 /*deltaMinutes*/,
    -
    14031  0 /*letterIndex ("")*/,
    -
    14032  },
    -
    14033  // Rule Libya 1987 1989 - Apr 1 0:00 1:00 S
    -
    14034  {
    -
    14035  1987 /*fromYear*/,
    -
    14036  1989 /*toYear*/,
    -
    14037  4 /*inMonth*/,
    -
    14038  0 /*onDayOfWeek*/,
    -
    14039  1 /*onDayOfMonth*/,
    -
    14040  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14041  0 /*atTimeCode (0/15)*/,
    -
    14042  60 /*deltaMinutes*/,
    -
    14043  25 /*letterIndex ("S")*/,
    -
    14044  },
    -
    14045  // Rule Libya 1987 1989 - Oct 1 0:00 0 -
    -
    14046  {
    -
    14047  1987 /*fromYear*/,
    -
    14048  1989 /*toYear*/,
    -
    14049  10 /*inMonth*/,
    -
    14050  0 /*onDayOfWeek*/,
    -
    14051  1 /*onDayOfMonth*/,
    -
    14052  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14053  0 /*atTimeCode (0/15)*/,
    -
    14054  0 /*deltaMinutes*/,
    -
    14055  0 /*letterIndex ("")*/,
    -
    14056  },
    -
    14057  // Rule Libya 1997 only - Apr 4 0:00 1:00 S
    -
    14058  {
    -
    14059  1997 /*fromYear*/,
    -
    14060  1997 /*toYear*/,
    -
    14061  4 /*inMonth*/,
    -
    14062  0 /*onDayOfWeek*/,
    -
    14063  4 /*onDayOfMonth*/,
    -
    14064  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14065  0 /*atTimeCode (0/15)*/,
    -
    14066  60 /*deltaMinutes*/,
    -
    14067  25 /*letterIndex ("S")*/,
    -
    14068  },
    -
    14069  // Rule Libya 1997 only - Oct 4 0:00 0 -
    -
    14070  {
    -
    14071  1997 /*fromYear*/,
    -
    14072  1997 /*toYear*/,
    -
    14073  10 /*inMonth*/,
    -
    14074  0 /*onDayOfWeek*/,
    -
    14075  4 /*onDayOfMonth*/,
    -
    14076  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14077  0 /*atTimeCode (0/15)*/,
    -
    14078  0 /*deltaMinutes*/,
    -
    14079  0 /*letterIndex ("")*/,
    -
    14080  },
    -
    14081  // Rule Libya 2013 only - Mar lastFri 1:00 1:00 S
    -
    14082  {
    -
    14083  2013 /*fromYear*/,
    -
    14084  2013 /*toYear*/,
    -
    14085  3 /*inMonth*/,
    -
    14086  5 /*onDayOfWeek*/,
    -
    14087  0 /*onDayOfMonth*/,
    -
    14088  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14089  240 /*atTimeCode (3600/15)*/,
    -
    14090  60 /*deltaMinutes*/,
    -
    14091  25 /*letterIndex ("S")*/,
    -
    14092  },
    -
    14093  // Rule Libya 2013 only - Oct lastFri 2:00 0 -
    -
    14094  {
    -
    14095  2013 /*fromYear*/,
    -
    14096  2013 /*toYear*/,
    -
    14097  10 /*inMonth*/,
    -
    14098  5 /*onDayOfWeek*/,
    -
    14099  0 /*onDayOfMonth*/,
    -
    14100  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14101  480 /*atTimeCode (7200/15)*/,
    -
    14102  0 /*deltaMinutes*/,
    -
    14103  0 /*letterIndex ("")*/,
    -
    14104  },
    -
    14105 
    -
    14106 };
    -
    14107 
    -
    14108 const complete::Info::ZonePolicy kZonePolicyLibya ACE_TIME_PROGMEM = {
    -
    14109  kZoneRulesLibya /*rules*/,
    -
    14110  18 /*numRules*/,
    -
    14111 };
    -
    14112 
    -
    14113 //---------------------------------------------------------------------------
    -
    14114 // Policy name: Louisville
    -
    14115 // Rules: 10
    -
    14116 //---------------------------------------------------------------------------
    -
    14117 
    -
    14118 static const complete::Info::ZoneRule kZoneRulesLouisville[] ACE_TIME_PROGMEM = {
    -
    14119  // Anchor: Rule Louisville 1921 only - Sep 1 2:00 0 S
    -
    14120  {
    -
    14121  -32767 /*fromYear*/,
    -
    14122  -32767 /*toYear*/,
    -
    14123  1 /*inMonth*/,
    -
    14124  0 /*onDayOfWeek*/,
    -
    14125  1 /*onDayOfMonth*/,
    -
    14126  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14127  0 /*atTimeCode (0/15)*/,
    -
    14128  0 /*deltaMinutes*/,
    -
    14129  25 /*letterIndex ("S")*/,
    -
    14130  },
    -
    14131  // Rule Louisville 1921 only - May 1 2:00 1:00 D
    -
    14132  {
    -
    14133  1921 /*fromYear*/,
    -
    14134  1921 /*toYear*/,
    -
    14135  5 /*inMonth*/,
    -
    14136  0 /*onDayOfWeek*/,
    -
    14137  1 /*onDayOfMonth*/,
    -
    14138  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14139  480 /*atTimeCode (7200/15)*/,
    -
    14140  60 /*deltaMinutes*/,
    -
    14141  13 /*letterIndex ("D")*/,
    -
    14142  },
    -
    14143  // Rule Louisville 1921 only - Sep 1 2:00 0 S
    -
    14144  {
    -
    14145  1921 /*fromYear*/,
    -
    14146  1921 /*toYear*/,
    -
    14147  9 /*inMonth*/,
    -
    14148  0 /*onDayOfWeek*/,
    -
    14149  1 /*onDayOfMonth*/,
    -
    14150  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14151  480 /*atTimeCode (7200/15)*/,
    -
    14152  0 /*deltaMinutes*/,
    -
    14153  25 /*letterIndex ("S")*/,
    -
    14154  },
    -
    14155  // Rule Louisville 1941 only - Apr lastSun 2:00 1:00 D
    -
    14156  {
    -
    14157  1941 /*fromYear*/,
    -
    14158  1941 /*toYear*/,
    -
    14159  4 /*inMonth*/,
    -
    14160  7 /*onDayOfWeek*/,
    -
    14161  0 /*onDayOfMonth*/,
    -
    14162  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14163  480 /*atTimeCode (7200/15)*/,
    -
    14164  60 /*deltaMinutes*/,
    -
    14165  13 /*letterIndex ("D")*/,
    -
    14166  },
    -
    14167  // Rule Louisville 1941 only - Sep lastSun 2:00 0 S
    -
    14168  {
    -
    14169  1941 /*fromYear*/,
    -
    14170  1941 /*toYear*/,
    -
    14171  9 /*inMonth*/,
    -
    14172  7 /*onDayOfWeek*/,
    -
    14173  0 /*onDayOfMonth*/,
    -
    14174  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14175  480 /*atTimeCode (7200/15)*/,
    -
    14176  0 /*deltaMinutes*/,
    -
    14177  25 /*letterIndex ("S")*/,
    -
    14178  },
    -
    14179  // Rule Louisville 1946 only - Apr lastSun 0:01 1:00 D
    -
    14180  {
    -
    14181  1946 /*fromYear*/,
    -
    14182  1946 /*toYear*/,
    -
    14183  4 /*inMonth*/,
    -
    14184  7 /*onDayOfWeek*/,
    -
    14185  0 /*onDayOfMonth*/,
    -
    14186  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14187  4 /*atTimeCode (60/15)*/,
    -
    14188  60 /*deltaMinutes*/,
    -
    14189  13 /*letterIndex ("D")*/,
    -
    14190  },
    -
    14191  // Rule Louisville 1946 only - Jun 2 2:00 0 S
    -
    14192  {
    -
    14193  1946 /*fromYear*/,
    -
    14194  1946 /*toYear*/,
    -
    14195  6 /*inMonth*/,
    -
    14196  0 /*onDayOfWeek*/,
    -
    14197  2 /*onDayOfMonth*/,
    -
    14198  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14199  480 /*atTimeCode (7200/15)*/,
    -
    14200  0 /*deltaMinutes*/,
    -
    14201  25 /*letterIndex ("S")*/,
    -
    14202  },
    -
    14203  // Rule Louisville 1950 1961 - Apr lastSun 2:00 1:00 D
    -
    14204  {
    -
    14205  1950 /*fromYear*/,
    -
    14206  1961 /*toYear*/,
    -
    14207  4 /*inMonth*/,
    -
    14208  7 /*onDayOfWeek*/,
    -
    14209  0 /*onDayOfMonth*/,
    -
    14210  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14211  480 /*atTimeCode (7200/15)*/,
    -
    14212  60 /*deltaMinutes*/,
    -
    14213  13 /*letterIndex ("D")*/,
    -
    14214  },
    -
    14215  // Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S
    -
    14216  {
    -
    14217  1950 /*fromYear*/,
    -
    14218  1955 /*toYear*/,
    -
    14219  9 /*inMonth*/,
    -
    14220  7 /*onDayOfWeek*/,
    -
    14221  0 /*onDayOfMonth*/,
    -
    14222  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14223  480 /*atTimeCode (7200/15)*/,
    -
    14224  0 /*deltaMinutes*/,
    -
    14225  25 /*letterIndex ("S")*/,
    -
    14226  },
    -
    14227  // Rule Louisville 1956 1961 - Oct lastSun 2:00 0 S
    -
    14228  {
    -
    14229  1956 /*fromYear*/,
    -
    14230  1961 /*toYear*/,
    -
    14231  10 /*inMonth*/,
    -
    14232  7 /*onDayOfWeek*/,
    -
    14233  0 /*onDayOfMonth*/,
    -
    14234  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14235  480 /*atTimeCode (7200/15)*/,
    -
    14236  0 /*deltaMinutes*/,
    -
    14237  25 /*letterIndex ("S")*/,
    -
    14238  },
    -
    14239 
    -
    14240 };
    -
    14241 
    -
    14242 const complete::Info::ZonePolicy kZonePolicyLouisville ACE_TIME_PROGMEM = {
    -
    14243  kZoneRulesLouisville /*rules*/,
    -
    14244  10 /*numRules*/,
    -
    14245 };
    -
    14246 
    -
    14247 //---------------------------------------------------------------------------
    -
    14248 // Policy name: Macau
    -
    14249 // Rules: 28
    -
    14250 //---------------------------------------------------------------------------
    -
    14251 
    -
    14252 static const complete::Info::ZoneRule kZoneRulesMacau[] ACE_TIME_PROGMEM = {
    -
    14253  // Anchor: Rule Macau 1942 only - Nov 17 23:00 0 -
    -
    14254  {
    -
    14255  -32767 /*fromYear*/,
    -
    14256  -32767 /*toYear*/,
    -
    14257  1 /*inMonth*/,
    -
    14258  0 /*onDayOfWeek*/,
    -
    14259  1 /*onDayOfMonth*/,
    -
    14260  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14261  0 /*atTimeCode (0/15)*/,
    -
    14262  0 /*deltaMinutes*/,
    -
    14263  0 /*letterIndex ("")*/,
    -
    14264  },
    -
    14265  // Rule Macau 1942 1943 - Apr 30 23:00 1:00 -
    -
    14266  {
    -
    14267  1942 /*fromYear*/,
    -
    14268  1943 /*toYear*/,
    -
    14269  4 /*inMonth*/,
    -
    14270  0 /*onDayOfWeek*/,
    -
    14271  30 /*onDayOfMonth*/,
    -
    14272  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14273  5520 /*atTimeCode (82800/15)*/,
    -
    14274  60 /*deltaMinutes*/,
    -
    14275  0 /*letterIndex ("")*/,
    -
    14276  },
    -
    14277  // Rule Macau 1942 only - Nov 17 23:00 0 -
    -
    14278  {
    -
    14279  1942 /*fromYear*/,
    -
    14280  1942 /*toYear*/,
    -
    14281  11 /*inMonth*/,
    -
    14282  0 /*onDayOfWeek*/,
    -
    14283  17 /*onDayOfMonth*/,
    -
    14284  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14285  5520 /*atTimeCode (82800/15)*/,
    -
    14286  0 /*deltaMinutes*/,
    -
    14287  0 /*letterIndex ("")*/,
    -
    14288  },
    -
    14289  // Rule Macau 1943 only - Sep 30 23:00 0 S
    -
    14290  {
    -
    14291  1943 /*fromYear*/,
    -
    14292  1943 /*toYear*/,
    -
    14293  9 /*inMonth*/,
    -
    14294  0 /*onDayOfWeek*/,
    -
    14295  30 /*onDayOfMonth*/,
    -
    14296  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14297  5520 /*atTimeCode (82800/15)*/,
    -
    14298  0 /*deltaMinutes*/,
    -
    14299  25 /*letterIndex ("S")*/,
    -
    14300  },
    -
    14301  // Rule Macau 1946 only - Apr 30 23:00s 1:00 D
    -
    14302  {
    -
    14303  1946 /*fromYear*/,
    -
    14304  1946 /*toYear*/,
    -
    14305  4 /*inMonth*/,
    -
    14306  0 /*onDayOfWeek*/,
    -
    14307  30 /*onDayOfMonth*/,
    -
    14308  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14309  5520 /*atTimeCode (82800/15)*/,
    -
    14310  60 /*deltaMinutes*/,
    -
    14311  13 /*letterIndex ("D")*/,
    -
    14312  },
    -
    14313  // Rule Macau 1946 only - Sep 30 23:00s 0 S
    -
    14314  {
    -
    14315  1946 /*fromYear*/,
    -
    14316  1946 /*toYear*/,
    -
    14317  9 /*inMonth*/,
    -
    14318  0 /*onDayOfWeek*/,
    -
    14319  30 /*onDayOfMonth*/,
    -
    14320  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14321  5520 /*atTimeCode (82800/15)*/,
    -
    14322  0 /*deltaMinutes*/,
    -
    14323  25 /*letterIndex ("S")*/,
    -
    14324  },
    -
    14325  // Rule Macau 1947 only - Apr 19 23:00s 1:00 D
    -
    14326  {
    -
    14327  1947 /*fromYear*/,
    -
    14328  1947 /*toYear*/,
    -
    14329  4 /*inMonth*/,
    -
    14330  0 /*onDayOfWeek*/,
    -
    14331  19 /*onDayOfMonth*/,
    -
    14332  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14333  5520 /*atTimeCode (82800/15)*/,
    -
    14334  60 /*deltaMinutes*/,
    -
    14335  13 /*letterIndex ("D")*/,
    -
    14336  },
    -
    14337  // Rule Macau 1947 only - Nov 30 23:00s 0 S
    -
    14338  {
    -
    14339  1947 /*fromYear*/,
    -
    14340  1947 /*toYear*/,
    -
    14341  11 /*inMonth*/,
    -
    14342  0 /*onDayOfWeek*/,
    -
    14343  30 /*onDayOfMonth*/,
    -
    14344  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14345  5520 /*atTimeCode (82800/15)*/,
    -
    14346  0 /*deltaMinutes*/,
    -
    14347  25 /*letterIndex ("S")*/,
    -
    14348  },
    -
    14349  // Rule Macau 1948 only - May 2 23:00s 1:00 D
    -
    14350  {
    -
    14351  1948 /*fromYear*/,
    -
    14352  1948 /*toYear*/,
    -
    14353  5 /*inMonth*/,
    -
    14354  0 /*onDayOfWeek*/,
    -
    14355  2 /*onDayOfMonth*/,
    -
    14356  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14357  5520 /*atTimeCode (82800/15)*/,
    -
    14358  60 /*deltaMinutes*/,
    -
    14359  13 /*letterIndex ("D")*/,
    -
    14360  },
    -
    14361  // Rule Macau 1948 only - Oct 31 23:00s 0 S
    -
    14362  {
    -
    14363  1948 /*fromYear*/,
    -
    14364  1948 /*toYear*/,
    -
    14365  10 /*inMonth*/,
    -
    14366  0 /*onDayOfWeek*/,
    -
    14367  31 /*onDayOfMonth*/,
    -
    14368  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14369  5520 /*atTimeCode (82800/15)*/,
    -
    14370  0 /*deltaMinutes*/,
    -
    14371  25 /*letterIndex ("S")*/,
    -
    14372  },
    -
    14373  // Rule Macau 1949 1950 - Apr Sat>=1 23:00s 1:00 D
    -
    14374  {
    -
    14375  1949 /*fromYear*/,
    -
    14376  1950 /*toYear*/,
    -
    14377  4 /*inMonth*/,
    -
    14378  6 /*onDayOfWeek*/,
    -
    14379  1 /*onDayOfMonth*/,
    -
    14380  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14381  5520 /*atTimeCode (82800/15)*/,
    -
    14382  60 /*deltaMinutes*/,
    -
    14383  13 /*letterIndex ("D")*/,
    -
    14384  },
    -
    14385  // Rule Macau 1949 1950 - Oct lastSat 23:00s 0 S
    -
    14386  {
    -
    14387  1949 /*fromYear*/,
    -
    14388  1950 /*toYear*/,
    -
    14389  10 /*inMonth*/,
    -
    14390  6 /*onDayOfWeek*/,
    -
    14391  0 /*onDayOfMonth*/,
    -
    14392  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14393  5520 /*atTimeCode (82800/15)*/,
    -
    14394  0 /*deltaMinutes*/,
    -
    14395  25 /*letterIndex ("S")*/,
    -
    14396  },
    -
    14397  // Rule Macau 1951 only - Mar 31 23:00s 1:00 D
    -
    14398  {
    -
    14399  1951 /*fromYear*/,
    -
    14400  1951 /*toYear*/,
    -
    14401  3 /*inMonth*/,
    -
    14402  0 /*onDayOfWeek*/,
    -
    14403  31 /*onDayOfMonth*/,
    -
    14404  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14405  5520 /*atTimeCode (82800/15)*/,
    -
    14406  60 /*deltaMinutes*/,
    -
    14407  13 /*letterIndex ("D")*/,
    -
    14408  },
    -
    14409  // Rule Macau 1951 only - Oct 28 23:00s 0 S
    -
    14410  {
    -
    14411  1951 /*fromYear*/,
    -
    14412  1951 /*toYear*/,
    -
    14413  10 /*inMonth*/,
    -
    14414  0 /*onDayOfWeek*/,
    -
    14415  28 /*onDayOfMonth*/,
    -
    14416  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14417  5520 /*atTimeCode (82800/15)*/,
    -
    14418  0 /*deltaMinutes*/,
    -
    14419  25 /*letterIndex ("S")*/,
    -
    14420  },
    -
    14421  // Rule Macau 1952 1953 - Apr Sat>=1 23:00s 1:00 D
    -
    14422  {
    -
    14423  1952 /*fromYear*/,
    -
    14424  1953 /*toYear*/,
    -
    14425  4 /*inMonth*/,
    -
    14426  6 /*onDayOfWeek*/,
    -
    14427  1 /*onDayOfMonth*/,
    -
    14428  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14429  5520 /*atTimeCode (82800/15)*/,
    -
    14430  60 /*deltaMinutes*/,
    -
    14431  13 /*letterIndex ("D")*/,
    -
    14432  },
    -
    14433  // Rule Macau 1952 only - Nov 1 23:00s 0 S
    -
    14434  {
    -
    14435  1952 /*fromYear*/,
    -
    14436  1952 /*toYear*/,
    -
    14437  11 /*inMonth*/,
    -
    14438  0 /*onDayOfWeek*/,
    -
    14439  1 /*onDayOfMonth*/,
    -
    14440  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14441  5520 /*atTimeCode (82800/15)*/,
    -
    14442  0 /*deltaMinutes*/,
    -
    14443  25 /*letterIndex ("S")*/,
    -
    14444  },
    -
    14445  // Rule Macau 1953 1954 - Oct lastSat 23:00s 0 S
    -
    14446  {
    -
    14447  1953 /*fromYear*/,
    -
    14448  1954 /*toYear*/,
    -
    14449  10 /*inMonth*/,
    -
    14450  6 /*onDayOfWeek*/,
    -
    14451  0 /*onDayOfMonth*/,
    -
    14452  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14453  5520 /*atTimeCode (82800/15)*/,
    -
    14454  0 /*deltaMinutes*/,
    -
    14455  25 /*letterIndex ("S")*/,
    -
    14456  },
    -
    14457  // Rule Macau 1954 1956 - Mar Sat>=17 23:00s 1:00 D
    -
    14458  {
    -
    14459  1954 /*fromYear*/,
    -
    14460  1956 /*toYear*/,
    -
    14461  3 /*inMonth*/,
    -
    14462  6 /*onDayOfWeek*/,
    -
    14463  17 /*onDayOfMonth*/,
    -
    14464  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14465  5520 /*atTimeCode (82800/15)*/,
    -
    14466  60 /*deltaMinutes*/,
    -
    14467  13 /*letterIndex ("D")*/,
    -
    14468  },
    -
    14469  // Rule Macau 1955 only - Nov 5 23:00s 0 S
    -
    14470  {
    -
    14471  1955 /*fromYear*/,
    -
    14472  1955 /*toYear*/,
    -
    14473  11 /*inMonth*/,
    -
    14474  0 /*onDayOfWeek*/,
    -
    14475  5 /*onDayOfMonth*/,
    -
    14476  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14477  5520 /*atTimeCode (82800/15)*/,
    -
    14478  0 /*deltaMinutes*/,
    -
    14479  25 /*letterIndex ("S")*/,
    -
    14480  },
    -
    14481  // Rule Macau 1956 1964 - Nov Sun>=1 03:30 0 S
    -
    14482  {
    -
    14483  1956 /*fromYear*/,
    -
    14484  1964 /*toYear*/,
    -
    14485  11 /*inMonth*/,
    -
    14486  7 /*onDayOfWeek*/,
    -
    14487  1 /*onDayOfMonth*/,
    -
    14488  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14489  840 /*atTimeCode (12600/15)*/,
    -
    14490  0 /*deltaMinutes*/,
    -
    14491  25 /*letterIndex ("S")*/,
    -
    14492  },
    -
    14493  // Rule Macau 1957 1964 - Mar Sun>=18 03:30 1:00 D
    -
    14494  {
    -
    14495  1957 /*fromYear*/,
    -
    14496  1964 /*toYear*/,
    -
    14497  3 /*inMonth*/,
    -
    14498  7 /*onDayOfWeek*/,
    -
    14499  18 /*onDayOfMonth*/,
    -
    14500  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14501  840 /*atTimeCode (12600/15)*/,
    -
    14502  60 /*deltaMinutes*/,
    -
    14503  13 /*letterIndex ("D")*/,
    -
    14504  },
    -
    14505  // Rule Macau 1965 1973 - Apr Sun>=16 03:30 1:00 D
    -
    14506  {
    -
    14507  1965 /*fromYear*/,
    -
    14508  1973 /*toYear*/,
    -
    14509  4 /*inMonth*/,
    -
    14510  7 /*onDayOfWeek*/,
    -
    14511  16 /*onDayOfMonth*/,
    -
    14512  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14513  840 /*atTimeCode (12600/15)*/,
    -
    14514  60 /*deltaMinutes*/,
    -
    14515  13 /*letterIndex ("D")*/,
    -
    14516  },
    -
    14517  // Rule Macau 1965 1966 - Oct Sun>=16 02:30 0 S
    -
    14518  {
    -
    14519  1965 /*fromYear*/,
    -
    14520  1966 /*toYear*/,
    -
    14521  10 /*inMonth*/,
    -
    14522  7 /*onDayOfWeek*/,
    -
    14523  16 /*onDayOfMonth*/,
    -
    14524  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14525  600 /*atTimeCode (9000/15)*/,
    -
    14526  0 /*deltaMinutes*/,
    -
    14527  25 /*letterIndex ("S")*/,
    -
    14528  },
    -
    14529  // Rule Macau 1967 1976 - Oct Sun>=16 03:30 0 S
    -
    14530  {
    -
    14531  1967 /*fromYear*/,
    -
    14532  1976 /*toYear*/,
    -
    14533  10 /*inMonth*/,
    -
    14534  7 /*onDayOfWeek*/,
    -
    14535  16 /*onDayOfMonth*/,
    -
    14536  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14537  840 /*atTimeCode (12600/15)*/,
    -
    14538  0 /*deltaMinutes*/,
    -
    14539  25 /*letterIndex ("S")*/,
    -
    14540  },
    -
    14541  // Rule Macau 1973 only - Dec 30 03:30 1:00 D
    -
    14542  {
    -
    14543  1973 /*fromYear*/,
    -
    14544  1973 /*toYear*/,
    -
    14545  12 /*inMonth*/,
    -
    14546  0 /*onDayOfWeek*/,
    -
    14547  30 /*onDayOfMonth*/,
    -
    14548  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14549  840 /*atTimeCode (12600/15)*/,
    -
    14550  60 /*deltaMinutes*/,
    -
    14551  13 /*letterIndex ("D")*/,
    -
    14552  },
    -
    14553  // Rule Macau 1975 1976 - Apr Sun>=16 03:30 1:00 D
    -
    14554  {
    -
    14555  1975 /*fromYear*/,
    -
    14556  1976 /*toYear*/,
    -
    14557  4 /*inMonth*/,
    -
    14558  7 /*onDayOfWeek*/,
    -
    14559  16 /*onDayOfMonth*/,
    -
    14560  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14561  840 /*atTimeCode (12600/15)*/,
    -
    14562  60 /*deltaMinutes*/,
    -
    14563  13 /*letterIndex ("D")*/,
    -
    14564  },
    -
    14565  // Rule Macau 1979 only - May 13 03:30 1:00 D
    -
    14566  {
    -
    14567  1979 /*fromYear*/,
    -
    14568  1979 /*toYear*/,
    -
    14569  5 /*inMonth*/,
    -
    14570  0 /*onDayOfWeek*/,
    -
    14571  13 /*onDayOfMonth*/,
    -
    14572  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14573  840 /*atTimeCode (12600/15)*/,
    -
    14574  60 /*deltaMinutes*/,
    -
    14575  13 /*letterIndex ("D")*/,
    -
    14576  },
    -
    14577  // Rule Macau 1979 only - Oct Sun>=16 03:30 0 S
    -
    14578  {
    -
    14579  1979 /*fromYear*/,
    -
    14580  1979 /*toYear*/,
    -
    14581  10 /*inMonth*/,
    -
    14582  7 /*onDayOfWeek*/,
    -
    14583  16 /*onDayOfMonth*/,
    -
    14584  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14585  840 /*atTimeCode (12600/15)*/,
    -
    14586  0 /*deltaMinutes*/,
    -
    14587  25 /*letterIndex ("S")*/,
    -
    14588  },
    -
    14589 
    -
    14590 };
    -
    14591 
    -
    14592 const complete::Info::ZonePolicy kZonePolicyMacau ACE_TIME_PROGMEM = {
    -
    14593  kZoneRulesMacau /*rules*/,
    -
    14594  28 /*numRules*/,
    -
    14595 };
    -
    14596 
    -
    14597 //---------------------------------------------------------------------------
    -
    14598 // Policy name: Malta
    -
    14599 // Rules: 8
    -
    14600 //---------------------------------------------------------------------------
    -
    14601 
    -
    14602 static const complete::Info::ZoneRule kZoneRulesMalta[] ACE_TIME_PROGMEM = {
    -
    14603  // Anchor: Rule Malta 1973 only - Sep 29 0:00s 0 -
    -
    14604  {
    -
    14605  -32767 /*fromYear*/,
    -
    14606  -32767 /*toYear*/,
    -
    14607  1 /*inMonth*/,
    -
    14608  0 /*onDayOfWeek*/,
    -
    14609  1 /*onDayOfMonth*/,
    -
    14610  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14611  0 /*atTimeCode (0/15)*/,
    -
    14612  0 /*deltaMinutes*/,
    -
    14613  0 /*letterIndex ("")*/,
    -
    14614  },
    -
    14615  // Rule Malta 1973 only - Mar 31 0:00s 1:00 S
    -
    14616  {
    -
    14617  1973 /*fromYear*/,
    -
    14618  1973 /*toYear*/,
    -
    14619  3 /*inMonth*/,
    -
    14620  0 /*onDayOfWeek*/,
    -
    14621  31 /*onDayOfMonth*/,
    -
    14622  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14623  0 /*atTimeCode (0/15)*/,
    -
    14624  60 /*deltaMinutes*/,
    -
    14625  25 /*letterIndex ("S")*/,
    -
    14626  },
    -
    14627  // Rule Malta 1973 only - Sep 29 0:00s 0 -
    -
    14628  {
    -
    14629  1973 /*fromYear*/,
    -
    14630  1973 /*toYear*/,
    -
    14631  9 /*inMonth*/,
    -
    14632  0 /*onDayOfWeek*/,
    -
    14633  29 /*onDayOfMonth*/,
    -
    14634  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14635  0 /*atTimeCode (0/15)*/,
    -
    14636  0 /*deltaMinutes*/,
    -
    14637  0 /*letterIndex ("")*/,
    -
    14638  },
    -
    14639  // Rule Malta 1974 only - Apr 21 0:00s 1:00 S
    -
    14640  {
    -
    14641  1974 /*fromYear*/,
    -
    14642  1974 /*toYear*/,
    -
    14643  4 /*inMonth*/,
    -
    14644  0 /*onDayOfWeek*/,
    -
    14645  21 /*onDayOfMonth*/,
    -
    14646  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14647  0 /*atTimeCode (0/15)*/,
    -
    14648  60 /*deltaMinutes*/,
    -
    14649  25 /*letterIndex ("S")*/,
    -
    14650  },
    -
    14651  // Rule Malta 1974 only - Sep 16 0:00s 0 -
    -
    14652  {
    -
    14653  1974 /*fromYear*/,
    -
    14654  1974 /*toYear*/,
    -
    14655  9 /*inMonth*/,
    -
    14656  0 /*onDayOfWeek*/,
    -
    14657  16 /*onDayOfMonth*/,
    -
    14658  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    14659  0 /*atTimeCode (0/15)*/,
    -
    14660  0 /*deltaMinutes*/,
    -
    14661  0 /*letterIndex ("")*/,
    -
    14662  },
    -
    14663  // Rule Malta 1975 1979 - Apr Sun>=15 2:00 1:00 S
    -
    14664  {
    -
    14665  1975 /*fromYear*/,
    -
    14666  1979 /*toYear*/,
    -
    14667  4 /*inMonth*/,
    -
    14668  7 /*onDayOfWeek*/,
    -
    14669  15 /*onDayOfMonth*/,
    -
    14670  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14671  480 /*atTimeCode (7200/15)*/,
    -
    14672  60 /*deltaMinutes*/,
    -
    14673  25 /*letterIndex ("S")*/,
    -
    14674  },
    -
    14675  // Rule Malta 1975 1980 - Sep Sun>=15 2:00 0 -
    -
    14676  {
    -
    14677  1975 /*fromYear*/,
    -
    14678  1980 /*toYear*/,
    -
    14679  9 /*inMonth*/,
    -
    14680  7 /*onDayOfWeek*/,
    -
    14681  15 /*onDayOfMonth*/,
    -
    14682  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14683  480 /*atTimeCode (7200/15)*/,
    -
    14684  0 /*deltaMinutes*/,
    -
    14685  0 /*letterIndex ("")*/,
    -
    14686  },
    -
    14687  // Rule Malta 1980 only - Mar 31 2:00 1:00 S
    -
    14688  {
    -
    14689  1980 /*fromYear*/,
    -
    14690  1980 /*toYear*/,
    -
    14691  3 /*inMonth*/,
    -
    14692  0 /*onDayOfWeek*/,
    -
    14693  31 /*onDayOfMonth*/,
    -
    14694  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14695  480 /*atTimeCode (7200/15)*/,
    -
    14696  60 /*deltaMinutes*/,
    -
    14697  25 /*letterIndex ("S")*/,
    -
    14698  },
    -
    14699 
    -
    14700 };
    -
    14701 
    -
    14702 const complete::Info::ZonePolicy kZonePolicyMalta ACE_TIME_PROGMEM = {
    -
    14703  kZoneRulesMalta /*rules*/,
    -
    14704  8 /*numRules*/,
    -
    14705 };
    -
    14706 
    -
    14707 //---------------------------------------------------------------------------
    -
    14708 // Policy name: Marengo
    -
    14709 // Rules: 5
    -
    14710 //---------------------------------------------------------------------------
    -
    14711 
    -
    14712 static const complete::Info::ZoneRule kZoneRulesMarengo[] ACE_TIME_PROGMEM = {
    -
    14713  // Anchor: Rule Marengo 1951 only - Sep lastSun 2:00 0 S
    -
    14714  {
    -
    14715  -32767 /*fromYear*/,
    -
    14716  -32767 /*toYear*/,
    -
    14717  1 /*inMonth*/,
    -
    14718  0 /*onDayOfWeek*/,
    -
    14719  1 /*onDayOfMonth*/,
    -
    14720  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14721  0 /*atTimeCode (0/15)*/,
    -
    14722  0 /*deltaMinutes*/,
    -
    14723  25 /*letterIndex ("S")*/,
    -
    14724  },
    -
    14725  // Rule Marengo 1951 only - Apr lastSun 2:00 1:00 D
    -
    14726  {
    -
    14727  1951 /*fromYear*/,
    -
    14728  1951 /*toYear*/,
    -
    14729  4 /*inMonth*/,
    -
    14730  7 /*onDayOfWeek*/,
    -
    14731  0 /*onDayOfMonth*/,
    -
    14732  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14733  480 /*atTimeCode (7200/15)*/,
    -
    14734  60 /*deltaMinutes*/,
    -
    14735  13 /*letterIndex ("D")*/,
    -
    14736  },
    -
    14737  // Rule Marengo 1951 only - Sep lastSun 2:00 0 S
    -
    14738  {
    -
    14739  1951 /*fromYear*/,
    -
    14740  1951 /*toYear*/,
    -
    14741  9 /*inMonth*/,
    -
    14742  7 /*onDayOfWeek*/,
    -
    14743  0 /*onDayOfMonth*/,
    -
    14744  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14745  480 /*atTimeCode (7200/15)*/,
    -
    14746  0 /*deltaMinutes*/,
    -
    14747  25 /*letterIndex ("S")*/,
    -
    14748  },
    -
    14749  // Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D
    -
    14750  {
    -
    14751  1954 /*fromYear*/,
    -
    14752  1960 /*toYear*/,
    -
    14753  4 /*inMonth*/,
    -
    14754  7 /*onDayOfWeek*/,
    -
    14755  0 /*onDayOfMonth*/,
    -
    14756  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14757  480 /*atTimeCode (7200/15)*/,
    -
    14758  60 /*deltaMinutes*/,
    -
    14759  13 /*letterIndex ("D")*/,
    -
    14760  },
    -
    14761  // Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S
    -
    14762  {
    -
    14763  1954 /*fromYear*/,
    -
    14764  1960 /*toYear*/,
    -
    14765  9 /*inMonth*/,
    -
    14766  7 /*onDayOfWeek*/,
    -
    14767  0 /*onDayOfMonth*/,
    -
    14768  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14769  480 /*atTimeCode (7200/15)*/,
    -
    14770  0 /*deltaMinutes*/,
    -
    14771  25 /*letterIndex ("S")*/,
    -
    14772  },
    -
    14773 
    -
    14774 };
    -
    14775 
    -
    14776 const complete::Info::ZonePolicy kZonePolicyMarengo ACE_TIME_PROGMEM = {
    -
    14777  kZoneRulesMarengo /*rules*/,
    -
    14778  5 /*numRules*/,
    -
    14779 };
    -
    14780 
    -
    14781 //---------------------------------------------------------------------------
    -
    14782 // Policy name: Mauritius
    -
    14783 // Rules: 5
    -
    14784 //---------------------------------------------------------------------------
    -
    14785 
    -
    14786 static const complete::Info::ZoneRule kZoneRulesMauritius[] ACE_TIME_PROGMEM = {
    -
    14787  // Anchor: Rule Mauritius 1983 only - Mar 21 0:00 0 -
    -
    14788  {
    -
    14789  -32767 /*fromYear*/,
    -
    14790  -32767 /*toYear*/,
    -
    14791  1 /*inMonth*/,
    -
    14792  0 /*onDayOfWeek*/,
    -
    14793  1 /*onDayOfMonth*/,
    -
    14794  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14795  0 /*atTimeCode (0/15)*/,
    -
    14796  0 /*deltaMinutes*/,
    -
    14797  0 /*letterIndex ("")*/,
    -
    14798  },
    -
    14799  // Rule Mauritius 1982 only - Oct 10 0:00 1:00 -
    -
    14800  {
    -
    14801  1982 /*fromYear*/,
    -
    14802  1982 /*toYear*/,
    -
    14803  10 /*inMonth*/,
    -
    14804  0 /*onDayOfWeek*/,
    -
    14805  10 /*onDayOfMonth*/,
    -
    14806  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14807  0 /*atTimeCode (0/15)*/,
    -
    14808  60 /*deltaMinutes*/,
    -
    14809  0 /*letterIndex ("")*/,
    -
    14810  },
    -
    14811  // Rule Mauritius 1983 only - Mar 21 0:00 0 -
    -
    14812  {
    -
    14813  1983 /*fromYear*/,
    -
    14814  1983 /*toYear*/,
    -
    14815  3 /*inMonth*/,
    -
    14816  0 /*onDayOfWeek*/,
    -
    14817  21 /*onDayOfMonth*/,
    -
    14818  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14819  0 /*atTimeCode (0/15)*/,
    -
    14820  0 /*deltaMinutes*/,
    -
    14821  0 /*letterIndex ("")*/,
    -
    14822  },
    -
    14823  // Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
    -
    14824  {
    -
    14825  2008 /*fromYear*/,
    -
    14826  2008 /*toYear*/,
    -
    14827  10 /*inMonth*/,
    -
    14828  7 /*onDayOfWeek*/,
    -
    14829  0 /*onDayOfMonth*/,
    -
    14830  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14831  480 /*atTimeCode (7200/15)*/,
    -
    14832  60 /*deltaMinutes*/,
    -
    14833  0 /*letterIndex ("")*/,
    -
    14834  },
    -
    14835  // Rule Mauritius 2009 only - Mar lastSun 2:00 0 -
    -
    14836  {
    -
    14837  2009 /*fromYear*/,
    -
    14838  2009 /*toYear*/,
    -
    14839  3 /*inMonth*/,
    -
    14840  7 /*onDayOfWeek*/,
    -
    14841  0 /*onDayOfMonth*/,
    -
    14842  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14843  480 /*atTimeCode (7200/15)*/,
    -
    14844  0 /*deltaMinutes*/,
    -
    14845  0 /*letterIndex ("")*/,
    -
    14846  },
    -
    14847 
    -
    14848 };
    -
    14849 
    -
    14850 const complete::Info::ZonePolicy kZonePolicyMauritius ACE_TIME_PROGMEM = {
    -
    14851  kZoneRulesMauritius /*rules*/,
    -
    14852  5 /*numRules*/,
    -
    14853 };
    -
    14854 
    -
    14855 //---------------------------------------------------------------------------
    -
    14856 // Policy name: Menominee
    -
    14857 // Rules: 5
    -
    14858 //---------------------------------------------------------------------------
    -
    14859 
    -
    14860 static const complete::Info::ZoneRule kZoneRulesMenominee[] ACE_TIME_PROGMEM = {
    -
    14861  // Anchor: Rule Menominee 1946 only - Sep lastSun 2:00 0 S
    -
    14862  {
    -
    14863  -32767 /*fromYear*/,
    -
    14864  -32767 /*toYear*/,
    -
    14865  1 /*inMonth*/,
    -
    14866  0 /*onDayOfWeek*/,
    -
    14867  1 /*onDayOfMonth*/,
    -
    14868  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14869  0 /*atTimeCode (0/15)*/,
    -
    14870  0 /*deltaMinutes*/,
    -
    14871  25 /*letterIndex ("S")*/,
    -
    14872  },
    -
    14873  // Rule Menominee 1946 only - Apr lastSun 2:00 1:00 D
    -
    14874  {
    -
    14875  1946 /*fromYear*/,
    -
    14876  1946 /*toYear*/,
    -
    14877  4 /*inMonth*/,
    -
    14878  7 /*onDayOfWeek*/,
    -
    14879  0 /*onDayOfMonth*/,
    -
    14880  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14881  480 /*atTimeCode (7200/15)*/,
    -
    14882  60 /*deltaMinutes*/,
    -
    14883  13 /*letterIndex ("D")*/,
    -
    14884  },
    -
    14885  // Rule Menominee 1946 only - Sep lastSun 2:00 0 S
    -
    14886  {
    -
    14887  1946 /*fromYear*/,
    -
    14888  1946 /*toYear*/,
    -
    14889  9 /*inMonth*/,
    -
    14890  7 /*onDayOfWeek*/,
    -
    14891  0 /*onDayOfMonth*/,
    -
    14892  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14893  480 /*atTimeCode (7200/15)*/,
    -
    14894  0 /*deltaMinutes*/,
    -
    14895  25 /*letterIndex ("S")*/,
    -
    14896  },
    -
    14897  // Rule Menominee 1966 only - Apr lastSun 2:00 1:00 D
    -
    14898  {
    -
    14899  1966 /*fromYear*/,
    -
    14900  1966 /*toYear*/,
    -
    14901  4 /*inMonth*/,
    -
    14902  7 /*onDayOfWeek*/,
    -
    14903  0 /*onDayOfMonth*/,
    -
    14904  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14905  480 /*atTimeCode (7200/15)*/,
    -
    14906  60 /*deltaMinutes*/,
    -
    14907  13 /*letterIndex ("D")*/,
    -
    14908  },
    -
    14909  // Rule Menominee 1966 only - Oct lastSun 2:00 0 S
    -
    14910  {
    -
    14911  1966 /*fromYear*/,
    -
    14912  1966 /*toYear*/,
    -
    14913  10 /*inMonth*/,
    -
    14914  7 /*onDayOfWeek*/,
    -
    14915  0 /*onDayOfMonth*/,
    -
    14916  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14917  480 /*atTimeCode (7200/15)*/,
    -
    14918  0 /*deltaMinutes*/,
    -
    14919  25 /*letterIndex ("S")*/,
    -
    14920  },
    -
    14921 
    -
    14922 };
    -
    14923 
    -
    14924 const complete::Info::ZonePolicy kZonePolicyMenominee ACE_TIME_PROGMEM = {
    -
    14925  kZoneRulesMenominee /*rules*/,
    -
    14926  5 /*numRules*/,
    -
    14927 };
    -
    14928 
    -
    14929 //---------------------------------------------------------------------------
    -
    14930 // Policy name: Mexico
    -
    14931 // Rules: 17
    -
    14932 //---------------------------------------------------------------------------
    -
    14933 
    -
    14934 static const complete::Info::ZoneRule kZoneRulesMexico[] ACE_TIME_PROGMEM = {
    -
    14935  // Anchor: Rule Mexico 1931 only - Oct 1 0:00 0 S
    -
    14936  {
    -
    14937  -32767 /*fromYear*/,
    -
    14938  -32767 /*toYear*/,
    -
    14939  1 /*inMonth*/,
    -
    14940  0 /*onDayOfWeek*/,
    -
    14941  1 /*onDayOfMonth*/,
    -
    14942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14943  0 /*atTimeCode (0/15)*/,
    -
    14944  0 /*deltaMinutes*/,
    -
    14945  25 /*letterIndex ("S")*/,
    -
    14946  },
    -
    14947  // Rule Mexico 1931 only - Apr 30 0:00 1:00 D
    -
    14948  {
    -
    14949  1931 /*fromYear*/,
    -
    14950  1931 /*toYear*/,
    -
    14951  4 /*inMonth*/,
    -
    14952  0 /*onDayOfWeek*/,
    -
    14953  30 /*onDayOfMonth*/,
    -
    14954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14955  0 /*atTimeCode (0/15)*/,
    -
    14956  60 /*deltaMinutes*/,
    -
    14957  13 /*letterIndex ("D")*/,
    -
    14958  },
    -
    14959  // Rule Mexico 1931 only - Oct 1 0:00 0 S
    -
    14960  {
    -
    14961  1931 /*fromYear*/,
    -
    14962  1931 /*toYear*/,
    -
    14963  10 /*inMonth*/,
    -
    14964  0 /*onDayOfWeek*/,
    -
    14965  1 /*onDayOfMonth*/,
    -
    14966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14967  0 /*atTimeCode (0/15)*/,
    -
    14968  0 /*deltaMinutes*/,
    -
    14969  25 /*letterIndex ("S")*/,
    -
    14970  },
    -
    14971  // Rule Mexico 1939 only - Feb 5 0:00 1:00 D
    -
    14972  {
    -
    14973  1939 /*fromYear*/,
    -
    14974  1939 /*toYear*/,
    -
    14975  2 /*inMonth*/,
    -
    14976  0 /*onDayOfWeek*/,
    -
    14977  5 /*onDayOfMonth*/,
    -
    14978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14979  0 /*atTimeCode (0/15)*/,
    -
    14980  60 /*deltaMinutes*/,
    -
    14981  13 /*letterIndex ("D")*/,
    -
    14982  },
    -
    14983  // Rule Mexico 1939 only - Jun 25 0:00 0 S
    -
    14984  {
    -
    14985  1939 /*fromYear*/,
    -
    14986  1939 /*toYear*/,
    -
    14987  6 /*inMonth*/,
    -
    14988  0 /*onDayOfWeek*/,
    -
    14989  25 /*onDayOfMonth*/,
    -
    14990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    14991  0 /*atTimeCode (0/15)*/,
    -
    14992  0 /*deltaMinutes*/,
    -
    14993  25 /*letterIndex ("S")*/,
    -
    14994  },
    -
    14995  // Rule Mexico 1940 only - Dec 9 0:00 1:00 D
    -
    14996  {
    -
    14997  1940 /*fromYear*/,
    -
    14998  1940 /*toYear*/,
    -
    14999  12 /*inMonth*/,
    -
    15000  0 /*onDayOfWeek*/,
    -
    15001  9 /*onDayOfMonth*/,
    -
    15002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15003  0 /*atTimeCode (0/15)*/,
    -
    15004  60 /*deltaMinutes*/,
    -
    15005  13 /*letterIndex ("D")*/,
    -
    15006  },
    -
    15007  // Rule Mexico 1941 only - Apr 1 0:00 0 S
    -
    15008  {
    -
    15009  1941 /*fromYear*/,
    -
    15010  1941 /*toYear*/,
    -
    15011  4 /*inMonth*/,
    -
    15012  0 /*onDayOfWeek*/,
    -
    15013  1 /*onDayOfMonth*/,
    -
    15014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15015  0 /*atTimeCode (0/15)*/,
    -
    15016  0 /*deltaMinutes*/,
    -
    15017  25 /*letterIndex ("S")*/,
    -
    15018  },
    -
    15019  // Rule Mexico 1943 only - Dec 16 0:00 1:00 W
    -
    15020  {
    -
    15021  1943 /*fromYear*/,
    -
    15022  1943 /*toYear*/,
    -
    15023  12 /*inMonth*/,
    -
    15024  0 /*onDayOfWeek*/,
    -
    15025  16 /*onDayOfMonth*/,
    -
    15026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15027  0 /*atTimeCode (0/15)*/,
    -
    15028  60 /*deltaMinutes*/,
    -
    15029  26 /*letterIndex ("W")*/,
    -
    15030  },
    -
    15031  // Rule Mexico 1944 only - May 1 0:00 0 S
    -
    15032  {
    -
    15033  1944 /*fromYear*/,
    -
    15034  1944 /*toYear*/,
    -
    15035  5 /*inMonth*/,
    -
    15036  0 /*onDayOfWeek*/,
    -
    15037  1 /*onDayOfMonth*/,
    -
    15038  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15039  0 /*atTimeCode (0/15)*/,
    -
    15040  0 /*deltaMinutes*/,
    -
    15041  25 /*letterIndex ("S")*/,
    -
    15042  },
    -
    15043  // Rule Mexico 1950 only - Feb 12 0:00 1:00 D
    -
    15044  {
    -
    15045  1950 /*fromYear*/,
    -
    15046  1950 /*toYear*/,
    -
    15047  2 /*inMonth*/,
    -
    15048  0 /*onDayOfWeek*/,
    -
    15049  12 /*onDayOfMonth*/,
    -
    15050  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15051  0 /*atTimeCode (0/15)*/,
    -
    15052  60 /*deltaMinutes*/,
    -
    15053  13 /*letterIndex ("D")*/,
    -
    15054  },
    -
    15055  // Rule Mexico 1950 only - Jul 30 0:00 0 S
    -
    15056  {
    -
    15057  1950 /*fromYear*/,
    -
    15058  1950 /*toYear*/,
    -
    15059  7 /*inMonth*/,
    -
    15060  0 /*onDayOfWeek*/,
    -
    15061  30 /*onDayOfMonth*/,
    -
    15062  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15063  0 /*atTimeCode (0/15)*/,
    -
    15064  0 /*deltaMinutes*/,
    -
    15065  25 /*letterIndex ("S")*/,
    -
    15066  },
    -
    15067  // Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D
    -
    15068  {
    -
    15069  1996 /*fromYear*/,
    -
    15070  2000 /*toYear*/,
    -
    15071  4 /*inMonth*/,
    -
    15072  7 /*onDayOfWeek*/,
    -
    15073  1 /*onDayOfMonth*/,
    -
    15074  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15075  480 /*atTimeCode (7200/15)*/,
    -
    15076  60 /*deltaMinutes*/,
    -
    15077  13 /*letterIndex ("D")*/,
    -
    15078  },
    -
    15079  // Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S
    -
    15080  {
    -
    15081  1996 /*fromYear*/,
    -
    15082  2000 /*toYear*/,
    -
    15083  10 /*inMonth*/,
    -
    15084  7 /*onDayOfWeek*/,
    -
    15085  0 /*onDayOfMonth*/,
    -
    15086  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15087  480 /*atTimeCode (7200/15)*/,
    -
    15088  0 /*deltaMinutes*/,
    -
    15089  25 /*letterIndex ("S")*/,
    -
    15090  },
    -
    15091  // Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D
    -
    15092  {
    -
    15093  2001 /*fromYear*/,
    -
    15094  2001 /*toYear*/,
    -
    15095  5 /*inMonth*/,
    -
    15096  7 /*onDayOfWeek*/,
    -
    15097  1 /*onDayOfMonth*/,
    -
    15098  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15099  480 /*atTimeCode (7200/15)*/,
    -
    15100  60 /*deltaMinutes*/,
    -
    15101  13 /*letterIndex ("D")*/,
    -
    15102  },
    -
    15103  // Rule Mexico 2001 only - Sep lastSun 2:00 0 S
    -
    15104  {
    -
    15105  2001 /*fromYear*/,
    -
    15106  2001 /*toYear*/,
    -
    15107  9 /*inMonth*/,
    -
    15108  7 /*onDayOfWeek*/,
    -
    15109  0 /*onDayOfMonth*/,
    -
    15110  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15111  480 /*atTimeCode (7200/15)*/,
    -
    15112  0 /*deltaMinutes*/,
    -
    15113  25 /*letterIndex ("S")*/,
    -
    15114  },
    -
    15115  // Rule Mexico 2002 2022 - Apr Sun>=1 2:00 1:00 D
    -
    15116  {
    -
    15117  2002 /*fromYear*/,
    -
    15118  2022 /*toYear*/,
    -
    15119  4 /*inMonth*/,
    -
    15120  7 /*onDayOfWeek*/,
    -
    15121  1 /*onDayOfMonth*/,
    -
    15122  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15123  480 /*atTimeCode (7200/15)*/,
    -
    15124  60 /*deltaMinutes*/,
    -
    15125  13 /*letterIndex ("D")*/,
    -
    15126  },
    -
    15127  // Rule Mexico 2002 2022 - Oct lastSun 2:00 0 S
    -
    15128  {
    -
    15129  2002 /*fromYear*/,
    -
    15130  2022 /*toYear*/,
    -
    15131  10 /*inMonth*/,
    -
    15132  7 /*onDayOfWeek*/,
    -
    15133  0 /*onDayOfMonth*/,
    -
    15134  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15135  480 /*atTimeCode (7200/15)*/,
    -
    15136  0 /*deltaMinutes*/,
    -
    15137  25 /*letterIndex ("S")*/,
    -
    15138  },
    -
    15139 
    -
    15140 };
    -
    15141 
    -
    15142 const complete::Info::ZonePolicy kZonePolicyMexico ACE_TIME_PROGMEM = {
    -
    15143  kZoneRulesMexico /*rules*/,
    -
    15144  17 /*numRules*/,
    -
    15145 };
    -
    15146 
    -
    15147 //---------------------------------------------------------------------------
    -
    15148 // Policy name: Moldova
    -
    15149 // Rules: 3
    -
    15150 //---------------------------------------------------------------------------
    -
    15151 
    -
    15152 static const complete::Info::ZoneRule kZoneRulesMoldova[] ACE_TIME_PROGMEM = {
    -
    15153  // Anchor: Rule Moldova 1997 max - Oct lastSun 3:00 0 -
    -
    15154  {
    -
    15155  -32767 /*fromYear*/,
    -
    15156  -32767 /*toYear*/,
    -
    15157  1 /*inMonth*/,
    -
    15158  0 /*onDayOfWeek*/,
    -
    15159  1 /*onDayOfMonth*/,
    -
    15160  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15161  0 /*atTimeCode (0/15)*/,
    -
    15162  0 /*deltaMinutes*/,
    -
    15163  0 /*letterIndex ("")*/,
    -
    15164  },
    -
    15165  // Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S
    -
    15166  {
    -
    15167  1997 /*fromYear*/,
    -
    15168  32766 /*toYear*/,
    -
    15169  3 /*inMonth*/,
    -
    15170  7 /*onDayOfWeek*/,
    -
    15171  0 /*onDayOfMonth*/,
    -
    15172  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15173  480 /*atTimeCode (7200/15)*/,
    -
    15174  60 /*deltaMinutes*/,
    -
    15175  25 /*letterIndex ("S")*/,
    -
    15176  },
    -
    15177  // Rule Moldova 1997 max - Oct lastSun 3:00 0 -
    -
    15178  {
    -
    15179  1997 /*fromYear*/,
    -
    15180  32766 /*toYear*/,
    -
    15181  10 /*inMonth*/,
    -
    15182  7 /*onDayOfWeek*/,
    -
    15183  0 /*onDayOfMonth*/,
    -
    15184  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15185  720 /*atTimeCode (10800/15)*/,
    -
    15186  0 /*deltaMinutes*/,
    -
    15187  0 /*letterIndex ("")*/,
    -
    15188  },
    -
    15189 
    -
    15190 };
    -
    15191 
    -
    15192 const complete::Info::ZonePolicy kZonePolicyMoldova ACE_TIME_PROGMEM = {
    -
    15193  kZoneRulesMoldova /*rules*/,
    -
    15194  3 /*numRules*/,
    -
    15195 };
    -
    15196 
    -
    15197 //---------------------------------------------------------------------------
    -
    15198 // Policy name: Moncton
    -
    15199 // Rules: 14
    -
    15200 //---------------------------------------------------------------------------
    -
    15201 
    -
    15202 static const complete::Info::ZoneRule kZoneRulesMoncton[] ACE_TIME_PROGMEM = {
    -
    15203  // Anchor: Rule Moncton 1933 1935 - Sep Sun>=8 1:00 0 S
    -
    15204  {
    -
    15205  -32767 /*fromYear*/,
    -
    15206  -32767 /*toYear*/,
    -
    15207  1 /*inMonth*/,
    -
    15208  0 /*onDayOfWeek*/,
    -
    15209  1 /*onDayOfMonth*/,
    -
    15210  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15211  0 /*atTimeCode (0/15)*/,
    -
    15212  0 /*deltaMinutes*/,
    -
    15213  25 /*letterIndex ("S")*/,
    -
    15214  },
    -
    15215  // Rule Moncton 1933 1935 - Jun Sun>=8 1:00 1:00 D
    -
    15216  {
    -
    15217  1933 /*fromYear*/,
    -
    15218  1935 /*toYear*/,
    -
    15219  6 /*inMonth*/,
    -
    15220  7 /*onDayOfWeek*/,
    -
    15221  8 /*onDayOfMonth*/,
    -
    15222  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15223  240 /*atTimeCode (3600/15)*/,
    -
    15224  60 /*deltaMinutes*/,
    -
    15225  13 /*letterIndex ("D")*/,
    -
    15226  },
    -
    15227  // Rule Moncton 1933 1935 - Sep Sun>=8 1:00 0 S
    -
    15228  {
    -
    15229  1933 /*fromYear*/,
    -
    15230  1935 /*toYear*/,
    -
    15231  9 /*inMonth*/,
    -
    15232  7 /*onDayOfWeek*/,
    -
    15233  8 /*onDayOfMonth*/,
    -
    15234  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15235  240 /*atTimeCode (3600/15)*/,
    -
    15236  0 /*deltaMinutes*/,
    -
    15237  25 /*letterIndex ("S")*/,
    -
    15238  },
    -
    15239  // Rule Moncton 1936 1938 - Jun Sun>=1 1:00 1:00 D
    -
    15240  {
    -
    15241  1936 /*fromYear*/,
    -
    15242  1938 /*toYear*/,
    -
    15243  6 /*inMonth*/,
    -
    15244  7 /*onDayOfWeek*/,
    -
    15245  1 /*onDayOfMonth*/,
    -
    15246  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15247  240 /*atTimeCode (3600/15)*/,
    -
    15248  60 /*deltaMinutes*/,
    -
    15249  13 /*letterIndex ("D")*/,
    -
    15250  },
    -
    15251  // Rule Moncton 1936 1938 - Sep Sun>=1 1:00 0 S
    -
    15252  {
    -
    15253  1936 /*fromYear*/,
    -
    15254  1938 /*toYear*/,
    -
    15255  9 /*inMonth*/,
    -
    15256  7 /*onDayOfWeek*/,
    -
    15257  1 /*onDayOfMonth*/,
    -
    15258  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15259  240 /*atTimeCode (3600/15)*/,
    -
    15260  0 /*deltaMinutes*/,
    -
    15261  25 /*letterIndex ("S")*/,
    -
    15262  },
    -
    15263  // Rule Moncton 1939 only - May 27 1:00 1:00 D
    -
    15264  {
    -
    15265  1939 /*fromYear*/,
    -
    15266  1939 /*toYear*/,
    -
    15267  5 /*inMonth*/,
    -
    15268  0 /*onDayOfWeek*/,
    -
    15269  27 /*onDayOfMonth*/,
    -
    15270  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15271  240 /*atTimeCode (3600/15)*/,
    -
    15272  60 /*deltaMinutes*/,
    -
    15273  13 /*letterIndex ("D")*/,
    -
    15274  },
    -
    15275  // Rule Moncton 1939 1941 - Sep Sat>=21 1:00 0 S
    -
    15276  {
    -
    15277  1939 /*fromYear*/,
    -
    15278  1941 /*toYear*/,
    -
    15279  9 /*inMonth*/,
    -
    15280  6 /*onDayOfWeek*/,
    -
    15281  21 /*onDayOfMonth*/,
    -
    15282  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15283  240 /*atTimeCode (3600/15)*/,
    -
    15284  0 /*deltaMinutes*/,
    -
    15285  25 /*letterIndex ("S")*/,
    -
    15286  },
    -
    15287  // Rule Moncton 1940 only - May 19 1:00 1:00 D
    -
    15288  {
    -
    15289  1940 /*fromYear*/,
    -
    15290  1940 /*toYear*/,
    -
    15291  5 /*inMonth*/,
    -
    15292  0 /*onDayOfWeek*/,
    -
    15293  19 /*onDayOfMonth*/,
    -
    15294  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15295  240 /*atTimeCode (3600/15)*/,
    -
    15296  60 /*deltaMinutes*/,
    -
    15297  13 /*letterIndex ("D")*/,
    -
    15298  },
    -
    15299  // Rule Moncton 1941 only - May 4 1:00 1:00 D
    -
    15300  {
    -
    15301  1941 /*fromYear*/,
    -
    15302  1941 /*toYear*/,
    -
    15303  5 /*inMonth*/,
    -
    15304  0 /*onDayOfWeek*/,
    -
    15305  4 /*onDayOfMonth*/,
    -
    15306  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15307  240 /*atTimeCode (3600/15)*/,
    -
    15308  60 /*deltaMinutes*/,
    -
    15309  13 /*letterIndex ("D")*/,
    -
    15310  },
    -
    15311  // Rule Moncton 1946 1972 - Apr lastSun 2:00 1:00 D
    -
    15312  {
    -
    15313  1946 /*fromYear*/,
    -
    15314  1972 /*toYear*/,
    -
    15315  4 /*inMonth*/,
    -
    15316  7 /*onDayOfWeek*/,
    -
    15317  0 /*onDayOfMonth*/,
    -
    15318  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15319  480 /*atTimeCode (7200/15)*/,
    -
    15320  60 /*deltaMinutes*/,
    -
    15321  13 /*letterIndex ("D")*/,
    -
    15322  },
    -
    15323  // Rule Moncton 1946 1956 - Sep lastSun 2:00 0 S
    -
    15324  {
    -
    15325  1946 /*fromYear*/,
    -
    15326  1956 /*toYear*/,
    -
    15327  9 /*inMonth*/,
    -
    15328  7 /*onDayOfWeek*/,
    -
    15329  0 /*onDayOfMonth*/,
    -
    15330  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15331  480 /*atTimeCode (7200/15)*/,
    -
    15332  0 /*deltaMinutes*/,
    -
    15333  25 /*letterIndex ("S")*/,
    -
    15334  },
    -
    15335  // Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S
    -
    15336  {
    -
    15337  1957 /*fromYear*/,
    -
    15338  1972 /*toYear*/,
    -
    15339  10 /*inMonth*/,
    -
    15340  7 /*onDayOfWeek*/,
    -
    15341  0 /*onDayOfMonth*/,
    -
    15342  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15343  480 /*atTimeCode (7200/15)*/,
    -
    15344  0 /*deltaMinutes*/,
    -
    15345  25 /*letterIndex ("S")*/,
    -
    15346  },
    -
    15347  // Rule Moncton 1993 2006 - Apr Sun>=1 0:01 1:00 D
    -
    15348  {
    -
    15349  1993 /*fromYear*/,
    -
    15350  2006 /*toYear*/,
    -
    15351  4 /*inMonth*/,
    -
    15352  7 /*onDayOfWeek*/,
    -
    15353  1 /*onDayOfMonth*/,
    -
    15354  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15355  4 /*atTimeCode (60/15)*/,
    -
    15356  60 /*deltaMinutes*/,
    -
    15357  13 /*letterIndex ("D")*/,
    -
    15358  },
    -
    15359  // Rule Moncton 1993 2006 - Oct lastSun 0:01 0 S
    -
    15360  {
    -
    15361  1993 /*fromYear*/,
    -
    15362  2006 /*toYear*/,
    -
    15363  10 /*inMonth*/,
    -
    15364  7 /*onDayOfWeek*/,
    -
    15365  0 /*onDayOfMonth*/,
    -
    15366  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15367  4 /*atTimeCode (60/15)*/,
    -
    15368  0 /*deltaMinutes*/,
    -
    15369  25 /*letterIndex ("S")*/,
    -
    15370  },
    -
    15371 
    -
    15372 };
    -
    15373 
    -
    15374 const complete::Info::ZonePolicy kZonePolicyMoncton ACE_TIME_PROGMEM = {
    -
    15375  kZoneRulesMoncton /*rules*/,
    -
    15376  14 /*numRules*/,
    -
    15377 };
    -
    15378 
    -
    15379 //---------------------------------------------------------------------------
    -
    15380 // Policy name: Mongol
    -
    15381 // Rules: 10
    -
    15382 //---------------------------------------------------------------------------
    -
    15383 
    -
    15384 static const complete::Info::ZoneRule kZoneRulesMongol[] ACE_TIME_PROGMEM = {
    -
    15385  // Anchor: Rule Mongol 1983 only - Oct 1 0:00 0 -
    -
    15386  {
    -
    15387  -32767 /*fromYear*/,
    -
    15388  -32767 /*toYear*/,
    -
    15389  1 /*inMonth*/,
    -
    15390  0 /*onDayOfWeek*/,
    -
    15391  1 /*onDayOfMonth*/,
    -
    15392  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15393  0 /*atTimeCode (0/15)*/,
    -
    15394  0 /*deltaMinutes*/,
    -
    15395  0 /*letterIndex ("")*/,
    -
    15396  },
    -
    15397  // Rule Mongol 1983 1984 - Apr 1 0:00 1:00 -
    -
    15398  {
    -
    15399  1983 /*fromYear*/,
    -
    15400  1984 /*toYear*/,
    -
    15401  4 /*inMonth*/,
    -
    15402  0 /*onDayOfWeek*/,
    -
    15403  1 /*onDayOfMonth*/,
    -
    15404  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15405  0 /*atTimeCode (0/15)*/,
    -
    15406  60 /*deltaMinutes*/,
    -
    15407  0 /*letterIndex ("")*/,
    -
    15408  },
    -
    15409  // Rule Mongol 1983 only - Oct 1 0:00 0 -
    -
    15410  {
    -
    15411  1983 /*fromYear*/,
    -
    15412  1983 /*toYear*/,
    -
    15413  10 /*inMonth*/,
    -
    15414  0 /*onDayOfWeek*/,
    -
    15415  1 /*onDayOfMonth*/,
    -
    15416  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15417  0 /*atTimeCode (0/15)*/,
    -
    15418  0 /*deltaMinutes*/,
    -
    15419  0 /*letterIndex ("")*/,
    -
    15420  },
    -
    15421  // Rule Mongol 1985 1998 - Mar lastSun 0:00 1:00 -
    -
    15422  {
    -
    15423  1985 /*fromYear*/,
    -
    15424  1998 /*toYear*/,
    -
    15425  3 /*inMonth*/,
    -
    15426  7 /*onDayOfWeek*/,
    -
    15427  0 /*onDayOfMonth*/,
    -
    15428  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15429  0 /*atTimeCode (0/15)*/,
    -
    15430  60 /*deltaMinutes*/,
    -
    15431  0 /*letterIndex ("")*/,
    -
    15432  },
    -
    15433  // Rule Mongol 1984 1998 - Sep lastSun 0:00 0 -
    -
    15434  {
    -
    15435  1984 /*fromYear*/,
    -
    15436  1998 /*toYear*/,
    -
    15437  9 /*inMonth*/,
    -
    15438  7 /*onDayOfWeek*/,
    -
    15439  0 /*onDayOfMonth*/,
    -
    15440  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15441  0 /*atTimeCode (0/15)*/,
    -
    15442  0 /*deltaMinutes*/,
    -
    15443  0 /*letterIndex ("")*/,
    -
    15444  },
    -
    15445  // Rule Mongol 2001 only - Apr lastSat 2:00 1:00 -
    -
    15446  {
    -
    15447  2001 /*fromYear*/,
    -
    15448  2001 /*toYear*/,
    -
    15449  4 /*inMonth*/,
    -
    15450  6 /*onDayOfWeek*/,
    -
    15451  0 /*onDayOfMonth*/,
    -
    15452  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15453  480 /*atTimeCode (7200/15)*/,
    -
    15454  60 /*deltaMinutes*/,
    -
    15455  0 /*letterIndex ("")*/,
    -
    15456  },
    -
    15457  // Rule Mongol 2001 2006 - Sep lastSat 2:00 0 -
    -
    15458  {
    -
    15459  2001 /*fromYear*/,
    -
    15460  2006 /*toYear*/,
    -
    15461  9 /*inMonth*/,
    -
    15462  6 /*onDayOfWeek*/,
    -
    15463  0 /*onDayOfMonth*/,
    -
    15464  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15465  480 /*atTimeCode (7200/15)*/,
    -
    15466  0 /*deltaMinutes*/,
    -
    15467  0 /*letterIndex ("")*/,
    -
    15468  },
    -
    15469  // Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 -
    -
    15470  {
    -
    15471  2002 /*fromYear*/,
    -
    15472  2006 /*toYear*/,
    -
    15473  3 /*inMonth*/,
    -
    15474  6 /*onDayOfWeek*/,
    -
    15475  0 /*onDayOfMonth*/,
    -
    15476  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15477  480 /*atTimeCode (7200/15)*/,
    -
    15478  60 /*deltaMinutes*/,
    -
    15479  0 /*letterIndex ("")*/,
    -
    15480  },
    -
    15481  // Rule Mongol 2015 2016 - Mar lastSat 2:00 1:00 -
    -
    15482  {
    -
    15483  2015 /*fromYear*/,
    -
    15484  2016 /*toYear*/,
    -
    15485  3 /*inMonth*/,
    -
    15486  6 /*onDayOfWeek*/,
    -
    15487  0 /*onDayOfMonth*/,
    -
    15488  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15489  480 /*atTimeCode (7200/15)*/,
    -
    15490  60 /*deltaMinutes*/,
    -
    15491  0 /*letterIndex ("")*/,
    -
    15492  },
    -
    15493  // Rule Mongol 2015 2016 - Sep lastSat 0:00 0 -
    -
    15494  {
    -
    15495  2015 /*fromYear*/,
    -
    15496  2016 /*toYear*/,
    -
    15497  9 /*inMonth*/,
    -
    15498  6 /*onDayOfWeek*/,
    -
    15499  0 /*onDayOfMonth*/,
    -
    15500  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15501  0 /*atTimeCode (0/15)*/,
    -
    15502  0 /*deltaMinutes*/,
    -
    15503  0 /*letterIndex ("")*/,
    -
    15504  },
    -
    15505 
    -
    15506 };
    -
    15507 
    -
    15508 const complete::Info::ZonePolicy kZonePolicyMongol ACE_TIME_PROGMEM = {
    -
    15509  kZoneRulesMongol /*rules*/,
    -
    15510  10 /*numRules*/,
    -
    15511 };
    -
    15512 
    -
    15513 //---------------------------------------------------------------------------
    -
    15514 // Policy name: Morocco
    -
    15515 // Rules: 184
    -
    15516 //---------------------------------------------------------------------------
    -
    15517 
    -
    15518 static const complete::Info::ZoneRule kZoneRulesMorocco[] ACE_TIME_PROGMEM = {
    -
    15519  // Anchor: Rule Morocco 1939 only - Nov 19 0:00 0 -
    -
    15520  {
    -
    15521  -32767 /*fromYear*/,
    -
    15522  -32767 /*toYear*/,
    -
    15523  1 /*inMonth*/,
    -
    15524  0 /*onDayOfWeek*/,
    -
    15525  1 /*onDayOfMonth*/,
    -
    15526  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15527  0 /*atTimeCode (0/15)*/,
    -
    15528  0 /*deltaMinutes*/,
    -
    15529  0 /*letterIndex ("")*/,
    -
    15530  },
    -
    15531  // Rule Morocco 1939 only - Sep 12 0:00 1:00 -
    -
    15532  {
    -
    15533  1939 /*fromYear*/,
    -
    15534  1939 /*toYear*/,
    -
    15535  9 /*inMonth*/,
    -
    15536  0 /*onDayOfWeek*/,
    -
    15537  12 /*onDayOfMonth*/,
    -
    15538  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15539  0 /*atTimeCode (0/15)*/,
    -
    15540  60 /*deltaMinutes*/,
    -
    15541  0 /*letterIndex ("")*/,
    -
    15542  },
    -
    15543  // Rule Morocco 1939 only - Nov 19 0:00 0 -
    -
    15544  {
    -
    15545  1939 /*fromYear*/,
    -
    15546  1939 /*toYear*/,
    -
    15547  11 /*inMonth*/,
    -
    15548  0 /*onDayOfWeek*/,
    -
    15549  19 /*onDayOfMonth*/,
    -
    15550  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15551  0 /*atTimeCode (0/15)*/,
    -
    15552  0 /*deltaMinutes*/,
    -
    15553  0 /*letterIndex ("")*/,
    -
    15554  },
    -
    15555  // Rule Morocco 1940 only - Feb 25 0:00 1:00 -
    -
    15556  {
    -
    15557  1940 /*fromYear*/,
    -
    15558  1940 /*toYear*/,
    -
    15559  2 /*inMonth*/,
    -
    15560  0 /*onDayOfWeek*/,
    -
    15561  25 /*onDayOfMonth*/,
    -
    15562  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15563  0 /*atTimeCode (0/15)*/,
    -
    15564  60 /*deltaMinutes*/,
    -
    15565  0 /*letterIndex ("")*/,
    -
    15566  },
    -
    15567  // Rule Morocco 1945 only - Nov 18 0:00 0 -
    -
    15568  {
    -
    15569  1945 /*fromYear*/,
    -
    15570  1945 /*toYear*/,
    -
    15571  11 /*inMonth*/,
    -
    15572  0 /*onDayOfWeek*/,
    -
    15573  18 /*onDayOfMonth*/,
    -
    15574  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15575  0 /*atTimeCode (0/15)*/,
    -
    15576  0 /*deltaMinutes*/,
    -
    15577  0 /*letterIndex ("")*/,
    -
    15578  },
    -
    15579  // Rule Morocco 1950 only - Jun 11 0:00 1:00 -
    -
    15580  {
    -
    15581  1950 /*fromYear*/,
    -
    15582  1950 /*toYear*/,
    -
    15583  6 /*inMonth*/,
    -
    15584  0 /*onDayOfWeek*/,
    -
    15585  11 /*onDayOfMonth*/,
    -
    15586  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15587  0 /*atTimeCode (0/15)*/,
    -
    15588  60 /*deltaMinutes*/,
    -
    15589  0 /*letterIndex ("")*/,
    -
    15590  },
    -
    15591  // Rule Morocco 1950 only - Oct 29 0:00 0 -
    -
    15592  {
    -
    15593  1950 /*fromYear*/,
    -
    15594  1950 /*toYear*/,
    -
    15595  10 /*inMonth*/,
    -
    15596  0 /*onDayOfWeek*/,
    -
    15597  29 /*onDayOfMonth*/,
    -
    15598  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15599  0 /*atTimeCode (0/15)*/,
    -
    15600  0 /*deltaMinutes*/,
    -
    15601  0 /*letterIndex ("")*/,
    -
    15602  },
    -
    15603  // Rule Morocco 1967 only - Jun 3 12:00 1:00 -
    -
    15604  {
    -
    15605  1967 /*fromYear*/,
    -
    15606  1967 /*toYear*/,
    -
    15607  6 /*inMonth*/,
    -
    15608  0 /*onDayOfWeek*/,
    -
    15609  3 /*onDayOfMonth*/,
    -
    15610  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15611  2880 /*atTimeCode (43200/15)*/,
    -
    15612  60 /*deltaMinutes*/,
    -
    15613  0 /*letterIndex ("")*/,
    -
    15614  },
    -
    15615  // Rule Morocco 1967 only - Oct 1 0:00 0 -
    -
    15616  {
    -
    15617  1967 /*fromYear*/,
    -
    15618  1967 /*toYear*/,
    -
    15619  10 /*inMonth*/,
    -
    15620  0 /*onDayOfWeek*/,
    -
    15621  1 /*onDayOfMonth*/,
    -
    15622  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15623  0 /*atTimeCode (0/15)*/,
    -
    15624  0 /*deltaMinutes*/,
    -
    15625  0 /*letterIndex ("")*/,
    -
    15626  },
    -
    15627  // Rule Morocco 1974 only - Jun 24 0:00 1:00 -
    -
    15628  {
    -
    15629  1974 /*fromYear*/,
    -
    15630  1974 /*toYear*/,
    -
    15631  6 /*inMonth*/,
    -
    15632  0 /*onDayOfWeek*/,
    -
    15633  24 /*onDayOfMonth*/,
    -
    15634  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15635  0 /*atTimeCode (0/15)*/,
    -
    15636  60 /*deltaMinutes*/,
    -
    15637  0 /*letterIndex ("")*/,
    -
    15638  },
    -
    15639  // Rule Morocco 1974 only - Sep 1 0:00 0 -
    -
    15640  {
    -
    15641  1974 /*fromYear*/,
    -
    15642  1974 /*toYear*/,
    -
    15643  9 /*inMonth*/,
    -
    15644  0 /*onDayOfWeek*/,
    -
    15645  1 /*onDayOfMonth*/,
    -
    15646  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15647  0 /*atTimeCode (0/15)*/,
    -
    15648  0 /*deltaMinutes*/,
    -
    15649  0 /*letterIndex ("")*/,
    -
    15650  },
    -
    15651  // Rule Morocco 1976 1977 - May 1 0:00 1:00 -
    -
    15652  {
    -
    15653  1976 /*fromYear*/,
    -
    15654  1977 /*toYear*/,
    -
    15655  5 /*inMonth*/,
    -
    15656  0 /*onDayOfWeek*/,
    -
    15657  1 /*onDayOfMonth*/,
    -
    15658  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15659  0 /*atTimeCode (0/15)*/,
    -
    15660  60 /*deltaMinutes*/,
    -
    15661  0 /*letterIndex ("")*/,
    -
    15662  },
    -
    15663  // Rule Morocco 1976 only - Aug 1 0:00 0 -
    -
    15664  {
    -
    15665  1976 /*fromYear*/,
    -
    15666  1976 /*toYear*/,
    -
    15667  8 /*inMonth*/,
    -
    15668  0 /*onDayOfWeek*/,
    -
    15669  1 /*onDayOfMonth*/,
    -
    15670  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15671  0 /*atTimeCode (0/15)*/,
    -
    15672  0 /*deltaMinutes*/,
    -
    15673  0 /*letterIndex ("")*/,
    -
    15674  },
    -
    15675  // Rule Morocco 1977 only - Sep 28 0:00 0 -
    -
    15676  {
    -
    15677  1977 /*fromYear*/,
    -
    15678  1977 /*toYear*/,
    -
    15679  9 /*inMonth*/,
    -
    15680  0 /*onDayOfWeek*/,
    -
    15681  28 /*onDayOfMonth*/,
    -
    15682  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15683  0 /*atTimeCode (0/15)*/,
    -
    15684  0 /*deltaMinutes*/,
    -
    15685  0 /*letterIndex ("")*/,
    -
    15686  },
    -
    15687  // Rule Morocco 1978 only - Jun 1 0:00 1:00 -
    -
    15688  {
    -
    15689  1978 /*fromYear*/,
    -
    15690  1978 /*toYear*/,
    -
    15691  6 /*inMonth*/,
    -
    15692  0 /*onDayOfWeek*/,
    -
    15693  1 /*onDayOfMonth*/,
    -
    15694  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15695  0 /*atTimeCode (0/15)*/,
    -
    15696  60 /*deltaMinutes*/,
    -
    15697  0 /*letterIndex ("")*/,
    -
    15698  },
    -
    15699  // Rule Morocco 1978 only - Aug 4 0:00 0 -
    -
    15700  {
    -
    15701  1978 /*fromYear*/,
    -
    15702  1978 /*toYear*/,
    -
    15703  8 /*inMonth*/,
    -
    15704  0 /*onDayOfWeek*/,
    -
    15705  4 /*onDayOfMonth*/,
    -
    15706  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15707  0 /*atTimeCode (0/15)*/,
    -
    15708  0 /*deltaMinutes*/,
    -
    15709  0 /*letterIndex ("")*/,
    -
    15710  },
    -
    15711  // Rule Morocco 2008 only - Jun 1 0:00 1:00 -
    -
    15712  {
    -
    15713  2008 /*fromYear*/,
    -
    15714  2008 /*toYear*/,
    -
    15715  6 /*inMonth*/,
    -
    15716  0 /*onDayOfWeek*/,
    -
    15717  1 /*onDayOfMonth*/,
    -
    15718  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15719  0 /*atTimeCode (0/15)*/,
    -
    15720  60 /*deltaMinutes*/,
    -
    15721  0 /*letterIndex ("")*/,
    -
    15722  },
    -
    15723  // Rule Morocco 2008 only - Sep 1 0:00 0 -
    -
    15724  {
    -
    15725  2008 /*fromYear*/,
    -
    15726  2008 /*toYear*/,
    -
    15727  9 /*inMonth*/,
    -
    15728  0 /*onDayOfWeek*/,
    -
    15729  1 /*onDayOfMonth*/,
    -
    15730  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15731  0 /*atTimeCode (0/15)*/,
    -
    15732  0 /*deltaMinutes*/,
    -
    15733  0 /*letterIndex ("")*/,
    -
    15734  },
    -
    15735  // Rule Morocco 2009 only - Jun 1 0:00 1:00 -
    -
    15736  {
    -
    15737  2009 /*fromYear*/,
    -
    15738  2009 /*toYear*/,
    -
    15739  6 /*inMonth*/,
    -
    15740  0 /*onDayOfWeek*/,
    -
    15741  1 /*onDayOfMonth*/,
    -
    15742  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15743  0 /*atTimeCode (0/15)*/,
    -
    15744  60 /*deltaMinutes*/,
    -
    15745  0 /*letterIndex ("")*/,
    -
    15746  },
    -
    15747  // Rule Morocco 2009 only - Aug 21 0:00 0 -
    -
    15748  {
    -
    15749  2009 /*fromYear*/,
    -
    15750  2009 /*toYear*/,
    -
    15751  8 /*inMonth*/,
    -
    15752  0 /*onDayOfWeek*/,
    -
    15753  21 /*onDayOfMonth*/,
    -
    15754  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15755  0 /*atTimeCode (0/15)*/,
    -
    15756  0 /*deltaMinutes*/,
    -
    15757  0 /*letterIndex ("")*/,
    -
    15758  },
    -
    15759  // Rule Morocco 2010 only - May 2 0:00 1:00 -
    -
    15760  {
    -
    15761  2010 /*fromYear*/,
    -
    15762  2010 /*toYear*/,
    -
    15763  5 /*inMonth*/,
    -
    15764  0 /*onDayOfWeek*/,
    -
    15765  2 /*onDayOfMonth*/,
    -
    15766  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15767  0 /*atTimeCode (0/15)*/,
    -
    15768  60 /*deltaMinutes*/,
    -
    15769  0 /*letterIndex ("")*/,
    -
    15770  },
    -
    15771  // Rule Morocco 2010 only - Aug 8 0:00 0 -
    -
    15772  {
    -
    15773  2010 /*fromYear*/,
    -
    15774  2010 /*toYear*/,
    -
    15775  8 /*inMonth*/,
    -
    15776  0 /*onDayOfWeek*/,
    -
    15777  8 /*onDayOfMonth*/,
    -
    15778  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15779  0 /*atTimeCode (0/15)*/,
    -
    15780  0 /*deltaMinutes*/,
    -
    15781  0 /*letterIndex ("")*/,
    -
    15782  },
    -
    15783  // Rule Morocco 2011 only - Apr 3 0:00 1:00 -
    -
    15784  {
    -
    15785  2011 /*fromYear*/,
    -
    15786  2011 /*toYear*/,
    -
    15787  4 /*inMonth*/,
    -
    15788  0 /*onDayOfWeek*/,
    -
    15789  3 /*onDayOfMonth*/,
    -
    15790  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15791  0 /*atTimeCode (0/15)*/,
    -
    15792  60 /*deltaMinutes*/,
    -
    15793  0 /*letterIndex ("")*/,
    -
    15794  },
    -
    15795  // Rule Morocco 2011 only - Jul 31 0:00 0 -
    -
    15796  {
    -
    15797  2011 /*fromYear*/,
    -
    15798  2011 /*toYear*/,
    -
    15799  7 /*inMonth*/,
    -
    15800  0 /*onDayOfWeek*/,
    -
    15801  31 /*onDayOfMonth*/,
    -
    15802  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15803  0 /*atTimeCode (0/15)*/,
    -
    15804  0 /*deltaMinutes*/,
    -
    15805  0 /*letterIndex ("")*/,
    -
    15806  },
    -
    15807  // Rule Morocco 2012 2013 - Apr lastSun 2:00 1:00 -
    -
    15808  {
    -
    15809  2012 /*fromYear*/,
    -
    15810  2013 /*toYear*/,
    -
    15811  4 /*inMonth*/,
    -
    15812  7 /*onDayOfWeek*/,
    -
    15813  0 /*onDayOfMonth*/,
    -
    15814  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15815  480 /*atTimeCode (7200/15)*/,
    -
    15816  60 /*deltaMinutes*/,
    -
    15817  0 /*letterIndex ("")*/,
    -
    15818  },
    -
    15819  // Rule Morocco 2012 only - Jul 20 3:00 0 -
    -
    15820  {
    -
    15821  2012 /*fromYear*/,
    -
    15822  2012 /*toYear*/,
    -
    15823  7 /*inMonth*/,
    -
    15824  0 /*onDayOfWeek*/,
    -
    15825  20 /*onDayOfMonth*/,
    -
    15826  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15827  720 /*atTimeCode (10800/15)*/,
    -
    15828  0 /*deltaMinutes*/,
    -
    15829  0 /*letterIndex ("")*/,
    -
    15830  },
    -
    15831  // Rule Morocco 2012 only - Aug 20 2:00 1:00 -
    -
    15832  {
    -
    15833  2012 /*fromYear*/,
    -
    15834  2012 /*toYear*/,
    -
    15835  8 /*inMonth*/,
    -
    15836  0 /*onDayOfWeek*/,
    -
    15837  20 /*onDayOfMonth*/,
    -
    15838  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15839  480 /*atTimeCode (7200/15)*/,
    -
    15840  60 /*deltaMinutes*/,
    -
    15841  0 /*letterIndex ("")*/,
    -
    15842  },
    -
    15843  // Rule Morocco 2012 only - Sep 30 3:00 0 -
    -
    15844  {
    -
    15845  2012 /*fromYear*/,
    -
    15846  2012 /*toYear*/,
    -
    15847  9 /*inMonth*/,
    -
    15848  0 /*onDayOfWeek*/,
    -
    15849  30 /*onDayOfMonth*/,
    -
    15850  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15851  720 /*atTimeCode (10800/15)*/,
    -
    15852  0 /*deltaMinutes*/,
    -
    15853  0 /*letterIndex ("")*/,
    -
    15854  },
    -
    15855  // Rule Morocco 2013 only - Jul 7 3:00 0 -
    -
    15856  {
    -
    15857  2013 /*fromYear*/,
    -
    15858  2013 /*toYear*/,
    -
    15859  7 /*inMonth*/,
    -
    15860  0 /*onDayOfWeek*/,
    -
    15861  7 /*onDayOfMonth*/,
    -
    15862  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15863  720 /*atTimeCode (10800/15)*/,
    -
    15864  0 /*deltaMinutes*/,
    -
    15865  0 /*letterIndex ("")*/,
    -
    15866  },
    -
    15867  // Rule Morocco 2013 only - Aug 10 2:00 1:00 -
    -
    15868  {
    -
    15869  2013 /*fromYear*/,
    -
    15870  2013 /*toYear*/,
    -
    15871  8 /*inMonth*/,
    -
    15872  0 /*onDayOfWeek*/,
    -
    15873  10 /*onDayOfMonth*/,
    -
    15874  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15875  480 /*atTimeCode (7200/15)*/,
    -
    15876  60 /*deltaMinutes*/,
    -
    15877  0 /*letterIndex ("")*/,
    -
    15878  },
    -
    15879  // Rule Morocco 2013 2018 - Oct lastSun 3:00 0 -
    -
    15880  {
    -
    15881  2013 /*fromYear*/,
    -
    15882  2018 /*toYear*/,
    -
    15883  10 /*inMonth*/,
    -
    15884  7 /*onDayOfWeek*/,
    -
    15885  0 /*onDayOfMonth*/,
    -
    15886  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15887  720 /*atTimeCode (10800/15)*/,
    -
    15888  0 /*deltaMinutes*/,
    -
    15889  0 /*letterIndex ("")*/,
    -
    15890  },
    -
    15891  // Rule Morocco 2014 2018 - Mar lastSun 2:00 1:00 -
    -
    15892  {
    -
    15893  2014 /*fromYear*/,
    -
    15894  2018 /*toYear*/,
    -
    15895  3 /*inMonth*/,
    -
    15896  7 /*onDayOfWeek*/,
    -
    15897  0 /*onDayOfMonth*/,
    -
    15898  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15899  480 /*atTimeCode (7200/15)*/,
    -
    15900  60 /*deltaMinutes*/,
    -
    15901  0 /*letterIndex ("")*/,
    -
    15902  },
    -
    15903  // Rule Morocco 2014 only - Jun 28 3:00 0 -
    -
    15904  {
    -
    15905  2014 /*fromYear*/,
    -
    15906  2014 /*toYear*/,
    -
    15907  6 /*inMonth*/,
    -
    15908  0 /*onDayOfWeek*/,
    -
    15909  28 /*onDayOfMonth*/,
    -
    15910  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15911  720 /*atTimeCode (10800/15)*/,
    -
    15912  0 /*deltaMinutes*/,
    -
    15913  0 /*letterIndex ("")*/,
    -
    15914  },
    -
    15915  // Rule Morocco 2014 only - Aug 2 2:00 1:00 -
    -
    15916  {
    -
    15917  2014 /*fromYear*/,
    -
    15918  2014 /*toYear*/,
    -
    15919  8 /*inMonth*/,
    -
    15920  0 /*onDayOfWeek*/,
    -
    15921  2 /*onDayOfMonth*/,
    -
    15922  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15923  480 /*atTimeCode (7200/15)*/,
    -
    15924  60 /*deltaMinutes*/,
    -
    15925  0 /*letterIndex ("")*/,
    -
    15926  },
    -
    15927  // Rule Morocco 2015 only - Jun 14 3:00 0 -
    -
    15928  {
    -
    15929  2015 /*fromYear*/,
    -
    15930  2015 /*toYear*/,
    -
    15931  6 /*inMonth*/,
    -
    15932  0 /*onDayOfWeek*/,
    -
    15933  14 /*onDayOfMonth*/,
    -
    15934  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15935  720 /*atTimeCode (10800/15)*/,
    -
    15936  0 /*deltaMinutes*/,
    -
    15937  0 /*letterIndex ("")*/,
    -
    15938  },
    -
    15939  // Rule Morocco 2015 only - Jul 19 2:00 1:00 -
    -
    15940  {
    -
    15941  2015 /*fromYear*/,
    -
    15942  2015 /*toYear*/,
    -
    15943  7 /*inMonth*/,
    -
    15944  0 /*onDayOfWeek*/,
    -
    15945  19 /*onDayOfMonth*/,
    -
    15946  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15947  480 /*atTimeCode (7200/15)*/,
    -
    15948  60 /*deltaMinutes*/,
    -
    15949  0 /*letterIndex ("")*/,
    -
    15950  },
    -
    15951  // Rule Morocco 2016 only - Jun 5 3:00 0 -
    -
    15952  {
    -
    15953  2016 /*fromYear*/,
    -
    15954  2016 /*toYear*/,
    -
    15955  6 /*inMonth*/,
    -
    15956  0 /*onDayOfWeek*/,
    -
    15957  5 /*onDayOfMonth*/,
    -
    15958  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15959  720 /*atTimeCode (10800/15)*/,
    -
    15960  0 /*deltaMinutes*/,
    -
    15961  0 /*letterIndex ("")*/,
    -
    15962  },
    -
    15963  // Rule Morocco 2016 only - Jul 10 2:00 1:00 -
    -
    15964  {
    -
    15965  2016 /*fromYear*/,
    -
    15966  2016 /*toYear*/,
    -
    15967  7 /*inMonth*/,
    -
    15968  0 /*onDayOfWeek*/,
    -
    15969  10 /*onDayOfMonth*/,
    -
    15970  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15971  480 /*atTimeCode (7200/15)*/,
    -
    15972  60 /*deltaMinutes*/,
    -
    15973  0 /*letterIndex ("")*/,
    -
    15974  },
    -
    15975  // Rule Morocco 2017 only - May 21 3:00 0 -
    -
    15976  {
    -
    15977  2017 /*fromYear*/,
    -
    15978  2017 /*toYear*/,
    -
    15979  5 /*inMonth*/,
    -
    15980  0 /*onDayOfWeek*/,
    -
    15981  21 /*onDayOfMonth*/,
    -
    15982  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15983  720 /*atTimeCode (10800/15)*/,
    -
    15984  0 /*deltaMinutes*/,
    -
    15985  0 /*letterIndex ("")*/,
    -
    15986  },
    -
    15987  // Rule Morocco 2017 only - Jul 2 2:00 1:00 -
    -
    15988  {
    -
    15989  2017 /*fromYear*/,
    -
    15990  2017 /*toYear*/,
    -
    15991  7 /*inMonth*/,
    -
    15992  0 /*onDayOfWeek*/,
    -
    15993  2 /*onDayOfMonth*/,
    -
    15994  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    15995  480 /*atTimeCode (7200/15)*/,
    -
    15996  60 /*deltaMinutes*/,
    -
    15997  0 /*letterIndex ("")*/,
    -
    15998  },
    -
    15999  // Rule Morocco 2018 only - May 13 3:00 0 -
    -
    16000  {
    -
    16001  2018 /*fromYear*/,
    -
    16002  2018 /*toYear*/,
    -
    16003  5 /*inMonth*/,
    -
    16004  0 /*onDayOfWeek*/,
    -
    16005  13 /*onDayOfMonth*/,
    -
    16006  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16007  720 /*atTimeCode (10800/15)*/,
    -
    16008  0 /*deltaMinutes*/,
    -
    16009  0 /*letterIndex ("")*/,
    -
    16010  },
    -
    16011  // Rule Morocco 2018 only - Jun 17 2:00 1:00 -
    -
    16012  {
    -
    16013  2018 /*fromYear*/,
    -
    16014  2018 /*toYear*/,
    -
    16015  6 /*inMonth*/,
    -
    16016  0 /*onDayOfWeek*/,
    -
    16017  17 /*onDayOfMonth*/,
    -
    16018  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16019  480 /*atTimeCode (7200/15)*/,
    -
    16020  60 /*deltaMinutes*/,
    -
    16021  0 /*letterIndex ("")*/,
    -
    16022  },
    -
    16023  // Rule Morocco 2019 only - May 5 3:00 -1:00 -
    -
    16024  {
    -
    16025  2019 /*fromYear*/,
    -
    16026  2019 /*toYear*/,
    -
    16027  5 /*inMonth*/,
    -
    16028  0 /*onDayOfWeek*/,
    -
    16029  5 /*onDayOfMonth*/,
    -
    16030  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16031  720 /*atTimeCode (10800/15)*/,
    -
    16032  -60 /*deltaMinutes*/,
    -
    16033  0 /*letterIndex ("")*/,
    -
    16034  },
    -
    16035  // Rule Morocco 2019 only - Jun 9 2:00 0 -
    -
    16036  {
    -
    16037  2019 /*fromYear*/,
    -
    16038  2019 /*toYear*/,
    -
    16039  6 /*inMonth*/,
    -
    16040  0 /*onDayOfWeek*/,
    -
    16041  9 /*onDayOfMonth*/,
    -
    16042  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16043  480 /*atTimeCode (7200/15)*/,
    -
    16044  0 /*deltaMinutes*/,
    -
    16045  0 /*letterIndex ("")*/,
    -
    16046  },
    -
    16047  // Rule Morocco 2020 only - Apr 19 3:00 -1:00 -
    -
    16048  {
    -
    16049  2020 /*fromYear*/,
    -
    16050  2020 /*toYear*/,
    -
    16051  4 /*inMonth*/,
    -
    16052  0 /*onDayOfWeek*/,
    -
    16053  19 /*onDayOfMonth*/,
    -
    16054  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16055  720 /*atTimeCode (10800/15)*/,
    -
    16056  -60 /*deltaMinutes*/,
    -
    16057  0 /*letterIndex ("")*/,
    -
    16058  },
    -
    16059  // Rule Morocco 2020 only - May 31 2:00 0 -
    -
    16060  {
    -
    16061  2020 /*fromYear*/,
    -
    16062  2020 /*toYear*/,
    -
    16063  5 /*inMonth*/,
    -
    16064  0 /*onDayOfWeek*/,
    -
    16065  31 /*onDayOfMonth*/,
    -
    16066  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16067  480 /*atTimeCode (7200/15)*/,
    -
    16068  0 /*deltaMinutes*/,
    -
    16069  0 /*letterIndex ("")*/,
    -
    16070  },
    -
    16071  // Rule Morocco 2021 only - Apr 11 3:00 -1:00 -
    -
    16072  {
    -
    16073  2021 /*fromYear*/,
    -
    16074  2021 /*toYear*/,
    -
    16075  4 /*inMonth*/,
    -
    16076  0 /*onDayOfWeek*/,
    -
    16077  11 /*onDayOfMonth*/,
    -
    16078  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16079  720 /*atTimeCode (10800/15)*/,
    -
    16080  -60 /*deltaMinutes*/,
    -
    16081  0 /*letterIndex ("")*/,
    -
    16082  },
    -
    16083  // Rule Morocco 2021 only - May 16 2:00 0 -
    -
    16084  {
    -
    16085  2021 /*fromYear*/,
    -
    16086  2021 /*toYear*/,
    -
    16087  5 /*inMonth*/,
    -
    16088  0 /*onDayOfWeek*/,
    -
    16089  16 /*onDayOfMonth*/,
    -
    16090  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16091  480 /*atTimeCode (7200/15)*/,
    -
    16092  0 /*deltaMinutes*/,
    -
    16093  0 /*letterIndex ("")*/,
    -
    16094  },
    -
    16095  // Rule Morocco 2022 only - Mar 27 3:00 -1:00 -
    -
    16096  {
    -
    16097  2022 /*fromYear*/,
    -
    16098  2022 /*toYear*/,
    -
    16099  3 /*inMonth*/,
    -
    16100  0 /*onDayOfWeek*/,
    -
    16101  27 /*onDayOfMonth*/,
    -
    16102  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16103  720 /*atTimeCode (10800/15)*/,
    -
    16104  -60 /*deltaMinutes*/,
    -
    16105  0 /*letterIndex ("")*/,
    -
    16106  },
    -
    16107  // Rule Morocco 2022 only - May 8 2:00 0 -
    -
    16108  {
    -
    16109  2022 /*fromYear*/,
    -
    16110  2022 /*toYear*/,
    -
    16111  5 /*inMonth*/,
    -
    16112  0 /*onDayOfWeek*/,
    -
    16113  8 /*onDayOfMonth*/,
    -
    16114  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16115  480 /*atTimeCode (7200/15)*/,
    -
    16116  0 /*deltaMinutes*/,
    -
    16117  0 /*letterIndex ("")*/,
    -
    16118  },
    -
    16119  // Rule Morocco 2023 only - Mar 19 3:00 -1:00 -
    -
    16120  {
    -
    16121  2023 /*fromYear*/,
    -
    16122  2023 /*toYear*/,
    -
    16123  3 /*inMonth*/,
    -
    16124  0 /*onDayOfWeek*/,
    -
    16125  19 /*onDayOfMonth*/,
    -
    16126  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16127  720 /*atTimeCode (10800/15)*/,
    -
    16128  -60 /*deltaMinutes*/,
    -
    16129  0 /*letterIndex ("")*/,
    -
    16130  },
    -
    16131  // Rule Morocco 2023 only - Apr 23 2:00 0 -
    -
    16132  {
    -
    16133  2023 /*fromYear*/,
    -
    16134  2023 /*toYear*/,
    -
    16135  4 /*inMonth*/,
    -
    16136  0 /*onDayOfWeek*/,
    -
    16137  23 /*onDayOfMonth*/,
    -
    16138  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16139  480 /*atTimeCode (7200/15)*/,
    -
    16140  0 /*deltaMinutes*/,
    -
    16141  0 /*letterIndex ("")*/,
    -
    16142  },
    -
    16143  // Rule Morocco 2024 only - Mar 10 3:00 -1:00 -
    -
    16144  {
    -
    16145  2024 /*fromYear*/,
    -
    16146  2024 /*toYear*/,
    -
    16147  3 /*inMonth*/,
    -
    16148  0 /*onDayOfWeek*/,
    -
    16149  10 /*onDayOfMonth*/,
    -
    16150  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16151  720 /*atTimeCode (10800/15)*/,
    -
    16152  -60 /*deltaMinutes*/,
    -
    16153  0 /*letterIndex ("")*/,
    -
    16154  },
    -
    16155  // Rule Morocco 2024 only - Apr 14 2:00 0 -
    -
    16156  {
    -
    16157  2024 /*fromYear*/,
    -
    16158  2024 /*toYear*/,
    -
    16159  4 /*inMonth*/,
    -
    16160  0 /*onDayOfWeek*/,
    -
    16161  14 /*onDayOfMonth*/,
    -
    16162  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16163  480 /*atTimeCode (7200/15)*/,
    -
    16164  0 /*deltaMinutes*/,
    -
    16165  0 /*letterIndex ("")*/,
    -
    16166  },
    -
    16167  // Rule Morocco 2025 only - Feb 23 3:00 -1:00 -
    -
    16168  {
    -
    16169  2025 /*fromYear*/,
    -
    16170  2025 /*toYear*/,
    -
    16171  2 /*inMonth*/,
    -
    16172  0 /*onDayOfWeek*/,
    -
    16173  23 /*onDayOfMonth*/,
    -
    16174  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16175  720 /*atTimeCode (10800/15)*/,
    -
    16176  -60 /*deltaMinutes*/,
    -
    16177  0 /*letterIndex ("")*/,
    -
    16178  },
    -
    16179  // Rule Morocco 2025 only - Apr 6 2:00 0 -
    -
    16180  {
    -
    16181  2025 /*fromYear*/,
    -
    16182  2025 /*toYear*/,
    -
    16183  4 /*inMonth*/,
    -
    16184  0 /*onDayOfWeek*/,
    -
    16185  6 /*onDayOfMonth*/,
    -
    16186  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16187  480 /*atTimeCode (7200/15)*/,
    -
    16188  0 /*deltaMinutes*/,
    -
    16189  0 /*letterIndex ("")*/,
    -
    16190  },
    -
    16191  // Rule Morocco 2026 only - Feb 15 3:00 -1:00 -
    -
    16192  {
    -
    16193  2026 /*fromYear*/,
    -
    16194  2026 /*toYear*/,
    -
    16195  2 /*inMonth*/,
    -
    16196  0 /*onDayOfWeek*/,
    -
    16197  15 /*onDayOfMonth*/,
    -
    16198  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16199  720 /*atTimeCode (10800/15)*/,
    -
    16200  -60 /*deltaMinutes*/,
    -
    16201  0 /*letterIndex ("")*/,
    -
    16202  },
    -
    16203  // Rule Morocco 2026 only - Mar 22 2:00 0 -
    -
    16204  {
    -
    16205  2026 /*fromYear*/,
    -
    16206  2026 /*toYear*/,
    -
    16207  3 /*inMonth*/,
    -
    16208  0 /*onDayOfWeek*/,
    -
    16209  22 /*onDayOfMonth*/,
    -
    16210  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16211  480 /*atTimeCode (7200/15)*/,
    -
    16212  0 /*deltaMinutes*/,
    -
    16213  0 /*letterIndex ("")*/,
    -
    16214  },
    -
    16215  // Rule Morocco 2027 only - Feb 7 3:00 -1:00 -
    -
    16216  {
    -
    16217  2027 /*fromYear*/,
    -
    16218  2027 /*toYear*/,
    -
    16219  2 /*inMonth*/,
    -
    16220  0 /*onDayOfWeek*/,
    -
    16221  7 /*onDayOfMonth*/,
    -
    16222  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16223  720 /*atTimeCode (10800/15)*/,
    -
    16224  -60 /*deltaMinutes*/,
    -
    16225  0 /*letterIndex ("")*/,
    -
    16226  },
    -
    16227  // Rule Morocco 2027 only - Mar 14 2:00 0 -
    -
    16228  {
    -
    16229  2027 /*fromYear*/,
    -
    16230  2027 /*toYear*/,
    -
    16231  3 /*inMonth*/,
    -
    16232  0 /*onDayOfWeek*/,
    -
    16233  14 /*onDayOfMonth*/,
    -
    16234  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16235  480 /*atTimeCode (7200/15)*/,
    -
    16236  0 /*deltaMinutes*/,
    -
    16237  0 /*letterIndex ("")*/,
    -
    16238  },
    -
    16239  // Rule Morocco 2028 only - Jan 23 3:00 -1:00 -
    -
    16240  {
    -
    16241  2028 /*fromYear*/,
    -
    16242  2028 /*toYear*/,
    -
    16243  1 /*inMonth*/,
    -
    16244  0 /*onDayOfWeek*/,
    -
    16245  23 /*onDayOfMonth*/,
    -
    16246  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16247  720 /*atTimeCode (10800/15)*/,
    -
    16248  -60 /*deltaMinutes*/,
    -
    16249  0 /*letterIndex ("")*/,
    -
    16250  },
    -
    16251  // Rule Morocco 2028 only - Mar 5 2:00 0 -
    -
    16252  {
    -
    16253  2028 /*fromYear*/,
    -
    16254  2028 /*toYear*/,
    -
    16255  3 /*inMonth*/,
    -
    16256  0 /*onDayOfWeek*/,
    -
    16257  5 /*onDayOfMonth*/,
    -
    16258  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16259  480 /*atTimeCode (7200/15)*/,
    -
    16260  0 /*deltaMinutes*/,
    -
    16261  0 /*letterIndex ("")*/,
    -
    16262  },
    -
    16263  // Rule Morocco 2029 only - Jan 14 3:00 -1:00 -
    -
    16264  {
    -
    16265  2029 /*fromYear*/,
    -
    16266  2029 /*toYear*/,
    -
    16267  1 /*inMonth*/,
    -
    16268  0 /*onDayOfWeek*/,
    -
    16269  14 /*onDayOfMonth*/,
    -
    16270  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16271  720 /*atTimeCode (10800/15)*/,
    -
    16272  -60 /*deltaMinutes*/,
    -
    16273  0 /*letterIndex ("")*/,
    -
    16274  },
    -
    16275  // Rule Morocco 2029 only - Feb 18 2:00 0 -
    -
    16276  {
    -
    16277  2029 /*fromYear*/,
    -
    16278  2029 /*toYear*/,
    -
    16279  2 /*inMonth*/,
    -
    16280  0 /*onDayOfWeek*/,
    -
    16281  18 /*onDayOfMonth*/,
    -
    16282  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16283  480 /*atTimeCode (7200/15)*/,
    -
    16284  0 /*deltaMinutes*/,
    -
    16285  0 /*letterIndex ("")*/,
    -
    16286  },
    -
    16287  // Rule Morocco 2029 only - Dec 30 3:00 -1:00 -
    -
    16288  {
    -
    16289  2029 /*fromYear*/,
    -
    16290  2029 /*toYear*/,
    -
    16291  12 /*inMonth*/,
    -
    16292  0 /*onDayOfWeek*/,
    -
    16293  30 /*onDayOfMonth*/,
    -
    16294  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16295  720 /*atTimeCode (10800/15)*/,
    -
    16296  -60 /*deltaMinutes*/,
    -
    16297  0 /*letterIndex ("")*/,
    -
    16298  },
    -
    16299  // Rule Morocco 2030 only - Feb 10 2:00 0 -
    -
    16300  {
    -
    16301  2030 /*fromYear*/,
    -
    16302  2030 /*toYear*/,
    -
    16303  2 /*inMonth*/,
    -
    16304  0 /*onDayOfWeek*/,
    -
    16305  10 /*onDayOfMonth*/,
    -
    16306  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16307  480 /*atTimeCode (7200/15)*/,
    -
    16308  0 /*deltaMinutes*/,
    -
    16309  0 /*letterIndex ("")*/,
    -
    16310  },
    -
    16311  // Rule Morocco 2030 only - Dec 22 3:00 -1:00 -
    -
    16312  {
    -
    16313  2030 /*fromYear*/,
    -
    16314  2030 /*toYear*/,
    -
    16315  12 /*inMonth*/,
    -
    16316  0 /*onDayOfWeek*/,
    -
    16317  22 /*onDayOfMonth*/,
    -
    16318  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16319  720 /*atTimeCode (10800/15)*/,
    -
    16320  -60 /*deltaMinutes*/,
    -
    16321  0 /*letterIndex ("")*/,
    -
    16322  },
    -
    16323  // Rule Morocco 2031 only - Jan 26 2:00 0 -
    -
    16324  {
    -
    16325  2031 /*fromYear*/,
    -
    16326  2031 /*toYear*/,
    -
    16327  1 /*inMonth*/,
    -
    16328  0 /*onDayOfWeek*/,
    -
    16329  26 /*onDayOfMonth*/,
    -
    16330  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16331  480 /*atTimeCode (7200/15)*/,
    -
    16332  0 /*deltaMinutes*/,
    -
    16333  0 /*letterIndex ("")*/,
    -
    16334  },
    -
    16335  // Rule Morocco 2031 only - Dec 14 3:00 -1:00 -
    -
    16336  {
    -
    16337  2031 /*fromYear*/,
    -
    16338  2031 /*toYear*/,
    -
    16339  12 /*inMonth*/,
    -
    16340  0 /*onDayOfWeek*/,
    -
    16341  14 /*onDayOfMonth*/,
    -
    16342  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16343  720 /*atTimeCode (10800/15)*/,
    -
    16344  -60 /*deltaMinutes*/,
    -
    16345  0 /*letterIndex ("")*/,
    -
    16346  },
    -
    16347  // Rule Morocco 2032 only - Jan 18 2:00 0 -
    -
    16348  {
    -
    16349  2032 /*fromYear*/,
    -
    16350  2032 /*toYear*/,
    -
    16351  1 /*inMonth*/,
    -
    16352  0 /*onDayOfWeek*/,
    -
    16353  18 /*onDayOfMonth*/,
    -
    16354  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16355  480 /*atTimeCode (7200/15)*/,
    -
    16356  0 /*deltaMinutes*/,
    -
    16357  0 /*letterIndex ("")*/,
    -
    16358  },
    -
    16359  // Rule Morocco 2032 only - Nov 28 3:00 -1:00 -
    -
    16360  {
    -
    16361  2032 /*fromYear*/,
    -
    16362  2032 /*toYear*/,
    -
    16363  11 /*inMonth*/,
    -
    16364  0 /*onDayOfWeek*/,
    -
    16365  28 /*onDayOfMonth*/,
    -
    16366  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16367  720 /*atTimeCode (10800/15)*/,
    -
    16368  -60 /*deltaMinutes*/,
    -
    16369  0 /*letterIndex ("")*/,
    -
    16370  },
    -
    16371  // Rule Morocco 2033 only - Jan 9 2:00 0 -
    -
    16372  {
    -
    16373  2033 /*fromYear*/,
    -
    16374  2033 /*toYear*/,
    -
    16375  1 /*inMonth*/,
    -
    16376  0 /*onDayOfWeek*/,
    -
    16377  9 /*onDayOfMonth*/,
    -
    16378  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16379  480 /*atTimeCode (7200/15)*/,
    -
    16380  0 /*deltaMinutes*/,
    -
    16381  0 /*letterIndex ("")*/,
    -
    16382  },
    -
    16383  // Rule Morocco 2033 only - Nov 20 3:00 -1:00 -
    -
    16384  {
    -
    16385  2033 /*fromYear*/,
    -
    16386  2033 /*toYear*/,
    -
    16387  11 /*inMonth*/,
    -
    16388  0 /*onDayOfWeek*/,
    -
    16389  20 /*onDayOfMonth*/,
    -
    16390  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16391  720 /*atTimeCode (10800/15)*/,
    -
    16392  -60 /*deltaMinutes*/,
    -
    16393  0 /*letterIndex ("")*/,
    -
    16394  },
    -
    16395  // Rule Morocco 2033 only - Dec 25 2:00 0 -
    -
    16396  {
    -
    16397  2033 /*fromYear*/,
    -
    16398  2033 /*toYear*/,
    -
    16399  12 /*inMonth*/,
    -
    16400  0 /*onDayOfWeek*/,
    -
    16401  25 /*onDayOfMonth*/,
    -
    16402  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16403  480 /*atTimeCode (7200/15)*/,
    -
    16404  0 /*deltaMinutes*/,
    -
    16405  0 /*letterIndex ("")*/,
    -
    16406  },
    -
    16407  // Rule Morocco 2034 only - Nov 5 3:00 -1:00 -
    -
    16408  {
    -
    16409  2034 /*fromYear*/,
    -
    16410  2034 /*toYear*/,
    -
    16411  11 /*inMonth*/,
    -
    16412  0 /*onDayOfWeek*/,
    -
    16413  5 /*onDayOfMonth*/,
    -
    16414  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16415  720 /*atTimeCode (10800/15)*/,
    -
    16416  -60 /*deltaMinutes*/,
    -
    16417  0 /*letterIndex ("")*/,
    -
    16418  },
    -
    16419  // Rule Morocco 2034 only - Dec 17 2:00 0 -
    -
    16420  {
    -
    16421  2034 /*fromYear*/,
    -
    16422  2034 /*toYear*/,
    -
    16423  12 /*inMonth*/,
    -
    16424  0 /*onDayOfWeek*/,
    -
    16425  17 /*onDayOfMonth*/,
    -
    16426  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16427  480 /*atTimeCode (7200/15)*/,
    -
    16428  0 /*deltaMinutes*/,
    -
    16429  0 /*letterIndex ("")*/,
    -
    16430  },
    -
    16431  // Rule Morocco 2035 only - Oct 28 3:00 -1:00 -
    -
    16432  {
    -
    16433  2035 /*fromYear*/,
    -
    16434  2035 /*toYear*/,
    -
    16435  10 /*inMonth*/,
    -
    16436  0 /*onDayOfWeek*/,
    -
    16437  28 /*onDayOfMonth*/,
    -
    16438  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16439  720 /*atTimeCode (10800/15)*/,
    -
    16440  -60 /*deltaMinutes*/,
    -
    16441  0 /*letterIndex ("")*/,
    -
    16442  },
    -
    16443  // Rule Morocco 2035 only - Dec 9 2:00 0 -
    -
    16444  {
    -
    16445  2035 /*fromYear*/,
    -
    16446  2035 /*toYear*/,
    -
    16447  12 /*inMonth*/,
    -
    16448  0 /*onDayOfWeek*/,
    -
    16449  9 /*onDayOfMonth*/,
    -
    16450  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16451  480 /*atTimeCode (7200/15)*/,
    -
    16452  0 /*deltaMinutes*/,
    -
    16453  0 /*letterIndex ("")*/,
    -
    16454  },
    -
    16455  // Rule Morocco 2036 only - Oct 19 3:00 -1:00 -
    -
    16456  {
    -
    16457  2036 /*fromYear*/,
    -
    16458  2036 /*toYear*/,
    -
    16459  10 /*inMonth*/,
    -
    16460  0 /*onDayOfWeek*/,
    -
    16461  19 /*onDayOfMonth*/,
    -
    16462  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16463  720 /*atTimeCode (10800/15)*/,
    -
    16464  -60 /*deltaMinutes*/,
    -
    16465  0 /*letterIndex ("")*/,
    -
    16466  },
    -
    16467  // Rule Morocco 2036 only - Nov 23 2:00 0 -
    -
    16468  {
    -
    16469  2036 /*fromYear*/,
    -
    16470  2036 /*toYear*/,
    -
    16471  11 /*inMonth*/,
    -
    16472  0 /*onDayOfWeek*/,
    -
    16473  23 /*onDayOfMonth*/,
    -
    16474  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16475  480 /*atTimeCode (7200/15)*/,
    -
    16476  0 /*deltaMinutes*/,
    -
    16477  0 /*letterIndex ("")*/,
    -
    16478  },
    -
    16479  // Rule Morocco 2037 only - Oct 4 3:00 -1:00 -
    -
    16480  {
    -
    16481  2037 /*fromYear*/,
    -
    16482  2037 /*toYear*/,
    -
    16483  10 /*inMonth*/,
    -
    16484  0 /*onDayOfWeek*/,
    -
    16485  4 /*onDayOfMonth*/,
    -
    16486  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16487  720 /*atTimeCode (10800/15)*/,
    -
    16488  -60 /*deltaMinutes*/,
    -
    16489  0 /*letterIndex ("")*/,
    -
    16490  },
    -
    16491  // Rule Morocco 2037 only - Nov 15 2:00 0 -
    -
    16492  {
    -
    16493  2037 /*fromYear*/,
    -
    16494  2037 /*toYear*/,
    -
    16495  11 /*inMonth*/,
    -
    16496  0 /*onDayOfWeek*/,
    -
    16497  15 /*onDayOfMonth*/,
    -
    16498  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16499  480 /*atTimeCode (7200/15)*/,
    -
    16500  0 /*deltaMinutes*/,
    -
    16501  0 /*letterIndex ("")*/,
    -
    16502  },
    -
    16503  // Rule Morocco 2038 only - Sep 26 3:00 -1:00 -
    -
    16504  {
    -
    16505  2038 /*fromYear*/,
    -
    16506  2038 /*toYear*/,
    -
    16507  9 /*inMonth*/,
    -
    16508  0 /*onDayOfWeek*/,
    -
    16509  26 /*onDayOfMonth*/,
    -
    16510  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16511  720 /*atTimeCode (10800/15)*/,
    -
    16512  -60 /*deltaMinutes*/,
    -
    16513  0 /*letterIndex ("")*/,
    -
    16514  },
    -
    16515  // Rule Morocco 2038 only - Oct 31 2:00 0 -
    -
    16516  {
    -
    16517  2038 /*fromYear*/,
    -
    16518  2038 /*toYear*/,
    -
    16519  10 /*inMonth*/,
    -
    16520  0 /*onDayOfWeek*/,
    -
    16521  31 /*onDayOfMonth*/,
    -
    16522  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16523  480 /*atTimeCode (7200/15)*/,
    -
    16524  0 /*deltaMinutes*/,
    -
    16525  0 /*letterIndex ("")*/,
    -
    16526  },
    -
    16527  // Rule Morocco 2039 only - Sep 18 3:00 -1:00 -
    -
    16528  {
    -
    16529  2039 /*fromYear*/,
    -
    16530  2039 /*toYear*/,
    -
    16531  9 /*inMonth*/,
    -
    16532  0 /*onDayOfWeek*/,
    -
    16533  18 /*onDayOfMonth*/,
    -
    16534  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16535  720 /*atTimeCode (10800/15)*/,
    -
    16536  -60 /*deltaMinutes*/,
    -
    16537  0 /*letterIndex ("")*/,
    -
    16538  },
    -
    16539  // Rule Morocco 2039 only - Oct 23 2:00 0 -
    -
    16540  {
    -
    16541  2039 /*fromYear*/,
    -
    16542  2039 /*toYear*/,
    -
    16543  10 /*inMonth*/,
    -
    16544  0 /*onDayOfWeek*/,
    -
    16545  23 /*onDayOfMonth*/,
    -
    16546  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16547  480 /*atTimeCode (7200/15)*/,
    -
    16548  0 /*deltaMinutes*/,
    -
    16549  0 /*letterIndex ("")*/,
    -
    16550  },
    -
    16551  // Rule Morocco 2040 only - Sep 2 3:00 -1:00 -
    -
    16552  {
    -
    16553  2040 /*fromYear*/,
    -
    16554  2040 /*toYear*/,
    -
    16555  9 /*inMonth*/,
    -
    16556  0 /*onDayOfWeek*/,
    -
    16557  2 /*onDayOfMonth*/,
    -
    16558  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16559  720 /*atTimeCode (10800/15)*/,
    -
    16560  -60 /*deltaMinutes*/,
    -
    16561  0 /*letterIndex ("")*/,
    -
    16562  },
    -
    16563  // Rule Morocco 2040 only - Oct 14 2:00 0 -
    -
    16564  {
    -
    16565  2040 /*fromYear*/,
    -
    16566  2040 /*toYear*/,
    -
    16567  10 /*inMonth*/,
    -
    16568  0 /*onDayOfWeek*/,
    -
    16569  14 /*onDayOfMonth*/,
    -
    16570  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16571  480 /*atTimeCode (7200/15)*/,
    -
    16572  0 /*deltaMinutes*/,
    -
    16573  0 /*letterIndex ("")*/,
    -
    16574  },
    -
    16575  // Rule Morocco 2041 only - Aug 25 3:00 -1:00 -
    -
    16576  {
    -
    16577  2041 /*fromYear*/,
    -
    16578  2041 /*toYear*/,
    -
    16579  8 /*inMonth*/,
    -
    16580  0 /*onDayOfWeek*/,
    -
    16581  25 /*onDayOfMonth*/,
    -
    16582  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16583  720 /*atTimeCode (10800/15)*/,
    -
    16584  -60 /*deltaMinutes*/,
    -
    16585  0 /*letterIndex ("")*/,
    -
    16586  },
    -
    16587  // Rule Morocco 2041 only - Sep 29 2:00 0 -
    -
    16588  {
    -
    16589  2041 /*fromYear*/,
    -
    16590  2041 /*toYear*/,
    -
    16591  9 /*inMonth*/,
    -
    16592  0 /*onDayOfWeek*/,
    -
    16593  29 /*onDayOfMonth*/,
    -
    16594  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16595  480 /*atTimeCode (7200/15)*/,
    -
    16596  0 /*deltaMinutes*/,
    -
    16597  0 /*letterIndex ("")*/,
    -
    16598  },
    -
    16599  // Rule Morocco 2042 only - Aug 10 3:00 -1:00 -
    -
    16600  {
    -
    16601  2042 /*fromYear*/,
    -
    16602  2042 /*toYear*/,
    -
    16603  8 /*inMonth*/,
    -
    16604  0 /*onDayOfWeek*/,
    -
    16605  10 /*onDayOfMonth*/,
    -
    16606  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16607  720 /*atTimeCode (10800/15)*/,
    -
    16608  -60 /*deltaMinutes*/,
    -
    16609  0 /*letterIndex ("")*/,
    -
    16610  },
    -
    16611  // Rule Morocco 2042 only - Sep 21 2:00 0 -
    -
    16612  {
    -
    16613  2042 /*fromYear*/,
    -
    16614  2042 /*toYear*/,
    -
    16615  9 /*inMonth*/,
    -
    16616  0 /*onDayOfWeek*/,
    -
    16617  21 /*onDayOfMonth*/,
    -
    16618  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16619  480 /*atTimeCode (7200/15)*/,
    -
    16620  0 /*deltaMinutes*/,
    -
    16621  0 /*letterIndex ("")*/,
    -
    16622  },
    -
    16623  // Rule Morocco 2043 only - Aug 2 3:00 -1:00 -
    -
    16624  {
    -
    16625  2043 /*fromYear*/,
    -
    16626  2043 /*toYear*/,
    -
    16627  8 /*inMonth*/,
    -
    16628  0 /*onDayOfWeek*/,
    -
    16629  2 /*onDayOfMonth*/,
    -
    16630  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16631  720 /*atTimeCode (10800/15)*/,
    -
    16632  -60 /*deltaMinutes*/,
    -
    16633  0 /*letterIndex ("")*/,
    -
    16634  },
    -
    16635  // Rule Morocco 2043 only - Sep 13 2:00 0 -
    -
    16636  {
    -
    16637  2043 /*fromYear*/,
    -
    16638  2043 /*toYear*/,
    -
    16639  9 /*inMonth*/,
    -
    16640  0 /*onDayOfWeek*/,
    -
    16641  13 /*onDayOfMonth*/,
    -
    16642  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16643  480 /*atTimeCode (7200/15)*/,
    -
    16644  0 /*deltaMinutes*/,
    -
    16645  0 /*letterIndex ("")*/,
    -
    16646  },
    -
    16647  // Rule Morocco 2044 only - Jul 24 3:00 -1:00 -
    -
    16648  {
    -
    16649  2044 /*fromYear*/,
    -
    16650  2044 /*toYear*/,
    -
    16651  7 /*inMonth*/,
    -
    16652  0 /*onDayOfWeek*/,
    -
    16653  24 /*onDayOfMonth*/,
    -
    16654  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16655  720 /*atTimeCode (10800/15)*/,
    -
    16656  -60 /*deltaMinutes*/,
    -
    16657  0 /*letterIndex ("")*/,
    -
    16658  },
    -
    16659  // Rule Morocco 2044 only - Aug 28 2:00 0 -
    -
    16660  {
    -
    16661  2044 /*fromYear*/,
    -
    16662  2044 /*toYear*/,
    -
    16663  8 /*inMonth*/,
    -
    16664  0 /*onDayOfWeek*/,
    -
    16665  28 /*onDayOfMonth*/,
    -
    16666  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16667  480 /*atTimeCode (7200/15)*/,
    -
    16668  0 /*deltaMinutes*/,
    -
    16669  0 /*letterIndex ("")*/,
    -
    16670  },
    -
    16671  // Rule Morocco 2045 only - Jul 9 3:00 -1:00 -
    -
    16672  {
    -
    16673  2045 /*fromYear*/,
    -
    16674  2045 /*toYear*/,
    -
    16675  7 /*inMonth*/,
    -
    16676  0 /*onDayOfWeek*/,
    -
    16677  9 /*onDayOfMonth*/,
    -
    16678  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16679  720 /*atTimeCode (10800/15)*/,
    -
    16680  -60 /*deltaMinutes*/,
    -
    16681  0 /*letterIndex ("")*/,
    -
    16682  },
    -
    16683  // Rule Morocco 2045 only - Aug 20 2:00 0 -
    -
    16684  {
    -
    16685  2045 /*fromYear*/,
    -
    16686  2045 /*toYear*/,
    -
    16687  8 /*inMonth*/,
    -
    16688  0 /*onDayOfWeek*/,
    -
    16689  20 /*onDayOfMonth*/,
    -
    16690  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16691  480 /*atTimeCode (7200/15)*/,
    -
    16692  0 /*deltaMinutes*/,
    -
    16693  0 /*letterIndex ("")*/,
    -
    16694  },
    -
    16695  // Rule Morocco 2046 only - Jul 1 3:00 -1:00 -
    -
    16696  {
    -
    16697  2046 /*fromYear*/,
    -
    16698  2046 /*toYear*/,
    -
    16699  7 /*inMonth*/,
    -
    16700  0 /*onDayOfWeek*/,
    -
    16701  1 /*onDayOfMonth*/,
    -
    16702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16703  720 /*atTimeCode (10800/15)*/,
    -
    16704  -60 /*deltaMinutes*/,
    -
    16705  0 /*letterIndex ("")*/,
    -
    16706  },
    -
    16707  // Rule Morocco 2046 only - Aug 5 2:00 0 -
    -
    16708  {
    -
    16709  2046 /*fromYear*/,
    -
    16710  2046 /*toYear*/,
    -
    16711  8 /*inMonth*/,
    -
    16712  0 /*onDayOfWeek*/,
    -
    16713  5 /*onDayOfMonth*/,
    -
    16714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16715  480 /*atTimeCode (7200/15)*/,
    -
    16716  0 /*deltaMinutes*/,
    -
    16717  0 /*letterIndex ("")*/,
    -
    16718  },
    -
    16719  // Rule Morocco 2047 only - Jun 23 3:00 -1:00 -
    -
    16720  {
    -
    16721  2047 /*fromYear*/,
    -
    16722  2047 /*toYear*/,
    -
    16723  6 /*inMonth*/,
    -
    16724  0 /*onDayOfWeek*/,
    -
    16725  23 /*onDayOfMonth*/,
    -
    16726  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16727  720 /*atTimeCode (10800/15)*/,
    -
    16728  -60 /*deltaMinutes*/,
    -
    16729  0 /*letterIndex ("")*/,
    -
    16730  },
    -
    16731  // Rule Morocco 2047 only - Jul 28 2:00 0 -
    -
    16732  {
    -
    16733  2047 /*fromYear*/,
    -
    16734  2047 /*toYear*/,
    -
    16735  7 /*inMonth*/,
    -
    16736  0 /*onDayOfWeek*/,
    -
    16737  28 /*onDayOfMonth*/,
    -
    16738  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16739  480 /*atTimeCode (7200/15)*/,
    -
    16740  0 /*deltaMinutes*/,
    -
    16741  0 /*letterIndex ("")*/,
    -
    16742  },
    -
    16743  // Rule Morocco 2048 only - Jun 7 3:00 -1:00 -
    -
    16744  {
    -
    16745  2048 /*fromYear*/,
    -
    16746  2048 /*toYear*/,
    -
    16747  6 /*inMonth*/,
    -
    16748  0 /*onDayOfWeek*/,
    -
    16749  7 /*onDayOfMonth*/,
    -
    16750  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16751  720 /*atTimeCode (10800/15)*/,
    -
    16752  -60 /*deltaMinutes*/,
    -
    16753  0 /*letterIndex ("")*/,
    -
    16754  },
    -
    16755  // Rule Morocco 2048 only - Jul 19 2:00 0 -
    -
    16756  {
    -
    16757  2048 /*fromYear*/,
    -
    16758  2048 /*toYear*/,
    -
    16759  7 /*inMonth*/,
    -
    16760  0 /*onDayOfWeek*/,
    -
    16761  19 /*onDayOfMonth*/,
    -
    16762  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16763  480 /*atTimeCode (7200/15)*/,
    -
    16764  0 /*deltaMinutes*/,
    -
    16765  0 /*letterIndex ("")*/,
    -
    16766  },
    -
    16767  // Rule Morocco 2049 only - May 30 3:00 -1:00 -
    -
    16768  {
    -
    16769  2049 /*fromYear*/,
    -
    16770  2049 /*toYear*/,
    -
    16771  5 /*inMonth*/,
    -
    16772  0 /*onDayOfWeek*/,
    -
    16773  30 /*onDayOfMonth*/,
    -
    16774  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16775  720 /*atTimeCode (10800/15)*/,
    -
    16776  -60 /*deltaMinutes*/,
    -
    16777  0 /*letterIndex ("")*/,
    -
    16778  },
    -
    16779  // Rule Morocco 2049 only - Jul 4 2:00 0 -
    -
    16780  {
    -
    16781  2049 /*fromYear*/,
    -
    16782  2049 /*toYear*/,
    -
    16783  7 /*inMonth*/,
    -
    16784  0 /*onDayOfWeek*/,
    -
    16785  4 /*onDayOfMonth*/,
    -
    16786  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16787  480 /*atTimeCode (7200/15)*/,
    -
    16788  0 /*deltaMinutes*/,
    -
    16789  0 /*letterIndex ("")*/,
    -
    16790  },
    -
    16791  // Rule Morocco 2050 only - May 15 3:00 -1:00 -
    -
    16792  {
    -
    16793  2050 /*fromYear*/,
    -
    16794  2050 /*toYear*/,
    -
    16795  5 /*inMonth*/,
    -
    16796  0 /*onDayOfWeek*/,
    -
    16797  15 /*onDayOfMonth*/,
    -
    16798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16799  720 /*atTimeCode (10800/15)*/,
    -
    16800  -60 /*deltaMinutes*/,
    -
    16801  0 /*letterIndex ("")*/,
    -
    16802  },
    -
    16803  // Rule Morocco 2050 only - Jun 26 2:00 0 -
    -
    16804  {
    -
    16805  2050 /*fromYear*/,
    -
    16806  2050 /*toYear*/,
    -
    16807  6 /*inMonth*/,
    -
    16808  0 /*onDayOfWeek*/,
    -
    16809  26 /*onDayOfMonth*/,
    -
    16810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16811  480 /*atTimeCode (7200/15)*/,
    -
    16812  0 /*deltaMinutes*/,
    -
    16813  0 /*letterIndex ("")*/,
    -
    16814  },
    -
    16815  // Rule Morocco 2051 only - May 7 3:00 -1:00 -
    -
    16816  {
    -
    16817  2051 /*fromYear*/,
    -
    16818  2051 /*toYear*/,
    -
    16819  5 /*inMonth*/,
    -
    16820  0 /*onDayOfWeek*/,
    -
    16821  7 /*onDayOfMonth*/,
    -
    16822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16823  720 /*atTimeCode (10800/15)*/,
    -
    16824  -60 /*deltaMinutes*/,
    -
    16825  0 /*letterIndex ("")*/,
    -
    16826  },
    -
    16827  // Rule Morocco 2051 only - Jun 18 2:00 0 -
    -
    16828  {
    -
    16829  2051 /*fromYear*/,
    -
    16830  2051 /*toYear*/,
    -
    16831  6 /*inMonth*/,
    -
    16832  0 /*onDayOfWeek*/,
    -
    16833  18 /*onDayOfMonth*/,
    -
    16834  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16835  480 /*atTimeCode (7200/15)*/,
    -
    16836  0 /*deltaMinutes*/,
    -
    16837  0 /*letterIndex ("")*/,
    -
    16838  },
    -
    16839  // Rule Morocco 2052 only - Apr 28 3:00 -1:00 -
    -
    16840  {
    -
    16841  2052 /*fromYear*/,
    -
    16842  2052 /*toYear*/,
    -
    16843  4 /*inMonth*/,
    -
    16844  0 /*onDayOfWeek*/,
    -
    16845  28 /*onDayOfMonth*/,
    -
    16846  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16847  720 /*atTimeCode (10800/15)*/,
    -
    16848  -60 /*deltaMinutes*/,
    -
    16849  0 /*letterIndex ("")*/,
    -
    16850  },
    -
    16851  // Rule Morocco 2052 only - Jun 2 2:00 0 -
    -
    16852  {
    -
    16853  2052 /*fromYear*/,
    -
    16854  2052 /*toYear*/,
    -
    16855  6 /*inMonth*/,
    -
    16856  0 /*onDayOfWeek*/,
    -
    16857  2 /*onDayOfMonth*/,
    -
    16858  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16859  480 /*atTimeCode (7200/15)*/,
    -
    16860  0 /*deltaMinutes*/,
    -
    16861  0 /*letterIndex ("")*/,
    -
    16862  },
    -
    16863  // Rule Morocco 2053 only - Apr 13 3:00 -1:00 -
    -
    16864  {
    -
    16865  2053 /*fromYear*/,
    -
    16866  2053 /*toYear*/,
    -
    16867  4 /*inMonth*/,
    -
    16868  0 /*onDayOfWeek*/,
    -
    16869  13 /*onDayOfMonth*/,
    -
    16870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16871  720 /*atTimeCode (10800/15)*/,
    -
    16872  -60 /*deltaMinutes*/,
    -
    16873  0 /*letterIndex ("")*/,
    -
    16874  },
    -
    16875  // Rule Morocco 2053 only - May 25 2:00 0 -
    -
    16876  {
    -
    16877  2053 /*fromYear*/,
    -
    16878  2053 /*toYear*/,
    -
    16879  5 /*inMonth*/,
    -
    16880  0 /*onDayOfWeek*/,
    -
    16881  25 /*onDayOfMonth*/,
    -
    16882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16883  480 /*atTimeCode (7200/15)*/,
    -
    16884  0 /*deltaMinutes*/,
    -
    16885  0 /*letterIndex ("")*/,
    -
    16886  },
    -
    16887  // Rule Morocco 2054 only - Apr 5 3:00 -1:00 -
    -
    16888  {
    -
    16889  2054 /*fromYear*/,
    -
    16890  2054 /*toYear*/,
    -
    16891  4 /*inMonth*/,
    -
    16892  0 /*onDayOfWeek*/,
    -
    16893  5 /*onDayOfMonth*/,
    -
    16894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16895  720 /*atTimeCode (10800/15)*/,
    -
    16896  -60 /*deltaMinutes*/,
    -
    16897  0 /*letterIndex ("")*/,
    -
    16898  },
    -
    16899  // Rule Morocco 2054 only - May 10 2:00 0 -
    -
    16900  {
    -
    16901  2054 /*fromYear*/,
    -
    16902  2054 /*toYear*/,
    -
    16903  5 /*inMonth*/,
    -
    16904  0 /*onDayOfWeek*/,
    -
    16905  10 /*onDayOfMonth*/,
    -
    16906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16907  480 /*atTimeCode (7200/15)*/,
    -
    16908  0 /*deltaMinutes*/,
    -
    16909  0 /*letterIndex ("")*/,
    -
    16910  },
    -
    16911  // Rule Morocco 2055 only - Mar 28 3:00 -1:00 -
    -
    16912  {
    -
    16913  2055 /*fromYear*/,
    -
    16914  2055 /*toYear*/,
    -
    16915  3 /*inMonth*/,
    -
    16916  0 /*onDayOfWeek*/,
    -
    16917  28 /*onDayOfMonth*/,
    -
    16918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16919  720 /*atTimeCode (10800/15)*/,
    -
    16920  -60 /*deltaMinutes*/,
    -
    16921  0 /*letterIndex ("")*/,
    -
    16922  },
    -
    16923  // Rule Morocco 2055 only - May 2 2:00 0 -
    -
    16924  {
    -
    16925  2055 /*fromYear*/,
    -
    16926  2055 /*toYear*/,
    -
    16927  5 /*inMonth*/,
    -
    16928  0 /*onDayOfWeek*/,
    -
    16929  2 /*onDayOfMonth*/,
    -
    16930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16931  480 /*atTimeCode (7200/15)*/,
    -
    16932  0 /*deltaMinutes*/,
    -
    16933  0 /*letterIndex ("")*/,
    -
    16934  },
    -
    16935  // Rule Morocco 2056 only - Mar 12 3:00 -1:00 -
    -
    16936  {
    -
    16937  2056 /*fromYear*/,
    -
    16938  2056 /*toYear*/,
    -
    16939  3 /*inMonth*/,
    -
    16940  0 /*onDayOfWeek*/,
    -
    16941  12 /*onDayOfMonth*/,
    -
    16942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16943  720 /*atTimeCode (10800/15)*/,
    -
    16944  -60 /*deltaMinutes*/,
    -
    16945  0 /*letterIndex ("")*/,
    -
    16946  },
    -
    16947  // Rule Morocco 2056 only - Apr 23 2:00 0 -
    -
    16948  {
    -
    16949  2056 /*fromYear*/,
    -
    16950  2056 /*toYear*/,
    -
    16951  4 /*inMonth*/,
    -
    16952  0 /*onDayOfWeek*/,
    -
    16953  23 /*onDayOfMonth*/,
    -
    16954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16955  480 /*atTimeCode (7200/15)*/,
    -
    16956  0 /*deltaMinutes*/,
    -
    16957  0 /*letterIndex ("")*/,
    -
    16958  },
    -
    16959  // Rule Morocco 2057 only - Mar 4 3:00 -1:00 -
    -
    16960  {
    -
    16961  2057 /*fromYear*/,
    -
    16962  2057 /*toYear*/,
    -
    16963  3 /*inMonth*/,
    -
    16964  0 /*onDayOfWeek*/,
    -
    16965  4 /*onDayOfMonth*/,
    -
    16966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16967  720 /*atTimeCode (10800/15)*/,
    -
    16968  -60 /*deltaMinutes*/,
    -
    16969  0 /*letterIndex ("")*/,
    -
    16970  },
    -
    16971  // Rule Morocco 2057 only - Apr 8 2:00 0 -
    -
    16972  {
    -
    16973  2057 /*fromYear*/,
    -
    16974  2057 /*toYear*/,
    -
    16975  4 /*inMonth*/,
    -
    16976  0 /*onDayOfWeek*/,
    -
    16977  8 /*onDayOfMonth*/,
    -
    16978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16979  480 /*atTimeCode (7200/15)*/,
    -
    16980  0 /*deltaMinutes*/,
    -
    16981  0 /*letterIndex ("")*/,
    -
    16982  },
    -
    16983  // Rule Morocco 2058 only - Feb 17 3:00 -1:00 -
    -
    16984  {
    -
    16985  2058 /*fromYear*/,
    -
    16986  2058 /*toYear*/,
    -
    16987  2 /*inMonth*/,
    -
    16988  0 /*onDayOfWeek*/,
    -
    16989  17 /*onDayOfMonth*/,
    -
    16990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    16991  720 /*atTimeCode (10800/15)*/,
    -
    16992  -60 /*deltaMinutes*/,
    -
    16993  0 /*letterIndex ("")*/,
    -
    16994  },
    -
    16995  // Rule Morocco 2058 only - Mar 31 2:00 0 -
    -
    16996  {
    -
    16997  2058 /*fromYear*/,
    -
    16998  2058 /*toYear*/,
    -
    16999  3 /*inMonth*/,
    -
    17000  0 /*onDayOfWeek*/,
    -
    17001  31 /*onDayOfMonth*/,
    -
    17002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17003  480 /*atTimeCode (7200/15)*/,
    -
    17004  0 /*deltaMinutes*/,
    -
    17005  0 /*letterIndex ("")*/,
    -
    17006  },
    -
    17007  // Rule Morocco 2059 only - Feb 9 3:00 -1:00 -
    -
    17008  {
    -
    17009  2059 /*fromYear*/,
    -
    17010  2059 /*toYear*/,
    -
    17011  2 /*inMonth*/,
    -
    17012  0 /*onDayOfWeek*/,
    -
    17013  9 /*onDayOfMonth*/,
    -
    17014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17015  720 /*atTimeCode (10800/15)*/,
    -
    17016  -60 /*deltaMinutes*/,
    -
    17017  0 /*letterIndex ("")*/,
    -
    17018  },
    -
    17019  // Rule Morocco 2059 only - Mar 23 2:00 0 -
    -
    17020  {
    -
    17021  2059 /*fromYear*/,
    -
    17022  2059 /*toYear*/,
    -
    17023  3 /*inMonth*/,
    -
    17024  0 /*onDayOfWeek*/,
    -
    17025  23 /*onDayOfMonth*/,
    -
    17026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17027  480 /*atTimeCode (7200/15)*/,
    -
    17028  0 /*deltaMinutes*/,
    -
    17029  0 /*letterIndex ("")*/,
    -
    17030  },
    -
    17031  // Rule Morocco 2060 only - Feb 1 3:00 -1:00 -
    -
    17032  {
    -
    17033  2060 /*fromYear*/,
    -
    17034  2060 /*toYear*/,
    -
    17035  2 /*inMonth*/,
    -
    17036  0 /*onDayOfWeek*/,
    -
    17037  1 /*onDayOfMonth*/,
    -
    17038  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17039  720 /*atTimeCode (10800/15)*/,
    -
    17040  -60 /*deltaMinutes*/,
    -
    17041  0 /*letterIndex ("")*/,
    -
    17042  },
    -
    17043  // Rule Morocco 2060 only - Mar 7 2:00 0 -
    -
    17044  {
    -
    17045  2060 /*fromYear*/,
    -
    17046  2060 /*toYear*/,
    -
    17047  3 /*inMonth*/,
    -
    17048  0 /*onDayOfWeek*/,
    -
    17049  7 /*onDayOfMonth*/,
    -
    17050  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17051  480 /*atTimeCode (7200/15)*/,
    -
    17052  0 /*deltaMinutes*/,
    -
    17053  0 /*letterIndex ("")*/,
    -
    17054  },
    -
    17055  // Rule Morocco 2061 only - Jan 16 3:00 -1:00 -
    -
    17056  {
    -
    17057  2061 /*fromYear*/,
    -
    17058  2061 /*toYear*/,
    -
    17059  1 /*inMonth*/,
    -
    17060  0 /*onDayOfWeek*/,
    -
    17061  16 /*onDayOfMonth*/,
    -
    17062  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17063  720 /*atTimeCode (10800/15)*/,
    -
    17064  -60 /*deltaMinutes*/,
    -
    17065  0 /*letterIndex ("")*/,
    -
    17066  },
    -
    17067  // Rule Morocco 2061 only - Feb 27 2:00 0 -
    -
    17068  {
    -
    17069  2061 /*fromYear*/,
    -
    17070  2061 /*toYear*/,
    -
    17071  2 /*inMonth*/,
    -
    17072  0 /*onDayOfWeek*/,
    -
    17073  27 /*onDayOfMonth*/,
    -
    17074  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17075  480 /*atTimeCode (7200/15)*/,
    -
    17076  0 /*deltaMinutes*/,
    -
    17077  0 /*letterIndex ("")*/,
    -
    17078  },
    -
    17079  // Rule Morocco 2062 only - Jan 8 3:00 -1:00 -
    -
    17080  {
    -
    17081  2062 /*fromYear*/,
    -
    17082  2062 /*toYear*/,
    -
    17083  1 /*inMonth*/,
    -
    17084  0 /*onDayOfWeek*/,
    -
    17085  8 /*onDayOfMonth*/,
    -
    17086  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17087  720 /*atTimeCode (10800/15)*/,
    -
    17088  -60 /*deltaMinutes*/,
    -
    17089  0 /*letterIndex ("")*/,
    -
    17090  },
    -
    17091  // Rule Morocco 2062 only - Feb 12 2:00 0 -
    -
    17092  {
    -
    17093  2062 /*fromYear*/,
    -
    17094  2062 /*toYear*/,
    -
    17095  2 /*inMonth*/,
    -
    17096  0 /*onDayOfWeek*/,
    -
    17097  12 /*onDayOfMonth*/,
    -
    17098  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17099  480 /*atTimeCode (7200/15)*/,
    -
    17100  0 /*deltaMinutes*/,
    -
    17101  0 /*letterIndex ("")*/,
    -
    17102  },
    -
    17103  // Rule Morocco 2062 only - Dec 31 3:00 -1:00 -
    -
    17104  {
    -
    17105  2062 /*fromYear*/,
    -
    17106  2062 /*toYear*/,
    -
    17107  12 /*inMonth*/,
    -
    17108  0 /*onDayOfWeek*/,
    -
    17109  31 /*onDayOfMonth*/,
    -
    17110  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17111  720 /*atTimeCode (10800/15)*/,
    -
    17112  -60 /*deltaMinutes*/,
    -
    17113  0 /*letterIndex ("")*/,
    -
    17114  },
    -
    17115  // Rule Morocco 2063 only - Feb 4 2:00 0 -
    -
    17116  {
    -
    17117  2063 /*fromYear*/,
    -
    17118  2063 /*toYear*/,
    -
    17119  2 /*inMonth*/,
    -
    17120  0 /*onDayOfWeek*/,
    -
    17121  4 /*onDayOfMonth*/,
    -
    17122  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17123  480 /*atTimeCode (7200/15)*/,
    -
    17124  0 /*deltaMinutes*/,
    -
    17125  0 /*letterIndex ("")*/,
    -
    17126  },
    -
    17127  // Rule Morocco 2063 only - Dec 16 3:00 -1:00 -
    -
    17128  {
    -
    17129  2063 /*fromYear*/,
    -
    17130  2063 /*toYear*/,
    -
    17131  12 /*inMonth*/,
    -
    17132  0 /*onDayOfWeek*/,
    -
    17133  16 /*onDayOfMonth*/,
    -
    17134  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17135  720 /*atTimeCode (10800/15)*/,
    -
    17136  -60 /*deltaMinutes*/,
    -
    17137  0 /*letterIndex ("")*/,
    -
    17138  },
    -
    17139  // Rule Morocco 2064 only - Jan 27 2:00 0 -
    -
    17140  {
    -
    17141  2064 /*fromYear*/,
    -
    17142  2064 /*toYear*/,
    -
    17143  1 /*inMonth*/,
    -
    17144  0 /*onDayOfWeek*/,
    -
    17145  27 /*onDayOfMonth*/,
    -
    17146  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17147  480 /*atTimeCode (7200/15)*/,
    -
    17148  0 /*deltaMinutes*/,
    -
    17149  0 /*letterIndex ("")*/,
    -
    17150  },
    -
    17151  // Rule Morocco 2064 only - Dec 7 3:00 -1:00 -
    -
    17152  {
    -
    17153  2064 /*fromYear*/,
    -
    17154  2064 /*toYear*/,
    -
    17155  12 /*inMonth*/,
    -
    17156  0 /*onDayOfWeek*/,
    -
    17157  7 /*onDayOfMonth*/,
    -
    17158  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17159  720 /*atTimeCode (10800/15)*/,
    -
    17160  -60 /*deltaMinutes*/,
    -
    17161  0 /*letterIndex ("")*/,
    -
    17162  },
    -
    17163  // Rule Morocco 2065 only - Jan 11 2:00 0 -
    -
    17164  {
    -
    17165  2065 /*fromYear*/,
    -
    17166  2065 /*toYear*/,
    -
    17167  1 /*inMonth*/,
    -
    17168  0 /*onDayOfWeek*/,
    -
    17169  11 /*onDayOfMonth*/,
    -
    17170  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17171  480 /*atTimeCode (7200/15)*/,
    -
    17172  0 /*deltaMinutes*/,
    -
    17173  0 /*letterIndex ("")*/,
    -
    17174  },
    -
    17175  // Rule Morocco 2065 only - Nov 22 3:00 -1:00 -
    -
    17176  {
    -
    17177  2065 /*fromYear*/,
    -
    17178  2065 /*toYear*/,
    -
    17179  11 /*inMonth*/,
    -
    17180  0 /*onDayOfWeek*/,
    -
    17181  22 /*onDayOfMonth*/,
    -
    17182  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17183  720 /*atTimeCode (10800/15)*/,
    -
    17184  -60 /*deltaMinutes*/,
    -
    17185  0 /*letterIndex ("")*/,
    -
    17186  },
    -
    17187  // Rule Morocco 2066 only - Jan 3 2:00 0 -
    -
    17188  {
    -
    17189  2066 /*fromYear*/,
    -
    17190  2066 /*toYear*/,
    -
    17191  1 /*inMonth*/,
    -
    17192  0 /*onDayOfWeek*/,
    -
    17193  3 /*onDayOfMonth*/,
    -
    17194  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17195  480 /*atTimeCode (7200/15)*/,
    -
    17196  0 /*deltaMinutes*/,
    -
    17197  0 /*letterIndex ("")*/,
    -
    17198  },
    -
    17199  // Rule Morocco 2066 only - Nov 14 3:00 -1:00 -
    -
    17200  {
    -
    17201  2066 /*fromYear*/,
    -
    17202  2066 /*toYear*/,
    -
    17203  11 /*inMonth*/,
    -
    17204  0 /*onDayOfWeek*/,
    -
    17205  14 /*onDayOfMonth*/,
    -
    17206  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17207  720 /*atTimeCode (10800/15)*/,
    -
    17208  -60 /*deltaMinutes*/,
    -
    17209  0 /*letterIndex ("")*/,
    -
    17210  },
    -
    17211  // Rule Morocco 2066 only - Dec 26 2:00 0 -
    -
    17212  {
    -
    17213  2066 /*fromYear*/,
    -
    17214  2066 /*toYear*/,
    -
    17215  12 /*inMonth*/,
    -
    17216  0 /*onDayOfWeek*/,
    -
    17217  26 /*onDayOfMonth*/,
    -
    17218  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17219  480 /*atTimeCode (7200/15)*/,
    -
    17220  0 /*deltaMinutes*/,
    -
    17221  0 /*letterIndex ("")*/,
    -
    17222  },
    -
    17223  // Rule Morocco 2067 only - Nov 6 3:00 -1:00 -
    -
    17224  {
    -
    17225  2067 /*fromYear*/,
    -
    17226  2067 /*toYear*/,
    -
    17227  11 /*inMonth*/,
    -
    17228  0 /*onDayOfWeek*/,
    -
    17229  6 /*onDayOfMonth*/,
    -
    17230  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17231  720 /*atTimeCode (10800/15)*/,
    -
    17232  -60 /*deltaMinutes*/,
    -
    17233  0 /*letterIndex ("")*/,
    -
    17234  },
    -
    17235  // Rule Morocco 2067 only - Dec 11 2:00 0 -
    -
    17236  {
    -
    17237  2067 /*fromYear*/,
    -
    17238  2067 /*toYear*/,
    -
    17239  12 /*inMonth*/,
    -
    17240  0 /*onDayOfWeek*/,
    -
    17241  11 /*onDayOfMonth*/,
    -
    17242  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17243  480 /*atTimeCode (7200/15)*/,
    -
    17244  0 /*deltaMinutes*/,
    -
    17245  0 /*letterIndex ("")*/,
    -
    17246  },
    -
    17247  // Rule Morocco 2068 only - Oct 21 3:00 -1:00 -
    -
    17248  {
    -
    17249  2068 /*fromYear*/,
    -
    17250  2068 /*toYear*/,
    -
    17251  10 /*inMonth*/,
    -
    17252  0 /*onDayOfWeek*/,
    -
    17253  21 /*onDayOfMonth*/,
    -
    17254  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17255  720 /*atTimeCode (10800/15)*/,
    -
    17256  -60 /*deltaMinutes*/,
    -
    17257  0 /*letterIndex ("")*/,
    -
    17258  },
    -
    17259  // Rule Morocco 2068 only - Dec 2 2:00 0 -
    -
    17260  {
    -
    17261  2068 /*fromYear*/,
    -
    17262  2068 /*toYear*/,
    -
    17263  12 /*inMonth*/,
    -
    17264  0 /*onDayOfWeek*/,
    -
    17265  2 /*onDayOfMonth*/,
    -
    17266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17267  480 /*atTimeCode (7200/15)*/,
    -
    17268  0 /*deltaMinutes*/,
    -
    17269  0 /*letterIndex ("")*/,
    -
    17270  },
    -
    17271  // Rule Morocco 2069 only - Oct 13 3:00 -1:00 -
    -
    17272  {
    -
    17273  2069 /*fromYear*/,
    -
    17274  2069 /*toYear*/,
    -
    17275  10 /*inMonth*/,
    -
    17276  0 /*onDayOfWeek*/,
    -
    17277  13 /*onDayOfMonth*/,
    -
    17278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17279  720 /*atTimeCode (10800/15)*/,
    -
    17280  -60 /*deltaMinutes*/,
    -
    17281  0 /*letterIndex ("")*/,
    -
    17282  },
    -
    17283  // Rule Morocco 2069 only - Nov 17 2:00 0 -
    -
    17284  {
    -
    17285  2069 /*fromYear*/,
    -
    17286  2069 /*toYear*/,
    -
    17287  11 /*inMonth*/,
    -
    17288  0 /*onDayOfWeek*/,
    -
    17289  17 /*onDayOfMonth*/,
    -
    17290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17291  480 /*atTimeCode (7200/15)*/,
    -
    17292  0 /*deltaMinutes*/,
    -
    17293  0 /*letterIndex ("")*/,
    -
    17294  },
    -
    17295  // Rule Morocco 2070 only - Oct 5 3:00 -1:00 -
    -
    17296  {
    -
    17297  2070 /*fromYear*/,
    -
    17298  2070 /*toYear*/,
    -
    17299  10 /*inMonth*/,
    -
    17300  0 /*onDayOfWeek*/,
    -
    17301  5 /*onDayOfMonth*/,
    -
    17302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17303  720 /*atTimeCode (10800/15)*/,
    -
    17304  -60 /*deltaMinutes*/,
    -
    17305  0 /*letterIndex ("")*/,
    -
    17306  },
    -
    17307  // Rule Morocco 2070 only - Nov 9 2:00 0 -
    -
    17308  {
    -
    17309  2070 /*fromYear*/,
    -
    17310  2070 /*toYear*/,
    -
    17311  11 /*inMonth*/,
    -
    17312  0 /*onDayOfWeek*/,
    -
    17313  9 /*onDayOfMonth*/,
    -
    17314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17315  480 /*atTimeCode (7200/15)*/,
    -
    17316  0 /*deltaMinutes*/,
    -
    17317  0 /*letterIndex ("")*/,
    -
    17318  },
    -
    17319  // Rule Morocco 2071 only - Sep 20 3:00 -1:00 -
    -
    17320  {
    -
    17321  2071 /*fromYear*/,
    -
    17322  2071 /*toYear*/,
    -
    17323  9 /*inMonth*/,
    -
    17324  0 /*onDayOfWeek*/,
    -
    17325  20 /*onDayOfMonth*/,
    -
    17326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17327  720 /*atTimeCode (10800/15)*/,
    -
    17328  -60 /*deltaMinutes*/,
    -
    17329  0 /*letterIndex ("")*/,
    -
    17330  },
    -
    17331  // Rule Morocco 2071 only - Nov 1 2:00 0 -
    -
    17332  {
    -
    17333  2071 /*fromYear*/,
    -
    17334  2071 /*toYear*/,
    -
    17335  11 /*inMonth*/,
    -
    17336  0 /*onDayOfWeek*/,
    -
    17337  1 /*onDayOfMonth*/,
    -
    17338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17339  480 /*atTimeCode (7200/15)*/,
    -
    17340  0 /*deltaMinutes*/,
    -
    17341  0 /*letterIndex ("")*/,
    -
    17342  },
    -
    17343  // Rule Morocco 2072 only - Sep 11 3:00 -1:00 -
    -
    17344  {
    -
    17345  2072 /*fromYear*/,
    -
    17346  2072 /*toYear*/,
    -
    17347  9 /*inMonth*/,
    -
    17348  0 /*onDayOfWeek*/,
    -
    17349  11 /*onDayOfMonth*/,
    -
    17350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17351  720 /*atTimeCode (10800/15)*/,
    -
    17352  -60 /*deltaMinutes*/,
    -
    17353  0 /*letterIndex ("")*/,
    -
    17354  },
    -
    17355  // Rule Morocco 2072 only - Oct 16 2:00 0 -
    -
    17356  {
    -
    17357  2072 /*fromYear*/,
    -
    17358  2072 /*toYear*/,
    -
    17359  10 /*inMonth*/,
    -
    17360  0 /*onDayOfWeek*/,
    -
    17361  16 /*onDayOfMonth*/,
    -
    17362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17363  480 /*atTimeCode (7200/15)*/,
    -
    17364  0 /*deltaMinutes*/,
    -
    17365  0 /*letterIndex ("")*/,
    -
    17366  },
    -
    17367  // Rule Morocco 2073 only - Aug 27 3:00 -1:00 -
    -
    17368  {
    -
    17369  2073 /*fromYear*/,
    -
    17370  2073 /*toYear*/,
    -
    17371  8 /*inMonth*/,
    -
    17372  0 /*onDayOfWeek*/,
    -
    17373  27 /*onDayOfMonth*/,
    -
    17374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17375  720 /*atTimeCode (10800/15)*/,
    -
    17376  -60 /*deltaMinutes*/,
    -
    17377  0 /*letterIndex ("")*/,
    -
    17378  },
    -
    17379  // Rule Morocco 2073 only - Oct 8 2:00 0 -
    -
    17380  {
    -
    17381  2073 /*fromYear*/,
    -
    17382  2073 /*toYear*/,
    -
    17383  10 /*inMonth*/,
    -
    17384  0 /*onDayOfWeek*/,
    -
    17385  8 /*onDayOfMonth*/,
    -
    17386  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17387  480 /*atTimeCode (7200/15)*/,
    -
    17388  0 /*deltaMinutes*/,
    -
    17389  0 /*letterIndex ("")*/,
    -
    17390  },
    -
    17391  // Rule Morocco 2074 only - Aug 19 3:00 -1:00 -
    -
    17392  {
    -
    17393  2074 /*fromYear*/,
    -
    17394  2074 /*toYear*/,
    -
    17395  8 /*inMonth*/,
    -
    17396  0 /*onDayOfWeek*/,
    -
    17397  19 /*onDayOfMonth*/,
    -
    17398  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17399  720 /*atTimeCode (10800/15)*/,
    -
    17400  -60 /*deltaMinutes*/,
    -
    17401  0 /*letterIndex ("")*/,
    -
    17402  },
    -
    17403  // Rule Morocco 2074 only - Sep 30 2:00 0 -
    -
    17404  {
    -
    17405  2074 /*fromYear*/,
    -
    17406  2074 /*toYear*/,
    -
    17407  9 /*inMonth*/,
    -
    17408  0 /*onDayOfWeek*/,
    -
    17409  30 /*onDayOfMonth*/,
    -
    17410  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17411  480 /*atTimeCode (7200/15)*/,
    -
    17412  0 /*deltaMinutes*/,
    -
    17413  0 /*letterIndex ("")*/,
    -
    17414  },
    -
    17415  // Rule Morocco 2075 only - Aug 11 3:00 -1:00 -
    -
    17416  {
    -
    17417  2075 /*fromYear*/,
    -
    17418  2075 /*toYear*/,
    -
    17419  8 /*inMonth*/,
    -
    17420  0 /*onDayOfWeek*/,
    -
    17421  11 /*onDayOfMonth*/,
    -
    17422  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17423  720 /*atTimeCode (10800/15)*/,
    -
    17424  -60 /*deltaMinutes*/,
    -
    17425  0 /*letterIndex ("")*/,
    -
    17426  },
    -
    17427  // Rule Morocco 2075 only - Sep 15 2:00 0 -
    -
    17428  {
    -
    17429  2075 /*fromYear*/,
    -
    17430  2075 /*toYear*/,
    -
    17431  9 /*inMonth*/,
    -
    17432  0 /*onDayOfWeek*/,
    -
    17433  15 /*onDayOfMonth*/,
    -
    17434  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17435  480 /*atTimeCode (7200/15)*/,
    -
    17436  0 /*deltaMinutes*/,
    -
    17437  0 /*letterIndex ("")*/,
    -
    17438  },
    -
    17439  // Rule Morocco 2076 only - Jul 26 3:00 -1:00 -
    -
    17440  {
    -
    17441  2076 /*fromYear*/,
    -
    17442  2076 /*toYear*/,
    -
    17443  7 /*inMonth*/,
    -
    17444  0 /*onDayOfWeek*/,
    -
    17445  26 /*onDayOfMonth*/,
    -
    17446  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17447  720 /*atTimeCode (10800/15)*/,
    -
    17448  -60 /*deltaMinutes*/,
    -
    17449  0 /*letterIndex ("")*/,
    -
    17450  },
    -
    17451  // Rule Morocco 2076 only - Sep 6 2:00 0 -
    -
    17452  {
    -
    17453  2076 /*fromYear*/,
    -
    17454  2076 /*toYear*/,
    -
    17455  9 /*inMonth*/,
    -
    17456  0 /*onDayOfWeek*/,
    -
    17457  6 /*onDayOfMonth*/,
    -
    17458  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17459  480 /*atTimeCode (7200/15)*/,
    -
    17460  0 /*deltaMinutes*/,
    -
    17461  0 /*letterIndex ("")*/,
    -
    17462  },
    -
    17463  // Rule Morocco 2077 only - Jul 18 3:00 -1:00 -
    -
    17464  {
    -
    17465  2077 /*fromYear*/,
    -
    17466  2077 /*toYear*/,
    -
    17467  7 /*inMonth*/,
    -
    17468  0 /*onDayOfWeek*/,
    -
    17469  18 /*onDayOfMonth*/,
    -
    17470  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17471  720 /*atTimeCode (10800/15)*/,
    -
    17472  -60 /*deltaMinutes*/,
    -
    17473  0 /*letterIndex ("")*/,
    -
    17474  },
    -
    17475  // Rule Morocco 2077 only - Aug 22 2:00 0 -
    -
    17476  {
    -
    17477  2077 /*fromYear*/,
    -
    17478  2077 /*toYear*/,
    -
    17479  8 /*inMonth*/,
    -
    17480  0 /*onDayOfWeek*/,
    -
    17481  22 /*onDayOfMonth*/,
    -
    17482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17483  480 /*atTimeCode (7200/15)*/,
    -
    17484  0 /*deltaMinutes*/,
    -
    17485  0 /*letterIndex ("")*/,
    -
    17486  },
    -
    17487  // Rule Morocco 2078 only - Jul 10 3:00 -1:00 -
    -
    17488  {
    -
    17489  2078 /*fromYear*/,
    -
    17490  2078 /*toYear*/,
    -
    17491  7 /*inMonth*/,
    -
    17492  0 /*onDayOfWeek*/,
    -
    17493  10 /*onDayOfMonth*/,
    -
    17494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17495  720 /*atTimeCode (10800/15)*/,
    -
    17496  -60 /*deltaMinutes*/,
    -
    17497  0 /*letterIndex ("")*/,
    -
    17498  },
    -
    17499  // Rule Morocco 2078 only - Aug 14 2:00 0 -
    -
    17500  {
    -
    17501  2078 /*fromYear*/,
    -
    17502  2078 /*toYear*/,
    -
    17503  8 /*inMonth*/,
    -
    17504  0 /*onDayOfWeek*/,
    -
    17505  14 /*onDayOfMonth*/,
    -
    17506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17507  480 /*atTimeCode (7200/15)*/,
    -
    17508  0 /*deltaMinutes*/,
    -
    17509  0 /*letterIndex ("")*/,
    -
    17510  },
    -
    17511  // Rule Morocco 2079 only - Jun 25 3:00 -1:00 -
    -
    17512  {
    -
    17513  2079 /*fromYear*/,
    -
    17514  2079 /*toYear*/,
    -
    17515  6 /*inMonth*/,
    -
    17516  0 /*onDayOfWeek*/,
    -
    17517  25 /*onDayOfMonth*/,
    -
    17518  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17519  720 /*atTimeCode (10800/15)*/,
    -
    17520  -60 /*deltaMinutes*/,
    -
    17521  0 /*letterIndex ("")*/,
    -
    17522  },
    -
    17523  // Rule Morocco 2079 only - Aug 6 2:00 0 -
    -
    17524  {
    -
    17525  2079 /*fromYear*/,
    -
    17526  2079 /*toYear*/,
    -
    17527  8 /*inMonth*/,
    -
    17528  0 /*onDayOfWeek*/,
    -
    17529  6 /*onDayOfMonth*/,
    -
    17530  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17531  480 /*atTimeCode (7200/15)*/,
    -
    17532  0 /*deltaMinutes*/,
    -
    17533  0 /*letterIndex ("")*/,
    -
    17534  },
    -
    17535  // Rule Morocco 2080 only - Jun 16 3:00 -1:00 -
    -
    17536  {
    -
    17537  2080 /*fromYear*/,
    -
    17538  2080 /*toYear*/,
    -
    17539  6 /*inMonth*/,
    -
    17540  0 /*onDayOfWeek*/,
    -
    17541  16 /*onDayOfMonth*/,
    -
    17542  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17543  720 /*atTimeCode (10800/15)*/,
    -
    17544  -60 /*deltaMinutes*/,
    -
    17545  0 /*letterIndex ("")*/,
    -
    17546  },
    -
    17547  // Rule Morocco 2080 only - Jul 21 2:00 0 -
    -
    17548  {
    -
    17549  2080 /*fromYear*/,
    -
    17550  2080 /*toYear*/,
    -
    17551  7 /*inMonth*/,
    -
    17552  0 /*onDayOfWeek*/,
    -
    17553  21 /*onDayOfMonth*/,
    -
    17554  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17555  480 /*atTimeCode (7200/15)*/,
    -
    17556  0 /*deltaMinutes*/,
    -
    17557  0 /*letterIndex ("")*/,
    -
    17558  },
    -
    17559  // Rule Morocco 2081 only - Jun 1 3:00 -1:00 -
    -
    17560  {
    -
    17561  2081 /*fromYear*/,
    -
    17562  2081 /*toYear*/,
    -
    17563  6 /*inMonth*/,
    -
    17564  0 /*onDayOfWeek*/,
    -
    17565  1 /*onDayOfMonth*/,
    -
    17566  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17567  720 /*atTimeCode (10800/15)*/,
    -
    17568  -60 /*deltaMinutes*/,
    -
    17569  0 /*letterIndex ("")*/,
    -
    17570  },
    -
    17571  // Rule Morocco 2081 only - Jul 13 2:00 0 -
    -
    17572  {
    -
    17573  2081 /*fromYear*/,
    -
    17574  2081 /*toYear*/,
    -
    17575  7 /*inMonth*/,
    -
    17576  0 /*onDayOfWeek*/,
    -
    17577  13 /*onDayOfMonth*/,
    -
    17578  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17579  480 /*atTimeCode (7200/15)*/,
    -
    17580  0 /*deltaMinutes*/,
    -
    17581  0 /*letterIndex ("")*/,
    -
    17582  },
    -
    17583  // Rule Morocco 2082 only - May 24 3:00 -1:00 -
    -
    17584  {
    -
    17585  2082 /*fromYear*/,
    -
    17586  2082 /*toYear*/,
    -
    17587  5 /*inMonth*/,
    -
    17588  0 /*onDayOfWeek*/,
    -
    17589  24 /*onDayOfMonth*/,
    -
    17590  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17591  720 /*atTimeCode (10800/15)*/,
    -
    17592  -60 /*deltaMinutes*/,
    -
    17593  0 /*letterIndex ("")*/,
    -
    17594  },
    -
    17595  // Rule Morocco 2082 only - Jun 28 2:00 0 -
    -
    17596  {
    -
    17597  2082 /*fromYear*/,
    -
    17598  2082 /*toYear*/,
    -
    17599  6 /*inMonth*/,
    -
    17600  0 /*onDayOfWeek*/,
    -
    17601  28 /*onDayOfMonth*/,
    -
    17602  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17603  480 /*atTimeCode (7200/15)*/,
    -
    17604  0 /*deltaMinutes*/,
    -
    17605  0 /*letterIndex ("")*/,
    -
    17606  },
    -
    17607  // Rule Morocco 2083 only - May 16 3:00 -1:00 -
    -
    17608  {
    -
    17609  2083 /*fromYear*/,
    -
    17610  2083 /*toYear*/,
    -
    17611  5 /*inMonth*/,
    -
    17612  0 /*onDayOfWeek*/,
    -
    17613  16 /*onDayOfMonth*/,
    -
    17614  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17615  720 /*atTimeCode (10800/15)*/,
    -
    17616  -60 /*deltaMinutes*/,
    -
    17617  0 /*letterIndex ("")*/,
    -
    17618  },
    -
    17619  // Rule Morocco 2083 only - Jun 20 2:00 0 -
    -
    17620  {
    -
    17621  2083 /*fromYear*/,
    -
    17622  2083 /*toYear*/,
    -
    17623  6 /*inMonth*/,
    -
    17624  0 /*onDayOfWeek*/,
    -
    17625  20 /*onDayOfMonth*/,
    -
    17626  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17627  480 /*atTimeCode (7200/15)*/,
    -
    17628  0 /*deltaMinutes*/,
    -
    17629  0 /*letterIndex ("")*/,
    -
    17630  },
    -
    17631  // Rule Morocco 2084 only - Apr 30 3:00 -1:00 -
    -
    17632  {
    -
    17633  2084 /*fromYear*/,
    -
    17634  2084 /*toYear*/,
    -
    17635  4 /*inMonth*/,
    -
    17636  0 /*onDayOfWeek*/,
    -
    17637  30 /*onDayOfMonth*/,
    -
    17638  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17639  720 /*atTimeCode (10800/15)*/,
    -
    17640  -60 /*deltaMinutes*/,
    -
    17641  0 /*letterIndex ("")*/,
    -
    17642  },
    -
    17643  // Rule Morocco 2084 only - Jun 11 2:00 0 -
    -
    17644  {
    -
    17645  2084 /*fromYear*/,
    -
    17646  2084 /*toYear*/,
    -
    17647  6 /*inMonth*/,
    -
    17648  0 /*onDayOfWeek*/,
    -
    17649  11 /*onDayOfMonth*/,
    -
    17650  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17651  480 /*atTimeCode (7200/15)*/,
    -
    17652  0 /*deltaMinutes*/,
    -
    17653  0 /*letterIndex ("")*/,
    -
    17654  },
    -
    17655  // Rule Morocco 2085 only - Apr 22 3:00 -1:00 -
    -
    17656  {
    -
    17657  2085 /*fromYear*/,
    -
    17658  2085 /*toYear*/,
    -
    17659  4 /*inMonth*/,
    -
    17660  0 /*onDayOfWeek*/,
    -
    17661  22 /*onDayOfMonth*/,
    -
    17662  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17663  720 /*atTimeCode (10800/15)*/,
    -
    17664  -60 /*deltaMinutes*/,
    -
    17665  0 /*letterIndex ("")*/,
    -
    17666  },
    -
    17667  // Rule Morocco 2085 only - May 27 2:00 0 -
    -
    17668  {
    -
    17669  2085 /*fromYear*/,
    -
    17670  2085 /*toYear*/,
    -
    17671  5 /*inMonth*/,
    -
    17672  0 /*onDayOfWeek*/,
    -
    17673  27 /*onDayOfMonth*/,
    -
    17674  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17675  480 /*atTimeCode (7200/15)*/,
    -
    17676  0 /*deltaMinutes*/,
    -
    17677  0 /*letterIndex ("")*/,
    -
    17678  },
    -
    17679  // Rule Morocco 2086 only - Apr 14 3:00 -1:00 -
    -
    17680  {
    -
    17681  2086 /*fromYear*/,
    -
    17682  2086 /*toYear*/,
    -
    17683  4 /*inMonth*/,
    -
    17684  0 /*onDayOfWeek*/,
    -
    17685  14 /*onDayOfMonth*/,
    -
    17686  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17687  720 /*atTimeCode (10800/15)*/,
    -
    17688  -60 /*deltaMinutes*/,
    -
    17689  0 /*letterIndex ("")*/,
    -
    17690  },
    -
    17691  // Rule Morocco 2086 only - May 19 2:00 0 -
    -
    17692  {
    -
    17693  2086 /*fromYear*/,
    -
    17694  2086 /*toYear*/,
    -
    17695  5 /*inMonth*/,
    -
    17696  0 /*onDayOfWeek*/,
    -
    17697  19 /*onDayOfMonth*/,
    -
    17698  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17699  480 /*atTimeCode (7200/15)*/,
    -
    17700  0 /*deltaMinutes*/,
    -
    17701  0 /*letterIndex ("")*/,
    -
    17702  },
    -
    17703  // Rule Morocco 2087 only - Mar 30 3:00 -1:00 -
    -
    17704  {
    -
    17705  2087 /*fromYear*/,
    -
    17706  2087 /*toYear*/,
    -
    17707  3 /*inMonth*/,
    -
    17708  0 /*onDayOfWeek*/,
    -
    17709  30 /*onDayOfMonth*/,
    -
    17710  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17711  720 /*atTimeCode (10800/15)*/,
    -
    17712  -60 /*deltaMinutes*/,
    -
    17713  0 /*letterIndex ("")*/,
    -
    17714  },
    -
    17715  // Rule Morocco 2087 only - May 11 2:00 0 -
    -
    17716  {
    -
    17717  2087 /*fromYear*/,
    -
    17718  2087 /*toYear*/,
    -
    17719  5 /*inMonth*/,
    -
    17720  0 /*onDayOfWeek*/,
    -
    17721  11 /*onDayOfMonth*/,
    -
    17722  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17723  480 /*atTimeCode (7200/15)*/,
    -
    17724  0 /*deltaMinutes*/,
    -
    17725  0 /*letterIndex ("")*/,
    -
    17726  },
    -
    17727 
    -
    17728 };
    -
    17729 
    -
    17730 const complete::Info::ZonePolicy kZonePolicyMorocco ACE_TIME_PROGMEM = {
    -
    17731  kZoneRulesMorocco /*rules*/,
    -
    17732  184 /*numRules*/,
    -
    17733 };
    -
    17734 
    -
    17735 //---------------------------------------------------------------------------
    -
    17736 // Policy name: NBorneo
    -
    17737 // Rules: 3
    -
    17738 //---------------------------------------------------------------------------
    -
    17739 
    -
    17740 static const complete::Info::ZoneRule kZoneRulesNBorneo[] ACE_TIME_PROGMEM = {
    -
    17741  // Anchor: Rule NBorneo 1935 1941 - Dec 14 0:00 0 -
    -
    17742  {
    -
    17743  -32767 /*fromYear*/,
    -
    17744  -32767 /*toYear*/,
    -
    17745  1 /*inMonth*/,
    -
    17746  0 /*onDayOfWeek*/,
    -
    17747  1 /*onDayOfMonth*/,
    -
    17748  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17749  0 /*atTimeCode (0/15)*/,
    -
    17750  0 /*deltaMinutes*/,
    -
    17751  0 /*letterIndex ("")*/,
    -
    17752  },
    -
    17753  // Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 -
    -
    17754  {
    -
    17755  1935 /*fromYear*/,
    -
    17756  1941 /*toYear*/,
    -
    17757  9 /*inMonth*/,
    -
    17758  0 /*onDayOfWeek*/,
    -
    17759  14 /*onDayOfMonth*/,
    -
    17760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17761  0 /*atTimeCode (0/15)*/,
    -
    17762  20 /*deltaMinutes*/,
    -
    17763  0 /*letterIndex ("")*/,
    -
    17764  },
    -
    17765  // Rule NBorneo 1935 1941 - Dec 14 0:00 0 -
    -
    17766  {
    -
    17767  1935 /*fromYear*/,
    -
    17768  1941 /*toYear*/,
    -
    17769  12 /*inMonth*/,
    -
    17770  0 /*onDayOfWeek*/,
    -
    17771  14 /*onDayOfMonth*/,
    -
    17772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17773  0 /*atTimeCode (0/15)*/,
    -
    17774  0 /*deltaMinutes*/,
    -
    17775  0 /*letterIndex ("")*/,
    -
    17776  },
    -
    17777 
    -
    17778 };
    -
    17779 
    -
    17780 const complete::Info::ZonePolicy kZonePolicyNBorneo ACE_TIME_PROGMEM = {
    -
    17781  kZoneRulesNBorneo /*rules*/,
    -
    17782  3 /*numRules*/,
    -
    17783 };
    -
    17784 
    -
    17785 //---------------------------------------------------------------------------
    -
    17786 // Policy name: NC
    -
    17787 // Rules: 5
    -
    17788 //---------------------------------------------------------------------------
    -
    17789 
    -
    17790 static const complete::Info::ZoneRule kZoneRulesNC[] ACE_TIME_PROGMEM = {
    -
    17791  // Anchor: Rule NC 1978 1979 - Feb 27 0:00 0 -
    -
    17792  {
    -
    17793  -32767 /*fromYear*/,
    -
    17794  -32767 /*toYear*/,
    -
    17795  1 /*inMonth*/,
    -
    17796  0 /*onDayOfWeek*/,
    -
    17797  1 /*onDayOfMonth*/,
    -
    17798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17799  0 /*atTimeCode (0/15)*/,
    -
    17800  0 /*deltaMinutes*/,
    -
    17801  0 /*letterIndex ("")*/,
    -
    17802  },
    -
    17803  // Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 -
    -
    17804  {
    -
    17805  1977 /*fromYear*/,
    -
    17806  1978 /*toYear*/,
    -
    17807  12 /*inMonth*/,
    -
    17808  7 /*onDayOfWeek*/,
    -
    17809  1 /*onDayOfMonth*/,
    -
    17810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17811  0 /*atTimeCode (0/15)*/,
    -
    17812  60 /*deltaMinutes*/,
    -
    17813  0 /*letterIndex ("")*/,
    -
    17814  },
    -
    17815  // Rule NC 1978 1979 - Feb 27 0:00 0 -
    -
    17816  {
    -
    17817  1978 /*fromYear*/,
    -
    17818  1979 /*toYear*/,
    -
    17819  2 /*inMonth*/,
    -
    17820  0 /*onDayOfWeek*/,
    -
    17821  27 /*onDayOfMonth*/,
    -
    17822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17823  0 /*atTimeCode (0/15)*/,
    -
    17824  0 /*deltaMinutes*/,
    -
    17825  0 /*letterIndex ("")*/,
    -
    17826  },
    -
    17827  // Rule NC 1996 only - Dec 1 2:00s 1:00 -
    -
    17828  {
    -
    17829  1996 /*fromYear*/,
    -
    17830  1996 /*toYear*/,
    -
    17831  12 /*inMonth*/,
    -
    17832  0 /*onDayOfWeek*/,
    -
    17833  1 /*onDayOfMonth*/,
    -
    17834  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    17835  480 /*atTimeCode (7200/15)*/,
    -
    17836  60 /*deltaMinutes*/,
    -
    17837  0 /*letterIndex ("")*/,
    -
    17838  },
    -
    17839  // Rule NC 1997 only - Mar 2 2:00s 0 -
    -
    17840  {
    -
    17841  1997 /*fromYear*/,
    -
    17842  1997 /*toYear*/,
    -
    17843  3 /*inMonth*/,
    -
    17844  0 /*onDayOfWeek*/,
    -
    17845  2 /*onDayOfMonth*/,
    -
    17846  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    17847  480 /*atTimeCode (7200/15)*/,
    -
    17848  0 /*deltaMinutes*/,
    -
    17849  0 /*letterIndex ("")*/,
    -
    17850  },
    -
    17851 
    -
    17852 };
    -
    17853 
    -
    17854 const complete::Info::ZonePolicy kZonePolicyNC ACE_TIME_PROGMEM = {
    -
    17855  kZoneRulesNC /*rules*/,
    -
    17856  5 /*numRules*/,
    -
    17857 };
    -
    17858 
    -
    17859 //---------------------------------------------------------------------------
    -
    17860 // Policy name: NT_YK
    -
    17861 // Rules: 11
    -
    17862 //---------------------------------------------------------------------------
    -
    17863 
    -
    17864 static const complete::Info::ZoneRule kZoneRulesNT_YK[] ACE_TIME_PROGMEM = {
    -
    17865  // Anchor: Rule NT_YK 1918 only - Oct 27 2:00 0 S
    -
    17866  {
    -
    17867  -32767 /*fromYear*/,
    -
    17868  -32767 /*toYear*/,
    -
    17869  1 /*inMonth*/,
    -
    17870  0 /*onDayOfWeek*/,
    -
    17871  1 /*onDayOfMonth*/,
    -
    17872  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17873  0 /*atTimeCode (0/15)*/,
    -
    17874  0 /*deltaMinutes*/,
    -
    17875  25 /*letterIndex ("S")*/,
    -
    17876  },
    -
    17877  // Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
    -
    17878  {
    -
    17879  1918 /*fromYear*/,
    -
    17880  1918 /*toYear*/,
    -
    17881  4 /*inMonth*/,
    -
    17882  0 /*onDayOfWeek*/,
    -
    17883  14 /*onDayOfMonth*/,
    -
    17884  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17885  480 /*atTimeCode (7200/15)*/,
    -
    17886  60 /*deltaMinutes*/,
    -
    17887  13 /*letterIndex ("D")*/,
    -
    17888  },
    -
    17889  // Rule NT_YK 1918 only - Oct 27 2:00 0 S
    -
    17890  {
    -
    17891  1918 /*fromYear*/,
    -
    17892  1918 /*toYear*/,
    -
    17893  10 /*inMonth*/,
    -
    17894  0 /*onDayOfWeek*/,
    -
    17895  27 /*onDayOfMonth*/,
    -
    17896  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17897  480 /*atTimeCode (7200/15)*/,
    -
    17898  0 /*deltaMinutes*/,
    -
    17899  25 /*letterIndex ("S")*/,
    -
    17900  },
    -
    17901  // Rule NT_YK 1919 only - May 25 2:00 1:00 D
    -
    17902  {
    -
    17903  1919 /*fromYear*/,
    -
    17904  1919 /*toYear*/,
    -
    17905  5 /*inMonth*/,
    -
    17906  0 /*onDayOfWeek*/,
    -
    17907  25 /*onDayOfMonth*/,
    -
    17908  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17909  480 /*atTimeCode (7200/15)*/,
    -
    17910  60 /*deltaMinutes*/,
    -
    17911  13 /*letterIndex ("D")*/,
    -
    17912  },
    -
    17913  // Rule NT_YK 1919 only - Nov 1 0:00 0 S
    -
    17914  {
    -
    17915  1919 /*fromYear*/,
    -
    17916  1919 /*toYear*/,
    -
    17917  11 /*inMonth*/,
    -
    17918  0 /*onDayOfWeek*/,
    -
    17919  1 /*onDayOfMonth*/,
    -
    17920  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17921  0 /*atTimeCode (0/15)*/,
    -
    17922  0 /*deltaMinutes*/,
    -
    17923  25 /*letterIndex ("S")*/,
    -
    17924  },
    -
    17925  // Rule NT_YK 1942 only - Feb 9 2:00 1:00 W
    -
    17926  {
    -
    17927  1942 /*fromYear*/,
    -
    17928  1942 /*toYear*/,
    -
    17929  2 /*inMonth*/,
    -
    17930  0 /*onDayOfWeek*/,
    -
    17931  9 /*onDayOfMonth*/,
    -
    17932  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17933  480 /*atTimeCode (7200/15)*/,
    -
    17934  60 /*deltaMinutes*/,
    -
    17935  26 /*letterIndex ("W")*/,
    -
    17936  },
    -
    17937  // Rule NT_YK 1945 only - Aug 14 23:00u 1:00 P
    -
    17938  {
    -
    17939  1945 /*fromYear*/,
    -
    17940  1945 /*toYear*/,
    -
    17941  8 /*inMonth*/,
    -
    17942  0 /*onDayOfWeek*/,
    -
    17943  14 /*onDayOfMonth*/,
    -
    17944  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    17945  5520 /*atTimeCode (82800/15)*/,
    -
    17946  60 /*deltaMinutes*/,
    -
    17947  24 /*letterIndex ("P")*/,
    -
    17948  },
    -
    17949  // Rule NT_YK 1945 only - Sep 30 2:00 0 S
    -
    17950  {
    -
    17951  1945 /*fromYear*/,
    -
    17952  1945 /*toYear*/,
    -
    17953  9 /*inMonth*/,
    -
    17954  0 /*onDayOfWeek*/,
    -
    17955  30 /*onDayOfMonth*/,
    -
    17956  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17957  480 /*atTimeCode (7200/15)*/,
    -
    17958  0 /*deltaMinutes*/,
    -
    17959  25 /*letterIndex ("S")*/,
    -
    17960  },
    -
    17961  // Rule NT_YK 1972 1986 - Apr lastSun 2:00 1:00 D
    -
    17962  {
    -
    17963  1972 /*fromYear*/,
    -
    17964  1986 /*toYear*/,
    -
    17965  4 /*inMonth*/,
    -
    17966  7 /*onDayOfWeek*/,
    -
    17967  0 /*onDayOfMonth*/,
    -
    17968  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17969  480 /*atTimeCode (7200/15)*/,
    -
    17970  60 /*deltaMinutes*/,
    -
    17971  13 /*letterIndex ("D")*/,
    -
    17972  },
    -
    17973  // Rule NT_YK 1972 2006 - Oct lastSun 2:00 0 S
    -
    17974  {
    -
    17975  1972 /*fromYear*/,
    -
    17976  2006 /*toYear*/,
    -
    17977  10 /*inMonth*/,
    -
    17978  7 /*onDayOfWeek*/,
    -
    17979  0 /*onDayOfMonth*/,
    -
    17980  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17981  480 /*atTimeCode (7200/15)*/,
    -
    17982  0 /*deltaMinutes*/,
    -
    17983  25 /*letterIndex ("S")*/,
    -
    17984  },
    -
    17985  // Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    17986  {
    -
    17987  1987 /*fromYear*/,
    -
    17988  2006 /*toYear*/,
    -
    17989  4 /*inMonth*/,
    -
    17990  7 /*onDayOfWeek*/,
    -
    17991  1 /*onDayOfMonth*/,
    -
    17992  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    17993  480 /*atTimeCode (7200/15)*/,
    -
    17994  60 /*deltaMinutes*/,
    -
    17995  13 /*letterIndex ("D")*/,
    -
    17996  },
    -
    17997 
    -
    17998 };
    -
    17999 
    -
    18000 const complete::Info::ZonePolicy kZonePolicyNT_YK ACE_TIME_PROGMEM = {
    -
    18001  kZoneRulesNT_YK /*rules*/,
    -
    18002  11 /*numRules*/,
    -
    18003 };
    -
    18004 
    -
    18005 //---------------------------------------------------------------------------
    -
    18006 // Policy name: NYC
    -
    18007 // Rules: 6
    -
    18008 //---------------------------------------------------------------------------
    -
    18009 
    -
    18010 static const complete::Info::ZoneRule kZoneRulesNYC[] ACE_TIME_PROGMEM = {
    -
    18011  // Anchor: Rule NYC 1920 only - Oct lastSun 2:00 0 S
    -
    18012  {
    -
    18013  -32767 /*fromYear*/,
    -
    18014  -32767 /*toYear*/,
    -
    18015  1 /*inMonth*/,
    -
    18016  0 /*onDayOfWeek*/,
    -
    18017  1 /*onDayOfMonth*/,
    -
    18018  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18019  0 /*atTimeCode (0/15)*/,
    -
    18020  0 /*deltaMinutes*/,
    -
    18021  25 /*letterIndex ("S")*/,
    -
    18022  },
    -
    18023  // Rule NYC 1920 only - Mar lastSun 2:00 1:00 D
    -
    18024  {
    -
    18025  1920 /*fromYear*/,
    -
    18026  1920 /*toYear*/,
    -
    18027  3 /*inMonth*/,
    -
    18028  7 /*onDayOfWeek*/,
    -
    18029  0 /*onDayOfMonth*/,
    -
    18030  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18031  480 /*atTimeCode (7200/15)*/,
    -
    18032  60 /*deltaMinutes*/,
    -
    18033  13 /*letterIndex ("D")*/,
    -
    18034  },
    -
    18035  // Rule NYC 1920 only - Oct lastSun 2:00 0 S
    -
    18036  {
    -
    18037  1920 /*fromYear*/,
    -
    18038  1920 /*toYear*/,
    -
    18039  10 /*inMonth*/,
    -
    18040  7 /*onDayOfWeek*/,
    -
    18041  0 /*onDayOfMonth*/,
    -
    18042  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18043  480 /*atTimeCode (7200/15)*/,
    -
    18044  0 /*deltaMinutes*/,
    -
    18045  25 /*letterIndex ("S")*/,
    -
    18046  },
    -
    18047  // Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D
    -
    18048  {
    -
    18049  1921 /*fromYear*/,
    -
    18050  1966 /*toYear*/,
    -
    18051  4 /*inMonth*/,
    -
    18052  7 /*onDayOfWeek*/,
    -
    18053  0 /*onDayOfMonth*/,
    -
    18054  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18055  480 /*atTimeCode (7200/15)*/,
    -
    18056  60 /*deltaMinutes*/,
    -
    18057  13 /*letterIndex ("D")*/,
    -
    18058  },
    -
    18059  // Rule NYC 1921 1954 - Sep lastSun 2:00 0 S
    -
    18060  {
    -
    18061  1921 /*fromYear*/,
    -
    18062  1954 /*toYear*/,
    -
    18063  9 /*inMonth*/,
    -
    18064  7 /*onDayOfWeek*/,
    -
    18065  0 /*onDayOfMonth*/,
    -
    18066  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18067  480 /*atTimeCode (7200/15)*/,
    -
    18068  0 /*deltaMinutes*/,
    -
    18069  25 /*letterIndex ("S")*/,
    -
    18070  },
    -
    18071  // Rule NYC 1955 1966 - Oct lastSun 2:00 0 S
    -
    18072  {
    -
    18073  1955 /*fromYear*/,
    -
    18074  1966 /*toYear*/,
    -
    18075  10 /*inMonth*/,
    -
    18076  7 /*onDayOfWeek*/,
    -
    18077  0 /*onDayOfMonth*/,
    -
    18078  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18079  480 /*atTimeCode (7200/15)*/,
    -
    18080  0 /*deltaMinutes*/,
    -
    18081  25 /*letterIndex ("S")*/,
    -
    18082  },
    -
    18083 
    -
    18084 };
    -
    18085 
    -
    18086 const complete::Info::ZonePolicy kZonePolicyNYC ACE_TIME_PROGMEM = {
    -
    18087  kZoneRulesNYC /*rules*/,
    -
    18088  6 /*numRules*/,
    -
    18089 };
    -
    18090 
    -
    18091 //---------------------------------------------------------------------------
    -
    18092 // Policy name: NZ
    -
    18093 // Rules: 17
    -
    18094 //---------------------------------------------------------------------------
    -
    18095 
    -
    18096 static const complete::Info::ZoneRule kZoneRulesNZ[] ACE_TIME_PROGMEM = {
    -
    18097  // Anchor: Rule NZ 1928 only - Mar 4 2:00 0 M
    -
    18098  {
    -
    18099  -32767 /*fromYear*/,
    -
    18100  -32767 /*toYear*/,
    -
    18101  1 /*inMonth*/,
    -
    18102  0 /*onDayOfWeek*/,
    -
    18103  1 /*onDayOfMonth*/,
    -
    18104  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18105  0 /*atTimeCode (0/15)*/,
    -
    18106  0 /*deltaMinutes*/,
    -
    18107  18 /*letterIndex ("M")*/,
    -
    18108  },
    -
    18109  // Rule NZ 1927 only - Nov 6 2:00 1:00 S
    -
    18110  {
    -
    18111  1927 /*fromYear*/,
    -
    18112  1927 /*toYear*/,
    -
    18113  11 /*inMonth*/,
    -
    18114  0 /*onDayOfWeek*/,
    -
    18115  6 /*onDayOfMonth*/,
    -
    18116  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18117  480 /*atTimeCode (7200/15)*/,
    -
    18118  60 /*deltaMinutes*/,
    -
    18119  25 /*letterIndex ("S")*/,
    -
    18120  },
    -
    18121  // Rule NZ 1928 only - Mar 4 2:00 0 M
    -
    18122  {
    -
    18123  1928 /*fromYear*/,
    -
    18124  1928 /*toYear*/,
    -
    18125  3 /*inMonth*/,
    -
    18126  0 /*onDayOfWeek*/,
    -
    18127  4 /*onDayOfMonth*/,
    -
    18128  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18129  480 /*atTimeCode (7200/15)*/,
    -
    18130  0 /*deltaMinutes*/,
    -
    18131  18 /*letterIndex ("M")*/,
    -
    18132  },
    -
    18133  // Rule NZ 1928 1933 - Oct Sun>=8 2:00 0:30 S
    -
    18134  {
    -
    18135  1928 /*fromYear*/,
    -
    18136  1933 /*toYear*/,
    -
    18137  10 /*inMonth*/,
    -
    18138  7 /*onDayOfWeek*/,
    -
    18139  8 /*onDayOfMonth*/,
    -
    18140  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18141  480 /*atTimeCode (7200/15)*/,
    -
    18142  30 /*deltaMinutes*/,
    -
    18143  25 /*letterIndex ("S")*/,
    -
    18144  },
    -
    18145  // Rule NZ 1929 1933 - Mar Sun>=15 2:00 0 M
    -
    18146  {
    -
    18147  1929 /*fromYear*/,
    -
    18148  1933 /*toYear*/,
    -
    18149  3 /*inMonth*/,
    -
    18150  7 /*onDayOfWeek*/,
    -
    18151  15 /*onDayOfMonth*/,
    -
    18152  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18153  480 /*atTimeCode (7200/15)*/,
    -
    18154  0 /*deltaMinutes*/,
    -
    18155  18 /*letterIndex ("M")*/,
    -
    18156  },
    -
    18157  // Rule NZ 1934 1940 - Apr lastSun 2:00 0 M
    -
    18158  {
    -
    18159  1934 /*fromYear*/,
    -
    18160  1940 /*toYear*/,
    -
    18161  4 /*inMonth*/,
    -
    18162  7 /*onDayOfWeek*/,
    -
    18163  0 /*onDayOfMonth*/,
    -
    18164  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18165  480 /*atTimeCode (7200/15)*/,
    -
    18166  0 /*deltaMinutes*/,
    -
    18167  18 /*letterIndex ("M")*/,
    -
    18168  },
    -
    18169  // Rule NZ 1934 1940 - Sep lastSun 2:00 0:30 S
    -
    18170  {
    -
    18171  1934 /*fromYear*/,
    -
    18172  1940 /*toYear*/,
    -
    18173  9 /*inMonth*/,
    -
    18174  7 /*onDayOfWeek*/,
    -
    18175  0 /*onDayOfMonth*/,
    -
    18176  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18177  480 /*atTimeCode (7200/15)*/,
    -
    18178  30 /*deltaMinutes*/,
    -
    18179  25 /*letterIndex ("S")*/,
    -
    18180  },
    -
    18181  // Rule NZ 1946 only - Jan 1 0:00 0 S
    -
    18182  {
    -
    18183  1946 /*fromYear*/,
    -
    18184  1946 /*toYear*/,
    -
    18185  1 /*inMonth*/,
    -
    18186  0 /*onDayOfWeek*/,
    -
    18187  1 /*onDayOfMonth*/,
    -
    18188  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18189  0 /*atTimeCode (0/15)*/,
    -
    18190  0 /*deltaMinutes*/,
    -
    18191  25 /*letterIndex ("S")*/,
    -
    18192  },
    -
    18193  // Rule NZ 1974 only - Nov Sun>=1 2:00s 1:00 D
    -
    18194  {
    -
    18195  1974 /*fromYear*/,
    -
    18196  1974 /*toYear*/,
    -
    18197  11 /*inMonth*/,
    -
    18198  7 /*onDayOfWeek*/,
    -
    18199  1 /*onDayOfMonth*/,
    -
    18200  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18201  480 /*atTimeCode (7200/15)*/,
    -
    18202  60 /*deltaMinutes*/,
    -
    18203  13 /*letterIndex ("D")*/,
    -
    18204  },
    -
    18205  // Rule NZ 1975 only - Feb lastSun 2:00s 0 S
    -
    18206  {
    -
    18207  1975 /*fromYear*/,
    -
    18208  1975 /*toYear*/,
    -
    18209  2 /*inMonth*/,
    -
    18210  7 /*onDayOfWeek*/,
    -
    18211  0 /*onDayOfMonth*/,
    -
    18212  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18213  480 /*atTimeCode (7200/15)*/,
    -
    18214  0 /*deltaMinutes*/,
    -
    18215  25 /*letterIndex ("S")*/,
    -
    18216  },
    -
    18217  // Rule NZ 1975 1988 - Oct lastSun 2:00s 1:00 D
    -
    18218  {
    -
    18219  1975 /*fromYear*/,
    -
    18220  1988 /*toYear*/,
    -
    18221  10 /*inMonth*/,
    -
    18222  7 /*onDayOfWeek*/,
    -
    18223  0 /*onDayOfMonth*/,
    -
    18224  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18225  480 /*atTimeCode (7200/15)*/,
    -
    18226  60 /*deltaMinutes*/,
    -
    18227  13 /*letterIndex ("D")*/,
    -
    18228  },
    -
    18229  // Rule NZ 1976 1989 - Mar Sun>=1 2:00s 0 S
    -
    18230  {
    -
    18231  1976 /*fromYear*/,
    -
    18232  1989 /*toYear*/,
    -
    18233  3 /*inMonth*/,
    -
    18234  7 /*onDayOfWeek*/,
    -
    18235  1 /*onDayOfMonth*/,
    -
    18236  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18237  480 /*atTimeCode (7200/15)*/,
    -
    18238  0 /*deltaMinutes*/,
    -
    18239  25 /*letterIndex ("S")*/,
    -
    18240  },
    -
    18241  // Rule NZ 1989 only - Oct Sun>=8 2:00s 1:00 D
    -
    18242  {
    -
    18243  1989 /*fromYear*/,
    -
    18244  1989 /*toYear*/,
    -
    18245  10 /*inMonth*/,
    -
    18246  7 /*onDayOfWeek*/,
    -
    18247  8 /*onDayOfMonth*/,
    -
    18248  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18249  480 /*atTimeCode (7200/15)*/,
    -
    18250  60 /*deltaMinutes*/,
    -
    18251  13 /*letterIndex ("D")*/,
    -
    18252  },
    -
    18253  // Rule NZ 1990 2006 - Oct Sun>=1 2:00s 1:00 D
    -
    18254  {
    -
    18255  1990 /*fromYear*/,
    -
    18256  2006 /*toYear*/,
    -
    18257  10 /*inMonth*/,
    -
    18258  7 /*onDayOfWeek*/,
    -
    18259  1 /*onDayOfMonth*/,
    -
    18260  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18261  480 /*atTimeCode (7200/15)*/,
    -
    18262  60 /*deltaMinutes*/,
    -
    18263  13 /*letterIndex ("D")*/,
    -
    18264  },
    -
    18265  // Rule NZ 1990 2007 - Mar Sun>=15 2:00s 0 S
    -
    18266  {
    -
    18267  1990 /*fromYear*/,
    -
    18268  2007 /*toYear*/,
    -
    18269  3 /*inMonth*/,
    -
    18270  7 /*onDayOfWeek*/,
    -
    18271  15 /*onDayOfMonth*/,
    -
    18272  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18273  480 /*atTimeCode (7200/15)*/,
    -
    18274  0 /*deltaMinutes*/,
    -
    18275  25 /*letterIndex ("S")*/,
    -
    18276  },
    -
    18277  // Rule NZ 2007 max - Sep lastSun 2:00s 1:00 D
    -
    18278  {
    -
    18279  2007 /*fromYear*/,
    -
    18280  32766 /*toYear*/,
    -
    18281  9 /*inMonth*/,
    -
    18282  7 /*onDayOfWeek*/,
    -
    18283  0 /*onDayOfMonth*/,
    -
    18284  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18285  480 /*atTimeCode (7200/15)*/,
    -
    18286  60 /*deltaMinutes*/,
    -
    18287  13 /*letterIndex ("D")*/,
    -
    18288  },
    -
    18289  // Rule NZ 2008 max - Apr Sun>=1 2:00s 0 S
    -
    18290  {
    -
    18291  2008 /*fromYear*/,
    -
    18292  32766 /*toYear*/,
    -
    18293  4 /*inMonth*/,
    -
    18294  7 /*onDayOfWeek*/,
    -
    18295  1 /*onDayOfMonth*/,
    -
    18296  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    18297  480 /*atTimeCode (7200/15)*/,
    -
    18298  0 /*deltaMinutes*/,
    -
    18299  25 /*letterIndex ("S")*/,
    -
    18300  },
    -
    18301 
    -
    18302 };
    -
    18303 
    -
    18304 const complete::Info::ZonePolicy kZonePolicyNZ ACE_TIME_PROGMEM = {
    -
    18305  kZoneRulesNZ /*rules*/,
    -
    18306  17 /*numRules*/,
    -
    18307 };
    -
    18308 
    -
    18309 //---------------------------------------------------------------------------
    -
    18310 // Policy name: Namibia
    -
    18311 // Rules: 4
    -
    18312 //---------------------------------------------------------------------------
    -
    18313 
    -
    18314 static const complete::Info::ZoneRule kZoneRulesNamibia[] ACE_TIME_PROGMEM = {
    -
    18315  // Anchor: Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
    -
    18316  {
    -
    18317  -32767 /*fromYear*/,
    -
    18318  -32767 /*toYear*/,
    -
    18319  1 /*inMonth*/,
    -
    18320  0 /*onDayOfWeek*/,
    -
    18321  1 /*onDayOfMonth*/,
    -
    18322  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18323  0 /*atTimeCode (0/15)*/,
    -
    18324  0 /*deltaMinutes*/,
    -
    18325  8 /*letterIndex ("CAT")*/,
    -
    18326  },
    -
    18327  // Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
    -
    18328  {
    -
    18329  1994 /*fromYear*/,
    -
    18330  1994 /*toYear*/,
    -
    18331  3 /*inMonth*/,
    -
    18332  0 /*onDayOfWeek*/,
    -
    18333  21 /*onDayOfMonth*/,
    -
    18334  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18335  0 /*atTimeCode (0/15)*/,
    -
    18336  -60 /*deltaMinutes*/,
    -
    18337  27 /*letterIndex ("WAT")*/,
    -
    18338  },
    -
    18339  // Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
    -
    18340  {
    -
    18341  1994 /*fromYear*/,
    -
    18342  2017 /*toYear*/,
    -
    18343  9 /*inMonth*/,
    -
    18344  7 /*onDayOfWeek*/,
    -
    18345  1 /*onDayOfMonth*/,
    -
    18346  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18347  480 /*atTimeCode (7200/15)*/,
    -
    18348  0 /*deltaMinutes*/,
    -
    18349  8 /*letterIndex ("CAT")*/,
    -
    18350  },
    -
    18351  // Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT
    -
    18352  {
    -
    18353  1995 /*fromYear*/,
    -
    18354  2017 /*toYear*/,
    -
    18355  4 /*inMonth*/,
    -
    18356  7 /*onDayOfWeek*/,
    -
    18357  1 /*onDayOfMonth*/,
    -
    18358  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18359  480 /*atTimeCode (7200/15)*/,
    -
    18360  -60 /*deltaMinutes*/,
    -
    18361  27 /*letterIndex ("WAT")*/,
    -
    18362  },
    -
    18363 
    -
    18364 };
    -
    18365 
    -
    18366 const complete::Info::ZonePolicy kZonePolicyNamibia ACE_TIME_PROGMEM = {
    -
    18367  kZoneRulesNamibia /*rules*/,
    -
    18368  4 /*numRules*/,
    -
    18369 };
    -
    18370 
    -
    18371 //---------------------------------------------------------------------------
    -
    18372 // Policy name: Nic
    -
    18373 // Rules: 7
    -
    18374 //---------------------------------------------------------------------------
    -
    18375 
    -
    18376 static const complete::Info::ZoneRule kZoneRulesNic[] ACE_TIME_PROGMEM = {
    -
    18377  // Anchor: Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
    -
    18378  {
    -
    18379  -32767 /*fromYear*/,
    -
    18380  -32767 /*toYear*/,
    -
    18381  1 /*inMonth*/,
    -
    18382  0 /*onDayOfWeek*/,
    -
    18383  1 /*onDayOfMonth*/,
    -
    18384  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18385  0 /*atTimeCode (0/15)*/,
    -
    18386  0 /*deltaMinutes*/,
    -
    18387  25 /*letterIndex ("S")*/,
    -
    18388  },
    -
    18389  // Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D
    -
    18390  {
    -
    18391  1979 /*fromYear*/,
    -
    18392  1980 /*toYear*/,
    -
    18393  3 /*inMonth*/,
    -
    18394  7 /*onDayOfWeek*/,
    -
    18395  16 /*onDayOfMonth*/,
    -
    18396  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18397  0 /*atTimeCode (0/15)*/,
    -
    18398  60 /*deltaMinutes*/,
    -
    18399  13 /*letterIndex ("D")*/,
    -
    18400  },
    -
    18401  // Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
    -
    18402  {
    -
    18403  1979 /*fromYear*/,
    -
    18404  1980 /*toYear*/,
    -
    18405  6 /*inMonth*/,
    -
    18406  1 /*onDayOfWeek*/,
    -
    18407  23 /*onDayOfMonth*/,
    -
    18408  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18409  0 /*atTimeCode (0/15)*/,
    -
    18410  0 /*deltaMinutes*/,
    -
    18411  25 /*letterIndex ("S")*/,
    -
    18412  },
    -
    18413  // Rule Nic 2005 only - Apr 10 0:00 1:00 D
    -
    18414  {
    -
    18415  2005 /*fromYear*/,
    -
    18416  2005 /*toYear*/,
    -
    18417  4 /*inMonth*/,
    -
    18418  0 /*onDayOfWeek*/,
    -
    18419  10 /*onDayOfMonth*/,
    -
    18420  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18421  0 /*atTimeCode (0/15)*/,
    -
    18422  60 /*deltaMinutes*/,
    -
    18423  13 /*letterIndex ("D")*/,
    -
    18424  },
    -
    18425  // Rule Nic 2005 only - Oct Sun>=1 0:00 0 S
    -
    18426  {
    -
    18427  2005 /*fromYear*/,
    -
    18428  2005 /*toYear*/,
    -
    18429  10 /*inMonth*/,
    -
    18430  7 /*onDayOfWeek*/,
    -
    18431  1 /*onDayOfMonth*/,
    -
    18432  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18433  0 /*atTimeCode (0/15)*/,
    -
    18434  0 /*deltaMinutes*/,
    -
    18435  25 /*letterIndex ("S")*/,
    -
    18436  },
    -
    18437  // Rule Nic 2006 only - Apr 30 2:00 1:00 D
    -
    18438  {
    -
    18439  2006 /*fromYear*/,
    -
    18440  2006 /*toYear*/,
    -
    18441  4 /*inMonth*/,
    -
    18442  0 /*onDayOfWeek*/,
    -
    18443  30 /*onDayOfMonth*/,
    -
    18444  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18445  480 /*atTimeCode (7200/15)*/,
    -
    18446  60 /*deltaMinutes*/,
    -
    18447  13 /*letterIndex ("D")*/,
    -
    18448  },
    -
    18449  // Rule Nic 2006 only - Oct Sun>=1 1:00 0 S
    -
    18450  {
    -
    18451  2006 /*fromYear*/,
    -
    18452  2006 /*toYear*/,
    -
    18453  10 /*inMonth*/,
    -
    18454  7 /*onDayOfWeek*/,
    -
    18455  1 /*onDayOfMonth*/,
    -
    18456  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18457  240 /*atTimeCode (3600/15)*/,
    -
    18458  0 /*deltaMinutes*/,
    -
    18459  25 /*letterIndex ("S")*/,
    -
    18460  },
    -
    18461 
    -
    18462 };
    -
    18463 
    -
    18464 const complete::Info::ZonePolicy kZonePolicyNic ACE_TIME_PROGMEM = {
    -
    18465  kZoneRulesNic /*rules*/,
    -
    18466  7 /*numRules*/,
    -
    18467 };
    -
    18468 
    -
    18469 //---------------------------------------------------------------------------
    -
    18470 // Policy name: PRC
    -
    18471 // Rules: 4
    -
    18472 //---------------------------------------------------------------------------
    -
    18473 
    -
    18474 static const complete::Info::ZoneRule kZoneRulesPRC[] ACE_TIME_PROGMEM = {
    -
    18475  // Anchor: Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S
    -
    18476  {
    -
    18477  -32767 /*fromYear*/,
    -
    18478  -32767 /*toYear*/,
    -
    18479  1 /*inMonth*/,
    -
    18480  0 /*onDayOfWeek*/,
    -
    18481  1 /*onDayOfMonth*/,
    -
    18482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18483  0 /*atTimeCode (0/15)*/,
    -
    18484  0 /*deltaMinutes*/,
    -
    18485  25 /*letterIndex ("S")*/,
    -
    18486  },
    -
    18487  // Rule PRC 1986 only - May 4 2:00 1:00 D
    -
    18488  {
    -
    18489  1986 /*fromYear*/,
    -
    18490  1986 /*toYear*/,
    -
    18491  5 /*inMonth*/,
    -
    18492  0 /*onDayOfWeek*/,
    -
    18493  4 /*onDayOfMonth*/,
    -
    18494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18495  480 /*atTimeCode (7200/15)*/,
    -
    18496  60 /*deltaMinutes*/,
    -
    18497  13 /*letterIndex ("D")*/,
    -
    18498  },
    -
    18499  // Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S
    -
    18500  {
    -
    18501  1986 /*fromYear*/,
    -
    18502  1991 /*toYear*/,
    -
    18503  9 /*inMonth*/,
    -
    18504  7 /*onDayOfWeek*/,
    -
    18505  11 /*onDayOfMonth*/,
    -
    18506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18507  480 /*atTimeCode (7200/15)*/,
    -
    18508  0 /*deltaMinutes*/,
    -
    18509  25 /*letterIndex ("S")*/,
    -
    18510  },
    -
    18511  // Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D
    -
    18512  {
    -
    18513  1987 /*fromYear*/,
    -
    18514  1991 /*toYear*/,
    -
    18515  4 /*inMonth*/,
    -
    18516  7 /*onDayOfWeek*/,
    -
    18517  11 /*onDayOfMonth*/,
    -
    18518  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18519  480 /*atTimeCode (7200/15)*/,
    -
    18520  60 /*deltaMinutes*/,
    -
    18521  13 /*letterIndex ("D")*/,
    -
    18522  },
    -
    18523 
    -
    18524 };
    -
    18525 
    -
    18526 const complete::Info::ZonePolicy kZonePolicyPRC ACE_TIME_PROGMEM = {
    -
    18527  kZoneRulesPRC /*rules*/,
    -
    18528  4 /*numRules*/,
    -
    18529 };
    -
    18530 
    -
    18531 //---------------------------------------------------------------------------
    -
    18532 // Policy name: Pakistan
    -
    18533 // Rules: 6
    -
    18534 //---------------------------------------------------------------------------
    -
    18535 
    -
    18536 static const complete::Info::ZoneRule kZoneRulesPakistan[] ACE_TIME_PROGMEM = {
    -
    18537  // Anchor: Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
    -
    18538  {
    -
    18539  -32767 /*fromYear*/,
    -
    18540  -32767 /*toYear*/,
    -
    18541  1 /*inMonth*/,
    -
    18542  0 /*onDayOfWeek*/,
    -
    18543  1 /*onDayOfMonth*/,
    -
    18544  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18545  0 /*atTimeCode (0/15)*/,
    -
    18546  0 /*deltaMinutes*/,
    -
    18547  0 /*letterIndex ("")*/,
    -
    18548  },
    -
    18549  // Rule Pakistan 2002 only - Apr Sun>=2 0:00 1:00 S
    -
    18550  {
    -
    18551  2002 /*fromYear*/,
    -
    18552  2002 /*toYear*/,
    -
    18553  4 /*inMonth*/,
    -
    18554  7 /*onDayOfWeek*/,
    -
    18555  2 /*onDayOfMonth*/,
    -
    18556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18557  0 /*atTimeCode (0/15)*/,
    -
    18558  60 /*deltaMinutes*/,
    -
    18559  25 /*letterIndex ("S")*/,
    -
    18560  },
    -
    18561  // Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
    -
    18562  {
    -
    18563  2002 /*fromYear*/,
    -
    18564  2002 /*toYear*/,
    -
    18565  10 /*inMonth*/,
    -
    18566  7 /*onDayOfWeek*/,
    -
    18567  2 /*onDayOfMonth*/,
    -
    18568  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18569  0 /*atTimeCode (0/15)*/,
    -
    18570  0 /*deltaMinutes*/,
    -
    18571  0 /*letterIndex ("")*/,
    -
    18572  },
    -
    18573  // Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
    -
    18574  {
    -
    18575  2008 /*fromYear*/,
    -
    18576  2008 /*toYear*/,
    -
    18577  6 /*inMonth*/,
    -
    18578  0 /*onDayOfWeek*/,
    -
    18579  1 /*onDayOfMonth*/,
    -
    18580  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18581  0 /*atTimeCode (0/15)*/,
    -
    18582  60 /*deltaMinutes*/,
    -
    18583  25 /*letterIndex ("S")*/,
    -
    18584  },
    -
    18585  // Rule Pakistan 2008 2009 - Nov 1 0:00 0 -
    -
    18586  {
    -
    18587  2008 /*fromYear*/,
    -
    18588  2009 /*toYear*/,
    -
    18589  11 /*inMonth*/,
    -
    18590  0 /*onDayOfWeek*/,
    -
    18591  1 /*onDayOfMonth*/,
    -
    18592  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18593  0 /*atTimeCode (0/15)*/,
    -
    18594  0 /*deltaMinutes*/,
    -
    18595  0 /*letterIndex ("")*/,
    -
    18596  },
    -
    18597  // Rule Pakistan 2009 only - Apr 15 0:00 1:00 S
    -
    18598  {
    -
    18599  2009 /*fromYear*/,
    -
    18600  2009 /*toYear*/,
    -
    18601  4 /*inMonth*/,
    -
    18602  0 /*onDayOfWeek*/,
    -
    18603  15 /*onDayOfMonth*/,
    -
    18604  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18605  0 /*atTimeCode (0/15)*/,
    -
    18606  60 /*deltaMinutes*/,
    -
    18607  25 /*letterIndex ("S")*/,
    -
    18608  },
    -
    18609 
    -
    18610 };
    -
    18611 
    -
    18612 const complete::Info::ZonePolicy kZonePolicyPakistan ACE_TIME_PROGMEM = {
    -
    18613  kZoneRulesPakistan /*rules*/,
    -
    18614  6 /*numRules*/,
    -
    18615 };
    -
    18616 
    -
    18617 //---------------------------------------------------------------------------
    -
    18618 // Policy name: Palestine
    -
    18619 // Rules: 111
    -
    18620 //---------------------------------------------------------------------------
    -
    18621 
    -
    18622 static const complete::Info::ZoneRule kZoneRulesPalestine[] ACE_TIME_PROGMEM = {
    -
    18623  // Anchor: Rule Palestine 1999 2003 - Oct Fri>=15 0:00 0 -
    -
    18624  {
    -
    18625  -32767 /*fromYear*/,
    -
    18626  -32767 /*toYear*/,
    -
    18627  1 /*inMonth*/,
    -
    18628  0 /*onDayOfWeek*/,
    -
    18629  1 /*onDayOfMonth*/,
    -
    18630  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18631  0 /*atTimeCode (0/15)*/,
    -
    18632  0 /*deltaMinutes*/,
    -
    18633  0 /*letterIndex ("")*/,
    -
    18634  },
    -
    18635  // Rule Palestine 1999 2005 - Apr Fri>=15 0:00 1:00 S
    -
    18636  {
    -
    18637  1999 /*fromYear*/,
    -
    18638  2005 /*toYear*/,
    -
    18639  4 /*inMonth*/,
    -
    18640  5 /*onDayOfWeek*/,
    -
    18641  15 /*onDayOfMonth*/,
    -
    18642  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18643  0 /*atTimeCode (0/15)*/,
    -
    18644  60 /*deltaMinutes*/,
    -
    18645  25 /*letterIndex ("S")*/,
    -
    18646  },
    -
    18647  // Rule Palestine 1999 2003 - Oct Fri>=15 0:00 0 -
    -
    18648  {
    -
    18649  1999 /*fromYear*/,
    -
    18650  2003 /*toYear*/,
    -
    18651  10 /*inMonth*/,
    -
    18652  5 /*onDayOfWeek*/,
    -
    18653  15 /*onDayOfMonth*/,
    -
    18654  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18655  0 /*atTimeCode (0/15)*/,
    -
    18656  0 /*deltaMinutes*/,
    -
    18657  0 /*letterIndex ("")*/,
    -
    18658  },
    -
    18659  // Rule Palestine 2004 only - Oct 1 1:00 0 -
    -
    18660  {
    -
    18661  2004 /*fromYear*/,
    -
    18662  2004 /*toYear*/,
    -
    18663  10 /*inMonth*/,
    -
    18664  0 /*onDayOfWeek*/,
    -
    18665  1 /*onDayOfMonth*/,
    -
    18666  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18667  240 /*atTimeCode (3600/15)*/,
    -
    18668  0 /*deltaMinutes*/,
    -
    18669  0 /*letterIndex ("")*/,
    -
    18670  },
    -
    18671  // Rule Palestine 2005 only - Oct 4 2:00 0 -
    -
    18672  {
    -
    18673  2005 /*fromYear*/,
    -
    18674  2005 /*toYear*/,
    -
    18675  10 /*inMonth*/,
    -
    18676  0 /*onDayOfWeek*/,
    -
    18677  4 /*onDayOfMonth*/,
    -
    18678  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18679  480 /*atTimeCode (7200/15)*/,
    -
    18680  0 /*deltaMinutes*/,
    -
    18681  0 /*letterIndex ("")*/,
    -
    18682  },
    -
    18683  // Rule Palestine 2006 2007 - Apr 1 0:00 1:00 S
    -
    18684  {
    -
    18685  2006 /*fromYear*/,
    -
    18686  2007 /*toYear*/,
    -
    18687  4 /*inMonth*/,
    -
    18688  0 /*onDayOfWeek*/,
    -
    18689  1 /*onDayOfMonth*/,
    -
    18690  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18691  0 /*atTimeCode (0/15)*/,
    -
    18692  60 /*deltaMinutes*/,
    -
    18693  25 /*letterIndex ("S")*/,
    -
    18694  },
    -
    18695  // Rule Palestine 2006 only - Sep 22 0:00 0 -
    -
    18696  {
    -
    18697  2006 /*fromYear*/,
    -
    18698  2006 /*toYear*/,
    -
    18699  9 /*inMonth*/,
    -
    18700  0 /*onDayOfWeek*/,
    -
    18701  22 /*onDayOfMonth*/,
    -
    18702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18703  0 /*atTimeCode (0/15)*/,
    -
    18704  0 /*deltaMinutes*/,
    -
    18705  0 /*letterIndex ("")*/,
    -
    18706  },
    -
    18707  // Rule Palestine 2007 only - Sep 13 2:00 0 -
    -
    18708  {
    -
    18709  2007 /*fromYear*/,
    -
    18710  2007 /*toYear*/,
    -
    18711  9 /*inMonth*/,
    -
    18712  0 /*onDayOfWeek*/,
    -
    18713  13 /*onDayOfMonth*/,
    -
    18714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18715  480 /*atTimeCode (7200/15)*/,
    -
    18716  0 /*deltaMinutes*/,
    -
    18717  0 /*letterIndex ("")*/,
    -
    18718  },
    -
    18719  // Rule Palestine 2008 2009 - Mar lastFri 0:00 1:00 S
    -
    18720  {
    -
    18721  2008 /*fromYear*/,
    -
    18722  2009 /*toYear*/,
    -
    18723  3 /*inMonth*/,
    -
    18724  5 /*onDayOfWeek*/,
    -
    18725  0 /*onDayOfMonth*/,
    -
    18726  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18727  0 /*atTimeCode (0/15)*/,
    -
    18728  60 /*deltaMinutes*/,
    -
    18729  25 /*letterIndex ("S")*/,
    -
    18730  },
    -
    18731  // Rule Palestine 2008 only - Sep 1 0:00 0 -
    -
    18732  {
    -
    18733  2008 /*fromYear*/,
    -
    18734  2008 /*toYear*/,
    -
    18735  9 /*inMonth*/,
    -
    18736  0 /*onDayOfWeek*/,
    -
    18737  1 /*onDayOfMonth*/,
    -
    18738  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18739  0 /*atTimeCode (0/15)*/,
    -
    18740  0 /*deltaMinutes*/,
    -
    18741  0 /*letterIndex ("")*/,
    -
    18742  },
    -
    18743  // Rule Palestine 2009 only - Sep 4 1:00 0 -
    -
    18744  {
    -
    18745  2009 /*fromYear*/,
    -
    18746  2009 /*toYear*/,
    -
    18747  9 /*inMonth*/,
    -
    18748  0 /*onDayOfWeek*/,
    -
    18749  4 /*onDayOfMonth*/,
    -
    18750  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18751  240 /*atTimeCode (3600/15)*/,
    -
    18752  0 /*deltaMinutes*/,
    -
    18753  0 /*letterIndex ("")*/,
    -
    18754  },
    -
    18755  // Rule Palestine 2010 only - Mar 26 0:00 1:00 S
    -
    18756  {
    -
    18757  2010 /*fromYear*/,
    -
    18758  2010 /*toYear*/,
    -
    18759  3 /*inMonth*/,
    -
    18760  0 /*onDayOfWeek*/,
    -
    18761  26 /*onDayOfMonth*/,
    -
    18762  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18763  0 /*atTimeCode (0/15)*/,
    -
    18764  60 /*deltaMinutes*/,
    -
    18765  25 /*letterIndex ("S")*/,
    -
    18766  },
    -
    18767  // Rule Palestine 2010 only - Aug 11 0:00 0 -
    -
    18768  {
    -
    18769  2010 /*fromYear*/,
    -
    18770  2010 /*toYear*/,
    -
    18771  8 /*inMonth*/,
    -
    18772  0 /*onDayOfWeek*/,
    -
    18773  11 /*onDayOfMonth*/,
    -
    18774  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18775  0 /*atTimeCode (0/15)*/,
    -
    18776  0 /*deltaMinutes*/,
    -
    18777  0 /*letterIndex ("")*/,
    -
    18778  },
    -
    18779  // Rule Palestine 2011 only - Apr 1 0:01 1:00 S
    -
    18780  {
    -
    18781  2011 /*fromYear*/,
    -
    18782  2011 /*toYear*/,
    -
    18783  4 /*inMonth*/,
    -
    18784  0 /*onDayOfWeek*/,
    -
    18785  1 /*onDayOfMonth*/,
    -
    18786  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18787  4 /*atTimeCode (60/15)*/,
    -
    18788  60 /*deltaMinutes*/,
    -
    18789  25 /*letterIndex ("S")*/,
    -
    18790  },
    -
    18791  // Rule Palestine 2011 only - Aug 1 0:00 0 -
    -
    18792  {
    -
    18793  2011 /*fromYear*/,
    -
    18794  2011 /*toYear*/,
    -
    18795  8 /*inMonth*/,
    -
    18796  0 /*onDayOfWeek*/,
    -
    18797  1 /*onDayOfMonth*/,
    -
    18798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18799  0 /*atTimeCode (0/15)*/,
    -
    18800  0 /*deltaMinutes*/,
    -
    18801  0 /*letterIndex ("")*/,
    -
    18802  },
    -
    18803  // Rule Palestine 2011 only - Aug 30 0:00 1:00 S
    -
    18804  {
    -
    18805  2011 /*fromYear*/,
    -
    18806  2011 /*toYear*/,
    -
    18807  8 /*inMonth*/,
    -
    18808  0 /*onDayOfWeek*/,
    -
    18809  30 /*onDayOfMonth*/,
    -
    18810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18811  0 /*atTimeCode (0/15)*/,
    -
    18812  60 /*deltaMinutes*/,
    -
    18813  25 /*letterIndex ("S")*/,
    -
    18814  },
    -
    18815  // Rule Palestine 2011 only - Sep 30 0:00 0 -
    -
    18816  {
    -
    18817  2011 /*fromYear*/,
    -
    18818  2011 /*toYear*/,
    -
    18819  9 /*inMonth*/,
    -
    18820  0 /*onDayOfWeek*/,
    -
    18821  30 /*onDayOfMonth*/,
    -
    18822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18823  0 /*atTimeCode (0/15)*/,
    -
    18824  0 /*deltaMinutes*/,
    -
    18825  0 /*letterIndex ("")*/,
    -
    18826  },
    -
    18827  // Rule Palestine 2012 2014 - Mar lastThu 24:00 1:00 S
    -
    18828  {
    -
    18829  2012 /*fromYear*/,
    -
    18830  2014 /*toYear*/,
    -
    18831  3 /*inMonth*/,
    -
    18832  4 /*onDayOfWeek*/,
    -
    18833  0 /*onDayOfMonth*/,
    -
    18834  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18835  5760 /*atTimeCode (86400/15)*/,
    -
    18836  60 /*deltaMinutes*/,
    -
    18837  25 /*letterIndex ("S")*/,
    -
    18838  },
    -
    18839  // Rule Palestine 2012 only - Sep 21 1:00 0 -
    -
    18840  {
    -
    18841  2012 /*fromYear*/,
    -
    18842  2012 /*toYear*/,
    -
    18843  9 /*inMonth*/,
    -
    18844  0 /*onDayOfWeek*/,
    -
    18845  21 /*onDayOfMonth*/,
    -
    18846  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18847  240 /*atTimeCode (3600/15)*/,
    -
    18848  0 /*deltaMinutes*/,
    -
    18849  0 /*letterIndex ("")*/,
    -
    18850  },
    -
    18851  // Rule Palestine 2013 only - Sep 27 0:00 0 -
    -
    18852  {
    -
    18853  2013 /*fromYear*/,
    -
    18854  2013 /*toYear*/,
    -
    18855  9 /*inMonth*/,
    -
    18856  0 /*onDayOfWeek*/,
    -
    18857  27 /*onDayOfMonth*/,
    -
    18858  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18859  0 /*atTimeCode (0/15)*/,
    -
    18860  0 /*deltaMinutes*/,
    -
    18861  0 /*letterIndex ("")*/,
    -
    18862  },
    -
    18863  // Rule Palestine 2014 only - Oct 24 0:00 0 -
    -
    18864  {
    -
    18865  2014 /*fromYear*/,
    -
    18866  2014 /*toYear*/,
    -
    18867  10 /*inMonth*/,
    -
    18868  0 /*onDayOfWeek*/,
    -
    18869  24 /*onDayOfMonth*/,
    -
    18870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18871  0 /*atTimeCode (0/15)*/,
    -
    18872  0 /*deltaMinutes*/,
    -
    18873  0 /*letterIndex ("")*/,
    -
    18874  },
    -
    18875  // Rule Palestine 2015 only - Mar 28 0:00 1:00 S
    -
    18876  {
    -
    18877  2015 /*fromYear*/,
    -
    18878  2015 /*toYear*/,
    -
    18879  3 /*inMonth*/,
    -
    18880  0 /*onDayOfWeek*/,
    -
    18881  28 /*onDayOfMonth*/,
    -
    18882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18883  0 /*atTimeCode (0/15)*/,
    -
    18884  60 /*deltaMinutes*/,
    -
    18885  25 /*letterIndex ("S")*/,
    -
    18886  },
    -
    18887  // Rule Palestine 2015 only - Oct 23 1:00 0 -
    -
    18888  {
    -
    18889  2015 /*fromYear*/,
    -
    18890  2015 /*toYear*/,
    -
    18891  10 /*inMonth*/,
    -
    18892  0 /*onDayOfWeek*/,
    -
    18893  23 /*onDayOfMonth*/,
    -
    18894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18895  240 /*atTimeCode (3600/15)*/,
    -
    18896  0 /*deltaMinutes*/,
    -
    18897  0 /*letterIndex ("")*/,
    -
    18898  },
    -
    18899  // Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S
    -
    18900  {
    -
    18901  2016 /*fromYear*/,
    -
    18902  2018 /*toYear*/,
    -
    18903  3 /*inMonth*/,
    -
    18904  6 /*onDayOfWeek*/,
    -
    18905  -30 /*onDayOfMonth*/,
    -
    18906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18907  240 /*atTimeCode (3600/15)*/,
    -
    18908  60 /*deltaMinutes*/,
    -
    18909  25 /*letterIndex ("S")*/,
    -
    18910  },
    -
    18911  // Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 -
    -
    18912  {
    -
    18913  2016 /*fromYear*/,
    -
    18914  2018 /*toYear*/,
    -
    18915  10 /*inMonth*/,
    -
    18916  6 /*onDayOfWeek*/,
    -
    18917  -30 /*onDayOfMonth*/,
    -
    18918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18919  240 /*atTimeCode (3600/15)*/,
    -
    18920  0 /*deltaMinutes*/,
    -
    18921  0 /*letterIndex ("")*/,
    -
    18922  },
    -
    18923  // Rule Palestine 2019 only - Mar 29 0:00 1:00 S
    -
    18924  {
    -
    18925  2019 /*fromYear*/,
    -
    18926  2019 /*toYear*/,
    -
    18927  3 /*inMonth*/,
    -
    18928  0 /*onDayOfWeek*/,
    -
    18929  29 /*onDayOfMonth*/,
    -
    18930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18931  0 /*atTimeCode (0/15)*/,
    -
    18932  60 /*deltaMinutes*/,
    -
    18933  25 /*letterIndex ("S")*/,
    -
    18934  },
    -
    18935  // Rule Palestine 2019 only - Oct Sat<=30 0:00 0 -
    -
    18936  {
    -
    18937  2019 /*fromYear*/,
    -
    18938  2019 /*toYear*/,
    -
    18939  10 /*inMonth*/,
    -
    18940  6 /*onDayOfWeek*/,
    -
    18941  -30 /*onDayOfMonth*/,
    -
    18942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18943  0 /*atTimeCode (0/15)*/,
    -
    18944  0 /*deltaMinutes*/,
    -
    18945  0 /*letterIndex ("")*/,
    -
    18946  },
    -
    18947  // Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S
    -
    18948  {
    -
    18949  2020 /*fromYear*/,
    -
    18950  2021 /*toYear*/,
    -
    18951  3 /*inMonth*/,
    -
    18952  6 /*onDayOfWeek*/,
    -
    18953  -30 /*onDayOfMonth*/,
    -
    18954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18955  0 /*atTimeCode (0/15)*/,
    -
    18956  60 /*deltaMinutes*/,
    -
    18957  25 /*letterIndex ("S")*/,
    -
    18958  },
    -
    18959  // Rule Palestine 2020 only - Oct 24 1:00 0 -
    -
    18960  {
    -
    18961  2020 /*fromYear*/,
    -
    18962  2020 /*toYear*/,
    -
    18963  10 /*inMonth*/,
    -
    18964  0 /*onDayOfWeek*/,
    -
    18965  24 /*onDayOfMonth*/,
    -
    18966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18967  240 /*atTimeCode (3600/15)*/,
    -
    18968  0 /*deltaMinutes*/,
    -
    18969  0 /*letterIndex ("")*/,
    -
    18970  },
    -
    18971  // Rule Palestine 2021 only - Oct 29 1:00 0 -
    -
    18972  {
    -
    18973  2021 /*fromYear*/,
    -
    18974  2021 /*toYear*/,
    -
    18975  10 /*inMonth*/,
    -
    18976  0 /*onDayOfWeek*/,
    -
    18977  29 /*onDayOfMonth*/,
    -
    18978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18979  240 /*atTimeCode (3600/15)*/,
    -
    18980  0 /*deltaMinutes*/,
    -
    18981  0 /*letterIndex ("")*/,
    -
    18982  },
    -
    18983  // Rule Palestine 2022 only - Mar 27 0:00 1:00 S
    -
    18984  {
    -
    18985  2022 /*fromYear*/,
    -
    18986  2022 /*toYear*/,
    -
    18987  3 /*inMonth*/,
    -
    18988  0 /*onDayOfWeek*/,
    -
    18989  27 /*onDayOfMonth*/,
    -
    18990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    18991  0 /*atTimeCode (0/15)*/,
    -
    18992  60 /*deltaMinutes*/,
    -
    18993  25 /*letterIndex ("S")*/,
    -
    18994  },
    -
    18995  // Rule Palestine 2022 2035 - Oct Sat<=30 2:00 0 -
    -
    18996  {
    -
    18997  2022 /*fromYear*/,
    -
    18998  2035 /*toYear*/,
    -
    18999  10 /*inMonth*/,
    -
    19000  6 /*onDayOfWeek*/,
    -
    19001  -30 /*onDayOfMonth*/,
    -
    19002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19003  480 /*atTimeCode (7200/15)*/,
    -
    19004  0 /*deltaMinutes*/,
    -
    19005  0 /*letterIndex ("")*/,
    -
    19006  },
    -
    19007  // Rule Palestine 2023 only - Apr 29 2:00 1:00 S
    -
    19008  {
    -
    19009  2023 /*fromYear*/,
    -
    19010  2023 /*toYear*/,
    -
    19011  4 /*inMonth*/,
    -
    19012  0 /*onDayOfWeek*/,
    -
    19013  29 /*onDayOfMonth*/,
    -
    19014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19015  480 /*atTimeCode (7200/15)*/,
    -
    19016  60 /*deltaMinutes*/,
    -
    19017  25 /*letterIndex ("S")*/,
    -
    19018  },
    -
    19019  // Rule Palestine 2024 only - Apr 20 2:00 1:00 S
    -
    19020  {
    -
    19021  2024 /*fromYear*/,
    -
    19022  2024 /*toYear*/,
    -
    19023  4 /*inMonth*/,
    -
    19024  0 /*onDayOfWeek*/,
    -
    19025  20 /*onDayOfMonth*/,
    -
    19026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19027  480 /*atTimeCode (7200/15)*/,
    -
    19028  60 /*deltaMinutes*/,
    -
    19029  25 /*letterIndex ("S")*/,
    -
    19030  },
    -
    19031  // Rule Palestine 2025 only - Apr 12 2:00 1:00 S
    -
    19032  {
    -
    19033  2025 /*fromYear*/,
    -
    19034  2025 /*toYear*/,
    -
    19035  4 /*inMonth*/,
    -
    19036  0 /*onDayOfWeek*/,
    -
    19037  12 /*onDayOfMonth*/,
    -
    19038  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19039  480 /*atTimeCode (7200/15)*/,
    -
    19040  60 /*deltaMinutes*/,
    -
    19041  25 /*letterIndex ("S")*/,
    -
    19042  },
    -
    19043  // Rule Palestine 2026 2054 - Mar Sat<=30 2:00 1:00 S
    -
    19044  {
    -
    19045  2026 /*fromYear*/,
    -
    19046  2054 /*toYear*/,
    -
    19047  3 /*inMonth*/,
    -
    19048  6 /*onDayOfWeek*/,
    -
    19049  -30 /*onDayOfMonth*/,
    -
    19050  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19051  480 /*atTimeCode (7200/15)*/,
    -
    19052  60 /*deltaMinutes*/,
    -
    19053  25 /*letterIndex ("S")*/,
    -
    19054  },
    -
    19055  // Rule Palestine 2036 only - Oct 18 2:00 0 -
    -
    19056  {
    -
    19057  2036 /*fromYear*/,
    -
    19058  2036 /*toYear*/,
    -
    19059  10 /*inMonth*/,
    -
    19060  0 /*onDayOfWeek*/,
    -
    19061  18 /*onDayOfMonth*/,
    -
    19062  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19063  480 /*atTimeCode (7200/15)*/,
    -
    19064  0 /*deltaMinutes*/,
    -
    19065  0 /*letterIndex ("")*/,
    -
    19066  },
    -
    19067  // Rule Palestine 2037 only - Oct 10 2:00 0 -
    -
    19068  {
    -
    19069  2037 /*fromYear*/,
    -
    19070  2037 /*toYear*/,
    -
    19071  10 /*inMonth*/,
    -
    19072  0 /*onDayOfWeek*/,
    -
    19073  10 /*onDayOfMonth*/,
    -
    19074  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19075  480 /*atTimeCode (7200/15)*/,
    -
    19076  0 /*deltaMinutes*/,
    -
    19077  0 /*letterIndex ("")*/,
    -
    19078  },
    -
    19079  // Rule Palestine 2038 only - Sep 25 2:00 0 -
    -
    19080  {
    -
    19081  2038 /*fromYear*/,
    -
    19082  2038 /*toYear*/,
    -
    19083  9 /*inMonth*/,
    -
    19084  0 /*onDayOfWeek*/,
    -
    19085  25 /*onDayOfMonth*/,
    -
    19086  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19087  480 /*atTimeCode (7200/15)*/,
    -
    19088  0 /*deltaMinutes*/,
    -
    19089  0 /*letterIndex ("")*/,
    -
    19090  },
    -
    19091  // Rule Palestine 2039 only - Sep 17 2:00 0 -
    -
    19092  {
    -
    19093  2039 /*fromYear*/,
    -
    19094  2039 /*toYear*/,
    -
    19095  9 /*inMonth*/,
    -
    19096  0 /*onDayOfWeek*/,
    -
    19097  17 /*onDayOfMonth*/,
    -
    19098  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19099  480 /*atTimeCode (7200/15)*/,
    -
    19100  0 /*deltaMinutes*/,
    -
    19101  0 /*letterIndex ("")*/,
    -
    19102  },
    -
    19103  // Rule Palestine 2040 only - Sep 1 2:00 0 -
    -
    19104  {
    -
    19105  2040 /*fromYear*/,
    -
    19106  2040 /*toYear*/,
    -
    19107  9 /*inMonth*/,
    -
    19108  0 /*onDayOfWeek*/,
    -
    19109  1 /*onDayOfMonth*/,
    -
    19110  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19111  480 /*atTimeCode (7200/15)*/,
    -
    19112  0 /*deltaMinutes*/,
    -
    19113  0 /*letterIndex ("")*/,
    -
    19114  },
    -
    19115  // Rule Palestine 2040 only - Oct 20 2:00 1:00 S
    -
    19116  {
    -
    19117  2040 /*fromYear*/,
    -
    19118  2040 /*toYear*/,
    -
    19119  10 /*inMonth*/,
    -
    19120  0 /*onDayOfWeek*/,
    -
    19121  20 /*onDayOfMonth*/,
    -
    19122  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19123  480 /*atTimeCode (7200/15)*/,
    -
    19124  60 /*deltaMinutes*/,
    -
    19125  25 /*letterIndex ("S")*/,
    -
    19126  },
    -
    19127  // Rule Palestine 2040 2067 - Oct Sat<=30 2:00 0 -
    -
    19128  {
    -
    19129  2040 /*fromYear*/,
    -
    19130  2067 /*toYear*/,
    -
    19131  10 /*inMonth*/,
    -
    19132  6 /*onDayOfWeek*/,
    -
    19133  -30 /*onDayOfMonth*/,
    -
    19134  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19135  480 /*atTimeCode (7200/15)*/,
    -
    19136  0 /*deltaMinutes*/,
    -
    19137  0 /*letterIndex ("")*/,
    -
    19138  },
    -
    19139  // Rule Palestine 2041 only - Aug 24 2:00 0 -
    -
    19140  {
    -
    19141  2041 /*fromYear*/,
    -
    19142  2041 /*toYear*/,
    -
    19143  8 /*inMonth*/,
    -
    19144  0 /*onDayOfWeek*/,
    -
    19145  24 /*onDayOfMonth*/,
    -
    19146  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19147  480 /*atTimeCode (7200/15)*/,
    -
    19148  0 /*deltaMinutes*/,
    -
    19149  0 /*letterIndex ("")*/,
    -
    19150  },
    -
    19151  // Rule Palestine 2041 only - Oct 5 2:00 1:00 S
    -
    19152  {
    -
    19153  2041 /*fromYear*/,
    -
    19154  2041 /*toYear*/,
    -
    19155  10 /*inMonth*/,
    -
    19156  0 /*onDayOfWeek*/,
    -
    19157  5 /*onDayOfMonth*/,
    -
    19158  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19159  480 /*atTimeCode (7200/15)*/,
    -
    19160  60 /*deltaMinutes*/,
    -
    19161  25 /*letterIndex ("S")*/,
    -
    19162  },
    -
    19163  // Rule Palestine 2042 only - Aug 16 2:00 0 -
    -
    19164  {
    -
    19165  2042 /*fromYear*/,
    -
    19166  2042 /*toYear*/,
    -
    19167  8 /*inMonth*/,
    -
    19168  0 /*onDayOfWeek*/,
    -
    19169  16 /*onDayOfMonth*/,
    -
    19170  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19171  480 /*atTimeCode (7200/15)*/,
    -
    19172  0 /*deltaMinutes*/,
    -
    19173  0 /*letterIndex ("")*/,
    -
    19174  },
    -
    19175  // Rule Palestine 2042 only - Sep 27 2:00 1:00 S
    -
    19176  {
    -
    19177  2042 /*fromYear*/,
    -
    19178  2042 /*toYear*/,
    -
    19179  9 /*inMonth*/,
    -
    19180  0 /*onDayOfWeek*/,
    -
    19181  27 /*onDayOfMonth*/,
    -
    19182  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19183  480 /*atTimeCode (7200/15)*/,
    -
    19184  60 /*deltaMinutes*/,
    -
    19185  25 /*letterIndex ("S")*/,
    -
    19186  },
    -
    19187  // Rule Palestine 2043 only - Aug 1 2:00 0 -
    -
    19188  {
    -
    19189  2043 /*fromYear*/,
    -
    19190  2043 /*toYear*/,
    -
    19191  8 /*inMonth*/,
    -
    19192  0 /*onDayOfWeek*/,
    -
    19193  1 /*onDayOfMonth*/,
    -
    19194  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19195  480 /*atTimeCode (7200/15)*/,
    -
    19196  0 /*deltaMinutes*/,
    -
    19197  0 /*letterIndex ("")*/,
    -
    19198  },
    -
    19199  // Rule Palestine 2043 only - Sep 19 2:00 1:00 S
    -
    19200  {
    -
    19201  2043 /*fromYear*/,
    -
    19202  2043 /*toYear*/,
    -
    19203  9 /*inMonth*/,
    -
    19204  0 /*onDayOfWeek*/,
    -
    19205  19 /*onDayOfMonth*/,
    -
    19206  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19207  480 /*atTimeCode (7200/15)*/,
    -
    19208  60 /*deltaMinutes*/,
    -
    19209  25 /*letterIndex ("S")*/,
    -
    19210  },
    -
    19211  // Rule Palestine 2044 only - Jul 23 2:00 0 -
    -
    19212  {
    -
    19213  2044 /*fromYear*/,
    -
    19214  2044 /*toYear*/,
    -
    19215  7 /*inMonth*/,
    -
    19216  0 /*onDayOfWeek*/,
    -
    19217  23 /*onDayOfMonth*/,
    -
    19218  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19219  480 /*atTimeCode (7200/15)*/,
    -
    19220  0 /*deltaMinutes*/,
    -
    19221  0 /*letterIndex ("")*/,
    -
    19222  },
    -
    19223  // Rule Palestine 2044 only - Sep 3 2:00 1:00 S
    -
    19224  {
    -
    19225  2044 /*fromYear*/,
    -
    19226  2044 /*toYear*/,
    -
    19227  9 /*inMonth*/,
    -
    19228  0 /*onDayOfWeek*/,
    -
    19229  3 /*onDayOfMonth*/,
    -
    19230  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19231  480 /*atTimeCode (7200/15)*/,
    -
    19232  60 /*deltaMinutes*/,
    -
    19233  25 /*letterIndex ("S")*/,
    -
    19234  },
    -
    19235  // Rule Palestine 2045 only - Jul 15 2:00 0 -
    -
    19236  {
    -
    19237  2045 /*fromYear*/,
    -
    19238  2045 /*toYear*/,
    -
    19239  7 /*inMonth*/,
    -
    19240  0 /*onDayOfWeek*/,
    -
    19241  15 /*onDayOfMonth*/,
    -
    19242  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19243  480 /*atTimeCode (7200/15)*/,
    -
    19244  0 /*deltaMinutes*/,
    -
    19245  0 /*letterIndex ("")*/,
    -
    19246  },
    -
    19247  // Rule Palestine 2045 only - Aug 26 2:00 1:00 S
    -
    19248  {
    -
    19249  2045 /*fromYear*/,
    -
    19250  2045 /*toYear*/,
    -
    19251  8 /*inMonth*/,
    -
    19252  0 /*onDayOfWeek*/,
    -
    19253  26 /*onDayOfMonth*/,
    -
    19254  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19255  480 /*atTimeCode (7200/15)*/,
    -
    19256  60 /*deltaMinutes*/,
    -
    19257  25 /*letterIndex ("S")*/,
    -
    19258  },
    -
    19259  // Rule Palestine 2046 only - Jun 30 2:00 0 -
    -
    19260  {
    -
    19261  2046 /*fromYear*/,
    -
    19262  2046 /*toYear*/,
    -
    19263  6 /*inMonth*/,
    -
    19264  0 /*onDayOfWeek*/,
    -
    19265  30 /*onDayOfMonth*/,
    -
    19266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19267  480 /*atTimeCode (7200/15)*/,
    -
    19268  0 /*deltaMinutes*/,
    -
    19269  0 /*letterIndex ("")*/,
    -
    19270  },
    -
    19271  // Rule Palestine 2046 only - Aug 18 2:00 1:00 S
    -
    19272  {
    -
    19273  2046 /*fromYear*/,
    -
    19274  2046 /*toYear*/,
    -
    19275  8 /*inMonth*/,
    -
    19276  0 /*onDayOfWeek*/,
    -
    19277  18 /*onDayOfMonth*/,
    -
    19278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19279  480 /*atTimeCode (7200/15)*/,
    -
    19280  60 /*deltaMinutes*/,
    -
    19281  25 /*letterIndex ("S")*/,
    -
    19282  },
    -
    19283  // Rule Palestine 2047 only - Jun 22 2:00 0 -
    -
    19284  {
    -
    19285  2047 /*fromYear*/,
    -
    19286  2047 /*toYear*/,
    -
    19287  6 /*inMonth*/,
    -
    19288  0 /*onDayOfWeek*/,
    -
    19289  22 /*onDayOfMonth*/,
    -
    19290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19291  480 /*atTimeCode (7200/15)*/,
    -
    19292  0 /*deltaMinutes*/,
    -
    19293  0 /*letterIndex ("")*/,
    -
    19294  },
    -
    19295  // Rule Palestine 2047 only - Aug 3 2:00 1:00 S
    -
    19296  {
    -
    19297  2047 /*fromYear*/,
    -
    19298  2047 /*toYear*/,
    -
    19299  8 /*inMonth*/,
    -
    19300  0 /*onDayOfWeek*/,
    -
    19301  3 /*onDayOfMonth*/,
    -
    19302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19303  480 /*atTimeCode (7200/15)*/,
    -
    19304  60 /*deltaMinutes*/,
    -
    19305  25 /*letterIndex ("S")*/,
    -
    19306  },
    -
    19307  // Rule Palestine 2048 only - Jun 6 2:00 0 -
    -
    19308  {
    -
    19309  2048 /*fromYear*/,
    -
    19310  2048 /*toYear*/,
    -
    19311  6 /*inMonth*/,
    -
    19312  0 /*onDayOfWeek*/,
    -
    19313  6 /*onDayOfMonth*/,
    -
    19314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19315  480 /*atTimeCode (7200/15)*/,
    -
    19316  0 /*deltaMinutes*/,
    -
    19317  0 /*letterIndex ("")*/,
    -
    19318  },
    -
    19319  // Rule Palestine 2048 only - Jul 25 2:00 1:00 S
    -
    19320  {
    -
    19321  2048 /*fromYear*/,
    -
    19322  2048 /*toYear*/,
    -
    19323  7 /*inMonth*/,
    -
    19324  0 /*onDayOfWeek*/,
    -
    19325  25 /*onDayOfMonth*/,
    -
    19326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19327  480 /*atTimeCode (7200/15)*/,
    -
    19328  60 /*deltaMinutes*/,
    -
    19329  25 /*letterIndex ("S")*/,
    -
    19330  },
    -
    19331  // Rule Palestine 2049 only - May 29 2:00 0 -
    -
    19332  {
    -
    19333  2049 /*fromYear*/,
    -
    19334  2049 /*toYear*/,
    -
    19335  5 /*inMonth*/,
    -
    19336  0 /*onDayOfWeek*/,
    -
    19337  29 /*onDayOfMonth*/,
    -
    19338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19339  480 /*atTimeCode (7200/15)*/,
    -
    19340  0 /*deltaMinutes*/,
    -
    19341  0 /*letterIndex ("")*/,
    -
    19342  },
    -
    19343  // Rule Palestine 2049 only - Jul 10 2:00 1:00 S
    -
    19344  {
    -
    19345  2049 /*fromYear*/,
    -
    19346  2049 /*toYear*/,
    -
    19347  7 /*inMonth*/,
    -
    19348  0 /*onDayOfWeek*/,
    -
    19349  10 /*onDayOfMonth*/,
    -
    19350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19351  480 /*atTimeCode (7200/15)*/,
    -
    19352  60 /*deltaMinutes*/,
    -
    19353  25 /*letterIndex ("S")*/,
    -
    19354  },
    -
    19355  // Rule Palestine 2050 only - May 21 2:00 0 -
    -
    19356  {
    -
    19357  2050 /*fromYear*/,
    -
    19358  2050 /*toYear*/,
    -
    19359  5 /*inMonth*/,
    -
    19360  0 /*onDayOfWeek*/,
    -
    19361  21 /*onDayOfMonth*/,
    -
    19362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19363  480 /*atTimeCode (7200/15)*/,
    -
    19364  0 /*deltaMinutes*/,
    -
    19365  0 /*letterIndex ("")*/,
    -
    19366  },
    -
    19367  // Rule Palestine 2050 only - Jul 2 2:00 1:00 S
    -
    19368  {
    -
    19369  2050 /*fromYear*/,
    -
    19370  2050 /*toYear*/,
    -
    19371  7 /*inMonth*/,
    -
    19372  0 /*onDayOfWeek*/,
    -
    19373  2 /*onDayOfMonth*/,
    -
    19374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19375  480 /*atTimeCode (7200/15)*/,
    -
    19376  60 /*deltaMinutes*/,
    -
    19377  25 /*letterIndex ("S")*/,
    -
    19378  },
    -
    19379  // Rule Palestine 2051 only - May 6 2:00 0 -
    -
    19380  {
    -
    19381  2051 /*fromYear*/,
    -
    19382  2051 /*toYear*/,
    -
    19383  5 /*inMonth*/,
    -
    19384  0 /*onDayOfWeek*/,
    -
    19385  6 /*onDayOfMonth*/,
    -
    19386  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19387  480 /*atTimeCode (7200/15)*/,
    -
    19388  0 /*deltaMinutes*/,
    -
    19389  0 /*letterIndex ("")*/,
    -
    19390  },
    -
    19391  // Rule Palestine 2051 only - Jun 24 2:00 1:00 S
    -
    19392  {
    -
    19393  2051 /*fromYear*/,
    -
    19394  2051 /*toYear*/,
    -
    19395  6 /*inMonth*/,
    -
    19396  0 /*onDayOfWeek*/,
    -
    19397  24 /*onDayOfMonth*/,
    -
    19398  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19399  480 /*atTimeCode (7200/15)*/,
    -
    19400  60 /*deltaMinutes*/,
    -
    19401  25 /*letterIndex ("S")*/,
    -
    19402  },
    -
    19403  // Rule Palestine 2052 only - Apr 27 2:00 0 -
    -
    19404  {
    -
    19405  2052 /*fromYear*/,
    -
    19406  2052 /*toYear*/,
    -
    19407  4 /*inMonth*/,
    -
    19408  0 /*onDayOfWeek*/,
    -
    19409  27 /*onDayOfMonth*/,
    -
    19410  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19411  480 /*atTimeCode (7200/15)*/,
    -
    19412  0 /*deltaMinutes*/,
    -
    19413  0 /*letterIndex ("")*/,
    -
    19414  },
    -
    19415  // Rule Palestine 2052 only - Jun 8 2:00 1:00 S
    -
    19416  {
    -
    19417  2052 /*fromYear*/,
    -
    19418  2052 /*toYear*/,
    -
    19419  6 /*inMonth*/,
    -
    19420  0 /*onDayOfWeek*/,
    -
    19421  8 /*onDayOfMonth*/,
    -
    19422  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19423  480 /*atTimeCode (7200/15)*/,
    -
    19424  60 /*deltaMinutes*/,
    -
    19425  25 /*letterIndex ("S")*/,
    -
    19426  },
    -
    19427  // Rule Palestine 2053 only - Apr 12 2:00 0 -
    -
    19428  {
    -
    19429  2053 /*fromYear*/,
    -
    19430  2053 /*toYear*/,
    -
    19431  4 /*inMonth*/,
    -
    19432  0 /*onDayOfWeek*/,
    -
    19433  12 /*onDayOfMonth*/,
    -
    19434  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19435  480 /*atTimeCode (7200/15)*/,
    -
    19436  0 /*deltaMinutes*/,
    -
    19437  0 /*letterIndex ("")*/,
    -
    19438  },
    -
    19439  // Rule Palestine 2053 only - May 31 2:00 1:00 S
    -
    19440  {
    -
    19441  2053 /*fromYear*/,
    -
    19442  2053 /*toYear*/,
    -
    19443  5 /*inMonth*/,
    -
    19444  0 /*onDayOfWeek*/,
    -
    19445  31 /*onDayOfMonth*/,
    -
    19446  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19447  480 /*atTimeCode (7200/15)*/,
    -
    19448  60 /*deltaMinutes*/,
    -
    19449  25 /*letterIndex ("S")*/,
    -
    19450  },
    -
    19451  // Rule Palestine 2054 only - Apr 4 2:00 0 -
    -
    19452  {
    -
    19453  2054 /*fromYear*/,
    -
    19454  2054 /*toYear*/,
    -
    19455  4 /*inMonth*/,
    -
    19456  0 /*onDayOfWeek*/,
    -
    19457  4 /*onDayOfMonth*/,
    -
    19458  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19459  480 /*atTimeCode (7200/15)*/,
    -
    19460  0 /*deltaMinutes*/,
    -
    19461  0 /*letterIndex ("")*/,
    -
    19462  },
    -
    19463  // Rule Palestine 2054 only - May 23 2:00 1:00 S
    -
    19464  {
    -
    19465  2054 /*fromYear*/,
    -
    19466  2054 /*toYear*/,
    -
    19467  5 /*inMonth*/,
    -
    19468  0 /*onDayOfWeek*/,
    -
    19469  23 /*onDayOfMonth*/,
    -
    19470  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19471  480 /*atTimeCode (7200/15)*/,
    -
    19472  60 /*deltaMinutes*/,
    -
    19473  25 /*letterIndex ("S")*/,
    -
    19474  },
    -
    19475  // Rule Palestine 2055 only - May 8 2:00 1:00 S
    -
    19476  {
    -
    19477  2055 /*fromYear*/,
    -
    19478  2055 /*toYear*/,
    -
    19479  5 /*inMonth*/,
    -
    19480  0 /*onDayOfWeek*/,
    -
    19481  8 /*onDayOfMonth*/,
    -
    19482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19483  480 /*atTimeCode (7200/15)*/,
    -
    19484  60 /*deltaMinutes*/,
    -
    19485  25 /*letterIndex ("S")*/,
    -
    19486  },
    -
    19487  // Rule Palestine 2056 only - Apr 29 2:00 1:00 S
    -
    19488  {
    -
    19489  2056 /*fromYear*/,
    -
    19490  2056 /*toYear*/,
    -
    19491  4 /*inMonth*/,
    -
    19492  0 /*onDayOfWeek*/,
    -
    19493  29 /*onDayOfMonth*/,
    -
    19494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19495  480 /*atTimeCode (7200/15)*/,
    -
    19496  60 /*deltaMinutes*/,
    -
    19497  25 /*letterIndex ("S")*/,
    -
    19498  },
    -
    19499  // Rule Palestine 2057 only - Apr 14 2:00 1:00 S
    -
    19500  {
    -
    19501  2057 /*fromYear*/,
    -
    19502  2057 /*toYear*/,
    -
    19503  4 /*inMonth*/,
    -
    19504  0 /*onDayOfWeek*/,
    -
    19505  14 /*onDayOfMonth*/,
    -
    19506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19507  480 /*atTimeCode (7200/15)*/,
    -
    19508  60 /*deltaMinutes*/,
    -
    19509  25 /*letterIndex ("S")*/,
    -
    19510  },
    -
    19511  // Rule Palestine 2058 only - Apr 6 2:00 1:00 S
    -
    19512  {
    -
    19513  2058 /*fromYear*/,
    -
    19514  2058 /*toYear*/,
    -
    19515  4 /*inMonth*/,
    -
    19516  0 /*onDayOfWeek*/,
    -
    19517  6 /*onDayOfMonth*/,
    -
    19518  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19519  480 /*atTimeCode (7200/15)*/,
    -
    19520  60 /*deltaMinutes*/,
    -
    19521  25 /*letterIndex ("S")*/,
    -
    19522  },
    -
    19523  // Rule Palestine 2059 max - Mar Sat<=30 2:00 1:00 S
    -
    19524  {
    -
    19525  2059 /*fromYear*/,
    -
    19526  32766 /*toYear*/,
    -
    19527  3 /*inMonth*/,
    -
    19528  6 /*onDayOfWeek*/,
    -
    19529  -30 /*onDayOfMonth*/,
    -
    19530  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19531  480 /*atTimeCode (7200/15)*/,
    -
    19532  60 /*deltaMinutes*/,
    -
    19533  25 /*letterIndex ("S")*/,
    -
    19534  },
    -
    19535  // Rule Palestine 2068 only - Oct 20 2:00 0 -
    -
    19536  {
    -
    19537  2068 /*fromYear*/,
    -
    19538  2068 /*toYear*/,
    -
    19539  10 /*inMonth*/,
    -
    19540  0 /*onDayOfWeek*/,
    -
    19541  20 /*onDayOfMonth*/,
    -
    19542  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19543  480 /*atTimeCode (7200/15)*/,
    -
    19544  0 /*deltaMinutes*/,
    -
    19545  0 /*letterIndex ("")*/,
    -
    19546  },
    -
    19547  // Rule Palestine 2069 only - Oct 12 2:00 0 -
    -
    19548  {
    -
    19549  2069 /*fromYear*/,
    -
    19550  2069 /*toYear*/,
    -
    19551  10 /*inMonth*/,
    -
    19552  0 /*onDayOfWeek*/,
    -
    19553  12 /*onDayOfMonth*/,
    -
    19554  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19555  480 /*atTimeCode (7200/15)*/,
    -
    19556  0 /*deltaMinutes*/,
    -
    19557  0 /*letterIndex ("")*/,
    -
    19558  },
    -
    19559  // Rule Palestine 2070 only - Oct 4 2:00 0 -
    -
    19560  {
    -
    19561  2070 /*fromYear*/,
    -
    19562  2070 /*toYear*/,
    -
    19563  10 /*inMonth*/,
    -
    19564  0 /*onDayOfWeek*/,
    -
    19565  4 /*onDayOfMonth*/,
    -
    19566  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19567  480 /*atTimeCode (7200/15)*/,
    -
    19568  0 /*deltaMinutes*/,
    -
    19569  0 /*letterIndex ("")*/,
    -
    19570  },
    -
    19571  // Rule Palestine 2071 only - Sep 19 2:00 0 -
    -
    19572  {
    -
    19573  2071 /*fromYear*/,
    -
    19574  2071 /*toYear*/,
    -
    19575  9 /*inMonth*/,
    -
    19576  0 /*onDayOfWeek*/,
    -
    19577  19 /*onDayOfMonth*/,
    -
    19578  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19579  480 /*atTimeCode (7200/15)*/,
    -
    19580  0 /*deltaMinutes*/,
    -
    19581  0 /*letterIndex ("")*/,
    -
    19582  },
    -
    19583  // Rule Palestine 2072 only - Sep 10 2:00 0 -
    -
    19584  {
    -
    19585  2072 /*fromYear*/,
    -
    19586  2072 /*toYear*/,
    -
    19587  9 /*inMonth*/,
    -
    19588  0 /*onDayOfWeek*/,
    -
    19589  10 /*onDayOfMonth*/,
    -
    19590  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19591  480 /*atTimeCode (7200/15)*/,
    -
    19592  0 /*deltaMinutes*/,
    -
    19593  0 /*letterIndex ("")*/,
    -
    19594  },
    -
    19595  // Rule Palestine 2072 only - Oct 22 2:00 1:00 S
    -
    19596  {
    -
    19597  2072 /*fromYear*/,
    -
    19598  2072 /*toYear*/,
    -
    19599  10 /*inMonth*/,
    -
    19600  0 /*onDayOfWeek*/,
    -
    19601  22 /*onDayOfMonth*/,
    -
    19602  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19603  480 /*atTimeCode (7200/15)*/,
    -
    19604  60 /*deltaMinutes*/,
    -
    19605  25 /*letterIndex ("S")*/,
    -
    19606  },
    -
    19607  // Rule Palestine 2072 max - Oct Sat<=30 2:00 0 -
    -
    19608  {
    -
    19609  2072 /*fromYear*/,
    -
    19610  32766 /*toYear*/,
    -
    19611  10 /*inMonth*/,
    -
    19612  6 /*onDayOfWeek*/,
    -
    19613  -30 /*onDayOfMonth*/,
    -
    19614  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19615  480 /*atTimeCode (7200/15)*/,
    -
    19616  0 /*deltaMinutes*/,
    -
    19617  0 /*letterIndex ("")*/,
    -
    19618  },
    -
    19619  // Rule Palestine 2073 only - Sep 2 2:00 0 -
    -
    19620  {
    -
    19621  2073 /*fromYear*/,
    -
    19622  2073 /*toYear*/,
    -
    19623  9 /*inMonth*/,
    -
    19624  0 /*onDayOfWeek*/,
    -
    19625  2 /*onDayOfMonth*/,
    -
    19626  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19627  480 /*atTimeCode (7200/15)*/,
    -
    19628  0 /*deltaMinutes*/,
    -
    19629  0 /*letterIndex ("")*/,
    -
    19630  },
    -
    19631  // Rule Palestine 2073 only - Oct 14 2:00 1:00 S
    -
    19632  {
    -
    19633  2073 /*fromYear*/,
    -
    19634  2073 /*toYear*/,
    -
    19635  10 /*inMonth*/,
    -
    19636  0 /*onDayOfWeek*/,
    -
    19637  14 /*onDayOfMonth*/,
    -
    19638  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19639  480 /*atTimeCode (7200/15)*/,
    -
    19640  60 /*deltaMinutes*/,
    -
    19641  25 /*letterIndex ("S")*/,
    -
    19642  },
    -
    19643  // Rule Palestine 2074 only - Aug 18 2:00 0 -
    -
    19644  {
    -
    19645  2074 /*fromYear*/,
    -
    19646  2074 /*toYear*/,
    -
    19647  8 /*inMonth*/,
    -
    19648  0 /*onDayOfWeek*/,
    -
    19649  18 /*onDayOfMonth*/,
    -
    19650  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19651  480 /*atTimeCode (7200/15)*/,
    -
    19652  0 /*deltaMinutes*/,
    -
    19653  0 /*letterIndex ("")*/,
    -
    19654  },
    -
    19655  // Rule Palestine 2074 only - Oct 6 2:00 1:00 S
    -
    19656  {
    -
    19657  2074 /*fromYear*/,
    -
    19658  2074 /*toYear*/,
    -
    19659  10 /*inMonth*/,
    -
    19660  0 /*onDayOfWeek*/,
    -
    19661  6 /*onDayOfMonth*/,
    -
    19662  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19663  480 /*atTimeCode (7200/15)*/,
    -
    19664  60 /*deltaMinutes*/,
    -
    19665  25 /*letterIndex ("S")*/,
    -
    19666  },
    -
    19667  // Rule Palestine 2075 only - Aug 10 2:00 0 -
    -
    19668  {
    -
    19669  2075 /*fromYear*/,
    -
    19670  2075 /*toYear*/,
    -
    19671  8 /*inMonth*/,
    -
    19672  0 /*onDayOfWeek*/,
    -
    19673  10 /*onDayOfMonth*/,
    -
    19674  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19675  480 /*atTimeCode (7200/15)*/,
    -
    19676  0 /*deltaMinutes*/,
    -
    19677  0 /*letterIndex ("")*/,
    -
    19678  },
    -
    19679  // Rule Palestine 2075 only - Sep 21 2:00 1:00 S
    -
    19680  {
    -
    19681  2075 /*fromYear*/,
    -
    19682  2075 /*toYear*/,
    -
    19683  9 /*inMonth*/,
    -
    19684  0 /*onDayOfWeek*/,
    -
    19685  21 /*onDayOfMonth*/,
    -
    19686  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19687  480 /*atTimeCode (7200/15)*/,
    -
    19688  60 /*deltaMinutes*/,
    -
    19689  25 /*letterIndex ("S")*/,
    -
    19690  },
    -
    19691  // Rule Palestine 2076 only - Jul 25 2:00 0 -
    -
    19692  {
    -
    19693  2076 /*fromYear*/,
    -
    19694  2076 /*toYear*/,
    -
    19695  7 /*inMonth*/,
    -
    19696  0 /*onDayOfWeek*/,
    -
    19697  25 /*onDayOfMonth*/,
    -
    19698  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19699  480 /*atTimeCode (7200/15)*/,
    -
    19700  0 /*deltaMinutes*/,
    -
    19701  0 /*letterIndex ("")*/,
    -
    19702  },
    -
    19703  // Rule Palestine 2076 only - Sep 12 2:00 1:00 S
    -
    19704  {
    -
    19705  2076 /*fromYear*/,
    -
    19706  2076 /*toYear*/,
    -
    19707  9 /*inMonth*/,
    -
    19708  0 /*onDayOfWeek*/,
    -
    19709  12 /*onDayOfMonth*/,
    -
    19710  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19711  480 /*atTimeCode (7200/15)*/,
    -
    19712  60 /*deltaMinutes*/,
    -
    19713  25 /*letterIndex ("S")*/,
    -
    19714  },
    -
    19715  // Rule Palestine 2077 only - Jul 17 2:00 0 -
    -
    19716  {
    -
    19717  2077 /*fromYear*/,
    -
    19718  2077 /*toYear*/,
    -
    19719  7 /*inMonth*/,
    -
    19720  0 /*onDayOfWeek*/,
    -
    19721  17 /*onDayOfMonth*/,
    -
    19722  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19723  480 /*atTimeCode (7200/15)*/,
    -
    19724  0 /*deltaMinutes*/,
    -
    19725  0 /*letterIndex ("")*/,
    -
    19726  },
    -
    19727  // Rule Palestine 2077 only - Sep 4 2:00 1:00 S
    -
    19728  {
    -
    19729  2077 /*fromYear*/,
    -
    19730  2077 /*toYear*/,
    -
    19731  9 /*inMonth*/,
    -
    19732  0 /*onDayOfWeek*/,
    -
    19733  4 /*onDayOfMonth*/,
    -
    19734  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19735  480 /*atTimeCode (7200/15)*/,
    -
    19736  60 /*deltaMinutes*/,
    -
    19737  25 /*letterIndex ("S")*/,
    -
    19738  },
    -
    19739  // Rule Palestine 2078 only - Jul 9 2:00 0 -
    -
    19740  {
    -
    19741  2078 /*fromYear*/,
    -
    19742  2078 /*toYear*/,
    -
    19743  7 /*inMonth*/,
    -
    19744  0 /*onDayOfWeek*/,
    -
    19745  9 /*onDayOfMonth*/,
    -
    19746  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19747  480 /*atTimeCode (7200/15)*/,
    -
    19748  0 /*deltaMinutes*/,
    -
    19749  0 /*letterIndex ("")*/,
    -
    19750  },
    -
    19751  // Rule Palestine 2078 only - Aug 20 2:00 1:00 S
    -
    19752  {
    -
    19753  2078 /*fromYear*/,
    -
    19754  2078 /*toYear*/,
    -
    19755  8 /*inMonth*/,
    -
    19756  0 /*onDayOfWeek*/,
    -
    19757  20 /*onDayOfMonth*/,
    -
    19758  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19759  480 /*atTimeCode (7200/15)*/,
    -
    19760  60 /*deltaMinutes*/,
    -
    19761  25 /*letterIndex ("S")*/,
    -
    19762  },
    -
    19763  // Rule Palestine 2079 only - Jun 24 2:00 0 -
    -
    19764  {
    -
    19765  2079 /*fromYear*/,
    -
    19766  2079 /*toYear*/,
    -
    19767  6 /*inMonth*/,
    -
    19768  0 /*onDayOfWeek*/,
    -
    19769  24 /*onDayOfMonth*/,
    -
    19770  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19771  480 /*atTimeCode (7200/15)*/,
    -
    19772  0 /*deltaMinutes*/,
    -
    19773  0 /*letterIndex ("")*/,
    -
    19774  },
    -
    19775  // Rule Palestine 2079 only - Aug 12 2:00 1:00 S
    -
    19776  {
    -
    19777  2079 /*fromYear*/,
    -
    19778  2079 /*toYear*/,
    -
    19779  8 /*inMonth*/,
    -
    19780  0 /*onDayOfWeek*/,
    -
    19781  12 /*onDayOfMonth*/,
    -
    19782  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19783  480 /*atTimeCode (7200/15)*/,
    -
    19784  60 /*deltaMinutes*/,
    -
    19785  25 /*letterIndex ("S")*/,
    -
    19786  },
    -
    19787  // Rule Palestine 2080 only - Jun 15 2:00 0 -
    -
    19788  {
    -
    19789  2080 /*fromYear*/,
    -
    19790  2080 /*toYear*/,
    -
    19791  6 /*inMonth*/,
    -
    19792  0 /*onDayOfWeek*/,
    -
    19793  15 /*onDayOfMonth*/,
    -
    19794  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19795  480 /*atTimeCode (7200/15)*/,
    -
    19796  0 /*deltaMinutes*/,
    -
    19797  0 /*letterIndex ("")*/,
    -
    19798  },
    -
    19799  // Rule Palestine 2080 only - Jul 27 2:00 1:00 S
    -
    19800  {
    -
    19801  2080 /*fromYear*/,
    -
    19802  2080 /*toYear*/,
    -
    19803  7 /*inMonth*/,
    -
    19804  0 /*onDayOfWeek*/,
    -
    19805  27 /*onDayOfMonth*/,
    -
    19806  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19807  480 /*atTimeCode (7200/15)*/,
    -
    19808  60 /*deltaMinutes*/,
    -
    19809  25 /*letterIndex ("S")*/,
    -
    19810  },
    -
    19811  // Rule Palestine 2081 only - Jun 7 2:00 0 -
    -
    19812  {
    -
    19813  2081 /*fromYear*/,
    -
    19814  2081 /*toYear*/,
    -
    19815  6 /*inMonth*/,
    -
    19816  0 /*onDayOfWeek*/,
    -
    19817  7 /*onDayOfMonth*/,
    -
    19818  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19819  480 /*atTimeCode (7200/15)*/,
    -
    19820  0 /*deltaMinutes*/,
    -
    19821  0 /*letterIndex ("")*/,
    -
    19822  },
    -
    19823  // Rule Palestine 2081 only - Jul 19 2:00 1:00 S
    -
    19824  {
    -
    19825  2081 /*fromYear*/,
    -
    19826  2081 /*toYear*/,
    -
    19827  7 /*inMonth*/,
    -
    19828  0 /*onDayOfWeek*/,
    -
    19829  19 /*onDayOfMonth*/,
    -
    19830  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19831  480 /*atTimeCode (7200/15)*/,
    -
    19832  60 /*deltaMinutes*/,
    -
    19833  25 /*letterIndex ("S")*/,
    -
    19834  },
    -
    19835  // Rule Palestine 2082 only - May 23 2:00 0 -
    -
    19836  {
    -
    19837  2082 /*fromYear*/,
    -
    19838  2082 /*toYear*/,
    -
    19839  5 /*inMonth*/,
    -
    19840  0 /*onDayOfWeek*/,
    -
    19841  23 /*onDayOfMonth*/,
    -
    19842  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19843  480 /*atTimeCode (7200/15)*/,
    -
    19844  0 /*deltaMinutes*/,
    -
    19845  0 /*letterIndex ("")*/,
    -
    19846  },
    -
    19847  // Rule Palestine 2082 only - Jul 11 2:00 1:00 S
    -
    19848  {
    -
    19849  2082 /*fromYear*/,
    -
    19850  2082 /*toYear*/,
    -
    19851  7 /*inMonth*/,
    -
    19852  0 /*onDayOfWeek*/,
    -
    19853  11 /*onDayOfMonth*/,
    -
    19854  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19855  480 /*atTimeCode (7200/15)*/,
    -
    19856  60 /*deltaMinutes*/,
    -
    19857  25 /*letterIndex ("S")*/,
    -
    19858  },
    -
    19859  // Rule Palestine 2083 only - May 15 2:00 0 -
    -
    19860  {
    -
    19861  2083 /*fromYear*/,
    -
    19862  2083 /*toYear*/,
    -
    19863  5 /*inMonth*/,
    -
    19864  0 /*onDayOfWeek*/,
    -
    19865  15 /*onDayOfMonth*/,
    -
    19866  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19867  480 /*atTimeCode (7200/15)*/,
    -
    19868  0 /*deltaMinutes*/,
    -
    19869  0 /*letterIndex ("")*/,
    -
    19870  },
    -
    19871  // Rule Palestine 2083 only - Jun 26 2:00 1:00 S
    -
    19872  {
    -
    19873  2083 /*fromYear*/,
    -
    19874  2083 /*toYear*/,
    -
    19875  6 /*inMonth*/,
    -
    19876  0 /*onDayOfWeek*/,
    -
    19877  26 /*onDayOfMonth*/,
    -
    19878  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19879  480 /*atTimeCode (7200/15)*/,
    -
    19880  60 /*deltaMinutes*/,
    -
    19881  25 /*letterIndex ("S")*/,
    -
    19882  },
    -
    19883  // Rule Palestine 2084 only - Apr 29 2:00 0 -
    -
    19884  {
    -
    19885  2084 /*fromYear*/,
    -
    19886  2084 /*toYear*/,
    -
    19887  4 /*inMonth*/,
    -
    19888  0 /*onDayOfWeek*/,
    -
    19889  29 /*onDayOfMonth*/,
    -
    19890  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19891  480 /*atTimeCode (7200/15)*/,
    -
    19892  0 /*deltaMinutes*/,
    -
    19893  0 /*letterIndex ("")*/,
    -
    19894  },
    -
    19895  // Rule Palestine 2084 only - Jun 17 2:00 1:00 S
    -
    19896  {
    -
    19897  2084 /*fromYear*/,
    -
    19898  2084 /*toYear*/,
    -
    19899  6 /*inMonth*/,
    -
    19900  0 /*onDayOfWeek*/,
    -
    19901  17 /*onDayOfMonth*/,
    -
    19902  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19903  480 /*atTimeCode (7200/15)*/,
    -
    19904  60 /*deltaMinutes*/,
    -
    19905  25 /*letterIndex ("S")*/,
    -
    19906  },
    -
    19907  // Rule Palestine 2085 only - Apr 21 2:00 0 -
    -
    19908  {
    -
    19909  2085 /*fromYear*/,
    -
    19910  2085 /*toYear*/,
    -
    19911  4 /*inMonth*/,
    -
    19912  0 /*onDayOfWeek*/,
    -
    19913  21 /*onDayOfMonth*/,
    -
    19914  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19915  480 /*atTimeCode (7200/15)*/,
    -
    19916  0 /*deltaMinutes*/,
    -
    19917  0 /*letterIndex ("")*/,
    -
    19918  },
    -
    19919  // Rule Palestine 2085 only - Jun 9 2:00 1:00 S
    -
    19920  {
    -
    19921  2085 /*fromYear*/,
    -
    19922  2085 /*toYear*/,
    -
    19923  6 /*inMonth*/,
    -
    19924  0 /*onDayOfWeek*/,
    -
    19925  9 /*onDayOfMonth*/,
    -
    19926  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19927  480 /*atTimeCode (7200/15)*/,
    -
    19928  60 /*deltaMinutes*/,
    -
    19929  25 /*letterIndex ("S")*/,
    -
    19930  },
    -
    19931  // Rule Palestine 2086 only - Apr 13 2:00 0 -
    -
    19932  {
    -
    19933  2086 /*fromYear*/,
    -
    19934  2086 /*toYear*/,
    -
    19935  4 /*inMonth*/,
    -
    19936  0 /*onDayOfWeek*/,
    -
    19937  13 /*onDayOfMonth*/,
    -
    19938  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19939  480 /*atTimeCode (7200/15)*/,
    -
    19940  0 /*deltaMinutes*/,
    -
    19941  0 /*letterIndex ("")*/,
    -
    19942  },
    -
    19943  // Rule Palestine 2086 only - May 25 2:00 1:00 S
    -
    19944  {
    -
    19945  2086 /*fromYear*/,
    -
    19946  2086 /*toYear*/,
    -
    19947  5 /*inMonth*/,
    -
    19948  0 /*onDayOfWeek*/,
    -
    19949  25 /*onDayOfMonth*/,
    -
    19950  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19951  480 /*atTimeCode (7200/15)*/,
    -
    19952  60 /*deltaMinutes*/,
    -
    19953  25 /*letterIndex ("S")*/,
    -
    19954  },
    -
    19955 
    -
    19956 };
    -
    19957 
    -
    19958 const complete::Info::ZonePolicy kZonePolicyPalestine ACE_TIME_PROGMEM = {
    -
    19959  kZoneRulesPalestine /*rules*/,
    -
    19960  111 /*numRules*/,
    -
    19961 };
    -
    19962 
    -
    19963 //---------------------------------------------------------------------------
    -
    19964 // Policy name: Para
    -
    19965 // Rules: 23
    -
    19966 //---------------------------------------------------------------------------
    -
    19967 
    -
    19968 static const complete::Info::ZoneRule kZoneRulesPara[] ACE_TIME_PROGMEM = {
    -
    19969  // Anchor: Rule Para 1975 1978 - Mar 1 0:00 0 -
    -
    19970  {
    -
    19971  -32767 /*fromYear*/,
    -
    19972  -32767 /*toYear*/,
    -
    19973  1 /*inMonth*/,
    -
    19974  0 /*onDayOfWeek*/,
    -
    19975  1 /*onDayOfMonth*/,
    -
    19976  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19977  0 /*atTimeCode (0/15)*/,
    -
    19978  0 /*deltaMinutes*/,
    -
    19979  0 /*letterIndex ("")*/,
    -
    19980  },
    -
    19981  // Rule Para 1975 1988 - Oct 1 0:00 1:00 -
    -
    19982  {
    -
    19983  1975 /*fromYear*/,
    -
    19984  1988 /*toYear*/,
    -
    19985  10 /*inMonth*/,
    -
    19986  0 /*onDayOfWeek*/,
    -
    19987  1 /*onDayOfMonth*/,
    -
    19988  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    19989  0 /*atTimeCode (0/15)*/,
    -
    19990  60 /*deltaMinutes*/,
    -
    19991  0 /*letterIndex ("")*/,
    -
    19992  },
    -
    19993  // Rule Para 1975 1978 - Mar 1 0:00 0 -
    -
    19994  {
    -
    19995  1975 /*fromYear*/,
    -
    19996  1978 /*toYear*/,
    -
    19997  3 /*inMonth*/,
    -
    19998  0 /*onDayOfWeek*/,
    -
    19999  1 /*onDayOfMonth*/,
    -
    20000  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20001  0 /*atTimeCode (0/15)*/,
    -
    20002  0 /*deltaMinutes*/,
    -
    20003  0 /*letterIndex ("")*/,
    -
    20004  },
    -
    20005  // Rule Para 1979 1991 - Apr 1 0:00 0 -
    -
    20006  {
    -
    20007  1979 /*fromYear*/,
    -
    20008  1991 /*toYear*/,
    -
    20009  4 /*inMonth*/,
    -
    20010  0 /*onDayOfWeek*/,
    -
    20011  1 /*onDayOfMonth*/,
    -
    20012  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20013  0 /*atTimeCode (0/15)*/,
    -
    20014  0 /*deltaMinutes*/,
    -
    20015  0 /*letterIndex ("")*/,
    -
    20016  },
    -
    20017  // Rule Para 1989 only - Oct 22 0:00 1:00 -
    -
    20018  {
    -
    20019  1989 /*fromYear*/,
    -
    20020  1989 /*toYear*/,
    -
    20021  10 /*inMonth*/,
    -
    20022  0 /*onDayOfWeek*/,
    -
    20023  22 /*onDayOfMonth*/,
    -
    20024  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20025  0 /*atTimeCode (0/15)*/,
    -
    20026  60 /*deltaMinutes*/,
    -
    20027  0 /*letterIndex ("")*/,
    -
    20028  },
    -
    20029  // Rule Para 1990 only - Oct 1 0:00 1:00 -
    -
    20030  {
    -
    20031  1990 /*fromYear*/,
    -
    20032  1990 /*toYear*/,
    -
    20033  10 /*inMonth*/,
    -
    20034  0 /*onDayOfWeek*/,
    -
    20035  1 /*onDayOfMonth*/,
    -
    20036  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20037  0 /*atTimeCode (0/15)*/,
    -
    20038  60 /*deltaMinutes*/,
    -
    20039  0 /*letterIndex ("")*/,
    -
    20040  },
    -
    20041  // Rule Para 1991 only - Oct 6 0:00 1:00 -
    -
    20042  {
    -
    20043  1991 /*fromYear*/,
    -
    20044  1991 /*toYear*/,
    -
    20045  10 /*inMonth*/,
    -
    20046  0 /*onDayOfWeek*/,
    -
    20047  6 /*onDayOfMonth*/,
    -
    20048  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20049  0 /*atTimeCode (0/15)*/,
    -
    20050  60 /*deltaMinutes*/,
    -
    20051  0 /*letterIndex ("")*/,
    -
    20052  },
    -
    20053  // Rule Para 1992 only - Mar 1 0:00 0 -
    -
    20054  {
    -
    20055  1992 /*fromYear*/,
    -
    20056  1992 /*toYear*/,
    -
    20057  3 /*inMonth*/,
    -
    20058  0 /*onDayOfWeek*/,
    -
    20059  1 /*onDayOfMonth*/,
    -
    20060  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20061  0 /*atTimeCode (0/15)*/,
    -
    20062  0 /*deltaMinutes*/,
    -
    20063  0 /*letterIndex ("")*/,
    -
    20064  },
    -
    20065  // Rule Para 1992 only - Oct 5 0:00 1:00 -
    -
    20066  {
    -
    20067  1992 /*fromYear*/,
    -
    20068  1992 /*toYear*/,
    -
    20069  10 /*inMonth*/,
    -
    20070  0 /*onDayOfWeek*/,
    -
    20071  5 /*onDayOfMonth*/,
    -
    20072  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20073  0 /*atTimeCode (0/15)*/,
    -
    20074  60 /*deltaMinutes*/,
    -
    20075  0 /*letterIndex ("")*/,
    -
    20076  },
    -
    20077  // Rule Para 1993 only - Mar 31 0:00 0 -
    -
    20078  {
    -
    20079  1993 /*fromYear*/,
    -
    20080  1993 /*toYear*/,
    -
    20081  3 /*inMonth*/,
    -
    20082  0 /*onDayOfWeek*/,
    -
    20083  31 /*onDayOfMonth*/,
    -
    20084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20085  0 /*atTimeCode (0/15)*/,
    -
    20086  0 /*deltaMinutes*/,
    -
    20087  0 /*letterIndex ("")*/,
    -
    20088  },
    -
    20089  // Rule Para 1993 1995 - Oct 1 0:00 1:00 -
    -
    20090  {
    -
    20091  1993 /*fromYear*/,
    -
    20092  1995 /*toYear*/,
    -
    20093  10 /*inMonth*/,
    -
    20094  0 /*onDayOfWeek*/,
    -
    20095  1 /*onDayOfMonth*/,
    -
    20096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20097  0 /*atTimeCode (0/15)*/,
    -
    20098  60 /*deltaMinutes*/,
    -
    20099  0 /*letterIndex ("")*/,
    -
    20100  },
    -
    20101  // Rule Para 1994 1995 - Feb lastSun 0:00 0 -
    -
    20102  {
    -
    20103  1994 /*fromYear*/,
    -
    20104  1995 /*toYear*/,
    -
    20105  2 /*inMonth*/,
    -
    20106  7 /*onDayOfWeek*/,
    -
    20107  0 /*onDayOfMonth*/,
    -
    20108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20109  0 /*atTimeCode (0/15)*/,
    -
    20110  0 /*deltaMinutes*/,
    -
    20111  0 /*letterIndex ("")*/,
    -
    20112  },
    -
    20113  // Rule Para 1996 only - Mar 1 0:00 0 -
    -
    20114  {
    -
    20115  1996 /*fromYear*/,
    -
    20116  1996 /*toYear*/,
    -
    20117  3 /*inMonth*/,
    -
    20118  0 /*onDayOfWeek*/,
    -
    20119  1 /*onDayOfMonth*/,
    -
    20120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20121  0 /*atTimeCode (0/15)*/,
    -
    20122  0 /*deltaMinutes*/,
    -
    20123  0 /*letterIndex ("")*/,
    -
    20124  },
    -
    20125  // Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 -
    -
    20126  {
    -
    20127  1996 /*fromYear*/,
    -
    20128  2001 /*toYear*/,
    -
    20129  10 /*inMonth*/,
    -
    20130  7 /*onDayOfWeek*/,
    -
    20131  1 /*onDayOfMonth*/,
    -
    20132  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20133  0 /*atTimeCode (0/15)*/,
    -
    20134  60 /*deltaMinutes*/,
    -
    20135  0 /*letterIndex ("")*/,
    -
    20136  },
    -
    20137  // Rule Para 1997 only - Feb lastSun 0:00 0 -
    -
    20138  {
    -
    20139  1997 /*fromYear*/,
    -
    20140  1997 /*toYear*/,
    -
    20141  2 /*inMonth*/,
    -
    20142  7 /*onDayOfWeek*/,
    -
    20143  0 /*onDayOfMonth*/,
    -
    20144  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20145  0 /*atTimeCode (0/15)*/,
    -
    20146  0 /*deltaMinutes*/,
    -
    20147  0 /*letterIndex ("")*/,
    -
    20148  },
    -
    20149  // Rule Para 1998 2001 - Mar Sun>=1 0:00 0 -
    -
    20150  {
    -
    20151  1998 /*fromYear*/,
    -
    20152  2001 /*toYear*/,
    -
    20153  3 /*inMonth*/,
    -
    20154  7 /*onDayOfWeek*/,
    -
    20155  1 /*onDayOfMonth*/,
    -
    20156  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20157  0 /*atTimeCode (0/15)*/,
    -
    20158  0 /*deltaMinutes*/,
    -
    20159  0 /*letterIndex ("")*/,
    -
    20160  },
    -
    20161  // Rule Para 2002 2004 - Apr Sun>=1 0:00 0 -
    -
    20162  {
    -
    20163  2002 /*fromYear*/,
    -
    20164  2004 /*toYear*/,
    -
    20165  4 /*inMonth*/,
    -
    20166  7 /*onDayOfWeek*/,
    -
    20167  1 /*onDayOfMonth*/,
    -
    20168  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20169  0 /*atTimeCode (0/15)*/,
    -
    20170  0 /*deltaMinutes*/,
    -
    20171  0 /*letterIndex ("")*/,
    -
    20172  },
    -
    20173  // Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 -
    -
    20174  {
    -
    20175  2002 /*fromYear*/,
    -
    20176  2003 /*toYear*/,
    -
    20177  9 /*inMonth*/,
    -
    20178  7 /*onDayOfWeek*/,
    -
    20179  1 /*onDayOfMonth*/,
    -
    20180  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20181  0 /*atTimeCode (0/15)*/,
    -
    20182  60 /*deltaMinutes*/,
    -
    20183  0 /*letterIndex ("")*/,
    -
    20184  },
    -
    20185  // Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 -
    -
    20186  {
    -
    20187  2004 /*fromYear*/,
    -
    20188  2009 /*toYear*/,
    -
    20189  10 /*inMonth*/,
    -
    20190  7 /*onDayOfWeek*/,
    -
    20191  15 /*onDayOfMonth*/,
    -
    20192  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20193  0 /*atTimeCode (0/15)*/,
    -
    20194  60 /*deltaMinutes*/,
    -
    20195  0 /*letterIndex ("")*/,
    -
    20196  },
    -
    20197  // Rule Para 2005 2009 - Mar Sun>=8 0:00 0 -
    -
    20198  {
    -
    20199  2005 /*fromYear*/,
    -
    20200  2009 /*toYear*/,
    -
    20201  3 /*inMonth*/,
    -
    20202  7 /*onDayOfWeek*/,
    -
    20203  8 /*onDayOfMonth*/,
    -
    20204  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20205  0 /*atTimeCode (0/15)*/,
    -
    20206  0 /*deltaMinutes*/,
    -
    20207  0 /*letterIndex ("")*/,
    -
    20208  },
    -
    20209  // Rule Para 2010 2024 - Oct Sun>=1 0:00 1:00 -
    -
    20210  {
    -
    20211  2010 /*fromYear*/,
    -
    20212  2024 /*toYear*/,
    -
    20213  10 /*inMonth*/,
    -
    20214  7 /*onDayOfWeek*/,
    -
    20215  1 /*onDayOfMonth*/,
    -
    20216  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20217  0 /*atTimeCode (0/15)*/,
    -
    20218  60 /*deltaMinutes*/,
    -
    20219  0 /*letterIndex ("")*/,
    -
    20220  },
    -
    20221  // Rule Para 2010 2012 - Apr Sun>=8 0:00 0 -
    -
    20222  {
    -
    20223  2010 /*fromYear*/,
    -
    20224  2012 /*toYear*/,
    -
    20225  4 /*inMonth*/,
    -
    20226  7 /*onDayOfWeek*/,
    -
    20227  8 /*onDayOfMonth*/,
    -
    20228  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20229  0 /*atTimeCode (0/15)*/,
    -
    20230  0 /*deltaMinutes*/,
    -
    20231  0 /*letterIndex ("")*/,
    -
    20232  },
    -
    20233  // Rule Para 2013 2024 - Mar Sun>=22 0:00 0 -
    -
    20234  {
    -
    20235  2013 /*fromYear*/,
    -
    20236  2024 /*toYear*/,
    -
    20237  3 /*inMonth*/,
    -
    20238  7 /*onDayOfWeek*/,
    -
    20239  22 /*onDayOfMonth*/,
    -
    20240  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20241  0 /*atTimeCode (0/15)*/,
    -
    20242  0 /*deltaMinutes*/,
    -
    20243  0 /*letterIndex ("")*/,
    -
    20244  },
    -
    20245 
    -
    20246 };
    -
    20247 
    -
    20248 const complete::Info::ZonePolicy kZonePolicyPara ACE_TIME_PROGMEM = {
    -
    20249  kZoneRulesPara /*rules*/,
    -
    20250  23 /*numRules*/,
    -
    20251 };
    -
    20252 
    -
    20253 //---------------------------------------------------------------------------
    -
    20254 // Policy name: Perry
    -
    20255 // Rules: 5
    -
    20256 //---------------------------------------------------------------------------
    -
    20257 
    -
    20258 static const complete::Info::ZoneRule kZoneRulesPerry[] ACE_TIME_PROGMEM = {
    -
    20259  // Anchor: Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
    -
    20260  {
    -
    20261  -32767 /*fromYear*/,
    -
    20262  -32767 /*toYear*/,
    -
    20263  1 /*inMonth*/,
    -
    20264  0 /*onDayOfWeek*/,
    -
    20265  1 /*onDayOfMonth*/,
    -
    20266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20267  0 /*atTimeCode (0/15)*/,
    -
    20268  0 /*deltaMinutes*/,
    -
    20269  25 /*letterIndex ("S")*/,
    -
    20270  },
    -
    20271  // Rule Perry 1955 only - May 1 0:00 1:00 D
    -
    20272  {
    -
    20273  1955 /*fromYear*/,
    -
    20274  1955 /*toYear*/,
    -
    20275  5 /*inMonth*/,
    -
    20276  0 /*onDayOfWeek*/,
    -
    20277  1 /*onDayOfMonth*/,
    -
    20278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20279  0 /*atTimeCode (0/15)*/,
    -
    20280  60 /*deltaMinutes*/,
    -
    20281  13 /*letterIndex ("D")*/,
    -
    20282  },
    -
    20283  // Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
    -
    20284  {
    -
    20285  1955 /*fromYear*/,
    -
    20286  1960 /*toYear*/,
    -
    20287  9 /*inMonth*/,
    -
    20288  7 /*onDayOfWeek*/,
    -
    20289  0 /*onDayOfMonth*/,
    -
    20290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20291  480 /*atTimeCode (7200/15)*/,
    -
    20292  0 /*deltaMinutes*/,
    -
    20293  25 /*letterIndex ("S")*/,
    -
    20294  },
    -
    20295  // Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D
    -
    20296  {
    -
    20297  1956 /*fromYear*/,
    -
    20298  1963 /*toYear*/,
    -
    20299  4 /*inMonth*/,
    -
    20300  7 /*onDayOfWeek*/,
    -
    20301  0 /*onDayOfMonth*/,
    -
    20302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20303  480 /*atTimeCode (7200/15)*/,
    -
    20304  60 /*deltaMinutes*/,
    -
    20305  13 /*letterIndex ("D")*/,
    -
    20306  },
    -
    20307  // Rule Perry 1961 1963 - Oct lastSun 2:00 0 S
    -
    20308  {
    -
    20309  1961 /*fromYear*/,
    -
    20310  1963 /*toYear*/,
    -
    20311  10 /*inMonth*/,
    -
    20312  7 /*onDayOfWeek*/,
    -
    20313  0 /*onDayOfMonth*/,
    -
    20314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20315  480 /*atTimeCode (7200/15)*/,
    -
    20316  0 /*deltaMinutes*/,
    -
    20317  25 /*letterIndex ("S")*/,
    -
    20318  },
    -
    20319 
    -
    20320 };
    -
    20321 
    -
    20322 const complete::Info::ZonePolicy kZonePolicyPerry ACE_TIME_PROGMEM = {
    -
    20323  kZoneRulesPerry /*rules*/,
    -
    20324  5 /*numRules*/,
    -
    20325 };
    -
    20326 
    -
    20327 //---------------------------------------------------------------------------
    -
    20328 // Policy name: Peru
    -
    20329 // Rules: 11
    -
    20330 //---------------------------------------------------------------------------
    -
    20331 
    -
    20332 static const complete::Info::ZoneRule kZoneRulesPeru[] ACE_TIME_PROGMEM = {
    -
    20333  // Anchor: Rule Peru 1938 only - Apr 1 0:00 0 -
    -
    20334  {
    -
    20335  -32767 /*fromYear*/,
    -
    20336  -32767 /*toYear*/,
    -
    20337  1 /*inMonth*/,
    -
    20338  0 /*onDayOfWeek*/,
    -
    20339  1 /*onDayOfMonth*/,
    -
    20340  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20341  0 /*atTimeCode (0/15)*/,
    -
    20342  0 /*deltaMinutes*/,
    -
    20343  0 /*letterIndex ("")*/,
    -
    20344  },
    -
    20345  // Rule Peru 1938 only - Jan 1 0:00 1:00 -
    -
    20346  {
    -
    20347  1938 /*fromYear*/,
    -
    20348  1938 /*toYear*/,
    -
    20349  1 /*inMonth*/,
    -
    20350  0 /*onDayOfWeek*/,
    -
    20351  1 /*onDayOfMonth*/,
    -
    20352  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20353  0 /*atTimeCode (0/15)*/,
    -
    20354  60 /*deltaMinutes*/,
    -
    20355  0 /*letterIndex ("")*/,
    -
    20356  },
    -
    20357  // Rule Peru 1938 only - Apr 1 0:00 0 -
    -
    20358  {
    -
    20359  1938 /*fromYear*/,
    -
    20360  1938 /*toYear*/,
    -
    20361  4 /*inMonth*/,
    -
    20362  0 /*onDayOfWeek*/,
    -
    20363  1 /*onDayOfMonth*/,
    -
    20364  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20365  0 /*atTimeCode (0/15)*/,
    -
    20366  0 /*deltaMinutes*/,
    -
    20367  0 /*letterIndex ("")*/,
    -
    20368  },
    -
    20369  // Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 -
    -
    20370  {
    -
    20371  1938 /*fromYear*/,
    -
    20372  1939 /*toYear*/,
    -
    20373  9 /*inMonth*/,
    -
    20374  7 /*onDayOfWeek*/,
    -
    20375  0 /*onDayOfMonth*/,
    -
    20376  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20377  0 /*atTimeCode (0/15)*/,
    -
    20378  60 /*deltaMinutes*/,
    -
    20379  0 /*letterIndex ("")*/,
    -
    20380  },
    -
    20381  // Rule Peru 1939 1940 - Mar Sun>=24 0:00 0 -
    -
    20382  {
    -
    20383  1939 /*fromYear*/,
    -
    20384  1940 /*toYear*/,
    -
    20385  3 /*inMonth*/,
    -
    20386  7 /*onDayOfWeek*/,
    -
    20387  24 /*onDayOfMonth*/,
    -
    20388  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20389  0 /*atTimeCode (0/15)*/,
    -
    20390  0 /*deltaMinutes*/,
    -
    20391  0 /*letterIndex ("")*/,
    -
    20392  },
    -
    20393  // Rule Peru 1986 1987 - Jan 1 0:00 1:00 -
    -
    20394  {
    -
    20395  1986 /*fromYear*/,
    -
    20396  1987 /*toYear*/,
    -
    20397  1 /*inMonth*/,
    -
    20398  0 /*onDayOfWeek*/,
    -
    20399  1 /*onDayOfMonth*/,
    -
    20400  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20401  0 /*atTimeCode (0/15)*/,
    -
    20402  60 /*deltaMinutes*/,
    -
    20403  0 /*letterIndex ("")*/,
    -
    20404  },
    -
    20405  // Rule Peru 1986 1987 - Apr 1 0:00 0 -
    -
    20406  {
    -
    20407  1986 /*fromYear*/,
    -
    20408  1987 /*toYear*/,
    -
    20409  4 /*inMonth*/,
    -
    20410  0 /*onDayOfWeek*/,
    -
    20411  1 /*onDayOfMonth*/,
    -
    20412  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20413  0 /*atTimeCode (0/15)*/,
    -
    20414  0 /*deltaMinutes*/,
    -
    20415  0 /*letterIndex ("")*/,
    -
    20416  },
    -
    20417  // Rule Peru 1990 only - Jan 1 0:00 1:00 -
    -
    20418  {
    -
    20419  1990 /*fromYear*/,
    -
    20420  1990 /*toYear*/,
    -
    20421  1 /*inMonth*/,
    -
    20422  0 /*onDayOfWeek*/,
    -
    20423  1 /*onDayOfMonth*/,
    -
    20424  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20425  0 /*atTimeCode (0/15)*/,
    -
    20426  60 /*deltaMinutes*/,
    -
    20427  0 /*letterIndex ("")*/,
    -
    20428  },
    -
    20429  // Rule Peru 1990 only - Apr 1 0:00 0 -
    -
    20430  {
    -
    20431  1990 /*fromYear*/,
    -
    20432  1990 /*toYear*/,
    -
    20433  4 /*inMonth*/,
    -
    20434  0 /*onDayOfWeek*/,
    -
    20435  1 /*onDayOfMonth*/,
    -
    20436  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20437  0 /*atTimeCode (0/15)*/,
    -
    20438  0 /*deltaMinutes*/,
    -
    20439  0 /*letterIndex ("")*/,
    -
    20440  },
    -
    20441  // Rule Peru 1994 only - Jan 1 0:00 1:00 -
    -
    20442  {
    -
    20443  1994 /*fromYear*/,
    -
    20444  1994 /*toYear*/,
    -
    20445  1 /*inMonth*/,
    -
    20446  0 /*onDayOfWeek*/,
    -
    20447  1 /*onDayOfMonth*/,
    -
    20448  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20449  0 /*atTimeCode (0/15)*/,
    -
    20450  60 /*deltaMinutes*/,
    -
    20451  0 /*letterIndex ("")*/,
    -
    20452  },
    -
    20453  // Rule Peru 1994 only - Apr 1 0:00 0 -
    -
    20454  {
    -
    20455  1994 /*fromYear*/,
    -
    20456  1994 /*toYear*/,
    -
    20457  4 /*inMonth*/,
    -
    20458  0 /*onDayOfWeek*/,
    -
    20459  1 /*onDayOfMonth*/,
    -
    20460  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20461  0 /*atTimeCode (0/15)*/,
    -
    20462  0 /*deltaMinutes*/,
    -
    20463  0 /*letterIndex ("")*/,
    -
    20464  },
    -
    20465 
    -
    20466 };
    -
    20467 
    -
    20468 const complete::Info::ZonePolicy kZonePolicyPeru ACE_TIME_PROGMEM = {
    -
    20469  kZoneRulesPeru /*rules*/,
    -
    20470  11 /*numRules*/,
    -
    20471 };
    -
    20472 
    -
    20473 //---------------------------------------------------------------------------
    -
    20474 // Policy name: Phil
    -
    20475 // Rules: 11
    -
    20476 //---------------------------------------------------------------------------
    -
    20477 
    -
    20478 static const complete::Info::ZoneRule kZoneRulesPhil[] ACE_TIME_PROGMEM = {
    -
    20479  // Anchor: Rule Phil 1937 only - Jan 15 24:00 0 S
    -
    20480  {
    -
    20481  -32767 /*fromYear*/,
    -
    20482  -32767 /*toYear*/,
    -
    20483  1 /*inMonth*/,
    -
    20484  0 /*onDayOfWeek*/,
    -
    20485  1 /*onDayOfMonth*/,
    -
    20486  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20487  0 /*atTimeCode (0/15)*/,
    -
    20488  0 /*deltaMinutes*/,
    -
    20489  25 /*letterIndex ("S")*/,
    -
    20490  },
    -
    20491  // Rule Phil 1936 only - Oct 31 24:00 1:00 D
    -
    20492  {
    -
    20493  1936 /*fromYear*/,
    -
    20494  1936 /*toYear*/,
    -
    20495  10 /*inMonth*/,
    -
    20496  0 /*onDayOfWeek*/,
    -
    20497  31 /*onDayOfMonth*/,
    -
    20498  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20499  5760 /*atTimeCode (86400/15)*/,
    -
    20500  60 /*deltaMinutes*/,
    -
    20501  13 /*letterIndex ("D")*/,
    -
    20502  },
    -
    20503  // Rule Phil 1937 only - Jan 15 24:00 0 S
    -
    20504  {
    -
    20505  1937 /*fromYear*/,
    -
    20506  1937 /*toYear*/,
    -
    20507  1 /*inMonth*/,
    -
    20508  0 /*onDayOfWeek*/,
    -
    20509  15 /*onDayOfMonth*/,
    -
    20510  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20511  5760 /*atTimeCode (86400/15)*/,
    -
    20512  0 /*deltaMinutes*/,
    -
    20513  25 /*letterIndex ("S")*/,
    -
    20514  },
    -
    20515  // Rule Phil 1941 only - Dec 15 24:00 1:00 D
    -
    20516  {
    -
    20517  1941 /*fromYear*/,
    -
    20518  1941 /*toYear*/,
    -
    20519  12 /*inMonth*/,
    -
    20520  0 /*onDayOfWeek*/,
    -
    20521  15 /*onDayOfMonth*/,
    -
    20522  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20523  5760 /*atTimeCode (86400/15)*/,
    -
    20524  60 /*deltaMinutes*/,
    -
    20525  13 /*letterIndex ("D")*/,
    -
    20526  },
    -
    20527  // Rule Phil 1945 only - Nov 30 24:00 0 S
    -
    20528  {
    -
    20529  1945 /*fromYear*/,
    -
    20530  1945 /*toYear*/,
    -
    20531  11 /*inMonth*/,
    -
    20532  0 /*onDayOfWeek*/,
    -
    20533  30 /*onDayOfMonth*/,
    -
    20534  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20535  5760 /*atTimeCode (86400/15)*/,
    -
    20536  0 /*deltaMinutes*/,
    -
    20537  25 /*letterIndex ("S")*/,
    -
    20538  },
    -
    20539  // Rule Phil 1954 only - Apr 11 24:00 1:00 D
    -
    20540  {
    -
    20541  1954 /*fromYear*/,
    -
    20542  1954 /*toYear*/,
    -
    20543  4 /*inMonth*/,
    -
    20544  0 /*onDayOfWeek*/,
    -
    20545  11 /*onDayOfMonth*/,
    -
    20546  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20547  5760 /*atTimeCode (86400/15)*/,
    -
    20548  60 /*deltaMinutes*/,
    -
    20549  13 /*letterIndex ("D")*/,
    -
    20550  },
    -
    20551  // Rule Phil 1954 only - Jun 4 24:00 0 S
    -
    20552  {
    -
    20553  1954 /*fromYear*/,
    -
    20554  1954 /*toYear*/,
    -
    20555  6 /*inMonth*/,
    -
    20556  0 /*onDayOfWeek*/,
    -
    20557  4 /*onDayOfMonth*/,
    -
    20558  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20559  5760 /*atTimeCode (86400/15)*/,
    -
    20560  0 /*deltaMinutes*/,
    -
    20561  25 /*letterIndex ("S")*/,
    -
    20562  },
    -
    20563  // Rule Phil 1977 only - Mar 27 24:00 1:00 D
    -
    20564  {
    -
    20565  1977 /*fromYear*/,
    -
    20566  1977 /*toYear*/,
    -
    20567  3 /*inMonth*/,
    -
    20568  0 /*onDayOfWeek*/,
    -
    20569  27 /*onDayOfMonth*/,
    -
    20570  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20571  5760 /*atTimeCode (86400/15)*/,
    -
    20572  60 /*deltaMinutes*/,
    -
    20573  13 /*letterIndex ("D")*/,
    -
    20574  },
    -
    20575  // Rule Phil 1977 only - Sep 21 24:00 0 S
    -
    20576  {
    -
    20577  1977 /*fromYear*/,
    -
    20578  1977 /*toYear*/,
    -
    20579  9 /*inMonth*/,
    -
    20580  0 /*onDayOfWeek*/,
    -
    20581  21 /*onDayOfMonth*/,
    -
    20582  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20583  5760 /*atTimeCode (86400/15)*/,
    -
    20584  0 /*deltaMinutes*/,
    -
    20585  25 /*letterIndex ("S")*/,
    -
    20586  },
    -
    20587  // Rule Phil 1990 only - May 21 0:00 1:00 D
    -
    20588  {
    -
    20589  1990 /*fromYear*/,
    -
    20590  1990 /*toYear*/,
    -
    20591  5 /*inMonth*/,
    -
    20592  0 /*onDayOfWeek*/,
    -
    20593  21 /*onDayOfMonth*/,
    -
    20594  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20595  0 /*atTimeCode (0/15)*/,
    -
    20596  60 /*deltaMinutes*/,
    -
    20597  13 /*letterIndex ("D")*/,
    -
    20598  },
    -
    20599  // Rule Phil 1990 only - Jul 28 24:00 0 S
    -
    20600  {
    -
    20601  1990 /*fromYear*/,
    -
    20602  1990 /*toYear*/,
    -
    20603  7 /*inMonth*/,
    -
    20604  0 /*onDayOfWeek*/,
    -
    20605  28 /*onDayOfMonth*/,
    -
    20606  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20607  5760 /*atTimeCode (86400/15)*/,
    -
    20608  0 /*deltaMinutes*/,
    -
    20609  25 /*letterIndex ("S")*/,
    -
    20610  },
    -
    20611 
    -
    20612 };
    -
    20613 
    -
    20614 const complete::Info::ZonePolicy kZonePolicyPhil ACE_TIME_PROGMEM = {
    -
    20615  kZoneRulesPhil /*rules*/,
    -
    20616  11 /*numRules*/,
    -
    20617 };
    -
    20618 
    -
    20619 //---------------------------------------------------------------------------
    -
    20620 // Policy name: Pike
    -
    20621 // Rules: 5
    -
    20622 //---------------------------------------------------------------------------
    -
    20623 
    -
    20624 static const complete::Info::ZoneRule kZoneRulesPike[] ACE_TIME_PROGMEM = {
    -
    20625  // Anchor: Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
    -
    20626  {
    -
    20627  -32767 /*fromYear*/,
    -
    20628  -32767 /*toYear*/,
    -
    20629  1 /*inMonth*/,
    -
    20630  0 /*onDayOfWeek*/,
    -
    20631  1 /*onDayOfMonth*/,
    -
    20632  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20633  0 /*atTimeCode (0/15)*/,
    -
    20634  0 /*deltaMinutes*/,
    -
    20635  25 /*letterIndex ("S")*/,
    -
    20636  },
    -
    20637  // Rule Pike 1955 only - May 1 0:00 1:00 D
    -
    20638  {
    -
    20639  1955 /*fromYear*/,
    -
    20640  1955 /*toYear*/,
    -
    20641  5 /*inMonth*/,
    -
    20642  0 /*onDayOfWeek*/,
    -
    20643  1 /*onDayOfMonth*/,
    -
    20644  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20645  0 /*atTimeCode (0/15)*/,
    -
    20646  60 /*deltaMinutes*/,
    -
    20647  13 /*letterIndex ("D")*/,
    -
    20648  },
    -
    20649  // Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
    -
    20650  {
    -
    20651  1955 /*fromYear*/,
    -
    20652  1960 /*toYear*/,
    -
    20653  9 /*inMonth*/,
    -
    20654  7 /*onDayOfWeek*/,
    -
    20655  0 /*onDayOfMonth*/,
    -
    20656  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20657  480 /*atTimeCode (7200/15)*/,
    -
    20658  0 /*deltaMinutes*/,
    -
    20659  25 /*letterIndex ("S")*/,
    -
    20660  },
    -
    20661  // Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D
    -
    20662  {
    -
    20663  1956 /*fromYear*/,
    -
    20664  1964 /*toYear*/,
    -
    20665  4 /*inMonth*/,
    -
    20666  7 /*onDayOfWeek*/,
    -
    20667  0 /*onDayOfMonth*/,
    -
    20668  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20669  480 /*atTimeCode (7200/15)*/,
    -
    20670  60 /*deltaMinutes*/,
    -
    20671  13 /*letterIndex ("D")*/,
    -
    20672  },
    -
    20673  // Rule Pike 1961 1964 - Oct lastSun 2:00 0 S
    -
    20674  {
    -
    20675  1961 /*fromYear*/,
    -
    20676  1964 /*toYear*/,
    -
    20677  10 /*inMonth*/,
    -
    20678  7 /*onDayOfWeek*/,
    -
    20679  0 /*onDayOfMonth*/,
    -
    20680  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20681  480 /*atTimeCode (7200/15)*/,
    -
    20682  0 /*deltaMinutes*/,
    -
    20683  25 /*letterIndex ("S")*/,
    -
    20684  },
    -
    20685 
    -
    20686 };
    -
    20687 
    -
    20688 const complete::Info::ZonePolicy kZonePolicyPike ACE_TIME_PROGMEM = {
    -
    20689  kZoneRulesPike /*rules*/,
    -
    20690  5 /*numRules*/,
    -
    20691 };
    -
    20692 
    -
    20693 //---------------------------------------------------------------------------
    -
    20694 // Policy name: Poland
    -
    20695 // Rules: 21
    -
    20696 //---------------------------------------------------------------------------
    -
    20697 
    -
    20698 static const complete::Info::ZoneRule kZoneRulesPoland[] ACE_TIME_PROGMEM = {
    -
    20699  // Anchor: Rule Poland 1918 1919 - Sep 16 2:00s 0 -
    -
    20700  {
    -
    20701  -32767 /*fromYear*/,
    -
    20702  -32767 /*toYear*/,
    -
    20703  1 /*inMonth*/,
    -
    20704  0 /*onDayOfWeek*/,
    -
    20705  1 /*onDayOfMonth*/,
    -
    20706  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20707  0 /*atTimeCode (0/15)*/,
    -
    20708  0 /*deltaMinutes*/,
    -
    20709  0 /*letterIndex ("")*/,
    -
    20710  },
    -
    20711  // Rule Poland 1918 1919 - Sep 16 2:00s 0 -
    -
    20712  {
    -
    20713  1918 /*fromYear*/,
    -
    20714  1919 /*toYear*/,
    -
    20715  9 /*inMonth*/,
    -
    20716  0 /*onDayOfWeek*/,
    -
    20717  16 /*onDayOfMonth*/,
    -
    20718  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20719  480 /*atTimeCode (7200/15)*/,
    -
    20720  0 /*deltaMinutes*/,
    -
    20721  0 /*letterIndex ("")*/,
    -
    20722  },
    -
    20723  // Rule Poland 1919 only - Apr 15 2:00s 1:00 S
    -
    20724  {
    -
    20725  1919 /*fromYear*/,
    -
    20726  1919 /*toYear*/,
    -
    20727  4 /*inMonth*/,
    -
    20728  0 /*onDayOfWeek*/,
    -
    20729  15 /*onDayOfMonth*/,
    -
    20730  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20731  480 /*atTimeCode (7200/15)*/,
    -
    20732  60 /*deltaMinutes*/,
    -
    20733  25 /*letterIndex ("S")*/,
    -
    20734  },
    -
    20735  // Rule Poland 1944 only - Apr 3 2:00s 1:00 S
    -
    20736  {
    -
    20737  1944 /*fromYear*/,
    -
    20738  1944 /*toYear*/,
    -
    20739  4 /*inMonth*/,
    -
    20740  0 /*onDayOfWeek*/,
    -
    20741  3 /*onDayOfMonth*/,
    -
    20742  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20743  480 /*atTimeCode (7200/15)*/,
    -
    20744  60 /*deltaMinutes*/,
    -
    20745  25 /*letterIndex ("S")*/,
    -
    20746  },
    -
    20747  // Rule Poland 1944 only - Oct 4 2:00 0 -
    -
    20748  {
    -
    20749  1944 /*fromYear*/,
    -
    20750  1944 /*toYear*/,
    -
    20751  10 /*inMonth*/,
    -
    20752  0 /*onDayOfWeek*/,
    -
    20753  4 /*onDayOfMonth*/,
    -
    20754  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20755  480 /*atTimeCode (7200/15)*/,
    -
    20756  0 /*deltaMinutes*/,
    -
    20757  0 /*letterIndex ("")*/,
    -
    20758  },
    -
    20759  // Rule Poland 1945 only - Apr 29 0:00 1:00 S
    -
    20760  {
    -
    20761  1945 /*fromYear*/,
    -
    20762  1945 /*toYear*/,
    -
    20763  4 /*inMonth*/,
    -
    20764  0 /*onDayOfWeek*/,
    -
    20765  29 /*onDayOfMonth*/,
    -
    20766  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20767  0 /*atTimeCode (0/15)*/,
    -
    20768  60 /*deltaMinutes*/,
    -
    20769  25 /*letterIndex ("S")*/,
    -
    20770  },
    -
    20771  // Rule Poland 1945 only - Nov 1 0:00 0 -
    -
    20772  {
    -
    20773  1945 /*fromYear*/,
    -
    20774  1945 /*toYear*/,
    -
    20775  11 /*inMonth*/,
    -
    20776  0 /*onDayOfWeek*/,
    -
    20777  1 /*onDayOfMonth*/,
    -
    20778  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20779  0 /*atTimeCode (0/15)*/,
    -
    20780  0 /*deltaMinutes*/,
    -
    20781  0 /*letterIndex ("")*/,
    -
    20782  },
    -
    20783  // Rule Poland 1946 only - Apr 14 0:00s 1:00 S
    -
    20784  {
    -
    20785  1946 /*fromYear*/,
    -
    20786  1946 /*toYear*/,
    -
    20787  4 /*inMonth*/,
    -
    20788  0 /*onDayOfWeek*/,
    -
    20789  14 /*onDayOfMonth*/,
    -
    20790  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20791  0 /*atTimeCode (0/15)*/,
    -
    20792  60 /*deltaMinutes*/,
    -
    20793  25 /*letterIndex ("S")*/,
    -
    20794  },
    -
    20795  // Rule Poland 1946 only - Oct 7 2:00s 0 -
    -
    20796  {
    -
    20797  1946 /*fromYear*/,
    -
    20798  1946 /*toYear*/,
    -
    20799  10 /*inMonth*/,
    -
    20800  0 /*onDayOfWeek*/,
    -
    20801  7 /*onDayOfMonth*/,
    -
    20802  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20803  480 /*atTimeCode (7200/15)*/,
    -
    20804  0 /*deltaMinutes*/,
    -
    20805  0 /*letterIndex ("")*/,
    -
    20806  },
    -
    20807  // Rule Poland 1947 only - May 4 2:00s 1:00 S
    -
    20808  {
    -
    20809  1947 /*fromYear*/,
    -
    20810  1947 /*toYear*/,
    -
    20811  5 /*inMonth*/,
    -
    20812  0 /*onDayOfWeek*/,
    -
    20813  4 /*onDayOfMonth*/,
    -
    20814  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20815  480 /*atTimeCode (7200/15)*/,
    -
    20816  60 /*deltaMinutes*/,
    -
    20817  25 /*letterIndex ("S")*/,
    -
    20818  },
    -
    20819  // Rule Poland 1947 1949 - Oct Sun>=1 2:00s 0 -
    -
    20820  {
    -
    20821  1947 /*fromYear*/,
    -
    20822  1949 /*toYear*/,
    -
    20823  10 /*inMonth*/,
    -
    20824  7 /*onDayOfWeek*/,
    -
    20825  1 /*onDayOfMonth*/,
    -
    20826  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20827  480 /*atTimeCode (7200/15)*/,
    -
    20828  0 /*deltaMinutes*/,
    -
    20829  0 /*letterIndex ("")*/,
    -
    20830  },
    -
    20831  // Rule Poland 1948 only - Apr 18 2:00s 1:00 S
    -
    20832  {
    -
    20833  1948 /*fromYear*/,
    -
    20834  1948 /*toYear*/,
    -
    20835  4 /*inMonth*/,
    -
    20836  0 /*onDayOfWeek*/,
    -
    20837  18 /*onDayOfMonth*/,
    -
    20838  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20839  480 /*atTimeCode (7200/15)*/,
    -
    20840  60 /*deltaMinutes*/,
    -
    20841  25 /*letterIndex ("S")*/,
    -
    20842  },
    -
    20843  // Rule Poland 1949 only - Apr 10 2:00s 1:00 S
    -
    20844  {
    -
    20845  1949 /*fromYear*/,
    -
    20846  1949 /*toYear*/,
    -
    20847  4 /*inMonth*/,
    -
    20848  0 /*onDayOfWeek*/,
    -
    20849  10 /*onDayOfMonth*/,
    -
    20850  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20851  480 /*atTimeCode (7200/15)*/,
    -
    20852  60 /*deltaMinutes*/,
    -
    20853  25 /*letterIndex ("S")*/,
    -
    20854  },
    -
    20855  // Rule Poland 1957 only - Jun 2 1:00s 1:00 S
    -
    20856  {
    -
    20857  1957 /*fromYear*/,
    -
    20858  1957 /*toYear*/,
    -
    20859  6 /*inMonth*/,
    -
    20860  0 /*onDayOfWeek*/,
    -
    20861  2 /*onDayOfMonth*/,
    -
    20862  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20863  240 /*atTimeCode (3600/15)*/,
    -
    20864  60 /*deltaMinutes*/,
    -
    20865  25 /*letterIndex ("S")*/,
    -
    20866  },
    -
    20867  // Rule Poland 1957 1958 - Sep lastSun 1:00s 0 -
    -
    20868  {
    -
    20869  1957 /*fromYear*/,
    -
    20870  1958 /*toYear*/,
    -
    20871  9 /*inMonth*/,
    -
    20872  7 /*onDayOfWeek*/,
    -
    20873  0 /*onDayOfMonth*/,
    -
    20874  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20875  240 /*atTimeCode (3600/15)*/,
    -
    20876  0 /*deltaMinutes*/,
    -
    20877  0 /*letterIndex ("")*/,
    -
    20878  },
    -
    20879  // Rule Poland 1958 only - Mar 30 1:00s 1:00 S
    -
    20880  {
    -
    20881  1958 /*fromYear*/,
    -
    20882  1958 /*toYear*/,
    -
    20883  3 /*inMonth*/,
    -
    20884  0 /*onDayOfWeek*/,
    -
    20885  30 /*onDayOfMonth*/,
    -
    20886  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20887  240 /*atTimeCode (3600/15)*/,
    -
    20888  60 /*deltaMinutes*/,
    -
    20889  25 /*letterIndex ("S")*/,
    -
    20890  },
    -
    20891  // Rule Poland 1959 only - May 31 1:00s 1:00 S
    -
    20892  {
    -
    20893  1959 /*fromYear*/,
    -
    20894  1959 /*toYear*/,
    -
    20895  5 /*inMonth*/,
    -
    20896  0 /*onDayOfWeek*/,
    -
    20897  31 /*onDayOfMonth*/,
    -
    20898  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20899  240 /*atTimeCode (3600/15)*/,
    -
    20900  60 /*deltaMinutes*/,
    -
    20901  25 /*letterIndex ("S")*/,
    -
    20902  },
    -
    20903  // Rule Poland 1959 1961 - Oct Sun>=1 1:00s 0 -
    -
    20904  {
    -
    20905  1959 /*fromYear*/,
    -
    20906  1961 /*toYear*/,
    -
    20907  10 /*inMonth*/,
    -
    20908  7 /*onDayOfWeek*/,
    -
    20909  1 /*onDayOfMonth*/,
    -
    20910  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20911  240 /*atTimeCode (3600/15)*/,
    -
    20912  0 /*deltaMinutes*/,
    -
    20913  0 /*letterIndex ("")*/,
    -
    20914  },
    -
    20915  // Rule Poland 1960 only - Apr 3 1:00s 1:00 S
    -
    20916  {
    -
    20917  1960 /*fromYear*/,
    -
    20918  1960 /*toYear*/,
    -
    20919  4 /*inMonth*/,
    -
    20920  0 /*onDayOfWeek*/,
    -
    20921  3 /*onDayOfMonth*/,
    -
    20922  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20923  240 /*atTimeCode (3600/15)*/,
    -
    20924  60 /*deltaMinutes*/,
    -
    20925  25 /*letterIndex ("S")*/,
    -
    20926  },
    -
    20927  // Rule Poland 1961 1964 - May lastSun 1:00s 1:00 S
    -
    20928  {
    -
    20929  1961 /*fromYear*/,
    -
    20930  1964 /*toYear*/,
    -
    20931  5 /*inMonth*/,
    -
    20932  7 /*onDayOfWeek*/,
    -
    20933  0 /*onDayOfMonth*/,
    -
    20934  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20935  240 /*atTimeCode (3600/15)*/,
    -
    20936  60 /*deltaMinutes*/,
    -
    20937  25 /*letterIndex ("S")*/,
    -
    20938  },
    -
    20939  // Rule Poland 1962 1964 - Sep lastSun 1:00s 0 -
    -
    20940  {
    -
    20941  1962 /*fromYear*/,
    -
    20942  1964 /*toYear*/,
    -
    20943  9 /*inMonth*/,
    -
    20944  7 /*onDayOfWeek*/,
    -
    20945  0 /*onDayOfMonth*/,
    -
    20946  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    20947  240 /*atTimeCode (3600/15)*/,
    -
    20948  0 /*deltaMinutes*/,
    -
    20949  0 /*letterIndex ("")*/,
    -
    20950  },
    -
    20951 
    -
    20952 };
    -
    20953 
    -
    20954 const complete::Info::ZonePolicy kZonePolicyPoland ACE_TIME_PROGMEM = {
    -
    20955  kZoneRulesPoland /*rules*/,
    -
    20956  21 /*numRules*/,
    -
    20957 };
    -
    20958 
    -
    20959 //---------------------------------------------------------------------------
    -
    20960 // Policy name: Port
    -
    20961 // Rules: 46
    -
    20962 //---------------------------------------------------------------------------
    -
    20963 
    -
    20964 static const complete::Info::ZoneRule kZoneRulesPort[] ACE_TIME_PROGMEM = {
    -
    20965  // Anchor: Rule Port 1916 only - Nov 1 1:00 0 -
    -
    20966  {
    -
    20967  -32767 /*fromYear*/,
    -
    20968  -32767 /*toYear*/,
    -
    20969  1 /*inMonth*/,
    -
    20970  0 /*onDayOfWeek*/,
    -
    20971  1 /*onDayOfMonth*/,
    -
    20972  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20973  0 /*atTimeCode (0/15)*/,
    -
    20974  0 /*deltaMinutes*/,
    -
    20975  0 /*letterIndex ("")*/,
    -
    20976  },
    -
    20977  // Rule Port 1916 only - Jun 17 23:00 1:00 S
    -
    20978  {
    -
    20979  1916 /*fromYear*/,
    -
    20980  1916 /*toYear*/,
    -
    20981  6 /*inMonth*/,
    -
    20982  0 /*onDayOfWeek*/,
    -
    20983  17 /*onDayOfMonth*/,
    -
    20984  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20985  5520 /*atTimeCode (82800/15)*/,
    -
    20986  60 /*deltaMinutes*/,
    -
    20987  25 /*letterIndex ("S")*/,
    -
    20988  },
    -
    20989  // Rule Port 1916 only - Nov 1 1:00 0 -
    -
    20990  {
    -
    20991  1916 /*fromYear*/,
    -
    20992  1916 /*toYear*/,
    -
    20993  11 /*inMonth*/,
    -
    20994  0 /*onDayOfWeek*/,
    -
    20995  1 /*onDayOfMonth*/,
    -
    20996  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    20997  240 /*atTimeCode (3600/15)*/,
    -
    20998  0 /*deltaMinutes*/,
    -
    20999  0 /*letterIndex ("")*/,
    -
    21000  },
    -
    21001  // Rule Port 1917 1921 - Mar 1 0:00 1:00 S
    -
    21002  {
    -
    21003  1917 /*fromYear*/,
    -
    21004  1921 /*toYear*/,
    -
    21005  3 /*inMonth*/,
    -
    21006  0 /*onDayOfWeek*/,
    -
    21007  1 /*onDayOfMonth*/,
    -
    21008  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21009  0 /*atTimeCode (0/15)*/,
    -
    21010  60 /*deltaMinutes*/,
    -
    21011  25 /*letterIndex ("S")*/,
    -
    21012  },
    -
    21013  // Rule Port 1917 1921 - Oct 14 24:00 0 -
    -
    21014  {
    -
    21015  1917 /*fromYear*/,
    -
    21016  1921 /*toYear*/,
    -
    21017  10 /*inMonth*/,
    -
    21018  0 /*onDayOfWeek*/,
    -
    21019  14 /*onDayOfMonth*/,
    -
    21020  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21021  5760 /*atTimeCode (86400/15)*/,
    -
    21022  0 /*deltaMinutes*/,
    -
    21023  0 /*letterIndex ("")*/,
    -
    21024  },
    -
    21025  // Rule Port 1924 only - Apr 16 23:00s 1:00 S
    -
    21026  {
    -
    21027  1924 /*fromYear*/,
    -
    21028  1924 /*toYear*/,
    -
    21029  4 /*inMonth*/,
    -
    21030  0 /*onDayOfWeek*/,
    -
    21031  16 /*onDayOfMonth*/,
    -
    21032  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21033  5520 /*atTimeCode (82800/15)*/,
    -
    21034  60 /*deltaMinutes*/,
    -
    21035  25 /*letterIndex ("S")*/,
    -
    21036  },
    -
    21037  // Rule Port 1924 only - Oct 4 23:00s 0 -
    -
    21038  {
    -
    21039  1924 /*fromYear*/,
    -
    21040  1924 /*toYear*/,
    -
    21041  10 /*inMonth*/,
    -
    21042  0 /*onDayOfWeek*/,
    -
    21043  4 /*onDayOfMonth*/,
    -
    21044  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21045  5520 /*atTimeCode (82800/15)*/,
    -
    21046  0 /*deltaMinutes*/,
    -
    21047  0 /*letterIndex ("")*/,
    -
    21048  },
    -
    21049  // Rule Port 1926 only - Apr 17 23:00s 1:00 S
    -
    21050  {
    -
    21051  1926 /*fromYear*/,
    -
    21052  1926 /*toYear*/,
    -
    21053  4 /*inMonth*/,
    -
    21054  0 /*onDayOfWeek*/,
    -
    21055  17 /*onDayOfMonth*/,
    -
    21056  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21057  5520 /*atTimeCode (82800/15)*/,
    -
    21058  60 /*deltaMinutes*/,
    -
    21059  25 /*letterIndex ("S")*/,
    -
    21060  },
    -
    21061  // Rule Port 1926 1929 - Oct Sat>=1 23:00s 0 -
    -
    21062  {
    -
    21063  1926 /*fromYear*/,
    -
    21064  1929 /*toYear*/,
    -
    21065  10 /*inMonth*/,
    -
    21066  6 /*onDayOfWeek*/,
    -
    21067  1 /*onDayOfMonth*/,
    -
    21068  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21069  5520 /*atTimeCode (82800/15)*/,
    -
    21070  0 /*deltaMinutes*/,
    -
    21071  0 /*letterIndex ("")*/,
    -
    21072  },
    -
    21073  // Rule Port 1927 only - Apr 9 23:00s 1:00 S
    -
    21074  {
    -
    21075  1927 /*fromYear*/,
    -
    21076  1927 /*toYear*/,
    -
    21077  4 /*inMonth*/,
    -
    21078  0 /*onDayOfWeek*/,
    -
    21079  9 /*onDayOfMonth*/,
    -
    21080  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21081  5520 /*atTimeCode (82800/15)*/,
    -
    21082  60 /*deltaMinutes*/,
    -
    21083  25 /*letterIndex ("S")*/,
    -
    21084  },
    -
    21085  // Rule Port 1928 only - Apr 14 23:00s 1:00 S
    -
    21086  {
    -
    21087  1928 /*fromYear*/,
    -
    21088  1928 /*toYear*/,
    -
    21089  4 /*inMonth*/,
    -
    21090  0 /*onDayOfWeek*/,
    -
    21091  14 /*onDayOfMonth*/,
    -
    21092  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21093  5520 /*atTimeCode (82800/15)*/,
    -
    21094  60 /*deltaMinutes*/,
    -
    21095  25 /*letterIndex ("S")*/,
    -
    21096  },
    -
    21097  // Rule Port 1929 only - Apr 20 23:00s 1:00 S
    -
    21098  {
    -
    21099  1929 /*fromYear*/,
    -
    21100  1929 /*toYear*/,
    -
    21101  4 /*inMonth*/,
    -
    21102  0 /*onDayOfWeek*/,
    -
    21103  20 /*onDayOfMonth*/,
    -
    21104  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21105  5520 /*atTimeCode (82800/15)*/,
    -
    21106  60 /*deltaMinutes*/,
    -
    21107  25 /*letterIndex ("S")*/,
    -
    21108  },
    -
    21109  // Rule Port 1931 only - Apr 18 23:00s 1:00 S
    -
    21110  {
    -
    21111  1931 /*fromYear*/,
    -
    21112  1931 /*toYear*/,
    -
    21113  4 /*inMonth*/,
    -
    21114  0 /*onDayOfWeek*/,
    -
    21115  18 /*onDayOfMonth*/,
    -
    21116  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21117  5520 /*atTimeCode (82800/15)*/,
    -
    21118  60 /*deltaMinutes*/,
    -
    21119  25 /*letterIndex ("S")*/,
    -
    21120  },
    -
    21121  // Rule Port 1931 1932 - Oct Sat>=1 23:00s 0 -
    -
    21122  {
    -
    21123  1931 /*fromYear*/,
    -
    21124  1932 /*toYear*/,
    -
    21125  10 /*inMonth*/,
    -
    21126  6 /*onDayOfWeek*/,
    -
    21127  1 /*onDayOfMonth*/,
    -
    21128  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21129  5520 /*atTimeCode (82800/15)*/,
    -
    21130  0 /*deltaMinutes*/,
    -
    21131  0 /*letterIndex ("")*/,
    -
    21132  },
    -
    21133  // Rule Port 1932 only - Apr 2 23:00s 1:00 S
    -
    21134  {
    -
    21135  1932 /*fromYear*/,
    -
    21136  1932 /*toYear*/,
    -
    21137  4 /*inMonth*/,
    -
    21138  0 /*onDayOfWeek*/,
    -
    21139  2 /*onDayOfMonth*/,
    -
    21140  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21141  5520 /*atTimeCode (82800/15)*/,
    -
    21142  60 /*deltaMinutes*/,
    -
    21143  25 /*letterIndex ("S")*/,
    -
    21144  },
    -
    21145  // Rule Port 1934 only - Apr 7 23:00s 1:00 S
    -
    21146  {
    -
    21147  1934 /*fromYear*/,
    -
    21148  1934 /*toYear*/,
    -
    21149  4 /*inMonth*/,
    -
    21150  0 /*onDayOfWeek*/,
    -
    21151  7 /*onDayOfMonth*/,
    -
    21152  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21153  5520 /*atTimeCode (82800/15)*/,
    -
    21154  60 /*deltaMinutes*/,
    -
    21155  25 /*letterIndex ("S")*/,
    -
    21156  },
    -
    21157  // Rule Port 1934 1938 - Oct Sat>=1 23:00s 0 -
    -
    21158  {
    -
    21159  1934 /*fromYear*/,
    -
    21160  1938 /*toYear*/,
    -
    21161  10 /*inMonth*/,
    -
    21162  6 /*onDayOfWeek*/,
    -
    21163  1 /*onDayOfMonth*/,
    -
    21164  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21165  5520 /*atTimeCode (82800/15)*/,
    -
    21166  0 /*deltaMinutes*/,
    -
    21167  0 /*letterIndex ("")*/,
    -
    21168  },
    -
    21169  // Rule Port 1935 only - Mar 30 23:00s 1:00 S
    -
    21170  {
    -
    21171  1935 /*fromYear*/,
    -
    21172  1935 /*toYear*/,
    -
    21173  3 /*inMonth*/,
    -
    21174  0 /*onDayOfWeek*/,
    -
    21175  30 /*onDayOfMonth*/,
    -
    21176  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21177  5520 /*atTimeCode (82800/15)*/,
    -
    21178  60 /*deltaMinutes*/,
    -
    21179  25 /*letterIndex ("S")*/,
    -
    21180  },
    -
    21181  // Rule Port 1936 only - Apr 18 23:00s 1:00 S
    -
    21182  {
    -
    21183  1936 /*fromYear*/,
    -
    21184  1936 /*toYear*/,
    -
    21185  4 /*inMonth*/,
    -
    21186  0 /*onDayOfWeek*/,
    -
    21187  18 /*onDayOfMonth*/,
    -
    21188  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21189  5520 /*atTimeCode (82800/15)*/,
    -
    21190  60 /*deltaMinutes*/,
    -
    21191  25 /*letterIndex ("S")*/,
    -
    21192  },
    -
    21193  // Rule Port 1937 only - Apr 3 23:00s 1:00 S
    -
    21194  {
    -
    21195  1937 /*fromYear*/,
    -
    21196  1937 /*toYear*/,
    -
    21197  4 /*inMonth*/,
    -
    21198  0 /*onDayOfWeek*/,
    -
    21199  3 /*onDayOfMonth*/,
    -
    21200  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21201  5520 /*atTimeCode (82800/15)*/,
    -
    21202  60 /*deltaMinutes*/,
    -
    21203  25 /*letterIndex ("S")*/,
    -
    21204  },
    -
    21205  // Rule Port 1938 only - Mar 26 23:00s 1:00 S
    -
    21206  {
    -
    21207  1938 /*fromYear*/,
    -
    21208  1938 /*toYear*/,
    -
    21209  3 /*inMonth*/,
    -
    21210  0 /*onDayOfWeek*/,
    -
    21211  26 /*onDayOfMonth*/,
    -
    21212  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21213  5520 /*atTimeCode (82800/15)*/,
    -
    21214  60 /*deltaMinutes*/,
    -
    21215  25 /*letterIndex ("S")*/,
    -
    21216  },
    -
    21217  // Rule Port 1939 only - Apr 15 23:00s 1:00 S
    -
    21218  {
    -
    21219  1939 /*fromYear*/,
    -
    21220  1939 /*toYear*/,
    -
    21221  4 /*inMonth*/,
    -
    21222  0 /*onDayOfWeek*/,
    -
    21223  15 /*onDayOfMonth*/,
    -
    21224  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21225  5520 /*atTimeCode (82800/15)*/,
    -
    21226  60 /*deltaMinutes*/,
    -
    21227  25 /*letterIndex ("S")*/,
    -
    21228  },
    -
    21229  // Rule Port 1939 only - Nov 18 23:00s 0 -
    -
    21230  {
    -
    21231  1939 /*fromYear*/,
    -
    21232  1939 /*toYear*/,
    -
    21233  11 /*inMonth*/,
    -
    21234  0 /*onDayOfWeek*/,
    -
    21235  18 /*onDayOfMonth*/,
    -
    21236  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21237  5520 /*atTimeCode (82800/15)*/,
    -
    21238  0 /*deltaMinutes*/,
    -
    21239  0 /*letterIndex ("")*/,
    -
    21240  },
    -
    21241  // Rule Port 1940 only - Feb 24 23:00s 1:00 S
    -
    21242  {
    -
    21243  1940 /*fromYear*/,
    -
    21244  1940 /*toYear*/,
    -
    21245  2 /*inMonth*/,
    -
    21246  0 /*onDayOfWeek*/,
    -
    21247  24 /*onDayOfMonth*/,
    -
    21248  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21249  5520 /*atTimeCode (82800/15)*/,
    -
    21250  60 /*deltaMinutes*/,
    -
    21251  25 /*letterIndex ("S")*/,
    -
    21252  },
    -
    21253  // Rule Port 1940 only - Oct 7 23:00s 0 -
    -
    21254  {
    -
    21255  1940 /*fromYear*/,
    -
    21256  1940 /*toYear*/,
    -
    21257  10 /*inMonth*/,
    -
    21258  0 /*onDayOfWeek*/,
    -
    21259  7 /*onDayOfMonth*/,
    -
    21260  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21261  5520 /*atTimeCode (82800/15)*/,
    -
    21262  0 /*deltaMinutes*/,
    -
    21263  0 /*letterIndex ("")*/,
    -
    21264  },
    -
    21265  // Rule Port 1941 only - Apr 5 23:00s 1:00 S
    -
    21266  {
    -
    21267  1941 /*fromYear*/,
    -
    21268  1941 /*toYear*/,
    -
    21269  4 /*inMonth*/,
    -
    21270  0 /*onDayOfWeek*/,
    -
    21271  5 /*onDayOfMonth*/,
    -
    21272  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21273  5520 /*atTimeCode (82800/15)*/,
    -
    21274  60 /*deltaMinutes*/,
    -
    21275  25 /*letterIndex ("S")*/,
    -
    21276  },
    -
    21277  // Rule Port 1941 only - Oct 5 23:00s 0 -
    -
    21278  {
    -
    21279  1941 /*fromYear*/,
    -
    21280  1941 /*toYear*/,
    -
    21281  10 /*inMonth*/,
    -
    21282  0 /*onDayOfWeek*/,
    -
    21283  5 /*onDayOfMonth*/,
    -
    21284  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21285  5520 /*atTimeCode (82800/15)*/,
    -
    21286  0 /*deltaMinutes*/,
    -
    21287  0 /*letterIndex ("")*/,
    -
    21288  },
    -
    21289  // Rule Port 1942 1945 - Mar Sat>=8 23:00s 1:00 S
    -
    21290  {
    -
    21291  1942 /*fromYear*/,
    -
    21292  1945 /*toYear*/,
    -
    21293  3 /*inMonth*/,
    -
    21294  6 /*onDayOfWeek*/,
    -
    21295  8 /*onDayOfMonth*/,
    -
    21296  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21297  5520 /*atTimeCode (82800/15)*/,
    -
    21298  60 /*deltaMinutes*/,
    -
    21299  25 /*letterIndex ("S")*/,
    -
    21300  },
    -
    21301  // Rule Port 1942 only - Apr 25 22:00s 2:00 M
    -
    21302  {
    -
    21303  1942 /*fromYear*/,
    -
    21304  1942 /*toYear*/,
    -
    21305  4 /*inMonth*/,
    -
    21306  0 /*onDayOfWeek*/,
    -
    21307  25 /*onDayOfMonth*/,
    -
    21308  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21309  5280 /*atTimeCode (79200/15)*/,
    -
    21310  120 /*deltaMinutes*/,
    -
    21311  18 /*letterIndex ("M")*/,
    -
    21312  },
    -
    21313  // Rule Port 1942 only - Aug 15 22:00s 1:00 S
    -
    21314  {
    -
    21315  1942 /*fromYear*/,
    -
    21316  1942 /*toYear*/,
    -
    21317  8 /*inMonth*/,
    -
    21318  0 /*onDayOfWeek*/,
    -
    21319  15 /*onDayOfMonth*/,
    -
    21320  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21321  5280 /*atTimeCode (79200/15)*/,
    -
    21322  60 /*deltaMinutes*/,
    -
    21323  25 /*letterIndex ("S")*/,
    -
    21324  },
    -
    21325  // Rule Port 1942 1945 - Oct Sat>=24 23:00s 0 -
    -
    21326  {
    -
    21327  1942 /*fromYear*/,
    -
    21328  1945 /*toYear*/,
    -
    21329  10 /*inMonth*/,
    -
    21330  6 /*onDayOfWeek*/,
    -
    21331  24 /*onDayOfMonth*/,
    -
    21332  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21333  5520 /*atTimeCode (82800/15)*/,
    -
    21334  0 /*deltaMinutes*/,
    -
    21335  0 /*letterIndex ("")*/,
    -
    21336  },
    -
    21337  // Rule Port 1943 only - Apr 17 22:00s 2:00 M
    -
    21338  {
    -
    21339  1943 /*fromYear*/,
    -
    21340  1943 /*toYear*/,
    -
    21341  4 /*inMonth*/,
    -
    21342  0 /*onDayOfWeek*/,
    -
    21343  17 /*onDayOfMonth*/,
    -
    21344  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21345  5280 /*atTimeCode (79200/15)*/,
    -
    21346  120 /*deltaMinutes*/,
    -
    21347  18 /*letterIndex ("M")*/,
    -
    21348  },
    -
    21349  // Rule Port 1943 1945 - Aug Sat>=25 22:00s 1:00 S
    -
    21350  {
    -
    21351  1943 /*fromYear*/,
    -
    21352  1945 /*toYear*/,
    -
    21353  8 /*inMonth*/,
    -
    21354  6 /*onDayOfWeek*/,
    -
    21355  25 /*onDayOfMonth*/,
    -
    21356  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21357  5280 /*atTimeCode (79200/15)*/,
    -
    21358  60 /*deltaMinutes*/,
    -
    21359  25 /*letterIndex ("S")*/,
    -
    21360  },
    -
    21361  // Rule Port 1944 1945 - Apr Sat>=21 22:00s 2:00 M
    -
    21362  {
    -
    21363  1944 /*fromYear*/,
    -
    21364  1945 /*toYear*/,
    -
    21365  4 /*inMonth*/,
    -
    21366  6 /*onDayOfWeek*/,
    -
    21367  21 /*onDayOfMonth*/,
    -
    21368  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21369  5280 /*atTimeCode (79200/15)*/,
    -
    21370  120 /*deltaMinutes*/,
    -
    21371  18 /*letterIndex ("M")*/,
    -
    21372  },
    -
    21373  // Rule Port 1946 only - Apr Sat>=1 23:00s 1:00 S
    -
    21374  {
    -
    21375  1946 /*fromYear*/,
    -
    21376  1946 /*toYear*/,
    -
    21377  4 /*inMonth*/,
    -
    21378  6 /*onDayOfWeek*/,
    -
    21379  1 /*onDayOfMonth*/,
    -
    21380  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21381  5520 /*atTimeCode (82800/15)*/,
    -
    21382  60 /*deltaMinutes*/,
    -
    21383  25 /*letterIndex ("S")*/,
    -
    21384  },
    -
    21385  // Rule Port 1946 only - Oct Sat>=1 23:00s 0 -
    -
    21386  {
    -
    21387  1946 /*fromYear*/,
    -
    21388  1946 /*toYear*/,
    -
    21389  10 /*inMonth*/,
    -
    21390  6 /*onDayOfWeek*/,
    -
    21391  1 /*onDayOfMonth*/,
    -
    21392  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21393  5520 /*atTimeCode (82800/15)*/,
    -
    21394  0 /*deltaMinutes*/,
    -
    21395  0 /*letterIndex ("")*/,
    -
    21396  },
    -
    21397  // Rule Port 1947 1966 - Apr Sun>=1 2:00s 1:00 S
    -
    21398  {
    -
    21399  1947 /*fromYear*/,
    -
    21400  1966 /*toYear*/,
    -
    21401  4 /*inMonth*/,
    -
    21402  7 /*onDayOfWeek*/,
    -
    21403  1 /*onDayOfMonth*/,
    -
    21404  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21405  480 /*atTimeCode (7200/15)*/,
    -
    21406  60 /*deltaMinutes*/,
    -
    21407  25 /*letterIndex ("S")*/,
    -
    21408  },
    -
    21409  // Rule Port 1947 1965 - Oct Sun>=1 2:00s 0 -
    -
    21410  {
    -
    21411  1947 /*fromYear*/,
    -
    21412  1965 /*toYear*/,
    -
    21413  10 /*inMonth*/,
    -
    21414  7 /*onDayOfWeek*/,
    -
    21415  1 /*onDayOfMonth*/,
    -
    21416  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21417  480 /*atTimeCode (7200/15)*/,
    -
    21418  0 /*deltaMinutes*/,
    -
    21419  0 /*letterIndex ("")*/,
    -
    21420  },
    -
    21421  // Rule Port 1976 only - Sep lastSun 1:00 0 -
    -
    21422  {
    -
    21423  1976 /*fromYear*/,
    -
    21424  1976 /*toYear*/,
    -
    21425  9 /*inMonth*/,
    -
    21426  7 /*onDayOfWeek*/,
    -
    21427  0 /*onDayOfMonth*/,
    -
    21428  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21429  240 /*atTimeCode (3600/15)*/,
    -
    21430  0 /*deltaMinutes*/,
    -
    21431  0 /*letterIndex ("")*/,
    -
    21432  },
    -
    21433  // Rule Port 1977 only - Mar lastSun 0:00s 1:00 S
    -
    21434  {
    -
    21435  1977 /*fromYear*/,
    -
    21436  1977 /*toYear*/,
    -
    21437  3 /*inMonth*/,
    -
    21438  7 /*onDayOfWeek*/,
    -
    21439  0 /*onDayOfMonth*/,
    -
    21440  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21441  0 /*atTimeCode (0/15)*/,
    -
    21442  60 /*deltaMinutes*/,
    -
    21443  25 /*letterIndex ("S")*/,
    -
    21444  },
    -
    21445  // Rule Port 1977 only - Sep lastSun 0:00s 0 -
    -
    21446  {
    -
    21447  1977 /*fromYear*/,
    -
    21448  1977 /*toYear*/,
    -
    21449  9 /*inMonth*/,
    -
    21450  7 /*onDayOfWeek*/,
    -
    21451  0 /*onDayOfMonth*/,
    -
    21452  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21453  0 /*atTimeCode (0/15)*/,
    -
    21454  0 /*deltaMinutes*/,
    -
    21455  0 /*letterIndex ("")*/,
    -
    21456  },
    -
    21457  // Rule Port 1978 1980 - Apr Sun>=1 1:00s 1:00 S
    -
    21458  {
    -
    21459  1978 /*fromYear*/,
    -
    21460  1980 /*toYear*/,
    -
    21461  4 /*inMonth*/,
    -
    21462  7 /*onDayOfWeek*/,
    -
    21463  1 /*onDayOfMonth*/,
    -
    21464  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21465  240 /*atTimeCode (3600/15)*/,
    -
    21466  60 /*deltaMinutes*/,
    -
    21467  25 /*letterIndex ("S")*/,
    -
    21468  },
    -
    21469  // Rule Port 1978 only - Oct 1 1:00s 0 -
    -
    21470  {
    -
    21471  1978 /*fromYear*/,
    -
    21472  1978 /*toYear*/,
    -
    21473  10 /*inMonth*/,
    -
    21474  0 /*onDayOfWeek*/,
    -
    21475  1 /*onDayOfMonth*/,
    -
    21476  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21477  240 /*atTimeCode (3600/15)*/,
    -
    21478  0 /*deltaMinutes*/,
    -
    21479  0 /*letterIndex ("")*/,
    -
    21480  },
    -
    21481  // Rule Port 1979 1980 - Sep lastSun 1:00s 0 -
    -
    21482  {
    -
    21483  1979 /*fromYear*/,
    -
    21484  1980 /*toYear*/,
    -
    21485  9 /*inMonth*/,
    -
    21486  7 /*onDayOfWeek*/,
    -
    21487  0 /*onDayOfMonth*/,
    -
    21488  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21489  240 /*atTimeCode (3600/15)*/,
    -
    21490  0 /*deltaMinutes*/,
    -
    21491  0 /*letterIndex ("")*/,
    -
    21492  },
    -
    21493  // Rule Port 1981 1986 - Mar lastSun 0:00s 1:00 S
    -
    21494  {
    -
    21495  1981 /*fromYear*/,
    -
    21496  1986 /*toYear*/,
    -
    21497  3 /*inMonth*/,
    -
    21498  7 /*onDayOfWeek*/,
    -
    21499  0 /*onDayOfMonth*/,
    -
    21500  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21501  0 /*atTimeCode (0/15)*/,
    -
    21502  60 /*deltaMinutes*/,
    -
    21503  25 /*letterIndex ("S")*/,
    -
    21504  },
    -
    21505  // Rule Port 1981 1985 - Sep lastSun 0:00s 0 -
    -
    21506  {
    -
    21507  1981 /*fromYear*/,
    -
    21508  1985 /*toYear*/,
    -
    21509  9 /*inMonth*/,
    -
    21510  7 /*onDayOfWeek*/,
    -
    21511  0 /*onDayOfMonth*/,
    -
    21512  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    21513  0 /*atTimeCode (0/15)*/,
    -
    21514  0 /*deltaMinutes*/,
    -
    21515  0 /*letterIndex ("")*/,
    -
    21516  },
    -
    21517 
    -
    21518 };
    -
    21519 
    -
    21520 const complete::Info::ZonePolicy kZonePolicyPort ACE_TIME_PROGMEM = {
    -
    21521  kZoneRulesPort /*rules*/,
    -
    21522  46 /*numRules*/,
    -
    21523 };
    -
    21524 
    -
    21525 //---------------------------------------------------------------------------
    -
    21526 // Policy name: Pulaski
    -
    21527 // Rules: 5
    -
    21528 //---------------------------------------------------------------------------
    -
    21529 
    -
    21530 static const complete::Info::ZoneRule kZoneRulesPulaski[] ACE_TIME_PROGMEM = {
    -
    21531  // Anchor: Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
    -
    21532  {
    -
    21533  -32767 /*fromYear*/,
    -
    21534  -32767 /*toYear*/,
    -
    21535  1 /*inMonth*/,
    -
    21536  0 /*onDayOfWeek*/,
    -
    21537  1 /*onDayOfMonth*/,
    -
    21538  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21539  0 /*atTimeCode (0/15)*/,
    -
    21540  0 /*deltaMinutes*/,
    -
    21541  25 /*letterIndex ("S")*/,
    -
    21542  },
    -
    21543  // Rule Pulaski 1946 1960 - Apr lastSun 2:00 1:00 D
    -
    21544  {
    -
    21545  1946 /*fromYear*/,
    -
    21546  1960 /*toYear*/,
    -
    21547  4 /*inMonth*/,
    -
    21548  7 /*onDayOfWeek*/,
    -
    21549  0 /*onDayOfMonth*/,
    -
    21550  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21551  480 /*atTimeCode (7200/15)*/,
    -
    21552  60 /*deltaMinutes*/,
    -
    21553  13 /*letterIndex ("D")*/,
    -
    21554  },
    -
    21555  // Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
    -
    21556  {
    -
    21557  1946 /*fromYear*/,
    -
    21558  1954 /*toYear*/,
    -
    21559  9 /*inMonth*/,
    -
    21560  7 /*onDayOfWeek*/,
    -
    21561  0 /*onDayOfMonth*/,
    -
    21562  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21563  480 /*atTimeCode (7200/15)*/,
    -
    21564  0 /*deltaMinutes*/,
    -
    21565  25 /*letterIndex ("S")*/,
    -
    21566  },
    -
    21567  // Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S
    -
    21568  {
    -
    21569  1955 /*fromYear*/,
    -
    21570  1956 /*toYear*/,
    -
    21571  10 /*inMonth*/,
    -
    21572  7 /*onDayOfWeek*/,
    -
    21573  0 /*onDayOfMonth*/,
    -
    21574  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21575  480 /*atTimeCode (7200/15)*/,
    -
    21576  0 /*deltaMinutes*/,
    -
    21577  25 /*letterIndex ("S")*/,
    -
    21578  },
    -
    21579  // Rule Pulaski 1957 1960 - Sep lastSun 2:00 0 S
    -
    21580  {
    -
    21581  1957 /*fromYear*/,
    -
    21582  1960 /*toYear*/,
    -
    21583  9 /*inMonth*/,
    -
    21584  7 /*onDayOfWeek*/,
    -
    21585  0 /*onDayOfMonth*/,
    -
    21586  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21587  480 /*atTimeCode (7200/15)*/,
    -
    21588  0 /*deltaMinutes*/,
    -
    21589  25 /*letterIndex ("S")*/,
    -
    21590  },
    -
    21591 
    -
    21592 };
    -
    21593 
    -
    21594 const complete::Info::ZonePolicy kZonePolicyPulaski ACE_TIME_PROGMEM = {
    -
    21595  kZoneRulesPulaski /*rules*/,
    -
    21596  5 /*numRules*/,
    -
    21597 };
    -
    21598 
    -
    21599 //---------------------------------------------------------------------------
    -
    21600 // Policy name: ROK
    -
    21601 // Rules: 15
    -
    21602 //---------------------------------------------------------------------------
    -
    21603 
    -
    21604 static const complete::Info::ZoneRule kZoneRulesROK[] ACE_TIME_PROGMEM = {
    -
    21605  // Anchor: Rule ROK 1948 only - Sep 12 24:00 0 S
    -
    21606  {
    -
    21607  -32767 /*fromYear*/,
    -
    21608  -32767 /*toYear*/,
    -
    21609  1 /*inMonth*/,
    -
    21610  0 /*onDayOfWeek*/,
    -
    21611  1 /*onDayOfMonth*/,
    -
    21612  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21613  0 /*atTimeCode (0/15)*/,
    -
    21614  0 /*deltaMinutes*/,
    -
    21615  25 /*letterIndex ("S")*/,
    -
    21616  },
    -
    21617  // Rule ROK 1948 only - Jun 1 0:00 1:00 D
    -
    21618  {
    -
    21619  1948 /*fromYear*/,
    -
    21620  1948 /*toYear*/,
    -
    21621  6 /*inMonth*/,
    -
    21622  0 /*onDayOfWeek*/,
    -
    21623  1 /*onDayOfMonth*/,
    -
    21624  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21625  0 /*atTimeCode (0/15)*/,
    -
    21626  60 /*deltaMinutes*/,
    -
    21627  13 /*letterIndex ("D")*/,
    -
    21628  },
    -
    21629  // Rule ROK 1948 only - Sep 12 24:00 0 S
    -
    21630  {
    -
    21631  1948 /*fromYear*/,
    -
    21632  1948 /*toYear*/,
    -
    21633  9 /*inMonth*/,
    -
    21634  0 /*onDayOfWeek*/,
    -
    21635  12 /*onDayOfMonth*/,
    -
    21636  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21637  5760 /*atTimeCode (86400/15)*/,
    -
    21638  0 /*deltaMinutes*/,
    -
    21639  25 /*letterIndex ("S")*/,
    -
    21640  },
    -
    21641  // Rule ROK 1949 only - Apr 3 0:00 1:00 D
    -
    21642  {
    -
    21643  1949 /*fromYear*/,
    -
    21644  1949 /*toYear*/,
    -
    21645  4 /*inMonth*/,
    -
    21646  0 /*onDayOfWeek*/,
    -
    21647  3 /*onDayOfMonth*/,
    -
    21648  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21649  0 /*atTimeCode (0/15)*/,
    -
    21650  60 /*deltaMinutes*/,
    -
    21651  13 /*letterIndex ("D")*/,
    -
    21652  },
    -
    21653  // Rule ROK 1949 1951 - Sep Sat>=7 24:00 0 S
    -
    21654  {
    -
    21655  1949 /*fromYear*/,
    -
    21656  1951 /*toYear*/,
    -
    21657  9 /*inMonth*/,
    -
    21658  6 /*onDayOfWeek*/,
    -
    21659  7 /*onDayOfMonth*/,
    -
    21660  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21661  5760 /*atTimeCode (86400/15)*/,
    -
    21662  0 /*deltaMinutes*/,
    -
    21663  25 /*letterIndex ("S")*/,
    -
    21664  },
    -
    21665  // Rule ROK 1950 only - Apr 1 0:00 1:00 D
    -
    21666  {
    -
    21667  1950 /*fromYear*/,
    -
    21668  1950 /*toYear*/,
    -
    21669  4 /*inMonth*/,
    -
    21670  0 /*onDayOfWeek*/,
    -
    21671  1 /*onDayOfMonth*/,
    -
    21672  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21673  0 /*atTimeCode (0/15)*/,
    -
    21674  60 /*deltaMinutes*/,
    -
    21675  13 /*letterIndex ("D")*/,
    -
    21676  },
    -
    21677  // Rule ROK 1951 only - May 6 0:00 1:00 D
    -
    21678  {
    -
    21679  1951 /*fromYear*/,
    -
    21680  1951 /*toYear*/,
    -
    21681  5 /*inMonth*/,
    -
    21682  0 /*onDayOfWeek*/,
    -
    21683  6 /*onDayOfMonth*/,
    -
    21684  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21685  0 /*atTimeCode (0/15)*/,
    -
    21686  60 /*deltaMinutes*/,
    -
    21687  13 /*letterIndex ("D")*/,
    -
    21688  },
    -
    21689  // Rule ROK 1955 only - May 5 0:00 1:00 D
    -
    21690  {
    -
    21691  1955 /*fromYear*/,
    -
    21692  1955 /*toYear*/,
    -
    21693  5 /*inMonth*/,
    -
    21694  0 /*onDayOfWeek*/,
    -
    21695  5 /*onDayOfMonth*/,
    -
    21696  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21697  0 /*atTimeCode (0/15)*/,
    -
    21698  60 /*deltaMinutes*/,
    -
    21699  13 /*letterIndex ("D")*/,
    -
    21700  },
    -
    21701  // Rule ROK 1955 only - Sep 8 24:00 0 S
    -
    21702  {
    -
    21703  1955 /*fromYear*/,
    -
    21704  1955 /*toYear*/,
    -
    21705  9 /*inMonth*/,
    -
    21706  0 /*onDayOfWeek*/,
    -
    21707  8 /*onDayOfMonth*/,
    -
    21708  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21709  5760 /*atTimeCode (86400/15)*/,
    -
    21710  0 /*deltaMinutes*/,
    -
    21711  25 /*letterIndex ("S")*/,
    -
    21712  },
    -
    21713  // Rule ROK 1956 only - May 20 0:00 1:00 D
    -
    21714  {
    -
    21715  1956 /*fromYear*/,
    -
    21716  1956 /*toYear*/,
    -
    21717  5 /*inMonth*/,
    -
    21718  0 /*onDayOfWeek*/,
    -
    21719  20 /*onDayOfMonth*/,
    -
    21720  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21721  0 /*atTimeCode (0/15)*/,
    -
    21722  60 /*deltaMinutes*/,
    -
    21723  13 /*letterIndex ("D")*/,
    -
    21724  },
    -
    21725  // Rule ROK 1956 only - Sep 29 24:00 0 S
    -
    21726  {
    -
    21727  1956 /*fromYear*/,
    -
    21728  1956 /*toYear*/,
    -
    21729  9 /*inMonth*/,
    -
    21730  0 /*onDayOfWeek*/,
    -
    21731  29 /*onDayOfMonth*/,
    -
    21732  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21733  5760 /*atTimeCode (86400/15)*/,
    -
    21734  0 /*deltaMinutes*/,
    -
    21735  25 /*letterIndex ("S")*/,
    -
    21736  },
    -
    21737  // Rule ROK 1957 1960 - May Sun>=1 0:00 1:00 D
    -
    21738  {
    -
    21739  1957 /*fromYear*/,
    -
    21740  1960 /*toYear*/,
    -
    21741  5 /*inMonth*/,
    -
    21742  7 /*onDayOfWeek*/,
    -
    21743  1 /*onDayOfMonth*/,
    -
    21744  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21745  0 /*atTimeCode (0/15)*/,
    -
    21746  60 /*deltaMinutes*/,
    -
    21747  13 /*letterIndex ("D")*/,
    -
    21748  },
    -
    21749  // Rule ROK 1957 1960 - Sep Sat>=17 24:00 0 S
    -
    21750  {
    -
    21751  1957 /*fromYear*/,
    -
    21752  1960 /*toYear*/,
    -
    21753  9 /*inMonth*/,
    -
    21754  6 /*onDayOfWeek*/,
    -
    21755  17 /*onDayOfMonth*/,
    -
    21756  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21757  5760 /*atTimeCode (86400/15)*/,
    -
    21758  0 /*deltaMinutes*/,
    -
    21759  25 /*letterIndex ("S")*/,
    -
    21760  },
    -
    21761  // Rule ROK 1987 1988 - May Sun>=8 2:00 1:00 D
    -
    21762  {
    -
    21763  1987 /*fromYear*/,
    -
    21764  1988 /*toYear*/,
    -
    21765  5 /*inMonth*/,
    -
    21766  7 /*onDayOfWeek*/,
    -
    21767  8 /*onDayOfMonth*/,
    -
    21768  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21769  480 /*atTimeCode (7200/15)*/,
    -
    21770  60 /*deltaMinutes*/,
    -
    21771  13 /*letterIndex ("D")*/,
    -
    21772  },
    -
    21773  // Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S
    -
    21774  {
    -
    21775  1987 /*fromYear*/,
    -
    21776  1988 /*toYear*/,
    -
    21777  10 /*inMonth*/,
    -
    21778  7 /*onDayOfWeek*/,
    -
    21779  8 /*onDayOfMonth*/,
    -
    21780  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21781  720 /*atTimeCode (10800/15)*/,
    -
    21782  0 /*deltaMinutes*/,
    -
    21783  25 /*letterIndex ("S")*/,
    -
    21784  },
    -
    21785 
    -
    21786 };
    -
    21787 
    -
    21788 const complete::Info::ZonePolicy kZonePolicyROK ACE_TIME_PROGMEM = {
    -
    21789  kZoneRulesROK /*rules*/,
    -
    21790  15 /*numRules*/,
    -
    21791 };
    -
    21792 
    -
    21793 //---------------------------------------------------------------------------
    -
    21794 // Policy name: Regina
    -
    21795 // Rules: 18
    -
    21796 //---------------------------------------------------------------------------
    -
    21797 
    -
    21798 static const complete::Info::ZoneRule kZoneRulesRegina[] ACE_TIME_PROGMEM = {
    -
    21799  // Anchor: Rule Regina 1918 only - Oct 27 2:00 0 S
    -
    21800  {
    -
    21801  -32767 /*fromYear*/,
    -
    21802  -32767 /*toYear*/,
    -
    21803  1 /*inMonth*/,
    -
    21804  0 /*onDayOfWeek*/,
    -
    21805  1 /*onDayOfMonth*/,
    -
    21806  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21807  0 /*atTimeCode (0/15)*/,
    -
    21808  0 /*deltaMinutes*/,
    -
    21809  25 /*letterIndex ("S")*/,
    -
    21810  },
    -
    21811  // Rule Regina 1918 only - Apr 14 2:00 1:00 D
    -
    21812  {
    -
    21813  1918 /*fromYear*/,
    -
    21814  1918 /*toYear*/,
    -
    21815  4 /*inMonth*/,
    -
    21816  0 /*onDayOfWeek*/,
    -
    21817  14 /*onDayOfMonth*/,
    -
    21818  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21819  480 /*atTimeCode (7200/15)*/,
    -
    21820  60 /*deltaMinutes*/,
    -
    21821  13 /*letterIndex ("D")*/,
    -
    21822  },
    -
    21823  // Rule Regina 1918 only - Oct 27 2:00 0 S
    -
    21824  {
    -
    21825  1918 /*fromYear*/,
    -
    21826  1918 /*toYear*/,
    -
    21827  10 /*inMonth*/,
    -
    21828  0 /*onDayOfWeek*/,
    -
    21829  27 /*onDayOfMonth*/,
    -
    21830  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21831  480 /*atTimeCode (7200/15)*/,
    -
    21832  0 /*deltaMinutes*/,
    -
    21833  25 /*letterIndex ("S")*/,
    -
    21834  },
    -
    21835  // Rule Regina 1930 1934 - May Sun>=1 0:00 1:00 D
    -
    21836  {
    -
    21837  1930 /*fromYear*/,
    -
    21838  1934 /*toYear*/,
    -
    21839  5 /*inMonth*/,
    -
    21840  7 /*onDayOfWeek*/,
    -
    21841  1 /*onDayOfMonth*/,
    -
    21842  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21843  0 /*atTimeCode (0/15)*/,
    -
    21844  60 /*deltaMinutes*/,
    -
    21845  13 /*letterIndex ("D")*/,
    -
    21846  },
    -
    21847  // Rule Regina 1930 1934 - Oct Sun>=1 0:00 0 S
    -
    21848  {
    -
    21849  1930 /*fromYear*/,
    -
    21850  1934 /*toYear*/,
    -
    21851  10 /*inMonth*/,
    -
    21852  7 /*onDayOfWeek*/,
    -
    21853  1 /*onDayOfMonth*/,
    -
    21854  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21855  0 /*atTimeCode (0/15)*/,
    -
    21856  0 /*deltaMinutes*/,
    -
    21857  25 /*letterIndex ("S")*/,
    -
    21858  },
    -
    21859  // Rule Regina 1937 1941 - Apr Sun>=8 0:00 1:00 D
    -
    21860  {
    -
    21861  1937 /*fromYear*/,
    -
    21862  1941 /*toYear*/,
    -
    21863  4 /*inMonth*/,
    -
    21864  7 /*onDayOfWeek*/,
    -
    21865  8 /*onDayOfMonth*/,
    -
    21866  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21867  0 /*atTimeCode (0/15)*/,
    -
    21868  60 /*deltaMinutes*/,
    -
    21869  13 /*letterIndex ("D")*/,
    -
    21870  },
    -
    21871  // Rule Regina 1937 only - Oct Sun>=8 0:00 0 S
    -
    21872  {
    -
    21873  1937 /*fromYear*/,
    -
    21874  1937 /*toYear*/,
    -
    21875  10 /*inMonth*/,
    -
    21876  7 /*onDayOfWeek*/,
    -
    21877  8 /*onDayOfMonth*/,
    -
    21878  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21879  0 /*atTimeCode (0/15)*/,
    -
    21880  0 /*deltaMinutes*/,
    -
    21881  25 /*letterIndex ("S")*/,
    -
    21882  },
    -
    21883  // Rule Regina 1938 only - Oct Sun>=1 0:00 0 S
    -
    21884  {
    -
    21885  1938 /*fromYear*/,
    -
    21886  1938 /*toYear*/,
    -
    21887  10 /*inMonth*/,
    -
    21888  7 /*onDayOfWeek*/,
    -
    21889  1 /*onDayOfMonth*/,
    -
    21890  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21891  0 /*atTimeCode (0/15)*/,
    -
    21892  0 /*deltaMinutes*/,
    -
    21893  25 /*letterIndex ("S")*/,
    -
    21894  },
    -
    21895  // Rule Regina 1939 1941 - Oct Sun>=8 0:00 0 S
    -
    21896  {
    -
    21897  1939 /*fromYear*/,
    -
    21898  1941 /*toYear*/,
    -
    21899  10 /*inMonth*/,
    -
    21900  7 /*onDayOfWeek*/,
    -
    21901  8 /*onDayOfMonth*/,
    -
    21902  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21903  0 /*atTimeCode (0/15)*/,
    -
    21904  0 /*deltaMinutes*/,
    -
    21905  25 /*letterIndex ("S")*/,
    -
    21906  },
    -
    21907  // Rule Regina 1942 only - Feb 9 2:00 1:00 W
    -
    21908  {
    -
    21909  1942 /*fromYear*/,
    -
    21910  1942 /*toYear*/,
    -
    21911  2 /*inMonth*/,
    -
    21912  0 /*onDayOfWeek*/,
    -
    21913  9 /*onDayOfMonth*/,
    -
    21914  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21915  480 /*atTimeCode (7200/15)*/,
    -
    21916  60 /*deltaMinutes*/,
    -
    21917  26 /*letterIndex ("W")*/,
    -
    21918  },
    -
    21919  // Rule Regina 1945 only - Aug 14 23:00u 1:00 P
    -
    21920  {
    -
    21921  1945 /*fromYear*/,
    -
    21922  1945 /*toYear*/,
    -
    21923  8 /*inMonth*/,
    -
    21924  0 /*onDayOfWeek*/,
    -
    21925  14 /*onDayOfMonth*/,
    -
    21926  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    21927  5520 /*atTimeCode (82800/15)*/,
    -
    21928  60 /*deltaMinutes*/,
    -
    21929  24 /*letterIndex ("P")*/,
    -
    21930  },
    -
    21931  // Rule Regina 1945 only - Sep lastSun 2:00 0 S
    -
    21932  {
    -
    21933  1945 /*fromYear*/,
    -
    21934  1945 /*toYear*/,
    -
    21935  9 /*inMonth*/,
    -
    21936  7 /*onDayOfWeek*/,
    -
    21937  0 /*onDayOfMonth*/,
    -
    21938  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21939  480 /*atTimeCode (7200/15)*/,
    -
    21940  0 /*deltaMinutes*/,
    -
    21941  25 /*letterIndex ("S")*/,
    -
    21942  },
    -
    21943  // Rule Regina 1946 only - Apr Sun>=8 2:00 1:00 D
    -
    21944  {
    -
    21945  1946 /*fromYear*/,
    -
    21946  1946 /*toYear*/,
    -
    21947  4 /*inMonth*/,
    -
    21948  7 /*onDayOfWeek*/,
    -
    21949  8 /*onDayOfMonth*/,
    -
    21950  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21951  480 /*atTimeCode (7200/15)*/,
    -
    21952  60 /*deltaMinutes*/,
    -
    21953  13 /*letterIndex ("D")*/,
    -
    21954  },
    -
    21955  // Rule Regina 1946 only - Oct Sun>=8 2:00 0 S
    -
    21956  {
    -
    21957  1946 /*fromYear*/,
    -
    21958  1946 /*toYear*/,
    -
    21959  10 /*inMonth*/,
    -
    21960  7 /*onDayOfWeek*/,
    -
    21961  8 /*onDayOfMonth*/,
    -
    21962  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21963  480 /*atTimeCode (7200/15)*/,
    -
    21964  0 /*deltaMinutes*/,
    -
    21965  25 /*letterIndex ("S")*/,
    -
    21966  },
    -
    21967  // Rule Regina 1947 1957 - Apr lastSun 2:00 1:00 D
    -
    21968  {
    -
    21969  1947 /*fromYear*/,
    -
    21970  1957 /*toYear*/,
    -
    21971  4 /*inMonth*/,
    -
    21972  7 /*onDayOfWeek*/,
    -
    21973  0 /*onDayOfMonth*/,
    -
    21974  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21975  480 /*atTimeCode (7200/15)*/,
    -
    21976  60 /*deltaMinutes*/,
    -
    21977  13 /*letterIndex ("D")*/,
    -
    21978  },
    -
    21979  // Rule Regina 1947 1957 - Sep lastSun 2:00 0 S
    -
    21980  {
    -
    21981  1947 /*fromYear*/,
    -
    21982  1957 /*toYear*/,
    -
    21983  9 /*inMonth*/,
    -
    21984  7 /*onDayOfWeek*/,
    -
    21985  0 /*onDayOfMonth*/,
    -
    21986  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21987  480 /*atTimeCode (7200/15)*/,
    -
    21988  0 /*deltaMinutes*/,
    -
    21989  25 /*letterIndex ("S")*/,
    -
    21990  },
    -
    21991  // Rule Regina 1959 only - Apr lastSun 2:00 1:00 D
    -
    21992  {
    -
    21993  1959 /*fromYear*/,
    -
    21994  1959 /*toYear*/,
    -
    21995  4 /*inMonth*/,
    -
    21996  7 /*onDayOfWeek*/,
    -
    21997  0 /*onDayOfMonth*/,
    -
    21998  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    21999  480 /*atTimeCode (7200/15)*/,
    -
    22000  60 /*deltaMinutes*/,
    -
    22001  13 /*letterIndex ("D")*/,
    -
    22002  },
    -
    22003  // Rule Regina 1959 only - Oct lastSun 2:00 0 S
    -
    22004  {
    -
    22005  1959 /*fromYear*/,
    -
    22006  1959 /*toYear*/,
    -
    22007  10 /*inMonth*/,
    -
    22008  7 /*onDayOfWeek*/,
    -
    22009  0 /*onDayOfMonth*/,
    -
    22010  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22011  480 /*atTimeCode (7200/15)*/,
    -
    22012  0 /*deltaMinutes*/,
    -
    22013  25 /*letterIndex ("S")*/,
    -
    22014  },
    -
    22015 
    -
    22016 };
    -
    22017 
    -
    22018 const complete::Info::ZonePolicy kZonePolicyRegina ACE_TIME_PROGMEM = {
    -
    22019  kZoneRulesRegina /*rules*/,
    -
    22020  18 /*numRules*/,
    -
    22021 };
    -
    22022 
    -
    22023 //---------------------------------------------------------------------------
    -
    22024 // Policy name: Romania
    -
    22025 // Rules: 10
    -
    22026 //---------------------------------------------------------------------------
    -
    22027 
    -
    22028 static const complete::Info::ZoneRule kZoneRulesRomania[] ACE_TIME_PROGMEM = {
    -
    22029  // Anchor: Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 -
    -
    22030  {
    -
    22031  -32767 /*fromYear*/,
    -
    22032  -32767 /*toYear*/,
    -
    22033  1 /*inMonth*/,
    -
    22034  0 /*onDayOfWeek*/,
    -
    22035  1 /*onDayOfMonth*/,
    -
    22036  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22037  0 /*atTimeCode (0/15)*/,
    -
    22038  0 /*deltaMinutes*/,
    -
    22039  0 /*letterIndex ("")*/,
    -
    22040  },
    -
    22041  // Rule Romania 1932 only - May 21 0:00s 1:00 S
    -
    22042  {
    -
    22043  1932 /*fromYear*/,
    -
    22044  1932 /*toYear*/,
    -
    22045  5 /*inMonth*/,
    -
    22046  0 /*onDayOfWeek*/,
    -
    22047  21 /*onDayOfMonth*/,
    -
    22048  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22049  0 /*atTimeCode (0/15)*/,
    -
    22050  60 /*deltaMinutes*/,
    -
    22051  25 /*letterIndex ("S")*/,
    -
    22052  },
    -
    22053  // Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 -
    -
    22054  {
    -
    22055  1932 /*fromYear*/,
    -
    22056  1939 /*toYear*/,
    -
    22057  10 /*inMonth*/,
    -
    22058  7 /*onDayOfWeek*/,
    -
    22059  1 /*onDayOfMonth*/,
    -
    22060  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22061  0 /*atTimeCode (0/15)*/,
    -
    22062  0 /*deltaMinutes*/,
    -
    22063  0 /*letterIndex ("")*/,
    -
    22064  },
    -
    22065  // Rule Romania 1933 1939 - Apr Sun>=2 0:00s 1:00 S
    -
    22066  {
    -
    22067  1933 /*fromYear*/,
    -
    22068  1939 /*toYear*/,
    -
    22069  4 /*inMonth*/,
    -
    22070  7 /*onDayOfWeek*/,
    -
    22071  2 /*onDayOfMonth*/,
    -
    22072  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22073  0 /*atTimeCode (0/15)*/,
    -
    22074  60 /*deltaMinutes*/,
    -
    22075  25 /*letterIndex ("S")*/,
    -
    22076  },
    -
    22077  // Rule Romania 1979 only - May 27 0:00 1:00 S
    -
    22078  {
    -
    22079  1979 /*fromYear*/,
    -
    22080  1979 /*toYear*/,
    -
    22081  5 /*inMonth*/,
    -
    22082  0 /*onDayOfWeek*/,
    -
    22083  27 /*onDayOfMonth*/,
    -
    22084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22085  0 /*atTimeCode (0/15)*/,
    -
    22086  60 /*deltaMinutes*/,
    -
    22087  25 /*letterIndex ("S")*/,
    -
    22088  },
    -
    22089  // Rule Romania 1979 only - Sep lastSun 0:00 0 -
    -
    22090  {
    -
    22091  1979 /*fromYear*/,
    -
    22092  1979 /*toYear*/,
    -
    22093  9 /*inMonth*/,
    -
    22094  7 /*onDayOfWeek*/,
    -
    22095  0 /*onDayOfMonth*/,
    -
    22096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22097  0 /*atTimeCode (0/15)*/,
    -
    22098  0 /*deltaMinutes*/,
    -
    22099  0 /*letterIndex ("")*/,
    -
    22100  },
    -
    22101  // Rule Romania 1980 only - Apr 5 23:00 1:00 S
    -
    22102  {
    -
    22103  1980 /*fromYear*/,
    -
    22104  1980 /*toYear*/,
    -
    22105  4 /*inMonth*/,
    -
    22106  0 /*onDayOfWeek*/,
    -
    22107  5 /*onDayOfMonth*/,
    -
    22108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22109  5520 /*atTimeCode (82800/15)*/,
    -
    22110  60 /*deltaMinutes*/,
    -
    22111  25 /*letterIndex ("S")*/,
    -
    22112  },
    -
    22113  // Rule Romania 1980 only - Sep lastSun 1:00 0 -
    -
    22114  {
    -
    22115  1980 /*fromYear*/,
    -
    22116  1980 /*toYear*/,
    -
    22117  9 /*inMonth*/,
    -
    22118  7 /*onDayOfWeek*/,
    -
    22119  0 /*onDayOfMonth*/,
    -
    22120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22121  240 /*atTimeCode (3600/15)*/,
    -
    22122  0 /*deltaMinutes*/,
    -
    22123  0 /*letterIndex ("")*/,
    -
    22124  },
    -
    22125  // Rule Romania 1991 1993 - Mar lastSun 0:00s 1:00 S
    -
    22126  {
    -
    22127  1991 /*fromYear*/,
    -
    22128  1993 /*toYear*/,
    -
    22129  3 /*inMonth*/,
    -
    22130  7 /*onDayOfWeek*/,
    -
    22131  0 /*onDayOfMonth*/,
    -
    22132  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22133  0 /*atTimeCode (0/15)*/,
    -
    22134  60 /*deltaMinutes*/,
    -
    22135  25 /*letterIndex ("S")*/,
    -
    22136  },
    -
    22137  // Rule Romania 1991 1993 - Sep lastSun 0:00s 0 -
    -
    22138  {
    -
    22139  1991 /*fromYear*/,
    -
    22140  1993 /*toYear*/,
    -
    22141  9 /*inMonth*/,
    -
    22142  7 /*onDayOfWeek*/,
    -
    22143  0 /*onDayOfMonth*/,
    -
    22144  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22145  0 /*atTimeCode (0/15)*/,
    -
    22146  0 /*deltaMinutes*/,
    -
    22147  0 /*letterIndex ("")*/,
    -
    22148  },
    -
    22149 
    -
    22150 };
    -
    22151 
    -
    22152 const complete::Info::ZonePolicy kZonePolicyRomania ACE_TIME_PROGMEM = {
    -
    22153  kZoneRulesRomania /*rules*/,
    -
    22154  10 /*numRules*/,
    -
    22155 };
    -
    22156 
    -
    22157 //---------------------------------------------------------------------------
    -
    22158 // Policy name: Russia
    -
    22159 // Rules: 17
    -
    22160 //---------------------------------------------------------------------------
    -
    22161 
    -
    22162 static const complete::Info::ZoneRule kZoneRulesRussia[] ACE_TIME_PROGMEM = {
    -
    22163  // Anchor: Rule Russia 1917 only - Dec 28 0:00 0 MMT
    -
    22164  {
    -
    22165  -32767 /*fromYear*/,
    -
    22166  -32767 /*toYear*/,
    -
    22167  1 /*inMonth*/,
    -
    22168  0 /*onDayOfWeek*/,
    -
    22169  1 /*onDayOfMonth*/,
    -
    22170  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22171  0 /*atTimeCode (0/15)*/,
    -
    22172  0 /*deltaMinutes*/,
    -
    22173  20 /*letterIndex ("MMT")*/,
    -
    22174  },
    -
    22175  // Rule Russia 1917 only - Jul 1 23:00 1:00 MST
    -
    22176  {
    -
    22177  1917 /*fromYear*/,
    -
    22178  1917 /*toYear*/,
    -
    22179  7 /*inMonth*/,
    -
    22180  0 /*onDayOfWeek*/,
    -
    22181  1 /*onDayOfMonth*/,
    -
    22182  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22183  5520 /*atTimeCode (82800/15)*/,
    -
    22184  60 /*deltaMinutes*/,
    -
    22185  23 /*letterIndex ("MST")*/,
    -
    22186  },
    -
    22187  // Rule Russia 1917 only - Dec 28 0:00 0 MMT
    -
    22188  {
    -
    22189  1917 /*fromYear*/,
    -
    22190  1917 /*toYear*/,
    -
    22191  12 /*inMonth*/,
    -
    22192  0 /*onDayOfWeek*/,
    -
    22193  28 /*onDayOfMonth*/,
    -
    22194  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22195  0 /*atTimeCode (0/15)*/,
    -
    22196  0 /*deltaMinutes*/,
    -
    22197  20 /*letterIndex ("MMT")*/,
    -
    22198  },
    -
    22199  // Rule Russia 1918 only - May 31 22:00 2:00 MDST
    -
    22200  {
    -
    22201  1918 /*fromYear*/,
    -
    22202  1918 /*toYear*/,
    -
    22203  5 /*inMonth*/,
    -
    22204  0 /*onDayOfWeek*/,
    -
    22205  31 /*onDayOfMonth*/,
    -
    22206  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22207  5280 /*atTimeCode (79200/15)*/,
    -
    22208  120 /*deltaMinutes*/,
    -
    22209  19 /*letterIndex ("MDST")*/,
    -
    22210  },
    -
    22211  // Rule Russia 1918 only - Sep 16 1:00 1:00 MST
    -
    22212  {
    -
    22213  1918 /*fromYear*/,
    -
    22214  1918 /*toYear*/,
    -
    22215  9 /*inMonth*/,
    -
    22216  0 /*onDayOfWeek*/,
    -
    22217  16 /*onDayOfMonth*/,
    -
    22218  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22219  240 /*atTimeCode (3600/15)*/,
    -
    22220  60 /*deltaMinutes*/,
    -
    22221  23 /*letterIndex ("MST")*/,
    -
    22222  },
    -
    22223  // Rule Russia 1919 only - May 31 23:00 2:00 MDST
    -
    22224  {
    -
    22225  1919 /*fromYear*/,
    -
    22226  1919 /*toYear*/,
    -
    22227  5 /*inMonth*/,
    -
    22228  0 /*onDayOfWeek*/,
    -
    22229  31 /*onDayOfMonth*/,
    -
    22230  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22231  5520 /*atTimeCode (82800/15)*/,
    -
    22232  120 /*deltaMinutes*/,
    -
    22233  19 /*letterIndex ("MDST")*/,
    -
    22234  },
    -
    22235  // Rule Russia 1919 only - Jul 1 0:00u 1:00 MSD
    -
    22236  {
    -
    22237  1919 /*fromYear*/,
    -
    22238  1919 /*toYear*/,
    -
    22239  7 /*inMonth*/,
    -
    22240  0 /*onDayOfWeek*/,
    -
    22241  1 /*onDayOfMonth*/,
    -
    22242  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    22243  0 /*atTimeCode (0/15)*/,
    -
    22244  60 /*deltaMinutes*/,
    -
    22245  21 /*letterIndex ("MSD")*/,
    -
    22246  },
    -
    22247  // Rule Russia 1919 only - Aug 16 0:00 0 MSK
    -
    22248  {
    -
    22249  1919 /*fromYear*/,
    -
    22250  1919 /*toYear*/,
    -
    22251  8 /*inMonth*/,
    -
    22252  0 /*onDayOfWeek*/,
    -
    22253  16 /*onDayOfMonth*/,
    -
    22254  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22255  0 /*atTimeCode (0/15)*/,
    -
    22256  0 /*deltaMinutes*/,
    -
    22257  22 /*letterIndex ("MSK")*/,
    -
    22258  },
    -
    22259  // Rule Russia 1921 only - Feb 14 23:00 1:00 MSD
    -
    22260  {
    -
    22261  1921 /*fromYear*/,
    -
    22262  1921 /*toYear*/,
    -
    22263  2 /*inMonth*/,
    -
    22264  0 /*onDayOfWeek*/,
    -
    22265  14 /*onDayOfMonth*/,
    -
    22266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22267  5520 /*atTimeCode (82800/15)*/,
    -
    22268  60 /*deltaMinutes*/,
    -
    22269  21 /*letterIndex ("MSD")*/,
    -
    22270  },
    -
    22271  // Rule Russia 1921 only - Mar 20 23:00 2:00 +05
    -
    22272  {
    -
    22273  1921 /*fromYear*/,
    -
    22274  1921 /*toYear*/,
    -
    22275  3 /*inMonth*/,
    -
    22276  0 /*onDayOfWeek*/,
    -
    22277  20 /*onDayOfMonth*/,
    -
    22278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22279  5520 /*atTimeCode (82800/15)*/,
    -
    22280  120 /*deltaMinutes*/,
    -
    22281  3 /*letterIndex ("+05")*/,
    -
    22282  },
    -
    22283  // Rule Russia 1921 only - Sep 1 0:00 1:00 MSD
    -
    22284  {
    -
    22285  1921 /*fromYear*/,
    -
    22286  1921 /*toYear*/,
    -
    22287  9 /*inMonth*/,
    -
    22288  0 /*onDayOfWeek*/,
    -
    22289  1 /*onDayOfMonth*/,
    -
    22290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22291  0 /*atTimeCode (0/15)*/,
    -
    22292  60 /*deltaMinutes*/,
    -
    22293  21 /*letterIndex ("MSD")*/,
    -
    22294  },
    -
    22295  // Rule Russia 1921 only - Oct 1 0:00 0 -
    -
    22296  {
    -
    22297  1921 /*fromYear*/,
    -
    22298  1921 /*toYear*/,
    -
    22299  10 /*inMonth*/,
    -
    22300  0 /*onDayOfWeek*/,
    -
    22301  1 /*onDayOfMonth*/,
    -
    22302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22303  0 /*atTimeCode (0/15)*/,
    -
    22304  0 /*deltaMinutes*/,
    -
    22305  0 /*letterIndex ("")*/,
    -
    22306  },
    -
    22307  // Rule Russia 1981 1984 - Apr 1 0:00 1:00 S
    -
    22308  {
    -
    22309  1981 /*fromYear*/,
    -
    22310  1984 /*toYear*/,
    -
    22311  4 /*inMonth*/,
    -
    22312  0 /*onDayOfWeek*/,
    -
    22313  1 /*onDayOfMonth*/,
    -
    22314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22315  0 /*atTimeCode (0/15)*/,
    -
    22316  60 /*deltaMinutes*/,
    -
    22317  25 /*letterIndex ("S")*/,
    -
    22318  },
    -
    22319  // Rule Russia 1981 1983 - Oct 1 0:00 0 -
    -
    22320  {
    -
    22321  1981 /*fromYear*/,
    -
    22322  1983 /*toYear*/,
    -
    22323  10 /*inMonth*/,
    -
    22324  0 /*onDayOfWeek*/,
    -
    22325  1 /*onDayOfMonth*/,
    -
    22326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22327  0 /*atTimeCode (0/15)*/,
    -
    22328  0 /*deltaMinutes*/,
    -
    22329  0 /*letterIndex ("")*/,
    -
    22330  },
    -
    22331  // Rule Russia 1984 1995 - Sep lastSun 2:00s 0 -
    -
    22332  {
    -
    22333  1984 /*fromYear*/,
    -
    22334  1995 /*toYear*/,
    -
    22335  9 /*inMonth*/,
    -
    22336  7 /*onDayOfWeek*/,
    -
    22337  0 /*onDayOfMonth*/,
    -
    22338  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22339  480 /*atTimeCode (7200/15)*/,
    -
    22340  0 /*deltaMinutes*/,
    -
    22341  0 /*letterIndex ("")*/,
    -
    22342  },
    -
    22343  // Rule Russia 1985 2010 - Mar lastSun 2:00s 1:00 S
    -
    22344  {
    -
    22345  1985 /*fromYear*/,
    -
    22346  2010 /*toYear*/,
    -
    22347  3 /*inMonth*/,
    -
    22348  7 /*onDayOfWeek*/,
    -
    22349  0 /*onDayOfMonth*/,
    -
    22350  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22351  480 /*atTimeCode (7200/15)*/,
    -
    22352  60 /*deltaMinutes*/,
    -
    22353  25 /*letterIndex ("S")*/,
    -
    22354  },
    -
    22355  // Rule Russia 1996 2010 - Oct lastSun 2:00s 0 -
    -
    22356  {
    -
    22357  1996 /*fromYear*/,
    -
    22358  2010 /*toYear*/,
    -
    22359  10 /*inMonth*/,
    -
    22360  7 /*onDayOfWeek*/,
    -
    22361  0 /*onDayOfMonth*/,
    -
    22362  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22363  480 /*atTimeCode (7200/15)*/,
    -
    22364  0 /*deltaMinutes*/,
    -
    22365  0 /*letterIndex ("")*/,
    -
    22366  },
    -
    22367 
    -
    22368 };
    -
    22369 
    -
    22370 const complete::Info::ZonePolicy kZonePolicyRussia ACE_TIME_PROGMEM = {
    -
    22371  kZoneRulesRussia /*rules*/,
    -
    22372  17 /*numRules*/,
    -
    22373 };
    -
    22374 
    -
    22375 //---------------------------------------------------------------------------
    -
    22376 // Policy name: RussiaAsia
    -
    22377 // Rules: 6
    -
    22378 //---------------------------------------------------------------------------
    -
    22379 
    -
    22380 static const complete::Info::ZoneRule kZoneRulesRussiaAsia[] ACE_TIME_PROGMEM = {
    -
    22381  // Anchor: Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 -
    -
    22382  {
    -
    22383  -32767 /*fromYear*/,
    -
    22384  -32767 /*toYear*/,
    -
    22385  1 /*inMonth*/,
    -
    22386  0 /*onDayOfWeek*/,
    -
    22387  1 /*onDayOfMonth*/,
    -
    22388  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22389  0 /*atTimeCode (0/15)*/,
    -
    22390  0 /*deltaMinutes*/,
    -
    22391  0 /*letterIndex ("")*/,
    -
    22392  },
    -
    22393  // Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 -
    -
    22394  {
    -
    22395  1981 /*fromYear*/,
    -
    22396  1984 /*toYear*/,
    -
    22397  4 /*inMonth*/,
    -
    22398  0 /*onDayOfWeek*/,
    -
    22399  1 /*onDayOfMonth*/,
    -
    22400  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22401  0 /*atTimeCode (0/15)*/,
    -
    22402  60 /*deltaMinutes*/,
    -
    22403  0 /*letterIndex ("")*/,
    -
    22404  },
    -
    22405  // Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 -
    -
    22406  {
    -
    22407  1981 /*fromYear*/,
    -
    22408  1983 /*toYear*/,
    -
    22409  10 /*inMonth*/,
    -
    22410  0 /*onDayOfWeek*/,
    -
    22411  1 /*onDayOfMonth*/,
    -
    22412  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22413  0 /*atTimeCode (0/15)*/,
    -
    22414  0 /*deltaMinutes*/,
    -
    22415  0 /*letterIndex ("")*/,
    -
    22416  },
    -
    22417  // Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 -
    -
    22418  {
    -
    22419  1984 /*fromYear*/,
    -
    22420  1995 /*toYear*/,
    -
    22421  9 /*inMonth*/,
    -
    22422  7 /*onDayOfWeek*/,
    -
    22423  0 /*onDayOfMonth*/,
    -
    22424  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22425  480 /*atTimeCode (7200/15)*/,
    -
    22426  0 /*deltaMinutes*/,
    -
    22427  0 /*letterIndex ("")*/,
    -
    22428  },
    -
    22429  // Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 -
    -
    22430  {
    -
    22431  1985 /*fromYear*/,
    -
    22432  2010 /*toYear*/,
    -
    22433  3 /*inMonth*/,
    -
    22434  7 /*onDayOfWeek*/,
    -
    22435  0 /*onDayOfMonth*/,
    -
    22436  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22437  480 /*atTimeCode (7200/15)*/,
    -
    22438  60 /*deltaMinutes*/,
    -
    22439  0 /*letterIndex ("")*/,
    -
    22440  },
    -
    22441  // Rule RussiaAsia 1996 2010 - Oct lastSun 2:00s 0 -
    -
    22442  {
    -
    22443  1996 /*fromYear*/,
    -
    22444  2010 /*toYear*/,
    -
    22445  10 /*inMonth*/,
    -
    22446  7 /*onDayOfWeek*/,
    -
    22447  0 /*onDayOfMonth*/,
    -
    22448  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22449  480 /*atTimeCode (7200/15)*/,
    -
    22450  0 /*deltaMinutes*/,
    -
    22451  0 /*letterIndex ("")*/,
    -
    22452  },
    -
    22453 
    -
    22454 };
    -
    22455 
    -
    22456 const complete::Info::ZonePolicy kZonePolicyRussiaAsia ACE_TIME_PROGMEM = {
    -
    22457  kZoneRulesRussiaAsia /*rules*/,
    -
    22458  6 /*numRules*/,
    -
    22459 };
    -
    22460 
    -
    22461 //---------------------------------------------------------------------------
    -
    22462 // Policy name: SA
    -
    22463 // Rules: 3
    -
    22464 //---------------------------------------------------------------------------
    -
    22465 
    -
    22466 static const complete::Info::ZoneRule kZoneRulesSA[] ACE_TIME_PROGMEM = {
    -
    22467  // Anchor: Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
    -
    22468  {
    -
    22469  -32767 /*fromYear*/,
    -
    22470  -32767 /*toYear*/,
    -
    22471  1 /*inMonth*/,
    -
    22472  0 /*onDayOfWeek*/,
    -
    22473  1 /*onDayOfMonth*/,
    -
    22474  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22475  0 /*atTimeCode (0/15)*/,
    -
    22476  0 /*deltaMinutes*/,
    -
    22477  0 /*letterIndex ("")*/,
    -
    22478  },
    -
    22479  // Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 -
    -
    22480  {
    -
    22481  1942 /*fromYear*/,
    -
    22482  1943 /*toYear*/,
    -
    22483  9 /*inMonth*/,
    -
    22484  7 /*onDayOfWeek*/,
    -
    22485  15 /*onDayOfMonth*/,
    -
    22486  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22487  480 /*atTimeCode (7200/15)*/,
    -
    22488  60 /*deltaMinutes*/,
    -
    22489  0 /*letterIndex ("")*/,
    -
    22490  },
    -
    22491  // Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
    -
    22492  {
    -
    22493  1943 /*fromYear*/,
    -
    22494  1944 /*toYear*/,
    -
    22495  3 /*inMonth*/,
    -
    22496  7 /*onDayOfWeek*/,
    -
    22497  15 /*onDayOfMonth*/,
    -
    22498  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22499  480 /*atTimeCode (7200/15)*/,
    -
    22500  0 /*deltaMinutes*/,
    -
    22501  0 /*letterIndex ("")*/,
    -
    22502  },
    -
    22503 
    -
    22504 };
    -
    22505 
    -
    22506 const complete::Info::ZonePolicy kZonePolicySA ACE_TIME_PROGMEM = {
    -
    22507  kZoneRulesSA /*rules*/,
    -
    22508  3 /*numRules*/,
    -
    22509 };
    -
    22510 
    -
    22511 //---------------------------------------------------------------------------
    -
    22512 // Policy name: Salv
    -
    22513 // Rules: 3
    -
    22514 //---------------------------------------------------------------------------
    -
    22515 
    -
    22516 static const complete::Info::ZoneRule kZoneRulesSalv[] ACE_TIME_PROGMEM = {
    -
    22517  // Anchor: Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
    -
    22518  {
    -
    22519  -32767 /*fromYear*/,
    -
    22520  -32767 /*toYear*/,
    -
    22521  1 /*inMonth*/,
    -
    22522  0 /*onDayOfWeek*/,
    -
    22523  1 /*onDayOfMonth*/,
    -
    22524  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22525  0 /*atTimeCode (0/15)*/,
    -
    22526  0 /*deltaMinutes*/,
    -
    22527  25 /*letterIndex ("S")*/,
    -
    22528  },
    -
    22529  // Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D
    -
    22530  {
    -
    22531  1987 /*fromYear*/,
    -
    22532  1988 /*toYear*/,
    -
    22533  5 /*inMonth*/,
    -
    22534  7 /*onDayOfWeek*/,
    -
    22535  1 /*onDayOfMonth*/,
    -
    22536  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22537  0 /*atTimeCode (0/15)*/,
    -
    22538  60 /*deltaMinutes*/,
    -
    22539  13 /*letterIndex ("D")*/,
    -
    22540  },
    -
    22541  // Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
    -
    22542  {
    -
    22543  1987 /*fromYear*/,
    -
    22544  1988 /*toYear*/,
    -
    22545  9 /*inMonth*/,
    -
    22546  7 /*onDayOfWeek*/,
    -
    22547  0 /*onDayOfMonth*/,
    -
    22548  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22549  0 /*atTimeCode (0/15)*/,
    -
    22550  0 /*deltaMinutes*/,
    -
    22551  25 /*letterIndex ("S")*/,
    -
    22552  },
    -
    22553 
    -
    22554 };
    -
    22555 
    -
    22556 const complete::Info::ZonePolicy kZonePolicySalv ACE_TIME_PROGMEM = {
    -
    22557  kZoneRulesSalv /*rules*/,
    -
    22558  3 /*numRules*/,
    -
    22559 };
    -
    22560 
    -
    22561 //---------------------------------------------------------------------------
    -
    22562 // Policy name: SanLuis
    -
    22563 // Rules: 3
    -
    22564 //---------------------------------------------------------------------------
    -
    22565 
    -
    22566 static const complete::Info::ZoneRule kZoneRulesSanLuis[] ACE_TIME_PROGMEM = {
    -
    22567  // Anchor: Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
    -
    22568  {
    -
    22569  -32767 /*fromYear*/,
    -
    22570  -32767 /*toYear*/,
    -
    22571  1 /*inMonth*/,
    -
    22572  0 /*onDayOfWeek*/,
    -
    22573  1 /*onDayOfMonth*/,
    -
    22574  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22575  0 /*atTimeCode (0/15)*/,
    -
    22576  0 /*deltaMinutes*/,
    -
    22577  0 /*letterIndex ("")*/,
    -
    22578  },
    -
    22579  // Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
    -
    22580  {
    -
    22581  2008 /*fromYear*/,
    -
    22582  2009 /*toYear*/,
    -
    22583  3 /*inMonth*/,
    -
    22584  7 /*onDayOfWeek*/,
    -
    22585  8 /*onDayOfMonth*/,
    -
    22586  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22587  0 /*atTimeCode (0/15)*/,
    -
    22588  0 /*deltaMinutes*/,
    -
    22589  0 /*letterIndex ("")*/,
    -
    22590  },
    -
    22591  // Rule SanLuis 2007 2008 - Oct Sun>=8 0:00 1:00 -
    -
    22592  {
    -
    22593  2007 /*fromYear*/,
    -
    22594  2008 /*toYear*/,
    -
    22595  10 /*inMonth*/,
    -
    22596  7 /*onDayOfWeek*/,
    -
    22597  8 /*onDayOfMonth*/,
    -
    22598  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22599  0 /*atTimeCode (0/15)*/,
    -
    22600  60 /*deltaMinutes*/,
    -
    22601  0 /*letterIndex ("")*/,
    -
    22602  },
    -
    22603 
    -
    22604 };
    -
    22605 
    -
    22606 const complete::Info::ZonePolicy kZonePolicySanLuis ACE_TIME_PROGMEM = {
    -
    22607  kZoneRulesSanLuis /*rules*/,
    -
    22608  3 /*numRules*/,
    -
    22609 };
    -
    22610 
    -
    22611 //---------------------------------------------------------------------------
    -
    22612 // Policy name: Shang
    -
    22613 // Rules: 15
    -
    22614 //---------------------------------------------------------------------------
    -
    22615 
    -
    22616 static const complete::Info::ZoneRule kZoneRulesShang[] ACE_TIME_PROGMEM = {
    -
    22617  // Anchor: Rule Shang 1919 only - Sep 30 24:00 0 S
    -
    22618  {
    -
    22619  -32767 /*fromYear*/,
    -
    22620  -32767 /*toYear*/,
    -
    22621  1 /*inMonth*/,
    -
    22622  0 /*onDayOfWeek*/,
    -
    22623  1 /*onDayOfMonth*/,
    -
    22624  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22625  0 /*atTimeCode (0/15)*/,
    -
    22626  0 /*deltaMinutes*/,
    -
    22627  25 /*letterIndex ("S")*/,
    -
    22628  },
    -
    22629  // Rule Shang 1919 only - Apr 12 24:00 1:00 D
    -
    22630  {
    -
    22631  1919 /*fromYear*/,
    -
    22632  1919 /*toYear*/,
    -
    22633  4 /*inMonth*/,
    -
    22634  0 /*onDayOfWeek*/,
    -
    22635  12 /*onDayOfMonth*/,
    -
    22636  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22637  5760 /*atTimeCode (86400/15)*/,
    -
    22638  60 /*deltaMinutes*/,
    -
    22639  13 /*letterIndex ("D")*/,
    -
    22640  },
    -
    22641  // Rule Shang 1919 only - Sep 30 24:00 0 S
    -
    22642  {
    -
    22643  1919 /*fromYear*/,
    -
    22644  1919 /*toYear*/,
    -
    22645  9 /*inMonth*/,
    -
    22646  0 /*onDayOfWeek*/,
    -
    22647  30 /*onDayOfMonth*/,
    -
    22648  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22649  5760 /*atTimeCode (86400/15)*/,
    -
    22650  0 /*deltaMinutes*/,
    -
    22651  25 /*letterIndex ("S")*/,
    -
    22652  },
    -
    22653  // Rule Shang 1940 only - Jun 1 0:00 1:00 D
    -
    22654  {
    -
    22655  1940 /*fromYear*/,
    -
    22656  1940 /*toYear*/,
    -
    22657  6 /*inMonth*/,
    -
    22658  0 /*onDayOfWeek*/,
    -
    22659  1 /*onDayOfMonth*/,
    -
    22660  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22661  0 /*atTimeCode (0/15)*/,
    -
    22662  60 /*deltaMinutes*/,
    -
    22663  13 /*letterIndex ("D")*/,
    -
    22664  },
    -
    22665  // Rule Shang 1940 only - Oct 12 24:00 0 S
    -
    22666  {
    -
    22667  1940 /*fromYear*/,
    -
    22668  1940 /*toYear*/,
    -
    22669  10 /*inMonth*/,
    -
    22670  0 /*onDayOfWeek*/,
    -
    22671  12 /*onDayOfMonth*/,
    -
    22672  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22673  5760 /*atTimeCode (86400/15)*/,
    -
    22674  0 /*deltaMinutes*/,
    -
    22675  25 /*letterIndex ("S")*/,
    -
    22676  },
    -
    22677  // Rule Shang 1941 only - Mar 15 0:00 1:00 D
    -
    22678  {
    -
    22679  1941 /*fromYear*/,
    -
    22680  1941 /*toYear*/,
    -
    22681  3 /*inMonth*/,
    -
    22682  0 /*onDayOfWeek*/,
    -
    22683  15 /*onDayOfMonth*/,
    -
    22684  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22685  0 /*atTimeCode (0/15)*/,
    -
    22686  60 /*deltaMinutes*/,
    -
    22687  13 /*letterIndex ("D")*/,
    -
    22688  },
    -
    22689  // Rule Shang 1941 only - Nov 1 24:00 0 S
    -
    22690  {
    -
    22691  1941 /*fromYear*/,
    -
    22692  1941 /*toYear*/,
    -
    22693  11 /*inMonth*/,
    -
    22694  0 /*onDayOfWeek*/,
    -
    22695  1 /*onDayOfMonth*/,
    -
    22696  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22697  5760 /*atTimeCode (86400/15)*/,
    -
    22698  0 /*deltaMinutes*/,
    -
    22699  25 /*letterIndex ("S")*/,
    -
    22700  },
    -
    22701  // Rule Shang 1942 only - Jan 31 0:00 1:00 D
    -
    22702  {
    -
    22703  1942 /*fromYear*/,
    -
    22704  1942 /*toYear*/,
    -
    22705  1 /*inMonth*/,
    -
    22706  0 /*onDayOfWeek*/,
    -
    22707  31 /*onDayOfMonth*/,
    -
    22708  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22709  0 /*atTimeCode (0/15)*/,
    -
    22710  60 /*deltaMinutes*/,
    -
    22711  13 /*letterIndex ("D")*/,
    -
    22712  },
    -
    22713  // Rule Shang 1945 only - Sep 1 24:00 0 S
    -
    22714  {
    -
    22715  1945 /*fromYear*/,
    -
    22716  1945 /*toYear*/,
    -
    22717  9 /*inMonth*/,
    -
    22718  0 /*onDayOfWeek*/,
    -
    22719  1 /*onDayOfMonth*/,
    -
    22720  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22721  5760 /*atTimeCode (86400/15)*/,
    -
    22722  0 /*deltaMinutes*/,
    -
    22723  25 /*letterIndex ("S")*/,
    -
    22724  },
    -
    22725  // Rule Shang 1946 only - May 15 0:00 1:00 D
    -
    22726  {
    -
    22727  1946 /*fromYear*/,
    -
    22728  1946 /*toYear*/,
    -
    22729  5 /*inMonth*/,
    -
    22730  0 /*onDayOfWeek*/,
    -
    22731  15 /*onDayOfMonth*/,
    -
    22732  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22733  0 /*atTimeCode (0/15)*/,
    -
    22734  60 /*deltaMinutes*/,
    -
    22735  13 /*letterIndex ("D")*/,
    -
    22736  },
    -
    22737  // Rule Shang 1946 only - Sep 30 24:00 0 S
    -
    22738  {
    -
    22739  1946 /*fromYear*/,
    -
    22740  1946 /*toYear*/,
    -
    22741  9 /*inMonth*/,
    -
    22742  0 /*onDayOfWeek*/,
    -
    22743  30 /*onDayOfMonth*/,
    -
    22744  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22745  5760 /*atTimeCode (86400/15)*/,
    -
    22746  0 /*deltaMinutes*/,
    -
    22747  25 /*letterIndex ("S")*/,
    -
    22748  },
    -
    22749  // Rule Shang 1947 only - Apr 15 0:00 1:00 D
    -
    22750  {
    -
    22751  1947 /*fromYear*/,
    -
    22752  1947 /*toYear*/,
    -
    22753  4 /*inMonth*/,
    -
    22754  0 /*onDayOfWeek*/,
    -
    22755  15 /*onDayOfMonth*/,
    -
    22756  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22757  0 /*atTimeCode (0/15)*/,
    -
    22758  60 /*deltaMinutes*/,
    -
    22759  13 /*letterIndex ("D")*/,
    -
    22760  },
    -
    22761  // Rule Shang 1947 only - Oct 31 24:00 0 S
    -
    22762  {
    -
    22763  1947 /*fromYear*/,
    -
    22764  1947 /*toYear*/,
    -
    22765  10 /*inMonth*/,
    -
    22766  0 /*onDayOfWeek*/,
    -
    22767  31 /*onDayOfMonth*/,
    -
    22768  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22769  5760 /*atTimeCode (86400/15)*/,
    -
    22770  0 /*deltaMinutes*/,
    -
    22771  25 /*letterIndex ("S")*/,
    -
    22772  },
    -
    22773  // Rule Shang 1948 1949 - May 1 0:00 1:00 D
    -
    22774  {
    -
    22775  1948 /*fromYear*/,
    -
    22776  1949 /*toYear*/,
    -
    22777  5 /*inMonth*/,
    -
    22778  0 /*onDayOfWeek*/,
    -
    22779  1 /*onDayOfMonth*/,
    -
    22780  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22781  0 /*atTimeCode (0/15)*/,
    -
    22782  60 /*deltaMinutes*/,
    -
    22783  13 /*letterIndex ("D")*/,
    -
    22784  },
    -
    22785  // Rule Shang 1948 1949 - Sep 30 24:00 0 S
    -
    22786  {
    -
    22787  1948 /*fromYear*/,
    -
    22788  1949 /*toYear*/,
    -
    22789  9 /*inMonth*/,
    -
    22790  0 /*onDayOfWeek*/,
    -
    22791  30 /*onDayOfMonth*/,
    -
    22792  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22793  5760 /*atTimeCode (86400/15)*/,
    -
    22794  0 /*deltaMinutes*/,
    -
    22795  25 /*letterIndex ("S")*/,
    -
    22796  },
    -
    22797 
    -
    22798 };
    -
    22799 
    -
    22800 const complete::Info::ZonePolicy kZonePolicyShang ACE_TIME_PROGMEM = {
    -
    22801  kZoneRulesShang /*rules*/,
    -
    22802  15 /*numRules*/,
    -
    22803 };
    -
    22804 
    -
    22805 //---------------------------------------------------------------------------
    -
    22806 // Policy name: SovietZone
    -
    22807 // Rules: 4
    -
    22808 //---------------------------------------------------------------------------
    -
    22809 
    -
    22810 static const complete::Info::ZoneRule kZoneRulesSovietZone[] ACE_TIME_PROGMEM = {
    -
    22811  // Anchor: Rule SovietZone 1945 only - Nov 18 2:00s 0 -
    -
    22812  {
    -
    22813  -32767 /*fromYear*/,
    -
    22814  -32767 /*toYear*/,
    -
    22815  1 /*inMonth*/,
    -
    22816  0 /*onDayOfWeek*/,
    -
    22817  1 /*onDayOfMonth*/,
    -
    22818  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22819  0 /*atTimeCode (0/15)*/,
    -
    22820  0 /*deltaMinutes*/,
    -
    22821  0 /*letterIndex ("")*/,
    -
    22822  },
    -
    22823  // Rule SovietZone 1945 only - May 24 2:00 2:00 M
    -
    22824  {
    -
    22825  1945 /*fromYear*/,
    -
    22826  1945 /*toYear*/,
    -
    22827  5 /*inMonth*/,
    -
    22828  0 /*onDayOfWeek*/,
    -
    22829  24 /*onDayOfMonth*/,
    -
    22830  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22831  480 /*atTimeCode (7200/15)*/,
    -
    22832  120 /*deltaMinutes*/,
    -
    22833  18 /*letterIndex ("M")*/,
    -
    22834  },
    -
    22835  // Rule SovietZone 1945 only - Sep 24 3:00 1:00 S
    -
    22836  {
    -
    22837  1945 /*fromYear*/,
    -
    22838  1945 /*toYear*/,
    -
    22839  9 /*inMonth*/,
    -
    22840  0 /*onDayOfWeek*/,
    -
    22841  24 /*onDayOfMonth*/,
    -
    22842  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22843  720 /*atTimeCode (10800/15)*/,
    -
    22844  60 /*deltaMinutes*/,
    -
    22845  25 /*letterIndex ("S")*/,
    -
    22846  },
    -
    22847  // Rule SovietZone 1945 only - Nov 18 2:00s 0 -
    -
    22848  {
    -
    22849  1945 /*fromYear*/,
    -
    22850  1945 /*toYear*/,
    -
    22851  11 /*inMonth*/,
    -
    22852  0 /*onDayOfWeek*/,
    -
    22853  18 /*onDayOfMonth*/,
    -
    22854  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22855  480 /*atTimeCode (7200/15)*/,
    -
    22856  0 /*deltaMinutes*/,
    -
    22857  0 /*letterIndex ("")*/,
    -
    22858  },
    -
    22859 
    -
    22860 };
    -
    22861 
    -
    22862 const complete::Info::ZonePolicy kZonePolicySovietZone ACE_TIME_PROGMEM = {
    -
    22863  kZoneRulesSovietZone /*rules*/,
    -
    22864  4 /*numRules*/,
    -
    22865 };
    -
    22866 
    -
    22867 //---------------------------------------------------------------------------
    -
    22868 // Policy name: Spain
    -
    22869 // Rules: 31
    -
    22870 //---------------------------------------------------------------------------
    -
    22871 
    -
    22872 static const complete::Info::ZoneRule kZoneRulesSpain[] ACE_TIME_PROGMEM = {
    -
    22873  // Anchor: Rule Spain 1918 1919 - Oct 6 24:00s 0 -
    -
    22874  {
    -
    22875  -32767 /*fromYear*/,
    -
    22876  -32767 /*toYear*/,
    -
    22877  1 /*inMonth*/,
    -
    22878  0 /*onDayOfWeek*/,
    -
    22879  1 /*onDayOfMonth*/,
    -
    22880  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22881  0 /*atTimeCode (0/15)*/,
    -
    22882  0 /*deltaMinutes*/,
    -
    22883  0 /*letterIndex ("")*/,
    -
    22884  },
    -
    22885  // Rule Spain 1918 only - Apr 15 23:00 1:00 S
    -
    22886  {
    -
    22887  1918 /*fromYear*/,
    -
    22888  1918 /*toYear*/,
    -
    22889  4 /*inMonth*/,
    -
    22890  0 /*onDayOfWeek*/,
    -
    22891  15 /*onDayOfMonth*/,
    -
    22892  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22893  5520 /*atTimeCode (82800/15)*/,
    -
    22894  60 /*deltaMinutes*/,
    -
    22895  25 /*letterIndex ("S")*/,
    -
    22896  },
    -
    22897  // Rule Spain 1918 1919 - Oct 6 24:00s 0 -
    -
    22898  {
    -
    22899  1918 /*fromYear*/,
    -
    22900  1919 /*toYear*/,
    -
    22901  10 /*inMonth*/,
    -
    22902  0 /*onDayOfWeek*/,
    -
    22903  6 /*onDayOfMonth*/,
    -
    22904  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22905  5760 /*atTimeCode (86400/15)*/,
    -
    22906  0 /*deltaMinutes*/,
    -
    22907  0 /*letterIndex ("")*/,
    -
    22908  },
    -
    22909  // Rule Spain 1919 only - Apr 6 23:00 1:00 S
    -
    22910  {
    -
    22911  1919 /*fromYear*/,
    -
    22912  1919 /*toYear*/,
    -
    22913  4 /*inMonth*/,
    -
    22914  0 /*onDayOfWeek*/,
    -
    22915  6 /*onDayOfMonth*/,
    -
    22916  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22917  5520 /*atTimeCode (82800/15)*/,
    -
    22918  60 /*deltaMinutes*/,
    -
    22919  25 /*letterIndex ("S")*/,
    -
    22920  },
    -
    22921  // Rule Spain 1924 only - Apr 16 23:00 1:00 S
    -
    22922  {
    -
    22923  1924 /*fromYear*/,
    -
    22924  1924 /*toYear*/,
    -
    22925  4 /*inMonth*/,
    -
    22926  0 /*onDayOfWeek*/,
    -
    22927  16 /*onDayOfMonth*/,
    -
    22928  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22929  5520 /*atTimeCode (82800/15)*/,
    -
    22930  60 /*deltaMinutes*/,
    -
    22931  25 /*letterIndex ("S")*/,
    -
    22932  },
    -
    22933  // Rule Spain 1924 only - Oct 4 24:00s 0 -
    -
    22934  {
    -
    22935  1924 /*fromYear*/,
    -
    22936  1924 /*toYear*/,
    -
    22937  10 /*inMonth*/,
    -
    22938  0 /*onDayOfWeek*/,
    -
    22939  4 /*onDayOfMonth*/,
    -
    22940  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22941  5760 /*atTimeCode (86400/15)*/,
    -
    22942  0 /*deltaMinutes*/,
    -
    22943  0 /*letterIndex ("")*/,
    -
    22944  },
    -
    22945  // Rule Spain 1926 only - Apr 17 23:00 1:00 S
    -
    22946  {
    -
    22947  1926 /*fromYear*/,
    -
    22948  1926 /*toYear*/,
    -
    22949  4 /*inMonth*/,
    -
    22950  0 /*onDayOfWeek*/,
    -
    22951  17 /*onDayOfMonth*/,
    -
    22952  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22953  5520 /*atTimeCode (82800/15)*/,
    -
    22954  60 /*deltaMinutes*/,
    -
    22955  25 /*letterIndex ("S")*/,
    -
    22956  },
    -
    22957  // Rule Spain 1926 1929 - Oct Sat>=1 24:00s 0 -
    -
    22958  {
    -
    22959  1926 /*fromYear*/,
    -
    22960  1929 /*toYear*/,
    -
    22961  10 /*inMonth*/,
    -
    22962  6 /*onDayOfWeek*/,
    -
    22963  1 /*onDayOfMonth*/,
    -
    22964  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    22965  5760 /*atTimeCode (86400/15)*/,
    -
    22966  0 /*deltaMinutes*/,
    -
    22967  0 /*letterIndex ("")*/,
    -
    22968  },
    -
    22969  // Rule Spain 1927 only - Apr 9 23:00 1:00 S
    -
    22970  {
    -
    22971  1927 /*fromYear*/,
    -
    22972  1927 /*toYear*/,
    -
    22973  4 /*inMonth*/,
    -
    22974  0 /*onDayOfWeek*/,
    -
    22975  9 /*onDayOfMonth*/,
    -
    22976  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22977  5520 /*atTimeCode (82800/15)*/,
    -
    22978  60 /*deltaMinutes*/,
    -
    22979  25 /*letterIndex ("S")*/,
    -
    22980  },
    -
    22981  // Rule Spain 1928 only - Apr 15 0:00 1:00 S
    -
    22982  {
    -
    22983  1928 /*fromYear*/,
    -
    22984  1928 /*toYear*/,
    -
    22985  4 /*inMonth*/,
    -
    22986  0 /*onDayOfWeek*/,
    -
    22987  15 /*onDayOfMonth*/,
    -
    22988  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    22989  0 /*atTimeCode (0/15)*/,
    -
    22990  60 /*deltaMinutes*/,
    -
    22991  25 /*letterIndex ("S")*/,
    -
    22992  },
    -
    22993  // Rule Spain 1929 only - Apr 20 23:00 1:00 S
    -
    22994  {
    -
    22995  1929 /*fromYear*/,
    -
    22996  1929 /*toYear*/,
    -
    22997  4 /*inMonth*/,
    -
    22998  0 /*onDayOfWeek*/,
    -
    22999  20 /*onDayOfMonth*/,
    -
    23000  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23001  5520 /*atTimeCode (82800/15)*/,
    -
    23002  60 /*deltaMinutes*/,
    -
    23003  25 /*letterIndex ("S")*/,
    -
    23004  },
    -
    23005  // Rule Spain 1937 only - Jun 16 23:00 1:00 S
    -
    23006  {
    -
    23007  1937 /*fromYear*/,
    -
    23008  1937 /*toYear*/,
    -
    23009  6 /*inMonth*/,
    -
    23010  0 /*onDayOfWeek*/,
    -
    23011  16 /*onDayOfMonth*/,
    -
    23012  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23013  5520 /*atTimeCode (82800/15)*/,
    -
    23014  60 /*deltaMinutes*/,
    -
    23015  25 /*letterIndex ("S")*/,
    -
    23016  },
    -
    23017  // Rule Spain 1937 only - Oct 2 24:00s 0 -
    -
    23018  {
    -
    23019  1937 /*fromYear*/,
    -
    23020  1937 /*toYear*/,
    -
    23021  10 /*inMonth*/,
    -
    23022  0 /*onDayOfWeek*/,
    -
    23023  2 /*onDayOfMonth*/,
    -
    23024  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    23025  5760 /*atTimeCode (86400/15)*/,
    -
    23026  0 /*deltaMinutes*/,
    -
    23027  0 /*letterIndex ("")*/,
    -
    23028  },
    -
    23029  // Rule Spain 1938 only - Apr 2 23:00 1:00 S
    -
    23030  {
    -
    23031  1938 /*fromYear*/,
    -
    23032  1938 /*toYear*/,
    -
    23033  4 /*inMonth*/,
    -
    23034  0 /*onDayOfWeek*/,
    -
    23035  2 /*onDayOfMonth*/,
    -
    23036  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23037  5520 /*atTimeCode (82800/15)*/,
    -
    23038  60 /*deltaMinutes*/,
    -
    23039  25 /*letterIndex ("S")*/,
    -
    23040  },
    -
    23041  // Rule Spain 1938 only - Apr 30 23:00 2:00 M
    -
    23042  {
    -
    23043  1938 /*fromYear*/,
    -
    23044  1938 /*toYear*/,
    -
    23045  4 /*inMonth*/,
    -
    23046  0 /*onDayOfWeek*/,
    -
    23047  30 /*onDayOfMonth*/,
    -
    23048  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23049  5520 /*atTimeCode (82800/15)*/,
    -
    23050  120 /*deltaMinutes*/,
    -
    23051  18 /*letterIndex ("M")*/,
    -
    23052  },
    -
    23053  // Rule Spain 1938 only - Oct 2 24:00 1:00 S
    -
    23054  {
    -
    23055  1938 /*fromYear*/,
    -
    23056  1938 /*toYear*/,
    -
    23057  10 /*inMonth*/,
    -
    23058  0 /*onDayOfWeek*/,
    -
    23059  2 /*onDayOfMonth*/,
    -
    23060  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23061  5760 /*atTimeCode (86400/15)*/,
    -
    23062  60 /*deltaMinutes*/,
    -
    23063  25 /*letterIndex ("S")*/,
    -
    23064  },
    -
    23065  // Rule Spain 1939 only - Oct 7 24:00s 0 -
    -
    23066  {
    -
    23067  1939 /*fromYear*/,
    -
    23068  1939 /*toYear*/,
    -
    23069  10 /*inMonth*/,
    -
    23070  0 /*onDayOfWeek*/,
    -
    23071  7 /*onDayOfMonth*/,
    -
    23072  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    23073  5760 /*atTimeCode (86400/15)*/,
    -
    23074  0 /*deltaMinutes*/,
    -
    23075  0 /*letterIndex ("")*/,
    -
    23076  },
    -
    23077  // Rule Spain 1942 only - May 2 23:00 1:00 S
    -
    23078  {
    -
    23079  1942 /*fromYear*/,
    -
    23080  1942 /*toYear*/,
    -
    23081  5 /*inMonth*/,
    -
    23082  0 /*onDayOfWeek*/,
    -
    23083  2 /*onDayOfMonth*/,
    -
    23084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23085  5520 /*atTimeCode (82800/15)*/,
    -
    23086  60 /*deltaMinutes*/,
    -
    23087  25 /*letterIndex ("S")*/,
    -
    23088  },
    -
    23089  // Rule Spain 1942 only - Sep 1 1:00 0 -
    -
    23090  {
    -
    23091  1942 /*fromYear*/,
    -
    23092  1942 /*toYear*/,
    -
    23093  9 /*inMonth*/,
    -
    23094  0 /*onDayOfWeek*/,
    -
    23095  1 /*onDayOfMonth*/,
    -
    23096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23097  240 /*atTimeCode (3600/15)*/,
    -
    23098  0 /*deltaMinutes*/,
    -
    23099  0 /*letterIndex ("")*/,
    -
    23100  },
    -
    23101  // Rule Spain 1943 1946 - Apr Sat>=13 23:00 1:00 S
    -
    23102  {
    -
    23103  1943 /*fromYear*/,
    -
    23104  1946 /*toYear*/,
    -
    23105  4 /*inMonth*/,
    -
    23106  6 /*onDayOfWeek*/,
    -
    23107  13 /*onDayOfMonth*/,
    -
    23108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23109  5520 /*atTimeCode (82800/15)*/,
    -
    23110  60 /*deltaMinutes*/,
    -
    23111  25 /*letterIndex ("S")*/,
    -
    23112  },
    -
    23113  // Rule Spain 1943 1944 - Oct Sun>=1 1:00 0 -
    -
    23114  {
    -
    23115  1943 /*fromYear*/,
    -
    23116  1944 /*toYear*/,
    -
    23117  10 /*inMonth*/,
    -
    23118  7 /*onDayOfWeek*/,
    -
    23119  1 /*onDayOfMonth*/,
    -
    23120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23121  240 /*atTimeCode (3600/15)*/,
    -
    23122  0 /*deltaMinutes*/,
    -
    23123  0 /*letterIndex ("")*/,
    -
    23124  },
    -
    23125  // Rule Spain 1945 1946 - Sep lastSun 1:00 0 -
    -
    23126  {
    -
    23127  1945 /*fromYear*/,
    -
    23128  1946 /*toYear*/,
    -
    23129  9 /*inMonth*/,
    -
    23130  7 /*onDayOfWeek*/,
    -
    23131  0 /*onDayOfMonth*/,
    -
    23132  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23133  240 /*atTimeCode (3600/15)*/,
    -
    23134  0 /*deltaMinutes*/,
    -
    23135  0 /*letterIndex ("")*/,
    -
    23136  },
    -
    23137  // Rule Spain 1949 only - Apr 30 23:00 1:00 S
    -
    23138  {
    -
    23139  1949 /*fromYear*/,
    -
    23140  1949 /*toYear*/,
    -
    23141  4 /*inMonth*/,
    -
    23142  0 /*onDayOfWeek*/,
    -
    23143  30 /*onDayOfMonth*/,
    -
    23144  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23145  5520 /*atTimeCode (82800/15)*/,
    -
    23146  60 /*deltaMinutes*/,
    -
    23147  25 /*letterIndex ("S")*/,
    -
    23148  },
    -
    23149  // Rule Spain 1949 only - Oct 2 1:00 0 -
    -
    23150  {
    -
    23151  1949 /*fromYear*/,
    -
    23152  1949 /*toYear*/,
    -
    23153  10 /*inMonth*/,
    -
    23154  0 /*onDayOfWeek*/,
    -
    23155  2 /*onDayOfMonth*/,
    -
    23156  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23157  240 /*atTimeCode (3600/15)*/,
    -
    23158  0 /*deltaMinutes*/,
    -
    23159  0 /*letterIndex ("")*/,
    -
    23160  },
    -
    23161  // Rule Spain 1974 1975 - Apr Sat>=12 23:00 1:00 S
    -
    23162  {
    -
    23163  1974 /*fromYear*/,
    -
    23164  1975 /*toYear*/,
    -
    23165  4 /*inMonth*/,
    -
    23166  6 /*onDayOfWeek*/,
    -
    23167  12 /*onDayOfMonth*/,
    -
    23168  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23169  5520 /*atTimeCode (82800/15)*/,
    -
    23170  60 /*deltaMinutes*/,
    -
    23171  25 /*letterIndex ("S")*/,
    -
    23172  },
    -
    23173  // Rule Spain 1974 1975 - Oct Sun>=1 1:00 0 -
    -
    23174  {
    -
    23175  1974 /*fromYear*/,
    -
    23176  1975 /*toYear*/,
    -
    23177  10 /*inMonth*/,
    -
    23178  7 /*onDayOfWeek*/,
    -
    23179  1 /*onDayOfMonth*/,
    -
    23180  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23181  240 /*atTimeCode (3600/15)*/,
    -
    23182  0 /*deltaMinutes*/,
    -
    23183  0 /*letterIndex ("")*/,
    -
    23184  },
    -
    23185  // Rule Spain 1976 only - Mar 27 23:00 1:00 S
    -
    23186  {
    -
    23187  1976 /*fromYear*/,
    -
    23188  1976 /*toYear*/,
    -
    23189  3 /*inMonth*/,
    -
    23190  0 /*onDayOfWeek*/,
    -
    23191  27 /*onDayOfMonth*/,
    -
    23192  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23193  5520 /*atTimeCode (82800/15)*/,
    -
    23194  60 /*deltaMinutes*/,
    -
    23195  25 /*letterIndex ("S")*/,
    -
    23196  },
    -
    23197  // Rule Spain 1976 1977 - Sep lastSun 1:00 0 -
    -
    23198  {
    -
    23199  1976 /*fromYear*/,
    -
    23200  1977 /*toYear*/,
    -
    23201  9 /*inMonth*/,
    -
    23202  7 /*onDayOfWeek*/,
    -
    23203  0 /*onDayOfMonth*/,
    -
    23204  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23205  240 /*atTimeCode (3600/15)*/,
    -
    23206  0 /*deltaMinutes*/,
    -
    23207  0 /*letterIndex ("")*/,
    -
    23208  },
    -
    23209  // Rule Spain 1977 only - Apr 2 23:00 1:00 S
    -
    23210  {
    -
    23211  1977 /*fromYear*/,
    -
    23212  1977 /*toYear*/,
    -
    23213  4 /*inMonth*/,
    -
    23214  0 /*onDayOfWeek*/,
    -
    23215  2 /*onDayOfMonth*/,
    -
    23216  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23217  5520 /*atTimeCode (82800/15)*/,
    -
    23218  60 /*deltaMinutes*/,
    -
    23219  25 /*letterIndex ("S")*/,
    -
    23220  },
    -
    23221  // Rule Spain 1978 only - Apr 2 2:00s 1:00 S
    -
    23222  {
    -
    23223  1978 /*fromYear*/,
    -
    23224  1978 /*toYear*/,
    -
    23225  4 /*inMonth*/,
    -
    23226  0 /*onDayOfWeek*/,
    -
    23227  2 /*onDayOfMonth*/,
    -
    23228  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    23229  480 /*atTimeCode (7200/15)*/,
    -
    23230  60 /*deltaMinutes*/,
    -
    23231  25 /*letterIndex ("S")*/,
    -
    23232  },
    -
    23233  // Rule Spain 1978 only - Oct 1 2:00s 0 -
    -
    23234  {
    -
    23235  1978 /*fromYear*/,
    -
    23236  1978 /*toYear*/,
    -
    23237  10 /*inMonth*/,
    -
    23238  0 /*onDayOfWeek*/,
    -
    23239  1 /*onDayOfMonth*/,
    -
    23240  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    23241  480 /*atTimeCode (7200/15)*/,
    -
    23242  0 /*deltaMinutes*/,
    -
    23243  0 /*letterIndex ("")*/,
    -
    23244  },
    -
    23245 
    -
    23246 };
    -
    23247 
    -
    23248 const complete::Info::ZonePolicy kZonePolicySpain ACE_TIME_PROGMEM = {
    -
    23249  kZoneRulesSpain /*rules*/,
    -
    23250  31 /*numRules*/,
    -
    23251 };
    -
    23252 
    -
    23253 //---------------------------------------------------------------------------
    -
    23254 // Policy name: SpainAfrica
    -
    23255 // Rules: 10
    -
    23256 //---------------------------------------------------------------------------
    -
    23257 
    -
    23258 static const complete::Info::ZoneRule kZoneRulesSpainAfrica[] ACE_TIME_PROGMEM = {
    -
    23259  // Anchor: Rule SpainAfrica 1967 only - Oct 1 0:00 0 -
    -
    23260  {
    -
    23261  -32767 /*fromYear*/,
    -
    23262  -32767 /*toYear*/,
    -
    23263  1 /*inMonth*/,
    -
    23264  0 /*onDayOfWeek*/,
    -
    23265  1 /*onDayOfMonth*/,
    -
    23266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23267  0 /*atTimeCode (0/15)*/,
    -
    23268  0 /*deltaMinutes*/,
    -
    23269  0 /*letterIndex ("")*/,
    -
    23270  },
    -
    23271  // Rule SpainAfrica 1967 only - Jun 3 12:00 1:00 S
    -
    23272  {
    -
    23273  1967 /*fromYear*/,
    -
    23274  1967 /*toYear*/,
    -
    23275  6 /*inMonth*/,
    -
    23276  0 /*onDayOfWeek*/,
    -
    23277  3 /*onDayOfMonth*/,
    -
    23278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23279  2880 /*atTimeCode (43200/15)*/,
    -
    23280  60 /*deltaMinutes*/,
    -
    23281  25 /*letterIndex ("S")*/,
    -
    23282  },
    -
    23283  // Rule SpainAfrica 1967 only - Oct 1 0:00 0 -
    -
    23284  {
    -
    23285  1967 /*fromYear*/,
    -
    23286  1967 /*toYear*/,
    -
    23287  10 /*inMonth*/,
    -
    23288  0 /*onDayOfWeek*/,
    -
    23289  1 /*onDayOfMonth*/,
    -
    23290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23291  0 /*atTimeCode (0/15)*/,
    -
    23292  0 /*deltaMinutes*/,
    -
    23293  0 /*letterIndex ("")*/,
    -
    23294  },
    -
    23295  // Rule SpainAfrica 1974 only - Jun 24 0:00 1:00 S
    -
    23296  {
    -
    23297  1974 /*fromYear*/,
    -
    23298  1974 /*toYear*/,
    -
    23299  6 /*inMonth*/,
    -
    23300  0 /*onDayOfWeek*/,
    -
    23301  24 /*onDayOfMonth*/,
    -
    23302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23303  0 /*atTimeCode (0/15)*/,
    -
    23304  60 /*deltaMinutes*/,
    -
    23305  25 /*letterIndex ("S")*/,
    -
    23306  },
    -
    23307  // Rule SpainAfrica 1974 only - Sep 1 0:00 0 -
    -
    23308  {
    -
    23309  1974 /*fromYear*/,
    -
    23310  1974 /*toYear*/,
    -
    23311  9 /*inMonth*/,
    -
    23312  0 /*onDayOfWeek*/,
    -
    23313  1 /*onDayOfMonth*/,
    -
    23314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23315  0 /*atTimeCode (0/15)*/,
    -
    23316  0 /*deltaMinutes*/,
    -
    23317  0 /*letterIndex ("")*/,
    -
    23318  },
    -
    23319  // Rule SpainAfrica 1976 1977 - May 1 0:00 1:00 S
    -
    23320  {
    -
    23321  1976 /*fromYear*/,
    -
    23322  1977 /*toYear*/,
    -
    23323  5 /*inMonth*/,
    -
    23324  0 /*onDayOfWeek*/,
    -
    23325  1 /*onDayOfMonth*/,
    -
    23326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23327  0 /*atTimeCode (0/15)*/,
    -
    23328  60 /*deltaMinutes*/,
    -
    23329  25 /*letterIndex ("S")*/,
    -
    23330  },
    -
    23331  // Rule SpainAfrica 1976 only - Aug 1 0:00 0 -
    -
    23332  {
    -
    23333  1976 /*fromYear*/,
    -
    23334  1976 /*toYear*/,
    -
    23335  8 /*inMonth*/,
    -
    23336  0 /*onDayOfWeek*/,
    -
    23337  1 /*onDayOfMonth*/,
    -
    23338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23339  0 /*atTimeCode (0/15)*/,
    -
    23340  0 /*deltaMinutes*/,
    -
    23341  0 /*letterIndex ("")*/,
    -
    23342  },
    -
    23343  // Rule SpainAfrica 1977 only - Sep 28 0:00 0 -
    -
    23344  {
    -
    23345  1977 /*fromYear*/,
    -
    23346  1977 /*toYear*/,
    -
    23347  9 /*inMonth*/,
    -
    23348  0 /*onDayOfWeek*/,
    -
    23349  28 /*onDayOfMonth*/,
    -
    23350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23351  0 /*atTimeCode (0/15)*/,
    -
    23352  0 /*deltaMinutes*/,
    -
    23353  0 /*letterIndex ("")*/,
    -
    23354  },
    -
    23355  // Rule SpainAfrica 1978 only - Jun 1 0:00 1:00 S
    -
    23356  {
    -
    23357  1978 /*fromYear*/,
    -
    23358  1978 /*toYear*/,
    -
    23359  6 /*inMonth*/,
    -
    23360  0 /*onDayOfWeek*/,
    -
    23361  1 /*onDayOfMonth*/,
    -
    23362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23363  0 /*atTimeCode (0/15)*/,
    -
    23364  60 /*deltaMinutes*/,
    -
    23365  25 /*letterIndex ("S")*/,
    -
    23366  },
    -
    23367  // Rule SpainAfrica 1978 only - Aug 4 0:00 0 -
    -
    23368  {
    -
    23369  1978 /*fromYear*/,
    -
    23370  1978 /*toYear*/,
    -
    23371  8 /*inMonth*/,
    -
    23372  0 /*onDayOfWeek*/,
    -
    23373  4 /*onDayOfMonth*/,
    -
    23374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23375  0 /*atTimeCode (0/15)*/,
    -
    23376  0 /*deltaMinutes*/,
    -
    23377  0 /*letterIndex ("")*/,
    -
    23378  },
    -
    23379 
    -
    23380 };
    -
    23381 
    -
    23382 const complete::Info::ZonePolicy kZonePolicySpainAfrica ACE_TIME_PROGMEM = {
    -
    23383  kZoneRulesSpainAfrica /*rules*/,
    -
    23384  10 /*numRules*/,
    -
    23385 };
    -
    23386 
    -
    23387 //---------------------------------------------------------------------------
    -
    23388 // Policy name: StJohns
    -
    23389 // Rules: 20
    -
    23390 //---------------------------------------------------------------------------
    -
    23391 
    -
    23392 static const complete::Info::ZoneRule kZoneRulesStJohns[] ACE_TIME_PROGMEM = {
    -
    23393  // Anchor: Rule StJohns 1917 only - Sep 17 2:00 0 S
    -
    23394  {
    -
    23395  -32767 /*fromYear*/,
    -
    23396  -32767 /*toYear*/,
    -
    23397  1 /*inMonth*/,
    -
    23398  0 /*onDayOfWeek*/,
    -
    23399  1 /*onDayOfMonth*/,
    -
    23400  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23401  0 /*atTimeCode (0/15)*/,
    -
    23402  0 /*deltaMinutes*/,
    -
    23403  25 /*letterIndex ("S")*/,
    -
    23404  },
    -
    23405  // Rule StJohns 1917 only - Apr 8 2:00 1:00 D
    -
    23406  {
    -
    23407  1917 /*fromYear*/,
    -
    23408  1917 /*toYear*/,
    -
    23409  4 /*inMonth*/,
    -
    23410  0 /*onDayOfWeek*/,
    -
    23411  8 /*onDayOfMonth*/,
    -
    23412  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23413  480 /*atTimeCode (7200/15)*/,
    -
    23414  60 /*deltaMinutes*/,
    -
    23415  13 /*letterIndex ("D")*/,
    -
    23416  },
    -
    23417  // Rule StJohns 1917 only - Sep 17 2:00 0 S
    -
    23418  {
    -
    23419  1917 /*fromYear*/,
    -
    23420  1917 /*toYear*/,
    -
    23421  9 /*inMonth*/,
    -
    23422  0 /*onDayOfWeek*/,
    -
    23423  17 /*onDayOfMonth*/,
    -
    23424  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23425  480 /*atTimeCode (7200/15)*/,
    -
    23426  0 /*deltaMinutes*/,
    -
    23427  25 /*letterIndex ("S")*/,
    -
    23428  },
    -
    23429  // Rule StJohns 1919 only - May 5 23:00 1:00 D
    -
    23430  {
    -
    23431  1919 /*fromYear*/,
    -
    23432  1919 /*toYear*/,
    -
    23433  5 /*inMonth*/,
    -
    23434  0 /*onDayOfWeek*/,
    -
    23435  5 /*onDayOfMonth*/,
    -
    23436  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23437  5520 /*atTimeCode (82800/15)*/,
    -
    23438  60 /*deltaMinutes*/,
    -
    23439  13 /*letterIndex ("D")*/,
    -
    23440  },
    -
    23441  // Rule StJohns 1919 only - Aug 12 23:00 0 S
    -
    23442  {
    -
    23443  1919 /*fromYear*/,
    -
    23444  1919 /*toYear*/,
    -
    23445  8 /*inMonth*/,
    -
    23446  0 /*onDayOfWeek*/,
    -
    23447  12 /*onDayOfMonth*/,
    -
    23448  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23449  5520 /*atTimeCode (82800/15)*/,
    -
    23450  0 /*deltaMinutes*/,
    -
    23451  25 /*letterIndex ("S")*/,
    -
    23452  },
    -
    23453  // Rule StJohns 1920 1935 - May Sun>=1 23:00 1:00 D
    -
    23454  {
    -
    23455  1920 /*fromYear*/,
    -
    23456  1935 /*toYear*/,
    -
    23457  5 /*inMonth*/,
    -
    23458  7 /*onDayOfWeek*/,
    -
    23459  1 /*onDayOfMonth*/,
    -
    23460  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23461  5520 /*atTimeCode (82800/15)*/,
    -
    23462  60 /*deltaMinutes*/,
    -
    23463  13 /*letterIndex ("D")*/,
    -
    23464  },
    -
    23465  // Rule StJohns 1920 1935 - Oct lastSun 23:00 0 S
    -
    23466  {
    -
    23467  1920 /*fromYear*/,
    -
    23468  1935 /*toYear*/,
    -
    23469  10 /*inMonth*/,
    -
    23470  7 /*onDayOfWeek*/,
    -
    23471  0 /*onDayOfMonth*/,
    -
    23472  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23473  5520 /*atTimeCode (82800/15)*/,
    -
    23474  0 /*deltaMinutes*/,
    -
    23475  25 /*letterIndex ("S")*/,
    -
    23476  },
    -
    23477  // Rule StJohns 1936 1941 - May Mon>=9 0:00 1:00 D
    -
    23478  {
    -
    23479  1936 /*fromYear*/,
    -
    23480  1941 /*toYear*/,
    -
    23481  5 /*inMonth*/,
    -
    23482  1 /*onDayOfWeek*/,
    -
    23483  9 /*onDayOfMonth*/,
    -
    23484  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23485  0 /*atTimeCode (0/15)*/,
    -
    23486  60 /*deltaMinutes*/,
    -
    23487  13 /*letterIndex ("D")*/,
    -
    23488  },
    -
    23489  // Rule StJohns 1936 1941 - Oct Mon>=2 0:00 0 S
    -
    23490  {
    -
    23491  1936 /*fromYear*/,
    -
    23492  1941 /*toYear*/,
    -
    23493  10 /*inMonth*/,
    -
    23494  1 /*onDayOfWeek*/,
    -
    23495  2 /*onDayOfMonth*/,
    -
    23496  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23497  0 /*atTimeCode (0/15)*/,
    -
    23498  0 /*deltaMinutes*/,
    -
    23499  25 /*letterIndex ("S")*/,
    -
    23500  },
    -
    23501  // Rule StJohns 1946 1950 - May Sun>=8 2:00 1:00 D
    -
    23502  {
    -
    23503  1946 /*fromYear*/,
    -
    23504  1950 /*toYear*/,
    -
    23505  5 /*inMonth*/,
    -
    23506  7 /*onDayOfWeek*/,
    -
    23507  8 /*onDayOfMonth*/,
    -
    23508  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23509  480 /*atTimeCode (7200/15)*/,
    -
    23510  60 /*deltaMinutes*/,
    -
    23511  13 /*letterIndex ("D")*/,
    -
    23512  },
    -
    23513  // Rule StJohns 1946 1950 - Oct Sun>=2 2:00 0 S
    -
    23514  {
    -
    23515  1946 /*fromYear*/,
    -
    23516  1950 /*toYear*/,
    -
    23517  10 /*inMonth*/,
    -
    23518  7 /*onDayOfWeek*/,
    -
    23519  2 /*onDayOfMonth*/,
    -
    23520  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23521  480 /*atTimeCode (7200/15)*/,
    -
    23522  0 /*deltaMinutes*/,
    -
    23523  25 /*letterIndex ("S")*/,
    -
    23524  },
    -
    23525  // Rule StJohns 1951 1986 - Apr lastSun 2:00 1:00 D
    -
    23526  {
    -
    23527  1951 /*fromYear*/,
    -
    23528  1986 /*toYear*/,
    -
    23529  4 /*inMonth*/,
    -
    23530  7 /*onDayOfWeek*/,
    -
    23531  0 /*onDayOfMonth*/,
    -
    23532  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23533  480 /*atTimeCode (7200/15)*/,
    -
    23534  60 /*deltaMinutes*/,
    -
    23535  13 /*letterIndex ("D")*/,
    -
    23536  },
    -
    23537  // Rule StJohns 1951 1959 - Sep lastSun 2:00 0 S
    -
    23538  {
    -
    23539  1951 /*fromYear*/,
    -
    23540  1959 /*toYear*/,
    -
    23541  9 /*inMonth*/,
    -
    23542  7 /*onDayOfWeek*/,
    -
    23543  0 /*onDayOfMonth*/,
    -
    23544  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23545  480 /*atTimeCode (7200/15)*/,
    -
    23546  0 /*deltaMinutes*/,
    -
    23547  25 /*letterIndex ("S")*/,
    -
    23548  },
    -
    23549  // Rule StJohns 1960 1986 - Oct lastSun 2:00 0 S
    -
    23550  {
    -
    23551  1960 /*fromYear*/,
    -
    23552  1986 /*toYear*/,
    -
    23553  10 /*inMonth*/,
    -
    23554  7 /*onDayOfWeek*/,
    -
    23555  0 /*onDayOfMonth*/,
    -
    23556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23557  480 /*atTimeCode (7200/15)*/,
    -
    23558  0 /*deltaMinutes*/,
    -
    23559  25 /*letterIndex ("S")*/,
    -
    23560  },
    -
    23561  // Rule StJohns 1987 only - Apr Sun>=1 0:01 1:00 D
    -
    23562  {
    -
    23563  1987 /*fromYear*/,
    -
    23564  1987 /*toYear*/,
    -
    23565  4 /*inMonth*/,
    -
    23566  7 /*onDayOfWeek*/,
    -
    23567  1 /*onDayOfMonth*/,
    -
    23568  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23569  4 /*atTimeCode (60/15)*/,
    -
    23570  60 /*deltaMinutes*/,
    -
    23571  13 /*letterIndex ("D")*/,
    -
    23572  },
    -
    23573  // Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S
    -
    23574  {
    -
    23575  1987 /*fromYear*/,
    -
    23576  2006 /*toYear*/,
    -
    23577  10 /*inMonth*/,
    -
    23578  7 /*onDayOfWeek*/,
    -
    23579  0 /*onDayOfMonth*/,
    -
    23580  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23581  4 /*atTimeCode (60/15)*/,
    -
    23582  0 /*deltaMinutes*/,
    -
    23583  25 /*letterIndex ("S")*/,
    -
    23584  },
    -
    23585  // Rule StJohns 1988 only - Apr Sun>=1 0:01 2:00 DD
    -
    23586  {
    -
    23587  1988 /*fromYear*/,
    -
    23588  1988 /*toYear*/,
    -
    23589  4 /*inMonth*/,
    -
    23590  7 /*onDayOfWeek*/,
    -
    23591  1 /*onDayOfMonth*/,
    -
    23592  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23593  4 /*atTimeCode (60/15)*/,
    -
    23594  120 /*deltaMinutes*/,
    -
    23595  14 /*letterIndex ("DD")*/,
    -
    23596  },
    -
    23597  // Rule StJohns 1989 2006 - Apr Sun>=1 0:01 1:00 D
    -
    23598  {
    -
    23599  1989 /*fromYear*/,
    -
    23600  2006 /*toYear*/,
    -
    23601  4 /*inMonth*/,
    -
    23602  7 /*onDayOfWeek*/,
    -
    23603  1 /*onDayOfMonth*/,
    -
    23604  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23605  4 /*atTimeCode (60/15)*/,
    -
    23606  60 /*deltaMinutes*/,
    -
    23607  13 /*letterIndex ("D")*/,
    -
    23608  },
    -
    23609  // Rule StJohns 2007 2011 - Mar Sun>=8 0:01 1:00 D
    -
    23610  {
    -
    23611  2007 /*fromYear*/,
    -
    23612  2011 /*toYear*/,
    -
    23613  3 /*inMonth*/,
    -
    23614  7 /*onDayOfWeek*/,
    -
    23615  8 /*onDayOfMonth*/,
    -
    23616  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23617  4 /*atTimeCode (60/15)*/,
    -
    23618  60 /*deltaMinutes*/,
    -
    23619  13 /*letterIndex ("D")*/,
    -
    23620  },
    -
    23621  // Rule StJohns 2007 2010 - Nov Sun>=1 0:01 0 S
    -
    23622  {
    -
    23623  2007 /*fromYear*/,
    -
    23624  2010 /*toYear*/,
    -
    23625  11 /*inMonth*/,
    -
    23626  7 /*onDayOfWeek*/,
    -
    23627  1 /*onDayOfMonth*/,
    -
    23628  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23629  4 /*atTimeCode (60/15)*/,
    -
    23630  0 /*deltaMinutes*/,
    -
    23631  25 /*letterIndex ("S")*/,
    -
    23632  },
    -
    23633 
    -
    23634 };
    -
    23635 
    -
    23636 const complete::Info::ZonePolicy kZonePolicyStJohns ACE_TIME_PROGMEM = {
    -
    23637  kZoneRulesStJohns /*rules*/,
    -
    23638  20 /*numRules*/,
    -
    23639 };
    -
    23640 
    -
    23641 //---------------------------------------------------------------------------
    -
    23642 // Policy name: Starke
    -
    23643 // Rules: 6
    -
    23644 //---------------------------------------------------------------------------
    -
    23645 
    -
    23646 static const complete::Info::ZoneRule kZoneRulesStarke[] ACE_TIME_PROGMEM = {
    -
    23647  // Anchor: Rule Starke 1947 1954 - Sep lastSun 2:00 0 S
    -
    23648  {
    -
    23649  -32767 /*fromYear*/,
    -
    23650  -32767 /*toYear*/,
    -
    23651  1 /*inMonth*/,
    -
    23652  0 /*onDayOfWeek*/,
    -
    23653  1 /*onDayOfMonth*/,
    -
    23654  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23655  0 /*atTimeCode (0/15)*/,
    -
    23656  0 /*deltaMinutes*/,
    -
    23657  25 /*letterIndex ("S")*/,
    -
    23658  },
    -
    23659  // Rule Starke 1947 1961 - Apr lastSun 2:00 1:00 D
    -
    23660  {
    -
    23661  1947 /*fromYear*/,
    -
    23662  1961 /*toYear*/,
    -
    23663  4 /*inMonth*/,
    -
    23664  7 /*onDayOfWeek*/,
    -
    23665  0 /*onDayOfMonth*/,
    -
    23666  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23667  480 /*atTimeCode (7200/15)*/,
    -
    23668  60 /*deltaMinutes*/,
    -
    23669  13 /*letterIndex ("D")*/,
    -
    23670  },
    -
    23671  // Rule Starke 1947 1954 - Sep lastSun 2:00 0 S
    -
    23672  {
    -
    23673  1947 /*fromYear*/,
    -
    23674  1954 /*toYear*/,
    -
    23675  9 /*inMonth*/,
    -
    23676  7 /*onDayOfWeek*/,
    -
    23677  0 /*onDayOfMonth*/,
    -
    23678  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23679  480 /*atTimeCode (7200/15)*/,
    -
    23680  0 /*deltaMinutes*/,
    -
    23681  25 /*letterIndex ("S")*/,
    -
    23682  },
    -
    23683  // Rule Starke 1955 1956 - Oct lastSun 2:00 0 S
    -
    23684  {
    -
    23685  1955 /*fromYear*/,
    -
    23686  1956 /*toYear*/,
    -
    23687  10 /*inMonth*/,
    -
    23688  7 /*onDayOfWeek*/,
    -
    23689  0 /*onDayOfMonth*/,
    -
    23690  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23691  480 /*atTimeCode (7200/15)*/,
    -
    23692  0 /*deltaMinutes*/,
    -
    23693  25 /*letterIndex ("S")*/,
    -
    23694  },
    -
    23695  // Rule Starke 1957 1958 - Sep lastSun 2:00 0 S
    -
    23696  {
    -
    23697  1957 /*fromYear*/,
    -
    23698  1958 /*toYear*/,
    -
    23699  9 /*inMonth*/,
    -
    23700  7 /*onDayOfWeek*/,
    -
    23701  0 /*onDayOfMonth*/,
    -
    23702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23703  480 /*atTimeCode (7200/15)*/,
    -
    23704  0 /*deltaMinutes*/,
    -
    23705  25 /*letterIndex ("S")*/,
    -
    23706  },
    -
    23707  // Rule Starke 1959 1961 - Oct lastSun 2:00 0 S
    -
    23708  {
    -
    23709  1959 /*fromYear*/,
    -
    23710  1961 /*toYear*/,
    -
    23711  10 /*inMonth*/,
    -
    23712  7 /*onDayOfWeek*/,
    -
    23713  0 /*onDayOfMonth*/,
    -
    23714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23715  480 /*atTimeCode (7200/15)*/,
    -
    23716  0 /*deltaMinutes*/,
    -
    23717  25 /*letterIndex ("S")*/,
    -
    23718  },
    -
    23719 
    -
    23720 };
    -
    23721 
    -
    23722 const complete::Info::ZonePolicy kZonePolicyStarke ACE_TIME_PROGMEM = {
    -
    23723  kZoneRulesStarke /*rules*/,
    -
    23724  6 /*numRules*/,
    -
    23725 };
    -
    23726 
    -
    23727 //---------------------------------------------------------------------------
    -
    23728 // Policy name: Sudan
    -
    23729 // Rules: 5
    -
    23730 //---------------------------------------------------------------------------
    -
    23731 
    -
    23732 static const complete::Info::ZoneRule kZoneRulesSudan[] ACE_TIME_PROGMEM = {
    -
    23733  // Anchor: Rule Sudan 1970 1985 - Oct 15 0:00 0 -
    -
    23734  {
    -
    23735  -32767 /*fromYear*/,
    -
    23736  -32767 /*toYear*/,
    -
    23737  1 /*inMonth*/,
    -
    23738  0 /*onDayOfWeek*/,
    -
    23739  1 /*onDayOfMonth*/,
    -
    23740  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23741  0 /*atTimeCode (0/15)*/,
    -
    23742  0 /*deltaMinutes*/,
    -
    23743  0 /*letterIndex ("")*/,
    -
    23744  },
    -
    23745  // Rule Sudan 1970 only - May 1 0:00 1:00 S
    -
    23746  {
    -
    23747  1970 /*fromYear*/,
    -
    23748  1970 /*toYear*/,
    -
    23749  5 /*inMonth*/,
    -
    23750  0 /*onDayOfWeek*/,
    -
    23751  1 /*onDayOfMonth*/,
    -
    23752  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23753  0 /*atTimeCode (0/15)*/,
    -
    23754  60 /*deltaMinutes*/,
    -
    23755  25 /*letterIndex ("S")*/,
    -
    23756  },
    -
    23757  // Rule Sudan 1970 1985 - Oct 15 0:00 0 -
    -
    23758  {
    -
    23759  1970 /*fromYear*/,
    -
    23760  1985 /*toYear*/,
    -
    23761  10 /*inMonth*/,
    -
    23762  0 /*onDayOfWeek*/,
    -
    23763  15 /*onDayOfMonth*/,
    -
    23764  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23765  0 /*atTimeCode (0/15)*/,
    -
    23766  0 /*deltaMinutes*/,
    -
    23767  0 /*letterIndex ("")*/,
    -
    23768  },
    -
    23769  // Rule Sudan 1971 only - Apr 30 0:00 1:00 S
    -
    23770  {
    -
    23771  1971 /*fromYear*/,
    -
    23772  1971 /*toYear*/,
    -
    23773  4 /*inMonth*/,
    -
    23774  0 /*onDayOfWeek*/,
    -
    23775  30 /*onDayOfMonth*/,
    -
    23776  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23777  0 /*atTimeCode (0/15)*/,
    -
    23778  60 /*deltaMinutes*/,
    -
    23779  25 /*letterIndex ("S")*/,
    -
    23780  },
    -
    23781  // Rule Sudan 1972 1985 - Apr lastSun 0:00 1:00 S
    -
    23782  {
    -
    23783  1972 /*fromYear*/,
    -
    23784  1985 /*toYear*/,
    -
    23785  4 /*inMonth*/,
    -
    23786  7 /*onDayOfWeek*/,
    -
    23787  0 /*onDayOfMonth*/,
    -
    23788  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23789  0 /*atTimeCode (0/15)*/,
    -
    23790  60 /*deltaMinutes*/,
    -
    23791  25 /*letterIndex ("S")*/,
    -
    23792  },
    -
    23793 
    -
    23794 };
    -
    23795 
    -
    23796 const complete::Info::ZonePolicy kZonePolicySudan ACE_TIME_PROGMEM = {
    -
    23797  kZoneRulesSudan /*rules*/,
    -
    23798  5 /*numRules*/,
    -
    23799 };
    -
    23800 
    -
    23801 //---------------------------------------------------------------------------
    -
    23802 // Policy name: Swift
    -
    23803 // Rules: 6
    -
    23804 //---------------------------------------------------------------------------
    -
    23805 
    -
    23806 static const complete::Info::ZoneRule kZoneRulesSwift[] ACE_TIME_PROGMEM = {
    -
    23807  // Anchor: Rule Swift 1957 only - Oct lastSun 2:00 0 S
    -
    23808  {
    -
    23809  -32767 /*fromYear*/,
    -
    23810  -32767 /*toYear*/,
    -
    23811  1 /*inMonth*/,
    -
    23812  0 /*onDayOfWeek*/,
    -
    23813  1 /*onDayOfMonth*/,
    -
    23814  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23815  0 /*atTimeCode (0/15)*/,
    -
    23816  0 /*deltaMinutes*/,
    -
    23817  25 /*letterIndex ("S")*/,
    -
    23818  },
    -
    23819  // Rule Swift 1957 only - Apr lastSun 2:00 1:00 D
    -
    23820  {
    -
    23821  1957 /*fromYear*/,
    -
    23822  1957 /*toYear*/,
    -
    23823  4 /*inMonth*/,
    -
    23824  7 /*onDayOfWeek*/,
    -
    23825  0 /*onDayOfMonth*/,
    -
    23826  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23827  480 /*atTimeCode (7200/15)*/,
    -
    23828  60 /*deltaMinutes*/,
    -
    23829  13 /*letterIndex ("D")*/,
    -
    23830  },
    -
    23831  // Rule Swift 1957 only - Oct lastSun 2:00 0 S
    -
    23832  {
    -
    23833  1957 /*fromYear*/,
    -
    23834  1957 /*toYear*/,
    -
    23835  10 /*inMonth*/,
    -
    23836  7 /*onDayOfWeek*/,
    -
    23837  0 /*onDayOfMonth*/,
    -
    23838  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23839  480 /*atTimeCode (7200/15)*/,
    -
    23840  0 /*deltaMinutes*/,
    -
    23841  25 /*letterIndex ("S")*/,
    -
    23842  },
    -
    23843  // Rule Swift 1959 1961 - Apr lastSun 2:00 1:00 D
    -
    23844  {
    -
    23845  1959 /*fromYear*/,
    -
    23846  1961 /*toYear*/,
    -
    23847  4 /*inMonth*/,
    -
    23848  7 /*onDayOfWeek*/,
    -
    23849  0 /*onDayOfMonth*/,
    -
    23850  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23851  480 /*atTimeCode (7200/15)*/,
    -
    23852  60 /*deltaMinutes*/,
    -
    23853  13 /*letterIndex ("D")*/,
    -
    23854  },
    -
    23855  // Rule Swift 1959 only - Oct lastSun 2:00 0 S
    -
    23856  {
    -
    23857  1959 /*fromYear*/,
    -
    23858  1959 /*toYear*/,
    -
    23859  10 /*inMonth*/,
    -
    23860  7 /*onDayOfWeek*/,
    -
    23861  0 /*onDayOfMonth*/,
    -
    23862  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23863  480 /*atTimeCode (7200/15)*/,
    -
    23864  0 /*deltaMinutes*/,
    -
    23865  25 /*letterIndex ("S")*/,
    -
    23866  },
    -
    23867  // Rule Swift 1960 1961 - Sep lastSun 2:00 0 S
    -
    23868  {
    -
    23869  1960 /*fromYear*/,
    -
    23870  1961 /*toYear*/,
    -
    23871  9 /*inMonth*/,
    -
    23872  7 /*onDayOfWeek*/,
    -
    23873  0 /*onDayOfMonth*/,
    -
    23874  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23875  480 /*atTimeCode (7200/15)*/,
    -
    23876  0 /*deltaMinutes*/,
    -
    23877  25 /*letterIndex ("S")*/,
    -
    23878  },
    -
    23879 
    -
    23880 };
    -
    23881 
    -
    23882 const complete::Info::ZonePolicy kZonePolicySwift ACE_TIME_PROGMEM = {
    -
    23883  kZoneRulesSwift /*rules*/,
    -
    23884  6 /*numRules*/,
    -
    23885 };
    -
    23886 
    -
    23887 //---------------------------------------------------------------------------
    -
    23888 // Policy name: Swiss
    -
    23889 // Rules: 3
    -
    23890 //---------------------------------------------------------------------------
    -
    23891 
    -
    23892 static const complete::Info::ZoneRule kZoneRulesSwiss[] ACE_TIME_PROGMEM = {
    -
    23893  // Anchor: Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
    -
    23894  {
    -
    23895  -32767 /*fromYear*/,
    -
    23896  -32767 /*toYear*/,
    -
    23897  1 /*inMonth*/,
    -
    23898  0 /*onDayOfWeek*/,
    -
    23899  1 /*onDayOfMonth*/,
    -
    23900  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23901  0 /*atTimeCode (0/15)*/,
    -
    23902  0 /*deltaMinutes*/,
    -
    23903  0 /*letterIndex ("")*/,
    -
    23904  },
    -
    23905  // Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S
    -
    23906  {
    -
    23907  1941 /*fromYear*/,
    -
    23908  1942 /*toYear*/,
    -
    23909  5 /*inMonth*/,
    -
    23910  1 /*onDayOfWeek*/,
    -
    23911  1 /*onDayOfMonth*/,
    -
    23912  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23913  240 /*atTimeCode (3600/15)*/,
    -
    23914  60 /*deltaMinutes*/,
    -
    23915  25 /*letterIndex ("S")*/,
    -
    23916  },
    -
    23917  // Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
    -
    23918  {
    -
    23919  1941 /*fromYear*/,
    -
    23920  1942 /*toYear*/,
    -
    23921  10 /*inMonth*/,
    -
    23922  1 /*onDayOfWeek*/,
    -
    23923  1 /*onDayOfMonth*/,
    -
    23924  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23925  480 /*atTimeCode (7200/15)*/,
    -
    23926  0 /*deltaMinutes*/,
    -
    23927  0 /*letterIndex ("")*/,
    -
    23928  },
    -
    23929 
    -
    23930 };
    -
    23931 
    -
    23932 const complete::Info::ZonePolicy kZonePolicySwiss ACE_TIME_PROGMEM = {
    -
    23933  kZoneRulesSwiss /*rules*/,
    -
    23934  3 /*numRules*/,
    -
    23935 };
    -
    23936 
    -
    23937 //---------------------------------------------------------------------------
    -
    23938 // Policy name: Syria
    -
    23939 // Rules: 42
    -
    23940 //---------------------------------------------------------------------------
    -
    23941 
    -
    23942 static const complete::Info::ZoneRule kZoneRulesSyria[] ACE_TIME_PROGMEM = {
    -
    23943  // Anchor: Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 -
    -
    23944  {
    -
    23945  -32767 /*fromYear*/,
    -
    23946  -32767 /*toYear*/,
    -
    23947  1 /*inMonth*/,
    -
    23948  0 /*onDayOfWeek*/,
    -
    23949  1 /*onDayOfMonth*/,
    -
    23950  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23951  0 /*atTimeCode (0/15)*/,
    -
    23952  0 /*deltaMinutes*/,
    -
    23953  0 /*letterIndex ("")*/,
    -
    23954  },
    -
    23955  // Rule Syria 1920 1923 - Apr Sun>=15 2:00 1:00 S
    -
    23956  {
    -
    23957  1920 /*fromYear*/,
    -
    23958  1923 /*toYear*/,
    -
    23959  4 /*inMonth*/,
    -
    23960  7 /*onDayOfWeek*/,
    -
    23961  15 /*onDayOfMonth*/,
    -
    23962  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23963  480 /*atTimeCode (7200/15)*/,
    -
    23964  60 /*deltaMinutes*/,
    -
    23965  25 /*letterIndex ("S")*/,
    -
    23966  },
    -
    23967  // Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 -
    -
    23968  {
    -
    23969  1920 /*fromYear*/,
    -
    23970  1923 /*toYear*/,
    -
    23971  10 /*inMonth*/,
    -
    23972  7 /*onDayOfWeek*/,
    -
    23973  1 /*onDayOfMonth*/,
    -
    23974  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23975  480 /*atTimeCode (7200/15)*/,
    -
    23976  0 /*deltaMinutes*/,
    -
    23977  0 /*letterIndex ("")*/,
    -
    23978  },
    -
    23979  // Rule Syria 1962 only - Apr 29 2:00 1:00 S
    -
    23980  {
    -
    23981  1962 /*fromYear*/,
    -
    23982  1962 /*toYear*/,
    -
    23983  4 /*inMonth*/,
    -
    23984  0 /*onDayOfWeek*/,
    -
    23985  29 /*onDayOfMonth*/,
    -
    23986  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23987  480 /*atTimeCode (7200/15)*/,
    -
    23988  60 /*deltaMinutes*/,
    -
    23989  25 /*letterIndex ("S")*/,
    -
    23990  },
    -
    23991  // Rule Syria 1962 only - Oct 1 2:00 0 -
    -
    23992  {
    -
    23993  1962 /*fromYear*/,
    -
    23994  1962 /*toYear*/,
    -
    23995  10 /*inMonth*/,
    -
    23996  0 /*onDayOfWeek*/,
    -
    23997  1 /*onDayOfMonth*/,
    -
    23998  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    23999  480 /*atTimeCode (7200/15)*/,
    -
    24000  0 /*deltaMinutes*/,
    -
    24001  0 /*letterIndex ("")*/,
    -
    24002  },
    -
    24003  // Rule Syria 1963 1965 - May 1 2:00 1:00 S
    -
    24004  {
    -
    24005  1963 /*fromYear*/,
    -
    24006  1965 /*toYear*/,
    -
    24007  5 /*inMonth*/,
    -
    24008  0 /*onDayOfWeek*/,
    -
    24009  1 /*onDayOfMonth*/,
    -
    24010  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24011  480 /*atTimeCode (7200/15)*/,
    -
    24012  60 /*deltaMinutes*/,
    -
    24013  25 /*letterIndex ("S")*/,
    -
    24014  },
    -
    24015  // Rule Syria 1963 only - Sep 30 2:00 0 -
    -
    24016  {
    -
    24017  1963 /*fromYear*/,
    -
    24018  1963 /*toYear*/,
    -
    24019  9 /*inMonth*/,
    -
    24020  0 /*onDayOfWeek*/,
    -
    24021  30 /*onDayOfMonth*/,
    -
    24022  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24023  480 /*atTimeCode (7200/15)*/,
    -
    24024  0 /*deltaMinutes*/,
    -
    24025  0 /*letterIndex ("")*/,
    -
    24026  },
    -
    24027  // Rule Syria 1964 only - Oct 1 2:00 0 -
    -
    24028  {
    -
    24029  1964 /*fromYear*/,
    -
    24030  1964 /*toYear*/,
    -
    24031  10 /*inMonth*/,
    -
    24032  0 /*onDayOfWeek*/,
    -
    24033  1 /*onDayOfMonth*/,
    -
    24034  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24035  480 /*atTimeCode (7200/15)*/,
    -
    24036  0 /*deltaMinutes*/,
    -
    24037  0 /*letterIndex ("")*/,
    -
    24038  },
    -
    24039  // Rule Syria 1965 only - Sep 30 2:00 0 -
    -
    24040  {
    -
    24041  1965 /*fromYear*/,
    -
    24042  1965 /*toYear*/,
    -
    24043  9 /*inMonth*/,
    -
    24044  0 /*onDayOfWeek*/,
    -
    24045  30 /*onDayOfMonth*/,
    -
    24046  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24047  480 /*atTimeCode (7200/15)*/,
    -
    24048  0 /*deltaMinutes*/,
    -
    24049  0 /*letterIndex ("")*/,
    -
    24050  },
    -
    24051  // Rule Syria 1966 only - Apr 24 2:00 1:00 S
    -
    24052  {
    -
    24053  1966 /*fromYear*/,
    -
    24054  1966 /*toYear*/,
    -
    24055  4 /*inMonth*/,
    -
    24056  0 /*onDayOfWeek*/,
    -
    24057  24 /*onDayOfMonth*/,
    -
    24058  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24059  480 /*atTimeCode (7200/15)*/,
    -
    24060  60 /*deltaMinutes*/,
    -
    24061  25 /*letterIndex ("S")*/,
    -
    24062  },
    -
    24063  // Rule Syria 1966 1976 - Oct 1 2:00 0 -
    -
    24064  {
    -
    24065  1966 /*fromYear*/,
    -
    24066  1976 /*toYear*/,
    -
    24067  10 /*inMonth*/,
    -
    24068  0 /*onDayOfWeek*/,
    -
    24069  1 /*onDayOfMonth*/,
    -
    24070  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24071  480 /*atTimeCode (7200/15)*/,
    -
    24072  0 /*deltaMinutes*/,
    -
    24073  0 /*letterIndex ("")*/,
    -
    24074  },
    -
    24075  // Rule Syria 1967 1978 - May 1 2:00 1:00 S
    -
    24076  {
    -
    24077  1967 /*fromYear*/,
    -
    24078  1978 /*toYear*/,
    -
    24079  5 /*inMonth*/,
    -
    24080  0 /*onDayOfWeek*/,
    -
    24081  1 /*onDayOfMonth*/,
    -
    24082  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24083  480 /*atTimeCode (7200/15)*/,
    -
    24084  60 /*deltaMinutes*/,
    -
    24085  25 /*letterIndex ("S")*/,
    -
    24086  },
    -
    24087  // Rule Syria 1977 1978 - Sep 1 2:00 0 -
    -
    24088  {
    -
    24089  1977 /*fromYear*/,
    -
    24090  1978 /*toYear*/,
    -
    24091  9 /*inMonth*/,
    -
    24092  0 /*onDayOfWeek*/,
    -
    24093  1 /*onDayOfMonth*/,
    -
    24094  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24095  480 /*atTimeCode (7200/15)*/,
    -
    24096  0 /*deltaMinutes*/,
    -
    24097  0 /*letterIndex ("")*/,
    -
    24098  },
    -
    24099  // Rule Syria 1983 1984 - Apr 9 2:00 1:00 S
    -
    24100  {
    -
    24101  1983 /*fromYear*/,
    -
    24102  1984 /*toYear*/,
    -
    24103  4 /*inMonth*/,
    -
    24104  0 /*onDayOfWeek*/,
    -
    24105  9 /*onDayOfMonth*/,
    -
    24106  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24107  480 /*atTimeCode (7200/15)*/,
    -
    24108  60 /*deltaMinutes*/,
    -
    24109  25 /*letterIndex ("S")*/,
    -
    24110  },
    -
    24111  // Rule Syria 1983 1984 - Oct 1 2:00 0 -
    -
    24112  {
    -
    24113  1983 /*fromYear*/,
    -
    24114  1984 /*toYear*/,
    -
    24115  10 /*inMonth*/,
    -
    24116  0 /*onDayOfWeek*/,
    -
    24117  1 /*onDayOfMonth*/,
    -
    24118  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24119  480 /*atTimeCode (7200/15)*/,
    -
    24120  0 /*deltaMinutes*/,
    -
    24121  0 /*letterIndex ("")*/,
    -
    24122  },
    -
    24123  // Rule Syria 1986 only - Feb 16 2:00 1:00 S
    -
    24124  {
    -
    24125  1986 /*fromYear*/,
    -
    24126  1986 /*toYear*/,
    -
    24127  2 /*inMonth*/,
    -
    24128  0 /*onDayOfWeek*/,
    -
    24129  16 /*onDayOfMonth*/,
    -
    24130  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24131  480 /*atTimeCode (7200/15)*/,
    -
    24132  60 /*deltaMinutes*/,
    -
    24133  25 /*letterIndex ("S")*/,
    -
    24134  },
    -
    24135  // Rule Syria 1986 only - Oct 9 2:00 0 -
    -
    24136  {
    -
    24137  1986 /*fromYear*/,
    -
    24138  1986 /*toYear*/,
    -
    24139  10 /*inMonth*/,
    -
    24140  0 /*onDayOfWeek*/,
    -
    24141  9 /*onDayOfMonth*/,
    -
    24142  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24143  480 /*atTimeCode (7200/15)*/,
    -
    24144  0 /*deltaMinutes*/,
    -
    24145  0 /*letterIndex ("")*/,
    -
    24146  },
    -
    24147  // Rule Syria 1987 only - Mar 1 2:00 1:00 S
    -
    24148  {
    -
    24149  1987 /*fromYear*/,
    -
    24150  1987 /*toYear*/,
    -
    24151  3 /*inMonth*/,
    -
    24152  0 /*onDayOfWeek*/,
    -
    24153  1 /*onDayOfMonth*/,
    -
    24154  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24155  480 /*atTimeCode (7200/15)*/,
    -
    24156  60 /*deltaMinutes*/,
    -
    24157  25 /*letterIndex ("S")*/,
    -
    24158  },
    -
    24159  // Rule Syria 1987 1988 - Oct 31 2:00 0 -
    -
    24160  {
    -
    24161  1987 /*fromYear*/,
    -
    24162  1988 /*toYear*/,
    -
    24163  10 /*inMonth*/,
    -
    24164  0 /*onDayOfWeek*/,
    -
    24165  31 /*onDayOfMonth*/,
    -
    24166  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24167  480 /*atTimeCode (7200/15)*/,
    -
    24168  0 /*deltaMinutes*/,
    -
    24169  0 /*letterIndex ("")*/,
    -
    24170  },
    -
    24171  // Rule Syria 1988 only - Mar 15 2:00 1:00 S
    -
    24172  {
    -
    24173  1988 /*fromYear*/,
    -
    24174  1988 /*toYear*/,
    -
    24175  3 /*inMonth*/,
    -
    24176  0 /*onDayOfWeek*/,
    -
    24177  15 /*onDayOfMonth*/,
    -
    24178  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24179  480 /*atTimeCode (7200/15)*/,
    -
    24180  60 /*deltaMinutes*/,
    -
    24181  25 /*letterIndex ("S")*/,
    -
    24182  },
    -
    24183  // Rule Syria 1989 only - Mar 31 2:00 1:00 S
    -
    24184  {
    -
    24185  1989 /*fromYear*/,
    -
    24186  1989 /*toYear*/,
    -
    24187  3 /*inMonth*/,
    -
    24188  0 /*onDayOfWeek*/,
    -
    24189  31 /*onDayOfMonth*/,
    -
    24190  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24191  480 /*atTimeCode (7200/15)*/,
    -
    24192  60 /*deltaMinutes*/,
    -
    24193  25 /*letterIndex ("S")*/,
    -
    24194  },
    -
    24195  // Rule Syria 1989 only - Oct 1 2:00 0 -
    -
    24196  {
    -
    24197  1989 /*fromYear*/,
    -
    24198  1989 /*toYear*/,
    -
    24199  10 /*inMonth*/,
    -
    24200  0 /*onDayOfWeek*/,
    -
    24201  1 /*onDayOfMonth*/,
    -
    24202  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24203  480 /*atTimeCode (7200/15)*/,
    -
    24204  0 /*deltaMinutes*/,
    -
    24205  0 /*letterIndex ("")*/,
    -
    24206  },
    -
    24207  // Rule Syria 1990 only - Apr 1 2:00 1:00 S
    -
    24208  {
    -
    24209  1990 /*fromYear*/,
    -
    24210  1990 /*toYear*/,
    -
    24211  4 /*inMonth*/,
    -
    24212  0 /*onDayOfWeek*/,
    -
    24213  1 /*onDayOfMonth*/,
    -
    24214  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24215  480 /*atTimeCode (7200/15)*/,
    -
    24216  60 /*deltaMinutes*/,
    -
    24217  25 /*letterIndex ("S")*/,
    -
    24218  },
    -
    24219  // Rule Syria 1990 only - Sep 30 2:00 0 -
    -
    24220  {
    -
    24221  1990 /*fromYear*/,
    -
    24222  1990 /*toYear*/,
    -
    24223  9 /*inMonth*/,
    -
    24224  0 /*onDayOfWeek*/,
    -
    24225  30 /*onDayOfMonth*/,
    -
    24226  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24227  480 /*atTimeCode (7200/15)*/,
    -
    24228  0 /*deltaMinutes*/,
    -
    24229  0 /*letterIndex ("")*/,
    -
    24230  },
    -
    24231  // Rule Syria 1991 only - Apr 1 0:00 1:00 S
    -
    24232  {
    -
    24233  1991 /*fromYear*/,
    -
    24234  1991 /*toYear*/,
    -
    24235  4 /*inMonth*/,
    -
    24236  0 /*onDayOfWeek*/,
    -
    24237  1 /*onDayOfMonth*/,
    -
    24238  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24239  0 /*atTimeCode (0/15)*/,
    -
    24240  60 /*deltaMinutes*/,
    -
    24241  25 /*letterIndex ("S")*/,
    -
    24242  },
    -
    24243  // Rule Syria 1991 1992 - Oct 1 0:00 0 -
    -
    24244  {
    -
    24245  1991 /*fromYear*/,
    -
    24246  1992 /*toYear*/,
    -
    24247  10 /*inMonth*/,
    -
    24248  0 /*onDayOfWeek*/,
    -
    24249  1 /*onDayOfMonth*/,
    -
    24250  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24251  0 /*atTimeCode (0/15)*/,
    -
    24252  0 /*deltaMinutes*/,
    -
    24253  0 /*letterIndex ("")*/,
    -
    24254  },
    -
    24255  // Rule Syria 1992 only - Apr 8 0:00 1:00 S
    -
    24256  {
    -
    24257  1992 /*fromYear*/,
    -
    24258  1992 /*toYear*/,
    -
    24259  4 /*inMonth*/,
    -
    24260  0 /*onDayOfWeek*/,
    -
    24261  8 /*onDayOfMonth*/,
    -
    24262  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24263  0 /*atTimeCode (0/15)*/,
    -
    24264  60 /*deltaMinutes*/,
    -
    24265  25 /*letterIndex ("S")*/,
    -
    24266  },
    -
    24267  // Rule Syria 1993 only - Mar 26 0:00 1:00 S
    -
    24268  {
    -
    24269  1993 /*fromYear*/,
    -
    24270  1993 /*toYear*/,
    -
    24271  3 /*inMonth*/,
    -
    24272  0 /*onDayOfWeek*/,
    -
    24273  26 /*onDayOfMonth*/,
    -
    24274  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24275  0 /*atTimeCode (0/15)*/,
    -
    24276  60 /*deltaMinutes*/,
    -
    24277  25 /*letterIndex ("S")*/,
    -
    24278  },
    -
    24279  // Rule Syria 1993 only - Sep 25 0:00 0 -
    -
    24280  {
    -
    24281  1993 /*fromYear*/,
    -
    24282  1993 /*toYear*/,
    -
    24283  9 /*inMonth*/,
    -
    24284  0 /*onDayOfWeek*/,
    -
    24285  25 /*onDayOfMonth*/,
    -
    24286  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24287  0 /*atTimeCode (0/15)*/,
    -
    24288  0 /*deltaMinutes*/,
    -
    24289  0 /*letterIndex ("")*/,
    -
    24290  },
    -
    24291  // Rule Syria 1994 1996 - Apr 1 0:00 1:00 S
    -
    24292  {
    -
    24293  1994 /*fromYear*/,
    -
    24294  1996 /*toYear*/,
    -
    24295  4 /*inMonth*/,
    -
    24296  0 /*onDayOfWeek*/,
    -
    24297  1 /*onDayOfMonth*/,
    -
    24298  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24299  0 /*atTimeCode (0/15)*/,
    -
    24300  60 /*deltaMinutes*/,
    -
    24301  25 /*letterIndex ("S")*/,
    -
    24302  },
    -
    24303  // Rule Syria 1994 2005 - Oct 1 0:00 0 -
    -
    24304  {
    -
    24305  1994 /*fromYear*/,
    -
    24306  2005 /*toYear*/,
    -
    24307  10 /*inMonth*/,
    -
    24308  0 /*onDayOfWeek*/,
    -
    24309  1 /*onDayOfMonth*/,
    -
    24310  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24311  0 /*atTimeCode (0/15)*/,
    -
    24312  0 /*deltaMinutes*/,
    -
    24313  0 /*letterIndex ("")*/,
    -
    24314  },
    -
    24315  // Rule Syria 1997 1998 - Mar lastMon 0:00 1:00 S
    -
    24316  {
    -
    24317  1997 /*fromYear*/,
    -
    24318  1998 /*toYear*/,
    -
    24319  3 /*inMonth*/,
    -
    24320  1 /*onDayOfWeek*/,
    -
    24321  0 /*onDayOfMonth*/,
    -
    24322  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24323  0 /*atTimeCode (0/15)*/,
    -
    24324  60 /*deltaMinutes*/,
    -
    24325  25 /*letterIndex ("S")*/,
    -
    24326  },
    -
    24327  // Rule Syria 1999 2006 - Apr 1 0:00 1:00 S
    -
    24328  {
    -
    24329  1999 /*fromYear*/,
    -
    24330  2006 /*toYear*/,
    -
    24331  4 /*inMonth*/,
    -
    24332  0 /*onDayOfWeek*/,
    -
    24333  1 /*onDayOfMonth*/,
    -
    24334  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24335  0 /*atTimeCode (0/15)*/,
    -
    24336  60 /*deltaMinutes*/,
    -
    24337  25 /*letterIndex ("S")*/,
    -
    24338  },
    -
    24339  // Rule Syria 2006 only - Sep 22 0:00 0 -
    -
    24340  {
    -
    24341  2006 /*fromYear*/,
    -
    24342  2006 /*toYear*/,
    -
    24343  9 /*inMonth*/,
    -
    24344  0 /*onDayOfWeek*/,
    -
    24345  22 /*onDayOfMonth*/,
    -
    24346  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24347  0 /*atTimeCode (0/15)*/,
    -
    24348  0 /*deltaMinutes*/,
    -
    24349  0 /*letterIndex ("")*/,
    -
    24350  },
    -
    24351  // Rule Syria 2007 only - Mar lastFri 0:00 1:00 S
    -
    24352  {
    -
    24353  2007 /*fromYear*/,
    -
    24354  2007 /*toYear*/,
    -
    24355  3 /*inMonth*/,
    -
    24356  5 /*onDayOfWeek*/,
    -
    24357  0 /*onDayOfMonth*/,
    -
    24358  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24359  0 /*atTimeCode (0/15)*/,
    -
    24360  60 /*deltaMinutes*/,
    -
    24361  25 /*letterIndex ("S")*/,
    -
    24362  },
    -
    24363  // Rule Syria 2007 only - Nov Fri>=1 0:00 0 -
    -
    24364  {
    -
    24365  2007 /*fromYear*/,
    -
    24366  2007 /*toYear*/,
    -
    24367  11 /*inMonth*/,
    -
    24368  5 /*onDayOfWeek*/,
    -
    24369  1 /*onDayOfMonth*/,
    -
    24370  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24371  0 /*atTimeCode (0/15)*/,
    -
    24372  0 /*deltaMinutes*/,
    -
    24373  0 /*letterIndex ("")*/,
    -
    24374  },
    -
    24375  // Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S
    -
    24376  {
    -
    24377  2008 /*fromYear*/,
    -
    24378  2008 /*toYear*/,
    -
    24379  4 /*inMonth*/,
    -
    24380  5 /*onDayOfWeek*/,
    -
    24381  1 /*onDayOfMonth*/,
    -
    24382  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24383  0 /*atTimeCode (0/15)*/,
    -
    24384  60 /*deltaMinutes*/,
    -
    24385  25 /*letterIndex ("S")*/,
    -
    24386  },
    -
    24387  // Rule Syria 2008 only - Nov 1 0:00 0 -
    -
    24388  {
    -
    24389  2008 /*fromYear*/,
    -
    24390  2008 /*toYear*/,
    -
    24391  11 /*inMonth*/,
    -
    24392  0 /*onDayOfWeek*/,
    -
    24393  1 /*onDayOfMonth*/,
    -
    24394  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24395  0 /*atTimeCode (0/15)*/,
    -
    24396  0 /*deltaMinutes*/,
    -
    24397  0 /*letterIndex ("")*/,
    -
    24398  },
    -
    24399  // Rule Syria 2009 only - Mar lastFri 0:00 1:00 S
    -
    24400  {
    -
    24401  2009 /*fromYear*/,
    -
    24402  2009 /*toYear*/,
    -
    24403  3 /*inMonth*/,
    -
    24404  5 /*onDayOfWeek*/,
    -
    24405  0 /*onDayOfMonth*/,
    -
    24406  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24407  0 /*atTimeCode (0/15)*/,
    -
    24408  60 /*deltaMinutes*/,
    -
    24409  25 /*letterIndex ("S")*/,
    -
    24410  },
    -
    24411  // Rule Syria 2010 2011 - Apr Fri>=1 0:00 1:00 S
    -
    24412  {
    -
    24413  2010 /*fromYear*/,
    -
    24414  2011 /*toYear*/,
    -
    24415  4 /*inMonth*/,
    -
    24416  5 /*onDayOfWeek*/,
    -
    24417  1 /*onDayOfMonth*/,
    -
    24418  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24419  0 /*atTimeCode (0/15)*/,
    -
    24420  60 /*deltaMinutes*/,
    -
    24421  25 /*letterIndex ("S")*/,
    -
    24422  },
    -
    24423  // Rule Syria 2012 2022 - Mar lastFri 0:00 1:00 S
    -
    24424  {
    -
    24425  2012 /*fromYear*/,
    -
    24426  2022 /*toYear*/,
    -
    24427  3 /*inMonth*/,
    -
    24428  5 /*onDayOfWeek*/,
    -
    24429  0 /*onDayOfMonth*/,
    -
    24430  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24431  0 /*atTimeCode (0/15)*/,
    -
    24432  60 /*deltaMinutes*/,
    -
    24433  25 /*letterIndex ("S")*/,
    -
    24434  },
    -
    24435  // Rule Syria 2009 2022 - Oct lastFri 0:00 0 -
    -
    24436  {
    -
    24437  2009 /*fromYear*/,
    -
    24438  2022 /*toYear*/,
    -
    24439  10 /*inMonth*/,
    -
    24440  5 /*onDayOfWeek*/,
    -
    24441  0 /*onDayOfMonth*/,
    -
    24442  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24443  0 /*atTimeCode (0/15)*/,
    -
    24444  0 /*deltaMinutes*/,
    -
    24445  0 /*letterIndex ("")*/,
    -
    24446  },
    -
    24447 
    -
    24448 };
    -
    24449 
    -
    24450 const complete::Info::ZonePolicy kZonePolicySyria ACE_TIME_PROGMEM = {
    -
    24451  kZoneRulesSyria /*rules*/,
    -
    24452  42 /*numRules*/,
    -
    24453 };
    -
    24454 
    -
    24455 //---------------------------------------------------------------------------
    -
    24456 // Policy name: Taiwan
    -
    24457 // Rules: 16
    -
    24458 //---------------------------------------------------------------------------
    -
    24459 
    -
    24460 static const complete::Info::ZoneRule kZoneRulesTaiwan[] ACE_TIME_PROGMEM = {
    -
    24461  // Anchor: Rule Taiwan 1946 only - Oct 1 0:00 0 S
    -
    24462  {
    -
    24463  -32767 /*fromYear*/,
    -
    24464  -32767 /*toYear*/,
    -
    24465  1 /*inMonth*/,
    -
    24466  0 /*onDayOfWeek*/,
    -
    24467  1 /*onDayOfMonth*/,
    -
    24468  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24469  0 /*atTimeCode (0/15)*/,
    -
    24470  0 /*deltaMinutes*/,
    -
    24471  25 /*letterIndex ("S")*/,
    -
    24472  },
    -
    24473  // Rule Taiwan 1946 only - May 15 0:00 1:00 D
    -
    24474  {
    -
    24475  1946 /*fromYear*/,
    -
    24476  1946 /*toYear*/,
    -
    24477  5 /*inMonth*/,
    -
    24478  0 /*onDayOfWeek*/,
    -
    24479  15 /*onDayOfMonth*/,
    -
    24480  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24481  0 /*atTimeCode (0/15)*/,
    -
    24482  60 /*deltaMinutes*/,
    -
    24483  13 /*letterIndex ("D")*/,
    -
    24484  },
    -
    24485  // Rule Taiwan 1946 only - Oct 1 0:00 0 S
    -
    24486  {
    -
    24487  1946 /*fromYear*/,
    -
    24488  1946 /*toYear*/,
    -
    24489  10 /*inMonth*/,
    -
    24490  0 /*onDayOfWeek*/,
    -
    24491  1 /*onDayOfMonth*/,
    -
    24492  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24493  0 /*atTimeCode (0/15)*/,
    -
    24494  0 /*deltaMinutes*/,
    -
    24495  25 /*letterIndex ("S")*/,
    -
    24496  },
    -
    24497  // Rule Taiwan 1947 only - Apr 15 0:00 1:00 D
    -
    24498  {
    -
    24499  1947 /*fromYear*/,
    -
    24500  1947 /*toYear*/,
    -
    24501  4 /*inMonth*/,
    -
    24502  0 /*onDayOfWeek*/,
    -
    24503  15 /*onDayOfMonth*/,
    -
    24504  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24505  0 /*atTimeCode (0/15)*/,
    -
    24506  60 /*deltaMinutes*/,
    -
    24507  13 /*letterIndex ("D")*/,
    -
    24508  },
    -
    24509  // Rule Taiwan 1947 only - Nov 1 0:00 0 S
    -
    24510  {
    -
    24511  1947 /*fromYear*/,
    -
    24512  1947 /*toYear*/,
    -
    24513  11 /*inMonth*/,
    -
    24514  0 /*onDayOfWeek*/,
    -
    24515  1 /*onDayOfMonth*/,
    -
    24516  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24517  0 /*atTimeCode (0/15)*/,
    -
    24518  0 /*deltaMinutes*/,
    -
    24519  25 /*letterIndex ("S")*/,
    -
    24520  },
    -
    24521  // Rule Taiwan 1948 1951 - May 1 0:00 1:00 D
    -
    24522  {
    -
    24523  1948 /*fromYear*/,
    -
    24524  1951 /*toYear*/,
    -
    24525  5 /*inMonth*/,
    -
    24526  0 /*onDayOfWeek*/,
    -
    24527  1 /*onDayOfMonth*/,
    -
    24528  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24529  0 /*atTimeCode (0/15)*/,
    -
    24530  60 /*deltaMinutes*/,
    -
    24531  13 /*letterIndex ("D")*/,
    -
    24532  },
    -
    24533  // Rule Taiwan 1948 1951 - Oct 1 0:00 0 S
    -
    24534  {
    -
    24535  1948 /*fromYear*/,
    -
    24536  1951 /*toYear*/,
    -
    24537  10 /*inMonth*/,
    -
    24538  0 /*onDayOfWeek*/,
    -
    24539  1 /*onDayOfMonth*/,
    -
    24540  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24541  0 /*atTimeCode (0/15)*/,
    -
    24542  0 /*deltaMinutes*/,
    -
    24543  25 /*letterIndex ("S")*/,
    -
    24544  },
    -
    24545  // Rule Taiwan 1952 only - Mar 1 0:00 1:00 D
    -
    24546  {
    -
    24547  1952 /*fromYear*/,
    -
    24548  1952 /*toYear*/,
    -
    24549  3 /*inMonth*/,
    -
    24550  0 /*onDayOfWeek*/,
    -
    24551  1 /*onDayOfMonth*/,
    -
    24552  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24553  0 /*atTimeCode (0/15)*/,
    -
    24554  60 /*deltaMinutes*/,
    -
    24555  13 /*letterIndex ("D")*/,
    -
    24556  },
    -
    24557  // Rule Taiwan 1952 1954 - Nov 1 0:00 0 S
    -
    24558  {
    -
    24559  1952 /*fromYear*/,
    -
    24560  1954 /*toYear*/,
    -
    24561  11 /*inMonth*/,
    -
    24562  0 /*onDayOfWeek*/,
    -
    24563  1 /*onDayOfMonth*/,
    -
    24564  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24565  0 /*atTimeCode (0/15)*/,
    -
    24566  0 /*deltaMinutes*/,
    -
    24567  25 /*letterIndex ("S")*/,
    -
    24568  },
    -
    24569  // Rule Taiwan 1953 1959 - Apr 1 0:00 1:00 D
    -
    24570  {
    -
    24571  1953 /*fromYear*/,
    -
    24572  1959 /*toYear*/,
    -
    24573  4 /*inMonth*/,
    -
    24574  0 /*onDayOfWeek*/,
    -
    24575  1 /*onDayOfMonth*/,
    -
    24576  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24577  0 /*atTimeCode (0/15)*/,
    -
    24578  60 /*deltaMinutes*/,
    -
    24579  13 /*letterIndex ("D")*/,
    -
    24580  },
    -
    24581  // Rule Taiwan 1955 1961 - Oct 1 0:00 0 S
    -
    24582  {
    -
    24583  1955 /*fromYear*/,
    -
    24584  1961 /*toYear*/,
    -
    24585  10 /*inMonth*/,
    -
    24586  0 /*onDayOfWeek*/,
    -
    24587  1 /*onDayOfMonth*/,
    -
    24588  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24589  0 /*atTimeCode (0/15)*/,
    -
    24590  0 /*deltaMinutes*/,
    -
    24591  25 /*letterIndex ("S")*/,
    -
    24592  },
    -
    24593  // Rule Taiwan 1960 1961 - Jun 1 0:00 1:00 D
    -
    24594  {
    -
    24595  1960 /*fromYear*/,
    -
    24596  1961 /*toYear*/,
    -
    24597  6 /*inMonth*/,
    -
    24598  0 /*onDayOfWeek*/,
    -
    24599  1 /*onDayOfMonth*/,
    -
    24600  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24601  0 /*atTimeCode (0/15)*/,
    -
    24602  60 /*deltaMinutes*/,
    -
    24603  13 /*letterIndex ("D")*/,
    -
    24604  },
    -
    24605  // Rule Taiwan 1974 1975 - Apr 1 0:00 1:00 D
    -
    24606  {
    -
    24607  1974 /*fromYear*/,
    -
    24608  1975 /*toYear*/,
    -
    24609  4 /*inMonth*/,
    -
    24610  0 /*onDayOfWeek*/,
    -
    24611  1 /*onDayOfMonth*/,
    -
    24612  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24613  0 /*atTimeCode (0/15)*/,
    -
    24614  60 /*deltaMinutes*/,
    -
    24615  13 /*letterIndex ("D")*/,
    -
    24616  },
    -
    24617  // Rule Taiwan 1974 1975 - Oct 1 0:00 0 S
    -
    24618  {
    -
    24619  1974 /*fromYear*/,
    -
    24620  1975 /*toYear*/,
    -
    24621  10 /*inMonth*/,
    -
    24622  0 /*onDayOfWeek*/,
    -
    24623  1 /*onDayOfMonth*/,
    -
    24624  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24625  0 /*atTimeCode (0/15)*/,
    -
    24626  0 /*deltaMinutes*/,
    -
    24627  25 /*letterIndex ("S")*/,
    -
    24628  },
    -
    24629  // Rule Taiwan 1979 only - Jul 1 0:00 1:00 D
    -
    24630  {
    -
    24631  1979 /*fromYear*/,
    -
    24632  1979 /*toYear*/,
    -
    24633  7 /*inMonth*/,
    -
    24634  0 /*onDayOfWeek*/,
    -
    24635  1 /*onDayOfMonth*/,
    -
    24636  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24637  0 /*atTimeCode (0/15)*/,
    -
    24638  60 /*deltaMinutes*/,
    -
    24639  13 /*letterIndex ("D")*/,
    -
    24640  },
    -
    24641  // Rule Taiwan 1979 only - Oct 1 0:00 0 S
    -
    24642  {
    -
    24643  1979 /*fromYear*/,
    -
    24644  1979 /*toYear*/,
    -
    24645  10 /*inMonth*/,
    -
    24646  0 /*onDayOfWeek*/,
    -
    24647  1 /*onDayOfMonth*/,
    -
    24648  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24649  0 /*atTimeCode (0/15)*/,
    -
    24650  0 /*deltaMinutes*/,
    -
    24651  25 /*letterIndex ("S")*/,
    -
    24652  },
    -
    24653 
    -
    24654 };
    -
    24655 
    -
    24656 const complete::Info::ZonePolicy kZonePolicyTaiwan ACE_TIME_PROGMEM = {
    -
    24657  kZoneRulesTaiwan /*rules*/,
    -
    24658  16 /*numRules*/,
    -
    24659 };
    -
    24660 
    -
    24661 //---------------------------------------------------------------------------
    -
    24662 // Policy name: Thule
    -
    24663 // Rules: 7
    -
    24664 //---------------------------------------------------------------------------
    -
    24665 
    -
    24666 static const complete::Info::ZoneRule kZoneRulesThule[] ACE_TIME_PROGMEM = {
    -
    24667  // Anchor: Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
    -
    24668  {
    -
    24669  -32767 /*fromYear*/,
    -
    24670  -32767 /*toYear*/,
    -
    24671  1 /*inMonth*/,
    -
    24672  0 /*onDayOfWeek*/,
    -
    24673  1 /*onDayOfMonth*/,
    -
    24674  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24675  0 /*atTimeCode (0/15)*/,
    -
    24676  0 /*deltaMinutes*/,
    -
    24677  25 /*letterIndex ("S")*/,
    -
    24678  },
    -
    24679  // Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D
    -
    24680  {
    -
    24681  1991 /*fromYear*/,
    -
    24682  1992 /*toYear*/,
    -
    24683  3 /*inMonth*/,
    -
    24684  7 /*onDayOfWeek*/,
    -
    24685  0 /*onDayOfMonth*/,
    -
    24686  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24687  480 /*atTimeCode (7200/15)*/,
    -
    24688  60 /*deltaMinutes*/,
    -
    24689  13 /*letterIndex ("D")*/,
    -
    24690  },
    -
    24691  // Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
    -
    24692  {
    -
    24693  1991 /*fromYear*/,
    -
    24694  1992 /*toYear*/,
    -
    24695  9 /*inMonth*/,
    -
    24696  7 /*onDayOfWeek*/,
    -
    24697  0 /*onDayOfMonth*/,
    -
    24698  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24699  480 /*atTimeCode (7200/15)*/,
    -
    24700  0 /*deltaMinutes*/,
    -
    24701  25 /*letterIndex ("S")*/,
    -
    24702  },
    -
    24703  // Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D
    -
    24704  {
    -
    24705  1993 /*fromYear*/,
    -
    24706  2006 /*toYear*/,
    -
    24707  4 /*inMonth*/,
    -
    24708  7 /*onDayOfWeek*/,
    -
    24709  1 /*onDayOfMonth*/,
    -
    24710  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24711  480 /*atTimeCode (7200/15)*/,
    -
    24712  60 /*deltaMinutes*/,
    -
    24713  13 /*letterIndex ("D")*/,
    -
    24714  },
    -
    24715  // Rule Thule 1993 2006 - Oct lastSun 2:00 0 S
    -
    24716  {
    -
    24717  1993 /*fromYear*/,
    -
    24718  2006 /*toYear*/,
    -
    24719  10 /*inMonth*/,
    -
    24720  7 /*onDayOfWeek*/,
    -
    24721  0 /*onDayOfMonth*/,
    -
    24722  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24723  480 /*atTimeCode (7200/15)*/,
    -
    24724  0 /*deltaMinutes*/,
    -
    24725  25 /*letterIndex ("S")*/,
    -
    24726  },
    -
    24727  // Rule Thule 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    24728  {
    -
    24729  2007 /*fromYear*/,
    -
    24730  32766 /*toYear*/,
    -
    24731  3 /*inMonth*/,
    -
    24732  7 /*onDayOfWeek*/,
    -
    24733  8 /*onDayOfMonth*/,
    -
    24734  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24735  480 /*atTimeCode (7200/15)*/,
    -
    24736  60 /*deltaMinutes*/,
    -
    24737  13 /*letterIndex ("D")*/,
    -
    24738  },
    -
    24739  // Rule Thule 2007 max - Nov Sun>=1 2:00 0 S
    -
    24740  {
    -
    24741  2007 /*fromYear*/,
    -
    24742  32766 /*toYear*/,
    -
    24743  11 /*inMonth*/,
    -
    24744  7 /*onDayOfWeek*/,
    -
    24745  1 /*onDayOfMonth*/,
    -
    24746  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24747  480 /*atTimeCode (7200/15)*/,
    -
    24748  0 /*deltaMinutes*/,
    -
    24749  25 /*letterIndex ("S")*/,
    -
    24750  },
    -
    24751 
    -
    24752 };
    -
    24753 
    -
    24754 const complete::Info::ZonePolicy kZonePolicyThule ACE_TIME_PROGMEM = {
    -
    24755  kZoneRulesThule /*rules*/,
    -
    24756  7 /*numRules*/,
    -
    24757 };
    -
    24758 
    -
    24759 //---------------------------------------------------------------------------
    -
    24760 // Policy name: Tonga
    -
    24761 // Rules: 7
    -
    24762 //---------------------------------------------------------------------------
    -
    24763 
    -
    24764 static const complete::Info::ZoneRule kZoneRulesTonga[] ACE_TIME_PROGMEM = {
    -
    24765  // Anchor: Rule Tonga 2000 only - Mar 19 2:00s 0 -
    -
    24766  {
    -
    24767  -32767 /*fromYear*/,
    -
    24768  -32767 /*toYear*/,
    -
    24769  1 /*inMonth*/,
    -
    24770  0 /*onDayOfWeek*/,
    -
    24771  1 /*onDayOfMonth*/,
    -
    24772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24773  0 /*atTimeCode (0/15)*/,
    -
    24774  0 /*deltaMinutes*/,
    -
    24775  0 /*letterIndex ("")*/,
    -
    24776  },
    -
    24777  // Rule Tonga 1999 only - Oct 7 2:00s 1:00 -
    -
    24778  {
    -
    24779  1999 /*fromYear*/,
    -
    24780  1999 /*toYear*/,
    -
    24781  10 /*inMonth*/,
    -
    24782  0 /*onDayOfWeek*/,
    -
    24783  7 /*onDayOfMonth*/,
    -
    24784  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    24785  480 /*atTimeCode (7200/15)*/,
    -
    24786  60 /*deltaMinutes*/,
    -
    24787  0 /*letterIndex ("")*/,
    -
    24788  },
    -
    24789  // Rule Tonga 2000 only - Mar 19 2:00s 0 -
    -
    24790  {
    -
    24791  2000 /*fromYear*/,
    -
    24792  2000 /*toYear*/,
    -
    24793  3 /*inMonth*/,
    -
    24794  0 /*onDayOfWeek*/,
    -
    24795  19 /*onDayOfMonth*/,
    -
    24796  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    24797  480 /*atTimeCode (7200/15)*/,
    -
    24798  0 /*deltaMinutes*/,
    -
    24799  0 /*letterIndex ("")*/,
    -
    24800  },
    -
    24801  // Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 -
    -
    24802  {
    -
    24803  2000 /*fromYear*/,
    -
    24804  2001 /*toYear*/,
    -
    24805  11 /*inMonth*/,
    -
    24806  7 /*onDayOfWeek*/,
    -
    24807  1 /*onDayOfMonth*/,
    -
    24808  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24809  480 /*atTimeCode (7200/15)*/,
    -
    24810  60 /*deltaMinutes*/,
    -
    24811  0 /*letterIndex ("")*/,
    -
    24812  },
    -
    24813  // Rule Tonga 2001 2002 - Jan lastSun 2:00 0 -
    -
    24814  {
    -
    24815  2001 /*fromYear*/,
    -
    24816  2002 /*toYear*/,
    -
    24817  1 /*inMonth*/,
    -
    24818  7 /*onDayOfWeek*/,
    -
    24819  0 /*onDayOfMonth*/,
    -
    24820  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24821  480 /*atTimeCode (7200/15)*/,
    -
    24822  0 /*deltaMinutes*/,
    -
    24823  0 /*letterIndex ("")*/,
    -
    24824  },
    -
    24825  // Rule Tonga 2016 only - Nov Sun>=1 2:00 1:00 -
    -
    24826  {
    -
    24827  2016 /*fromYear*/,
    -
    24828  2016 /*toYear*/,
    -
    24829  11 /*inMonth*/,
    -
    24830  7 /*onDayOfWeek*/,
    -
    24831  1 /*onDayOfMonth*/,
    -
    24832  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24833  480 /*atTimeCode (7200/15)*/,
    -
    24834  60 /*deltaMinutes*/,
    -
    24835  0 /*letterIndex ("")*/,
    -
    24836  },
    -
    24837  // Rule Tonga 2017 only - Jan Sun>=15 3:00 0 -
    -
    24838  {
    -
    24839  2017 /*fromYear*/,
    -
    24840  2017 /*toYear*/,
    -
    24841  1 /*inMonth*/,
    -
    24842  7 /*onDayOfWeek*/,
    -
    24843  15 /*onDayOfMonth*/,
    -
    24844  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24845  720 /*atTimeCode (10800/15)*/,
    -
    24846  0 /*deltaMinutes*/,
    -
    24847  0 /*letterIndex ("")*/,
    -
    24848  },
    -
    24849 
    -
    24850 };
    -
    24851 
    -
    24852 const complete::Info::ZonePolicy kZonePolicyTonga ACE_TIME_PROGMEM = {
    -
    24853  kZoneRulesTonga /*rules*/,
    -
    24854  7 /*numRules*/,
    -
    24855 };
    -
    24856 
    -
    24857 //---------------------------------------------------------------------------
    -
    24858 // Policy name: Toronto
    -
    24859 // Rules: 19
    -
    24860 //---------------------------------------------------------------------------
    -
    24861 
    -
    24862 static const complete::Info::ZoneRule kZoneRulesToronto[] ACE_TIME_PROGMEM = {
    -
    24863  // Anchor: Rule Toronto 1919 only - Oct 26 0:00 0 S
    -
    24864  {
    -
    24865  -32767 /*fromYear*/,
    -
    24866  -32767 /*toYear*/,
    -
    24867  1 /*inMonth*/,
    -
    24868  0 /*onDayOfWeek*/,
    -
    24869  1 /*onDayOfMonth*/,
    -
    24870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24871  0 /*atTimeCode (0/15)*/,
    -
    24872  0 /*deltaMinutes*/,
    -
    24873  25 /*letterIndex ("S")*/,
    -
    24874  },
    -
    24875  // Rule Toronto 1919 only - Mar 30 23:30 1:00 D
    -
    24876  {
    -
    24877  1919 /*fromYear*/,
    -
    24878  1919 /*toYear*/,
    -
    24879  3 /*inMonth*/,
    -
    24880  0 /*onDayOfWeek*/,
    -
    24881  30 /*onDayOfMonth*/,
    -
    24882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24883  5640 /*atTimeCode (84600/15)*/,
    -
    24884  60 /*deltaMinutes*/,
    -
    24885  13 /*letterIndex ("D")*/,
    -
    24886  },
    -
    24887  // Rule Toronto 1919 only - Oct 26 0:00 0 S
    -
    24888  {
    -
    24889  1919 /*fromYear*/,
    -
    24890  1919 /*toYear*/,
    -
    24891  10 /*inMonth*/,
    -
    24892  0 /*onDayOfWeek*/,
    -
    24893  26 /*onDayOfMonth*/,
    -
    24894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24895  0 /*atTimeCode (0/15)*/,
    -
    24896  0 /*deltaMinutes*/,
    -
    24897  25 /*letterIndex ("S")*/,
    -
    24898  },
    -
    24899  // Rule Toronto 1920 only - May 2 2:00 1:00 D
    -
    24900  {
    -
    24901  1920 /*fromYear*/,
    -
    24902  1920 /*toYear*/,
    -
    24903  5 /*inMonth*/,
    -
    24904  0 /*onDayOfWeek*/,
    -
    24905  2 /*onDayOfMonth*/,
    -
    24906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24907  480 /*atTimeCode (7200/15)*/,
    -
    24908  60 /*deltaMinutes*/,
    -
    24909  13 /*letterIndex ("D")*/,
    -
    24910  },
    -
    24911  // Rule Toronto 1920 only - Sep 26 0:00 0 S
    -
    24912  {
    -
    24913  1920 /*fromYear*/,
    -
    24914  1920 /*toYear*/,
    -
    24915  9 /*inMonth*/,
    -
    24916  0 /*onDayOfWeek*/,
    -
    24917  26 /*onDayOfMonth*/,
    -
    24918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24919  0 /*atTimeCode (0/15)*/,
    -
    24920  0 /*deltaMinutes*/,
    -
    24921  25 /*letterIndex ("S")*/,
    -
    24922  },
    -
    24923  // Rule Toronto 1921 only - May 15 2:00 1:00 D
    -
    24924  {
    -
    24925  1921 /*fromYear*/,
    -
    24926  1921 /*toYear*/,
    -
    24927  5 /*inMonth*/,
    -
    24928  0 /*onDayOfWeek*/,
    -
    24929  15 /*onDayOfMonth*/,
    -
    24930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24931  480 /*atTimeCode (7200/15)*/,
    -
    24932  60 /*deltaMinutes*/,
    -
    24933  13 /*letterIndex ("D")*/,
    -
    24934  },
    -
    24935  // Rule Toronto 1921 only - Sep 15 2:00 0 S
    -
    24936  {
    -
    24937  1921 /*fromYear*/,
    -
    24938  1921 /*toYear*/,
    -
    24939  9 /*inMonth*/,
    -
    24940  0 /*onDayOfWeek*/,
    -
    24941  15 /*onDayOfMonth*/,
    -
    24942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24943  480 /*atTimeCode (7200/15)*/,
    -
    24944  0 /*deltaMinutes*/,
    -
    24945  25 /*letterIndex ("S")*/,
    -
    24946  },
    -
    24947  // Rule Toronto 1922 1923 - May Sun>=8 2:00 1:00 D
    -
    24948  {
    -
    24949  1922 /*fromYear*/,
    -
    24950  1923 /*toYear*/,
    -
    24951  5 /*inMonth*/,
    -
    24952  7 /*onDayOfWeek*/,
    -
    24953  8 /*onDayOfMonth*/,
    -
    24954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24955  480 /*atTimeCode (7200/15)*/,
    -
    24956  60 /*deltaMinutes*/,
    -
    24957  13 /*letterIndex ("D")*/,
    -
    24958  },
    -
    24959  // Rule Toronto 1922 1926 - Sep Sun>=15 2:00 0 S
    -
    24960  {
    -
    24961  1922 /*fromYear*/,
    -
    24962  1926 /*toYear*/,
    -
    24963  9 /*inMonth*/,
    -
    24964  7 /*onDayOfWeek*/,
    -
    24965  15 /*onDayOfMonth*/,
    -
    24966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24967  480 /*atTimeCode (7200/15)*/,
    -
    24968  0 /*deltaMinutes*/,
    -
    24969  25 /*letterIndex ("S")*/,
    -
    24970  },
    -
    24971  // Rule Toronto 1924 1927 - May Sun>=1 2:00 1:00 D
    -
    24972  {
    -
    24973  1924 /*fromYear*/,
    -
    24974  1927 /*toYear*/,
    -
    24975  5 /*inMonth*/,
    -
    24976  7 /*onDayOfWeek*/,
    -
    24977  1 /*onDayOfMonth*/,
    -
    24978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24979  480 /*atTimeCode (7200/15)*/,
    -
    24980  60 /*deltaMinutes*/,
    -
    24981  13 /*letterIndex ("D")*/,
    -
    24982  },
    -
    24983  // Rule Toronto 1927 1937 - Sep Sun>=25 2:00 0 S
    -
    24984  {
    -
    24985  1927 /*fromYear*/,
    -
    24986  1937 /*toYear*/,
    -
    24987  9 /*inMonth*/,
    -
    24988  7 /*onDayOfWeek*/,
    -
    24989  25 /*onDayOfMonth*/,
    -
    24990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    24991  480 /*atTimeCode (7200/15)*/,
    -
    24992  0 /*deltaMinutes*/,
    -
    24993  25 /*letterIndex ("S")*/,
    -
    24994  },
    -
    24995  // Rule Toronto 1928 1937 - Apr Sun>=25 2:00 1:00 D
    -
    24996  {
    -
    24997  1928 /*fromYear*/,
    -
    24998  1937 /*toYear*/,
    -
    24999  4 /*inMonth*/,
    -
    25000  7 /*onDayOfWeek*/,
    -
    25001  25 /*onDayOfMonth*/,
    -
    25002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25003  480 /*atTimeCode (7200/15)*/,
    -
    25004  60 /*deltaMinutes*/,
    -
    25005  13 /*letterIndex ("D")*/,
    -
    25006  },
    -
    25007  // Rule Toronto 1938 1940 - Apr lastSun 2:00 1:00 D
    -
    25008  {
    -
    25009  1938 /*fromYear*/,
    -
    25010  1940 /*toYear*/,
    -
    25011  4 /*inMonth*/,
    -
    25012  7 /*onDayOfWeek*/,
    -
    25013  0 /*onDayOfMonth*/,
    -
    25014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25015  480 /*atTimeCode (7200/15)*/,
    -
    25016  60 /*deltaMinutes*/,
    -
    25017  13 /*letterIndex ("D")*/,
    -
    25018  },
    -
    25019  // Rule Toronto 1938 1939 - Sep lastSun 2:00 0 S
    -
    25020  {
    -
    25021  1938 /*fromYear*/,
    -
    25022  1939 /*toYear*/,
    -
    25023  9 /*inMonth*/,
    -
    25024  7 /*onDayOfWeek*/,
    -
    25025  0 /*onDayOfMonth*/,
    -
    25026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25027  480 /*atTimeCode (7200/15)*/,
    -
    25028  0 /*deltaMinutes*/,
    -
    25029  25 /*letterIndex ("S")*/,
    -
    25030  },
    -
    25031  // Rule Toronto 1945 1948 - Sep lastSun 2:00 0 S
    -
    25032  {
    -
    25033  1945 /*fromYear*/,
    -
    25034  1948 /*toYear*/,
    -
    25035  9 /*inMonth*/,
    -
    25036  7 /*onDayOfWeek*/,
    -
    25037  0 /*onDayOfMonth*/,
    -
    25038  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25039  480 /*atTimeCode (7200/15)*/,
    -
    25040  0 /*deltaMinutes*/,
    -
    25041  25 /*letterIndex ("S")*/,
    -
    25042  },
    -
    25043  // Rule Toronto 1946 1973 - Apr lastSun 2:00 1:00 D
    -
    25044  {
    -
    25045  1946 /*fromYear*/,
    -
    25046  1973 /*toYear*/,
    -
    25047  4 /*inMonth*/,
    -
    25048  7 /*onDayOfWeek*/,
    -
    25049  0 /*onDayOfMonth*/,
    -
    25050  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25051  480 /*atTimeCode (7200/15)*/,
    -
    25052  60 /*deltaMinutes*/,
    -
    25053  13 /*letterIndex ("D")*/,
    -
    25054  },
    -
    25055  // Rule Toronto 1949 1950 - Nov lastSun 2:00 0 S
    -
    25056  {
    -
    25057  1949 /*fromYear*/,
    -
    25058  1950 /*toYear*/,
    -
    25059  11 /*inMonth*/,
    -
    25060  7 /*onDayOfWeek*/,
    -
    25061  0 /*onDayOfMonth*/,
    -
    25062  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25063  480 /*atTimeCode (7200/15)*/,
    -
    25064  0 /*deltaMinutes*/,
    -
    25065  25 /*letterIndex ("S")*/,
    -
    25066  },
    -
    25067  // Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S
    -
    25068  {
    -
    25069  1951 /*fromYear*/,
    -
    25070  1956 /*toYear*/,
    -
    25071  9 /*inMonth*/,
    -
    25072  7 /*onDayOfWeek*/,
    -
    25073  0 /*onDayOfMonth*/,
    -
    25074  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25075  480 /*atTimeCode (7200/15)*/,
    -
    25076  0 /*deltaMinutes*/,
    -
    25077  25 /*letterIndex ("S")*/,
    -
    25078  },
    -
    25079  // Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S
    -
    25080  {
    -
    25081  1957 /*fromYear*/,
    -
    25082  1973 /*toYear*/,
    -
    25083  10 /*inMonth*/,
    -
    25084  7 /*onDayOfWeek*/,
    -
    25085  0 /*onDayOfMonth*/,
    -
    25086  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25087  480 /*atTimeCode (7200/15)*/,
    -
    25088  0 /*deltaMinutes*/,
    -
    25089  25 /*letterIndex ("S")*/,
    -
    25090  },
    -
    25091 
    -
    25092 };
    -
    25093 
    -
    25094 const complete::Info::ZonePolicy kZonePolicyToronto ACE_TIME_PROGMEM = {
    -
    25095  kZoneRulesToronto /*rules*/,
    -
    25096  19 /*numRules*/,
    -
    25097 };
    -
    25098 
    -
    25099 //---------------------------------------------------------------------------
    -
    25100 // Policy name: Troll
    -
    25101 // Rules: 3
    -
    25102 //---------------------------------------------------------------------------
    -
    25103 
    -
    25104 static const complete::Info::ZoneRule kZoneRulesTroll[] ACE_TIME_PROGMEM = {
    -
    25105  // Anchor: Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00
    -
    25106  {
    -
    25107  -32767 /*fromYear*/,
    -
    25108  -32767 /*toYear*/,
    -
    25109  1 /*inMonth*/,
    -
    25110  0 /*onDayOfWeek*/,
    -
    25111  1 /*onDayOfMonth*/,
    -
    25112  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25113  0 /*atTimeCode (0/15)*/,
    -
    25114  0 /*deltaMinutes*/,
    -
    25115  1 /*letterIndex ("+00")*/,
    -
    25116  },
    -
    25117  // Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02
    -
    25118  {
    -
    25119  2005 /*fromYear*/,
    -
    25120  32766 /*toYear*/,
    -
    25121  3 /*inMonth*/,
    -
    25122  7 /*onDayOfWeek*/,
    -
    25123  0 /*onDayOfMonth*/,
    -
    25124  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    25125  240 /*atTimeCode (3600/15)*/,
    -
    25126  120 /*deltaMinutes*/,
    -
    25127  2 /*letterIndex ("+02")*/,
    -
    25128  },
    -
    25129  // Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00
    -
    25130  {
    -
    25131  2004 /*fromYear*/,
    -
    25132  32766 /*toYear*/,
    -
    25133  10 /*inMonth*/,
    -
    25134  7 /*onDayOfWeek*/,
    -
    25135  0 /*onDayOfMonth*/,
    -
    25136  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    25137  240 /*atTimeCode (3600/15)*/,
    -
    25138  0 /*deltaMinutes*/,
    -
    25139  1 /*letterIndex ("+00")*/,
    -
    25140  },
    -
    25141 
    -
    25142 };
    -
    25143 
    -
    25144 const complete::Info::ZonePolicy kZonePolicyTroll ACE_TIME_PROGMEM = {
    -
    25145  kZoneRulesTroll /*rules*/,
    -
    25146  3 /*numRules*/,
    -
    25147 };
    -
    25148 
    -
    25149 //---------------------------------------------------------------------------
    -
    25150 // Policy name: Tunisia
    -
    25151 // Rules: 26
    -
    25152 //---------------------------------------------------------------------------
    -
    25153 
    -
    25154 static const complete::Info::ZoneRule kZoneRulesTunisia[] ACE_TIME_PROGMEM = {
    -
    25155  // Anchor: Rule Tunisia 1939 only - Nov 18 23:00s 0 -
    -
    25156  {
    -
    25157  -32767 /*fromYear*/,
    -
    25158  -32767 /*toYear*/,
    -
    25159  1 /*inMonth*/,
    -
    25160  0 /*onDayOfWeek*/,
    -
    25161  1 /*onDayOfMonth*/,
    -
    25162  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25163  0 /*atTimeCode (0/15)*/,
    -
    25164  0 /*deltaMinutes*/,
    -
    25165  0 /*letterIndex ("")*/,
    -
    25166  },
    -
    25167  // Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S
    -
    25168  {
    -
    25169  1939 /*fromYear*/,
    -
    25170  1939 /*toYear*/,
    -
    25171  4 /*inMonth*/,
    -
    25172  0 /*onDayOfWeek*/,
    -
    25173  15 /*onDayOfMonth*/,
    -
    25174  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25175  5520 /*atTimeCode (82800/15)*/,
    -
    25176  60 /*deltaMinutes*/,
    -
    25177  25 /*letterIndex ("S")*/,
    -
    25178  },
    -
    25179  // Rule Tunisia 1939 only - Nov 18 23:00s 0 -
    -
    25180  {
    -
    25181  1939 /*fromYear*/,
    -
    25182  1939 /*toYear*/,
    -
    25183  11 /*inMonth*/,
    -
    25184  0 /*onDayOfWeek*/,
    -
    25185  18 /*onDayOfMonth*/,
    -
    25186  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25187  5520 /*atTimeCode (82800/15)*/,
    -
    25188  0 /*deltaMinutes*/,
    -
    25189  0 /*letterIndex ("")*/,
    -
    25190  },
    -
    25191  // Rule Tunisia 1940 only - Feb 25 23:00s 1:00 S
    -
    25192  {
    -
    25193  1940 /*fromYear*/,
    -
    25194  1940 /*toYear*/,
    -
    25195  2 /*inMonth*/,
    -
    25196  0 /*onDayOfWeek*/,
    -
    25197  25 /*onDayOfMonth*/,
    -
    25198  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25199  5520 /*atTimeCode (82800/15)*/,
    -
    25200  60 /*deltaMinutes*/,
    -
    25201  25 /*letterIndex ("S")*/,
    -
    25202  },
    -
    25203  // Rule Tunisia 1941 only - Oct 6 0:00 0 -
    -
    25204  {
    -
    25205  1941 /*fromYear*/,
    -
    25206  1941 /*toYear*/,
    -
    25207  10 /*inMonth*/,
    -
    25208  0 /*onDayOfWeek*/,
    -
    25209  6 /*onDayOfMonth*/,
    -
    25210  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25211  0 /*atTimeCode (0/15)*/,
    -
    25212  0 /*deltaMinutes*/,
    -
    25213  0 /*letterIndex ("")*/,
    -
    25214  },
    -
    25215  // Rule Tunisia 1942 only - Mar 9 0:00 1:00 S
    -
    25216  {
    -
    25217  1942 /*fromYear*/,
    -
    25218  1942 /*toYear*/,
    -
    25219  3 /*inMonth*/,
    -
    25220  0 /*onDayOfWeek*/,
    -
    25221  9 /*onDayOfMonth*/,
    -
    25222  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25223  0 /*atTimeCode (0/15)*/,
    -
    25224  60 /*deltaMinutes*/,
    -
    25225  25 /*letterIndex ("S")*/,
    -
    25226  },
    -
    25227  // Rule Tunisia 1942 only - Nov 2 3:00 0 -
    -
    25228  {
    -
    25229  1942 /*fromYear*/,
    -
    25230  1942 /*toYear*/,
    -
    25231  11 /*inMonth*/,
    -
    25232  0 /*onDayOfWeek*/,
    -
    25233  2 /*onDayOfMonth*/,
    -
    25234  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25235  720 /*atTimeCode (10800/15)*/,
    -
    25236  0 /*deltaMinutes*/,
    -
    25237  0 /*letterIndex ("")*/,
    -
    25238  },
    -
    25239  // Rule Tunisia 1943 only - Mar 29 2:00 1:00 S
    -
    25240  {
    -
    25241  1943 /*fromYear*/,
    -
    25242  1943 /*toYear*/,
    -
    25243  3 /*inMonth*/,
    -
    25244  0 /*onDayOfWeek*/,
    -
    25245  29 /*onDayOfMonth*/,
    -
    25246  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25247  480 /*atTimeCode (7200/15)*/,
    -
    25248  60 /*deltaMinutes*/,
    -
    25249  25 /*letterIndex ("S")*/,
    -
    25250  },
    -
    25251  // Rule Tunisia 1943 only - Apr 17 2:00 0 -
    -
    25252  {
    -
    25253  1943 /*fromYear*/,
    -
    25254  1943 /*toYear*/,
    -
    25255  4 /*inMonth*/,
    -
    25256  0 /*onDayOfWeek*/,
    -
    25257  17 /*onDayOfMonth*/,
    -
    25258  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25259  480 /*atTimeCode (7200/15)*/,
    -
    25260  0 /*deltaMinutes*/,
    -
    25261  0 /*letterIndex ("")*/,
    -
    25262  },
    -
    25263  // Rule Tunisia 1943 only - Apr 25 2:00 1:00 S
    -
    25264  {
    -
    25265  1943 /*fromYear*/,
    -
    25266  1943 /*toYear*/,
    -
    25267  4 /*inMonth*/,
    -
    25268  0 /*onDayOfWeek*/,
    -
    25269  25 /*onDayOfMonth*/,
    -
    25270  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25271  480 /*atTimeCode (7200/15)*/,
    -
    25272  60 /*deltaMinutes*/,
    -
    25273  25 /*letterIndex ("S")*/,
    -
    25274  },
    -
    25275  // Rule Tunisia 1943 only - Oct 4 2:00 0 -
    -
    25276  {
    -
    25277  1943 /*fromYear*/,
    -
    25278  1943 /*toYear*/,
    -
    25279  10 /*inMonth*/,
    -
    25280  0 /*onDayOfWeek*/,
    -
    25281  4 /*onDayOfMonth*/,
    -
    25282  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25283  480 /*atTimeCode (7200/15)*/,
    -
    25284  0 /*deltaMinutes*/,
    -
    25285  0 /*letterIndex ("")*/,
    -
    25286  },
    -
    25287  // Rule Tunisia 1944 1945 - Apr Mon>=1 2:00 1:00 S
    -
    25288  {
    -
    25289  1944 /*fromYear*/,
    -
    25290  1945 /*toYear*/,
    -
    25291  4 /*inMonth*/,
    -
    25292  1 /*onDayOfWeek*/,
    -
    25293  1 /*onDayOfMonth*/,
    -
    25294  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25295  480 /*atTimeCode (7200/15)*/,
    -
    25296  60 /*deltaMinutes*/,
    -
    25297  25 /*letterIndex ("S")*/,
    -
    25298  },
    -
    25299  // Rule Tunisia 1944 only - Oct 8 0:00 0 -
    -
    25300  {
    -
    25301  1944 /*fromYear*/,
    -
    25302  1944 /*toYear*/,
    -
    25303  10 /*inMonth*/,
    -
    25304  0 /*onDayOfWeek*/,
    -
    25305  8 /*onDayOfMonth*/,
    -
    25306  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25307  0 /*atTimeCode (0/15)*/,
    -
    25308  0 /*deltaMinutes*/,
    -
    25309  0 /*letterIndex ("")*/,
    -
    25310  },
    -
    25311  // Rule Tunisia 1945 only - Sep 16 0:00 0 -
    -
    25312  {
    -
    25313  1945 /*fromYear*/,
    -
    25314  1945 /*toYear*/,
    -
    25315  9 /*inMonth*/,
    -
    25316  0 /*onDayOfWeek*/,
    -
    25317  16 /*onDayOfMonth*/,
    -
    25318  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25319  0 /*atTimeCode (0/15)*/,
    -
    25320  0 /*deltaMinutes*/,
    -
    25321  0 /*letterIndex ("")*/,
    -
    25322  },
    -
    25323  // Rule Tunisia 1977 only - Apr 30 0:00s 1:00 S
    -
    25324  {
    -
    25325  1977 /*fromYear*/,
    -
    25326  1977 /*toYear*/,
    -
    25327  4 /*inMonth*/,
    -
    25328  0 /*onDayOfWeek*/,
    -
    25329  30 /*onDayOfMonth*/,
    -
    25330  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25331  0 /*atTimeCode (0/15)*/,
    -
    25332  60 /*deltaMinutes*/,
    -
    25333  25 /*letterIndex ("S")*/,
    -
    25334  },
    -
    25335  // Rule Tunisia 1977 only - Sep 24 0:00s 0 -
    -
    25336  {
    -
    25337  1977 /*fromYear*/,
    -
    25338  1977 /*toYear*/,
    -
    25339  9 /*inMonth*/,
    -
    25340  0 /*onDayOfWeek*/,
    -
    25341  24 /*onDayOfMonth*/,
    -
    25342  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25343  0 /*atTimeCode (0/15)*/,
    -
    25344  0 /*deltaMinutes*/,
    -
    25345  0 /*letterIndex ("")*/,
    -
    25346  },
    -
    25347  // Rule Tunisia 1978 only - May 1 0:00s 1:00 S
    -
    25348  {
    -
    25349  1978 /*fromYear*/,
    -
    25350  1978 /*toYear*/,
    -
    25351  5 /*inMonth*/,
    -
    25352  0 /*onDayOfWeek*/,
    -
    25353  1 /*onDayOfMonth*/,
    -
    25354  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25355  0 /*atTimeCode (0/15)*/,
    -
    25356  60 /*deltaMinutes*/,
    -
    25357  25 /*letterIndex ("S")*/,
    -
    25358  },
    -
    25359  // Rule Tunisia 1978 only - Oct 1 0:00s 0 -
    -
    25360  {
    -
    25361  1978 /*fromYear*/,
    -
    25362  1978 /*toYear*/,
    -
    25363  10 /*inMonth*/,
    -
    25364  0 /*onDayOfWeek*/,
    -
    25365  1 /*onDayOfMonth*/,
    -
    25366  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25367  0 /*atTimeCode (0/15)*/,
    -
    25368  0 /*deltaMinutes*/,
    -
    25369  0 /*letterIndex ("")*/,
    -
    25370  },
    -
    25371  // Rule Tunisia 1988 only - Jun 1 0:00s 1:00 S
    -
    25372  {
    -
    25373  1988 /*fromYear*/,
    -
    25374  1988 /*toYear*/,
    -
    25375  6 /*inMonth*/,
    -
    25376  0 /*onDayOfWeek*/,
    -
    25377  1 /*onDayOfMonth*/,
    -
    25378  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25379  0 /*atTimeCode (0/15)*/,
    -
    25380  60 /*deltaMinutes*/,
    -
    25381  25 /*letterIndex ("S")*/,
    -
    25382  },
    -
    25383  // Rule Tunisia 1988 1990 - Sep lastSun 0:00s 0 -
    -
    25384  {
    -
    25385  1988 /*fromYear*/,
    -
    25386  1990 /*toYear*/,
    -
    25387  9 /*inMonth*/,
    -
    25388  7 /*onDayOfWeek*/,
    -
    25389  0 /*onDayOfMonth*/,
    -
    25390  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25391  0 /*atTimeCode (0/15)*/,
    -
    25392  0 /*deltaMinutes*/,
    -
    25393  0 /*letterIndex ("")*/,
    -
    25394  },
    -
    25395  // Rule Tunisia 1989 only - Mar 26 0:00s 1:00 S
    -
    25396  {
    -
    25397  1989 /*fromYear*/,
    -
    25398  1989 /*toYear*/,
    -
    25399  3 /*inMonth*/,
    -
    25400  0 /*onDayOfWeek*/,
    -
    25401  26 /*onDayOfMonth*/,
    -
    25402  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25403  0 /*atTimeCode (0/15)*/,
    -
    25404  60 /*deltaMinutes*/,
    -
    25405  25 /*letterIndex ("S")*/,
    -
    25406  },
    -
    25407  // Rule Tunisia 1990 only - May 1 0:00s 1:00 S
    -
    25408  {
    -
    25409  1990 /*fromYear*/,
    -
    25410  1990 /*toYear*/,
    -
    25411  5 /*inMonth*/,
    -
    25412  0 /*onDayOfWeek*/,
    -
    25413  1 /*onDayOfMonth*/,
    -
    25414  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25415  0 /*atTimeCode (0/15)*/,
    -
    25416  60 /*deltaMinutes*/,
    -
    25417  25 /*letterIndex ("S")*/,
    -
    25418  },
    -
    25419  // Rule Tunisia 2005 only - May 1 0:00s 1:00 S
    -
    25420  {
    -
    25421  2005 /*fromYear*/,
    -
    25422  2005 /*toYear*/,
    -
    25423  5 /*inMonth*/,
    -
    25424  0 /*onDayOfWeek*/,
    -
    25425  1 /*onDayOfMonth*/,
    -
    25426  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25427  0 /*atTimeCode (0/15)*/,
    -
    25428  60 /*deltaMinutes*/,
    -
    25429  25 /*letterIndex ("S")*/,
    -
    25430  },
    -
    25431  // Rule Tunisia 2005 only - Sep 30 1:00s 0 -
    -
    25432  {
    -
    25433  2005 /*fromYear*/,
    -
    25434  2005 /*toYear*/,
    -
    25435  9 /*inMonth*/,
    -
    25436  0 /*onDayOfWeek*/,
    -
    25437  30 /*onDayOfMonth*/,
    -
    25438  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25439  240 /*atTimeCode (3600/15)*/,
    -
    25440  0 /*deltaMinutes*/,
    -
    25441  0 /*letterIndex ("")*/,
    -
    25442  },
    -
    25443  // Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
    -
    25444  {
    -
    25445  2006 /*fromYear*/,
    -
    25446  2008 /*toYear*/,
    -
    25447  3 /*inMonth*/,
    -
    25448  7 /*onDayOfWeek*/,
    -
    25449  0 /*onDayOfMonth*/,
    -
    25450  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25451  480 /*atTimeCode (7200/15)*/,
    -
    25452  60 /*deltaMinutes*/,
    -
    25453  25 /*letterIndex ("S")*/,
    -
    25454  },
    -
    25455  // Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
    -
    25456  {
    -
    25457  2006 /*fromYear*/,
    -
    25458  2008 /*toYear*/,
    -
    25459  10 /*inMonth*/,
    -
    25460  7 /*onDayOfWeek*/,
    -
    25461  0 /*onDayOfMonth*/,
    -
    25462  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25463  480 /*atTimeCode (7200/15)*/,
    -
    25464  0 /*deltaMinutes*/,
    -
    25465  0 /*letterIndex ("")*/,
    -
    25466  },
    -
    25467 
    -
    25468 };
    -
    25469 
    -
    25470 const complete::Info::ZonePolicy kZonePolicyTunisia ACE_TIME_PROGMEM = {
    -
    25471  kZoneRulesTunisia /*rules*/,
    -
    25472  26 /*numRules*/,
    -
    25473 };
    -
    25474 
    -
    25475 //---------------------------------------------------------------------------
    -
    25476 // Policy name: Turkey
    -
    25477 // Rules: 46
    -
    25478 //---------------------------------------------------------------------------
    -
    25479 
    -
    25480 static const complete::Info::ZoneRule kZoneRulesTurkey[] ACE_TIME_PROGMEM = {
    -
    25481  // Anchor: Rule Turkey 1916 only - Oct 1 0:00 0 -
    -
    25482  {
    -
    25483  -32767 /*fromYear*/,
    -
    25484  -32767 /*toYear*/,
    -
    25485  1 /*inMonth*/,
    -
    25486  0 /*onDayOfWeek*/,
    -
    25487  1 /*onDayOfMonth*/,
    -
    25488  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25489  0 /*atTimeCode (0/15)*/,
    -
    25490  0 /*deltaMinutes*/,
    -
    25491  0 /*letterIndex ("")*/,
    -
    25492  },
    -
    25493  // Rule Turkey 1916 only - May 1 0:00 1:00 S
    -
    25494  {
    -
    25495  1916 /*fromYear*/,
    -
    25496  1916 /*toYear*/,
    -
    25497  5 /*inMonth*/,
    -
    25498  0 /*onDayOfWeek*/,
    -
    25499  1 /*onDayOfMonth*/,
    -
    25500  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25501  0 /*atTimeCode (0/15)*/,
    -
    25502  60 /*deltaMinutes*/,
    -
    25503  25 /*letterIndex ("S")*/,
    -
    25504  },
    -
    25505  // Rule Turkey 1916 only - Oct 1 0:00 0 -
    -
    25506  {
    -
    25507  1916 /*fromYear*/,
    -
    25508  1916 /*toYear*/,
    -
    25509  10 /*inMonth*/,
    -
    25510  0 /*onDayOfWeek*/,
    -
    25511  1 /*onDayOfMonth*/,
    -
    25512  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25513  0 /*atTimeCode (0/15)*/,
    -
    25514  0 /*deltaMinutes*/,
    -
    25515  0 /*letterIndex ("")*/,
    -
    25516  },
    -
    25517  // Rule Turkey 1920 only - Mar 28 0:00 1:00 S
    -
    25518  {
    -
    25519  1920 /*fromYear*/,
    -
    25520  1920 /*toYear*/,
    -
    25521  3 /*inMonth*/,
    -
    25522  0 /*onDayOfWeek*/,
    -
    25523  28 /*onDayOfMonth*/,
    -
    25524  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25525  0 /*atTimeCode (0/15)*/,
    -
    25526  60 /*deltaMinutes*/,
    -
    25527  25 /*letterIndex ("S")*/,
    -
    25528  },
    -
    25529  // Rule Turkey 1920 only - Oct 25 0:00 0 -
    -
    25530  {
    -
    25531  1920 /*fromYear*/,
    -
    25532  1920 /*toYear*/,
    -
    25533  10 /*inMonth*/,
    -
    25534  0 /*onDayOfWeek*/,
    -
    25535  25 /*onDayOfMonth*/,
    -
    25536  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25537  0 /*atTimeCode (0/15)*/,
    -
    25538  0 /*deltaMinutes*/,
    -
    25539  0 /*letterIndex ("")*/,
    -
    25540  },
    -
    25541  // Rule Turkey 1921 only - Apr 3 0:00 1:00 S
    -
    25542  {
    -
    25543  1921 /*fromYear*/,
    -
    25544  1921 /*toYear*/,
    -
    25545  4 /*inMonth*/,
    -
    25546  0 /*onDayOfWeek*/,
    -
    25547  3 /*onDayOfMonth*/,
    -
    25548  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25549  0 /*atTimeCode (0/15)*/,
    -
    25550  60 /*deltaMinutes*/,
    -
    25551  25 /*letterIndex ("S")*/,
    -
    25552  },
    -
    25553  // Rule Turkey 1921 only - Oct 3 0:00 0 -
    -
    25554  {
    -
    25555  1921 /*fromYear*/,
    -
    25556  1921 /*toYear*/,
    -
    25557  10 /*inMonth*/,
    -
    25558  0 /*onDayOfWeek*/,
    -
    25559  3 /*onDayOfMonth*/,
    -
    25560  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25561  0 /*atTimeCode (0/15)*/,
    -
    25562  0 /*deltaMinutes*/,
    -
    25563  0 /*letterIndex ("")*/,
    -
    25564  },
    -
    25565  // Rule Turkey 1922 only - Mar 26 0:00 1:00 S
    -
    25566  {
    -
    25567  1922 /*fromYear*/,
    -
    25568  1922 /*toYear*/,
    -
    25569  3 /*inMonth*/,
    -
    25570  0 /*onDayOfWeek*/,
    -
    25571  26 /*onDayOfMonth*/,
    -
    25572  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25573  0 /*atTimeCode (0/15)*/,
    -
    25574  60 /*deltaMinutes*/,
    -
    25575  25 /*letterIndex ("S")*/,
    -
    25576  },
    -
    25577  // Rule Turkey 1922 only - Oct 8 0:00 0 -
    -
    25578  {
    -
    25579  1922 /*fromYear*/,
    -
    25580  1922 /*toYear*/,
    -
    25581  10 /*inMonth*/,
    -
    25582  0 /*onDayOfWeek*/,
    -
    25583  8 /*onDayOfMonth*/,
    -
    25584  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25585  0 /*atTimeCode (0/15)*/,
    -
    25586  0 /*deltaMinutes*/,
    -
    25587  0 /*letterIndex ("")*/,
    -
    25588  },
    -
    25589  // Rule Turkey 1924 only - May 13 0:00 1:00 S
    -
    25590  {
    -
    25591  1924 /*fromYear*/,
    -
    25592  1924 /*toYear*/,
    -
    25593  5 /*inMonth*/,
    -
    25594  0 /*onDayOfWeek*/,
    -
    25595  13 /*onDayOfMonth*/,
    -
    25596  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25597  0 /*atTimeCode (0/15)*/,
    -
    25598  60 /*deltaMinutes*/,
    -
    25599  25 /*letterIndex ("S")*/,
    -
    25600  },
    -
    25601  // Rule Turkey 1924 1925 - Oct 1 0:00 0 -
    -
    25602  {
    -
    25603  1924 /*fromYear*/,
    -
    25604  1925 /*toYear*/,
    -
    25605  10 /*inMonth*/,
    -
    25606  0 /*onDayOfWeek*/,
    -
    25607  1 /*onDayOfMonth*/,
    -
    25608  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25609  0 /*atTimeCode (0/15)*/,
    -
    25610  0 /*deltaMinutes*/,
    -
    25611  0 /*letterIndex ("")*/,
    -
    25612  },
    -
    25613  // Rule Turkey 1925 only - May 1 0:00 1:00 S
    -
    25614  {
    -
    25615  1925 /*fromYear*/,
    -
    25616  1925 /*toYear*/,
    -
    25617  5 /*inMonth*/,
    -
    25618  0 /*onDayOfWeek*/,
    -
    25619  1 /*onDayOfMonth*/,
    -
    25620  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25621  0 /*atTimeCode (0/15)*/,
    -
    25622  60 /*deltaMinutes*/,
    -
    25623  25 /*letterIndex ("S")*/,
    -
    25624  },
    -
    25625  // Rule Turkey 1940 only - Jul 1 0:00 1:00 S
    -
    25626  {
    -
    25627  1940 /*fromYear*/,
    -
    25628  1940 /*toYear*/,
    -
    25629  7 /*inMonth*/,
    -
    25630  0 /*onDayOfWeek*/,
    -
    25631  1 /*onDayOfMonth*/,
    -
    25632  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25633  0 /*atTimeCode (0/15)*/,
    -
    25634  60 /*deltaMinutes*/,
    -
    25635  25 /*letterIndex ("S")*/,
    -
    25636  },
    -
    25637  // Rule Turkey 1940 only - Oct 6 0:00 0 -
    -
    25638  {
    -
    25639  1940 /*fromYear*/,
    -
    25640  1940 /*toYear*/,
    -
    25641  10 /*inMonth*/,
    -
    25642  0 /*onDayOfWeek*/,
    -
    25643  6 /*onDayOfMonth*/,
    -
    25644  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25645  0 /*atTimeCode (0/15)*/,
    -
    25646  0 /*deltaMinutes*/,
    -
    25647  0 /*letterIndex ("")*/,
    -
    25648  },
    -
    25649  // Rule Turkey 1940 only - Dec 1 0:00 1:00 S
    -
    25650  {
    -
    25651  1940 /*fromYear*/,
    -
    25652  1940 /*toYear*/,
    -
    25653  12 /*inMonth*/,
    -
    25654  0 /*onDayOfWeek*/,
    -
    25655  1 /*onDayOfMonth*/,
    -
    25656  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25657  0 /*atTimeCode (0/15)*/,
    -
    25658  60 /*deltaMinutes*/,
    -
    25659  25 /*letterIndex ("S")*/,
    -
    25660  },
    -
    25661  // Rule Turkey 1941 only - Sep 21 0:00 0 -
    -
    25662  {
    -
    25663  1941 /*fromYear*/,
    -
    25664  1941 /*toYear*/,
    -
    25665  9 /*inMonth*/,
    -
    25666  0 /*onDayOfWeek*/,
    -
    25667  21 /*onDayOfMonth*/,
    -
    25668  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25669  0 /*atTimeCode (0/15)*/,
    -
    25670  0 /*deltaMinutes*/,
    -
    25671  0 /*letterIndex ("")*/,
    -
    25672  },
    -
    25673  // Rule Turkey 1942 only - Apr 1 0:00 1:00 S
    -
    25674  {
    -
    25675  1942 /*fromYear*/,
    -
    25676  1942 /*toYear*/,
    -
    25677  4 /*inMonth*/,
    -
    25678  0 /*onDayOfWeek*/,
    -
    25679  1 /*onDayOfMonth*/,
    -
    25680  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25681  0 /*atTimeCode (0/15)*/,
    -
    25682  60 /*deltaMinutes*/,
    -
    25683  25 /*letterIndex ("S")*/,
    -
    25684  },
    -
    25685  // Rule Turkey 1945 only - Oct 8 0:00 0 -
    -
    25686  {
    -
    25687  1945 /*fromYear*/,
    -
    25688  1945 /*toYear*/,
    -
    25689  10 /*inMonth*/,
    -
    25690  0 /*onDayOfWeek*/,
    -
    25691  8 /*onDayOfMonth*/,
    -
    25692  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25693  0 /*atTimeCode (0/15)*/,
    -
    25694  0 /*deltaMinutes*/,
    -
    25695  0 /*letterIndex ("")*/,
    -
    25696  },
    -
    25697  // Rule Turkey 1946 only - Jun 1 0:00 1:00 S
    -
    25698  {
    -
    25699  1946 /*fromYear*/,
    -
    25700  1946 /*toYear*/,
    -
    25701  6 /*inMonth*/,
    -
    25702  0 /*onDayOfWeek*/,
    -
    25703  1 /*onDayOfMonth*/,
    -
    25704  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25705  0 /*atTimeCode (0/15)*/,
    -
    25706  60 /*deltaMinutes*/,
    -
    25707  25 /*letterIndex ("S")*/,
    -
    25708  },
    -
    25709  // Rule Turkey 1946 only - Oct 1 0:00 0 -
    -
    25710  {
    -
    25711  1946 /*fromYear*/,
    -
    25712  1946 /*toYear*/,
    -
    25713  10 /*inMonth*/,
    -
    25714  0 /*onDayOfWeek*/,
    -
    25715  1 /*onDayOfMonth*/,
    -
    25716  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25717  0 /*atTimeCode (0/15)*/,
    -
    25718  0 /*deltaMinutes*/,
    -
    25719  0 /*letterIndex ("")*/,
    -
    25720  },
    -
    25721  // Rule Turkey 1947 1948 - Apr Sun>=16 0:00 1:00 S
    -
    25722  {
    -
    25723  1947 /*fromYear*/,
    -
    25724  1948 /*toYear*/,
    -
    25725  4 /*inMonth*/,
    -
    25726  7 /*onDayOfWeek*/,
    -
    25727  16 /*onDayOfMonth*/,
    -
    25728  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25729  0 /*atTimeCode (0/15)*/,
    -
    25730  60 /*deltaMinutes*/,
    -
    25731  25 /*letterIndex ("S")*/,
    -
    25732  },
    -
    25733  // Rule Turkey 1947 1951 - Oct Sun>=2 0:00 0 -
    -
    25734  {
    -
    25735  1947 /*fromYear*/,
    -
    25736  1951 /*toYear*/,
    -
    25737  10 /*inMonth*/,
    -
    25738  7 /*onDayOfWeek*/,
    -
    25739  2 /*onDayOfMonth*/,
    -
    25740  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25741  0 /*atTimeCode (0/15)*/,
    -
    25742  0 /*deltaMinutes*/,
    -
    25743  0 /*letterIndex ("")*/,
    -
    25744  },
    -
    25745  // Rule Turkey 1949 only - Apr 10 0:00 1:00 S
    -
    25746  {
    -
    25747  1949 /*fromYear*/,
    -
    25748  1949 /*toYear*/,
    -
    25749  4 /*inMonth*/,
    -
    25750  0 /*onDayOfWeek*/,
    -
    25751  10 /*onDayOfMonth*/,
    -
    25752  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25753  0 /*atTimeCode (0/15)*/,
    -
    25754  60 /*deltaMinutes*/,
    -
    25755  25 /*letterIndex ("S")*/,
    -
    25756  },
    -
    25757  // Rule Turkey 1950 only - Apr 16 0:00 1:00 S
    -
    25758  {
    -
    25759  1950 /*fromYear*/,
    -
    25760  1950 /*toYear*/,
    -
    25761  4 /*inMonth*/,
    -
    25762  0 /*onDayOfWeek*/,
    -
    25763  16 /*onDayOfMonth*/,
    -
    25764  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25765  0 /*atTimeCode (0/15)*/,
    -
    25766  60 /*deltaMinutes*/,
    -
    25767  25 /*letterIndex ("S")*/,
    -
    25768  },
    -
    25769  // Rule Turkey 1951 only - Apr 22 0:00 1:00 S
    -
    25770  {
    -
    25771  1951 /*fromYear*/,
    -
    25772  1951 /*toYear*/,
    -
    25773  4 /*inMonth*/,
    -
    25774  0 /*onDayOfWeek*/,
    -
    25775  22 /*onDayOfMonth*/,
    -
    25776  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25777  0 /*atTimeCode (0/15)*/,
    -
    25778  60 /*deltaMinutes*/,
    -
    25779  25 /*letterIndex ("S")*/,
    -
    25780  },
    -
    25781  // Rule Turkey 1962 only - Jul 15 0:00 1:00 S
    -
    25782  {
    -
    25783  1962 /*fromYear*/,
    -
    25784  1962 /*toYear*/,
    -
    25785  7 /*inMonth*/,
    -
    25786  0 /*onDayOfWeek*/,
    -
    25787  15 /*onDayOfMonth*/,
    -
    25788  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25789  0 /*atTimeCode (0/15)*/,
    -
    25790  60 /*deltaMinutes*/,
    -
    25791  25 /*letterIndex ("S")*/,
    -
    25792  },
    -
    25793  // Rule Turkey 1963 only - Oct 30 0:00 0 -
    -
    25794  {
    -
    25795  1963 /*fromYear*/,
    -
    25796  1963 /*toYear*/,
    -
    25797  10 /*inMonth*/,
    -
    25798  0 /*onDayOfWeek*/,
    -
    25799  30 /*onDayOfMonth*/,
    -
    25800  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25801  0 /*atTimeCode (0/15)*/,
    -
    25802  0 /*deltaMinutes*/,
    -
    25803  0 /*letterIndex ("")*/,
    -
    25804  },
    -
    25805  // Rule Turkey 1964 only - May 15 0:00 1:00 S
    -
    25806  {
    -
    25807  1964 /*fromYear*/,
    -
    25808  1964 /*toYear*/,
    -
    25809  5 /*inMonth*/,
    -
    25810  0 /*onDayOfWeek*/,
    -
    25811  15 /*onDayOfMonth*/,
    -
    25812  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25813  0 /*atTimeCode (0/15)*/,
    -
    25814  60 /*deltaMinutes*/,
    -
    25815  25 /*letterIndex ("S")*/,
    -
    25816  },
    -
    25817  // Rule Turkey 1964 only - Oct 1 0:00 0 -
    -
    25818  {
    -
    25819  1964 /*fromYear*/,
    -
    25820  1964 /*toYear*/,
    -
    25821  10 /*inMonth*/,
    -
    25822  0 /*onDayOfWeek*/,
    -
    25823  1 /*onDayOfMonth*/,
    -
    25824  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25825  0 /*atTimeCode (0/15)*/,
    -
    25826  0 /*deltaMinutes*/,
    -
    25827  0 /*letterIndex ("")*/,
    -
    25828  },
    -
    25829  // Rule Turkey 1973 only - Jun 3 1:00 1:00 S
    -
    25830  {
    -
    25831  1973 /*fromYear*/,
    -
    25832  1973 /*toYear*/,
    -
    25833  6 /*inMonth*/,
    -
    25834  0 /*onDayOfWeek*/,
    -
    25835  3 /*onDayOfMonth*/,
    -
    25836  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25837  240 /*atTimeCode (3600/15)*/,
    -
    25838  60 /*deltaMinutes*/,
    -
    25839  25 /*letterIndex ("S")*/,
    -
    25840  },
    -
    25841  // Rule Turkey 1973 1976 - Oct Sun>=31 2:00 0 -
    -
    25842  {
    -
    25843  1973 /*fromYear*/,
    -
    25844  1976 /*toYear*/,
    -
    25845  10 /*inMonth*/,
    -
    25846  7 /*onDayOfWeek*/,
    -
    25847  31 /*onDayOfMonth*/,
    -
    25848  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25849  480 /*atTimeCode (7200/15)*/,
    -
    25850  0 /*deltaMinutes*/,
    -
    25851  0 /*letterIndex ("")*/,
    -
    25852  },
    -
    25853  // Rule Turkey 1974 only - Mar 31 2:00 1:00 S
    -
    25854  {
    -
    25855  1974 /*fromYear*/,
    -
    25856  1974 /*toYear*/,
    -
    25857  3 /*inMonth*/,
    -
    25858  0 /*onDayOfWeek*/,
    -
    25859  31 /*onDayOfMonth*/,
    -
    25860  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25861  480 /*atTimeCode (7200/15)*/,
    -
    25862  60 /*deltaMinutes*/,
    -
    25863  25 /*letterIndex ("S")*/,
    -
    25864  },
    -
    25865  // Rule Turkey 1975 only - Mar 22 2:00 1:00 S
    -
    25866  {
    -
    25867  1975 /*fromYear*/,
    -
    25868  1975 /*toYear*/,
    -
    25869  3 /*inMonth*/,
    -
    25870  0 /*onDayOfWeek*/,
    -
    25871  22 /*onDayOfMonth*/,
    -
    25872  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25873  480 /*atTimeCode (7200/15)*/,
    -
    25874  60 /*deltaMinutes*/,
    -
    25875  25 /*letterIndex ("S")*/,
    -
    25876  },
    -
    25877  // Rule Turkey 1976 only - Mar 21 2:00 1:00 S
    -
    25878  {
    -
    25879  1976 /*fromYear*/,
    -
    25880  1976 /*toYear*/,
    -
    25881  3 /*inMonth*/,
    -
    25882  0 /*onDayOfWeek*/,
    -
    25883  21 /*onDayOfMonth*/,
    -
    25884  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25885  480 /*atTimeCode (7200/15)*/,
    -
    25886  60 /*deltaMinutes*/,
    -
    25887  25 /*letterIndex ("S")*/,
    -
    25888  },
    -
    25889  // Rule Turkey 1977 1978 - Apr Sun>=1 2:00 1:00 S
    -
    25890  {
    -
    25891  1977 /*fromYear*/,
    -
    25892  1978 /*toYear*/,
    -
    25893  4 /*inMonth*/,
    -
    25894  7 /*onDayOfWeek*/,
    -
    25895  1 /*onDayOfMonth*/,
    -
    25896  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25897  480 /*atTimeCode (7200/15)*/,
    -
    25898  60 /*deltaMinutes*/,
    -
    25899  25 /*letterIndex ("S")*/,
    -
    25900  },
    -
    25901  // Rule Turkey 1977 1978 - Oct Sun>=15 2:00 0 -
    -
    25902  {
    -
    25903  1977 /*fromYear*/,
    -
    25904  1978 /*toYear*/,
    -
    25905  10 /*inMonth*/,
    -
    25906  7 /*onDayOfWeek*/,
    -
    25907  15 /*onDayOfMonth*/,
    -
    25908  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25909  480 /*atTimeCode (7200/15)*/,
    -
    25910  0 /*deltaMinutes*/,
    -
    25911  0 /*letterIndex ("")*/,
    -
    25912  },
    -
    25913  // Rule Turkey 1978 only - Jun 29 0:00 0 -
    -
    25914  {
    -
    25915  1978 /*fromYear*/,
    -
    25916  1978 /*toYear*/,
    -
    25917  6 /*inMonth*/,
    -
    25918  0 /*onDayOfWeek*/,
    -
    25919  29 /*onDayOfMonth*/,
    -
    25920  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25921  0 /*atTimeCode (0/15)*/,
    -
    25922  0 /*deltaMinutes*/,
    -
    25923  0 /*letterIndex ("")*/,
    -
    25924  },
    -
    25925  // Rule Turkey 1983 only - Jul 31 2:00 1:00 S
    -
    25926  {
    -
    25927  1983 /*fromYear*/,
    -
    25928  1983 /*toYear*/,
    -
    25929  7 /*inMonth*/,
    -
    25930  0 /*onDayOfWeek*/,
    -
    25931  31 /*onDayOfMonth*/,
    -
    25932  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25933  480 /*atTimeCode (7200/15)*/,
    -
    25934  60 /*deltaMinutes*/,
    -
    25935  25 /*letterIndex ("S")*/,
    -
    25936  },
    -
    25937  // Rule Turkey 1983 only - Oct 2 2:00 0 -
    -
    25938  {
    -
    25939  1983 /*fromYear*/,
    -
    25940  1983 /*toYear*/,
    -
    25941  10 /*inMonth*/,
    -
    25942  0 /*onDayOfWeek*/,
    -
    25943  2 /*onDayOfMonth*/,
    -
    25944  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    25945  480 /*atTimeCode (7200/15)*/,
    -
    25946  0 /*deltaMinutes*/,
    -
    25947  0 /*letterIndex ("")*/,
    -
    25948  },
    -
    25949  // Rule Turkey 1985 only - Apr 20 1:00s 1:00 S
    -
    25950  {
    -
    25951  1985 /*fromYear*/,
    -
    25952  1985 /*toYear*/,
    -
    25953  4 /*inMonth*/,
    -
    25954  0 /*onDayOfWeek*/,
    -
    25955  20 /*onDayOfMonth*/,
    -
    25956  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25957  240 /*atTimeCode (3600/15)*/,
    -
    25958  60 /*deltaMinutes*/,
    -
    25959  25 /*letterIndex ("S")*/,
    -
    25960  },
    -
    25961  // Rule Turkey 1985 only - Sep 28 1:00s 0 -
    -
    25962  {
    -
    25963  1985 /*fromYear*/,
    -
    25964  1985 /*toYear*/,
    -
    25965  9 /*inMonth*/,
    -
    25966  0 /*onDayOfWeek*/,
    -
    25967  28 /*onDayOfMonth*/,
    -
    25968  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25969  240 /*atTimeCode (3600/15)*/,
    -
    25970  0 /*deltaMinutes*/,
    -
    25971  0 /*letterIndex ("")*/,
    -
    25972  },
    -
    25973  // Rule Turkey 1986 1993 - Mar lastSun 1:00s 1:00 S
    -
    25974  {
    -
    25975  1986 /*fromYear*/,
    -
    25976  1993 /*toYear*/,
    -
    25977  3 /*inMonth*/,
    -
    25978  7 /*onDayOfWeek*/,
    -
    25979  0 /*onDayOfMonth*/,
    -
    25980  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25981  240 /*atTimeCode (3600/15)*/,
    -
    25982  60 /*deltaMinutes*/,
    -
    25983  25 /*letterIndex ("S")*/,
    -
    25984  },
    -
    25985  // Rule Turkey 1986 1995 - Sep lastSun 1:00s 0 -
    -
    25986  {
    -
    25987  1986 /*fromYear*/,
    -
    25988  1995 /*toYear*/,
    -
    25989  9 /*inMonth*/,
    -
    25990  7 /*onDayOfWeek*/,
    -
    25991  0 /*onDayOfMonth*/,
    -
    25992  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    25993  240 /*atTimeCode (3600/15)*/,
    -
    25994  0 /*deltaMinutes*/,
    -
    25995  0 /*letterIndex ("")*/,
    -
    25996  },
    -
    25997  // Rule Turkey 1994 only - Mar 20 1:00s 1:00 S
    -
    25998  {
    -
    25999  1994 /*fromYear*/,
    -
    26000  1994 /*toYear*/,
    -
    26001  3 /*inMonth*/,
    -
    26002  0 /*onDayOfWeek*/,
    -
    26003  20 /*onDayOfMonth*/,
    -
    26004  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26005  240 /*atTimeCode (3600/15)*/,
    -
    26006  60 /*deltaMinutes*/,
    -
    26007  25 /*letterIndex ("S")*/,
    -
    26008  },
    -
    26009  // Rule Turkey 1995 2006 - Mar lastSun 1:00s 1:00 S
    -
    26010  {
    -
    26011  1995 /*fromYear*/,
    -
    26012  2006 /*toYear*/,
    -
    26013  3 /*inMonth*/,
    -
    26014  7 /*onDayOfWeek*/,
    -
    26015  0 /*onDayOfMonth*/,
    -
    26016  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26017  240 /*atTimeCode (3600/15)*/,
    -
    26018  60 /*deltaMinutes*/,
    -
    26019  25 /*letterIndex ("S")*/,
    -
    26020  },
    -
    26021  // Rule Turkey 1996 2006 - Oct lastSun 1:00s 0 -
    -
    26022  {
    -
    26023  1996 /*fromYear*/,
    -
    26024  2006 /*toYear*/,
    -
    26025  10 /*inMonth*/,
    -
    26026  7 /*onDayOfWeek*/,
    -
    26027  0 /*onDayOfMonth*/,
    -
    26028  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    26029  240 /*atTimeCode (3600/15)*/,
    -
    26030  0 /*deltaMinutes*/,
    -
    26031  0 /*letterIndex ("")*/,
    -
    26032  },
    -
    26033 
    -
    26034 };
    -
    26035 
    -
    26036 const complete::Info::ZonePolicy kZonePolicyTurkey ACE_TIME_PROGMEM = {
    -
    26037  kZoneRulesTurkey /*rules*/,
    -
    26038  46 /*numRules*/,
    -
    26039 };
    -
    26040 
    -
    26041 //---------------------------------------------------------------------------
    -
    26042 // Policy name: US
    -
    26043 // Rules: 14
    -
    26044 //---------------------------------------------------------------------------
    -
    26045 
    -
    26046 static const complete::Info::ZoneRule kZoneRulesUS[] ACE_TIME_PROGMEM = {
    -
    26047  // Anchor: Rule US 1918 1919 - Oct lastSun 2:00 0 S
    -
    26048  {
    -
    26049  -32767 /*fromYear*/,
    -
    26050  -32767 /*toYear*/,
    -
    26051  1 /*inMonth*/,
    -
    26052  0 /*onDayOfWeek*/,
    -
    26053  1 /*onDayOfMonth*/,
    -
    26054  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26055  0 /*atTimeCode (0/15)*/,
    -
    26056  0 /*deltaMinutes*/,
    -
    26057  25 /*letterIndex ("S")*/,
    -
    26058  },
    -
    26059  // Rule US 1918 1919 - Mar lastSun 2:00 1:00 D
    -
    26060  {
    -
    26061  1918 /*fromYear*/,
    -
    26062  1919 /*toYear*/,
    -
    26063  3 /*inMonth*/,
    -
    26064  7 /*onDayOfWeek*/,
    -
    26065  0 /*onDayOfMonth*/,
    -
    26066  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26067  480 /*atTimeCode (7200/15)*/,
    -
    26068  60 /*deltaMinutes*/,
    -
    26069  13 /*letterIndex ("D")*/,
    -
    26070  },
    -
    26071  // Rule US 1918 1919 - Oct lastSun 2:00 0 S
    -
    26072  {
    -
    26073  1918 /*fromYear*/,
    -
    26074  1919 /*toYear*/,
    -
    26075  10 /*inMonth*/,
    -
    26076  7 /*onDayOfWeek*/,
    -
    26077  0 /*onDayOfMonth*/,
    -
    26078  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26079  480 /*atTimeCode (7200/15)*/,
    -
    26080  0 /*deltaMinutes*/,
    -
    26081  25 /*letterIndex ("S")*/,
    -
    26082  },
    -
    26083  // Rule US 1942 only - Feb 9 2:00 1:00 W
    -
    26084  {
    -
    26085  1942 /*fromYear*/,
    -
    26086  1942 /*toYear*/,
    -
    26087  2 /*inMonth*/,
    -
    26088  0 /*onDayOfWeek*/,
    -
    26089  9 /*onDayOfMonth*/,
    -
    26090  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26091  480 /*atTimeCode (7200/15)*/,
    -
    26092  60 /*deltaMinutes*/,
    -
    26093  26 /*letterIndex ("W")*/,
    -
    26094  },
    -
    26095  // Rule US 1945 only - Aug 14 23:00u 1:00 P
    -
    26096  {
    -
    26097  1945 /*fromYear*/,
    -
    26098  1945 /*toYear*/,
    -
    26099  8 /*inMonth*/,
    -
    26100  0 /*onDayOfWeek*/,
    -
    26101  14 /*onDayOfMonth*/,
    -
    26102  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    26103  5520 /*atTimeCode (82800/15)*/,
    -
    26104  60 /*deltaMinutes*/,
    -
    26105  24 /*letterIndex ("P")*/,
    -
    26106  },
    -
    26107  // Rule US 1945 only - Sep 30 2:00 0 S
    -
    26108  {
    -
    26109  1945 /*fromYear*/,
    -
    26110  1945 /*toYear*/,
    -
    26111  9 /*inMonth*/,
    -
    26112  0 /*onDayOfWeek*/,
    -
    26113  30 /*onDayOfMonth*/,
    -
    26114  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26115  480 /*atTimeCode (7200/15)*/,
    -
    26116  0 /*deltaMinutes*/,
    -
    26117  25 /*letterIndex ("S")*/,
    -
    26118  },
    -
    26119  // Rule US 1967 2006 - Oct lastSun 2:00 0 S
    -
    26120  {
    -
    26121  1967 /*fromYear*/,
    -
    26122  2006 /*toYear*/,
    -
    26123  10 /*inMonth*/,
    -
    26124  7 /*onDayOfWeek*/,
    -
    26125  0 /*onDayOfMonth*/,
    -
    26126  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26127  480 /*atTimeCode (7200/15)*/,
    -
    26128  0 /*deltaMinutes*/,
    -
    26129  25 /*letterIndex ("S")*/,
    -
    26130  },
    -
    26131  // Rule US 1967 1973 - Apr lastSun 2:00 1:00 D
    -
    26132  {
    -
    26133  1967 /*fromYear*/,
    -
    26134  1973 /*toYear*/,
    -
    26135  4 /*inMonth*/,
    -
    26136  7 /*onDayOfWeek*/,
    -
    26137  0 /*onDayOfMonth*/,
    -
    26138  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26139  480 /*atTimeCode (7200/15)*/,
    -
    26140  60 /*deltaMinutes*/,
    -
    26141  13 /*letterIndex ("D")*/,
    -
    26142  },
    -
    26143  // Rule US 1974 only - Jan 6 2:00 1:00 D
    -
    26144  {
    -
    26145  1974 /*fromYear*/,
    -
    26146  1974 /*toYear*/,
    -
    26147  1 /*inMonth*/,
    -
    26148  0 /*onDayOfWeek*/,
    -
    26149  6 /*onDayOfMonth*/,
    -
    26150  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26151  480 /*atTimeCode (7200/15)*/,
    -
    26152  60 /*deltaMinutes*/,
    -
    26153  13 /*letterIndex ("D")*/,
    -
    26154  },
    -
    26155  // Rule US 1975 only - Feb lastSun 2:00 1:00 D
    -
    26156  {
    -
    26157  1975 /*fromYear*/,
    -
    26158  1975 /*toYear*/,
    -
    26159  2 /*inMonth*/,
    -
    26160  7 /*onDayOfWeek*/,
    -
    26161  0 /*onDayOfMonth*/,
    -
    26162  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26163  480 /*atTimeCode (7200/15)*/,
    -
    26164  60 /*deltaMinutes*/,
    -
    26165  13 /*letterIndex ("D")*/,
    -
    26166  },
    -
    26167  // Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
    -
    26168  {
    -
    26169  1976 /*fromYear*/,
    -
    26170  1986 /*toYear*/,
    -
    26171  4 /*inMonth*/,
    -
    26172  7 /*onDayOfWeek*/,
    -
    26173  0 /*onDayOfMonth*/,
    -
    26174  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26175  480 /*atTimeCode (7200/15)*/,
    -
    26176  60 /*deltaMinutes*/,
    -
    26177  13 /*letterIndex ("D")*/,
    -
    26178  },
    -
    26179  // Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    26180  {
    -
    26181  1987 /*fromYear*/,
    -
    26182  2006 /*toYear*/,
    -
    26183  4 /*inMonth*/,
    -
    26184  7 /*onDayOfWeek*/,
    -
    26185  1 /*onDayOfMonth*/,
    -
    26186  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26187  480 /*atTimeCode (7200/15)*/,
    -
    26188  60 /*deltaMinutes*/,
    -
    26189  13 /*letterIndex ("D")*/,
    -
    26190  },
    -
    26191  // Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    26192  {
    -
    26193  2007 /*fromYear*/,
    -
    26194  32766 /*toYear*/,
    -
    26195  3 /*inMonth*/,
    -
    26196  7 /*onDayOfWeek*/,
    -
    26197  8 /*onDayOfMonth*/,
    -
    26198  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26199  480 /*atTimeCode (7200/15)*/,
    -
    26200  60 /*deltaMinutes*/,
    -
    26201  13 /*letterIndex ("D")*/,
    -
    26202  },
    -
    26203  // Rule US 2007 max - Nov Sun>=1 2:00 0 S
    -
    26204  {
    -
    26205  2007 /*fromYear*/,
    -
    26206  32766 /*toYear*/,
    -
    26207  11 /*inMonth*/,
    -
    26208  7 /*onDayOfWeek*/,
    -
    26209  1 /*onDayOfMonth*/,
    -
    26210  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26211  480 /*atTimeCode (7200/15)*/,
    -
    26212  0 /*deltaMinutes*/,
    -
    26213  25 /*letterIndex ("S")*/,
    -
    26214  },
    -
    26215 
    -
    26216 };
    -
    26217 
    -
    26218 const complete::Info::ZonePolicy kZonePolicyUS ACE_TIME_PROGMEM = {
    -
    26219  kZoneRulesUS /*rules*/,
    -
    26220  14 /*numRules*/,
    -
    26221 };
    -
    26222 
    -
    26223 //---------------------------------------------------------------------------
    -
    26224 // Policy name: Uruguay
    -
    26225 // Rules: 49
    -
    26226 //---------------------------------------------------------------------------
    -
    26227 
    -
    26228 static const complete::Info::ZoneRule kZoneRulesUruguay[] ACE_TIME_PROGMEM = {
    -
    26229  // Anchor: Rule Uruguay 1924 1926 - Apr 1 0:00 0 -
    -
    26230  {
    -
    26231  -32767 /*fromYear*/,
    -
    26232  -32767 /*toYear*/,
    -
    26233  1 /*inMonth*/,
    -
    26234  0 /*onDayOfWeek*/,
    -
    26235  1 /*onDayOfMonth*/,
    -
    26236  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26237  0 /*atTimeCode (0/15)*/,
    -
    26238  0 /*deltaMinutes*/,
    -
    26239  0 /*letterIndex ("")*/,
    -
    26240  },
    -
    26241  // Rule Uruguay 1923 1925 - Oct 1 0:00 0:30 -
    -
    26242  {
    -
    26243  1923 /*fromYear*/,
    -
    26244  1925 /*toYear*/,
    -
    26245  10 /*inMonth*/,
    -
    26246  0 /*onDayOfWeek*/,
    -
    26247  1 /*onDayOfMonth*/,
    -
    26248  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26249  0 /*atTimeCode (0/15)*/,
    -
    26250  30 /*deltaMinutes*/,
    -
    26251  0 /*letterIndex ("")*/,
    -
    26252  },
    -
    26253  // Rule Uruguay 1924 1926 - Apr 1 0:00 0 -
    -
    26254  {
    -
    26255  1924 /*fromYear*/,
    -
    26256  1926 /*toYear*/,
    -
    26257  4 /*inMonth*/,
    -
    26258  0 /*onDayOfWeek*/,
    -
    26259  1 /*onDayOfMonth*/,
    -
    26260  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26261  0 /*atTimeCode (0/15)*/,
    -
    26262  0 /*deltaMinutes*/,
    -
    26263  0 /*letterIndex ("")*/,
    -
    26264  },
    -
    26265  // Rule Uruguay 1933 1938 - Oct lastSun 0:00 0:30 -
    -
    26266  {
    -
    26267  1933 /*fromYear*/,
    -
    26268  1938 /*toYear*/,
    -
    26269  10 /*inMonth*/,
    -
    26270  7 /*onDayOfWeek*/,
    -
    26271  0 /*onDayOfMonth*/,
    -
    26272  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26273  0 /*atTimeCode (0/15)*/,
    -
    26274  30 /*deltaMinutes*/,
    -
    26275  0 /*letterIndex ("")*/,
    -
    26276  },
    -
    26277  // Rule Uruguay 1934 1941 - Mar lastSat 24:00 0 -
    -
    26278  {
    -
    26279  1934 /*fromYear*/,
    -
    26280  1941 /*toYear*/,
    -
    26281  3 /*inMonth*/,
    -
    26282  6 /*onDayOfWeek*/,
    -
    26283  0 /*onDayOfMonth*/,
    -
    26284  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26285  5760 /*atTimeCode (86400/15)*/,
    -
    26286  0 /*deltaMinutes*/,
    -
    26287  0 /*letterIndex ("")*/,
    -
    26288  },
    -
    26289  // Rule Uruguay 1939 only - Oct 1 0:00 0:30 -
    -
    26290  {
    -
    26291  1939 /*fromYear*/,
    -
    26292  1939 /*toYear*/,
    -
    26293  10 /*inMonth*/,
    -
    26294  0 /*onDayOfWeek*/,
    -
    26295  1 /*onDayOfMonth*/,
    -
    26296  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26297  0 /*atTimeCode (0/15)*/,
    -
    26298  30 /*deltaMinutes*/,
    -
    26299  0 /*letterIndex ("")*/,
    -
    26300  },
    -
    26301  // Rule Uruguay 1940 only - Oct 27 0:00 0:30 -
    -
    26302  {
    -
    26303  1940 /*fromYear*/,
    -
    26304  1940 /*toYear*/,
    -
    26305  10 /*inMonth*/,
    -
    26306  0 /*onDayOfWeek*/,
    -
    26307  27 /*onDayOfMonth*/,
    -
    26308  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26309  0 /*atTimeCode (0/15)*/,
    -
    26310  30 /*deltaMinutes*/,
    -
    26311  0 /*letterIndex ("")*/,
    -
    26312  },
    -
    26313  // Rule Uruguay 1941 only - Aug 1 0:00 0:30 -
    -
    26314  {
    -
    26315  1941 /*fromYear*/,
    -
    26316  1941 /*toYear*/,
    -
    26317  8 /*inMonth*/,
    -
    26318  0 /*onDayOfWeek*/,
    -
    26319  1 /*onDayOfMonth*/,
    -
    26320  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26321  0 /*atTimeCode (0/15)*/,
    -
    26322  30 /*deltaMinutes*/,
    -
    26323  0 /*letterIndex ("")*/,
    -
    26324  },
    -
    26325  // Rule Uruguay 1942 only - Dec 14 0:00 0:30 -
    -
    26326  {
    -
    26327  1942 /*fromYear*/,
    -
    26328  1942 /*toYear*/,
    -
    26329  12 /*inMonth*/,
    -
    26330  0 /*onDayOfWeek*/,
    -
    26331  14 /*onDayOfMonth*/,
    -
    26332  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26333  0 /*atTimeCode (0/15)*/,
    -
    26334  30 /*deltaMinutes*/,
    -
    26335  0 /*letterIndex ("")*/,
    -
    26336  },
    -
    26337  // Rule Uruguay 1943 only - Mar 14 0:00 0 -
    -
    26338  {
    -
    26339  1943 /*fromYear*/,
    -
    26340  1943 /*toYear*/,
    -
    26341  3 /*inMonth*/,
    -
    26342  0 /*onDayOfWeek*/,
    -
    26343  14 /*onDayOfMonth*/,
    -
    26344  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26345  0 /*atTimeCode (0/15)*/,
    -
    26346  0 /*deltaMinutes*/,
    -
    26347  0 /*letterIndex ("")*/,
    -
    26348  },
    -
    26349  // Rule Uruguay 1959 only - May 24 0:00 0:30 -
    -
    26350  {
    -
    26351  1959 /*fromYear*/,
    -
    26352  1959 /*toYear*/,
    -
    26353  5 /*inMonth*/,
    -
    26354  0 /*onDayOfWeek*/,
    -
    26355  24 /*onDayOfMonth*/,
    -
    26356  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26357  0 /*atTimeCode (0/15)*/,
    -
    26358  30 /*deltaMinutes*/,
    -
    26359  0 /*letterIndex ("")*/,
    -
    26360  },
    -
    26361  // Rule Uruguay 1959 only - Nov 15 0:00 0 -
    -
    26362  {
    -
    26363  1959 /*fromYear*/,
    -
    26364  1959 /*toYear*/,
    -
    26365  11 /*inMonth*/,
    -
    26366  0 /*onDayOfWeek*/,
    -
    26367  15 /*onDayOfMonth*/,
    -
    26368  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26369  0 /*atTimeCode (0/15)*/,
    -
    26370  0 /*deltaMinutes*/,
    -
    26371  0 /*letterIndex ("")*/,
    -
    26372  },
    -
    26373  // Rule Uruguay 1960 only - Jan 17 0:00 1:00 -
    -
    26374  {
    -
    26375  1960 /*fromYear*/,
    -
    26376  1960 /*toYear*/,
    -
    26377  1 /*inMonth*/,
    -
    26378  0 /*onDayOfWeek*/,
    -
    26379  17 /*onDayOfMonth*/,
    -
    26380  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26381  0 /*atTimeCode (0/15)*/,
    -
    26382  60 /*deltaMinutes*/,
    -
    26383  0 /*letterIndex ("")*/,
    -
    26384  },
    -
    26385  // Rule Uruguay 1960 only - Mar 6 0:00 0 -
    -
    26386  {
    -
    26387  1960 /*fromYear*/,
    -
    26388  1960 /*toYear*/,
    -
    26389  3 /*inMonth*/,
    -
    26390  0 /*onDayOfWeek*/,
    -
    26391  6 /*onDayOfMonth*/,
    -
    26392  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26393  0 /*atTimeCode (0/15)*/,
    -
    26394  0 /*deltaMinutes*/,
    -
    26395  0 /*letterIndex ("")*/,
    -
    26396  },
    -
    26397  // Rule Uruguay 1965 only - Apr 4 0:00 1:00 -
    -
    26398  {
    -
    26399  1965 /*fromYear*/,
    -
    26400  1965 /*toYear*/,
    -
    26401  4 /*inMonth*/,
    -
    26402  0 /*onDayOfWeek*/,
    -
    26403  4 /*onDayOfMonth*/,
    -
    26404  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26405  0 /*atTimeCode (0/15)*/,
    -
    26406  60 /*deltaMinutes*/,
    -
    26407  0 /*letterIndex ("")*/,
    -
    26408  },
    -
    26409  // Rule Uruguay 1965 only - Sep 26 0:00 0 -
    -
    26410  {
    -
    26411  1965 /*fromYear*/,
    -
    26412  1965 /*toYear*/,
    -
    26413  9 /*inMonth*/,
    -
    26414  0 /*onDayOfWeek*/,
    -
    26415  26 /*onDayOfMonth*/,
    -
    26416  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26417  0 /*atTimeCode (0/15)*/,
    -
    26418  0 /*deltaMinutes*/,
    -
    26419  0 /*letterIndex ("")*/,
    -
    26420  },
    -
    26421  // Rule Uruguay 1968 only - May 27 0:00 0:30 -
    -
    26422  {
    -
    26423  1968 /*fromYear*/,
    -
    26424  1968 /*toYear*/,
    -
    26425  5 /*inMonth*/,
    -
    26426  0 /*onDayOfWeek*/,
    -
    26427  27 /*onDayOfMonth*/,
    -
    26428  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26429  0 /*atTimeCode (0/15)*/,
    -
    26430  30 /*deltaMinutes*/,
    -
    26431  0 /*letterIndex ("")*/,
    -
    26432  },
    -
    26433  // Rule Uruguay 1968 only - Dec 1 0:00 0 -
    -
    26434  {
    -
    26435  1968 /*fromYear*/,
    -
    26436  1968 /*toYear*/,
    -
    26437  12 /*inMonth*/,
    -
    26438  0 /*onDayOfWeek*/,
    -
    26439  1 /*onDayOfMonth*/,
    -
    26440  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26441  0 /*atTimeCode (0/15)*/,
    -
    26442  0 /*deltaMinutes*/,
    -
    26443  0 /*letterIndex ("")*/,
    -
    26444  },
    -
    26445  // Rule Uruguay 1970 only - Apr 25 0:00 1:00 -
    -
    26446  {
    -
    26447  1970 /*fromYear*/,
    -
    26448  1970 /*toYear*/,
    -
    26449  4 /*inMonth*/,
    -
    26450  0 /*onDayOfWeek*/,
    -
    26451  25 /*onDayOfMonth*/,
    -
    26452  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26453  0 /*atTimeCode (0/15)*/,
    -
    26454  60 /*deltaMinutes*/,
    -
    26455  0 /*letterIndex ("")*/,
    -
    26456  },
    -
    26457  // Rule Uruguay 1970 only - Jun 14 0:00 0 -
    -
    26458  {
    -
    26459  1970 /*fromYear*/,
    -
    26460  1970 /*toYear*/,
    -
    26461  6 /*inMonth*/,
    -
    26462  0 /*onDayOfWeek*/,
    -
    26463  14 /*onDayOfMonth*/,
    -
    26464  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26465  0 /*atTimeCode (0/15)*/,
    -
    26466  0 /*deltaMinutes*/,
    -
    26467  0 /*letterIndex ("")*/,
    -
    26468  },
    -
    26469  // Rule Uruguay 1972 only - Apr 23 0:00 1:00 -
    -
    26470  {
    -
    26471  1972 /*fromYear*/,
    -
    26472  1972 /*toYear*/,
    -
    26473  4 /*inMonth*/,
    -
    26474  0 /*onDayOfWeek*/,
    -
    26475  23 /*onDayOfMonth*/,
    -
    26476  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26477  0 /*atTimeCode (0/15)*/,
    -
    26478  60 /*deltaMinutes*/,
    -
    26479  0 /*letterIndex ("")*/,
    -
    26480  },
    -
    26481  // Rule Uruguay 1972 only - Jul 16 0:00 0 -
    -
    26482  {
    -
    26483  1972 /*fromYear*/,
    -
    26484  1972 /*toYear*/,
    -
    26485  7 /*inMonth*/,
    -
    26486  0 /*onDayOfWeek*/,
    -
    26487  16 /*onDayOfMonth*/,
    -
    26488  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26489  0 /*atTimeCode (0/15)*/,
    -
    26490  0 /*deltaMinutes*/,
    -
    26491  0 /*letterIndex ("")*/,
    -
    26492  },
    -
    26493  // Rule Uruguay 1974 only - Jan 13 0:00 1:30 -
    -
    26494  {
    -
    26495  1974 /*fromYear*/,
    -
    26496  1974 /*toYear*/,
    -
    26497  1 /*inMonth*/,
    -
    26498  0 /*onDayOfWeek*/,
    -
    26499  13 /*onDayOfMonth*/,
    -
    26500  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26501  0 /*atTimeCode (0/15)*/,
    -
    26502  90 /*deltaMinutes*/,
    -
    26503  0 /*letterIndex ("")*/,
    -
    26504  },
    -
    26505  // Rule Uruguay 1974 only - Mar 10 0:00 0:30 -
    -
    26506  {
    -
    26507  1974 /*fromYear*/,
    -
    26508  1974 /*toYear*/,
    -
    26509  3 /*inMonth*/,
    -
    26510  0 /*onDayOfWeek*/,
    -
    26511  10 /*onDayOfMonth*/,
    -
    26512  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26513  0 /*atTimeCode (0/15)*/,
    -
    26514  30 /*deltaMinutes*/,
    -
    26515  0 /*letterIndex ("")*/,
    -
    26516  },
    -
    26517  // Rule Uruguay 1974 only - Sep 1 0:00 0 -
    -
    26518  {
    -
    26519  1974 /*fromYear*/,
    -
    26520  1974 /*toYear*/,
    -
    26521  9 /*inMonth*/,
    -
    26522  0 /*onDayOfWeek*/,
    -
    26523  1 /*onDayOfMonth*/,
    -
    26524  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26525  0 /*atTimeCode (0/15)*/,
    -
    26526  0 /*deltaMinutes*/,
    -
    26527  0 /*letterIndex ("")*/,
    -
    26528  },
    -
    26529  // Rule Uruguay 1974 only - Dec 22 0:00 1:00 -
    -
    26530  {
    -
    26531  1974 /*fromYear*/,
    -
    26532  1974 /*toYear*/,
    -
    26533  12 /*inMonth*/,
    -
    26534  0 /*onDayOfWeek*/,
    -
    26535  22 /*onDayOfMonth*/,
    -
    26536  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26537  0 /*atTimeCode (0/15)*/,
    -
    26538  60 /*deltaMinutes*/,
    -
    26539  0 /*letterIndex ("")*/,
    -
    26540  },
    -
    26541  // Rule Uruguay 1975 only - Mar 30 0:00 0 -
    -
    26542  {
    -
    26543  1975 /*fromYear*/,
    -
    26544  1975 /*toYear*/,
    -
    26545  3 /*inMonth*/,
    -
    26546  0 /*onDayOfWeek*/,
    -
    26547  30 /*onDayOfMonth*/,
    -
    26548  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26549  0 /*atTimeCode (0/15)*/,
    -
    26550  0 /*deltaMinutes*/,
    -
    26551  0 /*letterIndex ("")*/,
    -
    26552  },
    -
    26553  // Rule Uruguay 1976 only - Dec 19 0:00 1:00 -
    -
    26554  {
    -
    26555  1976 /*fromYear*/,
    -
    26556  1976 /*toYear*/,
    -
    26557  12 /*inMonth*/,
    -
    26558  0 /*onDayOfWeek*/,
    -
    26559  19 /*onDayOfMonth*/,
    -
    26560  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26561  0 /*atTimeCode (0/15)*/,
    -
    26562  60 /*deltaMinutes*/,
    -
    26563  0 /*letterIndex ("")*/,
    -
    26564  },
    -
    26565  // Rule Uruguay 1977 only - Mar 6 0:00 0 -
    -
    26566  {
    -
    26567  1977 /*fromYear*/,
    -
    26568  1977 /*toYear*/,
    -
    26569  3 /*inMonth*/,
    -
    26570  0 /*onDayOfWeek*/,
    -
    26571  6 /*onDayOfMonth*/,
    -
    26572  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26573  0 /*atTimeCode (0/15)*/,
    -
    26574  0 /*deltaMinutes*/,
    -
    26575  0 /*letterIndex ("")*/,
    -
    26576  },
    -
    26577  // Rule Uruguay 1977 only - Dec 4 0:00 1:00 -
    -
    26578  {
    -
    26579  1977 /*fromYear*/,
    -
    26580  1977 /*toYear*/,
    -
    26581  12 /*inMonth*/,
    -
    26582  0 /*onDayOfWeek*/,
    -
    26583  4 /*onDayOfMonth*/,
    -
    26584  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26585  0 /*atTimeCode (0/15)*/,
    -
    26586  60 /*deltaMinutes*/,
    -
    26587  0 /*letterIndex ("")*/,
    -
    26588  },
    -
    26589  // Rule Uruguay 1978 1979 - Mar Sun>=1 0:00 0 -
    -
    26590  {
    -
    26591  1978 /*fromYear*/,
    -
    26592  1979 /*toYear*/,
    -
    26593  3 /*inMonth*/,
    -
    26594  7 /*onDayOfWeek*/,
    -
    26595  1 /*onDayOfMonth*/,
    -
    26596  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26597  0 /*atTimeCode (0/15)*/,
    -
    26598  0 /*deltaMinutes*/,
    -
    26599  0 /*letterIndex ("")*/,
    -
    26600  },
    -
    26601  // Rule Uruguay 1978 only - Dec 17 0:00 1:00 -
    -
    26602  {
    -
    26603  1978 /*fromYear*/,
    -
    26604  1978 /*toYear*/,
    -
    26605  12 /*inMonth*/,
    -
    26606  0 /*onDayOfWeek*/,
    -
    26607  17 /*onDayOfMonth*/,
    -
    26608  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26609  0 /*atTimeCode (0/15)*/,
    -
    26610  60 /*deltaMinutes*/,
    -
    26611  0 /*letterIndex ("")*/,
    -
    26612  },
    -
    26613  // Rule Uruguay 1979 only - Apr 29 0:00 1:00 -
    -
    26614  {
    -
    26615  1979 /*fromYear*/,
    -
    26616  1979 /*toYear*/,
    -
    26617  4 /*inMonth*/,
    -
    26618  0 /*onDayOfWeek*/,
    -
    26619  29 /*onDayOfMonth*/,
    -
    26620  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26621  0 /*atTimeCode (0/15)*/,
    -
    26622  60 /*deltaMinutes*/,
    -
    26623  0 /*letterIndex ("")*/,
    -
    26624  },
    -
    26625  // Rule Uruguay 1980 only - Mar 16 0:00 0 -
    -
    26626  {
    -
    26627  1980 /*fromYear*/,
    -
    26628  1980 /*toYear*/,
    -
    26629  3 /*inMonth*/,
    -
    26630  0 /*onDayOfWeek*/,
    -
    26631  16 /*onDayOfMonth*/,
    -
    26632  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26633  0 /*atTimeCode (0/15)*/,
    -
    26634  0 /*deltaMinutes*/,
    -
    26635  0 /*letterIndex ("")*/,
    -
    26636  },
    -
    26637  // Rule Uruguay 1987 only - Dec 14 0:00 1:00 -
    -
    26638  {
    -
    26639  1987 /*fromYear*/,
    -
    26640  1987 /*toYear*/,
    -
    26641  12 /*inMonth*/,
    -
    26642  0 /*onDayOfWeek*/,
    -
    26643  14 /*onDayOfMonth*/,
    -
    26644  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26645  0 /*atTimeCode (0/15)*/,
    -
    26646  60 /*deltaMinutes*/,
    -
    26647  0 /*letterIndex ("")*/,
    -
    26648  },
    -
    26649  // Rule Uruguay 1988 only - Feb 28 0:00 0 -
    -
    26650  {
    -
    26651  1988 /*fromYear*/,
    -
    26652  1988 /*toYear*/,
    -
    26653  2 /*inMonth*/,
    -
    26654  0 /*onDayOfWeek*/,
    -
    26655  28 /*onDayOfMonth*/,
    -
    26656  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26657  0 /*atTimeCode (0/15)*/,
    -
    26658  0 /*deltaMinutes*/,
    -
    26659  0 /*letterIndex ("")*/,
    -
    26660  },
    -
    26661  // Rule Uruguay 1988 only - Dec 11 0:00 1:00 -
    -
    26662  {
    -
    26663  1988 /*fromYear*/,
    -
    26664  1988 /*toYear*/,
    -
    26665  12 /*inMonth*/,
    -
    26666  0 /*onDayOfWeek*/,
    -
    26667  11 /*onDayOfMonth*/,
    -
    26668  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26669  0 /*atTimeCode (0/15)*/,
    -
    26670  60 /*deltaMinutes*/,
    -
    26671  0 /*letterIndex ("")*/,
    -
    26672  },
    -
    26673  // Rule Uruguay 1989 only - Mar 5 0:00 0 -
    -
    26674  {
    -
    26675  1989 /*fromYear*/,
    -
    26676  1989 /*toYear*/,
    -
    26677  3 /*inMonth*/,
    -
    26678  0 /*onDayOfWeek*/,
    -
    26679  5 /*onDayOfMonth*/,
    -
    26680  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26681  0 /*atTimeCode (0/15)*/,
    -
    26682  0 /*deltaMinutes*/,
    -
    26683  0 /*letterIndex ("")*/,
    -
    26684  },
    -
    26685  // Rule Uruguay 1989 only - Oct 29 0:00 1:00 -
    -
    26686  {
    -
    26687  1989 /*fromYear*/,
    -
    26688  1989 /*toYear*/,
    -
    26689  10 /*inMonth*/,
    -
    26690  0 /*onDayOfWeek*/,
    -
    26691  29 /*onDayOfMonth*/,
    -
    26692  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26693  0 /*atTimeCode (0/15)*/,
    -
    26694  60 /*deltaMinutes*/,
    -
    26695  0 /*letterIndex ("")*/,
    -
    26696  },
    -
    26697  // Rule Uruguay 1990 only - Feb 25 0:00 0 -
    -
    26698  {
    -
    26699  1990 /*fromYear*/,
    -
    26700  1990 /*toYear*/,
    -
    26701  2 /*inMonth*/,
    -
    26702  0 /*onDayOfWeek*/,
    -
    26703  25 /*onDayOfMonth*/,
    -
    26704  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26705  0 /*atTimeCode (0/15)*/,
    -
    26706  0 /*deltaMinutes*/,
    -
    26707  0 /*letterIndex ("")*/,
    -
    26708  },
    -
    26709  // Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 -
    -
    26710  {
    -
    26711  1990 /*fromYear*/,
    -
    26712  1991 /*toYear*/,
    -
    26713  10 /*inMonth*/,
    -
    26714  7 /*onDayOfWeek*/,
    -
    26715  21 /*onDayOfMonth*/,
    -
    26716  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26717  0 /*atTimeCode (0/15)*/,
    -
    26718  60 /*deltaMinutes*/,
    -
    26719  0 /*letterIndex ("")*/,
    -
    26720  },
    -
    26721  // Rule Uruguay 1991 1992 - Mar Sun>=1 0:00 0 -
    -
    26722  {
    -
    26723  1991 /*fromYear*/,
    -
    26724  1992 /*toYear*/,
    -
    26725  3 /*inMonth*/,
    -
    26726  7 /*onDayOfWeek*/,
    -
    26727  1 /*onDayOfMonth*/,
    -
    26728  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26729  0 /*atTimeCode (0/15)*/,
    -
    26730  0 /*deltaMinutes*/,
    -
    26731  0 /*letterIndex ("")*/,
    -
    26732  },
    -
    26733  // Rule Uruguay 1992 only - Oct 18 0:00 1:00 -
    -
    26734  {
    -
    26735  1992 /*fromYear*/,
    -
    26736  1992 /*toYear*/,
    -
    26737  10 /*inMonth*/,
    -
    26738  0 /*onDayOfWeek*/,
    -
    26739  18 /*onDayOfMonth*/,
    -
    26740  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26741  0 /*atTimeCode (0/15)*/,
    -
    26742  60 /*deltaMinutes*/,
    -
    26743  0 /*letterIndex ("")*/,
    -
    26744  },
    -
    26745  // Rule Uruguay 1993 only - Feb 28 0:00 0 -
    -
    26746  {
    -
    26747  1993 /*fromYear*/,
    -
    26748  1993 /*toYear*/,
    -
    26749  2 /*inMonth*/,
    -
    26750  0 /*onDayOfWeek*/,
    -
    26751  28 /*onDayOfMonth*/,
    -
    26752  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26753  0 /*atTimeCode (0/15)*/,
    -
    26754  0 /*deltaMinutes*/,
    -
    26755  0 /*letterIndex ("")*/,
    -
    26756  },
    -
    26757  // Rule Uruguay 2004 only - Sep 19 0:00 1:00 -
    -
    26758  {
    -
    26759  2004 /*fromYear*/,
    -
    26760  2004 /*toYear*/,
    -
    26761  9 /*inMonth*/,
    -
    26762  0 /*onDayOfWeek*/,
    -
    26763  19 /*onDayOfMonth*/,
    -
    26764  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26765  0 /*atTimeCode (0/15)*/,
    -
    26766  60 /*deltaMinutes*/,
    -
    26767  0 /*letterIndex ("")*/,
    -
    26768  },
    -
    26769  // Rule Uruguay 2005 only - Mar 27 2:00 0 -
    -
    26770  {
    -
    26771  2005 /*fromYear*/,
    -
    26772  2005 /*toYear*/,
    -
    26773  3 /*inMonth*/,
    -
    26774  0 /*onDayOfWeek*/,
    -
    26775  27 /*onDayOfMonth*/,
    -
    26776  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26777  480 /*atTimeCode (7200/15)*/,
    -
    26778  0 /*deltaMinutes*/,
    -
    26779  0 /*letterIndex ("")*/,
    -
    26780  },
    -
    26781  // Rule Uruguay 2005 only - Oct 9 2:00 1:00 -
    -
    26782  {
    -
    26783  2005 /*fromYear*/,
    -
    26784  2005 /*toYear*/,
    -
    26785  10 /*inMonth*/,
    -
    26786  0 /*onDayOfWeek*/,
    -
    26787  9 /*onDayOfMonth*/,
    -
    26788  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26789  480 /*atTimeCode (7200/15)*/,
    -
    26790  60 /*deltaMinutes*/,
    -
    26791  0 /*letterIndex ("")*/,
    -
    26792  },
    -
    26793  // Rule Uruguay 2006 2015 - Mar Sun>=8 2:00 0 -
    -
    26794  {
    -
    26795  2006 /*fromYear*/,
    -
    26796  2015 /*toYear*/,
    -
    26797  3 /*inMonth*/,
    -
    26798  7 /*onDayOfWeek*/,
    -
    26799  8 /*onDayOfMonth*/,
    -
    26800  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26801  480 /*atTimeCode (7200/15)*/,
    -
    26802  0 /*deltaMinutes*/,
    -
    26803  0 /*letterIndex ("")*/,
    -
    26804  },
    -
    26805  // Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 -
    -
    26806  {
    -
    26807  2006 /*fromYear*/,
    -
    26808  2014 /*toYear*/,
    -
    26809  10 /*inMonth*/,
    -
    26810  7 /*onDayOfWeek*/,
    -
    26811  1 /*onDayOfMonth*/,
    -
    26812  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26813  480 /*atTimeCode (7200/15)*/,
    -
    26814  60 /*deltaMinutes*/,
    -
    26815  0 /*letterIndex ("")*/,
    -
    26816  },
    -
    26817 
    -
    26818 };
    -
    26819 
    -
    26820 const complete::Info::ZonePolicy kZonePolicyUruguay ACE_TIME_PROGMEM = {
    -
    26821  kZoneRulesUruguay /*rules*/,
    -
    26822  49 /*numRules*/,
    -
    26823 };
    -
    26824 
    -
    26825 //---------------------------------------------------------------------------
    -
    26826 // Policy name: Vanc
    -
    26827 // Rules: 10
    -
    26828 //---------------------------------------------------------------------------
    -
    26829 
    -
    26830 static const complete::Info::ZoneRule kZoneRulesVanc[] ACE_TIME_PROGMEM = {
    -
    26831  // Anchor: Rule Vanc 1918 only - Oct 27 2:00 0 S
    -
    26832  {
    -
    26833  -32767 /*fromYear*/,
    -
    26834  -32767 /*toYear*/,
    -
    26835  1 /*inMonth*/,
    -
    26836  0 /*onDayOfWeek*/,
    -
    26837  1 /*onDayOfMonth*/,
    -
    26838  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26839  0 /*atTimeCode (0/15)*/,
    -
    26840  0 /*deltaMinutes*/,
    -
    26841  25 /*letterIndex ("S")*/,
    -
    26842  },
    -
    26843  // Rule Vanc 1918 only - Apr 14 2:00 1:00 D
    -
    26844  {
    -
    26845  1918 /*fromYear*/,
    -
    26846  1918 /*toYear*/,
    -
    26847  4 /*inMonth*/,
    -
    26848  0 /*onDayOfWeek*/,
    -
    26849  14 /*onDayOfMonth*/,
    -
    26850  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26851  480 /*atTimeCode (7200/15)*/,
    -
    26852  60 /*deltaMinutes*/,
    -
    26853  13 /*letterIndex ("D")*/,
    -
    26854  },
    -
    26855  // Rule Vanc 1918 only - Oct 27 2:00 0 S
    -
    26856  {
    -
    26857  1918 /*fromYear*/,
    -
    26858  1918 /*toYear*/,
    -
    26859  10 /*inMonth*/,
    -
    26860  0 /*onDayOfWeek*/,
    -
    26861  27 /*onDayOfMonth*/,
    -
    26862  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26863  480 /*atTimeCode (7200/15)*/,
    -
    26864  0 /*deltaMinutes*/,
    -
    26865  25 /*letterIndex ("S")*/,
    -
    26866  },
    -
    26867  // Rule Vanc 1942 only - Feb 9 2:00 1:00 W
    -
    26868  {
    -
    26869  1942 /*fromYear*/,
    -
    26870  1942 /*toYear*/,
    -
    26871  2 /*inMonth*/,
    -
    26872  0 /*onDayOfWeek*/,
    -
    26873  9 /*onDayOfMonth*/,
    -
    26874  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26875  480 /*atTimeCode (7200/15)*/,
    -
    26876  60 /*deltaMinutes*/,
    -
    26877  26 /*letterIndex ("W")*/,
    -
    26878  },
    -
    26879  // Rule Vanc 1945 only - Aug 14 23:00u 1:00 P
    -
    26880  {
    -
    26881  1945 /*fromYear*/,
    -
    26882  1945 /*toYear*/,
    -
    26883  8 /*inMonth*/,
    -
    26884  0 /*onDayOfWeek*/,
    -
    26885  14 /*onDayOfMonth*/,
    -
    26886  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    26887  5520 /*atTimeCode (82800/15)*/,
    -
    26888  60 /*deltaMinutes*/,
    -
    26889  24 /*letterIndex ("P")*/,
    -
    26890  },
    -
    26891  // Rule Vanc 1945 only - Sep 30 2:00 0 S
    -
    26892  {
    -
    26893  1945 /*fromYear*/,
    -
    26894  1945 /*toYear*/,
    -
    26895  9 /*inMonth*/,
    -
    26896  0 /*onDayOfWeek*/,
    -
    26897  30 /*onDayOfMonth*/,
    -
    26898  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26899  480 /*atTimeCode (7200/15)*/,
    -
    26900  0 /*deltaMinutes*/,
    -
    26901  25 /*letterIndex ("S")*/,
    -
    26902  },
    -
    26903  // Rule Vanc 1946 1986 - Apr lastSun 2:00 1:00 D
    -
    26904  {
    -
    26905  1946 /*fromYear*/,
    -
    26906  1986 /*toYear*/,
    -
    26907  4 /*inMonth*/,
    -
    26908  7 /*onDayOfWeek*/,
    -
    26909  0 /*onDayOfMonth*/,
    -
    26910  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26911  480 /*atTimeCode (7200/15)*/,
    -
    26912  60 /*deltaMinutes*/,
    -
    26913  13 /*letterIndex ("D")*/,
    -
    26914  },
    -
    26915  // Rule Vanc 1946 only - Sep 29 2:00 0 S
    -
    26916  {
    -
    26917  1946 /*fromYear*/,
    -
    26918  1946 /*toYear*/,
    -
    26919  9 /*inMonth*/,
    -
    26920  0 /*onDayOfWeek*/,
    -
    26921  29 /*onDayOfMonth*/,
    -
    26922  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26923  480 /*atTimeCode (7200/15)*/,
    -
    26924  0 /*deltaMinutes*/,
    -
    26925  25 /*letterIndex ("S")*/,
    -
    26926  },
    -
    26927  // Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S
    -
    26928  {
    -
    26929  1947 /*fromYear*/,
    -
    26930  1961 /*toYear*/,
    -
    26931  9 /*inMonth*/,
    -
    26932  7 /*onDayOfWeek*/,
    -
    26933  0 /*onDayOfMonth*/,
    -
    26934  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26935  480 /*atTimeCode (7200/15)*/,
    -
    26936  0 /*deltaMinutes*/,
    -
    26937  25 /*letterIndex ("S")*/,
    -
    26938  },
    -
    26939  // Rule Vanc 1962 2006 - Oct lastSun 2:00 0 S
    -
    26940  {
    -
    26941  1962 /*fromYear*/,
    -
    26942  2006 /*toYear*/,
    -
    26943  10 /*inMonth*/,
    -
    26944  7 /*onDayOfWeek*/,
    -
    26945  0 /*onDayOfMonth*/,
    -
    26946  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26947  480 /*atTimeCode (7200/15)*/,
    -
    26948  0 /*deltaMinutes*/,
    -
    26949  25 /*letterIndex ("S")*/,
    -
    26950  },
    -
    26951 
    -
    26952 };
    -
    26953 
    -
    26954 const complete::Info::ZonePolicy kZonePolicyVanc ACE_TIME_PROGMEM = {
    -
    26955  kZoneRulesVanc /*rules*/,
    -
    26956  10 /*numRules*/,
    -
    26957 };
    -
    26958 
    -
    26959 //---------------------------------------------------------------------------
    -
    26960 // Policy name: Vanuatu
    -
    26961 // Rules: 7
    -
    26962 //---------------------------------------------------------------------------
    -
    26963 
    -
    26964 static const complete::Info::ZoneRule kZoneRulesVanuatu[] ACE_TIME_PROGMEM = {
    -
    26965  // Anchor: Rule Vanuatu 1974 only - Mar 30 12:00u 0 -
    -
    26966  {
    -
    26967  -32767 /*fromYear*/,
    -
    26968  -32767 /*toYear*/,
    -
    26969  1 /*inMonth*/,
    -
    26970  0 /*onDayOfWeek*/,
    -
    26971  1 /*onDayOfMonth*/,
    -
    26972  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    26973  0 /*atTimeCode (0/15)*/,
    -
    26974  0 /*deltaMinutes*/,
    -
    26975  0 /*letterIndex ("")*/,
    -
    26976  },
    -
    26977  // Rule Vanuatu 1973 only - Dec 22 12:00u 1:00 -
    -
    26978  {
    -
    26979  1973 /*fromYear*/,
    -
    26980  1973 /*toYear*/,
    -
    26981  12 /*inMonth*/,
    -
    26982  0 /*onDayOfWeek*/,
    -
    26983  22 /*onDayOfMonth*/,
    -
    26984  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    26985  2880 /*atTimeCode (43200/15)*/,
    -
    26986  60 /*deltaMinutes*/,
    -
    26987  0 /*letterIndex ("")*/,
    -
    26988  },
    -
    26989  // Rule Vanuatu 1974 only - Mar 30 12:00u 0 -
    -
    26990  {
    -
    26991  1974 /*fromYear*/,
    -
    26992  1974 /*toYear*/,
    -
    26993  3 /*inMonth*/,
    -
    26994  0 /*onDayOfWeek*/,
    -
    26995  30 /*onDayOfMonth*/,
    -
    26996  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    26997  2880 /*atTimeCode (43200/15)*/,
    -
    26998  0 /*deltaMinutes*/,
    -
    26999  0 /*letterIndex ("")*/,
    -
    27000  },
    -
    27001  // Rule Vanuatu 1983 1991 - Sep Sat>=22 24:00 1:00 -
    -
    27002  {
    -
    27003  1983 /*fromYear*/,
    -
    27004  1991 /*toYear*/,
    -
    27005  9 /*inMonth*/,
    -
    27006  6 /*onDayOfWeek*/,
    -
    27007  22 /*onDayOfMonth*/,
    -
    27008  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27009  5760 /*atTimeCode (86400/15)*/,
    -
    27010  60 /*deltaMinutes*/,
    -
    27011  0 /*letterIndex ("")*/,
    -
    27012  },
    -
    27013  // Rule Vanuatu 1984 1991 - Mar Sat>=22 24:00 0 -
    -
    27014  {
    -
    27015  1984 /*fromYear*/,
    -
    27016  1991 /*toYear*/,
    -
    27017  3 /*inMonth*/,
    -
    27018  6 /*onDayOfWeek*/,
    -
    27019  22 /*onDayOfMonth*/,
    -
    27020  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27021  5760 /*atTimeCode (86400/15)*/,
    -
    27022  0 /*deltaMinutes*/,
    -
    27023  0 /*letterIndex ("")*/,
    -
    27024  },
    -
    27025  // Rule Vanuatu 1992 1993 - Jan Sat>=22 24:00 0 -
    -
    27026  {
    -
    27027  1992 /*fromYear*/,
    -
    27028  1993 /*toYear*/,
    -
    27029  1 /*inMonth*/,
    -
    27030  6 /*onDayOfWeek*/,
    -
    27031  22 /*onDayOfMonth*/,
    -
    27032  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27033  5760 /*atTimeCode (86400/15)*/,
    -
    27034  0 /*deltaMinutes*/,
    -
    27035  0 /*letterIndex ("")*/,
    -
    27036  },
    -
    27037  // Rule Vanuatu 1992 only - Oct Sat>=22 24:00 1:00 -
    -
    27038  {
    -
    27039  1992 /*fromYear*/,
    -
    27040  1992 /*toYear*/,
    -
    27041  10 /*inMonth*/,
    -
    27042  6 /*onDayOfWeek*/,
    -
    27043  22 /*onDayOfMonth*/,
    -
    27044  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27045  5760 /*atTimeCode (86400/15)*/,
    -
    27046  60 /*deltaMinutes*/,
    -
    27047  0 /*letterIndex ("")*/,
    -
    27048  },
    -
    27049 
    -
    27050 };
    -
    27051 
    -
    27052 const complete::Info::ZonePolicy kZonePolicyVanuatu ACE_TIME_PROGMEM = {
    -
    27053  kZoneRulesVanuatu /*rules*/,
    -
    27054  7 /*numRules*/,
    -
    27055 };
    -
    27056 
    -
    27057 //---------------------------------------------------------------------------
    -
    27058 // Policy name: Vincennes
    -
    27059 // Rules: 10
    -
    27060 //---------------------------------------------------------------------------
    -
    27061 
    -
    27062 static const complete::Info::ZoneRule kZoneRulesVincennes[] ACE_TIME_PROGMEM = {
    -
    27063  // Anchor: Rule Vincennes 1946 only - Sep lastSun 2:00 0 S
    -
    27064  {
    -
    27065  -32767 /*fromYear*/,
    -
    27066  -32767 /*toYear*/,
    -
    27067  1 /*inMonth*/,
    -
    27068  0 /*onDayOfWeek*/,
    -
    27069  1 /*onDayOfMonth*/,
    -
    27070  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27071  0 /*atTimeCode (0/15)*/,
    -
    27072  0 /*deltaMinutes*/,
    -
    27073  25 /*letterIndex ("S")*/,
    -
    27074  },
    -
    27075  // Rule Vincennes 1946 only - Apr lastSun 2:00 1:00 D
    -
    27076  {
    -
    27077  1946 /*fromYear*/,
    -
    27078  1946 /*toYear*/,
    -
    27079  4 /*inMonth*/,
    -
    27080  7 /*onDayOfWeek*/,
    -
    27081  0 /*onDayOfMonth*/,
    -
    27082  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27083  480 /*atTimeCode (7200/15)*/,
    -
    27084  60 /*deltaMinutes*/,
    -
    27085  13 /*letterIndex ("D")*/,
    -
    27086  },
    -
    27087  // Rule Vincennes 1946 only - Sep lastSun 2:00 0 S
    -
    27088  {
    -
    27089  1946 /*fromYear*/,
    -
    27090  1946 /*toYear*/,
    -
    27091  9 /*inMonth*/,
    -
    27092  7 /*onDayOfWeek*/,
    -
    27093  0 /*onDayOfMonth*/,
    -
    27094  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27095  480 /*atTimeCode (7200/15)*/,
    -
    27096  0 /*deltaMinutes*/,
    -
    27097  25 /*letterIndex ("S")*/,
    -
    27098  },
    -
    27099  // Rule Vincennes 1953 1954 - Apr lastSun 2:00 1:00 D
    -
    27100  {
    -
    27101  1953 /*fromYear*/,
    -
    27102  1954 /*toYear*/,
    -
    27103  4 /*inMonth*/,
    -
    27104  7 /*onDayOfWeek*/,
    -
    27105  0 /*onDayOfMonth*/,
    -
    27106  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27107  480 /*atTimeCode (7200/15)*/,
    -
    27108  60 /*deltaMinutes*/,
    -
    27109  13 /*letterIndex ("D")*/,
    -
    27110  },
    -
    27111  // Rule Vincennes 1953 1959 - Sep lastSun 2:00 0 S
    -
    27112  {
    -
    27113  1953 /*fromYear*/,
    -
    27114  1959 /*toYear*/,
    -
    27115  9 /*inMonth*/,
    -
    27116  7 /*onDayOfWeek*/,
    -
    27117  0 /*onDayOfMonth*/,
    -
    27118  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27119  480 /*atTimeCode (7200/15)*/,
    -
    27120  0 /*deltaMinutes*/,
    -
    27121  25 /*letterIndex ("S")*/,
    -
    27122  },
    -
    27123  // Rule Vincennes 1955 only - May 1 0:00 1:00 D
    -
    27124  {
    -
    27125  1955 /*fromYear*/,
    -
    27126  1955 /*toYear*/,
    -
    27127  5 /*inMonth*/,
    -
    27128  0 /*onDayOfWeek*/,
    -
    27129  1 /*onDayOfMonth*/,
    -
    27130  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27131  0 /*atTimeCode (0/15)*/,
    -
    27132  60 /*deltaMinutes*/,
    -
    27133  13 /*letterIndex ("D")*/,
    -
    27134  },
    -
    27135  // Rule Vincennes 1956 1963 - Apr lastSun 2:00 1:00 D
    -
    27136  {
    -
    27137  1956 /*fromYear*/,
    -
    27138  1963 /*toYear*/,
    -
    27139  4 /*inMonth*/,
    -
    27140  7 /*onDayOfWeek*/,
    -
    27141  0 /*onDayOfMonth*/,
    -
    27142  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27143  480 /*atTimeCode (7200/15)*/,
    -
    27144  60 /*deltaMinutes*/,
    -
    27145  13 /*letterIndex ("D")*/,
    -
    27146  },
    -
    27147  // Rule Vincennes 1960 only - Oct lastSun 2:00 0 S
    -
    27148  {
    -
    27149  1960 /*fromYear*/,
    -
    27150  1960 /*toYear*/,
    -
    27151  10 /*inMonth*/,
    -
    27152  7 /*onDayOfWeek*/,
    -
    27153  0 /*onDayOfMonth*/,
    -
    27154  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27155  480 /*atTimeCode (7200/15)*/,
    -
    27156  0 /*deltaMinutes*/,
    -
    27157  25 /*letterIndex ("S")*/,
    -
    27158  },
    -
    27159  // Rule Vincennes 1961 only - Sep lastSun 2:00 0 S
    -
    27160  {
    -
    27161  1961 /*fromYear*/,
    -
    27162  1961 /*toYear*/,
    -
    27163  9 /*inMonth*/,
    -
    27164  7 /*onDayOfWeek*/,
    -
    27165  0 /*onDayOfMonth*/,
    -
    27166  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27167  480 /*atTimeCode (7200/15)*/,
    -
    27168  0 /*deltaMinutes*/,
    -
    27169  25 /*letterIndex ("S")*/,
    -
    27170  },
    -
    27171  // Rule Vincennes 1962 1963 - Oct lastSun 2:00 0 S
    -
    27172  {
    -
    27173  1962 /*fromYear*/,
    -
    27174  1963 /*toYear*/,
    -
    27175  10 /*inMonth*/,
    -
    27176  7 /*onDayOfWeek*/,
    -
    27177  0 /*onDayOfMonth*/,
    -
    27178  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27179  480 /*atTimeCode (7200/15)*/,
    -
    27180  0 /*deltaMinutes*/,
    -
    27181  25 /*letterIndex ("S")*/,
    -
    27182  },
    -
    27183 
    -
    27184 };
    -
    27185 
    -
    27186 const complete::Info::ZonePolicy kZonePolicyVincennes ACE_TIME_PROGMEM = {
    -
    27187  kZoneRulesVincennes /*rules*/,
    -
    27188  10 /*numRules*/,
    -
    27189 };
    -
    27190 
    -
    27191 //---------------------------------------------------------------------------
    -
    27192 // Policy name: W-Eur
    -
    27193 // Rules: 7
    -
    27194 //---------------------------------------------------------------------------
    -
    27195 
    -
    27196 static const complete::Info::ZoneRule kZoneRulesW_Eur[] ACE_TIME_PROGMEM = {
    -
    27197  // Anchor: Rule W-Eur 1977 only - Sep lastSun 1:00s 0 -
    -
    27198  {
    -
    27199  -32767 /*fromYear*/,
    -
    27200  -32767 /*toYear*/,
    -
    27201  1 /*inMonth*/,
    -
    27202  0 /*onDayOfWeek*/,
    -
    27203  1 /*onDayOfMonth*/,
    -
    27204  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27205  0 /*atTimeCode (0/15)*/,
    -
    27206  0 /*deltaMinutes*/,
    -
    27207  0 /*letterIndex ("")*/,
    -
    27208  },
    -
    27209  // Rule W-Eur 1977 1980 - Apr Sun>=1 1:00s 1:00 S
    -
    27210  {
    -
    27211  1977 /*fromYear*/,
    -
    27212  1980 /*toYear*/,
    -
    27213  4 /*inMonth*/,
    -
    27214  7 /*onDayOfWeek*/,
    -
    27215  1 /*onDayOfMonth*/,
    -
    27216  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27217  240 /*atTimeCode (3600/15)*/,
    -
    27218  60 /*deltaMinutes*/,
    -
    27219  25 /*letterIndex ("S")*/,
    -
    27220  },
    -
    27221  // Rule W-Eur 1977 only - Sep lastSun 1:00s 0 -
    -
    27222  {
    -
    27223  1977 /*fromYear*/,
    -
    27224  1977 /*toYear*/,
    -
    27225  9 /*inMonth*/,
    -
    27226  7 /*onDayOfWeek*/,
    -
    27227  0 /*onDayOfMonth*/,
    -
    27228  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27229  240 /*atTimeCode (3600/15)*/,
    -
    27230  0 /*deltaMinutes*/,
    -
    27231  0 /*letterIndex ("")*/,
    -
    27232  },
    -
    27233  // Rule W-Eur 1978 only - Oct 1 1:00s 0 -
    -
    27234  {
    -
    27235  1978 /*fromYear*/,
    -
    27236  1978 /*toYear*/,
    -
    27237  10 /*inMonth*/,
    -
    27238  0 /*onDayOfWeek*/,
    -
    27239  1 /*onDayOfMonth*/,
    -
    27240  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27241  240 /*atTimeCode (3600/15)*/,
    -
    27242  0 /*deltaMinutes*/,
    -
    27243  0 /*letterIndex ("")*/,
    -
    27244  },
    -
    27245  // Rule W-Eur 1979 1995 - Sep lastSun 1:00s 0 -
    -
    27246  {
    -
    27247  1979 /*fromYear*/,
    -
    27248  1995 /*toYear*/,
    -
    27249  9 /*inMonth*/,
    -
    27250  7 /*onDayOfWeek*/,
    -
    27251  0 /*onDayOfMonth*/,
    -
    27252  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27253  240 /*atTimeCode (3600/15)*/,
    -
    27254  0 /*deltaMinutes*/,
    -
    27255  0 /*letterIndex ("")*/,
    -
    27256  },
    -
    27257  // Rule W-Eur 1981 max - Mar lastSun 1:00s 1:00 S
    -
    27258  {
    -
    27259  1981 /*fromYear*/,
    -
    27260  32766 /*toYear*/,
    -
    27261  3 /*inMonth*/,
    -
    27262  7 /*onDayOfWeek*/,
    -
    27263  0 /*onDayOfMonth*/,
    -
    27264  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27265  240 /*atTimeCode (3600/15)*/,
    -
    27266  60 /*deltaMinutes*/,
    -
    27267  25 /*letterIndex ("S")*/,
    -
    27268  },
    -
    27269  // Rule W-Eur 1996 max - Oct lastSun 1:00s 0 -
    -
    27270  {
    -
    27271  1996 /*fromYear*/,
    -
    27272  32766 /*toYear*/,
    -
    27273  10 /*inMonth*/,
    -
    27274  7 /*onDayOfWeek*/,
    -
    27275  0 /*onDayOfMonth*/,
    -
    27276  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27277  240 /*atTimeCode (3600/15)*/,
    -
    27278  0 /*deltaMinutes*/,
    -
    27279  0 /*letterIndex ("")*/,
    -
    27280  },
    -
    27281 
    -
    27282 };
    -
    27283 
    -
    27284 const complete::Info::ZonePolicy kZonePolicyW_Eur ACE_TIME_PROGMEM = {
    -
    27285  kZoneRulesW_Eur /*rules*/,
    -
    27286  7 /*numRules*/,
    -
    27287 };
    -
    27288 
    -
    27289 //---------------------------------------------------------------------------
    -
    27290 // Policy name: WS
    -
    27291 // Rules: 6
    -
    27292 //---------------------------------------------------------------------------
    -
    27293 
    -
    27294 static const complete::Info::ZoneRule kZoneRulesWS[] ACE_TIME_PROGMEM = {
    -
    27295  // Anchor: Rule WS 2011 only - Apr Sat>=1 4:00 0 -
    -
    27296  {
    -
    27297  -32767 /*fromYear*/,
    -
    27298  -32767 /*toYear*/,
    -
    27299  1 /*inMonth*/,
    -
    27300  0 /*onDayOfWeek*/,
    -
    27301  1 /*onDayOfMonth*/,
    -
    27302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27303  0 /*atTimeCode (0/15)*/,
    -
    27304  0 /*deltaMinutes*/,
    -
    27305  0 /*letterIndex ("")*/,
    -
    27306  },
    -
    27307  // Rule WS 2010 only - Sep lastSun 0:00 1 -
    -
    27308  {
    -
    27309  2010 /*fromYear*/,
    -
    27310  2010 /*toYear*/,
    -
    27311  9 /*inMonth*/,
    -
    27312  7 /*onDayOfWeek*/,
    -
    27313  0 /*onDayOfMonth*/,
    -
    27314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27315  0 /*atTimeCode (0/15)*/,
    -
    27316  60 /*deltaMinutes*/,
    -
    27317  0 /*letterIndex ("")*/,
    -
    27318  },
    -
    27319  // Rule WS 2011 only - Apr Sat>=1 4:00 0 -
    -
    27320  {
    -
    27321  2011 /*fromYear*/,
    -
    27322  2011 /*toYear*/,
    -
    27323  4 /*inMonth*/,
    -
    27324  6 /*onDayOfWeek*/,
    -
    27325  1 /*onDayOfMonth*/,
    -
    27326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27327  960 /*atTimeCode (14400/15)*/,
    -
    27328  0 /*deltaMinutes*/,
    -
    27329  0 /*letterIndex ("")*/,
    -
    27330  },
    -
    27331  // Rule WS 2011 only - Sep lastSat 3:00 1 -
    -
    27332  {
    -
    27333  2011 /*fromYear*/,
    -
    27334  2011 /*toYear*/,
    -
    27335  9 /*inMonth*/,
    -
    27336  6 /*onDayOfWeek*/,
    -
    27337  0 /*onDayOfMonth*/,
    -
    27338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27339  720 /*atTimeCode (10800/15)*/,
    -
    27340  60 /*deltaMinutes*/,
    -
    27341  0 /*letterIndex ("")*/,
    -
    27342  },
    -
    27343  // Rule WS 2012 2021 - Apr Sun>=1 4:00 0 -
    -
    27344  {
    -
    27345  2012 /*fromYear*/,
    -
    27346  2021 /*toYear*/,
    -
    27347  4 /*inMonth*/,
    -
    27348  7 /*onDayOfWeek*/,
    -
    27349  1 /*onDayOfMonth*/,
    -
    27350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27351  960 /*atTimeCode (14400/15)*/,
    -
    27352  0 /*deltaMinutes*/,
    -
    27353  0 /*letterIndex ("")*/,
    -
    27354  },
    -
    27355  // Rule WS 2012 2020 - Sep lastSun 3:00 1 -
    -
    27356  {
    -
    27357  2012 /*fromYear*/,
    -
    27358  2020 /*toYear*/,
    -
    27359  9 /*inMonth*/,
    -
    27360  7 /*onDayOfWeek*/,
    -
    27361  0 /*onDayOfMonth*/,
    -
    27362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27363  720 /*atTimeCode (10800/15)*/,
    -
    27364  60 /*deltaMinutes*/,
    -
    27365  0 /*letterIndex ("")*/,
    -
    27366  },
    -
    27367 
    -
    27368 };
    -
    27369 
    -
    27370 const complete::Info::ZonePolicy kZonePolicyWS ACE_TIME_PROGMEM = {
    -
    27371  kZoneRulesWS /*rules*/,
    -
    27372  6 /*numRules*/,
    -
    27373 };
    -
    27374 
    -
    27375 //---------------------------------------------------------------------------
    -
    27376 // Policy name: Winn
    -
    27377 // Rules: 25
    -
    27378 //---------------------------------------------------------------------------
    -
    27379 
    -
    27380 static const complete::Info::ZoneRule kZoneRulesWinn[] ACE_TIME_PROGMEM = {
    -
    27381  // Anchor: Rule Winn 1916 only - Sep 17 0:00 0 S
    -
    27382  {
    -
    27383  -32767 /*fromYear*/,
    -
    27384  -32767 /*toYear*/,
    -
    27385  1 /*inMonth*/,
    -
    27386  0 /*onDayOfWeek*/,
    -
    27387  1 /*onDayOfMonth*/,
    -
    27388  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27389  0 /*atTimeCode (0/15)*/,
    -
    27390  0 /*deltaMinutes*/,
    -
    27391  25 /*letterIndex ("S")*/,
    -
    27392  },
    -
    27393  // Rule Winn 1916 only - Apr 23 0:00 1:00 D
    -
    27394  {
    -
    27395  1916 /*fromYear*/,
    -
    27396  1916 /*toYear*/,
    -
    27397  4 /*inMonth*/,
    -
    27398  0 /*onDayOfWeek*/,
    -
    27399  23 /*onDayOfMonth*/,
    -
    27400  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27401  0 /*atTimeCode (0/15)*/,
    -
    27402  60 /*deltaMinutes*/,
    -
    27403  13 /*letterIndex ("D")*/,
    -
    27404  },
    -
    27405  // Rule Winn 1916 only - Sep 17 0:00 0 S
    -
    27406  {
    -
    27407  1916 /*fromYear*/,
    -
    27408  1916 /*toYear*/,
    -
    27409  9 /*inMonth*/,
    -
    27410  0 /*onDayOfWeek*/,
    -
    27411  17 /*onDayOfMonth*/,
    -
    27412  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27413  0 /*atTimeCode (0/15)*/,
    -
    27414  0 /*deltaMinutes*/,
    -
    27415  25 /*letterIndex ("S")*/,
    -
    27416  },
    -
    27417  // Rule Winn 1918 only - Apr 14 2:00 1:00 D
    -
    27418  {
    -
    27419  1918 /*fromYear*/,
    -
    27420  1918 /*toYear*/,
    -
    27421  4 /*inMonth*/,
    -
    27422  0 /*onDayOfWeek*/,
    -
    27423  14 /*onDayOfMonth*/,
    -
    27424  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27425  480 /*atTimeCode (7200/15)*/,
    -
    27426  60 /*deltaMinutes*/,
    -
    27427  13 /*letterIndex ("D")*/,
    -
    27428  },
    -
    27429  // Rule Winn 1918 only - Oct 27 2:00 0 S
    -
    27430  {
    -
    27431  1918 /*fromYear*/,
    -
    27432  1918 /*toYear*/,
    -
    27433  10 /*inMonth*/,
    -
    27434  0 /*onDayOfWeek*/,
    -
    27435  27 /*onDayOfMonth*/,
    -
    27436  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27437  480 /*atTimeCode (7200/15)*/,
    -
    27438  0 /*deltaMinutes*/,
    -
    27439  25 /*letterIndex ("S")*/,
    -
    27440  },
    -
    27441  // Rule Winn 1937 only - May 16 2:00 1:00 D
    -
    27442  {
    -
    27443  1937 /*fromYear*/,
    -
    27444  1937 /*toYear*/,
    -
    27445  5 /*inMonth*/,
    -
    27446  0 /*onDayOfWeek*/,
    -
    27447  16 /*onDayOfMonth*/,
    -
    27448  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27449  480 /*atTimeCode (7200/15)*/,
    -
    27450  60 /*deltaMinutes*/,
    -
    27451  13 /*letterIndex ("D")*/,
    -
    27452  },
    -
    27453  // Rule Winn 1937 only - Sep 26 2:00 0 S
    -
    27454  {
    -
    27455  1937 /*fromYear*/,
    -
    27456  1937 /*toYear*/,
    -
    27457  9 /*inMonth*/,
    -
    27458  0 /*onDayOfWeek*/,
    -
    27459  26 /*onDayOfMonth*/,
    -
    27460  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27461  480 /*atTimeCode (7200/15)*/,
    -
    27462  0 /*deltaMinutes*/,
    -
    27463  25 /*letterIndex ("S")*/,
    -
    27464  },
    -
    27465  // Rule Winn 1942 only - Feb 9 2:00 1:00 W
    -
    27466  {
    -
    27467  1942 /*fromYear*/,
    -
    27468  1942 /*toYear*/,
    -
    27469  2 /*inMonth*/,
    -
    27470  0 /*onDayOfWeek*/,
    -
    27471  9 /*onDayOfMonth*/,
    -
    27472  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27473  480 /*atTimeCode (7200/15)*/,
    -
    27474  60 /*deltaMinutes*/,
    -
    27475  26 /*letterIndex ("W")*/,
    -
    27476  },
    -
    27477  // Rule Winn 1945 only - Aug 14 23:00u 1:00 P
    -
    27478  {
    -
    27479  1945 /*fromYear*/,
    -
    27480  1945 /*toYear*/,
    -
    27481  8 /*inMonth*/,
    -
    27482  0 /*onDayOfWeek*/,
    -
    27483  14 /*onDayOfMonth*/,
    -
    27484  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27485  5520 /*atTimeCode (82800/15)*/,
    -
    27486  60 /*deltaMinutes*/,
    -
    27487  24 /*letterIndex ("P")*/,
    -
    27488  },
    -
    27489  // Rule Winn 1945 only - Sep lastSun 2:00 0 S
    -
    27490  {
    -
    27491  1945 /*fromYear*/,
    -
    27492  1945 /*toYear*/,
    -
    27493  9 /*inMonth*/,
    -
    27494  7 /*onDayOfWeek*/,
    -
    27495  0 /*onDayOfMonth*/,
    -
    27496  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27497  480 /*atTimeCode (7200/15)*/,
    -
    27498  0 /*deltaMinutes*/,
    -
    27499  25 /*letterIndex ("S")*/,
    -
    27500  },
    -
    27501  // Rule Winn 1946 only - May 12 2:00 1:00 D
    -
    27502  {
    -
    27503  1946 /*fromYear*/,
    -
    27504  1946 /*toYear*/,
    -
    27505  5 /*inMonth*/,
    -
    27506  0 /*onDayOfWeek*/,
    -
    27507  12 /*onDayOfMonth*/,
    -
    27508  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27509  480 /*atTimeCode (7200/15)*/,
    -
    27510  60 /*deltaMinutes*/,
    -
    27511  13 /*letterIndex ("D")*/,
    -
    27512  },
    -
    27513  // Rule Winn 1946 only - Oct 13 2:00 0 S
    -
    27514  {
    -
    27515  1946 /*fromYear*/,
    -
    27516  1946 /*toYear*/,
    -
    27517  10 /*inMonth*/,
    -
    27518  0 /*onDayOfWeek*/,
    -
    27519  13 /*onDayOfMonth*/,
    -
    27520  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27521  480 /*atTimeCode (7200/15)*/,
    -
    27522  0 /*deltaMinutes*/,
    -
    27523  25 /*letterIndex ("S")*/,
    -
    27524  },
    -
    27525  // Rule Winn 1947 1949 - Apr lastSun 2:00 1:00 D
    -
    27526  {
    -
    27527  1947 /*fromYear*/,
    -
    27528  1949 /*toYear*/,
    -
    27529  4 /*inMonth*/,
    -
    27530  7 /*onDayOfWeek*/,
    -
    27531  0 /*onDayOfMonth*/,
    -
    27532  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27533  480 /*atTimeCode (7200/15)*/,
    -
    27534  60 /*deltaMinutes*/,
    -
    27535  13 /*letterIndex ("D")*/,
    -
    27536  },
    -
    27537  // Rule Winn 1947 1949 - Sep lastSun 2:00 0 S
    -
    27538  {
    -
    27539  1947 /*fromYear*/,
    -
    27540  1949 /*toYear*/,
    -
    27541  9 /*inMonth*/,
    -
    27542  7 /*onDayOfWeek*/,
    -
    27543  0 /*onDayOfMonth*/,
    -
    27544  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27545  480 /*atTimeCode (7200/15)*/,
    -
    27546  0 /*deltaMinutes*/,
    -
    27547  25 /*letterIndex ("S")*/,
    -
    27548  },
    -
    27549  // Rule Winn 1950 only - May 1 2:00 1:00 D
    -
    27550  {
    -
    27551  1950 /*fromYear*/,
    -
    27552  1950 /*toYear*/,
    -
    27553  5 /*inMonth*/,
    -
    27554  0 /*onDayOfWeek*/,
    -
    27555  1 /*onDayOfMonth*/,
    -
    27556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27557  480 /*atTimeCode (7200/15)*/,
    -
    27558  60 /*deltaMinutes*/,
    -
    27559  13 /*letterIndex ("D")*/,
    -
    27560  },
    -
    27561  // Rule Winn 1950 only - Sep 30 2:00 0 S
    -
    27562  {
    -
    27563  1950 /*fromYear*/,
    -
    27564  1950 /*toYear*/,
    -
    27565  9 /*inMonth*/,
    -
    27566  0 /*onDayOfWeek*/,
    -
    27567  30 /*onDayOfMonth*/,
    -
    27568  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27569  480 /*atTimeCode (7200/15)*/,
    -
    27570  0 /*deltaMinutes*/,
    -
    27571  25 /*letterIndex ("S")*/,
    -
    27572  },
    -
    27573  // Rule Winn 1951 1960 - Apr lastSun 2:00 1:00 D
    -
    27574  {
    -
    27575  1951 /*fromYear*/,
    -
    27576  1960 /*toYear*/,
    -
    27577  4 /*inMonth*/,
    -
    27578  7 /*onDayOfWeek*/,
    -
    27579  0 /*onDayOfMonth*/,
    -
    27580  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27581  480 /*atTimeCode (7200/15)*/,
    -
    27582  60 /*deltaMinutes*/,
    -
    27583  13 /*letterIndex ("D")*/,
    -
    27584  },
    -
    27585  // Rule Winn 1951 1958 - Sep lastSun 2:00 0 S
    -
    27586  {
    -
    27587  1951 /*fromYear*/,
    -
    27588  1958 /*toYear*/,
    -
    27589  9 /*inMonth*/,
    -
    27590  7 /*onDayOfWeek*/,
    -
    27591  0 /*onDayOfMonth*/,
    -
    27592  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27593  480 /*atTimeCode (7200/15)*/,
    -
    27594  0 /*deltaMinutes*/,
    -
    27595  25 /*letterIndex ("S")*/,
    -
    27596  },
    -
    27597  // Rule Winn 1959 only - Oct lastSun 2:00 0 S
    -
    27598  {
    -
    27599  1959 /*fromYear*/,
    -
    27600  1959 /*toYear*/,
    -
    27601  10 /*inMonth*/,
    -
    27602  7 /*onDayOfWeek*/,
    -
    27603  0 /*onDayOfMonth*/,
    -
    27604  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27605  480 /*atTimeCode (7200/15)*/,
    -
    27606  0 /*deltaMinutes*/,
    -
    27607  25 /*letterIndex ("S")*/,
    -
    27608  },
    -
    27609  // Rule Winn 1960 only - Sep lastSun 2:00 0 S
    -
    27610  {
    -
    27611  1960 /*fromYear*/,
    -
    27612  1960 /*toYear*/,
    -
    27613  9 /*inMonth*/,
    -
    27614  7 /*onDayOfWeek*/,
    -
    27615  0 /*onDayOfMonth*/,
    -
    27616  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27617  480 /*atTimeCode (7200/15)*/,
    -
    27618  0 /*deltaMinutes*/,
    -
    27619  25 /*letterIndex ("S")*/,
    -
    27620  },
    -
    27621  // Rule Winn 1963 only - Apr lastSun 2:00 1:00 D
    -
    27622  {
    -
    27623  1963 /*fromYear*/,
    -
    27624  1963 /*toYear*/,
    -
    27625  4 /*inMonth*/,
    -
    27626  7 /*onDayOfWeek*/,
    -
    27627  0 /*onDayOfMonth*/,
    -
    27628  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27629  480 /*atTimeCode (7200/15)*/,
    -
    27630  60 /*deltaMinutes*/,
    -
    27631  13 /*letterIndex ("D")*/,
    -
    27632  },
    -
    27633  // Rule Winn 1963 only - Sep 22 2:00 0 S
    -
    27634  {
    -
    27635  1963 /*fromYear*/,
    -
    27636  1963 /*toYear*/,
    -
    27637  9 /*inMonth*/,
    -
    27638  0 /*onDayOfWeek*/,
    -
    27639  22 /*onDayOfMonth*/,
    -
    27640  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27641  480 /*atTimeCode (7200/15)*/,
    -
    27642  0 /*deltaMinutes*/,
    -
    27643  25 /*letterIndex ("S")*/,
    -
    27644  },
    -
    27645  // Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D
    -
    27646  {
    -
    27647  1966 /*fromYear*/,
    -
    27648  1986 /*toYear*/,
    -
    27649  4 /*inMonth*/,
    -
    27650  7 /*onDayOfWeek*/,
    -
    27651  0 /*onDayOfMonth*/,
    -
    27652  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27653  480 /*atTimeCode (7200/15)*/,
    -
    27654  60 /*deltaMinutes*/,
    -
    27655  13 /*letterIndex ("D")*/,
    -
    27656  },
    -
    27657  // Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
    -
    27658  {
    -
    27659  1966 /*fromYear*/,
    -
    27660  2005 /*toYear*/,
    -
    27661  10 /*inMonth*/,
    -
    27662  7 /*onDayOfWeek*/,
    -
    27663  0 /*onDayOfMonth*/,
    -
    27664  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27665  480 /*atTimeCode (7200/15)*/,
    -
    27666  0 /*deltaMinutes*/,
    -
    27667  25 /*letterIndex ("S")*/,
    -
    27668  },
    -
    27669  // Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D
    -
    27670  {
    -
    27671  1987 /*fromYear*/,
    -
    27672  2005 /*toYear*/,
    -
    27673  4 /*inMonth*/,
    -
    27674  7 /*onDayOfWeek*/,
    -
    27675  1 /*onDayOfMonth*/,
    -
    27676  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    27677  480 /*atTimeCode (7200/15)*/,
    -
    27678  60 /*deltaMinutes*/,
    -
    27679  13 /*letterIndex ("D")*/,
    -
    27680  },
    -
    27681 
    -
    27682 };
    -
    27683 
    -
    27684 const complete::Info::ZonePolicy kZonePolicyWinn ACE_TIME_PROGMEM = {
    -
    27685  kZoneRulesWinn /*rules*/,
    -
    27686  25 /*numRules*/,
    -
    27687 };
    -
    27688 
    -
    27689 //---------------------------------------------------------------------------
    -
    27690 // Policy name: Yukon
    -
    27691 // Rules: 3
    -
    27692 //---------------------------------------------------------------------------
    -
    27693 
    -
    27694 static const complete::Info::ZoneRule kZoneRulesYukon[] ACE_TIME_PROGMEM = {
    -
    27695  // Anchor: Rule Yukon 1965 only - Oct lastSun 2:00 0 S
    -
    27696  {
    -
    27697  -32767 /*fromYear*/,
    -
    27698  -32767 /*toYear*/,
    -
    27699  1 /*inMonth*/,
    -
    27700  0 /*onDayOfWeek*/,
    -
    27701  1 /*onDayOfMonth*/,
    -
    27702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27703  0 /*atTimeCode (0/15)*/,
    -
    27704  0 /*deltaMinutes*/,
    -
    27705  25 /*letterIndex ("S")*/,
    -
    27706  },
    -
    27707  // Rule Yukon 1965 only - Apr lastSun 0:00 2:00 DD
    -
    27708  {
    -
    27709  1965 /*fromYear*/,
    -
    27710  1965 /*toYear*/,
    -
    27711  4 /*inMonth*/,
    -
    27712  7 /*onDayOfWeek*/,
    -
    27713  0 /*onDayOfMonth*/,
    -
    27714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27715  0 /*atTimeCode (0/15)*/,
    -
    27716  120 /*deltaMinutes*/,
    -
    27717  14 /*letterIndex ("DD")*/,
    -
    27718  },
    -
    27719  // Rule Yukon 1965 only - Oct lastSun 2:00 0 S
    -
    27720  {
    -
    27721  1965 /*fromYear*/,
    -
    27722  1965 /*toYear*/,
    -
    27723  10 /*inMonth*/,
    -
    27724  7 /*onDayOfWeek*/,
    -
    27725  0 /*onDayOfMonth*/,
    -
    27726  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27727  480 /*atTimeCode (7200/15)*/,
    -
    27728  0 /*deltaMinutes*/,
    -
    27729  25 /*letterIndex ("S")*/,
    -
    27730  },
    -
    27731 
    -
    27732 };
    -
    27733 
    -
    27734 const complete::Info::ZonePolicy kZonePolicyYukon ACE_TIME_PROGMEM = {
    -
    27735  kZoneRulesYukon /*rules*/,
    -
    27736  3 /*numRules*/,
    -
    27737 };
    -
    27738 
    -
    27739 //---------------------------------------------------------------------------
    -
    27740 // Policy name: Zion
    -
    27741 // Rules: 86
    -
    27742 //---------------------------------------------------------------------------
    -
    27743 
    -
    27744 static const complete::Info::ZoneRule kZoneRulesZion[] ACE_TIME_PROGMEM = {
    -
    27745  // Anchor: Rule Zion 1940 only - Sep 30 24:00u 0 S
    -
    27746  {
    -
    27747  -32767 /*fromYear*/,
    -
    27748  -32767 /*toYear*/,
    -
    27749  1 /*inMonth*/,
    -
    27750  0 /*onDayOfWeek*/,
    -
    27751  1 /*onDayOfMonth*/,
    -
    27752  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    27753  0 /*atTimeCode (0/15)*/,
    -
    27754  0 /*deltaMinutes*/,
    -
    27755  25 /*letterIndex ("S")*/,
    -
    27756  },
    -
    27757  // Rule Zion 1940 only - May 31 24:00u 1:00 D
    -
    27758  {
    -
    27759  1940 /*fromYear*/,
    -
    27760  1940 /*toYear*/,
    -
    27761  5 /*inMonth*/,
    -
    27762  0 /*onDayOfWeek*/,
    -
    27763  31 /*onDayOfMonth*/,
    -
    27764  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27765  5760 /*atTimeCode (86400/15)*/,
    -
    27766  60 /*deltaMinutes*/,
    -
    27767  13 /*letterIndex ("D")*/,
    -
    27768  },
    -
    27769  // Rule Zion 1940 only - Sep 30 24:00u 0 S
    -
    27770  {
    -
    27771  1940 /*fromYear*/,
    -
    27772  1940 /*toYear*/,
    -
    27773  9 /*inMonth*/,
    -
    27774  0 /*onDayOfWeek*/,
    -
    27775  30 /*onDayOfMonth*/,
    -
    27776  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27777  5760 /*atTimeCode (86400/15)*/,
    -
    27778  0 /*deltaMinutes*/,
    -
    27779  25 /*letterIndex ("S")*/,
    -
    27780  },
    -
    27781  // Rule Zion 1940 only - Nov 16 24:00u 1:00 D
    -
    27782  {
    -
    27783  1940 /*fromYear*/,
    -
    27784  1940 /*toYear*/,
    -
    27785  11 /*inMonth*/,
    -
    27786  0 /*onDayOfWeek*/,
    -
    27787  16 /*onDayOfMonth*/,
    -
    27788  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27789  5760 /*atTimeCode (86400/15)*/,
    -
    27790  60 /*deltaMinutes*/,
    -
    27791  13 /*letterIndex ("D")*/,
    -
    27792  },
    -
    27793  // Rule Zion 1942 1946 - Oct 31 24:00u 0 S
    -
    27794  {
    -
    27795  1942 /*fromYear*/,
    -
    27796  1946 /*toYear*/,
    -
    27797  10 /*inMonth*/,
    -
    27798  0 /*onDayOfWeek*/,
    -
    27799  31 /*onDayOfMonth*/,
    -
    27800  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27801  5760 /*atTimeCode (86400/15)*/,
    -
    27802  0 /*deltaMinutes*/,
    -
    27803  25 /*letterIndex ("S")*/,
    -
    27804  },
    -
    27805  // Rule Zion 1943 1944 - Mar 31 24:00u 1:00 D
    -
    27806  {
    -
    27807  1943 /*fromYear*/,
    -
    27808  1944 /*toYear*/,
    -
    27809  3 /*inMonth*/,
    -
    27810  0 /*onDayOfWeek*/,
    -
    27811  31 /*onDayOfMonth*/,
    -
    27812  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27813  5760 /*atTimeCode (86400/15)*/,
    -
    27814  60 /*deltaMinutes*/,
    -
    27815  13 /*letterIndex ("D")*/,
    -
    27816  },
    -
    27817  // Rule Zion 1945 1946 - Apr 15 24:00u 1:00 D
    -
    27818  {
    -
    27819  1945 /*fromYear*/,
    -
    27820  1946 /*toYear*/,
    -
    27821  4 /*inMonth*/,
    -
    27822  0 /*onDayOfWeek*/,
    -
    27823  15 /*onDayOfMonth*/,
    -
    27824  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27825  5760 /*atTimeCode (86400/15)*/,
    -
    27826  60 /*deltaMinutes*/,
    -
    27827  13 /*letterIndex ("D")*/,
    -
    27828  },
    -
    27829  // Rule Zion 1948 only - May 22 24:00u 2:00 DD
    -
    27830  {
    -
    27831  1948 /*fromYear*/,
    -
    27832  1948 /*toYear*/,
    -
    27833  5 /*inMonth*/,
    -
    27834  0 /*onDayOfWeek*/,
    -
    27835  22 /*onDayOfMonth*/,
    -
    27836  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27837  5760 /*atTimeCode (86400/15)*/,
    -
    27838  120 /*deltaMinutes*/,
    -
    27839  14 /*letterIndex ("DD")*/,
    -
    27840  },
    -
    27841  // Rule Zion 1948 only - Aug 31 24:00u 1:00 D
    -
    27842  {
    -
    27843  1948 /*fromYear*/,
    -
    27844  1948 /*toYear*/,
    -
    27845  8 /*inMonth*/,
    -
    27846  0 /*onDayOfWeek*/,
    -
    27847  31 /*onDayOfMonth*/,
    -
    27848  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27849  5760 /*atTimeCode (86400/15)*/,
    -
    27850  60 /*deltaMinutes*/,
    -
    27851  13 /*letterIndex ("D")*/,
    -
    27852  },
    -
    27853  // Rule Zion 1948 1949 - Oct 31 24:00u 0 S
    -
    27854  {
    -
    27855  1948 /*fromYear*/,
    -
    27856  1949 /*toYear*/,
    -
    27857  10 /*inMonth*/,
    -
    27858  0 /*onDayOfWeek*/,
    -
    27859  31 /*onDayOfMonth*/,
    -
    27860  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27861  5760 /*atTimeCode (86400/15)*/,
    -
    27862  0 /*deltaMinutes*/,
    -
    27863  25 /*letterIndex ("S")*/,
    -
    27864  },
    -
    27865  // Rule Zion 1949 only - Apr 30 24:00u 1:00 D
    -
    27866  {
    -
    27867  1949 /*fromYear*/,
    -
    27868  1949 /*toYear*/,
    -
    27869  4 /*inMonth*/,
    -
    27870  0 /*onDayOfWeek*/,
    -
    27871  30 /*onDayOfMonth*/,
    -
    27872  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27873  5760 /*atTimeCode (86400/15)*/,
    -
    27874  60 /*deltaMinutes*/,
    -
    27875  13 /*letterIndex ("D")*/,
    -
    27876  },
    -
    27877  // Rule Zion 1950 only - Apr 15 24:00u 1:00 D
    -
    27878  {
    -
    27879  1950 /*fromYear*/,
    -
    27880  1950 /*toYear*/,
    -
    27881  4 /*inMonth*/,
    -
    27882  0 /*onDayOfWeek*/,
    -
    27883  15 /*onDayOfMonth*/,
    -
    27884  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27885  5760 /*atTimeCode (86400/15)*/,
    -
    27886  60 /*deltaMinutes*/,
    -
    27887  13 /*letterIndex ("D")*/,
    -
    27888  },
    -
    27889  // Rule Zion 1950 only - Sep 14 24:00u 0 S
    -
    27890  {
    -
    27891  1950 /*fromYear*/,
    -
    27892  1950 /*toYear*/,
    -
    27893  9 /*inMonth*/,
    -
    27894  0 /*onDayOfWeek*/,
    -
    27895  14 /*onDayOfMonth*/,
    -
    27896  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27897  5760 /*atTimeCode (86400/15)*/,
    -
    27898  0 /*deltaMinutes*/,
    -
    27899  25 /*letterIndex ("S")*/,
    -
    27900  },
    -
    27901  // Rule Zion 1951 only - Mar 31 24:00u 1:00 D
    -
    27902  {
    -
    27903  1951 /*fromYear*/,
    -
    27904  1951 /*toYear*/,
    -
    27905  3 /*inMonth*/,
    -
    27906  0 /*onDayOfWeek*/,
    -
    27907  31 /*onDayOfMonth*/,
    -
    27908  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27909  5760 /*atTimeCode (86400/15)*/,
    -
    27910  60 /*deltaMinutes*/,
    -
    27911  13 /*letterIndex ("D")*/,
    -
    27912  },
    -
    27913  // Rule Zion 1951 only - Nov 10 24:00u 0 S
    -
    27914  {
    -
    27915  1951 /*fromYear*/,
    -
    27916  1951 /*toYear*/,
    -
    27917  11 /*inMonth*/,
    -
    27918  0 /*onDayOfWeek*/,
    -
    27919  10 /*onDayOfMonth*/,
    -
    27920  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27921  5760 /*atTimeCode (86400/15)*/,
    -
    27922  0 /*deltaMinutes*/,
    -
    27923  25 /*letterIndex ("S")*/,
    -
    27924  },
    -
    27925  // Rule Zion 1952 only - Apr 19 24:00u 1:00 D
    -
    27926  {
    -
    27927  1952 /*fromYear*/,
    -
    27928  1952 /*toYear*/,
    -
    27929  4 /*inMonth*/,
    -
    27930  0 /*onDayOfWeek*/,
    -
    27931  19 /*onDayOfMonth*/,
    -
    27932  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27933  5760 /*atTimeCode (86400/15)*/,
    -
    27934  60 /*deltaMinutes*/,
    -
    27935  13 /*letterIndex ("D")*/,
    -
    27936  },
    -
    27937  // Rule Zion 1952 only - Oct 18 24:00u 0 S
    -
    27938  {
    -
    27939  1952 /*fromYear*/,
    -
    27940  1952 /*toYear*/,
    -
    27941  10 /*inMonth*/,
    -
    27942  0 /*onDayOfWeek*/,
    -
    27943  18 /*onDayOfMonth*/,
    -
    27944  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27945  5760 /*atTimeCode (86400/15)*/,
    -
    27946  0 /*deltaMinutes*/,
    -
    27947  25 /*letterIndex ("S")*/,
    -
    27948  },
    -
    27949  // Rule Zion 1953 only - Apr 11 24:00u 1:00 D
    -
    27950  {
    -
    27951  1953 /*fromYear*/,
    -
    27952  1953 /*toYear*/,
    -
    27953  4 /*inMonth*/,
    -
    27954  0 /*onDayOfWeek*/,
    -
    27955  11 /*onDayOfMonth*/,
    -
    27956  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27957  5760 /*atTimeCode (86400/15)*/,
    -
    27958  60 /*deltaMinutes*/,
    -
    27959  13 /*letterIndex ("D")*/,
    -
    27960  },
    -
    27961  // Rule Zion 1953 only - Sep 12 24:00u 0 S
    -
    27962  {
    -
    27963  1953 /*fromYear*/,
    -
    27964  1953 /*toYear*/,
    -
    27965  9 /*inMonth*/,
    -
    27966  0 /*onDayOfWeek*/,
    -
    27967  12 /*onDayOfMonth*/,
    -
    27968  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27969  5760 /*atTimeCode (86400/15)*/,
    -
    27970  0 /*deltaMinutes*/,
    -
    27971  25 /*letterIndex ("S")*/,
    -
    27972  },
    -
    27973  // Rule Zion 1954 only - Jun 12 24:00u 1:00 D
    -
    27974  {
    -
    27975  1954 /*fromYear*/,
    -
    27976  1954 /*toYear*/,
    -
    27977  6 /*inMonth*/,
    -
    27978  0 /*onDayOfWeek*/,
    -
    27979  12 /*onDayOfMonth*/,
    -
    27980  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27981  5760 /*atTimeCode (86400/15)*/,
    -
    27982  60 /*deltaMinutes*/,
    -
    27983  13 /*letterIndex ("D")*/,
    -
    27984  },
    -
    27985  // Rule Zion 1954 only - Sep 11 24:00u 0 S
    -
    27986  {
    -
    27987  1954 /*fromYear*/,
    -
    27988  1954 /*toYear*/,
    -
    27989  9 /*inMonth*/,
    -
    27990  0 /*onDayOfWeek*/,
    -
    27991  11 /*onDayOfMonth*/,
    -
    27992  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    27993  5760 /*atTimeCode (86400/15)*/,
    -
    27994  0 /*deltaMinutes*/,
    -
    27995  25 /*letterIndex ("S")*/,
    -
    27996  },
    -
    27997  // Rule Zion 1955 only - Jun 11 24:00u 1:00 D
    -
    27998  {
    -
    27999  1955 /*fromYear*/,
    -
    28000  1955 /*toYear*/,
    -
    28001  6 /*inMonth*/,
    -
    28002  0 /*onDayOfWeek*/,
    -
    28003  11 /*onDayOfMonth*/,
    -
    28004  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    28005  5760 /*atTimeCode (86400/15)*/,
    -
    28006  60 /*deltaMinutes*/,
    -
    28007  13 /*letterIndex ("D")*/,
    -
    28008  },
    -
    28009  // Rule Zion 1955 only - Sep 10 24:00u 0 S
    -
    28010  {
    -
    28011  1955 /*fromYear*/,
    -
    28012  1955 /*toYear*/,
    -
    28013  9 /*inMonth*/,
    -
    28014  0 /*onDayOfWeek*/,
    -
    28015  10 /*onDayOfMonth*/,
    -
    28016  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    28017  5760 /*atTimeCode (86400/15)*/,
    -
    28018  0 /*deltaMinutes*/,
    -
    28019  25 /*letterIndex ("S")*/,
    -
    28020  },
    -
    28021  // Rule Zion 1956 only - Jun 2 24:00u 1:00 D
    -
    28022  {
    -
    28023  1956 /*fromYear*/,
    -
    28024  1956 /*toYear*/,
    -
    28025  6 /*inMonth*/,
    -
    28026  0 /*onDayOfWeek*/,
    -
    28027  2 /*onDayOfMonth*/,
    -
    28028  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    28029  5760 /*atTimeCode (86400/15)*/,
    -
    28030  60 /*deltaMinutes*/,
    -
    28031  13 /*letterIndex ("D")*/,
    -
    28032  },
    -
    28033  // Rule Zion 1956 only - Sep 29 24:00u 0 S
    -
    28034  {
    -
    28035  1956 /*fromYear*/,
    -
    28036  1956 /*toYear*/,
    -
    28037  9 /*inMonth*/,
    -
    28038  0 /*onDayOfWeek*/,
    -
    28039  29 /*onDayOfMonth*/,
    -
    28040  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    28041  5760 /*atTimeCode (86400/15)*/,
    -
    28042  0 /*deltaMinutes*/,
    -
    28043  25 /*letterIndex ("S")*/,
    -
    28044  },
    -
    28045  // Rule Zion 1957 only - Apr 27 24:00u 1:00 D
    -
    28046  {
    -
    28047  1957 /*fromYear*/,
    -
    28048  1957 /*toYear*/,
    -
    28049  4 /*inMonth*/,
    -
    28050  0 /*onDayOfWeek*/,
    -
    28051  27 /*onDayOfMonth*/,
    -
    28052  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    28053  5760 /*atTimeCode (86400/15)*/,
    -
    28054  60 /*deltaMinutes*/,
    -
    28055  13 /*letterIndex ("D")*/,
    -
    28056  },
    -
    28057  // Rule Zion 1957 only - Sep 21 24:00u 0 S
    -
    28058  {
    -
    28059  1957 /*fromYear*/,
    -
    28060  1957 /*toYear*/,
    -
    28061  9 /*inMonth*/,
    -
    28062  0 /*onDayOfWeek*/,
    -
    28063  21 /*onDayOfMonth*/,
    -
    28064  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
    -
    28065  5760 /*atTimeCode (86400/15)*/,
    -
    28066  0 /*deltaMinutes*/,
    -
    28067  25 /*letterIndex ("S")*/,
    -
    28068  },
    -
    28069  // Rule Zion 1974 only - Jul 6 24:00 1:00 D
    -
    28070  {
    -
    28071  1974 /*fromYear*/,
    -
    28072  1974 /*toYear*/,
    -
    28073  7 /*inMonth*/,
    -
    28074  0 /*onDayOfWeek*/,
    -
    28075  6 /*onDayOfMonth*/,
    -
    28076  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28077  5760 /*atTimeCode (86400/15)*/,
    -
    28078  60 /*deltaMinutes*/,
    -
    28079  13 /*letterIndex ("D")*/,
    -
    28080  },
    -
    28081  // Rule Zion 1974 only - Oct 12 24:00 0 S
    -
    28082  {
    -
    28083  1974 /*fromYear*/,
    -
    28084  1974 /*toYear*/,
    -
    28085  10 /*inMonth*/,
    -
    28086  0 /*onDayOfWeek*/,
    -
    28087  12 /*onDayOfMonth*/,
    -
    28088  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28089  5760 /*atTimeCode (86400/15)*/,
    -
    28090  0 /*deltaMinutes*/,
    -
    28091  25 /*letterIndex ("S")*/,
    -
    28092  },
    -
    28093  // Rule Zion 1975 only - Apr 19 24:00 1:00 D
    -
    28094  {
    -
    28095  1975 /*fromYear*/,
    -
    28096  1975 /*toYear*/,
    -
    28097  4 /*inMonth*/,
    -
    28098  0 /*onDayOfWeek*/,
    -
    28099  19 /*onDayOfMonth*/,
    -
    28100  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28101  5760 /*atTimeCode (86400/15)*/,
    -
    28102  60 /*deltaMinutes*/,
    -
    28103  13 /*letterIndex ("D")*/,
    -
    28104  },
    -
    28105  // Rule Zion 1975 only - Aug 30 24:00 0 S
    -
    28106  {
    -
    28107  1975 /*fromYear*/,
    -
    28108  1975 /*toYear*/,
    -
    28109  8 /*inMonth*/,
    -
    28110  0 /*onDayOfWeek*/,
    -
    28111  30 /*onDayOfMonth*/,
    -
    28112  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28113  5760 /*atTimeCode (86400/15)*/,
    -
    28114  0 /*deltaMinutes*/,
    -
    28115  25 /*letterIndex ("S")*/,
    -
    28116  },
    -
    28117  // Rule Zion 1980 only - Aug 2 24:00s 1:00 D
    -
    28118  {
    -
    28119  1980 /*fromYear*/,
    -
    28120  1980 /*toYear*/,
    -
    28121  8 /*inMonth*/,
    -
    28122  0 /*onDayOfWeek*/,
    -
    28123  2 /*onDayOfMonth*/,
    -
    28124  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28125  5760 /*atTimeCode (86400/15)*/,
    -
    28126  60 /*deltaMinutes*/,
    -
    28127  13 /*letterIndex ("D")*/,
    -
    28128  },
    -
    28129  // Rule Zion 1980 only - Sep 13 24:00s 0 S
    -
    28130  {
    -
    28131  1980 /*fromYear*/,
    -
    28132  1980 /*toYear*/,
    -
    28133  9 /*inMonth*/,
    -
    28134  0 /*onDayOfWeek*/,
    -
    28135  13 /*onDayOfMonth*/,
    -
    28136  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28137  5760 /*atTimeCode (86400/15)*/,
    -
    28138  0 /*deltaMinutes*/,
    -
    28139  25 /*letterIndex ("S")*/,
    -
    28140  },
    -
    28141  // Rule Zion 1984 only - May 5 24:00s 1:00 D
    -
    28142  {
    -
    28143  1984 /*fromYear*/,
    -
    28144  1984 /*toYear*/,
    -
    28145  5 /*inMonth*/,
    -
    28146  0 /*onDayOfWeek*/,
    -
    28147  5 /*onDayOfMonth*/,
    -
    28148  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28149  5760 /*atTimeCode (86400/15)*/,
    -
    28150  60 /*deltaMinutes*/,
    -
    28151  13 /*letterIndex ("D")*/,
    -
    28152  },
    -
    28153  // Rule Zion 1984 only - Aug 25 24:00s 0 S
    -
    28154  {
    -
    28155  1984 /*fromYear*/,
    -
    28156  1984 /*toYear*/,
    -
    28157  8 /*inMonth*/,
    -
    28158  0 /*onDayOfWeek*/,
    -
    28159  25 /*onDayOfMonth*/,
    -
    28160  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
    -
    28161  5760 /*atTimeCode (86400/15)*/,
    -
    28162  0 /*deltaMinutes*/,
    -
    28163  25 /*letterIndex ("S")*/,
    -
    28164  },
    -
    28165  // Rule Zion 1985 only - Apr 13 24:00 1:00 D
    -
    28166  {
    -
    28167  1985 /*fromYear*/,
    -
    28168  1985 /*toYear*/,
    -
    28169  4 /*inMonth*/,
    -
    28170  0 /*onDayOfWeek*/,
    -
    28171  13 /*onDayOfMonth*/,
    -
    28172  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28173  5760 /*atTimeCode (86400/15)*/,
    -
    28174  60 /*deltaMinutes*/,
    -
    28175  13 /*letterIndex ("D")*/,
    -
    28176  },
    -
    28177  // Rule Zion 1985 only - Aug 31 24:00 0 S
    -
    28178  {
    -
    28179  1985 /*fromYear*/,
    -
    28180  1985 /*toYear*/,
    -
    28181  8 /*inMonth*/,
    -
    28182  0 /*onDayOfWeek*/,
    -
    28183  31 /*onDayOfMonth*/,
    -
    28184  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28185  5760 /*atTimeCode (86400/15)*/,
    -
    28186  0 /*deltaMinutes*/,
    -
    28187  25 /*letterIndex ("S")*/,
    -
    28188  },
    -
    28189  // Rule Zion 1986 only - May 17 24:00 1:00 D
    -
    28190  {
    -
    28191  1986 /*fromYear*/,
    -
    28192  1986 /*toYear*/,
    -
    28193  5 /*inMonth*/,
    -
    28194  0 /*onDayOfWeek*/,
    -
    28195  17 /*onDayOfMonth*/,
    -
    28196  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28197  5760 /*atTimeCode (86400/15)*/,
    -
    28198  60 /*deltaMinutes*/,
    -
    28199  13 /*letterIndex ("D")*/,
    -
    28200  },
    -
    28201  // Rule Zion 1986 only - Sep 6 24:00 0 S
    -
    28202  {
    -
    28203  1986 /*fromYear*/,
    -
    28204  1986 /*toYear*/,
    -
    28205  9 /*inMonth*/,
    -
    28206  0 /*onDayOfWeek*/,
    -
    28207  6 /*onDayOfMonth*/,
    -
    28208  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28209  5760 /*atTimeCode (86400/15)*/,
    -
    28210  0 /*deltaMinutes*/,
    -
    28211  25 /*letterIndex ("S")*/,
    -
    28212  },
    -
    28213  // Rule Zion 1987 only - Apr 14 24:00 1:00 D
    -
    28214  {
    -
    28215  1987 /*fromYear*/,
    -
    28216  1987 /*toYear*/,
    -
    28217  4 /*inMonth*/,
    -
    28218  0 /*onDayOfWeek*/,
    -
    28219  14 /*onDayOfMonth*/,
    -
    28220  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28221  5760 /*atTimeCode (86400/15)*/,
    -
    28222  60 /*deltaMinutes*/,
    -
    28223  13 /*letterIndex ("D")*/,
    -
    28224  },
    -
    28225  // Rule Zion 1987 only - Sep 12 24:00 0 S
    -
    28226  {
    -
    28227  1987 /*fromYear*/,
    -
    28228  1987 /*toYear*/,
    -
    28229  9 /*inMonth*/,
    -
    28230  0 /*onDayOfWeek*/,
    -
    28231  12 /*onDayOfMonth*/,
    -
    28232  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28233  5760 /*atTimeCode (86400/15)*/,
    -
    28234  0 /*deltaMinutes*/,
    -
    28235  25 /*letterIndex ("S")*/,
    -
    28236  },
    -
    28237  // Rule Zion 1988 only - Apr 9 24:00 1:00 D
    -
    28238  {
    -
    28239  1988 /*fromYear*/,
    -
    28240  1988 /*toYear*/,
    -
    28241  4 /*inMonth*/,
    -
    28242  0 /*onDayOfWeek*/,
    -
    28243  9 /*onDayOfMonth*/,
    -
    28244  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28245  5760 /*atTimeCode (86400/15)*/,
    -
    28246  60 /*deltaMinutes*/,
    -
    28247  13 /*letterIndex ("D")*/,
    -
    28248  },
    -
    28249  // Rule Zion 1988 only - Sep 3 24:00 0 S
    -
    28250  {
    -
    28251  1988 /*fromYear*/,
    -
    28252  1988 /*toYear*/,
    -
    28253  9 /*inMonth*/,
    -
    28254  0 /*onDayOfWeek*/,
    -
    28255  3 /*onDayOfMonth*/,
    -
    28256  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28257  5760 /*atTimeCode (86400/15)*/,
    -
    28258  0 /*deltaMinutes*/,
    -
    28259  25 /*letterIndex ("S")*/,
    -
    28260  },
    -
    28261  // Rule Zion 1989 only - Apr 29 24:00 1:00 D
    -
    28262  {
    -
    28263  1989 /*fromYear*/,
    -
    28264  1989 /*toYear*/,
    -
    28265  4 /*inMonth*/,
    -
    28266  0 /*onDayOfWeek*/,
    -
    28267  29 /*onDayOfMonth*/,
    -
    28268  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28269  5760 /*atTimeCode (86400/15)*/,
    -
    28270  60 /*deltaMinutes*/,
    -
    28271  13 /*letterIndex ("D")*/,
    -
    28272  },
    -
    28273  // Rule Zion 1989 only - Sep 2 24:00 0 S
    -
    28274  {
    -
    28275  1989 /*fromYear*/,
    -
    28276  1989 /*toYear*/,
    -
    28277  9 /*inMonth*/,
    -
    28278  0 /*onDayOfWeek*/,
    -
    28279  2 /*onDayOfMonth*/,
    -
    28280  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28281  5760 /*atTimeCode (86400/15)*/,
    -
    28282  0 /*deltaMinutes*/,
    -
    28283  25 /*letterIndex ("S")*/,
    -
    28284  },
    -
    28285  // Rule Zion 1990 only - Mar 24 24:00 1:00 D
    -
    28286  {
    -
    28287  1990 /*fromYear*/,
    -
    28288  1990 /*toYear*/,
    -
    28289  3 /*inMonth*/,
    -
    28290  0 /*onDayOfWeek*/,
    -
    28291  24 /*onDayOfMonth*/,
    -
    28292  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28293  5760 /*atTimeCode (86400/15)*/,
    -
    28294  60 /*deltaMinutes*/,
    -
    28295  13 /*letterIndex ("D")*/,
    -
    28296  },
    -
    28297  // Rule Zion 1990 only - Aug 25 24:00 0 S
    -
    28298  {
    -
    28299  1990 /*fromYear*/,
    -
    28300  1990 /*toYear*/,
    -
    28301  8 /*inMonth*/,
    -
    28302  0 /*onDayOfWeek*/,
    -
    28303  25 /*onDayOfMonth*/,
    -
    28304  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28305  5760 /*atTimeCode (86400/15)*/,
    -
    28306  0 /*deltaMinutes*/,
    -
    28307  25 /*letterIndex ("S")*/,
    -
    28308  },
    -
    28309  // Rule Zion 1991 only - Mar 23 24:00 1:00 D
    -
    28310  {
    -
    28311  1991 /*fromYear*/,
    -
    28312  1991 /*toYear*/,
    -
    28313  3 /*inMonth*/,
    -
    28314  0 /*onDayOfWeek*/,
    -
    28315  23 /*onDayOfMonth*/,
    -
    28316  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28317  5760 /*atTimeCode (86400/15)*/,
    -
    28318  60 /*deltaMinutes*/,
    -
    28319  13 /*letterIndex ("D")*/,
    -
    28320  },
    -
    28321  // Rule Zion 1991 only - Aug 31 24:00 0 S
    -
    28322  {
    -
    28323  1991 /*fromYear*/,
    -
    28324  1991 /*toYear*/,
    -
    28325  8 /*inMonth*/,
    -
    28326  0 /*onDayOfWeek*/,
    -
    28327  31 /*onDayOfMonth*/,
    -
    28328  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28329  5760 /*atTimeCode (86400/15)*/,
    -
    28330  0 /*deltaMinutes*/,
    -
    28331  25 /*letterIndex ("S")*/,
    -
    28332  },
    -
    28333  // Rule Zion 1992 only - Mar 28 24:00 1:00 D
    -
    28334  {
    -
    28335  1992 /*fromYear*/,
    -
    28336  1992 /*toYear*/,
    -
    28337  3 /*inMonth*/,
    -
    28338  0 /*onDayOfWeek*/,
    -
    28339  28 /*onDayOfMonth*/,
    -
    28340  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28341  5760 /*atTimeCode (86400/15)*/,
    -
    28342  60 /*deltaMinutes*/,
    -
    28343  13 /*letterIndex ("D")*/,
    -
    28344  },
    -
    28345  // Rule Zion 1992 only - Sep 5 24:00 0 S
    -
    28346  {
    -
    28347  1992 /*fromYear*/,
    -
    28348  1992 /*toYear*/,
    -
    28349  9 /*inMonth*/,
    -
    28350  0 /*onDayOfWeek*/,
    -
    28351  5 /*onDayOfMonth*/,
    -
    28352  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28353  5760 /*atTimeCode (86400/15)*/,
    -
    28354  0 /*deltaMinutes*/,
    -
    28355  25 /*letterIndex ("S")*/,
    -
    28356  },
    -
    28357  // Rule Zion 1993 only - Apr 2 0:00 1:00 D
    -
    28358  {
    -
    28359  1993 /*fromYear*/,
    -
    28360  1993 /*toYear*/,
    -
    28361  4 /*inMonth*/,
    -
    28362  0 /*onDayOfWeek*/,
    -
    28363  2 /*onDayOfMonth*/,
    -
    28364  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28365  0 /*atTimeCode (0/15)*/,
    -
    28366  60 /*deltaMinutes*/,
    -
    28367  13 /*letterIndex ("D")*/,
    -
    28368  },
    -
    28369  // Rule Zion 1993 only - Sep 5 0:00 0 S
    -
    28370  {
    -
    28371  1993 /*fromYear*/,
    -
    28372  1993 /*toYear*/,
    -
    28373  9 /*inMonth*/,
    -
    28374  0 /*onDayOfWeek*/,
    -
    28375  5 /*onDayOfMonth*/,
    -
    28376  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28377  0 /*atTimeCode (0/15)*/,
    -
    28378  0 /*deltaMinutes*/,
    -
    28379  25 /*letterIndex ("S")*/,
    -
    28380  },
    -
    28381  // Rule Zion 1994 only - Apr 1 0:00 1:00 D
    -
    28382  {
    -
    28383  1994 /*fromYear*/,
    -
    28384  1994 /*toYear*/,
    -
    28385  4 /*inMonth*/,
    -
    28386  0 /*onDayOfWeek*/,
    -
    28387  1 /*onDayOfMonth*/,
    -
    28388  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28389  0 /*atTimeCode (0/15)*/,
    -
    28390  60 /*deltaMinutes*/,
    -
    28391  13 /*letterIndex ("D")*/,
    -
    28392  },
    -
    28393  // Rule Zion 1994 only - Aug 28 0:00 0 S
    -
    28394  {
    -
    28395  1994 /*fromYear*/,
    -
    28396  1994 /*toYear*/,
    -
    28397  8 /*inMonth*/,
    -
    28398  0 /*onDayOfWeek*/,
    -
    28399  28 /*onDayOfMonth*/,
    -
    28400  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28401  0 /*atTimeCode (0/15)*/,
    -
    28402  0 /*deltaMinutes*/,
    -
    28403  25 /*letterIndex ("S")*/,
    -
    28404  },
    -
    28405  // Rule Zion 1995 only - Mar 31 0:00 1:00 D
    -
    28406  {
    -
    28407  1995 /*fromYear*/,
    -
    28408  1995 /*toYear*/,
    -
    28409  3 /*inMonth*/,
    -
    28410  0 /*onDayOfWeek*/,
    -
    28411  31 /*onDayOfMonth*/,
    -
    28412  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28413  0 /*atTimeCode (0/15)*/,
    -
    28414  60 /*deltaMinutes*/,
    -
    28415  13 /*letterIndex ("D")*/,
    -
    28416  },
    -
    28417  // Rule Zion 1995 only - Sep 3 0:00 0 S
    -
    28418  {
    -
    28419  1995 /*fromYear*/,
    -
    28420  1995 /*toYear*/,
    -
    28421  9 /*inMonth*/,
    -
    28422  0 /*onDayOfWeek*/,
    -
    28423  3 /*onDayOfMonth*/,
    -
    28424  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28425  0 /*atTimeCode (0/15)*/,
    -
    28426  0 /*deltaMinutes*/,
    -
    28427  25 /*letterIndex ("S")*/,
    -
    28428  },
    -
    28429  // Rule Zion 1996 only - Mar 14 24:00 1:00 D
    -
    28430  {
    -
    28431  1996 /*fromYear*/,
    -
    28432  1996 /*toYear*/,
    -
    28433  3 /*inMonth*/,
    -
    28434  0 /*onDayOfWeek*/,
    -
    28435  14 /*onDayOfMonth*/,
    -
    28436  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28437  5760 /*atTimeCode (86400/15)*/,
    -
    28438  60 /*deltaMinutes*/,
    -
    28439  13 /*letterIndex ("D")*/,
    -
    28440  },
    -
    28441  // Rule Zion 1996 only - Sep 15 24:00 0 S
    -
    28442  {
    -
    28443  1996 /*fromYear*/,
    -
    28444  1996 /*toYear*/,
    -
    28445  9 /*inMonth*/,
    -
    28446  0 /*onDayOfWeek*/,
    -
    28447  15 /*onDayOfMonth*/,
    -
    28448  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28449  5760 /*atTimeCode (86400/15)*/,
    -
    28450  0 /*deltaMinutes*/,
    -
    28451  25 /*letterIndex ("S")*/,
    -
    28452  },
    -
    28453  // Rule Zion 1997 only - Mar 20 24:00 1:00 D
    -
    28454  {
    -
    28455  1997 /*fromYear*/,
    -
    28456  1997 /*toYear*/,
    -
    28457  3 /*inMonth*/,
    -
    28458  0 /*onDayOfWeek*/,
    -
    28459  20 /*onDayOfMonth*/,
    -
    28460  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28461  5760 /*atTimeCode (86400/15)*/,
    -
    28462  60 /*deltaMinutes*/,
    -
    28463  13 /*letterIndex ("D")*/,
    -
    28464  },
    -
    28465  // Rule Zion 1997 only - Sep 13 24:00 0 S
    -
    28466  {
    -
    28467  1997 /*fromYear*/,
    -
    28468  1997 /*toYear*/,
    -
    28469  9 /*inMonth*/,
    -
    28470  0 /*onDayOfWeek*/,
    -
    28471  13 /*onDayOfMonth*/,
    -
    28472  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28473  5760 /*atTimeCode (86400/15)*/,
    -
    28474  0 /*deltaMinutes*/,
    -
    28475  25 /*letterIndex ("S")*/,
    -
    28476  },
    -
    28477  // Rule Zion 1998 only - Mar 20 0:00 1:00 D
    -
    28478  {
    -
    28479  1998 /*fromYear*/,
    -
    28480  1998 /*toYear*/,
    -
    28481  3 /*inMonth*/,
    -
    28482  0 /*onDayOfWeek*/,
    -
    28483  20 /*onDayOfMonth*/,
    -
    28484  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28485  0 /*atTimeCode (0/15)*/,
    -
    28486  60 /*deltaMinutes*/,
    -
    28487  13 /*letterIndex ("D")*/,
    -
    28488  },
    -
    28489  // Rule Zion 1998 only - Sep 6 0:00 0 S
    -
    28490  {
    -
    28491  1998 /*fromYear*/,
    -
    28492  1998 /*toYear*/,
    -
    28493  9 /*inMonth*/,
    -
    28494  0 /*onDayOfWeek*/,
    -
    28495  6 /*onDayOfMonth*/,
    -
    28496  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28497  0 /*atTimeCode (0/15)*/,
    -
    28498  0 /*deltaMinutes*/,
    -
    28499  25 /*letterIndex ("S")*/,
    -
    28500  },
    -
    28501  // Rule Zion 1999 only - Apr 2 2:00 1:00 D
    -
    28502  {
    -
    28503  1999 /*fromYear*/,
    -
    28504  1999 /*toYear*/,
    -
    28505  4 /*inMonth*/,
    -
    28506  0 /*onDayOfWeek*/,
    -
    28507  2 /*onDayOfMonth*/,
    -
    28508  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28509  480 /*atTimeCode (7200/15)*/,
    -
    28510  60 /*deltaMinutes*/,
    -
    28511  13 /*letterIndex ("D")*/,
    -
    28512  },
    -
    28513  // Rule Zion 1999 only - Sep 3 2:00 0 S
    -
    28514  {
    -
    28515  1999 /*fromYear*/,
    -
    28516  1999 /*toYear*/,
    -
    28517  9 /*inMonth*/,
    -
    28518  0 /*onDayOfWeek*/,
    -
    28519  3 /*onDayOfMonth*/,
    -
    28520  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28521  480 /*atTimeCode (7200/15)*/,
    -
    28522  0 /*deltaMinutes*/,
    -
    28523  25 /*letterIndex ("S")*/,
    -
    28524  },
    -
    28525  // Rule Zion 2000 only - Apr 14 2:00 1:00 D
    -
    28526  {
    -
    28527  2000 /*fromYear*/,
    -
    28528  2000 /*toYear*/,
    -
    28529  4 /*inMonth*/,
    -
    28530  0 /*onDayOfWeek*/,
    -
    28531  14 /*onDayOfMonth*/,
    -
    28532  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28533  480 /*atTimeCode (7200/15)*/,
    -
    28534  60 /*deltaMinutes*/,
    -
    28535  13 /*letterIndex ("D")*/,
    -
    28536  },
    -
    28537  // Rule Zion 2000 only - Oct 6 1:00 0 S
    -
    28538  {
    -
    28539  2000 /*fromYear*/,
    -
    28540  2000 /*toYear*/,
    -
    28541  10 /*inMonth*/,
    -
    28542  0 /*onDayOfWeek*/,
    -
    28543  6 /*onDayOfMonth*/,
    -
    28544  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28545  240 /*atTimeCode (3600/15)*/,
    -
    28546  0 /*deltaMinutes*/,
    -
    28547  25 /*letterIndex ("S")*/,
    -
    28548  },
    -
    28549  // Rule Zion 2001 only - Apr 9 1:00 1:00 D
    -
    28550  {
    -
    28551  2001 /*fromYear*/,
    -
    28552  2001 /*toYear*/,
    -
    28553  4 /*inMonth*/,
    -
    28554  0 /*onDayOfWeek*/,
    -
    28555  9 /*onDayOfMonth*/,
    -
    28556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28557  240 /*atTimeCode (3600/15)*/,
    -
    28558  60 /*deltaMinutes*/,
    -
    28559  13 /*letterIndex ("D")*/,
    -
    28560  },
    -
    28561  // Rule Zion 2001 only - Sep 24 1:00 0 S
    -
    28562  {
    -
    28563  2001 /*fromYear*/,
    -
    28564  2001 /*toYear*/,
    -
    28565  9 /*inMonth*/,
    -
    28566  0 /*onDayOfWeek*/,
    -
    28567  24 /*onDayOfMonth*/,
    -
    28568  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28569  240 /*atTimeCode (3600/15)*/,
    -
    28570  0 /*deltaMinutes*/,
    -
    28571  25 /*letterIndex ("S")*/,
    -
    28572  },
    -
    28573  // Rule Zion 2002 only - Mar 29 1:00 1:00 D
    -
    28574  {
    -
    28575  2002 /*fromYear*/,
    -
    28576  2002 /*toYear*/,
    -
    28577  3 /*inMonth*/,
    -
    28578  0 /*onDayOfWeek*/,
    -
    28579  29 /*onDayOfMonth*/,
    -
    28580  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28581  240 /*atTimeCode (3600/15)*/,
    -
    28582  60 /*deltaMinutes*/,
    -
    28583  13 /*letterIndex ("D")*/,
    -
    28584  },
    -
    28585  // Rule Zion 2002 only - Oct 7 1:00 0 S
    -
    28586  {
    -
    28587  2002 /*fromYear*/,
    -
    28588  2002 /*toYear*/,
    -
    28589  10 /*inMonth*/,
    -
    28590  0 /*onDayOfWeek*/,
    -
    28591  7 /*onDayOfMonth*/,
    -
    28592  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28593  240 /*atTimeCode (3600/15)*/,
    -
    28594  0 /*deltaMinutes*/,
    -
    28595  25 /*letterIndex ("S")*/,
    -
    28596  },
    -
    28597  // Rule Zion 2003 only - Mar 28 1:00 1:00 D
    -
    28598  {
    -
    28599  2003 /*fromYear*/,
    -
    28600  2003 /*toYear*/,
    -
    28601  3 /*inMonth*/,
    -
    28602  0 /*onDayOfWeek*/,
    -
    28603  28 /*onDayOfMonth*/,
    -
    28604  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28605  240 /*atTimeCode (3600/15)*/,
    -
    28606  60 /*deltaMinutes*/,
    -
    28607  13 /*letterIndex ("D")*/,
    -
    28608  },
    -
    28609  // Rule Zion 2003 only - Oct 3 1:00 0 S
    -
    28610  {
    -
    28611  2003 /*fromYear*/,
    -
    28612  2003 /*toYear*/,
    -
    28613  10 /*inMonth*/,
    -
    28614  0 /*onDayOfWeek*/,
    -
    28615  3 /*onDayOfMonth*/,
    -
    28616  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28617  240 /*atTimeCode (3600/15)*/,
    -
    28618  0 /*deltaMinutes*/,
    -
    28619  25 /*letterIndex ("S")*/,
    -
    28620  },
    -
    28621  // Rule Zion 2004 only - Apr 7 1:00 1:00 D
    -
    28622  {
    -
    28623  2004 /*fromYear*/,
    -
    28624  2004 /*toYear*/,
    -
    28625  4 /*inMonth*/,
    -
    28626  0 /*onDayOfWeek*/,
    -
    28627  7 /*onDayOfMonth*/,
    -
    28628  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28629  240 /*atTimeCode (3600/15)*/,
    -
    28630  60 /*deltaMinutes*/,
    -
    28631  13 /*letterIndex ("D")*/,
    -
    28632  },
    -
    28633  // Rule Zion 2004 only - Sep 22 1:00 0 S
    -
    28634  {
    -
    28635  2004 /*fromYear*/,
    -
    28636  2004 /*toYear*/,
    -
    28637  9 /*inMonth*/,
    -
    28638  0 /*onDayOfWeek*/,
    -
    28639  22 /*onDayOfMonth*/,
    -
    28640  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28641  240 /*atTimeCode (3600/15)*/,
    -
    28642  0 /*deltaMinutes*/,
    -
    28643  25 /*letterIndex ("S")*/,
    -
    28644  },
    -
    28645  // Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D
    -
    28646  {
    -
    28647  2005 /*fromYear*/,
    -
    28648  2012 /*toYear*/,
    -
    28649  4 /*inMonth*/,
    -
    28650  5 /*onDayOfWeek*/,
    -
    28651  -1 /*onDayOfMonth*/,
    -
    28652  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28653  480 /*atTimeCode (7200/15)*/,
    -
    28654  60 /*deltaMinutes*/,
    -
    28655  13 /*letterIndex ("D")*/,
    -
    28656  },
    -
    28657  // Rule Zion 2005 only - Oct 9 2:00 0 S
    -
    28658  {
    -
    28659  2005 /*fromYear*/,
    -
    28660  2005 /*toYear*/,
    -
    28661  10 /*inMonth*/,
    -
    28662  0 /*onDayOfWeek*/,
    -
    28663  9 /*onDayOfMonth*/,
    -
    28664  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28665  480 /*atTimeCode (7200/15)*/,
    -
    28666  0 /*deltaMinutes*/,
    -
    28667  25 /*letterIndex ("S")*/,
    -
    28668  },
    -
    28669  // Rule Zion 2006 only - Oct 1 2:00 0 S
    -
    28670  {
    -
    28671  2006 /*fromYear*/,
    -
    28672  2006 /*toYear*/,
    -
    28673  10 /*inMonth*/,
    -
    28674  0 /*onDayOfWeek*/,
    -
    28675  1 /*onDayOfMonth*/,
    -
    28676  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28677  480 /*atTimeCode (7200/15)*/,
    -
    28678  0 /*deltaMinutes*/,
    -
    28679  25 /*letterIndex ("S")*/,
    -
    28680  },
    -
    28681  // Rule Zion 2007 only - Sep 16 2:00 0 S
    -
    28682  {
    -
    28683  2007 /*fromYear*/,
    -
    28684  2007 /*toYear*/,
    -
    28685  9 /*inMonth*/,
    -
    28686  0 /*onDayOfWeek*/,
    -
    28687  16 /*onDayOfMonth*/,
    -
    28688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28689  480 /*atTimeCode (7200/15)*/,
    -
    28690  0 /*deltaMinutes*/,
    -
    28691  25 /*letterIndex ("S")*/,
    -
    28692  },
    -
    28693  // Rule Zion 2008 only - Oct 5 2:00 0 S
    -
    28694  {
    -
    28695  2008 /*fromYear*/,
    -
    28696  2008 /*toYear*/,
    -
    28697  10 /*inMonth*/,
    -
    28698  0 /*onDayOfWeek*/,
    -
    28699  5 /*onDayOfMonth*/,
    -
    28700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28701  480 /*atTimeCode (7200/15)*/,
    -
    28702  0 /*deltaMinutes*/,
    -
    28703  25 /*letterIndex ("S")*/,
    -
    28704  },
    -
    28705  // Rule Zion 2009 only - Sep 27 2:00 0 S
    -
    28706  {
    -
    28707  2009 /*fromYear*/,
    -
    28708  2009 /*toYear*/,
    -
    28709  9 /*inMonth*/,
    -
    28710  0 /*onDayOfWeek*/,
    -
    28711  27 /*onDayOfMonth*/,
    -
    28712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28713  480 /*atTimeCode (7200/15)*/,
    -
    28714  0 /*deltaMinutes*/,
    -
    28715  25 /*letterIndex ("S")*/,
    -
    28716  },
    -
    28717  // Rule Zion 2010 only - Sep 12 2:00 0 S
    -
    28718  {
    -
    28719  2010 /*fromYear*/,
    -
    28720  2010 /*toYear*/,
    -
    28721  9 /*inMonth*/,
    -
    28722  0 /*onDayOfWeek*/,
    -
    28723  12 /*onDayOfMonth*/,
    -
    28724  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28725  480 /*atTimeCode (7200/15)*/,
    -
    28726  0 /*deltaMinutes*/,
    -
    28727  25 /*letterIndex ("S")*/,
    -
    28728  },
    -
    28729  // Rule Zion 2011 only - Oct 2 2:00 0 S
    -
    28730  {
    -
    28731  2011 /*fromYear*/,
    -
    28732  2011 /*toYear*/,
    -
    28733  10 /*inMonth*/,
    -
    28734  0 /*onDayOfWeek*/,
    -
    28735  2 /*onDayOfMonth*/,
    -
    28736  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28737  480 /*atTimeCode (7200/15)*/,
    -
    28738  0 /*deltaMinutes*/,
    -
    28739  25 /*letterIndex ("S")*/,
    -
    28740  },
    -
    28741  // Rule Zion 2012 only - Sep 23 2:00 0 S
    -
    28742  {
    -
    28743  2012 /*fromYear*/,
    -
    28744  2012 /*toYear*/,
    -
    28745  9 /*inMonth*/,
    -
    28746  0 /*onDayOfWeek*/,
    -
    28747  23 /*onDayOfMonth*/,
    -
    28748  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28749  480 /*atTimeCode (7200/15)*/,
    -
    28750  0 /*deltaMinutes*/,
    -
    28751  25 /*letterIndex ("S")*/,
    -
    28752  },
    -
    28753  // Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D
    -
    28754  {
    -
    28755  2013 /*fromYear*/,
    -
    28756  32766 /*toYear*/,
    -
    28757  3 /*inMonth*/,
    -
    28758  5 /*onDayOfWeek*/,
    -
    28759  23 /*onDayOfMonth*/,
    -
    28760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28761  480 /*atTimeCode (7200/15)*/,
    -
    28762  60 /*deltaMinutes*/,
    -
    28763  13 /*letterIndex ("D")*/,
    -
    28764  },
    -
    28765  // Rule Zion 2013 max - Oct lastSun 2:00 0 S
    -
    28766  {
    -
    28767  2013 /*fromYear*/,
    -
    28768  32766 /*toYear*/,
    -
    28769  10 /*inMonth*/,
    -
    28770  7 /*onDayOfWeek*/,
    -
    28771  0 /*onDayOfMonth*/,
    -
    28772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
    -
    28773  480 /*atTimeCode (7200/15)*/,
    -
    28774  0 /*deltaMinutes*/,
    -
    28775  25 /*letterIndex ("S")*/,
    -
    28776  },
    -
    28777 
    -
    28778 };
    -
    28779 
    -
    28780 const complete::Info::ZonePolicy kZonePolicyZion ACE_TIME_PROGMEM = {
    -
    28781  kZoneRulesZion /*rules*/,
    -
    28782  86 /*numRules*/,
    -
    28783 };
    -
    28784 
    -
    28785 
    -
    28786 
    -
    28787 }
    -
    28788 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/zonedbc_2zone__policies_8h_source.html b/docs/html/zonedbc_2zone__policies_8h_source.html deleted file mode 100644 index e0296176a..000000000 --- a/docs/html/zonedbc_2zone__policies_8h_source.html +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/zone_policies.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace zonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --start_year 1800
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [1800,2200]
    -
    33 // Accurate Years: [-32767,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1844,2087]
    -
    37 // Lower/Upper Truncated: [False,False]
    -
    38 //
    -
    39 // Estimator Years: [1800,2090]
    -
    40 // Max Buffer Size: 8
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 1956
    -
    45 // Policies: 134
    -
    46 // Rules: 2235
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 26820
    -
    51 // Policies: 402
    -
    52 // Eras: 29340
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 486
    -
    57 // Letters: 160
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 71989
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 26820
    -
    65 // Policies: 1072
    -
    66 // Eras: 39120
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 486
    -
    71 // Letters: 216
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 90292
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #ifndef ACE_TIME_ZONEDBC_ZONE_POLICIES_H
    -
    79 #define ACE_TIME_ZONEDBC_ZONE_POLICIES_H
    -
    80 
    -
    81 #include <zoneinfo/infos.h>
    -
    82 
    -
    83 namespace ace_time {
    -
    84 namespace zonedbc {
    -
    85 
    -
    86 //---------------------------------------------------------------------------
    -
    87 // Supported policies: 134
    -
    88 //---------------------------------------------------------------------------
    -
    89 
    -
    90 extern const complete::Info::ZonePolicy kZonePolicyAN;
    -
    91 extern const complete::Info::ZonePolicy kZonePolicyAQ;
    -
    92 extern const complete::Info::ZonePolicy kZonePolicyAS;
    -
    93 extern const complete::Info::ZonePolicy kZonePolicyAT;
    -
    94 extern const complete::Info::ZonePolicy kZonePolicyAV;
    -
    95 extern const complete::Info::ZonePolicy kZonePolicyAW;
    -
    96 extern const complete::Info::ZonePolicy kZonePolicyAlbania;
    -
    97 extern const complete::Info::ZonePolicy kZonePolicyAlgeria;
    -
    98 extern const complete::Info::ZonePolicy kZonePolicyArg;
    -
    99 extern const complete::Info::ZonePolicy kZonePolicyArmenia;
    -
    100 extern const complete::Info::ZonePolicy kZonePolicyAus;
    -
    101 extern const complete::Info::ZonePolicy kZonePolicyAustria;
    -
    102 extern const complete::Info::ZonePolicy kZonePolicyAzer;
    -
    103 extern const complete::Info::ZonePolicy kZonePolicyBarb;
    -
    104 extern const complete::Info::ZonePolicy kZonePolicyBelgium;
    -
    105 extern const complete::Info::ZonePolicy kZonePolicyBelize;
    -
    106 extern const complete::Info::ZonePolicy kZonePolicyBermuda;
    -
    107 extern const complete::Info::ZonePolicy kZonePolicyBrazil;
    -
    108 extern const complete::Info::ZonePolicy kZonePolicyBulg;
    -
    109 extern const complete::Info::ZonePolicy kZonePolicyC_Eur;
    -
    110 extern const complete::Info::ZonePolicy kZonePolicyCA;
    -
    111 extern const complete::Info::ZonePolicy kZonePolicyCO;
    -
    112 extern const complete::Info::ZonePolicy kZonePolicyCR;
    -
    113 extern const complete::Info::ZonePolicy kZonePolicyCanada;
    -
    114 extern const complete::Info::ZonePolicy kZonePolicyChatham;
    -
    115 extern const complete::Info::ZonePolicy kZonePolicyChicago;
    -
    116 extern const complete::Info::ZonePolicy kZonePolicyChile;
    -
    117 extern const complete::Info::ZonePolicy kZonePolicyCook;
    -
    118 extern const complete::Info::ZonePolicy kZonePolicyCuba;
    -
    119 extern const complete::Info::ZonePolicy kZonePolicyCyprus;
    -
    120 extern const complete::Info::ZonePolicy kZonePolicyCzech;
    -
    121 extern const complete::Info::ZonePolicy kZonePolicyDR;
    -
    122 extern const complete::Info::ZonePolicy kZonePolicyDenver;
    -
    123 extern const complete::Info::ZonePolicy kZonePolicyDetroit;
    -
    124 extern const complete::Info::ZonePolicy kZonePolicyDhaka;
    -
    125 extern const complete::Info::ZonePolicy kZonePolicyE_Eur;
    -
    126 extern const complete::Info::ZonePolicy kZonePolicyE_EurAsia;
    -
    127 extern const complete::Info::ZonePolicy kZonePolicyEU;
    -
    128 extern const complete::Info::ZonePolicy kZonePolicyEUAsia;
    -
    129 extern const complete::Info::ZonePolicy kZonePolicyEcuador;
    -
    130 extern const complete::Info::ZonePolicy kZonePolicyEdm;
    -
    131 extern const complete::Info::ZonePolicy kZonePolicyEgypt;
    -
    132 extern const complete::Info::ZonePolicy kZonePolicyEgyptAsia;
    -
    133 extern const complete::Info::ZonePolicy kZonePolicyEire;
    -
    134 extern const complete::Info::ZonePolicy kZonePolicyFalk;
    -
    135 extern const complete::Info::ZonePolicy kZonePolicyFiji;
    -
    136 extern const complete::Info::ZonePolicy kZonePolicyFinland;
    -
    137 extern const complete::Info::ZonePolicy kZonePolicyFrance;
    -
    138 extern const complete::Info::ZonePolicy kZonePolicyGB_Eire;
    -
    139 extern const complete::Info::ZonePolicy kZonePolicyGermany;
    -
    140 extern const complete::Info::ZonePolicy kZonePolicyGreece;
    -
    141 extern const complete::Info::ZonePolicy kZonePolicyGuam;
    -
    142 extern const complete::Info::ZonePolicy kZonePolicyGuat;
    -
    143 extern const complete::Info::ZonePolicy kZonePolicyHK;
    -
    144 extern const complete::Info::ZonePolicy kZonePolicyHaiti;
    -
    145 extern const complete::Info::ZonePolicy kZonePolicyHalifax;
    -
    146 extern const complete::Info::ZonePolicy kZonePolicyHoliday;
    -
    147 extern const complete::Info::ZonePolicy kZonePolicyHond;
    -
    148 extern const complete::Info::ZonePolicy kZonePolicyHungary;
    -
    149 extern const complete::Info::ZonePolicy kZonePolicyIndianapolis;
    -
    150 extern const complete::Info::ZonePolicy kZonePolicyIran;
    -
    151 extern const complete::Info::ZonePolicy kZonePolicyIraq;
    -
    152 extern const complete::Info::ZonePolicy kZonePolicyItaly;
    -
    153 extern const complete::Info::ZonePolicy kZonePolicyJapan;
    -
    154 extern const complete::Info::ZonePolicy kZonePolicyJordan;
    -
    155 extern const complete::Info::ZonePolicy kZonePolicyKyrgyz;
    -
    156 extern const complete::Info::ZonePolicy kZonePolicyLH;
    -
    157 extern const complete::Info::ZonePolicy kZonePolicyLatvia;
    -
    158 extern const complete::Info::ZonePolicy kZonePolicyLebanon;
    -
    159 extern const complete::Info::ZonePolicy kZonePolicyLibya;
    -
    160 extern const complete::Info::ZonePolicy kZonePolicyLouisville;
    -
    161 extern const complete::Info::ZonePolicy kZonePolicyMacau;
    -
    162 extern const complete::Info::ZonePolicy kZonePolicyMalta;
    -
    163 extern const complete::Info::ZonePolicy kZonePolicyMarengo;
    -
    164 extern const complete::Info::ZonePolicy kZonePolicyMauritius;
    -
    165 extern const complete::Info::ZonePolicy kZonePolicyMenominee;
    -
    166 extern const complete::Info::ZonePolicy kZonePolicyMexico;
    -
    167 extern const complete::Info::ZonePolicy kZonePolicyMoldova;
    -
    168 extern const complete::Info::ZonePolicy kZonePolicyMoncton;
    -
    169 extern const complete::Info::ZonePolicy kZonePolicyMongol;
    -
    170 extern const complete::Info::ZonePolicy kZonePolicyMorocco;
    -
    171 extern const complete::Info::ZonePolicy kZonePolicyNBorneo;
    -
    172 extern const complete::Info::ZonePolicy kZonePolicyNC;
    -
    173 extern const complete::Info::ZonePolicy kZonePolicyNT_YK;
    -
    174 extern const complete::Info::ZonePolicy kZonePolicyNYC;
    -
    175 extern const complete::Info::ZonePolicy kZonePolicyNZ;
    -
    176 extern const complete::Info::ZonePolicy kZonePolicyNamibia;
    -
    177 extern const complete::Info::ZonePolicy kZonePolicyNic;
    -
    178 extern const complete::Info::ZonePolicy kZonePolicyPRC;
    -
    179 extern const complete::Info::ZonePolicy kZonePolicyPakistan;
    -
    180 extern const complete::Info::ZonePolicy kZonePolicyPalestine;
    -
    181 extern const complete::Info::ZonePolicy kZonePolicyPara;
    -
    182 extern const complete::Info::ZonePolicy kZonePolicyPerry;
    -
    183 extern const complete::Info::ZonePolicy kZonePolicyPeru;
    -
    184 extern const complete::Info::ZonePolicy kZonePolicyPhil;
    -
    185 extern const complete::Info::ZonePolicy kZonePolicyPike;
    -
    186 extern const complete::Info::ZonePolicy kZonePolicyPoland;
    -
    187 extern const complete::Info::ZonePolicy kZonePolicyPort;
    -
    188 extern const complete::Info::ZonePolicy kZonePolicyPulaski;
    -
    189 extern const complete::Info::ZonePolicy kZonePolicyROK;
    -
    190 extern const complete::Info::ZonePolicy kZonePolicyRegina;
    -
    191 extern const complete::Info::ZonePolicy kZonePolicyRomania;
    -
    192 extern const complete::Info::ZonePolicy kZonePolicyRussia;
    -
    193 extern const complete::Info::ZonePolicy kZonePolicyRussiaAsia;
    -
    194 extern const complete::Info::ZonePolicy kZonePolicySA;
    -
    195 extern const complete::Info::ZonePolicy kZonePolicySalv;
    -
    196 extern const complete::Info::ZonePolicy kZonePolicySanLuis;
    -
    197 extern const complete::Info::ZonePolicy kZonePolicyShang;
    -
    198 extern const complete::Info::ZonePolicy kZonePolicySovietZone;
    -
    199 extern const complete::Info::ZonePolicy kZonePolicySpain;
    -
    200 extern const complete::Info::ZonePolicy kZonePolicySpainAfrica;
    -
    201 extern const complete::Info::ZonePolicy kZonePolicyStJohns;
    -
    202 extern const complete::Info::ZonePolicy kZonePolicyStarke;
    -
    203 extern const complete::Info::ZonePolicy kZonePolicySudan;
    -
    204 extern const complete::Info::ZonePolicy kZonePolicySwift;
    -
    205 extern const complete::Info::ZonePolicy kZonePolicySwiss;
    -
    206 extern const complete::Info::ZonePolicy kZonePolicySyria;
    -
    207 extern const complete::Info::ZonePolicy kZonePolicyTaiwan;
    -
    208 extern const complete::Info::ZonePolicy kZonePolicyThule;
    -
    209 extern const complete::Info::ZonePolicy kZonePolicyTonga;
    -
    210 extern const complete::Info::ZonePolicy kZonePolicyToronto;
    -
    211 extern const complete::Info::ZonePolicy kZonePolicyTroll;
    -
    212 extern const complete::Info::ZonePolicy kZonePolicyTunisia;
    -
    213 extern const complete::Info::ZonePolicy kZonePolicyTurkey;
    -
    214 extern const complete::Info::ZonePolicy kZonePolicyUS;
    -
    215 extern const complete::Info::ZonePolicy kZonePolicyUruguay;
    -
    216 extern const complete::Info::ZonePolicy kZonePolicyVanc;
    -
    217 extern const complete::Info::ZonePolicy kZonePolicyVanuatu;
    -
    218 extern const complete::Info::ZonePolicy kZonePolicyVincennes;
    -
    219 extern const complete::Info::ZonePolicy kZonePolicyW_Eur;
    -
    220 extern const complete::Info::ZonePolicy kZonePolicyWS;
    -
    221 extern const complete::Info::ZonePolicy kZonePolicyWinn;
    -
    222 extern const complete::Info::ZonePolicy kZonePolicyYukon;
    -
    223 extern const complete::Info::ZonePolicy kZonePolicyZion;
    -
    224 
    -
    225 
    -
    226 //---------------------------------------------------------------------------
    -
    227 // Unsupported policies: 0
    -
    228 //---------------------------------------------------------------------------
    -
    229 
    -
    230 
    -
    231 
    -
    232 //---------------------------------------------------------------------------
    -
    233 // Notable zone policies: 27
    -
    234 //---------------------------------------------------------------------------
    -
    235 
    -
    236 // Barb {SAVE '0:30' different from 1:00}
    -
    237 // Belize {
    -
    238 // LETTER '-0530' not single character,
    -
    239 // LETTER 'CDT' not single character,
    -
    240 // LETTER 'CPT' not single character,
    -
    241 // LETTER 'CST' not single character,
    -
    242 // LETTER 'CWT' not single character,
    -
    243 // SAVE '0:30' different from 1:00,
    -
    244 // }
    -
    245 // CA {AT '2:01' not multiple of :15 min}
    -
    246 // Cook {SAVE '0:30' different from 1:00}
    -
    247 // DR {
    -
    248 // LETTER '-0430' not single character,
    -
    249 // LETTER 'EDT' not single character,
    -
    250 // LETTER 'EST' not single character,
    -
    251 // SAVE '0:30' different from 1:00,
    -
    252 // }
    -
    253 // Eire {SAVE '-1:00' is a negative DST}
    -
    254 // France {SAVE '2:00' different from 1:00}
    -
    255 // GB-Eire {
    -
    256 // LETTER 'BDST' not single character,
    -
    257 // LETTER 'BST' not single character,
    -
    258 // LETTER 'GMT' not single character,
    -
    259 // SAVE '2:00' different from 1:00,
    -
    260 // }
    -
    261 // Germany {SAVE '2:00' different from 1:00}
    -
    262 // Guam {
    -
    263 // AT '0:01' not multiple of :15 min,
    -
    264 // AT '2:01' not multiple of :15 min,
    -
    265 // }
    -
    266 // LH {SAVE '0:30' different from 1:00}
    -
    267 // Louisville {AT '0:01' not multiple of :15 min}
    -
    268 // Moncton {AT '0:01' not multiple of :15 min}
    -
    269 // Morocco {SAVE '-1:00' is a negative DST}
    -
    270 // NBorneo {SAVE '0:20' different from 1:00}
    -
    271 // NZ {SAVE '0:30' different from 1:00}
    -
    272 // Namibia {
    -
    273 // LETTER 'CAT' not single character,
    -
    274 // LETTER 'WAT' not single character,
    -
    275 // SAVE '-1:00' is a negative DST,
    -
    276 // }
    -
    277 // Palestine {AT '0:01' not multiple of :15 min}
    -
    278 // Port {SAVE '2:00' different from 1:00}
    -
    279 // Russia {
    -
    280 // LETTER '+05' not single character,
    -
    281 // LETTER 'MDST' not single character,
    -
    282 // LETTER 'MMT' not single character,
    -
    283 // LETTER 'MSD' not single character,
    -
    284 // LETTER 'MSK' not single character,
    -
    285 // LETTER 'MST' not single character,
    -
    286 // SAVE '2:00' different from 1:00,
    -
    287 // }
    -
    288 // SovietZone {SAVE '2:00' different from 1:00}
    -
    289 // Spain {SAVE '2:00' different from 1:00}
    -
    290 // StJohns {
    -
    291 // AT '0:01' not multiple of :15 min,
    -
    292 // LETTER 'DD' not single character,
    -
    293 // SAVE '2:00' different from 1:00,
    -
    294 // }
    -
    295 // Troll {
    -
    296 // LETTER '+00' not single character,
    -
    297 // LETTER '+02' not single character,
    -
    298 // SAVE '2:00' different from 1:00,
    -
    299 // }
    -
    300 // Uruguay {
    -
    301 // SAVE '0:30' different from 1:00,
    -
    302 // SAVE '1:30' different from 1:00,
    -
    303 // }
    -
    304 // Yukon {
    -
    305 // LETTER 'DD' not single character,
    -
    306 // SAVE '2:00' different from 1:00,
    -
    307 // }
    -
    308 // Zion {
    -
    309 // LETTER 'DD' not single character,
    -
    310 // SAVE '2:00' different from 1:00,
    -
    311 // }
    -
    312 
    -
    313 
    -
    314 }
    -
    315 }
    -
    316 
    -
    317 #endif
    -
    - - - - diff --git a/docs/html/zonedbc_2zone__registry_8cpp_source.html b/docs/html/zonedbc_2zone__registry_8cpp_source.html deleted file mode 100644 index 800c0e67a..000000000 --- a/docs/html/zonedbc_2zone__registry_8cpp_source.html +++ /dev/null @@ -1,1118 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/zone_registry.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace zonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --start_year 1800
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [1800,2200]
    -
    33 // Accurate Years: [-32767,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1844,2087]
    -
    37 // Lower/Upper Truncated: [False,False]
    -
    38 //
    -
    39 // Estimator Years: [1800,2090]
    -
    40 // Max Buffer Size: 8
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 1956
    -
    45 // Policies: 134
    -
    46 // Rules: 2235
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 26820
    -
    51 // Policies: 402
    -
    52 // Eras: 29340
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 486
    -
    57 // Letters: 160
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 71989
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 26820
    -
    65 // Policies: 1072
    -
    66 // Eras: 39120
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 486
    -
    71 // Letters: 216
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 90292
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #include <zoneinfo/compat.h>
    -
    79 #include "zone_infos.h"
    -
    80 #include "zone_registry.h"
    -
    81 
    -
    82 namespace ace_time {
    -
    83 namespace zonedbc {
    -
    84 
    -
    85 //---------------------------------------------------------------------------
    -
    86 // Zone Info registry. Sorted by zoneId.
    -
    87 //---------------------------------------------------------------------------
    -
    88 const complete::Info::ZoneInfo* const kZoneRegistry[340] ACE_TIME_PROGMEM = {
    -
    89  &kZoneAmerica_St_Johns, // 0x04b14e6e, America/St_Johns
    -
    90  &kZoneAmerica_North_Dakota_New_Salem, // 0x04f9958e, America/North_Dakota/New_Salem
    -
    91  &kZoneAsia_Jakarta, // 0x0506ab50, Asia/Jakarta
    -
    92  &kZoneAmerica_Mazatlan, // 0x0532189e, America/Mazatlan
    -
    93  &kZonePacific_Fakaofo, // 0x06532bba, Pacific/Fakaofo
    -
    94  &kZoneAmerica_Hermosillo, // 0x065d21c4, America/Hermosillo
    -
    95  &kZoneAsia_Tbilisi, // 0x0903e442, Asia/Tbilisi
    -
    96  &kZoneAmerica_Indiana_Tell_City, // 0x09263612, America/Indiana/Tell_City
    -
    97  &kZoneAmerica_Boa_Vista, // 0x0a7b7efe, America/Boa_Vista
    -
    98  &kZoneAsia_Colombo, // 0x0af0e91d, Asia/Colombo
    -
    99  &kZoneAmerica_Guatemala, // 0x0c8259f7, America/Guatemala
    -
    100  &kZoneAfrica_Monrovia, // 0x0ce90385, Africa/Monrovia
    -
    101  &kZoneAntarctica_Rothera, // 0x0e86d203, Antarctica/Rothera
    -
    102  &kZoneAustralia_Melbourne, // 0x0fe559a3, Australia/Melbourne
    -
    103  &kZoneAmerica_Sao_Paulo, // 0x1063bfc9, America/Sao_Paulo
    -
    104  &kZoneAmerica_Indiana_Vevay, // 0x10aca054, America/Indiana/Vevay
    -
    105  &kZoneAmerica_Scoresbysund, // 0x123f8d2a, America/Scoresbysund
    -
    106  &kZoneAsia_Samarkand, // 0x13ae5104, Asia/Samarkand
    -
    107  &kZoneAsia_Amman, // 0x148d21bc, Asia/Amman
    -
    108  &kZoneAsia_Aqtau, // 0x148f710e, Asia/Aqtau
    -
    109  &kZoneAsia_Chita, // 0x14ae863b, Asia/Chita
    -
    110  &kZoneAsia_Dhaka, // 0x14c07b8b, Asia/Dhaka
    -
    111  &kZoneAsia_Dubai, // 0x14c79f77, Asia/Dubai
    -
    112  &kZoneAmerica_Bahia_Banderas, // 0x14f6329a, America/Bahia_Banderas
    -
    113  &kZoneAsia_Kabul, // 0x153b5601, Asia/Kabul
    -
    114  &kZoneAsia_Macau, // 0x155f88b9, Asia/Macau
    -
    115  &kZoneAsia_Qatar, // 0x15a8330b, Asia/Qatar
    -
    116  &kZoneAsia_Seoul, // 0x15ce82da, Asia/Seoul
    -
    117  &kZoneAsia_Tokyo, // 0x15e606a8, Asia/Tokyo
    -
    118  &kZoneAsia_Tomsk, // 0x15e60e60, Asia/Tomsk
    -
    119  &kZoneAsia_Thimphu, // 0x170380d1, Asia/Thimphu
    -
    120  &kZoneAmerica_Guayaquil, // 0x17e64958, America/Guayaquil
    -
    121  &kZoneAmerica_Kentucky_Louisville, // 0x1a21024b, America/Kentucky/Louisville
    -
    122  &kZoneAsia_Pontianak, // 0x1a76c057, Asia/Pontianak
    -
    123  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    124  &kZoneAsia_Baku, // 0x1fa788b5, Asia/Baku
    -
    125  &kZoneAsia_Dili, // 0x1fa8c394, Asia/Dili
    -
    126  &kZoneAsia_Gaza, // 0x1faa4875, Asia/Gaza
    -
    127  &kZoneAsia_Hovd, // 0x1fab0fe3, Asia/Hovd
    -
    128  &kZoneAsia_Omsk, // 0x1faeddac, Asia/Omsk
    -
    129  &kZoneAsia_Oral, // 0x1faef0a0, Asia/Oral
    -
    130  &kZoneAsia_Ho_Chi_Minh, // 0x20f2d127, Asia/Ho_Chi_Minh
    -
    131  &kZoneAsia_Damascus, // 0x20fbb063, Asia/Damascus
    -
    132  &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia
    -
    133  &kZonePacific_Fiji, // 0x23383ba5, Pacific/Fiji
    -
    134  &kZonePacific_Guam, // 0x2338f9ed, Pacific/Guam
    -
    135  &kZonePacific_Niue, // 0x233ca014, Pacific/Niue
    -
    136  &kZoneAustralia_Adelaide, // 0x2428e8a3, Australia/Adelaide
    -
    137  &kZonePacific_Auckland, // 0x25062f86, Pacific/Auckland
    -
    138  &kZonePacific_Tongatapu, // 0x262ca836, Pacific/Tongatapu
    -
    139  &kZoneAmerica_Monterrey, // 0x269a1deb, America/Monterrey
    -
    140  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    141  &kZoneAsia_Famagusta, // 0x289b4f8b, Asia/Famagusta
    -
    142  &kZoneAmerica_Indiana_Vincennes, // 0x28a0b212, America/Indiana/Vincennes
    -
    143  &kZoneAmerica_Indiana_Indianapolis, // 0x28a669a4, America/Indiana/Indianapolis
    -
    144  &kZoneAsia_Vladivostok, // 0x29de34a8, Asia/Vladivostok
    -
    145  &kZoneAmerica_Fortaleza, // 0x2ad018ee, America/Fortaleza
    -
    146  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    147  &kZoneAmerica_Iqaluit, // 0x2de310bf, America/Iqaluit
    -
    148  &kZonePacific_Chatham, // 0x2f0de999, Pacific/Chatham
    -
    149  &kZoneAmerica_Indiana_Marengo, // 0x2feeee72, America/Indiana/Marengo
    -
    150  &kZoneEurope_Tallinn, // 0x30c4e096, Europe/Tallinn
    -
    151  &kZoneAsia_Ulaanbaatar, // 0x30f0cc4e, Asia/Ulaanbaatar
    -
    152  &kZoneAmerica_Argentina_Ushuaia, // 0x320dcdde, America/Argentina/Ushuaia
    -
    153  &kZoneAustralia_Hobart, // 0x32bf951a, Australia/Hobart
    -
    154  &kZoneAsia_Dushanbe, // 0x32fc5c3c, Asia/Dushanbe
    -
    155  &kZoneAtlantic_South_Georgia, // 0x33013174, Atlantic/South_Georgia
    -
    156  &kZoneAmerica_Phoenix, // 0x34b5af01, America/Phoenix
    -
    157  &kZoneAntarctica_Mawson, // 0x399cd863, Antarctica/Mawson
    -
    158  &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas
    -
    159  &kZoneAmerica_Cayenne, // 0x3c617269, America/Cayenne
    -
    160  &kZoneAtlantic_Bermuda, // 0x3d4bb1c4, Atlantic/Bermuda
    -
    161  &kZoneAmerica_Managua, // 0x3d5e7600, America/Managua
    -
    162  &kZoneAmerica_Argentina_San_Juan, // 0x3e1009bd, America/Argentina/San_Juan
    -
    163  &kZoneAmerica_Argentina_San_Luis, // 0x3e11238c, America/Argentina/San_Luis
    -
    164  &kZoneEurope_Volgograd, // 0x3ed0f389, Europe/Volgograd
    -
    165  &kZoneAmerica_Fort_Nelson, // 0x3f437e0f, America/Fort_Nelson
    -
    166  &kZoneEtc_GMT_PLUS_10, // 0x3f8f1cc4, Etc/GMT+10
    -
    167  &kZoneEtc_GMT_PLUS_11, // 0x3f8f1cc5, Etc/GMT+11
    -
    168  &kZoneEtc_GMT_PLUS_12, // 0x3f8f1cc6, Etc/GMT+12
    -
    169  &kZoneEtc_GMT_10, // 0x3f8f2546, Etc/GMT-10
    -
    170  &kZoneEtc_GMT_11, // 0x3f8f2547, Etc/GMT-11
    -
    171  &kZoneEtc_GMT_12, // 0x3f8f2548, Etc/GMT-12
    -
    172  &kZoneEtc_GMT_13, // 0x3f8f2549, Etc/GMT-13
    -
    173  &kZoneEtc_GMT_14, // 0x3f8f254a, Etc/GMT-14
    -
    174  &kZoneAntarctica_Palmer, // 0x40962f4f, Antarctica/Palmer
    -
    175  &kZoneEurope_Athens, // 0x4318fa27, Europe/Athens
    -
    176  &kZoneAmerica_Indiana_Winamac, // 0x4413fa69, America/Indiana/Winamac
    -
    177  &kZoneEurope_Berlin, // 0x44644c20, Europe/Berlin
    -
    178  &kZoneIndian_Chagos, // 0x456f7c3c, Indian/Chagos
    -
    179  &kZoneAsia_Ust_Nera, // 0x4785f921, Asia/Ust-Nera
    -
    180  &kZoneEurope_Dublin, // 0x4a275f62, Europe/Dublin
    -
    181  &kZoneAsia_Nicosia, // 0x4b0fcf78, Asia/Nicosia
    -
    182  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    183  &kZoneAustralia_Sydney, // 0x4d1e9776, Australia/Sydney
    -
    184  &kZoneAntarctica_Vostok, // 0x4f966fd4, Antarctica/Vostok
    -
    185  &kZoneAustralia_Brisbane, // 0x4fedc9c0, Australia/Brisbane
    -
    186  &kZoneAmerica_Asuncion, // 0x50ec79a6, America/Asuncion
    -
    187  &kZoneAsia_Karachi, // 0x527f5245, Asia/Karachi
    -
    188  &kZonePacific_Gambier, // 0x53720c3a, Pacific/Gambier
    -
    189  &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse
    -
    190  &kZoneAmerica_Martinique, // 0x551e84c5, America/Martinique
    -
    191  &kZoneAmerica_Jamaica, // 0x565dad6c, America/Jamaica
    -
    192  &kZoneAsia_Hong_Kong, // 0x577f28ac, Asia/Hong_Kong
    -
    193  &kZonePacific_Marquesas, // 0x57ca7135, Pacific/Marquesas
    -
    194  &kZoneAmerica_Miquelon, // 0x59674330, America/Miquelon
    -
    195  &kZoneAmerica_Anchorage, // 0x5a79260e, America/Anchorage
    -
    196  &kZoneAsia_Jerusalem, // 0x5becd23a, Asia/Jerusalem
    -
    197  &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon
    -
    198  &kZoneAtlantic_Cape_Verde, // 0x5c5e1772, Atlantic/Cape_Verde
    -
    199  &kZoneEurope_London, // 0x5c6a84ae, Europe/London
    -
    200  &kZoneEurope_Madrid, // 0x5dbd1535, Europe/Madrid
    -
    201  &kZoneAmerica_Moncton, // 0x5e07fe24, America/Moncton
    -
    202  &kZonePacific_Bougainville, // 0x5e10f7a4, Pacific/Bougainville
    -
    203  &kZoneEurope_Moscow, // 0x5ec266fc, Europe/Moscow
    -
    204  &kZoneAmerica_Argentina_Jujuy, // 0x5f2f46c5, America/Argentina/Jujuy
    -
    205  &kZoneAmerica_Argentina_Salta, // 0x5fc73403, America/Argentina/Salta
    -
    206  &kZonePacific_Pago_Pago, // 0x603aebd0, Pacific/Pago_Pago
    -
    207  &kZoneAfrica_Sao_Tome, // 0x61b319d1, Africa/Sao_Tome
    -
    208  &kZoneAmerica_Costa_Rica, // 0x63ff66be, America/Costa_Rica
    -
    209  &kZoneAsia_Qostanay, // 0x654fe522, Asia/Qostanay
    -
    210  &kZoneAmerica_Indiana_Knox, // 0x6554adc9, America/Indiana/Knox
    -
    211  &kZoneEurope_Prague, // 0x65ee5d48, Europe/Prague
    -
    212  &kZoneAmerica_Puerto_Rico, // 0x6752ca31, America/Puerto_Rico
    -
    213  &kZoneAsia_Novokuznetsk, // 0x69264f93, Asia/Novokuznetsk
    -
    214  &kZoneAmerica_Tijuana, // 0x6aa1df72, America/Tijuana
    -
    215  &kZoneAsia_Makassar, // 0x6aa21c85, Asia/Makassar
    -
    216  &kZoneEurope_Helsinki, // 0x6ab2975b, Europe/Helsinki
    -
    217  &kZoneAmerica_Porto_Velho, // 0x6b1aac77, America/Porto_Velho
    -
    218  &kZoneEurope_Samara, // 0x6bc0b139, Europe/Samara
    -
    219  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    220  &kZoneAmerica_Dawson_Creek, // 0x6cf24e5b, America/Dawson_Creek
    -
    221  &kZoneAmerica_Grand_Turk, // 0x6e216197, America/Grand_Turk
    -
    222  &kZoneEurope_Tirane, // 0x6ea95b47, Europe/Tirane
    -
    223  &kZoneAmerica_Araguaina, // 0x6f9a3aef, America/Araguaina
    -
    224  &kZoneAsia_Qyzylorda, // 0x71282e81, Asia/Qyzylorda
    -
    225  &kZoneAsia_Kolkata, // 0x72c06cd9, Asia/Kolkata
    -
    226  &kZoneAmerica_Ciudad_Juarez, // 0x7347fc60, America/Ciudad_Juarez
    -
    227  &kZoneEurope_Vienna, // 0x734cc2e5, Europe/Vienna
    -
    228  &kZoneAsia_Kamchatka, // 0x73baf9d7, Asia/Kamchatka
    -
    229  &kZoneAmerica_Santarem, // 0x740caec1, America/Santarem
    -
    230  &kZoneAmerica_Santiago, // 0x7410c9bc, America/Santiago
    -
    231  &kZoneEurope_Warsaw, // 0x75185c19, Europe/Warsaw
    -
    232  &kZoneAmerica_El_Salvador, // 0x752ad652, America/El_Salvador
    -
    233  &kZoneAfrica_Bissau, // 0x75564141, Africa/Bissau
    -
    234  &kZoneAmerica_Santo_Domingo, // 0x75a0d177, America/Santo_Domingo
    -
    235  &kZoneAfrica_Cairo, // 0x77f8e228, Africa/Cairo
    -
    236  &kZoneAfrica_Ceuta, // 0x77fb46ec, Africa/Ceuta
    -
    237  &kZoneAfrica_Lagos, // 0x789bb5d0, Africa/Lagos
    -
    238  &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek
    -
    239  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    240  &kZoneAfrica_Tunis, // 0x79378e6d, Africa/Tunis
    -
    241  &kZoneIndian_Mauritius, // 0x7b09c02a, Indian/Mauritius
    -
    242  &kZoneAtlantic_Stanley, // 0x7bb3e1c4, Atlantic/Stanley
    -
    243  &kZoneEurope_Zurich, // 0x7d8195b9, Europe/Zurich
    -
    244  &kZoneAsia_Kuching, // 0x801b003b, Asia/Kuching
    -
    245  &kZoneAtlantic_Madeira, // 0x81b5c037, Atlantic/Madeira
    -
    246  &kZonePacific_Kiritimati, // 0x8305073a, Pacific/Kiritimati
    -
    247  &kZoneAmerica_Metlakatla, // 0x84de2686, America/Metlakatla
    -
    248  &kZoneAsia_Yakutsk, // 0x87bb3a9e, Asia/Yakutsk
    -
    249  &kZoneAmerica_Chihuahua, // 0x8827d776, America/Chihuahua
    -
    250  &kZonePacific_Pitcairn, // 0x8837d8bd, Pacific/Pitcairn
    -
    251  &kZonePacific_Efate, // 0x8a2bce28, Pacific/Efate
    -
    252  &kZonePacific_Nauru, // 0x8acc41ae, Pacific/Nauru
    -
    253  &kZonePacific_Palau, // 0x8af04a36, Pacific/Palau
    -
    254  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    255  &kZoneAustralia_Eucla, // 0x8cf99e44, Australia/Eucla
    -
    256  &kZoneAmerica_Argentina_Catamarca, // 0x8d40986b, America/Argentina/Catamarca
    -
    257  &kZoneAustralia_Perth, // 0x8db8269d, Australia/Perth
    -
    258  &kZonePacific_Kwajalein, // 0x8e216759, Pacific/Kwajalein
    -
    259  &kZoneAmerica_Port_au_Prince, // 0x8e4a7bdc, America/Port-au-Prince
    -
    260  &kZoneAfrica_Maputo, // 0x8e6ca1f0, Africa/Maputo
    -
    261  &kZonePacific_Norfolk, // 0x8f4eb4be, Pacific/Norfolk
    -
    262  &kZoneAsia_Yerevan, // 0x9185c8cc, Asia/Yerevan
    -
    263  &kZoneAmerica_Detroit, // 0x925cfbc1, America/Detroit
    -
    264  &kZoneAntarctica_Macquarie, // 0x92f47626, Antarctica/Macquarie
    -
    265  &kZoneAmerica_Belize, // 0x93256c81, America/Belize
    -
    266  &kZoneAmerica_Bogota, // 0x93d7bc62, America/Bogota
    -
    267  &kZoneAsia_Pyongyang, // 0x93ed1c8e, Asia/Pyongyang
    -
    268  &kZoneAmerica_Indiana_Petersburg, // 0x94ac7acc, America/Indiana/Petersburg
    -
    269  &kZoneAmerica_Cancun, // 0x953331be, America/Cancun
    -
    270  &kZoneAmerica_Glace_Bay, // 0x9681f8dd, America/Glace_Bay
    -
    271  &kZoneAsia_Khandyga, // 0x9685a4d9, Asia/Khandyga
    -
    272  &kZoneAmerica_Cuiaba, // 0x969a52eb, America/Cuiaba
    -
    273  &kZoneAmerica_Dawson, // 0x978d8d12, America/Dawson
    -
    274  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    275  &kZoneAmerica_Bahia, // 0x97d815fb, America/Bahia
    -
    276  &kZoneAmerica_Belem, // 0x97da580b, America/Belem
    -
    277  &kZoneAmerica_Boise, // 0x97dfc8d8, America/Boise
    -
    278  &kZoneEurope_Andorra, // 0x97f6764b, Europe/Andorra
    -
    279  &kZoneAmerica_Adak, // 0x97fe49d7, America/Adak
    -
    280  &kZoneAmerica_Lima, // 0x980468c9, America/Lima
    -
    281  &kZoneAmerica_Nome, // 0x98059b15, America/Nome
    -
    282  &kZoneAmerica_Nuuk, // 0x9805b5a9, America/Nuuk
    -
    283  &kZoneIndian_Maldives, // 0x9869681c, Indian/Maldives
    -
    284  &kZoneAmerica_Sitka, // 0x99104ce2, America/Sitka
    -
    285  &kZoneAmerica_Thule, // 0x9921dd68, America/Thule
    -
    286  &kZonePacific_Rarotonga, // 0x9981a3b0, Pacific/Rarotonga
    -
    287  &kZoneAsia_Kathmandu, // 0x9a96ce6f, Asia/Kathmandu
    -
    288  &kZoneAmerica_North_Dakota_Beulah, // 0x9b52b384, America/North_Dakota/Beulah
    -
    289  &kZoneEurope_Budapest, // 0x9ce0197c, Europe/Budapest
    -
    290  &kZoneAsia_Baghdad, // 0x9ceffbed, Asia/Baghdad
    -
    291  &kZoneEtc_GMT_PLUS_1, // 0x9d13da14, Etc/GMT+1
    -
    292  &kZoneEtc_GMT_PLUS_2, // 0x9d13da15, Etc/GMT+2
    -
    293  &kZoneEtc_GMT_PLUS_3, // 0x9d13da16, Etc/GMT+3
    -
    294  &kZoneEtc_GMT_PLUS_4, // 0x9d13da17, Etc/GMT+4
    -
    295  &kZoneEtc_GMT_PLUS_5, // 0x9d13da18, Etc/GMT+5
    -
    296  &kZoneEtc_GMT_PLUS_6, // 0x9d13da19, Etc/GMT+6
    -
    297  &kZoneEtc_GMT_PLUS_7, // 0x9d13da1a, Etc/GMT+7
    -
    298  &kZoneEtc_GMT_PLUS_8, // 0x9d13da1b, Etc/GMT+8
    -
    299  &kZoneEtc_GMT_PLUS_9, // 0x9d13da1c, Etc/GMT+9
    -
    300  &kZoneEtc_GMT_1, // 0x9d13da56, Etc/GMT-1
    -
    301  &kZoneEtc_GMT_2, // 0x9d13da57, Etc/GMT-2
    -
    302  &kZoneEtc_GMT_3, // 0x9d13da58, Etc/GMT-3
    -
    303  &kZoneEtc_GMT_4, // 0x9d13da59, Etc/GMT-4
    -
    304  &kZoneEtc_GMT_5, // 0x9d13da5a, Etc/GMT-5
    -
    305  &kZoneEtc_GMT_6, // 0x9d13da5b, Etc/GMT-6
    -
    306  &kZoneEtc_GMT_7, // 0x9d13da5c, Etc/GMT-7
    -
    307  &kZoneEtc_GMT_8, // 0x9d13da5d, Etc/GMT-8
    -
    308  &kZoneEtc_GMT_9, // 0x9d13da5e, Etc/GMT-9
    -
    309  &kZoneAmerica_Rio_Branco, // 0x9d352764, America/Rio_Branco
    -
    310  &kZoneAsia_Bangkok, // 0x9d6e3aaf, Asia/Bangkok
    -
    311  &kZoneAfrica_El_Aaiun, // 0x9d6fb118, Africa/El_Aaiun
    -
    312  &kZoneAmerica_North_Dakota_Center, // 0x9da42814, America/North_Dakota/Center
    -
    313  &kZoneAsia_Barnaul, // 0x9dba4997, Asia/Barnaul
    -
    314  &kZoneAfrica_Tripoli, // 0x9dfebd3d, Africa/Tripoli
    -
    315  &kZoneEurope_Istanbul, // 0x9e09d6e6, Europe/Istanbul
    -
    316  &kZoneAfrica_Ndjamena, // 0x9fe09898, Africa/Ndjamena
    -
    317  &kZoneAmerica_Guyana, // 0x9ff7bd0b, America/Guyana
    -
    318  &kZoneAmerica_Havana, // 0xa0e15675, America/Havana
    -
    319  &kZoneAsia_Novosibirsk, // 0xa2a435cb, Asia/Novosibirsk
    -
    320  &kZoneEurope_Kyiv, // 0xa2c1e347, Europe/Kyiv
    -
    321  &kZoneEurope_Riga, // 0xa2c57587, Europe/Riga
    -
    322  &kZoneEurope_Rome, // 0xa2c58fd7, Europe/Rome
    -
    323  &kZoneAmerica_Inuvik, // 0xa42189fc, America/Inuvik
    -
    324  &kZoneAmerica_Argentina_La_Rioja, // 0xa46b7eef, America/Argentina/La_Rioja
    -
    325  &kZoneAsia_Almaty, // 0xa61f41fa, Asia/Almaty
    -
    326  &kZoneAsia_Anadyr, // 0xa63cebd1, Asia/Anadyr
    -
    327  &kZoneAsia_Aqtobe, // 0xa67dcc4e, Asia/Aqtobe
    -
    328  &kZoneAsia_Atyrau, // 0xa6b6e068, Asia/Atyrau
    -
    329  &kZoneAmerica_Juneau, // 0xa6f13e2e, America/Juneau
    -
    330  &kZoneAustralia_Lord_Howe, // 0xa748b67d, Australia/Lord_Howe
    -
    331  &kZonePacific_Port_Moresby, // 0xa7ba7f68, Pacific/Port_Moresby
    -
    332  &kZoneAsia_Beirut, // 0xa7f3d5fd, Asia/Beirut
    -
    333  &kZoneAfrica_Nairobi, // 0xa87ab57e, Africa/Nairobi
    -
    334  &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos
    -
    335  &kZoneAmerica_Argentina_Mendoza, // 0xa9f72d5c, America/Argentina/Mendoza
    -
    336  &kZoneAmerica_La_Paz, // 0xaa29125d, America/La_Paz
    -
    337  &kZoneAmerica_Noronha, // 0xab5116fb, America/Noronha
    -
    338  &kZoneAmerica_Maceio, // 0xac80c6d4, America/Maceio
    -
    339  &kZoneAmerica_Manaus, // 0xac86bf8b, America/Manaus
    -
    340  &kZoneAmerica_Merida, // 0xacd172d8, America/Merida
    -
    341  &kZoneEurope_Chisinau, // 0xad58aa18, Europe/Chisinau
    -
    342  &kZoneAustralia_Broken_Hill, // 0xb06eada3, Australia/Broken_Hill
    -
    343  &kZoneAsia_Bishkek, // 0xb0728553, Asia/Bishkek
    -
    344  &kZoneAmerica_Paramaribo, // 0xb319e4c4, America/Paramaribo
    -
    345  &kZoneAmerica_Panama, // 0xb3863854, America/Panama
    -
    346  &kZoneAsia_Hebron, // 0xb5eef250, Asia/Hebron
    -
    347  &kZoneAmerica_Goose_Bay, // 0xb649541e, America/Goose_Bay
    -
    348  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    349  &kZoneAmerica_Recife, // 0xb8730494, America/Recife
    -
    350  &kZoneAmerica_Regina, // 0xb875371c, America/Regina
    -
    351  &kZoneAsia_Ashgabat, // 0xba87598d, Asia/Ashgabat
    -
    352  &kZoneAmerica_Halifax, // 0xbc5b7183, America/Halifax
    -
    353  &kZoneAsia_Srednekolymsk, // 0xbf8e337d, Asia/Srednekolymsk
    -
    354  &kZoneAmerica_Argentina_Cordoba, // 0xbfccc308, America/Argentina/Cordoba
    -
    355  &kZoneAmerica_Tegucigalpa, // 0xbfd6fd4c, America/Tegucigalpa
    -
    356  &kZoneAsia_Manila, // 0xc156c944, Asia/Manila
    -
    357  &kZoneAfrica_Abidjan, // 0xc21305a3, Africa/Abidjan
    -
    358  &kZoneAmerica_Punta_Arenas, // 0xc2c3bce7, America/Punta_Arenas
    -
    359  &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca
    -
    360  &kZoneAmerica_Argentina_Rio_Gallegos, // 0xc5b0f565, America/Argentina/Rio_Gallegos
    -
    361  &kZoneAsia_Jayapura, // 0xc6833c2f, Asia/Jayapura
    -
    362  &kZoneAmerica_Resolute, // 0xc7093459, America/Resolute
    -
    363  &kZoneAmerica_Rankin_Inlet, // 0xc8de4984, America/Rankin_Inlet
    -
    364  &kZoneAmerica_Barbados, // 0xcbbc3b04, America/Barbados
    -
    365  &kZoneAmerica_Coyhaique, // 0xcc3314ee, America/Coyhaique
    -
    366  &kZoneAsia_Riyadh, // 0xcd973d93, Asia/Riyadh
    -
    367  &kZonePacific_Easter, // 0xcf54f7e7, Pacific/Easter
    -
    368  &kZoneAsia_Singapore, // 0xcf8581fa, Asia/Singapore
    -
    369  &kZoneAsia_Krasnoyarsk, // 0xd0376c6a, Asia/Krasnoyarsk
    -
    370  &kZoneAmerica_Mexico_City, // 0xd0d93f43, America/Mexico_City
    -
    371  &kZoneAsia_Taipei, // 0xd1a844ae, Asia/Taipei
    -
    372  &kZoneAsia_Tehran, // 0xd1f02254, Asia/Tehran
    -
    373  &kZoneEurope_Kaliningrad, // 0xd33b2f28, Europe/Kaliningrad
    -
    374  &kZoneAmerica_Argentina_Buenos_Aires, // 0xd43b4c0d, America/Argentina/Buenos_Aires
    -
    375  &kZoneAfrica_Juba, // 0xd51b395c, Africa/Juba
    -
    376  &kZoneAsia_Urumqi, // 0xd5379735, Asia/Urumqi
    -
    377  &kZoneAmerica_Cambridge_Bay, // 0xd5a44aff, America/Cambridge_Bay
    -
    378  &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg
    -
    379  &kZoneEtc_GMT, // 0xd8e2de58, Etc/GMT
    -
    380  &kZoneEtc_UTC, // 0xd8e31abc, Etc/UTC
    -
    381  &kZoneAmerica_Yakutat, // 0xd8ee31e9, America/Yakutat
    -
    382  &kZoneAfrica_Algiers, // 0xd94515c1, Africa/Algiers
    -
    383  &kZoneEurope_Simferopol, // 0xda9eb724, Europe/Simferopol
    -
    384  &kZoneAmerica_Matamoros, // 0xdd1b0259, America/Matamoros
    -
    385  &kZonePacific_Kanton, // 0xdd512f0e, Pacific/Kanton
    -
    386  &kZoneAsia_Yangon, // 0xdd54a8be, Asia/Yangon
    -
    387  &kZoneEurope_Vilnius, // 0xdd63b8ce, Europe/Vilnius
    -
    388  &kZonePacific_Kosrae, // 0xde5139a8, Pacific/Kosrae
    -
    389  &kZoneAmerica_Kentucky_Monticello, // 0xde71c439, America/Kentucky/Monticello
    -
    390  &kZoneEurope_Brussels, // 0xdee07337, Europe/Brussels
    -
    391  &kZoneAmerica_Swift_Current, // 0xdef98e55, America/Swift_Current
    -
    392  &kZoneAsia_Irkutsk, // 0xdfbf213f, Asia/Irkutsk
    -
    393  &kZoneEurope_Ulyanovsk, // 0xe03783d0, Europe/Ulyanovsk
    -
    394  &kZoneAustralia_Lindeman, // 0xe05029e2, Australia/Lindeman
    -
    395  &kZoneEurope_Belgrade, // 0xe0532b3a, Europe/Belgrade
    -
    396  &kZoneAmerica_Menominee, // 0xe0e9c583, America/Menominee
    -
    397  &kZoneAtlantic_Faroe, // 0xe110a971, Atlantic/Faroe
    -
    398  &kZoneAntarctica_Casey, // 0xe2022583, Antarctica/Casey
    -
    399  &kZoneAntarctica_Davis, // 0xe2144b45, Antarctica/Davis
    -
    400  &kZoneEurope_Astrakhan, // 0xe22256e1, Europe/Astrakhan
    -
    401  &kZoneAntarctica_Troll, // 0xe33f085b, Antarctica/Troll
    -
    402  &kZoneEurope_Saratov, // 0xe4315da4, Europe/Saratov
    -
    403  &kZonePacific_Noumea, // 0xe551b788, Pacific/Noumea
    -
    404  &kZonePacific_Honolulu, // 0xe6e70af9, Pacific/Honolulu
    -
    405  &kZoneAmerica_Argentina_Tucuman, // 0xe96399eb, America/Argentina/Tucuman
    -
    406  &kZoneAsia_Magadan, // 0xebacc19b, Asia/Magadan
    -
    407  &kZoneAmerica_Ojinaga, // 0xebfde83f, America/Ojinaga
    -
    408  &kZonePacific_Tahiti, // 0xf24c2446, Pacific/Tahiti
    -
    409  &kZonePacific_Tarawa, // 0xf2517e63, Pacific/Tarawa
    -
    410  &kZoneAsia_Tashkent, // 0xf3924254, Asia/Tashkent
    -
    411  &kZoneAsia_Sakhalin, // 0xf4a1c9bd, Asia/Sakhalin
    -
    412  &kZonePacific_Guadalcanal, // 0xf4dd25f0, Pacific/Guadalcanal
    -
    413  &kZoneAmerica_Danmarkshavn, // 0xf554d204, America/Danmarkshavn
    -
    414  &kZoneAsia_Shanghai, // 0xf895a7f5, Asia/Shanghai
    -
    415  &kZoneEurope_Gibraltar, // 0xf8e325fc, Europe/Gibraltar
    -
    416  &kZoneAtlantic_Azores, // 0xf93ed918, Atlantic/Azores
    -
    417  &kZoneAmerica_Eirunepe, // 0xf9b29683, America/Eirunepe
    -
    418  &kZoneAmerica_Montevideo, // 0xfa214780, America/Montevideo
    -
    419  &kZoneEurope_Kirov, // 0xfaf5abef, Europe/Kirov
    -
    420  &kZoneEurope_Malta, // 0xfb1560f3, Europe/Malta
    -
    421  &kZoneEurope_Minsk, // 0xfb19cc66, Europe/Minsk
    -
    422  &kZoneEurope_Bucharest, // 0xfb349ec5, Europe/Bucharest
    -
    423  &kZoneAfrica_Khartoum, // 0xfb3d4205, Africa/Khartoum
    -
    424  &kZoneEurope_Paris, // 0xfb4bc2a3, Europe/Paris
    -
    425  &kZoneAsia_Yekaterinburg, // 0xfb544c6e, Asia/Yekaterinburg
    -
    426  &kZoneEurope_Sofia, // 0xfb898656, Europe/Sofia
    -
    427  &kZoneAtlantic_Canary, // 0xfc23f2c2, Atlantic/Canary
    -
    428  &kZoneAmerica_Campo_Grande, // 0xfec3e7a6, America/Campo_Grande
    -
    429 
    -
    430 };
    -
    431 
    -
    432 //---------------------------------------------------------------------------
    -
    433 // Zone and Link (fat) Info registry. Sorted by zoneId. Links act like Zones.
    -
    434 //---------------------------------------------------------------------------
    -
    435 const complete::Info::ZoneInfo* const kZoneAndLinkRegistry[597] ACE_TIME_PROGMEM = {
    -
    436  &kZoneGB, // 0x005973ae, GB -> Europe/London
    -
    437  &kZoneNZ, // 0x005974ad, NZ -> Pacific/Auckland
    -
    438  &kZoneAsia_Kuala_Lumpur, // 0x014763c4, Asia/Kuala_Lumpur -> Asia/Singapore
    -
    439  &kZoneAfrica_Libreville, // 0x01d96de4, Africa/Libreville -> Africa/Lagos
    -
    440  &kZoneIndian_Cocos, // 0x021e86de, Indian/Cocos -> Asia/Yangon
    -
    441  &kZoneAustralia_Victoria, // 0x0260d5db, Australia/Victoria -> Australia/Melbourne
    -
    442  &kZoneAtlantic_Faeroe, // 0x031ec516, Atlantic/Faeroe -> Atlantic/Faroe
    -
    443  &kZoneAmerica_St_Johns, // 0x04b14e6e, America/St_Johns
    -
    444  &kZoneAmerica_St_Kitts, // 0x04c0507b, America/St_Kitts -> America/Puerto_Rico
    -
    445  &kZoneAfrica_Ouagadougou, // 0x04d7219a, Africa/Ouagadougou -> Africa/Abidjan
    -
    446  &kZoneAmerica_St_Lucia, // 0x04d8b3ba, America/St_Lucia -> America/Puerto_Rico
    -
    447  &kZoneAmerica_North_Dakota_New_Salem, // 0x04f9958e, America/North_Dakota/New_Salem
    -
    448  &kZoneAsia_Jakarta, // 0x0506ab50, Asia/Jakarta
    -
    449  &kZoneAfrica_Bujumbura, // 0x05232a47, Africa/Bujumbura -> Africa/Maputo
    -
    450  &kZoneAmerica_Mazatlan, // 0x0532189e, America/Mazatlan
    -
    451  &kZoneAmerica_St_Barthelemy, // 0x054e6a79, America/St_Barthelemy -> America/Puerto_Rico
    -
    452  &kZoneAfrica_Addis_Ababa, // 0x05ae1e65, Africa/Addis_Ababa -> Africa/Nairobi
    -
    453  &kZonePacific_Fakaofo, // 0x06532bba, Pacific/Fakaofo
    -
    454  &kZoneAmerica_Hermosillo, // 0x065d21c4, America/Hermosillo
    -
    455  &kZoneMexico_BajaSur, // 0x08ee3641, Mexico/BajaSur -> America/Mazatlan
    -
    456  &kZoneAsia_Tbilisi, // 0x0903e442, Asia/Tbilisi
    -
    457  &kZoneAmerica_Indiana_Tell_City, // 0x09263612, America/Indiana/Tell_City
    -
    458  &kZoneUS_Hawaii, // 0x09c8de2f, US/Hawaii -> Pacific/Honolulu
    -
    459  &kZoneAmerica_Boa_Vista, // 0x0a7b7efe, America/Boa_Vista
    -
    460  &kZoneAsia_Colombo, // 0x0af0e91d, Asia/Colombo
    -
    461  &kZoneCET, // 0x0b87d921, CET -> Europe/Brussels
    -
    462  &kZoneEET, // 0x0b87e1a3, EET -> Europe/Athens
    -
    463  &kZoneEST, // 0x0b87e371, EST -> America/Panama
    -
    464  &kZoneGMT, // 0x0b87eb2d, GMT -> Etc/GMT
    -
    465  &kZoneHST, // 0x0b87f034, HST -> Pacific/Honolulu
    -
    466  &kZoneMET, // 0x0b8803ab, MET -> Europe/Brussels
    -
    467  &kZoneMST, // 0x0b880579, MST -> America/Phoenix
    -
    468  &kZonePRC, // 0x0b88120a, PRC -> Asia/Shanghai
    -
    469  &kZoneROC, // 0x0b881a29, ROC -> Asia/Taipei
    -
    470  &kZoneROK, // 0x0b881a31, ROK -> Asia/Seoul
    -
    471  &kZoneUCT, // 0x0b882571, UCT -> Etc/UTC
    -
    472  &kZoneUTC, // 0x0b882791, UTC -> Etc/UTC
    -
    473  &kZoneWET, // 0x0b882e35, WET -> Europe/Lisbon
    -
    474  &kZoneAmerica_Guatemala, // 0x0c8259f7, America/Guatemala
    -
    475  &kZoneEurope_Mariehamn, // 0x0caa6496, Europe/Mariehamn -> Europe/Helsinki
    -
    476  &kZoneAfrica_Monrovia, // 0x0ce90385, Africa/Monrovia
    -
    477  &kZoneEgypt, // 0x0d1a278e, Egypt -> Africa/Cairo
    -
    478  &kZoneGMT_PLUS_0, // 0x0d2f7028, GMT+0 -> Etc/GMT
    -
    479  &kZoneGMT_0, // 0x0d2f706a, GMT-0 -> Etc/GMT
    -
    480  &kZoneJapan, // 0x0d712f8f, Japan -> Asia/Tokyo
    -
    481  &kZoneLibya, // 0x0d998b16, Libya -> Africa/Tripoli
    -
    482  &kZoneKwajalein, // 0x0e57afbb, Kwajalein -> Pacific/Kwajalein
    -
    483  &kZoneAntarctica_Rothera, // 0x0e86d203, Antarctica/Rothera
    -
    484  &kZoneAmerica_Yellowknife, // 0x0f76c76f, America/Yellowknife -> America/Edmonton
    -
    485  &kZoneAustralia_Melbourne, // 0x0fe559a3, Australia/Melbourne
    -
    486  &kZoneAmerica_Sao_Paulo, // 0x1063bfc9, America/Sao_Paulo
    -
    487  &kZoneEurope_Amsterdam, // 0x109395c2, Europe/Amsterdam -> Europe/Brussels
    -
    488  &kZoneAmerica_Indiana_Vevay, // 0x10aca054, America/Indiana/Vevay
    -
    489  &kZoneAmerica_Scoresbysund, // 0x123f8d2a, America/Scoresbysund
    -
    490  &kZoneAsia_Samarkand, // 0x13ae5104, Asia/Samarkand
    -
    491  &kZoneAsia_Amman, // 0x148d21bc, Asia/Amman
    -
    492  &kZoneAsia_Aqtau, // 0x148f710e, Asia/Aqtau
    -
    493  &kZoneAsia_Chita, // 0x14ae863b, Asia/Chita
    -
    494  &kZoneAsia_Dacca, // 0x14bcac5e, Asia/Dacca -> Asia/Dhaka
    -
    495  &kZoneAsia_Dhaka, // 0x14c07b8b, Asia/Dhaka
    -
    496  &kZoneAsia_Dubai, // 0x14c79f77, Asia/Dubai
    -
    497  &kZoneAmerica_Bahia_Banderas, // 0x14f6329a, America/Bahia_Banderas
    -
    498  &kZoneAsia_Kabul, // 0x153b5601, Asia/Kabul
    -
    499  &kZoneAsia_Ashkhabad, // 0x15454f09, Asia/Ashkhabad -> Asia/Ashgabat
    -
    500  &kZoneAsia_Macao, // 0x155f88b3, Asia/Macao -> Asia/Macau
    -
    501  &kZoneAsia_Macau, // 0x155f88b9, Asia/Macau
    -
    502  &kZoneAsia_Qatar, // 0x15a8330b, Asia/Qatar
    -
    503  &kZoneAsia_Seoul, // 0x15ce82da, Asia/Seoul
    -
    504  &kZoneAsia_Tokyo, // 0x15e606a8, Asia/Tokyo
    -
    505  &kZoneAsia_Tomsk, // 0x15e60e60, Asia/Tomsk
    -
    506  &kZoneAsia_Tel_Aviv, // 0x166d7c2c, Asia/Tel_Aviv -> Asia/Jerusalem
    -
    507  &kZoneAsia_Thimphu, // 0x170380d1, Asia/Thimphu
    -
    508  &kZoneAmerica_Guayaquil, // 0x17e64958, America/Guayaquil
    -
    509  &kZoneAmerica_Montserrat, // 0x199b0a35, America/Montserrat -> America/Puerto_Rico
    -
    510  &kZoneAmerica_Kentucky_Louisville, // 0x1a21024b, America/Kentucky/Louisville
    -
    511  &kZoneAsia_Pontianak, // 0x1a76c057, Asia/Pontianak
    -
    512  &kZoneEurope_Podgorica, // 0x1c1a499c, Europe/Podgorica -> Europe/Belgrade
    -
    513  &kZoneAtlantic_Reykjavik, // 0x1c2b4f74, Atlantic/Reykjavik -> Africa/Abidjan
    -
    514  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    515  &kZoneEurope_Luxembourg, // 0x1f8bc6ce, Europe/Luxembourg -> Europe/Brussels
    -
    516  &kZoneAsia_Aden, // 0x1fa7084a, Asia/Aden -> Asia/Riyadh
    -
    517  &kZoneAsia_Baku, // 0x1fa788b5, Asia/Baku
    -
    518  &kZoneAsia_Dili, // 0x1fa8c394, Asia/Dili
    -
    519  &kZoneAsia_Gaza, // 0x1faa4875, Asia/Gaza
    -
    520  &kZoneAsia_Hovd, // 0x1fab0fe3, Asia/Hovd
    -
    521  &kZoneAsia_Omsk, // 0x1faeddac, Asia/Omsk
    -
    522  &kZoneAsia_Oral, // 0x1faef0a0, Asia/Oral
    -
    523  &kZoneAmerica_Montreal, // 0x203a1ea8, America/Montreal -> America/Toronto
    -
    524  &kZoneAsia_Ho_Chi_Minh, // 0x20f2d127, Asia/Ho_Chi_Minh
    -
    525  &kZoneAsia_Damascus, // 0x20fbb063, Asia/Damascus
    -
    526  &kZoneAmerica_Argentina_ComodRivadavia, // 0x22758877, America/Argentina/ComodRivadavia -> America/Argentina/Catamarca
    -
    527  &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia
    -
    528  &kZonePacific_Fiji, // 0x23383ba5, Pacific/Fiji
    -
    529  &kZonePacific_Guam, // 0x2338f9ed, Pacific/Guam
    -
    530  &kZonePacific_Niue, // 0x233ca014, Pacific/Niue
    -
    531  &kZonePacific_Truk, // 0x234010a9, Pacific/Truk -> Pacific/Port_Moresby
    -
    532  &kZonePacific_Wake, // 0x23416c2b, Pacific/Wake -> Pacific/Tarawa
    -
    533  &kZoneAustralia_Adelaide, // 0x2428e8a3, Australia/Adelaide
    -
    534  &kZonePacific_Auckland, // 0x25062f86, Pacific/Auckland
    -
    535  &kZonePacific_Tongatapu, // 0x262ca836, Pacific/Tongatapu
    -
    536  &kZoneAmerica_Monterrey, // 0x269a1deb, America/Monterrey
    -
    537  &kZoneEtc_Greenwich, // 0x26daa98c, Etc/Greenwich -> Etc/GMT
    -
    538  &kZoneAustralia_Currie, // 0x278b6a24, Australia/Currie -> Australia/Hobart
    -
    539  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    540  &kZonePacific_Pohnpei, // 0x28929f96, Pacific/Pohnpei -> Pacific/Guadalcanal
    -
    541  &kZoneAsia_Famagusta, // 0x289b4f8b, Asia/Famagusta
    -
    542  &kZoneAmerica_Indiana_Vincennes, // 0x28a0b212, America/Indiana/Vincennes
    -
    543  &kZoneAmerica_Indiana_Indianapolis, // 0x28a669a4, America/Indiana/Indianapolis
    -
    544  &kZoneAsia_Vladivostok, // 0x29de34a8, Asia/Vladivostok
    -
    545  &kZoneAustralia_Canberra, // 0x2a09ae58, Australia/Canberra -> Australia/Sydney
    -
    546  &kZoneAmerica_Fortaleza, // 0x2ad018ee, America/Fortaleza
    -
    547  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    548  &kZoneAmerica_Pangnirtung, // 0x2d999193, America/Pangnirtung -> America/Iqaluit
    -
    549  &kZoneAmerica_Iqaluit, // 0x2de310bf, America/Iqaluit
    -
    550  &kZoneJamaica, // 0x2e44fdab, Jamaica -> America/Jamaica
    -
    551  &kZonePacific_Chatham, // 0x2f0de999, Pacific/Chatham
    -
    552  &kZoneEtc_Universal, // 0x2f8cb9a9, Etc/Universal -> Etc/UTC
    -
    553  &kZoneAmerica_Indiana_Marengo, // 0x2feeee72, America/Indiana/Marengo
    -
    554  &kZoneEurope_Tallinn, // 0x30c4e096, Europe/Tallinn
    -
    555  &kZoneAfrica_Djibouti, // 0x30ea01d4, Africa/Djibouti -> Africa/Nairobi
    -
    556  &kZoneAsia_Ulaanbaatar, // 0x30f0cc4e, Asia/Ulaanbaatar
    -
    557  &kZoneAfrica_Gaborone, // 0x317c0aa7, Africa/Gaborone -> Africa/Maputo
    -
    558  &kZoneAmerica_Argentina_Ushuaia, // 0x320dcdde, America/Argentina/Ushuaia
    -
    559  &kZoneAsia_Calcutta, // 0x328a44c3, Asia/Calcutta -> Asia/Kolkata
    -
    560  &kZoneAustralia_Hobart, // 0x32bf951a, Australia/Hobart
    -
    561  &kZoneAsia_Dushanbe, // 0x32fc5c3c, Asia/Dushanbe
    -
    562  &kZoneAtlantic_South_Georgia, // 0x33013174, Atlantic/South_Georgia
    -
    563  &kZoneAmerica_Phoenix, // 0x34b5af01, America/Phoenix
    -
    564  &kZoneAsia_Istanbul, // 0x382e7894, Asia/Istanbul -> Europe/Istanbul
    -
    565  &kZoneAsia_Ulan_Bator, // 0x394db4d9, Asia/Ulan_Bator -> Asia/Ulaanbaatar
    -
    566  &kZoneAntarctica_Mawson, // 0x399cd863, Antarctica/Mawson
    -
    567  &kZoneAfrica_Brazzaville, // 0x39cda760, Africa/Brazzaville -> Africa/Lagos
    -
    568  &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas
    -
    569  &kZoneAmerica_Cayenne, // 0x3c617269, America/Cayenne
    -
    570  &kZoneAfrica_Porto_Novo, // 0x3d1bf95d, Africa/Porto-Novo -> Africa/Lagos
    -
    571  &kZoneAtlantic_Bermuda, // 0x3d4bb1c4, Atlantic/Bermuda
    -
    572  &kZoneAmerica_Managua, // 0x3d5e7600, America/Managua
    -
    573  &kZoneAmerica_Marigot, // 0x3dab3a59, America/Marigot -> America/Puerto_Rico
    -
    574  &kZoneEurope_Guernsey, // 0x3db12c16, Europe/Guernsey -> Europe/London
    -
    575  &kZoneAfrica_Nouakchott, // 0x3dc49dba, Africa/Nouakchott -> Africa/Abidjan
    -
    576  &kZoneAmerica_Louisville, // 0x3dcb47ee, America/Louisville -> America/Kentucky/Louisville
    -
    577  &kZoneAmerica_Argentina_San_Juan, // 0x3e1009bd, America/Argentina/San_Juan
    -
    578  &kZoneAmerica_Argentina_San_Luis, // 0x3e11238c, America/Argentina/San_Luis
    -
    579  &kZoneEurope_Volgograd, // 0x3ed0f389, Europe/Volgograd
    -
    580  &kZoneAmerica_Fort_Nelson, // 0x3f437e0f, America/Fort_Nelson
    -
    581  &kZoneEtc_GMT_PLUS_10, // 0x3f8f1cc4, Etc/GMT+10
    -
    582  &kZoneEtc_GMT_PLUS_11, // 0x3f8f1cc5, Etc/GMT+11
    -
    583  &kZoneEtc_GMT_PLUS_12, // 0x3f8f1cc6, Etc/GMT+12
    -
    584  &kZoneEtc_GMT_10, // 0x3f8f2546, Etc/GMT-10
    -
    585  &kZoneEtc_GMT_11, // 0x3f8f2547, Etc/GMT-11
    -
    586  &kZoneEtc_GMT_12, // 0x3f8f2548, Etc/GMT-12
    -
    587  &kZoneEtc_GMT_13, // 0x3f8f2549, Etc/GMT-13
    -
    588  &kZoneEtc_GMT_14, // 0x3f8f254a, Etc/GMT-14
    -
    589  &kZoneAntarctica_Palmer, // 0x40962f4f, Antarctica/Palmer
    -
    590  &kZoneCanada_Pacific, // 0x40fa3c7b, Canada/Pacific -> America/Vancouver
    -
    591  &kZoneEurope_Athens, // 0x4318fa27, Europe/Athens
    -
    592  &kZoneIndian_Kerguelen, // 0x4351b389, Indian/Kerguelen -> Indian/Maldives
    -
    593  &kZoneAmerica_Indiana_Winamac, // 0x4413fa69, America/Indiana/Winamac
    -
    594  &kZoneEurope_Berlin, // 0x44644c20, Europe/Berlin
    -
    595  &kZoneAtlantic_St_Helena, // 0x451fc5f7, Atlantic/St_Helena -> Africa/Abidjan
    -
    596  &kZoneIndian_Chagos, // 0x456f7c3c, Indian/Chagos
    -
    597  &kZoneIndian_Mahe, // 0x45e725e2, Indian/Mahe -> Asia/Dubai
    -
    598  &kZoneIndian_Comoro, // 0x45f4deb6, Indian/Comoro -> Africa/Nairobi
    -
    599  &kZoneAmerica_Mendoza, // 0x46b4e054, America/Mendoza -> America/Argentina/Mendoza
    -
    600  &kZoneAsia_Ust_Nera, // 0x4785f921, Asia/Ust-Nera
    -
    601  &kZoneEurope_Dublin, // 0x4a275f62, Europe/Dublin
    -
    602  &kZoneAsia_Nicosia, // 0x4b0fcf78, Asia/Nicosia
    -
    603  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    604  &kZoneAustralia_Sydney, // 0x4d1e9776, Australia/Sydney
    -
    605  &kZoneNZ_CHAT, // 0x4d42afda, NZ-CHAT -> Pacific/Chatham
    -
    606  &kZoneUS_Arizona, // 0x4ec52670, US/Arizona -> America/Phoenix
    -
    607  &kZoneAntarctica_Vostok, // 0x4f966fd4, Antarctica/Vostok
    -
    608  &kZoneUS_Aleutian, // 0x4fe013ef, US/Aleutian -> America/Adak
    -
    609  &kZoneAustralia_Brisbane, // 0x4fedc9c0, Australia/Brisbane
    -
    610  &kZoneAmerica_Catamarca, // 0x5036e963, America/Catamarca -> America/Argentina/Catamarca
    -
    611  &kZoneAmerica_Asuncion, // 0x50ec79a6, America/Asuncion
    -
    612  &kZoneAsia_Karachi, // 0x527f5245, Asia/Karachi
    -
    613  &kZoneAsia_Kashgar, // 0x52955193, Asia/Kashgar -> Asia/Urumqi
    -
    614  &kZoneCanada_Atlantic, // 0x536b119c, Canada/Atlantic -> America/Halifax
    -
    615  &kZonePacific_Gambier, // 0x53720c3a, Pacific/Gambier
    -
    616  &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse
    -
    617  &kZoneAmerica_Martinique, // 0x551e84c5, America/Martinique
    -
    618  &kZoneAmerica_Jamaica, // 0x565dad6c, America/Jamaica
    -
    619  &kZoneUS_Samoa, // 0x566821cd, US/Samoa -> Pacific/Pago_Pago
    -
    620  &kZoneHongkong, // 0x56d36560, Hongkong -> Asia/Hong_Kong
    -
    621  &kZoneEurope_Jersey, // 0x570dae76, Europe/Jersey -> Europe/London
    -
    622  &kZoneAsia_Hong_Kong, // 0x577f28ac, Asia/Hong_Kong
    -
    623  &kZonePacific_Marquesas, // 0x57ca7135, Pacific/Marquesas
    -
    624  &kZoneAmerica_Miquelon, // 0x59674330, America/Miquelon
    -
    625  &kZoneAntarctica_DumontDUrville, // 0x5a3c656c, Antarctica/DumontDUrville -> Pacific/Port_Moresby
    -
    626  &kZoneAtlantic_Jan_Mayen, // 0x5a7535b6, Atlantic/Jan_Mayen -> Europe/Berlin
    -
    627  &kZoneAmerica_Anchorage, // 0x5a79260e, America/Anchorage
    -
    628  &kZoneUS_Eastern, // 0x5bb7e78e, US/Eastern -> America/New_York
    -
    629  &kZoneAsia_Jerusalem, // 0x5becd23a, Asia/Jerusalem
    -
    630  &kZoneEurope_Stockholm, // 0x5bf6fbb8, Europe/Stockholm -> Europe/Berlin
    -
    631  &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon
    -
    632  &kZoneAtlantic_Cape_Verde, // 0x5c5e1772, Atlantic/Cape_Verde
    -
    633  &kZoneEurope_London, // 0x5c6a84ae, Europe/London
    -
    634  &kZoneAmerica_Cordoba, // 0x5c8a7600, America/Cordoba -> America/Argentina/Cordoba
    -
    635  &kZoneAsia_Ujung_Pandang, // 0x5d001eb3, Asia/Ujung_Pandang -> Asia/Makassar
    -
    636  &kZoneAfrica_Mbabane, // 0x5d3bdd40, Africa/Mbabane -> Africa/Johannesburg
    -
    637  &kZoneEurope_Madrid, // 0x5dbd1535, Europe/Madrid
    -
    638  &kZoneAmerica_Moncton, // 0x5e07fe24, America/Moncton
    -
    639  &kZonePacific_Bougainville, // 0x5e10f7a4, Pacific/Bougainville
    -
    640  &kZoneEurope_Monaco, // 0x5ebf9f01, Europe/Monaco -> Europe/Paris
    -
    641  &kZoneEurope_Moscow, // 0x5ec266fc, Europe/Moscow
    -
    642  &kZoneAmerica_Argentina_Jujuy, // 0x5f2f46c5, America/Argentina/Jujuy
    -
    643  &kZoneAmerica_Argentina_Salta, // 0x5fc73403, America/Argentina/Salta
    -
    644  &kZonePacific_Pago_Pago, // 0x603aebd0, Pacific/Pago_Pago
    -
    645  &kZonePacific_Enderbury, // 0x61599a93, Pacific/Enderbury -> Pacific/Kanton
    -
    646  &kZoneAfrica_Sao_Tome, // 0x61b319d1, Africa/Sao_Tome
    -
    647  &kZoneCanada_Central, // 0x626710f5, Canada/Central -> America/Winnipeg
    -
    648  &kZoneAmerica_Creston, // 0x62a70204, America/Creston -> America/Phoenix
    -
    649  &kZoneAmerica_Costa_Rica, // 0x63ff66be, America/Costa_Rica
    -
    650  &kZoneAsia_Qostanay, // 0x654fe522, Asia/Qostanay
    -
    651  &kZoneAmerica_Indiana_Knox, // 0x6554adc9, America/Indiana/Knox
    -
    652  &kZoneEurope_Prague, // 0x65ee5d48, Europe/Prague
    -
    653  &kZoneBrazil_Acre, // 0x66934f93, Brazil/Acre -> America/Rio_Branco
    -
    654  &kZoneBrazil_East, // 0x669578c5, Brazil/East -> America/Sao_Paulo
    -
    655  &kZoneAfrica_Kinshasa, // 0x6695d70c, Africa/Kinshasa -> Africa/Lagos
    -
    656  &kZoneBrazil_West, // 0x669f689b, Brazil/West -> America/Manaus
    -
    657  &kZoneAfrica_Mogadishu, // 0x66bc159b, Africa/Mogadishu -> Africa/Nairobi
    -
    658  &kZoneAmerica_Puerto_Rico, // 0x6752ca31, America/Puerto_Rico
    -
    659  &kZoneUS_Indiana_Starke, // 0x67977be7, US/Indiana-Starke -> America/Indiana/Knox
    -
    660  &kZoneAmerica_Buenos_Aires, // 0x67d79a05, America/Buenos_Aires -> America/Argentina/Buenos_Aires
    -
    661  &kZoneAfrica_Freetown, // 0x6823dd64, Africa/Freetown -> Africa/Abidjan
    -
    662  &kZoneIndian_Christmas, // 0x68c207d5, Indian/Christmas -> Asia/Bangkok
    -
    663  &kZoneAsia_Novokuznetsk, // 0x69264f93, Asia/Novokuznetsk
    -
    664  &kZoneAmerica_Indianapolis, // 0x6a009ae1, America/Indianapolis -> America/Indiana/Indianapolis
    -
    665  &kZoneEurope_Sarajevo, // 0x6a576c3f, Europe/Sarajevo -> Europe/Belgrade
    -
    666  &kZoneAmerica_Curacao, // 0x6a879184, America/Curacao -> America/Puerto_Rico
    -
    667  &kZoneAmerica_Tijuana, // 0x6aa1df72, America/Tijuana
    -
    668  &kZoneAsia_Makassar, // 0x6aa21c85, Asia/Makassar
    -
    669  &kZoneEurope_Helsinki, // 0x6ab2975b, Europe/Helsinki
    -
    670  &kZoneAmerica_Lower_Princes, // 0x6ae45b62, America/Lower_Princes -> America/Puerto_Rico
    -
    671  &kZoneAmerica_Porto_Velho, // 0x6b1aac77, America/Porto_Velho
    -
    672  &kZoneEurope_Samara, // 0x6bc0b139, Europe/Samara
    -
    673  &kZoneEurope_Skopje, // 0x6c76fdd0, Europe/Skopje -> Europe/Belgrade
    -
    674  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    675  &kZoneAmerica_Dawson_Creek, // 0x6cf24e5b, America/Dawson_Creek
    -
    676  &kZoneAsia_Rangoon, // 0x6d1217c6, Asia/Rangoon -> Asia/Yangon
    -
    677  &kZoneUS_East_Indiana, // 0x6dcf558a, US/East-Indiana -> America/Indiana/Indianapolis
    -
    678  &kZoneAmerica_Grand_Turk, // 0x6e216197, America/Grand_Turk
    -
    679  &kZoneAmerica_Blanc_Sablon, // 0x6e299892, America/Blanc-Sablon -> America/Puerto_Rico
    -
    680  &kZoneEurope_Tirane, // 0x6ea95b47, Europe/Tirane
    -
    681  &kZoneUS_Mountain, // 0x6eb88247, US/Mountain -> America/Denver
    -
    682  &kZoneAntarctica_McMurdo, // 0x6eeb5585, Antarctica/McMurdo -> Pacific/Auckland
    -
    683  &kZoneAmerica_Araguaina, // 0x6f9a3aef, America/Araguaina
    -
    684  &kZoneAfrica_Lubumbashi, // 0x6fd88566, Africa/Lubumbashi -> Africa/Maputo
    -
    685  &kZoneIndian_Reunion, // 0x7076c047, Indian/Reunion -> Asia/Dubai
    -
    686  &kZoneAsia_Qyzylorda, // 0x71282e81, Asia/Qyzylorda
    -
    687  &kZoneAsia_Kolkata, // 0x72c06cd9, Asia/Kolkata
    -
    688  &kZoneAmerica_Ciudad_Juarez, // 0x7347fc60, America/Ciudad_Juarez
    -
    689  &kZoneEurope_Vienna, // 0x734cc2e5, Europe/Vienna
    -
    690  &kZoneAfrica_Asmara, // 0x73b278ef, Africa/Asmara -> Africa/Nairobi
    -
    691  &kZoneAfrica_Asmera, // 0x73b289f3, Africa/Asmera -> Africa/Nairobi
    -
    692  &kZoneAsia_Kamchatka, // 0x73baf9d7, Asia/Kamchatka
    -
    693  &kZoneAmerica_Santarem, // 0x740caec1, America/Santarem
    -
    694  &kZoneAmerica_Santiago, // 0x7410c9bc, America/Santiago
    -
    695  &kZoneAfrica_Bamako, // 0x74c1e7a5, Africa/Bamako -> Africa/Abidjan
    -
    696  &kZoneAfrica_Bangui, // 0x74c28ed0, Africa/Bangui -> Africa/Lagos
    -
    697  &kZoneAfrica_Banjul, // 0x74c29b96, Africa/Banjul -> Africa/Abidjan
    -
    698  &kZoneEurope_Nicosia, // 0x74efab8a, Europe/Nicosia -> Asia/Nicosia
    -
    699  &kZoneEurope_Warsaw, // 0x75185c19, Europe/Warsaw
    -
    700  &kZoneAmerica_El_Salvador, // 0x752ad652, America/El_Salvador
    -
    701  &kZoneAfrica_Bissau, // 0x75564141, Africa/Bissau
    -
    702  &kZoneAmerica_Santo_Domingo, // 0x75a0d177, America/Santo_Domingo
    -
    703  &kZoneUS_Michigan, // 0x766bb7bc, US/Michigan -> America/Detroit
    -
    704  &kZoneCanada_Saskatchewan, // 0x77311f49, Canada/Saskatchewan -> America/Regina
    -
    705  &kZoneAfrica_Accra, // 0x77d5b054, Africa/Accra -> Africa/Abidjan
    -
    706  &kZoneAfrica_Cairo, // 0x77f8e228, Africa/Cairo
    -
    707  &kZoneAfrica_Ceuta, // 0x77fb46ec, Africa/Ceuta
    -
    708  &kZoneAfrica_Dakar, // 0x780b00fd, Africa/Dakar -> Africa/Abidjan
    -
    709  &kZoneAfrica_Lagos, // 0x789bb5d0, Africa/Lagos
    -
    710  &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek
    -
    711  &kZoneCanada_Yukon, // 0x78dd35c2, Canada/Yukon -> America/Whitehorse
    -
    712  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    713  &kZoneAmerica_Tortola, // 0x7931462b, America/Tortola -> America/Puerto_Rico
    -
    714  &kZoneAfrica_Tunis, // 0x79378e6d, Africa/Tunis
    -
    715  &kZoneAfrica_Douala, // 0x7a6df310, Africa/Douala -> Africa/Lagos
    -
    716  &kZoneAfrica_Conakry, // 0x7ab36b31, Africa/Conakry -> Africa/Abidjan
    -
    717  &kZoneIndian_Mauritius, // 0x7b09c02a, Indian/Mauritius
    -
    718  &kZoneAtlantic_Stanley, // 0x7bb3e1c4, Atlantic/Stanley
    -
    719  &kZoneAmerica_Ensenada, // 0x7bc95445, America/Ensenada -> America/Tijuana
    -
    720  &kZoneEurope_Zagreb, // 0x7c11c9ff, Europe/Zagreb -> Europe/Belgrade
    -
    721  &kZoneCuba, // 0x7c83cba0, Cuba -> America/Havana
    -
    722  &kZoneEire, // 0x7c84b36a, Eire -> Europe/Dublin
    -
    723  &kZoneGMT0, // 0x7c8550fd, GMT0 -> Etc/GMT
    -
    724  &kZoneIran, // 0x7c87090f, Iran -> Asia/Tehran
    -
    725  &kZoneW_SU, // 0x7c8d8ef1, W-SU -> Europe/Moscow
    -
    726  &kZoneZulu, // 0x7c9069b5, Zulu -> Etc/UTC
    -
    727  &kZoneEurope_Zurich, // 0x7d8195b9, Europe/Zurich
    -
    728  &kZoneChile_Continental, // 0x7e2bdb18, Chile/Continental -> America/Santiago
    -
    729  &kZoneAmerica_Fort_Wayne, // 0x7eaaaf24, America/Fort_Wayne -> America/Indiana/Indianapolis
    -
    730  &kZoneAsia_Kuching, // 0x801b003b, Asia/Kuching
    -
    731  &kZoneAtlantic_Madeira, // 0x81b5c037, Atlantic/Madeira
    -
    732  &kZoneAmerica_Atikokan, // 0x81b92098, America/Atikokan -> America/Panama
    -
    733  &kZoneAfrica_Harare, // 0x82c39a2d, Africa/Harare -> Africa/Maputo
    -
    734  &kZoneAmerica_Shiprock, // 0x82fb7049, America/Shiprock -> America/Denver
    -
    735  &kZonePacific_Kiritimati, // 0x8305073a, Pacific/Kiritimati
    -
    736  &kZoneAmerica_St_Vincent, // 0x8460e523, America/St_Vincent -> America/Puerto_Rico
    -
    737  &kZoneAmerica_Metlakatla, // 0x84de2686, America/Metlakatla
    -
    738  &kZoneAsia_Yakutsk, // 0x87bb3a9e, Asia/Yakutsk
    -
    739  &kZoneAmerica_Chihuahua, // 0x8827d776, America/Chihuahua
    -
    740  &kZonePacific_Pitcairn, // 0x8837d8bd, Pacific/Pitcairn
    -
    741  &kZoneAsia_Vientiane, // 0x89d68d75, Asia/Vientiane -> Asia/Bangkok
    -
    742  &kZonePacific_Chuuk, // 0x8a090b23, Pacific/Chuuk -> Pacific/Port_Moresby
    -
    743  &kZonePacific_Efate, // 0x8a2bce28, Pacific/Efate
    -
    744  &kZoneAfrica_Kigali, // 0x8a4dcf2b, Africa/Kigali -> Africa/Maputo
    -
    745  &kZoneAustralia_ACT, // 0x8a970eb2, Australia/ACT -> Australia/Sydney
    -
    746  &kZoneAustralia_LHI, // 0x8a973e17, Australia/LHI -> Australia/Lord_Howe
    -
    747  &kZoneAustralia_NSW, // 0x8a974812, Australia/NSW -> Australia/Sydney
    -
    748  &kZonePacific_Nauru, // 0x8acc41ae, Pacific/Nauru
    -
    749  &kZoneEST5EDT, // 0x8adc72a3, EST5EDT -> America/New_York
    -
    750  &kZonePacific_Palau, // 0x8af04a36, Pacific/Palau
    -
    751  &kZonePacific_Samoa, // 0x8b2699b4, Pacific/Samoa -> Pacific/Pago_Pago
    -
    752  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    753  &kZoneAustralia_Eucla, // 0x8cf99e44, Australia/Eucla
    -
    754  &kZoneAmerica_Argentina_Catamarca, // 0x8d40986b, America/Argentina/Catamarca
    -
    755  &kZoneAfrica_Luanda, // 0x8d7909cf, Africa/Luanda -> Africa/Lagos
    -
    756  &kZoneAfrica_Lusaka, // 0x8d82b23b, Africa/Lusaka -> Africa/Maputo
    -
    757  &kZoneAustralia_North, // 0x8d997165, Australia/North -> Australia/Darwin
    -
    758  &kZoneAustralia_Perth, // 0x8db8269d, Australia/Perth
    -
    759  &kZoneAustralia_South, // 0x8df3f8ad, Australia/South -> Australia/Adelaide
    -
    760  &kZonePacific_Kwajalein, // 0x8e216759, Pacific/Kwajalein
    -
    761  &kZoneAmerica_Port_au_Prince, // 0x8e4a7bdc, America/Port-au-Prince
    -
    762  &kZoneAfrica_Malabo, // 0x8e6a1906, Africa/Malabo -> Africa/Lagos
    -
    763  &kZoneAfrica_Maputo, // 0x8e6ca1f0, Africa/Maputo
    -
    764  &kZoneAfrica_Maseru, // 0x8e6e02c7, Africa/Maseru -> Africa/Johannesburg
    -
    765  &kZonePacific_Norfolk, // 0x8f4eb4be, Pacific/Norfolk
    -
    766  &kZoneAmerica_Godthab, // 0x8f7eba1f, America/Godthab -> America/Nuuk
    -
    767  &kZoneAustralia_Yancowinna, // 0x90bac131, Australia/Yancowinna -> Australia/Broken_Hill
    -
    768  &kZoneAfrica_Niamey, // 0x914a30fd, Africa/Niamey -> Africa/Lagos
    -
    769  &kZoneAsia_Yerevan, // 0x9185c8cc, Asia/Yerevan
    -
    770  &kZoneAmerica_Detroit, // 0x925cfbc1, America/Detroit
    -
    771  &kZoneAsia_Choibalsan, // 0x928aa4a6, Asia/Choibalsan -> Asia/Ulaanbaatar
    -
    772  &kZoneAntarctica_Macquarie, // 0x92f47626, Antarctica/Macquarie
    -
    773  &kZoneAmerica_Belize, // 0x93256c81, America/Belize
    -
    774  &kZoneMexico_General, // 0x93711d57, Mexico/General -> America/Mexico_City
    -
    775  &kZoneAmerica_Bogota, // 0x93d7bc62, America/Bogota
    -
    776  &kZoneAsia_Pyongyang, // 0x93ed1c8e, Asia/Pyongyang
    -
    777  &kZoneAmerica_Indiana_Petersburg, // 0x94ac7acc, America/Indiana/Petersburg
    -
    778  &kZoneAmerica_Cancun, // 0x953331be, America/Cancun
    -
    779  &kZoneAmerica_Cayman, // 0x953961df, America/Cayman -> America/Panama
    -
    780  &kZoneAmerica_Glace_Bay, // 0x9681f8dd, America/Glace_Bay
    -
    781  &kZoneAsia_Khandyga, // 0x9685a4d9, Asia/Khandyga
    -
    782  &kZoneAmerica_Grenada, // 0x968ce4d8, America/Grenada -> America/Puerto_Rico
    -
    783  &kZoneAmerica_Cuiaba, // 0x969a52eb, America/Cuiaba
    -
    784  &kZoneAmerica_Dawson, // 0x978d8d12, America/Dawson
    -
    785  &kZoneAmerica_Aruba, // 0x97cf8651, America/Aruba -> America/Puerto_Rico
    -
    786  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    787  &kZoneAmerica_Bahia, // 0x97d815fb, America/Bahia
    -
    788  &kZoneAmerica_Belem, // 0x97da580b, America/Belem
    -
    789  &kZoneAmerica_Boise, // 0x97dfc8d8, America/Boise
    -
    790  &kZoneEurope_Andorra, // 0x97f6764b, Europe/Andorra
    -
    791  &kZoneAmerica_Adak, // 0x97fe49d7, America/Adak
    -
    792  &kZoneAmerica_Atka, // 0x97fe8f27, America/Atka -> America/Adak
    -
    793  &kZoneAmerica_Lima, // 0x980468c9, America/Lima
    -
    794  &kZoneAmerica_Nome, // 0x98059b15, America/Nome
    -
    795  &kZoneAmerica_Nuuk, // 0x9805b5a9, America/Nuuk
    -
    796  &kZoneIndian_Maldives, // 0x9869681c, Indian/Maldives
    -
    797  &kZoneAmerica_Jujuy, // 0x9873dbbd, America/Jujuy -> America/Argentina/Jujuy
    -
    798  &kZoneAmerica_Sitka, // 0x99104ce2, America/Sitka
    -
    799  &kZoneAmerica_Thule, // 0x9921dd68, America/Thule
    -
    800  &kZonePacific_Rarotonga, // 0x9981a3b0, Pacific/Rarotonga
    -
    801  &kZoneAsia_Kathmandu, // 0x9a96ce6f, Asia/Kathmandu
    -
    802  &kZoneBrazil_DeNoronha, // 0x9b4cb496, Brazil/DeNoronha -> America/Noronha
    -
    803  &kZoneAmerica_North_Dakota_Beulah, // 0x9b52b384, America/North_Dakota/Beulah
    -
    804  &kZoneAmerica_Rainy_River, // 0x9cd58a10, America/Rainy_River -> America/Winnipeg
    -
    805  &kZoneEurope_Budapest, // 0x9ce0197c, Europe/Budapest
    -
    806  &kZoneAsia_Baghdad, // 0x9ceffbed, Asia/Baghdad
    -
    807  &kZoneAsia_Bahrain, // 0x9d078487, Asia/Bahrain -> Asia/Qatar
    -
    808  &kZoneEtc_GMT_PLUS_0, // 0x9d13da13, Etc/GMT+0 -> Etc/GMT
    -
    809  &kZoneEtc_GMT_PLUS_1, // 0x9d13da14, Etc/GMT+1
    -
    810  &kZoneEtc_GMT_PLUS_2, // 0x9d13da15, Etc/GMT+2
    -
    811  &kZoneEtc_GMT_PLUS_3, // 0x9d13da16, Etc/GMT+3
    -
    812  &kZoneEtc_GMT_PLUS_4, // 0x9d13da17, Etc/GMT+4
    -
    813  &kZoneEtc_GMT_PLUS_5, // 0x9d13da18, Etc/GMT+5
    -
    814  &kZoneEtc_GMT_PLUS_6, // 0x9d13da19, Etc/GMT+6
    -
    815  &kZoneEtc_GMT_PLUS_7, // 0x9d13da1a, Etc/GMT+7
    -
    816  &kZoneEtc_GMT_PLUS_8, // 0x9d13da1b, Etc/GMT+8
    -
    817  &kZoneEtc_GMT_PLUS_9, // 0x9d13da1c, Etc/GMT+9
    -
    818  &kZoneEtc_GMT_0, // 0x9d13da55, Etc/GMT-0 -> Etc/GMT
    -
    819  &kZoneEtc_GMT_1, // 0x9d13da56, Etc/GMT-1
    -
    820  &kZoneEtc_GMT_2, // 0x9d13da57, Etc/GMT-2
    -
    821  &kZoneEtc_GMT_3, // 0x9d13da58, Etc/GMT-3
    -
    822  &kZoneEtc_GMT_4, // 0x9d13da59, Etc/GMT-4
    -
    823  &kZoneEtc_GMT_5, // 0x9d13da5a, Etc/GMT-5
    -
    824  &kZoneEtc_GMT_6, // 0x9d13da5b, Etc/GMT-6
    -
    825  &kZoneEtc_GMT_7, // 0x9d13da5c, Etc/GMT-7
    -
    826  &kZoneEtc_GMT_8, // 0x9d13da5d, Etc/GMT-8
    -
    827  &kZoneEtc_GMT_9, // 0x9d13da5e, Etc/GMT-9
    -
    828  &kZoneAmerica_Nipigon, // 0x9d2a8b1a, America/Nipigon -> America/Toronto
    -
    829  &kZoneAmerica_Rio_Branco, // 0x9d352764, America/Rio_Branco
    -
    830  &kZoneAsia_Bangkok, // 0x9d6e3aaf, Asia/Bangkok
    -
    831  &kZoneAfrica_El_Aaiun, // 0x9d6fb118, Africa/El_Aaiun
    -
    832  &kZoneAmerica_North_Dakota_Center, // 0x9da42814, America/North_Dakota/Center
    -
    833  &kZoneAsia_Barnaul, // 0x9dba4997, Asia/Barnaul
    -
    834  &kZoneAfrica_Tripoli, // 0x9dfebd3d, Africa/Tripoli
    -
    835  &kZoneEurope_Istanbul, // 0x9e09d6e6, Europe/Istanbul
    -
    836  &kZoneIndian_Antananarivo, // 0x9ebf5289, Indian/Antananarivo -> Africa/Nairobi
    -
    837  &kZoneAfrica_Ndjamena, // 0x9fe09898, Africa/Ndjamena
    -
    838  &kZoneAmerica_Guyana, // 0x9ff7bd0b, America/Guyana
    -
    839  &kZoneAfrica_Dar_es_Salaam, // 0xa04c47b6, Africa/Dar_es_Salaam -> Africa/Nairobi
    -
    840  &kZoneAmerica_Havana, // 0xa0e15675, America/Havana
    -
    841  &kZoneAsia_Novosibirsk, // 0xa2a435cb, Asia/Novosibirsk
    -
    842  &kZoneEurope_Kiev, // 0xa2c19eb3, Europe/Kiev -> Europe/Kyiv
    -
    843  &kZoneEurope_Kyiv, // 0xa2c1e347, Europe/Kyiv
    -
    844  &kZoneEurope_Oslo, // 0xa2c3fba1, Europe/Oslo -> Europe/Berlin
    -
    845  &kZoneEurope_Riga, // 0xa2c57587, Europe/Riga
    -
    846  &kZoneEurope_Rome, // 0xa2c58fd7, Europe/Rome
    -
    847  &kZoneAmerica_Inuvik, // 0xa42189fc, America/Inuvik
    -
    848  &kZoneAmerica_Argentina_La_Rioja, // 0xa46b7eef, America/Argentina/La_Rioja
    -
    849  &kZoneAsia_Almaty, // 0xa61f41fa, Asia/Almaty
    -
    850  &kZoneAsia_Anadyr, // 0xa63cebd1, Asia/Anadyr
    -
    851  &kZoneAsia_Aqtobe, // 0xa67dcc4e, Asia/Aqtobe
    -
    852  &kZoneAsia_Atyrau, // 0xa6b6e068, Asia/Atyrau
    -
    853  &kZoneAmerica_Juneau, // 0xa6f13e2e, America/Juneau
    -
    854  &kZoneAustralia_Lord_Howe, // 0xa748b67d, Australia/Lord_Howe
    -
    855  &kZonePacific_Port_Moresby, // 0xa7ba7f68, Pacific/Port_Moresby
    -
    856  &kZoneAsia_Katmandu, // 0xa7ec12c7, Asia/Katmandu -> Asia/Kathmandu
    -
    857  &kZoneAsia_Beirut, // 0xa7f3d5fd, Asia/Beirut
    -
    858  &kZoneSingapore, // 0xa8598c8d, Singapore -> Asia/Singapore
    -
    859  &kZoneAfrica_Nairobi, // 0xa87ab57e, Africa/Nairobi
    -
    860  &kZoneAsia_Brunei, // 0xa8e595f7, Asia/Brunei -> Asia/Kuching
    -
    861  &kZoneUS_Pacific, // 0xa950f6ab, US/Pacific -> America/Los_Angeles
    -
    862  &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos
    -
    863  &kZoneAmerica_Argentina_Mendoza, // 0xa9f72d5c, America/Argentina/Mendoza
    -
    864  &kZoneAmerica_La_Paz, // 0xaa29125d, America/La_Paz
    -
    865  &kZoneAmerica_Noronha, // 0xab5116fb, America/Noronha
    -
    866  &kZoneAmerica_Coral_Harbour, // 0xabcb7569, America/Coral_Harbour -> America/Panama
    -
    867  &kZoneAmerica_Maceio, // 0xac80c6d4, America/Maceio
    -
    868  &kZoneAmerica_Manaus, // 0xac86bf8b, America/Manaus
    -
    869  &kZoneAmerica_Merida, // 0xacd172d8, America/Merida
    -
    870  &kZoneEurope_Chisinau, // 0xad58aa18, Europe/Chisinau
    -
    871  &kZoneAmerica_Nassau, // 0xaedef011, America/Nassau -> America/Toronto
    -
    872  &kZoneAmerica_Anguilla, // 0xafe31333, America/Anguilla -> America/Puerto_Rico
    -
    873  &kZoneEurope_Uzhgorod, // 0xb066f5d6, Europe/Uzhgorod -> Europe/Kyiv
    -
    874  &kZoneAustralia_Broken_Hill, // 0xb06eada3, Australia/Broken_Hill
    -
    875  &kZoneAsia_Bishkek, // 0xb0728553, Asia/Bishkek
    -
    876  &kZoneChile_EasterIsland, // 0xb0982af8, Chile/EasterIsland -> Pacific/Easter
    -
    877  &kZonePacific_Johnston, // 0xb15d7b36, Pacific/Johnston -> Pacific/Honolulu
    -
    878  &kZoneAfrica_Timbuktu, // 0xb164d56f, Africa/Timbuktu -> Africa/Abidjan
    -
    879  &kZoneAmerica_St_Thomas, // 0xb1b3d778, America/St_Thomas -> America/Puerto_Rico
    -
    880  &kZoneAmerica_Paramaribo, // 0xb319e4c4, America/Paramaribo
    -
    881  &kZoneAmerica_Panama, // 0xb3863854, America/Panama
    -
    882  &kZoneCanada_Newfoundland, // 0xb396e991, Canada/Newfoundland -> America/St_Johns
    -
    883  &kZoneAsia_Harbin, // 0xb5af1186, Asia/Harbin -> Asia/Shanghai
    -
    884  &kZoneAsia_Hebron, // 0xb5eef250, Asia/Hebron
    -
    885  &kZoneAmerica_Goose_Bay, // 0xb649541e, America/Goose_Bay
    -
    886  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    887  &kZoneAmerica_Recife, // 0xb8730494, America/Recife
    -
    888  &kZoneAmerica_Regina, // 0xb875371c, America/Regina
    -
    889  &kZoneAsia_Ashgabat, // 0xba87598d, Asia/Ashgabat
    -
    890  &kZoneIsrael, // 0xba88c9e5, Israel -> Asia/Jerusalem
    -
    891  &kZonePacific_Yap, // 0xbb40138d, Pacific/Yap -> Pacific/Port_Moresby
    -
    892  &kZoneAmerica_Halifax, // 0xbc5b7183, America/Halifax
    -
    893  &kZoneEurope_Ljubljana, // 0xbd98cdb7, Europe/Ljubljana -> Europe/Belgrade
    -
    894  &kZoneAsia_Kuwait, // 0xbe1b2f27, Asia/Kuwait -> Asia/Riyadh
    -
    895  &kZoneEurope_Tiraspol, // 0xbe704472, Europe/Tiraspol -> Europe/Chisinau
    -
    896  &kZoneAsia_Srednekolymsk, // 0xbf8e337d, Asia/Srednekolymsk
    -
    897  &kZoneAmerica_Argentina_Cordoba, // 0xbfccc308, America/Argentina/Cordoba
    -
    898  &kZoneAmerica_Tegucigalpa, // 0xbfd6fd4c, America/Tegucigalpa
    -
    899  &kZoneAmerica_Antigua, // 0xc067a32f, America/Antigua -> America/Puerto_Rico
    -
    900  &kZoneEurope_Busingen, // 0xc06d2cdf, Europe/Busingen -> Europe/Zurich
    -
    901  &kZoneAsia_Manila, // 0xc156c944, Asia/Manila
    -
    902  &kZoneAfrica_Kampala, // 0xc1d30e31, Africa/Kampala -> Africa/Nairobi
    -
    903  &kZoneAmerica_Knox_IN, // 0xc1db9a1c, America/Knox_IN -> America/Indiana/Knox
    -
    904  &kZoneAfrica_Abidjan, // 0xc21305a3, Africa/Abidjan
    -
    905  &kZoneAmerica_Virgin, // 0xc2183ab5, America/Virgin -> America/Puerto_Rico
    -
    906  &kZoneAsia_Phnom_Penh, // 0xc224945e, Asia/Phnom_Penh -> Asia/Bangkok
    -
    907  &kZoneAsia_Muscat, // 0xc2c3565f, Asia/Muscat -> Asia/Dubai
    -
    908  &kZoneAmerica_Punta_Arenas, // 0xc2c3bce7, America/Punta_Arenas
    -
    909  &kZonePortugal, // 0xc3274593, Portugal -> Europe/Lisbon
    -
    910  &kZoneNavajo, // 0xc4ef0e24, Navajo -> America/Denver
    -
    911  &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca
    -
    912  &kZoneAmerica_Argentina_Rio_Gallegos, // 0xc5b0f565, America/Argentina/Rio_Gallegos
    -
    913  &kZoneAsia_Jayapura, // 0xc6833c2f, Asia/Jayapura
    -
    914  &kZoneAmerica_Resolute, // 0xc7093459, America/Resolute
    -
    915  &kZoneAsia_Chungking, // 0xc7121dd0, Asia/Chungking -> Asia/Shanghai
    -
    916  &kZoneGreenwich, // 0xc84d4221, Greenwich -> Etc/GMT
    -
    917  &kZoneAmerica_Rankin_Inlet, // 0xc8de4984, America/Rankin_Inlet
    -
    918  &kZonePoland, // 0xca913b23, Poland -> Europe/Warsaw
    -
    919  &kZoneUS_Central, // 0xcabdcb25, US/Central -> America/Chicago
    -
    920  &kZoneEurope_Vatican, // 0xcb485dca, Europe/Vatican -> Europe/Rome
    -
    921  &kZoneAmerica_Barbados, // 0xcbbc3b04, America/Barbados
    -
    922  &kZoneAmerica_Coyhaique, // 0xcc3314ee, America/Coyhaique
    -
    923  &kZoneAmerica_Porto_Acre, // 0xcce5bf54, America/Porto_Acre -> America/Rio_Branco
    -
    924  &kZoneAmerica_Guadeloupe, // 0xcd1f8a31, America/Guadeloupe -> America/Puerto_Rico
    -
    925  &kZoneAntarctica_South_Pole, // 0xcd96b290, Antarctica/South_Pole -> Pacific/Auckland
    -
    926  &kZoneAsia_Riyadh, // 0xcd973d93, Asia/Riyadh
    -
    927  &kZoneAmerica_Dominica, // 0xcecb4c4a, America/Dominica -> America/Puerto_Rico
    -
    928  &kZoneEurope_San_Marino, // 0xcef7724b, Europe/San_Marino -> Europe/Rome
    -
    929  &kZoneAsia_Saigon, // 0xcf52f713, Asia/Saigon -> Asia/Ho_Chi_Minh
    -
    930  &kZonePacific_Easter, // 0xcf54f7e7, Pacific/Easter
    -
    931  &kZoneAsia_Singapore, // 0xcf8581fa, Asia/Singapore
    -
    932  &kZoneAsia_Krasnoyarsk, // 0xd0376c6a, Asia/Krasnoyarsk
    -
    933  &kZoneEurope_Belfast, // 0xd07dd1e5, Europe/Belfast -> Europe/London
    -
    934  &kZoneAmerica_Mexico_City, // 0xd0d93f43, America/Mexico_City
    -
    935  &kZoneUniversal, // 0xd0ff523e, Universal -> Etc/UTC
    -
    936  &kZoneAsia_Taipei, // 0xd1a844ae, Asia/Taipei
    -
    937  &kZoneAsia_Tehran, // 0xd1f02254, Asia/Tehran
    -
    938  &kZoneAsia_Thimbu, // 0xd226e31b, Asia/Thimbu -> Asia/Thimphu
    -
    939  &kZoneArctic_Longyearbyen, // 0xd23e7859, Arctic/Longyearbyen -> Europe/Berlin
    -
    940  &kZoneAustralia_Queensland, // 0xd326ed0a, Australia/Queensland -> Australia/Brisbane
    -
    941  &kZoneEurope_Kaliningrad, // 0xd33b2f28, Europe/Kaliningrad
    -
    942  &kZoneAmerica_Argentina_Buenos_Aires, // 0xd43b4c0d, America/Argentina/Buenos_Aires
    -
    943  &kZoneTurkey, // 0xd455e469, Turkey -> Europe/Istanbul
    -
    944  &kZoneAfrica_Juba, // 0xd51b395c, Africa/Juba
    -
    945  &kZoneAfrica_Lome, // 0xd51c3a07, Africa/Lome -> Africa/Abidjan
    -
    946  &kZoneAsia_Urumqi, // 0xd5379735, Asia/Urumqi
    -
    947  &kZoneAmerica_Cambridge_Bay, // 0xd5a44aff, America/Cambridge_Bay
    -
    948  &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg
    -
    949  &kZoneAmerica_Port_of_Spain, // 0xd8b28d59, America/Port_of_Spain -> America/Puerto_Rico
    -
    950  &kZoneEtc_GMT, // 0xd8e2de58, Etc/GMT
    -
    951  &kZoneEtc_UCT, // 0xd8e3189c, Etc/UCT -> Etc/UTC
    -
    952  &kZoneEtc_UTC, // 0xd8e31abc, Etc/UTC
    -
    953  &kZoneAmerica_Yakutat, // 0xd8ee31e9, America/Yakutat
    -
    954  &kZoneAfrica_Algiers, // 0xd94515c1, Africa/Algiers
    -
    955  &kZonePST8PDT, // 0xd99ee2dc, PST8PDT -> America/Los_Angeles
    -
    956  &kZoneEurope_Bratislava, // 0xda493bed, Europe/Bratislava -> Europe/Prague
    -
    957  &kZoneEurope_Simferopol, // 0xda9eb724, Europe/Simferopol
    -
    958  &kZonePacific_Funafuti, // 0xdb402d65, Pacific/Funafuti -> Pacific/Tarawa
    -
    959  &kZoneAmerica_Matamoros, // 0xdd1b0259, America/Matamoros
    -
    960  &kZonePacific_Kanton, // 0xdd512f0e, Pacific/Kanton
    -
    961  &kZoneAsia_Yangon, // 0xdd54a8be, Asia/Yangon
    -
    962  &kZoneEurope_Vilnius, // 0xdd63b8ce, Europe/Vilnius
    -
    963  &kZoneAustralia_West, // 0xdd858a5d, Australia/West -> Australia/Perth
    -
    964  &kZonePacific_Kosrae, // 0xde5139a8, Pacific/Kosrae
    -
    965  &kZoneAmerica_Kentucky_Monticello, // 0xde71c439, America/Kentucky/Monticello
    -
    966  &kZoneEurope_Brussels, // 0xdee07337, Europe/Brussels
    -
    967  &kZoneAmerica_Swift_Current, // 0xdef98e55, America/Swift_Current
    -
    968  &kZoneAmerica_Rosario, // 0xdf448665, America/Rosario -> America/Argentina/Cordoba
    -
    969  &kZoneAsia_Irkutsk, // 0xdfbf213f, Asia/Irkutsk
    -
    970  &kZoneEurope_Ulyanovsk, // 0xe03783d0, Europe/Ulyanovsk
    -
    971  &kZoneAustralia_Lindeman, // 0xe05029e2, Australia/Lindeman
    -
    972  &kZoneEurope_Belgrade, // 0xe0532b3a, Europe/Belgrade
    -
    973  &kZoneAfrica_Blantyre, // 0xe08d813b, Africa/Blantyre -> Africa/Maputo
    -
    974  &kZoneAmerica_Menominee, // 0xe0e9c583, America/Menominee
    -
    975  &kZoneEurope_Copenhagen, // 0xe0ed30bc, Europe/Copenhagen -> Europe/Berlin
    -
    976  &kZoneAtlantic_Faroe, // 0xe110a971, Atlantic/Faroe
    -
    977  &kZonePacific_Majuro, // 0xe1f95371, Pacific/Majuro -> Pacific/Tarawa
    -
    978  &kZoneAntarctica_Casey, // 0xe2022583, Antarctica/Casey
    -
    979  &kZoneAntarctica_Davis, // 0xe2144b45, Antarctica/Davis
    -
    980  &kZoneEurope_Astrakhan, // 0xe22256e1, Europe/Astrakhan
    -
    981  &kZonePacific_Midway, // 0xe286d38e, Pacific/Midway -> Pacific/Pago_Pago
    -
    982  &kZoneAntarctica_Syowa, // 0xe330c7e1, Antarctica/Syowa -> Asia/Riyadh
    -
    983  &kZoneAntarctica_Troll, // 0xe33f085b, Antarctica/Troll
    -
    984  &kZoneEurope_Saratov, // 0xe4315da4, Europe/Saratov
    -
    985  &kZonePacific_Noumea, // 0xe551b788, Pacific/Noumea
    -
    986  &kZoneIceland, // 0xe56a35b5, Iceland -> Africa/Abidjan
    -
    987  &kZoneIndian_Mayotte, // 0xe6880bca, Indian/Mayotte -> Africa/Nairobi
    -
    988  &kZoneAustralia_Tasmania, // 0xe6d76648, Australia/Tasmania -> Australia/Hobart
    -
    989  &kZonePacific_Honolulu, // 0xe6e70af9, Pacific/Honolulu
    -
    990  &kZoneAmerica_Kralendijk, // 0xe7c456c5, America/Kralendijk -> America/Puerto_Rico
    -
    991  &kZoneAmerica_Argentina_Tucuman, // 0xe96399eb, America/Argentina/Tucuman
    -
    992  &kZonePacific_Ponape, // 0xe9f80086, Pacific/Ponape -> Pacific/Guadalcanal
    -
    993  &kZoneEurope_Zaporozhye, // 0xeab9767f, Europe/Zaporozhye -> Europe/Kyiv
    -
    994  &kZoneEurope_Isle_of_Man, // 0xeaf84580, Europe/Isle_of_Man -> Europe/London
    -
    995  &kZoneAsia_Magadan, // 0xebacc19b, Asia/Magadan
    -
    996  &kZoneAmerica_Ojinaga, // 0xebfde83f, America/Ojinaga
    -
    997  &kZonePacific_Saipan, // 0xeff7a35f, Pacific/Saipan -> Pacific/Guam
    -
    998  &kZoneCST6CDT, // 0xf0e87d00, CST6CDT -> America/Chicago
    -
    999  &kZonePacific_Tahiti, // 0xf24c2446, Pacific/Tahiti
    -
    1000  &kZonePacific_Tarawa, // 0xf2517e63, Pacific/Tarawa
    -
    1001  &kZoneMST7MDT, // 0xf2af9375, MST7MDT -> America/Denver
    -
    1002  &kZoneCanada_Eastern, // 0xf3612d5e, Canada/Eastern -> America/Toronto
    -
    1003  &kZoneAsia_Tashkent, // 0xf3924254, Asia/Tashkent
    -
    1004  &kZoneAsia_Sakhalin, // 0xf4a1c9bd, Asia/Sakhalin
    -
    1005  &kZonePacific_Guadalcanal, // 0xf4dd25f0, Pacific/Guadalcanal
    -
    1006  &kZoneEtc_GMT0, // 0xf53ea988, Etc/GMT0 -> Etc/GMT
    -
    1007  &kZoneEtc_Zulu, // 0xf549c240, Etc/Zulu -> Etc/UTC
    -
    1008  &kZoneAmerica_Danmarkshavn, // 0xf554d204, America/Danmarkshavn
    -
    1009  &kZoneAsia_Shanghai, // 0xf895a7f5, Asia/Shanghai
    -
    1010  &kZoneEurope_Gibraltar, // 0xf8e325fc, Europe/Gibraltar
    -
    1011  &kZoneAsia_Chongqing, // 0xf937fb90, Asia/Chongqing -> Asia/Shanghai
    -
    1012  &kZoneAtlantic_Azores, // 0xf93ed918, Atlantic/Azores
    -
    1013  &kZonePacific_Wallis, // 0xf94ddb0f, Pacific/Wallis -> Pacific/Tarawa
    -
    1014  &kZoneAmerica_Thunder_Bay, // 0xf962e71b, America/Thunder_Bay -> America/Toronto
    -
    1015  &kZoneAmerica_Eirunepe, // 0xf9b29683, America/Eirunepe
    -
    1016  &kZoneAmerica_Montevideo, // 0xfa214780, America/Montevideo
    -
    1017  &kZoneUS_Alaska, // 0xfa300bc9, US/Alaska -> America/Anchorage
    -
    1018  &kZoneGB_Eire, // 0xfa70e300, GB-Eire -> Europe/London
    -
    1019  &kZoneEurope_Kirov, // 0xfaf5abef, Europe/Kirov
    -
    1020  &kZoneEurope_Malta, // 0xfb1560f3, Europe/Malta
    -
    1021  &kZoneEurope_Minsk, // 0xfb19cc66, Europe/Minsk
    -
    1022  &kZoneEurope_Bucharest, // 0xfb349ec5, Europe/Bucharest
    -
    1023  &kZoneAfrica_Khartoum, // 0xfb3d4205, Africa/Khartoum
    -
    1024  &kZoneEurope_Paris, // 0xfb4bc2a3, Europe/Paris
    -
    1025  &kZoneAsia_Yekaterinburg, // 0xfb544c6e, Asia/Yekaterinburg
    -
    1026  &kZoneEurope_Sofia, // 0xfb898656, Europe/Sofia
    -
    1027  &kZoneCanada_Mountain, // 0xfb8a8217, Canada/Mountain -> America/Edmonton
    -
    1028  &kZoneEurope_Vaduz, // 0xfbb81bae, Europe/Vaduz -> Europe/Zurich
    -
    1029  &kZoneAtlantic_Canary, // 0xfc23f2c2, Atlantic/Canary
    -
    1030  &kZoneMexico_BajaNorte, // 0xfcf7150f, Mexico/BajaNorte -> America/Tijuana
    -
    1031  &kZoneAmerica_Santa_Isabel, // 0xfd18a56c, America/Santa_Isabel -> America/Tijuana
    -
    1032  &kZoneAmerica_Campo_Grande, // 0xfec3e7a6, America/Campo_Grande
    -
    1033 
    -
    1034 };
    -
    1035 
    -
    1036 }
    -
    1037 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/zonedbc_2zone__registry_8h_source.html b/docs/html/zonedbc_2zone__registry_8h_source.html deleted file mode 100644 index 5fa56ca64..000000000 --- a/docs/html/zonedbc_2zone__registry_8h_source.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/zone_registry.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope complete
    -
    10 // --db_namespace zonedbc
    -
    11 // --zi_namespace complete::Info
    -
    12 // --start_year 1800
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [1800,2200]
    -
    33 // Accurate Years: [-32767,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1844,2087]
    -
    37 // Lower/Upper Truncated: [False,False]
    -
    38 //
    -
    39 // Estimator Years: [1800,2090]
    -
    40 // Max Buffer Size: 8
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 1956
    -
    45 // Policies: 134
    -
    46 // Rules: 2235
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 26820
    -
    51 // Policies: 402
    -
    52 // Eras: 29340
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 486
    -
    57 // Letters: 160
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 71989
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 26820
    -
    65 // Policies: 1072
    -
    66 // Eras: 39120
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 486
    -
    71 // Letters: 216
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 90292
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #ifndef ACE_TIME_ZONEDBC_ZONE_REGISTRY_H
    -
    79 #define ACE_TIME_ZONEDBC_ZONE_REGISTRY_H
    -
    80 
    -
    81 #include <zoneinfo/infos.h>
    -
    82 
    -
    83 namespace ace_time {
    -
    84 namespace zonedbc {
    -
    85 
    -
    86 // Zones
    -
    87 const uint16_t kZoneRegistrySize = 340;
    -
    88 extern const complete::Info::ZoneInfo* const kZoneRegistry[340];
    -
    89 
    -
    90 // Zones and Links
    -
    91 const uint16_t kZoneAndLinkRegistrySize = 597;
    -
    92 extern const complete::Info::ZoneInfo* const kZoneAndLinkRegistry[597];
    -
    93 
    -
    94 }
    -
    95 }
    -
    96 #endif
    -
    - - - - diff --git a/docs/html/zonedbx_2zone__infos_8cpp_source.html b/docs/html/zonedbx_2zone__infos_8cpp_source.html deleted file mode 100644 index 2254f2e38..000000000 --- a/docs/html/zonedbx_2zone__infos_8cpp_source.html +++ /dev/null @@ -1,18677 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/zone_infos.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace zonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2087]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2090]
    -
    40 // Max Buffer Size: 7
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 647
    -
    45 // Policies: 82
    -
    46 // Rules: 731
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 6579
    -
    51 // Policies: 246
    -
    52 // Eras: 7117
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 231
    -
    57 // Letters: 46
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 29000
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 8772
    -
    65 // Policies: 656
    -
    66 // Eras: 10352
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 231
    -
    71 // Letters: 64
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 42653
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #include <zoneinfo/compat.h>
    -
    79 #include "zone_policies.h"
    -
    80 #include "zone_infos.h"
    -
    81 
    -
    82 namespace ace_time {
    -
    83 namespace zonedbx {
    -
    84 
    -
    85 //---------------------------------------------------------------------------
    -
    86 // ZoneContext
    -
    87 //---------------------------------------------------------------------------
    -
    88 
    -
    89 static const char kVersionString[] ACE_TIME_PROGMEM = "2025b";
    -
    90 const __FlashStringHelper* const kTzDatabaseVersion =
    -
    91  (const __FlashStringHelper*) kVersionString;
    -
    92 
    -
    93 static const char kFragment1[] ACE_TIME_PROGMEM = "Africa/";
    -
    94 static const char kFragment2[] ACE_TIME_PROGMEM = "America/";
    -
    95 static const char kFragment3[] ACE_TIME_PROGMEM = "Antarctica/";
    -
    96 static const char kFragment4[] ACE_TIME_PROGMEM = "Argentina/";
    -
    97 static const char kFragment5[] ACE_TIME_PROGMEM = "Asia/";
    -
    98 static const char kFragment6[] ACE_TIME_PROGMEM = "Atlantic/";
    -
    99 static const char kFragment7[] ACE_TIME_PROGMEM = "Australia/";
    -
    100 static const char kFragment8[] ACE_TIME_PROGMEM = "Brazil/";
    -
    101 static const char kFragment9[] ACE_TIME_PROGMEM = "Canada/";
    -
    102 static const char kFragment10[] ACE_TIME_PROGMEM = "Etc/";
    -
    103 static const char kFragment11[] ACE_TIME_PROGMEM = "Europe/";
    -
    104 static const char kFragment12[] ACE_TIME_PROGMEM = "Indian/";
    -
    105 static const char kFragment13[] ACE_TIME_PROGMEM = "Indiana/";
    -
    106 static const char kFragment14[] ACE_TIME_PROGMEM = "Pacific/";
    -
    107 
    -
    108 const char* const kFragments[] ACE_TIME_PROGMEM = {
    -
    109  nullptr, // '\x00' cannot exist
    -
    110  kFragment1, // '\x01' "Africa/"
    -
    111  kFragment2, // '\x02' "America/"
    -
    112  kFragment3, // '\x03' "Antarctica/"
    -
    113  kFragment4, // '\x04' "Argentina/"
    -
    114  kFragment5, // '\x05' "Asia/"
    -
    115  kFragment6, // '\x06' "Atlantic/"
    -
    116  kFragment7, // '\x07' "Australia/"
    -
    117  kFragment8, // '\x08' "Brazil/"
    -
    118  kFragment9, // '\x09' "Canada/"
    -
    119  kFragment10, // '\x0a' "Etc/"
    -
    120  kFragment11, // '\x0b' "Europe/"
    -
    121  kFragment12, // '\x0c' "Indian/"
    -
    122  kFragment13, // '\x0d' "Indiana/"
    -
    123  kFragment14, // '\x0e' "Pacific/"
    -
    124 
    -
    125 };
    -
    126 
    -
    127 static const char kLetter0[] ACE_TIME_PROGMEM = "";
    -
    128 static const char kLetter1[] ACE_TIME_PROGMEM = "+00";
    -
    129 static const char kLetter2[] ACE_TIME_PROGMEM = "+02";
    -
    130 static const char kLetter3[] ACE_TIME_PROGMEM = "CAT";
    -
    131 static const char kLetter4[] ACE_TIME_PROGMEM = "CST";
    -
    132 static const char kLetter5[] ACE_TIME_PROGMEM = "D";
    -
    133 static const char kLetter6[] ACE_TIME_PROGMEM = "DD";
    -
    134 static const char kLetter7[] ACE_TIME_PROGMEM = "S";
    -
    135 static const char kLetter8[] ACE_TIME_PROGMEM = "WAT";
    -
    136 
    -
    137 const char* const kLetters[] ACE_TIME_PROGMEM = {
    -
    138  kLetter0, // ""
    -
    139  kLetter1, // "+00"
    -
    140  kLetter2, // "+02"
    -
    141  kLetter3, // "CAT"
    -
    142  kLetter4, // "CST"
    -
    143  kLetter5, // "D"
    -
    144  kLetter6, // "DD"
    -
    145  kLetter7, // "S"
    -
    146  kLetter8, // "WAT"
    -
    147 
    -
    148 };
    -
    149 
    -
    150 const extended::Info::ZoneContext kZoneContext ACE_TIME_PROGMEM = {
    -
    151  2000 /*startYear*/,
    -
    152  2200 /*untilYear*/,
    -
    153  2000 /*startYearAccurate*/,
    -
    154  32767 /*untilYearAccurate*/,
    -
    155  2100 /*baseYear*/,
    -
    156  7 /*maxTransitions*/,
    -
    157  kVersionString /*tzVersion*/,
    -
    158  15 /*numFragments*/,
    -
    159  9 /*numLetters*/,
    -
    160  kFragments /*fragments*/,
    -
    161  kLetters /*letters*/,
    -
    162 };
    -
    163 
    -
    164 //---------------------------------------------------------------------------
    -
    165 // Zones: 340
    -
    166 // Eras: 647
    -
    167 //---------------------------------------------------------------------------
    -
    168 
    -
    169 //---------------------------------------------------------------------------
    -
    170 // Zone name: Africa/Abidjan
    -
    171 // Eras: 1
    -
    172 //---------------------------------------------------------------------------
    -
    173 
    -
    174 static const extended::Info::ZoneEra kZoneEraAfrica_Abidjan[] ACE_TIME_PROGMEM = {
    -
    175  // 0:00 - GMT
    -
    176  {
    -
    177  nullptr /*zonePolicy*/,
    -
    178  "GMT" /*format*/,
    -
    179  0 /*offsetCode*/,
    -
    180  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    181  127 /*untilYearTiny*/,
    -
    182  1 /*untilMonth*/,
    -
    183  1 /*untilDay*/,
    -
    184  0 /*untilTimeCode*/,
    -
    185  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    186  },
    -
    187 
    -
    188 };
    -
    189 
    -
    190 static const char kZoneNameAfrica_Abidjan[] ACE_TIME_PROGMEM = "\x01" "Abidjan";
    -
    191 
    -
    192 const extended::Info::ZoneInfo kZoneAfrica_Abidjan ACE_TIME_PROGMEM = {
    -
    193  kZoneNameAfrica_Abidjan /*name*/,
    -
    194  0xc21305a3 /*zoneId*/,
    -
    195  &kZoneContext /*zoneContext*/,
    -
    196  1 /*numEras*/,
    -
    197  kZoneEraAfrica_Abidjan /*eras*/,
    -
    198  nullptr /*targetInfo*/,
    -
    199 };
    -
    200 
    -
    201 //---------------------------------------------------------------------------
    -
    202 // Zone name: Africa/Algiers
    -
    203 // Eras: 1
    -
    204 //---------------------------------------------------------------------------
    -
    205 
    -
    206 static const extended::Info::ZoneEra kZoneEraAfrica_Algiers[] ACE_TIME_PROGMEM = {
    -
    207  // 1:00 - CET
    -
    208  {
    -
    209  nullptr /*zonePolicy*/,
    -
    210  "CET" /*format*/,
    -
    211  4 /*offsetCode*/,
    -
    212  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    213  127 /*untilYearTiny*/,
    -
    214  1 /*untilMonth*/,
    -
    215  1 /*untilDay*/,
    -
    216  0 /*untilTimeCode*/,
    -
    217  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    218  },
    -
    219 
    -
    220 };
    -
    221 
    -
    222 static const char kZoneNameAfrica_Algiers[] ACE_TIME_PROGMEM = "\x01" "Algiers";
    -
    223 
    -
    224 const extended::Info::ZoneInfo kZoneAfrica_Algiers ACE_TIME_PROGMEM = {
    -
    225  kZoneNameAfrica_Algiers /*name*/,
    -
    226  0xd94515c1 /*zoneId*/,
    -
    227  &kZoneContext /*zoneContext*/,
    -
    228  1 /*numEras*/,
    -
    229  kZoneEraAfrica_Algiers /*eras*/,
    -
    230  nullptr /*targetInfo*/,
    -
    231 };
    -
    232 
    -
    233 //---------------------------------------------------------------------------
    -
    234 // Zone name: Africa/Bissau
    -
    235 // Eras: 1
    -
    236 //---------------------------------------------------------------------------
    -
    237 
    -
    238 static const extended::Info::ZoneEra kZoneEraAfrica_Bissau[] ACE_TIME_PROGMEM = {
    -
    239  // 0:00 - GMT
    -
    240  {
    -
    241  nullptr /*zonePolicy*/,
    -
    242  "GMT" /*format*/,
    -
    243  0 /*offsetCode*/,
    -
    244  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    245  127 /*untilYearTiny*/,
    -
    246  1 /*untilMonth*/,
    -
    247  1 /*untilDay*/,
    -
    248  0 /*untilTimeCode*/,
    -
    249  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    250  },
    -
    251 
    -
    252 };
    -
    253 
    -
    254 static const char kZoneNameAfrica_Bissau[] ACE_TIME_PROGMEM = "\x01" "Bissau";
    -
    255 
    -
    256 const extended::Info::ZoneInfo kZoneAfrica_Bissau ACE_TIME_PROGMEM = {
    -
    257  kZoneNameAfrica_Bissau /*name*/,
    -
    258  0x75564141 /*zoneId*/,
    -
    259  &kZoneContext /*zoneContext*/,
    -
    260  1 /*numEras*/,
    -
    261  kZoneEraAfrica_Bissau /*eras*/,
    -
    262  nullptr /*targetInfo*/,
    -
    263 };
    -
    264 
    -
    265 //---------------------------------------------------------------------------
    -
    266 // Zone name: Africa/Cairo
    -
    267 // Eras: 1
    -
    268 //---------------------------------------------------------------------------
    -
    269 
    -
    270 static const extended::Info::ZoneEra kZoneEraAfrica_Cairo[] ACE_TIME_PROGMEM = {
    -
    271  // 2:00 Egypt EE%sT
    -
    272  {
    -
    273  &kZonePolicyEgypt /*zonePolicy*/,
    -
    274  "EE%T" /*format*/,
    -
    275  8 /*offsetCode*/,
    -
    276  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    277  127 /*untilYearTiny*/,
    -
    278  1 /*untilMonth*/,
    -
    279  1 /*untilDay*/,
    -
    280  0 /*untilTimeCode*/,
    -
    281  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    282  },
    -
    283 
    -
    284 };
    -
    285 
    -
    286 static const char kZoneNameAfrica_Cairo[] ACE_TIME_PROGMEM = "\x01" "Cairo";
    -
    287 
    -
    288 const extended::Info::ZoneInfo kZoneAfrica_Cairo ACE_TIME_PROGMEM = {
    -
    289  kZoneNameAfrica_Cairo /*name*/,
    -
    290  0x77f8e228 /*zoneId*/,
    -
    291  &kZoneContext /*zoneContext*/,
    -
    292  1 /*numEras*/,
    -
    293  kZoneEraAfrica_Cairo /*eras*/,
    -
    294  nullptr /*targetInfo*/,
    -
    295 };
    -
    296 
    -
    297 //---------------------------------------------------------------------------
    -
    298 // Zone name: Africa/Casablanca
    -
    299 // Eras: 2
    -
    300 //---------------------------------------------------------------------------
    -
    301 
    -
    302 static const extended::Info::ZoneEra kZoneEraAfrica_Casablanca[] ACE_TIME_PROGMEM = {
    -
    303  // 0:00 Morocco %z 2018 Oct 28 3:00
    -
    304  {
    -
    305  &kZonePolicyMorocco /*zonePolicy*/,
    -
    306  "" /*format*/,
    -
    307  0 /*offsetCode*/,
    -
    308  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    309  -82 /*untilYearTiny*/,
    -
    310  10 /*untilMonth*/,
    -
    311  28 /*untilDay*/,
    -
    312  12 /*untilTimeCode*/,
    -
    313  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    314  },
    -
    315  // 1:00 Morocco %z
    -
    316  {
    -
    317  &kZonePolicyMorocco /*zonePolicy*/,
    -
    318  "" /*format*/,
    -
    319  4 /*offsetCode*/,
    -
    320  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    321  127 /*untilYearTiny*/,
    -
    322  1 /*untilMonth*/,
    -
    323  1 /*untilDay*/,
    -
    324  0 /*untilTimeCode*/,
    -
    325  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    326  },
    -
    327 
    -
    328 };
    -
    329 
    -
    330 static const char kZoneNameAfrica_Casablanca[] ACE_TIME_PROGMEM = "\x01" "Casablanca";
    -
    331 
    -
    332 const extended::Info::ZoneInfo kZoneAfrica_Casablanca ACE_TIME_PROGMEM = {
    -
    333  kZoneNameAfrica_Casablanca /*name*/,
    -
    334  0xc59f1b33 /*zoneId*/,
    -
    335  &kZoneContext /*zoneContext*/,
    -
    336  2 /*numEras*/,
    -
    337  kZoneEraAfrica_Casablanca /*eras*/,
    -
    338  nullptr /*targetInfo*/,
    -
    339 };
    -
    340 
    -
    341 //---------------------------------------------------------------------------
    -
    342 // Zone name: Africa/Ceuta
    -
    343 // Eras: 1
    -
    344 //---------------------------------------------------------------------------
    -
    345 
    -
    346 static const extended::Info::ZoneEra kZoneEraAfrica_Ceuta[] ACE_TIME_PROGMEM = {
    -
    347  // 1:00 EU CE%sT
    -
    348  {
    -
    349  &kZonePolicyEU /*zonePolicy*/,
    -
    350  "CE%T" /*format*/,
    -
    351  4 /*offsetCode*/,
    -
    352  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    353  127 /*untilYearTiny*/,
    -
    354  1 /*untilMonth*/,
    -
    355  1 /*untilDay*/,
    -
    356  0 /*untilTimeCode*/,
    -
    357  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    358  },
    -
    359 
    -
    360 };
    -
    361 
    -
    362 static const char kZoneNameAfrica_Ceuta[] ACE_TIME_PROGMEM = "\x01" "Ceuta";
    -
    363 
    -
    364 const extended::Info::ZoneInfo kZoneAfrica_Ceuta ACE_TIME_PROGMEM = {
    -
    365  kZoneNameAfrica_Ceuta /*name*/,
    -
    366  0x77fb46ec /*zoneId*/,
    -
    367  &kZoneContext /*zoneContext*/,
    -
    368  1 /*numEras*/,
    -
    369  kZoneEraAfrica_Ceuta /*eras*/,
    -
    370  nullptr /*targetInfo*/,
    -
    371 };
    -
    372 
    -
    373 //---------------------------------------------------------------------------
    -
    374 // Zone name: Africa/El_Aaiun
    -
    375 // Eras: 2
    -
    376 //---------------------------------------------------------------------------
    -
    377 
    -
    378 static const extended::Info::ZoneEra kZoneEraAfrica_El_Aaiun[] ACE_TIME_PROGMEM = {
    -
    379  // 0:00 Morocco %z 2018 Oct 28 3:00
    -
    380  {
    -
    381  &kZonePolicyMorocco /*zonePolicy*/,
    -
    382  "" /*format*/,
    -
    383  0 /*offsetCode*/,
    -
    384  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    385  -82 /*untilYearTiny*/,
    -
    386  10 /*untilMonth*/,
    -
    387  28 /*untilDay*/,
    -
    388  12 /*untilTimeCode*/,
    -
    389  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    390  },
    -
    391  // 1:00 Morocco %z
    -
    392  {
    -
    393  &kZonePolicyMorocco /*zonePolicy*/,
    -
    394  "" /*format*/,
    -
    395  4 /*offsetCode*/,
    -
    396  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    397  127 /*untilYearTiny*/,
    -
    398  1 /*untilMonth*/,
    -
    399  1 /*untilDay*/,
    -
    400  0 /*untilTimeCode*/,
    -
    401  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    402  },
    -
    403 
    -
    404 };
    -
    405 
    -
    406 static const char kZoneNameAfrica_El_Aaiun[] ACE_TIME_PROGMEM = "\x01" "El_Aaiun";
    -
    407 
    -
    408 const extended::Info::ZoneInfo kZoneAfrica_El_Aaiun ACE_TIME_PROGMEM = {
    -
    409  kZoneNameAfrica_El_Aaiun /*name*/,
    -
    410  0x9d6fb118 /*zoneId*/,
    -
    411  &kZoneContext /*zoneContext*/,
    -
    412  2 /*numEras*/,
    -
    413  kZoneEraAfrica_El_Aaiun /*eras*/,
    -
    414  nullptr /*targetInfo*/,
    -
    415 };
    -
    416 
    -
    417 //---------------------------------------------------------------------------
    -
    418 // Zone name: Africa/Johannesburg
    -
    419 // Eras: 1
    -
    420 //---------------------------------------------------------------------------
    -
    421 
    -
    422 static const extended::Info::ZoneEra kZoneEraAfrica_Johannesburg[] ACE_TIME_PROGMEM = {
    -
    423  // 2:00 SA SAST
    -
    424  {
    -
    425  &kZonePolicySA /*zonePolicy*/,
    -
    426  "SAST" /*format*/,
    -
    427  8 /*offsetCode*/,
    -
    428  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    429  127 /*untilYearTiny*/,
    -
    430  1 /*untilMonth*/,
    -
    431  1 /*untilDay*/,
    -
    432  0 /*untilTimeCode*/,
    -
    433  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    434  },
    -
    435 
    -
    436 };
    -
    437 
    -
    438 static const char kZoneNameAfrica_Johannesburg[] ACE_TIME_PROGMEM = "\x01" "Johannesburg";
    -
    439 
    -
    440 const extended::Info::ZoneInfo kZoneAfrica_Johannesburg ACE_TIME_PROGMEM = {
    -
    441  kZoneNameAfrica_Johannesburg /*name*/,
    -
    442  0xd5d157a0 /*zoneId*/,
    -
    443  &kZoneContext /*zoneContext*/,
    -
    444  1 /*numEras*/,
    -
    445  kZoneEraAfrica_Johannesburg /*eras*/,
    -
    446  nullptr /*targetInfo*/,
    -
    447 };
    -
    448 
    -
    449 //---------------------------------------------------------------------------
    -
    450 // Zone name: Africa/Juba
    -
    451 // Eras: 3
    -
    452 //---------------------------------------------------------------------------
    -
    453 
    -
    454 static const extended::Info::ZoneEra kZoneEraAfrica_Juba[] ACE_TIME_PROGMEM = {
    -
    455  // 2:00 Sudan CA%sT 2000 Jan 15 12:00
    -
    456  {
    -
    457  &kZonePolicySudan /*zonePolicy*/,
    -
    458  "CA%T" /*format*/,
    -
    459  8 /*offsetCode*/,
    -
    460  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    461  -100 /*untilYearTiny*/,
    -
    462  1 /*untilMonth*/,
    -
    463  15 /*untilDay*/,
    -
    464  48 /*untilTimeCode*/,
    -
    465  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    466  },
    -
    467  // 3:00 - EAT 2021 Feb 1 00:00
    -
    468  {
    -
    469  nullptr /*zonePolicy*/,
    -
    470  "EAT" /*format*/,
    -
    471  12 /*offsetCode*/,
    -
    472  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    473  -79 /*untilYearTiny*/,
    -
    474  2 /*untilMonth*/,
    -
    475  1 /*untilDay*/,
    -
    476  0 /*untilTimeCode*/,
    -
    477  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    478  },
    -
    479  // 2:00 - CAT
    -
    480  {
    -
    481  nullptr /*zonePolicy*/,
    -
    482  "CAT" /*format*/,
    -
    483  8 /*offsetCode*/,
    -
    484  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    485  127 /*untilYearTiny*/,
    -
    486  1 /*untilMonth*/,
    -
    487  1 /*untilDay*/,
    -
    488  0 /*untilTimeCode*/,
    -
    489  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    490  },
    -
    491 
    -
    492 };
    -
    493 
    -
    494 static const char kZoneNameAfrica_Juba[] ACE_TIME_PROGMEM = "\x01" "Juba";
    -
    495 
    -
    496 const extended::Info::ZoneInfo kZoneAfrica_Juba ACE_TIME_PROGMEM = {
    -
    497  kZoneNameAfrica_Juba /*name*/,
    -
    498  0xd51b395c /*zoneId*/,
    -
    499  &kZoneContext /*zoneContext*/,
    -
    500  3 /*numEras*/,
    -
    501  kZoneEraAfrica_Juba /*eras*/,
    -
    502  nullptr /*targetInfo*/,
    -
    503 };
    -
    504 
    -
    505 //---------------------------------------------------------------------------
    -
    506 // Zone name: Africa/Khartoum
    -
    507 // Eras: 3
    -
    508 //---------------------------------------------------------------------------
    -
    509 
    -
    510 static const extended::Info::ZoneEra kZoneEraAfrica_Khartoum[] ACE_TIME_PROGMEM = {
    -
    511  // 2:00 Sudan CA%sT 2000 Jan 15 12:00
    -
    512  {
    -
    513  &kZonePolicySudan /*zonePolicy*/,
    -
    514  "CA%T" /*format*/,
    -
    515  8 /*offsetCode*/,
    -
    516  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    517  -100 /*untilYearTiny*/,
    -
    518  1 /*untilMonth*/,
    -
    519  15 /*untilDay*/,
    -
    520  48 /*untilTimeCode*/,
    -
    521  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    522  },
    -
    523  // 3:00 - EAT 2017 Nov 1
    -
    524  {
    -
    525  nullptr /*zonePolicy*/,
    -
    526  "EAT" /*format*/,
    -
    527  12 /*offsetCode*/,
    -
    528  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    529  -83 /*untilYearTiny*/,
    -
    530  11 /*untilMonth*/,
    -
    531  1 /*untilDay*/,
    -
    532  0 /*untilTimeCode*/,
    -
    533  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    534  },
    -
    535  // 2:00 - CAT
    -
    536  {
    -
    537  nullptr /*zonePolicy*/,
    -
    538  "CAT" /*format*/,
    -
    539  8 /*offsetCode*/,
    -
    540  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    541  127 /*untilYearTiny*/,
    -
    542  1 /*untilMonth*/,
    -
    543  1 /*untilDay*/,
    -
    544  0 /*untilTimeCode*/,
    -
    545  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    546  },
    -
    547 
    -
    548 };
    -
    549 
    -
    550 static const char kZoneNameAfrica_Khartoum[] ACE_TIME_PROGMEM = "\x01" "Khartoum";
    -
    551 
    -
    552 const extended::Info::ZoneInfo kZoneAfrica_Khartoum ACE_TIME_PROGMEM = {
    -
    553  kZoneNameAfrica_Khartoum /*name*/,
    -
    554  0xfb3d4205 /*zoneId*/,
    -
    555  &kZoneContext /*zoneContext*/,
    -
    556  3 /*numEras*/,
    -
    557  kZoneEraAfrica_Khartoum /*eras*/,
    -
    558  nullptr /*targetInfo*/,
    -
    559 };
    -
    560 
    -
    561 //---------------------------------------------------------------------------
    -
    562 // Zone name: Africa/Lagos
    -
    563 // Eras: 1
    -
    564 //---------------------------------------------------------------------------
    -
    565 
    -
    566 static const extended::Info::ZoneEra kZoneEraAfrica_Lagos[] ACE_TIME_PROGMEM = {
    -
    567  // 1:00 - WAT
    -
    568  {
    -
    569  nullptr /*zonePolicy*/,
    -
    570  "WAT" /*format*/,
    -
    571  4 /*offsetCode*/,
    -
    572  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    573  127 /*untilYearTiny*/,
    -
    574  1 /*untilMonth*/,
    -
    575  1 /*untilDay*/,
    -
    576  0 /*untilTimeCode*/,
    -
    577  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    578  },
    -
    579 
    -
    580 };
    -
    581 
    -
    582 static const char kZoneNameAfrica_Lagos[] ACE_TIME_PROGMEM = "\x01" "Lagos";
    -
    583 
    -
    584 const extended::Info::ZoneInfo kZoneAfrica_Lagos ACE_TIME_PROGMEM = {
    -
    585  kZoneNameAfrica_Lagos /*name*/,
    -
    586  0x789bb5d0 /*zoneId*/,
    -
    587  &kZoneContext /*zoneContext*/,
    -
    588  1 /*numEras*/,
    -
    589  kZoneEraAfrica_Lagos /*eras*/,
    -
    590  nullptr /*targetInfo*/,
    -
    591 };
    -
    592 
    -
    593 //---------------------------------------------------------------------------
    -
    594 // Zone name: Africa/Maputo
    -
    595 // Eras: 1
    -
    596 //---------------------------------------------------------------------------
    -
    597 
    -
    598 static const extended::Info::ZoneEra kZoneEraAfrica_Maputo[] ACE_TIME_PROGMEM = {
    -
    599  // 2:00 - CAT
    -
    600  {
    -
    601  nullptr /*zonePolicy*/,
    -
    602  "CAT" /*format*/,
    -
    603  8 /*offsetCode*/,
    -
    604  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    605  127 /*untilYearTiny*/,
    -
    606  1 /*untilMonth*/,
    -
    607  1 /*untilDay*/,
    -
    608  0 /*untilTimeCode*/,
    -
    609  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    610  },
    -
    611 
    -
    612 };
    -
    613 
    -
    614 static const char kZoneNameAfrica_Maputo[] ACE_TIME_PROGMEM = "\x01" "Maputo";
    -
    615 
    -
    616 const extended::Info::ZoneInfo kZoneAfrica_Maputo ACE_TIME_PROGMEM = {
    -
    617  kZoneNameAfrica_Maputo /*name*/,
    -
    618  0x8e6ca1f0 /*zoneId*/,
    -
    619  &kZoneContext /*zoneContext*/,
    -
    620  1 /*numEras*/,
    -
    621  kZoneEraAfrica_Maputo /*eras*/,
    -
    622  nullptr /*targetInfo*/,
    -
    623 };
    -
    624 
    -
    625 //---------------------------------------------------------------------------
    -
    626 // Zone name: Africa/Monrovia
    -
    627 // Eras: 1
    -
    628 //---------------------------------------------------------------------------
    -
    629 
    -
    630 static const extended::Info::ZoneEra kZoneEraAfrica_Monrovia[] ACE_TIME_PROGMEM = {
    -
    631  // 0:00 - GMT
    -
    632  {
    -
    633  nullptr /*zonePolicy*/,
    -
    634  "GMT" /*format*/,
    -
    635  0 /*offsetCode*/,
    -
    636  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    637  127 /*untilYearTiny*/,
    -
    638  1 /*untilMonth*/,
    -
    639  1 /*untilDay*/,
    -
    640  0 /*untilTimeCode*/,
    -
    641  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    642  },
    -
    643 
    -
    644 };
    -
    645 
    -
    646 static const char kZoneNameAfrica_Monrovia[] ACE_TIME_PROGMEM = "\x01" "Monrovia";
    -
    647 
    -
    648 const extended::Info::ZoneInfo kZoneAfrica_Monrovia ACE_TIME_PROGMEM = {
    -
    649  kZoneNameAfrica_Monrovia /*name*/,
    -
    650  0x0ce90385 /*zoneId*/,
    -
    651  &kZoneContext /*zoneContext*/,
    -
    652  1 /*numEras*/,
    -
    653  kZoneEraAfrica_Monrovia /*eras*/,
    -
    654  nullptr /*targetInfo*/,
    -
    655 };
    -
    656 
    -
    657 //---------------------------------------------------------------------------
    -
    658 // Zone name: Africa/Nairobi
    -
    659 // Eras: 1
    -
    660 //---------------------------------------------------------------------------
    -
    661 
    -
    662 static const extended::Info::ZoneEra kZoneEraAfrica_Nairobi[] ACE_TIME_PROGMEM = {
    -
    663  // 3:00 - EAT
    -
    664  {
    -
    665  nullptr /*zonePolicy*/,
    -
    666  "EAT" /*format*/,
    -
    667  12 /*offsetCode*/,
    -
    668  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    669  127 /*untilYearTiny*/,
    -
    670  1 /*untilMonth*/,
    -
    671  1 /*untilDay*/,
    -
    672  0 /*untilTimeCode*/,
    -
    673  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    674  },
    -
    675 
    -
    676 };
    -
    677 
    -
    678 static const char kZoneNameAfrica_Nairobi[] ACE_TIME_PROGMEM = "\x01" "Nairobi";
    -
    679 
    -
    680 const extended::Info::ZoneInfo kZoneAfrica_Nairobi ACE_TIME_PROGMEM = {
    -
    681  kZoneNameAfrica_Nairobi /*name*/,
    -
    682  0xa87ab57e /*zoneId*/,
    -
    683  &kZoneContext /*zoneContext*/,
    -
    684  1 /*numEras*/,
    -
    685  kZoneEraAfrica_Nairobi /*eras*/,
    -
    686  nullptr /*targetInfo*/,
    -
    687 };
    -
    688 
    -
    689 //---------------------------------------------------------------------------
    -
    690 // Zone name: Africa/Ndjamena
    -
    691 // Eras: 1
    -
    692 //---------------------------------------------------------------------------
    -
    693 
    -
    694 static const extended::Info::ZoneEra kZoneEraAfrica_Ndjamena[] ACE_TIME_PROGMEM = {
    -
    695  // 1:00 - WAT
    -
    696  {
    -
    697  nullptr /*zonePolicy*/,
    -
    698  "WAT" /*format*/,
    -
    699  4 /*offsetCode*/,
    -
    700  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    701  127 /*untilYearTiny*/,
    -
    702  1 /*untilMonth*/,
    -
    703  1 /*untilDay*/,
    -
    704  0 /*untilTimeCode*/,
    -
    705  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    706  },
    -
    707 
    -
    708 };
    -
    709 
    -
    710 static const char kZoneNameAfrica_Ndjamena[] ACE_TIME_PROGMEM = "\x01" "Ndjamena";
    -
    711 
    -
    712 const extended::Info::ZoneInfo kZoneAfrica_Ndjamena ACE_TIME_PROGMEM = {
    -
    713  kZoneNameAfrica_Ndjamena /*name*/,
    -
    714  0x9fe09898 /*zoneId*/,
    -
    715  &kZoneContext /*zoneContext*/,
    -
    716  1 /*numEras*/,
    -
    717  kZoneEraAfrica_Ndjamena /*eras*/,
    -
    718  nullptr /*targetInfo*/,
    -
    719 };
    -
    720 
    -
    721 //---------------------------------------------------------------------------
    -
    722 // Zone name: Africa/Sao_Tome
    -
    723 // Eras: 3
    -
    724 //---------------------------------------------------------------------------
    -
    725 
    -
    726 static const extended::Info::ZoneEra kZoneEraAfrica_Sao_Tome[] ACE_TIME_PROGMEM = {
    -
    727  // 0:00 - GMT 2018 Jan 1 01:00
    -
    728  {
    -
    729  nullptr /*zonePolicy*/,
    -
    730  "GMT" /*format*/,
    -
    731  0 /*offsetCode*/,
    -
    732  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    733  -82 /*untilYearTiny*/,
    -
    734  1 /*untilMonth*/,
    -
    735  1 /*untilDay*/,
    -
    736  4 /*untilTimeCode*/,
    -
    737  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    738  },
    -
    739  // 1:00 - WAT 2019 Jan 1 02:00
    -
    740  {
    -
    741  nullptr /*zonePolicy*/,
    -
    742  "WAT" /*format*/,
    -
    743  4 /*offsetCode*/,
    -
    744  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    745  -81 /*untilYearTiny*/,
    -
    746  1 /*untilMonth*/,
    -
    747  1 /*untilDay*/,
    -
    748  8 /*untilTimeCode*/,
    -
    749  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    750  },
    -
    751  // 0:00 - GMT
    -
    752  {
    -
    753  nullptr /*zonePolicy*/,
    -
    754  "GMT" /*format*/,
    -
    755  0 /*offsetCode*/,
    -
    756  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    757  127 /*untilYearTiny*/,
    -
    758  1 /*untilMonth*/,
    -
    759  1 /*untilDay*/,
    -
    760  0 /*untilTimeCode*/,
    -
    761  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    762  },
    -
    763 
    -
    764 };
    -
    765 
    -
    766 static const char kZoneNameAfrica_Sao_Tome[] ACE_TIME_PROGMEM = "\x01" "Sao_Tome";
    -
    767 
    -
    768 const extended::Info::ZoneInfo kZoneAfrica_Sao_Tome ACE_TIME_PROGMEM = {
    -
    769  kZoneNameAfrica_Sao_Tome /*name*/,
    -
    770  0x61b319d1 /*zoneId*/,
    -
    771  &kZoneContext /*zoneContext*/,
    -
    772  3 /*numEras*/,
    -
    773  kZoneEraAfrica_Sao_Tome /*eras*/,
    -
    774  nullptr /*targetInfo*/,
    -
    775 };
    -
    776 
    -
    777 //---------------------------------------------------------------------------
    -
    778 // Zone name: Africa/Tripoli
    -
    779 // Eras: 3
    -
    780 //---------------------------------------------------------------------------
    -
    781 
    -
    782 static const extended::Info::ZoneEra kZoneEraAfrica_Tripoli[] ACE_TIME_PROGMEM = {
    -
    783  // 2:00 - EET 2012 Nov 10 2:00
    -
    784  {
    -
    785  nullptr /*zonePolicy*/,
    -
    786  "EET" /*format*/,
    -
    787  8 /*offsetCode*/,
    -
    788  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    789  -88 /*untilYearTiny*/,
    -
    790  11 /*untilMonth*/,
    -
    791  10 /*untilDay*/,
    -
    792  8 /*untilTimeCode*/,
    -
    793  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    794  },
    -
    795  // 1:00 Libya CE%sT 2013 Oct 25 2:00
    -
    796  {
    -
    797  &kZonePolicyLibya /*zonePolicy*/,
    -
    798  "CE%T" /*format*/,
    -
    799  4 /*offsetCode*/,
    -
    800  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    801  -87 /*untilYearTiny*/,
    -
    802  10 /*untilMonth*/,
    -
    803  25 /*untilDay*/,
    -
    804  8 /*untilTimeCode*/,
    -
    805  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    806  },
    -
    807  // 2:00 - EET
    -
    808  {
    -
    809  nullptr /*zonePolicy*/,
    -
    810  "EET" /*format*/,
    -
    811  8 /*offsetCode*/,
    -
    812  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    813  127 /*untilYearTiny*/,
    -
    814  1 /*untilMonth*/,
    -
    815  1 /*untilDay*/,
    -
    816  0 /*untilTimeCode*/,
    -
    817  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    818  },
    -
    819 
    -
    820 };
    -
    821 
    -
    822 static const char kZoneNameAfrica_Tripoli[] ACE_TIME_PROGMEM = "\x01" "Tripoli";
    -
    823 
    -
    824 const extended::Info::ZoneInfo kZoneAfrica_Tripoli ACE_TIME_PROGMEM = {
    -
    825  kZoneNameAfrica_Tripoli /*name*/,
    -
    826  0x9dfebd3d /*zoneId*/,
    -
    827  &kZoneContext /*zoneContext*/,
    -
    828  3 /*numEras*/,
    -
    829  kZoneEraAfrica_Tripoli /*eras*/,
    -
    830  nullptr /*targetInfo*/,
    -
    831 };
    -
    832 
    -
    833 //---------------------------------------------------------------------------
    -
    834 // Zone name: Africa/Tunis
    -
    835 // Eras: 1
    -
    836 //---------------------------------------------------------------------------
    -
    837 
    -
    838 static const extended::Info::ZoneEra kZoneEraAfrica_Tunis[] ACE_TIME_PROGMEM = {
    -
    839  // 1:00 Tunisia CE%sT
    -
    840  {
    -
    841  &kZonePolicyTunisia /*zonePolicy*/,
    -
    842  "CE%T" /*format*/,
    -
    843  4 /*offsetCode*/,
    -
    844  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    845  127 /*untilYearTiny*/,
    -
    846  1 /*untilMonth*/,
    -
    847  1 /*untilDay*/,
    -
    848  0 /*untilTimeCode*/,
    -
    849  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    850  },
    -
    851 
    -
    852 };
    -
    853 
    -
    854 static const char kZoneNameAfrica_Tunis[] ACE_TIME_PROGMEM = "\x01" "Tunis";
    -
    855 
    -
    856 const extended::Info::ZoneInfo kZoneAfrica_Tunis ACE_TIME_PROGMEM = {
    -
    857  kZoneNameAfrica_Tunis /*name*/,
    -
    858  0x79378e6d /*zoneId*/,
    -
    859  &kZoneContext /*zoneContext*/,
    -
    860  1 /*numEras*/,
    -
    861  kZoneEraAfrica_Tunis /*eras*/,
    -
    862  nullptr /*targetInfo*/,
    -
    863 };
    -
    864 
    -
    865 //---------------------------------------------------------------------------
    -
    866 // Zone name: Africa/Windhoek
    -
    867 // Eras: 1
    -
    868 //---------------------------------------------------------------------------
    -
    869 
    -
    870 static const extended::Info::ZoneEra kZoneEraAfrica_Windhoek[] ACE_TIME_PROGMEM = {
    -
    871  // 2:00 Namibia %s
    -
    872  {
    -
    873  &kZonePolicyNamibia /*zonePolicy*/,
    -
    874  "%" /*format*/,
    -
    875  8 /*offsetCode*/,
    -
    876  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    877  127 /*untilYearTiny*/,
    -
    878  1 /*untilMonth*/,
    -
    879  1 /*untilDay*/,
    -
    880  0 /*untilTimeCode*/,
    -
    881  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    882  },
    -
    883 
    -
    884 };
    -
    885 
    -
    886 static const char kZoneNameAfrica_Windhoek[] ACE_TIME_PROGMEM = "\x01" "Windhoek";
    -
    887 
    -
    888 const extended::Info::ZoneInfo kZoneAfrica_Windhoek ACE_TIME_PROGMEM = {
    -
    889  kZoneNameAfrica_Windhoek /*name*/,
    -
    890  0x789c9bd3 /*zoneId*/,
    -
    891  &kZoneContext /*zoneContext*/,
    -
    892  1 /*numEras*/,
    -
    893  kZoneEraAfrica_Windhoek /*eras*/,
    -
    894  nullptr /*targetInfo*/,
    -
    895 };
    -
    896 
    -
    897 //---------------------------------------------------------------------------
    -
    898 // Zone name: America/Adak
    -
    899 // Eras: 1
    -
    900 //---------------------------------------------------------------------------
    -
    901 
    -
    902 static const extended::Info::ZoneEra kZoneEraAmerica_Adak[] ACE_TIME_PROGMEM = {
    -
    903  // -10:00 US H%sT
    -
    904  {
    -
    905  &kZonePolicyUS /*zonePolicy*/,
    -
    906  "H%T" /*format*/,
    -
    907  -40 /*offsetCode*/,
    -
    908  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    909  127 /*untilYearTiny*/,
    -
    910  1 /*untilMonth*/,
    -
    911  1 /*untilDay*/,
    -
    912  0 /*untilTimeCode*/,
    -
    913  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    914  },
    -
    915 
    -
    916 };
    -
    917 
    -
    918 static const char kZoneNameAmerica_Adak[] ACE_TIME_PROGMEM = "\x02" "Adak";
    -
    919 
    -
    920 const extended::Info::ZoneInfo kZoneAmerica_Adak ACE_TIME_PROGMEM = {
    -
    921  kZoneNameAmerica_Adak /*name*/,
    -
    922  0x97fe49d7 /*zoneId*/,
    -
    923  &kZoneContext /*zoneContext*/,
    -
    924  1 /*numEras*/,
    -
    925  kZoneEraAmerica_Adak /*eras*/,
    -
    926  nullptr /*targetInfo*/,
    -
    927 };
    -
    928 
    -
    929 //---------------------------------------------------------------------------
    -
    930 // Zone name: America/Anchorage
    -
    931 // Eras: 1
    -
    932 //---------------------------------------------------------------------------
    -
    933 
    -
    934 static const extended::Info::ZoneEra kZoneEraAmerica_Anchorage[] ACE_TIME_PROGMEM = {
    -
    935  // -9:00 US AK%sT
    -
    936  {
    -
    937  &kZonePolicyUS /*zonePolicy*/,
    -
    938  "AK%T" /*format*/,
    -
    939  -36 /*offsetCode*/,
    -
    940  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    941  127 /*untilYearTiny*/,
    -
    942  1 /*untilMonth*/,
    -
    943  1 /*untilDay*/,
    -
    944  0 /*untilTimeCode*/,
    -
    945  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    946  },
    -
    947 
    -
    948 };
    -
    949 
    -
    950 static const char kZoneNameAmerica_Anchorage[] ACE_TIME_PROGMEM = "\x02" "Anchorage";
    -
    951 
    -
    952 const extended::Info::ZoneInfo kZoneAmerica_Anchorage ACE_TIME_PROGMEM = {
    -
    953  kZoneNameAmerica_Anchorage /*name*/,
    -
    954  0x5a79260e /*zoneId*/,
    -
    955  &kZoneContext /*zoneContext*/,
    -
    956  1 /*numEras*/,
    -
    957  kZoneEraAmerica_Anchorage /*eras*/,
    -
    958  nullptr /*targetInfo*/,
    -
    959 };
    -
    960 
    -
    961 //---------------------------------------------------------------------------
    -
    962 // Zone name: America/Araguaina
    -
    963 // Eras: 4
    -
    964 //---------------------------------------------------------------------------
    -
    965 
    -
    966 static const extended::Info::ZoneEra kZoneEraAmerica_Araguaina[] ACE_TIME_PROGMEM = {
    -
    967  // -3:00 Brazil %z 2003 Sep 24
    -
    968  {
    -
    969  &kZonePolicyBrazil /*zonePolicy*/,
    -
    970  "" /*format*/,
    -
    971  -12 /*offsetCode*/,
    -
    972  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    973  -97 /*untilYearTiny*/,
    -
    974  9 /*untilMonth*/,
    -
    975  24 /*untilDay*/,
    -
    976  0 /*untilTimeCode*/,
    -
    977  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    978  },
    -
    979  // -3:00 - %z 2012 Oct 21
    -
    980  {
    -
    981  nullptr /*zonePolicy*/,
    -
    982  "" /*format*/,
    -
    983  -12 /*offsetCode*/,
    -
    984  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    985  -88 /*untilYearTiny*/,
    -
    986  10 /*untilMonth*/,
    -
    987  21 /*untilDay*/,
    -
    988  0 /*untilTimeCode*/,
    -
    989  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    990  },
    -
    991  // -3:00 Brazil %z 2013 Sep
    -
    992  {
    -
    993  &kZonePolicyBrazil /*zonePolicy*/,
    -
    994  "" /*format*/,
    -
    995  -12 /*offsetCode*/,
    -
    996  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    997  -87 /*untilYearTiny*/,
    -
    998  9 /*untilMonth*/,
    -
    999  1 /*untilDay*/,
    -
    1000  0 /*untilTimeCode*/,
    -
    1001  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1002  },
    -
    1003  // -3:00 - %z
    -
    1004  {
    -
    1005  nullptr /*zonePolicy*/,
    -
    1006  "" /*format*/,
    -
    1007  -12 /*offsetCode*/,
    -
    1008  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1009  127 /*untilYearTiny*/,
    -
    1010  1 /*untilMonth*/,
    -
    1011  1 /*untilDay*/,
    -
    1012  0 /*untilTimeCode*/,
    -
    1013  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1014  },
    -
    1015 
    -
    1016 };
    -
    1017 
    -
    1018 static const char kZoneNameAmerica_Araguaina[] ACE_TIME_PROGMEM = "\x02" "Araguaina";
    -
    1019 
    -
    1020 const extended::Info::ZoneInfo kZoneAmerica_Araguaina ACE_TIME_PROGMEM = {
    -
    1021  kZoneNameAmerica_Araguaina /*name*/,
    -
    1022  0x6f9a3aef /*zoneId*/,
    -
    1023  &kZoneContext /*zoneContext*/,
    -
    1024  4 /*numEras*/,
    -
    1025  kZoneEraAmerica_Araguaina /*eras*/,
    -
    1026  nullptr /*targetInfo*/,
    -
    1027 };
    -
    1028 
    -
    1029 //---------------------------------------------------------------------------
    -
    1030 // Zone name: America/Argentina/Buenos_Aires
    -
    1031 // Eras: 3
    -
    1032 //---------------------------------------------------------------------------
    -
    1033 
    -
    1034 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Buenos_Aires[] ACE_TIME_PROGMEM = {
    -
    1035  // -3:00 Arg %z 1999 Oct 3
    -
    1036  {
    -
    1037  &kZonePolicyArg /*zonePolicy*/,
    -
    1038  "" /*format*/,
    -
    1039  -12 /*offsetCode*/,
    -
    1040  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1041  -101 /*untilYearTiny*/,
    -
    1042  10 /*untilMonth*/,
    -
    1043  3 /*untilDay*/,
    -
    1044  0 /*untilTimeCode*/,
    -
    1045  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1046  },
    -
    1047  // -4:00 Arg %z 2000 Mar 3
    -
    1048  {
    -
    1049  &kZonePolicyArg /*zonePolicy*/,
    -
    1050  "" /*format*/,
    -
    1051  -16 /*offsetCode*/,
    -
    1052  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1053  -100 /*untilYearTiny*/,
    -
    1054  3 /*untilMonth*/,
    -
    1055  3 /*untilDay*/,
    -
    1056  0 /*untilTimeCode*/,
    -
    1057  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1058  },
    -
    1059  // -3:00 Arg %z
    -
    1060  {
    -
    1061  &kZonePolicyArg /*zonePolicy*/,
    -
    1062  "" /*format*/,
    -
    1063  -12 /*offsetCode*/,
    -
    1064  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1065  127 /*untilYearTiny*/,
    -
    1066  1 /*untilMonth*/,
    -
    1067  1 /*untilDay*/,
    -
    1068  0 /*untilTimeCode*/,
    -
    1069  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1070  },
    -
    1071 
    -
    1072 };
    -
    1073 
    -
    1074 static const char kZoneNameAmerica_Argentina_Buenos_Aires[] ACE_TIME_PROGMEM = "\x02" "\x04" "Buenos_Aires";
    -
    1075 
    -
    1076 const extended::Info::ZoneInfo kZoneAmerica_Argentina_Buenos_Aires ACE_TIME_PROGMEM = {
    -
    1077  kZoneNameAmerica_Argentina_Buenos_Aires /*name*/,
    -
    1078  0xd43b4c0d /*zoneId*/,
    -
    1079  &kZoneContext /*zoneContext*/,
    -
    1080  3 /*numEras*/,
    -
    1081  kZoneEraAmerica_Argentina_Buenos_Aires /*eras*/,
    -
    1082  nullptr /*targetInfo*/,
    -
    1083 };
    -
    1084 
    -
    1085 //---------------------------------------------------------------------------
    -
    1086 // Zone name: America/Argentina/Catamarca
    -
    1087 // Eras: 6
    -
    1088 //---------------------------------------------------------------------------
    -
    1089 
    -
    1090 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Catamarca[] ACE_TIME_PROGMEM = {
    -
    1091  // -3:00 Arg %z 1999 Oct 3
    -
    1092  {
    -
    1093  &kZonePolicyArg /*zonePolicy*/,
    -
    1094  "" /*format*/,
    -
    1095  -12 /*offsetCode*/,
    -
    1096  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1097  -101 /*untilYearTiny*/,
    -
    1098  10 /*untilMonth*/,
    -
    1099  3 /*untilDay*/,
    -
    1100  0 /*untilTimeCode*/,
    -
    1101  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1102  },
    -
    1103  // -4:00 Arg %z 2000 Mar 3
    -
    1104  {
    -
    1105  &kZonePolicyArg /*zonePolicy*/,
    -
    1106  "" /*format*/,
    -
    1107  -16 /*offsetCode*/,
    -
    1108  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1109  -100 /*untilYearTiny*/,
    -
    1110  3 /*untilMonth*/,
    -
    1111  3 /*untilDay*/,
    -
    1112  0 /*untilTimeCode*/,
    -
    1113  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1114  },
    -
    1115  // -3:00 - %z 2004 Jun 1
    -
    1116  {
    -
    1117  nullptr /*zonePolicy*/,
    -
    1118  "" /*format*/,
    -
    1119  -12 /*offsetCode*/,
    -
    1120  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1121  -96 /*untilYearTiny*/,
    -
    1122  6 /*untilMonth*/,
    -
    1123  1 /*untilDay*/,
    -
    1124  0 /*untilTimeCode*/,
    -
    1125  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1126  },
    -
    1127  // -4:00 - %z 2004 Jun 20
    -
    1128  {
    -
    1129  nullptr /*zonePolicy*/,
    -
    1130  "" /*format*/,
    -
    1131  -16 /*offsetCode*/,
    -
    1132  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1133  -96 /*untilYearTiny*/,
    -
    1134  6 /*untilMonth*/,
    -
    1135  20 /*untilDay*/,
    -
    1136  0 /*untilTimeCode*/,
    -
    1137  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1138  },
    -
    1139  // -3:00 Arg %z 2008 Oct 18
    -
    1140  {
    -
    1141  &kZonePolicyArg /*zonePolicy*/,
    -
    1142  "" /*format*/,
    -
    1143  -12 /*offsetCode*/,
    -
    1144  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1145  -92 /*untilYearTiny*/,
    -
    1146  10 /*untilMonth*/,
    -
    1147  18 /*untilDay*/,
    -
    1148  0 /*untilTimeCode*/,
    -
    1149  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1150  },
    -
    1151  // -3:00 - %z
    -
    1152  {
    -
    1153  nullptr /*zonePolicy*/,
    -
    1154  "" /*format*/,
    -
    1155  -12 /*offsetCode*/,
    -
    1156  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1157  127 /*untilYearTiny*/,
    -
    1158  1 /*untilMonth*/,
    -
    1159  1 /*untilDay*/,
    -
    1160  0 /*untilTimeCode*/,
    -
    1161  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1162  },
    -
    1163 
    -
    1164 };
    -
    1165 
    -
    1166 static const char kZoneNameAmerica_Argentina_Catamarca[] ACE_TIME_PROGMEM = "\x02" "\x04" "Catamarca";
    -
    1167 
    -
    1168 const extended::Info::ZoneInfo kZoneAmerica_Argentina_Catamarca ACE_TIME_PROGMEM = {
    -
    1169  kZoneNameAmerica_Argentina_Catamarca /*name*/,
    -
    1170  0x8d40986b /*zoneId*/,
    -
    1171  &kZoneContext /*zoneContext*/,
    -
    1172  6 /*numEras*/,
    -
    1173  kZoneEraAmerica_Argentina_Catamarca /*eras*/,
    -
    1174  nullptr /*targetInfo*/,
    -
    1175 };
    -
    1176 
    -
    1177 //---------------------------------------------------------------------------
    -
    1178 // Zone name: America/Argentina/Cordoba
    -
    1179 // Eras: 3
    -
    1180 //---------------------------------------------------------------------------
    -
    1181 
    -
    1182 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Cordoba[] ACE_TIME_PROGMEM = {
    -
    1183  // -3:00 Arg %z 1999 Oct 3
    -
    1184  {
    -
    1185  &kZonePolicyArg /*zonePolicy*/,
    -
    1186  "" /*format*/,
    -
    1187  -12 /*offsetCode*/,
    -
    1188  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1189  -101 /*untilYearTiny*/,
    -
    1190  10 /*untilMonth*/,
    -
    1191  3 /*untilDay*/,
    -
    1192  0 /*untilTimeCode*/,
    -
    1193  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1194  },
    -
    1195  // -4:00 Arg %z 2000 Mar 3
    -
    1196  {
    -
    1197  &kZonePolicyArg /*zonePolicy*/,
    -
    1198  "" /*format*/,
    -
    1199  -16 /*offsetCode*/,
    -
    1200  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1201  -100 /*untilYearTiny*/,
    -
    1202  3 /*untilMonth*/,
    -
    1203  3 /*untilDay*/,
    -
    1204  0 /*untilTimeCode*/,
    -
    1205  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1206  },
    -
    1207  // -3:00 Arg %z
    -
    1208  {
    -
    1209  &kZonePolicyArg /*zonePolicy*/,
    -
    1210  "" /*format*/,
    -
    1211  -12 /*offsetCode*/,
    -
    1212  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1213  127 /*untilYearTiny*/,
    -
    1214  1 /*untilMonth*/,
    -
    1215  1 /*untilDay*/,
    -
    1216  0 /*untilTimeCode*/,
    -
    1217  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1218  },
    -
    1219 
    -
    1220 };
    -
    1221 
    -
    1222 static const char kZoneNameAmerica_Argentina_Cordoba[] ACE_TIME_PROGMEM = "\x02" "\x04" "Cordoba";
    -
    1223 
    -
    1224 const extended::Info::ZoneInfo kZoneAmerica_Argentina_Cordoba ACE_TIME_PROGMEM = {
    -
    1225  kZoneNameAmerica_Argentina_Cordoba /*name*/,
    -
    1226  0xbfccc308 /*zoneId*/,
    -
    1227  &kZoneContext /*zoneContext*/,
    -
    1228  3 /*numEras*/,
    -
    1229  kZoneEraAmerica_Argentina_Cordoba /*eras*/,
    -
    1230  nullptr /*targetInfo*/,
    -
    1231 };
    -
    1232 
    -
    1233 //---------------------------------------------------------------------------
    -
    1234 // Zone name: America/Argentina/Jujuy
    -
    1235 // Eras: 4
    -
    1236 //---------------------------------------------------------------------------
    -
    1237 
    -
    1238 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Jujuy[] ACE_TIME_PROGMEM = {
    -
    1239  // -3:00 Arg %z 1999 Oct 3
    -
    1240  {
    -
    1241  &kZonePolicyArg /*zonePolicy*/,
    -
    1242  "" /*format*/,
    -
    1243  -12 /*offsetCode*/,
    -
    1244  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1245  -101 /*untilYearTiny*/,
    -
    1246  10 /*untilMonth*/,
    -
    1247  3 /*untilDay*/,
    -
    1248  0 /*untilTimeCode*/,
    -
    1249  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1250  },
    -
    1251  // -4:00 Arg %z 2000 Mar 3
    -
    1252  {
    -
    1253  &kZonePolicyArg /*zonePolicy*/,
    -
    1254  "" /*format*/,
    -
    1255  -16 /*offsetCode*/,
    -
    1256  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1257  -100 /*untilYearTiny*/,
    -
    1258  3 /*untilMonth*/,
    -
    1259  3 /*untilDay*/,
    -
    1260  0 /*untilTimeCode*/,
    -
    1261  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1262  },
    -
    1263  // -3:00 Arg %z 2008 Oct 18
    -
    1264  {
    -
    1265  &kZonePolicyArg /*zonePolicy*/,
    -
    1266  "" /*format*/,
    -
    1267  -12 /*offsetCode*/,
    -
    1268  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1269  -92 /*untilYearTiny*/,
    -
    1270  10 /*untilMonth*/,
    -
    1271  18 /*untilDay*/,
    -
    1272  0 /*untilTimeCode*/,
    -
    1273  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1274  },
    -
    1275  // -3:00 - %z
    -
    1276  {
    -
    1277  nullptr /*zonePolicy*/,
    -
    1278  "" /*format*/,
    -
    1279  -12 /*offsetCode*/,
    -
    1280  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1281  127 /*untilYearTiny*/,
    -
    1282  1 /*untilMonth*/,
    -
    1283  1 /*untilDay*/,
    -
    1284  0 /*untilTimeCode*/,
    -
    1285  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1286  },
    -
    1287 
    -
    1288 };
    -
    1289 
    -
    1290 static const char kZoneNameAmerica_Argentina_Jujuy[] ACE_TIME_PROGMEM = "\x02" "\x04" "Jujuy";
    -
    1291 
    -
    1292 const extended::Info::ZoneInfo kZoneAmerica_Argentina_Jujuy ACE_TIME_PROGMEM = {
    -
    1293  kZoneNameAmerica_Argentina_Jujuy /*name*/,
    -
    1294  0x5f2f46c5 /*zoneId*/,
    -
    1295  &kZoneContext /*zoneContext*/,
    -
    1296  4 /*numEras*/,
    -
    1297  kZoneEraAmerica_Argentina_Jujuy /*eras*/,
    -
    1298  nullptr /*targetInfo*/,
    -
    1299 };
    -
    1300 
    -
    1301 //---------------------------------------------------------------------------
    -
    1302 // Zone name: America/Argentina/La_Rioja
    -
    1303 // Eras: 6
    -
    1304 //---------------------------------------------------------------------------
    -
    1305 
    -
    1306 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_La_Rioja[] ACE_TIME_PROGMEM = {
    -
    1307  // -3:00 Arg %z 1999 Oct 3
    -
    1308  {
    -
    1309  &kZonePolicyArg /*zonePolicy*/,
    -
    1310  "" /*format*/,
    -
    1311  -12 /*offsetCode*/,
    -
    1312  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1313  -101 /*untilYearTiny*/,
    -
    1314  10 /*untilMonth*/,
    -
    1315  3 /*untilDay*/,
    -
    1316  0 /*untilTimeCode*/,
    -
    1317  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1318  },
    -
    1319  // -4:00 Arg %z 2000 Mar 3
    -
    1320  {
    -
    1321  &kZonePolicyArg /*zonePolicy*/,
    -
    1322  "" /*format*/,
    -
    1323  -16 /*offsetCode*/,
    -
    1324  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1325  -100 /*untilYearTiny*/,
    -
    1326  3 /*untilMonth*/,
    -
    1327  3 /*untilDay*/,
    -
    1328  0 /*untilTimeCode*/,
    -
    1329  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1330  },
    -
    1331  // -3:00 - %z 2004 Jun 1
    -
    1332  {
    -
    1333  nullptr /*zonePolicy*/,
    -
    1334  "" /*format*/,
    -
    1335  -12 /*offsetCode*/,
    -
    1336  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1337  -96 /*untilYearTiny*/,
    -
    1338  6 /*untilMonth*/,
    -
    1339  1 /*untilDay*/,
    -
    1340  0 /*untilTimeCode*/,
    -
    1341  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1342  },
    -
    1343  // -4:00 - %z 2004 Jun 20
    -
    1344  {
    -
    1345  nullptr /*zonePolicy*/,
    -
    1346  "" /*format*/,
    -
    1347  -16 /*offsetCode*/,
    -
    1348  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1349  -96 /*untilYearTiny*/,
    -
    1350  6 /*untilMonth*/,
    -
    1351  20 /*untilDay*/,
    -
    1352  0 /*untilTimeCode*/,
    -
    1353  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1354  },
    -
    1355  // -3:00 Arg %z 2008 Oct 18
    -
    1356  {
    -
    1357  &kZonePolicyArg /*zonePolicy*/,
    -
    1358  "" /*format*/,
    -
    1359  -12 /*offsetCode*/,
    -
    1360  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1361  -92 /*untilYearTiny*/,
    -
    1362  10 /*untilMonth*/,
    -
    1363  18 /*untilDay*/,
    -
    1364  0 /*untilTimeCode*/,
    -
    1365  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1366  },
    -
    1367  // -3:00 - %z
    -
    1368  {
    -
    1369  nullptr /*zonePolicy*/,
    -
    1370  "" /*format*/,
    -
    1371  -12 /*offsetCode*/,
    -
    1372  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1373  127 /*untilYearTiny*/,
    -
    1374  1 /*untilMonth*/,
    -
    1375  1 /*untilDay*/,
    -
    1376  0 /*untilTimeCode*/,
    -
    1377  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1378  },
    -
    1379 
    -
    1380 };
    -
    1381 
    -
    1382 static const char kZoneNameAmerica_Argentina_La_Rioja[] ACE_TIME_PROGMEM = "\x02" "\x04" "La_Rioja";
    -
    1383 
    -
    1384 const extended::Info::ZoneInfo kZoneAmerica_Argentina_La_Rioja ACE_TIME_PROGMEM = {
    -
    1385  kZoneNameAmerica_Argentina_La_Rioja /*name*/,
    -
    1386  0xa46b7eef /*zoneId*/,
    -
    1387  &kZoneContext /*zoneContext*/,
    -
    1388  6 /*numEras*/,
    -
    1389  kZoneEraAmerica_Argentina_La_Rioja /*eras*/,
    -
    1390  nullptr /*targetInfo*/,
    -
    1391 };
    -
    1392 
    -
    1393 //---------------------------------------------------------------------------
    -
    1394 // Zone name: America/Argentina/Mendoza
    -
    1395 // Eras: 6
    -
    1396 //---------------------------------------------------------------------------
    -
    1397 
    -
    1398 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Mendoza[] ACE_TIME_PROGMEM = {
    -
    1399  // -3:00 Arg %z 1999 Oct 3
    -
    1400  {
    -
    1401  &kZonePolicyArg /*zonePolicy*/,
    -
    1402  "" /*format*/,
    -
    1403  -12 /*offsetCode*/,
    -
    1404  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1405  -101 /*untilYearTiny*/,
    -
    1406  10 /*untilMonth*/,
    -
    1407  3 /*untilDay*/,
    -
    1408  0 /*untilTimeCode*/,
    -
    1409  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1410  },
    -
    1411  // -4:00 Arg %z 2000 Mar 3
    -
    1412  {
    -
    1413  &kZonePolicyArg /*zonePolicy*/,
    -
    1414  "" /*format*/,
    -
    1415  -16 /*offsetCode*/,
    -
    1416  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1417  -100 /*untilYearTiny*/,
    -
    1418  3 /*untilMonth*/,
    -
    1419  3 /*untilDay*/,
    -
    1420  0 /*untilTimeCode*/,
    -
    1421  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1422  },
    -
    1423  // -3:00 - %z 2004 May 23
    -
    1424  {
    -
    1425  nullptr /*zonePolicy*/,
    -
    1426  "" /*format*/,
    -
    1427  -12 /*offsetCode*/,
    -
    1428  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1429  -96 /*untilYearTiny*/,
    -
    1430  5 /*untilMonth*/,
    -
    1431  23 /*untilDay*/,
    -
    1432  0 /*untilTimeCode*/,
    -
    1433  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1434  },
    -
    1435  // -4:00 - %z 2004 Sep 26
    -
    1436  {
    -
    1437  nullptr /*zonePolicy*/,
    -
    1438  "" /*format*/,
    -
    1439  -16 /*offsetCode*/,
    -
    1440  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1441  -96 /*untilYearTiny*/,
    -
    1442  9 /*untilMonth*/,
    -
    1443  26 /*untilDay*/,
    -
    1444  0 /*untilTimeCode*/,
    -
    1445  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1446  },
    -
    1447  // -3:00 Arg %z 2008 Oct 18
    -
    1448  {
    -
    1449  &kZonePolicyArg /*zonePolicy*/,
    -
    1450  "" /*format*/,
    -
    1451  -12 /*offsetCode*/,
    -
    1452  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1453  -92 /*untilYearTiny*/,
    -
    1454  10 /*untilMonth*/,
    -
    1455  18 /*untilDay*/,
    -
    1456  0 /*untilTimeCode*/,
    -
    1457  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1458  },
    -
    1459  // -3:00 - %z
    -
    1460  {
    -
    1461  nullptr /*zonePolicy*/,
    -
    1462  "" /*format*/,
    -
    1463  -12 /*offsetCode*/,
    -
    1464  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1465  127 /*untilYearTiny*/,
    -
    1466  1 /*untilMonth*/,
    -
    1467  1 /*untilDay*/,
    -
    1468  0 /*untilTimeCode*/,
    -
    1469  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1470  },
    -
    1471 
    -
    1472 };
    -
    1473 
    -
    1474 static const char kZoneNameAmerica_Argentina_Mendoza[] ACE_TIME_PROGMEM = "\x02" "\x04" "Mendoza";
    -
    1475 
    -
    1476 const extended::Info::ZoneInfo kZoneAmerica_Argentina_Mendoza ACE_TIME_PROGMEM = {
    -
    1477  kZoneNameAmerica_Argentina_Mendoza /*name*/,
    -
    1478  0xa9f72d5c /*zoneId*/,
    -
    1479  &kZoneContext /*zoneContext*/,
    -
    1480  6 /*numEras*/,
    -
    1481  kZoneEraAmerica_Argentina_Mendoza /*eras*/,
    -
    1482  nullptr /*targetInfo*/,
    -
    1483 };
    -
    1484 
    -
    1485 //---------------------------------------------------------------------------
    -
    1486 // Zone name: America/Argentina/Rio_Gallegos
    -
    1487 // Eras: 6
    -
    1488 //---------------------------------------------------------------------------
    -
    1489 
    -
    1490 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Rio_Gallegos[] ACE_TIME_PROGMEM = {
    -
    1491  // -3:00 Arg %z 1999 Oct 3
    -
    1492  {
    -
    1493  &kZonePolicyArg /*zonePolicy*/,
    -
    1494  "" /*format*/,
    -
    1495  -12 /*offsetCode*/,
    -
    1496  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1497  -101 /*untilYearTiny*/,
    -
    1498  10 /*untilMonth*/,
    -
    1499  3 /*untilDay*/,
    -
    1500  0 /*untilTimeCode*/,
    -
    1501  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1502  },
    -
    1503  // -4:00 Arg %z 2000 Mar 3
    -
    1504  {
    -
    1505  &kZonePolicyArg /*zonePolicy*/,
    -
    1506  "" /*format*/,
    -
    1507  -16 /*offsetCode*/,
    -
    1508  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1509  -100 /*untilYearTiny*/,
    -
    1510  3 /*untilMonth*/,
    -
    1511  3 /*untilDay*/,
    -
    1512  0 /*untilTimeCode*/,
    -
    1513  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1514  },
    -
    1515  // -3:00 - %z 2004 Jun 1
    -
    1516  {
    -
    1517  nullptr /*zonePolicy*/,
    -
    1518  "" /*format*/,
    -
    1519  -12 /*offsetCode*/,
    -
    1520  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1521  -96 /*untilYearTiny*/,
    -
    1522  6 /*untilMonth*/,
    -
    1523  1 /*untilDay*/,
    -
    1524  0 /*untilTimeCode*/,
    -
    1525  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1526  },
    -
    1527  // -4:00 - %z 2004 Jun 20
    -
    1528  {
    -
    1529  nullptr /*zonePolicy*/,
    -
    1530  "" /*format*/,
    -
    1531  -16 /*offsetCode*/,
    -
    1532  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1533  -96 /*untilYearTiny*/,
    -
    1534  6 /*untilMonth*/,
    -
    1535  20 /*untilDay*/,
    -
    1536  0 /*untilTimeCode*/,
    -
    1537  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1538  },
    -
    1539  // -3:00 Arg %z 2008 Oct 18
    -
    1540  {
    -
    1541  &kZonePolicyArg /*zonePolicy*/,
    -
    1542  "" /*format*/,
    -
    1543  -12 /*offsetCode*/,
    -
    1544  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1545  -92 /*untilYearTiny*/,
    -
    1546  10 /*untilMonth*/,
    -
    1547  18 /*untilDay*/,
    -
    1548  0 /*untilTimeCode*/,
    -
    1549  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1550  },
    -
    1551  // -3:00 - %z
    -
    1552  {
    -
    1553  nullptr /*zonePolicy*/,
    -
    1554  "" /*format*/,
    -
    1555  -12 /*offsetCode*/,
    -
    1556  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1557  127 /*untilYearTiny*/,
    -
    1558  1 /*untilMonth*/,
    -
    1559  1 /*untilDay*/,
    -
    1560  0 /*untilTimeCode*/,
    -
    1561  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1562  },
    -
    1563 
    -
    1564 };
    -
    1565 
    -
    1566 static const char kZoneNameAmerica_Argentina_Rio_Gallegos[] ACE_TIME_PROGMEM = "\x02" "\x04" "Rio_Gallegos";
    -
    1567 
    -
    1568 const extended::Info::ZoneInfo kZoneAmerica_Argentina_Rio_Gallegos ACE_TIME_PROGMEM = {
    -
    1569  kZoneNameAmerica_Argentina_Rio_Gallegos /*name*/,
    -
    1570  0xc5b0f565 /*zoneId*/,
    -
    1571  &kZoneContext /*zoneContext*/,
    -
    1572  6 /*numEras*/,
    -
    1573  kZoneEraAmerica_Argentina_Rio_Gallegos /*eras*/,
    -
    1574  nullptr /*targetInfo*/,
    -
    1575 };
    -
    1576 
    -
    1577 //---------------------------------------------------------------------------
    -
    1578 // Zone name: America/Argentina/Salta
    -
    1579 // Eras: 4
    -
    1580 //---------------------------------------------------------------------------
    -
    1581 
    -
    1582 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Salta[] ACE_TIME_PROGMEM = {
    -
    1583  // -3:00 Arg %z 1999 Oct 3
    -
    1584  {
    -
    1585  &kZonePolicyArg /*zonePolicy*/,
    -
    1586  "" /*format*/,
    -
    1587  -12 /*offsetCode*/,
    -
    1588  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1589  -101 /*untilYearTiny*/,
    -
    1590  10 /*untilMonth*/,
    -
    1591  3 /*untilDay*/,
    -
    1592  0 /*untilTimeCode*/,
    -
    1593  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1594  },
    -
    1595  // -4:00 Arg %z 2000 Mar 3
    -
    1596  {
    -
    1597  &kZonePolicyArg /*zonePolicy*/,
    -
    1598  "" /*format*/,
    -
    1599  -16 /*offsetCode*/,
    -
    1600  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1601  -100 /*untilYearTiny*/,
    -
    1602  3 /*untilMonth*/,
    -
    1603  3 /*untilDay*/,
    -
    1604  0 /*untilTimeCode*/,
    -
    1605  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1606  },
    -
    1607  // -3:00 Arg %z 2008 Oct 18
    -
    1608  {
    -
    1609  &kZonePolicyArg /*zonePolicy*/,
    -
    1610  "" /*format*/,
    -
    1611  -12 /*offsetCode*/,
    -
    1612  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1613  -92 /*untilYearTiny*/,
    -
    1614  10 /*untilMonth*/,
    -
    1615  18 /*untilDay*/,
    -
    1616  0 /*untilTimeCode*/,
    -
    1617  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1618  },
    -
    1619  // -3:00 - %z
    -
    1620  {
    -
    1621  nullptr /*zonePolicy*/,
    -
    1622  "" /*format*/,
    -
    1623  -12 /*offsetCode*/,
    -
    1624  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1625  127 /*untilYearTiny*/,
    -
    1626  1 /*untilMonth*/,
    -
    1627  1 /*untilDay*/,
    -
    1628  0 /*untilTimeCode*/,
    -
    1629  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1630  },
    -
    1631 
    -
    1632 };
    -
    1633 
    -
    1634 static const char kZoneNameAmerica_Argentina_Salta[] ACE_TIME_PROGMEM = "\x02" "\x04" "Salta";
    -
    1635 
    -
    1636 const extended::Info::ZoneInfo kZoneAmerica_Argentina_Salta ACE_TIME_PROGMEM = {
    -
    1637  kZoneNameAmerica_Argentina_Salta /*name*/,
    -
    1638  0x5fc73403 /*zoneId*/,
    -
    1639  &kZoneContext /*zoneContext*/,
    -
    1640  4 /*numEras*/,
    -
    1641  kZoneEraAmerica_Argentina_Salta /*eras*/,
    -
    1642  nullptr /*targetInfo*/,
    -
    1643 };
    -
    1644 
    -
    1645 //---------------------------------------------------------------------------
    -
    1646 // Zone name: America/Argentina/San_Juan
    -
    1647 // Eras: 6
    -
    1648 //---------------------------------------------------------------------------
    -
    1649 
    -
    1650 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_San_Juan[] ACE_TIME_PROGMEM = {
    -
    1651  // -3:00 Arg %z 1999 Oct 3
    -
    1652  {
    -
    1653  &kZonePolicyArg /*zonePolicy*/,
    -
    1654  "" /*format*/,
    -
    1655  -12 /*offsetCode*/,
    -
    1656  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1657  -101 /*untilYearTiny*/,
    -
    1658  10 /*untilMonth*/,
    -
    1659  3 /*untilDay*/,
    -
    1660  0 /*untilTimeCode*/,
    -
    1661  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1662  },
    -
    1663  // -4:00 Arg %z 2000 Mar 3
    -
    1664  {
    -
    1665  &kZonePolicyArg /*zonePolicy*/,
    -
    1666  "" /*format*/,
    -
    1667  -16 /*offsetCode*/,
    -
    1668  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1669  -100 /*untilYearTiny*/,
    -
    1670  3 /*untilMonth*/,
    -
    1671  3 /*untilDay*/,
    -
    1672  0 /*untilTimeCode*/,
    -
    1673  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1674  },
    -
    1675  // -3:00 - %z 2004 May 31
    -
    1676  {
    -
    1677  nullptr /*zonePolicy*/,
    -
    1678  "" /*format*/,
    -
    1679  -12 /*offsetCode*/,
    -
    1680  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1681  -96 /*untilYearTiny*/,
    -
    1682  5 /*untilMonth*/,
    -
    1683  31 /*untilDay*/,
    -
    1684  0 /*untilTimeCode*/,
    -
    1685  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1686  },
    -
    1687  // -4:00 - %z 2004 Jul 25
    -
    1688  {
    -
    1689  nullptr /*zonePolicy*/,
    -
    1690  "" /*format*/,
    -
    1691  -16 /*offsetCode*/,
    -
    1692  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1693  -96 /*untilYearTiny*/,
    -
    1694  7 /*untilMonth*/,
    -
    1695  25 /*untilDay*/,
    -
    1696  0 /*untilTimeCode*/,
    -
    1697  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1698  },
    -
    1699  // -3:00 Arg %z 2008 Oct 18
    -
    1700  {
    -
    1701  &kZonePolicyArg /*zonePolicy*/,
    -
    1702  "" /*format*/,
    -
    1703  -12 /*offsetCode*/,
    -
    1704  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1705  -92 /*untilYearTiny*/,
    -
    1706  10 /*untilMonth*/,
    -
    1707  18 /*untilDay*/,
    -
    1708  0 /*untilTimeCode*/,
    -
    1709  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1710  },
    -
    1711  // -3:00 - %z
    -
    1712  {
    -
    1713  nullptr /*zonePolicy*/,
    -
    1714  "" /*format*/,
    -
    1715  -12 /*offsetCode*/,
    -
    1716  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1717  127 /*untilYearTiny*/,
    -
    1718  1 /*untilMonth*/,
    -
    1719  1 /*untilDay*/,
    -
    1720  0 /*untilTimeCode*/,
    -
    1721  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1722  },
    -
    1723 
    -
    1724 };
    -
    1725 
    -
    1726 static const char kZoneNameAmerica_Argentina_San_Juan[] ACE_TIME_PROGMEM = "\x02" "\x04" "San_Juan";
    -
    1727 
    -
    1728 const extended::Info::ZoneInfo kZoneAmerica_Argentina_San_Juan ACE_TIME_PROGMEM = {
    -
    1729  kZoneNameAmerica_Argentina_San_Juan /*name*/,
    -
    1730  0x3e1009bd /*zoneId*/,
    -
    1731  &kZoneContext /*zoneContext*/,
    -
    1732  6 /*numEras*/,
    -
    1733  kZoneEraAmerica_Argentina_San_Juan /*eras*/,
    -
    1734  nullptr /*targetInfo*/,
    -
    1735 };
    -
    1736 
    -
    1737 //---------------------------------------------------------------------------
    -
    1738 // Zone name: America/Argentina/San_Luis
    -
    1739 // Eras: 7
    -
    1740 //---------------------------------------------------------------------------
    -
    1741 
    -
    1742 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_San_Luis[] ACE_TIME_PROGMEM = {
    -
    1743  // -3:00 - %z 1999 Oct 3
    -
    1744  {
    -
    1745  nullptr /*zonePolicy*/,
    -
    1746  "" /*format*/,
    -
    1747  -12 /*offsetCode*/,
    -
    1748  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1749  -101 /*untilYearTiny*/,
    -
    1750  10 /*untilMonth*/,
    -
    1751  3 /*untilDay*/,
    -
    1752  0 /*untilTimeCode*/,
    -
    1753  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1754  },
    -
    1755  // -4:00 1:00 %z 2000 Mar 3
    -
    1756  {
    -
    1757  nullptr /*zonePolicy*/,
    -
    1758  "" /*format*/,
    -
    1759  -16 /*offsetCode*/,
    -
    1760  8 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=60)/15 + 4))*/,
    -
    1761  -100 /*untilYearTiny*/,
    -
    1762  3 /*untilMonth*/,
    -
    1763  3 /*untilDay*/,
    -
    1764  0 /*untilTimeCode*/,
    -
    1765  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1766  },
    -
    1767  // -3:00 - %z 2004 May 31
    -
    1768  {
    -
    1769  nullptr /*zonePolicy*/,
    -
    1770  "" /*format*/,
    -
    1771  -12 /*offsetCode*/,
    -
    1772  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1773  -96 /*untilYearTiny*/,
    -
    1774  5 /*untilMonth*/,
    -
    1775  31 /*untilDay*/,
    -
    1776  0 /*untilTimeCode*/,
    -
    1777  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1778  },
    -
    1779  // -4:00 - %z 2004 Jul 25
    -
    1780  {
    -
    1781  nullptr /*zonePolicy*/,
    -
    1782  "" /*format*/,
    -
    1783  -16 /*offsetCode*/,
    -
    1784  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1785  -96 /*untilYearTiny*/,
    -
    1786  7 /*untilMonth*/,
    -
    1787  25 /*untilDay*/,
    -
    1788  0 /*untilTimeCode*/,
    -
    1789  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1790  },
    -
    1791  // -3:00 Arg %z 2008 Jan 21
    -
    1792  {
    -
    1793  &kZonePolicyArg /*zonePolicy*/,
    -
    1794  "" /*format*/,
    -
    1795  -12 /*offsetCode*/,
    -
    1796  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1797  -92 /*untilYearTiny*/,
    -
    1798  1 /*untilMonth*/,
    -
    1799  21 /*untilDay*/,
    -
    1800  0 /*untilTimeCode*/,
    -
    1801  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1802  },
    -
    1803  // -4:00 SanLuis %z 2009 Oct 11
    -
    1804  {
    -
    1805  &kZonePolicySanLuis /*zonePolicy*/,
    -
    1806  "" /*format*/,
    -
    1807  -16 /*offsetCode*/,
    -
    1808  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1809  -91 /*untilYearTiny*/,
    -
    1810  10 /*untilMonth*/,
    -
    1811  11 /*untilDay*/,
    -
    1812  0 /*untilTimeCode*/,
    -
    1813  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1814  },
    -
    1815  // -3:00 - %z
    -
    1816  {
    -
    1817  nullptr /*zonePolicy*/,
    -
    1818  "" /*format*/,
    -
    1819  -12 /*offsetCode*/,
    -
    1820  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1821  127 /*untilYearTiny*/,
    -
    1822  1 /*untilMonth*/,
    -
    1823  1 /*untilDay*/,
    -
    1824  0 /*untilTimeCode*/,
    -
    1825  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1826  },
    -
    1827 
    -
    1828 };
    -
    1829 
    -
    1830 static const char kZoneNameAmerica_Argentina_San_Luis[] ACE_TIME_PROGMEM = "\x02" "\x04" "San_Luis";
    -
    1831 
    -
    1832 const extended::Info::ZoneInfo kZoneAmerica_Argentina_San_Luis ACE_TIME_PROGMEM = {
    -
    1833  kZoneNameAmerica_Argentina_San_Luis /*name*/,
    -
    1834  0x3e11238c /*zoneId*/,
    -
    1835  &kZoneContext /*zoneContext*/,
    -
    1836  7 /*numEras*/,
    -
    1837  kZoneEraAmerica_Argentina_San_Luis /*eras*/,
    -
    1838  nullptr /*targetInfo*/,
    -
    1839 };
    -
    1840 
    -
    1841 //---------------------------------------------------------------------------
    -
    1842 // Zone name: America/Argentina/Tucuman
    -
    1843 // Eras: 5
    -
    1844 //---------------------------------------------------------------------------
    -
    1845 
    -
    1846 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Tucuman[] ACE_TIME_PROGMEM = {
    -
    1847  // -3:00 Arg %z 1999 Oct 3
    -
    1848  {
    -
    1849  &kZonePolicyArg /*zonePolicy*/,
    -
    1850  "" /*format*/,
    -
    1851  -12 /*offsetCode*/,
    -
    1852  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1853  -101 /*untilYearTiny*/,
    -
    1854  10 /*untilMonth*/,
    -
    1855  3 /*untilDay*/,
    -
    1856  0 /*untilTimeCode*/,
    -
    1857  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1858  },
    -
    1859  // -4:00 Arg %z 2000 Mar 3
    -
    1860  {
    -
    1861  &kZonePolicyArg /*zonePolicy*/,
    -
    1862  "" /*format*/,
    -
    1863  -16 /*offsetCode*/,
    -
    1864  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1865  -100 /*untilYearTiny*/,
    -
    1866  3 /*untilMonth*/,
    -
    1867  3 /*untilDay*/,
    -
    1868  0 /*untilTimeCode*/,
    -
    1869  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1870  },
    -
    1871  // -3:00 - %z 2004 Jun 1
    -
    1872  {
    -
    1873  nullptr /*zonePolicy*/,
    -
    1874  "" /*format*/,
    -
    1875  -12 /*offsetCode*/,
    -
    1876  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1877  -96 /*untilYearTiny*/,
    -
    1878  6 /*untilMonth*/,
    -
    1879  1 /*untilDay*/,
    -
    1880  0 /*untilTimeCode*/,
    -
    1881  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1882  },
    -
    1883  // -4:00 - %z 2004 Jun 13
    -
    1884  {
    -
    1885  nullptr /*zonePolicy*/,
    -
    1886  "" /*format*/,
    -
    1887  -16 /*offsetCode*/,
    -
    1888  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1889  -96 /*untilYearTiny*/,
    -
    1890  6 /*untilMonth*/,
    -
    1891  13 /*untilDay*/,
    -
    1892  0 /*untilTimeCode*/,
    -
    1893  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1894  },
    -
    1895  // -3:00 Arg %z
    -
    1896  {
    -
    1897  &kZonePolicyArg /*zonePolicy*/,
    -
    1898  "" /*format*/,
    -
    1899  -12 /*offsetCode*/,
    -
    1900  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1901  127 /*untilYearTiny*/,
    -
    1902  1 /*untilMonth*/,
    -
    1903  1 /*untilDay*/,
    -
    1904  0 /*untilTimeCode*/,
    -
    1905  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1906  },
    -
    1907 
    -
    1908 };
    -
    1909 
    -
    1910 static const char kZoneNameAmerica_Argentina_Tucuman[] ACE_TIME_PROGMEM = "\x02" "\x04" "Tucuman";
    -
    1911 
    -
    1912 const extended::Info::ZoneInfo kZoneAmerica_Argentina_Tucuman ACE_TIME_PROGMEM = {
    -
    1913  kZoneNameAmerica_Argentina_Tucuman /*name*/,
    -
    1914  0xe96399eb /*zoneId*/,
    -
    1915  &kZoneContext /*zoneContext*/,
    -
    1916  5 /*numEras*/,
    -
    1917  kZoneEraAmerica_Argentina_Tucuman /*eras*/,
    -
    1918  nullptr /*targetInfo*/,
    -
    1919 };
    -
    1920 
    -
    1921 //---------------------------------------------------------------------------
    -
    1922 // Zone name: America/Argentina/Ushuaia
    -
    1923 // Eras: 6
    -
    1924 //---------------------------------------------------------------------------
    -
    1925 
    -
    1926 static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Ushuaia[] ACE_TIME_PROGMEM = {
    -
    1927  // -3:00 Arg %z 1999 Oct 3
    -
    1928  {
    -
    1929  &kZonePolicyArg /*zonePolicy*/,
    -
    1930  "" /*format*/,
    -
    1931  -12 /*offsetCode*/,
    -
    1932  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1933  -101 /*untilYearTiny*/,
    -
    1934  10 /*untilMonth*/,
    -
    1935  3 /*untilDay*/,
    -
    1936  0 /*untilTimeCode*/,
    -
    1937  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1938  },
    -
    1939  // -4:00 Arg %z 2000 Mar 3
    -
    1940  {
    -
    1941  &kZonePolicyArg /*zonePolicy*/,
    -
    1942  "" /*format*/,
    -
    1943  -16 /*offsetCode*/,
    -
    1944  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1945  -100 /*untilYearTiny*/,
    -
    1946  3 /*untilMonth*/,
    -
    1947  3 /*untilDay*/,
    -
    1948  0 /*untilTimeCode*/,
    -
    1949  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1950  },
    -
    1951  // -3:00 - %z 2004 May 30
    -
    1952  {
    -
    1953  nullptr /*zonePolicy*/,
    -
    1954  "" /*format*/,
    -
    1955  -12 /*offsetCode*/,
    -
    1956  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1957  -96 /*untilYearTiny*/,
    -
    1958  5 /*untilMonth*/,
    -
    1959  30 /*untilDay*/,
    -
    1960  0 /*untilTimeCode*/,
    -
    1961  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1962  },
    -
    1963  // -4:00 - %z 2004 Jun 20
    -
    1964  {
    -
    1965  nullptr /*zonePolicy*/,
    -
    1966  "" /*format*/,
    -
    1967  -16 /*offsetCode*/,
    -
    1968  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1969  -96 /*untilYearTiny*/,
    -
    1970  6 /*untilMonth*/,
    -
    1971  20 /*untilDay*/,
    -
    1972  0 /*untilTimeCode*/,
    -
    1973  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1974  },
    -
    1975  // -3:00 Arg %z 2008 Oct 18
    -
    1976  {
    -
    1977  &kZonePolicyArg /*zonePolicy*/,
    -
    1978  "" /*format*/,
    -
    1979  -12 /*offsetCode*/,
    -
    1980  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1981  -92 /*untilYearTiny*/,
    -
    1982  10 /*untilMonth*/,
    -
    1983  18 /*untilDay*/,
    -
    1984  0 /*untilTimeCode*/,
    -
    1985  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1986  },
    -
    1987  // -3:00 - %z
    -
    1988  {
    -
    1989  nullptr /*zonePolicy*/,
    -
    1990  "" /*format*/,
    -
    1991  -12 /*offsetCode*/,
    -
    1992  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    1993  127 /*untilYearTiny*/,
    -
    1994  1 /*untilMonth*/,
    -
    1995  1 /*untilDay*/,
    -
    1996  0 /*untilTimeCode*/,
    -
    1997  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    1998  },
    -
    1999 
    -
    2000 };
    -
    2001 
    -
    2002 static const char kZoneNameAmerica_Argentina_Ushuaia[] ACE_TIME_PROGMEM = "\x02" "\x04" "Ushuaia";
    -
    2003 
    -
    2004 const extended::Info::ZoneInfo kZoneAmerica_Argentina_Ushuaia ACE_TIME_PROGMEM = {
    -
    2005  kZoneNameAmerica_Argentina_Ushuaia /*name*/,
    -
    2006  0x320dcdde /*zoneId*/,
    -
    2007  &kZoneContext /*zoneContext*/,
    -
    2008  6 /*numEras*/,
    -
    2009  kZoneEraAmerica_Argentina_Ushuaia /*eras*/,
    -
    2010  nullptr /*targetInfo*/,
    -
    2011 };
    -
    2012 
    -
    2013 //---------------------------------------------------------------------------
    -
    2014 // Zone name: America/Asuncion
    -
    2015 // Eras: 2
    -
    2016 //---------------------------------------------------------------------------
    -
    2017 
    -
    2018 static const extended::Info::ZoneEra kZoneEraAmerica_Asuncion[] ACE_TIME_PROGMEM = {
    -
    2019  // -4:00 Para %z 2024 Oct 15
    -
    2020  {
    -
    2021  &kZonePolicyPara /*zonePolicy*/,
    -
    2022  "" /*format*/,
    -
    2023  -16 /*offsetCode*/,
    -
    2024  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2025  -76 /*untilYearTiny*/,
    -
    2026  10 /*untilMonth*/,
    -
    2027  15 /*untilDay*/,
    -
    2028  0 /*untilTimeCode*/,
    -
    2029  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2030  },
    -
    2031  // -3:00 - %z
    -
    2032  {
    -
    2033  nullptr /*zonePolicy*/,
    -
    2034  "" /*format*/,
    -
    2035  -12 /*offsetCode*/,
    -
    2036  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2037  127 /*untilYearTiny*/,
    -
    2038  1 /*untilMonth*/,
    -
    2039  1 /*untilDay*/,
    -
    2040  0 /*untilTimeCode*/,
    -
    2041  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2042  },
    -
    2043 
    -
    2044 };
    -
    2045 
    -
    2046 static const char kZoneNameAmerica_Asuncion[] ACE_TIME_PROGMEM = "\x02" "Asuncion";
    -
    2047 
    -
    2048 const extended::Info::ZoneInfo kZoneAmerica_Asuncion ACE_TIME_PROGMEM = {
    -
    2049  kZoneNameAmerica_Asuncion /*name*/,
    -
    2050  0x50ec79a6 /*zoneId*/,
    -
    2051  &kZoneContext /*zoneContext*/,
    -
    2052  2 /*numEras*/,
    -
    2053  kZoneEraAmerica_Asuncion /*eras*/,
    -
    2054  nullptr /*targetInfo*/,
    -
    2055 };
    -
    2056 
    -
    2057 //---------------------------------------------------------------------------
    -
    2058 // Zone name: America/Bahia
    -
    2059 // Eras: 4
    -
    2060 //---------------------------------------------------------------------------
    -
    2061 
    -
    2062 static const extended::Info::ZoneEra kZoneEraAmerica_Bahia[] ACE_TIME_PROGMEM = {
    -
    2063  // -3:00 Brazil %z 2003 Sep 24
    -
    2064  {
    -
    2065  &kZonePolicyBrazil /*zonePolicy*/,
    -
    2066  "" /*format*/,
    -
    2067  -12 /*offsetCode*/,
    -
    2068  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2069  -97 /*untilYearTiny*/,
    -
    2070  9 /*untilMonth*/,
    -
    2071  24 /*untilDay*/,
    -
    2072  0 /*untilTimeCode*/,
    -
    2073  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2074  },
    -
    2075  // -3:00 - %z 2011 Oct 16
    -
    2076  {
    -
    2077  nullptr /*zonePolicy*/,
    -
    2078  "" /*format*/,
    -
    2079  -12 /*offsetCode*/,
    -
    2080  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2081  -89 /*untilYearTiny*/,
    -
    2082  10 /*untilMonth*/,
    -
    2083  16 /*untilDay*/,
    -
    2084  0 /*untilTimeCode*/,
    -
    2085  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2086  },
    -
    2087  // -3:00 Brazil %z 2012 Oct 21
    -
    2088  {
    -
    2089  &kZonePolicyBrazil /*zonePolicy*/,
    -
    2090  "" /*format*/,
    -
    2091  -12 /*offsetCode*/,
    -
    2092  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2093  -88 /*untilYearTiny*/,
    -
    2094  10 /*untilMonth*/,
    -
    2095  21 /*untilDay*/,
    -
    2096  0 /*untilTimeCode*/,
    -
    2097  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2098  },
    -
    2099  // -3:00 - %z
    -
    2100  {
    -
    2101  nullptr /*zonePolicy*/,
    -
    2102  "" /*format*/,
    -
    2103  -12 /*offsetCode*/,
    -
    2104  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2105  127 /*untilYearTiny*/,
    -
    2106  1 /*untilMonth*/,
    -
    2107  1 /*untilDay*/,
    -
    2108  0 /*untilTimeCode*/,
    -
    2109  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2110  },
    -
    2111 
    -
    2112 };
    -
    2113 
    -
    2114 static const char kZoneNameAmerica_Bahia[] ACE_TIME_PROGMEM = "\x02" "Bahia";
    -
    2115 
    -
    2116 const extended::Info::ZoneInfo kZoneAmerica_Bahia ACE_TIME_PROGMEM = {
    -
    2117  kZoneNameAmerica_Bahia /*name*/,
    -
    2118  0x97d815fb /*zoneId*/,
    -
    2119  &kZoneContext /*zoneContext*/,
    -
    2120  4 /*numEras*/,
    -
    2121  kZoneEraAmerica_Bahia /*eras*/,
    -
    2122  nullptr /*targetInfo*/,
    -
    2123 };
    -
    2124 
    -
    2125 //---------------------------------------------------------------------------
    -
    2126 // Zone name: America/Bahia_Banderas
    -
    2127 // Eras: 2
    -
    2128 //---------------------------------------------------------------------------
    -
    2129 
    -
    2130 static const extended::Info::ZoneEra kZoneEraAmerica_Bahia_Banderas[] ACE_TIME_PROGMEM = {
    -
    2131  // -7:00 Mexico M%sT 2010 Apr 4 2:00
    -
    2132  {
    -
    2133  &kZonePolicyMexico /*zonePolicy*/,
    -
    2134  "M%T" /*format*/,
    -
    2135  -28 /*offsetCode*/,
    -
    2136  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2137  -90 /*untilYearTiny*/,
    -
    2138  4 /*untilMonth*/,
    -
    2139  4 /*untilDay*/,
    -
    2140  8 /*untilTimeCode*/,
    -
    2141  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2142  },
    -
    2143  // -6:00 Mexico C%sT
    -
    2144  {
    -
    2145  &kZonePolicyMexico /*zonePolicy*/,
    -
    2146  "C%T" /*format*/,
    -
    2147  -24 /*offsetCode*/,
    -
    2148  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2149  127 /*untilYearTiny*/,
    -
    2150  1 /*untilMonth*/,
    -
    2151  1 /*untilDay*/,
    -
    2152  0 /*untilTimeCode*/,
    -
    2153  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2154  },
    -
    2155 
    -
    2156 };
    -
    2157 
    -
    2158 static const char kZoneNameAmerica_Bahia_Banderas[] ACE_TIME_PROGMEM = "\x02" "Bahia_Banderas";
    -
    2159 
    -
    2160 const extended::Info::ZoneInfo kZoneAmerica_Bahia_Banderas ACE_TIME_PROGMEM = {
    -
    2161  kZoneNameAmerica_Bahia_Banderas /*name*/,
    -
    2162  0x14f6329a /*zoneId*/,
    -
    2163  &kZoneContext /*zoneContext*/,
    -
    2164  2 /*numEras*/,
    -
    2165  kZoneEraAmerica_Bahia_Banderas /*eras*/,
    -
    2166  nullptr /*targetInfo*/,
    -
    2167 };
    -
    2168 
    -
    2169 //---------------------------------------------------------------------------
    -
    2170 // Zone name: America/Barbados
    -
    2171 // Eras: 1
    -
    2172 //---------------------------------------------------------------------------
    -
    2173 
    -
    2174 static const extended::Info::ZoneEra kZoneEraAmerica_Barbados[] ACE_TIME_PROGMEM = {
    -
    2175  // -4:00 Barb A%sT
    -
    2176  {
    -
    2177  &kZonePolicyBarb /*zonePolicy*/,
    -
    2178  "A%T" /*format*/,
    -
    2179  -16 /*offsetCode*/,
    -
    2180  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2181  127 /*untilYearTiny*/,
    -
    2182  1 /*untilMonth*/,
    -
    2183  1 /*untilDay*/,
    -
    2184  0 /*untilTimeCode*/,
    -
    2185  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2186  },
    -
    2187 
    -
    2188 };
    -
    2189 
    -
    2190 static const char kZoneNameAmerica_Barbados[] ACE_TIME_PROGMEM = "\x02" "Barbados";
    -
    2191 
    -
    2192 const extended::Info::ZoneInfo kZoneAmerica_Barbados ACE_TIME_PROGMEM = {
    -
    2193  kZoneNameAmerica_Barbados /*name*/,
    -
    2194  0xcbbc3b04 /*zoneId*/,
    -
    2195  &kZoneContext /*zoneContext*/,
    -
    2196  1 /*numEras*/,
    -
    2197  kZoneEraAmerica_Barbados /*eras*/,
    -
    2198  nullptr /*targetInfo*/,
    -
    2199 };
    -
    2200 
    -
    2201 //---------------------------------------------------------------------------
    -
    2202 // Zone name: America/Belem
    -
    2203 // Eras: 1
    -
    2204 //---------------------------------------------------------------------------
    -
    2205 
    -
    2206 static const extended::Info::ZoneEra kZoneEraAmerica_Belem[] ACE_TIME_PROGMEM = {
    -
    2207  // -3:00 - %z
    -
    2208  {
    -
    2209  nullptr /*zonePolicy*/,
    -
    2210  "" /*format*/,
    -
    2211  -12 /*offsetCode*/,
    -
    2212  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2213  127 /*untilYearTiny*/,
    -
    2214  1 /*untilMonth*/,
    -
    2215  1 /*untilDay*/,
    -
    2216  0 /*untilTimeCode*/,
    -
    2217  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2218  },
    -
    2219 
    -
    2220 };
    -
    2221 
    -
    2222 static const char kZoneNameAmerica_Belem[] ACE_TIME_PROGMEM = "\x02" "Belem";
    -
    2223 
    -
    2224 const extended::Info::ZoneInfo kZoneAmerica_Belem ACE_TIME_PROGMEM = {
    -
    2225  kZoneNameAmerica_Belem /*name*/,
    -
    2226  0x97da580b /*zoneId*/,
    -
    2227  &kZoneContext /*zoneContext*/,
    -
    2228  1 /*numEras*/,
    -
    2229  kZoneEraAmerica_Belem /*eras*/,
    -
    2230  nullptr /*targetInfo*/,
    -
    2231 };
    -
    2232 
    -
    2233 //---------------------------------------------------------------------------
    -
    2234 // Zone name: America/Belize
    -
    2235 // Eras: 1
    -
    2236 //---------------------------------------------------------------------------
    -
    2237 
    -
    2238 static const extended::Info::ZoneEra kZoneEraAmerica_Belize[] ACE_TIME_PROGMEM = {
    -
    2239  // -6:00 Belize %s
    -
    2240  {
    -
    2241  &kZonePolicyBelize /*zonePolicy*/,
    -
    2242  "%" /*format*/,
    -
    2243  -24 /*offsetCode*/,
    -
    2244  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2245  127 /*untilYearTiny*/,
    -
    2246  1 /*untilMonth*/,
    -
    2247  1 /*untilDay*/,
    -
    2248  0 /*untilTimeCode*/,
    -
    2249  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2250  },
    -
    2251 
    -
    2252 };
    -
    2253 
    -
    2254 static const char kZoneNameAmerica_Belize[] ACE_TIME_PROGMEM = "\x02" "Belize";
    -
    2255 
    -
    2256 const extended::Info::ZoneInfo kZoneAmerica_Belize ACE_TIME_PROGMEM = {
    -
    2257  kZoneNameAmerica_Belize /*name*/,
    -
    2258  0x93256c81 /*zoneId*/,
    -
    2259  &kZoneContext /*zoneContext*/,
    -
    2260  1 /*numEras*/,
    -
    2261  kZoneEraAmerica_Belize /*eras*/,
    -
    2262  nullptr /*targetInfo*/,
    -
    2263 };
    -
    2264 
    -
    2265 //---------------------------------------------------------------------------
    -
    2266 // Zone name: America/Boa_Vista
    -
    2267 // Eras: 3
    -
    2268 //---------------------------------------------------------------------------
    -
    2269 
    -
    2270 static const extended::Info::ZoneEra kZoneEraAmerica_Boa_Vista[] ACE_TIME_PROGMEM = {
    -
    2271  // -4:00 - %z 1999 Sep 30
    -
    2272  {
    -
    2273  nullptr /*zonePolicy*/,
    -
    2274  "" /*format*/,
    -
    2275  -16 /*offsetCode*/,
    -
    2276  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2277  -101 /*untilYearTiny*/,
    -
    2278  9 /*untilMonth*/,
    -
    2279  30 /*untilDay*/,
    -
    2280  0 /*untilTimeCode*/,
    -
    2281  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2282  },
    -
    2283  // -4:00 Brazil %z 2000 Oct 15
    -
    2284  {
    -
    2285  &kZonePolicyBrazil /*zonePolicy*/,
    -
    2286  "" /*format*/,
    -
    2287  -16 /*offsetCode*/,
    -
    2288  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2289  -100 /*untilYearTiny*/,
    -
    2290  10 /*untilMonth*/,
    -
    2291  15 /*untilDay*/,
    -
    2292  0 /*untilTimeCode*/,
    -
    2293  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2294  },
    -
    2295  // -4:00 - %z
    -
    2296  {
    -
    2297  nullptr /*zonePolicy*/,
    -
    2298  "" /*format*/,
    -
    2299  -16 /*offsetCode*/,
    -
    2300  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2301  127 /*untilYearTiny*/,
    -
    2302  1 /*untilMonth*/,
    -
    2303  1 /*untilDay*/,
    -
    2304  0 /*untilTimeCode*/,
    -
    2305  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2306  },
    -
    2307 
    -
    2308 };
    -
    2309 
    -
    2310 static const char kZoneNameAmerica_Boa_Vista[] ACE_TIME_PROGMEM = "\x02" "Boa_Vista";
    -
    2311 
    -
    2312 const extended::Info::ZoneInfo kZoneAmerica_Boa_Vista ACE_TIME_PROGMEM = {
    -
    2313  kZoneNameAmerica_Boa_Vista /*name*/,
    -
    2314  0x0a7b7efe /*zoneId*/,
    -
    2315  &kZoneContext /*zoneContext*/,
    -
    2316  3 /*numEras*/,
    -
    2317  kZoneEraAmerica_Boa_Vista /*eras*/,
    -
    2318  nullptr /*targetInfo*/,
    -
    2319 };
    -
    2320 
    -
    2321 //---------------------------------------------------------------------------
    -
    2322 // Zone name: America/Bogota
    -
    2323 // Eras: 1
    -
    2324 //---------------------------------------------------------------------------
    -
    2325 
    -
    2326 static const extended::Info::ZoneEra kZoneEraAmerica_Bogota[] ACE_TIME_PROGMEM = {
    -
    2327  // -5:00 CO %z
    -
    2328  {
    -
    2329  &kZonePolicyCO /*zonePolicy*/,
    -
    2330  "" /*format*/,
    -
    2331  -20 /*offsetCode*/,
    -
    2332  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2333  127 /*untilYearTiny*/,
    -
    2334  1 /*untilMonth*/,
    -
    2335  1 /*untilDay*/,
    -
    2336  0 /*untilTimeCode*/,
    -
    2337  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2338  },
    -
    2339 
    -
    2340 };
    -
    2341 
    -
    2342 static const char kZoneNameAmerica_Bogota[] ACE_TIME_PROGMEM = "\x02" "Bogota";
    -
    2343 
    -
    2344 const extended::Info::ZoneInfo kZoneAmerica_Bogota ACE_TIME_PROGMEM = {
    -
    2345  kZoneNameAmerica_Bogota /*name*/,
    -
    2346  0x93d7bc62 /*zoneId*/,
    -
    2347  &kZoneContext /*zoneContext*/,
    -
    2348  1 /*numEras*/,
    -
    2349  kZoneEraAmerica_Bogota /*eras*/,
    -
    2350  nullptr /*targetInfo*/,
    -
    2351 };
    -
    2352 
    -
    2353 //---------------------------------------------------------------------------
    -
    2354 // Zone name: America/Boise
    -
    2355 // Eras: 1
    -
    2356 //---------------------------------------------------------------------------
    -
    2357 
    -
    2358 static const extended::Info::ZoneEra kZoneEraAmerica_Boise[] ACE_TIME_PROGMEM = {
    -
    2359  // -7:00 US M%sT
    -
    2360  {
    -
    2361  &kZonePolicyUS /*zonePolicy*/,
    -
    2362  "M%T" /*format*/,
    -
    2363  -28 /*offsetCode*/,
    -
    2364  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2365  127 /*untilYearTiny*/,
    -
    2366  1 /*untilMonth*/,
    -
    2367  1 /*untilDay*/,
    -
    2368  0 /*untilTimeCode*/,
    -
    2369  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2370  },
    -
    2371 
    -
    2372 };
    -
    2373 
    -
    2374 static const char kZoneNameAmerica_Boise[] ACE_TIME_PROGMEM = "\x02" "Boise";
    -
    2375 
    -
    2376 const extended::Info::ZoneInfo kZoneAmerica_Boise ACE_TIME_PROGMEM = {
    -
    2377  kZoneNameAmerica_Boise /*name*/,
    -
    2378  0x97dfc8d8 /*zoneId*/,
    -
    2379  &kZoneContext /*zoneContext*/,
    -
    2380  1 /*numEras*/,
    -
    2381  kZoneEraAmerica_Boise /*eras*/,
    -
    2382  nullptr /*targetInfo*/,
    -
    2383 };
    -
    2384 
    -
    2385 //---------------------------------------------------------------------------
    -
    2386 // Zone name: America/Cambridge_Bay
    -
    2387 // Eras: 5
    -
    2388 //---------------------------------------------------------------------------
    -
    2389 
    -
    2390 static const extended::Info::ZoneEra kZoneEraAmerica_Cambridge_Bay[] ACE_TIME_PROGMEM = {
    -
    2391  // -7:00 NT_YK M%sT 1999 Oct 31 2:00
    -
    2392  {
    -
    2393  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    2394  "M%T" /*format*/,
    -
    2395  -28 /*offsetCode*/,
    -
    2396  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2397  -101 /*untilYearTiny*/,
    -
    2398  10 /*untilMonth*/,
    -
    2399  31 /*untilDay*/,
    -
    2400  8 /*untilTimeCode*/,
    -
    2401  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2402  },
    -
    2403  // -6:00 Canada C%sT 2000 Oct 29 2:00
    -
    2404  {
    -
    2405  &kZonePolicyCanada /*zonePolicy*/,
    -
    2406  "C%T" /*format*/,
    -
    2407  -24 /*offsetCode*/,
    -
    2408  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2409  -100 /*untilYearTiny*/,
    -
    2410  10 /*untilMonth*/,
    -
    2411  29 /*untilDay*/,
    -
    2412  8 /*untilTimeCode*/,
    -
    2413  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2414  },
    -
    2415  // -5:00 - EST 2000 Nov 5 0:00
    -
    2416  {
    -
    2417  nullptr /*zonePolicy*/,
    -
    2418  "EST" /*format*/,
    -
    2419  -20 /*offsetCode*/,
    -
    2420  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2421  -100 /*untilYearTiny*/,
    -
    2422  11 /*untilMonth*/,
    -
    2423  5 /*untilDay*/,
    -
    2424  0 /*untilTimeCode*/,
    -
    2425  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2426  },
    -
    2427  // -6:00 - CST 2001 Apr 1 3:00
    -
    2428  {
    -
    2429  nullptr /*zonePolicy*/,
    -
    2430  "CST" /*format*/,
    -
    2431  -24 /*offsetCode*/,
    -
    2432  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2433  -99 /*untilYearTiny*/,
    -
    2434  4 /*untilMonth*/,
    -
    2435  1 /*untilDay*/,
    -
    2436  12 /*untilTimeCode*/,
    -
    2437  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2438  },
    -
    2439  // -7:00 Canada M%sT
    -
    2440  {
    -
    2441  &kZonePolicyCanada /*zonePolicy*/,
    -
    2442  "M%T" /*format*/,
    -
    2443  -28 /*offsetCode*/,
    -
    2444  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2445  127 /*untilYearTiny*/,
    -
    2446  1 /*untilMonth*/,
    -
    2447  1 /*untilDay*/,
    -
    2448  0 /*untilTimeCode*/,
    -
    2449  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2450  },
    -
    2451 
    -
    2452 };
    -
    2453 
    -
    2454 static const char kZoneNameAmerica_Cambridge_Bay[] ACE_TIME_PROGMEM = "\x02" "Cambridge_Bay";
    -
    2455 
    -
    2456 const extended::Info::ZoneInfo kZoneAmerica_Cambridge_Bay ACE_TIME_PROGMEM = {
    -
    2457  kZoneNameAmerica_Cambridge_Bay /*name*/,
    -
    2458  0xd5a44aff /*zoneId*/,
    -
    2459  &kZoneContext /*zoneContext*/,
    -
    2460  5 /*numEras*/,
    -
    2461  kZoneEraAmerica_Cambridge_Bay /*eras*/,
    -
    2462  nullptr /*targetInfo*/,
    -
    2463 };
    -
    2464 
    -
    2465 //---------------------------------------------------------------------------
    -
    2466 // Zone name: America/Campo_Grande
    -
    2467 // Eras: 1
    -
    2468 //---------------------------------------------------------------------------
    -
    2469 
    -
    2470 static const extended::Info::ZoneEra kZoneEraAmerica_Campo_Grande[] ACE_TIME_PROGMEM = {
    -
    2471  // -4:00 Brazil %z
    -
    2472  {
    -
    2473  &kZonePolicyBrazil /*zonePolicy*/,
    -
    2474  "" /*format*/,
    -
    2475  -16 /*offsetCode*/,
    -
    2476  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2477  127 /*untilYearTiny*/,
    -
    2478  1 /*untilMonth*/,
    -
    2479  1 /*untilDay*/,
    -
    2480  0 /*untilTimeCode*/,
    -
    2481  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2482  },
    -
    2483 
    -
    2484 };
    -
    2485 
    -
    2486 static const char kZoneNameAmerica_Campo_Grande[] ACE_TIME_PROGMEM = "\x02" "Campo_Grande";
    -
    2487 
    -
    2488 const extended::Info::ZoneInfo kZoneAmerica_Campo_Grande ACE_TIME_PROGMEM = {
    -
    2489  kZoneNameAmerica_Campo_Grande /*name*/,
    -
    2490  0xfec3e7a6 /*zoneId*/,
    -
    2491  &kZoneContext /*zoneContext*/,
    -
    2492  1 /*numEras*/,
    -
    2493  kZoneEraAmerica_Campo_Grande /*eras*/,
    -
    2494  nullptr /*targetInfo*/,
    -
    2495 };
    -
    2496 
    -
    2497 //---------------------------------------------------------------------------
    -
    2498 // Zone name: America/Cancun
    -
    2499 // Eras: 2
    -
    2500 //---------------------------------------------------------------------------
    -
    2501 
    -
    2502 static const extended::Info::ZoneEra kZoneEraAmerica_Cancun[] ACE_TIME_PROGMEM = {
    -
    2503  // -6:00 Mexico C%sT 2015 Feb 1 2:00
    -
    2504  {
    -
    2505  &kZonePolicyMexico /*zonePolicy*/,
    -
    2506  "C%T" /*format*/,
    -
    2507  -24 /*offsetCode*/,
    -
    2508  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2509  -85 /*untilYearTiny*/,
    -
    2510  2 /*untilMonth*/,
    -
    2511  1 /*untilDay*/,
    -
    2512  8 /*untilTimeCode*/,
    -
    2513  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2514  },
    -
    2515  // -5:00 - EST
    -
    2516  {
    -
    2517  nullptr /*zonePolicy*/,
    -
    2518  "EST" /*format*/,
    -
    2519  -20 /*offsetCode*/,
    -
    2520  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2521  127 /*untilYearTiny*/,
    -
    2522  1 /*untilMonth*/,
    -
    2523  1 /*untilDay*/,
    -
    2524  0 /*untilTimeCode*/,
    -
    2525  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2526  },
    -
    2527 
    -
    2528 };
    -
    2529 
    -
    2530 static const char kZoneNameAmerica_Cancun[] ACE_TIME_PROGMEM = "\x02" "Cancun";
    -
    2531 
    -
    2532 const extended::Info::ZoneInfo kZoneAmerica_Cancun ACE_TIME_PROGMEM = {
    -
    2533  kZoneNameAmerica_Cancun /*name*/,
    -
    2534  0x953331be /*zoneId*/,
    -
    2535  &kZoneContext /*zoneContext*/,
    -
    2536  2 /*numEras*/,
    -
    2537  kZoneEraAmerica_Cancun /*eras*/,
    -
    2538  nullptr /*targetInfo*/,
    -
    2539 };
    -
    2540 
    -
    2541 //---------------------------------------------------------------------------
    -
    2542 // Zone name: America/Caracas
    -
    2543 // Eras: 3
    -
    2544 //---------------------------------------------------------------------------
    -
    2545 
    -
    2546 static const extended::Info::ZoneEra kZoneEraAmerica_Caracas[] ACE_TIME_PROGMEM = {
    -
    2547  // -4:00 - %z 2007 Dec 9 3:00
    -
    2548  {
    -
    2549  nullptr /*zonePolicy*/,
    -
    2550  "" /*format*/,
    -
    2551  -16 /*offsetCode*/,
    -
    2552  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2553  -93 /*untilYearTiny*/,
    -
    2554  12 /*untilMonth*/,
    -
    2555  9 /*untilDay*/,
    -
    2556  12 /*untilTimeCode*/,
    -
    2557  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2558  },
    -
    2559  // -4:30 - %z 2016 May 1 2:30
    -
    2560  {
    -
    2561  nullptr /*zonePolicy*/,
    -
    2562  "" /*format*/,
    -
    2563  -18 /*offsetCode*/,
    -
    2564  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2565  -84 /*untilYearTiny*/,
    -
    2566  5 /*untilMonth*/,
    -
    2567  1 /*untilDay*/,
    -
    2568  10 /*untilTimeCode*/,
    -
    2569  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2570  },
    -
    2571  // -4:00 - %z
    -
    2572  {
    -
    2573  nullptr /*zonePolicy*/,
    -
    2574  "" /*format*/,
    -
    2575  -16 /*offsetCode*/,
    -
    2576  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2577  127 /*untilYearTiny*/,
    -
    2578  1 /*untilMonth*/,
    -
    2579  1 /*untilDay*/,
    -
    2580  0 /*untilTimeCode*/,
    -
    2581  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2582  },
    -
    2583 
    -
    2584 };
    -
    2585 
    -
    2586 static const char kZoneNameAmerica_Caracas[] ACE_TIME_PROGMEM = "\x02" "Caracas";
    -
    2587 
    -
    2588 const extended::Info::ZoneInfo kZoneAmerica_Caracas ACE_TIME_PROGMEM = {
    -
    2589  kZoneNameAmerica_Caracas /*name*/,
    -
    2590  0x3be064f4 /*zoneId*/,
    -
    2591  &kZoneContext /*zoneContext*/,
    -
    2592  3 /*numEras*/,
    -
    2593  kZoneEraAmerica_Caracas /*eras*/,
    -
    2594  nullptr /*targetInfo*/,
    -
    2595 };
    -
    2596 
    -
    2597 //---------------------------------------------------------------------------
    -
    2598 // Zone name: America/Cayenne
    -
    2599 // Eras: 1
    -
    2600 //---------------------------------------------------------------------------
    -
    2601 
    -
    2602 static const extended::Info::ZoneEra kZoneEraAmerica_Cayenne[] ACE_TIME_PROGMEM = {
    -
    2603  // -3:00 - %z
    -
    2604  {
    -
    2605  nullptr /*zonePolicy*/,
    -
    2606  "" /*format*/,
    -
    2607  -12 /*offsetCode*/,
    -
    2608  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2609  127 /*untilYearTiny*/,
    -
    2610  1 /*untilMonth*/,
    -
    2611  1 /*untilDay*/,
    -
    2612  0 /*untilTimeCode*/,
    -
    2613  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2614  },
    -
    2615 
    -
    2616 };
    -
    2617 
    -
    2618 static const char kZoneNameAmerica_Cayenne[] ACE_TIME_PROGMEM = "\x02" "Cayenne";
    -
    2619 
    -
    2620 const extended::Info::ZoneInfo kZoneAmerica_Cayenne ACE_TIME_PROGMEM = {
    -
    2621  kZoneNameAmerica_Cayenne /*name*/,
    -
    2622  0x3c617269 /*zoneId*/,
    -
    2623  &kZoneContext /*zoneContext*/,
    -
    2624  1 /*numEras*/,
    -
    2625  kZoneEraAmerica_Cayenne /*eras*/,
    -
    2626  nullptr /*targetInfo*/,
    -
    2627 };
    -
    2628 
    -
    2629 //---------------------------------------------------------------------------
    -
    2630 // Zone name: America/Chicago
    -
    2631 // Eras: 1
    -
    2632 //---------------------------------------------------------------------------
    -
    2633 
    -
    2634 static const extended::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = {
    -
    2635  // -6:00 US C%sT
    -
    2636  {
    -
    2637  &kZonePolicyUS /*zonePolicy*/,
    -
    2638  "C%T" /*format*/,
    -
    2639  -24 /*offsetCode*/,
    -
    2640  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2641  127 /*untilYearTiny*/,
    -
    2642  1 /*untilMonth*/,
    -
    2643  1 /*untilDay*/,
    -
    2644  0 /*untilTimeCode*/,
    -
    2645  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2646  },
    -
    2647 
    -
    2648 };
    -
    2649 
    -
    2650 static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "\x02" "Chicago";
    -
    2651 
    -
    2652 const extended::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = {
    -
    2653  kZoneNameAmerica_Chicago /*name*/,
    -
    2654  0x4b92b5d4 /*zoneId*/,
    -
    2655  &kZoneContext /*zoneContext*/,
    -
    2656  1 /*numEras*/,
    -
    2657  kZoneEraAmerica_Chicago /*eras*/,
    -
    2658  nullptr /*targetInfo*/,
    -
    2659 };
    -
    2660 
    -
    2661 //---------------------------------------------------------------------------
    -
    2662 // Zone name: America/Chihuahua
    -
    2663 // Eras: 2
    -
    2664 //---------------------------------------------------------------------------
    -
    2665 
    -
    2666 static const extended::Info::ZoneEra kZoneEraAmerica_Chihuahua[] ACE_TIME_PROGMEM = {
    -
    2667  // -7:00 Mexico M%sT 2022 Oct 30 2:00
    -
    2668  {
    -
    2669  &kZonePolicyMexico /*zonePolicy*/,
    -
    2670  "M%T" /*format*/,
    -
    2671  -28 /*offsetCode*/,
    -
    2672  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2673  -78 /*untilYearTiny*/,
    -
    2674  10 /*untilMonth*/,
    -
    2675  30 /*untilDay*/,
    -
    2676  8 /*untilTimeCode*/,
    -
    2677  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2678  },
    -
    2679  // -6:00 - CST
    -
    2680  {
    -
    2681  nullptr /*zonePolicy*/,
    -
    2682  "CST" /*format*/,
    -
    2683  -24 /*offsetCode*/,
    -
    2684  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2685  127 /*untilYearTiny*/,
    -
    2686  1 /*untilMonth*/,
    -
    2687  1 /*untilDay*/,
    -
    2688  0 /*untilTimeCode*/,
    -
    2689  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2690  },
    -
    2691 
    -
    2692 };
    -
    2693 
    -
    2694 static const char kZoneNameAmerica_Chihuahua[] ACE_TIME_PROGMEM = "\x02" "Chihuahua";
    -
    2695 
    -
    2696 const extended::Info::ZoneInfo kZoneAmerica_Chihuahua ACE_TIME_PROGMEM = {
    -
    2697  kZoneNameAmerica_Chihuahua /*name*/,
    -
    2698  0x8827d776 /*zoneId*/,
    -
    2699  &kZoneContext /*zoneContext*/,
    -
    2700  2 /*numEras*/,
    -
    2701  kZoneEraAmerica_Chihuahua /*eras*/,
    -
    2702  nullptr /*targetInfo*/,
    -
    2703 };
    -
    2704 
    -
    2705 //---------------------------------------------------------------------------
    -
    2706 // Zone name: America/Ciudad_Juarez
    -
    2707 // Eras: 4
    -
    2708 //---------------------------------------------------------------------------
    -
    2709 
    -
    2710 static const extended::Info::ZoneEra kZoneEraAmerica_Ciudad_Juarez[] ACE_TIME_PROGMEM = {
    -
    2711  // -7:00 Mexico M%sT 2010
    -
    2712  {
    -
    2713  &kZonePolicyMexico /*zonePolicy*/,
    -
    2714  "M%T" /*format*/,
    -
    2715  -28 /*offsetCode*/,
    -
    2716  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2717  -90 /*untilYearTiny*/,
    -
    2718  1 /*untilMonth*/,
    -
    2719  1 /*untilDay*/,
    -
    2720  0 /*untilTimeCode*/,
    -
    2721  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2722  },
    -
    2723  // -7:00 US M%sT 2022 Oct 30 2:00
    -
    2724  {
    -
    2725  &kZonePolicyUS /*zonePolicy*/,
    -
    2726  "M%T" /*format*/,
    -
    2727  -28 /*offsetCode*/,
    -
    2728  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2729  -78 /*untilYearTiny*/,
    -
    2730  10 /*untilMonth*/,
    -
    2731  30 /*untilDay*/,
    -
    2732  8 /*untilTimeCode*/,
    -
    2733  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2734  },
    -
    2735  // -6:00 - CST 2022 Nov 30 0:00
    -
    2736  {
    -
    2737  nullptr /*zonePolicy*/,
    -
    2738  "CST" /*format*/,
    -
    2739  -24 /*offsetCode*/,
    -
    2740  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2741  -78 /*untilYearTiny*/,
    -
    2742  11 /*untilMonth*/,
    -
    2743  30 /*untilDay*/,
    -
    2744  0 /*untilTimeCode*/,
    -
    2745  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2746  },
    -
    2747  // -7:00 US M%sT
    -
    2748  {
    -
    2749  &kZonePolicyUS /*zonePolicy*/,
    -
    2750  "M%T" /*format*/,
    -
    2751  -28 /*offsetCode*/,
    -
    2752  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2753  127 /*untilYearTiny*/,
    -
    2754  1 /*untilMonth*/,
    -
    2755  1 /*untilDay*/,
    -
    2756  0 /*untilTimeCode*/,
    -
    2757  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2758  },
    -
    2759 
    -
    2760 };
    -
    2761 
    -
    2762 static const char kZoneNameAmerica_Ciudad_Juarez[] ACE_TIME_PROGMEM = "\x02" "Ciudad_Juarez";
    -
    2763 
    -
    2764 const extended::Info::ZoneInfo kZoneAmerica_Ciudad_Juarez ACE_TIME_PROGMEM = {
    -
    2765  kZoneNameAmerica_Ciudad_Juarez /*name*/,
    -
    2766  0x7347fc60 /*zoneId*/,
    -
    2767  &kZoneContext /*zoneContext*/,
    -
    2768  4 /*numEras*/,
    -
    2769  kZoneEraAmerica_Ciudad_Juarez /*eras*/,
    -
    2770  nullptr /*targetInfo*/,
    -
    2771 };
    -
    2772 
    -
    2773 //---------------------------------------------------------------------------
    -
    2774 // Zone name: America/Costa_Rica
    -
    2775 // Eras: 1
    -
    2776 //---------------------------------------------------------------------------
    -
    2777 
    -
    2778 static const extended::Info::ZoneEra kZoneEraAmerica_Costa_Rica[] ACE_TIME_PROGMEM = {
    -
    2779  // -6:00 CR C%sT
    -
    2780  {
    -
    2781  &kZonePolicyCR /*zonePolicy*/,
    -
    2782  "C%T" /*format*/,
    -
    2783  -24 /*offsetCode*/,
    -
    2784  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2785  127 /*untilYearTiny*/,
    -
    2786  1 /*untilMonth*/,
    -
    2787  1 /*untilDay*/,
    -
    2788  0 /*untilTimeCode*/,
    -
    2789  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2790  },
    -
    2791 
    -
    2792 };
    -
    2793 
    -
    2794 static const char kZoneNameAmerica_Costa_Rica[] ACE_TIME_PROGMEM = "\x02" "Costa_Rica";
    -
    2795 
    -
    2796 const extended::Info::ZoneInfo kZoneAmerica_Costa_Rica ACE_TIME_PROGMEM = {
    -
    2797  kZoneNameAmerica_Costa_Rica /*name*/,
    -
    2798  0x63ff66be /*zoneId*/,
    -
    2799  &kZoneContext /*zoneContext*/,
    -
    2800  1 /*numEras*/,
    -
    2801  kZoneEraAmerica_Costa_Rica /*eras*/,
    -
    2802  nullptr /*targetInfo*/,
    -
    2803 };
    -
    2804 
    -
    2805 //---------------------------------------------------------------------------
    -
    2806 // Zone name: America/Coyhaique
    -
    2807 // Eras: 2
    -
    2808 //---------------------------------------------------------------------------
    -
    2809 
    -
    2810 static const extended::Info::ZoneEra kZoneEraAmerica_Coyhaique[] ACE_TIME_PROGMEM = {
    -
    2811  // -4:00 Chile %z 2025 Mar 20
    -
    2812  {
    -
    2813  &kZonePolicyChile /*zonePolicy*/,
    -
    2814  "" /*format*/,
    -
    2815  -16 /*offsetCode*/,
    -
    2816  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2817  -75 /*untilYearTiny*/,
    -
    2818  3 /*untilMonth*/,
    -
    2819  20 /*untilDay*/,
    -
    2820  0 /*untilTimeCode*/,
    -
    2821  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2822  },
    -
    2823  // -3:00 - %z
    -
    2824  {
    -
    2825  nullptr /*zonePolicy*/,
    -
    2826  "" /*format*/,
    -
    2827  -12 /*offsetCode*/,
    -
    2828  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2829  127 /*untilYearTiny*/,
    -
    2830  1 /*untilMonth*/,
    -
    2831  1 /*untilDay*/,
    -
    2832  0 /*untilTimeCode*/,
    -
    2833  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2834  },
    -
    2835 
    -
    2836 };
    -
    2837 
    -
    2838 static const char kZoneNameAmerica_Coyhaique[] ACE_TIME_PROGMEM = "\x02" "Coyhaique";
    -
    2839 
    -
    2840 const extended::Info::ZoneInfo kZoneAmerica_Coyhaique ACE_TIME_PROGMEM = {
    -
    2841  kZoneNameAmerica_Coyhaique /*name*/,
    -
    2842  0xcc3314ee /*zoneId*/,
    -
    2843  &kZoneContext /*zoneContext*/,
    -
    2844  2 /*numEras*/,
    -
    2845  kZoneEraAmerica_Coyhaique /*eras*/,
    -
    2846  nullptr /*targetInfo*/,
    -
    2847 };
    -
    2848 
    -
    2849 //---------------------------------------------------------------------------
    -
    2850 // Zone name: America/Cuiaba
    -
    2851 // Eras: 3
    -
    2852 //---------------------------------------------------------------------------
    -
    2853 
    -
    2854 static const extended::Info::ZoneEra kZoneEraAmerica_Cuiaba[] ACE_TIME_PROGMEM = {
    -
    2855  // -4:00 Brazil %z 2003 Sep 24
    -
    2856  {
    -
    2857  &kZonePolicyBrazil /*zonePolicy*/,
    -
    2858  "" /*format*/,
    -
    2859  -16 /*offsetCode*/,
    -
    2860  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2861  -97 /*untilYearTiny*/,
    -
    2862  9 /*untilMonth*/,
    -
    2863  24 /*untilDay*/,
    -
    2864  0 /*untilTimeCode*/,
    -
    2865  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2866  },
    -
    2867  // -4:00 - %z 2004 Oct 1
    -
    2868  {
    -
    2869  nullptr /*zonePolicy*/,
    -
    2870  "" /*format*/,
    -
    2871  -16 /*offsetCode*/,
    -
    2872  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2873  -96 /*untilYearTiny*/,
    -
    2874  10 /*untilMonth*/,
    -
    2875  1 /*untilDay*/,
    -
    2876  0 /*untilTimeCode*/,
    -
    2877  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2878  },
    -
    2879  // -4:00 Brazil %z
    -
    2880  {
    -
    2881  &kZonePolicyBrazil /*zonePolicy*/,
    -
    2882  "" /*format*/,
    -
    2883  -16 /*offsetCode*/,
    -
    2884  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2885  127 /*untilYearTiny*/,
    -
    2886  1 /*untilMonth*/,
    -
    2887  1 /*untilDay*/,
    -
    2888  0 /*untilTimeCode*/,
    -
    2889  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2890  },
    -
    2891 
    -
    2892 };
    -
    2893 
    -
    2894 static const char kZoneNameAmerica_Cuiaba[] ACE_TIME_PROGMEM = "\x02" "Cuiaba";
    -
    2895 
    -
    2896 const extended::Info::ZoneInfo kZoneAmerica_Cuiaba ACE_TIME_PROGMEM = {
    -
    2897  kZoneNameAmerica_Cuiaba /*name*/,
    -
    2898  0x969a52eb /*zoneId*/,
    -
    2899  &kZoneContext /*zoneContext*/,
    -
    2900  3 /*numEras*/,
    -
    2901  kZoneEraAmerica_Cuiaba /*eras*/,
    -
    2902  nullptr /*targetInfo*/,
    -
    2903 };
    -
    2904 
    -
    2905 //---------------------------------------------------------------------------
    -
    2906 // Zone name: America/Danmarkshavn
    -
    2907 // Eras: 1
    -
    2908 //---------------------------------------------------------------------------
    -
    2909 
    -
    2910 static const extended::Info::ZoneEra kZoneEraAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = {
    -
    2911  // 0:00 - GMT
    -
    2912  {
    -
    2913  nullptr /*zonePolicy*/,
    -
    2914  "GMT" /*format*/,
    -
    2915  0 /*offsetCode*/,
    -
    2916  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2917  127 /*untilYearTiny*/,
    -
    2918  1 /*untilMonth*/,
    -
    2919  1 /*untilDay*/,
    -
    2920  0 /*untilTimeCode*/,
    -
    2921  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2922  },
    -
    2923 
    -
    2924 };
    -
    2925 
    -
    2926 static const char kZoneNameAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = "\x02" "Danmarkshavn";
    -
    2927 
    -
    2928 const extended::Info::ZoneInfo kZoneAmerica_Danmarkshavn ACE_TIME_PROGMEM = {
    -
    2929  kZoneNameAmerica_Danmarkshavn /*name*/,
    -
    2930  0xf554d204 /*zoneId*/,
    -
    2931  &kZoneContext /*zoneContext*/,
    -
    2932  1 /*numEras*/,
    -
    2933  kZoneEraAmerica_Danmarkshavn /*eras*/,
    -
    2934  nullptr /*targetInfo*/,
    -
    2935 };
    -
    2936 
    -
    2937 //---------------------------------------------------------------------------
    -
    2938 // Zone name: America/Dawson
    -
    2939 // Eras: 2
    -
    2940 //---------------------------------------------------------------------------
    -
    2941 
    -
    2942 static const extended::Info::ZoneEra kZoneEraAmerica_Dawson[] ACE_TIME_PROGMEM = {
    -
    2943  // -8:00 Canada P%sT 2020 Nov 1
    -
    2944  {
    -
    2945  &kZonePolicyCanada /*zonePolicy*/,
    -
    2946  "P%T" /*format*/,
    -
    2947  -32 /*offsetCode*/,
    -
    2948  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2949  -80 /*untilYearTiny*/,
    -
    2950  11 /*untilMonth*/,
    -
    2951  1 /*untilDay*/,
    -
    2952  0 /*untilTimeCode*/,
    -
    2953  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2954  },
    -
    2955  // -7:00 - MST
    -
    2956  {
    -
    2957  nullptr /*zonePolicy*/,
    -
    2958  "MST" /*format*/,
    -
    2959  -28 /*offsetCode*/,
    -
    2960  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2961  127 /*untilYearTiny*/,
    -
    2962  1 /*untilMonth*/,
    -
    2963  1 /*untilDay*/,
    -
    2964  0 /*untilTimeCode*/,
    -
    2965  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2966  },
    -
    2967 
    -
    2968 };
    -
    2969 
    -
    2970 static const char kZoneNameAmerica_Dawson[] ACE_TIME_PROGMEM = "\x02" "Dawson";
    -
    2971 
    -
    2972 const extended::Info::ZoneInfo kZoneAmerica_Dawson ACE_TIME_PROGMEM = {
    -
    2973  kZoneNameAmerica_Dawson /*name*/,
    -
    2974  0x978d8d12 /*zoneId*/,
    -
    2975  &kZoneContext /*zoneContext*/,
    -
    2976  2 /*numEras*/,
    -
    2977  kZoneEraAmerica_Dawson /*eras*/,
    -
    2978  nullptr /*targetInfo*/,
    -
    2979 };
    -
    2980 
    -
    2981 //---------------------------------------------------------------------------
    -
    2982 // Zone name: America/Dawson_Creek
    -
    2983 // Eras: 1
    -
    2984 //---------------------------------------------------------------------------
    -
    2985 
    -
    2986 static const extended::Info::ZoneEra kZoneEraAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = {
    -
    2987  // -7:00 - MST
    -
    2988  {
    -
    2989  nullptr /*zonePolicy*/,
    -
    2990  "MST" /*format*/,
    -
    2991  -28 /*offsetCode*/,
    -
    2992  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    2993  127 /*untilYearTiny*/,
    -
    2994  1 /*untilMonth*/,
    -
    2995  1 /*untilDay*/,
    -
    2996  0 /*untilTimeCode*/,
    -
    2997  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    2998  },
    -
    2999 
    -
    3000 };
    -
    3001 
    -
    3002 static const char kZoneNameAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = "\x02" "Dawson_Creek";
    -
    3003 
    -
    3004 const extended::Info::ZoneInfo kZoneAmerica_Dawson_Creek ACE_TIME_PROGMEM = {
    -
    3005  kZoneNameAmerica_Dawson_Creek /*name*/,
    -
    3006  0x6cf24e5b /*zoneId*/,
    -
    3007  &kZoneContext /*zoneContext*/,
    -
    3008  1 /*numEras*/,
    -
    3009  kZoneEraAmerica_Dawson_Creek /*eras*/,
    -
    3010  nullptr /*targetInfo*/,
    -
    3011 };
    -
    3012 
    -
    3013 //---------------------------------------------------------------------------
    -
    3014 // Zone name: America/Denver
    -
    3015 // Eras: 1
    -
    3016 //---------------------------------------------------------------------------
    -
    3017 
    -
    3018 static const extended::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = {
    -
    3019  // -7:00 US M%sT
    -
    3020  {
    -
    3021  &kZonePolicyUS /*zonePolicy*/,
    -
    3022  "M%T" /*format*/,
    -
    3023  -28 /*offsetCode*/,
    -
    3024  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3025  127 /*untilYearTiny*/,
    -
    3026  1 /*untilMonth*/,
    -
    3027  1 /*untilDay*/,
    -
    3028  0 /*untilTimeCode*/,
    -
    3029  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3030  },
    -
    3031 
    -
    3032 };
    -
    3033 
    -
    3034 static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "\x02" "Denver";
    -
    3035 
    -
    3036 const extended::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = {
    -
    3037  kZoneNameAmerica_Denver /*name*/,
    -
    3038  0x97d10b2a /*zoneId*/,
    -
    3039  &kZoneContext /*zoneContext*/,
    -
    3040  1 /*numEras*/,
    -
    3041  kZoneEraAmerica_Denver /*eras*/,
    -
    3042  nullptr /*targetInfo*/,
    -
    3043 };
    -
    3044 
    -
    3045 //---------------------------------------------------------------------------
    -
    3046 // Zone name: America/Detroit
    -
    3047 // Eras: 1
    -
    3048 //---------------------------------------------------------------------------
    -
    3049 
    -
    3050 static const extended::Info::ZoneEra kZoneEraAmerica_Detroit[] ACE_TIME_PROGMEM = {
    -
    3051  // -5:00 US E%sT
    -
    3052  {
    -
    3053  &kZonePolicyUS /*zonePolicy*/,
    -
    3054  "E%T" /*format*/,
    -
    3055  -20 /*offsetCode*/,
    -
    3056  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3057  127 /*untilYearTiny*/,
    -
    3058  1 /*untilMonth*/,
    -
    3059  1 /*untilDay*/,
    -
    3060  0 /*untilTimeCode*/,
    -
    3061  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3062  },
    -
    3063 
    -
    3064 };
    -
    3065 
    -
    3066 static const char kZoneNameAmerica_Detroit[] ACE_TIME_PROGMEM = "\x02" "Detroit";
    -
    3067 
    -
    3068 const extended::Info::ZoneInfo kZoneAmerica_Detroit ACE_TIME_PROGMEM = {
    -
    3069  kZoneNameAmerica_Detroit /*name*/,
    -
    3070  0x925cfbc1 /*zoneId*/,
    -
    3071  &kZoneContext /*zoneContext*/,
    -
    3072  1 /*numEras*/,
    -
    3073  kZoneEraAmerica_Detroit /*eras*/,
    -
    3074  nullptr /*targetInfo*/,
    -
    3075 };
    -
    3076 
    -
    3077 //---------------------------------------------------------------------------
    -
    3078 // Zone name: America/Edmonton
    -
    3079 // Eras: 1
    -
    3080 //---------------------------------------------------------------------------
    -
    3081 
    -
    3082 static const extended::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = {
    -
    3083  // -7:00 Canada M%sT
    -
    3084  {
    -
    3085  &kZonePolicyCanada /*zonePolicy*/,
    -
    3086  "M%T" /*format*/,
    -
    3087  -28 /*offsetCode*/,
    -
    3088  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3089  127 /*untilYearTiny*/,
    -
    3090  1 /*untilMonth*/,
    -
    3091  1 /*untilDay*/,
    -
    3092  0 /*untilTimeCode*/,
    -
    3093  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3094  },
    -
    3095 
    -
    3096 };
    -
    3097 
    -
    3098 static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "\x02" "Edmonton";
    -
    3099 
    -
    3100 const extended::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = {
    -
    3101  kZoneNameAmerica_Edmonton /*name*/,
    -
    3102  0x6cb9484a /*zoneId*/,
    -
    3103  &kZoneContext /*zoneContext*/,
    -
    3104  1 /*numEras*/,
    -
    3105  kZoneEraAmerica_Edmonton /*eras*/,
    -
    3106  nullptr /*targetInfo*/,
    -
    3107 };
    -
    3108 
    -
    3109 //---------------------------------------------------------------------------
    -
    3110 // Zone name: America/Eirunepe
    -
    3111 // Eras: 3
    -
    3112 //---------------------------------------------------------------------------
    -
    3113 
    -
    3114 static const extended::Info::ZoneEra kZoneEraAmerica_Eirunepe[] ACE_TIME_PROGMEM = {
    -
    3115  // -5:00 - %z 2008 Jun 24 0:00
    -
    3116  {
    -
    3117  nullptr /*zonePolicy*/,
    -
    3118  "" /*format*/,
    -
    3119  -20 /*offsetCode*/,
    -
    3120  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3121  -92 /*untilYearTiny*/,
    -
    3122  6 /*untilMonth*/,
    -
    3123  24 /*untilDay*/,
    -
    3124  0 /*untilTimeCode*/,
    -
    3125  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3126  },
    -
    3127  // -4:00 - %z 2013 Nov 10
    -
    3128  {
    -
    3129  nullptr /*zonePolicy*/,
    -
    3130  "" /*format*/,
    -
    3131  -16 /*offsetCode*/,
    -
    3132  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3133  -87 /*untilYearTiny*/,
    -
    3134  11 /*untilMonth*/,
    -
    3135  10 /*untilDay*/,
    -
    3136  0 /*untilTimeCode*/,
    -
    3137  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3138  },
    -
    3139  // -5:00 - %z
    -
    3140  {
    -
    3141  nullptr /*zonePolicy*/,
    -
    3142  "" /*format*/,
    -
    3143  -20 /*offsetCode*/,
    -
    3144  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3145  127 /*untilYearTiny*/,
    -
    3146  1 /*untilMonth*/,
    -
    3147  1 /*untilDay*/,
    -
    3148  0 /*untilTimeCode*/,
    -
    3149  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3150  },
    -
    3151 
    -
    3152 };
    -
    3153 
    -
    3154 static const char kZoneNameAmerica_Eirunepe[] ACE_TIME_PROGMEM = "\x02" "Eirunepe";
    -
    3155 
    -
    3156 const extended::Info::ZoneInfo kZoneAmerica_Eirunepe ACE_TIME_PROGMEM = {
    -
    3157  kZoneNameAmerica_Eirunepe /*name*/,
    -
    3158  0xf9b29683 /*zoneId*/,
    -
    3159  &kZoneContext /*zoneContext*/,
    -
    3160  3 /*numEras*/,
    -
    3161  kZoneEraAmerica_Eirunepe /*eras*/,
    -
    3162  nullptr /*targetInfo*/,
    -
    3163 };
    -
    3164 
    -
    3165 //---------------------------------------------------------------------------
    -
    3166 // Zone name: America/El_Salvador
    -
    3167 // Eras: 1
    -
    3168 //---------------------------------------------------------------------------
    -
    3169 
    -
    3170 static const extended::Info::ZoneEra kZoneEraAmerica_El_Salvador[] ACE_TIME_PROGMEM = {
    -
    3171  // -6:00 Salv C%sT
    -
    3172  {
    -
    3173  &kZonePolicySalv /*zonePolicy*/,
    -
    3174  "C%T" /*format*/,
    -
    3175  -24 /*offsetCode*/,
    -
    3176  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3177  127 /*untilYearTiny*/,
    -
    3178  1 /*untilMonth*/,
    -
    3179  1 /*untilDay*/,
    -
    3180  0 /*untilTimeCode*/,
    -
    3181  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3182  },
    -
    3183 
    -
    3184 };
    -
    3185 
    -
    3186 static const char kZoneNameAmerica_El_Salvador[] ACE_TIME_PROGMEM = "\x02" "El_Salvador";
    -
    3187 
    -
    3188 const extended::Info::ZoneInfo kZoneAmerica_El_Salvador ACE_TIME_PROGMEM = {
    -
    3189  kZoneNameAmerica_El_Salvador /*name*/,
    -
    3190  0x752ad652 /*zoneId*/,
    -
    3191  &kZoneContext /*zoneContext*/,
    -
    3192  1 /*numEras*/,
    -
    3193  kZoneEraAmerica_El_Salvador /*eras*/,
    -
    3194  nullptr /*targetInfo*/,
    -
    3195 };
    -
    3196 
    -
    3197 //---------------------------------------------------------------------------
    -
    3198 // Zone name: America/Fort_Nelson
    -
    3199 // Eras: 2
    -
    3200 //---------------------------------------------------------------------------
    -
    3201 
    -
    3202 static const extended::Info::ZoneEra kZoneEraAmerica_Fort_Nelson[] ACE_TIME_PROGMEM = {
    -
    3203  // -8:00 Canada P%sT 2015 Mar 8 2:00
    -
    3204  {
    -
    3205  &kZonePolicyCanada /*zonePolicy*/,
    -
    3206  "P%T" /*format*/,
    -
    3207  -32 /*offsetCode*/,
    -
    3208  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3209  -85 /*untilYearTiny*/,
    -
    3210  3 /*untilMonth*/,
    -
    3211  8 /*untilDay*/,
    -
    3212  8 /*untilTimeCode*/,
    -
    3213  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3214  },
    -
    3215  // -7:00 - MST
    -
    3216  {
    -
    3217  nullptr /*zonePolicy*/,
    -
    3218  "MST" /*format*/,
    -
    3219  -28 /*offsetCode*/,
    -
    3220  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3221  127 /*untilYearTiny*/,
    -
    3222  1 /*untilMonth*/,
    -
    3223  1 /*untilDay*/,
    -
    3224  0 /*untilTimeCode*/,
    -
    3225  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3226  },
    -
    3227 
    -
    3228 };
    -
    3229 
    -
    3230 static const char kZoneNameAmerica_Fort_Nelson[] ACE_TIME_PROGMEM = "\x02" "Fort_Nelson";
    -
    3231 
    -
    3232 const extended::Info::ZoneInfo kZoneAmerica_Fort_Nelson ACE_TIME_PROGMEM = {
    -
    3233  kZoneNameAmerica_Fort_Nelson /*name*/,
    -
    3234  0x3f437e0f /*zoneId*/,
    -
    3235  &kZoneContext /*zoneContext*/,
    -
    3236  2 /*numEras*/,
    -
    3237  kZoneEraAmerica_Fort_Nelson /*eras*/,
    -
    3238  nullptr /*targetInfo*/,
    -
    3239 };
    -
    3240 
    -
    3241 //---------------------------------------------------------------------------
    -
    3242 // Zone name: America/Fortaleza
    -
    3243 // Eras: 5
    -
    3244 //---------------------------------------------------------------------------
    -
    3245 
    -
    3246 static const extended::Info::ZoneEra kZoneEraAmerica_Fortaleza[] ACE_TIME_PROGMEM = {
    -
    3247  // -3:00 - %z 1999 Sep 30
    -
    3248  {
    -
    3249  nullptr /*zonePolicy*/,
    -
    3250  "" /*format*/,
    -
    3251  -12 /*offsetCode*/,
    -
    3252  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3253  -101 /*untilYearTiny*/,
    -
    3254  9 /*untilMonth*/,
    -
    3255  30 /*untilDay*/,
    -
    3256  0 /*untilTimeCode*/,
    -
    3257  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3258  },
    -
    3259  // -3:00 Brazil %z 2000 Oct 22
    -
    3260  {
    -
    3261  &kZonePolicyBrazil /*zonePolicy*/,
    -
    3262  "" /*format*/,
    -
    3263  -12 /*offsetCode*/,
    -
    3264  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3265  -100 /*untilYearTiny*/,
    -
    3266  10 /*untilMonth*/,
    -
    3267  22 /*untilDay*/,
    -
    3268  0 /*untilTimeCode*/,
    -
    3269  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3270  },
    -
    3271  // -3:00 - %z 2001 Sep 13
    -
    3272  {
    -
    3273  nullptr /*zonePolicy*/,
    -
    3274  "" /*format*/,
    -
    3275  -12 /*offsetCode*/,
    -
    3276  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3277  -99 /*untilYearTiny*/,
    -
    3278  9 /*untilMonth*/,
    -
    3279  13 /*untilDay*/,
    -
    3280  0 /*untilTimeCode*/,
    -
    3281  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3282  },
    -
    3283  // -3:00 Brazil %z 2002 Oct 1
    -
    3284  {
    -
    3285  &kZonePolicyBrazil /*zonePolicy*/,
    -
    3286  "" /*format*/,
    -
    3287  -12 /*offsetCode*/,
    -
    3288  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3289  -98 /*untilYearTiny*/,
    -
    3290  10 /*untilMonth*/,
    -
    3291  1 /*untilDay*/,
    -
    3292  0 /*untilTimeCode*/,
    -
    3293  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3294  },
    -
    3295  // -3:00 - %z
    -
    3296  {
    -
    3297  nullptr /*zonePolicy*/,
    -
    3298  "" /*format*/,
    -
    3299  -12 /*offsetCode*/,
    -
    3300  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3301  127 /*untilYearTiny*/,
    -
    3302  1 /*untilMonth*/,
    -
    3303  1 /*untilDay*/,
    -
    3304  0 /*untilTimeCode*/,
    -
    3305  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3306  },
    -
    3307 
    -
    3308 };
    -
    3309 
    -
    3310 static const char kZoneNameAmerica_Fortaleza[] ACE_TIME_PROGMEM = "\x02" "Fortaleza";
    -
    3311 
    -
    3312 const extended::Info::ZoneInfo kZoneAmerica_Fortaleza ACE_TIME_PROGMEM = {
    -
    3313  kZoneNameAmerica_Fortaleza /*name*/,
    -
    3314  0x2ad018ee /*zoneId*/,
    -
    3315  &kZoneContext /*zoneContext*/,
    -
    3316  5 /*numEras*/,
    -
    3317  kZoneEraAmerica_Fortaleza /*eras*/,
    -
    3318  nullptr /*targetInfo*/,
    -
    3319 };
    -
    3320 
    -
    3321 //---------------------------------------------------------------------------
    -
    3322 // Zone name: America/Glace_Bay
    -
    3323 // Eras: 1
    -
    3324 //---------------------------------------------------------------------------
    -
    3325 
    -
    3326 static const extended::Info::ZoneEra kZoneEraAmerica_Glace_Bay[] ACE_TIME_PROGMEM = {
    -
    3327  // -4:00 Canada A%sT
    -
    3328  {
    -
    3329  &kZonePolicyCanada /*zonePolicy*/,
    -
    3330  "A%T" /*format*/,
    -
    3331  -16 /*offsetCode*/,
    -
    3332  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3333  127 /*untilYearTiny*/,
    -
    3334  1 /*untilMonth*/,
    -
    3335  1 /*untilDay*/,
    -
    3336  0 /*untilTimeCode*/,
    -
    3337  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3338  },
    -
    3339 
    -
    3340 };
    -
    3341 
    -
    3342 static const char kZoneNameAmerica_Glace_Bay[] ACE_TIME_PROGMEM = "\x02" "Glace_Bay";
    -
    3343 
    -
    3344 const extended::Info::ZoneInfo kZoneAmerica_Glace_Bay ACE_TIME_PROGMEM = {
    -
    3345  kZoneNameAmerica_Glace_Bay /*name*/,
    -
    3346  0x9681f8dd /*zoneId*/,
    -
    3347  &kZoneContext /*zoneContext*/,
    -
    3348  1 /*numEras*/,
    -
    3349  kZoneEraAmerica_Glace_Bay /*eras*/,
    -
    3350  nullptr /*targetInfo*/,
    -
    3351 };
    -
    3352 
    -
    3353 //---------------------------------------------------------------------------
    -
    3354 // Zone name: America/Goose_Bay
    -
    3355 // Eras: 2
    -
    3356 //---------------------------------------------------------------------------
    -
    3357 
    -
    3358 static const extended::Info::ZoneEra kZoneEraAmerica_Goose_Bay[] ACE_TIME_PROGMEM = {
    -
    3359  // -4:00 StJohns A%sT 2011 Nov
    -
    3360  {
    -
    3361  &kZonePolicyStJohns /*zonePolicy*/,
    -
    3362  "A%T" /*format*/,
    -
    3363  -16 /*offsetCode*/,
    -
    3364  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3365  -89 /*untilYearTiny*/,
    -
    3366  11 /*untilMonth*/,
    -
    3367  1 /*untilDay*/,
    -
    3368  0 /*untilTimeCode*/,
    -
    3369  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3370  },
    -
    3371  // -4:00 Canada A%sT
    -
    3372  {
    -
    3373  &kZonePolicyCanada /*zonePolicy*/,
    -
    3374  "A%T" /*format*/,
    -
    3375  -16 /*offsetCode*/,
    -
    3376  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3377  127 /*untilYearTiny*/,
    -
    3378  1 /*untilMonth*/,
    -
    3379  1 /*untilDay*/,
    -
    3380  0 /*untilTimeCode*/,
    -
    3381  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3382  },
    -
    3383 
    -
    3384 };
    -
    3385 
    -
    3386 static const char kZoneNameAmerica_Goose_Bay[] ACE_TIME_PROGMEM = "\x02" "Goose_Bay";
    -
    3387 
    -
    3388 const extended::Info::ZoneInfo kZoneAmerica_Goose_Bay ACE_TIME_PROGMEM = {
    -
    3389  kZoneNameAmerica_Goose_Bay /*name*/,
    -
    3390  0xb649541e /*zoneId*/,
    -
    3391  &kZoneContext /*zoneContext*/,
    -
    3392  2 /*numEras*/,
    -
    3393  kZoneEraAmerica_Goose_Bay /*eras*/,
    -
    3394  nullptr /*targetInfo*/,
    -
    3395 };
    -
    3396 
    -
    3397 //---------------------------------------------------------------------------
    -
    3398 // Zone name: America/Grand_Turk
    -
    3399 // Eras: 3
    -
    3400 //---------------------------------------------------------------------------
    -
    3401 
    -
    3402 static const extended::Info::ZoneEra kZoneEraAmerica_Grand_Turk[] ACE_TIME_PROGMEM = {
    -
    3403  // -5:00 US E%sT 2015 Mar 8 2:00
    -
    3404  {
    -
    3405  &kZonePolicyUS /*zonePolicy*/,
    -
    3406  "E%T" /*format*/,
    -
    3407  -20 /*offsetCode*/,
    -
    3408  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3409  -85 /*untilYearTiny*/,
    -
    3410  3 /*untilMonth*/,
    -
    3411  8 /*untilDay*/,
    -
    3412  8 /*untilTimeCode*/,
    -
    3413  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3414  },
    -
    3415  // -4:00 - AST 2018 Mar 11 3:00
    -
    3416  {
    -
    3417  nullptr /*zonePolicy*/,
    -
    3418  "AST" /*format*/,
    -
    3419  -16 /*offsetCode*/,
    -
    3420  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3421  -82 /*untilYearTiny*/,
    -
    3422  3 /*untilMonth*/,
    -
    3423  11 /*untilDay*/,
    -
    3424  12 /*untilTimeCode*/,
    -
    3425  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3426  },
    -
    3427  // -5:00 US E%sT
    -
    3428  {
    -
    3429  &kZonePolicyUS /*zonePolicy*/,
    -
    3430  "E%T" /*format*/,
    -
    3431  -20 /*offsetCode*/,
    -
    3432  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3433  127 /*untilYearTiny*/,
    -
    3434  1 /*untilMonth*/,
    -
    3435  1 /*untilDay*/,
    -
    3436  0 /*untilTimeCode*/,
    -
    3437  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3438  },
    -
    3439 
    -
    3440 };
    -
    3441 
    -
    3442 static const char kZoneNameAmerica_Grand_Turk[] ACE_TIME_PROGMEM = "\x02" "Grand_Turk";
    -
    3443 
    -
    3444 const extended::Info::ZoneInfo kZoneAmerica_Grand_Turk ACE_TIME_PROGMEM = {
    -
    3445  kZoneNameAmerica_Grand_Turk /*name*/,
    -
    3446  0x6e216197 /*zoneId*/,
    -
    3447  &kZoneContext /*zoneContext*/,
    -
    3448  3 /*numEras*/,
    -
    3449  kZoneEraAmerica_Grand_Turk /*eras*/,
    -
    3450  nullptr /*targetInfo*/,
    -
    3451 };
    -
    3452 
    -
    3453 //---------------------------------------------------------------------------
    -
    3454 // Zone name: America/Guatemala
    -
    3455 // Eras: 1
    -
    3456 //---------------------------------------------------------------------------
    -
    3457 
    -
    3458 static const extended::Info::ZoneEra kZoneEraAmerica_Guatemala[] ACE_TIME_PROGMEM = {
    -
    3459  // -6:00 Guat C%sT
    -
    3460  {
    -
    3461  &kZonePolicyGuat /*zonePolicy*/,
    -
    3462  "C%T" /*format*/,
    -
    3463  -24 /*offsetCode*/,
    -
    3464  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3465  127 /*untilYearTiny*/,
    -
    3466  1 /*untilMonth*/,
    -
    3467  1 /*untilDay*/,
    -
    3468  0 /*untilTimeCode*/,
    -
    3469  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3470  },
    -
    3471 
    -
    3472 };
    -
    3473 
    -
    3474 static const char kZoneNameAmerica_Guatemala[] ACE_TIME_PROGMEM = "\x02" "Guatemala";
    -
    3475 
    -
    3476 const extended::Info::ZoneInfo kZoneAmerica_Guatemala ACE_TIME_PROGMEM = {
    -
    3477  kZoneNameAmerica_Guatemala /*name*/,
    -
    3478  0x0c8259f7 /*zoneId*/,
    -
    3479  &kZoneContext /*zoneContext*/,
    -
    3480  1 /*numEras*/,
    -
    3481  kZoneEraAmerica_Guatemala /*eras*/,
    -
    3482  nullptr /*targetInfo*/,
    -
    3483 };
    -
    3484 
    -
    3485 //---------------------------------------------------------------------------
    -
    3486 // Zone name: America/Guayaquil
    -
    3487 // Eras: 1
    -
    3488 //---------------------------------------------------------------------------
    -
    3489 
    -
    3490 static const extended::Info::ZoneEra kZoneEraAmerica_Guayaquil[] ACE_TIME_PROGMEM = {
    -
    3491  // -5:00 Ecuador %z
    -
    3492  {
    -
    3493  &kZonePolicyEcuador /*zonePolicy*/,
    -
    3494  "" /*format*/,
    -
    3495  -20 /*offsetCode*/,
    -
    3496  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3497  127 /*untilYearTiny*/,
    -
    3498  1 /*untilMonth*/,
    -
    3499  1 /*untilDay*/,
    -
    3500  0 /*untilTimeCode*/,
    -
    3501  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3502  },
    -
    3503 
    -
    3504 };
    -
    3505 
    -
    3506 static const char kZoneNameAmerica_Guayaquil[] ACE_TIME_PROGMEM = "\x02" "Guayaquil";
    -
    3507 
    -
    3508 const extended::Info::ZoneInfo kZoneAmerica_Guayaquil ACE_TIME_PROGMEM = {
    -
    3509  kZoneNameAmerica_Guayaquil /*name*/,
    -
    3510  0x17e64958 /*zoneId*/,
    -
    3511  &kZoneContext /*zoneContext*/,
    -
    3512  1 /*numEras*/,
    -
    3513  kZoneEraAmerica_Guayaquil /*eras*/,
    -
    3514  nullptr /*targetInfo*/,
    -
    3515 };
    -
    3516 
    -
    3517 //---------------------------------------------------------------------------
    -
    3518 // Zone name: America/Guyana
    -
    3519 // Eras: 1
    -
    3520 //---------------------------------------------------------------------------
    -
    3521 
    -
    3522 static const extended::Info::ZoneEra kZoneEraAmerica_Guyana[] ACE_TIME_PROGMEM = {
    -
    3523  // -4:00 - %z
    -
    3524  {
    -
    3525  nullptr /*zonePolicy*/,
    -
    3526  "" /*format*/,
    -
    3527  -16 /*offsetCode*/,
    -
    3528  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3529  127 /*untilYearTiny*/,
    -
    3530  1 /*untilMonth*/,
    -
    3531  1 /*untilDay*/,
    -
    3532  0 /*untilTimeCode*/,
    -
    3533  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3534  },
    -
    3535 
    -
    3536 };
    -
    3537 
    -
    3538 static const char kZoneNameAmerica_Guyana[] ACE_TIME_PROGMEM = "\x02" "Guyana";
    -
    3539 
    -
    3540 const extended::Info::ZoneInfo kZoneAmerica_Guyana ACE_TIME_PROGMEM = {
    -
    3541  kZoneNameAmerica_Guyana /*name*/,
    -
    3542  0x9ff7bd0b /*zoneId*/,
    -
    3543  &kZoneContext /*zoneContext*/,
    -
    3544  1 /*numEras*/,
    -
    3545  kZoneEraAmerica_Guyana /*eras*/,
    -
    3546  nullptr /*targetInfo*/,
    -
    3547 };
    -
    3548 
    -
    3549 //---------------------------------------------------------------------------
    -
    3550 // Zone name: America/Halifax
    -
    3551 // Eras: 1
    -
    3552 //---------------------------------------------------------------------------
    -
    3553 
    -
    3554 static const extended::Info::ZoneEra kZoneEraAmerica_Halifax[] ACE_TIME_PROGMEM = {
    -
    3555  // -4:00 Canada A%sT
    -
    3556  {
    -
    3557  &kZonePolicyCanada /*zonePolicy*/,
    -
    3558  "A%T" /*format*/,
    -
    3559  -16 /*offsetCode*/,
    -
    3560  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3561  127 /*untilYearTiny*/,
    -
    3562  1 /*untilMonth*/,
    -
    3563  1 /*untilDay*/,
    -
    3564  0 /*untilTimeCode*/,
    -
    3565  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3566  },
    -
    3567 
    -
    3568 };
    -
    3569 
    -
    3570 static const char kZoneNameAmerica_Halifax[] ACE_TIME_PROGMEM = "\x02" "Halifax";
    -
    3571 
    -
    3572 const extended::Info::ZoneInfo kZoneAmerica_Halifax ACE_TIME_PROGMEM = {
    -
    3573  kZoneNameAmerica_Halifax /*name*/,
    -
    3574  0xbc5b7183 /*zoneId*/,
    -
    3575  &kZoneContext /*zoneContext*/,
    -
    3576  1 /*numEras*/,
    -
    3577  kZoneEraAmerica_Halifax /*eras*/,
    -
    3578  nullptr /*targetInfo*/,
    -
    3579 };
    -
    3580 
    -
    3581 //---------------------------------------------------------------------------
    -
    3582 // Zone name: America/Havana
    -
    3583 // Eras: 1
    -
    3584 //---------------------------------------------------------------------------
    -
    3585 
    -
    3586 static const extended::Info::ZoneEra kZoneEraAmerica_Havana[] ACE_TIME_PROGMEM = {
    -
    3587  // -5:00 Cuba C%sT
    -
    3588  {
    -
    3589  &kZonePolicyCuba /*zonePolicy*/,
    -
    3590  "C%T" /*format*/,
    -
    3591  -20 /*offsetCode*/,
    -
    3592  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3593  127 /*untilYearTiny*/,
    -
    3594  1 /*untilMonth*/,
    -
    3595  1 /*untilDay*/,
    -
    3596  0 /*untilTimeCode*/,
    -
    3597  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3598  },
    -
    3599 
    -
    3600 };
    -
    3601 
    -
    3602 static const char kZoneNameAmerica_Havana[] ACE_TIME_PROGMEM = "\x02" "Havana";
    -
    3603 
    -
    3604 const extended::Info::ZoneInfo kZoneAmerica_Havana ACE_TIME_PROGMEM = {
    -
    3605  kZoneNameAmerica_Havana /*name*/,
    -
    3606  0xa0e15675 /*zoneId*/,
    -
    3607  &kZoneContext /*zoneContext*/,
    -
    3608  1 /*numEras*/,
    -
    3609  kZoneEraAmerica_Havana /*eras*/,
    -
    3610  nullptr /*targetInfo*/,
    -
    3611 };
    -
    3612 
    -
    3613 //---------------------------------------------------------------------------
    -
    3614 // Zone name: America/Hermosillo
    -
    3615 // Eras: 2
    -
    3616 //---------------------------------------------------------------------------
    -
    3617 
    -
    3618 static const extended::Info::ZoneEra kZoneEraAmerica_Hermosillo[] ACE_TIME_PROGMEM = {
    -
    3619  // -7:00 Mexico M%sT 1999
    -
    3620  {
    -
    3621  &kZonePolicyMexico /*zonePolicy*/,
    -
    3622  "M%T" /*format*/,
    -
    3623  -28 /*offsetCode*/,
    -
    3624  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3625  -101 /*untilYearTiny*/,
    -
    3626  1 /*untilMonth*/,
    -
    3627  1 /*untilDay*/,
    -
    3628  0 /*untilTimeCode*/,
    -
    3629  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3630  },
    -
    3631  // -7:00 - MST
    -
    3632  {
    -
    3633  nullptr /*zonePolicy*/,
    -
    3634  "MST" /*format*/,
    -
    3635  -28 /*offsetCode*/,
    -
    3636  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3637  127 /*untilYearTiny*/,
    -
    3638  1 /*untilMonth*/,
    -
    3639  1 /*untilDay*/,
    -
    3640  0 /*untilTimeCode*/,
    -
    3641  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3642  },
    -
    3643 
    -
    3644 };
    -
    3645 
    -
    3646 static const char kZoneNameAmerica_Hermosillo[] ACE_TIME_PROGMEM = "\x02" "Hermosillo";
    -
    3647 
    -
    3648 const extended::Info::ZoneInfo kZoneAmerica_Hermosillo ACE_TIME_PROGMEM = {
    -
    3649  kZoneNameAmerica_Hermosillo /*name*/,
    -
    3650  0x065d21c4 /*zoneId*/,
    -
    3651  &kZoneContext /*zoneContext*/,
    -
    3652  2 /*numEras*/,
    -
    3653  kZoneEraAmerica_Hermosillo /*eras*/,
    -
    3654  nullptr /*targetInfo*/,
    -
    3655 };
    -
    3656 
    -
    3657 //---------------------------------------------------------------------------
    -
    3658 // Zone name: America/Indiana/Indianapolis
    -
    3659 // Eras: 2
    -
    3660 //---------------------------------------------------------------------------
    -
    3661 
    -
    3662 static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = {
    -
    3663  // -5:00 - EST 2006
    -
    3664  {
    -
    3665  nullptr /*zonePolicy*/,
    -
    3666  "EST" /*format*/,
    -
    3667  -20 /*offsetCode*/,
    -
    3668  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3669  -94 /*untilYearTiny*/,
    -
    3670  1 /*untilMonth*/,
    -
    3671  1 /*untilDay*/,
    -
    3672  0 /*untilTimeCode*/,
    -
    3673  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3674  },
    -
    3675  // -5:00 US E%sT
    -
    3676  {
    -
    3677  &kZonePolicyUS /*zonePolicy*/,
    -
    3678  "E%T" /*format*/,
    -
    3679  -20 /*offsetCode*/,
    -
    3680  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3681  127 /*untilYearTiny*/,
    -
    3682  1 /*untilMonth*/,
    -
    3683  1 /*untilDay*/,
    -
    3684  0 /*untilTimeCode*/,
    -
    3685  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3686  },
    -
    3687 
    -
    3688 };
    -
    3689 
    -
    3690 static const char kZoneNameAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Indianapolis";
    -
    3691 
    -
    3692 const extended::Info::ZoneInfo kZoneAmerica_Indiana_Indianapolis ACE_TIME_PROGMEM = {
    -
    3693  kZoneNameAmerica_Indiana_Indianapolis /*name*/,
    -
    3694  0x28a669a4 /*zoneId*/,
    -
    3695  &kZoneContext /*zoneContext*/,
    -
    3696  2 /*numEras*/,
    -
    3697  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    3698  nullptr /*targetInfo*/,
    -
    3699 };
    -
    3700 
    -
    3701 //---------------------------------------------------------------------------
    -
    3702 // Zone name: America/Indiana/Knox
    -
    3703 // Eras: 2
    -
    3704 //---------------------------------------------------------------------------
    -
    3705 
    -
    3706 static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Knox[] ACE_TIME_PROGMEM = {
    -
    3707  // -5:00 - EST 2006 Apr 2 2:00
    -
    3708  {
    -
    3709  nullptr /*zonePolicy*/,
    -
    3710  "EST" /*format*/,
    -
    3711  -20 /*offsetCode*/,
    -
    3712  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3713  -94 /*untilYearTiny*/,
    -
    3714  4 /*untilMonth*/,
    -
    3715  2 /*untilDay*/,
    -
    3716  8 /*untilTimeCode*/,
    -
    3717  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3718  },
    -
    3719  // -6:00 US C%sT
    -
    3720  {
    -
    3721  &kZonePolicyUS /*zonePolicy*/,
    -
    3722  "C%T" /*format*/,
    -
    3723  -24 /*offsetCode*/,
    -
    3724  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3725  127 /*untilYearTiny*/,
    -
    3726  1 /*untilMonth*/,
    -
    3727  1 /*untilDay*/,
    -
    3728  0 /*untilTimeCode*/,
    -
    3729  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3730  },
    -
    3731 
    -
    3732 };
    -
    3733 
    -
    3734 static const char kZoneNameAmerica_Indiana_Knox[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Knox";
    -
    3735 
    -
    3736 const extended::Info::ZoneInfo kZoneAmerica_Indiana_Knox ACE_TIME_PROGMEM = {
    -
    3737  kZoneNameAmerica_Indiana_Knox /*name*/,
    -
    3738  0x6554adc9 /*zoneId*/,
    -
    3739  &kZoneContext /*zoneContext*/,
    -
    3740  2 /*numEras*/,
    -
    3741  kZoneEraAmerica_Indiana_Knox /*eras*/,
    -
    3742  nullptr /*targetInfo*/,
    -
    3743 };
    -
    3744 
    -
    3745 //---------------------------------------------------------------------------
    -
    3746 // Zone name: America/Indiana/Marengo
    -
    3747 // Eras: 2
    -
    3748 //---------------------------------------------------------------------------
    -
    3749 
    -
    3750 static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = {
    -
    3751  // -5:00 - EST 2006
    -
    3752  {
    -
    3753  nullptr /*zonePolicy*/,
    -
    3754  "EST" /*format*/,
    -
    3755  -20 /*offsetCode*/,
    -
    3756  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3757  -94 /*untilYearTiny*/,
    -
    3758  1 /*untilMonth*/,
    -
    3759  1 /*untilDay*/,
    -
    3760  0 /*untilTimeCode*/,
    -
    3761  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3762  },
    -
    3763  // -5:00 US E%sT
    -
    3764  {
    -
    3765  &kZonePolicyUS /*zonePolicy*/,
    -
    3766  "E%T" /*format*/,
    -
    3767  -20 /*offsetCode*/,
    -
    3768  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3769  127 /*untilYearTiny*/,
    -
    3770  1 /*untilMonth*/,
    -
    3771  1 /*untilDay*/,
    -
    3772  0 /*untilTimeCode*/,
    -
    3773  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3774  },
    -
    3775 
    -
    3776 };
    -
    3777 
    -
    3778 static const char kZoneNameAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Marengo";
    -
    3779 
    -
    3780 const extended::Info::ZoneInfo kZoneAmerica_Indiana_Marengo ACE_TIME_PROGMEM = {
    -
    3781  kZoneNameAmerica_Indiana_Marengo /*name*/,
    -
    3782  0x2feeee72 /*zoneId*/,
    -
    3783  &kZoneContext /*zoneContext*/,
    -
    3784  2 /*numEras*/,
    -
    3785  kZoneEraAmerica_Indiana_Marengo /*eras*/,
    -
    3786  nullptr /*targetInfo*/,
    -
    3787 };
    -
    3788 
    -
    3789 //---------------------------------------------------------------------------
    -
    3790 // Zone name: America/Indiana/Petersburg
    -
    3791 // Eras: 3
    -
    3792 //---------------------------------------------------------------------------
    -
    3793 
    -
    3794 static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Petersburg[] ACE_TIME_PROGMEM = {
    -
    3795  // -5:00 - EST 2006 Apr 2 2:00
    -
    3796  {
    -
    3797  nullptr /*zonePolicy*/,
    -
    3798  "EST" /*format*/,
    -
    3799  -20 /*offsetCode*/,
    -
    3800  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3801  -94 /*untilYearTiny*/,
    -
    3802  4 /*untilMonth*/,
    -
    3803  2 /*untilDay*/,
    -
    3804  8 /*untilTimeCode*/,
    -
    3805  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3806  },
    -
    3807  // -6:00 US C%sT 2007 Nov 4 2:00
    -
    3808  {
    -
    3809  &kZonePolicyUS /*zonePolicy*/,
    -
    3810  "C%T" /*format*/,
    -
    3811  -24 /*offsetCode*/,
    -
    3812  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3813  -93 /*untilYearTiny*/,
    -
    3814  11 /*untilMonth*/,
    -
    3815  4 /*untilDay*/,
    -
    3816  8 /*untilTimeCode*/,
    -
    3817  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3818  },
    -
    3819  // -5:00 US E%sT
    -
    3820  {
    -
    3821  &kZonePolicyUS /*zonePolicy*/,
    -
    3822  "E%T" /*format*/,
    -
    3823  -20 /*offsetCode*/,
    -
    3824  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3825  127 /*untilYearTiny*/,
    -
    3826  1 /*untilMonth*/,
    -
    3827  1 /*untilDay*/,
    -
    3828  0 /*untilTimeCode*/,
    -
    3829  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3830  },
    -
    3831 
    -
    3832 };
    -
    3833 
    -
    3834 static const char kZoneNameAmerica_Indiana_Petersburg[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Petersburg";
    -
    3835 
    -
    3836 const extended::Info::ZoneInfo kZoneAmerica_Indiana_Petersburg ACE_TIME_PROGMEM = {
    -
    3837  kZoneNameAmerica_Indiana_Petersburg /*name*/,
    -
    3838  0x94ac7acc /*zoneId*/,
    -
    3839  &kZoneContext /*zoneContext*/,
    -
    3840  3 /*numEras*/,
    -
    3841  kZoneEraAmerica_Indiana_Petersburg /*eras*/,
    -
    3842  nullptr /*targetInfo*/,
    -
    3843 };
    -
    3844 
    -
    3845 //---------------------------------------------------------------------------
    -
    3846 // Zone name: America/Indiana/Tell_City
    -
    3847 // Eras: 2
    -
    3848 //---------------------------------------------------------------------------
    -
    3849 
    -
    3850 static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Tell_City[] ACE_TIME_PROGMEM = {
    -
    3851  // -5:00 - EST 2006 Apr 2 2:00
    -
    3852  {
    -
    3853  nullptr /*zonePolicy*/,
    -
    3854  "EST" /*format*/,
    -
    3855  -20 /*offsetCode*/,
    -
    3856  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3857  -94 /*untilYearTiny*/,
    -
    3858  4 /*untilMonth*/,
    -
    3859  2 /*untilDay*/,
    -
    3860  8 /*untilTimeCode*/,
    -
    3861  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3862  },
    -
    3863  // -6:00 US C%sT
    -
    3864  {
    -
    3865  &kZonePolicyUS /*zonePolicy*/,
    -
    3866  "C%T" /*format*/,
    -
    3867  -24 /*offsetCode*/,
    -
    3868  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3869  127 /*untilYearTiny*/,
    -
    3870  1 /*untilMonth*/,
    -
    3871  1 /*untilDay*/,
    -
    3872  0 /*untilTimeCode*/,
    -
    3873  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3874  },
    -
    3875 
    -
    3876 };
    -
    3877 
    -
    3878 static const char kZoneNameAmerica_Indiana_Tell_City[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Tell_City";
    -
    3879 
    -
    3880 const extended::Info::ZoneInfo kZoneAmerica_Indiana_Tell_City ACE_TIME_PROGMEM = {
    -
    3881  kZoneNameAmerica_Indiana_Tell_City /*name*/,
    -
    3882  0x09263612 /*zoneId*/,
    -
    3883  &kZoneContext /*zoneContext*/,
    -
    3884  2 /*numEras*/,
    -
    3885  kZoneEraAmerica_Indiana_Tell_City /*eras*/,
    -
    3886  nullptr /*targetInfo*/,
    -
    3887 };
    -
    3888 
    -
    3889 //---------------------------------------------------------------------------
    -
    3890 // Zone name: America/Indiana/Vevay
    -
    3891 // Eras: 2
    -
    3892 //---------------------------------------------------------------------------
    -
    3893 
    -
    3894 static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = {
    -
    3895  // -5:00 - EST 2006
    -
    3896  {
    -
    3897  nullptr /*zonePolicy*/,
    -
    3898  "EST" /*format*/,
    -
    3899  -20 /*offsetCode*/,
    -
    3900  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3901  -94 /*untilYearTiny*/,
    -
    3902  1 /*untilMonth*/,
    -
    3903  1 /*untilDay*/,
    -
    3904  0 /*untilTimeCode*/,
    -
    3905  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3906  },
    -
    3907  // -5:00 US E%sT
    -
    3908  {
    -
    3909  &kZonePolicyUS /*zonePolicy*/,
    -
    3910  "E%T" /*format*/,
    -
    3911  -20 /*offsetCode*/,
    -
    3912  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3913  127 /*untilYearTiny*/,
    -
    3914  1 /*untilMonth*/,
    -
    3915  1 /*untilDay*/,
    -
    3916  0 /*untilTimeCode*/,
    -
    3917  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3918  },
    -
    3919 
    -
    3920 };
    -
    3921 
    -
    3922 static const char kZoneNameAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Vevay";
    -
    3923 
    -
    3924 const extended::Info::ZoneInfo kZoneAmerica_Indiana_Vevay ACE_TIME_PROGMEM = {
    -
    3925  kZoneNameAmerica_Indiana_Vevay /*name*/,
    -
    3926  0x10aca054 /*zoneId*/,
    -
    3927  &kZoneContext /*zoneContext*/,
    -
    3928  2 /*numEras*/,
    -
    3929  kZoneEraAmerica_Indiana_Vevay /*eras*/,
    -
    3930  nullptr /*targetInfo*/,
    -
    3931 };
    -
    3932 
    -
    3933 //---------------------------------------------------------------------------
    -
    3934 // Zone name: America/Indiana/Vincennes
    -
    3935 // Eras: 3
    -
    3936 //---------------------------------------------------------------------------
    -
    3937 
    -
    3938 static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Vincennes[] ACE_TIME_PROGMEM = {
    -
    3939  // -5:00 - EST 2006 Apr 2 2:00
    -
    3940  {
    -
    3941  nullptr /*zonePolicy*/,
    -
    3942  "EST" /*format*/,
    -
    3943  -20 /*offsetCode*/,
    -
    3944  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3945  -94 /*untilYearTiny*/,
    -
    3946  4 /*untilMonth*/,
    -
    3947  2 /*untilDay*/,
    -
    3948  8 /*untilTimeCode*/,
    -
    3949  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3950  },
    -
    3951  // -6:00 US C%sT 2007 Nov 4 2:00
    -
    3952  {
    -
    3953  &kZonePolicyUS /*zonePolicy*/,
    -
    3954  "C%T" /*format*/,
    -
    3955  -24 /*offsetCode*/,
    -
    3956  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3957  -93 /*untilYearTiny*/,
    -
    3958  11 /*untilMonth*/,
    -
    3959  4 /*untilDay*/,
    -
    3960  8 /*untilTimeCode*/,
    -
    3961  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3962  },
    -
    3963  // -5:00 US E%sT
    -
    3964  {
    -
    3965  &kZonePolicyUS /*zonePolicy*/,
    -
    3966  "E%T" /*format*/,
    -
    3967  -20 /*offsetCode*/,
    -
    3968  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    3969  127 /*untilYearTiny*/,
    -
    3970  1 /*untilMonth*/,
    -
    3971  1 /*untilDay*/,
    -
    3972  0 /*untilTimeCode*/,
    -
    3973  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    3974  },
    -
    3975 
    -
    3976 };
    -
    3977 
    -
    3978 static const char kZoneNameAmerica_Indiana_Vincennes[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Vincennes";
    -
    3979 
    -
    3980 const extended::Info::ZoneInfo kZoneAmerica_Indiana_Vincennes ACE_TIME_PROGMEM = {
    -
    3981  kZoneNameAmerica_Indiana_Vincennes /*name*/,
    -
    3982  0x28a0b212 /*zoneId*/,
    -
    3983  &kZoneContext /*zoneContext*/,
    -
    3984  3 /*numEras*/,
    -
    3985  kZoneEraAmerica_Indiana_Vincennes /*eras*/,
    -
    3986  nullptr /*targetInfo*/,
    -
    3987 };
    -
    3988 
    -
    3989 //---------------------------------------------------------------------------
    -
    3990 // Zone name: America/Indiana/Winamac
    -
    3991 // Eras: 3
    -
    3992 //---------------------------------------------------------------------------
    -
    3993 
    -
    3994 static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Winamac[] ACE_TIME_PROGMEM = {
    -
    3995  // -5:00 - EST 2006 Apr 2 2:00
    -
    3996  {
    -
    3997  nullptr /*zonePolicy*/,
    -
    3998  "EST" /*format*/,
    -
    3999  -20 /*offsetCode*/,
    -
    4000  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4001  -94 /*untilYearTiny*/,
    -
    4002  4 /*untilMonth*/,
    -
    4003  2 /*untilDay*/,
    -
    4004  8 /*untilTimeCode*/,
    -
    4005  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4006  },
    -
    4007  // -6:00 US C%sT 2007 Mar 11 2:00
    -
    4008  {
    -
    4009  &kZonePolicyUS /*zonePolicy*/,
    -
    4010  "C%T" /*format*/,
    -
    4011  -24 /*offsetCode*/,
    -
    4012  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4013  -93 /*untilYearTiny*/,
    -
    4014  3 /*untilMonth*/,
    -
    4015  11 /*untilDay*/,
    -
    4016  8 /*untilTimeCode*/,
    -
    4017  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4018  },
    -
    4019  // -5:00 US E%sT
    -
    4020  {
    -
    4021  &kZonePolicyUS /*zonePolicy*/,
    -
    4022  "E%T" /*format*/,
    -
    4023  -20 /*offsetCode*/,
    -
    4024  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4025  127 /*untilYearTiny*/,
    -
    4026  1 /*untilMonth*/,
    -
    4027  1 /*untilDay*/,
    -
    4028  0 /*untilTimeCode*/,
    -
    4029  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4030  },
    -
    4031 
    -
    4032 };
    -
    4033 
    -
    4034 static const char kZoneNameAmerica_Indiana_Winamac[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Winamac";
    -
    4035 
    -
    4036 const extended::Info::ZoneInfo kZoneAmerica_Indiana_Winamac ACE_TIME_PROGMEM = {
    -
    4037  kZoneNameAmerica_Indiana_Winamac /*name*/,
    -
    4038  0x4413fa69 /*zoneId*/,
    -
    4039  &kZoneContext /*zoneContext*/,
    -
    4040  3 /*numEras*/,
    -
    4041  kZoneEraAmerica_Indiana_Winamac /*eras*/,
    -
    4042  nullptr /*targetInfo*/,
    -
    4043 };
    -
    4044 
    -
    4045 //---------------------------------------------------------------------------
    -
    4046 // Zone name: America/Inuvik
    -
    4047 // Eras: 1
    -
    4048 //---------------------------------------------------------------------------
    -
    4049 
    -
    4050 static const extended::Info::ZoneEra kZoneEraAmerica_Inuvik[] ACE_TIME_PROGMEM = {
    -
    4051  // -7:00 Canada M%sT
    -
    4052  {
    -
    4053  &kZonePolicyCanada /*zonePolicy*/,
    -
    4054  "M%T" /*format*/,
    -
    4055  -28 /*offsetCode*/,
    -
    4056  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4057  127 /*untilYearTiny*/,
    -
    4058  1 /*untilMonth*/,
    -
    4059  1 /*untilDay*/,
    -
    4060  0 /*untilTimeCode*/,
    -
    4061  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4062  },
    -
    4063 
    -
    4064 };
    -
    4065 
    -
    4066 static const char kZoneNameAmerica_Inuvik[] ACE_TIME_PROGMEM = "\x02" "Inuvik";
    -
    4067 
    -
    4068 const extended::Info::ZoneInfo kZoneAmerica_Inuvik ACE_TIME_PROGMEM = {
    -
    4069  kZoneNameAmerica_Inuvik /*name*/,
    -
    4070  0xa42189fc /*zoneId*/,
    -
    4071  &kZoneContext /*zoneContext*/,
    -
    4072  1 /*numEras*/,
    -
    4073  kZoneEraAmerica_Inuvik /*eras*/,
    -
    4074  nullptr /*targetInfo*/,
    -
    4075 };
    -
    4076 
    -
    4077 //---------------------------------------------------------------------------
    -
    4078 // Zone name: America/Iqaluit
    -
    4079 // Eras: 3
    -
    4080 //---------------------------------------------------------------------------
    -
    4081 
    -
    4082 static const extended::Info::ZoneEra kZoneEraAmerica_Iqaluit[] ACE_TIME_PROGMEM = {
    -
    4083  // -5:00 NT_YK E%sT 1999 Oct 31 2:00
    -
    4084  {
    -
    4085  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    4086  "E%T" /*format*/,
    -
    4087  -20 /*offsetCode*/,
    -
    4088  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4089  -101 /*untilYearTiny*/,
    -
    4090  10 /*untilMonth*/,
    -
    4091  31 /*untilDay*/,
    -
    4092  8 /*untilTimeCode*/,
    -
    4093  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4094  },
    -
    4095  // -6:00 Canada C%sT 2000 Oct 29 2:00
    -
    4096  {
    -
    4097  &kZonePolicyCanada /*zonePolicy*/,
    -
    4098  "C%T" /*format*/,
    -
    4099  -24 /*offsetCode*/,
    -
    4100  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4101  -100 /*untilYearTiny*/,
    -
    4102  10 /*untilMonth*/,
    -
    4103  29 /*untilDay*/,
    -
    4104  8 /*untilTimeCode*/,
    -
    4105  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4106  },
    -
    4107  // -5:00 Canada E%sT
    -
    4108  {
    -
    4109  &kZonePolicyCanada /*zonePolicy*/,
    -
    4110  "E%T" /*format*/,
    -
    4111  -20 /*offsetCode*/,
    -
    4112  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4113  127 /*untilYearTiny*/,
    -
    4114  1 /*untilMonth*/,
    -
    4115  1 /*untilDay*/,
    -
    4116  0 /*untilTimeCode*/,
    -
    4117  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4118  },
    -
    4119 
    -
    4120 };
    -
    4121 
    -
    4122 static const char kZoneNameAmerica_Iqaluit[] ACE_TIME_PROGMEM = "\x02" "Iqaluit";
    -
    4123 
    -
    4124 const extended::Info::ZoneInfo kZoneAmerica_Iqaluit ACE_TIME_PROGMEM = {
    -
    4125  kZoneNameAmerica_Iqaluit /*name*/,
    -
    4126  0x2de310bf /*zoneId*/,
    -
    4127  &kZoneContext /*zoneContext*/,
    -
    4128  3 /*numEras*/,
    -
    4129  kZoneEraAmerica_Iqaluit /*eras*/,
    -
    4130  nullptr /*targetInfo*/,
    -
    4131 };
    -
    4132 
    -
    4133 //---------------------------------------------------------------------------
    -
    4134 // Zone name: America/Jamaica
    -
    4135 // Eras: 1
    -
    4136 //---------------------------------------------------------------------------
    -
    4137 
    -
    4138 static const extended::Info::ZoneEra kZoneEraAmerica_Jamaica[] ACE_TIME_PROGMEM = {
    -
    4139  // -5:00 - EST
    -
    4140  {
    -
    4141  nullptr /*zonePolicy*/,
    -
    4142  "EST" /*format*/,
    -
    4143  -20 /*offsetCode*/,
    -
    4144  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4145  127 /*untilYearTiny*/,
    -
    4146  1 /*untilMonth*/,
    -
    4147  1 /*untilDay*/,
    -
    4148  0 /*untilTimeCode*/,
    -
    4149  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4150  },
    -
    4151 
    -
    4152 };
    -
    4153 
    -
    4154 static const char kZoneNameAmerica_Jamaica[] ACE_TIME_PROGMEM = "\x02" "Jamaica";
    -
    4155 
    -
    4156 const extended::Info::ZoneInfo kZoneAmerica_Jamaica ACE_TIME_PROGMEM = {
    -
    4157  kZoneNameAmerica_Jamaica /*name*/,
    -
    4158  0x565dad6c /*zoneId*/,
    -
    4159  &kZoneContext /*zoneContext*/,
    -
    4160  1 /*numEras*/,
    -
    4161  kZoneEraAmerica_Jamaica /*eras*/,
    -
    4162  nullptr /*targetInfo*/,
    -
    4163 };
    -
    4164 
    -
    4165 //---------------------------------------------------------------------------
    -
    4166 // Zone name: America/Juneau
    -
    4167 // Eras: 1
    -
    4168 //---------------------------------------------------------------------------
    -
    4169 
    -
    4170 static const extended::Info::ZoneEra kZoneEraAmerica_Juneau[] ACE_TIME_PROGMEM = {
    -
    4171  // -9:00 US AK%sT
    -
    4172  {
    -
    4173  &kZonePolicyUS /*zonePolicy*/,
    -
    4174  "AK%T" /*format*/,
    -
    4175  -36 /*offsetCode*/,
    -
    4176  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4177  127 /*untilYearTiny*/,
    -
    4178  1 /*untilMonth*/,
    -
    4179  1 /*untilDay*/,
    -
    4180  0 /*untilTimeCode*/,
    -
    4181  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4182  },
    -
    4183 
    -
    4184 };
    -
    4185 
    -
    4186 static const char kZoneNameAmerica_Juneau[] ACE_TIME_PROGMEM = "\x02" "Juneau";
    -
    4187 
    -
    4188 const extended::Info::ZoneInfo kZoneAmerica_Juneau ACE_TIME_PROGMEM = {
    -
    4189  kZoneNameAmerica_Juneau /*name*/,
    -
    4190  0xa6f13e2e /*zoneId*/,
    -
    4191  &kZoneContext /*zoneContext*/,
    -
    4192  1 /*numEras*/,
    -
    4193  kZoneEraAmerica_Juneau /*eras*/,
    -
    4194  nullptr /*targetInfo*/,
    -
    4195 };
    -
    4196 
    -
    4197 //---------------------------------------------------------------------------
    -
    4198 // Zone name: America/Kentucky/Louisville
    -
    4199 // Eras: 1
    -
    4200 //---------------------------------------------------------------------------
    -
    4201 
    -
    4202 static const extended::Info::ZoneEra kZoneEraAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = {
    -
    4203  // -5:00 US E%sT
    -
    4204  {
    -
    4205  &kZonePolicyUS /*zonePolicy*/,
    -
    4206  "E%T" /*format*/,
    -
    4207  -20 /*offsetCode*/,
    -
    4208  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4209  127 /*untilYearTiny*/,
    -
    4210  1 /*untilMonth*/,
    -
    4211  1 /*untilDay*/,
    -
    4212  0 /*untilTimeCode*/,
    -
    4213  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4214  },
    -
    4215 
    -
    4216 };
    -
    4217 
    -
    4218 static const char kZoneNameAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = "\x02" "Kentucky/Louisville";
    -
    4219 
    -
    4220 const extended::Info::ZoneInfo kZoneAmerica_Kentucky_Louisville ACE_TIME_PROGMEM = {
    -
    4221  kZoneNameAmerica_Kentucky_Louisville /*name*/,
    -
    4222  0x1a21024b /*zoneId*/,
    -
    4223  &kZoneContext /*zoneContext*/,
    -
    4224  1 /*numEras*/,
    -
    4225  kZoneEraAmerica_Kentucky_Louisville /*eras*/,
    -
    4226  nullptr /*targetInfo*/,
    -
    4227 };
    -
    4228 
    -
    4229 //---------------------------------------------------------------------------
    -
    4230 // Zone name: America/Kentucky/Monticello
    -
    4231 // Eras: 2
    -
    4232 //---------------------------------------------------------------------------
    -
    4233 
    -
    4234 static const extended::Info::ZoneEra kZoneEraAmerica_Kentucky_Monticello[] ACE_TIME_PROGMEM = {
    -
    4235  // -6:00 US C%sT 2000 Oct 29 2:00
    -
    4236  {
    -
    4237  &kZonePolicyUS /*zonePolicy*/,
    -
    4238  "C%T" /*format*/,
    -
    4239  -24 /*offsetCode*/,
    -
    4240  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4241  -100 /*untilYearTiny*/,
    -
    4242  10 /*untilMonth*/,
    -
    4243  29 /*untilDay*/,
    -
    4244  8 /*untilTimeCode*/,
    -
    4245  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4246  },
    -
    4247  // -5:00 US E%sT
    -
    4248  {
    -
    4249  &kZonePolicyUS /*zonePolicy*/,
    -
    4250  "E%T" /*format*/,
    -
    4251  -20 /*offsetCode*/,
    -
    4252  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4253  127 /*untilYearTiny*/,
    -
    4254  1 /*untilMonth*/,
    -
    4255  1 /*untilDay*/,
    -
    4256  0 /*untilTimeCode*/,
    -
    4257  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4258  },
    -
    4259 
    -
    4260 };
    -
    4261 
    -
    4262 static const char kZoneNameAmerica_Kentucky_Monticello[] ACE_TIME_PROGMEM = "\x02" "Kentucky/Monticello";
    -
    4263 
    -
    4264 const extended::Info::ZoneInfo kZoneAmerica_Kentucky_Monticello ACE_TIME_PROGMEM = {
    -
    4265  kZoneNameAmerica_Kentucky_Monticello /*name*/,
    -
    4266  0xde71c439 /*zoneId*/,
    -
    4267  &kZoneContext /*zoneContext*/,
    -
    4268  2 /*numEras*/,
    -
    4269  kZoneEraAmerica_Kentucky_Monticello /*eras*/,
    -
    4270  nullptr /*targetInfo*/,
    -
    4271 };
    -
    4272 
    -
    4273 //---------------------------------------------------------------------------
    -
    4274 // Zone name: America/La_Paz
    -
    4275 // Eras: 1
    -
    4276 //---------------------------------------------------------------------------
    -
    4277 
    -
    4278 static const extended::Info::ZoneEra kZoneEraAmerica_La_Paz[] ACE_TIME_PROGMEM = {
    -
    4279  // -4:00 - %z
    -
    4280  {
    -
    4281  nullptr /*zonePolicy*/,
    -
    4282  "" /*format*/,
    -
    4283  -16 /*offsetCode*/,
    -
    4284  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4285  127 /*untilYearTiny*/,
    -
    4286  1 /*untilMonth*/,
    -
    4287  1 /*untilDay*/,
    -
    4288  0 /*untilTimeCode*/,
    -
    4289  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4290  },
    -
    4291 
    -
    4292 };
    -
    4293 
    -
    4294 static const char kZoneNameAmerica_La_Paz[] ACE_TIME_PROGMEM = "\x02" "La_Paz";
    -
    4295 
    -
    4296 const extended::Info::ZoneInfo kZoneAmerica_La_Paz ACE_TIME_PROGMEM = {
    -
    4297  kZoneNameAmerica_La_Paz /*name*/,
    -
    4298  0xaa29125d /*zoneId*/,
    -
    4299  &kZoneContext /*zoneContext*/,
    -
    4300  1 /*numEras*/,
    -
    4301  kZoneEraAmerica_La_Paz /*eras*/,
    -
    4302  nullptr /*targetInfo*/,
    -
    4303 };
    -
    4304 
    -
    4305 //---------------------------------------------------------------------------
    -
    4306 // Zone name: America/Lima
    -
    4307 // Eras: 1
    -
    4308 //---------------------------------------------------------------------------
    -
    4309 
    -
    4310 static const extended::Info::ZoneEra kZoneEraAmerica_Lima[] ACE_TIME_PROGMEM = {
    -
    4311  // -5:00 Peru %z
    -
    4312  {
    -
    4313  &kZonePolicyPeru /*zonePolicy*/,
    -
    4314  "" /*format*/,
    -
    4315  -20 /*offsetCode*/,
    -
    4316  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4317  127 /*untilYearTiny*/,
    -
    4318  1 /*untilMonth*/,
    -
    4319  1 /*untilDay*/,
    -
    4320  0 /*untilTimeCode*/,
    -
    4321  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4322  },
    -
    4323 
    -
    4324 };
    -
    4325 
    -
    4326 static const char kZoneNameAmerica_Lima[] ACE_TIME_PROGMEM = "\x02" "Lima";
    -
    4327 
    -
    4328 const extended::Info::ZoneInfo kZoneAmerica_Lima ACE_TIME_PROGMEM = {
    -
    4329  kZoneNameAmerica_Lima /*name*/,
    -
    4330  0x980468c9 /*zoneId*/,
    -
    4331  &kZoneContext /*zoneContext*/,
    -
    4332  1 /*numEras*/,
    -
    4333  kZoneEraAmerica_Lima /*eras*/,
    -
    4334  nullptr /*targetInfo*/,
    -
    4335 };
    -
    4336 
    -
    4337 //---------------------------------------------------------------------------
    -
    4338 // Zone name: America/Los_Angeles
    -
    4339 // Eras: 1
    -
    4340 //---------------------------------------------------------------------------
    -
    4341 
    -
    4342 static const extended::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = {
    -
    4343  // -8:00 US P%sT
    -
    4344  {
    -
    4345  &kZonePolicyUS /*zonePolicy*/,
    -
    4346  "P%T" /*format*/,
    -
    4347  -32 /*offsetCode*/,
    -
    4348  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4349  127 /*untilYearTiny*/,
    -
    4350  1 /*untilMonth*/,
    -
    4351  1 /*untilDay*/,
    -
    4352  0 /*untilTimeCode*/,
    -
    4353  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4354  },
    -
    4355 
    -
    4356 };
    -
    4357 
    -
    4358 static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "\x02" "Los_Angeles";
    -
    4359 
    -
    4360 const extended::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = {
    -
    4361  kZoneNameAmerica_Los_Angeles /*name*/,
    -
    4362  0xb7f7e8f2 /*zoneId*/,
    -
    4363  &kZoneContext /*zoneContext*/,
    -
    4364  1 /*numEras*/,
    -
    4365  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    4366  nullptr /*targetInfo*/,
    -
    4367 };
    -
    4368 
    -
    4369 //---------------------------------------------------------------------------
    -
    4370 // Zone name: America/Maceio
    -
    4371 // Eras: 5
    -
    4372 //---------------------------------------------------------------------------
    -
    4373 
    -
    4374 static const extended::Info::ZoneEra kZoneEraAmerica_Maceio[] ACE_TIME_PROGMEM = {
    -
    4375  // -3:00 - %z 1999 Sep 30
    -
    4376  {
    -
    4377  nullptr /*zonePolicy*/,
    -
    4378  "" /*format*/,
    -
    4379  -12 /*offsetCode*/,
    -
    4380  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4381  -101 /*untilYearTiny*/,
    -
    4382  9 /*untilMonth*/,
    -
    4383  30 /*untilDay*/,
    -
    4384  0 /*untilTimeCode*/,
    -
    4385  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4386  },
    -
    4387  // -3:00 Brazil %z 2000 Oct 22
    -
    4388  {
    -
    4389  &kZonePolicyBrazil /*zonePolicy*/,
    -
    4390  "" /*format*/,
    -
    4391  -12 /*offsetCode*/,
    -
    4392  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4393  -100 /*untilYearTiny*/,
    -
    4394  10 /*untilMonth*/,
    -
    4395  22 /*untilDay*/,
    -
    4396  0 /*untilTimeCode*/,
    -
    4397  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4398  },
    -
    4399  // -3:00 - %z 2001 Sep 13
    -
    4400  {
    -
    4401  nullptr /*zonePolicy*/,
    -
    4402  "" /*format*/,
    -
    4403  -12 /*offsetCode*/,
    -
    4404  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4405  -99 /*untilYearTiny*/,
    -
    4406  9 /*untilMonth*/,
    -
    4407  13 /*untilDay*/,
    -
    4408  0 /*untilTimeCode*/,
    -
    4409  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4410  },
    -
    4411  // -3:00 Brazil %z 2002 Oct 1
    -
    4412  {
    -
    4413  &kZonePolicyBrazil /*zonePolicy*/,
    -
    4414  "" /*format*/,
    -
    4415  -12 /*offsetCode*/,
    -
    4416  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4417  -98 /*untilYearTiny*/,
    -
    4418  10 /*untilMonth*/,
    -
    4419  1 /*untilDay*/,
    -
    4420  0 /*untilTimeCode*/,
    -
    4421  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4422  },
    -
    4423  // -3:00 - %z
    -
    4424  {
    -
    4425  nullptr /*zonePolicy*/,
    -
    4426  "" /*format*/,
    -
    4427  -12 /*offsetCode*/,
    -
    4428  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4429  127 /*untilYearTiny*/,
    -
    4430  1 /*untilMonth*/,
    -
    4431  1 /*untilDay*/,
    -
    4432  0 /*untilTimeCode*/,
    -
    4433  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4434  },
    -
    4435 
    -
    4436 };
    -
    4437 
    -
    4438 static const char kZoneNameAmerica_Maceio[] ACE_TIME_PROGMEM = "\x02" "Maceio";
    -
    4439 
    -
    4440 const extended::Info::ZoneInfo kZoneAmerica_Maceio ACE_TIME_PROGMEM = {
    -
    4441  kZoneNameAmerica_Maceio /*name*/,
    -
    4442  0xac80c6d4 /*zoneId*/,
    -
    4443  &kZoneContext /*zoneContext*/,
    -
    4444  5 /*numEras*/,
    -
    4445  kZoneEraAmerica_Maceio /*eras*/,
    -
    4446  nullptr /*targetInfo*/,
    -
    4447 };
    -
    4448 
    -
    4449 //---------------------------------------------------------------------------
    -
    4450 // Zone name: America/Managua
    -
    4451 // Eras: 1
    -
    4452 //---------------------------------------------------------------------------
    -
    4453 
    -
    4454 static const extended::Info::ZoneEra kZoneEraAmerica_Managua[] ACE_TIME_PROGMEM = {
    -
    4455  // -6:00 Nic C%sT
    -
    4456  {
    -
    4457  &kZonePolicyNic /*zonePolicy*/,
    -
    4458  "C%T" /*format*/,
    -
    4459  -24 /*offsetCode*/,
    -
    4460  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4461  127 /*untilYearTiny*/,
    -
    4462  1 /*untilMonth*/,
    -
    4463  1 /*untilDay*/,
    -
    4464  0 /*untilTimeCode*/,
    -
    4465  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4466  },
    -
    4467 
    -
    4468 };
    -
    4469 
    -
    4470 static const char kZoneNameAmerica_Managua[] ACE_TIME_PROGMEM = "\x02" "Managua";
    -
    4471 
    -
    4472 const extended::Info::ZoneInfo kZoneAmerica_Managua ACE_TIME_PROGMEM = {
    -
    4473  kZoneNameAmerica_Managua /*name*/,
    -
    4474  0x3d5e7600 /*zoneId*/,
    -
    4475  &kZoneContext /*zoneContext*/,
    -
    4476  1 /*numEras*/,
    -
    4477  kZoneEraAmerica_Managua /*eras*/,
    -
    4478  nullptr /*targetInfo*/,
    -
    4479 };
    -
    4480 
    -
    4481 //---------------------------------------------------------------------------
    -
    4482 // Zone name: America/Manaus
    -
    4483 // Eras: 1
    -
    4484 //---------------------------------------------------------------------------
    -
    4485 
    -
    4486 static const extended::Info::ZoneEra kZoneEraAmerica_Manaus[] ACE_TIME_PROGMEM = {
    -
    4487  // -4:00 - %z
    -
    4488  {
    -
    4489  nullptr /*zonePolicy*/,
    -
    4490  "" /*format*/,
    -
    4491  -16 /*offsetCode*/,
    -
    4492  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4493  127 /*untilYearTiny*/,
    -
    4494  1 /*untilMonth*/,
    -
    4495  1 /*untilDay*/,
    -
    4496  0 /*untilTimeCode*/,
    -
    4497  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4498  },
    -
    4499 
    -
    4500 };
    -
    4501 
    -
    4502 static const char kZoneNameAmerica_Manaus[] ACE_TIME_PROGMEM = "\x02" "Manaus";
    -
    4503 
    -
    4504 const extended::Info::ZoneInfo kZoneAmerica_Manaus ACE_TIME_PROGMEM = {
    -
    4505  kZoneNameAmerica_Manaus /*name*/,
    -
    4506  0xac86bf8b /*zoneId*/,
    -
    4507  &kZoneContext /*zoneContext*/,
    -
    4508  1 /*numEras*/,
    -
    4509  kZoneEraAmerica_Manaus /*eras*/,
    -
    4510  nullptr /*targetInfo*/,
    -
    4511 };
    -
    4512 
    -
    4513 //---------------------------------------------------------------------------
    -
    4514 // Zone name: America/Martinique
    -
    4515 // Eras: 1
    -
    4516 //---------------------------------------------------------------------------
    -
    4517 
    -
    4518 static const extended::Info::ZoneEra kZoneEraAmerica_Martinique[] ACE_TIME_PROGMEM = {
    -
    4519  // -4:00 - AST
    -
    4520  {
    -
    4521  nullptr /*zonePolicy*/,
    -
    4522  "AST" /*format*/,
    -
    4523  -16 /*offsetCode*/,
    -
    4524  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4525  127 /*untilYearTiny*/,
    -
    4526  1 /*untilMonth*/,
    -
    4527  1 /*untilDay*/,
    -
    4528  0 /*untilTimeCode*/,
    -
    4529  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4530  },
    -
    4531 
    -
    4532 };
    -
    4533 
    -
    4534 static const char kZoneNameAmerica_Martinique[] ACE_TIME_PROGMEM = "\x02" "Martinique";
    -
    4535 
    -
    4536 const extended::Info::ZoneInfo kZoneAmerica_Martinique ACE_TIME_PROGMEM = {
    -
    4537  kZoneNameAmerica_Martinique /*name*/,
    -
    4538  0x551e84c5 /*zoneId*/,
    -
    4539  &kZoneContext /*zoneContext*/,
    -
    4540  1 /*numEras*/,
    -
    4541  kZoneEraAmerica_Martinique /*eras*/,
    -
    4542  nullptr /*targetInfo*/,
    -
    4543 };
    -
    4544 
    -
    4545 //---------------------------------------------------------------------------
    -
    4546 // Zone name: America/Matamoros
    -
    4547 // Eras: 2
    -
    4548 //---------------------------------------------------------------------------
    -
    4549 
    -
    4550 static const extended::Info::ZoneEra kZoneEraAmerica_Matamoros[] ACE_TIME_PROGMEM = {
    -
    4551  // -6:00 Mexico C%sT 2010
    -
    4552  {
    -
    4553  &kZonePolicyMexico /*zonePolicy*/,
    -
    4554  "C%T" /*format*/,
    -
    4555  -24 /*offsetCode*/,
    -
    4556  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4557  -90 /*untilYearTiny*/,
    -
    4558  1 /*untilMonth*/,
    -
    4559  1 /*untilDay*/,
    -
    4560  0 /*untilTimeCode*/,
    -
    4561  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4562  },
    -
    4563  // -6:00 US C%sT
    -
    4564  {
    -
    4565  &kZonePolicyUS /*zonePolicy*/,
    -
    4566  "C%T" /*format*/,
    -
    4567  -24 /*offsetCode*/,
    -
    4568  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4569  127 /*untilYearTiny*/,
    -
    4570  1 /*untilMonth*/,
    -
    4571  1 /*untilDay*/,
    -
    4572  0 /*untilTimeCode*/,
    -
    4573  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4574  },
    -
    4575 
    -
    4576 };
    -
    4577 
    -
    4578 static const char kZoneNameAmerica_Matamoros[] ACE_TIME_PROGMEM = "\x02" "Matamoros";
    -
    4579 
    -
    4580 const extended::Info::ZoneInfo kZoneAmerica_Matamoros ACE_TIME_PROGMEM = {
    -
    4581  kZoneNameAmerica_Matamoros /*name*/,
    -
    4582  0xdd1b0259 /*zoneId*/,
    -
    4583  &kZoneContext /*zoneContext*/,
    -
    4584  2 /*numEras*/,
    -
    4585  kZoneEraAmerica_Matamoros /*eras*/,
    -
    4586  nullptr /*targetInfo*/,
    -
    4587 };
    -
    4588 
    -
    4589 //---------------------------------------------------------------------------
    -
    4590 // Zone name: America/Mazatlan
    -
    4591 // Eras: 1
    -
    4592 //---------------------------------------------------------------------------
    -
    4593 
    -
    4594 static const extended::Info::ZoneEra kZoneEraAmerica_Mazatlan[] ACE_TIME_PROGMEM = {
    -
    4595  // -7:00 Mexico M%sT
    -
    4596  {
    -
    4597  &kZonePolicyMexico /*zonePolicy*/,
    -
    4598  "M%T" /*format*/,
    -
    4599  -28 /*offsetCode*/,
    -
    4600  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4601  127 /*untilYearTiny*/,
    -
    4602  1 /*untilMonth*/,
    -
    4603  1 /*untilDay*/,
    -
    4604  0 /*untilTimeCode*/,
    -
    4605  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4606  },
    -
    4607 
    -
    4608 };
    -
    4609 
    -
    4610 static const char kZoneNameAmerica_Mazatlan[] ACE_TIME_PROGMEM = "\x02" "Mazatlan";
    -
    4611 
    -
    4612 const extended::Info::ZoneInfo kZoneAmerica_Mazatlan ACE_TIME_PROGMEM = {
    -
    4613  kZoneNameAmerica_Mazatlan /*name*/,
    -
    4614  0x0532189e /*zoneId*/,
    -
    4615  &kZoneContext /*zoneContext*/,
    -
    4616  1 /*numEras*/,
    -
    4617  kZoneEraAmerica_Mazatlan /*eras*/,
    -
    4618  nullptr /*targetInfo*/,
    -
    4619 };
    -
    4620 
    -
    4621 //---------------------------------------------------------------------------
    -
    4622 // Zone name: America/Menominee
    -
    4623 // Eras: 1
    -
    4624 //---------------------------------------------------------------------------
    -
    4625 
    -
    4626 static const extended::Info::ZoneEra kZoneEraAmerica_Menominee[] ACE_TIME_PROGMEM = {
    -
    4627  // -6:00 US C%sT
    -
    4628  {
    -
    4629  &kZonePolicyUS /*zonePolicy*/,
    -
    4630  "C%T" /*format*/,
    -
    4631  -24 /*offsetCode*/,
    -
    4632  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4633  127 /*untilYearTiny*/,
    -
    4634  1 /*untilMonth*/,
    -
    4635  1 /*untilDay*/,
    -
    4636  0 /*untilTimeCode*/,
    -
    4637  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4638  },
    -
    4639 
    -
    4640 };
    -
    4641 
    -
    4642 static const char kZoneNameAmerica_Menominee[] ACE_TIME_PROGMEM = "\x02" "Menominee";
    -
    4643 
    -
    4644 const extended::Info::ZoneInfo kZoneAmerica_Menominee ACE_TIME_PROGMEM = {
    -
    4645  kZoneNameAmerica_Menominee /*name*/,
    -
    4646  0xe0e9c583 /*zoneId*/,
    -
    4647  &kZoneContext /*zoneContext*/,
    -
    4648  1 /*numEras*/,
    -
    4649  kZoneEraAmerica_Menominee /*eras*/,
    -
    4650  nullptr /*targetInfo*/,
    -
    4651 };
    -
    4652 
    -
    4653 //---------------------------------------------------------------------------
    -
    4654 // Zone name: America/Merida
    -
    4655 // Eras: 1
    -
    4656 //---------------------------------------------------------------------------
    -
    4657 
    -
    4658 static const extended::Info::ZoneEra kZoneEraAmerica_Merida[] ACE_TIME_PROGMEM = {
    -
    4659  // -6:00 Mexico C%sT
    -
    4660  {
    -
    4661  &kZonePolicyMexico /*zonePolicy*/,
    -
    4662  "C%T" /*format*/,
    -
    4663  -24 /*offsetCode*/,
    -
    4664  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4665  127 /*untilYearTiny*/,
    -
    4666  1 /*untilMonth*/,
    -
    4667  1 /*untilDay*/,
    -
    4668  0 /*untilTimeCode*/,
    -
    4669  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4670  },
    -
    4671 
    -
    4672 };
    -
    4673 
    -
    4674 static const char kZoneNameAmerica_Merida[] ACE_TIME_PROGMEM = "\x02" "Merida";
    -
    4675 
    -
    4676 const extended::Info::ZoneInfo kZoneAmerica_Merida ACE_TIME_PROGMEM = {
    -
    4677  kZoneNameAmerica_Merida /*name*/,
    -
    4678  0xacd172d8 /*zoneId*/,
    -
    4679  &kZoneContext /*zoneContext*/,
    -
    4680  1 /*numEras*/,
    -
    4681  kZoneEraAmerica_Merida /*eras*/,
    -
    4682  nullptr /*targetInfo*/,
    -
    4683 };
    -
    4684 
    -
    4685 //---------------------------------------------------------------------------
    -
    4686 // Zone name: America/Metlakatla
    -
    4687 // Eras: 4
    -
    4688 //---------------------------------------------------------------------------
    -
    4689 
    -
    4690 static const extended::Info::ZoneEra kZoneEraAmerica_Metlakatla[] ACE_TIME_PROGMEM = {
    -
    4691  // -8:00 - PST 2015 Nov 1 2:00
    -
    4692  {
    -
    4693  nullptr /*zonePolicy*/,
    -
    4694  "PST" /*format*/,
    -
    4695  -32 /*offsetCode*/,
    -
    4696  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4697  -85 /*untilYearTiny*/,
    -
    4698  11 /*untilMonth*/,
    -
    4699  1 /*untilDay*/,
    -
    4700  8 /*untilTimeCode*/,
    -
    4701  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4702  },
    -
    4703  // -9:00 US AK%sT 2018 Nov 4 2:00
    -
    4704  {
    -
    4705  &kZonePolicyUS /*zonePolicy*/,
    -
    4706  "AK%T" /*format*/,
    -
    4707  -36 /*offsetCode*/,
    -
    4708  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4709  -82 /*untilYearTiny*/,
    -
    4710  11 /*untilMonth*/,
    -
    4711  4 /*untilDay*/,
    -
    4712  8 /*untilTimeCode*/,
    -
    4713  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4714  },
    -
    4715  // -8:00 - PST 2019 Jan 20 2:00
    -
    4716  {
    -
    4717  nullptr /*zonePolicy*/,
    -
    4718  "PST" /*format*/,
    -
    4719  -32 /*offsetCode*/,
    -
    4720  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4721  -81 /*untilYearTiny*/,
    -
    4722  1 /*untilMonth*/,
    -
    4723  20 /*untilDay*/,
    -
    4724  8 /*untilTimeCode*/,
    -
    4725  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4726  },
    -
    4727  // -9:00 US AK%sT
    -
    4728  {
    -
    4729  &kZonePolicyUS /*zonePolicy*/,
    -
    4730  "AK%T" /*format*/,
    -
    4731  -36 /*offsetCode*/,
    -
    4732  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4733  127 /*untilYearTiny*/,
    -
    4734  1 /*untilMonth*/,
    -
    4735  1 /*untilDay*/,
    -
    4736  0 /*untilTimeCode*/,
    -
    4737  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4738  },
    -
    4739 
    -
    4740 };
    -
    4741 
    -
    4742 static const char kZoneNameAmerica_Metlakatla[] ACE_TIME_PROGMEM = "\x02" "Metlakatla";
    -
    4743 
    -
    4744 const extended::Info::ZoneInfo kZoneAmerica_Metlakatla ACE_TIME_PROGMEM = {
    -
    4745  kZoneNameAmerica_Metlakatla /*name*/,
    -
    4746  0x84de2686 /*zoneId*/,
    -
    4747  &kZoneContext /*zoneContext*/,
    -
    4748  4 /*numEras*/,
    -
    4749  kZoneEraAmerica_Metlakatla /*eras*/,
    -
    4750  nullptr /*targetInfo*/,
    -
    4751 };
    -
    4752 
    -
    4753 //---------------------------------------------------------------------------
    -
    4754 // Zone name: America/Mexico_City
    -
    4755 // Eras: 3
    -
    4756 //---------------------------------------------------------------------------
    -
    4757 
    -
    4758 static const extended::Info::ZoneEra kZoneEraAmerica_Mexico_City[] ACE_TIME_PROGMEM = {
    -
    4759  // -6:00 Mexico C%sT 2001 Sep 30 2:00
    -
    4760  {
    -
    4761  &kZonePolicyMexico /*zonePolicy*/,
    -
    4762  "C%T" /*format*/,
    -
    4763  -24 /*offsetCode*/,
    -
    4764  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4765  -99 /*untilYearTiny*/,
    -
    4766  9 /*untilMonth*/,
    -
    4767  30 /*untilDay*/,
    -
    4768  8 /*untilTimeCode*/,
    -
    4769  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4770  },
    -
    4771  // -6:00 - CST 2002 Feb 20
    -
    4772  {
    -
    4773  nullptr /*zonePolicy*/,
    -
    4774  "CST" /*format*/,
    -
    4775  -24 /*offsetCode*/,
    -
    4776  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4777  -98 /*untilYearTiny*/,
    -
    4778  2 /*untilMonth*/,
    -
    4779  20 /*untilDay*/,
    -
    4780  0 /*untilTimeCode*/,
    -
    4781  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4782  },
    -
    4783  // -6:00 Mexico C%sT
    -
    4784  {
    -
    4785  &kZonePolicyMexico /*zonePolicy*/,
    -
    4786  "C%T" /*format*/,
    -
    4787  -24 /*offsetCode*/,
    -
    4788  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4789  127 /*untilYearTiny*/,
    -
    4790  1 /*untilMonth*/,
    -
    4791  1 /*untilDay*/,
    -
    4792  0 /*untilTimeCode*/,
    -
    4793  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4794  },
    -
    4795 
    -
    4796 };
    -
    4797 
    -
    4798 static const char kZoneNameAmerica_Mexico_City[] ACE_TIME_PROGMEM = "\x02" "Mexico_City";
    -
    4799 
    -
    4800 const extended::Info::ZoneInfo kZoneAmerica_Mexico_City ACE_TIME_PROGMEM = {
    -
    4801  kZoneNameAmerica_Mexico_City /*name*/,
    -
    4802  0xd0d93f43 /*zoneId*/,
    -
    4803  &kZoneContext /*zoneContext*/,
    -
    4804  3 /*numEras*/,
    -
    4805  kZoneEraAmerica_Mexico_City /*eras*/,
    -
    4806  nullptr /*targetInfo*/,
    -
    4807 };
    -
    4808 
    -
    4809 //---------------------------------------------------------------------------
    -
    4810 // Zone name: America/Miquelon
    -
    4811 // Eras: 1
    -
    4812 //---------------------------------------------------------------------------
    -
    4813 
    -
    4814 static const extended::Info::ZoneEra kZoneEraAmerica_Miquelon[] ACE_TIME_PROGMEM = {
    -
    4815  // -3:00 Canada %z
    -
    4816  {
    -
    4817  &kZonePolicyCanada /*zonePolicy*/,
    -
    4818  "" /*format*/,
    -
    4819  -12 /*offsetCode*/,
    -
    4820  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4821  127 /*untilYearTiny*/,
    -
    4822  1 /*untilMonth*/,
    -
    4823  1 /*untilDay*/,
    -
    4824  0 /*untilTimeCode*/,
    -
    4825  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4826  },
    -
    4827 
    -
    4828 };
    -
    4829 
    -
    4830 static const char kZoneNameAmerica_Miquelon[] ACE_TIME_PROGMEM = "\x02" "Miquelon";
    -
    4831 
    -
    4832 const extended::Info::ZoneInfo kZoneAmerica_Miquelon ACE_TIME_PROGMEM = {
    -
    4833  kZoneNameAmerica_Miquelon /*name*/,
    -
    4834  0x59674330 /*zoneId*/,
    -
    4835  &kZoneContext /*zoneContext*/,
    -
    4836  1 /*numEras*/,
    -
    4837  kZoneEraAmerica_Miquelon /*eras*/,
    -
    4838  nullptr /*targetInfo*/,
    -
    4839 };
    -
    4840 
    -
    4841 //---------------------------------------------------------------------------
    -
    4842 // Zone name: America/Moncton
    -
    4843 // Eras: 2
    -
    4844 //---------------------------------------------------------------------------
    -
    4845 
    -
    4846 static const extended::Info::ZoneEra kZoneEraAmerica_Moncton[] ACE_TIME_PROGMEM = {
    -
    4847  // -4:00 Moncton A%sT 2007
    -
    4848  {
    -
    4849  &kZonePolicyMoncton /*zonePolicy*/,
    -
    4850  "A%T" /*format*/,
    -
    4851  -16 /*offsetCode*/,
    -
    4852  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4853  -93 /*untilYearTiny*/,
    -
    4854  1 /*untilMonth*/,
    -
    4855  1 /*untilDay*/,
    -
    4856  0 /*untilTimeCode*/,
    -
    4857  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4858  },
    -
    4859  // -4:00 Canada A%sT
    -
    4860  {
    -
    4861  &kZonePolicyCanada /*zonePolicy*/,
    -
    4862  "A%T" /*format*/,
    -
    4863  -16 /*offsetCode*/,
    -
    4864  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4865  127 /*untilYearTiny*/,
    -
    4866  1 /*untilMonth*/,
    -
    4867  1 /*untilDay*/,
    -
    4868  0 /*untilTimeCode*/,
    -
    4869  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4870  },
    -
    4871 
    -
    4872 };
    -
    4873 
    -
    4874 static const char kZoneNameAmerica_Moncton[] ACE_TIME_PROGMEM = "\x02" "Moncton";
    -
    4875 
    -
    4876 const extended::Info::ZoneInfo kZoneAmerica_Moncton ACE_TIME_PROGMEM = {
    -
    4877  kZoneNameAmerica_Moncton /*name*/,
    -
    4878  0x5e07fe24 /*zoneId*/,
    -
    4879  &kZoneContext /*zoneContext*/,
    -
    4880  2 /*numEras*/,
    -
    4881  kZoneEraAmerica_Moncton /*eras*/,
    -
    4882  nullptr /*targetInfo*/,
    -
    4883 };
    -
    4884 
    -
    4885 //---------------------------------------------------------------------------
    -
    4886 // Zone name: America/Monterrey
    -
    4887 // Eras: 1
    -
    4888 //---------------------------------------------------------------------------
    -
    4889 
    -
    4890 static const extended::Info::ZoneEra kZoneEraAmerica_Monterrey[] ACE_TIME_PROGMEM = {
    -
    4891  // -6:00 Mexico C%sT
    -
    4892  {
    -
    4893  &kZonePolicyMexico /*zonePolicy*/,
    -
    4894  "C%T" /*format*/,
    -
    4895  -24 /*offsetCode*/,
    -
    4896  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4897  127 /*untilYearTiny*/,
    -
    4898  1 /*untilMonth*/,
    -
    4899  1 /*untilDay*/,
    -
    4900  0 /*untilTimeCode*/,
    -
    4901  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4902  },
    -
    4903 
    -
    4904 };
    -
    4905 
    -
    4906 static const char kZoneNameAmerica_Monterrey[] ACE_TIME_PROGMEM = "\x02" "Monterrey";
    -
    4907 
    -
    4908 const extended::Info::ZoneInfo kZoneAmerica_Monterrey ACE_TIME_PROGMEM = {
    -
    4909  kZoneNameAmerica_Monterrey /*name*/,
    -
    4910  0x269a1deb /*zoneId*/,
    -
    4911  &kZoneContext /*zoneContext*/,
    -
    4912  1 /*numEras*/,
    -
    4913  kZoneEraAmerica_Monterrey /*eras*/,
    -
    4914  nullptr /*targetInfo*/,
    -
    4915 };
    -
    4916 
    -
    4917 //---------------------------------------------------------------------------
    -
    4918 // Zone name: America/Montevideo
    -
    4919 // Eras: 1
    -
    4920 //---------------------------------------------------------------------------
    -
    4921 
    -
    4922 static const extended::Info::ZoneEra kZoneEraAmerica_Montevideo[] ACE_TIME_PROGMEM = {
    -
    4923  // -3:00 Uruguay %z
    -
    4924  {
    -
    4925  &kZonePolicyUruguay /*zonePolicy*/,
    -
    4926  "" /*format*/,
    -
    4927  -12 /*offsetCode*/,
    -
    4928  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4929  127 /*untilYearTiny*/,
    -
    4930  1 /*untilMonth*/,
    -
    4931  1 /*untilDay*/,
    -
    4932  0 /*untilTimeCode*/,
    -
    4933  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4934  },
    -
    4935 
    -
    4936 };
    -
    4937 
    -
    4938 static const char kZoneNameAmerica_Montevideo[] ACE_TIME_PROGMEM = "\x02" "Montevideo";
    -
    4939 
    -
    4940 const extended::Info::ZoneInfo kZoneAmerica_Montevideo ACE_TIME_PROGMEM = {
    -
    4941  kZoneNameAmerica_Montevideo /*name*/,
    -
    4942  0xfa214780 /*zoneId*/,
    -
    4943  &kZoneContext /*zoneContext*/,
    -
    4944  1 /*numEras*/,
    -
    4945  kZoneEraAmerica_Montevideo /*eras*/,
    -
    4946  nullptr /*targetInfo*/,
    -
    4947 };
    -
    4948 
    -
    4949 //---------------------------------------------------------------------------
    -
    4950 // Zone name: America/New_York
    -
    4951 // Eras: 1
    -
    4952 //---------------------------------------------------------------------------
    -
    4953 
    -
    4954 static const extended::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = {
    -
    4955  // -5:00 US E%sT
    -
    4956  {
    -
    4957  &kZonePolicyUS /*zonePolicy*/,
    -
    4958  "E%T" /*format*/,
    -
    4959  -20 /*offsetCode*/,
    -
    4960  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4961  127 /*untilYearTiny*/,
    -
    4962  1 /*untilMonth*/,
    -
    4963  1 /*untilDay*/,
    -
    4964  0 /*untilTimeCode*/,
    -
    4965  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4966  },
    -
    4967 
    -
    4968 };
    -
    4969 
    -
    4970 static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "\x02" "New_York";
    -
    4971 
    -
    4972 const extended::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = {
    -
    4973  kZoneNameAmerica_New_York /*name*/,
    -
    4974  0x1e2a7654 /*zoneId*/,
    -
    4975  &kZoneContext /*zoneContext*/,
    -
    4976  1 /*numEras*/,
    -
    4977  kZoneEraAmerica_New_York /*eras*/,
    -
    4978  nullptr /*targetInfo*/,
    -
    4979 };
    -
    4980 
    -
    4981 //---------------------------------------------------------------------------
    -
    4982 // Zone name: America/Nome
    -
    4983 // Eras: 1
    -
    4984 //---------------------------------------------------------------------------
    -
    4985 
    -
    4986 static const extended::Info::ZoneEra kZoneEraAmerica_Nome[] ACE_TIME_PROGMEM = {
    -
    4987  // -9:00 US AK%sT
    -
    4988  {
    -
    4989  &kZonePolicyUS /*zonePolicy*/,
    -
    4990  "AK%T" /*format*/,
    -
    4991  -36 /*offsetCode*/,
    -
    4992  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    4993  127 /*untilYearTiny*/,
    -
    4994  1 /*untilMonth*/,
    -
    4995  1 /*untilDay*/,
    -
    4996  0 /*untilTimeCode*/,
    -
    4997  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    4998  },
    -
    4999 
    -
    5000 };
    -
    5001 
    -
    5002 static const char kZoneNameAmerica_Nome[] ACE_TIME_PROGMEM = "\x02" "Nome";
    -
    5003 
    -
    5004 const extended::Info::ZoneInfo kZoneAmerica_Nome ACE_TIME_PROGMEM = {
    -
    5005  kZoneNameAmerica_Nome /*name*/,
    -
    5006  0x98059b15 /*zoneId*/,
    -
    5007  &kZoneContext /*zoneContext*/,
    -
    5008  1 /*numEras*/,
    -
    5009  kZoneEraAmerica_Nome /*eras*/,
    -
    5010  nullptr /*targetInfo*/,
    -
    5011 };
    -
    5012 
    -
    5013 //---------------------------------------------------------------------------
    -
    5014 // Zone name: America/Noronha
    -
    5015 // Eras: 5
    -
    5016 //---------------------------------------------------------------------------
    -
    5017 
    -
    5018 static const extended::Info::ZoneEra kZoneEraAmerica_Noronha[] ACE_TIME_PROGMEM = {
    -
    5019  // -2:00 - %z 1999 Sep 30
    -
    5020  {
    -
    5021  nullptr /*zonePolicy*/,
    -
    5022  "" /*format*/,
    -
    5023  -8 /*offsetCode*/,
    -
    5024  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5025  -101 /*untilYearTiny*/,
    -
    5026  9 /*untilMonth*/,
    -
    5027  30 /*untilDay*/,
    -
    5028  0 /*untilTimeCode*/,
    -
    5029  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5030  },
    -
    5031  // -2:00 Brazil %z 2000 Oct 15
    -
    5032  {
    -
    5033  &kZonePolicyBrazil /*zonePolicy*/,
    -
    5034  "" /*format*/,
    -
    5035  -8 /*offsetCode*/,
    -
    5036  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5037  -100 /*untilYearTiny*/,
    -
    5038  10 /*untilMonth*/,
    -
    5039  15 /*untilDay*/,
    -
    5040  0 /*untilTimeCode*/,
    -
    5041  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5042  },
    -
    5043  // -2:00 - %z 2001 Sep 13
    -
    5044  {
    -
    5045  nullptr /*zonePolicy*/,
    -
    5046  "" /*format*/,
    -
    5047  -8 /*offsetCode*/,
    -
    5048  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5049  -99 /*untilYearTiny*/,
    -
    5050  9 /*untilMonth*/,
    -
    5051  13 /*untilDay*/,
    -
    5052  0 /*untilTimeCode*/,
    -
    5053  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5054  },
    -
    5055  // -2:00 Brazil %z 2002 Oct 1
    -
    5056  {
    -
    5057  &kZonePolicyBrazil /*zonePolicy*/,
    -
    5058  "" /*format*/,
    -
    5059  -8 /*offsetCode*/,
    -
    5060  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5061  -98 /*untilYearTiny*/,
    -
    5062  10 /*untilMonth*/,
    -
    5063  1 /*untilDay*/,
    -
    5064  0 /*untilTimeCode*/,
    -
    5065  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5066  },
    -
    5067  // -2:00 - %z
    -
    5068  {
    -
    5069  nullptr /*zonePolicy*/,
    -
    5070  "" /*format*/,
    -
    5071  -8 /*offsetCode*/,
    -
    5072  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5073  127 /*untilYearTiny*/,
    -
    5074  1 /*untilMonth*/,
    -
    5075  1 /*untilDay*/,
    -
    5076  0 /*untilTimeCode*/,
    -
    5077  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5078  },
    -
    5079 
    -
    5080 };
    -
    5081 
    -
    5082 static const char kZoneNameAmerica_Noronha[] ACE_TIME_PROGMEM = "\x02" "Noronha";
    -
    5083 
    -
    5084 const extended::Info::ZoneInfo kZoneAmerica_Noronha ACE_TIME_PROGMEM = {
    -
    5085  kZoneNameAmerica_Noronha /*name*/,
    -
    5086  0xab5116fb /*zoneId*/,
    -
    5087  &kZoneContext /*zoneContext*/,
    -
    5088  5 /*numEras*/,
    -
    5089  kZoneEraAmerica_Noronha /*eras*/,
    -
    5090  nullptr /*targetInfo*/,
    -
    5091 };
    -
    5092 
    -
    5093 //---------------------------------------------------------------------------
    -
    5094 // Zone name: America/North_Dakota/Beulah
    -
    5095 // Eras: 2
    -
    5096 //---------------------------------------------------------------------------
    -
    5097 
    -
    5098 static const extended::Info::ZoneEra kZoneEraAmerica_North_Dakota_Beulah[] ACE_TIME_PROGMEM = {
    -
    5099  // -7:00 US M%sT 2010 Nov 7 2:00
    -
    5100  {
    -
    5101  &kZonePolicyUS /*zonePolicy*/,
    -
    5102  "M%T" /*format*/,
    -
    5103  -28 /*offsetCode*/,
    -
    5104  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5105  -90 /*untilYearTiny*/,
    -
    5106  11 /*untilMonth*/,
    -
    5107  7 /*untilDay*/,
    -
    5108  8 /*untilTimeCode*/,
    -
    5109  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5110  },
    -
    5111  // -6:00 US C%sT
    -
    5112  {
    -
    5113  &kZonePolicyUS /*zonePolicy*/,
    -
    5114  "C%T" /*format*/,
    -
    5115  -24 /*offsetCode*/,
    -
    5116  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5117  127 /*untilYearTiny*/,
    -
    5118  1 /*untilMonth*/,
    -
    5119  1 /*untilDay*/,
    -
    5120  0 /*untilTimeCode*/,
    -
    5121  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5122  },
    -
    5123 
    -
    5124 };
    -
    5125 
    -
    5126 static const char kZoneNameAmerica_North_Dakota_Beulah[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/Beulah";
    -
    5127 
    -
    5128 const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_Beulah ACE_TIME_PROGMEM = {
    -
    5129  kZoneNameAmerica_North_Dakota_Beulah /*name*/,
    -
    5130  0x9b52b384 /*zoneId*/,
    -
    5131  &kZoneContext /*zoneContext*/,
    -
    5132  2 /*numEras*/,
    -
    5133  kZoneEraAmerica_North_Dakota_Beulah /*eras*/,
    -
    5134  nullptr /*targetInfo*/,
    -
    5135 };
    -
    5136 
    -
    5137 //---------------------------------------------------------------------------
    -
    5138 // Zone name: America/North_Dakota/Center
    -
    5139 // Eras: 1
    -
    5140 //---------------------------------------------------------------------------
    -
    5141 
    -
    5142 static const extended::Info::ZoneEra kZoneEraAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = {
    -
    5143  // -6:00 US C%sT
    -
    5144  {
    -
    5145  &kZonePolicyUS /*zonePolicy*/,
    -
    5146  "C%T" /*format*/,
    -
    5147  -24 /*offsetCode*/,
    -
    5148  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5149  127 /*untilYearTiny*/,
    -
    5150  1 /*untilMonth*/,
    -
    5151  1 /*untilDay*/,
    -
    5152  0 /*untilTimeCode*/,
    -
    5153  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5154  },
    -
    5155 
    -
    5156 };
    -
    5157 
    -
    5158 static const char kZoneNameAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/Center";
    -
    5159 
    -
    5160 const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_Center ACE_TIME_PROGMEM = {
    -
    5161  kZoneNameAmerica_North_Dakota_Center /*name*/,
    -
    5162  0x9da42814 /*zoneId*/,
    -
    5163  &kZoneContext /*zoneContext*/,
    -
    5164  1 /*numEras*/,
    -
    5165  kZoneEraAmerica_North_Dakota_Center /*eras*/,
    -
    5166  nullptr /*targetInfo*/,
    -
    5167 };
    -
    5168 
    -
    5169 //---------------------------------------------------------------------------
    -
    5170 // Zone name: America/North_Dakota/New_Salem
    -
    5171 // Eras: 2
    -
    5172 //---------------------------------------------------------------------------
    -
    5173 
    -
    5174 static const extended::Info::ZoneEra kZoneEraAmerica_North_Dakota_New_Salem[] ACE_TIME_PROGMEM = {
    -
    5175  // -7:00 US M%sT 2003 Oct 26 2:00
    -
    5176  {
    -
    5177  &kZonePolicyUS /*zonePolicy*/,
    -
    5178  "M%T" /*format*/,
    -
    5179  -28 /*offsetCode*/,
    -
    5180  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5181  -97 /*untilYearTiny*/,
    -
    5182  10 /*untilMonth*/,
    -
    5183  26 /*untilDay*/,
    -
    5184  8 /*untilTimeCode*/,
    -
    5185  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5186  },
    -
    5187  // -6:00 US C%sT
    -
    5188  {
    -
    5189  &kZonePolicyUS /*zonePolicy*/,
    -
    5190  "C%T" /*format*/,
    -
    5191  -24 /*offsetCode*/,
    -
    5192  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5193  127 /*untilYearTiny*/,
    -
    5194  1 /*untilMonth*/,
    -
    5195  1 /*untilDay*/,
    -
    5196  0 /*untilTimeCode*/,
    -
    5197  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5198  },
    -
    5199 
    -
    5200 };
    -
    5201 
    -
    5202 static const char kZoneNameAmerica_North_Dakota_New_Salem[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/New_Salem";
    -
    5203 
    -
    5204 const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_New_Salem ACE_TIME_PROGMEM = {
    -
    5205  kZoneNameAmerica_North_Dakota_New_Salem /*name*/,
    -
    5206  0x04f9958e /*zoneId*/,
    -
    5207  &kZoneContext /*zoneContext*/,
    -
    5208  2 /*numEras*/,
    -
    5209  kZoneEraAmerica_North_Dakota_New_Salem /*eras*/,
    -
    5210  nullptr /*targetInfo*/,
    -
    5211 };
    -
    5212 
    -
    5213 //---------------------------------------------------------------------------
    -
    5214 // Zone name: America/Nuuk
    -
    5215 // Eras: 3
    -
    5216 //---------------------------------------------------------------------------
    -
    5217 
    -
    5218 static const extended::Info::ZoneEra kZoneEraAmerica_Nuuk[] ACE_TIME_PROGMEM = {
    -
    5219  // -3:00 EU %z 2023 Mar 26 1:00u
    -
    5220  {
    -
    5221  &kZonePolicyEU /*zonePolicy*/,
    -
    5222  "" /*format*/,
    -
    5223  -12 /*offsetCode*/,
    -
    5224  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5225  -77 /*untilYearTiny*/,
    -
    5226  3 /*untilMonth*/,
    -
    5227  26 /*untilDay*/,
    -
    5228  4 /*untilTimeCode*/,
    -
    5229  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    5230  },
    -
    5231  // -2:00 - %z 2023 Oct 29 1:00u
    -
    5232  {
    -
    5233  nullptr /*zonePolicy*/,
    -
    5234  "" /*format*/,
    -
    5235  -8 /*offsetCode*/,
    -
    5236  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5237  -77 /*untilYearTiny*/,
    -
    5238  10 /*untilMonth*/,
    -
    5239  29 /*untilDay*/,
    -
    5240  4 /*untilTimeCode*/,
    -
    5241  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    5242  },
    -
    5243  // -2:00 EU %z
    -
    5244  {
    -
    5245  &kZonePolicyEU /*zonePolicy*/,
    -
    5246  "" /*format*/,
    -
    5247  -8 /*offsetCode*/,
    -
    5248  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5249  127 /*untilYearTiny*/,
    -
    5250  1 /*untilMonth*/,
    -
    5251  1 /*untilDay*/,
    -
    5252  0 /*untilTimeCode*/,
    -
    5253  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5254  },
    -
    5255 
    -
    5256 };
    -
    5257 
    -
    5258 static const char kZoneNameAmerica_Nuuk[] ACE_TIME_PROGMEM = "\x02" "Nuuk";
    -
    5259 
    -
    5260 const extended::Info::ZoneInfo kZoneAmerica_Nuuk ACE_TIME_PROGMEM = {
    -
    5261  kZoneNameAmerica_Nuuk /*name*/,
    -
    5262  0x9805b5a9 /*zoneId*/,
    -
    5263  &kZoneContext /*zoneContext*/,
    -
    5264  3 /*numEras*/,
    -
    5265  kZoneEraAmerica_Nuuk /*eras*/,
    -
    5266  nullptr /*targetInfo*/,
    -
    5267 };
    -
    5268 
    -
    5269 //---------------------------------------------------------------------------
    -
    5270 // Zone name: America/Ojinaga
    -
    5271 // Eras: 4
    -
    5272 //---------------------------------------------------------------------------
    -
    5273 
    -
    5274 static const extended::Info::ZoneEra kZoneEraAmerica_Ojinaga[] ACE_TIME_PROGMEM = {
    -
    5275  // -7:00 Mexico M%sT 2010
    -
    5276  {
    -
    5277  &kZonePolicyMexico /*zonePolicy*/,
    -
    5278  "M%T" /*format*/,
    -
    5279  -28 /*offsetCode*/,
    -
    5280  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5281  -90 /*untilYearTiny*/,
    -
    5282  1 /*untilMonth*/,
    -
    5283  1 /*untilDay*/,
    -
    5284  0 /*untilTimeCode*/,
    -
    5285  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5286  },
    -
    5287  // -7:00 US M%sT 2022 Oct 30 2:00
    -
    5288  {
    -
    5289  &kZonePolicyUS /*zonePolicy*/,
    -
    5290  "M%T" /*format*/,
    -
    5291  -28 /*offsetCode*/,
    -
    5292  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5293  -78 /*untilYearTiny*/,
    -
    5294  10 /*untilMonth*/,
    -
    5295  30 /*untilDay*/,
    -
    5296  8 /*untilTimeCode*/,
    -
    5297  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5298  },
    -
    5299  // -6:00 - CST 2022 Nov 30 0:00
    -
    5300  {
    -
    5301  nullptr /*zonePolicy*/,
    -
    5302  "CST" /*format*/,
    -
    5303  -24 /*offsetCode*/,
    -
    5304  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5305  -78 /*untilYearTiny*/,
    -
    5306  11 /*untilMonth*/,
    -
    5307  30 /*untilDay*/,
    -
    5308  0 /*untilTimeCode*/,
    -
    5309  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5310  },
    -
    5311  // -6:00 US C%sT
    -
    5312  {
    -
    5313  &kZonePolicyUS /*zonePolicy*/,
    -
    5314  "C%T" /*format*/,
    -
    5315  -24 /*offsetCode*/,
    -
    5316  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5317  127 /*untilYearTiny*/,
    -
    5318  1 /*untilMonth*/,
    -
    5319  1 /*untilDay*/,
    -
    5320  0 /*untilTimeCode*/,
    -
    5321  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5322  },
    -
    5323 
    -
    5324 };
    -
    5325 
    -
    5326 static const char kZoneNameAmerica_Ojinaga[] ACE_TIME_PROGMEM = "\x02" "Ojinaga";
    -
    5327 
    -
    5328 const extended::Info::ZoneInfo kZoneAmerica_Ojinaga ACE_TIME_PROGMEM = {
    -
    5329  kZoneNameAmerica_Ojinaga /*name*/,
    -
    5330  0xebfde83f /*zoneId*/,
    -
    5331  &kZoneContext /*zoneContext*/,
    -
    5332  4 /*numEras*/,
    -
    5333  kZoneEraAmerica_Ojinaga /*eras*/,
    -
    5334  nullptr /*targetInfo*/,
    -
    5335 };
    -
    5336 
    -
    5337 //---------------------------------------------------------------------------
    -
    5338 // Zone name: America/Panama
    -
    5339 // Eras: 1
    -
    5340 //---------------------------------------------------------------------------
    -
    5341 
    -
    5342 static const extended::Info::ZoneEra kZoneEraAmerica_Panama[] ACE_TIME_PROGMEM = {
    -
    5343  // -5:00 - EST
    -
    5344  {
    -
    5345  nullptr /*zonePolicy*/,
    -
    5346  "EST" /*format*/,
    -
    5347  -20 /*offsetCode*/,
    -
    5348  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5349  127 /*untilYearTiny*/,
    -
    5350  1 /*untilMonth*/,
    -
    5351  1 /*untilDay*/,
    -
    5352  0 /*untilTimeCode*/,
    -
    5353  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5354  },
    -
    5355 
    -
    5356 };
    -
    5357 
    -
    5358 static const char kZoneNameAmerica_Panama[] ACE_TIME_PROGMEM = "\x02" "Panama";
    -
    5359 
    -
    5360 const extended::Info::ZoneInfo kZoneAmerica_Panama ACE_TIME_PROGMEM = {
    -
    5361  kZoneNameAmerica_Panama /*name*/,
    -
    5362  0xb3863854 /*zoneId*/,
    -
    5363  &kZoneContext /*zoneContext*/,
    -
    5364  1 /*numEras*/,
    -
    5365  kZoneEraAmerica_Panama /*eras*/,
    -
    5366  nullptr /*targetInfo*/,
    -
    5367 };
    -
    5368 
    -
    5369 //---------------------------------------------------------------------------
    -
    5370 // Zone name: America/Paramaribo
    -
    5371 // Eras: 1
    -
    5372 //---------------------------------------------------------------------------
    -
    5373 
    -
    5374 static const extended::Info::ZoneEra kZoneEraAmerica_Paramaribo[] ACE_TIME_PROGMEM = {
    -
    5375  // -3:00 - %z
    -
    5376  {
    -
    5377  nullptr /*zonePolicy*/,
    -
    5378  "" /*format*/,
    -
    5379  -12 /*offsetCode*/,
    -
    5380  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5381  127 /*untilYearTiny*/,
    -
    5382  1 /*untilMonth*/,
    -
    5383  1 /*untilDay*/,
    -
    5384  0 /*untilTimeCode*/,
    -
    5385  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5386  },
    -
    5387 
    -
    5388 };
    -
    5389 
    -
    5390 static const char kZoneNameAmerica_Paramaribo[] ACE_TIME_PROGMEM = "\x02" "Paramaribo";
    -
    5391 
    -
    5392 const extended::Info::ZoneInfo kZoneAmerica_Paramaribo ACE_TIME_PROGMEM = {
    -
    5393  kZoneNameAmerica_Paramaribo /*name*/,
    -
    5394  0xb319e4c4 /*zoneId*/,
    -
    5395  &kZoneContext /*zoneContext*/,
    -
    5396  1 /*numEras*/,
    -
    5397  kZoneEraAmerica_Paramaribo /*eras*/,
    -
    5398  nullptr /*targetInfo*/,
    -
    5399 };
    -
    5400 
    -
    5401 //---------------------------------------------------------------------------
    -
    5402 // Zone name: America/Phoenix
    -
    5403 // Eras: 1
    -
    5404 //---------------------------------------------------------------------------
    -
    5405 
    -
    5406 static const extended::Info::ZoneEra kZoneEraAmerica_Phoenix[] ACE_TIME_PROGMEM = {
    -
    5407  // -7:00 - MST
    -
    5408  {
    -
    5409  nullptr /*zonePolicy*/,
    -
    5410  "MST" /*format*/,
    -
    5411  -28 /*offsetCode*/,
    -
    5412  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5413  127 /*untilYearTiny*/,
    -
    5414  1 /*untilMonth*/,
    -
    5415  1 /*untilDay*/,
    -
    5416  0 /*untilTimeCode*/,
    -
    5417  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5418  },
    -
    5419 
    -
    5420 };
    -
    5421 
    -
    5422 static const char kZoneNameAmerica_Phoenix[] ACE_TIME_PROGMEM = "\x02" "Phoenix";
    -
    5423 
    -
    5424 const extended::Info::ZoneInfo kZoneAmerica_Phoenix ACE_TIME_PROGMEM = {
    -
    5425  kZoneNameAmerica_Phoenix /*name*/,
    -
    5426  0x34b5af01 /*zoneId*/,
    -
    5427  &kZoneContext /*zoneContext*/,
    -
    5428  1 /*numEras*/,
    -
    5429  kZoneEraAmerica_Phoenix /*eras*/,
    -
    5430  nullptr /*targetInfo*/,
    -
    5431 };
    -
    5432 
    -
    5433 //---------------------------------------------------------------------------
    -
    5434 // Zone name: America/Port-au-Prince
    -
    5435 // Eras: 1
    -
    5436 //---------------------------------------------------------------------------
    -
    5437 
    -
    5438 static const extended::Info::ZoneEra kZoneEraAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = {
    -
    5439  // -5:00 Haiti E%sT
    -
    5440  {
    -
    5441  &kZonePolicyHaiti /*zonePolicy*/,
    -
    5442  "E%T" /*format*/,
    -
    5443  -20 /*offsetCode*/,
    -
    5444  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5445  127 /*untilYearTiny*/,
    -
    5446  1 /*untilMonth*/,
    -
    5447  1 /*untilDay*/,
    -
    5448  0 /*untilTimeCode*/,
    -
    5449  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5450  },
    -
    5451 
    -
    5452 };
    -
    5453 
    -
    5454 static const char kZoneNameAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = "\x02" "Port-au-Prince";
    -
    5455 
    -
    5456 const extended::Info::ZoneInfo kZoneAmerica_Port_au_Prince ACE_TIME_PROGMEM = {
    -
    5457  kZoneNameAmerica_Port_au_Prince /*name*/,
    -
    5458  0x8e4a7bdc /*zoneId*/,
    -
    5459  &kZoneContext /*zoneContext*/,
    -
    5460  1 /*numEras*/,
    -
    5461  kZoneEraAmerica_Port_au_Prince /*eras*/,
    -
    5462  nullptr /*targetInfo*/,
    -
    5463 };
    -
    5464 
    -
    5465 //---------------------------------------------------------------------------
    -
    5466 // Zone name: America/Porto_Velho
    -
    5467 // Eras: 1
    -
    5468 //---------------------------------------------------------------------------
    -
    5469 
    -
    5470 static const extended::Info::ZoneEra kZoneEraAmerica_Porto_Velho[] ACE_TIME_PROGMEM = {
    -
    5471  // -4:00 - %z
    -
    5472  {
    -
    5473  nullptr /*zonePolicy*/,
    -
    5474  "" /*format*/,
    -
    5475  -16 /*offsetCode*/,
    -
    5476  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5477  127 /*untilYearTiny*/,
    -
    5478  1 /*untilMonth*/,
    -
    5479  1 /*untilDay*/,
    -
    5480  0 /*untilTimeCode*/,
    -
    5481  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5482  },
    -
    5483 
    -
    5484 };
    -
    5485 
    -
    5486 static const char kZoneNameAmerica_Porto_Velho[] ACE_TIME_PROGMEM = "\x02" "Porto_Velho";
    -
    5487 
    -
    5488 const extended::Info::ZoneInfo kZoneAmerica_Porto_Velho ACE_TIME_PROGMEM = {
    -
    5489  kZoneNameAmerica_Porto_Velho /*name*/,
    -
    5490  0x6b1aac77 /*zoneId*/,
    -
    5491  &kZoneContext /*zoneContext*/,
    -
    5492  1 /*numEras*/,
    -
    5493  kZoneEraAmerica_Porto_Velho /*eras*/,
    -
    5494  nullptr /*targetInfo*/,
    -
    5495 };
    -
    5496 
    -
    5497 //---------------------------------------------------------------------------
    -
    5498 // Zone name: America/Puerto_Rico
    -
    5499 // Eras: 1
    -
    5500 //---------------------------------------------------------------------------
    -
    5501 
    -
    5502 static const extended::Info::ZoneEra kZoneEraAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = {
    -
    5503  // -4:00 - AST
    -
    5504  {
    -
    5505  nullptr /*zonePolicy*/,
    -
    5506  "AST" /*format*/,
    -
    5507  -16 /*offsetCode*/,
    -
    5508  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5509  127 /*untilYearTiny*/,
    -
    5510  1 /*untilMonth*/,
    -
    5511  1 /*untilDay*/,
    -
    5512  0 /*untilTimeCode*/,
    -
    5513  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5514  },
    -
    5515 
    -
    5516 };
    -
    5517 
    -
    5518 static const char kZoneNameAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = "\x02" "Puerto_Rico";
    -
    5519 
    -
    5520 const extended::Info::ZoneInfo kZoneAmerica_Puerto_Rico ACE_TIME_PROGMEM = {
    -
    5521  kZoneNameAmerica_Puerto_Rico /*name*/,
    -
    5522  0x6752ca31 /*zoneId*/,
    -
    5523  &kZoneContext /*zoneContext*/,
    -
    5524  1 /*numEras*/,
    -
    5525  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    5526  nullptr /*targetInfo*/,
    -
    5527 };
    -
    5528 
    -
    5529 //---------------------------------------------------------------------------
    -
    5530 // Zone name: America/Punta_Arenas
    -
    5531 // Eras: 2
    -
    5532 //---------------------------------------------------------------------------
    -
    5533 
    -
    5534 static const extended::Info::ZoneEra kZoneEraAmerica_Punta_Arenas[] ACE_TIME_PROGMEM = {
    -
    5535  // -4:00 Chile %z 2016 Dec 4
    -
    5536  {
    -
    5537  &kZonePolicyChile /*zonePolicy*/,
    -
    5538  "" /*format*/,
    -
    5539  -16 /*offsetCode*/,
    -
    5540  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5541  -84 /*untilYearTiny*/,
    -
    5542  12 /*untilMonth*/,
    -
    5543  4 /*untilDay*/,
    -
    5544  0 /*untilTimeCode*/,
    -
    5545  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5546  },
    -
    5547  // -3:00 - %z
    -
    5548  {
    -
    5549  nullptr /*zonePolicy*/,
    -
    5550  "" /*format*/,
    -
    5551  -12 /*offsetCode*/,
    -
    5552  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5553  127 /*untilYearTiny*/,
    -
    5554  1 /*untilMonth*/,
    -
    5555  1 /*untilDay*/,
    -
    5556  0 /*untilTimeCode*/,
    -
    5557  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5558  },
    -
    5559 
    -
    5560 };
    -
    5561 
    -
    5562 static const char kZoneNameAmerica_Punta_Arenas[] ACE_TIME_PROGMEM = "\x02" "Punta_Arenas";
    -
    5563 
    -
    5564 const extended::Info::ZoneInfo kZoneAmerica_Punta_Arenas ACE_TIME_PROGMEM = {
    -
    5565  kZoneNameAmerica_Punta_Arenas /*name*/,
    -
    5566  0xc2c3bce7 /*zoneId*/,
    -
    5567  &kZoneContext /*zoneContext*/,
    -
    5568  2 /*numEras*/,
    -
    5569  kZoneEraAmerica_Punta_Arenas /*eras*/,
    -
    5570  nullptr /*targetInfo*/,
    -
    5571 };
    -
    5572 
    -
    5573 //---------------------------------------------------------------------------
    -
    5574 // Zone name: America/Rankin_Inlet
    -
    5575 // Eras: 3
    -
    5576 //---------------------------------------------------------------------------
    -
    5577 
    -
    5578 static const extended::Info::ZoneEra kZoneEraAmerica_Rankin_Inlet[] ACE_TIME_PROGMEM = {
    -
    5579  // -6:00 NT_YK C%sT 2000 Oct 29 2:00
    -
    5580  {
    -
    5581  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    5582  "C%T" /*format*/,
    -
    5583  -24 /*offsetCode*/,
    -
    5584  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5585  -100 /*untilYearTiny*/,
    -
    5586  10 /*untilMonth*/,
    -
    5587  29 /*untilDay*/,
    -
    5588  8 /*untilTimeCode*/,
    -
    5589  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5590  },
    -
    5591  // -5:00 - EST 2001 Apr 1 3:00
    -
    5592  {
    -
    5593  nullptr /*zonePolicy*/,
    -
    5594  "EST" /*format*/,
    -
    5595  -20 /*offsetCode*/,
    -
    5596  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5597  -99 /*untilYearTiny*/,
    -
    5598  4 /*untilMonth*/,
    -
    5599  1 /*untilDay*/,
    -
    5600  12 /*untilTimeCode*/,
    -
    5601  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5602  },
    -
    5603  // -6:00 Canada C%sT
    -
    5604  {
    -
    5605  &kZonePolicyCanada /*zonePolicy*/,
    -
    5606  "C%T" /*format*/,
    -
    5607  -24 /*offsetCode*/,
    -
    5608  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5609  127 /*untilYearTiny*/,
    -
    5610  1 /*untilMonth*/,
    -
    5611  1 /*untilDay*/,
    -
    5612  0 /*untilTimeCode*/,
    -
    5613  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5614  },
    -
    5615 
    -
    5616 };
    -
    5617 
    -
    5618 static const char kZoneNameAmerica_Rankin_Inlet[] ACE_TIME_PROGMEM = "\x02" "Rankin_Inlet";
    -
    5619 
    -
    5620 const extended::Info::ZoneInfo kZoneAmerica_Rankin_Inlet ACE_TIME_PROGMEM = {
    -
    5621  kZoneNameAmerica_Rankin_Inlet /*name*/,
    -
    5622  0xc8de4984 /*zoneId*/,
    -
    5623  &kZoneContext /*zoneContext*/,
    -
    5624  3 /*numEras*/,
    -
    5625  kZoneEraAmerica_Rankin_Inlet /*eras*/,
    -
    5626  nullptr /*targetInfo*/,
    -
    5627 };
    -
    5628 
    -
    5629 //---------------------------------------------------------------------------
    -
    5630 // Zone name: America/Recife
    -
    5631 // Eras: 5
    -
    5632 //---------------------------------------------------------------------------
    -
    5633 
    -
    5634 static const extended::Info::ZoneEra kZoneEraAmerica_Recife[] ACE_TIME_PROGMEM = {
    -
    5635  // -3:00 - %z 1999 Sep 30
    -
    5636  {
    -
    5637  nullptr /*zonePolicy*/,
    -
    5638  "" /*format*/,
    -
    5639  -12 /*offsetCode*/,
    -
    5640  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5641  -101 /*untilYearTiny*/,
    -
    5642  9 /*untilMonth*/,
    -
    5643  30 /*untilDay*/,
    -
    5644  0 /*untilTimeCode*/,
    -
    5645  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5646  },
    -
    5647  // -3:00 Brazil %z 2000 Oct 15
    -
    5648  {
    -
    5649  &kZonePolicyBrazil /*zonePolicy*/,
    -
    5650  "" /*format*/,
    -
    5651  -12 /*offsetCode*/,
    -
    5652  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5653  -100 /*untilYearTiny*/,
    -
    5654  10 /*untilMonth*/,
    -
    5655  15 /*untilDay*/,
    -
    5656  0 /*untilTimeCode*/,
    -
    5657  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5658  },
    -
    5659  // -3:00 - %z 2001 Sep 13
    -
    5660  {
    -
    5661  nullptr /*zonePolicy*/,
    -
    5662  "" /*format*/,
    -
    5663  -12 /*offsetCode*/,
    -
    5664  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5665  -99 /*untilYearTiny*/,
    -
    5666  9 /*untilMonth*/,
    -
    5667  13 /*untilDay*/,
    -
    5668  0 /*untilTimeCode*/,
    -
    5669  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5670  },
    -
    5671  // -3:00 Brazil %z 2002 Oct 1
    -
    5672  {
    -
    5673  &kZonePolicyBrazil /*zonePolicy*/,
    -
    5674  "" /*format*/,
    -
    5675  -12 /*offsetCode*/,
    -
    5676  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5677  -98 /*untilYearTiny*/,
    -
    5678  10 /*untilMonth*/,
    -
    5679  1 /*untilDay*/,
    -
    5680  0 /*untilTimeCode*/,
    -
    5681  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5682  },
    -
    5683  // -3:00 - %z
    -
    5684  {
    -
    5685  nullptr /*zonePolicy*/,
    -
    5686  "" /*format*/,
    -
    5687  -12 /*offsetCode*/,
    -
    5688  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5689  127 /*untilYearTiny*/,
    -
    5690  1 /*untilMonth*/,
    -
    5691  1 /*untilDay*/,
    -
    5692  0 /*untilTimeCode*/,
    -
    5693  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5694  },
    -
    5695 
    -
    5696 };
    -
    5697 
    -
    5698 static const char kZoneNameAmerica_Recife[] ACE_TIME_PROGMEM = "\x02" "Recife";
    -
    5699 
    -
    5700 const extended::Info::ZoneInfo kZoneAmerica_Recife ACE_TIME_PROGMEM = {
    -
    5701  kZoneNameAmerica_Recife /*name*/,
    -
    5702  0xb8730494 /*zoneId*/,
    -
    5703  &kZoneContext /*zoneContext*/,
    -
    5704  5 /*numEras*/,
    -
    5705  kZoneEraAmerica_Recife /*eras*/,
    -
    5706  nullptr /*targetInfo*/,
    -
    5707 };
    -
    5708 
    -
    5709 //---------------------------------------------------------------------------
    -
    5710 // Zone name: America/Regina
    -
    5711 // Eras: 1
    -
    5712 //---------------------------------------------------------------------------
    -
    5713 
    -
    5714 static const extended::Info::ZoneEra kZoneEraAmerica_Regina[] ACE_TIME_PROGMEM = {
    -
    5715  // -6:00 - CST
    -
    5716  {
    -
    5717  nullptr /*zonePolicy*/,
    -
    5718  "CST" /*format*/,
    -
    5719  -24 /*offsetCode*/,
    -
    5720  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5721  127 /*untilYearTiny*/,
    -
    5722  1 /*untilMonth*/,
    -
    5723  1 /*untilDay*/,
    -
    5724  0 /*untilTimeCode*/,
    -
    5725  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5726  },
    -
    5727 
    -
    5728 };
    -
    5729 
    -
    5730 static const char kZoneNameAmerica_Regina[] ACE_TIME_PROGMEM = "\x02" "Regina";
    -
    5731 
    -
    5732 const extended::Info::ZoneInfo kZoneAmerica_Regina ACE_TIME_PROGMEM = {
    -
    5733  kZoneNameAmerica_Regina /*name*/,
    -
    5734  0xb875371c /*zoneId*/,
    -
    5735  &kZoneContext /*zoneContext*/,
    -
    5736  1 /*numEras*/,
    -
    5737  kZoneEraAmerica_Regina /*eras*/,
    -
    5738  nullptr /*targetInfo*/,
    -
    5739 };
    -
    5740 
    -
    5741 //---------------------------------------------------------------------------
    -
    5742 // Zone name: America/Resolute
    -
    5743 // Eras: 5
    -
    5744 //---------------------------------------------------------------------------
    -
    5745 
    -
    5746 static const extended::Info::ZoneEra kZoneEraAmerica_Resolute[] ACE_TIME_PROGMEM = {
    -
    5747  // -6:00 NT_YK C%sT 2000 Oct 29 2:00
    -
    5748  {
    -
    5749  &kZonePolicyNT_YK /*zonePolicy*/,
    -
    5750  "C%T" /*format*/,
    -
    5751  -24 /*offsetCode*/,
    -
    5752  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5753  -100 /*untilYearTiny*/,
    -
    5754  10 /*untilMonth*/,
    -
    5755  29 /*untilDay*/,
    -
    5756  8 /*untilTimeCode*/,
    -
    5757  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5758  },
    -
    5759  // -5:00 - EST 2001 Apr 1 3:00
    -
    5760  {
    -
    5761  nullptr /*zonePolicy*/,
    -
    5762  "EST" /*format*/,
    -
    5763  -20 /*offsetCode*/,
    -
    5764  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5765  -99 /*untilYearTiny*/,
    -
    5766  4 /*untilMonth*/,
    -
    5767  1 /*untilDay*/,
    -
    5768  12 /*untilTimeCode*/,
    -
    5769  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5770  },
    -
    5771  // -6:00 Canada C%sT 2006 Oct 29 2:00
    -
    5772  {
    -
    5773  &kZonePolicyCanada /*zonePolicy*/,
    -
    5774  "C%T" /*format*/,
    -
    5775  -24 /*offsetCode*/,
    -
    5776  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5777  -94 /*untilYearTiny*/,
    -
    5778  10 /*untilMonth*/,
    -
    5779  29 /*untilDay*/,
    -
    5780  8 /*untilTimeCode*/,
    -
    5781  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5782  },
    -
    5783  // -5:00 - EST 2007 Mar 11 3:00
    -
    5784  {
    -
    5785  nullptr /*zonePolicy*/,
    -
    5786  "EST" /*format*/,
    -
    5787  -20 /*offsetCode*/,
    -
    5788  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5789  -93 /*untilYearTiny*/,
    -
    5790  3 /*untilMonth*/,
    -
    5791  11 /*untilDay*/,
    -
    5792  12 /*untilTimeCode*/,
    -
    5793  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5794  },
    -
    5795  // -6:00 Canada C%sT
    -
    5796  {
    -
    5797  &kZonePolicyCanada /*zonePolicy*/,
    -
    5798  "C%T" /*format*/,
    -
    5799  -24 /*offsetCode*/,
    -
    5800  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5801  127 /*untilYearTiny*/,
    -
    5802  1 /*untilMonth*/,
    -
    5803  1 /*untilDay*/,
    -
    5804  0 /*untilTimeCode*/,
    -
    5805  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5806  },
    -
    5807 
    -
    5808 };
    -
    5809 
    -
    5810 static const char kZoneNameAmerica_Resolute[] ACE_TIME_PROGMEM = "\x02" "Resolute";
    -
    5811 
    -
    5812 const extended::Info::ZoneInfo kZoneAmerica_Resolute ACE_TIME_PROGMEM = {
    -
    5813  kZoneNameAmerica_Resolute /*name*/,
    -
    5814  0xc7093459 /*zoneId*/,
    -
    5815  &kZoneContext /*zoneContext*/,
    -
    5816  5 /*numEras*/,
    -
    5817  kZoneEraAmerica_Resolute /*eras*/,
    -
    5818  nullptr /*targetInfo*/,
    -
    5819 };
    -
    5820 
    -
    5821 //---------------------------------------------------------------------------
    -
    5822 // Zone name: America/Rio_Branco
    -
    5823 // Eras: 3
    -
    5824 //---------------------------------------------------------------------------
    -
    5825 
    -
    5826 static const extended::Info::ZoneEra kZoneEraAmerica_Rio_Branco[] ACE_TIME_PROGMEM = {
    -
    5827  // -5:00 - %z 2008 Jun 24 0:00
    -
    5828  {
    -
    5829  nullptr /*zonePolicy*/,
    -
    5830  "" /*format*/,
    -
    5831  -20 /*offsetCode*/,
    -
    5832  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5833  -92 /*untilYearTiny*/,
    -
    5834  6 /*untilMonth*/,
    -
    5835  24 /*untilDay*/,
    -
    5836  0 /*untilTimeCode*/,
    -
    5837  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5838  },
    -
    5839  // -4:00 - %z 2013 Nov 10
    -
    5840  {
    -
    5841  nullptr /*zonePolicy*/,
    -
    5842  "" /*format*/,
    -
    5843  -16 /*offsetCode*/,
    -
    5844  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5845  -87 /*untilYearTiny*/,
    -
    5846  11 /*untilMonth*/,
    -
    5847  10 /*untilDay*/,
    -
    5848  0 /*untilTimeCode*/,
    -
    5849  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5850  },
    -
    5851  // -5:00 - %z
    -
    5852  {
    -
    5853  nullptr /*zonePolicy*/,
    -
    5854  "" /*format*/,
    -
    5855  -20 /*offsetCode*/,
    -
    5856  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5857  127 /*untilYearTiny*/,
    -
    5858  1 /*untilMonth*/,
    -
    5859  1 /*untilDay*/,
    -
    5860  0 /*untilTimeCode*/,
    -
    5861  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5862  },
    -
    5863 
    -
    5864 };
    -
    5865 
    -
    5866 static const char kZoneNameAmerica_Rio_Branco[] ACE_TIME_PROGMEM = "\x02" "Rio_Branco";
    -
    5867 
    -
    5868 const extended::Info::ZoneInfo kZoneAmerica_Rio_Branco ACE_TIME_PROGMEM = {
    -
    5869  kZoneNameAmerica_Rio_Branco /*name*/,
    -
    5870  0x9d352764 /*zoneId*/,
    -
    5871  &kZoneContext /*zoneContext*/,
    -
    5872  3 /*numEras*/,
    -
    5873  kZoneEraAmerica_Rio_Branco /*eras*/,
    -
    5874  nullptr /*targetInfo*/,
    -
    5875 };
    -
    5876 
    -
    5877 //---------------------------------------------------------------------------
    -
    5878 // Zone name: America/Santarem
    -
    5879 // Eras: 2
    -
    5880 //---------------------------------------------------------------------------
    -
    5881 
    -
    5882 static const extended::Info::ZoneEra kZoneEraAmerica_Santarem[] ACE_TIME_PROGMEM = {
    -
    5883  // -4:00 - %z 2008 Jun 24 0:00
    -
    5884  {
    -
    5885  nullptr /*zonePolicy*/,
    -
    5886  "" /*format*/,
    -
    5887  -16 /*offsetCode*/,
    -
    5888  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5889  -92 /*untilYearTiny*/,
    -
    5890  6 /*untilMonth*/,
    -
    5891  24 /*untilDay*/,
    -
    5892  0 /*untilTimeCode*/,
    -
    5893  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5894  },
    -
    5895  // -3:00 - %z
    -
    5896  {
    -
    5897  nullptr /*zonePolicy*/,
    -
    5898  "" /*format*/,
    -
    5899  -12 /*offsetCode*/,
    -
    5900  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5901  127 /*untilYearTiny*/,
    -
    5902  1 /*untilMonth*/,
    -
    5903  1 /*untilDay*/,
    -
    5904  0 /*untilTimeCode*/,
    -
    5905  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5906  },
    -
    5907 
    -
    5908 };
    -
    5909 
    -
    5910 static const char kZoneNameAmerica_Santarem[] ACE_TIME_PROGMEM = "\x02" "Santarem";
    -
    5911 
    -
    5912 const extended::Info::ZoneInfo kZoneAmerica_Santarem ACE_TIME_PROGMEM = {
    -
    5913  kZoneNameAmerica_Santarem /*name*/,
    -
    5914  0x740caec1 /*zoneId*/,
    -
    5915  &kZoneContext /*zoneContext*/,
    -
    5916  2 /*numEras*/,
    -
    5917  kZoneEraAmerica_Santarem /*eras*/,
    -
    5918  nullptr /*targetInfo*/,
    -
    5919 };
    -
    5920 
    -
    5921 //---------------------------------------------------------------------------
    -
    5922 // Zone name: America/Santiago
    -
    5923 // Eras: 1
    -
    5924 //---------------------------------------------------------------------------
    -
    5925 
    -
    5926 static const extended::Info::ZoneEra kZoneEraAmerica_Santiago[] ACE_TIME_PROGMEM = {
    -
    5927  // -4:00 Chile %z
    -
    5928  {
    -
    5929  &kZonePolicyChile /*zonePolicy*/,
    -
    5930  "" /*format*/,
    -
    5931  -16 /*offsetCode*/,
    -
    5932  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5933  127 /*untilYearTiny*/,
    -
    5934  1 /*untilMonth*/,
    -
    5935  1 /*untilDay*/,
    -
    5936  0 /*untilTimeCode*/,
    -
    5937  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5938  },
    -
    5939 
    -
    5940 };
    -
    5941 
    -
    5942 static const char kZoneNameAmerica_Santiago[] ACE_TIME_PROGMEM = "\x02" "Santiago";
    -
    5943 
    -
    5944 const extended::Info::ZoneInfo kZoneAmerica_Santiago ACE_TIME_PROGMEM = {
    -
    5945  kZoneNameAmerica_Santiago /*name*/,
    -
    5946  0x7410c9bc /*zoneId*/,
    -
    5947  &kZoneContext /*zoneContext*/,
    -
    5948  1 /*numEras*/,
    -
    5949  kZoneEraAmerica_Santiago /*eras*/,
    -
    5950  nullptr /*targetInfo*/,
    -
    5951 };
    -
    5952 
    -
    5953 //---------------------------------------------------------------------------
    -
    5954 // Zone name: America/Santo_Domingo
    -
    5955 // Eras: 3
    -
    5956 //---------------------------------------------------------------------------
    -
    5957 
    -
    5958 static const extended::Info::ZoneEra kZoneEraAmerica_Santo_Domingo[] ACE_TIME_PROGMEM = {
    -
    5959  // -4:00 - AST 2000 Oct 29 2:00
    -
    5960  {
    -
    5961  nullptr /*zonePolicy*/,
    -
    5962  "AST" /*format*/,
    -
    5963  -16 /*offsetCode*/,
    -
    5964  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5965  -100 /*untilYearTiny*/,
    -
    5966  10 /*untilMonth*/,
    -
    5967  29 /*untilDay*/,
    -
    5968  8 /*untilTimeCode*/,
    -
    5969  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5970  },
    -
    5971  // -5:00 US E%sT 2000 Dec 3 1:00
    -
    5972  {
    -
    5973  &kZonePolicyUS /*zonePolicy*/,
    -
    5974  "E%T" /*format*/,
    -
    5975  -20 /*offsetCode*/,
    -
    5976  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5977  -100 /*untilYearTiny*/,
    -
    5978  12 /*untilMonth*/,
    -
    5979  3 /*untilDay*/,
    -
    5980  4 /*untilTimeCode*/,
    -
    5981  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5982  },
    -
    5983  // -4:00 - AST
    -
    5984  {
    -
    5985  nullptr /*zonePolicy*/,
    -
    5986  "AST" /*format*/,
    -
    5987  -16 /*offsetCode*/,
    -
    5988  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    5989  127 /*untilYearTiny*/,
    -
    5990  1 /*untilMonth*/,
    -
    5991  1 /*untilDay*/,
    -
    5992  0 /*untilTimeCode*/,
    -
    5993  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    5994  },
    -
    5995 
    -
    5996 };
    -
    5997 
    -
    5998 static const char kZoneNameAmerica_Santo_Domingo[] ACE_TIME_PROGMEM = "\x02" "Santo_Domingo";
    -
    5999 
    -
    6000 const extended::Info::ZoneInfo kZoneAmerica_Santo_Domingo ACE_TIME_PROGMEM = {
    -
    6001  kZoneNameAmerica_Santo_Domingo /*name*/,
    -
    6002  0x75a0d177 /*zoneId*/,
    -
    6003  &kZoneContext /*zoneContext*/,
    -
    6004  3 /*numEras*/,
    -
    6005  kZoneEraAmerica_Santo_Domingo /*eras*/,
    -
    6006  nullptr /*targetInfo*/,
    -
    6007 };
    -
    6008 
    -
    6009 //---------------------------------------------------------------------------
    -
    6010 // Zone name: America/Sao_Paulo
    -
    6011 // Eras: 1
    -
    6012 //---------------------------------------------------------------------------
    -
    6013 
    -
    6014 static const extended::Info::ZoneEra kZoneEraAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = {
    -
    6015  // -3:00 Brazil %z
    -
    6016  {
    -
    6017  &kZonePolicyBrazil /*zonePolicy*/,
    -
    6018  "" /*format*/,
    -
    6019  -12 /*offsetCode*/,
    -
    6020  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6021  127 /*untilYearTiny*/,
    -
    6022  1 /*untilMonth*/,
    -
    6023  1 /*untilDay*/,
    -
    6024  0 /*untilTimeCode*/,
    -
    6025  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6026  },
    -
    6027 
    -
    6028 };
    -
    6029 
    -
    6030 static const char kZoneNameAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = "\x02" "Sao_Paulo";
    -
    6031 
    -
    6032 const extended::Info::ZoneInfo kZoneAmerica_Sao_Paulo ACE_TIME_PROGMEM = {
    -
    6033  kZoneNameAmerica_Sao_Paulo /*name*/,
    -
    6034  0x1063bfc9 /*zoneId*/,
    -
    6035  &kZoneContext /*zoneContext*/,
    -
    6036  1 /*numEras*/,
    -
    6037  kZoneEraAmerica_Sao_Paulo /*eras*/,
    -
    6038  nullptr /*targetInfo*/,
    -
    6039 };
    -
    6040 
    -
    6041 //---------------------------------------------------------------------------
    -
    6042 // Zone name: America/Scoresbysund
    -
    6043 // Eras: 2
    -
    6044 //---------------------------------------------------------------------------
    -
    6045 
    -
    6046 static const extended::Info::ZoneEra kZoneEraAmerica_Scoresbysund[] ACE_TIME_PROGMEM = {
    -
    6047  // -1:00 EU %z 2024 Mar 31
    -
    6048  {
    -
    6049  &kZonePolicyEU /*zonePolicy*/,
    -
    6050  "" /*format*/,
    -
    6051  -4 /*offsetCode*/,
    -
    6052  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6053  -76 /*untilYearTiny*/,
    -
    6054  3 /*untilMonth*/,
    -
    6055  31 /*untilDay*/,
    -
    6056  0 /*untilTimeCode*/,
    -
    6057  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6058  },
    -
    6059  // -2:00 EU %z
    -
    6060  {
    -
    6061  &kZonePolicyEU /*zonePolicy*/,
    -
    6062  "" /*format*/,
    -
    6063  -8 /*offsetCode*/,
    -
    6064  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6065  127 /*untilYearTiny*/,
    -
    6066  1 /*untilMonth*/,
    -
    6067  1 /*untilDay*/,
    -
    6068  0 /*untilTimeCode*/,
    -
    6069  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6070  },
    -
    6071 
    -
    6072 };
    -
    6073 
    -
    6074 static const char kZoneNameAmerica_Scoresbysund[] ACE_TIME_PROGMEM = "\x02" "Scoresbysund";
    -
    6075 
    -
    6076 const extended::Info::ZoneInfo kZoneAmerica_Scoresbysund ACE_TIME_PROGMEM = {
    -
    6077  kZoneNameAmerica_Scoresbysund /*name*/,
    -
    6078  0x123f8d2a /*zoneId*/,
    -
    6079  &kZoneContext /*zoneContext*/,
    -
    6080  2 /*numEras*/,
    -
    6081  kZoneEraAmerica_Scoresbysund /*eras*/,
    -
    6082  nullptr /*targetInfo*/,
    -
    6083 };
    -
    6084 
    -
    6085 //---------------------------------------------------------------------------
    -
    6086 // Zone name: America/Sitka
    -
    6087 // Eras: 1
    -
    6088 //---------------------------------------------------------------------------
    -
    6089 
    -
    6090 static const extended::Info::ZoneEra kZoneEraAmerica_Sitka[] ACE_TIME_PROGMEM = {
    -
    6091  // -9:00 US AK%sT
    -
    6092  {
    -
    6093  &kZonePolicyUS /*zonePolicy*/,
    -
    6094  "AK%T" /*format*/,
    -
    6095  -36 /*offsetCode*/,
    -
    6096  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6097  127 /*untilYearTiny*/,
    -
    6098  1 /*untilMonth*/,
    -
    6099  1 /*untilDay*/,
    -
    6100  0 /*untilTimeCode*/,
    -
    6101  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6102  },
    -
    6103 
    -
    6104 };
    -
    6105 
    -
    6106 static const char kZoneNameAmerica_Sitka[] ACE_TIME_PROGMEM = "\x02" "Sitka";
    -
    6107 
    -
    6108 const extended::Info::ZoneInfo kZoneAmerica_Sitka ACE_TIME_PROGMEM = {
    -
    6109  kZoneNameAmerica_Sitka /*name*/,
    -
    6110  0x99104ce2 /*zoneId*/,
    -
    6111  &kZoneContext /*zoneContext*/,
    -
    6112  1 /*numEras*/,
    -
    6113  kZoneEraAmerica_Sitka /*eras*/,
    -
    6114  nullptr /*targetInfo*/,
    -
    6115 };
    -
    6116 
    -
    6117 //---------------------------------------------------------------------------
    -
    6118 // Zone name: America/St_Johns
    -
    6119 // Eras: 2
    -
    6120 //---------------------------------------------------------------------------
    -
    6121 
    -
    6122 static const extended::Info::ZoneEra kZoneEraAmerica_St_Johns[] ACE_TIME_PROGMEM = {
    -
    6123  // -3:30 StJohns N%sT 2011 Nov
    -
    6124  {
    -
    6125  &kZonePolicyStJohns /*zonePolicy*/,
    -
    6126  "N%T" /*format*/,
    -
    6127  -14 /*offsetCode*/,
    -
    6128  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6129  -89 /*untilYearTiny*/,
    -
    6130  11 /*untilMonth*/,
    -
    6131  1 /*untilDay*/,
    -
    6132  0 /*untilTimeCode*/,
    -
    6133  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6134  },
    -
    6135  // -3:30 Canada N%sT
    -
    6136  {
    -
    6137  &kZonePolicyCanada /*zonePolicy*/,
    -
    6138  "N%T" /*format*/,
    -
    6139  -14 /*offsetCode*/,
    -
    6140  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6141  127 /*untilYearTiny*/,
    -
    6142  1 /*untilMonth*/,
    -
    6143  1 /*untilDay*/,
    -
    6144  0 /*untilTimeCode*/,
    -
    6145  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6146  },
    -
    6147 
    -
    6148 };
    -
    6149 
    -
    6150 static const char kZoneNameAmerica_St_Johns[] ACE_TIME_PROGMEM = "\x02" "St_Johns";
    -
    6151 
    -
    6152 const extended::Info::ZoneInfo kZoneAmerica_St_Johns ACE_TIME_PROGMEM = {
    -
    6153  kZoneNameAmerica_St_Johns /*name*/,
    -
    6154  0x04b14e6e /*zoneId*/,
    -
    6155  &kZoneContext /*zoneContext*/,
    -
    6156  2 /*numEras*/,
    -
    6157  kZoneEraAmerica_St_Johns /*eras*/,
    -
    6158  nullptr /*targetInfo*/,
    -
    6159 };
    -
    6160 
    -
    6161 //---------------------------------------------------------------------------
    -
    6162 // Zone name: America/Swift_Current
    -
    6163 // Eras: 1
    -
    6164 //---------------------------------------------------------------------------
    -
    6165 
    -
    6166 static const extended::Info::ZoneEra kZoneEraAmerica_Swift_Current[] ACE_TIME_PROGMEM = {
    -
    6167  // -6:00 - CST
    -
    6168  {
    -
    6169  nullptr /*zonePolicy*/,
    -
    6170  "CST" /*format*/,
    -
    6171  -24 /*offsetCode*/,
    -
    6172  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6173  127 /*untilYearTiny*/,
    -
    6174  1 /*untilMonth*/,
    -
    6175  1 /*untilDay*/,
    -
    6176  0 /*untilTimeCode*/,
    -
    6177  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6178  },
    -
    6179 
    -
    6180 };
    -
    6181 
    -
    6182 static const char kZoneNameAmerica_Swift_Current[] ACE_TIME_PROGMEM = "\x02" "Swift_Current";
    -
    6183 
    -
    6184 const extended::Info::ZoneInfo kZoneAmerica_Swift_Current ACE_TIME_PROGMEM = {
    -
    6185  kZoneNameAmerica_Swift_Current /*name*/,
    -
    6186  0xdef98e55 /*zoneId*/,
    -
    6187  &kZoneContext /*zoneContext*/,
    -
    6188  1 /*numEras*/,
    -
    6189  kZoneEraAmerica_Swift_Current /*eras*/,
    -
    6190  nullptr /*targetInfo*/,
    -
    6191 };
    -
    6192 
    -
    6193 //---------------------------------------------------------------------------
    -
    6194 // Zone name: America/Tegucigalpa
    -
    6195 // Eras: 1
    -
    6196 //---------------------------------------------------------------------------
    -
    6197 
    -
    6198 static const extended::Info::ZoneEra kZoneEraAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = {
    -
    6199  // -6:00 Hond C%sT
    -
    6200  {
    -
    6201  &kZonePolicyHond /*zonePolicy*/,
    -
    6202  "C%T" /*format*/,
    -
    6203  -24 /*offsetCode*/,
    -
    6204  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6205  127 /*untilYearTiny*/,
    -
    6206  1 /*untilMonth*/,
    -
    6207  1 /*untilDay*/,
    -
    6208  0 /*untilTimeCode*/,
    -
    6209  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6210  },
    -
    6211 
    -
    6212 };
    -
    6213 
    -
    6214 static const char kZoneNameAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = "\x02" "Tegucigalpa";
    -
    6215 
    -
    6216 const extended::Info::ZoneInfo kZoneAmerica_Tegucigalpa ACE_TIME_PROGMEM = {
    -
    6217  kZoneNameAmerica_Tegucigalpa /*name*/,
    -
    6218  0xbfd6fd4c /*zoneId*/,
    -
    6219  &kZoneContext /*zoneContext*/,
    -
    6220  1 /*numEras*/,
    -
    6221  kZoneEraAmerica_Tegucigalpa /*eras*/,
    -
    6222  nullptr /*targetInfo*/,
    -
    6223 };
    -
    6224 
    -
    6225 //---------------------------------------------------------------------------
    -
    6226 // Zone name: America/Thule
    -
    6227 // Eras: 1
    -
    6228 //---------------------------------------------------------------------------
    -
    6229 
    -
    6230 static const extended::Info::ZoneEra kZoneEraAmerica_Thule[] ACE_TIME_PROGMEM = {
    -
    6231  // -4:00 Thule A%sT
    -
    6232  {
    -
    6233  &kZonePolicyThule /*zonePolicy*/,
    -
    6234  "A%T" /*format*/,
    -
    6235  -16 /*offsetCode*/,
    -
    6236  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6237  127 /*untilYearTiny*/,
    -
    6238  1 /*untilMonth*/,
    -
    6239  1 /*untilDay*/,
    -
    6240  0 /*untilTimeCode*/,
    -
    6241  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6242  },
    -
    6243 
    -
    6244 };
    -
    6245 
    -
    6246 static const char kZoneNameAmerica_Thule[] ACE_TIME_PROGMEM = "\x02" "Thule";
    -
    6247 
    -
    6248 const extended::Info::ZoneInfo kZoneAmerica_Thule ACE_TIME_PROGMEM = {
    -
    6249  kZoneNameAmerica_Thule /*name*/,
    -
    6250  0x9921dd68 /*zoneId*/,
    -
    6251  &kZoneContext /*zoneContext*/,
    -
    6252  1 /*numEras*/,
    -
    6253  kZoneEraAmerica_Thule /*eras*/,
    -
    6254  nullptr /*targetInfo*/,
    -
    6255 };
    -
    6256 
    -
    6257 //---------------------------------------------------------------------------
    -
    6258 // Zone name: America/Tijuana
    -
    6259 // Eras: 4
    -
    6260 //---------------------------------------------------------------------------
    -
    6261 
    -
    6262 static const extended::Info::ZoneEra kZoneEraAmerica_Tijuana[] ACE_TIME_PROGMEM = {
    -
    6263  // -8:00 Mexico P%sT 2001
    -
    6264  {
    -
    6265  &kZonePolicyMexico /*zonePolicy*/,
    -
    6266  "P%T" /*format*/,
    -
    6267  -32 /*offsetCode*/,
    -
    6268  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6269  -99 /*untilYearTiny*/,
    -
    6270  1 /*untilMonth*/,
    -
    6271  1 /*untilDay*/,
    -
    6272  0 /*untilTimeCode*/,
    -
    6273  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6274  },
    -
    6275  // -8:00 US P%sT 2002 Feb 20
    -
    6276  {
    -
    6277  &kZonePolicyUS /*zonePolicy*/,
    -
    6278  "P%T" /*format*/,
    -
    6279  -32 /*offsetCode*/,
    -
    6280  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6281  -98 /*untilYearTiny*/,
    -
    6282  2 /*untilMonth*/,
    -
    6283  20 /*untilDay*/,
    -
    6284  0 /*untilTimeCode*/,
    -
    6285  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6286  },
    -
    6287  // -8:00 Mexico P%sT 2010
    -
    6288  {
    -
    6289  &kZonePolicyMexico /*zonePolicy*/,
    -
    6290  "P%T" /*format*/,
    -
    6291  -32 /*offsetCode*/,
    -
    6292  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6293  -90 /*untilYearTiny*/,
    -
    6294  1 /*untilMonth*/,
    -
    6295  1 /*untilDay*/,
    -
    6296  0 /*untilTimeCode*/,
    -
    6297  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6298  },
    -
    6299  // -8:00 US P%sT
    -
    6300  {
    -
    6301  &kZonePolicyUS /*zonePolicy*/,
    -
    6302  "P%T" /*format*/,
    -
    6303  -32 /*offsetCode*/,
    -
    6304  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6305  127 /*untilYearTiny*/,
    -
    6306  1 /*untilMonth*/,
    -
    6307  1 /*untilDay*/,
    -
    6308  0 /*untilTimeCode*/,
    -
    6309  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6310  },
    -
    6311 
    -
    6312 };
    -
    6313 
    -
    6314 static const char kZoneNameAmerica_Tijuana[] ACE_TIME_PROGMEM = "\x02" "Tijuana";
    -
    6315 
    -
    6316 const extended::Info::ZoneInfo kZoneAmerica_Tijuana ACE_TIME_PROGMEM = {
    -
    6317  kZoneNameAmerica_Tijuana /*name*/,
    -
    6318  0x6aa1df72 /*zoneId*/,
    -
    6319  &kZoneContext /*zoneContext*/,
    -
    6320  4 /*numEras*/,
    -
    6321  kZoneEraAmerica_Tijuana /*eras*/,
    -
    6322  nullptr /*targetInfo*/,
    -
    6323 };
    -
    6324 
    -
    6325 //---------------------------------------------------------------------------
    -
    6326 // Zone name: America/Toronto
    -
    6327 // Eras: 1
    -
    6328 //---------------------------------------------------------------------------
    -
    6329 
    -
    6330 static const extended::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = {
    -
    6331  // -5:00 Canada E%sT
    -
    6332  {
    -
    6333  &kZonePolicyCanada /*zonePolicy*/,
    -
    6334  "E%T" /*format*/,
    -
    6335  -20 /*offsetCode*/,
    -
    6336  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6337  127 /*untilYearTiny*/,
    -
    6338  1 /*untilMonth*/,
    -
    6339  1 /*untilDay*/,
    -
    6340  0 /*untilTimeCode*/,
    -
    6341  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6342  },
    -
    6343 
    -
    6344 };
    -
    6345 
    -
    6346 static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "\x02" "Toronto";
    -
    6347 
    -
    6348 const extended::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = {
    -
    6349  kZoneNameAmerica_Toronto /*name*/,
    -
    6350  0x792e851b /*zoneId*/,
    -
    6351  &kZoneContext /*zoneContext*/,
    -
    6352  1 /*numEras*/,
    -
    6353  kZoneEraAmerica_Toronto /*eras*/,
    -
    6354  nullptr /*targetInfo*/,
    -
    6355 };
    -
    6356 
    -
    6357 //---------------------------------------------------------------------------
    -
    6358 // Zone name: America/Vancouver
    -
    6359 // Eras: 1
    -
    6360 //---------------------------------------------------------------------------
    -
    6361 
    -
    6362 static const extended::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = {
    -
    6363  // -8:00 Canada P%sT
    -
    6364  {
    -
    6365  &kZonePolicyCanada /*zonePolicy*/,
    -
    6366  "P%T" /*format*/,
    -
    6367  -32 /*offsetCode*/,
    -
    6368  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6369  127 /*untilYearTiny*/,
    -
    6370  1 /*untilMonth*/,
    -
    6371  1 /*untilDay*/,
    -
    6372  0 /*untilTimeCode*/,
    -
    6373  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6374  },
    -
    6375 
    -
    6376 };
    -
    6377 
    -
    6378 static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "\x02" "Vancouver";
    -
    6379 
    -
    6380 const extended::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = {
    -
    6381  kZoneNameAmerica_Vancouver /*name*/,
    -
    6382  0x2c6f6b1f /*zoneId*/,
    -
    6383  &kZoneContext /*zoneContext*/,
    -
    6384  1 /*numEras*/,
    -
    6385  kZoneEraAmerica_Vancouver /*eras*/,
    -
    6386  nullptr /*targetInfo*/,
    -
    6387 };
    -
    6388 
    -
    6389 //---------------------------------------------------------------------------
    -
    6390 // Zone name: America/Whitehorse
    -
    6391 // Eras: 2
    -
    6392 //---------------------------------------------------------------------------
    -
    6393 
    -
    6394 static const extended::Info::ZoneEra kZoneEraAmerica_Whitehorse[] ACE_TIME_PROGMEM = {
    -
    6395  // -8:00 Canada P%sT 2020 Nov 1
    -
    6396  {
    -
    6397  &kZonePolicyCanada /*zonePolicy*/,
    -
    6398  "P%T" /*format*/,
    -
    6399  -32 /*offsetCode*/,
    -
    6400  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6401  -80 /*untilYearTiny*/,
    -
    6402  11 /*untilMonth*/,
    -
    6403  1 /*untilDay*/,
    -
    6404  0 /*untilTimeCode*/,
    -
    6405  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6406  },
    -
    6407  // -7:00 - MST
    -
    6408  {
    -
    6409  nullptr /*zonePolicy*/,
    -
    6410  "MST" /*format*/,
    -
    6411  -28 /*offsetCode*/,
    -
    6412  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6413  127 /*untilYearTiny*/,
    -
    6414  1 /*untilMonth*/,
    -
    6415  1 /*untilDay*/,
    -
    6416  0 /*untilTimeCode*/,
    -
    6417  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6418  },
    -
    6419 
    -
    6420 };
    -
    6421 
    -
    6422 static const char kZoneNameAmerica_Whitehorse[] ACE_TIME_PROGMEM = "\x02" "Whitehorse";
    -
    6423 
    -
    6424 const extended::Info::ZoneInfo kZoneAmerica_Whitehorse ACE_TIME_PROGMEM = {
    -
    6425  kZoneNameAmerica_Whitehorse /*name*/,
    -
    6426  0x54e0e3e8 /*zoneId*/,
    -
    6427  &kZoneContext /*zoneContext*/,
    -
    6428  2 /*numEras*/,
    -
    6429  kZoneEraAmerica_Whitehorse /*eras*/,
    -
    6430  nullptr /*targetInfo*/,
    -
    6431 };
    -
    6432 
    -
    6433 //---------------------------------------------------------------------------
    -
    6434 // Zone name: America/Winnipeg
    -
    6435 // Eras: 2
    -
    6436 //---------------------------------------------------------------------------
    -
    6437 
    -
    6438 static const extended::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = {
    -
    6439  // -6:00 Winn C%sT 2006
    -
    6440  {
    -
    6441  &kZonePolicyWinn /*zonePolicy*/,
    -
    6442  "C%T" /*format*/,
    -
    6443  -24 /*offsetCode*/,
    -
    6444  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6445  -94 /*untilYearTiny*/,
    -
    6446  1 /*untilMonth*/,
    -
    6447  1 /*untilDay*/,
    -
    6448  0 /*untilTimeCode*/,
    -
    6449  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6450  },
    -
    6451  // -6:00 Canada C%sT
    -
    6452  {
    -
    6453  &kZonePolicyCanada /*zonePolicy*/,
    -
    6454  "C%T" /*format*/,
    -
    6455  -24 /*offsetCode*/,
    -
    6456  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6457  127 /*untilYearTiny*/,
    -
    6458  1 /*untilMonth*/,
    -
    6459  1 /*untilDay*/,
    -
    6460  0 /*untilTimeCode*/,
    -
    6461  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6462  },
    -
    6463 
    -
    6464 };
    -
    6465 
    -
    6466 static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "\x02" "Winnipeg";
    -
    6467 
    -
    6468 const extended::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = {
    -
    6469  kZoneNameAmerica_Winnipeg /*name*/,
    -
    6470  0x8c7dafc7 /*zoneId*/,
    -
    6471  &kZoneContext /*zoneContext*/,
    -
    6472  2 /*numEras*/,
    -
    6473  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    6474  nullptr /*targetInfo*/,
    -
    6475 };
    -
    6476 
    -
    6477 //---------------------------------------------------------------------------
    -
    6478 // Zone name: America/Yakutat
    -
    6479 // Eras: 1
    -
    6480 //---------------------------------------------------------------------------
    -
    6481 
    -
    6482 static const extended::Info::ZoneEra kZoneEraAmerica_Yakutat[] ACE_TIME_PROGMEM = {
    -
    6483  // -9:00 US AK%sT
    -
    6484  {
    -
    6485  &kZonePolicyUS /*zonePolicy*/,
    -
    6486  "AK%T" /*format*/,
    -
    6487  -36 /*offsetCode*/,
    -
    6488  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6489  127 /*untilYearTiny*/,
    -
    6490  1 /*untilMonth*/,
    -
    6491  1 /*untilDay*/,
    -
    6492  0 /*untilTimeCode*/,
    -
    6493  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6494  },
    -
    6495 
    -
    6496 };
    -
    6497 
    -
    6498 static const char kZoneNameAmerica_Yakutat[] ACE_TIME_PROGMEM = "\x02" "Yakutat";
    -
    6499 
    -
    6500 const extended::Info::ZoneInfo kZoneAmerica_Yakutat ACE_TIME_PROGMEM = {
    -
    6501  kZoneNameAmerica_Yakutat /*name*/,
    -
    6502  0xd8ee31e9 /*zoneId*/,
    -
    6503  &kZoneContext /*zoneContext*/,
    -
    6504  1 /*numEras*/,
    -
    6505  kZoneEraAmerica_Yakutat /*eras*/,
    -
    6506  nullptr /*targetInfo*/,
    -
    6507 };
    -
    6508 
    -
    6509 //---------------------------------------------------------------------------
    -
    6510 // Zone name: Antarctica/Casey
    -
    6511 // Eras: 17
    -
    6512 //---------------------------------------------------------------------------
    -
    6513 
    -
    6514 static const extended::Info::ZoneEra kZoneEraAntarctica_Casey[] ACE_TIME_PROGMEM = {
    -
    6515  // 8:00 - %z 2009 Oct 18 2:00
    -
    6516  {
    -
    6517  nullptr /*zonePolicy*/,
    -
    6518  "" /*format*/,
    -
    6519  32 /*offsetCode*/,
    -
    6520  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6521  -91 /*untilYearTiny*/,
    -
    6522  10 /*untilMonth*/,
    -
    6523  18 /*untilDay*/,
    -
    6524  8 /*untilTimeCode*/,
    -
    6525  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6526  },
    -
    6527  // 11:00 - %z 2010 Mar 5 2:00
    -
    6528  {
    -
    6529  nullptr /*zonePolicy*/,
    -
    6530  "" /*format*/,
    -
    6531  44 /*offsetCode*/,
    -
    6532  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6533  -90 /*untilYearTiny*/,
    -
    6534  3 /*untilMonth*/,
    -
    6535  5 /*untilDay*/,
    -
    6536  8 /*untilTimeCode*/,
    -
    6537  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6538  },
    -
    6539  // 8:00 - %z 2011 Oct 28 2:00
    -
    6540  {
    -
    6541  nullptr /*zonePolicy*/,
    -
    6542  "" /*format*/,
    -
    6543  32 /*offsetCode*/,
    -
    6544  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6545  -89 /*untilYearTiny*/,
    -
    6546  10 /*untilMonth*/,
    -
    6547  28 /*untilDay*/,
    -
    6548  8 /*untilTimeCode*/,
    -
    6549  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6550  },
    -
    6551  // 11:00 - %z 2012 Feb 21 17:00u
    -
    6552  {
    -
    6553  nullptr /*zonePolicy*/,
    -
    6554  "" /*format*/,
    -
    6555  44 /*offsetCode*/,
    -
    6556  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6557  -88 /*untilYearTiny*/,
    -
    6558  2 /*untilMonth*/,
    -
    6559  21 /*untilDay*/,
    -
    6560  68 /*untilTimeCode*/,
    -
    6561  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    6562  },
    -
    6563  // 8:00 - %z 2016 Oct 22
    -
    6564  {
    -
    6565  nullptr /*zonePolicy*/,
    -
    6566  "" /*format*/,
    -
    6567  32 /*offsetCode*/,
    -
    6568  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6569  -84 /*untilYearTiny*/,
    -
    6570  10 /*untilMonth*/,
    -
    6571  22 /*untilDay*/,
    -
    6572  0 /*untilTimeCode*/,
    -
    6573  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6574  },
    -
    6575  // 11:00 - %z 2018 Mar 11 4:00
    -
    6576  {
    -
    6577  nullptr /*zonePolicy*/,
    -
    6578  "" /*format*/,
    -
    6579  44 /*offsetCode*/,
    -
    6580  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6581  -82 /*untilYearTiny*/,
    -
    6582  3 /*untilMonth*/,
    -
    6583  11 /*untilDay*/,
    -
    6584  16 /*untilTimeCode*/,
    -
    6585  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6586  },
    -
    6587  // 8:00 - %z 2018 Oct 7 4:00
    -
    6588  {
    -
    6589  nullptr /*zonePolicy*/,
    -
    6590  "" /*format*/,
    -
    6591  32 /*offsetCode*/,
    -
    6592  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6593  -82 /*untilYearTiny*/,
    -
    6594  10 /*untilMonth*/,
    -
    6595  7 /*untilDay*/,
    -
    6596  16 /*untilTimeCode*/,
    -
    6597  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6598  },
    -
    6599  // 11:00 - %z 2019 Mar 17 3:00
    -
    6600  {
    -
    6601  nullptr /*zonePolicy*/,
    -
    6602  "" /*format*/,
    -
    6603  44 /*offsetCode*/,
    -
    6604  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6605  -81 /*untilYearTiny*/,
    -
    6606  3 /*untilMonth*/,
    -
    6607  17 /*untilDay*/,
    -
    6608  12 /*untilTimeCode*/,
    -
    6609  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6610  },
    -
    6611  // 8:00 - %z 2019 Oct 4 3:00
    -
    6612  {
    -
    6613  nullptr /*zonePolicy*/,
    -
    6614  "" /*format*/,
    -
    6615  32 /*offsetCode*/,
    -
    6616  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6617  -81 /*untilYearTiny*/,
    -
    6618  10 /*untilMonth*/,
    -
    6619  4 /*untilDay*/,
    -
    6620  12 /*untilTimeCode*/,
    -
    6621  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6622  },
    -
    6623  // 11:00 - %z 2020 Mar 8 3:00
    -
    6624  {
    -
    6625  nullptr /*zonePolicy*/,
    -
    6626  "" /*format*/,
    -
    6627  44 /*offsetCode*/,
    -
    6628  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6629  -80 /*untilYearTiny*/,
    -
    6630  3 /*untilMonth*/,
    -
    6631  8 /*untilDay*/,
    -
    6632  12 /*untilTimeCode*/,
    -
    6633  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6634  },
    -
    6635  // 8:00 - %z 2020 Oct 4 0:01
    -
    6636  {
    -
    6637  nullptr /*zonePolicy*/,
    -
    6638  "" /*format*/,
    -
    6639  32 /*offsetCode*/,
    -
    6640  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6641  -80 /*untilYearTiny*/,
    -
    6642  10 /*untilMonth*/,
    -
    6643  4 /*untilDay*/,
    -
    6644  0 /*untilTimeCode*/,
    -
    6645  1 /*untilTimeModifier (kSuffixW + minute=1)*/,
    -
    6646  },
    -
    6647  // 11:00 - %z 2021 Mar 14 0:00
    -
    6648  {
    -
    6649  nullptr /*zonePolicy*/,
    -
    6650  "" /*format*/,
    -
    6651  44 /*offsetCode*/,
    -
    6652  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6653  -79 /*untilYearTiny*/,
    -
    6654  3 /*untilMonth*/,
    -
    6655  14 /*untilDay*/,
    -
    6656  0 /*untilTimeCode*/,
    -
    6657  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6658  },
    -
    6659  // 8:00 - %z 2021 Oct 3 0:01
    -
    6660  {
    -
    6661  nullptr /*zonePolicy*/,
    -
    6662  "" /*format*/,
    -
    6663  32 /*offsetCode*/,
    -
    6664  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6665  -79 /*untilYearTiny*/,
    -
    6666  10 /*untilMonth*/,
    -
    6667  3 /*untilDay*/,
    -
    6668  0 /*untilTimeCode*/,
    -
    6669  1 /*untilTimeModifier (kSuffixW + minute=1)*/,
    -
    6670  },
    -
    6671  // 11:00 - %z 2022 Mar 13 0:00
    -
    6672  {
    -
    6673  nullptr /*zonePolicy*/,
    -
    6674  "" /*format*/,
    -
    6675  44 /*offsetCode*/,
    -
    6676  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6677  -78 /*untilYearTiny*/,
    -
    6678  3 /*untilMonth*/,
    -
    6679  13 /*untilDay*/,
    -
    6680  0 /*untilTimeCode*/,
    -
    6681  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6682  },
    -
    6683  // 8:00 - %z 2022 Oct 2 0:01
    -
    6684  {
    -
    6685  nullptr /*zonePolicy*/,
    -
    6686  "" /*format*/,
    -
    6687  32 /*offsetCode*/,
    -
    6688  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6689  -78 /*untilYearTiny*/,
    -
    6690  10 /*untilMonth*/,
    -
    6691  2 /*untilDay*/,
    -
    6692  0 /*untilTimeCode*/,
    -
    6693  1 /*untilTimeModifier (kSuffixW + minute=1)*/,
    -
    6694  },
    -
    6695  // 11:00 - %z 2023 Mar 9 3:00
    -
    6696  {
    -
    6697  nullptr /*zonePolicy*/,
    -
    6698  "" /*format*/,
    -
    6699  44 /*offsetCode*/,
    -
    6700  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6701  -77 /*untilYearTiny*/,
    -
    6702  3 /*untilMonth*/,
    -
    6703  9 /*untilDay*/,
    -
    6704  12 /*untilTimeCode*/,
    -
    6705  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6706  },
    -
    6707  // 8:00 - %z
    -
    6708  {
    -
    6709  nullptr /*zonePolicy*/,
    -
    6710  "" /*format*/,
    -
    6711  32 /*offsetCode*/,
    -
    6712  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6713  127 /*untilYearTiny*/,
    -
    6714  1 /*untilMonth*/,
    -
    6715  1 /*untilDay*/,
    -
    6716  0 /*untilTimeCode*/,
    -
    6717  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6718  },
    -
    6719 
    -
    6720 };
    -
    6721 
    -
    6722 static const char kZoneNameAntarctica_Casey[] ACE_TIME_PROGMEM = "\x03" "Casey";
    -
    6723 
    -
    6724 const extended::Info::ZoneInfo kZoneAntarctica_Casey ACE_TIME_PROGMEM = {
    -
    6725  kZoneNameAntarctica_Casey /*name*/,
    -
    6726  0xe2022583 /*zoneId*/,
    -
    6727  &kZoneContext /*zoneContext*/,
    -
    6728  17 /*numEras*/,
    -
    6729  kZoneEraAntarctica_Casey /*eras*/,
    -
    6730  nullptr /*targetInfo*/,
    -
    6731 };
    -
    6732 
    -
    6733 //---------------------------------------------------------------------------
    -
    6734 // Zone name: Antarctica/Davis
    -
    6735 // Eras: 5
    -
    6736 //---------------------------------------------------------------------------
    -
    6737 
    -
    6738 static const extended::Info::ZoneEra kZoneEraAntarctica_Davis[] ACE_TIME_PROGMEM = {
    -
    6739  // 7:00 - %z 2009 Oct 18 2:00
    -
    6740  {
    -
    6741  nullptr /*zonePolicy*/,
    -
    6742  "" /*format*/,
    -
    6743  28 /*offsetCode*/,
    -
    6744  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6745  -91 /*untilYearTiny*/,
    -
    6746  10 /*untilMonth*/,
    -
    6747  18 /*untilDay*/,
    -
    6748  8 /*untilTimeCode*/,
    -
    6749  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6750  },
    -
    6751  // 5:00 - %z 2010 Mar 10 20:00u
    -
    6752  {
    -
    6753  nullptr /*zonePolicy*/,
    -
    6754  "" /*format*/,
    -
    6755  20 /*offsetCode*/,
    -
    6756  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6757  -90 /*untilYearTiny*/,
    -
    6758  3 /*untilMonth*/,
    -
    6759  10 /*untilDay*/,
    -
    6760  80 /*untilTimeCode*/,
    -
    6761  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    6762  },
    -
    6763  // 7:00 - %z 2011 Oct 28 2:00
    -
    6764  {
    -
    6765  nullptr /*zonePolicy*/,
    -
    6766  "" /*format*/,
    -
    6767  28 /*offsetCode*/,
    -
    6768  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6769  -89 /*untilYearTiny*/,
    -
    6770  10 /*untilMonth*/,
    -
    6771  28 /*untilDay*/,
    -
    6772  8 /*untilTimeCode*/,
    -
    6773  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6774  },
    -
    6775  // 5:00 - %z 2012 Feb 21 20:00u
    -
    6776  {
    -
    6777  nullptr /*zonePolicy*/,
    -
    6778  "" /*format*/,
    -
    6779  20 /*offsetCode*/,
    -
    6780  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6781  -88 /*untilYearTiny*/,
    -
    6782  2 /*untilMonth*/,
    -
    6783  21 /*untilDay*/,
    -
    6784  80 /*untilTimeCode*/,
    -
    6785  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    6786  },
    -
    6787  // 7:00 - %z
    -
    6788  {
    -
    6789  nullptr /*zonePolicy*/,
    -
    6790  "" /*format*/,
    -
    6791  28 /*offsetCode*/,
    -
    6792  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6793  127 /*untilYearTiny*/,
    -
    6794  1 /*untilMonth*/,
    -
    6795  1 /*untilDay*/,
    -
    6796  0 /*untilTimeCode*/,
    -
    6797  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6798  },
    -
    6799 
    -
    6800 };
    -
    6801 
    -
    6802 static const char kZoneNameAntarctica_Davis[] ACE_TIME_PROGMEM = "\x03" "Davis";
    -
    6803 
    -
    6804 const extended::Info::ZoneInfo kZoneAntarctica_Davis ACE_TIME_PROGMEM = {
    -
    6805  kZoneNameAntarctica_Davis /*name*/,
    -
    6806  0xe2144b45 /*zoneId*/,
    -
    6807  &kZoneContext /*zoneContext*/,
    -
    6808  5 /*numEras*/,
    -
    6809  kZoneEraAntarctica_Davis /*eras*/,
    -
    6810  nullptr /*targetInfo*/,
    -
    6811 };
    -
    6812 
    -
    6813 //---------------------------------------------------------------------------
    -
    6814 // Zone name: Antarctica/Macquarie
    -
    6815 // Eras: 3
    -
    6816 //---------------------------------------------------------------------------
    -
    6817 
    -
    6818 static const extended::Info::ZoneEra kZoneEraAntarctica_Macquarie[] ACE_TIME_PROGMEM = {
    -
    6819  // 10:00 AT AE%sT 2010
    -
    6820  {
    -
    6821  &kZonePolicyAT /*zonePolicy*/,
    -
    6822  "AE%T" /*format*/,
    -
    6823  40 /*offsetCode*/,
    -
    6824  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6825  -90 /*untilYearTiny*/,
    -
    6826  1 /*untilMonth*/,
    -
    6827  1 /*untilDay*/,
    -
    6828  0 /*untilTimeCode*/,
    -
    6829  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6830  },
    -
    6831  // 10:00 1:00 AEDT 2011
    -
    6832  {
    -
    6833  nullptr /*zonePolicy*/,
    -
    6834  "AEDT" /*format*/,
    -
    6835  40 /*offsetCode*/,
    -
    6836  8 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=60)/15 + 4))*/,
    -
    6837  -89 /*untilYearTiny*/,
    -
    6838  1 /*untilMonth*/,
    -
    6839  1 /*untilDay*/,
    -
    6840  0 /*untilTimeCode*/,
    -
    6841  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6842  },
    -
    6843  // 10:00 AT AE%sT
    -
    6844  {
    -
    6845  &kZonePolicyAT /*zonePolicy*/,
    -
    6846  "AE%T" /*format*/,
    -
    6847  40 /*offsetCode*/,
    -
    6848  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6849  127 /*untilYearTiny*/,
    -
    6850  1 /*untilMonth*/,
    -
    6851  1 /*untilDay*/,
    -
    6852  0 /*untilTimeCode*/,
    -
    6853  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6854  },
    -
    6855 
    -
    6856 };
    -
    6857 
    -
    6858 static const char kZoneNameAntarctica_Macquarie[] ACE_TIME_PROGMEM = "\x03" "Macquarie";
    -
    6859 
    -
    6860 const extended::Info::ZoneInfo kZoneAntarctica_Macquarie ACE_TIME_PROGMEM = {
    -
    6861  kZoneNameAntarctica_Macquarie /*name*/,
    -
    6862  0x92f47626 /*zoneId*/,
    -
    6863  &kZoneContext /*zoneContext*/,
    -
    6864  3 /*numEras*/,
    -
    6865  kZoneEraAntarctica_Macquarie /*eras*/,
    -
    6866  nullptr /*targetInfo*/,
    -
    6867 };
    -
    6868 
    -
    6869 //---------------------------------------------------------------------------
    -
    6870 // Zone name: Antarctica/Mawson
    -
    6871 // Eras: 2
    -
    6872 //---------------------------------------------------------------------------
    -
    6873 
    -
    6874 static const extended::Info::ZoneEra kZoneEraAntarctica_Mawson[] ACE_TIME_PROGMEM = {
    -
    6875  // 6:00 - %z 2009 Oct 18 2:00
    -
    6876  {
    -
    6877  nullptr /*zonePolicy*/,
    -
    6878  "" /*format*/,
    -
    6879  24 /*offsetCode*/,
    -
    6880  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6881  -91 /*untilYearTiny*/,
    -
    6882  10 /*untilMonth*/,
    -
    6883  18 /*untilDay*/,
    -
    6884  8 /*untilTimeCode*/,
    -
    6885  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6886  },
    -
    6887  // 5:00 - %z
    -
    6888  {
    -
    6889  nullptr /*zonePolicy*/,
    -
    6890  "" /*format*/,
    -
    6891  20 /*offsetCode*/,
    -
    6892  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6893  127 /*untilYearTiny*/,
    -
    6894  1 /*untilMonth*/,
    -
    6895  1 /*untilDay*/,
    -
    6896  0 /*untilTimeCode*/,
    -
    6897  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6898  },
    -
    6899 
    -
    6900 };
    -
    6901 
    -
    6902 static const char kZoneNameAntarctica_Mawson[] ACE_TIME_PROGMEM = "\x03" "Mawson";
    -
    6903 
    -
    6904 const extended::Info::ZoneInfo kZoneAntarctica_Mawson ACE_TIME_PROGMEM = {
    -
    6905  kZoneNameAntarctica_Mawson /*name*/,
    -
    6906  0x399cd863 /*zoneId*/,
    -
    6907  &kZoneContext /*zoneContext*/,
    -
    6908  2 /*numEras*/,
    -
    6909  kZoneEraAntarctica_Mawson /*eras*/,
    -
    6910  nullptr /*targetInfo*/,
    -
    6911 };
    -
    6912 
    -
    6913 //---------------------------------------------------------------------------
    -
    6914 // Zone name: Antarctica/Palmer
    -
    6915 // Eras: 2
    -
    6916 //---------------------------------------------------------------------------
    -
    6917 
    -
    6918 static const extended::Info::ZoneEra kZoneEraAntarctica_Palmer[] ACE_TIME_PROGMEM = {
    -
    6919  // -4:00 Chile %z 2016 Dec 4
    -
    6920  {
    -
    6921  &kZonePolicyChile /*zonePolicy*/,
    -
    6922  "" /*format*/,
    -
    6923  -16 /*offsetCode*/,
    -
    6924  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6925  -84 /*untilYearTiny*/,
    -
    6926  12 /*untilMonth*/,
    -
    6927  4 /*untilDay*/,
    -
    6928  0 /*untilTimeCode*/,
    -
    6929  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6930  },
    -
    6931  // -3:00 - %z
    -
    6932  {
    -
    6933  nullptr /*zonePolicy*/,
    -
    6934  "" /*format*/,
    -
    6935  -12 /*offsetCode*/,
    -
    6936  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6937  127 /*untilYearTiny*/,
    -
    6938  1 /*untilMonth*/,
    -
    6939  1 /*untilDay*/,
    -
    6940  0 /*untilTimeCode*/,
    -
    6941  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6942  },
    -
    6943 
    -
    6944 };
    -
    6945 
    -
    6946 static const char kZoneNameAntarctica_Palmer[] ACE_TIME_PROGMEM = "\x03" "Palmer";
    -
    6947 
    -
    6948 const extended::Info::ZoneInfo kZoneAntarctica_Palmer ACE_TIME_PROGMEM = {
    -
    6949  kZoneNameAntarctica_Palmer /*name*/,
    -
    6950  0x40962f4f /*zoneId*/,
    -
    6951  &kZoneContext /*zoneContext*/,
    -
    6952  2 /*numEras*/,
    -
    6953  kZoneEraAntarctica_Palmer /*eras*/,
    -
    6954  nullptr /*targetInfo*/,
    -
    6955 };
    -
    6956 
    -
    6957 //---------------------------------------------------------------------------
    -
    6958 // Zone name: Antarctica/Rothera
    -
    6959 // Eras: 1
    -
    6960 //---------------------------------------------------------------------------
    -
    6961 
    -
    6962 static const extended::Info::ZoneEra kZoneEraAntarctica_Rothera[] ACE_TIME_PROGMEM = {
    -
    6963  // -3:00 - %z
    -
    6964  {
    -
    6965  nullptr /*zonePolicy*/,
    -
    6966  "" /*format*/,
    -
    6967  -12 /*offsetCode*/,
    -
    6968  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    6969  127 /*untilYearTiny*/,
    -
    6970  1 /*untilMonth*/,
    -
    6971  1 /*untilDay*/,
    -
    6972  0 /*untilTimeCode*/,
    -
    6973  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    6974  },
    -
    6975 
    -
    6976 };
    -
    6977 
    -
    6978 static const char kZoneNameAntarctica_Rothera[] ACE_TIME_PROGMEM = "\x03" "Rothera";
    -
    6979 
    -
    6980 const extended::Info::ZoneInfo kZoneAntarctica_Rothera ACE_TIME_PROGMEM = {
    -
    6981  kZoneNameAntarctica_Rothera /*name*/,
    -
    6982  0x0e86d203 /*zoneId*/,
    -
    6983  &kZoneContext /*zoneContext*/,
    -
    6984  1 /*numEras*/,
    -
    6985  kZoneEraAntarctica_Rothera /*eras*/,
    -
    6986  nullptr /*targetInfo*/,
    -
    6987 };
    -
    6988 
    -
    6989 //---------------------------------------------------------------------------
    -
    6990 // Zone name: Antarctica/Troll
    -
    6991 // Eras: 2
    -
    6992 //---------------------------------------------------------------------------
    -
    6993 
    -
    6994 static const extended::Info::ZoneEra kZoneEraAntarctica_Troll[] ACE_TIME_PROGMEM = {
    -
    6995  // 0 - -00 2005 Feb 12
    -
    6996  {
    -
    6997  nullptr /*zonePolicy*/,
    -
    6998  "-00" /*format*/,
    -
    6999  0 /*offsetCode*/,
    -
    7000  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7001  -95 /*untilYearTiny*/,
    -
    7002  2 /*untilMonth*/,
    -
    7003  12 /*untilDay*/,
    -
    7004  0 /*untilTimeCode*/,
    -
    7005  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7006  },
    -
    7007  // 0:00 Troll %s
    -
    7008  {
    -
    7009  &kZonePolicyTroll /*zonePolicy*/,
    -
    7010  "%" /*format*/,
    -
    7011  0 /*offsetCode*/,
    -
    7012  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7013  127 /*untilYearTiny*/,
    -
    7014  1 /*untilMonth*/,
    -
    7015  1 /*untilDay*/,
    -
    7016  0 /*untilTimeCode*/,
    -
    7017  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7018  },
    -
    7019 
    -
    7020 };
    -
    7021 
    -
    7022 static const char kZoneNameAntarctica_Troll[] ACE_TIME_PROGMEM = "\x03" "Troll";
    -
    7023 
    -
    7024 const extended::Info::ZoneInfo kZoneAntarctica_Troll ACE_TIME_PROGMEM = {
    -
    7025  kZoneNameAntarctica_Troll /*name*/,
    -
    7026  0xe33f085b /*zoneId*/,
    -
    7027  &kZoneContext /*zoneContext*/,
    -
    7028  2 /*numEras*/,
    -
    7029  kZoneEraAntarctica_Troll /*eras*/,
    -
    7030  nullptr /*targetInfo*/,
    -
    7031 };
    -
    7032 
    -
    7033 //---------------------------------------------------------------------------
    -
    7034 // Zone name: Antarctica/Vostok
    -
    7035 // Eras: 2
    -
    7036 //---------------------------------------------------------------------------
    -
    7037 
    -
    7038 static const extended::Info::ZoneEra kZoneEraAntarctica_Vostok[] ACE_TIME_PROGMEM = {
    -
    7039  // 7:00 - %z 2023 Dec 18 2:00
    -
    7040  {
    -
    7041  nullptr /*zonePolicy*/,
    -
    7042  "" /*format*/,
    -
    7043  28 /*offsetCode*/,
    -
    7044  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7045  -77 /*untilYearTiny*/,
    -
    7046  12 /*untilMonth*/,
    -
    7047  18 /*untilDay*/,
    -
    7048  8 /*untilTimeCode*/,
    -
    7049  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7050  },
    -
    7051  // 5:00 - %z
    -
    7052  {
    -
    7053  nullptr /*zonePolicy*/,
    -
    7054  "" /*format*/,
    -
    7055  20 /*offsetCode*/,
    -
    7056  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7057  127 /*untilYearTiny*/,
    -
    7058  1 /*untilMonth*/,
    -
    7059  1 /*untilDay*/,
    -
    7060  0 /*untilTimeCode*/,
    -
    7061  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7062  },
    -
    7063 
    -
    7064 };
    -
    7065 
    -
    7066 static const char kZoneNameAntarctica_Vostok[] ACE_TIME_PROGMEM = "\x03" "Vostok";
    -
    7067 
    -
    7068 const extended::Info::ZoneInfo kZoneAntarctica_Vostok ACE_TIME_PROGMEM = {
    -
    7069  kZoneNameAntarctica_Vostok /*name*/,
    -
    7070  0x4f966fd4 /*zoneId*/,
    -
    7071  &kZoneContext /*zoneContext*/,
    -
    7072  2 /*numEras*/,
    -
    7073  kZoneEraAntarctica_Vostok /*eras*/,
    -
    7074  nullptr /*targetInfo*/,
    -
    7075 };
    -
    7076 
    -
    7077 //---------------------------------------------------------------------------
    -
    7078 // Zone name: Asia/Almaty
    -
    7079 // Eras: 3
    -
    7080 //---------------------------------------------------------------------------
    -
    7081 
    -
    7082 static const extended::Info::ZoneEra kZoneEraAsia_Almaty[] ACE_TIME_PROGMEM = {
    -
    7083  // 6:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    7084  {
    -
    7085  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    7086  "" /*format*/,
    -
    7087  24 /*offsetCode*/,
    -
    7088  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7089  -96 /*untilYearTiny*/,
    -
    7090  10 /*untilMonth*/,
    -
    7091  31 /*untilDay*/,
    -
    7092  8 /*untilTimeCode*/,
    -
    7093  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7094  },
    -
    7095  // 6:00 - %z 2024 Mar 1 0:00
    -
    7096  {
    -
    7097  nullptr /*zonePolicy*/,
    -
    7098  "" /*format*/,
    -
    7099  24 /*offsetCode*/,
    -
    7100  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7101  -76 /*untilYearTiny*/,
    -
    7102  3 /*untilMonth*/,
    -
    7103  1 /*untilDay*/,
    -
    7104  0 /*untilTimeCode*/,
    -
    7105  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7106  },
    -
    7107  // 5:00 - %z
    -
    7108  {
    -
    7109  nullptr /*zonePolicy*/,
    -
    7110  "" /*format*/,
    -
    7111  20 /*offsetCode*/,
    -
    7112  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7113  127 /*untilYearTiny*/,
    -
    7114  1 /*untilMonth*/,
    -
    7115  1 /*untilDay*/,
    -
    7116  0 /*untilTimeCode*/,
    -
    7117  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7118  },
    -
    7119 
    -
    7120 };
    -
    7121 
    -
    7122 static const char kZoneNameAsia_Almaty[] ACE_TIME_PROGMEM = "\x05" "Almaty";
    -
    7123 
    -
    7124 const extended::Info::ZoneInfo kZoneAsia_Almaty ACE_TIME_PROGMEM = {
    -
    7125  kZoneNameAsia_Almaty /*name*/,
    -
    7126  0xa61f41fa /*zoneId*/,
    -
    7127  &kZoneContext /*zoneContext*/,
    -
    7128  3 /*numEras*/,
    -
    7129  kZoneEraAsia_Almaty /*eras*/,
    -
    7130  nullptr /*targetInfo*/,
    -
    7131 };
    -
    7132 
    -
    7133 //---------------------------------------------------------------------------
    -
    7134 // Zone name: Asia/Amman
    -
    7135 // Eras: 2
    -
    7136 //---------------------------------------------------------------------------
    -
    7137 
    -
    7138 static const extended::Info::ZoneEra kZoneEraAsia_Amman[] ACE_TIME_PROGMEM = {
    -
    7139  // 2:00 Jordan EE%sT 2022 Oct 28 0:00s
    -
    7140  {
    -
    7141  &kZonePolicyJordan /*zonePolicy*/,
    -
    7142  "EE%T" /*format*/,
    -
    7143  8 /*offsetCode*/,
    -
    7144  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7145  -78 /*untilYearTiny*/,
    -
    7146  10 /*untilMonth*/,
    -
    7147  28 /*untilDay*/,
    -
    7148  0 /*untilTimeCode*/,
    -
    7149  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7150  },
    -
    7151  // 3:00 - %z
    -
    7152  {
    -
    7153  nullptr /*zonePolicy*/,
    -
    7154  "" /*format*/,
    -
    7155  12 /*offsetCode*/,
    -
    7156  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7157  127 /*untilYearTiny*/,
    -
    7158  1 /*untilMonth*/,
    -
    7159  1 /*untilDay*/,
    -
    7160  0 /*untilTimeCode*/,
    -
    7161  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7162  },
    -
    7163 
    -
    7164 };
    -
    7165 
    -
    7166 static const char kZoneNameAsia_Amman[] ACE_TIME_PROGMEM = "\x05" "Amman";
    -
    7167 
    -
    7168 const extended::Info::ZoneInfo kZoneAsia_Amman ACE_TIME_PROGMEM = {
    -
    7169  kZoneNameAsia_Amman /*name*/,
    -
    7170  0x148d21bc /*zoneId*/,
    -
    7171  &kZoneContext /*zoneContext*/,
    -
    7172  2 /*numEras*/,
    -
    7173  kZoneEraAsia_Amman /*eras*/,
    -
    7174  nullptr /*targetInfo*/,
    -
    7175 };
    -
    7176 
    -
    7177 //---------------------------------------------------------------------------
    -
    7178 // Zone name: Asia/Anadyr
    -
    7179 // Eras: 3
    -
    7180 //---------------------------------------------------------------------------
    -
    7181 
    -
    7182 static const extended::Info::ZoneEra kZoneEraAsia_Anadyr[] ACE_TIME_PROGMEM = {
    -
    7183  // 12:00 Russia %z 2010 Mar 28 2:00s
    -
    7184  {
    -
    7185  &kZonePolicyRussia /*zonePolicy*/,
    -
    7186  "" /*format*/,
    -
    7187  48 /*offsetCode*/,
    -
    7188  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7189  -90 /*untilYearTiny*/,
    -
    7190  3 /*untilMonth*/,
    -
    7191  28 /*untilDay*/,
    -
    7192  8 /*untilTimeCode*/,
    -
    7193  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7194  },
    -
    7195  // 11:00 Russia %z 2011 Mar 27 2:00s
    -
    7196  {
    -
    7197  &kZonePolicyRussia /*zonePolicy*/,
    -
    7198  "" /*format*/,
    -
    7199  44 /*offsetCode*/,
    -
    7200  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7201  -89 /*untilYearTiny*/,
    -
    7202  3 /*untilMonth*/,
    -
    7203  27 /*untilDay*/,
    -
    7204  8 /*untilTimeCode*/,
    -
    7205  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7206  },
    -
    7207  // 12:00 - %z
    -
    7208  {
    -
    7209  nullptr /*zonePolicy*/,
    -
    7210  "" /*format*/,
    -
    7211  48 /*offsetCode*/,
    -
    7212  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7213  127 /*untilYearTiny*/,
    -
    7214  1 /*untilMonth*/,
    -
    7215  1 /*untilDay*/,
    -
    7216  0 /*untilTimeCode*/,
    -
    7217  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7218  },
    -
    7219 
    -
    7220 };
    -
    7221 
    -
    7222 static const char kZoneNameAsia_Anadyr[] ACE_TIME_PROGMEM = "\x05" "Anadyr";
    -
    7223 
    -
    7224 const extended::Info::ZoneInfo kZoneAsia_Anadyr ACE_TIME_PROGMEM = {
    -
    7225  kZoneNameAsia_Anadyr /*name*/,
    -
    7226  0xa63cebd1 /*zoneId*/,
    -
    7227  &kZoneContext /*zoneContext*/,
    -
    7228  3 /*numEras*/,
    -
    7229  kZoneEraAsia_Anadyr /*eras*/,
    -
    7230  nullptr /*targetInfo*/,
    -
    7231 };
    -
    7232 
    -
    7233 //---------------------------------------------------------------------------
    -
    7234 // Zone name: Asia/Aqtau
    -
    7235 // Eras: 2
    -
    7236 //---------------------------------------------------------------------------
    -
    7237 
    -
    7238 static const extended::Info::ZoneEra kZoneEraAsia_Aqtau[] ACE_TIME_PROGMEM = {
    -
    7239  // 4:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    7240  {
    -
    7241  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    7242  "" /*format*/,
    -
    7243  16 /*offsetCode*/,
    -
    7244  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7245  -96 /*untilYearTiny*/,
    -
    7246  10 /*untilMonth*/,
    -
    7247  31 /*untilDay*/,
    -
    7248  8 /*untilTimeCode*/,
    -
    7249  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7250  },
    -
    7251  // 5:00 - %z
    -
    7252  {
    -
    7253  nullptr /*zonePolicy*/,
    -
    7254  "" /*format*/,
    -
    7255  20 /*offsetCode*/,
    -
    7256  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7257  127 /*untilYearTiny*/,
    -
    7258  1 /*untilMonth*/,
    -
    7259  1 /*untilDay*/,
    -
    7260  0 /*untilTimeCode*/,
    -
    7261  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7262  },
    -
    7263 
    -
    7264 };
    -
    7265 
    -
    7266 static const char kZoneNameAsia_Aqtau[] ACE_TIME_PROGMEM = "\x05" "Aqtau";
    -
    7267 
    -
    7268 const extended::Info::ZoneInfo kZoneAsia_Aqtau ACE_TIME_PROGMEM = {
    -
    7269  kZoneNameAsia_Aqtau /*name*/,
    -
    7270  0x148f710e /*zoneId*/,
    -
    7271  &kZoneContext /*zoneContext*/,
    -
    7272  2 /*numEras*/,
    -
    7273  kZoneEraAsia_Aqtau /*eras*/,
    -
    7274  nullptr /*targetInfo*/,
    -
    7275 };
    -
    7276 
    -
    7277 //---------------------------------------------------------------------------
    -
    7278 // Zone name: Asia/Aqtobe
    -
    7279 // Eras: 2
    -
    7280 //---------------------------------------------------------------------------
    -
    7281 
    -
    7282 static const extended::Info::ZoneEra kZoneEraAsia_Aqtobe[] ACE_TIME_PROGMEM = {
    -
    7283  // 5:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    7284  {
    -
    7285  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    7286  "" /*format*/,
    -
    7287  20 /*offsetCode*/,
    -
    7288  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7289  -96 /*untilYearTiny*/,
    -
    7290  10 /*untilMonth*/,
    -
    7291  31 /*untilDay*/,
    -
    7292  8 /*untilTimeCode*/,
    -
    7293  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7294  },
    -
    7295  // 5:00 - %z
    -
    7296  {
    -
    7297  nullptr /*zonePolicy*/,
    -
    7298  "" /*format*/,
    -
    7299  20 /*offsetCode*/,
    -
    7300  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7301  127 /*untilYearTiny*/,
    -
    7302  1 /*untilMonth*/,
    -
    7303  1 /*untilDay*/,
    -
    7304  0 /*untilTimeCode*/,
    -
    7305  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7306  },
    -
    7307 
    -
    7308 };
    -
    7309 
    -
    7310 static const char kZoneNameAsia_Aqtobe[] ACE_TIME_PROGMEM = "\x05" "Aqtobe";
    -
    7311 
    -
    7312 const extended::Info::ZoneInfo kZoneAsia_Aqtobe ACE_TIME_PROGMEM = {
    -
    7313  kZoneNameAsia_Aqtobe /*name*/,
    -
    7314  0xa67dcc4e /*zoneId*/,
    -
    7315  &kZoneContext /*zoneContext*/,
    -
    7316  2 /*numEras*/,
    -
    7317  kZoneEraAsia_Aqtobe /*eras*/,
    -
    7318  nullptr /*targetInfo*/,
    -
    7319 };
    -
    7320 
    -
    7321 //---------------------------------------------------------------------------
    -
    7322 // Zone name: Asia/Ashgabat
    -
    7323 // Eras: 1
    -
    7324 //---------------------------------------------------------------------------
    -
    7325 
    -
    7326 static const extended::Info::ZoneEra kZoneEraAsia_Ashgabat[] ACE_TIME_PROGMEM = {
    -
    7327  // 5:00 - %z
    -
    7328  {
    -
    7329  nullptr /*zonePolicy*/,
    -
    7330  "" /*format*/,
    -
    7331  20 /*offsetCode*/,
    -
    7332  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7333  127 /*untilYearTiny*/,
    -
    7334  1 /*untilMonth*/,
    -
    7335  1 /*untilDay*/,
    -
    7336  0 /*untilTimeCode*/,
    -
    7337  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7338  },
    -
    7339 
    -
    7340 };
    -
    7341 
    -
    7342 static const char kZoneNameAsia_Ashgabat[] ACE_TIME_PROGMEM = "\x05" "Ashgabat";
    -
    7343 
    -
    7344 const extended::Info::ZoneInfo kZoneAsia_Ashgabat ACE_TIME_PROGMEM = {
    -
    7345  kZoneNameAsia_Ashgabat /*name*/,
    -
    7346  0xba87598d /*zoneId*/,
    -
    7347  &kZoneContext /*zoneContext*/,
    -
    7348  1 /*numEras*/,
    -
    7349  kZoneEraAsia_Ashgabat /*eras*/,
    -
    7350  nullptr /*targetInfo*/,
    -
    7351 };
    -
    7352 
    -
    7353 //---------------------------------------------------------------------------
    -
    7354 // Zone name: Asia/Atyrau
    -
    7355 // Eras: 3
    -
    7356 //---------------------------------------------------------------------------
    -
    7357 
    -
    7358 static const extended::Info::ZoneEra kZoneEraAsia_Atyrau[] ACE_TIME_PROGMEM = {
    -
    7359  // 5:00 RussiaAsia %z 1999 Mar 28 2:00s
    -
    7360  {
    -
    7361  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    7362  "" /*format*/,
    -
    7363  20 /*offsetCode*/,
    -
    7364  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7365  -101 /*untilYearTiny*/,
    -
    7366  3 /*untilMonth*/,
    -
    7367  28 /*untilDay*/,
    -
    7368  8 /*untilTimeCode*/,
    -
    7369  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7370  },
    -
    7371  // 4:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    7372  {
    -
    7373  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    7374  "" /*format*/,
    -
    7375  16 /*offsetCode*/,
    -
    7376  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7377  -96 /*untilYearTiny*/,
    -
    7378  10 /*untilMonth*/,
    -
    7379  31 /*untilDay*/,
    -
    7380  8 /*untilTimeCode*/,
    -
    7381  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7382  },
    -
    7383  // 5:00 - %z
    -
    7384  {
    -
    7385  nullptr /*zonePolicy*/,
    -
    7386  "" /*format*/,
    -
    7387  20 /*offsetCode*/,
    -
    7388  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7389  127 /*untilYearTiny*/,
    -
    7390  1 /*untilMonth*/,
    -
    7391  1 /*untilDay*/,
    -
    7392  0 /*untilTimeCode*/,
    -
    7393  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7394  },
    -
    7395 
    -
    7396 };
    -
    7397 
    -
    7398 static const char kZoneNameAsia_Atyrau[] ACE_TIME_PROGMEM = "\x05" "Atyrau";
    -
    7399 
    -
    7400 const extended::Info::ZoneInfo kZoneAsia_Atyrau ACE_TIME_PROGMEM = {
    -
    7401  kZoneNameAsia_Atyrau /*name*/,
    -
    7402  0xa6b6e068 /*zoneId*/,
    -
    7403  &kZoneContext /*zoneContext*/,
    -
    7404  3 /*numEras*/,
    -
    7405  kZoneEraAsia_Atyrau /*eras*/,
    -
    7406  nullptr /*targetInfo*/,
    -
    7407 };
    -
    7408 
    -
    7409 //---------------------------------------------------------------------------
    -
    7410 // Zone name: Asia/Baghdad
    -
    7411 // Eras: 1
    -
    7412 //---------------------------------------------------------------------------
    -
    7413 
    -
    7414 static const extended::Info::ZoneEra kZoneEraAsia_Baghdad[] ACE_TIME_PROGMEM = {
    -
    7415  // 3:00 Iraq %z
    -
    7416  {
    -
    7417  &kZonePolicyIraq /*zonePolicy*/,
    -
    7418  "" /*format*/,
    -
    7419  12 /*offsetCode*/,
    -
    7420  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7421  127 /*untilYearTiny*/,
    -
    7422  1 /*untilMonth*/,
    -
    7423  1 /*untilDay*/,
    -
    7424  0 /*untilTimeCode*/,
    -
    7425  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7426  },
    -
    7427 
    -
    7428 };
    -
    7429 
    -
    7430 static const char kZoneNameAsia_Baghdad[] ACE_TIME_PROGMEM = "\x05" "Baghdad";
    -
    7431 
    -
    7432 const extended::Info::ZoneInfo kZoneAsia_Baghdad ACE_TIME_PROGMEM = {
    -
    7433  kZoneNameAsia_Baghdad /*name*/,
    -
    7434  0x9ceffbed /*zoneId*/,
    -
    7435  &kZoneContext /*zoneContext*/,
    -
    7436  1 /*numEras*/,
    -
    7437  kZoneEraAsia_Baghdad /*eras*/,
    -
    7438  nullptr /*targetInfo*/,
    -
    7439 };
    -
    7440 
    -
    7441 //---------------------------------------------------------------------------
    -
    7442 // Zone name: Asia/Baku
    -
    7443 // Eras: 1
    -
    7444 //---------------------------------------------------------------------------
    -
    7445 
    -
    7446 static const extended::Info::ZoneEra kZoneEraAsia_Baku[] ACE_TIME_PROGMEM = {
    -
    7447  // 4:00 Azer %z
    -
    7448  {
    -
    7449  &kZonePolicyAzer /*zonePolicy*/,
    -
    7450  "" /*format*/,
    -
    7451  16 /*offsetCode*/,
    -
    7452  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7453  127 /*untilYearTiny*/,
    -
    7454  1 /*untilMonth*/,
    -
    7455  1 /*untilDay*/,
    -
    7456  0 /*untilTimeCode*/,
    -
    7457  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7458  },
    -
    7459 
    -
    7460 };
    -
    7461 
    -
    7462 static const char kZoneNameAsia_Baku[] ACE_TIME_PROGMEM = "\x05" "Baku";
    -
    7463 
    -
    7464 const extended::Info::ZoneInfo kZoneAsia_Baku ACE_TIME_PROGMEM = {
    -
    7465  kZoneNameAsia_Baku /*name*/,
    -
    7466  0x1fa788b5 /*zoneId*/,
    -
    7467  &kZoneContext /*zoneContext*/,
    -
    7468  1 /*numEras*/,
    -
    7469  kZoneEraAsia_Baku /*eras*/,
    -
    7470  nullptr /*targetInfo*/,
    -
    7471 };
    -
    7472 
    -
    7473 //---------------------------------------------------------------------------
    -
    7474 // Zone name: Asia/Bangkok
    -
    7475 // Eras: 1
    -
    7476 //---------------------------------------------------------------------------
    -
    7477 
    -
    7478 static const extended::Info::ZoneEra kZoneEraAsia_Bangkok[] ACE_TIME_PROGMEM = {
    -
    7479  // 7:00 - %z
    -
    7480  {
    -
    7481  nullptr /*zonePolicy*/,
    -
    7482  "" /*format*/,
    -
    7483  28 /*offsetCode*/,
    -
    7484  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7485  127 /*untilYearTiny*/,
    -
    7486  1 /*untilMonth*/,
    -
    7487  1 /*untilDay*/,
    -
    7488  0 /*untilTimeCode*/,
    -
    7489  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7490  },
    -
    7491 
    -
    7492 };
    -
    7493 
    -
    7494 static const char kZoneNameAsia_Bangkok[] ACE_TIME_PROGMEM = "\x05" "Bangkok";
    -
    7495 
    -
    7496 const extended::Info::ZoneInfo kZoneAsia_Bangkok ACE_TIME_PROGMEM = {
    -
    7497  kZoneNameAsia_Bangkok /*name*/,
    -
    7498  0x9d6e3aaf /*zoneId*/,
    -
    7499  &kZoneContext /*zoneContext*/,
    -
    7500  1 /*numEras*/,
    -
    7501  kZoneEraAsia_Bangkok /*eras*/,
    -
    7502  nullptr /*targetInfo*/,
    -
    7503 };
    -
    7504 
    -
    7505 //---------------------------------------------------------------------------
    -
    7506 // Zone name: Asia/Barnaul
    -
    7507 // Eras: 4
    -
    7508 //---------------------------------------------------------------------------
    -
    7509 
    -
    7510 static const extended::Info::ZoneEra kZoneEraAsia_Barnaul[] ACE_TIME_PROGMEM = {
    -
    7511  // 6:00 Russia %z 2011 Mar 27 2:00s
    -
    7512  {
    -
    7513  &kZonePolicyRussia /*zonePolicy*/,
    -
    7514  "" /*format*/,
    -
    7515  24 /*offsetCode*/,
    -
    7516  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7517  -89 /*untilYearTiny*/,
    -
    7518  3 /*untilMonth*/,
    -
    7519  27 /*untilDay*/,
    -
    7520  8 /*untilTimeCode*/,
    -
    7521  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7522  },
    -
    7523  // 7:00 - %z 2014 Oct 26 2:00s
    -
    7524  {
    -
    7525  nullptr /*zonePolicy*/,
    -
    7526  "" /*format*/,
    -
    7527  28 /*offsetCode*/,
    -
    7528  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7529  -86 /*untilYearTiny*/,
    -
    7530  10 /*untilMonth*/,
    -
    7531  26 /*untilDay*/,
    -
    7532  8 /*untilTimeCode*/,
    -
    7533  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7534  },
    -
    7535  // 6:00 - %z 2016 Mar 27 2:00s
    -
    7536  {
    -
    7537  nullptr /*zonePolicy*/,
    -
    7538  "" /*format*/,
    -
    7539  24 /*offsetCode*/,
    -
    7540  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7541  -84 /*untilYearTiny*/,
    -
    7542  3 /*untilMonth*/,
    -
    7543  27 /*untilDay*/,
    -
    7544  8 /*untilTimeCode*/,
    -
    7545  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7546  },
    -
    7547  // 7:00 - %z
    -
    7548  {
    -
    7549  nullptr /*zonePolicy*/,
    -
    7550  "" /*format*/,
    -
    7551  28 /*offsetCode*/,
    -
    7552  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7553  127 /*untilYearTiny*/,
    -
    7554  1 /*untilMonth*/,
    -
    7555  1 /*untilDay*/,
    -
    7556  0 /*untilTimeCode*/,
    -
    7557  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7558  },
    -
    7559 
    -
    7560 };
    -
    7561 
    -
    7562 static const char kZoneNameAsia_Barnaul[] ACE_TIME_PROGMEM = "\x05" "Barnaul";
    -
    7563 
    -
    7564 const extended::Info::ZoneInfo kZoneAsia_Barnaul ACE_TIME_PROGMEM = {
    -
    7565  kZoneNameAsia_Barnaul /*name*/,
    -
    7566  0x9dba4997 /*zoneId*/,
    -
    7567  &kZoneContext /*zoneContext*/,
    -
    7568  4 /*numEras*/,
    -
    7569  kZoneEraAsia_Barnaul /*eras*/,
    -
    7570  nullptr /*targetInfo*/,
    -
    7571 };
    -
    7572 
    -
    7573 //---------------------------------------------------------------------------
    -
    7574 // Zone name: Asia/Beirut
    -
    7575 // Eras: 1
    -
    7576 //---------------------------------------------------------------------------
    -
    7577 
    -
    7578 static const extended::Info::ZoneEra kZoneEraAsia_Beirut[] ACE_TIME_PROGMEM = {
    -
    7579  // 2:00 Lebanon EE%sT
    -
    7580  {
    -
    7581  &kZonePolicyLebanon /*zonePolicy*/,
    -
    7582  "EE%T" /*format*/,
    -
    7583  8 /*offsetCode*/,
    -
    7584  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7585  127 /*untilYearTiny*/,
    -
    7586  1 /*untilMonth*/,
    -
    7587  1 /*untilDay*/,
    -
    7588  0 /*untilTimeCode*/,
    -
    7589  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7590  },
    -
    7591 
    -
    7592 };
    -
    7593 
    -
    7594 static const char kZoneNameAsia_Beirut[] ACE_TIME_PROGMEM = "\x05" "Beirut";
    -
    7595 
    -
    7596 const extended::Info::ZoneInfo kZoneAsia_Beirut ACE_TIME_PROGMEM = {
    -
    7597  kZoneNameAsia_Beirut /*name*/,
    -
    7598  0xa7f3d5fd /*zoneId*/,
    -
    7599  &kZoneContext /*zoneContext*/,
    -
    7600  1 /*numEras*/,
    -
    7601  kZoneEraAsia_Beirut /*eras*/,
    -
    7602  nullptr /*targetInfo*/,
    -
    7603 };
    -
    7604 
    -
    7605 //---------------------------------------------------------------------------
    -
    7606 // Zone name: Asia/Bishkek
    -
    7607 // Eras: 2
    -
    7608 //---------------------------------------------------------------------------
    -
    7609 
    -
    7610 static const extended::Info::ZoneEra kZoneEraAsia_Bishkek[] ACE_TIME_PROGMEM = {
    -
    7611  // 5:00 Kyrgyz %z 2005 Aug 12
    -
    7612  {
    -
    7613  &kZonePolicyKyrgyz /*zonePolicy*/,
    -
    7614  "" /*format*/,
    -
    7615  20 /*offsetCode*/,
    -
    7616  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7617  -95 /*untilYearTiny*/,
    -
    7618  8 /*untilMonth*/,
    -
    7619  12 /*untilDay*/,
    -
    7620  0 /*untilTimeCode*/,
    -
    7621  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7622  },
    -
    7623  // 6:00 - %z
    -
    7624  {
    -
    7625  nullptr /*zonePolicy*/,
    -
    7626  "" /*format*/,
    -
    7627  24 /*offsetCode*/,
    -
    7628  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7629  127 /*untilYearTiny*/,
    -
    7630  1 /*untilMonth*/,
    -
    7631  1 /*untilDay*/,
    -
    7632  0 /*untilTimeCode*/,
    -
    7633  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7634  },
    -
    7635 
    -
    7636 };
    -
    7637 
    -
    7638 static const char kZoneNameAsia_Bishkek[] ACE_TIME_PROGMEM = "\x05" "Bishkek";
    -
    7639 
    -
    7640 const extended::Info::ZoneInfo kZoneAsia_Bishkek ACE_TIME_PROGMEM = {
    -
    7641  kZoneNameAsia_Bishkek /*name*/,
    -
    7642  0xb0728553 /*zoneId*/,
    -
    7643  &kZoneContext /*zoneContext*/,
    -
    7644  2 /*numEras*/,
    -
    7645  kZoneEraAsia_Bishkek /*eras*/,
    -
    7646  nullptr /*targetInfo*/,
    -
    7647 };
    -
    7648 
    -
    7649 //---------------------------------------------------------------------------
    -
    7650 // Zone name: Asia/Chita
    -
    7651 // Eras: 4
    -
    7652 //---------------------------------------------------------------------------
    -
    7653 
    -
    7654 static const extended::Info::ZoneEra kZoneEraAsia_Chita[] ACE_TIME_PROGMEM = {
    -
    7655  // 9:00 Russia %z 2011 Mar 27 2:00s
    -
    7656  {
    -
    7657  &kZonePolicyRussia /*zonePolicy*/,
    -
    7658  "" /*format*/,
    -
    7659  36 /*offsetCode*/,
    -
    7660  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7661  -89 /*untilYearTiny*/,
    -
    7662  3 /*untilMonth*/,
    -
    7663  27 /*untilDay*/,
    -
    7664  8 /*untilTimeCode*/,
    -
    7665  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7666  },
    -
    7667  // 10:00 - %z 2014 Oct 26 2:00s
    -
    7668  {
    -
    7669  nullptr /*zonePolicy*/,
    -
    7670  "" /*format*/,
    -
    7671  40 /*offsetCode*/,
    -
    7672  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7673  -86 /*untilYearTiny*/,
    -
    7674  10 /*untilMonth*/,
    -
    7675  26 /*untilDay*/,
    -
    7676  8 /*untilTimeCode*/,
    -
    7677  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    7678  },
    -
    7679  // 8:00 - %z 2016 Mar 27 2:00
    -
    7680  {
    -
    7681  nullptr /*zonePolicy*/,
    -
    7682  "" /*format*/,
    -
    7683  32 /*offsetCode*/,
    -
    7684  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7685  -84 /*untilYearTiny*/,
    -
    7686  3 /*untilMonth*/,
    -
    7687  27 /*untilDay*/,
    -
    7688  8 /*untilTimeCode*/,
    -
    7689  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7690  },
    -
    7691  // 9:00 - %z
    -
    7692  {
    -
    7693  nullptr /*zonePolicy*/,
    -
    7694  "" /*format*/,
    -
    7695  36 /*offsetCode*/,
    -
    7696  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7697  127 /*untilYearTiny*/,
    -
    7698  1 /*untilMonth*/,
    -
    7699  1 /*untilDay*/,
    -
    7700  0 /*untilTimeCode*/,
    -
    7701  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7702  },
    -
    7703 
    -
    7704 };
    -
    7705 
    -
    7706 static const char kZoneNameAsia_Chita[] ACE_TIME_PROGMEM = "\x05" "Chita";
    -
    7707 
    -
    7708 const extended::Info::ZoneInfo kZoneAsia_Chita ACE_TIME_PROGMEM = {
    -
    7709  kZoneNameAsia_Chita /*name*/,
    -
    7710  0x14ae863b /*zoneId*/,
    -
    7711  &kZoneContext /*zoneContext*/,
    -
    7712  4 /*numEras*/,
    -
    7713  kZoneEraAsia_Chita /*eras*/,
    -
    7714  nullptr /*targetInfo*/,
    -
    7715 };
    -
    7716 
    -
    7717 //---------------------------------------------------------------------------
    -
    7718 // Zone name: Asia/Colombo
    -
    7719 // Eras: 2
    -
    7720 //---------------------------------------------------------------------------
    -
    7721 
    -
    7722 static const extended::Info::ZoneEra kZoneEraAsia_Colombo[] ACE_TIME_PROGMEM = {
    -
    7723  // 6:00 - %z 2006 Apr 15 0:30
    -
    7724  {
    -
    7725  nullptr /*zonePolicy*/,
    -
    7726  "" /*format*/,
    -
    7727  24 /*offsetCode*/,
    -
    7728  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7729  -94 /*untilYearTiny*/,
    -
    7730  4 /*untilMonth*/,
    -
    7731  15 /*untilDay*/,
    -
    7732  2 /*untilTimeCode*/,
    -
    7733  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7734  },
    -
    7735  // 5:30 - %z
    -
    7736  {
    -
    7737  nullptr /*zonePolicy*/,
    -
    7738  "" /*format*/,
    -
    7739  22 /*offsetCode*/,
    -
    7740  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7741  127 /*untilYearTiny*/,
    -
    7742  1 /*untilMonth*/,
    -
    7743  1 /*untilDay*/,
    -
    7744  0 /*untilTimeCode*/,
    -
    7745  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7746  },
    -
    7747 
    -
    7748 };
    -
    7749 
    -
    7750 static const char kZoneNameAsia_Colombo[] ACE_TIME_PROGMEM = "\x05" "Colombo";
    -
    7751 
    -
    7752 const extended::Info::ZoneInfo kZoneAsia_Colombo ACE_TIME_PROGMEM = {
    -
    7753  kZoneNameAsia_Colombo /*name*/,
    -
    7754  0x0af0e91d /*zoneId*/,
    -
    7755  &kZoneContext /*zoneContext*/,
    -
    7756  2 /*numEras*/,
    -
    7757  kZoneEraAsia_Colombo /*eras*/,
    -
    7758  nullptr /*targetInfo*/,
    -
    7759 };
    -
    7760 
    -
    7761 //---------------------------------------------------------------------------
    -
    7762 // Zone name: Asia/Damascus
    -
    7763 // Eras: 2
    -
    7764 //---------------------------------------------------------------------------
    -
    7765 
    -
    7766 static const extended::Info::ZoneEra kZoneEraAsia_Damascus[] ACE_TIME_PROGMEM = {
    -
    7767  // 2:00 Syria EE%sT 2022 Oct 28 0:00
    -
    7768  {
    -
    7769  &kZonePolicySyria /*zonePolicy*/,
    -
    7770  "EE%T" /*format*/,
    -
    7771  8 /*offsetCode*/,
    -
    7772  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7773  -78 /*untilYearTiny*/,
    -
    7774  10 /*untilMonth*/,
    -
    7775  28 /*untilDay*/,
    -
    7776  0 /*untilTimeCode*/,
    -
    7777  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7778  },
    -
    7779  // 3:00 - %z
    -
    7780  {
    -
    7781  nullptr /*zonePolicy*/,
    -
    7782  "" /*format*/,
    -
    7783  12 /*offsetCode*/,
    -
    7784  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7785  127 /*untilYearTiny*/,
    -
    7786  1 /*untilMonth*/,
    -
    7787  1 /*untilDay*/,
    -
    7788  0 /*untilTimeCode*/,
    -
    7789  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7790  },
    -
    7791 
    -
    7792 };
    -
    7793 
    -
    7794 static const char kZoneNameAsia_Damascus[] ACE_TIME_PROGMEM = "\x05" "Damascus";
    -
    7795 
    -
    7796 const extended::Info::ZoneInfo kZoneAsia_Damascus ACE_TIME_PROGMEM = {
    -
    7797  kZoneNameAsia_Damascus /*name*/,
    -
    7798  0x20fbb063 /*zoneId*/,
    -
    7799  &kZoneContext /*zoneContext*/,
    -
    7800  2 /*numEras*/,
    -
    7801  kZoneEraAsia_Damascus /*eras*/,
    -
    7802  nullptr /*targetInfo*/,
    -
    7803 };
    -
    7804 
    -
    7805 //---------------------------------------------------------------------------
    -
    7806 // Zone name: Asia/Dhaka
    -
    7807 // Eras: 2
    -
    7808 //---------------------------------------------------------------------------
    -
    7809 
    -
    7810 static const extended::Info::ZoneEra kZoneEraAsia_Dhaka[] ACE_TIME_PROGMEM = {
    -
    7811  // 6:00 - %z 2009
    -
    7812  {
    -
    7813  nullptr /*zonePolicy*/,
    -
    7814  "" /*format*/,
    -
    7815  24 /*offsetCode*/,
    -
    7816  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7817  -91 /*untilYearTiny*/,
    -
    7818  1 /*untilMonth*/,
    -
    7819  1 /*untilDay*/,
    -
    7820  0 /*untilTimeCode*/,
    -
    7821  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7822  },
    -
    7823  // 6:00 Dhaka %z
    -
    7824  {
    -
    7825  &kZonePolicyDhaka /*zonePolicy*/,
    -
    7826  "" /*format*/,
    -
    7827  24 /*offsetCode*/,
    -
    7828  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7829  127 /*untilYearTiny*/,
    -
    7830  1 /*untilMonth*/,
    -
    7831  1 /*untilDay*/,
    -
    7832  0 /*untilTimeCode*/,
    -
    7833  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7834  },
    -
    7835 
    -
    7836 };
    -
    7837 
    -
    7838 static const char kZoneNameAsia_Dhaka[] ACE_TIME_PROGMEM = "\x05" "Dhaka";
    -
    7839 
    -
    7840 const extended::Info::ZoneInfo kZoneAsia_Dhaka ACE_TIME_PROGMEM = {
    -
    7841  kZoneNameAsia_Dhaka /*name*/,
    -
    7842  0x14c07b8b /*zoneId*/,
    -
    7843  &kZoneContext /*zoneContext*/,
    -
    7844  2 /*numEras*/,
    -
    7845  kZoneEraAsia_Dhaka /*eras*/,
    -
    7846  nullptr /*targetInfo*/,
    -
    7847 };
    -
    7848 
    -
    7849 //---------------------------------------------------------------------------
    -
    7850 // Zone name: Asia/Dili
    -
    7851 // Eras: 2
    -
    7852 //---------------------------------------------------------------------------
    -
    7853 
    -
    7854 static const extended::Info::ZoneEra kZoneEraAsia_Dili[] ACE_TIME_PROGMEM = {
    -
    7855  // 8:00 - %z 2000 Sep 17 0:00
    -
    7856  {
    -
    7857  nullptr /*zonePolicy*/,
    -
    7858  "" /*format*/,
    -
    7859  32 /*offsetCode*/,
    -
    7860  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7861  -100 /*untilYearTiny*/,
    -
    7862  9 /*untilMonth*/,
    -
    7863  17 /*untilDay*/,
    -
    7864  0 /*untilTimeCode*/,
    -
    7865  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7866  },
    -
    7867  // 9:00 - %z
    -
    7868  {
    -
    7869  nullptr /*zonePolicy*/,
    -
    7870  "" /*format*/,
    -
    7871  36 /*offsetCode*/,
    -
    7872  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7873  127 /*untilYearTiny*/,
    -
    7874  1 /*untilMonth*/,
    -
    7875  1 /*untilDay*/,
    -
    7876  0 /*untilTimeCode*/,
    -
    7877  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7878  },
    -
    7879 
    -
    7880 };
    -
    7881 
    -
    7882 static const char kZoneNameAsia_Dili[] ACE_TIME_PROGMEM = "\x05" "Dili";
    -
    7883 
    -
    7884 const extended::Info::ZoneInfo kZoneAsia_Dili ACE_TIME_PROGMEM = {
    -
    7885  kZoneNameAsia_Dili /*name*/,
    -
    7886  0x1fa8c394 /*zoneId*/,
    -
    7887  &kZoneContext /*zoneContext*/,
    -
    7888  2 /*numEras*/,
    -
    7889  kZoneEraAsia_Dili /*eras*/,
    -
    7890  nullptr /*targetInfo*/,
    -
    7891 };
    -
    7892 
    -
    7893 //---------------------------------------------------------------------------
    -
    7894 // Zone name: Asia/Dubai
    -
    7895 // Eras: 1
    -
    7896 //---------------------------------------------------------------------------
    -
    7897 
    -
    7898 static const extended::Info::ZoneEra kZoneEraAsia_Dubai[] ACE_TIME_PROGMEM = {
    -
    7899  // 4:00 - %z
    -
    7900  {
    -
    7901  nullptr /*zonePolicy*/,
    -
    7902  "" /*format*/,
    -
    7903  16 /*offsetCode*/,
    -
    7904  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7905  127 /*untilYearTiny*/,
    -
    7906  1 /*untilMonth*/,
    -
    7907  1 /*untilDay*/,
    -
    7908  0 /*untilTimeCode*/,
    -
    7909  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7910  },
    -
    7911 
    -
    7912 };
    -
    7913 
    -
    7914 static const char kZoneNameAsia_Dubai[] ACE_TIME_PROGMEM = "\x05" "Dubai";
    -
    7915 
    -
    7916 const extended::Info::ZoneInfo kZoneAsia_Dubai ACE_TIME_PROGMEM = {
    -
    7917  kZoneNameAsia_Dubai /*name*/,
    -
    7918  0x14c79f77 /*zoneId*/,
    -
    7919  &kZoneContext /*zoneContext*/,
    -
    7920  1 /*numEras*/,
    -
    7921  kZoneEraAsia_Dubai /*eras*/,
    -
    7922  nullptr /*targetInfo*/,
    -
    7923 };
    -
    7924 
    -
    7925 //---------------------------------------------------------------------------
    -
    7926 // Zone name: Asia/Dushanbe
    -
    7927 // Eras: 1
    -
    7928 //---------------------------------------------------------------------------
    -
    7929 
    -
    7930 static const extended::Info::ZoneEra kZoneEraAsia_Dushanbe[] ACE_TIME_PROGMEM = {
    -
    7931  // 5:00 - %z
    -
    7932  {
    -
    7933  nullptr /*zonePolicy*/,
    -
    7934  "" /*format*/,
    -
    7935  20 /*offsetCode*/,
    -
    7936  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7937  127 /*untilYearTiny*/,
    -
    7938  1 /*untilMonth*/,
    -
    7939  1 /*untilDay*/,
    -
    7940  0 /*untilTimeCode*/,
    -
    7941  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7942  },
    -
    7943 
    -
    7944 };
    -
    7945 
    -
    7946 static const char kZoneNameAsia_Dushanbe[] ACE_TIME_PROGMEM = "\x05" "Dushanbe";
    -
    7947 
    -
    7948 const extended::Info::ZoneInfo kZoneAsia_Dushanbe ACE_TIME_PROGMEM = {
    -
    7949  kZoneNameAsia_Dushanbe /*name*/,
    -
    7950  0x32fc5c3c /*zoneId*/,
    -
    7951  &kZoneContext /*zoneContext*/,
    -
    7952  1 /*numEras*/,
    -
    7953  kZoneEraAsia_Dushanbe /*eras*/,
    -
    7954  nullptr /*targetInfo*/,
    -
    7955 };
    -
    7956 
    -
    7957 //---------------------------------------------------------------------------
    -
    7958 // Zone name: Asia/Famagusta
    -
    7959 // Eras: 3
    -
    7960 //---------------------------------------------------------------------------
    -
    7961 
    -
    7962 static const extended::Info::ZoneEra kZoneEraAsia_Famagusta[] ACE_TIME_PROGMEM = {
    -
    7963  // 2:00 EUAsia EE%sT 2016 Sep 8
    -
    7964  {
    -
    7965  &kZonePolicyEUAsia /*zonePolicy*/,
    -
    7966  "EE%T" /*format*/,
    -
    7967  8 /*offsetCode*/,
    -
    7968  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7969  -84 /*untilYearTiny*/,
    -
    7970  9 /*untilMonth*/,
    -
    7971  8 /*untilDay*/,
    -
    7972  0 /*untilTimeCode*/,
    -
    7973  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7974  },
    -
    7975  // 3:00 - %z 2017 Oct 29 1:00u
    -
    7976  {
    -
    7977  nullptr /*zonePolicy*/,
    -
    7978  "" /*format*/,
    -
    7979  12 /*offsetCode*/,
    -
    7980  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7981  -83 /*untilYearTiny*/,
    -
    7982  10 /*untilMonth*/,
    -
    7983  29 /*untilDay*/,
    -
    7984  4 /*untilTimeCode*/,
    -
    7985  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    7986  },
    -
    7987  // 2:00 EUAsia EE%sT
    -
    7988  {
    -
    7989  &kZonePolicyEUAsia /*zonePolicy*/,
    -
    7990  "EE%T" /*format*/,
    -
    7991  8 /*offsetCode*/,
    -
    7992  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    7993  127 /*untilYearTiny*/,
    -
    7994  1 /*untilMonth*/,
    -
    7995  1 /*untilDay*/,
    -
    7996  0 /*untilTimeCode*/,
    -
    7997  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    7998  },
    -
    7999 
    -
    8000 };
    -
    8001 
    -
    8002 static const char kZoneNameAsia_Famagusta[] ACE_TIME_PROGMEM = "\x05" "Famagusta";
    -
    8003 
    -
    8004 const extended::Info::ZoneInfo kZoneAsia_Famagusta ACE_TIME_PROGMEM = {
    -
    8005  kZoneNameAsia_Famagusta /*name*/,
    -
    8006  0x289b4f8b /*zoneId*/,
    -
    8007  &kZoneContext /*zoneContext*/,
    -
    8008  3 /*numEras*/,
    -
    8009  kZoneEraAsia_Famagusta /*eras*/,
    -
    8010  nullptr /*targetInfo*/,
    -
    8011 };
    -
    8012 
    -
    8013 //---------------------------------------------------------------------------
    -
    8014 // Zone name: Asia/Gaza
    -
    8015 // Eras: 8
    -
    8016 //---------------------------------------------------------------------------
    -
    8017 
    -
    8018 static const extended::Info::ZoneEra kZoneEraAsia_Gaza[] ACE_TIME_PROGMEM = {
    -
    8019  // 2:00 Jordan EE%sT 1999
    -
    8020  {
    -
    8021  &kZonePolicyJordan /*zonePolicy*/,
    -
    8022  "EE%T" /*format*/,
    -
    8023  8 /*offsetCode*/,
    -
    8024  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8025  -101 /*untilYearTiny*/,
    -
    8026  1 /*untilMonth*/,
    -
    8027  1 /*untilDay*/,
    -
    8028  0 /*untilTimeCode*/,
    -
    8029  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8030  },
    -
    8031  // 2:00 Palestine EE%sT 2008 Aug 29 0:00
    -
    8032  {
    -
    8033  &kZonePolicyPalestine /*zonePolicy*/,
    -
    8034  "EE%T" /*format*/,
    -
    8035  8 /*offsetCode*/,
    -
    8036  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8037  -92 /*untilYearTiny*/,
    -
    8038  8 /*untilMonth*/,
    -
    8039  29 /*untilDay*/,
    -
    8040  0 /*untilTimeCode*/,
    -
    8041  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8042  },
    -
    8043  // 2:00 - EET 2008 Sep
    -
    8044  {
    -
    8045  nullptr /*zonePolicy*/,
    -
    8046  "EET" /*format*/,
    -
    8047  8 /*offsetCode*/,
    -
    8048  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8049  -92 /*untilYearTiny*/,
    -
    8050  9 /*untilMonth*/,
    -
    8051  1 /*untilDay*/,
    -
    8052  0 /*untilTimeCode*/,
    -
    8053  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8054  },
    -
    8055  // 2:00 Palestine EE%sT 2010
    -
    8056  {
    -
    8057  &kZonePolicyPalestine /*zonePolicy*/,
    -
    8058  "EE%T" /*format*/,
    -
    8059  8 /*offsetCode*/,
    -
    8060  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8061  -90 /*untilYearTiny*/,
    -
    8062  1 /*untilMonth*/,
    -
    8063  1 /*untilDay*/,
    -
    8064  0 /*untilTimeCode*/,
    -
    8065  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8066  },
    -
    8067  // 2:00 - EET 2010 Mar 27 0:01
    -
    8068  {
    -
    8069  nullptr /*zonePolicy*/,
    -
    8070  "EET" /*format*/,
    -
    8071  8 /*offsetCode*/,
    -
    8072  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8073  -90 /*untilYearTiny*/,
    -
    8074  3 /*untilMonth*/,
    -
    8075  27 /*untilDay*/,
    -
    8076  0 /*untilTimeCode*/,
    -
    8077  1 /*untilTimeModifier (kSuffixW + minute=1)*/,
    -
    8078  },
    -
    8079  // 2:00 Palestine EE%sT 2011 Aug 1
    -
    8080  {
    -
    8081  &kZonePolicyPalestine /*zonePolicy*/,
    -
    8082  "EE%T" /*format*/,
    -
    8083  8 /*offsetCode*/,
    -
    8084  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8085  -89 /*untilYearTiny*/,
    -
    8086  8 /*untilMonth*/,
    -
    8087  1 /*untilDay*/,
    -
    8088  0 /*untilTimeCode*/,
    -
    8089  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8090  },
    -
    8091  // 2:00 - EET 2012
    -
    8092  {
    -
    8093  nullptr /*zonePolicy*/,
    -
    8094  "EET" /*format*/,
    -
    8095  8 /*offsetCode*/,
    -
    8096  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8097  -88 /*untilYearTiny*/,
    -
    8098  1 /*untilMonth*/,
    -
    8099  1 /*untilDay*/,
    -
    8100  0 /*untilTimeCode*/,
    -
    8101  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8102  },
    -
    8103  // 2:00 Palestine EE%sT
    -
    8104  {
    -
    8105  &kZonePolicyPalestine /*zonePolicy*/,
    -
    8106  "EE%T" /*format*/,
    -
    8107  8 /*offsetCode*/,
    -
    8108  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8109  127 /*untilYearTiny*/,
    -
    8110  1 /*untilMonth*/,
    -
    8111  1 /*untilDay*/,
    -
    8112  0 /*untilTimeCode*/,
    -
    8113  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8114  },
    -
    8115 
    -
    8116 };
    -
    8117 
    -
    8118 static const char kZoneNameAsia_Gaza[] ACE_TIME_PROGMEM = "\x05" "Gaza";
    -
    8119 
    -
    8120 const extended::Info::ZoneInfo kZoneAsia_Gaza ACE_TIME_PROGMEM = {
    -
    8121  kZoneNameAsia_Gaza /*name*/,
    -
    8122  0x1faa4875 /*zoneId*/,
    -
    8123  &kZoneContext /*zoneContext*/,
    -
    8124  8 /*numEras*/,
    -
    8125  kZoneEraAsia_Gaza /*eras*/,
    -
    8126  nullptr /*targetInfo*/,
    -
    8127 };
    -
    8128 
    -
    8129 //---------------------------------------------------------------------------
    -
    8130 // Zone name: Asia/Hebron
    -
    8131 // Eras: 2
    -
    8132 //---------------------------------------------------------------------------
    -
    8133 
    -
    8134 static const extended::Info::ZoneEra kZoneEraAsia_Hebron[] ACE_TIME_PROGMEM = {
    -
    8135  // 2:00 Jordan EE%sT 1999
    -
    8136  {
    -
    8137  &kZonePolicyJordan /*zonePolicy*/,
    -
    8138  "EE%T" /*format*/,
    -
    8139  8 /*offsetCode*/,
    -
    8140  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8141  -101 /*untilYearTiny*/,
    -
    8142  1 /*untilMonth*/,
    -
    8143  1 /*untilDay*/,
    -
    8144  0 /*untilTimeCode*/,
    -
    8145  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8146  },
    -
    8147  // 2:00 Palestine EE%sT
    -
    8148  {
    -
    8149  &kZonePolicyPalestine /*zonePolicy*/,
    -
    8150  "EE%T" /*format*/,
    -
    8151  8 /*offsetCode*/,
    -
    8152  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8153  127 /*untilYearTiny*/,
    -
    8154  1 /*untilMonth*/,
    -
    8155  1 /*untilDay*/,
    -
    8156  0 /*untilTimeCode*/,
    -
    8157  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8158  },
    -
    8159 
    -
    8160 };
    -
    8161 
    -
    8162 static const char kZoneNameAsia_Hebron[] ACE_TIME_PROGMEM = "\x05" "Hebron";
    -
    8163 
    -
    8164 const extended::Info::ZoneInfo kZoneAsia_Hebron ACE_TIME_PROGMEM = {
    -
    8165  kZoneNameAsia_Hebron /*name*/,
    -
    8166  0xb5eef250 /*zoneId*/,
    -
    8167  &kZoneContext /*zoneContext*/,
    -
    8168  2 /*numEras*/,
    -
    8169  kZoneEraAsia_Hebron /*eras*/,
    -
    8170  nullptr /*targetInfo*/,
    -
    8171 };
    -
    8172 
    -
    8173 //---------------------------------------------------------------------------
    -
    8174 // Zone name: Asia/Ho_Chi_Minh
    -
    8175 // Eras: 1
    -
    8176 //---------------------------------------------------------------------------
    -
    8177 
    -
    8178 static const extended::Info::ZoneEra kZoneEraAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = {
    -
    8179  // 7:00 - %z
    -
    8180  {
    -
    8181  nullptr /*zonePolicy*/,
    -
    8182  "" /*format*/,
    -
    8183  28 /*offsetCode*/,
    -
    8184  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8185  127 /*untilYearTiny*/,
    -
    8186  1 /*untilMonth*/,
    -
    8187  1 /*untilDay*/,
    -
    8188  0 /*untilTimeCode*/,
    -
    8189  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8190  },
    -
    8191 
    -
    8192 };
    -
    8193 
    -
    8194 static const char kZoneNameAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = "\x05" "Ho_Chi_Minh";
    -
    8195 
    -
    8196 const extended::Info::ZoneInfo kZoneAsia_Ho_Chi_Minh ACE_TIME_PROGMEM = {
    -
    8197  kZoneNameAsia_Ho_Chi_Minh /*name*/,
    -
    8198  0x20f2d127 /*zoneId*/,
    -
    8199  &kZoneContext /*zoneContext*/,
    -
    8200  1 /*numEras*/,
    -
    8201  kZoneEraAsia_Ho_Chi_Minh /*eras*/,
    -
    8202  nullptr /*targetInfo*/,
    -
    8203 };
    -
    8204 
    -
    8205 //---------------------------------------------------------------------------
    -
    8206 // Zone name: Asia/Hong_Kong
    -
    8207 // Eras: 1
    -
    8208 //---------------------------------------------------------------------------
    -
    8209 
    -
    8210 static const extended::Info::ZoneEra kZoneEraAsia_Hong_Kong[] ACE_TIME_PROGMEM = {
    -
    8211  // 8:00 HK HK%sT
    -
    8212  {
    -
    8213  &kZonePolicyHK /*zonePolicy*/,
    -
    8214  "HK%T" /*format*/,
    -
    8215  32 /*offsetCode*/,
    -
    8216  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8217  127 /*untilYearTiny*/,
    -
    8218  1 /*untilMonth*/,
    -
    8219  1 /*untilDay*/,
    -
    8220  0 /*untilTimeCode*/,
    -
    8221  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8222  },
    -
    8223 
    -
    8224 };
    -
    8225 
    -
    8226 static const char kZoneNameAsia_Hong_Kong[] ACE_TIME_PROGMEM = "\x05" "Hong_Kong";
    -
    8227 
    -
    8228 const extended::Info::ZoneInfo kZoneAsia_Hong_Kong ACE_TIME_PROGMEM = {
    -
    8229  kZoneNameAsia_Hong_Kong /*name*/,
    -
    8230  0x577f28ac /*zoneId*/,
    -
    8231  &kZoneContext /*zoneContext*/,
    -
    8232  1 /*numEras*/,
    -
    8233  kZoneEraAsia_Hong_Kong /*eras*/,
    -
    8234  nullptr /*targetInfo*/,
    -
    8235 };
    -
    8236 
    -
    8237 //---------------------------------------------------------------------------
    -
    8238 // Zone name: Asia/Hovd
    -
    8239 // Eras: 1
    -
    8240 //---------------------------------------------------------------------------
    -
    8241 
    -
    8242 static const extended::Info::ZoneEra kZoneEraAsia_Hovd[] ACE_TIME_PROGMEM = {
    -
    8243  // 7:00 Mongol %z
    -
    8244  {
    -
    8245  &kZonePolicyMongol /*zonePolicy*/,
    -
    8246  "" /*format*/,
    -
    8247  28 /*offsetCode*/,
    -
    8248  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8249  127 /*untilYearTiny*/,
    -
    8250  1 /*untilMonth*/,
    -
    8251  1 /*untilDay*/,
    -
    8252  0 /*untilTimeCode*/,
    -
    8253  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8254  },
    -
    8255 
    -
    8256 };
    -
    8257 
    -
    8258 static const char kZoneNameAsia_Hovd[] ACE_TIME_PROGMEM = "\x05" "Hovd";
    -
    8259 
    -
    8260 const extended::Info::ZoneInfo kZoneAsia_Hovd ACE_TIME_PROGMEM = {
    -
    8261  kZoneNameAsia_Hovd /*name*/,
    -
    8262  0x1fab0fe3 /*zoneId*/,
    -
    8263  &kZoneContext /*zoneContext*/,
    -
    8264  1 /*numEras*/,
    -
    8265  kZoneEraAsia_Hovd /*eras*/,
    -
    8266  nullptr /*targetInfo*/,
    -
    8267 };
    -
    8268 
    -
    8269 //---------------------------------------------------------------------------
    -
    8270 // Zone name: Asia/Irkutsk
    -
    8271 // Eras: 3
    -
    8272 //---------------------------------------------------------------------------
    -
    8273 
    -
    8274 static const extended::Info::ZoneEra kZoneEraAsia_Irkutsk[] ACE_TIME_PROGMEM = {
    -
    8275  // 8:00 Russia %z 2011 Mar 27 2:00s
    -
    8276  {
    -
    8277  &kZonePolicyRussia /*zonePolicy*/,
    -
    8278  "" /*format*/,
    -
    8279  32 /*offsetCode*/,
    -
    8280  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8281  -89 /*untilYearTiny*/,
    -
    8282  3 /*untilMonth*/,
    -
    8283  27 /*untilDay*/,
    -
    8284  8 /*untilTimeCode*/,
    -
    8285  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8286  },
    -
    8287  // 9:00 - %z 2014 Oct 26 2:00s
    -
    8288  {
    -
    8289  nullptr /*zonePolicy*/,
    -
    8290  "" /*format*/,
    -
    8291  36 /*offsetCode*/,
    -
    8292  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8293  -86 /*untilYearTiny*/,
    -
    8294  10 /*untilMonth*/,
    -
    8295  26 /*untilDay*/,
    -
    8296  8 /*untilTimeCode*/,
    -
    8297  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8298  },
    -
    8299  // 8:00 - %z
    -
    8300  {
    -
    8301  nullptr /*zonePolicy*/,
    -
    8302  "" /*format*/,
    -
    8303  32 /*offsetCode*/,
    -
    8304  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8305  127 /*untilYearTiny*/,
    -
    8306  1 /*untilMonth*/,
    -
    8307  1 /*untilDay*/,
    -
    8308  0 /*untilTimeCode*/,
    -
    8309  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8310  },
    -
    8311 
    -
    8312 };
    -
    8313 
    -
    8314 static const char kZoneNameAsia_Irkutsk[] ACE_TIME_PROGMEM = "\x05" "Irkutsk";
    -
    8315 
    -
    8316 const extended::Info::ZoneInfo kZoneAsia_Irkutsk ACE_TIME_PROGMEM = {
    -
    8317  kZoneNameAsia_Irkutsk /*name*/,
    -
    8318  0xdfbf213f /*zoneId*/,
    -
    8319  &kZoneContext /*zoneContext*/,
    -
    8320  3 /*numEras*/,
    -
    8321  kZoneEraAsia_Irkutsk /*eras*/,
    -
    8322  nullptr /*targetInfo*/,
    -
    8323 };
    -
    8324 
    -
    8325 //---------------------------------------------------------------------------
    -
    8326 // Zone name: Asia/Jakarta
    -
    8327 // Eras: 1
    -
    8328 //---------------------------------------------------------------------------
    -
    8329 
    -
    8330 static const extended::Info::ZoneEra kZoneEraAsia_Jakarta[] ACE_TIME_PROGMEM = {
    -
    8331  // 7:00 - WIB
    -
    8332  {
    -
    8333  nullptr /*zonePolicy*/,
    -
    8334  "WIB" /*format*/,
    -
    8335  28 /*offsetCode*/,
    -
    8336  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8337  127 /*untilYearTiny*/,
    -
    8338  1 /*untilMonth*/,
    -
    8339  1 /*untilDay*/,
    -
    8340  0 /*untilTimeCode*/,
    -
    8341  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8342  },
    -
    8343 
    -
    8344 };
    -
    8345 
    -
    8346 static const char kZoneNameAsia_Jakarta[] ACE_TIME_PROGMEM = "\x05" "Jakarta";
    -
    8347 
    -
    8348 const extended::Info::ZoneInfo kZoneAsia_Jakarta ACE_TIME_PROGMEM = {
    -
    8349  kZoneNameAsia_Jakarta /*name*/,
    -
    8350  0x0506ab50 /*zoneId*/,
    -
    8351  &kZoneContext /*zoneContext*/,
    -
    8352  1 /*numEras*/,
    -
    8353  kZoneEraAsia_Jakarta /*eras*/,
    -
    8354  nullptr /*targetInfo*/,
    -
    8355 };
    -
    8356 
    -
    8357 //---------------------------------------------------------------------------
    -
    8358 // Zone name: Asia/Jayapura
    -
    8359 // Eras: 1
    -
    8360 //---------------------------------------------------------------------------
    -
    8361 
    -
    8362 static const extended::Info::ZoneEra kZoneEraAsia_Jayapura[] ACE_TIME_PROGMEM = {
    -
    8363  // 9:00 - WIT
    -
    8364  {
    -
    8365  nullptr /*zonePolicy*/,
    -
    8366  "WIT" /*format*/,
    -
    8367  36 /*offsetCode*/,
    -
    8368  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8369  127 /*untilYearTiny*/,
    -
    8370  1 /*untilMonth*/,
    -
    8371  1 /*untilDay*/,
    -
    8372  0 /*untilTimeCode*/,
    -
    8373  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8374  },
    -
    8375 
    -
    8376 };
    -
    8377 
    -
    8378 static const char kZoneNameAsia_Jayapura[] ACE_TIME_PROGMEM = "\x05" "Jayapura";
    -
    8379 
    -
    8380 const extended::Info::ZoneInfo kZoneAsia_Jayapura ACE_TIME_PROGMEM = {
    -
    8381  kZoneNameAsia_Jayapura /*name*/,
    -
    8382  0xc6833c2f /*zoneId*/,
    -
    8383  &kZoneContext /*zoneContext*/,
    -
    8384  1 /*numEras*/,
    -
    8385  kZoneEraAsia_Jayapura /*eras*/,
    -
    8386  nullptr /*targetInfo*/,
    -
    8387 };
    -
    8388 
    -
    8389 //---------------------------------------------------------------------------
    -
    8390 // Zone name: Asia/Jerusalem
    -
    8391 // Eras: 1
    -
    8392 //---------------------------------------------------------------------------
    -
    8393 
    -
    8394 static const extended::Info::ZoneEra kZoneEraAsia_Jerusalem[] ACE_TIME_PROGMEM = {
    -
    8395  // 2:00 Zion I%sT
    -
    8396  {
    -
    8397  &kZonePolicyZion /*zonePolicy*/,
    -
    8398  "I%T" /*format*/,
    -
    8399  8 /*offsetCode*/,
    -
    8400  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8401  127 /*untilYearTiny*/,
    -
    8402  1 /*untilMonth*/,
    -
    8403  1 /*untilDay*/,
    -
    8404  0 /*untilTimeCode*/,
    -
    8405  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8406  },
    -
    8407 
    -
    8408 };
    -
    8409 
    -
    8410 static const char kZoneNameAsia_Jerusalem[] ACE_TIME_PROGMEM = "\x05" "Jerusalem";
    -
    8411 
    -
    8412 const extended::Info::ZoneInfo kZoneAsia_Jerusalem ACE_TIME_PROGMEM = {
    -
    8413  kZoneNameAsia_Jerusalem /*name*/,
    -
    8414  0x5becd23a /*zoneId*/,
    -
    8415  &kZoneContext /*zoneContext*/,
    -
    8416  1 /*numEras*/,
    -
    8417  kZoneEraAsia_Jerusalem /*eras*/,
    -
    8418  nullptr /*targetInfo*/,
    -
    8419 };
    -
    8420 
    -
    8421 //---------------------------------------------------------------------------
    -
    8422 // Zone name: Asia/Kabul
    -
    8423 // Eras: 1
    -
    8424 //---------------------------------------------------------------------------
    -
    8425 
    -
    8426 static const extended::Info::ZoneEra kZoneEraAsia_Kabul[] ACE_TIME_PROGMEM = {
    -
    8427  // 4:30 - %z
    -
    8428  {
    -
    8429  nullptr /*zonePolicy*/,
    -
    8430  "" /*format*/,
    -
    8431  18 /*offsetCode*/,
    -
    8432  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8433  127 /*untilYearTiny*/,
    -
    8434  1 /*untilMonth*/,
    -
    8435  1 /*untilDay*/,
    -
    8436  0 /*untilTimeCode*/,
    -
    8437  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8438  },
    -
    8439 
    -
    8440 };
    -
    8441 
    -
    8442 static const char kZoneNameAsia_Kabul[] ACE_TIME_PROGMEM = "\x05" "Kabul";
    -
    8443 
    -
    8444 const extended::Info::ZoneInfo kZoneAsia_Kabul ACE_TIME_PROGMEM = {
    -
    8445  kZoneNameAsia_Kabul /*name*/,
    -
    8446  0x153b5601 /*zoneId*/,
    -
    8447  &kZoneContext /*zoneContext*/,
    -
    8448  1 /*numEras*/,
    -
    8449  kZoneEraAsia_Kabul /*eras*/,
    -
    8450  nullptr /*targetInfo*/,
    -
    8451 };
    -
    8452 
    -
    8453 //---------------------------------------------------------------------------
    -
    8454 // Zone name: Asia/Kamchatka
    -
    8455 // Eras: 3
    -
    8456 //---------------------------------------------------------------------------
    -
    8457 
    -
    8458 static const extended::Info::ZoneEra kZoneEraAsia_Kamchatka[] ACE_TIME_PROGMEM = {
    -
    8459  // 12:00 Russia %z 2010 Mar 28 2:00s
    -
    8460  {
    -
    8461  &kZonePolicyRussia /*zonePolicy*/,
    -
    8462  "" /*format*/,
    -
    8463  48 /*offsetCode*/,
    -
    8464  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8465  -90 /*untilYearTiny*/,
    -
    8466  3 /*untilMonth*/,
    -
    8467  28 /*untilDay*/,
    -
    8468  8 /*untilTimeCode*/,
    -
    8469  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8470  },
    -
    8471  // 11:00 Russia %z 2011 Mar 27 2:00s
    -
    8472  {
    -
    8473  &kZonePolicyRussia /*zonePolicy*/,
    -
    8474  "" /*format*/,
    -
    8475  44 /*offsetCode*/,
    -
    8476  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8477  -89 /*untilYearTiny*/,
    -
    8478  3 /*untilMonth*/,
    -
    8479  27 /*untilDay*/,
    -
    8480  8 /*untilTimeCode*/,
    -
    8481  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8482  },
    -
    8483  // 12:00 - %z
    -
    8484  {
    -
    8485  nullptr /*zonePolicy*/,
    -
    8486  "" /*format*/,
    -
    8487  48 /*offsetCode*/,
    -
    8488  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8489  127 /*untilYearTiny*/,
    -
    8490  1 /*untilMonth*/,
    -
    8491  1 /*untilDay*/,
    -
    8492  0 /*untilTimeCode*/,
    -
    8493  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8494  },
    -
    8495 
    -
    8496 };
    -
    8497 
    -
    8498 static const char kZoneNameAsia_Kamchatka[] ACE_TIME_PROGMEM = "\x05" "Kamchatka";
    -
    8499 
    -
    8500 const extended::Info::ZoneInfo kZoneAsia_Kamchatka ACE_TIME_PROGMEM = {
    -
    8501  kZoneNameAsia_Kamchatka /*name*/,
    -
    8502  0x73baf9d7 /*zoneId*/,
    -
    8503  &kZoneContext /*zoneContext*/,
    -
    8504  3 /*numEras*/,
    -
    8505  kZoneEraAsia_Kamchatka /*eras*/,
    -
    8506  nullptr /*targetInfo*/,
    -
    8507 };
    -
    8508 
    -
    8509 //---------------------------------------------------------------------------
    -
    8510 // Zone name: Asia/Karachi
    -
    8511 // Eras: 1
    -
    8512 //---------------------------------------------------------------------------
    -
    8513 
    -
    8514 static const extended::Info::ZoneEra kZoneEraAsia_Karachi[] ACE_TIME_PROGMEM = {
    -
    8515  // 5:00 Pakistan PK%sT
    -
    8516  {
    -
    8517  &kZonePolicyPakistan /*zonePolicy*/,
    -
    8518  "PK%T" /*format*/,
    -
    8519  20 /*offsetCode*/,
    -
    8520  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8521  127 /*untilYearTiny*/,
    -
    8522  1 /*untilMonth*/,
    -
    8523  1 /*untilDay*/,
    -
    8524  0 /*untilTimeCode*/,
    -
    8525  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8526  },
    -
    8527 
    -
    8528 };
    -
    8529 
    -
    8530 static const char kZoneNameAsia_Karachi[] ACE_TIME_PROGMEM = "\x05" "Karachi";
    -
    8531 
    -
    8532 const extended::Info::ZoneInfo kZoneAsia_Karachi ACE_TIME_PROGMEM = {
    -
    8533  kZoneNameAsia_Karachi /*name*/,
    -
    8534  0x527f5245 /*zoneId*/,
    -
    8535  &kZoneContext /*zoneContext*/,
    -
    8536  1 /*numEras*/,
    -
    8537  kZoneEraAsia_Karachi /*eras*/,
    -
    8538  nullptr /*targetInfo*/,
    -
    8539 };
    -
    8540 
    -
    8541 //---------------------------------------------------------------------------
    -
    8542 // Zone name: Asia/Kathmandu
    -
    8543 // Eras: 1
    -
    8544 //---------------------------------------------------------------------------
    -
    8545 
    -
    8546 static const extended::Info::ZoneEra kZoneEraAsia_Kathmandu[] ACE_TIME_PROGMEM = {
    -
    8547  // 5:45 - %z
    -
    8548  {
    -
    8549  nullptr /*zonePolicy*/,
    -
    8550  "" /*format*/,
    -
    8551  23 /*offsetCode*/,
    -
    8552  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8553  127 /*untilYearTiny*/,
    -
    8554  1 /*untilMonth*/,
    -
    8555  1 /*untilDay*/,
    -
    8556  0 /*untilTimeCode*/,
    -
    8557  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8558  },
    -
    8559 
    -
    8560 };
    -
    8561 
    -
    8562 static const char kZoneNameAsia_Kathmandu[] ACE_TIME_PROGMEM = "\x05" "Kathmandu";
    -
    8563 
    -
    8564 const extended::Info::ZoneInfo kZoneAsia_Kathmandu ACE_TIME_PROGMEM = {
    -
    8565  kZoneNameAsia_Kathmandu /*name*/,
    -
    8566  0x9a96ce6f /*zoneId*/,
    -
    8567  &kZoneContext /*zoneContext*/,
    -
    8568  1 /*numEras*/,
    -
    8569  kZoneEraAsia_Kathmandu /*eras*/,
    -
    8570  nullptr /*targetInfo*/,
    -
    8571 };
    -
    8572 
    -
    8573 //---------------------------------------------------------------------------
    -
    8574 // Zone name: Asia/Khandyga
    -
    8575 // Eras: 5
    -
    8576 //---------------------------------------------------------------------------
    -
    8577 
    -
    8578 static const extended::Info::ZoneEra kZoneEraAsia_Khandyga[] ACE_TIME_PROGMEM = {
    -
    8579  // 9:00 Russia %z 2004
    -
    8580  {
    -
    8581  &kZonePolicyRussia /*zonePolicy*/,
    -
    8582  "" /*format*/,
    -
    8583  36 /*offsetCode*/,
    -
    8584  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8585  -96 /*untilYearTiny*/,
    -
    8586  1 /*untilMonth*/,
    -
    8587  1 /*untilDay*/,
    -
    8588  0 /*untilTimeCode*/,
    -
    8589  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8590  },
    -
    8591  // 10:00 Russia %z 2011 Mar 27 2:00s
    -
    8592  {
    -
    8593  &kZonePolicyRussia /*zonePolicy*/,
    -
    8594  "" /*format*/,
    -
    8595  40 /*offsetCode*/,
    -
    8596  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8597  -89 /*untilYearTiny*/,
    -
    8598  3 /*untilMonth*/,
    -
    8599  27 /*untilDay*/,
    -
    8600  8 /*untilTimeCode*/,
    -
    8601  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8602  },
    -
    8603  // 11:00 - %z 2011 Sep 13 0:00s
    -
    8604  {
    -
    8605  nullptr /*zonePolicy*/,
    -
    8606  "" /*format*/,
    -
    8607  44 /*offsetCode*/,
    -
    8608  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8609  -89 /*untilYearTiny*/,
    -
    8610  9 /*untilMonth*/,
    -
    8611  13 /*untilDay*/,
    -
    8612  0 /*untilTimeCode*/,
    -
    8613  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8614  },
    -
    8615  // 10:00 - %z 2014 Oct 26 2:00s
    -
    8616  {
    -
    8617  nullptr /*zonePolicy*/,
    -
    8618  "" /*format*/,
    -
    8619  40 /*offsetCode*/,
    -
    8620  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8621  -86 /*untilYearTiny*/,
    -
    8622  10 /*untilMonth*/,
    -
    8623  26 /*untilDay*/,
    -
    8624  8 /*untilTimeCode*/,
    -
    8625  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8626  },
    -
    8627  // 9:00 - %z
    -
    8628  {
    -
    8629  nullptr /*zonePolicy*/,
    -
    8630  "" /*format*/,
    -
    8631  36 /*offsetCode*/,
    -
    8632  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8633  127 /*untilYearTiny*/,
    -
    8634  1 /*untilMonth*/,
    -
    8635  1 /*untilDay*/,
    -
    8636  0 /*untilTimeCode*/,
    -
    8637  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8638  },
    -
    8639 
    -
    8640 };
    -
    8641 
    -
    8642 static const char kZoneNameAsia_Khandyga[] ACE_TIME_PROGMEM = "\x05" "Khandyga";
    -
    8643 
    -
    8644 const extended::Info::ZoneInfo kZoneAsia_Khandyga ACE_TIME_PROGMEM = {
    -
    8645  kZoneNameAsia_Khandyga /*name*/,
    -
    8646  0x9685a4d9 /*zoneId*/,
    -
    8647  &kZoneContext /*zoneContext*/,
    -
    8648  5 /*numEras*/,
    -
    8649  kZoneEraAsia_Khandyga /*eras*/,
    -
    8650  nullptr /*targetInfo*/,
    -
    8651 };
    -
    8652 
    -
    8653 //---------------------------------------------------------------------------
    -
    8654 // Zone name: Asia/Kolkata
    -
    8655 // Eras: 1
    -
    8656 //---------------------------------------------------------------------------
    -
    8657 
    -
    8658 static const extended::Info::ZoneEra kZoneEraAsia_Kolkata[] ACE_TIME_PROGMEM = {
    -
    8659  // 5:30 - IST
    -
    8660  {
    -
    8661  nullptr /*zonePolicy*/,
    -
    8662  "IST" /*format*/,
    -
    8663  22 /*offsetCode*/,
    -
    8664  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8665  127 /*untilYearTiny*/,
    -
    8666  1 /*untilMonth*/,
    -
    8667  1 /*untilDay*/,
    -
    8668  0 /*untilTimeCode*/,
    -
    8669  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8670  },
    -
    8671 
    -
    8672 };
    -
    8673 
    -
    8674 static const char kZoneNameAsia_Kolkata[] ACE_TIME_PROGMEM = "\x05" "Kolkata";
    -
    8675 
    -
    8676 const extended::Info::ZoneInfo kZoneAsia_Kolkata ACE_TIME_PROGMEM = {
    -
    8677  kZoneNameAsia_Kolkata /*name*/,
    -
    8678  0x72c06cd9 /*zoneId*/,
    -
    8679  &kZoneContext /*zoneContext*/,
    -
    8680  1 /*numEras*/,
    -
    8681  kZoneEraAsia_Kolkata /*eras*/,
    -
    8682  nullptr /*targetInfo*/,
    -
    8683 };
    -
    8684 
    -
    8685 //---------------------------------------------------------------------------
    -
    8686 // Zone name: Asia/Krasnoyarsk
    -
    8687 // Eras: 3
    -
    8688 //---------------------------------------------------------------------------
    -
    8689 
    -
    8690 static const extended::Info::ZoneEra kZoneEraAsia_Krasnoyarsk[] ACE_TIME_PROGMEM = {
    -
    8691  // 7:00 Russia %z 2011 Mar 27 2:00s
    -
    8692  {
    -
    8693  &kZonePolicyRussia /*zonePolicy*/,
    -
    8694  "" /*format*/,
    -
    8695  28 /*offsetCode*/,
    -
    8696  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8697  -89 /*untilYearTiny*/,
    -
    8698  3 /*untilMonth*/,
    -
    8699  27 /*untilDay*/,
    -
    8700  8 /*untilTimeCode*/,
    -
    8701  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8702  },
    -
    8703  // 8:00 - %z 2014 Oct 26 2:00s
    -
    8704  {
    -
    8705  nullptr /*zonePolicy*/,
    -
    8706  "" /*format*/,
    -
    8707  32 /*offsetCode*/,
    -
    8708  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8709  -86 /*untilYearTiny*/,
    -
    8710  10 /*untilMonth*/,
    -
    8711  26 /*untilDay*/,
    -
    8712  8 /*untilTimeCode*/,
    -
    8713  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8714  },
    -
    8715  // 7:00 - %z
    -
    8716  {
    -
    8717  nullptr /*zonePolicy*/,
    -
    8718  "" /*format*/,
    -
    8719  28 /*offsetCode*/,
    -
    8720  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8721  127 /*untilYearTiny*/,
    -
    8722  1 /*untilMonth*/,
    -
    8723  1 /*untilDay*/,
    -
    8724  0 /*untilTimeCode*/,
    -
    8725  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8726  },
    -
    8727 
    -
    8728 };
    -
    8729 
    -
    8730 static const char kZoneNameAsia_Krasnoyarsk[] ACE_TIME_PROGMEM = "\x05" "Krasnoyarsk";
    -
    8731 
    -
    8732 const extended::Info::ZoneInfo kZoneAsia_Krasnoyarsk ACE_TIME_PROGMEM = {
    -
    8733  kZoneNameAsia_Krasnoyarsk /*name*/,
    -
    8734  0xd0376c6a /*zoneId*/,
    -
    8735  &kZoneContext /*zoneContext*/,
    -
    8736  3 /*numEras*/,
    -
    8737  kZoneEraAsia_Krasnoyarsk /*eras*/,
    -
    8738  nullptr /*targetInfo*/,
    -
    8739 };
    -
    8740 
    -
    8741 //---------------------------------------------------------------------------
    -
    8742 // Zone name: Asia/Kuching
    -
    8743 // Eras: 1
    -
    8744 //---------------------------------------------------------------------------
    -
    8745 
    -
    8746 static const extended::Info::ZoneEra kZoneEraAsia_Kuching[] ACE_TIME_PROGMEM = {
    -
    8747  // 8:00 - %z
    -
    8748  {
    -
    8749  nullptr /*zonePolicy*/,
    -
    8750  "" /*format*/,
    -
    8751  32 /*offsetCode*/,
    -
    8752  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8753  127 /*untilYearTiny*/,
    -
    8754  1 /*untilMonth*/,
    -
    8755  1 /*untilDay*/,
    -
    8756  0 /*untilTimeCode*/,
    -
    8757  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8758  },
    -
    8759 
    -
    8760 };
    -
    8761 
    -
    8762 static const char kZoneNameAsia_Kuching[] ACE_TIME_PROGMEM = "\x05" "Kuching";
    -
    8763 
    -
    8764 const extended::Info::ZoneInfo kZoneAsia_Kuching ACE_TIME_PROGMEM = {
    -
    8765  kZoneNameAsia_Kuching /*name*/,
    -
    8766  0x801b003b /*zoneId*/,
    -
    8767  &kZoneContext /*zoneContext*/,
    -
    8768  1 /*numEras*/,
    -
    8769  kZoneEraAsia_Kuching /*eras*/,
    -
    8770  nullptr /*targetInfo*/,
    -
    8771 };
    -
    8772 
    -
    8773 //---------------------------------------------------------------------------
    -
    8774 // Zone name: Asia/Macau
    -
    8775 // Eras: 1
    -
    8776 //---------------------------------------------------------------------------
    -
    8777 
    -
    8778 static const extended::Info::ZoneEra kZoneEraAsia_Macau[] ACE_TIME_PROGMEM = {
    -
    8779  // 8:00 Macau C%sT
    -
    8780  {
    -
    8781  &kZonePolicyMacau /*zonePolicy*/,
    -
    8782  "C%T" /*format*/,
    -
    8783  32 /*offsetCode*/,
    -
    8784  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8785  127 /*untilYearTiny*/,
    -
    8786  1 /*untilMonth*/,
    -
    8787  1 /*untilDay*/,
    -
    8788  0 /*untilTimeCode*/,
    -
    8789  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8790  },
    -
    8791 
    -
    8792 };
    -
    8793 
    -
    8794 static const char kZoneNameAsia_Macau[] ACE_TIME_PROGMEM = "\x05" "Macau";
    -
    8795 
    -
    8796 const extended::Info::ZoneInfo kZoneAsia_Macau ACE_TIME_PROGMEM = {
    -
    8797  kZoneNameAsia_Macau /*name*/,
    -
    8798  0x155f88b9 /*zoneId*/,
    -
    8799  &kZoneContext /*zoneContext*/,
    -
    8800  1 /*numEras*/,
    -
    8801  kZoneEraAsia_Macau /*eras*/,
    -
    8802  nullptr /*targetInfo*/,
    -
    8803 };
    -
    8804 
    -
    8805 //---------------------------------------------------------------------------
    -
    8806 // Zone name: Asia/Magadan
    -
    8807 // Eras: 4
    -
    8808 //---------------------------------------------------------------------------
    -
    8809 
    -
    8810 static const extended::Info::ZoneEra kZoneEraAsia_Magadan[] ACE_TIME_PROGMEM = {
    -
    8811  // 11:00 Russia %z 2011 Mar 27 2:00s
    -
    8812  {
    -
    8813  &kZonePolicyRussia /*zonePolicy*/,
    -
    8814  "" /*format*/,
    -
    8815  44 /*offsetCode*/,
    -
    8816  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8817  -89 /*untilYearTiny*/,
    -
    8818  3 /*untilMonth*/,
    -
    8819  27 /*untilDay*/,
    -
    8820  8 /*untilTimeCode*/,
    -
    8821  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8822  },
    -
    8823  // 12:00 - %z 2014 Oct 26 2:00s
    -
    8824  {
    -
    8825  nullptr /*zonePolicy*/,
    -
    8826  "" /*format*/,
    -
    8827  48 /*offsetCode*/,
    -
    8828  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8829  -86 /*untilYearTiny*/,
    -
    8830  10 /*untilMonth*/,
    -
    8831  26 /*untilDay*/,
    -
    8832  8 /*untilTimeCode*/,
    -
    8833  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8834  },
    -
    8835  // 10:00 - %z 2016 Apr 24 2:00s
    -
    8836  {
    -
    8837  nullptr /*zonePolicy*/,
    -
    8838  "" /*format*/,
    -
    8839  40 /*offsetCode*/,
    -
    8840  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8841  -84 /*untilYearTiny*/,
    -
    8842  4 /*untilMonth*/,
    -
    8843  24 /*untilDay*/,
    -
    8844  8 /*untilTimeCode*/,
    -
    8845  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8846  },
    -
    8847  // 11:00 - %z
    -
    8848  {
    -
    8849  nullptr /*zonePolicy*/,
    -
    8850  "" /*format*/,
    -
    8851  44 /*offsetCode*/,
    -
    8852  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8853  127 /*untilYearTiny*/,
    -
    8854  1 /*untilMonth*/,
    -
    8855  1 /*untilDay*/,
    -
    8856  0 /*untilTimeCode*/,
    -
    8857  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8858  },
    -
    8859 
    -
    8860 };
    -
    8861 
    -
    8862 static const char kZoneNameAsia_Magadan[] ACE_TIME_PROGMEM = "\x05" "Magadan";
    -
    8863 
    -
    8864 const extended::Info::ZoneInfo kZoneAsia_Magadan ACE_TIME_PROGMEM = {
    -
    8865  kZoneNameAsia_Magadan /*name*/,
    -
    8866  0xebacc19b /*zoneId*/,
    -
    8867  &kZoneContext /*zoneContext*/,
    -
    8868  4 /*numEras*/,
    -
    8869  kZoneEraAsia_Magadan /*eras*/,
    -
    8870  nullptr /*targetInfo*/,
    -
    8871 };
    -
    8872 
    -
    8873 //---------------------------------------------------------------------------
    -
    8874 // Zone name: Asia/Makassar
    -
    8875 // Eras: 1
    -
    8876 //---------------------------------------------------------------------------
    -
    8877 
    -
    8878 static const extended::Info::ZoneEra kZoneEraAsia_Makassar[] ACE_TIME_PROGMEM = {
    -
    8879  // 8:00 - WITA
    -
    8880  {
    -
    8881  nullptr /*zonePolicy*/,
    -
    8882  "WITA" /*format*/,
    -
    8883  32 /*offsetCode*/,
    -
    8884  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8885  127 /*untilYearTiny*/,
    -
    8886  1 /*untilMonth*/,
    -
    8887  1 /*untilDay*/,
    -
    8888  0 /*untilTimeCode*/,
    -
    8889  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8890  },
    -
    8891 
    -
    8892 };
    -
    8893 
    -
    8894 static const char kZoneNameAsia_Makassar[] ACE_TIME_PROGMEM = "\x05" "Makassar";
    -
    8895 
    -
    8896 const extended::Info::ZoneInfo kZoneAsia_Makassar ACE_TIME_PROGMEM = {
    -
    8897  kZoneNameAsia_Makassar /*name*/,
    -
    8898  0x6aa21c85 /*zoneId*/,
    -
    8899  &kZoneContext /*zoneContext*/,
    -
    8900  1 /*numEras*/,
    -
    8901  kZoneEraAsia_Makassar /*eras*/,
    -
    8902  nullptr /*targetInfo*/,
    -
    8903 };
    -
    8904 
    -
    8905 //---------------------------------------------------------------------------
    -
    8906 // Zone name: Asia/Manila
    -
    8907 // Eras: 1
    -
    8908 //---------------------------------------------------------------------------
    -
    8909 
    -
    8910 static const extended::Info::ZoneEra kZoneEraAsia_Manila[] ACE_TIME_PROGMEM = {
    -
    8911  // 8:00 Phil P%sT
    -
    8912  {
    -
    8913  &kZonePolicyPhil /*zonePolicy*/,
    -
    8914  "P%T" /*format*/,
    -
    8915  32 /*offsetCode*/,
    -
    8916  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8917  127 /*untilYearTiny*/,
    -
    8918  1 /*untilMonth*/,
    -
    8919  1 /*untilDay*/,
    -
    8920  0 /*untilTimeCode*/,
    -
    8921  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8922  },
    -
    8923 
    -
    8924 };
    -
    8925 
    -
    8926 static const char kZoneNameAsia_Manila[] ACE_TIME_PROGMEM = "\x05" "Manila";
    -
    8927 
    -
    8928 const extended::Info::ZoneInfo kZoneAsia_Manila ACE_TIME_PROGMEM = {
    -
    8929  kZoneNameAsia_Manila /*name*/,
    -
    8930  0xc156c944 /*zoneId*/,
    -
    8931  &kZoneContext /*zoneContext*/,
    -
    8932  1 /*numEras*/,
    -
    8933  kZoneEraAsia_Manila /*eras*/,
    -
    8934  nullptr /*targetInfo*/,
    -
    8935 };
    -
    8936 
    -
    8937 //---------------------------------------------------------------------------
    -
    8938 // Zone name: Asia/Nicosia
    -
    8939 // Eras: 1
    -
    8940 //---------------------------------------------------------------------------
    -
    8941 
    -
    8942 static const extended::Info::ZoneEra kZoneEraAsia_Nicosia[] ACE_TIME_PROGMEM = {
    -
    8943  // 2:00 EUAsia EE%sT
    -
    8944  {
    -
    8945  &kZonePolicyEUAsia /*zonePolicy*/,
    -
    8946  "EE%T" /*format*/,
    -
    8947  8 /*offsetCode*/,
    -
    8948  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8949  127 /*untilYearTiny*/,
    -
    8950  1 /*untilMonth*/,
    -
    8951  1 /*untilDay*/,
    -
    8952  0 /*untilTimeCode*/,
    -
    8953  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    8954  },
    -
    8955 
    -
    8956 };
    -
    8957 
    -
    8958 static const char kZoneNameAsia_Nicosia[] ACE_TIME_PROGMEM = "\x05" "Nicosia";
    -
    8959 
    -
    8960 const extended::Info::ZoneInfo kZoneAsia_Nicosia ACE_TIME_PROGMEM = {
    -
    8961  kZoneNameAsia_Nicosia /*name*/,
    -
    8962  0x4b0fcf78 /*zoneId*/,
    -
    8963  &kZoneContext /*zoneContext*/,
    -
    8964  1 /*numEras*/,
    -
    8965  kZoneEraAsia_Nicosia /*eras*/,
    -
    8966  nullptr /*targetInfo*/,
    -
    8967 };
    -
    8968 
    -
    8969 //---------------------------------------------------------------------------
    -
    8970 // Zone name: Asia/Novokuznetsk
    -
    8971 // Eras: 3
    -
    8972 //---------------------------------------------------------------------------
    -
    8973 
    -
    8974 static const extended::Info::ZoneEra kZoneEraAsia_Novokuznetsk[] ACE_TIME_PROGMEM = {
    -
    8975  // 7:00 Russia %z 2010 Mar 28 2:00s
    -
    8976  {
    -
    8977  &kZonePolicyRussia /*zonePolicy*/,
    -
    8978  "" /*format*/,
    -
    8979  28 /*offsetCode*/,
    -
    8980  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8981  -90 /*untilYearTiny*/,
    -
    8982  3 /*untilMonth*/,
    -
    8983  28 /*untilDay*/,
    -
    8984  8 /*untilTimeCode*/,
    -
    8985  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8986  },
    -
    8987  // 6:00 Russia %z 2011 Mar 27 2:00s
    -
    8988  {
    -
    8989  &kZonePolicyRussia /*zonePolicy*/,
    -
    8990  "" /*format*/,
    -
    8991  24 /*offsetCode*/,
    -
    8992  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    8993  -89 /*untilYearTiny*/,
    -
    8994  3 /*untilMonth*/,
    -
    8995  27 /*untilDay*/,
    -
    8996  8 /*untilTimeCode*/,
    -
    8997  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    8998  },
    -
    8999  // 7:00 - %z
    -
    9000  {
    -
    9001  nullptr /*zonePolicy*/,
    -
    9002  "" /*format*/,
    -
    9003  28 /*offsetCode*/,
    -
    9004  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9005  127 /*untilYearTiny*/,
    -
    9006  1 /*untilMonth*/,
    -
    9007  1 /*untilDay*/,
    -
    9008  0 /*untilTimeCode*/,
    -
    9009  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9010  },
    -
    9011 
    -
    9012 };
    -
    9013 
    -
    9014 static const char kZoneNameAsia_Novokuznetsk[] ACE_TIME_PROGMEM = "\x05" "Novokuznetsk";
    -
    9015 
    -
    9016 const extended::Info::ZoneInfo kZoneAsia_Novokuznetsk ACE_TIME_PROGMEM = {
    -
    9017  kZoneNameAsia_Novokuznetsk /*name*/,
    -
    9018  0x69264f93 /*zoneId*/,
    -
    9019  &kZoneContext /*zoneContext*/,
    -
    9020  3 /*numEras*/,
    -
    9021  kZoneEraAsia_Novokuznetsk /*eras*/,
    -
    9022  nullptr /*targetInfo*/,
    -
    9023 };
    -
    9024 
    -
    9025 //---------------------------------------------------------------------------
    -
    9026 // Zone name: Asia/Novosibirsk
    -
    9027 // Eras: 4
    -
    9028 //---------------------------------------------------------------------------
    -
    9029 
    -
    9030 static const extended::Info::ZoneEra kZoneEraAsia_Novosibirsk[] ACE_TIME_PROGMEM = {
    -
    9031  // 6:00 Russia %z 2011 Mar 27 2:00s
    -
    9032  {
    -
    9033  &kZonePolicyRussia /*zonePolicy*/,
    -
    9034  "" /*format*/,
    -
    9035  24 /*offsetCode*/,
    -
    9036  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9037  -89 /*untilYearTiny*/,
    -
    9038  3 /*untilMonth*/,
    -
    9039  27 /*untilDay*/,
    -
    9040  8 /*untilTimeCode*/,
    -
    9041  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9042  },
    -
    9043  // 7:00 - %z 2014 Oct 26 2:00s
    -
    9044  {
    -
    9045  nullptr /*zonePolicy*/,
    -
    9046  "" /*format*/,
    -
    9047  28 /*offsetCode*/,
    -
    9048  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9049  -86 /*untilYearTiny*/,
    -
    9050  10 /*untilMonth*/,
    -
    9051  26 /*untilDay*/,
    -
    9052  8 /*untilTimeCode*/,
    -
    9053  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9054  },
    -
    9055  // 6:00 - %z 2016 Jul 24 2:00s
    -
    9056  {
    -
    9057  nullptr /*zonePolicy*/,
    -
    9058  "" /*format*/,
    -
    9059  24 /*offsetCode*/,
    -
    9060  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9061  -84 /*untilYearTiny*/,
    -
    9062  7 /*untilMonth*/,
    -
    9063  24 /*untilDay*/,
    -
    9064  8 /*untilTimeCode*/,
    -
    9065  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9066  },
    -
    9067  // 7:00 - %z
    -
    9068  {
    -
    9069  nullptr /*zonePolicy*/,
    -
    9070  "" /*format*/,
    -
    9071  28 /*offsetCode*/,
    -
    9072  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9073  127 /*untilYearTiny*/,
    -
    9074  1 /*untilMonth*/,
    -
    9075  1 /*untilDay*/,
    -
    9076  0 /*untilTimeCode*/,
    -
    9077  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9078  },
    -
    9079 
    -
    9080 };
    -
    9081 
    -
    9082 static const char kZoneNameAsia_Novosibirsk[] ACE_TIME_PROGMEM = "\x05" "Novosibirsk";
    -
    9083 
    -
    9084 const extended::Info::ZoneInfo kZoneAsia_Novosibirsk ACE_TIME_PROGMEM = {
    -
    9085  kZoneNameAsia_Novosibirsk /*name*/,
    -
    9086  0xa2a435cb /*zoneId*/,
    -
    9087  &kZoneContext /*zoneContext*/,
    -
    9088  4 /*numEras*/,
    -
    9089  kZoneEraAsia_Novosibirsk /*eras*/,
    -
    9090  nullptr /*targetInfo*/,
    -
    9091 };
    -
    9092 
    -
    9093 //---------------------------------------------------------------------------
    -
    9094 // Zone name: Asia/Omsk
    -
    9095 // Eras: 3
    -
    9096 //---------------------------------------------------------------------------
    -
    9097 
    -
    9098 static const extended::Info::ZoneEra kZoneEraAsia_Omsk[] ACE_TIME_PROGMEM = {
    -
    9099  // 6:00 Russia %z 2011 Mar 27 2:00s
    -
    9100  {
    -
    9101  &kZonePolicyRussia /*zonePolicy*/,
    -
    9102  "" /*format*/,
    -
    9103  24 /*offsetCode*/,
    -
    9104  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9105  -89 /*untilYearTiny*/,
    -
    9106  3 /*untilMonth*/,
    -
    9107  27 /*untilDay*/,
    -
    9108  8 /*untilTimeCode*/,
    -
    9109  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9110  },
    -
    9111  // 7:00 - %z 2014 Oct 26 2:00s
    -
    9112  {
    -
    9113  nullptr /*zonePolicy*/,
    -
    9114  "" /*format*/,
    -
    9115  28 /*offsetCode*/,
    -
    9116  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9117  -86 /*untilYearTiny*/,
    -
    9118  10 /*untilMonth*/,
    -
    9119  26 /*untilDay*/,
    -
    9120  8 /*untilTimeCode*/,
    -
    9121  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9122  },
    -
    9123  // 6:00 - %z
    -
    9124  {
    -
    9125  nullptr /*zonePolicy*/,
    -
    9126  "" /*format*/,
    -
    9127  24 /*offsetCode*/,
    -
    9128  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9129  127 /*untilYearTiny*/,
    -
    9130  1 /*untilMonth*/,
    -
    9131  1 /*untilDay*/,
    -
    9132  0 /*untilTimeCode*/,
    -
    9133  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9134  },
    -
    9135 
    -
    9136 };
    -
    9137 
    -
    9138 static const char kZoneNameAsia_Omsk[] ACE_TIME_PROGMEM = "\x05" "Omsk";
    -
    9139 
    -
    9140 const extended::Info::ZoneInfo kZoneAsia_Omsk ACE_TIME_PROGMEM = {
    -
    9141  kZoneNameAsia_Omsk /*name*/,
    -
    9142  0x1faeddac /*zoneId*/,
    -
    9143  &kZoneContext /*zoneContext*/,
    -
    9144  3 /*numEras*/,
    -
    9145  kZoneEraAsia_Omsk /*eras*/,
    -
    9146  nullptr /*targetInfo*/,
    -
    9147 };
    -
    9148 
    -
    9149 //---------------------------------------------------------------------------
    -
    9150 // Zone name: Asia/Oral
    -
    9151 // Eras: 2
    -
    9152 //---------------------------------------------------------------------------
    -
    9153 
    -
    9154 static const extended::Info::ZoneEra kZoneEraAsia_Oral[] ACE_TIME_PROGMEM = {
    -
    9155  // 4:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    9156  {
    -
    9157  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    9158  "" /*format*/,
    -
    9159  16 /*offsetCode*/,
    -
    9160  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9161  -96 /*untilYearTiny*/,
    -
    9162  10 /*untilMonth*/,
    -
    9163  31 /*untilDay*/,
    -
    9164  8 /*untilTimeCode*/,
    -
    9165  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9166  },
    -
    9167  // 5:00 - %z
    -
    9168  {
    -
    9169  nullptr /*zonePolicy*/,
    -
    9170  "" /*format*/,
    -
    9171  20 /*offsetCode*/,
    -
    9172  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9173  127 /*untilYearTiny*/,
    -
    9174  1 /*untilMonth*/,
    -
    9175  1 /*untilDay*/,
    -
    9176  0 /*untilTimeCode*/,
    -
    9177  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9178  },
    -
    9179 
    -
    9180 };
    -
    9181 
    -
    9182 static const char kZoneNameAsia_Oral[] ACE_TIME_PROGMEM = "\x05" "Oral";
    -
    9183 
    -
    9184 const extended::Info::ZoneInfo kZoneAsia_Oral ACE_TIME_PROGMEM = {
    -
    9185  kZoneNameAsia_Oral /*name*/,
    -
    9186  0x1faef0a0 /*zoneId*/,
    -
    9187  &kZoneContext /*zoneContext*/,
    -
    9188  2 /*numEras*/,
    -
    9189  kZoneEraAsia_Oral /*eras*/,
    -
    9190  nullptr /*targetInfo*/,
    -
    9191 };
    -
    9192 
    -
    9193 //---------------------------------------------------------------------------
    -
    9194 // Zone name: Asia/Pontianak
    -
    9195 // Eras: 1
    -
    9196 //---------------------------------------------------------------------------
    -
    9197 
    -
    9198 static const extended::Info::ZoneEra kZoneEraAsia_Pontianak[] ACE_TIME_PROGMEM = {
    -
    9199  // 7:00 - WIB
    -
    9200  {
    -
    9201  nullptr /*zonePolicy*/,
    -
    9202  "WIB" /*format*/,
    -
    9203  28 /*offsetCode*/,
    -
    9204  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9205  127 /*untilYearTiny*/,
    -
    9206  1 /*untilMonth*/,
    -
    9207  1 /*untilDay*/,
    -
    9208  0 /*untilTimeCode*/,
    -
    9209  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9210  },
    -
    9211 
    -
    9212 };
    -
    9213 
    -
    9214 static const char kZoneNameAsia_Pontianak[] ACE_TIME_PROGMEM = "\x05" "Pontianak";
    -
    9215 
    -
    9216 const extended::Info::ZoneInfo kZoneAsia_Pontianak ACE_TIME_PROGMEM = {
    -
    9217  kZoneNameAsia_Pontianak /*name*/,
    -
    9218  0x1a76c057 /*zoneId*/,
    -
    9219  &kZoneContext /*zoneContext*/,
    -
    9220  1 /*numEras*/,
    -
    9221  kZoneEraAsia_Pontianak /*eras*/,
    -
    9222  nullptr /*targetInfo*/,
    -
    9223 };
    -
    9224 
    -
    9225 //---------------------------------------------------------------------------
    -
    9226 // Zone name: Asia/Pyongyang
    -
    9227 // Eras: 3
    -
    9228 //---------------------------------------------------------------------------
    -
    9229 
    -
    9230 static const extended::Info::ZoneEra kZoneEraAsia_Pyongyang[] ACE_TIME_PROGMEM = {
    -
    9231  // 9:00 - KST 2015 Aug 15 00:00
    -
    9232  {
    -
    9233  nullptr /*zonePolicy*/,
    -
    9234  "KST" /*format*/,
    -
    9235  36 /*offsetCode*/,
    -
    9236  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9237  -85 /*untilYearTiny*/,
    -
    9238  8 /*untilMonth*/,
    -
    9239  15 /*untilDay*/,
    -
    9240  0 /*untilTimeCode*/,
    -
    9241  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9242  },
    -
    9243  // 8:30 - KST 2018 May 4 23:30
    -
    9244  {
    -
    9245  nullptr /*zonePolicy*/,
    -
    9246  "KST" /*format*/,
    -
    9247  34 /*offsetCode*/,
    -
    9248  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9249  -82 /*untilYearTiny*/,
    -
    9250  5 /*untilMonth*/,
    -
    9251  4 /*untilDay*/,
    -
    9252  94 /*untilTimeCode*/,
    -
    9253  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9254  },
    -
    9255  // 9:00 - KST
    -
    9256  {
    -
    9257  nullptr /*zonePolicy*/,
    -
    9258  "KST" /*format*/,
    -
    9259  36 /*offsetCode*/,
    -
    9260  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9261  127 /*untilYearTiny*/,
    -
    9262  1 /*untilMonth*/,
    -
    9263  1 /*untilDay*/,
    -
    9264  0 /*untilTimeCode*/,
    -
    9265  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9266  },
    -
    9267 
    -
    9268 };
    -
    9269 
    -
    9270 static const char kZoneNameAsia_Pyongyang[] ACE_TIME_PROGMEM = "\x05" "Pyongyang";
    -
    9271 
    -
    9272 const extended::Info::ZoneInfo kZoneAsia_Pyongyang ACE_TIME_PROGMEM = {
    -
    9273  kZoneNameAsia_Pyongyang /*name*/,
    -
    9274  0x93ed1c8e /*zoneId*/,
    -
    9275  &kZoneContext /*zoneContext*/,
    -
    9276  3 /*numEras*/,
    -
    9277  kZoneEraAsia_Pyongyang /*eras*/,
    -
    9278  nullptr /*targetInfo*/,
    -
    9279 };
    -
    9280 
    -
    9281 //---------------------------------------------------------------------------
    -
    9282 // Zone name: Asia/Qatar
    -
    9283 // Eras: 1
    -
    9284 //---------------------------------------------------------------------------
    -
    9285 
    -
    9286 static const extended::Info::ZoneEra kZoneEraAsia_Qatar[] ACE_TIME_PROGMEM = {
    -
    9287  // 3:00 - %z
    -
    9288  {
    -
    9289  nullptr /*zonePolicy*/,
    -
    9290  "" /*format*/,
    -
    9291  12 /*offsetCode*/,
    -
    9292  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9293  127 /*untilYearTiny*/,
    -
    9294  1 /*untilMonth*/,
    -
    9295  1 /*untilDay*/,
    -
    9296  0 /*untilTimeCode*/,
    -
    9297  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9298  },
    -
    9299 
    -
    9300 };
    -
    9301 
    -
    9302 static const char kZoneNameAsia_Qatar[] ACE_TIME_PROGMEM = "\x05" "Qatar";
    -
    9303 
    -
    9304 const extended::Info::ZoneInfo kZoneAsia_Qatar ACE_TIME_PROGMEM = {
    -
    9305  kZoneNameAsia_Qatar /*name*/,
    -
    9306  0x15a8330b /*zoneId*/,
    -
    9307  &kZoneContext /*zoneContext*/,
    -
    9308  1 /*numEras*/,
    -
    9309  kZoneEraAsia_Qatar /*eras*/,
    -
    9310  nullptr /*targetInfo*/,
    -
    9311 };
    -
    9312 
    -
    9313 //---------------------------------------------------------------------------
    -
    9314 // Zone name: Asia/Qostanay
    -
    9315 // Eras: 3
    -
    9316 //---------------------------------------------------------------------------
    -
    9317 
    -
    9318 static const extended::Info::ZoneEra kZoneEraAsia_Qostanay[] ACE_TIME_PROGMEM = {
    -
    9319  // 5:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    9320  {
    -
    9321  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    9322  "" /*format*/,
    -
    9323  20 /*offsetCode*/,
    -
    9324  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9325  -96 /*untilYearTiny*/,
    -
    9326  10 /*untilMonth*/,
    -
    9327  31 /*untilDay*/,
    -
    9328  8 /*untilTimeCode*/,
    -
    9329  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9330  },
    -
    9331  // 6:00 - %z 2024 Mar 1 0:00
    -
    9332  {
    -
    9333  nullptr /*zonePolicy*/,
    -
    9334  "" /*format*/,
    -
    9335  24 /*offsetCode*/,
    -
    9336  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9337  -76 /*untilYearTiny*/,
    -
    9338  3 /*untilMonth*/,
    -
    9339  1 /*untilDay*/,
    -
    9340  0 /*untilTimeCode*/,
    -
    9341  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9342  },
    -
    9343  // 5:00 - %z
    -
    9344  {
    -
    9345  nullptr /*zonePolicy*/,
    -
    9346  "" /*format*/,
    -
    9347  20 /*offsetCode*/,
    -
    9348  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9349  127 /*untilYearTiny*/,
    -
    9350  1 /*untilMonth*/,
    -
    9351  1 /*untilDay*/,
    -
    9352  0 /*untilTimeCode*/,
    -
    9353  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9354  },
    -
    9355 
    -
    9356 };
    -
    9357 
    -
    9358 static const char kZoneNameAsia_Qostanay[] ACE_TIME_PROGMEM = "\x05" "Qostanay";
    -
    9359 
    -
    9360 const extended::Info::ZoneInfo kZoneAsia_Qostanay ACE_TIME_PROGMEM = {
    -
    9361  kZoneNameAsia_Qostanay /*name*/,
    -
    9362  0x654fe522 /*zoneId*/,
    -
    9363  &kZoneContext /*zoneContext*/,
    -
    9364  3 /*numEras*/,
    -
    9365  kZoneEraAsia_Qostanay /*eras*/,
    -
    9366  nullptr /*targetInfo*/,
    -
    9367 };
    -
    9368 
    -
    9369 //---------------------------------------------------------------------------
    -
    9370 // Zone name: Asia/Qyzylorda
    -
    9371 // Eras: 3
    -
    9372 //---------------------------------------------------------------------------
    -
    9373 
    -
    9374 static const extended::Info::ZoneEra kZoneEraAsia_Qyzylorda[] ACE_TIME_PROGMEM = {
    -
    9375  // 5:00 RussiaAsia %z 2004 Oct 31 2:00s
    -
    9376  {
    -
    9377  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    9378  "" /*format*/,
    -
    9379  20 /*offsetCode*/,
    -
    9380  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9381  -96 /*untilYearTiny*/,
    -
    9382  10 /*untilMonth*/,
    -
    9383  31 /*untilDay*/,
    -
    9384  8 /*untilTimeCode*/,
    -
    9385  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9386  },
    -
    9387  // 6:00 - %z 2018 Dec 21 0:00
    -
    9388  {
    -
    9389  nullptr /*zonePolicy*/,
    -
    9390  "" /*format*/,
    -
    9391  24 /*offsetCode*/,
    -
    9392  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9393  -82 /*untilYearTiny*/,
    -
    9394  12 /*untilMonth*/,
    -
    9395  21 /*untilDay*/,
    -
    9396  0 /*untilTimeCode*/,
    -
    9397  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9398  },
    -
    9399  // 5:00 - %z
    -
    9400  {
    -
    9401  nullptr /*zonePolicy*/,
    -
    9402  "" /*format*/,
    -
    9403  20 /*offsetCode*/,
    -
    9404  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9405  127 /*untilYearTiny*/,
    -
    9406  1 /*untilMonth*/,
    -
    9407  1 /*untilDay*/,
    -
    9408  0 /*untilTimeCode*/,
    -
    9409  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9410  },
    -
    9411 
    -
    9412 };
    -
    9413 
    -
    9414 static const char kZoneNameAsia_Qyzylorda[] ACE_TIME_PROGMEM = "\x05" "Qyzylorda";
    -
    9415 
    -
    9416 const extended::Info::ZoneInfo kZoneAsia_Qyzylorda ACE_TIME_PROGMEM = {
    -
    9417  kZoneNameAsia_Qyzylorda /*name*/,
    -
    9418  0x71282e81 /*zoneId*/,
    -
    9419  &kZoneContext /*zoneContext*/,
    -
    9420  3 /*numEras*/,
    -
    9421  kZoneEraAsia_Qyzylorda /*eras*/,
    -
    9422  nullptr /*targetInfo*/,
    -
    9423 };
    -
    9424 
    -
    9425 //---------------------------------------------------------------------------
    -
    9426 // Zone name: Asia/Riyadh
    -
    9427 // Eras: 1
    -
    9428 //---------------------------------------------------------------------------
    -
    9429 
    -
    9430 static const extended::Info::ZoneEra kZoneEraAsia_Riyadh[] ACE_TIME_PROGMEM = {
    -
    9431  // 3:00 - %z
    -
    9432  {
    -
    9433  nullptr /*zonePolicy*/,
    -
    9434  "" /*format*/,
    -
    9435  12 /*offsetCode*/,
    -
    9436  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9437  127 /*untilYearTiny*/,
    -
    9438  1 /*untilMonth*/,
    -
    9439  1 /*untilDay*/,
    -
    9440  0 /*untilTimeCode*/,
    -
    9441  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9442  },
    -
    9443 
    -
    9444 };
    -
    9445 
    -
    9446 static const char kZoneNameAsia_Riyadh[] ACE_TIME_PROGMEM = "\x05" "Riyadh";
    -
    9447 
    -
    9448 const extended::Info::ZoneInfo kZoneAsia_Riyadh ACE_TIME_PROGMEM = {
    -
    9449  kZoneNameAsia_Riyadh /*name*/,
    -
    9450  0xcd973d93 /*zoneId*/,
    -
    9451  &kZoneContext /*zoneContext*/,
    -
    9452  1 /*numEras*/,
    -
    9453  kZoneEraAsia_Riyadh /*eras*/,
    -
    9454  nullptr /*targetInfo*/,
    -
    9455 };
    -
    9456 
    -
    9457 //---------------------------------------------------------------------------
    -
    9458 // Zone name: Asia/Sakhalin
    -
    9459 // Eras: 4
    -
    9460 //---------------------------------------------------------------------------
    -
    9461 
    -
    9462 static const extended::Info::ZoneEra kZoneEraAsia_Sakhalin[] ACE_TIME_PROGMEM = {
    -
    9463  // 10:00 Russia %z 2011 Mar 27 2:00s
    -
    9464  {
    -
    9465  &kZonePolicyRussia /*zonePolicy*/,
    -
    9466  "" /*format*/,
    -
    9467  40 /*offsetCode*/,
    -
    9468  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9469  -89 /*untilYearTiny*/,
    -
    9470  3 /*untilMonth*/,
    -
    9471  27 /*untilDay*/,
    -
    9472  8 /*untilTimeCode*/,
    -
    9473  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9474  },
    -
    9475  // 11:00 - %z 2014 Oct 26 2:00s
    -
    9476  {
    -
    9477  nullptr /*zonePolicy*/,
    -
    9478  "" /*format*/,
    -
    9479  44 /*offsetCode*/,
    -
    9480  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9481  -86 /*untilYearTiny*/,
    -
    9482  10 /*untilMonth*/,
    -
    9483  26 /*untilDay*/,
    -
    9484  8 /*untilTimeCode*/,
    -
    9485  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9486  },
    -
    9487  // 10:00 - %z 2016 Mar 27 2:00s
    -
    9488  {
    -
    9489  nullptr /*zonePolicy*/,
    -
    9490  "" /*format*/,
    -
    9491  40 /*offsetCode*/,
    -
    9492  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9493  -84 /*untilYearTiny*/,
    -
    9494  3 /*untilMonth*/,
    -
    9495  27 /*untilDay*/,
    -
    9496  8 /*untilTimeCode*/,
    -
    9497  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9498  },
    -
    9499  // 11:00 - %z
    -
    9500  {
    -
    9501  nullptr /*zonePolicy*/,
    -
    9502  "" /*format*/,
    -
    9503  44 /*offsetCode*/,
    -
    9504  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9505  127 /*untilYearTiny*/,
    -
    9506  1 /*untilMonth*/,
    -
    9507  1 /*untilDay*/,
    -
    9508  0 /*untilTimeCode*/,
    -
    9509  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9510  },
    -
    9511 
    -
    9512 };
    -
    9513 
    -
    9514 static const char kZoneNameAsia_Sakhalin[] ACE_TIME_PROGMEM = "\x05" "Sakhalin";
    -
    9515 
    -
    9516 const extended::Info::ZoneInfo kZoneAsia_Sakhalin ACE_TIME_PROGMEM = {
    -
    9517  kZoneNameAsia_Sakhalin /*name*/,
    -
    9518  0xf4a1c9bd /*zoneId*/,
    -
    9519  &kZoneContext /*zoneContext*/,
    -
    9520  4 /*numEras*/,
    -
    9521  kZoneEraAsia_Sakhalin /*eras*/,
    -
    9522  nullptr /*targetInfo*/,
    -
    9523 };
    -
    9524 
    -
    9525 //---------------------------------------------------------------------------
    -
    9526 // Zone name: Asia/Samarkand
    -
    9527 // Eras: 1
    -
    9528 //---------------------------------------------------------------------------
    -
    9529 
    -
    9530 static const extended::Info::ZoneEra kZoneEraAsia_Samarkand[] ACE_TIME_PROGMEM = {
    -
    9531  // 5:00 - %z
    -
    9532  {
    -
    9533  nullptr /*zonePolicy*/,
    -
    9534  "" /*format*/,
    -
    9535  20 /*offsetCode*/,
    -
    9536  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9537  127 /*untilYearTiny*/,
    -
    9538  1 /*untilMonth*/,
    -
    9539  1 /*untilDay*/,
    -
    9540  0 /*untilTimeCode*/,
    -
    9541  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9542  },
    -
    9543 
    -
    9544 };
    -
    9545 
    -
    9546 static const char kZoneNameAsia_Samarkand[] ACE_TIME_PROGMEM = "\x05" "Samarkand";
    -
    9547 
    -
    9548 const extended::Info::ZoneInfo kZoneAsia_Samarkand ACE_TIME_PROGMEM = {
    -
    9549  kZoneNameAsia_Samarkand /*name*/,
    -
    9550  0x13ae5104 /*zoneId*/,
    -
    9551  &kZoneContext /*zoneContext*/,
    -
    9552  1 /*numEras*/,
    -
    9553  kZoneEraAsia_Samarkand /*eras*/,
    -
    9554  nullptr /*targetInfo*/,
    -
    9555 };
    -
    9556 
    -
    9557 //---------------------------------------------------------------------------
    -
    9558 // Zone name: Asia/Seoul
    -
    9559 // Eras: 1
    -
    9560 //---------------------------------------------------------------------------
    -
    9561 
    -
    9562 static const extended::Info::ZoneEra kZoneEraAsia_Seoul[] ACE_TIME_PROGMEM = {
    -
    9563  // 9:00 ROK K%sT
    -
    9564  {
    -
    9565  &kZonePolicyROK /*zonePolicy*/,
    -
    9566  "K%T" /*format*/,
    -
    9567  36 /*offsetCode*/,
    -
    9568  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9569  127 /*untilYearTiny*/,
    -
    9570  1 /*untilMonth*/,
    -
    9571  1 /*untilDay*/,
    -
    9572  0 /*untilTimeCode*/,
    -
    9573  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9574  },
    -
    9575 
    -
    9576 };
    -
    9577 
    -
    9578 static const char kZoneNameAsia_Seoul[] ACE_TIME_PROGMEM = "\x05" "Seoul";
    -
    9579 
    -
    9580 const extended::Info::ZoneInfo kZoneAsia_Seoul ACE_TIME_PROGMEM = {
    -
    9581  kZoneNameAsia_Seoul /*name*/,
    -
    9582  0x15ce82da /*zoneId*/,
    -
    9583  &kZoneContext /*zoneContext*/,
    -
    9584  1 /*numEras*/,
    -
    9585  kZoneEraAsia_Seoul /*eras*/,
    -
    9586  nullptr /*targetInfo*/,
    -
    9587 };
    -
    9588 
    -
    9589 //---------------------------------------------------------------------------
    -
    9590 // Zone name: Asia/Shanghai
    -
    9591 // Eras: 1
    -
    9592 //---------------------------------------------------------------------------
    -
    9593 
    -
    9594 static const extended::Info::ZoneEra kZoneEraAsia_Shanghai[] ACE_TIME_PROGMEM = {
    -
    9595  // 8:00 PRC C%sT
    -
    9596  {
    -
    9597  &kZonePolicyPRC /*zonePolicy*/,
    -
    9598  "C%T" /*format*/,
    -
    9599  32 /*offsetCode*/,
    -
    9600  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9601  127 /*untilYearTiny*/,
    -
    9602  1 /*untilMonth*/,
    -
    9603  1 /*untilDay*/,
    -
    9604  0 /*untilTimeCode*/,
    -
    9605  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9606  },
    -
    9607 
    -
    9608 };
    -
    9609 
    -
    9610 static const char kZoneNameAsia_Shanghai[] ACE_TIME_PROGMEM = "\x05" "Shanghai";
    -
    9611 
    -
    9612 const extended::Info::ZoneInfo kZoneAsia_Shanghai ACE_TIME_PROGMEM = {
    -
    9613  kZoneNameAsia_Shanghai /*name*/,
    -
    9614  0xf895a7f5 /*zoneId*/,
    -
    9615  &kZoneContext /*zoneContext*/,
    -
    9616  1 /*numEras*/,
    -
    9617  kZoneEraAsia_Shanghai /*eras*/,
    -
    9618  nullptr /*targetInfo*/,
    -
    9619 };
    -
    9620 
    -
    9621 //---------------------------------------------------------------------------
    -
    9622 // Zone name: Asia/Singapore
    -
    9623 // Eras: 1
    -
    9624 //---------------------------------------------------------------------------
    -
    9625 
    -
    9626 static const extended::Info::ZoneEra kZoneEraAsia_Singapore[] ACE_TIME_PROGMEM = {
    -
    9627  // 8:00 - %z
    -
    9628  {
    -
    9629  nullptr /*zonePolicy*/,
    -
    9630  "" /*format*/,
    -
    9631  32 /*offsetCode*/,
    -
    9632  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9633  127 /*untilYearTiny*/,
    -
    9634  1 /*untilMonth*/,
    -
    9635  1 /*untilDay*/,
    -
    9636  0 /*untilTimeCode*/,
    -
    9637  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9638  },
    -
    9639 
    -
    9640 };
    -
    9641 
    -
    9642 static const char kZoneNameAsia_Singapore[] ACE_TIME_PROGMEM = "\x05" "Singapore";
    -
    9643 
    -
    9644 const extended::Info::ZoneInfo kZoneAsia_Singapore ACE_TIME_PROGMEM = {
    -
    9645  kZoneNameAsia_Singapore /*name*/,
    -
    9646  0xcf8581fa /*zoneId*/,
    -
    9647  &kZoneContext /*zoneContext*/,
    -
    9648  1 /*numEras*/,
    -
    9649  kZoneEraAsia_Singapore /*eras*/,
    -
    9650  nullptr /*targetInfo*/,
    -
    9651 };
    -
    9652 
    -
    9653 //---------------------------------------------------------------------------
    -
    9654 // Zone name: Asia/Srednekolymsk
    -
    9655 // Eras: 3
    -
    9656 //---------------------------------------------------------------------------
    -
    9657 
    -
    9658 static const extended::Info::ZoneEra kZoneEraAsia_Srednekolymsk[] ACE_TIME_PROGMEM = {
    -
    9659  // 11:00 Russia %z 2011 Mar 27 2:00s
    -
    9660  {
    -
    9661  &kZonePolicyRussia /*zonePolicy*/,
    -
    9662  "" /*format*/,
    -
    9663  44 /*offsetCode*/,
    -
    9664  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9665  -89 /*untilYearTiny*/,
    -
    9666  3 /*untilMonth*/,
    -
    9667  27 /*untilDay*/,
    -
    9668  8 /*untilTimeCode*/,
    -
    9669  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9670  },
    -
    9671  // 12:00 - %z 2014 Oct 26 2:00s
    -
    9672  {
    -
    9673  nullptr /*zonePolicy*/,
    -
    9674  "" /*format*/,
    -
    9675  48 /*offsetCode*/,
    -
    9676  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9677  -86 /*untilYearTiny*/,
    -
    9678  10 /*untilMonth*/,
    -
    9679  26 /*untilDay*/,
    -
    9680  8 /*untilTimeCode*/,
    -
    9681  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9682  },
    -
    9683  // 11:00 - %z
    -
    9684  {
    -
    9685  nullptr /*zonePolicy*/,
    -
    9686  "" /*format*/,
    -
    9687  44 /*offsetCode*/,
    -
    9688  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9689  127 /*untilYearTiny*/,
    -
    9690  1 /*untilMonth*/,
    -
    9691  1 /*untilDay*/,
    -
    9692  0 /*untilTimeCode*/,
    -
    9693  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9694  },
    -
    9695 
    -
    9696 };
    -
    9697 
    -
    9698 static const char kZoneNameAsia_Srednekolymsk[] ACE_TIME_PROGMEM = "\x05" "Srednekolymsk";
    -
    9699 
    -
    9700 const extended::Info::ZoneInfo kZoneAsia_Srednekolymsk ACE_TIME_PROGMEM = {
    -
    9701  kZoneNameAsia_Srednekolymsk /*name*/,
    -
    9702  0xbf8e337d /*zoneId*/,
    -
    9703  &kZoneContext /*zoneContext*/,
    -
    9704  3 /*numEras*/,
    -
    9705  kZoneEraAsia_Srednekolymsk /*eras*/,
    -
    9706  nullptr /*targetInfo*/,
    -
    9707 };
    -
    9708 
    -
    9709 //---------------------------------------------------------------------------
    -
    9710 // Zone name: Asia/Taipei
    -
    9711 // Eras: 1
    -
    9712 //---------------------------------------------------------------------------
    -
    9713 
    -
    9714 static const extended::Info::ZoneEra kZoneEraAsia_Taipei[] ACE_TIME_PROGMEM = {
    -
    9715  // 8:00 Taiwan C%sT
    -
    9716  {
    -
    9717  &kZonePolicyTaiwan /*zonePolicy*/,
    -
    9718  "C%T" /*format*/,
    -
    9719  32 /*offsetCode*/,
    -
    9720  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9721  127 /*untilYearTiny*/,
    -
    9722  1 /*untilMonth*/,
    -
    9723  1 /*untilDay*/,
    -
    9724  0 /*untilTimeCode*/,
    -
    9725  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9726  },
    -
    9727 
    -
    9728 };
    -
    9729 
    -
    9730 static const char kZoneNameAsia_Taipei[] ACE_TIME_PROGMEM = "\x05" "Taipei";
    -
    9731 
    -
    9732 const extended::Info::ZoneInfo kZoneAsia_Taipei ACE_TIME_PROGMEM = {
    -
    9733  kZoneNameAsia_Taipei /*name*/,
    -
    9734  0xd1a844ae /*zoneId*/,
    -
    9735  &kZoneContext /*zoneContext*/,
    -
    9736  1 /*numEras*/,
    -
    9737  kZoneEraAsia_Taipei /*eras*/,
    -
    9738  nullptr /*targetInfo*/,
    -
    9739 };
    -
    9740 
    -
    9741 //---------------------------------------------------------------------------
    -
    9742 // Zone name: Asia/Tashkent
    -
    9743 // Eras: 1
    -
    9744 //---------------------------------------------------------------------------
    -
    9745 
    -
    9746 static const extended::Info::ZoneEra kZoneEraAsia_Tashkent[] ACE_TIME_PROGMEM = {
    -
    9747  // 5:00 - %z
    -
    9748  {
    -
    9749  nullptr /*zonePolicy*/,
    -
    9750  "" /*format*/,
    -
    9751  20 /*offsetCode*/,
    -
    9752  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9753  127 /*untilYearTiny*/,
    -
    9754  1 /*untilMonth*/,
    -
    9755  1 /*untilDay*/,
    -
    9756  0 /*untilTimeCode*/,
    -
    9757  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9758  },
    -
    9759 
    -
    9760 };
    -
    9761 
    -
    9762 static const char kZoneNameAsia_Tashkent[] ACE_TIME_PROGMEM = "\x05" "Tashkent";
    -
    9763 
    -
    9764 const extended::Info::ZoneInfo kZoneAsia_Tashkent ACE_TIME_PROGMEM = {
    -
    9765  kZoneNameAsia_Tashkent /*name*/,
    -
    9766  0xf3924254 /*zoneId*/,
    -
    9767  &kZoneContext /*zoneContext*/,
    -
    9768  1 /*numEras*/,
    -
    9769  kZoneEraAsia_Tashkent /*eras*/,
    -
    9770  nullptr /*targetInfo*/,
    -
    9771 };
    -
    9772 
    -
    9773 //---------------------------------------------------------------------------
    -
    9774 // Zone name: Asia/Tbilisi
    -
    9775 // Eras: 3
    -
    9776 //---------------------------------------------------------------------------
    -
    9777 
    -
    9778 static const extended::Info::ZoneEra kZoneEraAsia_Tbilisi[] ACE_TIME_PROGMEM = {
    -
    9779  // 4:00 E-EurAsia %z 2004 Jun 27
    -
    9780  {
    -
    9781  &kZonePolicyE_EurAsia /*zonePolicy*/,
    -
    9782  "" /*format*/,
    -
    9783  16 /*offsetCode*/,
    -
    9784  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9785  -96 /*untilYearTiny*/,
    -
    9786  6 /*untilMonth*/,
    -
    9787  27 /*untilDay*/,
    -
    9788  0 /*untilTimeCode*/,
    -
    9789  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9790  },
    -
    9791  // 3:00 RussiaAsia %z 2005 Mar lastSun 2:00
    -
    9792  {
    -
    9793  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    9794  "" /*format*/,
    -
    9795  12 /*offsetCode*/,
    -
    9796  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9797  -95 /*untilYearTiny*/,
    -
    9798  3 /*untilMonth*/,
    -
    9799  27 /*untilDay*/,
    -
    9800  8 /*untilTimeCode*/,
    -
    9801  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9802  },
    -
    9803  // 4:00 - %z
    -
    9804  {
    -
    9805  nullptr /*zonePolicy*/,
    -
    9806  "" /*format*/,
    -
    9807  16 /*offsetCode*/,
    -
    9808  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9809  127 /*untilYearTiny*/,
    -
    9810  1 /*untilMonth*/,
    -
    9811  1 /*untilDay*/,
    -
    9812  0 /*untilTimeCode*/,
    -
    9813  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9814  },
    -
    9815 
    -
    9816 };
    -
    9817 
    -
    9818 static const char kZoneNameAsia_Tbilisi[] ACE_TIME_PROGMEM = "\x05" "Tbilisi";
    -
    9819 
    -
    9820 const extended::Info::ZoneInfo kZoneAsia_Tbilisi ACE_TIME_PROGMEM = {
    -
    9821  kZoneNameAsia_Tbilisi /*name*/,
    -
    9822  0x0903e442 /*zoneId*/,
    -
    9823  &kZoneContext /*zoneContext*/,
    -
    9824  3 /*numEras*/,
    -
    9825  kZoneEraAsia_Tbilisi /*eras*/,
    -
    9826  nullptr /*targetInfo*/,
    -
    9827 };
    -
    9828 
    -
    9829 //---------------------------------------------------------------------------
    -
    9830 // Zone name: Asia/Tehran
    -
    9831 // Eras: 1
    -
    9832 //---------------------------------------------------------------------------
    -
    9833 
    -
    9834 static const extended::Info::ZoneEra kZoneEraAsia_Tehran[] ACE_TIME_PROGMEM = {
    -
    9835  // 3:30 Iran %z
    -
    9836  {
    -
    9837  &kZonePolicyIran /*zonePolicy*/,
    -
    9838  "" /*format*/,
    -
    9839  14 /*offsetCode*/,
    -
    9840  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9841  127 /*untilYearTiny*/,
    -
    9842  1 /*untilMonth*/,
    -
    9843  1 /*untilDay*/,
    -
    9844  0 /*untilTimeCode*/,
    -
    9845  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9846  },
    -
    9847 
    -
    9848 };
    -
    9849 
    -
    9850 static const char kZoneNameAsia_Tehran[] ACE_TIME_PROGMEM = "\x05" "Tehran";
    -
    9851 
    -
    9852 const extended::Info::ZoneInfo kZoneAsia_Tehran ACE_TIME_PROGMEM = {
    -
    9853  kZoneNameAsia_Tehran /*name*/,
    -
    9854  0xd1f02254 /*zoneId*/,
    -
    9855  &kZoneContext /*zoneContext*/,
    -
    9856  1 /*numEras*/,
    -
    9857  kZoneEraAsia_Tehran /*eras*/,
    -
    9858  nullptr /*targetInfo*/,
    -
    9859 };
    -
    9860 
    -
    9861 //---------------------------------------------------------------------------
    -
    9862 // Zone name: Asia/Thimphu
    -
    9863 // Eras: 1
    -
    9864 //---------------------------------------------------------------------------
    -
    9865 
    -
    9866 static const extended::Info::ZoneEra kZoneEraAsia_Thimphu[] ACE_TIME_PROGMEM = {
    -
    9867  // 6:00 - %z
    -
    9868  {
    -
    9869  nullptr /*zonePolicy*/,
    -
    9870  "" /*format*/,
    -
    9871  24 /*offsetCode*/,
    -
    9872  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9873  127 /*untilYearTiny*/,
    -
    9874  1 /*untilMonth*/,
    -
    9875  1 /*untilDay*/,
    -
    9876  0 /*untilTimeCode*/,
    -
    9877  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9878  },
    -
    9879 
    -
    9880 };
    -
    9881 
    -
    9882 static const char kZoneNameAsia_Thimphu[] ACE_TIME_PROGMEM = "\x05" "Thimphu";
    -
    9883 
    -
    9884 const extended::Info::ZoneInfo kZoneAsia_Thimphu ACE_TIME_PROGMEM = {
    -
    9885  kZoneNameAsia_Thimphu /*name*/,
    -
    9886  0x170380d1 /*zoneId*/,
    -
    9887  &kZoneContext /*zoneContext*/,
    -
    9888  1 /*numEras*/,
    -
    9889  kZoneEraAsia_Thimphu /*eras*/,
    -
    9890  nullptr /*targetInfo*/,
    -
    9891 };
    -
    9892 
    -
    9893 //---------------------------------------------------------------------------
    -
    9894 // Zone name: Asia/Tokyo
    -
    9895 // Eras: 1
    -
    9896 //---------------------------------------------------------------------------
    -
    9897 
    -
    9898 static const extended::Info::ZoneEra kZoneEraAsia_Tokyo[] ACE_TIME_PROGMEM = {
    -
    9899  // 9:00 Japan J%sT
    -
    9900  {
    -
    9901  &kZonePolicyJapan /*zonePolicy*/,
    -
    9902  "J%T" /*format*/,
    -
    9903  36 /*offsetCode*/,
    -
    9904  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9905  127 /*untilYearTiny*/,
    -
    9906  1 /*untilMonth*/,
    -
    9907  1 /*untilDay*/,
    -
    9908  0 /*untilTimeCode*/,
    -
    9909  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9910  },
    -
    9911 
    -
    9912 };
    -
    9913 
    -
    9914 static const char kZoneNameAsia_Tokyo[] ACE_TIME_PROGMEM = "\x05" "Tokyo";
    -
    9915 
    -
    9916 const extended::Info::ZoneInfo kZoneAsia_Tokyo ACE_TIME_PROGMEM = {
    -
    9917  kZoneNameAsia_Tokyo /*name*/,
    -
    9918  0x15e606a8 /*zoneId*/,
    -
    9919  &kZoneContext /*zoneContext*/,
    -
    9920  1 /*numEras*/,
    -
    9921  kZoneEraAsia_Tokyo /*eras*/,
    -
    9922  nullptr /*targetInfo*/,
    -
    9923 };
    -
    9924 
    -
    9925 //---------------------------------------------------------------------------
    -
    9926 // Zone name: Asia/Tomsk
    -
    9927 // Eras: 5
    -
    9928 //---------------------------------------------------------------------------
    -
    9929 
    -
    9930 static const extended::Info::ZoneEra kZoneEraAsia_Tomsk[] ACE_TIME_PROGMEM = {
    -
    9931  // 7:00 Russia %z 2002 May 1 3:00
    -
    9932  {
    -
    9933  &kZonePolicyRussia /*zonePolicy*/,
    -
    9934  "" /*format*/,
    -
    9935  28 /*offsetCode*/,
    -
    9936  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9937  -98 /*untilYearTiny*/,
    -
    9938  5 /*untilMonth*/,
    -
    9939  1 /*untilDay*/,
    -
    9940  12 /*untilTimeCode*/,
    -
    9941  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9942  },
    -
    9943  // 6:00 Russia %z 2011 Mar 27 2:00s
    -
    9944  {
    -
    9945  &kZonePolicyRussia /*zonePolicy*/,
    -
    9946  "" /*format*/,
    -
    9947  24 /*offsetCode*/,
    -
    9948  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9949  -89 /*untilYearTiny*/,
    -
    9950  3 /*untilMonth*/,
    -
    9951  27 /*untilDay*/,
    -
    9952  8 /*untilTimeCode*/,
    -
    9953  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9954  },
    -
    9955  // 7:00 - %z 2014 Oct 26 2:00s
    -
    9956  {
    -
    9957  nullptr /*zonePolicy*/,
    -
    9958  "" /*format*/,
    -
    9959  28 /*offsetCode*/,
    -
    9960  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9961  -86 /*untilYearTiny*/,
    -
    9962  10 /*untilMonth*/,
    -
    9963  26 /*untilDay*/,
    -
    9964  8 /*untilTimeCode*/,
    -
    9965  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9966  },
    -
    9967  // 6:00 - %z 2016 May 29 2:00s
    -
    9968  {
    -
    9969  nullptr /*zonePolicy*/,
    -
    9970  "" /*format*/,
    -
    9971  24 /*offsetCode*/,
    -
    9972  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9973  -84 /*untilYearTiny*/,
    -
    9974  5 /*untilMonth*/,
    -
    9975  29 /*untilDay*/,
    -
    9976  8 /*untilTimeCode*/,
    -
    9977  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    9978  },
    -
    9979  // 7:00 - %z
    -
    9980  {
    -
    9981  nullptr /*zonePolicy*/,
    -
    9982  "" /*format*/,
    -
    9983  28 /*offsetCode*/,
    -
    9984  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    9985  127 /*untilYearTiny*/,
    -
    9986  1 /*untilMonth*/,
    -
    9987  1 /*untilDay*/,
    -
    9988  0 /*untilTimeCode*/,
    -
    9989  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    9990  },
    -
    9991 
    -
    9992 };
    -
    9993 
    -
    9994 static const char kZoneNameAsia_Tomsk[] ACE_TIME_PROGMEM = "\x05" "Tomsk";
    -
    9995 
    -
    9996 const extended::Info::ZoneInfo kZoneAsia_Tomsk ACE_TIME_PROGMEM = {
    -
    9997  kZoneNameAsia_Tomsk /*name*/,
    -
    9998  0x15e60e60 /*zoneId*/,
    -
    9999  &kZoneContext /*zoneContext*/,
    -
    10000  5 /*numEras*/,
    -
    10001  kZoneEraAsia_Tomsk /*eras*/,
    -
    10002  nullptr /*targetInfo*/,
    -
    10003 };
    -
    10004 
    -
    10005 //---------------------------------------------------------------------------
    -
    10006 // Zone name: Asia/Ulaanbaatar
    -
    10007 // Eras: 1
    -
    10008 //---------------------------------------------------------------------------
    -
    10009 
    -
    10010 static const extended::Info::ZoneEra kZoneEraAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = {
    -
    10011  // 8:00 Mongol %z
    -
    10012  {
    -
    10013  &kZonePolicyMongol /*zonePolicy*/,
    -
    10014  "" /*format*/,
    -
    10015  32 /*offsetCode*/,
    -
    10016  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10017  127 /*untilYearTiny*/,
    -
    10018  1 /*untilMonth*/,
    -
    10019  1 /*untilDay*/,
    -
    10020  0 /*untilTimeCode*/,
    -
    10021  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10022  },
    -
    10023 
    -
    10024 };
    -
    10025 
    -
    10026 static const char kZoneNameAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = "\x05" "Ulaanbaatar";
    -
    10027 
    -
    10028 const extended::Info::ZoneInfo kZoneAsia_Ulaanbaatar ACE_TIME_PROGMEM = {
    -
    10029  kZoneNameAsia_Ulaanbaatar /*name*/,
    -
    10030  0x30f0cc4e /*zoneId*/,
    -
    10031  &kZoneContext /*zoneContext*/,
    -
    10032  1 /*numEras*/,
    -
    10033  kZoneEraAsia_Ulaanbaatar /*eras*/,
    -
    10034  nullptr /*targetInfo*/,
    -
    10035 };
    -
    10036 
    -
    10037 //---------------------------------------------------------------------------
    -
    10038 // Zone name: Asia/Urumqi
    -
    10039 // Eras: 1
    -
    10040 //---------------------------------------------------------------------------
    -
    10041 
    -
    10042 static const extended::Info::ZoneEra kZoneEraAsia_Urumqi[] ACE_TIME_PROGMEM = {
    -
    10043  // 6:00 - %z
    -
    10044  {
    -
    10045  nullptr /*zonePolicy*/,
    -
    10046  "" /*format*/,
    -
    10047  24 /*offsetCode*/,
    -
    10048  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10049  127 /*untilYearTiny*/,
    -
    10050  1 /*untilMonth*/,
    -
    10051  1 /*untilDay*/,
    -
    10052  0 /*untilTimeCode*/,
    -
    10053  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10054  },
    -
    10055 
    -
    10056 };
    -
    10057 
    -
    10058 static const char kZoneNameAsia_Urumqi[] ACE_TIME_PROGMEM = "\x05" "Urumqi";
    -
    10059 
    -
    10060 const extended::Info::ZoneInfo kZoneAsia_Urumqi ACE_TIME_PROGMEM = {
    -
    10061  kZoneNameAsia_Urumqi /*name*/,
    -
    10062  0xd5379735 /*zoneId*/,
    -
    10063  &kZoneContext /*zoneContext*/,
    -
    10064  1 /*numEras*/,
    -
    10065  kZoneEraAsia_Urumqi /*eras*/,
    -
    10066  nullptr /*targetInfo*/,
    -
    10067 };
    -
    10068 
    -
    10069 //---------------------------------------------------------------------------
    -
    10070 // Zone name: Asia/Ust-Nera
    -
    10071 // Eras: 4
    -
    10072 //---------------------------------------------------------------------------
    -
    10073 
    -
    10074 static const extended::Info::ZoneEra kZoneEraAsia_Ust_Nera[] ACE_TIME_PROGMEM = {
    -
    10075  // 11:00 Russia %z 2011 Mar 27 2:00s
    -
    10076  {
    -
    10077  &kZonePolicyRussia /*zonePolicy*/,
    -
    10078  "" /*format*/,
    -
    10079  44 /*offsetCode*/,
    -
    10080  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10081  -89 /*untilYearTiny*/,
    -
    10082  3 /*untilMonth*/,
    -
    10083  27 /*untilDay*/,
    -
    10084  8 /*untilTimeCode*/,
    -
    10085  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    10086  },
    -
    10087  // 12:00 - %z 2011 Sep 13 0:00s
    -
    10088  {
    -
    10089  nullptr /*zonePolicy*/,
    -
    10090  "" /*format*/,
    -
    10091  48 /*offsetCode*/,
    -
    10092  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10093  -89 /*untilYearTiny*/,
    -
    10094  9 /*untilMonth*/,
    -
    10095  13 /*untilDay*/,
    -
    10096  0 /*untilTimeCode*/,
    -
    10097  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    10098  },
    -
    10099  // 11:00 - %z 2014 Oct 26 2:00s
    -
    10100  {
    -
    10101  nullptr /*zonePolicy*/,
    -
    10102  "" /*format*/,
    -
    10103  44 /*offsetCode*/,
    -
    10104  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10105  -86 /*untilYearTiny*/,
    -
    10106  10 /*untilMonth*/,
    -
    10107  26 /*untilDay*/,
    -
    10108  8 /*untilTimeCode*/,
    -
    10109  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    10110  },
    -
    10111  // 10:00 - %z
    -
    10112  {
    -
    10113  nullptr /*zonePolicy*/,
    -
    10114  "" /*format*/,
    -
    10115  40 /*offsetCode*/,
    -
    10116  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10117  127 /*untilYearTiny*/,
    -
    10118  1 /*untilMonth*/,
    -
    10119  1 /*untilDay*/,
    -
    10120  0 /*untilTimeCode*/,
    -
    10121  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10122  },
    -
    10123 
    -
    10124 };
    -
    10125 
    -
    10126 static const char kZoneNameAsia_Ust_Nera[] ACE_TIME_PROGMEM = "\x05" "Ust-Nera";
    -
    10127 
    -
    10128 const extended::Info::ZoneInfo kZoneAsia_Ust_Nera ACE_TIME_PROGMEM = {
    -
    10129  kZoneNameAsia_Ust_Nera /*name*/,
    -
    10130  0x4785f921 /*zoneId*/,
    -
    10131  &kZoneContext /*zoneContext*/,
    -
    10132  4 /*numEras*/,
    -
    10133  kZoneEraAsia_Ust_Nera /*eras*/,
    -
    10134  nullptr /*targetInfo*/,
    -
    10135 };
    -
    10136 
    -
    10137 //---------------------------------------------------------------------------
    -
    10138 // Zone name: Asia/Vladivostok
    -
    10139 // Eras: 3
    -
    10140 //---------------------------------------------------------------------------
    -
    10141 
    -
    10142 static const extended::Info::ZoneEra kZoneEraAsia_Vladivostok[] ACE_TIME_PROGMEM = {
    -
    10143  // 10:00 Russia %z 2011 Mar 27 2:00s
    -
    10144  {
    -
    10145  &kZonePolicyRussia /*zonePolicy*/,
    -
    10146  "" /*format*/,
    -
    10147  40 /*offsetCode*/,
    -
    10148  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10149  -89 /*untilYearTiny*/,
    -
    10150  3 /*untilMonth*/,
    -
    10151  27 /*untilDay*/,
    -
    10152  8 /*untilTimeCode*/,
    -
    10153  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    10154  },
    -
    10155  // 11:00 - %z 2014 Oct 26 2:00s
    -
    10156  {
    -
    10157  nullptr /*zonePolicy*/,
    -
    10158  "" /*format*/,
    -
    10159  44 /*offsetCode*/,
    -
    10160  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10161  -86 /*untilYearTiny*/,
    -
    10162  10 /*untilMonth*/,
    -
    10163  26 /*untilDay*/,
    -
    10164  8 /*untilTimeCode*/,
    -
    10165  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    10166  },
    -
    10167  // 10:00 - %z
    -
    10168  {
    -
    10169  nullptr /*zonePolicy*/,
    -
    10170  "" /*format*/,
    -
    10171  40 /*offsetCode*/,
    -
    10172  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10173  127 /*untilYearTiny*/,
    -
    10174  1 /*untilMonth*/,
    -
    10175  1 /*untilDay*/,
    -
    10176  0 /*untilTimeCode*/,
    -
    10177  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10178  },
    -
    10179 
    -
    10180 };
    -
    10181 
    -
    10182 static const char kZoneNameAsia_Vladivostok[] ACE_TIME_PROGMEM = "\x05" "Vladivostok";
    -
    10183 
    -
    10184 const extended::Info::ZoneInfo kZoneAsia_Vladivostok ACE_TIME_PROGMEM = {
    -
    10185  kZoneNameAsia_Vladivostok /*name*/,
    -
    10186  0x29de34a8 /*zoneId*/,
    -
    10187  &kZoneContext /*zoneContext*/,
    -
    10188  3 /*numEras*/,
    -
    10189  kZoneEraAsia_Vladivostok /*eras*/,
    -
    10190  nullptr /*targetInfo*/,
    -
    10191 };
    -
    10192 
    -
    10193 //---------------------------------------------------------------------------
    -
    10194 // Zone name: Asia/Yakutsk
    -
    10195 // Eras: 3
    -
    10196 //---------------------------------------------------------------------------
    -
    10197 
    -
    10198 static const extended::Info::ZoneEra kZoneEraAsia_Yakutsk[] ACE_TIME_PROGMEM = {
    -
    10199  // 9:00 Russia %z 2011 Mar 27 2:00s
    -
    10200  {
    -
    10201  &kZonePolicyRussia /*zonePolicy*/,
    -
    10202  "" /*format*/,
    -
    10203  36 /*offsetCode*/,
    -
    10204  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10205  -89 /*untilYearTiny*/,
    -
    10206  3 /*untilMonth*/,
    -
    10207  27 /*untilDay*/,
    -
    10208  8 /*untilTimeCode*/,
    -
    10209  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    10210  },
    -
    10211  // 10:00 - %z 2014 Oct 26 2:00s
    -
    10212  {
    -
    10213  nullptr /*zonePolicy*/,
    -
    10214  "" /*format*/,
    -
    10215  40 /*offsetCode*/,
    -
    10216  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10217  -86 /*untilYearTiny*/,
    -
    10218  10 /*untilMonth*/,
    -
    10219  26 /*untilDay*/,
    -
    10220  8 /*untilTimeCode*/,
    -
    10221  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    10222  },
    -
    10223  // 9:00 - %z
    -
    10224  {
    -
    10225  nullptr /*zonePolicy*/,
    -
    10226  "" /*format*/,
    -
    10227  36 /*offsetCode*/,
    -
    10228  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10229  127 /*untilYearTiny*/,
    -
    10230  1 /*untilMonth*/,
    -
    10231  1 /*untilDay*/,
    -
    10232  0 /*untilTimeCode*/,
    -
    10233  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10234  },
    -
    10235 
    -
    10236 };
    -
    10237 
    -
    10238 static const char kZoneNameAsia_Yakutsk[] ACE_TIME_PROGMEM = "\x05" "Yakutsk";
    -
    10239 
    -
    10240 const extended::Info::ZoneInfo kZoneAsia_Yakutsk ACE_TIME_PROGMEM = {
    -
    10241  kZoneNameAsia_Yakutsk /*name*/,
    -
    10242  0x87bb3a9e /*zoneId*/,
    -
    10243  &kZoneContext /*zoneContext*/,
    -
    10244  3 /*numEras*/,
    -
    10245  kZoneEraAsia_Yakutsk /*eras*/,
    -
    10246  nullptr /*targetInfo*/,
    -
    10247 };
    -
    10248 
    -
    10249 //---------------------------------------------------------------------------
    -
    10250 // Zone name: Asia/Yangon
    -
    10251 // Eras: 1
    -
    10252 //---------------------------------------------------------------------------
    -
    10253 
    -
    10254 static const extended::Info::ZoneEra kZoneEraAsia_Yangon[] ACE_TIME_PROGMEM = {
    -
    10255  // 6:30 - %z
    -
    10256  {
    -
    10257  nullptr /*zonePolicy*/,
    -
    10258  "" /*format*/,
    -
    10259  26 /*offsetCode*/,
    -
    10260  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10261  127 /*untilYearTiny*/,
    -
    10262  1 /*untilMonth*/,
    -
    10263  1 /*untilDay*/,
    -
    10264  0 /*untilTimeCode*/,
    -
    10265  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10266  },
    -
    10267 
    -
    10268 };
    -
    10269 
    -
    10270 static const char kZoneNameAsia_Yangon[] ACE_TIME_PROGMEM = "\x05" "Yangon";
    -
    10271 
    -
    10272 const extended::Info::ZoneInfo kZoneAsia_Yangon ACE_TIME_PROGMEM = {
    -
    10273  kZoneNameAsia_Yangon /*name*/,
    -
    10274  0xdd54a8be /*zoneId*/,
    -
    10275  &kZoneContext /*zoneContext*/,
    -
    10276  1 /*numEras*/,
    -
    10277  kZoneEraAsia_Yangon /*eras*/,
    -
    10278  nullptr /*targetInfo*/,
    -
    10279 };
    -
    10280 
    -
    10281 //---------------------------------------------------------------------------
    -
    10282 // Zone name: Asia/Yekaterinburg
    -
    10283 // Eras: 3
    -
    10284 //---------------------------------------------------------------------------
    -
    10285 
    -
    10286 static const extended::Info::ZoneEra kZoneEraAsia_Yekaterinburg[] ACE_TIME_PROGMEM = {
    -
    10287  // 5:00 Russia %z 2011 Mar 27 2:00s
    -
    10288  {
    -
    10289  &kZonePolicyRussia /*zonePolicy*/,
    -
    10290  "" /*format*/,
    -
    10291  20 /*offsetCode*/,
    -
    10292  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10293  -89 /*untilYearTiny*/,
    -
    10294  3 /*untilMonth*/,
    -
    10295  27 /*untilDay*/,
    -
    10296  8 /*untilTimeCode*/,
    -
    10297  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    10298  },
    -
    10299  // 6:00 - %z 2014 Oct 26 2:00s
    -
    10300  {
    -
    10301  nullptr /*zonePolicy*/,
    -
    10302  "" /*format*/,
    -
    10303  24 /*offsetCode*/,
    -
    10304  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10305  -86 /*untilYearTiny*/,
    -
    10306  10 /*untilMonth*/,
    -
    10307  26 /*untilDay*/,
    -
    10308  8 /*untilTimeCode*/,
    -
    10309  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    10310  },
    -
    10311  // 5:00 - %z
    -
    10312  {
    -
    10313  nullptr /*zonePolicy*/,
    -
    10314  "" /*format*/,
    -
    10315  20 /*offsetCode*/,
    -
    10316  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10317  127 /*untilYearTiny*/,
    -
    10318  1 /*untilMonth*/,
    -
    10319  1 /*untilDay*/,
    -
    10320  0 /*untilTimeCode*/,
    -
    10321  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10322  },
    -
    10323 
    -
    10324 };
    -
    10325 
    -
    10326 static const char kZoneNameAsia_Yekaterinburg[] ACE_TIME_PROGMEM = "\x05" "Yekaterinburg";
    -
    10327 
    -
    10328 const extended::Info::ZoneInfo kZoneAsia_Yekaterinburg ACE_TIME_PROGMEM = {
    -
    10329  kZoneNameAsia_Yekaterinburg /*name*/,
    -
    10330  0xfb544c6e /*zoneId*/,
    -
    10331  &kZoneContext /*zoneContext*/,
    -
    10332  3 /*numEras*/,
    -
    10333  kZoneEraAsia_Yekaterinburg /*eras*/,
    -
    10334  nullptr /*targetInfo*/,
    -
    10335 };
    -
    10336 
    -
    10337 //---------------------------------------------------------------------------
    -
    10338 // Zone name: Asia/Yerevan
    -
    10339 // Eras: 2
    -
    10340 //---------------------------------------------------------------------------
    -
    10341 
    -
    10342 static const extended::Info::ZoneEra kZoneEraAsia_Yerevan[] ACE_TIME_PROGMEM = {
    -
    10343  // 4:00 RussiaAsia %z 2011
    -
    10344  {
    -
    10345  &kZonePolicyRussiaAsia /*zonePolicy*/,
    -
    10346  "" /*format*/,
    -
    10347  16 /*offsetCode*/,
    -
    10348  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10349  -89 /*untilYearTiny*/,
    -
    10350  1 /*untilMonth*/,
    -
    10351  1 /*untilDay*/,
    -
    10352  0 /*untilTimeCode*/,
    -
    10353  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10354  },
    -
    10355  // 4:00 Armenia %z
    -
    10356  {
    -
    10357  &kZonePolicyArmenia /*zonePolicy*/,
    -
    10358  "" /*format*/,
    -
    10359  16 /*offsetCode*/,
    -
    10360  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10361  127 /*untilYearTiny*/,
    -
    10362  1 /*untilMonth*/,
    -
    10363  1 /*untilDay*/,
    -
    10364  0 /*untilTimeCode*/,
    -
    10365  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10366  },
    -
    10367 
    -
    10368 };
    -
    10369 
    -
    10370 static const char kZoneNameAsia_Yerevan[] ACE_TIME_PROGMEM = "\x05" "Yerevan";
    -
    10371 
    -
    10372 const extended::Info::ZoneInfo kZoneAsia_Yerevan ACE_TIME_PROGMEM = {
    -
    10373  kZoneNameAsia_Yerevan /*name*/,
    -
    10374  0x9185c8cc /*zoneId*/,
    -
    10375  &kZoneContext /*zoneContext*/,
    -
    10376  2 /*numEras*/,
    -
    10377  kZoneEraAsia_Yerevan /*eras*/,
    -
    10378  nullptr /*targetInfo*/,
    -
    10379 };
    -
    10380 
    -
    10381 //---------------------------------------------------------------------------
    -
    10382 // Zone name: Atlantic/Azores
    -
    10383 // Eras: 1
    -
    10384 //---------------------------------------------------------------------------
    -
    10385 
    -
    10386 static const extended::Info::ZoneEra kZoneEraAtlantic_Azores[] ACE_TIME_PROGMEM = {
    -
    10387  // -1:00 EU %z
    -
    10388  {
    -
    10389  &kZonePolicyEU /*zonePolicy*/,
    -
    10390  "" /*format*/,
    -
    10391  -4 /*offsetCode*/,
    -
    10392  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10393  127 /*untilYearTiny*/,
    -
    10394  1 /*untilMonth*/,
    -
    10395  1 /*untilDay*/,
    -
    10396  0 /*untilTimeCode*/,
    -
    10397  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10398  },
    -
    10399 
    -
    10400 };
    -
    10401 
    -
    10402 static const char kZoneNameAtlantic_Azores[] ACE_TIME_PROGMEM = "\x06" "Azores";
    -
    10403 
    -
    10404 const extended::Info::ZoneInfo kZoneAtlantic_Azores ACE_TIME_PROGMEM = {
    -
    10405  kZoneNameAtlantic_Azores /*name*/,
    -
    10406  0xf93ed918 /*zoneId*/,
    -
    10407  &kZoneContext /*zoneContext*/,
    -
    10408  1 /*numEras*/,
    -
    10409  kZoneEraAtlantic_Azores /*eras*/,
    -
    10410  nullptr /*targetInfo*/,
    -
    10411 };
    -
    10412 
    -
    10413 //---------------------------------------------------------------------------
    -
    10414 // Zone name: Atlantic/Bermuda
    -
    10415 // Eras: 1
    -
    10416 //---------------------------------------------------------------------------
    -
    10417 
    -
    10418 static const extended::Info::ZoneEra kZoneEraAtlantic_Bermuda[] ACE_TIME_PROGMEM = {
    -
    10419  // -4:00 US A%sT
    -
    10420  {
    -
    10421  &kZonePolicyUS /*zonePolicy*/,
    -
    10422  "A%T" /*format*/,
    -
    10423  -16 /*offsetCode*/,
    -
    10424  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10425  127 /*untilYearTiny*/,
    -
    10426  1 /*untilMonth*/,
    -
    10427  1 /*untilDay*/,
    -
    10428  0 /*untilTimeCode*/,
    -
    10429  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10430  },
    -
    10431 
    -
    10432 };
    -
    10433 
    -
    10434 static const char kZoneNameAtlantic_Bermuda[] ACE_TIME_PROGMEM = "\x06" "Bermuda";
    -
    10435 
    -
    10436 const extended::Info::ZoneInfo kZoneAtlantic_Bermuda ACE_TIME_PROGMEM = {
    -
    10437  kZoneNameAtlantic_Bermuda /*name*/,
    -
    10438  0x3d4bb1c4 /*zoneId*/,
    -
    10439  &kZoneContext /*zoneContext*/,
    -
    10440  1 /*numEras*/,
    -
    10441  kZoneEraAtlantic_Bermuda /*eras*/,
    -
    10442  nullptr /*targetInfo*/,
    -
    10443 };
    -
    10444 
    -
    10445 //---------------------------------------------------------------------------
    -
    10446 // Zone name: Atlantic/Canary
    -
    10447 // Eras: 1
    -
    10448 //---------------------------------------------------------------------------
    -
    10449 
    -
    10450 static const extended::Info::ZoneEra kZoneEraAtlantic_Canary[] ACE_TIME_PROGMEM = {
    -
    10451  // 0:00 EU WE%sT
    -
    10452  {
    -
    10453  &kZonePolicyEU /*zonePolicy*/,
    -
    10454  "WE%T" /*format*/,
    -
    10455  0 /*offsetCode*/,
    -
    10456  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10457  127 /*untilYearTiny*/,
    -
    10458  1 /*untilMonth*/,
    -
    10459  1 /*untilDay*/,
    -
    10460  0 /*untilTimeCode*/,
    -
    10461  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10462  },
    -
    10463 
    -
    10464 };
    -
    10465 
    -
    10466 static const char kZoneNameAtlantic_Canary[] ACE_TIME_PROGMEM = "\x06" "Canary";
    -
    10467 
    -
    10468 const extended::Info::ZoneInfo kZoneAtlantic_Canary ACE_TIME_PROGMEM = {
    -
    10469  kZoneNameAtlantic_Canary /*name*/,
    -
    10470  0xfc23f2c2 /*zoneId*/,
    -
    10471  &kZoneContext /*zoneContext*/,
    -
    10472  1 /*numEras*/,
    -
    10473  kZoneEraAtlantic_Canary /*eras*/,
    -
    10474  nullptr /*targetInfo*/,
    -
    10475 };
    -
    10476 
    -
    10477 //---------------------------------------------------------------------------
    -
    10478 // Zone name: Atlantic/Cape_Verde
    -
    10479 // Eras: 1
    -
    10480 //---------------------------------------------------------------------------
    -
    10481 
    -
    10482 static const extended::Info::ZoneEra kZoneEraAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = {
    -
    10483  // -1:00 - %z
    -
    10484  {
    -
    10485  nullptr /*zonePolicy*/,
    -
    10486  "" /*format*/,
    -
    10487  -4 /*offsetCode*/,
    -
    10488  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10489  127 /*untilYearTiny*/,
    -
    10490  1 /*untilMonth*/,
    -
    10491  1 /*untilDay*/,
    -
    10492  0 /*untilTimeCode*/,
    -
    10493  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10494  },
    -
    10495 
    -
    10496 };
    -
    10497 
    -
    10498 static const char kZoneNameAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = "\x06" "Cape_Verde";
    -
    10499 
    -
    10500 const extended::Info::ZoneInfo kZoneAtlantic_Cape_Verde ACE_TIME_PROGMEM = {
    -
    10501  kZoneNameAtlantic_Cape_Verde /*name*/,
    -
    10502  0x5c5e1772 /*zoneId*/,
    -
    10503  &kZoneContext /*zoneContext*/,
    -
    10504  1 /*numEras*/,
    -
    10505  kZoneEraAtlantic_Cape_Verde /*eras*/,
    -
    10506  nullptr /*targetInfo*/,
    -
    10507 };
    -
    10508 
    -
    10509 //---------------------------------------------------------------------------
    -
    10510 // Zone name: Atlantic/Faroe
    -
    10511 // Eras: 1
    -
    10512 //---------------------------------------------------------------------------
    -
    10513 
    -
    10514 static const extended::Info::ZoneEra kZoneEraAtlantic_Faroe[] ACE_TIME_PROGMEM = {
    -
    10515  // 0:00 EU WE%sT
    -
    10516  {
    -
    10517  &kZonePolicyEU /*zonePolicy*/,
    -
    10518  "WE%T" /*format*/,
    -
    10519  0 /*offsetCode*/,
    -
    10520  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10521  127 /*untilYearTiny*/,
    -
    10522  1 /*untilMonth*/,
    -
    10523  1 /*untilDay*/,
    -
    10524  0 /*untilTimeCode*/,
    -
    10525  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10526  },
    -
    10527 
    -
    10528 };
    -
    10529 
    -
    10530 static const char kZoneNameAtlantic_Faroe[] ACE_TIME_PROGMEM = "\x06" "Faroe";
    -
    10531 
    -
    10532 const extended::Info::ZoneInfo kZoneAtlantic_Faroe ACE_TIME_PROGMEM = {
    -
    10533  kZoneNameAtlantic_Faroe /*name*/,
    -
    10534  0xe110a971 /*zoneId*/,
    -
    10535  &kZoneContext /*zoneContext*/,
    -
    10536  1 /*numEras*/,
    -
    10537  kZoneEraAtlantic_Faroe /*eras*/,
    -
    10538  nullptr /*targetInfo*/,
    -
    10539 };
    -
    10540 
    -
    10541 //---------------------------------------------------------------------------
    -
    10542 // Zone name: Atlantic/Madeira
    -
    10543 // Eras: 1
    -
    10544 //---------------------------------------------------------------------------
    -
    10545 
    -
    10546 static const extended::Info::ZoneEra kZoneEraAtlantic_Madeira[] ACE_TIME_PROGMEM = {
    -
    10547  // 0:00 EU WE%sT
    -
    10548  {
    -
    10549  &kZonePolicyEU /*zonePolicy*/,
    -
    10550  "WE%T" /*format*/,
    -
    10551  0 /*offsetCode*/,
    -
    10552  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10553  127 /*untilYearTiny*/,
    -
    10554  1 /*untilMonth*/,
    -
    10555  1 /*untilDay*/,
    -
    10556  0 /*untilTimeCode*/,
    -
    10557  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10558  },
    -
    10559 
    -
    10560 };
    -
    10561 
    -
    10562 static const char kZoneNameAtlantic_Madeira[] ACE_TIME_PROGMEM = "\x06" "Madeira";
    -
    10563 
    -
    10564 const extended::Info::ZoneInfo kZoneAtlantic_Madeira ACE_TIME_PROGMEM = {
    -
    10565  kZoneNameAtlantic_Madeira /*name*/,
    -
    10566  0x81b5c037 /*zoneId*/,
    -
    10567  &kZoneContext /*zoneContext*/,
    -
    10568  1 /*numEras*/,
    -
    10569  kZoneEraAtlantic_Madeira /*eras*/,
    -
    10570  nullptr /*targetInfo*/,
    -
    10571 };
    -
    10572 
    -
    10573 //---------------------------------------------------------------------------
    -
    10574 // Zone name: Atlantic/South_Georgia
    -
    10575 // Eras: 1
    -
    10576 //---------------------------------------------------------------------------
    -
    10577 
    -
    10578 static const extended::Info::ZoneEra kZoneEraAtlantic_South_Georgia[] ACE_TIME_PROGMEM = {
    -
    10579  // -2:00 - %z
    -
    10580  {
    -
    10581  nullptr /*zonePolicy*/,
    -
    10582  "" /*format*/,
    -
    10583  -8 /*offsetCode*/,
    -
    10584  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10585  127 /*untilYearTiny*/,
    -
    10586  1 /*untilMonth*/,
    -
    10587  1 /*untilDay*/,
    -
    10588  0 /*untilTimeCode*/,
    -
    10589  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10590  },
    -
    10591 
    -
    10592 };
    -
    10593 
    -
    10594 static const char kZoneNameAtlantic_South_Georgia[] ACE_TIME_PROGMEM = "\x06" "South_Georgia";
    -
    10595 
    -
    10596 const extended::Info::ZoneInfo kZoneAtlantic_South_Georgia ACE_TIME_PROGMEM = {
    -
    10597  kZoneNameAtlantic_South_Georgia /*name*/,
    -
    10598  0x33013174 /*zoneId*/,
    -
    10599  &kZoneContext /*zoneContext*/,
    -
    10600  1 /*numEras*/,
    -
    10601  kZoneEraAtlantic_South_Georgia /*eras*/,
    -
    10602  nullptr /*targetInfo*/,
    -
    10603 };
    -
    10604 
    -
    10605 //---------------------------------------------------------------------------
    -
    10606 // Zone name: Atlantic/Stanley
    -
    10607 // Eras: 2
    -
    10608 //---------------------------------------------------------------------------
    -
    10609 
    -
    10610 static const extended::Info::ZoneEra kZoneEraAtlantic_Stanley[] ACE_TIME_PROGMEM = {
    -
    10611  // -4:00 Falk %z 2010 Sep 5 2:00
    -
    10612  {
    -
    10613  &kZonePolicyFalk /*zonePolicy*/,
    -
    10614  "" /*format*/,
    -
    10615  -16 /*offsetCode*/,
    -
    10616  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10617  -90 /*untilYearTiny*/,
    -
    10618  9 /*untilMonth*/,
    -
    10619  5 /*untilDay*/,
    -
    10620  8 /*untilTimeCode*/,
    -
    10621  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10622  },
    -
    10623  // -3:00 - %z
    -
    10624  {
    -
    10625  nullptr /*zonePolicy*/,
    -
    10626  "" /*format*/,
    -
    10627  -12 /*offsetCode*/,
    -
    10628  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10629  127 /*untilYearTiny*/,
    -
    10630  1 /*untilMonth*/,
    -
    10631  1 /*untilDay*/,
    -
    10632  0 /*untilTimeCode*/,
    -
    10633  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10634  },
    -
    10635 
    -
    10636 };
    -
    10637 
    -
    10638 static const char kZoneNameAtlantic_Stanley[] ACE_TIME_PROGMEM = "\x06" "Stanley";
    -
    10639 
    -
    10640 const extended::Info::ZoneInfo kZoneAtlantic_Stanley ACE_TIME_PROGMEM = {
    -
    10641  kZoneNameAtlantic_Stanley /*name*/,
    -
    10642  0x7bb3e1c4 /*zoneId*/,
    -
    10643  &kZoneContext /*zoneContext*/,
    -
    10644  2 /*numEras*/,
    -
    10645  kZoneEraAtlantic_Stanley /*eras*/,
    -
    10646  nullptr /*targetInfo*/,
    -
    10647 };
    -
    10648 
    -
    10649 //---------------------------------------------------------------------------
    -
    10650 // Zone name: Australia/Adelaide
    -
    10651 // Eras: 1
    -
    10652 //---------------------------------------------------------------------------
    -
    10653 
    -
    10654 static const extended::Info::ZoneEra kZoneEraAustralia_Adelaide[] ACE_TIME_PROGMEM = {
    -
    10655  // 9:30 AS AC%sT
    -
    10656  {
    -
    10657  &kZonePolicyAS /*zonePolicy*/,
    -
    10658  "AC%T" /*format*/,
    -
    10659  38 /*offsetCode*/,
    -
    10660  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10661  127 /*untilYearTiny*/,
    -
    10662  1 /*untilMonth*/,
    -
    10663  1 /*untilDay*/,
    -
    10664  0 /*untilTimeCode*/,
    -
    10665  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10666  },
    -
    10667 
    -
    10668 };
    -
    10669 
    -
    10670 static const char kZoneNameAustralia_Adelaide[] ACE_TIME_PROGMEM = "\x07" "Adelaide";
    -
    10671 
    -
    10672 const extended::Info::ZoneInfo kZoneAustralia_Adelaide ACE_TIME_PROGMEM = {
    -
    10673  kZoneNameAustralia_Adelaide /*name*/,
    -
    10674  0x2428e8a3 /*zoneId*/,
    -
    10675  &kZoneContext /*zoneContext*/,
    -
    10676  1 /*numEras*/,
    -
    10677  kZoneEraAustralia_Adelaide /*eras*/,
    -
    10678  nullptr /*targetInfo*/,
    -
    10679 };
    -
    10680 
    -
    10681 //---------------------------------------------------------------------------
    -
    10682 // Zone name: Australia/Brisbane
    -
    10683 // Eras: 1
    -
    10684 //---------------------------------------------------------------------------
    -
    10685 
    -
    10686 static const extended::Info::ZoneEra kZoneEraAustralia_Brisbane[] ACE_TIME_PROGMEM = {
    -
    10687  // 10:00 AQ AE%sT
    -
    10688  {
    -
    10689  &kZonePolicyAQ /*zonePolicy*/,
    -
    10690  "AE%T" /*format*/,
    -
    10691  40 /*offsetCode*/,
    -
    10692  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10693  127 /*untilYearTiny*/,
    -
    10694  1 /*untilMonth*/,
    -
    10695  1 /*untilDay*/,
    -
    10696  0 /*untilTimeCode*/,
    -
    10697  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10698  },
    -
    10699 
    -
    10700 };
    -
    10701 
    -
    10702 static const char kZoneNameAustralia_Brisbane[] ACE_TIME_PROGMEM = "\x07" "Brisbane";
    -
    10703 
    -
    10704 const extended::Info::ZoneInfo kZoneAustralia_Brisbane ACE_TIME_PROGMEM = {
    -
    10705  kZoneNameAustralia_Brisbane /*name*/,
    -
    10706  0x4fedc9c0 /*zoneId*/,
    -
    10707  &kZoneContext /*zoneContext*/,
    -
    10708  1 /*numEras*/,
    -
    10709  kZoneEraAustralia_Brisbane /*eras*/,
    -
    10710  nullptr /*targetInfo*/,
    -
    10711 };
    -
    10712 
    -
    10713 //---------------------------------------------------------------------------
    -
    10714 // Zone name: Australia/Broken_Hill
    -
    10715 // Eras: 2
    -
    10716 //---------------------------------------------------------------------------
    -
    10717 
    -
    10718 static const extended::Info::ZoneEra kZoneEraAustralia_Broken_Hill[] ACE_TIME_PROGMEM = {
    -
    10719  // 9:30 AN AC%sT 2000
    -
    10720  {
    -
    10721  &kZonePolicyAN /*zonePolicy*/,
    -
    10722  "AC%T" /*format*/,
    -
    10723  38 /*offsetCode*/,
    -
    10724  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10725  -100 /*untilYearTiny*/,
    -
    10726  1 /*untilMonth*/,
    -
    10727  1 /*untilDay*/,
    -
    10728  0 /*untilTimeCode*/,
    -
    10729  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10730  },
    -
    10731  // 9:30 AS AC%sT
    -
    10732  {
    -
    10733  &kZonePolicyAS /*zonePolicy*/,
    -
    10734  "AC%T" /*format*/,
    -
    10735  38 /*offsetCode*/,
    -
    10736  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10737  127 /*untilYearTiny*/,
    -
    10738  1 /*untilMonth*/,
    -
    10739  1 /*untilDay*/,
    -
    10740  0 /*untilTimeCode*/,
    -
    10741  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10742  },
    -
    10743 
    -
    10744 };
    -
    10745 
    -
    10746 static const char kZoneNameAustralia_Broken_Hill[] ACE_TIME_PROGMEM = "\x07" "Broken_Hill";
    -
    10747 
    -
    10748 const extended::Info::ZoneInfo kZoneAustralia_Broken_Hill ACE_TIME_PROGMEM = {
    -
    10749  kZoneNameAustralia_Broken_Hill /*name*/,
    -
    10750  0xb06eada3 /*zoneId*/,
    -
    10751  &kZoneContext /*zoneContext*/,
    -
    10752  2 /*numEras*/,
    -
    10753  kZoneEraAustralia_Broken_Hill /*eras*/,
    -
    10754  nullptr /*targetInfo*/,
    -
    10755 };
    -
    10756 
    -
    10757 //---------------------------------------------------------------------------
    -
    10758 // Zone name: Australia/Darwin
    -
    10759 // Eras: 1
    -
    10760 //---------------------------------------------------------------------------
    -
    10761 
    -
    10762 static const extended::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = {
    -
    10763  // 9:30 Aus AC%sT
    -
    10764  {
    -
    10765  &kZonePolicyAus /*zonePolicy*/,
    -
    10766  "AC%T" /*format*/,
    -
    10767  38 /*offsetCode*/,
    -
    10768  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10769  127 /*untilYearTiny*/,
    -
    10770  1 /*untilMonth*/,
    -
    10771  1 /*untilDay*/,
    -
    10772  0 /*untilTimeCode*/,
    -
    10773  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10774  },
    -
    10775 
    -
    10776 };
    -
    10777 
    -
    10778 static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "\x07" "Darwin";
    -
    10779 
    -
    10780 const extended::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = {
    -
    10781  kZoneNameAustralia_Darwin /*name*/,
    -
    10782  0x2876bdff /*zoneId*/,
    -
    10783  &kZoneContext /*zoneContext*/,
    -
    10784  1 /*numEras*/,
    -
    10785  kZoneEraAustralia_Darwin /*eras*/,
    -
    10786  nullptr /*targetInfo*/,
    -
    10787 };
    -
    10788 
    -
    10789 //---------------------------------------------------------------------------
    -
    10790 // Zone name: Australia/Eucla
    -
    10791 // Eras: 1
    -
    10792 //---------------------------------------------------------------------------
    -
    10793 
    -
    10794 static const extended::Info::ZoneEra kZoneEraAustralia_Eucla[] ACE_TIME_PROGMEM = {
    -
    10795  // 8:45 AW %z
    -
    10796  {
    -
    10797  &kZonePolicyAW /*zonePolicy*/,
    -
    10798  "" /*format*/,
    -
    10799  35 /*offsetCode*/,
    -
    10800  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10801  127 /*untilYearTiny*/,
    -
    10802  1 /*untilMonth*/,
    -
    10803  1 /*untilDay*/,
    -
    10804  0 /*untilTimeCode*/,
    -
    10805  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10806  },
    -
    10807 
    -
    10808 };
    -
    10809 
    -
    10810 static const char kZoneNameAustralia_Eucla[] ACE_TIME_PROGMEM = "\x07" "Eucla";
    -
    10811 
    -
    10812 const extended::Info::ZoneInfo kZoneAustralia_Eucla ACE_TIME_PROGMEM = {
    -
    10813  kZoneNameAustralia_Eucla /*name*/,
    -
    10814  0x8cf99e44 /*zoneId*/,
    -
    10815  &kZoneContext /*zoneContext*/,
    -
    10816  1 /*numEras*/,
    -
    10817  kZoneEraAustralia_Eucla /*eras*/,
    -
    10818  nullptr /*targetInfo*/,
    -
    10819 };
    -
    10820 
    -
    10821 //---------------------------------------------------------------------------
    -
    10822 // Zone name: Australia/Hobart
    -
    10823 // Eras: 1
    -
    10824 //---------------------------------------------------------------------------
    -
    10825 
    -
    10826 static const extended::Info::ZoneEra kZoneEraAustralia_Hobart[] ACE_TIME_PROGMEM = {
    -
    10827  // 10:00 AT AE%sT
    -
    10828  {
    -
    10829  &kZonePolicyAT /*zonePolicy*/,
    -
    10830  "AE%T" /*format*/,
    -
    10831  40 /*offsetCode*/,
    -
    10832  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10833  127 /*untilYearTiny*/,
    -
    10834  1 /*untilMonth*/,
    -
    10835  1 /*untilDay*/,
    -
    10836  0 /*untilTimeCode*/,
    -
    10837  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10838  },
    -
    10839 
    -
    10840 };
    -
    10841 
    -
    10842 static const char kZoneNameAustralia_Hobart[] ACE_TIME_PROGMEM = "\x07" "Hobart";
    -
    10843 
    -
    10844 const extended::Info::ZoneInfo kZoneAustralia_Hobart ACE_TIME_PROGMEM = {
    -
    10845  kZoneNameAustralia_Hobart /*name*/,
    -
    10846  0x32bf951a /*zoneId*/,
    -
    10847  &kZoneContext /*zoneContext*/,
    -
    10848  1 /*numEras*/,
    -
    10849  kZoneEraAustralia_Hobart /*eras*/,
    -
    10850  nullptr /*targetInfo*/,
    -
    10851 };
    -
    10852 
    -
    10853 //---------------------------------------------------------------------------
    -
    10854 // Zone name: Australia/Lindeman
    -
    10855 // Eras: 1
    -
    10856 //---------------------------------------------------------------------------
    -
    10857 
    -
    10858 static const extended::Info::ZoneEra kZoneEraAustralia_Lindeman[] ACE_TIME_PROGMEM = {
    -
    10859  // 10:00 Holiday AE%sT
    -
    10860  {
    -
    10861  &kZonePolicyHoliday /*zonePolicy*/,
    -
    10862  "AE%T" /*format*/,
    -
    10863  40 /*offsetCode*/,
    -
    10864  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10865  127 /*untilYearTiny*/,
    -
    10866  1 /*untilMonth*/,
    -
    10867  1 /*untilDay*/,
    -
    10868  0 /*untilTimeCode*/,
    -
    10869  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10870  },
    -
    10871 
    -
    10872 };
    -
    10873 
    -
    10874 static const char kZoneNameAustralia_Lindeman[] ACE_TIME_PROGMEM = "\x07" "Lindeman";
    -
    10875 
    -
    10876 const extended::Info::ZoneInfo kZoneAustralia_Lindeman ACE_TIME_PROGMEM = {
    -
    10877  kZoneNameAustralia_Lindeman /*name*/,
    -
    10878  0xe05029e2 /*zoneId*/,
    -
    10879  &kZoneContext /*zoneContext*/,
    -
    10880  1 /*numEras*/,
    -
    10881  kZoneEraAustralia_Lindeman /*eras*/,
    -
    10882  nullptr /*targetInfo*/,
    -
    10883 };
    -
    10884 
    -
    10885 //---------------------------------------------------------------------------
    -
    10886 // Zone name: Australia/Lord_Howe
    -
    10887 // Eras: 1
    -
    10888 //---------------------------------------------------------------------------
    -
    10889 
    -
    10890 static const extended::Info::ZoneEra kZoneEraAustralia_Lord_Howe[] ACE_TIME_PROGMEM = {
    -
    10891  // 10:30 LH %z
    -
    10892  {
    -
    10893  &kZonePolicyLH /*zonePolicy*/,
    -
    10894  "" /*format*/,
    -
    10895  42 /*offsetCode*/,
    -
    10896  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10897  127 /*untilYearTiny*/,
    -
    10898  1 /*untilMonth*/,
    -
    10899  1 /*untilDay*/,
    -
    10900  0 /*untilTimeCode*/,
    -
    10901  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10902  },
    -
    10903 
    -
    10904 };
    -
    10905 
    -
    10906 static const char kZoneNameAustralia_Lord_Howe[] ACE_TIME_PROGMEM = "\x07" "Lord_Howe";
    -
    10907 
    -
    10908 const extended::Info::ZoneInfo kZoneAustralia_Lord_Howe ACE_TIME_PROGMEM = {
    -
    10909  kZoneNameAustralia_Lord_Howe /*name*/,
    -
    10910  0xa748b67d /*zoneId*/,
    -
    10911  &kZoneContext /*zoneContext*/,
    -
    10912  1 /*numEras*/,
    -
    10913  kZoneEraAustralia_Lord_Howe /*eras*/,
    -
    10914  nullptr /*targetInfo*/,
    -
    10915 };
    -
    10916 
    -
    10917 //---------------------------------------------------------------------------
    -
    10918 // Zone name: Australia/Melbourne
    -
    10919 // Eras: 1
    -
    10920 //---------------------------------------------------------------------------
    -
    10921 
    -
    10922 static const extended::Info::ZoneEra kZoneEraAustralia_Melbourne[] ACE_TIME_PROGMEM = {
    -
    10923  // 10:00 AV AE%sT
    -
    10924  {
    -
    10925  &kZonePolicyAV /*zonePolicy*/,
    -
    10926  "AE%T" /*format*/,
    -
    10927  40 /*offsetCode*/,
    -
    10928  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10929  127 /*untilYearTiny*/,
    -
    10930  1 /*untilMonth*/,
    -
    10931  1 /*untilDay*/,
    -
    10932  0 /*untilTimeCode*/,
    -
    10933  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10934  },
    -
    10935 
    -
    10936 };
    -
    10937 
    -
    10938 static const char kZoneNameAustralia_Melbourne[] ACE_TIME_PROGMEM = "\x07" "Melbourne";
    -
    10939 
    -
    10940 const extended::Info::ZoneInfo kZoneAustralia_Melbourne ACE_TIME_PROGMEM = {
    -
    10941  kZoneNameAustralia_Melbourne /*name*/,
    -
    10942  0x0fe559a3 /*zoneId*/,
    -
    10943  &kZoneContext /*zoneContext*/,
    -
    10944  1 /*numEras*/,
    -
    10945  kZoneEraAustralia_Melbourne /*eras*/,
    -
    10946  nullptr /*targetInfo*/,
    -
    10947 };
    -
    10948 
    -
    10949 //---------------------------------------------------------------------------
    -
    10950 // Zone name: Australia/Perth
    -
    10951 // Eras: 1
    -
    10952 //---------------------------------------------------------------------------
    -
    10953 
    -
    10954 static const extended::Info::ZoneEra kZoneEraAustralia_Perth[] ACE_TIME_PROGMEM = {
    -
    10955  // 8:00 AW AW%sT
    -
    10956  {
    -
    10957  &kZonePolicyAW /*zonePolicy*/,
    -
    10958  "AW%T" /*format*/,
    -
    10959  32 /*offsetCode*/,
    -
    10960  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10961  127 /*untilYearTiny*/,
    -
    10962  1 /*untilMonth*/,
    -
    10963  1 /*untilDay*/,
    -
    10964  0 /*untilTimeCode*/,
    -
    10965  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10966  },
    -
    10967 
    -
    10968 };
    -
    10969 
    -
    10970 static const char kZoneNameAustralia_Perth[] ACE_TIME_PROGMEM = "\x07" "Perth";
    -
    10971 
    -
    10972 const extended::Info::ZoneInfo kZoneAustralia_Perth ACE_TIME_PROGMEM = {
    -
    10973  kZoneNameAustralia_Perth /*name*/,
    -
    10974  0x8db8269d /*zoneId*/,
    -
    10975  &kZoneContext /*zoneContext*/,
    -
    10976  1 /*numEras*/,
    -
    10977  kZoneEraAustralia_Perth /*eras*/,
    -
    10978  nullptr /*targetInfo*/,
    -
    10979 };
    -
    10980 
    -
    10981 //---------------------------------------------------------------------------
    -
    10982 // Zone name: Australia/Sydney
    -
    10983 // Eras: 1
    -
    10984 //---------------------------------------------------------------------------
    -
    10985 
    -
    10986 static const extended::Info::ZoneEra kZoneEraAustralia_Sydney[] ACE_TIME_PROGMEM = {
    -
    10987  // 10:00 AN AE%sT
    -
    10988  {
    -
    10989  &kZonePolicyAN /*zonePolicy*/,
    -
    10990  "AE%T" /*format*/,
    -
    10991  40 /*offsetCode*/,
    -
    10992  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    10993  127 /*untilYearTiny*/,
    -
    10994  1 /*untilMonth*/,
    -
    10995  1 /*untilDay*/,
    -
    10996  0 /*untilTimeCode*/,
    -
    10997  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    10998  },
    -
    10999 
    -
    11000 };
    -
    11001 
    -
    11002 static const char kZoneNameAustralia_Sydney[] ACE_TIME_PROGMEM = "\x07" "Sydney";
    -
    11003 
    -
    11004 const extended::Info::ZoneInfo kZoneAustralia_Sydney ACE_TIME_PROGMEM = {
    -
    11005  kZoneNameAustralia_Sydney /*name*/,
    -
    11006  0x4d1e9776 /*zoneId*/,
    -
    11007  &kZoneContext /*zoneContext*/,
    -
    11008  1 /*numEras*/,
    -
    11009  kZoneEraAustralia_Sydney /*eras*/,
    -
    11010  nullptr /*targetInfo*/,
    -
    11011 };
    -
    11012 
    -
    11013 //---------------------------------------------------------------------------
    -
    11014 // Zone name: Etc/GMT
    -
    11015 // Eras: 1
    -
    11016 //---------------------------------------------------------------------------
    -
    11017 
    -
    11018 static const extended::Info::ZoneEra kZoneEraEtc_GMT[] ACE_TIME_PROGMEM = {
    -
    11019  // 0 - GMT
    -
    11020  {
    -
    11021  nullptr /*zonePolicy*/,
    -
    11022  "GMT" /*format*/,
    -
    11023  0 /*offsetCode*/,
    -
    11024  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11025  127 /*untilYearTiny*/,
    -
    11026  1 /*untilMonth*/,
    -
    11027  1 /*untilDay*/,
    -
    11028  0 /*untilTimeCode*/,
    -
    11029  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11030  },
    -
    11031 
    -
    11032 };
    -
    11033 
    -
    11034 static const char kZoneNameEtc_GMT[] ACE_TIME_PROGMEM = "\x0a" "GMT";
    -
    11035 
    -
    11036 const extended::Info::ZoneInfo kZoneEtc_GMT ACE_TIME_PROGMEM = {
    -
    11037  kZoneNameEtc_GMT /*name*/,
    -
    11038  0xd8e2de58 /*zoneId*/,
    -
    11039  &kZoneContext /*zoneContext*/,
    -
    11040  1 /*numEras*/,
    -
    11041  kZoneEraEtc_GMT /*eras*/,
    -
    11042  nullptr /*targetInfo*/,
    -
    11043 };
    -
    11044 
    -
    11045 //---------------------------------------------------------------------------
    -
    11046 // Zone name: Etc/GMT+1
    -
    11047 // Eras: 1
    -
    11048 //---------------------------------------------------------------------------
    -
    11049 
    -
    11050 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = {
    -
    11051  // -1 - %z
    -
    11052  {
    -
    11053  nullptr /*zonePolicy*/,
    -
    11054  "" /*format*/,
    -
    11055  -4 /*offsetCode*/,
    -
    11056  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11057  127 /*untilYearTiny*/,
    -
    11058  1 /*untilMonth*/,
    -
    11059  1 /*untilDay*/,
    -
    11060  0 /*untilTimeCode*/,
    -
    11061  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11062  },
    -
    11063 
    -
    11064 };
    -
    11065 
    -
    11066 static const char kZoneNameEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = "\x0a" "GMT+1";
    -
    11067 
    -
    11068 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_1 ACE_TIME_PROGMEM = {
    -
    11069  kZoneNameEtc_GMT_PLUS_1 /*name*/,
    -
    11070  0x9d13da14 /*zoneId*/,
    -
    11071  &kZoneContext /*zoneContext*/,
    -
    11072  1 /*numEras*/,
    -
    11073  kZoneEraEtc_GMT_PLUS_1 /*eras*/,
    -
    11074  nullptr /*targetInfo*/,
    -
    11075 };
    -
    11076 
    -
    11077 //---------------------------------------------------------------------------
    -
    11078 // Zone name: Etc/GMT+10
    -
    11079 // Eras: 1
    -
    11080 //---------------------------------------------------------------------------
    -
    11081 
    -
    11082 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = {
    -
    11083  // -10 - %z
    -
    11084  {
    -
    11085  nullptr /*zonePolicy*/,
    -
    11086  "" /*format*/,
    -
    11087  -40 /*offsetCode*/,
    -
    11088  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11089  127 /*untilYearTiny*/,
    -
    11090  1 /*untilMonth*/,
    -
    11091  1 /*untilDay*/,
    -
    11092  0 /*untilTimeCode*/,
    -
    11093  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11094  },
    -
    11095 
    -
    11096 };
    -
    11097 
    -
    11098 static const char kZoneNameEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = "\x0a" "GMT+10";
    -
    11099 
    -
    11100 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_10 ACE_TIME_PROGMEM = {
    -
    11101  kZoneNameEtc_GMT_PLUS_10 /*name*/,
    -
    11102  0x3f8f1cc4 /*zoneId*/,
    -
    11103  &kZoneContext /*zoneContext*/,
    -
    11104  1 /*numEras*/,
    -
    11105  kZoneEraEtc_GMT_PLUS_10 /*eras*/,
    -
    11106  nullptr /*targetInfo*/,
    -
    11107 };
    -
    11108 
    -
    11109 //---------------------------------------------------------------------------
    -
    11110 // Zone name: Etc/GMT+11
    -
    11111 // Eras: 1
    -
    11112 //---------------------------------------------------------------------------
    -
    11113 
    -
    11114 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = {
    -
    11115  // -11 - %z
    -
    11116  {
    -
    11117  nullptr /*zonePolicy*/,
    -
    11118  "" /*format*/,
    -
    11119  -44 /*offsetCode*/,
    -
    11120  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11121  127 /*untilYearTiny*/,
    -
    11122  1 /*untilMonth*/,
    -
    11123  1 /*untilDay*/,
    -
    11124  0 /*untilTimeCode*/,
    -
    11125  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11126  },
    -
    11127 
    -
    11128 };
    -
    11129 
    -
    11130 static const char kZoneNameEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = "\x0a" "GMT+11";
    -
    11131 
    -
    11132 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_11 ACE_TIME_PROGMEM = {
    -
    11133  kZoneNameEtc_GMT_PLUS_11 /*name*/,
    -
    11134  0x3f8f1cc5 /*zoneId*/,
    -
    11135  &kZoneContext /*zoneContext*/,
    -
    11136  1 /*numEras*/,
    -
    11137  kZoneEraEtc_GMT_PLUS_11 /*eras*/,
    -
    11138  nullptr /*targetInfo*/,
    -
    11139 };
    -
    11140 
    -
    11141 //---------------------------------------------------------------------------
    -
    11142 // Zone name: Etc/GMT+12
    -
    11143 // Eras: 1
    -
    11144 //---------------------------------------------------------------------------
    -
    11145 
    -
    11146 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = {
    -
    11147  // -12 - %z
    -
    11148  {
    -
    11149  nullptr /*zonePolicy*/,
    -
    11150  "" /*format*/,
    -
    11151  -48 /*offsetCode*/,
    -
    11152  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11153  127 /*untilYearTiny*/,
    -
    11154  1 /*untilMonth*/,
    -
    11155  1 /*untilDay*/,
    -
    11156  0 /*untilTimeCode*/,
    -
    11157  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11158  },
    -
    11159 
    -
    11160 };
    -
    11161 
    -
    11162 static const char kZoneNameEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = "\x0a" "GMT+12";
    -
    11163 
    -
    11164 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_12 ACE_TIME_PROGMEM = {
    -
    11165  kZoneNameEtc_GMT_PLUS_12 /*name*/,
    -
    11166  0x3f8f1cc6 /*zoneId*/,
    -
    11167  &kZoneContext /*zoneContext*/,
    -
    11168  1 /*numEras*/,
    -
    11169  kZoneEraEtc_GMT_PLUS_12 /*eras*/,
    -
    11170  nullptr /*targetInfo*/,
    -
    11171 };
    -
    11172 
    -
    11173 //---------------------------------------------------------------------------
    -
    11174 // Zone name: Etc/GMT+2
    -
    11175 // Eras: 1
    -
    11176 //---------------------------------------------------------------------------
    -
    11177 
    -
    11178 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = {
    -
    11179  // -2 - %z
    -
    11180  {
    -
    11181  nullptr /*zonePolicy*/,
    -
    11182  "" /*format*/,
    -
    11183  -8 /*offsetCode*/,
    -
    11184  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11185  127 /*untilYearTiny*/,
    -
    11186  1 /*untilMonth*/,
    -
    11187  1 /*untilDay*/,
    -
    11188  0 /*untilTimeCode*/,
    -
    11189  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11190  },
    -
    11191 
    -
    11192 };
    -
    11193 
    -
    11194 static const char kZoneNameEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = "\x0a" "GMT+2";
    -
    11195 
    -
    11196 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_2 ACE_TIME_PROGMEM = {
    -
    11197  kZoneNameEtc_GMT_PLUS_2 /*name*/,
    -
    11198  0x9d13da15 /*zoneId*/,
    -
    11199  &kZoneContext /*zoneContext*/,
    -
    11200  1 /*numEras*/,
    -
    11201  kZoneEraEtc_GMT_PLUS_2 /*eras*/,
    -
    11202  nullptr /*targetInfo*/,
    -
    11203 };
    -
    11204 
    -
    11205 //---------------------------------------------------------------------------
    -
    11206 // Zone name: Etc/GMT+3
    -
    11207 // Eras: 1
    -
    11208 //---------------------------------------------------------------------------
    -
    11209 
    -
    11210 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = {
    -
    11211  // -3 - %z
    -
    11212  {
    -
    11213  nullptr /*zonePolicy*/,
    -
    11214  "" /*format*/,
    -
    11215  -12 /*offsetCode*/,
    -
    11216  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11217  127 /*untilYearTiny*/,
    -
    11218  1 /*untilMonth*/,
    -
    11219  1 /*untilDay*/,
    -
    11220  0 /*untilTimeCode*/,
    -
    11221  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11222  },
    -
    11223 
    -
    11224 };
    -
    11225 
    -
    11226 static const char kZoneNameEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = "\x0a" "GMT+3";
    -
    11227 
    -
    11228 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_3 ACE_TIME_PROGMEM = {
    -
    11229  kZoneNameEtc_GMT_PLUS_3 /*name*/,
    -
    11230  0x9d13da16 /*zoneId*/,
    -
    11231  &kZoneContext /*zoneContext*/,
    -
    11232  1 /*numEras*/,
    -
    11233  kZoneEraEtc_GMT_PLUS_3 /*eras*/,
    -
    11234  nullptr /*targetInfo*/,
    -
    11235 };
    -
    11236 
    -
    11237 //---------------------------------------------------------------------------
    -
    11238 // Zone name: Etc/GMT+4
    -
    11239 // Eras: 1
    -
    11240 //---------------------------------------------------------------------------
    -
    11241 
    -
    11242 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = {
    -
    11243  // -4 - %z
    -
    11244  {
    -
    11245  nullptr /*zonePolicy*/,
    -
    11246  "" /*format*/,
    -
    11247  -16 /*offsetCode*/,
    -
    11248  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11249  127 /*untilYearTiny*/,
    -
    11250  1 /*untilMonth*/,
    -
    11251  1 /*untilDay*/,
    -
    11252  0 /*untilTimeCode*/,
    -
    11253  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11254  },
    -
    11255 
    -
    11256 };
    -
    11257 
    -
    11258 static const char kZoneNameEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = "\x0a" "GMT+4";
    -
    11259 
    -
    11260 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_4 ACE_TIME_PROGMEM = {
    -
    11261  kZoneNameEtc_GMT_PLUS_4 /*name*/,
    -
    11262  0x9d13da17 /*zoneId*/,
    -
    11263  &kZoneContext /*zoneContext*/,
    -
    11264  1 /*numEras*/,
    -
    11265  kZoneEraEtc_GMT_PLUS_4 /*eras*/,
    -
    11266  nullptr /*targetInfo*/,
    -
    11267 };
    -
    11268 
    -
    11269 //---------------------------------------------------------------------------
    -
    11270 // Zone name: Etc/GMT+5
    -
    11271 // Eras: 1
    -
    11272 //---------------------------------------------------------------------------
    -
    11273 
    -
    11274 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = {
    -
    11275  // -5 - %z
    -
    11276  {
    -
    11277  nullptr /*zonePolicy*/,
    -
    11278  "" /*format*/,
    -
    11279  -20 /*offsetCode*/,
    -
    11280  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11281  127 /*untilYearTiny*/,
    -
    11282  1 /*untilMonth*/,
    -
    11283  1 /*untilDay*/,
    -
    11284  0 /*untilTimeCode*/,
    -
    11285  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11286  },
    -
    11287 
    -
    11288 };
    -
    11289 
    -
    11290 static const char kZoneNameEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = "\x0a" "GMT+5";
    -
    11291 
    -
    11292 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_5 ACE_TIME_PROGMEM = {
    -
    11293  kZoneNameEtc_GMT_PLUS_5 /*name*/,
    -
    11294  0x9d13da18 /*zoneId*/,
    -
    11295  &kZoneContext /*zoneContext*/,
    -
    11296  1 /*numEras*/,
    -
    11297  kZoneEraEtc_GMT_PLUS_5 /*eras*/,
    -
    11298  nullptr /*targetInfo*/,
    -
    11299 };
    -
    11300 
    -
    11301 //---------------------------------------------------------------------------
    -
    11302 // Zone name: Etc/GMT+6
    -
    11303 // Eras: 1
    -
    11304 //---------------------------------------------------------------------------
    -
    11305 
    -
    11306 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = {
    -
    11307  // -6 - %z
    -
    11308  {
    -
    11309  nullptr /*zonePolicy*/,
    -
    11310  "" /*format*/,
    -
    11311  -24 /*offsetCode*/,
    -
    11312  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11313  127 /*untilYearTiny*/,
    -
    11314  1 /*untilMonth*/,
    -
    11315  1 /*untilDay*/,
    -
    11316  0 /*untilTimeCode*/,
    -
    11317  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11318  },
    -
    11319 
    -
    11320 };
    -
    11321 
    -
    11322 static const char kZoneNameEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = "\x0a" "GMT+6";
    -
    11323 
    -
    11324 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_6 ACE_TIME_PROGMEM = {
    -
    11325  kZoneNameEtc_GMT_PLUS_6 /*name*/,
    -
    11326  0x9d13da19 /*zoneId*/,
    -
    11327  &kZoneContext /*zoneContext*/,
    -
    11328  1 /*numEras*/,
    -
    11329  kZoneEraEtc_GMT_PLUS_6 /*eras*/,
    -
    11330  nullptr /*targetInfo*/,
    -
    11331 };
    -
    11332 
    -
    11333 //---------------------------------------------------------------------------
    -
    11334 // Zone name: Etc/GMT+7
    -
    11335 // Eras: 1
    -
    11336 //---------------------------------------------------------------------------
    -
    11337 
    -
    11338 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = {
    -
    11339  // -7 - %z
    -
    11340  {
    -
    11341  nullptr /*zonePolicy*/,
    -
    11342  "" /*format*/,
    -
    11343  -28 /*offsetCode*/,
    -
    11344  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11345  127 /*untilYearTiny*/,
    -
    11346  1 /*untilMonth*/,
    -
    11347  1 /*untilDay*/,
    -
    11348  0 /*untilTimeCode*/,
    -
    11349  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11350  },
    -
    11351 
    -
    11352 };
    -
    11353 
    -
    11354 static const char kZoneNameEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = "\x0a" "GMT+7";
    -
    11355 
    -
    11356 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_7 ACE_TIME_PROGMEM = {
    -
    11357  kZoneNameEtc_GMT_PLUS_7 /*name*/,
    -
    11358  0x9d13da1a /*zoneId*/,
    -
    11359  &kZoneContext /*zoneContext*/,
    -
    11360  1 /*numEras*/,
    -
    11361  kZoneEraEtc_GMT_PLUS_7 /*eras*/,
    -
    11362  nullptr /*targetInfo*/,
    -
    11363 };
    -
    11364 
    -
    11365 //---------------------------------------------------------------------------
    -
    11366 // Zone name: Etc/GMT+8
    -
    11367 // Eras: 1
    -
    11368 //---------------------------------------------------------------------------
    -
    11369 
    -
    11370 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = {
    -
    11371  // -8 - %z
    -
    11372  {
    -
    11373  nullptr /*zonePolicy*/,
    -
    11374  "" /*format*/,
    -
    11375  -32 /*offsetCode*/,
    -
    11376  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11377  127 /*untilYearTiny*/,
    -
    11378  1 /*untilMonth*/,
    -
    11379  1 /*untilDay*/,
    -
    11380  0 /*untilTimeCode*/,
    -
    11381  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11382  },
    -
    11383 
    -
    11384 };
    -
    11385 
    -
    11386 static const char kZoneNameEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = "\x0a" "GMT+8";
    -
    11387 
    -
    11388 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_8 ACE_TIME_PROGMEM = {
    -
    11389  kZoneNameEtc_GMT_PLUS_8 /*name*/,
    -
    11390  0x9d13da1b /*zoneId*/,
    -
    11391  &kZoneContext /*zoneContext*/,
    -
    11392  1 /*numEras*/,
    -
    11393  kZoneEraEtc_GMT_PLUS_8 /*eras*/,
    -
    11394  nullptr /*targetInfo*/,
    -
    11395 };
    -
    11396 
    -
    11397 //---------------------------------------------------------------------------
    -
    11398 // Zone name: Etc/GMT+9
    -
    11399 // Eras: 1
    -
    11400 //---------------------------------------------------------------------------
    -
    11401 
    -
    11402 static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = {
    -
    11403  // -9 - %z
    -
    11404  {
    -
    11405  nullptr /*zonePolicy*/,
    -
    11406  "" /*format*/,
    -
    11407  -36 /*offsetCode*/,
    -
    11408  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11409  127 /*untilYearTiny*/,
    -
    11410  1 /*untilMonth*/,
    -
    11411  1 /*untilDay*/,
    -
    11412  0 /*untilTimeCode*/,
    -
    11413  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11414  },
    -
    11415 
    -
    11416 };
    -
    11417 
    -
    11418 static const char kZoneNameEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = "\x0a" "GMT+9";
    -
    11419 
    -
    11420 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_9 ACE_TIME_PROGMEM = {
    -
    11421  kZoneNameEtc_GMT_PLUS_9 /*name*/,
    -
    11422  0x9d13da1c /*zoneId*/,
    -
    11423  &kZoneContext /*zoneContext*/,
    -
    11424  1 /*numEras*/,
    -
    11425  kZoneEraEtc_GMT_PLUS_9 /*eras*/,
    -
    11426  nullptr /*targetInfo*/,
    -
    11427 };
    -
    11428 
    -
    11429 //---------------------------------------------------------------------------
    -
    11430 // Zone name: Etc/GMT-1
    -
    11431 // Eras: 1
    -
    11432 //---------------------------------------------------------------------------
    -
    11433 
    -
    11434 static const extended::Info::ZoneEra kZoneEraEtc_GMT_1[] ACE_TIME_PROGMEM = {
    -
    11435  // 1 - %z
    -
    11436  {
    -
    11437  nullptr /*zonePolicy*/,
    -
    11438  "" /*format*/,
    -
    11439  4 /*offsetCode*/,
    -
    11440  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11441  127 /*untilYearTiny*/,
    -
    11442  1 /*untilMonth*/,
    -
    11443  1 /*untilDay*/,
    -
    11444  0 /*untilTimeCode*/,
    -
    11445  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11446  },
    -
    11447 
    -
    11448 };
    -
    11449 
    -
    11450 static const char kZoneNameEtc_GMT_1[] ACE_TIME_PROGMEM = "\x0a" "GMT-1";
    -
    11451 
    -
    11452 const extended::Info::ZoneInfo kZoneEtc_GMT_1 ACE_TIME_PROGMEM = {
    -
    11453  kZoneNameEtc_GMT_1 /*name*/,
    -
    11454  0x9d13da56 /*zoneId*/,
    -
    11455  &kZoneContext /*zoneContext*/,
    -
    11456  1 /*numEras*/,
    -
    11457  kZoneEraEtc_GMT_1 /*eras*/,
    -
    11458  nullptr /*targetInfo*/,
    -
    11459 };
    -
    11460 
    -
    11461 //---------------------------------------------------------------------------
    -
    11462 // Zone name: Etc/GMT-10
    -
    11463 // Eras: 1
    -
    11464 //---------------------------------------------------------------------------
    -
    11465 
    -
    11466 static const extended::Info::ZoneEra kZoneEraEtc_GMT_10[] ACE_TIME_PROGMEM = {
    -
    11467  // 10 - %z
    -
    11468  {
    -
    11469  nullptr /*zonePolicy*/,
    -
    11470  "" /*format*/,
    -
    11471  40 /*offsetCode*/,
    -
    11472  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11473  127 /*untilYearTiny*/,
    -
    11474  1 /*untilMonth*/,
    -
    11475  1 /*untilDay*/,
    -
    11476  0 /*untilTimeCode*/,
    -
    11477  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11478  },
    -
    11479 
    -
    11480 };
    -
    11481 
    -
    11482 static const char kZoneNameEtc_GMT_10[] ACE_TIME_PROGMEM = "\x0a" "GMT-10";
    -
    11483 
    -
    11484 const extended::Info::ZoneInfo kZoneEtc_GMT_10 ACE_TIME_PROGMEM = {
    -
    11485  kZoneNameEtc_GMT_10 /*name*/,
    -
    11486  0x3f8f2546 /*zoneId*/,
    -
    11487  &kZoneContext /*zoneContext*/,
    -
    11488  1 /*numEras*/,
    -
    11489  kZoneEraEtc_GMT_10 /*eras*/,
    -
    11490  nullptr /*targetInfo*/,
    -
    11491 };
    -
    11492 
    -
    11493 //---------------------------------------------------------------------------
    -
    11494 // Zone name: Etc/GMT-11
    -
    11495 // Eras: 1
    -
    11496 //---------------------------------------------------------------------------
    -
    11497 
    -
    11498 static const extended::Info::ZoneEra kZoneEraEtc_GMT_11[] ACE_TIME_PROGMEM = {
    -
    11499  // 11 - %z
    -
    11500  {
    -
    11501  nullptr /*zonePolicy*/,
    -
    11502  "" /*format*/,
    -
    11503  44 /*offsetCode*/,
    -
    11504  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11505  127 /*untilYearTiny*/,
    -
    11506  1 /*untilMonth*/,
    -
    11507  1 /*untilDay*/,
    -
    11508  0 /*untilTimeCode*/,
    -
    11509  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11510  },
    -
    11511 
    -
    11512 };
    -
    11513 
    -
    11514 static const char kZoneNameEtc_GMT_11[] ACE_TIME_PROGMEM = "\x0a" "GMT-11";
    -
    11515 
    -
    11516 const extended::Info::ZoneInfo kZoneEtc_GMT_11 ACE_TIME_PROGMEM = {
    -
    11517  kZoneNameEtc_GMT_11 /*name*/,
    -
    11518  0x3f8f2547 /*zoneId*/,
    -
    11519  &kZoneContext /*zoneContext*/,
    -
    11520  1 /*numEras*/,
    -
    11521  kZoneEraEtc_GMT_11 /*eras*/,
    -
    11522  nullptr /*targetInfo*/,
    -
    11523 };
    -
    11524 
    -
    11525 //---------------------------------------------------------------------------
    -
    11526 // Zone name: Etc/GMT-12
    -
    11527 // Eras: 1
    -
    11528 //---------------------------------------------------------------------------
    -
    11529 
    -
    11530 static const extended::Info::ZoneEra kZoneEraEtc_GMT_12[] ACE_TIME_PROGMEM = {
    -
    11531  // 12 - %z
    -
    11532  {
    -
    11533  nullptr /*zonePolicy*/,
    -
    11534  "" /*format*/,
    -
    11535  48 /*offsetCode*/,
    -
    11536  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11537  127 /*untilYearTiny*/,
    -
    11538  1 /*untilMonth*/,
    -
    11539  1 /*untilDay*/,
    -
    11540  0 /*untilTimeCode*/,
    -
    11541  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11542  },
    -
    11543 
    -
    11544 };
    -
    11545 
    -
    11546 static const char kZoneNameEtc_GMT_12[] ACE_TIME_PROGMEM = "\x0a" "GMT-12";
    -
    11547 
    -
    11548 const extended::Info::ZoneInfo kZoneEtc_GMT_12 ACE_TIME_PROGMEM = {
    -
    11549  kZoneNameEtc_GMT_12 /*name*/,
    -
    11550  0x3f8f2548 /*zoneId*/,
    -
    11551  &kZoneContext /*zoneContext*/,
    -
    11552  1 /*numEras*/,
    -
    11553  kZoneEraEtc_GMT_12 /*eras*/,
    -
    11554  nullptr /*targetInfo*/,
    -
    11555 };
    -
    11556 
    -
    11557 //---------------------------------------------------------------------------
    -
    11558 // Zone name: Etc/GMT-13
    -
    11559 // Eras: 1
    -
    11560 //---------------------------------------------------------------------------
    -
    11561 
    -
    11562 static const extended::Info::ZoneEra kZoneEraEtc_GMT_13[] ACE_TIME_PROGMEM = {
    -
    11563  // 13 - %z
    -
    11564  {
    -
    11565  nullptr /*zonePolicy*/,
    -
    11566  "" /*format*/,
    -
    11567  52 /*offsetCode*/,
    -
    11568  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11569  127 /*untilYearTiny*/,
    -
    11570  1 /*untilMonth*/,
    -
    11571  1 /*untilDay*/,
    -
    11572  0 /*untilTimeCode*/,
    -
    11573  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11574  },
    -
    11575 
    -
    11576 };
    -
    11577 
    -
    11578 static const char kZoneNameEtc_GMT_13[] ACE_TIME_PROGMEM = "\x0a" "GMT-13";
    -
    11579 
    -
    11580 const extended::Info::ZoneInfo kZoneEtc_GMT_13 ACE_TIME_PROGMEM = {
    -
    11581  kZoneNameEtc_GMT_13 /*name*/,
    -
    11582  0x3f8f2549 /*zoneId*/,
    -
    11583  &kZoneContext /*zoneContext*/,
    -
    11584  1 /*numEras*/,
    -
    11585  kZoneEraEtc_GMT_13 /*eras*/,
    -
    11586  nullptr /*targetInfo*/,
    -
    11587 };
    -
    11588 
    -
    11589 //---------------------------------------------------------------------------
    -
    11590 // Zone name: Etc/GMT-14
    -
    11591 // Eras: 1
    -
    11592 //---------------------------------------------------------------------------
    -
    11593 
    -
    11594 static const extended::Info::ZoneEra kZoneEraEtc_GMT_14[] ACE_TIME_PROGMEM = {
    -
    11595  // 14 - %z
    -
    11596  {
    -
    11597  nullptr /*zonePolicy*/,
    -
    11598  "" /*format*/,
    -
    11599  56 /*offsetCode*/,
    -
    11600  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11601  127 /*untilYearTiny*/,
    -
    11602  1 /*untilMonth*/,
    -
    11603  1 /*untilDay*/,
    -
    11604  0 /*untilTimeCode*/,
    -
    11605  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11606  },
    -
    11607 
    -
    11608 };
    -
    11609 
    -
    11610 static const char kZoneNameEtc_GMT_14[] ACE_TIME_PROGMEM = "\x0a" "GMT-14";
    -
    11611 
    -
    11612 const extended::Info::ZoneInfo kZoneEtc_GMT_14 ACE_TIME_PROGMEM = {
    -
    11613  kZoneNameEtc_GMT_14 /*name*/,
    -
    11614  0x3f8f254a /*zoneId*/,
    -
    11615  &kZoneContext /*zoneContext*/,
    -
    11616  1 /*numEras*/,
    -
    11617  kZoneEraEtc_GMT_14 /*eras*/,
    -
    11618  nullptr /*targetInfo*/,
    -
    11619 };
    -
    11620 
    -
    11621 //---------------------------------------------------------------------------
    -
    11622 // Zone name: Etc/GMT-2
    -
    11623 // Eras: 1
    -
    11624 //---------------------------------------------------------------------------
    -
    11625 
    -
    11626 static const extended::Info::ZoneEra kZoneEraEtc_GMT_2[] ACE_TIME_PROGMEM = {
    -
    11627  // 2 - %z
    -
    11628  {
    -
    11629  nullptr /*zonePolicy*/,
    -
    11630  "" /*format*/,
    -
    11631  8 /*offsetCode*/,
    -
    11632  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11633  127 /*untilYearTiny*/,
    -
    11634  1 /*untilMonth*/,
    -
    11635  1 /*untilDay*/,
    -
    11636  0 /*untilTimeCode*/,
    -
    11637  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11638  },
    -
    11639 
    -
    11640 };
    -
    11641 
    -
    11642 static const char kZoneNameEtc_GMT_2[] ACE_TIME_PROGMEM = "\x0a" "GMT-2";
    -
    11643 
    -
    11644 const extended::Info::ZoneInfo kZoneEtc_GMT_2 ACE_TIME_PROGMEM = {
    -
    11645  kZoneNameEtc_GMT_2 /*name*/,
    -
    11646  0x9d13da57 /*zoneId*/,
    -
    11647  &kZoneContext /*zoneContext*/,
    -
    11648  1 /*numEras*/,
    -
    11649  kZoneEraEtc_GMT_2 /*eras*/,
    -
    11650  nullptr /*targetInfo*/,
    -
    11651 };
    -
    11652 
    -
    11653 //---------------------------------------------------------------------------
    -
    11654 // Zone name: Etc/GMT-3
    -
    11655 // Eras: 1
    -
    11656 //---------------------------------------------------------------------------
    -
    11657 
    -
    11658 static const extended::Info::ZoneEra kZoneEraEtc_GMT_3[] ACE_TIME_PROGMEM = {
    -
    11659  // 3 - %z
    -
    11660  {
    -
    11661  nullptr /*zonePolicy*/,
    -
    11662  "" /*format*/,
    -
    11663  12 /*offsetCode*/,
    -
    11664  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11665  127 /*untilYearTiny*/,
    -
    11666  1 /*untilMonth*/,
    -
    11667  1 /*untilDay*/,
    -
    11668  0 /*untilTimeCode*/,
    -
    11669  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11670  },
    -
    11671 
    -
    11672 };
    -
    11673 
    -
    11674 static const char kZoneNameEtc_GMT_3[] ACE_TIME_PROGMEM = "\x0a" "GMT-3";
    -
    11675 
    -
    11676 const extended::Info::ZoneInfo kZoneEtc_GMT_3 ACE_TIME_PROGMEM = {
    -
    11677  kZoneNameEtc_GMT_3 /*name*/,
    -
    11678  0x9d13da58 /*zoneId*/,
    -
    11679  &kZoneContext /*zoneContext*/,
    -
    11680  1 /*numEras*/,
    -
    11681  kZoneEraEtc_GMT_3 /*eras*/,
    -
    11682  nullptr /*targetInfo*/,
    -
    11683 };
    -
    11684 
    -
    11685 //---------------------------------------------------------------------------
    -
    11686 // Zone name: Etc/GMT-4
    -
    11687 // Eras: 1
    -
    11688 //---------------------------------------------------------------------------
    -
    11689 
    -
    11690 static const extended::Info::ZoneEra kZoneEraEtc_GMT_4[] ACE_TIME_PROGMEM = {
    -
    11691  // 4 - %z
    -
    11692  {
    -
    11693  nullptr /*zonePolicy*/,
    -
    11694  "" /*format*/,
    -
    11695  16 /*offsetCode*/,
    -
    11696  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11697  127 /*untilYearTiny*/,
    -
    11698  1 /*untilMonth*/,
    -
    11699  1 /*untilDay*/,
    -
    11700  0 /*untilTimeCode*/,
    -
    11701  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11702  },
    -
    11703 
    -
    11704 };
    -
    11705 
    -
    11706 static const char kZoneNameEtc_GMT_4[] ACE_TIME_PROGMEM = "\x0a" "GMT-4";
    -
    11707 
    -
    11708 const extended::Info::ZoneInfo kZoneEtc_GMT_4 ACE_TIME_PROGMEM = {
    -
    11709  kZoneNameEtc_GMT_4 /*name*/,
    -
    11710  0x9d13da59 /*zoneId*/,
    -
    11711  &kZoneContext /*zoneContext*/,
    -
    11712  1 /*numEras*/,
    -
    11713  kZoneEraEtc_GMT_4 /*eras*/,
    -
    11714  nullptr /*targetInfo*/,
    -
    11715 };
    -
    11716 
    -
    11717 //---------------------------------------------------------------------------
    -
    11718 // Zone name: Etc/GMT-5
    -
    11719 // Eras: 1
    -
    11720 //---------------------------------------------------------------------------
    -
    11721 
    -
    11722 static const extended::Info::ZoneEra kZoneEraEtc_GMT_5[] ACE_TIME_PROGMEM = {
    -
    11723  // 5 - %z
    -
    11724  {
    -
    11725  nullptr /*zonePolicy*/,
    -
    11726  "" /*format*/,
    -
    11727  20 /*offsetCode*/,
    -
    11728  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11729  127 /*untilYearTiny*/,
    -
    11730  1 /*untilMonth*/,
    -
    11731  1 /*untilDay*/,
    -
    11732  0 /*untilTimeCode*/,
    -
    11733  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11734  },
    -
    11735 
    -
    11736 };
    -
    11737 
    -
    11738 static const char kZoneNameEtc_GMT_5[] ACE_TIME_PROGMEM = "\x0a" "GMT-5";
    -
    11739 
    -
    11740 const extended::Info::ZoneInfo kZoneEtc_GMT_5 ACE_TIME_PROGMEM = {
    -
    11741  kZoneNameEtc_GMT_5 /*name*/,
    -
    11742  0x9d13da5a /*zoneId*/,
    -
    11743  &kZoneContext /*zoneContext*/,
    -
    11744  1 /*numEras*/,
    -
    11745  kZoneEraEtc_GMT_5 /*eras*/,
    -
    11746  nullptr /*targetInfo*/,
    -
    11747 };
    -
    11748 
    -
    11749 //---------------------------------------------------------------------------
    -
    11750 // Zone name: Etc/GMT-6
    -
    11751 // Eras: 1
    -
    11752 //---------------------------------------------------------------------------
    -
    11753 
    -
    11754 static const extended::Info::ZoneEra kZoneEraEtc_GMT_6[] ACE_TIME_PROGMEM = {
    -
    11755  // 6 - %z
    -
    11756  {
    -
    11757  nullptr /*zonePolicy*/,
    -
    11758  "" /*format*/,
    -
    11759  24 /*offsetCode*/,
    -
    11760  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11761  127 /*untilYearTiny*/,
    -
    11762  1 /*untilMonth*/,
    -
    11763  1 /*untilDay*/,
    -
    11764  0 /*untilTimeCode*/,
    -
    11765  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11766  },
    -
    11767 
    -
    11768 };
    -
    11769 
    -
    11770 static const char kZoneNameEtc_GMT_6[] ACE_TIME_PROGMEM = "\x0a" "GMT-6";
    -
    11771 
    -
    11772 const extended::Info::ZoneInfo kZoneEtc_GMT_6 ACE_TIME_PROGMEM = {
    -
    11773  kZoneNameEtc_GMT_6 /*name*/,
    -
    11774  0x9d13da5b /*zoneId*/,
    -
    11775  &kZoneContext /*zoneContext*/,
    -
    11776  1 /*numEras*/,
    -
    11777  kZoneEraEtc_GMT_6 /*eras*/,
    -
    11778  nullptr /*targetInfo*/,
    -
    11779 };
    -
    11780 
    -
    11781 //---------------------------------------------------------------------------
    -
    11782 // Zone name: Etc/GMT-7
    -
    11783 // Eras: 1
    -
    11784 //---------------------------------------------------------------------------
    -
    11785 
    -
    11786 static const extended::Info::ZoneEra kZoneEraEtc_GMT_7[] ACE_TIME_PROGMEM = {
    -
    11787  // 7 - %z
    -
    11788  {
    -
    11789  nullptr /*zonePolicy*/,
    -
    11790  "" /*format*/,
    -
    11791  28 /*offsetCode*/,
    -
    11792  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11793  127 /*untilYearTiny*/,
    -
    11794  1 /*untilMonth*/,
    -
    11795  1 /*untilDay*/,
    -
    11796  0 /*untilTimeCode*/,
    -
    11797  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11798  },
    -
    11799 
    -
    11800 };
    -
    11801 
    -
    11802 static const char kZoneNameEtc_GMT_7[] ACE_TIME_PROGMEM = "\x0a" "GMT-7";
    -
    11803 
    -
    11804 const extended::Info::ZoneInfo kZoneEtc_GMT_7 ACE_TIME_PROGMEM = {
    -
    11805  kZoneNameEtc_GMT_7 /*name*/,
    -
    11806  0x9d13da5c /*zoneId*/,
    -
    11807  &kZoneContext /*zoneContext*/,
    -
    11808  1 /*numEras*/,
    -
    11809  kZoneEraEtc_GMT_7 /*eras*/,
    -
    11810  nullptr /*targetInfo*/,
    -
    11811 };
    -
    11812 
    -
    11813 //---------------------------------------------------------------------------
    -
    11814 // Zone name: Etc/GMT-8
    -
    11815 // Eras: 1
    -
    11816 //---------------------------------------------------------------------------
    -
    11817 
    -
    11818 static const extended::Info::ZoneEra kZoneEraEtc_GMT_8[] ACE_TIME_PROGMEM = {
    -
    11819  // 8 - %z
    -
    11820  {
    -
    11821  nullptr /*zonePolicy*/,
    -
    11822  "" /*format*/,
    -
    11823  32 /*offsetCode*/,
    -
    11824  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11825  127 /*untilYearTiny*/,
    -
    11826  1 /*untilMonth*/,
    -
    11827  1 /*untilDay*/,
    -
    11828  0 /*untilTimeCode*/,
    -
    11829  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11830  },
    -
    11831 
    -
    11832 };
    -
    11833 
    -
    11834 static const char kZoneNameEtc_GMT_8[] ACE_TIME_PROGMEM = "\x0a" "GMT-8";
    -
    11835 
    -
    11836 const extended::Info::ZoneInfo kZoneEtc_GMT_8 ACE_TIME_PROGMEM = {
    -
    11837  kZoneNameEtc_GMT_8 /*name*/,
    -
    11838  0x9d13da5d /*zoneId*/,
    -
    11839  &kZoneContext /*zoneContext*/,
    -
    11840  1 /*numEras*/,
    -
    11841  kZoneEraEtc_GMT_8 /*eras*/,
    -
    11842  nullptr /*targetInfo*/,
    -
    11843 };
    -
    11844 
    -
    11845 //---------------------------------------------------------------------------
    -
    11846 // Zone name: Etc/GMT-9
    -
    11847 // Eras: 1
    -
    11848 //---------------------------------------------------------------------------
    -
    11849 
    -
    11850 static const extended::Info::ZoneEra kZoneEraEtc_GMT_9[] ACE_TIME_PROGMEM = {
    -
    11851  // 9 - %z
    -
    11852  {
    -
    11853  nullptr /*zonePolicy*/,
    -
    11854  "" /*format*/,
    -
    11855  36 /*offsetCode*/,
    -
    11856  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11857  127 /*untilYearTiny*/,
    -
    11858  1 /*untilMonth*/,
    -
    11859  1 /*untilDay*/,
    -
    11860  0 /*untilTimeCode*/,
    -
    11861  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11862  },
    -
    11863 
    -
    11864 };
    -
    11865 
    -
    11866 static const char kZoneNameEtc_GMT_9[] ACE_TIME_PROGMEM = "\x0a" "GMT-9";
    -
    11867 
    -
    11868 const extended::Info::ZoneInfo kZoneEtc_GMT_9 ACE_TIME_PROGMEM = {
    -
    11869  kZoneNameEtc_GMT_9 /*name*/,
    -
    11870  0x9d13da5e /*zoneId*/,
    -
    11871  &kZoneContext /*zoneContext*/,
    -
    11872  1 /*numEras*/,
    -
    11873  kZoneEraEtc_GMT_9 /*eras*/,
    -
    11874  nullptr /*targetInfo*/,
    -
    11875 };
    -
    11876 
    -
    11877 //---------------------------------------------------------------------------
    -
    11878 // Zone name: Etc/UTC
    -
    11879 // Eras: 1
    -
    11880 //---------------------------------------------------------------------------
    -
    11881 
    -
    11882 static const extended::Info::ZoneEra kZoneEraEtc_UTC[] ACE_TIME_PROGMEM = {
    -
    11883  // 0 - UTC
    -
    11884  {
    -
    11885  nullptr /*zonePolicy*/,
    -
    11886  "UTC" /*format*/,
    -
    11887  0 /*offsetCode*/,
    -
    11888  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11889  127 /*untilYearTiny*/,
    -
    11890  1 /*untilMonth*/,
    -
    11891  1 /*untilDay*/,
    -
    11892  0 /*untilTimeCode*/,
    -
    11893  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11894  },
    -
    11895 
    -
    11896 };
    -
    11897 
    -
    11898 static const char kZoneNameEtc_UTC[] ACE_TIME_PROGMEM = "\x0a" "UTC";
    -
    11899 
    -
    11900 const extended::Info::ZoneInfo kZoneEtc_UTC ACE_TIME_PROGMEM = {
    -
    11901  kZoneNameEtc_UTC /*name*/,
    -
    11902  0xd8e31abc /*zoneId*/,
    -
    11903  &kZoneContext /*zoneContext*/,
    -
    11904  1 /*numEras*/,
    -
    11905  kZoneEraEtc_UTC /*eras*/,
    -
    11906  nullptr /*targetInfo*/,
    -
    11907 };
    -
    11908 
    -
    11909 //---------------------------------------------------------------------------
    -
    11910 // Zone name: Europe/Andorra
    -
    11911 // Eras: 1
    -
    11912 //---------------------------------------------------------------------------
    -
    11913 
    -
    11914 static const extended::Info::ZoneEra kZoneEraEurope_Andorra[] ACE_TIME_PROGMEM = {
    -
    11915  // 1:00 EU CE%sT
    -
    11916  {
    -
    11917  &kZonePolicyEU /*zonePolicy*/,
    -
    11918  "CE%T" /*format*/,
    -
    11919  4 /*offsetCode*/,
    -
    11920  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11921  127 /*untilYearTiny*/,
    -
    11922  1 /*untilMonth*/,
    -
    11923  1 /*untilDay*/,
    -
    11924  0 /*untilTimeCode*/,
    -
    11925  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11926  },
    -
    11927 
    -
    11928 };
    -
    11929 
    -
    11930 static const char kZoneNameEurope_Andorra[] ACE_TIME_PROGMEM = "\x0b" "Andorra";
    -
    11931 
    -
    11932 const extended::Info::ZoneInfo kZoneEurope_Andorra ACE_TIME_PROGMEM = {
    -
    11933  kZoneNameEurope_Andorra /*name*/,
    -
    11934  0x97f6764b /*zoneId*/,
    -
    11935  &kZoneContext /*zoneContext*/,
    -
    11936  1 /*numEras*/,
    -
    11937  kZoneEraEurope_Andorra /*eras*/,
    -
    11938  nullptr /*targetInfo*/,
    -
    11939 };
    -
    11940 
    -
    11941 //---------------------------------------------------------------------------
    -
    11942 // Zone name: Europe/Astrakhan
    -
    11943 // Eras: 4
    -
    11944 //---------------------------------------------------------------------------
    -
    11945 
    -
    11946 static const extended::Info::ZoneEra kZoneEraEurope_Astrakhan[] ACE_TIME_PROGMEM = {
    -
    11947  // 3:00 Russia %z 2011 Mar 27 2:00s
    -
    11948  {
    -
    11949  &kZonePolicyRussia /*zonePolicy*/,
    -
    11950  "" /*format*/,
    -
    11951  12 /*offsetCode*/,
    -
    11952  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11953  -89 /*untilYearTiny*/,
    -
    11954  3 /*untilMonth*/,
    -
    11955  27 /*untilDay*/,
    -
    11956  8 /*untilTimeCode*/,
    -
    11957  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    11958  },
    -
    11959  // 4:00 - %z 2014 Oct 26 2:00s
    -
    11960  {
    -
    11961  nullptr /*zonePolicy*/,
    -
    11962  "" /*format*/,
    -
    11963  16 /*offsetCode*/,
    -
    11964  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11965  -86 /*untilYearTiny*/,
    -
    11966  10 /*untilMonth*/,
    -
    11967  26 /*untilDay*/,
    -
    11968  8 /*untilTimeCode*/,
    -
    11969  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    11970  },
    -
    11971  // 3:00 - %z 2016 Mar 27 2:00s
    -
    11972  {
    -
    11973  nullptr /*zonePolicy*/,
    -
    11974  "" /*format*/,
    -
    11975  12 /*offsetCode*/,
    -
    11976  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11977  -84 /*untilYearTiny*/,
    -
    11978  3 /*untilMonth*/,
    -
    11979  27 /*untilDay*/,
    -
    11980  8 /*untilTimeCode*/,
    -
    11981  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    11982  },
    -
    11983  // 4:00 - %z
    -
    11984  {
    -
    11985  nullptr /*zonePolicy*/,
    -
    11986  "" /*format*/,
    -
    11987  16 /*offsetCode*/,
    -
    11988  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    11989  127 /*untilYearTiny*/,
    -
    11990  1 /*untilMonth*/,
    -
    11991  1 /*untilDay*/,
    -
    11992  0 /*untilTimeCode*/,
    -
    11993  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    11994  },
    -
    11995 
    -
    11996 };
    -
    11997 
    -
    11998 static const char kZoneNameEurope_Astrakhan[] ACE_TIME_PROGMEM = "\x0b" "Astrakhan";
    -
    11999 
    -
    12000 const extended::Info::ZoneInfo kZoneEurope_Astrakhan ACE_TIME_PROGMEM = {
    -
    12001  kZoneNameEurope_Astrakhan /*name*/,
    -
    12002  0xe22256e1 /*zoneId*/,
    -
    12003  &kZoneContext /*zoneContext*/,
    -
    12004  4 /*numEras*/,
    -
    12005  kZoneEraEurope_Astrakhan /*eras*/,
    -
    12006  nullptr /*targetInfo*/,
    -
    12007 };
    -
    12008 
    -
    12009 //---------------------------------------------------------------------------
    -
    12010 // Zone name: Europe/Athens
    -
    12011 // Eras: 1
    -
    12012 //---------------------------------------------------------------------------
    -
    12013 
    -
    12014 static const extended::Info::ZoneEra kZoneEraEurope_Athens[] ACE_TIME_PROGMEM = {
    -
    12015  // 2:00 EU EE%sT
    -
    12016  {
    -
    12017  &kZonePolicyEU /*zonePolicy*/,
    -
    12018  "EE%T" /*format*/,
    -
    12019  8 /*offsetCode*/,
    -
    12020  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12021  127 /*untilYearTiny*/,
    -
    12022  1 /*untilMonth*/,
    -
    12023  1 /*untilDay*/,
    -
    12024  0 /*untilTimeCode*/,
    -
    12025  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12026  },
    -
    12027 
    -
    12028 };
    -
    12029 
    -
    12030 static const char kZoneNameEurope_Athens[] ACE_TIME_PROGMEM = "\x0b" "Athens";
    -
    12031 
    -
    12032 const extended::Info::ZoneInfo kZoneEurope_Athens ACE_TIME_PROGMEM = {
    -
    12033  kZoneNameEurope_Athens /*name*/,
    -
    12034  0x4318fa27 /*zoneId*/,
    -
    12035  &kZoneContext /*zoneContext*/,
    -
    12036  1 /*numEras*/,
    -
    12037  kZoneEraEurope_Athens /*eras*/,
    -
    12038  nullptr /*targetInfo*/,
    -
    12039 };
    -
    12040 
    -
    12041 //---------------------------------------------------------------------------
    -
    12042 // Zone name: Europe/Belgrade
    -
    12043 // Eras: 1
    -
    12044 //---------------------------------------------------------------------------
    -
    12045 
    -
    12046 static const extended::Info::ZoneEra kZoneEraEurope_Belgrade[] ACE_TIME_PROGMEM = {
    -
    12047  // 1:00 EU CE%sT
    -
    12048  {
    -
    12049  &kZonePolicyEU /*zonePolicy*/,
    -
    12050  "CE%T" /*format*/,
    -
    12051  4 /*offsetCode*/,
    -
    12052  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12053  127 /*untilYearTiny*/,
    -
    12054  1 /*untilMonth*/,
    -
    12055  1 /*untilDay*/,
    -
    12056  0 /*untilTimeCode*/,
    -
    12057  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12058  },
    -
    12059 
    -
    12060 };
    -
    12061 
    -
    12062 static const char kZoneNameEurope_Belgrade[] ACE_TIME_PROGMEM = "\x0b" "Belgrade";
    -
    12063 
    -
    12064 const extended::Info::ZoneInfo kZoneEurope_Belgrade ACE_TIME_PROGMEM = {
    -
    12065  kZoneNameEurope_Belgrade /*name*/,
    -
    12066  0xe0532b3a /*zoneId*/,
    -
    12067  &kZoneContext /*zoneContext*/,
    -
    12068  1 /*numEras*/,
    -
    12069  kZoneEraEurope_Belgrade /*eras*/,
    -
    12070  nullptr /*targetInfo*/,
    -
    12071 };
    -
    12072 
    -
    12073 //---------------------------------------------------------------------------
    -
    12074 // Zone name: Europe/Berlin
    -
    12075 // Eras: 1
    -
    12076 //---------------------------------------------------------------------------
    -
    12077 
    -
    12078 static const extended::Info::ZoneEra kZoneEraEurope_Berlin[] ACE_TIME_PROGMEM = {
    -
    12079  // 1:00 EU CE%sT
    -
    12080  {
    -
    12081  &kZonePolicyEU /*zonePolicy*/,
    -
    12082  "CE%T" /*format*/,
    -
    12083  4 /*offsetCode*/,
    -
    12084  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12085  127 /*untilYearTiny*/,
    -
    12086  1 /*untilMonth*/,
    -
    12087  1 /*untilDay*/,
    -
    12088  0 /*untilTimeCode*/,
    -
    12089  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12090  },
    -
    12091 
    -
    12092 };
    -
    12093 
    -
    12094 static const char kZoneNameEurope_Berlin[] ACE_TIME_PROGMEM = "\x0b" "Berlin";
    -
    12095 
    -
    12096 const extended::Info::ZoneInfo kZoneEurope_Berlin ACE_TIME_PROGMEM = {
    -
    12097  kZoneNameEurope_Berlin /*name*/,
    -
    12098  0x44644c20 /*zoneId*/,
    -
    12099  &kZoneContext /*zoneContext*/,
    -
    12100  1 /*numEras*/,
    -
    12101  kZoneEraEurope_Berlin /*eras*/,
    -
    12102  nullptr /*targetInfo*/,
    -
    12103 };
    -
    12104 
    -
    12105 //---------------------------------------------------------------------------
    -
    12106 // Zone name: Europe/Brussels
    -
    12107 // Eras: 1
    -
    12108 //---------------------------------------------------------------------------
    -
    12109 
    -
    12110 static const extended::Info::ZoneEra kZoneEraEurope_Brussels[] ACE_TIME_PROGMEM = {
    -
    12111  // 1:00 EU CE%sT
    -
    12112  {
    -
    12113  &kZonePolicyEU /*zonePolicy*/,
    -
    12114  "CE%T" /*format*/,
    -
    12115  4 /*offsetCode*/,
    -
    12116  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12117  127 /*untilYearTiny*/,
    -
    12118  1 /*untilMonth*/,
    -
    12119  1 /*untilDay*/,
    -
    12120  0 /*untilTimeCode*/,
    -
    12121  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12122  },
    -
    12123 
    -
    12124 };
    -
    12125 
    -
    12126 static const char kZoneNameEurope_Brussels[] ACE_TIME_PROGMEM = "\x0b" "Brussels";
    -
    12127 
    -
    12128 const extended::Info::ZoneInfo kZoneEurope_Brussels ACE_TIME_PROGMEM = {
    -
    12129  kZoneNameEurope_Brussels /*name*/,
    -
    12130  0xdee07337 /*zoneId*/,
    -
    12131  &kZoneContext /*zoneContext*/,
    -
    12132  1 /*numEras*/,
    -
    12133  kZoneEraEurope_Brussels /*eras*/,
    -
    12134  nullptr /*targetInfo*/,
    -
    12135 };
    -
    12136 
    -
    12137 //---------------------------------------------------------------------------
    -
    12138 // Zone name: Europe/Bucharest
    -
    12139 // Eras: 1
    -
    12140 //---------------------------------------------------------------------------
    -
    12141 
    -
    12142 static const extended::Info::ZoneEra kZoneEraEurope_Bucharest[] ACE_TIME_PROGMEM = {
    -
    12143  // 2:00 EU EE%sT
    -
    12144  {
    -
    12145  &kZonePolicyEU /*zonePolicy*/,
    -
    12146  "EE%T" /*format*/,
    -
    12147  8 /*offsetCode*/,
    -
    12148  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12149  127 /*untilYearTiny*/,
    -
    12150  1 /*untilMonth*/,
    -
    12151  1 /*untilDay*/,
    -
    12152  0 /*untilTimeCode*/,
    -
    12153  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12154  },
    -
    12155 
    -
    12156 };
    -
    12157 
    -
    12158 static const char kZoneNameEurope_Bucharest[] ACE_TIME_PROGMEM = "\x0b" "Bucharest";
    -
    12159 
    -
    12160 const extended::Info::ZoneInfo kZoneEurope_Bucharest ACE_TIME_PROGMEM = {
    -
    12161  kZoneNameEurope_Bucharest /*name*/,
    -
    12162  0xfb349ec5 /*zoneId*/,
    -
    12163  &kZoneContext /*zoneContext*/,
    -
    12164  1 /*numEras*/,
    -
    12165  kZoneEraEurope_Bucharest /*eras*/,
    -
    12166  nullptr /*targetInfo*/,
    -
    12167 };
    -
    12168 
    -
    12169 //---------------------------------------------------------------------------
    -
    12170 // Zone name: Europe/Budapest
    -
    12171 // Eras: 1
    -
    12172 //---------------------------------------------------------------------------
    -
    12173 
    -
    12174 static const extended::Info::ZoneEra kZoneEraEurope_Budapest[] ACE_TIME_PROGMEM = {
    -
    12175  // 1:00 EU CE%sT
    -
    12176  {
    -
    12177  &kZonePolicyEU /*zonePolicy*/,
    -
    12178  "CE%T" /*format*/,
    -
    12179  4 /*offsetCode*/,
    -
    12180  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12181  127 /*untilYearTiny*/,
    -
    12182  1 /*untilMonth*/,
    -
    12183  1 /*untilDay*/,
    -
    12184  0 /*untilTimeCode*/,
    -
    12185  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12186  },
    -
    12187 
    -
    12188 };
    -
    12189 
    -
    12190 static const char kZoneNameEurope_Budapest[] ACE_TIME_PROGMEM = "\x0b" "Budapest";
    -
    12191 
    -
    12192 const extended::Info::ZoneInfo kZoneEurope_Budapest ACE_TIME_PROGMEM = {
    -
    12193  kZoneNameEurope_Budapest /*name*/,
    -
    12194  0x9ce0197c /*zoneId*/,
    -
    12195  &kZoneContext /*zoneContext*/,
    -
    12196  1 /*numEras*/,
    -
    12197  kZoneEraEurope_Budapest /*eras*/,
    -
    12198  nullptr /*targetInfo*/,
    -
    12199 };
    -
    12200 
    -
    12201 //---------------------------------------------------------------------------
    -
    12202 // Zone name: Europe/Chisinau
    -
    12203 // Eras: 1
    -
    12204 //---------------------------------------------------------------------------
    -
    12205 
    -
    12206 static const extended::Info::ZoneEra kZoneEraEurope_Chisinau[] ACE_TIME_PROGMEM = {
    -
    12207  // 2:00 Moldova EE%sT
    -
    12208  {
    -
    12209  &kZonePolicyMoldova /*zonePolicy*/,
    -
    12210  "EE%T" /*format*/,
    -
    12211  8 /*offsetCode*/,
    -
    12212  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12213  127 /*untilYearTiny*/,
    -
    12214  1 /*untilMonth*/,
    -
    12215  1 /*untilDay*/,
    -
    12216  0 /*untilTimeCode*/,
    -
    12217  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12218  },
    -
    12219 
    -
    12220 };
    -
    12221 
    -
    12222 static const char kZoneNameEurope_Chisinau[] ACE_TIME_PROGMEM = "\x0b" "Chisinau";
    -
    12223 
    -
    12224 const extended::Info::ZoneInfo kZoneEurope_Chisinau ACE_TIME_PROGMEM = {
    -
    12225  kZoneNameEurope_Chisinau /*name*/,
    -
    12226  0xad58aa18 /*zoneId*/,
    -
    12227  &kZoneContext /*zoneContext*/,
    -
    12228  1 /*numEras*/,
    -
    12229  kZoneEraEurope_Chisinau /*eras*/,
    -
    12230  nullptr /*targetInfo*/,
    -
    12231 };
    -
    12232 
    -
    12233 //---------------------------------------------------------------------------
    -
    12234 // Zone name: Europe/Dublin
    -
    12235 // Eras: 1
    -
    12236 //---------------------------------------------------------------------------
    -
    12237 
    -
    12238 static const extended::Info::ZoneEra kZoneEraEurope_Dublin[] ACE_TIME_PROGMEM = {
    -
    12239  // 1:00 Eire IST/GMT
    -
    12240  {
    -
    12241  &kZonePolicyEire /*zonePolicy*/,
    -
    12242  "IST/GMT" /*format*/,
    -
    12243  4 /*offsetCode*/,
    -
    12244  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12245  127 /*untilYearTiny*/,
    -
    12246  1 /*untilMonth*/,
    -
    12247  1 /*untilDay*/,
    -
    12248  0 /*untilTimeCode*/,
    -
    12249  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12250  },
    -
    12251 
    -
    12252 };
    -
    12253 
    -
    12254 static const char kZoneNameEurope_Dublin[] ACE_TIME_PROGMEM = "\x0b" "Dublin";
    -
    12255 
    -
    12256 const extended::Info::ZoneInfo kZoneEurope_Dublin ACE_TIME_PROGMEM = {
    -
    12257  kZoneNameEurope_Dublin /*name*/,
    -
    12258  0x4a275f62 /*zoneId*/,
    -
    12259  &kZoneContext /*zoneContext*/,
    -
    12260  1 /*numEras*/,
    -
    12261  kZoneEraEurope_Dublin /*eras*/,
    -
    12262  nullptr /*targetInfo*/,
    -
    12263 };
    -
    12264 
    -
    12265 //---------------------------------------------------------------------------
    -
    12266 // Zone name: Europe/Gibraltar
    -
    12267 // Eras: 1
    -
    12268 //---------------------------------------------------------------------------
    -
    12269 
    -
    12270 static const extended::Info::ZoneEra kZoneEraEurope_Gibraltar[] ACE_TIME_PROGMEM = {
    -
    12271  // 1:00 EU CE%sT
    -
    12272  {
    -
    12273  &kZonePolicyEU /*zonePolicy*/,
    -
    12274  "CE%T" /*format*/,
    -
    12275  4 /*offsetCode*/,
    -
    12276  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12277  127 /*untilYearTiny*/,
    -
    12278  1 /*untilMonth*/,
    -
    12279  1 /*untilDay*/,
    -
    12280  0 /*untilTimeCode*/,
    -
    12281  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12282  },
    -
    12283 
    -
    12284 };
    -
    12285 
    -
    12286 static const char kZoneNameEurope_Gibraltar[] ACE_TIME_PROGMEM = "\x0b" "Gibraltar";
    -
    12287 
    -
    12288 const extended::Info::ZoneInfo kZoneEurope_Gibraltar ACE_TIME_PROGMEM = {
    -
    12289  kZoneNameEurope_Gibraltar /*name*/,
    -
    12290  0xf8e325fc /*zoneId*/,
    -
    12291  &kZoneContext /*zoneContext*/,
    -
    12292  1 /*numEras*/,
    -
    12293  kZoneEraEurope_Gibraltar /*eras*/,
    -
    12294  nullptr /*targetInfo*/,
    -
    12295 };
    -
    12296 
    -
    12297 //---------------------------------------------------------------------------
    -
    12298 // Zone name: Europe/Helsinki
    -
    12299 // Eras: 1
    -
    12300 //---------------------------------------------------------------------------
    -
    12301 
    -
    12302 static const extended::Info::ZoneEra kZoneEraEurope_Helsinki[] ACE_TIME_PROGMEM = {
    -
    12303  // 2:00 EU EE%sT
    -
    12304  {
    -
    12305  &kZonePolicyEU /*zonePolicy*/,
    -
    12306  "EE%T" /*format*/,
    -
    12307  8 /*offsetCode*/,
    -
    12308  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12309  127 /*untilYearTiny*/,
    -
    12310  1 /*untilMonth*/,
    -
    12311  1 /*untilDay*/,
    -
    12312  0 /*untilTimeCode*/,
    -
    12313  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12314  },
    -
    12315 
    -
    12316 };
    -
    12317 
    -
    12318 static const char kZoneNameEurope_Helsinki[] ACE_TIME_PROGMEM = "\x0b" "Helsinki";
    -
    12319 
    -
    12320 const extended::Info::ZoneInfo kZoneEurope_Helsinki ACE_TIME_PROGMEM = {
    -
    12321  kZoneNameEurope_Helsinki /*name*/,
    -
    12322  0x6ab2975b /*zoneId*/,
    -
    12323  &kZoneContext /*zoneContext*/,
    -
    12324  1 /*numEras*/,
    -
    12325  kZoneEraEurope_Helsinki /*eras*/,
    -
    12326  nullptr /*targetInfo*/,
    -
    12327 };
    -
    12328 
    -
    12329 //---------------------------------------------------------------------------
    -
    12330 // Zone name: Europe/Istanbul
    -
    12331 // Eras: 9
    -
    12332 //---------------------------------------------------------------------------
    -
    12333 
    -
    12334 static const extended::Info::ZoneEra kZoneEraEurope_Istanbul[] ACE_TIME_PROGMEM = {
    -
    12335  // 2:00 Turkey EE%sT 2007
    -
    12336  {
    -
    12337  &kZonePolicyTurkey /*zonePolicy*/,
    -
    12338  "EE%T" /*format*/,
    -
    12339  8 /*offsetCode*/,
    -
    12340  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12341  -93 /*untilYearTiny*/,
    -
    12342  1 /*untilMonth*/,
    -
    12343  1 /*untilDay*/,
    -
    12344  0 /*untilTimeCode*/,
    -
    12345  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12346  },
    -
    12347  // 2:00 EU EE%sT 2011 Mar 27 1:00u
    -
    12348  {
    -
    12349  &kZonePolicyEU /*zonePolicy*/,
    -
    12350  "EE%T" /*format*/,
    -
    12351  8 /*offsetCode*/,
    -
    12352  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12353  -89 /*untilYearTiny*/,
    -
    12354  3 /*untilMonth*/,
    -
    12355  27 /*untilDay*/,
    -
    12356  4 /*untilTimeCode*/,
    -
    12357  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    12358  },
    -
    12359  // 2:00 - EET 2011 Mar 28 1:00u
    -
    12360  {
    -
    12361  nullptr /*zonePolicy*/,
    -
    12362  "EET" /*format*/,
    -
    12363  8 /*offsetCode*/,
    -
    12364  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12365  -89 /*untilYearTiny*/,
    -
    12366  3 /*untilMonth*/,
    -
    12367  28 /*untilDay*/,
    -
    12368  4 /*untilTimeCode*/,
    -
    12369  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    12370  },
    -
    12371  // 2:00 EU EE%sT 2014 Mar 30 1:00u
    -
    12372  {
    -
    12373  &kZonePolicyEU /*zonePolicy*/,
    -
    12374  "EE%T" /*format*/,
    -
    12375  8 /*offsetCode*/,
    -
    12376  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12377  -86 /*untilYearTiny*/,
    -
    12378  3 /*untilMonth*/,
    -
    12379  30 /*untilDay*/,
    -
    12380  4 /*untilTimeCode*/,
    -
    12381  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    12382  },
    -
    12383  // 2:00 - EET 2014 Mar 31 1:00u
    -
    12384  {
    -
    12385  nullptr /*zonePolicy*/,
    -
    12386  "EET" /*format*/,
    -
    12387  8 /*offsetCode*/,
    -
    12388  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12389  -86 /*untilYearTiny*/,
    -
    12390  3 /*untilMonth*/,
    -
    12391  31 /*untilDay*/,
    -
    12392  4 /*untilTimeCode*/,
    -
    12393  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    12394  },
    -
    12395  // 2:00 EU EE%sT 2015 Oct 25 1:00u
    -
    12396  {
    -
    12397  &kZonePolicyEU /*zonePolicy*/,
    -
    12398  "EE%T" /*format*/,
    -
    12399  8 /*offsetCode*/,
    -
    12400  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12401  -85 /*untilYearTiny*/,
    -
    12402  10 /*untilMonth*/,
    -
    12403  25 /*untilDay*/,
    -
    12404  4 /*untilTimeCode*/,
    -
    12405  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    12406  },
    -
    12407  // 2:00 1:00 EEST 2015 Nov 8 1:00u
    -
    12408  {
    -
    12409  nullptr /*zonePolicy*/,
    -
    12410  "EEST" /*format*/,
    -
    12411  8 /*offsetCode*/,
    -
    12412  8 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=60)/15 + 4))*/,
    -
    12413  -85 /*untilYearTiny*/,
    -
    12414  11 /*untilMonth*/,
    -
    12415  8 /*untilDay*/,
    -
    12416  4 /*untilTimeCode*/,
    -
    12417  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    12418  },
    -
    12419  // 2:00 EU EE%sT 2016 Sep 7
    -
    12420  {
    -
    12421  &kZonePolicyEU /*zonePolicy*/,
    -
    12422  "EE%T" /*format*/,
    -
    12423  8 /*offsetCode*/,
    -
    12424  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12425  -84 /*untilYearTiny*/,
    -
    12426  9 /*untilMonth*/,
    -
    12427  7 /*untilDay*/,
    -
    12428  0 /*untilTimeCode*/,
    -
    12429  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12430  },
    -
    12431  // 3:00 - %z
    -
    12432  {
    -
    12433  nullptr /*zonePolicy*/,
    -
    12434  "" /*format*/,
    -
    12435  12 /*offsetCode*/,
    -
    12436  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12437  127 /*untilYearTiny*/,
    -
    12438  1 /*untilMonth*/,
    -
    12439  1 /*untilDay*/,
    -
    12440  0 /*untilTimeCode*/,
    -
    12441  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12442  },
    -
    12443 
    -
    12444 };
    -
    12445 
    -
    12446 static const char kZoneNameEurope_Istanbul[] ACE_TIME_PROGMEM = "\x0b" "Istanbul";
    -
    12447 
    -
    12448 const extended::Info::ZoneInfo kZoneEurope_Istanbul ACE_TIME_PROGMEM = {
    -
    12449  kZoneNameEurope_Istanbul /*name*/,
    -
    12450  0x9e09d6e6 /*zoneId*/,
    -
    12451  &kZoneContext /*zoneContext*/,
    -
    12452  9 /*numEras*/,
    -
    12453  kZoneEraEurope_Istanbul /*eras*/,
    -
    12454  nullptr /*targetInfo*/,
    -
    12455 };
    -
    12456 
    -
    12457 //---------------------------------------------------------------------------
    -
    12458 // Zone name: Europe/Kaliningrad
    -
    12459 // Eras: 3
    -
    12460 //---------------------------------------------------------------------------
    -
    12461 
    -
    12462 static const extended::Info::ZoneEra kZoneEraEurope_Kaliningrad[] ACE_TIME_PROGMEM = {
    -
    12463  // 2:00 Russia EE%sT 2011 Mar 27 2:00s
    -
    12464  {
    -
    12465  &kZonePolicyRussia /*zonePolicy*/,
    -
    12466  "EE%T" /*format*/,
    -
    12467  8 /*offsetCode*/,
    -
    12468  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12469  -89 /*untilYearTiny*/,
    -
    12470  3 /*untilMonth*/,
    -
    12471  27 /*untilDay*/,
    -
    12472  8 /*untilTimeCode*/,
    -
    12473  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    12474  },
    -
    12475  // 3:00 - %z 2014 Oct 26 2:00s
    -
    12476  {
    -
    12477  nullptr /*zonePolicy*/,
    -
    12478  "" /*format*/,
    -
    12479  12 /*offsetCode*/,
    -
    12480  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12481  -86 /*untilYearTiny*/,
    -
    12482  10 /*untilMonth*/,
    -
    12483  26 /*untilDay*/,
    -
    12484  8 /*untilTimeCode*/,
    -
    12485  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    12486  },
    -
    12487  // 2:00 - EET
    -
    12488  {
    -
    12489  nullptr /*zonePolicy*/,
    -
    12490  "EET" /*format*/,
    -
    12491  8 /*offsetCode*/,
    -
    12492  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12493  127 /*untilYearTiny*/,
    -
    12494  1 /*untilMonth*/,
    -
    12495  1 /*untilDay*/,
    -
    12496  0 /*untilTimeCode*/,
    -
    12497  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12498  },
    -
    12499 
    -
    12500 };
    -
    12501 
    -
    12502 static const char kZoneNameEurope_Kaliningrad[] ACE_TIME_PROGMEM = "\x0b" "Kaliningrad";
    -
    12503 
    -
    12504 const extended::Info::ZoneInfo kZoneEurope_Kaliningrad ACE_TIME_PROGMEM = {
    -
    12505  kZoneNameEurope_Kaliningrad /*name*/,
    -
    12506  0xd33b2f28 /*zoneId*/,
    -
    12507  &kZoneContext /*zoneContext*/,
    -
    12508  3 /*numEras*/,
    -
    12509  kZoneEraEurope_Kaliningrad /*eras*/,
    -
    12510  nullptr /*targetInfo*/,
    -
    12511 };
    -
    12512 
    -
    12513 //---------------------------------------------------------------------------
    -
    12514 // Zone name: Europe/Kirov
    -
    12515 // Eras: 3
    -
    12516 //---------------------------------------------------------------------------
    -
    12517 
    -
    12518 static const extended::Info::ZoneEra kZoneEraEurope_Kirov[] ACE_TIME_PROGMEM = {
    -
    12519  // 3:00 Russia MSK/MSD 2011 Mar 27 2:00s
    -
    12520  {
    -
    12521  &kZonePolicyRussia /*zonePolicy*/,
    -
    12522  "MSK/MSD" /*format*/,
    -
    12523  12 /*offsetCode*/,
    -
    12524  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12525  -89 /*untilYearTiny*/,
    -
    12526  3 /*untilMonth*/,
    -
    12527  27 /*untilDay*/,
    -
    12528  8 /*untilTimeCode*/,
    -
    12529  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    12530  },
    -
    12531  // 4:00 - MSK 2014 Oct 26 2:00s
    -
    12532  {
    -
    12533  nullptr /*zonePolicy*/,
    -
    12534  "MSK" /*format*/,
    -
    12535  16 /*offsetCode*/,
    -
    12536  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12537  -86 /*untilYearTiny*/,
    -
    12538  10 /*untilMonth*/,
    -
    12539  26 /*untilDay*/,
    -
    12540  8 /*untilTimeCode*/,
    -
    12541  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    12542  },
    -
    12543  // 3:00 - MSK
    -
    12544  {
    -
    12545  nullptr /*zonePolicy*/,
    -
    12546  "MSK" /*format*/,
    -
    12547  12 /*offsetCode*/,
    -
    12548  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12549  127 /*untilYearTiny*/,
    -
    12550  1 /*untilMonth*/,
    -
    12551  1 /*untilDay*/,
    -
    12552  0 /*untilTimeCode*/,
    -
    12553  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12554  },
    -
    12555 
    -
    12556 };
    -
    12557 
    -
    12558 static const char kZoneNameEurope_Kirov[] ACE_TIME_PROGMEM = "\x0b" "Kirov";
    -
    12559 
    -
    12560 const extended::Info::ZoneInfo kZoneEurope_Kirov ACE_TIME_PROGMEM = {
    -
    12561  kZoneNameEurope_Kirov /*name*/,
    -
    12562  0xfaf5abef /*zoneId*/,
    -
    12563  &kZoneContext /*zoneContext*/,
    -
    12564  3 /*numEras*/,
    -
    12565  kZoneEraEurope_Kirov /*eras*/,
    -
    12566  nullptr /*targetInfo*/,
    -
    12567 };
    -
    12568 
    -
    12569 //---------------------------------------------------------------------------
    -
    12570 // Zone name: Europe/Kyiv
    -
    12571 // Eras: 1
    -
    12572 //---------------------------------------------------------------------------
    -
    12573 
    -
    12574 static const extended::Info::ZoneEra kZoneEraEurope_Kyiv[] ACE_TIME_PROGMEM = {
    -
    12575  // 2:00 EU EE%sT
    -
    12576  {
    -
    12577  &kZonePolicyEU /*zonePolicy*/,
    -
    12578  "EE%T" /*format*/,
    -
    12579  8 /*offsetCode*/,
    -
    12580  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12581  127 /*untilYearTiny*/,
    -
    12582  1 /*untilMonth*/,
    -
    12583  1 /*untilDay*/,
    -
    12584  0 /*untilTimeCode*/,
    -
    12585  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12586  },
    -
    12587 
    -
    12588 };
    -
    12589 
    -
    12590 static const char kZoneNameEurope_Kyiv[] ACE_TIME_PROGMEM = "\x0b" "Kyiv";
    -
    12591 
    -
    12592 const extended::Info::ZoneInfo kZoneEurope_Kyiv ACE_TIME_PROGMEM = {
    -
    12593  kZoneNameEurope_Kyiv /*name*/,
    -
    12594  0xa2c1e347 /*zoneId*/,
    -
    12595  &kZoneContext /*zoneContext*/,
    -
    12596  1 /*numEras*/,
    -
    12597  kZoneEraEurope_Kyiv /*eras*/,
    -
    12598  nullptr /*targetInfo*/,
    -
    12599 };
    -
    12600 
    -
    12601 //---------------------------------------------------------------------------
    -
    12602 // Zone name: Europe/Lisbon
    -
    12603 // Eras: 1
    -
    12604 //---------------------------------------------------------------------------
    -
    12605 
    -
    12606 static const extended::Info::ZoneEra kZoneEraEurope_Lisbon[] ACE_TIME_PROGMEM = {
    -
    12607  // 0:00 EU WE%sT
    -
    12608  {
    -
    12609  &kZonePolicyEU /*zonePolicy*/,
    -
    12610  "WE%T" /*format*/,
    -
    12611  0 /*offsetCode*/,
    -
    12612  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12613  127 /*untilYearTiny*/,
    -
    12614  1 /*untilMonth*/,
    -
    12615  1 /*untilDay*/,
    -
    12616  0 /*untilTimeCode*/,
    -
    12617  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12618  },
    -
    12619 
    -
    12620 };
    -
    12621 
    -
    12622 static const char kZoneNameEurope_Lisbon[] ACE_TIME_PROGMEM = "\x0b" "Lisbon";
    -
    12623 
    -
    12624 const extended::Info::ZoneInfo kZoneEurope_Lisbon ACE_TIME_PROGMEM = {
    -
    12625  kZoneNameEurope_Lisbon /*name*/,
    -
    12626  0x5c00a70b /*zoneId*/,
    -
    12627  &kZoneContext /*zoneContext*/,
    -
    12628  1 /*numEras*/,
    -
    12629  kZoneEraEurope_Lisbon /*eras*/,
    -
    12630  nullptr /*targetInfo*/,
    -
    12631 };
    -
    12632 
    -
    12633 //---------------------------------------------------------------------------
    -
    12634 // Zone name: Europe/London
    -
    12635 // Eras: 1
    -
    12636 //---------------------------------------------------------------------------
    -
    12637 
    -
    12638 static const extended::Info::ZoneEra kZoneEraEurope_London[] ACE_TIME_PROGMEM = {
    -
    12639  // 0:00 EU GMT/BST
    -
    12640  {
    -
    12641  &kZonePolicyEU /*zonePolicy*/,
    -
    12642  "GMT/BST" /*format*/,
    -
    12643  0 /*offsetCode*/,
    -
    12644  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12645  127 /*untilYearTiny*/,
    -
    12646  1 /*untilMonth*/,
    -
    12647  1 /*untilDay*/,
    -
    12648  0 /*untilTimeCode*/,
    -
    12649  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12650  },
    -
    12651 
    -
    12652 };
    -
    12653 
    -
    12654 static const char kZoneNameEurope_London[] ACE_TIME_PROGMEM = "\x0b" "London";
    -
    12655 
    -
    12656 const extended::Info::ZoneInfo kZoneEurope_London ACE_TIME_PROGMEM = {
    -
    12657  kZoneNameEurope_London /*name*/,
    -
    12658  0x5c6a84ae /*zoneId*/,
    -
    12659  &kZoneContext /*zoneContext*/,
    -
    12660  1 /*numEras*/,
    -
    12661  kZoneEraEurope_London /*eras*/,
    -
    12662  nullptr /*targetInfo*/,
    -
    12663 };
    -
    12664 
    -
    12665 //---------------------------------------------------------------------------
    -
    12666 // Zone name: Europe/Madrid
    -
    12667 // Eras: 1
    -
    12668 //---------------------------------------------------------------------------
    -
    12669 
    -
    12670 static const extended::Info::ZoneEra kZoneEraEurope_Madrid[] ACE_TIME_PROGMEM = {
    -
    12671  // 1:00 EU CE%sT
    -
    12672  {
    -
    12673  &kZonePolicyEU /*zonePolicy*/,
    -
    12674  "CE%T" /*format*/,
    -
    12675  4 /*offsetCode*/,
    -
    12676  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12677  127 /*untilYearTiny*/,
    -
    12678  1 /*untilMonth*/,
    -
    12679  1 /*untilDay*/,
    -
    12680  0 /*untilTimeCode*/,
    -
    12681  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12682  },
    -
    12683 
    -
    12684 };
    -
    12685 
    -
    12686 static const char kZoneNameEurope_Madrid[] ACE_TIME_PROGMEM = "\x0b" "Madrid";
    -
    12687 
    -
    12688 const extended::Info::ZoneInfo kZoneEurope_Madrid ACE_TIME_PROGMEM = {
    -
    12689  kZoneNameEurope_Madrid /*name*/,
    -
    12690  0x5dbd1535 /*zoneId*/,
    -
    12691  &kZoneContext /*zoneContext*/,
    -
    12692  1 /*numEras*/,
    -
    12693  kZoneEraEurope_Madrid /*eras*/,
    -
    12694  nullptr /*targetInfo*/,
    -
    12695 };
    -
    12696 
    -
    12697 //---------------------------------------------------------------------------
    -
    12698 // Zone name: Europe/Malta
    -
    12699 // Eras: 1
    -
    12700 //---------------------------------------------------------------------------
    -
    12701 
    -
    12702 static const extended::Info::ZoneEra kZoneEraEurope_Malta[] ACE_TIME_PROGMEM = {
    -
    12703  // 1:00 EU CE%sT
    -
    12704  {
    -
    12705  &kZonePolicyEU /*zonePolicy*/,
    -
    12706  "CE%T" /*format*/,
    -
    12707  4 /*offsetCode*/,
    -
    12708  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12709  127 /*untilYearTiny*/,
    -
    12710  1 /*untilMonth*/,
    -
    12711  1 /*untilDay*/,
    -
    12712  0 /*untilTimeCode*/,
    -
    12713  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12714  },
    -
    12715 
    -
    12716 };
    -
    12717 
    -
    12718 static const char kZoneNameEurope_Malta[] ACE_TIME_PROGMEM = "\x0b" "Malta";
    -
    12719 
    -
    12720 const extended::Info::ZoneInfo kZoneEurope_Malta ACE_TIME_PROGMEM = {
    -
    12721  kZoneNameEurope_Malta /*name*/,
    -
    12722  0xfb1560f3 /*zoneId*/,
    -
    12723  &kZoneContext /*zoneContext*/,
    -
    12724  1 /*numEras*/,
    -
    12725  kZoneEraEurope_Malta /*eras*/,
    -
    12726  nullptr /*targetInfo*/,
    -
    12727 };
    -
    12728 
    -
    12729 //---------------------------------------------------------------------------
    -
    12730 // Zone name: Europe/Minsk
    -
    12731 // Eras: 2
    -
    12732 //---------------------------------------------------------------------------
    -
    12733 
    -
    12734 static const extended::Info::ZoneEra kZoneEraEurope_Minsk[] ACE_TIME_PROGMEM = {
    -
    12735  // 2:00 Russia EE%sT 2011 Mar 27 2:00s
    -
    12736  {
    -
    12737  &kZonePolicyRussia /*zonePolicy*/,
    -
    12738  "EE%T" /*format*/,
    -
    12739  8 /*offsetCode*/,
    -
    12740  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12741  -89 /*untilYearTiny*/,
    -
    12742  3 /*untilMonth*/,
    -
    12743  27 /*untilDay*/,
    -
    12744  8 /*untilTimeCode*/,
    -
    12745  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    12746  },
    -
    12747  // 3:00 - %z
    -
    12748  {
    -
    12749  nullptr /*zonePolicy*/,
    -
    12750  "" /*format*/,
    -
    12751  12 /*offsetCode*/,
    -
    12752  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12753  127 /*untilYearTiny*/,
    -
    12754  1 /*untilMonth*/,
    -
    12755  1 /*untilDay*/,
    -
    12756  0 /*untilTimeCode*/,
    -
    12757  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12758  },
    -
    12759 
    -
    12760 };
    -
    12761 
    -
    12762 static const char kZoneNameEurope_Minsk[] ACE_TIME_PROGMEM = "\x0b" "Minsk";
    -
    12763 
    -
    12764 const extended::Info::ZoneInfo kZoneEurope_Minsk ACE_TIME_PROGMEM = {
    -
    12765  kZoneNameEurope_Minsk /*name*/,
    -
    12766  0xfb19cc66 /*zoneId*/,
    -
    12767  &kZoneContext /*zoneContext*/,
    -
    12768  2 /*numEras*/,
    -
    12769  kZoneEraEurope_Minsk /*eras*/,
    -
    12770  nullptr /*targetInfo*/,
    -
    12771 };
    -
    12772 
    -
    12773 //---------------------------------------------------------------------------
    -
    12774 // Zone name: Europe/Moscow
    -
    12775 // Eras: 3
    -
    12776 //---------------------------------------------------------------------------
    -
    12777 
    -
    12778 static const extended::Info::ZoneEra kZoneEraEurope_Moscow[] ACE_TIME_PROGMEM = {
    -
    12779  // 3:00 Russia MSK/MSD 2011 Mar 27 2:00s
    -
    12780  {
    -
    12781  &kZonePolicyRussia /*zonePolicy*/,
    -
    12782  "MSK/MSD" /*format*/,
    -
    12783  12 /*offsetCode*/,
    -
    12784  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12785  -89 /*untilYearTiny*/,
    -
    12786  3 /*untilMonth*/,
    -
    12787  27 /*untilDay*/,
    -
    12788  8 /*untilTimeCode*/,
    -
    12789  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    12790  },
    -
    12791  // 4:00 - MSK 2014 Oct 26 2:00s
    -
    12792  {
    -
    12793  nullptr /*zonePolicy*/,
    -
    12794  "MSK" /*format*/,
    -
    12795  16 /*offsetCode*/,
    -
    12796  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12797  -86 /*untilYearTiny*/,
    -
    12798  10 /*untilMonth*/,
    -
    12799  26 /*untilDay*/,
    -
    12800  8 /*untilTimeCode*/,
    -
    12801  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    12802  },
    -
    12803  // 3:00 - MSK
    -
    12804  {
    -
    12805  nullptr /*zonePolicy*/,
    -
    12806  "MSK" /*format*/,
    -
    12807  12 /*offsetCode*/,
    -
    12808  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12809  127 /*untilYearTiny*/,
    -
    12810  1 /*untilMonth*/,
    -
    12811  1 /*untilDay*/,
    -
    12812  0 /*untilTimeCode*/,
    -
    12813  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12814  },
    -
    12815 
    -
    12816 };
    -
    12817 
    -
    12818 static const char kZoneNameEurope_Moscow[] ACE_TIME_PROGMEM = "\x0b" "Moscow";
    -
    12819 
    -
    12820 const extended::Info::ZoneInfo kZoneEurope_Moscow ACE_TIME_PROGMEM = {
    -
    12821  kZoneNameEurope_Moscow /*name*/,
    -
    12822  0x5ec266fc /*zoneId*/,
    -
    12823  &kZoneContext /*zoneContext*/,
    -
    12824  3 /*numEras*/,
    -
    12825  kZoneEraEurope_Moscow /*eras*/,
    -
    12826  nullptr /*targetInfo*/,
    -
    12827 };
    -
    12828 
    -
    12829 //---------------------------------------------------------------------------
    -
    12830 // Zone name: Europe/Paris
    -
    12831 // Eras: 1
    -
    12832 //---------------------------------------------------------------------------
    -
    12833 
    -
    12834 static const extended::Info::ZoneEra kZoneEraEurope_Paris[] ACE_TIME_PROGMEM = {
    -
    12835  // 1:00 EU CE%sT
    -
    12836  {
    -
    12837  &kZonePolicyEU /*zonePolicy*/,
    -
    12838  "CE%T" /*format*/,
    -
    12839  4 /*offsetCode*/,
    -
    12840  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12841  127 /*untilYearTiny*/,
    -
    12842  1 /*untilMonth*/,
    -
    12843  1 /*untilDay*/,
    -
    12844  0 /*untilTimeCode*/,
    -
    12845  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12846  },
    -
    12847 
    -
    12848 };
    -
    12849 
    -
    12850 static const char kZoneNameEurope_Paris[] ACE_TIME_PROGMEM = "\x0b" "Paris";
    -
    12851 
    -
    12852 const extended::Info::ZoneInfo kZoneEurope_Paris ACE_TIME_PROGMEM = {
    -
    12853  kZoneNameEurope_Paris /*name*/,
    -
    12854  0xfb4bc2a3 /*zoneId*/,
    -
    12855  &kZoneContext /*zoneContext*/,
    -
    12856  1 /*numEras*/,
    -
    12857  kZoneEraEurope_Paris /*eras*/,
    -
    12858  nullptr /*targetInfo*/,
    -
    12859 };
    -
    12860 
    -
    12861 //---------------------------------------------------------------------------
    -
    12862 // Zone name: Europe/Prague
    -
    12863 // Eras: 1
    -
    12864 //---------------------------------------------------------------------------
    -
    12865 
    -
    12866 static const extended::Info::ZoneEra kZoneEraEurope_Prague[] ACE_TIME_PROGMEM = {
    -
    12867  // 1:00 EU CE%sT
    -
    12868  {
    -
    12869  &kZonePolicyEU /*zonePolicy*/,
    -
    12870  "CE%T" /*format*/,
    -
    12871  4 /*offsetCode*/,
    -
    12872  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12873  127 /*untilYearTiny*/,
    -
    12874  1 /*untilMonth*/,
    -
    12875  1 /*untilDay*/,
    -
    12876  0 /*untilTimeCode*/,
    -
    12877  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12878  },
    -
    12879 
    -
    12880 };
    -
    12881 
    -
    12882 static const char kZoneNameEurope_Prague[] ACE_TIME_PROGMEM = "\x0b" "Prague";
    -
    12883 
    -
    12884 const extended::Info::ZoneInfo kZoneEurope_Prague ACE_TIME_PROGMEM = {
    -
    12885  kZoneNameEurope_Prague /*name*/,
    -
    12886  0x65ee5d48 /*zoneId*/,
    -
    12887  &kZoneContext /*zoneContext*/,
    -
    12888  1 /*numEras*/,
    -
    12889  kZoneEraEurope_Prague /*eras*/,
    -
    12890  nullptr /*targetInfo*/,
    -
    12891 };
    -
    12892 
    -
    12893 //---------------------------------------------------------------------------
    -
    12894 // Zone name: Europe/Riga
    -
    12895 // Eras: 3
    -
    12896 //---------------------------------------------------------------------------
    -
    12897 
    -
    12898 static const extended::Info::ZoneEra kZoneEraEurope_Riga[] ACE_TIME_PROGMEM = {
    -
    12899  // 2:00 EU EE%sT 2000 Feb 29
    -
    12900  {
    -
    12901  &kZonePolicyEU /*zonePolicy*/,
    -
    12902  "EE%T" /*format*/,
    -
    12903  8 /*offsetCode*/,
    -
    12904  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12905  -100 /*untilYearTiny*/,
    -
    12906  2 /*untilMonth*/,
    -
    12907  29 /*untilDay*/,
    -
    12908  0 /*untilTimeCode*/,
    -
    12909  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12910  },
    -
    12911  // 2:00 - EET 2001 Jan 2
    -
    12912  {
    -
    12913  nullptr /*zonePolicy*/,
    -
    12914  "EET" /*format*/,
    -
    12915  8 /*offsetCode*/,
    -
    12916  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12917  -99 /*untilYearTiny*/,
    -
    12918  1 /*untilMonth*/,
    -
    12919  2 /*untilDay*/,
    -
    12920  0 /*untilTimeCode*/,
    -
    12921  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12922  },
    -
    12923  // 2:00 EU EE%sT
    -
    12924  {
    -
    12925  &kZonePolicyEU /*zonePolicy*/,
    -
    12926  "EE%T" /*format*/,
    -
    12927  8 /*offsetCode*/,
    -
    12928  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12929  127 /*untilYearTiny*/,
    -
    12930  1 /*untilMonth*/,
    -
    12931  1 /*untilDay*/,
    -
    12932  0 /*untilTimeCode*/,
    -
    12933  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12934  },
    -
    12935 
    -
    12936 };
    -
    12937 
    -
    12938 static const char kZoneNameEurope_Riga[] ACE_TIME_PROGMEM = "\x0b" "Riga";
    -
    12939 
    -
    12940 const extended::Info::ZoneInfo kZoneEurope_Riga ACE_TIME_PROGMEM = {
    -
    12941  kZoneNameEurope_Riga /*name*/,
    -
    12942  0xa2c57587 /*zoneId*/,
    -
    12943  &kZoneContext /*zoneContext*/,
    -
    12944  3 /*numEras*/,
    -
    12945  kZoneEraEurope_Riga /*eras*/,
    -
    12946  nullptr /*targetInfo*/,
    -
    12947 };
    -
    12948 
    -
    12949 //---------------------------------------------------------------------------
    -
    12950 // Zone name: Europe/Rome
    -
    12951 // Eras: 1
    -
    12952 //---------------------------------------------------------------------------
    -
    12953 
    -
    12954 static const extended::Info::ZoneEra kZoneEraEurope_Rome[] ACE_TIME_PROGMEM = {
    -
    12955  // 1:00 EU CE%sT
    -
    12956  {
    -
    12957  &kZonePolicyEU /*zonePolicy*/,
    -
    12958  "CE%T" /*format*/,
    -
    12959  4 /*offsetCode*/,
    -
    12960  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12961  127 /*untilYearTiny*/,
    -
    12962  1 /*untilMonth*/,
    -
    12963  1 /*untilDay*/,
    -
    12964  0 /*untilTimeCode*/,
    -
    12965  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    12966  },
    -
    12967 
    -
    12968 };
    -
    12969 
    -
    12970 static const char kZoneNameEurope_Rome[] ACE_TIME_PROGMEM = "\x0b" "Rome";
    -
    12971 
    -
    12972 const extended::Info::ZoneInfo kZoneEurope_Rome ACE_TIME_PROGMEM = {
    -
    12973  kZoneNameEurope_Rome /*name*/,
    -
    12974  0xa2c58fd7 /*zoneId*/,
    -
    12975  &kZoneContext /*zoneContext*/,
    -
    12976  1 /*numEras*/,
    -
    12977  kZoneEraEurope_Rome /*eras*/,
    -
    12978  nullptr /*targetInfo*/,
    -
    12979 };
    -
    12980 
    -
    12981 //---------------------------------------------------------------------------
    -
    12982 // Zone name: Europe/Samara
    -
    12983 // Eras: 3
    -
    12984 //---------------------------------------------------------------------------
    -
    12985 
    -
    12986 static const extended::Info::ZoneEra kZoneEraEurope_Samara[] ACE_TIME_PROGMEM = {
    -
    12987  // 4:00 Russia %z 2010 Mar 28 2:00s
    -
    12988  {
    -
    12989  &kZonePolicyRussia /*zonePolicy*/,
    -
    12990  "" /*format*/,
    -
    12991  16 /*offsetCode*/,
    -
    12992  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    12993  -90 /*untilYearTiny*/,
    -
    12994  3 /*untilMonth*/,
    -
    12995  28 /*untilDay*/,
    -
    12996  8 /*untilTimeCode*/,
    -
    12997  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    12998  },
    -
    12999  // 3:00 Russia %z 2011 Mar 27 2:00s
    -
    13000  {
    -
    13001  &kZonePolicyRussia /*zonePolicy*/,
    -
    13002  "" /*format*/,
    -
    13003  12 /*offsetCode*/,
    -
    13004  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13005  -89 /*untilYearTiny*/,
    -
    13006  3 /*untilMonth*/,
    -
    13007  27 /*untilDay*/,
    -
    13008  8 /*untilTimeCode*/,
    -
    13009  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13010  },
    -
    13011  // 4:00 - %z
    -
    13012  {
    -
    13013  nullptr /*zonePolicy*/,
    -
    13014  "" /*format*/,
    -
    13015  16 /*offsetCode*/,
    -
    13016  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13017  127 /*untilYearTiny*/,
    -
    13018  1 /*untilMonth*/,
    -
    13019  1 /*untilDay*/,
    -
    13020  0 /*untilTimeCode*/,
    -
    13021  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13022  },
    -
    13023 
    -
    13024 };
    -
    13025 
    -
    13026 static const char kZoneNameEurope_Samara[] ACE_TIME_PROGMEM = "\x0b" "Samara";
    -
    13027 
    -
    13028 const extended::Info::ZoneInfo kZoneEurope_Samara ACE_TIME_PROGMEM = {
    -
    13029  kZoneNameEurope_Samara /*name*/,
    -
    13030  0x6bc0b139 /*zoneId*/,
    -
    13031  &kZoneContext /*zoneContext*/,
    -
    13032  3 /*numEras*/,
    -
    13033  kZoneEraEurope_Samara /*eras*/,
    -
    13034  nullptr /*targetInfo*/,
    -
    13035 };
    -
    13036 
    -
    13037 //---------------------------------------------------------------------------
    -
    13038 // Zone name: Europe/Saratov
    -
    13039 // Eras: 4
    -
    13040 //---------------------------------------------------------------------------
    -
    13041 
    -
    13042 static const extended::Info::ZoneEra kZoneEraEurope_Saratov[] ACE_TIME_PROGMEM = {
    -
    13043  // 3:00 Russia %z 2011 Mar 27 2:00s
    -
    13044  {
    -
    13045  &kZonePolicyRussia /*zonePolicy*/,
    -
    13046  "" /*format*/,
    -
    13047  12 /*offsetCode*/,
    -
    13048  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13049  -89 /*untilYearTiny*/,
    -
    13050  3 /*untilMonth*/,
    -
    13051  27 /*untilDay*/,
    -
    13052  8 /*untilTimeCode*/,
    -
    13053  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13054  },
    -
    13055  // 4:00 - %z 2014 Oct 26 2:00s
    -
    13056  {
    -
    13057  nullptr /*zonePolicy*/,
    -
    13058  "" /*format*/,
    -
    13059  16 /*offsetCode*/,
    -
    13060  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13061  -86 /*untilYearTiny*/,
    -
    13062  10 /*untilMonth*/,
    -
    13063  26 /*untilDay*/,
    -
    13064  8 /*untilTimeCode*/,
    -
    13065  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13066  },
    -
    13067  // 3:00 - %z 2016 Dec 4 2:00s
    -
    13068  {
    -
    13069  nullptr /*zonePolicy*/,
    -
    13070  "" /*format*/,
    -
    13071  12 /*offsetCode*/,
    -
    13072  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13073  -84 /*untilYearTiny*/,
    -
    13074  12 /*untilMonth*/,
    -
    13075  4 /*untilDay*/,
    -
    13076  8 /*untilTimeCode*/,
    -
    13077  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13078  },
    -
    13079  // 4:00 - %z
    -
    13080  {
    -
    13081  nullptr /*zonePolicy*/,
    -
    13082  "" /*format*/,
    -
    13083  16 /*offsetCode*/,
    -
    13084  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13085  127 /*untilYearTiny*/,
    -
    13086  1 /*untilMonth*/,
    -
    13087  1 /*untilDay*/,
    -
    13088  0 /*untilTimeCode*/,
    -
    13089  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13090  },
    -
    13091 
    -
    13092 };
    -
    13093 
    -
    13094 static const char kZoneNameEurope_Saratov[] ACE_TIME_PROGMEM = "\x0b" "Saratov";
    -
    13095 
    -
    13096 const extended::Info::ZoneInfo kZoneEurope_Saratov ACE_TIME_PROGMEM = {
    -
    13097  kZoneNameEurope_Saratov /*name*/,
    -
    13098  0xe4315da4 /*zoneId*/,
    -
    13099  &kZoneContext /*zoneContext*/,
    -
    13100  4 /*numEras*/,
    -
    13101  kZoneEraEurope_Saratov /*eras*/,
    -
    13102  nullptr /*targetInfo*/,
    -
    13103 };
    -
    13104 
    -
    13105 //---------------------------------------------------------------------------
    -
    13106 // Zone name: Europe/Simferopol
    -
    13107 // Eras: 3
    -
    13108 //---------------------------------------------------------------------------
    -
    13109 
    -
    13110 static const extended::Info::ZoneEra kZoneEraEurope_Simferopol[] ACE_TIME_PROGMEM = {
    -
    13111  // 2:00 EU EE%sT 2014 Mar 30 2:00
    -
    13112  {
    -
    13113  &kZonePolicyEU /*zonePolicy*/,
    -
    13114  "EE%T" /*format*/,
    -
    13115  8 /*offsetCode*/,
    -
    13116  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13117  -86 /*untilYearTiny*/,
    -
    13118  3 /*untilMonth*/,
    -
    13119  30 /*untilDay*/,
    -
    13120  8 /*untilTimeCode*/,
    -
    13121  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13122  },
    -
    13123  // 4:00 - MSK 2014 Oct 26 2:00s
    -
    13124  {
    -
    13125  nullptr /*zonePolicy*/,
    -
    13126  "MSK" /*format*/,
    -
    13127  16 /*offsetCode*/,
    -
    13128  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13129  -86 /*untilYearTiny*/,
    -
    13130  10 /*untilMonth*/,
    -
    13131  26 /*untilDay*/,
    -
    13132  8 /*untilTimeCode*/,
    -
    13133  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13134  },
    -
    13135  // 3:00 - MSK
    -
    13136  {
    -
    13137  nullptr /*zonePolicy*/,
    -
    13138  "MSK" /*format*/,
    -
    13139  12 /*offsetCode*/,
    -
    13140  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13141  127 /*untilYearTiny*/,
    -
    13142  1 /*untilMonth*/,
    -
    13143  1 /*untilDay*/,
    -
    13144  0 /*untilTimeCode*/,
    -
    13145  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13146  },
    -
    13147 
    -
    13148 };
    -
    13149 
    -
    13150 static const char kZoneNameEurope_Simferopol[] ACE_TIME_PROGMEM = "\x0b" "Simferopol";
    -
    13151 
    -
    13152 const extended::Info::ZoneInfo kZoneEurope_Simferopol ACE_TIME_PROGMEM = {
    -
    13153  kZoneNameEurope_Simferopol /*name*/,
    -
    13154  0xda9eb724 /*zoneId*/,
    -
    13155  &kZoneContext /*zoneContext*/,
    -
    13156  3 /*numEras*/,
    -
    13157  kZoneEraEurope_Simferopol /*eras*/,
    -
    13158  nullptr /*targetInfo*/,
    -
    13159 };
    -
    13160 
    -
    13161 //---------------------------------------------------------------------------
    -
    13162 // Zone name: Europe/Sofia
    -
    13163 // Eras: 1
    -
    13164 //---------------------------------------------------------------------------
    -
    13165 
    -
    13166 static const extended::Info::ZoneEra kZoneEraEurope_Sofia[] ACE_TIME_PROGMEM = {
    -
    13167  // 2:00 EU EE%sT
    -
    13168  {
    -
    13169  &kZonePolicyEU /*zonePolicy*/,
    -
    13170  "EE%T" /*format*/,
    -
    13171  8 /*offsetCode*/,
    -
    13172  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13173  127 /*untilYearTiny*/,
    -
    13174  1 /*untilMonth*/,
    -
    13175  1 /*untilDay*/,
    -
    13176  0 /*untilTimeCode*/,
    -
    13177  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13178  },
    -
    13179 
    -
    13180 };
    -
    13181 
    -
    13182 static const char kZoneNameEurope_Sofia[] ACE_TIME_PROGMEM = "\x0b" "Sofia";
    -
    13183 
    -
    13184 const extended::Info::ZoneInfo kZoneEurope_Sofia ACE_TIME_PROGMEM = {
    -
    13185  kZoneNameEurope_Sofia /*name*/,
    -
    13186  0xfb898656 /*zoneId*/,
    -
    13187  &kZoneContext /*zoneContext*/,
    -
    13188  1 /*numEras*/,
    -
    13189  kZoneEraEurope_Sofia /*eras*/,
    -
    13190  nullptr /*targetInfo*/,
    -
    13191 };
    -
    13192 
    -
    13193 //---------------------------------------------------------------------------
    -
    13194 // Zone name: Europe/Tallinn
    -
    13195 // Eras: 3
    -
    13196 //---------------------------------------------------------------------------
    -
    13197 
    -
    13198 static const extended::Info::ZoneEra kZoneEraEurope_Tallinn[] ACE_TIME_PROGMEM = {
    -
    13199  // 2:00 EU EE%sT 1999 Oct 31 4:00
    -
    13200  {
    -
    13201  &kZonePolicyEU /*zonePolicy*/,
    -
    13202  "EE%T" /*format*/,
    -
    13203  8 /*offsetCode*/,
    -
    13204  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13205  -101 /*untilYearTiny*/,
    -
    13206  10 /*untilMonth*/,
    -
    13207  31 /*untilDay*/,
    -
    13208  16 /*untilTimeCode*/,
    -
    13209  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13210  },
    -
    13211  // 2:00 - EET 2002 Feb 21
    -
    13212  {
    -
    13213  nullptr /*zonePolicy*/,
    -
    13214  "EET" /*format*/,
    -
    13215  8 /*offsetCode*/,
    -
    13216  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13217  -98 /*untilYearTiny*/,
    -
    13218  2 /*untilMonth*/,
    -
    13219  21 /*untilDay*/,
    -
    13220  0 /*untilTimeCode*/,
    -
    13221  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13222  },
    -
    13223  // 2:00 EU EE%sT
    -
    13224  {
    -
    13225  &kZonePolicyEU /*zonePolicy*/,
    -
    13226  "EE%T" /*format*/,
    -
    13227  8 /*offsetCode*/,
    -
    13228  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13229  127 /*untilYearTiny*/,
    -
    13230  1 /*untilMonth*/,
    -
    13231  1 /*untilDay*/,
    -
    13232  0 /*untilTimeCode*/,
    -
    13233  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13234  },
    -
    13235 
    -
    13236 };
    -
    13237 
    -
    13238 static const char kZoneNameEurope_Tallinn[] ACE_TIME_PROGMEM = "\x0b" "Tallinn";
    -
    13239 
    -
    13240 const extended::Info::ZoneInfo kZoneEurope_Tallinn ACE_TIME_PROGMEM = {
    -
    13241  kZoneNameEurope_Tallinn /*name*/,
    -
    13242  0x30c4e096 /*zoneId*/,
    -
    13243  &kZoneContext /*zoneContext*/,
    -
    13244  3 /*numEras*/,
    -
    13245  kZoneEraEurope_Tallinn /*eras*/,
    -
    13246  nullptr /*targetInfo*/,
    -
    13247 };
    -
    13248 
    -
    13249 //---------------------------------------------------------------------------
    -
    13250 // Zone name: Europe/Tirane
    -
    13251 // Eras: 1
    -
    13252 //---------------------------------------------------------------------------
    -
    13253 
    -
    13254 static const extended::Info::ZoneEra kZoneEraEurope_Tirane[] ACE_TIME_PROGMEM = {
    -
    13255  // 1:00 EU CE%sT
    -
    13256  {
    -
    13257  &kZonePolicyEU /*zonePolicy*/,
    -
    13258  "CE%T" /*format*/,
    -
    13259  4 /*offsetCode*/,
    -
    13260  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13261  127 /*untilYearTiny*/,
    -
    13262  1 /*untilMonth*/,
    -
    13263  1 /*untilDay*/,
    -
    13264  0 /*untilTimeCode*/,
    -
    13265  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13266  },
    -
    13267 
    -
    13268 };
    -
    13269 
    -
    13270 static const char kZoneNameEurope_Tirane[] ACE_TIME_PROGMEM = "\x0b" "Tirane";
    -
    13271 
    -
    13272 const extended::Info::ZoneInfo kZoneEurope_Tirane ACE_TIME_PROGMEM = {
    -
    13273  kZoneNameEurope_Tirane /*name*/,
    -
    13274  0x6ea95b47 /*zoneId*/,
    -
    13275  &kZoneContext /*zoneContext*/,
    -
    13276  1 /*numEras*/,
    -
    13277  kZoneEraEurope_Tirane /*eras*/,
    -
    13278  nullptr /*targetInfo*/,
    -
    13279 };
    -
    13280 
    -
    13281 //---------------------------------------------------------------------------
    -
    13282 // Zone name: Europe/Ulyanovsk
    -
    13283 // Eras: 4
    -
    13284 //---------------------------------------------------------------------------
    -
    13285 
    -
    13286 static const extended::Info::ZoneEra kZoneEraEurope_Ulyanovsk[] ACE_TIME_PROGMEM = {
    -
    13287  // 3:00 Russia %z 2011 Mar 27 2:00s
    -
    13288  {
    -
    13289  &kZonePolicyRussia /*zonePolicy*/,
    -
    13290  "" /*format*/,
    -
    13291  12 /*offsetCode*/,
    -
    13292  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13293  -89 /*untilYearTiny*/,
    -
    13294  3 /*untilMonth*/,
    -
    13295  27 /*untilDay*/,
    -
    13296  8 /*untilTimeCode*/,
    -
    13297  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13298  },
    -
    13299  // 4:00 - %z 2014 Oct 26 2:00s
    -
    13300  {
    -
    13301  nullptr /*zonePolicy*/,
    -
    13302  "" /*format*/,
    -
    13303  16 /*offsetCode*/,
    -
    13304  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13305  -86 /*untilYearTiny*/,
    -
    13306  10 /*untilMonth*/,
    -
    13307  26 /*untilDay*/,
    -
    13308  8 /*untilTimeCode*/,
    -
    13309  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13310  },
    -
    13311  // 3:00 - %z 2016 Mar 27 2:00s
    -
    13312  {
    -
    13313  nullptr /*zonePolicy*/,
    -
    13314  "" /*format*/,
    -
    13315  12 /*offsetCode*/,
    -
    13316  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13317  -84 /*untilYearTiny*/,
    -
    13318  3 /*untilMonth*/,
    -
    13319  27 /*untilDay*/,
    -
    13320  8 /*untilTimeCode*/,
    -
    13321  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13322  },
    -
    13323  // 4:00 - %z
    -
    13324  {
    -
    13325  nullptr /*zonePolicy*/,
    -
    13326  "" /*format*/,
    -
    13327  16 /*offsetCode*/,
    -
    13328  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13329  127 /*untilYearTiny*/,
    -
    13330  1 /*untilMonth*/,
    -
    13331  1 /*untilDay*/,
    -
    13332  0 /*untilTimeCode*/,
    -
    13333  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13334  },
    -
    13335 
    -
    13336 };
    -
    13337 
    -
    13338 static const char kZoneNameEurope_Ulyanovsk[] ACE_TIME_PROGMEM = "\x0b" "Ulyanovsk";
    -
    13339 
    -
    13340 const extended::Info::ZoneInfo kZoneEurope_Ulyanovsk ACE_TIME_PROGMEM = {
    -
    13341  kZoneNameEurope_Ulyanovsk /*name*/,
    -
    13342  0xe03783d0 /*zoneId*/,
    -
    13343  &kZoneContext /*zoneContext*/,
    -
    13344  4 /*numEras*/,
    -
    13345  kZoneEraEurope_Ulyanovsk /*eras*/,
    -
    13346  nullptr /*targetInfo*/,
    -
    13347 };
    -
    13348 
    -
    13349 //---------------------------------------------------------------------------
    -
    13350 // Zone name: Europe/Vienna
    -
    13351 // Eras: 1
    -
    13352 //---------------------------------------------------------------------------
    -
    13353 
    -
    13354 static const extended::Info::ZoneEra kZoneEraEurope_Vienna[] ACE_TIME_PROGMEM = {
    -
    13355  // 1:00 EU CE%sT
    -
    13356  {
    -
    13357  &kZonePolicyEU /*zonePolicy*/,
    -
    13358  "CE%T" /*format*/,
    -
    13359  4 /*offsetCode*/,
    -
    13360  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13361  127 /*untilYearTiny*/,
    -
    13362  1 /*untilMonth*/,
    -
    13363  1 /*untilDay*/,
    -
    13364  0 /*untilTimeCode*/,
    -
    13365  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13366  },
    -
    13367 
    -
    13368 };
    -
    13369 
    -
    13370 static const char kZoneNameEurope_Vienna[] ACE_TIME_PROGMEM = "\x0b" "Vienna";
    -
    13371 
    -
    13372 const extended::Info::ZoneInfo kZoneEurope_Vienna ACE_TIME_PROGMEM = {
    -
    13373  kZoneNameEurope_Vienna /*name*/,
    -
    13374  0x734cc2e5 /*zoneId*/,
    -
    13375  &kZoneContext /*zoneContext*/,
    -
    13376  1 /*numEras*/,
    -
    13377  kZoneEraEurope_Vienna /*eras*/,
    -
    13378  nullptr /*targetInfo*/,
    -
    13379 };
    -
    13380 
    -
    13381 //---------------------------------------------------------------------------
    -
    13382 // Zone name: Europe/Vilnius
    -
    13383 // Eras: 3
    -
    13384 //---------------------------------------------------------------------------
    -
    13385 
    -
    13386 static const extended::Info::ZoneEra kZoneEraEurope_Vilnius[] ACE_TIME_PROGMEM = {
    -
    13387  // 1:00 EU CE%sT 1999 Oct 31 1:00u
    -
    13388  {
    -
    13389  &kZonePolicyEU /*zonePolicy*/,
    -
    13390  "CE%T" /*format*/,
    -
    13391  4 /*offsetCode*/,
    -
    13392  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13393  -101 /*untilYearTiny*/,
    -
    13394  10 /*untilMonth*/,
    -
    13395  31 /*untilDay*/,
    -
    13396  4 /*untilTimeCode*/,
    -
    13397  32 /*untilTimeModifier (kSuffixU + minute=0)*/,
    -
    13398  },
    -
    13399  // 2:00 - EET 2003 Jan 1
    -
    13400  {
    -
    13401  nullptr /*zonePolicy*/,
    -
    13402  "EET" /*format*/,
    -
    13403  8 /*offsetCode*/,
    -
    13404  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13405  -97 /*untilYearTiny*/,
    -
    13406  1 /*untilMonth*/,
    -
    13407  1 /*untilDay*/,
    -
    13408  0 /*untilTimeCode*/,
    -
    13409  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13410  },
    -
    13411  // 2:00 EU EE%sT
    -
    13412  {
    -
    13413  &kZonePolicyEU /*zonePolicy*/,
    -
    13414  "EE%T" /*format*/,
    -
    13415  8 /*offsetCode*/,
    -
    13416  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13417  127 /*untilYearTiny*/,
    -
    13418  1 /*untilMonth*/,
    -
    13419  1 /*untilDay*/,
    -
    13420  0 /*untilTimeCode*/,
    -
    13421  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13422  },
    -
    13423 
    -
    13424 };
    -
    13425 
    -
    13426 static const char kZoneNameEurope_Vilnius[] ACE_TIME_PROGMEM = "\x0b" "Vilnius";
    -
    13427 
    -
    13428 const extended::Info::ZoneInfo kZoneEurope_Vilnius ACE_TIME_PROGMEM = {
    -
    13429  kZoneNameEurope_Vilnius /*name*/,
    -
    13430  0xdd63b8ce /*zoneId*/,
    -
    13431  &kZoneContext /*zoneContext*/,
    -
    13432  3 /*numEras*/,
    -
    13433  kZoneEraEurope_Vilnius /*eras*/,
    -
    13434  nullptr /*targetInfo*/,
    -
    13435 };
    -
    13436 
    -
    13437 //---------------------------------------------------------------------------
    -
    13438 // Zone name: Europe/Volgograd
    -
    13439 // Eras: 5
    -
    13440 //---------------------------------------------------------------------------
    -
    13441 
    -
    13442 static const extended::Info::ZoneEra kZoneEraEurope_Volgograd[] ACE_TIME_PROGMEM = {
    -
    13443  // 3:00 Russia MSK/MSD 2011 Mar 27 2:00s
    -
    13444  {
    -
    13445  &kZonePolicyRussia /*zonePolicy*/,
    -
    13446  "MSK/MSD" /*format*/,
    -
    13447  12 /*offsetCode*/,
    -
    13448  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13449  -89 /*untilYearTiny*/,
    -
    13450  3 /*untilMonth*/,
    -
    13451  27 /*untilDay*/,
    -
    13452  8 /*untilTimeCode*/,
    -
    13453  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13454  },
    -
    13455  // 4:00 - MSK 2014 Oct 26 2:00s
    -
    13456  {
    -
    13457  nullptr /*zonePolicy*/,
    -
    13458  "MSK" /*format*/,
    -
    13459  16 /*offsetCode*/,
    -
    13460  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13461  -86 /*untilYearTiny*/,
    -
    13462  10 /*untilMonth*/,
    -
    13463  26 /*untilDay*/,
    -
    13464  8 /*untilTimeCode*/,
    -
    13465  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13466  },
    -
    13467  // 3:00 - MSK 2018 Oct 28 2:00s
    -
    13468  {
    -
    13469  nullptr /*zonePolicy*/,
    -
    13470  "MSK" /*format*/,
    -
    13471  12 /*offsetCode*/,
    -
    13472  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13473  -82 /*untilYearTiny*/,
    -
    13474  10 /*untilMonth*/,
    -
    13475  28 /*untilDay*/,
    -
    13476  8 /*untilTimeCode*/,
    -
    13477  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13478  },
    -
    13479  // 4:00 - %z 2020 Dec 27 2:00s
    -
    13480  {
    -
    13481  nullptr /*zonePolicy*/,
    -
    13482  "" /*format*/,
    -
    13483  16 /*offsetCode*/,
    -
    13484  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13485  -80 /*untilYearTiny*/,
    -
    13486  12 /*untilMonth*/,
    -
    13487  27 /*untilDay*/,
    -
    13488  8 /*untilTimeCode*/,
    -
    13489  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    13490  },
    -
    13491  // 3:00 - MSK
    -
    13492  {
    -
    13493  nullptr /*zonePolicy*/,
    -
    13494  "MSK" /*format*/,
    -
    13495  12 /*offsetCode*/,
    -
    13496  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13497  127 /*untilYearTiny*/,
    -
    13498  1 /*untilMonth*/,
    -
    13499  1 /*untilDay*/,
    -
    13500  0 /*untilTimeCode*/,
    -
    13501  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13502  },
    -
    13503 
    -
    13504 };
    -
    13505 
    -
    13506 static const char kZoneNameEurope_Volgograd[] ACE_TIME_PROGMEM = "\x0b" "Volgograd";
    -
    13507 
    -
    13508 const extended::Info::ZoneInfo kZoneEurope_Volgograd ACE_TIME_PROGMEM = {
    -
    13509  kZoneNameEurope_Volgograd /*name*/,
    -
    13510  0x3ed0f389 /*zoneId*/,
    -
    13511  &kZoneContext /*zoneContext*/,
    -
    13512  5 /*numEras*/,
    -
    13513  kZoneEraEurope_Volgograd /*eras*/,
    -
    13514  nullptr /*targetInfo*/,
    -
    13515 };
    -
    13516 
    -
    13517 //---------------------------------------------------------------------------
    -
    13518 // Zone name: Europe/Warsaw
    -
    13519 // Eras: 1
    -
    13520 //---------------------------------------------------------------------------
    -
    13521 
    -
    13522 static const extended::Info::ZoneEra kZoneEraEurope_Warsaw[] ACE_TIME_PROGMEM = {
    -
    13523  // 1:00 EU CE%sT
    -
    13524  {
    -
    13525  &kZonePolicyEU /*zonePolicy*/,
    -
    13526  "CE%T" /*format*/,
    -
    13527  4 /*offsetCode*/,
    -
    13528  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13529  127 /*untilYearTiny*/,
    -
    13530  1 /*untilMonth*/,
    -
    13531  1 /*untilDay*/,
    -
    13532  0 /*untilTimeCode*/,
    -
    13533  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13534  },
    -
    13535 
    -
    13536 };
    -
    13537 
    -
    13538 static const char kZoneNameEurope_Warsaw[] ACE_TIME_PROGMEM = "\x0b" "Warsaw";
    -
    13539 
    -
    13540 const extended::Info::ZoneInfo kZoneEurope_Warsaw ACE_TIME_PROGMEM = {
    -
    13541  kZoneNameEurope_Warsaw /*name*/,
    -
    13542  0x75185c19 /*zoneId*/,
    -
    13543  &kZoneContext /*zoneContext*/,
    -
    13544  1 /*numEras*/,
    -
    13545  kZoneEraEurope_Warsaw /*eras*/,
    -
    13546  nullptr /*targetInfo*/,
    -
    13547 };
    -
    13548 
    -
    13549 //---------------------------------------------------------------------------
    -
    13550 // Zone name: Europe/Zurich
    -
    13551 // Eras: 1
    -
    13552 //---------------------------------------------------------------------------
    -
    13553 
    -
    13554 static const extended::Info::ZoneEra kZoneEraEurope_Zurich[] ACE_TIME_PROGMEM = {
    -
    13555  // 1:00 EU CE%sT
    -
    13556  {
    -
    13557  &kZonePolicyEU /*zonePolicy*/,
    -
    13558  "CE%T" /*format*/,
    -
    13559  4 /*offsetCode*/,
    -
    13560  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13561  127 /*untilYearTiny*/,
    -
    13562  1 /*untilMonth*/,
    -
    13563  1 /*untilDay*/,
    -
    13564  0 /*untilTimeCode*/,
    -
    13565  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13566  },
    -
    13567 
    -
    13568 };
    -
    13569 
    -
    13570 static const char kZoneNameEurope_Zurich[] ACE_TIME_PROGMEM = "\x0b" "Zurich";
    -
    13571 
    -
    13572 const extended::Info::ZoneInfo kZoneEurope_Zurich ACE_TIME_PROGMEM = {
    -
    13573  kZoneNameEurope_Zurich /*name*/,
    -
    13574  0x7d8195b9 /*zoneId*/,
    -
    13575  &kZoneContext /*zoneContext*/,
    -
    13576  1 /*numEras*/,
    -
    13577  kZoneEraEurope_Zurich /*eras*/,
    -
    13578  nullptr /*targetInfo*/,
    -
    13579 };
    -
    13580 
    -
    13581 //---------------------------------------------------------------------------
    -
    13582 // Zone name: Indian/Chagos
    -
    13583 // Eras: 1
    -
    13584 //---------------------------------------------------------------------------
    -
    13585 
    -
    13586 static const extended::Info::ZoneEra kZoneEraIndian_Chagos[] ACE_TIME_PROGMEM = {
    -
    13587  // 6:00 - %z
    -
    13588  {
    -
    13589  nullptr /*zonePolicy*/,
    -
    13590  "" /*format*/,
    -
    13591  24 /*offsetCode*/,
    -
    13592  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13593  127 /*untilYearTiny*/,
    -
    13594  1 /*untilMonth*/,
    -
    13595  1 /*untilDay*/,
    -
    13596  0 /*untilTimeCode*/,
    -
    13597  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13598  },
    -
    13599 
    -
    13600 };
    -
    13601 
    -
    13602 static const char kZoneNameIndian_Chagos[] ACE_TIME_PROGMEM = "\x0c" "Chagos";
    -
    13603 
    -
    13604 const extended::Info::ZoneInfo kZoneIndian_Chagos ACE_TIME_PROGMEM = {
    -
    13605  kZoneNameIndian_Chagos /*name*/,
    -
    13606  0x456f7c3c /*zoneId*/,
    -
    13607  &kZoneContext /*zoneContext*/,
    -
    13608  1 /*numEras*/,
    -
    13609  kZoneEraIndian_Chagos /*eras*/,
    -
    13610  nullptr /*targetInfo*/,
    -
    13611 };
    -
    13612 
    -
    13613 //---------------------------------------------------------------------------
    -
    13614 // Zone name: Indian/Maldives
    -
    13615 // Eras: 1
    -
    13616 //---------------------------------------------------------------------------
    -
    13617 
    -
    13618 static const extended::Info::ZoneEra kZoneEraIndian_Maldives[] ACE_TIME_PROGMEM = {
    -
    13619  // 5:00 - %z
    -
    13620  {
    -
    13621  nullptr /*zonePolicy*/,
    -
    13622  "" /*format*/,
    -
    13623  20 /*offsetCode*/,
    -
    13624  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13625  127 /*untilYearTiny*/,
    -
    13626  1 /*untilMonth*/,
    -
    13627  1 /*untilDay*/,
    -
    13628  0 /*untilTimeCode*/,
    -
    13629  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13630  },
    -
    13631 
    -
    13632 };
    -
    13633 
    -
    13634 static const char kZoneNameIndian_Maldives[] ACE_TIME_PROGMEM = "\x0c" "Maldives";
    -
    13635 
    -
    13636 const extended::Info::ZoneInfo kZoneIndian_Maldives ACE_TIME_PROGMEM = {
    -
    13637  kZoneNameIndian_Maldives /*name*/,
    -
    13638  0x9869681c /*zoneId*/,
    -
    13639  &kZoneContext /*zoneContext*/,
    -
    13640  1 /*numEras*/,
    -
    13641  kZoneEraIndian_Maldives /*eras*/,
    -
    13642  nullptr /*targetInfo*/,
    -
    13643 };
    -
    13644 
    -
    13645 //---------------------------------------------------------------------------
    -
    13646 // Zone name: Indian/Mauritius
    -
    13647 // Eras: 1
    -
    13648 //---------------------------------------------------------------------------
    -
    13649 
    -
    13650 static const extended::Info::ZoneEra kZoneEraIndian_Mauritius[] ACE_TIME_PROGMEM = {
    -
    13651  // 4:00 Mauritius %z
    -
    13652  {
    -
    13653  &kZonePolicyMauritius /*zonePolicy*/,
    -
    13654  "" /*format*/,
    -
    13655  16 /*offsetCode*/,
    -
    13656  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13657  127 /*untilYearTiny*/,
    -
    13658  1 /*untilMonth*/,
    -
    13659  1 /*untilDay*/,
    -
    13660  0 /*untilTimeCode*/,
    -
    13661  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13662  },
    -
    13663 
    -
    13664 };
    -
    13665 
    -
    13666 static const char kZoneNameIndian_Mauritius[] ACE_TIME_PROGMEM = "\x0c" "Mauritius";
    -
    13667 
    -
    13668 const extended::Info::ZoneInfo kZoneIndian_Mauritius ACE_TIME_PROGMEM = {
    -
    13669  kZoneNameIndian_Mauritius /*name*/,
    -
    13670  0x7b09c02a /*zoneId*/,
    -
    13671  &kZoneContext /*zoneContext*/,
    -
    13672  1 /*numEras*/,
    -
    13673  kZoneEraIndian_Mauritius /*eras*/,
    -
    13674  nullptr /*targetInfo*/,
    -
    13675 };
    -
    13676 
    -
    13677 //---------------------------------------------------------------------------
    -
    13678 // Zone name: Pacific/Apia
    -
    13679 // Eras: 2
    -
    13680 //---------------------------------------------------------------------------
    -
    13681 
    -
    13682 static const extended::Info::ZoneEra kZoneEraPacific_Apia[] ACE_TIME_PROGMEM = {
    -
    13683  // -11:00 WS %z 2011 Dec 29 24:00
    -
    13684  {
    -
    13685  &kZonePolicyWS /*zonePolicy*/,
    -
    13686  "" /*format*/,
    -
    13687  -44 /*offsetCode*/,
    -
    13688  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13689  -89 /*untilYearTiny*/,
    -
    13690  12 /*untilMonth*/,
    -
    13691  29 /*untilDay*/,
    -
    13692  96 /*untilTimeCode*/,
    -
    13693  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13694  },
    -
    13695  // 13:00 WS %z
    -
    13696  {
    -
    13697  &kZonePolicyWS /*zonePolicy*/,
    -
    13698  "" /*format*/,
    -
    13699  52 /*offsetCode*/,
    -
    13700  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13701  127 /*untilYearTiny*/,
    -
    13702  1 /*untilMonth*/,
    -
    13703  1 /*untilDay*/,
    -
    13704  0 /*untilTimeCode*/,
    -
    13705  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13706  },
    -
    13707 
    -
    13708 };
    -
    13709 
    -
    13710 static const char kZoneNamePacific_Apia[] ACE_TIME_PROGMEM = "\x0e" "Apia";
    -
    13711 
    -
    13712 const extended::Info::ZoneInfo kZonePacific_Apia ACE_TIME_PROGMEM = {
    -
    13713  kZoneNamePacific_Apia /*name*/,
    -
    13714  0x23359b5e /*zoneId*/,
    -
    13715  &kZoneContext /*zoneContext*/,
    -
    13716  2 /*numEras*/,
    -
    13717  kZoneEraPacific_Apia /*eras*/,
    -
    13718  nullptr /*targetInfo*/,
    -
    13719 };
    -
    13720 
    -
    13721 //---------------------------------------------------------------------------
    -
    13722 // Zone name: Pacific/Auckland
    -
    13723 // Eras: 1
    -
    13724 //---------------------------------------------------------------------------
    -
    13725 
    -
    13726 static const extended::Info::ZoneEra kZoneEraPacific_Auckland[] ACE_TIME_PROGMEM = {
    -
    13727  // 12:00 NZ NZ%sT
    -
    13728  {
    -
    13729  &kZonePolicyNZ /*zonePolicy*/,
    -
    13730  "NZ%T" /*format*/,
    -
    13731  48 /*offsetCode*/,
    -
    13732  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13733  127 /*untilYearTiny*/,
    -
    13734  1 /*untilMonth*/,
    -
    13735  1 /*untilDay*/,
    -
    13736  0 /*untilTimeCode*/,
    -
    13737  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13738  },
    -
    13739 
    -
    13740 };
    -
    13741 
    -
    13742 static const char kZoneNamePacific_Auckland[] ACE_TIME_PROGMEM = "\x0e" "Auckland";
    -
    13743 
    -
    13744 const extended::Info::ZoneInfo kZonePacific_Auckland ACE_TIME_PROGMEM = {
    -
    13745  kZoneNamePacific_Auckland /*name*/,
    -
    13746  0x25062f86 /*zoneId*/,
    -
    13747  &kZoneContext /*zoneContext*/,
    -
    13748  1 /*numEras*/,
    -
    13749  kZoneEraPacific_Auckland /*eras*/,
    -
    13750  nullptr /*targetInfo*/,
    -
    13751 };
    -
    13752 
    -
    13753 //---------------------------------------------------------------------------
    -
    13754 // Zone name: Pacific/Bougainville
    -
    13755 // Eras: 2
    -
    13756 //---------------------------------------------------------------------------
    -
    13757 
    -
    13758 static const extended::Info::ZoneEra kZoneEraPacific_Bougainville[] ACE_TIME_PROGMEM = {
    -
    13759  // 10:00 - %z 2014 Dec 28 2:00
    -
    13760  {
    -
    13761  nullptr /*zonePolicy*/,
    -
    13762  "" /*format*/,
    -
    13763  40 /*offsetCode*/,
    -
    13764  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13765  -86 /*untilYearTiny*/,
    -
    13766  12 /*untilMonth*/,
    -
    13767  28 /*untilDay*/,
    -
    13768  8 /*untilTimeCode*/,
    -
    13769  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13770  },
    -
    13771  // 11:00 - %z
    -
    13772  {
    -
    13773  nullptr /*zonePolicy*/,
    -
    13774  "" /*format*/,
    -
    13775  44 /*offsetCode*/,
    -
    13776  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13777  127 /*untilYearTiny*/,
    -
    13778  1 /*untilMonth*/,
    -
    13779  1 /*untilDay*/,
    -
    13780  0 /*untilTimeCode*/,
    -
    13781  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13782  },
    -
    13783 
    -
    13784 };
    -
    13785 
    -
    13786 static const char kZoneNamePacific_Bougainville[] ACE_TIME_PROGMEM = "\x0e" "Bougainville";
    -
    13787 
    -
    13788 const extended::Info::ZoneInfo kZonePacific_Bougainville ACE_TIME_PROGMEM = {
    -
    13789  kZoneNamePacific_Bougainville /*name*/,
    -
    13790  0x5e10f7a4 /*zoneId*/,
    -
    13791  &kZoneContext /*zoneContext*/,
    -
    13792  2 /*numEras*/,
    -
    13793  kZoneEraPacific_Bougainville /*eras*/,
    -
    13794  nullptr /*targetInfo*/,
    -
    13795 };
    -
    13796 
    -
    13797 //---------------------------------------------------------------------------
    -
    13798 // Zone name: Pacific/Chatham
    -
    13799 // Eras: 1
    -
    13800 //---------------------------------------------------------------------------
    -
    13801 
    -
    13802 static const extended::Info::ZoneEra kZoneEraPacific_Chatham[] ACE_TIME_PROGMEM = {
    -
    13803  // 12:45 Chatham %z
    -
    13804  {
    -
    13805  &kZonePolicyChatham /*zonePolicy*/,
    -
    13806  "" /*format*/,
    -
    13807  51 /*offsetCode*/,
    -
    13808  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13809  127 /*untilYearTiny*/,
    -
    13810  1 /*untilMonth*/,
    -
    13811  1 /*untilDay*/,
    -
    13812  0 /*untilTimeCode*/,
    -
    13813  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13814  },
    -
    13815 
    -
    13816 };
    -
    13817 
    -
    13818 static const char kZoneNamePacific_Chatham[] ACE_TIME_PROGMEM = "\x0e" "Chatham";
    -
    13819 
    -
    13820 const extended::Info::ZoneInfo kZonePacific_Chatham ACE_TIME_PROGMEM = {
    -
    13821  kZoneNamePacific_Chatham /*name*/,
    -
    13822  0x2f0de999 /*zoneId*/,
    -
    13823  &kZoneContext /*zoneContext*/,
    -
    13824  1 /*numEras*/,
    -
    13825  kZoneEraPacific_Chatham /*eras*/,
    -
    13826  nullptr /*targetInfo*/,
    -
    13827 };
    -
    13828 
    -
    13829 //---------------------------------------------------------------------------
    -
    13830 // Zone name: Pacific/Easter
    -
    13831 // Eras: 1
    -
    13832 //---------------------------------------------------------------------------
    -
    13833 
    -
    13834 static const extended::Info::ZoneEra kZoneEraPacific_Easter[] ACE_TIME_PROGMEM = {
    -
    13835  // -6:00 Chile %z
    -
    13836  {
    -
    13837  &kZonePolicyChile /*zonePolicy*/,
    -
    13838  "" /*format*/,
    -
    13839  -24 /*offsetCode*/,
    -
    13840  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13841  127 /*untilYearTiny*/,
    -
    13842  1 /*untilMonth*/,
    -
    13843  1 /*untilDay*/,
    -
    13844  0 /*untilTimeCode*/,
    -
    13845  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13846  },
    -
    13847 
    -
    13848 };
    -
    13849 
    -
    13850 static const char kZoneNamePacific_Easter[] ACE_TIME_PROGMEM = "\x0e" "Easter";
    -
    13851 
    -
    13852 const extended::Info::ZoneInfo kZonePacific_Easter ACE_TIME_PROGMEM = {
    -
    13853  kZoneNamePacific_Easter /*name*/,
    -
    13854  0xcf54f7e7 /*zoneId*/,
    -
    13855  &kZoneContext /*zoneContext*/,
    -
    13856  1 /*numEras*/,
    -
    13857  kZoneEraPacific_Easter /*eras*/,
    -
    13858  nullptr /*targetInfo*/,
    -
    13859 };
    -
    13860 
    -
    13861 //---------------------------------------------------------------------------
    -
    13862 // Zone name: Pacific/Efate
    -
    13863 // Eras: 1
    -
    13864 //---------------------------------------------------------------------------
    -
    13865 
    -
    13866 static const extended::Info::ZoneEra kZoneEraPacific_Efate[] ACE_TIME_PROGMEM = {
    -
    13867  // 11:00 Vanuatu %z
    -
    13868  {
    -
    13869  &kZonePolicyVanuatu /*zonePolicy*/,
    -
    13870  "" /*format*/,
    -
    13871  44 /*offsetCode*/,
    -
    13872  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13873  127 /*untilYearTiny*/,
    -
    13874  1 /*untilMonth*/,
    -
    13875  1 /*untilDay*/,
    -
    13876  0 /*untilTimeCode*/,
    -
    13877  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13878  },
    -
    13879 
    -
    13880 };
    -
    13881 
    -
    13882 static const char kZoneNamePacific_Efate[] ACE_TIME_PROGMEM = "\x0e" "Efate";
    -
    13883 
    -
    13884 const extended::Info::ZoneInfo kZonePacific_Efate ACE_TIME_PROGMEM = {
    -
    13885  kZoneNamePacific_Efate /*name*/,
    -
    13886  0x8a2bce28 /*zoneId*/,
    -
    13887  &kZoneContext /*zoneContext*/,
    -
    13888  1 /*numEras*/,
    -
    13889  kZoneEraPacific_Efate /*eras*/,
    -
    13890  nullptr /*targetInfo*/,
    -
    13891 };
    -
    13892 
    -
    13893 //---------------------------------------------------------------------------
    -
    13894 // Zone name: Pacific/Fakaofo
    -
    13895 // Eras: 2
    -
    13896 //---------------------------------------------------------------------------
    -
    13897 
    -
    13898 static const extended::Info::ZoneEra kZoneEraPacific_Fakaofo[] ACE_TIME_PROGMEM = {
    -
    13899  // -11:00 - %z 2011 Dec 30
    -
    13900  {
    -
    13901  nullptr /*zonePolicy*/,
    -
    13902  "" /*format*/,
    -
    13903  -44 /*offsetCode*/,
    -
    13904  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13905  -89 /*untilYearTiny*/,
    -
    13906  12 /*untilMonth*/,
    -
    13907  30 /*untilDay*/,
    -
    13908  0 /*untilTimeCode*/,
    -
    13909  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13910  },
    -
    13911  // 13:00 - %z
    -
    13912  {
    -
    13913  nullptr /*zonePolicy*/,
    -
    13914  "" /*format*/,
    -
    13915  52 /*offsetCode*/,
    -
    13916  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13917  127 /*untilYearTiny*/,
    -
    13918  1 /*untilMonth*/,
    -
    13919  1 /*untilDay*/,
    -
    13920  0 /*untilTimeCode*/,
    -
    13921  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13922  },
    -
    13923 
    -
    13924 };
    -
    13925 
    -
    13926 static const char kZoneNamePacific_Fakaofo[] ACE_TIME_PROGMEM = "\x0e" "Fakaofo";
    -
    13927 
    -
    13928 const extended::Info::ZoneInfo kZonePacific_Fakaofo ACE_TIME_PROGMEM = {
    -
    13929  kZoneNamePacific_Fakaofo /*name*/,
    -
    13930  0x06532bba /*zoneId*/,
    -
    13931  &kZoneContext /*zoneContext*/,
    -
    13932  2 /*numEras*/,
    -
    13933  kZoneEraPacific_Fakaofo /*eras*/,
    -
    13934  nullptr /*targetInfo*/,
    -
    13935 };
    -
    13936 
    -
    13937 //---------------------------------------------------------------------------
    -
    13938 // Zone name: Pacific/Fiji
    -
    13939 // Eras: 1
    -
    13940 //---------------------------------------------------------------------------
    -
    13941 
    -
    13942 static const extended::Info::ZoneEra kZoneEraPacific_Fiji[] ACE_TIME_PROGMEM = {
    -
    13943  // 12:00 Fiji %z
    -
    13944  {
    -
    13945  &kZonePolicyFiji /*zonePolicy*/,
    -
    13946  "" /*format*/,
    -
    13947  48 /*offsetCode*/,
    -
    13948  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13949  127 /*untilYearTiny*/,
    -
    13950  1 /*untilMonth*/,
    -
    13951  1 /*untilDay*/,
    -
    13952  0 /*untilTimeCode*/,
    -
    13953  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13954  },
    -
    13955 
    -
    13956 };
    -
    13957 
    -
    13958 static const char kZoneNamePacific_Fiji[] ACE_TIME_PROGMEM = "\x0e" "Fiji";
    -
    13959 
    -
    13960 const extended::Info::ZoneInfo kZonePacific_Fiji ACE_TIME_PROGMEM = {
    -
    13961  kZoneNamePacific_Fiji /*name*/,
    -
    13962  0x23383ba5 /*zoneId*/,
    -
    13963  &kZoneContext /*zoneContext*/,
    -
    13964  1 /*numEras*/,
    -
    13965  kZoneEraPacific_Fiji /*eras*/,
    -
    13966  nullptr /*targetInfo*/,
    -
    13967 };
    -
    13968 
    -
    13969 //---------------------------------------------------------------------------
    -
    13970 // Zone name: Pacific/Galapagos
    -
    13971 // Eras: 1
    -
    13972 //---------------------------------------------------------------------------
    -
    13973 
    -
    13974 static const extended::Info::ZoneEra kZoneEraPacific_Galapagos[] ACE_TIME_PROGMEM = {
    -
    13975  // -6:00 Ecuador %z
    -
    13976  {
    -
    13977  &kZonePolicyEcuador /*zonePolicy*/,
    -
    13978  "" /*format*/,
    -
    13979  -24 /*offsetCode*/,
    -
    13980  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    13981  127 /*untilYearTiny*/,
    -
    13982  1 /*untilMonth*/,
    -
    13983  1 /*untilDay*/,
    -
    13984  0 /*untilTimeCode*/,
    -
    13985  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    13986  },
    -
    13987 
    -
    13988 };
    -
    13989 
    -
    13990 static const char kZoneNamePacific_Galapagos[] ACE_TIME_PROGMEM = "\x0e" "Galapagos";
    -
    13991 
    -
    13992 const extended::Info::ZoneInfo kZonePacific_Galapagos ACE_TIME_PROGMEM = {
    -
    13993  kZoneNamePacific_Galapagos /*name*/,
    -
    13994  0xa952f752 /*zoneId*/,
    -
    13995  &kZoneContext /*zoneContext*/,
    -
    13996  1 /*numEras*/,
    -
    13997  kZoneEraPacific_Galapagos /*eras*/,
    -
    13998  nullptr /*targetInfo*/,
    -
    13999 };
    -
    14000 
    -
    14001 //---------------------------------------------------------------------------
    -
    14002 // Zone name: Pacific/Gambier
    -
    14003 // Eras: 1
    -
    14004 //---------------------------------------------------------------------------
    -
    14005 
    -
    14006 static const extended::Info::ZoneEra kZoneEraPacific_Gambier[] ACE_TIME_PROGMEM = {
    -
    14007  // -9:00 - %z
    -
    14008  {
    -
    14009  nullptr /*zonePolicy*/,
    -
    14010  "" /*format*/,
    -
    14011  -36 /*offsetCode*/,
    -
    14012  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14013  127 /*untilYearTiny*/,
    -
    14014  1 /*untilMonth*/,
    -
    14015  1 /*untilDay*/,
    -
    14016  0 /*untilTimeCode*/,
    -
    14017  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14018  },
    -
    14019 
    -
    14020 };
    -
    14021 
    -
    14022 static const char kZoneNamePacific_Gambier[] ACE_TIME_PROGMEM = "\x0e" "Gambier";
    -
    14023 
    -
    14024 const extended::Info::ZoneInfo kZonePacific_Gambier ACE_TIME_PROGMEM = {
    -
    14025  kZoneNamePacific_Gambier /*name*/,
    -
    14026  0x53720c3a /*zoneId*/,
    -
    14027  &kZoneContext /*zoneContext*/,
    -
    14028  1 /*numEras*/,
    -
    14029  kZoneEraPacific_Gambier /*eras*/,
    -
    14030  nullptr /*targetInfo*/,
    -
    14031 };
    -
    14032 
    -
    14033 //---------------------------------------------------------------------------
    -
    14034 // Zone name: Pacific/Guadalcanal
    -
    14035 // Eras: 1
    -
    14036 //---------------------------------------------------------------------------
    -
    14037 
    -
    14038 static const extended::Info::ZoneEra kZoneEraPacific_Guadalcanal[] ACE_TIME_PROGMEM = {
    -
    14039  // 11:00 - %z
    -
    14040  {
    -
    14041  nullptr /*zonePolicy*/,
    -
    14042  "" /*format*/,
    -
    14043  44 /*offsetCode*/,
    -
    14044  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14045  127 /*untilYearTiny*/,
    -
    14046  1 /*untilMonth*/,
    -
    14047  1 /*untilDay*/,
    -
    14048  0 /*untilTimeCode*/,
    -
    14049  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14050  },
    -
    14051 
    -
    14052 };
    -
    14053 
    -
    14054 static const char kZoneNamePacific_Guadalcanal[] ACE_TIME_PROGMEM = "\x0e" "Guadalcanal";
    -
    14055 
    -
    14056 const extended::Info::ZoneInfo kZonePacific_Guadalcanal ACE_TIME_PROGMEM = {
    -
    14057  kZoneNamePacific_Guadalcanal /*name*/,
    -
    14058  0xf4dd25f0 /*zoneId*/,
    -
    14059  &kZoneContext /*zoneContext*/,
    -
    14060  1 /*numEras*/,
    -
    14061  kZoneEraPacific_Guadalcanal /*eras*/,
    -
    14062  nullptr /*targetInfo*/,
    -
    14063 };
    -
    14064 
    -
    14065 //---------------------------------------------------------------------------
    -
    14066 // Zone name: Pacific/Guam
    -
    14067 // Eras: 2
    -
    14068 //---------------------------------------------------------------------------
    -
    14069 
    -
    14070 static const extended::Info::ZoneEra kZoneEraPacific_Guam[] ACE_TIME_PROGMEM = {
    -
    14071  // 10:00 Guam G%sT 2000 Dec 23
    -
    14072  {
    -
    14073  &kZonePolicyGuam /*zonePolicy*/,
    -
    14074  "G%T" /*format*/,
    -
    14075  40 /*offsetCode*/,
    -
    14076  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14077  -100 /*untilYearTiny*/,
    -
    14078  12 /*untilMonth*/,
    -
    14079  23 /*untilDay*/,
    -
    14080  0 /*untilTimeCode*/,
    -
    14081  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14082  },
    -
    14083  // 10:00 - ChST
    -
    14084  {
    -
    14085  nullptr /*zonePolicy*/,
    -
    14086  "ChST" /*format*/,
    -
    14087  40 /*offsetCode*/,
    -
    14088  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14089  127 /*untilYearTiny*/,
    -
    14090  1 /*untilMonth*/,
    -
    14091  1 /*untilDay*/,
    -
    14092  0 /*untilTimeCode*/,
    -
    14093  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14094  },
    -
    14095 
    -
    14096 };
    -
    14097 
    -
    14098 static const char kZoneNamePacific_Guam[] ACE_TIME_PROGMEM = "\x0e" "Guam";
    -
    14099 
    -
    14100 const extended::Info::ZoneInfo kZonePacific_Guam ACE_TIME_PROGMEM = {
    -
    14101  kZoneNamePacific_Guam /*name*/,
    -
    14102  0x2338f9ed /*zoneId*/,
    -
    14103  &kZoneContext /*zoneContext*/,
    -
    14104  2 /*numEras*/,
    -
    14105  kZoneEraPacific_Guam /*eras*/,
    -
    14106  nullptr /*targetInfo*/,
    -
    14107 };
    -
    14108 
    -
    14109 //---------------------------------------------------------------------------
    -
    14110 // Zone name: Pacific/Honolulu
    -
    14111 // Eras: 1
    -
    14112 //---------------------------------------------------------------------------
    -
    14113 
    -
    14114 static const extended::Info::ZoneEra kZoneEraPacific_Honolulu[] ACE_TIME_PROGMEM = {
    -
    14115  // -10:00 - HST
    -
    14116  {
    -
    14117  nullptr /*zonePolicy*/,
    -
    14118  "HST" /*format*/,
    -
    14119  -40 /*offsetCode*/,
    -
    14120  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14121  127 /*untilYearTiny*/,
    -
    14122  1 /*untilMonth*/,
    -
    14123  1 /*untilDay*/,
    -
    14124  0 /*untilTimeCode*/,
    -
    14125  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14126  },
    -
    14127 
    -
    14128 };
    -
    14129 
    -
    14130 static const char kZoneNamePacific_Honolulu[] ACE_TIME_PROGMEM = "\x0e" "Honolulu";
    -
    14131 
    -
    14132 const extended::Info::ZoneInfo kZonePacific_Honolulu ACE_TIME_PROGMEM = {
    -
    14133  kZoneNamePacific_Honolulu /*name*/,
    -
    14134  0xe6e70af9 /*zoneId*/,
    -
    14135  &kZoneContext /*zoneContext*/,
    -
    14136  1 /*numEras*/,
    -
    14137  kZoneEraPacific_Honolulu /*eras*/,
    -
    14138  nullptr /*targetInfo*/,
    -
    14139 };
    -
    14140 
    -
    14141 //---------------------------------------------------------------------------
    -
    14142 // Zone name: Pacific/Kanton
    -
    14143 // Eras: 1
    -
    14144 //---------------------------------------------------------------------------
    -
    14145 
    -
    14146 static const extended::Info::ZoneEra kZoneEraPacific_Kanton[] ACE_TIME_PROGMEM = {
    -
    14147  // 13:00 - %z
    -
    14148  {
    -
    14149  nullptr /*zonePolicy*/,
    -
    14150  "" /*format*/,
    -
    14151  52 /*offsetCode*/,
    -
    14152  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14153  127 /*untilYearTiny*/,
    -
    14154  1 /*untilMonth*/,
    -
    14155  1 /*untilDay*/,
    -
    14156  0 /*untilTimeCode*/,
    -
    14157  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14158  },
    -
    14159 
    -
    14160 };
    -
    14161 
    -
    14162 static const char kZoneNamePacific_Kanton[] ACE_TIME_PROGMEM = "\x0e" "Kanton";
    -
    14163 
    -
    14164 const extended::Info::ZoneInfo kZonePacific_Kanton ACE_TIME_PROGMEM = {
    -
    14165  kZoneNamePacific_Kanton /*name*/,
    -
    14166  0xdd512f0e /*zoneId*/,
    -
    14167  &kZoneContext /*zoneContext*/,
    -
    14168  1 /*numEras*/,
    -
    14169  kZoneEraPacific_Kanton /*eras*/,
    -
    14170  nullptr /*targetInfo*/,
    -
    14171 };
    -
    14172 
    -
    14173 //---------------------------------------------------------------------------
    -
    14174 // Zone name: Pacific/Kiritimati
    -
    14175 // Eras: 1
    -
    14176 //---------------------------------------------------------------------------
    -
    14177 
    -
    14178 static const extended::Info::ZoneEra kZoneEraPacific_Kiritimati[] ACE_TIME_PROGMEM = {
    -
    14179  // 14:00 - %z
    -
    14180  {
    -
    14181  nullptr /*zonePolicy*/,
    -
    14182  "" /*format*/,
    -
    14183  56 /*offsetCode*/,
    -
    14184  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14185  127 /*untilYearTiny*/,
    -
    14186  1 /*untilMonth*/,
    -
    14187  1 /*untilDay*/,
    -
    14188  0 /*untilTimeCode*/,
    -
    14189  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14190  },
    -
    14191 
    -
    14192 };
    -
    14193 
    -
    14194 static const char kZoneNamePacific_Kiritimati[] ACE_TIME_PROGMEM = "\x0e" "Kiritimati";
    -
    14195 
    -
    14196 const extended::Info::ZoneInfo kZonePacific_Kiritimati ACE_TIME_PROGMEM = {
    -
    14197  kZoneNamePacific_Kiritimati /*name*/,
    -
    14198  0x8305073a /*zoneId*/,
    -
    14199  &kZoneContext /*zoneContext*/,
    -
    14200  1 /*numEras*/,
    -
    14201  kZoneEraPacific_Kiritimati /*eras*/,
    -
    14202  nullptr /*targetInfo*/,
    -
    14203 };
    -
    14204 
    -
    14205 //---------------------------------------------------------------------------
    -
    14206 // Zone name: Pacific/Kosrae
    -
    14207 // Eras: 2
    -
    14208 //---------------------------------------------------------------------------
    -
    14209 
    -
    14210 static const extended::Info::ZoneEra kZoneEraPacific_Kosrae[] ACE_TIME_PROGMEM = {
    -
    14211  // 12:00 - %z 1999
    -
    14212  {
    -
    14213  nullptr /*zonePolicy*/,
    -
    14214  "" /*format*/,
    -
    14215  48 /*offsetCode*/,
    -
    14216  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14217  -101 /*untilYearTiny*/,
    -
    14218  1 /*untilMonth*/,
    -
    14219  1 /*untilDay*/,
    -
    14220  0 /*untilTimeCode*/,
    -
    14221  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14222  },
    -
    14223  // 11:00 - %z
    -
    14224  {
    -
    14225  nullptr /*zonePolicy*/,
    -
    14226  "" /*format*/,
    -
    14227  44 /*offsetCode*/,
    -
    14228  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14229  127 /*untilYearTiny*/,
    -
    14230  1 /*untilMonth*/,
    -
    14231  1 /*untilDay*/,
    -
    14232  0 /*untilTimeCode*/,
    -
    14233  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14234  },
    -
    14235 
    -
    14236 };
    -
    14237 
    -
    14238 static const char kZoneNamePacific_Kosrae[] ACE_TIME_PROGMEM = "\x0e" "Kosrae";
    -
    14239 
    -
    14240 const extended::Info::ZoneInfo kZonePacific_Kosrae ACE_TIME_PROGMEM = {
    -
    14241  kZoneNamePacific_Kosrae /*name*/,
    -
    14242  0xde5139a8 /*zoneId*/,
    -
    14243  &kZoneContext /*zoneContext*/,
    -
    14244  2 /*numEras*/,
    -
    14245  kZoneEraPacific_Kosrae /*eras*/,
    -
    14246  nullptr /*targetInfo*/,
    -
    14247 };
    -
    14248 
    -
    14249 //---------------------------------------------------------------------------
    -
    14250 // Zone name: Pacific/Kwajalein
    -
    14251 // Eras: 1
    -
    14252 //---------------------------------------------------------------------------
    -
    14253 
    -
    14254 static const extended::Info::ZoneEra kZoneEraPacific_Kwajalein[] ACE_TIME_PROGMEM = {
    -
    14255  // 12:00 - %z
    -
    14256  {
    -
    14257  nullptr /*zonePolicy*/,
    -
    14258  "" /*format*/,
    -
    14259  48 /*offsetCode*/,
    -
    14260  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14261  127 /*untilYearTiny*/,
    -
    14262  1 /*untilMonth*/,
    -
    14263  1 /*untilDay*/,
    -
    14264  0 /*untilTimeCode*/,
    -
    14265  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14266  },
    -
    14267 
    -
    14268 };
    -
    14269 
    -
    14270 static const char kZoneNamePacific_Kwajalein[] ACE_TIME_PROGMEM = "\x0e" "Kwajalein";
    -
    14271 
    -
    14272 const extended::Info::ZoneInfo kZonePacific_Kwajalein ACE_TIME_PROGMEM = {
    -
    14273  kZoneNamePacific_Kwajalein /*name*/,
    -
    14274  0x8e216759 /*zoneId*/,
    -
    14275  &kZoneContext /*zoneContext*/,
    -
    14276  1 /*numEras*/,
    -
    14277  kZoneEraPacific_Kwajalein /*eras*/,
    -
    14278  nullptr /*targetInfo*/,
    -
    14279 };
    -
    14280 
    -
    14281 //---------------------------------------------------------------------------
    -
    14282 // Zone name: Pacific/Marquesas
    -
    14283 // Eras: 1
    -
    14284 //---------------------------------------------------------------------------
    -
    14285 
    -
    14286 static const extended::Info::ZoneEra kZoneEraPacific_Marquesas[] ACE_TIME_PROGMEM = {
    -
    14287  // -9:30 - %z
    -
    14288  {
    -
    14289  nullptr /*zonePolicy*/,
    -
    14290  "" /*format*/,
    -
    14291  -38 /*offsetCode*/,
    -
    14292  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14293  127 /*untilYearTiny*/,
    -
    14294  1 /*untilMonth*/,
    -
    14295  1 /*untilDay*/,
    -
    14296  0 /*untilTimeCode*/,
    -
    14297  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14298  },
    -
    14299 
    -
    14300 };
    -
    14301 
    -
    14302 static const char kZoneNamePacific_Marquesas[] ACE_TIME_PROGMEM = "\x0e" "Marquesas";
    -
    14303 
    -
    14304 const extended::Info::ZoneInfo kZonePacific_Marquesas ACE_TIME_PROGMEM = {
    -
    14305  kZoneNamePacific_Marquesas /*name*/,
    -
    14306  0x57ca7135 /*zoneId*/,
    -
    14307  &kZoneContext /*zoneContext*/,
    -
    14308  1 /*numEras*/,
    -
    14309  kZoneEraPacific_Marquesas /*eras*/,
    -
    14310  nullptr /*targetInfo*/,
    -
    14311 };
    -
    14312 
    -
    14313 //---------------------------------------------------------------------------
    -
    14314 // Zone name: Pacific/Nauru
    -
    14315 // Eras: 1
    -
    14316 //---------------------------------------------------------------------------
    -
    14317 
    -
    14318 static const extended::Info::ZoneEra kZoneEraPacific_Nauru[] ACE_TIME_PROGMEM = {
    -
    14319  // 12:00 - %z
    -
    14320  {
    -
    14321  nullptr /*zonePolicy*/,
    -
    14322  "" /*format*/,
    -
    14323  48 /*offsetCode*/,
    -
    14324  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14325  127 /*untilYearTiny*/,
    -
    14326  1 /*untilMonth*/,
    -
    14327  1 /*untilDay*/,
    -
    14328  0 /*untilTimeCode*/,
    -
    14329  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14330  },
    -
    14331 
    -
    14332 };
    -
    14333 
    -
    14334 static const char kZoneNamePacific_Nauru[] ACE_TIME_PROGMEM = "\x0e" "Nauru";
    -
    14335 
    -
    14336 const extended::Info::ZoneInfo kZonePacific_Nauru ACE_TIME_PROGMEM = {
    -
    14337  kZoneNamePacific_Nauru /*name*/,
    -
    14338  0x8acc41ae /*zoneId*/,
    -
    14339  &kZoneContext /*zoneContext*/,
    -
    14340  1 /*numEras*/,
    -
    14341  kZoneEraPacific_Nauru /*eras*/,
    -
    14342  nullptr /*targetInfo*/,
    -
    14343 };
    -
    14344 
    -
    14345 //---------------------------------------------------------------------------
    -
    14346 // Zone name: Pacific/Niue
    -
    14347 // Eras: 1
    -
    14348 //---------------------------------------------------------------------------
    -
    14349 
    -
    14350 static const extended::Info::ZoneEra kZoneEraPacific_Niue[] ACE_TIME_PROGMEM = {
    -
    14351  // -11:00 - %z
    -
    14352  {
    -
    14353  nullptr /*zonePolicy*/,
    -
    14354  "" /*format*/,
    -
    14355  -44 /*offsetCode*/,
    -
    14356  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14357  127 /*untilYearTiny*/,
    -
    14358  1 /*untilMonth*/,
    -
    14359  1 /*untilDay*/,
    -
    14360  0 /*untilTimeCode*/,
    -
    14361  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14362  },
    -
    14363 
    -
    14364 };
    -
    14365 
    -
    14366 static const char kZoneNamePacific_Niue[] ACE_TIME_PROGMEM = "\x0e" "Niue";
    -
    14367 
    -
    14368 const extended::Info::ZoneInfo kZonePacific_Niue ACE_TIME_PROGMEM = {
    -
    14369  kZoneNamePacific_Niue /*name*/,
    -
    14370  0x233ca014 /*zoneId*/,
    -
    14371  &kZoneContext /*zoneContext*/,
    -
    14372  1 /*numEras*/,
    -
    14373  kZoneEraPacific_Niue /*eras*/,
    -
    14374  nullptr /*targetInfo*/,
    -
    14375 };
    -
    14376 
    -
    14377 //---------------------------------------------------------------------------
    -
    14378 // Zone name: Pacific/Norfolk
    -
    14379 // Eras: 3
    -
    14380 //---------------------------------------------------------------------------
    -
    14381 
    -
    14382 static const extended::Info::ZoneEra kZoneEraPacific_Norfolk[] ACE_TIME_PROGMEM = {
    -
    14383  // 11:30 - %z 2015 Oct 4 02:00s
    -
    14384  {
    -
    14385  nullptr /*zonePolicy*/,
    -
    14386  "" /*format*/,
    -
    14387  46 /*offsetCode*/,
    -
    14388  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14389  -85 /*untilYearTiny*/,
    -
    14390  10 /*untilMonth*/,
    -
    14391  4 /*untilDay*/,
    -
    14392  8 /*untilTimeCode*/,
    -
    14393  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
    -
    14394  },
    -
    14395  // 11:00 - %z 2019 Jul
    -
    14396  {
    -
    14397  nullptr /*zonePolicy*/,
    -
    14398  "" /*format*/,
    -
    14399  44 /*offsetCode*/,
    -
    14400  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14401  -81 /*untilYearTiny*/,
    -
    14402  7 /*untilMonth*/,
    -
    14403  1 /*untilDay*/,
    -
    14404  0 /*untilTimeCode*/,
    -
    14405  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14406  },
    -
    14407  // 11:00 AN %z
    -
    14408  {
    -
    14409  &kZonePolicyAN /*zonePolicy*/,
    -
    14410  "" /*format*/,
    -
    14411  44 /*offsetCode*/,
    -
    14412  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14413  127 /*untilYearTiny*/,
    -
    14414  1 /*untilMonth*/,
    -
    14415  1 /*untilDay*/,
    -
    14416  0 /*untilTimeCode*/,
    -
    14417  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14418  },
    -
    14419 
    -
    14420 };
    -
    14421 
    -
    14422 static const char kZoneNamePacific_Norfolk[] ACE_TIME_PROGMEM = "\x0e" "Norfolk";
    -
    14423 
    -
    14424 const extended::Info::ZoneInfo kZonePacific_Norfolk ACE_TIME_PROGMEM = {
    -
    14425  kZoneNamePacific_Norfolk /*name*/,
    -
    14426  0x8f4eb4be /*zoneId*/,
    -
    14427  &kZoneContext /*zoneContext*/,
    -
    14428  3 /*numEras*/,
    -
    14429  kZoneEraPacific_Norfolk /*eras*/,
    -
    14430  nullptr /*targetInfo*/,
    -
    14431 };
    -
    14432 
    -
    14433 //---------------------------------------------------------------------------
    -
    14434 // Zone name: Pacific/Noumea
    -
    14435 // Eras: 1
    -
    14436 //---------------------------------------------------------------------------
    -
    14437 
    -
    14438 static const extended::Info::ZoneEra kZoneEraPacific_Noumea[] ACE_TIME_PROGMEM = {
    -
    14439  // 11:00 NC %z
    -
    14440  {
    -
    14441  &kZonePolicyNC /*zonePolicy*/,
    -
    14442  "" /*format*/,
    -
    14443  44 /*offsetCode*/,
    -
    14444  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14445  127 /*untilYearTiny*/,
    -
    14446  1 /*untilMonth*/,
    -
    14447  1 /*untilDay*/,
    -
    14448  0 /*untilTimeCode*/,
    -
    14449  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14450  },
    -
    14451 
    -
    14452 };
    -
    14453 
    -
    14454 static const char kZoneNamePacific_Noumea[] ACE_TIME_PROGMEM = "\x0e" "Noumea";
    -
    14455 
    -
    14456 const extended::Info::ZoneInfo kZonePacific_Noumea ACE_TIME_PROGMEM = {
    -
    14457  kZoneNamePacific_Noumea /*name*/,
    -
    14458  0xe551b788 /*zoneId*/,
    -
    14459  &kZoneContext /*zoneContext*/,
    -
    14460  1 /*numEras*/,
    -
    14461  kZoneEraPacific_Noumea /*eras*/,
    -
    14462  nullptr /*targetInfo*/,
    -
    14463 };
    -
    14464 
    -
    14465 //---------------------------------------------------------------------------
    -
    14466 // Zone name: Pacific/Pago_Pago
    -
    14467 // Eras: 1
    -
    14468 //---------------------------------------------------------------------------
    -
    14469 
    -
    14470 static const extended::Info::ZoneEra kZoneEraPacific_Pago_Pago[] ACE_TIME_PROGMEM = {
    -
    14471  // -11:00 - SST
    -
    14472  {
    -
    14473  nullptr /*zonePolicy*/,
    -
    14474  "SST" /*format*/,
    -
    14475  -44 /*offsetCode*/,
    -
    14476  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14477  127 /*untilYearTiny*/,
    -
    14478  1 /*untilMonth*/,
    -
    14479  1 /*untilDay*/,
    -
    14480  0 /*untilTimeCode*/,
    -
    14481  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14482  },
    -
    14483 
    -
    14484 };
    -
    14485 
    -
    14486 static const char kZoneNamePacific_Pago_Pago[] ACE_TIME_PROGMEM = "\x0e" "Pago_Pago";
    -
    14487 
    -
    14488 const extended::Info::ZoneInfo kZonePacific_Pago_Pago ACE_TIME_PROGMEM = {
    -
    14489  kZoneNamePacific_Pago_Pago /*name*/,
    -
    14490  0x603aebd0 /*zoneId*/,
    -
    14491  &kZoneContext /*zoneContext*/,
    -
    14492  1 /*numEras*/,
    -
    14493  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    14494  nullptr /*targetInfo*/,
    -
    14495 };
    -
    14496 
    -
    14497 //---------------------------------------------------------------------------
    -
    14498 // Zone name: Pacific/Palau
    -
    14499 // Eras: 1
    -
    14500 //---------------------------------------------------------------------------
    -
    14501 
    -
    14502 static const extended::Info::ZoneEra kZoneEraPacific_Palau[] ACE_TIME_PROGMEM = {
    -
    14503  // 9:00 - %z
    -
    14504  {
    -
    14505  nullptr /*zonePolicy*/,
    -
    14506  "" /*format*/,
    -
    14507  36 /*offsetCode*/,
    -
    14508  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14509  127 /*untilYearTiny*/,
    -
    14510  1 /*untilMonth*/,
    -
    14511  1 /*untilDay*/,
    -
    14512  0 /*untilTimeCode*/,
    -
    14513  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14514  },
    -
    14515 
    -
    14516 };
    -
    14517 
    -
    14518 static const char kZoneNamePacific_Palau[] ACE_TIME_PROGMEM = "\x0e" "Palau";
    -
    14519 
    -
    14520 const extended::Info::ZoneInfo kZonePacific_Palau ACE_TIME_PROGMEM = {
    -
    14521  kZoneNamePacific_Palau /*name*/,
    -
    14522  0x8af04a36 /*zoneId*/,
    -
    14523  &kZoneContext /*zoneContext*/,
    -
    14524  1 /*numEras*/,
    -
    14525  kZoneEraPacific_Palau /*eras*/,
    -
    14526  nullptr /*targetInfo*/,
    -
    14527 };
    -
    14528 
    -
    14529 //---------------------------------------------------------------------------
    -
    14530 // Zone name: Pacific/Pitcairn
    -
    14531 // Eras: 1
    -
    14532 //---------------------------------------------------------------------------
    -
    14533 
    -
    14534 static const extended::Info::ZoneEra kZoneEraPacific_Pitcairn[] ACE_TIME_PROGMEM = {
    -
    14535  // -8:00 - %z
    -
    14536  {
    -
    14537  nullptr /*zonePolicy*/,
    -
    14538  "" /*format*/,
    -
    14539  -32 /*offsetCode*/,
    -
    14540  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14541  127 /*untilYearTiny*/,
    -
    14542  1 /*untilMonth*/,
    -
    14543  1 /*untilDay*/,
    -
    14544  0 /*untilTimeCode*/,
    -
    14545  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14546  },
    -
    14547 
    -
    14548 };
    -
    14549 
    -
    14550 static const char kZoneNamePacific_Pitcairn[] ACE_TIME_PROGMEM = "\x0e" "Pitcairn";
    -
    14551 
    -
    14552 const extended::Info::ZoneInfo kZonePacific_Pitcairn ACE_TIME_PROGMEM = {
    -
    14553  kZoneNamePacific_Pitcairn /*name*/,
    -
    14554  0x8837d8bd /*zoneId*/,
    -
    14555  &kZoneContext /*zoneContext*/,
    -
    14556  1 /*numEras*/,
    -
    14557  kZoneEraPacific_Pitcairn /*eras*/,
    -
    14558  nullptr /*targetInfo*/,
    -
    14559 };
    -
    14560 
    -
    14561 //---------------------------------------------------------------------------
    -
    14562 // Zone name: Pacific/Port_Moresby
    -
    14563 // Eras: 1
    -
    14564 //---------------------------------------------------------------------------
    -
    14565 
    -
    14566 static const extended::Info::ZoneEra kZoneEraPacific_Port_Moresby[] ACE_TIME_PROGMEM = {
    -
    14567  // 10:00 - %z
    -
    14568  {
    -
    14569  nullptr /*zonePolicy*/,
    -
    14570  "" /*format*/,
    -
    14571  40 /*offsetCode*/,
    -
    14572  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14573  127 /*untilYearTiny*/,
    -
    14574  1 /*untilMonth*/,
    -
    14575  1 /*untilDay*/,
    -
    14576  0 /*untilTimeCode*/,
    -
    14577  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14578  },
    -
    14579 
    -
    14580 };
    -
    14581 
    -
    14582 static const char kZoneNamePacific_Port_Moresby[] ACE_TIME_PROGMEM = "\x0e" "Port_Moresby";
    -
    14583 
    -
    14584 const extended::Info::ZoneInfo kZonePacific_Port_Moresby ACE_TIME_PROGMEM = {
    -
    14585  kZoneNamePacific_Port_Moresby /*name*/,
    -
    14586  0xa7ba7f68 /*zoneId*/,
    -
    14587  &kZoneContext /*zoneContext*/,
    -
    14588  1 /*numEras*/,
    -
    14589  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    14590  nullptr /*targetInfo*/,
    -
    14591 };
    -
    14592 
    -
    14593 //---------------------------------------------------------------------------
    -
    14594 // Zone name: Pacific/Rarotonga
    -
    14595 // Eras: 1
    -
    14596 //---------------------------------------------------------------------------
    -
    14597 
    -
    14598 static const extended::Info::ZoneEra kZoneEraPacific_Rarotonga[] ACE_TIME_PROGMEM = {
    -
    14599  // -10:00 Cook %z
    -
    14600  {
    -
    14601  &kZonePolicyCook /*zonePolicy*/,
    -
    14602  "" /*format*/,
    -
    14603  -40 /*offsetCode*/,
    -
    14604  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14605  127 /*untilYearTiny*/,
    -
    14606  1 /*untilMonth*/,
    -
    14607  1 /*untilDay*/,
    -
    14608  0 /*untilTimeCode*/,
    -
    14609  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14610  },
    -
    14611 
    -
    14612 };
    -
    14613 
    -
    14614 static const char kZoneNamePacific_Rarotonga[] ACE_TIME_PROGMEM = "\x0e" "Rarotonga";
    -
    14615 
    -
    14616 const extended::Info::ZoneInfo kZonePacific_Rarotonga ACE_TIME_PROGMEM = {
    -
    14617  kZoneNamePacific_Rarotonga /*name*/,
    -
    14618  0x9981a3b0 /*zoneId*/,
    -
    14619  &kZoneContext /*zoneContext*/,
    -
    14620  1 /*numEras*/,
    -
    14621  kZoneEraPacific_Rarotonga /*eras*/,
    -
    14622  nullptr /*targetInfo*/,
    -
    14623 };
    -
    14624 
    -
    14625 //---------------------------------------------------------------------------
    -
    14626 // Zone name: Pacific/Tahiti
    -
    14627 // Eras: 1
    -
    14628 //---------------------------------------------------------------------------
    -
    14629 
    -
    14630 static const extended::Info::ZoneEra kZoneEraPacific_Tahiti[] ACE_TIME_PROGMEM = {
    -
    14631  // -10:00 - %z
    -
    14632  {
    -
    14633  nullptr /*zonePolicy*/,
    -
    14634  "" /*format*/,
    -
    14635  -40 /*offsetCode*/,
    -
    14636  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14637  127 /*untilYearTiny*/,
    -
    14638  1 /*untilMonth*/,
    -
    14639  1 /*untilDay*/,
    -
    14640  0 /*untilTimeCode*/,
    -
    14641  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14642  },
    -
    14643 
    -
    14644 };
    -
    14645 
    -
    14646 static const char kZoneNamePacific_Tahiti[] ACE_TIME_PROGMEM = "\x0e" "Tahiti";
    -
    14647 
    -
    14648 const extended::Info::ZoneInfo kZonePacific_Tahiti ACE_TIME_PROGMEM = {
    -
    14649  kZoneNamePacific_Tahiti /*name*/,
    -
    14650  0xf24c2446 /*zoneId*/,
    -
    14651  &kZoneContext /*zoneContext*/,
    -
    14652  1 /*numEras*/,
    -
    14653  kZoneEraPacific_Tahiti /*eras*/,
    -
    14654  nullptr /*targetInfo*/,
    -
    14655 };
    -
    14656 
    -
    14657 //---------------------------------------------------------------------------
    -
    14658 // Zone name: Pacific/Tarawa
    -
    14659 // Eras: 1
    -
    14660 //---------------------------------------------------------------------------
    -
    14661 
    -
    14662 static const extended::Info::ZoneEra kZoneEraPacific_Tarawa[] ACE_TIME_PROGMEM = {
    -
    14663  // 12:00 - %z
    -
    14664  {
    -
    14665  nullptr /*zonePolicy*/,
    -
    14666  "" /*format*/,
    -
    14667  48 /*offsetCode*/,
    -
    14668  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14669  127 /*untilYearTiny*/,
    -
    14670  1 /*untilMonth*/,
    -
    14671  1 /*untilDay*/,
    -
    14672  0 /*untilTimeCode*/,
    -
    14673  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14674  },
    -
    14675 
    -
    14676 };
    -
    14677 
    -
    14678 static const char kZoneNamePacific_Tarawa[] ACE_TIME_PROGMEM = "\x0e" "Tarawa";
    -
    14679 
    -
    14680 const extended::Info::ZoneInfo kZonePacific_Tarawa ACE_TIME_PROGMEM = {
    -
    14681  kZoneNamePacific_Tarawa /*name*/,
    -
    14682  0xf2517e63 /*zoneId*/,
    -
    14683  &kZoneContext /*zoneContext*/,
    -
    14684  1 /*numEras*/,
    -
    14685  kZoneEraPacific_Tarawa /*eras*/,
    -
    14686  nullptr /*targetInfo*/,
    -
    14687 };
    -
    14688 
    -
    14689 //---------------------------------------------------------------------------
    -
    14690 // Zone name: Pacific/Tongatapu
    -
    14691 // Eras: 2
    -
    14692 //---------------------------------------------------------------------------
    -
    14693 
    -
    14694 static const extended::Info::ZoneEra kZoneEraPacific_Tongatapu[] ACE_TIME_PROGMEM = {
    -
    14695  // 13:00 - %z 1999
    -
    14696  {
    -
    14697  nullptr /*zonePolicy*/,
    -
    14698  "" /*format*/,
    -
    14699  52 /*offsetCode*/,
    -
    14700  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14701  -101 /*untilYearTiny*/,
    -
    14702  1 /*untilMonth*/,
    -
    14703  1 /*untilDay*/,
    -
    14704  0 /*untilTimeCode*/,
    -
    14705  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14706  },
    -
    14707  // 13:00 Tonga %z
    -
    14708  {
    -
    14709  &kZonePolicyTonga /*zonePolicy*/,
    -
    14710  "" /*format*/,
    -
    14711  52 /*offsetCode*/,
    -
    14712  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
    -
    14713  127 /*untilYearTiny*/,
    -
    14714  1 /*untilMonth*/,
    -
    14715  1 /*untilDay*/,
    -
    14716  0 /*untilTimeCode*/,
    -
    14717  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
    -
    14718  },
    -
    14719 
    -
    14720 };
    -
    14721 
    -
    14722 static const char kZoneNamePacific_Tongatapu[] ACE_TIME_PROGMEM = "\x0e" "Tongatapu";
    -
    14723 
    -
    14724 const extended::Info::ZoneInfo kZonePacific_Tongatapu ACE_TIME_PROGMEM = {
    -
    14725  kZoneNamePacific_Tongatapu /*name*/,
    -
    14726  0x262ca836 /*zoneId*/,
    -
    14727  &kZoneContext /*zoneContext*/,
    -
    14728  2 /*numEras*/,
    -
    14729  kZoneEraPacific_Tongatapu /*eras*/,
    -
    14730  nullptr /*targetInfo*/,
    -
    14731 };
    -
    14732 
    -
    14733 
    -
    14734 
    -
    14735 //---------------------------------------------------------------------------
    -
    14736 // Links: 257
    -
    14737 //---------------------------------------------------------------------------
    -
    14738 
    -
    14739 //---------------------------------------------------------------------------
    -
    14740 // Link name: Africa/Accra -> Africa/Abidjan
    -
    14741 //---------------------------------------------------------------------------
    -
    14742 
    -
    14743 static const char kZoneNameAfrica_Accra[] ACE_TIME_PROGMEM = "\x01" "Accra";
    -
    14744 
    -
    14745 const extended::Info::ZoneInfo kZoneAfrica_Accra ACE_TIME_PROGMEM = {
    -
    14746  kZoneNameAfrica_Accra /*name*/,
    -
    14747  0x77d5b054 /*zoneId*/,
    -
    14748  &kZoneContext /*zoneContext*/,
    -
    14749  1 /*numEras*/,
    -
    14750  kZoneEraAfrica_Abidjan /*eras*/,
    -
    14751  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    14752 };
    -
    14753 
    -
    14754 //---------------------------------------------------------------------------
    -
    14755 // Link name: Africa/Addis_Ababa -> Africa/Nairobi
    -
    14756 //---------------------------------------------------------------------------
    -
    14757 
    -
    14758 static const char kZoneNameAfrica_Addis_Ababa[] ACE_TIME_PROGMEM = "\x01" "Addis_Ababa";
    -
    14759 
    -
    14760 const extended::Info::ZoneInfo kZoneAfrica_Addis_Ababa ACE_TIME_PROGMEM = {
    -
    14761  kZoneNameAfrica_Addis_Ababa /*name*/,
    -
    14762  0x05ae1e65 /*zoneId*/,
    -
    14763  &kZoneContext /*zoneContext*/,
    -
    14764  1 /*numEras*/,
    -
    14765  kZoneEraAfrica_Nairobi /*eras*/,
    -
    14766  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    14767 };
    -
    14768 
    -
    14769 //---------------------------------------------------------------------------
    -
    14770 // Link name: Africa/Asmara -> Africa/Nairobi
    -
    14771 //---------------------------------------------------------------------------
    -
    14772 
    -
    14773 static const char kZoneNameAfrica_Asmara[] ACE_TIME_PROGMEM = "\x01" "Asmara";
    -
    14774 
    -
    14775 const extended::Info::ZoneInfo kZoneAfrica_Asmara ACE_TIME_PROGMEM = {
    -
    14776  kZoneNameAfrica_Asmara /*name*/,
    -
    14777  0x73b278ef /*zoneId*/,
    -
    14778  &kZoneContext /*zoneContext*/,
    -
    14779  1 /*numEras*/,
    -
    14780  kZoneEraAfrica_Nairobi /*eras*/,
    -
    14781  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    14782 };
    -
    14783 
    -
    14784 //---------------------------------------------------------------------------
    -
    14785 // Link name: Africa/Asmera -> Africa/Nairobi
    -
    14786 //---------------------------------------------------------------------------
    -
    14787 
    -
    14788 static const char kZoneNameAfrica_Asmera[] ACE_TIME_PROGMEM = "\x01" "Asmera";
    -
    14789 
    -
    14790 const extended::Info::ZoneInfo kZoneAfrica_Asmera ACE_TIME_PROGMEM = {
    -
    14791  kZoneNameAfrica_Asmera /*name*/,
    -
    14792  0x73b289f3 /*zoneId*/,
    -
    14793  &kZoneContext /*zoneContext*/,
    -
    14794  1 /*numEras*/,
    -
    14795  kZoneEraAfrica_Nairobi /*eras*/,
    -
    14796  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    14797 };
    -
    14798 
    -
    14799 //---------------------------------------------------------------------------
    -
    14800 // Link name: Africa/Bamako -> Africa/Abidjan
    -
    14801 //---------------------------------------------------------------------------
    -
    14802 
    -
    14803 static const char kZoneNameAfrica_Bamako[] ACE_TIME_PROGMEM = "\x01" "Bamako";
    -
    14804 
    -
    14805 const extended::Info::ZoneInfo kZoneAfrica_Bamako ACE_TIME_PROGMEM = {
    -
    14806  kZoneNameAfrica_Bamako /*name*/,
    -
    14807  0x74c1e7a5 /*zoneId*/,
    -
    14808  &kZoneContext /*zoneContext*/,
    -
    14809  1 /*numEras*/,
    -
    14810  kZoneEraAfrica_Abidjan /*eras*/,
    -
    14811  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    14812 };
    -
    14813 
    -
    14814 //---------------------------------------------------------------------------
    -
    14815 // Link name: Africa/Bangui -> Africa/Lagos
    -
    14816 //---------------------------------------------------------------------------
    -
    14817 
    -
    14818 static const char kZoneNameAfrica_Bangui[] ACE_TIME_PROGMEM = "\x01" "Bangui";
    -
    14819 
    -
    14820 const extended::Info::ZoneInfo kZoneAfrica_Bangui ACE_TIME_PROGMEM = {
    -
    14821  kZoneNameAfrica_Bangui /*name*/,
    -
    14822  0x74c28ed0 /*zoneId*/,
    -
    14823  &kZoneContext /*zoneContext*/,
    -
    14824  1 /*numEras*/,
    -
    14825  kZoneEraAfrica_Lagos /*eras*/,
    -
    14826  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    14827 };
    -
    14828 
    -
    14829 //---------------------------------------------------------------------------
    -
    14830 // Link name: Africa/Banjul -> Africa/Abidjan
    -
    14831 //---------------------------------------------------------------------------
    -
    14832 
    -
    14833 static const char kZoneNameAfrica_Banjul[] ACE_TIME_PROGMEM = "\x01" "Banjul";
    -
    14834 
    -
    14835 const extended::Info::ZoneInfo kZoneAfrica_Banjul ACE_TIME_PROGMEM = {
    -
    14836  kZoneNameAfrica_Banjul /*name*/,
    -
    14837  0x74c29b96 /*zoneId*/,
    -
    14838  &kZoneContext /*zoneContext*/,
    -
    14839  1 /*numEras*/,
    -
    14840  kZoneEraAfrica_Abidjan /*eras*/,
    -
    14841  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    14842 };
    -
    14843 
    -
    14844 //---------------------------------------------------------------------------
    -
    14845 // Link name: Africa/Blantyre -> Africa/Maputo
    -
    14846 //---------------------------------------------------------------------------
    -
    14847 
    -
    14848 static const char kZoneNameAfrica_Blantyre[] ACE_TIME_PROGMEM = "\x01" "Blantyre";
    -
    14849 
    -
    14850 const extended::Info::ZoneInfo kZoneAfrica_Blantyre ACE_TIME_PROGMEM = {
    -
    14851  kZoneNameAfrica_Blantyre /*name*/,
    -
    14852  0xe08d813b /*zoneId*/,
    -
    14853  &kZoneContext /*zoneContext*/,
    -
    14854  1 /*numEras*/,
    -
    14855  kZoneEraAfrica_Maputo /*eras*/,
    -
    14856  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    14857 };
    -
    14858 
    -
    14859 //---------------------------------------------------------------------------
    -
    14860 // Link name: Africa/Brazzaville -> Africa/Lagos
    -
    14861 //---------------------------------------------------------------------------
    -
    14862 
    -
    14863 static const char kZoneNameAfrica_Brazzaville[] ACE_TIME_PROGMEM = "\x01" "Brazzaville";
    -
    14864 
    -
    14865 const extended::Info::ZoneInfo kZoneAfrica_Brazzaville ACE_TIME_PROGMEM = {
    -
    14866  kZoneNameAfrica_Brazzaville /*name*/,
    -
    14867  0x39cda760 /*zoneId*/,
    -
    14868  &kZoneContext /*zoneContext*/,
    -
    14869  1 /*numEras*/,
    -
    14870  kZoneEraAfrica_Lagos /*eras*/,
    -
    14871  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    14872 };
    -
    14873 
    -
    14874 //---------------------------------------------------------------------------
    -
    14875 // Link name: Africa/Bujumbura -> Africa/Maputo
    -
    14876 //---------------------------------------------------------------------------
    -
    14877 
    -
    14878 static const char kZoneNameAfrica_Bujumbura[] ACE_TIME_PROGMEM = "\x01" "Bujumbura";
    -
    14879 
    -
    14880 const extended::Info::ZoneInfo kZoneAfrica_Bujumbura ACE_TIME_PROGMEM = {
    -
    14881  kZoneNameAfrica_Bujumbura /*name*/,
    -
    14882  0x05232a47 /*zoneId*/,
    -
    14883  &kZoneContext /*zoneContext*/,
    -
    14884  1 /*numEras*/,
    -
    14885  kZoneEraAfrica_Maputo /*eras*/,
    -
    14886  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    14887 };
    -
    14888 
    -
    14889 //---------------------------------------------------------------------------
    -
    14890 // Link name: Africa/Conakry -> Africa/Abidjan
    -
    14891 //---------------------------------------------------------------------------
    -
    14892 
    -
    14893 static const char kZoneNameAfrica_Conakry[] ACE_TIME_PROGMEM = "\x01" "Conakry";
    -
    14894 
    -
    14895 const extended::Info::ZoneInfo kZoneAfrica_Conakry ACE_TIME_PROGMEM = {
    -
    14896  kZoneNameAfrica_Conakry /*name*/,
    -
    14897  0x7ab36b31 /*zoneId*/,
    -
    14898  &kZoneContext /*zoneContext*/,
    -
    14899  1 /*numEras*/,
    -
    14900  kZoneEraAfrica_Abidjan /*eras*/,
    -
    14901  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    14902 };
    -
    14903 
    -
    14904 //---------------------------------------------------------------------------
    -
    14905 // Link name: Africa/Dakar -> Africa/Abidjan
    -
    14906 //---------------------------------------------------------------------------
    -
    14907 
    -
    14908 static const char kZoneNameAfrica_Dakar[] ACE_TIME_PROGMEM = "\x01" "Dakar";
    -
    14909 
    -
    14910 const extended::Info::ZoneInfo kZoneAfrica_Dakar ACE_TIME_PROGMEM = {
    -
    14911  kZoneNameAfrica_Dakar /*name*/,
    -
    14912  0x780b00fd /*zoneId*/,
    -
    14913  &kZoneContext /*zoneContext*/,
    -
    14914  1 /*numEras*/,
    -
    14915  kZoneEraAfrica_Abidjan /*eras*/,
    -
    14916  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    14917 };
    -
    14918 
    -
    14919 //---------------------------------------------------------------------------
    -
    14920 // Link name: Africa/Dar_es_Salaam -> Africa/Nairobi
    -
    14921 //---------------------------------------------------------------------------
    -
    14922 
    -
    14923 static const char kZoneNameAfrica_Dar_es_Salaam[] ACE_TIME_PROGMEM = "\x01" "Dar_es_Salaam";
    -
    14924 
    -
    14925 const extended::Info::ZoneInfo kZoneAfrica_Dar_es_Salaam ACE_TIME_PROGMEM = {
    -
    14926  kZoneNameAfrica_Dar_es_Salaam /*name*/,
    -
    14927  0xa04c47b6 /*zoneId*/,
    -
    14928  &kZoneContext /*zoneContext*/,
    -
    14929  1 /*numEras*/,
    -
    14930  kZoneEraAfrica_Nairobi /*eras*/,
    -
    14931  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    14932 };
    -
    14933 
    -
    14934 //---------------------------------------------------------------------------
    -
    14935 // Link name: Africa/Djibouti -> Africa/Nairobi
    -
    14936 //---------------------------------------------------------------------------
    -
    14937 
    -
    14938 static const char kZoneNameAfrica_Djibouti[] ACE_TIME_PROGMEM = "\x01" "Djibouti";
    -
    14939 
    -
    14940 const extended::Info::ZoneInfo kZoneAfrica_Djibouti ACE_TIME_PROGMEM = {
    -
    14941  kZoneNameAfrica_Djibouti /*name*/,
    -
    14942  0x30ea01d4 /*zoneId*/,
    -
    14943  &kZoneContext /*zoneContext*/,
    -
    14944  1 /*numEras*/,
    -
    14945  kZoneEraAfrica_Nairobi /*eras*/,
    -
    14946  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    14947 };
    -
    14948 
    -
    14949 //---------------------------------------------------------------------------
    -
    14950 // Link name: Africa/Douala -> Africa/Lagos
    -
    14951 //---------------------------------------------------------------------------
    -
    14952 
    -
    14953 static const char kZoneNameAfrica_Douala[] ACE_TIME_PROGMEM = "\x01" "Douala";
    -
    14954 
    -
    14955 const extended::Info::ZoneInfo kZoneAfrica_Douala ACE_TIME_PROGMEM = {
    -
    14956  kZoneNameAfrica_Douala /*name*/,
    -
    14957  0x7a6df310 /*zoneId*/,
    -
    14958  &kZoneContext /*zoneContext*/,
    -
    14959  1 /*numEras*/,
    -
    14960  kZoneEraAfrica_Lagos /*eras*/,
    -
    14961  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    14962 };
    -
    14963 
    -
    14964 //---------------------------------------------------------------------------
    -
    14965 // Link name: Africa/Freetown -> Africa/Abidjan
    -
    14966 //---------------------------------------------------------------------------
    -
    14967 
    -
    14968 static const char kZoneNameAfrica_Freetown[] ACE_TIME_PROGMEM = "\x01" "Freetown";
    -
    14969 
    -
    14970 const extended::Info::ZoneInfo kZoneAfrica_Freetown ACE_TIME_PROGMEM = {
    -
    14971  kZoneNameAfrica_Freetown /*name*/,
    -
    14972  0x6823dd64 /*zoneId*/,
    -
    14973  &kZoneContext /*zoneContext*/,
    -
    14974  1 /*numEras*/,
    -
    14975  kZoneEraAfrica_Abidjan /*eras*/,
    -
    14976  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    14977 };
    -
    14978 
    -
    14979 //---------------------------------------------------------------------------
    -
    14980 // Link name: Africa/Gaborone -> Africa/Maputo
    -
    14981 //---------------------------------------------------------------------------
    -
    14982 
    -
    14983 static const char kZoneNameAfrica_Gaborone[] ACE_TIME_PROGMEM = "\x01" "Gaborone";
    -
    14984 
    -
    14985 const extended::Info::ZoneInfo kZoneAfrica_Gaborone ACE_TIME_PROGMEM = {
    -
    14986  kZoneNameAfrica_Gaborone /*name*/,
    -
    14987  0x317c0aa7 /*zoneId*/,
    -
    14988  &kZoneContext /*zoneContext*/,
    -
    14989  1 /*numEras*/,
    -
    14990  kZoneEraAfrica_Maputo /*eras*/,
    -
    14991  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    14992 };
    -
    14993 
    -
    14994 //---------------------------------------------------------------------------
    -
    14995 // Link name: Africa/Harare -> Africa/Maputo
    -
    14996 //---------------------------------------------------------------------------
    -
    14997 
    -
    14998 static const char kZoneNameAfrica_Harare[] ACE_TIME_PROGMEM = "\x01" "Harare";
    -
    14999 
    -
    15000 const extended::Info::ZoneInfo kZoneAfrica_Harare ACE_TIME_PROGMEM = {
    -
    15001  kZoneNameAfrica_Harare /*name*/,
    -
    15002  0x82c39a2d /*zoneId*/,
    -
    15003  &kZoneContext /*zoneContext*/,
    -
    15004  1 /*numEras*/,
    -
    15005  kZoneEraAfrica_Maputo /*eras*/,
    -
    15006  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    15007 };
    -
    15008 
    -
    15009 //---------------------------------------------------------------------------
    -
    15010 // Link name: Africa/Kampala -> Africa/Nairobi
    -
    15011 //---------------------------------------------------------------------------
    -
    15012 
    -
    15013 static const char kZoneNameAfrica_Kampala[] ACE_TIME_PROGMEM = "\x01" "Kampala";
    -
    15014 
    -
    15015 const extended::Info::ZoneInfo kZoneAfrica_Kampala ACE_TIME_PROGMEM = {
    -
    15016  kZoneNameAfrica_Kampala /*name*/,
    -
    15017  0xc1d30e31 /*zoneId*/,
    -
    15018  &kZoneContext /*zoneContext*/,
    -
    15019  1 /*numEras*/,
    -
    15020  kZoneEraAfrica_Nairobi /*eras*/,
    -
    15021  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    15022 };
    -
    15023 
    -
    15024 //---------------------------------------------------------------------------
    -
    15025 // Link name: Africa/Kigali -> Africa/Maputo
    -
    15026 //---------------------------------------------------------------------------
    -
    15027 
    -
    15028 static const char kZoneNameAfrica_Kigali[] ACE_TIME_PROGMEM = "\x01" "Kigali";
    -
    15029 
    -
    15030 const extended::Info::ZoneInfo kZoneAfrica_Kigali ACE_TIME_PROGMEM = {
    -
    15031  kZoneNameAfrica_Kigali /*name*/,
    -
    15032  0x8a4dcf2b /*zoneId*/,
    -
    15033  &kZoneContext /*zoneContext*/,
    -
    15034  1 /*numEras*/,
    -
    15035  kZoneEraAfrica_Maputo /*eras*/,
    -
    15036  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    15037 };
    -
    15038 
    -
    15039 //---------------------------------------------------------------------------
    -
    15040 // Link name: Africa/Kinshasa -> Africa/Lagos
    -
    15041 //---------------------------------------------------------------------------
    -
    15042 
    -
    15043 static const char kZoneNameAfrica_Kinshasa[] ACE_TIME_PROGMEM = "\x01" "Kinshasa";
    -
    15044 
    -
    15045 const extended::Info::ZoneInfo kZoneAfrica_Kinshasa ACE_TIME_PROGMEM = {
    -
    15046  kZoneNameAfrica_Kinshasa /*name*/,
    -
    15047  0x6695d70c /*zoneId*/,
    -
    15048  &kZoneContext /*zoneContext*/,
    -
    15049  1 /*numEras*/,
    -
    15050  kZoneEraAfrica_Lagos /*eras*/,
    -
    15051  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    15052 };
    -
    15053 
    -
    15054 //---------------------------------------------------------------------------
    -
    15055 // Link name: Africa/Libreville -> Africa/Lagos
    -
    15056 //---------------------------------------------------------------------------
    -
    15057 
    -
    15058 static const char kZoneNameAfrica_Libreville[] ACE_TIME_PROGMEM = "\x01" "Libreville";
    -
    15059 
    -
    15060 const extended::Info::ZoneInfo kZoneAfrica_Libreville ACE_TIME_PROGMEM = {
    -
    15061  kZoneNameAfrica_Libreville /*name*/,
    -
    15062  0x01d96de4 /*zoneId*/,
    -
    15063  &kZoneContext /*zoneContext*/,
    -
    15064  1 /*numEras*/,
    -
    15065  kZoneEraAfrica_Lagos /*eras*/,
    -
    15066  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    15067 };
    -
    15068 
    -
    15069 //---------------------------------------------------------------------------
    -
    15070 // Link name: Africa/Lome -> Africa/Abidjan
    -
    15071 //---------------------------------------------------------------------------
    -
    15072 
    -
    15073 static const char kZoneNameAfrica_Lome[] ACE_TIME_PROGMEM = "\x01" "Lome";
    -
    15074 
    -
    15075 const extended::Info::ZoneInfo kZoneAfrica_Lome ACE_TIME_PROGMEM = {
    -
    15076  kZoneNameAfrica_Lome /*name*/,
    -
    15077  0xd51c3a07 /*zoneId*/,
    -
    15078  &kZoneContext /*zoneContext*/,
    -
    15079  1 /*numEras*/,
    -
    15080  kZoneEraAfrica_Abidjan /*eras*/,
    -
    15081  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    15082 };
    -
    15083 
    -
    15084 //---------------------------------------------------------------------------
    -
    15085 // Link name: Africa/Luanda -> Africa/Lagos
    -
    15086 //---------------------------------------------------------------------------
    -
    15087 
    -
    15088 static const char kZoneNameAfrica_Luanda[] ACE_TIME_PROGMEM = "\x01" "Luanda";
    -
    15089 
    -
    15090 const extended::Info::ZoneInfo kZoneAfrica_Luanda ACE_TIME_PROGMEM = {
    -
    15091  kZoneNameAfrica_Luanda /*name*/,
    -
    15092  0x8d7909cf /*zoneId*/,
    -
    15093  &kZoneContext /*zoneContext*/,
    -
    15094  1 /*numEras*/,
    -
    15095  kZoneEraAfrica_Lagos /*eras*/,
    -
    15096  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    15097 };
    -
    15098 
    -
    15099 //---------------------------------------------------------------------------
    -
    15100 // Link name: Africa/Lubumbashi -> Africa/Maputo
    -
    15101 //---------------------------------------------------------------------------
    -
    15102 
    -
    15103 static const char kZoneNameAfrica_Lubumbashi[] ACE_TIME_PROGMEM = "\x01" "Lubumbashi";
    -
    15104 
    -
    15105 const extended::Info::ZoneInfo kZoneAfrica_Lubumbashi ACE_TIME_PROGMEM = {
    -
    15106  kZoneNameAfrica_Lubumbashi /*name*/,
    -
    15107  0x6fd88566 /*zoneId*/,
    -
    15108  &kZoneContext /*zoneContext*/,
    -
    15109  1 /*numEras*/,
    -
    15110  kZoneEraAfrica_Maputo /*eras*/,
    -
    15111  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    15112 };
    -
    15113 
    -
    15114 //---------------------------------------------------------------------------
    -
    15115 // Link name: Africa/Lusaka -> Africa/Maputo
    -
    15116 //---------------------------------------------------------------------------
    -
    15117 
    -
    15118 static const char kZoneNameAfrica_Lusaka[] ACE_TIME_PROGMEM = "\x01" "Lusaka";
    -
    15119 
    -
    15120 const extended::Info::ZoneInfo kZoneAfrica_Lusaka ACE_TIME_PROGMEM = {
    -
    15121  kZoneNameAfrica_Lusaka /*name*/,
    -
    15122  0x8d82b23b /*zoneId*/,
    -
    15123  &kZoneContext /*zoneContext*/,
    -
    15124  1 /*numEras*/,
    -
    15125  kZoneEraAfrica_Maputo /*eras*/,
    -
    15126  &kZoneAfrica_Maputo /*targetInfo*/,
    -
    15127 };
    -
    15128 
    -
    15129 //---------------------------------------------------------------------------
    -
    15130 // Link name: Africa/Malabo -> Africa/Lagos
    -
    15131 //---------------------------------------------------------------------------
    -
    15132 
    -
    15133 static const char kZoneNameAfrica_Malabo[] ACE_TIME_PROGMEM = "\x01" "Malabo";
    -
    15134 
    -
    15135 const extended::Info::ZoneInfo kZoneAfrica_Malabo ACE_TIME_PROGMEM = {
    -
    15136  kZoneNameAfrica_Malabo /*name*/,
    -
    15137  0x8e6a1906 /*zoneId*/,
    -
    15138  &kZoneContext /*zoneContext*/,
    -
    15139  1 /*numEras*/,
    -
    15140  kZoneEraAfrica_Lagos /*eras*/,
    -
    15141  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    15142 };
    -
    15143 
    -
    15144 //---------------------------------------------------------------------------
    -
    15145 // Link name: Africa/Maseru -> Africa/Johannesburg
    -
    15146 //---------------------------------------------------------------------------
    -
    15147 
    -
    15148 static const char kZoneNameAfrica_Maseru[] ACE_TIME_PROGMEM = "\x01" "Maseru";
    -
    15149 
    -
    15150 const extended::Info::ZoneInfo kZoneAfrica_Maseru ACE_TIME_PROGMEM = {
    -
    15151  kZoneNameAfrica_Maseru /*name*/,
    -
    15152  0x8e6e02c7 /*zoneId*/,
    -
    15153  &kZoneContext /*zoneContext*/,
    -
    15154  1 /*numEras*/,
    -
    15155  kZoneEraAfrica_Johannesburg /*eras*/,
    -
    15156  &kZoneAfrica_Johannesburg /*targetInfo*/,
    -
    15157 };
    -
    15158 
    -
    15159 //---------------------------------------------------------------------------
    -
    15160 // Link name: Africa/Mbabane -> Africa/Johannesburg
    -
    15161 //---------------------------------------------------------------------------
    -
    15162 
    -
    15163 static const char kZoneNameAfrica_Mbabane[] ACE_TIME_PROGMEM = "\x01" "Mbabane";
    -
    15164 
    -
    15165 const extended::Info::ZoneInfo kZoneAfrica_Mbabane ACE_TIME_PROGMEM = {
    -
    15166  kZoneNameAfrica_Mbabane /*name*/,
    -
    15167  0x5d3bdd40 /*zoneId*/,
    -
    15168  &kZoneContext /*zoneContext*/,
    -
    15169  1 /*numEras*/,
    -
    15170  kZoneEraAfrica_Johannesburg /*eras*/,
    -
    15171  &kZoneAfrica_Johannesburg /*targetInfo*/,
    -
    15172 };
    -
    15173 
    -
    15174 //---------------------------------------------------------------------------
    -
    15175 // Link name: Africa/Mogadishu -> Africa/Nairobi
    -
    15176 //---------------------------------------------------------------------------
    -
    15177 
    -
    15178 static const char kZoneNameAfrica_Mogadishu[] ACE_TIME_PROGMEM = "\x01" "Mogadishu";
    -
    15179 
    -
    15180 const extended::Info::ZoneInfo kZoneAfrica_Mogadishu ACE_TIME_PROGMEM = {
    -
    15181  kZoneNameAfrica_Mogadishu /*name*/,
    -
    15182  0x66bc159b /*zoneId*/,
    -
    15183  &kZoneContext /*zoneContext*/,
    -
    15184  1 /*numEras*/,
    -
    15185  kZoneEraAfrica_Nairobi /*eras*/,
    -
    15186  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    15187 };
    -
    15188 
    -
    15189 //---------------------------------------------------------------------------
    -
    15190 // Link name: Africa/Niamey -> Africa/Lagos
    -
    15191 //---------------------------------------------------------------------------
    -
    15192 
    -
    15193 static const char kZoneNameAfrica_Niamey[] ACE_TIME_PROGMEM = "\x01" "Niamey";
    -
    15194 
    -
    15195 const extended::Info::ZoneInfo kZoneAfrica_Niamey ACE_TIME_PROGMEM = {
    -
    15196  kZoneNameAfrica_Niamey /*name*/,
    -
    15197  0x914a30fd /*zoneId*/,
    -
    15198  &kZoneContext /*zoneContext*/,
    -
    15199  1 /*numEras*/,
    -
    15200  kZoneEraAfrica_Lagos /*eras*/,
    -
    15201  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    15202 };
    -
    15203 
    -
    15204 //---------------------------------------------------------------------------
    -
    15205 // Link name: Africa/Nouakchott -> Africa/Abidjan
    -
    15206 //---------------------------------------------------------------------------
    -
    15207 
    -
    15208 static const char kZoneNameAfrica_Nouakchott[] ACE_TIME_PROGMEM = "\x01" "Nouakchott";
    -
    15209 
    -
    15210 const extended::Info::ZoneInfo kZoneAfrica_Nouakchott ACE_TIME_PROGMEM = {
    -
    15211  kZoneNameAfrica_Nouakchott /*name*/,
    -
    15212  0x3dc49dba /*zoneId*/,
    -
    15213  &kZoneContext /*zoneContext*/,
    -
    15214  1 /*numEras*/,
    -
    15215  kZoneEraAfrica_Abidjan /*eras*/,
    -
    15216  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    15217 };
    -
    15218 
    -
    15219 //---------------------------------------------------------------------------
    -
    15220 // Link name: Africa/Ouagadougou -> Africa/Abidjan
    -
    15221 //---------------------------------------------------------------------------
    -
    15222 
    -
    15223 static const char kZoneNameAfrica_Ouagadougou[] ACE_TIME_PROGMEM = "\x01" "Ouagadougou";
    -
    15224 
    -
    15225 const extended::Info::ZoneInfo kZoneAfrica_Ouagadougou ACE_TIME_PROGMEM = {
    -
    15226  kZoneNameAfrica_Ouagadougou /*name*/,
    -
    15227  0x04d7219a /*zoneId*/,
    -
    15228  &kZoneContext /*zoneContext*/,
    -
    15229  1 /*numEras*/,
    -
    15230  kZoneEraAfrica_Abidjan /*eras*/,
    -
    15231  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    15232 };
    -
    15233 
    -
    15234 //---------------------------------------------------------------------------
    -
    15235 // Link name: Africa/Porto-Novo -> Africa/Lagos
    -
    15236 //---------------------------------------------------------------------------
    -
    15237 
    -
    15238 static const char kZoneNameAfrica_Porto_Novo[] ACE_TIME_PROGMEM = "\x01" "Porto-Novo";
    -
    15239 
    -
    15240 const extended::Info::ZoneInfo kZoneAfrica_Porto_Novo ACE_TIME_PROGMEM = {
    -
    15241  kZoneNameAfrica_Porto_Novo /*name*/,
    -
    15242  0x3d1bf95d /*zoneId*/,
    -
    15243  &kZoneContext /*zoneContext*/,
    -
    15244  1 /*numEras*/,
    -
    15245  kZoneEraAfrica_Lagos /*eras*/,
    -
    15246  &kZoneAfrica_Lagos /*targetInfo*/,
    -
    15247 };
    -
    15248 
    -
    15249 //---------------------------------------------------------------------------
    -
    15250 // Link name: Africa/Timbuktu -> Africa/Abidjan
    -
    15251 //---------------------------------------------------------------------------
    -
    15252 
    -
    15253 static const char kZoneNameAfrica_Timbuktu[] ACE_TIME_PROGMEM = "\x01" "Timbuktu";
    -
    15254 
    -
    15255 const extended::Info::ZoneInfo kZoneAfrica_Timbuktu ACE_TIME_PROGMEM = {
    -
    15256  kZoneNameAfrica_Timbuktu /*name*/,
    -
    15257  0xb164d56f /*zoneId*/,
    -
    15258  &kZoneContext /*zoneContext*/,
    -
    15259  1 /*numEras*/,
    -
    15260  kZoneEraAfrica_Abidjan /*eras*/,
    -
    15261  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    15262 };
    -
    15263 
    -
    15264 //---------------------------------------------------------------------------
    -
    15265 // Link name: America/Anguilla -> America/Puerto_Rico
    -
    15266 //---------------------------------------------------------------------------
    -
    15267 
    -
    15268 static const char kZoneNameAmerica_Anguilla[] ACE_TIME_PROGMEM = "\x02" "Anguilla";
    -
    15269 
    -
    15270 const extended::Info::ZoneInfo kZoneAmerica_Anguilla ACE_TIME_PROGMEM = {
    -
    15271  kZoneNameAmerica_Anguilla /*name*/,
    -
    15272  0xafe31333 /*zoneId*/,
    -
    15273  &kZoneContext /*zoneContext*/,
    -
    15274  1 /*numEras*/,
    -
    15275  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15276  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15277 };
    -
    15278 
    -
    15279 //---------------------------------------------------------------------------
    -
    15280 // Link name: America/Antigua -> America/Puerto_Rico
    -
    15281 //---------------------------------------------------------------------------
    -
    15282 
    -
    15283 static const char kZoneNameAmerica_Antigua[] ACE_TIME_PROGMEM = "\x02" "Antigua";
    -
    15284 
    -
    15285 const extended::Info::ZoneInfo kZoneAmerica_Antigua ACE_TIME_PROGMEM = {
    -
    15286  kZoneNameAmerica_Antigua /*name*/,
    -
    15287  0xc067a32f /*zoneId*/,
    -
    15288  &kZoneContext /*zoneContext*/,
    -
    15289  1 /*numEras*/,
    -
    15290  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15291  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15292 };
    -
    15293 
    -
    15294 //---------------------------------------------------------------------------
    -
    15295 // Link name: America/Argentina/ComodRivadavia -> America/Argentina/Catamarca
    -
    15296 //---------------------------------------------------------------------------
    -
    15297 
    -
    15298 static const char kZoneNameAmerica_Argentina_ComodRivadavia[] ACE_TIME_PROGMEM = "\x02" "\x04" "ComodRivadavia";
    -
    15299 
    -
    15300 const extended::Info::ZoneInfo kZoneAmerica_Argentina_ComodRivadavia ACE_TIME_PROGMEM = {
    -
    15301  kZoneNameAmerica_Argentina_ComodRivadavia /*name*/,
    -
    15302  0x22758877 /*zoneId*/,
    -
    15303  &kZoneContext /*zoneContext*/,
    -
    15304  6 /*numEras*/,
    -
    15305  kZoneEraAmerica_Argentina_Catamarca /*eras*/,
    -
    15306  &kZoneAmerica_Argentina_Catamarca /*targetInfo*/,
    -
    15307 };
    -
    15308 
    -
    15309 //---------------------------------------------------------------------------
    -
    15310 // Link name: America/Aruba -> America/Puerto_Rico
    -
    15311 //---------------------------------------------------------------------------
    -
    15312 
    -
    15313 static const char kZoneNameAmerica_Aruba[] ACE_TIME_PROGMEM = "\x02" "Aruba";
    -
    15314 
    -
    15315 const extended::Info::ZoneInfo kZoneAmerica_Aruba ACE_TIME_PROGMEM = {
    -
    15316  kZoneNameAmerica_Aruba /*name*/,
    -
    15317  0x97cf8651 /*zoneId*/,
    -
    15318  &kZoneContext /*zoneContext*/,
    -
    15319  1 /*numEras*/,
    -
    15320  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15321  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15322 };
    -
    15323 
    -
    15324 //---------------------------------------------------------------------------
    -
    15325 // Link name: America/Atikokan -> America/Panama
    -
    15326 //---------------------------------------------------------------------------
    -
    15327 
    -
    15328 static const char kZoneNameAmerica_Atikokan[] ACE_TIME_PROGMEM = "\x02" "Atikokan";
    -
    15329 
    -
    15330 const extended::Info::ZoneInfo kZoneAmerica_Atikokan ACE_TIME_PROGMEM = {
    -
    15331  kZoneNameAmerica_Atikokan /*name*/,
    -
    15332  0x81b92098 /*zoneId*/,
    -
    15333  &kZoneContext /*zoneContext*/,
    -
    15334  1 /*numEras*/,
    -
    15335  kZoneEraAmerica_Panama /*eras*/,
    -
    15336  &kZoneAmerica_Panama /*targetInfo*/,
    -
    15337 };
    -
    15338 
    -
    15339 //---------------------------------------------------------------------------
    -
    15340 // Link name: America/Atka -> America/Adak
    -
    15341 //---------------------------------------------------------------------------
    -
    15342 
    -
    15343 static const char kZoneNameAmerica_Atka[] ACE_TIME_PROGMEM = "\x02" "Atka";
    -
    15344 
    -
    15345 const extended::Info::ZoneInfo kZoneAmerica_Atka ACE_TIME_PROGMEM = {
    -
    15346  kZoneNameAmerica_Atka /*name*/,
    -
    15347  0x97fe8f27 /*zoneId*/,
    -
    15348  &kZoneContext /*zoneContext*/,
    -
    15349  1 /*numEras*/,
    -
    15350  kZoneEraAmerica_Adak /*eras*/,
    -
    15351  &kZoneAmerica_Adak /*targetInfo*/,
    -
    15352 };
    -
    15353 
    -
    15354 //---------------------------------------------------------------------------
    -
    15355 // Link name: America/Blanc-Sablon -> America/Puerto_Rico
    -
    15356 //---------------------------------------------------------------------------
    -
    15357 
    -
    15358 static const char kZoneNameAmerica_Blanc_Sablon[] ACE_TIME_PROGMEM = "\x02" "Blanc-Sablon";
    -
    15359 
    -
    15360 const extended::Info::ZoneInfo kZoneAmerica_Blanc_Sablon ACE_TIME_PROGMEM = {
    -
    15361  kZoneNameAmerica_Blanc_Sablon /*name*/,
    -
    15362  0x6e299892 /*zoneId*/,
    -
    15363  &kZoneContext /*zoneContext*/,
    -
    15364  1 /*numEras*/,
    -
    15365  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15366  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15367 };
    -
    15368 
    -
    15369 //---------------------------------------------------------------------------
    -
    15370 // Link name: America/Buenos_Aires -> America/Argentina/Buenos_Aires
    -
    15371 //---------------------------------------------------------------------------
    -
    15372 
    -
    15373 static const char kZoneNameAmerica_Buenos_Aires[] ACE_TIME_PROGMEM = "\x02" "Buenos_Aires";
    -
    15374 
    -
    15375 const extended::Info::ZoneInfo kZoneAmerica_Buenos_Aires ACE_TIME_PROGMEM = {
    -
    15376  kZoneNameAmerica_Buenos_Aires /*name*/,
    -
    15377  0x67d79a05 /*zoneId*/,
    -
    15378  &kZoneContext /*zoneContext*/,
    -
    15379  3 /*numEras*/,
    -
    15380  kZoneEraAmerica_Argentina_Buenos_Aires /*eras*/,
    -
    15381  &kZoneAmerica_Argentina_Buenos_Aires /*targetInfo*/,
    -
    15382 };
    -
    15383 
    -
    15384 //---------------------------------------------------------------------------
    -
    15385 // Link name: America/Catamarca -> America/Argentina/Catamarca
    -
    15386 //---------------------------------------------------------------------------
    -
    15387 
    -
    15388 static const char kZoneNameAmerica_Catamarca[] ACE_TIME_PROGMEM = "\x02" "Catamarca";
    -
    15389 
    -
    15390 const extended::Info::ZoneInfo kZoneAmerica_Catamarca ACE_TIME_PROGMEM = {
    -
    15391  kZoneNameAmerica_Catamarca /*name*/,
    -
    15392  0x5036e963 /*zoneId*/,
    -
    15393  &kZoneContext /*zoneContext*/,
    -
    15394  6 /*numEras*/,
    -
    15395  kZoneEraAmerica_Argentina_Catamarca /*eras*/,
    -
    15396  &kZoneAmerica_Argentina_Catamarca /*targetInfo*/,
    -
    15397 };
    -
    15398 
    -
    15399 //---------------------------------------------------------------------------
    -
    15400 // Link name: America/Cayman -> America/Panama
    -
    15401 //---------------------------------------------------------------------------
    -
    15402 
    -
    15403 static const char kZoneNameAmerica_Cayman[] ACE_TIME_PROGMEM = "\x02" "Cayman";
    -
    15404 
    -
    15405 const extended::Info::ZoneInfo kZoneAmerica_Cayman ACE_TIME_PROGMEM = {
    -
    15406  kZoneNameAmerica_Cayman /*name*/,
    -
    15407  0x953961df /*zoneId*/,
    -
    15408  &kZoneContext /*zoneContext*/,
    -
    15409  1 /*numEras*/,
    -
    15410  kZoneEraAmerica_Panama /*eras*/,
    -
    15411  &kZoneAmerica_Panama /*targetInfo*/,
    -
    15412 };
    -
    15413 
    -
    15414 //---------------------------------------------------------------------------
    -
    15415 // Link name: America/Coral_Harbour -> America/Panama
    -
    15416 //---------------------------------------------------------------------------
    -
    15417 
    -
    15418 static const char kZoneNameAmerica_Coral_Harbour[] ACE_TIME_PROGMEM = "\x02" "Coral_Harbour";
    -
    15419 
    -
    15420 const extended::Info::ZoneInfo kZoneAmerica_Coral_Harbour ACE_TIME_PROGMEM = {
    -
    15421  kZoneNameAmerica_Coral_Harbour /*name*/,
    -
    15422  0xabcb7569 /*zoneId*/,
    -
    15423  &kZoneContext /*zoneContext*/,
    -
    15424  1 /*numEras*/,
    -
    15425  kZoneEraAmerica_Panama /*eras*/,
    -
    15426  &kZoneAmerica_Panama /*targetInfo*/,
    -
    15427 };
    -
    15428 
    -
    15429 //---------------------------------------------------------------------------
    -
    15430 // Link name: America/Cordoba -> America/Argentina/Cordoba
    -
    15431 //---------------------------------------------------------------------------
    -
    15432 
    -
    15433 static const char kZoneNameAmerica_Cordoba[] ACE_TIME_PROGMEM = "\x02" "Cordoba";
    -
    15434 
    -
    15435 const extended::Info::ZoneInfo kZoneAmerica_Cordoba ACE_TIME_PROGMEM = {
    -
    15436  kZoneNameAmerica_Cordoba /*name*/,
    -
    15437  0x5c8a7600 /*zoneId*/,
    -
    15438  &kZoneContext /*zoneContext*/,
    -
    15439  3 /*numEras*/,
    -
    15440  kZoneEraAmerica_Argentina_Cordoba /*eras*/,
    -
    15441  &kZoneAmerica_Argentina_Cordoba /*targetInfo*/,
    -
    15442 };
    -
    15443 
    -
    15444 //---------------------------------------------------------------------------
    -
    15445 // Link name: America/Creston -> America/Phoenix
    -
    15446 //---------------------------------------------------------------------------
    -
    15447 
    -
    15448 static const char kZoneNameAmerica_Creston[] ACE_TIME_PROGMEM = "\x02" "Creston";
    -
    15449 
    -
    15450 const extended::Info::ZoneInfo kZoneAmerica_Creston ACE_TIME_PROGMEM = {
    -
    15451  kZoneNameAmerica_Creston /*name*/,
    -
    15452  0x62a70204 /*zoneId*/,
    -
    15453  &kZoneContext /*zoneContext*/,
    -
    15454  1 /*numEras*/,
    -
    15455  kZoneEraAmerica_Phoenix /*eras*/,
    -
    15456  &kZoneAmerica_Phoenix /*targetInfo*/,
    -
    15457 };
    -
    15458 
    -
    15459 //---------------------------------------------------------------------------
    -
    15460 // Link name: America/Curacao -> America/Puerto_Rico
    -
    15461 //---------------------------------------------------------------------------
    -
    15462 
    -
    15463 static const char kZoneNameAmerica_Curacao[] ACE_TIME_PROGMEM = "\x02" "Curacao";
    -
    15464 
    -
    15465 const extended::Info::ZoneInfo kZoneAmerica_Curacao ACE_TIME_PROGMEM = {
    -
    15466  kZoneNameAmerica_Curacao /*name*/,
    -
    15467  0x6a879184 /*zoneId*/,
    -
    15468  &kZoneContext /*zoneContext*/,
    -
    15469  1 /*numEras*/,
    -
    15470  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15471  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15472 };
    -
    15473 
    -
    15474 //---------------------------------------------------------------------------
    -
    15475 // Link name: America/Dominica -> America/Puerto_Rico
    -
    15476 //---------------------------------------------------------------------------
    -
    15477 
    -
    15478 static const char kZoneNameAmerica_Dominica[] ACE_TIME_PROGMEM = "\x02" "Dominica";
    -
    15479 
    -
    15480 const extended::Info::ZoneInfo kZoneAmerica_Dominica ACE_TIME_PROGMEM = {
    -
    15481  kZoneNameAmerica_Dominica /*name*/,
    -
    15482  0xcecb4c4a /*zoneId*/,
    -
    15483  &kZoneContext /*zoneContext*/,
    -
    15484  1 /*numEras*/,
    -
    15485  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15486  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15487 };
    -
    15488 
    -
    15489 //---------------------------------------------------------------------------
    -
    15490 // Link name: America/Ensenada -> America/Tijuana
    -
    15491 //---------------------------------------------------------------------------
    -
    15492 
    -
    15493 static const char kZoneNameAmerica_Ensenada[] ACE_TIME_PROGMEM = "\x02" "Ensenada";
    -
    15494 
    -
    15495 const extended::Info::ZoneInfo kZoneAmerica_Ensenada ACE_TIME_PROGMEM = {
    -
    15496  kZoneNameAmerica_Ensenada /*name*/,
    -
    15497  0x7bc95445 /*zoneId*/,
    -
    15498  &kZoneContext /*zoneContext*/,
    -
    15499  4 /*numEras*/,
    -
    15500  kZoneEraAmerica_Tijuana /*eras*/,
    -
    15501  &kZoneAmerica_Tijuana /*targetInfo*/,
    -
    15502 };
    -
    15503 
    -
    15504 //---------------------------------------------------------------------------
    -
    15505 // Link name: America/Fort_Wayne -> America/Indiana/Indianapolis
    -
    15506 //---------------------------------------------------------------------------
    -
    15507 
    -
    15508 static const char kZoneNameAmerica_Fort_Wayne[] ACE_TIME_PROGMEM = "\x02" "Fort_Wayne";
    -
    15509 
    -
    15510 const extended::Info::ZoneInfo kZoneAmerica_Fort_Wayne ACE_TIME_PROGMEM = {
    -
    15511  kZoneNameAmerica_Fort_Wayne /*name*/,
    -
    15512  0x7eaaaf24 /*zoneId*/,
    -
    15513  &kZoneContext /*zoneContext*/,
    -
    15514  2 /*numEras*/,
    -
    15515  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    15516  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
    -
    15517 };
    -
    15518 
    -
    15519 //---------------------------------------------------------------------------
    -
    15520 // Link name: America/Godthab -> America/Nuuk
    -
    15521 //---------------------------------------------------------------------------
    -
    15522 
    -
    15523 static const char kZoneNameAmerica_Godthab[] ACE_TIME_PROGMEM = "\x02" "Godthab";
    -
    15524 
    -
    15525 const extended::Info::ZoneInfo kZoneAmerica_Godthab ACE_TIME_PROGMEM = {
    -
    15526  kZoneNameAmerica_Godthab /*name*/,
    -
    15527  0x8f7eba1f /*zoneId*/,
    -
    15528  &kZoneContext /*zoneContext*/,
    -
    15529  3 /*numEras*/,
    -
    15530  kZoneEraAmerica_Nuuk /*eras*/,
    -
    15531  &kZoneAmerica_Nuuk /*targetInfo*/,
    -
    15532 };
    -
    15533 
    -
    15534 //---------------------------------------------------------------------------
    -
    15535 // Link name: America/Grenada -> America/Puerto_Rico
    -
    15536 //---------------------------------------------------------------------------
    -
    15537 
    -
    15538 static const char kZoneNameAmerica_Grenada[] ACE_TIME_PROGMEM = "\x02" "Grenada";
    -
    15539 
    -
    15540 const extended::Info::ZoneInfo kZoneAmerica_Grenada ACE_TIME_PROGMEM = {
    -
    15541  kZoneNameAmerica_Grenada /*name*/,
    -
    15542  0x968ce4d8 /*zoneId*/,
    -
    15543  &kZoneContext /*zoneContext*/,
    -
    15544  1 /*numEras*/,
    -
    15545  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15546  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15547 };
    -
    15548 
    -
    15549 //---------------------------------------------------------------------------
    -
    15550 // Link name: America/Guadeloupe -> America/Puerto_Rico
    -
    15551 //---------------------------------------------------------------------------
    -
    15552 
    -
    15553 static const char kZoneNameAmerica_Guadeloupe[] ACE_TIME_PROGMEM = "\x02" "Guadeloupe";
    -
    15554 
    -
    15555 const extended::Info::ZoneInfo kZoneAmerica_Guadeloupe ACE_TIME_PROGMEM = {
    -
    15556  kZoneNameAmerica_Guadeloupe /*name*/,
    -
    15557  0xcd1f8a31 /*zoneId*/,
    -
    15558  &kZoneContext /*zoneContext*/,
    -
    15559  1 /*numEras*/,
    -
    15560  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15561  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15562 };
    -
    15563 
    -
    15564 //---------------------------------------------------------------------------
    -
    15565 // Link name: America/Indianapolis -> America/Indiana/Indianapolis
    -
    15566 //---------------------------------------------------------------------------
    -
    15567 
    -
    15568 static const char kZoneNameAmerica_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "Indianapolis";
    -
    15569 
    -
    15570 const extended::Info::ZoneInfo kZoneAmerica_Indianapolis ACE_TIME_PROGMEM = {
    -
    15571  kZoneNameAmerica_Indianapolis /*name*/,
    -
    15572  0x6a009ae1 /*zoneId*/,
    -
    15573  &kZoneContext /*zoneContext*/,
    -
    15574  2 /*numEras*/,
    -
    15575  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    15576  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
    -
    15577 };
    -
    15578 
    -
    15579 //---------------------------------------------------------------------------
    -
    15580 // Link name: America/Jujuy -> America/Argentina/Jujuy
    -
    15581 //---------------------------------------------------------------------------
    -
    15582 
    -
    15583 static const char kZoneNameAmerica_Jujuy[] ACE_TIME_PROGMEM = "\x02" "Jujuy";
    -
    15584 
    -
    15585 const extended::Info::ZoneInfo kZoneAmerica_Jujuy ACE_TIME_PROGMEM = {
    -
    15586  kZoneNameAmerica_Jujuy /*name*/,
    -
    15587  0x9873dbbd /*zoneId*/,
    -
    15588  &kZoneContext /*zoneContext*/,
    -
    15589  4 /*numEras*/,
    -
    15590  kZoneEraAmerica_Argentina_Jujuy /*eras*/,
    -
    15591  &kZoneAmerica_Argentina_Jujuy /*targetInfo*/,
    -
    15592 };
    -
    15593 
    -
    15594 //---------------------------------------------------------------------------
    -
    15595 // Link name: America/Knox_IN -> America/Indiana/Knox
    -
    15596 //---------------------------------------------------------------------------
    -
    15597 
    -
    15598 static const char kZoneNameAmerica_Knox_IN[] ACE_TIME_PROGMEM = "\x02" "Knox_IN";
    -
    15599 
    -
    15600 const extended::Info::ZoneInfo kZoneAmerica_Knox_IN ACE_TIME_PROGMEM = {
    -
    15601  kZoneNameAmerica_Knox_IN /*name*/,
    -
    15602  0xc1db9a1c /*zoneId*/,
    -
    15603  &kZoneContext /*zoneContext*/,
    -
    15604  2 /*numEras*/,
    -
    15605  kZoneEraAmerica_Indiana_Knox /*eras*/,
    -
    15606  &kZoneAmerica_Indiana_Knox /*targetInfo*/,
    -
    15607 };
    -
    15608 
    -
    15609 //---------------------------------------------------------------------------
    -
    15610 // Link name: America/Kralendijk -> America/Puerto_Rico
    -
    15611 //---------------------------------------------------------------------------
    -
    15612 
    -
    15613 static const char kZoneNameAmerica_Kralendijk[] ACE_TIME_PROGMEM = "\x02" "Kralendijk";
    -
    15614 
    -
    15615 const extended::Info::ZoneInfo kZoneAmerica_Kralendijk ACE_TIME_PROGMEM = {
    -
    15616  kZoneNameAmerica_Kralendijk /*name*/,
    -
    15617  0xe7c456c5 /*zoneId*/,
    -
    15618  &kZoneContext /*zoneContext*/,
    -
    15619  1 /*numEras*/,
    -
    15620  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15621  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15622 };
    -
    15623 
    -
    15624 //---------------------------------------------------------------------------
    -
    15625 // Link name: America/Louisville -> America/Kentucky/Louisville
    -
    15626 //---------------------------------------------------------------------------
    -
    15627 
    -
    15628 static const char kZoneNameAmerica_Louisville[] ACE_TIME_PROGMEM = "\x02" "Louisville";
    -
    15629 
    -
    15630 const extended::Info::ZoneInfo kZoneAmerica_Louisville ACE_TIME_PROGMEM = {
    -
    15631  kZoneNameAmerica_Louisville /*name*/,
    -
    15632  0x3dcb47ee /*zoneId*/,
    -
    15633  &kZoneContext /*zoneContext*/,
    -
    15634  1 /*numEras*/,
    -
    15635  kZoneEraAmerica_Kentucky_Louisville /*eras*/,
    -
    15636  &kZoneAmerica_Kentucky_Louisville /*targetInfo*/,
    -
    15637 };
    -
    15638 
    -
    15639 //---------------------------------------------------------------------------
    -
    15640 // Link name: America/Lower_Princes -> America/Puerto_Rico
    -
    15641 //---------------------------------------------------------------------------
    -
    15642 
    -
    15643 static const char kZoneNameAmerica_Lower_Princes[] ACE_TIME_PROGMEM = "\x02" "Lower_Princes";
    -
    15644 
    -
    15645 const extended::Info::ZoneInfo kZoneAmerica_Lower_Princes ACE_TIME_PROGMEM = {
    -
    15646  kZoneNameAmerica_Lower_Princes /*name*/,
    -
    15647  0x6ae45b62 /*zoneId*/,
    -
    15648  &kZoneContext /*zoneContext*/,
    -
    15649  1 /*numEras*/,
    -
    15650  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15651  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15652 };
    -
    15653 
    -
    15654 //---------------------------------------------------------------------------
    -
    15655 // Link name: America/Marigot -> America/Puerto_Rico
    -
    15656 //---------------------------------------------------------------------------
    -
    15657 
    -
    15658 static const char kZoneNameAmerica_Marigot[] ACE_TIME_PROGMEM = "\x02" "Marigot";
    -
    15659 
    -
    15660 const extended::Info::ZoneInfo kZoneAmerica_Marigot ACE_TIME_PROGMEM = {
    -
    15661  kZoneNameAmerica_Marigot /*name*/,
    -
    15662  0x3dab3a59 /*zoneId*/,
    -
    15663  &kZoneContext /*zoneContext*/,
    -
    15664  1 /*numEras*/,
    -
    15665  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15666  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15667 };
    -
    15668 
    -
    15669 //---------------------------------------------------------------------------
    -
    15670 // Link name: America/Mendoza -> America/Argentina/Mendoza
    -
    15671 //---------------------------------------------------------------------------
    -
    15672 
    -
    15673 static const char kZoneNameAmerica_Mendoza[] ACE_TIME_PROGMEM = "\x02" "Mendoza";
    -
    15674 
    -
    15675 const extended::Info::ZoneInfo kZoneAmerica_Mendoza ACE_TIME_PROGMEM = {
    -
    15676  kZoneNameAmerica_Mendoza /*name*/,
    -
    15677  0x46b4e054 /*zoneId*/,
    -
    15678  &kZoneContext /*zoneContext*/,
    -
    15679  6 /*numEras*/,
    -
    15680  kZoneEraAmerica_Argentina_Mendoza /*eras*/,
    -
    15681  &kZoneAmerica_Argentina_Mendoza /*targetInfo*/,
    -
    15682 };
    -
    15683 
    -
    15684 //---------------------------------------------------------------------------
    -
    15685 // Link name: America/Montreal -> America/Toronto
    -
    15686 //---------------------------------------------------------------------------
    -
    15687 
    -
    15688 static const char kZoneNameAmerica_Montreal[] ACE_TIME_PROGMEM = "\x02" "Montreal";
    -
    15689 
    -
    15690 const extended::Info::ZoneInfo kZoneAmerica_Montreal ACE_TIME_PROGMEM = {
    -
    15691  kZoneNameAmerica_Montreal /*name*/,
    -
    15692  0x203a1ea8 /*zoneId*/,
    -
    15693  &kZoneContext /*zoneContext*/,
    -
    15694  1 /*numEras*/,
    -
    15695  kZoneEraAmerica_Toronto /*eras*/,
    -
    15696  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    15697 };
    -
    15698 
    -
    15699 //---------------------------------------------------------------------------
    -
    15700 // Link name: America/Montserrat -> America/Puerto_Rico
    -
    15701 //---------------------------------------------------------------------------
    -
    15702 
    -
    15703 static const char kZoneNameAmerica_Montserrat[] ACE_TIME_PROGMEM = "\x02" "Montserrat";
    -
    15704 
    -
    15705 const extended::Info::ZoneInfo kZoneAmerica_Montserrat ACE_TIME_PROGMEM = {
    -
    15706  kZoneNameAmerica_Montserrat /*name*/,
    -
    15707  0x199b0a35 /*zoneId*/,
    -
    15708  &kZoneContext /*zoneContext*/,
    -
    15709  1 /*numEras*/,
    -
    15710  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15711  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15712 };
    -
    15713 
    -
    15714 //---------------------------------------------------------------------------
    -
    15715 // Link name: America/Nassau -> America/Toronto
    -
    15716 //---------------------------------------------------------------------------
    -
    15717 
    -
    15718 static const char kZoneNameAmerica_Nassau[] ACE_TIME_PROGMEM = "\x02" "Nassau";
    -
    15719 
    -
    15720 const extended::Info::ZoneInfo kZoneAmerica_Nassau ACE_TIME_PROGMEM = {
    -
    15721  kZoneNameAmerica_Nassau /*name*/,
    -
    15722  0xaedef011 /*zoneId*/,
    -
    15723  &kZoneContext /*zoneContext*/,
    -
    15724  1 /*numEras*/,
    -
    15725  kZoneEraAmerica_Toronto /*eras*/,
    -
    15726  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    15727 };
    -
    15728 
    -
    15729 //---------------------------------------------------------------------------
    -
    15730 // Link name: America/Nipigon -> America/Toronto
    -
    15731 //---------------------------------------------------------------------------
    -
    15732 
    -
    15733 static const char kZoneNameAmerica_Nipigon[] ACE_TIME_PROGMEM = "\x02" "Nipigon";
    -
    15734 
    -
    15735 const extended::Info::ZoneInfo kZoneAmerica_Nipigon ACE_TIME_PROGMEM = {
    -
    15736  kZoneNameAmerica_Nipigon /*name*/,
    -
    15737  0x9d2a8b1a /*zoneId*/,
    -
    15738  &kZoneContext /*zoneContext*/,
    -
    15739  1 /*numEras*/,
    -
    15740  kZoneEraAmerica_Toronto /*eras*/,
    -
    15741  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    15742 };
    -
    15743 
    -
    15744 //---------------------------------------------------------------------------
    -
    15745 // Link name: America/Pangnirtung -> America/Iqaluit
    -
    15746 //---------------------------------------------------------------------------
    -
    15747 
    -
    15748 static const char kZoneNameAmerica_Pangnirtung[] ACE_TIME_PROGMEM = "\x02" "Pangnirtung";
    -
    15749 
    -
    15750 const extended::Info::ZoneInfo kZoneAmerica_Pangnirtung ACE_TIME_PROGMEM = {
    -
    15751  kZoneNameAmerica_Pangnirtung /*name*/,
    -
    15752  0x2d999193 /*zoneId*/,
    -
    15753  &kZoneContext /*zoneContext*/,
    -
    15754  3 /*numEras*/,
    -
    15755  kZoneEraAmerica_Iqaluit /*eras*/,
    -
    15756  &kZoneAmerica_Iqaluit /*targetInfo*/,
    -
    15757 };
    -
    15758 
    -
    15759 //---------------------------------------------------------------------------
    -
    15760 // Link name: America/Port_of_Spain -> America/Puerto_Rico
    -
    15761 //---------------------------------------------------------------------------
    -
    15762 
    -
    15763 static const char kZoneNameAmerica_Port_of_Spain[] ACE_TIME_PROGMEM = "\x02" "Port_of_Spain";
    -
    15764 
    -
    15765 const extended::Info::ZoneInfo kZoneAmerica_Port_of_Spain ACE_TIME_PROGMEM = {
    -
    15766  kZoneNameAmerica_Port_of_Spain /*name*/,
    -
    15767  0xd8b28d59 /*zoneId*/,
    -
    15768  &kZoneContext /*zoneContext*/,
    -
    15769  1 /*numEras*/,
    -
    15770  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15771  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15772 };
    -
    15773 
    -
    15774 //---------------------------------------------------------------------------
    -
    15775 // Link name: America/Porto_Acre -> America/Rio_Branco
    -
    15776 //---------------------------------------------------------------------------
    -
    15777 
    -
    15778 static const char kZoneNameAmerica_Porto_Acre[] ACE_TIME_PROGMEM = "\x02" "Porto_Acre";
    -
    15779 
    -
    15780 const extended::Info::ZoneInfo kZoneAmerica_Porto_Acre ACE_TIME_PROGMEM = {
    -
    15781  kZoneNameAmerica_Porto_Acre /*name*/,
    -
    15782  0xcce5bf54 /*zoneId*/,
    -
    15783  &kZoneContext /*zoneContext*/,
    -
    15784  3 /*numEras*/,
    -
    15785  kZoneEraAmerica_Rio_Branco /*eras*/,
    -
    15786  &kZoneAmerica_Rio_Branco /*targetInfo*/,
    -
    15787 };
    -
    15788 
    -
    15789 //---------------------------------------------------------------------------
    -
    15790 // Link name: America/Rainy_River -> America/Winnipeg
    -
    15791 //---------------------------------------------------------------------------
    -
    15792 
    -
    15793 static const char kZoneNameAmerica_Rainy_River[] ACE_TIME_PROGMEM = "\x02" "Rainy_River";
    -
    15794 
    -
    15795 const extended::Info::ZoneInfo kZoneAmerica_Rainy_River ACE_TIME_PROGMEM = {
    -
    15796  kZoneNameAmerica_Rainy_River /*name*/,
    -
    15797  0x9cd58a10 /*zoneId*/,
    -
    15798  &kZoneContext /*zoneContext*/,
    -
    15799  2 /*numEras*/,
    -
    15800  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    15801  &kZoneAmerica_Winnipeg /*targetInfo*/,
    -
    15802 };
    -
    15803 
    -
    15804 //---------------------------------------------------------------------------
    -
    15805 // Link name: America/Rosario -> America/Argentina/Cordoba
    -
    15806 //---------------------------------------------------------------------------
    -
    15807 
    -
    15808 static const char kZoneNameAmerica_Rosario[] ACE_TIME_PROGMEM = "\x02" "Rosario";
    -
    15809 
    -
    15810 const extended::Info::ZoneInfo kZoneAmerica_Rosario ACE_TIME_PROGMEM = {
    -
    15811  kZoneNameAmerica_Rosario /*name*/,
    -
    15812  0xdf448665 /*zoneId*/,
    -
    15813  &kZoneContext /*zoneContext*/,
    -
    15814  3 /*numEras*/,
    -
    15815  kZoneEraAmerica_Argentina_Cordoba /*eras*/,
    -
    15816  &kZoneAmerica_Argentina_Cordoba /*targetInfo*/,
    -
    15817 };
    -
    15818 
    -
    15819 //---------------------------------------------------------------------------
    -
    15820 // Link name: America/Santa_Isabel -> America/Tijuana
    -
    15821 //---------------------------------------------------------------------------
    -
    15822 
    -
    15823 static const char kZoneNameAmerica_Santa_Isabel[] ACE_TIME_PROGMEM = "\x02" "Santa_Isabel";
    -
    15824 
    -
    15825 const extended::Info::ZoneInfo kZoneAmerica_Santa_Isabel ACE_TIME_PROGMEM = {
    -
    15826  kZoneNameAmerica_Santa_Isabel /*name*/,
    -
    15827  0xfd18a56c /*zoneId*/,
    -
    15828  &kZoneContext /*zoneContext*/,
    -
    15829  4 /*numEras*/,
    -
    15830  kZoneEraAmerica_Tijuana /*eras*/,
    -
    15831  &kZoneAmerica_Tijuana /*targetInfo*/,
    -
    15832 };
    -
    15833 
    -
    15834 //---------------------------------------------------------------------------
    -
    15835 // Link name: America/Shiprock -> America/Denver
    -
    15836 //---------------------------------------------------------------------------
    -
    15837 
    -
    15838 static const char kZoneNameAmerica_Shiprock[] ACE_TIME_PROGMEM = "\x02" "Shiprock";
    -
    15839 
    -
    15840 const extended::Info::ZoneInfo kZoneAmerica_Shiprock ACE_TIME_PROGMEM = {
    -
    15841  kZoneNameAmerica_Shiprock /*name*/,
    -
    15842  0x82fb7049 /*zoneId*/,
    -
    15843  &kZoneContext /*zoneContext*/,
    -
    15844  1 /*numEras*/,
    -
    15845  kZoneEraAmerica_Denver /*eras*/,
    -
    15846  &kZoneAmerica_Denver /*targetInfo*/,
    -
    15847 };
    -
    15848 
    -
    15849 //---------------------------------------------------------------------------
    -
    15850 // Link name: America/St_Barthelemy -> America/Puerto_Rico
    -
    15851 //---------------------------------------------------------------------------
    -
    15852 
    -
    15853 static const char kZoneNameAmerica_St_Barthelemy[] ACE_TIME_PROGMEM = "\x02" "St_Barthelemy";
    -
    15854 
    -
    15855 const extended::Info::ZoneInfo kZoneAmerica_St_Barthelemy ACE_TIME_PROGMEM = {
    -
    15856  kZoneNameAmerica_St_Barthelemy /*name*/,
    -
    15857  0x054e6a79 /*zoneId*/,
    -
    15858  &kZoneContext /*zoneContext*/,
    -
    15859  1 /*numEras*/,
    -
    15860  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15861  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15862 };
    -
    15863 
    -
    15864 //---------------------------------------------------------------------------
    -
    15865 // Link name: America/St_Kitts -> America/Puerto_Rico
    -
    15866 //---------------------------------------------------------------------------
    -
    15867 
    -
    15868 static const char kZoneNameAmerica_St_Kitts[] ACE_TIME_PROGMEM = "\x02" "St_Kitts";
    -
    15869 
    -
    15870 const extended::Info::ZoneInfo kZoneAmerica_St_Kitts ACE_TIME_PROGMEM = {
    -
    15871  kZoneNameAmerica_St_Kitts /*name*/,
    -
    15872  0x04c0507b /*zoneId*/,
    -
    15873  &kZoneContext /*zoneContext*/,
    -
    15874  1 /*numEras*/,
    -
    15875  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15876  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15877 };
    -
    15878 
    -
    15879 //---------------------------------------------------------------------------
    -
    15880 // Link name: America/St_Lucia -> America/Puerto_Rico
    -
    15881 //---------------------------------------------------------------------------
    -
    15882 
    -
    15883 static const char kZoneNameAmerica_St_Lucia[] ACE_TIME_PROGMEM = "\x02" "St_Lucia";
    -
    15884 
    -
    15885 const extended::Info::ZoneInfo kZoneAmerica_St_Lucia ACE_TIME_PROGMEM = {
    -
    15886  kZoneNameAmerica_St_Lucia /*name*/,
    -
    15887  0x04d8b3ba /*zoneId*/,
    -
    15888  &kZoneContext /*zoneContext*/,
    -
    15889  1 /*numEras*/,
    -
    15890  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15891  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15892 };
    -
    15893 
    -
    15894 //---------------------------------------------------------------------------
    -
    15895 // Link name: America/St_Thomas -> America/Puerto_Rico
    -
    15896 //---------------------------------------------------------------------------
    -
    15897 
    -
    15898 static const char kZoneNameAmerica_St_Thomas[] ACE_TIME_PROGMEM = "\x02" "St_Thomas";
    -
    15899 
    -
    15900 const extended::Info::ZoneInfo kZoneAmerica_St_Thomas ACE_TIME_PROGMEM = {
    -
    15901  kZoneNameAmerica_St_Thomas /*name*/,
    -
    15902  0xb1b3d778 /*zoneId*/,
    -
    15903  &kZoneContext /*zoneContext*/,
    -
    15904  1 /*numEras*/,
    -
    15905  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15906  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15907 };
    -
    15908 
    -
    15909 //---------------------------------------------------------------------------
    -
    15910 // Link name: America/St_Vincent -> America/Puerto_Rico
    -
    15911 //---------------------------------------------------------------------------
    -
    15912 
    -
    15913 static const char kZoneNameAmerica_St_Vincent[] ACE_TIME_PROGMEM = "\x02" "St_Vincent";
    -
    15914 
    -
    15915 const extended::Info::ZoneInfo kZoneAmerica_St_Vincent ACE_TIME_PROGMEM = {
    -
    15916  kZoneNameAmerica_St_Vincent /*name*/,
    -
    15917  0x8460e523 /*zoneId*/,
    -
    15918  &kZoneContext /*zoneContext*/,
    -
    15919  1 /*numEras*/,
    -
    15920  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15921  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15922 };
    -
    15923 
    -
    15924 //---------------------------------------------------------------------------
    -
    15925 // Link name: America/Thunder_Bay -> America/Toronto
    -
    15926 //---------------------------------------------------------------------------
    -
    15927 
    -
    15928 static const char kZoneNameAmerica_Thunder_Bay[] ACE_TIME_PROGMEM = "\x02" "Thunder_Bay";
    -
    15929 
    -
    15930 const extended::Info::ZoneInfo kZoneAmerica_Thunder_Bay ACE_TIME_PROGMEM = {
    -
    15931  kZoneNameAmerica_Thunder_Bay /*name*/,
    -
    15932  0xf962e71b /*zoneId*/,
    -
    15933  &kZoneContext /*zoneContext*/,
    -
    15934  1 /*numEras*/,
    -
    15935  kZoneEraAmerica_Toronto /*eras*/,
    -
    15936  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    15937 };
    -
    15938 
    -
    15939 //---------------------------------------------------------------------------
    -
    15940 // Link name: America/Tortola -> America/Puerto_Rico
    -
    15941 //---------------------------------------------------------------------------
    -
    15942 
    -
    15943 static const char kZoneNameAmerica_Tortola[] ACE_TIME_PROGMEM = "\x02" "Tortola";
    -
    15944 
    -
    15945 const extended::Info::ZoneInfo kZoneAmerica_Tortola ACE_TIME_PROGMEM = {
    -
    15946  kZoneNameAmerica_Tortola /*name*/,
    -
    15947  0x7931462b /*zoneId*/,
    -
    15948  &kZoneContext /*zoneContext*/,
    -
    15949  1 /*numEras*/,
    -
    15950  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15951  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15952 };
    -
    15953 
    -
    15954 //---------------------------------------------------------------------------
    -
    15955 // Link name: America/Virgin -> America/Puerto_Rico
    -
    15956 //---------------------------------------------------------------------------
    -
    15957 
    -
    15958 static const char kZoneNameAmerica_Virgin[] ACE_TIME_PROGMEM = "\x02" "Virgin";
    -
    15959 
    -
    15960 const extended::Info::ZoneInfo kZoneAmerica_Virgin ACE_TIME_PROGMEM = {
    -
    15961  kZoneNameAmerica_Virgin /*name*/,
    -
    15962  0xc2183ab5 /*zoneId*/,
    -
    15963  &kZoneContext /*zoneContext*/,
    -
    15964  1 /*numEras*/,
    -
    15965  kZoneEraAmerica_Puerto_Rico /*eras*/,
    -
    15966  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
    -
    15967 };
    -
    15968 
    -
    15969 //---------------------------------------------------------------------------
    -
    15970 // Link name: America/Yellowknife -> America/Edmonton
    -
    15971 //---------------------------------------------------------------------------
    -
    15972 
    -
    15973 static const char kZoneNameAmerica_Yellowknife[] ACE_TIME_PROGMEM = "\x02" "Yellowknife";
    -
    15974 
    -
    15975 const extended::Info::ZoneInfo kZoneAmerica_Yellowknife ACE_TIME_PROGMEM = {
    -
    15976  kZoneNameAmerica_Yellowknife /*name*/,
    -
    15977  0x0f76c76f /*zoneId*/,
    -
    15978  &kZoneContext /*zoneContext*/,
    -
    15979  1 /*numEras*/,
    -
    15980  kZoneEraAmerica_Edmonton /*eras*/,
    -
    15981  &kZoneAmerica_Edmonton /*targetInfo*/,
    -
    15982 };
    -
    15983 
    -
    15984 //---------------------------------------------------------------------------
    -
    15985 // Link name: Antarctica/DumontDUrville -> Pacific/Port_Moresby
    -
    15986 //---------------------------------------------------------------------------
    -
    15987 
    -
    15988 static const char kZoneNameAntarctica_DumontDUrville[] ACE_TIME_PROGMEM = "\x03" "DumontDUrville";
    -
    15989 
    -
    15990 const extended::Info::ZoneInfo kZoneAntarctica_DumontDUrville ACE_TIME_PROGMEM = {
    -
    15991  kZoneNameAntarctica_DumontDUrville /*name*/,
    -
    15992  0x5a3c656c /*zoneId*/,
    -
    15993  &kZoneContext /*zoneContext*/,
    -
    15994  1 /*numEras*/,
    -
    15995  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    15996  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    15997 };
    -
    15998 
    -
    15999 //---------------------------------------------------------------------------
    -
    16000 // Link name: Antarctica/McMurdo -> Pacific/Auckland
    -
    16001 //---------------------------------------------------------------------------
    -
    16002 
    -
    16003 static const char kZoneNameAntarctica_McMurdo[] ACE_TIME_PROGMEM = "\x03" "McMurdo";
    -
    16004 
    -
    16005 const extended::Info::ZoneInfo kZoneAntarctica_McMurdo ACE_TIME_PROGMEM = {
    -
    16006  kZoneNameAntarctica_McMurdo /*name*/,
    -
    16007  0x6eeb5585 /*zoneId*/,
    -
    16008  &kZoneContext /*zoneContext*/,
    -
    16009  1 /*numEras*/,
    -
    16010  kZoneEraPacific_Auckland /*eras*/,
    -
    16011  &kZonePacific_Auckland /*targetInfo*/,
    -
    16012 };
    -
    16013 
    -
    16014 //---------------------------------------------------------------------------
    -
    16015 // Link name: Antarctica/South_Pole -> Pacific/Auckland
    -
    16016 //---------------------------------------------------------------------------
    -
    16017 
    -
    16018 static const char kZoneNameAntarctica_South_Pole[] ACE_TIME_PROGMEM = "\x03" "South_Pole";
    -
    16019 
    -
    16020 const extended::Info::ZoneInfo kZoneAntarctica_South_Pole ACE_TIME_PROGMEM = {
    -
    16021  kZoneNameAntarctica_South_Pole /*name*/,
    -
    16022  0xcd96b290 /*zoneId*/,
    -
    16023  &kZoneContext /*zoneContext*/,
    -
    16024  1 /*numEras*/,
    -
    16025  kZoneEraPacific_Auckland /*eras*/,
    -
    16026  &kZonePacific_Auckland /*targetInfo*/,
    -
    16027 };
    -
    16028 
    -
    16029 //---------------------------------------------------------------------------
    -
    16030 // Link name: Antarctica/Syowa -> Asia/Riyadh
    -
    16031 //---------------------------------------------------------------------------
    -
    16032 
    -
    16033 static const char kZoneNameAntarctica_Syowa[] ACE_TIME_PROGMEM = "\x03" "Syowa";
    -
    16034 
    -
    16035 const extended::Info::ZoneInfo kZoneAntarctica_Syowa ACE_TIME_PROGMEM = {
    -
    16036  kZoneNameAntarctica_Syowa /*name*/,
    -
    16037  0xe330c7e1 /*zoneId*/,
    -
    16038  &kZoneContext /*zoneContext*/,
    -
    16039  1 /*numEras*/,
    -
    16040  kZoneEraAsia_Riyadh /*eras*/,
    -
    16041  &kZoneAsia_Riyadh /*targetInfo*/,
    -
    16042 };
    -
    16043 
    -
    16044 //---------------------------------------------------------------------------
    -
    16045 // Link name: Arctic/Longyearbyen -> Europe/Berlin
    -
    16046 //---------------------------------------------------------------------------
    -
    16047 
    -
    16048 static const char kZoneNameArctic_Longyearbyen[] ACE_TIME_PROGMEM = "Arctic/Longyearbyen";
    -
    16049 
    -
    16050 const extended::Info::ZoneInfo kZoneArctic_Longyearbyen ACE_TIME_PROGMEM = {
    -
    16051  kZoneNameArctic_Longyearbyen /*name*/,
    -
    16052  0xd23e7859 /*zoneId*/,
    -
    16053  &kZoneContext /*zoneContext*/,
    -
    16054  1 /*numEras*/,
    -
    16055  kZoneEraEurope_Berlin /*eras*/,
    -
    16056  &kZoneEurope_Berlin /*targetInfo*/,
    -
    16057 };
    -
    16058 
    -
    16059 //---------------------------------------------------------------------------
    -
    16060 // Link name: Asia/Aden -> Asia/Riyadh
    -
    16061 //---------------------------------------------------------------------------
    -
    16062 
    -
    16063 static const char kZoneNameAsia_Aden[] ACE_TIME_PROGMEM = "\x05" "Aden";
    -
    16064 
    -
    16065 const extended::Info::ZoneInfo kZoneAsia_Aden ACE_TIME_PROGMEM = {
    -
    16066  kZoneNameAsia_Aden /*name*/,
    -
    16067  0x1fa7084a /*zoneId*/,
    -
    16068  &kZoneContext /*zoneContext*/,
    -
    16069  1 /*numEras*/,
    -
    16070  kZoneEraAsia_Riyadh /*eras*/,
    -
    16071  &kZoneAsia_Riyadh /*targetInfo*/,
    -
    16072 };
    -
    16073 
    -
    16074 //---------------------------------------------------------------------------
    -
    16075 // Link name: Asia/Ashkhabad -> Asia/Ashgabat
    -
    16076 //---------------------------------------------------------------------------
    -
    16077 
    -
    16078 static const char kZoneNameAsia_Ashkhabad[] ACE_TIME_PROGMEM = "\x05" "Ashkhabad";
    -
    16079 
    -
    16080 const extended::Info::ZoneInfo kZoneAsia_Ashkhabad ACE_TIME_PROGMEM = {
    -
    16081  kZoneNameAsia_Ashkhabad /*name*/,
    -
    16082  0x15454f09 /*zoneId*/,
    -
    16083  &kZoneContext /*zoneContext*/,
    -
    16084  1 /*numEras*/,
    -
    16085  kZoneEraAsia_Ashgabat /*eras*/,
    -
    16086  &kZoneAsia_Ashgabat /*targetInfo*/,
    -
    16087 };
    -
    16088 
    -
    16089 //---------------------------------------------------------------------------
    -
    16090 // Link name: Asia/Bahrain -> Asia/Qatar
    -
    16091 //---------------------------------------------------------------------------
    -
    16092 
    -
    16093 static const char kZoneNameAsia_Bahrain[] ACE_TIME_PROGMEM = "\x05" "Bahrain";
    -
    16094 
    -
    16095 const extended::Info::ZoneInfo kZoneAsia_Bahrain ACE_TIME_PROGMEM = {
    -
    16096  kZoneNameAsia_Bahrain /*name*/,
    -
    16097  0x9d078487 /*zoneId*/,
    -
    16098  &kZoneContext /*zoneContext*/,
    -
    16099  1 /*numEras*/,
    -
    16100  kZoneEraAsia_Qatar /*eras*/,
    -
    16101  &kZoneAsia_Qatar /*targetInfo*/,
    -
    16102 };
    -
    16103 
    -
    16104 //---------------------------------------------------------------------------
    -
    16105 // Link name: Asia/Brunei -> Asia/Kuching
    -
    16106 //---------------------------------------------------------------------------
    -
    16107 
    -
    16108 static const char kZoneNameAsia_Brunei[] ACE_TIME_PROGMEM = "\x05" "Brunei";
    -
    16109 
    -
    16110 const extended::Info::ZoneInfo kZoneAsia_Brunei ACE_TIME_PROGMEM = {
    -
    16111  kZoneNameAsia_Brunei /*name*/,
    -
    16112  0xa8e595f7 /*zoneId*/,
    -
    16113  &kZoneContext /*zoneContext*/,
    -
    16114  1 /*numEras*/,
    -
    16115  kZoneEraAsia_Kuching /*eras*/,
    -
    16116  &kZoneAsia_Kuching /*targetInfo*/,
    -
    16117 };
    -
    16118 
    -
    16119 //---------------------------------------------------------------------------
    -
    16120 // Link name: Asia/Calcutta -> Asia/Kolkata
    -
    16121 //---------------------------------------------------------------------------
    -
    16122 
    -
    16123 static const char kZoneNameAsia_Calcutta[] ACE_TIME_PROGMEM = "\x05" "Calcutta";
    -
    16124 
    -
    16125 const extended::Info::ZoneInfo kZoneAsia_Calcutta ACE_TIME_PROGMEM = {
    -
    16126  kZoneNameAsia_Calcutta /*name*/,
    -
    16127  0x328a44c3 /*zoneId*/,
    -
    16128  &kZoneContext /*zoneContext*/,
    -
    16129  1 /*numEras*/,
    -
    16130  kZoneEraAsia_Kolkata /*eras*/,
    -
    16131  &kZoneAsia_Kolkata /*targetInfo*/,
    -
    16132 };
    -
    16133 
    -
    16134 //---------------------------------------------------------------------------
    -
    16135 // Link name: Asia/Choibalsan -> Asia/Ulaanbaatar
    -
    16136 //---------------------------------------------------------------------------
    -
    16137 
    -
    16138 static const char kZoneNameAsia_Choibalsan[] ACE_TIME_PROGMEM = "\x05" "Choibalsan";
    -
    16139 
    -
    16140 const extended::Info::ZoneInfo kZoneAsia_Choibalsan ACE_TIME_PROGMEM = {
    -
    16141  kZoneNameAsia_Choibalsan /*name*/,
    -
    16142  0x928aa4a6 /*zoneId*/,
    -
    16143  &kZoneContext /*zoneContext*/,
    -
    16144  1 /*numEras*/,
    -
    16145  kZoneEraAsia_Ulaanbaatar /*eras*/,
    -
    16146  &kZoneAsia_Ulaanbaatar /*targetInfo*/,
    -
    16147 };
    -
    16148 
    -
    16149 //---------------------------------------------------------------------------
    -
    16150 // Link name: Asia/Chongqing -> Asia/Shanghai
    -
    16151 //---------------------------------------------------------------------------
    -
    16152 
    -
    16153 static const char kZoneNameAsia_Chongqing[] ACE_TIME_PROGMEM = "\x05" "Chongqing";
    -
    16154 
    -
    16155 const extended::Info::ZoneInfo kZoneAsia_Chongqing ACE_TIME_PROGMEM = {
    -
    16156  kZoneNameAsia_Chongqing /*name*/,
    -
    16157  0xf937fb90 /*zoneId*/,
    -
    16158  &kZoneContext /*zoneContext*/,
    -
    16159  1 /*numEras*/,
    -
    16160  kZoneEraAsia_Shanghai /*eras*/,
    -
    16161  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    16162 };
    -
    16163 
    -
    16164 //---------------------------------------------------------------------------
    -
    16165 // Link name: Asia/Chungking -> Asia/Shanghai
    -
    16166 //---------------------------------------------------------------------------
    -
    16167 
    -
    16168 static const char kZoneNameAsia_Chungking[] ACE_TIME_PROGMEM = "\x05" "Chungking";
    -
    16169 
    -
    16170 const extended::Info::ZoneInfo kZoneAsia_Chungking ACE_TIME_PROGMEM = {
    -
    16171  kZoneNameAsia_Chungking /*name*/,
    -
    16172  0xc7121dd0 /*zoneId*/,
    -
    16173  &kZoneContext /*zoneContext*/,
    -
    16174  1 /*numEras*/,
    -
    16175  kZoneEraAsia_Shanghai /*eras*/,
    -
    16176  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    16177 };
    -
    16178 
    -
    16179 //---------------------------------------------------------------------------
    -
    16180 // Link name: Asia/Dacca -> Asia/Dhaka
    -
    16181 //---------------------------------------------------------------------------
    -
    16182 
    -
    16183 static const char kZoneNameAsia_Dacca[] ACE_TIME_PROGMEM = "\x05" "Dacca";
    -
    16184 
    -
    16185 const extended::Info::ZoneInfo kZoneAsia_Dacca ACE_TIME_PROGMEM = {
    -
    16186  kZoneNameAsia_Dacca /*name*/,
    -
    16187  0x14bcac5e /*zoneId*/,
    -
    16188  &kZoneContext /*zoneContext*/,
    -
    16189  2 /*numEras*/,
    -
    16190  kZoneEraAsia_Dhaka /*eras*/,
    -
    16191  &kZoneAsia_Dhaka /*targetInfo*/,
    -
    16192 };
    -
    16193 
    -
    16194 //---------------------------------------------------------------------------
    -
    16195 // Link name: Asia/Harbin -> Asia/Shanghai
    -
    16196 //---------------------------------------------------------------------------
    -
    16197 
    -
    16198 static const char kZoneNameAsia_Harbin[] ACE_TIME_PROGMEM = "\x05" "Harbin";
    -
    16199 
    -
    16200 const extended::Info::ZoneInfo kZoneAsia_Harbin ACE_TIME_PROGMEM = {
    -
    16201  kZoneNameAsia_Harbin /*name*/,
    -
    16202  0xb5af1186 /*zoneId*/,
    -
    16203  &kZoneContext /*zoneContext*/,
    -
    16204  1 /*numEras*/,
    -
    16205  kZoneEraAsia_Shanghai /*eras*/,
    -
    16206  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    16207 };
    -
    16208 
    -
    16209 //---------------------------------------------------------------------------
    -
    16210 // Link name: Asia/Istanbul -> Europe/Istanbul
    -
    16211 //---------------------------------------------------------------------------
    -
    16212 
    -
    16213 static const char kZoneNameAsia_Istanbul[] ACE_TIME_PROGMEM = "\x05" "Istanbul";
    -
    16214 
    -
    16215 const extended::Info::ZoneInfo kZoneAsia_Istanbul ACE_TIME_PROGMEM = {
    -
    16216  kZoneNameAsia_Istanbul /*name*/,
    -
    16217  0x382e7894 /*zoneId*/,
    -
    16218  &kZoneContext /*zoneContext*/,
    -
    16219  9 /*numEras*/,
    -
    16220  kZoneEraEurope_Istanbul /*eras*/,
    -
    16221  &kZoneEurope_Istanbul /*targetInfo*/,
    -
    16222 };
    -
    16223 
    -
    16224 //---------------------------------------------------------------------------
    -
    16225 // Link name: Asia/Kashgar -> Asia/Urumqi
    -
    16226 //---------------------------------------------------------------------------
    -
    16227 
    -
    16228 static const char kZoneNameAsia_Kashgar[] ACE_TIME_PROGMEM = "\x05" "Kashgar";
    -
    16229 
    -
    16230 const extended::Info::ZoneInfo kZoneAsia_Kashgar ACE_TIME_PROGMEM = {
    -
    16231  kZoneNameAsia_Kashgar /*name*/,
    -
    16232  0x52955193 /*zoneId*/,
    -
    16233  &kZoneContext /*zoneContext*/,
    -
    16234  1 /*numEras*/,
    -
    16235  kZoneEraAsia_Urumqi /*eras*/,
    -
    16236  &kZoneAsia_Urumqi /*targetInfo*/,
    -
    16237 };
    -
    16238 
    -
    16239 //---------------------------------------------------------------------------
    -
    16240 // Link name: Asia/Katmandu -> Asia/Kathmandu
    -
    16241 //---------------------------------------------------------------------------
    -
    16242 
    -
    16243 static const char kZoneNameAsia_Katmandu[] ACE_TIME_PROGMEM = "\x05" "Katmandu";
    -
    16244 
    -
    16245 const extended::Info::ZoneInfo kZoneAsia_Katmandu ACE_TIME_PROGMEM = {
    -
    16246  kZoneNameAsia_Katmandu /*name*/,
    -
    16247  0xa7ec12c7 /*zoneId*/,
    -
    16248  &kZoneContext /*zoneContext*/,
    -
    16249  1 /*numEras*/,
    -
    16250  kZoneEraAsia_Kathmandu /*eras*/,
    -
    16251  &kZoneAsia_Kathmandu /*targetInfo*/,
    -
    16252 };
    -
    16253 
    -
    16254 //---------------------------------------------------------------------------
    -
    16255 // Link name: Asia/Kuala_Lumpur -> Asia/Singapore
    -
    16256 //---------------------------------------------------------------------------
    -
    16257 
    -
    16258 static const char kZoneNameAsia_Kuala_Lumpur[] ACE_TIME_PROGMEM = "\x05" "Kuala_Lumpur";
    -
    16259 
    -
    16260 const extended::Info::ZoneInfo kZoneAsia_Kuala_Lumpur ACE_TIME_PROGMEM = {
    -
    16261  kZoneNameAsia_Kuala_Lumpur /*name*/,
    -
    16262  0x014763c4 /*zoneId*/,
    -
    16263  &kZoneContext /*zoneContext*/,
    -
    16264  1 /*numEras*/,
    -
    16265  kZoneEraAsia_Singapore /*eras*/,
    -
    16266  &kZoneAsia_Singapore /*targetInfo*/,
    -
    16267 };
    -
    16268 
    -
    16269 //---------------------------------------------------------------------------
    -
    16270 // Link name: Asia/Kuwait -> Asia/Riyadh
    -
    16271 //---------------------------------------------------------------------------
    -
    16272 
    -
    16273 static const char kZoneNameAsia_Kuwait[] ACE_TIME_PROGMEM = "\x05" "Kuwait";
    -
    16274 
    -
    16275 const extended::Info::ZoneInfo kZoneAsia_Kuwait ACE_TIME_PROGMEM = {
    -
    16276  kZoneNameAsia_Kuwait /*name*/,
    -
    16277  0xbe1b2f27 /*zoneId*/,
    -
    16278  &kZoneContext /*zoneContext*/,
    -
    16279  1 /*numEras*/,
    -
    16280  kZoneEraAsia_Riyadh /*eras*/,
    -
    16281  &kZoneAsia_Riyadh /*targetInfo*/,
    -
    16282 };
    -
    16283 
    -
    16284 //---------------------------------------------------------------------------
    -
    16285 // Link name: Asia/Macao -> Asia/Macau
    -
    16286 //---------------------------------------------------------------------------
    -
    16287 
    -
    16288 static const char kZoneNameAsia_Macao[] ACE_TIME_PROGMEM = "\x05" "Macao";
    -
    16289 
    -
    16290 const extended::Info::ZoneInfo kZoneAsia_Macao ACE_TIME_PROGMEM = {
    -
    16291  kZoneNameAsia_Macao /*name*/,
    -
    16292  0x155f88b3 /*zoneId*/,
    -
    16293  &kZoneContext /*zoneContext*/,
    -
    16294  1 /*numEras*/,
    -
    16295  kZoneEraAsia_Macau /*eras*/,
    -
    16296  &kZoneAsia_Macau /*targetInfo*/,
    -
    16297 };
    -
    16298 
    -
    16299 //---------------------------------------------------------------------------
    -
    16300 // Link name: Asia/Muscat -> Asia/Dubai
    -
    16301 //---------------------------------------------------------------------------
    -
    16302 
    -
    16303 static const char kZoneNameAsia_Muscat[] ACE_TIME_PROGMEM = "\x05" "Muscat";
    -
    16304 
    -
    16305 const extended::Info::ZoneInfo kZoneAsia_Muscat ACE_TIME_PROGMEM = {
    -
    16306  kZoneNameAsia_Muscat /*name*/,
    -
    16307  0xc2c3565f /*zoneId*/,
    -
    16308  &kZoneContext /*zoneContext*/,
    -
    16309  1 /*numEras*/,
    -
    16310  kZoneEraAsia_Dubai /*eras*/,
    -
    16311  &kZoneAsia_Dubai /*targetInfo*/,
    -
    16312 };
    -
    16313 
    -
    16314 //---------------------------------------------------------------------------
    -
    16315 // Link name: Asia/Phnom_Penh -> Asia/Bangkok
    -
    16316 //---------------------------------------------------------------------------
    -
    16317 
    -
    16318 static const char kZoneNameAsia_Phnom_Penh[] ACE_TIME_PROGMEM = "\x05" "Phnom_Penh";
    -
    16319 
    -
    16320 const extended::Info::ZoneInfo kZoneAsia_Phnom_Penh ACE_TIME_PROGMEM = {
    -
    16321  kZoneNameAsia_Phnom_Penh /*name*/,
    -
    16322  0xc224945e /*zoneId*/,
    -
    16323  &kZoneContext /*zoneContext*/,
    -
    16324  1 /*numEras*/,
    -
    16325  kZoneEraAsia_Bangkok /*eras*/,
    -
    16326  &kZoneAsia_Bangkok /*targetInfo*/,
    -
    16327 };
    -
    16328 
    -
    16329 //---------------------------------------------------------------------------
    -
    16330 // Link name: Asia/Rangoon -> Asia/Yangon
    -
    16331 //---------------------------------------------------------------------------
    -
    16332 
    -
    16333 static const char kZoneNameAsia_Rangoon[] ACE_TIME_PROGMEM = "\x05" "Rangoon";
    -
    16334 
    -
    16335 const extended::Info::ZoneInfo kZoneAsia_Rangoon ACE_TIME_PROGMEM = {
    -
    16336  kZoneNameAsia_Rangoon /*name*/,
    -
    16337  0x6d1217c6 /*zoneId*/,
    -
    16338  &kZoneContext /*zoneContext*/,
    -
    16339  1 /*numEras*/,
    -
    16340  kZoneEraAsia_Yangon /*eras*/,
    -
    16341  &kZoneAsia_Yangon /*targetInfo*/,
    -
    16342 };
    -
    16343 
    -
    16344 //---------------------------------------------------------------------------
    -
    16345 // Link name: Asia/Saigon -> Asia/Ho_Chi_Minh
    -
    16346 //---------------------------------------------------------------------------
    -
    16347 
    -
    16348 static const char kZoneNameAsia_Saigon[] ACE_TIME_PROGMEM = "\x05" "Saigon";
    -
    16349 
    -
    16350 const extended::Info::ZoneInfo kZoneAsia_Saigon ACE_TIME_PROGMEM = {
    -
    16351  kZoneNameAsia_Saigon /*name*/,
    -
    16352  0xcf52f713 /*zoneId*/,
    -
    16353  &kZoneContext /*zoneContext*/,
    -
    16354  1 /*numEras*/,
    -
    16355  kZoneEraAsia_Ho_Chi_Minh /*eras*/,
    -
    16356  &kZoneAsia_Ho_Chi_Minh /*targetInfo*/,
    -
    16357 };
    -
    16358 
    -
    16359 //---------------------------------------------------------------------------
    -
    16360 // Link name: Asia/Tel_Aviv -> Asia/Jerusalem
    -
    16361 //---------------------------------------------------------------------------
    -
    16362 
    -
    16363 static const char kZoneNameAsia_Tel_Aviv[] ACE_TIME_PROGMEM = "\x05" "Tel_Aviv";
    -
    16364 
    -
    16365 const extended::Info::ZoneInfo kZoneAsia_Tel_Aviv ACE_TIME_PROGMEM = {
    -
    16366  kZoneNameAsia_Tel_Aviv /*name*/,
    -
    16367  0x166d7c2c /*zoneId*/,
    -
    16368  &kZoneContext /*zoneContext*/,
    -
    16369  1 /*numEras*/,
    -
    16370  kZoneEraAsia_Jerusalem /*eras*/,
    -
    16371  &kZoneAsia_Jerusalem /*targetInfo*/,
    -
    16372 };
    -
    16373 
    -
    16374 //---------------------------------------------------------------------------
    -
    16375 // Link name: Asia/Thimbu -> Asia/Thimphu
    -
    16376 //---------------------------------------------------------------------------
    -
    16377 
    -
    16378 static const char kZoneNameAsia_Thimbu[] ACE_TIME_PROGMEM = "\x05" "Thimbu";
    -
    16379 
    -
    16380 const extended::Info::ZoneInfo kZoneAsia_Thimbu ACE_TIME_PROGMEM = {
    -
    16381  kZoneNameAsia_Thimbu /*name*/,
    -
    16382  0xd226e31b /*zoneId*/,
    -
    16383  &kZoneContext /*zoneContext*/,
    -
    16384  1 /*numEras*/,
    -
    16385  kZoneEraAsia_Thimphu /*eras*/,
    -
    16386  &kZoneAsia_Thimphu /*targetInfo*/,
    -
    16387 };
    -
    16388 
    -
    16389 //---------------------------------------------------------------------------
    -
    16390 // Link name: Asia/Ujung_Pandang -> Asia/Makassar
    -
    16391 //---------------------------------------------------------------------------
    -
    16392 
    -
    16393 static const char kZoneNameAsia_Ujung_Pandang[] ACE_TIME_PROGMEM = "\x05" "Ujung_Pandang";
    -
    16394 
    -
    16395 const extended::Info::ZoneInfo kZoneAsia_Ujung_Pandang ACE_TIME_PROGMEM = {
    -
    16396  kZoneNameAsia_Ujung_Pandang /*name*/,
    -
    16397  0x5d001eb3 /*zoneId*/,
    -
    16398  &kZoneContext /*zoneContext*/,
    -
    16399  1 /*numEras*/,
    -
    16400  kZoneEraAsia_Makassar /*eras*/,
    -
    16401  &kZoneAsia_Makassar /*targetInfo*/,
    -
    16402 };
    -
    16403 
    -
    16404 //---------------------------------------------------------------------------
    -
    16405 // Link name: Asia/Ulan_Bator -> Asia/Ulaanbaatar
    -
    16406 //---------------------------------------------------------------------------
    -
    16407 
    -
    16408 static const char kZoneNameAsia_Ulan_Bator[] ACE_TIME_PROGMEM = "\x05" "Ulan_Bator";
    -
    16409 
    -
    16410 const extended::Info::ZoneInfo kZoneAsia_Ulan_Bator ACE_TIME_PROGMEM = {
    -
    16411  kZoneNameAsia_Ulan_Bator /*name*/,
    -
    16412  0x394db4d9 /*zoneId*/,
    -
    16413  &kZoneContext /*zoneContext*/,
    -
    16414  1 /*numEras*/,
    -
    16415  kZoneEraAsia_Ulaanbaatar /*eras*/,
    -
    16416  &kZoneAsia_Ulaanbaatar /*targetInfo*/,
    -
    16417 };
    -
    16418 
    -
    16419 //---------------------------------------------------------------------------
    -
    16420 // Link name: Asia/Vientiane -> Asia/Bangkok
    -
    16421 //---------------------------------------------------------------------------
    -
    16422 
    -
    16423 static const char kZoneNameAsia_Vientiane[] ACE_TIME_PROGMEM = "\x05" "Vientiane";
    -
    16424 
    -
    16425 const extended::Info::ZoneInfo kZoneAsia_Vientiane ACE_TIME_PROGMEM = {
    -
    16426  kZoneNameAsia_Vientiane /*name*/,
    -
    16427  0x89d68d75 /*zoneId*/,
    -
    16428  &kZoneContext /*zoneContext*/,
    -
    16429  1 /*numEras*/,
    -
    16430  kZoneEraAsia_Bangkok /*eras*/,
    -
    16431  &kZoneAsia_Bangkok /*targetInfo*/,
    -
    16432 };
    -
    16433 
    -
    16434 //---------------------------------------------------------------------------
    -
    16435 // Link name: Atlantic/Faeroe -> Atlantic/Faroe
    -
    16436 //---------------------------------------------------------------------------
    -
    16437 
    -
    16438 static const char kZoneNameAtlantic_Faeroe[] ACE_TIME_PROGMEM = "\x06" "Faeroe";
    -
    16439 
    -
    16440 const extended::Info::ZoneInfo kZoneAtlantic_Faeroe ACE_TIME_PROGMEM = {
    -
    16441  kZoneNameAtlantic_Faeroe /*name*/,
    -
    16442  0x031ec516 /*zoneId*/,
    -
    16443  &kZoneContext /*zoneContext*/,
    -
    16444  1 /*numEras*/,
    -
    16445  kZoneEraAtlantic_Faroe /*eras*/,
    -
    16446  &kZoneAtlantic_Faroe /*targetInfo*/,
    -
    16447 };
    -
    16448 
    -
    16449 //---------------------------------------------------------------------------
    -
    16450 // Link name: Atlantic/Jan_Mayen -> Europe/Berlin
    -
    16451 //---------------------------------------------------------------------------
    -
    16452 
    -
    16453 static const char kZoneNameAtlantic_Jan_Mayen[] ACE_TIME_PROGMEM = "\x06" "Jan_Mayen";
    -
    16454 
    -
    16455 const extended::Info::ZoneInfo kZoneAtlantic_Jan_Mayen ACE_TIME_PROGMEM = {
    -
    16456  kZoneNameAtlantic_Jan_Mayen /*name*/,
    -
    16457  0x5a7535b6 /*zoneId*/,
    -
    16458  &kZoneContext /*zoneContext*/,
    -
    16459  1 /*numEras*/,
    -
    16460  kZoneEraEurope_Berlin /*eras*/,
    -
    16461  &kZoneEurope_Berlin /*targetInfo*/,
    -
    16462 };
    -
    16463 
    -
    16464 //---------------------------------------------------------------------------
    -
    16465 // Link name: Atlantic/Reykjavik -> Africa/Abidjan
    -
    16466 //---------------------------------------------------------------------------
    -
    16467 
    -
    16468 static const char kZoneNameAtlantic_Reykjavik[] ACE_TIME_PROGMEM = "\x06" "Reykjavik";
    -
    16469 
    -
    16470 const extended::Info::ZoneInfo kZoneAtlantic_Reykjavik ACE_TIME_PROGMEM = {
    -
    16471  kZoneNameAtlantic_Reykjavik /*name*/,
    -
    16472  0x1c2b4f74 /*zoneId*/,
    -
    16473  &kZoneContext /*zoneContext*/,
    -
    16474  1 /*numEras*/,
    -
    16475  kZoneEraAfrica_Abidjan /*eras*/,
    -
    16476  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    16477 };
    -
    16478 
    -
    16479 //---------------------------------------------------------------------------
    -
    16480 // Link name: Atlantic/St_Helena -> Africa/Abidjan
    -
    16481 //---------------------------------------------------------------------------
    -
    16482 
    -
    16483 static const char kZoneNameAtlantic_St_Helena[] ACE_TIME_PROGMEM = "\x06" "St_Helena";
    -
    16484 
    -
    16485 const extended::Info::ZoneInfo kZoneAtlantic_St_Helena ACE_TIME_PROGMEM = {
    -
    16486  kZoneNameAtlantic_St_Helena /*name*/,
    -
    16487  0x451fc5f7 /*zoneId*/,
    -
    16488  &kZoneContext /*zoneContext*/,
    -
    16489  1 /*numEras*/,
    -
    16490  kZoneEraAfrica_Abidjan /*eras*/,
    -
    16491  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    16492 };
    -
    16493 
    -
    16494 //---------------------------------------------------------------------------
    -
    16495 // Link name: Australia/ACT -> Australia/Sydney
    -
    16496 //---------------------------------------------------------------------------
    -
    16497 
    -
    16498 static const char kZoneNameAustralia_ACT[] ACE_TIME_PROGMEM = "\x07" "ACT";
    -
    16499 
    -
    16500 const extended::Info::ZoneInfo kZoneAustralia_ACT ACE_TIME_PROGMEM = {
    -
    16501  kZoneNameAustralia_ACT /*name*/,
    -
    16502  0x8a970eb2 /*zoneId*/,
    -
    16503  &kZoneContext /*zoneContext*/,
    -
    16504  1 /*numEras*/,
    -
    16505  kZoneEraAustralia_Sydney /*eras*/,
    -
    16506  &kZoneAustralia_Sydney /*targetInfo*/,
    -
    16507 };
    -
    16508 
    -
    16509 //---------------------------------------------------------------------------
    -
    16510 // Link name: Australia/Canberra -> Australia/Sydney
    -
    16511 //---------------------------------------------------------------------------
    -
    16512 
    -
    16513 static const char kZoneNameAustralia_Canberra[] ACE_TIME_PROGMEM = "\x07" "Canberra";
    -
    16514 
    -
    16515 const extended::Info::ZoneInfo kZoneAustralia_Canberra ACE_TIME_PROGMEM = {
    -
    16516  kZoneNameAustralia_Canberra /*name*/,
    -
    16517  0x2a09ae58 /*zoneId*/,
    -
    16518  &kZoneContext /*zoneContext*/,
    -
    16519  1 /*numEras*/,
    -
    16520  kZoneEraAustralia_Sydney /*eras*/,
    -
    16521  &kZoneAustralia_Sydney /*targetInfo*/,
    -
    16522 };
    -
    16523 
    -
    16524 //---------------------------------------------------------------------------
    -
    16525 // Link name: Australia/Currie -> Australia/Hobart
    -
    16526 //---------------------------------------------------------------------------
    -
    16527 
    -
    16528 static const char kZoneNameAustralia_Currie[] ACE_TIME_PROGMEM = "\x07" "Currie";
    -
    16529 
    -
    16530 const extended::Info::ZoneInfo kZoneAustralia_Currie ACE_TIME_PROGMEM = {
    -
    16531  kZoneNameAustralia_Currie /*name*/,
    -
    16532  0x278b6a24 /*zoneId*/,
    -
    16533  &kZoneContext /*zoneContext*/,
    -
    16534  1 /*numEras*/,
    -
    16535  kZoneEraAustralia_Hobart /*eras*/,
    -
    16536  &kZoneAustralia_Hobart /*targetInfo*/,
    -
    16537 };
    -
    16538 
    -
    16539 //---------------------------------------------------------------------------
    -
    16540 // Link name: Australia/LHI -> Australia/Lord_Howe
    -
    16541 //---------------------------------------------------------------------------
    -
    16542 
    -
    16543 static const char kZoneNameAustralia_LHI[] ACE_TIME_PROGMEM = "\x07" "LHI";
    -
    16544 
    -
    16545 const extended::Info::ZoneInfo kZoneAustralia_LHI ACE_TIME_PROGMEM = {
    -
    16546  kZoneNameAustralia_LHI /*name*/,
    -
    16547  0x8a973e17 /*zoneId*/,
    -
    16548  &kZoneContext /*zoneContext*/,
    -
    16549  1 /*numEras*/,
    -
    16550  kZoneEraAustralia_Lord_Howe /*eras*/,
    -
    16551  &kZoneAustralia_Lord_Howe /*targetInfo*/,
    -
    16552 };
    -
    16553 
    -
    16554 //---------------------------------------------------------------------------
    -
    16555 // Link name: Australia/NSW -> Australia/Sydney
    -
    16556 //---------------------------------------------------------------------------
    -
    16557 
    -
    16558 static const char kZoneNameAustralia_NSW[] ACE_TIME_PROGMEM = "\x07" "NSW";
    -
    16559 
    -
    16560 const extended::Info::ZoneInfo kZoneAustralia_NSW ACE_TIME_PROGMEM = {
    -
    16561  kZoneNameAustralia_NSW /*name*/,
    -
    16562  0x8a974812 /*zoneId*/,
    -
    16563  &kZoneContext /*zoneContext*/,
    -
    16564  1 /*numEras*/,
    -
    16565  kZoneEraAustralia_Sydney /*eras*/,
    -
    16566  &kZoneAustralia_Sydney /*targetInfo*/,
    -
    16567 };
    -
    16568 
    -
    16569 //---------------------------------------------------------------------------
    -
    16570 // Link name: Australia/North -> Australia/Darwin
    -
    16571 //---------------------------------------------------------------------------
    -
    16572 
    -
    16573 static const char kZoneNameAustralia_North[] ACE_TIME_PROGMEM = "\x07" "North";
    -
    16574 
    -
    16575 const extended::Info::ZoneInfo kZoneAustralia_North ACE_TIME_PROGMEM = {
    -
    16576  kZoneNameAustralia_North /*name*/,
    -
    16577  0x8d997165 /*zoneId*/,
    -
    16578  &kZoneContext /*zoneContext*/,
    -
    16579  1 /*numEras*/,
    -
    16580  kZoneEraAustralia_Darwin /*eras*/,
    -
    16581  &kZoneAustralia_Darwin /*targetInfo*/,
    -
    16582 };
    -
    16583 
    -
    16584 //---------------------------------------------------------------------------
    -
    16585 // Link name: Australia/Queensland -> Australia/Brisbane
    -
    16586 //---------------------------------------------------------------------------
    -
    16587 
    -
    16588 static const char kZoneNameAustralia_Queensland[] ACE_TIME_PROGMEM = "\x07" "Queensland";
    -
    16589 
    -
    16590 const extended::Info::ZoneInfo kZoneAustralia_Queensland ACE_TIME_PROGMEM = {
    -
    16591  kZoneNameAustralia_Queensland /*name*/,
    -
    16592  0xd326ed0a /*zoneId*/,
    -
    16593  &kZoneContext /*zoneContext*/,
    -
    16594  1 /*numEras*/,
    -
    16595  kZoneEraAustralia_Brisbane /*eras*/,
    -
    16596  &kZoneAustralia_Brisbane /*targetInfo*/,
    -
    16597 };
    -
    16598 
    -
    16599 //---------------------------------------------------------------------------
    -
    16600 // Link name: Australia/South -> Australia/Adelaide
    -
    16601 //---------------------------------------------------------------------------
    -
    16602 
    -
    16603 static const char kZoneNameAustralia_South[] ACE_TIME_PROGMEM = "\x07" "South";
    -
    16604 
    -
    16605 const extended::Info::ZoneInfo kZoneAustralia_South ACE_TIME_PROGMEM = {
    -
    16606  kZoneNameAustralia_South /*name*/,
    -
    16607  0x8df3f8ad /*zoneId*/,
    -
    16608  &kZoneContext /*zoneContext*/,
    -
    16609  1 /*numEras*/,
    -
    16610  kZoneEraAustralia_Adelaide /*eras*/,
    -
    16611  &kZoneAustralia_Adelaide /*targetInfo*/,
    -
    16612 };
    -
    16613 
    -
    16614 //---------------------------------------------------------------------------
    -
    16615 // Link name: Australia/Tasmania -> Australia/Hobart
    -
    16616 //---------------------------------------------------------------------------
    -
    16617 
    -
    16618 static const char kZoneNameAustralia_Tasmania[] ACE_TIME_PROGMEM = "\x07" "Tasmania";
    -
    16619 
    -
    16620 const extended::Info::ZoneInfo kZoneAustralia_Tasmania ACE_TIME_PROGMEM = {
    -
    16621  kZoneNameAustralia_Tasmania /*name*/,
    -
    16622  0xe6d76648 /*zoneId*/,
    -
    16623  &kZoneContext /*zoneContext*/,
    -
    16624  1 /*numEras*/,
    -
    16625  kZoneEraAustralia_Hobart /*eras*/,
    -
    16626  &kZoneAustralia_Hobart /*targetInfo*/,
    -
    16627 };
    -
    16628 
    -
    16629 //---------------------------------------------------------------------------
    -
    16630 // Link name: Australia/Victoria -> Australia/Melbourne
    -
    16631 //---------------------------------------------------------------------------
    -
    16632 
    -
    16633 static const char kZoneNameAustralia_Victoria[] ACE_TIME_PROGMEM = "\x07" "Victoria";
    -
    16634 
    -
    16635 const extended::Info::ZoneInfo kZoneAustralia_Victoria ACE_TIME_PROGMEM = {
    -
    16636  kZoneNameAustralia_Victoria /*name*/,
    -
    16637  0x0260d5db /*zoneId*/,
    -
    16638  &kZoneContext /*zoneContext*/,
    -
    16639  1 /*numEras*/,
    -
    16640  kZoneEraAustralia_Melbourne /*eras*/,
    -
    16641  &kZoneAustralia_Melbourne /*targetInfo*/,
    -
    16642 };
    -
    16643 
    -
    16644 //---------------------------------------------------------------------------
    -
    16645 // Link name: Australia/West -> Australia/Perth
    -
    16646 //---------------------------------------------------------------------------
    -
    16647 
    -
    16648 static const char kZoneNameAustralia_West[] ACE_TIME_PROGMEM = "\x07" "West";
    -
    16649 
    -
    16650 const extended::Info::ZoneInfo kZoneAustralia_West ACE_TIME_PROGMEM = {
    -
    16651  kZoneNameAustralia_West /*name*/,
    -
    16652  0xdd858a5d /*zoneId*/,
    -
    16653  &kZoneContext /*zoneContext*/,
    -
    16654  1 /*numEras*/,
    -
    16655  kZoneEraAustralia_Perth /*eras*/,
    -
    16656  &kZoneAustralia_Perth /*targetInfo*/,
    -
    16657 };
    -
    16658 
    -
    16659 //---------------------------------------------------------------------------
    -
    16660 // Link name: Australia/Yancowinna -> Australia/Broken_Hill
    -
    16661 //---------------------------------------------------------------------------
    -
    16662 
    -
    16663 static const char kZoneNameAustralia_Yancowinna[] ACE_TIME_PROGMEM = "\x07" "Yancowinna";
    -
    16664 
    -
    16665 const extended::Info::ZoneInfo kZoneAustralia_Yancowinna ACE_TIME_PROGMEM = {
    -
    16666  kZoneNameAustralia_Yancowinna /*name*/,
    -
    16667  0x90bac131 /*zoneId*/,
    -
    16668  &kZoneContext /*zoneContext*/,
    -
    16669  2 /*numEras*/,
    -
    16670  kZoneEraAustralia_Broken_Hill /*eras*/,
    -
    16671  &kZoneAustralia_Broken_Hill /*targetInfo*/,
    -
    16672 };
    -
    16673 
    -
    16674 //---------------------------------------------------------------------------
    -
    16675 // Link name: Brazil/Acre -> America/Rio_Branco
    -
    16676 //---------------------------------------------------------------------------
    -
    16677 
    -
    16678 static const char kZoneNameBrazil_Acre[] ACE_TIME_PROGMEM = "\x08" "Acre";
    -
    16679 
    -
    16680 const extended::Info::ZoneInfo kZoneBrazil_Acre ACE_TIME_PROGMEM = {
    -
    16681  kZoneNameBrazil_Acre /*name*/,
    -
    16682  0x66934f93 /*zoneId*/,
    -
    16683  &kZoneContext /*zoneContext*/,
    -
    16684  3 /*numEras*/,
    -
    16685  kZoneEraAmerica_Rio_Branco /*eras*/,
    -
    16686  &kZoneAmerica_Rio_Branco /*targetInfo*/,
    -
    16687 };
    -
    16688 
    -
    16689 //---------------------------------------------------------------------------
    -
    16690 // Link name: Brazil/DeNoronha -> America/Noronha
    -
    16691 //---------------------------------------------------------------------------
    -
    16692 
    -
    16693 static const char kZoneNameBrazil_DeNoronha[] ACE_TIME_PROGMEM = "\x08" "DeNoronha";
    -
    16694 
    -
    16695 const extended::Info::ZoneInfo kZoneBrazil_DeNoronha ACE_TIME_PROGMEM = {
    -
    16696  kZoneNameBrazil_DeNoronha /*name*/,
    -
    16697  0x9b4cb496 /*zoneId*/,
    -
    16698  &kZoneContext /*zoneContext*/,
    -
    16699  5 /*numEras*/,
    -
    16700  kZoneEraAmerica_Noronha /*eras*/,
    -
    16701  &kZoneAmerica_Noronha /*targetInfo*/,
    -
    16702 };
    -
    16703 
    -
    16704 //---------------------------------------------------------------------------
    -
    16705 // Link name: Brazil/East -> America/Sao_Paulo
    -
    16706 //---------------------------------------------------------------------------
    -
    16707 
    -
    16708 static const char kZoneNameBrazil_East[] ACE_TIME_PROGMEM = "\x08" "East";
    -
    16709 
    -
    16710 const extended::Info::ZoneInfo kZoneBrazil_East ACE_TIME_PROGMEM = {
    -
    16711  kZoneNameBrazil_East /*name*/,
    -
    16712  0x669578c5 /*zoneId*/,
    -
    16713  &kZoneContext /*zoneContext*/,
    -
    16714  1 /*numEras*/,
    -
    16715  kZoneEraAmerica_Sao_Paulo /*eras*/,
    -
    16716  &kZoneAmerica_Sao_Paulo /*targetInfo*/,
    -
    16717 };
    -
    16718 
    -
    16719 //---------------------------------------------------------------------------
    -
    16720 // Link name: Brazil/West -> America/Manaus
    -
    16721 //---------------------------------------------------------------------------
    -
    16722 
    -
    16723 static const char kZoneNameBrazil_West[] ACE_TIME_PROGMEM = "\x08" "West";
    -
    16724 
    -
    16725 const extended::Info::ZoneInfo kZoneBrazil_West ACE_TIME_PROGMEM = {
    -
    16726  kZoneNameBrazil_West /*name*/,
    -
    16727  0x669f689b /*zoneId*/,
    -
    16728  &kZoneContext /*zoneContext*/,
    -
    16729  1 /*numEras*/,
    -
    16730  kZoneEraAmerica_Manaus /*eras*/,
    -
    16731  &kZoneAmerica_Manaus /*targetInfo*/,
    -
    16732 };
    -
    16733 
    -
    16734 //---------------------------------------------------------------------------
    -
    16735 // Link name: CET -> Europe/Brussels
    -
    16736 //---------------------------------------------------------------------------
    -
    16737 
    -
    16738 static const char kZoneNameCET[] ACE_TIME_PROGMEM = "CET";
    -
    16739 
    -
    16740 const extended::Info::ZoneInfo kZoneCET ACE_TIME_PROGMEM = {
    -
    16741  kZoneNameCET /*name*/,
    -
    16742  0x0b87d921 /*zoneId*/,
    -
    16743  &kZoneContext /*zoneContext*/,
    -
    16744  1 /*numEras*/,
    -
    16745  kZoneEraEurope_Brussels /*eras*/,
    -
    16746  &kZoneEurope_Brussels /*targetInfo*/,
    -
    16747 };
    -
    16748 
    -
    16749 //---------------------------------------------------------------------------
    -
    16750 // Link name: CST6CDT -> America/Chicago
    -
    16751 //---------------------------------------------------------------------------
    -
    16752 
    -
    16753 static const char kZoneNameCST6CDT[] ACE_TIME_PROGMEM = "CST6CDT";
    -
    16754 
    -
    16755 const extended::Info::ZoneInfo kZoneCST6CDT ACE_TIME_PROGMEM = {
    -
    16756  kZoneNameCST6CDT /*name*/,
    -
    16757  0xf0e87d00 /*zoneId*/,
    -
    16758  &kZoneContext /*zoneContext*/,
    -
    16759  1 /*numEras*/,
    -
    16760  kZoneEraAmerica_Chicago /*eras*/,
    -
    16761  &kZoneAmerica_Chicago /*targetInfo*/,
    -
    16762 };
    -
    16763 
    -
    16764 //---------------------------------------------------------------------------
    -
    16765 // Link name: Canada/Atlantic -> America/Halifax
    -
    16766 //---------------------------------------------------------------------------
    -
    16767 
    -
    16768 static const char kZoneNameCanada_Atlantic[] ACE_TIME_PROGMEM = "\x09" "Atlantic";
    -
    16769 
    -
    16770 const extended::Info::ZoneInfo kZoneCanada_Atlantic ACE_TIME_PROGMEM = {
    -
    16771  kZoneNameCanada_Atlantic /*name*/,
    -
    16772  0x536b119c /*zoneId*/,
    -
    16773  &kZoneContext /*zoneContext*/,
    -
    16774  1 /*numEras*/,
    -
    16775  kZoneEraAmerica_Halifax /*eras*/,
    -
    16776  &kZoneAmerica_Halifax /*targetInfo*/,
    -
    16777 };
    -
    16778 
    -
    16779 //---------------------------------------------------------------------------
    -
    16780 // Link name: Canada/Central -> America/Winnipeg
    -
    16781 //---------------------------------------------------------------------------
    -
    16782 
    -
    16783 static const char kZoneNameCanada_Central[] ACE_TIME_PROGMEM = "\x09" "Central";
    -
    16784 
    -
    16785 const extended::Info::ZoneInfo kZoneCanada_Central ACE_TIME_PROGMEM = {
    -
    16786  kZoneNameCanada_Central /*name*/,
    -
    16787  0x626710f5 /*zoneId*/,
    -
    16788  &kZoneContext /*zoneContext*/,
    -
    16789  2 /*numEras*/,
    -
    16790  kZoneEraAmerica_Winnipeg /*eras*/,
    -
    16791  &kZoneAmerica_Winnipeg /*targetInfo*/,
    -
    16792 };
    -
    16793 
    -
    16794 //---------------------------------------------------------------------------
    -
    16795 // Link name: Canada/Eastern -> America/Toronto
    -
    16796 //---------------------------------------------------------------------------
    -
    16797 
    -
    16798 static const char kZoneNameCanada_Eastern[] ACE_TIME_PROGMEM = "\x09" "Eastern";
    -
    16799 
    -
    16800 const extended::Info::ZoneInfo kZoneCanada_Eastern ACE_TIME_PROGMEM = {
    -
    16801  kZoneNameCanada_Eastern /*name*/,
    -
    16802  0xf3612d5e /*zoneId*/,
    -
    16803  &kZoneContext /*zoneContext*/,
    -
    16804  1 /*numEras*/,
    -
    16805  kZoneEraAmerica_Toronto /*eras*/,
    -
    16806  &kZoneAmerica_Toronto /*targetInfo*/,
    -
    16807 };
    -
    16808 
    -
    16809 //---------------------------------------------------------------------------
    -
    16810 // Link name: Canada/Mountain -> America/Edmonton
    -
    16811 //---------------------------------------------------------------------------
    -
    16812 
    -
    16813 static const char kZoneNameCanada_Mountain[] ACE_TIME_PROGMEM = "\x09" "Mountain";
    -
    16814 
    -
    16815 const extended::Info::ZoneInfo kZoneCanada_Mountain ACE_TIME_PROGMEM = {
    -
    16816  kZoneNameCanada_Mountain /*name*/,
    -
    16817  0xfb8a8217 /*zoneId*/,
    -
    16818  &kZoneContext /*zoneContext*/,
    -
    16819  1 /*numEras*/,
    -
    16820  kZoneEraAmerica_Edmonton /*eras*/,
    -
    16821  &kZoneAmerica_Edmonton /*targetInfo*/,
    -
    16822 };
    -
    16823 
    -
    16824 //---------------------------------------------------------------------------
    -
    16825 // Link name: Canada/Newfoundland -> America/St_Johns
    -
    16826 //---------------------------------------------------------------------------
    -
    16827 
    -
    16828 static const char kZoneNameCanada_Newfoundland[] ACE_TIME_PROGMEM = "\x09" "Newfoundland";
    -
    16829 
    -
    16830 const extended::Info::ZoneInfo kZoneCanada_Newfoundland ACE_TIME_PROGMEM = {
    -
    16831  kZoneNameCanada_Newfoundland /*name*/,
    -
    16832  0xb396e991 /*zoneId*/,
    -
    16833  &kZoneContext /*zoneContext*/,
    -
    16834  2 /*numEras*/,
    -
    16835  kZoneEraAmerica_St_Johns /*eras*/,
    -
    16836  &kZoneAmerica_St_Johns /*targetInfo*/,
    -
    16837 };
    -
    16838 
    -
    16839 //---------------------------------------------------------------------------
    -
    16840 // Link name: Canada/Pacific -> America/Vancouver
    -
    16841 //---------------------------------------------------------------------------
    -
    16842 
    -
    16843 static const char kZoneNameCanada_Pacific[] ACE_TIME_PROGMEM = "\x09" "Pacific";
    -
    16844 
    -
    16845 const extended::Info::ZoneInfo kZoneCanada_Pacific ACE_TIME_PROGMEM = {
    -
    16846  kZoneNameCanada_Pacific /*name*/,
    -
    16847  0x40fa3c7b /*zoneId*/,
    -
    16848  &kZoneContext /*zoneContext*/,
    -
    16849  1 /*numEras*/,
    -
    16850  kZoneEraAmerica_Vancouver /*eras*/,
    -
    16851  &kZoneAmerica_Vancouver /*targetInfo*/,
    -
    16852 };
    -
    16853 
    -
    16854 //---------------------------------------------------------------------------
    -
    16855 // Link name: Canada/Saskatchewan -> America/Regina
    -
    16856 //---------------------------------------------------------------------------
    -
    16857 
    -
    16858 static const char kZoneNameCanada_Saskatchewan[] ACE_TIME_PROGMEM = "\x09" "Saskatchewan";
    -
    16859 
    -
    16860 const extended::Info::ZoneInfo kZoneCanada_Saskatchewan ACE_TIME_PROGMEM = {
    -
    16861  kZoneNameCanada_Saskatchewan /*name*/,
    -
    16862  0x77311f49 /*zoneId*/,
    -
    16863  &kZoneContext /*zoneContext*/,
    -
    16864  1 /*numEras*/,
    -
    16865  kZoneEraAmerica_Regina /*eras*/,
    -
    16866  &kZoneAmerica_Regina /*targetInfo*/,
    -
    16867 };
    -
    16868 
    -
    16869 //---------------------------------------------------------------------------
    -
    16870 // Link name: Canada/Yukon -> America/Whitehorse
    -
    16871 //---------------------------------------------------------------------------
    -
    16872 
    -
    16873 static const char kZoneNameCanada_Yukon[] ACE_TIME_PROGMEM = "\x09" "Yukon";
    -
    16874 
    -
    16875 const extended::Info::ZoneInfo kZoneCanada_Yukon ACE_TIME_PROGMEM = {
    -
    16876  kZoneNameCanada_Yukon /*name*/,
    -
    16877  0x78dd35c2 /*zoneId*/,
    -
    16878  &kZoneContext /*zoneContext*/,
    -
    16879  2 /*numEras*/,
    -
    16880  kZoneEraAmerica_Whitehorse /*eras*/,
    -
    16881  &kZoneAmerica_Whitehorse /*targetInfo*/,
    -
    16882 };
    -
    16883 
    -
    16884 //---------------------------------------------------------------------------
    -
    16885 // Link name: Chile/Continental -> America/Santiago
    -
    16886 //---------------------------------------------------------------------------
    -
    16887 
    -
    16888 static const char kZoneNameChile_Continental[] ACE_TIME_PROGMEM = "Chile/Continental";
    -
    16889 
    -
    16890 const extended::Info::ZoneInfo kZoneChile_Continental ACE_TIME_PROGMEM = {
    -
    16891  kZoneNameChile_Continental /*name*/,
    -
    16892  0x7e2bdb18 /*zoneId*/,
    -
    16893  &kZoneContext /*zoneContext*/,
    -
    16894  1 /*numEras*/,
    -
    16895  kZoneEraAmerica_Santiago /*eras*/,
    -
    16896  &kZoneAmerica_Santiago /*targetInfo*/,
    -
    16897 };
    -
    16898 
    -
    16899 //---------------------------------------------------------------------------
    -
    16900 // Link name: Chile/EasterIsland -> Pacific/Easter
    -
    16901 //---------------------------------------------------------------------------
    -
    16902 
    -
    16903 static const char kZoneNameChile_EasterIsland[] ACE_TIME_PROGMEM = "Chile/EasterIsland";
    -
    16904 
    -
    16905 const extended::Info::ZoneInfo kZoneChile_EasterIsland ACE_TIME_PROGMEM = {
    -
    16906  kZoneNameChile_EasterIsland /*name*/,
    -
    16907  0xb0982af8 /*zoneId*/,
    -
    16908  &kZoneContext /*zoneContext*/,
    -
    16909  1 /*numEras*/,
    -
    16910  kZoneEraPacific_Easter /*eras*/,
    -
    16911  &kZonePacific_Easter /*targetInfo*/,
    -
    16912 };
    -
    16913 
    -
    16914 //---------------------------------------------------------------------------
    -
    16915 // Link name: Cuba -> America/Havana
    -
    16916 //---------------------------------------------------------------------------
    -
    16917 
    -
    16918 static const char kZoneNameCuba[] ACE_TIME_PROGMEM = "Cuba";
    -
    16919 
    -
    16920 const extended::Info::ZoneInfo kZoneCuba ACE_TIME_PROGMEM = {
    -
    16921  kZoneNameCuba /*name*/,
    -
    16922  0x7c83cba0 /*zoneId*/,
    -
    16923  &kZoneContext /*zoneContext*/,
    -
    16924  1 /*numEras*/,
    -
    16925  kZoneEraAmerica_Havana /*eras*/,
    -
    16926  &kZoneAmerica_Havana /*targetInfo*/,
    -
    16927 };
    -
    16928 
    -
    16929 //---------------------------------------------------------------------------
    -
    16930 // Link name: EET -> Europe/Athens
    -
    16931 //---------------------------------------------------------------------------
    -
    16932 
    -
    16933 static const char kZoneNameEET[] ACE_TIME_PROGMEM = "EET";
    -
    16934 
    -
    16935 const extended::Info::ZoneInfo kZoneEET ACE_TIME_PROGMEM = {
    -
    16936  kZoneNameEET /*name*/,
    -
    16937  0x0b87e1a3 /*zoneId*/,
    -
    16938  &kZoneContext /*zoneContext*/,
    -
    16939  1 /*numEras*/,
    -
    16940  kZoneEraEurope_Athens /*eras*/,
    -
    16941  &kZoneEurope_Athens /*targetInfo*/,
    -
    16942 };
    -
    16943 
    -
    16944 //---------------------------------------------------------------------------
    -
    16945 // Link name: EST -> America/Panama
    -
    16946 //---------------------------------------------------------------------------
    -
    16947 
    -
    16948 static const char kZoneNameEST[] ACE_TIME_PROGMEM = "EST";
    -
    16949 
    -
    16950 const extended::Info::ZoneInfo kZoneEST ACE_TIME_PROGMEM = {
    -
    16951  kZoneNameEST /*name*/,
    -
    16952  0x0b87e371 /*zoneId*/,
    -
    16953  &kZoneContext /*zoneContext*/,
    -
    16954  1 /*numEras*/,
    -
    16955  kZoneEraAmerica_Panama /*eras*/,
    -
    16956  &kZoneAmerica_Panama /*targetInfo*/,
    -
    16957 };
    -
    16958 
    -
    16959 //---------------------------------------------------------------------------
    -
    16960 // Link name: EST5EDT -> America/New_York
    -
    16961 //---------------------------------------------------------------------------
    -
    16962 
    -
    16963 static const char kZoneNameEST5EDT[] ACE_TIME_PROGMEM = "EST5EDT";
    -
    16964 
    -
    16965 const extended::Info::ZoneInfo kZoneEST5EDT ACE_TIME_PROGMEM = {
    -
    16966  kZoneNameEST5EDT /*name*/,
    -
    16967  0x8adc72a3 /*zoneId*/,
    -
    16968  &kZoneContext /*zoneContext*/,
    -
    16969  1 /*numEras*/,
    -
    16970  kZoneEraAmerica_New_York /*eras*/,
    -
    16971  &kZoneAmerica_New_York /*targetInfo*/,
    -
    16972 };
    -
    16973 
    -
    16974 //---------------------------------------------------------------------------
    -
    16975 // Link name: Egypt -> Africa/Cairo
    -
    16976 //---------------------------------------------------------------------------
    -
    16977 
    -
    16978 static const char kZoneNameEgypt[] ACE_TIME_PROGMEM = "Egypt";
    -
    16979 
    -
    16980 const extended::Info::ZoneInfo kZoneEgypt ACE_TIME_PROGMEM = {
    -
    16981  kZoneNameEgypt /*name*/,
    -
    16982  0x0d1a278e /*zoneId*/,
    -
    16983  &kZoneContext /*zoneContext*/,
    -
    16984  1 /*numEras*/,
    -
    16985  kZoneEraAfrica_Cairo /*eras*/,
    -
    16986  &kZoneAfrica_Cairo /*targetInfo*/,
    -
    16987 };
    -
    16988 
    -
    16989 //---------------------------------------------------------------------------
    -
    16990 // Link name: Eire -> Europe/Dublin
    -
    16991 //---------------------------------------------------------------------------
    -
    16992 
    -
    16993 static const char kZoneNameEire[] ACE_TIME_PROGMEM = "Eire";
    -
    16994 
    -
    16995 const extended::Info::ZoneInfo kZoneEire ACE_TIME_PROGMEM = {
    -
    16996  kZoneNameEire /*name*/,
    -
    16997  0x7c84b36a /*zoneId*/,
    -
    16998  &kZoneContext /*zoneContext*/,
    -
    16999  1 /*numEras*/,
    -
    17000  kZoneEraEurope_Dublin /*eras*/,
    -
    17001  &kZoneEurope_Dublin /*targetInfo*/,
    -
    17002 };
    -
    17003 
    -
    17004 //---------------------------------------------------------------------------
    -
    17005 // Link name: Etc/GMT+0 -> Etc/GMT
    -
    17006 //---------------------------------------------------------------------------
    -
    17007 
    -
    17008 static const char kZoneNameEtc_GMT_PLUS_0[] ACE_TIME_PROGMEM = "\x0a" "GMT+0";
    -
    17009 
    -
    17010 const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_0 ACE_TIME_PROGMEM = {
    -
    17011  kZoneNameEtc_GMT_PLUS_0 /*name*/,
    -
    17012  0x9d13da13 /*zoneId*/,
    -
    17013  &kZoneContext /*zoneContext*/,
    -
    17014  1 /*numEras*/,
    -
    17015  kZoneEraEtc_GMT /*eras*/,
    -
    17016  &kZoneEtc_GMT /*targetInfo*/,
    -
    17017 };
    -
    17018 
    -
    17019 //---------------------------------------------------------------------------
    -
    17020 // Link name: Etc/GMT-0 -> Etc/GMT
    -
    17021 //---------------------------------------------------------------------------
    -
    17022 
    -
    17023 static const char kZoneNameEtc_GMT_0[] ACE_TIME_PROGMEM = "\x0a" "GMT-0";
    -
    17024 
    -
    17025 const extended::Info::ZoneInfo kZoneEtc_GMT_0 ACE_TIME_PROGMEM = {
    -
    17026  kZoneNameEtc_GMT_0 /*name*/,
    -
    17027  0x9d13da55 /*zoneId*/,
    -
    17028  &kZoneContext /*zoneContext*/,
    -
    17029  1 /*numEras*/,
    -
    17030  kZoneEraEtc_GMT /*eras*/,
    -
    17031  &kZoneEtc_GMT /*targetInfo*/,
    -
    17032 };
    -
    17033 
    -
    17034 //---------------------------------------------------------------------------
    -
    17035 // Link name: Etc/GMT0 -> Etc/GMT
    -
    17036 //---------------------------------------------------------------------------
    -
    17037 
    -
    17038 static const char kZoneNameEtc_GMT0[] ACE_TIME_PROGMEM = "\x0a" "GMT0";
    -
    17039 
    -
    17040 const extended::Info::ZoneInfo kZoneEtc_GMT0 ACE_TIME_PROGMEM = {
    -
    17041  kZoneNameEtc_GMT0 /*name*/,
    -
    17042  0xf53ea988 /*zoneId*/,
    -
    17043  &kZoneContext /*zoneContext*/,
    -
    17044  1 /*numEras*/,
    -
    17045  kZoneEraEtc_GMT /*eras*/,
    -
    17046  &kZoneEtc_GMT /*targetInfo*/,
    -
    17047 };
    -
    17048 
    -
    17049 //---------------------------------------------------------------------------
    -
    17050 // Link name: Etc/Greenwich -> Etc/GMT
    -
    17051 //---------------------------------------------------------------------------
    -
    17052 
    -
    17053 static const char kZoneNameEtc_Greenwich[] ACE_TIME_PROGMEM = "\x0a" "Greenwich";
    -
    17054 
    -
    17055 const extended::Info::ZoneInfo kZoneEtc_Greenwich ACE_TIME_PROGMEM = {
    -
    17056  kZoneNameEtc_Greenwich /*name*/,
    -
    17057  0x26daa98c /*zoneId*/,
    -
    17058  &kZoneContext /*zoneContext*/,
    -
    17059  1 /*numEras*/,
    -
    17060  kZoneEraEtc_GMT /*eras*/,
    -
    17061  &kZoneEtc_GMT /*targetInfo*/,
    -
    17062 };
    -
    17063 
    -
    17064 //---------------------------------------------------------------------------
    -
    17065 // Link name: Etc/UCT -> Etc/UTC
    -
    17066 //---------------------------------------------------------------------------
    -
    17067 
    -
    17068 static const char kZoneNameEtc_UCT[] ACE_TIME_PROGMEM = "\x0a" "UCT";
    -
    17069 
    -
    17070 const extended::Info::ZoneInfo kZoneEtc_UCT ACE_TIME_PROGMEM = {
    -
    17071  kZoneNameEtc_UCT /*name*/,
    -
    17072  0xd8e3189c /*zoneId*/,
    -
    17073  &kZoneContext /*zoneContext*/,
    -
    17074  1 /*numEras*/,
    -
    17075  kZoneEraEtc_UTC /*eras*/,
    -
    17076  &kZoneEtc_UTC /*targetInfo*/,
    -
    17077 };
    -
    17078 
    -
    17079 //---------------------------------------------------------------------------
    -
    17080 // Link name: Etc/Universal -> Etc/UTC
    -
    17081 //---------------------------------------------------------------------------
    -
    17082 
    -
    17083 static const char kZoneNameEtc_Universal[] ACE_TIME_PROGMEM = "\x0a" "Universal";
    -
    17084 
    -
    17085 const extended::Info::ZoneInfo kZoneEtc_Universal ACE_TIME_PROGMEM = {
    -
    17086  kZoneNameEtc_Universal /*name*/,
    -
    17087  0x2f8cb9a9 /*zoneId*/,
    -
    17088  &kZoneContext /*zoneContext*/,
    -
    17089  1 /*numEras*/,
    -
    17090  kZoneEraEtc_UTC /*eras*/,
    -
    17091  &kZoneEtc_UTC /*targetInfo*/,
    -
    17092 };
    -
    17093 
    -
    17094 //---------------------------------------------------------------------------
    -
    17095 // Link name: Etc/Zulu -> Etc/UTC
    -
    17096 //---------------------------------------------------------------------------
    -
    17097 
    -
    17098 static const char kZoneNameEtc_Zulu[] ACE_TIME_PROGMEM = "\x0a" "Zulu";
    -
    17099 
    -
    17100 const extended::Info::ZoneInfo kZoneEtc_Zulu ACE_TIME_PROGMEM = {
    -
    17101  kZoneNameEtc_Zulu /*name*/,
    -
    17102  0xf549c240 /*zoneId*/,
    -
    17103  &kZoneContext /*zoneContext*/,
    -
    17104  1 /*numEras*/,
    -
    17105  kZoneEraEtc_UTC /*eras*/,
    -
    17106  &kZoneEtc_UTC /*targetInfo*/,
    -
    17107 };
    -
    17108 
    -
    17109 //---------------------------------------------------------------------------
    -
    17110 // Link name: Europe/Amsterdam -> Europe/Brussels
    -
    17111 //---------------------------------------------------------------------------
    -
    17112 
    -
    17113 static const char kZoneNameEurope_Amsterdam[] ACE_TIME_PROGMEM = "\x0b" "Amsterdam";
    -
    17114 
    -
    17115 const extended::Info::ZoneInfo kZoneEurope_Amsterdam ACE_TIME_PROGMEM = {
    -
    17116  kZoneNameEurope_Amsterdam /*name*/,
    -
    17117  0x109395c2 /*zoneId*/,
    -
    17118  &kZoneContext /*zoneContext*/,
    -
    17119  1 /*numEras*/,
    -
    17120  kZoneEraEurope_Brussels /*eras*/,
    -
    17121  &kZoneEurope_Brussels /*targetInfo*/,
    -
    17122 };
    -
    17123 
    -
    17124 //---------------------------------------------------------------------------
    -
    17125 // Link name: Europe/Belfast -> Europe/London
    -
    17126 //---------------------------------------------------------------------------
    -
    17127 
    -
    17128 static const char kZoneNameEurope_Belfast[] ACE_TIME_PROGMEM = "\x0b" "Belfast";
    -
    17129 
    -
    17130 const extended::Info::ZoneInfo kZoneEurope_Belfast ACE_TIME_PROGMEM = {
    -
    17131  kZoneNameEurope_Belfast /*name*/,
    -
    17132  0xd07dd1e5 /*zoneId*/,
    -
    17133  &kZoneContext /*zoneContext*/,
    -
    17134  1 /*numEras*/,
    -
    17135  kZoneEraEurope_London /*eras*/,
    -
    17136  &kZoneEurope_London /*targetInfo*/,
    -
    17137 };
    -
    17138 
    -
    17139 //---------------------------------------------------------------------------
    -
    17140 // Link name: Europe/Bratislava -> Europe/Prague
    -
    17141 //---------------------------------------------------------------------------
    -
    17142 
    -
    17143 static const char kZoneNameEurope_Bratislava[] ACE_TIME_PROGMEM = "\x0b" "Bratislava";
    -
    17144 
    -
    17145 const extended::Info::ZoneInfo kZoneEurope_Bratislava ACE_TIME_PROGMEM = {
    -
    17146  kZoneNameEurope_Bratislava /*name*/,
    -
    17147  0xda493bed /*zoneId*/,
    -
    17148  &kZoneContext /*zoneContext*/,
    -
    17149  1 /*numEras*/,
    -
    17150  kZoneEraEurope_Prague /*eras*/,
    -
    17151  &kZoneEurope_Prague /*targetInfo*/,
    -
    17152 };
    -
    17153 
    -
    17154 //---------------------------------------------------------------------------
    -
    17155 // Link name: Europe/Busingen -> Europe/Zurich
    -
    17156 //---------------------------------------------------------------------------
    -
    17157 
    -
    17158 static const char kZoneNameEurope_Busingen[] ACE_TIME_PROGMEM = "\x0b" "Busingen";
    -
    17159 
    -
    17160 const extended::Info::ZoneInfo kZoneEurope_Busingen ACE_TIME_PROGMEM = {
    -
    17161  kZoneNameEurope_Busingen /*name*/,
    -
    17162  0xc06d2cdf /*zoneId*/,
    -
    17163  &kZoneContext /*zoneContext*/,
    -
    17164  1 /*numEras*/,
    -
    17165  kZoneEraEurope_Zurich /*eras*/,
    -
    17166  &kZoneEurope_Zurich /*targetInfo*/,
    -
    17167 };
    -
    17168 
    -
    17169 //---------------------------------------------------------------------------
    -
    17170 // Link name: Europe/Copenhagen -> Europe/Berlin
    -
    17171 //---------------------------------------------------------------------------
    -
    17172 
    -
    17173 static const char kZoneNameEurope_Copenhagen[] ACE_TIME_PROGMEM = "\x0b" "Copenhagen";
    -
    17174 
    -
    17175 const extended::Info::ZoneInfo kZoneEurope_Copenhagen ACE_TIME_PROGMEM = {
    -
    17176  kZoneNameEurope_Copenhagen /*name*/,
    -
    17177  0xe0ed30bc /*zoneId*/,
    -
    17178  &kZoneContext /*zoneContext*/,
    -
    17179  1 /*numEras*/,
    -
    17180  kZoneEraEurope_Berlin /*eras*/,
    -
    17181  &kZoneEurope_Berlin /*targetInfo*/,
    -
    17182 };
    -
    17183 
    -
    17184 //---------------------------------------------------------------------------
    -
    17185 // Link name: Europe/Guernsey -> Europe/London
    -
    17186 //---------------------------------------------------------------------------
    -
    17187 
    -
    17188 static const char kZoneNameEurope_Guernsey[] ACE_TIME_PROGMEM = "\x0b" "Guernsey";
    -
    17189 
    -
    17190 const extended::Info::ZoneInfo kZoneEurope_Guernsey ACE_TIME_PROGMEM = {
    -
    17191  kZoneNameEurope_Guernsey /*name*/,
    -
    17192  0x3db12c16 /*zoneId*/,
    -
    17193  &kZoneContext /*zoneContext*/,
    -
    17194  1 /*numEras*/,
    -
    17195  kZoneEraEurope_London /*eras*/,
    -
    17196  &kZoneEurope_London /*targetInfo*/,
    -
    17197 };
    -
    17198 
    -
    17199 //---------------------------------------------------------------------------
    -
    17200 // Link name: Europe/Isle_of_Man -> Europe/London
    -
    17201 //---------------------------------------------------------------------------
    -
    17202 
    -
    17203 static const char kZoneNameEurope_Isle_of_Man[] ACE_TIME_PROGMEM = "\x0b" "Isle_of_Man";
    -
    17204 
    -
    17205 const extended::Info::ZoneInfo kZoneEurope_Isle_of_Man ACE_TIME_PROGMEM = {
    -
    17206  kZoneNameEurope_Isle_of_Man /*name*/,
    -
    17207  0xeaf84580 /*zoneId*/,
    -
    17208  &kZoneContext /*zoneContext*/,
    -
    17209  1 /*numEras*/,
    -
    17210  kZoneEraEurope_London /*eras*/,
    -
    17211  &kZoneEurope_London /*targetInfo*/,
    -
    17212 };
    -
    17213 
    -
    17214 //---------------------------------------------------------------------------
    -
    17215 // Link name: Europe/Jersey -> Europe/London
    -
    17216 //---------------------------------------------------------------------------
    -
    17217 
    -
    17218 static const char kZoneNameEurope_Jersey[] ACE_TIME_PROGMEM = "\x0b" "Jersey";
    -
    17219 
    -
    17220 const extended::Info::ZoneInfo kZoneEurope_Jersey ACE_TIME_PROGMEM = {
    -
    17221  kZoneNameEurope_Jersey /*name*/,
    -
    17222  0x570dae76 /*zoneId*/,
    -
    17223  &kZoneContext /*zoneContext*/,
    -
    17224  1 /*numEras*/,
    -
    17225  kZoneEraEurope_London /*eras*/,
    -
    17226  &kZoneEurope_London /*targetInfo*/,
    -
    17227 };
    -
    17228 
    -
    17229 //---------------------------------------------------------------------------
    -
    17230 // Link name: Europe/Kiev -> Europe/Kyiv
    -
    17231 //---------------------------------------------------------------------------
    -
    17232 
    -
    17233 static const char kZoneNameEurope_Kiev[] ACE_TIME_PROGMEM = "\x0b" "Kiev";
    -
    17234 
    -
    17235 const extended::Info::ZoneInfo kZoneEurope_Kiev ACE_TIME_PROGMEM = {
    -
    17236  kZoneNameEurope_Kiev /*name*/,
    -
    17237  0xa2c19eb3 /*zoneId*/,
    -
    17238  &kZoneContext /*zoneContext*/,
    -
    17239  1 /*numEras*/,
    -
    17240  kZoneEraEurope_Kyiv /*eras*/,
    -
    17241  &kZoneEurope_Kyiv /*targetInfo*/,
    -
    17242 };
    -
    17243 
    -
    17244 //---------------------------------------------------------------------------
    -
    17245 // Link name: Europe/Ljubljana -> Europe/Belgrade
    -
    17246 //---------------------------------------------------------------------------
    -
    17247 
    -
    17248 static const char kZoneNameEurope_Ljubljana[] ACE_TIME_PROGMEM = "\x0b" "Ljubljana";
    -
    17249 
    -
    17250 const extended::Info::ZoneInfo kZoneEurope_Ljubljana ACE_TIME_PROGMEM = {
    -
    17251  kZoneNameEurope_Ljubljana /*name*/,
    -
    17252  0xbd98cdb7 /*zoneId*/,
    -
    17253  &kZoneContext /*zoneContext*/,
    -
    17254  1 /*numEras*/,
    -
    17255  kZoneEraEurope_Belgrade /*eras*/,
    -
    17256  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    17257 };
    -
    17258 
    -
    17259 //---------------------------------------------------------------------------
    -
    17260 // Link name: Europe/Luxembourg -> Europe/Brussels
    -
    17261 //---------------------------------------------------------------------------
    -
    17262 
    -
    17263 static const char kZoneNameEurope_Luxembourg[] ACE_TIME_PROGMEM = "\x0b" "Luxembourg";
    -
    17264 
    -
    17265 const extended::Info::ZoneInfo kZoneEurope_Luxembourg ACE_TIME_PROGMEM = {
    -
    17266  kZoneNameEurope_Luxembourg /*name*/,
    -
    17267  0x1f8bc6ce /*zoneId*/,
    -
    17268  &kZoneContext /*zoneContext*/,
    -
    17269  1 /*numEras*/,
    -
    17270  kZoneEraEurope_Brussels /*eras*/,
    -
    17271  &kZoneEurope_Brussels /*targetInfo*/,
    -
    17272 };
    -
    17273 
    -
    17274 //---------------------------------------------------------------------------
    -
    17275 // Link name: Europe/Mariehamn -> Europe/Helsinki
    -
    17276 //---------------------------------------------------------------------------
    -
    17277 
    -
    17278 static const char kZoneNameEurope_Mariehamn[] ACE_TIME_PROGMEM = "\x0b" "Mariehamn";
    -
    17279 
    -
    17280 const extended::Info::ZoneInfo kZoneEurope_Mariehamn ACE_TIME_PROGMEM = {
    -
    17281  kZoneNameEurope_Mariehamn /*name*/,
    -
    17282  0x0caa6496 /*zoneId*/,
    -
    17283  &kZoneContext /*zoneContext*/,
    -
    17284  1 /*numEras*/,
    -
    17285  kZoneEraEurope_Helsinki /*eras*/,
    -
    17286  &kZoneEurope_Helsinki /*targetInfo*/,
    -
    17287 };
    -
    17288 
    -
    17289 //---------------------------------------------------------------------------
    -
    17290 // Link name: Europe/Monaco -> Europe/Paris
    -
    17291 //---------------------------------------------------------------------------
    -
    17292 
    -
    17293 static const char kZoneNameEurope_Monaco[] ACE_TIME_PROGMEM = "\x0b" "Monaco";
    -
    17294 
    -
    17295 const extended::Info::ZoneInfo kZoneEurope_Monaco ACE_TIME_PROGMEM = {
    -
    17296  kZoneNameEurope_Monaco /*name*/,
    -
    17297  0x5ebf9f01 /*zoneId*/,
    -
    17298  &kZoneContext /*zoneContext*/,
    -
    17299  1 /*numEras*/,
    -
    17300  kZoneEraEurope_Paris /*eras*/,
    -
    17301  &kZoneEurope_Paris /*targetInfo*/,
    -
    17302 };
    -
    17303 
    -
    17304 //---------------------------------------------------------------------------
    -
    17305 // Link name: Europe/Nicosia -> Asia/Nicosia
    -
    17306 //---------------------------------------------------------------------------
    -
    17307 
    -
    17308 static const char kZoneNameEurope_Nicosia[] ACE_TIME_PROGMEM = "\x0b" "Nicosia";
    -
    17309 
    -
    17310 const extended::Info::ZoneInfo kZoneEurope_Nicosia ACE_TIME_PROGMEM = {
    -
    17311  kZoneNameEurope_Nicosia /*name*/,
    -
    17312  0x74efab8a /*zoneId*/,
    -
    17313  &kZoneContext /*zoneContext*/,
    -
    17314  1 /*numEras*/,
    -
    17315  kZoneEraAsia_Nicosia /*eras*/,
    -
    17316  &kZoneAsia_Nicosia /*targetInfo*/,
    -
    17317 };
    -
    17318 
    -
    17319 //---------------------------------------------------------------------------
    -
    17320 // Link name: Europe/Oslo -> Europe/Berlin
    -
    17321 //---------------------------------------------------------------------------
    -
    17322 
    -
    17323 static const char kZoneNameEurope_Oslo[] ACE_TIME_PROGMEM = "\x0b" "Oslo";
    -
    17324 
    -
    17325 const extended::Info::ZoneInfo kZoneEurope_Oslo ACE_TIME_PROGMEM = {
    -
    17326  kZoneNameEurope_Oslo /*name*/,
    -
    17327  0xa2c3fba1 /*zoneId*/,
    -
    17328  &kZoneContext /*zoneContext*/,
    -
    17329  1 /*numEras*/,
    -
    17330  kZoneEraEurope_Berlin /*eras*/,
    -
    17331  &kZoneEurope_Berlin /*targetInfo*/,
    -
    17332 };
    -
    17333 
    -
    17334 //---------------------------------------------------------------------------
    -
    17335 // Link name: Europe/Podgorica -> Europe/Belgrade
    -
    17336 //---------------------------------------------------------------------------
    -
    17337 
    -
    17338 static const char kZoneNameEurope_Podgorica[] ACE_TIME_PROGMEM = "\x0b" "Podgorica";
    -
    17339 
    -
    17340 const extended::Info::ZoneInfo kZoneEurope_Podgorica ACE_TIME_PROGMEM = {
    -
    17341  kZoneNameEurope_Podgorica /*name*/,
    -
    17342  0x1c1a499c /*zoneId*/,
    -
    17343  &kZoneContext /*zoneContext*/,
    -
    17344  1 /*numEras*/,
    -
    17345  kZoneEraEurope_Belgrade /*eras*/,
    -
    17346  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    17347 };
    -
    17348 
    -
    17349 //---------------------------------------------------------------------------
    -
    17350 // Link name: Europe/San_Marino -> Europe/Rome
    -
    17351 //---------------------------------------------------------------------------
    -
    17352 
    -
    17353 static const char kZoneNameEurope_San_Marino[] ACE_TIME_PROGMEM = "\x0b" "San_Marino";
    -
    17354 
    -
    17355 const extended::Info::ZoneInfo kZoneEurope_San_Marino ACE_TIME_PROGMEM = {
    -
    17356  kZoneNameEurope_San_Marino /*name*/,
    -
    17357  0xcef7724b /*zoneId*/,
    -
    17358  &kZoneContext /*zoneContext*/,
    -
    17359  1 /*numEras*/,
    -
    17360  kZoneEraEurope_Rome /*eras*/,
    -
    17361  &kZoneEurope_Rome /*targetInfo*/,
    -
    17362 };
    -
    17363 
    -
    17364 //---------------------------------------------------------------------------
    -
    17365 // Link name: Europe/Sarajevo -> Europe/Belgrade
    -
    17366 //---------------------------------------------------------------------------
    -
    17367 
    -
    17368 static const char kZoneNameEurope_Sarajevo[] ACE_TIME_PROGMEM = "\x0b" "Sarajevo";
    -
    17369 
    -
    17370 const extended::Info::ZoneInfo kZoneEurope_Sarajevo ACE_TIME_PROGMEM = {
    -
    17371  kZoneNameEurope_Sarajevo /*name*/,
    -
    17372  0x6a576c3f /*zoneId*/,
    -
    17373  &kZoneContext /*zoneContext*/,
    -
    17374  1 /*numEras*/,
    -
    17375  kZoneEraEurope_Belgrade /*eras*/,
    -
    17376  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    17377 };
    -
    17378 
    -
    17379 //---------------------------------------------------------------------------
    -
    17380 // Link name: Europe/Skopje -> Europe/Belgrade
    -
    17381 //---------------------------------------------------------------------------
    -
    17382 
    -
    17383 static const char kZoneNameEurope_Skopje[] ACE_TIME_PROGMEM = "\x0b" "Skopje";
    -
    17384 
    -
    17385 const extended::Info::ZoneInfo kZoneEurope_Skopje ACE_TIME_PROGMEM = {
    -
    17386  kZoneNameEurope_Skopje /*name*/,
    -
    17387  0x6c76fdd0 /*zoneId*/,
    -
    17388  &kZoneContext /*zoneContext*/,
    -
    17389  1 /*numEras*/,
    -
    17390  kZoneEraEurope_Belgrade /*eras*/,
    -
    17391  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    17392 };
    -
    17393 
    -
    17394 //---------------------------------------------------------------------------
    -
    17395 // Link name: Europe/Stockholm -> Europe/Berlin
    -
    17396 //---------------------------------------------------------------------------
    -
    17397 
    -
    17398 static const char kZoneNameEurope_Stockholm[] ACE_TIME_PROGMEM = "\x0b" "Stockholm";
    -
    17399 
    -
    17400 const extended::Info::ZoneInfo kZoneEurope_Stockholm ACE_TIME_PROGMEM = {
    -
    17401  kZoneNameEurope_Stockholm /*name*/,
    -
    17402  0x5bf6fbb8 /*zoneId*/,
    -
    17403  &kZoneContext /*zoneContext*/,
    -
    17404  1 /*numEras*/,
    -
    17405  kZoneEraEurope_Berlin /*eras*/,
    -
    17406  &kZoneEurope_Berlin /*targetInfo*/,
    -
    17407 };
    -
    17408 
    -
    17409 //---------------------------------------------------------------------------
    -
    17410 // Link name: Europe/Tiraspol -> Europe/Chisinau
    -
    17411 //---------------------------------------------------------------------------
    -
    17412 
    -
    17413 static const char kZoneNameEurope_Tiraspol[] ACE_TIME_PROGMEM = "\x0b" "Tiraspol";
    -
    17414 
    -
    17415 const extended::Info::ZoneInfo kZoneEurope_Tiraspol ACE_TIME_PROGMEM = {
    -
    17416  kZoneNameEurope_Tiraspol /*name*/,
    -
    17417  0xbe704472 /*zoneId*/,
    -
    17418  &kZoneContext /*zoneContext*/,
    -
    17419  1 /*numEras*/,
    -
    17420  kZoneEraEurope_Chisinau /*eras*/,
    -
    17421  &kZoneEurope_Chisinau /*targetInfo*/,
    -
    17422 };
    -
    17423 
    -
    17424 //---------------------------------------------------------------------------
    -
    17425 // Link name: Europe/Uzhgorod -> Europe/Kyiv
    -
    17426 //---------------------------------------------------------------------------
    -
    17427 
    -
    17428 static const char kZoneNameEurope_Uzhgorod[] ACE_TIME_PROGMEM = "\x0b" "Uzhgorod";
    -
    17429 
    -
    17430 const extended::Info::ZoneInfo kZoneEurope_Uzhgorod ACE_TIME_PROGMEM = {
    -
    17431  kZoneNameEurope_Uzhgorod /*name*/,
    -
    17432  0xb066f5d6 /*zoneId*/,
    -
    17433  &kZoneContext /*zoneContext*/,
    -
    17434  1 /*numEras*/,
    -
    17435  kZoneEraEurope_Kyiv /*eras*/,
    -
    17436  &kZoneEurope_Kyiv /*targetInfo*/,
    -
    17437 };
    -
    17438 
    -
    17439 //---------------------------------------------------------------------------
    -
    17440 // Link name: Europe/Vaduz -> Europe/Zurich
    -
    17441 //---------------------------------------------------------------------------
    -
    17442 
    -
    17443 static const char kZoneNameEurope_Vaduz[] ACE_TIME_PROGMEM = "\x0b" "Vaduz";
    -
    17444 
    -
    17445 const extended::Info::ZoneInfo kZoneEurope_Vaduz ACE_TIME_PROGMEM = {
    -
    17446  kZoneNameEurope_Vaduz /*name*/,
    -
    17447  0xfbb81bae /*zoneId*/,
    -
    17448  &kZoneContext /*zoneContext*/,
    -
    17449  1 /*numEras*/,
    -
    17450  kZoneEraEurope_Zurich /*eras*/,
    -
    17451  &kZoneEurope_Zurich /*targetInfo*/,
    -
    17452 };
    -
    17453 
    -
    17454 //---------------------------------------------------------------------------
    -
    17455 // Link name: Europe/Vatican -> Europe/Rome
    -
    17456 //---------------------------------------------------------------------------
    -
    17457 
    -
    17458 static const char kZoneNameEurope_Vatican[] ACE_TIME_PROGMEM = "\x0b" "Vatican";
    -
    17459 
    -
    17460 const extended::Info::ZoneInfo kZoneEurope_Vatican ACE_TIME_PROGMEM = {
    -
    17461  kZoneNameEurope_Vatican /*name*/,
    -
    17462  0xcb485dca /*zoneId*/,
    -
    17463  &kZoneContext /*zoneContext*/,
    -
    17464  1 /*numEras*/,
    -
    17465  kZoneEraEurope_Rome /*eras*/,
    -
    17466  &kZoneEurope_Rome /*targetInfo*/,
    -
    17467 };
    -
    17468 
    -
    17469 //---------------------------------------------------------------------------
    -
    17470 // Link name: Europe/Zagreb -> Europe/Belgrade
    -
    17471 //---------------------------------------------------------------------------
    -
    17472 
    -
    17473 static const char kZoneNameEurope_Zagreb[] ACE_TIME_PROGMEM = "\x0b" "Zagreb";
    -
    17474 
    -
    17475 const extended::Info::ZoneInfo kZoneEurope_Zagreb ACE_TIME_PROGMEM = {
    -
    17476  kZoneNameEurope_Zagreb /*name*/,
    -
    17477  0x7c11c9ff /*zoneId*/,
    -
    17478  &kZoneContext /*zoneContext*/,
    -
    17479  1 /*numEras*/,
    -
    17480  kZoneEraEurope_Belgrade /*eras*/,
    -
    17481  &kZoneEurope_Belgrade /*targetInfo*/,
    -
    17482 };
    -
    17483 
    -
    17484 //---------------------------------------------------------------------------
    -
    17485 // Link name: Europe/Zaporozhye -> Europe/Kyiv
    -
    17486 //---------------------------------------------------------------------------
    -
    17487 
    -
    17488 static const char kZoneNameEurope_Zaporozhye[] ACE_TIME_PROGMEM = "\x0b" "Zaporozhye";
    -
    17489 
    -
    17490 const extended::Info::ZoneInfo kZoneEurope_Zaporozhye ACE_TIME_PROGMEM = {
    -
    17491  kZoneNameEurope_Zaporozhye /*name*/,
    -
    17492  0xeab9767f /*zoneId*/,
    -
    17493  &kZoneContext /*zoneContext*/,
    -
    17494  1 /*numEras*/,
    -
    17495  kZoneEraEurope_Kyiv /*eras*/,
    -
    17496  &kZoneEurope_Kyiv /*targetInfo*/,
    -
    17497 };
    -
    17498 
    -
    17499 //---------------------------------------------------------------------------
    -
    17500 // Link name: GB -> Europe/London
    -
    17501 //---------------------------------------------------------------------------
    -
    17502 
    -
    17503 static const char kZoneNameGB[] ACE_TIME_PROGMEM = "GB";
    -
    17504 
    -
    17505 const extended::Info::ZoneInfo kZoneGB ACE_TIME_PROGMEM = {
    -
    17506  kZoneNameGB /*name*/,
    -
    17507  0x005973ae /*zoneId*/,
    -
    17508  &kZoneContext /*zoneContext*/,
    -
    17509  1 /*numEras*/,
    -
    17510  kZoneEraEurope_London /*eras*/,
    -
    17511  &kZoneEurope_London /*targetInfo*/,
    -
    17512 };
    -
    17513 
    -
    17514 //---------------------------------------------------------------------------
    -
    17515 // Link name: GB-Eire -> Europe/London
    -
    17516 //---------------------------------------------------------------------------
    -
    17517 
    -
    17518 static const char kZoneNameGB_Eire[] ACE_TIME_PROGMEM = "GB-Eire";
    -
    17519 
    -
    17520 const extended::Info::ZoneInfo kZoneGB_Eire ACE_TIME_PROGMEM = {
    -
    17521  kZoneNameGB_Eire /*name*/,
    -
    17522  0xfa70e300 /*zoneId*/,
    -
    17523  &kZoneContext /*zoneContext*/,
    -
    17524  1 /*numEras*/,
    -
    17525  kZoneEraEurope_London /*eras*/,
    -
    17526  &kZoneEurope_London /*targetInfo*/,
    -
    17527 };
    -
    17528 
    -
    17529 //---------------------------------------------------------------------------
    -
    17530 // Link name: GMT -> Etc/GMT
    -
    17531 //---------------------------------------------------------------------------
    -
    17532 
    -
    17533 static const char kZoneNameGMT[] ACE_TIME_PROGMEM = "GMT";
    -
    17534 
    -
    17535 const extended::Info::ZoneInfo kZoneGMT ACE_TIME_PROGMEM = {
    -
    17536  kZoneNameGMT /*name*/,
    -
    17537  0x0b87eb2d /*zoneId*/,
    -
    17538  &kZoneContext /*zoneContext*/,
    -
    17539  1 /*numEras*/,
    -
    17540  kZoneEraEtc_GMT /*eras*/,
    -
    17541  &kZoneEtc_GMT /*targetInfo*/,
    -
    17542 };
    -
    17543 
    -
    17544 //---------------------------------------------------------------------------
    -
    17545 // Link name: GMT+0 -> Etc/GMT
    -
    17546 //---------------------------------------------------------------------------
    -
    17547 
    -
    17548 static const char kZoneNameGMT_PLUS_0[] ACE_TIME_PROGMEM = "GMT+0";
    -
    17549 
    -
    17550 const extended::Info::ZoneInfo kZoneGMT_PLUS_0 ACE_TIME_PROGMEM = {
    -
    17551  kZoneNameGMT_PLUS_0 /*name*/,
    -
    17552  0x0d2f7028 /*zoneId*/,
    -
    17553  &kZoneContext /*zoneContext*/,
    -
    17554  1 /*numEras*/,
    -
    17555  kZoneEraEtc_GMT /*eras*/,
    -
    17556  &kZoneEtc_GMT /*targetInfo*/,
    -
    17557 };
    -
    17558 
    -
    17559 //---------------------------------------------------------------------------
    -
    17560 // Link name: GMT-0 -> Etc/GMT
    -
    17561 //---------------------------------------------------------------------------
    -
    17562 
    -
    17563 static const char kZoneNameGMT_0[] ACE_TIME_PROGMEM = "GMT-0";
    -
    17564 
    -
    17565 const extended::Info::ZoneInfo kZoneGMT_0 ACE_TIME_PROGMEM = {
    -
    17566  kZoneNameGMT_0 /*name*/,
    -
    17567  0x0d2f706a /*zoneId*/,
    -
    17568  &kZoneContext /*zoneContext*/,
    -
    17569  1 /*numEras*/,
    -
    17570  kZoneEraEtc_GMT /*eras*/,
    -
    17571  &kZoneEtc_GMT /*targetInfo*/,
    -
    17572 };
    -
    17573 
    -
    17574 //---------------------------------------------------------------------------
    -
    17575 // Link name: GMT0 -> Etc/GMT
    -
    17576 //---------------------------------------------------------------------------
    -
    17577 
    -
    17578 static const char kZoneNameGMT0[] ACE_TIME_PROGMEM = "GMT0";
    -
    17579 
    -
    17580 const extended::Info::ZoneInfo kZoneGMT0 ACE_TIME_PROGMEM = {
    -
    17581  kZoneNameGMT0 /*name*/,
    -
    17582  0x7c8550fd /*zoneId*/,
    -
    17583  &kZoneContext /*zoneContext*/,
    -
    17584  1 /*numEras*/,
    -
    17585  kZoneEraEtc_GMT /*eras*/,
    -
    17586  &kZoneEtc_GMT /*targetInfo*/,
    -
    17587 };
    -
    17588 
    -
    17589 //---------------------------------------------------------------------------
    -
    17590 // Link name: Greenwich -> Etc/GMT
    -
    17591 //---------------------------------------------------------------------------
    -
    17592 
    -
    17593 static const char kZoneNameGreenwich[] ACE_TIME_PROGMEM = "Greenwich";
    -
    17594 
    -
    17595 const extended::Info::ZoneInfo kZoneGreenwich ACE_TIME_PROGMEM = {
    -
    17596  kZoneNameGreenwich /*name*/,
    -
    17597  0xc84d4221 /*zoneId*/,
    -
    17598  &kZoneContext /*zoneContext*/,
    -
    17599  1 /*numEras*/,
    -
    17600  kZoneEraEtc_GMT /*eras*/,
    -
    17601  &kZoneEtc_GMT /*targetInfo*/,
    -
    17602 };
    -
    17603 
    -
    17604 //---------------------------------------------------------------------------
    -
    17605 // Link name: HST -> Pacific/Honolulu
    -
    17606 //---------------------------------------------------------------------------
    -
    17607 
    -
    17608 static const char kZoneNameHST[] ACE_TIME_PROGMEM = "HST";
    -
    17609 
    -
    17610 const extended::Info::ZoneInfo kZoneHST ACE_TIME_PROGMEM = {
    -
    17611  kZoneNameHST /*name*/,
    -
    17612  0x0b87f034 /*zoneId*/,
    -
    17613  &kZoneContext /*zoneContext*/,
    -
    17614  1 /*numEras*/,
    -
    17615  kZoneEraPacific_Honolulu /*eras*/,
    -
    17616  &kZonePacific_Honolulu /*targetInfo*/,
    -
    17617 };
    -
    17618 
    -
    17619 //---------------------------------------------------------------------------
    -
    17620 // Link name: Hongkong -> Asia/Hong_Kong
    -
    17621 //---------------------------------------------------------------------------
    -
    17622 
    -
    17623 static const char kZoneNameHongkong[] ACE_TIME_PROGMEM = "Hongkong";
    -
    17624 
    -
    17625 const extended::Info::ZoneInfo kZoneHongkong ACE_TIME_PROGMEM = {
    -
    17626  kZoneNameHongkong /*name*/,
    -
    17627  0x56d36560 /*zoneId*/,
    -
    17628  &kZoneContext /*zoneContext*/,
    -
    17629  1 /*numEras*/,
    -
    17630  kZoneEraAsia_Hong_Kong /*eras*/,
    -
    17631  &kZoneAsia_Hong_Kong /*targetInfo*/,
    -
    17632 };
    -
    17633 
    -
    17634 //---------------------------------------------------------------------------
    -
    17635 // Link name: Iceland -> Africa/Abidjan
    -
    17636 //---------------------------------------------------------------------------
    -
    17637 
    -
    17638 static const char kZoneNameIceland[] ACE_TIME_PROGMEM = "Iceland";
    -
    17639 
    -
    17640 const extended::Info::ZoneInfo kZoneIceland ACE_TIME_PROGMEM = {
    -
    17641  kZoneNameIceland /*name*/,
    -
    17642  0xe56a35b5 /*zoneId*/,
    -
    17643  &kZoneContext /*zoneContext*/,
    -
    17644  1 /*numEras*/,
    -
    17645  kZoneEraAfrica_Abidjan /*eras*/,
    -
    17646  &kZoneAfrica_Abidjan /*targetInfo*/,
    -
    17647 };
    -
    17648 
    -
    17649 //---------------------------------------------------------------------------
    -
    17650 // Link name: Indian/Antananarivo -> Africa/Nairobi
    -
    17651 //---------------------------------------------------------------------------
    -
    17652 
    -
    17653 static const char kZoneNameIndian_Antananarivo[] ACE_TIME_PROGMEM = "\x0c" "Antananarivo";
    -
    17654 
    -
    17655 const extended::Info::ZoneInfo kZoneIndian_Antananarivo ACE_TIME_PROGMEM = {
    -
    17656  kZoneNameIndian_Antananarivo /*name*/,
    -
    17657  0x9ebf5289 /*zoneId*/,
    -
    17658  &kZoneContext /*zoneContext*/,
    -
    17659  1 /*numEras*/,
    -
    17660  kZoneEraAfrica_Nairobi /*eras*/,
    -
    17661  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    17662 };
    -
    17663 
    -
    17664 //---------------------------------------------------------------------------
    -
    17665 // Link name: Indian/Christmas -> Asia/Bangkok
    -
    17666 //---------------------------------------------------------------------------
    -
    17667 
    -
    17668 static const char kZoneNameIndian_Christmas[] ACE_TIME_PROGMEM = "\x0c" "Christmas";
    -
    17669 
    -
    17670 const extended::Info::ZoneInfo kZoneIndian_Christmas ACE_TIME_PROGMEM = {
    -
    17671  kZoneNameIndian_Christmas /*name*/,
    -
    17672  0x68c207d5 /*zoneId*/,
    -
    17673  &kZoneContext /*zoneContext*/,
    -
    17674  1 /*numEras*/,
    -
    17675  kZoneEraAsia_Bangkok /*eras*/,
    -
    17676  &kZoneAsia_Bangkok /*targetInfo*/,
    -
    17677 };
    -
    17678 
    -
    17679 //---------------------------------------------------------------------------
    -
    17680 // Link name: Indian/Cocos -> Asia/Yangon
    -
    17681 //---------------------------------------------------------------------------
    -
    17682 
    -
    17683 static const char kZoneNameIndian_Cocos[] ACE_TIME_PROGMEM = "\x0c" "Cocos";
    -
    17684 
    -
    17685 const extended::Info::ZoneInfo kZoneIndian_Cocos ACE_TIME_PROGMEM = {
    -
    17686  kZoneNameIndian_Cocos /*name*/,
    -
    17687  0x021e86de /*zoneId*/,
    -
    17688  &kZoneContext /*zoneContext*/,
    -
    17689  1 /*numEras*/,
    -
    17690  kZoneEraAsia_Yangon /*eras*/,
    -
    17691  &kZoneAsia_Yangon /*targetInfo*/,
    -
    17692 };
    -
    17693 
    -
    17694 //---------------------------------------------------------------------------
    -
    17695 // Link name: Indian/Comoro -> Africa/Nairobi
    -
    17696 //---------------------------------------------------------------------------
    -
    17697 
    -
    17698 static const char kZoneNameIndian_Comoro[] ACE_TIME_PROGMEM = "\x0c" "Comoro";
    -
    17699 
    -
    17700 const extended::Info::ZoneInfo kZoneIndian_Comoro ACE_TIME_PROGMEM = {
    -
    17701  kZoneNameIndian_Comoro /*name*/,
    -
    17702  0x45f4deb6 /*zoneId*/,
    -
    17703  &kZoneContext /*zoneContext*/,
    -
    17704  1 /*numEras*/,
    -
    17705  kZoneEraAfrica_Nairobi /*eras*/,
    -
    17706  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    17707 };
    -
    17708 
    -
    17709 //---------------------------------------------------------------------------
    -
    17710 // Link name: Indian/Kerguelen -> Indian/Maldives
    -
    17711 //---------------------------------------------------------------------------
    -
    17712 
    -
    17713 static const char kZoneNameIndian_Kerguelen[] ACE_TIME_PROGMEM = "\x0c" "Kerguelen";
    -
    17714 
    -
    17715 const extended::Info::ZoneInfo kZoneIndian_Kerguelen ACE_TIME_PROGMEM = {
    -
    17716  kZoneNameIndian_Kerguelen /*name*/,
    -
    17717  0x4351b389 /*zoneId*/,
    -
    17718  &kZoneContext /*zoneContext*/,
    -
    17719  1 /*numEras*/,
    -
    17720  kZoneEraIndian_Maldives /*eras*/,
    -
    17721  &kZoneIndian_Maldives /*targetInfo*/,
    -
    17722 };
    -
    17723 
    -
    17724 //---------------------------------------------------------------------------
    -
    17725 // Link name: Indian/Mahe -> Asia/Dubai
    -
    17726 //---------------------------------------------------------------------------
    -
    17727 
    -
    17728 static const char kZoneNameIndian_Mahe[] ACE_TIME_PROGMEM = "\x0c" "Mahe";
    -
    17729 
    -
    17730 const extended::Info::ZoneInfo kZoneIndian_Mahe ACE_TIME_PROGMEM = {
    -
    17731  kZoneNameIndian_Mahe /*name*/,
    -
    17732  0x45e725e2 /*zoneId*/,
    -
    17733  &kZoneContext /*zoneContext*/,
    -
    17734  1 /*numEras*/,
    -
    17735  kZoneEraAsia_Dubai /*eras*/,
    -
    17736  &kZoneAsia_Dubai /*targetInfo*/,
    -
    17737 };
    -
    17738 
    -
    17739 //---------------------------------------------------------------------------
    -
    17740 // Link name: Indian/Mayotte -> Africa/Nairobi
    -
    17741 //---------------------------------------------------------------------------
    -
    17742 
    -
    17743 static const char kZoneNameIndian_Mayotte[] ACE_TIME_PROGMEM = "\x0c" "Mayotte";
    -
    17744 
    -
    17745 const extended::Info::ZoneInfo kZoneIndian_Mayotte ACE_TIME_PROGMEM = {
    -
    17746  kZoneNameIndian_Mayotte /*name*/,
    -
    17747  0xe6880bca /*zoneId*/,
    -
    17748  &kZoneContext /*zoneContext*/,
    -
    17749  1 /*numEras*/,
    -
    17750  kZoneEraAfrica_Nairobi /*eras*/,
    -
    17751  &kZoneAfrica_Nairobi /*targetInfo*/,
    -
    17752 };
    -
    17753 
    -
    17754 //---------------------------------------------------------------------------
    -
    17755 // Link name: Indian/Reunion -> Asia/Dubai
    -
    17756 //---------------------------------------------------------------------------
    -
    17757 
    -
    17758 static const char kZoneNameIndian_Reunion[] ACE_TIME_PROGMEM = "\x0c" "Reunion";
    -
    17759 
    -
    17760 const extended::Info::ZoneInfo kZoneIndian_Reunion ACE_TIME_PROGMEM = {
    -
    17761  kZoneNameIndian_Reunion /*name*/,
    -
    17762  0x7076c047 /*zoneId*/,
    -
    17763  &kZoneContext /*zoneContext*/,
    -
    17764  1 /*numEras*/,
    -
    17765  kZoneEraAsia_Dubai /*eras*/,
    -
    17766  &kZoneAsia_Dubai /*targetInfo*/,
    -
    17767 };
    -
    17768 
    -
    17769 //---------------------------------------------------------------------------
    -
    17770 // Link name: Iran -> Asia/Tehran
    -
    17771 //---------------------------------------------------------------------------
    -
    17772 
    -
    17773 static const char kZoneNameIran[] ACE_TIME_PROGMEM = "Iran";
    -
    17774 
    -
    17775 const extended::Info::ZoneInfo kZoneIran ACE_TIME_PROGMEM = {
    -
    17776  kZoneNameIran /*name*/,
    -
    17777  0x7c87090f /*zoneId*/,
    -
    17778  &kZoneContext /*zoneContext*/,
    -
    17779  1 /*numEras*/,
    -
    17780  kZoneEraAsia_Tehran /*eras*/,
    -
    17781  &kZoneAsia_Tehran /*targetInfo*/,
    -
    17782 };
    -
    17783 
    -
    17784 //---------------------------------------------------------------------------
    -
    17785 // Link name: Israel -> Asia/Jerusalem
    -
    17786 //---------------------------------------------------------------------------
    -
    17787 
    -
    17788 static const char kZoneNameIsrael[] ACE_TIME_PROGMEM = "Israel";
    -
    17789 
    -
    17790 const extended::Info::ZoneInfo kZoneIsrael ACE_TIME_PROGMEM = {
    -
    17791  kZoneNameIsrael /*name*/,
    -
    17792  0xba88c9e5 /*zoneId*/,
    -
    17793  &kZoneContext /*zoneContext*/,
    -
    17794  1 /*numEras*/,
    -
    17795  kZoneEraAsia_Jerusalem /*eras*/,
    -
    17796  &kZoneAsia_Jerusalem /*targetInfo*/,
    -
    17797 };
    -
    17798 
    -
    17799 //---------------------------------------------------------------------------
    -
    17800 // Link name: Jamaica -> America/Jamaica
    -
    17801 //---------------------------------------------------------------------------
    -
    17802 
    -
    17803 static const char kZoneNameJamaica[] ACE_TIME_PROGMEM = "Jamaica";
    -
    17804 
    -
    17805 const extended::Info::ZoneInfo kZoneJamaica ACE_TIME_PROGMEM = {
    -
    17806  kZoneNameJamaica /*name*/,
    -
    17807  0x2e44fdab /*zoneId*/,
    -
    17808  &kZoneContext /*zoneContext*/,
    -
    17809  1 /*numEras*/,
    -
    17810  kZoneEraAmerica_Jamaica /*eras*/,
    -
    17811  &kZoneAmerica_Jamaica /*targetInfo*/,
    -
    17812 };
    -
    17813 
    -
    17814 //---------------------------------------------------------------------------
    -
    17815 // Link name: Japan -> Asia/Tokyo
    -
    17816 //---------------------------------------------------------------------------
    -
    17817 
    -
    17818 static const char kZoneNameJapan[] ACE_TIME_PROGMEM = "Japan";
    -
    17819 
    -
    17820 const extended::Info::ZoneInfo kZoneJapan ACE_TIME_PROGMEM = {
    -
    17821  kZoneNameJapan /*name*/,
    -
    17822  0x0d712f8f /*zoneId*/,
    -
    17823  &kZoneContext /*zoneContext*/,
    -
    17824  1 /*numEras*/,
    -
    17825  kZoneEraAsia_Tokyo /*eras*/,
    -
    17826  &kZoneAsia_Tokyo /*targetInfo*/,
    -
    17827 };
    -
    17828 
    -
    17829 //---------------------------------------------------------------------------
    -
    17830 // Link name: Kwajalein -> Pacific/Kwajalein
    -
    17831 //---------------------------------------------------------------------------
    -
    17832 
    -
    17833 static const char kZoneNameKwajalein[] ACE_TIME_PROGMEM = "Kwajalein";
    -
    17834 
    -
    17835 const extended::Info::ZoneInfo kZoneKwajalein ACE_TIME_PROGMEM = {
    -
    17836  kZoneNameKwajalein /*name*/,
    -
    17837  0x0e57afbb /*zoneId*/,
    -
    17838  &kZoneContext /*zoneContext*/,
    -
    17839  1 /*numEras*/,
    -
    17840  kZoneEraPacific_Kwajalein /*eras*/,
    -
    17841  &kZonePacific_Kwajalein /*targetInfo*/,
    -
    17842 };
    -
    17843 
    -
    17844 //---------------------------------------------------------------------------
    -
    17845 // Link name: Libya -> Africa/Tripoli
    -
    17846 //---------------------------------------------------------------------------
    -
    17847 
    -
    17848 static const char kZoneNameLibya[] ACE_TIME_PROGMEM = "Libya";
    -
    17849 
    -
    17850 const extended::Info::ZoneInfo kZoneLibya ACE_TIME_PROGMEM = {
    -
    17851  kZoneNameLibya /*name*/,
    -
    17852  0x0d998b16 /*zoneId*/,
    -
    17853  &kZoneContext /*zoneContext*/,
    -
    17854  3 /*numEras*/,
    -
    17855  kZoneEraAfrica_Tripoli /*eras*/,
    -
    17856  &kZoneAfrica_Tripoli /*targetInfo*/,
    -
    17857 };
    -
    17858 
    -
    17859 //---------------------------------------------------------------------------
    -
    17860 // Link name: MET -> Europe/Brussels
    -
    17861 //---------------------------------------------------------------------------
    -
    17862 
    -
    17863 static const char kZoneNameMET[] ACE_TIME_PROGMEM = "MET";
    -
    17864 
    -
    17865 const extended::Info::ZoneInfo kZoneMET ACE_TIME_PROGMEM = {
    -
    17866  kZoneNameMET /*name*/,
    -
    17867  0x0b8803ab /*zoneId*/,
    -
    17868  &kZoneContext /*zoneContext*/,
    -
    17869  1 /*numEras*/,
    -
    17870  kZoneEraEurope_Brussels /*eras*/,
    -
    17871  &kZoneEurope_Brussels /*targetInfo*/,
    -
    17872 };
    -
    17873 
    -
    17874 //---------------------------------------------------------------------------
    -
    17875 // Link name: MST -> America/Phoenix
    -
    17876 //---------------------------------------------------------------------------
    -
    17877 
    -
    17878 static const char kZoneNameMST[] ACE_TIME_PROGMEM = "MST";
    -
    17879 
    -
    17880 const extended::Info::ZoneInfo kZoneMST ACE_TIME_PROGMEM = {
    -
    17881  kZoneNameMST /*name*/,
    -
    17882  0x0b880579 /*zoneId*/,
    -
    17883  &kZoneContext /*zoneContext*/,
    -
    17884  1 /*numEras*/,
    -
    17885  kZoneEraAmerica_Phoenix /*eras*/,
    -
    17886  &kZoneAmerica_Phoenix /*targetInfo*/,
    -
    17887 };
    -
    17888 
    -
    17889 //---------------------------------------------------------------------------
    -
    17890 // Link name: MST7MDT -> America/Denver
    -
    17891 //---------------------------------------------------------------------------
    -
    17892 
    -
    17893 static const char kZoneNameMST7MDT[] ACE_TIME_PROGMEM = "MST7MDT";
    -
    17894 
    -
    17895 const extended::Info::ZoneInfo kZoneMST7MDT ACE_TIME_PROGMEM = {
    -
    17896  kZoneNameMST7MDT /*name*/,
    -
    17897  0xf2af9375 /*zoneId*/,
    -
    17898  &kZoneContext /*zoneContext*/,
    -
    17899  1 /*numEras*/,
    -
    17900  kZoneEraAmerica_Denver /*eras*/,
    -
    17901  &kZoneAmerica_Denver /*targetInfo*/,
    -
    17902 };
    -
    17903 
    -
    17904 //---------------------------------------------------------------------------
    -
    17905 // Link name: Mexico/BajaNorte -> America/Tijuana
    -
    17906 //---------------------------------------------------------------------------
    -
    17907 
    -
    17908 static const char kZoneNameMexico_BajaNorte[] ACE_TIME_PROGMEM = "Mexico/BajaNorte";
    -
    17909 
    -
    17910 const extended::Info::ZoneInfo kZoneMexico_BajaNorte ACE_TIME_PROGMEM = {
    -
    17911  kZoneNameMexico_BajaNorte /*name*/,
    -
    17912  0xfcf7150f /*zoneId*/,
    -
    17913  &kZoneContext /*zoneContext*/,
    -
    17914  4 /*numEras*/,
    -
    17915  kZoneEraAmerica_Tijuana /*eras*/,
    -
    17916  &kZoneAmerica_Tijuana /*targetInfo*/,
    -
    17917 };
    -
    17918 
    -
    17919 //---------------------------------------------------------------------------
    -
    17920 // Link name: Mexico/BajaSur -> America/Mazatlan
    -
    17921 //---------------------------------------------------------------------------
    -
    17922 
    -
    17923 static const char kZoneNameMexico_BajaSur[] ACE_TIME_PROGMEM = "Mexico/BajaSur";
    -
    17924 
    -
    17925 const extended::Info::ZoneInfo kZoneMexico_BajaSur ACE_TIME_PROGMEM = {
    -
    17926  kZoneNameMexico_BajaSur /*name*/,
    -
    17927  0x08ee3641 /*zoneId*/,
    -
    17928  &kZoneContext /*zoneContext*/,
    -
    17929  1 /*numEras*/,
    -
    17930  kZoneEraAmerica_Mazatlan /*eras*/,
    -
    17931  &kZoneAmerica_Mazatlan /*targetInfo*/,
    -
    17932 };
    -
    17933 
    -
    17934 //---------------------------------------------------------------------------
    -
    17935 // Link name: Mexico/General -> America/Mexico_City
    -
    17936 //---------------------------------------------------------------------------
    -
    17937 
    -
    17938 static const char kZoneNameMexico_General[] ACE_TIME_PROGMEM = "Mexico/General";
    -
    17939 
    -
    17940 const extended::Info::ZoneInfo kZoneMexico_General ACE_TIME_PROGMEM = {
    -
    17941  kZoneNameMexico_General /*name*/,
    -
    17942  0x93711d57 /*zoneId*/,
    -
    17943  &kZoneContext /*zoneContext*/,
    -
    17944  3 /*numEras*/,
    -
    17945  kZoneEraAmerica_Mexico_City /*eras*/,
    -
    17946  &kZoneAmerica_Mexico_City /*targetInfo*/,
    -
    17947 };
    -
    17948 
    -
    17949 //---------------------------------------------------------------------------
    -
    17950 // Link name: NZ -> Pacific/Auckland
    -
    17951 //---------------------------------------------------------------------------
    -
    17952 
    -
    17953 static const char kZoneNameNZ[] ACE_TIME_PROGMEM = "NZ";
    -
    17954 
    -
    17955 const extended::Info::ZoneInfo kZoneNZ ACE_TIME_PROGMEM = {
    -
    17956  kZoneNameNZ /*name*/,
    -
    17957  0x005974ad /*zoneId*/,
    -
    17958  &kZoneContext /*zoneContext*/,
    -
    17959  1 /*numEras*/,
    -
    17960  kZoneEraPacific_Auckland /*eras*/,
    -
    17961  &kZonePacific_Auckland /*targetInfo*/,
    -
    17962 };
    -
    17963 
    -
    17964 //---------------------------------------------------------------------------
    -
    17965 // Link name: NZ-CHAT -> Pacific/Chatham
    -
    17966 //---------------------------------------------------------------------------
    -
    17967 
    -
    17968 static const char kZoneNameNZ_CHAT[] ACE_TIME_PROGMEM = "NZ-CHAT";
    -
    17969 
    -
    17970 const extended::Info::ZoneInfo kZoneNZ_CHAT ACE_TIME_PROGMEM = {
    -
    17971  kZoneNameNZ_CHAT /*name*/,
    -
    17972  0x4d42afda /*zoneId*/,
    -
    17973  &kZoneContext /*zoneContext*/,
    -
    17974  1 /*numEras*/,
    -
    17975  kZoneEraPacific_Chatham /*eras*/,
    -
    17976  &kZonePacific_Chatham /*targetInfo*/,
    -
    17977 };
    -
    17978 
    -
    17979 //---------------------------------------------------------------------------
    -
    17980 // Link name: Navajo -> America/Denver
    -
    17981 //---------------------------------------------------------------------------
    -
    17982 
    -
    17983 static const char kZoneNameNavajo[] ACE_TIME_PROGMEM = "Navajo";
    -
    17984 
    -
    17985 const extended::Info::ZoneInfo kZoneNavajo ACE_TIME_PROGMEM = {
    -
    17986  kZoneNameNavajo /*name*/,
    -
    17987  0xc4ef0e24 /*zoneId*/,
    -
    17988  &kZoneContext /*zoneContext*/,
    -
    17989  1 /*numEras*/,
    -
    17990  kZoneEraAmerica_Denver /*eras*/,
    -
    17991  &kZoneAmerica_Denver /*targetInfo*/,
    -
    17992 };
    -
    17993 
    -
    17994 //---------------------------------------------------------------------------
    -
    17995 // Link name: PRC -> Asia/Shanghai
    -
    17996 //---------------------------------------------------------------------------
    -
    17997 
    -
    17998 static const char kZoneNamePRC[] ACE_TIME_PROGMEM = "PRC";
    -
    17999 
    -
    18000 const extended::Info::ZoneInfo kZonePRC ACE_TIME_PROGMEM = {
    -
    18001  kZoneNamePRC /*name*/,
    -
    18002  0x0b88120a /*zoneId*/,
    -
    18003  &kZoneContext /*zoneContext*/,
    -
    18004  1 /*numEras*/,
    -
    18005  kZoneEraAsia_Shanghai /*eras*/,
    -
    18006  &kZoneAsia_Shanghai /*targetInfo*/,
    -
    18007 };
    -
    18008 
    -
    18009 //---------------------------------------------------------------------------
    -
    18010 // Link name: PST8PDT -> America/Los_Angeles
    -
    18011 //---------------------------------------------------------------------------
    -
    18012 
    -
    18013 static const char kZoneNamePST8PDT[] ACE_TIME_PROGMEM = "PST8PDT";
    -
    18014 
    -
    18015 const extended::Info::ZoneInfo kZonePST8PDT ACE_TIME_PROGMEM = {
    -
    18016  kZoneNamePST8PDT /*name*/,
    -
    18017  0xd99ee2dc /*zoneId*/,
    -
    18018  &kZoneContext /*zoneContext*/,
    -
    18019  1 /*numEras*/,
    -
    18020  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    18021  &kZoneAmerica_Los_Angeles /*targetInfo*/,
    -
    18022 };
    -
    18023 
    -
    18024 //---------------------------------------------------------------------------
    -
    18025 // Link name: Pacific/Chuuk -> Pacific/Port_Moresby
    -
    18026 //---------------------------------------------------------------------------
    -
    18027 
    -
    18028 static const char kZoneNamePacific_Chuuk[] ACE_TIME_PROGMEM = "\x0e" "Chuuk";
    -
    18029 
    -
    18030 const extended::Info::ZoneInfo kZonePacific_Chuuk ACE_TIME_PROGMEM = {
    -
    18031  kZoneNamePacific_Chuuk /*name*/,
    -
    18032  0x8a090b23 /*zoneId*/,
    -
    18033  &kZoneContext /*zoneContext*/,
    -
    18034  1 /*numEras*/,
    -
    18035  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    18036  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    18037 };
    -
    18038 
    -
    18039 //---------------------------------------------------------------------------
    -
    18040 // Link name: Pacific/Enderbury -> Pacific/Kanton
    -
    18041 //---------------------------------------------------------------------------
    -
    18042 
    -
    18043 static const char kZoneNamePacific_Enderbury[] ACE_TIME_PROGMEM = "\x0e" "Enderbury";
    -
    18044 
    -
    18045 const extended::Info::ZoneInfo kZonePacific_Enderbury ACE_TIME_PROGMEM = {
    -
    18046  kZoneNamePacific_Enderbury /*name*/,
    -
    18047  0x61599a93 /*zoneId*/,
    -
    18048  &kZoneContext /*zoneContext*/,
    -
    18049  1 /*numEras*/,
    -
    18050  kZoneEraPacific_Kanton /*eras*/,
    -
    18051  &kZonePacific_Kanton /*targetInfo*/,
    -
    18052 };
    -
    18053 
    -
    18054 //---------------------------------------------------------------------------
    -
    18055 // Link name: Pacific/Funafuti -> Pacific/Tarawa
    -
    18056 //---------------------------------------------------------------------------
    -
    18057 
    -
    18058 static const char kZoneNamePacific_Funafuti[] ACE_TIME_PROGMEM = "\x0e" "Funafuti";
    -
    18059 
    -
    18060 const extended::Info::ZoneInfo kZonePacific_Funafuti ACE_TIME_PROGMEM = {
    -
    18061  kZoneNamePacific_Funafuti /*name*/,
    -
    18062  0xdb402d65 /*zoneId*/,
    -
    18063  &kZoneContext /*zoneContext*/,
    -
    18064  1 /*numEras*/,
    -
    18065  kZoneEraPacific_Tarawa /*eras*/,
    -
    18066  &kZonePacific_Tarawa /*targetInfo*/,
    -
    18067 };
    -
    18068 
    -
    18069 //---------------------------------------------------------------------------
    -
    18070 // Link name: Pacific/Johnston -> Pacific/Honolulu
    -
    18071 //---------------------------------------------------------------------------
    -
    18072 
    -
    18073 static const char kZoneNamePacific_Johnston[] ACE_TIME_PROGMEM = "\x0e" "Johnston";
    -
    18074 
    -
    18075 const extended::Info::ZoneInfo kZonePacific_Johnston ACE_TIME_PROGMEM = {
    -
    18076  kZoneNamePacific_Johnston /*name*/,
    -
    18077  0xb15d7b36 /*zoneId*/,
    -
    18078  &kZoneContext /*zoneContext*/,
    -
    18079  1 /*numEras*/,
    -
    18080  kZoneEraPacific_Honolulu /*eras*/,
    -
    18081  &kZonePacific_Honolulu /*targetInfo*/,
    -
    18082 };
    -
    18083 
    -
    18084 //---------------------------------------------------------------------------
    -
    18085 // Link name: Pacific/Majuro -> Pacific/Tarawa
    -
    18086 //---------------------------------------------------------------------------
    -
    18087 
    -
    18088 static const char kZoneNamePacific_Majuro[] ACE_TIME_PROGMEM = "\x0e" "Majuro";
    -
    18089 
    -
    18090 const extended::Info::ZoneInfo kZonePacific_Majuro ACE_TIME_PROGMEM = {
    -
    18091  kZoneNamePacific_Majuro /*name*/,
    -
    18092  0xe1f95371 /*zoneId*/,
    -
    18093  &kZoneContext /*zoneContext*/,
    -
    18094  1 /*numEras*/,
    -
    18095  kZoneEraPacific_Tarawa /*eras*/,
    -
    18096  &kZonePacific_Tarawa /*targetInfo*/,
    -
    18097 };
    -
    18098 
    -
    18099 //---------------------------------------------------------------------------
    -
    18100 // Link name: Pacific/Midway -> Pacific/Pago_Pago
    -
    18101 //---------------------------------------------------------------------------
    -
    18102 
    -
    18103 static const char kZoneNamePacific_Midway[] ACE_TIME_PROGMEM = "\x0e" "Midway";
    -
    18104 
    -
    18105 const extended::Info::ZoneInfo kZonePacific_Midway ACE_TIME_PROGMEM = {
    -
    18106  kZoneNamePacific_Midway /*name*/,
    -
    18107  0xe286d38e /*zoneId*/,
    -
    18108  &kZoneContext /*zoneContext*/,
    -
    18109  1 /*numEras*/,
    -
    18110  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    18111  &kZonePacific_Pago_Pago /*targetInfo*/,
    -
    18112 };
    -
    18113 
    -
    18114 //---------------------------------------------------------------------------
    -
    18115 // Link name: Pacific/Pohnpei -> Pacific/Guadalcanal
    -
    18116 //---------------------------------------------------------------------------
    -
    18117 
    -
    18118 static const char kZoneNamePacific_Pohnpei[] ACE_TIME_PROGMEM = "\x0e" "Pohnpei";
    -
    18119 
    -
    18120 const extended::Info::ZoneInfo kZonePacific_Pohnpei ACE_TIME_PROGMEM = {
    -
    18121  kZoneNamePacific_Pohnpei /*name*/,
    -
    18122  0x28929f96 /*zoneId*/,
    -
    18123  &kZoneContext /*zoneContext*/,
    -
    18124  1 /*numEras*/,
    -
    18125  kZoneEraPacific_Guadalcanal /*eras*/,
    -
    18126  &kZonePacific_Guadalcanal /*targetInfo*/,
    -
    18127 };
    -
    18128 
    -
    18129 //---------------------------------------------------------------------------
    -
    18130 // Link name: Pacific/Ponape -> Pacific/Guadalcanal
    -
    18131 //---------------------------------------------------------------------------
    -
    18132 
    -
    18133 static const char kZoneNamePacific_Ponape[] ACE_TIME_PROGMEM = "\x0e" "Ponape";
    -
    18134 
    -
    18135 const extended::Info::ZoneInfo kZonePacific_Ponape ACE_TIME_PROGMEM = {
    -
    18136  kZoneNamePacific_Ponape /*name*/,
    -
    18137  0xe9f80086 /*zoneId*/,
    -
    18138  &kZoneContext /*zoneContext*/,
    -
    18139  1 /*numEras*/,
    -
    18140  kZoneEraPacific_Guadalcanal /*eras*/,
    -
    18141  &kZonePacific_Guadalcanal /*targetInfo*/,
    -
    18142 };
    -
    18143 
    -
    18144 //---------------------------------------------------------------------------
    -
    18145 // Link name: Pacific/Saipan -> Pacific/Guam
    -
    18146 //---------------------------------------------------------------------------
    -
    18147 
    -
    18148 static const char kZoneNamePacific_Saipan[] ACE_TIME_PROGMEM = "\x0e" "Saipan";
    -
    18149 
    -
    18150 const extended::Info::ZoneInfo kZonePacific_Saipan ACE_TIME_PROGMEM = {
    -
    18151  kZoneNamePacific_Saipan /*name*/,
    -
    18152  0xeff7a35f /*zoneId*/,
    -
    18153  &kZoneContext /*zoneContext*/,
    -
    18154  2 /*numEras*/,
    -
    18155  kZoneEraPacific_Guam /*eras*/,
    -
    18156  &kZonePacific_Guam /*targetInfo*/,
    -
    18157 };
    -
    18158 
    -
    18159 //---------------------------------------------------------------------------
    -
    18160 // Link name: Pacific/Samoa -> Pacific/Pago_Pago
    -
    18161 //---------------------------------------------------------------------------
    -
    18162 
    -
    18163 static const char kZoneNamePacific_Samoa[] ACE_TIME_PROGMEM = "\x0e" "Samoa";
    -
    18164 
    -
    18165 const extended::Info::ZoneInfo kZonePacific_Samoa ACE_TIME_PROGMEM = {
    -
    18166  kZoneNamePacific_Samoa /*name*/,
    -
    18167  0x8b2699b4 /*zoneId*/,
    -
    18168  &kZoneContext /*zoneContext*/,
    -
    18169  1 /*numEras*/,
    -
    18170  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    18171  &kZonePacific_Pago_Pago /*targetInfo*/,
    -
    18172 };
    -
    18173 
    -
    18174 //---------------------------------------------------------------------------
    -
    18175 // Link name: Pacific/Truk -> Pacific/Port_Moresby
    -
    18176 //---------------------------------------------------------------------------
    -
    18177 
    -
    18178 static const char kZoneNamePacific_Truk[] ACE_TIME_PROGMEM = "\x0e" "Truk";
    -
    18179 
    -
    18180 const extended::Info::ZoneInfo kZonePacific_Truk ACE_TIME_PROGMEM = {
    -
    18181  kZoneNamePacific_Truk /*name*/,
    -
    18182  0x234010a9 /*zoneId*/,
    -
    18183  &kZoneContext /*zoneContext*/,
    -
    18184  1 /*numEras*/,
    -
    18185  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    18186  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    18187 };
    -
    18188 
    -
    18189 //---------------------------------------------------------------------------
    -
    18190 // Link name: Pacific/Wake -> Pacific/Tarawa
    -
    18191 //---------------------------------------------------------------------------
    -
    18192 
    -
    18193 static const char kZoneNamePacific_Wake[] ACE_TIME_PROGMEM = "\x0e" "Wake";
    -
    18194 
    -
    18195 const extended::Info::ZoneInfo kZonePacific_Wake ACE_TIME_PROGMEM = {
    -
    18196  kZoneNamePacific_Wake /*name*/,
    -
    18197  0x23416c2b /*zoneId*/,
    -
    18198  &kZoneContext /*zoneContext*/,
    -
    18199  1 /*numEras*/,
    -
    18200  kZoneEraPacific_Tarawa /*eras*/,
    -
    18201  &kZonePacific_Tarawa /*targetInfo*/,
    -
    18202 };
    -
    18203 
    -
    18204 //---------------------------------------------------------------------------
    -
    18205 // Link name: Pacific/Wallis -> Pacific/Tarawa
    -
    18206 //---------------------------------------------------------------------------
    -
    18207 
    -
    18208 static const char kZoneNamePacific_Wallis[] ACE_TIME_PROGMEM = "\x0e" "Wallis";
    -
    18209 
    -
    18210 const extended::Info::ZoneInfo kZonePacific_Wallis ACE_TIME_PROGMEM = {
    -
    18211  kZoneNamePacific_Wallis /*name*/,
    -
    18212  0xf94ddb0f /*zoneId*/,
    -
    18213  &kZoneContext /*zoneContext*/,
    -
    18214  1 /*numEras*/,
    -
    18215  kZoneEraPacific_Tarawa /*eras*/,
    -
    18216  &kZonePacific_Tarawa /*targetInfo*/,
    -
    18217 };
    -
    18218 
    -
    18219 //---------------------------------------------------------------------------
    -
    18220 // Link name: Pacific/Yap -> Pacific/Port_Moresby
    -
    18221 //---------------------------------------------------------------------------
    -
    18222 
    -
    18223 static const char kZoneNamePacific_Yap[] ACE_TIME_PROGMEM = "\x0e" "Yap";
    -
    18224 
    -
    18225 const extended::Info::ZoneInfo kZonePacific_Yap ACE_TIME_PROGMEM = {
    -
    18226  kZoneNamePacific_Yap /*name*/,
    -
    18227  0xbb40138d /*zoneId*/,
    -
    18228  &kZoneContext /*zoneContext*/,
    -
    18229  1 /*numEras*/,
    -
    18230  kZoneEraPacific_Port_Moresby /*eras*/,
    -
    18231  &kZonePacific_Port_Moresby /*targetInfo*/,
    -
    18232 };
    -
    18233 
    -
    18234 //---------------------------------------------------------------------------
    -
    18235 // Link name: Poland -> Europe/Warsaw
    -
    18236 //---------------------------------------------------------------------------
    -
    18237 
    -
    18238 static const char kZoneNamePoland[] ACE_TIME_PROGMEM = "Poland";
    -
    18239 
    -
    18240 const extended::Info::ZoneInfo kZonePoland ACE_TIME_PROGMEM = {
    -
    18241  kZoneNamePoland /*name*/,
    -
    18242  0xca913b23 /*zoneId*/,
    -
    18243  &kZoneContext /*zoneContext*/,
    -
    18244  1 /*numEras*/,
    -
    18245  kZoneEraEurope_Warsaw /*eras*/,
    -
    18246  &kZoneEurope_Warsaw /*targetInfo*/,
    -
    18247 };
    -
    18248 
    -
    18249 //---------------------------------------------------------------------------
    -
    18250 // Link name: Portugal -> Europe/Lisbon
    -
    18251 //---------------------------------------------------------------------------
    -
    18252 
    -
    18253 static const char kZoneNamePortugal[] ACE_TIME_PROGMEM = "Portugal";
    -
    18254 
    -
    18255 const extended::Info::ZoneInfo kZonePortugal ACE_TIME_PROGMEM = {
    -
    18256  kZoneNamePortugal /*name*/,
    -
    18257  0xc3274593 /*zoneId*/,
    -
    18258  &kZoneContext /*zoneContext*/,
    -
    18259  1 /*numEras*/,
    -
    18260  kZoneEraEurope_Lisbon /*eras*/,
    -
    18261  &kZoneEurope_Lisbon /*targetInfo*/,
    -
    18262 };
    -
    18263 
    -
    18264 //---------------------------------------------------------------------------
    -
    18265 // Link name: ROC -> Asia/Taipei
    -
    18266 //---------------------------------------------------------------------------
    -
    18267 
    -
    18268 static const char kZoneNameROC[] ACE_TIME_PROGMEM = "ROC";
    -
    18269 
    -
    18270 const extended::Info::ZoneInfo kZoneROC ACE_TIME_PROGMEM = {
    -
    18271  kZoneNameROC /*name*/,
    -
    18272  0x0b881a29 /*zoneId*/,
    -
    18273  &kZoneContext /*zoneContext*/,
    -
    18274  1 /*numEras*/,
    -
    18275  kZoneEraAsia_Taipei /*eras*/,
    -
    18276  &kZoneAsia_Taipei /*targetInfo*/,
    -
    18277 };
    -
    18278 
    -
    18279 //---------------------------------------------------------------------------
    -
    18280 // Link name: ROK -> Asia/Seoul
    -
    18281 //---------------------------------------------------------------------------
    -
    18282 
    -
    18283 static const char kZoneNameROK[] ACE_TIME_PROGMEM = "ROK";
    -
    18284 
    -
    18285 const extended::Info::ZoneInfo kZoneROK ACE_TIME_PROGMEM = {
    -
    18286  kZoneNameROK /*name*/,
    -
    18287  0x0b881a31 /*zoneId*/,
    -
    18288  &kZoneContext /*zoneContext*/,
    -
    18289  1 /*numEras*/,
    -
    18290  kZoneEraAsia_Seoul /*eras*/,
    -
    18291  &kZoneAsia_Seoul /*targetInfo*/,
    -
    18292 };
    -
    18293 
    -
    18294 //---------------------------------------------------------------------------
    -
    18295 // Link name: Singapore -> Asia/Singapore
    -
    18296 //---------------------------------------------------------------------------
    -
    18297 
    -
    18298 static const char kZoneNameSingapore[] ACE_TIME_PROGMEM = "Singapore";
    -
    18299 
    -
    18300 const extended::Info::ZoneInfo kZoneSingapore ACE_TIME_PROGMEM = {
    -
    18301  kZoneNameSingapore /*name*/,
    -
    18302  0xa8598c8d /*zoneId*/,
    -
    18303  &kZoneContext /*zoneContext*/,
    -
    18304  1 /*numEras*/,
    -
    18305  kZoneEraAsia_Singapore /*eras*/,
    -
    18306  &kZoneAsia_Singapore /*targetInfo*/,
    -
    18307 };
    -
    18308 
    -
    18309 //---------------------------------------------------------------------------
    -
    18310 // Link name: Turkey -> Europe/Istanbul
    -
    18311 //---------------------------------------------------------------------------
    -
    18312 
    -
    18313 static const char kZoneNameTurkey[] ACE_TIME_PROGMEM = "Turkey";
    -
    18314 
    -
    18315 const extended::Info::ZoneInfo kZoneTurkey ACE_TIME_PROGMEM = {
    -
    18316  kZoneNameTurkey /*name*/,
    -
    18317  0xd455e469 /*zoneId*/,
    -
    18318  &kZoneContext /*zoneContext*/,
    -
    18319  9 /*numEras*/,
    -
    18320  kZoneEraEurope_Istanbul /*eras*/,
    -
    18321  &kZoneEurope_Istanbul /*targetInfo*/,
    -
    18322 };
    -
    18323 
    -
    18324 //---------------------------------------------------------------------------
    -
    18325 // Link name: UCT -> Etc/UTC
    -
    18326 //---------------------------------------------------------------------------
    -
    18327 
    -
    18328 static const char kZoneNameUCT[] ACE_TIME_PROGMEM = "UCT";
    -
    18329 
    -
    18330 const extended::Info::ZoneInfo kZoneUCT ACE_TIME_PROGMEM = {
    -
    18331  kZoneNameUCT /*name*/,
    -
    18332  0x0b882571 /*zoneId*/,
    -
    18333  &kZoneContext /*zoneContext*/,
    -
    18334  1 /*numEras*/,
    -
    18335  kZoneEraEtc_UTC /*eras*/,
    -
    18336  &kZoneEtc_UTC /*targetInfo*/,
    -
    18337 };
    -
    18338 
    -
    18339 //---------------------------------------------------------------------------
    -
    18340 // Link name: US/Alaska -> America/Anchorage
    -
    18341 //---------------------------------------------------------------------------
    -
    18342 
    -
    18343 static const char kZoneNameUS_Alaska[] ACE_TIME_PROGMEM = "US/Alaska";
    -
    18344 
    -
    18345 const extended::Info::ZoneInfo kZoneUS_Alaska ACE_TIME_PROGMEM = {
    -
    18346  kZoneNameUS_Alaska /*name*/,
    -
    18347  0xfa300bc9 /*zoneId*/,
    -
    18348  &kZoneContext /*zoneContext*/,
    -
    18349  1 /*numEras*/,
    -
    18350  kZoneEraAmerica_Anchorage /*eras*/,
    -
    18351  &kZoneAmerica_Anchorage /*targetInfo*/,
    -
    18352 };
    -
    18353 
    -
    18354 //---------------------------------------------------------------------------
    -
    18355 // Link name: US/Aleutian -> America/Adak
    -
    18356 //---------------------------------------------------------------------------
    -
    18357 
    -
    18358 static const char kZoneNameUS_Aleutian[] ACE_TIME_PROGMEM = "US/Aleutian";
    -
    18359 
    -
    18360 const extended::Info::ZoneInfo kZoneUS_Aleutian ACE_TIME_PROGMEM = {
    -
    18361  kZoneNameUS_Aleutian /*name*/,
    -
    18362  0x4fe013ef /*zoneId*/,
    -
    18363  &kZoneContext /*zoneContext*/,
    -
    18364  1 /*numEras*/,
    -
    18365  kZoneEraAmerica_Adak /*eras*/,
    -
    18366  &kZoneAmerica_Adak /*targetInfo*/,
    -
    18367 };
    -
    18368 
    -
    18369 //---------------------------------------------------------------------------
    -
    18370 // Link name: US/Arizona -> America/Phoenix
    -
    18371 //---------------------------------------------------------------------------
    -
    18372 
    -
    18373 static const char kZoneNameUS_Arizona[] ACE_TIME_PROGMEM = "US/Arizona";
    -
    18374 
    -
    18375 const extended::Info::ZoneInfo kZoneUS_Arizona ACE_TIME_PROGMEM = {
    -
    18376  kZoneNameUS_Arizona /*name*/,
    -
    18377  0x4ec52670 /*zoneId*/,
    -
    18378  &kZoneContext /*zoneContext*/,
    -
    18379  1 /*numEras*/,
    -
    18380  kZoneEraAmerica_Phoenix /*eras*/,
    -
    18381  &kZoneAmerica_Phoenix /*targetInfo*/,
    -
    18382 };
    -
    18383 
    -
    18384 //---------------------------------------------------------------------------
    -
    18385 // Link name: US/Central -> America/Chicago
    -
    18386 //---------------------------------------------------------------------------
    -
    18387 
    -
    18388 static const char kZoneNameUS_Central[] ACE_TIME_PROGMEM = "US/Central";
    -
    18389 
    -
    18390 const extended::Info::ZoneInfo kZoneUS_Central ACE_TIME_PROGMEM = {
    -
    18391  kZoneNameUS_Central /*name*/,
    -
    18392  0xcabdcb25 /*zoneId*/,
    -
    18393  &kZoneContext /*zoneContext*/,
    -
    18394  1 /*numEras*/,
    -
    18395  kZoneEraAmerica_Chicago /*eras*/,
    -
    18396  &kZoneAmerica_Chicago /*targetInfo*/,
    -
    18397 };
    -
    18398 
    -
    18399 //---------------------------------------------------------------------------
    -
    18400 // Link name: US/East-Indiana -> America/Indiana/Indianapolis
    -
    18401 //---------------------------------------------------------------------------
    -
    18402 
    -
    18403 static const char kZoneNameUS_East_Indiana[] ACE_TIME_PROGMEM = "US/East-Indiana";
    -
    18404 
    -
    18405 const extended::Info::ZoneInfo kZoneUS_East_Indiana ACE_TIME_PROGMEM = {
    -
    18406  kZoneNameUS_East_Indiana /*name*/,
    -
    18407  0x6dcf558a /*zoneId*/,
    -
    18408  &kZoneContext /*zoneContext*/,
    -
    18409  2 /*numEras*/,
    -
    18410  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
    -
    18411  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
    -
    18412 };
    -
    18413 
    -
    18414 //---------------------------------------------------------------------------
    -
    18415 // Link name: US/Eastern -> America/New_York
    -
    18416 //---------------------------------------------------------------------------
    -
    18417 
    -
    18418 static const char kZoneNameUS_Eastern[] ACE_TIME_PROGMEM = "US/Eastern";
    -
    18419 
    -
    18420 const extended::Info::ZoneInfo kZoneUS_Eastern ACE_TIME_PROGMEM = {
    -
    18421  kZoneNameUS_Eastern /*name*/,
    -
    18422  0x5bb7e78e /*zoneId*/,
    -
    18423  &kZoneContext /*zoneContext*/,
    -
    18424  1 /*numEras*/,
    -
    18425  kZoneEraAmerica_New_York /*eras*/,
    -
    18426  &kZoneAmerica_New_York /*targetInfo*/,
    -
    18427 };
    -
    18428 
    -
    18429 //---------------------------------------------------------------------------
    -
    18430 // Link name: US/Hawaii -> Pacific/Honolulu
    -
    18431 //---------------------------------------------------------------------------
    -
    18432 
    -
    18433 static const char kZoneNameUS_Hawaii[] ACE_TIME_PROGMEM = "US/Hawaii";
    -
    18434 
    -
    18435 const extended::Info::ZoneInfo kZoneUS_Hawaii ACE_TIME_PROGMEM = {
    -
    18436  kZoneNameUS_Hawaii /*name*/,
    -
    18437  0x09c8de2f /*zoneId*/,
    -
    18438  &kZoneContext /*zoneContext*/,
    -
    18439  1 /*numEras*/,
    -
    18440  kZoneEraPacific_Honolulu /*eras*/,
    -
    18441  &kZonePacific_Honolulu /*targetInfo*/,
    -
    18442 };
    -
    18443 
    -
    18444 //---------------------------------------------------------------------------
    -
    18445 // Link name: US/Indiana-Starke -> America/Indiana/Knox
    -
    18446 //---------------------------------------------------------------------------
    -
    18447 
    -
    18448 static const char kZoneNameUS_Indiana_Starke[] ACE_TIME_PROGMEM = "US/Indiana-Starke";
    -
    18449 
    -
    18450 const extended::Info::ZoneInfo kZoneUS_Indiana_Starke ACE_TIME_PROGMEM = {
    -
    18451  kZoneNameUS_Indiana_Starke /*name*/,
    -
    18452  0x67977be7 /*zoneId*/,
    -
    18453  &kZoneContext /*zoneContext*/,
    -
    18454  2 /*numEras*/,
    -
    18455  kZoneEraAmerica_Indiana_Knox /*eras*/,
    -
    18456  &kZoneAmerica_Indiana_Knox /*targetInfo*/,
    -
    18457 };
    -
    18458 
    -
    18459 //---------------------------------------------------------------------------
    -
    18460 // Link name: US/Michigan -> America/Detroit
    -
    18461 //---------------------------------------------------------------------------
    -
    18462 
    -
    18463 static const char kZoneNameUS_Michigan[] ACE_TIME_PROGMEM = "US/Michigan";
    -
    18464 
    -
    18465 const extended::Info::ZoneInfo kZoneUS_Michigan ACE_TIME_PROGMEM = {
    -
    18466  kZoneNameUS_Michigan /*name*/,
    -
    18467  0x766bb7bc /*zoneId*/,
    -
    18468  &kZoneContext /*zoneContext*/,
    -
    18469  1 /*numEras*/,
    -
    18470  kZoneEraAmerica_Detroit /*eras*/,
    -
    18471  &kZoneAmerica_Detroit /*targetInfo*/,
    -
    18472 };
    -
    18473 
    -
    18474 //---------------------------------------------------------------------------
    -
    18475 // Link name: US/Mountain -> America/Denver
    -
    18476 //---------------------------------------------------------------------------
    -
    18477 
    -
    18478 static const char kZoneNameUS_Mountain[] ACE_TIME_PROGMEM = "US/Mountain";
    -
    18479 
    -
    18480 const extended::Info::ZoneInfo kZoneUS_Mountain ACE_TIME_PROGMEM = {
    -
    18481  kZoneNameUS_Mountain /*name*/,
    -
    18482  0x6eb88247 /*zoneId*/,
    -
    18483  &kZoneContext /*zoneContext*/,
    -
    18484  1 /*numEras*/,
    -
    18485  kZoneEraAmerica_Denver /*eras*/,
    -
    18486  &kZoneAmerica_Denver /*targetInfo*/,
    -
    18487 };
    -
    18488 
    -
    18489 //---------------------------------------------------------------------------
    -
    18490 // Link name: US/Pacific -> America/Los_Angeles
    -
    18491 //---------------------------------------------------------------------------
    -
    18492 
    -
    18493 static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific";
    -
    18494 
    -
    18495 const extended::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = {
    -
    18496  kZoneNameUS_Pacific /*name*/,
    -
    18497  0xa950f6ab /*zoneId*/,
    -
    18498  &kZoneContext /*zoneContext*/,
    -
    18499  1 /*numEras*/,
    -
    18500  kZoneEraAmerica_Los_Angeles /*eras*/,
    -
    18501  &kZoneAmerica_Los_Angeles /*targetInfo*/,
    -
    18502 };
    -
    18503 
    -
    18504 //---------------------------------------------------------------------------
    -
    18505 // Link name: US/Samoa -> Pacific/Pago_Pago
    -
    18506 //---------------------------------------------------------------------------
    -
    18507 
    -
    18508 static const char kZoneNameUS_Samoa[] ACE_TIME_PROGMEM = "US/Samoa";
    -
    18509 
    -
    18510 const extended::Info::ZoneInfo kZoneUS_Samoa ACE_TIME_PROGMEM = {
    -
    18511  kZoneNameUS_Samoa /*name*/,
    -
    18512  0x566821cd /*zoneId*/,
    -
    18513  &kZoneContext /*zoneContext*/,
    -
    18514  1 /*numEras*/,
    -
    18515  kZoneEraPacific_Pago_Pago /*eras*/,
    -
    18516  &kZonePacific_Pago_Pago /*targetInfo*/,
    -
    18517 };
    -
    18518 
    -
    18519 //---------------------------------------------------------------------------
    -
    18520 // Link name: UTC -> Etc/UTC
    -
    18521 //---------------------------------------------------------------------------
    -
    18522 
    -
    18523 static const char kZoneNameUTC[] ACE_TIME_PROGMEM = "UTC";
    -
    18524 
    -
    18525 const extended::Info::ZoneInfo kZoneUTC ACE_TIME_PROGMEM = {
    -
    18526  kZoneNameUTC /*name*/,
    -
    18527  0x0b882791 /*zoneId*/,
    -
    18528  &kZoneContext /*zoneContext*/,
    -
    18529  1 /*numEras*/,
    -
    18530  kZoneEraEtc_UTC /*eras*/,
    -
    18531  &kZoneEtc_UTC /*targetInfo*/,
    -
    18532 };
    -
    18533 
    -
    18534 //---------------------------------------------------------------------------
    -
    18535 // Link name: Universal -> Etc/UTC
    -
    18536 //---------------------------------------------------------------------------
    -
    18537 
    -
    18538 static const char kZoneNameUniversal[] ACE_TIME_PROGMEM = "Universal";
    -
    18539 
    -
    18540 const extended::Info::ZoneInfo kZoneUniversal ACE_TIME_PROGMEM = {
    -
    18541  kZoneNameUniversal /*name*/,
    -
    18542  0xd0ff523e /*zoneId*/,
    -
    18543  &kZoneContext /*zoneContext*/,
    -
    18544  1 /*numEras*/,
    -
    18545  kZoneEraEtc_UTC /*eras*/,
    -
    18546  &kZoneEtc_UTC /*targetInfo*/,
    -
    18547 };
    -
    18548 
    -
    18549 //---------------------------------------------------------------------------
    -
    18550 // Link name: W-SU -> Europe/Moscow
    -
    18551 //---------------------------------------------------------------------------
    -
    18552 
    -
    18553 static const char kZoneNameW_SU[] ACE_TIME_PROGMEM = "W-SU";
    -
    18554 
    -
    18555 const extended::Info::ZoneInfo kZoneW_SU ACE_TIME_PROGMEM = {
    -
    18556  kZoneNameW_SU /*name*/,
    -
    18557  0x7c8d8ef1 /*zoneId*/,
    -
    18558  &kZoneContext /*zoneContext*/,
    -
    18559  3 /*numEras*/,
    -
    18560  kZoneEraEurope_Moscow /*eras*/,
    -
    18561  &kZoneEurope_Moscow /*targetInfo*/,
    -
    18562 };
    -
    18563 
    -
    18564 //---------------------------------------------------------------------------
    -
    18565 // Link name: WET -> Europe/Lisbon
    -
    18566 //---------------------------------------------------------------------------
    -
    18567 
    -
    18568 static const char kZoneNameWET[] ACE_TIME_PROGMEM = "WET";
    -
    18569 
    -
    18570 const extended::Info::ZoneInfo kZoneWET ACE_TIME_PROGMEM = {
    -
    18571  kZoneNameWET /*name*/,
    -
    18572  0x0b882e35 /*zoneId*/,
    -
    18573  &kZoneContext /*zoneContext*/,
    -
    18574  1 /*numEras*/,
    -
    18575  kZoneEraEurope_Lisbon /*eras*/,
    -
    18576  &kZoneEurope_Lisbon /*targetInfo*/,
    -
    18577 };
    -
    18578 
    -
    18579 //---------------------------------------------------------------------------
    -
    18580 // Link name: Zulu -> Etc/UTC
    -
    18581 //---------------------------------------------------------------------------
    -
    18582 
    -
    18583 static const char kZoneNameZulu[] ACE_TIME_PROGMEM = "Zulu";
    -
    18584 
    -
    18585 const extended::Info::ZoneInfo kZoneZulu ACE_TIME_PROGMEM = {
    -
    18586  kZoneNameZulu /*name*/,
    -
    18587  0x7c9069b5 /*zoneId*/,
    -
    18588  &kZoneContext /*zoneContext*/,
    -
    18589  1 /*numEras*/,
    -
    18590  kZoneEraEtc_UTC /*eras*/,
    -
    18591  &kZoneEtc_UTC /*targetInfo*/,
    -
    18592 };
    -
    18593 
    -
    18594 
    -
    18595 }
    -
    18596 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/zonedbx_2zone__infos_8h_source.html b/docs/html/zonedbx_2zone__infos_8h_source.html deleted file mode 100644 index 4b5cb76f6..000000000 --- a/docs/html/zonedbx_2zone__infos_8h_source.html +++ /dev/null @@ -1,1920 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/zone_infos.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_infos.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace zonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2087]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2090]
    -
    40 // Max Buffer Size: 7
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 647
    -
    45 // Policies: 82
    -
    46 // Rules: 731
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 6579
    -
    51 // Policies: 246
    -
    52 // Eras: 7117
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 231
    -
    57 // Letters: 46
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 29000
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 8772
    -
    65 // Policies: 656
    -
    66 // Eras: 10352
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 231
    -
    71 // Letters: 64
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 42653
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #ifndef ACE_TIME_ZONEDBX_ZONE_INFOS_H
    -
    79 #define ACE_TIME_ZONEDBX_ZONE_INFOS_H
    -
    80 
    -
    81 #include <zoneinfo/infos.h>
    -
    82 
    -
    83 class __FlashStringHelper;
    -
    84 
    -
    85 namespace ace_time {
    -
    86 namespace zonedbx {
    -
    87 
    -
    88 //---------------------------------------------------------------------------
    -
    89 // ZoneContext (should not be in PROGMEM)
    -
    90 //---------------------------------------------------------------------------
    -
    91 
    -
    92 // Version of the TZ Database which generated these files.
    -
    93 extern const __FlashStringHelper* const kTzDatabaseVersion;
    -
    94 
    -
    95 // Metadata about the zonedb files.
    -
    96 extern const extended::Info::ZoneContext kZoneContext;
    -
    97 
    -
    98 //---------------------------------------------------------------------------
    -
    99 // Supported zones: 340
    -
    100 //---------------------------------------------------------------------------
    -
    101 
    -
    102 extern const extended::Info::ZoneInfo kZoneAfrica_Abidjan; // Africa/Abidjan
    -
    103 extern const extended::Info::ZoneInfo kZoneAfrica_Algiers; // Africa/Algiers
    -
    104 extern const extended::Info::ZoneInfo kZoneAfrica_Bissau; // Africa/Bissau
    -
    105 extern const extended::Info::ZoneInfo kZoneAfrica_Cairo; // Africa/Cairo
    -
    106 extern const extended::Info::ZoneInfo kZoneAfrica_Casablanca; // Africa/Casablanca
    -
    107 extern const extended::Info::ZoneInfo kZoneAfrica_Ceuta; // Africa/Ceuta
    -
    108 extern const extended::Info::ZoneInfo kZoneAfrica_El_Aaiun; // Africa/El_Aaiun
    -
    109 extern const extended::Info::ZoneInfo kZoneAfrica_Johannesburg; // Africa/Johannesburg
    -
    110 extern const extended::Info::ZoneInfo kZoneAfrica_Juba; // Africa/Juba
    -
    111 extern const extended::Info::ZoneInfo kZoneAfrica_Khartoum; // Africa/Khartoum
    -
    112 extern const extended::Info::ZoneInfo kZoneAfrica_Lagos; // Africa/Lagos
    -
    113 extern const extended::Info::ZoneInfo kZoneAfrica_Maputo; // Africa/Maputo
    -
    114 extern const extended::Info::ZoneInfo kZoneAfrica_Monrovia; // Africa/Monrovia
    -
    115 extern const extended::Info::ZoneInfo kZoneAfrica_Nairobi; // Africa/Nairobi
    -
    116 extern const extended::Info::ZoneInfo kZoneAfrica_Ndjamena; // Africa/Ndjamena
    -
    117 extern const extended::Info::ZoneInfo kZoneAfrica_Sao_Tome; // Africa/Sao_Tome
    -
    118 extern const extended::Info::ZoneInfo kZoneAfrica_Tripoli; // Africa/Tripoli
    -
    119 extern const extended::Info::ZoneInfo kZoneAfrica_Tunis; // Africa/Tunis
    -
    120 extern const extended::Info::ZoneInfo kZoneAfrica_Windhoek; // Africa/Windhoek
    -
    121 extern const extended::Info::ZoneInfo kZoneAmerica_Adak; // America/Adak
    -
    122 extern const extended::Info::ZoneInfo kZoneAmerica_Anchorage; // America/Anchorage
    -
    123 extern const extended::Info::ZoneInfo kZoneAmerica_Araguaina; // America/Araguaina
    -
    124 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Buenos_Aires; // America/Argentina/Buenos_Aires
    -
    125 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Catamarca; // America/Argentina/Catamarca
    -
    126 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Cordoba; // America/Argentina/Cordoba
    -
    127 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Jujuy; // America/Argentina/Jujuy
    -
    128 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_La_Rioja; // America/Argentina/La_Rioja
    -
    129 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Mendoza; // America/Argentina/Mendoza
    -
    130 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Rio_Gallegos; // America/Argentina/Rio_Gallegos
    -
    131 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Salta; // America/Argentina/Salta
    -
    132 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_San_Juan; // America/Argentina/San_Juan
    -
    133 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_San_Luis; // America/Argentina/San_Luis
    -
    134 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Tucuman; // America/Argentina/Tucuman
    -
    135 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Ushuaia; // America/Argentina/Ushuaia
    -
    136 extern const extended::Info::ZoneInfo kZoneAmerica_Asuncion; // America/Asuncion
    -
    137 extern const extended::Info::ZoneInfo kZoneAmerica_Bahia; // America/Bahia
    -
    138 extern const extended::Info::ZoneInfo kZoneAmerica_Bahia_Banderas; // America/Bahia_Banderas
    -
    139 extern const extended::Info::ZoneInfo kZoneAmerica_Barbados; // America/Barbados
    -
    140 extern const extended::Info::ZoneInfo kZoneAmerica_Belem; // America/Belem
    -
    141 extern const extended::Info::ZoneInfo kZoneAmerica_Belize; // America/Belize
    -
    142 extern const extended::Info::ZoneInfo kZoneAmerica_Boa_Vista; // America/Boa_Vista
    -
    143 extern const extended::Info::ZoneInfo kZoneAmerica_Bogota; // America/Bogota
    -
    144 extern const extended::Info::ZoneInfo kZoneAmerica_Boise; // America/Boise
    -
    145 extern const extended::Info::ZoneInfo kZoneAmerica_Cambridge_Bay; // America/Cambridge_Bay
    -
    146 extern const extended::Info::ZoneInfo kZoneAmerica_Campo_Grande; // America/Campo_Grande
    -
    147 extern const extended::Info::ZoneInfo kZoneAmerica_Cancun; // America/Cancun
    -
    148 extern const extended::Info::ZoneInfo kZoneAmerica_Caracas; // America/Caracas
    -
    149 extern const extended::Info::ZoneInfo kZoneAmerica_Cayenne; // America/Cayenne
    -
    150 extern const extended::Info::ZoneInfo kZoneAmerica_Chicago; // America/Chicago
    -
    151 extern const extended::Info::ZoneInfo kZoneAmerica_Chihuahua; // America/Chihuahua
    -
    152 extern const extended::Info::ZoneInfo kZoneAmerica_Ciudad_Juarez; // America/Ciudad_Juarez
    -
    153 extern const extended::Info::ZoneInfo kZoneAmerica_Costa_Rica; // America/Costa_Rica
    -
    154 extern const extended::Info::ZoneInfo kZoneAmerica_Coyhaique; // America/Coyhaique
    -
    155 extern const extended::Info::ZoneInfo kZoneAmerica_Cuiaba; // America/Cuiaba
    -
    156 extern const extended::Info::ZoneInfo kZoneAmerica_Danmarkshavn; // America/Danmarkshavn
    -
    157 extern const extended::Info::ZoneInfo kZoneAmerica_Dawson; // America/Dawson
    -
    158 extern const extended::Info::ZoneInfo kZoneAmerica_Dawson_Creek; // America/Dawson_Creek
    -
    159 extern const extended::Info::ZoneInfo kZoneAmerica_Denver; // America/Denver
    -
    160 extern const extended::Info::ZoneInfo kZoneAmerica_Detroit; // America/Detroit
    -
    161 extern const extended::Info::ZoneInfo kZoneAmerica_Edmonton; // America/Edmonton
    -
    162 extern const extended::Info::ZoneInfo kZoneAmerica_Eirunepe; // America/Eirunepe
    -
    163 extern const extended::Info::ZoneInfo kZoneAmerica_El_Salvador; // America/El_Salvador
    -
    164 extern const extended::Info::ZoneInfo kZoneAmerica_Fort_Nelson; // America/Fort_Nelson
    -
    165 extern const extended::Info::ZoneInfo kZoneAmerica_Fortaleza; // America/Fortaleza
    -
    166 extern const extended::Info::ZoneInfo kZoneAmerica_Glace_Bay; // America/Glace_Bay
    -
    167 extern const extended::Info::ZoneInfo kZoneAmerica_Goose_Bay; // America/Goose_Bay
    -
    168 extern const extended::Info::ZoneInfo kZoneAmerica_Grand_Turk; // America/Grand_Turk
    -
    169 extern const extended::Info::ZoneInfo kZoneAmerica_Guatemala; // America/Guatemala
    -
    170 extern const extended::Info::ZoneInfo kZoneAmerica_Guayaquil; // America/Guayaquil
    -
    171 extern const extended::Info::ZoneInfo kZoneAmerica_Guyana; // America/Guyana
    -
    172 extern const extended::Info::ZoneInfo kZoneAmerica_Halifax; // America/Halifax
    -
    173 extern const extended::Info::ZoneInfo kZoneAmerica_Havana; // America/Havana
    -
    174 extern const extended::Info::ZoneInfo kZoneAmerica_Hermosillo; // America/Hermosillo
    -
    175 extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Indianapolis; // America/Indiana/Indianapolis
    -
    176 extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Knox; // America/Indiana/Knox
    -
    177 extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Marengo; // America/Indiana/Marengo
    -
    178 extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Petersburg; // America/Indiana/Petersburg
    -
    179 extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Tell_City; // America/Indiana/Tell_City
    -
    180 extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Vevay; // America/Indiana/Vevay
    -
    181 extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Vincennes; // America/Indiana/Vincennes
    -
    182 extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Winamac; // America/Indiana/Winamac
    -
    183 extern const extended::Info::ZoneInfo kZoneAmerica_Inuvik; // America/Inuvik
    -
    184 extern const extended::Info::ZoneInfo kZoneAmerica_Iqaluit; // America/Iqaluit
    -
    185 extern const extended::Info::ZoneInfo kZoneAmerica_Jamaica; // America/Jamaica
    -
    186 extern const extended::Info::ZoneInfo kZoneAmerica_Juneau; // America/Juneau
    -
    187 extern const extended::Info::ZoneInfo kZoneAmerica_Kentucky_Louisville; // America/Kentucky/Louisville
    -
    188 extern const extended::Info::ZoneInfo kZoneAmerica_Kentucky_Monticello; // America/Kentucky/Monticello
    -
    189 extern const extended::Info::ZoneInfo kZoneAmerica_La_Paz; // America/La_Paz
    -
    190 extern const extended::Info::ZoneInfo kZoneAmerica_Lima; // America/Lima
    -
    191 extern const extended::Info::ZoneInfo kZoneAmerica_Los_Angeles; // America/Los_Angeles
    -
    192 extern const extended::Info::ZoneInfo kZoneAmerica_Maceio; // America/Maceio
    -
    193 extern const extended::Info::ZoneInfo kZoneAmerica_Managua; // America/Managua
    -
    194 extern const extended::Info::ZoneInfo kZoneAmerica_Manaus; // America/Manaus
    -
    195 extern const extended::Info::ZoneInfo kZoneAmerica_Martinique; // America/Martinique
    -
    196 extern const extended::Info::ZoneInfo kZoneAmerica_Matamoros; // America/Matamoros
    -
    197 extern const extended::Info::ZoneInfo kZoneAmerica_Mazatlan; // America/Mazatlan
    -
    198 extern const extended::Info::ZoneInfo kZoneAmerica_Menominee; // America/Menominee
    -
    199 extern const extended::Info::ZoneInfo kZoneAmerica_Merida; // America/Merida
    -
    200 extern const extended::Info::ZoneInfo kZoneAmerica_Metlakatla; // America/Metlakatla
    -
    201 extern const extended::Info::ZoneInfo kZoneAmerica_Mexico_City; // America/Mexico_City
    -
    202 extern const extended::Info::ZoneInfo kZoneAmerica_Miquelon; // America/Miquelon
    -
    203 extern const extended::Info::ZoneInfo kZoneAmerica_Moncton; // America/Moncton
    -
    204 extern const extended::Info::ZoneInfo kZoneAmerica_Monterrey; // America/Monterrey
    -
    205 extern const extended::Info::ZoneInfo kZoneAmerica_Montevideo; // America/Montevideo
    -
    206 extern const extended::Info::ZoneInfo kZoneAmerica_New_York; // America/New_York
    -
    207 extern const extended::Info::ZoneInfo kZoneAmerica_Nome; // America/Nome
    -
    208 extern const extended::Info::ZoneInfo kZoneAmerica_Noronha; // America/Noronha
    -
    209 extern const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_Beulah; // America/North_Dakota/Beulah
    -
    210 extern const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_Center; // America/North_Dakota/Center
    -
    211 extern const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_New_Salem; // America/North_Dakota/New_Salem
    -
    212 extern const extended::Info::ZoneInfo kZoneAmerica_Nuuk; // America/Nuuk
    -
    213 extern const extended::Info::ZoneInfo kZoneAmerica_Ojinaga; // America/Ojinaga
    -
    214 extern const extended::Info::ZoneInfo kZoneAmerica_Panama; // America/Panama
    -
    215 extern const extended::Info::ZoneInfo kZoneAmerica_Paramaribo; // America/Paramaribo
    -
    216 extern const extended::Info::ZoneInfo kZoneAmerica_Phoenix; // America/Phoenix
    -
    217 extern const extended::Info::ZoneInfo kZoneAmerica_Port_au_Prince; // America/Port-au-Prince
    -
    218 extern const extended::Info::ZoneInfo kZoneAmerica_Porto_Velho; // America/Porto_Velho
    -
    219 extern const extended::Info::ZoneInfo kZoneAmerica_Puerto_Rico; // America/Puerto_Rico
    -
    220 extern const extended::Info::ZoneInfo kZoneAmerica_Punta_Arenas; // America/Punta_Arenas
    -
    221 extern const extended::Info::ZoneInfo kZoneAmerica_Rankin_Inlet; // America/Rankin_Inlet
    -
    222 extern const extended::Info::ZoneInfo kZoneAmerica_Recife; // America/Recife
    -
    223 extern const extended::Info::ZoneInfo kZoneAmerica_Regina; // America/Regina
    -
    224 extern const extended::Info::ZoneInfo kZoneAmerica_Resolute; // America/Resolute
    -
    225 extern const extended::Info::ZoneInfo kZoneAmerica_Rio_Branco; // America/Rio_Branco
    -
    226 extern const extended::Info::ZoneInfo kZoneAmerica_Santarem; // America/Santarem
    -
    227 extern const extended::Info::ZoneInfo kZoneAmerica_Santiago; // America/Santiago
    -
    228 extern const extended::Info::ZoneInfo kZoneAmerica_Santo_Domingo; // America/Santo_Domingo
    -
    229 extern const extended::Info::ZoneInfo kZoneAmerica_Sao_Paulo; // America/Sao_Paulo
    -
    230 extern const extended::Info::ZoneInfo kZoneAmerica_Scoresbysund; // America/Scoresbysund
    -
    231 extern const extended::Info::ZoneInfo kZoneAmerica_Sitka; // America/Sitka
    -
    232 extern const extended::Info::ZoneInfo kZoneAmerica_St_Johns; // America/St_Johns
    -
    233 extern const extended::Info::ZoneInfo kZoneAmerica_Swift_Current; // America/Swift_Current
    -
    234 extern const extended::Info::ZoneInfo kZoneAmerica_Tegucigalpa; // America/Tegucigalpa
    -
    235 extern const extended::Info::ZoneInfo kZoneAmerica_Thule; // America/Thule
    -
    236 extern const extended::Info::ZoneInfo kZoneAmerica_Tijuana; // America/Tijuana
    -
    237 extern const extended::Info::ZoneInfo kZoneAmerica_Toronto; // America/Toronto
    -
    238 extern const extended::Info::ZoneInfo kZoneAmerica_Vancouver; // America/Vancouver
    -
    239 extern const extended::Info::ZoneInfo kZoneAmerica_Whitehorse; // America/Whitehorse
    -
    240 extern const extended::Info::ZoneInfo kZoneAmerica_Winnipeg; // America/Winnipeg
    -
    241 extern const extended::Info::ZoneInfo kZoneAmerica_Yakutat; // America/Yakutat
    -
    242 extern const extended::Info::ZoneInfo kZoneAntarctica_Casey; // Antarctica/Casey
    -
    243 extern const extended::Info::ZoneInfo kZoneAntarctica_Davis; // Antarctica/Davis
    -
    244 extern const extended::Info::ZoneInfo kZoneAntarctica_Macquarie; // Antarctica/Macquarie
    -
    245 extern const extended::Info::ZoneInfo kZoneAntarctica_Mawson; // Antarctica/Mawson
    -
    246 extern const extended::Info::ZoneInfo kZoneAntarctica_Palmer; // Antarctica/Palmer
    -
    247 extern const extended::Info::ZoneInfo kZoneAntarctica_Rothera; // Antarctica/Rothera
    -
    248 extern const extended::Info::ZoneInfo kZoneAntarctica_Troll; // Antarctica/Troll
    -
    249 extern const extended::Info::ZoneInfo kZoneAntarctica_Vostok; // Antarctica/Vostok
    -
    250 extern const extended::Info::ZoneInfo kZoneAsia_Almaty; // Asia/Almaty
    -
    251 extern const extended::Info::ZoneInfo kZoneAsia_Amman; // Asia/Amman
    -
    252 extern const extended::Info::ZoneInfo kZoneAsia_Anadyr; // Asia/Anadyr
    -
    253 extern const extended::Info::ZoneInfo kZoneAsia_Aqtau; // Asia/Aqtau
    -
    254 extern const extended::Info::ZoneInfo kZoneAsia_Aqtobe; // Asia/Aqtobe
    -
    255 extern const extended::Info::ZoneInfo kZoneAsia_Ashgabat; // Asia/Ashgabat
    -
    256 extern const extended::Info::ZoneInfo kZoneAsia_Atyrau; // Asia/Atyrau
    -
    257 extern const extended::Info::ZoneInfo kZoneAsia_Baghdad; // Asia/Baghdad
    -
    258 extern const extended::Info::ZoneInfo kZoneAsia_Baku; // Asia/Baku
    -
    259 extern const extended::Info::ZoneInfo kZoneAsia_Bangkok; // Asia/Bangkok
    -
    260 extern const extended::Info::ZoneInfo kZoneAsia_Barnaul; // Asia/Barnaul
    -
    261 extern const extended::Info::ZoneInfo kZoneAsia_Beirut; // Asia/Beirut
    -
    262 extern const extended::Info::ZoneInfo kZoneAsia_Bishkek; // Asia/Bishkek
    -
    263 extern const extended::Info::ZoneInfo kZoneAsia_Chita; // Asia/Chita
    -
    264 extern const extended::Info::ZoneInfo kZoneAsia_Colombo; // Asia/Colombo
    -
    265 extern const extended::Info::ZoneInfo kZoneAsia_Damascus; // Asia/Damascus
    -
    266 extern const extended::Info::ZoneInfo kZoneAsia_Dhaka; // Asia/Dhaka
    -
    267 extern const extended::Info::ZoneInfo kZoneAsia_Dili; // Asia/Dili
    -
    268 extern const extended::Info::ZoneInfo kZoneAsia_Dubai; // Asia/Dubai
    -
    269 extern const extended::Info::ZoneInfo kZoneAsia_Dushanbe; // Asia/Dushanbe
    -
    270 extern const extended::Info::ZoneInfo kZoneAsia_Famagusta; // Asia/Famagusta
    -
    271 extern const extended::Info::ZoneInfo kZoneAsia_Gaza; // Asia/Gaza
    -
    272 extern const extended::Info::ZoneInfo kZoneAsia_Hebron; // Asia/Hebron
    -
    273 extern const extended::Info::ZoneInfo kZoneAsia_Ho_Chi_Minh; // Asia/Ho_Chi_Minh
    -
    274 extern const extended::Info::ZoneInfo kZoneAsia_Hong_Kong; // Asia/Hong_Kong
    -
    275 extern const extended::Info::ZoneInfo kZoneAsia_Hovd; // Asia/Hovd
    -
    276 extern const extended::Info::ZoneInfo kZoneAsia_Irkutsk; // Asia/Irkutsk
    -
    277 extern const extended::Info::ZoneInfo kZoneAsia_Jakarta; // Asia/Jakarta
    -
    278 extern const extended::Info::ZoneInfo kZoneAsia_Jayapura; // Asia/Jayapura
    -
    279 extern const extended::Info::ZoneInfo kZoneAsia_Jerusalem; // Asia/Jerusalem
    -
    280 extern const extended::Info::ZoneInfo kZoneAsia_Kabul; // Asia/Kabul
    -
    281 extern const extended::Info::ZoneInfo kZoneAsia_Kamchatka; // Asia/Kamchatka
    -
    282 extern const extended::Info::ZoneInfo kZoneAsia_Karachi; // Asia/Karachi
    -
    283 extern const extended::Info::ZoneInfo kZoneAsia_Kathmandu; // Asia/Kathmandu
    -
    284 extern const extended::Info::ZoneInfo kZoneAsia_Khandyga; // Asia/Khandyga
    -
    285 extern const extended::Info::ZoneInfo kZoneAsia_Kolkata; // Asia/Kolkata
    -
    286 extern const extended::Info::ZoneInfo kZoneAsia_Krasnoyarsk; // Asia/Krasnoyarsk
    -
    287 extern const extended::Info::ZoneInfo kZoneAsia_Kuching; // Asia/Kuching
    -
    288 extern const extended::Info::ZoneInfo kZoneAsia_Macau; // Asia/Macau
    -
    289 extern const extended::Info::ZoneInfo kZoneAsia_Magadan; // Asia/Magadan
    -
    290 extern const extended::Info::ZoneInfo kZoneAsia_Makassar; // Asia/Makassar
    -
    291 extern const extended::Info::ZoneInfo kZoneAsia_Manila; // Asia/Manila
    -
    292 extern const extended::Info::ZoneInfo kZoneAsia_Nicosia; // Asia/Nicosia
    -
    293 extern const extended::Info::ZoneInfo kZoneAsia_Novokuznetsk; // Asia/Novokuznetsk
    -
    294 extern const extended::Info::ZoneInfo kZoneAsia_Novosibirsk; // Asia/Novosibirsk
    -
    295 extern const extended::Info::ZoneInfo kZoneAsia_Omsk; // Asia/Omsk
    -
    296 extern const extended::Info::ZoneInfo kZoneAsia_Oral; // Asia/Oral
    -
    297 extern const extended::Info::ZoneInfo kZoneAsia_Pontianak; // Asia/Pontianak
    -
    298 extern const extended::Info::ZoneInfo kZoneAsia_Pyongyang; // Asia/Pyongyang
    -
    299 extern const extended::Info::ZoneInfo kZoneAsia_Qatar; // Asia/Qatar
    -
    300 extern const extended::Info::ZoneInfo kZoneAsia_Qostanay; // Asia/Qostanay
    -
    301 extern const extended::Info::ZoneInfo kZoneAsia_Qyzylorda; // Asia/Qyzylorda
    -
    302 extern const extended::Info::ZoneInfo kZoneAsia_Riyadh; // Asia/Riyadh
    -
    303 extern const extended::Info::ZoneInfo kZoneAsia_Sakhalin; // Asia/Sakhalin
    -
    304 extern const extended::Info::ZoneInfo kZoneAsia_Samarkand; // Asia/Samarkand
    -
    305 extern const extended::Info::ZoneInfo kZoneAsia_Seoul; // Asia/Seoul
    -
    306 extern const extended::Info::ZoneInfo kZoneAsia_Shanghai; // Asia/Shanghai
    -
    307 extern const extended::Info::ZoneInfo kZoneAsia_Singapore; // Asia/Singapore
    -
    308 extern const extended::Info::ZoneInfo kZoneAsia_Srednekolymsk; // Asia/Srednekolymsk
    -
    309 extern const extended::Info::ZoneInfo kZoneAsia_Taipei; // Asia/Taipei
    -
    310 extern const extended::Info::ZoneInfo kZoneAsia_Tashkent; // Asia/Tashkent
    -
    311 extern const extended::Info::ZoneInfo kZoneAsia_Tbilisi; // Asia/Tbilisi
    -
    312 extern const extended::Info::ZoneInfo kZoneAsia_Tehran; // Asia/Tehran
    -
    313 extern const extended::Info::ZoneInfo kZoneAsia_Thimphu; // Asia/Thimphu
    -
    314 extern const extended::Info::ZoneInfo kZoneAsia_Tokyo; // Asia/Tokyo
    -
    315 extern const extended::Info::ZoneInfo kZoneAsia_Tomsk; // Asia/Tomsk
    -
    316 extern const extended::Info::ZoneInfo kZoneAsia_Ulaanbaatar; // Asia/Ulaanbaatar
    -
    317 extern const extended::Info::ZoneInfo kZoneAsia_Urumqi; // Asia/Urumqi
    -
    318 extern const extended::Info::ZoneInfo kZoneAsia_Ust_Nera; // Asia/Ust-Nera
    -
    319 extern const extended::Info::ZoneInfo kZoneAsia_Vladivostok; // Asia/Vladivostok
    -
    320 extern const extended::Info::ZoneInfo kZoneAsia_Yakutsk; // Asia/Yakutsk
    -
    321 extern const extended::Info::ZoneInfo kZoneAsia_Yangon; // Asia/Yangon
    -
    322 extern const extended::Info::ZoneInfo kZoneAsia_Yekaterinburg; // Asia/Yekaterinburg
    -
    323 extern const extended::Info::ZoneInfo kZoneAsia_Yerevan; // Asia/Yerevan
    -
    324 extern const extended::Info::ZoneInfo kZoneAtlantic_Azores; // Atlantic/Azores
    -
    325 extern const extended::Info::ZoneInfo kZoneAtlantic_Bermuda; // Atlantic/Bermuda
    -
    326 extern const extended::Info::ZoneInfo kZoneAtlantic_Canary; // Atlantic/Canary
    -
    327 extern const extended::Info::ZoneInfo kZoneAtlantic_Cape_Verde; // Atlantic/Cape_Verde
    -
    328 extern const extended::Info::ZoneInfo kZoneAtlantic_Faroe; // Atlantic/Faroe
    -
    329 extern const extended::Info::ZoneInfo kZoneAtlantic_Madeira; // Atlantic/Madeira
    -
    330 extern const extended::Info::ZoneInfo kZoneAtlantic_South_Georgia; // Atlantic/South_Georgia
    -
    331 extern const extended::Info::ZoneInfo kZoneAtlantic_Stanley; // Atlantic/Stanley
    -
    332 extern const extended::Info::ZoneInfo kZoneAustralia_Adelaide; // Australia/Adelaide
    -
    333 extern const extended::Info::ZoneInfo kZoneAustralia_Brisbane; // Australia/Brisbane
    -
    334 extern const extended::Info::ZoneInfo kZoneAustralia_Broken_Hill; // Australia/Broken_Hill
    -
    335 extern const extended::Info::ZoneInfo kZoneAustralia_Darwin; // Australia/Darwin
    -
    336 extern const extended::Info::ZoneInfo kZoneAustralia_Eucla; // Australia/Eucla
    -
    337 extern const extended::Info::ZoneInfo kZoneAustralia_Hobart; // Australia/Hobart
    -
    338 extern const extended::Info::ZoneInfo kZoneAustralia_Lindeman; // Australia/Lindeman
    -
    339 extern const extended::Info::ZoneInfo kZoneAustralia_Lord_Howe; // Australia/Lord_Howe
    -
    340 extern const extended::Info::ZoneInfo kZoneAustralia_Melbourne; // Australia/Melbourne
    -
    341 extern const extended::Info::ZoneInfo kZoneAustralia_Perth; // Australia/Perth
    -
    342 extern const extended::Info::ZoneInfo kZoneAustralia_Sydney; // Australia/Sydney
    -
    343 extern const extended::Info::ZoneInfo kZoneEtc_GMT; // Etc/GMT
    -
    344 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_1; // Etc/GMT+1
    -
    345 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_10; // Etc/GMT+10
    -
    346 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_11; // Etc/GMT+11
    -
    347 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_12; // Etc/GMT+12
    -
    348 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_2; // Etc/GMT+2
    -
    349 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_3; // Etc/GMT+3
    -
    350 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_4; // Etc/GMT+4
    -
    351 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_5; // Etc/GMT+5
    -
    352 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_6; // Etc/GMT+6
    -
    353 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_7; // Etc/GMT+7
    -
    354 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_8; // Etc/GMT+8
    -
    355 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_9; // Etc/GMT+9
    -
    356 extern const extended::Info::ZoneInfo kZoneEtc_GMT_1; // Etc/GMT-1
    -
    357 extern const extended::Info::ZoneInfo kZoneEtc_GMT_10; // Etc/GMT-10
    -
    358 extern const extended::Info::ZoneInfo kZoneEtc_GMT_11; // Etc/GMT-11
    -
    359 extern const extended::Info::ZoneInfo kZoneEtc_GMT_12; // Etc/GMT-12
    -
    360 extern const extended::Info::ZoneInfo kZoneEtc_GMT_13; // Etc/GMT-13
    -
    361 extern const extended::Info::ZoneInfo kZoneEtc_GMT_14; // Etc/GMT-14
    -
    362 extern const extended::Info::ZoneInfo kZoneEtc_GMT_2; // Etc/GMT-2
    -
    363 extern const extended::Info::ZoneInfo kZoneEtc_GMT_3; // Etc/GMT-3
    -
    364 extern const extended::Info::ZoneInfo kZoneEtc_GMT_4; // Etc/GMT-4
    -
    365 extern const extended::Info::ZoneInfo kZoneEtc_GMT_5; // Etc/GMT-5
    -
    366 extern const extended::Info::ZoneInfo kZoneEtc_GMT_6; // Etc/GMT-6
    -
    367 extern const extended::Info::ZoneInfo kZoneEtc_GMT_7; // Etc/GMT-7
    -
    368 extern const extended::Info::ZoneInfo kZoneEtc_GMT_8; // Etc/GMT-8
    -
    369 extern const extended::Info::ZoneInfo kZoneEtc_GMT_9; // Etc/GMT-9
    -
    370 extern const extended::Info::ZoneInfo kZoneEtc_UTC; // Etc/UTC
    -
    371 extern const extended::Info::ZoneInfo kZoneEurope_Andorra; // Europe/Andorra
    -
    372 extern const extended::Info::ZoneInfo kZoneEurope_Astrakhan; // Europe/Astrakhan
    -
    373 extern const extended::Info::ZoneInfo kZoneEurope_Athens; // Europe/Athens
    -
    374 extern const extended::Info::ZoneInfo kZoneEurope_Belgrade; // Europe/Belgrade
    -
    375 extern const extended::Info::ZoneInfo kZoneEurope_Berlin; // Europe/Berlin
    -
    376 extern const extended::Info::ZoneInfo kZoneEurope_Brussels; // Europe/Brussels
    -
    377 extern const extended::Info::ZoneInfo kZoneEurope_Bucharest; // Europe/Bucharest
    -
    378 extern const extended::Info::ZoneInfo kZoneEurope_Budapest; // Europe/Budapest
    -
    379 extern const extended::Info::ZoneInfo kZoneEurope_Chisinau; // Europe/Chisinau
    -
    380 extern const extended::Info::ZoneInfo kZoneEurope_Dublin; // Europe/Dublin
    -
    381 extern const extended::Info::ZoneInfo kZoneEurope_Gibraltar; // Europe/Gibraltar
    -
    382 extern const extended::Info::ZoneInfo kZoneEurope_Helsinki; // Europe/Helsinki
    -
    383 extern const extended::Info::ZoneInfo kZoneEurope_Istanbul; // Europe/Istanbul
    -
    384 extern const extended::Info::ZoneInfo kZoneEurope_Kaliningrad; // Europe/Kaliningrad
    -
    385 extern const extended::Info::ZoneInfo kZoneEurope_Kirov; // Europe/Kirov
    -
    386 extern const extended::Info::ZoneInfo kZoneEurope_Kyiv; // Europe/Kyiv
    -
    387 extern const extended::Info::ZoneInfo kZoneEurope_Lisbon; // Europe/Lisbon
    -
    388 extern const extended::Info::ZoneInfo kZoneEurope_London; // Europe/London
    -
    389 extern const extended::Info::ZoneInfo kZoneEurope_Madrid; // Europe/Madrid
    -
    390 extern const extended::Info::ZoneInfo kZoneEurope_Malta; // Europe/Malta
    -
    391 extern const extended::Info::ZoneInfo kZoneEurope_Minsk; // Europe/Minsk
    -
    392 extern const extended::Info::ZoneInfo kZoneEurope_Moscow; // Europe/Moscow
    -
    393 extern const extended::Info::ZoneInfo kZoneEurope_Paris; // Europe/Paris
    -
    394 extern const extended::Info::ZoneInfo kZoneEurope_Prague; // Europe/Prague
    -
    395 extern const extended::Info::ZoneInfo kZoneEurope_Riga; // Europe/Riga
    -
    396 extern const extended::Info::ZoneInfo kZoneEurope_Rome; // Europe/Rome
    -
    397 extern const extended::Info::ZoneInfo kZoneEurope_Samara; // Europe/Samara
    -
    398 extern const extended::Info::ZoneInfo kZoneEurope_Saratov; // Europe/Saratov
    -
    399 extern const extended::Info::ZoneInfo kZoneEurope_Simferopol; // Europe/Simferopol
    -
    400 extern const extended::Info::ZoneInfo kZoneEurope_Sofia; // Europe/Sofia
    -
    401 extern const extended::Info::ZoneInfo kZoneEurope_Tallinn; // Europe/Tallinn
    -
    402 extern const extended::Info::ZoneInfo kZoneEurope_Tirane; // Europe/Tirane
    -
    403 extern const extended::Info::ZoneInfo kZoneEurope_Ulyanovsk; // Europe/Ulyanovsk
    -
    404 extern const extended::Info::ZoneInfo kZoneEurope_Vienna; // Europe/Vienna
    -
    405 extern const extended::Info::ZoneInfo kZoneEurope_Vilnius; // Europe/Vilnius
    -
    406 extern const extended::Info::ZoneInfo kZoneEurope_Volgograd; // Europe/Volgograd
    -
    407 extern const extended::Info::ZoneInfo kZoneEurope_Warsaw; // Europe/Warsaw
    -
    408 extern const extended::Info::ZoneInfo kZoneEurope_Zurich; // Europe/Zurich
    -
    409 extern const extended::Info::ZoneInfo kZoneIndian_Chagos; // Indian/Chagos
    -
    410 extern const extended::Info::ZoneInfo kZoneIndian_Maldives; // Indian/Maldives
    -
    411 extern const extended::Info::ZoneInfo kZoneIndian_Mauritius; // Indian/Mauritius
    -
    412 extern const extended::Info::ZoneInfo kZonePacific_Apia; // Pacific/Apia
    -
    413 extern const extended::Info::ZoneInfo kZonePacific_Auckland; // Pacific/Auckland
    -
    414 extern const extended::Info::ZoneInfo kZonePacific_Bougainville; // Pacific/Bougainville
    -
    415 extern const extended::Info::ZoneInfo kZonePacific_Chatham; // Pacific/Chatham
    -
    416 extern const extended::Info::ZoneInfo kZonePacific_Easter; // Pacific/Easter
    -
    417 extern const extended::Info::ZoneInfo kZonePacific_Efate; // Pacific/Efate
    -
    418 extern const extended::Info::ZoneInfo kZonePacific_Fakaofo; // Pacific/Fakaofo
    -
    419 extern const extended::Info::ZoneInfo kZonePacific_Fiji; // Pacific/Fiji
    -
    420 extern const extended::Info::ZoneInfo kZonePacific_Galapagos; // Pacific/Galapagos
    -
    421 extern const extended::Info::ZoneInfo kZonePacific_Gambier; // Pacific/Gambier
    -
    422 extern const extended::Info::ZoneInfo kZonePacific_Guadalcanal; // Pacific/Guadalcanal
    -
    423 extern const extended::Info::ZoneInfo kZonePacific_Guam; // Pacific/Guam
    -
    424 extern const extended::Info::ZoneInfo kZonePacific_Honolulu; // Pacific/Honolulu
    -
    425 extern const extended::Info::ZoneInfo kZonePacific_Kanton; // Pacific/Kanton
    -
    426 extern const extended::Info::ZoneInfo kZonePacific_Kiritimati; // Pacific/Kiritimati
    -
    427 extern const extended::Info::ZoneInfo kZonePacific_Kosrae; // Pacific/Kosrae
    -
    428 extern const extended::Info::ZoneInfo kZonePacific_Kwajalein; // Pacific/Kwajalein
    -
    429 extern const extended::Info::ZoneInfo kZonePacific_Marquesas; // Pacific/Marquesas
    -
    430 extern const extended::Info::ZoneInfo kZonePacific_Nauru; // Pacific/Nauru
    -
    431 extern const extended::Info::ZoneInfo kZonePacific_Niue; // Pacific/Niue
    -
    432 extern const extended::Info::ZoneInfo kZonePacific_Norfolk; // Pacific/Norfolk
    -
    433 extern const extended::Info::ZoneInfo kZonePacific_Noumea; // Pacific/Noumea
    -
    434 extern const extended::Info::ZoneInfo kZonePacific_Pago_Pago; // Pacific/Pago_Pago
    -
    435 extern const extended::Info::ZoneInfo kZonePacific_Palau; // Pacific/Palau
    -
    436 extern const extended::Info::ZoneInfo kZonePacific_Pitcairn; // Pacific/Pitcairn
    -
    437 extern const extended::Info::ZoneInfo kZonePacific_Port_Moresby; // Pacific/Port_Moresby
    -
    438 extern const extended::Info::ZoneInfo kZonePacific_Rarotonga; // Pacific/Rarotonga
    -
    439 extern const extended::Info::ZoneInfo kZonePacific_Tahiti; // Pacific/Tahiti
    -
    440 extern const extended::Info::ZoneInfo kZonePacific_Tarawa; // Pacific/Tarawa
    -
    441 extern const extended::Info::ZoneInfo kZonePacific_Tongatapu; // Pacific/Tongatapu
    -
    442 
    -
    443 
    -
    444 // Zone Ids
    -
    445 
    -
    446 const uint32_t kZoneIdAfrica_Abidjan = 0xc21305a3; // Africa/Abidjan
    -
    447 const uint32_t kZoneIdAfrica_Algiers = 0xd94515c1; // Africa/Algiers
    -
    448 const uint32_t kZoneIdAfrica_Bissau = 0x75564141; // Africa/Bissau
    -
    449 const uint32_t kZoneIdAfrica_Cairo = 0x77f8e228; // Africa/Cairo
    -
    450 const uint32_t kZoneIdAfrica_Casablanca = 0xc59f1b33; // Africa/Casablanca
    -
    451 const uint32_t kZoneIdAfrica_Ceuta = 0x77fb46ec; // Africa/Ceuta
    -
    452 const uint32_t kZoneIdAfrica_El_Aaiun = 0x9d6fb118; // Africa/El_Aaiun
    -
    453 const uint32_t kZoneIdAfrica_Johannesburg = 0xd5d157a0; // Africa/Johannesburg
    -
    454 const uint32_t kZoneIdAfrica_Juba = 0xd51b395c; // Africa/Juba
    -
    455 const uint32_t kZoneIdAfrica_Khartoum = 0xfb3d4205; // Africa/Khartoum
    -
    456 const uint32_t kZoneIdAfrica_Lagos = 0x789bb5d0; // Africa/Lagos
    -
    457 const uint32_t kZoneIdAfrica_Maputo = 0x8e6ca1f0; // Africa/Maputo
    -
    458 const uint32_t kZoneIdAfrica_Monrovia = 0x0ce90385; // Africa/Monrovia
    -
    459 const uint32_t kZoneIdAfrica_Nairobi = 0xa87ab57e; // Africa/Nairobi
    -
    460 const uint32_t kZoneIdAfrica_Ndjamena = 0x9fe09898; // Africa/Ndjamena
    -
    461 const uint32_t kZoneIdAfrica_Sao_Tome = 0x61b319d1; // Africa/Sao_Tome
    -
    462 const uint32_t kZoneIdAfrica_Tripoli = 0x9dfebd3d; // Africa/Tripoli
    -
    463 const uint32_t kZoneIdAfrica_Tunis = 0x79378e6d; // Africa/Tunis
    -
    464 const uint32_t kZoneIdAfrica_Windhoek = 0x789c9bd3; // Africa/Windhoek
    -
    465 const uint32_t kZoneIdAmerica_Adak = 0x97fe49d7; // America/Adak
    -
    466 const uint32_t kZoneIdAmerica_Anchorage = 0x5a79260e; // America/Anchorage
    -
    467 const uint32_t kZoneIdAmerica_Araguaina = 0x6f9a3aef; // America/Araguaina
    -
    468 const uint32_t kZoneIdAmerica_Argentina_Buenos_Aires = 0xd43b4c0d; // America/Argentina/Buenos_Aires
    -
    469 const uint32_t kZoneIdAmerica_Argentina_Catamarca = 0x8d40986b; // America/Argentina/Catamarca
    -
    470 const uint32_t kZoneIdAmerica_Argentina_Cordoba = 0xbfccc308; // America/Argentina/Cordoba
    -
    471 const uint32_t kZoneIdAmerica_Argentina_Jujuy = 0x5f2f46c5; // America/Argentina/Jujuy
    -
    472 const uint32_t kZoneIdAmerica_Argentina_La_Rioja = 0xa46b7eef; // America/Argentina/La_Rioja
    -
    473 const uint32_t kZoneIdAmerica_Argentina_Mendoza = 0xa9f72d5c; // America/Argentina/Mendoza
    -
    474 const uint32_t kZoneIdAmerica_Argentina_Rio_Gallegos = 0xc5b0f565; // America/Argentina/Rio_Gallegos
    -
    475 const uint32_t kZoneIdAmerica_Argentina_Salta = 0x5fc73403; // America/Argentina/Salta
    -
    476 const uint32_t kZoneIdAmerica_Argentina_San_Juan = 0x3e1009bd; // America/Argentina/San_Juan
    -
    477 const uint32_t kZoneIdAmerica_Argentina_San_Luis = 0x3e11238c; // America/Argentina/San_Luis
    -
    478 const uint32_t kZoneIdAmerica_Argentina_Tucuman = 0xe96399eb; // America/Argentina/Tucuman
    -
    479 const uint32_t kZoneIdAmerica_Argentina_Ushuaia = 0x320dcdde; // America/Argentina/Ushuaia
    -
    480 const uint32_t kZoneIdAmerica_Asuncion = 0x50ec79a6; // America/Asuncion
    -
    481 const uint32_t kZoneIdAmerica_Bahia = 0x97d815fb; // America/Bahia
    -
    482 const uint32_t kZoneIdAmerica_Bahia_Banderas = 0x14f6329a; // America/Bahia_Banderas
    -
    483 const uint32_t kZoneIdAmerica_Barbados = 0xcbbc3b04; // America/Barbados
    -
    484 const uint32_t kZoneIdAmerica_Belem = 0x97da580b; // America/Belem
    -
    485 const uint32_t kZoneIdAmerica_Belize = 0x93256c81; // America/Belize
    -
    486 const uint32_t kZoneIdAmerica_Boa_Vista = 0x0a7b7efe; // America/Boa_Vista
    -
    487 const uint32_t kZoneIdAmerica_Bogota = 0x93d7bc62; // America/Bogota
    -
    488 const uint32_t kZoneIdAmerica_Boise = 0x97dfc8d8; // America/Boise
    -
    489 const uint32_t kZoneIdAmerica_Cambridge_Bay = 0xd5a44aff; // America/Cambridge_Bay
    -
    490 const uint32_t kZoneIdAmerica_Campo_Grande = 0xfec3e7a6; // America/Campo_Grande
    -
    491 const uint32_t kZoneIdAmerica_Cancun = 0x953331be; // America/Cancun
    -
    492 const uint32_t kZoneIdAmerica_Caracas = 0x3be064f4; // America/Caracas
    -
    493 const uint32_t kZoneIdAmerica_Cayenne = 0x3c617269; // America/Cayenne
    -
    494 const uint32_t kZoneIdAmerica_Chicago = 0x4b92b5d4; // America/Chicago
    -
    495 const uint32_t kZoneIdAmerica_Chihuahua = 0x8827d776; // America/Chihuahua
    -
    496 const uint32_t kZoneIdAmerica_Ciudad_Juarez = 0x7347fc60; // America/Ciudad_Juarez
    -
    497 const uint32_t kZoneIdAmerica_Costa_Rica = 0x63ff66be; // America/Costa_Rica
    -
    498 const uint32_t kZoneIdAmerica_Coyhaique = 0xcc3314ee; // America/Coyhaique
    -
    499 const uint32_t kZoneIdAmerica_Cuiaba = 0x969a52eb; // America/Cuiaba
    -
    500 const uint32_t kZoneIdAmerica_Danmarkshavn = 0xf554d204; // America/Danmarkshavn
    -
    501 const uint32_t kZoneIdAmerica_Dawson = 0x978d8d12; // America/Dawson
    -
    502 const uint32_t kZoneIdAmerica_Dawson_Creek = 0x6cf24e5b; // America/Dawson_Creek
    -
    503 const uint32_t kZoneIdAmerica_Denver = 0x97d10b2a; // America/Denver
    -
    504 const uint32_t kZoneIdAmerica_Detroit = 0x925cfbc1; // America/Detroit
    -
    505 const uint32_t kZoneIdAmerica_Edmonton = 0x6cb9484a; // America/Edmonton
    -
    506 const uint32_t kZoneIdAmerica_Eirunepe = 0xf9b29683; // America/Eirunepe
    -
    507 const uint32_t kZoneIdAmerica_El_Salvador = 0x752ad652; // America/El_Salvador
    -
    508 const uint32_t kZoneIdAmerica_Fort_Nelson = 0x3f437e0f; // America/Fort_Nelson
    -
    509 const uint32_t kZoneIdAmerica_Fortaleza = 0x2ad018ee; // America/Fortaleza
    -
    510 const uint32_t kZoneIdAmerica_Glace_Bay = 0x9681f8dd; // America/Glace_Bay
    -
    511 const uint32_t kZoneIdAmerica_Goose_Bay = 0xb649541e; // America/Goose_Bay
    -
    512 const uint32_t kZoneIdAmerica_Grand_Turk = 0x6e216197; // America/Grand_Turk
    -
    513 const uint32_t kZoneIdAmerica_Guatemala = 0x0c8259f7; // America/Guatemala
    -
    514 const uint32_t kZoneIdAmerica_Guayaquil = 0x17e64958; // America/Guayaquil
    -
    515 const uint32_t kZoneIdAmerica_Guyana = 0x9ff7bd0b; // America/Guyana
    -
    516 const uint32_t kZoneIdAmerica_Halifax = 0xbc5b7183; // America/Halifax
    -
    517 const uint32_t kZoneIdAmerica_Havana = 0xa0e15675; // America/Havana
    -
    518 const uint32_t kZoneIdAmerica_Hermosillo = 0x065d21c4; // America/Hermosillo
    -
    519 const uint32_t kZoneIdAmerica_Indiana_Indianapolis = 0x28a669a4; // America/Indiana/Indianapolis
    -
    520 const uint32_t kZoneIdAmerica_Indiana_Knox = 0x6554adc9; // America/Indiana/Knox
    -
    521 const uint32_t kZoneIdAmerica_Indiana_Marengo = 0x2feeee72; // America/Indiana/Marengo
    -
    522 const uint32_t kZoneIdAmerica_Indiana_Petersburg = 0x94ac7acc; // America/Indiana/Petersburg
    -
    523 const uint32_t kZoneIdAmerica_Indiana_Tell_City = 0x09263612; // America/Indiana/Tell_City
    -
    524 const uint32_t kZoneIdAmerica_Indiana_Vevay = 0x10aca054; // America/Indiana/Vevay
    -
    525 const uint32_t kZoneIdAmerica_Indiana_Vincennes = 0x28a0b212; // America/Indiana/Vincennes
    -
    526 const uint32_t kZoneIdAmerica_Indiana_Winamac = 0x4413fa69; // America/Indiana/Winamac
    -
    527 const uint32_t kZoneIdAmerica_Inuvik = 0xa42189fc; // America/Inuvik
    -
    528 const uint32_t kZoneIdAmerica_Iqaluit = 0x2de310bf; // America/Iqaluit
    -
    529 const uint32_t kZoneIdAmerica_Jamaica = 0x565dad6c; // America/Jamaica
    -
    530 const uint32_t kZoneIdAmerica_Juneau = 0xa6f13e2e; // America/Juneau
    -
    531 const uint32_t kZoneIdAmerica_Kentucky_Louisville = 0x1a21024b; // America/Kentucky/Louisville
    -
    532 const uint32_t kZoneIdAmerica_Kentucky_Monticello = 0xde71c439; // America/Kentucky/Monticello
    -
    533 const uint32_t kZoneIdAmerica_La_Paz = 0xaa29125d; // America/La_Paz
    -
    534 const uint32_t kZoneIdAmerica_Lima = 0x980468c9; // America/Lima
    -
    535 const uint32_t kZoneIdAmerica_Los_Angeles = 0xb7f7e8f2; // America/Los_Angeles
    -
    536 const uint32_t kZoneIdAmerica_Maceio = 0xac80c6d4; // America/Maceio
    -
    537 const uint32_t kZoneIdAmerica_Managua = 0x3d5e7600; // America/Managua
    -
    538 const uint32_t kZoneIdAmerica_Manaus = 0xac86bf8b; // America/Manaus
    -
    539 const uint32_t kZoneIdAmerica_Martinique = 0x551e84c5; // America/Martinique
    -
    540 const uint32_t kZoneIdAmerica_Matamoros = 0xdd1b0259; // America/Matamoros
    -
    541 const uint32_t kZoneIdAmerica_Mazatlan = 0x0532189e; // America/Mazatlan
    -
    542 const uint32_t kZoneIdAmerica_Menominee = 0xe0e9c583; // America/Menominee
    -
    543 const uint32_t kZoneIdAmerica_Merida = 0xacd172d8; // America/Merida
    -
    544 const uint32_t kZoneIdAmerica_Metlakatla = 0x84de2686; // America/Metlakatla
    -
    545 const uint32_t kZoneIdAmerica_Mexico_City = 0xd0d93f43; // America/Mexico_City
    -
    546 const uint32_t kZoneIdAmerica_Miquelon = 0x59674330; // America/Miquelon
    -
    547 const uint32_t kZoneIdAmerica_Moncton = 0x5e07fe24; // America/Moncton
    -
    548 const uint32_t kZoneIdAmerica_Monterrey = 0x269a1deb; // America/Monterrey
    -
    549 const uint32_t kZoneIdAmerica_Montevideo = 0xfa214780; // America/Montevideo
    -
    550 const uint32_t kZoneIdAmerica_New_York = 0x1e2a7654; // America/New_York
    -
    551 const uint32_t kZoneIdAmerica_Nome = 0x98059b15; // America/Nome
    -
    552 const uint32_t kZoneIdAmerica_Noronha = 0xab5116fb; // America/Noronha
    -
    553 const uint32_t kZoneIdAmerica_North_Dakota_Beulah = 0x9b52b384; // America/North_Dakota/Beulah
    -
    554 const uint32_t kZoneIdAmerica_North_Dakota_Center = 0x9da42814; // America/North_Dakota/Center
    -
    555 const uint32_t kZoneIdAmerica_North_Dakota_New_Salem = 0x04f9958e; // America/North_Dakota/New_Salem
    -
    556 const uint32_t kZoneIdAmerica_Nuuk = 0x9805b5a9; // America/Nuuk
    -
    557 const uint32_t kZoneIdAmerica_Ojinaga = 0xebfde83f; // America/Ojinaga
    -
    558 const uint32_t kZoneIdAmerica_Panama = 0xb3863854; // America/Panama
    -
    559 const uint32_t kZoneIdAmerica_Paramaribo = 0xb319e4c4; // America/Paramaribo
    -
    560 const uint32_t kZoneIdAmerica_Phoenix = 0x34b5af01; // America/Phoenix
    -
    561 const uint32_t kZoneIdAmerica_Port_au_Prince = 0x8e4a7bdc; // America/Port-au-Prince
    -
    562 const uint32_t kZoneIdAmerica_Porto_Velho = 0x6b1aac77; // America/Porto_Velho
    -
    563 const uint32_t kZoneIdAmerica_Puerto_Rico = 0x6752ca31; // America/Puerto_Rico
    -
    564 const uint32_t kZoneIdAmerica_Punta_Arenas = 0xc2c3bce7; // America/Punta_Arenas
    -
    565 const uint32_t kZoneIdAmerica_Rankin_Inlet = 0xc8de4984; // America/Rankin_Inlet
    -
    566 const uint32_t kZoneIdAmerica_Recife = 0xb8730494; // America/Recife
    -
    567 const uint32_t kZoneIdAmerica_Regina = 0xb875371c; // America/Regina
    -
    568 const uint32_t kZoneIdAmerica_Resolute = 0xc7093459; // America/Resolute
    -
    569 const uint32_t kZoneIdAmerica_Rio_Branco = 0x9d352764; // America/Rio_Branco
    -
    570 const uint32_t kZoneIdAmerica_Santarem = 0x740caec1; // America/Santarem
    -
    571 const uint32_t kZoneIdAmerica_Santiago = 0x7410c9bc; // America/Santiago
    -
    572 const uint32_t kZoneIdAmerica_Santo_Domingo = 0x75a0d177; // America/Santo_Domingo
    -
    573 const uint32_t kZoneIdAmerica_Sao_Paulo = 0x1063bfc9; // America/Sao_Paulo
    -
    574 const uint32_t kZoneIdAmerica_Scoresbysund = 0x123f8d2a; // America/Scoresbysund
    -
    575 const uint32_t kZoneIdAmerica_Sitka = 0x99104ce2; // America/Sitka
    -
    576 const uint32_t kZoneIdAmerica_St_Johns = 0x04b14e6e; // America/St_Johns
    -
    577 const uint32_t kZoneIdAmerica_Swift_Current = 0xdef98e55; // America/Swift_Current
    -
    578 const uint32_t kZoneIdAmerica_Tegucigalpa = 0xbfd6fd4c; // America/Tegucigalpa
    -
    579 const uint32_t kZoneIdAmerica_Thule = 0x9921dd68; // America/Thule
    -
    580 const uint32_t kZoneIdAmerica_Tijuana = 0x6aa1df72; // America/Tijuana
    -
    581 const uint32_t kZoneIdAmerica_Toronto = 0x792e851b; // America/Toronto
    -
    582 const uint32_t kZoneIdAmerica_Vancouver = 0x2c6f6b1f; // America/Vancouver
    -
    583 const uint32_t kZoneIdAmerica_Whitehorse = 0x54e0e3e8; // America/Whitehorse
    -
    584 const uint32_t kZoneIdAmerica_Winnipeg = 0x8c7dafc7; // America/Winnipeg
    -
    585 const uint32_t kZoneIdAmerica_Yakutat = 0xd8ee31e9; // America/Yakutat
    -
    586 const uint32_t kZoneIdAntarctica_Casey = 0xe2022583; // Antarctica/Casey
    -
    587 const uint32_t kZoneIdAntarctica_Davis = 0xe2144b45; // Antarctica/Davis
    -
    588 const uint32_t kZoneIdAntarctica_Macquarie = 0x92f47626; // Antarctica/Macquarie
    -
    589 const uint32_t kZoneIdAntarctica_Mawson = 0x399cd863; // Antarctica/Mawson
    -
    590 const uint32_t kZoneIdAntarctica_Palmer = 0x40962f4f; // Antarctica/Palmer
    -
    591 const uint32_t kZoneIdAntarctica_Rothera = 0x0e86d203; // Antarctica/Rothera
    -
    592 const uint32_t kZoneIdAntarctica_Troll = 0xe33f085b; // Antarctica/Troll
    -
    593 const uint32_t kZoneIdAntarctica_Vostok = 0x4f966fd4; // Antarctica/Vostok
    -
    594 const uint32_t kZoneIdAsia_Almaty = 0xa61f41fa; // Asia/Almaty
    -
    595 const uint32_t kZoneIdAsia_Amman = 0x148d21bc; // Asia/Amman
    -
    596 const uint32_t kZoneIdAsia_Anadyr = 0xa63cebd1; // Asia/Anadyr
    -
    597 const uint32_t kZoneIdAsia_Aqtau = 0x148f710e; // Asia/Aqtau
    -
    598 const uint32_t kZoneIdAsia_Aqtobe = 0xa67dcc4e; // Asia/Aqtobe
    -
    599 const uint32_t kZoneIdAsia_Ashgabat = 0xba87598d; // Asia/Ashgabat
    -
    600 const uint32_t kZoneIdAsia_Atyrau = 0xa6b6e068; // Asia/Atyrau
    -
    601 const uint32_t kZoneIdAsia_Baghdad = 0x9ceffbed; // Asia/Baghdad
    -
    602 const uint32_t kZoneIdAsia_Baku = 0x1fa788b5; // Asia/Baku
    -
    603 const uint32_t kZoneIdAsia_Bangkok = 0x9d6e3aaf; // Asia/Bangkok
    -
    604 const uint32_t kZoneIdAsia_Barnaul = 0x9dba4997; // Asia/Barnaul
    -
    605 const uint32_t kZoneIdAsia_Beirut = 0xa7f3d5fd; // Asia/Beirut
    -
    606 const uint32_t kZoneIdAsia_Bishkek = 0xb0728553; // Asia/Bishkek
    -
    607 const uint32_t kZoneIdAsia_Chita = 0x14ae863b; // Asia/Chita
    -
    608 const uint32_t kZoneIdAsia_Colombo = 0x0af0e91d; // Asia/Colombo
    -
    609 const uint32_t kZoneIdAsia_Damascus = 0x20fbb063; // Asia/Damascus
    -
    610 const uint32_t kZoneIdAsia_Dhaka = 0x14c07b8b; // Asia/Dhaka
    -
    611 const uint32_t kZoneIdAsia_Dili = 0x1fa8c394; // Asia/Dili
    -
    612 const uint32_t kZoneIdAsia_Dubai = 0x14c79f77; // Asia/Dubai
    -
    613 const uint32_t kZoneIdAsia_Dushanbe = 0x32fc5c3c; // Asia/Dushanbe
    -
    614 const uint32_t kZoneIdAsia_Famagusta = 0x289b4f8b; // Asia/Famagusta
    -
    615 const uint32_t kZoneIdAsia_Gaza = 0x1faa4875; // Asia/Gaza
    -
    616 const uint32_t kZoneIdAsia_Hebron = 0xb5eef250; // Asia/Hebron
    -
    617 const uint32_t kZoneIdAsia_Ho_Chi_Minh = 0x20f2d127; // Asia/Ho_Chi_Minh
    -
    618 const uint32_t kZoneIdAsia_Hong_Kong = 0x577f28ac; // Asia/Hong_Kong
    -
    619 const uint32_t kZoneIdAsia_Hovd = 0x1fab0fe3; // Asia/Hovd
    -
    620 const uint32_t kZoneIdAsia_Irkutsk = 0xdfbf213f; // Asia/Irkutsk
    -
    621 const uint32_t kZoneIdAsia_Jakarta = 0x0506ab50; // Asia/Jakarta
    -
    622 const uint32_t kZoneIdAsia_Jayapura = 0xc6833c2f; // Asia/Jayapura
    -
    623 const uint32_t kZoneIdAsia_Jerusalem = 0x5becd23a; // Asia/Jerusalem
    -
    624 const uint32_t kZoneIdAsia_Kabul = 0x153b5601; // Asia/Kabul
    -
    625 const uint32_t kZoneIdAsia_Kamchatka = 0x73baf9d7; // Asia/Kamchatka
    -
    626 const uint32_t kZoneIdAsia_Karachi = 0x527f5245; // Asia/Karachi
    -
    627 const uint32_t kZoneIdAsia_Kathmandu = 0x9a96ce6f; // Asia/Kathmandu
    -
    628 const uint32_t kZoneIdAsia_Khandyga = 0x9685a4d9; // Asia/Khandyga
    -
    629 const uint32_t kZoneIdAsia_Kolkata = 0x72c06cd9; // Asia/Kolkata
    -
    630 const uint32_t kZoneIdAsia_Krasnoyarsk = 0xd0376c6a; // Asia/Krasnoyarsk
    -
    631 const uint32_t kZoneIdAsia_Kuching = 0x801b003b; // Asia/Kuching
    -
    632 const uint32_t kZoneIdAsia_Macau = 0x155f88b9; // Asia/Macau
    -
    633 const uint32_t kZoneIdAsia_Magadan = 0xebacc19b; // Asia/Magadan
    -
    634 const uint32_t kZoneIdAsia_Makassar = 0x6aa21c85; // Asia/Makassar
    -
    635 const uint32_t kZoneIdAsia_Manila = 0xc156c944; // Asia/Manila
    -
    636 const uint32_t kZoneIdAsia_Nicosia = 0x4b0fcf78; // Asia/Nicosia
    -
    637 const uint32_t kZoneIdAsia_Novokuznetsk = 0x69264f93; // Asia/Novokuznetsk
    -
    638 const uint32_t kZoneIdAsia_Novosibirsk = 0xa2a435cb; // Asia/Novosibirsk
    -
    639 const uint32_t kZoneIdAsia_Omsk = 0x1faeddac; // Asia/Omsk
    -
    640 const uint32_t kZoneIdAsia_Oral = 0x1faef0a0; // Asia/Oral
    -
    641 const uint32_t kZoneIdAsia_Pontianak = 0x1a76c057; // Asia/Pontianak
    -
    642 const uint32_t kZoneIdAsia_Pyongyang = 0x93ed1c8e; // Asia/Pyongyang
    -
    643 const uint32_t kZoneIdAsia_Qatar = 0x15a8330b; // Asia/Qatar
    -
    644 const uint32_t kZoneIdAsia_Qostanay = 0x654fe522; // Asia/Qostanay
    -
    645 const uint32_t kZoneIdAsia_Qyzylorda = 0x71282e81; // Asia/Qyzylorda
    -
    646 const uint32_t kZoneIdAsia_Riyadh = 0xcd973d93; // Asia/Riyadh
    -
    647 const uint32_t kZoneIdAsia_Sakhalin = 0xf4a1c9bd; // Asia/Sakhalin
    -
    648 const uint32_t kZoneIdAsia_Samarkand = 0x13ae5104; // Asia/Samarkand
    -
    649 const uint32_t kZoneIdAsia_Seoul = 0x15ce82da; // Asia/Seoul
    -
    650 const uint32_t kZoneIdAsia_Shanghai = 0xf895a7f5; // Asia/Shanghai
    -
    651 const uint32_t kZoneIdAsia_Singapore = 0xcf8581fa; // Asia/Singapore
    -
    652 const uint32_t kZoneIdAsia_Srednekolymsk = 0xbf8e337d; // Asia/Srednekolymsk
    -
    653 const uint32_t kZoneIdAsia_Taipei = 0xd1a844ae; // Asia/Taipei
    -
    654 const uint32_t kZoneIdAsia_Tashkent = 0xf3924254; // Asia/Tashkent
    -
    655 const uint32_t kZoneIdAsia_Tbilisi = 0x0903e442; // Asia/Tbilisi
    -
    656 const uint32_t kZoneIdAsia_Tehran = 0xd1f02254; // Asia/Tehran
    -
    657 const uint32_t kZoneIdAsia_Thimphu = 0x170380d1; // Asia/Thimphu
    -
    658 const uint32_t kZoneIdAsia_Tokyo = 0x15e606a8; // Asia/Tokyo
    -
    659 const uint32_t kZoneIdAsia_Tomsk = 0x15e60e60; // Asia/Tomsk
    -
    660 const uint32_t kZoneIdAsia_Ulaanbaatar = 0x30f0cc4e; // Asia/Ulaanbaatar
    -
    661 const uint32_t kZoneIdAsia_Urumqi = 0xd5379735; // Asia/Urumqi
    -
    662 const uint32_t kZoneIdAsia_Ust_Nera = 0x4785f921; // Asia/Ust-Nera
    -
    663 const uint32_t kZoneIdAsia_Vladivostok = 0x29de34a8; // Asia/Vladivostok
    -
    664 const uint32_t kZoneIdAsia_Yakutsk = 0x87bb3a9e; // Asia/Yakutsk
    -
    665 const uint32_t kZoneIdAsia_Yangon = 0xdd54a8be; // Asia/Yangon
    -
    666 const uint32_t kZoneIdAsia_Yekaterinburg = 0xfb544c6e; // Asia/Yekaterinburg
    -
    667 const uint32_t kZoneIdAsia_Yerevan = 0x9185c8cc; // Asia/Yerevan
    -
    668 const uint32_t kZoneIdAtlantic_Azores = 0xf93ed918; // Atlantic/Azores
    -
    669 const uint32_t kZoneIdAtlantic_Bermuda = 0x3d4bb1c4; // Atlantic/Bermuda
    -
    670 const uint32_t kZoneIdAtlantic_Canary = 0xfc23f2c2; // Atlantic/Canary
    -
    671 const uint32_t kZoneIdAtlantic_Cape_Verde = 0x5c5e1772; // Atlantic/Cape_Verde
    -
    672 const uint32_t kZoneIdAtlantic_Faroe = 0xe110a971; // Atlantic/Faroe
    -
    673 const uint32_t kZoneIdAtlantic_Madeira = 0x81b5c037; // Atlantic/Madeira
    -
    674 const uint32_t kZoneIdAtlantic_South_Georgia = 0x33013174; // Atlantic/South_Georgia
    -
    675 const uint32_t kZoneIdAtlantic_Stanley = 0x7bb3e1c4; // Atlantic/Stanley
    -
    676 const uint32_t kZoneIdAustralia_Adelaide = 0x2428e8a3; // Australia/Adelaide
    -
    677 const uint32_t kZoneIdAustralia_Brisbane = 0x4fedc9c0; // Australia/Brisbane
    -
    678 const uint32_t kZoneIdAustralia_Broken_Hill = 0xb06eada3; // Australia/Broken_Hill
    -
    679 const uint32_t kZoneIdAustralia_Darwin = 0x2876bdff; // Australia/Darwin
    -
    680 const uint32_t kZoneIdAustralia_Eucla = 0x8cf99e44; // Australia/Eucla
    -
    681 const uint32_t kZoneIdAustralia_Hobart = 0x32bf951a; // Australia/Hobart
    -
    682 const uint32_t kZoneIdAustralia_Lindeman = 0xe05029e2; // Australia/Lindeman
    -
    683 const uint32_t kZoneIdAustralia_Lord_Howe = 0xa748b67d; // Australia/Lord_Howe
    -
    684 const uint32_t kZoneIdAustralia_Melbourne = 0x0fe559a3; // Australia/Melbourne
    -
    685 const uint32_t kZoneIdAustralia_Perth = 0x8db8269d; // Australia/Perth
    -
    686 const uint32_t kZoneIdAustralia_Sydney = 0x4d1e9776; // Australia/Sydney
    -
    687 const uint32_t kZoneIdEtc_GMT = 0xd8e2de58; // Etc/GMT
    -
    688 const uint32_t kZoneIdEtc_GMT_PLUS_1 = 0x9d13da14; // Etc/GMT+1
    -
    689 const uint32_t kZoneIdEtc_GMT_PLUS_10 = 0x3f8f1cc4; // Etc/GMT+10
    -
    690 const uint32_t kZoneIdEtc_GMT_PLUS_11 = 0x3f8f1cc5; // Etc/GMT+11
    -
    691 const uint32_t kZoneIdEtc_GMT_PLUS_12 = 0x3f8f1cc6; // Etc/GMT+12
    -
    692 const uint32_t kZoneIdEtc_GMT_PLUS_2 = 0x9d13da15; // Etc/GMT+2
    -
    693 const uint32_t kZoneIdEtc_GMT_PLUS_3 = 0x9d13da16; // Etc/GMT+3
    -
    694 const uint32_t kZoneIdEtc_GMT_PLUS_4 = 0x9d13da17; // Etc/GMT+4
    -
    695 const uint32_t kZoneIdEtc_GMT_PLUS_5 = 0x9d13da18; // Etc/GMT+5
    -
    696 const uint32_t kZoneIdEtc_GMT_PLUS_6 = 0x9d13da19; // Etc/GMT+6
    -
    697 const uint32_t kZoneIdEtc_GMT_PLUS_7 = 0x9d13da1a; // Etc/GMT+7
    -
    698 const uint32_t kZoneIdEtc_GMT_PLUS_8 = 0x9d13da1b; // Etc/GMT+8
    -
    699 const uint32_t kZoneIdEtc_GMT_PLUS_9 = 0x9d13da1c; // Etc/GMT+9
    -
    700 const uint32_t kZoneIdEtc_GMT_1 = 0x9d13da56; // Etc/GMT-1
    -
    701 const uint32_t kZoneIdEtc_GMT_10 = 0x3f8f2546; // Etc/GMT-10
    -
    702 const uint32_t kZoneIdEtc_GMT_11 = 0x3f8f2547; // Etc/GMT-11
    -
    703 const uint32_t kZoneIdEtc_GMT_12 = 0x3f8f2548; // Etc/GMT-12
    -
    704 const uint32_t kZoneIdEtc_GMT_13 = 0x3f8f2549; // Etc/GMT-13
    -
    705 const uint32_t kZoneIdEtc_GMT_14 = 0x3f8f254a; // Etc/GMT-14
    -
    706 const uint32_t kZoneIdEtc_GMT_2 = 0x9d13da57; // Etc/GMT-2
    -
    707 const uint32_t kZoneIdEtc_GMT_3 = 0x9d13da58; // Etc/GMT-3
    -
    708 const uint32_t kZoneIdEtc_GMT_4 = 0x9d13da59; // Etc/GMT-4
    -
    709 const uint32_t kZoneIdEtc_GMT_5 = 0x9d13da5a; // Etc/GMT-5
    -
    710 const uint32_t kZoneIdEtc_GMT_6 = 0x9d13da5b; // Etc/GMT-6
    -
    711 const uint32_t kZoneIdEtc_GMT_7 = 0x9d13da5c; // Etc/GMT-7
    -
    712 const uint32_t kZoneIdEtc_GMT_8 = 0x9d13da5d; // Etc/GMT-8
    -
    713 const uint32_t kZoneIdEtc_GMT_9 = 0x9d13da5e; // Etc/GMT-9
    -
    714 const uint32_t kZoneIdEtc_UTC = 0xd8e31abc; // Etc/UTC
    -
    715 const uint32_t kZoneIdEurope_Andorra = 0x97f6764b; // Europe/Andorra
    -
    716 const uint32_t kZoneIdEurope_Astrakhan = 0xe22256e1; // Europe/Astrakhan
    -
    717 const uint32_t kZoneIdEurope_Athens = 0x4318fa27; // Europe/Athens
    -
    718 const uint32_t kZoneIdEurope_Belgrade = 0xe0532b3a; // Europe/Belgrade
    -
    719 const uint32_t kZoneIdEurope_Berlin = 0x44644c20; // Europe/Berlin
    -
    720 const uint32_t kZoneIdEurope_Brussels = 0xdee07337; // Europe/Brussels
    -
    721 const uint32_t kZoneIdEurope_Bucharest = 0xfb349ec5; // Europe/Bucharest
    -
    722 const uint32_t kZoneIdEurope_Budapest = 0x9ce0197c; // Europe/Budapest
    -
    723 const uint32_t kZoneIdEurope_Chisinau = 0xad58aa18; // Europe/Chisinau
    -
    724 const uint32_t kZoneIdEurope_Dublin = 0x4a275f62; // Europe/Dublin
    -
    725 const uint32_t kZoneIdEurope_Gibraltar = 0xf8e325fc; // Europe/Gibraltar
    -
    726 const uint32_t kZoneIdEurope_Helsinki = 0x6ab2975b; // Europe/Helsinki
    -
    727 const uint32_t kZoneIdEurope_Istanbul = 0x9e09d6e6; // Europe/Istanbul
    -
    728 const uint32_t kZoneIdEurope_Kaliningrad = 0xd33b2f28; // Europe/Kaliningrad
    -
    729 const uint32_t kZoneIdEurope_Kirov = 0xfaf5abef; // Europe/Kirov
    -
    730 const uint32_t kZoneIdEurope_Kyiv = 0xa2c1e347; // Europe/Kyiv
    -
    731 const uint32_t kZoneIdEurope_Lisbon = 0x5c00a70b; // Europe/Lisbon
    -
    732 const uint32_t kZoneIdEurope_London = 0x5c6a84ae; // Europe/London
    -
    733 const uint32_t kZoneIdEurope_Madrid = 0x5dbd1535; // Europe/Madrid
    -
    734 const uint32_t kZoneIdEurope_Malta = 0xfb1560f3; // Europe/Malta
    -
    735 const uint32_t kZoneIdEurope_Minsk = 0xfb19cc66; // Europe/Minsk
    -
    736 const uint32_t kZoneIdEurope_Moscow = 0x5ec266fc; // Europe/Moscow
    -
    737 const uint32_t kZoneIdEurope_Paris = 0xfb4bc2a3; // Europe/Paris
    -
    738 const uint32_t kZoneIdEurope_Prague = 0x65ee5d48; // Europe/Prague
    -
    739 const uint32_t kZoneIdEurope_Riga = 0xa2c57587; // Europe/Riga
    -
    740 const uint32_t kZoneIdEurope_Rome = 0xa2c58fd7; // Europe/Rome
    -
    741 const uint32_t kZoneIdEurope_Samara = 0x6bc0b139; // Europe/Samara
    -
    742 const uint32_t kZoneIdEurope_Saratov = 0xe4315da4; // Europe/Saratov
    -
    743 const uint32_t kZoneIdEurope_Simferopol = 0xda9eb724; // Europe/Simferopol
    -
    744 const uint32_t kZoneIdEurope_Sofia = 0xfb898656; // Europe/Sofia
    -
    745 const uint32_t kZoneIdEurope_Tallinn = 0x30c4e096; // Europe/Tallinn
    -
    746 const uint32_t kZoneIdEurope_Tirane = 0x6ea95b47; // Europe/Tirane
    -
    747 const uint32_t kZoneIdEurope_Ulyanovsk = 0xe03783d0; // Europe/Ulyanovsk
    -
    748 const uint32_t kZoneIdEurope_Vienna = 0x734cc2e5; // Europe/Vienna
    -
    749 const uint32_t kZoneIdEurope_Vilnius = 0xdd63b8ce; // Europe/Vilnius
    -
    750 const uint32_t kZoneIdEurope_Volgograd = 0x3ed0f389; // Europe/Volgograd
    -
    751 const uint32_t kZoneIdEurope_Warsaw = 0x75185c19; // Europe/Warsaw
    -
    752 const uint32_t kZoneIdEurope_Zurich = 0x7d8195b9; // Europe/Zurich
    -
    753 const uint32_t kZoneIdIndian_Chagos = 0x456f7c3c; // Indian/Chagos
    -
    754 const uint32_t kZoneIdIndian_Maldives = 0x9869681c; // Indian/Maldives
    -
    755 const uint32_t kZoneIdIndian_Mauritius = 0x7b09c02a; // Indian/Mauritius
    -
    756 const uint32_t kZoneIdPacific_Apia = 0x23359b5e; // Pacific/Apia
    -
    757 const uint32_t kZoneIdPacific_Auckland = 0x25062f86; // Pacific/Auckland
    -
    758 const uint32_t kZoneIdPacific_Bougainville = 0x5e10f7a4; // Pacific/Bougainville
    -
    759 const uint32_t kZoneIdPacific_Chatham = 0x2f0de999; // Pacific/Chatham
    -
    760 const uint32_t kZoneIdPacific_Easter = 0xcf54f7e7; // Pacific/Easter
    -
    761 const uint32_t kZoneIdPacific_Efate = 0x8a2bce28; // Pacific/Efate
    -
    762 const uint32_t kZoneIdPacific_Fakaofo = 0x06532bba; // Pacific/Fakaofo
    -
    763 const uint32_t kZoneIdPacific_Fiji = 0x23383ba5; // Pacific/Fiji
    -
    764 const uint32_t kZoneIdPacific_Galapagos = 0xa952f752; // Pacific/Galapagos
    -
    765 const uint32_t kZoneIdPacific_Gambier = 0x53720c3a; // Pacific/Gambier
    -
    766 const uint32_t kZoneIdPacific_Guadalcanal = 0xf4dd25f0; // Pacific/Guadalcanal
    -
    767 const uint32_t kZoneIdPacific_Guam = 0x2338f9ed; // Pacific/Guam
    -
    768 const uint32_t kZoneIdPacific_Honolulu = 0xe6e70af9; // Pacific/Honolulu
    -
    769 const uint32_t kZoneIdPacific_Kanton = 0xdd512f0e; // Pacific/Kanton
    -
    770 const uint32_t kZoneIdPacific_Kiritimati = 0x8305073a; // Pacific/Kiritimati
    -
    771 const uint32_t kZoneIdPacific_Kosrae = 0xde5139a8; // Pacific/Kosrae
    -
    772 const uint32_t kZoneIdPacific_Kwajalein = 0x8e216759; // Pacific/Kwajalein
    -
    773 const uint32_t kZoneIdPacific_Marquesas = 0x57ca7135; // Pacific/Marquesas
    -
    774 const uint32_t kZoneIdPacific_Nauru = 0x8acc41ae; // Pacific/Nauru
    -
    775 const uint32_t kZoneIdPacific_Niue = 0x233ca014; // Pacific/Niue
    -
    776 const uint32_t kZoneIdPacific_Norfolk = 0x8f4eb4be; // Pacific/Norfolk
    -
    777 const uint32_t kZoneIdPacific_Noumea = 0xe551b788; // Pacific/Noumea
    -
    778 const uint32_t kZoneIdPacific_Pago_Pago = 0x603aebd0; // Pacific/Pago_Pago
    -
    779 const uint32_t kZoneIdPacific_Palau = 0x8af04a36; // Pacific/Palau
    -
    780 const uint32_t kZoneIdPacific_Pitcairn = 0x8837d8bd; // Pacific/Pitcairn
    -
    781 const uint32_t kZoneIdPacific_Port_Moresby = 0xa7ba7f68; // Pacific/Port_Moresby
    -
    782 const uint32_t kZoneIdPacific_Rarotonga = 0x9981a3b0; // Pacific/Rarotonga
    -
    783 const uint32_t kZoneIdPacific_Tahiti = 0xf24c2446; // Pacific/Tahiti
    -
    784 const uint32_t kZoneIdPacific_Tarawa = 0xf2517e63; // Pacific/Tarawa
    -
    785 const uint32_t kZoneIdPacific_Tongatapu = 0x262ca836; // Pacific/Tongatapu
    -
    786 
    -
    787 
    -
    788 //---------------------------------------------------------------------------
    -
    789 // Supported links: 257
    -
    790 //---------------------------------------------------------------------------
    -
    791 
    -
    792 extern const extended::Info::ZoneInfo kZoneAfrica_Accra; // Africa/Accra -> Africa/Abidjan
    -
    793 extern const extended::Info::ZoneInfo kZoneAfrica_Addis_Ababa; // Africa/Addis_Ababa -> Africa/Nairobi
    -
    794 extern const extended::Info::ZoneInfo kZoneAfrica_Asmara; // Africa/Asmara -> Africa/Nairobi
    -
    795 extern const extended::Info::ZoneInfo kZoneAfrica_Asmera; // Africa/Asmera -> Africa/Nairobi
    -
    796 extern const extended::Info::ZoneInfo kZoneAfrica_Bamako; // Africa/Bamako -> Africa/Abidjan
    -
    797 extern const extended::Info::ZoneInfo kZoneAfrica_Bangui; // Africa/Bangui -> Africa/Lagos
    -
    798 extern const extended::Info::ZoneInfo kZoneAfrica_Banjul; // Africa/Banjul -> Africa/Abidjan
    -
    799 extern const extended::Info::ZoneInfo kZoneAfrica_Blantyre; // Africa/Blantyre -> Africa/Maputo
    -
    800 extern const extended::Info::ZoneInfo kZoneAfrica_Brazzaville; // Africa/Brazzaville -> Africa/Lagos
    -
    801 extern const extended::Info::ZoneInfo kZoneAfrica_Bujumbura; // Africa/Bujumbura -> Africa/Maputo
    -
    802 extern const extended::Info::ZoneInfo kZoneAfrica_Conakry; // Africa/Conakry -> Africa/Abidjan
    -
    803 extern const extended::Info::ZoneInfo kZoneAfrica_Dakar; // Africa/Dakar -> Africa/Abidjan
    -
    804 extern const extended::Info::ZoneInfo kZoneAfrica_Dar_es_Salaam; // Africa/Dar_es_Salaam -> Africa/Nairobi
    -
    805 extern const extended::Info::ZoneInfo kZoneAfrica_Djibouti; // Africa/Djibouti -> Africa/Nairobi
    -
    806 extern const extended::Info::ZoneInfo kZoneAfrica_Douala; // Africa/Douala -> Africa/Lagos
    -
    807 extern const extended::Info::ZoneInfo kZoneAfrica_Freetown; // Africa/Freetown -> Africa/Abidjan
    -
    808 extern const extended::Info::ZoneInfo kZoneAfrica_Gaborone; // Africa/Gaborone -> Africa/Maputo
    -
    809 extern const extended::Info::ZoneInfo kZoneAfrica_Harare; // Africa/Harare -> Africa/Maputo
    -
    810 extern const extended::Info::ZoneInfo kZoneAfrica_Kampala; // Africa/Kampala -> Africa/Nairobi
    -
    811 extern const extended::Info::ZoneInfo kZoneAfrica_Kigali; // Africa/Kigali -> Africa/Maputo
    -
    812 extern const extended::Info::ZoneInfo kZoneAfrica_Kinshasa; // Africa/Kinshasa -> Africa/Lagos
    -
    813 extern const extended::Info::ZoneInfo kZoneAfrica_Libreville; // Africa/Libreville -> Africa/Lagos
    -
    814 extern const extended::Info::ZoneInfo kZoneAfrica_Lome; // Africa/Lome -> Africa/Abidjan
    -
    815 extern const extended::Info::ZoneInfo kZoneAfrica_Luanda; // Africa/Luanda -> Africa/Lagos
    -
    816 extern const extended::Info::ZoneInfo kZoneAfrica_Lubumbashi; // Africa/Lubumbashi -> Africa/Maputo
    -
    817 extern const extended::Info::ZoneInfo kZoneAfrica_Lusaka; // Africa/Lusaka -> Africa/Maputo
    -
    818 extern const extended::Info::ZoneInfo kZoneAfrica_Malabo; // Africa/Malabo -> Africa/Lagos
    -
    819 extern const extended::Info::ZoneInfo kZoneAfrica_Maseru; // Africa/Maseru -> Africa/Johannesburg
    -
    820 extern const extended::Info::ZoneInfo kZoneAfrica_Mbabane; // Africa/Mbabane -> Africa/Johannesburg
    -
    821 extern const extended::Info::ZoneInfo kZoneAfrica_Mogadishu; // Africa/Mogadishu -> Africa/Nairobi
    -
    822 extern const extended::Info::ZoneInfo kZoneAfrica_Niamey; // Africa/Niamey -> Africa/Lagos
    -
    823 extern const extended::Info::ZoneInfo kZoneAfrica_Nouakchott; // Africa/Nouakchott -> Africa/Abidjan
    -
    824 extern const extended::Info::ZoneInfo kZoneAfrica_Ouagadougou; // Africa/Ouagadougou -> Africa/Abidjan
    -
    825 extern const extended::Info::ZoneInfo kZoneAfrica_Porto_Novo; // Africa/Porto-Novo -> Africa/Lagos
    -
    826 extern const extended::Info::ZoneInfo kZoneAfrica_Timbuktu; // Africa/Timbuktu -> Africa/Abidjan
    -
    827 extern const extended::Info::ZoneInfo kZoneAmerica_Anguilla; // America/Anguilla -> America/Puerto_Rico
    -
    828 extern const extended::Info::ZoneInfo kZoneAmerica_Antigua; // America/Antigua -> America/Puerto_Rico
    -
    829 extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_ComodRivadavia; // America/Argentina/ComodRivadavia -> America/Argentina/Catamarca
    -
    830 extern const extended::Info::ZoneInfo kZoneAmerica_Aruba; // America/Aruba -> America/Puerto_Rico
    -
    831 extern const extended::Info::ZoneInfo kZoneAmerica_Atikokan; // America/Atikokan -> America/Panama
    -
    832 extern const extended::Info::ZoneInfo kZoneAmerica_Atka; // America/Atka -> America/Adak
    -
    833 extern const extended::Info::ZoneInfo kZoneAmerica_Blanc_Sablon; // America/Blanc-Sablon -> America/Puerto_Rico
    -
    834 extern const extended::Info::ZoneInfo kZoneAmerica_Buenos_Aires; // America/Buenos_Aires -> America/Argentina/Buenos_Aires
    -
    835 extern const extended::Info::ZoneInfo kZoneAmerica_Catamarca; // America/Catamarca -> America/Argentina/Catamarca
    -
    836 extern const extended::Info::ZoneInfo kZoneAmerica_Cayman; // America/Cayman -> America/Panama
    -
    837 extern const extended::Info::ZoneInfo kZoneAmerica_Coral_Harbour; // America/Coral_Harbour -> America/Panama
    -
    838 extern const extended::Info::ZoneInfo kZoneAmerica_Cordoba; // America/Cordoba -> America/Argentina/Cordoba
    -
    839 extern const extended::Info::ZoneInfo kZoneAmerica_Creston; // America/Creston -> America/Phoenix
    -
    840 extern const extended::Info::ZoneInfo kZoneAmerica_Curacao; // America/Curacao -> America/Puerto_Rico
    -
    841 extern const extended::Info::ZoneInfo kZoneAmerica_Dominica; // America/Dominica -> America/Puerto_Rico
    -
    842 extern const extended::Info::ZoneInfo kZoneAmerica_Ensenada; // America/Ensenada -> America/Tijuana
    -
    843 extern const extended::Info::ZoneInfo kZoneAmerica_Fort_Wayne; // America/Fort_Wayne -> America/Indiana/Indianapolis
    -
    844 extern const extended::Info::ZoneInfo kZoneAmerica_Godthab; // America/Godthab -> America/Nuuk
    -
    845 extern const extended::Info::ZoneInfo kZoneAmerica_Grenada; // America/Grenada -> America/Puerto_Rico
    -
    846 extern const extended::Info::ZoneInfo kZoneAmerica_Guadeloupe; // America/Guadeloupe -> America/Puerto_Rico
    -
    847 extern const extended::Info::ZoneInfo kZoneAmerica_Indianapolis; // America/Indianapolis -> America/Indiana/Indianapolis
    -
    848 extern const extended::Info::ZoneInfo kZoneAmerica_Jujuy; // America/Jujuy -> America/Argentina/Jujuy
    -
    849 extern const extended::Info::ZoneInfo kZoneAmerica_Knox_IN; // America/Knox_IN -> America/Indiana/Knox
    -
    850 extern const extended::Info::ZoneInfo kZoneAmerica_Kralendijk; // America/Kralendijk -> America/Puerto_Rico
    -
    851 extern const extended::Info::ZoneInfo kZoneAmerica_Louisville; // America/Louisville -> America/Kentucky/Louisville
    -
    852 extern const extended::Info::ZoneInfo kZoneAmerica_Lower_Princes; // America/Lower_Princes -> America/Puerto_Rico
    -
    853 extern const extended::Info::ZoneInfo kZoneAmerica_Marigot; // America/Marigot -> America/Puerto_Rico
    -
    854 extern const extended::Info::ZoneInfo kZoneAmerica_Mendoza; // America/Mendoza -> America/Argentina/Mendoza
    -
    855 extern const extended::Info::ZoneInfo kZoneAmerica_Montreal; // America/Montreal -> America/Toronto
    -
    856 extern const extended::Info::ZoneInfo kZoneAmerica_Montserrat; // America/Montserrat -> America/Puerto_Rico
    -
    857 extern const extended::Info::ZoneInfo kZoneAmerica_Nassau; // America/Nassau -> America/Toronto
    -
    858 extern const extended::Info::ZoneInfo kZoneAmerica_Nipigon; // America/Nipigon -> America/Toronto
    -
    859 extern const extended::Info::ZoneInfo kZoneAmerica_Pangnirtung; // America/Pangnirtung -> America/Iqaluit
    -
    860 extern const extended::Info::ZoneInfo kZoneAmerica_Port_of_Spain; // America/Port_of_Spain -> America/Puerto_Rico
    -
    861 extern const extended::Info::ZoneInfo kZoneAmerica_Porto_Acre; // America/Porto_Acre -> America/Rio_Branco
    -
    862 extern const extended::Info::ZoneInfo kZoneAmerica_Rainy_River; // America/Rainy_River -> America/Winnipeg
    -
    863 extern const extended::Info::ZoneInfo kZoneAmerica_Rosario; // America/Rosario -> America/Argentina/Cordoba
    -
    864 extern const extended::Info::ZoneInfo kZoneAmerica_Santa_Isabel; // America/Santa_Isabel -> America/Tijuana
    -
    865 extern const extended::Info::ZoneInfo kZoneAmerica_Shiprock; // America/Shiprock -> America/Denver
    -
    866 extern const extended::Info::ZoneInfo kZoneAmerica_St_Barthelemy; // America/St_Barthelemy -> America/Puerto_Rico
    -
    867 extern const extended::Info::ZoneInfo kZoneAmerica_St_Kitts; // America/St_Kitts -> America/Puerto_Rico
    -
    868 extern const extended::Info::ZoneInfo kZoneAmerica_St_Lucia; // America/St_Lucia -> America/Puerto_Rico
    -
    869 extern const extended::Info::ZoneInfo kZoneAmerica_St_Thomas; // America/St_Thomas -> America/Puerto_Rico
    -
    870 extern const extended::Info::ZoneInfo kZoneAmerica_St_Vincent; // America/St_Vincent -> America/Puerto_Rico
    -
    871 extern const extended::Info::ZoneInfo kZoneAmerica_Thunder_Bay; // America/Thunder_Bay -> America/Toronto
    -
    872 extern const extended::Info::ZoneInfo kZoneAmerica_Tortola; // America/Tortola -> America/Puerto_Rico
    -
    873 extern const extended::Info::ZoneInfo kZoneAmerica_Virgin; // America/Virgin -> America/Puerto_Rico
    -
    874 extern const extended::Info::ZoneInfo kZoneAmerica_Yellowknife; // America/Yellowknife -> America/Edmonton
    -
    875 extern const extended::Info::ZoneInfo kZoneAntarctica_DumontDUrville; // Antarctica/DumontDUrville -> Pacific/Port_Moresby
    -
    876 extern const extended::Info::ZoneInfo kZoneAntarctica_McMurdo; // Antarctica/McMurdo -> Pacific/Auckland
    -
    877 extern const extended::Info::ZoneInfo kZoneAntarctica_South_Pole; // Antarctica/South_Pole -> Pacific/Auckland
    -
    878 extern const extended::Info::ZoneInfo kZoneAntarctica_Syowa; // Antarctica/Syowa -> Asia/Riyadh
    -
    879 extern const extended::Info::ZoneInfo kZoneArctic_Longyearbyen; // Arctic/Longyearbyen -> Europe/Berlin
    -
    880 extern const extended::Info::ZoneInfo kZoneAsia_Aden; // Asia/Aden -> Asia/Riyadh
    -
    881 extern const extended::Info::ZoneInfo kZoneAsia_Ashkhabad; // Asia/Ashkhabad -> Asia/Ashgabat
    -
    882 extern const extended::Info::ZoneInfo kZoneAsia_Bahrain; // Asia/Bahrain -> Asia/Qatar
    -
    883 extern const extended::Info::ZoneInfo kZoneAsia_Brunei; // Asia/Brunei -> Asia/Kuching
    -
    884 extern const extended::Info::ZoneInfo kZoneAsia_Calcutta; // Asia/Calcutta -> Asia/Kolkata
    -
    885 extern const extended::Info::ZoneInfo kZoneAsia_Choibalsan; // Asia/Choibalsan -> Asia/Ulaanbaatar
    -
    886 extern const extended::Info::ZoneInfo kZoneAsia_Chongqing; // Asia/Chongqing -> Asia/Shanghai
    -
    887 extern const extended::Info::ZoneInfo kZoneAsia_Chungking; // Asia/Chungking -> Asia/Shanghai
    -
    888 extern const extended::Info::ZoneInfo kZoneAsia_Dacca; // Asia/Dacca -> Asia/Dhaka
    -
    889 extern const extended::Info::ZoneInfo kZoneAsia_Harbin; // Asia/Harbin -> Asia/Shanghai
    -
    890 extern const extended::Info::ZoneInfo kZoneAsia_Istanbul; // Asia/Istanbul -> Europe/Istanbul
    -
    891 extern const extended::Info::ZoneInfo kZoneAsia_Kashgar; // Asia/Kashgar -> Asia/Urumqi
    -
    892 extern const extended::Info::ZoneInfo kZoneAsia_Katmandu; // Asia/Katmandu -> Asia/Kathmandu
    -
    893 extern const extended::Info::ZoneInfo kZoneAsia_Kuala_Lumpur; // Asia/Kuala_Lumpur -> Asia/Singapore
    -
    894 extern const extended::Info::ZoneInfo kZoneAsia_Kuwait; // Asia/Kuwait -> Asia/Riyadh
    -
    895 extern const extended::Info::ZoneInfo kZoneAsia_Macao; // Asia/Macao -> Asia/Macau
    -
    896 extern const extended::Info::ZoneInfo kZoneAsia_Muscat; // Asia/Muscat -> Asia/Dubai
    -
    897 extern const extended::Info::ZoneInfo kZoneAsia_Phnom_Penh; // Asia/Phnom_Penh -> Asia/Bangkok
    -
    898 extern const extended::Info::ZoneInfo kZoneAsia_Rangoon; // Asia/Rangoon -> Asia/Yangon
    -
    899 extern const extended::Info::ZoneInfo kZoneAsia_Saigon; // Asia/Saigon -> Asia/Ho_Chi_Minh
    -
    900 extern const extended::Info::ZoneInfo kZoneAsia_Tel_Aviv; // Asia/Tel_Aviv -> Asia/Jerusalem
    -
    901 extern const extended::Info::ZoneInfo kZoneAsia_Thimbu; // Asia/Thimbu -> Asia/Thimphu
    -
    902 extern const extended::Info::ZoneInfo kZoneAsia_Ujung_Pandang; // Asia/Ujung_Pandang -> Asia/Makassar
    -
    903 extern const extended::Info::ZoneInfo kZoneAsia_Ulan_Bator; // Asia/Ulan_Bator -> Asia/Ulaanbaatar
    -
    904 extern const extended::Info::ZoneInfo kZoneAsia_Vientiane; // Asia/Vientiane -> Asia/Bangkok
    -
    905 extern const extended::Info::ZoneInfo kZoneAtlantic_Faeroe; // Atlantic/Faeroe -> Atlantic/Faroe
    -
    906 extern const extended::Info::ZoneInfo kZoneAtlantic_Jan_Mayen; // Atlantic/Jan_Mayen -> Europe/Berlin
    -
    907 extern const extended::Info::ZoneInfo kZoneAtlantic_Reykjavik; // Atlantic/Reykjavik -> Africa/Abidjan
    -
    908 extern const extended::Info::ZoneInfo kZoneAtlantic_St_Helena; // Atlantic/St_Helena -> Africa/Abidjan
    -
    909 extern const extended::Info::ZoneInfo kZoneAustralia_ACT; // Australia/ACT -> Australia/Sydney
    -
    910 extern const extended::Info::ZoneInfo kZoneAustralia_Canberra; // Australia/Canberra -> Australia/Sydney
    -
    911 extern const extended::Info::ZoneInfo kZoneAustralia_Currie; // Australia/Currie -> Australia/Hobart
    -
    912 extern const extended::Info::ZoneInfo kZoneAustralia_LHI; // Australia/LHI -> Australia/Lord_Howe
    -
    913 extern const extended::Info::ZoneInfo kZoneAustralia_NSW; // Australia/NSW -> Australia/Sydney
    -
    914 extern const extended::Info::ZoneInfo kZoneAustralia_North; // Australia/North -> Australia/Darwin
    -
    915 extern const extended::Info::ZoneInfo kZoneAustralia_Queensland; // Australia/Queensland -> Australia/Brisbane
    -
    916 extern const extended::Info::ZoneInfo kZoneAustralia_South; // Australia/South -> Australia/Adelaide
    -
    917 extern const extended::Info::ZoneInfo kZoneAustralia_Tasmania; // Australia/Tasmania -> Australia/Hobart
    -
    918 extern const extended::Info::ZoneInfo kZoneAustralia_Victoria; // Australia/Victoria -> Australia/Melbourne
    -
    919 extern const extended::Info::ZoneInfo kZoneAustralia_West; // Australia/West -> Australia/Perth
    -
    920 extern const extended::Info::ZoneInfo kZoneAustralia_Yancowinna; // Australia/Yancowinna -> Australia/Broken_Hill
    -
    921 extern const extended::Info::ZoneInfo kZoneBrazil_Acre; // Brazil/Acre -> America/Rio_Branco
    -
    922 extern const extended::Info::ZoneInfo kZoneBrazil_DeNoronha; // Brazil/DeNoronha -> America/Noronha
    -
    923 extern const extended::Info::ZoneInfo kZoneBrazil_East; // Brazil/East -> America/Sao_Paulo
    -
    924 extern const extended::Info::ZoneInfo kZoneBrazil_West; // Brazil/West -> America/Manaus
    -
    925 extern const extended::Info::ZoneInfo kZoneCET; // CET -> Europe/Brussels
    -
    926 extern const extended::Info::ZoneInfo kZoneCST6CDT; // CST6CDT -> America/Chicago
    -
    927 extern const extended::Info::ZoneInfo kZoneCanada_Atlantic; // Canada/Atlantic -> America/Halifax
    -
    928 extern const extended::Info::ZoneInfo kZoneCanada_Central; // Canada/Central -> America/Winnipeg
    -
    929 extern const extended::Info::ZoneInfo kZoneCanada_Eastern; // Canada/Eastern -> America/Toronto
    -
    930 extern const extended::Info::ZoneInfo kZoneCanada_Mountain; // Canada/Mountain -> America/Edmonton
    -
    931 extern const extended::Info::ZoneInfo kZoneCanada_Newfoundland; // Canada/Newfoundland -> America/St_Johns
    -
    932 extern const extended::Info::ZoneInfo kZoneCanada_Pacific; // Canada/Pacific -> America/Vancouver
    -
    933 extern const extended::Info::ZoneInfo kZoneCanada_Saskatchewan; // Canada/Saskatchewan -> America/Regina
    -
    934 extern const extended::Info::ZoneInfo kZoneCanada_Yukon; // Canada/Yukon -> America/Whitehorse
    -
    935 extern const extended::Info::ZoneInfo kZoneChile_Continental; // Chile/Continental -> America/Santiago
    -
    936 extern const extended::Info::ZoneInfo kZoneChile_EasterIsland; // Chile/EasterIsland -> Pacific/Easter
    -
    937 extern const extended::Info::ZoneInfo kZoneCuba; // Cuba -> America/Havana
    -
    938 extern const extended::Info::ZoneInfo kZoneEET; // EET -> Europe/Athens
    -
    939 extern const extended::Info::ZoneInfo kZoneEST; // EST -> America/Panama
    -
    940 extern const extended::Info::ZoneInfo kZoneEST5EDT; // EST5EDT -> America/New_York
    -
    941 extern const extended::Info::ZoneInfo kZoneEgypt; // Egypt -> Africa/Cairo
    -
    942 extern const extended::Info::ZoneInfo kZoneEire; // Eire -> Europe/Dublin
    -
    943 extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_0; // Etc/GMT+0 -> Etc/GMT
    -
    944 extern const extended::Info::ZoneInfo kZoneEtc_GMT_0; // Etc/GMT-0 -> Etc/GMT
    -
    945 extern const extended::Info::ZoneInfo kZoneEtc_GMT0; // Etc/GMT0 -> Etc/GMT
    -
    946 extern const extended::Info::ZoneInfo kZoneEtc_Greenwich; // Etc/Greenwich -> Etc/GMT
    -
    947 extern const extended::Info::ZoneInfo kZoneEtc_UCT; // Etc/UCT -> Etc/UTC
    -
    948 extern const extended::Info::ZoneInfo kZoneEtc_Universal; // Etc/Universal -> Etc/UTC
    -
    949 extern const extended::Info::ZoneInfo kZoneEtc_Zulu; // Etc/Zulu -> Etc/UTC
    -
    950 extern const extended::Info::ZoneInfo kZoneEurope_Amsterdam; // Europe/Amsterdam -> Europe/Brussels
    -
    951 extern const extended::Info::ZoneInfo kZoneEurope_Belfast; // Europe/Belfast -> Europe/London
    -
    952 extern const extended::Info::ZoneInfo kZoneEurope_Bratislava; // Europe/Bratislava -> Europe/Prague
    -
    953 extern const extended::Info::ZoneInfo kZoneEurope_Busingen; // Europe/Busingen -> Europe/Zurich
    -
    954 extern const extended::Info::ZoneInfo kZoneEurope_Copenhagen; // Europe/Copenhagen -> Europe/Berlin
    -
    955 extern const extended::Info::ZoneInfo kZoneEurope_Guernsey; // Europe/Guernsey -> Europe/London
    -
    956 extern const extended::Info::ZoneInfo kZoneEurope_Isle_of_Man; // Europe/Isle_of_Man -> Europe/London
    -
    957 extern const extended::Info::ZoneInfo kZoneEurope_Jersey; // Europe/Jersey -> Europe/London
    -
    958 extern const extended::Info::ZoneInfo kZoneEurope_Kiev; // Europe/Kiev -> Europe/Kyiv
    -
    959 extern const extended::Info::ZoneInfo kZoneEurope_Ljubljana; // Europe/Ljubljana -> Europe/Belgrade
    -
    960 extern const extended::Info::ZoneInfo kZoneEurope_Luxembourg; // Europe/Luxembourg -> Europe/Brussels
    -
    961 extern const extended::Info::ZoneInfo kZoneEurope_Mariehamn; // Europe/Mariehamn -> Europe/Helsinki
    -
    962 extern const extended::Info::ZoneInfo kZoneEurope_Monaco; // Europe/Monaco -> Europe/Paris
    -
    963 extern const extended::Info::ZoneInfo kZoneEurope_Nicosia; // Europe/Nicosia -> Asia/Nicosia
    -
    964 extern const extended::Info::ZoneInfo kZoneEurope_Oslo; // Europe/Oslo -> Europe/Berlin
    -
    965 extern const extended::Info::ZoneInfo kZoneEurope_Podgorica; // Europe/Podgorica -> Europe/Belgrade
    -
    966 extern const extended::Info::ZoneInfo kZoneEurope_San_Marino; // Europe/San_Marino -> Europe/Rome
    -
    967 extern const extended::Info::ZoneInfo kZoneEurope_Sarajevo; // Europe/Sarajevo -> Europe/Belgrade
    -
    968 extern const extended::Info::ZoneInfo kZoneEurope_Skopje; // Europe/Skopje -> Europe/Belgrade
    -
    969 extern const extended::Info::ZoneInfo kZoneEurope_Stockholm; // Europe/Stockholm -> Europe/Berlin
    -
    970 extern const extended::Info::ZoneInfo kZoneEurope_Tiraspol; // Europe/Tiraspol -> Europe/Chisinau
    -
    971 extern const extended::Info::ZoneInfo kZoneEurope_Uzhgorod; // Europe/Uzhgorod -> Europe/Kyiv
    -
    972 extern const extended::Info::ZoneInfo kZoneEurope_Vaduz; // Europe/Vaduz -> Europe/Zurich
    -
    973 extern const extended::Info::ZoneInfo kZoneEurope_Vatican; // Europe/Vatican -> Europe/Rome
    -
    974 extern const extended::Info::ZoneInfo kZoneEurope_Zagreb; // Europe/Zagreb -> Europe/Belgrade
    -
    975 extern const extended::Info::ZoneInfo kZoneEurope_Zaporozhye; // Europe/Zaporozhye -> Europe/Kyiv
    -
    976 extern const extended::Info::ZoneInfo kZoneGB; // GB -> Europe/London
    -
    977 extern const extended::Info::ZoneInfo kZoneGB_Eire; // GB-Eire -> Europe/London
    -
    978 extern const extended::Info::ZoneInfo kZoneGMT; // GMT -> Etc/GMT
    -
    979 extern const extended::Info::ZoneInfo kZoneGMT_PLUS_0; // GMT+0 -> Etc/GMT
    -
    980 extern const extended::Info::ZoneInfo kZoneGMT_0; // GMT-0 -> Etc/GMT
    -
    981 extern const extended::Info::ZoneInfo kZoneGMT0; // GMT0 -> Etc/GMT
    -
    982 extern const extended::Info::ZoneInfo kZoneGreenwich; // Greenwich -> Etc/GMT
    -
    983 extern const extended::Info::ZoneInfo kZoneHST; // HST -> Pacific/Honolulu
    -
    984 extern const extended::Info::ZoneInfo kZoneHongkong; // Hongkong -> Asia/Hong_Kong
    -
    985 extern const extended::Info::ZoneInfo kZoneIceland; // Iceland -> Africa/Abidjan
    -
    986 extern const extended::Info::ZoneInfo kZoneIndian_Antananarivo; // Indian/Antananarivo -> Africa/Nairobi
    -
    987 extern const extended::Info::ZoneInfo kZoneIndian_Christmas; // Indian/Christmas -> Asia/Bangkok
    -
    988 extern const extended::Info::ZoneInfo kZoneIndian_Cocos; // Indian/Cocos -> Asia/Yangon
    -
    989 extern const extended::Info::ZoneInfo kZoneIndian_Comoro; // Indian/Comoro -> Africa/Nairobi
    -
    990 extern const extended::Info::ZoneInfo kZoneIndian_Kerguelen; // Indian/Kerguelen -> Indian/Maldives
    -
    991 extern const extended::Info::ZoneInfo kZoneIndian_Mahe; // Indian/Mahe -> Asia/Dubai
    -
    992 extern const extended::Info::ZoneInfo kZoneIndian_Mayotte; // Indian/Mayotte -> Africa/Nairobi
    -
    993 extern const extended::Info::ZoneInfo kZoneIndian_Reunion; // Indian/Reunion -> Asia/Dubai
    -
    994 extern const extended::Info::ZoneInfo kZoneIran; // Iran -> Asia/Tehran
    -
    995 extern const extended::Info::ZoneInfo kZoneIsrael; // Israel -> Asia/Jerusalem
    -
    996 extern const extended::Info::ZoneInfo kZoneJamaica; // Jamaica -> America/Jamaica
    -
    997 extern const extended::Info::ZoneInfo kZoneJapan; // Japan -> Asia/Tokyo
    -
    998 extern const extended::Info::ZoneInfo kZoneKwajalein; // Kwajalein -> Pacific/Kwajalein
    -
    999 extern const extended::Info::ZoneInfo kZoneLibya; // Libya -> Africa/Tripoli
    -
    1000 extern const extended::Info::ZoneInfo kZoneMET; // MET -> Europe/Brussels
    -
    1001 extern const extended::Info::ZoneInfo kZoneMST; // MST -> America/Phoenix
    -
    1002 extern const extended::Info::ZoneInfo kZoneMST7MDT; // MST7MDT -> America/Denver
    -
    1003 extern const extended::Info::ZoneInfo kZoneMexico_BajaNorte; // Mexico/BajaNorte -> America/Tijuana
    -
    1004 extern const extended::Info::ZoneInfo kZoneMexico_BajaSur; // Mexico/BajaSur -> America/Mazatlan
    -
    1005 extern const extended::Info::ZoneInfo kZoneMexico_General; // Mexico/General -> America/Mexico_City
    -
    1006 extern const extended::Info::ZoneInfo kZoneNZ; // NZ -> Pacific/Auckland
    -
    1007 extern const extended::Info::ZoneInfo kZoneNZ_CHAT; // NZ-CHAT -> Pacific/Chatham
    -
    1008 extern const extended::Info::ZoneInfo kZoneNavajo; // Navajo -> America/Denver
    -
    1009 extern const extended::Info::ZoneInfo kZonePRC; // PRC -> Asia/Shanghai
    -
    1010 extern const extended::Info::ZoneInfo kZonePST8PDT; // PST8PDT -> America/Los_Angeles
    -
    1011 extern const extended::Info::ZoneInfo kZonePacific_Chuuk; // Pacific/Chuuk -> Pacific/Port_Moresby
    -
    1012 extern const extended::Info::ZoneInfo kZonePacific_Enderbury; // Pacific/Enderbury -> Pacific/Kanton
    -
    1013 extern const extended::Info::ZoneInfo kZonePacific_Funafuti; // Pacific/Funafuti -> Pacific/Tarawa
    -
    1014 extern const extended::Info::ZoneInfo kZonePacific_Johnston; // Pacific/Johnston -> Pacific/Honolulu
    -
    1015 extern const extended::Info::ZoneInfo kZonePacific_Majuro; // Pacific/Majuro -> Pacific/Tarawa
    -
    1016 extern const extended::Info::ZoneInfo kZonePacific_Midway; // Pacific/Midway -> Pacific/Pago_Pago
    -
    1017 extern const extended::Info::ZoneInfo kZonePacific_Pohnpei; // Pacific/Pohnpei -> Pacific/Guadalcanal
    -
    1018 extern const extended::Info::ZoneInfo kZonePacific_Ponape; // Pacific/Ponape -> Pacific/Guadalcanal
    -
    1019 extern const extended::Info::ZoneInfo kZonePacific_Saipan; // Pacific/Saipan -> Pacific/Guam
    -
    1020 extern const extended::Info::ZoneInfo kZonePacific_Samoa; // Pacific/Samoa -> Pacific/Pago_Pago
    -
    1021 extern const extended::Info::ZoneInfo kZonePacific_Truk; // Pacific/Truk -> Pacific/Port_Moresby
    -
    1022 extern const extended::Info::ZoneInfo kZonePacific_Wake; // Pacific/Wake -> Pacific/Tarawa
    -
    1023 extern const extended::Info::ZoneInfo kZonePacific_Wallis; // Pacific/Wallis -> Pacific/Tarawa
    -
    1024 extern const extended::Info::ZoneInfo kZonePacific_Yap; // Pacific/Yap -> Pacific/Port_Moresby
    -
    1025 extern const extended::Info::ZoneInfo kZonePoland; // Poland -> Europe/Warsaw
    -
    1026 extern const extended::Info::ZoneInfo kZonePortugal; // Portugal -> Europe/Lisbon
    -
    1027 extern const extended::Info::ZoneInfo kZoneROC; // ROC -> Asia/Taipei
    -
    1028 extern const extended::Info::ZoneInfo kZoneROK; // ROK -> Asia/Seoul
    -
    1029 extern const extended::Info::ZoneInfo kZoneSingapore; // Singapore -> Asia/Singapore
    -
    1030 extern const extended::Info::ZoneInfo kZoneTurkey; // Turkey -> Europe/Istanbul
    -
    1031 extern const extended::Info::ZoneInfo kZoneUCT; // UCT -> Etc/UTC
    -
    1032 extern const extended::Info::ZoneInfo kZoneUS_Alaska; // US/Alaska -> America/Anchorage
    -
    1033 extern const extended::Info::ZoneInfo kZoneUS_Aleutian; // US/Aleutian -> America/Adak
    -
    1034 extern const extended::Info::ZoneInfo kZoneUS_Arizona; // US/Arizona -> America/Phoenix
    -
    1035 extern const extended::Info::ZoneInfo kZoneUS_Central; // US/Central -> America/Chicago
    -
    1036 extern const extended::Info::ZoneInfo kZoneUS_East_Indiana; // US/East-Indiana -> America/Indiana/Indianapolis
    -
    1037 extern const extended::Info::ZoneInfo kZoneUS_Eastern; // US/Eastern -> America/New_York
    -
    1038 extern const extended::Info::ZoneInfo kZoneUS_Hawaii; // US/Hawaii -> Pacific/Honolulu
    -
    1039 extern const extended::Info::ZoneInfo kZoneUS_Indiana_Starke; // US/Indiana-Starke -> America/Indiana/Knox
    -
    1040 extern const extended::Info::ZoneInfo kZoneUS_Michigan; // US/Michigan -> America/Detroit
    -
    1041 extern const extended::Info::ZoneInfo kZoneUS_Mountain; // US/Mountain -> America/Denver
    -
    1042 extern const extended::Info::ZoneInfo kZoneUS_Pacific; // US/Pacific -> America/Los_Angeles
    -
    1043 extern const extended::Info::ZoneInfo kZoneUS_Samoa; // US/Samoa -> Pacific/Pago_Pago
    -
    1044 extern const extended::Info::ZoneInfo kZoneUTC; // UTC -> Etc/UTC
    -
    1045 extern const extended::Info::ZoneInfo kZoneUniversal; // Universal -> Etc/UTC
    -
    1046 extern const extended::Info::ZoneInfo kZoneW_SU; // W-SU -> Europe/Moscow
    -
    1047 extern const extended::Info::ZoneInfo kZoneWET; // WET -> Europe/Lisbon
    -
    1048 extern const extended::Info::ZoneInfo kZoneZulu; // Zulu -> Etc/UTC
    -
    1049 
    -
    1050 
    -
    1051 // Zone Ids
    -
    1052 
    -
    1053 const uint32_t kZoneIdAfrica_Accra = 0x77d5b054; // Africa/Accra
    -
    1054 const uint32_t kZoneIdAfrica_Addis_Ababa = 0x05ae1e65; // Africa/Addis_Ababa
    -
    1055 const uint32_t kZoneIdAfrica_Asmara = 0x73b278ef; // Africa/Asmara
    -
    1056 const uint32_t kZoneIdAfrica_Asmera = 0x73b289f3; // Africa/Asmera
    -
    1057 const uint32_t kZoneIdAfrica_Bamako = 0x74c1e7a5; // Africa/Bamako
    -
    1058 const uint32_t kZoneIdAfrica_Bangui = 0x74c28ed0; // Africa/Bangui
    -
    1059 const uint32_t kZoneIdAfrica_Banjul = 0x74c29b96; // Africa/Banjul
    -
    1060 const uint32_t kZoneIdAfrica_Blantyre = 0xe08d813b; // Africa/Blantyre
    -
    1061 const uint32_t kZoneIdAfrica_Brazzaville = 0x39cda760; // Africa/Brazzaville
    -
    1062 const uint32_t kZoneIdAfrica_Bujumbura = 0x05232a47; // Africa/Bujumbura
    -
    1063 const uint32_t kZoneIdAfrica_Conakry = 0x7ab36b31; // Africa/Conakry
    -
    1064 const uint32_t kZoneIdAfrica_Dakar = 0x780b00fd; // Africa/Dakar
    -
    1065 const uint32_t kZoneIdAfrica_Dar_es_Salaam = 0xa04c47b6; // Africa/Dar_es_Salaam
    -
    1066 const uint32_t kZoneIdAfrica_Djibouti = 0x30ea01d4; // Africa/Djibouti
    -
    1067 const uint32_t kZoneIdAfrica_Douala = 0x7a6df310; // Africa/Douala
    -
    1068 const uint32_t kZoneIdAfrica_Freetown = 0x6823dd64; // Africa/Freetown
    -
    1069 const uint32_t kZoneIdAfrica_Gaborone = 0x317c0aa7; // Africa/Gaborone
    -
    1070 const uint32_t kZoneIdAfrica_Harare = 0x82c39a2d; // Africa/Harare
    -
    1071 const uint32_t kZoneIdAfrica_Kampala = 0xc1d30e31; // Africa/Kampala
    -
    1072 const uint32_t kZoneIdAfrica_Kigali = 0x8a4dcf2b; // Africa/Kigali
    -
    1073 const uint32_t kZoneIdAfrica_Kinshasa = 0x6695d70c; // Africa/Kinshasa
    -
    1074 const uint32_t kZoneIdAfrica_Libreville = 0x01d96de4; // Africa/Libreville
    -
    1075 const uint32_t kZoneIdAfrica_Lome = 0xd51c3a07; // Africa/Lome
    -
    1076 const uint32_t kZoneIdAfrica_Luanda = 0x8d7909cf; // Africa/Luanda
    -
    1077 const uint32_t kZoneIdAfrica_Lubumbashi = 0x6fd88566; // Africa/Lubumbashi
    -
    1078 const uint32_t kZoneIdAfrica_Lusaka = 0x8d82b23b; // Africa/Lusaka
    -
    1079 const uint32_t kZoneIdAfrica_Malabo = 0x8e6a1906; // Africa/Malabo
    -
    1080 const uint32_t kZoneIdAfrica_Maseru = 0x8e6e02c7; // Africa/Maseru
    -
    1081 const uint32_t kZoneIdAfrica_Mbabane = 0x5d3bdd40; // Africa/Mbabane
    -
    1082 const uint32_t kZoneIdAfrica_Mogadishu = 0x66bc159b; // Africa/Mogadishu
    -
    1083 const uint32_t kZoneIdAfrica_Niamey = 0x914a30fd; // Africa/Niamey
    -
    1084 const uint32_t kZoneIdAfrica_Nouakchott = 0x3dc49dba; // Africa/Nouakchott
    -
    1085 const uint32_t kZoneIdAfrica_Ouagadougou = 0x04d7219a; // Africa/Ouagadougou
    -
    1086 const uint32_t kZoneIdAfrica_Porto_Novo = 0x3d1bf95d; // Africa/Porto-Novo
    -
    1087 const uint32_t kZoneIdAfrica_Timbuktu = 0xb164d56f; // Africa/Timbuktu
    -
    1088 const uint32_t kZoneIdAmerica_Anguilla = 0xafe31333; // America/Anguilla
    -
    1089 const uint32_t kZoneIdAmerica_Antigua = 0xc067a32f; // America/Antigua
    -
    1090 const uint32_t kZoneIdAmerica_Argentina_ComodRivadavia = 0x22758877; // America/Argentina/ComodRivadavia
    -
    1091 const uint32_t kZoneIdAmerica_Aruba = 0x97cf8651; // America/Aruba
    -
    1092 const uint32_t kZoneIdAmerica_Atikokan = 0x81b92098; // America/Atikokan
    -
    1093 const uint32_t kZoneIdAmerica_Atka = 0x97fe8f27; // America/Atka
    -
    1094 const uint32_t kZoneIdAmerica_Blanc_Sablon = 0x6e299892; // America/Blanc-Sablon
    -
    1095 const uint32_t kZoneIdAmerica_Buenos_Aires = 0x67d79a05; // America/Buenos_Aires
    -
    1096 const uint32_t kZoneIdAmerica_Catamarca = 0x5036e963; // America/Catamarca
    -
    1097 const uint32_t kZoneIdAmerica_Cayman = 0x953961df; // America/Cayman
    -
    1098 const uint32_t kZoneIdAmerica_Coral_Harbour = 0xabcb7569; // America/Coral_Harbour
    -
    1099 const uint32_t kZoneIdAmerica_Cordoba = 0x5c8a7600; // America/Cordoba
    -
    1100 const uint32_t kZoneIdAmerica_Creston = 0x62a70204; // America/Creston
    -
    1101 const uint32_t kZoneIdAmerica_Curacao = 0x6a879184; // America/Curacao
    -
    1102 const uint32_t kZoneIdAmerica_Dominica = 0xcecb4c4a; // America/Dominica
    -
    1103 const uint32_t kZoneIdAmerica_Ensenada = 0x7bc95445; // America/Ensenada
    -
    1104 const uint32_t kZoneIdAmerica_Fort_Wayne = 0x7eaaaf24; // America/Fort_Wayne
    -
    1105 const uint32_t kZoneIdAmerica_Godthab = 0x8f7eba1f; // America/Godthab
    -
    1106 const uint32_t kZoneIdAmerica_Grenada = 0x968ce4d8; // America/Grenada
    -
    1107 const uint32_t kZoneIdAmerica_Guadeloupe = 0xcd1f8a31; // America/Guadeloupe
    -
    1108 const uint32_t kZoneIdAmerica_Indianapolis = 0x6a009ae1; // America/Indianapolis
    -
    1109 const uint32_t kZoneIdAmerica_Jujuy = 0x9873dbbd; // America/Jujuy
    -
    1110 const uint32_t kZoneIdAmerica_Knox_IN = 0xc1db9a1c; // America/Knox_IN
    -
    1111 const uint32_t kZoneIdAmerica_Kralendijk = 0xe7c456c5; // America/Kralendijk
    -
    1112 const uint32_t kZoneIdAmerica_Louisville = 0x3dcb47ee; // America/Louisville
    -
    1113 const uint32_t kZoneIdAmerica_Lower_Princes = 0x6ae45b62; // America/Lower_Princes
    -
    1114 const uint32_t kZoneIdAmerica_Marigot = 0x3dab3a59; // America/Marigot
    -
    1115 const uint32_t kZoneIdAmerica_Mendoza = 0x46b4e054; // America/Mendoza
    -
    1116 const uint32_t kZoneIdAmerica_Montreal = 0x203a1ea8; // America/Montreal
    -
    1117 const uint32_t kZoneIdAmerica_Montserrat = 0x199b0a35; // America/Montserrat
    -
    1118 const uint32_t kZoneIdAmerica_Nassau = 0xaedef011; // America/Nassau
    -
    1119 const uint32_t kZoneIdAmerica_Nipigon = 0x9d2a8b1a; // America/Nipigon
    -
    1120 const uint32_t kZoneIdAmerica_Pangnirtung = 0x2d999193; // America/Pangnirtung
    -
    1121 const uint32_t kZoneIdAmerica_Port_of_Spain = 0xd8b28d59; // America/Port_of_Spain
    -
    1122 const uint32_t kZoneIdAmerica_Porto_Acre = 0xcce5bf54; // America/Porto_Acre
    -
    1123 const uint32_t kZoneIdAmerica_Rainy_River = 0x9cd58a10; // America/Rainy_River
    -
    1124 const uint32_t kZoneIdAmerica_Rosario = 0xdf448665; // America/Rosario
    -
    1125 const uint32_t kZoneIdAmerica_Santa_Isabel = 0xfd18a56c; // America/Santa_Isabel
    -
    1126 const uint32_t kZoneIdAmerica_Shiprock = 0x82fb7049; // America/Shiprock
    -
    1127 const uint32_t kZoneIdAmerica_St_Barthelemy = 0x054e6a79; // America/St_Barthelemy
    -
    1128 const uint32_t kZoneIdAmerica_St_Kitts = 0x04c0507b; // America/St_Kitts
    -
    1129 const uint32_t kZoneIdAmerica_St_Lucia = 0x04d8b3ba; // America/St_Lucia
    -
    1130 const uint32_t kZoneIdAmerica_St_Thomas = 0xb1b3d778; // America/St_Thomas
    -
    1131 const uint32_t kZoneIdAmerica_St_Vincent = 0x8460e523; // America/St_Vincent
    -
    1132 const uint32_t kZoneIdAmerica_Thunder_Bay = 0xf962e71b; // America/Thunder_Bay
    -
    1133 const uint32_t kZoneIdAmerica_Tortola = 0x7931462b; // America/Tortola
    -
    1134 const uint32_t kZoneIdAmerica_Virgin = 0xc2183ab5; // America/Virgin
    -
    1135 const uint32_t kZoneIdAmerica_Yellowknife = 0x0f76c76f; // America/Yellowknife
    -
    1136 const uint32_t kZoneIdAntarctica_DumontDUrville = 0x5a3c656c; // Antarctica/DumontDUrville
    -
    1137 const uint32_t kZoneIdAntarctica_McMurdo = 0x6eeb5585; // Antarctica/McMurdo
    -
    1138 const uint32_t kZoneIdAntarctica_South_Pole = 0xcd96b290; // Antarctica/South_Pole
    -
    1139 const uint32_t kZoneIdAntarctica_Syowa = 0xe330c7e1; // Antarctica/Syowa
    -
    1140 const uint32_t kZoneIdArctic_Longyearbyen = 0xd23e7859; // Arctic/Longyearbyen
    -
    1141 const uint32_t kZoneIdAsia_Aden = 0x1fa7084a; // Asia/Aden
    -
    1142 const uint32_t kZoneIdAsia_Ashkhabad = 0x15454f09; // Asia/Ashkhabad
    -
    1143 const uint32_t kZoneIdAsia_Bahrain = 0x9d078487; // Asia/Bahrain
    -
    1144 const uint32_t kZoneIdAsia_Brunei = 0xa8e595f7; // Asia/Brunei
    -
    1145 const uint32_t kZoneIdAsia_Calcutta = 0x328a44c3; // Asia/Calcutta
    -
    1146 const uint32_t kZoneIdAsia_Choibalsan = 0x928aa4a6; // Asia/Choibalsan
    -
    1147 const uint32_t kZoneIdAsia_Chongqing = 0xf937fb90; // Asia/Chongqing
    -
    1148 const uint32_t kZoneIdAsia_Chungking = 0xc7121dd0; // Asia/Chungking
    -
    1149 const uint32_t kZoneIdAsia_Dacca = 0x14bcac5e; // Asia/Dacca
    -
    1150 const uint32_t kZoneIdAsia_Harbin = 0xb5af1186; // Asia/Harbin
    -
    1151 const uint32_t kZoneIdAsia_Istanbul = 0x382e7894; // Asia/Istanbul
    -
    1152 const uint32_t kZoneIdAsia_Kashgar = 0x52955193; // Asia/Kashgar
    -
    1153 const uint32_t kZoneIdAsia_Katmandu = 0xa7ec12c7; // Asia/Katmandu
    -
    1154 const uint32_t kZoneIdAsia_Kuala_Lumpur = 0x014763c4; // Asia/Kuala_Lumpur
    -
    1155 const uint32_t kZoneIdAsia_Kuwait = 0xbe1b2f27; // Asia/Kuwait
    -
    1156 const uint32_t kZoneIdAsia_Macao = 0x155f88b3; // Asia/Macao
    -
    1157 const uint32_t kZoneIdAsia_Muscat = 0xc2c3565f; // Asia/Muscat
    -
    1158 const uint32_t kZoneIdAsia_Phnom_Penh = 0xc224945e; // Asia/Phnom_Penh
    -
    1159 const uint32_t kZoneIdAsia_Rangoon = 0x6d1217c6; // Asia/Rangoon
    -
    1160 const uint32_t kZoneIdAsia_Saigon = 0xcf52f713; // Asia/Saigon
    -
    1161 const uint32_t kZoneIdAsia_Tel_Aviv = 0x166d7c2c; // Asia/Tel_Aviv
    -
    1162 const uint32_t kZoneIdAsia_Thimbu = 0xd226e31b; // Asia/Thimbu
    -
    1163 const uint32_t kZoneIdAsia_Ujung_Pandang = 0x5d001eb3; // Asia/Ujung_Pandang
    -
    1164 const uint32_t kZoneIdAsia_Ulan_Bator = 0x394db4d9; // Asia/Ulan_Bator
    -
    1165 const uint32_t kZoneIdAsia_Vientiane = 0x89d68d75; // Asia/Vientiane
    -
    1166 const uint32_t kZoneIdAtlantic_Faeroe = 0x031ec516; // Atlantic/Faeroe
    -
    1167 const uint32_t kZoneIdAtlantic_Jan_Mayen = 0x5a7535b6; // Atlantic/Jan_Mayen
    -
    1168 const uint32_t kZoneIdAtlantic_Reykjavik = 0x1c2b4f74; // Atlantic/Reykjavik
    -
    1169 const uint32_t kZoneIdAtlantic_St_Helena = 0x451fc5f7; // Atlantic/St_Helena
    -
    1170 const uint32_t kZoneIdAustralia_ACT = 0x8a970eb2; // Australia/ACT
    -
    1171 const uint32_t kZoneIdAustralia_Canberra = 0x2a09ae58; // Australia/Canberra
    -
    1172 const uint32_t kZoneIdAustralia_Currie = 0x278b6a24; // Australia/Currie
    -
    1173 const uint32_t kZoneIdAustralia_LHI = 0x8a973e17; // Australia/LHI
    -
    1174 const uint32_t kZoneIdAustralia_NSW = 0x8a974812; // Australia/NSW
    -
    1175 const uint32_t kZoneIdAustralia_North = 0x8d997165; // Australia/North
    -
    1176 const uint32_t kZoneIdAustralia_Queensland = 0xd326ed0a; // Australia/Queensland
    -
    1177 const uint32_t kZoneIdAustralia_South = 0x8df3f8ad; // Australia/South
    -
    1178 const uint32_t kZoneIdAustralia_Tasmania = 0xe6d76648; // Australia/Tasmania
    -
    1179 const uint32_t kZoneIdAustralia_Victoria = 0x0260d5db; // Australia/Victoria
    -
    1180 const uint32_t kZoneIdAustralia_West = 0xdd858a5d; // Australia/West
    -
    1181 const uint32_t kZoneIdAustralia_Yancowinna = 0x90bac131; // Australia/Yancowinna
    -
    1182 const uint32_t kZoneIdBrazil_Acre = 0x66934f93; // Brazil/Acre
    -
    1183 const uint32_t kZoneIdBrazil_DeNoronha = 0x9b4cb496; // Brazil/DeNoronha
    -
    1184 const uint32_t kZoneIdBrazil_East = 0x669578c5; // Brazil/East
    -
    1185 const uint32_t kZoneIdBrazil_West = 0x669f689b; // Brazil/West
    -
    1186 const uint32_t kZoneIdCET = 0x0b87d921; // CET
    -
    1187 const uint32_t kZoneIdCST6CDT = 0xf0e87d00; // CST6CDT
    -
    1188 const uint32_t kZoneIdCanada_Atlantic = 0x536b119c; // Canada/Atlantic
    -
    1189 const uint32_t kZoneIdCanada_Central = 0x626710f5; // Canada/Central
    -
    1190 const uint32_t kZoneIdCanada_Eastern = 0xf3612d5e; // Canada/Eastern
    -
    1191 const uint32_t kZoneIdCanada_Mountain = 0xfb8a8217; // Canada/Mountain
    -
    1192 const uint32_t kZoneIdCanada_Newfoundland = 0xb396e991; // Canada/Newfoundland
    -
    1193 const uint32_t kZoneIdCanada_Pacific = 0x40fa3c7b; // Canada/Pacific
    -
    1194 const uint32_t kZoneIdCanada_Saskatchewan = 0x77311f49; // Canada/Saskatchewan
    -
    1195 const uint32_t kZoneIdCanada_Yukon = 0x78dd35c2; // Canada/Yukon
    -
    1196 const uint32_t kZoneIdChile_Continental = 0x7e2bdb18; // Chile/Continental
    -
    1197 const uint32_t kZoneIdChile_EasterIsland = 0xb0982af8; // Chile/EasterIsland
    -
    1198 const uint32_t kZoneIdCuba = 0x7c83cba0; // Cuba
    -
    1199 const uint32_t kZoneIdEET = 0x0b87e1a3; // EET
    -
    1200 const uint32_t kZoneIdEST = 0x0b87e371; // EST
    -
    1201 const uint32_t kZoneIdEST5EDT = 0x8adc72a3; // EST5EDT
    -
    1202 const uint32_t kZoneIdEgypt = 0x0d1a278e; // Egypt
    -
    1203 const uint32_t kZoneIdEire = 0x7c84b36a; // Eire
    -
    1204 const uint32_t kZoneIdEtc_GMT_PLUS_0 = 0x9d13da13; // Etc/GMT+0
    -
    1205 const uint32_t kZoneIdEtc_GMT_0 = 0x9d13da55; // Etc/GMT-0
    -
    1206 const uint32_t kZoneIdEtc_GMT0 = 0xf53ea988; // Etc/GMT0
    -
    1207 const uint32_t kZoneIdEtc_Greenwich = 0x26daa98c; // Etc/Greenwich
    -
    1208 const uint32_t kZoneIdEtc_UCT = 0xd8e3189c; // Etc/UCT
    -
    1209 const uint32_t kZoneIdEtc_Universal = 0x2f8cb9a9; // Etc/Universal
    -
    1210 const uint32_t kZoneIdEtc_Zulu = 0xf549c240; // Etc/Zulu
    -
    1211 const uint32_t kZoneIdEurope_Amsterdam = 0x109395c2; // Europe/Amsterdam
    -
    1212 const uint32_t kZoneIdEurope_Belfast = 0xd07dd1e5; // Europe/Belfast
    -
    1213 const uint32_t kZoneIdEurope_Bratislava = 0xda493bed; // Europe/Bratislava
    -
    1214 const uint32_t kZoneIdEurope_Busingen = 0xc06d2cdf; // Europe/Busingen
    -
    1215 const uint32_t kZoneIdEurope_Copenhagen = 0xe0ed30bc; // Europe/Copenhagen
    -
    1216 const uint32_t kZoneIdEurope_Guernsey = 0x3db12c16; // Europe/Guernsey
    -
    1217 const uint32_t kZoneIdEurope_Isle_of_Man = 0xeaf84580; // Europe/Isle_of_Man
    -
    1218 const uint32_t kZoneIdEurope_Jersey = 0x570dae76; // Europe/Jersey
    -
    1219 const uint32_t kZoneIdEurope_Kiev = 0xa2c19eb3; // Europe/Kiev
    -
    1220 const uint32_t kZoneIdEurope_Ljubljana = 0xbd98cdb7; // Europe/Ljubljana
    -
    1221 const uint32_t kZoneIdEurope_Luxembourg = 0x1f8bc6ce; // Europe/Luxembourg
    -
    1222 const uint32_t kZoneIdEurope_Mariehamn = 0x0caa6496; // Europe/Mariehamn
    -
    1223 const uint32_t kZoneIdEurope_Monaco = 0x5ebf9f01; // Europe/Monaco
    -
    1224 const uint32_t kZoneIdEurope_Nicosia = 0x74efab8a; // Europe/Nicosia
    -
    1225 const uint32_t kZoneIdEurope_Oslo = 0xa2c3fba1; // Europe/Oslo
    -
    1226 const uint32_t kZoneIdEurope_Podgorica = 0x1c1a499c; // Europe/Podgorica
    -
    1227 const uint32_t kZoneIdEurope_San_Marino = 0xcef7724b; // Europe/San_Marino
    -
    1228 const uint32_t kZoneIdEurope_Sarajevo = 0x6a576c3f; // Europe/Sarajevo
    -
    1229 const uint32_t kZoneIdEurope_Skopje = 0x6c76fdd0; // Europe/Skopje
    -
    1230 const uint32_t kZoneIdEurope_Stockholm = 0x5bf6fbb8; // Europe/Stockholm
    -
    1231 const uint32_t kZoneIdEurope_Tiraspol = 0xbe704472; // Europe/Tiraspol
    -
    1232 const uint32_t kZoneIdEurope_Uzhgorod = 0xb066f5d6; // Europe/Uzhgorod
    -
    1233 const uint32_t kZoneIdEurope_Vaduz = 0xfbb81bae; // Europe/Vaduz
    -
    1234 const uint32_t kZoneIdEurope_Vatican = 0xcb485dca; // Europe/Vatican
    -
    1235 const uint32_t kZoneIdEurope_Zagreb = 0x7c11c9ff; // Europe/Zagreb
    -
    1236 const uint32_t kZoneIdEurope_Zaporozhye = 0xeab9767f; // Europe/Zaporozhye
    -
    1237 const uint32_t kZoneIdGB = 0x005973ae; // GB
    -
    1238 const uint32_t kZoneIdGB_Eire = 0xfa70e300; // GB-Eire
    -
    1239 const uint32_t kZoneIdGMT = 0x0b87eb2d; // GMT
    -
    1240 const uint32_t kZoneIdGMT_PLUS_0 = 0x0d2f7028; // GMT+0
    -
    1241 const uint32_t kZoneIdGMT_0 = 0x0d2f706a; // GMT-0
    -
    1242 const uint32_t kZoneIdGMT0 = 0x7c8550fd; // GMT0
    -
    1243 const uint32_t kZoneIdGreenwich = 0xc84d4221; // Greenwich
    -
    1244 const uint32_t kZoneIdHST = 0x0b87f034; // HST
    -
    1245 const uint32_t kZoneIdHongkong = 0x56d36560; // Hongkong
    -
    1246 const uint32_t kZoneIdIceland = 0xe56a35b5; // Iceland
    -
    1247 const uint32_t kZoneIdIndian_Antananarivo = 0x9ebf5289; // Indian/Antananarivo
    -
    1248 const uint32_t kZoneIdIndian_Christmas = 0x68c207d5; // Indian/Christmas
    -
    1249 const uint32_t kZoneIdIndian_Cocos = 0x021e86de; // Indian/Cocos
    -
    1250 const uint32_t kZoneIdIndian_Comoro = 0x45f4deb6; // Indian/Comoro
    -
    1251 const uint32_t kZoneIdIndian_Kerguelen = 0x4351b389; // Indian/Kerguelen
    -
    1252 const uint32_t kZoneIdIndian_Mahe = 0x45e725e2; // Indian/Mahe
    -
    1253 const uint32_t kZoneIdIndian_Mayotte = 0xe6880bca; // Indian/Mayotte
    -
    1254 const uint32_t kZoneIdIndian_Reunion = 0x7076c047; // Indian/Reunion
    -
    1255 const uint32_t kZoneIdIran = 0x7c87090f; // Iran
    -
    1256 const uint32_t kZoneIdIsrael = 0xba88c9e5; // Israel
    -
    1257 const uint32_t kZoneIdJamaica = 0x2e44fdab; // Jamaica
    -
    1258 const uint32_t kZoneIdJapan = 0x0d712f8f; // Japan
    -
    1259 const uint32_t kZoneIdKwajalein = 0x0e57afbb; // Kwajalein
    -
    1260 const uint32_t kZoneIdLibya = 0x0d998b16; // Libya
    -
    1261 const uint32_t kZoneIdMET = 0x0b8803ab; // MET
    -
    1262 const uint32_t kZoneIdMST = 0x0b880579; // MST
    -
    1263 const uint32_t kZoneIdMST7MDT = 0xf2af9375; // MST7MDT
    -
    1264 const uint32_t kZoneIdMexico_BajaNorte = 0xfcf7150f; // Mexico/BajaNorte
    -
    1265 const uint32_t kZoneIdMexico_BajaSur = 0x08ee3641; // Mexico/BajaSur
    -
    1266 const uint32_t kZoneIdMexico_General = 0x93711d57; // Mexico/General
    -
    1267 const uint32_t kZoneIdNZ = 0x005974ad; // NZ
    -
    1268 const uint32_t kZoneIdNZ_CHAT = 0x4d42afda; // NZ-CHAT
    -
    1269 const uint32_t kZoneIdNavajo = 0xc4ef0e24; // Navajo
    -
    1270 const uint32_t kZoneIdPRC = 0x0b88120a; // PRC
    -
    1271 const uint32_t kZoneIdPST8PDT = 0xd99ee2dc; // PST8PDT
    -
    1272 const uint32_t kZoneIdPacific_Chuuk = 0x8a090b23; // Pacific/Chuuk
    -
    1273 const uint32_t kZoneIdPacific_Enderbury = 0x61599a93; // Pacific/Enderbury
    -
    1274 const uint32_t kZoneIdPacific_Funafuti = 0xdb402d65; // Pacific/Funafuti
    -
    1275 const uint32_t kZoneIdPacific_Johnston = 0xb15d7b36; // Pacific/Johnston
    -
    1276 const uint32_t kZoneIdPacific_Majuro = 0xe1f95371; // Pacific/Majuro
    -
    1277 const uint32_t kZoneIdPacific_Midway = 0xe286d38e; // Pacific/Midway
    -
    1278 const uint32_t kZoneIdPacific_Pohnpei = 0x28929f96; // Pacific/Pohnpei
    -
    1279 const uint32_t kZoneIdPacific_Ponape = 0xe9f80086; // Pacific/Ponape
    -
    1280 const uint32_t kZoneIdPacific_Saipan = 0xeff7a35f; // Pacific/Saipan
    -
    1281 const uint32_t kZoneIdPacific_Samoa = 0x8b2699b4; // Pacific/Samoa
    -
    1282 const uint32_t kZoneIdPacific_Truk = 0x234010a9; // Pacific/Truk
    -
    1283 const uint32_t kZoneIdPacific_Wake = 0x23416c2b; // Pacific/Wake
    -
    1284 const uint32_t kZoneIdPacific_Wallis = 0xf94ddb0f; // Pacific/Wallis
    -
    1285 const uint32_t kZoneIdPacific_Yap = 0xbb40138d; // Pacific/Yap
    -
    1286 const uint32_t kZoneIdPoland = 0xca913b23; // Poland
    -
    1287 const uint32_t kZoneIdPortugal = 0xc3274593; // Portugal
    -
    1288 const uint32_t kZoneIdROC = 0x0b881a29; // ROC
    -
    1289 const uint32_t kZoneIdROK = 0x0b881a31; // ROK
    -
    1290 const uint32_t kZoneIdSingapore = 0xa8598c8d; // Singapore
    -
    1291 const uint32_t kZoneIdTurkey = 0xd455e469; // Turkey
    -
    1292 const uint32_t kZoneIdUCT = 0x0b882571; // UCT
    -
    1293 const uint32_t kZoneIdUS_Alaska = 0xfa300bc9; // US/Alaska
    -
    1294 const uint32_t kZoneIdUS_Aleutian = 0x4fe013ef; // US/Aleutian
    -
    1295 const uint32_t kZoneIdUS_Arizona = 0x4ec52670; // US/Arizona
    -
    1296 const uint32_t kZoneIdUS_Central = 0xcabdcb25; // US/Central
    -
    1297 const uint32_t kZoneIdUS_East_Indiana = 0x6dcf558a; // US/East-Indiana
    -
    1298 const uint32_t kZoneIdUS_Eastern = 0x5bb7e78e; // US/Eastern
    -
    1299 const uint32_t kZoneIdUS_Hawaii = 0x09c8de2f; // US/Hawaii
    -
    1300 const uint32_t kZoneIdUS_Indiana_Starke = 0x67977be7; // US/Indiana-Starke
    -
    1301 const uint32_t kZoneIdUS_Michigan = 0x766bb7bc; // US/Michigan
    -
    1302 const uint32_t kZoneIdUS_Mountain = 0x6eb88247; // US/Mountain
    -
    1303 const uint32_t kZoneIdUS_Pacific = 0xa950f6ab; // US/Pacific
    -
    1304 const uint32_t kZoneIdUS_Samoa = 0x566821cd; // US/Samoa
    -
    1305 const uint32_t kZoneIdUTC = 0x0b882791; // UTC
    -
    1306 const uint32_t kZoneIdUniversal = 0xd0ff523e; // Universal
    -
    1307 const uint32_t kZoneIdW_SU = 0x7c8d8ef1; // W-SU
    -
    1308 const uint32_t kZoneIdWET = 0x0b882e35; // WET
    -
    1309 const uint32_t kZoneIdZulu = 0x7c9069b5; // Zulu
    -
    1310 
    -
    1311 
    -
    1312 //---------------------------------------------------------------------------
    -
    1313 // Maximum size of the Transition buffer in ExtendedZoneProcessor for each zone
    -
    1314 // over the given years. Used only in the AceTimeValidation/Extended*Test tests
    -
    1315 // for ExtendedZoneProcessor.
    -
    1316 //
    -
    1317 // MaxBufSize: 7
    -
    1318 //---------------------------------------------------------------------------
    -
    1319 
    -
    1320 const uint8_t kZoneBufSizeAfrica_Abidjan = 1; // Africa/Abidjan in 1949
    -
    1321 const uint8_t kZoneBufSizeAfrica_Algiers = 1; // Africa/Algiers in 1949
    -
    1322 const uint8_t kZoneBufSizeAfrica_Bissau = 1; // Africa/Bissau in 1949
    -
    1323 const uint8_t kZoneBufSizeAfrica_Cairo = 5; // Africa/Cairo in 2010
    -
    1324 const uint8_t kZoneBufSizeAfrica_Casablanca = 7; // Africa/Casablanca in 2013
    -
    1325 const uint8_t kZoneBufSizeAfrica_Ceuta = 5; // Africa/Ceuta in 1983
    -
    1326 const uint8_t kZoneBufSizeAfrica_El_Aaiun = 7; // Africa/El_Aaiun in 2013
    -
    1327 const uint8_t kZoneBufSizeAfrica_Johannesburg = 2; // Africa/Johannesburg in 1949
    -
    1328 const uint8_t kZoneBufSizeAfrica_Juba = 2; // Africa/Juba in 1949
    -
    1329 const uint8_t kZoneBufSizeAfrica_Khartoum = 2; // Africa/Khartoum in 1949
    -
    1330 const uint8_t kZoneBufSizeAfrica_Lagos = 1; // Africa/Lagos in 1949
    -
    1331 const uint8_t kZoneBufSizeAfrica_Maputo = 1; // Africa/Maputo in 1949
    -
    1332 const uint8_t kZoneBufSizeAfrica_Monrovia = 1; // Africa/Monrovia in 1949
    -
    1333 const uint8_t kZoneBufSizeAfrica_Nairobi = 1; // Africa/Nairobi in 1949
    -
    1334 const uint8_t kZoneBufSizeAfrica_Ndjamena = 1; // Africa/Ndjamena in 1949
    -
    1335 const uint8_t kZoneBufSizeAfrica_Sao_Tome = 3; // Africa/Sao_Tome in 2018
    -
    1336 const uint8_t kZoneBufSizeAfrica_Tripoli = 4; // Africa/Tripoli in 2012
    -
    1337 const uint8_t kZoneBufSizeAfrica_Tunis = 5; // Africa/Tunis in 2005
    -
    1338 const uint8_t kZoneBufSizeAfrica_Windhoek = 4; // Africa/Windhoek in 1994
    -
    1339 const uint8_t kZoneBufSizeAmerica_Adak = 6; // America/Adak in 2008
    -
    1340 const uint8_t kZoneBufSizeAmerica_Anchorage = 6; // America/Anchorage in 2008
    -
    1341 const uint8_t kZoneBufSizeAmerica_Araguaina = 5; // America/Araguaina in 1999
    -
    1342 const uint8_t kZoneBufSizeAmerica_Argentina_Buenos_Aires = 5; // America/Argentina/Buenos_Aires in 2008
    -
    1343 const uint8_t kZoneBufSizeAmerica_Argentina_Catamarca = 4; // America/Argentina/Catamarca in 1991
    -
    1344 const uint8_t kZoneBufSizeAmerica_Argentina_Cordoba = 5; // America/Argentina/Cordoba in 2008
    -
    1345 const uint8_t kZoneBufSizeAmerica_Argentina_Jujuy = 4; // America/Argentina/Jujuy in 1991
    -
    1346 const uint8_t kZoneBufSizeAmerica_Argentina_La_Rioja = 4; // America/Argentina/La_Rioja in 1991
    -
    1347 const uint8_t kZoneBufSizeAmerica_Argentina_Mendoza = 4; // America/Argentina/Mendoza in 1991
    -
    1348 const uint8_t kZoneBufSizeAmerica_Argentina_Rio_Gallegos = 4; // America/Argentina/Rio_Gallegos in 1991
    -
    1349 const uint8_t kZoneBufSizeAmerica_Argentina_Salta = 4; // America/Argentina/Salta in 1991
    -
    1350 const uint8_t kZoneBufSizeAmerica_Argentina_San_Juan = 4; // America/Argentina/San_Juan in 1991
    -
    1351 const uint8_t kZoneBufSizeAmerica_Argentina_San_Luis = 7; // America/Argentina/San_Luis in 2008
    -
    1352 const uint8_t kZoneBufSizeAmerica_Argentina_Tucuman = 5; // America/Argentina/Tucuman in 2008
    -
    1353 const uint8_t kZoneBufSizeAmerica_Argentina_Ushuaia = 4; // America/Argentina/Ushuaia in 1991
    -
    1354 const uint8_t kZoneBufSizeAmerica_Asuncion = 5; // America/Asuncion in 2000
    -
    1355 const uint8_t kZoneBufSizeAmerica_Bahia = 5; // America/Bahia in 1999
    -
    1356 const uint8_t kZoneBufSizeAmerica_Bahia_Banderas = 5; // America/Bahia_Banderas in 2010
    -
    1357 const uint8_t kZoneBufSizeAmerica_Barbados = 2; // America/Barbados in 1949
    -
    1358 const uint8_t kZoneBufSizeAmerica_Belem = 1; // America/Belem in 1949
    -
    1359 const uint8_t kZoneBufSizeAmerica_Belize = 2; // America/Belize in 1949
    -
    1360 const uint8_t kZoneBufSizeAmerica_Boa_Vista = 5; // America/Boa_Vista in 1999
    -
    1361 const uint8_t kZoneBufSizeAmerica_Bogota = 2; // America/Bogota in 1949
    -
    1362 const uint8_t kZoneBufSizeAmerica_Boise = 6; // America/Boise in 2008
    -
    1363 const uint8_t kZoneBufSizeAmerica_Cambridge_Bay = 6; // America/Cambridge_Bay in 2008
    -
    1364 const uint8_t kZoneBufSizeAmerica_Campo_Grande = 6; // America/Campo_Grande in 2003
    -
    1365 const uint8_t kZoneBufSizeAmerica_Cancun = 4; // America/Cancun in 1996
    -
    1366 const uint8_t kZoneBufSizeAmerica_Caracas = 2; // America/Caracas in 2007
    -
    1367 const uint8_t kZoneBufSizeAmerica_Cayenne = 1; // America/Cayenne in 1949
    -
    1368 const uint8_t kZoneBufSizeAmerica_Chicago = 6; // America/Chicago in 2008
    -
    1369 const uint8_t kZoneBufSizeAmerica_Chihuahua = 4; // America/Chihuahua in 1996
    -
    1370 const uint8_t kZoneBufSizeAmerica_Ciudad_Juarez = 7; // America/Ciudad_Juarez in 2022
    -
    1371 const uint8_t kZoneBufSizeAmerica_Costa_Rica = 2; // America/Costa_Rica in 1949
    -
    1372 const uint8_t kZoneBufSizeAmerica_Coyhaique = 5; // America/Coyhaique in 2002
    -
    1373 const uint8_t kZoneBufSizeAmerica_Cuiaba = 6; // America/Cuiaba in 2005
    -
    1374 const uint8_t kZoneBufSizeAmerica_Danmarkshavn = 1; // America/Danmarkshavn in 1949
    -
    1375 const uint8_t kZoneBufSizeAmerica_Dawson = 6; // America/Dawson in 2008
    -
    1376 const uint8_t kZoneBufSizeAmerica_Dawson_Creek = 1; // America/Dawson_Creek in 1949
    -
    1377 const uint8_t kZoneBufSizeAmerica_Denver = 6; // America/Denver in 2008
    -
    1378 const uint8_t kZoneBufSizeAmerica_Detroit = 6; // America/Detroit in 2008
    -
    1379 const uint8_t kZoneBufSizeAmerica_Edmonton = 6; // America/Edmonton in 2008
    -
    1380 const uint8_t kZoneBufSizeAmerica_Eirunepe = 2; // America/Eirunepe in 2008
    -
    1381 const uint8_t kZoneBufSizeAmerica_El_Salvador = 2; // America/El_Salvador in 1949
    -
    1382 const uint8_t kZoneBufSizeAmerica_Fort_Nelson = 6; // America/Fort_Nelson in 2008
    -
    1383 const uint8_t kZoneBufSizeAmerica_Fortaleza = 5; // America/Fortaleza in 1999
    -
    1384 const uint8_t kZoneBufSizeAmerica_Glace_Bay = 6; // America/Glace_Bay in 2008
    -
    1385 const uint8_t kZoneBufSizeAmerica_Goose_Bay = 6; // America/Goose_Bay in 2008
    -
    1386 const uint8_t kZoneBufSizeAmerica_Grand_Turk = 6; // America/Grand_Turk in 2008
    -
    1387 const uint8_t kZoneBufSizeAmerica_Guatemala = 3; // America/Guatemala in 2006
    -
    1388 const uint8_t kZoneBufSizeAmerica_Guayaquil = 2; // America/Guayaquil in 1949
    -
    1389 const uint8_t kZoneBufSizeAmerica_Guyana = 1; // America/Guyana in 1949
    -
    1390 const uint8_t kZoneBufSizeAmerica_Halifax = 6; // America/Halifax in 2008
    -
    1391 const uint8_t kZoneBufSizeAmerica_Havana = 6; // America/Havana in 2015
    -
    1392 const uint8_t kZoneBufSizeAmerica_Hermosillo = 4; // America/Hermosillo in 1996
    -
    1393 const uint8_t kZoneBufSizeAmerica_Indiana_Indianapolis = 6; // America/Indiana/Indianapolis in 2006
    -
    1394 const uint8_t kZoneBufSizeAmerica_Indiana_Knox = 6; // America/Indiana/Knox in 2006
    -
    1395 const uint8_t kZoneBufSizeAmerica_Indiana_Marengo = 6; // America/Indiana/Marengo in 2006
    -
    1396 const uint8_t kZoneBufSizeAmerica_Indiana_Petersburg = 6; // America/Indiana/Petersburg in 2006
    -
    1397 const uint8_t kZoneBufSizeAmerica_Indiana_Tell_City = 6; // America/Indiana/Tell_City in 2006
    -
    1398 const uint8_t kZoneBufSizeAmerica_Indiana_Vevay = 6; // America/Indiana/Vevay in 2006
    -
    1399 const uint8_t kZoneBufSizeAmerica_Indiana_Vincennes = 6; // America/Indiana/Vincennes in 2006
    -
    1400 const uint8_t kZoneBufSizeAmerica_Indiana_Winamac = 6; // America/Indiana/Winamac in 2006
    -
    1401 const uint8_t kZoneBufSizeAmerica_Inuvik = 6; // America/Inuvik in 2008
    -
    1402 const uint8_t kZoneBufSizeAmerica_Iqaluit = 6; // America/Iqaluit in 2008
    -
    1403 const uint8_t kZoneBufSizeAmerica_Jamaica = 1; // America/Jamaica in 1949
    -
    1404 const uint8_t kZoneBufSizeAmerica_Juneau = 6; // America/Juneau in 2008
    -
    1405 const uint8_t kZoneBufSizeAmerica_Kentucky_Louisville = 6; // America/Kentucky/Louisville in 2008
    -
    1406 const uint8_t kZoneBufSizeAmerica_Kentucky_Monticello = 6; // America/Kentucky/Monticello in 2008
    -
    1407 const uint8_t kZoneBufSizeAmerica_La_Paz = 1; // America/La_Paz in 1949
    -
    1408 const uint8_t kZoneBufSizeAmerica_Lima = 2; // America/Lima in 1949
    -
    1409 const uint8_t kZoneBufSizeAmerica_Los_Angeles = 6; // America/Los_Angeles in 2008
    -
    1410 const uint8_t kZoneBufSizeAmerica_Maceio = 5; // America/Maceio in 1999
    -
    1411 const uint8_t kZoneBufSizeAmerica_Managua = 4; // America/Managua in 2005
    -
    1412 const uint8_t kZoneBufSizeAmerica_Manaus = 1; // America/Manaus in 1949
    -
    1413 const uint8_t kZoneBufSizeAmerica_Martinique = 1; // America/Martinique in 1949
    -
    1414 const uint8_t kZoneBufSizeAmerica_Matamoros = 6; // America/Matamoros in 2009
    -
    1415 const uint8_t kZoneBufSizeAmerica_Mazatlan = 4; // America/Mazatlan in 1996
    -
    1416 const uint8_t kZoneBufSizeAmerica_Menominee = 6; // America/Menominee in 2008
    -
    1417 const uint8_t kZoneBufSizeAmerica_Merida = 4; // America/Merida in 1996
    -
    1418 const uint8_t kZoneBufSizeAmerica_Metlakatla = 6; // America/Metlakatla in 2016
    -
    1419 const uint8_t kZoneBufSizeAmerica_Mexico_City = 5; // America/Mexico_City in 2002
    -
    1420 const uint8_t kZoneBufSizeAmerica_Miquelon = 6; // America/Miquelon in 2008
    -
    1421 const uint8_t kZoneBufSizeAmerica_Moncton = 6; // America/Moncton in 2006
    -
    1422 const uint8_t kZoneBufSizeAmerica_Monterrey = 4; // America/Monterrey in 1996
    -
    1423 const uint8_t kZoneBufSizeAmerica_Montevideo = 5; // America/Montevideo in 2005
    -
    1424 const uint8_t kZoneBufSizeAmerica_New_York = 6; // America/New_York in 2008
    -
    1425 const uint8_t kZoneBufSizeAmerica_Nome = 6; // America/Nome in 2008
    -
    1426 const uint8_t kZoneBufSizeAmerica_Noronha = 5; // America/Noronha in 1999
    -
    1427 const uint8_t kZoneBufSizeAmerica_North_Dakota_Beulah = 6; // America/North_Dakota/Beulah in 2008
    -
    1428 const uint8_t kZoneBufSizeAmerica_North_Dakota_Center = 6; // America/North_Dakota/Center in 2008
    -
    1429 const uint8_t kZoneBufSizeAmerica_North_Dakota_New_Salem = 6; // America/North_Dakota/New_Salem in 2008
    -
    1430 const uint8_t kZoneBufSizeAmerica_Nuuk = 6; // America/Nuuk in 2023
    -
    1431 const uint8_t kZoneBufSizeAmerica_Ojinaga = 7; // America/Ojinaga in 2022
    -
    1432 const uint8_t kZoneBufSizeAmerica_Panama = 1; // America/Panama in 1949
    -
    1433 const uint8_t kZoneBufSizeAmerica_Paramaribo = 1; // America/Paramaribo in 1949
    -
    1434 const uint8_t kZoneBufSizeAmerica_Phoenix = 1; // America/Phoenix in 1949
    -
    1435 const uint8_t kZoneBufSizeAmerica_Port_au_Prince = 6; // America/Port-au-Prince in 2013
    -
    1436 const uint8_t kZoneBufSizeAmerica_Porto_Velho = 1; // America/Porto_Velho in 1949
    -
    1437 const uint8_t kZoneBufSizeAmerica_Puerto_Rico = 1; // America/Puerto_Rico in 1949
    -
    1438 const uint8_t kZoneBufSizeAmerica_Punta_Arenas = 5; // America/Punta_Arenas in 2002
    -
    1439 const uint8_t kZoneBufSizeAmerica_Rankin_Inlet = 6; // America/Rankin_Inlet in 2008
    -
    1440 const uint8_t kZoneBufSizeAmerica_Recife = 5; // America/Recife in 1999
    -
    1441 const uint8_t kZoneBufSizeAmerica_Regina = 1; // America/Regina in 1949
    -
    1442 const uint8_t kZoneBufSizeAmerica_Resolute = 6; // America/Resolute in 2007
    -
    1443 const uint8_t kZoneBufSizeAmerica_Rio_Branco = 2; // America/Rio_Branco in 2008
    -
    1444 const uint8_t kZoneBufSizeAmerica_Santarem = 2; // America/Santarem in 2008
    -
    1445 const uint8_t kZoneBufSizeAmerica_Santiago = 5; // America/Santiago in 2002
    -
    1446 const uint8_t kZoneBufSizeAmerica_Santo_Domingo = 4; // America/Santo_Domingo in 2000
    -
    1447 const uint8_t kZoneBufSizeAmerica_Sao_Paulo = 6; // America/Sao_Paulo in 2003
    -
    1448 const uint8_t kZoneBufSizeAmerica_Scoresbysund = 6; // America/Scoresbysund in 2024
    -
    1449 const uint8_t kZoneBufSizeAmerica_Sitka = 6; // America/Sitka in 2008
    -
    1450 const uint8_t kZoneBufSizeAmerica_St_Johns = 6; // America/St_Johns in 2008
    -
    1451 const uint8_t kZoneBufSizeAmerica_Swift_Current = 1; // America/Swift_Current in 1949
    -
    1452 const uint8_t kZoneBufSizeAmerica_Tegucigalpa = 3; // America/Tegucigalpa in 1987
    -
    1453 const uint8_t kZoneBufSizeAmerica_Thule = 6; // America/Thule in 2008
    -
    1454 const uint8_t kZoneBufSizeAmerica_Tijuana = 6; // America/Tijuana in 2009
    -
    1455 const uint8_t kZoneBufSizeAmerica_Toronto = 6; // America/Toronto in 2008
    -
    1456 const uint8_t kZoneBufSizeAmerica_Vancouver = 6; // America/Vancouver in 2008
    -
    1457 const uint8_t kZoneBufSizeAmerica_Whitehorse = 6; // America/Whitehorse in 2008
    -
    1458 const uint8_t kZoneBufSizeAmerica_Winnipeg = 6; // America/Winnipeg in 2006
    -
    1459 const uint8_t kZoneBufSizeAmerica_Yakutat = 6; // America/Yakutat in 2008
    -
    1460 const uint8_t kZoneBufSizeAntarctica_Casey = 3; // Antarctica/Casey in 2018
    -
    1461 const uint8_t kZoneBufSizeAntarctica_Davis = 2; // Antarctica/Davis in 2009
    -
    1462 const uint8_t kZoneBufSizeAntarctica_Macquarie = 5; // Antarctica/Macquarie in 1993
    -
    1463 const uint8_t kZoneBufSizeAntarctica_Mawson = 2; // Antarctica/Mawson in 2009
    -
    1464 const uint8_t kZoneBufSizeAntarctica_Palmer = 5; // Antarctica/Palmer in 2002
    -
    1465 const uint8_t kZoneBufSizeAntarctica_Rothera = 1; // Antarctica/Rothera in 1949
    -
    1466 const uint8_t kZoneBufSizeAntarctica_Troll = 6; // Antarctica/Troll in 2005
    -
    1467 const uint8_t kZoneBufSizeAntarctica_Vostok = 2; // Antarctica/Vostok in 2023
    -
    1468 const uint8_t kZoneBufSizeAsia_Almaty = 5; // Asia/Almaty in 1987
    -
    1469 const uint8_t kZoneBufSizeAsia_Amman = 6; // Asia/Amman in 2014
    -
    1470 const uint8_t kZoneBufSizeAsia_Anadyr = 5; // Asia/Anadyr in 1987
    -
    1471 const uint8_t kZoneBufSizeAsia_Aqtau = 5; // Asia/Aqtau in 1987
    -
    1472 const uint8_t kZoneBufSizeAsia_Aqtobe = 5; // Asia/Aqtobe in 1987
    -
    1473 const uint8_t kZoneBufSizeAsia_Ashgabat = 1; // Asia/Ashgabat in 1949
    -
    1474 const uint8_t kZoneBufSizeAsia_Atyrau = 6; // Asia/Atyrau in 1999
    -
    1475 const uint8_t kZoneBufSizeAsia_Baghdad = 4; // Asia/Baghdad in 1991
    -
    1476 const uint8_t kZoneBufSizeAsia_Baku = 5; // Asia/Baku in 1997
    -
    1477 const uint8_t kZoneBufSizeAsia_Bangkok = 1; // Asia/Bangkok in 1949
    -
    1478 const uint8_t kZoneBufSizeAsia_Barnaul = 5; // Asia/Barnaul in 1987
    -
    1479 const uint8_t kZoneBufSizeAsia_Beirut = 5; // Asia/Beirut in 1993
    -
    1480 const uint8_t kZoneBufSizeAsia_Bishkek = 5; // Asia/Bishkek in 1997
    -
    1481 const uint8_t kZoneBufSizeAsia_Chita = 5; // Asia/Chita in 1987
    -
    1482 const uint8_t kZoneBufSizeAsia_Colombo = 2; // Asia/Colombo in 2006
    -
    1483 const uint8_t kZoneBufSizeAsia_Damascus = 6; // Asia/Damascus in 2008
    -
    1484 const uint8_t kZoneBufSizeAsia_Dhaka = 4; // Asia/Dhaka in 2009
    -
    1485 const uint8_t kZoneBufSizeAsia_Dili = 2; // Asia/Dili in 2000
    -
    1486 const uint8_t kZoneBufSizeAsia_Dubai = 1; // Asia/Dubai in 1949
    -
    1487 const uint8_t kZoneBufSizeAsia_Dushanbe = 1; // Asia/Dushanbe in 1949
    -
    1488 const uint8_t kZoneBufSizeAsia_Famagusta = 5; // Asia/Famagusta in 1981
    -
    1489 const uint8_t kZoneBufSizeAsia_Gaza = 7; // Asia/Gaza in 2008
    -
    1490 const uint8_t kZoneBufSizeAsia_Hebron = 7; // Asia/Hebron in 2011
    -
    1491 const uint8_t kZoneBufSizeAsia_Ho_Chi_Minh = 1; // Asia/Ho_Chi_Minh in 1949
    -
    1492 const uint8_t kZoneBufSizeAsia_Hong_Kong = 2; // Asia/Hong_Kong in 1949
    -
    1493 const uint8_t kZoneBufSizeAsia_Hovd = 5; // Asia/Hovd in 2004
    -
    1494 const uint8_t kZoneBufSizeAsia_Irkutsk = 5; // Asia/Irkutsk in 1987
    -
    1495 const uint8_t kZoneBufSizeAsia_Jakarta = 1; // Asia/Jakarta in 1949
    -
    1496 const uint8_t kZoneBufSizeAsia_Jayapura = 1; // Asia/Jayapura in 1949
    -
    1497 const uint8_t kZoneBufSizeAsia_Jerusalem = 5; // Asia/Jerusalem in 2001
    -
    1498 const uint8_t kZoneBufSizeAsia_Kabul = 1; // Asia/Kabul in 1949
    -
    1499 const uint8_t kZoneBufSizeAsia_Kamchatka = 5; // Asia/Kamchatka in 1987
    -
    1500 const uint8_t kZoneBufSizeAsia_Karachi = 4; // Asia/Karachi in 2008
    -
    1501 const uint8_t kZoneBufSizeAsia_Kathmandu = 1; // Asia/Kathmandu in 1949
    -
    1502 const uint8_t kZoneBufSizeAsia_Khandyga = 6; // Asia/Khandyga in 2003
    -
    1503 const uint8_t kZoneBufSizeAsia_Kolkata = 1; // Asia/Kolkata in 1949
    -
    1504 const uint8_t kZoneBufSizeAsia_Krasnoyarsk = 5; // Asia/Krasnoyarsk in 1987
    -
    1505 const uint8_t kZoneBufSizeAsia_Kuching = 1; // Asia/Kuching in 1949
    -
    1506 const uint8_t kZoneBufSizeAsia_Macau = 2; // Asia/Macau in 1949
    -
    1507 const uint8_t kZoneBufSizeAsia_Magadan = 5; // Asia/Magadan in 1987
    -
    1508 const uint8_t kZoneBufSizeAsia_Makassar = 1; // Asia/Makassar in 1949
    -
    1509 const uint8_t kZoneBufSizeAsia_Manila = 2; // Asia/Manila in 1949
    -
    1510 const uint8_t kZoneBufSizeAsia_Nicosia = 5; // Asia/Nicosia in 1981
    -
    1511 const uint8_t kZoneBufSizeAsia_Novokuznetsk = 5; // Asia/Novokuznetsk in 1987
    -
    1512 const uint8_t kZoneBufSizeAsia_Novosibirsk = 5; // Asia/Novosibirsk in 1987
    -
    1513 const uint8_t kZoneBufSizeAsia_Omsk = 5; // Asia/Omsk in 1987
    -
    1514 const uint8_t kZoneBufSizeAsia_Oral = 5; // Asia/Oral in 1987
    -
    1515 const uint8_t kZoneBufSizeAsia_Pontianak = 1; // Asia/Pontianak in 1949
    -
    1516 const uint8_t kZoneBufSizeAsia_Pyongyang = 2; // Asia/Pyongyang in 2015
    -
    1517 const uint8_t kZoneBufSizeAsia_Qatar = 1; // Asia/Qatar in 1949
    -
    1518 const uint8_t kZoneBufSizeAsia_Qostanay = 5; // Asia/Qostanay in 1987
    -
    1519 const uint8_t kZoneBufSizeAsia_Qyzylorda = 5; // Asia/Qyzylorda in 1987
    -
    1520 const uint8_t kZoneBufSizeAsia_Riyadh = 1; // Asia/Riyadh in 1949
    -
    1521 const uint8_t kZoneBufSizeAsia_Sakhalin = 5; // Asia/Sakhalin in 1987
    -
    1522 const uint8_t kZoneBufSizeAsia_Samarkand = 1; // Asia/Samarkand in 1949
    -
    1523 const uint8_t kZoneBufSizeAsia_Seoul = 2; // Asia/Seoul in 1949
    -
    1524 const uint8_t kZoneBufSizeAsia_Shanghai = 2; // Asia/Shanghai in 1949
    -
    1525 const uint8_t kZoneBufSizeAsia_Singapore = 1; // Asia/Singapore in 1949
    -
    1526 const uint8_t kZoneBufSizeAsia_Srednekolymsk = 5; // Asia/Srednekolymsk in 1987
    -
    1527 const uint8_t kZoneBufSizeAsia_Taipei = 2; // Asia/Taipei in 1949
    -
    1528 const uint8_t kZoneBufSizeAsia_Tashkent = 1; // Asia/Tashkent in 1949
    -
    1529 const uint8_t kZoneBufSizeAsia_Tbilisi = 6; // Asia/Tbilisi in 2004
    -
    1530 const uint8_t kZoneBufSizeAsia_Tehran = 5; // Asia/Tehran in 1997
    -
    1531 const uint8_t kZoneBufSizeAsia_Thimphu = 1; // Asia/Thimphu in 1949
    -
    1532 const uint8_t kZoneBufSizeAsia_Tokyo = 2; // Asia/Tokyo in 1949
    -
    1533 const uint8_t kZoneBufSizeAsia_Tomsk = 6; // Asia/Tomsk in 2002
    -
    1534 const uint8_t kZoneBufSizeAsia_Ulaanbaatar = 5; // Asia/Ulaanbaatar in 2004
    -
    1535 const uint8_t kZoneBufSizeAsia_Urumqi = 1; // Asia/Urumqi in 1949
    -
    1536 const uint8_t kZoneBufSizeAsia_Ust_Nera = 5; // Asia/Ust-Nera in 1987
    -
    1537 const uint8_t kZoneBufSizeAsia_Vladivostok = 5; // Asia/Vladivostok in 1987
    -
    1538 const uint8_t kZoneBufSizeAsia_Yakutsk = 5; // Asia/Yakutsk in 1987
    -
    1539 const uint8_t kZoneBufSizeAsia_Yangon = 1; // Asia/Yangon in 1949
    -
    1540 const uint8_t kZoneBufSizeAsia_Yekaterinburg = 5; // Asia/Yekaterinburg in 1987
    -
    1541 const uint8_t kZoneBufSizeAsia_Yerevan = 6; // Asia/Yerevan in 2010
    -
    1542 const uint8_t kZoneBufSizeAtlantic_Azores = 5; // Atlantic/Azores in 1983
    -
    1543 const uint8_t kZoneBufSizeAtlantic_Bermuda = 6; // Atlantic/Bermuda in 2008
    -
    1544 const uint8_t kZoneBufSizeAtlantic_Canary = 5; // Atlantic/Canary in 1983
    -
    1545 const uint8_t kZoneBufSizeAtlantic_Cape_Verde = 1; // Atlantic/Cape_Verde in 1949
    -
    1546 const uint8_t kZoneBufSizeAtlantic_Faroe = 5; // Atlantic/Faroe in 1983
    -
    1547 const uint8_t kZoneBufSizeAtlantic_Madeira = 5; // Atlantic/Madeira in 1983
    -
    1548 const uint8_t kZoneBufSizeAtlantic_South_Georgia = 1; // Atlantic/South_Georgia in 1949
    -
    1549 const uint8_t kZoneBufSizeAtlantic_Stanley = 4; // Atlantic/Stanley in 1985
    -
    1550 const uint8_t kZoneBufSizeAustralia_Adelaide = 5; // Australia/Adelaide in 1997
    -
    1551 const uint8_t kZoneBufSizeAustralia_Brisbane = 2; // Australia/Brisbane in 1949
    -
    1552 const uint8_t kZoneBufSizeAustralia_Broken_Hill = 6; // Australia/Broken_Hill in 1999
    -
    1553 const uint8_t kZoneBufSizeAustralia_Darwin = 2; // Australia/Darwin in 1949
    -
    1554 const uint8_t kZoneBufSizeAustralia_Eucla = 6; // Australia/Eucla in 2007
    -
    1555 const uint8_t kZoneBufSizeAustralia_Hobart = 5; // Australia/Hobart in 1993
    -
    1556 const uint8_t kZoneBufSizeAustralia_Lindeman = 2; // Australia/Lindeman in 1949
    -
    1557 const uint8_t kZoneBufSizeAustralia_Lord_Howe = 5; // Australia/Lord_Howe in 1992
    -
    1558 const uint8_t kZoneBufSizeAustralia_Melbourne = 5; // Australia/Melbourne in 1993
    -
    1559 const uint8_t kZoneBufSizeAustralia_Perth = 6; // Australia/Perth in 2007
    -
    1560 const uint8_t kZoneBufSizeAustralia_Sydney = 5; // Australia/Sydney in 1992
    -
    1561 const uint8_t kZoneBufSizeEtc_GMT = 1; // Etc/GMT in 1949
    -
    1562 const uint8_t kZoneBufSizeEtc_GMT_PLUS_1 = 1; // Etc/GMT+1 in 1949
    -
    1563 const uint8_t kZoneBufSizeEtc_GMT_PLUS_10 = 1; // Etc/GMT+10 in 1949
    -
    1564 const uint8_t kZoneBufSizeEtc_GMT_PLUS_11 = 1; // Etc/GMT+11 in 1949
    -
    1565 const uint8_t kZoneBufSizeEtc_GMT_PLUS_12 = 1; // Etc/GMT+12 in 1949
    -
    1566 const uint8_t kZoneBufSizeEtc_GMT_PLUS_2 = 1; // Etc/GMT+2 in 1949
    -
    1567 const uint8_t kZoneBufSizeEtc_GMT_PLUS_3 = 1; // Etc/GMT+3 in 1949
    -
    1568 const uint8_t kZoneBufSizeEtc_GMT_PLUS_4 = 1; // Etc/GMT+4 in 1949
    -
    1569 const uint8_t kZoneBufSizeEtc_GMT_PLUS_5 = 1; // Etc/GMT+5 in 1949
    -
    1570 const uint8_t kZoneBufSizeEtc_GMT_PLUS_6 = 1; // Etc/GMT+6 in 1949
    -
    1571 const uint8_t kZoneBufSizeEtc_GMT_PLUS_7 = 1; // Etc/GMT+7 in 1949
    -
    1572 const uint8_t kZoneBufSizeEtc_GMT_PLUS_8 = 1; // Etc/GMT+8 in 1949
    -
    1573 const uint8_t kZoneBufSizeEtc_GMT_PLUS_9 = 1; // Etc/GMT+9 in 1949
    -
    1574 const uint8_t kZoneBufSizeEtc_GMT_1 = 1; // Etc/GMT-1 in 1949
    -
    1575 const uint8_t kZoneBufSizeEtc_GMT_10 = 1; // Etc/GMT-10 in 1949
    -
    1576 const uint8_t kZoneBufSizeEtc_GMT_11 = 1; // Etc/GMT-11 in 1949
    -
    1577 const uint8_t kZoneBufSizeEtc_GMT_12 = 1; // Etc/GMT-12 in 1949
    -
    1578 const uint8_t kZoneBufSizeEtc_GMT_13 = 1; // Etc/GMT-13 in 1949
    -
    1579 const uint8_t kZoneBufSizeEtc_GMT_14 = 1; // Etc/GMT-14 in 1949
    -
    1580 const uint8_t kZoneBufSizeEtc_GMT_2 = 1; // Etc/GMT-2 in 1949
    -
    1581 const uint8_t kZoneBufSizeEtc_GMT_3 = 1; // Etc/GMT-3 in 1949
    -
    1582 const uint8_t kZoneBufSizeEtc_GMT_4 = 1; // Etc/GMT-4 in 1949
    -
    1583 const uint8_t kZoneBufSizeEtc_GMT_5 = 1; // Etc/GMT-5 in 1949
    -
    1584 const uint8_t kZoneBufSizeEtc_GMT_6 = 1; // Etc/GMT-6 in 1949
    -
    1585 const uint8_t kZoneBufSizeEtc_GMT_7 = 1; // Etc/GMT-7 in 1949
    -
    1586 const uint8_t kZoneBufSizeEtc_GMT_8 = 1; // Etc/GMT-8 in 1949
    -
    1587 const uint8_t kZoneBufSizeEtc_GMT_9 = 1; // Etc/GMT-9 in 1949
    -
    1588 const uint8_t kZoneBufSizeEtc_UTC = 1; // Etc/UTC in 1949
    -
    1589 const uint8_t kZoneBufSizeEurope_Andorra = 5; // Europe/Andorra in 1983
    -
    1590 const uint8_t kZoneBufSizeEurope_Astrakhan = 5; // Europe/Astrakhan in 1987
    -
    1591 const uint8_t kZoneBufSizeEurope_Athens = 5; // Europe/Athens in 1983
    -
    1592 const uint8_t kZoneBufSizeEurope_Belgrade = 5; // Europe/Belgrade in 1983
    -
    1593 const uint8_t kZoneBufSizeEurope_Berlin = 5; // Europe/Berlin in 1983
    -
    1594 const uint8_t kZoneBufSizeEurope_Brussels = 5; // Europe/Brussels in 1983
    -
    1595 const uint8_t kZoneBufSizeEurope_Bucharest = 5; // Europe/Bucharest in 1983
    -
    1596 const uint8_t kZoneBufSizeEurope_Budapest = 5; // Europe/Budapest in 1983
    -
    1597 const uint8_t kZoneBufSizeEurope_Chisinau = 5; // Europe/Chisinau in 1997
    -
    1598 const uint8_t kZoneBufSizeEurope_Dublin = 5; // Europe/Dublin in 1990
    -
    1599 const uint8_t kZoneBufSizeEurope_Gibraltar = 5; // Europe/Gibraltar in 1983
    -
    1600 const uint8_t kZoneBufSizeEurope_Helsinki = 5; // Europe/Helsinki in 1983
    -
    1601 const uint8_t kZoneBufSizeEurope_Istanbul = 7; // Europe/Istanbul in 2011
    -
    1602 const uint8_t kZoneBufSizeEurope_Kaliningrad = 5; // Europe/Kaliningrad in 1987
    -
    1603 const uint8_t kZoneBufSizeEurope_Kirov = 5; // Europe/Kirov in 1987
    -
    1604 const uint8_t kZoneBufSizeEurope_Kyiv = 5; // Europe/Kyiv in 1983
    -
    1605 const uint8_t kZoneBufSizeEurope_Lisbon = 5; // Europe/Lisbon in 1983
    -
    1606 const uint8_t kZoneBufSizeEurope_London = 5; // Europe/London in 1983
    -
    1607 const uint8_t kZoneBufSizeEurope_Madrid = 5; // Europe/Madrid in 1983
    -
    1608 const uint8_t kZoneBufSizeEurope_Malta = 5; // Europe/Malta in 1983
    -
    1609 const uint8_t kZoneBufSizeEurope_Minsk = 5; // Europe/Minsk in 1987
    -
    1610 const uint8_t kZoneBufSizeEurope_Moscow = 5; // Europe/Moscow in 1987
    -
    1611 const uint8_t kZoneBufSizeEurope_Paris = 5; // Europe/Paris in 1983
    -
    1612 const uint8_t kZoneBufSizeEurope_Prague = 5; // Europe/Prague in 1983
    -
    1613 const uint8_t kZoneBufSizeEurope_Riga = 6; // Europe/Riga in 2001
    -
    1614 const uint8_t kZoneBufSizeEurope_Rome = 5; // Europe/Rome in 1983
    -
    1615 const uint8_t kZoneBufSizeEurope_Samara = 5; // Europe/Samara in 1987
    -
    1616 const uint8_t kZoneBufSizeEurope_Saratov = 5; // Europe/Saratov in 1987
    -
    1617 const uint8_t kZoneBufSizeEurope_Simferopol = 5; // Europe/Simferopol in 1983
    -
    1618 const uint8_t kZoneBufSizeEurope_Sofia = 5; // Europe/Sofia in 1983
    -
    1619 const uint8_t kZoneBufSizeEurope_Tallinn = 6; // Europe/Tallinn in 2002
    -
    1620 const uint8_t kZoneBufSizeEurope_Tirane = 5; // Europe/Tirane in 1983
    -
    1621 const uint8_t kZoneBufSizeEurope_Ulyanovsk = 5; // Europe/Ulyanovsk in 1987
    -
    1622 const uint8_t kZoneBufSizeEurope_Vienna = 5; // Europe/Vienna in 1983
    -
    1623 const uint8_t kZoneBufSizeEurope_Vilnius = 6; // Europe/Vilnius in 2003
    -
    1624 const uint8_t kZoneBufSizeEurope_Volgograd = 5; // Europe/Volgograd in 1987
    -
    1625 const uint8_t kZoneBufSizeEurope_Warsaw = 5; // Europe/Warsaw in 1983
    -
    1626 const uint8_t kZoneBufSizeEurope_Zurich = 5; // Europe/Zurich in 1983
    -
    1627 const uint8_t kZoneBufSizeIndian_Chagos = 1; // Indian/Chagos in 1949
    -
    1628 const uint8_t kZoneBufSizeIndian_Maldives = 1; // Indian/Maldives in 1949
    -
    1629 const uint8_t kZoneBufSizeIndian_Mauritius = 3; // Indian/Mauritius in 2008
    -
    1630 const uint8_t kZoneBufSizePacific_Apia = 5; // Pacific/Apia in 2011
    -
    1631 const uint8_t kZoneBufSizePacific_Auckland = 5; // Pacific/Auckland in 1992
    -
    1632 const uint8_t kZoneBufSizePacific_Bougainville = 2; // Pacific/Bougainville in 2014
    -
    1633 const uint8_t kZoneBufSizePacific_Chatham = 5; // Pacific/Chatham in 1992
    -
    1634 const uint8_t kZoneBufSizePacific_Easter = 5; // Pacific/Easter in 2002
    -
    1635 const uint8_t kZoneBufSizePacific_Efate = 2; // Pacific/Efate in 1949
    -
    1636 const uint8_t kZoneBufSizePacific_Fakaofo = 2; // Pacific/Fakaofo in 2011
    -
    1637 const uint8_t kZoneBufSizePacific_Fiji = 6; // Pacific/Fiji in 2017
    -
    1638 const uint8_t kZoneBufSizePacific_Galapagos = 2; // Pacific/Galapagos in 1949
    -
    1639 const uint8_t kZoneBufSizePacific_Gambier = 1; // Pacific/Gambier in 1949
    -
    1640 const uint8_t kZoneBufSizePacific_Guadalcanal = 1; // Pacific/Guadalcanal in 1949
    -
    1641 const uint8_t kZoneBufSizePacific_Guam = 2; // Pacific/Guam in 1949
    -
    1642 const uint8_t kZoneBufSizePacific_Honolulu = 1; // Pacific/Honolulu in 1949
    -
    1643 const uint8_t kZoneBufSizePacific_Kanton = 1; // Pacific/Kanton in 1949
    -
    1644 const uint8_t kZoneBufSizePacific_Kiritimati = 1; // Pacific/Kiritimati in 1949
    -
    1645 const uint8_t kZoneBufSizePacific_Kosrae = 2; // Pacific/Kosrae in 1998
    -
    1646 const uint8_t kZoneBufSizePacific_Kwajalein = 1; // Pacific/Kwajalein in 1949
    -
    1647 const uint8_t kZoneBufSizePacific_Marquesas = 1; // Pacific/Marquesas in 1949
    -
    1648 const uint8_t kZoneBufSizePacific_Nauru = 1; // Pacific/Nauru in 1949
    -
    1649 const uint8_t kZoneBufSizePacific_Niue = 1; // Pacific/Niue in 1949
    -
    1650 const uint8_t kZoneBufSizePacific_Norfolk = 4; // Pacific/Norfolk in 2019
    -
    1651 const uint8_t kZoneBufSizePacific_Noumea = 2; // Pacific/Noumea in 1949
    -
    1652 const uint8_t kZoneBufSizePacific_Pago_Pago = 1; // Pacific/Pago_Pago in 1949
    -
    1653 const uint8_t kZoneBufSizePacific_Palau = 1; // Pacific/Palau in 1949
    -
    1654 const uint8_t kZoneBufSizePacific_Pitcairn = 1; // Pacific/Pitcairn in 1949
    -
    1655 const uint8_t kZoneBufSizePacific_Port_Moresby = 1; // Pacific/Port_Moresby in 1949
    -
    1656 const uint8_t kZoneBufSizePacific_Rarotonga = 2; // Pacific/Rarotonga in 1949
    -
    1657 const uint8_t kZoneBufSizePacific_Tahiti = 1; // Pacific/Tahiti in 1949
    -
    1658 const uint8_t kZoneBufSizePacific_Tarawa = 1; // Pacific/Tarawa in 1949
    -
    1659 const uint8_t kZoneBufSizePacific_Tongatapu = 5; // Pacific/Tongatapu in 1999
    -
    1660 
    -
    1661 
    -
    1662 //---------------------------------------------------------------------------
    -
    1663 // Unsupported zones: 0
    -
    1664 //---------------------------------------------------------------------------
    -
    1665 
    -
    1666 
    -
    1667 
    -
    1668 //---------------------------------------------------------------------------
    -
    1669 // Notable zones: 101
    -
    1670 //---------------------------------------------------------------------------
    -
    1671 
    -
    1672 // Africa/Casablanca {
    -
    1673 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1674 // Morocco {SAVE '-1:00' is a negative DST}
    -
    1675 // }
    -
    1676 // Africa/El_Aaiun {
    -
    1677 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1678 // Morocco {SAVE '-1:00' is a negative DST}
    -
    1679 // }
    -
    1680 // Africa/Johannesburg {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1681 // Africa/Windhoek {
    -
    1682 // Namibia {
    -
    1683 // LETTER 'CAT' not single character,
    -
    1684 // LETTER 'WAT' not single character,
    -
    1685 // SAVE '-1:00' is a negative DST,
    -
    1686 // }
    -
    1687 // }
    -
    1688 // America/Araguaina {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1689 // America/Argentina/Buenos_Aires {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1690 // America/Argentina/Catamarca {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1691 // America/Argentina/Cordoba {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1692 // America/Argentina/Jujuy {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1693 // America/Argentina/La_Rioja {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1694 // America/Argentina/Mendoza {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1695 // America/Argentina/Rio_Gallegos {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1696 // America/Argentina/Salta {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1697 // America/Argentina/San_Juan {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1698 // America/Argentina/San_Luis {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1699 // America/Argentina/Tucuman {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1700 // America/Argentina/Ushuaia {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1701 // America/Asuncion {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1702 // America/Bahia {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1703 // America/Belize {
    -
    1704 // Belize {LETTER 'CST' not single character}
    -
    1705 // }
    -
    1706 // America/Boa_Vista {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1707 // America/Bogota {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1708 // America/Campo_Grande {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1709 // America/Coyhaique {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1710 // America/Cuiaba {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1711 // America/Fortaleza {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1712 // America/Goose_Bay {
    -
    1713 // StJohns {
    -
    1714 // AT '0:01' not multiple of :15 min,
    -
    1715 // LETTER 'DD' not single character,
    -
    1716 // SAVE '2:00' different from 1:00,
    -
    1717 // }
    -
    1718 // }
    -
    1719 // America/Guayaquil {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1720 // America/Lima {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1721 // America/Maceio {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1722 // America/Miquelon {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1723 // America/Moncton {
    -
    1724 // Moncton {AT '0:01' not multiple of :15 min}
    -
    1725 // }
    -
    1726 // America/Montevideo {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1727 // America/Noronha {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1728 // America/Nuuk {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1729 // America/Punta_Arenas {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1730 // America/Recife {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1731 // America/Santiago {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1732 // America/Sao_Paulo {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1733 // America/Scoresbysund {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1734 // America/St_Johns {
    -
    1735 // StJohns {
    -
    1736 // AT '0:01' not multiple of :15 min,
    -
    1737 // LETTER 'DD' not single character,
    -
    1738 // SAVE '2:00' different from 1:00,
    -
    1739 // }
    -
    1740 // }
    -
    1741 // Antarctica/Casey {UNTIL '0:01' not multiple of :15 min}
    -
    1742 // Antarctica/Palmer {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1743 // Antarctica/Troll {
    -
    1744 // Troll {
    -
    1745 // LETTER '+00' not single character,
    -
    1746 // LETTER '+02' not single character,
    -
    1747 // SAVE '2:00' different from 1:00,
    -
    1748 // }
    -
    1749 // }
    -
    1750 // Asia/Almaty {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1751 // Asia/Anadyr {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1752 // Asia/Aqtau {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1753 // Asia/Aqtobe {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1754 // Asia/Atyrau {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1755 // Asia/Baghdad {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1756 // Asia/Baku {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1757 // Asia/Barnaul {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1758 // Asia/Bishkek {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1759 // Asia/Chita {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1760 // Asia/Dhaka {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1761 // Asia/Gaza {
    -
    1762 // UNTIL '0:01' not multiple of :15 min,
    -
    1763 // Palestine {AT '0:01' not multiple of :15 min}
    -
    1764 // }
    -
    1765 // Asia/Hebron {
    -
    1766 // Palestine {AT '0:01' not multiple of :15 min}
    -
    1767 // }
    -
    1768 // Asia/Hovd {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1769 // Asia/Irkutsk {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1770 // Asia/Kamchatka {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1771 // Asia/Kathmandu {STDOFF '5:45' not multiple of :30 min}
    -
    1772 // Asia/Khandyga {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1773 // Asia/Krasnoyarsk {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1774 // Asia/Magadan {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1775 // Asia/Novokuznetsk {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1776 // Asia/Novosibirsk {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1777 // Asia/Omsk {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1778 // Asia/Oral {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1779 // Asia/Qostanay {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1780 // Asia/Qyzylorda {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1781 // Asia/Sakhalin {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1782 // Asia/Srednekolymsk {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1783 // Asia/Tbilisi {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1784 // Asia/Tehran {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1785 // Asia/Tomsk {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1786 // Asia/Ulaanbaatar {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1787 // Asia/Ust-Nera {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1788 // Asia/Vladivostok {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1789 // Asia/Yakutsk {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1790 // Asia/Yekaterinburg {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1791 // Asia/Yerevan {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1792 // Atlantic/Azores {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1793 // Atlantic/Stanley {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1794 // Australia/Eucla {
    -
    1795 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1796 // STDOFF '8:45' not multiple of :30 min,
    -
    1797 // }
    -
    1798 // Australia/Lord_Howe {
    -
    1799 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1800 // LH {SAVE '0:30' different from 1:00}
    -
    1801 // }
    -
    1802 // Europe/Astrakhan {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1803 // Europe/Dublin {
    -
    1804 // Eire {SAVE '-1:00' is a negative DST}
    -
    1805 // }
    -
    1806 // Europe/Samara {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1807 // Europe/Saratov {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1808 // Europe/Ulyanovsk {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1809 // Indian/Mauritius {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1810 // Pacific/Apia {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1811 // Pacific/Chatham {
    -
    1812 // RULES not fixed but FORMAT is missing '%s' or '/',
    -
    1813 // STDOFF '12:45' not multiple of :30 min,
    -
    1814 // }
    -
    1815 // Pacific/Easter {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1816 // Pacific/Efate {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1817 // Pacific/Fiji {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1818 // Pacific/Galapagos {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1819 // Pacific/Norfolk {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1820 // Pacific/Noumea {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1821 // Pacific/Rarotonga {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1822 // Pacific/Tongatapu {RULES not fixed but FORMAT is missing '%s' or '/'}
    -
    1823 
    -
    1824 
    -
    1825 //---------------------------------------------------------------------------
    -
    1826 // Unsupported links: 0
    -
    1827 //---------------------------------------------------------------------------
    -
    1828 
    -
    1829 
    -
    1830 
    -
    1831 //---------------------------------------------------------------------------
    -
    1832 // Notable links: 0
    -
    1833 //---------------------------------------------------------------------------
    -
    1834 
    -
    1835 
    -
    1836 
    -
    1837 }
    -
    1838 }
    -
    1839 
    -
    1840 #endif
    -
    - - - - diff --git a/docs/html/zonedbx_2zone__policies_8cpp_source.html b/docs/html/zonedbx_2zone__policies_8cpp_source.html deleted file mode 100644 index e66215195..000000000 --- a/docs/html/zonedbx_2zone__policies_8cpp_source.html +++ /dev/null @@ -1,10093 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/zone_policies.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace zonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2087]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2090]
    -
    40 // Max Buffer Size: 7
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 647
    -
    45 // Policies: 82
    -
    46 // Rules: 731
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 6579
    -
    51 // Policies: 246
    -
    52 // Eras: 7117
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 231
    -
    57 // Letters: 46
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 29000
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 8772
    -
    65 // Policies: 656
    -
    66 // Eras: 10352
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 231
    -
    71 // Letters: 64
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 42653
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #include <zoneinfo/compat.h>
    -
    79 #include "zone_policies.h"
    -
    80 
    -
    81 namespace ace_time {
    -
    82 namespace zonedbx {
    -
    83 
    -
    84 //---------------------------------------------------------------------------
    -
    85 // Policies: 82
    -
    86 // Rules: 731
    -
    87 //---------------------------------------------------------------------------
    -
    88 
    -
    89 //---------------------------------------------------------------------------
    -
    90 // Policy name: AN
    -
    91 // Rules: 10
    -
    92 //---------------------------------------------------------------------------
    -
    93 
    -
    94 static const extended::Info::ZoneRule kZoneRulesAN[] ACE_TIME_PROGMEM = {
    -
    95  // Anchor: Rule AN 1990 1995 - Mar Sun>=1 2:00s 0 S
    -
    96  {
    -
    97  -127 /*fromYearTiny (-32767)*/,
    -
    98  -127 /*toYearTiny (-32767)*/,
    -
    99  1 /*inMonth*/,
    -
    100  0 /*onDayOfWeek*/,
    -
    101  1 /*onDayOfMonth*/,
    -
    102  0 /*atTimeCode*/,
    -
    103  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    104  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    105  7 /*letterIndex ("S")*/,
    -
    106  },
    -
    107  // Rule AN 1987 1999 - Oct lastSun 2:00s 1:00 D
    -
    108  {
    -
    109  -113 /*fromYearTiny (1987)*/,
    -
    110  -101 /*toYearTiny (1999)*/,
    -
    111  10 /*inMonth*/,
    -
    112  7 /*onDayOfWeek*/,
    -
    113  0 /*onDayOfMonth*/,
    -
    114  8 /*atTimeCode*/,
    -
    115  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    116  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    117  5 /*letterIndex ("D")*/,
    -
    118  },
    -
    119  // Rule AN 1990 1995 - Mar Sun>=1 2:00s 0 S
    -
    120  {
    -
    121  -110 /*fromYearTiny (1990)*/,
    -
    122  -105 /*toYearTiny (1995)*/,
    -
    123  3 /*inMonth*/,
    -
    124  7 /*onDayOfWeek*/,
    -
    125  1 /*onDayOfMonth*/,
    -
    126  8 /*atTimeCode*/,
    -
    127  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    128  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    129  7 /*letterIndex ("S")*/,
    -
    130  },
    -
    131  // Rule AN 1996 2005 - Mar lastSun 2:00s 0 S
    -
    132  {
    -
    133  -104 /*fromYearTiny (1996)*/,
    -
    134  -95 /*toYearTiny (2005)*/,
    -
    135  3 /*inMonth*/,
    -
    136  7 /*onDayOfWeek*/,
    -
    137  0 /*onDayOfMonth*/,
    -
    138  8 /*atTimeCode*/,
    -
    139  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    140  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    141  7 /*letterIndex ("S")*/,
    -
    142  },
    -
    143  // Rule AN 2000 only - Aug lastSun 2:00s 1:00 D
    -
    144  {
    -
    145  -100 /*fromYearTiny (2000)*/,
    -
    146  -100 /*toYearTiny (2000)*/,
    -
    147  8 /*inMonth*/,
    -
    148  7 /*onDayOfWeek*/,
    -
    149  0 /*onDayOfMonth*/,
    -
    150  8 /*atTimeCode*/,
    -
    151  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    152  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    153  5 /*letterIndex ("D")*/,
    -
    154  },
    -
    155  // Rule AN 2001 2007 - Oct lastSun 2:00s 1:00 D
    -
    156  {
    -
    157  -99 /*fromYearTiny (2001)*/,
    -
    158  -93 /*toYearTiny (2007)*/,
    -
    159  10 /*inMonth*/,
    -
    160  7 /*onDayOfWeek*/,
    -
    161  0 /*onDayOfMonth*/,
    -
    162  8 /*atTimeCode*/,
    -
    163  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    164  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    165  5 /*letterIndex ("D")*/,
    -
    166  },
    -
    167  // Rule AN 2006 only - Apr Sun>=1 2:00s 0 S
    -
    168  {
    -
    169  -94 /*fromYearTiny (2006)*/,
    -
    170  -94 /*toYearTiny (2006)*/,
    -
    171  4 /*inMonth*/,
    -
    172  7 /*onDayOfWeek*/,
    -
    173  1 /*onDayOfMonth*/,
    -
    174  8 /*atTimeCode*/,
    -
    175  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    176  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    177  7 /*letterIndex ("S")*/,
    -
    178  },
    -
    179  // Rule AN 2007 only - Mar lastSun 2:00s 0 S
    -
    180  {
    -
    181  -93 /*fromYearTiny (2007)*/,
    -
    182  -93 /*toYearTiny (2007)*/,
    -
    183  3 /*inMonth*/,
    -
    184  7 /*onDayOfWeek*/,
    -
    185  0 /*onDayOfMonth*/,
    -
    186  8 /*atTimeCode*/,
    -
    187  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    188  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    189  7 /*letterIndex ("S")*/,
    -
    190  },
    -
    191  // Rule AN 2008 max - Apr Sun>=1 2:00s 0 S
    -
    192  {
    -
    193  -92 /*fromYearTiny (2008)*/,
    -
    194  126 /*toYearTiny (32766)*/,
    -
    195  4 /*inMonth*/,
    -
    196  7 /*onDayOfWeek*/,
    -
    197  1 /*onDayOfMonth*/,
    -
    198  8 /*atTimeCode*/,
    -
    199  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    200  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    201  7 /*letterIndex ("S")*/,
    -
    202  },
    -
    203  // Rule AN 2008 max - Oct Sun>=1 2:00s 1:00 D
    -
    204  {
    -
    205  -92 /*fromYearTiny (2008)*/,
    -
    206  126 /*toYearTiny (32766)*/,
    -
    207  10 /*inMonth*/,
    -
    208  7 /*onDayOfWeek*/,
    -
    209  1 /*onDayOfMonth*/,
    -
    210  8 /*atTimeCode*/,
    -
    211  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    212  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    213  5 /*letterIndex ("D")*/,
    -
    214  },
    -
    215 
    -
    216 };
    -
    217 
    -
    218 const extended::Info::ZonePolicy kZonePolicyAN ACE_TIME_PROGMEM = {
    -
    219  kZoneRulesAN /*rules*/,
    -
    220  10 /*numRules*/,
    -
    221 };
    -
    222 
    -
    223 //---------------------------------------------------------------------------
    -
    224 // Policy name: AQ
    -
    225 // Rules: 1
    -
    226 //---------------------------------------------------------------------------
    -
    227 
    -
    228 static const extended::Info::ZoneRule kZoneRulesAQ[] ACE_TIME_PROGMEM = {
    -
    229  // Anchor: Rule AQ 1990 1992 - Mar Sun>=1 2:00s 0 S
    -
    230  {
    -
    231  -127 /*fromYearTiny (-32767)*/,
    -
    232  -127 /*toYearTiny (-32767)*/,
    -
    233  1 /*inMonth*/,
    -
    234  0 /*onDayOfWeek*/,
    -
    235  1 /*onDayOfMonth*/,
    -
    236  0 /*atTimeCode*/,
    -
    237  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    238  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    239  7 /*letterIndex ("S")*/,
    -
    240  },
    -
    241 
    -
    242 };
    -
    243 
    -
    244 const extended::Info::ZonePolicy kZonePolicyAQ ACE_TIME_PROGMEM = {
    -
    245  kZoneRulesAQ /*rules*/,
    -
    246  1 /*numRules*/,
    -
    247 };
    -
    248 
    -
    249 //---------------------------------------------------------------------------
    -
    250 // Policy name: AS
    -
    251 // Rules: 8
    -
    252 //---------------------------------------------------------------------------
    -
    253 
    -
    254 static const extended::Info::ZoneRule kZoneRulesAS[] ACE_TIME_PROGMEM = {
    -
    255  // Anchor: Rule AS 1994 only - Mar 20 2:00s 0 S
    -
    256  {
    -
    257  -127 /*fromYearTiny (-32767)*/,
    -
    258  -127 /*toYearTiny (-32767)*/,
    -
    259  1 /*inMonth*/,
    -
    260  0 /*onDayOfWeek*/,
    -
    261  1 /*onDayOfMonth*/,
    -
    262  0 /*atTimeCode*/,
    -
    263  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    264  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    265  7 /*letterIndex ("S")*/,
    -
    266  },
    -
    267  // Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 D
    -
    268  {
    -
    269  -113 /*fromYearTiny (1987)*/,
    -
    270  -93 /*toYearTiny (2007)*/,
    -
    271  10 /*inMonth*/,
    -
    272  7 /*onDayOfWeek*/,
    -
    273  0 /*onDayOfMonth*/,
    -
    274  8 /*atTimeCode*/,
    -
    275  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    276  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    277  5 /*letterIndex ("D")*/,
    -
    278  },
    -
    279  // Rule AS 1994 only - Mar 20 2:00s 0 S
    -
    280  {
    -
    281  -106 /*fromYearTiny (1994)*/,
    -
    282  -106 /*toYearTiny (1994)*/,
    -
    283  3 /*inMonth*/,
    -
    284  0 /*onDayOfWeek*/,
    -
    285  20 /*onDayOfMonth*/,
    -
    286  8 /*atTimeCode*/,
    -
    287  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    288  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    289  7 /*letterIndex ("S")*/,
    -
    290  },
    -
    291  // Rule AS 1995 2005 - Mar lastSun 2:00s 0 S
    -
    292  {
    -
    293  -105 /*fromYearTiny (1995)*/,
    -
    294  -95 /*toYearTiny (2005)*/,
    -
    295  3 /*inMonth*/,
    -
    296  7 /*onDayOfWeek*/,
    -
    297  0 /*onDayOfMonth*/,
    -
    298  8 /*atTimeCode*/,
    -
    299  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    300  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    301  7 /*letterIndex ("S")*/,
    -
    302  },
    -
    303  // Rule AS 2006 only - Apr 2 2:00s 0 S
    -
    304  {
    -
    305  -94 /*fromYearTiny (2006)*/,
    -
    306  -94 /*toYearTiny (2006)*/,
    -
    307  4 /*inMonth*/,
    -
    308  0 /*onDayOfWeek*/,
    -
    309  2 /*onDayOfMonth*/,
    -
    310  8 /*atTimeCode*/,
    -
    311  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    312  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    313  7 /*letterIndex ("S")*/,
    -
    314  },
    -
    315  // Rule AS 2007 only - Mar lastSun 2:00s 0 S
    -
    316  {
    -
    317  -93 /*fromYearTiny (2007)*/,
    -
    318  -93 /*toYearTiny (2007)*/,
    -
    319  3 /*inMonth*/,
    -
    320  7 /*onDayOfWeek*/,
    -
    321  0 /*onDayOfMonth*/,
    -
    322  8 /*atTimeCode*/,
    -
    323  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    324  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    325  7 /*letterIndex ("S")*/,
    -
    326  },
    -
    327  // Rule AS 2008 max - Apr Sun>=1 2:00s 0 S
    -
    328  {
    -
    329  -92 /*fromYearTiny (2008)*/,
    -
    330  126 /*toYearTiny (32766)*/,
    -
    331  4 /*inMonth*/,
    -
    332  7 /*onDayOfWeek*/,
    -
    333  1 /*onDayOfMonth*/,
    -
    334  8 /*atTimeCode*/,
    -
    335  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    336  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    337  7 /*letterIndex ("S")*/,
    -
    338  },
    -
    339  // Rule AS 2008 max - Oct Sun>=1 2:00s 1:00 D
    -
    340  {
    -
    341  -92 /*fromYearTiny (2008)*/,
    -
    342  126 /*toYearTiny (32766)*/,
    -
    343  10 /*inMonth*/,
    -
    344  7 /*onDayOfWeek*/,
    -
    345  1 /*onDayOfMonth*/,
    -
    346  8 /*atTimeCode*/,
    -
    347  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    348  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    349  5 /*letterIndex ("D")*/,
    -
    350  },
    -
    351 
    -
    352 };
    -
    353 
    -
    354 const extended::Info::ZonePolicy kZonePolicyAS ACE_TIME_PROGMEM = {
    -
    355  kZoneRulesAS /*rules*/,
    -
    356  8 /*numRules*/,
    -
    357 };
    -
    358 
    -
    359 //---------------------------------------------------------------------------
    -
    360 // Policy name: AT
    -
    361 // Rules: 9
    -
    362 //---------------------------------------------------------------------------
    -
    363 
    -
    364 static const extended::Info::ZoneRule kZoneRulesAT[] ACE_TIME_PROGMEM = {
    -
    365  // Anchor: Rule AT 1991 2005 - Mar lastSun 2:00s 0 S
    -
    366  {
    -
    367  -127 /*fromYearTiny (-32767)*/,
    -
    368  -127 /*toYearTiny (-32767)*/,
    -
    369  1 /*inMonth*/,
    -
    370  0 /*onDayOfWeek*/,
    -
    371  1 /*onDayOfMonth*/,
    -
    372  0 /*atTimeCode*/,
    -
    373  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    374  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    375  7 /*letterIndex ("S")*/,
    -
    376  },
    -
    377  // Rule AT 1988 1990 - Oct lastSun 2:00s 1:00 D
    -
    378  {
    -
    379  -112 /*fromYearTiny (1988)*/,
    -
    380  -110 /*toYearTiny (1990)*/,
    -
    381  10 /*inMonth*/,
    -
    382  7 /*onDayOfWeek*/,
    -
    383  0 /*onDayOfMonth*/,
    -
    384  8 /*atTimeCode*/,
    -
    385  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    386  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    387  5 /*letterIndex ("D")*/,
    -
    388  },
    -
    389  // Rule AT 1991 1999 - Oct Sun>=1 2:00s 1:00 D
    -
    390  {
    -
    391  -109 /*fromYearTiny (1991)*/,
    -
    392  -101 /*toYearTiny (1999)*/,
    -
    393  10 /*inMonth*/,
    -
    394  7 /*onDayOfWeek*/,
    -
    395  1 /*onDayOfMonth*/,
    -
    396  8 /*atTimeCode*/,
    -
    397  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    398  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    399  5 /*letterIndex ("D")*/,
    -
    400  },
    -
    401  // Rule AT 1991 2005 - Mar lastSun 2:00s 0 S
    -
    402  {
    -
    403  -109 /*fromYearTiny (1991)*/,
    -
    404  -95 /*toYearTiny (2005)*/,
    -
    405  3 /*inMonth*/,
    -
    406  7 /*onDayOfWeek*/,
    -
    407  0 /*onDayOfMonth*/,
    -
    408  8 /*atTimeCode*/,
    -
    409  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    410  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    411  7 /*letterIndex ("S")*/,
    -
    412  },
    -
    413  // Rule AT 2000 only - Aug lastSun 2:00s 1:00 D
    -
    414  {
    -
    415  -100 /*fromYearTiny (2000)*/,
    -
    416  -100 /*toYearTiny (2000)*/,
    -
    417  8 /*inMonth*/,
    -
    418  7 /*onDayOfWeek*/,
    -
    419  0 /*onDayOfMonth*/,
    -
    420  8 /*atTimeCode*/,
    -
    421  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    422  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    423  5 /*letterIndex ("D")*/,
    -
    424  },
    -
    425  // Rule AT 2001 max - Oct Sun>=1 2:00s 1:00 D
    -
    426  {
    -
    427  -99 /*fromYearTiny (2001)*/,
    -
    428  126 /*toYearTiny (32766)*/,
    -
    429  10 /*inMonth*/,
    -
    430  7 /*onDayOfWeek*/,
    -
    431  1 /*onDayOfMonth*/,
    -
    432  8 /*atTimeCode*/,
    -
    433  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    434  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    435  5 /*letterIndex ("D")*/,
    -
    436  },
    -
    437  // Rule AT 2006 only - Apr Sun>=1 2:00s 0 S
    -
    438  {
    -
    439  -94 /*fromYearTiny (2006)*/,
    -
    440  -94 /*toYearTiny (2006)*/,
    -
    441  4 /*inMonth*/,
    -
    442  7 /*onDayOfWeek*/,
    -
    443  1 /*onDayOfMonth*/,
    -
    444  8 /*atTimeCode*/,
    -
    445  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    446  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    447  7 /*letterIndex ("S")*/,
    -
    448  },
    -
    449  // Rule AT 2007 only - Mar lastSun 2:00s 0 S
    -
    450  {
    -
    451  -93 /*fromYearTiny (2007)*/,
    -
    452  -93 /*toYearTiny (2007)*/,
    -
    453  3 /*inMonth*/,
    -
    454  7 /*onDayOfWeek*/,
    -
    455  0 /*onDayOfMonth*/,
    -
    456  8 /*atTimeCode*/,
    -
    457  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    458  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    459  7 /*letterIndex ("S")*/,
    -
    460  },
    -
    461  // Rule AT 2008 max - Apr Sun>=1 2:00s 0 S
    -
    462  {
    -
    463  -92 /*fromYearTiny (2008)*/,
    -
    464  126 /*toYearTiny (32766)*/,
    -
    465  4 /*inMonth*/,
    -
    466  7 /*onDayOfWeek*/,
    -
    467  1 /*onDayOfMonth*/,
    -
    468  8 /*atTimeCode*/,
    -
    469  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    470  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    471  7 /*letterIndex ("S")*/,
    -
    472  },
    -
    473 
    -
    474 };
    -
    475 
    -
    476 const extended::Info::ZonePolicy kZonePolicyAT ACE_TIME_PROGMEM = {
    -
    477  kZoneRulesAT /*rules*/,
    -
    478  9 /*numRules*/,
    -
    479 };
    -
    480 
    -
    481 //---------------------------------------------------------------------------
    -
    482 // Policy name: AV
    -
    483 // Rules: 10
    -
    484 //---------------------------------------------------------------------------
    -
    485 
    -
    486 static const extended::Info::ZoneRule kZoneRulesAV[] ACE_TIME_PROGMEM = {
    -
    487  // Anchor: Rule AV 1991 1994 - Mar Sun>=1 2:00s 0 S
    -
    488  {
    -
    489  -127 /*fromYearTiny (-32767)*/,
    -
    490  -127 /*toYearTiny (-32767)*/,
    -
    491  1 /*inMonth*/,
    -
    492  0 /*onDayOfWeek*/,
    -
    493  1 /*onDayOfMonth*/,
    -
    494  0 /*atTimeCode*/,
    -
    495  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    496  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    497  7 /*letterIndex ("S")*/,
    -
    498  },
    -
    499  // Rule AV 1988 1999 - Oct lastSun 2:00s 1:00 D
    -
    500  {
    -
    501  -112 /*fromYearTiny (1988)*/,
    -
    502  -101 /*toYearTiny (1999)*/,
    -
    503  10 /*inMonth*/,
    -
    504  7 /*onDayOfWeek*/,
    -
    505  0 /*onDayOfMonth*/,
    -
    506  8 /*atTimeCode*/,
    -
    507  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    508  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    509  5 /*letterIndex ("D")*/,
    -
    510  },
    -
    511  // Rule AV 1991 1994 - Mar Sun>=1 2:00s 0 S
    -
    512  {
    -
    513  -109 /*fromYearTiny (1991)*/,
    -
    514  -106 /*toYearTiny (1994)*/,
    -
    515  3 /*inMonth*/,
    -
    516  7 /*onDayOfWeek*/,
    -
    517  1 /*onDayOfMonth*/,
    -
    518  8 /*atTimeCode*/,
    -
    519  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    520  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    521  7 /*letterIndex ("S")*/,
    -
    522  },
    -
    523  // Rule AV 1995 2005 - Mar lastSun 2:00s 0 S
    -
    524  {
    -
    525  -105 /*fromYearTiny (1995)*/,
    -
    526  -95 /*toYearTiny (2005)*/,
    -
    527  3 /*inMonth*/,
    -
    528  7 /*onDayOfWeek*/,
    -
    529  0 /*onDayOfMonth*/,
    -
    530  8 /*atTimeCode*/,
    -
    531  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    532  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    533  7 /*letterIndex ("S")*/,
    -
    534  },
    -
    535  // Rule AV 2000 only - Aug lastSun 2:00s 1:00 D
    -
    536  {
    -
    537  -100 /*fromYearTiny (2000)*/,
    -
    538  -100 /*toYearTiny (2000)*/,
    -
    539  8 /*inMonth*/,
    -
    540  7 /*onDayOfWeek*/,
    -
    541  0 /*onDayOfMonth*/,
    -
    542  8 /*atTimeCode*/,
    -
    543  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    544  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    545  5 /*letterIndex ("D")*/,
    -
    546  },
    -
    547  // Rule AV 2001 2007 - Oct lastSun 2:00s 1:00 D
    -
    548  {
    -
    549  -99 /*fromYearTiny (2001)*/,
    -
    550  -93 /*toYearTiny (2007)*/,
    -
    551  10 /*inMonth*/,
    -
    552  7 /*onDayOfWeek*/,
    -
    553  0 /*onDayOfMonth*/,
    -
    554  8 /*atTimeCode*/,
    -
    555  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    556  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    557  5 /*letterIndex ("D")*/,
    -
    558  },
    -
    559  // Rule AV 2006 only - Apr Sun>=1 2:00s 0 S
    -
    560  {
    -
    561  -94 /*fromYearTiny (2006)*/,
    -
    562  -94 /*toYearTiny (2006)*/,
    -
    563  4 /*inMonth*/,
    -
    564  7 /*onDayOfWeek*/,
    -
    565  1 /*onDayOfMonth*/,
    -
    566  8 /*atTimeCode*/,
    -
    567  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    568  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    569  7 /*letterIndex ("S")*/,
    -
    570  },
    -
    571  // Rule AV 2007 only - Mar lastSun 2:00s 0 S
    -
    572  {
    -
    573  -93 /*fromYearTiny (2007)*/,
    -
    574  -93 /*toYearTiny (2007)*/,
    -
    575  3 /*inMonth*/,
    -
    576  7 /*onDayOfWeek*/,
    -
    577  0 /*onDayOfMonth*/,
    -
    578  8 /*atTimeCode*/,
    -
    579  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    580  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    581  7 /*letterIndex ("S")*/,
    -
    582  },
    -
    583  // Rule AV 2008 max - Apr Sun>=1 2:00s 0 S
    -
    584  {
    -
    585  -92 /*fromYearTiny (2008)*/,
    -
    586  126 /*toYearTiny (32766)*/,
    -
    587  4 /*inMonth*/,
    -
    588  7 /*onDayOfWeek*/,
    -
    589  1 /*onDayOfMonth*/,
    -
    590  8 /*atTimeCode*/,
    -
    591  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    592  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    593  7 /*letterIndex ("S")*/,
    -
    594  },
    -
    595  // Rule AV 2008 max - Oct Sun>=1 2:00s 1:00 D
    -
    596  {
    -
    597  -92 /*fromYearTiny (2008)*/,
    -
    598  126 /*toYearTiny (32766)*/,
    -
    599  10 /*inMonth*/,
    -
    600  7 /*onDayOfWeek*/,
    -
    601  1 /*onDayOfMonth*/,
    -
    602  8 /*atTimeCode*/,
    -
    603  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    604  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    605  5 /*letterIndex ("D")*/,
    -
    606  },
    -
    607 
    -
    608 };
    -
    609 
    -
    610 const extended::Info::ZonePolicy kZonePolicyAV ACE_TIME_PROGMEM = {
    -
    611  kZoneRulesAV /*rules*/,
    -
    612  10 /*numRules*/,
    -
    613 };
    -
    614 
    -
    615 //---------------------------------------------------------------------------
    -
    616 // Policy name: AW
    -
    617 // Rules: 5
    -
    618 //---------------------------------------------------------------------------
    -
    619 
    -
    620 static const extended::Info::ZoneRule kZoneRulesAW[] ACE_TIME_PROGMEM = {
    -
    621  // Anchor: Rule AW 1992 only - Mar Sun>=1 2:00s 0 S
    -
    622  {
    -
    623  -127 /*fromYearTiny (-32767)*/,
    -
    624  -127 /*toYearTiny (-32767)*/,
    -
    625  1 /*inMonth*/,
    -
    626  0 /*onDayOfWeek*/,
    -
    627  1 /*onDayOfMonth*/,
    -
    628  0 /*atTimeCode*/,
    -
    629  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    630  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    631  7 /*letterIndex ("S")*/,
    -
    632  },
    -
    633  // Rule AW 1992 only - Mar Sun>=1 2:00s 0 S
    -
    634  {
    -
    635  -108 /*fromYearTiny (1992)*/,
    -
    636  -108 /*toYearTiny (1992)*/,
    -
    637  3 /*inMonth*/,
    -
    638  7 /*onDayOfWeek*/,
    -
    639  1 /*onDayOfMonth*/,
    -
    640  8 /*atTimeCode*/,
    -
    641  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    642  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    643  7 /*letterIndex ("S")*/,
    -
    644  },
    -
    645  // Rule AW 2006 only - Dec 3 2:00s 1:00 D
    -
    646  {
    -
    647  -94 /*fromYearTiny (2006)*/,
    -
    648  -94 /*toYearTiny (2006)*/,
    -
    649  12 /*inMonth*/,
    -
    650  0 /*onDayOfWeek*/,
    -
    651  3 /*onDayOfMonth*/,
    -
    652  8 /*atTimeCode*/,
    -
    653  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    654  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    655  5 /*letterIndex ("D")*/,
    -
    656  },
    -
    657  // Rule AW 2007 2009 - Mar lastSun 2:00s 0 S
    -
    658  {
    -
    659  -93 /*fromYearTiny (2007)*/,
    -
    660  -91 /*toYearTiny (2009)*/,
    -
    661  3 /*inMonth*/,
    -
    662  7 /*onDayOfWeek*/,
    -
    663  0 /*onDayOfMonth*/,
    -
    664  8 /*atTimeCode*/,
    -
    665  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    666  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    667  7 /*letterIndex ("S")*/,
    -
    668  },
    -
    669  // Rule AW 2007 2008 - Oct lastSun 2:00s 1:00 D
    -
    670  {
    -
    671  -93 /*fromYearTiny (2007)*/,
    -
    672  -92 /*toYearTiny (2008)*/,
    -
    673  10 /*inMonth*/,
    -
    674  7 /*onDayOfWeek*/,
    -
    675  0 /*onDayOfMonth*/,
    -
    676  8 /*atTimeCode*/,
    -
    677  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    678  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    679  5 /*letterIndex ("D")*/,
    -
    680  },
    -
    681 
    -
    682 };
    -
    683 
    -
    684 const extended::Info::ZonePolicy kZonePolicyAW ACE_TIME_PROGMEM = {
    -
    685  kZoneRulesAW /*rules*/,
    -
    686  5 /*numRules*/,
    -
    687 };
    -
    688 
    -
    689 //---------------------------------------------------------------------------
    -
    690 // Policy name: Arg
    -
    691 // Rules: 7
    -
    692 //---------------------------------------------------------------------------
    -
    693 
    -
    694 static const extended::Info::ZoneRule kZoneRulesArg[] ACE_TIME_PROGMEM = {
    -
    695  // Anchor: Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 -
    -
    696  {
    -
    697  -127 /*fromYearTiny (-32767)*/,
    -
    698  -127 /*toYearTiny (-32767)*/,
    -
    699  1 /*inMonth*/,
    -
    700  0 /*onDayOfWeek*/,
    -
    701  1 /*onDayOfMonth*/,
    -
    702  0 /*atTimeCode*/,
    -
    703  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    704  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    705  0 /*letterIndex ("")*/,
    -
    706  },
    -
    707  // Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 -
    -
    708  {
    -
    709  -111 /*fromYearTiny (1989)*/,
    -
    710  -107 /*toYearTiny (1993)*/,
    -
    711  3 /*inMonth*/,
    -
    712  7 /*onDayOfWeek*/,
    -
    713  1 /*onDayOfMonth*/,
    -
    714  0 /*atTimeCode*/,
    -
    715  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    716  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    717  0 /*letterIndex ("")*/,
    -
    718  },
    -
    719  // Rule Arg 1999 only - Oct Sun>=1 0:00 1:00 -
    -
    720  {
    -
    721  -101 /*fromYearTiny (1999)*/,
    -
    722  -101 /*toYearTiny (1999)*/,
    -
    723  10 /*inMonth*/,
    -
    724  7 /*onDayOfWeek*/,
    -
    725  1 /*onDayOfMonth*/,
    -
    726  0 /*atTimeCode*/,
    -
    727  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    728  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    729  0 /*letterIndex ("")*/,
    -
    730  },
    -
    731  // Rule Arg 2000 only - Mar 3 0:00 0 -
    -
    732  {
    -
    733  -100 /*fromYearTiny (2000)*/,
    -
    734  -100 /*toYearTiny (2000)*/,
    -
    735  3 /*inMonth*/,
    -
    736  0 /*onDayOfWeek*/,
    -
    737  3 /*onDayOfMonth*/,
    -
    738  0 /*atTimeCode*/,
    -
    739  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    740  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    741  0 /*letterIndex ("")*/,
    -
    742  },
    -
    743  // Rule Arg 2007 only - Dec 30 0:00 1:00 -
    -
    744  {
    -
    745  -93 /*fromYearTiny (2007)*/,
    -
    746  -93 /*toYearTiny (2007)*/,
    -
    747  12 /*inMonth*/,
    -
    748  0 /*onDayOfWeek*/,
    -
    749  30 /*onDayOfMonth*/,
    -
    750  0 /*atTimeCode*/,
    -
    751  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    752  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    753  0 /*letterIndex ("")*/,
    -
    754  },
    -
    755  // Rule Arg 2008 2009 - Mar Sun>=15 0:00 0 -
    -
    756  {
    -
    757  -92 /*fromYearTiny (2008)*/,
    -
    758  -91 /*toYearTiny (2009)*/,
    -
    759  3 /*inMonth*/,
    -
    760  7 /*onDayOfWeek*/,
    -
    761  15 /*onDayOfMonth*/,
    -
    762  0 /*atTimeCode*/,
    -
    763  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    764  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    765  0 /*letterIndex ("")*/,
    -
    766  },
    -
    767  // Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 -
    -
    768  {
    -
    769  -92 /*fromYearTiny (2008)*/,
    -
    770  -92 /*toYearTiny (2008)*/,
    -
    771  10 /*inMonth*/,
    -
    772  7 /*onDayOfWeek*/,
    -
    773  15 /*onDayOfMonth*/,
    -
    774  0 /*atTimeCode*/,
    -
    775  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    776  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    777  0 /*letterIndex ("")*/,
    -
    778  },
    -
    779 
    -
    780 };
    -
    781 
    -
    782 const extended::Info::ZonePolicy kZonePolicyArg ACE_TIME_PROGMEM = {
    -
    783  kZoneRulesArg /*rules*/,
    -
    784  7 /*numRules*/,
    -
    785 };
    -
    786 
    -
    787 //---------------------------------------------------------------------------
    -
    788 // Policy name: Armenia
    -
    789 // Rules: 3
    -
    790 //---------------------------------------------------------------------------
    -
    791 
    -
    792 static const extended::Info::ZoneRule kZoneRulesArmenia[] ACE_TIME_PROGMEM = {
    -
    793  // Anchor: Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
    -
    794  {
    -
    795  -127 /*fromYearTiny (-32767)*/,
    -
    796  -127 /*toYearTiny (-32767)*/,
    -
    797  1 /*inMonth*/,
    -
    798  0 /*onDayOfWeek*/,
    -
    799  1 /*onDayOfMonth*/,
    -
    800  0 /*atTimeCode*/,
    -
    801  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    802  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    803  0 /*letterIndex ("")*/,
    -
    804  },
    -
    805  // Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 -
    -
    806  {
    -
    807  -89 /*fromYearTiny (2011)*/,
    -
    808  -89 /*toYearTiny (2011)*/,
    -
    809  3 /*inMonth*/,
    -
    810  7 /*onDayOfWeek*/,
    -
    811  0 /*onDayOfMonth*/,
    -
    812  8 /*atTimeCode*/,
    -
    813  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    814  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    815  0 /*letterIndex ("")*/,
    -
    816  },
    -
    817  // Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
    -
    818  {
    -
    819  -89 /*fromYearTiny (2011)*/,
    -
    820  -89 /*toYearTiny (2011)*/,
    -
    821  10 /*inMonth*/,
    -
    822  7 /*onDayOfWeek*/,
    -
    823  0 /*onDayOfMonth*/,
    -
    824  8 /*atTimeCode*/,
    -
    825  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    826  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    827  0 /*letterIndex ("")*/,
    -
    828  },
    -
    829 
    -
    830 };
    -
    831 
    -
    832 const extended::Info::ZonePolicy kZonePolicyArmenia ACE_TIME_PROGMEM = {
    -
    833  kZoneRulesArmenia /*rules*/,
    -
    834  3 /*numRules*/,
    -
    835 };
    -
    836 
    -
    837 //---------------------------------------------------------------------------
    -
    838 // Policy name: Aus
    -
    839 // Rules: 1
    -
    840 //---------------------------------------------------------------------------
    -
    841 
    -
    842 static const extended::Info::ZoneRule kZoneRulesAus[] ACE_TIME_PROGMEM = {
    -
    843  // Anchor: Rule Aus 1943 1944 - Mar lastSun 2:00s 0 S
    -
    844  {
    -
    845  -127 /*fromYearTiny (-32767)*/,
    -
    846  -127 /*toYearTiny (-32767)*/,
    -
    847  1 /*inMonth*/,
    -
    848  0 /*onDayOfWeek*/,
    -
    849  1 /*onDayOfMonth*/,
    -
    850  0 /*atTimeCode*/,
    -
    851  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    852  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    853  7 /*letterIndex ("S")*/,
    -
    854  },
    -
    855 
    -
    856 };
    -
    857 
    -
    858 const extended::Info::ZonePolicy kZonePolicyAus ACE_TIME_PROGMEM = {
    -
    859  kZoneRulesAus /*rules*/,
    -
    860  1 /*numRules*/,
    -
    861 };
    -
    862 
    -
    863 //---------------------------------------------------------------------------
    -
    864 // Policy name: Azer
    -
    865 // Rules: 3
    -
    866 //---------------------------------------------------------------------------
    -
    867 
    -
    868 static const extended::Info::ZoneRule kZoneRulesAzer[] ACE_TIME_PROGMEM = {
    -
    869  // Anchor: Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
    -
    870  {
    -
    871  -127 /*fromYearTiny (-32767)*/,
    -
    872  -127 /*toYearTiny (-32767)*/,
    -
    873  1 /*inMonth*/,
    -
    874  0 /*onDayOfWeek*/,
    -
    875  1 /*onDayOfMonth*/,
    -
    876  0 /*atTimeCode*/,
    -
    877  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    878  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    879  0 /*letterIndex ("")*/,
    -
    880  },
    -
    881  // Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 -
    -
    882  {
    -
    883  -103 /*fromYearTiny (1997)*/,
    -
    884  -85 /*toYearTiny (2015)*/,
    -
    885  3 /*inMonth*/,
    -
    886  7 /*onDayOfWeek*/,
    -
    887  0 /*onDayOfMonth*/,
    -
    888  16 /*atTimeCode*/,
    -
    889  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    890  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    891  0 /*letterIndex ("")*/,
    -
    892  },
    -
    893  // Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
    -
    894  {
    -
    895  -103 /*fromYearTiny (1997)*/,
    -
    896  -85 /*toYearTiny (2015)*/,
    -
    897  10 /*inMonth*/,
    -
    898  7 /*onDayOfWeek*/,
    -
    899  0 /*onDayOfMonth*/,
    -
    900  20 /*atTimeCode*/,
    -
    901  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    902  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    903  0 /*letterIndex ("")*/,
    -
    904  },
    -
    905 
    -
    906 };
    -
    907 
    -
    908 const extended::Info::ZonePolicy kZonePolicyAzer ACE_TIME_PROGMEM = {
    -
    909  kZoneRulesAzer /*rules*/,
    -
    910  3 /*numRules*/,
    -
    911 };
    -
    912 
    -
    913 //---------------------------------------------------------------------------
    -
    914 // Policy name: Barb
    -
    915 // Rules: 1
    -
    916 //---------------------------------------------------------------------------
    -
    917 
    -
    918 static const extended::Info::ZoneRule kZoneRulesBarb[] ACE_TIME_PROGMEM = {
    -
    919  // Anchor: Rule Barb 1980 only - Sep 25 2:00 0 S
    -
    920  {
    -
    921  -127 /*fromYearTiny (-32767)*/,
    -
    922  -127 /*toYearTiny (-32767)*/,
    -
    923  1 /*inMonth*/,
    -
    924  0 /*onDayOfWeek*/,
    -
    925  1 /*onDayOfMonth*/,
    -
    926  0 /*atTimeCode*/,
    -
    927  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    928  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    929  7 /*letterIndex ("S")*/,
    -
    930  },
    -
    931 
    -
    932 };
    -
    933 
    -
    934 const extended::Info::ZonePolicy kZonePolicyBarb ACE_TIME_PROGMEM = {
    -
    935  kZoneRulesBarb /*rules*/,
    -
    936  1 /*numRules*/,
    -
    937 };
    -
    938 
    -
    939 //---------------------------------------------------------------------------
    -
    940 // Policy name: Belize
    -
    941 // Rules: 1
    -
    942 //---------------------------------------------------------------------------
    -
    943 
    -
    944 static const extended::Info::ZoneRule kZoneRulesBelize[] ACE_TIME_PROGMEM = {
    -
    945  // Anchor: Rule Belize 1983 only - Feb 12 0:00 0 CST
    -
    946  {
    -
    947  -127 /*fromYearTiny (-32767)*/,
    -
    948  -127 /*toYearTiny (-32767)*/,
    -
    949  1 /*inMonth*/,
    -
    950  0 /*onDayOfWeek*/,
    -
    951  1 /*onDayOfMonth*/,
    -
    952  0 /*atTimeCode*/,
    -
    953  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    954  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    955  4 /*letterIndex ("CST")*/,
    -
    956  },
    -
    957 
    -
    958 };
    -
    959 
    -
    960 const extended::Info::ZonePolicy kZonePolicyBelize ACE_TIME_PROGMEM = {
    -
    961  kZoneRulesBelize /*rules*/,
    -
    962  1 /*numRules*/,
    -
    963 };
    -
    964 
    -
    965 //---------------------------------------------------------------------------
    -
    966 // Policy name: Brazil
    -
    967 // Rules: 21
    -
    968 //---------------------------------------------------------------------------
    -
    969 
    -
    970 static const extended::Info::ZoneRule kZoneRulesBrazil[] ACE_TIME_PROGMEM = {
    -
    971  // Anchor: Rule Brazil 1999 only - Feb 21 0:00 0 -
    -
    972  {
    -
    973  -127 /*fromYearTiny (-32767)*/,
    -
    974  -127 /*toYearTiny (-32767)*/,
    -
    975  1 /*inMonth*/,
    -
    976  0 /*onDayOfWeek*/,
    -
    977  1 /*onDayOfMonth*/,
    -
    978  0 /*atTimeCode*/,
    -
    979  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    980  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    981  0 /*letterIndex ("")*/,
    -
    982  },
    -
    983  // Rule Brazil 1998 only - Oct 11 0:00 1:00 -
    -
    984  {
    -
    985  -102 /*fromYearTiny (1998)*/,
    -
    986  -102 /*toYearTiny (1998)*/,
    -
    987  10 /*inMonth*/,
    -
    988  0 /*onDayOfWeek*/,
    -
    989  11 /*onDayOfMonth*/,
    -
    990  0 /*atTimeCode*/,
    -
    991  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    992  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    993  0 /*letterIndex ("")*/,
    -
    994  },
    -
    995  // Rule Brazil 1999 only - Feb 21 0:00 0 -
    -
    996  {
    -
    997  -101 /*fromYearTiny (1999)*/,
    -
    998  -101 /*toYearTiny (1999)*/,
    -
    999  2 /*inMonth*/,
    -
    1000  0 /*onDayOfWeek*/,
    -
    1001  21 /*onDayOfMonth*/,
    -
    1002  0 /*atTimeCode*/,
    -
    1003  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1004  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1005  0 /*letterIndex ("")*/,
    -
    1006  },
    -
    1007  // Rule Brazil 1999 only - Oct 3 0:00 1:00 -
    -
    1008  {
    -
    1009  -101 /*fromYearTiny (1999)*/,
    -
    1010  -101 /*toYearTiny (1999)*/,
    -
    1011  10 /*inMonth*/,
    -
    1012  0 /*onDayOfWeek*/,
    -
    1013  3 /*onDayOfMonth*/,
    -
    1014  0 /*atTimeCode*/,
    -
    1015  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1016  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1017  0 /*letterIndex ("")*/,
    -
    1018  },
    -
    1019  // Rule Brazil 2000 only - Feb 27 0:00 0 -
    -
    1020  {
    -
    1021  -100 /*fromYearTiny (2000)*/,
    -
    1022  -100 /*toYearTiny (2000)*/,
    -
    1023  2 /*inMonth*/,
    -
    1024  0 /*onDayOfWeek*/,
    -
    1025  27 /*onDayOfMonth*/,
    -
    1026  0 /*atTimeCode*/,
    -
    1027  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1028  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1029  0 /*letterIndex ("")*/,
    -
    1030  },
    -
    1031  // Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 -
    -
    1032  {
    -
    1033  -100 /*fromYearTiny (2000)*/,
    -
    1034  -99 /*toYearTiny (2001)*/,
    -
    1035  10 /*inMonth*/,
    -
    1036  7 /*onDayOfWeek*/,
    -
    1037  8 /*onDayOfMonth*/,
    -
    1038  0 /*atTimeCode*/,
    -
    1039  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1040  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1041  0 /*letterIndex ("")*/,
    -
    1042  },
    -
    1043  // Rule Brazil 2001 2006 - Feb Sun>=15 0:00 0 -
    -
    1044  {
    -
    1045  -99 /*fromYearTiny (2001)*/,
    -
    1046  -94 /*toYearTiny (2006)*/,
    -
    1047  2 /*inMonth*/,
    -
    1048  7 /*onDayOfWeek*/,
    -
    1049  15 /*onDayOfMonth*/,
    -
    1050  0 /*atTimeCode*/,
    -
    1051  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1052  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1053  0 /*letterIndex ("")*/,
    -
    1054  },
    -
    1055  // Rule Brazil 2002 only - Nov 3 0:00 1:00 -
    -
    1056  {
    -
    1057  -98 /*fromYearTiny (2002)*/,
    -
    1058  -98 /*toYearTiny (2002)*/,
    -
    1059  11 /*inMonth*/,
    -
    1060  0 /*onDayOfWeek*/,
    -
    1061  3 /*onDayOfMonth*/,
    -
    1062  0 /*atTimeCode*/,
    -
    1063  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1064  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1065  0 /*letterIndex ("")*/,
    -
    1066  },
    -
    1067  // Rule Brazil 2003 only - Oct 19 0:00 1:00 -
    -
    1068  {
    -
    1069  -97 /*fromYearTiny (2003)*/,
    -
    1070  -97 /*toYearTiny (2003)*/,
    -
    1071  10 /*inMonth*/,
    -
    1072  0 /*onDayOfWeek*/,
    -
    1073  19 /*onDayOfMonth*/,
    -
    1074  0 /*atTimeCode*/,
    -
    1075  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1076  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1077  0 /*letterIndex ("")*/,
    -
    1078  },
    -
    1079  // Rule Brazil 2004 only - Nov 2 0:00 1:00 -
    -
    1080  {
    -
    1081  -96 /*fromYearTiny (2004)*/,
    -
    1082  -96 /*toYearTiny (2004)*/,
    -
    1083  11 /*inMonth*/,
    -
    1084  0 /*onDayOfWeek*/,
    -
    1085  2 /*onDayOfMonth*/,
    -
    1086  0 /*atTimeCode*/,
    -
    1087  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1088  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1089  0 /*letterIndex ("")*/,
    -
    1090  },
    -
    1091  // Rule Brazil 2005 only - Oct 16 0:00 1:00 -
    -
    1092  {
    -
    1093  -95 /*fromYearTiny (2005)*/,
    -
    1094  -95 /*toYearTiny (2005)*/,
    -
    1095  10 /*inMonth*/,
    -
    1096  0 /*onDayOfWeek*/,
    -
    1097  16 /*onDayOfMonth*/,
    -
    1098  0 /*atTimeCode*/,
    -
    1099  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1100  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1101  0 /*letterIndex ("")*/,
    -
    1102  },
    -
    1103  // Rule Brazil 2006 only - Nov 5 0:00 1:00 -
    -
    1104  {
    -
    1105  -94 /*fromYearTiny (2006)*/,
    -
    1106  -94 /*toYearTiny (2006)*/,
    -
    1107  11 /*inMonth*/,
    -
    1108  0 /*onDayOfWeek*/,
    -
    1109  5 /*onDayOfMonth*/,
    -
    1110  0 /*atTimeCode*/,
    -
    1111  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1112  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1113  0 /*letterIndex ("")*/,
    -
    1114  },
    -
    1115  // Rule Brazil 2007 only - Feb 25 0:00 0 -
    -
    1116  {
    -
    1117  -93 /*fromYearTiny (2007)*/,
    -
    1118  -93 /*toYearTiny (2007)*/,
    -
    1119  2 /*inMonth*/,
    -
    1120  0 /*onDayOfWeek*/,
    -
    1121  25 /*onDayOfMonth*/,
    -
    1122  0 /*atTimeCode*/,
    -
    1123  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1124  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1125  0 /*letterIndex ("")*/,
    -
    1126  },
    -
    1127  // Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 -
    -
    1128  {
    -
    1129  -93 /*fromYearTiny (2007)*/,
    -
    1130  -93 /*toYearTiny (2007)*/,
    -
    1131  10 /*inMonth*/,
    -
    1132  7 /*onDayOfWeek*/,
    -
    1133  8 /*onDayOfMonth*/,
    -
    1134  0 /*atTimeCode*/,
    -
    1135  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1136  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1137  0 /*letterIndex ("")*/,
    -
    1138  },
    -
    1139  // Rule Brazil 2008 2017 - Oct Sun>=15 0:00 1:00 -
    -
    1140  {
    -
    1141  -92 /*fromYearTiny (2008)*/,
    -
    1142  -83 /*toYearTiny (2017)*/,
    -
    1143  10 /*inMonth*/,
    -
    1144  7 /*onDayOfWeek*/,
    -
    1145  15 /*onDayOfMonth*/,
    -
    1146  0 /*atTimeCode*/,
    -
    1147  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1148  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1149  0 /*letterIndex ("")*/,
    -
    1150  },
    -
    1151  // Rule Brazil 2008 2011 - Feb Sun>=15 0:00 0 -
    -
    1152  {
    -
    1153  -92 /*fromYearTiny (2008)*/,
    -
    1154  -89 /*toYearTiny (2011)*/,
    -
    1155  2 /*inMonth*/,
    -
    1156  7 /*onDayOfWeek*/,
    -
    1157  15 /*onDayOfMonth*/,
    -
    1158  0 /*atTimeCode*/,
    -
    1159  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1160  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1161  0 /*letterIndex ("")*/,
    -
    1162  },
    -
    1163  // Rule Brazil 2012 only - Feb Sun>=22 0:00 0 -
    -
    1164  {
    -
    1165  -88 /*fromYearTiny (2012)*/,
    -
    1166  -88 /*toYearTiny (2012)*/,
    -
    1167  2 /*inMonth*/,
    -
    1168  7 /*onDayOfWeek*/,
    -
    1169  22 /*onDayOfMonth*/,
    -
    1170  0 /*atTimeCode*/,
    -
    1171  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1172  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1173  0 /*letterIndex ("")*/,
    -
    1174  },
    -
    1175  // Rule Brazil 2013 2014 - Feb Sun>=15 0:00 0 -
    -
    1176  {
    -
    1177  -87 /*fromYearTiny (2013)*/,
    -
    1178  -86 /*toYearTiny (2014)*/,
    -
    1179  2 /*inMonth*/,
    -
    1180  7 /*onDayOfWeek*/,
    -
    1181  15 /*onDayOfMonth*/,
    -
    1182  0 /*atTimeCode*/,
    -
    1183  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1184  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1185  0 /*letterIndex ("")*/,
    -
    1186  },
    -
    1187  // Rule Brazil 2015 only - Feb Sun>=22 0:00 0 -
    -
    1188  {
    -
    1189  -85 /*fromYearTiny (2015)*/,
    -
    1190  -85 /*toYearTiny (2015)*/,
    -
    1191  2 /*inMonth*/,
    -
    1192  7 /*onDayOfWeek*/,
    -
    1193  22 /*onDayOfMonth*/,
    -
    1194  0 /*atTimeCode*/,
    -
    1195  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1196  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1197  0 /*letterIndex ("")*/,
    -
    1198  },
    -
    1199  // Rule Brazil 2016 2019 - Feb Sun>=15 0:00 0 -
    -
    1200  {
    -
    1201  -84 /*fromYearTiny (2016)*/,
    -
    1202  -81 /*toYearTiny (2019)*/,
    -
    1203  2 /*inMonth*/,
    -
    1204  7 /*onDayOfWeek*/,
    -
    1205  15 /*onDayOfMonth*/,
    -
    1206  0 /*atTimeCode*/,
    -
    1207  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1208  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1209  0 /*letterIndex ("")*/,
    -
    1210  },
    -
    1211  // Rule Brazil 2018 only - Nov Sun>=1 0:00 1:00 -
    -
    1212  {
    -
    1213  -82 /*fromYearTiny (2018)*/,
    -
    1214  -82 /*toYearTiny (2018)*/,
    -
    1215  11 /*inMonth*/,
    -
    1216  7 /*onDayOfWeek*/,
    -
    1217  1 /*onDayOfMonth*/,
    -
    1218  0 /*atTimeCode*/,
    -
    1219  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1220  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1221  0 /*letterIndex ("")*/,
    -
    1222  },
    -
    1223 
    -
    1224 };
    -
    1225 
    -
    1226 const extended::Info::ZonePolicy kZonePolicyBrazil ACE_TIME_PROGMEM = {
    -
    1227  kZoneRulesBrazil /*rules*/,
    -
    1228  21 /*numRules*/,
    -
    1229 };
    -
    1230 
    -
    1231 //---------------------------------------------------------------------------
    -
    1232 // Policy name: CO
    -
    1233 // Rules: 1
    -
    1234 //---------------------------------------------------------------------------
    -
    1235 
    -
    1236 static const extended::Info::ZoneRule kZoneRulesCO[] ACE_TIME_PROGMEM = {
    -
    1237  // Anchor: Rule CO 1993 only - Feb 6 24:00 0 -
    -
    1238  {
    -
    1239  -127 /*fromYearTiny (-32767)*/,
    -
    1240  -127 /*toYearTiny (-32767)*/,
    -
    1241  1 /*inMonth*/,
    -
    1242  0 /*onDayOfWeek*/,
    -
    1243  1 /*onDayOfMonth*/,
    -
    1244  0 /*atTimeCode*/,
    -
    1245  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1246  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1247  0 /*letterIndex ("")*/,
    -
    1248  },
    -
    1249 
    -
    1250 };
    -
    1251 
    -
    1252 const extended::Info::ZonePolicy kZonePolicyCO ACE_TIME_PROGMEM = {
    -
    1253  kZoneRulesCO /*rules*/,
    -
    1254  1 /*numRules*/,
    -
    1255 };
    -
    1256 
    -
    1257 //---------------------------------------------------------------------------
    -
    1258 // Policy name: CR
    -
    1259 // Rules: 1
    -
    1260 //---------------------------------------------------------------------------
    -
    1261 
    -
    1262 static const extended::Info::ZoneRule kZoneRulesCR[] ACE_TIME_PROGMEM = {
    -
    1263  // Anchor: Rule CR 1992 only - Mar 15 0:00 0 S
    -
    1264  {
    -
    1265  -127 /*fromYearTiny (-32767)*/,
    -
    1266  -127 /*toYearTiny (-32767)*/,
    -
    1267  1 /*inMonth*/,
    -
    1268  0 /*onDayOfWeek*/,
    -
    1269  1 /*onDayOfMonth*/,
    -
    1270  0 /*atTimeCode*/,
    -
    1271  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1272  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1273  7 /*letterIndex ("S")*/,
    -
    1274  },
    -
    1275 
    -
    1276 };
    -
    1277 
    -
    1278 const extended::Info::ZonePolicy kZonePolicyCR ACE_TIME_PROGMEM = {
    -
    1279  kZoneRulesCR /*rules*/,
    -
    1280  1 /*numRules*/,
    -
    1281 };
    -
    1282 
    -
    1283 //---------------------------------------------------------------------------
    -
    1284 // Policy name: Canada
    -
    1285 // Rules: 6
    -
    1286 //---------------------------------------------------------------------------
    -
    1287 
    -
    1288 static const extended::Info::ZoneRule kZoneRulesCanada[] ACE_TIME_PROGMEM = {
    -
    1289  // Anchor: Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
    -
    1290  {
    -
    1291  -127 /*fromYearTiny (-32767)*/,
    -
    1292  -127 /*toYearTiny (-32767)*/,
    -
    1293  1 /*inMonth*/,
    -
    1294  0 /*onDayOfWeek*/,
    -
    1295  1 /*onDayOfMonth*/,
    -
    1296  0 /*atTimeCode*/,
    -
    1297  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1298  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1299  7 /*letterIndex ("S")*/,
    -
    1300  },
    -
    1301  // Rule Canada 1974 1986 - Apr lastSun 2:00 1:00 D
    -
    1302  {
    -
    1303  -126 /*fromYearTiny (1974)*/,
    -
    1304  -114 /*toYearTiny (1986)*/,
    -
    1305  4 /*inMonth*/,
    -
    1306  7 /*onDayOfWeek*/,
    -
    1307  0 /*onDayOfMonth*/,
    -
    1308  8 /*atTimeCode*/,
    -
    1309  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1310  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1311  5 /*letterIndex ("D")*/,
    -
    1312  },
    -
    1313  // Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
    -
    1314  {
    -
    1315  -126 /*fromYearTiny (1974)*/,
    -
    1316  -94 /*toYearTiny (2006)*/,
    -
    1317  10 /*inMonth*/,
    -
    1318  7 /*onDayOfWeek*/,
    -
    1319  0 /*onDayOfMonth*/,
    -
    1320  8 /*atTimeCode*/,
    -
    1321  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1322  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1323  7 /*letterIndex ("S")*/,
    -
    1324  },
    -
    1325  // Rule Canada 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    1326  {
    -
    1327  -113 /*fromYearTiny (1987)*/,
    -
    1328  -94 /*toYearTiny (2006)*/,
    -
    1329  4 /*inMonth*/,
    -
    1330  7 /*onDayOfWeek*/,
    -
    1331  1 /*onDayOfMonth*/,
    -
    1332  8 /*atTimeCode*/,
    -
    1333  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1334  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1335  5 /*letterIndex ("D")*/,
    -
    1336  },
    -
    1337  // Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    1338  {
    -
    1339  -93 /*fromYearTiny (2007)*/,
    -
    1340  126 /*toYearTiny (32766)*/,
    -
    1341  3 /*inMonth*/,
    -
    1342  7 /*onDayOfWeek*/,
    -
    1343  8 /*onDayOfMonth*/,
    -
    1344  8 /*atTimeCode*/,
    -
    1345  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1346  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1347  5 /*letterIndex ("D")*/,
    -
    1348  },
    -
    1349  // Rule Canada 2007 max - Nov Sun>=1 2:00 0 S
    -
    1350  {
    -
    1351  -93 /*fromYearTiny (2007)*/,
    -
    1352  126 /*toYearTiny (32766)*/,
    -
    1353  11 /*inMonth*/,
    -
    1354  7 /*onDayOfWeek*/,
    -
    1355  1 /*onDayOfMonth*/,
    -
    1356  8 /*atTimeCode*/,
    -
    1357  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1358  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1359  7 /*letterIndex ("S")*/,
    -
    1360  },
    -
    1361 
    -
    1362 };
    -
    1363 
    -
    1364 const extended::Info::ZonePolicy kZonePolicyCanada ACE_TIME_PROGMEM = {
    -
    1365  kZoneRulesCanada /*rules*/,
    -
    1366  6 /*numRules*/,
    -
    1367 };
    -
    1368 
    -
    1369 //---------------------------------------------------------------------------
    -
    1370 // Policy name: Chatham
    -
    1371 // Rules: 6
    -
    1372 //---------------------------------------------------------------------------
    -
    1373 
    -
    1374 static const extended::Info::ZoneRule kZoneRulesChatham[] ACE_TIME_PROGMEM = {
    -
    1375  // Anchor: Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 -
    -
    1376  {
    -
    1377  -127 /*fromYearTiny (-32767)*/,
    -
    1378  -127 /*toYearTiny (-32767)*/,
    -
    1379  1 /*inMonth*/,
    -
    1380  0 /*onDayOfWeek*/,
    -
    1381  1 /*onDayOfMonth*/,
    -
    1382  0 /*atTimeCode*/,
    -
    1383  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1384  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1385  0 /*letterIndex ("")*/,
    -
    1386  },
    -
    1387  // Rule Chatham 1989 only - Oct Sun>=8 2:45s 1:00 -
    -
    1388  {
    -
    1389  -111 /*fromYearTiny (1989)*/,
    -
    1390  -111 /*toYearTiny (1989)*/,
    -
    1391  10 /*inMonth*/,
    -
    1392  7 /*onDayOfWeek*/,
    -
    1393  8 /*onDayOfMonth*/,
    -
    1394  11 /*atTimeCode*/,
    -
    1395  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1396  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1397  0 /*letterIndex ("")*/,
    -
    1398  },
    -
    1399  // Rule Chatham 1990 2006 - Oct Sun>=1 2:45s 1:00 -
    -
    1400  {
    -
    1401  -110 /*fromYearTiny (1990)*/,
    -
    1402  -94 /*toYearTiny (2006)*/,
    -
    1403  10 /*inMonth*/,
    -
    1404  7 /*onDayOfWeek*/,
    -
    1405  1 /*onDayOfMonth*/,
    -
    1406  11 /*atTimeCode*/,
    -
    1407  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1408  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1409  0 /*letterIndex ("")*/,
    -
    1410  },
    -
    1411  // Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 -
    -
    1412  {
    -
    1413  -110 /*fromYearTiny (1990)*/,
    -
    1414  -93 /*toYearTiny (2007)*/,
    -
    1415  3 /*inMonth*/,
    -
    1416  7 /*onDayOfWeek*/,
    -
    1417  15 /*onDayOfMonth*/,
    -
    1418  11 /*atTimeCode*/,
    -
    1419  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1420  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1421  0 /*letterIndex ("")*/,
    -
    1422  },
    -
    1423  // Rule Chatham 2007 max - Sep lastSun 2:45s 1:00 -
    -
    1424  {
    -
    1425  -93 /*fromYearTiny (2007)*/,
    -
    1426  126 /*toYearTiny (32766)*/,
    -
    1427  9 /*inMonth*/,
    -
    1428  7 /*onDayOfWeek*/,
    -
    1429  0 /*onDayOfMonth*/,
    -
    1430  11 /*atTimeCode*/,
    -
    1431  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1432  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1433  0 /*letterIndex ("")*/,
    -
    1434  },
    -
    1435  // Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 -
    -
    1436  {
    -
    1437  -92 /*fromYearTiny (2008)*/,
    -
    1438  126 /*toYearTiny (32766)*/,
    -
    1439  4 /*inMonth*/,
    -
    1440  7 /*onDayOfWeek*/,
    -
    1441  1 /*onDayOfMonth*/,
    -
    1442  11 /*atTimeCode*/,
    -
    1443  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1444  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1445  0 /*letterIndex ("")*/,
    -
    1446  },
    -
    1447 
    -
    1448 };
    -
    1449 
    -
    1450 const extended::Info::ZonePolicy kZonePolicyChatham ACE_TIME_PROGMEM = {
    -
    1451  kZoneRulesChatham /*rules*/,
    -
    1452  6 /*numRules*/,
    -
    1453 };
    -
    1454 
    -
    1455 //---------------------------------------------------------------------------
    -
    1456 // Policy name: Chile
    -
    1457 // Rules: 18
    -
    1458 //---------------------------------------------------------------------------
    -
    1459 
    -
    1460 static const extended::Info::ZoneRule kZoneRulesChile[] ACE_TIME_PROGMEM = {
    -
    1461  // Anchor: Rule Chile 1999 only - Apr 4 3:00u 0 -
    -
    1462  {
    -
    1463  -127 /*fromYearTiny (-32767)*/,
    -
    1464  -127 /*toYearTiny (-32767)*/,
    -
    1465  1 /*inMonth*/,
    -
    1466  0 /*onDayOfWeek*/,
    -
    1467  1 /*onDayOfMonth*/,
    -
    1468  0 /*atTimeCode*/,
    -
    1469  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1470  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1471  0 /*letterIndex ("")*/,
    -
    1472  },
    -
    1473  // Rule Chile 1998 only - Sep 27 4:00u 1:00 -
    -
    1474  {
    -
    1475  -102 /*fromYearTiny (1998)*/,
    -
    1476  -102 /*toYearTiny (1998)*/,
    -
    1477  9 /*inMonth*/,
    -
    1478  0 /*onDayOfWeek*/,
    -
    1479  27 /*onDayOfMonth*/,
    -
    1480  16 /*atTimeCode*/,
    -
    1481  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1482  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1483  0 /*letterIndex ("")*/,
    -
    1484  },
    -
    1485  // Rule Chile 1999 only - Apr 4 3:00u 0 -
    -
    1486  {
    -
    1487  -101 /*fromYearTiny (1999)*/,
    -
    1488  -101 /*toYearTiny (1999)*/,
    -
    1489  4 /*inMonth*/,
    -
    1490  0 /*onDayOfWeek*/,
    -
    1491  4 /*onDayOfMonth*/,
    -
    1492  12 /*atTimeCode*/,
    -
    1493  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1494  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1495  0 /*letterIndex ("")*/,
    -
    1496  },
    -
    1497  // Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 -
    -
    1498  {
    -
    1499  -101 /*fromYearTiny (1999)*/,
    -
    1500  -90 /*toYearTiny (2010)*/,
    -
    1501  10 /*inMonth*/,
    -
    1502  7 /*onDayOfWeek*/,
    -
    1503  9 /*onDayOfMonth*/,
    -
    1504  16 /*atTimeCode*/,
    -
    1505  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1506  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1507  0 /*letterIndex ("")*/,
    -
    1508  },
    -
    1509  // Rule Chile 2000 2007 - Mar Sun>=9 3:00u 0 -
    -
    1510  {
    -
    1511  -100 /*fromYearTiny (2000)*/,
    -
    1512  -93 /*toYearTiny (2007)*/,
    -
    1513  3 /*inMonth*/,
    -
    1514  7 /*onDayOfWeek*/,
    -
    1515  9 /*onDayOfMonth*/,
    -
    1516  12 /*atTimeCode*/,
    -
    1517  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1518  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1519  0 /*letterIndex ("")*/,
    -
    1520  },
    -
    1521  // Rule Chile 2008 only - Mar 30 3:00u 0 -
    -
    1522  {
    -
    1523  -92 /*fromYearTiny (2008)*/,
    -
    1524  -92 /*toYearTiny (2008)*/,
    -
    1525  3 /*inMonth*/,
    -
    1526  0 /*onDayOfWeek*/,
    -
    1527  30 /*onDayOfMonth*/,
    -
    1528  12 /*atTimeCode*/,
    -
    1529  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1530  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1531  0 /*letterIndex ("")*/,
    -
    1532  },
    -
    1533  // Rule Chile 2009 only - Mar Sun>=9 3:00u 0 -
    -
    1534  {
    -
    1535  -91 /*fromYearTiny (2009)*/,
    -
    1536  -91 /*toYearTiny (2009)*/,
    -
    1537  3 /*inMonth*/,
    -
    1538  7 /*onDayOfWeek*/,
    -
    1539  9 /*onDayOfMonth*/,
    -
    1540  12 /*atTimeCode*/,
    -
    1541  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1542  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1543  0 /*letterIndex ("")*/,
    -
    1544  },
    -
    1545  // Rule Chile 2010 only - Apr Sun>=1 3:00u 0 -
    -
    1546  {
    -
    1547  -90 /*fromYearTiny (2010)*/,
    -
    1548  -90 /*toYearTiny (2010)*/,
    -
    1549  4 /*inMonth*/,
    -
    1550  7 /*onDayOfWeek*/,
    -
    1551  1 /*onDayOfMonth*/,
    -
    1552  12 /*atTimeCode*/,
    -
    1553  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1554  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1555  0 /*letterIndex ("")*/,
    -
    1556  },
    -
    1557  // Rule Chile 2011 only - May Sun>=2 3:00u 0 -
    -
    1558  {
    -
    1559  -89 /*fromYearTiny (2011)*/,
    -
    1560  -89 /*toYearTiny (2011)*/,
    -
    1561  5 /*inMonth*/,
    -
    1562  7 /*onDayOfWeek*/,
    -
    1563  2 /*onDayOfMonth*/,
    -
    1564  12 /*atTimeCode*/,
    -
    1565  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1566  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1567  0 /*letterIndex ("")*/,
    -
    1568  },
    -
    1569  // Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 -
    -
    1570  {
    -
    1571  -89 /*fromYearTiny (2011)*/,
    -
    1572  -89 /*toYearTiny (2011)*/,
    -
    1573  8 /*inMonth*/,
    -
    1574  7 /*onDayOfWeek*/,
    -
    1575  16 /*onDayOfMonth*/,
    -
    1576  16 /*atTimeCode*/,
    -
    1577  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1578  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1579  0 /*letterIndex ("")*/,
    -
    1580  },
    -
    1581  // Rule Chile 2012 2014 - Apr Sun>=23 3:00u 0 -
    -
    1582  {
    -
    1583  -88 /*fromYearTiny (2012)*/,
    -
    1584  -86 /*toYearTiny (2014)*/,
    -
    1585  4 /*inMonth*/,
    -
    1586  7 /*onDayOfWeek*/,
    -
    1587  23 /*onDayOfMonth*/,
    -
    1588  12 /*atTimeCode*/,
    -
    1589  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1590  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1591  0 /*letterIndex ("")*/,
    -
    1592  },
    -
    1593  // Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 -
    -
    1594  {
    -
    1595  -88 /*fromYearTiny (2012)*/,
    -
    1596  -86 /*toYearTiny (2014)*/,
    -
    1597  9 /*inMonth*/,
    -
    1598  7 /*onDayOfWeek*/,
    -
    1599  2 /*onDayOfMonth*/,
    -
    1600  16 /*atTimeCode*/,
    -
    1601  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1602  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1603  0 /*letterIndex ("")*/,
    -
    1604  },
    -
    1605  // Rule Chile 2016 2018 - May Sun>=9 3:00u 0 -
    -
    1606  {
    -
    1607  -84 /*fromYearTiny (2016)*/,
    -
    1608  -82 /*toYearTiny (2018)*/,
    -
    1609  5 /*inMonth*/,
    -
    1610  7 /*onDayOfWeek*/,
    -
    1611  9 /*onDayOfMonth*/,
    -
    1612  12 /*atTimeCode*/,
    -
    1613  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1614  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1615  0 /*letterIndex ("")*/,
    -
    1616  },
    -
    1617  // Rule Chile 2016 2018 - Aug Sun>=9 4:00u 1:00 -
    -
    1618  {
    -
    1619  -84 /*fromYearTiny (2016)*/,
    -
    1620  -82 /*toYearTiny (2018)*/,
    -
    1621  8 /*inMonth*/,
    -
    1622  7 /*onDayOfWeek*/,
    -
    1623  9 /*onDayOfMonth*/,
    -
    1624  16 /*atTimeCode*/,
    -
    1625  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1626  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1627  0 /*letterIndex ("")*/,
    -
    1628  },
    -
    1629  // Rule Chile 2019 max - Apr Sun>=2 3:00u 0 -
    -
    1630  {
    -
    1631  -81 /*fromYearTiny (2019)*/,
    -
    1632  126 /*toYearTiny (32766)*/,
    -
    1633  4 /*inMonth*/,
    -
    1634  7 /*onDayOfWeek*/,
    -
    1635  2 /*onDayOfMonth*/,
    -
    1636  12 /*atTimeCode*/,
    -
    1637  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1638  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1639  0 /*letterIndex ("")*/,
    -
    1640  },
    -
    1641  // Rule Chile 2019 2021 - Sep Sun>=2 4:00u 1:00 -
    -
    1642  {
    -
    1643  -81 /*fromYearTiny (2019)*/,
    -
    1644  -79 /*toYearTiny (2021)*/,
    -
    1645  9 /*inMonth*/,
    -
    1646  7 /*onDayOfWeek*/,
    -
    1647  2 /*onDayOfMonth*/,
    -
    1648  16 /*atTimeCode*/,
    -
    1649  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1650  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1651  0 /*letterIndex ("")*/,
    -
    1652  },
    -
    1653  // Rule Chile 2022 only - Sep Sun>=9 4:00u 1:00 -
    -
    1654  {
    -
    1655  -78 /*fromYearTiny (2022)*/,
    -
    1656  -78 /*toYearTiny (2022)*/,
    -
    1657  9 /*inMonth*/,
    -
    1658  7 /*onDayOfWeek*/,
    -
    1659  9 /*onDayOfMonth*/,
    -
    1660  16 /*atTimeCode*/,
    -
    1661  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1662  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1663  0 /*letterIndex ("")*/,
    -
    1664  },
    -
    1665  // Rule Chile 2023 max - Sep Sun>=2 4:00u 1:00 -
    -
    1666  {
    -
    1667  -77 /*fromYearTiny (2023)*/,
    -
    1668  126 /*toYearTiny (32766)*/,
    -
    1669  9 /*inMonth*/,
    -
    1670  7 /*onDayOfWeek*/,
    -
    1671  2 /*onDayOfMonth*/,
    -
    1672  16 /*atTimeCode*/,
    -
    1673  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    1674  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1675  0 /*letterIndex ("")*/,
    -
    1676  },
    -
    1677 
    -
    1678 };
    -
    1679 
    -
    1680 const extended::Info::ZonePolicy kZonePolicyChile ACE_TIME_PROGMEM = {
    -
    1681  kZoneRulesChile /*rules*/,
    -
    1682  18 /*numRules*/,
    -
    1683 };
    -
    1684 
    -
    1685 //---------------------------------------------------------------------------
    -
    1686 // Policy name: Cook
    -
    1687 // Rules: 1
    -
    1688 //---------------------------------------------------------------------------
    -
    1689 
    -
    1690 static const extended::Info::ZoneRule kZoneRulesCook[] ACE_TIME_PROGMEM = {
    -
    1691  // Anchor: Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
    -
    1692  {
    -
    1693  -127 /*fromYearTiny (-32767)*/,
    -
    1694  -127 /*toYearTiny (-32767)*/,
    -
    1695  1 /*inMonth*/,
    -
    1696  0 /*onDayOfWeek*/,
    -
    1697  1 /*onDayOfMonth*/,
    -
    1698  0 /*atTimeCode*/,
    -
    1699  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1700  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1701  0 /*letterIndex ("")*/,
    -
    1702  },
    -
    1703 
    -
    1704 };
    -
    1705 
    -
    1706 const extended::Info::ZonePolicy kZonePolicyCook ACE_TIME_PROGMEM = {
    -
    1707  kZoneRulesCook /*rules*/,
    -
    1708  1 /*numRules*/,
    -
    1709 };
    -
    1710 
    -
    1711 //---------------------------------------------------------------------------
    -
    1712 // Policy name: Cuba
    -
    1713 // Rules: 15
    -
    1714 //---------------------------------------------------------------------------
    -
    1715 
    -
    1716 static const extended::Info::ZoneRule kZoneRulesCuba[] ACE_TIME_PROGMEM = {
    -
    1717  // Anchor: Rule Cuba 1997 only - Oct 12 0:00s 0 S
    -
    1718  {
    -
    1719  -127 /*fromYearTiny (-32767)*/,
    -
    1720  -127 /*toYearTiny (-32767)*/,
    -
    1721  1 /*inMonth*/,
    -
    1722  0 /*onDayOfWeek*/,
    -
    1723  1 /*onDayOfMonth*/,
    -
    1724  0 /*atTimeCode*/,
    -
    1725  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1726  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1727  7 /*letterIndex ("S")*/,
    -
    1728  },
    -
    1729  // Rule Cuba 1997 only - Oct 12 0:00s 0 S
    -
    1730  {
    -
    1731  -103 /*fromYearTiny (1997)*/,
    -
    1732  -103 /*toYearTiny (1997)*/,
    -
    1733  10 /*inMonth*/,
    -
    1734  0 /*onDayOfWeek*/,
    -
    1735  12 /*onDayOfMonth*/,
    -
    1736  0 /*atTimeCode*/,
    -
    1737  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1738  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1739  7 /*letterIndex ("S")*/,
    -
    1740  },
    -
    1741  // Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D
    -
    1742  {
    -
    1743  -102 /*fromYearTiny (1998)*/,
    -
    1744  -101 /*toYearTiny (1999)*/,
    -
    1745  3 /*inMonth*/,
    -
    1746  7 /*onDayOfWeek*/,
    -
    1747  0 /*onDayOfMonth*/,
    -
    1748  0 /*atTimeCode*/,
    -
    1749  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1750  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1751  5 /*letterIndex ("D")*/,
    -
    1752  },
    -
    1753  // Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S
    -
    1754  {
    -
    1755  -102 /*fromYearTiny (1998)*/,
    -
    1756  -97 /*toYearTiny (2003)*/,
    -
    1757  10 /*inMonth*/,
    -
    1758  7 /*onDayOfWeek*/,
    -
    1759  0 /*onDayOfMonth*/,
    -
    1760  0 /*atTimeCode*/,
    -
    1761  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1762  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1763  7 /*letterIndex ("S")*/,
    -
    1764  },
    -
    1765  // Rule Cuba 2000 2003 - Apr Sun>=1 0:00s 1:00 D
    -
    1766  {
    -
    1767  -100 /*fromYearTiny (2000)*/,
    -
    1768  -97 /*toYearTiny (2003)*/,
    -
    1769  4 /*inMonth*/,
    -
    1770  7 /*onDayOfWeek*/,
    -
    1771  1 /*onDayOfMonth*/,
    -
    1772  0 /*atTimeCode*/,
    -
    1773  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1774  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1775  5 /*letterIndex ("D")*/,
    -
    1776  },
    -
    1777  // Rule Cuba 2004 only - Mar lastSun 0:00s 1:00 D
    -
    1778  {
    -
    1779  -96 /*fromYearTiny (2004)*/,
    -
    1780  -96 /*toYearTiny (2004)*/,
    -
    1781  3 /*inMonth*/,
    -
    1782  7 /*onDayOfWeek*/,
    -
    1783  0 /*onDayOfMonth*/,
    -
    1784  0 /*atTimeCode*/,
    -
    1785  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1786  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1787  5 /*letterIndex ("D")*/,
    -
    1788  },
    -
    1789  // Rule Cuba 2006 2010 - Oct lastSun 0:00s 0 S
    -
    1790  {
    -
    1791  -94 /*fromYearTiny (2006)*/,
    -
    1792  -90 /*toYearTiny (2010)*/,
    -
    1793  10 /*inMonth*/,
    -
    1794  7 /*onDayOfWeek*/,
    -
    1795  0 /*onDayOfMonth*/,
    -
    1796  0 /*atTimeCode*/,
    -
    1797  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1798  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1799  7 /*letterIndex ("S")*/,
    -
    1800  },
    -
    1801  // Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D
    -
    1802  {
    -
    1803  -93 /*fromYearTiny (2007)*/,
    -
    1804  -93 /*toYearTiny (2007)*/,
    -
    1805  3 /*inMonth*/,
    -
    1806  7 /*onDayOfWeek*/,
    -
    1807  8 /*onDayOfMonth*/,
    -
    1808  0 /*atTimeCode*/,
    -
    1809  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1810  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1811  5 /*letterIndex ("D")*/,
    -
    1812  },
    -
    1813  // Rule Cuba 2008 only - Mar Sun>=15 0:00s 1:00 D
    -
    1814  {
    -
    1815  -92 /*fromYearTiny (2008)*/,
    -
    1816  -92 /*toYearTiny (2008)*/,
    -
    1817  3 /*inMonth*/,
    -
    1818  7 /*onDayOfWeek*/,
    -
    1819  15 /*onDayOfMonth*/,
    -
    1820  0 /*atTimeCode*/,
    -
    1821  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1822  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1823  5 /*letterIndex ("D")*/,
    -
    1824  },
    -
    1825  // Rule Cuba 2009 2010 - Mar Sun>=8 0:00s 1:00 D
    -
    1826  {
    -
    1827  -91 /*fromYearTiny (2009)*/,
    -
    1828  -90 /*toYearTiny (2010)*/,
    -
    1829  3 /*inMonth*/,
    -
    1830  7 /*onDayOfWeek*/,
    -
    1831  8 /*onDayOfMonth*/,
    -
    1832  0 /*atTimeCode*/,
    -
    1833  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1834  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1835  5 /*letterIndex ("D")*/,
    -
    1836  },
    -
    1837  // Rule Cuba 2011 only - Mar Sun>=15 0:00s 1:00 D
    -
    1838  {
    -
    1839  -89 /*fromYearTiny (2011)*/,
    -
    1840  -89 /*toYearTiny (2011)*/,
    -
    1841  3 /*inMonth*/,
    -
    1842  7 /*onDayOfWeek*/,
    -
    1843  15 /*onDayOfMonth*/,
    -
    1844  0 /*atTimeCode*/,
    -
    1845  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1846  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1847  5 /*letterIndex ("D")*/,
    -
    1848  },
    -
    1849  // Rule Cuba 2011 only - Nov 13 0:00s 0 S
    -
    1850  {
    -
    1851  -89 /*fromYearTiny (2011)*/,
    -
    1852  -89 /*toYearTiny (2011)*/,
    -
    1853  11 /*inMonth*/,
    -
    1854  0 /*onDayOfWeek*/,
    -
    1855  13 /*onDayOfMonth*/,
    -
    1856  0 /*atTimeCode*/,
    -
    1857  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1858  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1859  7 /*letterIndex ("S")*/,
    -
    1860  },
    -
    1861  // Rule Cuba 2012 only - Apr 1 0:00s 1:00 D
    -
    1862  {
    -
    1863  -88 /*fromYearTiny (2012)*/,
    -
    1864  -88 /*toYearTiny (2012)*/,
    -
    1865  4 /*inMonth*/,
    -
    1866  0 /*onDayOfWeek*/,
    -
    1867  1 /*onDayOfMonth*/,
    -
    1868  0 /*atTimeCode*/,
    -
    1869  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1870  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1871  5 /*letterIndex ("D")*/,
    -
    1872  },
    -
    1873  // Rule Cuba 2012 max - Nov Sun>=1 0:00s 0 S
    -
    1874  {
    -
    1875  -88 /*fromYearTiny (2012)*/,
    -
    1876  126 /*toYearTiny (32766)*/,
    -
    1877  11 /*inMonth*/,
    -
    1878  7 /*onDayOfWeek*/,
    -
    1879  1 /*onDayOfMonth*/,
    -
    1880  0 /*atTimeCode*/,
    -
    1881  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1882  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1883  7 /*letterIndex ("S")*/,
    -
    1884  },
    -
    1885  // Rule Cuba 2013 max - Mar Sun>=8 0:00s 1:00 D
    -
    1886  {
    -
    1887  -87 /*fromYearTiny (2013)*/,
    -
    1888  126 /*toYearTiny (32766)*/,
    -
    1889  3 /*inMonth*/,
    -
    1890  7 /*onDayOfWeek*/,
    -
    1891  8 /*onDayOfMonth*/,
    -
    1892  0 /*atTimeCode*/,
    -
    1893  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    1894  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1895  5 /*letterIndex ("D")*/,
    -
    1896  },
    -
    1897 
    -
    1898 };
    -
    1899 
    -
    1900 const extended::Info::ZonePolicy kZonePolicyCuba ACE_TIME_PROGMEM = {
    -
    1901  kZoneRulesCuba /*rules*/,
    -
    1902  15 /*numRules*/,
    -
    1903 };
    -
    1904 
    -
    1905 //---------------------------------------------------------------------------
    -
    1906 // Policy name: Dhaka
    -
    1907 // Rules: 3
    -
    1908 //---------------------------------------------------------------------------
    -
    1909 
    -
    1910 static const extended::Info::ZoneRule kZoneRulesDhaka[] ACE_TIME_PROGMEM = {
    -
    1911  // Anchor: Rule Dhaka 2009 only - Dec 31 24:00 0 -
    -
    1912  {
    -
    1913  -127 /*fromYearTiny (-32767)*/,
    -
    1914  -127 /*toYearTiny (-32767)*/,
    -
    1915  1 /*inMonth*/,
    -
    1916  0 /*onDayOfWeek*/,
    -
    1917  1 /*onDayOfMonth*/,
    -
    1918  0 /*atTimeCode*/,
    -
    1919  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1920  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1921  0 /*letterIndex ("")*/,
    -
    1922  },
    -
    1923  // Rule Dhaka 2009 only - Jun 19 23:00 1:00 -
    -
    1924  {
    -
    1925  -91 /*fromYearTiny (2009)*/,
    -
    1926  -91 /*toYearTiny (2009)*/,
    -
    1927  6 /*inMonth*/,
    -
    1928  0 /*onDayOfWeek*/,
    -
    1929  19 /*onDayOfMonth*/,
    -
    1930  92 /*atTimeCode*/,
    -
    1931  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1932  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1933  0 /*letterIndex ("")*/,
    -
    1934  },
    -
    1935  // Rule Dhaka 2009 only - Dec 31 24:00 0 -
    -
    1936  {
    -
    1937  -91 /*fromYearTiny (2009)*/,
    -
    1938  -91 /*toYearTiny (2009)*/,
    -
    1939  12 /*inMonth*/,
    -
    1940  0 /*onDayOfWeek*/,
    -
    1941  31 /*onDayOfMonth*/,
    -
    1942  96 /*atTimeCode*/,
    -
    1943  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1944  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1945  0 /*letterIndex ("")*/,
    -
    1946  },
    -
    1947 
    -
    1948 };
    -
    1949 
    -
    1950 const extended::Info::ZonePolicy kZonePolicyDhaka ACE_TIME_PROGMEM = {
    -
    1951  kZoneRulesDhaka /*rules*/,
    -
    1952  3 /*numRules*/,
    -
    1953 };
    -
    1954 
    -
    1955 //---------------------------------------------------------------------------
    -
    1956 // Policy name: E-EurAsia
    -
    1957 // Rules: 4
    -
    1958 //---------------------------------------------------------------------------
    -
    1959 
    -
    1960 static const extended::Info::ZoneRule kZoneRulesE_EurAsia[] ACE_TIME_PROGMEM = {
    -
    1961  // Anchor: Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 -
    -
    1962  {
    -
    1963  -127 /*fromYearTiny (-32767)*/,
    -
    1964  -127 /*toYearTiny (-32767)*/,
    -
    1965  1 /*inMonth*/,
    -
    1966  0 /*onDayOfWeek*/,
    -
    1967  1 /*onDayOfMonth*/,
    -
    1968  0 /*atTimeCode*/,
    -
    1969  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1970  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1971  0 /*letterIndex ("")*/,
    -
    1972  },
    -
    1973  // Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 -
    -
    1974  {
    -
    1975  -119 /*fromYearTiny (1981)*/,
    -
    1976  126 /*toYearTiny (32766)*/,
    -
    1977  3 /*inMonth*/,
    -
    1978  7 /*onDayOfWeek*/,
    -
    1979  0 /*onDayOfMonth*/,
    -
    1980  0 /*atTimeCode*/,
    -
    1981  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1982  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    1983  0 /*letterIndex ("")*/,
    -
    1984  },
    -
    1985  // Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 -
    -
    1986  {
    -
    1987  -121 /*fromYearTiny (1979)*/,
    -
    1988  -105 /*toYearTiny (1995)*/,
    -
    1989  9 /*inMonth*/,
    -
    1990  7 /*onDayOfWeek*/,
    -
    1991  0 /*onDayOfMonth*/,
    -
    1992  0 /*atTimeCode*/,
    -
    1993  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    1994  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    1995  0 /*letterIndex ("")*/,
    -
    1996  },
    -
    1997  // Rule E-EurAsia 1996 max - Oct lastSun 0:00 0 -
    -
    1998  {
    -
    1999  -104 /*fromYearTiny (1996)*/,
    -
    2000  126 /*toYearTiny (32766)*/,
    -
    2001  10 /*inMonth*/,
    -
    2002  7 /*onDayOfWeek*/,
    -
    2003  0 /*onDayOfMonth*/,
    -
    2004  0 /*atTimeCode*/,
    -
    2005  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2006  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2007  0 /*letterIndex ("")*/,
    -
    2008  },
    -
    2009 
    -
    2010 };
    -
    2011 
    -
    2012 const extended::Info::ZonePolicy kZonePolicyE_EurAsia ACE_TIME_PROGMEM = {
    -
    2013  kZoneRulesE_EurAsia /*rules*/,
    -
    2014  4 /*numRules*/,
    -
    2015 };
    -
    2016 
    -
    2017 //---------------------------------------------------------------------------
    -
    2018 // Policy name: EU
    -
    2019 // Rules: 4
    -
    2020 //---------------------------------------------------------------------------
    -
    2021 
    -
    2022 static const extended::Info::ZoneRule kZoneRulesEU[] ACE_TIME_PROGMEM = {
    -
    2023  // Anchor: Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
    -
    2024  {
    -
    2025  -127 /*fromYearTiny (-32767)*/,
    -
    2026  -127 /*toYearTiny (-32767)*/,
    -
    2027  1 /*inMonth*/,
    -
    2028  0 /*onDayOfWeek*/,
    -
    2029  1 /*onDayOfMonth*/,
    -
    2030  0 /*atTimeCode*/,
    -
    2031  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2032  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2033  0 /*letterIndex ("")*/,
    -
    2034  },
    -
    2035  // Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
    -
    2036  {
    -
    2037  -121 /*fromYearTiny (1979)*/,
    -
    2038  -105 /*toYearTiny (1995)*/,
    -
    2039  9 /*inMonth*/,
    -
    2040  7 /*onDayOfWeek*/,
    -
    2041  0 /*onDayOfMonth*/,
    -
    2042  4 /*atTimeCode*/,
    -
    2043  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2044  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2045  0 /*letterIndex ("")*/,
    -
    2046  },
    -
    2047  // Rule EU 1981 max - Mar lastSun 1:00u 1:00 S
    -
    2048  {
    -
    2049  -119 /*fromYearTiny (1981)*/,
    -
    2050  126 /*toYearTiny (32766)*/,
    -
    2051  3 /*inMonth*/,
    -
    2052  7 /*onDayOfWeek*/,
    -
    2053  0 /*onDayOfMonth*/,
    -
    2054  4 /*atTimeCode*/,
    -
    2055  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2056  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2057  7 /*letterIndex ("S")*/,
    -
    2058  },
    -
    2059  // Rule EU 1996 max - Oct lastSun 1:00u 0 -
    -
    2060  {
    -
    2061  -104 /*fromYearTiny (1996)*/,
    -
    2062  126 /*toYearTiny (32766)*/,
    -
    2063  10 /*inMonth*/,
    -
    2064  7 /*onDayOfWeek*/,
    -
    2065  0 /*onDayOfMonth*/,
    -
    2066  4 /*atTimeCode*/,
    -
    2067  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2068  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2069  0 /*letterIndex ("")*/,
    -
    2070  },
    -
    2071 
    -
    2072 };
    -
    2073 
    -
    2074 const extended::Info::ZonePolicy kZonePolicyEU ACE_TIME_PROGMEM = {
    -
    2075  kZoneRulesEU /*rules*/,
    -
    2076  4 /*numRules*/,
    -
    2077 };
    -
    2078 
    -
    2079 //---------------------------------------------------------------------------
    -
    2080 // Policy name: EUAsia
    -
    2081 // Rules: 4
    -
    2082 //---------------------------------------------------------------------------
    -
    2083 
    -
    2084 static const extended::Info::ZoneRule kZoneRulesEUAsia[] ACE_TIME_PROGMEM = {
    -
    2085  // Anchor: Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
    -
    2086  {
    -
    2087  -127 /*fromYearTiny (-32767)*/,
    -
    2088  -127 /*toYearTiny (-32767)*/,
    -
    2089  1 /*inMonth*/,
    -
    2090  0 /*onDayOfWeek*/,
    -
    2091  1 /*onDayOfMonth*/,
    -
    2092  0 /*atTimeCode*/,
    -
    2093  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2094  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2095  0 /*letterIndex ("")*/,
    -
    2096  },
    -
    2097  // Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
    -
    2098  {
    -
    2099  -119 /*fromYearTiny (1981)*/,
    -
    2100  126 /*toYearTiny (32766)*/,
    -
    2101  3 /*inMonth*/,
    -
    2102  7 /*onDayOfWeek*/,
    -
    2103  0 /*onDayOfMonth*/,
    -
    2104  4 /*atTimeCode*/,
    -
    2105  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2106  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2107  7 /*letterIndex ("S")*/,
    -
    2108  },
    -
    2109  // Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
    -
    2110  {
    -
    2111  -121 /*fromYearTiny (1979)*/,
    -
    2112  -105 /*toYearTiny (1995)*/,
    -
    2113  9 /*inMonth*/,
    -
    2114  7 /*onDayOfWeek*/,
    -
    2115  0 /*onDayOfMonth*/,
    -
    2116  4 /*atTimeCode*/,
    -
    2117  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2118  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2119  0 /*letterIndex ("")*/,
    -
    2120  },
    -
    2121  // Rule EUAsia 1996 max - Oct lastSun 1:00u 0 -
    -
    2122  {
    -
    2123  -104 /*fromYearTiny (1996)*/,
    -
    2124  126 /*toYearTiny (32766)*/,
    -
    2125  10 /*inMonth*/,
    -
    2126  7 /*onDayOfWeek*/,
    -
    2127  0 /*onDayOfMonth*/,
    -
    2128  4 /*atTimeCode*/,
    -
    2129  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2130  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2131  0 /*letterIndex ("")*/,
    -
    2132  },
    -
    2133 
    -
    2134 };
    -
    2135 
    -
    2136 const extended::Info::ZonePolicy kZonePolicyEUAsia ACE_TIME_PROGMEM = {
    -
    2137  kZoneRulesEUAsia /*rules*/,
    -
    2138  4 /*numRules*/,
    -
    2139 };
    -
    2140 
    -
    2141 //---------------------------------------------------------------------------
    -
    2142 // Policy name: Ecuador
    -
    2143 // Rules: 1
    -
    2144 //---------------------------------------------------------------------------
    -
    2145 
    -
    2146 static const extended::Info::ZoneRule kZoneRulesEcuador[] ACE_TIME_PROGMEM = {
    -
    2147  // Anchor: Rule Ecuador 1993 only - Feb 5 0:00 0 -
    -
    2148  {
    -
    2149  -127 /*fromYearTiny (-32767)*/,
    -
    2150  -127 /*toYearTiny (-32767)*/,
    -
    2151  1 /*inMonth*/,
    -
    2152  0 /*onDayOfWeek*/,
    -
    2153  1 /*onDayOfMonth*/,
    -
    2154  0 /*atTimeCode*/,
    -
    2155  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2156  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2157  0 /*letterIndex ("")*/,
    -
    2158  },
    -
    2159 
    -
    2160 };
    -
    2161 
    -
    2162 const extended::Info::ZonePolicy kZonePolicyEcuador ACE_TIME_PROGMEM = {
    -
    2163  kZoneRulesEcuador /*rules*/,
    -
    2164  1 /*numRules*/,
    -
    2165 };
    -
    2166 
    -
    2167 //---------------------------------------------------------------------------
    -
    2168 // Policy name: Egypt
    -
    2169 // Rules: 17
    -
    2170 //---------------------------------------------------------------------------
    -
    2171 
    -
    2172 static const extended::Info::ZoneRule kZoneRulesEgypt[] ACE_TIME_PROGMEM = {
    -
    2173  // Anchor: Rule Egypt 1966 1994 - Oct 1 3:00 0 -
    -
    2174  {
    -
    2175  -127 /*fromYearTiny (-32767)*/,
    -
    2176  -127 /*toYearTiny (-32767)*/,
    -
    2177  1 /*inMonth*/,
    -
    2178  0 /*onDayOfWeek*/,
    -
    2179  1 /*onDayOfMonth*/,
    -
    2180  0 /*atTimeCode*/,
    -
    2181  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2182  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2183  0 /*letterIndex ("")*/,
    -
    2184  },
    -
    2185  // Rule Egypt 1966 1994 - Oct 1 3:00 0 -
    -
    2186  {
    -
    2187  -127 /*fromYearTiny (1966)*/,
    -
    2188  -106 /*toYearTiny (1994)*/,
    -
    2189  10 /*inMonth*/,
    -
    2190  0 /*onDayOfWeek*/,
    -
    2191  1 /*onDayOfMonth*/,
    -
    2192  12 /*atTimeCode*/,
    -
    2193  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2194  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2195  0 /*letterIndex ("")*/,
    -
    2196  },
    -
    2197  // Rule Egypt 1995 2010 - Apr lastFri 0:00s 1:00 S
    -
    2198  {
    -
    2199  -105 /*fromYearTiny (1995)*/,
    -
    2200  -90 /*toYearTiny (2010)*/,
    -
    2201  4 /*inMonth*/,
    -
    2202  5 /*onDayOfWeek*/,
    -
    2203  0 /*onDayOfMonth*/,
    -
    2204  0 /*atTimeCode*/,
    -
    2205  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2206  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2207  7 /*letterIndex ("S")*/,
    -
    2208  },
    -
    2209  // Rule Egypt 1995 2005 - Sep lastThu 24:00 0 -
    -
    2210  {
    -
    2211  -105 /*fromYearTiny (1995)*/,
    -
    2212  -95 /*toYearTiny (2005)*/,
    -
    2213  9 /*inMonth*/,
    -
    2214  4 /*onDayOfWeek*/,
    -
    2215  0 /*onDayOfMonth*/,
    -
    2216  96 /*atTimeCode*/,
    -
    2217  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2218  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2219  0 /*letterIndex ("")*/,
    -
    2220  },
    -
    2221  // Rule Egypt 2006 only - Sep 21 24:00 0 -
    -
    2222  {
    -
    2223  -94 /*fromYearTiny (2006)*/,
    -
    2224  -94 /*toYearTiny (2006)*/,
    -
    2225  9 /*inMonth*/,
    -
    2226  0 /*onDayOfWeek*/,
    -
    2227  21 /*onDayOfMonth*/,
    -
    2228  96 /*atTimeCode*/,
    -
    2229  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2230  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2231  0 /*letterIndex ("")*/,
    -
    2232  },
    -
    2233  // Rule Egypt 2007 only - Sep Thu>=1 24:00 0 -
    -
    2234  {
    -
    2235  -93 /*fromYearTiny (2007)*/,
    -
    2236  -93 /*toYearTiny (2007)*/,
    -
    2237  9 /*inMonth*/,
    -
    2238  4 /*onDayOfWeek*/,
    -
    2239  1 /*onDayOfMonth*/,
    -
    2240  96 /*atTimeCode*/,
    -
    2241  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2242  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2243  0 /*letterIndex ("")*/,
    -
    2244  },
    -
    2245  // Rule Egypt 2008 only - Aug lastThu 24:00 0 -
    -
    2246  {
    -
    2247  -92 /*fromYearTiny (2008)*/,
    -
    2248  -92 /*toYearTiny (2008)*/,
    -
    2249  8 /*inMonth*/,
    -
    2250  4 /*onDayOfWeek*/,
    -
    2251  0 /*onDayOfMonth*/,
    -
    2252  96 /*atTimeCode*/,
    -
    2253  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2254  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2255  0 /*letterIndex ("")*/,
    -
    2256  },
    -
    2257  // Rule Egypt 2009 only - Aug 20 24:00 0 -
    -
    2258  {
    -
    2259  -91 /*fromYearTiny (2009)*/,
    -
    2260  -91 /*toYearTiny (2009)*/,
    -
    2261  8 /*inMonth*/,
    -
    2262  0 /*onDayOfWeek*/,
    -
    2263  20 /*onDayOfMonth*/,
    -
    2264  96 /*atTimeCode*/,
    -
    2265  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2266  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2267  0 /*letterIndex ("")*/,
    -
    2268  },
    -
    2269  // Rule Egypt 2010 only - Aug 10 24:00 0 -
    -
    2270  {
    -
    2271  -90 /*fromYearTiny (2010)*/,
    -
    2272  -90 /*toYearTiny (2010)*/,
    -
    2273  8 /*inMonth*/,
    -
    2274  0 /*onDayOfWeek*/,
    -
    2275  10 /*onDayOfMonth*/,
    -
    2276  96 /*atTimeCode*/,
    -
    2277  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2278  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2279  0 /*letterIndex ("")*/,
    -
    2280  },
    -
    2281  // Rule Egypt 2010 only - Sep 9 24:00 1:00 S
    -
    2282  {
    -
    2283  -90 /*fromYearTiny (2010)*/,
    -
    2284  -90 /*toYearTiny (2010)*/,
    -
    2285  9 /*inMonth*/,
    -
    2286  0 /*onDayOfWeek*/,
    -
    2287  9 /*onDayOfMonth*/,
    -
    2288  96 /*atTimeCode*/,
    -
    2289  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2290  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2291  7 /*letterIndex ("S")*/,
    -
    2292  },
    -
    2293  // Rule Egypt 2010 only - Sep lastThu 24:00 0 -
    -
    2294  {
    -
    2295  -90 /*fromYearTiny (2010)*/,
    -
    2296  -90 /*toYearTiny (2010)*/,
    -
    2297  9 /*inMonth*/,
    -
    2298  4 /*onDayOfWeek*/,
    -
    2299  0 /*onDayOfMonth*/,
    -
    2300  96 /*atTimeCode*/,
    -
    2301  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2302  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2303  0 /*letterIndex ("")*/,
    -
    2304  },
    -
    2305  // Rule Egypt 2014 only - May 15 24:00 1:00 S
    -
    2306  {
    -
    2307  -86 /*fromYearTiny (2014)*/,
    -
    2308  -86 /*toYearTiny (2014)*/,
    -
    2309  5 /*inMonth*/,
    -
    2310  0 /*onDayOfWeek*/,
    -
    2311  15 /*onDayOfMonth*/,
    -
    2312  96 /*atTimeCode*/,
    -
    2313  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2314  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2315  7 /*letterIndex ("S")*/,
    -
    2316  },
    -
    2317  // Rule Egypt 2014 only - Jun 26 24:00 0 -
    -
    2318  {
    -
    2319  -86 /*fromYearTiny (2014)*/,
    -
    2320  -86 /*toYearTiny (2014)*/,
    -
    2321  6 /*inMonth*/,
    -
    2322  0 /*onDayOfWeek*/,
    -
    2323  26 /*onDayOfMonth*/,
    -
    2324  96 /*atTimeCode*/,
    -
    2325  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2326  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2327  0 /*letterIndex ("")*/,
    -
    2328  },
    -
    2329  // Rule Egypt 2014 only - Jul 31 24:00 1:00 S
    -
    2330  {
    -
    2331  -86 /*fromYearTiny (2014)*/,
    -
    2332  -86 /*toYearTiny (2014)*/,
    -
    2333  7 /*inMonth*/,
    -
    2334  0 /*onDayOfWeek*/,
    -
    2335  31 /*onDayOfMonth*/,
    -
    2336  96 /*atTimeCode*/,
    -
    2337  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2338  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2339  7 /*letterIndex ("S")*/,
    -
    2340  },
    -
    2341  // Rule Egypt 2014 only - Sep lastThu 24:00 0 -
    -
    2342  {
    -
    2343  -86 /*fromYearTiny (2014)*/,
    -
    2344  -86 /*toYearTiny (2014)*/,
    -
    2345  9 /*inMonth*/,
    -
    2346  4 /*onDayOfWeek*/,
    -
    2347  0 /*onDayOfMonth*/,
    -
    2348  96 /*atTimeCode*/,
    -
    2349  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2350  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2351  0 /*letterIndex ("")*/,
    -
    2352  },
    -
    2353  // Rule Egypt 2023 max - Apr lastFri 0:00 1:00 S
    -
    2354  {
    -
    2355  -77 /*fromYearTiny (2023)*/,
    -
    2356  126 /*toYearTiny (32766)*/,
    -
    2357  4 /*inMonth*/,
    -
    2358  5 /*onDayOfWeek*/,
    -
    2359  0 /*onDayOfMonth*/,
    -
    2360  0 /*atTimeCode*/,
    -
    2361  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2362  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2363  7 /*letterIndex ("S")*/,
    -
    2364  },
    -
    2365  // Rule Egypt 2023 max - Oct lastThu 24:00 0 -
    -
    2366  {
    -
    2367  -77 /*fromYearTiny (2023)*/,
    -
    2368  126 /*toYearTiny (32766)*/,
    -
    2369  10 /*inMonth*/,
    -
    2370  4 /*onDayOfWeek*/,
    -
    2371  0 /*onDayOfMonth*/,
    -
    2372  96 /*atTimeCode*/,
    -
    2373  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2374  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2375  0 /*letterIndex ("")*/,
    -
    2376  },
    -
    2377 
    -
    2378 };
    -
    2379 
    -
    2380 const extended::Info::ZonePolicy kZonePolicyEgypt ACE_TIME_PROGMEM = {
    -
    2381  kZoneRulesEgypt /*rules*/,
    -
    2382  17 /*numRules*/,
    -
    2383 };
    -
    2384 
    -
    2385 //---------------------------------------------------------------------------
    -
    2386 // Policy name: Eire
    -
    2387 // Rules: 4
    -
    2388 //---------------------------------------------------------------------------
    -
    2389 
    -
    2390 static const extended::Info::ZoneRule kZoneRulesEire[] ACE_TIME_PROGMEM = {
    -
    2391  // Anchor: Rule Eire 1981 max - Mar lastSun 1:00u 0 -
    -
    2392  {
    -
    2393  -127 /*fromYearTiny (-32767)*/,
    -
    2394  -127 /*toYearTiny (-32767)*/,
    -
    2395  1 /*inMonth*/,
    -
    2396  0 /*onDayOfWeek*/,
    -
    2397  1 /*onDayOfMonth*/,
    -
    2398  0 /*atTimeCode*/,
    -
    2399  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2400  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2401  0 /*letterIndex ("")*/,
    -
    2402  },
    -
    2403  // Rule Eire 1981 max - Mar lastSun 1:00u 0 -
    -
    2404  {
    -
    2405  -119 /*fromYearTiny (1981)*/,
    -
    2406  126 /*toYearTiny (32766)*/,
    -
    2407  3 /*inMonth*/,
    -
    2408  7 /*onDayOfWeek*/,
    -
    2409  0 /*onDayOfMonth*/,
    -
    2410  4 /*atTimeCode*/,
    -
    2411  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2412  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2413  0 /*letterIndex ("")*/,
    -
    2414  },
    -
    2415  // Rule Eire 1990 1995 - Oct Sun>=22 1:00u -1:00 -
    -
    2416  {
    -
    2417  -110 /*fromYearTiny (1990)*/,
    -
    2418  -105 /*toYearTiny (1995)*/,
    -
    2419  10 /*inMonth*/,
    -
    2420  7 /*onDayOfWeek*/,
    -
    2421  22 /*onDayOfMonth*/,
    -
    2422  4 /*atTimeCode*/,
    -
    2423  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2424  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2425  0 /*letterIndex ("")*/,
    -
    2426  },
    -
    2427  // Rule Eire 1996 max - Oct lastSun 1:00u -1:00 -
    -
    2428  {
    -
    2429  -104 /*fromYearTiny (1996)*/,
    -
    2430  126 /*toYearTiny (32766)*/,
    -
    2431  10 /*inMonth*/,
    -
    2432  7 /*onDayOfWeek*/,
    -
    2433  0 /*onDayOfMonth*/,
    -
    2434  4 /*atTimeCode*/,
    -
    2435  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    2436  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    2437  0 /*letterIndex ("")*/,
    -
    2438  },
    -
    2439 
    -
    2440 };
    -
    2441 
    -
    2442 const extended::Info::ZonePolicy kZonePolicyEire ACE_TIME_PROGMEM = {
    -
    2443  kZoneRulesEire /*rules*/,
    -
    2444  4 /*numRules*/,
    -
    2445 };
    -
    2446 
    -
    2447 //---------------------------------------------------------------------------
    -
    2448 // Policy name: Falk
    -
    2449 // Rules: 6
    -
    2450 //---------------------------------------------------------------------------
    -
    2451 
    -
    2452 static const extended::Info::ZoneRule kZoneRulesFalk[] ACE_TIME_PROGMEM = {
    -
    2453  // Anchor: Rule Falk 1984 1985 - Apr lastSun 0:00 0 -
    -
    2454  {
    -
    2455  -127 /*fromYearTiny (-32767)*/,
    -
    2456  -127 /*toYearTiny (-32767)*/,
    -
    2457  1 /*inMonth*/,
    -
    2458  0 /*onDayOfWeek*/,
    -
    2459  1 /*onDayOfMonth*/,
    -
    2460  0 /*atTimeCode*/,
    -
    2461  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2462  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2463  0 /*letterIndex ("")*/,
    -
    2464  },
    -
    2465  // Rule Falk 1984 1985 - Apr lastSun 0:00 0 -
    -
    2466  {
    -
    2467  -116 /*fromYearTiny (1984)*/,
    -
    2468  -115 /*toYearTiny (1985)*/,
    -
    2469  4 /*inMonth*/,
    -
    2470  7 /*onDayOfWeek*/,
    -
    2471  0 /*onDayOfMonth*/,
    -
    2472  0 /*atTimeCode*/,
    -
    2473  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2474  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2475  0 /*letterIndex ("")*/,
    -
    2476  },
    -
    2477  // Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 -
    -
    2478  {
    -
    2479  -115 /*fromYearTiny (1985)*/,
    -
    2480  -100 /*toYearTiny (2000)*/,
    -
    2481  9 /*inMonth*/,
    -
    2482  7 /*onDayOfWeek*/,
    -
    2483  9 /*onDayOfMonth*/,
    -
    2484  0 /*atTimeCode*/,
    -
    2485  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2486  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2487  0 /*letterIndex ("")*/,
    -
    2488  },
    -
    2489  // Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 -
    -
    2490  {
    -
    2491  -114 /*fromYearTiny (1986)*/,
    -
    2492  -100 /*toYearTiny (2000)*/,
    -
    2493  4 /*inMonth*/,
    -
    2494  7 /*onDayOfWeek*/,
    -
    2495  16 /*onDayOfMonth*/,
    -
    2496  0 /*atTimeCode*/,
    -
    2497  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2498  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2499  0 /*letterIndex ("")*/,
    -
    2500  },
    -
    2501  // Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 -
    -
    2502  {
    -
    2503  -99 /*fromYearTiny (2001)*/,
    -
    2504  -90 /*toYearTiny (2010)*/,
    -
    2505  4 /*inMonth*/,
    -
    2506  7 /*onDayOfWeek*/,
    -
    2507  15 /*onDayOfMonth*/,
    -
    2508  8 /*atTimeCode*/,
    -
    2509  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2510  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2511  0 /*letterIndex ("")*/,
    -
    2512  },
    -
    2513  // Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 -
    -
    2514  {
    -
    2515  -99 /*fromYearTiny (2001)*/,
    -
    2516  -90 /*toYearTiny (2010)*/,
    -
    2517  9 /*inMonth*/,
    -
    2518  7 /*onDayOfWeek*/,
    -
    2519  1 /*onDayOfMonth*/,
    -
    2520  8 /*atTimeCode*/,
    -
    2521  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2522  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2523  0 /*letterIndex ("")*/,
    -
    2524  },
    -
    2525 
    -
    2526 };
    -
    2527 
    -
    2528 const extended::Info::ZonePolicy kZonePolicyFalk ACE_TIME_PROGMEM = {
    -
    2529  kZoneRulesFalk /*rules*/,
    -
    2530  6 /*numRules*/,
    -
    2531 };
    -
    2532 
    -
    2533 //---------------------------------------------------------------------------
    -
    2534 // Policy name: Fiji
    -
    2535 // Rules: 13
    -
    2536 //---------------------------------------------------------------------------
    -
    2537 
    -
    2538 static const extended::Info::ZoneRule kZoneRulesFiji[] ACE_TIME_PROGMEM = {
    -
    2539  // Anchor: Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
    -
    2540  {
    -
    2541  -127 /*fromYearTiny (-32767)*/,
    -
    2542  -127 /*toYearTiny (-32767)*/,
    -
    2543  1 /*inMonth*/,
    -
    2544  0 /*onDayOfWeek*/,
    -
    2545  1 /*onDayOfMonth*/,
    -
    2546  0 /*atTimeCode*/,
    -
    2547  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2548  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2549  0 /*letterIndex ("")*/,
    -
    2550  },
    -
    2551  // Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
    -
    2552  {
    -
    2553  -102 /*fromYearTiny (1998)*/,
    -
    2554  -101 /*toYearTiny (1999)*/,
    -
    2555  11 /*inMonth*/,
    -
    2556  7 /*onDayOfWeek*/,
    -
    2557  1 /*onDayOfMonth*/,
    -
    2558  8 /*atTimeCode*/,
    -
    2559  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2560  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2561  0 /*letterIndex ("")*/,
    -
    2562  },
    -
    2563  // Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
    -
    2564  {
    -
    2565  -101 /*fromYearTiny (1999)*/,
    -
    2566  -100 /*toYearTiny (2000)*/,
    -
    2567  2 /*inMonth*/,
    -
    2568  7 /*onDayOfWeek*/,
    -
    2569  0 /*onDayOfMonth*/,
    -
    2570  12 /*atTimeCode*/,
    -
    2571  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2572  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2573  0 /*letterIndex ("")*/,
    -
    2574  },
    -
    2575  // Rule Fiji 2009 only - Nov 29 2:00 1:00 -
    -
    2576  {
    -
    2577  -91 /*fromYearTiny (2009)*/,
    -
    2578  -91 /*toYearTiny (2009)*/,
    -
    2579  11 /*inMonth*/,
    -
    2580  0 /*onDayOfWeek*/,
    -
    2581  29 /*onDayOfMonth*/,
    -
    2582  8 /*atTimeCode*/,
    -
    2583  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2584  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2585  0 /*letterIndex ("")*/,
    -
    2586  },
    -
    2587  // Rule Fiji 2010 only - Mar lastSun 3:00 0 -
    -
    2588  {
    -
    2589  -90 /*fromYearTiny (2010)*/,
    -
    2590  -90 /*toYearTiny (2010)*/,
    -
    2591  3 /*inMonth*/,
    -
    2592  7 /*onDayOfWeek*/,
    -
    2593  0 /*onDayOfMonth*/,
    -
    2594  12 /*atTimeCode*/,
    -
    2595  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2596  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2597  0 /*letterIndex ("")*/,
    -
    2598  },
    -
    2599  // Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 -
    -
    2600  {
    -
    2601  -90 /*fromYearTiny (2010)*/,
    -
    2602  -87 /*toYearTiny (2013)*/,
    -
    2603  10 /*inMonth*/,
    -
    2604  7 /*onDayOfWeek*/,
    -
    2605  21 /*onDayOfMonth*/,
    -
    2606  8 /*atTimeCode*/,
    -
    2607  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2608  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2609  0 /*letterIndex ("")*/,
    -
    2610  },
    -
    2611  // Rule Fiji 2011 only - Mar Sun>=1 3:00 0 -
    -
    2612  {
    -
    2613  -89 /*fromYearTiny (2011)*/,
    -
    2614  -89 /*toYearTiny (2011)*/,
    -
    2615  3 /*inMonth*/,
    -
    2616  7 /*onDayOfWeek*/,
    -
    2617  1 /*onDayOfMonth*/,
    -
    2618  12 /*atTimeCode*/,
    -
    2619  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2620  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2621  0 /*letterIndex ("")*/,
    -
    2622  },
    -
    2623  // Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 -
    -
    2624  {
    -
    2625  -88 /*fromYearTiny (2012)*/,
    -
    2626  -87 /*toYearTiny (2013)*/,
    -
    2627  1 /*inMonth*/,
    -
    2628  7 /*onDayOfWeek*/,
    -
    2629  18 /*onDayOfMonth*/,
    -
    2630  12 /*atTimeCode*/,
    -
    2631  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2632  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2633  0 /*letterIndex ("")*/,
    -
    2634  },
    -
    2635  // Rule Fiji 2014 only - Jan Sun>=18 2:00 0 -
    -
    2636  {
    -
    2637  -86 /*fromYearTiny (2014)*/,
    -
    2638  -86 /*toYearTiny (2014)*/,
    -
    2639  1 /*inMonth*/,
    -
    2640  7 /*onDayOfWeek*/,
    -
    2641  18 /*onDayOfMonth*/,
    -
    2642  8 /*atTimeCode*/,
    -
    2643  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2644  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2645  0 /*letterIndex ("")*/,
    -
    2646  },
    -
    2647  // Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 -
    -
    2648  {
    -
    2649  -86 /*fromYearTiny (2014)*/,
    -
    2650  -82 /*toYearTiny (2018)*/,
    -
    2651  11 /*inMonth*/,
    -
    2652  7 /*onDayOfWeek*/,
    -
    2653  1 /*onDayOfMonth*/,
    -
    2654  8 /*atTimeCode*/,
    -
    2655  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2656  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2657  0 /*letterIndex ("")*/,
    -
    2658  },
    -
    2659  // Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 -
    -
    2660  {
    -
    2661  -85 /*fromYearTiny (2015)*/,
    -
    2662  -79 /*toYearTiny (2021)*/,
    -
    2663  1 /*inMonth*/,
    -
    2664  7 /*onDayOfWeek*/,
    -
    2665  12 /*onDayOfMonth*/,
    -
    2666  12 /*atTimeCode*/,
    -
    2667  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2668  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2669  0 /*letterIndex ("")*/,
    -
    2670  },
    -
    2671  // Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 -
    -
    2672  {
    -
    2673  -81 /*fromYearTiny (2019)*/,
    -
    2674  -81 /*toYearTiny (2019)*/,
    -
    2675  11 /*inMonth*/,
    -
    2676  7 /*onDayOfWeek*/,
    -
    2677  8 /*onDayOfMonth*/,
    -
    2678  8 /*atTimeCode*/,
    -
    2679  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2680  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2681  0 /*letterIndex ("")*/,
    -
    2682  },
    -
    2683  // Rule Fiji 2020 only - Dec 20 2:00 1:00 -
    -
    2684  {
    -
    2685  -80 /*fromYearTiny (2020)*/,
    -
    2686  -80 /*toYearTiny (2020)*/,
    -
    2687  12 /*inMonth*/,
    -
    2688  0 /*onDayOfWeek*/,
    -
    2689  20 /*onDayOfMonth*/,
    -
    2690  8 /*atTimeCode*/,
    -
    2691  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2692  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2693  0 /*letterIndex ("")*/,
    -
    2694  },
    -
    2695 
    -
    2696 };
    -
    2697 
    -
    2698 const extended::Info::ZonePolicy kZonePolicyFiji ACE_TIME_PROGMEM = {
    -
    2699  kZoneRulesFiji /*rules*/,
    -
    2700  13 /*numRules*/,
    -
    2701 };
    -
    2702 
    -
    2703 //---------------------------------------------------------------------------
    -
    2704 // Policy name: Guam
    -
    2705 // Rules: 1
    -
    2706 //---------------------------------------------------------------------------
    -
    2707 
    -
    2708 static const extended::Info::ZoneRule kZoneRulesGuam[] ACE_TIME_PROGMEM = {
    -
    2709  // Anchor: Rule Guam 1977 only - Aug 28 2:00 0 S
    -
    2710  {
    -
    2711  -127 /*fromYearTiny (-32767)*/,
    -
    2712  -127 /*toYearTiny (-32767)*/,
    -
    2713  1 /*inMonth*/,
    -
    2714  0 /*onDayOfWeek*/,
    -
    2715  1 /*onDayOfMonth*/,
    -
    2716  0 /*atTimeCode*/,
    -
    2717  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2718  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2719  7 /*letterIndex ("S")*/,
    -
    2720  },
    -
    2721 
    -
    2722 };
    -
    2723 
    -
    2724 const extended::Info::ZonePolicy kZonePolicyGuam ACE_TIME_PROGMEM = {
    -
    2725  kZoneRulesGuam /*rules*/,
    -
    2726  1 /*numRules*/,
    -
    2727 };
    -
    2728 
    -
    2729 //---------------------------------------------------------------------------
    -
    2730 // Policy name: Guat
    -
    2731 // Rules: 4
    -
    2732 //---------------------------------------------------------------------------
    -
    2733 
    -
    2734 static const extended::Info::ZoneRule kZoneRulesGuat[] ACE_TIME_PROGMEM = {
    -
    2735  // Anchor: Rule Guat 1991 only - Sep 7 0:00 0 S
    -
    2736  {
    -
    2737  -127 /*fromYearTiny (-32767)*/,
    -
    2738  -127 /*toYearTiny (-32767)*/,
    -
    2739  1 /*inMonth*/,
    -
    2740  0 /*onDayOfWeek*/,
    -
    2741  1 /*onDayOfMonth*/,
    -
    2742  0 /*atTimeCode*/,
    -
    2743  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2744  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2745  7 /*letterIndex ("S")*/,
    -
    2746  },
    -
    2747  // Rule Guat 1991 only - Sep 7 0:00 0 S
    -
    2748  {
    -
    2749  -109 /*fromYearTiny (1991)*/,
    -
    2750  -109 /*toYearTiny (1991)*/,
    -
    2751  9 /*inMonth*/,
    -
    2752  0 /*onDayOfWeek*/,
    -
    2753  7 /*onDayOfMonth*/,
    -
    2754  0 /*atTimeCode*/,
    -
    2755  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2756  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2757  7 /*letterIndex ("S")*/,
    -
    2758  },
    -
    2759  // Rule Guat 2006 only - Apr 30 0:00 1:00 D
    -
    2760  {
    -
    2761  -94 /*fromYearTiny (2006)*/,
    -
    2762  -94 /*toYearTiny (2006)*/,
    -
    2763  4 /*inMonth*/,
    -
    2764  0 /*onDayOfWeek*/,
    -
    2765  30 /*onDayOfMonth*/,
    -
    2766  0 /*atTimeCode*/,
    -
    2767  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2768  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2769  5 /*letterIndex ("D")*/,
    -
    2770  },
    -
    2771  // Rule Guat 2006 only - Oct 1 0:00 0 S
    -
    2772  {
    -
    2773  -94 /*fromYearTiny (2006)*/,
    -
    2774  -94 /*toYearTiny (2006)*/,
    -
    2775  10 /*inMonth*/,
    -
    2776  0 /*onDayOfWeek*/,
    -
    2777  1 /*onDayOfMonth*/,
    -
    2778  0 /*atTimeCode*/,
    -
    2779  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2780  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2781  7 /*letterIndex ("S")*/,
    -
    2782  },
    -
    2783 
    -
    2784 };
    -
    2785 
    -
    2786 const extended::Info::ZonePolicy kZonePolicyGuat ACE_TIME_PROGMEM = {
    -
    2787  kZoneRulesGuat /*rules*/,
    -
    2788  4 /*numRules*/,
    -
    2789 };
    -
    2790 
    -
    2791 //---------------------------------------------------------------------------
    -
    2792 // Policy name: HK
    -
    2793 // Rules: 1
    -
    2794 //---------------------------------------------------------------------------
    -
    2795 
    -
    2796 static const extended::Info::ZoneRule kZoneRulesHK[] ACE_TIME_PROGMEM = {
    -
    2797  // Anchor: Rule HK 1979 only - Oct 21 3:30 0 -
    -
    2798  {
    -
    2799  -127 /*fromYearTiny (-32767)*/,
    -
    2800  -127 /*toYearTiny (-32767)*/,
    -
    2801  1 /*inMonth*/,
    -
    2802  0 /*onDayOfWeek*/,
    -
    2803  1 /*onDayOfMonth*/,
    -
    2804  0 /*atTimeCode*/,
    -
    2805  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2806  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2807  0 /*letterIndex ("")*/,
    -
    2808  },
    -
    2809 
    -
    2810 };
    -
    2811 
    -
    2812 const extended::Info::ZonePolicy kZonePolicyHK ACE_TIME_PROGMEM = {
    -
    2813  kZoneRulesHK /*rules*/,
    -
    2814  1 /*numRules*/,
    -
    2815 };
    -
    2816 
    -
    2817 //---------------------------------------------------------------------------
    -
    2818 // Policy name: Haiti
    -
    2819 // Rules: 8
    -
    2820 //---------------------------------------------------------------------------
    -
    2821 
    -
    2822 static const extended::Info::ZoneRule kZoneRulesHaiti[] ACE_TIME_PROGMEM = {
    -
    2823  // Anchor: Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S
    -
    2824  {
    -
    2825  -127 /*fromYearTiny (-32767)*/,
    -
    2826  -127 /*toYearTiny (-32767)*/,
    -
    2827  1 /*inMonth*/,
    -
    2828  0 /*onDayOfWeek*/,
    -
    2829  1 /*onDayOfMonth*/,
    -
    2830  0 /*atTimeCode*/,
    -
    2831  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2832  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2833  7 /*letterIndex ("S")*/,
    -
    2834  },
    -
    2835  // Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S
    -
    2836  {
    -
    2837  -112 /*fromYearTiny (1988)*/,
    -
    2838  -103 /*toYearTiny (1997)*/,
    -
    2839  10 /*inMonth*/,
    -
    2840  7 /*onDayOfWeek*/,
    -
    2841  0 /*onDayOfMonth*/,
    -
    2842  4 /*atTimeCode*/,
    -
    2843  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    2844  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2845  7 /*letterIndex ("S")*/,
    -
    2846  },
    -
    2847  // Rule Haiti 2005 2006 - Apr Sun>=1 0:00 1:00 D
    -
    2848  {
    -
    2849  -95 /*fromYearTiny (2005)*/,
    -
    2850  -94 /*toYearTiny (2006)*/,
    -
    2851  4 /*inMonth*/,
    -
    2852  7 /*onDayOfWeek*/,
    -
    2853  1 /*onDayOfMonth*/,
    -
    2854  0 /*atTimeCode*/,
    -
    2855  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2856  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2857  5 /*letterIndex ("D")*/,
    -
    2858  },
    -
    2859  // Rule Haiti 2005 2006 - Oct lastSun 0:00 0 S
    -
    2860  {
    -
    2861  -95 /*fromYearTiny (2005)*/,
    -
    2862  -94 /*toYearTiny (2006)*/,
    -
    2863  10 /*inMonth*/,
    -
    2864  7 /*onDayOfWeek*/,
    -
    2865  0 /*onDayOfMonth*/,
    -
    2866  0 /*atTimeCode*/,
    -
    2867  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2868  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2869  7 /*letterIndex ("S")*/,
    -
    2870  },
    -
    2871  // Rule Haiti 2012 2015 - Mar Sun>=8 2:00 1:00 D
    -
    2872  {
    -
    2873  -88 /*fromYearTiny (2012)*/,
    -
    2874  -85 /*toYearTiny (2015)*/,
    -
    2875  3 /*inMonth*/,
    -
    2876  7 /*onDayOfWeek*/,
    -
    2877  8 /*onDayOfMonth*/,
    -
    2878  8 /*atTimeCode*/,
    -
    2879  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2880  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2881  5 /*letterIndex ("D")*/,
    -
    2882  },
    -
    2883  // Rule Haiti 2012 2015 - Nov Sun>=1 2:00 0 S
    -
    2884  {
    -
    2885  -88 /*fromYearTiny (2012)*/,
    -
    2886  -85 /*toYearTiny (2015)*/,
    -
    2887  11 /*inMonth*/,
    -
    2888  7 /*onDayOfWeek*/,
    -
    2889  1 /*onDayOfMonth*/,
    -
    2890  8 /*atTimeCode*/,
    -
    2891  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2892  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2893  7 /*letterIndex ("S")*/,
    -
    2894  },
    -
    2895  // Rule Haiti 2017 max - Mar Sun>=8 2:00 1:00 D
    -
    2896  {
    -
    2897  -83 /*fromYearTiny (2017)*/,
    -
    2898  126 /*toYearTiny (32766)*/,
    -
    2899  3 /*inMonth*/,
    -
    2900  7 /*onDayOfWeek*/,
    -
    2901  8 /*onDayOfMonth*/,
    -
    2902  8 /*atTimeCode*/,
    -
    2903  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2904  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2905  5 /*letterIndex ("D")*/,
    -
    2906  },
    -
    2907  // Rule Haiti 2017 max - Nov Sun>=1 2:00 0 S
    -
    2908  {
    -
    2909  -83 /*fromYearTiny (2017)*/,
    -
    2910  126 /*toYearTiny (32766)*/,
    -
    2911  11 /*inMonth*/,
    -
    2912  7 /*onDayOfWeek*/,
    -
    2913  1 /*onDayOfMonth*/,
    -
    2914  8 /*atTimeCode*/,
    -
    2915  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2916  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2917  7 /*letterIndex ("S")*/,
    -
    2918  },
    -
    2919 
    -
    2920 };
    -
    2921 
    -
    2922 const extended::Info::ZonePolicy kZonePolicyHaiti ACE_TIME_PROGMEM = {
    -
    2923  kZoneRulesHaiti /*rules*/,
    -
    2924  8 /*numRules*/,
    -
    2925 };
    -
    2926 
    -
    2927 //---------------------------------------------------------------------------
    -
    2928 // Policy name: Holiday
    -
    2929 // Rules: 1
    -
    2930 //---------------------------------------------------------------------------
    -
    2931 
    -
    2932 static const extended::Info::ZoneRule kZoneRulesHoliday[] ACE_TIME_PROGMEM = {
    -
    2933  // Anchor: Rule Holiday 1993 1994 - Mar Sun>=1 2:00s 0 S
    -
    2934  {
    -
    2935  -127 /*fromYearTiny (-32767)*/,
    -
    2936  -127 /*toYearTiny (-32767)*/,
    -
    2937  1 /*inMonth*/,
    -
    2938  0 /*onDayOfWeek*/,
    -
    2939  1 /*onDayOfMonth*/,
    -
    2940  0 /*atTimeCode*/,
    -
    2941  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2942  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2943  7 /*letterIndex ("S")*/,
    -
    2944  },
    -
    2945 
    -
    2946 };
    -
    2947 
    -
    2948 const extended::Info::ZonePolicy kZonePolicyHoliday ACE_TIME_PROGMEM = {
    -
    2949  kZoneRulesHoliday /*rules*/,
    -
    2950  1 /*numRules*/,
    -
    2951 };
    -
    2952 
    -
    2953 //---------------------------------------------------------------------------
    -
    2954 // Policy name: Hond
    -
    2955 // Rules: 4
    -
    2956 //---------------------------------------------------------------------------
    -
    2957 
    -
    2958 static const extended::Info::ZoneRule kZoneRulesHond[] ACE_TIME_PROGMEM = {
    -
    2959  // Anchor: Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
    -
    2960  {
    -
    2961  -127 /*fromYearTiny (-32767)*/,
    -
    2962  -127 /*toYearTiny (-32767)*/,
    -
    2963  1 /*inMonth*/,
    -
    2964  0 /*onDayOfWeek*/,
    -
    2965  1 /*onDayOfMonth*/,
    -
    2966  0 /*atTimeCode*/,
    -
    2967  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2968  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2969  7 /*letterIndex ("S")*/,
    -
    2970  },
    -
    2971  // Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
    -
    2972  {
    -
    2973  -113 /*fromYearTiny (1987)*/,
    -
    2974  -112 /*toYearTiny (1988)*/,
    -
    2975  9 /*inMonth*/,
    -
    2976  7 /*onDayOfWeek*/,
    -
    2977  0 /*onDayOfMonth*/,
    -
    2978  0 /*atTimeCode*/,
    -
    2979  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2980  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    2981  7 /*letterIndex ("S")*/,
    -
    2982  },
    -
    2983  // Rule Hond 2006 only - May Sun>=1 0:00 1:00 D
    -
    2984  {
    -
    2985  -94 /*fromYearTiny (2006)*/,
    -
    2986  -94 /*toYearTiny (2006)*/,
    -
    2987  5 /*inMonth*/,
    -
    2988  7 /*onDayOfWeek*/,
    -
    2989  1 /*onDayOfMonth*/,
    -
    2990  0 /*atTimeCode*/,
    -
    2991  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    2992  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    2993  5 /*letterIndex ("D")*/,
    -
    2994  },
    -
    2995  // Rule Hond 2006 only - Aug Mon>=1 0:00 0 S
    -
    2996  {
    -
    2997  -94 /*fromYearTiny (2006)*/,
    -
    2998  -94 /*toYearTiny (2006)*/,
    -
    2999  8 /*inMonth*/,
    -
    3000  1 /*onDayOfWeek*/,
    -
    3001  1 /*onDayOfMonth*/,
    -
    3002  0 /*atTimeCode*/,
    -
    3003  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3004  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3005  7 /*letterIndex ("S")*/,
    -
    3006  },
    -
    3007 
    -
    3008 };
    -
    3009 
    -
    3010 const extended::Info::ZonePolicy kZonePolicyHond ACE_TIME_PROGMEM = {
    -
    3011  kZoneRulesHond /*rules*/,
    -
    3012  4 /*numRules*/,
    -
    3013 };
    -
    3014 
    -
    3015 //---------------------------------------------------------------------------
    -
    3016 // Policy name: Iran
    -
    3017 // Rules: 28
    -
    3018 //---------------------------------------------------------------------------
    -
    3019 
    -
    3020 static const extended::Info::ZoneRule kZoneRulesIran[] ACE_TIME_PROGMEM = {
    -
    3021  // Anchor: Rule Iran 1996 only - Sep 20 24:00 0 -
    -
    3022  {
    -
    3023  -127 /*fromYearTiny (-32767)*/,
    -
    3024  -127 /*toYearTiny (-32767)*/,
    -
    3025  1 /*inMonth*/,
    -
    3026  0 /*onDayOfWeek*/,
    -
    3027  1 /*onDayOfMonth*/,
    -
    3028  0 /*atTimeCode*/,
    -
    3029  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3030  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3031  0 /*letterIndex ("")*/,
    -
    3032  },
    -
    3033  // Rule Iran 1996 only - Sep 20 24:00 0 -
    -
    3034  {
    -
    3035  -104 /*fromYearTiny (1996)*/,
    -
    3036  -104 /*toYearTiny (1996)*/,
    -
    3037  9 /*inMonth*/,
    -
    3038  0 /*onDayOfWeek*/,
    -
    3039  20 /*onDayOfMonth*/,
    -
    3040  96 /*atTimeCode*/,
    -
    3041  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3042  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3043  0 /*letterIndex ("")*/,
    -
    3044  },
    -
    3045  // Rule Iran 1997 1999 - Mar 21 24:00 1:00 -
    -
    3046  {
    -
    3047  -103 /*fromYearTiny (1997)*/,
    -
    3048  -101 /*toYearTiny (1999)*/,
    -
    3049  3 /*inMonth*/,
    -
    3050  0 /*onDayOfWeek*/,
    -
    3051  21 /*onDayOfMonth*/,
    -
    3052  96 /*atTimeCode*/,
    -
    3053  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3054  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3055  0 /*letterIndex ("")*/,
    -
    3056  },
    -
    3057  // Rule Iran 1997 1999 - Sep 21 24:00 0 -
    -
    3058  {
    -
    3059  -103 /*fromYearTiny (1997)*/,
    -
    3060  -101 /*toYearTiny (1999)*/,
    -
    3061  9 /*inMonth*/,
    -
    3062  0 /*onDayOfWeek*/,
    -
    3063  21 /*onDayOfMonth*/,
    -
    3064  96 /*atTimeCode*/,
    -
    3065  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3066  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3067  0 /*letterIndex ("")*/,
    -
    3068  },
    -
    3069  // Rule Iran 2000 only - Mar 20 24:00 1:00 -
    -
    3070  {
    -
    3071  -100 /*fromYearTiny (2000)*/,
    -
    3072  -100 /*toYearTiny (2000)*/,
    -
    3073  3 /*inMonth*/,
    -
    3074  0 /*onDayOfWeek*/,
    -
    3075  20 /*onDayOfMonth*/,
    -
    3076  96 /*atTimeCode*/,
    -
    3077  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3078  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3079  0 /*letterIndex ("")*/,
    -
    3080  },
    -
    3081  // Rule Iran 2000 only - Sep 20 24:00 0 -
    -
    3082  {
    -
    3083  -100 /*fromYearTiny (2000)*/,
    -
    3084  -100 /*toYearTiny (2000)*/,
    -
    3085  9 /*inMonth*/,
    -
    3086  0 /*onDayOfWeek*/,
    -
    3087  20 /*onDayOfMonth*/,
    -
    3088  96 /*atTimeCode*/,
    -
    3089  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3090  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3091  0 /*letterIndex ("")*/,
    -
    3092  },
    -
    3093  // Rule Iran 2001 2003 - Mar 21 24:00 1:00 -
    -
    3094  {
    -
    3095  -99 /*fromYearTiny (2001)*/,
    -
    3096  -97 /*toYearTiny (2003)*/,
    -
    3097  3 /*inMonth*/,
    -
    3098  0 /*onDayOfWeek*/,
    -
    3099  21 /*onDayOfMonth*/,
    -
    3100  96 /*atTimeCode*/,
    -
    3101  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3102  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3103  0 /*letterIndex ("")*/,
    -
    3104  },
    -
    3105  // Rule Iran 2001 2003 - Sep 21 24:00 0 -
    -
    3106  {
    -
    3107  -99 /*fromYearTiny (2001)*/,
    -
    3108  -97 /*toYearTiny (2003)*/,
    -
    3109  9 /*inMonth*/,
    -
    3110  0 /*onDayOfWeek*/,
    -
    3111  21 /*onDayOfMonth*/,
    -
    3112  96 /*atTimeCode*/,
    -
    3113  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3114  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3115  0 /*letterIndex ("")*/,
    -
    3116  },
    -
    3117  // Rule Iran 2004 only - Mar 20 24:00 1:00 -
    -
    3118  {
    -
    3119  -96 /*fromYearTiny (2004)*/,
    -
    3120  -96 /*toYearTiny (2004)*/,
    -
    3121  3 /*inMonth*/,
    -
    3122  0 /*onDayOfWeek*/,
    -
    3123  20 /*onDayOfMonth*/,
    -
    3124  96 /*atTimeCode*/,
    -
    3125  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3126  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3127  0 /*letterIndex ("")*/,
    -
    3128  },
    -
    3129  // Rule Iran 2004 only - Sep 20 24:00 0 -
    -
    3130  {
    -
    3131  -96 /*fromYearTiny (2004)*/,
    -
    3132  -96 /*toYearTiny (2004)*/,
    -
    3133  9 /*inMonth*/,
    -
    3134  0 /*onDayOfWeek*/,
    -
    3135  20 /*onDayOfMonth*/,
    -
    3136  96 /*atTimeCode*/,
    -
    3137  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3138  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3139  0 /*letterIndex ("")*/,
    -
    3140  },
    -
    3141  // Rule Iran 2005 only - Mar 21 24:00 1:00 -
    -
    3142  {
    -
    3143  -95 /*fromYearTiny (2005)*/,
    -
    3144  -95 /*toYearTiny (2005)*/,
    -
    3145  3 /*inMonth*/,
    -
    3146  0 /*onDayOfWeek*/,
    -
    3147  21 /*onDayOfMonth*/,
    -
    3148  96 /*atTimeCode*/,
    -
    3149  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3150  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3151  0 /*letterIndex ("")*/,
    -
    3152  },
    -
    3153  // Rule Iran 2005 only - Sep 21 24:00 0 -
    -
    3154  {
    -
    3155  -95 /*fromYearTiny (2005)*/,
    -
    3156  -95 /*toYearTiny (2005)*/,
    -
    3157  9 /*inMonth*/,
    -
    3158  0 /*onDayOfWeek*/,
    -
    3159  21 /*onDayOfMonth*/,
    -
    3160  96 /*atTimeCode*/,
    -
    3161  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3162  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3163  0 /*letterIndex ("")*/,
    -
    3164  },
    -
    3165  // Rule Iran 2008 only - Mar 20 24:00 1:00 -
    -
    3166  {
    -
    3167  -92 /*fromYearTiny (2008)*/,
    -
    3168  -92 /*toYearTiny (2008)*/,
    -
    3169  3 /*inMonth*/,
    -
    3170  0 /*onDayOfWeek*/,
    -
    3171  20 /*onDayOfMonth*/,
    -
    3172  96 /*atTimeCode*/,
    -
    3173  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3174  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3175  0 /*letterIndex ("")*/,
    -
    3176  },
    -
    3177  // Rule Iran 2008 only - Sep 20 24:00 0 -
    -
    3178  {
    -
    3179  -92 /*fromYearTiny (2008)*/,
    -
    3180  -92 /*toYearTiny (2008)*/,
    -
    3181  9 /*inMonth*/,
    -
    3182  0 /*onDayOfWeek*/,
    -
    3183  20 /*onDayOfMonth*/,
    -
    3184  96 /*atTimeCode*/,
    -
    3185  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3186  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3187  0 /*letterIndex ("")*/,
    -
    3188  },
    -
    3189  // Rule Iran 2009 2011 - Mar 21 24:00 1:00 -
    -
    3190  {
    -
    3191  -91 /*fromYearTiny (2009)*/,
    -
    3192  -89 /*toYearTiny (2011)*/,
    -
    3193  3 /*inMonth*/,
    -
    3194  0 /*onDayOfWeek*/,
    -
    3195  21 /*onDayOfMonth*/,
    -
    3196  96 /*atTimeCode*/,
    -
    3197  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3198  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3199  0 /*letterIndex ("")*/,
    -
    3200  },
    -
    3201  // Rule Iran 2009 2011 - Sep 21 24:00 0 -
    -
    3202  {
    -
    3203  -91 /*fromYearTiny (2009)*/,
    -
    3204  -89 /*toYearTiny (2011)*/,
    -
    3205  9 /*inMonth*/,
    -
    3206  0 /*onDayOfWeek*/,
    -
    3207  21 /*onDayOfMonth*/,
    -
    3208  96 /*atTimeCode*/,
    -
    3209  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3210  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3211  0 /*letterIndex ("")*/,
    -
    3212  },
    -
    3213  // Rule Iran 2012 only - Mar 20 24:00 1:00 -
    -
    3214  {
    -
    3215  -88 /*fromYearTiny (2012)*/,
    -
    3216  -88 /*toYearTiny (2012)*/,
    -
    3217  3 /*inMonth*/,
    -
    3218  0 /*onDayOfWeek*/,
    -
    3219  20 /*onDayOfMonth*/,
    -
    3220  96 /*atTimeCode*/,
    -
    3221  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3222  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3223  0 /*letterIndex ("")*/,
    -
    3224  },
    -
    3225  // Rule Iran 2012 only - Sep 20 24:00 0 -
    -
    3226  {
    -
    3227  -88 /*fromYearTiny (2012)*/,
    -
    3228  -88 /*toYearTiny (2012)*/,
    -
    3229  9 /*inMonth*/,
    -
    3230  0 /*onDayOfWeek*/,
    -
    3231  20 /*onDayOfMonth*/,
    -
    3232  96 /*atTimeCode*/,
    -
    3233  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3234  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3235  0 /*letterIndex ("")*/,
    -
    3236  },
    -
    3237  // Rule Iran 2013 2015 - Mar 21 24:00 1:00 -
    -
    3238  {
    -
    3239  -87 /*fromYearTiny (2013)*/,
    -
    3240  -85 /*toYearTiny (2015)*/,
    -
    3241  3 /*inMonth*/,
    -
    3242  0 /*onDayOfWeek*/,
    -
    3243  21 /*onDayOfMonth*/,
    -
    3244  96 /*atTimeCode*/,
    -
    3245  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3246  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3247  0 /*letterIndex ("")*/,
    -
    3248  },
    -
    3249  // Rule Iran 2013 2015 - Sep 21 24:00 0 -
    -
    3250  {
    -
    3251  -87 /*fromYearTiny (2013)*/,
    -
    3252  -85 /*toYearTiny (2015)*/,
    -
    3253  9 /*inMonth*/,
    -
    3254  0 /*onDayOfWeek*/,
    -
    3255  21 /*onDayOfMonth*/,
    -
    3256  96 /*atTimeCode*/,
    -
    3257  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3258  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3259  0 /*letterIndex ("")*/,
    -
    3260  },
    -
    3261  // Rule Iran 2016 only - Mar 20 24:00 1:00 -
    -
    3262  {
    -
    3263  -84 /*fromYearTiny (2016)*/,
    -
    3264  -84 /*toYearTiny (2016)*/,
    -
    3265  3 /*inMonth*/,
    -
    3266  0 /*onDayOfWeek*/,
    -
    3267  20 /*onDayOfMonth*/,
    -
    3268  96 /*atTimeCode*/,
    -
    3269  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3270  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3271  0 /*letterIndex ("")*/,
    -
    3272  },
    -
    3273  // Rule Iran 2016 only - Sep 20 24:00 0 -
    -
    3274  {
    -
    3275  -84 /*fromYearTiny (2016)*/,
    -
    3276  -84 /*toYearTiny (2016)*/,
    -
    3277  9 /*inMonth*/,
    -
    3278  0 /*onDayOfWeek*/,
    -
    3279  20 /*onDayOfMonth*/,
    -
    3280  96 /*atTimeCode*/,
    -
    3281  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3282  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3283  0 /*letterIndex ("")*/,
    -
    3284  },
    -
    3285  // Rule Iran 2017 2019 - Mar 21 24:00 1:00 -
    -
    3286  {
    -
    3287  -83 /*fromYearTiny (2017)*/,
    -
    3288  -81 /*toYearTiny (2019)*/,
    -
    3289  3 /*inMonth*/,
    -
    3290  0 /*onDayOfWeek*/,
    -
    3291  21 /*onDayOfMonth*/,
    -
    3292  96 /*atTimeCode*/,
    -
    3293  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3294  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3295  0 /*letterIndex ("")*/,
    -
    3296  },
    -
    3297  // Rule Iran 2017 2019 - Sep 21 24:00 0 -
    -
    3298  {
    -
    3299  -83 /*fromYearTiny (2017)*/,
    -
    3300  -81 /*toYearTiny (2019)*/,
    -
    3301  9 /*inMonth*/,
    -
    3302  0 /*onDayOfWeek*/,
    -
    3303  21 /*onDayOfMonth*/,
    -
    3304  96 /*atTimeCode*/,
    -
    3305  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3306  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3307  0 /*letterIndex ("")*/,
    -
    3308  },
    -
    3309  // Rule Iran 2020 only - Mar 20 24:00 1:00 -
    -
    3310  {
    -
    3311  -80 /*fromYearTiny (2020)*/,
    -
    3312  -80 /*toYearTiny (2020)*/,
    -
    3313  3 /*inMonth*/,
    -
    3314  0 /*onDayOfWeek*/,
    -
    3315  20 /*onDayOfMonth*/,
    -
    3316  96 /*atTimeCode*/,
    -
    3317  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3318  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3319  0 /*letterIndex ("")*/,
    -
    3320  },
    -
    3321  // Rule Iran 2020 only - Sep 20 24:00 0 -
    -
    3322  {
    -
    3323  -80 /*fromYearTiny (2020)*/,
    -
    3324  -80 /*toYearTiny (2020)*/,
    -
    3325  9 /*inMonth*/,
    -
    3326  0 /*onDayOfWeek*/,
    -
    3327  20 /*onDayOfMonth*/,
    -
    3328  96 /*atTimeCode*/,
    -
    3329  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3330  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3331  0 /*letterIndex ("")*/,
    -
    3332  },
    -
    3333  // Rule Iran 2021 2022 - Mar 21 24:00 1:00 -
    -
    3334  {
    -
    3335  -79 /*fromYearTiny (2021)*/,
    -
    3336  -78 /*toYearTiny (2022)*/,
    -
    3337  3 /*inMonth*/,
    -
    3338  0 /*onDayOfWeek*/,
    -
    3339  21 /*onDayOfMonth*/,
    -
    3340  96 /*atTimeCode*/,
    -
    3341  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3342  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3343  0 /*letterIndex ("")*/,
    -
    3344  },
    -
    3345  // Rule Iran 2021 2022 - Sep 21 24:00 0 -
    -
    3346  {
    -
    3347  -79 /*fromYearTiny (2021)*/,
    -
    3348  -78 /*toYearTiny (2022)*/,
    -
    3349  9 /*inMonth*/,
    -
    3350  0 /*onDayOfWeek*/,
    -
    3351  21 /*onDayOfMonth*/,
    -
    3352  96 /*atTimeCode*/,
    -
    3353  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3354  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3355  0 /*letterIndex ("")*/,
    -
    3356  },
    -
    3357 
    -
    3358 };
    -
    3359 
    -
    3360 const extended::Info::ZonePolicy kZonePolicyIran ACE_TIME_PROGMEM = {
    -
    3361  kZoneRulesIran /*rules*/,
    -
    3362  28 /*numRules*/,
    -
    3363 };
    -
    3364 
    -
    3365 //---------------------------------------------------------------------------
    -
    3366 // Policy name: Iraq
    -
    3367 // Rules: 4
    -
    3368 //---------------------------------------------------------------------------
    -
    3369 
    -
    3370 static const extended::Info::ZoneRule kZoneRulesIraq[] ACE_TIME_PROGMEM = {
    -
    3371  // Anchor: Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 -
    -
    3372  {
    -
    3373  -127 /*fromYearTiny (-32767)*/,
    -
    3374  -127 /*toYearTiny (-32767)*/,
    -
    3375  1 /*inMonth*/,
    -
    3376  0 /*onDayOfWeek*/,
    -
    3377  1 /*onDayOfMonth*/,
    -
    3378  0 /*atTimeCode*/,
    -
    3379  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3380  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3381  0 /*letterIndex ("")*/,
    -
    3382  },
    -
    3383  // Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 -
    -
    3384  {
    -
    3385  -115 /*fromYearTiny (1985)*/,
    -
    3386  -110 /*toYearTiny (1990)*/,
    -
    3387  9 /*inMonth*/,
    -
    3388  7 /*onDayOfWeek*/,
    -
    3389  0 /*onDayOfMonth*/,
    -
    3390  4 /*atTimeCode*/,
    -
    3391  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3392  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3393  0 /*letterIndex ("")*/,
    -
    3394  },
    -
    3395  // Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 -
    -
    3396  {
    -
    3397  -109 /*fromYearTiny (1991)*/,
    -
    3398  -93 /*toYearTiny (2007)*/,
    -
    3399  4 /*inMonth*/,
    -
    3400  0 /*onDayOfWeek*/,
    -
    3401  1 /*onDayOfMonth*/,
    -
    3402  12 /*atTimeCode*/,
    -
    3403  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3404  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3405  0 /*letterIndex ("")*/,
    -
    3406  },
    -
    3407  // Rule Iraq 1991 2007 - Oct 1 3:00s 0 -
    -
    3408  {
    -
    3409  -109 /*fromYearTiny (1991)*/,
    -
    3410  -93 /*toYearTiny (2007)*/,
    -
    3411  10 /*inMonth*/,
    -
    3412  0 /*onDayOfWeek*/,
    -
    3413  1 /*onDayOfMonth*/,
    -
    3414  12 /*atTimeCode*/,
    -
    3415  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3416  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3417  0 /*letterIndex ("")*/,
    -
    3418  },
    -
    3419 
    -
    3420 };
    -
    3421 
    -
    3422 const extended::Info::ZonePolicy kZonePolicyIraq ACE_TIME_PROGMEM = {
    -
    3423  kZoneRulesIraq /*rules*/,
    -
    3424  4 /*numRules*/,
    -
    3425 };
    -
    3426 
    -
    3427 //---------------------------------------------------------------------------
    -
    3428 // Policy name: Japan
    -
    3429 // Rules: 1
    -
    3430 //---------------------------------------------------------------------------
    -
    3431 
    -
    3432 static const extended::Info::ZoneRule kZoneRulesJapan[] ACE_TIME_PROGMEM = {
    -
    3433  // Anchor: Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S
    -
    3434  {
    -
    3435  -127 /*fromYearTiny (-32767)*/,
    -
    3436  -127 /*toYearTiny (-32767)*/,
    -
    3437  1 /*inMonth*/,
    -
    3438  0 /*onDayOfWeek*/,
    -
    3439  1 /*onDayOfMonth*/,
    -
    3440  0 /*atTimeCode*/,
    -
    3441  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3442  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3443  7 /*letterIndex ("S")*/,
    -
    3444  },
    -
    3445 
    -
    3446 };
    -
    3447 
    -
    3448 const extended::Info::ZonePolicy kZonePolicyJapan ACE_TIME_PROGMEM = {
    -
    3449  kZoneRulesJapan /*rules*/,
    -
    3450  1 /*numRules*/,
    -
    3451 };
    -
    3452 
    -
    3453 //---------------------------------------------------------------------------
    -
    3454 // Policy name: Jordan
    -
    3455 // Rules: 14
    -
    3456 //---------------------------------------------------------------------------
    -
    3457 
    -
    3458 static const extended::Info::ZoneRule kZoneRulesJordan[] ACE_TIME_PROGMEM = {
    -
    3459  // Anchor: Rule Jordan 1995 1998 - Sep Fri>=15 0:00s 0 -
    -
    3460  {
    -
    3461  -127 /*fromYearTiny (-32767)*/,
    -
    3462  -127 /*toYearTiny (-32767)*/,
    -
    3463  1 /*inMonth*/,
    -
    3464  0 /*onDayOfWeek*/,
    -
    3465  1 /*onDayOfMonth*/,
    -
    3466  0 /*atTimeCode*/,
    -
    3467  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3468  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3469  0 /*letterIndex ("")*/,
    -
    3470  },
    -
    3471  // Rule Jordan 1995 1998 - Sep Fri>=15 0:00s 0 -
    -
    3472  {
    -
    3473  -105 /*fromYearTiny (1995)*/,
    -
    3474  -102 /*toYearTiny (1998)*/,
    -
    3475  9 /*inMonth*/,
    -
    3476  5 /*onDayOfWeek*/,
    -
    3477  15 /*onDayOfMonth*/,
    -
    3478  0 /*atTimeCode*/,
    -
    3479  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3480  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3481  0 /*letterIndex ("")*/,
    -
    3482  },
    -
    3483  // Rule Jordan 1999 only - Jul 1 0:00s 1:00 S
    -
    3484  {
    -
    3485  -101 /*fromYearTiny (1999)*/,
    -
    3486  -101 /*toYearTiny (1999)*/,
    -
    3487  7 /*inMonth*/,
    -
    3488  0 /*onDayOfWeek*/,
    -
    3489  1 /*onDayOfMonth*/,
    -
    3490  0 /*atTimeCode*/,
    -
    3491  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3492  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3493  7 /*letterIndex ("S")*/,
    -
    3494  },
    -
    3495  // Rule Jordan 1999 2002 - Sep lastFri 0:00s 0 -
    -
    3496  {
    -
    3497  -101 /*fromYearTiny (1999)*/,
    -
    3498  -98 /*toYearTiny (2002)*/,
    -
    3499  9 /*inMonth*/,
    -
    3500  5 /*onDayOfWeek*/,
    -
    3501  0 /*onDayOfMonth*/,
    -
    3502  0 /*atTimeCode*/,
    -
    3503  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3504  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3505  0 /*letterIndex ("")*/,
    -
    3506  },
    -
    3507  // Rule Jordan 2000 2001 - Mar lastThu 0:00s 1:00 S
    -
    3508  {
    -
    3509  -100 /*fromYearTiny (2000)*/,
    -
    3510  -99 /*toYearTiny (2001)*/,
    -
    3511  3 /*inMonth*/,
    -
    3512  4 /*onDayOfWeek*/,
    -
    3513  0 /*onDayOfMonth*/,
    -
    3514  0 /*atTimeCode*/,
    -
    3515  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3516  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3517  7 /*letterIndex ("S")*/,
    -
    3518  },
    -
    3519  // Rule Jordan 2002 2012 - Mar lastThu 24:00 1:00 S
    -
    3520  {
    -
    3521  -98 /*fromYearTiny (2002)*/,
    -
    3522  -88 /*toYearTiny (2012)*/,
    -
    3523  3 /*inMonth*/,
    -
    3524  4 /*onDayOfWeek*/,
    -
    3525  0 /*onDayOfMonth*/,
    -
    3526  96 /*atTimeCode*/,
    -
    3527  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3528  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3529  7 /*letterIndex ("S")*/,
    -
    3530  },
    -
    3531  // Rule Jordan 2003 only - Oct 24 0:00s 0 -
    -
    3532  {
    -
    3533  -97 /*fromYearTiny (2003)*/,
    -
    3534  -97 /*toYearTiny (2003)*/,
    -
    3535  10 /*inMonth*/,
    -
    3536  0 /*onDayOfWeek*/,
    -
    3537  24 /*onDayOfMonth*/,
    -
    3538  0 /*atTimeCode*/,
    -
    3539  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3540  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3541  0 /*letterIndex ("")*/,
    -
    3542  },
    -
    3543  // Rule Jordan 2004 only - Oct 15 0:00s 0 -
    -
    3544  {
    -
    3545  -96 /*fromYearTiny (2004)*/,
    -
    3546  -96 /*toYearTiny (2004)*/,
    -
    3547  10 /*inMonth*/,
    -
    3548  0 /*onDayOfWeek*/,
    -
    3549  15 /*onDayOfMonth*/,
    -
    3550  0 /*atTimeCode*/,
    -
    3551  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3552  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3553  0 /*letterIndex ("")*/,
    -
    3554  },
    -
    3555  // Rule Jordan 2005 only - Sep lastFri 0:00s 0 -
    -
    3556  {
    -
    3557  -95 /*fromYearTiny (2005)*/,
    -
    3558  -95 /*toYearTiny (2005)*/,
    -
    3559  9 /*inMonth*/,
    -
    3560  5 /*onDayOfWeek*/,
    -
    3561  0 /*onDayOfMonth*/,
    -
    3562  0 /*atTimeCode*/,
    -
    3563  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3564  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3565  0 /*letterIndex ("")*/,
    -
    3566  },
    -
    3567  // Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 -
    -
    3568  {
    -
    3569  -94 /*fromYearTiny (2006)*/,
    -
    3570  -89 /*toYearTiny (2011)*/,
    -
    3571  10 /*inMonth*/,
    -
    3572  5 /*onDayOfWeek*/,
    -
    3573  0 /*onDayOfMonth*/,
    -
    3574  0 /*atTimeCode*/,
    -
    3575  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3576  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3577  0 /*letterIndex ("")*/,
    -
    3578  },
    -
    3579  // Rule Jordan 2013 only - Dec 20 0:00 0 -
    -
    3580  {
    -
    3581  -87 /*fromYearTiny (2013)*/,
    -
    3582  -87 /*toYearTiny (2013)*/,
    -
    3583  12 /*inMonth*/,
    -
    3584  0 /*onDayOfWeek*/,
    -
    3585  20 /*onDayOfMonth*/,
    -
    3586  0 /*atTimeCode*/,
    -
    3587  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3588  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3589  0 /*letterIndex ("")*/,
    -
    3590  },
    -
    3591  // Rule Jordan 2014 2021 - Mar lastThu 24:00 1:00 S
    -
    3592  {
    -
    3593  -86 /*fromYearTiny (2014)*/,
    -
    3594  -79 /*toYearTiny (2021)*/,
    -
    3595  3 /*inMonth*/,
    -
    3596  4 /*onDayOfWeek*/,
    -
    3597  0 /*onDayOfMonth*/,
    -
    3598  96 /*atTimeCode*/,
    -
    3599  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3600  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3601  7 /*letterIndex ("S")*/,
    -
    3602  },
    -
    3603  // Rule Jordan 2014 2022 - Oct lastFri 0:00s 0 -
    -
    3604  {
    -
    3605  -86 /*fromYearTiny (2014)*/,
    -
    3606  -78 /*toYearTiny (2022)*/,
    -
    3607  10 /*inMonth*/,
    -
    3608  5 /*onDayOfWeek*/,
    -
    3609  0 /*onDayOfMonth*/,
    -
    3610  0 /*atTimeCode*/,
    -
    3611  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    3612  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3613  0 /*letterIndex ("")*/,
    -
    3614  },
    -
    3615  // Rule Jordan 2022 only - Feb lastThu 24:00 1:00 S
    -
    3616  {
    -
    3617  -78 /*fromYearTiny (2022)*/,
    -
    3618  -78 /*toYearTiny (2022)*/,
    -
    3619  2 /*inMonth*/,
    -
    3620  4 /*onDayOfWeek*/,
    -
    3621  0 /*onDayOfMonth*/,
    -
    3622  96 /*atTimeCode*/,
    -
    3623  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3624  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3625  7 /*letterIndex ("S")*/,
    -
    3626  },
    -
    3627 
    -
    3628 };
    -
    3629 
    -
    3630 const extended::Info::ZonePolicy kZonePolicyJordan ACE_TIME_PROGMEM = {
    -
    3631  kZoneRulesJordan /*rules*/,
    -
    3632  14 /*numRules*/,
    -
    3633 };
    -
    3634 
    -
    3635 //---------------------------------------------------------------------------
    -
    3636 // Policy name: Kyrgyz
    -
    3637 // Rules: 4
    -
    3638 //---------------------------------------------------------------------------
    -
    3639 
    -
    3640 static const extended::Info::ZoneRule kZoneRulesKyrgyz[] ACE_TIME_PROGMEM = {
    -
    3641  // Anchor: Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
    -
    3642  {
    -
    3643  -127 /*fromYearTiny (-32767)*/,
    -
    3644  -127 /*toYearTiny (-32767)*/,
    -
    3645  1 /*inMonth*/,
    -
    3646  0 /*onDayOfWeek*/,
    -
    3647  1 /*onDayOfMonth*/,
    -
    3648  0 /*atTimeCode*/,
    -
    3649  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3650  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3651  0 /*letterIndex ("")*/,
    -
    3652  },
    -
    3653  // Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
    -
    3654  {
    -
    3655  -108 /*fromYearTiny (1992)*/,
    -
    3656  -104 /*toYearTiny (1996)*/,
    -
    3657  9 /*inMonth*/,
    -
    3658  7 /*onDayOfWeek*/,
    -
    3659  0 /*onDayOfMonth*/,
    -
    3660  0 /*atTimeCode*/,
    -
    3661  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3662  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3663  0 /*letterIndex ("")*/,
    -
    3664  },
    -
    3665  // Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 -
    -
    3666  {
    -
    3667  -103 /*fromYearTiny (1997)*/,
    -
    3668  -95 /*toYearTiny (2005)*/,
    -
    3669  3 /*inMonth*/,
    -
    3670  7 /*onDayOfWeek*/,
    -
    3671  0 /*onDayOfMonth*/,
    -
    3672  10 /*atTimeCode*/,
    -
    3673  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3674  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3675  0 /*letterIndex ("")*/,
    -
    3676  },
    -
    3677  // Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 -
    -
    3678  {
    -
    3679  -103 /*fromYearTiny (1997)*/,
    -
    3680  -96 /*toYearTiny (2004)*/,
    -
    3681  10 /*inMonth*/,
    -
    3682  7 /*onDayOfWeek*/,
    -
    3683  0 /*onDayOfMonth*/,
    -
    3684  10 /*atTimeCode*/,
    -
    3685  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3686  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3687  0 /*letterIndex ("")*/,
    -
    3688  },
    -
    3689 
    -
    3690 };
    -
    3691 
    -
    3692 const extended::Info::ZonePolicy kZonePolicyKyrgyz ACE_TIME_PROGMEM = {
    -
    3693  kZoneRulesKyrgyz /*rules*/,
    -
    3694  4 /*numRules*/,
    -
    3695 };
    -
    3696 
    -
    3697 //---------------------------------------------------------------------------
    -
    3698 // Policy name: LH
    -
    3699 // Rules: 10
    -
    3700 //---------------------------------------------------------------------------
    -
    3701 
    -
    3702 static const extended::Info::ZoneRule kZoneRulesLH[] ACE_TIME_PROGMEM = {
    -
    3703  // Anchor: Rule LH 1990 1995 - Mar Sun>=1 2:00 0 -
    -
    3704  {
    -
    3705  -127 /*fromYearTiny (-32767)*/,
    -
    3706  -127 /*toYearTiny (-32767)*/,
    -
    3707  1 /*inMonth*/,
    -
    3708  0 /*onDayOfWeek*/,
    -
    3709  1 /*onDayOfMonth*/,
    -
    3710  0 /*atTimeCode*/,
    -
    3711  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3712  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3713  0 /*letterIndex ("")*/,
    -
    3714  },
    -
    3715  // Rule LH 1987 1999 - Oct lastSun 2:00 0:30 -
    -
    3716  {
    -
    3717  -113 /*fromYearTiny (1987)*/,
    -
    3718  -101 /*toYearTiny (1999)*/,
    -
    3719  10 /*inMonth*/,
    -
    3720  7 /*onDayOfWeek*/,
    -
    3721  0 /*onDayOfMonth*/,
    -
    3722  8 /*atTimeCode*/,
    -
    3723  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3724  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    -
    3725  0 /*letterIndex ("")*/,
    -
    3726  },
    -
    3727  // Rule LH 1990 1995 - Mar Sun>=1 2:00 0 -
    -
    3728  {
    -
    3729  -110 /*fromYearTiny (1990)*/,
    -
    3730  -105 /*toYearTiny (1995)*/,
    -
    3731  3 /*inMonth*/,
    -
    3732  7 /*onDayOfWeek*/,
    -
    3733  1 /*onDayOfMonth*/,
    -
    3734  8 /*atTimeCode*/,
    -
    3735  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3736  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3737  0 /*letterIndex ("")*/,
    -
    3738  },
    -
    3739  // Rule LH 1996 2005 - Mar lastSun 2:00 0 -
    -
    3740  {
    -
    3741  -104 /*fromYearTiny (1996)*/,
    -
    3742  -95 /*toYearTiny (2005)*/,
    -
    3743  3 /*inMonth*/,
    -
    3744  7 /*onDayOfWeek*/,
    -
    3745  0 /*onDayOfMonth*/,
    -
    3746  8 /*atTimeCode*/,
    -
    3747  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3748  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3749  0 /*letterIndex ("")*/,
    -
    3750  },
    -
    3751  // Rule LH 2000 only - Aug lastSun 2:00 0:30 -
    -
    3752  {
    -
    3753  -100 /*fromYearTiny (2000)*/,
    -
    3754  -100 /*toYearTiny (2000)*/,
    -
    3755  8 /*inMonth*/,
    -
    3756  7 /*onDayOfWeek*/,
    -
    3757  0 /*onDayOfMonth*/,
    -
    3758  8 /*atTimeCode*/,
    -
    3759  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3760  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    -
    3761  0 /*letterIndex ("")*/,
    -
    3762  },
    -
    3763  // Rule LH 2001 2007 - Oct lastSun 2:00 0:30 -
    -
    3764  {
    -
    3765  -99 /*fromYearTiny (2001)*/,
    -
    3766  -93 /*toYearTiny (2007)*/,
    -
    3767  10 /*inMonth*/,
    -
    3768  7 /*onDayOfWeek*/,
    -
    3769  0 /*onDayOfMonth*/,
    -
    3770  8 /*atTimeCode*/,
    -
    3771  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3772  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    -
    3773  0 /*letterIndex ("")*/,
    -
    3774  },
    -
    3775  // Rule LH 2006 only - Apr Sun>=1 2:00 0 -
    -
    3776  {
    -
    3777  -94 /*fromYearTiny (2006)*/,
    -
    3778  -94 /*toYearTiny (2006)*/,
    -
    3779  4 /*inMonth*/,
    -
    3780  7 /*onDayOfWeek*/,
    -
    3781  1 /*onDayOfMonth*/,
    -
    3782  8 /*atTimeCode*/,
    -
    3783  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3784  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3785  0 /*letterIndex ("")*/,
    -
    3786  },
    -
    3787  // Rule LH 2007 only - Mar lastSun 2:00 0 -
    -
    3788  {
    -
    3789  -93 /*fromYearTiny (2007)*/,
    -
    3790  -93 /*toYearTiny (2007)*/,
    -
    3791  3 /*inMonth*/,
    -
    3792  7 /*onDayOfWeek*/,
    -
    3793  0 /*onDayOfMonth*/,
    -
    3794  8 /*atTimeCode*/,
    -
    3795  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3796  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3797  0 /*letterIndex ("")*/,
    -
    3798  },
    -
    3799  // Rule LH 2008 max - Apr Sun>=1 2:00 0 -
    -
    3800  {
    -
    3801  -92 /*fromYearTiny (2008)*/,
    -
    3802  126 /*toYearTiny (32766)*/,
    -
    3803  4 /*inMonth*/,
    -
    3804  7 /*onDayOfWeek*/,
    -
    3805  1 /*onDayOfMonth*/,
    -
    3806  8 /*atTimeCode*/,
    -
    3807  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3808  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3809  0 /*letterIndex ("")*/,
    -
    3810  },
    -
    3811  // Rule LH 2008 max - Oct Sun>=1 2:00 0:30 -
    -
    3812  {
    -
    3813  -92 /*fromYearTiny (2008)*/,
    -
    3814  126 /*toYearTiny (32766)*/,
    -
    3815  10 /*inMonth*/,
    -
    3816  7 /*onDayOfWeek*/,
    -
    3817  1 /*onDayOfMonth*/,
    -
    3818  8 /*atTimeCode*/,
    -
    3819  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3820  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    -
    3821  0 /*letterIndex ("")*/,
    -
    3822  },
    -
    3823 
    -
    3824 };
    -
    3825 
    -
    3826 const extended::Info::ZonePolicy kZonePolicyLH ACE_TIME_PROGMEM = {
    -
    3827  kZoneRulesLH /*rules*/,
    -
    3828  10 /*numRules*/,
    -
    3829 };
    -
    3830 
    -
    3831 //---------------------------------------------------------------------------
    -
    3832 // Policy name: Lebanon
    -
    3833 // Rules: 4
    -
    3834 //---------------------------------------------------------------------------
    -
    3835 
    -
    3836 static const extended::Info::ZoneRule kZoneRulesLebanon[] ACE_TIME_PROGMEM = {
    -
    3837  // Anchor: Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 -
    -
    3838  {
    -
    3839  -127 /*fromYearTiny (-32767)*/,
    -
    3840  -127 /*toYearTiny (-32767)*/,
    -
    3841  1 /*inMonth*/,
    -
    3842  0 /*onDayOfWeek*/,
    -
    3843  1 /*onDayOfMonth*/,
    -
    3844  0 /*atTimeCode*/,
    -
    3845  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3846  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3847  0 /*letterIndex ("")*/,
    -
    3848  },
    -
    3849  // Rule Lebanon 1993 max - Mar lastSun 0:00 1:00 S
    -
    3850  {
    -
    3851  -107 /*fromYearTiny (1993)*/,
    -
    3852  126 /*toYearTiny (32766)*/,
    -
    3853  3 /*inMonth*/,
    -
    3854  7 /*onDayOfWeek*/,
    -
    3855  0 /*onDayOfMonth*/,
    -
    3856  0 /*atTimeCode*/,
    -
    3857  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3858  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3859  7 /*letterIndex ("S")*/,
    -
    3860  },
    -
    3861  // Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 -
    -
    3862  {
    -
    3863  -107 /*fromYearTiny (1993)*/,
    -
    3864  -102 /*toYearTiny (1998)*/,
    -
    3865  9 /*inMonth*/,
    -
    3866  7 /*onDayOfWeek*/,
    -
    3867  0 /*onDayOfMonth*/,
    -
    3868  0 /*atTimeCode*/,
    -
    3869  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3870  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3871  0 /*letterIndex ("")*/,
    -
    3872  },
    -
    3873  // Rule Lebanon 1999 max - Oct lastSun 0:00 0 -
    -
    3874  {
    -
    3875  -101 /*fromYearTiny (1999)*/,
    -
    3876  126 /*toYearTiny (32766)*/,
    -
    3877  10 /*inMonth*/,
    -
    3878  7 /*onDayOfWeek*/,
    -
    3879  0 /*onDayOfMonth*/,
    -
    3880  0 /*atTimeCode*/,
    -
    3881  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3882  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3883  0 /*letterIndex ("")*/,
    -
    3884  },
    -
    3885 
    -
    3886 };
    -
    3887 
    -
    3888 const extended::Info::ZonePolicy kZonePolicyLebanon ACE_TIME_PROGMEM = {
    -
    3889  kZoneRulesLebanon /*rules*/,
    -
    3890  4 /*numRules*/,
    -
    3891 };
    -
    3892 
    -
    3893 //---------------------------------------------------------------------------
    -
    3894 // Policy name: Libya
    -
    3895 // Rules: 4
    -
    3896 //---------------------------------------------------------------------------
    -
    3897 
    -
    3898 static const extended::Info::ZoneRule kZoneRulesLibya[] ACE_TIME_PROGMEM = {
    -
    3899  // Anchor: Rule Libya 1997 only - Oct 4 0:00 0 -
    -
    3900  {
    -
    3901  -127 /*fromYearTiny (-32767)*/,
    -
    3902  -127 /*toYearTiny (-32767)*/,
    -
    3903  1 /*inMonth*/,
    -
    3904  0 /*onDayOfWeek*/,
    -
    3905  1 /*onDayOfMonth*/,
    -
    3906  0 /*atTimeCode*/,
    -
    3907  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3908  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3909  0 /*letterIndex ("")*/,
    -
    3910  },
    -
    3911  // Rule Libya 1997 only - Oct 4 0:00 0 -
    -
    3912  {
    -
    3913  -103 /*fromYearTiny (1997)*/,
    -
    3914  -103 /*toYearTiny (1997)*/,
    -
    3915  10 /*inMonth*/,
    -
    3916  0 /*onDayOfWeek*/,
    -
    3917  4 /*onDayOfMonth*/,
    -
    3918  0 /*atTimeCode*/,
    -
    3919  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3920  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3921  0 /*letterIndex ("")*/,
    -
    3922  },
    -
    3923  // Rule Libya 2013 only - Mar lastFri 1:00 1:00 S
    -
    3924  {
    -
    3925  -87 /*fromYearTiny (2013)*/,
    -
    3926  -87 /*toYearTiny (2013)*/,
    -
    3927  3 /*inMonth*/,
    -
    3928  5 /*onDayOfWeek*/,
    -
    3929  0 /*onDayOfMonth*/,
    -
    3930  4 /*atTimeCode*/,
    -
    3931  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3932  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    3933  7 /*letterIndex ("S")*/,
    -
    3934  },
    -
    3935  // Rule Libya 2013 only - Oct lastFri 2:00 0 -
    -
    3936  {
    -
    3937  -87 /*fromYearTiny (2013)*/,
    -
    3938  -87 /*toYearTiny (2013)*/,
    -
    3939  10 /*inMonth*/,
    -
    3940  5 /*onDayOfWeek*/,
    -
    3941  0 /*onDayOfMonth*/,
    -
    3942  8 /*atTimeCode*/,
    -
    3943  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3944  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3945  0 /*letterIndex ("")*/,
    -
    3946  },
    -
    3947 
    -
    3948 };
    -
    3949 
    -
    3950 const extended::Info::ZonePolicy kZonePolicyLibya ACE_TIME_PROGMEM = {
    -
    3951  kZoneRulesLibya /*rules*/,
    -
    3952  4 /*numRules*/,
    -
    3953 };
    -
    3954 
    -
    3955 //---------------------------------------------------------------------------
    -
    3956 // Policy name: Macau
    -
    3957 // Rules: 1
    -
    3958 //---------------------------------------------------------------------------
    -
    3959 
    -
    3960 static const extended::Info::ZoneRule kZoneRulesMacau[] ACE_TIME_PROGMEM = {
    -
    3961  // Anchor: Rule Macau 1979 only - Oct Sun>=16 03:30 0 S
    -
    3962  {
    -
    3963  -127 /*fromYearTiny (-32767)*/,
    -
    3964  -127 /*toYearTiny (-32767)*/,
    -
    3965  1 /*inMonth*/,
    -
    3966  0 /*onDayOfWeek*/,
    -
    3967  1 /*onDayOfMonth*/,
    -
    3968  0 /*atTimeCode*/,
    -
    3969  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3970  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3971  7 /*letterIndex ("S")*/,
    -
    3972  },
    -
    3973 
    -
    3974 };
    -
    3975 
    -
    3976 const extended::Info::ZonePolicy kZonePolicyMacau ACE_TIME_PROGMEM = {
    -
    3977  kZoneRulesMacau /*rules*/,
    -
    3978  1 /*numRules*/,
    -
    3979 };
    -
    3980 
    -
    3981 //---------------------------------------------------------------------------
    -
    3982 // Policy name: Mauritius
    -
    3983 // Rules: 4
    -
    3984 //---------------------------------------------------------------------------
    -
    3985 
    -
    3986 static const extended::Info::ZoneRule kZoneRulesMauritius[] ACE_TIME_PROGMEM = {
    -
    3987  // Anchor: Rule Mauritius 1983 only - Mar 21 0:00 0 -
    -
    3988  {
    -
    3989  -127 /*fromYearTiny (-32767)*/,
    -
    3990  -127 /*toYearTiny (-32767)*/,
    -
    3991  1 /*inMonth*/,
    -
    3992  0 /*onDayOfWeek*/,
    -
    3993  1 /*onDayOfMonth*/,
    -
    3994  0 /*atTimeCode*/,
    -
    3995  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    3996  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    3997  0 /*letterIndex ("")*/,
    -
    3998  },
    -
    3999  // Rule Mauritius 1983 only - Mar 21 0:00 0 -
    -
    4000  {
    -
    4001  -117 /*fromYearTiny (1983)*/,
    -
    4002  -117 /*toYearTiny (1983)*/,
    -
    4003  3 /*inMonth*/,
    -
    4004  0 /*onDayOfWeek*/,
    -
    4005  21 /*onDayOfMonth*/,
    -
    4006  0 /*atTimeCode*/,
    -
    4007  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4008  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4009  0 /*letterIndex ("")*/,
    -
    4010  },
    -
    4011  // Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
    -
    4012  {
    -
    4013  -92 /*fromYearTiny (2008)*/,
    -
    4014  -92 /*toYearTiny (2008)*/,
    -
    4015  10 /*inMonth*/,
    -
    4016  7 /*onDayOfWeek*/,
    -
    4017  0 /*onDayOfMonth*/,
    -
    4018  8 /*atTimeCode*/,
    -
    4019  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4020  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4021  0 /*letterIndex ("")*/,
    -
    4022  },
    -
    4023  // Rule Mauritius 2009 only - Mar lastSun 2:00 0 -
    -
    4024  {
    -
    4025  -91 /*fromYearTiny (2009)*/,
    -
    4026  -91 /*toYearTiny (2009)*/,
    -
    4027  3 /*inMonth*/,
    -
    4028  7 /*onDayOfWeek*/,
    -
    4029  0 /*onDayOfMonth*/,
    -
    4030  8 /*atTimeCode*/,
    -
    4031  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4032  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4033  0 /*letterIndex ("")*/,
    -
    4034  },
    -
    4035 
    -
    4036 };
    -
    4037 
    -
    4038 const extended::Info::ZonePolicy kZonePolicyMauritius ACE_TIME_PROGMEM = {
    -
    4039  kZoneRulesMauritius /*rules*/,
    -
    4040  4 /*numRules*/,
    -
    4041 };
    -
    4042 
    -
    4043 //---------------------------------------------------------------------------
    -
    4044 // Policy name: Mexico
    -
    4045 // Rules: 8
    -
    4046 //---------------------------------------------------------------------------
    -
    4047 
    -
    4048 static const extended::Info::ZoneRule kZoneRulesMexico[] ACE_TIME_PROGMEM = {
    -
    4049  // Anchor: Rule Mexico 1950 only - Jul 30 0:00 0 S
    -
    4050  {
    -
    4051  -127 /*fromYearTiny (-32767)*/,
    -
    4052  -127 /*toYearTiny (-32767)*/,
    -
    4053  1 /*inMonth*/,
    -
    4054  0 /*onDayOfWeek*/,
    -
    4055  1 /*onDayOfMonth*/,
    -
    4056  0 /*atTimeCode*/,
    -
    4057  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4058  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4059  7 /*letterIndex ("S")*/,
    -
    4060  },
    -
    4061  // Rule Mexico 1950 only - Jul 30 0:00 0 S
    -
    4062  {
    -
    4063  -127 /*fromYearTiny (1950)*/,
    -
    4064  -127 /*toYearTiny (1950)*/,
    -
    4065  7 /*inMonth*/,
    -
    4066  0 /*onDayOfWeek*/,
    -
    4067  30 /*onDayOfMonth*/,
    -
    4068  0 /*atTimeCode*/,
    -
    4069  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4070  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4071  7 /*letterIndex ("S")*/,
    -
    4072  },
    -
    4073  // Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D
    -
    4074  {
    -
    4075  -104 /*fromYearTiny (1996)*/,
    -
    4076  -100 /*toYearTiny (2000)*/,
    -
    4077  4 /*inMonth*/,
    -
    4078  7 /*onDayOfWeek*/,
    -
    4079  1 /*onDayOfMonth*/,
    -
    4080  8 /*atTimeCode*/,
    -
    4081  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4082  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4083  5 /*letterIndex ("D")*/,
    -
    4084  },
    -
    4085  // Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S
    -
    4086  {
    -
    4087  -104 /*fromYearTiny (1996)*/,
    -
    4088  -100 /*toYearTiny (2000)*/,
    -
    4089  10 /*inMonth*/,
    -
    4090  7 /*onDayOfWeek*/,
    -
    4091  0 /*onDayOfMonth*/,
    -
    4092  8 /*atTimeCode*/,
    -
    4093  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4094  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4095  7 /*letterIndex ("S")*/,
    -
    4096  },
    -
    4097  // Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D
    -
    4098  {
    -
    4099  -99 /*fromYearTiny (2001)*/,
    -
    4100  -99 /*toYearTiny (2001)*/,
    -
    4101  5 /*inMonth*/,
    -
    4102  7 /*onDayOfWeek*/,
    -
    4103  1 /*onDayOfMonth*/,
    -
    4104  8 /*atTimeCode*/,
    -
    4105  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4106  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4107  5 /*letterIndex ("D")*/,
    -
    4108  },
    -
    4109  // Rule Mexico 2001 only - Sep lastSun 2:00 0 S
    -
    4110  {
    -
    4111  -99 /*fromYearTiny (2001)*/,
    -
    4112  -99 /*toYearTiny (2001)*/,
    -
    4113  9 /*inMonth*/,
    -
    4114  7 /*onDayOfWeek*/,
    -
    4115  0 /*onDayOfMonth*/,
    -
    4116  8 /*atTimeCode*/,
    -
    4117  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4118  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4119  7 /*letterIndex ("S")*/,
    -
    4120  },
    -
    4121  // Rule Mexico 2002 2022 - Apr Sun>=1 2:00 1:00 D
    -
    4122  {
    -
    4123  -98 /*fromYearTiny (2002)*/,
    -
    4124  -78 /*toYearTiny (2022)*/,
    -
    4125  4 /*inMonth*/,
    -
    4126  7 /*onDayOfWeek*/,
    -
    4127  1 /*onDayOfMonth*/,
    -
    4128  8 /*atTimeCode*/,
    -
    4129  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4130  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4131  5 /*letterIndex ("D")*/,
    -
    4132  },
    -
    4133  // Rule Mexico 2002 2022 - Oct lastSun 2:00 0 S
    -
    4134  {
    -
    4135  -98 /*fromYearTiny (2002)*/,
    -
    4136  -78 /*toYearTiny (2022)*/,
    -
    4137  10 /*inMonth*/,
    -
    4138  7 /*onDayOfWeek*/,
    -
    4139  0 /*onDayOfMonth*/,
    -
    4140  8 /*atTimeCode*/,
    -
    4141  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4142  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4143  7 /*letterIndex ("S")*/,
    -
    4144  },
    -
    4145 
    -
    4146 };
    -
    4147 
    -
    4148 const extended::Info::ZonePolicy kZonePolicyMexico ACE_TIME_PROGMEM = {
    -
    4149  kZoneRulesMexico /*rules*/,
    -
    4150  8 /*numRules*/,
    -
    4151 };
    -
    4152 
    -
    4153 //---------------------------------------------------------------------------
    -
    4154 // Policy name: Moldova
    -
    4155 // Rules: 3
    -
    4156 //---------------------------------------------------------------------------
    -
    4157 
    -
    4158 static const extended::Info::ZoneRule kZoneRulesMoldova[] ACE_TIME_PROGMEM = {
    -
    4159  // Anchor: Rule Moldova 1997 max - Oct lastSun 3:00 0 -
    -
    4160  {
    -
    4161  -127 /*fromYearTiny (-32767)*/,
    -
    4162  -127 /*toYearTiny (-32767)*/,
    -
    4163  1 /*inMonth*/,
    -
    4164  0 /*onDayOfWeek*/,
    -
    4165  1 /*onDayOfMonth*/,
    -
    4166  0 /*atTimeCode*/,
    -
    4167  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4168  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4169  0 /*letterIndex ("")*/,
    -
    4170  },
    -
    4171  // Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S
    -
    4172  {
    -
    4173  -103 /*fromYearTiny (1997)*/,
    -
    4174  126 /*toYearTiny (32766)*/,
    -
    4175  3 /*inMonth*/,
    -
    4176  7 /*onDayOfWeek*/,
    -
    4177  0 /*onDayOfMonth*/,
    -
    4178  8 /*atTimeCode*/,
    -
    4179  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4180  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4181  7 /*letterIndex ("S")*/,
    -
    4182  },
    -
    4183  // Rule Moldova 1997 max - Oct lastSun 3:00 0 -
    -
    4184  {
    -
    4185  -103 /*fromYearTiny (1997)*/,
    -
    4186  126 /*toYearTiny (32766)*/,
    -
    4187  10 /*inMonth*/,
    -
    4188  7 /*onDayOfWeek*/,
    -
    4189  0 /*onDayOfMonth*/,
    -
    4190  12 /*atTimeCode*/,
    -
    4191  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4192  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4193  0 /*letterIndex ("")*/,
    -
    4194  },
    -
    4195 
    -
    4196 };
    -
    4197 
    -
    4198 const extended::Info::ZonePolicy kZonePolicyMoldova ACE_TIME_PROGMEM = {
    -
    4199  kZoneRulesMoldova /*rules*/,
    -
    4200  3 /*numRules*/,
    -
    4201 };
    -
    4202 
    -
    4203 //---------------------------------------------------------------------------
    -
    4204 // Policy name: Moncton
    -
    4205 // Rules: 4
    -
    4206 //---------------------------------------------------------------------------
    -
    4207 
    -
    4208 static const extended::Info::ZoneRule kZoneRulesMoncton[] ACE_TIME_PROGMEM = {
    -
    4209  // Anchor: Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S
    -
    4210  {
    -
    4211  -127 /*fromYearTiny (-32767)*/,
    -
    4212  -127 /*toYearTiny (-32767)*/,
    -
    4213  1 /*inMonth*/,
    -
    4214  0 /*onDayOfWeek*/,
    -
    4215  1 /*onDayOfMonth*/,
    -
    4216  0 /*atTimeCode*/,
    -
    4217  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4218  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4219  7 /*letterIndex ("S")*/,
    -
    4220  },
    -
    4221  // Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S
    -
    4222  {
    -
    4223  -127 /*fromYearTiny (1957)*/,
    -
    4224  -127 /*toYearTiny (1972)*/,
    -
    4225  10 /*inMonth*/,
    -
    4226  7 /*onDayOfWeek*/,
    -
    4227  0 /*onDayOfMonth*/,
    -
    4228  8 /*atTimeCode*/,
    -
    4229  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4230  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4231  7 /*letterIndex ("S")*/,
    -
    4232  },
    -
    4233  // Rule Moncton 1993 2006 - Apr Sun>=1 0:01 1:00 D
    -
    4234  {
    -
    4235  -107 /*fromYearTiny (1993)*/,
    -
    4236  -94 /*toYearTiny (2006)*/,
    -
    4237  4 /*inMonth*/,
    -
    4238  7 /*onDayOfWeek*/,
    -
    4239  1 /*onDayOfMonth*/,
    -
    4240  0 /*atTimeCode*/,
    -
    4241  1 /*atTimeModifier (kSuffixW + minute=1)*/,
    -
    4242  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4243  5 /*letterIndex ("D")*/,
    -
    4244  },
    -
    4245  // Rule Moncton 1993 2006 - Oct lastSun 0:01 0 S
    -
    4246  {
    -
    4247  -107 /*fromYearTiny (1993)*/,
    -
    4248  -94 /*toYearTiny (2006)*/,
    -
    4249  10 /*inMonth*/,
    -
    4250  7 /*onDayOfWeek*/,
    -
    4251  0 /*onDayOfMonth*/,
    -
    4252  0 /*atTimeCode*/,
    -
    4253  1 /*atTimeModifier (kSuffixW + minute=1)*/,
    -
    4254  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4255  7 /*letterIndex ("S")*/,
    -
    4256  },
    -
    4257 
    -
    4258 };
    -
    4259 
    -
    4260 const extended::Info::ZonePolicy kZonePolicyMoncton ACE_TIME_PROGMEM = {
    -
    4261  kZoneRulesMoncton /*rules*/,
    -
    4262  4 /*numRules*/,
    -
    4263 };
    -
    4264 
    -
    4265 //---------------------------------------------------------------------------
    -
    4266 // Policy name: Mongol
    -
    4267 // Rules: 7
    -
    4268 //---------------------------------------------------------------------------
    -
    4269 
    -
    4270 static const extended::Info::ZoneRule kZoneRulesMongol[] ACE_TIME_PROGMEM = {
    -
    4271  // Anchor: Rule Mongol 1984 1998 - Sep lastSun 0:00 0 -
    -
    4272  {
    -
    4273  -127 /*fromYearTiny (-32767)*/,
    -
    4274  -127 /*toYearTiny (-32767)*/,
    -
    4275  1 /*inMonth*/,
    -
    4276  0 /*onDayOfWeek*/,
    -
    4277  1 /*onDayOfMonth*/,
    -
    4278  0 /*atTimeCode*/,
    -
    4279  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4280  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4281  0 /*letterIndex ("")*/,
    -
    4282  },
    -
    4283  // Rule Mongol 1984 1998 - Sep lastSun 0:00 0 -
    -
    4284  {
    -
    4285  -116 /*fromYearTiny (1984)*/,
    -
    4286  -102 /*toYearTiny (1998)*/,
    -
    4287  9 /*inMonth*/,
    -
    4288  7 /*onDayOfWeek*/,
    -
    4289  0 /*onDayOfMonth*/,
    -
    4290  0 /*atTimeCode*/,
    -
    4291  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4292  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4293  0 /*letterIndex ("")*/,
    -
    4294  },
    -
    4295  // Rule Mongol 2001 only - Apr lastSat 2:00 1:00 -
    -
    4296  {
    -
    4297  -99 /*fromYearTiny (2001)*/,
    -
    4298  -99 /*toYearTiny (2001)*/,
    -
    4299  4 /*inMonth*/,
    -
    4300  6 /*onDayOfWeek*/,
    -
    4301  0 /*onDayOfMonth*/,
    -
    4302  8 /*atTimeCode*/,
    -
    4303  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4304  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4305  0 /*letterIndex ("")*/,
    -
    4306  },
    -
    4307  // Rule Mongol 2001 2006 - Sep lastSat 2:00 0 -
    -
    4308  {
    -
    4309  -99 /*fromYearTiny (2001)*/,
    -
    4310  -94 /*toYearTiny (2006)*/,
    -
    4311  9 /*inMonth*/,
    -
    4312  6 /*onDayOfWeek*/,
    -
    4313  0 /*onDayOfMonth*/,
    -
    4314  8 /*atTimeCode*/,
    -
    4315  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4316  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4317  0 /*letterIndex ("")*/,
    -
    4318  },
    -
    4319  // Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 -
    -
    4320  {
    -
    4321  -98 /*fromYearTiny (2002)*/,
    -
    4322  -94 /*toYearTiny (2006)*/,
    -
    4323  3 /*inMonth*/,
    -
    4324  6 /*onDayOfWeek*/,
    -
    4325  0 /*onDayOfMonth*/,
    -
    4326  8 /*atTimeCode*/,
    -
    4327  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4328  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4329  0 /*letterIndex ("")*/,
    -
    4330  },
    -
    4331  // Rule Mongol 2015 2016 - Mar lastSat 2:00 1:00 -
    -
    4332  {
    -
    4333  -85 /*fromYearTiny (2015)*/,
    -
    4334  -84 /*toYearTiny (2016)*/,
    -
    4335  3 /*inMonth*/,
    -
    4336  6 /*onDayOfWeek*/,
    -
    4337  0 /*onDayOfMonth*/,
    -
    4338  8 /*atTimeCode*/,
    -
    4339  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4340  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4341  0 /*letterIndex ("")*/,
    -
    4342  },
    -
    4343  // Rule Mongol 2015 2016 - Sep lastSat 0:00 0 -
    -
    4344  {
    -
    4345  -85 /*fromYearTiny (2015)*/,
    -
    4346  -84 /*toYearTiny (2016)*/,
    -
    4347  9 /*inMonth*/,
    -
    4348  6 /*onDayOfWeek*/,
    -
    4349  0 /*onDayOfMonth*/,
    -
    4350  0 /*atTimeCode*/,
    -
    4351  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4352  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4353  0 /*letterIndex ("")*/,
    -
    4354  },
    -
    4355 
    -
    4356 };
    -
    4357 
    -
    4358 const extended::Info::ZonePolicy kZonePolicyMongol ACE_TIME_PROGMEM = {
    -
    4359  kZoneRulesMongol /*rules*/,
    -
    4360  7 /*numRules*/,
    -
    4361 };
    -
    4362 
    -
    4363 //---------------------------------------------------------------------------
    -
    4364 // Policy name: Morocco
    -
    4365 // Rules: 170
    -
    4366 //---------------------------------------------------------------------------
    -
    4367 
    -
    4368 static const extended::Info::ZoneRule kZoneRulesMorocco[] ACE_TIME_PROGMEM = {
    -
    4369  // Anchor: Rule Morocco 1978 only - Aug 4 0:00 0 -
    -
    4370  {
    -
    4371  -127 /*fromYearTiny (-32767)*/,
    -
    4372  -127 /*toYearTiny (-32767)*/,
    -
    4373  1 /*inMonth*/,
    -
    4374  0 /*onDayOfWeek*/,
    -
    4375  1 /*onDayOfMonth*/,
    -
    4376  0 /*atTimeCode*/,
    -
    4377  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4378  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4379  0 /*letterIndex ("")*/,
    -
    4380  },
    -
    4381  // Rule Morocco 1978 only - Aug 4 0:00 0 -
    -
    4382  {
    -
    4383  -122 /*fromYearTiny (1978)*/,
    -
    4384  -122 /*toYearTiny (1978)*/,
    -
    4385  8 /*inMonth*/,
    -
    4386  0 /*onDayOfWeek*/,
    -
    4387  4 /*onDayOfMonth*/,
    -
    4388  0 /*atTimeCode*/,
    -
    4389  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4390  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4391  0 /*letterIndex ("")*/,
    -
    4392  },
    -
    4393  // Rule Morocco 2008 only - Jun 1 0:00 1:00 -
    -
    4394  {
    -
    4395  -92 /*fromYearTiny (2008)*/,
    -
    4396  -92 /*toYearTiny (2008)*/,
    -
    4397  6 /*inMonth*/,
    -
    4398  0 /*onDayOfWeek*/,
    -
    4399  1 /*onDayOfMonth*/,
    -
    4400  0 /*atTimeCode*/,
    -
    4401  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4402  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4403  0 /*letterIndex ("")*/,
    -
    4404  },
    -
    4405  // Rule Morocco 2008 only - Sep 1 0:00 0 -
    -
    4406  {
    -
    4407  -92 /*fromYearTiny (2008)*/,
    -
    4408  -92 /*toYearTiny (2008)*/,
    -
    4409  9 /*inMonth*/,
    -
    4410  0 /*onDayOfWeek*/,
    -
    4411  1 /*onDayOfMonth*/,
    -
    4412  0 /*atTimeCode*/,
    -
    4413  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4414  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4415  0 /*letterIndex ("")*/,
    -
    4416  },
    -
    4417  // Rule Morocco 2009 only - Jun 1 0:00 1:00 -
    -
    4418  {
    -
    4419  -91 /*fromYearTiny (2009)*/,
    -
    4420  -91 /*toYearTiny (2009)*/,
    -
    4421  6 /*inMonth*/,
    -
    4422  0 /*onDayOfWeek*/,
    -
    4423  1 /*onDayOfMonth*/,
    -
    4424  0 /*atTimeCode*/,
    -
    4425  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4426  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4427  0 /*letterIndex ("")*/,
    -
    4428  },
    -
    4429  // Rule Morocco 2009 only - Aug 21 0:00 0 -
    -
    4430  {
    -
    4431  -91 /*fromYearTiny (2009)*/,
    -
    4432  -91 /*toYearTiny (2009)*/,
    -
    4433  8 /*inMonth*/,
    -
    4434  0 /*onDayOfWeek*/,
    -
    4435  21 /*onDayOfMonth*/,
    -
    4436  0 /*atTimeCode*/,
    -
    4437  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4438  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4439  0 /*letterIndex ("")*/,
    -
    4440  },
    -
    4441  // Rule Morocco 2010 only - May 2 0:00 1:00 -
    -
    4442  {
    -
    4443  -90 /*fromYearTiny (2010)*/,
    -
    4444  -90 /*toYearTiny (2010)*/,
    -
    4445  5 /*inMonth*/,
    -
    4446  0 /*onDayOfWeek*/,
    -
    4447  2 /*onDayOfMonth*/,
    -
    4448  0 /*atTimeCode*/,
    -
    4449  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4450  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4451  0 /*letterIndex ("")*/,
    -
    4452  },
    -
    4453  // Rule Morocco 2010 only - Aug 8 0:00 0 -
    -
    4454  {
    -
    4455  -90 /*fromYearTiny (2010)*/,
    -
    4456  -90 /*toYearTiny (2010)*/,
    -
    4457  8 /*inMonth*/,
    -
    4458  0 /*onDayOfWeek*/,
    -
    4459  8 /*onDayOfMonth*/,
    -
    4460  0 /*atTimeCode*/,
    -
    4461  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4462  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4463  0 /*letterIndex ("")*/,
    -
    4464  },
    -
    4465  // Rule Morocco 2011 only - Apr 3 0:00 1:00 -
    -
    4466  {
    -
    4467  -89 /*fromYearTiny (2011)*/,
    -
    4468  -89 /*toYearTiny (2011)*/,
    -
    4469  4 /*inMonth*/,
    -
    4470  0 /*onDayOfWeek*/,
    -
    4471  3 /*onDayOfMonth*/,
    -
    4472  0 /*atTimeCode*/,
    -
    4473  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4474  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4475  0 /*letterIndex ("")*/,
    -
    4476  },
    -
    4477  // Rule Morocco 2011 only - Jul 31 0:00 0 -
    -
    4478  {
    -
    4479  -89 /*fromYearTiny (2011)*/,
    -
    4480  -89 /*toYearTiny (2011)*/,
    -
    4481  7 /*inMonth*/,
    -
    4482  0 /*onDayOfWeek*/,
    -
    4483  31 /*onDayOfMonth*/,
    -
    4484  0 /*atTimeCode*/,
    -
    4485  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4486  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4487  0 /*letterIndex ("")*/,
    -
    4488  },
    -
    4489  // Rule Morocco 2012 2013 - Apr lastSun 2:00 1:00 -
    -
    4490  {
    -
    4491  -88 /*fromYearTiny (2012)*/,
    -
    4492  -87 /*toYearTiny (2013)*/,
    -
    4493  4 /*inMonth*/,
    -
    4494  7 /*onDayOfWeek*/,
    -
    4495  0 /*onDayOfMonth*/,
    -
    4496  8 /*atTimeCode*/,
    -
    4497  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4498  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4499  0 /*letterIndex ("")*/,
    -
    4500  },
    -
    4501  // Rule Morocco 2012 only - Jul 20 3:00 0 -
    -
    4502  {
    -
    4503  -88 /*fromYearTiny (2012)*/,
    -
    4504  -88 /*toYearTiny (2012)*/,
    -
    4505  7 /*inMonth*/,
    -
    4506  0 /*onDayOfWeek*/,
    -
    4507  20 /*onDayOfMonth*/,
    -
    4508  12 /*atTimeCode*/,
    -
    4509  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4510  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4511  0 /*letterIndex ("")*/,
    -
    4512  },
    -
    4513  // Rule Morocco 2012 only - Aug 20 2:00 1:00 -
    -
    4514  {
    -
    4515  -88 /*fromYearTiny (2012)*/,
    -
    4516  -88 /*toYearTiny (2012)*/,
    -
    4517  8 /*inMonth*/,
    -
    4518  0 /*onDayOfWeek*/,
    -
    4519  20 /*onDayOfMonth*/,
    -
    4520  8 /*atTimeCode*/,
    -
    4521  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4522  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4523  0 /*letterIndex ("")*/,
    -
    4524  },
    -
    4525  // Rule Morocco 2012 only - Sep 30 3:00 0 -
    -
    4526  {
    -
    4527  -88 /*fromYearTiny (2012)*/,
    -
    4528  -88 /*toYearTiny (2012)*/,
    -
    4529  9 /*inMonth*/,
    -
    4530  0 /*onDayOfWeek*/,
    -
    4531  30 /*onDayOfMonth*/,
    -
    4532  12 /*atTimeCode*/,
    -
    4533  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4534  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4535  0 /*letterIndex ("")*/,
    -
    4536  },
    -
    4537  // Rule Morocco 2013 only - Jul 7 3:00 0 -
    -
    4538  {
    -
    4539  -87 /*fromYearTiny (2013)*/,
    -
    4540  -87 /*toYearTiny (2013)*/,
    -
    4541  7 /*inMonth*/,
    -
    4542  0 /*onDayOfWeek*/,
    -
    4543  7 /*onDayOfMonth*/,
    -
    4544  12 /*atTimeCode*/,
    -
    4545  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4546  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4547  0 /*letterIndex ("")*/,
    -
    4548  },
    -
    4549  // Rule Morocco 2013 only - Aug 10 2:00 1:00 -
    -
    4550  {
    -
    4551  -87 /*fromYearTiny (2013)*/,
    -
    4552  -87 /*toYearTiny (2013)*/,
    -
    4553  8 /*inMonth*/,
    -
    4554  0 /*onDayOfWeek*/,
    -
    4555  10 /*onDayOfMonth*/,
    -
    4556  8 /*atTimeCode*/,
    -
    4557  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4558  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4559  0 /*letterIndex ("")*/,
    -
    4560  },
    -
    4561  // Rule Morocco 2013 2018 - Oct lastSun 3:00 0 -
    -
    4562  {
    -
    4563  -87 /*fromYearTiny (2013)*/,
    -
    4564  -82 /*toYearTiny (2018)*/,
    -
    4565  10 /*inMonth*/,
    -
    4566  7 /*onDayOfWeek*/,
    -
    4567  0 /*onDayOfMonth*/,
    -
    4568  12 /*atTimeCode*/,
    -
    4569  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4570  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4571  0 /*letterIndex ("")*/,
    -
    4572  },
    -
    4573  // Rule Morocco 2014 2018 - Mar lastSun 2:00 1:00 -
    -
    4574  {
    -
    4575  -86 /*fromYearTiny (2014)*/,
    -
    4576  -82 /*toYearTiny (2018)*/,
    -
    4577  3 /*inMonth*/,
    -
    4578  7 /*onDayOfWeek*/,
    -
    4579  0 /*onDayOfMonth*/,
    -
    4580  8 /*atTimeCode*/,
    -
    4581  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4582  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4583  0 /*letterIndex ("")*/,
    -
    4584  },
    -
    4585  // Rule Morocco 2014 only - Jun 28 3:00 0 -
    -
    4586  {
    -
    4587  -86 /*fromYearTiny (2014)*/,
    -
    4588  -86 /*toYearTiny (2014)*/,
    -
    4589  6 /*inMonth*/,
    -
    4590  0 /*onDayOfWeek*/,
    -
    4591  28 /*onDayOfMonth*/,
    -
    4592  12 /*atTimeCode*/,
    -
    4593  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4594  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4595  0 /*letterIndex ("")*/,
    -
    4596  },
    -
    4597  // Rule Morocco 2014 only - Aug 2 2:00 1:00 -
    -
    4598  {
    -
    4599  -86 /*fromYearTiny (2014)*/,
    -
    4600  -86 /*toYearTiny (2014)*/,
    -
    4601  8 /*inMonth*/,
    -
    4602  0 /*onDayOfWeek*/,
    -
    4603  2 /*onDayOfMonth*/,
    -
    4604  8 /*atTimeCode*/,
    -
    4605  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4606  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4607  0 /*letterIndex ("")*/,
    -
    4608  },
    -
    4609  // Rule Morocco 2015 only - Jun 14 3:00 0 -
    -
    4610  {
    -
    4611  -85 /*fromYearTiny (2015)*/,
    -
    4612  -85 /*toYearTiny (2015)*/,
    -
    4613  6 /*inMonth*/,
    -
    4614  0 /*onDayOfWeek*/,
    -
    4615  14 /*onDayOfMonth*/,
    -
    4616  12 /*atTimeCode*/,
    -
    4617  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4618  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4619  0 /*letterIndex ("")*/,
    -
    4620  },
    -
    4621  // Rule Morocco 2015 only - Jul 19 2:00 1:00 -
    -
    4622  {
    -
    4623  -85 /*fromYearTiny (2015)*/,
    -
    4624  -85 /*toYearTiny (2015)*/,
    -
    4625  7 /*inMonth*/,
    -
    4626  0 /*onDayOfWeek*/,
    -
    4627  19 /*onDayOfMonth*/,
    -
    4628  8 /*atTimeCode*/,
    -
    4629  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4630  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4631  0 /*letterIndex ("")*/,
    -
    4632  },
    -
    4633  // Rule Morocco 2016 only - Jun 5 3:00 0 -
    -
    4634  {
    -
    4635  -84 /*fromYearTiny (2016)*/,
    -
    4636  -84 /*toYearTiny (2016)*/,
    -
    4637  6 /*inMonth*/,
    -
    4638  0 /*onDayOfWeek*/,
    -
    4639  5 /*onDayOfMonth*/,
    -
    4640  12 /*atTimeCode*/,
    -
    4641  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4642  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4643  0 /*letterIndex ("")*/,
    -
    4644  },
    -
    4645  // Rule Morocco 2016 only - Jul 10 2:00 1:00 -
    -
    4646  {
    -
    4647  -84 /*fromYearTiny (2016)*/,
    -
    4648  -84 /*toYearTiny (2016)*/,
    -
    4649  7 /*inMonth*/,
    -
    4650  0 /*onDayOfWeek*/,
    -
    4651  10 /*onDayOfMonth*/,
    -
    4652  8 /*atTimeCode*/,
    -
    4653  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4654  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4655  0 /*letterIndex ("")*/,
    -
    4656  },
    -
    4657  // Rule Morocco 2017 only - May 21 3:00 0 -
    -
    4658  {
    -
    4659  -83 /*fromYearTiny (2017)*/,
    -
    4660  -83 /*toYearTiny (2017)*/,
    -
    4661  5 /*inMonth*/,
    -
    4662  0 /*onDayOfWeek*/,
    -
    4663  21 /*onDayOfMonth*/,
    -
    4664  12 /*atTimeCode*/,
    -
    4665  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4666  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4667  0 /*letterIndex ("")*/,
    -
    4668  },
    -
    4669  // Rule Morocco 2017 only - Jul 2 2:00 1:00 -
    -
    4670  {
    -
    4671  -83 /*fromYearTiny (2017)*/,
    -
    4672  -83 /*toYearTiny (2017)*/,
    -
    4673  7 /*inMonth*/,
    -
    4674  0 /*onDayOfWeek*/,
    -
    4675  2 /*onDayOfMonth*/,
    -
    4676  8 /*atTimeCode*/,
    -
    4677  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4678  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4679  0 /*letterIndex ("")*/,
    -
    4680  },
    -
    4681  // Rule Morocco 2018 only - May 13 3:00 0 -
    -
    4682  {
    -
    4683  -82 /*fromYearTiny (2018)*/,
    -
    4684  -82 /*toYearTiny (2018)*/,
    -
    4685  5 /*inMonth*/,
    -
    4686  0 /*onDayOfWeek*/,
    -
    4687  13 /*onDayOfMonth*/,
    -
    4688  12 /*atTimeCode*/,
    -
    4689  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4690  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4691  0 /*letterIndex ("")*/,
    -
    4692  },
    -
    4693  // Rule Morocco 2018 only - Jun 17 2:00 1:00 -
    -
    4694  {
    -
    4695  -82 /*fromYearTiny (2018)*/,
    -
    4696  -82 /*toYearTiny (2018)*/,
    -
    4697  6 /*inMonth*/,
    -
    4698  0 /*onDayOfWeek*/,
    -
    4699  17 /*onDayOfMonth*/,
    -
    4700  8 /*atTimeCode*/,
    -
    4701  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4702  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    4703  0 /*letterIndex ("")*/,
    -
    4704  },
    -
    4705  // Rule Morocco 2019 only - May 5 3:00 -1:00 -
    -
    4706  {
    -
    4707  -81 /*fromYearTiny (2019)*/,
    -
    4708  -81 /*toYearTiny (2019)*/,
    -
    4709  5 /*inMonth*/,
    -
    4710  0 /*onDayOfWeek*/,
    -
    4711  5 /*onDayOfMonth*/,
    -
    4712  12 /*atTimeCode*/,
    -
    4713  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4714  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4715  0 /*letterIndex ("")*/,
    -
    4716  },
    -
    4717  // Rule Morocco 2019 only - Jun 9 2:00 0 -
    -
    4718  {
    -
    4719  -81 /*fromYearTiny (2019)*/,
    -
    4720  -81 /*toYearTiny (2019)*/,
    -
    4721  6 /*inMonth*/,
    -
    4722  0 /*onDayOfWeek*/,
    -
    4723  9 /*onDayOfMonth*/,
    -
    4724  8 /*atTimeCode*/,
    -
    4725  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4726  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4727  0 /*letterIndex ("")*/,
    -
    4728  },
    -
    4729  // Rule Morocco 2020 only - Apr 19 3:00 -1:00 -
    -
    4730  {
    -
    4731  -80 /*fromYearTiny (2020)*/,
    -
    4732  -80 /*toYearTiny (2020)*/,
    -
    4733  4 /*inMonth*/,
    -
    4734  0 /*onDayOfWeek*/,
    -
    4735  19 /*onDayOfMonth*/,
    -
    4736  12 /*atTimeCode*/,
    -
    4737  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4738  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4739  0 /*letterIndex ("")*/,
    -
    4740  },
    -
    4741  // Rule Morocco 2020 only - May 31 2:00 0 -
    -
    4742  {
    -
    4743  -80 /*fromYearTiny (2020)*/,
    -
    4744  -80 /*toYearTiny (2020)*/,
    -
    4745  5 /*inMonth*/,
    -
    4746  0 /*onDayOfWeek*/,
    -
    4747  31 /*onDayOfMonth*/,
    -
    4748  8 /*atTimeCode*/,
    -
    4749  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4750  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4751  0 /*letterIndex ("")*/,
    -
    4752  },
    -
    4753  // Rule Morocco 2021 only - Apr 11 3:00 -1:00 -
    -
    4754  {
    -
    4755  -79 /*fromYearTiny (2021)*/,
    -
    4756  -79 /*toYearTiny (2021)*/,
    -
    4757  4 /*inMonth*/,
    -
    4758  0 /*onDayOfWeek*/,
    -
    4759  11 /*onDayOfMonth*/,
    -
    4760  12 /*atTimeCode*/,
    -
    4761  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4762  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4763  0 /*letterIndex ("")*/,
    -
    4764  },
    -
    4765  // Rule Morocco 2021 only - May 16 2:00 0 -
    -
    4766  {
    -
    4767  -79 /*fromYearTiny (2021)*/,
    -
    4768  -79 /*toYearTiny (2021)*/,
    -
    4769  5 /*inMonth*/,
    -
    4770  0 /*onDayOfWeek*/,
    -
    4771  16 /*onDayOfMonth*/,
    -
    4772  8 /*atTimeCode*/,
    -
    4773  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4774  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4775  0 /*letterIndex ("")*/,
    -
    4776  },
    -
    4777  // Rule Morocco 2022 only - Mar 27 3:00 -1:00 -
    -
    4778  {
    -
    4779  -78 /*fromYearTiny (2022)*/,
    -
    4780  -78 /*toYearTiny (2022)*/,
    -
    4781  3 /*inMonth*/,
    -
    4782  0 /*onDayOfWeek*/,
    -
    4783  27 /*onDayOfMonth*/,
    -
    4784  12 /*atTimeCode*/,
    -
    4785  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4786  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4787  0 /*letterIndex ("")*/,
    -
    4788  },
    -
    4789  // Rule Morocco 2022 only - May 8 2:00 0 -
    -
    4790  {
    -
    4791  -78 /*fromYearTiny (2022)*/,
    -
    4792  -78 /*toYearTiny (2022)*/,
    -
    4793  5 /*inMonth*/,
    -
    4794  0 /*onDayOfWeek*/,
    -
    4795  8 /*onDayOfMonth*/,
    -
    4796  8 /*atTimeCode*/,
    -
    4797  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4798  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4799  0 /*letterIndex ("")*/,
    -
    4800  },
    -
    4801  // Rule Morocco 2023 only - Mar 19 3:00 -1:00 -
    -
    4802  {
    -
    4803  -77 /*fromYearTiny (2023)*/,
    -
    4804  -77 /*toYearTiny (2023)*/,
    -
    4805  3 /*inMonth*/,
    -
    4806  0 /*onDayOfWeek*/,
    -
    4807  19 /*onDayOfMonth*/,
    -
    4808  12 /*atTimeCode*/,
    -
    4809  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4810  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4811  0 /*letterIndex ("")*/,
    -
    4812  },
    -
    4813  // Rule Morocco 2023 only - Apr 23 2:00 0 -
    -
    4814  {
    -
    4815  -77 /*fromYearTiny (2023)*/,
    -
    4816  -77 /*toYearTiny (2023)*/,
    -
    4817  4 /*inMonth*/,
    -
    4818  0 /*onDayOfWeek*/,
    -
    4819  23 /*onDayOfMonth*/,
    -
    4820  8 /*atTimeCode*/,
    -
    4821  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4822  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4823  0 /*letterIndex ("")*/,
    -
    4824  },
    -
    4825  // Rule Morocco 2024 only - Mar 10 3:00 -1:00 -
    -
    4826  {
    -
    4827  -76 /*fromYearTiny (2024)*/,
    -
    4828  -76 /*toYearTiny (2024)*/,
    -
    4829  3 /*inMonth*/,
    -
    4830  0 /*onDayOfWeek*/,
    -
    4831  10 /*onDayOfMonth*/,
    -
    4832  12 /*atTimeCode*/,
    -
    4833  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4834  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4835  0 /*letterIndex ("")*/,
    -
    4836  },
    -
    4837  // Rule Morocco 2024 only - Apr 14 2:00 0 -
    -
    4838  {
    -
    4839  -76 /*fromYearTiny (2024)*/,
    -
    4840  -76 /*toYearTiny (2024)*/,
    -
    4841  4 /*inMonth*/,
    -
    4842  0 /*onDayOfWeek*/,
    -
    4843  14 /*onDayOfMonth*/,
    -
    4844  8 /*atTimeCode*/,
    -
    4845  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4846  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4847  0 /*letterIndex ("")*/,
    -
    4848  },
    -
    4849  // Rule Morocco 2025 only - Feb 23 3:00 -1:00 -
    -
    4850  {
    -
    4851  -75 /*fromYearTiny (2025)*/,
    -
    4852  -75 /*toYearTiny (2025)*/,
    -
    4853  2 /*inMonth*/,
    -
    4854  0 /*onDayOfWeek*/,
    -
    4855  23 /*onDayOfMonth*/,
    -
    4856  12 /*atTimeCode*/,
    -
    4857  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4858  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4859  0 /*letterIndex ("")*/,
    -
    4860  },
    -
    4861  // Rule Morocco 2025 only - Apr 6 2:00 0 -
    -
    4862  {
    -
    4863  -75 /*fromYearTiny (2025)*/,
    -
    4864  -75 /*toYearTiny (2025)*/,
    -
    4865  4 /*inMonth*/,
    -
    4866  0 /*onDayOfWeek*/,
    -
    4867  6 /*onDayOfMonth*/,
    -
    4868  8 /*atTimeCode*/,
    -
    4869  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4870  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4871  0 /*letterIndex ("")*/,
    -
    4872  },
    -
    4873  // Rule Morocco 2026 only - Feb 15 3:00 -1:00 -
    -
    4874  {
    -
    4875  -74 /*fromYearTiny (2026)*/,
    -
    4876  -74 /*toYearTiny (2026)*/,
    -
    4877  2 /*inMonth*/,
    -
    4878  0 /*onDayOfWeek*/,
    -
    4879  15 /*onDayOfMonth*/,
    -
    4880  12 /*atTimeCode*/,
    -
    4881  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4882  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4883  0 /*letterIndex ("")*/,
    -
    4884  },
    -
    4885  // Rule Morocco 2026 only - Mar 22 2:00 0 -
    -
    4886  {
    -
    4887  -74 /*fromYearTiny (2026)*/,
    -
    4888  -74 /*toYearTiny (2026)*/,
    -
    4889  3 /*inMonth*/,
    -
    4890  0 /*onDayOfWeek*/,
    -
    4891  22 /*onDayOfMonth*/,
    -
    4892  8 /*atTimeCode*/,
    -
    4893  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4894  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4895  0 /*letterIndex ("")*/,
    -
    4896  },
    -
    4897  // Rule Morocco 2027 only - Feb 7 3:00 -1:00 -
    -
    4898  {
    -
    4899  -73 /*fromYearTiny (2027)*/,
    -
    4900  -73 /*toYearTiny (2027)*/,
    -
    4901  2 /*inMonth*/,
    -
    4902  0 /*onDayOfWeek*/,
    -
    4903  7 /*onDayOfMonth*/,
    -
    4904  12 /*atTimeCode*/,
    -
    4905  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4906  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4907  0 /*letterIndex ("")*/,
    -
    4908  },
    -
    4909  // Rule Morocco 2027 only - Mar 14 2:00 0 -
    -
    4910  {
    -
    4911  -73 /*fromYearTiny (2027)*/,
    -
    4912  -73 /*toYearTiny (2027)*/,
    -
    4913  3 /*inMonth*/,
    -
    4914  0 /*onDayOfWeek*/,
    -
    4915  14 /*onDayOfMonth*/,
    -
    4916  8 /*atTimeCode*/,
    -
    4917  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4918  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4919  0 /*letterIndex ("")*/,
    -
    4920  },
    -
    4921  // Rule Morocco 2028 only - Jan 23 3:00 -1:00 -
    -
    4922  {
    -
    4923  -72 /*fromYearTiny (2028)*/,
    -
    4924  -72 /*toYearTiny (2028)*/,
    -
    4925  1 /*inMonth*/,
    -
    4926  0 /*onDayOfWeek*/,
    -
    4927  23 /*onDayOfMonth*/,
    -
    4928  12 /*atTimeCode*/,
    -
    4929  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4930  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4931  0 /*letterIndex ("")*/,
    -
    4932  },
    -
    4933  // Rule Morocco 2028 only - Mar 5 2:00 0 -
    -
    4934  {
    -
    4935  -72 /*fromYearTiny (2028)*/,
    -
    4936  -72 /*toYearTiny (2028)*/,
    -
    4937  3 /*inMonth*/,
    -
    4938  0 /*onDayOfWeek*/,
    -
    4939  5 /*onDayOfMonth*/,
    -
    4940  8 /*atTimeCode*/,
    -
    4941  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4942  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4943  0 /*letterIndex ("")*/,
    -
    4944  },
    -
    4945  // Rule Morocco 2029 only - Jan 14 3:00 -1:00 -
    -
    4946  {
    -
    4947  -71 /*fromYearTiny (2029)*/,
    -
    4948  -71 /*toYearTiny (2029)*/,
    -
    4949  1 /*inMonth*/,
    -
    4950  0 /*onDayOfWeek*/,
    -
    4951  14 /*onDayOfMonth*/,
    -
    4952  12 /*atTimeCode*/,
    -
    4953  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4954  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4955  0 /*letterIndex ("")*/,
    -
    4956  },
    -
    4957  // Rule Morocco 2029 only - Feb 18 2:00 0 -
    -
    4958  {
    -
    4959  -71 /*fromYearTiny (2029)*/,
    -
    4960  -71 /*toYearTiny (2029)*/,
    -
    4961  2 /*inMonth*/,
    -
    4962  0 /*onDayOfWeek*/,
    -
    4963  18 /*onDayOfMonth*/,
    -
    4964  8 /*atTimeCode*/,
    -
    4965  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4966  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4967  0 /*letterIndex ("")*/,
    -
    4968  },
    -
    4969  // Rule Morocco 2029 only - Dec 30 3:00 -1:00 -
    -
    4970  {
    -
    4971  -71 /*fromYearTiny (2029)*/,
    -
    4972  -71 /*toYearTiny (2029)*/,
    -
    4973  12 /*inMonth*/,
    -
    4974  0 /*onDayOfWeek*/,
    -
    4975  30 /*onDayOfMonth*/,
    -
    4976  12 /*atTimeCode*/,
    -
    4977  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4978  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    4979  0 /*letterIndex ("")*/,
    -
    4980  },
    -
    4981  // Rule Morocco 2030 only - Feb 10 2:00 0 -
    -
    4982  {
    -
    4983  -70 /*fromYearTiny (2030)*/,
    -
    4984  -70 /*toYearTiny (2030)*/,
    -
    4985  2 /*inMonth*/,
    -
    4986  0 /*onDayOfWeek*/,
    -
    4987  10 /*onDayOfMonth*/,
    -
    4988  8 /*atTimeCode*/,
    -
    4989  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    4990  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    4991  0 /*letterIndex ("")*/,
    -
    4992  },
    -
    4993  // Rule Morocco 2030 only - Dec 22 3:00 -1:00 -
    -
    4994  {
    -
    4995  -70 /*fromYearTiny (2030)*/,
    -
    4996  -70 /*toYearTiny (2030)*/,
    -
    4997  12 /*inMonth*/,
    -
    4998  0 /*onDayOfWeek*/,
    -
    4999  22 /*onDayOfMonth*/,
    -
    5000  12 /*atTimeCode*/,
    -
    5001  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5002  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5003  0 /*letterIndex ("")*/,
    -
    5004  },
    -
    5005  // Rule Morocco 2031 only - Jan 26 2:00 0 -
    -
    5006  {
    -
    5007  -69 /*fromYearTiny (2031)*/,
    -
    5008  -69 /*toYearTiny (2031)*/,
    -
    5009  1 /*inMonth*/,
    -
    5010  0 /*onDayOfWeek*/,
    -
    5011  26 /*onDayOfMonth*/,
    -
    5012  8 /*atTimeCode*/,
    -
    5013  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5014  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5015  0 /*letterIndex ("")*/,
    -
    5016  },
    -
    5017  // Rule Morocco 2031 only - Dec 14 3:00 -1:00 -
    -
    5018  {
    -
    5019  -69 /*fromYearTiny (2031)*/,
    -
    5020  -69 /*toYearTiny (2031)*/,
    -
    5021  12 /*inMonth*/,
    -
    5022  0 /*onDayOfWeek*/,
    -
    5023  14 /*onDayOfMonth*/,
    -
    5024  12 /*atTimeCode*/,
    -
    5025  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5026  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5027  0 /*letterIndex ("")*/,
    -
    5028  },
    -
    5029  // Rule Morocco 2032 only - Jan 18 2:00 0 -
    -
    5030  {
    -
    5031  -68 /*fromYearTiny (2032)*/,
    -
    5032  -68 /*toYearTiny (2032)*/,
    -
    5033  1 /*inMonth*/,
    -
    5034  0 /*onDayOfWeek*/,
    -
    5035  18 /*onDayOfMonth*/,
    -
    5036  8 /*atTimeCode*/,
    -
    5037  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5038  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5039  0 /*letterIndex ("")*/,
    -
    5040  },
    -
    5041  // Rule Morocco 2032 only - Nov 28 3:00 -1:00 -
    -
    5042  {
    -
    5043  -68 /*fromYearTiny (2032)*/,
    -
    5044  -68 /*toYearTiny (2032)*/,
    -
    5045  11 /*inMonth*/,
    -
    5046  0 /*onDayOfWeek*/,
    -
    5047  28 /*onDayOfMonth*/,
    -
    5048  12 /*atTimeCode*/,
    -
    5049  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5050  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5051  0 /*letterIndex ("")*/,
    -
    5052  },
    -
    5053  // Rule Morocco 2033 only - Jan 9 2:00 0 -
    -
    5054  {
    -
    5055  -67 /*fromYearTiny (2033)*/,
    -
    5056  -67 /*toYearTiny (2033)*/,
    -
    5057  1 /*inMonth*/,
    -
    5058  0 /*onDayOfWeek*/,
    -
    5059  9 /*onDayOfMonth*/,
    -
    5060  8 /*atTimeCode*/,
    -
    5061  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5062  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5063  0 /*letterIndex ("")*/,
    -
    5064  },
    -
    5065  // Rule Morocco 2033 only - Nov 20 3:00 -1:00 -
    -
    5066  {
    -
    5067  -67 /*fromYearTiny (2033)*/,
    -
    5068  -67 /*toYearTiny (2033)*/,
    -
    5069  11 /*inMonth*/,
    -
    5070  0 /*onDayOfWeek*/,
    -
    5071  20 /*onDayOfMonth*/,
    -
    5072  12 /*atTimeCode*/,
    -
    5073  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5074  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5075  0 /*letterIndex ("")*/,
    -
    5076  },
    -
    5077  // Rule Morocco 2033 only - Dec 25 2:00 0 -
    -
    5078  {
    -
    5079  -67 /*fromYearTiny (2033)*/,
    -
    5080  -67 /*toYearTiny (2033)*/,
    -
    5081  12 /*inMonth*/,
    -
    5082  0 /*onDayOfWeek*/,
    -
    5083  25 /*onDayOfMonth*/,
    -
    5084  8 /*atTimeCode*/,
    -
    5085  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5086  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5087  0 /*letterIndex ("")*/,
    -
    5088  },
    -
    5089  // Rule Morocco 2034 only - Nov 5 3:00 -1:00 -
    -
    5090  {
    -
    5091  -66 /*fromYearTiny (2034)*/,
    -
    5092  -66 /*toYearTiny (2034)*/,
    -
    5093  11 /*inMonth*/,
    -
    5094  0 /*onDayOfWeek*/,
    -
    5095  5 /*onDayOfMonth*/,
    -
    5096  12 /*atTimeCode*/,
    -
    5097  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5098  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5099  0 /*letterIndex ("")*/,
    -
    5100  },
    -
    5101  // Rule Morocco 2034 only - Dec 17 2:00 0 -
    -
    5102  {
    -
    5103  -66 /*fromYearTiny (2034)*/,
    -
    5104  -66 /*toYearTiny (2034)*/,
    -
    5105  12 /*inMonth*/,
    -
    5106  0 /*onDayOfWeek*/,
    -
    5107  17 /*onDayOfMonth*/,
    -
    5108  8 /*atTimeCode*/,
    -
    5109  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5110  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5111  0 /*letterIndex ("")*/,
    -
    5112  },
    -
    5113  // Rule Morocco 2035 only - Oct 28 3:00 -1:00 -
    -
    5114  {
    -
    5115  -65 /*fromYearTiny (2035)*/,
    -
    5116  -65 /*toYearTiny (2035)*/,
    -
    5117  10 /*inMonth*/,
    -
    5118  0 /*onDayOfWeek*/,
    -
    5119  28 /*onDayOfMonth*/,
    -
    5120  12 /*atTimeCode*/,
    -
    5121  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5122  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5123  0 /*letterIndex ("")*/,
    -
    5124  },
    -
    5125  // Rule Morocco 2035 only - Dec 9 2:00 0 -
    -
    5126  {
    -
    5127  -65 /*fromYearTiny (2035)*/,
    -
    5128  -65 /*toYearTiny (2035)*/,
    -
    5129  12 /*inMonth*/,
    -
    5130  0 /*onDayOfWeek*/,
    -
    5131  9 /*onDayOfMonth*/,
    -
    5132  8 /*atTimeCode*/,
    -
    5133  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5134  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5135  0 /*letterIndex ("")*/,
    -
    5136  },
    -
    5137  // Rule Morocco 2036 only - Oct 19 3:00 -1:00 -
    -
    5138  {
    -
    5139  -64 /*fromYearTiny (2036)*/,
    -
    5140  -64 /*toYearTiny (2036)*/,
    -
    5141  10 /*inMonth*/,
    -
    5142  0 /*onDayOfWeek*/,
    -
    5143  19 /*onDayOfMonth*/,
    -
    5144  12 /*atTimeCode*/,
    -
    5145  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5146  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5147  0 /*letterIndex ("")*/,
    -
    5148  },
    -
    5149  // Rule Morocco 2036 only - Nov 23 2:00 0 -
    -
    5150  {
    -
    5151  -64 /*fromYearTiny (2036)*/,
    -
    5152  -64 /*toYearTiny (2036)*/,
    -
    5153  11 /*inMonth*/,
    -
    5154  0 /*onDayOfWeek*/,
    -
    5155  23 /*onDayOfMonth*/,
    -
    5156  8 /*atTimeCode*/,
    -
    5157  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5158  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5159  0 /*letterIndex ("")*/,
    -
    5160  },
    -
    5161  // Rule Morocco 2037 only - Oct 4 3:00 -1:00 -
    -
    5162  {
    -
    5163  -63 /*fromYearTiny (2037)*/,
    -
    5164  -63 /*toYearTiny (2037)*/,
    -
    5165  10 /*inMonth*/,
    -
    5166  0 /*onDayOfWeek*/,
    -
    5167  4 /*onDayOfMonth*/,
    -
    5168  12 /*atTimeCode*/,
    -
    5169  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5170  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5171  0 /*letterIndex ("")*/,
    -
    5172  },
    -
    5173  // Rule Morocco 2037 only - Nov 15 2:00 0 -
    -
    5174  {
    -
    5175  -63 /*fromYearTiny (2037)*/,
    -
    5176  -63 /*toYearTiny (2037)*/,
    -
    5177  11 /*inMonth*/,
    -
    5178  0 /*onDayOfWeek*/,
    -
    5179  15 /*onDayOfMonth*/,
    -
    5180  8 /*atTimeCode*/,
    -
    5181  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5182  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5183  0 /*letterIndex ("")*/,
    -
    5184  },
    -
    5185  // Rule Morocco 2038 only - Sep 26 3:00 -1:00 -
    -
    5186  {
    -
    5187  -62 /*fromYearTiny (2038)*/,
    -
    5188  -62 /*toYearTiny (2038)*/,
    -
    5189  9 /*inMonth*/,
    -
    5190  0 /*onDayOfWeek*/,
    -
    5191  26 /*onDayOfMonth*/,
    -
    5192  12 /*atTimeCode*/,
    -
    5193  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5194  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5195  0 /*letterIndex ("")*/,
    -
    5196  },
    -
    5197  // Rule Morocco 2038 only - Oct 31 2:00 0 -
    -
    5198  {
    -
    5199  -62 /*fromYearTiny (2038)*/,
    -
    5200  -62 /*toYearTiny (2038)*/,
    -
    5201  10 /*inMonth*/,
    -
    5202  0 /*onDayOfWeek*/,
    -
    5203  31 /*onDayOfMonth*/,
    -
    5204  8 /*atTimeCode*/,
    -
    5205  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5206  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5207  0 /*letterIndex ("")*/,
    -
    5208  },
    -
    5209  // Rule Morocco 2039 only - Sep 18 3:00 -1:00 -
    -
    5210  {
    -
    5211  -61 /*fromYearTiny (2039)*/,
    -
    5212  -61 /*toYearTiny (2039)*/,
    -
    5213  9 /*inMonth*/,
    -
    5214  0 /*onDayOfWeek*/,
    -
    5215  18 /*onDayOfMonth*/,
    -
    5216  12 /*atTimeCode*/,
    -
    5217  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5218  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5219  0 /*letterIndex ("")*/,
    -
    5220  },
    -
    5221  // Rule Morocco 2039 only - Oct 23 2:00 0 -
    -
    5222  {
    -
    5223  -61 /*fromYearTiny (2039)*/,
    -
    5224  -61 /*toYearTiny (2039)*/,
    -
    5225  10 /*inMonth*/,
    -
    5226  0 /*onDayOfWeek*/,
    -
    5227  23 /*onDayOfMonth*/,
    -
    5228  8 /*atTimeCode*/,
    -
    5229  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5230  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5231  0 /*letterIndex ("")*/,
    -
    5232  },
    -
    5233  // Rule Morocco 2040 only - Sep 2 3:00 -1:00 -
    -
    5234  {
    -
    5235  -60 /*fromYearTiny (2040)*/,
    -
    5236  -60 /*toYearTiny (2040)*/,
    -
    5237  9 /*inMonth*/,
    -
    5238  0 /*onDayOfWeek*/,
    -
    5239  2 /*onDayOfMonth*/,
    -
    5240  12 /*atTimeCode*/,
    -
    5241  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5242  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5243  0 /*letterIndex ("")*/,
    -
    5244  },
    -
    5245  // Rule Morocco 2040 only - Oct 14 2:00 0 -
    -
    5246  {
    -
    5247  -60 /*fromYearTiny (2040)*/,
    -
    5248  -60 /*toYearTiny (2040)*/,
    -
    5249  10 /*inMonth*/,
    -
    5250  0 /*onDayOfWeek*/,
    -
    5251  14 /*onDayOfMonth*/,
    -
    5252  8 /*atTimeCode*/,
    -
    5253  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5254  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5255  0 /*letterIndex ("")*/,
    -
    5256  },
    -
    5257  // Rule Morocco 2041 only - Aug 25 3:00 -1:00 -
    -
    5258  {
    -
    5259  -59 /*fromYearTiny (2041)*/,
    -
    5260  -59 /*toYearTiny (2041)*/,
    -
    5261  8 /*inMonth*/,
    -
    5262  0 /*onDayOfWeek*/,
    -
    5263  25 /*onDayOfMonth*/,
    -
    5264  12 /*atTimeCode*/,
    -
    5265  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5266  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5267  0 /*letterIndex ("")*/,
    -
    5268  },
    -
    5269  // Rule Morocco 2041 only - Sep 29 2:00 0 -
    -
    5270  {
    -
    5271  -59 /*fromYearTiny (2041)*/,
    -
    5272  -59 /*toYearTiny (2041)*/,
    -
    5273  9 /*inMonth*/,
    -
    5274  0 /*onDayOfWeek*/,
    -
    5275  29 /*onDayOfMonth*/,
    -
    5276  8 /*atTimeCode*/,
    -
    5277  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5278  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5279  0 /*letterIndex ("")*/,
    -
    5280  },
    -
    5281  // Rule Morocco 2042 only - Aug 10 3:00 -1:00 -
    -
    5282  {
    -
    5283  -58 /*fromYearTiny (2042)*/,
    -
    5284  -58 /*toYearTiny (2042)*/,
    -
    5285  8 /*inMonth*/,
    -
    5286  0 /*onDayOfWeek*/,
    -
    5287  10 /*onDayOfMonth*/,
    -
    5288  12 /*atTimeCode*/,
    -
    5289  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5290  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5291  0 /*letterIndex ("")*/,
    -
    5292  },
    -
    5293  // Rule Morocco 2042 only - Sep 21 2:00 0 -
    -
    5294  {
    -
    5295  -58 /*fromYearTiny (2042)*/,
    -
    5296  -58 /*toYearTiny (2042)*/,
    -
    5297  9 /*inMonth*/,
    -
    5298  0 /*onDayOfWeek*/,
    -
    5299  21 /*onDayOfMonth*/,
    -
    5300  8 /*atTimeCode*/,
    -
    5301  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5302  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5303  0 /*letterIndex ("")*/,
    -
    5304  },
    -
    5305  // Rule Morocco 2043 only - Aug 2 3:00 -1:00 -
    -
    5306  {
    -
    5307  -57 /*fromYearTiny (2043)*/,
    -
    5308  -57 /*toYearTiny (2043)*/,
    -
    5309  8 /*inMonth*/,
    -
    5310  0 /*onDayOfWeek*/,
    -
    5311  2 /*onDayOfMonth*/,
    -
    5312  12 /*atTimeCode*/,
    -
    5313  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5314  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5315  0 /*letterIndex ("")*/,
    -
    5316  },
    -
    5317  // Rule Morocco 2043 only - Sep 13 2:00 0 -
    -
    5318  {
    -
    5319  -57 /*fromYearTiny (2043)*/,
    -
    5320  -57 /*toYearTiny (2043)*/,
    -
    5321  9 /*inMonth*/,
    -
    5322  0 /*onDayOfWeek*/,
    -
    5323  13 /*onDayOfMonth*/,
    -
    5324  8 /*atTimeCode*/,
    -
    5325  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5326  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5327  0 /*letterIndex ("")*/,
    -
    5328  },
    -
    5329  // Rule Morocco 2044 only - Jul 24 3:00 -1:00 -
    -
    5330  {
    -
    5331  -56 /*fromYearTiny (2044)*/,
    -
    5332  -56 /*toYearTiny (2044)*/,
    -
    5333  7 /*inMonth*/,
    -
    5334  0 /*onDayOfWeek*/,
    -
    5335  24 /*onDayOfMonth*/,
    -
    5336  12 /*atTimeCode*/,
    -
    5337  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5338  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5339  0 /*letterIndex ("")*/,
    -
    5340  },
    -
    5341  // Rule Morocco 2044 only - Aug 28 2:00 0 -
    -
    5342  {
    -
    5343  -56 /*fromYearTiny (2044)*/,
    -
    5344  -56 /*toYearTiny (2044)*/,
    -
    5345  8 /*inMonth*/,
    -
    5346  0 /*onDayOfWeek*/,
    -
    5347  28 /*onDayOfMonth*/,
    -
    5348  8 /*atTimeCode*/,
    -
    5349  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5350  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5351  0 /*letterIndex ("")*/,
    -
    5352  },
    -
    5353  // Rule Morocco 2045 only - Jul 9 3:00 -1:00 -
    -
    5354  {
    -
    5355  -55 /*fromYearTiny (2045)*/,
    -
    5356  -55 /*toYearTiny (2045)*/,
    -
    5357  7 /*inMonth*/,
    -
    5358  0 /*onDayOfWeek*/,
    -
    5359  9 /*onDayOfMonth*/,
    -
    5360  12 /*atTimeCode*/,
    -
    5361  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5362  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5363  0 /*letterIndex ("")*/,
    -
    5364  },
    -
    5365  // Rule Morocco 2045 only - Aug 20 2:00 0 -
    -
    5366  {
    -
    5367  -55 /*fromYearTiny (2045)*/,
    -
    5368  -55 /*toYearTiny (2045)*/,
    -
    5369  8 /*inMonth*/,
    -
    5370  0 /*onDayOfWeek*/,
    -
    5371  20 /*onDayOfMonth*/,
    -
    5372  8 /*atTimeCode*/,
    -
    5373  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5374  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5375  0 /*letterIndex ("")*/,
    -
    5376  },
    -
    5377  // Rule Morocco 2046 only - Jul 1 3:00 -1:00 -
    -
    5378  {
    -
    5379  -54 /*fromYearTiny (2046)*/,
    -
    5380  -54 /*toYearTiny (2046)*/,
    -
    5381  7 /*inMonth*/,
    -
    5382  0 /*onDayOfWeek*/,
    -
    5383  1 /*onDayOfMonth*/,
    -
    5384  12 /*atTimeCode*/,
    -
    5385  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5386  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5387  0 /*letterIndex ("")*/,
    -
    5388  },
    -
    5389  // Rule Morocco 2046 only - Aug 5 2:00 0 -
    -
    5390  {
    -
    5391  -54 /*fromYearTiny (2046)*/,
    -
    5392  -54 /*toYearTiny (2046)*/,
    -
    5393  8 /*inMonth*/,
    -
    5394  0 /*onDayOfWeek*/,
    -
    5395  5 /*onDayOfMonth*/,
    -
    5396  8 /*atTimeCode*/,
    -
    5397  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5398  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5399  0 /*letterIndex ("")*/,
    -
    5400  },
    -
    5401  // Rule Morocco 2047 only - Jun 23 3:00 -1:00 -
    -
    5402  {
    -
    5403  -53 /*fromYearTiny (2047)*/,
    -
    5404  -53 /*toYearTiny (2047)*/,
    -
    5405  6 /*inMonth*/,
    -
    5406  0 /*onDayOfWeek*/,
    -
    5407  23 /*onDayOfMonth*/,
    -
    5408  12 /*atTimeCode*/,
    -
    5409  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5410  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5411  0 /*letterIndex ("")*/,
    -
    5412  },
    -
    5413  // Rule Morocco 2047 only - Jul 28 2:00 0 -
    -
    5414  {
    -
    5415  -53 /*fromYearTiny (2047)*/,
    -
    5416  -53 /*toYearTiny (2047)*/,
    -
    5417  7 /*inMonth*/,
    -
    5418  0 /*onDayOfWeek*/,
    -
    5419  28 /*onDayOfMonth*/,
    -
    5420  8 /*atTimeCode*/,
    -
    5421  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5422  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5423  0 /*letterIndex ("")*/,
    -
    5424  },
    -
    5425  // Rule Morocco 2048 only - Jun 7 3:00 -1:00 -
    -
    5426  {
    -
    5427  -52 /*fromYearTiny (2048)*/,
    -
    5428  -52 /*toYearTiny (2048)*/,
    -
    5429  6 /*inMonth*/,
    -
    5430  0 /*onDayOfWeek*/,
    -
    5431  7 /*onDayOfMonth*/,
    -
    5432  12 /*atTimeCode*/,
    -
    5433  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5434  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5435  0 /*letterIndex ("")*/,
    -
    5436  },
    -
    5437  // Rule Morocco 2048 only - Jul 19 2:00 0 -
    -
    5438  {
    -
    5439  -52 /*fromYearTiny (2048)*/,
    -
    5440  -52 /*toYearTiny (2048)*/,
    -
    5441  7 /*inMonth*/,
    -
    5442  0 /*onDayOfWeek*/,
    -
    5443  19 /*onDayOfMonth*/,
    -
    5444  8 /*atTimeCode*/,
    -
    5445  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5446  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5447  0 /*letterIndex ("")*/,
    -
    5448  },
    -
    5449  // Rule Morocco 2049 only - May 30 3:00 -1:00 -
    -
    5450  {
    -
    5451  -51 /*fromYearTiny (2049)*/,
    -
    5452  -51 /*toYearTiny (2049)*/,
    -
    5453  5 /*inMonth*/,
    -
    5454  0 /*onDayOfWeek*/,
    -
    5455  30 /*onDayOfMonth*/,
    -
    5456  12 /*atTimeCode*/,
    -
    5457  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5458  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5459  0 /*letterIndex ("")*/,
    -
    5460  },
    -
    5461  // Rule Morocco 2049 only - Jul 4 2:00 0 -
    -
    5462  {
    -
    5463  -51 /*fromYearTiny (2049)*/,
    -
    5464  -51 /*toYearTiny (2049)*/,
    -
    5465  7 /*inMonth*/,
    -
    5466  0 /*onDayOfWeek*/,
    -
    5467  4 /*onDayOfMonth*/,
    -
    5468  8 /*atTimeCode*/,
    -
    5469  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5470  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5471  0 /*letterIndex ("")*/,
    -
    5472  },
    -
    5473  // Rule Morocco 2050 only - May 15 3:00 -1:00 -
    -
    5474  {
    -
    5475  -50 /*fromYearTiny (2050)*/,
    -
    5476  -50 /*toYearTiny (2050)*/,
    -
    5477  5 /*inMonth*/,
    -
    5478  0 /*onDayOfWeek*/,
    -
    5479  15 /*onDayOfMonth*/,
    -
    5480  12 /*atTimeCode*/,
    -
    5481  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5482  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5483  0 /*letterIndex ("")*/,
    -
    5484  },
    -
    5485  // Rule Morocco 2050 only - Jun 26 2:00 0 -
    -
    5486  {
    -
    5487  -50 /*fromYearTiny (2050)*/,
    -
    5488  -50 /*toYearTiny (2050)*/,
    -
    5489  6 /*inMonth*/,
    -
    5490  0 /*onDayOfWeek*/,
    -
    5491  26 /*onDayOfMonth*/,
    -
    5492  8 /*atTimeCode*/,
    -
    5493  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5494  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5495  0 /*letterIndex ("")*/,
    -
    5496  },
    -
    5497  // Rule Morocco 2051 only - May 7 3:00 -1:00 -
    -
    5498  {
    -
    5499  -49 /*fromYearTiny (2051)*/,
    -
    5500  -49 /*toYearTiny (2051)*/,
    -
    5501  5 /*inMonth*/,
    -
    5502  0 /*onDayOfWeek*/,
    -
    5503  7 /*onDayOfMonth*/,
    -
    5504  12 /*atTimeCode*/,
    -
    5505  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5506  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5507  0 /*letterIndex ("")*/,
    -
    5508  },
    -
    5509  // Rule Morocco 2051 only - Jun 18 2:00 0 -
    -
    5510  {
    -
    5511  -49 /*fromYearTiny (2051)*/,
    -
    5512  -49 /*toYearTiny (2051)*/,
    -
    5513  6 /*inMonth*/,
    -
    5514  0 /*onDayOfWeek*/,
    -
    5515  18 /*onDayOfMonth*/,
    -
    5516  8 /*atTimeCode*/,
    -
    5517  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5518  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5519  0 /*letterIndex ("")*/,
    -
    5520  },
    -
    5521  // Rule Morocco 2052 only - Apr 28 3:00 -1:00 -
    -
    5522  {
    -
    5523  -48 /*fromYearTiny (2052)*/,
    -
    5524  -48 /*toYearTiny (2052)*/,
    -
    5525  4 /*inMonth*/,
    -
    5526  0 /*onDayOfWeek*/,
    -
    5527  28 /*onDayOfMonth*/,
    -
    5528  12 /*atTimeCode*/,
    -
    5529  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5530  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5531  0 /*letterIndex ("")*/,
    -
    5532  },
    -
    5533  // Rule Morocco 2052 only - Jun 2 2:00 0 -
    -
    5534  {
    -
    5535  -48 /*fromYearTiny (2052)*/,
    -
    5536  -48 /*toYearTiny (2052)*/,
    -
    5537  6 /*inMonth*/,
    -
    5538  0 /*onDayOfWeek*/,
    -
    5539  2 /*onDayOfMonth*/,
    -
    5540  8 /*atTimeCode*/,
    -
    5541  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5542  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5543  0 /*letterIndex ("")*/,
    -
    5544  },
    -
    5545  // Rule Morocco 2053 only - Apr 13 3:00 -1:00 -
    -
    5546  {
    -
    5547  -47 /*fromYearTiny (2053)*/,
    -
    5548  -47 /*toYearTiny (2053)*/,
    -
    5549  4 /*inMonth*/,
    -
    5550  0 /*onDayOfWeek*/,
    -
    5551  13 /*onDayOfMonth*/,
    -
    5552  12 /*atTimeCode*/,
    -
    5553  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5554  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5555  0 /*letterIndex ("")*/,
    -
    5556  },
    -
    5557  // Rule Morocco 2053 only - May 25 2:00 0 -
    -
    5558  {
    -
    5559  -47 /*fromYearTiny (2053)*/,
    -
    5560  -47 /*toYearTiny (2053)*/,
    -
    5561  5 /*inMonth*/,
    -
    5562  0 /*onDayOfWeek*/,
    -
    5563  25 /*onDayOfMonth*/,
    -
    5564  8 /*atTimeCode*/,
    -
    5565  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5566  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5567  0 /*letterIndex ("")*/,
    -
    5568  },
    -
    5569  // Rule Morocco 2054 only - Apr 5 3:00 -1:00 -
    -
    5570  {
    -
    5571  -46 /*fromYearTiny (2054)*/,
    -
    5572  -46 /*toYearTiny (2054)*/,
    -
    5573  4 /*inMonth*/,
    -
    5574  0 /*onDayOfWeek*/,
    -
    5575  5 /*onDayOfMonth*/,
    -
    5576  12 /*atTimeCode*/,
    -
    5577  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5578  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5579  0 /*letterIndex ("")*/,
    -
    5580  },
    -
    5581  // Rule Morocco 2054 only - May 10 2:00 0 -
    -
    5582  {
    -
    5583  -46 /*fromYearTiny (2054)*/,
    -
    5584  -46 /*toYearTiny (2054)*/,
    -
    5585  5 /*inMonth*/,
    -
    5586  0 /*onDayOfWeek*/,
    -
    5587  10 /*onDayOfMonth*/,
    -
    5588  8 /*atTimeCode*/,
    -
    5589  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5590  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5591  0 /*letterIndex ("")*/,
    -
    5592  },
    -
    5593  // Rule Morocco 2055 only - Mar 28 3:00 -1:00 -
    -
    5594  {
    -
    5595  -45 /*fromYearTiny (2055)*/,
    -
    5596  -45 /*toYearTiny (2055)*/,
    -
    5597  3 /*inMonth*/,
    -
    5598  0 /*onDayOfWeek*/,
    -
    5599  28 /*onDayOfMonth*/,
    -
    5600  12 /*atTimeCode*/,
    -
    5601  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5602  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5603  0 /*letterIndex ("")*/,
    -
    5604  },
    -
    5605  // Rule Morocco 2055 only - May 2 2:00 0 -
    -
    5606  {
    -
    5607  -45 /*fromYearTiny (2055)*/,
    -
    5608  -45 /*toYearTiny (2055)*/,
    -
    5609  5 /*inMonth*/,
    -
    5610  0 /*onDayOfWeek*/,
    -
    5611  2 /*onDayOfMonth*/,
    -
    5612  8 /*atTimeCode*/,
    -
    5613  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5614  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5615  0 /*letterIndex ("")*/,
    -
    5616  },
    -
    5617  // Rule Morocco 2056 only - Mar 12 3:00 -1:00 -
    -
    5618  {
    -
    5619  -44 /*fromYearTiny (2056)*/,
    -
    5620  -44 /*toYearTiny (2056)*/,
    -
    5621  3 /*inMonth*/,
    -
    5622  0 /*onDayOfWeek*/,
    -
    5623  12 /*onDayOfMonth*/,
    -
    5624  12 /*atTimeCode*/,
    -
    5625  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5626  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5627  0 /*letterIndex ("")*/,
    -
    5628  },
    -
    5629  // Rule Morocco 2056 only - Apr 23 2:00 0 -
    -
    5630  {
    -
    5631  -44 /*fromYearTiny (2056)*/,
    -
    5632  -44 /*toYearTiny (2056)*/,
    -
    5633  4 /*inMonth*/,
    -
    5634  0 /*onDayOfWeek*/,
    -
    5635  23 /*onDayOfMonth*/,
    -
    5636  8 /*atTimeCode*/,
    -
    5637  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5638  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5639  0 /*letterIndex ("")*/,
    -
    5640  },
    -
    5641  // Rule Morocco 2057 only - Mar 4 3:00 -1:00 -
    -
    5642  {
    -
    5643  -43 /*fromYearTiny (2057)*/,
    -
    5644  -43 /*toYearTiny (2057)*/,
    -
    5645  3 /*inMonth*/,
    -
    5646  0 /*onDayOfWeek*/,
    -
    5647  4 /*onDayOfMonth*/,
    -
    5648  12 /*atTimeCode*/,
    -
    5649  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5650  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5651  0 /*letterIndex ("")*/,
    -
    5652  },
    -
    5653  // Rule Morocco 2057 only - Apr 8 2:00 0 -
    -
    5654  {
    -
    5655  -43 /*fromYearTiny (2057)*/,
    -
    5656  -43 /*toYearTiny (2057)*/,
    -
    5657  4 /*inMonth*/,
    -
    5658  0 /*onDayOfWeek*/,
    -
    5659  8 /*onDayOfMonth*/,
    -
    5660  8 /*atTimeCode*/,
    -
    5661  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5662  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5663  0 /*letterIndex ("")*/,
    -
    5664  },
    -
    5665  // Rule Morocco 2058 only - Feb 17 3:00 -1:00 -
    -
    5666  {
    -
    5667  -42 /*fromYearTiny (2058)*/,
    -
    5668  -42 /*toYearTiny (2058)*/,
    -
    5669  2 /*inMonth*/,
    -
    5670  0 /*onDayOfWeek*/,
    -
    5671  17 /*onDayOfMonth*/,
    -
    5672  12 /*atTimeCode*/,
    -
    5673  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5674  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5675  0 /*letterIndex ("")*/,
    -
    5676  },
    -
    5677  // Rule Morocco 2058 only - Mar 31 2:00 0 -
    -
    5678  {
    -
    5679  -42 /*fromYearTiny (2058)*/,
    -
    5680  -42 /*toYearTiny (2058)*/,
    -
    5681  3 /*inMonth*/,
    -
    5682  0 /*onDayOfWeek*/,
    -
    5683  31 /*onDayOfMonth*/,
    -
    5684  8 /*atTimeCode*/,
    -
    5685  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5686  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5687  0 /*letterIndex ("")*/,
    -
    5688  },
    -
    5689  // Rule Morocco 2059 only - Feb 9 3:00 -1:00 -
    -
    5690  {
    -
    5691  -41 /*fromYearTiny (2059)*/,
    -
    5692  -41 /*toYearTiny (2059)*/,
    -
    5693  2 /*inMonth*/,
    -
    5694  0 /*onDayOfWeek*/,
    -
    5695  9 /*onDayOfMonth*/,
    -
    5696  12 /*atTimeCode*/,
    -
    5697  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5698  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5699  0 /*letterIndex ("")*/,
    -
    5700  },
    -
    5701  // Rule Morocco 2059 only - Mar 23 2:00 0 -
    -
    5702  {
    -
    5703  -41 /*fromYearTiny (2059)*/,
    -
    5704  -41 /*toYearTiny (2059)*/,
    -
    5705  3 /*inMonth*/,
    -
    5706  0 /*onDayOfWeek*/,
    -
    5707  23 /*onDayOfMonth*/,
    -
    5708  8 /*atTimeCode*/,
    -
    5709  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5710  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5711  0 /*letterIndex ("")*/,
    -
    5712  },
    -
    5713  // Rule Morocco 2060 only - Feb 1 3:00 -1:00 -
    -
    5714  {
    -
    5715  -40 /*fromYearTiny (2060)*/,
    -
    5716  -40 /*toYearTiny (2060)*/,
    -
    5717  2 /*inMonth*/,
    -
    5718  0 /*onDayOfWeek*/,
    -
    5719  1 /*onDayOfMonth*/,
    -
    5720  12 /*atTimeCode*/,
    -
    5721  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5722  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5723  0 /*letterIndex ("")*/,
    -
    5724  },
    -
    5725  // Rule Morocco 2060 only - Mar 7 2:00 0 -
    -
    5726  {
    -
    5727  -40 /*fromYearTiny (2060)*/,
    -
    5728  -40 /*toYearTiny (2060)*/,
    -
    5729  3 /*inMonth*/,
    -
    5730  0 /*onDayOfWeek*/,
    -
    5731  7 /*onDayOfMonth*/,
    -
    5732  8 /*atTimeCode*/,
    -
    5733  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5734  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5735  0 /*letterIndex ("")*/,
    -
    5736  },
    -
    5737  // Rule Morocco 2061 only - Jan 16 3:00 -1:00 -
    -
    5738  {
    -
    5739  -39 /*fromYearTiny (2061)*/,
    -
    5740  -39 /*toYearTiny (2061)*/,
    -
    5741  1 /*inMonth*/,
    -
    5742  0 /*onDayOfWeek*/,
    -
    5743  16 /*onDayOfMonth*/,
    -
    5744  12 /*atTimeCode*/,
    -
    5745  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5746  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5747  0 /*letterIndex ("")*/,
    -
    5748  },
    -
    5749  // Rule Morocco 2061 only - Feb 27 2:00 0 -
    -
    5750  {
    -
    5751  -39 /*fromYearTiny (2061)*/,
    -
    5752  -39 /*toYearTiny (2061)*/,
    -
    5753  2 /*inMonth*/,
    -
    5754  0 /*onDayOfWeek*/,
    -
    5755  27 /*onDayOfMonth*/,
    -
    5756  8 /*atTimeCode*/,
    -
    5757  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5758  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5759  0 /*letterIndex ("")*/,
    -
    5760  },
    -
    5761  // Rule Morocco 2062 only - Jan 8 3:00 -1:00 -
    -
    5762  {
    -
    5763  -38 /*fromYearTiny (2062)*/,
    -
    5764  -38 /*toYearTiny (2062)*/,
    -
    5765  1 /*inMonth*/,
    -
    5766  0 /*onDayOfWeek*/,
    -
    5767  8 /*onDayOfMonth*/,
    -
    5768  12 /*atTimeCode*/,
    -
    5769  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5770  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5771  0 /*letterIndex ("")*/,
    -
    5772  },
    -
    5773  // Rule Morocco 2062 only - Feb 12 2:00 0 -
    -
    5774  {
    -
    5775  -38 /*fromYearTiny (2062)*/,
    -
    5776  -38 /*toYearTiny (2062)*/,
    -
    5777  2 /*inMonth*/,
    -
    5778  0 /*onDayOfWeek*/,
    -
    5779  12 /*onDayOfMonth*/,
    -
    5780  8 /*atTimeCode*/,
    -
    5781  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5782  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5783  0 /*letterIndex ("")*/,
    -
    5784  },
    -
    5785  // Rule Morocco 2062 only - Dec 31 3:00 -1:00 -
    -
    5786  {
    -
    5787  -38 /*fromYearTiny (2062)*/,
    -
    5788  -38 /*toYearTiny (2062)*/,
    -
    5789  12 /*inMonth*/,
    -
    5790  0 /*onDayOfWeek*/,
    -
    5791  31 /*onDayOfMonth*/,
    -
    5792  12 /*atTimeCode*/,
    -
    5793  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5794  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5795  0 /*letterIndex ("")*/,
    -
    5796  },
    -
    5797  // Rule Morocco 2063 only - Feb 4 2:00 0 -
    -
    5798  {
    -
    5799  -37 /*fromYearTiny (2063)*/,
    -
    5800  -37 /*toYearTiny (2063)*/,
    -
    5801  2 /*inMonth*/,
    -
    5802  0 /*onDayOfWeek*/,
    -
    5803  4 /*onDayOfMonth*/,
    -
    5804  8 /*atTimeCode*/,
    -
    5805  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5806  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5807  0 /*letterIndex ("")*/,
    -
    5808  },
    -
    5809  // Rule Morocco 2063 only - Dec 16 3:00 -1:00 -
    -
    5810  {
    -
    5811  -37 /*fromYearTiny (2063)*/,
    -
    5812  -37 /*toYearTiny (2063)*/,
    -
    5813  12 /*inMonth*/,
    -
    5814  0 /*onDayOfWeek*/,
    -
    5815  16 /*onDayOfMonth*/,
    -
    5816  12 /*atTimeCode*/,
    -
    5817  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5818  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5819  0 /*letterIndex ("")*/,
    -
    5820  },
    -
    5821  // Rule Morocco 2064 only - Jan 27 2:00 0 -
    -
    5822  {
    -
    5823  -36 /*fromYearTiny (2064)*/,
    -
    5824  -36 /*toYearTiny (2064)*/,
    -
    5825  1 /*inMonth*/,
    -
    5826  0 /*onDayOfWeek*/,
    -
    5827  27 /*onDayOfMonth*/,
    -
    5828  8 /*atTimeCode*/,
    -
    5829  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5830  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5831  0 /*letterIndex ("")*/,
    -
    5832  },
    -
    5833  // Rule Morocco 2064 only - Dec 7 3:00 -1:00 -
    -
    5834  {
    -
    5835  -36 /*fromYearTiny (2064)*/,
    -
    5836  -36 /*toYearTiny (2064)*/,
    -
    5837  12 /*inMonth*/,
    -
    5838  0 /*onDayOfWeek*/,
    -
    5839  7 /*onDayOfMonth*/,
    -
    5840  12 /*atTimeCode*/,
    -
    5841  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5842  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5843  0 /*letterIndex ("")*/,
    -
    5844  },
    -
    5845  // Rule Morocco 2065 only - Jan 11 2:00 0 -
    -
    5846  {
    -
    5847  -35 /*fromYearTiny (2065)*/,
    -
    5848  -35 /*toYearTiny (2065)*/,
    -
    5849  1 /*inMonth*/,
    -
    5850  0 /*onDayOfWeek*/,
    -
    5851  11 /*onDayOfMonth*/,
    -
    5852  8 /*atTimeCode*/,
    -
    5853  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5854  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5855  0 /*letterIndex ("")*/,
    -
    5856  },
    -
    5857  // Rule Morocco 2065 only - Nov 22 3:00 -1:00 -
    -
    5858  {
    -
    5859  -35 /*fromYearTiny (2065)*/,
    -
    5860  -35 /*toYearTiny (2065)*/,
    -
    5861  11 /*inMonth*/,
    -
    5862  0 /*onDayOfWeek*/,
    -
    5863  22 /*onDayOfMonth*/,
    -
    5864  12 /*atTimeCode*/,
    -
    5865  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5866  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5867  0 /*letterIndex ("")*/,
    -
    5868  },
    -
    5869  // Rule Morocco 2066 only - Jan 3 2:00 0 -
    -
    5870  {
    -
    5871  -34 /*fromYearTiny (2066)*/,
    -
    5872  -34 /*toYearTiny (2066)*/,
    -
    5873  1 /*inMonth*/,
    -
    5874  0 /*onDayOfWeek*/,
    -
    5875  3 /*onDayOfMonth*/,
    -
    5876  8 /*atTimeCode*/,
    -
    5877  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5878  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5879  0 /*letterIndex ("")*/,
    -
    5880  },
    -
    5881  // Rule Morocco 2066 only - Nov 14 3:00 -1:00 -
    -
    5882  {
    -
    5883  -34 /*fromYearTiny (2066)*/,
    -
    5884  -34 /*toYearTiny (2066)*/,
    -
    5885  11 /*inMonth*/,
    -
    5886  0 /*onDayOfWeek*/,
    -
    5887  14 /*onDayOfMonth*/,
    -
    5888  12 /*atTimeCode*/,
    -
    5889  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5890  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5891  0 /*letterIndex ("")*/,
    -
    5892  },
    -
    5893  // Rule Morocco 2066 only - Dec 26 2:00 0 -
    -
    5894  {
    -
    5895  -34 /*fromYearTiny (2066)*/,
    -
    5896  -34 /*toYearTiny (2066)*/,
    -
    5897  12 /*inMonth*/,
    -
    5898  0 /*onDayOfWeek*/,
    -
    5899  26 /*onDayOfMonth*/,
    -
    5900  8 /*atTimeCode*/,
    -
    5901  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5902  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5903  0 /*letterIndex ("")*/,
    -
    5904  },
    -
    5905  // Rule Morocco 2067 only - Nov 6 3:00 -1:00 -
    -
    5906  {
    -
    5907  -33 /*fromYearTiny (2067)*/,
    -
    5908  -33 /*toYearTiny (2067)*/,
    -
    5909  11 /*inMonth*/,
    -
    5910  0 /*onDayOfWeek*/,
    -
    5911  6 /*onDayOfMonth*/,
    -
    5912  12 /*atTimeCode*/,
    -
    5913  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5914  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5915  0 /*letterIndex ("")*/,
    -
    5916  },
    -
    5917  // Rule Morocco 2067 only - Dec 11 2:00 0 -
    -
    5918  {
    -
    5919  -33 /*fromYearTiny (2067)*/,
    -
    5920  -33 /*toYearTiny (2067)*/,
    -
    5921  12 /*inMonth*/,
    -
    5922  0 /*onDayOfWeek*/,
    -
    5923  11 /*onDayOfMonth*/,
    -
    5924  8 /*atTimeCode*/,
    -
    5925  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5926  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5927  0 /*letterIndex ("")*/,
    -
    5928  },
    -
    5929  // Rule Morocco 2068 only - Oct 21 3:00 -1:00 -
    -
    5930  {
    -
    5931  -32 /*fromYearTiny (2068)*/,
    -
    5932  -32 /*toYearTiny (2068)*/,
    -
    5933  10 /*inMonth*/,
    -
    5934  0 /*onDayOfWeek*/,
    -
    5935  21 /*onDayOfMonth*/,
    -
    5936  12 /*atTimeCode*/,
    -
    5937  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5938  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5939  0 /*letterIndex ("")*/,
    -
    5940  },
    -
    5941  // Rule Morocco 2068 only - Dec 2 2:00 0 -
    -
    5942  {
    -
    5943  -32 /*fromYearTiny (2068)*/,
    -
    5944  -32 /*toYearTiny (2068)*/,
    -
    5945  12 /*inMonth*/,
    -
    5946  0 /*onDayOfWeek*/,
    -
    5947  2 /*onDayOfMonth*/,
    -
    5948  8 /*atTimeCode*/,
    -
    5949  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5950  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5951  0 /*letterIndex ("")*/,
    -
    5952  },
    -
    5953  // Rule Morocco 2069 only - Oct 13 3:00 -1:00 -
    -
    5954  {
    -
    5955  -31 /*fromYearTiny (2069)*/,
    -
    5956  -31 /*toYearTiny (2069)*/,
    -
    5957  10 /*inMonth*/,
    -
    5958  0 /*onDayOfWeek*/,
    -
    5959  13 /*onDayOfMonth*/,
    -
    5960  12 /*atTimeCode*/,
    -
    5961  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5962  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5963  0 /*letterIndex ("")*/,
    -
    5964  },
    -
    5965  // Rule Morocco 2069 only - Nov 17 2:00 0 -
    -
    5966  {
    -
    5967  -31 /*fromYearTiny (2069)*/,
    -
    5968  -31 /*toYearTiny (2069)*/,
    -
    5969  11 /*inMonth*/,
    -
    5970  0 /*onDayOfWeek*/,
    -
    5971  17 /*onDayOfMonth*/,
    -
    5972  8 /*atTimeCode*/,
    -
    5973  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5974  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5975  0 /*letterIndex ("")*/,
    -
    5976  },
    -
    5977  // Rule Morocco 2070 only - Oct 5 3:00 -1:00 -
    -
    5978  {
    -
    5979  -30 /*fromYearTiny (2070)*/,
    -
    5980  -30 /*toYearTiny (2070)*/,
    -
    5981  10 /*inMonth*/,
    -
    5982  0 /*onDayOfWeek*/,
    -
    5983  5 /*onDayOfMonth*/,
    -
    5984  12 /*atTimeCode*/,
    -
    5985  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5986  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    5987  0 /*letterIndex ("")*/,
    -
    5988  },
    -
    5989  // Rule Morocco 2070 only - Nov 9 2:00 0 -
    -
    5990  {
    -
    5991  -30 /*fromYearTiny (2070)*/,
    -
    5992  -30 /*toYearTiny (2070)*/,
    -
    5993  11 /*inMonth*/,
    -
    5994  0 /*onDayOfWeek*/,
    -
    5995  9 /*onDayOfMonth*/,
    -
    5996  8 /*atTimeCode*/,
    -
    5997  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    5998  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    5999  0 /*letterIndex ("")*/,
    -
    6000  },
    -
    6001  // Rule Morocco 2071 only - Sep 20 3:00 -1:00 -
    -
    6002  {
    -
    6003  -29 /*fromYearTiny (2071)*/,
    -
    6004  -29 /*toYearTiny (2071)*/,
    -
    6005  9 /*inMonth*/,
    -
    6006  0 /*onDayOfWeek*/,
    -
    6007  20 /*onDayOfMonth*/,
    -
    6008  12 /*atTimeCode*/,
    -
    6009  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6010  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6011  0 /*letterIndex ("")*/,
    -
    6012  },
    -
    6013  // Rule Morocco 2071 only - Nov 1 2:00 0 -
    -
    6014  {
    -
    6015  -29 /*fromYearTiny (2071)*/,
    -
    6016  -29 /*toYearTiny (2071)*/,
    -
    6017  11 /*inMonth*/,
    -
    6018  0 /*onDayOfWeek*/,
    -
    6019  1 /*onDayOfMonth*/,
    -
    6020  8 /*atTimeCode*/,
    -
    6021  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6022  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6023  0 /*letterIndex ("")*/,
    -
    6024  },
    -
    6025  // Rule Morocco 2072 only - Sep 11 3:00 -1:00 -
    -
    6026  {
    -
    6027  -28 /*fromYearTiny (2072)*/,
    -
    6028  -28 /*toYearTiny (2072)*/,
    -
    6029  9 /*inMonth*/,
    -
    6030  0 /*onDayOfWeek*/,
    -
    6031  11 /*onDayOfMonth*/,
    -
    6032  12 /*atTimeCode*/,
    -
    6033  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6034  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6035  0 /*letterIndex ("")*/,
    -
    6036  },
    -
    6037  // Rule Morocco 2072 only - Oct 16 2:00 0 -
    -
    6038  {
    -
    6039  -28 /*fromYearTiny (2072)*/,
    -
    6040  -28 /*toYearTiny (2072)*/,
    -
    6041  10 /*inMonth*/,
    -
    6042  0 /*onDayOfWeek*/,
    -
    6043  16 /*onDayOfMonth*/,
    -
    6044  8 /*atTimeCode*/,
    -
    6045  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6046  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6047  0 /*letterIndex ("")*/,
    -
    6048  },
    -
    6049  // Rule Morocco 2073 only - Aug 27 3:00 -1:00 -
    -
    6050  {
    -
    6051  -27 /*fromYearTiny (2073)*/,
    -
    6052  -27 /*toYearTiny (2073)*/,
    -
    6053  8 /*inMonth*/,
    -
    6054  0 /*onDayOfWeek*/,
    -
    6055  27 /*onDayOfMonth*/,
    -
    6056  12 /*atTimeCode*/,
    -
    6057  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6058  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6059  0 /*letterIndex ("")*/,
    -
    6060  },
    -
    6061  // Rule Morocco 2073 only - Oct 8 2:00 0 -
    -
    6062  {
    -
    6063  -27 /*fromYearTiny (2073)*/,
    -
    6064  -27 /*toYearTiny (2073)*/,
    -
    6065  10 /*inMonth*/,
    -
    6066  0 /*onDayOfWeek*/,
    -
    6067  8 /*onDayOfMonth*/,
    -
    6068  8 /*atTimeCode*/,
    -
    6069  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6070  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6071  0 /*letterIndex ("")*/,
    -
    6072  },
    -
    6073  // Rule Morocco 2074 only - Aug 19 3:00 -1:00 -
    -
    6074  {
    -
    6075  -26 /*fromYearTiny (2074)*/,
    -
    6076  -26 /*toYearTiny (2074)*/,
    -
    6077  8 /*inMonth*/,
    -
    6078  0 /*onDayOfWeek*/,
    -
    6079  19 /*onDayOfMonth*/,
    -
    6080  12 /*atTimeCode*/,
    -
    6081  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6082  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6083  0 /*letterIndex ("")*/,
    -
    6084  },
    -
    6085  // Rule Morocco 2074 only - Sep 30 2:00 0 -
    -
    6086  {
    -
    6087  -26 /*fromYearTiny (2074)*/,
    -
    6088  -26 /*toYearTiny (2074)*/,
    -
    6089  9 /*inMonth*/,
    -
    6090  0 /*onDayOfWeek*/,
    -
    6091  30 /*onDayOfMonth*/,
    -
    6092  8 /*atTimeCode*/,
    -
    6093  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6094  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6095  0 /*letterIndex ("")*/,
    -
    6096  },
    -
    6097  // Rule Morocco 2075 only - Aug 11 3:00 -1:00 -
    -
    6098  {
    -
    6099  -25 /*fromYearTiny (2075)*/,
    -
    6100  -25 /*toYearTiny (2075)*/,
    -
    6101  8 /*inMonth*/,
    -
    6102  0 /*onDayOfWeek*/,
    -
    6103  11 /*onDayOfMonth*/,
    -
    6104  12 /*atTimeCode*/,
    -
    6105  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6106  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6107  0 /*letterIndex ("")*/,
    -
    6108  },
    -
    6109  // Rule Morocco 2075 only - Sep 15 2:00 0 -
    -
    6110  {
    -
    6111  -25 /*fromYearTiny (2075)*/,
    -
    6112  -25 /*toYearTiny (2075)*/,
    -
    6113  9 /*inMonth*/,
    -
    6114  0 /*onDayOfWeek*/,
    -
    6115  15 /*onDayOfMonth*/,
    -
    6116  8 /*atTimeCode*/,
    -
    6117  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6118  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6119  0 /*letterIndex ("")*/,
    -
    6120  },
    -
    6121  // Rule Morocco 2076 only - Jul 26 3:00 -1:00 -
    -
    6122  {
    -
    6123  -24 /*fromYearTiny (2076)*/,
    -
    6124  -24 /*toYearTiny (2076)*/,
    -
    6125  7 /*inMonth*/,
    -
    6126  0 /*onDayOfWeek*/,
    -
    6127  26 /*onDayOfMonth*/,
    -
    6128  12 /*atTimeCode*/,
    -
    6129  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6130  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6131  0 /*letterIndex ("")*/,
    -
    6132  },
    -
    6133  // Rule Morocco 2076 only - Sep 6 2:00 0 -
    -
    6134  {
    -
    6135  -24 /*fromYearTiny (2076)*/,
    -
    6136  -24 /*toYearTiny (2076)*/,
    -
    6137  9 /*inMonth*/,
    -
    6138  0 /*onDayOfWeek*/,
    -
    6139  6 /*onDayOfMonth*/,
    -
    6140  8 /*atTimeCode*/,
    -
    6141  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6142  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6143  0 /*letterIndex ("")*/,
    -
    6144  },
    -
    6145  // Rule Morocco 2077 only - Jul 18 3:00 -1:00 -
    -
    6146  {
    -
    6147  -23 /*fromYearTiny (2077)*/,
    -
    6148  -23 /*toYearTiny (2077)*/,
    -
    6149  7 /*inMonth*/,
    -
    6150  0 /*onDayOfWeek*/,
    -
    6151  18 /*onDayOfMonth*/,
    -
    6152  12 /*atTimeCode*/,
    -
    6153  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6154  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6155  0 /*letterIndex ("")*/,
    -
    6156  },
    -
    6157  // Rule Morocco 2077 only - Aug 22 2:00 0 -
    -
    6158  {
    -
    6159  -23 /*fromYearTiny (2077)*/,
    -
    6160  -23 /*toYearTiny (2077)*/,
    -
    6161  8 /*inMonth*/,
    -
    6162  0 /*onDayOfWeek*/,
    -
    6163  22 /*onDayOfMonth*/,
    -
    6164  8 /*atTimeCode*/,
    -
    6165  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6166  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6167  0 /*letterIndex ("")*/,
    -
    6168  },
    -
    6169  // Rule Morocco 2078 only - Jul 10 3:00 -1:00 -
    -
    6170  {
    -
    6171  -22 /*fromYearTiny (2078)*/,
    -
    6172  -22 /*toYearTiny (2078)*/,
    -
    6173  7 /*inMonth*/,
    -
    6174  0 /*onDayOfWeek*/,
    -
    6175  10 /*onDayOfMonth*/,
    -
    6176  12 /*atTimeCode*/,
    -
    6177  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6178  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6179  0 /*letterIndex ("")*/,
    -
    6180  },
    -
    6181  // Rule Morocco 2078 only - Aug 14 2:00 0 -
    -
    6182  {
    -
    6183  -22 /*fromYearTiny (2078)*/,
    -
    6184  -22 /*toYearTiny (2078)*/,
    -
    6185  8 /*inMonth*/,
    -
    6186  0 /*onDayOfWeek*/,
    -
    6187  14 /*onDayOfMonth*/,
    -
    6188  8 /*atTimeCode*/,
    -
    6189  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6190  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6191  0 /*letterIndex ("")*/,
    -
    6192  },
    -
    6193  // Rule Morocco 2079 only - Jun 25 3:00 -1:00 -
    -
    6194  {
    -
    6195  -21 /*fromYearTiny (2079)*/,
    -
    6196  -21 /*toYearTiny (2079)*/,
    -
    6197  6 /*inMonth*/,
    -
    6198  0 /*onDayOfWeek*/,
    -
    6199  25 /*onDayOfMonth*/,
    -
    6200  12 /*atTimeCode*/,
    -
    6201  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6202  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6203  0 /*letterIndex ("")*/,
    -
    6204  },
    -
    6205  // Rule Morocco 2079 only - Aug 6 2:00 0 -
    -
    6206  {
    -
    6207  -21 /*fromYearTiny (2079)*/,
    -
    6208  -21 /*toYearTiny (2079)*/,
    -
    6209  8 /*inMonth*/,
    -
    6210  0 /*onDayOfWeek*/,
    -
    6211  6 /*onDayOfMonth*/,
    -
    6212  8 /*atTimeCode*/,
    -
    6213  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6214  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6215  0 /*letterIndex ("")*/,
    -
    6216  },
    -
    6217  // Rule Morocco 2080 only - Jun 16 3:00 -1:00 -
    -
    6218  {
    -
    6219  -20 /*fromYearTiny (2080)*/,
    -
    6220  -20 /*toYearTiny (2080)*/,
    -
    6221  6 /*inMonth*/,
    -
    6222  0 /*onDayOfWeek*/,
    -
    6223  16 /*onDayOfMonth*/,
    -
    6224  12 /*atTimeCode*/,
    -
    6225  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6226  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6227  0 /*letterIndex ("")*/,
    -
    6228  },
    -
    6229  // Rule Morocco 2080 only - Jul 21 2:00 0 -
    -
    6230  {
    -
    6231  -20 /*fromYearTiny (2080)*/,
    -
    6232  -20 /*toYearTiny (2080)*/,
    -
    6233  7 /*inMonth*/,
    -
    6234  0 /*onDayOfWeek*/,
    -
    6235  21 /*onDayOfMonth*/,
    -
    6236  8 /*atTimeCode*/,
    -
    6237  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6238  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6239  0 /*letterIndex ("")*/,
    -
    6240  },
    -
    6241  // Rule Morocco 2081 only - Jun 1 3:00 -1:00 -
    -
    6242  {
    -
    6243  -19 /*fromYearTiny (2081)*/,
    -
    6244  -19 /*toYearTiny (2081)*/,
    -
    6245  6 /*inMonth*/,
    -
    6246  0 /*onDayOfWeek*/,
    -
    6247  1 /*onDayOfMonth*/,
    -
    6248  12 /*atTimeCode*/,
    -
    6249  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6250  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6251  0 /*letterIndex ("")*/,
    -
    6252  },
    -
    6253  // Rule Morocco 2081 only - Jul 13 2:00 0 -
    -
    6254  {
    -
    6255  -19 /*fromYearTiny (2081)*/,
    -
    6256  -19 /*toYearTiny (2081)*/,
    -
    6257  7 /*inMonth*/,
    -
    6258  0 /*onDayOfWeek*/,
    -
    6259  13 /*onDayOfMonth*/,
    -
    6260  8 /*atTimeCode*/,
    -
    6261  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6262  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6263  0 /*letterIndex ("")*/,
    -
    6264  },
    -
    6265  // Rule Morocco 2082 only - May 24 3:00 -1:00 -
    -
    6266  {
    -
    6267  -18 /*fromYearTiny (2082)*/,
    -
    6268  -18 /*toYearTiny (2082)*/,
    -
    6269  5 /*inMonth*/,
    -
    6270  0 /*onDayOfWeek*/,
    -
    6271  24 /*onDayOfMonth*/,
    -
    6272  12 /*atTimeCode*/,
    -
    6273  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6274  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6275  0 /*letterIndex ("")*/,
    -
    6276  },
    -
    6277  // Rule Morocco 2082 only - Jun 28 2:00 0 -
    -
    6278  {
    -
    6279  -18 /*fromYearTiny (2082)*/,
    -
    6280  -18 /*toYearTiny (2082)*/,
    -
    6281  6 /*inMonth*/,
    -
    6282  0 /*onDayOfWeek*/,
    -
    6283  28 /*onDayOfMonth*/,
    -
    6284  8 /*atTimeCode*/,
    -
    6285  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6286  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6287  0 /*letterIndex ("")*/,
    -
    6288  },
    -
    6289  // Rule Morocco 2083 only - May 16 3:00 -1:00 -
    -
    6290  {
    -
    6291  -17 /*fromYearTiny (2083)*/,
    -
    6292  -17 /*toYearTiny (2083)*/,
    -
    6293  5 /*inMonth*/,
    -
    6294  0 /*onDayOfWeek*/,
    -
    6295  16 /*onDayOfMonth*/,
    -
    6296  12 /*atTimeCode*/,
    -
    6297  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6298  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6299  0 /*letterIndex ("")*/,
    -
    6300  },
    -
    6301  // Rule Morocco 2083 only - Jun 20 2:00 0 -
    -
    6302  {
    -
    6303  -17 /*fromYearTiny (2083)*/,
    -
    6304  -17 /*toYearTiny (2083)*/,
    -
    6305  6 /*inMonth*/,
    -
    6306  0 /*onDayOfWeek*/,
    -
    6307  20 /*onDayOfMonth*/,
    -
    6308  8 /*atTimeCode*/,
    -
    6309  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6310  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6311  0 /*letterIndex ("")*/,
    -
    6312  },
    -
    6313  // Rule Morocco 2084 only - Apr 30 3:00 -1:00 -
    -
    6314  {
    -
    6315  -16 /*fromYearTiny (2084)*/,
    -
    6316  -16 /*toYearTiny (2084)*/,
    -
    6317  4 /*inMonth*/,
    -
    6318  0 /*onDayOfWeek*/,
    -
    6319  30 /*onDayOfMonth*/,
    -
    6320  12 /*atTimeCode*/,
    -
    6321  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6322  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6323  0 /*letterIndex ("")*/,
    -
    6324  },
    -
    6325  // Rule Morocco 2084 only - Jun 11 2:00 0 -
    -
    6326  {
    -
    6327  -16 /*fromYearTiny (2084)*/,
    -
    6328  -16 /*toYearTiny (2084)*/,
    -
    6329  6 /*inMonth*/,
    -
    6330  0 /*onDayOfWeek*/,
    -
    6331  11 /*onDayOfMonth*/,
    -
    6332  8 /*atTimeCode*/,
    -
    6333  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6334  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6335  0 /*letterIndex ("")*/,
    -
    6336  },
    -
    6337  // Rule Morocco 2085 only - Apr 22 3:00 -1:00 -
    -
    6338  {
    -
    6339  -15 /*fromYearTiny (2085)*/,
    -
    6340  -15 /*toYearTiny (2085)*/,
    -
    6341  4 /*inMonth*/,
    -
    6342  0 /*onDayOfWeek*/,
    -
    6343  22 /*onDayOfMonth*/,
    -
    6344  12 /*atTimeCode*/,
    -
    6345  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6346  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6347  0 /*letterIndex ("")*/,
    -
    6348  },
    -
    6349  // Rule Morocco 2085 only - May 27 2:00 0 -
    -
    6350  {
    -
    6351  -15 /*fromYearTiny (2085)*/,
    -
    6352  -15 /*toYearTiny (2085)*/,
    -
    6353  5 /*inMonth*/,
    -
    6354  0 /*onDayOfWeek*/,
    -
    6355  27 /*onDayOfMonth*/,
    -
    6356  8 /*atTimeCode*/,
    -
    6357  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6358  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6359  0 /*letterIndex ("")*/,
    -
    6360  },
    -
    6361  // Rule Morocco 2086 only - Apr 14 3:00 -1:00 -
    -
    6362  {
    -
    6363  -14 /*fromYearTiny (2086)*/,
    -
    6364  -14 /*toYearTiny (2086)*/,
    -
    6365  4 /*inMonth*/,
    -
    6366  0 /*onDayOfWeek*/,
    -
    6367  14 /*onDayOfMonth*/,
    -
    6368  12 /*atTimeCode*/,
    -
    6369  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6370  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6371  0 /*letterIndex ("")*/,
    -
    6372  },
    -
    6373  // Rule Morocco 2086 only - May 19 2:00 0 -
    -
    6374  {
    -
    6375  -14 /*fromYearTiny (2086)*/,
    -
    6376  -14 /*toYearTiny (2086)*/,
    -
    6377  5 /*inMonth*/,
    -
    6378  0 /*onDayOfWeek*/,
    -
    6379  19 /*onDayOfMonth*/,
    -
    6380  8 /*atTimeCode*/,
    -
    6381  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6382  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6383  0 /*letterIndex ("")*/,
    -
    6384  },
    -
    6385  // Rule Morocco 2087 only - Mar 30 3:00 -1:00 -
    -
    6386  {
    -
    6387  -13 /*fromYearTiny (2087)*/,
    -
    6388  -13 /*toYearTiny (2087)*/,
    -
    6389  3 /*inMonth*/,
    -
    6390  0 /*onDayOfWeek*/,
    -
    6391  30 /*onDayOfMonth*/,
    -
    6392  12 /*atTimeCode*/,
    -
    6393  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6394  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6395  0 /*letterIndex ("")*/,
    -
    6396  },
    -
    6397  // Rule Morocco 2087 only - May 11 2:00 0 -
    -
    6398  {
    -
    6399  -13 /*fromYearTiny (2087)*/,
    -
    6400  -13 /*toYearTiny (2087)*/,
    -
    6401  5 /*inMonth*/,
    -
    6402  0 /*onDayOfWeek*/,
    -
    6403  11 /*onDayOfMonth*/,
    -
    6404  8 /*atTimeCode*/,
    -
    6405  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6406  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6407  0 /*letterIndex ("")*/,
    -
    6408  },
    -
    6409 
    -
    6410 };
    -
    6411 
    -
    6412 const extended::Info::ZonePolicy kZonePolicyMorocco ACE_TIME_PROGMEM = {
    -
    6413  kZoneRulesMorocco /*rules*/,
    -
    6414  170 /*numRules*/,
    -
    6415 };
    -
    6416 
    -
    6417 //---------------------------------------------------------------------------
    -
    6418 // Policy name: NC
    -
    6419 // Rules: 1
    -
    6420 //---------------------------------------------------------------------------
    -
    6421 
    -
    6422 static const extended::Info::ZoneRule kZoneRulesNC[] ACE_TIME_PROGMEM = {
    -
    6423  // Anchor: Rule NC 1997 only - Mar 2 2:00s 0 -
    -
    6424  {
    -
    6425  -127 /*fromYearTiny (-32767)*/,
    -
    6426  -127 /*toYearTiny (-32767)*/,
    -
    6427  1 /*inMonth*/,
    -
    6428  0 /*onDayOfWeek*/,
    -
    6429  1 /*onDayOfMonth*/,
    -
    6430  0 /*atTimeCode*/,
    -
    6431  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6432  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6433  0 /*letterIndex ("")*/,
    -
    6434  },
    -
    6435 
    -
    6436 };
    -
    6437 
    -
    6438 const extended::Info::ZonePolicy kZonePolicyNC ACE_TIME_PROGMEM = {
    -
    6439  kZoneRulesNC /*rules*/,
    -
    6440  1 /*numRules*/,
    -
    6441 };
    -
    6442 
    -
    6443 //---------------------------------------------------------------------------
    -
    6444 // Policy name: NT_YK
    -
    6445 // Rules: 4
    -
    6446 //---------------------------------------------------------------------------
    -
    6447 
    -
    6448 static const extended::Info::ZoneRule kZoneRulesNT_YK[] ACE_TIME_PROGMEM = {
    -
    6449  // Anchor: Rule NT_YK 1972 2006 - Oct lastSun 2:00 0 S
    -
    6450  {
    -
    6451  -127 /*fromYearTiny (-32767)*/,
    -
    6452  -127 /*toYearTiny (-32767)*/,
    -
    6453  1 /*inMonth*/,
    -
    6454  0 /*onDayOfWeek*/,
    -
    6455  1 /*onDayOfMonth*/,
    -
    6456  0 /*atTimeCode*/,
    -
    6457  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6458  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6459  7 /*letterIndex ("S")*/,
    -
    6460  },
    -
    6461  // Rule NT_YK 1972 1986 - Apr lastSun 2:00 1:00 D
    -
    6462  {
    -
    6463  -127 /*fromYearTiny (1972)*/,
    -
    6464  -114 /*toYearTiny (1986)*/,
    -
    6465  4 /*inMonth*/,
    -
    6466  7 /*onDayOfWeek*/,
    -
    6467  0 /*onDayOfMonth*/,
    -
    6468  8 /*atTimeCode*/,
    -
    6469  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6470  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6471  5 /*letterIndex ("D")*/,
    -
    6472  },
    -
    6473  // Rule NT_YK 1972 2006 - Oct lastSun 2:00 0 S
    -
    6474  {
    -
    6475  -127 /*fromYearTiny (1972)*/,
    -
    6476  -94 /*toYearTiny (2006)*/,
    -
    6477  10 /*inMonth*/,
    -
    6478  7 /*onDayOfWeek*/,
    -
    6479  0 /*onDayOfMonth*/,
    -
    6480  8 /*atTimeCode*/,
    -
    6481  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6482  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6483  7 /*letterIndex ("S")*/,
    -
    6484  },
    -
    6485  // Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    6486  {
    -
    6487  -113 /*fromYearTiny (1987)*/,
    -
    6488  -94 /*toYearTiny (2006)*/,
    -
    6489  4 /*inMonth*/,
    -
    6490  7 /*onDayOfWeek*/,
    -
    6491  1 /*onDayOfMonth*/,
    -
    6492  8 /*atTimeCode*/,
    -
    6493  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6494  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6495  5 /*letterIndex ("D")*/,
    -
    6496  },
    -
    6497 
    -
    6498 };
    -
    6499 
    -
    6500 const extended::Info::ZonePolicy kZonePolicyNT_YK ACE_TIME_PROGMEM = {
    -
    6501  kZoneRulesNT_YK /*rules*/,
    -
    6502  4 /*numRules*/,
    -
    6503 };
    -
    6504 
    -
    6505 //---------------------------------------------------------------------------
    -
    6506 // Policy name: NZ
    -
    6507 // Rules: 6
    -
    6508 //---------------------------------------------------------------------------
    -
    6509 
    -
    6510 static const extended::Info::ZoneRule kZoneRulesNZ[] ACE_TIME_PROGMEM = {
    -
    6511  // Anchor: Rule NZ 1990 2007 - Mar Sun>=15 2:00s 0 S
    -
    6512  {
    -
    6513  -127 /*fromYearTiny (-32767)*/,
    -
    6514  -127 /*toYearTiny (-32767)*/,
    -
    6515  1 /*inMonth*/,
    -
    6516  0 /*onDayOfWeek*/,
    -
    6517  1 /*onDayOfMonth*/,
    -
    6518  0 /*atTimeCode*/,
    -
    6519  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6520  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6521  7 /*letterIndex ("S")*/,
    -
    6522  },
    -
    6523  // Rule NZ 1989 only - Oct Sun>=8 2:00s 1:00 D
    -
    6524  {
    -
    6525  -111 /*fromYearTiny (1989)*/,
    -
    6526  -111 /*toYearTiny (1989)*/,
    -
    6527  10 /*inMonth*/,
    -
    6528  7 /*onDayOfWeek*/,
    -
    6529  8 /*onDayOfMonth*/,
    -
    6530  8 /*atTimeCode*/,
    -
    6531  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    6532  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6533  5 /*letterIndex ("D")*/,
    -
    6534  },
    -
    6535  // Rule NZ 1990 2006 - Oct Sun>=1 2:00s 1:00 D
    -
    6536  {
    -
    6537  -110 /*fromYearTiny (1990)*/,
    -
    6538  -94 /*toYearTiny (2006)*/,
    -
    6539  10 /*inMonth*/,
    -
    6540  7 /*onDayOfWeek*/,
    -
    6541  1 /*onDayOfMonth*/,
    -
    6542  8 /*atTimeCode*/,
    -
    6543  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    6544  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6545  5 /*letterIndex ("D")*/,
    -
    6546  },
    -
    6547  // Rule NZ 1990 2007 - Mar Sun>=15 2:00s 0 S
    -
    6548  {
    -
    6549  -110 /*fromYearTiny (1990)*/,
    -
    6550  -93 /*toYearTiny (2007)*/,
    -
    6551  3 /*inMonth*/,
    -
    6552  7 /*onDayOfWeek*/,
    -
    6553  15 /*onDayOfMonth*/,
    -
    6554  8 /*atTimeCode*/,
    -
    6555  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    6556  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6557  7 /*letterIndex ("S")*/,
    -
    6558  },
    -
    6559  // Rule NZ 2007 max - Sep lastSun 2:00s 1:00 D
    -
    6560  {
    -
    6561  -93 /*fromYearTiny (2007)*/,
    -
    6562  126 /*toYearTiny (32766)*/,
    -
    6563  9 /*inMonth*/,
    -
    6564  7 /*onDayOfWeek*/,
    -
    6565  0 /*onDayOfMonth*/,
    -
    6566  8 /*atTimeCode*/,
    -
    6567  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    6568  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6569  5 /*letterIndex ("D")*/,
    -
    6570  },
    -
    6571  // Rule NZ 2008 max - Apr Sun>=1 2:00s 0 S
    -
    6572  {
    -
    6573  -92 /*fromYearTiny (2008)*/,
    -
    6574  126 /*toYearTiny (32766)*/,
    -
    6575  4 /*inMonth*/,
    -
    6576  7 /*onDayOfWeek*/,
    -
    6577  1 /*onDayOfMonth*/,
    -
    6578  8 /*atTimeCode*/,
    -
    6579  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    6580  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6581  7 /*letterIndex ("S")*/,
    -
    6582  },
    -
    6583 
    -
    6584 };
    -
    6585 
    -
    6586 const extended::Info::ZonePolicy kZonePolicyNZ ACE_TIME_PROGMEM = {
    -
    6587  kZoneRulesNZ /*rules*/,
    -
    6588  6 /*numRules*/,
    -
    6589 };
    -
    6590 
    -
    6591 //---------------------------------------------------------------------------
    -
    6592 // Policy name: Namibia
    -
    6593 // Rules: 4
    -
    6594 //---------------------------------------------------------------------------
    -
    6595 
    -
    6596 static const extended::Info::ZoneRule kZoneRulesNamibia[] ACE_TIME_PROGMEM = {
    -
    6597  // Anchor: Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
    -
    6598  {
    -
    6599  -127 /*fromYearTiny (-32767)*/,
    -
    6600  -127 /*toYearTiny (-32767)*/,
    -
    6601  1 /*inMonth*/,
    -
    6602  0 /*onDayOfWeek*/,
    -
    6603  1 /*onDayOfMonth*/,
    -
    6604  0 /*atTimeCode*/,
    -
    6605  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6606  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6607  3 /*letterIndex ("CAT")*/,
    -
    6608  },
    -
    6609  // Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
    -
    6610  {
    -
    6611  -106 /*fromYearTiny (1994)*/,
    -
    6612  -106 /*toYearTiny (1994)*/,
    -
    6613  3 /*inMonth*/,
    -
    6614  0 /*onDayOfWeek*/,
    -
    6615  21 /*onDayOfMonth*/,
    -
    6616  0 /*atTimeCode*/,
    -
    6617  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6618  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6619  8 /*letterIndex ("WAT")*/,
    -
    6620  },
    -
    6621  // Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
    -
    6622  {
    -
    6623  -106 /*fromYearTiny (1994)*/,
    -
    6624  -83 /*toYearTiny (2017)*/,
    -
    6625  9 /*inMonth*/,
    -
    6626  7 /*onDayOfWeek*/,
    -
    6627  1 /*onDayOfMonth*/,
    -
    6628  8 /*atTimeCode*/,
    -
    6629  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6630  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6631  3 /*letterIndex ("CAT")*/,
    -
    6632  },
    -
    6633  // Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT
    -
    6634  {
    -
    6635  -105 /*fromYearTiny (1995)*/,
    -
    6636  -83 /*toYearTiny (2017)*/,
    -
    6637  4 /*inMonth*/,
    -
    6638  7 /*onDayOfWeek*/,
    -
    6639  1 /*onDayOfMonth*/,
    -
    6640  8 /*atTimeCode*/,
    -
    6641  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6642  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    -
    6643  8 /*letterIndex ("WAT")*/,
    -
    6644  },
    -
    6645 
    -
    6646 };
    -
    6647 
    -
    6648 const extended::Info::ZonePolicy kZonePolicyNamibia ACE_TIME_PROGMEM = {
    -
    6649  kZoneRulesNamibia /*rules*/,
    -
    6650  4 /*numRules*/,
    -
    6651 };
    -
    6652 
    -
    6653 //---------------------------------------------------------------------------
    -
    6654 // Policy name: Nic
    -
    6655 // Rules: 6
    -
    6656 //---------------------------------------------------------------------------
    -
    6657 
    -
    6658 static const extended::Info::ZoneRule kZoneRulesNic[] ACE_TIME_PROGMEM = {
    -
    6659  // Anchor: Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
    -
    6660  {
    -
    6661  -127 /*fromYearTiny (-32767)*/,
    -
    6662  -127 /*toYearTiny (-32767)*/,
    -
    6663  1 /*inMonth*/,
    -
    6664  0 /*onDayOfWeek*/,
    -
    6665  1 /*onDayOfMonth*/,
    -
    6666  0 /*atTimeCode*/,
    -
    6667  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6668  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6669  7 /*letterIndex ("S")*/,
    -
    6670  },
    -
    6671  // Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
    -
    6672  {
    -
    6673  -121 /*fromYearTiny (1979)*/,
    -
    6674  -120 /*toYearTiny (1980)*/,
    -
    6675  6 /*inMonth*/,
    -
    6676  1 /*onDayOfWeek*/,
    -
    6677  23 /*onDayOfMonth*/,
    -
    6678  0 /*atTimeCode*/,
    -
    6679  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6680  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6681  7 /*letterIndex ("S")*/,
    -
    6682  },
    -
    6683  // Rule Nic 2005 only - Apr 10 0:00 1:00 D
    -
    6684  {
    -
    6685  -95 /*fromYearTiny (2005)*/,
    -
    6686  -95 /*toYearTiny (2005)*/,
    -
    6687  4 /*inMonth*/,
    -
    6688  0 /*onDayOfWeek*/,
    -
    6689  10 /*onDayOfMonth*/,
    -
    6690  0 /*atTimeCode*/,
    -
    6691  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6692  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6693  5 /*letterIndex ("D")*/,
    -
    6694  },
    -
    6695  // Rule Nic 2005 only - Oct Sun>=1 0:00 0 S
    -
    6696  {
    -
    6697  -95 /*fromYearTiny (2005)*/,
    -
    6698  -95 /*toYearTiny (2005)*/,
    -
    6699  10 /*inMonth*/,
    -
    6700  7 /*onDayOfWeek*/,
    -
    6701  1 /*onDayOfMonth*/,
    -
    6702  0 /*atTimeCode*/,
    -
    6703  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6704  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6705  7 /*letterIndex ("S")*/,
    -
    6706  },
    -
    6707  // Rule Nic 2006 only - Apr 30 2:00 1:00 D
    -
    6708  {
    -
    6709  -94 /*fromYearTiny (2006)*/,
    -
    6710  -94 /*toYearTiny (2006)*/,
    -
    6711  4 /*inMonth*/,
    -
    6712  0 /*onDayOfWeek*/,
    -
    6713  30 /*onDayOfMonth*/,
    -
    6714  8 /*atTimeCode*/,
    -
    6715  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6716  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6717  5 /*letterIndex ("D")*/,
    -
    6718  },
    -
    6719  // Rule Nic 2006 only - Oct Sun>=1 1:00 0 S
    -
    6720  {
    -
    6721  -94 /*fromYearTiny (2006)*/,
    -
    6722  -94 /*toYearTiny (2006)*/,
    -
    6723  10 /*inMonth*/,
    -
    6724  7 /*onDayOfWeek*/,
    -
    6725  1 /*onDayOfMonth*/,
    -
    6726  4 /*atTimeCode*/,
    -
    6727  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6728  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6729  7 /*letterIndex ("S")*/,
    -
    6730  },
    -
    6731 
    -
    6732 };
    -
    6733 
    -
    6734 const extended::Info::ZonePolicy kZonePolicyNic ACE_TIME_PROGMEM = {
    -
    6735  kZoneRulesNic /*rules*/,
    -
    6736  6 /*numRules*/,
    -
    6737 };
    -
    6738 
    -
    6739 //---------------------------------------------------------------------------
    -
    6740 // Policy name: PRC
    -
    6741 // Rules: 1
    -
    6742 //---------------------------------------------------------------------------
    -
    6743 
    -
    6744 static const extended::Info::ZoneRule kZoneRulesPRC[] ACE_TIME_PROGMEM = {
    -
    6745  // Anchor: Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S
    -
    6746  {
    -
    6747  -127 /*fromYearTiny (-32767)*/,
    -
    6748  -127 /*toYearTiny (-32767)*/,
    -
    6749  1 /*inMonth*/,
    -
    6750  0 /*onDayOfWeek*/,
    -
    6751  1 /*onDayOfMonth*/,
    -
    6752  0 /*atTimeCode*/,
    -
    6753  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6754  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6755  7 /*letterIndex ("S")*/,
    -
    6756  },
    -
    6757 
    -
    6758 };
    -
    6759 
    -
    6760 const extended::Info::ZonePolicy kZonePolicyPRC ACE_TIME_PROGMEM = {
    -
    6761  kZoneRulesPRC /*rules*/,
    -
    6762  1 /*numRules*/,
    -
    6763 };
    -
    6764 
    -
    6765 //---------------------------------------------------------------------------
    -
    6766 // Policy name: Pakistan
    -
    6767 // Rules: 6
    -
    6768 //---------------------------------------------------------------------------
    -
    6769 
    -
    6770 static const extended::Info::ZoneRule kZoneRulesPakistan[] ACE_TIME_PROGMEM = {
    -
    6771  // Anchor: Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
    -
    6772  {
    -
    6773  -127 /*fromYearTiny (-32767)*/,
    -
    6774  -127 /*toYearTiny (-32767)*/,
    -
    6775  1 /*inMonth*/,
    -
    6776  0 /*onDayOfWeek*/,
    -
    6777  1 /*onDayOfMonth*/,
    -
    6778  0 /*atTimeCode*/,
    -
    6779  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6780  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6781  0 /*letterIndex ("")*/,
    -
    6782  },
    -
    6783  // Rule Pakistan 2002 only - Apr Sun>=2 0:00 1:00 S
    -
    6784  {
    -
    6785  -98 /*fromYearTiny (2002)*/,
    -
    6786  -98 /*toYearTiny (2002)*/,
    -
    6787  4 /*inMonth*/,
    -
    6788  7 /*onDayOfWeek*/,
    -
    6789  2 /*onDayOfMonth*/,
    -
    6790  0 /*atTimeCode*/,
    -
    6791  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6792  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6793  7 /*letterIndex ("S")*/,
    -
    6794  },
    -
    6795  // Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
    -
    6796  {
    -
    6797  -98 /*fromYearTiny (2002)*/,
    -
    6798  -98 /*toYearTiny (2002)*/,
    -
    6799  10 /*inMonth*/,
    -
    6800  7 /*onDayOfWeek*/,
    -
    6801  2 /*onDayOfMonth*/,
    -
    6802  0 /*atTimeCode*/,
    -
    6803  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6804  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6805  0 /*letterIndex ("")*/,
    -
    6806  },
    -
    6807  // Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
    -
    6808  {
    -
    6809  -92 /*fromYearTiny (2008)*/,
    -
    6810  -92 /*toYearTiny (2008)*/,
    -
    6811  6 /*inMonth*/,
    -
    6812  0 /*onDayOfWeek*/,
    -
    6813  1 /*onDayOfMonth*/,
    -
    6814  0 /*atTimeCode*/,
    -
    6815  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6816  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6817  7 /*letterIndex ("S")*/,
    -
    6818  },
    -
    6819  // Rule Pakistan 2008 2009 - Nov 1 0:00 0 -
    -
    6820  {
    -
    6821  -92 /*fromYearTiny (2008)*/,
    -
    6822  -91 /*toYearTiny (2009)*/,
    -
    6823  11 /*inMonth*/,
    -
    6824  0 /*onDayOfWeek*/,
    -
    6825  1 /*onDayOfMonth*/,
    -
    6826  0 /*atTimeCode*/,
    -
    6827  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6828  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6829  0 /*letterIndex ("")*/,
    -
    6830  },
    -
    6831  // Rule Pakistan 2009 only - Apr 15 0:00 1:00 S
    -
    6832  {
    -
    6833  -91 /*fromYearTiny (2009)*/,
    -
    6834  -91 /*toYearTiny (2009)*/,
    -
    6835  4 /*inMonth*/,
    -
    6836  0 /*onDayOfWeek*/,
    -
    6837  15 /*onDayOfMonth*/,
    -
    6838  0 /*atTimeCode*/,
    -
    6839  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6840  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6841  7 /*letterIndex ("S")*/,
    -
    6842  },
    -
    6843 
    -
    6844 };
    -
    6845 
    -
    6846 const extended::Info::ZonePolicy kZonePolicyPakistan ACE_TIME_PROGMEM = {
    -
    6847  kZoneRulesPakistan /*rules*/,
    -
    6848  6 /*numRules*/,
    -
    6849 };
    -
    6850 
    -
    6851 //---------------------------------------------------------------------------
    -
    6852 // Policy name: Palestine
    -
    6853 // Rules: 111
    -
    6854 //---------------------------------------------------------------------------
    -
    6855 
    -
    6856 static const extended::Info::ZoneRule kZoneRulesPalestine[] ACE_TIME_PROGMEM = {
    -
    6857  // Anchor: Rule Palestine 1999 2003 - Oct Fri>=15 0:00 0 -
    -
    6858  {
    -
    6859  -127 /*fromYearTiny (-32767)*/,
    -
    6860  -127 /*toYearTiny (-32767)*/,
    -
    6861  1 /*inMonth*/,
    -
    6862  0 /*onDayOfWeek*/,
    -
    6863  1 /*onDayOfMonth*/,
    -
    6864  0 /*atTimeCode*/,
    -
    6865  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6866  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6867  0 /*letterIndex ("")*/,
    -
    6868  },
    -
    6869  // Rule Palestine 1999 2005 - Apr Fri>=15 0:00 1:00 S
    -
    6870  {
    -
    6871  -101 /*fromYearTiny (1999)*/,
    -
    6872  -95 /*toYearTiny (2005)*/,
    -
    6873  4 /*inMonth*/,
    -
    6874  5 /*onDayOfWeek*/,
    -
    6875  15 /*onDayOfMonth*/,
    -
    6876  0 /*atTimeCode*/,
    -
    6877  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6878  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6879  7 /*letterIndex ("S")*/,
    -
    6880  },
    -
    6881  // Rule Palestine 1999 2003 - Oct Fri>=15 0:00 0 -
    -
    6882  {
    -
    6883  -101 /*fromYearTiny (1999)*/,
    -
    6884  -97 /*toYearTiny (2003)*/,
    -
    6885  10 /*inMonth*/,
    -
    6886  5 /*onDayOfWeek*/,
    -
    6887  15 /*onDayOfMonth*/,
    -
    6888  0 /*atTimeCode*/,
    -
    6889  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6890  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6891  0 /*letterIndex ("")*/,
    -
    6892  },
    -
    6893  // Rule Palestine 2004 only - Oct 1 1:00 0 -
    -
    6894  {
    -
    6895  -96 /*fromYearTiny (2004)*/,
    -
    6896  -96 /*toYearTiny (2004)*/,
    -
    6897  10 /*inMonth*/,
    -
    6898  0 /*onDayOfWeek*/,
    -
    6899  1 /*onDayOfMonth*/,
    -
    6900  4 /*atTimeCode*/,
    -
    6901  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6902  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6903  0 /*letterIndex ("")*/,
    -
    6904  },
    -
    6905  // Rule Palestine 2005 only - Oct 4 2:00 0 -
    -
    6906  {
    -
    6907  -95 /*fromYearTiny (2005)*/,
    -
    6908  -95 /*toYearTiny (2005)*/,
    -
    6909  10 /*inMonth*/,
    -
    6910  0 /*onDayOfWeek*/,
    -
    6911  4 /*onDayOfMonth*/,
    -
    6912  8 /*atTimeCode*/,
    -
    6913  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6914  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6915  0 /*letterIndex ("")*/,
    -
    6916  },
    -
    6917  // Rule Palestine 2006 2007 - Apr 1 0:00 1:00 S
    -
    6918  {
    -
    6919  -94 /*fromYearTiny (2006)*/,
    -
    6920  -93 /*toYearTiny (2007)*/,
    -
    6921  4 /*inMonth*/,
    -
    6922  0 /*onDayOfWeek*/,
    -
    6923  1 /*onDayOfMonth*/,
    -
    6924  0 /*atTimeCode*/,
    -
    6925  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6926  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6927  7 /*letterIndex ("S")*/,
    -
    6928  },
    -
    6929  // Rule Palestine 2006 only - Sep 22 0:00 0 -
    -
    6930  {
    -
    6931  -94 /*fromYearTiny (2006)*/,
    -
    6932  -94 /*toYearTiny (2006)*/,
    -
    6933  9 /*inMonth*/,
    -
    6934  0 /*onDayOfWeek*/,
    -
    6935  22 /*onDayOfMonth*/,
    -
    6936  0 /*atTimeCode*/,
    -
    6937  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6938  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6939  0 /*letterIndex ("")*/,
    -
    6940  },
    -
    6941  // Rule Palestine 2007 only - Sep 13 2:00 0 -
    -
    6942  {
    -
    6943  -93 /*fromYearTiny (2007)*/,
    -
    6944  -93 /*toYearTiny (2007)*/,
    -
    6945  9 /*inMonth*/,
    -
    6946  0 /*onDayOfWeek*/,
    -
    6947  13 /*onDayOfMonth*/,
    -
    6948  8 /*atTimeCode*/,
    -
    6949  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6950  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6951  0 /*letterIndex ("")*/,
    -
    6952  },
    -
    6953  // Rule Palestine 2008 2009 - Mar lastFri 0:00 1:00 S
    -
    6954  {
    -
    6955  -92 /*fromYearTiny (2008)*/,
    -
    6956  -91 /*toYearTiny (2009)*/,
    -
    6957  3 /*inMonth*/,
    -
    6958  5 /*onDayOfWeek*/,
    -
    6959  0 /*onDayOfMonth*/,
    -
    6960  0 /*atTimeCode*/,
    -
    6961  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6962  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6963  7 /*letterIndex ("S")*/,
    -
    6964  },
    -
    6965  // Rule Palestine 2008 only - Sep 1 0:00 0 -
    -
    6966  {
    -
    6967  -92 /*fromYearTiny (2008)*/,
    -
    6968  -92 /*toYearTiny (2008)*/,
    -
    6969  9 /*inMonth*/,
    -
    6970  0 /*onDayOfWeek*/,
    -
    6971  1 /*onDayOfMonth*/,
    -
    6972  0 /*atTimeCode*/,
    -
    6973  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6974  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6975  0 /*letterIndex ("")*/,
    -
    6976  },
    -
    6977  // Rule Palestine 2009 only - Sep 4 1:00 0 -
    -
    6978  {
    -
    6979  -91 /*fromYearTiny (2009)*/,
    -
    6980  -91 /*toYearTiny (2009)*/,
    -
    6981  9 /*inMonth*/,
    -
    6982  0 /*onDayOfWeek*/,
    -
    6983  4 /*onDayOfMonth*/,
    -
    6984  4 /*atTimeCode*/,
    -
    6985  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6986  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    6987  0 /*letterIndex ("")*/,
    -
    6988  },
    -
    6989  // Rule Palestine 2010 only - Mar 26 0:00 1:00 S
    -
    6990  {
    -
    6991  -90 /*fromYearTiny (2010)*/,
    -
    6992  -90 /*toYearTiny (2010)*/,
    -
    6993  3 /*inMonth*/,
    -
    6994  0 /*onDayOfWeek*/,
    -
    6995  26 /*onDayOfMonth*/,
    -
    6996  0 /*atTimeCode*/,
    -
    6997  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    6998  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    6999  7 /*letterIndex ("S")*/,
    -
    7000  },
    -
    7001  // Rule Palestine 2010 only - Aug 11 0:00 0 -
    -
    7002  {
    -
    7003  -90 /*fromYearTiny (2010)*/,
    -
    7004  -90 /*toYearTiny (2010)*/,
    -
    7005  8 /*inMonth*/,
    -
    7006  0 /*onDayOfWeek*/,
    -
    7007  11 /*onDayOfMonth*/,
    -
    7008  0 /*atTimeCode*/,
    -
    7009  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7010  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7011  0 /*letterIndex ("")*/,
    -
    7012  },
    -
    7013  // Rule Palestine 2011 only - Apr 1 0:01 1:00 S
    -
    7014  {
    -
    7015  -89 /*fromYearTiny (2011)*/,
    -
    7016  -89 /*toYearTiny (2011)*/,
    -
    7017  4 /*inMonth*/,
    -
    7018  0 /*onDayOfWeek*/,
    -
    7019  1 /*onDayOfMonth*/,
    -
    7020  0 /*atTimeCode*/,
    -
    7021  1 /*atTimeModifier (kSuffixW + minute=1)*/,
    -
    7022  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7023  7 /*letterIndex ("S")*/,
    -
    7024  },
    -
    7025  // Rule Palestine 2011 only - Aug 1 0:00 0 -
    -
    7026  {
    -
    7027  -89 /*fromYearTiny (2011)*/,
    -
    7028  -89 /*toYearTiny (2011)*/,
    -
    7029  8 /*inMonth*/,
    -
    7030  0 /*onDayOfWeek*/,
    -
    7031  1 /*onDayOfMonth*/,
    -
    7032  0 /*atTimeCode*/,
    -
    7033  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7034  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7035  0 /*letterIndex ("")*/,
    -
    7036  },
    -
    7037  // Rule Palestine 2011 only - Aug 30 0:00 1:00 S
    -
    7038  {
    -
    7039  -89 /*fromYearTiny (2011)*/,
    -
    7040  -89 /*toYearTiny (2011)*/,
    -
    7041  8 /*inMonth*/,
    -
    7042  0 /*onDayOfWeek*/,
    -
    7043  30 /*onDayOfMonth*/,
    -
    7044  0 /*atTimeCode*/,
    -
    7045  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7046  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7047  7 /*letterIndex ("S")*/,
    -
    7048  },
    -
    7049  // Rule Palestine 2011 only - Sep 30 0:00 0 -
    -
    7050  {
    -
    7051  -89 /*fromYearTiny (2011)*/,
    -
    7052  -89 /*toYearTiny (2011)*/,
    -
    7053  9 /*inMonth*/,
    -
    7054  0 /*onDayOfWeek*/,
    -
    7055  30 /*onDayOfMonth*/,
    -
    7056  0 /*atTimeCode*/,
    -
    7057  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7058  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7059  0 /*letterIndex ("")*/,
    -
    7060  },
    -
    7061  // Rule Palestine 2012 2014 - Mar lastThu 24:00 1:00 S
    -
    7062  {
    -
    7063  -88 /*fromYearTiny (2012)*/,
    -
    7064  -86 /*toYearTiny (2014)*/,
    -
    7065  3 /*inMonth*/,
    -
    7066  4 /*onDayOfWeek*/,
    -
    7067  0 /*onDayOfMonth*/,
    -
    7068  96 /*atTimeCode*/,
    -
    7069  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7070  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7071  7 /*letterIndex ("S")*/,
    -
    7072  },
    -
    7073  // Rule Palestine 2012 only - Sep 21 1:00 0 -
    -
    7074  {
    -
    7075  -88 /*fromYearTiny (2012)*/,
    -
    7076  -88 /*toYearTiny (2012)*/,
    -
    7077  9 /*inMonth*/,
    -
    7078  0 /*onDayOfWeek*/,
    -
    7079  21 /*onDayOfMonth*/,
    -
    7080  4 /*atTimeCode*/,
    -
    7081  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7082  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7083  0 /*letterIndex ("")*/,
    -
    7084  },
    -
    7085  // Rule Palestine 2013 only - Sep 27 0:00 0 -
    -
    7086  {
    -
    7087  -87 /*fromYearTiny (2013)*/,
    -
    7088  -87 /*toYearTiny (2013)*/,
    -
    7089  9 /*inMonth*/,
    -
    7090  0 /*onDayOfWeek*/,
    -
    7091  27 /*onDayOfMonth*/,
    -
    7092  0 /*atTimeCode*/,
    -
    7093  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7094  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7095  0 /*letterIndex ("")*/,
    -
    7096  },
    -
    7097  // Rule Palestine 2014 only - Oct 24 0:00 0 -
    -
    7098  {
    -
    7099  -86 /*fromYearTiny (2014)*/,
    -
    7100  -86 /*toYearTiny (2014)*/,
    -
    7101  10 /*inMonth*/,
    -
    7102  0 /*onDayOfWeek*/,
    -
    7103  24 /*onDayOfMonth*/,
    -
    7104  0 /*atTimeCode*/,
    -
    7105  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7106  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7107  0 /*letterIndex ("")*/,
    -
    7108  },
    -
    7109  // Rule Palestine 2015 only - Mar 28 0:00 1:00 S
    -
    7110  {
    -
    7111  -85 /*fromYearTiny (2015)*/,
    -
    7112  -85 /*toYearTiny (2015)*/,
    -
    7113  3 /*inMonth*/,
    -
    7114  0 /*onDayOfWeek*/,
    -
    7115  28 /*onDayOfMonth*/,
    -
    7116  0 /*atTimeCode*/,
    -
    7117  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7118  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7119  7 /*letterIndex ("S")*/,
    -
    7120  },
    -
    7121  // Rule Palestine 2015 only - Oct 23 1:00 0 -
    -
    7122  {
    -
    7123  -85 /*fromYearTiny (2015)*/,
    -
    7124  -85 /*toYearTiny (2015)*/,
    -
    7125  10 /*inMonth*/,
    -
    7126  0 /*onDayOfWeek*/,
    -
    7127  23 /*onDayOfMonth*/,
    -
    7128  4 /*atTimeCode*/,
    -
    7129  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7130  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7131  0 /*letterIndex ("")*/,
    -
    7132  },
    -
    7133  // Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S
    -
    7134  {
    -
    7135  -84 /*fromYearTiny (2016)*/,
    -
    7136  -82 /*toYearTiny (2018)*/,
    -
    7137  3 /*inMonth*/,
    -
    7138  6 /*onDayOfWeek*/,
    -
    7139  -30 /*onDayOfMonth*/,
    -
    7140  4 /*atTimeCode*/,
    -
    7141  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7142  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7143  7 /*letterIndex ("S")*/,
    -
    7144  },
    -
    7145  // Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 -
    -
    7146  {
    -
    7147  -84 /*fromYearTiny (2016)*/,
    -
    7148  -82 /*toYearTiny (2018)*/,
    -
    7149  10 /*inMonth*/,
    -
    7150  6 /*onDayOfWeek*/,
    -
    7151  -30 /*onDayOfMonth*/,
    -
    7152  4 /*atTimeCode*/,
    -
    7153  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7154  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7155  0 /*letterIndex ("")*/,
    -
    7156  },
    -
    7157  // Rule Palestine 2019 only - Mar 29 0:00 1:00 S
    -
    7158  {
    -
    7159  -81 /*fromYearTiny (2019)*/,
    -
    7160  -81 /*toYearTiny (2019)*/,
    -
    7161  3 /*inMonth*/,
    -
    7162  0 /*onDayOfWeek*/,
    -
    7163  29 /*onDayOfMonth*/,
    -
    7164  0 /*atTimeCode*/,
    -
    7165  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7166  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7167  7 /*letterIndex ("S")*/,
    -
    7168  },
    -
    7169  // Rule Palestine 2019 only - Oct Sat<=30 0:00 0 -
    -
    7170  {
    -
    7171  -81 /*fromYearTiny (2019)*/,
    -
    7172  -81 /*toYearTiny (2019)*/,
    -
    7173  10 /*inMonth*/,
    -
    7174  6 /*onDayOfWeek*/,
    -
    7175  -30 /*onDayOfMonth*/,
    -
    7176  0 /*atTimeCode*/,
    -
    7177  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7178  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7179  0 /*letterIndex ("")*/,
    -
    7180  },
    -
    7181  // Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S
    -
    7182  {
    -
    7183  -80 /*fromYearTiny (2020)*/,
    -
    7184  -79 /*toYearTiny (2021)*/,
    -
    7185  3 /*inMonth*/,
    -
    7186  6 /*onDayOfWeek*/,
    -
    7187  -30 /*onDayOfMonth*/,
    -
    7188  0 /*atTimeCode*/,
    -
    7189  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7190  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7191  7 /*letterIndex ("S")*/,
    -
    7192  },
    -
    7193  // Rule Palestine 2020 only - Oct 24 1:00 0 -
    -
    7194  {
    -
    7195  -80 /*fromYearTiny (2020)*/,
    -
    7196  -80 /*toYearTiny (2020)*/,
    -
    7197  10 /*inMonth*/,
    -
    7198  0 /*onDayOfWeek*/,
    -
    7199  24 /*onDayOfMonth*/,
    -
    7200  4 /*atTimeCode*/,
    -
    7201  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7202  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7203  0 /*letterIndex ("")*/,
    -
    7204  },
    -
    7205  // Rule Palestine 2021 only - Oct 29 1:00 0 -
    -
    7206  {
    -
    7207  -79 /*fromYearTiny (2021)*/,
    -
    7208  -79 /*toYearTiny (2021)*/,
    -
    7209  10 /*inMonth*/,
    -
    7210  0 /*onDayOfWeek*/,
    -
    7211  29 /*onDayOfMonth*/,
    -
    7212  4 /*atTimeCode*/,
    -
    7213  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7214  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7215  0 /*letterIndex ("")*/,
    -
    7216  },
    -
    7217  // Rule Palestine 2022 only - Mar 27 0:00 1:00 S
    -
    7218  {
    -
    7219  -78 /*fromYearTiny (2022)*/,
    -
    7220  -78 /*toYearTiny (2022)*/,
    -
    7221  3 /*inMonth*/,
    -
    7222  0 /*onDayOfWeek*/,
    -
    7223  27 /*onDayOfMonth*/,
    -
    7224  0 /*atTimeCode*/,
    -
    7225  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7226  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7227  7 /*letterIndex ("S")*/,
    -
    7228  },
    -
    7229  // Rule Palestine 2022 2035 - Oct Sat<=30 2:00 0 -
    -
    7230  {
    -
    7231  -78 /*fromYearTiny (2022)*/,
    -
    7232  -65 /*toYearTiny (2035)*/,
    -
    7233  10 /*inMonth*/,
    -
    7234  6 /*onDayOfWeek*/,
    -
    7235  -30 /*onDayOfMonth*/,
    -
    7236  8 /*atTimeCode*/,
    -
    7237  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7238  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7239  0 /*letterIndex ("")*/,
    -
    7240  },
    -
    7241  // Rule Palestine 2023 only - Apr 29 2:00 1:00 S
    -
    7242  {
    -
    7243  -77 /*fromYearTiny (2023)*/,
    -
    7244  -77 /*toYearTiny (2023)*/,
    -
    7245  4 /*inMonth*/,
    -
    7246  0 /*onDayOfWeek*/,
    -
    7247  29 /*onDayOfMonth*/,
    -
    7248  8 /*atTimeCode*/,
    -
    7249  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7250  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7251  7 /*letterIndex ("S")*/,
    -
    7252  },
    -
    7253  // Rule Palestine 2024 only - Apr 20 2:00 1:00 S
    -
    7254  {
    -
    7255  -76 /*fromYearTiny (2024)*/,
    -
    7256  -76 /*toYearTiny (2024)*/,
    -
    7257  4 /*inMonth*/,
    -
    7258  0 /*onDayOfWeek*/,
    -
    7259  20 /*onDayOfMonth*/,
    -
    7260  8 /*atTimeCode*/,
    -
    7261  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7262  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7263  7 /*letterIndex ("S")*/,
    -
    7264  },
    -
    7265  // Rule Palestine 2025 only - Apr 12 2:00 1:00 S
    -
    7266  {
    -
    7267  -75 /*fromYearTiny (2025)*/,
    -
    7268  -75 /*toYearTiny (2025)*/,
    -
    7269  4 /*inMonth*/,
    -
    7270  0 /*onDayOfWeek*/,
    -
    7271  12 /*onDayOfMonth*/,
    -
    7272  8 /*atTimeCode*/,
    -
    7273  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7274  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7275  7 /*letterIndex ("S")*/,
    -
    7276  },
    -
    7277  // Rule Palestine 2026 2054 - Mar Sat<=30 2:00 1:00 S
    -
    7278  {
    -
    7279  -74 /*fromYearTiny (2026)*/,
    -
    7280  -46 /*toYearTiny (2054)*/,
    -
    7281  3 /*inMonth*/,
    -
    7282  6 /*onDayOfWeek*/,
    -
    7283  -30 /*onDayOfMonth*/,
    -
    7284  8 /*atTimeCode*/,
    -
    7285  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7286  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7287  7 /*letterIndex ("S")*/,
    -
    7288  },
    -
    7289  // Rule Palestine 2036 only - Oct 18 2:00 0 -
    -
    7290  {
    -
    7291  -64 /*fromYearTiny (2036)*/,
    -
    7292  -64 /*toYearTiny (2036)*/,
    -
    7293  10 /*inMonth*/,
    -
    7294  0 /*onDayOfWeek*/,
    -
    7295  18 /*onDayOfMonth*/,
    -
    7296  8 /*atTimeCode*/,
    -
    7297  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7298  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7299  0 /*letterIndex ("")*/,
    -
    7300  },
    -
    7301  // Rule Palestine 2037 only - Oct 10 2:00 0 -
    -
    7302  {
    -
    7303  -63 /*fromYearTiny (2037)*/,
    -
    7304  -63 /*toYearTiny (2037)*/,
    -
    7305  10 /*inMonth*/,
    -
    7306  0 /*onDayOfWeek*/,
    -
    7307  10 /*onDayOfMonth*/,
    -
    7308  8 /*atTimeCode*/,
    -
    7309  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7310  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7311  0 /*letterIndex ("")*/,
    -
    7312  },
    -
    7313  // Rule Palestine 2038 only - Sep 25 2:00 0 -
    -
    7314  {
    -
    7315  -62 /*fromYearTiny (2038)*/,
    -
    7316  -62 /*toYearTiny (2038)*/,
    -
    7317  9 /*inMonth*/,
    -
    7318  0 /*onDayOfWeek*/,
    -
    7319  25 /*onDayOfMonth*/,
    -
    7320  8 /*atTimeCode*/,
    -
    7321  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7322  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7323  0 /*letterIndex ("")*/,
    -
    7324  },
    -
    7325  // Rule Palestine 2039 only - Sep 17 2:00 0 -
    -
    7326  {
    -
    7327  -61 /*fromYearTiny (2039)*/,
    -
    7328  -61 /*toYearTiny (2039)*/,
    -
    7329  9 /*inMonth*/,
    -
    7330  0 /*onDayOfWeek*/,
    -
    7331  17 /*onDayOfMonth*/,
    -
    7332  8 /*atTimeCode*/,
    -
    7333  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7334  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7335  0 /*letterIndex ("")*/,
    -
    7336  },
    -
    7337  // Rule Palestine 2040 only - Sep 1 2:00 0 -
    -
    7338  {
    -
    7339  -60 /*fromYearTiny (2040)*/,
    -
    7340  -60 /*toYearTiny (2040)*/,
    -
    7341  9 /*inMonth*/,
    -
    7342  0 /*onDayOfWeek*/,
    -
    7343  1 /*onDayOfMonth*/,
    -
    7344  8 /*atTimeCode*/,
    -
    7345  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7346  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7347  0 /*letterIndex ("")*/,
    -
    7348  },
    -
    7349  // Rule Palestine 2040 only - Oct 20 2:00 1:00 S
    -
    7350  {
    -
    7351  -60 /*fromYearTiny (2040)*/,
    -
    7352  -60 /*toYearTiny (2040)*/,
    -
    7353  10 /*inMonth*/,
    -
    7354  0 /*onDayOfWeek*/,
    -
    7355  20 /*onDayOfMonth*/,
    -
    7356  8 /*atTimeCode*/,
    -
    7357  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7358  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7359  7 /*letterIndex ("S")*/,
    -
    7360  },
    -
    7361  // Rule Palestine 2040 2067 - Oct Sat<=30 2:00 0 -
    -
    7362  {
    -
    7363  -60 /*fromYearTiny (2040)*/,
    -
    7364  -33 /*toYearTiny (2067)*/,
    -
    7365  10 /*inMonth*/,
    -
    7366  6 /*onDayOfWeek*/,
    -
    7367  -30 /*onDayOfMonth*/,
    -
    7368  8 /*atTimeCode*/,
    -
    7369  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7370  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7371  0 /*letterIndex ("")*/,
    -
    7372  },
    -
    7373  // Rule Palestine 2041 only - Aug 24 2:00 0 -
    -
    7374  {
    -
    7375  -59 /*fromYearTiny (2041)*/,
    -
    7376  -59 /*toYearTiny (2041)*/,
    -
    7377  8 /*inMonth*/,
    -
    7378  0 /*onDayOfWeek*/,
    -
    7379  24 /*onDayOfMonth*/,
    -
    7380  8 /*atTimeCode*/,
    -
    7381  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7382  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7383  0 /*letterIndex ("")*/,
    -
    7384  },
    -
    7385  // Rule Palestine 2041 only - Oct 5 2:00 1:00 S
    -
    7386  {
    -
    7387  -59 /*fromYearTiny (2041)*/,
    -
    7388  -59 /*toYearTiny (2041)*/,
    -
    7389  10 /*inMonth*/,
    -
    7390  0 /*onDayOfWeek*/,
    -
    7391  5 /*onDayOfMonth*/,
    -
    7392  8 /*atTimeCode*/,
    -
    7393  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7394  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7395  7 /*letterIndex ("S")*/,
    -
    7396  },
    -
    7397  // Rule Palestine 2042 only - Aug 16 2:00 0 -
    -
    7398  {
    -
    7399  -58 /*fromYearTiny (2042)*/,
    -
    7400  -58 /*toYearTiny (2042)*/,
    -
    7401  8 /*inMonth*/,
    -
    7402  0 /*onDayOfWeek*/,
    -
    7403  16 /*onDayOfMonth*/,
    -
    7404  8 /*atTimeCode*/,
    -
    7405  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7406  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7407  0 /*letterIndex ("")*/,
    -
    7408  },
    -
    7409  // Rule Palestine 2042 only - Sep 27 2:00 1:00 S
    -
    7410  {
    -
    7411  -58 /*fromYearTiny (2042)*/,
    -
    7412  -58 /*toYearTiny (2042)*/,
    -
    7413  9 /*inMonth*/,
    -
    7414  0 /*onDayOfWeek*/,
    -
    7415  27 /*onDayOfMonth*/,
    -
    7416  8 /*atTimeCode*/,
    -
    7417  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7418  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7419  7 /*letterIndex ("S")*/,
    -
    7420  },
    -
    7421  // Rule Palestine 2043 only - Aug 1 2:00 0 -
    -
    7422  {
    -
    7423  -57 /*fromYearTiny (2043)*/,
    -
    7424  -57 /*toYearTiny (2043)*/,
    -
    7425  8 /*inMonth*/,
    -
    7426  0 /*onDayOfWeek*/,
    -
    7427  1 /*onDayOfMonth*/,
    -
    7428  8 /*atTimeCode*/,
    -
    7429  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7430  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7431  0 /*letterIndex ("")*/,
    -
    7432  },
    -
    7433  // Rule Palestine 2043 only - Sep 19 2:00 1:00 S
    -
    7434  {
    -
    7435  -57 /*fromYearTiny (2043)*/,
    -
    7436  -57 /*toYearTiny (2043)*/,
    -
    7437  9 /*inMonth*/,
    -
    7438  0 /*onDayOfWeek*/,
    -
    7439  19 /*onDayOfMonth*/,
    -
    7440  8 /*atTimeCode*/,
    -
    7441  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7442  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7443  7 /*letterIndex ("S")*/,
    -
    7444  },
    -
    7445  // Rule Palestine 2044 only - Jul 23 2:00 0 -
    -
    7446  {
    -
    7447  -56 /*fromYearTiny (2044)*/,
    -
    7448  -56 /*toYearTiny (2044)*/,
    -
    7449  7 /*inMonth*/,
    -
    7450  0 /*onDayOfWeek*/,
    -
    7451  23 /*onDayOfMonth*/,
    -
    7452  8 /*atTimeCode*/,
    -
    7453  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7454  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7455  0 /*letterIndex ("")*/,
    -
    7456  },
    -
    7457  // Rule Palestine 2044 only - Sep 3 2:00 1:00 S
    -
    7458  {
    -
    7459  -56 /*fromYearTiny (2044)*/,
    -
    7460  -56 /*toYearTiny (2044)*/,
    -
    7461  9 /*inMonth*/,
    -
    7462  0 /*onDayOfWeek*/,
    -
    7463  3 /*onDayOfMonth*/,
    -
    7464  8 /*atTimeCode*/,
    -
    7465  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7466  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7467  7 /*letterIndex ("S")*/,
    -
    7468  },
    -
    7469  // Rule Palestine 2045 only - Jul 15 2:00 0 -
    -
    7470  {
    -
    7471  -55 /*fromYearTiny (2045)*/,
    -
    7472  -55 /*toYearTiny (2045)*/,
    -
    7473  7 /*inMonth*/,
    -
    7474  0 /*onDayOfWeek*/,
    -
    7475  15 /*onDayOfMonth*/,
    -
    7476  8 /*atTimeCode*/,
    -
    7477  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7478  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7479  0 /*letterIndex ("")*/,
    -
    7480  },
    -
    7481  // Rule Palestine 2045 only - Aug 26 2:00 1:00 S
    -
    7482  {
    -
    7483  -55 /*fromYearTiny (2045)*/,
    -
    7484  -55 /*toYearTiny (2045)*/,
    -
    7485  8 /*inMonth*/,
    -
    7486  0 /*onDayOfWeek*/,
    -
    7487  26 /*onDayOfMonth*/,
    -
    7488  8 /*atTimeCode*/,
    -
    7489  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7490  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7491  7 /*letterIndex ("S")*/,
    -
    7492  },
    -
    7493  // Rule Palestine 2046 only - Jun 30 2:00 0 -
    -
    7494  {
    -
    7495  -54 /*fromYearTiny (2046)*/,
    -
    7496  -54 /*toYearTiny (2046)*/,
    -
    7497  6 /*inMonth*/,
    -
    7498  0 /*onDayOfWeek*/,
    -
    7499  30 /*onDayOfMonth*/,
    -
    7500  8 /*atTimeCode*/,
    -
    7501  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7502  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7503  0 /*letterIndex ("")*/,
    -
    7504  },
    -
    7505  // Rule Palestine 2046 only - Aug 18 2:00 1:00 S
    -
    7506  {
    -
    7507  -54 /*fromYearTiny (2046)*/,
    -
    7508  -54 /*toYearTiny (2046)*/,
    -
    7509  8 /*inMonth*/,
    -
    7510  0 /*onDayOfWeek*/,
    -
    7511  18 /*onDayOfMonth*/,
    -
    7512  8 /*atTimeCode*/,
    -
    7513  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7514  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7515  7 /*letterIndex ("S")*/,
    -
    7516  },
    -
    7517  // Rule Palestine 2047 only - Jun 22 2:00 0 -
    -
    7518  {
    -
    7519  -53 /*fromYearTiny (2047)*/,
    -
    7520  -53 /*toYearTiny (2047)*/,
    -
    7521  6 /*inMonth*/,
    -
    7522  0 /*onDayOfWeek*/,
    -
    7523  22 /*onDayOfMonth*/,
    -
    7524  8 /*atTimeCode*/,
    -
    7525  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7526  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7527  0 /*letterIndex ("")*/,
    -
    7528  },
    -
    7529  // Rule Palestine 2047 only - Aug 3 2:00 1:00 S
    -
    7530  {
    -
    7531  -53 /*fromYearTiny (2047)*/,
    -
    7532  -53 /*toYearTiny (2047)*/,
    -
    7533  8 /*inMonth*/,
    -
    7534  0 /*onDayOfWeek*/,
    -
    7535  3 /*onDayOfMonth*/,
    -
    7536  8 /*atTimeCode*/,
    -
    7537  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7538  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7539  7 /*letterIndex ("S")*/,
    -
    7540  },
    -
    7541  // Rule Palestine 2048 only - Jun 6 2:00 0 -
    -
    7542  {
    -
    7543  -52 /*fromYearTiny (2048)*/,
    -
    7544  -52 /*toYearTiny (2048)*/,
    -
    7545  6 /*inMonth*/,
    -
    7546  0 /*onDayOfWeek*/,
    -
    7547  6 /*onDayOfMonth*/,
    -
    7548  8 /*atTimeCode*/,
    -
    7549  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7550  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7551  0 /*letterIndex ("")*/,
    -
    7552  },
    -
    7553  // Rule Palestine 2048 only - Jul 25 2:00 1:00 S
    -
    7554  {
    -
    7555  -52 /*fromYearTiny (2048)*/,
    -
    7556  -52 /*toYearTiny (2048)*/,
    -
    7557  7 /*inMonth*/,
    -
    7558  0 /*onDayOfWeek*/,
    -
    7559  25 /*onDayOfMonth*/,
    -
    7560  8 /*atTimeCode*/,
    -
    7561  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7562  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7563  7 /*letterIndex ("S")*/,
    -
    7564  },
    -
    7565  // Rule Palestine 2049 only - May 29 2:00 0 -
    -
    7566  {
    -
    7567  -51 /*fromYearTiny (2049)*/,
    -
    7568  -51 /*toYearTiny (2049)*/,
    -
    7569  5 /*inMonth*/,
    -
    7570  0 /*onDayOfWeek*/,
    -
    7571  29 /*onDayOfMonth*/,
    -
    7572  8 /*atTimeCode*/,
    -
    7573  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7574  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7575  0 /*letterIndex ("")*/,
    -
    7576  },
    -
    7577  // Rule Palestine 2049 only - Jul 10 2:00 1:00 S
    -
    7578  {
    -
    7579  -51 /*fromYearTiny (2049)*/,
    -
    7580  -51 /*toYearTiny (2049)*/,
    -
    7581  7 /*inMonth*/,
    -
    7582  0 /*onDayOfWeek*/,
    -
    7583  10 /*onDayOfMonth*/,
    -
    7584  8 /*atTimeCode*/,
    -
    7585  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7586  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7587  7 /*letterIndex ("S")*/,
    -
    7588  },
    -
    7589  // Rule Palestine 2050 only - May 21 2:00 0 -
    -
    7590  {
    -
    7591  -50 /*fromYearTiny (2050)*/,
    -
    7592  -50 /*toYearTiny (2050)*/,
    -
    7593  5 /*inMonth*/,
    -
    7594  0 /*onDayOfWeek*/,
    -
    7595  21 /*onDayOfMonth*/,
    -
    7596  8 /*atTimeCode*/,
    -
    7597  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7598  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7599  0 /*letterIndex ("")*/,
    -
    7600  },
    -
    7601  // Rule Palestine 2050 only - Jul 2 2:00 1:00 S
    -
    7602  {
    -
    7603  -50 /*fromYearTiny (2050)*/,
    -
    7604  -50 /*toYearTiny (2050)*/,
    -
    7605  7 /*inMonth*/,
    -
    7606  0 /*onDayOfWeek*/,
    -
    7607  2 /*onDayOfMonth*/,
    -
    7608  8 /*atTimeCode*/,
    -
    7609  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7610  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7611  7 /*letterIndex ("S")*/,
    -
    7612  },
    -
    7613  // Rule Palestine 2051 only - May 6 2:00 0 -
    -
    7614  {
    -
    7615  -49 /*fromYearTiny (2051)*/,
    -
    7616  -49 /*toYearTiny (2051)*/,
    -
    7617  5 /*inMonth*/,
    -
    7618  0 /*onDayOfWeek*/,
    -
    7619  6 /*onDayOfMonth*/,
    -
    7620  8 /*atTimeCode*/,
    -
    7621  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7622  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7623  0 /*letterIndex ("")*/,
    -
    7624  },
    -
    7625  // Rule Palestine 2051 only - Jun 24 2:00 1:00 S
    -
    7626  {
    -
    7627  -49 /*fromYearTiny (2051)*/,
    -
    7628  -49 /*toYearTiny (2051)*/,
    -
    7629  6 /*inMonth*/,
    -
    7630  0 /*onDayOfWeek*/,
    -
    7631  24 /*onDayOfMonth*/,
    -
    7632  8 /*atTimeCode*/,
    -
    7633  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7634  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7635  7 /*letterIndex ("S")*/,
    -
    7636  },
    -
    7637  // Rule Palestine 2052 only - Apr 27 2:00 0 -
    -
    7638  {
    -
    7639  -48 /*fromYearTiny (2052)*/,
    -
    7640  -48 /*toYearTiny (2052)*/,
    -
    7641  4 /*inMonth*/,
    -
    7642  0 /*onDayOfWeek*/,
    -
    7643  27 /*onDayOfMonth*/,
    -
    7644  8 /*atTimeCode*/,
    -
    7645  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7646  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7647  0 /*letterIndex ("")*/,
    -
    7648  },
    -
    7649  // Rule Palestine 2052 only - Jun 8 2:00 1:00 S
    -
    7650  {
    -
    7651  -48 /*fromYearTiny (2052)*/,
    -
    7652  -48 /*toYearTiny (2052)*/,
    -
    7653  6 /*inMonth*/,
    -
    7654  0 /*onDayOfWeek*/,
    -
    7655  8 /*onDayOfMonth*/,
    -
    7656  8 /*atTimeCode*/,
    -
    7657  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7658  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7659  7 /*letterIndex ("S")*/,
    -
    7660  },
    -
    7661  // Rule Palestine 2053 only - Apr 12 2:00 0 -
    -
    7662  {
    -
    7663  -47 /*fromYearTiny (2053)*/,
    -
    7664  -47 /*toYearTiny (2053)*/,
    -
    7665  4 /*inMonth*/,
    -
    7666  0 /*onDayOfWeek*/,
    -
    7667  12 /*onDayOfMonth*/,
    -
    7668  8 /*atTimeCode*/,
    -
    7669  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7670  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7671  0 /*letterIndex ("")*/,
    -
    7672  },
    -
    7673  // Rule Palestine 2053 only - May 31 2:00 1:00 S
    -
    7674  {
    -
    7675  -47 /*fromYearTiny (2053)*/,
    -
    7676  -47 /*toYearTiny (2053)*/,
    -
    7677  5 /*inMonth*/,
    -
    7678  0 /*onDayOfWeek*/,
    -
    7679  31 /*onDayOfMonth*/,
    -
    7680  8 /*atTimeCode*/,
    -
    7681  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7682  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7683  7 /*letterIndex ("S")*/,
    -
    7684  },
    -
    7685  // Rule Palestine 2054 only - Apr 4 2:00 0 -
    -
    7686  {
    -
    7687  -46 /*fromYearTiny (2054)*/,
    -
    7688  -46 /*toYearTiny (2054)*/,
    -
    7689  4 /*inMonth*/,
    -
    7690  0 /*onDayOfWeek*/,
    -
    7691  4 /*onDayOfMonth*/,
    -
    7692  8 /*atTimeCode*/,
    -
    7693  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7694  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7695  0 /*letterIndex ("")*/,
    -
    7696  },
    -
    7697  // Rule Palestine 2054 only - May 23 2:00 1:00 S
    -
    7698  {
    -
    7699  -46 /*fromYearTiny (2054)*/,
    -
    7700  -46 /*toYearTiny (2054)*/,
    -
    7701  5 /*inMonth*/,
    -
    7702  0 /*onDayOfWeek*/,
    -
    7703  23 /*onDayOfMonth*/,
    -
    7704  8 /*atTimeCode*/,
    -
    7705  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7706  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7707  7 /*letterIndex ("S")*/,
    -
    7708  },
    -
    7709  // Rule Palestine 2055 only - May 8 2:00 1:00 S
    -
    7710  {
    -
    7711  -45 /*fromYearTiny (2055)*/,
    -
    7712  -45 /*toYearTiny (2055)*/,
    -
    7713  5 /*inMonth*/,
    -
    7714  0 /*onDayOfWeek*/,
    -
    7715  8 /*onDayOfMonth*/,
    -
    7716  8 /*atTimeCode*/,
    -
    7717  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7718  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7719  7 /*letterIndex ("S")*/,
    -
    7720  },
    -
    7721  // Rule Palestine 2056 only - Apr 29 2:00 1:00 S
    -
    7722  {
    -
    7723  -44 /*fromYearTiny (2056)*/,
    -
    7724  -44 /*toYearTiny (2056)*/,
    -
    7725  4 /*inMonth*/,
    -
    7726  0 /*onDayOfWeek*/,
    -
    7727  29 /*onDayOfMonth*/,
    -
    7728  8 /*atTimeCode*/,
    -
    7729  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7730  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7731  7 /*letterIndex ("S")*/,
    -
    7732  },
    -
    7733  // Rule Palestine 2057 only - Apr 14 2:00 1:00 S
    -
    7734  {
    -
    7735  -43 /*fromYearTiny (2057)*/,
    -
    7736  -43 /*toYearTiny (2057)*/,
    -
    7737  4 /*inMonth*/,
    -
    7738  0 /*onDayOfWeek*/,
    -
    7739  14 /*onDayOfMonth*/,
    -
    7740  8 /*atTimeCode*/,
    -
    7741  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7742  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7743  7 /*letterIndex ("S")*/,
    -
    7744  },
    -
    7745  // Rule Palestine 2058 only - Apr 6 2:00 1:00 S
    -
    7746  {
    -
    7747  -42 /*fromYearTiny (2058)*/,
    -
    7748  -42 /*toYearTiny (2058)*/,
    -
    7749  4 /*inMonth*/,
    -
    7750  0 /*onDayOfWeek*/,
    -
    7751  6 /*onDayOfMonth*/,
    -
    7752  8 /*atTimeCode*/,
    -
    7753  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7754  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7755  7 /*letterIndex ("S")*/,
    -
    7756  },
    -
    7757  // Rule Palestine 2059 max - Mar Sat<=30 2:00 1:00 S
    -
    7758  {
    -
    7759  -41 /*fromYearTiny (2059)*/,
    -
    7760  126 /*toYearTiny (32766)*/,
    -
    7761  3 /*inMonth*/,
    -
    7762  6 /*onDayOfWeek*/,
    -
    7763  -30 /*onDayOfMonth*/,
    -
    7764  8 /*atTimeCode*/,
    -
    7765  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7766  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7767  7 /*letterIndex ("S")*/,
    -
    7768  },
    -
    7769  // Rule Palestine 2068 only - Oct 20 2:00 0 -
    -
    7770  {
    -
    7771  -32 /*fromYearTiny (2068)*/,
    -
    7772  -32 /*toYearTiny (2068)*/,
    -
    7773  10 /*inMonth*/,
    -
    7774  0 /*onDayOfWeek*/,
    -
    7775  20 /*onDayOfMonth*/,
    -
    7776  8 /*atTimeCode*/,
    -
    7777  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7778  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7779  0 /*letterIndex ("")*/,
    -
    7780  },
    -
    7781  // Rule Palestine 2069 only - Oct 12 2:00 0 -
    -
    7782  {
    -
    7783  -31 /*fromYearTiny (2069)*/,
    -
    7784  -31 /*toYearTiny (2069)*/,
    -
    7785  10 /*inMonth*/,
    -
    7786  0 /*onDayOfWeek*/,
    -
    7787  12 /*onDayOfMonth*/,
    -
    7788  8 /*atTimeCode*/,
    -
    7789  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7790  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7791  0 /*letterIndex ("")*/,
    -
    7792  },
    -
    7793  // Rule Palestine 2070 only - Oct 4 2:00 0 -
    -
    7794  {
    -
    7795  -30 /*fromYearTiny (2070)*/,
    -
    7796  -30 /*toYearTiny (2070)*/,
    -
    7797  10 /*inMonth*/,
    -
    7798  0 /*onDayOfWeek*/,
    -
    7799  4 /*onDayOfMonth*/,
    -
    7800  8 /*atTimeCode*/,
    -
    7801  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7802  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7803  0 /*letterIndex ("")*/,
    -
    7804  },
    -
    7805  // Rule Palestine 2071 only - Sep 19 2:00 0 -
    -
    7806  {
    -
    7807  -29 /*fromYearTiny (2071)*/,
    -
    7808  -29 /*toYearTiny (2071)*/,
    -
    7809  9 /*inMonth*/,
    -
    7810  0 /*onDayOfWeek*/,
    -
    7811  19 /*onDayOfMonth*/,
    -
    7812  8 /*atTimeCode*/,
    -
    7813  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7814  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7815  0 /*letterIndex ("")*/,
    -
    7816  },
    -
    7817  // Rule Palestine 2072 only - Sep 10 2:00 0 -
    -
    7818  {
    -
    7819  -28 /*fromYearTiny (2072)*/,
    -
    7820  -28 /*toYearTiny (2072)*/,
    -
    7821  9 /*inMonth*/,
    -
    7822  0 /*onDayOfWeek*/,
    -
    7823  10 /*onDayOfMonth*/,
    -
    7824  8 /*atTimeCode*/,
    -
    7825  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7826  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7827  0 /*letterIndex ("")*/,
    -
    7828  },
    -
    7829  // Rule Palestine 2072 only - Oct 22 2:00 1:00 S
    -
    7830  {
    -
    7831  -28 /*fromYearTiny (2072)*/,
    -
    7832  -28 /*toYearTiny (2072)*/,
    -
    7833  10 /*inMonth*/,
    -
    7834  0 /*onDayOfWeek*/,
    -
    7835  22 /*onDayOfMonth*/,
    -
    7836  8 /*atTimeCode*/,
    -
    7837  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7838  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7839  7 /*letterIndex ("S")*/,
    -
    7840  },
    -
    7841  // Rule Palestine 2072 max - Oct Sat<=30 2:00 0 -
    -
    7842  {
    -
    7843  -28 /*fromYearTiny (2072)*/,
    -
    7844  126 /*toYearTiny (32766)*/,
    -
    7845  10 /*inMonth*/,
    -
    7846  6 /*onDayOfWeek*/,
    -
    7847  -30 /*onDayOfMonth*/,
    -
    7848  8 /*atTimeCode*/,
    -
    7849  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7850  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7851  0 /*letterIndex ("")*/,
    -
    7852  },
    -
    7853  // Rule Palestine 2073 only - Sep 2 2:00 0 -
    -
    7854  {
    -
    7855  -27 /*fromYearTiny (2073)*/,
    -
    7856  -27 /*toYearTiny (2073)*/,
    -
    7857  9 /*inMonth*/,
    -
    7858  0 /*onDayOfWeek*/,
    -
    7859  2 /*onDayOfMonth*/,
    -
    7860  8 /*atTimeCode*/,
    -
    7861  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7862  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7863  0 /*letterIndex ("")*/,
    -
    7864  },
    -
    7865  // Rule Palestine 2073 only - Oct 14 2:00 1:00 S
    -
    7866  {
    -
    7867  -27 /*fromYearTiny (2073)*/,
    -
    7868  -27 /*toYearTiny (2073)*/,
    -
    7869  10 /*inMonth*/,
    -
    7870  0 /*onDayOfWeek*/,
    -
    7871  14 /*onDayOfMonth*/,
    -
    7872  8 /*atTimeCode*/,
    -
    7873  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7874  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7875  7 /*letterIndex ("S")*/,
    -
    7876  },
    -
    7877  // Rule Palestine 2074 only - Aug 18 2:00 0 -
    -
    7878  {
    -
    7879  -26 /*fromYearTiny (2074)*/,
    -
    7880  -26 /*toYearTiny (2074)*/,
    -
    7881  8 /*inMonth*/,
    -
    7882  0 /*onDayOfWeek*/,
    -
    7883  18 /*onDayOfMonth*/,
    -
    7884  8 /*atTimeCode*/,
    -
    7885  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7886  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7887  0 /*letterIndex ("")*/,
    -
    7888  },
    -
    7889  // Rule Palestine 2074 only - Oct 6 2:00 1:00 S
    -
    7890  {
    -
    7891  -26 /*fromYearTiny (2074)*/,
    -
    7892  -26 /*toYearTiny (2074)*/,
    -
    7893  10 /*inMonth*/,
    -
    7894  0 /*onDayOfWeek*/,
    -
    7895  6 /*onDayOfMonth*/,
    -
    7896  8 /*atTimeCode*/,
    -
    7897  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7898  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7899  7 /*letterIndex ("S")*/,
    -
    7900  },
    -
    7901  // Rule Palestine 2075 only - Aug 10 2:00 0 -
    -
    7902  {
    -
    7903  -25 /*fromYearTiny (2075)*/,
    -
    7904  -25 /*toYearTiny (2075)*/,
    -
    7905  8 /*inMonth*/,
    -
    7906  0 /*onDayOfWeek*/,
    -
    7907  10 /*onDayOfMonth*/,
    -
    7908  8 /*atTimeCode*/,
    -
    7909  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7910  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7911  0 /*letterIndex ("")*/,
    -
    7912  },
    -
    7913  // Rule Palestine 2075 only - Sep 21 2:00 1:00 S
    -
    7914  {
    -
    7915  -25 /*fromYearTiny (2075)*/,
    -
    7916  -25 /*toYearTiny (2075)*/,
    -
    7917  9 /*inMonth*/,
    -
    7918  0 /*onDayOfWeek*/,
    -
    7919  21 /*onDayOfMonth*/,
    -
    7920  8 /*atTimeCode*/,
    -
    7921  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7922  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7923  7 /*letterIndex ("S")*/,
    -
    7924  },
    -
    7925  // Rule Palestine 2076 only - Jul 25 2:00 0 -
    -
    7926  {
    -
    7927  -24 /*fromYearTiny (2076)*/,
    -
    7928  -24 /*toYearTiny (2076)*/,
    -
    7929  7 /*inMonth*/,
    -
    7930  0 /*onDayOfWeek*/,
    -
    7931  25 /*onDayOfMonth*/,
    -
    7932  8 /*atTimeCode*/,
    -
    7933  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7934  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7935  0 /*letterIndex ("")*/,
    -
    7936  },
    -
    7937  // Rule Palestine 2076 only - Sep 12 2:00 1:00 S
    -
    7938  {
    -
    7939  -24 /*fromYearTiny (2076)*/,
    -
    7940  -24 /*toYearTiny (2076)*/,
    -
    7941  9 /*inMonth*/,
    -
    7942  0 /*onDayOfWeek*/,
    -
    7943  12 /*onDayOfMonth*/,
    -
    7944  8 /*atTimeCode*/,
    -
    7945  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7946  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7947  7 /*letterIndex ("S")*/,
    -
    7948  },
    -
    7949  // Rule Palestine 2077 only - Jul 17 2:00 0 -
    -
    7950  {
    -
    7951  -23 /*fromYearTiny (2077)*/,
    -
    7952  -23 /*toYearTiny (2077)*/,
    -
    7953  7 /*inMonth*/,
    -
    7954  0 /*onDayOfWeek*/,
    -
    7955  17 /*onDayOfMonth*/,
    -
    7956  8 /*atTimeCode*/,
    -
    7957  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7958  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7959  0 /*letterIndex ("")*/,
    -
    7960  },
    -
    7961  // Rule Palestine 2077 only - Sep 4 2:00 1:00 S
    -
    7962  {
    -
    7963  -23 /*fromYearTiny (2077)*/,
    -
    7964  -23 /*toYearTiny (2077)*/,
    -
    7965  9 /*inMonth*/,
    -
    7966  0 /*onDayOfWeek*/,
    -
    7967  4 /*onDayOfMonth*/,
    -
    7968  8 /*atTimeCode*/,
    -
    7969  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7970  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7971  7 /*letterIndex ("S")*/,
    -
    7972  },
    -
    7973  // Rule Palestine 2078 only - Jul 9 2:00 0 -
    -
    7974  {
    -
    7975  -22 /*fromYearTiny (2078)*/,
    -
    7976  -22 /*toYearTiny (2078)*/,
    -
    7977  7 /*inMonth*/,
    -
    7978  0 /*onDayOfWeek*/,
    -
    7979  9 /*onDayOfMonth*/,
    -
    7980  8 /*atTimeCode*/,
    -
    7981  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7982  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    7983  0 /*letterIndex ("")*/,
    -
    7984  },
    -
    7985  // Rule Palestine 2078 only - Aug 20 2:00 1:00 S
    -
    7986  {
    -
    7987  -22 /*fromYearTiny (2078)*/,
    -
    7988  -22 /*toYearTiny (2078)*/,
    -
    7989  8 /*inMonth*/,
    -
    7990  0 /*onDayOfWeek*/,
    -
    7991  20 /*onDayOfMonth*/,
    -
    7992  8 /*atTimeCode*/,
    -
    7993  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    7994  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    7995  7 /*letterIndex ("S")*/,
    -
    7996  },
    -
    7997  // Rule Palestine 2079 only - Jun 24 2:00 0 -
    -
    7998  {
    -
    7999  -21 /*fromYearTiny (2079)*/,
    -
    8000  -21 /*toYearTiny (2079)*/,
    -
    8001  6 /*inMonth*/,
    -
    8002  0 /*onDayOfWeek*/,
    -
    8003  24 /*onDayOfMonth*/,
    -
    8004  8 /*atTimeCode*/,
    -
    8005  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8006  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8007  0 /*letterIndex ("")*/,
    -
    8008  },
    -
    8009  // Rule Palestine 2079 only - Aug 12 2:00 1:00 S
    -
    8010  {
    -
    8011  -21 /*fromYearTiny (2079)*/,
    -
    8012  -21 /*toYearTiny (2079)*/,
    -
    8013  8 /*inMonth*/,
    -
    8014  0 /*onDayOfWeek*/,
    -
    8015  12 /*onDayOfMonth*/,
    -
    8016  8 /*atTimeCode*/,
    -
    8017  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8018  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8019  7 /*letterIndex ("S")*/,
    -
    8020  },
    -
    8021  // Rule Palestine 2080 only - Jun 15 2:00 0 -
    -
    8022  {
    -
    8023  -20 /*fromYearTiny (2080)*/,
    -
    8024  -20 /*toYearTiny (2080)*/,
    -
    8025  6 /*inMonth*/,
    -
    8026  0 /*onDayOfWeek*/,
    -
    8027  15 /*onDayOfMonth*/,
    -
    8028  8 /*atTimeCode*/,
    -
    8029  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8030  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8031  0 /*letterIndex ("")*/,
    -
    8032  },
    -
    8033  // Rule Palestine 2080 only - Jul 27 2:00 1:00 S
    -
    8034  {
    -
    8035  -20 /*fromYearTiny (2080)*/,
    -
    8036  -20 /*toYearTiny (2080)*/,
    -
    8037  7 /*inMonth*/,
    -
    8038  0 /*onDayOfWeek*/,
    -
    8039  27 /*onDayOfMonth*/,
    -
    8040  8 /*atTimeCode*/,
    -
    8041  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8042  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8043  7 /*letterIndex ("S")*/,
    -
    8044  },
    -
    8045  // Rule Palestine 2081 only - Jun 7 2:00 0 -
    -
    8046  {
    -
    8047  -19 /*fromYearTiny (2081)*/,
    -
    8048  -19 /*toYearTiny (2081)*/,
    -
    8049  6 /*inMonth*/,
    -
    8050  0 /*onDayOfWeek*/,
    -
    8051  7 /*onDayOfMonth*/,
    -
    8052  8 /*atTimeCode*/,
    -
    8053  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8054  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8055  0 /*letterIndex ("")*/,
    -
    8056  },
    -
    8057  // Rule Palestine 2081 only - Jul 19 2:00 1:00 S
    -
    8058  {
    -
    8059  -19 /*fromYearTiny (2081)*/,
    -
    8060  -19 /*toYearTiny (2081)*/,
    -
    8061  7 /*inMonth*/,
    -
    8062  0 /*onDayOfWeek*/,
    -
    8063  19 /*onDayOfMonth*/,
    -
    8064  8 /*atTimeCode*/,
    -
    8065  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8066  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8067  7 /*letterIndex ("S")*/,
    -
    8068  },
    -
    8069  // Rule Palestine 2082 only - May 23 2:00 0 -
    -
    8070  {
    -
    8071  -18 /*fromYearTiny (2082)*/,
    -
    8072  -18 /*toYearTiny (2082)*/,
    -
    8073  5 /*inMonth*/,
    -
    8074  0 /*onDayOfWeek*/,
    -
    8075  23 /*onDayOfMonth*/,
    -
    8076  8 /*atTimeCode*/,
    -
    8077  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8078  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8079  0 /*letterIndex ("")*/,
    -
    8080  },
    -
    8081  // Rule Palestine 2082 only - Jul 11 2:00 1:00 S
    -
    8082  {
    -
    8083  -18 /*fromYearTiny (2082)*/,
    -
    8084  -18 /*toYearTiny (2082)*/,
    -
    8085  7 /*inMonth*/,
    -
    8086  0 /*onDayOfWeek*/,
    -
    8087  11 /*onDayOfMonth*/,
    -
    8088  8 /*atTimeCode*/,
    -
    8089  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8090  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8091  7 /*letterIndex ("S")*/,
    -
    8092  },
    -
    8093  // Rule Palestine 2083 only - May 15 2:00 0 -
    -
    8094  {
    -
    8095  -17 /*fromYearTiny (2083)*/,
    -
    8096  -17 /*toYearTiny (2083)*/,
    -
    8097  5 /*inMonth*/,
    -
    8098  0 /*onDayOfWeek*/,
    -
    8099  15 /*onDayOfMonth*/,
    -
    8100  8 /*atTimeCode*/,
    -
    8101  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8102  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8103  0 /*letterIndex ("")*/,
    -
    8104  },
    -
    8105  // Rule Palestine 2083 only - Jun 26 2:00 1:00 S
    -
    8106  {
    -
    8107  -17 /*fromYearTiny (2083)*/,
    -
    8108  -17 /*toYearTiny (2083)*/,
    -
    8109  6 /*inMonth*/,
    -
    8110  0 /*onDayOfWeek*/,
    -
    8111  26 /*onDayOfMonth*/,
    -
    8112  8 /*atTimeCode*/,
    -
    8113  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8114  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8115  7 /*letterIndex ("S")*/,
    -
    8116  },
    -
    8117  // Rule Palestine 2084 only - Apr 29 2:00 0 -
    -
    8118  {
    -
    8119  -16 /*fromYearTiny (2084)*/,
    -
    8120  -16 /*toYearTiny (2084)*/,
    -
    8121  4 /*inMonth*/,
    -
    8122  0 /*onDayOfWeek*/,
    -
    8123  29 /*onDayOfMonth*/,
    -
    8124  8 /*atTimeCode*/,
    -
    8125  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8126  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8127  0 /*letterIndex ("")*/,
    -
    8128  },
    -
    8129  // Rule Palestine 2084 only - Jun 17 2:00 1:00 S
    -
    8130  {
    -
    8131  -16 /*fromYearTiny (2084)*/,
    -
    8132  -16 /*toYearTiny (2084)*/,
    -
    8133  6 /*inMonth*/,
    -
    8134  0 /*onDayOfWeek*/,
    -
    8135  17 /*onDayOfMonth*/,
    -
    8136  8 /*atTimeCode*/,
    -
    8137  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8138  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8139  7 /*letterIndex ("S")*/,
    -
    8140  },
    -
    8141  // Rule Palestine 2085 only - Apr 21 2:00 0 -
    -
    8142  {
    -
    8143  -15 /*fromYearTiny (2085)*/,
    -
    8144  -15 /*toYearTiny (2085)*/,
    -
    8145  4 /*inMonth*/,
    -
    8146  0 /*onDayOfWeek*/,
    -
    8147  21 /*onDayOfMonth*/,
    -
    8148  8 /*atTimeCode*/,
    -
    8149  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8150  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8151  0 /*letterIndex ("")*/,
    -
    8152  },
    -
    8153  // Rule Palestine 2085 only - Jun 9 2:00 1:00 S
    -
    8154  {
    -
    8155  -15 /*fromYearTiny (2085)*/,
    -
    8156  -15 /*toYearTiny (2085)*/,
    -
    8157  6 /*inMonth*/,
    -
    8158  0 /*onDayOfWeek*/,
    -
    8159  9 /*onDayOfMonth*/,
    -
    8160  8 /*atTimeCode*/,
    -
    8161  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8162  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8163  7 /*letterIndex ("S")*/,
    -
    8164  },
    -
    8165  // Rule Palestine 2086 only - Apr 13 2:00 0 -
    -
    8166  {
    -
    8167  -14 /*fromYearTiny (2086)*/,
    -
    8168  -14 /*toYearTiny (2086)*/,
    -
    8169  4 /*inMonth*/,
    -
    8170  0 /*onDayOfWeek*/,
    -
    8171  13 /*onDayOfMonth*/,
    -
    8172  8 /*atTimeCode*/,
    -
    8173  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8174  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8175  0 /*letterIndex ("")*/,
    -
    8176  },
    -
    8177  // Rule Palestine 2086 only - May 25 2:00 1:00 S
    -
    8178  {
    -
    8179  -14 /*fromYearTiny (2086)*/,
    -
    8180  -14 /*toYearTiny (2086)*/,
    -
    8181  5 /*inMonth*/,
    -
    8182  0 /*onDayOfWeek*/,
    -
    8183  25 /*onDayOfMonth*/,
    -
    8184  8 /*atTimeCode*/,
    -
    8185  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8186  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8187  7 /*letterIndex ("S")*/,
    -
    8188  },
    -
    8189 
    -
    8190 };
    -
    8191 
    -
    8192 const extended::Info::ZonePolicy kZonePolicyPalestine ACE_TIME_PROGMEM = {
    -
    8193  kZoneRulesPalestine /*rules*/,
    -
    8194  111 /*numRules*/,
    -
    8195 };
    -
    8196 
    -
    8197 //---------------------------------------------------------------------------
    -
    8198 // Policy name: Para
    -
    8199 // Rules: 11
    -
    8200 //---------------------------------------------------------------------------
    -
    8201 
    -
    8202 static const extended::Info::ZoneRule kZoneRulesPara[] ACE_TIME_PROGMEM = {
    -
    8203  // Anchor: Rule Para 1997 only - Feb lastSun 0:00 0 -
    -
    8204  {
    -
    8205  -127 /*fromYearTiny (-32767)*/,
    -
    8206  -127 /*toYearTiny (-32767)*/,
    -
    8207  1 /*inMonth*/,
    -
    8208  0 /*onDayOfWeek*/,
    -
    8209  1 /*onDayOfMonth*/,
    -
    8210  0 /*atTimeCode*/,
    -
    8211  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8212  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8213  0 /*letterIndex ("")*/,
    -
    8214  },
    -
    8215  // Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 -
    -
    8216  {
    -
    8217  -104 /*fromYearTiny (1996)*/,
    -
    8218  -99 /*toYearTiny (2001)*/,
    -
    8219  10 /*inMonth*/,
    -
    8220  7 /*onDayOfWeek*/,
    -
    8221  1 /*onDayOfMonth*/,
    -
    8222  0 /*atTimeCode*/,
    -
    8223  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8224  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8225  0 /*letterIndex ("")*/,
    -
    8226  },
    -
    8227  // Rule Para 1997 only - Feb lastSun 0:00 0 -
    -
    8228  {
    -
    8229  -103 /*fromYearTiny (1997)*/,
    -
    8230  -103 /*toYearTiny (1997)*/,
    -
    8231  2 /*inMonth*/,
    -
    8232  7 /*onDayOfWeek*/,
    -
    8233  0 /*onDayOfMonth*/,
    -
    8234  0 /*atTimeCode*/,
    -
    8235  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8236  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8237  0 /*letterIndex ("")*/,
    -
    8238  },
    -
    8239  // Rule Para 1998 2001 - Mar Sun>=1 0:00 0 -
    -
    8240  {
    -
    8241  -102 /*fromYearTiny (1998)*/,
    -
    8242  -99 /*toYearTiny (2001)*/,
    -
    8243  3 /*inMonth*/,
    -
    8244  7 /*onDayOfWeek*/,
    -
    8245  1 /*onDayOfMonth*/,
    -
    8246  0 /*atTimeCode*/,
    -
    8247  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8248  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8249  0 /*letterIndex ("")*/,
    -
    8250  },
    -
    8251  // Rule Para 2002 2004 - Apr Sun>=1 0:00 0 -
    -
    8252  {
    -
    8253  -98 /*fromYearTiny (2002)*/,
    -
    8254  -96 /*toYearTiny (2004)*/,
    -
    8255  4 /*inMonth*/,
    -
    8256  7 /*onDayOfWeek*/,
    -
    8257  1 /*onDayOfMonth*/,
    -
    8258  0 /*atTimeCode*/,
    -
    8259  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8260  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8261  0 /*letterIndex ("")*/,
    -
    8262  },
    -
    8263  // Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 -
    -
    8264  {
    -
    8265  -98 /*fromYearTiny (2002)*/,
    -
    8266  -97 /*toYearTiny (2003)*/,
    -
    8267  9 /*inMonth*/,
    -
    8268  7 /*onDayOfWeek*/,
    -
    8269  1 /*onDayOfMonth*/,
    -
    8270  0 /*atTimeCode*/,
    -
    8271  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8272  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8273  0 /*letterIndex ("")*/,
    -
    8274  },
    -
    8275  // Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 -
    -
    8276  {
    -
    8277  -96 /*fromYearTiny (2004)*/,
    -
    8278  -91 /*toYearTiny (2009)*/,
    -
    8279  10 /*inMonth*/,
    -
    8280  7 /*onDayOfWeek*/,
    -
    8281  15 /*onDayOfMonth*/,
    -
    8282  0 /*atTimeCode*/,
    -
    8283  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8284  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8285  0 /*letterIndex ("")*/,
    -
    8286  },
    -
    8287  // Rule Para 2005 2009 - Mar Sun>=8 0:00 0 -
    -
    8288  {
    -
    8289  -95 /*fromYearTiny (2005)*/,
    -
    8290  -91 /*toYearTiny (2009)*/,
    -
    8291  3 /*inMonth*/,
    -
    8292  7 /*onDayOfWeek*/,
    -
    8293  8 /*onDayOfMonth*/,
    -
    8294  0 /*atTimeCode*/,
    -
    8295  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8296  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8297  0 /*letterIndex ("")*/,
    -
    8298  },
    -
    8299  // Rule Para 2010 2024 - Oct Sun>=1 0:00 1:00 -
    -
    8300  {
    -
    8301  -90 /*fromYearTiny (2010)*/,
    -
    8302  -76 /*toYearTiny (2024)*/,
    -
    8303  10 /*inMonth*/,
    -
    8304  7 /*onDayOfWeek*/,
    -
    8305  1 /*onDayOfMonth*/,
    -
    8306  0 /*atTimeCode*/,
    -
    8307  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8308  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8309  0 /*letterIndex ("")*/,
    -
    8310  },
    -
    8311  // Rule Para 2010 2012 - Apr Sun>=8 0:00 0 -
    -
    8312  {
    -
    8313  -90 /*fromYearTiny (2010)*/,
    -
    8314  -88 /*toYearTiny (2012)*/,
    -
    8315  4 /*inMonth*/,
    -
    8316  7 /*onDayOfWeek*/,
    -
    8317  8 /*onDayOfMonth*/,
    -
    8318  0 /*atTimeCode*/,
    -
    8319  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8320  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8321  0 /*letterIndex ("")*/,
    -
    8322  },
    -
    8323  // Rule Para 2013 2024 - Mar Sun>=22 0:00 0 -
    -
    8324  {
    -
    8325  -87 /*fromYearTiny (2013)*/,
    -
    8326  -76 /*toYearTiny (2024)*/,
    -
    8327  3 /*inMonth*/,
    -
    8328  7 /*onDayOfWeek*/,
    -
    8329  22 /*onDayOfMonth*/,
    -
    8330  0 /*atTimeCode*/,
    -
    8331  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8332  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8333  0 /*letterIndex ("")*/,
    -
    8334  },
    -
    8335 
    -
    8336 };
    -
    8337 
    -
    8338 const extended::Info::ZonePolicy kZonePolicyPara ACE_TIME_PROGMEM = {
    -
    8339  kZoneRulesPara /*rules*/,
    -
    8340  11 /*numRules*/,
    -
    8341 };
    -
    8342 
    -
    8343 //---------------------------------------------------------------------------
    -
    8344 // Policy name: Peru
    -
    8345 // Rules: 1
    -
    8346 //---------------------------------------------------------------------------
    -
    8347 
    -
    8348 static const extended::Info::ZoneRule kZoneRulesPeru[] ACE_TIME_PROGMEM = {
    -
    8349  // Anchor: Rule Peru 1994 only - Apr 1 0:00 0 -
    -
    8350  {
    -
    8351  -127 /*fromYearTiny (-32767)*/,
    -
    8352  -127 /*toYearTiny (-32767)*/,
    -
    8353  1 /*inMonth*/,
    -
    8354  0 /*onDayOfWeek*/,
    -
    8355  1 /*onDayOfMonth*/,
    -
    8356  0 /*atTimeCode*/,
    -
    8357  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8358  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8359  0 /*letterIndex ("")*/,
    -
    8360  },
    -
    8361 
    -
    8362 };
    -
    8363 
    -
    8364 const extended::Info::ZonePolicy kZonePolicyPeru ACE_TIME_PROGMEM = {
    -
    8365  kZoneRulesPeru /*rules*/,
    -
    8366  1 /*numRules*/,
    -
    8367 };
    -
    8368 
    -
    8369 //---------------------------------------------------------------------------
    -
    8370 // Policy name: Phil
    -
    8371 // Rules: 1
    -
    8372 //---------------------------------------------------------------------------
    -
    8373 
    -
    8374 static const extended::Info::ZoneRule kZoneRulesPhil[] ACE_TIME_PROGMEM = {
    -
    8375  // Anchor: Rule Phil 1990 only - Jul 28 24:00 0 S
    -
    8376  {
    -
    8377  -127 /*fromYearTiny (-32767)*/,
    -
    8378  -127 /*toYearTiny (-32767)*/,
    -
    8379  1 /*inMonth*/,
    -
    8380  0 /*onDayOfWeek*/,
    -
    8381  1 /*onDayOfMonth*/,
    -
    8382  0 /*atTimeCode*/,
    -
    8383  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8384  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8385  7 /*letterIndex ("S")*/,
    -
    8386  },
    -
    8387 
    -
    8388 };
    -
    8389 
    -
    8390 const extended::Info::ZonePolicy kZonePolicyPhil ACE_TIME_PROGMEM = {
    -
    8391  kZoneRulesPhil /*rules*/,
    -
    8392  1 /*numRules*/,
    -
    8393 };
    -
    8394 
    -
    8395 //---------------------------------------------------------------------------
    -
    8396 // Policy name: ROK
    -
    8397 // Rules: 1
    -
    8398 //---------------------------------------------------------------------------
    -
    8399 
    -
    8400 static const extended::Info::ZoneRule kZoneRulesROK[] ACE_TIME_PROGMEM = {
    -
    8401  // Anchor: Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S
    -
    8402  {
    -
    8403  -127 /*fromYearTiny (-32767)*/,
    -
    8404  -127 /*toYearTiny (-32767)*/,
    -
    8405  1 /*inMonth*/,
    -
    8406  0 /*onDayOfWeek*/,
    -
    8407  1 /*onDayOfMonth*/,
    -
    8408  0 /*atTimeCode*/,
    -
    8409  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8410  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8411  7 /*letterIndex ("S")*/,
    -
    8412  },
    -
    8413 
    -
    8414 };
    -
    8415 
    -
    8416 const extended::Info::ZonePolicy kZonePolicyROK ACE_TIME_PROGMEM = {
    -
    8417  kZoneRulesROK /*rules*/,
    -
    8418  1 /*numRules*/,
    -
    8419 };
    -
    8420 
    -
    8421 //---------------------------------------------------------------------------
    -
    8422 // Policy name: Russia
    -
    8423 // Rules: 4
    -
    8424 //---------------------------------------------------------------------------
    -
    8425 
    -
    8426 static const extended::Info::ZoneRule kZoneRulesRussia[] ACE_TIME_PROGMEM = {
    -
    8427  // Anchor: Rule Russia 1984 1995 - Sep lastSun 2:00s 0 -
    -
    8428  {
    -
    8429  -127 /*fromYearTiny (-32767)*/,
    -
    8430  -127 /*toYearTiny (-32767)*/,
    -
    8431  1 /*inMonth*/,
    -
    8432  0 /*onDayOfWeek*/,
    -
    8433  1 /*onDayOfMonth*/,
    -
    8434  0 /*atTimeCode*/,
    -
    8435  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8436  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8437  0 /*letterIndex ("")*/,
    -
    8438  },
    -
    8439  // Rule Russia 1984 1995 - Sep lastSun 2:00s 0 -
    -
    8440  {
    -
    8441  -116 /*fromYearTiny (1984)*/,
    -
    8442  -105 /*toYearTiny (1995)*/,
    -
    8443  9 /*inMonth*/,
    -
    8444  7 /*onDayOfWeek*/,
    -
    8445  0 /*onDayOfMonth*/,
    -
    8446  8 /*atTimeCode*/,
    -
    8447  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    8448  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8449  0 /*letterIndex ("")*/,
    -
    8450  },
    -
    8451  // Rule Russia 1985 2010 - Mar lastSun 2:00s 1:00 S
    -
    8452  {
    -
    8453  -115 /*fromYearTiny (1985)*/,
    -
    8454  -90 /*toYearTiny (2010)*/,
    -
    8455  3 /*inMonth*/,
    -
    8456  7 /*onDayOfWeek*/,
    -
    8457  0 /*onDayOfMonth*/,
    -
    8458  8 /*atTimeCode*/,
    -
    8459  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    8460  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8461  7 /*letterIndex ("S")*/,
    -
    8462  },
    -
    8463  // Rule Russia 1996 2010 - Oct lastSun 2:00s 0 -
    -
    8464  {
    -
    8465  -104 /*fromYearTiny (1996)*/,
    -
    8466  -90 /*toYearTiny (2010)*/,
    -
    8467  10 /*inMonth*/,
    -
    8468  7 /*onDayOfWeek*/,
    -
    8469  0 /*onDayOfMonth*/,
    -
    8470  8 /*atTimeCode*/,
    -
    8471  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    8472  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8473  0 /*letterIndex ("")*/,
    -
    8474  },
    -
    8475 
    -
    8476 };
    -
    8477 
    -
    8478 const extended::Info::ZonePolicy kZonePolicyRussia ACE_TIME_PROGMEM = {
    -
    8479  kZoneRulesRussia /*rules*/,
    -
    8480  4 /*numRules*/,
    -
    8481 };
    -
    8482 
    -
    8483 //---------------------------------------------------------------------------
    -
    8484 // Policy name: RussiaAsia
    -
    8485 // Rules: 4
    -
    8486 //---------------------------------------------------------------------------
    -
    8487 
    -
    8488 static const extended::Info::ZoneRule kZoneRulesRussiaAsia[] ACE_TIME_PROGMEM = {
    -
    8489  // Anchor: Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 -
    -
    8490  {
    -
    8491  -127 /*fromYearTiny (-32767)*/,
    -
    8492  -127 /*toYearTiny (-32767)*/,
    -
    8493  1 /*inMonth*/,
    -
    8494  0 /*onDayOfWeek*/,
    -
    8495  1 /*onDayOfMonth*/,
    -
    8496  0 /*atTimeCode*/,
    -
    8497  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8498  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8499  0 /*letterIndex ("")*/,
    -
    8500  },
    -
    8501  // Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 -
    -
    8502  {
    -
    8503  -116 /*fromYearTiny (1984)*/,
    -
    8504  -105 /*toYearTiny (1995)*/,
    -
    8505  9 /*inMonth*/,
    -
    8506  7 /*onDayOfWeek*/,
    -
    8507  0 /*onDayOfMonth*/,
    -
    8508  8 /*atTimeCode*/,
    -
    8509  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    8510  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8511  0 /*letterIndex ("")*/,
    -
    8512  },
    -
    8513  // Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 -
    -
    8514  {
    -
    8515  -115 /*fromYearTiny (1985)*/,
    -
    8516  -90 /*toYearTiny (2010)*/,
    -
    8517  3 /*inMonth*/,
    -
    8518  7 /*onDayOfWeek*/,
    -
    8519  0 /*onDayOfMonth*/,
    -
    8520  8 /*atTimeCode*/,
    -
    8521  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    8522  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8523  0 /*letterIndex ("")*/,
    -
    8524  },
    -
    8525  // Rule RussiaAsia 1996 2010 - Oct lastSun 2:00s 0 -
    -
    8526  {
    -
    8527  -104 /*fromYearTiny (1996)*/,
    -
    8528  -90 /*toYearTiny (2010)*/,
    -
    8529  10 /*inMonth*/,
    -
    8530  7 /*onDayOfWeek*/,
    -
    8531  0 /*onDayOfMonth*/,
    -
    8532  8 /*atTimeCode*/,
    -
    8533  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    8534  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8535  0 /*letterIndex ("")*/,
    -
    8536  },
    -
    8537 
    -
    8538 };
    -
    8539 
    -
    8540 const extended::Info::ZonePolicy kZonePolicyRussiaAsia ACE_TIME_PROGMEM = {
    -
    8541  kZoneRulesRussiaAsia /*rules*/,
    -
    8542  4 /*numRules*/,
    -
    8543 };
    -
    8544 
    -
    8545 //---------------------------------------------------------------------------
    -
    8546 // Policy name: SA
    -
    8547 // Rules: 1
    -
    8548 //---------------------------------------------------------------------------
    -
    8549 
    -
    8550 static const extended::Info::ZoneRule kZoneRulesSA[] ACE_TIME_PROGMEM = {
    -
    8551  // Anchor: Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
    -
    8552  {
    -
    8553  -127 /*fromYearTiny (-32767)*/,
    -
    8554  -127 /*toYearTiny (-32767)*/,
    -
    8555  1 /*inMonth*/,
    -
    8556  0 /*onDayOfWeek*/,
    -
    8557  1 /*onDayOfMonth*/,
    -
    8558  0 /*atTimeCode*/,
    -
    8559  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8560  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8561  0 /*letterIndex ("")*/,
    -
    8562  },
    -
    8563 
    -
    8564 };
    -
    8565 
    -
    8566 const extended::Info::ZonePolicy kZonePolicySA ACE_TIME_PROGMEM = {
    -
    8567  kZoneRulesSA /*rules*/,
    -
    8568  1 /*numRules*/,
    -
    8569 };
    -
    8570 
    -
    8571 //---------------------------------------------------------------------------
    -
    8572 // Policy name: Salv
    -
    8573 // Rules: 1
    -
    8574 //---------------------------------------------------------------------------
    -
    8575 
    -
    8576 static const extended::Info::ZoneRule kZoneRulesSalv[] ACE_TIME_PROGMEM = {
    -
    8577  // Anchor: Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
    -
    8578  {
    -
    8579  -127 /*fromYearTiny (-32767)*/,
    -
    8580  -127 /*toYearTiny (-32767)*/,
    -
    8581  1 /*inMonth*/,
    -
    8582  0 /*onDayOfWeek*/,
    -
    8583  1 /*onDayOfMonth*/,
    -
    8584  0 /*atTimeCode*/,
    -
    8585  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8586  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8587  7 /*letterIndex ("S")*/,
    -
    8588  },
    -
    8589 
    -
    8590 };
    -
    8591 
    -
    8592 const extended::Info::ZonePolicy kZonePolicySalv ACE_TIME_PROGMEM = {
    -
    8593  kZoneRulesSalv /*rules*/,
    -
    8594  1 /*numRules*/,
    -
    8595 };
    -
    8596 
    -
    8597 //---------------------------------------------------------------------------
    -
    8598 // Policy name: SanLuis
    -
    8599 // Rules: 3
    -
    8600 //---------------------------------------------------------------------------
    -
    8601 
    -
    8602 static const extended::Info::ZoneRule kZoneRulesSanLuis[] ACE_TIME_PROGMEM = {
    -
    8603  // Anchor: Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
    -
    8604  {
    -
    8605  -127 /*fromYearTiny (-32767)*/,
    -
    8606  -127 /*toYearTiny (-32767)*/,
    -
    8607  1 /*inMonth*/,
    -
    8608  0 /*onDayOfWeek*/,
    -
    8609  1 /*onDayOfMonth*/,
    -
    8610  0 /*atTimeCode*/,
    -
    8611  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8612  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8613  0 /*letterIndex ("")*/,
    -
    8614  },
    -
    8615  // Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
    -
    8616  {
    -
    8617  -92 /*fromYearTiny (2008)*/,
    -
    8618  -91 /*toYearTiny (2009)*/,
    -
    8619  3 /*inMonth*/,
    -
    8620  7 /*onDayOfWeek*/,
    -
    8621  8 /*onDayOfMonth*/,
    -
    8622  0 /*atTimeCode*/,
    -
    8623  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8624  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8625  0 /*letterIndex ("")*/,
    -
    8626  },
    -
    8627  // Rule SanLuis 2007 2008 - Oct Sun>=8 0:00 1:00 -
    -
    8628  {
    -
    8629  -93 /*fromYearTiny (2007)*/,
    -
    8630  -92 /*toYearTiny (2008)*/,
    -
    8631  10 /*inMonth*/,
    -
    8632  7 /*onDayOfWeek*/,
    -
    8633  8 /*onDayOfMonth*/,
    -
    8634  0 /*atTimeCode*/,
    -
    8635  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8636  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8637  0 /*letterIndex ("")*/,
    -
    8638  },
    -
    8639 
    -
    8640 };
    -
    8641 
    -
    8642 const extended::Info::ZonePolicy kZonePolicySanLuis ACE_TIME_PROGMEM = {
    -
    8643  kZoneRulesSanLuis /*rules*/,
    -
    8644  3 /*numRules*/,
    -
    8645 };
    -
    8646 
    -
    8647 //---------------------------------------------------------------------------
    -
    8648 // Policy name: StJohns
    -
    8649 // Rules: 6
    -
    8650 //---------------------------------------------------------------------------
    -
    8651 
    -
    8652 static const extended::Info::ZoneRule kZoneRulesStJohns[] ACE_TIME_PROGMEM = {
    -
    8653  // Anchor: Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S
    -
    8654  {
    -
    8655  -127 /*fromYearTiny (-32767)*/,
    -
    8656  -127 /*toYearTiny (-32767)*/,
    -
    8657  1 /*inMonth*/,
    -
    8658  0 /*onDayOfWeek*/,
    -
    8659  1 /*onDayOfMonth*/,
    -
    8660  0 /*atTimeCode*/,
    -
    8661  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8662  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8663  7 /*letterIndex ("S")*/,
    -
    8664  },
    -
    8665  // Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S
    -
    8666  {
    -
    8667  -113 /*fromYearTiny (1987)*/,
    -
    8668  -94 /*toYearTiny (2006)*/,
    -
    8669  10 /*inMonth*/,
    -
    8670  7 /*onDayOfWeek*/,
    -
    8671  0 /*onDayOfMonth*/,
    -
    8672  0 /*atTimeCode*/,
    -
    8673  1 /*atTimeModifier (kSuffixW + minute=1)*/,
    -
    8674  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8675  7 /*letterIndex ("S")*/,
    -
    8676  },
    -
    8677  // Rule StJohns 1988 only - Apr Sun>=1 0:01 2:00 DD
    -
    8678  {
    -
    8679  -112 /*fromYearTiny (1988)*/,
    -
    8680  -112 /*toYearTiny (1988)*/,
    -
    8681  4 /*inMonth*/,
    -
    8682  7 /*onDayOfWeek*/,
    -
    8683  1 /*onDayOfMonth*/,
    -
    8684  0 /*atTimeCode*/,
    -
    8685  1 /*atTimeModifier (kSuffixW + minute=1)*/,
    -
    8686  12 /*deltaCode ((deltaMinutes=120)/15 + 4)*/,
    -
    8687  6 /*letterIndex ("DD")*/,
    -
    8688  },
    -
    8689  // Rule StJohns 1989 2006 - Apr Sun>=1 0:01 1:00 D
    -
    8690  {
    -
    8691  -111 /*fromYearTiny (1989)*/,
    -
    8692  -94 /*toYearTiny (2006)*/,
    -
    8693  4 /*inMonth*/,
    -
    8694  7 /*onDayOfWeek*/,
    -
    8695  1 /*onDayOfMonth*/,
    -
    8696  0 /*atTimeCode*/,
    -
    8697  1 /*atTimeModifier (kSuffixW + minute=1)*/,
    -
    8698  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8699  5 /*letterIndex ("D")*/,
    -
    8700  },
    -
    8701  // Rule StJohns 2007 2011 - Mar Sun>=8 0:01 1:00 D
    -
    8702  {
    -
    8703  -93 /*fromYearTiny (2007)*/,
    -
    8704  -89 /*toYearTiny (2011)*/,
    -
    8705  3 /*inMonth*/,
    -
    8706  7 /*onDayOfWeek*/,
    -
    8707  8 /*onDayOfMonth*/,
    -
    8708  0 /*atTimeCode*/,
    -
    8709  1 /*atTimeModifier (kSuffixW + minute=1)*/,
    -
    8710  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8711  5 /*letterIndex ("D")*/,
    -
    8712  },
    -
    8713  // Rule StJohns 2007 2010 - Nov Sun>=1 0:01 0 S
    -
    8714  {
    -
    8715  -93 /*fromYearTiny (2007)*/,
    -
    8716  -90 /*toYearTiny (2010)*/,
    -
    8717  11 /*inMonth*/,
    -
    8718  7 /*onDayOfWeek*/,
    -
    8719  1 /*onDayOfMonth*/,
    -
    8720  0 /*atTimeCode*/,
    -
    8721  1 /*atTimeModifier (kSuffixW + minute=1)*/,
    -
    8722  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8723  7 /*letterIndex ("S")*/,
    -
    8724  },
    -
    8725 
    -
    8726 };
    -
    8727 
    -
    8728 const extended::Info::ZonePolicy kZonePolicyStJohns ACE_TIME_PROGMEM = {
    -
    8729  kZoneRulesStJohns /*rules*/,
    -
    8730  6 /*numRules*/,
    -
    8731 };
    -
    8732 
    -
    8733 //---------------------------------------------------------------------------
    -
    8734 // Policy name: Sudan
    -
    8735 // Rules: 1
    -
    8736 //---------------------------------------------------------------------------
    -
    8737 
    -
    8738 static const extended::Info::ZoneRule kZoneRulesSudan[] ACE_TIME_PROGMEM = {
    -
    8739  // Anchor: Rule Sudan 1970 1985 - Oct 15 0:00 0 -
    -
    8740  {
    -
    8741  -127 /*fromYearTiny (-32767)*/,
    -
    8742  -127 /*toYearTiny (-32767)*/,
    -
    8743  1 /*inMonth*/,
    -
    8744  0 /*onDayOfWeek*/,
    -
    8745  1 /*onDayOfMonth*/,
    -
    8746  0 /*atTimeCode*/,
    -
    8747  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8748  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8749  0 /*letterIndex ("")*/,
    -
    8750  },
    -
    8751 
    -
    8752 };
    -
    8753 
    -
    8754 const extended::Info::ZonePolicy kZonePolicySudan ACE_TIME_PROGMEM = {
    -
    8755  kZoneRulesSudan /*rules*/,
    -
    8756  1 /*numRules*/,
    -
    8757 };
    -
    8758 
    -
    8759 //---------------------------------------------------------------------------
    -
    8760 // Policy name: Syria
    -
    8761 // Rules: 13
    -
    8762 //---------------------------------------------------------------------------
    -
    8763 
    -
    8764 static const extended::Info::ZoneRule kZoneRulesSyria[] ACE_TIME_PROGMEM = {
    -
    8765  // Anchor: Rule Syria 1994 2005 - Oct 1 0:00 0 -
    -
    8766  {
    -
    8767  -127 /*fromYearTiny (-32767)*/,
    -
    8768  -127 /*toYearTiny (-32767)*/,
    -
    8769  1 /*inMonth*/,
    -
    8770  0 /*onDayOfWeek*/,
    -
    8771  1 /*onDayOfMonth*/,
    -
    8772  0 /*atTimeCode*/,
    -
    8773  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8774  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8775  0 /*letterIndex ("")*/,
    -
    8776  },
    -
    8777  // Rule Syria 1994 2005 - Oct 1 0:00 0 -
    -
    8778  {
    -
    8779  -106 /*fromYearTiny (1994)*/,
    -
    8780  -95 /*toYearTiny (2005)*/,
    -
    8781  10 /*inMonth*/,
    -
    8782  0 /*onDayOfWeek*/,
    -
    8783  1 /*onDayOfMonth*/,
    -
    8784  0 /*atTimeCode*/,
    -
    8785  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8786  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8787  0 /*letterIndex ("")*/,
    -
    8788  },
    -
    8789  // Rule Syria 1997 1998 - Mar lastMon 0:00 1:00 S
    -
    8790  {
    -
    8791  -103 /*fromYearTiny (1997)*/,
    -
    8792  -102 /*toYearTiny (1998)*/,
    -
    8793  3 /*inMonth*/,
    -
    8794  1 /*onDayOfWeek*/,
    -
    8795  0 /*onDayOfMonth*/,
    -
    8796  0 /*atTimeCode*/,
    -
    8797  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8798  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8799  7 /*letterIndex ("S")*/,
    -
    8800  },
    -
    8801  // Rule Syria 1999 2006 - Apr 1 0:00 1:00 S
    -
    8802  {
    -
    8803  -101 /*fromYearTiny (1999)*/,
    -
    8804  -94 /*toYearTiny (2006)*/,
    -
    8805  4 /*inMonth*/,
    -
    8806  0 /*onDayOfWeek*/,
    -
    8807  1 /*onDayOfMonth*/,
    -
    8808  0 /*atTimeCode*/,
    -
    8809  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8810  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8811  7 /*letterIndex ("S")*/,
    -
    8812  },
    -
    8813  // Rule Syria 2006 only - Sep 22 0:00 0 -
    -
    8814  {
    -
    8815  -94 /*fromYearTiny (2006)*/,
    -
    8816  -94 /*toYearTiny (2006)*/,
    -
    8817  9 /*inMonth*/,
    -
    8818  0 /*onDayOfWeek*/,
    -
    8819  22 /*onDayOfMonth*/,
    -
    8820  0 /*atTimeCode*/,
    -
    8821  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8822  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8823  0 /*letterIndex ("")*/,
    -
    8824  },
    -
    8825  // Rule Syria 2007 only - Mar lastFri 0:00 1:00 S
    -
    8826  {
    -
    8827  -93 /*fromYearTiny (2007)*/,
    -
    8828  -93 /*toYearTiny (2007)*/,
    -
    8829  3 /*inMonth*/,
    -
    8830  5 /*onDayOfWeek*/,
    -
    8831  0 /*onDayOfMonth*/,
    -
    8832  0 /*atTimeCode*/,
    -
    8833  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8834  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8835  7 /*letterIndex ("S")*/,
    -
    8836  },
    -
    8837  // Rule Syria 2007 only - Nov Fri>=1 0:00 0 -
    -
    8838  {
    -
    8839  -93 /*fromYearTiny (2007)*/,
    -
    8840  -93 /*toYearTiny (2007)*/,
    -
    8841  11 /*inMonth*/,
    -
    8842  5 /*onDayOfWeek*/,
    -
    8843  1 /*onDayOfMonth*/,
    -
    8844  0 /*atTimeCode*/,
    -
    8845  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8846  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8847  0 /*letterIndex ("")*/,
    -
    8848  },
    -
    8849  // Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S
    -
    8850  {
    -
    8851  -92 /*fromYearTiny (2008)*/,
    -
    8852  -92 /*toYearTiny (2008)*/,
    -
    8853  4 /*inMonth*/,
    -
    8854  5 /*onDayOfWeek*/,
    -
    8855  1 /*onDayOfMonth*/,
    -
    8856  0 /*atTimeCode*/,
    -
    8857  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8858  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8859  7 /*letterIndex ("S")*/,
    -
    8860  },
    -
    8861  // Rule Syria 2008 only - Nov 1 0:00 0 -
    -
    8862  {
    -
    8863  -92 /*fromYearTiny (2008)*/,
    -
    8864  -92 /*toYearTiny (2008)*/,
    -
    8865  11 /*inMonth*/,
    -
    8866  0 /*onDayOfWeek*/,
    -
    8867  1 /*onDayOfMonth*/,
    -
    8868  0 /*atTimeCode*/,
    -
    8869  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8870  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8871  0 /*letterIndex ("")*/,
    -
    8872  },
    -
    8873  // Rule Syria 2009 only - Mar lastFri 0:00 1:00 S
    -
    8874  {
    -
    8875  -91 /*fromYearTiny (2009)*/,
    -
    8876  -91 /*toYearTiny (2009)*/,
    -
    8877  3 /*inMonth*/,
    -
    8878  5 /*onDayOfWeek*/,
    -
    8879  0 /*onDayOfMonth*/,
    -
    8880  0 /*atTimeCode*/,
    -
    8881  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8882  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8883  7 /*letterIndex ("S")*/,
    -
    8884  },
    -
    8885  // Rule Syria 2010 2011 - Apr Fri>=1 0:00 1:00 S
    -
    8886  {
    -
    8887  -90 /*fromYearTiny (2010)*/,
    -
    8888  -89 /*toYearTiny (2011)*/,
    -
    8889  4 /*inMonth*/,
    -
    8890  5 /*onDayOfWeek*/,
    -
    8891  1 /*onDayOfMonth*/,
    -
    8892  0 /*atTimeCode*/,
    -
    8893  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8894  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8895  7 /*letterIndex ("S")*/,
    -
    8896  },
    -
    8897  // Rule Syria 2012 2022 - Mar lastFri 0:00 1:00 S
    -
    8898  {
    -
    8899  -88 /*fromYearTiny (2012)*/,
    -
    8900  -78 /*toYearTiny (2022)*/,
    -
    8901  3 /*inMonth*/,
    -
    8902  5 /*onDayOfWeek*/,
    -
    8903  0 /*onDayOfMonth*/,
    -
    8904  0 /*atTimeCode*/,
    -
    8905  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8906  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8907  7 /*letterIndex ("S")*/,
    -
    8908  },
    -
    8909  // Rule Syria 2009 2022 - Oct lastFri 0:00 0 -
    -
    8910  {
    -
    8911  -91 /*fromYearTiny (2009)*/,
    -
    8912  -78 /*toYearTiny (2022)*/,
    -
    8913  10 /*inMonth*/,
    -
    8914  5 /*onDayOfWeek*/,
    -
    8915  0 /*onDayOfMonth*/,
    -
    8916  0 /*atTimeCode*/,
    -
    8917  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8918  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8919  0 /*letterIndex ("")*/,
    -
    8920  },
    -
    8921 
    -
    8922 };
    -
    8923 
    -
    8924 const extended::Info::ZonePolicy kZonePolicySyria ACE_TIME_PROGMEM = {
    -
    8925  kZoneRulesSyria /*rules*/,
    -
    8926  13 /*numRules*/,
    -
    8927 };
    -
    8928 
    -
    8929 //---------------------------------------------------------------------------
    -
    8930 // Policy name: Taiwan
    -
    8931 // Rules: 1
    -
    8932 //---------------------------------------------------------------------------
    -
    8933 
    -
    8934 static const extended::Info::ZoneRule kZoneRulesTaiwan[] ACE_TIME_PROGMEM = {
    -
    8935  // Anchor: Rule Taiwan 1979 only - Oct 1 0:00 0 S
    -
    8936  {
    -
    8937  -127 /*fromYearTiny (-32767)*/,
    -
    8938  -127 /*toYearTiny (-32767)*/,
    -
    8939  1 /*inMonth*/,
    -
    8940  0 /*onDayOfWeek*/,
    -
    8941  1 /*onDayOfMonth*/,
    -
    8942  0 /*atTimeCode*/,
    -
    8943  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8944  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8945  7 /*letterIndex ("S")*/,
    -
    8946  },
    -
    8947 
    -
    8948 };
    -
    8949 
    -
    8950 const extended::Info::ZonePolicy kZonePolicyTaiwan ACE_TIME_PROGMEM = {
    -
    8951  kZoneRulesTaiwan /*rules*/,
    -
    8952  1 /*numRules*/,
    -
    8953 };
    -
    8954 
    -
    8955 //---------------------------------------------------------------------------
    -
    8956 // Policy name: Thule
    -
    8957 // Rules: 6
    -
    8958 //---------------------------------------------------------------------------
    -
    8959 
    -
    8960 static const extended::Info::ZoneRule kZoneRulesThule[] ACE_TIME_PROGMEM = {
    -
    8961  // Anchor: Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
    -
    8962  {
    -
    8963  -127 /*fromYearTiny (-32767)*/,
    -
    8964  -127 /*toYearTiny (-32767)*/,
    -
    8965  1 /*inMonth*/,
    -
    8966  0 /*onDayOfWeek*/,
    -
    8967  1 /*onDayOfMonth*/,
    -
    8968  0 /*atTimeCode*/,
    -
    8969  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8970  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8971  7 /*letterIndex ("S")*/,
    -
    8972  },
    -
    8973  // Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
    -
    8974  {
    -
    8975  -109 /*fromYearTiny (1991)*/,
    -
    8976  -108 /*toYearTiny (1992)*/,
    -
    8977  9 /*inMonth*/,
    -
    8978  7 /*onDayOfWeek*/,
    -
    8979  0 /*onDayOfMonth*/,
    -
    8980  8 /*atTimeCode*/,
    -
    8981  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8982  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    8983  7 /*letterIndex ("S")*/,
    -
    8984  },
    -
    8985  // Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D
    -
    8986  {
    -
    8987  -107 /*fromYearTiny (1993)*/,
    -
    8988  -94 /*toYearTiny (2006)*/,
    -
    8989  4 /*inMonth*/,
    -
    8990  7 /*onDayOfWeek*/,
    -
    8991  1 /*onDayOfMonth*/,
    -
    8992  8 /*atTimeCode*/,
    -
    8993  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    8994  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    8995  5 /*letterIndex ("D")*/,
    -
    8996  },
    -
    8997  // Rule Thule 1993 2006 - Oct lastSun 2:00 0 S
    -
    8998  {
    -
    8999  -107 /*fromYearTiny (1993)*/,
    -
    9000  -94 /*toYearTiny (2006)*/,
    -
    9001  10 /*inMonth*/,
    -
    9002  7 /*onDayOfWeek*/,
    -
    9003  0 /*onDayOfMonth*/,
    -
    9004  8 /*atTimeCode*/,
    -
    9005  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9006  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9007  7 /*letterIndex ("S")*/,
    -
    9008  },
    -
    9009  // Rule Thule 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    9010  {
    -
    9011  -93 /*fromYearTiny (2007)*/,
    -
    9012  126 /*toYearTiny (32766)*/,
    -
    9013  3 /*inMonth*/,
    -
    9014  7 /*onDayOfWeek*/,
    -
    9015  8 /*onDayOfMonth*/,
    -
    9016  8 /*atTimeCode*/,
    -
    9017  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9018  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9019  5 /*letterIndex ("D")*/,
    -
    9020  },
    -
    9021  // Rule Thule 2007 max - Nov Sun>=1 2:00 0 S
    -
    9022  {
    -
    9023  -93 /*fromYearTiny (2007)*/,
    -
    9024  126 /*toYearTiny (32766)*/,
    -
    9025  11 /*inMonth*/,
    -
    9026  7 /*onDayOfWeek*/,
    -
    9027  1 /*onDayOfMonth*/,
    -
    9028  8 /*atTimeCode*/,
    -
    9029  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9030  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9031  7 /*letterIndex ("S")*/,
    -
    9032  },
    -
    9033 
    -
    9034 };
    -
    9035 
    -
    9036 const extended::Info::ZonePolicy kZonePolicyThule ACE_TIME_PROGMEM = {
    -
    9037  kZoneRulesThule /*rules*/,
    -
    9038  6 /*numRules*/,
    -
    9039 };
    -
    9040 
    -
    9041 //---------------------------------------------------------------------------
    -
    9042 // Policy name: Tonga
    -
    9043 // Rules: 7
    -
    9044 //---------------------------------------------------------------------------
    -
    9045 
    -
    9046 static const extended::Info::ZoneRule kZoneRulesTonga[] ACE_TIME_PROGMEM = {
    -
    9047  // Anchor: Rule Tonga 2000 only - Mar 19 2:00s 0 -
    -
    9048  {
    -
    9049  -127 /*fromYearTiny (-32767)*/,
    -
    9050  -127 /*toYearTiny (-32767)*/,
    -
    9051  1 /*inMonth*/,
    -
    9052  0 /*onDayOfWeek*/,
    -
    9053  1 /*onDayOfMonth*/,
    -
    9054  0 /*atTimeCode*/,
    -
    9055  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9056  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9057  0 /*letterIndex ("")*/,
    -
    9058  },
    -
    9059  // Rule Tonga 1999 only - Oct 7 2:00s 1:00 -
    -
    9060  {
    -
    9061  -101 /*fromYearTiny (1999)*/,
    -
    9062  -101 /*toYearTiny (1999)*/,
    -
    9063  10 /*inMonth*/,
    -
    9064  0 /*onDayOfWeek*/,
    -
    9065  7 /*onDayOfMonth*/,
    -
    9066  8 /*atTimeCode*/,
    -
    9067  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9068  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9069  0 /*letterIndex ("")*/,
    -
    9070  },
    -
    9071  // Rule Tonga 2000 only - Mar 19 2:00s 0 -
    -
    9072  {
    -
    9073  -100 /*fromYearTiny (2000)*/,
    -
    9074  -100 /*toYearTiny (2000)*/,
    -
    9075  3 /*inMonth*/,
    -
    9076  0 /*onDayOfWeek*/,
    -
    9077  19 /*onDayOfMonth*/,
    -
    9078  8 /*atTimeCode*/,
    -
    9079  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9080  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9081  0 /*letterIndex ("")*/,
    -
    9082  },
    -
    9083  // Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 -
    -
    9084  {
    -
    9085  -100 /*fromYearTiny (2000)*/,
    -
    9086  -99 /*toYearTiny (2001)*/,
    -
    9087  11 /*inMonth*/,
    -
    9088  7 /*onDayOfWeek*/,
    -
    9089  1 /*onDayOfMonth*/,
    -
    9090  8 /*atTimeCode*/,
    -
    9091  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9092  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9093  0 /*letterIndex ("")*/,
    -
    9094  },
    -
    9095  // Rule Tonga 2001 2002 - Jan lastSun 2:00 0 -
    -
    9096  {
    -
    9097  -99 /*fromYearTiny (2001)*/,
    -
    9098  -98 /*toYearTiny (2002)*/,
    -
    9099  1 /*inMonth*/,
    -
    9100  7 /*onDayOfWeek*/,
    -
    9101  0 /*onDayOfMonth*/,
    -
    9102  8 /*atTimeCode*/,
    -
    9103  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9104  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9105  0 /*letterIndex ("")*/,
    -
    9106  },
    -
    9107  // Rule Tonga 2016 only - Nov Sun>=1 2:00 1:00 -
    -
    9108  {
    -
    9109  -84 /*fromYearTiny (2016)*/,
    -
    9110  -84 /*toYearTiny (2016)*/,
    -
    9111  11 /*inMonth*/,
    -
    9112  7 /*onDayOfWeek*/,
    -
    9113  1 /*onDayOfMonth*/,
    -
    9114  8 /*atTimeCode*/,
    -
    9115  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9116  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9117  0 /*letterIndex ("")*/,
    -
    9118  },
    -
    9119  // Rule Tonga 2017 only - Jan Sun>=15 3:00 0 -
    -
    9120  {
    -
    9121  -83 /*fromYearTiny (2017)*/,
    -
    9122  -83 /*toYearTiny (2017)*/,
    -
    9123  1 /*inMonth*/,
    -
    9124  7 /*onDayOfWeek*/,
    -
    9125  15 /*onDayOfMonth*/,
    -
    9126  12 /*atTimeCode*/,
    -
    9127  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9128  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9129  0 /*letterIndex ("")*/,
    -
    9130  },
    -
    9131 
    -
    9132 };
    -
    9133 
    -
    9134 const extended::Info::ZonePolicy kZonePolicyTonga ACE_TIME_PROGMEM = {
    -
    9135  kZoneRulesTonga /*rules*/,
    -
    9136  7 /*numRules*/,
    -
    9137 };
    -
    9138 
    -
    9139 //---------------------------------------------------------------------------
    -
    9140 // Policy name: Troll
    -
    9141 // Rules: 3
    -
    9142 //---------------------------------------------------------------------------
    -
    9143 
    -
    9144 static const extended::Info::ZoneRule kZoneRulesTroll[] ACE_TIME_PROGMEM = {
    -
    9145  // Anchor: Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00
    -
    9146  {
    -
    9147  -127 /*fromYearTiny (-32767)*/,
    -
    9148  -127 /*toYearTiny (-32767)*/,
    -
    9149  1 /*inMonth*/,
    -
    9150  0 /*onDayOfWeek*/,
    -
    9151  1 /*onDayOfMonth*/,
    -
    9152  0 /*atTimeCode*/,
    -
    9153  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9154  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9155  1 /*letterIndex ("+00")*/,
    -
    9156  },
    -
    9157  // Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02
    -
    9158  {
    -
    9159  -95 /*fromYearTiny (2005)*/,
    -
    9160  126 /*toYearTiny (32766)*/,
    -
    9161  3 /*inMonth*/,
    -
    9162  7 /*onDayOfWeek*/,
    -
    9163  0 /*onDayOfMonth*/,
    -
    9164  4 /*atTimeCode*/,
    -
    9165  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    9166  12 /*deltaCode ((deltaMinutes=120)/15 + 4)*/,
    -
    9167  2 /*letterIndex ("+02")*/,
    -
    9168  },
    -
    9169  // Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00
    -
    9170  {
    -
    9171  -96 /*fromYearTiny (2004)*/,
    -
    9172  126 /*toYearTiny (32766)*/,
    -
    9173  10 /*inMonth*/,
    -
    9174  7 /*onDayOfWeek*/,
    -
    9175  0 /*onDayOfMonth*/,
    -
    9176  4 /*atTimeCode*/,
    -
    9177  32 /*atTimeModifier (kSuffixU + minute=0)*/,
    -
    9178  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9179  1 /*letterIndex ("+00")*/,
    -
    9180  },
    -
    9181 
    -
    9182 };
    -
    9183 
    -
    9184 const extended::Info::ZonePolicy kZonePolicyTroll ACE_TIME_PROGMEM = {
    -
    9185  kZoneRulesTroll /*rules*/,
    -
    9186  3 /*numRules*/,
    -
    9187 };
    -
    9188 
    -
    9189 //---------------------------------------------------------------------------
    -
    9190 // Policy name: Tunisia
    -
    9191 // Rules: 6
    -
    9192 //---------------------------------------------------------------------------
    -
    9193 
    -
    9194 static const extended::Info::ZoneRule kZoneRulesTunisia[] ACE_TIME_PROGMEM = {
    -
    9195  // Anchor: Rule Tunisia 1988 1990 - Sep lastSun 0:00s 0 -
    -
    9196  {
    -
    9197  -127 /*fromYearTiny (-32767)*/,
    -
    9198  -127 /*toYearTiny (-32767)*/,
    -
    9199  1 /*inMonth*/,
    -
    9200  0 /*onDayOfWeek*/,
    -
    9201  1 /*onDayOfMonth*/,
    -
    9202  0 /*atTimeCode*/,
    -
    9203  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9204  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9205  0 /*letterIndex ("")*/,
    -
    9206  },
    -
    9207  // Rule Tunisia 1988 1990 - Sep lastSun 0:00s 0 -
    -
    9208  {
    -
    9209  -112 /*fromYearTiny (1988)*/,
    -
    9210  -110 /*toYearTiny (1990)*/,
    -
    9211  9 /*inMonth*/,
    -
    9212  7 /*onDayOfWeek*/,
    -
    9213  0 /*onDayOfMonth*/,
    -
    9214  0 /*atTimeCode*/,
    -
    9215  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9216  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9217  0 /*letterIndex ("")*/,
    -
    9218  },
    -
    9219  // Rule Tunisia 2005 only - May 1 0:00s 1:00 S
    -
    9220  {
    -
    9221  -95 /*fromYearTiny (2005)*/,
    -
    9222  -95 /*toYearTiny (2005)*/,
    -
    9223  5 /*inMonth*/,
    -
    9224  0 /*onDayOfWeek*/,
    -
    9225  1 /*onDayOfMonth*/,
    -
    9226  0 /*atTimeCode*/,
    -
    9227  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9228  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9229  7 /*letterIndex ("S")*/,
    -
    9230  },
    -
    9231  // Rule Tunisia 2005 only - Sep 30 1:00s 0 -
    -
    9232  {
    -
    9233  -95 /*fromYearTiny (2005)*/,
    -
    9234  -95 /*toYearTiny (2005)*/,
    -
    9235  9 /*inMonth*/,
    -
    9236  0 /*onDayOfWeek*/,
    -
    9237  30 /*onDayOfMonth*/,
    -
    9238  4 /*atTimeCode*/,
    -
    9239  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9240  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9241  0 /*letterIndex ("")*/,
    -
    9242  },
    -
    9243  // Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
    -
    9244  {
    -
    9245  -94 /*fromYearTiny (2006)*/,
    -
    9246  -92 /*toYearTiny (2008)*/,
    -
    9247  3 /*inMonth*/,
    -
    9248  7 /*onDayOfWeek*/,
    -
    9249  0 /*onDayOfMonth*/,
    -
    9250  8 /*atTimeCode*/,
    -
    9251  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9252  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9253  7 /*letterIndex ("S")*/,
    -
    9254  },
    -
    9255  // Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
    -
    9256  {
    -
    9257  -94 /*fromYearTiny (2006)*/,
    -
    9258  -92 /*toYearTiny (2008)*/,
    -
    9259  10 /*inMonth*/,
    -
    9260  7 /*onDayOfWeek*/,
    -
    9261  0 /*onDayOfMonth*/,
    -
    9262  8 /*atTimeCode*/,
    -
    9263  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9264  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9265  0 /*letterIndex ("")*/,
    -
    9266  },
    -
    9267 
    -
    9268 };
    -
    9269 
    -
    9270 const extended::Info::ZonePolicy kZonePolicyTunisia ACE_TIME_PROGMEM = {
    -
    9271  kZoneRulesTunisia /*rules*/,
    -
    9272  6 /*numRules*/,
    -
    9273 };
    -
    9274 
    -
    9275 //---------------------------------------------------------------------------
    -
    9276 // Policy name: Turkey
    -
    9277 // Rules: 4
    -
    9278 //---------------------------------------------------------------------------
    -
    9279 
    -
    9280 static const extended::Info::ZoneRule kZoneRulesTurkey[] ACE_TIME_PROGMEM = {
    -
    9281  // Anchor: Rule Turkey 1986 1995 - Sep lastSun 1:00s 0 -
    -
    9282  {
    -
    9283  -127 /*fromYearTiny (-32767)*/,
    -
    9284  -127 /*toYearTiny (-32767)*/,
    -
    9285  1 /*inMonth*/,
    -
    9286  0 /*onDayOfWeek*/,
    -
    9287  1 /*onDayOfMonth*/,
    -
    9288  0 /*atTimeCode*/,
    -
    9289  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9290  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9291  0 /*letterIndex ("")*/,
    -
    9292  },
    -
    9293  // Rule Turkey 1986 1995 - Sep lastSun 1:00s 0 -
    -
    9294  {
    -
    9295  -114 /*fromYearTiny (1986)*/,
    -
    9296  -105 /*toYearTiny (1995)*/,
    -
    9297  9 /*inMonth*/,
    -
    9298  7 /*onDayOfWeek*/,
    -
    9299  0 /*onDayOfMonth*/,
    -
    9300  4 /*atTimeCode*/,
    -
    9301  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9302  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9303  0 /*letterIndex ("")*/,
    -
    9304  },
    -
    9305  // Rule Turkey 1995 2006 - Mar lastSun 1:00s 1:00 S
    -
    9306  {
    -
    9307  -105 /*fromYearTiny (1995)*/,
    -
    9308  -94 /*toYearTiny (2006)*/,
    -
    9309  3 /*inMonth*/,
    -
    9310  7 /*onDayOfWeek*/,
    -
    9311  0 /*onDayOfMonth*/,
    -
    9312  4 /*atTimeCode*/,
    -
    9313  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9314  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9315  7 /*letterIndex ("S")*/,
    -
    9316  },
    -
    9317  // Rule Turkey 1996 2006 - Oct lastSun 1:00s 0 -
    -
    9318  {
    -
    9319  -104 /*fromYearTiny (1996)*/,
    -
    9320  -94 /*toYearTiny (2006)*/,
    -
    9321  10 /*inMonth*/,
    -
    9322  7 /*onDayOfWeek*/,
    -
    9323  0 /*onDayOfMonth*/,
    -
    9324  4 /*atTimeCode*/,
    -
    9325  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9326  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9327  0 /*letterIndex ("")*/,
    -
    9328  },
    -
    9329 
    -
    9330 };
    -
    9331 
    -
    9332 const extended::Info::ZonePolicy kZonePolicyTurkey ACE_TIME_PROGMEM = {
    -
    9333  kZoneRulesTurkey /*rules*/,
    -
    9334  4 /*numRules*/,
    -
    9335 };
    -
    9336 
    -
    9337 //---------------------------------------------------------------------------
    -
    9338 // Policy name: US
    -
    9339 // Rules: 6
    -
    9340 //---------------------------------------------------------------------------
    -
    9341 
    -
    9342 static const extended::Info::ZoneRule kZoneRulesUS[] ACE_TIME_PROGMEM = {
    -
    9343  // Anchor: Rule US 1967 2006 - Oct lastSun 2:00 0 S
    -
    9344  {
    -
    9345  -127 /*fromYearTiny (-32767)*/,
    -
    9346  -127 /*toYearTiny (-32767)*/,
    -
    9347  1 /*inMonth*/,
    -
    9348  0 /*onDayOfWeek*/,
    -
    9349  1 /*onDayOfMonth*/,
    -
    9350  0 /*atTimeCode*/,
    -
    9351  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9352  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9353  7 /*letterIndex ("S")*/,
    -
    9354  },
    -
    9355  // Rule US 1967 2006 - Oct lastSun 2:00 0 S
    -
    9356  {
    -
    9357  -127 /*fromYearTiny (1967)*/,
    -
    9358  -94 /*toYearTiny (2006)*/,
    -
    9359  10 /*inMonth*/,
    -
    9360  7 /*onDayOfWeek*/,
    -
    9361  0 /*onDayOfMonth*/,
    -
    9362  8 /*atTimeCode*/,
    -
    9363  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9364  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9365  7 /*letterIndex ("S")*/,
    -
    9366  },
    -
    9367  // Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
    -
    9368  {
    -
    9369  -124 /*fromYearTiny (1976)*/,
    -
    9370  -114 /*toYearTiny (1986)*/,
    -
    9371  4 /*inMonth*/,
    -
    9372  7 /*onDayOfWeek*/,
    -
    9373  0 /*onDayOfMonth*/,
    -
    9374  8 /*atTimeCode*/,
    -
    9375  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9376  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9377  5 /*letterIndex ("D")*/,
    -
    9378  },
    -
    9379  // Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
    -
    9380  {
    -
    9381  -113 /*fromYearTiny (1987)*/,
    -
    9382  -94 /*toYearTiny (2006)*/,
    -
    9383  4 /*inMonth*/,
    -
    9384  7 /*onDayOfWeek*/,
    -
    9385  1 /*onDayOfMonth*/,
    -
    9386  8 /*atTimeCode*/,
    -
    9387  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9388  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9389  5 /*letterIndex ("D")*/,
    -
    9390  },
    -
    9391  // Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
    -
    9392  {
    -
    9393  -93 /*fromYearTiny (2007)*/,
    -
    9394  126 /*toYearTiny (32766)*/,
    -
    9395  3 /*inMonth*/,
    -
    9396  7 /*onDayOfWeek*/,
    -
    9397  8 /*onDayOfMonth*/,
    -
    9398  8 /*atTimeCode*/,
    -
    9399  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9400  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9401  5 /*letterIndex ("D")*/,
    -
    9402  },
    -
    9403  // Rule US 2007 max - Nov Sun>=1 2:00 0 S
    -
    9404  {
    -
    9405  -93 /*fromYearTiny (2007)*/,
    -
    9406  126 /*toYearTiny (32766)*/,
    -
    9407  11 /*inMonth*/,
    -
    9408  7 /*onDayOfWeek*/,
    -
    9409  1 /*onDayOfMonth*/,
    -
    9410  8 /*atTimeCode*/,
    -
    9411  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9412  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9413  7 /*letterIndex ("S")*/,
    -
    9414  },
    -
    9415 
    -
    9416 };
    -
    9417 
    -
    9418 const extended::Info::ZonePolicy kZonePolicyUS ACE_TIME_PROGMEM = {
    -
    9419  kZoneRulesUS /*rules*/,
    -
    9420  6 /*numRules*/,
    -
    9421 };
    -
    9422 
    -
    9423 //---------------------------------------------------------------------------
    -
    9424 // Policy name: Uruguay
    -
    9425 // Rules: 7
    -
    9426 //---------------------------------------------------------------------------
    -
    9427 
    -
    9428 static const extended::Info::ZoneRule kZoneRulesUruguay[] ACE_TIME_PROGMEM = {
    -
    9429  // Anchor: Rule Uruguay 1993 only - Feb 28 0:00 0 -
    -
    9430  {
    -
    9431  -127 /*fromYearTiny (-32767)*/,
    -
    9432  -127 /*toYearTiny (-32767)*/,
    -
    9433  1 /*inMonth*/,
    -
    9434  0 /*onDayOfWeek*/,
    -
    9435  1 /*onDayOfMonth*/,
    -
    9436  0 /*atTimeCode*/,
    -
    9437  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9438  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9439  0 /*letterIndex ("")*/,
    -
    9440  },
    -
    9441  // Rule Uruguay 1993 only - Feb 28 0:00 0 -
    -
    9442  {
    -
    9443  -107 /*fromYearTiny (1993)*/,
    -
    9444  -107 /*toYearTiny (1993)*/,
    -
    9445  2 /*inMonth*/,
    -
    9446  0 /*onDayOfWeek*/,
    -
    9447  28 /*onDayOfMonth*/,
    -
    9448  0 /*atTimeCode*/,
    -
    9449  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9450  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9451  0 /*letterIndex ("")*/,
    -
    9452  },
    -
    9453  // Rule Uruguay 2004 only - Sep 19 0:00 1:00 -
    -
    9454  {
    -
    9455  -96 /*fromYearTiny (2004)*/,
    -
    9456  -96 /*toYearTiny (2004)*/,
    -
    9457  9 /*inMonth*/,
    -
    9458  0 /*onDayOfWeek*/,
    -
    9459  19 /*onDayOfMonth*/,
    -
    9460  0 /*atTimeCode*/,
    -
    9461  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9462  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9463  0 /*letterIndex ("")*/,
    -
    9464  },
    -
    9465  // Rule Uruguay 2005 only - Mar 27 2:00 0 -
    -
    9466  {
    -
    9467  -95 /*fromYearTiny (2005)*/,
    -
    9468  -95 /*toYearTiny (2005)*/,
    -
    9469  3 /*inMonth*/,
    -
    9470  0 /*onDayOfWeek*/,
    -
    9471  27 /*onDayOfMonth*/,
    -
    9472  8 /*atTimeCode*/,
    -
    9473  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9474  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9475  0 /*letterIndex ("")*/,
    -
    9476  },
    -
    9477  // Rule Uruguay 2005 only - Oct 9 2:00 1:00 -
    -
    9478  {
    -
    9479  -95 /*fromYearTiny (2005)*/,
    -
    9480  -95 /*toYearTiny (2005)*/,
    -
    9481  10 /*inMonth*/,
    -
    9482  0 /*onDayOfWeek*/,
    -
    9483  9 /*onDayOfMonth*/,
    -
    9484  8 /*atTimeCode*/,
    -
    9485  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9486  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9487  0 /*letterIndex ("")*/,
    -
    9488  },
    -
    9489  // Rule Uruguay 2006 2015 - Mar Sun>=8 2:00 0 -
    -
    9490  {
    -
    9491  -94 /*fromYearTiny (2006)*/,
    -
    9492  -85 /*toYearTiny (2015)*/,
    -
    9493  3 /*inMonth*/,
    -
    9494  7 /*onDayOfWeek*/,
    -
    9495  8 /*onDayOfMonth*/,
    -
    9496  8 /*atTimeCode*/,
    -
    9497  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9498  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9499  0 /*letterIndex ("")*/,
    -
    9500  },
    -
    9501  // Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 -
    -
    9502  {
    -
    9503  -94 /*fromYearTiny (2006)*/,
    -
    9504  -86 /*toYearTiny (2014)*/,
    -
    9505  10 /*inMonth*/,
    -
    9506  7 /*onDayOfWeek*/,
    -
    9507  1 /*onDayOfMonth*/,
    -
    9508  8 /*atTimeCode*/,
    -
    9509  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9510  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9511  0 /*letterIndex ("")*/,
    -
    9512  },
    -
    9513 
    -
    9514 };
    -
    9515 
    -
    9516 const extended::Info::ZonePolicy kZonePolicyUruguay ACE_TIME_PROGMEM = {
    -
    9517  kZoneRulesUruguay /*rules*/,
    -
    9518  7 /*numRules*/,
    -
    9519 };
    -
    9520 
    -
    9521 //---------------------------------------------------------------------------
    -
    9522 // Policy name: Vanuatu
    -
    9523 // Rules: 1
    -
    9524 //---------------------------------------------------------------------------
    -
    9525 
    -
    9526 static const extended::Info::ZoneRule kZoneRulesVanuatu[] ACE_TIME_PROGMEM = {
    -
    9527  // Anchor: Rule Vanuatu 1992 1993 - Jan Sat>=22 24:00 0 -
    -
    9528  {
    -
    9529  -127 /*fromYearTiny (-32767)*/,
    -
    9530  -127 /*toYearTiny (-32767)*/,
    -
    9531  1 /*inMonth*/,
    -
    9532  0 /*onDayOfWeek*/,
    -
    9533  1 /*onDayOfMonth*/,
    -
    9534  0 /*atTimeCode*/,
    -
    9535  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9536  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9537  0 /*letterIndex ("")*/,
    -
    9538  },
    -
    9539 
    -
    9540 };
    -
    9541 
    -
    9542 const extended::Info::ZonePolicy kZonePolicyVanuatu ACE_TIME_PROGMEM = {
    -
    9543  kZoneRulesVanuatu /*rules*/,
    -
    9544  1 /*numRules*/,
    -
    9545 };
    -
    9546 
    -
    9547 //---------------------------------------------------------------------------
    -
    9548 // Policy name: WS
    -
    9549 // Rules: 6
    -
    9550 //---------------------------------------------------------------------------
    -
    9551 
    -
    9552 static const extended::Info::ZoneRule kZoneRulesWS[] ACE_TIME_PROGMEM = {
    -
    9553  // Anchor: Rule WS 2011 only - Apr Sat>=1 4:00 0 -
    -
    9554  {
    -
    9555  -127 /*fromYearTiny (-32767)*/,
    -
    9556  -127 /*toYearTiny (-32767)*/,
    -
    9557  1 /*inMonth*/,
    -
    9558  0 /*onDayOfWeek*/,
    -
    9559  1 /*onDayOfMonth*/,
    -
    9560  0 /*atTimeCode*/,
    -
    9561  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9562  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9563  0 /*letterIndex ("")*/,
    -
    9564  },
    -
    9565  // Rule WS 2010 only - Sep lastSun 0:00 1 -
    -
    9566  {
    -
    9567  -90 /*fromYearTiny (2010)*/,
    -
    9568  -90 /*toYearTiny (2010)*/,
    -
    9569  9 /*inMonth*/,
    -
    9570  7 /*onDayOfWeek*/,
    -
    9571  0 /*onDayOfMonth*/,
    -
    9572  0 /*atTimeCode*/,
    -
    9573  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9574  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9575  0 /*letterIndex ("")*/,
    -
    9576  },
    -
    9577  // Rule WS 2011 only - Apr Sat>=1 4:00 0 -
    -
    9578  {
    -
    9579  -89 /*fromYearTiny (2011)*/,
    -
    9580  -89 /*toYearTiny (2011)*/,
    -
    9581  4 /*inMonth*/,
    -
    9582  6 /*onDayOfWeek*/,
    -
    9583  1 /*onDayOfMonth*/,
    -
    9584  16 /*atTimeCode*/,
    -
    9585  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9586  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9587  0 /*letterIndex ("")*/,
    -
    9588  },
    -
    9589  // Rule WS 2011 only - Sep lastSat 3:00 1 -
    -
    9590  {
    -
    9591  -89 /*fromYearTiny (2011)*/,
    -
    9592  -89 /*toYearTiny (2011)*/,
    -
    9593  9 /*inMonth*/,
    -
    9594  6 /*onDayOfWeek*/,
    -
    9595  0 /*onDayOfMonth*/,
    -
    9596  12 /*atTimeCode*/,
    -
    9597  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9598  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9599  0 /*letterIndex ("")*/,
    -
    9600  },
    -
    9601  // Rule WS 2012 2021 - Apr Sun>=1 4:00 0 -
    -
    9602  {
    -
    9603  -88 /*fromYearTiny (2012)*/,
    -
    9604  -79 /*toYearTiny (2021)*/,
    -
    9605  4 /*inMonth*/,
    -
    9606  7 /*onDayOfWeek*/,
    -
    9607  1 /*onDayOfMonth*/,
    -
    9608  16 /*atTimeCode*/,
    -
    9609  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9610  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9611  0 /*letterIndex ("")*/,
    -
    9612  },
    -
    9613  // Rule WS 2012 2020 - Sep lastSun 3:00 1 -
    -
    9614  {
    -
    9615  -88 /*fromYearTiny (2012)*/,
    -
    9616  -80 /*toYearTiny (2020)*/,
    -
    9617  9 /*inMonth*/,
    -
    9618  7 /*onDayOfWeek*/,
    -
    9619  0 /*onDayOfMonth*/,
    -
    9620  12 /*atTimeCode*/,
    -
    9621  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9622  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9623  0 /*letterIndex ("")*/,
    -
    9624  },
    -
    9625 
    -
    9626 };
    -
    9627 
    -
    9628 const extended::Info::ZonePolicy kZonePolicyWS ACE_TIME_PROGMEM = {
    -
    9629  kZoneRulesWS /*rules*/,
    -
    9630  6 /*numRules*/,
    -
    9631 };
    -
    9632 
    -
    9633 //---------------------------------------------------------------------------
    -
    9634 // Policy name: Winn
    -
    9635 // Rules: 4
    -
    9636 //---------------------------------------------------------------------------
    -
    9637 
    -
    9638 static const extended::Info::ZoneRule kZoneRulesWinn[] ACE_TIME_PROGMEM = {
    -
    9639  // Anchor: Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
    -
    9640  {
    -
    9641  -127 /*fromYearTiny (-32767)*/,
    -
    9642  -127 /*toYearTiny (-32767)*/,
    -
    9643  1 /*inMonth*/,
    -
    9644  0 /*onDayOfWeek*/,
    -
    9645  1 /*onDayOfMonth*/,
    -
    9646  0 /*atTimeCode*/,
    -
    9647  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9648  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9649  7 /*letterIndex ("S")*/,
    -
    9650  },
    -
    9651  // Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D
    -
    9652  {
    -
    9653  -127 /*fromYearTiny (1966)*/,
    -
    9654  -114 /*toYearTiny (1986)*/,
    -
    9655  4 /*inMonth*/,
    -
    9656  7 /*onDayOfWeek*/,
    -
    9657  0 /*onDayOfMonth*/,
    -
    9658  8 /*atTimeCode*/,
    -
    9659  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9660  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9661  5 /*letterIndex ("D")*/,
    -
    9662  },
    -
    9663  // Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
    -
    9664  {
    -
    9665  -127 /*fromYearTiny (1966)*/,
    -
    9666  -95 /*toYearTiny (2005)*/,
    -
    9667  10 /*inMonth*/,
    -
    9668  7 /*onDayOfWeek*/,
    -
    9669  0 /*onDayOfMonth*/,
    -
    9670  8 /*atTimeCode*/,
    -
    9671  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9672  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9673  7 /*letterIndex ("S")*/,
    -
    9674  },
    -
    9675  // Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D
    -
    9676  {
    -
    9677  -113 /*fromYearTiny (1987)*/,
    -
    9678  -95 /*toYearTiny (2005)*/,
    -
    9679  4 /*inMonth*/,
    -
    9680  7 /*onDayOfWeek*/,
    -
    9681  1 /*onDayOfMonth*/,
    -
    9682  8 /*atTimeCode*/,
    -
    9683  16 /*atTimeModifier (kSuffixS + minute=0)*/,
    -
    9684  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9685  5 /*letterIndex ("D")*/,
    -
    9686  },
    -
    9687 
    -
    9688 };
    -
    9689 
    -
    9690 const extended::Info::ZonePolicy kZonePolicyWinn ACE_TIME_PROGMEM = {
    -
    9691  kZoneRulesWinn /*rules*/,
    -
    9692  4 /*numRules*/,
    -
    9693 };
    -
    9694 
    -
    9695 //---------------------------------------------------------------------------
    -
    9696 // Policy name: Zion
    -
    9697 // Rules: 25
    -
    9698 //---------------------------------------------------------------------------
    -
    9699 
    -
    9700 static const extended::Info::ZoneRule kZoneRulesZion[] ACE_TIME_PROGMEM = {
    -
    9701  // Anchor: Rule Zion 1998 only - Sep 6 0:00 0 S
    -
    9702  {
    -
    9703  -127 /*fromYearTiny (-32767)*/,
    -
    9704  -127 /*toYearTiny (-32767)*/,
    -
    9705  1 /*inMonth*/,
    -
    9706  0 /*onDayOfWeek*/,
    -
    9707  1 /*onDayOfMonth*/,
    -
    9708  0 /*atTimeCode*/,
    -
    9709  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9710  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9711  7 /*letterIndex ("S")*/,
    -
    9712  },
    -
    9713  // Rule Zion 1998 only - Sep 6 0:00 0 S
    -
    9714  {
    -
    9715  -102 /*fromYearTiny (1998)*/,
    -
    9716  -102 /*toYearTiny (1998)*/,
    -
    9717  9 /*inMonth*/,
    -
    9718  0 /*onDayOfWeek*/,
    -
    9719  6 /*onDayOfMonth*/,
    -
    9720  0 /*atTimeCode*/,
    -
    9721  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9722  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9723  7 /*letterIndex ("S")*/,
    -
    9724  },
    -
    9725  // Rule Zion 1999 only - Apr 2 2:00 1:00 D
    -
    9726  {
    -
    9727  -101 /*fromYearTiny (1999)*/,
    -
    9728  -101 /*toYearTiny (1999)*/,
    -
    9729  4 /*inMonth*/,
    -
    9730  0 /*onDayOfWeek*/,
    -
    9731  2 /*onDayOfMonth*/,
    -
    9732  8 /*atTimeCode*/,
    -
    9733  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9734  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9735  5 /*letterIndex ("D")*/,
    -
    9736  },
    -
    9737  // Rule Zion 1999 only - Sep 3 2:00 0 S
    -
    9738  {
    -
    9739  -101 /*fromYearTiny (1999)*/,
    -
    9740  -101 /*toYearTiny (1999)*/,
    -
    9741  9 /*inMonth*/,
    -
    9742  0 /*onDayOfWeek*/,
    -
    9743  3 /*onDayOfMonth*/,
    -
    9744  8 /*atTimeCode*/,
    -
    9745  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9746  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9747  7 /*letterIndex ("S")*/,
    -
    9748  },
    -
    9749  // Rule Zion 2000 only - Apr 14 2:00 1:00 D
    -
    9750  {
    -
    9751  -100 /*fromYearTiny (2000)*/,
    -
    9752  -100 /*toYearTiny (2000)*/,
    -
    9753  4 /*inMonth*/,
    -
    9754  0 /*onDayOfWeek*/,
    -
    9755  14 /*onDayOfMonth*/,
    -
    9756  8 /*atTimeCode*/,
    -
    9757  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9758  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9759  5 /*letterIndex ("D")*/,
    -
    9760  },
    -
    9761  // Rule Zion 2000 only - Oct 6 1:00 0 S
    -
    9762  {
    -
    9763  -100 /*fromYearTiny (2000)*/,
    -
    9764  -100 /*toYearTiny (2000)*/,
    -
    9765  10 /*inMonth*/,
    -
    9766  0 /*onDayOfWeek*/,
    -
    9767  6 /*onDayOfMonth*/,
    -
    9768  4 /*atTimeCode*/,
    -
    9769  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9770  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9771  7 /*letterIndex ("S")*/,
    -
    9772  },
    -
    9773  // Rule Zion 2001 only - Apr 9 1:00 1:00 D
    -
    9774  {
    -
    9775  -99 /*fromYearTiny (2001)*/,
    -
    9776  -99 /*toYearTiny (2001)*/,
    -
    9777  4 /*inMonth*/,
    -
    9778  0 /*onDayOfWeek*/,
    -
    9779  9 /*onDayOfMonth*/,
    -
    9780  4 /*atTimeCode*/,
    -
    9781  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9782  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9783  5 /*letterIndex ("D")*/,
    -
    9784  },
    -
    9785  // Rule Zion 2001 only - Sep 24 1:00 0 S
    -
    9786  {
    -
    9787  -99 /*fromYearTiny (2001)*/,
    -
    9788  -99 /*toYearTiny (2001)*/,
    -
    9789  9 /*inMonth*/,
    -
    9790  0 /*onDayOfWeek*/,
    -
    9791  24 /*onDayOfMonth*/,
    -
    9792  4 /*atTimeCode*/,
    -
    9793  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9794  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9795  7 /*letterIndex ("S")*/,
    -
    9796  },
    -
    9797  // Rule Zion 2002 only - Mar 29 1:00 1:00 D
    -
    9798  {
    -
    9799  -98 /*fromYearTiny (2002)*/,
    -
    9800  -98 /*toYearTiny (2002)*/,
    -
    9801  3 /*inMonth*/,
    -
    9802  0 /*onDayOfWeek*/,
    -
    9803  29 /*onDayOfMonth*/,
    -
    9804  4 /*atTimeCode*/,
    -
    9805  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9806  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9807  5 /*letterIndex ("D")*/,
    -
    9808  },
    -
    9809  // Rule Zion 2002 only - Oct 7 1:00 0 S
    -
    9810  {
    -
    9811  -98 /*fromYearTiny (2002)*/,
    -
    9812  -98 /*toYearTiny (2002)*/,
    -
    9813  10 /*inMonth*/,
    -
    9814  0 /*onDayOfWeek*/,
    -
    9815  7 /*onDayOfMonth*/,
    -
    9816  4 /*atTimeCode*/,
    -
    9817  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9818  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9819  7 /*letterIndex ("S")*/,
    -
    9820  },
    -
    9821  // Rule Zion 2003 only - Mar 28 1:00 1:00 D
    -
    9822  {
    -
    9823  -97 /*fromYearTiny (2003)*/,
    -
    9824  -97 /*toYearTiny (2003)*/,
    -
    9825  3 /*inMonth*/,
    -
    9826  0 /*onDayOfWeek*/,
    -
    9827  28 /*onDayOfMonth*/,
    -
    9828  4 /*atTimeCode*/,
    -
    9829  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9830  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9831  5 /*letterIndex ("D")*/,
    -
    9832  },
    -
    9833  // Rule Zion 2003 only - Oct 3 1:00 0 S
    -
    9834  {
    -
    9835  -97 /*fromYearTiny (2003)*/,
    -
    9836  -97 /*toYearTiny (2003)*/,
    -
    9837  10 /*inMonth*/,
    -
    9838  0 /*onDayOfWeek*/,
    -
    9839  3 /*onDayOfMonth*/,
    -
    9840  4 /*atTimeCode*/,
    -
    9841  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9842  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9843  7 /*letterIndex ("S")*/,
    -
    9844  },
    -
    9845  // Rule Zion 2004 only - Apr 7 1:00 1:00 D
    -
    9846  {
    -
    9847  -96 /*fromYearTiny (2004)*/,
    -
    9848  -96 /*toYearTiny (2004)*/,
    -
    9849  4 /*inMonth*/,
    -
    9850  0 /*onDayOfWeek*/,
    -
    9851  7 /*onDayOfMonth*/,
    -
    9852  4 /*atTimeCode*/,
    -
    9853  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9854  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9855  5 /*letterIndex ("D")*/,
    -
    9856  },
    -
    9857  // Rule Zion 2004 only - Sep 22 1:00 0 S
    -
    9858  {
    -
    9859  -96 /*fromYearTiny (2004)*/,
    -
    9860  -96 /*toYearTiny (2004)*/,
    -
    9861  9 /*inMonth*/,
    -
    9862  0 /*onDayOfWeek*/,
    -
    9863  22 /*onDayOfMonth*/,
    -
    9864  4 /*atTimeCode*/,
    -
    9865  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9866  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9867  7 /*letterIndex ("S")*/,
    -
    9868  },
    -
    9869  // Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D
    -
    9870  {
    -
    9871  -95 /*fromYearTiny (2005)*/,
    -
    9872  -88 /*toYearTiny (2012)*/,
    -
    9873  4 /*inMonth*/,
    -
    9874  5 /*onDayOfWeek*/,
    -
    9875  -1 /*onDayOfMonth*/,
    -
    9876  8 /*atTimeCode*/,
    -
    9877  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9878  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9879  5 /*letterIndex ("D")*/,
    -
    9880  },
    -
    9881  // Rule Zion 2005 only - Oct 9 2:00 0 S
    -
    9882  {
    -
    9883  -95 /*fromYearTiny (2005)*/,
    -
    9884  -95 /*toYearTiny (2005)*/,
    -
    9885  10 /*inMonth*/,
    -
    9886  0 /*onDayOfWeek*/,
    -
    9887  9 /*onDayOfMonth*/,
    -
    9888  8 /*atTimeCode*/,
    -
    9889  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9890  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9891  7 /*letterIndex ("S")*/,
    -
    9892  },
    -
    9893  // Rule Zion 2006 only - Oct 1 2:00 0 S
    -
    9894  {
    -
    9895  -94 /*fromYearTiny (2006)*/,
    -
    9896  -94 /*toYearTiny (2006)*/,
    -
    9897  10 /*inMonth*/,
    -
    9898  0 /*onDayOfWeek*/,
    -
    9899  1 /*onDayOfMonth*/,
    -
    9900  8 /*atTimeCode*/,
    -
    9901  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9902  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9903  7 /*letterIndex ("S")*/,
    -
    9904  },
    -
    9905  // Rule Zion 2007 only - Sep 16 2:00 0 S
    -
    9906  {
    -
    9907  -93 /*fromYearTiny (2007)*/,
    -
    9908  -93 /*toYearTiny (2007)*/,
    -
    9909  9 /*inMonth*/,
    -
    9910  0 /*onDayOfWeek*/,
    -
    9911  16 /*onDayOfMonth*/,
    -
    9912  8 /*atTimeCode*/,
    -
    9913  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9914  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9915  7 /*letterIndex ("S")*/,
    -
    9916  },
    -
    9917  // Rule Zion 2008 only - Oct 5 2:00 0 S
    -
    9918  {
    -
    9919  -92 /*fromYearTiny (2008)*/,
    -
    9920  -92 /*toYearTiny (2008)*/,
    -
    9921  10 /*inMonth*/,
    -
    9922  0 /*onDayOfWeek*/,
    -
    9923  5 /*onDayOfMonth*/,
    -
    9924  8 /*atTimeCode*/,
    -
    9925  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9926  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9927  7 /*letterIndex ("S")*/,
    -
    9928  },
    -
    9929  // Rule Zion 2009 only - Sep 27 2:00 0 S
    -
    9930  {
    -
    9931  -91 /*fromYearTiny (2009)*/,
    -
    9932  -91 /*toYearTiny (2009)*/,
    -
    9933  9 /*inMonth*/,
    -
    9934  0 /*onDayOfWeek*/,
    -
    9935  27 /*onDayOfMonth*/,
    -
    9936  8 /*atTimeCode*/,
    -
    9937  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9938  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9939  7 /*letterIndex ("S")*/,
    -
    9940  },
    -
    9941  // Rule Zion 2010 only - Sep 12 2:00 0 S
    -
    9942  {
    -
    9943  -90 /*fromYearTiny (2010)*/,
    -
    9944  -90 /*toYearTiny (2010)*/,
    -
    9945  9 /*inMonth*/,
    -
    9946  0 /*onDayOfWeek*/,
    -
    9947  12 /*onDayOfMonth*/,
    -
    9948  8 /*atTimeCode*/,
    -
    9949  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9950  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9951  7 /*letterIndex ("S")*/,
    -
    9952  },
    -
    9953  // Rule Zion 2011 only - Oct 2 2:00 0 S
    -
    9954  {
    -
    9955  -89 /*fromYearTiny (2011)*/,
    -
    9956  -89 /*toYearTiny (2011)*/,
    -
    9957  10 /*inMonth*/,
    -
    9958  0 /*onDayOfWeek*/,
    -
    9959  2 /*onDayOfMonth*/,
    -
    9960  8 /*atTimeCode*/,
    -
    9961  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9962  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9963  7 /*letterIndex ("S")*/,
    -
    9964  },
    -
    9965  // Rule Zion 2012 only - Sep 23 2:00 0 S
    -
    9966  {
    -
    9967  -88 /*fromYearTiny (2012)*/,
    -
    9968  -88 /*toYearTiny (2012)*/,
    -
    9969  9 /*inMonth*/,
    -
    9970  0 /*onDayOfWeek*/,
    -
    9971  23 /*onDayOfMonth*/,
    -
    9972  8 /*atTimeCode*/,
    -
    9973  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9974  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9975  7 /*letterIndex ("S")*/,
    -
    9976  },
    -
    9977  // Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D
    -
    9978  {
    -
    9979  -87 /*fromYearTiny (2013)*/,
    -
    9980  126 /*toYearTiny (32766)*/,
    -
    9981  3 /*inMonth*/,
    -
    9982  5 /*onDayOfWeek*/,
    -
    9983  23 /*onDayOfMonth*/,
    -
    9984  8 /*atTimeCode*/,
    -
    9985  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9986  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    -
    9987  5 /*letterIndex ("D")*/,
    -
    9988  },
    -
    9989  // Rule Zion 2013 max - Oct lastSun 2:00 0 S
    -
    9990  {
    -
    9991  -87 /*fromYearTiny (2013)*/,
    -
    9992  126 /*toYearTiny (32766)*/,
    -
    9993  10 /*inMonth*/,
    -
    9994  7 /*onDayOfWeek*/,
    -
    9995  0 /*onDayOfMonth*/,
    -
    9996  8 /*atTimeCode*/,
    -
    9997  0 /*atTimeModifier (kSuffixW + minute=0)*/,
    -
    9998  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    -
    9999  7 /*letterIndex ("S")*/,
    -
    10000  },
    -
    10001 
    -
    10002 };
    -
    10003 
    -
    10004 const extended::Info::ZonePolicy kZonePolicyZion ACE_TIME_PROGMEM = {
    -
    10005  kZoneRulesZion /*rules*/,
    -
    10006  25 /*numRules*/,
    -
    10007 };
    -
    10008 
    -
    10009 
    -
    10010 
    -
    10011 }
    -
    10012 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/zonedbx_2zone__policies_8h_source.html b/docs/html/zonedbx_2zone__policies_8h_source.html deleted file mode 100644 index ec98e7603..000000000 --- a/docs/html/zonedbx_2zone__policies_8h_source.html +++ /dev/null @@ -1,342 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/zone_policies.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_policies.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace zonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2087]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2090]
    -
    40 // Max Buffer Size: 7
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 647
    -
    45 // Policies: 82
    -
    46 // Rules: 731
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 6579
    -
    51 // Policies: 246
    -
    52 // Eras: 7117
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 231
    -
    57 // Letters: 46
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 29000
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 8772
    -
    65 // Policies: 656
    -
    66 // Eras: 10352
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 231
    -
    71 // Letters: 64
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 42653
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #ifndef ACE_TIME_ZONEDBX_ZONE_POLICIES_H
    -
    79 #define ACE_TIME_ZONEDBX_ZONE_POLICIES_H
    -
    80 
    -
    81 #include <zoneinfo/infos.h>
    -
    82 
    -
    83 namespace ace_time {
    -
    84 namespace zonedbx {
    -
    85 
    -
    86 //---------------------------------------------------------------------------
    -
    87 // Supported policies: 82
    -
    88 //---------------------------------------------------------------------------
    -
    89 
    -
    90 extern const extended::Info::ZonePolicy kZonePolicyAN;
    -
    91 extern const extended::Info::ZonePolicy kZonePolicyAQ;
    -
    92 extern const extended::Info::ZonePolicy kZonePolicyAS;
    -
    93 extern const extended::Info::ZonePolicy kZonePolicyAT;
    -
    94 extern const extended::Info::ZonePolicy kZonePolicyAV;
    -
    95 extern const extended::Info::ZonePolicy kZonePolicyAW;
    -
    96 extern const extended::Info::ZonePolicy kZonePolicyArg;
    -
    97 extern const extended::Info::ZonePolicy kZonePolicyArmenia;
    -
    98 extern const extended::Info::ZonePolicy kZonePolicyAus;
    -
    99 extern const extended::Info::ZonePolicy kZonePolicyAzer;
    -
    100 extern const extended::Info::ZonePolicy kZonePolicyBarb;
    -
    101 extern const extended::Info::ZonePolicy kZonePolicyBelize;
    -
    102 extern const extended::Info::ZonePolicy kZonePolicyBrazil;
    -
    103 extern const extended::Info::ZonePolicy kZonePolicyCO;
    -
    104 extern const extended::Info::ZonePolicy kZonePolicyCR;
    -
    105 extern const extended::Info::ZonePolicy kZonePolicyCanada;
    -
    106 extern const extended::Info::ZonePolicy kZonePolicyChatham;
    -
    107 extern const extended::Info::ZonePolicy kZonePolicyChile;
    -
    108 extern const extended::Info::ZonePolicy kZonePolicyCook;
    -
    109 extern const extended::Info::ZonePolicy kZonePolicyCuba;
    -
    110 extern const extended::Info::ZonePolicy kZonePolicyDhaka;
    -
    111 extern const extended::Info::ZonePolicy kZonePolicyE_EurAsia;
    -
    112 extern const extended::Info::ZonePolicy kZonePolicyEU;
    -
    113 extern const extended::Info::ZonePolicy kZonePolicyEUAsia;
    -
    114 extern const extended::Info::ZonePolicy kZonePolicyEcuador;
    -
    115 extern const extended::Info::ZonePolicy kZonePolicyEgypt;
    -
    116 extern const extended::Info::ZonePolicy kZonePolicyEire;
    -
    117 extern const extended::Info::ZonePolicy kZonePolicyFalk;
    -
    118 extern const extended::Info::ZonePolicy kZonePolicyFiji;
    -
    119 extern const extended::Info::ZonePolicy kZonePolicyGuam;
    -
    120 extern const extended::Info::ZonePolicy kZonePolicyGuat;
    -
    121 extern const extended::Info::ZonePolicy kZonePolicyHK;
    -
    122 extern const extended::Info::ZonePolicy kZonePolicyHaiti;
    -
    123 extern const extended::Info::ZonePolicy kZonePolicyHoliday;
    -
    124 extern const extended::Info::ZonePolicy kZonePolicyHond;
    -
    125 extern const extended::Info::ZonePolicy kZonePolicyIran;
    -
    126 extern const extended::Info::ZonePolicy kZonePolicyIraq;
    -
    127 extern const extended::Info::ZonePolicy kZonePolicyJapan;
    -
    128 extern const extended::Info::ZonePolicy kZonePolicyJordan;
    -
    129 extern const extended::Info::ZonePolicy kZonePolicyKyrgyz;
    -
    130 extern const extended::Info::ZonePolicy kZonePolicyLH;
    -
    131 extern const extended::Info::ZonePolicy kZonePolicyLebanon;
    -
    132 extern const extended::Info::ZonePolicy kZonePolicyLibya;
    -
    133 extern const extended::Info::ZonePolicy kZonePolicyMacau;
    -
    134 extern const extended::Info::ZonePolicy kZonePolicyMauritius;
    -
    135 extern const extended::Info::ZonePolicy kZonePolicyMexico;
    -
    136 extern const extended::Info::ZonePolicy kZonePolicyMoldova;
    -
    137 extern const extended::Info::ZonePolicy kZonePolicyMoncton;
    -
    138 extern const extended::Info::ZonePolicy kZonePolicyMongol;
    -
    139 extern const extended::Info::ZonePolicy kZonePolicyMorocco;
    -
    140 extern const extended::Info::ZonePolicy kZonePolicyNC;
    -
    141 extern const extended::Info::ZonePolicy kZonePolicyNT_YK;
    -
    142 extern const extended::Info::ZonePolicy kZonePolicyNZ;
    -
    143 extern const extended::Info::ZonePolicy kZonePolicyNamibia;
    -
    144 extern const extended::Info::ZonePolicy kZonePolicyNic;
    -
    145 extern const extended::Info::ZonePolicy kZonePolicyPRC;
    -
    146 extern const extended::Info::ZonePolicy kZonePolicyPakistan;
    -
    147 extern const extended::Info::ZonePolicy kZonePolicyPalestine;
    -
    148 extern const extended::Info::ZonePolicy kZonePolicyPara;
    -
    149 extern const extended::Info::ZonePolicy kZonePolicyPeru;
    -
    150 extern const extended::Info::ZonePolicy kZonePolicyPhil;
    -
    151 extern const extended::Info::ZonePolicy kZonePolicyROK;
    -
    152 extern const extended::Info::ZonePolicy kZonePolicyRussia;
    -
    153 extern const extended::Info::ZonePolicy kZonePolicyRussiaAsia;
    -
    154 extern const extended::Info::ZonePolicy kZonePolicySA;
    -
    155 extern const extended::Info::ZonePolicy kZonePolicySalv;
    -
    156 extern const extended::Info::ZonePolicy kZonePolicySanLuis;
    -
    157 extern const extended::Info::ZonePolicy kZonePolicyStJohns;
    -
    158 extern const extended::Info::ZonePolicy kZonePolicySudan;
    -
    159 extern const extended::Info::ZonePolicy kZonePolicySyria;
    -
    160 extern const extended::Info::ZonePolicy kZonePolicyTaiwan;
    -
    161 extern const extended::Info::ZonePolicy kZonePolicyThule;
    -
    162 extern const extended::Info::ZonePolicy kZonePolicyTonga;
    -
    163 extern const extended::Info::ZonePolicy kZonePolicyTroll;
    -
    164 extern const extended::Info::ZonePolicy kZonePolicyTunisia;
    -
    165 extern const extended::Info::ZonePolicy kZonePolicyTurkey;
    -
    166 extern const extended::Info::ZonePolicy kZonePolicyUS;
    -
    167 extern const extended::Info::ZonePolicy kZonePolicyUruguay;
    -
    168 extern const extended::Info::ZonePolicy kZonePolicyVanuatu;
    -
    169 extern const extended::Info::ZonePolicy kZonePolicyWS;
    -
    170 extern const extended::Info::ZonePolicy kZonePolicyWinn;
    -
    171 extern const extended::Info::ZonePolicy kZonePolicyZion;
    -
    172 
    -
    173 
    -
    174 //---------------------------------------------------------------------------
    -
    175 // Unsupported policies: 52
    -
    176 //---------------------------------------------------------------------------
    -
    177 
    -
    178 // Albania {unused}
    -
    179 // Algeria {unused}
    -
    180 // Austria {unused}
    -
    181 // Belgium {unused}
    -
    182 // Bermuda {unused}
    -
    183 // Bulg {unused}
    -
    184 // C-Eur {unused}
    -
    185 // CA {unused}
    -
    186 // Chicago {unused}
    -
    187 // Cyprus {unused}
    -
    188 // Czech {unused}
    -
    189 // DR {unused}
    -
    190 // Denver {unused}
    -
    191 // Detroit {unused}
    -
    192 // E-Eur {unused}
    -
    193 // Edm {unused}
    -
    194 // EgyptAsia {unused}
    -
    195 // Finland {unused}
    -
    196 // France {unused}
    -
    197 // GB-Eire {unused}
    -
    198 // Germany {unused}
    -
    199 // Greece {unused}
    -
    200 // Halifax {unused}
    -
    201 // Hungary {unused}
    -
    202 // Indianapolis {unused}
    -
    203 // Italy {unused}
    -
    204 // Latvia {unused}
    -
    205 // Louisville {unused}
    -
    206 // Malta {unused}
    -
    207 // Marengo {unused}
    -
    208 // Menominee {unused}
    -
    209 // NBorneo {unused}
    -
    210 // NYC {unused}
    -
    211 // Perry {unused}
    -
    212 // Pike {unused}
    -
    213 // Poland {unused}
    -
    214 // Port {unused}
    -
    215 // Pulaski {unused}
    -
    216 // Regina {unused}
    -
    217 // Romania {unused}
    -
    218 // Shang {unused}
    -
    219 // SovietZone {unused}
    -
    220 // Spain {unused}
    -
    221 // SpainAfrica {unused}
    -
    222 // Starke {unused}
    -
    223 // Swift {unused}
    -
    224 // Swiss {unused}
    -
    225 // Toronto {unused}
    -
    226 // Vanc {unused}
    -
    227 // Vincennes {unused}
    -
    228 // W-Eur {unused}
    -
    229 // Yukon {unused}
    -
    230 
    -
    231 
    -
    232 //---------------------------------------------------------------------------
    -
    233 // Notable zone policies: 9
    -
    234 //---------------------------------------------------------------------------
    -
    235 
    -
    236 // Belize {LETTER 'CST' not single character}
    -
    237 // Eire {SAVE '-1:00' is a negative DST}
    -
    238 // LH {SAVE '0:30' different from 1:00}
    -
    239 // Moncton {AT '0:01' not multiple of :15 min}
    -
    240 // Morocco {SAVE '-1:00' is a negative DST}
    -
    241 // Namibia {
    -
    242 // LETTER 'CAT' not single character,
    -
    243 // LETTER 'WAT' not single character,
    -
    244 // SAVE '-1:00' is a negative DST,
    -
    245 // }
    -
    246 // Palestine {AT '0:01' not multiple of :15 min}
    -
    247 // StJohns {
    -
    248 // AT '0:01' not multiple of :15 min,
    -
    249 // LETTER 'DD' not single character,
    -
    250 // SAVE '2:00' different from 1:00,
    -
    251 // }
    -
    252 // Troll {
    -
    253 // LETTER '+00' not single character,
    -
    254 // LETTER '+02' not single character,
    -
    255 // SAVE '2:00' different from 1:00,
    -
    256 // }
    -
    257 
    -
    258 
    -
    259 }
    -
    260 }
    -
    261 
    -
    262 #endif
    -
    - - - - diff --git a/docs/html/zonedbx_2zone__registry_8cpp_source.html b/docs/html/zonedbx_2zone__registry_8cpp_source.html deleted file mode 100644 index e4c6595ff..000000000 --- a/docs/html/zonedbx_2zone__registry_8cpp_source.html +++ /dev/null @@ -1,1118 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/zone_registry.cpp Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.cpp
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace zonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2087]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2090]
    -
    40 // Max Buffer Size: 7
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 647
    -
    45 // Policies: 82
    -
    46 // Rules: 731
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 6579
    -
    51 // Policies: 246
    -
    52 // Eras: 7117
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 231
    -
    57 // Letters: 46
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 29000
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 8772
    -
    65 // Policies: 656
    -
    66 // Eras: 10352
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 231
    -
    71 // Letters: 64
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 42653
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #include <zoneinfo/compat.h>
    -
    79 #include "zone_infos.h"
    -
    80 #include "zone_registry.h"
    -
    81 
    -
    82 namespace ace_time {
    -
    83 namespace zonedbx {
    -
    84 
    -
    85 //---------------------------------------------------------------------------
    -
    86 // Zone Info registry. Sorted by zoneId.
    -
    87 //---------------------------------------------------------------------------
    -
    88 const extended::Info::ZoneInfo* const kZoneRegistry[340] ACE_TIME_PROGMEM = {
    -
    89  &kZoneAmerica_St_Johns, // 0x04b14e6e, America/St_Johns
    -
    90  &kZoneAmerica_North_Dakota_New_Salem, // 0x04f9958e, America/North_Dakota/New_Salem
    -
    91  &kZoneAsia_Jakarta, // 0x0506ab50, Asia/Jakarta
    -
    92  &kZoneAmerica_Mazatlan, // 0x0532189e, America/Mazatlan
    -
    93  &kZonePacific_Fakaofo, // 0x06532bba, Pacific/Fakaofo
    -
    94  &kZoneAmerica_Hermosillo, // 0x065d21c4, America/Hermosillo
    -
    95  &kZoneAsia_Tbilisi, // 0x0903e442, Asia/Tbilisi
    -
    96  &kZoneAmerica_Indiana_Tell_City, // 0x09263612, America/Indiana/Tell_City
    -
    97  &kZoneAmerica_Boa_Vista, // 0x0a7b7efe, America/Boa_Vista
    -
    98  &kZoneAsia_Colombo, // 0x0af0e91d, Asia/Colombo
    -
    99  &kZoneAmerica_Guatemala, // 0x0c8259f7, America/Guatemala
    -
    100  &kZoneAfrica_Monrovia, // 0x0ce90385, Africa/Monrovia
    -
    101  &kZoneAntarctica_Rothera, // 0x0e86d203, Antarctica/Rothera
    -
    102  &kZoneAustralia_Melbourne, // 0x0fe559a3, Australia/Melbourne
    -
    103  &kZoneAmerica_Sao_Paulo, // 0x1063bfc9, America/Sao_Paulo
    -
    104  &kZoneAmerica_Indiana_Vevay, // 0x10aca054, America/Indiana/Vevay
    -
    105  &kZoneAmerica_Scoresbysund, // 0x123f8d2a, America/Scoresbysund
    -
    106  &kZoneAsia_Samarkand, // 0x13ae5104, Asia/Samarkand
    -
    107  &kZoneAsia_Amman, // 0x148d21bc, Asia/Amman
    -
    108  &kZoneAsia_Aqtau, // 0x148f710e, Asia/Aqtau
    -
    109  &kZoneAsia_Chita, // 0x14ae863b, Asia/Chita
    -
    110  &kZoneAsia_Dhaka, // 0x14c07b8b, Asia/Dhaka
    -
    111  &kZoneAsia_Dubai, // 0x14c79f77, Asia/Dubai
    -
    112  &kZoneAmerica_Bahia_Banderas, // 0x14f6329a, America/Bahia_Banderas
    -
    113  &kZoneAsia_Kabul, // 0x153b5601, Asia/Kabul
    -
    114  &kZoneAsia_Macau, // 0x155f88b9, Asia/Macau
    -
    115  &kZoneAsia_Qatar, // 0x15a8330b, Asia/Qatar
    -
    116  &kZoneAsia_Seoul, // 0x15ce82da, Asia/Seoul
    -
    117  &kZoneAsia_Tokyo, // 0x15e606a8, Asia/Tokyo
    -
    118  &kZoneAsia_Tomsk, // 0x15e60e60, Asia/Tomsk
    -
    119  &kZoneAsia_Thimphu, // 0x170380d1, Asia/Thimphu
    -
    120  &kZoneAmerica_Guayaquil, // 0x17e64958, America/Guayaquil
    -
    121  &kZoneAmerica_Kentucky_Louisville, // 0x1a21024b, America/Kentucky/Louisville
    -
    122  &kZoneAsia_Pontianak, // 0x1a76c057, Asia/Pontianak
    -
    123  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    124  &kZoneAsia_Baku, // 0x1fa788b5, Asia/Baku
    -
    125  &kZoneAsia_Dili, // 0x1fa8c394, Asia/Dili
    -
    126  &kZoneAsia_Gaza, // 0x1faa4875, Asia/Gaza
    -
    127  &kZoneAsia_Hovd, // 0x1fab0fe3, Asia/Hovd
    -
    128  &kZoneAsia_Omsk, // 0x1faeddac, Asia/Omsk
    -
    129  &kZoneAsia_Oral, // 0x1faef0a0, Asia/Oral
    -
    130  &kZoneAsia_Ho_Chi_Minh, // 0x20f2d127, Asia/Ho_Chi_Minh
    -
    131  &kZoneAsia_Damascus, // 0x20fbb063, Asia/Damascus
    -
    132  &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia
    -
    133  &kZonePacific_Fiji, // 0x23383ba5, Pacific/Fiji
    -
    134  &kZonePacific_Guam, // 0x2338f9ed, Pacific/Guam
    -
    135  &kZonePacific_Niue, // 0x233ca014, Pacific/Niue
    -
    136  &kZoneAustralia_Adelaide, // 0x2428e8a3, Australia/Adelaide
    -
    137  &kZonePacific_Auckland, // 0x25062f86, Pacific/Auckland
    -
    138  &kZonePacific_Tongatapu, // 0x262ca836, Pacific/Tongatapu
    -
    139  &kZoneAmerica_Monterrey, // 0x269a1deb, America/Monterrey
    -
    140  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    141  &kZoneAsia_Famagusta, // 0x289b4f8b, Asia/Famagusta
    -
    142  &kZoneAmerica_Indiana_Vincennes, // 0x28a0b212, America/Indiana/Vincennes
    -
    143  &kZoneAmerica_Indiana_Indianapolis, // 0x28a669a4, America/Indiana/Indianapolis
    -
    144  &kZoneAsia_Vladivostok, // 0x29de34a8, Asia/Vladivostok
    -
    145  &kZoneAmerica_Fortaleza, // 0x2ad018ee, America/Fortaleza
    -
    146  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    147  &kZoneAmerica_Iqaluit, // 0x2de310bf, America/Iqaluit
    -
    148  &kZonePacific_Chatham, // 0x2f0de999, Pacific/Chatham
    -
    149  &kZoneAmerica_Indiana_Marengo, // 0x2feeee72, America/Indiana/Marengo
    -
    150  &kZoneEurope_Tallinn, // 0x30c4e096, Europe/Tallinn
    -
    151  &kZoneAsia_Ulaanbaatar, // 0x30f0cc4e, Asia/Ulaanbaatar
    -
    152  &kZoneAmerica_Argentina_Ushuaia, // 0x320dcdde, America/Argentina/Ushuaia
    -
    153  &kZoneAustralia_Hobart, // 0x32bf951a, Australia/Hobart
    -
    154  &kZoneAsia_Dushanbe, // 0x32fc5c3c, Asia/Dushanbe
    -
    155  &kZoneAtlantic_South_Georgia, // 0x33013174, Atlantic/South_Georgia
    -
    156  &kZoneAmerica_Phoenix, // 0x34b5af01, America/Phoenix
    -
    157  &kZoneAntarctica_Mawson, // 0x399cd863, Antarctica/Mawson
    -
    158  &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas
    -
    159  &kZoneAmerica_Cayenne, // 0x3c617269, America/Cayenne
    -
    160  &kZoneAtlantic_Bermuda, // 0x3d4bb1c4, Atlantic/Bermuda
    -
    161  &kZoneAmerica_Managua, // 0x3d5e7600, America/Managua
    -
    162  &kZoneAmerica_Argentina_San_Juan, // 0x3e1009bd, America/Argentina/San_Juan
    -
    163  &kZoneAmerica_Argentina_San_Luis, // 0x3e11238c, America/Argentina/San_Luis
    -
    164  &kZoneEurope_Volgograd, // 0x3ed0f389, Europe/Volgograd
    -
    165  &kZoneAmerica_Fort_Nelson, // 0x3f437e0f, America/Fort_Nelson
    -
    166  &kZoneEtc_GMT_PLUS_10, // 0x3f8f1cc4, Etc/GMT+10
    -
    167  &kZoneEtc_GMT_PLUS_11, // 0x3f8f1cc5, Etc/GMT+11
    -
    168  &kZoneEtc_GMT_PLUS_12, // 0x3f8f1cc6, Etc/GMT+12
    -
    169  &kZoneEtc_GMT_10, // 0x3f8f2546, Etc/GMT-10
    -
    170  &kZoneEtc_GMT_11, // 0x3f8f2547, Etc/GMT-11
    -
    171  &kZoneEtc_GMT_12, // 0x3f8f2548, Etc/GMT-12
    -
    172  &kZoneEtc_GMT_13, // 0x3f8f2549, Etc/GMT-13
    -
    173  &kZoneEtc_GMT_14, // 0x3f8f254a, Etc/GMT-14
    -
    174  &kZoneAntarctica_Palmer, // 0x40962f4f, Antarctica/Palmer
    -
    175  &kZoneEurope_Athens, // 0x4318fa27, Europe/Athens
    -
    176  &kZoneAmerica_Indiana_Winamac, // 0x4413fa69, America/Indiana/Winamac
    -
    177  &kZoneEurope_Berlin, // 0x44644c20, Europe/Berlin
    -
    178  &kZoneIndian_Chagos, // 0x456f7c3c, Indian/Chagos
    -
    179  &kZoneAsia_Ust_Nera, // 0x4785f921, Asia/Ust-Nera
    -
    180  &kZoneEurope_Dublin, // 0x4a275f62, Europe/Dublin
    -
    181  &kZoneAsia_Nicosia, // 0x4b0fcf78, Asia/Nicosia
    -
    182  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    183  &kZoneAustralia_Sydney, // 0x4d1e9776, Australia/Sydney
    -
    184  &kZoneAntarctica_Vostok, // 0x4f966fd4, Antarctica/Vostok
    -
    185  &kZoneAustralia_Brisbane, // 0x4fedc9c0, Australia/Brisbane
    -
    186  &kZoneAmerica_Asuncion, // 0x50ec79a6, America/Asuncion
    -
    187  &kZoneAsia_Karachi, // 0x527f5245, Asia/Karachi
    -
    188  &kZonePacific_Gambier, // 0x53720c3a, Pacific/Gambier
    -
    189  &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse
    -
    190  &kZoneAmerica_Martinique, // 0x551e84c5, America/Martinique
    -
    191  &kZoneAmerica_Jamaica, // 0x565dad6c, America/Jamaica
    -
    192  &kZoneAsia_Hong_Kong, // 0x577f28ac, Asia/Hong_Kong
    -
    193  &kZonePacific_Marquesas, // 0x57ca7135, Pacific/Marquesas
    -
    194  &kZoneAmerica_Miquelon, // 0x59674330, America/Miquelon
    -
    195  &kZoneAmerica_Anchorage, // 0x5a79260e, America/Anchorage
    -
    196  &kZoneAsia_Jerusalem, // 0x5becd23a, Asia/Jerusalem
    -
    197  &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon
    -
    198  &kZoneAtlantic_Cape_Verde, // 0x5c5e1772, Atlantic/Cape_Verde
    -
    199  &kZoneEurope_London, // 0x5c6a84ae, Europe/London
    -
    200  &kZoneEurope_Madrid, // 0x5dbd1535, Europe/Madrid
    -
    201  &kZoneAmerica_Moncton, // 0x5e07fe24, America/Moncton
    -
    202  &kZonePacific_Bougainville, // 0x5e10f7a4, Pacific/Bougainville
    -
    203  &kZoneEurope_Moscow, // 0x5ec266fc, Europe/Moscow
    -
    204  &kZoneAmerica_Argentina_Jujuy, // 0x5f2f46c5, America/Argentina/Jujuy
    -
    205  &kZoneAmerica_Argentina_Salta, // 0x5fc73403, America/Argentina/Salta
    -
    206  &kZonePacific_Pago_Pago, // 0x603aebd0, Pacific/Pago_Pago
    -
    207  &kZoneAfrica_Sao_Tome, // 0x61b319d1, Africa/Sao_Tome
    -
    208  &kZoneAmerica_Costa_Rica, // 0x63ff66be, America/Costa_Rica
    -
    209  &kZoneAsia_Qostanay, // 0x654fe522, Asia/Qostanay
    -
    210  &kZoneAmerica_Indiana_Knox, // 0x6554adc9, America/Indiana/Knox
    -
    211  &kZoneEurope_Prague, // 0x65ee5d48, Europe/Prague
    -
    212  &kZoneAmerica_Puerto_Rico, // 0x6752ca31, America/Puerto_Rico
    -
    213  &kZoneAsia_Novokuznetsk, // 0x69264f93, Asia/Novokuznetsk
    -
    214  &kZoneAmerica_Tijuana, // 0x6aa1df72, America/Tijuana
    -
    215  &kZoneAsia_Makassar, // 0x6aa21c85, Asia/Makassar
    -
    216  &kZoneEurope_Helsinki, // 0x6ab2975b, Europe/Helsinki
    -
    217  &kZoneAmerica_Porto_Velho, // 0x6b1aac77, America/Porto_Velho
    -
    218  &kZoneEurope_Samara, // 0x6bc0b139, Europe/Samara
    -
    219  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    220  &kZoneAmerica_Dawson_Creek, // 0x6cf24e5b, America/Dawson_Creek
    -
    221  &kZoneAmerica_Grand_Turk, // 0x6e216197, America/Grand_Turk
    -
    222  &kZoneEurope_Tirane, // 0x6ea95b47, Europe/Tirane
    -
    223  &kZoneAmerica_Araguaina, // 0x6f9a3aef, America/Araguaina
    -
    224  &kZoneAsia_Qyzylorda, // 0x71282e81, Asia/Qyzylorda
    -
    225  &kZoneAsia_Kolkata, // 0x72c06cd9, Asia/Kolkata
    -
    226  &kZoneAmerica_Ciudad_Juarez, // 0x7347fc60, America/Ciudad_Juarez
    -
    227  &kZoneEurope_Vienna, // 0x734cc2e5, Europe/Vienna
    -
    228  &kZoneAsia_Kamchatka, // 0x73baf9d7, Asia/Kamchatka
    -
    229  &kZoneAmerica_Santarem, // 0x740caec1, America/Santarem
    -
    230  &kZoneAmerica_Santiago, // 0x7410c9bc, America/Santiago
    -
    231  &kZoneEurope_Warsaw, // 0x75185c19, Europe/Warsaw
    -
    232  &kZoneAmerica_El_Salvador, // 0x752ad652, America/El_Salvador
    -
    233  &kZoneAfrica_Bissau, // 0x75564141, Africa/Bissau
    -
    234  &kZoneAmerica_Santo_Domingo, // 0x75a0d177, America/Santo_Domingo
    -
    235  &kZoneAfrica_Cairo, // 0x77f8e228, Africa/Cairo
    -
    236  &kZoneAfrica_Ceuta, // 0x77fb46ec, Africa/Ceuta
    -
    237  &kZoneAfrica_Lagos, // 0x789bb5d0, Africa/Lagos
    -
    238  &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek
    -
    239  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    240  &kZoneAfrica_Tunis, // 0x79378e6d, Africa/Tunis
    -
    241  &kZoneIndian_Mauritius, // 0x7b09c02a, Indian/Mauritius
    -
    242  &kZoneAtlantic_Stanley, // 0x7bb3e1c4, Atlantic/Stanley
    -
    243  &kZoneEurope_Zurich, // 0x7d8195b9, Europe/Zurich
    -
    244  &kZoneAsia_Kuching, // 0x801b003b, Asia/Kuching
    -
    245  &kZoneAtlantic_Madeira, // 0x81b5c037, Atlantic/Madeira
    -
    246  &kZonePacific_Kiritimati, // 0x8305073a, Pacific/Kiritimati
    -
    247  &kZoneAmerica_Metlakatla, // 0x84de2686, America/Metlakatla
    -
    248  &kZoneAsia_Yakutsk, // 0x87bb3a9e, Asia/Yakutsk
    -
    249  &kZoneAmerica_Chihuahua, // 0x8827d776, America/Chihuahua
    -
    250  &kZonePacific_Pitcairn, // 0x8837d8bd, Pacific/Pitcairn
    -
    251  &kZonePacific_Efate, // 0x8a2bce28, Pacific/Efate
    -
    252  &kZonePacific_Nauru, // 0x8acc41ae, Pacific/Nauru
    -
    253  &kZonePacific_Palau, // 0x8af04a36, Pacific/Palau
    -
    254  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    255  &kZoneAustralia_Eucla, // 0x8cf99e44, Australia/Eucla
    -
    256  &kZoneAmerica_Argentina_Catamarca, // 0x8d40986b, America/Argentina/Catamarca
    -
    257  &kZoneAustralia_Perth, // 0x8db8269d, Australia/Perth
    -
    258  &kZonePacific_Kwajalein, // 0x8e216759, Pacific/Kwajalein
    -
    259  &kZoneAmerica_Port_au_Prince, // 0x8e4a7bdc, America/Port-au-Prince
    -
    260  &kZoneAfrica_Maputo, // 0x8e6ca1f0, Africa/Maputo
    -
    261  &kZonePacific_Norfolk, // 0x8f4eb4be, Pacific/Norfolk
    -
    262  &kZoneAsia_Yerevan, // 0x9185c8cc, Asia/Yerevan
    -
    263  &kZoneAmerica_Detroit, // 0x925cfbc1, America/Detroit
    -
    264  &kZoneAntarctica_Macquarie, // 0x92f47626, Antarctica/Macquarie
    -
    265  &kZoneAmerica_Belize, // 0x93256c81, America/Belize
    -
    266  &kZoneAmerica_Bogota, // 0x93d7bc62, America/Bogota
    -
    267  &kZoneAsia_Pyongyang, // 0x93ed1c8e, Asia/Pyongyang
    -
    268  &kZoneAmerica_Indiana_Petersburg, // 0x94ac7acc, America/Indiana/Petersburg
    -
    269  &kZoneAmerica_Cancun, // 0x953331be, America/Cancun
    -
    270  &kZoneAmerica_Glace_Bay, // 0x9681f8dd, America/Glace_Bay
    -
    271  &kZoneAsia_Khandyga, // 0x9685a4d9, Asia/Khandyga
    -
    272  &kZoneAmerica_Cuiaba, // 0x969a52eb, America/Cuiaba
    -
    273  &kZoneAmerica_Dawson, // 0x978d8d12, America/Dawson
    -
    274  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    275  &kZoneAmerica_Bahia, // 0x97d815fb, America/Bahia
    -
    276  &kZoneAmerica_Belem, // 0x97da580b, America/Belem
    -
    277  &kZoneAmerica_Boise, // 0x97dfc8d8, America/Boise
    -
    278  &kZoneEurope_Andorra, // 0x97f6764b, Europe/Andorra
    -
    279  &kZoneAmerica_Adak, // 0x97fe49d7, America/Adak
    -
    280  &kZoneAmerica_Lima, // 0x980468c9, America/Lima
    -
    281  &kZoneAmerica_Nome, // 0x98059b15, America/Nome
    -
    282  &kZoneAmerica_Nuuk, // 0x9805b5a9, America/Nuuk
    -
    283  &kZoneIndian_Maldives, // 0x9869681c, Indian/Maldives
    -
    284  &kZoneAmerica_Sitka, // 0x99104ce2, America/Sitka
    -
    285  &kZoneAmerica_Thule, // 0x9921dd68, America/Thule
    -
    286  &kZonePacific_Rarotonga, // 0x9981a3b0, Pacific/Rarotonga
    -
    287  &kZoneAsia_Kathmandu, // 0x9a96ce6f, Asia/Kathmandu
    -
    288  &kZoneAmerica_North_Dakota_Beulah, // 0x9b52b384, America/North_Dakota/Beulah
    -
    289  &kZoneEurope_Budapest, // 0x9ce0197c, Europe/Budapest
    -
    290  &kZoneAsia_Baghdad, // 0x9ceffbed, Asia/Baghdad
    -
    291  &kZoneEtc_GMT_PLUS_1, // 0x9d13da14, Etc/GMT+1
    -
    292  &kZoneEtc_GMT_PLUS_2, // 0x9d13da15, Etc/GMT+2
    -
    293  &kZoneEtc_GMT_PLUS_3, // 0x9d13da16, Etc/GMT+3
    -
    294  &kZoneEtc_GMT_PLUS_4, // 0x9d13da17, Etc/GMT+4
    -
    295  &kZoneEtc_GMT_PLUS_5, // 0x9d13da18, Etc/GMT+5
    -
    296  &kZoneEtc_GMT_PLUS_6, // 0x9d13da19, Etc/GMT+6
    -
    297  &kZoneEtc_GMT_PLUS_7, // 0x9d13da1a, Etc/GMT+7
    -
    298  &kZoneEtc_GMT_PLUS_8, // 0x9d13da1b, Etc/GMT+8
    -
    299  &kZoneEtc_GMT_PLUS_9, // 0x9d13da1c, Etc/GMT+9
    -
    300  &kZoneEtc_GMT_1, // 0x9d13da56, Etc/GMT-1
    -
    301  &kZoneEtc_GMT_2, // 0x9d13da57, Etc/GMT-2
    -
    302  &kZoneEtc_GMT_3, // 0x9d13da58, Etc/GMT-3
    -
    303  &kZoneEtc_GMT_4, // 0x9d13da59, Etc/GMT-4
    -
    304  &kZoneEtc_GMT_5, // 0x9d13da5a, Etc/GMT-5
    -
    305  &kZoneEtc_GMT_6, // 0x9d13da5b, Etc/GMT-6
    -
    306  &kZoneEtc_GMT_7, // 0x9d13da5c, Etc/GMT-7
    -
    307  &kZoneEtc_GMT_8, // 0x9d13da5d, Etc/GMT-8
    -
    308  &kZoneEtc_GMT_9, // 0x9d13da5e, Etc/GMT-9
    -
    309  &kZoneAmerica_Rio_Branco, // 0x9d352764, America/Rio_Branco
    -
    310  &kZoneAsia_Bangkok, // 0x9d6e3aaf, Asia/Bangkok
    -
    311  &kZoneAfrica_El_Aaiun, // 0x9d6fb118, Africa/El_Aaiun
    -
    312  &kZoneAmerica_North_Dakota_Center, // 0x9da42814, America/North_Dakota/Center
    -
    313  &kZoneAsia_Barnaul, // 0x9dba4997, Asia/Barnaul
    -
    314  &kZoneAfrica_Tripoli, // 0x9dfebd3d, Africa/Tripoli
    -
    315  &kZoneEurope_Istanbul, // 0x9e09d6e6, Europe/Istanbul
    -
    316  &kZoneAfrica_Ndjamena, // 0x9fe09898, Africa/Ndjamena
    -
    317  &kZoneAmerica_Guyana, // 0x9ff7bd0b, America/Guyana
    -
    318  &kZoneAmerica_Havana, // 0xa0e15675, America/Havana
    -
    319  &kZoneAsia_Novosibirsk, // 0xa2a435cb, Asia/Novosibirsk
    -
    320  &kZoneEurope_Kyiv, // 0xa2c1e347, Europe/Kyiv
    -
    321  &kZoneEurope_Riga, // 0xa2c57587, Europe/Riga
    -
    322  &kZoneEurope_Rome, // 0xa2c58fd7, Europe/Rome
    -
    323  &kZoneAmerica_Inuvik, // 0xa42189fc, America/Inuvik
    -
    324  &kZoneAmerica_Argentina_La_Rioja, // 0xa46b7eef, America/Argentina/La_Rioja
    -
    325  &kZoneAsia_Almaty, // 0xa61f41fa, Asia/Almaty
    -
    326  &kZoneAsia_Anadyr, // 0xa63cebd1, Asia/Anadyr
    -
    327  &kZoneAsia_Aqtobe, // 0xa67dcc4e, Asia/Aqtobe
    -
    328  &kZoneAsia_Atyrau, // 0xa6b6e068, Asia/Atyrau
    -
    329  &kZoneAmerica_Juneau, // 0xa6f13e2e, America/Juneau
    -
    330  &kZoneAustralia_Lord_Howe, // 0xa748b67d, Australia/Lord_Howe
    -
    331  &kZonePacific_Port_Moresby, // 0xa7ba7f68, Pacific/Port_Moresby
    -
    332  &kZoneAsia_Beirut, // 0xa7f3d5fd, Asia/Beirut
    -
    333  &kZoneAfrica_Nairobi, // 0xa87ab57e, Africa/Nairobi
    -
    334  &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos
    -
    335  &kZoneAmerica_Argentina_Mendoza, // 0xa9f72d5c, America/Argentina/Mendoza
    -
    336  &kZoneAmerica_La_Paz, // 0xaa29125d, America/La_Paz
    -
    337  &kZoneAmerica_Noronha, // 0xab5116fb, America/Noronha
    -
    338  &kZoneAmerica_Maceio, // 0xac80c6d4, America/Maceio
    -
    339  &kZoneAmerica_Manaus, // 0xac86bf8b, America/Manaus
    -
    340  &kZoneAmerica_Merida, // 0xacd172d8, America/Merida
    -
    341  &kZoneEurope_Chisinau, // 0xad58aa18, Europe/Chisinau
    -
    342  &kZoneAustralia_Broken_Hill, // 0xb06eada3, Australia/Broken_Hill
    -
    343  &kZoneAsia_Bishkek, // 0xb0728553, Asia/Bishkek
    -
    344  &kZoneAmerica_Paramaribo, // 0xb319e4c4, America/Paramaribo
    -
    345  &kZoneAmerica_Panama, // 0xb3863854, America/Panama
    -
    346  &kZoneAsia_Hebron, // 0xb5eef250, Asia/Hebron
    -
    347  &kZoneAmerica_Goose_Bay, // 0xb649541e, America/Goose_Bay
    -
    348  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    349  &kZoneAmerica_Recife, // 0xb8730494, America/Recife
    -
    350  &kZoneAmerica_Regina, // 0xb875371c, America/Regina
    -
    351  &kZoneAsia_Ashgabat, // 0xba87598d, Asia/Ashgabat
    -
    352  &kZoneAmerica_Halifax, // 0xbc5b7183, America/Halifax
    -
    353  &kZoneAsia_Srednekolymsk, // 0xbf8e337d, Asia/Srednekolymsk
    -
    354  &kZoneAmerica_Argentina_Cordoba, // 0xbfccc308, America/Argentina/Cordoba
    -
    355  &kZoneAmerica_Tegucigalpa, // 0xbfd6fd4c, America/Tegucigalpa
    -
    356  &kZoneAsia_Manila, // 0xc156c944, Asia/Manila
    -
    357  &kZoneAfrica_Abidjan, // 0xc21305a3, Africa/Abidjan
    -
    358  &kZoneAmerica_Punta_Arenas, // 0xc2c3bce7, America/Punta_Arenas
    -
    359  &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca
    -
    360  &kZoneAmerica_Argentina_Rio_Gallegos, // 0xc5b0f565, America/Argentina/Rio_Gallegos
    -
    361  &kZoneAsia_Jayapura, // 0xc6833c2f, Asia/Jayapura
    -
    362  &kZoneAmerica_Resolute, // 0xc7093459, America/Resolute
    -
    363  &kZoneAmerica_Rankin_Inlet, // 0xc8de4984, America/Rankin_Inlet
    -
    364  &kZoneAmerica_Barbados, // 0xcbbc3b04, America/Barbados
    -
    365  &kZoneAmerica_Coyhaique, // 0xcc3314ee, America/Coyhaique
    -
    366  &kZoneAsia_Riyadh, // 0xcd973d93, Asia/Riyadh
    -
    367  &kZonePacific_Easter, // 0xcf54f7e7, Pacific/Easter
    -
    368  &kZoneAsia_Singapore, // 0xcf8581fa, Asia/Singapore
    -
    369  &kZoneAsia_Krasnoyarsk, // 0xd0376c6a, Asia/Krasnoyarsk
    -
    370  &kZoneAmerica_Mexico_City, // 0xd0d93f43, America/Mexico_City
    -
    371  &kZoneAsia_Taipei, // 0xd1a844ae, Asia/Taipei
    -
    372  &kZoneAsia_Tehran, // 0xd1f02254, Asia/Tehran
    -
    373  &kZoneEurope_Kaliningrad, // 0xd33b2f28, Europe/Kaliningrad
    -
    374  &kZoneAmerica_Argentina_Buenos_Aires, // 0xd43b4c0d, America/Argentina/Buenos_Aires
    -
    375  &kZoneAfrica_Juba, // 0xd51b395c, Africa/Juba
    -
    376  &kZoneAsia_Urumqi, // 0xd5379735, Asia/Urumqi
    -
    377  &kZoneAmerica_Cambridge_Bay, // 0xd5a44aff, America/Cambridge_Bay
    -
    378  &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg
    -
    379  &kZoneEtc_GMT, // 0xd8e2de58, Etc/GMT
    -
    380  &kZoneEtc_UTC, // 0xd8e31abc, Etc/UTC
    -
    381  &kZoneAmerica_Yakutat, // 0xd8ee31e9, America/Yakutat
    -
    382  &kZoneAfrica_Algiers, // 0xd94515c1, Africa/Algiers
    -
    383  &kZoneEurope_Simferopol, // 0xda9eb724, Europe/Simferopol
    -
    384  &kZoneAmerica_Matamoros, // 0xdd1b0259, America/Matamoros
    -
    385  &kZonePacific_Kanton, // 0xdd512f0e, Pacific/Kanton
    -
    386  &kZoneAsia_Yangon, // 0xdd54a8be, Asia/Yangon
    -
    387  &kZoneEurope_Vilnius, // 0xdd63b8ce, Europe/Vilnius
    -
    388  &kZonePacific_Kosrae, // 0xde5139a8, Pacific/Kosrae
    -
    389  &kZoneAmerica_Kentucky_Monticello, // 0xde71c439, America/Kentucky/Monticello
    -
    390  &kZoneEurope_Brussels, // 0xdee07337, Europe/Brussels
    -
    391  &kZoneAmerica_Swift_Current, // 0xdef98e55, America/Swift_Current
    -
    392  &kZoneAsia_Irkutsk, // 0xdfbf213f, Asia/Irkutsk
    -
    393  &kZoneEurope_Ulyanovsk, // 0xe03783d0, Europe/Ulyanovsk
    -
    394  &kZoneAustralia_Lindeman, // 0xe05029e2, Australia/Lindeman
    -
    395  &kZoneEurope_Belgrade, // 0xe0532b3a, Europe/Belgrade
    -
    396  &kZoneAmerica_Menominee, // 0xe0e9c583, America/Menominee
    -
    397  &kZoneAtlantic_Faroe, // 0xe110a971, Atlantic/Faroe
    -
    398  &kZoneAntarctica_Casey, // 0xe2022583, Antarctica/Casey
    -
    399  &kZoneAntarctica_Davis, // 0xe2144b45, Antarctica/Davis
    -
    400  &kZoneEurope_Astrakhan, // 0xe22256e1, Europe/Astrakhan
    -
    401  &kZoneAntarctica_Troll, // 0xe33f085b, Antarctica/Troll
    -
    402  &kZoneEurope_Saratov, // 0xe4315da4, Europe/Saratov
    -
    403  &kZonePacific_Noumea, // 0xe551b788, Pacific/Noumea
    -
    404  &kZonePacific_Honolulu, // 0xe6e70af9, Pacific/Honolulu
    -
    405  &kZoneAmerica_Argentina_Tucuman, // 0xe96399eb, America/Argentina/Tucuman
    -
    406  &kZoneAsia_Magadan, // 0xebacc19b, Asia/Magadan
    -
    407  &kZoneAmerica_Ojinaga, // 0xebfde83f, America/Ojinaga
    -
    408  &kZonePacific_Tahiti, // 0xf24c2446, Pacific/Tahiti
    -
    409  &kZonePacific_Tarawa, // 0xf2517e63, Pacific/Tarawa
    -
    410  &kZoneAsia_Tashkent, // 0xf3924254, Asia/Tashkent
    -
    411  &kZoneAsia_Sakhalin, // 0xf4a1c9bd, Asia/Sakhalin
    -
    412  &kZonePacific_Guadalcanal, // 0xf4dd25f0, Pacific/Guadalcanal
    -
    413  &kZoneAmerica_Danmarkshavn, // 0xf554d204, America/Danmarkshavn
    -
    414  &kZoneAsia_Shanghai, // 0xf895a7f5, Asia/Shanghai
    -
    415  &kZoneEurope_Gibraltar, // 0xf8e325fc, Europe/Gibraltar
    -
    416  &kZoneAtlantic_Azores, // 0xf93ed918, Atlantic/Azores
    -
    417  &kZoneAmerica_Eirunepe, // 0xf9b29683, America/Eirunepe
    -
    418  &kZoneAmerica_Montevideo, // 0xfa214780, America/Montevideo
    -
    419  &kZoneEurope_Kirov, // 0xfaf5abef, Europe/Kirov
    -
    420  &kZoneEurope_Malta, // 0xfb1560f3, Europe/Malta
    -
    421  &kZoneEurope_Minsk, // 0xfb19cc66, Europe/Minsk
    -
    422  &kZoneEurope_Bucharest, // 0xfb349ec5, Europe/Bucharest
    -
    423  &kZoneAfrica_Khartoum, // 0xfb3d4205, Africa/Khartoum
    -
    424  &kZoneEurope_Paris, // 0xfb4bc2a3, Europe/Paris
    -
    425  &kZoneAsia_Yekaterinburg, // 0xfb544c6e, Asia/Yekaterinburg
    -
    426  &kZoneEurope_Sofia, // 0xfb898656, Europe/Sofia
    -
    427  &kZoneAtlantic_Canary, // 0xfc23f2c2, Atlantic/Canary
    -
    428  &kZoneAmerica_Campo_Grande, // 0xfec3e7a6, America/Campo_Grande
    -
    429 
    -
    430 };
    -
    431 
    -
    432 //---------------------------------------------------------------------------
    -
    433 // Zone and Link (fat) Info registry. Sorted by zoneId. Links act like Zones.
    -
    434 //---------------------------------------------------------------------------
    -
    435 const extended::Info::ZoneInfo* const kZoneAndLinkRegistry[597] ACE_TIME_PROGMEM = {
    -
    436  &kZoneGB, // 0x005973ae, GB -> Europe/London
    -
    437  &kZoneNZ, // 0x005974ad, NZ -> Pacific/Auckland
    -
    438  &kZoneAsia_Kuala_Lumpur, // 0x014763c4, Asia/Kuala_Lumpur -> Asia/Singapore
    -
    439  &kZoneAfrica_Libreville, // 0x01d96de4, Africa/Libreville -> Africa/Lagos
    -
    440  &kZoneIndian_Cocos, // 0x021e86de, Indian/Cocos -> Asia/Yangon
    -
    441  &kZoneAustralia_Victoria, // 0x0260d5db, Australia/Victoria -> Australia/Melbourne
    -
    442  &kZoneAtlantic_Faeroe, // 0x031ec516, Atlantic/Faeroe -> Atlantic/Faroe
    -
    443  &kZoneAmerica_St_Johns, // 0x04b14e6e, America/St_Johns
    -
    444  &kZoneAmerica_St_Kitts, // 0x04c0507b, America/St_Kitts -> America/Puerto_Rico
    -
    445  &kZoneAfrica_Ouagadougou, // 0x04d7219a, Africa/Ouagadougou -> Africa/Abidjan
    -
    446  &kZoneAmerica_St_Lucia, // 0x04d8b3ba, America/St_Lucia -> America/Puerto_Rico
    -
    447  &kZoneAmerica_North_Dakota_New_Salem, // 0x04f9958e, America/North_Dakota/New_Salem
    -
    448  &kZoneAsia_Jakarta, // 0x0506ab50, Asia/Jakarta
    -
    449  &kZoneAfrica_Bujumbura, // 0x05232a47, Africa/Bujumbura -> Africa/Maputo
    -
    450  &kZoneAmerica_Mazatlan, // 0x0532189e, America/Mazatlan
    -
    451  &kZoneAmerica_St_Barthelemy, // 0x054e6a79, America/St_Barthelemy -> America/Puerto_Rico
    -
    452  &kZoneAfrica_Addis_Ababa, // 0x05ae1e65, Africa/Addis_Ababa -> Africa/Nairobi
    -
    453  &kZonePacific_Fakaofo, // 0x06532bba, Pacific/Fakaofo
    -
    454  &kZoneAmerica_Hermosillo, // 0x065d21c4, America/Hermosillo
    -
    455  &kZoneMexico_BajaSur, // 0x08ee3641, Mexico/BajaSur -> America/Mazatlan
    -
    456  &kZoneAsia_Tbilisi, // 0x0903e442, Asia/Tbilisi
    -
    457  &kZoneAmerica_Indiana_Tell_City, // 0x09263612, America/Indiana/Tell_City
    -
    458  &kZoneUS_Hawaii, // 0x09c8de2f, US/Hawaii -> Pacific/Honolulu
    -
    459  &kZoneAmerica_Boa_Vista, // 0x0a7b7efe, America/Boa_Vista
    -
    460  &kZoneAsia_Colombo, // 0x0af0e91d, Asia/Colombo
    -
    461  &kZoneCET, // 0x0b87d921, CET -> Europe/Brussels
    -
    462  &kZoneEET, // 0x0b87e1a3, EET -> Europe/Athens
    -
    463  &kZoneEST, // 0x0b87e371, EST -> America/Panama
    -
    464  &kZoneGMT, // 0x0b87eb2d, GMT -> Etc/GMT
    -
    465  &kZoneHST, // 0x0b87f034, HST -> Pacific/Honolulu
    -
    466  &kZoneMET, // 0x0b8803ab, MET -> Europe/Brussels
    -
    467  &kZoneMST, // 0x0b880579, MST -> America/Phoenix
    -
    468  &kZonePRC, // 0x0b88120a, PRC -> Asia/Shanghai
    -
    469  &kZoneROC, // 0x0b881a29, ROC -> Asia/Taipei
    -
    470  &kZoneROK, // 0x0b881a31, ROK -> Asia/Seoul
    -
    471  &kZoneUCT, // 0x0b882571, UCT -> Etc/UTC
    -
    472  &kZoneUTC, // 0x0b882791, UTC -> Etc/UTC
    -
    473  &kZoneWET, // 0x0b882e35, WET -> Europe/Lisbon
    -
    474  &kZoneAmerica_Guatemala, // 0x0c8259f7, America/Guatemala
    -
    475  &kZoneEurope_Mariehamn, // 0x0caa6496, Europe/Mariehamn -> Europe/Helsinki
    -
    476  &kZoneAfrica_Monrovia, // 0x0ce90385, Africa/Monrovia
    -
    477  &kZoneEgypt, // 0x0d1a278e, Egypt -> Africa/Cairo
    -
    478  &kZoneGMT_PLUS_0, // 0x0d2f7028, GMT+0 -> Etc/GMT
    -
    479  &kZoneGMT_0, // 0x0d2f706a, GMT-0 -> Etc/GMT
    -
    480  &kZoneJapan, // 0x0d712f8f, Japan -> Asia/Tokyo
    -
    481  &kZoneLibya, // 0x0d998b16, Libya -> Africa/Tripoli
    -
    482  &kZoneKwajalein, // 0x0e57afbb, Kwajalein -> Pacific/Kwajalein
    -
    483  &kZoneAntarctica_Rothera, // 0x0e86d203, Antarctica/Rothera
    -
    484  &kZoneAmerica_Yellowknife, // 0x0f76c76f, America/Yellowknife -> America/Edmonton
    -
    485  &kZoneAustralia_Melbourne, // 0x0fe559a3, Australia/Melbourne
    -
    486  &kZoneAmerica_Sao_Paulo, // 0x1063bfc9, America/Sao_Paulo
    -
    487  &kZoneEurope_Amsterdam, // 0x109395c2, Europe/Amsterdam -> Europe/Brussels
    -
    488  &kZoneAmerica_Indiana_Vevay, // 0x10aca054, America/Indiana/Vevay
    -
    489  &kZoneAmerica_Scoresbysund, // 0x123f8d2a, America/Scoresbysund
    -
    490  &kZoneAsia_Samarkand, // 0x13ae5104, Asia/Samarkand
    -
    491  &kZoneAsia_Amman, // 0x148d21bc, Asia/Amman
    -
    492  &kZoneAsia_Aqtau, // 0x148f710e, Asia/Aqtau
    -
    493  &kZoneAsia_Chita, // 0x14ae863b, Asia/Chita
    -
    494  &kZoneAsia_Dacca, // 0x14bcac5e, Asia/Dacca -> Asia/Dhaka
    -
    495  &kZoneAsia_Dhaka, // 0x14c07b8b, Asia/Dhaka
    -
    496  &kZoneAsia_Dubai, // 0x14c79f77, Asia/Dubai
    -
    497  &kZoneAmerica_Bahia_Banderas, // 0x14f6329a, America/Bahia_Banderas
    -
    498  &kZoneAsia_Kabul, // 0x153b5601, Asia/Kabul
    -
    499  &kZoneAsia_Ashkhabad, // 0x15454f09, Asia/Ashkhabad -> Asia/Ashgabat
    -
    500  &kZoneAsia_Macao, // 0x155f88b3, Asia/Macao -> Asia/Macau
    -
    501  &kZoneAsia_Macau, // 0x155f88b9, Asia/Macau
    -
    502  &kZoneAsia_Qatar, // 0x15a8330b, Asia/Qatar
    -
    503  &kZoneAsia_Seoul, // 0x15ce82da, Asia/Seoul
    -
    504  &kZoneAsia_Tokyo, // 0x15e606a8, Asia/Tokyo
    -
    505  &kZoneAsia_Tomsk, // 0x15e60e60, Asia/Tomsk
    -
    506  &kZoneAsia_Tel_Aviv, // 0x166d7c2c, Asia/Tel_Aviv -> Asia/Jerusalem
    -
    507  &kZoneAsia_Thimphu, // 0x170380d1, Asia/Thimphu
    -
    508  &kZoneAmerica_Guayaquil, // 0x17e64958, America/Guayaquil
    -
    509  &kZoneAmerica_Montserrat, // 0x199b0a35, America/Montserrat -> America/Puerto_Rico
    -
    510  &kZoneAmerica_Kentucky_Louisville, // 0x1a21024b, America/Kentucky/Louisville
    -
    511  &kZoneAsia_Pontianak, // 0x1a76c057, Asia/Pontianak
    -
    512  &kZoneEurope_Podgorica, // 0x1c1a499c, Europe/Podgorica -> Europe/Belgrade
    -
    513  &kZoneAtlantic_Reykjavik, // 0x1c2b4f74, Atlantic/Reykjavik -> Africa/Abidjan
    -
    514  &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York
    -
    515  &kZoneEurope_Luxembourg, // 0x1f8bc6ce, Europe/Luxembourg -> Europe/Brussels
    -
    516  &kZoneAsia_Aden, // 0x1fa7084a, Asia/Aden -> Asia/Riyadh
    -
    517  &kZoneAsia_Baku, // 0x1fa788b5, Asia/Baku
    -
    518  &kZoneAsia_Dili, // 0x1fa8c394, Asia/Dili
    -
    519  &kZoneAsia_Gaza, // 0x1faa4875, Asia/Gaza
    -
    520  &kZoneAsia_Hovd, // 0x1fab0fe3, Asia/Hovd
    -
    521  &kZoneAsia_Omsk, // 0x1faeddac, Asia/Omsk
    -
    522  &kZoneAsia_Oral, // 0x1faef0a0, Asia/Oral
    -
    523  &kZoneAmerica_Montreal, // 0x203a1ea8, America/Montreal -> America/Toronto
    -
    524  &kZoneAsia_Ho_Chi_Minh, // 0x20f2d127, Asia/Ho_Chi_Minh
    -
    525  &kZoneAsia_Damascus, // 0x20fbb063, Asia/Damascus
    -
    526  &kZoneAmerica_Argentina_ComodRivadavia, // 0x22758877, America/Argentina/ComodRivadavia -> America/Argentina/Catamarca
    -
    527  &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia
    -
    528  &kZonePacific_Fiji, // 0x23383ba5, Pacific/Fiji
    -
    529  &kZonePacific_Guam, // 0x2338f9ed, Pacific/Guam
    -
    530  &kZonePacific_Niue, // 0x233ca014, Pacific/Niue
    -
    531  &kZonePacific_Truk, // 0x234010a9, Pacific/Truk -> Pacific/Port_Moresby
    -
    532  &kZonePacific_Wake, // 0x23416c2b, Pacific/Wake -> Pacific/Tarawa
    -
    533  &kZoneAustralia_Adelaide, // 0x2428e8a3, Australia/Adelaide
    -
    534  &kZonePacific_Auckland, // 0x25062f86, Pacific/Auckland
    -
    535  &kZonePacific_Tongatapu, // 0x262ca836, Pacific/Tongatapu
    -
    536  &kZoneAmerica_Monterrey, // 0x269a1deb, America/Monterrey
    -
    537  &kZoneEtc_Greenwich, // 0x26daa98c, Etc/Greenwich -> Etc/GMT
    -
    538  &kZoneAustralia_Currie, // 0x278b6a24, Australia/Currie -> Australia/Hobart
    -
    539  &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin
    -
    540  &kZonePacific_Pohnpei, // 0x28929f96, Pacific/Pohnpei -> Pacific/Guadalcanal
    -
    541  &kZoneAsia_Famagusta, // 0x289b4f8b, Asia/Famagusta
    -
    542  &kZoneAmerica_Indiana_Vincennes, // 0x28a0b212, America/Indiana/Vincennes
    -
    543  &kZoneAmerica_Indiana_Indianapolis, // 0x28a669a4, America/Indiana/Indianapolis
    -
    544  &kZoneAsia_Vladivostok, // 0x29de34a8, Asia/Vladivostok
    -
    545  &kZoneAustralia_Canberra, // 0x2a09ae58, Australia/Canberra -> Australia/Sydney
    -
    546  &kZoneAmerica_Fortaleza, // 0x2ad018ee, America/Fortaleza
    -
    547  &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver
    -
    548  &kZoneAmerica_Pangnirtung, // 0x2d999193, America/Pangnirtung -> America/Iqaluit
    -
    549  &kZoneAmerica_Iqaluit, // 0x2de310bf, America/Iqaluit
    -
    550  &kZoneJamaica, // 0x2e44fdab, Jamaica -> America/Jamaica
    -
    551  &kZonePacific_Chatham, // 0x2f0de999, Pacific/Chatham
    -
    552  &kZoneEtc_Universal, // 0x2f8cb9a9, Etc/Universal -> Etc/UTC
    -
    553  &kZoneAmerica_Indiana_Marengo, // 0x2feeee72, America/Indiana/Marengo
    -
    554  &kZoneEurope_Tallinn, // 0x30c4e096, Europe/Tallinn
    -
    555  &kZoneAfrica_Djibouti, // 0x30ea01d4, Africa/Djibouti -> Africa/Nairobi
    -
    556  &kZoneAsia_Ulaanbaatar, // 0x30f0cc4e, Asia/Ulaanbaatar
    -
    557  &kZoneAfrica_Gaborone, // 0x317c0aa7, Africa/Gaborone -> Africa/Maputo
    -
    558  &kZoneAmerica_Argentina_Ushuaia, // 0x320dcdde, America/Argentina/Ushuaia
    -
    559  &kZoneAsia_Calcutta, // 0x328a44c3, Asia/Calcutta -> Asia/Kolkata
    -
    560  &kZoneAustralia_Hobart, // 0x32bf951a, Australia/Hobart
    -
    561  &kZoneAsia_Dushanbe, // 0x32fc5c3c, Asia/Dushanbe
    -
    562  &kZoneAtlantic_South_Georgia, // 0x33013174, Atlantic/South_Georgia
    -
    563  &kZoneAmerica_Phoenix, // 0x34b5af01, America/Phoenix
    -
    564  &kZoneAsia_Istanbul, // 0x382e7894, Asia/Istanbul -> Europe/Istanbul
    -
    565  &kZoneAsia_Ulan_Bator, // 0x394db4d9, Asia/Ulan_Bator -> Asia/Ulaanbaatar
    -
    566  &kZoneAntarctica_Mawson, // 0x399cd863, Antarctica/Mawson
    -
    567  &kZoneAfrica_Brazzaville, // 0x39cda760, Africa/Brazzaville -> Africa/Lagos
    -
    568  &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas
    -
    569  &kZoneAmerica_Cayenne, // 0x3c617269, America/Cayenne
    -
    570  &kZoneAfrica_Porto_Novo, // 0x3d1bf95d, Africa/Porto-Novo -> Africa/Lagos
    -
    571  &kZoneAtlantic_Bermuda, // 0x3d4bb1c4, Atlantic/Bermuda
    -
    572  &kZoneAmerica_Managua, // 0x3d5e7600, America/Managua
    -
    573  &kZoneAmerica_Marigot, // 0x3dab3a59, America/Marigot -> America/Puerto_Rico
    -
    574  &kZoneEurope_Guernsey, // 0x3db12c16, Europe/Guernsey -> Europe/London
    -
    575  &kZoneAfrica_Nouakchott, // 0x3dc49dba, Africa/Nouakchott -> Africa/Abidjan
    -
    576  &kZoneAmerica_Louisville, // 0x3dcb47ee, America/Louisville -> America/Kentucky/Louisville
    -
    577  &kZoneAmerica_Argentina_San_Juan, // 0x3e1009bd, America/Argentina/San_Juan
    -
    578  &kZoneAmerica_Argentina_San_Luis, // 0x3e11238c, America/Argentina/San_Luis
    -
    579  &kZoneEurope_Volgograd, // 0x3ed0f389, Europe/Volgograd
    -
    580  &kZoneAmerica_Fort_Nelson, // 0x3f437e0f, America/Fort_Nelson
    -
    581  &kZoneEtc_GMT_PLUS_10, // 0x3f8f1cc4, Etc/GMT+10
    -
    582  &kZoneEtc_GMT_PLUS_11, // 0x3f8f1cc5, Etc/GMT+11
    -
    583  &kZoneEtc_GMT_PLUS_12, // 0x3f8f1cc6, Etc/GMT+12
    -
    584  &kZoneEtc_GMT_10, // 0x3f8f2546, Etc/GMT-10
    -
    585  &kZoneEtc_GMT_11, // 0x3f8f2547, Etc/GMT-11
    -
    586  &kZoneEtc_GMT_12, // 0x3f8f2548, Etc/GMT-12
    -
    587  &kZoneEtc_GMT_13, // 0x3f8f2549, Etc/GMT-13
    -
    588  &kZoneEtc_GMT_14, // 0x3f8f254a, Etc/GMT-14
    -
    589  &kZoneAntarctica_Palmer, // 0x40962f4f, Antarctica/Palmer
    -
    590  &kZoneCanada_Pacific, // 0x40fa3c7b, Canada/Pacific -> America/Vancouver
    -
    591  &kZoneEurope_Athens, // 0x4318fa27, Europe/Athens
    -
    592  &kZoneIndian_Kerguelen, // 0x4351b389, Indian/Kerguelen -> Indian/Maldives
    -
    593  &kZoneAmerica_Indiana_Winamac, // 0x4413fa69, America/Indiana/Winamac
    -
    594  &kZoneEurope_Berlin, // 0x44644c20, Europe/Berlin
    -
    595  &kZoneAtlantic_St_Helena, // 0x451fc5f7, Atlantic/St_Helena -> Africa/Abidjan
    -
    596  &kZoneIndian_Chagos, // 0x456f7c3c, Indian/Chagos
    -
    597  &kZoneIndian_Mahe, // 0x45e725e2, Indian/Mahe -> Asia/Dubai
    -
    598  &kZoneIndian_Comoro, // 0x45f4deb6, Indian/Comoro -> Africa/Nairobi
    -
    599  &kZoneAmerica_Mendoza, // 0x46b4e054, America/Mendoza -> America/Argentina/Mendoza
    -
    600  &kZoneAsia_Ust_Nera, // 0x4785f921, Asia/Ust-Nera
    -
    601  &kZoneEurope_Dublin, // 0x4a275f62, Europe/Dublin
    -
    602  &kZoneAsia_Nicosia, // 0x4b0fcf78, Asia/Nicosia
    -
    603  &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago
    -
    604  &kZoneAustralia_Sydney, // 0x4d1e9776, Australia/Sydney
    -
    605  &kZoneNZ_CHAT, // 0x4d42afda, NZ-CHAT -> Pacific/Chatham
    -
    606  &kZoneUS_Arizona, // 0x4ec52670, US/Arizona -> America/Phoenix
    -
    607  &kZoneAntarctica_Vostok, // 0x4f966fd4, Antarctica/Vostok
    -
    608  &kZoneUS_Aleutian, // 0x4fe013ef, US/Aleutian -> America/Adak
    -
    609  &kZoneAustralia_Brisbane, // 0x4fedc9c0, Australia/Brisbane
    -
    610  &kZoneAmerica_Catamarca, // 0x5036e963, America/Catamarca -> America/Argentina/Catamarca
    -
    611  &kZoneAmerica_Asuncion, // 0x50ec79a6, America/Asuncion
    -
    612  &kZoneAsia_Karachi, // 0x527f5245, Asia/Karachi
    -
    613  &kZoneAsia_Kashgar, // 0x52955193, Asia/Kashgar -> Asia/Urumqi
    -
    614  &kZoneCanada_Atlantic, // 0x536b119c, Canada/Atlantic -> America/Halifax
    -
    615  &kZonePacific_Gambier, // 0x53720c3a, Pacific/Gambier
    -
    616  &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse
    -
    617  &kZoneAmerica_Martinique, // 0x551e84c5, America/Martinique
    -
    618  &kZoneAmerica_Jamaica, // 0x565dad6c, America/Jamaica
    -
    619  &kZoneUS_Samoa, // 0x566821cd, US/Samoa -> Pacific/Pago_Pago
    -
    620  &kZoneHongkong, // 0x56d36560, Hongkong -> Asia/Hong_Kong
    -
    621  &kZoneEurope_Jersey, // 0x570dae76, Europe/Jersey -> Europe/London
    -
    622  &kZoneAsia_Hong_Kong, // 0x577f28ac, Asia/Hong_Kong
    -
    623  &kZonePacific_Marquesas, // 0x57ca7135, Pacific/Marquesas
    -
    624  &kZoneAmerica_Miquelon, // 0x59674330, America/Miquelon
    -
    625  &kZoneAntarctica_DumontDUrville, // 0x5a3c656c, Antarctica/DumontDUrville -> Pacific/Port_Moresby
    -
    626  &kZoneAtlantic_Jan_Mayen, // 0x5a7535b6, Atlantic/Jan_Mayen -> Europe/Berlin
    -
    627  &kZoneAmerica_Anchorage, // 0x5a79260e, America/Anchorage
    -
    628  &kZoneUS_Eastern, // 0x5bb7e78e, US/Eastern -> America/New_York
    -
    629  &kZoneAsia_Jerusalem, // 0x5becd23a, Asia/Jerusalem
    -
    630  &kZoneEurope_Stockholm, // 0x5bf6fbb8, Europe/Stockholm -> Europe/Berlin
    -
    631  &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon
    -
    632  &kZoneAtlantic_Cape_Verde, // 0x5c5e1772, Atlantic/Cape_Verde
    -
    633  &kZoneEurope_London, // 0x5c6a84ae, Europe/London
    -
    634  &kZoneAmerica_Cordoba, // 0x5c8a7600, America/Cordoba -> America/Argentina/Cordoba
    -
    635  &kZoneAsia_Ujung_Pandang, // 0x5d001eb3, Asia/Ujung_Pandang -> Asia/Makassar
    -
    636  &kZoneAfrica_Mbabane, // 0x5d3bdd40, Africa/Mbabane -> Africa/Johannesburg
    -
    637  &kZoneEurope_Madrid, // 0x5dbd1535, Europe/Madrid
    -
    638  &kZoneAmerica_Moncton, // 0x5e07fe24, America/Moncton
    -
    639  &kZonePacific_Bougainville, // 0x5e10f7a4, Pacific/Bougainville
    -
    640  &kZoneEurope_Monaco, // 0x5ebf9f01, Europe/Monaco -> Europe/Paris
    -
    641  &kZoneEurope_Moscow, // 0x5ec266fc, Europe/Moscow
    -
    642  &kZoneAmerica_Argentina_Jujuy, // 0x5f2f46c5, America/Argentina/Jujuy
    -
    643  &kZoneAmerica_Argentina_Salta, // 0x5fc73403, America/Argentina/Salta
    -
    644  &kZonePacific_Pago_Pago, // 0x603aebd0, Pacific/Pago_Pago
    -
    645  &kZonePacific_Enderbury, // 0x61599a93, Pacific/Enderbury -> Pacific/Kanton
    -
    646  &kZoneAfrica_Sao_Tome, // 0x61b319d1, Africa/Sao_Tome
    -
    647  &kZoneCanada_Central, // 0x626710f5, Canada/Central -> America/Winnipeg
    -
    648  &kZoneAmerica_Creston, // 0x62a70204, America/Creston -> America/Phoenix
    -
    649  &kZoneAmerica_Costa_Rica, // 0x63ff66be, America/Costa_Rica
    -
    650  &kZoneAsia_Qostanay, // 0x654fe522, Asia/Qostanay
    -
    651  &kZoneAmerica_Indiana_Knox, // 0x6554adc9, America/Indiana/Knox
    -
    652  &kZoneEurope_Prague, // 0x65ee5d48, Europe/Prague
    -
    653  &kZoneBrazil_Acre, // 0x66934f93, Brazil/Acre -> America/Rio_Branco
    -
    654  &kZoneBrazil_East, // 0x669578c5, Brazil/East -> America/Sao_Paulo
    -
    655  &kZoneAfrica_Kinshasa, // 0x6695d70c, Africa/Kinshasa -> Africa/Lagos
    -
    656  &kZoneBrazil_West, // 0x669f689b, Brazil/West -> America/Manaus
    -
    657  &kZoneAfrica_Mogadishu, // 0x66bc159b, Africa/Mogadishu -> Africa/Nairobi
    -
    658  &kZoneAmerica_Puerto_Rico, // 0x6752ca31, America/Puerto_Rico
    -
    659  &kZoneUS_Indiana_Starke, // 0x67977be7, US/Indiana-Starke -> America/Indiana/Knox
    -
    660  &kZoneAmerica_Buenos_Aires, // 0x67d79a05, America/Buenos_Aires -> America/Argentina/Buenos_Aires
    -
    661  &kZoneAfrica_Freetown, // 0x6823dd64, Africa/Freetown -> Africa/Abidjan
    -
    662  &kZoneIndian_Christmas, // 0x68c207d5, Indian/Christmas -> Asia/Bangkok
    -
    663  &kZoneAsia_Novokuznetsk, // 0x69264f93, Asia/Novokuznetsk
    -
    664  &kZoneAmerica_Indianapolis, // 0x6a009ae1, America/Indianapolis -> America/Indiana/Indianapolis
    -
    665  &kZoneEurope_Sarajevo, // 0x6a576c3f, Europe/Sarajevo -> Europe/Belgrade
    -
    666  &kZoneAmerica_Curacao, // 0x6a879184, America/Curacao -> America/Puerto_Rico
    -
    667  &kZoneAmerica_Tijuana, // 0x6aa1df72, America/Tijuana
    -
    668  &kZoneAsia_Makassar, // 0x6aa21c85, Asia/Makassar
    -
    669  &kZoneEurope_Helsinki, // 0x6ab2975b, Europe/Helsinki
    -
    670  &kZoneAmerica_Lower_Princes, // 0x6ae45b62, America/Lower_Princes -> America/Puerto_Rico
    -
    671  &kZoneAmerica_Porto_Velho, // 0x6b1aac77, America/Porto_Velho
    -
    672  &kZoneEurope_Samara, // 0x6bc0b139, Europe/Samara
    -
    673  &kZoneEurope_Skopje, // 0x6c76fdd0, Europe/Skopje -> Europe/Belgrade
    -
    674  &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton
    -
    675  &kZoneAmerica_Dawson_Creek, // 0x6cf24e5b, America/Dawson_Creek
    -
    676  &kZoneAsia_Rangoon, // 0x6d1217c6, Asia/Rangoon -> Asia/Yangon
    -
    677  &kZoneUS_East_Indiana, // 0x6dcf558a, US/East-Indiana -> America/Indiana/Indianapolis
    -
    678  &kZoneAmerica_Grand_Turk, // 0x6e216197, America/Grand_Turk
    -
    679  &kZoneAmerica_Blanc_Sablon, // 0x6e299892, America/Blanc-Sablon -> America/Puerto_Rico
    -
    680  &kZoneEurope_Tirane, // 0x6ea95b47, Europe/Tirane
    -
    681  &kZoneUS_Mountain, // 0x6eb88247, US/Mountain -> America/Denver
    -
    682  &kZoneAntarctica_McMurdo, // 0x6eeb5585, Antarctica/McMurdo -> Pacific/Auckland
    -
    683  &kZoneAmerica_Araguaina, // 0x6f9a3aef, America/Araguaina
    -
    684  &kZoneAfrica_Lubumbashi, // 0x6fd88566, Africa/Lubumbashi -> Africa/Maputo
    -
    685  &kZoneIndian_Reunion, // 0x7076c047, Indian/Reunion -> Asia/Dubai
    -
    686  &kZoneAsia_Qyzylorda, // 0x71282e81, Asia/Qyzylorda
    -
    687  &kZoneAsia_Kolkata, // 0x72c06cd9, Asia/Kolkata
    -
    688  &kZoneAmerica_Ciudad_Juarez, // 0x7347fc60, America/Ciudad_Juarez
    -
    689  &kZoneEurope_Vienna, // 0x734cc2e5, Europe/Vienna
    -
    690  &kZoneAfrica_Asmara, // 0x73b278ef, Africa/Asmara -> Africa/Nairobi
    -
    691  &kZoneAfrica_Asmera, // 0x73b289f3, Africa/Asmera -> Africa/Nairobi
    -
    692  &kZoneAsia_Kamchatka, // 0x73baf9d7, Asia/Kamchatka
    -
    693  &kZoneAmerica_Santarem, // 0x740caec1, America/Santarem
    -
    694  &kZoneAmerica_Santiago, // 0x7410c9bc, America/Santiago
    -
    695  &kZoneAfrica_Bamako, // 0x74c1e7a5, Africa/Bamako -> Africa/Abidjan
    -
    696  &kZoneAfrica_Bangui, // 0x74c28ed0, Africa/Bangui -> Africa/Lagos
    -
    697  &kZoneAfrica_Banjul, // 0x74c29b96, Africa/Banjul -> Africa/Abidjan
    -
    698  &kZoneEurope_Nicosia, // 0x74efab8a, Europe/Nicosia -> Asia/Nicosia
    -
    699  &kZoneEurope_Warsaw, // 0x75185c19, Europe/Warsaw
    -
    700  &kZoneAmerica_El_Salvador, // 0x752ad652, America/El_Salvador
    -
    701  &kZoneAfrica_Bissau, // 0x75564141, Africa/Bissau
    -
    702  &kZoneAmerica_Santo_Domingo, // 0x75a0d177, America/Santo_Domingo
    -
    703  &kZoneUS_Michigan, // 0x766bb7bc, US/Michigan -> America/Detroit
    -
    704  &kZoneCanada_Saskatchewan, // 0x77311f49, Canada/Saskatchewan -> America/Regina
    -
    705  &kZoneAfrica_Accra, // 0x77d5b054, Africa/Accra -> Africa/Abidjan
    -
    706  &kZoneAfrica_Cairo, // 0x77f8e228, Africa/Cairo
    -
    707  &kZoneAfrica_Ceuta, // 0x77fb46ec, Africa/Ceuta
    -
    708  &kZoneAfrica_Dakar, // 0x780b00fd, Africa/Dakar -> Africa/Abidjan
    -
    709  &kZoneAfrica_Lagos, // 0x789bb5d0, Africa/Lagos
    -
    710  &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek
    -
    711  &kZoneCanada_Yukon, // 0x78dd35c2, Canada/Yukon -> America/Whitehorse
    -
    712  &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto
    -
    713  &kZoneAmerica_Tortola, // 0x7931462b, America/Tortola -> America/Puerto_Rico
    -
    714  &kZoneAfrica_Tunis, // 0x79378e6d, Africa/Tunis
    -
    715  &kZoneAfrica_Douala, // 0x7a6df310, Africa/Douala -> Africa/Lagos
    -
    716  &kZoneAfrica_Conakry, // 0x7ab36b31, Africa/Conakry -> Africa/Abidjan
    -
    717  &kZoneIndian_Mauritius, // 0x7b09c02a, Indian/Mauritius
    -
    718  &kZoneAtlantic_Stanley, // 0x7bb3e1c4, Atlantic/Stanley
    -
    719  &kZoneAmerica_Ensenada, // 0x7bc95445, America/Ensenada -> America/Tijuana
    -
    720  &kZoneEurope_Zagreb, // 0x7c11c9ff, Europe/Zagreb -> Europe/Belgrade
    -
    721  &kZoneCuba, // 0x7c83cba0, Cuba -> America/Havana
    -
    722  &kZoneEire, // 0x7c84b36a, Eire -> Europe/Dublin
    -
    723  &kZoneGMT0, // 0x7c8550fd, GMT0 -> Etc/GMT
    -
    724  &kZoneIran, // 0x7c87090f, Iran -> Asia/Tehran
    -
    725  &kZoneW_SU, // 0x7c8d8ef1, W-SU -> Europe/Moscow
    -
    726  &kZoneZulu, // 0x7c9069b5, Zulu -> Etc/UTC
    -
    727  &kZoneEurope_Zurich, // 0x7d8195b9, Europe/Zurich
    -
    728  &kZoneChile_Continental, // 0x7e2bdb18, Chile/Continental -> America/Santiago
    -
    729  &kZoneAmerica_Fort_Wayne, // 0x7eaaaf24, America/Fort_Wayne -> America/Indiana/Indianapolis
    -
    730  &kZoneAsia_Kuching, // 0x801b003b, Asia/Kuching
    -
    731  &kZoneAtlantic_Madeira, // 0x81b5c037, Atlantic/Madeira
    -
    732  &kZoneAmerica_Atikokan, // 0x81b92098, America/Atikokan -> America/Panama
    -
    733  &kZoneAfrica_Harare, // 0x82c39a2d, Africa/Harare -> Africa/Maputo
    -
    734  &kZoneAmerica_Shiprock, // 0x82fb7049, America/Shiprock -> America/Denver
    -
    735  &kZonePacific_Kiritimati, // 0x8305073a, Pacific/Kiritimati
    -
    736  &kZoneAmerica_St_Vincent, // 0x8460e523, America/St_Vincent -> America/Puerto_Rico
    -
    737  &kZoneAmerica_Metlakatla, // 0x84de2686, America/Metlakatla
    -
    738  &kZoneAsia_Yakutsk, // 0x87bb3a9e, Asia/Yakutsk
    -
    739  &kZoneAmerica_Chihuahua, // 0x8827d776, America/Chihuahua
    -
    740  &kZonePacific_Pitcairn, // 0x8837d8bd, Pacific/Pitcairn
    -
    741  &kZoneAsia_Vientiane, // 0x89d68d75, Asia/Vientiane -> Asia/Bangkok
    -
    742  &kZonePacific_Chuuk, // 0x8a090b23, Pacific/Chuuk -> Pacific/Port_Moresby
    -
    743  &kZonePacific_Efate, // 0x8a2bce28, Pacific/Efate
    -
    744  &kZoneAfrica_Kigali, // 0x8a4dcf2b, Africa/Kigali -> Africa/Maputo
    -
    745  &kZoneAustralia_ACT, // 0x8a970eb2, Australia/ACT -> Australia/Sydney
    -
    746  &kZoneAustralia_LHI, // 0x8a973e17, Australia/LHI -> Australia/Lord_Howe
    -
    747  &kZoneAustralia_NSW, // 0x8a974812, Australia/NSW -> Australia/Sydney
    -
    748  &kZonePacific_Nauru, // 0x8acc41ae, Pacific/Nauru
    -
    749  &kZoneEST5EDT, // 0x8adc72a3, EST5EDT -> America/New_York
    -
    750  &kZonePacific_Palau, // 0x8af04a36, Pacific/Palau
    -
    751  &kZonePacific_Samoa, // 0x8b2699b4, Pacific/Samoa -> Pacific/Pago_Pago
    -
    752  &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg
    -
    753  &kZoneAustralia_Eucla, // 0x8cf99e44, Australia/Eucla
    -
    754  &kZoneAmerica_Argentina_Catamarca, // 0x8d40986b, America/Argentina/Catamarca
    -
    755  &kZoneAfrica_Luanda, // 0x8d7909cf, Africa/Luanda -> Africa/Lagos
    -
    756  &kZoneAfrica_Lusaka, // 0x8d82b23b, Africa/Lusaka -> Africa/Maputo
    -
    757  &kZoneAustralia_North, // 0x8d997165, Australia/North -> Australia/Darwin
    -
    758  &kZoneAustralia_Perth, // 0x8db8269d, Australia/Perth
    -
    759  &kZoneAustralia_South, // 0x8df3f8ad, Australia/South -> Australia/Adelaide
    -
    760  &kZonePacific_Kwajalein, // 0x8e216759, Pacific/Kwajalein
    -
    761  &kZoneAmerica_Port_au_Prince, // 0x8e4a7bdc, America/Port-au-Prince
    -
    762  &kZoneAfrica_Malabo, // 0x8e6a1906, Africa/Malabo -> Africa/Lagos
    -
    763  &kZoneAfrica_Maputo, // 0x8e6ca1f0, Africa/Maputo
    -
    764  &kZoneAfrica_Maseru, // 0x8e6e02c7, Africa/Maseru -> Africa/Johannesburg
    -
    765  &kZonePacific_Norfolk, // 0x8f4eb4be, Pacific/Norfolk
    -
    766  &kZoneAmerica_Godthab, // 0x8f7eba1f, America/Godthab -> America/Nuuk
    -
    767  &kZoneAustralia_Yancowinna, // 0x90bac131, Australia/Yancowinna -> Australia/Broken_Hill
    -
    768  &kZoneAfrica_Niamey, // 0x914a30fd, Africa/Niamey -> Africa/Lagos
    -
    769  &kZoneAsia_Yerevan, // 0x9185c8cc, Asia/Yerevan
    -
    770  &kZoneAmerica_Detroit, // 0x925cfbc1, America/Detroit
    -
    771  &kZoneAsia_Choibalsan, // 0x928aa4a6, Asia/Choibalsan -> Asia/Ulaanbaatar
    -
    772  &kZoneAntarctica_Macquarie, // 0x92f47626, Antarctica/Macquarie
    -
    773  &kZoneAmerica_Belize, // 0x93256c81, America/Belize
    -
    774  &kZoneMexico_General, // 0x93711d57, Mexico/General -> America/Mexico_City
    -
    775  &kZoneAmerica_Bogota, // 0x93d7bc62, America/Bogota
    -
    776  &kZoneAsia_Pyongyang, // 0x93ed1c8e, Asia/Pyongyang
    -
    777  &kZoneAmerica_Indiana_Petersburg, // 0x94ac7acc, America/Indiana/Petersburg
    -
    778  &kZoneAmerica_Cancun, // 0x953331be, America/Cancun
    -
    779  &kZoneAmerica_Cayman, // 0x953961df, America/Cayman -> America/Panama
    -
    780  &kZoneAmerica_Glace_Bay, // 0x9681f8dd, America/Glace_Bay
    -
    781  &kZoneAsia_Khandyga, // 0x9685a4d9, Asia/Khandyga
    -
    782  &kZoneAmerica_Grenada, // 0x968ce4d8, America/Grenada -> America/Puerto_Rico
    -
    783  &kZoneAmerica_Cuiaba, // 0x969a52eb, America/Cuiaba
    -
    784  &kZoneAmerica_Dawson, // 0x978d8d12, America/Dawson
    -
    785  &kZoneAmerica_Aruba, // 0x97cf8651, America/Aruba -> America/Puerto_Rico
    -
    786  &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver
    -
    787  &kZoneAmerica_Bahia, // 0x97d815fb, America/Bahia
    -
    788  &kZoneAmerica_Belem, // 0x97da580b, America/Belem
    -
    789  &kZoneAmerica_Boise, // 0x97dfc8d8, America/Boise
    -
    790  &kZoneEurope_Andorra, // 0x97f6764b, Europe/Andorra
    -
    791  &kZoneAmerica_Adak, // 0x97fe49d7, America/Adak
    -
    792  &kZoneAmerica_Atka, // 0x97fe8f27, America/Atka -> America/Adak
    -
    793  &kZoneAmerica_Lima, // 0x980468c9, America/Lima
    -
    794  &kZoneAmerica_Nome, // 0x98059b15, America/Nome
    -
    795  &kZoneAmerica_Nuuk, // 0x9805b5a9, America/Nuuk
    -
    796  &kZoneIndian_Maldives, // 0x9869681c, Indian/Maldives
    -
    797  &kZoneAmerica_Jujuy, // 0x9873dbbd, America/Jujuy -> America/Argentina/Jujuy
    -
    798  &kZoneAmerica_Sitka, // 0x99104ce2, America/Sitka
    -
    799  &kZoneAmerica_Thule, // 0x9921dd68, America/Thule
    -
    800  &kZonePacific_Rarotonga, // 0x9981a3b0, Pacific/Rarotonga
    -
    801  &kZoneAsia_Kathmandu, // 0x9a96ce6f, Asia/Kathmandu
    -
    802  &kZoneBrazil_DeNoronha, // 0x9b4cb496, Brazil/DeNoronha -> America/Noronha
    -
    803  &kZoneAmerica_North_Dakota_Beulah, // 0x9b52b384, America/North_Dakota/Beulah
    -
    804  &kZoneAmerica_Rainy_River, // 0x9cd58a10, America/Rainy_River -> America/Winnipeg
    -
    805  &kZoneEurope_Budapest, // 0x9ce0197c, Europe/Budapest
    -
    806  &kZoneAsia_Baghdad, // 0x9ceffbed, Asia/Baghdad
    -
    807  &kZoneAsia_Bahrain, // 0x9d078487, Asia/Bahrain -> Asia/Qatar
    -
    808  &kZoneEtc_GMT_PLUS_0, // 0x9d13da13, Etc/GMT+0 -> Etc/GMT
    -
    809  &kZoneEtc_GMT_PLUS_1, // 0x9d13da14, Etc/GMT+1
    -
    810  &kZoneEtc_GMT_PLUS_2, // 0x9d13da15, Etc/GMT+2
    -
    811  &kZoneEtc_GMT_PLUS_3, // 0x9d13da16, Etc/GMT+3
    -
    812  &kZoneEtc_GMT_PLUS_4, // 0x9d13da17, Etc/GMT+4
    -
    813  &kZoneEtc_GMT_PLUS_5, // 0x9d13da18, Etc/GMT+5
    -
    814  &kZoneEtc_GMT_PLUS_6, // 0x9d13da19, Etc/GMT+6
    -
    815  &kZoneEtc_GMT_PLUS_7, // 0x9d13da1a, Etc/GMT+7
    -
    816  &kZoneEtc_GMT_PLUS_8, // 0x9d13da1b, Etc/GMT+8
    -
    817  &kZoneEtc_GMT_PLUS_9, // 0x9d13da1c, Etc/GMT+9
    -
    818  &kZoneEtc_GMT_0, // 0x9d13da55, Etc/GMT-0 -> Etc/GMT
    -
    819  &kZoneEtc_GMT_1, // 0x9d13da56, Etc/GMT-1
    -
    820  &kZoneEtc_GMT_2, // 0x9d13da57, Etc/GMT-2
    -
    821  &kZoneEtc_GMT_3, // 0x9d13da58, Etc/GMT-3
    -
    822  &kZoneEtc_GMT_4, // 0x9d13da59, Etc/GMT-4
    -
    823  &kZoneEtc_GMT_5, // 0x9d13da5a, Etc/GMT-5
    -
    824  &kZoneEtc_GMT_6, // 0x9d13da5b, Etc/GMT-6
    -
    825  &kZoneEtc_GMT_7, // 0x9d13da5c, Etc/GMT-7
    -
    826  &kZoneEtc_GMT_8, // 0x9d13da5d, Etc/GMT-8
    -
    827  &kZoneEtc_GMT_9, // 0x9d13da5e, Etc/GMT-9
    -
    828  &kZoneAmerica_Nipigon, // 0x9d2a8b1a, America/Nipigon -> America/Toronto
    -
    829  &kZoneAmerica_Rio_Branco, // 0x9d352764, America/Rio_Branco
    -
    830  &kZoneAsia_Bangkok, // 0x9d6e3aaf, Asia/Bangkok
    -
    831  &kZoneAfrica_El_Aaiun, // 0x9d6fb118, Africa/El_Aaiun
    -
    832  &kZoneAmerica_North_Dakota_Center, // 0x9da42814, America/North_Dakota/Center
    -
    833  &kZoneAsia_Barnaul, // 0x9dba4997, Asia/Barnaul
    -
    834  &kZoneAfrica_Tripoli, // 0x9dfebd3d, Africa/Tripoli
    -
    835  &kZoneEurope_Istanbul, // 0x9e09d6e6, Europe/Istanbul
    -
    836  &kZoneIndian_Antananarivo, // 0x9ebf5289, Indian/Antananarivo -> Africa/Nairobi
    -
    837  &kZoneAfrica_Ndjamena, // 0x9fe09898, Africa/Ndjamena
    -
    838  &kZoneAmerica_Guyana, // 0x9ff7bd0b, America/Guyana
    -
    839  &kZoneAfrica_Dar_es_Salaam, // 0xa04c47b6, Africa/Dar_es_Salaam -> Africa/Nairobi
    -
    840  &kZoneAmerica_Havana, // 0xa0e15675, America/Havana
    -
    841  &kZoneAsia_Novosibirsk, // 0xa2a435cb, Asia/Novosibirsk
    -
    842  &kZoneEurope_Kiev, // 0xa2c19eb3, Europe/Kiev -> Europe/Kyiv
    -
    843  &kZoneEurope_Kyiv, // 0xa2c1e347, Europe/Kyiv
    -
    844  &kZoneEurope_Oslo, // 0xa2c3fba1, Europe/Oslo -> Europe/Berlin
    -
    845  &kZoneEurope_Riga, // 0xa2c57587, Europe/Riga
    -
    846  &kZoneEurope_Rome, // 0xa2c58fd7, Europe/Rome
    -
    847  &kZoneAmerica_Inuvik, // 0xa42189fc, America/Inuvik
    -
    848  &kZoneAmerica_Argentina_La_Rioja, // 0xa46b7eef, America/Argentina/La_Rioja
    -
    849  &kZoneAsia_Almaty, // 0xa61f41fa, Asia/Almaty
    -
    850  &kZoneAsia_Anadyr, // 0xa63cebd1, Asia/Anadyr
    -
    851  &kZoneAsia_Aqtobe, // 0xa67dcc4e, Asia/Aqtobe
    -
    852  &kZoneAsia_Atyrau, // 0xa6b6e068, Asia/Atyrau
    -
    853  &kZoneAmerica_Juneau, // 0xa6f13e2e, America/Juneau
    -
    854  &kZoneAustralia_Lord_Howe, // 0xa748b67d, Australia/Lord_Howe
    -
    855  &kZonePacific_Port_Moresby, // 0xa7ba7f68, Pacific/Port_Moresby
    -
    856  &kZoneAsia_Katmandu, // 0xa7ec12c7, Asia/Katmandu -> Asia/Kathmandu
    -
    857  &kZoneAsia_Beirut, // 0xa7f3d5fd, Asia/Beirut
    -
    858  &kZoneSingapore, // 0xa8598c8d, Singapore -> Asia/Singapore
    -
    859  &kZoneAfrica_Nairobi, // 0xa87ab57e, Africa/Nairobi
    -
    860  &kZoneAsia_Brunei, // 0xa8e595f7, Asia/Brunei -> Asia/Kuching
    -
    861  &kZoneUS_Pacific, // 0xa950f6ab, US/Pacific -> America/Los_Angeles
    -
    862  &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos
    -
    863  &kZoneAmerica_Argentina_Mendoza, // 0xa9f72d5c, America/Argentina/Mendoza
    -
    864  &kZoneAmerica_La_Paz, // 0xaa29125d, America/La_Paz
    -
    865  &kZoneAmerica_Noronha, // 0xab5116fb, America/Noronha
    -
    866  &kZoneAmerica_Coral_Harbour, // 0xabcb7569, America/Coral_Harbour -> America/Panama
    -
    867  &kZoneAmerica_Maceio, // 0xac80c6d4, America/Maceio
    -
    868  &kZoneAmerica_Manaus, // 0xac86bf8b, America/Manaus
    -
    869  &kZoneAmerica_Merida, // 0xacd172d8, America/Merida
    -
    870  &kZoneEurope_Chisinau, // 0xad58aa18, Europe/Chisinau
    -
    871  &kZoneAmerica_Nassau, // 0xaedef011, America/Nassau -> America/Toronto
    -
    872  &kZoneAmerica_Anguilla, // 0xafe31333, America/Anguilla -> America/Puerto_Rico
    -
    873  &kZoneEurope_Uzhgorod, // 0xb066f5d6, Europe/Uzhgorod -> Europe/Kyiv
    -
    874  &kZoneAustralia_Broken_Hill, // 0xb06eada3, Australia/Broken_Hill
    -
    875  &kZoneAsia_Bishkek, // 0xb0728553, Asia/Bishkek
    -
    876  &kZoneChile_EasterIsland, // 0xb0982af8, Chile/EasterIsland -> Pacific/Easter
    -
    877  &kZonePacific_Johnston, // 0xb15d7b36, Pacific/Johnston -> Pacific/Honolulu
    -
    878  &kZoneAfrica_Timbuktu, // 0xb164d56f, Africa/Timbuktu -> Africa/Abidjan
    -
    879  &kZoneAmerica_St_Thomas, // 0xb1b3d778, America/St_Thomas -> America/Puerto_Rico
    -
    880  &kZoneAmerica_Paramaribo, // 0xb319e4c4, America/Paramaribo
    -
    881  &kZoneAmerica_Panama, // 0xb3863854, America/Panama
    -
    882  &kZoneCanada_Newfoundland, // 0xb396e991, Canada/Newfoundland -> America/St_Johns
    -
    883  &kZoneAsia_Harbin, // 0xb5af1186, Asia/Harbin -> Asia/Shanghai
    -
    884  &kZoneAsia_Hebron, // 0xb5eef250, Asia/Hebron
    -
    885  &kZoneAmerica_Goose_Bay, // 0xb649541e, America/Goose_Bay
    -
    886  &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles
    -
    887  &kZoneAmerica_Recife, // 0xb8730494, America/Recife
    -
    888  &kZoneAmerica_Regina, // 0xb875371c, America/Regina
    -
    889  &kZoneAsia_Ashgabat, // 0xba87598d, Asia/Ashgabat
    -
    890  &kZoneIsrael, // 0xba88c9e5, Israel -> Asia/Jerusalem
    -
    891  &kZonePacific_Yap, // 0xbb40138d, Pacific/Yap -> Pacific/Port_Moresby
    -
    892  &kZoneAmerica_Halifax, // 0xbc5b7183, America/Halifax
    -
    893  &kZoneEurope_Ljubljana, // 0xbd98cdb7, Europe/Ljubljana -> Europe/Belgrade
    -
    894  &kZoneAsia_Kuwait, // 0xbe1b2f27, Asia/Kuwait -> Asia/Riyadh
    -
    895  &kZoneEurope_Tiraspol, // 0xbe704472, Europe/Tiraspol -> Europe/Chisinau
    -
    896  &kZoneAsia_Srednekolymsk, // 0xbf8e337d, Asia/Srednekolymsk
    -
    897  &kZoneAmerica_Argentina_Cordoba, // 0xbfccc308, America/Argentina/Cordoba
    -
    898  &kZoneAmerica_Tegucigalpa, // 0xbfd6fd4c, America/Tegucigalpa
    -
    899  &kZoneAmerica_Antigua, // 0xc067a32f, America/Antigua -> America/Puerto_Rico
    -
    900  &kZoneEurope_Busingen, // 0xc06d2cdf, Europe/Busingen -> Europe/Zurich
    -
    901  &kZoneAsia_Manila, // 0xc156c944, Asia/Manila
    -
    902  &kZoneAfrica_Kampala, // 0xc1d30e31, Africa/Kampala -> Africa/Nairobi
    -
    903  &kZoneAmerica_Knox_IN, // 0xc1db9a1c, America/Knox_IN -> America/Indiana/Knox
    -
    904  &kZoneAfrica_Abidjan, // 0xc21305a3, Africa/Abidjan
    -
    905  &kZoneAmerica_Virgin, // 0xc2183ab5, America/Virgin -> America/Puerto_Rico
    -
    906  &kZoneAsia_Phnom_Penh, // 0xc224945e, Asia/Phnom_Penh -> Asia/Bangkok
    -
    907  &kZoneAsia_Muscat, // 0xc2c3565f, Asia/Muscat -> Asia/Dubai
    -
    908  &kZoneAmerica_Punta_Arenas, // 0xc2c3bce7, America/Punta_Arenas
    -
    909  &kZonePortugal, // 0xc3274593, Portugal -> Europe/Lisbon
    -
    910  &kZoneNavajo, // 0xc4ef0e24, Navajo -> America/Denver
    -
    911  &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca
    -
    912  &kZoneAmerica_Argentina_Rio_Gallegos, // 0xc5b0f565, America/Argentina/Rio_Gallegos
    -
    913  &kZoneAsia_Jayapura, // 0xc6833c2f, Asia/Jayapura
    -
    914  &kZoneAmerica_Resolute, // 0xc7093459, America/Resolute
    -
    915  &kZoneAsia_Chungking, // 0xc7121dd0, Asia/Chungking -> Asia/Shanghai
    -
    916  &kZoneGreenwich, // 0xc84d4221, Greenwich -> Etc/GMT
    -
    917  &kZoneAmerica_Rankin_Inlet, // 0xc8de4984, America/Rankin_Inlet
    -
    918  &kZonePoland, // 0xca913b23, Poland -> Europe/Warsaw
    -
    919  &kZoneUS_Central, // 0xcabdcb25, US/Central -> America/Chicago
    -
    920  &kZoneEurope_Vatican, // 0xcb485dca, Europe/Vatican -> Europe/Rome
    -
    921  &kZoneAmerica_Barbados, // 0xcbbc3b04, America/Barbados
    -
    922  &kZoneAmerica_Coyhaique, // 0xcc3314ee, America/Coyhaique
    -
    923  &kZoneAmerica_Porto_Acre, // 0xcce5bf54, America/Porto_Acre -> America/Rio_Branco
    -
    924  &kZoneAmerica_Guadeloupe, // 0xcd1f8a31, America/Guadeloupe -> America/Puerto_Rico
    -
    925  &kZoneAntarctica_South_Pole, // 0xcd96b290, Antarctica/South_Pole -> Pacific/Auckland
    -
    926  &kZoneAsia_Riyadh, // 0xcd973d93, Asia/Riyadh
    -
    927  &kZoneAmerica_Dominica, // 0xcecb4c4a, America/Dominica -> America/Puerto_Rico
    -
    928  &kZoneEurope_San_Marino, // 0xcef7724b, Europe/San_Marino -> Europe/Rome
    -
    929  &kZoneAsia_Saigon, // 0xcf52f713, Asia/Saigon -> Asia/Ho_Chi_Minh
    -
    930  &kZonePacific_Easter, // 0xcf54f7e7, Pacific/Easter
    -
    931  &kZoneAsia_Singapore, // 0xcf8581fa, Asia/Singapore
    -
    932  &kZoneAsia_Krasnoyarsk, // 0xd0376c6a, Asia/Krasnoyarsk
    -
    933  &kZoneEurope_Belfast, // 0xd07dd1e5, Europe/Belfast -> Europe/London
    -
    934  &kZoneAmerica_Mexico_City, // 0xd0d93f43, America/Mexico_City
    -
    935  &kZoneUniversal, // 0xd0ff523e, Universal -> Etc/UTC
    -
    936  &kZoneAsia_Taipei, // 0xd1a844ae, Asia/Taipei
    -
    937  &kZoneAsia_Tehran, // 0xd1f02254, Asia/Tehran
    -
    938  &kZoneAsia_Thimbu, // 0xd226e31b, Asia/Thimbu -> Asia/Thimphu
    -
    939  &kZoneArctic_Longyearbyen, // 0xd23e7859, Arctic/Longyearbyen -> Europe/Berlin
    -
    940  &kZoneAustralia_Queensland, // 0xd326ed0a, Australia/Queensland -> Australia/Brisbane
    -
    941  &kZoneEurope_Kaliningrad, // 0xd33b2f28, Europe/Kaliningrad
    -
    942  &kZoneAmerica_Argentina_Buenos_Aires, // 0xd43b4c0d, America/Argentina/Buenos_Aires
    -
    943  &kZoneTurkey, // 0xd455e469, Turkey -> Europe/Istanbul
    -
    944  &kZoneAfrica_Juba, // 0xd51b395c, Africa/Juba
    -
    945  &kZoneAfrica_Lome, // 0xd51c3a07, Africa/Lome -> Africa/Abidjan
    -
    946  &kZoneAsia_Urumqi, // 0xd5379735, Asia/Urumqi
    -
    947  &kZoneAmerica_Cambridge_Bay, // 0xd5a44aff, America/Cambridge_Bay
    -
    948  &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg
    -
    949  &kZoneAmerica_Port_of_Spain, // 0xd8b28d59, America/Port_of_Spain -> America/Puerto_Rico
    -
    950  &kZoneEtc_GMT, // 0xd8e2de58, Etc/GMT
    -
    951  &kZoneEtc_UCT, // 0xd8e3189c, Etc/UCT -> Etc/UTC
    -
    952  &kZoneEtc_UTC, // 0xd8e31abc, Etc/UTC
    -
    953  &kZoneAmerica_Yakutat, // 0xd8ee31e9, America/Yakutat
    -
    954  &kZoneAfrica_Algiers, // 0xd94515c1, Africa/Algiers
    -
    955  &kZonePST8PDT, // 0xd99ee2dc, PST8PDT -> America/Los_Angeles
    -
    956  &kZoneEurope_Bratislava, // 0xda493bed, Europe/Bratislava -> Europe/Prague
    -
    957  &kZoneEurope_Simferopol, // 0xda9eb724, Europe/Simferopol
    -
    958  &kZonePacific_Funafuti, // 0xdb402d65, Pacific/Funafuti -> Pacific/Tarawa
    -
    959  &kZoneAmerica_Matamoros, // 0xdd1b0259, America/Matamoros
    -
    960  &kZonePacific_Kanton, // 0xdd512f0e, Pacific/Kanton
    -
    961  &kZoneAsia_Yangon, // 0xdd54a8be, Asia/Yangon
    -
    962  &kZoneEurope_Vilnius, // 0xdd63b8ce, Europe/Vilnius
    -
    963  &kZoneAustralia_West, // 0xdd858a5d, Australia/West -> Australia/Perth
    -
    964  &kZonePacific_Kosrae, // 0xde5139a8, Pacific/Kosrae
    -
    965  &kZoneAmerica_Kentucky_Monticello, // 0xde71c439, America/Kentucky/Monticello
    -
    966  &kZoneEurope_Brussels, // 0xdee07337, Europe/Brussels
    -
    967  &kZoneAmerica_Swift_Current, // 0xdef98e55, America/Swift_Current
    -
    968  &kZoneAmerica_Rosario, // 0xdf448665, America/Rosario -> America/Argentina/Cordoba
    -
    969  &kZoneAsia_Irkutsk, // 0xdfbf213f, Asia/Irkutsk
    -
    970  &kZoneEurope_Ulyanovsk, // 0xe03783d0, Europe/Ulyanovsk
    -
    971  &kZoneAustralia_Lindeman, // 0xe05029e2, Australia/Lindeman
    -
    972  &kZoneEurope_Belgrade, // 0xe0532b3a, Europe/Belgrade
    -
    973  &kZoneAfrica_Blantyre, // 0xe08d813b, Africa/Blantyre -> Africa/Maputo
    -
    974  &kZoneAmerica_Menominee, // 0xe0e9c583, America/Menominee
    -
    975  &kZoneEurope_Copenhagen, // 0xe0ed30bc, Europe/Copenhagen -> Europe/Berlin
    -
    976  &kZoneAtlantic_Faroe, // 0xe110a971, Atlantic/Faroe
    -
    977  &kZonePacific_Majuro, // 0xe1f95371, Pacific/Majuro -> Pacific/Tarawa
    -
    978  &kZoneAntarctica_Casey, // 0xe2022583, Antarctica/Casey
    -
    979  &kZoneAntarctica_Davis, // 0xe2144b45, Antarctica/Davis
    -
    980  &kZoneEurope_Astrakhan, // 0xe22256e1, Europe/Astrakhan
    -
    981  &kZonePacific_Midway, // 0xe286d38e, Pacific/Midway -> Pacific/Pago_Pago
    -
    982  &kZoneAntarctica_Syowa, // 0xe330c7e1, Antarctica/Syowa -> Asia/Riyadh
    -
    983  &kZoneAntarctica_Troll, // 0xe33f085b, Antarctica/Troll
    -
    984  &kZoneEurope_Saratov, // 0xe4315da4, Europe/Saratov
    -
    985  &kZonePacific_Noumea, // 0xe551b788, Pacific/Noumea
    -
    986  &kZoneIceland, // 0xe56a35b5, Iceland -> Africa/Abidjan
    -
    987  &kZoneIndian_Mayotte, // 0xe6880bca, Indian/Mayotte -> Africa/Nairobi
    -
    988  &kZoneAustralia_Tasmania, // 0xe6d76648, Australia/Tasmania -> Australia/Hobart
    -
    989  &kZonePacific_Honolulu, // 0xe6e70af9, Pacific/Honolulu
    -
    990  &kZoneAmerica_Kralendijk, // 0xe7c456c5, America/Kralendijk -> America/Puerto_Rico
    -
    991  &kZoneAmerica_Argentina_Tucuman, // 0xe96399eb, America/Argentina/Tucuman
    -
    992  &kZonePacific_Ponape, // 0xe9f80086, Pacific/Ponape -> Pacific/Guadalcanal
    -
    993  &kZoneEurope_Zaporozhye, // 0xeab9767f, Europe/Zaporozhye -> Europe/Kyiv
    -
    994  &kZoneEurope_Isle_of_Man, // 0xeaf84580, Europe/Isle_of_Man -> Europe/London
    -
    995  &kZoneAsia_Magadan, // 0xebacc19b, Asia/Magadan
    -
    996  &kZoneAmerica_Ojinaga, // 0xebfde83f, America/Ojinaga
    -
    997  &kZonePacific_Saipan, // 0xeff7a35f, Pacific/Saipan -> Pacific/Guam
    -
    998  &kZoneCST6CDT, // 0xf0e87d00, CST6CDT -> America/Chicago
    -
    999  &kZonePacific_Tahiti, // 0xf24c2446, Pacific/Tahiti
    -
    1000  &kZonePacific_Tarawa, // 0xf2517e63, Pacific/Tarawa
    -
    1001  &kZoneMST7MDT, // 0xf2af9375, MST7MDT -> America/Denver
    -
    1002  &kZoneCanada_Eastern, // 0xf3612d5e, Canada/Eastern -> America/Toronto
    -
    1003  &kZoneAsia_Tashkent, // 0xf3924254, Asia/Tashkent
    -
    1004  &kZoneAsia_Sakhalin, // 0xf4a1c9bd, Asia/Sakhalin
    -
    1005  &kZonePacific_Guadalcanal, // 0xf4dd25f0, Pacific/Guadalcanal
    -
    1006  &kZoneEtc_GMT0, // 0xf53ea988, Etc/GMT0 -> Etc/GMT
    -
    1007  &kZoneEtc_Zulu, // 0xf549c240, Etc/Zulu -> Etc/UTC
    -
    1008  &kZoneAmerica_Danmarkshavn, // 0xf554d204, America/Danmarkshavn
    -
    1009  &kZoneAsia_Shanghai, // 0xf895a7f5, Asia/Shanghai
    -
    1010  &kZoneEurope_Gibraltar, // 0xf8e325fc, Europe/Gibraltar
    -
    1011  &kZoneAsia_Chongqing, // 0xf937fb90, Asia/Chongqing -> Asia/Shanghai
    -
    1012  &kZoneAtlantic_Azores, // 0xf93ed918, Atlantic/Azores
    -
    1013  &kZonePacific_Wallis, // 0xf94ddb0f, Pacific/Wallis -> Pacific/Tarawa
    -
    1014  &kZoneAmerica_Thunder_Bay, // 0xf962e71b, America/Thunder_Bay -> America/Toronto
    -
    1015  &kZoneAmerica_Eirunepe, // 0xf9b29683, America/Eirunepe
    -
    1016  &kZoneAmerica_Montevideo, // 0xfa214780, America/Montevideo
    -
    1017  &kZoneUS_Alaska, // 0xfa300bc9, US/Alaska -> America/Anchorage
    -
    1018  &kZoneGB_Eire, // 0xfa70e300, GB-Eire -> Europe/London
    -
    1019  &kZoneEurope_Kirov, // 0xfaf5abef, Europe/Kirov
    -
    1020  &kZoneEurope_Malta, // 0xfb1560f3, Europe/Malta
    -
    1021  &kZoneEurope_Minsk, // 0xfb19cc66, Europe/Minsk
    -
    1022  &kZoneEurope_Bucharest, // 0xfb349ec5, Europe/Bucharest
    -
    1023  &kZoneAfrica_Khartoum, // 0xfb3d4205, Africa/Khartoum
    -
    1024  &kZoneEurope_Paris, // 0xfb4bc2a3, Europe/Paris
    -
    1025  &kZoneAsia_Yekaterinburg, // 0xfb544c6e, Asia/Yekaterinburg
    -
    1026  &kZoneEurope_Sofia, // 0xfb898656, Europe/Sofia
    -
    1027  &kZoneCanada_Mountain, // 0xfb8a8217, Canada/Mountain -> America/Edmonton
    -
    1028  &kZoneEurope_Vaduz, // 0xfbb81bae, Europe/Vaduz -> Europe/Zurich
    -
    1029  &kZoneAtlantic_Canary, // 0xfc23f2c2, Atlantic/Canary
    -
    1030  &kZoneMexico_BajaNorte, // 0xfcf7150f, Mexico/BajaNorte -> America/Tijuana
    -
    1031  &kZoneAmerica_Santa_Isabel, // 0xfd18a56c, America/Santa_Isabel -> America/Tijuana
    -
    1032  &kZoneAmerica_Campo_Grande, // 0xfec3e7a6, America/Campo_Grande
    -
    1033 
    -
    1034 };
    -
    1035 
    -
    1036 }
    -
    1037 }
    -
    Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...
    -
    - - - - diff --git a/docs/html/zonedbx_2zone__registry_8h_source.html b/docs/html/zonedbx_2zone__registry_8h_source.html deleted file mode 100644 index 57f74814f..000000000 --- a/docs/html/zonedbx_2zone__registry_8h_source.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -AceTime: /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/zone_registry.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    AceTime -  3.0.0 -
    -
    Date and time classes for Arduino that support timezones from the TZ Database.
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    zone_registry.h
    -
    -
    -
    1 // This file was generated by the following script:
    -
    2 //
    -
    3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
    -
    4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/tzfiles
    -
    5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx
    -
    6 // --tz_version 2025b
    -
    7 // --action zonedb
    -
    8 // --language arduino
    -
    9 // --scope extended
    -
    10 // --db_namespace zonedbx
    -
    11 // --zi_namespace extended::Info
    -
    12 // --start_year 2000
    -
    13 // --until_year 2200
    -
    14 //
    -
    15 // using the TZ Database files
    -
    16 //
    -
    17 // africa
    -
    18 // antarctica
    -
    19 // asia
    -
    20 // australasia
    -
    21 // backward
    -
    22 // etcetera
    -
    23 // europe
    -
    24 // northamerica
    -
    25 // southamerica
    -
    26 //
    -
    27 // from https://github.com/eggert/tz/releases/tag/2025b
    -
    28 //
    -
    29 // Supported Zones: 597 (340 zones, 257 links)
    -
    30 // Unsupported Zones: 0 (0 zones, 0 links)
    -
    31 //
    -
    32 // Requested Years: [2000,2200]
    -
    33 // Accurate Years: [2000,32767]
    -
    34 //
    -
    35 // Original Years: [1844,2087]
    -
    36 // Generated Years: [1950,2087]
    -
    37 // Lower/Upper Truncated: [True,False]
    -
    38 //
    -
    39 // Estimator Years: [1950,2090]
    -
    40 // Max Buffer Size: 7
    -
    41 //
    -
    42 // Records:
    -
    43 // Infos: 597
    -
    44 // Eras: 647
    -
    45 // Policies: 82
    -
    46 // Rules: 731
    -
    47 //
    -
    48 // Memory (8-bits):
    -
    49 // Context: 16
    -
    50 // Rules: 6579
    -
    51 // Policies: 246
    -
    52 // Eras: 7117
    -
    53 // Zones: 4420
    -
    54 // Links: 3341
    -
    55 // Registry: 1194
    -
    56 // Formats: 231
    -
    57 // Letters: 46
    -
    58 // Fragments: 150
    -
    59 // Names: 5660 (original: 9094)
    -
    60 // TOTAL: 29000
    -
    61 //
    -
    62 // Memory (32-bits):
    -
    63 // Context: 24
    -
    64 // Rules: 8772
    -
    65 // Policies: 656
    -
    66 // Eras: 10352
    -
    67 // Zones: 8160
    -
    68 // Links: 6168
    -
    69 // Registry: 2388
    -
    70 // Formats: 231
    -
    71 // Letters: 64
    -
    72 // Fragments: 178
    -
    73 // Names: 5660 (original: 9094)
    -
    74 // TOTAL: 42653
    -
    75 //
    -
    76 // DO NOT EDIT
    -
    77 
    -
    78 #ifndef ACE_TIME_ZONEDBX_ZONE_REGISTRY_H
    -
    79 #define ACE_TIME_ZONEDBX_ZONE_REGISTRY_H
    -
    80 
    -
    81 #include <zoneinfo/infos.h>
    -
    82 
    -
    83 namespace ace_time {
    -
    84 namespace zonedbx {
    -
    85 
    -
    86 // Zones
    -
    87 const uint16_t kZoneRegistrySize = 340;
    -
    88 extern const extended::Info::ZoneInfo* const kZoneRegistry[340];
    -
    89 
    -
    90 // Zones and Links
    -
    91 const uint16_t kZoneAndLinkRegistrySize = 597;
    -
    92 extern const extended::Info::ZoneInfo* const kZoneAndLinkRegistry[597];
    -
    93 
    -
    94 }
    -
    95 }
    -
    96 #endif
    -
    - - - - From b39983b547d2abbce147801fe9a28fe3424a89e5 Mon Sep 17 00:00:00 2001 From: Brian Park Date: Tue, 21 Oct 2025 14:27:47 -0700 Subject: [PATCH 2/3] Merge v4.0.0 from AceTimeSuite --- CHANGELOG.md | 91 +- DEVELOPER.md | 483 +- MIGRATING.md | 130 +- README.md | 608 +- USER_GUIDE.md | 1476 +- examples/AutoBenchmark/AutoBenchmark.ino | 12 +- examples/AutoBenchmark/Benchmark.cpp | 66 +- examples/AutoBenchmark/README.md | 642 +- examples/AutoBenchmark/esp32.txt | 58 +- examples/AutoBenchmark/esp8266.txt | 58 +- examples/AutoBenchmark/generate_readme.py | 232 +- examples/AutoBenchmark/generate_table.awk | 2 +- examples/AutoBenchmark/micro.txt | 34 +- examples/AutoBenchmark/nano.txt | 32 +- examples/AutoBenchmark/samd21.txt | 78 +- examples/AutoBenchmark/samd51.txt | 66 +- examples/AutoBenchmark/stm32.txt | 72 +- examples/ComparisonBenchmark/Benchmark.cpp | 20 +- examples/ComparisonBenchmark/README.md | 32 +- examples/ComparisonBenchmark/esp32.txt | 4 +- examples/ComparisonBenchmark/esp8266.txt | 4 +- .../ComparisonBenchmark/generate_readme.py | 4 +- .../ComparisonBenchmark/generate_table.awk | 4 +- examples/ComparisonBenchmark/micro.txt | 4 +- examples/ComparisonBenchmark/nano.txt | 4 +- examples/ComparisonBenchmark/samd21.txt | 4 +- examples/ComparisonBenchmark/samd51.txt | 4 +- examples/ComparisonBenchmark/stm32.txt | 4 +- examples/ComparisonBenchmark/teensy32.txt | 4 +- examples/Disambiguate/Disambiguate.ino | 68 + examples/Disambiguate/Makefile | 6 + examples/EpochBenchmark/Benchmark.cpp | 8 +- examples/EspTime/EspTime.ino | 8 +- examples/MemoryBenchmark/MemoryBenchmark.ino | 8 +- examples/MemoryBenchmark/README.md | 639 +- examples/MemoryBenchmark/esp32.txt | 46 +- examples/MemoryBenchmark/esp8266.txt | 46 +- examples/MemoryBenchmark/generate_readme.py | 329 +- examples/MemoryBenchmark/generate_table.awk | 4 +- examples/MemoryBenchmark/micro.txt | 28 +- examples/MemoryBenchmark/nano.txt | 28 +- examples/MemoryBenchmark/samd21.txt | 46 +- examples/MemoryBenchmark/samd51.txt | 46 +- examples/MemoryBenchmark/stm32.txt | 44 +- library.properties | 2 +- src/AceTime.h | 19 +- src/ace_time/BasicZoneProcessor.h | 61 +- src/ace_time/DateTuple.h | 26 +- src/ace_time/ExtendedZoneProcessor.h | 62 +- src/ace_time/OffsetDateTime.cpp | 10 +- src/ace_time/OffsetDateTime.h | 131 +- src/ace_time/{LocalDate.cpp => PlainDate.cpp} | 10 +- src/ace_time/{LocalDate.h => PlainDate.h} | 76 +- .../{LocalDateTime.cpp => PlainDateTime.cpp} | 32 +- .../{LocalDateTime.h => PlainDateTime.h} | 193 +- src/ace_time/{LocalTime.cpp => PlainTime.cpp} | 12 +- src/ace_time/{LocalTime.h => PlainTime.h} | 90 +- src/ace_time/TimeZone.h | 50 +- src/ace_time/Transition.h | 40 +- src/ace_time/ZoneProcessor.cpp | 8 +- src/ace_time/ZoneProcessor.h | 104 +- src/ace_time/ZonedDateTime.h | 74 +- src/ace_time/ZonedExtra.cpp | 17 +- src/ace_time/ZonedExtra.h | 68 +- src/ace_time/backwards.h | 39 + src/ace_time/common/common.h | 60 +- src/ace_time/local_date_mutation.h | 64 - src/ace_time/plain_date_mutation.h | 64 + src/testingzonedb/zone_infos.cpp | 8 +- src/testingzonedb/zone_infos.h | 8 +- src/testingzonedb/zone_policies.cpp | 8 +- src/testingzonedb/zone_policies.h | 8 +- src/testingzonedb/zone_registry.cpp | 8 +- src/testingzonedb/zone_registry.h | 8 +- src/testingzonedbc/zone_infos.cpp | 8 +- src/testingzonedbc/zone_infos.h | 8 +- src/testingzonedbc/zone_policies.cpp | 8 +- src/testingzonedbc/zone_policies.h | 8 +- src/testingzonedbc/zone_registry.cpp | 8 +- src/testingzonedbc/zone_registry.h | 8 +- src/testingzonedbx/zone_infos.cpp | 8 +- src/testingzonedbx/zone_infos.h | 8 +- src/testingzonedbx/zone_policies.cpp | 8 +- src/testingzonedbx/zone_policies.h | 8 +- src/testingzonedbx/zone_registry.cpp | 8 +- src/testingzonedbx/zone_registry.h | 8 +- src/zonedb/zone_infos.cpp | 8 +- src/zonedb/zone_infos.h | 8 +- src/zonedb/zone_policies.cpp | 8 +- src/zonedb/zone_policies.h | 8 +- src/zonedb/zone_registry.cpp | 8 +- src/zonedb/zone_registry.h | 8 +- src/zonedb2025/Makefile | 34 + src/zonedb2025/zone_infos.cpp | 14684 +++++++++++++++ src/zonedb2025/zone_infos.h | 1744 ++ src/zonedb2025/zone_policies.cpp | 4084 +++++ src/zonedb2025/zone_policies.h | 251 + src/zonedb2025/zone_registry.cpp | 1023 ++ src/zonedb2025/zone_registry.h | 96 + src/zonedbc/zone_infos.cpp | 8 +- src/zonedbc/zone_infos.h | 8 +- src/zonedbc/zone_policies.cpp | 8 +- src/zonedbc/zone_policies.h | 8 +- src/zonedbc/zone_registry.cpp | 8 +- src/zonedbc/zone_registry.h | 8 +- src/zonedbx/zone_infos.cpp | 8 +- src/zonedbx/zone_infos.h | 8 +- src/zonedbx/zone_policies.cpp | 8 +- src/zonedbx/zone_policies.h | 8 +- src/zonedbx/zone_registry.cpp | 8 +- src/zonedbx/zone_registry.h | 8 +- src/zonedbx2025/Makefile | 34 + src/zonedbx2025/zone_infos.cpp | 14968 ++++++++++++++++ src/zonedbx2025/zone_infos.h | 1761 ++ src/zonedbx2025/zone_policies.cpp | 5132 ++++++ src/zonedbx2025/zone_policies.h | 251 + src/zonedbx2025/zone_registry.cpp | 1037 ++ src/zonedbx2025/zone_registry.h | 96 + src/zoneinfo/ZoneInfoHigh.h | 22 +- src/zoneinfo/ZoneInfoLow.h | 27 +- src/zoneinfo/ZoneInfoMid.h | 28 +- src/zoneinfo/infos.h | 15 + .../BasicZoneProcessorTest.ino | 56 +- .../EpochConvertersTest.ino | 6 +- .../ExtendedZoneProcessorTest.ino | 118 +- tests/LocalDateTest/LocalDateTest.ino | 610 - tests/LocalTimeTest/LocalTimeTest.ino | 142 - .../OffsetDateTimeTest/OffsetDateTimeTest.ino | 103 +- .../{LocalDateTest => PlainDateTest}/Makefile | 2 +- tests/PlainDateTest/PlainDateTest.ino | 610 + .../Makefile | 2 +- .../PlainDateTimeTest.ino} | 287 +- .../{LocalTimeTest => PlainTimeTest}/Makefile | 2 +- tests/PlainTimeTest/PlainTimeTest.ino | 123 + tests/TimeZoneTest/TimeZoneTest.ino | 212 +- .../TransitionStorageTest.ino | 24 +- tests/TzDbTest/TzDbTest.ino | 4 +- tests/UnixTimeTest/UnixTimeTest.ino | 6 +- tests/ZoneProcessorTest/ZoneProcessorTest.ino | 14 +- .../ZonedDateTimeBasicTest.ino | 24 +- .../ZonedDateTimeCompleteTest.ino | 325 +- .../ZonedDateTimeExtendedTest.ino | 311 +- tests/ZonedDateTimeTest/ZonedDateTimeTest.ino | 57 +- tests/ZonedExtraTest/ZonedExtraTest.ino | 68 +- 144 files changed, 50470 insertions(+), 5109 deletions(-) create mode 100644 examples/Disambiguate/Disambiguate.ino create mode 100644 examples/Disambiguate/Makefile rename src/ace_time/{LocalDate.cpp => PlainDate.cpp} (89%) rename src/ace_time/{LocalDate.h => PlainDate.h} (87%) rename src/ace_time/{LocalDateTime.cpp => PlainDateTime.cpp} (61%) rename src/ace_time/{LocalDateTime.h => PlainDateTime.h} (54%) rename src/ace_time/{LocalTime.cpp => PlainTime.cpp} (76%) rename src/ace_time/{LocalTime.h => PlainTime.h} (68%) create mode 100644 src/ace_time/backwards.h delete mode 100644 src/ace_time/local_date_mutation.h create mode 100644 src/ace_time/plain_date_mutation.h create mode 100644 src/zonedb2025/Makefile create mode 100644 src/zonedb2025/zone_infos.cpp create mode 100644 src/zonedb2025/zone_infos.h create mode 100644 src/zonedb2025/zone_policies.cpp create mode 100644 src/zonedb2025/zone_policies.h create mode 100644 src/zonedb2025/zone_registry.cpp create mode 100644 src/zonedb2025/zone_registry.h create mode 100644 src/zonedbx2025/Makefile create mode 100644 src/zonedbx2025/zone_infos.cpp create mode 100644 src/zonedbx2025/zone_infos.h create mode 100644 src/zonedbx2025/zone_policies.cpp create mode 100644 src/zonedbx2025/zone_policies.h create mode 100644 src/zonedbx2025/zone_registry.cpp create mode 100644 src/zonedbx2025/zone_registry.h delete mode 100644 tests/LocalDateTest/LocalDateTest.ino delete mode 100644 tests/LocalTimeTest/LocalTimeTest.ino rename tests/{LocalDateTest => PlainDateTest}/Makefile (90%) create mode 100644 tests/PlainDateTest/PlainDateTest.ino rename tests/{LocalDateTimeTest => PlainDateTimeTest}/Makefile (88%) rename tests/{LocalDateTimeTest/LocalDateTimeTest.ino => PlainDateTimeTest/PlainDateTimeTest.ino} (54%) rename tests/{LocalTimeTest => PlainTimeTest}/Makefile (90%) create mode 100644 tests/PlainTimeTest/PlainTimeTest.ino diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b29cdc47..fb2a9375e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,53 @@ # Changelog - unreleased +- 4.0.0 (2025-10-21, TZDB version 2025b) + - See [MIGRATING.md](MIGRATING.md) on breaking API changes, and how to + migrate. + - **Breaking** Rename LocalXxx to PlainXxx, following the conventions + used by more modern timezone libraries (JavaScript Temporal, Python + whenever). + - LocalDate -> PlainDate + - LocalDateTime -> PlainDateTime + - LocalTime -> PlainTime + - Backwards compatibility macros and methods have been added: + - `#define LocalDate PlainDate` + - `#define LocalDateTime PlainDateTime` + - `#define LocalTime PlainTime` + - **Breaking** Rename various methods with 'Local' to 'Plain': + - `ZonedDateTime::localDateTime()` -> `plainDateTime()` + - `ZonedDateTime::forLocalDateTime()` -> `forPlainDateTime()` + - `ZonedExtra::forLocalDateTime()` -> `forPlainDateTime()` + - `OffsetDateTime::localDateTime()` -> `plainDateTime()` + - `OffsetDateTime::localDate()` -> `plainDate()` + - `OffsetDateTime::localTime()` -> `plainTime()` + - `PlainDateTime::localDate()` -> `plainDate()` + - `PlainDateTime::localTime()` -> `plainTime()` + - The old methods are retained for backwards compatibility, but are + marked as deprecated. + - **Breaking** Replace output parameter `fold` with `resolved`: + - `ZonedDateTime::fold` becomes `ZonedDateTime::resolved` + - `OffsetDateTime::fold` becomes `OffsetDateTime::resolved` + - `PlainDateTime::fold` becomes `PlainDateTime::resolved` + - `PlainTime::fold` becomes `PlainTime::resolved` + - **Breaking** Replace input parameter `fold` with `disambiguate` in the + following methods: + - `ZonedDateTime::forComponents()` + - `ZonedDateTime::forPlainDateTime()` + - `ZonedDateTime::normalize()` + - `ZonedExtra::forComponents()` + - `ZonedExtra::forPlainDateTime()` + - Add 2 more zonedb databases + - `zonedb2025` + - same as `zonedb`, but using transition rules for 2025 and onwards + - used with `BasicZoneManager` and `BasicZoneProcessor + - *larger* than `zonedb` because it supports more zones than + `zonedb` (almost all zones in the TZDB, except maybe 7 zones) + - zonedbx2025 + - same as zonedbx, but using transition rules for 2025 and onwards + - used with `ExtendedZoneManager` and `ExtendedZoneProcessor + - *smaller* than `zonedbx` (by around 10 kB) because it only + includes transitions after 2025 - 3.0.0 (2025-04-25, TZDB version 2025b) - [upgrade to TZDB 2025a](https://lists.iana.org/hyperkitty/list/tz-announce@iana.org/thread/MWII7R3HMCEDNUCIYQKSSTYYR7UWK4OQ/) - Paraguay adopts permanent -03 starting spring 2024. @@ -9,15 +56,15 @@ - [upgrade to TZDB 2025b](https://lists.iana.org/hyperkitty/list/tz-announce@iana.org/thread/6JVHNHLB6I2WAYTQ75L6KEPEQHFXAJK3/) - New zone for Aysén Region in Chile which moves from -04/-03 to -03. (Creates new zone named America/Coyhaique) - - **breaking** add ZoneInfo data classes and their brokers into `Info` + - **Breaking** Add ZoneInfo data classes and their brokers into `Info` container class - allows selection of parallel class hierarchies using the `Info` container class - `basic::ZoneInfo` class moves to `basic::Info::ZoneInfo` - `extended::ZoneInfo` class moves to `extended::Info::ZoneInfo` - `complete::ZoneInfo` class moves to `complete::Info::ZoneInfo` - - **breaking** move `daysUntil(LocalDate, month, day)` to - `LocalDate::daysUntil(month, day)` for simplicity + - **Breaking** Move `daysUntil(PlainDate, month, day)` to + `PlainDate::daysUntil(month, day)` for simplicity - See [Migrating to v3.0](MIGRATING.md#MigratingToVersion300) for more details. - 2.4.0 (2024-12-13, TZDB version 2024b) @@ -105,7 +152,7 @@ - Zone Processor with graceful degradation - Remove range checks against `ZoneContext.startYear()` and `ZoneContext.untilYear()` - - Replace with `LocalDate::kMinYear` and `LocalDate::kMaxYear`, mostly + - Replace with `PlainDate::kMinYear` and `PlainDate::kMaxYear`, mostly for formatting reasons (prevent negative years, and years with more than 4 digits). - The zone processors will always return something reasonble across the @@ -224,7 +271,7 @@ databases. - Add `ZonedDateTime::offsetDateTime()` - Returns the underlying `OffsetDateTime` inside the `ZonedDateTime`. - - Analogous to `ZonedDateTime::localDateTime()`. + - Analogous to `ZonedDateTime::plainDateTime()`. - Always generate anchor rules in zonedb. - Allows `ExtendedZoneProcessor` to work over all years `[0,10000)` even with truncated zonedb (e.g. `[2000,2100)`). @@ -265,8 +312,8 @@ - **New Class**: `ZonedExtra.h` - `ZonedExtra::forEpochSeconds(epochSeconds, tz)` - Create instance from epochSeconds and time zone. - - `ZonedExtra::forLocalDateTime(ldt, tz)` - - Create instance from LocalDateTime and time zone. + - `ZonedExtra::forPlainDateTime(pdt, tz)` + - Create instance from PlainDateTime and time zone. - **Potentially Breaking**: Unified Links - Links are now first-class citizens, exactly the same as Zones. - Unify "fat links" and "symbolic links" into a single implementation. @@ -278,7 +325,7 @@ - Simplify ZoneProcessors - `ZoneProcessor.h`, `ExtendedZoneProcessor.h`, `BasicZoneProcessor.h` - Remove: `getUtcOffset()`, `getDeltaOffset()`, `getAbbrev()` - - Replaced by: `findByLocalDateTime()`, `findByEpochSeconds()` + - Replaced by: `findByPlainDateTime()`, `findByEpochSeconds()` - These are internal helper methods not intended for public consumption. - Unit tests - Migrate most unit tests to use the smaller, testing zone databases at @@ -308,15 +355,15 @@ - Change internal storage type of `year` component from `int8_t` to `int16_t`, extending the range of valid years from [-1873,2127] to [1,9999]. - - Remove `yearTiny()` getters and setters from `LocalDate`, - `LocalDateTime`, `OffsetDateTime`, and `ZonedDateTime`. + - Remove `yearTiny()` getters and setters from `PlainDate`, + `PlainDateTime`, `OffsetDateTime`, and `ZonedDateTime`. - They were not documented except in doxygen docs. - - Remove from `LocalDate`: + - Remove from `PlainDate`: - `kInvalidYearTiny`, replaced with `kInvalidYear` - `kMinYearTiny`, replaced with `kMinYear` - `kMaxYearTiny`, replaced with `kMaxYear` - `forTinyComponents()` - - Remove from `LocalDateTime` + - Remove from `PlainDateTime` - `forTinyComponents()` - Update [AceTimeTools](https://github.com/bxparks/AceTimeTools) to generate `src/zonedb` and `src/zonedbx` using `int16_t` year types. @@ -334,7 +381,7 @@ wikipedia article https://en.wikipedia.org/wiki/Julian_day. - `EpochConverterHinnant` implements the algorithms found in https://howardhinnant.github.io/date_algorithms.html. - - Migrate `LocalDate` to use the `EpochConverterHinnant` instead of + - Migrate `PlainDate` to use the `EpochConverterHinnant` instead of `EpochConverterJulian`. - The primary reason is that I am able to fully understand the algorithms described in `EpochConverterHinnant`. @@ -413,7 +460,7 @@ - ESP32 Core from 2.0.2 to 2.0.5 - Teensyduino from 1.56 to 1.57 - 1.11.4 (2022-08-13, TZDB 2022b) - - Add `ace_time::daysUntil(localDate, month, day)` utility function that + - Add `ace_time::daysUntil(plainDate, month, day)` utility function that returns the number of days until the next (month, day) date. Useful for calculating the number of days until the next Christmas for example. - Upgrade to TZDB 2022b. @@ -501,17 +548,17 @@ and overlaps. - The semantics of the `fold` parameter is intended to be identical to [Python PEP 495](https://www.python.org/dev/peps/pep-0495). - - Add `LocalTime::fold()`, `LocalDateTime::fold()`, + - Add `PlainTime::fold()`, `PlainDateTime::fold()`, `OffsetDateTime::fold()`, `ZonedDateTime::fold()`. - Update `ExtendedZoneProcessor::getOffsetDateTime(acetime_t)` to calculate the `OffsetDateTime::fold()` as an output parameter. - Update `ExtendedZoneProcessor::getOffsetDateTime(const - LocalDateTime&)` to handle `LocalDateTime::fold()` as an input + PlainDateTime&)` to handle `PlainDateTime::fold()` as an input parameter. - Increases flash usage of `ExtendedZoneProcessor` by around 600 bytes on AVR, and 400-600 bytes on 32-bit processors. - Add `toUnixSeconds64()` and `forUnixSeconds64()` methods to - `LocalDate`, `LocalDateTime`, `OffsetDateTime`, `ZonedDateTime`. + `PlainDate`, `PlainDateTime`, `OffsetDateTime`, `ZonedDateTime`. - These use 64-bit `int64_t` integers, which allows Unix seconds to be used up to 2068-01-19T03:14:07Z (which is the limit of these various classes due to the internal use of 32-bit `acetime_t`). @@ -1009,12 +1056,12 @@ - Add documentation of `TimeZoneData`, `TimeZone::toTimeZoneData()`, and `ZoneManager::createFromTimeZoneData()` to `USER_GUIDE.md`. Looks like I added the class in v0.5 but forgot to document it. - - Implement `LocalDateTime::compareTo()` using only its components instead - of internally converting to epochSeconds. Not all `LocalDateTime` can be + - Implement `PlainDateTime::compareTo()` using only its components instead + of internally converting to epochSeconds. Not all `PlainDateTime` can be represented by an epochSeconds, so this change makes the algorithm more robust. The semantics of the method should remain unchanged. - - Update the doxygen docs of the `compareTo()` methods of `LocalDateTime`, - `LocalTime`, `LocalDate`, `OffsetDateTime` and `ZonedDateTime` to clarify + - Update the doxygen docs of the `compareTo()` methods of `PlainDateTime`, + `PlainTime`, `PlainDate`, `OffsetDateTime` and `ZonedDateTime` to clarify the semantics of those operations. - 1.2.1 (2020-11-12, TZ DB version 2020d) - No functional change in this release. Mostly documentation. @@ -1274,7 +1321,7 @@ - Change `ZonedDateTime::printTo()` format to match Java Time format. - Remove `friend` declarations not related to unit tests. - Remove redundant definitions of `kInvalidEpochSeconds`, standardize on - `LocalDate::kInvalidEpochSeconds`. + `PlainDate::kInvalidEpochSeconds`. - Make `timeOffset` a required parameter for constructors and factory methods `OffsetDateTime` instead of defaulting to `TimeOffset()`. - Make `timeZone` a required parameter in constructors and factory methods diff --git a/DEVELOPER.md b/DEVELOPER.md index 59e07bc9e..0cb6ca6fc 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -6,16 +6,16 @@ library. ## Table of Contents - [Project Dependency](#project-dependency) -- [Namespace Dependency](#namespace-dependency) -- [Zone Info Database](#zone-info-database) - - [Template Layer](#template-layer) +- [Architectural Layers](#architectural-layers) - [Storage Layer](#storage-layer) - [Broker Layer](#broker-layer) - - [ZoneDb Files](#zonedb-files) - - [ZoneContext](#zonecontext) - - [ZoneInfo and ZoneEra](#zoneinfo-and-zoneera) - - [ZonePolicy and ZoneRule](#zonepolicy-and-zonerule) - - [ZoneRegistry](#zoneregistry) + - [ZoneProcessor Storage Layer](#zoneprocessor-storage-layer) + - [Zone Database Layer](#zone-database-layer) +- [Storage Layer Classes](#storage-layer-classes) + - [ZoneContext](#zonecontext) + - [ZoneInfo and ZoneEra](#zoneinfo-and-zoneera) + - [ZonePolicy and ZoneRule](#zonepolicy-and-zonerule) + - [ZoneRegistry](#zoneregistry) - [Offset Encoding](#offset-encoding) - [TinyYear Encoding](#tinyyear-encoding) - [BasicZoneProcessor](#basiczoneprocessor) @@ -33,212 +33,225 @@ library. This repo was programmatically generated from the [AceTimeSuite](https://github.com/bxparks/AceTimeSuite) project. -## Namespace Dependency +## Architectural Layers -The various AceTime namespaces are related in the following way, where the arrow -means "depends on": +The AceTime library is organized roughly in layers, and they are related in the +following way, where the arrow means "depends on": ``` - (storage layer) - ace_time::zoneinfolow - ace_time::zoneinfomid - ace_time::zoneinfohigh + Storage layer (src/zoneinfo) + ace_time::ZoneInfoLow::ZoneXXX + ace_time::ZoneInfoMid::ZoneXXX + ace_time::ZoneInfoHigh::ZoneXXX ^ | - (broker layer) - ace_time::basic - ace_time::extended - ace_time::complete + Broker layer (src/zoneinfo) + ace_time::ZoneInfoLow::ZoneXXXBroker + ace_time::ZoneInfoMid::ZoneXXXBroker + ace_time::ZoneInfoHigh::ZoneXXXBroker + ace_time::basic::Info + ace_time::extended::Info + ace_time::complete::Info ^ ^ | \ - | (datafile layer) + | Zone Database layer (src/zonedbYYY) | ace_time::zonedb | ace_time::zonedbx -ace_time::internal | ace_time::zonedbc - ^ | ^ - \ | / -ace_time::hw ace_time:: - ^ ^ ^ - | / \ -ace_time::clock ace_time::testing + | ace_time::zonedbc + | ^ + | / + ZoneProcessors (src/ace_time/*Processor) + ace_time::basic + ace_time::extended + ace_time::complete + ace_time::BasicZoneProcessorTemplate<> + ace_time::ExtendedZoneProcessorTemplate<> + ace_time::BasicZoneProcessor + ace_time::ExtendedZoneProcessor + ace_time::CompleteZoneProcessor + ^ + | +DateTime classes (src/ace_time) TimeZone classes (src/ace_time) +ace_time::PlainDate ace_time::TimeZone +ace_time::PlainTime ace_time::ZoneManager +ace_time::OffsetDateTime ace_time::ZoneProcessorCache + ^ ^ + \ / + \ / + ZonedDateTime classes (src/ace_time) + ace_time::ZonedDateTime + ace_time::ZonedExtra + ^ + | + Testing (src/testing) + ace_time::testing ``` -## Zone Info Database +The data structures are defined [src/zoneinfo](src/zoneinfo). -### Template Layer +### Storage Layer -The template layer provides low-level building blocks that define the storage -formats of various fields, records, and tables used by the zoneinfo databases -in the AceTime library. These should never be seen directly by the client -application. +The `zoneinfo` storage layer provides low-level data structures that define the +storage formats of various fields, records, and tables used by the zoneinfo +databases in the AceTime library. These should be treated as opaque objects by +the client application which can use the `const ZoneInfo *` pointer as the +zone identifier. There are 5 major data types that are stored in the zoneinfo database: `ZoneContext`, `ZoneRule`, `ZonePolicy`, `ZoneEra` and `ZoneInfo`. These data -types are analogous to tables in a relational database. There are 3 -implementations defined, corresponding to different resolution levels supported -by each set: - -* `ZoneInfoLow.h` - * low resolution persistence format - * 1-minute resolution for AT, UNTIL, STDOFF; 15-minute resolution for - DST offsets - * year fields using 1-byte offset from a `baseYear` of 2100, - supporting the years `[1973,2226]` - * `zoneinfolow::ZoneContext<>` - * `zoneinfolow::ZoneRule<>` - * `zoneinfolow::ZonePolicy<>` - * `zoneinfolow::ZoneEra<>` - * `zoneinfolow::ZoneInfo<>` -* `ZoneInfoMid.h` - * medium resolution persistence format - * 1-minute resolution for AT, UNTIL, STDOFF; 15-minute resolution for - DST offset - * 2-byte year fields supporting years `[-32767,32765]` - * `zoneinfomid::ZoneContext<>` - * `zoneinfomid::ZoneRule<>` - * `zoneinfomid::ZonePolicy<>` - * `zoneinfomid::ZoneEra<>` - * `zoneinfomid::ZoneInfo<>` -* `ZoneInfoHigh.h` - * high resolution persistence format - * 1-second resolution for AT, UNTIL, STDOFF, and DST offsets - * 2-byte year fields supporting years `[-32767,32765]` - * `zoneinfohigh::ZoneContext<>` - * `zoneinfohigh::ZoneRule<>` - * `zoneinfohigh::ZonePolicy<>` - * `zoneinfohigh::ZoneEra<>` - * `zoneinfohigh::ZoneInfo<>` +types are analogous to tables in a relational database. -Wrapping each of these low-level persistent classes are the "broker" layer -classes. They convert the low-level storage formats into a consistent API using -identical types and integer sizes. The allows the code in the `src/ace_time` -layer to agnostic to the exact storage format of the zoneinfo database. - -* `BrokersLow.h` - * `zoneinfolow::ZoneContextBroker<>` - * `zoneinfolow::ZoneRuleBroker<>` - * `zoneinfolow::ZonePolicyBroker<>` - * `zoneinfolow::ZoneEraBroker<>` - * `zoneinfolow::ZoneInfoBroker<>` - * `zoneinfolow::ZoneRegistryBroker` - * `zoneinfolow::ZoneInfoStore` -* `BrokersMid.h` - * `zoneinfomid::ZoneContextBroker<>` - * `zoneinfomid::ZoneRuleBroker<>` - * `zoneinfomid::ZonePolicyBroker<>` - * `zoneinfomid::ZoneEraBroker<>` - * `zoneinfomid::ZoneInfoBroker<>` - * `zoneinfomid::ZoneRegistryBroker` - * `zoneinfomid::ZoneInfoStore` -* `BrokersHigh.h` - * `zoneinfohigh::ZoneContextBroker<>` - * `zoneinfohigh::ZoneRuleBroker<>` - * `zoneinfohigh::ZonePolicyBroker<>` - * `zoneinfohigh::ZoneEraBroker<>` - * `zoneinfohigh::ZoneInfoBroker<>` - * `zoneinfohigh::ZoneRegistryBroker` - * `zoneinfohigh::ZoneInfoStore` - -All of these classes are templatized, so that custom instantiations can be -created for different zoneinfo databases, which can be verified by the compiler -to be used together in the proper way. +The implementation data classes are defined as inner-classes within +container classes. This allows the container classes to be used as template +parameters to select the lower-level storage classes as a whole batch. -### Storage Layer +There are 3 container classes defined, corresponding to different resolution +levels supported by each set. -This is the actual storage layer used by library, instantiated from the template -classes. These classes are defined by the -[zoneinfo/infos.h](src/zoneinfo/infos.h) file: - -* Basic - * `basic::ZoneContext` - * `basic::ZoneRule` - * `basic::ZonePolicy` - * `basic::ZoneEra` - * `basic::ZoneInfo` -* Extended - * `extended::ZoneContext` - * `extended::ZoneRule` - * `extended::ZonePolicy` - * `extended::ZoneEra` - * `extended::ZoneInfo` -* Complete - * `complete::ZoneContext` - * `complete::ZoneRule` - * `complete::ZonePolicy` - * `complete::ZoneEra` - * `complete::ZoneInfo` - -These classes are intended to be hidden from the client application. The only -exception is the `const xxx::ZoneInfo*` pointer, which is used as an opaque -identifier for a timezone. From this pointer, a `TimeZone` object can be -created. +- `ZoneInfoLow.h` + - low resolution persistence format + - 1-minute resolution for AT, UNTIL, STDOFF + - 15-minute resolution for DSTOFF + - year fields using 1-byte offset from a `baseYear` of 2100, + supporting the years `[1973,2226]` + - `ZoneInfoLow::ZoneContext` + - `ZoneInfoLow::ZoneRule` + - `ZoneInfoLow::ZonePolicy` + - `ZoneInfoLow::ZoneEra` + - `ZoneInfoLow::ZoneInfo` +- `ZoneInfoMid.h` + - medium resolution persistence format + - 1-minute resolution for AT, UNTIL, STDOFF + - 15-minute resolution for DSTOFF + - 2-byte year fields supporting years `[-32767,32765]` + - `ZoneInfoMid::ZoneContext` + - `ZoneInfoMid::ZoneRule` + - `ZoneInfoMid::ZonePolicy` + - `ZoneInfoMid::ZoneEra` + - `ZoneInfoMid::ZoneInfo` +- `ZoneInfoHigh.h` + - high resolution persistence format + - 1-second resolution for AT, UNTIL, STDOFF, and DSTOFF + - 2-byte year fields supporting years `[-32767,32765]` + - `ZoneInfoHigh::ZoneContext` + - `ZoneInfoHigh::ZoneRule` + - `ZoneInfoHigh::ZonePolicy` + - `ZoneInfoHigh::ZoneEra` + - `ZoneInfoHigh::ZoneInfo` ### Broker Layer -This is the actual broker layer used by library, instantiated from the template -classes. These classes are defined by the -[zoneinfo/brokers.h](src/zoneinfo/brokers.h) file: - -* Basic - * uses `zoneinfolow::` classes - * `basic::ZoneContextBroker` - * `basic::ZoneRuleBroker` - * `basic::ZonePolicyBroker` - * `basic::ZoneEraBroker` - * `basic::ZoneInfoBroker` - * `basic::ZoneRegistryBroker` - * `basic::ZoneInfoStore` -* Extended - * uses `zoneinfolow::` classes (previously used `zoneinfomid::`) - * `extended::ZoneContextBroker` - * `extended::ZoneRuleBroker` - * `extended::ZonePolicyBroker` - * `extended::ZoneEraBroker` - * `extended::ZoneInfoBroker` - * `extended::ZoneRegistryBroker` - * `extended::ZoneInfoStore` -* Complete - * uses `zoneinfohigh::` classes - * `complete::ZoneContextBroker` - * `complete::ZoneRuleBroker` - * `complete::ZonePolicyBroker` - * `complete::ZoneEraBroker` - * `complete::ZoneInfoBroker` - * `complete::ZoneRegistryBroker` - * `complete::ZoneInfoStore` - -(TODO: It might be possible to wrap the raw timezone `const ZoneInfo*` pointer -into a `ZoneInfoBroker` object, and use the broker object as the timezone -identifier. This would completely hide the low-level `const ZoneInfo*` pointer -from the client application.) - -### ZoneDb Files - -The AceTime library comes with 3 sets of zoneinfo files, which were -programmatically generated by the scripts in -`AceTimeSuite/compiler/tzcompiler.sh` from the [IANA TZ -Data](https://www.iana.org/time-zones): - -* `src/zonedb/*` - * uses the `zonedb::` namespace - * used by `BasicZoneProcessor` - * uses `basic::ZoneXxx` classes -* `src/zonedbx/*` - * uses the `zonedbx::` namespace - * used by `ExtendedZoneProcessor` - * uses `extended::ZoneXxx` classes -* `src/zonedbc/*` - * uses the `zonedbc::` namespace - * used by `CompleteZoneProcessor` - * uses `complete::ZoneXxx` classes +Wrapping each of these low-level persistent classes are the "broker" layer +classes. They convert the low-level storage formats into a consistent API using +identical types and integer sizes. The allows the code in the ZoneProcessor +layer to be agnostic to the exact storage format of the zoneinfo database. + +- `ZoneInfoLow.h` + - `ZoneInfoLow::ZoneContextBroker` + - `ZoneInfoLow::ZoneRuleBroker` + - `ZoneInfoLow::ZonePolicyBroker` + - `ZoneInfoLow::ZoneEraBroker` + - `ZoneInfoLow::ZoneInfoBroker` + - `ZoneInfoLow::ZoneRegistryBroker` + - `ZoneInfoLow::ZoneInfoStore` +- `ZoneInfoMid.h` + - `ZoneInfoMid::ZoneContextBroker` + - `ZoneInfoMid::ZoneRuleBroker` + - `ZoneInfoMid::ZonePolicyBroker` + - `ZoneInfoMid::ZoneEraBroker` + - `ZoneInfoMid::ZoneInfoBroker` + - `ZoneInfoMid::ZoneRegistryBroker` + - `ZoneInfoMid::ZoneInfoStore` +- `ZoneInfoHigh.h` + - `ZoneInfoHigh::ZoneContextBroker` + - `ZoneInfoHigh::ZoneRuleBroker` + - `ZoneInfoHigh::ZonePolicyBroker` + - `ZoneInfoHigh::ZoneEraBroker` + - `ZoneInfoHigh::ZoneInfoBroker` + - `ZoneInfoHigh::ZoneRegistryBroker` + - `ZoneInfoHigh::ZoneInfoStore` + +The Broker layer adds 2 higher-level brokers on top of the 5 low-level storage +classes: + +- `ZoneRegistryBroker` + - provides access to the zone registry consisting of a list of pointers to + `ZoneInfo` objects +- `ZoneInfoStore` + - provides the high level interface to create a `ZoneInfoBroker` given an + identifier for a zone (either a direct pointer, or an offset index) + - (TODO: It might be possible to wrap the raw timezone `const ZoneInfo*` + pointer into a `ZoneInfoBroker` object, and use the broker object as the + timezone identifier. This would completely hide the low-level `const + ZoneInfo*` pointer from the client application.) + +### ZoneProcessor Storage Layer + +There are 3 concrete implementations of the `ZoneProcessor` interface: + +- `BasicZoneProcessor` +- `ExtendedZoneProcessor` +- `CompleteZoneProcessor` + +In theory, the each concrete ZoneProcessor can choose to use any of the +underlying storage format. However, for simplicity, we restrict each +ZoneProcessor to a specific storage format, as defined in +[zoneinfo/infos.h](src/zoneinfo/infos.h): + +- BasicZoneProcessor -> ZoneInfoLow + - `basic::Info = ZoneInfoLow` +- ExtendedZoneProcessor -> ZoneInfoLow + - `extended::Info = ZoneInfoLow` +- CompleteZoneProcessor -> ZoneInfoHigh + - `complete::Info = ZoneInfoHigh` + +In theory, the `basic::`, `extended::`, and `complete::` namespaces provide a +layer of indirection that would allow changing a particular storage format with +another storage format, without changing the higher-level code (since the Broker +Layer provides a consistent API). + +### Zone Database Layer + +The Zone Database files are programmatically generated by the +[AceTimeSuite/compiler/tzcompiler.sh](../../compiler/tzcompiler.sh) script using +the TZDB files from the [IANA TZ Data](https://www.iana.org/time-zones) +project. They use the low-level data structures defined by +[src/zoneinfo](src/zoneinfo) files. + +There are several `zonedb` directories which are pre-generated and included in +the library: + +- `src/zonedb/` + - contains transition rules from year >= 2000 + - used by `BasicZoneProcessor` + - uses the `zonedb::` namespace + - uses `basic::Info` classes (i.e. ZoneInfoLow) +- `src/zonedb2025/` + - same as `zonedb` but for transition rules with year >= 2025 + - uses the `zonedb2025` namespace +- `src/zonedbx/` + - contains transition rules from year >= 2000 + - used by `ExtendedZoneProcessor` + - uses the `zonedbx::` namespace + - uses `extended::Info` classes (i.e. ZoneInfoLow) +- `src/zonedbx2025/` + - same as `zonedbx` but for transition rules with year >= 2025 + - uses the `zonedbx2025` namespace +- `src/zonedbc/` + - contains all transitions from TZDB (year >= 1844) + - used by `CompleteZoneProcessor` + - uses the `zonedbc::` namespace + - uses `complete::Info` classes (i.e. ZoneInfoHigh) Each `zonedb*/` directory contains the following files: -* `zone_infos.h', `zone_infos.cpp` -* `zone_policies.h`, `zone_policies.cpp` -* `zone_registry.h`, `zone_registry.cpp` +- `zone_infos.cpp`, `zone_infos.h` +- `zone_policies.cpp`, `zone_policies.h` +- `zone_registry.cpp`, `zone_registry.h` + +## Storage Layer Classes -#### ZoneContext +### ZoneContext There is a single `ZoneContext kZoneContext` record included in the `zone_infos.h` and `zone_infos.cpp` files. The record and its related data could @@ -282,7 +295,7 @@ implementations and comparing the flash and static memory usage patterns to determine if it's worth moving the `format` strings to `formats[]` array in the `ZoneContext`. -#### ZoneInfo and ZoneEra +### ZoneInfo and ZoneEra The `zone_infos.h` and `zone_infos.cpp` files contain a `ZoneInfo` record for each supported time zone corresponding to a `Zone` or `Link` entry in the IANA @@ -299,7 +312,7 @@ Near end of the `zone_info.h` file, we list the zones which were deliberately excluded by the tool. Also at the end of the `zone_info.h` file, there may be warnings about known inaccuracies for a particular zone. -#### ZonePolicy and ZoneRule +### ZonePolicy and ZoneRule The `zone_policies.h` and `zone_policies.cpp` hole the `RULE` entries from the IANA TZ database. A `ZonePolicy` is a collection of one or more `ZoneRule` @@ -308,40 +321,47 @@ entry in the TZ database. A `ZoneEra` record may hold a pointer to a `ZonePolicy` record. For example, the `kZoneAmerica_Los_Angeles` has a pointer to a `kZonePolicyUS` record. -#### Zone Registry +### Zone Registry The `zone_registry.h` and `zone_registry.cpp` files contain 2 pre-defined registries of timezones: -* `const ZoneInfo* const kZoneRegistry[kZoneRegistrySize]` - * contains a list of all `Zone` entries -* `const ZoneInfo* const kZoneAndLinkRegistry[kZoneAndLinkRegistrySize]` - * contains a list of all `Zone` and `Link` entries +- `const ZoneInfo- const kZoneRegistry[kZoneRegistrySize]` + - contains a list of all `Zone` entries +- `const ZoneInfo- const kZoneAndLinkRegistry[kZoneAndLinkRegistrySize]` + - contains a list of all `Zone` and `Link` entries Due to reasons which are too complicated to explain here, `Zone` and `Link` entries should treated with the same priority. Client applications should almost -always use the `kZoneAndLinkRegistry`. The only exception may be testig +always use the `kZoneAndLinkRegistry`. The only exception may be testing applications which may want to use the smaller `kZoneRegistry` to achieve complete coverage of all timezones with the same set of rules, without duplicates. ### Offset Encoding -The `zoneinfolow` storage format was optimized for small size. A number of -fields which required only 4-bits of space were combined together to save memory -space. There are 5 offsets and moment-in-time quantities from the TZ zoneinfo -files which are captured in the `zone_info.{h,cpp}` and `zone_policies.{h,cpp}` -files: +The `ZoneInfoHigh` format encodes various formats using 1-second resolution for +all offsets (STDOFF, DSTOFF) and time instants (AT, UNTIL). + +The `ZoneInfoLow` and `ZoneInfoMid` storage formats try to reduce the memory +footprint by encoding the offsets (STDOFF, DSTOFF) in 15-minute resolution, and +the time instants (AT, UNTIL) with a 1-minute resolution. + +A number of fields which required only 4-bits of space were combined together to +save memory space. There are 5 offsets and moment-in-time quantities from the TZ +zoneinfo files which are captured in the `zone_info.{h,cpp}` and +`zone_policies.{h,cpp}` files: -* `STDOFF` field in `Zone` entry (previously `OFFSET`), 1-minute resolution -* `RULES` field in `Zone` entry when numeric (e.g. "1:00"), 15-minute resolution -* `UNTIL` field in `Zone` entry, 1-minute resolution -* `SAVE` field in `Rule` entry, 15-minute resolution -* `AT` field in `Rule` entry, 1-minute resolution +- `STDOFF` field in `Zone` entry (previously `OFFSET`), 1-minute resolution +- `RULES` (DSTOFF) field in `Zone` entry when numeric (e.g. "1:00"), 15-minute + resolution +- `UNTIL` field in `Zone` entry, 1-minute resolution +- `SAVE` (DSTOFF) field in `Rule` entry, 15-minute resolution +- `AT` field in `Rule` entry, 1-minute resolution To reduce flash memory size, these fields are encoded in non-obvious ways which are difficult to remember. Here is my attempt to document the encoding. In the -following diagram, a field labled `code` (e.g. `offsetCode`) has a unit of 15 +following diagram, a field labeled `code` (e.g. `offsetCode`) has a unit of 15 minutes. For example, an `offsetCode` of 2 means 30 minutes. To capture time offsets or moments with a 1-minute resolution, we store the remaining 15-minutes (0 to 14 inclusive), using 4-bits in the upper 4-bits or the lower 4-bits of one @@ -417,21 +437,21 @@ SAVE (15-min resolution) ### TinyYear Encoding -The `zoneinfolow` storage format also implements a space saving measure by +The `ZoneInfoLow` storage format also implements a space saving measure by encoding the year fields using a one-byte `int8_t` signed integer offset from the `baseYear` field specified in the `ZoneContext` object. The range of a one-byte signed integer is `[-128,127]`, but `-128` is used to represent `kInvalidYear`, `-127` indicates `-Infinity`, and `+126` and `+127` are used to represent `+Infinity` (for the `TO` and `UNTIL` fields). So the actual range of -the year offset is `[-126,125]`. The base year for the `zonedb` and `zonedbx` -databases is set to 2100, which means that these databases can represent all -transition rules over the years `[1974,2225]`. +the year offset is `[-126,125]`. -So the `zonedb` and `zonedbx` databases can store DST transitions for the next -200 years, which should be more than enough for the foreseeable future. If the -range needs to be extended, then the `baseYear` field in `ZoneContext` can be -updated, the `zonedb` and `zonedbx` databases can be either regenerated or new -versions of them can be created. +The base year for the `zonedb` and `zonedbx` databases is set to 2100, which +means that these databases can represent all transition rules over the years +`[1974,2225]`. So the `zonedb`, `zonedb2025`, `zonedbx`, and `zonedbx2025` +databases can store DST transitions for the next 200 years, which should be more +than enough for the foreseeable future. If the range needs to be extended, then +the `baseYear` field in `ZoneContext` can be updated, the `zonedb` and `zonedbx` +databases can be either regenerated or new versions of them can be created. ## BasicZoneProcessor @@ -446,13 +466,12 @@ versions of them can be created. The `CompleteZoneProcessor` is currently *identical* to the `ExtendedZoneprocessor` (using a template class). This avoid having to maintain -and test 2 slightly different code bases. This subsection that describes the -workings of `ExtendedZoneProcessor` applies without modification to -`CompleteZoneProcessor`. +and test 2 slightly different code bases. This subsection applies to both +`ExtendedZoneProcessor` and `CompleteZoneProcessor`. The low-level storage formats of the 2 databases (`zonedbx` and `zonedbc`) used -by these 2 classes are actually signficantly different (using `zoneinfolow` and -`zoneinfohigh` formats respectively). But the encapsulation provided by the +by these 2 classes are actually significantly different (using `ZoneInfoLow` and +`ZoneInfoHigh` formats respectively). But the encapsulation provided by the Broker layer (i.e. the `ZoneXxxBroker` classes) allow the 2 databases to be processed by the exactly the same C++ code. @@ -472,9 +491,9 @@ The call stack of the first method looks like this: ``` ZoneDateTime::forComponents() - -> TimeZone::getOffsetDateTime(LocalDateTime&) - -> ExtendeZoneProcessor::findByLocalDateTime(LocalDateTime&) - -> TransitionStorage::findTransitionForDateTime(LocalDateTime&) + -> TimeZone::getOffsetDateTime(PlainDateTime&) + -> ExtendeZoneProcessor::findByPlainDateTime(PlainDateTime&) + -> TransitionStorage::findTransitionForDateTime(PlainDateTime&) ``` The call stack of the second method looks like this: @@ -515,9 +534,9 @@ overlap with the 14-month interval from Dec 1 of the prior year until Feb 1 of the following year. For example, `initForYear(2010)` means that the interval is from 2009-12-01T00:00 until 2011-02-01T00:00. -A 14-month interval is chosen because a local date time of Jan 1 could land in +A 14-month interval is chosen because a plain date time of Jan 1 could land in the prior year after the correct UTC offset is calculated, so we need to pick up -Transitions in the prior year. Similarly, a local date time of Dec 31 could land +Transitions in the prior year. Similarly, a plain date time of Dec 31 could land in the following year after correcting for UTC offset. A `MatchingEra` is a wrapper around a `ZoneEra`, with its startDateTime and @@ -528,11 +547,11 @@ untilDateTime truncated to be within the 14-month interval of interest. The class creates an array of `Transition` objects spanning 14 months that covers the given `year`, from 12/1 of the previous year until 2/1 of the following year. The extra month at the start and end of the one-year interval is -to account for the fact that a local DateTime of 1/1 for a given year may +to account for the fact that a plain DateTime of 1/1 for a given year may actually occur in the previous year after shifting to UTC time. But the amount of shift is not known until we calculate the Transitions. By starting the interval of interest at 12/1, we make sure that correct Transition is determined -for 12/31 if needed. Similarly, a local DateTime of 12/31 may actually occur on +for 12/31 if needed. Similarly, a plain DateTime of 12/31 may actually occur on 1/1 of the following year, so we extend our time interval of interest to 2/1 of the following year. @@ -716,10 +735,10 @@ Transition. After the list of Transitions is created, the `Transition.startDateTime` and `Transition.untilDateTime` created using the transtionTime field. -* The `untilDateTime` of the previous Transition is the current `transitionTime` - shifted into the UTC offset of the *previous* Transition. -* The `startDateTime` of the current Transition is the current `transitionTime` - shifted into the UTC offset of the *current* Transition. +- The `untilDateTime` of the previous Transition is the current `transitionTime` + shifted into the UTC offset of the -previous- Transition. +- The `startDateTime` of the current Transition is the current `transitionTime` + shifted into the UTC offset of the -current- Transition. ### Step 5: Calculate Abbreviations diff --git a/MIGRATING.md b/MIGRATING.md index 002ded71b..ecee8e4f0 100644 --- a/MIGRATING.md +++ b/MIGRATING.md @@ -2,24 +2,96 @@ ## Table of Contents +* [Migrating to v4.0.0](#MigratingToVersion400) * [Migrating to v3.0.0](#MigratingToVersion300) * [Migrating to v2.3.0](#MigratingToVersion220) * [Migrating to v2.2.0](#MigratingToVersion220) * [Migrating to v2.1.0](#MigratingToVersion210) - * [Unified Links](#UnifiedLinks) - * [ZonedExtra](#ZonedExtra) * [Migrating to v2.0.0](#MigratingToVersion200) - * [High Level](#HighLevel200) - * [Details](#Details200) - * [Background Motivation](#Motivation200) * [Migrating to v1.9.0](#MigratingToVersion190) - * [Configuring the Zone Managers](#ConfiguringZoneManagers) - * [Using the Zone Managers](#UsingZoneManagers) - * [Link Managers](#LinkManagers) * [Migrating to v1.8.0](#MigratingToVersion180) - * [Migrating to AceTimeClock](#MigratingToAceTimeClock) - * [Migrating the DS3231Clock](#MigratingTheDS3231Clock) - * [Migrating to LinkManagers](#MigratingToLinkManagers) + + +## Migrating to v4.0.0 + +These changes were originally intended for 3.0.0, but I ran out of time, so I +released 3.0.0 with just the TZDB updates. + +These are API breaking changes, so I am bumping the library version number to +4.0.0. I tried to provide [shims](src/ace_time/backwards.h) for backwards +compatibility, so I *think* most old programs will compile with the new version. +The compiler will print deprecation warnings when old methods are used, but not +when old classes are used. + +### Renamed Classes + +For compatibility with other timezone libraries, and for better +self-documentation, the following classes have been renamed: + +- `LocalDate` -> `PlainDate` +- `LocalDateTime` -> `PlainDateTime` +- `LocalTime` -> `PlainTime` + +For backwards compatibility, a handful of `#define` macros has been provided, so +I *think* old code should compile with new code: + +- `#define LocalDate PlainDate` +- `#define LocalDateTime PlainDateTime` +- `#define LocalTime PlainTime` + +These will not print deprecation messages unfortunately. + +### Renamed Methods + +After renaming the classes, a number of methods had to be renamed: + +- `ZonedDateTime::localDateTime()` -> `plainDateTime()` +- `ZonedDateTime::forLocalDateTime()` -> `forPlainDateTime()` +- `ZonedExtra::forLocalDateTime()` -> `forPlainDateTime()` +- `OffsetDateTime::localDateTime()` -> `plainDateTime()` +- `OffsetDateTime::localDate()` -> `plainDate()` +- `OffsetDateTime::localTime()` -> `plainTime()` +- `PlainDateTime::localDate()` -> `plainDate()` +- `PlainDateTime::localTime()` -> `plainTime()` + +The old methods still exist for backwards compatibility, but they are marked as +deprecated, so the compiler will print annoying warnings messages. + +### Replace fold Parameter + +The `fold` parameter that was borrowed from [Python PEP +495](https://www.python.org/dev/peps/pep-0495) has proven to be too confusing. +It is both an input parameter (that controls how a `PlainDateTime` is resolved +into a `ZonedDateTime`) and an output parameter (that indicates whether or not +the `PlainDateTime` occurs in an overlap or a gap). In this release, the `fold` +parameter has been replaced with 2 different enum parameters. + +For input, all methods that previously took a 'fold' parameter now take the +`disambiguate` parameter which is an enum type of `Disambiguate`. It has 4 +options: + +- `Disambiguate::kCompatible` + - Selects the *earlier* time in an overlap, but the *later* time in a gap. + - This is the default if `disambiguate` is not explicitly provided. +- `Disambiguate::kLater` + - Always selects the later time. +- `Disambiguate::kEarlier` + - Always selects the earlier time. +- `Disambiguate::kReversed` + - The opposite of `kCompatible`. + +For output, the `fold` parameter previously in the `ZonedDateTime`, +`OffsetDateTime`, and `PlainDateTime` objects has been replaced replaced with +the `resolved` parameter which is an enum type of `Resolved`. It has 5 options: + +- `Resolved::kUnique` - the ZonedDateTime is unique +- `Resolved::kOverlapEarlier` - the earlier time in an overlap was selected +- `Resolved::kOverlapLater` - the later time in an overlap was selected +- `Resolved::kGapEarlier` - the earlier time in a gap was selected +- `Resolved::kGapLater` - the later time in a gap was selected + +If the calling code does not care about how an ambiguity was resolved, then this +parameter can be ignored. ## Migrating to v3.0.0 @@ -255,7 +327,7 @@ the following methods on `ZonedExtra` are the replacements for the above: The `ZonedExtra` object will normally be created through 2 factory methods: * `ZonedExtra::forEpochSeconds(epochSeconds, tz)` -* `ZonedExtra::forLocalDateTime(ldt, tz)` +* `ZonedExtra::forPlainDateTime(pdt, tz)` The `ZonedExtra` object provides access to other meta-information about the time zone at that particular time. See the [ZonedExtra](USER_GUIDE.md#ZonedExtra) @@ -323,7 +395,7 @@ explained in detail in the next section. AceTime v2 implements the following major changes and features: -* the internal `year` field in various classes (`LocalDate`, `LocalDateTime`, +* the internal `year` field in various classes (`PlainDate`, `PlainDateTime`, `OffsetDateTime`, `ZonedDateTime`) changes from `int8_t` to an `int16_t` * the range increases from `[1873,2127]` to `[1,9999]` * the various `year()` methods in these classes were already using `int16_t` @@ -333,43 +405,43 @@ AceTime v2 implements the following major changes and features: * the year range increases from `[2000,2049]` to `[2000,9999]` * decouples the TZ database from the adjustable current epoch year * removed constants - * `LocalDate::kEpochYear` + * `PlainDate::kEpochYear` * replacement: `Epoch::currentEpochYear()` function * reason: no longer a constant - * `LocalDate::kSecondsSinceUnixEpoch` + * `PlainDate::kSecondsSinceUnixEpoch` * purpose: number of seconds from 1970 to the AceTime epoch (2000-01-01 in v1, but adjustable in v2) * replacement: `Epoch::secondsToCurrentEpochFromUnixEpoch64()` * reasons: * `int32_t` seconds can overflow, so use `int64_t` * epoch year is now adjustable, not a constant - * `LocalDate::kDaysSinceUnixEpoch` + * `PlainDate::kDaysSinceUnixEpoch` * purpose: number of days from 1970-01-01 to AceTime epoch (2000-01-01 in v1, but adjustable in v2) * replacement: `Epoch::daysToCurrentEpochFromUnixEpoch()` * reason: epoch is now adjustable, so must become a function - * `LocalDate::kMinYearTiny` - * replacement: `LocalDate::kMinYear` + * `PlainDate::kMinYearTiny` + * replacement: `PlainDate::kMinYear` * reason: 8-bit offset no longer used, replaced by 16-bit integer - * `LocalDate::kMaxYearTiny` - * replacement: `LocalDate::kMaxYear` + * `PlainDate::kMaxYearTiny` + * replacement: `PlainDate::kMaxYear` * reason: 8-bit offset no longer used, replaced by 16-bit integer - * `LocalDate::kInvalidUnixDays` + * `PlainDate::kInvalidUnixDays` * replacement: `kInvalidEpochDays` * reason: simplification, both had the same value `INT32_MIN` - * `LocalDate::kInvalidUnixSeconds` - * replacement: `LocalDate::kInvalidUnixSeconds64` + * `PlainDate::kInvalidUnixSeconds` + * replacement: `PlainDate::kInvalidUnixSeconds64` * reason: 32-bit versions of `toUnixSeconds()` removed * removed functions - * `LocalDate::toUnixSeconds()` + * `PlainDate::toUnixSeconds()` * reason: 32-bit Unix seconds will overflow in the year 2038 - * replacement: `LocalDate::toUnixSeconds64()` - * `LocalDate::forUnixSeconds()` + * replacement: `PlainDate::toUnixSeconds64()` + * `PlainDate::forUnixSeconds()` * reason: 32-bit Unix seconds will overflow in the year 2038 - * replacement: `LocalDate::forUnixSeconds64()` - * `LocalDate::yearTiny()` + * replacement: `PlainDate::forUnixSeconds64()` + * `PlainDate::yearTiny()` * reason: `int8_t` year fields replaced by `int16_t` type - * `LocalDate::forTinyComponents()` (undocumented) + * `PlainDate::forTinyComponents()` (undocumented) * reason: `int8_t` year fields replaced by `int16_t` type * `OffsetDateTime::toUnixSeconds()` * `OffsetDateTime::forUnixSeconds()` diff --git a/README.md b/README.md index bd361e2c3..91f6f2988 100644 --- a/README.md +++ b/README.md @@ -18,19 +18,29 @@ range of a 32-bit integer is about 136 years. To be safe, AceTime timezone functions should be kept well within the bounds of this interval, for example, straddling roughly +/- 60 years of the `Epoch::currentEpochYear()`. -The library provides 3 pre-generated ZoneInfo Databases which are +The library provides 5 pre-generated ZoneInfo Databases which are programmatically extracted from the IANA TZ database: - [zonedb](src/zonedb) ("basic", not usually recommended) - accurate over the years `[2000,10000)` - - contains a subset of zones (~450) compatible with `BasicZoneProcessor` - and `BasicZoneManager` + - contains a subset of zones and links (~450) + - compatible with `BasicZoneProcessor` and `BasicZoneManager` +- [zonedb2025](src/zonedb2025) ("basic", not usually recommended) + - accurate over the years `[2025,10000)` + - contains almost all zones in the TZDB (~600) + - compatible with `BasicZoneProcessor` and `BasicZoneManager` + - larger than `zonedb` because it supports more zones - [zonedbx](src/zonedbx) ("extended", recommended for most situations) - accurate over the years `[2000,10000)` - contains all zones and links (~600) in the IANA TZ database - compatible with `ExtendedZoneProcessor` and `ExtendedZoneManager` -- [zonedbc](src/zonedbc) ("complete", mostly intended for validation testing, - new in v2.3) +- [zonedbx2025](src/zonedbx2025) ("extended", recommended for most situations) + - accurate over the years `[2025,10000)` + - contains all zones and links (~600) in the IANA TZ database + - compatible with `ExtendedZoneProcessor` and `ExtendedZoneManager` + - about 10kB smaller than `zonedbx` because it can ignore transitions before + 2025 +- [zonedbc](src/zonedbc) ("complete", intended for validation testing) - accurate over the years `[0001,10000)` - contains all zones and links (~600) the IANA TZ database - compatible with `CompleteZoneProcessor` and `CompleteZoneManager` @@ -70,70 +80,69 @@ This library can be an alternative to the Arduino Time (https://github.com/PaulStoffregen/Time) and Arduino Timezone (https://github.com/JChristensen/Timezone) libraries. -**Major Changes in v3.0**: Move `basic::ZoneInfo` to `basic::Info::ZoneInfo`, -`extended::ZoneInfo` to `extended::Info::ZoneInfo`, and `complete::ZoneInfo` to -`complete::Info::ZoneInfo`. Upgrade to TZDB 2025b. See [Migrating to -v3.0](MIGRATING.md#MigratingToVersion300) for more details. - -**Version**: 3.0.0 (2025-04-25, TZDB 2025b) - -**Changelog**: [CHANGELOG.md](CHANGELOG.md) - -**Migration**: [MIGRATING.md](MIGRATING.md) - +**Major Changes in v4.0**: Rename `LocalDate` to `PlainDate`; `LocalTime` to +`PlainTime`; `LocalDateTime` to `PlainDateTime. Backwards compatible macros are +provided, so most existing programs should still compile. See [Migrating to +v4.0](MIGRATING.md#MigratingToVersion400) for more details. Add `zonedb2025` and +`zonedbx2025` databases which contain DST transitions for year >= 2025, which +reduces flash memory size. Replace `fold` parameter with `disambiguate` (input) +and `resolved` (output) parameters. + +**Version**: 4.0.0 (2025-10-21, TZDB 2025b) \ +**Changelog**: [CHANGELOG.md](CHANGELOG.md) \ +**Migration**: [MIGRATING.md](MIGRATING.md) \ **User Guide**: [USER_GUIDE.md](USER_GUIDE.md) **See Also**: -* AceTimeClock (https://github.com/bxparks/AceTimeClock) -* acetimec (https://github.com/bxparks/acetimec) -* acetimego (https://github.com/bxparks/acetimego) -* acetimepy (https://github.com/bxparks/acetimepy) +- AceTimeClock (https://github.com/bxparks/AceTimeClock) +- acetimec (https://github.com/bxparks/acetimec) +- acetimego (https://github.com/bxparks/acetimego) +- acetimepy (https://github.com/bxparks/acetimepy) ## Table of Contents -* [Installation](#Installation) - * [Source Code](#SourceCode) - * [Dependencies](#Dependencies) -* [Documentation](#Documentation) - * [HelloDateTime](#HelloDateTime) - * [HelloZoneManager](#HelloZoneManager) - * [WorldClock](#WorldClock) -* [User Guide](#UserGuide) -* [Validation](#Validation) -* [Resource Consumption](#ResourceConsumption) - * [Size Of Classes](#SizeOfClasses) - * [Zone DB Size](#ZoneDbSize) - * [Flash And Static Memory](#FlashAndStaticMemory) - * [CPU Usage](#CPUUsage) -* [System Requirements](#SystemRequirements) - * [Hardware](#Hardware) - * [Tool Chain](#ToolChain) - * [Operating System](#OperatingSystem) -* [Motivation and Design Considerations](#Motivation) -* [Comparison to Other Time Libraries](#Comparisons) - * [Arduino Time Library](#ArduinoTimeLibrary) - * [C Time Library](#CLibrary) - * [ESP8266 and ESP32 TimeZones](#Esp8266AndEspTimeZones) - * [ezTime](#EzTime) - * [Micro Time Zone](#MicroTimeZone) - * [Java Time, Joda-Time, Noda Time](#JavaTime) - * [Howard Hinnant Date Library](#HinnantDate) - * [Google cctz](#Cctz) -* [License](#License) -* [Feedback and Support](#FeedbackAndSupport) -* [Authors](#Authors) - - +- [Installation](#installation) + - [Source Code](#source-code) + - [Dependencies](#dependencies) +- [Documentation](#documentation) + - [HelloDateTime](#hellodatetime) + - [HelloZoneManager](#hellozonemanager) + - [WorldClock](#worldclock) +- [User Guide](#user-guide) +- [Validation](#validation) +- [Resource Consumption](#resource-consumption) + - [Size Of Classes](#size-of-classes) + - [Zone DB Size](#zone-db-size) + - [Flash And Static Memory](#flash-and-static-memory) + - [CPU Usage](#cpu-usage) +- [System Requirements](#system-requirements) + - [Hardware](#hardware) + - [Tool Chain](#tool-chain) + - [Operating System](#operating-system) +- [Motivation and Design Considerations](#motivation-and-design-considerations) +- [Comparison to Other Time Libraries](#comparisons-to-other-time-libraries) + - [Arduino Time Library](#arduino-time-library) + - [C Time Library](#c-time-library) + - [ESP8266 and ESP32 TimeZones](#esp8266-and-esp32-timezones) + - [ezTime](#eztime) + - [Micro Time Zone](#micro-time-zone) + - [Java Time, Joda-Time, Noda Time](#java-time-joda-time-noda-time) + - [Howard Hinnant Date Library](#howard-hinnant-date-library) + - [Google cctz](#google-cctz) +- [License](#license) +- [Feedback and Support](#feedback-and-support) +- [Authors](#authors) + ## Installation The latest stable release is available in the Arduino Library Manager in the IDE. Search for "AceTime". Click install. The Library Manager should automatically install AceTime and its dependent libraries: -* AceTime (https://github.com/bxparks/AceTime) -* AceCommon (https://github.com/bxparks/AceCommon) -* AceSorting (https://github.com/bxparks/AceSorting) +- AceTime (https://github.com/bxparks/AceTime) +- AceCommon (https://github.com/bxparks/AceCommon) +- AceSorting (https://github.com/bxparks/AceSorting) The development version can be installed by cloning the above repos manually. You can copy over the contents to the `./libraries` directory used by the @@ -145,100 +154,98 @@ the `./libraries` directory. The `develop` branch contains the latest development. The `master` branch contains the stable releases. - ### Source Code The source files are organized as follows: -* `src/AceTime.h` - main header file -* main library code - * `src/ace_time/` - date and time classes (`ace_time::` namespace) - * `src/ace_time/common/` - shared classes and utilities - * `src/ace_time/testing/` - files used in unit tests (`ace_time::testing` +- `src/AceTime.h` - main header file +- main library code + - `src/ace_time/` - date and time classes (`ace_time::` namespace) + - `src/ace_time/common/` - shared classes and utilities + - `src/ace_time/testing/` - files used in unit tests (`ace_time::testing` namespace) - * `src/zoneinfo` - reading the zone databases, and normalizing the + - `src/zoneinfo` - reading the zone databases, and normalizing the interface for accessing the data records -* zone databases - * `src/zonedb/` - files generated from TZ Database for +- zone databases + - `src/zonedb/` - files generated from TZ Database for `BasicZoneProcessor` (`ace_time::zonedb` namespace) - * `src/zonedbx/` - files generated from TZ Database for + - `src/zonedbx/` - files generated from TZ Database for `ExtendedZoneProcessor` (`ace_time::zonedbx` namespace) - * `src/zonedbc/` - files generated from TZ Database for + - `src/zonedbc/` - files generated from TZ Database for `CompleteZoneProcessor` (`ace_time::zonedbc` namespace) - * `src/testingzonedb/` - limited subset of `zonedb` for unit tests - * `src/testingzonedbx/` - limited subset of `zonedbx` for unit tests - * `src/testingzonedbc/` - limited subset of `zonedbc` for unit tests -* `tests/ - * unit tests using [AUnit](https://github.com/bxparks/AUnit) -* `examples/` - example programs and benchmarks - * Simple - * [HelloDateTime](examples/HelloDateTime) - * Simple demo of `ZonedDateTime` class - * [HelloZoneManager](examples/HelloZoneManager) - * Simple demo of `ExtendedZoneManager` class - * Intermediate - * [CustomZoneRegistry](examples/CustomZoneRegistry) - * Same as `HelloZoneManager`, but using a custom zone registry + - `src/testingzonedb/` - limited subset of `zonedb` for unit tests + - `src/testingzonedbx/` - limited subset of `zonedbx` for unit tests + - `src/testingzonedbc/` - limited subset of `zonedbc` for unit tests +- `tests/ + - unit tests using [AUnit](https://github.com/bxparks/AUnit) +- `examples/` - example programs and benchmarks + - Simple + - [HelloDateTime](examples/HelloDateTime) + - Simple demo of `ZonedDateTime` class + - [HelloZoneManager](examples/HelloZoneManager) + - Simple demo of `ExtendedZoneManager` class + - Intermediate + - [CustomZoneRegistry](examples/CustomZoneRegistry) + - Same as `HelloZoneManager`, but using a custom zone registry with only 7-8 timezones instead of the ~600 timezones in the full `zonedbx` registry. - * Advanced - * [EspTime](examples/EspTime) - * Use AceTime with the built-in SNTP client of ESP8266 and ESP32. - * Benchmarks - * These are internal applications to benchmark various parts of this + - [Disambiguate](examples/Disambiguate) + - Example of `disambigate` parameter to `forComponents()` + - Advanced + - [EspTime](examples/EspTime) + - Use AceTime with the built-in SNTP client of ESP8266 and ESP32. + - Benchmarks + - These are internal applications to benchmark various parts of this library. They are not meant to be examples for how to use the library. - * [MemoryBenchmark](examples/MemoryBenchmark) - * determine flash and static memory consumption of various classes - * [AutoBenchmark](examples/AutoBenchmark) - * determine CPU usage of various features - * [ComparisonBenchmark](examples/ComparisonBenchmark) - * compare AceTime with + - [MemoryBenchmark](examples/MemoryBenchmark) + - determine flash and static memory consumption of various classes + - [AutoBenchmark](examples/AutoBenchmark) + - determine CPU usage of various features + - [ComparisonBenchmark](examples/ComparisonBenchmark) + - compare AceTime with [Arduino Time Lib](https://github.com/PaulStoffregen/Time) - * [CompareAceTimeToHinnantDate](examples/CompareAceTimeToHinnantDate) - * compare the performance of AceTime to Hinnant date library - * AceTime seems to be about 90X faster - * Debugging - * [DebugZoneProcessor](examples/DebugZoneProcessor) - * Command-line debugging tool for ExtenedZoneProcessor using the + - [CompareAceTimeToHinnantDate](examples/CompareAceTimeToHinnantDate) + - compare the performance of AceTime to Hinnant date library + - AceTime seems to be about 90X faster + - Debugging + - [DebugZoneProcessor](examples/DebugZoneProcessor) + - Command-line debugging tool for ExtenedZoneProcessor using the EpoxyDuino environment - * [ListZones](examples/ListZones) - * List the zones managed by the `ExtendedZoneManager`, sorted + - [ListZones](examples/ListZones) + - List the zones managed by the `ExtendedZoneManager`, sorted by name, or by UTC offset and name. - * Used to debug the `ZoneSorter` classes. + - Used to debug the `ZoneSorter` classes. - ### Dependencies The AceTime library depends on the following libraries: -* AceCommon (https://github.com/bxparks/AceCommon) -* AceSorting (https://github.com/bxparks/AceSorting) +- AceCommon (https://github.com/bxparks/AceCommon) +- AceSorting (https://github.com/bxparks/AceSorting) Various programs in the `examples/` directory have one or more of the following -external dependencies. The comment section near the top of the `*.ino` file will +external dependencies. The comment section near the top of the `.ino` file will usually have more precise dependency information: -* AceTimeClock (https://github.com/bxparks/AceTimeClock) -* Arduino Time Lib (https://github.com/PaulStoffregen/Time) -* Arduino Timezone (https://github.com/JChristensen/Timezone) +- AceTimeClock (https://github.com/bxparks/AceTimeClock) +- Arduino Time Lib (https://github.com/PaulStoffregen/Time) +- Arduino Timezone (https://github.com/JChristensen/Timezone) If you want to run the unit tests or validation tests using a Linux or MacOS machine, you need: -* AUnit (https://github.com/bxparks/AUnit) -* EpoxyDuino (https://github.com/bxparks/EpoxyDuino) +- AUnit (https://github.com/bxparks/AUnit) +- EpoxyDuino (https://github.com/bxparks/EpoxyDuino) - ## Documentation -* [README.md](README.md): this file -* [USER_GUIDE.md](USER_GUIDE.md): the AceTime User Guide -* [DEVELOPER.md](DEVELOPER.md): internal details for developers of AceTime +- [README.md](README.md): this file +- [USER_GUIDE.md](USER_GUIDE.md): the AceTime User Guide +- [DEVELOPER.md](DEVELOPER.md): internal details for developers of AceTime library -* [MIGRATING.md](MIGRATING.md): migrating to versions with breaking changes -* [Doxygen docs](https://bxparks.github.io/AceTime/html) hosted on GitHub Pages +- [MIGRATING.md](MIGRATING.md): migrating to versions with breaking changes +- [Doxygen docs](https://bxparks.github.io/AceTime/html) hosted on GitHub Pages - ### HelloDateTime Here is a simple program (see [examples/HelloDateTime](examples/HelloDateTime)) @@ -362,7 +369,6 @@ losAngelesTime == londonTime: false (The default epoch for AceTime is 2050-01-01, so a date in 2019 will return a negative epoch seconds.) - ### HelloZoneManager The [examples/HelloZoneManager](examples/HelloZoneManager) example shows how to @@ -428,7 +434,6 @@ It produces the following output: 2019-03-10T21:00:00+11:00[Australia/Sydney] ``` - ### WorldClock Here is a photo of the WorldClock @@ -438,91 +443,48 @@ for all 3 zones: ![WorldClock](https://github.com/bxparks/clocks/blob/master/WorldClock/WorldClock.jpg) - ## User Guide The full documentation of the following classes are given in the [USER_GUIDE.md](USER_GUIDE.md): -* date and time classes and types - * `ace_time::acetime_t` - * `ace_time::DateStrings` - * `ace_time::LocalTime` - * `ace_time::LocalDate` - * `ace_time::LocalDateTime` - * `ace_time::TimeOffset` - * `ace_time::OffsetDateTime` - * `ace_time::TimePeriod` - * mutation helpers - * `ace_time::local_date_mutation::` - * `ace_time::time_offset_mutation::` - * `ace_time::time_period_mutation::` - * `ace_time::offset_date_time_mutation::` - * `ace_time::zoned_date_time_mutation::` -* timezone classes - * `ace_time::ZoneProcessor` - * `ace_time::BasicZoneProcessor` - * `ace_time::ExtendedZoneProcessor` - * `ace_time::CompleteZoneProcessor` - * `ace_time::TimeZone` - * `ace_time::ZonedDateTime` - * `ace_time::ZoneManager` - * `ace_time::BasicZoneManager` - * `ace_time::ExtendedZoneManager` - * `ace_time::CompleteZoneManager` - * `ace_time::ManualZoneManager` -* ZoneInfo Database - * 3 sets of timezone data are provided (Basic, Extended, Complete) which - support slightly different sets of zones and years - * programmatically generated from the IANA TZ Database files - * each timezone is identified in multiple ways - * ZoneInfo: (opaque) pointer to a `ZoneInfo` data structure - * ZoneId: unique and stable `uint32_t` identifier (e.g. `0xb7f7e8f2`) - * ZoneName: unique human-readable string (e.g. "America/Los_Angeles") - * Basic (not usually recommended) - * 448 zones and links as of 2023c - * ZoneInfo (`const ace_time::basic::Info::ZoneInfo*`) - * `ace_time::zonedb::kZoneAfrica_Abidjan` - * ... - * `ace_time::zonedb::kZonePacific_Wallis` - * ZoneId (`uint32_t`) - * `ace_time::zonedb::kZoneIdAfrica_Abidjan` - * ... - * `ace_time::zonedb::kZoneIdPacific_Wallis` - * ZoneName (`const char*`) - * `"Africa/Abidjan"` - * ... - * `"Pacific/Wallis"` - * Extended (recommended for most cases) - * 596 zones and links as of 2023c - * ZoneInfo (`const ace_time::extended::ZoneInfo*`) - * `ace_time::zonedbx::kZoneAfrica_Abidjan` - * ... - * `ace_time::zonedbx::kZonePacific_Wallis` - * ZoneIds (`uint32_t`) - * `ace_time::zonedbx::kZoneIdAfrica_Abidjan` - * ... - * `ace_time::zonedbx::kZoneIdPacific_Wallis` - * ZoneName (`const char*`) - * `"Africa/Abidjan"` - * ... - * `"Pacific/Wallis"` - * Complete (useful when full range of years is necessary) - * 596 zones and links as of 2023c - * ZoneInfo (`const ace_time::complete::ZoneInfo*`) - * `ace_time::zonedbc::kZoneAfrica_Abidjan` - * ... - * `ace_time::zonedbc::kZonePacific_Wallis` - * ZoneId (`uint32_t`) - * `ace_time::zonedbc::kZoneIdAfrica_Abidjan` - * ... - * `ace_time::zonedbc::kZoneIdPacific_Wallis` - * ZoneName (`const char*`) - * `"Africa/Abidjan"` - * ... - * `"Pacific/Wallis"` - - +- date and time classes and types + - `ace_time::acetime_t` + - `ace_time::DateStrings` + - `ace_time::PlainTime` + - `ace_time::PlainDate` + - `ace_time::PlainDateTime` + - `ace_time::TimeOffset` + - `ace_time::OffsetDateTime` + - `ace_time::TimePeriod` + - mutation helpers + - `ace_time::plain_date_mutation::` + - `ace_time::time_offset_mutation::` + - `ace_time::time_period_mutation::` + - `ace_time::offset_date_time_mutation::` + - `ace_time::zoned_date_time_mutation::` +- timezone classes + - `ace_time::ZoneProcessor` + - `ace_time::BasicZoneProcessor` + - `ace_time::ExtendedZoneProcessor` + - `ace_time::CompleteZoneProcessor` + - `ace_time::TimeZone` + - `ace_time::ZonedDateTime` + - `ace_time::ZoneManager` + - `ace_time::BasicZoneManager` + - `ace_time::ExtendedZoneManager` + - `ace_time::CompleteZoneManager` + - `ace_time::ManualZoneManager` +- ZoneInfo Database + - 5 sets of timezone data are provided (zonedb, zonedb2025, zonedbx, + zonedb2025, zonedbc) which support slightly different sets of zones and + years + - programmatically generated from the IANA TZ Database files + - each timezone is identified in multiple ways + - ZoneInfo: (opaque) pointer to a `ZoneInfo` data structure + - ZoneId: unique and stable `uint32_t` identifier (e.g. `0xb7f7e8f2`) + - ZoneName: unique human-readable string (e.g. "America/Los_Angeles") + ## Validation The details of how the Date, Time and TimeZone classes are validated are given @@ -576,19 +538,17 @@ of these bugs in these third party libraries. - [Go lang `time` package](https://pkg.go.dev/time) from 1800 to 2200 * 23 zones produce incorrect results - ## Resource Consumption - ### SizeOf Classes **8-bit processors** ``` Sizes of Objects: -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 5 @@ -639,9 +599,9 @@ Complete: ``` Sizes of Objects: -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 12 @@ -688,24 +648,23 @@ Complete: sizeof(CompleteZoneProcessor::MatchingEra): 44 ``` - ### Zone DB Size The ZoneInfo Database entries are stored in flash memory (using the `PROGMEM` compiler directive) if the microcontroller allows it (e.g. AVR, ESP8266) so that they do not consume static RAM. The [examples/MemoryBenchmark](examples/MemoryBenchmark/) program shows the flash -memory consumption for the ZoneInfo data files are: - -* `BasicZoneProcessor` (all zones and links) - * 25 kB (8-bit processor) - * 32 kB (32-bit processor) -* `ExtendedZoneProcessor` (all zones and links) - * 40 kB (8-bit processor) - * 51 kB (32-bit processor) -* `CompleteZoneProcessor` (all zones and links) - * too large (8-bit processor) - * 100 kB (32-bit processor) +memory consumption for the ZoneInfo data files are roughly: + +- `BasicZoneProcessor` (all zones and links in `zonedb`) + - 25 kB (8-bit processor) + - 32 kB (32-bit processor) +- `ExtendedZoneProcessor` (all zones and links in `zonedbx`) + - 40 kB (8-bit processor) + - 51 kB (32-bit processor) +- `CompleteZoneProcessor` (all zones and links in `zonedbc`) + - too large (8-bit processor) + - 100 kB (32-bit processor) An example of more complex application is the WorldClock (https://github.com/bxparks/clocks/tree/master/WorldClock) @@ -721,7 +680,6 @@ used in small microcontroller environments. In other words, it does not call the `String` class. Everything it needs is allocated statically at initialization time. - ### Flash And Static Memory [MemoryBenchmark](examples/MemoryBenchmark/) was used to determine the @@ -736,7 +694,7 @@ Arduino Nano: |----------------------------------------+--------------+--------------| | baseline | 474/ 11 | 0/ 0 | |----------------------------------------+--------------+--------------| -| LocalDateTime | 1108/ 21 | 634/ 10 | +| PlainDateTime | 1108/ 21 | 634/ 10 | | ZonedDateTime | 1444/ 30 | 970/ 19 | | Manual ZoneManager | 1406/ 13 | 932/ 2 | |----------------------------------------+--------------+--------------| @@ -777,7 +735,7 @@ ESP8266: |----------------------------------------+--------------+--------------| | baseline | 260089/27892 | 0/ 0 | |----------------------------------------+--------------+--------------| -| LocalDateTime | 260613/27912 | 524/ 20 | +| PlainDateTime | 260613/27912 | 524/ 20 | | ZonedDateTime | 261573/27928 | 1484/ 36 | | Manual ZoneManager | 261553/27900 | 1464/ 8 | |----------------------------------------+--------------+--------------| @@ -810,7 +768,6 @@ ESP8266: +---------------------------------------------------------------------+ ``` - ### CPU Usage [AutoBenchmark](examples/AutoBenchmark/) was used to determine the @@ -825,9 +782,9 @@ Arduino Nano: |--------------------------------------------------+----------| | EmptyLoop | 3.000 | |--------------------------------------------------+----------| -| LocalDate::forEpochDays() | 243.000 | -| LocalDate::toEpochDays() | 51.000 | -| LocalDate::dayOfWeek() | 50.000 | +| PlainDate::forEpochDays() | 243.000 | +| PlainDate::toEpochDays() | 51.000 | +| PlainDate::dayOfWeek() | 50.000 | |--------------------------------------------------+----------| | OffsetDateTime::forEpochSeconds() | 363.000 | | OffsetDateTime::toEpochSeconds() | 77.000 | @@ -887,9 +844,9 @@ ESP8266: |--------------------------------------------------+----------| | EmptyLoop | 5.000 | |--------------------------------------------------+----------| -| LocalDate::forEpochDays() | 7.000 | -| LocalDate::toEpochDays() | 3.500 | -| LocalDate::dayOfWeek() | 3.500 | +| PlainDate::forEpochDays() | 7.000 | +| PlainDate::toEpochDays() | 3.500 | +| PlainDate::dayOfWeek() | 3.500 | |--------------------------------------------------+----------| | OffsetDateTime::forEpochSeconds() | 12.500 | | OffsetDateTime::toEpochSeconds() | 7.000 | @@ -941,43 +898,41 @@ ESP8266: Iterations_per_run: 2000 ``` - ## System Requirements - ### Hardware **Tier 1: Fully supported** These boards are tested on each release: -* Arduino Nano (16 MHz ATmega328P) -* SparkFun Pro Micro (16 MHz ATmega32U4) -* Seeed Studio XIAO M0 (SAMD21, 48 MHz ARM Cortex-M0+) -* STM32 Blue Pill (STM32F103C8, 72 MHz ARM Cortex-M3) -* Adafruit ItsyBitsy M4 (SAMD51, 120 MHz ARM Cortex-M4) -* NodeMCU 1.0 (ESP-12E module, 80 MHz ESP8266) -* WeMos D1 Mini (ESP-12E module, 80 MHz ESP8266) -* ESP32 dev board (ESP-WROOM-32 module, 240 MHz dual core Tensilica LX6) +- Arduino Nano (16 MHz ATmega328P) +- SparkFun Pro Micro (16 MHz ATmega32U4) +- Seeed Studio XIAO M0 (SAMD21, 48 MHz ARM Cortex-M0+) +- STM32 Blue Pill (STM32F103C8, 72 MHz ARM Cortex-M3) +- Adafruit ItsyBitsy M4 (SAMD51, 120 MHz ARM Cortex-M4) +- NodeMCU 1.0 (ESP-12E module, 80 MHz ESP8266) +- WeMos D1 Mini (ESP-12E module, 80 MHz ESP8266) +- ESP32 dev board (ESP-WROOM-32 module, 240 MHz dual core Tensilica LX6) **Tier 2: Should work** These boards should work but I don't test them as often: -* ATtiny85 (8 MHz ATtiny85) -* Arduino Pro Mini (16 MHz ATmega328P) -* Mini Mega 2560 (Arduino Mega 2560 compatible, 16 MHz ATmega2560) -* Teensy LC (48 MHz ARM Cortex-M0+) -* Teensy 3.2 (96 MHz ARM Cortex-M4) +- ATtiny85 (8 MHz ATtiny85) +- Arduino Pro Mini (16 MHz ATmega328P) +- Mini Mega 2560 (Arduino Mega 2560 compatible, 16 MHz ATmega2560) +- Teensy LC (48 MHz ARM Cortex-M0+) +- Teensy 3.2 (96 MHz ARM Cortex-M4) **Tier 3: May work, but not supported** -* Other SAMD21 based boards, e.g Arduino Zero - * SAMD21 based boards are now split into 2 groups: - * Those using the new ArduinoCore-API, usually Arduino-branded +- Other SAMD21 based boards, e.g Arduino Zero + - SAMD21 based boards are now split into 2 groups: + - Those using the new ArduinoCore-API, usually Arduino-branded boards. These are explicitly blacklisted. See below. - * Other 3rd party SAMD21 boards using the previous Arduino API. - * The ones using the previous Arduino API *may* work but I have not + - Other 3rd party SAMD21 boards using the previous Arduino API. + - The ones using the previous Arduino API *may* work but I have not explicitly tested any of them except for the Seeed Studio XIAO M0 and Adafruit ItsyBitsy M4. @@ -987,46 +942,45 @@ The following boards are *not* supported and are explicitly blacklisted to allow the compiler to print useful error messages instead of hundreds of lines of compiler errors: -* Any platform using the +- Any platform using the [ArduinoCore-API](https://github.com/arduino/ArduinoCore-api). For example: - * Arduino Nano Every - * Arduino Nano 33 IoT - * Arduino MKRZero - * Arduino UNO R4 - * Raspberry Pi Pico RP2040 + - Arduino Nano Every + - Arduino Nano 33 IoT + - Arduino MKRZero + - Arduino UNO R4 + - Raspberry Pi Pico RP2040 - ### Tool Chain This library was developed and tested using: -* [Arduino IDE 1.8.19](https://www.arduino.cc/en/Main/Software) -* [Arduino CLI 0.33.0](https://arduino.github.io/arduino-cli) -* [SpenceKonde ATTinyCore 1.5.2](https://github.com/SpenceKonde/ATTinyCore) -* [Arduino AVR Boards 1.8.6](https://github.com/arduino/ArduinoCore-avr) -* [Arduino SAMD Boards 1.8.9](https://github.com/arduino/ArduinoCore-samd) -* [SparkFun AVR Boards 1.1.13](https://github.com/sparkfun/Arduino_Boards) -* [SparkFun SAMD Boards 1.8.9](https://github.com/sparkfun/Arduino_Boards) -* [Seeeduino SAMD Boards 1.8.4](https://wiki.seeedstudio.com/Seeed_Arduino_Boards/) -* [STM32duino 2.5.0](https://github.com/stm32duino/Arduino_Core_STM32) -* [ESP8266 Arduino 3.0.2](https://github.com/esp8266/Arduino) -* [ESP32 Arduino 2.0.9](https://github.com/espressif/arduino-esp32) -* [Teensyduino 1.57](https://www.pjrc.com/teensy/td_download.html) +- [Arduino IDE 1.8.19](https://www.arduino.cc/en/Main/Software) +- [Arduino CLI 0.33.0](https://arduino.github.io/arduino-cli) +- [SpenceKonde ATTinyCore 1.5.2](https://github.com/SpenceKonde/ATTinyCore) +- [Arduino AVR Boards 1.8.6](https://github.com/arduino/ArduinoCore-avr) +- [Arduino SAMD Boards 1.8.9](https://github.com/arduino/ArduinoCore-samd) +- [SparkFun AVR Boards 1.1.13](https://github.com/sparkfun/Arduino_Boards) +- [SparkFun SAMD Boards 1.8.9](https://github.com/sparkfun/Arduino_Boards) +- [Seeeduino SAMD Boards 1.8.4](https://wiki.seeedstudio.com/Seeed_Arduino_Boards/) +- [STM32duino 2.5.0](https://github.com/stm32duino/Arduino_Core_STM32) +- [ESP8266 Arduino 3.0.2](https://github.com/esp8266/Arduino) +- [ESP32 Arduino 2.0.9](https://github.com/espressif/arduino-esp32) +- [Teensyduino 1.57](https://www.pjrc.com/teensy/td_download.html) This library is *not* compatible with: -* Any platform using the +- Any platform using the [ArduinoCore-API](https://github.com/arduino/ArduinoCore-api), for example: - * [Arduino megaAVR](https://github.com/arduino/ArduinoCore-megaavr/) - * Nano Every - * [Arduino SAMD Boards >=1.8.10](https://github.com/arduino/ArduinoCore-samd) - * MKRZero - * Nano 33 IoT - * [ArduinoCore-renesas](https://github.com/arduino/ArduinoCore-renesas) - * Arduino UNO R4 - * [Arduino-Pico](https://github.com/earlephilhower/arduino-pico) - * Raspberry Pi Pico (RP2040) - * [MegaCoreX](https://github.com/MCUdude/MegaCoreX) + - [Arduino megaAVR](https://github.com/arduino/ArduinoCore-megaavr/) + - Nano Every + - [Arduino SAMD Boards >=1.8.10](https://github.com/arduino/ArduinoCore-samd) + - MKRZero + - Nano 33 IoT + - [ArduinoCore-renesas](https://github.com/arduino/ArduinoCore-renesas) + - Arduino UNO R4 + - [Arduino-Pico](https://github.com/earlephilhower/arduino-pico) + - Raspberry Pi Pico (RP2040) + - [MegaCoreX](https://github.com/MCUdude/MegaCoreX) It should work with [PlatformIO](https://platformio.org/) but I have not tested it. @@ -1034,13 +988,11 @@ not tested it. The library works on Linux or MacOS (using both g++ and clang++ compilers) using the EpoxyDuino (https://github.com/bxparks/EpoxyDuino) emulation layer. - ### Operating System I use Ubuntu 22.04 for the vast majority of my development. I expect that the library will work fine under MacOS and Windows, but I have not tested them. - ## Motivation and Design Considerations In the beginning, I created a digital clock using an Arduino Nano board, a small @@ -1054,13 +1006,13 @@ In full-featured operating systems (e.g. Linux, MacOS, Windows) and languages with timezone library support (e.g. Java, Python, JavaScript, C#, Go), the user has the ability to specify the Daylight Saving time (DST) transitions using 2 ways: -* [POSIX -format](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html) -which encodes the DST transitions into a string (e.g. -`EST+5EDT,M3.2.0/2,M11.1.0/2`) that can be parsed programmatically, or -* a reference to a [TZ Database](https://www.iana.org/time-zones) entry -(e.g. `America/Los_Angeles` or `Europe/London`) which identifies a set of time -transition rules for the given timezone. +- [POSIX + format](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html) + which encodes the DST transitions into a string (e.g. + `EST+5EDT,M3.2.0/2,M11.1.0/2`) that can be parsed programmatically, or +- a reference to a [TZ Database](https://www.iana.org/time-zones) entry (e.g. + `America/Los_Angeles` or `Europe/London`) which identifies a set of time + transition rules for the given timezone. The problem with the POSIX format is that it is somewhat difficult for a human to understand, and the programmer must manually update this string when a @@ -1094,15 +1046,15 @@ string. The AceTime library is inspired by and borrows from: -* [Java 11 Time](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/package-summary.html) -* [Micro Time Zone](https://github.com/evq/utz) -* [Arduino Timezone](https://github.com/JChristensen/Timezone) -* [Arduino Time](https://github.com/PaulStoffregen/Time) -* [Joda-Time](https://www.joda.org/joda-time/) -* [Noda Time](https://nodatime.org/) -* [Python datetime](https://docs.python.org/3/library/datetime.html) -* [Python pytz](https://pypi.org/project/pytz/) -* [ezTime](https://github.com/ropg/ezTime) +- [Java 11 Time](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/package-summary.html) +- [Micro Time Zone](https://github.com/evq/utz) +- [Arduino Timezone](https://github.com/JChristensen/Timezone) +- [Arduino Time](https://github.com/PaulStoffregen/Time) +- [Joda-Time](https://www.joda.org/joda-time/) +- [Noda Time](https://nodatime.org/) +- [Python datetime](https://docs.python.org/3/library/datetime.html) +- [Python pytz](https://pypi.org/project/pytz/) +- [ezTime](https://github.com/ropg/ezTime) The names and API of AceTime classes are heavily borrowed from the [Java JDK 11 java.time](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/package-summary.html) @@ -1142,17 +1094,15 @@ at runtime to 1-3 timezones. The library also aims to be as portable as possible, and supports AVR microcontrollers, as well as ESP8266, ESP32 and Teensy microcontrollers. - ## Comparisons to Other Time Libraries - ### Arduino Time Library The AceTime library can be substantially faster than the equivalent methods in the [Arduino Time Library](https://github.com/PaulStoffregen/Time). The [ComparisonBenchmark.ino](examples/ComparisonBenchmark/) program compares the -CPU run time of `LocalDateTime::forEpochSeconds()` and -`LocalDateTime::toEpochSeconds()` with the equivalent `breakTime()` and +CPU run time of `PlainDateTime::forEpochSeconds()` and +`PlainDateTime::toEpochSeconds()` with the equivalent `breakTime()` and `makeTime()` functions of the Arduino Time Library. Details are given in the [ComparisonBenchmark/README.md](examples/ComparisonBenchmark/README.md) file. Two examples for the Arduino Nano and ESP8266 are shown below: @@ -1165,10 +1115,10 @@ Two examples for the Arduino Nano and ESP8266 are shown below: |----------------------------------------+----------| | EmptyLoop | 5.000 | |----------------------------------------+----------| -| LocalDateTime::forEpochSeconds() | 270.000 | +| PlainDateTime::forEpochSeconds() | 270.000 | | breakTime() | 594.500 | |----------------------------------------+----------| -| LocalDateTime::toEpochSeconds() | 66.500 | +| PlainDateTime::toEpochSeconds() | 66.500 | | makeTime() | 344.500 | +----------------------------------------+----------+ ``` @@ -1181,45 +1131,43 @@ Two examples for the Arduino Nano and ESP8266 are shown below: |----------------------------------------+----------| | EmptyLoop | 0.800 | |----------------------------------------+----------| -| LocalDateTime::forEpochSeconds() | 13.100 | +| PlainDateTime::forEpochSeconds() | 13.100 | | breakTime() | 42.600 | |----------------------------------------+----------| -| LocalDateTime::toEpochSeconds() | 4.500 | +| PlainDateTime::toEpochSeconds() | 4.500 | | makeTime() | 24.800 | +----------------------------------------+----------+ ``` - ### C Time Library (time.h) Some version of the standard Unix/C library `` is available in *some* Arduino platforms, but not others: -* The [AVR libc time +- The [AVR libc time library](https://www.nongnu.org/avr-libc/user-manual/group__avr__time.html) - * contains methods such as `gmtime()` to convert `time_t` integer into date + - contains methods such as `gmtime()` to convert `time_t` integer into date time components `struct tm`, - * and a non-standard `mk_gmtime()` to convert components into a `time_t` + - and a non-standard `mk_gmtime()` to convert components into a `time_t` integer - * the `time_t` integer is unsigned, and starts at 2000-01-01T00:00:00 UTC - * no support for timezones - * the `time()` value does *not* auto-increment. The `system_tick()` function + - the `time_t` integer is unsigned, and starts at 2000-01-01T00:00:00 UTC + - no support for timezones + - the `time()` value does *not* auto-increment. The `system_tick()` function must be manually called, probably in an ISR (interrupt service routine). -* The SAMD21 and Teensy platforms do not seem to have a `` library. -* The ESP8266 and ESP32 have a `` library. - * The `time()` function automatically increments through the +- The SAMD21 and Teensy platforms do not seem to have a `` library. +- The ESP8266 and ESP32 have a `` library. + - The `time()` function automatically increments through the `system_get_time()` system call. - * Provides an SNTP client that can synchronize with an NTP service + - Provides an SNTP client that can synchronize with an NTP service and resynchronize the `time()` function. - * Adds `configTime()` functions to configure the behavior of the + - Adds `configTime()` functions to configure the behavior of the SNTP service, including POSIX timezones. - * ESP8266 `TZ.h` containing pre-calculated POSIX timezone strings. + - ESP8266 `TZ.h` containing pre-calculated POSIX timezone strings. These libraries are all based upon the [traditional C/Unix library methods](http://www.catb.org/esr/time-programming/) which can be difficult to understand. - ### ESP8266 and ESP32 TimeZones The ESP8266 platform provides a @@ -1248,7 +1196,6 @@ also the class in the AceTimeClock project which provides a thin-wrapper around this service on the ESP platforms. - ### ezTime The [ezTime](https://github.com/ropg/ezTime) is a library that seems to be @@ -1259,7 +1206,6 @@ network access for this library to work. I wanted to create a library that was self-contained and could run on an Arduino Nano with just an RTC chip without a network shield. - ### Micro Time Zone The [Micro Time Zone](https://github.com/evq/utz) is a pure-C library @@ -1277,11 +1223,10 @@ library contains more algorithmic code so will consume more flash memory. It is not entirely clear which library is smaller for 1-3 time zones. (This may be an interesting investigation the future.) - ### Java Time, Joda-Time, Noda Time -The names and functionality of most the date and time classes (`LocalTime`, -`LocalDate`, `LocalDateTime`, `OffsetDateTime`, and `ZonedDateTime`) were +The names and functionality of most the date and time classes (`PlainTime`, +`PlainDate`, `PlainDateTime`, `OffsetDateTime`, and `ZonedDateTime`) were inspired by the architecture of the [Java 11 java.time](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/package-summary.html) package. However, there were many parts of the `java.time` package that were not @@ -1299,7 +1244,6 @@ provides other fine-grained classes such as `OffsetTime`, `OffsetDate`, `Year`, providing too many classes. The API of the library is already too large, I did not want to make them larger than necessary. - ### Howard Hinnant Date Library The [date](https://github.com/HowardHinnant/date) package by Howard Hinnant is @@ -1310,17 +1254,17 @@ libraries were voted into the C++20 standard. Unfortunately these libraries are not suitable for an Arduino microcontroller environment because: -* The libraries depend extensively on 64-bit integers which are +- The libraries depend extensively on 64-bit integers which are impractical on 8-bit microcontrollers with only 32kB of flash memory. -* The `tz.h` library has the option of downloading the TZ Database files over +- The `tz.h` library has the option of downloading the TZ Database files over the network using `libcurl` to the OS filesystem then parsing the files, or using the native Zoneinfo entries on the host OS. Neither options are practical on small microcontrollers. The raw TZ Database files consume about 1MB in gzip'ed format, which are not suitable for a 32kB Arduino microcontroller. -* The libraries has dependencies on other libraries such as `` and +- The libraries has dependencies on other libraries such as `` and `` which don't exist on most Arduino platforms. -* The libraries are heavily templatized to provide maximum flexibility +- The libraries are heavily templatized to provide maximum flexibility and type-safety. But this makes the libraries incredibly hard to understand and cumbersome to use for the simple use cases targeted by the AceTime library. @@ -1333,7 +1277,6 @@ algorithms to the Hinnant Date algorithms. For all times zones between the years abbreviations (`ZonedExtra`) calculated from the given epochSeconds match the results from the Hinnant Date libraries. - ### Google cctz The [cctz](https://github.com/google/cctz) library from Google is also based on @@ -1341,12 +1284,10 @@ the `` library. I have not looked at this library closely because I assumed that it would *not* fit inside an Arduino controller. Hopefully I will get some time to take a closer look in the future. - ## License [MIT License](https://opensource.org/licenses/MIT) - ## Feedback and Support If you have any questions, comments, or feature requests for this library, @@ -1362,7 +1303,6 @@ Please refrain from emailing me directly unless the content is sensitive. The problem with email is that I cannot reference the email conversation when other people ask similar questions later. - ## Authors -* Created by Brian T. Park (brian@xparks.net). +- Created by Brian T. Park (brian@xparks.net). diff --git a/USER_GUIDE.md b/USER_GUIDE.md index 891d3362d..670be20b7 100644 --- a/USER_GUIDE.md +++ b/USER_GUIDE.md @@ -13,89 +13,88 @@ integer is about 136 years which allows most features of the AceTime library to work across at least about a 120-year interval straddling the current epoch year. -The IANA TZ database is programmatically generated into 3 predefined databases: -`src/zonedb`, `src/zonedbx`, and `src/zonedbc` subdirectories. Different -databases have different accuracy ranges, and are designed to work with -different `ZoneProcessor` and `ZoneManager` classes. +The IANA TZ database is programmatically generated into 5 predefined databases: +`src/zonedb`, `src/zonedb2025`, `src/zonedbx`, `src/zonedbx2025`, and +`src/zonedbc` subdirectories. Different databases have different accuracy +ranges, and are designed to work with different `ZoneProcessor` and +`ZoneManager` classes. -**Version**: 3.0.0 (2025-04-25, TZDB 2025b) +**Version**: 4.0.0 (2025-10-21, TZDB 2025b) **Related Documents**: -* [README.md](README.md): introductory background -* [Doxygen docs](https://bxparks.github.io/AceTime/html) hosted on GitHub +- [README.md](README.md): introductory background ## Table of Contents -* [Overview](#Overview) - * [Date And Time Overview](#DateAndTimeOverview) - * [TimeZone Overview](#TimeZoneOverview) - * [ZoneInfo Database Overview](#ZoneInfoDatabaseOverview) -* [Headers and Namespaces](#Headers) -* [Date and Time Classes](#DateTimeClasses) - * [Epoch Seconds Typedef](#EpochSeconds) - * [Adjustable Epoch](#AdjustableEpoch) - * [LocalDate and LocalTime](#LocalDateAndLocalTime) - * [Date Strings](#DateStrings) - * [LocalDateTime](#LocalDateTime) - * [TimePeriod](#TimePeriod) - * [TimeOffset](#TimeOffset) - * [OffsetDateTime](#OffsetDateTime) -* [TimeZone Classes](#TimeZoneClasses) - * [TimeZone](#TimeZone) - * [Manual TimeZone](#ManualTimeZone) - * [Basic TimeZone](#BasicTimeZone) - * [Extended TimeZone](#ExtendedTimeZone) - * [TimeZone Type Recommendations](#TimeZoneTypeRecommendations) - * [ZonedDateTime](#ZonedDateTime) - * [Class Declaration](#ZonedDateTimeDeclaration) - * [Creation](#ZonedDateTimeCreation) - * [Conversion to Other Time Zones](#TimeZoneConversion) - * [DST Transition Caching](#DstTransitionCaching) - * [ZonedExtra](#ZonedExtra) - * [ZoneManager](#ZoneManager) - * [Class Hierarchy](#ClassHierarchy) - * [Default Registries](#DefaultRegistries) - * [ZoneProcessorCache](#ZoneProcessorCache) - * [ZoneManager Creation](#ZoneManagerCreation) - * [createForZoneName()](#CreateForZoneName) - * [createForZoneId()](#CreateForZoneId) - * [createForZoneIndex()](#CreateForZoneIndex) - * [createForTimeZoneData()](#CreateForTimeZoneData) - * [ManualZoneManager](#ManualZoneManager) - * [Handling Gaps and Overlaps](#HandlingGapsAndOverlaps) - * [Problems with Gaps and Overlaps](#ProblemsWithGapsAndOverlaps) - * [Classes with Fold](#ClassesWithFold) - * [Factory Methods with Fold](#FactoryMethodsWithFold) - * [Resource Consumption with Fold](#ResourceConsumptionWithFold) - * [Semantic Changes with Fold](#SemanticChangesWithFold) - * [Examples with Fold](#ExamplesWithFold) -* [ZoneInfo Database](#ZoneInfoDatabase) - * [ZoneInfo Records](#ZoneInfoRecords) - * [ZoneDB](#ZoneDB) - * [Basic zonedb](#BasicZonedb) - * [Extended zonedbx](#ExtendedZonedbx) - * [Complete zonedbc](#CompleteZonedbc) - * [External Zone Classes](#ExternalZone) - * [TZ Database Version](#TzDatabaseVersion) - * [Zone Info Year Range](#ZoneInfoYearRange) - * [Zones and Links](#ZonesAndLinks) - * [Custom Zone Registry](#CustomZoneRegistry) -* [Zone Sorting](#ZoneSorting) -* [Print To String](#PrintToString) -* [Mutations](#Mutations) - * [TimeOffset Mutations](#TimeOffsetMutations) - * [LocalDate Mutations](#LocalDateMutations) - * [OffsetDateTime Mutations](#OffsetDateTimeMutations) - * [ZonedDateTime Mutations](#ZonedDateTimeMutations) - * [ZonedDateTime Normalization](#ZonedDateTimeNormalization) - * [TimePeriod Mutations](#TimePeriodMutations) -* [Error Handling](#ErrorHandling) - * [Invalid Sentinels](#InvalidSentinels) - * [isError()](#IsError) -* [Bugs and Limitations](#Bugs) - - +- [Overview](#overview) + - [Date And Time Overview](#date-and-time-overview) + - [TimeZone Overview](#timezone-overview) + - [ZoneInfo Database Overview](#zoneinfo-database-overview) +- [Headers and Namespaces](#headers-and-namespaces) +- [Date and Time Classes](#date-and-time-classes) + - [Epoch Seconds Typedef](#epoch-seconds-typedef) + - [Adjustable Epoch](#adjustable-epoch) + - [PlainDate and PlainTime](#plaindate-and-localtime) + - [Date Strings](#date-strings) + - [PlainDateTime](#plaindatetime) + - [TimePeriod](#timeperiod) + - [TimeOffset](#timeoffset) + - [OffsetDateTime](#offsetdatetime) +- [TimeZone Related Classes](#timezone-related-classes) + - [TimeZone](#timezone) + - [Manual TimeZone](#manual-timezone) + - [Basic TimeZone](#basic-timezone) + - [Extended TimeZone](#extended-timezone) + - [Complete TimeZone](#complete-timezone) + - [TimeZone Type Recommendations](#timezone-type-recommendations) + - [ZonedDateTime](#zoneddatetime) + - [ZonedDateTime Declaration](#zoneddatetime-declaration) + - [ZonedDateTime Creation](#zoneddatetimecreation) + - [Conversion to Other Time Zones](#conversion-to-other-timezones) + - [DST Transition Caching](#dst-transition-caching) + - [ZonedExtra](#zonedextra) + - [ZoneManager](#zonemanager) + - [Class Hierarchy](#class-hierarchy) + - [Default Registries](#default-registries) + - [ZoneProcessorCache](#zoneprocessorcache) + - [ZoneManager Creation](#zonemanager-creation) + - [createForZoneName()](#createforzonename) + - [createForZoneId()](#createforzoneid) + - [createForZoneIndex()](#createforzoneindex) + - [createForTimeZoneData()](#createfortimezonedata) + - [ManualZoneManager](#manualzonemanager) + - [Handling Gaps and Overlaps](#handling-gaps-and-overlaps) + - [Problems with Gaps and Overlaps](#problems-with-gaps-and-overlaps) + - [Factory Methods with Disambiguation](#factory-methods-with-disambiguation) + - [Resolved Disambiguation](#resolved-disambiguation) + - [Resource Consumption with Disambiguation](#resource-consumption-with-disambiguation) + - [Examples of Disambiguation](#examples-of-disambiguation) +- [ZoneInfo Database](#zoneinfo-database) + - [ZoneInfo Records](#zoneinfo-records) + - [ZoneDB](#zonedb) + - [Basic zonedb](#basic-zonedb) + - [Extended zonedbx](#extended-zonedbx) + - [Complete zonedbc](#complete-zonedbc) + - [TZ Database Version](#tz-database-version) + - [ZoneInfo Year Range](#zoneinfo-year-range) + - [External Zone Classes](#external-zone-classes) + - [Zones and Links](#zones-and-links) + - [Custom Zone Registry](#custom-zone-registry) +- [Zone Sorting](#zone-sorting) +- [Print To String](#print-to-string) +- [Mutations](#mutations) + - [TimeOffset Mutations](#timeoffset-mutations) + - [PlainDate Mutations](#plaindate-mutations) + - [OffsetDateTime Mutations](#offsetdatetime-mutations) + - [ZonedDateTime Mutations](#zoneddatetime-mutations) + - [ZonedDateTime Normalization](#zoneddatetime-normalization) + - [TimePeriod Mutations](#timeperiod-mutations) +- [Error Handling](#error-handling) + - [Invalid Sentinels](#invalid-sentinels) + - [isError()](#iserror) +- [Bugs and Limitations](#bugs-and-limitations) + ## Overview The Date, Time, and TimeZone classes provide an abstraction layer to make it @@ -103,35 +102,34 @@ easier to use and manipulate date and time fields, in different time zones. It is difficult to organize the various parts of this library in an easily digestible way, but perhaps they can be categorized into three parts: -* Simple Date and Time classes for converting date and time fields to and +- Simple Date and Time classes for converting date and time fields to and from the "epoch seconds", for example: - `acetime_t` - - `LocalDate`, `LocalTime`, `LocalDateTime`, `OffsetDateTime` + - `PlainDate`, `PlainTime`, `PlainDateTime`, `OffsetDateTime` - `TimeOffset`, `TimePeriod` -* TimeZone related classes, for example: +- TimeZone related classes, for example: - `TimeZone`, `ZoneInfo` - `ZonedDateTime`, `ZonedExtra` - `BasicZoneProcessor`, `ExtendedZoneProcessor`, `CompleteZoneProcessor` - `BasicZoneManager`, `ExtendedZoneManager`, `CompleteZoneManager` -* ZoneInfo Databases generated from the IANA TZ Database - * contains UTC offsets and the DST transition rules - * `zonedb/`, `zonedbx/`, `zonedbc/` databases - * registries: `kZoneRegistry`, `kZoneAndLinkRegistry` +- ZoneInfo Databases generated from the IANA TZ Database + - contains UTC offsets and the DST transition rules + - `zonedb/`, `zonedb2025`, `zonedbx/`, `zonedbx2025`, `zonedbc/` databases + - registries: `kZoneRegistry`, `kZoneAndLinkRegistry` - ### Date and Time Overview -First we start with `LocalDate` and `LocalTime` classes which capture the simple +First we start with `PlainDate` and `PlainTime` classes which capture the simple date and time fields respectively. They combine together to form the -`LocalDateTime` class which contains all date and time fields. +`PlainDateTime` class which contains all date and time fields. The `TimeOffset` class represents a simple shift in time, for example, +1h or -4:30 hours. It can be used to represent a UTC offset, or a DST offset. The -`TimeOffset` class combines with the `LocalDateTime` class to form the +`TimeOffset` class combines with the `PlainDateTime` class to form the `OffsetDateTime` classes which represents a date and time that has been shifted from UTC some offset. -Both the `LocalDateTime` and `OffsetDateTime` (and later `ZonedDateTime`) +Both the `PlainDateTime` and `OffsetDateTime` (and later `ZonedDateTime`) classes provide the `toEpochSeconds()` method which returns the number of seconds from an epoch date, the `forEpochSeconds()` method which constructs the ,ate and time fields from the epoch seconds. They also provide the @@ -143,13 +141,13 @@ Epoch in Unix which is 1970-01-01T00:00:00 UTC. Internally, the current time is represented as "seconds from Epoch" stored as a 32-bit signed integer (`acetime_t` aliased to `int32_t`). The smallest 32-bit signed integer (`-2^31`) is used to indicate an internal Error condition, so the range of valid -`acetime_t` value is `-2^31+1` to `2^31-1`. Therefore, the range of dates that -the `acetime_t` type can handle is about 132 years, and the largest date is -2118-01-20T03:14:07 UTC. (In contrast, the 32-bit Unix `time_t` range is -1901-12-13T20:45:52 UTC to 2038-01-19T03:14:07 UTC which is the cause of the -[Year 2038 Problem](https://en.wikipedia.org/wiki/Year_2038_problem)). +`acetime_t` value is `-2^31+1` to `2^31-1` which is about 136 years. The range +of dates goes from 1981-12-13T20:45:53 UTC to 2118-01-20T03:14:07 UTC. In +contrast, the 32-bit Unix `time_t` range is 1901-12-13T20:45:52 UTC to +2038-01-19T03:14:07 UTC which is the cause of the [Year 2038 +Problem](https://en.wikipedia.org/wiki/Year_2038_problem). -The various date classes (`LocalDate`, `LocalDateTime`, `OffsetDateTime`) store +The various date classes (`PlainDate`, `PlainDateTime`, `OffsetDateTime`) store the year component internally as a signed 16-bit integer valid from year 1 to year 9999. Notice that these classes can represent all dates that can be expressed by the `acetime_t` type, but the reverse is not true. There are date @@ -165,7 +163,6 @@ years from the current epoch year. Using the default epoch year of 2050, the recommended range is `[2000,2100)` because a 100-year interval is easy to remember. - ### TimeZone Overview The `TimeZone` class a real or abstract place or region whose local time is @@ -177,29 +174,28 @@ The `TimeZone` object can be defined using the data and rules defined by the [IANA TZ Database](https://www.iana.org/time-zones). AceTime provides 2 different algorithms to process this database: -* `BasicZoneProcessor` - * simpler and smaller, but supports only about 70% of the timezones defined +- `BasicZoneProcessor` + - simpler and smaller, but supports only about 70% of the timezones defined by the IANA TZ Database -* `ExtendedZoneProcessor` - * bigger and more complex and handles the entire TZ database -* `CompleteZoneProcessor` - * same as `ExtendedZoneProcessor` but handles the timezones defined by the +- `ExtendedZoneProcessor` + - bigger and more complex and handles the entire TZ database +- `CompleteZoneProcessor` + - same as `ExtendedZoneProcessor` but handles the timezones defined by the `acetime::zonedbc` database, over a much larger year interval `[0001,10000)`. -Access to the 3 sets data in the ZoneInfo Database is provided by: +Access to the various ZoneInfo Databases (`zonedb*`) is provided by: -* `BasicZoneManager`: - * holds a registry of the basic ZoneInfo data structures - * holds a cache of `BasicZoneProcessor` -* `ExtendedZoneManager`: - * holds a registry of the extended ZoneInfo data structures - * holds a cache of `ExtendedZoneProcessor` -* `CompleteZoneManager`: - * holds a registry of the extended ZoneInfo data structures - * holds a cache of `CompleteZoneProcessor` +- `BasicZoneManager`: + - holds a registry of the basic ZoneInfo data structures + - holds a cache of `BasicZoneProcessor` +- `ExtendedZoneManager`: + - holds a registry of the extended ZoneInfo data structures + - holds a cache of `ExtendedZoneProcessor` +- `CompleteZoneManager`: + - holds a registry of the extended ZoneInfo data structures + - holds a cache of `CompleteZoneProcessor` - ### ZoneInfo Database Overview The official IANA TZ Database is processed and converted into an internal @@ -208,36 +204,45 @@ the IANA TZ Database). The ZoneInfo Database contains statically defined C++ data structures, which each timezone in the TZ Database being represented by a `ZoneInfo` data structure. -Three slightly different sets of ZoneInfo entries are generated: +The following sets of ZoneInfo entries have been generated: -* [zonedb/zone_infos.h](src/zonedb/zone_infos.h) - * intended for `BasicZoneProcessor` or `BasicZoneManager` - * 448 zones and links (as of version 2023c) over the year `[2000,10000)` - * contains `kZone*` declarations (e.g. `kZoneAmerica_Los_Angeles`) - * contains `kZoneId*` identifiers (e.g. `kZoneIdAmerica_Los_Angeles`) - * slightly smaller and slightly faster, but does not supported detection of +- [zonedb/zone_infos.h](src/zonedb/zone_infos.h) + - intended for `BasicZoneProcessor` or `BasicZoneManager` + - 448 zones and links (as of version 2023c) over the year `[2000,10000)` + - contains `kZone*` declarations (e.g. `kZoneAmerica_Los_Angeles`) + - contains `kZoneId*` identifiers (e.g. `kZoneIdAmerica_Los_Angeles`) + - slightly smaller and slightly faster, but does not supported detection of overlaps and gaps perfectly -* [zonedbx/zone_infos.h](src/zonedbx/zone_infos.h) - * intended for `ExtendedZoneProcessor` or `ExtendedZoneManager` - * all 596 (as of version 2023c) in the IANA TZ Database over the years +- [zonedb2025/zone_infos.h](src/zonedb2025/zone_infos.h) + - same as `zonedb`, but using the years `[2025,10000)`. + - this dataset contains *more* zones than `zonedb` because it can include + zones which have complex transition rules before the year 2025 which + the `BasicZoneProcessor` could not handle +- [zonedbx/zone_infos.h](src/zonedbx/zone_infos.h) + - intended for `ExtendedZoneProcessor` or `ExtendedZoneManager` + - all 596 (as of version 2023c) in the IANA TZ Database over the years `[2000,10000)` - * contains `kZone*` declarations (e.g. `kZoneAfrica_Casablanca`) - * contains `kZoneId*` identifiers (e.g. `kZoneIdAfrica_Casablanca`) -* [zonedbc/zone_infos.h](src/zonedbc/zone_infos.h) - * intended for `CompleteZoneProcessor` or `CompleteZoneManager` - * all 596 (as of version 2023c) in the IANA TZ Database over the years of + - contains `kZone*` declarations (e.g. `kZoneAfrica_Casablanca`) + - contains `kZoneId*` identifiers (e.g. `kZoneIdAfrica_Casablanca`) +- [zonedbx2025/zone_infos.h](src/zonedbx2025/zone_infos.h) + - same as `zonedbx` but restricted to the years `[2025,10000)` + - contains all zones as `zonedbx` but the database is smaller because + transition rules before 2025 can be ignored +- [zonedbc/zone_infos.h](src/zonedbc/zone_infos.h) + - intended for `CompleteZoneProcessor` or `CompleteZoneManager` + - all 596 (as of version 2023c) in the IANA TZ Database over the years of `[0001,10000)` - * contains `kZone*` declarations (e.g. `kZoneAfrica_Casablanca`) - * contains `kZoneId*` identifiers (e.g. `kZoneIdAfrica_Casablanca`) + - contains `kZone*` declarations (e.g. `kZoneAfrica_Casablanca`) + - contains `kZoneId*` identifiers (e.g. `kZoneIdAfrica_Casablanca`) The internal helper classes which are used to encode the ZoneInfo Database information are defined in the following namespaces. They are not expected to be used by application developers under normal circumstances, so these are listed here for reference: -* `ace_time::basic::Info::ZoneXxx` -* `ace_time::extended::Info::ZoneXxx` -* `ace_time::complete::Info::ZoneXxx` +- `ace_time::basic::Info::ZoneXxx` +- `ace_time::extended::Info::ZoneXxx` +- `ace_time::complete::Info::ZoneXxx` The `basic::Info::ZoneInfo` and `extended::Info::ZoneInfo` classes (and their associated `ZoneProcessor` classes) have a resolution of 1 minute, which is @@ -269,7 +274,6 @@ which both have the value `0xb7f7e8f2`. A `TimeZone` object can be saved as a `zoneId` and then recreated using the `BasicZoneManager::createForZoneId()` or `ExtendedZoneManager::createForZoneId()` method. - ### Headers and Namespaces Only a single header file `AceTime.h` is required to use this library. @@ -293,16 +297,14 @@ using namespace ace_time::zonedbc; The following C++ namespaces are usually internal implementation details which are not normally needed by the end users: -* `ace_time::basic`: for creating custom zone registries for `BasicZoneManager` -* `ace_time::extended`: for creating custom zone registries for +- `ace_time::basic`: for creating custom zone registries for `BasicZoneManager` +- `ace_time::extended`: for creating custom zone registries for `ExtendedZoneManager` -* `ace_time::complete`: for creating custom zone registries for +- `ace_time::complete`: for creating custom zone registries for `CompleteZoneManager` - ## Date and Time Classes - ### Epoch Seconds Typedef One of the fundamental types in AceTime is the `acetime_t` defined as: @@ -326,14 +328,14 @@ integer, the largest value is 2,147,483,647. With the default epoch year of The `acetime_t` is analogous to the `time_t` type in the standard C library, with several major differences: -* The `time_t` does not exist on all Arduino platforms. -* Some Arduino platforms and older Unix platforms use a 32-bit `int32_t` to +- The `time_t` does not exist on all Arduino platforms. +- Some Arduino platforms and older Unix platforms use a 32-bit `int32_t` to represent `time_t`. -* Modern implementations (e.g. ESP8266 and ESP32) use a 64-bit `int64_t` to +- Modern implementations (e.g. ESP8266 and ESP32) use a 64-bit `int64_t` to represent `time_t` to prevent the "Year 2038" overflow problem. Unfortunately, - AceTime does use 64-bit integers internally to avoid consuming flash memory - on 8-bit processors. -* Most `time_t` implementations uses the Unix Epoch of 1970-01-01 00:00:00 UTC. + AceTime does use 64-bit integers internally to avoid consuming flash memory on + 8-bit processors. +- Most `time_t` implementations uses the Unix Epoch of 1970-01-01 00:00:00 UTC. AceTime uses an epoch of 2050-01-01 00:00:00 UTC (by default). It is possible to convert between a `time_t` and an `acetime_t` by adding or @@ -345,7 +347,6 @@ of the current epoch year, then the resulting epoch seconds will fit inside a manual conversion between these 2 epochs: `forUnixSeconds64()` and `toUnixSeconds64()`. - ### Adjustable Epoch Starting with v2, the AceTime epoch is an **adjustable** parameter which is no @@ -391,10 +392,9 @@ during its runtime to extend the range of the years of interest. The objects will automatically invalidate and regenerate its internal transition cache when the epoch year is modified. - -### LocalDate and LocalTime +### PlainDate and PlainTime -The `LocalDate` and `LocalTime` represent date and time components, without +The `PlainDate` and `PlainTime` represent date and time components, without reference to a particular time zone. They are not expected to be commonly used by the end-users, but they are available if needed. The significant parts of the class definitions are: @@ -402,14 +402,14 @@ class definitions are: ```C++ namespace ace_time { -class LocalTime { +class PlainTime { public: static const acetime_t kInvalidSeconds = INT32_MIN; - static LocalTime forComponents(uint8_t hour, uint8_t minute, + static PlainTime forComponents(uint8_t hour, uint8_t minute, uint8_t second); - static LocalTime forSeconds(acetime_t seconds); + static PlainTime forSeconds(acetime_t seconds); bool isError() const; @@ -424,12 +424,12 @@ class LocalTime { acetime_t toSeconds() const; - int8_t compareTo(const LocalTime& that) const; + int8_t compareTo(const PlainTime& that) const; void printTo(Print& printer) const; ... }; -class LocalDate { +class PlainDate { public: static const int16_t kInvalidYear = INT16_MIN; static const int16_t kMinYear = 0; @@ -450,11 +450,11 @@ class LocalDate { static const uint8_t kSaturday = 6; static const uint8_t kSunday = 7; - static LocalDate forComponents(int16_t year, uint8_t month, uint8_t day); - static LocalDate forEpochDays(int32_t epochDays); - static LocalDate forEpochSeconds(acetime_t epochSeconds); - static LocalDate forUnixDays(int32_t unixDays); - static LocalDate forUnixSeconds64(int64_t unixSeconds); + static PlainDate forComponents(int16_t year, uint8_t month, uint8_t day); + static PlainDate forEpochDays(int32_t epochDays); + static PlainDate forEpochSeconds(acetime_t epochSeconds); + static PlainDate forUnixDays(int32_t unixDays); + static PlainDate forUnixSeconds64(int64_t unixSeconds); int16_t year() const; void year(int16_t year); @@ -474,7 +474,7 @@ class LocalDate { int32_t toUnixDays() const { int64_t toUnixSeconds64() const { - int8_t compareTo(const LocalDate& that) const { + int8_t compareTo(const PlainDate& that) const { void printTo(Print& printer) const; ... }; @@ -489,22 +489,21 @@ You can use them like this: using namespace ace_time; ... -// LocalDate that represents 2019-05-20 -auto localDate = LocalDate::forComponents(2019, 5, 20); +// PlainDate that represents 2019-05-20 +auto plainDate = PlainDate::forComponents(2019, 5, 20); -// LocalTime that represents 13:00:00 -auto localTime = LocalTime::forComponents(13, 0, 0); +// PlainTime that represents 13:00:00 +auto plainTime = PlainTime::forComponents(13, 0, 0); ``` -You can ask the `LocalDate` to determine its day of the week, which returns +You can ask the `PlainDate` to determine its day of the week, which returns an integer where `1=Monday` and `7=Sunday` per [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601): ```C++ -uint8_t dayOfWeek = localDate.dayOfWeek(); +uint8_t dayOfWeek = plainDate.dayOfWeek(); ``` - ### Date Strings To convert the `dayOfweek()` numerical code to a human-readable string for @@ -544,8 +543,8 @@ internal buffer between calls. using namespace ace_time; ... -auto localDate = LocalDate::forComponents(2019, 5, 20); -uint8_t dayOfWeek = localDate.dayOfWeek(); +auto plainDate = PlainDate::forComponents(2019, 5, 20); +uint8_t dayOfWeek = plainDate.dayOfWeek(); Serial.println(DateStrings().dayOfWeekLongString(dayOfWeek)); Serial.println(DateStrings().dayOfWeekShortString(dayOfWeek)); ``` @@ -554,12 +553,12 @@ The `dayOfWeekShortString()` method returns the first 3 characters of the week day (i.e. "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"). -Similarly the `LocalDate::month()` method returns an integer code where +Similarly the `PlainDate::month()` method returns an integer code where `1=January` and `12=December`. This integer code can be translated into English strings using `DateStrings().monthLongString()`: ```C++ -uint8_t month = localDate.month(); +uint8_t month = plainDate.month(); Serial.println(DateStrings().monthLongString(month)); Serial.println(DateStrings().monthShortString(month)); ``` @@ -572,24 +571,23 @@ need to convert to another language, you need to write the conversion class yourself, possibly by copying the implementation details of the `DateStrings` class. - -### LocalDateTime +### PlainDateTime -A `LocalDateTime` object holds both the date and time components +A `PlainDateTime` object holds both the date and time components (year, month, day, hour, minute, second). Internally, it is implemented as a -combination of `LocalDate` and `LocalTime` and supports essentially all +combination of `PlainDate` and `PlainTime` and supports essentially all operations on those classes. It does *not* support the notion of timezone. ```C++ namespace ace_time { -class LocalDateTime { +class PlainDateTime { public: - static LocalDateTime forComponents(int16_t year, uint8_t month, + static PlainDateTime forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second); - static LocalDateTime forEpochSeconds(acetime_t epochSeconds); - static LocalDateTime forUnixSeconds64(int64_t unixSeconds); - static LocalDateTime forDateString(const char* dateString); + static PlainDateTime forEpochSeconds(acetime_t epochSeconds); + static PlainDateTime forUnixSeconds64(int64_t unixSeconds); + static PlainDateTime forDateString(const char* dateString); bool isError() const; @@ -613,8 +611,8 @@ class LocalDateTime { uint8_t dayOfWeek() const; // 1=Monday, 7=Sunday - const LocalDate& localDate() const; - const LocalTime& localTime() const; + const PlainDate& plainDate() const; + const PlainTime& plainTime() const; int32_t toEpochDays() const; acetime_t toEpochSeconds() const; @@ -622,7 +620,7 @@ class LocalDateTime { int32_t toUnixDays() const; int64_t toUnixSeconds64() const; - int8_t compareTo(const LocalDateTime& that) const; + int8_t compareTo(const PlainDateTime& that) const; void printTo(Print& printer) const; ... }; @@ -635,15 +633,15 @@ Here is a sample code that extracts the number of seconds since AceTime Epoch ```C++ // 2018-08-30T06:45:01-08:00 -auto localDateTime = LocalDateTime::forComponents(2018, 8, 30, 6, 45, 1); -acetime_t epoch_seconds = localDateTime.toEpochSeconds(); +auto plainDateTime = PlainDateTime::forComponents(2018, 8, 30, 6, 45, 1); +acetime_t epoch_seconds = plainDateTime.toEpochSeconds(); ``` -We can go the other way and create a `LocalDateTime` from the Epoch Seconds: +We can go the other way and create a `PlainDateTime` from the Epoch Seconds: ```C++ -auto localDateTime = LocalDateTime::forEpochSeconds(1514764800L); -localDateTime.printTo(Serial); // prints "2018-01-01T00:00:00" +auto plainDateTime = PlainDateTime::forEpochSeconds(1514764800L); +plainDateTime.printTo(Serial); // prints "2018-01-01T00:00:00" ``` Both `printTo()` and `forDateString()` are expected to be used only for @@ -651,9 +649,8 @@ debugging. The `printTo()` prints a human-readable representation of the date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (yyyy-mm-ddThh:mm:ss) to the given `Print` object. The most common `Print` object is the `Serial` object which prints on the serial port. The `forDateString()` parses the -ISO 8601 formatted string and returns the `LocalDateTime` object. +ISO 8601 formatted string and returns the `PlainDateTime` object. - ### TimePeriod The `TimePeriod` class can be used to represents a difference between two @@ -703,12 +700,12 @@ class TimePeriod { This class was created to show the difference between 2 dates in a human-readable format, broken down by hours, minutes and seconds. For example, -we can print out a countdown to a target `LocalDateTime` from the current -`LocalDateTime` like this: +we can print out a countdown to a target `PlainDateTime` from the current +`PlainDateTime` like this: ```C++ -LocalDateTime current = ...; -LocalDateTime target = ...; +PlainDateTime current = ...; +PlainDateTime target = ...; acetime_t diffSeconds = target.toEpochSeconds() - current.toEpochSeconds(); TimePeriod timePeriod(diffSeconds); timePeriod.printTo(Serial) @@ -722,9 +719,9 @@ The largest absolutely value of `diffSeconds` supported by this class is You can check the `TimePeriod::sign()` method to determine which one of the 3 cases apply. The `printTo()` method prints the following: -* generic error: `sign() == 0`, `printTo()` prints `` -* overflow: `sign() == 1`, `printTo()` prints `<+Inf>` -* underflow: `sign() == -1`, `printTo()` prints `<-Inf>` +- generic error: `sign() == 0`, `printTo()` prints `` +- overflow: `sign() == 1`, `printTo()` prints `<+Inf>` +- underflow: `sign() == -1`, `printTo()` prints `<-Inf>` It is sometimes useful to directly create a `TimePeriod` object that represents an error condition. The `TimePeriod::forError(int8_t sign = 0)` factory method @@ -737,7 +734,6 @@ Calling `TimePeriod::toSeconds()` on an error object returns you can call the `TimePeriod::sign()` method to distinguish among the 3 different error conditions. - ### TimeOffset A `TimeOffset` class represents an amount of time shift from a reference point. @@ -808,12 +804,11 @@ The convenience method `TimeOffset::isZero()` returns `true` if the offset has a zero offset. This is often used to determine if a timezone is currently observing Daylight Saving Time (DST). - ### OffsetDateTime -An `OffsetDateTime` is an object that can represent a `LocalDateTime` which is +An `OffsetDateTime` is an object that can represent a `PlainDateTime` which is offset from the UTC time zone by a fixed amount. Internally the `OffsetDateTime` -is an aggregation of `LocalDateTime` and `TimeOffset`. Use this class for +is an aggregation of `PlainDateTime` and `TimeOffset`. Use this class for creating and writing timestamps for events which are destined for logging for example. This class does not know about Daylight Saving Time transitions. @@ -852,9 +847,9 @@ class OffsetDateTime { void second(uint8_t second); uint8_t dayOfWeek() const; - const LocalDate& localDate() const; + const PlainDate& plainDate() const; - const LocalTime& localTime() const; + const PlainTime& plainTime() const; TimeOffset timeOffset() const; void timeOffset(TimeOffset timeOffset); @@ -903,7 +898,6 @@ debugging. The `printTo()` prints a human-readable representation of the date in `forDateString()` parses the ISO 8601 formatted string and returns the `OffsetDateTime` object. - ### TimeZone Related Classes These classes build upon the simpler classes described above to provide @@ -911,25 +905,24 @@ functionality related to time zones. These classes bridge the gap between the information encoded in the ZoneInfo Database for the various time zones and the expected date and time fields appropriate for those time zones. - ### TimeZone A "time zone" is often used colloquially to mean 2 different things: -* An offset from the UTC time by a fixed amount, or -* A geographical or political region whose local time is offset from the UTC +- An offset from the UTC time by a fixed amount, or +- A geographical or political region whose local time is offset from the UTC time using various transition rules. Both meanings of "time zone" are supported by the `TimeZone` class using 3 different types as defined by the value of `getType()`: -* `TimeZone::kTypeManual` (1): a fixed base offset and optional DST offset from +- `TimeZone::kTypeManual` (1): a fixed base offset and optional DST offset from UTC -* `BasicZoneProcessor::kTypeBasic` (3): utilizes a `BasicZoneProcessor` which +- `BasicZoneProcessor::kTypeBasic` (3): utilizes a `BasicZoneProcessor` which can be encoded with (relatively) simple rules from the ZoneInfo Database -* `ExtendedZoneProcessor::kTypeExtended` (4): utilizes a `ExtendedZoneProcessor` +- `ExtendedZoneProcessor::kTypeExtended` (4): utilizes a `ExtendedZoneProcessor` which can handle all zones and links in the ZoneInfo Database -* `CompleteZoneProcessor::kTypeComplete` (5): utilizes a `CompleteZoneProcessor` +- `CompleteZoneProcessor::kTypeComplete` (5): utilizes a `CompleteZoneProcessor` which can handle all zones and links in the ZoneInfo Database, over the entire year range `[0001,10000)` @@ -940,16 +933,16 @@ developer will not normally need to be aware of all the time, but maybe this helps make better sense of the usage of the `TimeZone` class. A `TimeZone` can hold a reference to: -* nothing (`kTypeManual`), -* one `BasicZoneProcessor` object, (`kTypeBasic`), or -* one `ExtendedZoneProcessor` object (`kTypeExtended`) -* one `CompleteZoneProcessor` object (`kTypeComplete`) +- nothing (`kTypeManual`), +- one `BasicZoneProcessor` object, (`kTypeBasic`), or +- one `ExtendedZoneProcessor` object (`kTypeExtended`) +- one `CompleteZoneProcessor` object (`kTypeComplete`) ``` 0..1 TimeZone <>-------- ZoneProcessor ^ - | + e .-----+-----. | | | BasicZoneProcessor | ExtendedZoneProcessor @@ -1001,10 +994,14 @@ class TimeZone { uint8_t getType() const; uint32_t getZoneId() const; - OffsetDateTime getOffsetDateTime(const LocalDateTime& ldt) const; + OffsetDateTime getOffsetDateTime( + const PlainDateTime& pdt, + Disambiguate disambiguate) const; OffsetDateTime getOffsetDateTime(acetime_t epochSeconds) const; - ZonedExtra getZonedExtra(const LocalDateTime& ldt) const; + ZonedExtra getZonedExtra( + const PlainDateTime& pdt, + Disambiguate disambiguate) const; ZonedExtra getZonedExtra(acetime_t epochSeconds) const; // for kTypeManual only @@ -1030,58 +1027,49 @@ the TimeZone object by-value. The following methods apply only to instances of the type `kTypeManual`: -* `forUtc()` - * create a `TimeZone` instance for UTC+00:00 -* `forTimeOffset(stdOffset, dstOffset)` - * create a `TimeZone` instance using `TimeOffset` -* `forHours(stdHours, dstHours)` - * create a `TimeZone` instance using hours offset -* `forMinutes(stdMinutes, dstMinutes)` - * create a `TimeZone` instance using minutes offset -* `isUtc()`: - * returns true if the instance is a UTC time zone instance - * returns false if not `kTypeManual` -* `isDst()`: - * returns true if the dstOffset is not zero - * returns false if not `kTypeManual` +- `forUtc()` + - create a `TimeZone` instance for UTC+00:00 +- `forTimeOffset(stdOffset, dstOffset)` + - create a `TimeZone` instance using `TimeOffset` +- `forHours(stdHours, dstHours)` + - create a `TimeZone` instance using hours offset +- `forMinutes(stdMinutes, dstMinutes)` + - create a `TimeZone` instance using minutes offset +- `isUtc()`: + - returns true if the instance is a UTC time zone instance + - returns false if not `kTypeManual` +- `isDst()`: + - returns true if the dstOffset is not zero + - returns false if not `kTypeManual` The following methods apply to a `kTypeBasic`, `kTypeExtended`, `kTypeComplete`: -* `forZoneInfo(zoneInfo, zoneProcessor)` - * Create an instance of from the given `ZoneInfo*` pointer (e.g. +- `forZoneInfo(zoneInfo, zoneProcessor)` + - Create an instance of from the given `ZoneInfo*` pointer (e.g. `complete::kZoneAmerica_Los_Angeles`, or `extended::kZoneAmerica_Los_Angeles`) -* `getZoneId()` - * Returns a `uint32_t` integer which is a unique and stable identifier for +- `getZoneId()` + - Returns a `uint32_t` integer which is a unique and stable identifier for the IANA timezone. The zoneId identifier can be used to save and restore the `TimeZone`. See the [ZoneManager](#ZoneManager) subsection below. The following methods apply to any type of `TimeZone`: -* `getOffsetDateTime(localDateTime)` - * Returns the best guess of the `OffsetDateTime` at the given local date +- `getOffsetDateTime(plainDateTime)` + - Returns the best guess of the `OffsetDateTime` at the given local date time. This method is used by `ZonedDateTime::forComponents()` and is exposed mostly for debugging. - * The `fold` parameter of the `localDateTime` will be used by the - `ExtendedZoneProcessor` and `CompleteZoneProcessor` to disambiguate - date-time in the gap or overlap selecting the first (0) or second (1) - transition line. - * The `BasicZoneProcessor` does not support the `fold` parameter so will - ignore it. -* `getOffsetDateTime(epochSeconds)` - * Returns the `OffsetDateTime` that matches the given `epochSeconds`. - * The `OffsetDateTime::fold` parameter indicates whether the date-time - occurred the first time (0), or the second time (1) -* `printTo()` - * Prints the fully-qualified unique name for the time zone. For example, +- `getOffsetDateTime(epochSeconds)` + - Returns the `OffsetDateTime` that matches the given `epochSeconds`. +- `printTo()` + - Prints the fully-qualified unique name for the time zone. For example, `"UTC"`, `"-08:00"`, `"-08:00(DST)"`, `"America/Los_Angeles"`. -* `printShortTo()` - * Similar to `printTo()` except that it prints the last component of the +- `printShortTo()` + - Similar to `printTo()` except that it prints the last component of the IANA TZ Database zone names. - * In other words, `"America/Los_Angeles"` is printed as `"Los_Angeles"`. + - In other words, `"America/Los_Angeles"` is printed as `"Los_Angeles"`. This is helpful for printing on small width OLED displays. - #### Manual TimeZone (kTypeManual) The default constructor creates a `TimeZone` in UTC time zone with no @@ -1115,20 +1103,22 @@ auto tz = TimeZone::forHourMinute(-3, -30, 1, 0); // identical to above The `TimeZone::isUtc()`, `TimeZone::isDst()` and `TimeZone::setDst(bool)` methods work only if the `TimeZone` is a `kTypeManual`. - -#### Basic TimeZone (kTypeBasic) +#### Basic TimeZone This TimeZone is created using two objects: -* the `basic::ZoneInfo` data objects contained in - [zonedb/zone_infos.h](src/zonedb/zone_infos.h) -* an external instance of `BasicZoneProcessor` needed for calculating zone + +- the `basic::ZoneInfo` data objects contained in either + [zonedb/zone_infos.h](src/zonedb/zone_infos.h) or + [zonedb2025/zone_infos.h](src/zonedb2025/zone_infos.h) +- an external instance of `BasicZoneProcessor` needed for calculating zone transitions ```C++ BasicZoneProcessor zoneProcessor; void someFunction() { - auto tz = TimeZone::forZoneInfo(&zonedb::kZoneAmerica_Los_Angeles, + auto tz = TimeZone::forZoneInfo( + &zonedb::kZoneAmerica_Los_Angeles, &zoneProcessor); ... } @@ -1143,19 +1133,19 @@ zones whose zone rules are too complicated for `BasicZoneProcessor`. The zone names are normalized so that the ZoneInfo variable is a valid C++ name: -* a `+` (plus) character in the zone name is replaced with `_PLUS_` to avoid +- a `+` (plus) character in the zone name is replaced with `_PLUS_` to avoid conflict with a `-` (minus) character (e.g. `GMT+0` becomes `GMT_PLUS_0`) -* any remaining non-alphanumeric character (`0-9a-zA-Z_`) are replaced with +- any remaining non-alphanumeric character (`0-9a-zA-Z_`) are replaced with an underscore (`_`) (e.g. `GMT-0` becomes `GMT_0`) Some examples of `ZoneInfo` entries supported by `zonedb` are: -* `zonedb::kZoneAmerica_Los_Angeles` (`America/Los_Angeles`) -* `zonedb::kZoneAmerica_New_York` (`America/New_York`) -* `zonedb::kZoneAustralia_Darwin` (`Australia/Darwin`) -* `zonedb::kZoneEurope_London` (`Europe/London`) -* `zonedb::kZoneGMT_PLUS_10` (`GMT+10`) -* `zonedb::kZoneGMT_10` (`GMT-10`) +- `zonedb::kZoneAmerica_Los_Angeles` (`America/Los_Angeles`) +- `zonedb::kZoneAmerica_New_York` (`America/New_York`) +- `zonedb::kZoneAustralia_Darwin` (`Australia/Darwin`) +- `zonedb::kZoneEurope_London` (`Europe/London`) +- `zonedb::kZoneGMT_PLUS_10` (`GMT+10`) +- `zonedb::kZoneGMT_10` (`GMT-10`) The following example creates a `TimeZone` which describes `America/Los_Angeles`. A `TimeZone` instance is normally expected to be just @@ -1172,7 +1162,8 @@ BasicZoneProcessor zoneProcessor; void someFunction() { ... - auto tz = TimeZone::forZoneInfo(&zonedb::kZoneAmerica_Los_Angeles, + auto tz = TimeZone::forZoneInfo( + &zonedb::kZoneAmerica_Los_Angeles, &zoneProcessor); // 2018-03-11T01:59:59-08:00 was still in STD time @@ -1196,13 +1187,13 @@ void someFunction() { } ``` - -#### Extended TimeZone (kTypeExtended) +#### Extended TimeZone This TimeZone is created using two objects: -* the `extended::Info::ZoneInfo` data objects contained in - [zonedbx/zone_infos.h](src/zonedbx/zone_infos.h) -* an external instance of `ExtendedZoneProcessor` needed for calculating zone +- the `extended::Info::ZoneInfo` data objects contained in either + [zonedbx/zone_infos.h](src/zonedbx/zone_infos.h) or + [zonedbx2025/zone_infos.h](src/zonedbx2025/zone_infos.h) +- an external instance of `ExtendedZoneProcessor` needed for calculating zone transitions ```C++ @@ -1229,11 +1220,11 @@ The zone infos which can be used by `ExtendedZoneProcessor` are in the `zonedbx::` namespace instead of the `zonedb::` namespace. Some examples of the zone infos which exists in `zonedbx::` but not in `zonedb::` are: -* `zonedbx::kZoneAfrica_Casablanca` -* `zonedbx::kZoneAmerica_Argentina_San_Luis` -* `zonedbx::kZoneAmerica_Indiana_Petersburg` -* `zonedbx::kZoneAsia_Hebron` -* `zonedbx::kZoneEurope_Moscow` +- `zonedbx::kZoneAfrica_Casablanca` +- `zonedbx::kZoneAmerica_Argentina_San_Luis` +- `zonedbx::kZoneAmerica_Indiana_Petersburg` +- `zonedbx::kZoneAsia_Hebron` +- `zonedbx::kZoneEurope_Moscow` The following example creates a `TimeZone` which describes `America/Los_Angeles`. A `TimeZone` instance is normally expected to be just @@ -1270,13 +1261,12 @@ void someFunction() { } ``` - -#### Complete TimeZone (kTypeComplete) +#### Complete TimeZone This TimeZone is created using two objects: -* the `complete::ZoneInfo` data objects contained in +- the `complete::ZoneInfo` data objects contained in [zonedbc/zone_infos.h](src/zonedbc/zone_infos.h) -* an external instance of `CompleteZoneProcessor` needed for calculating zone +- an external instance of `CompleteZoneProcessor` needed for calculating zone transitions ```C++ @@ -1303,11 +1293,11 @@ The zone infos which can be used by `CompleteZoneProcessor` are in the `zonedbc::` namespace instead of the `zonedb::` namespace. Some examples of the zone infos which exists in `zonedbc::` but not in `zonedb::` are: -* `zonedbc::kZoneAfrica_Casablanca` -* `zonedbc::kZoneAmerica_Argentina_San_Luis` -* `zonedbc::kZoneAmerica_Indiana_Petersburg` -* `zonedbc::kZoneAsia_Hebron` -* `zonedbc::kZoneEurope_Moscow` +- `zonedbc::kZoneAfrica_Casablanca` +- `zonedbc::kZoneAmerica_Argentina_San_Luis` +- `zonedbc::kZoneAmerica_Indiana_Petersburg` +- `zonedbc::kZoneAsia_Hebron` +- `zonedbc::kZoneEurope_Moscow` The following example creates a `TimeZone` which describes `America/Los_Angeles`. A `TimeZone` instance is normally expected to be just @@ -1344,15 +1334,14 @@ void someFunction() { } ``` - ### TimeZone Type Recommendations There are 4 major types of `TimeZone` objects: -* `kTypeManual`: STD and DST offsets are fixed -* `kTypeBasic`: uses `BasicZoneProcessor` -* `kTypeExtended`: uses `ExtendedZoneProcessor` -* `kTypeComplete`: uses `CompleteZoneProcessor` +- `kTypeManual`: STD and DST offsets are fixed +- `kTypeBasic`: uses `BasicZoneProcessor` +- `kTypeExtended`: uses `ExtendedZoneProcessor` +- `kTypeComplete`: uses `CompleteZoneProcessor` **tl;dr**: Most client applications should probably use `kTypeExtended`, `ExtendedZoneProcessor`, `ExtendedZoneManager`, and the `zonedbx` database. @@ -1375,10 +1364,10 @@ The `ExtendedZoneProcessor` is also more accurate than `BasicZoneProcessor` during DST gaps when using the `forComponents()` factory methods, because the `zonedbx::` entries contain transition information which are missing in the `zonedb::` entries due to space constraints. The `ExtendedZoneProcessor` -provides complete control which `LocalDateTime` is selected during a gap or -overlap using the `fold` parameter. The `BasicZoneProcessor` ignores the `fold` -parameter and makes educated guesses when the `LocalDateTime` falls in a gap or -an overlap. +provides complete control which `PlainDateTime` is selected during a gap or +overlap using the `disambiguate` parameter. The `BasicZoneProcessor` ignores the +`disambiguate` parameter and makes educated guesses when the `PlainDateTime` +falls in a gap or an overlap. The `CompleteZoneProcessor` is identical to the `ExtendedZoneProcessor`, but it uses the high resolution `zonedbc` database. The high resolution format of the @@ -1403,7 +1392,6 @@ to manage a database of `ZoneInfo` entries, and a cache of multiple `ZoneProcessor` more dynamically through the `ZoneManager`. See the section [ZoneManager](#ZoneManager) below for more information. - ### ZonedDateTime A `ZonedDateTime` is an `OffsetDateTime` associated with a given `TimeZone`. @@ -1412,7 +1400,6 @@ does not care which one is used. You should use the `ZonedDateTime` when interacting with human beings, who are aware of timezones and DST transitions. It can also be used to convert time from one timezone to anther timezone. - #### ZonedDateTime Declaration ```C++ @@ -1420,10 +1407,11 @@ namespace ace_time { class ZonedDateTime { public: - static const acetime_t kInvalidEpochSeconds = LocalTime::kInvalidSeconds; + static const acetime_t kInvalidEpochSeconds = PlainTime::kInvalidSeconds; static ZonedDateTime forComponents(int16_t year, uint8_t month, uint8_t day, - uint8_t hour, uint8_t minute, uint8_t second, const TimeZone& timeZone); + uint8_t hour, uint8_t minute, uint8_t second, const TimeZone& timeZone, + Disambiguate disambiguate = Disambiguate::kCompatible); static ZonedDateTime forEpochSeconds(acetime_t epochSeconds, const TimeZone& timeZone); static ZonedDateTime forUnixSeconds64(int64_t unixSeconds, @@ -1452,6 +1440,9 @@ class ZonedDateTime { uint8_t second() const; void second(uint8_t second); + Resolved resolved() const; + void resolved(Resolved resolved); + uint8_t dayOfWeek() const; TimeOffset timeOffset() const; @@ -1473,13 +1464,12 @@ class ZonedDateTime { } ``` - #### ZonedDateTime Creation There are 2 main factory methods for constructing this object: -* `ZonedDateTime::forComponents()` -* `ZonedDateTime::forEpochSeconds()` +- `ZonedDateTime::forComponents()` +- `ZonedDateTime::forEpochSeconds()` Here is an example of how these can be used: @@ -1535,8 +1525,7 @@ on most AVR microcontrollers with only 32kB of flash memory, so we currently do not support this dynamic lookup. The `ZonedDateTime::timeZone()` will return Manual `TimeZone` whose `TimeZone::getType()` returns `TimeZone::kTypeManual`. - -#### Conversion to Other Time Zones +#### Conversion to Other TimeZones You can convert a given `ZonedDateTime` object into a representation in a different time zone using the `DateTime::convertToTimeZone()` method: @@ -1566,7 +1555,6 @@ The two `ZonedDateTime` objects will return the same value for `epochSeconds()` because that is not affected by the time zone. However, the various date time components (year, month, day, hour, minute, seconds) will be different. - #### DST Transition Caching The conversion from an epochSeconds to date-time components using @@ -1580,13 +1568,12 @@ components once a second. According to [AutoBenchmark](examples/AutoBenchmark/), the cache improves performance by a factor of 2-3X (8-bit AVR) to 10-20X (32-bit processors) on consecutive calls to `forEpochSeconds()` with the same `year`. - ### ZonedExtra The most important feature of the AceTime library is the conversion from `epochSeconds` to `ZonedDateTime` and vise versa. The `ZonedDateTime` object contains the most common parameters that is expected to be needed by the user, -the Gregorian date components (provided by `LocalDateTime`) and the total UTC +the Gregorian date components (provided by `PlainDateTime`) and the total UTC offset at the specific instance (provided by `ZonedDateTime::timeOffset()`). To keep memory size of the `ZonedDateTime` class reasonable, it does not contain @@ -1610,11 +1597,14 @@ class ZonedExtra { static ZonedExtra forComponents( int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, - const TimeZone& tz, uint8_t fold = 0); + const TimeZone& tz, + Disambiguate disambiguate = Disambiguate::kCompatible); static ZonedExtra forEpochSeconds( acetime_t epochSeconds, const TimeZone& tz); - static ZonedExtra forLocalDateTime( - const LocalDateTime& ldt, const TimeZone& tz); + static ZonedExtra forPlainDateTime( + const PlainDateTime& pdt, + const TimeZone& tz, + Disambiguate disambiguate = Disambiguate::kCompatible); explicit ZonedExtra() {} explicit ZonedExtra( @@ -1645,10 +1635,10 @@ class ZonedExtra { The `ZonedExtra` instance is usually created through the 2 static factory methods on the `ZonedExtra` class: -* `ZonedExtra::forEpochSeconds(epochSeconds, tz)` -* `ZonedExtra::forComponents(int16_t year, uint8_t month, uint8_t day, +- `ZonedExtra::forEpochSeconds(epochSeconds, tz)` +- `ZonedExtra::forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, const TimeZone& tz, - uint8_t fold = 0)` + Disambiguate disambiguate = Disambiguate::kCompatible)` Often the `ZonedDateTime` will be created first from the epochSeconds, then the `ZonedExtra` will be created to access additional information about the time @@ -1694,22 +1684,13 @@ abbreviation is 6 characters long. The `ZonedExtra::reqStdOffset()` and `ZonedExtra::reqDstOffset()` are relevant and different from the corresponding `stdOffset()` and `dstOffset()` only if the `type()` is `kTypeGap`. This occurs only if the `ZonedExtra::forComponents()` -factory method is used. Following the algorithm described in [Python PEP -495](https://www.python.org/dev/peps/pep-0495/), the provided localDateTime is -imaginary during a gap so must be mapped to a real local time using the -`LocalDateTime::fold` parameter. When `fold=0`, the transition line before the -gap is extended forward until it hits the given `LocalDateTime`. When `fold=1`, -the transition line after the gap is extended backwards until it hits the given -`LocalDateTime`. The `reqStdOffset()` and `reqDstOffset()` are then derived from -the transition line that is used to convert the provided `LocalDateTime` -instance to `epochSeconds`. The `epochSeconds` is then normalized by converting -it back to `LocalDateTime` using the `stdOffset()` and `dstOffset()` which -matches the `epochSeconds`. - -The `isError()` method returns true if the given `LocalDateTime` or +factory method is used. The `reqStdOffset()` and `reqDstOffset()` are +derived from the transition line that is used to select the earlier or later +`PlainDateTime` instance to `epochSeconds`. + +The `isError()` method returns true if the given `PlainDateTime` or `epochSeconds` represents an error condition. - ### ZoneManager The `TimeZone::forZoneInfo()` methods are simple to use but have the @@ -1726,7 +1707,6 @@ The `ZoneManager` solves these problems by implementing 2 features: 2) It supports the use of cache of `ZoneProcessors` that can be mapped to a particular zone as needed. - #### Class Hierarchy Four implementations of the `ZoneManager` are provided. Prior to v1.9, they @@ -1817,7 +1797,6 @@ class ManualZoneManager { } ``` - #### Default Registries The constructors for `BasicZoneManager`, `ExtendedZoneManager`, and @@ -1827,18 +1806,26 @@ library comes with a set of pre-defined default Zone and Link registries which are defined by the following header files. These header files are automatically included in the `` header: -* [zonedb/zone_registry.h](src/zonedb/zone_registry.h) - * Zones and Links supported by `BasicZoneManager` - * `ace_time::zonedb::kZoneAndLinkRegistry` - * `ace_time::zonedb::kZoneAndLinkRegistrySize` -* [zonedbx/zone_registry.h](src/zonedbx/zone_registry.h) - * Zones and Links supported by `ExtendedZoneManager` - * `ace_time::zonedbx::kZoneAndLinkRegistry` - * `ace_time::zonedbx::kZoneAndLinkRegistrySize` -* [zonedbc/zone_registry.h](src/zonedbx/zone_registry.h) - * Zones and Links supported by `CompleteZoneManager` - * `ace_time::zonedbc::kZoneAndLinkRegistry` - * `ace_time::zonedbc::kZoneAndLinkRegistrySize` +- [zonedb/zone_registry.h](src/zonedb/zone_registry.h) + - Zones and Links supported by `BasicZoneManager` + - `ace_time::zonedb::kZoneAndLinkRegistry` + - `ace_time::zonedb::kZoneAndLinkRegistrySize` +- [zonedb2025/zone_registry.h](src/zonedb2025/zone_registry.h) + - Zones and Links supported by `BasicZoneManager` + - `ace_time::zonedb::kZoneAndLinkRegistry` + - `ace_time::zonedb::kZoneAndLinkRegistrySize` +- [zonedbx/zone_registry.h](src/zonedbx/zone_registry.h) + - Zones and Links supported by `ExtendedZoneManager` + - `ace_time::zonedbx::kZoneAndLinkRegistry` + - `ace_time::zonedbx::kZoneAndLinkRegistrySize` +- [zonedbx2025/zone_registry.h](src/zonedbx2025/zone_registry.h) + - Zones and Links supported by `ExtendedZoneManager` + - `ace_time::zonedbx::kZoneAndLinkRegistry` + - `ace_time::zonedbx::kZoneAndLinkRegistrySize` +- [zonedbc/zone_registry.h](src/zonedbx/zone_registry.h) + - Zones and Links supported by `CompleteZoneManager` + - `ace_time::zonedbc::kZoneAndLinkRegistry` + - `ace_time::zonedbc::kZoneAndLinkRegistrySize` Each database also defines a smaller registry named `kZoneRegistry` and `kZoneRegistrySize`. These contain only the Zone entries from the IANA TZ @@ -1847,7 +1834,6 @@ there is no difference between a Zone entry and a Link entry. Therefore, I recommend that client applications always use the `kZoneAndLinkRegistry` to support all timezone identifiers defined by the IANA TZ database. - #### ZoneProcessorCache The `BasicZoneManager`, `ExtendedZoneManager`, and `CompleteZoneManager` classes @@ -1879,12 +1865,14 @@ selected by the user. In general, the `CACHE_SIZE` should be set to the number of timezones displayed to the user concurrently, plus an additional 1 if the user is able to change the timezone dynamically. - #### ZoneManager Creation The ZoneManager object (except for `ManualZoneManager`) is initialized with a zone registry and its zone cache, like this: +For the `BasicZoneManager`, we can configure it using the `zonedb` or +`zonedb2025` database: + ```C++ static const uint8_t CACHE_SIZE = 2; // tuned for application @@ -1894,12 +1882,33 @@ BasicZoneManager zoneManager( zonedb::kZoneAndLinkRegistry, zoneProcessorCache); +BasicZoneProcessorCache zoneProcessorCache; +BasicZoneManager zoneManager( + zonedb2025::kZoneAndLinkRegistrySize, + zonedb2025::kZoneAndLinkRegistry, + zoneProcessorCache); +``` + +For the `ExtendedZoneManager`, we can configure it using the `zonedbx` or +`zonedbx2025` database: + +```C++ ExtendedZoneProcessorCache zoneProcessorCache; ExtendedZoneManager zoneManager( zonedbx::kZoneAndLinkRegistrySize, zonedbx::kZoneAndLinkRegistry, zoneProcessorCache); +ExtendedZoneProcessorCache zoneProcessorCache; +ExtendedZoneManager zoneManager( + zonedbx2025::kZoneAndLinkRegistrySize, + zonedbx2025::kZoneAndLinkRegistry, + zoneProcessorCache); +``` + +For the `CompleteZoneManager`, we have only one database option, the `zonedbc`: + +```C++ CompleteZoneProcessorCache zoneProcessorCache; CompleteZoneManager zoneManager( zonedbc::kZoneAndLinkRegistrySize, @@ -1914,7 +1923,6 @@ subsections below. It is possible to create your own custom Zone and Link registries. See the [Custom Zone Registry](#CustomZoneRegistry) subsection below. - #### createForZoneName() The `ZoneManager` allows creation of a `TimeZone` using the fully qualified @@ -1957,24 +1965,23 @@ user is allowed to type in the zone name, or the timezone name is provided by an outside source (e.g. text of date-time components) and the `TimeZone` needs to be created from the user-provided string. - #### createForZoneId() Each zone in the `zonedb::` and `zonedbx::` database is given a unique and stable zoneId. There are at least 3 ways to extract this zoneId: -* the `kZoneId{zone name}` constants in `src/zonedb/zone_infos.h`, +- the `kZoneId{zone name}` constants in `src/zonedb/zone_infos.h`, `src/zonedbx/zone_infos.h`, and `src/zonedbc/zone_infos.h`: - * `const uint32_t kZoneIdAmerica_New_York = 0x1e2a7654; // America/New_York` - * `const uint32_t kZoneIdAmerica_Los_Angeles = 0xb7f7e8f2; // America/Los_Angeles` - * ... -* the `TimeZone::getZoneId()` method: - * `uint32_t zoneId = tz.getZoneId();` -* the `ZoneInfo` pointer using the `BasicZone()`, `ExtendedZone`, and + - `const uint32_t kZoneIdAmerica_New_York = 0x1e2a7654; // America/New_York` + - `const uint32_t kZoneIdAmerica_Los_Angeles = 0xb7f7e8f2; // America/Los_Angeles` + - ... +- the `TimeZone::getZoneId()` method: + - `uint32_t zoneId = tz.getZoneId();` +- the `ZoneInfo` pointer using the `BasicZone()`, `ExtendedZone`, and `CompleteZone` helper object: - * `uint32_t zoneId = BasicZone(&zonedb::kZoneAmerica_Los_Angeles).zoneId();` - * `uint32_t zoneId = ExtendedZone(&zonedbx::kZoneAmerica_Los_Angeles).zoneId();` - * `uint32_t zoneId = CompleteZone(&zonedbc::kZoneAmerica_Los_Angeles).zoneId();` + - `uint32_t zoneId = BasicZone(&zonedb::kZoneAmerica_Los_Angeles).zoneId();` + - `uint32_t zoneId = ExtendedZone(&zonedbx::kZoneAmerica_Los_Angeles).zoneId();` + - `uint32_t zoneId = CompleteZone(&zonedbc::kZoneAmerica_Los_Angeles).zoneId();` The `ZoneManager::createForZoneId()` method returns the `TimeZone` object corresponding to the given `zoneId`: @@ -2030,7 +2037,6 @@ penalty in efficiency because `createForZoneId()` must scan the database, where as `createForZoneInfo()` does not perform a search since it has direct access to the `ZoneInfo` data structure. - #### createForZoneIndex() The `ZoneManager::createForZoneIndex()` creates a `TimeZone` from its integer @@ -2042,7 +2048,6 @@ The `ZoneManager::indexForZoneName()` and `ZoneManager::indexForZoneId()` are two useful methods to convert an arbitrary time zone reference (either by zoneName or zoneId) into an index into the registry. - #### createForTimeZoneData() The `ZoneManager::createForTimeZoneDAta()` creates a `TimeZone` from an instance @@ -2051,7 +2056,6 @@ of `TimeZoneData`. The `TimeZoneData` can be retrieved from of a `TimeZone` object in a format that can be serialized easily, for example, to EEPROM. - #### ManualZoneManager The `ManualZoneManager` is a type of `ZoneManager` that implements only the @@ -2071,21 +2075,17 @@ at compile-time that only `TimeZone::kTypeManual` are supported, then you should not need to use the `ManualZoneManager`. You can use `TimeZone::forTimeOffset()` factory method directory. - ### Handling Gaps and Overlaps Better control over DST gaps and overlaps was added using the techniques -described by the [PEP 495](https://www.python.org/dev/peps/pep-0495/) document -in Python 3.6. +described by: -1) An additional parameter called `fold` was added to the `LocalTime`, - `LocalDateTime`, `OffsetDateTime`, and `ZonedDateTime` classes. -2) Support for the `fold` parameter was added to `ExtendedZoneProcessor` and - `CompleteZoneProcessor`. -3) The `BasicZoneProcessor` does *not* support the `fold` parameter and will - ignore it. +- [JavaScript Temporal](https://github.com/tc39/proposal-temporal) library, and +- [Python whenever](https://github.com/ariebovenberg/whenever) library + +An additional parameter called `disambiguate` was added to functions which +convert a `PlainDateTime` into a `ZonedDateTime`. - #### Problems with Gaps and Overlaps As a quick background, when a timezone changes its DST offset in the spring or @@ -2097,102 +2097,12 @@ from 2am to 1am in the fall (fall back). In the spring, there are local time instances which are illegal because they never existed, and in the fall, there are local time instances which occur twice. -Different date-time libraries in different languages handle these situations -slightly differently. For example, - -* [Java 11 java.time package](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/chrono/ChronoLocalDate.html) - * returns the `ZonedDateTime` shifted forward by one hour during a gap - * returns the earlier `ZonedDateTime` during an overlap - * choices offered with additional methods: - * `ZonedDateTime.withEarlierOffsetAtOverlap()` - * `ZonedDateTime.withLaterOffsetAtOverlap()` -* [C++ Hinnant date library](https://howardhinnant.github.io/date/tz.html) - * throws an exception in a gap or overlap if a specifier `choose::earliest` - or `choose::latest` is not specified -* [Noda Time](https://nodatime.org/3.0.x/api/NodaTime.ZonedDateTime.html) - * throws `AmbiguousTimeException` or `SkippedTimeException` - * can specify an `Offset` to `ZonedDateTime` class to resolve ambiguity -* [Python datetime](https://docs.python.org/3/library/datetime.html) - * uses a `fold` parameter to resolve ambiguous or non-existent time - * see [PEP 495](https://www.python.org/dev/peps/pep-0495/) - -The AceTime library cannot use exceptions because the Arduino C++ environment -does not support exceptions. I chose to follow the techniques described by -Python PEP 495 because it is well-documented, easy to understand, and relatively -simple to implement. - - -#### Classes with Fold - -An optional `fold` parameter was added to various constructors and factory -methods. The default is `fold=0` if not specified. The `fold()` accessor and -mutator methods were added to the various classes as well. - -```C++ -namespace ace_time { - -class LocalTime { - public: - static LocalTime forComponents(uint8_t hour, uint8_t minute, - uint8_t second, uint8_t fold = 0); - - uint8_t fold() const; - void fold(uint8_t fold); - - [...] -}; - -class LocalDateTime { - public: - static LocalDateTime forComponents(int16_t year, uint8_t month, - uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, - uint8_t fold = 0); - - uint8_t fold() const; - void fold(uint8_t fold); - - [...] -}; - -class OffsetDateTime { - public: - static OffsetDateTime forComponents(int16_t year, uint8_t month, - uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, - TimeOffset timeOffset, uint8_t fold = 0) { - - uint8_t fold() const; - void fold(uint8_t fold); - - [...] -}; - -class ZonedDateTime { - public: - static ZonedDateTime forComponents(int16_t year, uint8_t month, uint8_t day, - uint8_t hour, uint8_t minute, uint8_t second, - const TimeZone& timeZone, uint8_t fold = 0) { - - uint8_t fold() const; - void fold(uint8_t fold); - - [...] -}; - -} -``` - - -#### Factory Methods with Fold - -There are 2 main factory methods on `ZonedDateTime`: `forEpochSeconds()` and -`forComponents()`. The `fold` parameter is an *output* parameter for -`forEpochSeconds()`, and an *input* parameter for `forComponents()`. The -mapping functionality of these methods are described in detail in the PEP 495 -document, but here is an ASCII diagram for reference: +Here is an ASCII diagram similar to the diagrams presented in Python [PEP +495](https://www.python.org/dev/peps/pep-0495/) document: ``` ^ -LocalDateTime | +PlainDateTime | | (overlap) / 2am | /| / | / | / @@ -2211,171 +2121,148 @@ LocalDateTime | UTC/epochSeconds ``` -The `forEpochSeconds()` takes the UTC/epochSeconds value and maps it to the -LocalDateTime axis. It is a single-valued function which is defined for all -values of epochSeconds, even with a DST shift forward or backward. The `fold` -parameter is an *output* of the `forEpochSeconds()` function. During an overlap, -a `ZonedDataTime` can occur twice. The earlier occurrence is returned with -`fold==0`, and the later occurrence is returned with `fold==1`. For all other -cases where there is only a unique occurrence, the `fold` parameter is set to 0. - -The `forComponents()` takes the LocalDateTime value and maps it to the -UTC/epochSeconds axis. During a gap, there are certain LocalDateTime -components which do not exist and are illegal. During an overlap, there are 2 -epochSeconds which can correspond to the given LocalDateTime. The `fold` -parameter is an *input* parameter to the `forComponents()` in both cases. -The impact of the `fold` parameter is as follows: - -**Normal**: Not a gap or overlap. The `forComponents()` method ignores the -`fold` parameter if there is no ambiguity about the local date-time components. -The returned `ZonedDateTime` object will contain a `fold()` value that preserves -the input `fold` parameter. - -**Overlap**: If `ZonedDateTime::forComponents()` is called with during an -overlap of `LocalDateTime` (e.g. 2:30am during a fall back from 2am to 3am), the -factory method uses the user-provided `fold` parameter to select the following: - -* `fold==0` - * Selects the *earlier* Transition element and returns the earlier - LocalDateTime. - * So 01:30 is interpreted as 01:30-07:00. -* `fold==1` - * Selects the *later* Transition element and returns the later - LocalDateTime. - * So 01:30 is interpreted as 01:30-08:00. - -**Gap**: If `ZonedDateTime::forComponents()` is called with a `LocalDateTime` -that does not exist (e.g. 2:30am during a spring forward night from 2am to 3am), -the factory method *normalizes* the resulting `ZonedDateTime` object so that the -components of the object are legal. The algorithm for normalization depends on -the `fold` parameter. The `2:30am` value becomes either `3:30am` or `1:30am` in -the following, and perhaps counter-intuitive, manner: - -* `fold==0` - * Selects the *earlier* Transition element, extended forward to apply to the - given LocalDateTime, - * Which maps to the *later* UTC/epochSeconds, - * Which becomes normalized to the *later* ZonedDateTime which has the - *later* UTC offset. - * So 02:30 is interpreted as 02:30-08:00, which is normalized to - 03:30-07:00, and the `fold` after normalization is set to 1 to indicate - that the later transition was selected. -* `fold==1` - * Selects the *later* Transition element, extended backward to apply to the - given LocalDateTime, - * Which maps to the *earlier* UTC/epochSeconds, - * Which becomes normalized to the *earlier* ZonedDateTime which has the - *earlier* UTC offset. - * So 02:30 is interpreted as 02:30-07:00, which is normalized to - 01:30-08:00, and the `fold` after normalization is set to 0 to indicate - that the earlier transition was selected. - -The time shift during a gap seems to be the *opposite* of the shift during an -overlap, but internally this is self-consistent. Just as importantly, this -follows the same logic as PEP 495. - -Note that the `fold` parameter flips its value (from 0 to 1, or vise versea) if -`forComponents()` is called in the gap. Currently, this is the only publicly -exposed mechanism for detecting that a given date-time is in the gap. - - -#### Semantic Changes with Fold - -The `fold` parameter has no effect on most existing methods. It is ignored in -all comparison operators: - -* `operator==()`, `operator!=()` ignore the `fold` -* `operator<()`, `operator>()`, etc. ignore the `fold` -* `compareTo()` ignores the `fold` - -It impacts the behavior the factory methods of `LocalTime`, `LocalDateTime`, -`OffsetDateTime` only trivially, causing the `fold` value to be passed into the -internal holding variable: - -* `LocalTime::forSeconds()` -* `LocalTime::forComponents()` -* `LocalDateTime::forEpochSeconds()` -* `LocalDateTime::forComponents()` -* `OffsetDateTime::forEpochSeconds()` -* `OffsetDateTime::forComponents()` - -The `fold` parameter has significant impact only on the `ZonedDateTime` factory -methods, and only if the `ExtendeZoneProcessor` is used: - -* `ZonedDateTime::forEpochSeconds()` -* `ZonedDateTime::forComponents()` - -The `fold` parameter is not exposed through any of the existing `printTo()` and -`printShortTo()` methods. It can only be accessed and changes by the `fold()` -accessor and mutator methods. - -A more subtle, but important semantic change, is that the `fold` parameter -preserves information during gaps and overlaps. This means that we can do -round-trip conversions of `ZonedDateTime` properly. We can start with -epochSeconds, convert to components, then back to epochSeconds, and get back the -same epochSeconds. Without the `fold` parameter, this round-trip was not -guaranteed during an overlap. - - -#### Resource Consumption with Fold +Different date-time libraries in different languages handle these situations +slightly differently. For example, + +- [Java 11 java.time package](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/chrono/ChronoPlainDate.html) + - returns the `ZonedDateTime` shifted forward by one hour during a gap + - returns the earlier `ZonedDateTime` during an overlap + - choices offered with additional methods: + - `ZonedDateTime.withEarlierOffsetAtOverlap()` + - `ZonedDateTime.withLaterOffsetAtOverlap()` +- [C++ Hinnant date library](https://howardhinnant.github.io/date/tz.html) + - throws an exception in a gap or overlap if a specifier `choose::earliest` + or `choose::latest` is not specified +- [Noda Time](https://nodatime.org/3.0.x/api/NodaTime.ZonedDateTime.html) + - throws `AmbiguousTimeException` or `SkippedTimeException` + - can specify an `Offset` to `ZonedDateTime` class to resolve ambiguity +- [Python datetime](https://docs.python.org/3/library/datetime.html) + - uses a `fold` parameter to resolve ambiguous or non-existent time + - see [PEP 495](https://www.python.org/dev/peps/pep-0495/) + +The AceTime library cannot use exceptions because the Arduino C++ environment +does not support exceptions. + +Prior to v4.0, AceTime followed the Python PEP 495 convention of using the +`fold` parameter in the `PlainDateTime` object or the `ZonedDateTime` object +because it is well-documented, easy to understand, and relatively simple to +implement. However, I have observed that PEP 495 is too complicated and +difficult to understand for most users. In fact, it is too complicated for me as +a developer of AceTime. + +Starting from v4.0, the AceTime library uses the `disambiguate` parameter used +by JavaScript Temporal and the Python whenever libraries. + +#### Factory Methods with Disambiguation + +There are 2 main factory methods on `ZonedDateTime`: `forEpochSeconds()` and +`forComponents()`. The `disambiguate` parameter applies to only the +`forComponents()` method. The `forEpochSeconds()` function always corresponds to +a unique `ZonedDateTime` object and does not need a `disambiguate` argument. + +The `disambiguate` parameter is an enum type that takes 4 values: + +- `Disambiguate::kCompatible` + - Selects the *earlier* time in an overlap, but the *later* time in a gap. + - This is the default if `disambiguate` is not explicitly provided. +- `Disambiguate::kLater` + - Always selects the later time. +- `Disambiguate::kEarlier` + - Always selects the earlier time. +- `Disambiguate::kReversed` + - The opposite of `kCompatible`. + +If the `PlainDateTime` value given to `forComponents()` is not a gap or overlap, +then the `disambiguate` parameter has no effect, because it maps to a unique +`ZonedDateTime`. + +#### Resolved Disambiguation + +When the `forComponents()` method returns a `ZonedDateTime`, it is sometimes +useful to know how the `disambiguate` parameter selected the result. The +`ZonedDateTime` object exposes a `ZonedDateTime::resolved()` variable. It +takes 5 values: + +- `Resolved::kUnique` - the ZonedDateTime is unique +- `Resolved::kOverlapEarlier` - the earlier time in an overlap was selected +- `Resolved::kOverlapLater` - the later time in an overlap was selected +- `Resolved::kGapEarlier` - the earlier time in a gap was selected +- `Resolved::kGapLater` - the later time in a gap was selected + +#### Resource Consumption with Disambiguation According to [MemoryBenchmark](examples/MemoryBenchmark), adding support for -`fold` increased flash usage of `ExtendedZoneProcessor` by about 600 bytes on -AVR processors and 400-600 bytes on 32-bit processors. (The `BasicZoneProcessor` -which ignores the `fold` parameter increased by ~150 bytes on AVR processors, -because of the overhead of copying the internal `fold` parameter in various -objects.) The static memory footprint of various classes increased by one byte -on AVR processors, and 2-4 bytes on 32-bit processors due to 32-bit alignment. +`disambiguate` parameter increased flash usage of `ExtendedZoneProcessor` by +about 600 bytes on AVR processors and 400-600 bytes on 32-bit processors. The +`BasicZoneProcessor` which ignores the `disambiguate` parameter increased by +~150 bytes on AVR processors, because of the overhead of copying the internal +`resolved` parameter in various objects. The static memory footprint of various +classes increased by one byte on AVR processors, and 2-4 bytes on 32-bit +processors due to 32-bit alignment. According to [AutoBenchmark](examples/AutoBenchmark), the performance of various functions did not change at all, except for `ZonedDataTime::forComponents()`, which became 5X *faster* on AVR processors and 1.5-3X faster on 32-bit -processors. This is because the `fold` parameter tells us exactly when the -internal normalization process is required, which allows us to skip the +processors. This is because the `disambiguate` parameter tells us exactly when +the internal normalization process is required, which allows us to skip the normalization step in the common case outside the gap. Within the gap, the `forComponents()` method performs about the same as before. - -#### Examples with Fold +#### Examples of Disambiguation -Here are some examples taken from -[ZonedDateTimeExtendedTest](tests/ZonedDateTimeExtendedTest): +Here is an example of how `disambiguate` can be used, taken from +[examples/Disambiguate](examples/Disambiguate): ```C++ -ExtendedZoneProcessorCache<1> zoneProcessorCache; -ExtendedZoneManager extendedZoneManager( - zonedbx::kZoneAndLinkRegistrySize, - zonedbx::kZoneAndLinkRegistry, - zoneProcessorCache); -TimeZone tz = extendedZoneManager.createForZoneInfo( - &zonedbx::kZoneAmerica_Los_Angeles); - -// During fall back. This is the second occurrence of this local time, so should -// print: -// 2022-11-06T01:29:00-08:00[America/Los_Angeles] -// fold=1 -acetime_t epochSeconds = 721042140; -auto dt = ZonedDateTime::forEpochSeconds(epochSeconds, tz); -Serial.printTo(dt); Serial.println(); -Serial.print("fold="); Serial.println(dt.fold()); - -// During spring forward. In the gap, fold=0 selects earlier transition, -// so selects -08:00 offset, which gets normalized to -07:00, so should print: -// 2022-03-13T03:29:00-07:00[America/Los_Angeles] -dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, 0 /*fold*/); -Serial.printTo(dt); Serial.println(); - -// During spring forward. In the gap, fold=1 selects later transition, -// so selects -07:00 offset, which gets normalized to -08:00, so should print: -// 2022-03-13T01:29:00-08:00[America/Los_Angeles] -dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, 1 /*fold*/); -Serial.printTo(dt); Serial.println(); -``` - - +#include +#include + +using namespace ace_time; + +static ExtendedZoneProcessor losAngelesProcessor; + +void setup() { + [...] + + TimeZone tz = TimeZone::forZoneInfo( + &zonedbx::kZoneAmerica_Los_Angeles, + &losAngelesProcessor); + + // In the gap, kCompatible selects the later time, so should print: + // 2022-03-13T03:29:00-07:00[America/Los_Angeles] + // resolved=4 (kGapLater) + dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, + Disambiguate::kCompatible); // this is the default + dt.printTo(Serial); + Serial.println(); + Serial.print("resolved="); + Serial.println(dt.resolved()); + + // In the gap, kEarlier selects the earlier time, so should print: + // 2022-03-13T01:29:00-08:00[America/Los_Angeles] + // resolved=3 (kGapEarlier) + dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, + Disambiguate::kEarlier); + dt.printTo(Serial); + Serial.println(); + Serial.print("resolved="); + Serial.println(dt.resolved()); +} + +void loop() {} +``` + +This program prints: + +``` +2022-03-13T03:29:00-07:00[America/Los_Angeles] +resolved=4 +2022-03-13T01:29:00-08:00[America/Los_Angeles] +resolved=3 +``` + ## ZoneInfo Database - ### ZoneInfo Records The data structures that describe the zoneinfo database are in @@ -2391,108 +2278,102 @@ keyword on microcontrollers which support this feature (AVR, ESP8266). The following classes represent the various objects stored in `PROGMEM`, and are defined in the `zoneinfo/ZoneInfoXxx.h` header files: -* `ZoneContext` -* `ZoneRule` -* `ZonePolicy`: referencing a collection of `ZoneRule` -* `ZoneEra` -* `ZoneInfo`: referencing a collection of `ZoneEra` +- `ZoneContext` +- `ZoneRule` +- `ZonePolicy`: referencing a collection of `ZoneRule` +- `ZoneEra` +- `ZoneInfo`: referencing a collection of `ZoneEra` In v2.3, three versions of these ZoneInfo records were created, to support the 3 different zonedb types: -* `ace_time::basic::Info::ZoneXxx` - used with `BasicZoneProcessor` -* `ace_time::extended::Info::ZoneXxx` - used with `ExtendedZoneProcessor` -* `ace_time::complete::Info::ZoneXxx` - used with `CompleteZoneProcessor` +- `ace_time::basic::Info::ZoneXxx` - used with `BasicZoneProcessor` +- `ace_time::extended::Info::ZoneXxx` - used with `ExtendedZoneProcessor` +- `ace_time::complete::Info::ZoneXxx` - used with `CompleteZoneProcessor` Information stored in `PROGMEM` must be retrieved using special functions (e.g. `pgm_read_byte()`, `pgm_read_word()`, etc). A thin layer of indirection is provided to hide the implementation details of these access functions. The abstraction layer is provided by `zoneinfo/Brokers.h`: -* `ZoneContextBroker` -* `ZoneRuleBroker` -* `ZonePolicyBroker` -* `ZoneEraBroker` -* `ZoneInfoBroker` -* `ZoneRegistryBroker` -* `ZoneInfoStore` - a factory of `ZoneInfoBroker` +- `ZoneContextBroker` +- `ZoneRuleBroker` +- `ZonePolicyBroker` +- `ZoneEraBroker` +- `ZoneInfoBroker` +- `ZoneRegistryBroker` +- `ZoneInfoStore` - a factory of `ZoneInfoBroker` There are 3 sets of these broker classes, duplicated into 2 different C++ namespaces: -* `ace_time::basic::Info::ZoneXxxBroker` -* `ace_time::extended::Info::ZoneXxxBroker` -* `ace_time::complete::Info::ZoneXxxBroker` +- `ace_time::basic::Info::ZoneXxxBroker` +- `ace_time::extended::Info::ZoneXxxBroker` +- `ace_time::complete::Info::ZoneXxxBroker` The separate namespaces allows compile-time verification that the correct `zonedb*` database is used with the correct `BasicZoneProcessor`, `ExtendedZoneProcessor`, or `CompleteZoneProcessor`. - ### ZoneDB -There are 6 zonedb databases provided in this library. Three are meant for -general consumption: - -* `zonedb` for `BasicZoneProcessor` -* `zonedbx` for `ExtendedZoneProcessor` -* `zonedbc` for `CompleteZoneProcessor` +There are 8 zonedb databases provided in this library: 5 are intended for public +consumption, and 3 are for testing: -These 3 are meant for unit tests: +- public: + - `zonedb` for `BasicZoneProcessor` + - `zonedb2025` for `BasicZoneProcessor` + - `zonedbx` for `ExtendedZoneProcessor` + - `zonedbx2025` for `ExtendedZoneProcessor` + - `zonedbc` for `CompleteZoneProcessor` +- testing + - `testingzonedb` for `BasicZoneProcessor` + - `testingzonedbx` for `ExtendedZoneProcessor` + - `testingzonedbc` for `CompleteZoneProcessor` -* `testingzonedb` for `BasicZoneProcessor` -* `testingzonedbx` for `ExtendedZoneProcessor` -* `testingzonedbc` for `CompleteZoneProcessor` - - #### Basic zonedb -The `zonedb/` database is intended to contain timezones which are compatible -with the `BasicZoneProcessor` and `BasicZoneManager` classes. The database -format is optimized for small size, at the expense of excluding some timezones -with complex DST saving rules. If a zone is excluded, the reason for the -exclusion can be found at the bottom of the -[zonedb/zone_infos.h](src/zonedb/zone_infos.h) file. The criteria for selecting -the Basic `zonedb` entries are embedded in the `transformer.py` script and -summarized in [BasicZoneProcessor.h](src/ace_time/BasicZoneProcessor.h): +The `zonedb/` database and `zonedb2025` database contain timezones which are +compatible with the `BasicZoneProcessor` and `BasicZoneManager` classes. The +database format is optimized for small size, at the expense of excluding some +timezones with complex DST saving rules. The `zonedb/` database provides only +the years `[2000,10000)` and the `zonedb2025` database provides `[2025,10000)`. + +If a zone is excluded, the reason for the exclusion can be found at the bottom +of the [zonedb/zone_infos.h](src/zonedb/zone_infos.h) file. The criteria for +selecting the Basic `zonedb` entries are embedded in the `transformer.py` script +and summarized in [BasicZoneProcessor.h](src/ace_time/BasicZoneProcessor.h): -* the year fields are stores as 8-bit integer offsets (from a base year of 2100) +- the year fields are stores as 8-bit integer offsets (from a base year of 2100) instead of using the full 16-bit integer - * this limits the year range to `[1974,2225]` -* the DST offset is a multiple of 15-minutes ranging from -1:00 to 2:45 -* the STDOFF offset is a multiple of 1-minute (all timezones after year 2000 + - this limits the year range to `[1974,2225]` +- the DST offset is a multiple of 15-minutes ranging from -1:00 to 2:45 +- the STDOFF offset is a multiple of 1-minute (all timezones after year 2000 satisfy this) -* the AT or UNTIL fields must occur at one-year boundaries (this is the biggest +- the AT or UNTIL fields must occur at one-year boundaries (this is the biggest filter) -* the LETTER field can be an arbitrary string -* the UNTIL time suffix can only be 'w' (not 's' or 'u') -* there can be only one DST transition in a single month +- the LETTER field can be an arbitrary string +- the UNTIL time suffix can only be 'w' (not 's' or 'u') +- there can be only one DST transition in a single month -As of version v2.3 (with TZDB 2022c), the `zonedb` database contains 446 Zones -and Links (out of a total of 596), supporting the years roughly `[2000,2200]`. - - #### Extended zonedbx -The goal of the `zonedbx/` database is to support all zones listed in the TZ -Database for modern years using the `ExtendedZoneProcessor` and -`ExtendedZoneManager` classes. The year range is restricted to `[2000,32765]`. +The `zonedbx/` database and the `zonedb2025/` database support all zones listed +in the TZ Database for modern years using the `ExtendedZoneProcessor` and +`ExtendedZoneManager` classes. The year range is either `[2000,32765]` or +`[2025,32765]`: -* the year fields are stores as 8-bit integer offsets (from a base year of 2100) +- the year fields are stores as 8-bit integer offsets (from a base year of 2100) instead of using the full 16-bit integer - * this limits the year range to `[1974,2225]` -* the DST offset is a multiple of 15-minutes ranging from -1:00 to 2:45 + - this limits the year range to `[1974,2225]` +- the DST offset is a multiple of 15-minutes ranging from -1:00 to 2:45 (all timezones from about 1972 support this) -* the STDOFF offset is a multiple of 1-minute (all timezones after year 2000 +- the STDOFF offset is a multiple of 1-minute (all timezones after year 2000 satisfy this) -* the AT and UNTIL fields are multiples of 1-minute -* the UNTIL time suffix can be 'w', 's, or 'u' -* the LETTER field can be an arbitrary string - -As of version v2.3 (with TZDB 2022c), the `zonedbx` database contains all 596 -Zones and Links, over all years in the range of `[2000,32765]`. +- the AT and UNTIL fields are multiples of 1-minute +- the UNTIL time suffix can be 'w', 's, or 'u' +- the LETTER field can be an arbitrary string - #### Complete zonedbc The goal of the `zonedbc/` database is to support all zones listed in the TZ @@ -2500,19 +2381,18 @@ Database, for all years in that database, from 1844 onwards without limit, using the `CompleteZoneProcessor` and the `CompleteZoneManager` classes. This is the largest of the 3 zonedb databases. Its features are: -* the year fields are stored as 16-bit signed integers, which allows any year +- the year fields are stored as 16-bit signed integers, which allows any year from `[-32767,32765]` (-32768, +32766, +32767 are used for internal purposes) -* the DST offset can be a multiple of 1-minute, which is satisfied by all +- the DST offset can be a multiple of 1-minute, which is satisfied by all timezones across all years -* the STDOFF ofset can be an arbitrary multiple of 1-second -* the AT and UNTIL fields can be an arbitrary multiple of 1-second -* the UNTIL time suffix can be 'w', 's, or 'u' -* the LETTER field can be an arbitrary string +- the STDOFF ofset can be an arbitrary multiple of 1-second +- the AT and UNTIL fields can be an arbitrary multiple of 1-second +- the UNTIL time suffix can be 'w', 's, or 'u' +- the LETTER field can be an arbitrary string As of version v2.3 (with TZDB 2023c), the `zonedbc` database contains all 596 Zone and Link entries, supporting all years in the range of `[0001,10000)`. - #### TZ Database Version The IANA TZ Database is updated continually. As of this writing, the latest @@ -2530,9 +2410,15 @@ void printVersionTzVersions() { Serial.print("zonedb TZ version: "); Serial.println(zonedb::kTzDatabaseVersion); // e.g. "2023c" + Serial.print("zonedb2025 TZ version: "); + Serial.println(zonedb2025::kTzDatabaseVersion); // e.g. "2023c" + Serial.print("zonedbx TZ version: "); Serial.println(zonedbx::kTzDatabaseVersion); // e.g. "2023c" + Serial.print("zonedbx2025 TZ version: "); + Serial.println(zonedbx2025::kTzDatabaseVersion); // e.g. "2023c" + Serial.print("zonedbc TZ version: "); Serial.println(zonedbc::kTzDatabaseVersion); // e.g. "2023c" } @@ -2541,7 +2427,6 @@ void printVersionTzVersions() { It is theoretically possible for the 3 versions to be different, but since they are generated by the same set of scripts, I expect they will always be the same. - #### ZoneInfo Year Range The zonedb databases are generated with a specific requested `startYear` and @@ -2558,7 +2443,7 @@ parameters were added in v2.3: `startYearAccurate` and `untilYearAccurate`. The database is known to be accurate. The value of `kMinYear (-32767)` means `-Infinity`, and the value of `kMaxUntilYear (+32767)`means `+Infinity`. -The limit of `[0001,10000)` is imposed by the `LocalDate` class for practical +The limit of `[0001,10000)` is imposed by the `PlainDate` class for practical reasons to limit the number of digits in a year to 4-digits, and because certain internal algorithms do not work for negative years. @@ -2594,7 +2479,6 @@ The library supports some amount of "graceful degradation". When the usable but its accuracy may be diminished if the DST transitions of the specific timezone were filtered out of the zone database. - #### External Zone Classes The `basic::Info::ZoneInfo`, `extended::Info::ZoneInfo`, and @@ -2706,7 +2590,6 @@ const char* name = printStr.cstr(); See also the [Print To String](#PrintToString) section below. - ### Zones and Links The IANA TZ database contains 2 types of timezones: @@ -2755,10 +2638,9 @@ The `TimeZone::printTargetNameTo(Print&)` prints the name of the target zone if the current time zone is a Link. Otherwise it prints nothing. For example, for the time zone `US/Pacific` (which is a Link to `America/Los_Angeles`): -* `printTo(Print&)` prints "US/Pacific" -* `printTargetNameTo(Print&)` prints "America/Los_Angeles" +- `printTo(Print&)` prints "US/Pacific" +- `printTargetNameTo(Print&)` prints "America/Los_Angeles" - ### Custom Zone Registry On small microcontrollers, the default zone registries (`kZoneRegistry` and @@ -2795,15 +2677,15 @@ in static RAM or flash memory according to this macro. An example is shown in: -* [examples/CustomZoneRegistry](examples/CustomZoneRegistry) +- [examples/CustomZoneRegistry](examples/CustomZoneRegistry) Various unit tests also use custom registries: -* [tests/ZoneRegistrarTest](tests/ZoneRegistrarTest) -* [tests/TimeZoneTest](tests/TimeZoneTest) -* [tests/ZonedDateTimeBasicTest](tests/ZonedDateTimeBasicTest) -* [tests/ZonedDateTimeExtendedTest](tests/ZonedDateTimeExtendedTest) -* [tests/ZonedDateTimeCompleteTest](tests/ZonedDateTimeCompleteTest) +- [tests/ZoneRegistrarTest](tests/ZoneRegistrarTest) +- [tests/TimeZoneTest](tests/TimeZoneTest) +- [tests/ZonedDateTimeBasicTest](tests/ZonedDateTimeBasicTest) +- [tests/ZonedDateTimeExtendedTest](tests/ZonedDateTimeExtendedTest) +- [tests/ZonedDateTimeCompleteTest](tests/ZonedDateTimeCompleteTest) (**TBD**: I think it would be useful to create a script that can generate the C++ code representing these custom zone registries from a list of zones.) @@ -2813,7 +2695,6 @@ with different range of years. The tools are all here, but not explicitly documented currently. Examples of how to this do exist inside the various `Makefile` files under `AceTimeSuite/validation/tests/*/Makefile`.) - ## Zone Sorting When a client application supports only a handful of zones in the `ZoneManager`, @@ -2970,7 +2851,6 @@ void sortIds() { } ``` - ## Print To String Many classes provide a `printTo(Print&)` method which prints a human-readable @@ -3013,7 +2893,6 @@ using namespace ace_time; } ``` - ## Mutations Mutating the date and time classes can be tricky. In fact, many other @@ -3037,11 +2916,11 @@ implemented within the class itself to avoid bloating the class API surface. The mutation functions live as functions in separate namespaces outside of the class definitions: -* `time_period_mutation.h` -* `time_offset_mutation.h` -* `local_date_time_mutation.h` -* `offset_date_time_mutation.h` -* `zoned_date_time_mutation.h` +- `time_period_mutation.h` +- `time_offset_mutation.h` +- `plain_date_time_mutation.h` +- `offset_date_time_mutation.h` +- `zoned_date_time_mutation.h` Additional mutation operations can be written by the application developer and added into the *same* namespace, since C++ allows things to be added to a @@ -3077,7 +2956,6 @@ flash memory saved for something like [WorldClock](https://github.com/bxparks/clocks/tree/master/WorldClock)), while providing the features that I need to implement the various Clock applications. - ### TimeOffset Mutations The `TimeOffset` object can be mutated with: @@ -3095,28 +2973,26 @@ void increment15Minutes(TimeOffset& offset); } ``` - -### LocalDate Mutations +### PlainDate Mutations -The `LocalDate` object can be mutated with the following methods and functions: +The `PlainDate` object can be mutated with the following methods and functions: ```C++ namespace ace_time { -void LocalDate::year(int16_t year); -void LocalDate::month(uint8_t month); -void LocalDate::day(uint8_t month); +void PlainDate::year(int16_t year); +void PlainDate::month(uint8_t month); +void PlainDate::day(uint8_t month); -namespace local_date_mutation { +namespace plain_date_mutation { -void incrementOneDay(LocalDate& ld); -void decrementOneDay(LocalDate& ld); +void incrementOneDay(PlainDate& pd); +void decrementOneDay(PlainDate& pd); } } ``` - ### OffsetDateTime Mutations The `OffsetDateTime` object can be mutated using the following methods and @@ -3146,7 +3022,6 @@ void incrementMinute(OffsetDateTime& dateTime); } ``` - ### ZonedDateTime Mutations The `ZonedDateTime` object can be mutated using the following methods and @@ -3176,7 +3051,6 @@ void incrementMinute(ZonedDateTime& dateTime); } ``` - ### ZonedDateTime Normalization When the `ZonedDateTime` object is mutated using the methods and functions @@ -3205,7 +3079,11 @@ Adding this single call to `normalize()` seems to increase flash consumption by 220 bytes on an 8-bit AVR processor. Unfortunately, it must be called to ensure accuracy across DST boundaries. - +The `ZonedDateTime::normalize()` function takes the same optional `disambiguate` +parameter as `ZonedDateTime::forComponents()` and +`ZonedDateTime::forPlainDateTime()`. If it is not given, it is set to the +default value of `Disambiguate::kCompatible`. + ### TimePeriod Mutations The `TimePeriod` can be mutated using the following methods: @@ -3229,7 +3107,6 @@ void incrementMinute(TimePeriod& period); } ``` - ## Error Handling Many features of the date and time classes have explicit or implicit range of @@ -3237,21 +3114,20 @@ validity in their inputs and outputs. The Arduino programming environment does not use C++ exceptions, so we handle invalid values by returning special version of various date/time objects to the caller. - ### Invalid Sentinels Many methods return an return integer value. Error conditions are indicated by -special constants, many of whom are defined in the `LocalDate` class: +special constants, many of whom are defined in the `PlainDate` class: -* `int32_t LocalDate::kInvalidEpochDays` - * Error value returned by `toEpochDays()` methods -* `int32_t LocalDate::kInvalidEpochSeconds` - * Error value returned by `toEpochSeconds()` methods -* `int64_t LocalDate::kInvalidUnixSeconds64` - * Error value returned by `toUnixSeconds64()` methods +- `int32_t PlainDate::kInvalidEpochDays` + - Error value returned by `toEpochDays()` methods +- `int32_t PlainDate::kInvalidEpochSeconds` + - Error value returned by `toEpochSeconds()` methods +- `int64_t PlainDate::kInvalidUnixSeconds64` + - Error value returned by `toUnixSeconds64()` methods Similarly, many factory methods accept an `acetime_t`, `int32_t`, or `int64_t` -arguments and return objects of various classes (e.g. `LocalDateTime`, +arguments and return objects of various classes (e.g. `PlainDateTime`, `OffsetDateTime` or `ZonedDateTime`). When these methods are given the error constants, they return an object whose `isError()` method returns `true`. @@ -3262,16 +3138,15 @@ I encourage the application to check for these errors conditions as much as practical, and try to degrade to some reasonable default behavior when an error is detected. - ### isError() The `isError()` method on these classes will return `true` upon a data range error: ```C++ -bool LocalDate::isError() const; -bool LocalTime::isError() const; -bool LocalDateTime::isError() const; +bool PlainDate::isError() const; +bool PlainTime::isError() const; +bool PlainDateTime::isError() const; bool OffsetDatetime::isError() const; bool ZonedDateTime::isError() const; bool TimeOffset::isError() const; @@ -3281,7 +3156,7 @@ bool TimeZone::isError() const; A well-crafted application should check for these error conditions before writing or displaying the objects to the user. -For example, the `LocalDate` and `LocalDateTime` classes support only 4-digit +For example, the `PlainDate` and `PlainDateTime` classes support only 4-digit `year` component, from `[1, 9999]`. The year 0 is used internally to indicate `-Infinity` and the year `10000` is used internally as `+Infinity`. @@ -3289,17 +3164,17 @@ The following are examples of invalid instances, where `dt.isError()` will return true: ```C++ -auto dt = LocalDateTime::forComponents(-1, 1, 1, 0, 0, 0); // invalid year +auto dt = PlainDateTime::forComponents(-1, 1, 1, 0, 0, 0); // invalid year -auto dt = LocalDateTime::forComponents(2000, 0, 1, 0, 0, 0); // invalid month +auto dt = PlainDateTime::forComponents(2000, 0, 1, 0, 0, 0); // invalid month -auto dt = LocalDateTime::forComponents(2000, 1, 32, 0, 0, 0); // invalid day +auto dt = PlainDateTime::forComponents(2000, 1, 32, 0, 0, 0); // invalid day -auto dt = LocalDateTime::forComponents(2000, 1, 1, 24, 0, 0); // invalid hour +auto dt = PlainDateTime::forComponents(2000, 1, 1, 24, 0, 0); // invalid hour -auto dt = LocalDateTime::forComponents(2000, 1, 1, 0, 61, 0); // invalid minute +auto dt = PlainDateTime::forComponents(2000, 1, 1, 0, 61, 0); // invalid minute -auto dt = LocalDateTime::forComponents(2000, 1, 1, 0, 0, 61); // invalid second +auto dt = PlainDateTime::forComponents(2000, 1, 1, 0, 0, 61); // invalid second ``` Another example, the `ZonedDateTime` class uses the generated ZoneInfo Database @@ -3315,140 +3190,139 @@ auto dt = ZonedDateTime::forComponents(1998, 3, 11, 1, 59, 59, tz); Serial.println(dt.isError() ? "true" : "false"); ``` - ## Bugs and Limitations -* Leap seconds - * This library does not support +- Leap seconds + - This library does not support [leap seconds](https://en.wikipedia.org/wiki/Leap_second) and will probably never do so. - * The library does not implement + - The library does not implement [TAI (International Atomic Time)](https://en.wikipedia.org/wiki/International_Atomic_Time). - * The `epochSeconds` is like `unixSeconds` in that it is unaware of + - The `epochSeconds` is like `unixSeconds` in that it is unaware of leap seconds. When a leap seconds occurs, the `epochSeconds` is held constant over 2 seconds, just like `unixSeconds`. - * The `SystemClock` is unaware of leap seconds so it will continue + - The `SystemClock` is unaware of leap seconds so it will continue to increment `epochSeconds` through the leap second. In other words, the SystemClock will be 1 second ahead of UTC after the leap second occurs. - * If the referenceClock is the `NtpClock`, that clock happens to + - If the referenceClock is the `NtpClock`, that clock happens to be leap second aware, and the `epochSeconds` will bounce back one second upon the next synchronization, becoming synchronized to UTC. - * If the referenceClock is the `DS3231Clock`, that clock is *not* + - If the referenceClock is the `DS3231Clock`, that clock is *not* leap second aware, so the `epochSeconds` will continue to be ahead of UTC by one second even after synchronization. -* `acetime_t` - * AceTime uses a default epoch of 2050-01-01T00:00:00 UTC by default. The +- `acetime_t` + - AceTime uses a default epoch of 2050-01-01T00:00:00 UTC by default. The epoch can be changed using the `Epoch::currentEpochYear(year)` function. - * The `acetime_t` type is a 32-bit signed integer whose smallest value + - The `acetime_t` type is a 32-bit signed integer whose smallest value is `-2^31` and largest value is `2^31-1`. However, the smallest value is used to indicate an internal "Error" condition, therefore the actual smallest `acetime_t` is `-2^31+1`. Therefore, the smallest and largest dates that can be represented by `acetime_t` is theoretically 1981-12-13T20:45:53 UTC to 2118-01-20T03:14:07 UTC (inclusive). - * To be conservative, users of this library should limit the range of the + - To be conservative, users of this library should limit the range of the epoch seconds to +/- 60 years of the current epoch, in other words, `[1990,2110)`, or even easier to remember, `[2000,2100)`. -* `LocalDate`, `LocalDateTime` - * The class checks that the `year` component in the range of `[0, +- `PlainDate`, `PlainDateTime` + - The class checks that the `year` component in the range of `[0, 10000]`, which is a smaller range than the `[-32767,32765]` range supported by the various `zonedb`, `zonedbx`, `zonedbc` databases. - * The `isError()` returns `true` outside of the `[0,10000]` year range. - * Due to the interaction of complex boundary effects, the actual range of + - The `isError()` returns `true` outside of the `[0,10000]` year range. + - Due to the interaction of complex boundary effects, the actual range of accuracy of various algorithms in this library is probably `[1, 9999]`. Client applications should stay within this range. - * This limit allows the library to assume that the year can always be + - This limit allows the library to assume that the year can always be formatted into 4-digits. -* `forDateString()` - * Various classes provide a `forDateString()` method to construct +- `forDateString()` + - Various classes provide a `forDateString()` method to construct the object from a human-readable string. These methods are mostly meant to be used for debugging. The parsers are not robust and do not perform very much error checking, but they may be sufficient for your needs. - * `ZonedDateTime::forDateString()` cannot support TZ Database zone + - `ZonedDateTime::forDateString()` cannot support TZ Database zone identifiers (e.g. "America/Los_Angeles") because the AceTime library does not load the entire TZ Database due to memory constraints of most Arduino boards. -* `TimeZone` - * It might be possible to use different `TimeZone` instances created +- `TimeZone` + - It might be possible to use different `TimeZone` instances created different zonedb database (i.e. `zonedb`, `zonedbx`, `zonedbc`). However, this is not a configuration that is expected to be used often, so it has not been tested well, if at all. - * One potential problem is that the equality of two `TimeZone` depends only + - One potential problem is that the equality of two `TimeZone` depends only on the `zoneId`, so a Basic `TimeZone` created with a `zonedb::kZoneAmerica_Los_Angeles` will be considered equal to an Extended `TimeZone` created with a `zonedbx::kZoneAmerica_Los_Angeles`. -* `ZonedDateTime::forComponents()` - * The `ZonedDateTime::forComponents()` method takes the local wall time and +- `ZonedDateTime::forComponents()` + - The `ZonedDateTime::forComponents()` method takes the local wall time and `TimeZone` instance as parameters which can be ambiguous or invalid for some values. - * During the Standard time to DST transitions, a one-hour gap of + - During the Standard time to DST transitions, a one-hour gap of illegal values may exist. For example, 2am (Standard) shifts to 3am (DST), therefore wall times between 02:00 and 03:00 (exclusive) are not valid. - * During DST to Standard time transitions, a one-hour interval occurs + - During DST to Standard time transitions, a one-hour interval occurs twice. For example, 2am (DST) shifts to 1am, so all times between 01:00 and 02:00 (exclusive) occurs twice in one day. - * The `ZonedDateTime::forCommponent()` methods makes an educated guess + - The `ZonedDateTime::forCommponent()` methods makes an educated guess at what the user meant, but the algorithm may not be robust, is not tested as well as it could be, and the algorithm may change in the future. To keep the code size within reasonble limits of a small Arduino controller, the algorithm may be permanently sub-optimal. -* `ZonedDateTime` objects should remain within roughly +/- 60 years of the +- `ZonedDateTime` objects should remain within roughly +/- 60 years of the current AceTime Epoch. - * Otherwise, internal integer variables may overflow without warning + - Otherwise, internal integer variables may overflow without warning and incorrect results may be calculated. - * The internal time zone calculations use the same `int32_t` type as the + - The internal time zone calculations use the same `int32_t` type as the `acetime_t` epoch seconds. This has a range of about 136 years. -* `BasicZoneProcessor` - * Supports 1-minute resolution for the AT, UNTIL, STDOFF fields. - * Supports only a 15-minute resolution for the DST offset field. - * Sufficient to support ~450 zones out of ~600 total, +- `BasicZoneProcessor` + - Supports 1-minute resolution for the AT, UNTIL, STDOFF fields. + - Supports only a 15-minute resolution for the DST offset field. + - Sufficient to support ~450 zones out of ~600 total, from the year 2000 onwards. -* `ExtendedZoneProcessor` - * Supports 1-second resolution for the AT, UNTIL, STDOFF, but the +- `ExtendedZoneProcessor` + - Supports 1-second resolution for the AT, UNTIL, STDOFF, but the `zonedbx` database supports only 1-minute resolution of these fields. - * Supports 1-second resolution for the DST offset field, but the `zonedbx` + - Supports 1-second resolution for the DST offset field, but the `zonedbx` database supports only a 15-minute resolution of this field. - * These restricts do not impact any timezones on or after the year 1974, and + - These restricts do not impact any timezones on or after the year 1974, and the `zonedbx` database starts at the year 2000. -* `CompleteZoneProcessor` - * Is identical to `ExtendedZonProcessor`, but is able to use the +- `CompleteZoneProcessor` + - Is identical to `ExtendedZonProcessor`, but is able to use the high-resolution `zonedbc` database. - * Supports all timezones for all years over `[0001,10000)`. -* `zonedb/`, `zonedbx/`, `zonedbc` databases - * These data structures are loaded into flash memory using the `PROGMEM` + - Supports all timezones for all years over `[0001,10000)`. +- zonedb databases + - These data structures are loaded into flash memory using the `PROGMEM` keyword. - * The ZoneInfo entries have *not* been compressed using bit-fields. - * It may be possible to decrease the size of the full database using + - The ZoneInfo entries have *not* been compressed using bit-fields. + - It may be possible to decrease the size of the full database using these compression techniques. However, compression will increase the size of the program file, so for applications that use only a small number of zones, it is not clear if the ZoneInfo entry compression will provide a reduction in the size of the overall program. - * The TZ database files `backzone`, `systemv` and `factory` are + - The TZ database files `backzone`, `systemv` and `factory` are not processed by the `tzcompiler.py` tool. - * They don't seem to contain anything worthwhile. - * TZ Database version 2019b contains the first use of the + - They don't seem to contain anything worthwhile. + - TZ Database version 2019b contains the first use of the `{onDayOfWeek<=onDayOfMonth}` syntax that I have seen (specifically `Rule Zion, FROM 2005, TO 2012, IN Apr, ON Fri<=1`). - * The actual transition date can shift into the previous month (or to + - The actual transition date can shift into the previous month (or to the next month in the case of `>=`). However, shifting into the previous year or the next year is not supported. - * The `tzcompiler.py` will exclude and flag the Rules which could + - The `tzcompiler.py` will exclude and flag the Rules which could potentially shift to a different year. - * No such Rule has been observed as of 2023c. -* SAMD21 Boards - * SAMD21 boards using the traditional Arduino API are supported. - * For example, Adafruit ItsyBitsy M0, Seeeduino XIAO M0. - * SAMD boards using the Arduino samd Core >= 1.8.10 are explicitly + - No such Rule has been observed as of 2023c. +- SAMD21 Boards + - SAMD21 boards using the traditional Arduino API are supported. + - For example, Adafruit ItsyBitsy M0, Seeeduino XIAO M0. + - SAMD boards using the Arduino samd Core >= 1.8.10 are explicitly blacklisted, because they use the [ArduinoCore-API](https://github.com/arduino/ArduinoCore-api) which is not compatible with this library. - * Arduino Zero is moved to Tier 3 (may work but not supported). - * I don't own an Arduino Zero, so I cannot validate anything on that + - Arduino Zero is moved to Tier 3 (may work but not supported). + - I don't own an Arduino Zero, so I cannot validate anything on that board. - * It has [2 USB ports](https://www.arduino.cc/en/Guide/ArduinoZero) + - It has [2 USB ports](https://www.arduino.cc/en/Guide/ArduinoZero) which is too confusing. - * You may be able to fix some of the serial port problem by setting + - You may be able to fix some of the serial port problem by setting `ACE_TIME_CLOBBER_SERIAL_PORT_MONITOR` to `1` in `src/ace_time/common/compat.h`. But I do not test this option often, so it may be broken. diff --git a/examples/AutoBenchmark/AutoBenchmark.ino b/examples/AutoBenchmark/AutoBenchmark.ino index 4c9e1eb25..818c6e32c 100644 --- a/examples/AutoBenchmark/AutoBenchmark.ino +++ b/examples/AutoBenchmark/AutoBenchmark.ino @@ -26,14 +26,14 @@ void setup() { // print sizeof() various ace_time primitives - SERIAL_PORT_MONITOR.print(F("sizeof(LocalDate): ")); - SERIAL_PORT_MONITOR.println(sizeof(LocalDate)); + SERIAL_PORT_MONITOR.print(F("sizeof(PlainDate): ")); + SERIAL_PORT_MONITOR.println(sizeof(PlainDate)); - SERIAL_PORT_MONITOR.print(F("sizeof(LocalTime): ")); - SERIAL_PORT_MONITOR.println(sizeof(LocalTime)); + SERIAL_PORT_MONITOR.print(F("sizeof(PlainTime): ")); + SERIAL_PORT_MONITOR.println(sizeof(PlainTime)); - SERIAL_PORT_MONITOR.print(F("sizeof(LocalDateTime): ")); - SERIAL_PORT_MONITOR.println(sizeof(LocalDateTime)); + SERIAL_PORT_MONITOR.print(F("sizeof(PlainDateTime): ")); + SERIAL_PORT_MONITOR.println(sizeof(PlainDateTime)); SERIAL_PORT_MONITOR.print(F("sizeof(TimeOffset): ")); SERIAL_PORT_MONITOR.println(sizeof(TimeOffset)); diff --git a/examples/AutoBenchmark/Benchmark.cpp b/examples/AutoBenchmark/Benchmark.cpp index 5f06a8111..6d21cb3b4 100644 --- a/examples/AutoBenchmark/Benchmark.cpp +++ b/examples/AutoBenchmark/Benchmark.cpp @@ -12,8 +12,8 @@ * bytes. (after creating common printResult()). * * * Sketch uses 35898 bytes (116%) of program storage space. Maximum is 30720 - * bytes. (after commenting out runLocalDateForEpochDays() and - * runLocalDateToEpochDays(), reverted). + * bytes. (after commenting out runPlainDateForEpochDays() and + * runPlainDateToEpochDays(), reverted). * * * Sketch uses 28136 bytes (91%) of program storage space. Maximum is 30720 * bytes. (After creating a custom kBasicRegistry with only 83 zones.) @@ -92,7 +92,7 @@ const uint32_t MILLIS_TO_NANO_PER_ITERATION = ((uint32_t) 1000000 / COUNT); // subtracted. volatile uint8_t guard; -void disableOptimization(const LocalDate& ld) { +void disableOptimization(const PlainDate& ld) { guard ^= ld.year(); guard ^= ld.month(); guard ^= ld.day(); @@ -212,52 +212,52 @@ static void runEmptyLoop() { static volatile unsigned long fakeEpochDays = 42; static volatile acetime_t fakeEpochSeconds = 3432; -// LocalDate::forEpochDays() -static void runLocalDateForEpochDays() { - unsigned long localDateForDaysMillis = runLambda([]() { +// PlainDate::forEpochDays() +static void runPlainDateForEpochDays() { + unsigned long plainDateForDaysMillis = runLambda([]() { fakeEpochDays = millis() & 0xffff; - LocalDate localDate = LocalDate::forEpochDays(fakeEpochDays); - disableOptimization(localDate); + PlainDate plainDate = PlainDate::forEpochDays(fakeEpochDays); + disableOptimization(plainDate); }); - printResult(F("LocalDate::forEpochDays()"), localDateForDaysMillis, + printResult(F("PlainDate::forEpochDays()"), plainDateForDaysMillis, emptyLoopMillis); } -// LocalDate::toEpochDays() -static void runLocalDateToEpochDays() { - unsigned long localDateToEpochDaysMillis = runLambda([]() { +// PlainDate::toEpochDays() +static void runPlainDateToEpochDays() { + unsigned long plainDateToEpochDaysMillis = runLambda([]() { fakeEpochDays = millis() & 0xffff; - LocalDate localDate = LocalDate::forEpochDays(fakeEpochDays); - int32_t epochDays = localDate.toEpochDays(); + PlainDate plainDate = PlainDate::forEpochDays(fakeEpochDays); + int32_t epochDays = plainDate.toEpochDays(); disableOptimization(epochDays); }); unsigned long forEpochDaysMillis = runLambda([]() { fakeEpochDays = millis() & 0xffff; - LocalDate localDate = LocalDate::forEpochDays(fakeEpochDays); - disableOptimization(localDate); + PlainDate plainDate = PlainDate::forEpochDays(fakeEpochDays); + disableOptimization(plainDate); }); - printResult(F("LocalDate::toEpochDays()"), localDateToEpochDaysMillis, + printResult(F("PlainDate::toEpochDays()"), plainDateToEpochDaysMillis, forEpochDaysMillis); } -// LocalDate::dayOfWeek() -static void runLocalDateDaysOfWeek() { - unsigned long localDateDayOfWeekMillis = runLambda([]() { +// PlainDate::dayOfWeek() +static void runPlainDateDaysOfWeek() { + unsigned long plainDateDayOfWeekMillis = runLambda([]() { fakeEpochDays = millis() & 0xffff; - LocalDate localDate = LocalDate::forEpochDays(fakeEpochDays); - uint8_t dayOfWeek = localDate.dayOfWeek(); - disableOptimization(localDate); + PlainDate plainDate = PlainDate::forEpochDays(fakeEpochDays); + uint8_t dayOfWeek = plainDate.dayOfWeek(); + disableOptimization(plainDate); disableOptimization(dayOfWeek); }); unsigned long forEpochDaysMillis = runLambda([]() { fakeEpochDays = millis() & 0xffff; - LocalDate localDate = LocalDate::forEpochDays(fakeEpochDays); - disableOptimization(localDate); + PlainDate plainDate = PlainDate::forEpochDays(fakeEpochDays); + disableOptimization(plainDate); }); - printResult(F("LocalDate::dayOfWeek()"), localDateDayOfWeekMillis, + printResult(F("PlainDate::dayOfWeek()"), plainDateDayOfWeekMillis, forEpochDaysMillis); } @@ -265,20 +265,20 @@ static void runLocalDateDaysOfWeek() { // OffsetDateTime::forEpochSeconds() static void runOffsetDateTimeForEpochSeconds() { - unsigned long localDateForDaysMillis = runLambda([]() { + unsigned long plainDateForDaysMillis = runLambda([]() { fakeEpochSeconds = millis() & 0xffff; OffsetDateTime odt = OffsetDateTime::forEpochSeconds( fakeEpochSeconds, TimeOffset()); disableOptimization(odt); }); - printResult(F("OffsetDateTime::forEpochSeconds()"), localDateForDaysMillis, + printResult(F("OffsetDateTime::forEpochSeconds()"), plainDateForDaysMillis, emptyLoopMillis); } // OffsetDateTime::toEpochSeconds() static void runOffsetDateTimeToEpochSeconds() { - unsigned long localDateToEpochDaysMillis = runLambda([]() { + unsigned long plainDateToEpochDaysMillis = runLambda([]() { fakeEpochSeconds = millis() & 0xffff; OffsetDateTime odt = OffsetDateTime::forEpochSeconds( fakeEpochSeconds, TimeOffset()); @@ -292,7 +292,7 @@ static void runOffsetDateTimeToEpochSeconds() { disableOptimization(odt); }); - printResult(F("OffsetDateTime::toEpochSeconds()"), localDateToEpochDaysMillis, + printResult(F("OffsetDateTime::toEpochSeconds()"), plainDateToEpochDaysMillis, forEpochDaysMillis); } @@ -1279,9 +1279,9 @@ void runCompleteRegistrarFindIndexForIdLinear() { void runBenchmarks() { runEmptyLoop(); - runLocalDateForEpochDays(); - runLocalDateToEpochDays(); - runLocalDateDaysOfWeek(); + runPlainDateForEpochDays(); + runPlainDateToEpochDays(); + runPlainDateDaysOfWeek(); runOffsetDateTimeForEpochSeconds(); runOffsetDateTimeToEpochSeconds(); diff --git a/examples/AutoBenchmark/README.md b/examples/AutoBenchmark/README.md index 29f69383c..42b5d3d94 100644 --- a/examples/AutoBenchmark/README.md +++ b/examples/AutoBenchmark/README.md @@ -4,7 +4,7 @@ Here are the results from `AutoBenchmark.ino` for various boards. These results show that integer division and modulus operations are incredibly slow on 8-bit AVR processors. -**Version**: AceTime v3.0.0 +**Version**: AceTime v4.0.0 **NOTE**: This file was auto-generated using `make README.md`. DO NOT EDIT. @@ -12,8 +12,8 @@ slow on 8-bit AVR processors. This program depends on the following libraries: -* [AceTime](https://github.com/bxparks/AceTime) -* [AceRoutine](https://github.com/bxparks/AceRoutine) +- [AceTime](https://github.com/bxparks/AceTime) +- [AceRoutine](https://github.com/bxparks/AceRoutine) ## How to Generate @@ -54,26 +54,26 @@ The CPU times below are given in microseconds. ## CPU Time Changes **v0.8 to v1.4:** -* The CPU time did not change much from +- The CPU time did not change much from **v1.5:** -* No significant changes to CPU time. -* Zone registries (kZoneRegistry, kZoneAndLinkRegistry) are now sorted by zoneId +- No significant changes to CPU time. +- Zone registries (kZoneRegistry, kZoneAndLinkRegistry) are now sorted by zoneId instead of zoneName, and the `ZoneManager::createForZoneId()` will use a binary search, instead of a linear search. This makes it 10-15X faster for ~266 entries. -* The `ZoneManager::createForZoneName()` also converts to a zoneId, then +- The `ZoneManager::createForZoneName()` also converts to a zoneId, then performs a binary search, instead of doing a binary search on the zoneName directly. Even with the extra level of indirection, the `createForZoneName()` is between 1.5-2X faster than the previous version. **v1.6:** -* BasicZoneManager and ExtendedZoneManager can take an optional +- BasicZoneManager and ExtendedZoneManager can take an optional LinkRegistry which will be searched if a zoneId is not found. The `BasicZoneManager::createForZoneId(link)` benchmark shows that if the zoneId is not found, the total search time is roughly double, because the LinkRegistry must be search as a fallback. -* On some compilers, the `BasicZoneManager::createForZoneName(binary)` becames +- On some compilers, the `BasicZoneManager::createForZoneName(binary)` becames slightly slower (~10%?) because the algorithm was moved into the `ace_common::binarySearchByKey()` template function, and the compiler is not able to optimize the resulting function as well as the hand-rolled version. @@ -81,147 +81,153 @@ The CPU times below are given in microseconds. maintenance. **v1.7.2:** -* `SystemClock::clockMillis()` became non-virtual after incorporating +- `SystemClock::clockMillis()` became non-virtual after incorporating AceRoutine v1.3. The sizeof `SystemClockLoop` and `SystemClockCoroutine` decreases 4 bytes on AVR, and 4-8 bytes on 32-bit processors. No signficant changes in CPU time. **v1.7.5:** -* significant changes to size of `ExtendedZoneProcessor` - * 8-bit processors - * increases by 24 bytes on AVR, due adding 1 pointer and 2 +- significant changes to size of `ExtendedZoneProcessor` + - 8-bit processors + - increases by 24 bytes on AVR, due adding 1 pointer and 2 `uint16_t` to MatchingEra - * decreases by 48 bytes on AVR, by disabling + - decreases by 48 bytes on AVR, by disabling `originalTransitionTime` unless `ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG` is enabled. - * 32-bit processors - * increases by 32 bytes on 32-bit processors due to adding + - 32-bit processors + - increases by 32 bytes on 32-bit processors due to adding a pointer and 2 `uint16_t` to MatchingEra - * decreases by 32 bytes on 32-bit processors due to disabling + - decreases by 32 bytes on 32-bit processors due to disabling `originalTransitionTime` in Transition -* Upgrade ESP8266 Core from 2.7.4 to 3.0.2. - * AutoBenchmark indicate that things are a few percentage faster. +- Upgrade ESP8266 Core from 2.7.4 to 3.0.2. + - AutoBenchmark indicate that things are a few percentage faster. **v1.8.0:** -* Remove `sizeof()` Clock classes which were moved to AceTimeClock library. -* No significant changes to excution times of various benchmarks. +- Remove `sizeof()` Clock classes which were moved to AceTimeClock library. +- No significant changes to excution times of various benchmarks. **v1.9.0:** -* Extract `BasicZoneProcessorCache` and `ExtendedZoneProcessorCache` +- Extract `BasicZoneProcessorCache` and `ExtendedZoneProcessorCache` from `BasicZoneManager` and `ExtendedZoneManager`. Remove all pure `virtual` methods from `ZoneManager`, making ZoneManager hierarchy non-polymorphic. - * Saves 1100-1300 of flash on AVR. - * No signficant changes to CPU performance. + - Saves 1100-1300 of flash on AVR. + - No signficant changes to CPU performance. **v1.10.0:** -* Remove support for SAMD21 boards. - * Arduino IDE 1.8.19 with SparkFun SAMD 1.8.6 can no longer upload binaries +- Remove support for SAMD21 boards. + - Arduino IDE 1.8.19 with SparkFun SAMD 1.8.6 can no longer upload binaries to these boards. Something about bossac 1.7.0 not found. -* Upgrade tool chain: - * Arduino IDE from 1.8.13 to 1.8.19 - * Arduino AVR from 1.8.3 to 1.8.4 - * STM32duino from 2.0.0 to 2.2.0 - * ESP32 from 1.0.6 to 2.0.2 - * Teensyduino from 1.55 to 1.56 -* Add benchmarks for `ZonedDateTime::forComponents()`. -* Add support for `fold` parameter in `LocalDateTime`, `OffsetDateTime`, +- Upgrade tool chain: + - Arduino IDE from 1.8.13 to 1.8.19 + - Arduino AVR from 1.8.3 to 1.8.4 + - STM32duino from 2.0.0 to 2.2.0 + - ESP32 from 1.0.6 to 2.0.2 + - Teensyduino from 1.55 to 1.56 +- Add benchmarks for `ZonedDateTime::forComponents()`. +- Add support for `fold` parameter in `PlainDateTime`, `OffsetDateTime`, `ZonedDateTime`, and `ExtendedZoneProcessor`. - * The `ZonedDateTime::forComponents()` can be made much faster using 'fold'. - * We know exactly when we must normalize and when we can avoid + - The `ZonedDateTime::forComponents()` can be made much faster using 'fold'. + - We know exactly when we must normalize and when we can avoid normalization. - * 5X faster on AVR processors when cached, and - * 1.5-3X faster on 32-bit processors. + - 5X faster on AVR processors when cached, and + - 1.5-3X faster on 32-bit processors. **v1.11.0:** -* Upgrade ZoneInfo database so that Links are symbolic links to Zones, instead +- Upgrade ZoneInfo database so that Links are symbolic links to Zones, instead of hard links to Zones. - * No significant changes to CPU benchmarks. + - No significant changes to CPU benchmarks. **v1.11.5** -* Upgrade tool chain - * Arduino CLI from 0.20.2 to 0.27.1 - * Arduino AVR Core from 1.8.4 to 1.8.5 - * STM32duino from 2.2.0 to 2.3.0 - * ESP32 Core from 2.0.2 to 2.0.5 - * Teensyduino from 1.56 to 1.57 -* Upgrade TZDB from 2022b to 2022d +- Upgrade tool chain + - Arduino CLI from 0.20.2 to 0.27.1 + - Arduino AVR Core from 1.8.4 to 1.8.5 + - STM32duino from 2.2.0 to 2.3.0 + - ESP32 Core from 2.0.2 to 2.0.5 + - Teensyduino from 1.56 to 1.57 +- Upgrade TZDB from 2022b to 2022d **v2.0** -* Use `int16_t` year fields. -* Implement adjustable epoch year. -* Upgrade to TZDB 2022f. -* AVR: - * sizeof(LocalDate) increases from 3 to 4 - * sizeof(BasicZoneProcessor) increases from 116 to 122 - * sizeof(ExtendedZoneProcessor) increases from 436 to 468 - * sizeof(TransitionStorage) increases from 340 to 364 - * ZonedDateTime::forEpochSeconds() slower by 5-10% -* ESP8266 - * sizeof(LocalDate) increases from 3 to 4 - * sizeof(BasicZoneProcessor) remains at 164 - * sizeof(ExtendedZoneProcessor) increases from 540 to 588 - * sizeof(TransitionStorage) increases from 420 to 452 - * ZonedDateTime::forEpochSeconds() slower by 0-10% +- Use `int16_t` year fields. +- Implement adjustable epoch year. +- Upgrade to TZDB 2022f. +- AVR: + - sizeof(PlainDate) increases from 3 to 4 + - sizeof(BasicZoneProcessor) increases from 116 to 122 + - sizeof(ExtendedZoneProcessor) increases from 436 to 468 + - sizeof(TransitionStorage) increases from 340 to 364 + - ZonedDateTime::forEpochSeconds() slower by 5-10% +- ESP8266 + - sizeof(PlainDate) increases from 3 to 4 + - sizeof(BasicZoneProcessor) remains at 164 + - sizeof(ExtendedZoneProcessor) increases from 540 to 588 + - sizeof(TransitionStorage) increases from 420 to 452 + - ZonedDateTime::forEpochSeconds() slower by 0-10% **v2.1.1** -* Upgrade to TZDB 2022g. -* Add `ZonedExtra`. -* Unify fat and symbolic links. -* Not much difference in execution times, except: - * `ZonedDateTime::forComponents()` using the `BasicZoneProcessor` +- Upgrade to TZDB 2022g. +- Add `ZonedExtra`. +- Unify fat and symbolic links. +- Not much difference in execution times, except: + - `ZonedDateTime::forComponents()` using the `BasicZoneProcessor` becomes ~50% slower due to the extra work needed to resolve gaps and overlaps. - * `ZonedDateTime::forEpochSeconds()` using `BasicZoneProcessors` remains + - `ZonedDateTime::forEpochSeconds()` using `BasicZoneProcessors` remains unchanged. - * `ExtendedZoneProcessor` is substantially faster on AVR processors. + - `ExtendedZoneProcessor` is substantially faster on AVR processors. Maybe it should be recommended ove `BasicZoneProcessor` even on AVR. **v2.2.0** -* Upgrade tool chain - * Arduino AVR from 1.8.5 to 1.8.6 - * STM32duino from 2.3.0 to 2.4.0 - * ESP8266 from 3.0.2 to 3.1.2 failed, reverted back to 3.0.2 - * ESP32 from 2.0.5 to 2.0.7 -* Add support for Seeed XIAO SAMD21 - * Seeeduino 1.8.3 -* Upgrade to TZDB 2023b +- Upgrade tool chain + - Arduino AVR from 1.8.5 to 1.8.6 + - STM32duino from 2.3.0 to 2.4.0 + - ESP8266 from 3.0.2 to 3.1.2 failed, reverted back to 3.0.2 + - ESP32 from 2.0.5 to 2.0.7 +- Add support for Seeed XIAO SAMD21 + - Seeeduino 1.8.3 +- Upgrade to TZDB 2023b **v2.2.2** -* Upgrade to TZDB 2023c +- Upgrade to TZDB 2023c **v2.2.3** -* Add support for Adafruit ItsyBitsy M4 - * Using Adafruit SAMD Boards 1.7.11 -* Remove Teensy 3.2 - * Nearing end of life. Moved to Tier 2 (should work). -* Upgrade tool chain - * Seeeduino SAMD Boards 1.8.4 - * STM32duino Boards 2.5.0 - * ESP32 Boards 2.0.9 +- Add support for Adafruit ItsyBitsy M4 + - Using Adafruit SAMD Boards 1.7.11 +- Remove Teensy 3.2 + - Nearing end of life. Moved to Tier 2 (should work). +- Upgrade tool chain + - Seeeduino SAMD Boards 1.8.4 + - STM32duino Boards 2.5.0 + - ESP32 Boards 2.0.9 **v2.3.0** -* Add benchmarks for `CompleteZoneProcessor` and related classes -* Replace labels of `BasicZoneManager::createForXxx()` with +- Add benchmarks for `CompleteZoneProcessor` and related classes +- Replace labels of `BasicZoneManager::createForXxx()` with `BasicZoneRegistrar::findIndexForXxx()`, because those are the methods which are actually being tested. **v2.4.0** -* Support %z format. -* Upgrade to TZDB 2024b. -* Upgrade Arduino CLI to 1.1.1 -* Almost no change in execution times. +- Support %z format. +- Upgrade to TZDB 2024b. +- Upgrade Arduino CLI to 1.1.1 +- Almost no change in execution times. + +**v3.0.0** +- Upgrade to TZDB 2025b. + +**v4.0.0** +- Upgrade Arduino CLI to 1.3.1 ## Arduino Nano -* 16MHz ATmega328P -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Arduino AVR Boards 1.8.6 +- 16MHz ATmega328P +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Arduino AVR Boards 1.8.6 ``` Sizes of Objects: -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 5 @@ -273,16 +279,16 @@ CPU: |--------------------------------------------------+----------| | EmptyLoop | 3.000 | |--------------------------------------------------+----------| -| LocalDate::forEpochDays() | 243.000 | -| LocalDate::toEpochDays() | 51.000 | -| LocalDate::dayOfWeek() | 50.000 | +| PlainDate::forEpochDays() | 243.000 | +| PlainDate::toEpochDays() | 51.000 | +| PlainDate::dayOfWeek() | 50.000 | |--------------------------------------------------+----------| -| OffsetDateTime::forEpochSeconds() | 363.000 | -| OffsetDateTime::toEpochSeconds() | 77.000 | +| OffsetDateTime::forEpochSeconds() | 362.000 | +| OffsetDateTime::toEpochSeconds() | 76.000 | |--------------------------------------------------+----------| | ZonedDateTime::toEpochSeconds() | 75.000 | -| ZonedDateTime::toEpochDays() | 62.000 | -| ZonedDateTime::forEpochSeconds(UTC) | 393.000 | +| ZonedDateTime::toEpochDays() | 63.000 | +| ZonedDateTime::forEpochSeconds(UTC) | 394.000 | |--------------------------------------------------+----------| | ZonedDateTime::forEpochSeconds(Basic_nocache) | 1728.000 | | ZonedDateTime::forEpochSeconds(Basic_cached) | 708.000 | @@ -291,29 +297,29 @@ CPU: | ZonedDateTime::forEpochSeconds(Complete_nocache) | -1.000 | | ZonedDateTime::forEpochSeconds(Complete_cached) | -1.000 | |--------------------------------------------------+----------| -| ZonedDateTime::forComponents(Basic_nocache) | 2270.000 | -| ZonedDateTime::forComponents(Basic_cached) | 1254.000 | +| ZonedDateTime::forComponents(Basic_nocache) | 2272.000 | +| ZonedDateTime::forComponents(Basic_cached) | 1256.000 | | ZonedDateTime::forComponents(Extended_nocache) | -1.000 | | ZonedDateTime::forComponents(Extended_cached) | -1.000 | | ZonedDateTime::forComponents(Complete_nocache) | -1.000 | | ZonedDateTime::forComponents(Complete_cached) | -1.000 | |--------------------------------------------------+----------| | ZonedExtra::forEpochSeconds(Basic_nocache) | 1405.000 | -| ZonedExtra::forEpochSeconds(Basic_cached) | 380.000 | +| ZonedExtra::forEpochSeconds(Basic_cached) | 381.000 | | ZonedExtra::forEpochSeconds(Extended_nocache) | -1.000 | | ZonedExtra::forEpochSeconds(Extended_cached) | -1.000 | | ZonedExtra::forEpochSeconds(Complete_nocache) | -1.000 | | ZonedExtra::forEpochSeconds(Complete_cached) | -1.000 | |--------------------------------------------------+----------| | ZonedExtra::forComponents(Basic_nocache) | 2295.000 | -| ZonedExtra::forComponents(Basic_cached) | 1279.000 | +| ZonedExtra::forComponents(Basic_cached) | 1280.000 | | ZonedExtra::forComponents(Extended_nocache) | -1.000 | | ZonedExtra::forComponents(Extended_cached) | -1.000 | | ZonedExtra::forComponents(Complete_nocache) | -1.000 | | ZonedExtra::forComponents(Complete_cached) | -1.000 | |--------------------------------------------------+----------| -| BasicZoneRegistrar::findIndexForName(binary) | 121.000 | -| BasicZoneRegistrar::findIndexForIdBinary() | 48.000 | +| BasicZoneRegistrar::findIndexForName(binary) | 122.000 | +| BasicZoneRegistrar::findIndexForIdBinary() | 49.000 | | BasicZoneRegistrar::findIndexForIdLinear() | 295.000 | |--------------------------------------------------+----------| | ExtendedZoneRegistrar::findIndexForName(binary) | -1.000 | @@ -330,15 +336,15 @@ Iterations_per_run: 1000 ## Sparkfun Pro Micro -* 16 MHz ATmega32U4 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* SparkFun AVR Boards 1.1.13 +- 16 MHz ATmega32U4 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- SparkFun AVR Boards 1.1.13 ``` Sizes of Objects: -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 5 @@ -390,32 +396,32 @@ CPU: |--------------------------------------------------+----------| | EmptyLoop | 4.000 | |--------------------------------------------------+----------| -| LocalDate::forEpochDays() | 244.000 | -| LocalDate::toEpochDays() | 52.000 | -| LocalDate::dayOfWeek() | 49.000 | +| PlainDate::forEpochDays() | 244.000 | +| PlainDate::toEpochDays() | 52.000 | +| PlainDate::dayOfWeek() | 49.000 | |--------------------------------------------------+----------| -| OffsetDateTime::forEpochSeconds() | 364.000 | -| OffsetDateTime::toEpochSeconds() | 77.000 | +| OffsetDateTime::forEpochSeconds() | 363.000 | +| OffsetDateTime::toEpochSeconds() | 76.000 | |--------------------------------------------------+----------| -| ZonedDateTime::toEpochSeconds() | 74.000 | -| ZonedDateTime::toEpochDays() | 64.000 | +| ZonedDateTime::toEpochSeconds() | 73.000 | +| ZonedDateTime::toEpochDays() | 61.000 | | ZonedDateTime::forEpochSeconds(UTC) | 394.000 | |--------------------------------------------------+----------| | ZonedDateTime::forEpochSeconds(Basic_nocache) | 1736.000 | -| ZonedDateTime::forEpochSeconds(Basic_cached) | 711.000 | +| ZonedDateTime::forEpochSeconds(Basic_cached) | 710.000 | | ZonedDateTime::forEpochSeconds(Extended_nocache) | -1.000 | | ZonedDateTime::forEpochSeconds(Extended_cached) | -1.000 | | ZonedDateTime::forEpochSeconds(Complete_nocache) | -1.000 | | ZonedDateTime::forEpochSeconds(Complete_cached) | -1.000 | |--------------------------------------------------+----------| | ZonedDateTime::forComponents(Basic_nocache) | 2281.000 | -| ZonedDateTime::forComponents(Basic_cached) | 1259.000 | +| ZonedDateTime::forComponents(Basic_cached) | 1261.000 | | ZonedDateTime::forComponents(Extended_nocache) | -1.000 | | ZonedDateTime::forComponents(Extended_cached) | -1.000 | | ZonedDateTime::forComponents(Complete_nocache) | -1.000 | | ZonedDateTime::forComponents(Complete_cached) | -1.000 | |--------------------------------------------------+----------| -| ZonedExtra::forEpochSeconds(Basic_nocache) | 1411.000 | +| ZonedExtra::forEpochSeconds(Basic_nocache) | 1410.000 | | ZonedExtra::forEpochSeconds(Basic_cached) | 381.000 | | ZonedExtra::forEpochSeconds(Extended_nocache) | -1.000 | | ZonedExtra::forEpochSeconds(Extended_cached) | -1.000 | @@ -423,15 +429,15 @@ CPU: | ZonedExtra::forEpochSeconds(Complete_cached) | -1.000 | |--------------------------------------------------+----------| | ZonedExtra::forComponents(Basic_nocache) | 2305.000 | -| ZonedExtra::forComponents(Basic_cached) | 1284.000 | +| ZonedExtra::forComponents(Basic_cached) | 1285.000 | | ZonedExtra::forComponents(Extended_nocache) | -1.000 | | ZonedExtra::forComponents(Extended_cached) | -1.000 | | ZonedExtra::forComponents(Complete_nocache) | -1.000 | | ZonedExtra::forComponents(Complete_cached) | -1.000 | |--------------------------------------------------+----------| -| BasicZoneRegistrar::findIndexForName(binary) | 122.000 | -| BasicZoneRegistrar::findIndexForIdBinary() | 49.000 | -| BasicZoneRegistrar::findIndexForIdLinear() | 295.000 | +| BasicZoneRegistrar::findIndexForName(binary) | 120.000 | +| BasicZoneRegistrar::findIndexForIdBinary() | 46.000 | +| BasicZoneRegistrar::findIndexForIdLinear() | 296.000 | |--------------------------------------------------+----------| | ExtendedZoneRegistrar::findIndexForName(binary) | -1.000 | | ExtendedZoneRegistrar::findIndexForIdBinary() | -1.000 | @@ -447,15 +453,15 @@ Iterations_per_run: 1000 ## Seeed Studio XIAO SAMD21 -* SAMD21, 48 MHz ARM Cortex-M0+ -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Seeeduino 1.8.4 +- SAMD21, 48 MHz ARM Cortex-M0+ +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Seeeduino 1.8.4 ``` Sizes of Objects: -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 12 @@ -507,56 +513,56 @@ CPU: |--------------------------------------------------+----------| | EmptyLoop | 1.400 | |--------------------------------------------------+----------| -| LocalDate::forEpochDays() | 13.200 | -| LocalDate::toEpochDays() | 3.800 | -| LocalDate::dayOfWeek() | 6.600 | +| PlainDate::forEpochDays() | 13.200 | +| PlainDate::toEpochDays() | 4.000 | +| PlainDate::dayOfWeek() | 6.400 | |--------------------------------------------------+----------| | OffsetDateTime::forEpochSeconds() | 20.800 | -| OffsetDateTime::toEpochSeconds() | 11.800 | +| OffsetDateTime::toEpochSeconds() | 11.600 | |--------------------------------------------------+----------| -| ZonedDateTime::toEpochSeconds() | 11.800 | -| ZonedDateTime::toEpochDays() | 9.400 | -| ZonedDateTime::forEpochSeconds(UTC) | 24.400 | +| ZonedDateTime::toEpochSeconds() | 11.600 | +| ZonedDateTime::toEpochDays() | 9.800 | +| ZonedDateTime::forEpochSeconds(UTC) | 23.400 | |--------------------------------------------------+----------| -| ZonedDateTime::forEpochSeconds(Basic_nocache) | 219.000 | -| ZonedDateTime::forEpochSeconds(Basic_cached) | 46.000 | +| ZonedDateTime::forEpochSeconds(Basic_nocache) | 218.400 | +| ZonedDateTime::forEpochSeconds(Basic_cached) | 45.000 | | ZonedDateTime::forEpochSeconds(Extended_nocache) | 548.600 | -| ZonedDateTime::forEpochSeconds(Extended_cached) | 56.800 | +| ZonedDateTime::forEpochSeconds(Extended_cached) | 56.000 | | ZonedDateTime::forEpochSeconds(Complete_nocache) | 668.800 | -| ZonedDateTime::forEpochSeconds(Complete_cached) | 56.800 | -|--------------------------------------------------+----------| -| ZonedDateTime::forComponents(Basic_nocache) | 277.600 | -| ZonedDateTime::forComponents(Basic_cached) | 94.800 | -| ZonedDateTime::forComponents(Extended_nocache) | 417.600 | -| ZonedDateTime::forComponents(Extended_cached) | 17.000 | -| ZonedDateTime::forComponents(Complete_nocache) | 538.000 | -| ZonedDateTime::forComponents(Complete_cached) | 16.800 | -|--------------------------------------------------+----------| -| ZonedExtra::forEpochSeconds(Basic_nocache) | 200.800 | -| ZonedExtra::forEpochSeconds(Basic_cached) | 28.000 | -| ZonedExtra::forEpochSeconds(Extended_nocache) | 530.000 | -| ZonedExtra::forEpochSeconds(Extended_cached) | 38.800 | -| ZonedExtra::forEpochSeconds(Complete_nocache) | 650.000 | -| ZonedExtra::forEpochSeconds(Complete_cached) | 38.600 | -|--------------------------------------------------+----------| -| ZonedExtra::forComponents(Basic_nocache) | 281.000 | -| ZonedExtra::forComponents(Basic_cached) | 98.400 | -| ZonedExtra::forComponents(Extended_nocache) | 421.000 | -| ZonedExtra::forComponents(Extended_cached) | 20.600 | -| ZonedExtra::forComponents(Complete_nocache) | 541.600 | -| ZonedExtra::forComponents(Complete_cached) | 20.400 | +| ZonedDateTime::forEpochSeconds(Complete_cached) | 56.000 | +|--------------------------------------------------+----------| +| ZonedDateTime::forComponents(Basic_nocache) | 278.600 | +| ZonedDateTime::forComponents(Basic_cached) | 95.600 | +| ZonedDateTime::forComponents(Extended_nocache) | 418.400 | +| ZonedDateTime::forComponents(Extended_cached) | 17.200 | +| ZonedDateTime::forComponents(Complete_nocache) | 538.800 | +| ZonedDateTime::forComponents(Complete_cached) | 17.200 | +|--------------------------------------------------+----------| +| ZonedExtra::forEpochSeconds(Basic_nocache) | 201.000 | +| ZonedExtra::forEpochSeconds(Basic_cached) | 27.800 | +| ZonedExtra::forEpochSeconds(Extended_nocache) | 531.000 | +| ZonedExtra::forEpochSeconds(Extended_cached) | 39.000 | +| ZonedExtra::forEpochSeconds(Complete_nocache) | 651.000 | +| ZonedExtra::forEpochSeconds(Complete_cached) | 39.000 | +|--------------------------------------------------+----------| +| ZonedExtra::forComponents(Basic_nocache) | 281.800 | +| ZonedExtra::forComponents(Basic_cached) | 99.000 | +| ZonedExtra::forComponents(Extended_nocache) | 421.600 | +| ZonedExtra::forComponents(Extended_cached) | 20.800 | +| ZonedExtra::forComponents(Complete_nocache) | 542.200 | +| ZonedExtra::forComponents(Complete_cached) | 20.600 | |--------------------------------------------------+----------| | BasicZoneRegistrar::findIndexForName(binary) | 16.000 | -| BasicZoneRegistrar::findIndexForIdBinary() | 4.200 | -| BasicZoneRegistrar::findIndexForIdLinear() | 13.600 | +| BasicZoneRegistrar::findIndexForIdBinary() | 4.400 | +| BasicZoneRegistrar::findIndexForIdLinear() | 13.400 | |--------------------------------------------------+----------| | ExtendedZoneRegistrar::findIndexForName(binary) | 16.600 | -| ExtendedZoneRegistrar::findIndexForIdBinary() | 4.400 | -| ExtendedZoneRegistrar::findIndexForIdLinear() | 13.800 | +| ExtendedZoneRegistrar::findIndexForIdBinary() | 4.000 | +| ExtendedZoneRegistrar::findIndexForIdLinear() | 13.200 | |--------------------------------------------------+----------| -| CompleteZoneRegistrar::findIndexForName(binary) | 16.400 | -| CompleteZoneRegistrar::findIndexForIdBinary() | 4.200 | -| CompleteZoneRegistrar::findIndexForIdLinear() | 13.600 | +| CompleteZoneRegistrar::findIndexForName(binary) | 16.200 | +| CompleteZoneRegistrar::findIndexForIdBinary() | 4.000 | +| CompleteZoneRegistrar::findIndexForIdLinear() | 13.000 | +--------------------------------------------------+----------+ Iterations_per_run: 5000 @@ -564,15 +570,15 @@ Iterations_per_run: 5000 ## STM32 Blue Pill -* STM32F103C8, 72 MHz ARM Cortex-M3 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* STM32duino 2.5.0 +- STM32F103C8, 72 MHz ARM Cortex-M3 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- STM32duino 2.5.0 ``` Sizes of Objects: -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 12 @@ -624,56 +630,56 @@ CPU: |--------------------------------------------------+----------| | EmptyLoop | 1.200 | |--------------------------------------------------+----------| -| LocalDate::forEpochDays() | 2.800 | -| LocalDate::toEpochDays() | 1.200 | -| LocalDate::dayOfWeek() | 1.200 | +| PlainDate::forEpochDays() | 2.800 | +| PlainDate::toEpochDays() | 1.000 | +| PlainDate::dayOfWeek() | 1.000 | |--------------------------------------------------+----------| -| OffsetDateTime::forEpochSeconds() | 4.200 | +| OffsetDateTime::forEpochSeconds() | 4.000 | | OffsetDateTime::toEpochSeconds() | 4.800 | |--------------------------------------------------+----------| -| ZonedDateTime::toEpochSeconds() | 5.200 | -| ZonedDateTime::toEpochDays() | 3.600 | -| ZonedDateTime::forEpochSeconds(UTC) | 6.200 | +| ZonedDateTime::toEpochSeconds() | 5.000 | +| ZonedDateTime::toEpochDays() | 3.800 | +| ZonedDateTime::forEpochSeconds(UTC) | 5.600 | |--------------------------------------------------+----------| -| ZonedDateTime::forEpochSeconds(Basic_nocache) | 95.200 | -| ZonedDateTime::forEpochSeconds(Basic_cached) | 12.600 | -| ZonedDateTime::forEpochSeconds(Extended_nocache) | 248.800 | -| ZonedDateTime::forEpochSeconds(Extended_cached) | 17.000 | -| ZonedDateTime::forEpochSeconds(Complete_nocache) | 306.200 | -| ZonedDateTime::forEpochSeconds(Complete_cached) | 17.000 | +| ZonedDateTime::forEpochSeconds(Basic_nocache) | 94.600 | +| ZonedDateTime::forEpochSeconds(Basic_cached) | 11.600 | +| ZonedDateTime::forEpochSeconds(Extended_nocache) | 246.600 | +| ZonedDateTime::forEpochSeconds(Extended_cached) | 16.200 | +| ZonedDateTime::forEpochSeconds(Complete_nocache) | 303.600 | +| ZonedDateTime::forEpochSeconds(Complete_cached) | 16.200 | |--------------------------------------------------+----------| -| ZonedDateTime::forComponents(Basic_nocache) | 118.200 | -| ZonedDateTime::forComponents(Basic_cached) | 37.200 | -| ZonedDateTime::forComponents(Extended_nocache) | 198.000 | -| ZonedDateTime::forComponents(Extended_cached) | 7.600 | -| ZonedDateTime::forComponents(Complete_nocache) | 256.800 | -| ZonedDateTime::forComponents(Complete_cached) | 7.600 | +| ZonedDateTime::forComponents(Basic_nocache) | 118.800 | +| ZonedDateTime::forComponents(Basic_cached) | 37.600 | +| ZonedDateTime::forComponents(Extended_nocache) | 197.200 | +| ZonedDateTime::forComponents(Extended_cached) | 8.000 | +| ZonedDateTime::forComponents(Complete_nocache) | 256.000 | +| ZonedDateTime::forComponents(Complete_cached) | 8.000 | |--------------------------------------------------+----------| | ZonedExtra::forEpochSeconds(Basic_nocache) | 92.600 | | ZonedExtra::forEpochSeconds(Basic_cached) | 9.200 | -| ZonedExtra::forEpochSeconds(Extended_nocache) | 245.800 | +| ZonedExtra::forEpochSeconds(Extended_nocache) | 244.000 | | ZonedExtra::forEpochSeconds(Extended_cached) | 13.800 | -| ZonedExtra::forEpochSeconds(Complete_nocache) | 303.000 | +| ZonedExtra::forEpochSeconds(Complete_nocache) | 301.200 | | ZonedExtra::forEpochSeconds(Complete_cached) | 13.800 | |--------------------------------------------------+----------| -| ZonedExtra::forComponents(Basic_nocache) | 119.000 | -| ZonedExtra::forComponents(Basic_cached) | 38.000 | -| ZonedExtra::forComponents(Extended_nocache) | 198.800 | -| ZonedExtra::forComponents(Extended_cached) | 8.600 | -| ZonedExtra::forComponents(Complete_nocache) | 257.800 | -| ZonedExtra::forComponents(Complete_cached) | 8.400 | +| ZonedExtra::forComponents(Basic_nocache) | 119.800 | +| ZonedExtra::forComponents(Basic_cached) | 38.200 | +| ZonedExtra::forComponents(Extended_nocache) | 198.000 | +| ZonedExtra::forComponents(Extended_cached) | 8.800 | +| ZonedExtra::forComponents(Complete_nocache) | 257.000 | +| ZonedExtra::forComponents(Complete_cached) | 8.800 | |--------------------------------------------------+----------| | BasicZoneRegistrar::findIndexForName(binary) | 12.400 | -| BasicZoneRegistrar::findIndexForIdBinary() | 2.400 | -| BasicZoneRegistrar::findIndexForIdLinear() | 15.200 | +| BasicZoneRegistrar::findIndexForIdBinary() | 2.600 | +| BasicZoneRegistrar::findIndexForIdLinear() | 16.000 | |--------------------------------------------------+----------| -| ExtendedZoneRegistrar::findIndexForName(binary) | 12.800 | +| ExtendedZoneRegistrar::findIndexForName(binary) | 12.600 | | ExtendedZoneRegistrar::findIndexForIdBinary() | 2.600 | -| ExtendedZoneRegistrar::findIndexForIdLinear() | 15.600 | +| ExtendedZoneRegistrar::findIndexForIdLinear() | 16.200 | |--------------------------------------------------+----------| | CompleteZoneRegistrar::findIndexForName(binary) | 13.000 | -| CompleteZoneRegistrar::findIndexForIdBinary() | 2.600 | -| CompleteZoneRegistrar::findIndexForIdLinear() | 15.400 | +| CompleteZoneRegistrar::findIndexForIdBinary() | 2.200 | +| CompleteZoneRegistrar::findIndexForIdLinear() | 16.000 | +--------------------------------------------------+----------+ Iterations_per_run: 5000 @@ -681,15 +687,15 @@ Iterations_per_run: 5000 ## Adafruit ItsyBitsy M4 SAMD51 -* SAMD51, 120 MHz ARM Cortex-M4 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Adafruit SAMD 1.7.11 +- SAMD51, 120 MHz ARM Cortex-M4 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Adafruit SAMD 1.7.11 ``` Sizes of Objects: -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 12 @@ -741,56 +747,56 @@ CPU: |--------------------------------------------------+----------| | EmptyLoop | 0.400 | |--------------------------------------------------+----------| -| LocalDate::forEpochDays() | 1.400 | -| LocalDate::toEpochDays() | 0.600 | -| LocalDate::dayOfWeek() | 0.800 | +| PlainDate::forEpochDays() | 1.400 | +| PlainDate::toEpochDays() | 0.600 | +| PlainDate::dayOfWeek() | 0.800 | |--------------------------------------------------+----------| | OffsetDateTime::forEpochSeconds() | 2.000 | -| OffsetDateTime::toEpochSeconds() | 2.200 | +| OffsetDateTime::toEpochSeconds() | 2.400 | |--------------------------------------------------+----------| | ZonedDateTime::toEpochSeconds() | 2.400 | -| ZonedDateTime::toEpochDays() | 1.800 | -| ZonedDateTime::forEpochSeconds(UTC) | 3.000 | -|--------------------------------------------------+----------| -| ZonedDateTime::forEpochSeconds(Basic_nocache) | 42.800 | -| ZonedDateTime::forEpochSeconds(Basic_cached) | 6.200 | -| ZonedDateTime::forEpochSeconds(Extended_nocache) | 110.600 | -| ZonedDateTime::forEpochSeconds(Extended_cached) | 8.000 | -| ZonedDateTime::forEpochSeconds(Complete_nocache) | 135.400 | -| ZonedDateTime::forEpochSeconds(Complete_cached) | 8.000 | -|--------------------------------------------------+----------| -| ZonedDateTime::forComponents(Basic_nocache) | 54.600 | -| ZonedDateTime::forComponents(Basic_cached) | 17.800 | +| ZonedDateTime::toEpochDays() | 1.600 | +| ZonedDateTime::forEpochSeconds(UTC) | 2.800 | +|--------------------------------------------------+----------| +| ZonedDateTime::forEpochSeconds(Basic_nocache) | 42.600 | +| ZonedDateTime::forEpochSeconds(Basic_cached) | 6.000 | +| ZonedDateTime::forEpochSeconds(Extended_nocache) | 110.400 | +| ZonedDateTime::forEpochSeconds(Extended_cached) | 7.800 | +| ZonedDateTime::forEpochSeconds(Complete_nocache) | 134.400 | +| ZonedDateTime::forEpochSeconds(Complete_cached) | 7.800 | +|--------------------------------------------------+----------| +| ZonedDateTime::forComponents(Basic_nocache) | 54.200 | +| ZonedDateTime::forComponents(Basic_cached) | 18.000 | | ZonedDateTime::forComponents(Extended_nocache) | 88.800 | | ZonedDateTime::forComponents(Extended_cached) | 3.800 | | ZonedDateTime::forComponents(Complete_nocache) | 112.400 | -| ZonedDateTime::forComponents(Complete_cached) | 3.600 | +| ZonedDateTime::forComponents(Complete_cached) | 3.800 | |--------------------------------------------------+----------| -| ZonedExtra::forEpochSeconds(Basic_nocache) | 40.200 | +| ZonedExtra::forEpochSeconds(Basic_nocache) | 39.600 | | ZonedExtra::forEpochSeconds(Basic_cached) | 4.400 | -| ZonedExtra::forEpochSeconds(Extended_nocache) | 109.000 | +| ZonedExtra::forEpochSeconds(Extended_nocache) | 108.200 | | ZonedExtra::forEpochSeconds(Extended_cached) | 6.400 | -| ZonedExtra::forEpochSeconds(Complete_nocache) | 132.000 | +| ZonedExtra::forEpochSeconds(Complete_nocache) | 131.200 | | ZonedExtra::forEpochSeconds(Complete_cached) | 6.400 | |--------------------------------------------------+----------| -| ZonedExtra::forComponents(Basic_nocache) | 54.400 | -| ZonedExtra::forComponents(Basic_cached) | 18.600 | -| ZonedExtra::forComponents(Extended_nocache) | 88.400 | -| ZonedExtra::forComponents(Extended_cached) | 3.800 | -| ZonedExtra::forComponents(Complete_nocache) | 112.000 | -| ZonedExtra::forComponents(Complete_cached) | 3.800 | +| ZonedExtra::forComponents(Basic_nocache) | 54.600 | +| ZonedExtra::forComponents(Basic_cached) | 18.400 | +| ZonedExtra::forComponents(Extended_nocache) | 88.000 | +| ZonedExtra::forComponents(Extended_cached) | 4.000 | +| ZonedExtra::forComponents(Complete_nocache) | 112.400 | +| ZonedExtra::forComponents(Complete_cached) | 4.000 | |--------------------------------------------------+----------| -| BasicZoneRegistrar::findIndexForName(binary) | 4.800 | +| BasicZoneRegistrar::findIndexForName(binary) | 4.600 | | BasicZoneRegistrar::findIndexForIdBinary() | 1.400 | | BasicZoneRegistrar::findIndexForIdLinear() | 4.000 | |--------------------------------------------------+----------| -| ExtendedZoneRegistrar::findIndexForName(binary) | 5.000 | -| ExtendedZoneRegistrar::findIndexForIdBinary() | 1.200 | +| ExtendedZoneRegistrar::findIndexForName(binary) | 4.600 | +| ExtendedZoneRegistrar::findIndexForIdBinary() | 1.400 | | ExtendedZoneRegistrar::findIndexForIdLinear() | 4.000 | |--------------------------------------------------+----------| -| CompleteZoneRegistrar::findIndexForName(binary) | 5.000 | -| CompleteZoneRegistrar::findIndexForIdBinary() | 1.200 | -| CompleteZoneRegistrar::findIndexForIdLinear() | 3.800 | +| CompleteZoneRegistrar::findIndexForName(binary) | 4.600 | +| CompleteZoneRegistrar::findIndexForIdBinary() | 1.400 | +| CompleteZoneRegistrar::findIndexForIdLinear() | 4.000 | +--------------------------------------------------+----------+ Iterations_per_run: 5000 @@ -798,15 +804,15 @@ Iterations_per_run: 5000 ## ESP8266 -* NodeMCU 1.0 clone, 80MHz ESP8266 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* ESP8266 Boards 3.0.2 +- NodeMCU 1.0 clone, 80MHz ESP8266 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- ESP8266 Boards 3.0.2 ``` Sizes of Objects: -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 12 @@ -858,56 +864,56 @@ CPU: |--------------------------------------------------+----------| | EmptyLoop | 5.000 | |--------------------------------------------------+----------| -| LocalDate::forEpochDays() | 7.000 | -| LocalDate::toEpochDays() | 3.500 | -| LocalDate::dayOfWeek() | 3.500 | +| PlainDate::forEpochDays() | 7.000 | +| PlainDate::toEpochDays() | 3.500 | +| PlainDate::dayOfWeek() | 3.500 | |--------------------------------------------------+----------| | OffsetDateTime::forEpochSeconds() | 12.500 | | OffsetDateTime::toEpochSeconds() | 7.000 | |--------------------------------------------------+----------| -| ZonedDateTime::toEpochSeconds() | 6.500 | -| ZonedDateTime::toEpochDays() | 5.000 | +| ZonedDateTime::toEpochSeconds() | 7.500 | +| ZonedDateTime::toEpochDays() | 6.000 | | ZonedDateTime::forEpochSeconds(UTC) | 14.000 | |--------------------------------------------------+----------| -| ZonedDateTime::forEpochSeconds(Basic_nocache) | 146.000 | +| ZonedDateTime::forEpochSeconds(Basic_nocache) | 145.500 | | ZonedDateTime::forEpochSeconds(Basic_cached) | 21.500 | -| ZonedDateTime::forEpochSeconds(Extended_nocache) | 364.000 | +| ZonedDateTime::forEpochSeconds(Extended_nocache) | 357.500 | | ZonedDateTime::forEpochSeconds(Extended_cached) | 28.000 | -| ZonedDateTime::forEpochSeconds(Complete_nocache) | 447.000 | -| ZonedDateTime::forEpochSeconds(Complete_cached) | 28.000 | +| ZonedDateTime::forEpochSeconds(Complete_nocache) | 421.500 | +| ZonedDateTime::forEpochSeconds(Complete_cached) | 27.500 | |--------------------------------------------------+----------| -| ZonedDateTime::forComponents(Basic_nocache) | 163.500 | +| ZonedDateTime::forComponents(Basic_nocache) | 163.000 | | ZonedDateTime::forComponents(Basic_cached) | 45.500 | -| ZonedDateTime::forComponents(Extended_nocache) | 273.000 | -| ZonedDateTime::forComponents(Extended_cached) | 2.500 | -| ZonedDateTime::forComponents(Complete_nocache) | 417.000 | -| ZonedDateTime::forComponents(Complete_cached) | 49.500 | -|--------------------------------------------------+----------| -| ZonedExtra::forEpochSeconds(Basic_nocache) | 139.500 | -| ZonedExtra::forEpochSeconds(Basic_cached) | 11.000 | -| ZonedExtra::forEpochSeconds(Extended_nocache) | 329.500 | +| ZonedDateTime::forComponents(Extended_nocache) | 272.500 | +| ZonedDateTime::forComponents(Extended_cached) | 2.000 | +| ZonedDateTime::forComponents(Complete_nocache) | 427.000 | +| ZonedDateTime::forComponents(Complete_cached) | 67.500 | +|--------------------------------------------------+----------| +| ZonedExtra::forEpochSeconds(Basic_nocache) | 139.000 | +| ZonedExtra::forEpochSeconds(Basic_cached) | 10.500 | +| ZonedExtra::forEpochSeconds(Extended_nocache) | 329.000 | | ZonedExtra::forEpochSeconds(Extended_cached) | 17.500 | -| ZonedExtra::forEpochSeconds(Complete_nocache) | 436.500 | +| ZonedExtra::forEpochSeconds(Complete_nocache) | 410.500 | | ZonedExtra::forEpochSeconds(Complete_cached) | 17.500 | |--------------------------------------------------+----------| -| ZonedExtra::forComponents(Basic_nocache) | 166.500 | +| ZonedExtra::forComponents(Basic_nocache) | 165.500 | | ZonedExtra::forComponents(Basic_cached) | 48.000 | -| ZonedExtra::forComponents(Extended_nocache) | 252.000 | +| ZonedExtra::forComponents(Extended_nocache) | 251.000 | | ZonedExtra::forComponents(Extended_cached) | 5.000 | -| ZonedExtra::forComponents(Complete_nocache) | 348.500 | +| ZonedExtra::forComponents(Complete_nocache) | 334.500 | | ZonedExtra::forComponents(Complete_cached) | 5.000 | |--------------------------------------------------+----------| -| BasicZoneRegistrar::findIndexForName(binary) | 17.500 | -| BasicZoneRegistrar::findIndexForIdBinary() | 7.000 | +| BasicZoneRegistrar::findIndexForName(binary) | 18.000 | +| BasicZoneRegistrar::findIndexForIdBinary() | 6.000 | | BasicZoneRegistrar::findIndexForIdLinear() | 42.500 | |--------------------------------------------------+----------| | ExtendedZoneRegistrar::findIndexForName(binary) | 18.500 | -| ExtendedZoneRegistrar::findIndexForIdBinary() | 6.500 | -| ExtendedZoneRegistrar::findIndexForIdLinear() | 42.500 | +| ExtendedZoneRegistrar::findIndexForIdBinary() | 6.000 | +| ExtendedZoneRegistrar::findIndexForIdLinear() | 45.500 | |--------------------------------------------------+----------| | CompleteZoneRegistrar::findIndexForName(binary) | 19.000 | | CompleteZoneRegistrar::findIndexForIdBinary() | 7.000 | -| CompleteZoneRegistrar::findIndexForIdLinear() | 42.500 | +| CompleteZoneRegistrar::findIndexForIdLinear() | 43.000 | +--------------------------------------------------+----------+ Iterations_per_run: 2000 @@ -915,15 +921,15 @@ Iterations_per_run: 2000 ## ESP32 -* ESP32-01 Dev Board, 240 MHz Tensilica LX6 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* ESP32 Boards 2.0.9 +- ESP32-01 Dev Board, 240 MHz Tensilica LX6 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- ESP32 Boards 2.0.9 ``` Sizes of Objects: -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 12 @@ -975,56 +981,56 @@ CPU: |--------------------------------------------------+----------| | EmptyLoop | 1.200 | |--------------------------------------------------+----------| -| LocalDate::forEpochDays() | 0.800 | -| LocalDate::toEpochDays() | 0.300 | -| LocalDate::dayOfWeek() | 0.400 | +| PlainDate::forEpochDays() | 0.750 | +| PlainDate::toEpochDays() | 0.350 | +| PlainDate::dayOfWeek() | 0.450 | |--------------------------------------------------+----------| | OffsetDateTime::forEpochSeconds() | 1.300 | | OffsetDateTime::toEpochSeconds() | 1.500 | |--------------------------------------------------+----------| -| ZonedDateTime::toEpochSeconds() | 1.300 | -| ZonedDateTime::toEpochDays() | 1.150 | -| ZonedDateTime::forEpochSeconds(UTC) | 2.000 | +| ZonedDateTime::toEpochSeconds() | 1.350 | +| ZonedDateTime::toEpochDays() | 1.100 | +| ZonedDateTime::forEpochSeconds(UTC) | 1.950 | |--------------------------------------------------+----------| -| ZonedDateTime::forEpochSeconds(Basic_nocache) | 23.200 | +| ZonedDateTime::forEpochSeconds(Basic_nocache) | 23.250 | | ZonedDateTime::forEpochSeconds(Basic_cached) | 2.350 | | ZonedDateTime::forEpochSeconds(Extended_nocache) | 69.250 | | ZonedDateTime::forEpochSeconds(Extended_cached) | 4.000 | | ZonedDateTime::forEpochSeconds(Complete_nocache) | 75.000 | | ZonedDateTime::forEpochSeconds(Complete_cached) | 4.000 | |--------------------------------------------------+----------| -| ZonedDateTime::forComponents(Basic_nocache) | 29.800 | -| ZonedDateTime::forComponents(Basic_cached) | 9.650 | -| ZonedDateTime::forComponents(Extended_nocache) | 55.850 | -| ZonedDateTime::forComponents(Extended_cached) | 1.000 | -| ZonedDateTime::forComponents(Complete_nocache) | 61.850 | -| ZonedDateTime::forComponents(Complete_cached) | 1.050 | +| ZonedDateTime::forComponents(Basic_nocache) | 29.900 | +| ZonedDateTime::forComponents(Basic_cached) | 9.700 | +| ZonedDateTime::forComponents(Extended_nocache) | 55.950 | +| ZonedDateTime::forComponents(Extended_cached) | 1.150 | +| ZonedDateTime::forComponents(Complete_nocache) | 61.950 | +| ZonedDateTime::forComponents(Complete_cached) | 1.150 | |--------------------------------------------------+----------| -| ZonedExtra::forEpochSeconds(Basic_nocache) | 23.100 | +| ZonedExtra::forEpochSeconds(Basic_nocache) | 23.150 | | ZonedExtra::forEpochSeconds(Basic_cached) | 1.550 | -| ZonedExtra::forEpochSeconds(Extended_nocache) | 68.250 | +| ZonedExtra::forEpochSeconds(Extended_nocache) | 68.200 | | ZonedExtra::forEpochSeconds(Extended_cached) | 3.000 | -| ZonedExtra::forEpochSeconds(Complete_nocache) | 79.350 | +| ZonedExtra::forEpochSeconds(Complete_nocache) | 77.550 | | ZonedExtra::forEpochSeconds(Complete_cached) | 3.000 | |--------------------------------------------------+----------| -| ZonedExtra::forComponents(Basic_nocache) | 37.200 | +| ZonedExtra::forComponents(Basic_nocache) | 37.250 | | ZonedExtra::forComponents(Basic_cached) | 9.950 | -| ZonedExtra::forComponents(Extended_nocache) | 56.100 | -| ZonedExtra::forComponents(Extended_cached) | 1.250 | -| ZonedExtra::forComponents(Complete_nocache) | 63.900 | -| ZonedExtra::forComponents(Complete_cached) | 1.250 | +| ZonedExtra::forComponents(Extended_nocache) | 56.150 | +| ZonedExtra::forComponents(Extended_cached) | 1.300 | +| ZonedExtra::forComponents(Complete_nocache) | 65.700 | +| ZonedExtra::forComponents(Complete_cached) | 1.300 | |--------------------------------------------------+----------| -| BasicZoneRegistrar::findIndexForName(binary) | 3.050 | -| BasicZoneRegistrar::findIndexForIdBinary() | 0.700 | +| BasicZoneRegistrar::findIndexForName(binary) | 3.000 | +| BasicZoneRegistrar::findIndexForIdBinary() | 0.750 | | BasicZoneRegistrar::findIndexForIdLinear() | 2.700 | |--------------------------------------------------+----------| | ExtendedZoneRegistrar::findIndexForName(binary) | 3.000 | | ExtendedZoneRegistrar::findIndexForIdBinary() | 0.700 | | ExtendedZoneRegistrar::findIndexForIdLinear() | 2.750 | |--------------------------------------------------+----------| -| CompleteZoneRegistrar::findIndexForName(binary) | 3.050 | -| CompleteZoneRegistrar::findIndexForIdBinary() | 0.650 | -| CompleteZoneRegistrar::findIndexForIdLinear() | 2.900 | +| CompleteZoneRegistrar::findIndexForName(binary) | 3.100 | +| CompleteZoneRegistrar::findIndexForIdBinary() | 0.700 | +| CompleteZoneRegistrar::findIndexForIdLinear() | 2.800 | +--------------------------------------------------+----------+ Iterations_per_run: 20000 diff --git a/examples/AutoBenchmark/esp32.txt b/examples/AutoBenchmark/esp32.txt index 40b1910eb..03d4e85df 100644 --- a/examples/AutoBenchmark/esp32.txt +++ b/examples/AutoBenchmark/esp32.txt @@ -1,7 +1,7 @@ SIZEOF -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 12 @@ -48,46 +48,46 @@ Complete: sizeof(CompleteZoneProcessor::MatchingEra): 44 BENCHMARKS EmptyLoop 1.200 -LocalDate::forEpochDays() 0.800 -LocalDate::toEpochDays() 0.300 -LocalDate::dayOfWeek() 0.400 +PlainDate::forEpochDays() 0.750 +PlainDate::toEpochDays() 0.350 +PlainDate::dayOfWeek() 0.450 OffsetDateTime::forEpochSeconds() 1.300 OffsetDateTime::toEpochSeconds() 1.500 -ZonedDateTime::toEpochSeconds() 1.300 -ZonedDateTime::toEpochDays() 1.150 -ZonedDateTime::forEpochSeconds(UTC) 2.000 -ZonedDateTime::forEpochSeconds(Basic_nocache) 23.200 +ZonedDateTime::toEpochSeconds() 1.350 +ZonedDateTime::toEpochDays() 1.100 +ZonedDateTime::forEpochSeconds(UTC) 1.950 +ZonedDateTime::forEpochSeconds(Basic_nocache) 23.250 ZonedDateTime::forEpochSeconds(Basic_cached) 2.350 ZonedDateTime::forEpochSeconds(Extended_nocache) 69.250 ZonedDateTime::forEpochSeconds(Extended_cached) 4.000 ZonedDateTime::forEpochSeconds(Complete_nocache) 75.000 ZonedDateTime::forEpochSeconds(Complete_cached) 4.000 -ZonedDateTime::forComponents(Basic_nocache) 29.800 -ZonedDateTime::forComponents(Basic_cached) 9.650 -ZonedDateTime::forComponents(Extended_nocache) 55.850 -ZonedDateTime::forComponents(Extended_cached) 1.000 -ZonedDateTime::forComponents(Complete_nocache) 61.850 -ZonedDateTime::forComponents(Complete_cached) 1.050 -ZonedExtra::forEpochSeconds(Basic_nocache) 23.100 +ZonedDateTime::forComponents(Basic_nocache) 29.900 +ZonedDateTime::forComponents(Basic_cached) 9.700 +ZonedDateTime::forComponents(Extended_nocache) 55.950 +ZonedDateTime::forComponents(Extended_cached) 1.150 +ZonedDateTime::forComponents(Complete_nocache) 61.950 +ZonedDateTime::forComponents(Complete_cached) 1.150 +ZonedExtra::forEpochSeconds(Basic_nocache) 23.150 ZonedExtra::forEpochSeconds(Basic_cached) 1.550 -ZonedExtra::forEpochSeconds(Extended_nocache) 68.250 +ZonedExtra::forEpochSeconds(Extended_nocache) 68.200 ZonedExtra::forEpochSeconds(Extended_cached) 3.000 -ZonedExtra::forEpochSeconds(Complete_nocache) 79.350 +ZonedExtra::forEpochSeconds(Complete_nocache) 77.550 ZonedExtra::forEpochSeconds(Complete_cached) 3.000 -ZonedExtra::forComponents(Basic_nocache) 37.200 +ZonedExtra::forComponents(Basic_nocache) 37.250 ZonedExtra::forComponents(Basic_cached) 9.950 -ZonedExtra::forComponents(Extended_nocache) 56.100 -ZonedExtra::forComponents(Extended_cached) 1.250 -ZonedExtra::forComponents(Complete_nocache) 63.900 -ZonedExtra::forComponents(Complete_cached) 1.250 -BasicZoneRegistrar::findIndexForName(binary) 3.050 -BasicZoneRegistrar::findIndexForIdBinary() 0.700 +ZonedExtra::forComponents(Extended_nocache) 56.150 +ZonedExtra::forComponents(Extended_cached) 1.300 +ZonedExtra::forComponents(Complete_nocache) 65.700 +ZonedExtra::forComponents(Complete_cached) 1.300 +BasicZoneRegistrar::findIndexForName(binary) 3.000 +BasicZoneRegistrar::findIndexForIdBinary() 0.750 BasicZoneRegistrar::findIndexForIdLinear() 2.700 ExtendedZoneRegistrar::findIndexForName(binary) 3.000 ExtendedZoneRegistrar::findIndexForIdBinary() 0.700 ExtendedZoneRegistrar::findIndexForIdLinear() 2.750 -CompleteZoneRegistrar::findIndexForName(binary) 3.050 -CompleteZoneRegistrar::findIndexForIdBinary() 0.650 -CompleteZoneRegistrar::findIndexForIdLinear() 2.900 +CompleteZoneRegistrar::findIndexForName(binary) 3.100 +CompleteZoneRegistrar::findIndexForIdBinary() 0.700 +CompleteZoneRegistrar::findIndexForIdLinear() 2.800 Iterations_per_run 20000 END diff --git a/examples/AutoBenchmark/esp8266.txt b/examples/AutoBenchmark/esp8266.txt index e8da1307c..fa8933e80 100644 --- a/examples/AutoBenchmark/esp8266.txt +++ b/examples/AutoBenchmark/esp8266.txt @@ -1,7 +1,7 @@ SIZEOF -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 12 @@ -48,46 +48,46 @@ Complete: sizeof(CompleteZoneProcessor::MatchingEra): 44 BENCHMARKS EmptyLoop 5.000 -LocalDate::forEpochDays() 7.000 -LocalDate::toEpochDays() 3.500 -LocalDate::dayOfWeek() 3.500 +PlainDate::forEpochDays() 7.000 +PlainDate::toEpochDays() 3.500 +PlainDate::dayOfWeek() 3.500 OffsetDateTime::forEpochSeconds() 12.500 OffsetDateTime::toEpochSeconds() 7.000 -ZonedDateTime::toEpochSeconds() 6.500 -ZonedDateTime::toEpochDays() 5.000 +ZonedDateTime::toEpochSeconds() 7.500 +ZonedDateTime::toEpochDays() 6.000 ZonedDateTime::forEpochSeconds(UTC) 14.000 -ZonedDateTime::forEpochSeconds(Basic_nocache) 146.000 +ZonedDateTime::forEpochSeconds(Basic_nocache) 145.500 ZonedDateTime::forEpochSeconds(Basic_cached) 21.500 -ZonedDateTime::forEpochSeconds(Extended_nocache) 364.000 +ZonedDateTime::forEpochSeconds(Extended_nocache) 357.500 ZonedDateTime::forEpochSeconds(Extended_cached) 28.000 -ZonedDateTime::forEpochSeconds(Complete_nocache) 447.000 -ZonedDateTime::forEpochSeconds(Complete_cached) 28.000 -ZonedDateTime::forComponents(Basic_nocache) 163.500 +ZonedDateTime::forEpochSeconds(Complete_nocache) 421.500 +ZonedDateTime::forEpochSeconds(Complete_cached) 27.500 +ZonedDateTime::forComponents(Basic_nocache) 163.000 ZonedDateTime::forComponents(Basic_cached) 45.500 -ZonedDateTime::forComponents(Extended_nocache) 273.000 -ZonedDateTime::forComponents(Extended_cached) 2.500 -ZonedDateTime::forComponents(Complete_nocache) 417.000 -ZonedDateTime::forComponents(Complete_cached) 49.500 -ZonedExtra::forEpochSeconds(Basic_nocache) 139.500 -ZonedExtra::forEpochSeconds(Basic_cached) 11.000 -ZonedExtra::forEpochSeconds(Extended_nocache) 329.500 +ZonedDateTime::forComponents(Extended_nocache) 272.500 +ZonedDateTime::forComponents(Extended_cached) 2.000 +ZonedDateTime::forComponents(Complete_nocache) 427.000 +ZonedDateTime::forComponents(Complete_cached) 67.500 +ZonedExtra::forEpochSeconds(Basic_nocache) 139.000 +ZonedExtra::forEpochSeconds(Basic_cached) 10.500 +ZonedExtra::forEpochSeconds(Extended_nocache) 329.000 ZonedExtra::forEpochSeconds(Extended_cached) 17.500 -ZonedExtra::forEpochSeconds(Complete_nocache) 436.500 +ZonedExtra::forEpochSeconds(Complete_nocache) 410.500 ZonedExtra::forEpochSeconds(Complete_cached) 17.500 -ZonedExtra::forComponents(Basic_nocache) 166.500 +ZonedExtra::forComponents(Basic_nocache) 165.500 ZonedExtra::forComponents(Basic_cached) 48.000 -ZonedExtra::forComponents(Extended_nocache) 252.000 +ZonedExtra::forComponents(Extended_nocache) 251.000 ZonedExtra::forComponents(Extended_cached) 5.000 -ZonedExtra::forComponents(Complete_nocache) 348.500 +ZonedExtra::forComponents(Complete_nocache) 334.500 ZonedExtra::forComponents(Complete_cached) 5.000 -BasicZoneRegistrar::findIndexForName(binary) 17.500 -BasicZoneRegistrar::findIndexForIdBinary() 7.000 +BasicZoneRegistrar::findIndexForName(binary) 18.000 +BasicZoneRegistrar::findIndexForIdBinary() 6.000 BasicZoneRegistrar::findIndexForIdLinear() 42.500 ExtendedZoneRegistrar::findIndexForName(binary) 18.500 -ExtendedZoneRegistrar::findIndexForIdBinary() 6.500 -ExtendedZoneRegistrar::findIndexForIdLinear() 42.500 +ExtendedZoneRegistrar::findIndexForIdBinary() 6.000 +ExtendedZoneRegistrar::findIndexForIdLinear() 45.500 CompleteZoneRegistrar::findIndexForName(binary) 19.000 CompleteZoneRegistrar::findIndexForIdBinary() 7.000 -CompleteZoneRegistrar::findIndexForIdLinear() 42.500 +CompleteZoneRegistrar::findIndexForIdLinear() 43.000 Iterations_per_run 2000 END diff --git a/examples/AutoBenchmark/generate_readme.py b/examples/AutoBenchmark/generate_readme.py index c08beecc7..dd68a64d3 100755 --- a/examples/AutoBenchmark/generate_readme.py +++ b/examples/AutoBenchmark/generate_readme.py @@ -28,7 +28,7 @@ These results show that integer division and modulus operations are incredibly slow on 8-bit AVR processors. -**Version**: AceTime v3.0.0 +**Version**: AceTime v4.0.0 **NOTE**: This file was auto-generated using `make README.md`. DO NOT EDIT. @@ -36,8 +36,8 @@ This program depends on the following libraries: -* [AceTime](https://github.com/bxparks/AceTime) -* [AceRoutine](https://github.com/bxparks/AceRoutine) +- [AceTime](https://github.com/bxparks/AceTime) +- [AceRoutine](https://github.com/bxparks/AceRoutine) ## How to Generate @@ -78,26 +78,26 @@ ## CPU Time Changes **v0.8 to v1.4:** -* The CPU time did not change much from +- The CPU time did not change much from **v1.5:** -* No significant changes to CPU time. -* Zone registries (kZoneRegistry, kZoneAndLinkRegistry) are now sorted by zoneId +- No significant changes to CPU time. +- Zone registries (kZoneRegistry, kZoneAndLinkRegistry) are now sorted by zoneId instead of zoneName, and the `ZoneManager::createForZoneId()` will use a binary search, instead of a linear search. This makes it 10-15X faster for ~266 entries. -* The `ZoneManager::createForZoneName()` also converts to a zoneId, then +- The `ZoneManager::createForZoneName()` also converts to a zoneId, then performs a binary search, instead of doing a binary search on the zoneName directly. Even with the extra level of indirection, the `createForZoneName()` is between 1.5-2X faster than the previous version. **v1.6:** -* BasicZoneManager and ExtendedZoneManager can take an optional +- BasicZoneManager and ExtendedZoneManager can take an optional LinkRegistry which will be searched if a zoneId is not found. The `BasicZoneManager::createForZoneId(link)` benchmark shows that if the zoneId is not found, the total search time is roughly double, because the LinkRegistry must be search as a fallback. -* On some compilers, the `BasicZoneManager::createForZoneName(binary)` becames +- On some compilers, the `BasicZoneManager::createForZoneName(binary)` becames slightly slower (~10%?) because the algorithm was moved into the `ace_common::binarySearchByKey()` template function, and the compiler is not able to optimize the resulting function as well as the hand-rolled version. @@ -105,141 +105,147 @@ maintenance. **v1.7.2:** -* `SystemClock::clockMillis()` became non-virtual after incorporating +- `SystemClock::clockMillis()` became non-virtual after incorporating AceRoutine v1.3. The sizeof `SystemClockLoop` and `SystemClockCoroutine` decreases 4 bytes on AVR, and 4-8 bytes on 32-bit processors. No signficant changes in CPU time. **v1.7.5:** -* significant changes to size of `ExtendedZoneProcessor` - * 8-bit processors - * increases by 24 bytes on AVR, due adding 1 pointer and 2 +- significant changes to size of `ExtendedZoneProcessor` + - 8-bit processors + - increases by 24 bytes on AVR, due adding 1 pointer and 2 `uint16_t` to MatchingEra - * decreases by 48 bytes on AVR, by disabling + - decreases by 48 bytes on AVR, by disabling `originalTransitionTime` unless `ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG` is enabled. - * 32-bit processors - * increases by 32 bytes on 32-bit processors due to adding + - 32-bit processors + - increases by 32 bytes on 32-bit processors due to adding a pointer and 2 `uint16_t` to MatchingEra - * decreases by 32 bytes on 32-bit processors due to disabling + - decreases by 32 bytes on 32-bit processors due to disabling `originalTransitionTime` in Transition -* Upgrade ESP8266 Core from 2.7.4 to 3.0.2. - * AutoBenchmark indicate that things are a few percentage faster. +- Upgrade ESP8266 Core from 2.7.4 to 3.0.2. + - AutoBenchmark indicate that things are a few percentage faster. **v1.8.0:** -* Remove `sizeof()` Clock classes which were moved to AceTimeClock library. -* No significant changes to excution times of various benchmarks. +- Remove `sizeof()` Clock classes which were moved to AceTimeClock library. +- No significant changes to excution times of various benchmarks. **v1.9.0:** -* Extract `BasicZoneProcessorCache` and `ExtendedZoneProcessorCache` +- Extract `BasicZoneProcessorCache` and `ExtendedZoneProcessorCache` from `BasicZoneManager` and `ExtendedZoneManager`. Remove all pure `virtual` methods from `ZoneManager`, making ZoneManager hierarchy non-polymorphic. - * Saves 1100-1300 of flash on AVR. - * No signficant changes to CPU performance. + - Saves 1100-1300 of flash on AVR. + - No signficant changes to CPU performance. **v1.10.0:** -* Remove support for SAMD21 boards. - * Arduino IDE 1.8.19 with SparkFun SAMD 1.8.6 can no longer upload binaries +- Remove support for SAMD21 boards. + - Arduino IDE 1.8.19 with SparkFun SAMD 1.8.6 can no longer upload binaries to these boards. Something about bossac 1.7.0 not found. -* Upgrade tool chain: - * Arduino IDE from 1.8.13 to 1.8.19 - * Arduino AVR from 1.8.3 to 1.8.4 - * STM32duino from 2.0.0 to 2.2.0 - * ESP32 from 1.0.6 to 2.0.2 - * Teensyduino from 1.55 to 1.56 -* Add benchmarks for `ZonedDateTime::forComponents()`. -* Add support for `fold` parameter in `LocalDateTime`, `OffsetDateTime`, +- Upgrade tool chain: + - Arduino IDE from 1.8.13 to 1.8.19 + - Arduino AVR from 1.8.3 to 1.8.4 + - STM32duino from 2.0.0 to 2.2.0 + - ESP32 from 1.0.6 to 2.0.2 + - Teensyduino from 1.55 to 1.56 +- Add benchmarks for `ZonedDateTime::forComponents()`. +- Add support for `fold` parameter in `PlainDateTime`, `OffsetDateTime`, `ZonedDateTime`, and `ExtendedZoneProcessor`. - * The `ZonedDateTime::forComponents()` can be made much faster using 'fold'. - * We know exactly when we must normalize and when we can avoid + - The `ZonedDateTime::forComponents()` can be made much faster using 'fold'. + - We know exactly when we must normalize and when we can avoid normalization. - * 5X faster on AVR processors when cached, and - * 1.5-3X faster on 32-bit processors. + - 5X faster on AVR processors when cached, and + - 1.5-3X faster on 32-bit processors. **v1.11.0:** -* Upgrade ZoneInfo database so that Links are symbolic links to Zones, instead +- Upgrade ZoneInfo database so that Links are symbolic links to Zones, instead of hard links to Zones. - * No significant changes to CPU benchmarks. + - No significant changes to CPU benchmarks. **v1.11.5** -* Upgrade tool chain - * Arduino CLI from 0.20.2 to 0.27.1 - * Arduino AVR Core from 1.8.4 to 1.8.5 - * STM32duino from 2.2.0 to 2.3.0 - * ESP32 Core from 2.0.2 to 2.0.5 - * Teensyduino from 1.56 to 1.57 -* Upgrade TZDB from 2022b to 2022d +- Upgrade tool chain + - Arduino CLI from 0.20.2 to 0.27.1 + - Arduino AVR Core from 1.8.4 to 1.8.5 + - STM32duino from 2.2.0 to 2.3.0 + - ESP32 Core from 2.0.2 to 2.0.5 + - Teensyduino from 1.56 to 1.57 +- Upgrade TZDB from 2022b to 2022d **v2.0** -* Use `int16_t` year fields. -* Implement adjustable epoch year. -* Upgrade to TZDB 2022f. -* AVR: - * sizeof(LocalDate) increases from 3 to 4 - * sizeof(BasicZoneProcessor) increases from 116 to 122 - * sizeof(ExtendedZoneProcessor) increases from 436 to 468 - * sizeof(TransitionStorage) increases from 340 to 364 - * ZonedDateTime::forEpochSeconds() slower by 5-10% -* ESP8266 - * sizeof(LocalDate) increases from 3 to 4 - * sizeof(BasicZoneProcessor) remains at 164 - * sizeof(ExtendedZoneProcessor) increases from 540 to 588 - * sizeof(TransitionStorage) increases from 420 to 452 - * ZonedDateTime::forEpochSeconds() slower by 0-10% +- Use `int16_t` year fields. +- Implement adjustable epoch year. +- Upgrade to TZDB 2022f. +- AVR: + - sizeof(PlainDate) increases from 3 to 4 + - sizeof(BasicZoneProcessor) increases from 116 to 122 + - sizeof(ExtendedZoneProcessor) increases from 436 to 468 + - sizeof(TransitionStorage) increases from 340 to 364 + - ZonedDateTime::forEpochSeconds() slower by 5-10% +- ESP8266 + - sizeof(PlainDate) increases from 3 to 4 + - sizeof(BasicZoneProcessor) remains at 164 + - sizeof(ExtendedZoneProcessor) increases from 540 to 588 + - sizeof(TransitionStorage) increases from 420 to 452 + - ZonedDateTime::forEpochSeconds() slower by 0-10% **v2.1.1** -* Upgrade to TZDB 2022g. -* Add `ZonedExtra`. -* Unify fat and symbolic links. -* Not much difference in execution times, except: - * `ZonedDateTime::forComponents()` using the `BasicZoneProcessor` +- Upgrade to TZDB 2022g. +- Add `ZonedExtra`. +- Unify fat and symbolic links. +- Not much difference in execution times, except: + - `ZonedDateTime::forComponents()` using the `BasicZoneProcessor` becomes ~50% slower due to the extra work needed to resolve gaps and overlaps. - * `ZonedDateTime::forEpochSeconds()` using `BasicZoneProcessors` remains + - `ZonedDateTime::forEpochSeconds()` using `BasicZoneProcessors` remains unchanged. - * `ExtendedZoneProcessor` is substantially faster on AVR processors. + - `ExtendedZoneProcessor` is substantially faster on AVR processors. Maybe it should be recommended ove `BasicZoneProcessor` even on AVR. **v2.2.0** -* Upgrade tool chain - * Arduino AVR from 1.8.5 to 1.8.6 - * STM32duino from 2.3.0 to 2.4.0 - * ESP8266 from 3.0.2 to 3.1.2 failed, reverted back to 3.0.2 - * ESP32 from 2.0.5 to 2.0.7 -* Add support for Seeed XIAO SAMD21 - * Seeeduino 1.8.3 -* Upgrade to TZDB 2023b +- Upgrade tool chain + - Arduino AVR from 1.8.5 to 1.8.6 + - STM32duino from 2.3.0 to 2.4.0 + - ESP8266 from 3.0.2 to 3.1.2 failed, reverted back to 3.0.2 + - ESP32 from 2.0.5 to 2.0.7 +- Add support for Seeed XIAO SAMD21 + - Seeeduino 1.8.3 +- Upgrade to TZDB 2023b **v2.2.2** -* Upgrade to TZDB 2023c +- Upgrade to TZDB 2023c **v2.2.3** -* Add support for Adafruit ItsyBitsy M4 - * Using Adafruit SAMD Boards 1.7.11 -* Remove Teensy 3.2 - * Nearing end of life. Moved to Tier 2 (should work). -* Upgrade tool chain - * Seeeduino SAMD Boards 1.8.4 - * STM32duino Boards 2.5.0 - * ESP32 Boards 2.0.9 +- Add support for Adafruit ItsyBitsy M4 + - Using Adafruit SAMD Boards 1.7.11 +- Remove Teensy 3.2 + - Nearing end of life. Moved to Tier 2 (should work). +- Upgrade tool chain + - Seeeduino SAMD Boards 1.8.4 + - STM32duino Boards 2.5.0 + - ESP32 Boards 2.0.9 **v2.3.0** -* Add benchmarks for `CompleteZoneProcessor` and related classes -* Replace labels of `BasicZoneManager::createForXxx()` with +- Add benchmarks for `CompleteZoneProcessor` and related classes +- Replace labels of `BasicZoneManager::createForXxx()` with `BasicZoneRegistrar::findIndexForXxx()`, because those are the methods which are actually being tested. **v2.4.0** -* Support %z format. -* Upgrade to TZDB 2024b. -* Upgrade Arduino CLI to 1.1.1 -* Almost no change in execution times. +- Support %z format. +- Upgrade to TZDB 2024b. +- Upgrade Arduino CLI to 1.1.1 +- Almost no change in execution times. + +**v3.0.0** +- Upgrade to TZDB 2025b. + +**v4.0.0** +- Upgrade Arduino CLI to 1.3.1 ## Arduino Nano -* 16MHz ATmega328P -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Arduino AVR Boards 1.8.6 +- 16MHz ATmega328P +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Arduino AVR Boards 1.8.6 ``` {nano_results} @@ -247,9 +253,9 @@ ## Sparkfun Pro Micro -* 16 MHz ATmega32U4 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* SparkFun AVR Boards 1.1.13 +- 16 MHz ATmega32U4 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- SparkFun AVR Boards 1.1.13 ``` {micro_results} @@ -257,9 +263,9 @@ ## Seeed Studio XIAO SAMD21 -* SAMD21, 48 MHz ARM Cortex-M0+ -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Seeeduino 1.8.4 +- SAMD21, 48 MHz ARM Cortex-M0+ +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Seeeduino 1.8.4 ``` {samd21_results} @@ -267,9 +273,9 @@ ## STM32 Blue Pill -* STM32F103C8, 72 MHz ARM Cortex-M3 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* STM32duino 2.5.0 +- STM32F103C8, 72 MHz ARM Cortex-M3 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- STM32duino 2.5.0 ``` {stm32_results} @@ -277,9 +283,9 @@ ## Adafruit ItsyBitsy M4 SAMD51 -* SAMD51, 120 MHz ARM Cortex-M4 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Adafruit SAMD 1.7.11 +- SAMD51, 120 MHz ARM Cortex-M4 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Adafruit SAMD 1.7.11 ``` {samd51_results} @@ -287,9 +293,9 @@ ## ESP8266 -* NodeMCU 1.0 clone, 80MHz ESP8266 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* ESP8266 Boards 3.0.2 +- NodeMCU 1.0 clone, 80MHz ESP8266 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- ESP8266 Boards 3.0.2 ``` {esp8266_results} @@ -297,9 +303,9 @@ ## ESP32 -* ESP32-01 Dev Board, 240 MHz Tensilica LX6 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* ESP32 Boards 2.0.9 +- ESP32-01 Dev Board, 240 MHz Tensilica LX6 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- ESP32 Boards 2.0.9 ``` {esp32_results} diff --git a/examples/AutoBenchmark/generate_table.awk b/examples/AutoBenchmark/generate_table.awk index 72415369c..0529588ce 100755 --- a/examples/AutoBenchmark/generate_table.awk +++ b/examples/AutoBenchmark/generate_table.awk @@ -59,7 +59,7 @@ END { for (i = 0; i < TOTAL_BENCHMARKS - 1; i++) { name = u[i]["name"] if (name ~ /^EmptyLoop/ \ - || name ~ /^LocalDate::forEpochDays\(\)/ \ + || name ~ /^PlainDate::forEpochDays\(\)/ \ || name ~ /^OffsetDateTime::forEpochSeconds\(\)/ \ || name ~ /^ZonedDateTime::toEpochSeconds\(\)/ \ || name ~ /^ZonedDateTime::forEpochSeconds\(Basic_nocache\)/ \ diff --git a/examples/AutoBenchmark/micro.txt b/examples/AutoBenchmark/micro.txt index d38397263..babe22362 100644 --- a/examples/AutoBenchmark/micro.txt +++ b/examples/AutoBenchmark/micro.txt @@ -1,7 +1,7 @@ SIZEOF -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 5 @@ -48,41 +48,41 @@ Complete: sizeof(CompleteZoneProcessor::MatchingEra): 32 BENCHMARKS EmptyLoop 4.000 -LocalDate::forEpochDays() 244.000 -LocalDate::toEpochDays() 52.000 -LocalDate::dayOfWeek() 49.000 -OffsetDateTime::forEpochSeconds() 364.000 -OffsetDateTime::toEpochSeconds() 77.000 -ZonedDateTime::toEpochSeconds() 74.000 -ZonedDateTime::toEpochDays() 64.000 +PlainDate::forEpochDays() 244.000 +PlainDate::toEpochDays() 52.000 +PlainDate::dayOfWeek() 49.000 +OffsetDateTime::forEpochSeconds() 363.000 +OffsetDateTime::toEpochSeconds() 76.000 +ZonedDateTime::toEpochSeconds() 73.000 +ZonedDateTime::toEpochDays() 61.000 ZonedDateTime::forEpochSeconds(UTC) 394.000 ZonedDateTime::forEpochSeconds(Basic_nocache) 1736.000 -ZonedDateTime::forEpochSeconds(Basic_cached) 711.000 +ZonedDateTime::forEpochSeconds(Basic_cached) 710.000 ZonedDateTime::forEpochSeconds(Extended_nocache) -1 ZonedDateTime::forEpochSeconds(Extended_cached) -1 ZonedDateTime::forEpochSeconds(Complete_nocache) -1 ZonedDateTime::forEpochSeconds(Complete_cached) -1 ZonedDateTime::forComponents(Basic_nocache) 2281.000 -ZonedDateTime::forComponents(Basic_cached) 1259.000 +ZonedDateTime::forComponents(Basic_cached) 1261.000 ZonedDateTime::forComponents(Extended_nocache) -1 ZonedDateTime::forComponents(Extended_cached) -1 ZonedDateTime::forComponents(Complete_nocache) -1 ZonedDateTime::forComponents(Complete_cached) -1 -ZonedExtra::forEpochSeconds(Basic_nocache) 1411.000 +ZonedExtra::forEpochSeconds(Basic_nocache) 1410.000 ZonedExtra::forEpochSeconds(Basic_cached) 381.000 ZonedExtra::forEpochSeconds(Extended_nocache) -1 ZonedExtra::forEpochSeconds(Extended_cached) -1 ZonedExtra::forEpochSeconds(Complete_nocache) -1 ZonedExtra::forEpochSeconds(Complete_cached) -1 ZonedExtra::forComponents(Basic_nocache) 2305.000 -ZonedExtra::forComponents(Basic_cached) 1284.000 +ZonedExtra::forComponents(Basic_cached) 1285.000 ZonedExtra::forComponents(Extended_nocache) -1 ZonedExtra::forComponents(Extended_cached) -1 ZonedExtra::forComponents(Complete_nocache) -1 ZonedExtra::forComponents(Complete_cached) -1 -BasicZoneRegistrar::findIndexForName(binary) 122.000 -BasicZoneRegistrar::findIndexForIdBinary() 49.000 -BasicZoneRegistrar::findIndexForIdLinear() 295.000 +BasicZoneRegistrar::findIndexForName(binary) 120.000 +BasicZoneRegistrar::findIndexForIdBinary() 46.000 +BasicZoneRegistrar::findIndexForIdLinear() 296.000 ExtendedZoneRegistrar::findIndexForName(binary) -1 ExtendedZoneRegistrar::findIndexForIdBinary() -1 ExtendedZoneRegistrar::findIndexForIdLinear() -1 diff --git a/examples/AutoBenchmark/nano.txt b/examples/AutoBenchmark/nano.txt index 31f60024b..679443b32 100644 --- a/examples/AutoBenchmark/nano.txt +++ b/examples/AutoBenchmark/nano.txt @@ -1,7 +1,7 @@ SIZEOF -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 5 @@ -48,40 +48,40 @@ Complete: sizeof(CompleteZoneProcessor::MatchingEra): 32 BENCHMARKS EmptyLoop 3.000 -LocalDate::forEpochDays() 243.000 -LocalDate::toEpochDays() 51.000 -LocalDate::dayOfWeek() 50.000 -OffsetDateTime::forEpochSeconds() 363.000 -OffsetDateTime::toEpochSeconds() 77.000 +PlainDate::forEpochDays() 243.000 +PlainDate::toEpochDays() 51.000 +PlainDate::dayOfWeek() 50.000 +OffsetDateTime::forEpochSeconds() 362.000 +OffsetDateTime::toEpochSeconds() 76.000 ZonedDateTime::toEpochSeconds() 75.000 -ZonedDateTime::toEpochDays() 62.000 -ZonedDateTime::forEpochSeconds(UTC) 393.000 +ZonedDateTime::toEpochDays() 63.000 +ZonedDateTime::forEpochSeconds(UTC) 394.000 ZonedDateTime::forEpochSeconds(Basic_nocache) 1728.000 ZonedDateTime::forEpochSeconds(Basic_cached) 708.000 ZonedDateTime::forEpochSeconds(Extended_nocache) -1 ZonedDateTime::forEpochSeconds(Extended_cached) -1 ZonedDateTime::forEpochSeconds(Complete_nocache) -1 ZonedDateTime::forEpochSeconds(Complete_cached) -1 -ZonedDateTime::forComponents(Basic_nocache) 2270.000 -ZonedDateTime::forComponents(Basic_cached) 1254.000 +ZonedDateTime::forComponents(Basic_nocache) 2272.000 +ZonedDateTime::forComponents(Basic_cached) 1256.000 ZonedDateTime::forComponents(Extended_nocache) -1 ZonedDateTime::forComponents(Extended_cached) -1 ZonedDateTime::forComponents(Complete_nocache) -1 ZonedDateTime::forComponents(Complete_cached) -1 ZonedExtra::forEpochSeconds(Basic_nocache) 1405.000 -ZonedExtra::forEpochSeconds(Basic_cached) 380.000 +ZonedExtra::forEpochSeconds(Basic_cached) 381.000 ZonedExtra::forEpochSeconds(Extended_nocache) -1 ZonedExtra::forEpochSeconds(Extended_cached) -1 ZonedExtra::forEpochSeconds(Complete_nocache) -1 ZonedExtra::forEpochSeconds(Complete_cached) -1 ZonedExtra::forComponents(Basic_nocache) 2295.000 -ZonedExtra::forComponents(Basic_cached) 1279.000 +ZonedExtra::forComponents(Basic_cached) 1280.000 ZonedExtra::forComponents(Extended_nocache) -1 ZonedExtra::forComponents(Extended_cached) -1 ZonedExtra::forComponents(Complete_nocache) -1 ZonedExtra::forComponents(Complete_cached) -1 -BasicZoneRegistrar::findIndexForName(binary) 121.000 -BasicZoneRegistrar::findIndexForIdBinary() 48.000 +BasicZoneRegistrar::findIndexForName(binary) 122.000 +BasicZoneRegistrar::findIndexForIdBinary() 49.000 BasicZoneRegistrar::findIndexForIdLinear() 295.000 ExtendedZoneRegistrar::findIndexForName(binary) -1 ExtendedZoneRegistrar::findIndexForIdBinary() -1 diff --git a/examples/AutoBenchmark/samd21.txt b/examples/AutoBenchmark/samd21.txt index d37b9969a..71e50ca7d 100644 --- a/examples/AutoBenchmark/samd21.txt +++ b/examples/AutoBenchmark/samd21.txt @@ -1,7 +1,7 @@ SIZEOF -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 12 @@ -48,46 +48,46 @@ Complete: sizeof(CompleteZoneProcessor::MatchingEra): 44 BENCHMARKS EmptyLoop 1.400 -LocalDate::forEpochDays() 13.200 -LocalDate::toEpochDays() 3.800 -LocalDate::dayOfWeek() 6.600 +PlainDate::forEpochDays() 13.200 +PlainDate::toEpochDays() 4.000 +PlainDate::dayOfWeek() 6.400 OffsetDateTime::forEpochSeconds() 20.800 -OffsetDateTime::toEpochSeconds() 11.800 -ZonedDateTime::toEpochSeconds() 11.800 -ZonedDateTime::toEpochDays() 9.400 -ZonedDateTime::forEpochSeconds(UTC) 24.400 -ZonedDateTime::forEpochSeconds(Basic_nocache) 219.000 -ZonedDateTime::forEpochSeconds(Basic_cached) 46.000 +OffsetDateTime::toEpochSeconds() 11.600 +ZonedDateTime::toEpochSeconds() 11.600 +ZonedDateTime::toEpochDays() 9.800 +ZonedDateTime::forEpochSeconds(UTC) 23.400 +ZonedDateTime::forEpochSeconds(Basic_nocache) 218.400 +ZonedDateTime::forEpochSeconds(Basic_cached) 45.000 ZonedDateTime::forEpochSeconds(Extended_nocache) 548.600 -ZonedDateTime::forEpochSeconds(Extended_cached) 56.800 +ZonedDateTime::forEpochSeconds(Extended_cached) 56.000 ZonedDateTime::forEpochSeconds(Complete_nocache) 668.800 -ZonedDateTime::forEpochSeconds(Complete_cached) 56.800 -ZonedDateTime::forComponents(Basic_nocache) 277.600 -ZonedDateTime::forComponents(Basic_cached) 94.800 -ZonedDateTime::forComponents(Extended_nocache) 417.600 -ZonedDateTime::forComponents(Extended_cached) 17.000 -ZonedDateTime::forComponents(Complete_nocache) 538.000 -ZonedDateTime::forComponents(Complete_cached) 16.800 -ZonedExtra::forEpochSeconds(Basic_nocache) 200.800 -ZonedExtra::forEpochSeconds(Basic_cached) 28.000 -ZonedExtra::forEpochSeconds(Extended_nocache) 530.000 -ZonedExtra::forEpochSeconds(Extended_cached) 38.800 -ZonedExtra::forEpochSeconds(Complete_nocache) 650.000 -ZonedExtra::forEpochSeconds(Complete_cached) 38.600 -ZonedExtra::forComponents(Basic_nocache) 281.000 -ZonedExtra::forComponents(Basic_cached) 98.400 -ZonedExtra::forComponents(Extended_nocache) 421.000 -ZonedExtra::forComponents(Extended_cached) 20.600 -ZonedExtra::forComponents(Complete_nocache) 541.600 -ZonedExtra::forComponents(Complete_cached) 20.400 +ZonedDateTime::forEpochSeconds(Complete_cached) 56.000 +ZonedDateTime::forComponents(Basic_nocache) 278.600 +ZonedDateTime::forComponents(Basic_cached) 95.600 +ZonedDateTime::forComponents(Extended_nocache) 418.400 +ZonedDateTime::forComponents(Extended_cached) 17.200 +ZonedDateTime::forComponents(Complete_nocache) 538.800 +ZonedDateTime::forComponents(Complete_cached) 17.200 +ZonedExtra::forEpochSeconds(Basic_nocache) 201.000 +ZonedExtra::forEpochSeconds(Basic_cached) 27.800 +ZonedExtra::forEpochSeconds(Extended_nocache) 531.000 +ZonedExtra::forEpochSeconds(Extended_cached) 39.000 +ZonedExtra::forEpochSeconds(Complete_nocache) 651.000 +ZonedExtra::forEpochSeconds(Complete_cached) 39.000 +ZonedExtra::forComponents(Basic_nocache) 281.800 +ZonedExtra::forComponents(Basic_cached) 99.000 +ZonedExtra::forComponents(Extended_nocache) 421.600 +ZonedExtra::forComponents(Extended_cached) 20.800 +ZonedExtra::forComponents(Complete_nocache) 542.200 +ZonedExtra::forComponents(Complete_cached) 20.600 BasicZoneRegistrar::findIndexForName(binary) 16.000 -BasicZoneRegistrar::findIndexForIdBinary() 4.200 -BasicZoneRegistrar::findIndexForIdLinear() 13.600 +BasicZoneRegistrar::findIndexForIdBinary() 4.400 +BasicZoneRegistrar::findIndexForIdLinear() 13.400 ExtendedZoneRegistrar::findIndexForName(binary) 16.600 -ExtendedZoneRegistrar::findIndexForIdBinary() 4.400 -ExtendedZoneRegistrar::findIndexForIdLinear() 13.800 -CompleteZoneRegistrar::findIndexForName(binary) 16.400 -CompleteZoneRegistrar::findIndexForIdBinary() 4.200 -CompleteZoneRegistrar::findIndexForIdLinear() 13.600 +ExtendedZoneRegistrar::findIndexForIdBinary() 4.000 +ExtendedZoneRegistrar::findIndexForIdLinear() 13.200 +CompleteZoneRegistrar::findIndexForName(binary) 16.200 +CompleteZoneRegistrar::findIndexForIdBinary() 4.000 +CompleteZoneRegistrar::findIndexForIdLinear() 13.000 Iterations_per_run 5000 END diff --git a/examples/AutoBenchmark/samd51.txt b/examples/AutoBenchmark/samd51.txt index 04018b2df..5d31ef737 100644 --- a/examples/AutoBenchmark/samd51.txt +++ b/examples/AutoBenchmark/samd51.txt @@ -1,7 +1,7 @@ SIZEOF -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 12 @@ -48,46 +48,46 @@ Complete: sizeof(CompleteZoneProcessor::MatchingEra): 44 BENCHMARKS EmptyLoop 0.400 -LocalDate::forEpochDays() 1.400 -LocalDate::toEpochDays() 0.600 -LocalDate::dayOfWeek() 0.800 +PlainDate::forEpochDays() 1.400 +PlainDate::toEpochDays() 0.600 +PlainDate::dayOfWeek() 0.800 OffsetDateTime::forEpochSeconds() 2.000 -OffsetDateTime::toEpochSeconds() 2.200 +OffsetDateTime::toEpochSeconds() 2.400 ZonedDateTime::toEpochSeconds() 2.400 -ZonedDateTime::toEpochDays() 1.800 -ZonedDateTime::forEpochSeconds(UTC) 3.000 -ZonedDateTime::forEpochSeconds(Basic_nocache) 42.800 -ZonedDateTime::forEpochSeconds(Basic_cached) 6.200 -ZonedDateTime::forEpochSeconds(Extended_nocache) 110.600 -ZonedDateTime::forEpochSeconds(Extended_cached) 8.000 -ZonedDateTime::forEpochSeconds(Complete_nocache) 135.400 -ZonedDateTime::forEpochSeconds(Complete_cached) 8.000 -ZonedDateTime::forComponents(Basic_nocache) 54.600 -ZonedDateTime::forComponents(Basic_cached) 17.800 +ZonedDateTime::toEpochDays() 1.600 +ZonedDateTime::forEpochSeconds(UTC) 2.800 +ZonedDateTime::forEpochSeconds(Basic_nocache) 42.600 +ZonedDateTime::forEpochSeconds(Basic_cached) 6.000 +ZonedDateTime::forEpochSeconds(Extended_nocache) 110.400 +ZonedDateTime::forEpochSeconds(Extended_cached) 7.800 +ZonedDateTime::forEpochSeconds(Complete_nocache) 134.400 +ZonedDateTime::forEpochSeconds(Complete_cached) 7.800 +ZonedDateTime::forComponents(Basic_nocache) 54.200 +ZonedDateTime::forComponents(Basic_cached) 18.000 ZonedDateTime::forComponents(Extended_nocache) 88.800 ZonedDateTime::forComponents(Extended_cached) 3.800 ZonedDateTime::forComponents(Complete_nocache) 112.400 -ZonedDateTime::forComponents(Complete_cached) 3.600 -ZonedExtra::forEpochSeconds(Basic_nocache) 40.200 +ZonedDateTime::forComponents(Complete_cached) 3.800 +ZonedExtra::forEpochSeconds(Basic_nocache) 39.600 ZonedExtra::forEpochSeconds(Basic_cached) 4.400 -ZonedExtra::forEpochSeconds(Extended_nocache) 109.000 +ZonedExtra::forEpochSeconds(Extended_nocache) 108.200 ZonedExtra::forEpochSeconds(Extended_cached) 6.400 -ZonedExtra::forEpochSeconds(Complete_nocache) 132.000 +ZonedExtra::forEpochSeconds(Complete_nocache) 131.200 ZonedExtra::forEpochSeconds(Complete_cached) 6.400 -ZonedExtra::forComponents(Basic_nocache) 54.400 -ZonedExtra::forComponents(Basic_cached) 18.600 -ZonedExtra::forComponents(Extended_nocache) 88.400 -ZonedExtra::forComponents(Extended_cached) 3.800 -ZonedExtra::forComponents(Complete_nocache) 112.000 -ZonedExtra::forComponents(Complete_cached) 3.800 -BasicZoneRegistrar::findIndexForName(binary) 4.800 +ZonedExtra::forComponents(Basic_nocache) 54.600 +ZonedExtra::forComponents(Basic_cached) 18.400 +ZonedExtra::forComponents(Extended_nocache) 88.000 +ZonedExtra::forComponents(Extended_cached) 4.000 +ZonedExtra::forComponents(Complete_nocache) 112.400 +ZonedExtra::forComponents(Complete_cached) 4.000 +BasicZoneRegistrar::findIndexForName(binary) 4.600 BasicZoneRegistrar::findIndexForIdBinary() 1.400 BasicZoneRegistrar::findIndexForIdLinear() 4.000 -ExtendedZoneRegistrar::findIndexForName(binary) 5.000 -ExtendedZoneRegistrar::findIndexForIdBinary() 1.200 +ExtendedZoneRegistrar::findIndexForName(binary) 4.600 +ExtendedZoneRegistrar::findIndexForIdBinary() 1.400 ExtendedZoneRegistrar::findIndexForIdLinear() 4.000 -CompleteZoneRegistrar::findIndexForName(binary) 5.000 -CompleteZoneRegistrar::findIndexForIdBinary() 1.200 -CompleteZoneRegistrar::findIndexForIdLinear() 3.800 +CompleteZoneRegistrar::findIndexForName(binary) 4.600 +CompleteZoneRegistrar::findIndexForIdBinary() 1.400 +CompleteZoneRegistrar::findIndexForIdLinear() 4.000 Iterations_per_run 5000 END diff --git a/examples/AutoBenchmark/stm32.txt b/examples/AutoBenchmark/stm32.txt index b8885e0b1..7bd2d6732 100644 --- a/examples/AutoBenchmark/stm32.txt +++ b/examples/AutoBenchmark/stm32.txt @@ -1,7 +1,7 @@ SIZEOF -sizeof(LocalDate): 4 -sizeof(LocalTime): 4 -sizeof(LocalDateTime): 8 +sizeof(PlainDate): 4 +sizeof(PlainTime): 4 +sizeof(PlainDateTime): 8 sizeof(TimeOffset): 4 sizeof(OffsetDateTime): 12 sizeof(TimeZone): 12 @@ -48,46 +48,46 @@ Complete: sizeof(CompleteZoneProcessor::MatchingEra): 44 BENCHMARKS EmptyLoop 1.200 -LocalDate::forEpochDays() 2.800 -LocalDate::toEpochDays() 1.200 -LocalDate::dayOfWeek() 1.200 -OffsetDateTime::forEpochSeconds() 4.200 +PlainDate::forEpochDays() 2.800 +PlainDate::toEpochDays() 1.000 +PlainDate::dayOfWeek() 1.000 +OffsetDateTime::forEpochSeconds() 4.000 OffsetDateTime::toEpochSeconds() 4.800 -ZonedDateTime::toEpochSeconds() 5.200 -ZonedDateTime::toEpochDays() 3.600 -ZonedDateTime::forEpochSeconds(UTC) 6.200 -ZonedDateTime::forEpochSeconds(Basic_nocache) 95.200 -ZonedDateTime::forEpochSeconds(Basic_cached) 12.600 -ZonedDateTime::forEpochSeconds(Extended_nocache) 248.800 -ZonedDateTime::forEpochSeconds(Extended_cached) 17.000 -ZonedDateTime::forEpochSeconds(Complete_nocache) 306.200 -ZonedDateTime::forEpochSeconds(Complete_cached) 17.000 -ZonedDateTime::forComponents(Basic_nocache) 118.200 -ZonedDateTime::forComponents(Basic_cached) 37.200 -ZonedDateTime::forComponents(Extended_nocache) 198.000 -ZonedDateTime::forComponents(Extended_cached) 7.600 -ZonedDateTime::forComponents(Complete_nocache) 256.800 -ZonedDateTime::forComponents(Complete_cached) 7.600 +ZonedDateTime::toEpochSeconds() 5.000 +ZonedDateTime::toEpochDays() 3.800 +ZonedDateTime::forEpochSeconds(UTC) 5.600 +ZonedDateTime::forEpochSeconds(Basic_nocache) 94.600 +ZonedDateTime::forEpochSeconds(Basic_cached) 11.600 +ZonedDateTime::forEpochSeconds(Extended_nocache) 246.600 +ZonedDateTime::forEpochSeconds(Extended_cached) 16.200 +ZonedDateTime::forEpochSeconds(Complete_nocache) 303.600 +ZonedDateTime::forEpochSeconds(Complete_cached) 16.200 +ZonedDateTime::forComponents(Basic_nocache) 118.800 +ZonedDateTime::forComponents(Basic_cached) 37.600 +ZonedDateTime::forComponents(Extended_nocache) 197.200 +ZonedDateTime::forComponents(Extended_cached) 8.000 +ZonedDateTime::forComponents(Complete_nocache) 256.000 +ZonedDateTime::forComponents(Complete_cached) 8.000 ZonedExtra::forEpochSeconds(Basic_nocache) 92.600 ZonedExtra::forEpochSeconds(Basic_cached) 9.200 -ZonedExtra::forEpochSeconds(Extended_nocache) 245.800 +ZonedExtra::forEpochSeconds(Extended_nocache) 244.000 ZonedExtra::forEpochSeconds(Extended_cached) 13.800 -ZonedExtra::forEpochSeconds(Complete_nocache) 303.000 +ZonedExtra::forEpochSeconds(Complete_nocache) 301.200 ZonedExtra::forEpochSeconds(Complete_cached) 13.800 -ZonedExtra::forComponents(Basic_nocache) 119.000 -ZonedExtra::forComponents(Basic_cached) 38.000 -ZonedExtra::forComponents(Extended_nocache) 198.800 -ZonedExtra::forComponents(Extended_cached) 8.600 -ZonedExtra::forComponents(Complete_nocache) 257.800 -ZonedExtra::forComponents(Complete_cached) 8.400 +ZonedExtra::forComponents(Basic_nocache) 119.800 +ZonedExtra::forComponents(Basic_cached) 38.200 +ZonedExtra::forComponents(Extended_nocache) 198.000 +ZonedExtra::forComponents(Extended_cached) 8.800 +ZonedExtra::forComponents(Complete_nocache) 257.000 +ZonedExtra::forComponents(Complete_cached) 8.800 BasicZoneRegistrar::findIndexForName(binary) 12.400 -BasicZoneRegistrar::findIndexForIdBinary() 2.400 -BasicZoneRegistrar::findIndexForIdLinear() 15.200 -ExtendedZoneRegistrar::findIndexForName(binary) 12.800 +BasicZoneRegistrar::findIndexForIdBinary() 2.600 +BasicZoneRegistrar::findIndexForIdLinear() 16.000 +ExtendedZoneRegistrar::findIndexForName(binary) 12.600 ExtendedZoneRegistrar::findIndexForIdBinary() 2.600 -ExtendedZoneRegistrar::findIndexForIdLinear() 15.600 +ExtendedZoneRegistrar::findIndexForIdLinear() 16.200 CompleteZoneRegistrar::findIndexForName(binary) 13.000 -CompleteZoneRegistrar::findIndexForIdBinary() 2.600 -CompleteZoneRegistrar::findIndexForIdLinear() 15.400 +CompleteZoneRegistrar::findIndexForIdBinary() 2.200 +CompleteZoneRegistrar::findIndexForIdLinear() 16.000 Iterations_per_run 5000 END diff --git a/examples/ComparisonBenchmark/Benchmark.cpp b/examples/ComparisonBenchmark/Benchmark.cpp index 625b16c3a..2958ab420 100644 --- a/examples/ComparisonBenchmark/Benchmark.cpp +++ b/examples/ComparisonBenchmark/Benchmark.cpp @@ -1,6 +1,6 @@ /* - * Compare the run time of LocalDateTime::toEpochSeconds() and - * LocalDateTime::forEpochSeconds() with the equivalent makeTime() and + * Compare the run time of PlainDateTime::toEpochSeconds() and + * PlainDateTime::forEpochSeconds() with the equivalent makeTime() and * breakTime() functions of the Arduino Time Library * (https://github.com/PaulStoffregen/Time). * @@ -75,7 +75,7 @@ void disableOptimization(acetime_t seconds) { guard ^= tmp2; } -void disableOptimization(const LocalDateTime& dt) { +void disableOptimization(const PlainDateTime& dt) { guard ^= dt.year(); guard ^= dt.month(); guard ^= dt.day(); @@ -143,10 +143,10 @@ void runEmptyLoop() { printMicrosPerIteration(F("EmptyLoop"), baseMillis); } -// AceTime library: LocalDateTime::forEpochSeconds() +// AceTime library: PlainDateTime::forEpochSeconds() void runAceTimeForEpochSeconds() { unsigned long elapsedMillis = runLambda(START_SECONDS, [](acetime_t seconds) { - LocalDateTime dt = LocalDateTime::forEpochSeconds(seconds); + PlainDateTime dt = PlainDateTime::forEpochSeconds(seconds); disableOptimization(dt); }); unsigned long baseMillis = runLambda(START_SECONDS, [](acetime_t seconds) { @@ -154,24 +154,24 @@ void runAceTimeForEpochSeconds() { }); printMicrosPerIteration( - F("LocalDateTime::forEpochSeconds()"), + F("PlainDateTime::forEpochSeconds()"), elapsedMillis - baseMillis); } -// AceTime library: LocalDateTime::toEpochSeconds() +// AceTime library: PlainDateTime::toEpochSeconds() void runAceTimeToEpochSeconds() { unsigned long elapsedMillis = runLambda(START_SECONDS, [](acetime_t seconds) { - LocalDateTime dt = LocalDateTime::forEpochSeconds(seconds); + PlainDateTime dt = PlainDateTime::forEpochSeconds(seconds); acetime_t roundTripSeconds = dt.toEpochSeconds(); disableOptimization(roundTripSeconds); }); unsigned long baseMillis = runLambda(START_SECONDS, [](acetime_t seconds) { - LocalDateTime dt = LocalDateTime::forEpochSeconds(seconds); + PlainDateTime dt = PlainDateTime::forEpochSeconds(seconds); disableOptimization(dt); }); printMicrosPerIteration( - F("LocalDateTime::toEpochSeconds()"), + F("PlainDateTime::toEpochSeconds()"), elapsedMillis - baseMillis); } diff --git a/examples/ComparisonBenchmark/README.md b/examples/ComparisonBenchmark/README.md index 77232815e..e81184b0d 100644 --- a/examples/ComparisonBenchmark/README.md +++ b/examples/ComparisonBenchmark/README.md @@ -1,8 +1,8 @@ # Comparison Benchmark Here are the results from `ComparisonBenchmark.ino` which compares the execution -time of date-time conversion functions (`LocalDateTime::toEpochSeconds()`, -`LocalDateTime::forEpochSeconds()`) from the AceTime library with the +time of date-time conversion functions (`PlainDateTime::toEpochSeconds()`, +`PlainDateTime::forEpochSeconds()`) from the AceTime library with the equilvalent functions (`makeTime()`, `breakTime()`) from the [Arduino Time](https://github.com/PaulStoffregen/Time) library. @@ -80,10 +80,10 @@ CPU: |----------------------------------------+----------| | EmptyLoop | 5.000 | |----------------------------------------+----------| -| LocalDateTime::forEpochSeconds() | 339.500 | +| PlainDateTime::forEpochSeconds() | 339.500 | | breakTime() | 594.000 | |----------------------------------------+----------| -| LocalDateTime::toEpochSeconds() | 62.000 | +| PlainDateTime::toEpochSeconds() | 62.000 | | makeTime() | 345.500 | +----------------------------------------+----------+ Iterations_per_run: 2000 @@ -106,10 +106,10 @@ CPU: |----------------------------------------+----------| | EmptyLoop | 4.500 | |----------------------------------------+----------| -| LocalDateTime::forEpochSeconds() | 340.500 | +| PlainDateTime::forEpochSeconds() | 340.500 | | breakTime() | 596.500 | |----------------------------------------+----------| -| LocalDateTime::toEpochSeconds() | 62.500 | +| PlainDateTime::toEpochSeconds() | 62.500 | | makeTime() | 347.000 | +----------------------------------------+----------+ Iterations_per_run: 2000 @@ -132,10 +132,10 @@ CPU: |----------------------------------------+----------| | EmptyLoop | 1.300 | |----------------------------------------+----------| -| LocalDateTime::forEpochSeconds() | 23.200 | +| PlainDateTime::forEpochSeconds() | 23.200 | | breakTime() | 93.500 | |----------------------------------------+----------| -| LocalDateTime::toEpochSeconds() | 6.600 | +| PlainDateTime::toEpochSeconds() | 6.600 | | makeTime() | 56.100 | +----------------------------------------+----------+ Iterations_per_run: 10000 @@ -158,10 +158,10 @@ CPU: |----------------------------------------+----------| | EmptyLoop | 0.800 | |----------------------------------------+----------| -| LocalDateTime::forEpochSeconds() | 3.000 | +| PlainDateTime::forEpochSeconds() | 3.000 | | breakTime() | 31.200 | |----------------------------------------+----------| -| LocalDateTime::toEpochSeconds() | 1.900 | +| PlainDateTime::toEpochSeconds() | 1.900 | | makeTime() | 22.600 | +----------------------------------------+----------+ Iterations_per_run: 10000 @@ -184,10 +184,10 @@ CPU: |----------------------------------------+----------| | EmptyLoop | 0.400 | |----------------------------------------+----------| -| LocalDateTime::forEpochSeconds() | 1.400 | +| PlainDateTime::forEpochSeconds() | 1.400 | | breakTime() | 9.000 | |----------------------------------------+----------| -| LocalDateTime::toEpochSeconds() | 0.900 | +| PlainDateTime::toEpochSeconds() | 0.900 | | makeTime() | 7.700 | +----------------------------------------+----------+ Iterations_per_run: 10000 @@ -210,10 +210,10 @@ CPU: |----------------------------------------+----------| | EmptyLoop | 0.800 | |----------------------------------------+----------| -| LocalDateTime::forEpochSeconds() | 13.500 | +| PlainDateTime::forEpochSeconds() | 13.500 | | breakTime() | 42.400 | |----------------------------------------+----------| -| LocalDateTime::toEpochSeconds() | 4.000 | +| PlainDateTime::toEpochSeconds() | 4.000 | | makeTime() | 24.800 | +----------------------------------------+----------+ Iterations_per_run: 10000 @@ -236,10 +236,10 @@ CPU: |----------------------------------------+----------| | EmptyLoop | 0.390 | |----------------------------------------+----------| -| LocalDateTime::forEpochSeconds() | 0.900 | +| PlainDateTime::forEpochSeconds() | 0.900 | | breakTime() | 5.420 | |----------------------------------------+----------| -| LocalDateTime::toEpochSeconds() | 0.600 | +| PlainDateTime::toEpochSeconds() | 0.600 | | makeTime() | 4.870 | +----------------------------------------+----------+ Iterations_per_run: 100000 diff --git a/examples/ComparisonBenchmark/esp32.txt b/examples/ComparisonBenchmark/esp32.txt index 85f233ac4..c9f848922 100644 --- a/examples/ComparisonBenchmark/esp32.txt +++ b/examples/ComparisonBenchmark/esp32.txt @@ -1,8 +1,8 @@ BENCHMARKS EmptyLoop 0.390 -LocalDateTime::forEpochSeconds() 0.900 +PlainDateTime::forEpochSeconds() 0.900 breakTime() 5.420 -LocalDateTime::toEpochSeconds() 0.600 +PlainDateTime::toEpochSeconds() 0.600 makeTime() 4.870 Iterations_per_run 100000 Delta_seconds 4733 diff --git a/examples/ComparisonBenchmark/esp8266.txt b/examples/ComparisonBenchmark/esp8266.txt index 51c1624ae..819f52a89 100644 --- a/examples/ComparisonBenchmark/esp8266.txt +++ b/examples/ComparisonBenchmark/esp8266.txt @@ -1,8 +1,8 @@ BENCHMARKS EmptyLoop 0.800 -LocalDateTime::forEpochSeconds() 13.500 +PlainDateTime::forEpochSeconds() 13.500 breakTime() 42.400 -LocalDateTime::toEpochSeconds() 4.000 +PlainDateTime::toEpochSeconds() 4.000 makeTime() 24.800 Iterations_per_run 10000 Delta_seconds 47336 diff --git a/examples/ComparisonBenchmark/generate_readme.py b/examples/ComparisonBenchmark/generate_readme.py index 7feddb615..fbef0c4d7 100755 --- a/examples/ComparisonBenchmark/generate_readme.py +++ b/examples/ComparisonBenchmark/generate_readme.py @@ -25,8 +25,8 @@ # Comparison Benchmark Here are the results from `ComparisonBenchmark.ino` which compares the execution -time of date-time conversion functions (`LocalDateTime::toEpochSeconds()`, -`LocalDateTime::forEpochSeconds()`) from the AceTime library with the +time of date-time conversion functions (`PlainDateTime::toEpochSeconds()`, +`PlainDateTime::forEpochSeconds()`) from the AceTime library with the equilvalent functions (`makeTime()`, `breakTime()`) from the [Arduino Time](https://github.com/PaulStoffregen/Time) library. diff --git a/examples/ComparisonBenchmark/generate_table.awk b/examples/ComparisonBenchmark/generate_table.awk index ae731453f..8bce925c5 100755 --- a/examples/ComparisonBenchmark/generate_table.awk +++ b/examples/ComparisonBenchmark/generate_table.awk @@ -43,8 +43,8 @@ END { for (i = 0; i < TOTAL_BENCHMARKS - 2; i++) { name = u[i]["name"] if (name ~ /^EmptyLoop/ \ - || name ~ /^LocalDateTime::forEpochSeconds\(\)/ \ - || name ~ /^LocalDateTime::toEpochSeconds\(\)/) { + || name ~ /^PlainDateTime::forEpochSeconds\(\)/ \ + || name ~ /^PlainDateTime::toEpochSeconds\(\)/) { printf("|----------------------------------------+----------|\n") } printf("| %-38s | %8.3f |\n", name, u[i]["micros"]) diff --git a/examples/ComparisonBenchmark/micro.txt b/examples/ComparisonBenchmark/micro.txt index 576f0f9e3..b59e18a71 100644 --- a/examples/ComparisonBenchmark/micro.txt +++ b/examples/ComparisonBenchmark/micro.txt @@ -1,8 +1,8 @@ BENCHMARKS EmptyLoop 4.500 -LocalDateTime::forEpochSeconds() 340.500 +PlainDateTime::forEpochSeconds() 340.500 breakTime() 596.500 -LocalDateTime::toEpochSeconds() 62.500 +PlainDateTime::toEpochSeconds() 62.500 makeTime() 347.000 Iterations_per_run 2000 Delta_seconds 236682 diff --git a/examples/ComparisonBenchmark/nano.txt b/examples/ComparisonBenchmark/nano.txt index b09a53317..64f753f87 100644 --- a/examples/ComparisonBenchmark/nano.txt +++ b/examples/ComparisonBenchmark/nano.txt @@ -1,8 +1,8 @@ BENCHMARKS EmptyLoop 5.000 -LocalDateTime::forEpochSeconds() 339.500 +PlainDateTime::forEpochSeconds() 339.500 breakTime() 594.000 -LocalDateTime::toEpochSeconds() 62.000 +PlainDateTime::toEpochSeconds() 62.000 makeTime() 345.500 Iterations_per_run 2000 Delta_seconds 236682 diff --git a/examples/ComparisonBenchmark/samd21.txt b/examples/ComparisonBenchmark/samd21.txt index c88434649..524d8d62e 100644 --- a/examples/ComparisonBenchmark/samd21.txt +++ b/examples/ComparisonBenchmark/samd21.txt @@ -1,8 +1,8 @@ BENCHMARKS EmptyLoop 1.300 -LocalDateTime::forEpochSeconds() 23.200 +PlainDateTime::forEpochSeconds() 23.200 breakTime() 93.500 -LocalDateTime::toEpochSeconds() 6.600 +PlainDateTime::toEpochSeconds() 6.600 makeTime() 56.100 Iterations_per_run 10000 Delta_seconds 47336 diff --git a/examples/ComparisonBenchmark/samd51.txt b/examples/ComparisonBenchmark/samd51.txt index a26550cf9..48e363861 100644 --- a/examples/ComparisonBenchmark/samd51.txt +++ b/examples/ComparisonBenchmark/samd51.txt @@ -1,8 +1,8 @@ BENCHMARKS EmptyLoop 0.400 -LocalDateTime::forEpochSeconds() 1.400 +PlainDateTime::forEpochSeconds() 1.400 breakTime() 9.000 -LocalDateTime::toEpochSeconds() 0.900 +PlainDateTime::toEpochSeconds() 0.900 makeTime() 7.700 Iterations_per_run 10000 Delta_seconds 47336 diff --git a/examples/ComparisonBenchmark/stm32.txt b/examples/ComparisonBenchmark/stm32.txt index 4722294fa..d63d9e265 100644 --- a/examples/ComparisonBenchmark/stm32.txt +++ b/examples/ComparisonBenchmark/stm32.txt @@ -1,8 +1,8 @@ BENCHMARKS EmptyLoop 0.800 -LocalDateTime::forEpochSeconds() 3.000 +PlainDateTime::forEpochSeconds() 3.000 breakTime() 31.200 -LocalDateTime::toEpochSeconds() 1.900 +PlainDateTime::toEpochSeconds() 1.900 makeTime() 22.600 Iterations_per_run 10000 Delta_seconds 47336 diff --git a/examples/ComparisonBenchmark/teensy32.txt b/examples/ComparisonBenchmark/teensy32.txt index 79fcd42ce..9c807738a 100644 --- a/examples/ComparisonBenchmark/teensy32.txt +++ b/examples/ComparisonBenchmark/teensy32.txt @@ -1,8 +1,8 @@ BENCHMARKS EmptyLoop 0.510 -LocalDateTime::forEpochSeconds() 1.700 +PlainDateTime::forEpochSeconds() 1.700 breakTime() 12.610 -LocalDateTime::toEpochSeconds() 0.780 +PlainDateTime::toEpochSeconds() 0.780 makeTime() 9.730 Iterations_per_run 100000 Delta_seconds 4733 diff --git a/examples/Disambiguate/Disambiguate.ino b/examples/Disambiguate/Disambiguate.ino new file mode 100644 index 000000000..001959058 --- /dev/null +++ b/examples/Disambiguate/Disambiguate.ino @@ -0,0 +1,68 @@ +/* + * A program to demonstrate the use of the disambiguate parameter in + * ZonedDateTime::forComponents(). It should print the following on the + * SERIAL_PORT_MONITOR port: + * + * 2022-03-13T03:29:00-07:00[America/Los_Angeles] + * resolved=4 + * 2022-03-13T01:29:00-08:00[America/Los_Angeles] + * resolved=3 + */ + +#include +#include + +using namespace ace_time; + +// ESP32 does not define SERIAL_PORT_MONITOR +#ifndef SERIAL_PORT_MONITOR +#define SERIAL_PORT_MONITOR Serial +#endif + +// ZoneProcessor instances should be created statically at initialization time. +static ExtendedZoneProcessor losAngelesProcessor; +static ExtendedZoneProcessor londonProcessor; + +void setup() { +#if ! defined(EPOXY_DUINO) + delay(1000); +#endif + + SERIAL_PORT_MONITOR.begin(115200); + while (!SERIAL_PORT_MONITOR); // Wait until ready - Leonardo/Micro +#if defined(EPOXY_DUINO) + SERIAL_PORT_MONITOR.setLineModeUnix(); +#endif + + TimeZone tz = TimeZone::forZoneInfo( + &zonedbx::kZoneAmerica_Los_Angeles, + &losAngelesProcessor); + + // In the gap, kCompatible selects the later time, so should print: + // 2022-03-13T03:29:00-07:00[America/Los_Angeles] + // resolved=4 (kGapLater) + auto dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, + Disambiguate::kCompatible); + dt.printTo(SERIAL_PORT_MONITOR); + + SERIAL_PORT_MONITOR.println(); + SERIAL_PORT_MONITOR.print("resolved="); + SERIAL_PORT_MONITOR.println((uint8_t) dt.resolved()); + + // In the gap, kEarlier selects the earlier time, so should print: + // 2022-03-13T01:29:00-08:00[America/Los_Angeles] + // resolved=3 (kGapEarlier) + dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, + Disambiguate::kEarlier); + dt.printTo(SERIAL_PORT_MONITOR); + SERIAL_PORT_MONITOR.println(); + SERIAL_PORT_MONITOR.print("resolved="); + SERIAL_PORT_MONITOR.println((uint8_t) dt.resolved()); + +#if defined(EPOXY_DUINO) + exit(0); +#endif +} + +void loop() { +} diff --git a/examples/Disambiguate/Makefile b/examples/Disambiguate/Makefile new file mode 100644 index 000000000..813dcbd85 --- /dev/null +++ b/examples/Disambiguate/Makefile @@ -0,0 +1,6 @@ +# See https://github.com/bxparks/EpoxyDuino for documentation about this +# Makefile to compile and run Arduino programs natively on Linux or MacOS. + +APP_NAME := Disambiguate +ARDUINO_LIBS := AceCommon AceSorting AceTime +include ../../../EpoxyDuino/EpoxyDuino.mk diff --git a/examples/EpochBenchmark/Benchmark.cpp b/examples/EpochBenchmark/Benchmark.cpp index 1086ded4b..c70766e34 100644 --- a/examples/EpochBenchmark/Benchmark.cpp +++ b/examples/EpochBenchmark/Benchmark.cpp @@ -12,7 +12,7 @@ #include "Benchmark.h" using ace_common::printUint32AsFloat3To; -using ace_time::LocalDate; +using ace_time::PlainDate; using ace_time::EpochConverterJulian; using ace_time::EpochConverterHinnant; @@ -77,7 +77,7 @@ void runEmptyLoop(const __FlashStringHelper* label) { uint32_t startMillis = millis(); for (int16_t year = 2000 - 127; year <= 2000 + 127; year += YEAR_STEP) { for (uint8_t month = 1; month <= 12; month++) { - uint8_t daysInMonth = LocalDate::daysInMonth(year, month); + uint8_t daysInMonth = PlainDate::daysInMonth(year, month); for (uint8_t day = 1; day <= daysInMonth; day++) { guard ^= year; guard ^= month; @@ -98,7 +98,7 @@ void runConverterJulian(const __FlashStringHelper* label) { uint32_t iterations = 0; for (int16_t year = 2000 - 127; year <= 2000 + 127; year += YEAR_STEP) { for (uint8_t month = 1; month <= 12; month++) { - uint8_t daysInMonth = LocalDate::daysInMonth(year, month); + uint8_t daysInMonth = PlainDate::daysInMonth(year, month); for (uint8_t day = 1; day <= daysInMonth; day++) { // Test toEpochDays() int32_t epochDays = EpochConverterJulian::toEpochDays( @@ -130,7 +130,7 @@ void runConverterHinnant(const __FlashStringHelper* label) { uint32_t iterations = 0; for (int16_t year = 2000 - 127; year <= 2000 + 127; year += YEAR_STEP) { for (uint8_t month = 1; month <= 12; month++) { - uint8_t daysInMonth = LocalDate::daysInMonth(year, month); + uint8_t daysInMonth = PlainDate::daysInMonth(year, month); for (uint8_t day = 1; day <= daysInMonth; day++) { // Test toEpochDays() int32_t epochDays = EpochConverterHinnant::toEpochDays( diff --git a/examples/EspTime/EspTime.ino b/examples/EspTime/EspTime.ino index f2dd59182..090f8db1d 100644 --- a/examples/EspTime/EspTime.ino +++ b/examples/EspTime/EspTime.ino @@ -5,7 +5,7 @@ the C-library `time()` function to return the number of seconds since Unix epoch strings in 4 ways: 1) UTC using old-school C-library functions, `gmtime_r()` and `struct tm` -2) UTC using ace_time::LocalDateTime +2) UTC using ace_time::PlainDateTime 3) America/Los_Angeles using ace_time::ZonedDateTime 4) Europe/Paris using ace_time::ZonedDateTime @@ -110,10 +110,10 @@ void printNowUsingAceTime(time_t now) { DateStrings dateStrings; // Convert to UTC time. - LocalDateTime ldt = LocalDateTime::forUnixSeconds64(now); - ldt.printTo(Serial); + PlainDateTime pdt = PlainDateTime::forUnixSeconds64(now); + pdt.printTo(Serial); Serial.print(' '); - Serial.print(dateStrings.dayOfWeekLongString(ldt.dayOfWeek())); + Serial.print(dateStrings.dayOfWeekLongString(pdt.dayOfWeek())); Serial.println(F(" (AceTime)")); // Convert Unix time to Los Angeles time. diff --git a/examples/MemoryBenchmark/MemoryBenchmark.ino b/examples/MemoryBenchmark/MemoryBenchmark.ino index baed2fec8..7e21bea48 100644 --- a/examples/MemoryBenchmark/MemoryBenchmark.ino +++ b/examples/MemoryBenchmark/MemoryBenchmark.ino @@ -7,7 +7,7 @@ // List of features of the AceTime library that we want to examine. #define FEATURE_BASELINE 0 -#define FEATURE_LOCAL_DATE_TIME 1 +#define FEATURE_PLAIN_DATE_TIME 1 #define FEATURE_ZONED_DATE_TIME 2 #define FEATURE_MANUAL_ZONE_MANAGER 3 #define FEATURE_BASIC_TIME_ZONE 4 @@ -57,8 +57,8 @@ volatile int16_t year = 2019; // all these inside the setup() method, which creates the objects on the stack, // which do not get detected as memory consumption, so don't show up in the // *.txt files. -#if FEATURE == FEATURE_LOCAL_DATE_TIME - auto dt = LocalDateTime::forComponents(year, 6, 17, 9, 18, 0); +#if FEATURE == FEATURE_PLAIN_DATE_TIME + auto dt = PlainDateTime::forComponents(year, 6, 17, 9, 18, 0); #elif FEATURE == FEATURE_ZONED_DATE_TIME auto dt = ZonedDateTime::forComponents(year, 6, 17, 9, 18, 0, TimeZone()); #elif FEATURE == FEATURE_MANUAL_ZONE_MANAGER @@ -314,7 +314,7 @@ void setup() { #if FEATURE == FEATURE_BASELINE guard = 0; -#elif FEATURE == FEATURE_LOCAL_DATE_TIME +#elif FEATURE == FEATURE_PLAIN_DATE_TIME acetime_t epochSeconds = dt.toEpochSeconds(); guard ^= epochSeconds; #elif FEATURE == FEATURE_ZONED_DATE_TIME diff --git a/examples/MemoryBenchmark/README.md b/examples/MemoryBenchmark/README.md index 7e1b42469..2682fb49a 100644 --- a/examples/MemoryBenchmark/README.md +++ b/examples/MemoryBenchmark/README.md @@ -5,7 +5,7 @@ memory and static RAM sizes were recorded. The `FEATURE_BASELINE` selection is the baseline, and its memory usage numbers are subtracted from the subsequent `FEATURE_*` memory usage. -**Version**: AceTime v3.0.0 +**Version**: AceTime v4.0.0 **DO NOT EDIT**: This file was auto-generated using `make README.md`. @@ -33,13 +33,13 @@ ASCII table. ## Library Size Changes **v1.3:** -* The `BasicZoneManager` and `ExtendedZoneManager` classes were unified under a +- The `BasicZoneManager` and `ExtendedZoneManager` classes were unified under a new parent interface `ZoneManager`. This seems to have caused the flash size to increase by around 1200 bytes on the AVR processors (Nano, Pro Micro), about 500 bytes on a SAMD, about 800 bytes on a ESP8266, 100 bytes on a ESP32, and 1400 bytes on a Teensy 3.2. The 8-bit processors suffer the most flash size increase proportional to their limited 32kB limit. -* Adding the `ZoneManager` interface simplifies a lot of the complexity with +- Adding the `ZoneManager` interface simplifies a lot of the complexity with saving and restoring time zones using the `TimeZoneData` object, and I think it is worth the extra cost of flash size. The mitigating factor is that applications targetted towards 8-bit processors will normally have fixed @@ -47,268 +47,273 @@ ASCII table. and avoid this penalty in flash size. **v1.4.1+:** -* Removed the `ZoneInfo::transitionBufSize` field from the `ZoneInfo` struct, +- Removed the `ZoneInfo::transitionBufSize` field from the `ZoneInfo` struct, which saves 1 byte on 8-bit processors (none on 32-bit processors due to 4-byte alignment). We save 266 bytes for `BasicZoneManager` and 386 bytes for `ExtendedZoneManager` when all the zones are loaded into the zone registry. -* Incorporated zoneName compression causes flash/ram usage to increase by - ~250/120 bytes when using only 1-2 zones, but *decreases* flash consumption by +- Incorporated zoneName compression causes flash/ram usage to increase by + ~250/120 bytes when using only 1-2 zones, but *decreases- flash consumption by 1200-2400 bytes when all the zones are loaded into the `ZoneManager`. **v1.5+:** -* Changing `ZoneProcessorCache::getType()` from a `virtual` to a non-virtual +- Changing `ZoneProcessorCache::getType()` from a `virtual` to a non-virtual method saves 250-350 bytes of flash memory when using a `BasicZoneManager` or an `ExtendedZoneManager` on an 8-bit AVR processor. Unexpectedly, the flash - memory consumption *increases* slightly (~0-50 bytes) for some ARM processors + memory consumption *increases- slightly (~0-50 bytes) for some ARM processors and the ESP32. Since those processors have far more flash memory, this seems like a good tradeoff. -* Changing `BasicZoneProcessor` and `ExtendedZoneProcessor` to be subclasses of +- Changing `BasicZoneProcessor` and `ExtendedZoneProcessor` to be subclasses of the templatized `BasicZoneProcessorTemplate` and `ExtendedZoneProcessorTemplate` classes causes reduction of flash consumption by 250-400 bytes for 32-bit processors. Don't know why. (Very little difference for 8-bit AVR). -* Adding a `ZoneInfoStore` layer of indirection (to support more complex +- Adding a `ZoneInfoStore` layer of indirection (to support more complex ZoneProcessors and Brokers) causes flash memory to go up by 100-200 bytes. **v1.6:** -* Added support for `LinkRegistry` to `BasicZoneManager` and +- Added support for `LinkRegistry` to `BasicZoneManager` and `ExtendedZoneManager`. This increases the flash memory usage by 150-500 bytes when using one of these classes due to the code required by `LinkRegistrar`. This extra cost is incurred even if the `LinkRegistry` is set to 0 elements. Each `LinkEntry` consumes 8 bytes (2 x `uint32_t`). So a `zonedb::kLinkRegistry` with 183 elements uses 1464 extra bytes of flash; a `zonedbx::kLinkRegistry` with 207 elements uses 1656 extra bytes. **v1.7:** -* The virtual destructor on the `Clock` base class removed. This reduced the +- The virtual destructor on the `Clock` base class removed. This reduced the flash usage by 618 bytes on AVR processors , 328 bytes on the SAMD21, but only 50-60 bytes on other 32-bit processors. -* The various `printShortNameTo()` or `printShortTo()` methods changed to +- The various `printShortNameTo()` or `printShortTo()` methods changed to replace the underscore in the zone names (e.g. `Los_Angeles`) with spaces (e.g. `Los Angeles`) to be more human friendly. This made little difference in the flash memory consumption, except on the ESP32 where it increased by 200-300 bytes. **v1.7.2** -* The `SystemClock::clockMillis()` is now non-virtual, using compile-time +- The `SystemClock::clockMillis()` is now non-virtual, using compile-time polymorphism through C++ template, and incorporating the same techniques from AceRoutine v1.3. Saves about 20-40 bytes of flash. **v1.7.5:** -* `ExtendedZoneProcessor.compareTransitionToMatch()` was modified to +- `ExtendedZoneProcessor.compareTransitionToMatch()` was modified to detect an exact equality between a `Transition` and its `MatchingEra` if any of the 3 time stamp versions ('w', 's', 'u') are equal. Adds about 120-150 bytes of flash on 8-bit and 32-bit processors. But removing `originalTransitionTime` from `Transition` decreases flash usage by about 20 bytes. -* Upgrade ESP8266 Boards from 2.7.4 to 3.0.2. Flash consumption increases by +- Upgrade ESP8266 Boards from 2.7.4 to 3.0.2. Flash consumption increases by 3-5 kB across the board. -* Upgrade Teensyduino from 1.54 to 1.55. Add memory consumed by `malloc()` and +- Upgrade Teensyduino from 1.54 to 1.55. Add memory consumed by `malloc()` and `free()` when using classes with virtual methods into baseline MemoryBenchmark, reducing the actual memory usage of various features by ~3kB. **v1.8.0:** -* Move Clock and SystemClock benchmarks into AceTimeClock v1.0.0. -* Extract thin links from BasicZoneManager and ExtendedZoneManager into +- Move Clock and SystemClock benchmarks into AceTimeClock v1.0.0. +- Extract thin links from BasicZoneManager and ExtendedZoneManager into new BasicLinkManager and ExtendedLinkManager classes. - * Saves 200-500 bytes of flash for BasicZoneManager and ExtendedZoneManager. - * Applications can decide whether to use thin links through the LinkManager + - Saves 200-500 bytes of flash for BasicZoneManager and ExtendedZoneManager. + - Applications can decide whether to use thin links through the LinkManager (~2000 flash bytes for AVR) or use fat links through the `kZoneAndLinkRegistry` (~5000 flash bytes for AVR). -* Create various test objects as global variables instead of stack variables +- Create various test objects as global variables instead of stack variables to get a more accurate measurement of their static memory consumption. **v1.9.0:** -* Reduce flash usage of `BasicZoneManager` and `ExtendedZoneManager` by +- Reduce flash usage of `BasicZoneManager` and `ExtendedZoneManager` by 1100-1300 bytes on AVR processors: - * Extract `BasicZoneProcessorCache` and `ExtendedZoneProcessorCache` out + - Extract `BasicZoneProcessorCache` and `ExtendedZoneProcessorCache` out of `BasicZoneManager` and `ExtendedZoneManager`, making them non-templatized. - * Remove all `virtual` methods from `ZoneManager`, making the ZoneManager + - Remove all `virtual` methods from `ZoneManager`, making the ZoneManager hierarchy non-polymorphic. - * Looks like I am reverting some of the changes made in v1.3 when I created + - Looks like I am reverting some of the changes made in v1.3 when I created the `ZoneManager` interface. -* Reduce flash usage of `BasicLinkManager` and `ExtendedLinkManager` by +- Reduce flash usage of `BasicLinkManager` and `ExtendedLinkManager` by 68 bytes on AVR processors by removing pure `virtual` methods on `LinkManager` base class. -* Increase flash usage by 34 bytes on AVR processors due to slight refactoring +- Increase flash usage by 34 bytes on AVR processors due to slight refactoring of `getHighWater()` with `getAllocSize()`. Only 4-8 bytes increase on 32-bit processors. **v1.10.0:** -* Remove support for SAMD21 boards. - * Arduino IDE 1.8.19 with SparkFun SAMD 1.8.6 can no longer upload binaries +- Remove support for SAMD21 boards. + - Arduino IDE 1.8.19 with SparkFun SAMD 1.8.6 can no longer upload binaries to these boards. Something about bossac 1.7.0 not found. -* Add memory consumption benchmarks for `ZoneSorterByName` and +- Add memory consumption benchmarks for `ZoneSorterByName` and `ZoneSorterByOffsetAndName` for `BasicZoneManager` and `ExtendedZoneManager`. - * AVR: 180-530 bytes of flash - * 32-bit: 120-600 bytes of flash -* Upgrade tool chain: - * Arduino IDE from 1.8.13 to 1.8.19 - * Arduino AVR from 1.8.3 to 1.8.4 - * STM32duino from 2.0.0 to 2.2.0 - * ESP32 from 1.0.6 to 2.0.2 - * Teensyduino from 1.55 to 1.56 -* Add support for `fold` parameter in `LocalDateTime`, `OffsetDateTime`, + - AVR: 180-530 bytes of flash + - 32-bit: 120-600 bytes of flash +- Upgrade tool chain: + - Arduino IDE from 1.8.13 to 1.8.19 + - Arduino AVR from 1.8.3 to 1.8.4 + - STM32duino from 2.0.0 to 2.2.0 + - ESP32 from 1.0.6 to 2.0.2 + - Teensyduino from 1.55 to 1.56 +- Add support for `fold` parameter in `PlainDateTime`, `OffsetDateTime`, `ZonedDateTime`, and `ExtendedZoneProcessor`. Increases flash usage: - * AVR: - * ~600 bytes, in `ExtendedZoneProcessor` for additional search logic, - * ~150 bytes, `BasicZoneProcessor`, to carry along the `fold` parameter - * most 32-bit: 400-600 bytes - * Teensy: 1300 bytes (no idea why) + - AVR: + - ~600 bytes, in `ExtendedZoneProcessor` for additional search logic, + - ~150 bytes, `BasicZoneProcessor`, to carry along the `fold` parameter + - most 32-bit: 400-600 bytes + - Teensy: 1300 bytes (no idea why) **v1.11.0** -* Upgrade ZoneInfo database so that Links are symbolic links to Zones, instead +- Upgrade ZoneInfo database so that Links are symbolic links to Zones, instead of hard links to Zones. - * Allows Links to know whether they are links. - * Allows extraction of the zoneId and zoneNames of the target Zone. - * AVR: Increases flash consumption by ~270 bytes. - * STM32: Increases flash by 120-150 bytes. - * ESP8266: Increases flash by 250-300 bytes. - * ESP32: Increases flash by ~190 bytes. - * Teensy 3.2: Increase flash by 450-1300 bytes. + - Allows Links to know whether they are links. + - Allows extraction of the zoneId and zoneNames of the target Zone. + - AVR: Increases flash consumption by ~270 bytes. + - STM32: Increases flash by 120-150 bytes. + - ESP8266: Increases flash by 250-300 bytes. + - ESP32: Increases flash by ~190 bytes. + - Teensy 3.2: Increase flash by 450-1300 bytes. **v1.11.1** -* Change `ZoneInfoBroker::targetZoneInfo()` method to return a `ZoneInfoBroker` +- Change `ZoneInfoBroker::targetZoneInfo()` method to return a `ZoneInfoBroker` instead of raw `ZoneInfo*` pointer. - * Increases flash usage by 4-16 bytes for the most part. + - Increases flash usage by 4-16 bytes for the most part. **v1.11.5** -* Upgrade tool chain - * Arduino CLI from 0.20.2 to 0.27.1 - * Arduino AVR Boards from 1.8.4 to 1.8.5 - * STM32duino from 2.2.0 to 2.3.0 - * ESP32 Boards from 2.0.2 to 2.0.5 - * Teensyduino from 1.56 to 1.57 -* Upgrade TZDB from 2022b to 2022d +- Upgrade tool chain + - Arduino CLI from 0.20.2 to 0.27.1 + - Arduino AVR Boards from 1.8.4 to 1.8.5 + - STM32duino from 2.2.0 to 2.3.0 + - ESP32 Boards from 2.0.2 to 2.0.5 + - Teensyduino from 1.56 to 1.57 +- Upgrade TZDB from 2022b to 2022d **v2.0** -* Use `int16_t` year fields. -* Implement adjustable epoch year. -* Upgrade to TZDB 2022f. -* AVR: - * BasicZoneManager increases ~200 bytes - * ExtendedZoneManager increases ~500 bytes - * `zonedb` increases ~1.5 kiB - * `zonedbx` increases ~3 kiB -* ESP8266 - * BasicZoneManager increases ~50 bytes - * ExtendedZoneManager increases ~150 bytes - * `zonedb` increases ~300 bytes - * `zonedbx` increases ~1.5 kiB +- Use `int16_t` year fields. +- Implement adjustable epoch year. +- Upgrade to TZDB 2022f. +- AVR: + - BasicZoneManager increases ~200 bytes + - ExtendedZoneManager increases ~500 bytes + - `zonedb` increases ~1.5 kiB + - `zonedbx` increases ~3 kiB +- ESP8266 + - BasicZoneManager increases ~50 bytes + - ExtendedZoneManager increases ~150 bytes + - `zonedb` increases ~300 bytes + - `zonedbx` increases ~1.5 kiB **v2.0.1** -* Upgrade to TZDB 2022g. -* Incorporate `ZonedExtra` to replace various `TimeZone` methods. +- Upgrade to TZDB 2022g. +- Incorporate `ZonedExtra` to replace various `TimeZone` methods. **v2.1.0** -* Remove `LinkManager` and `LinkRegistry`. -* Unify links, adding an additional `targetInfo` field in `ZoneInfo`. - * Increases flash by ~1kB on 8-bit and ~2kB on 32-bit for ~600 zones. +- Remove `LinkManager` and `LinkRegistry`. +- Unify links, adding an additional `targetInfo` field in `ZoneInfo`. + - Increases flash by ~1kB on 8-bit and ~2kB on 32-bit for ~600 zones. **v2.1.1+** -* Simplify ZoneRule.letter handling to use ZoneRule.letterIndex for all letters, +- Simplify ZoneRule.letter handling to use ZoneRule.letterIndex for all letters, not just ones over 1 character long. On 8-bit AVR: - * BasicZoneProcessor - * Increases flash consumption for 1-2 zones by ~200 bytes. - * No change for the full TZ database. - * ExtendedZoneProcessor - * No change for 1-2 zones. - * Decreases flash consumption by ~300 bytes for full TZ database. + - BasicZoneProcessor + - Increases flash consumption for 1-2 zones by ~200 bytes. + - No change for the full TZ database. + - ExtendedZoneProcessor + - No change for 1-2 zones. + - Decreases flash consumption by ~300 bytes for full TZ database. **v2.2.0** -* Upgrade tool chain - * Arduino AVR from 1.8.5 to 1.8.6 - * STM32duino from 2.3.0 to 2.4.0 - * ESP8266 from 3.0.2 to 3.1.2 failed, reverted back to 3.0.2 - * ESP32 from 2.0.5 to 2.0.7 -* Add support for Seeed XIAO SAMD21 - * Using Seeeduino SAMD Boards 1.8.3 -* Upgrade to TZDB 2023b +- Upgrade tool chain + - Arduino AVR from 1.8.5 to 1.8.6 + - STM32duino from 2.3.0 to 2.4.0 + - ESP8266 from 3.0.2 to 3.1.2 failed, reverted back to 3.0.2 + - ESP32 from 2.0.5 to 2.0.7 +- Add support for Seeed XIAO SAMD21 + - Using Seeeduino SAMD Boards 1.8.3 +- Upgrade to TZDB 2023b **v2.2.2** -* Upgrade to TZDB 2023c +- Upgrade to TZDB 2023c **v2.2.3** -* Add support for Adafruit ItsyBitsy M4 - * Using Adafruit SAMD Boards 1.7.11 -* Remove Teensy 3.2 - * Nearing end of life. Moved to Tier 2 (should work). -* Upgrade tool chain - * Seeeduino SAMD Boards 1.8.4 - * STM32duino Boards 2.5.0 - * ESP32 Boards 2.0.9 +- Add support for Adafruit ItsyBitsy M4 + - Using Adafruit SAMD Boards 1.7.11 +- Remove Teensy 3.2 + - Nearing end of life. Moved to Tier 2 (should work). +- Upgrade tool chain + - Seeeduino SAMD Boards 1.8.4 + - STM32duino Boards 2.5.0 + - ESP32 Boards 2.0.9 **v2.3.0** -* Implement 1-second resolution in ExtendedZoneProcessor (decoupled from +- Implement 1-second resolution in ExtendedZoneProcessor (decoupled from zonedbx storage format). - * Increases flash usage by ~1kB on 8-bit processors, but only 0-100 bytes + - Increases flash usage by ~1kB on 8-bit processors, but only 0-100 bytes on 32-bit processors. - * Enables it to be also used as the CompleteZoneProcessor class. -* Implement CompleteZoneProcessor as a specialization of ExtendedZoneProcessor. - * Enables the creation of `zonedbc` database which contains all TZDB + - Enables it to be also used as the CompleteZoneProcessor class. +- Implement CompleteZoneProcessor as a specialization of ExtendedZoneProcessor. + - Enables the creation of `zonedbc` database which contains all TZDB timezones, for all years going back to 1844, the earliest transition in the TZDB. - * The flash consumption of zonedbc is roughly 2X of zonedbx. -* Revert `zonedb` to use 8-bit year fields. - * Increases flash memory consumption for BasicZoneManager w/ 1 zone by + - The flash consumption of zonedbc is roughly 2X of zonedbx. +- Revert `zonedb` to use 8-bit year fields. + - Increases flash memory consumption for BasicZoneManager w/ 1 zone by around 150 bytes. - * Decreases flash memory cosumption for BasicZoneManager w/ all timezones by + - Decreases flash memory cosumption for BasicZoneManager w/ all timezones by 800-900 bytes. -* Revert `zonedbx` to use 8-bit year fields. - * Increase flash memory consumption of ExtendedZoneManager w/ 1 zone by +- Revert `zonedbx` to use 8-bit year fields. + - Increase flash memory consumption of ExtendedZoneManager w/ 1 zone by around 220 bytes. - * Decreases flash memory cosumption for ExtendedZoneManager w/ all timezones + - Decreases flash memory cosumption for ExtendedZoneManager w/ all timezones by ~2000 bytes. -* Move ZoneContext and its string arrays into PROGMEM. - * Reduces RAM usage by 150-200 bytes on AVR and ESP8266 processors. -* Merge `createAbbreviation()` of BasicZoneProcessor and ExtendedZoneProcessor - * `BasicZoneProcessor`: Slight (30-60 bytes) increase in flash memory, +- Move ZoneContext and its string arrays into PROGMEM. + - Reduces RAM usage by 150-200 bytes on AVR and ESP8266 processors. +- Merge `createAbbreviation()` of BasicZoneProcessor and ExtendedZoneProcessor + - `BasicZoneProcessor`: Slight (30-60 bytes) increase in flash memory, no change in RAM usage. - * `ExtendedZoneProcessor`: Slight (30-60 bytes) increase in flash memory. + - `ExtendedZoneProcessor`: Slight (30-60 bytes) increase in flash memory. But saves ~16 bytes of RAM for 8-bit, ~64 bytes of RAM for 32-bit. -* Support multi-character `ZoneRule.letter` field - * Enables `Africa/Windhoek` and `America/Belize` in the `zonedb` database +- Support multi-character `ZoneRule.letter` field + - Enables `Africa/Windhoek` and `America/Belize` in the `zonedb` database used with `BasicZoneProcessor`. - * Increases flash memory for `zonedb` by ~150 bytes on 8-bit, ~200 on 32-bit + - Increases flash memory for `zonedb` by ~150 bytes on 8-bit, ~200 on 32-bit processors. **v2.4.0** -* Support %z format. -* Upgrade to TZDB 2024b. -* Upgrade Arduino CLI to 1.1.1 -* AVR: - * BasicZoneManager increases ~600 bytes - * ExtendedZoneManager increases ~700 bytes - * `zonedb` *decreases* ~400 bytes - * `zonedbx` *decreases* ~350 bytes -* ESP8266 - * BasicZoneManager increases ~500 bytes - * ExtendedZoneManager increases ~400 bytes - * `zonedb` *decreases* ~300 bytes - * `zonedbx` *decreases* ~100 kiB +- Support %z format. +- Upgrade to TZDB 2024b. +- Upgrade Arduino CLI to 1.1.1 +- AVR: + - BasicZoneManager increases ~600 bytes + - ExtendedZoneManager increases ~700 bytes + - `zonedb` *decreases* ~400 bytes + - `zonedbx` *decreases* ~350 bytes +- ESP8266 + - BasicZoneManager increases ~500 bytes + - ExtendedZoneManager increases ~400 bytes + - `zonedb` *decreases* ~300 bytes + - `zonedbx` *decreases* ~100 kiB + +**v4.0.0** +- Upgrade to Arduino CLI 1.3.1. +- Memory consumption increases by 10-100 bytes on various platforms. Probably + happened in v3.0.0 when TZDB upgraded to 2025b. # Legend -* [1] Delta flash and ram consumption for `Basic ZoneSorterByName` and +- [1] Delta flash and ram consumption for `Basic ZoneSorterByName` and `Basic ZoneSorterByOffsetAndName` are calculated by subtracting the `BasicZoneManager (1 zone)` numbers, to isolate the memory consumption of just the sorter classes. -* [2] Delta flash and ram consumption for `Extended ZoneSorterByName` and +- [2] Delta flash and ram consumption for `Extended ZoneSorterByName` and `Extended ZoneSorterByOffsetAndName` are calculated by subtracting the `ExtendedZoneManager (1 zone)` numbers, to isolate the memory consumption of just the sorter classes. -* [3] Delta flash and ram consumption for `Complete ZoneSorterByName` and +- [3] Delta flash and ram consumption for `Complete ZoneSorterByName` and `Complete ZoneSorterByOffsetAndName` are calculated by subtracting the `CompleteZoneManager (1 zone)` numbers, to isolate the memory consumption of just the sorter classes. -* An entry of `-1` indicates that the memory usage exceeded the maximum of the +- An entry of `-1` indicates that the memory usage exceeded the maximum of the microcontroller and the compiler did not generate the desired information. ## Arduino Nano -* 16MHz ATmega328P -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Arduino AVR Boards 1.8.6 +- 16MHz ATmega328P +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Arduino AVR Boards 1.8.6 ``` +----------------------------------------------------------------------+ @@ -316,27 +321,27 @@ ASCII table. |----------------------------------------+--------------+--------------| | baseline | 474/ 11 | 0/ 0 | |----------------------------------------+--------------+--------------| -| LocalDateTime | 1108/ 21 | 634/ 10 | +| PlainDateTime | 1108/ 21 | 634/ 10 | | ZonedDateTime | 1444/ 30 | 970/ 19 | | Manual ZoneManager | 1406/ 13 | 932/ 2 | |----------------------------------------+--------------+--------------| -| Basic TimeZone (1 zone) | 8238/ 225 | 7764/ 214 | -| Basic TimeZone (2 zones) | 8784/ 379 | 8310/ 368 | -| BasicZoneManager (1 zone) | 8448/ 236 | 7974/ 225 | -| BasicZoneManager (all zones) | 19508/ 386 | 19034/ 375 | -| BasicZoneManager (all zones+links) | 25116/ 386 | 24642/ 375 | +| Basic TimeZone (1 zone) | 8290/ 225 | 7816/ 214 | +| Basic TimeZone (2 zones) | 8822/ 379 | 8348/ 368 | +| BasicZoneManager (1 zone) | 8500/ 236 | 8026/ 225 | +| BasicZoneManager (all zones) | 19560/ 386 | 19086/ 375 | +| BasicZoneManager (all zones+links) | 25168/ 386 | 24694/ 375 | |----------------------------------------+--------------+--------------| -| Basic ZoneSorterByName [1] | 9222/ 238 | 774/ 2 | -| Basic ZoneSorterByOffsetAndName [1] | 9344/ 238 | 896/ 2 | +| Basic ZoneSorterByName [1] | 9252/ 238 | 752/ 2 | +| Basic ZoneSorterByOffsetAndName [1] | 9374/ 238 | 874/ 2 | |----------------------------------------+--------------+--------------| -| Extended TimeZone (1 zone) | 12072/ 643 | 11598/ 632 | -| Extended TimeZone (2 zones) | 12670/ 1215 | 12196/ 1204 | -| ExtendedZoneManager (1 zone) | 12252/ 649 | 11778/ 638 | -| ExtendedZoneManager (all zones) | 34740/ 847 | 34266/ 836 | -| ExtendedZoneManager (all zones+links) | 41000/ 847 | 40526/ 836 | +| Extended TimeZone (1 zone) | 12138/ 643 | 11664/ 632 | +| Extended TimeZone (2 zones) | 12716/ 1215 | 12242/ 1204 | +| ExtendedZoneManager (1 zone) | 12318/ 649 | 11844/ 638 | +| ExtendedZoneManager (all zones) | 34806/ 847 | 34332/ 836 | +| ExtendedZoneManager (all zones+links) | 41066/ 847 | 40592/ 836 | |----------------------------------------+--------------+--------------| -| Extended ZoneSorterByName [2] | 13022/ 651 | 770/ 2 | -| Extended ZoneSorterByOffsetAndName [2] | 13116/ 651 | 864/ 2 | +| Extended ZoneSorterByName [2] | 13066/ 651 | 748/ 2 | +| Extended ZoneSorterByOffsetAndName [2] | 13160/ 651 | 842/ 2 | |----------------------------------------+--------------+--------------| | Complete TimeZone (1 zone) | -1/ -1 | -1/ -1 | | Complete TimeZone (2 zones) | -1/ -1 | -1/ -1 | @@ -352,9 +357,9 @@ ASCII table. ## Sparkfun Pro Micro -* 16 MHz ATmega32U4 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* SparkFun AVR Boards 1.1.13 +- 16 MHz ATmega32U4 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- SparkFun AVR Boards 1.1.13 ``` +----------------------------------------------------------------------+ @@ -362,27 +367,27 @@ ASCII table. |----------------------------------------+--------------+--------------| | baseline | 3470/ 153 | 0/ 0 | |----------------------------------------+--------------+--------------| -| LocalDateTime | 4080/ 161 | 610/ 8 | +| PlainDateTime | 4080/ 161 | 610/ 8 | | ZonedDateTime | 4416/ 170 | 946/ 17 | | Manual ZoneManager | 4400/ 153 | 930/ 0 | |----------------------------------------+--------------+--------------| -| Basic TimeZone (1 zone) | 11210/ 365 | 7740/ 212 | -| Basic TimeZone (2 zones) | 11738/ 517 | 8268/ 364 | -| BasicZoneManager (1 zone) | 11420/ 376 | 7950/ 223 | -| BasicZoneManager (all zones) | 22480/ 526 | 19010/ 373 | -| BasicZoneManager (all zones+links) | 28088/ 526 | 24618/ 373 | +| Basic TimeZone (1 zone) | 11262/ 365 | 7792/ 212 | +| Basic TimeZone (2 zones) | 11776/ 517 | 8306/ 364 | +| BasicZoneManager (1 zone) | 11472/ 376 | 8002/ 223 | +| BasicZoneManager (all zones) | 22532/ 526 | 19062/ 373 | +| BasicZoneManager (all zones+links) | 28140/ 526 | 24670/ 373 | |----------------------------------------+--------------+--------------| -| Basic ZoneSorterByName [1] | 12194/ 378 | 774/ 2 | -| Basic ZoneSorterByOffsetAndName [1] | 12316/ 378 | 896/ 2 | +| Basic ZoneSorterByName [1] | 12224/ 378 | 752/ 2 | +| Basic ZoneSorterByOffsetAndName [1] | 12346/ 378 | 874/ 2 | |----------------------------------------+--------------+--------------| -| Extended TimeZone (1 zone) | 15028/ 783 | 11558/ 630 | -| Extended TimeZone (2 zones) | 15624/ 1353 | 12154/ 1200 | -| ExtendedZoneManager (1 zone) | 15208/ 789 | 11738/ 636 | -| ExtendedZoneManager (all zones) | 37712/ 987 | 34242/ 834 | -| ExtendedZoneManager (all zones+links) | 43972/ 987 | 40502/ 834 | +| Extended TimeZone (1 zone) | 15094/ 783 | 11624/ 630 | +| Extended TimeZone (2 zones) | 15670/ 1353 | 12200/ 1200 | +| ExtendedZoneManager (1 zone) | 15274/ 789 | 11804/ 636 | +| ExtendedZoneManager (all zones) | 37778/ 987 | 34308/ 834 | +| ExtendedZoneManager (all zones+links) | 44038/ 987 | 40568/ 834 | |----------------------------------------+--------------+--------------| -| Extended ZoneSorterByName [2] | 15978/ 791 | 770/ 2 | -| Extended ZoneSorterByOffsetAndName [2] | 16072/ 791 | 864/ 2 | +| Extended ZoneSorterByName [2] | 16022/ 791 | 748/ 2 | +| Extended ZoneSorterByOffsetAndName [2] | 16116/ 791 | 842/ 2 | |----------------------------------------+--------------+--------------| | Complete TimeZone (1 zone) | -1/ -1 | -1/ -1 | | Complete TimeZone (2 zones) | -1/ -1 | -1/ -1 | @@ -398,9 +403,9 @@ ASCII table. ## Seeed Studio XIAO SAMD21 -* SAMD21, 48 MHz ARM Cortex-M0+ -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Seeeduino SAMD Boards 1.8.4 +- SAMD21, 48 MHz ARM Cortex-M0+ +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Seeeduino SAMD Boards 1.8.4 ``` +----------------------------------------------------------------------+ @@ -408,45 +413,45 @@ ASCII table. |----------------------------------------+--------------+--------------| | baseline | 34068/ 0 | 0/ 0 | |----------------------------------------+--------------+--------------| -| LocalDateTime | 34372/ 0 | 304/ 0 | -| ZonedDateTime | 35116/ 0 | 1048/ 0 | -| Manual ZoneManager | 35100/ 0 | 1032/ 0 | +| PlainDateTime | 34372/ 0 | 304/ 0 | +| ZonedDateTime | 35140/ 0 | 1072/ 0 | +| Manual ZoneManager | 35132/ 0 | 1064/ 0 | |----------------------------------------+--------------+--------------| -| Basic TimeZone (1 zone) | 39212/ 0 | 5144/ 0 | -| Basic TimeZone (2 zones) | 39572/ 0 | 5504/ 0 | -| BasicZoneManager (1 zone) | 39316/ 0 | 5248/ 0 | -| BasicZoneManager (all zones) | 54436/ 0 | 20368/ 0 | -| BasicZoneManager (all zones+links) | 63052/ 0 | 28984/ 0 | +| Basic TimeZone (1 zone) | 39252/ 0 | 5184/ 0 | +| Basic TimeZone (2 zones) | 39564/ 0 | 5496/ 0 | +| BasicZoneManager (1 zone) | 39356/ 0 | 5288/ 0 | +| BasicZoneManager (all zones) | 54476/ 0 | 20408/ 0 | +| BasicZoneManager (all zones+links) | 63092/ 0 | 29024/ 0 | |----------------------------------------+--------------+--------------| -| Basic ZoneSorterByName [1] | 39804/ 0 | 488/ 0 | -| Basic ZoneSorterByOffsetAndName [1] | 39868/ 0 | 552/ 0 | +| Basic ZoneSorterByName [1] | 39844/ 0 | 488/ 0 | +| Basic ZoneSorterByOffsetAndName [1] | 39908/ 0 | 552/ 0 | |----------------------------------------+--------------+--------------| -| Extended TimeZone (1 zone) | 41236/ 0 | 7168/ 0 | -| Extended TimeZone (2 zones) | 41596/ 0 | 7528/ 0 | -| ExtendedZoneManager (1 zone) | 41340/ 0 | 7272/ 0 | -| ExtendedZoneManager (all zones) | 71636/ 0 | 37568/ 0 | -| ExtendedZoneManager (all zones+links) | 81236/ 0 | 47168/ 0 | +| Extended TimeZone (1 zone) | 41268/ 0 | 7200/ 0 | +| Extended TimeZone (2 zones) | 41580/ 0 | 7512/ 0 | +| ExtendedZoneManager (1 zone) | 41372/ 0 | 7304/ 0 | +| ExtendedZoneManager (all zones) | 71668/ 0 | 37600/ 0 | +| ExtendedZoneManager (all zones+links) | 81268/ 0 | 47200/ 0 | |----------------------------------------+--------------+--------------| -| Extended ZoneSorterByName [2] | 41836/ 0 | 496/ 0 | -| Extended ZoneSorterByOffsetAndName [2] | 41892/ 0 | 552/ 0 | +| Extended ZoneSorterByName [2] | 41868/ 0 | 496/ 0 | +| Extended ZoneSorterByOffsetAndName [2] | 41924/ 0 | 552/ 0 | |----------------------------------------+--------------+--------------| -| Complete TimeZone (1 zone) | 41596/ 0 | 7528/ 0 | -| Complete TimeZone (2 zones) | 42828/ 0 | 8760/ 0 | -| CompleteZoneManager (1 zone) | 41700/ 0 | 7632/ 0 | -| CompleteZoneManager (all zones) | 121172/ 0 | 87104/ 0 | -| CompleteZoneManager (all zones+links) | 130772/ 0 | 96704/ 0 | +| Complete TimeZone (1 zone) | 41628/ 0 | 7560/ 0 | +| Complete TimeZone (2 zones) | 42812/ 0 | 8744/ 0 | +| CompleteZoneManager (1 zone) | 41732/ 0 | 7664/ 0 | +| CompleteZoneManager (all zones) | 121204/ 0 | 87136/ 0 | +| CompleteZoneManager (all zones+links) | 130804/ 0 | 96736/ 0 | |----------------------------------------+--------------+--------------| -| Complete ZoneSorterByName [3] | 42196/ 0 | 496/ 0 | -| Complete ZoneSorterByOffsetAndName [3] | 42252/ 0 | 552/ 0 | +| Complete ZoneSorterByName [3] | 42228/ 0 | 496/ 0 | +| Complete ZoneSorterByOffsetAndName [3] | 42284/ 0 | 552/ 0 | +---------------------------------------------------------------------+ ``` ## STM32 Blue Pill -* STM32F103C8, 72 MHz ARM Cortex-M3 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* STM32duino 2.5.0 +- STM32F103C8, 72 MHz ARM Cortex-M3 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- STM32duino 2.5.0 ``` +----------------------------------------------------------------------+ @@ -454,45 +459,45 @@ ASCII table. |----------------------------------------+--------------+--------------| | baseline | 21348/ 4376 | 0/ 0 | |----------------------------------------+--------------+--------------| -| LocalDateTime | 21704/ 4392 | 356/ 16 | +| PlainDateTime | 21704/ 4392 | 356/ 16 | | ZonedDateTime | 21784/ 4408 | 436/ 32 | -| Manual ZoneManager | 22360/ 4384 | 1012/ 8 | -|----------------------------------------+--------------+--------------| -| Basic TimeZone (1 zone) | 26404/ 4592 | 5056/ 216 | -| Basic TimeZone (2 zones) | 26776/ 4800 | 5428/ 424 | -| BasicZoneManager (1 zone) | 26524/ 4612 | 5176/ 236 | -| BasicZoneManager (all zones) | 42016/ 4612 | 20668/ 236 | -| BasicZoneManager (all zones+links) | 50920/ 4612 | 29572/ 236 | -|----------------------------------------+--------------+--------------| -| Basic ZoneSorterByName [1] | 26992/ 4616 | 468/ 4 | -| Basic ZoneSorterByOffsetAndName [1] | 27076/ 4616 | 552/ 4 | -|----------------------------------------+--------------+--------------| -| Extended TimeZone (1 zone) | 28184/ 5148 | 6836/ 772 | -| Extended TimeZone (2 zones) | 28560/ 5912 | 7212/ 1536 | -| ExtendedZoneManager (1 zone) | 28300/ 5156 | 6952/ 780 | -| ExtendedZoneManager (all zones) | 59180/ 5156 | 37832/ 780 | -| ExtendedZoneManager (all zones+links) | 69124/ 5156 | 47776/ 780 | -|----------------------------------------+--------------+--------------| -| Extended ZoneSorterByName [2] | 28764/ 5160 | 464/ 4 | -| Extended ZoneSorterByOffsetAndName [2] | 28840/ 5160 | 540/ 4 | -|----------------------------------------+--------------+--------------| -| Complete TimeZone (1 zone) | 28568/ 5148 | 7220/ 772 | -| Complete TimeZone (2 zones) | 29804/ 5912 | 8456/ 1536 | -| CompleteZoneManager (1 zone) | 28684/ 5156 | 7336/ 780 | -| CompleteZoneManager (all zones) | 108592/ 5156 | 87244/ 780 | -| CompleteZoneManager (all zones+links) | 118536/ 5156 | 97188/ 780 | -|----------------------------------------+--------------+--------------| -| Complete ZoneSorterByName [3] | 29148/ 5160 | 464/ 4 | -| Complete ZoneSorterByOffsetAndName [3] | 29220/ 5160 | 536/ 4 | +| Manual ZoneManager | 22396/ 4384 | 1048/ 8 | +|----------------------------------------+--------------+--------------| +| Basic TimeZone (1 zone) | 26444/ 4592 | 5096/ 216 | +| Basic TimeZone (2 zones) | 26780/ 4800 | 5432/ 424 | +| BasicZoneManager (1 zone) | 26564/ 4612 | 5216/ 236 | +| BasicZoneManager (all zones) | 42056/ 4612 | 20708/ 236 | +| BasicZoneManager (all zones+links) | 50960/ 4612 | 29612/ 236 | +|----------------------------------------+--------------+--------------| +| Basic ZoneSorterByName [1] | 27028/ 4616 | 464/ 4 | +| Basic ZoneSorterByOffsetAndName [1] | 27112/ 4616 | 548/ 4 | +|----------------------------------------+--------------+--------------| +| Extended TimeZone (1 zone) | 28216/ 5148 | 6868/ 772 | +| Extended TimeZone (2 zones) | 28552/ 5912 | 7204/ 1536 | +| ExtendedZoneManager (1 zone) | 28332/ 5156 | 6984/ 780 | +| ExtendedZoneManager (all zones) | 59212/ 5156 | 37864/ 780 | +| ExtendedZoneManager (all zones+links) | 69156/ 5156 | 47808/ 780 | +|----------------------------------------+--------------+--------------| +| Extended ZoneSorterByName [2] | 28800/ 5160 | 468/ 4 | +| Extended ZoneSorterByOffsetAndName [2] | 28876/ 5160 | 544/ 4 | +|----------------------------------------+--------------+--------------| +| Complete TimeZone (1 zone) | 28600/ 5148 | 7252/ 772 | +| Complete TimeZone (2 zones) | 29796/ 5912 | 8448/ 1536 | +| CompleteZoneManager (1 zone) | 28716/ 5156 | 7368/ 780 | +| CompleteZoneManager (all zones) | 108624/ 5156 | 87276/ 780 | +| CompleteZoneManager (all zones+links) | 118568/ 5156 | 97220/ 780 | +|----------------------------------------+--------------+--------------| +| Complete ZoneSorterByName [3] | 29184/ 5160 | 468/ 4 | +| Complete ZoneSorterByOffsetAndName [3] | 29256/ 5160 | 540/ 4 | +---------------------------------------------------------------------+ ``` ## SAMD51 (Adafruit ItsyBitsy M4) -* SAMD51, 120 MHz ARM Cortex-M4 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Adafruit SAMD 1.7.11 +- SAMD51, 120 MHz ARM Cortex-M4 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Adafruit SAMD 1.7.11 ``` +----------------------------------------------------------------------+ @@ -500,45 +505,45 @@ ASCII table. |----------------------------------------+--------------+--------------| | baseline | 10580/ 0 | 0/ 0 | |----------------------------------------+--------------+--------------| -| LocalDateTime | 10872/ 0 | 292/ 0 | -| ZonedDateTime | 11544/ 0 | 964/ 0 | -| Manual ZoneManager | 11536/ 0 | 956/ 0 | +| PlainDateTime | 10872/ 0 | 292/ 0 | +| ZonedDateTime | 11588/ 0 | 1008/ 0 | +| Manual ZoneManager | 11580/ 0 | 1000/ 0 | |----------------------------------------+--------------+--------------| -| Basic TimeZone (1 zone) | 15640/ 0 | 5060/ 0 | -| Basic TimeZone (2 zones) | 16008/ 0 | 5428/ 0 | -| BasicZoneManager (1 zone) | 15760/ 0 | 5180/ 0 | -| BasicZoneManager (all zones) | 30884/ 0 | 20304/ 0 | -| BasicZoneManager (all zones+links) | 39504/ 0 | 28924/ 0 | +| Basic TimeZone (1 zone) | 15684/ 0 | 5104/ 0 | +| Basic TimeZone (2 zones) | 16024/ 0 | 5444/ 0 | +| BasicZoneManager (1 zone) | 15804/ 0 | 5224/ 0 | +| BasicZoneManager (all zones) | 30928/ 0 | 20348/ 0 | +| BasicZoneManager (all zones+links) | 39548/ 0 | 28968/ 0 | |----------------------------------------+--------------+--------------| -| Basic ZoneSorterByName [1] | 16248/ 0 | 488/ 0 | -| Basic ZoneSorterByOffsetAndName [1] | 16300/ 0 | 540/ 0 | +| Basic ZoneSorterByName [1] | 16288/ 0 | 484/ 0 | +| Basic ZoneSorterByOffsetAndName [1] | 16340/ 0 | 536/ 0 | |----------------------------------------+--------------+--------------| -| Extended TimeZone (1 zone) | 17448/ 0 | 6868/ 0 | -| Extended TimeZone (2 zones) | 17824/ 0 | 7244/ 0 | -| ExtendedZoneManager (1 zone) | 17564/ 0 | 6984/ 0 | -| ExtendedZoneManager (all zones) | 47868/ 0 | 37288/ 0 | -| ExtendedZoneManager (all zones+links) | 57464/ 0 | 46884/ 0 | +| Extended TimeZone (1 zone) | 17488/ 0 | 6908/ 0 | +| Extended TimeZone (2 zones) | 17836/ 0 | 7256/ 0 | +| ExtendedZoneManager (1 zone) | 17608/ 0 | 7028/ 0 | +| ExtendedZoneManager (all zones) | 47912/ 0 | 37332/ 0 | +| ExtendedZoneManager (all zones+links) | 57508/ 0 | 46928/ 0 | |----------------------------------------+--------------+--------------| -| Extended ZoneSorterByName [2] | 18052/ 0 | 488/ 0 | -| Extended ZoneSorterByOffsetAndName [2] | 18104/ 0 | 540/ 0 | +| Extended ZoneSorterByName [2] | 18092/ 0 | 484/ 0 | +| Extended ZoneSorterByOffsetAndName [2] | 18144/ 0 | 536/ 0 | |----------------------------------------+--------------+--------------| -| Complete TimeZone (1 zone) | 17792/ 0 | 7212/ 0 | -| Complete TimeZone (2 zones) | 19028/ 0 | 8448/ 0 | -| CompleteZoneManager (1 zone) | 17908/ 0 | 7328/ 0 | -| CompleteZoneManager (all zones) | 97380/ 0 | 86800/ 0 | -| CompleteZoneManager (all zones+links) | 106976/ 0 | 96396/ 0 | +| Complete TimeZone (1 zone) | 17832/ 0 | 7252/ 0 | +| Complete TimeZone (2 zones) | 19040/ 0 | 8460/ 0 | +| CompleteZoneManager (1 zone) | 17952/ 0 | 7372/ 0 | +| CompleteZoneManager (all zones) | 97424/ 0 | 86844/ 0 | +| CompleteZoneManager (all zones+links) | 107020/ 0 | 96440/ 0 | |----------------------------------------+--------------+--------------| -| Complete ZoneSorterByName [3] | 18396/ 0 | 488/ 0 | -| Complete ZoneSorterByOffsetAndName [3] | 18444/ 0 | 536/ 0 | +| Complete ZoneSorterByName [3] | 18436/ 0 | 484/ 0 | +| Complete ZoneSorterByOffsetAndName [3] | 18484/ 0 | 532/ 0 | +---------------------------------------------------------------------+ ``` ## ESP8266 -* NodeMCU 1.0, 80MHz ESP8266 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* ESP8266 Boards 3.0.2 +- NodeMCU 1.0, 80MHz ESP8266 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- ESP8266 Boards 3.0.2 ``` +----------------------------------------------------------------------+ @@ -546,45 +551,45 @@ ASCII table. |----------------------------------------+--------------+--------------| | baseline | 260089/27892 | 0/ 0 | |----------------------------------------+--------------+--------------| -| LocalDateTime | 260613/27912 | 524/ 20 | -| ZonedDateTime | 261573/27928 | 1484/ 36 | -| Manual ZoneManager | 261553/27900 | 1464/ 8 | +| PlainDateTime | 260613/27912 | 524/ 20 | +| ZonedDateTime | 261589/27928 | 1500/ 36 | +| Manual ZoneManager | 261569/27900 | 1480/ 8 | |----------------------------------------+--------------+--------------| -| Basic TimeZone (1 zone) | 267625/28292 | 7536/ 400 | -| Basic TimeZone (2 zones) | 268025/28500 | 7936/ 608 | -| BasicZoneManager (1 zone) | 267785/28316 | 7696/ 424 | -| BasicZoneManager (all zones) | 283305/28316 | 23216/ 424 | -| BasicZoneManager (all zones+links) | 292201/28316 | 32112/ 424 | +| Basic TimeZone (1 zone) | 267641/28292 | 7552/ 400 | +| Basic TimeZone (2 zones) | 268057/28500 | 7968/ 608 | +| BasicZoneManager (1 zone) | 267801/28316 | 7712/ 424 | +| BasicZoneManager (all zones) | 283321/28316 | 23232/ 424 | +| BasicZoneManager (all zones+links) | 292217/28316 | 32128/ 424 | |----------------------------------------+--------------+--------------| -| Basic ZoneSorterByName [1] | 268521/28316 | 736/ 0 | -| Basic ZoneSorterByOffsetAndName [1] | 268665/28316 | 880/ 0 | +| Basic ZoneSorterByName [1] | 268537/28316 | 736/ 0 | +| Basic ZoneSorterByOffsetAndName [1] | 268681/28316 | 880/ 0 | |----------------------------------------+--------------+--------------| -| Extended TimeZone (1 zone) | 270073/28900 | 9984/ 1008 | -| Extended TimeZone (2 zones) | 270489/29660 | 10400/ 1768 | -| ExtendedZoneManager (1 zone) | 270217/28908 | 10128/ 1016 | -| ExtendedZoneManager (all zones) | 301129/28908 | 41040/ 1016 | -| ExtendedZoneManager (all zones+links) | 311065/28908 | 50976/ 1016 | +| Extended TimeZone (1 zone) | 270089/28900 | 10000/ 1008 | +| Extended TimeZone (2 zones) | 270505/29660 | 10416/ 1768 | +| ExtendedZoneManager (1 zone) | 270233/28908 | 10144/ 1016 | +| ExtendedZoneManager (all zones) | 301145/28908 | 41056/ 1016 | +| ExtendedZoneManager (all zones+links) | 311081/28908 | 50992/ 1016 | |----------------------------------------+--------------+--------------| -| Extended ZoneSorterByName [2] | 270969/28908 | 752/ 0 | -| Extended ZoneSorterByOffsetAndName [2] | 271033/28908 | 816/ 0 | +| Extended ZoneSorterByName [2] | 270985/28908 | 752/ 0 | +| Extended ZoneSorterByOffsetAndName [2] | 271049/28908 | 816/ 0 | |----------------------------------------+--------------+--------------| -| Complete TimeZone (1 zone) | 270393/29092 | 10304/ 1200 | -| Complete TimeZone (2 zones) | 271673/29852 | 11584/ 1960 | -| CompleteZoneManager (1 zone) | 270537/29100 | 10448/ 1208 | -| CompleteZoneManager (all zones) | 350473/29100 | 90384/ 1208 | -| CompleteZoneManager (all zones+links) | 360425/29100 | 100336/ 1208 | +| Complete TimeZone (1 zone) | 270409/29092 | 10320/ 1200 | +| Complete TimeZone (2 zones) | 271689/29852 | 11600/ 1960 | +| CompleteZoneManager (1 zone) | 270553/29100 | 10464/ 1208 | +| CompleteZoneManager (all zones) | 350489/29100 | 90400/ 1208 | +| CompleteZoneManager (all zones+links) | 360441/29100 | 100352/ 1208 | |----------------------------------------+--------------+--------------| -| Complete ZoneSorterByName [3] | 271289/29100 | 752/ 0 | -| Complete ZoneSorterByOffsetAndName [3] | 271337/29100 | 800/ 0 | +| Complete ZoneSorterByName [3] | 271305/29100 | 752/ 0 | +| Complete ZoneSorterByOffsetAndName [3] | 271353/29100 | 800/ 0 | +---------------------------------------------------------------------+ ``` ## ESP32 -* ESP32-01 Dev Board, 240 MHz Tensilica LX6 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* ESP32 Boards 2.0.9 +- ESP32-01 Dev Board, 240 MHz Tensilica LX6 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- ESP32 Boards 2.0.9 ``` +----------------------------------------------------------------------+ @@ -592,36 +597,36 @@ ASCII table. |----------------------------------------+--------------+--------------| | baseline | 228345/21976 | 0/ 0 | |----------------------------------------+--------------+--------------| -| LocalDateTime | 230613/21984 | 2268/ 8 | -| ZonedDateTime | 231593/22000 | 3248/ 24 | -| Manual ZoneManager | 231605/21976 | 3260/ 0 | +| PlainDateTime | 230613/21984 | 2268/ 8 | +| ZonedDateTime | 231617/22000 | 3272/ 24 | +| Manual ZoneManager | 231629/21976 | 3284/ 0 | |----------------------------------------+--------------+--------------| -| Basic TimeZone (1 zone) | 236217/22184 | 7872/ 208 | -| Basic TimeZone (2 zones) | 236653/22392 | 8308/ 416 | -| BasicZoneManager (1 zone) | 236365/22208 | 8020/ 232 | -| BasicZoneManager (all zones) | 251869/22208 | 23524/ 232 | -| BasicZoneManager (all zones+links) | 260765/22208 | 32420/ 232 | +| Basic TimeZone (1 zone) | 236241/22184 | 7896/ 208 | +| Basic TimeZone (2 zones) | 236669/22392 | 8324/ 416 | +| BasicZoneManager (1 zone) | 236389/22208 | 8044/ 232 | +| BasicZoneManager (all zones) | 251893/22208 | 23548/ 232 | +| BasicZoneManager (all zones+links) | 260789/22208 | 32444/ 232 | |----------------------------------------+--------------+--------------| -| Basic ZoneSorterByName [1] | 236921/22208 | 556/ 0 | -| Basic ZoneSorterByOffsetAndName [1] | 237001/22208 | 636/ 0 | +| Basic ZoneSorterByName [1] | 236941/22208 | 552/ 0 | +| Basic ZoneSorterByOffsetAndName [1] | 237021/22208 | 632/ 0 | |----------------------------------------+--------------+--------------| -| Extended TimeZone (1 zone) | 238329/22744 | 9984/ 768 | -| Extended TimeZone (2 zones) | 238745/23504 | 10400/ 1528 | -| ExtendedZoneManager (1 zone) | 238465/22752 | 10120/ 776 | -| ExtendedZoneManager (all zones) | 269345/22752 | 41000/ 776 | -| ExtendedZoneManager (all zones+links) | 279297/22752 | 50952/ 776 | +| Extended TimeZone (1 zone) | 238349/22744 | 10004/ 768 | +| Extended TimeZone (2 zones) | 238753/23504 | 10408/ 1528 | +| ExtendedZoneManager (1 zone) | 238493/22752 | 10148/ 776 | +| ExtendedZoneManager (all zones) | 269373/22752 | 41028/ 776 | +| ExtendedZoneManager (all zones+links) | 279325/22752 | 50980/ 776 | |----------------------------------------+--------------+--------------| -| Extended ZoneSorterByName [2] | 239009/22752 | 544/ 0 | -| Extended ZoneSorterByOffsetAndName [2] | 239093/22752 | 628/ 0 | +| Extended ZoneSorterByName [2] | 239041/22752 | 548/ 0 | +| Extended ZoneSorterByOffsetAndName [2] | 239121/22752 | 628/ 0 | |----------------------------------------+--------------+--------------| -| Complete TimeZone (1 zone) | 238665/22744 | 10320/ 768 | -| Complete TimeZone (2 zones) | 239937/23504 | 11592/ 1528 | -| CompleteZoneManager (1 zone) | 238801/22752 | 10456/ 776 | -| CompleteZoneManager (all zones) | 318705/22752 | 90360/ 776 | -| CompleteZoneManager (all zones+links) | 328657/22752 | 100312/ 776 | +| Complete TimeZone (1 zone) | 238689/22744 | 10344/ 768 | +| Complete TimeZone (2 zones) | 239945/23504 | 11600/ 1528 | +| CompleteZoneManager (1 zone) | 238833/22752 | 10488/ 776 | +| CompleteZoneManager (all zones) | 318737/22752 | 90392/ 776 | +| CompleteZoneManager (all zones+links) | 328689/22752 | 100344/ 776 | |----------------------------------------+--------------+--------------| -| Complete ZoneSorterByName [3] | 239353/22752 | 552/ 0 | -| Complete ZoneSorterByOffsetAndName [3] | 239425/22752 | 624/ 0 | +| Complete ZoneSorterByName [3] | 239381/22752 | 548/ 0 | +| Complete ZoneSorterByOffsetAndName [3] | 239453/22752 | 620/ 0 | +---------------------------------------------------------------------+ ``` diff --git a/examples/MemoryBenchmark/esp32.txt b/examples/MemoryBenchmark/esp32.txt index af40f08c6..468ec49ec 100644 --- a/examples/MemoryBenchmark/esp32.txt +++ b/examples/MemoryBenchmark/esp32.txt @@ -1,25 +1,25 @@ 0 228345 1310720 21976 327680 1 230613 1310720 21984 327680 -2 231593 1310720 22000 327680 -3 231605 1310720 21976 327680 -4 236217 1310720 22184 327680 -5 236653 1310720 22392 327680 -6 236365 1310720 22208 327680 -7 251869 1310720 22208 327680 -8 260765 1310720 22208 327680 -9 236921 1310720 22208 327680 -10 237001 1310720 22208 327680 -11 238329 1310720 22744 327680 -12 238745 1310720 23504 327680 -13 238465 1310720 22752 327680 -14 269345 1310720 22752 327680 -15 279297 1310720 22752 327680 -16 239009 1310720 22752 327680 -17 239093 1310720 22752 327680 -18 238665 1310720 22744 327680 -19 239937 1310720 23504 327680 -20 238801 1310720 22752 327680 -21 318705 1310720 22752 327680 -22 328657 1310720 22752 327680 -23 239353 1310720 22752 327680 -24 239425 1310720 22752 327680 +2 231617 1310720 22000 327680 +3 231629 1310720 21976 327680 +4 236241 1310720 22184 327680 +5 236669 1310720 22392 327680 +6 236389 1310720 22208 327680 +7 251893 1310720 22208 327680 +8 260789 1310720 22208 327680 +9 236941 1310720 22208 327680 +10 237021 1310720 22208 327680 +11 238349 1310720 22744 327680 +12 238753 1310720 23504 327680 +13 238493 1310720 22752 327680 +14 269373 1310720 22752 327680 +15 279325 1310720 22752 327680 +16 239041 1310720 22752 327680 +17 239121 1310720 22752 327680 +18 238689 1310720 22744 327680 +19 239945 1310720 23504 327680 +20 238833 1310720 22752 327680 +21 318737 1310720 22752 327680 +22 328689 1310720 22752 327680 +23 239381 1310720 22752 327680 +24 239453 1310720 22752 327680 diff --git a/examples/MemoryBenchmark/esp8266.txt b/examples/MemoryBenchmark/esp8266.txt index 811f8143b..e03016a09 100644 --- a/examples/MemoryBenchmark/esp8266.txt +++ b/examples/MemoryBenchmark/esp8266.txt @@ -1,25 +1,25 @@ 0 260089 1044464 27892 81920 1 260613 1044464 27912 81920 -2 261573 1044464 27928 81920 -3 261553 1044464 27900 81920 -4 267625 1044464 28292 81920 -5 268025 1044464 28500 81920 -6 267785 1044464 28316 81920 -7 283305 1044464 28316 81920 -8 292201 1044464 28316 81920 -9 268521 1044464 28316 81920 -10 268665 1044464 28316 81920 -11 270073 1044464 28900 81920 -12 270489 1044464 29660 81920 -13 270217 1044464 28908 81920 -14 301129 1044464 28908 81920 -15 311065 1044464 28908 81920 -16 270969 1044464 28908 81920 -17 271033 1044464 28908 81920 -18 270393 1044464 29092 81920 -19 271673 1044464 29852 81920 -20 270537 1044464 29100 81920 -21 350473 1044464 29100 81920 -22 360425 1044464 29100 81920 -23 271289 1044464 29100 81920 -24 271337 1044464 29100 81920 +2 261589 1044464 27928 81920 +3 261569 1044464 27900 81920 +4 267641 1044464 28292 81920 +5 268057 1044464 28500 81920 +6 267801 1044464 28316 81920 +7 283321 1044464 28316 81920 +8 292217 1044464 28316 81920 +9 268537 1044464 28316 81920 +10 268681 1044464 28316 81920 +11 270089 1044464 28900 81920 +12 270505 1044464 29660 81920 +13 270233 1044464 28908 81920 +14 301145 1044464 28908 81920 +15 311081 1044464 28908 81920 +16 270985 1044464 28908 81920 +17 271049 1044464 28908 81920 +18 270409 1044464 29092 81920 +19 271689 1044464 29852 81920 +20 270553 1044464 29100 81920 +21 350489 1044464 29100 81920 +22 360441 1044464 29100 81920 +23 271305 1044464 29100 81920 +24 271353 1044464 29100 81920 diff --git a/examples/MemoryBenchmark/generate_readme.py b/examples/MemoryBenchmark/generate_readme.py index 28fb2069e..d4a80b7d3 100755 --- a/examples/MemoryBenchmark/generate_readme.py +++ b/examples/MemoryBenchmark/generate_readme.py @@ -29,7 +29,7 @@ the baseline, and its memory usage numbers are subtracted from the subsequent `FEATURE_*` memory usage. -**Version**: AceTime v3.0.0 +**Version**: AceTime v4.0.0 **DO NOT EDIT**: This file was auto-generated using `make README.md`. @@ -57,13 +57,13 @@ ## Library Size Changes **v1.3:** -* The `BasicZoneManager` and `ExtendedZoneManager` classes were unified under a +- The `BasicZoneManager` and `ExtendedZoneManager` classes were unified under a new parent interface `ZoneManager`. This seems to have caused the flash size to increase by around 1200 bytes on the AVR processors (Nano, Pro Micro), about 500 bytes on a SAMD, about 800 bytes on a ESP8266, 100 bytes on a ESP32, and 1400 bytes on a Teensy 3.2. The 8-bit processors suffer the most flash size increase proportional to their limited 32kB limit. -* Adding the `ZoneManager` interface simplifies a lot of the complexity with +- Adding the `ZoneManager` interface simplifies a lot of the complexity with saving and restoring time zones using the `TimeZoneData` object, and I think it is worth the extra cost of flash size. The mitigating factor is that applications targetted towards 8-bit processors will normally have fixed @@ -71,268 +71,273 @@ and avoid this penalty in flash size. **v1.4.1+:** -* Removed the `ZoneInfo::transitionBufSize` field from the `ZoneInfo` struct, +- Removed the `ZoneInfo::transitionBufSize` field from the `ZoneInfo` struct, which saves 1 byte on 8-bit processors (none on 32-bit processors due to 4-byte alignment). We save 266 bytes for `BasicZoneManager` and 386 bytes for `ExtendedZoneManager` when all the zones are loaded into the zone registry. -* Incorporated zoneName compression causes flash/ram usage to increase by - ~250/120 bytes when using only 1-2 zones, but *decreases* flash consumption by +- Incorporated zoneName compression causes flash/ram usage to increase by + ~250/120 bytes when using only 1-2 zones, but *decreases- flash consumption by 1200-2400 bytes when all the zones are loaded into the `ZoneManager`. **v1.5+:** -* Changing `ZoneProcessorCache::getType()` from a `virtual` to a non-virtual +- Changing `ZoneProcessorCache::getType()` from a `virtual` to a non-virtual method saves 250-350 bytes of flash memory when using a `BasicZoneManager` or an `ExtendedZoneManager` on an 8-bit AVR processor. Unexpectedly, the flash - memory consumption *increases* slightly (~0-50 bytes) for some ARM processors + memory consumption *increases- slightly (~0-50 bytes) for some ARM processors and the ESP32. Since those processors have far more flash memory, this seems like a good tradeoff. -* Changing `BasicZoneProcessor` and `ExtendedZoneProcessor` to be subclasses of +- Changing `BasicZoneProcessor` and `ExtendedZoneProcessor` to be subclasses of the templatized `BasicZoneProcessorTemplate` and `ExtendedZoneProcessorTemplate` classes causes reduction of flash consumption by 250-400 bytes for 32-bit processors. Don't know why. (Very little difference for 8-bit AVR). -* Adding a `ZoneInfoStore` layer of indirection (to support more complex +- Adding a `ZoneInfoStore` layer of indirection (to support more complex ZoneProcessors and Brokers) causes flash memory to go up by 100-200 bytes. **v1.6:** -* Added support for `LinkRegistry` to `BasicZoneManager` and +- Added support for `LinkRegistry` to `BasicZoneManager` and `ExtendedZoneManager`. This increases the flash memory usage by 150-500 bytes when using one of these classes due to the code required by `LinkRegistrar`. This extra cost is incurred even if the `LinkRegistry` is set to 0 elements. Each `LinkEntry` consumes 8 bytes (2 x `uint32_t`). So a `zonedb::kLinkRegistry` with 183 elements uses 1464 extra bytes of flash; a `zonedbx::kLinkRegistry` with 207 elements uses 1656 extra bytes. **v1.7:** -* The virtual destructor on the `Clock` base class removed. This reduced the +- The virtual destructor on the `Clock` base class removed. This reduced the flash usage by 618 bytes on AVR processors , 328 bytes on the SAMD21, but only 50-60 bytes on other 32-bit processors. -* The various `printShortNameTo()` or `printShortTo()` methods changed to +- The various `printShortNameTo()` or `printShortTo()` methods changed to replace the underscore in the zone names (e.g. `Los_Angeles`) with spaces (e.g. `Los Angeles`) to be more human friendly. This made little difference in the flash memory consumption, except on the ESP32 where it increased by 200-300 bytes. **v1.7.2** -* The `SystemClock::clockMillis()` is now non-virtual, using compile-time +- The `SystemClock::clockMillis()` is now non-virtual, using compile-time polymorphism through C++ template, and incorporating the same techniques from AceRoutine v1.3. Saves about 20-40 bytes of flash. **v1.7.5:** -* `ExtendedZoneProcessor.compareTransitionToMatch()` was modified to +- `ExtendedZoneProcessor.compareTransitionToMatch()` was modified to detect an exact equality between a `Transition` and its `MatchingEra` if any of the 3 time stamp versions ('w', 's', 'u') are equal. Adds about 120-150 bytes of flash on 8-bit and 32-bit processors. But removing `originalTransitionTime` from `Transition` decreases flash usage by about 20 bytes. -* Upgrade ESP8266 Boards from 2.7.4 to 3.0.2. Flash consumption increases by +- Upgrade ESP8266 Boards from 2.7.4 to 3.0.2. Flash consumption increases by 3-5 kB across the board. -* Upgrade Teensyduino from 1.54 to 1.55. Add memory consumed by `malloc()` and +- Upgrade Teensyduino from 1.54 to 1.55. Add memory consumed by `malloc()` and `free()` when using classes with virtual methods into baseline MemoryBenchmark, reducing the actual memory usage of various features by ~3kB. **v1.8.0:** -* Move Clock and SystemClock benchmarks into AceTimeClock v1.0.0. -* Extract thin links from BasicZoneManager and ExtendedZoneManager into +- Move Clock and SystemClock benchmarks into AceTimeClock v1.0.0. +- Extract thin links from BasicZoneManager and ExtendedZoneManager into new BasicLinkManager and ExtendedLinkManager classes. - * Saves 200-500 bytes of flash for BasicZoneManager and ExtendedZoneManager. - * Applications can decide whether to use thin links through the LinkManager + - Saves 200-500 bytes of flash for BasicZoneManager and ExtendedZoneManager. + - Applications can decide whether to use thin links through the LinkManager (~2000 flash bytes for AVR) or use fat links through the `kZoneAndLinkRegistry` (~5000 flash bytes for AVR). -* Create various test objects as global variables instead of stack variables +- Create various test objects as global variables instead of stack variables to get a more accurate measurement of their static memory consumption. **v1.9.0:** -* Reduce flash usage of `BasicZoneManager` and `ExtendedZoneManager` by +- Reduce flash usage of `BasicZoneManager` and `ExtendedZoneManager` by 1100-1300 bytes on AVR processors: - * Extract `BasicZoneProcessorCache` and `ExtendedZoneProcessorCache` out + - Extract `BasicZoneProcessorCache` and `ExtendedZoneProcessorCache` out of `BasicZoneManager` and `ExtendedZoneManager`, making them non-templatized. - * Remove all `virtual` methods from `ZoneManager`, making the ZoneManager + - Remove all `virtual` methods from `ZoneManager`, making the ZoneManager hierarchy non-polymorphic. - * Looks like I am reverting some of the changes made in v1.3 when I created + - Looks like I am reverting some of the changes made in v1.3 when I created the `ZoneManager` interface. -* Reduce flash usage of `BasicLinkManager` and `ExtendedLinkManager` by +- Reduce flash usage of `BasicLinkManager` and `ExtendedLinkManager` by 68 bytes on AVR processors by removing pure `virtual` methods on `LinkManager` base class. -* Increase flash usage by 34 bytes on AVR processors due to slight refactoring +- Increase flash usage by 34 bytes on AVR processors due to slight refactoring of `getHighWater()` with `getAllocSize()`. Only 4-8 bytes increase on 32-bit processors. **v1.10.0:** -* Remove support for SAMD21 boards. - * Arduino IDE 1.8.19 with SparkFun SAMD 1.8.6 can no longer upload binaries +- Remove support for SAMD21 boards. + - Arduino IDE 1.8.19 with SparkFun SAMD 1.8.6 can no longer upload binaries to these boards. Something about bossac 1.7.0 not found. -* Add memory consumption benchmarks for `ZoneSorterByName` and +- Add memory consumption benchmarks for `ZoneSorterByName` and `ZoneSorterByOffsetAndName` for `BasicZoneManager` and `ExtendedZoneManager`. - * AVR: 180-530 bytes of flash - * 32-bit: 120-600 bytes of flash -* Upgrade tool chain: - * Arduino IDE from 1.8.13 to 1.8.19 - * Arduino AVR from 1.8.3 to 1.8.4 - * STM32duino from 2.0.0 to 2.2.0 - * ESP32 from 1.0.6 to 2.0.2 - * Teensyduino from 1.55 to 1.56 -* Add support for `fold` parameter in `LocalDateTime`, `OffsetDateTime`, + - AVR: 180-530 bytes of flash + - 32-bit: 120-600 bytes of flash +- Upgrade tool chain: + - Arduino IDE from 1.8.13 to 1.8.19 + - Arduino AVR from 1.8.3 to 1.8.4 + - STM32duino from 2.0.0 to 2.2.0 + - ESP32 from 1.0.6 to 2.0.2 + - Teensyduino from 1.55 to 1.56 +- Add support for `fold` parameter in `PlainDateTime`, `OffsetDateTime`, `ZonedDateTime`, and `ExtendedZoneProcessor`. Increases flash usage: - * AVR: - * ~600 bytes, in `ExtendedZoneProcessor` for additional search logic, - * ~150 bytes, `BasicZoneProcessor`, to carry along the `fold` parameter - * most 32-bit: 400-600 bytes - * Teensy: 1300 bytes (no idea why) + - AVR: + - ~600 bytes, in `ExtendedZoneProcessor` for additional search logic, + - ~150 bytes, `BasicZoneProcessor`, to carry along the `fold` parameter + - most 32-bit: 400-600 bytes + - Teensy: 1300 bytes (no idea why) **v1.11.0** -* Upgrade ZoneInfo database so that Links are symbolic links to Zones, instead +- Upgrade ZoneInfo database so that Links are symbolic links to Zones, instead of hard links to Zones. - * Allows Links to know whether they are links. - * Allows extraction of the zoneId and zoneNames of the target Zone. - * AVR: Increases flash consumption by ~270 bytes. - * STM32: Increases flash by 120-150 bytes. - * ESP8266: Increases flash by 250-300 bytes. - * ESP32: Increases flash by ~190 bytes. - * Teensy 3.2: Increase flash by 450-1300 bytes. + - Allows Links to know whether they are links. + - Allows extraction of the zoneId and zoneNames of the target Zone. + - AVR: Increases flash consumption by ~270 bytes. + - STM32: Increases flash by 120-150 bytes. + - ESP8266: Increases flash by 250-300 bytes. + - ESP32: Increases flash by ~190 bytes. + - Teensy 3.2: Increase flash by 450-1300 bytes. **v1.11.1** -* Change `ZoneInfoBroker::targetZoneInfo()` method to return a `ZoneInfoBroker` +- Change `ZoneInfoBroker::targetZoneInfo()` method to return a `ZoneInfoBroker` instead of raw `ZoneInfo*` pointer. - * Increases flash usage by 4-16 bytes for the most part. + - Increases flash usage by 4-16 bytes for the most part. **v1.11.5** -* Upgrade tool chain - * Arduino CLI from 0.20.2 to 0.27.1 - * Arduino AVR Boards from 1.8.4 to 1.8.5 - * STM32duino from 2.2.0 to 2.3.0 - * ESP32 Boards from 2.0.2 to 2.0.5 - * Teensyduino from 1.56 to 1.57 -* Upgrade TZDB from 2022b to 2022d +- Upgrade tool chain + - Arduino CLI from 0.20.2 to 0.27.1 + - Arduino AVR Boards from 1.8.4 to 1.8.5 + - STM32duino from 2.2.0 to 2.3.0 + - ESP32 Boards from 2.0.2 to 2.0.5 + - Teensyduino from 1.56 to 1.57 +- Upgrade TZDB from 2022b to 2022d **v2.0** -* Use `int16_t` year fields. -* Implement adjustable epoch year. -* Upgrade to TZDB 2022f. -* AVR: - * BasicZoneManager increases ~200 bytes - * ExtendedZoneManager increases ~500 bytes - * `zonedb` increases ~1.5 kiB - * `zonedbx` increases ~3 kiB -* ESP8266 - * BasicZoneManager increases ~50 bytes - * ExtendedZoneManager increases ~150 bytes - * `zonedb` increases ~300 bytes - * `zonedbx` increases ~1.5 kiB +- Use `int16_t` year fields. +- Implement adjustable epoch year. +- Upgrade to TZDB 2022f. +- AVR: + - BasicZoneManager increases ~200 bytes + - ExtendedZoneManager increases ~500 bytes + - `zonedb` increases ~1.5 kiB + - `zonedbx` increases ~3 kiB +- ESP8266 + - BasicZoneManager increases ~50 bytes + - ExtendedZoneManager increases ~150 bytes + - `zonedb` increases ~300 bytes + - `zonedbx` increases ~1.5 kiB **v2.0.1** -* Upgrade to TZDB 2022g. -* Incorporate `ZonedExtra` to replace various `TimeZone` methods. +- Upgrade to TZDB 2022g. +- Incorporate `ZonedExtra` to replace various `TimeZone` methods. **v2.1.0** -* Remove `LinkManager` and `LinkRegistry`. -* Unify links, adding an additional `targetInfo` field in `ZoneInfo`. - * Increases flash by ~1kB on 8-bit and ~2kB on 32-bit for ~600 zones. +- Remove `LinkManager` and `LinkRegistry`. +- Unify links, adding an additional `targetInfo` field in `ZoneInfo`. + - Increases flash by ~1kB on 8-bit and ~2kB on 32-bit for ~600 zones. **v2.1.1+** -* Simplify ZoneRule.letter handling to use ZoneRule.letterIndex for all letters, +- Simplify ZoneRule.letter handling to use ZoneRule.letterIndex for all letters, not just ones over 1 character long. On 8-bit AVR: - * BasicZoneProcessor - * Increases flash consumption for 1-2 zones by ~200 bytes. - * No change for the full TZ database. - * ExtendedZoneProcessor - * No change for 1-2 zones. - * Decreases flash consumption by ~300 bytes for full TZ database. + - BasicZoneProcessor + - Increases flash consumption for 1-2 zones by ~200 bytes. + - No change for the full TZ database. + - ExtendedZoneProcessor + - No change for 1-2 zones. + - Decreases flash consumption by ~300 bytes for full TZ database. **v2.2.0** -* Upgrade tool chain - * Arduino AVR from 1.8.5 to 1.8.6 - * STM32duino from 2.3.0 to 2.4.0 - * ESP8266 from 3.0.2 to 3.1.2 failed, reverted back to 3.0.2 - * ESP32 from 2.0.5 to 2.0.7 -* Add support for Seeed XIAO SAMD21 - * Using Seeeduino SAMD Boards 1.8.3 -* Upgrade to TZDB 2023b +- Upgrade tool chain + - Arduino AVR from 1.8.5 to 1.8.6 + - STM32duino from 2.3.0 to 2.4.0 + - ESP8266 from 3.0.2 to 3.1.2 failed, reverted back to 3.0.2 + - ESP32 from 2.0.5 to 2.0.7 +- Add support for Seeed XIAO SAMD21 + - Using Seeeduino SAMD Boards 1.8.3 +- Upgrade to TZDB 2023b **v2.2.2** -* Upgrade to TZDB 2023c +- Upgrade to TZDB 2023c **v2.2.3** -* Add support for Adafruit ItsyBitsy M4 - * Using Adafruit SAMD Boards 1.7.11 -* Remove Teensy 3.2 - * Nearing end of life. Moved to Tier 2 (should work). -* Upgrade tool chain - * Seeeduino SAMD Boards 1.8.4 - * STM32duino Boards 2.5.0 - * ESP32 Boards 2.0.9 +- Add support for Adafruit ItsyBitsy M4 + - Using Adafruit SAMD Boards 1.7.11 +- Remove Teensy 3.2 + - Nearing end of life. Moved to Tier 2 (should work). +- Upgrade tool chain + - Seeeduino SAMD Boards 1.8.4 + - STM32duino Boards 2.5.0 + - ESP32 Boards 2.0.9 **v2.3.0** -* Implement 1-second resolution in ExtendedZoneProcessor (decoupled from +- Implement 1-second resolution in ExtendedZoneProcessor (decoupled from zonedbx storage format). - * Increases flash usage by ~1kB on 8-bit processors, but only 0-100 bytes + - Increases flash usage by ~1kB on 8-bit processors, but only 0-100 bytes on 32-bit processors. - * Enables it to be also used as the CompleteZoneProcessor class. -* Implement CompleteZoneProcessor as a specialization of ExtendedZoneProcessor. - * Enables the creation of `zonedbc` database which contains all TZDB + - Enables it to be also used as the CompleteZoneProcessor class. +- Implement CompleteZoneProcessor as a specialization of ExtendedZoneProcessor. + - Enables the creation of `zonedbc` database which contains all TZDB timezones, for all years going back to 1844, the earliest transition in the TZDB. - * The flash consumption of zonedbc is roughly 2X of zonedbx. -* Revert `zonedb` to use 8-bit year fields. - * Increases flash memory consumption for BasicZoneManager w/ 1 zone by + - The flash consumption of zonedbc is roughly 2X of zonedbx. +- Revert `zonedb` to use 8-bit year fields. + - Increases flash memory consumption for BasicZoneManager w/ 1 zone by around 150 bytes. - * Decreases flash memory cosumption for BasicZoneManager w/ all timezones by + - Decreases flash memory cosumption for BasicZoneManager w/ all timezones by 800-900 bytes. -* Revert `zonedbx` to use 8-bit year fields. - * Increase flash memory consumption of ExtendedZoneManager w/ 1 zone by +- Revert `zonedbx` to use 8-bit year fields. + - Increase flash memory consumption of ExtendedZoneManager w/ 1 zone by around 220 bytes. - * Decreases flash memory cosumption for ExtendedZoneManager w/ all timezones + - Decreases flash memory cosumption for ExtendedZoneManager w/ all timezones by ~2000 bytes. -* Move ZoneContext and its string arrays into PROGMEM. - * Reduces RAM usage by 150-200 bytes on AVR and ESP8266 processors. -* Merge `createAbbreviation()` of BasicZoneProcessor and ExtendedZoneProcessor - * `BasicZoneProcessor`: Slight (30-60 bytes) increase in flash memory, +- Move ZoneContext and its string arrays into PROGMEM. + - Reduces RAM usage by 150-200 bytes on AVR and ESP8266 processors. +- Merge `createAbbreviation()` of BasicZoneProcessor and ExtendedZoneProcessor + - `BasicZoneProcessor`: Slight (30-60 bytes) increase in flash memory, no change in RAM usage. - * `ExtendedZoneProcessor`: Slight (30-60 bytes) increase in flash memory. + - `ExtendedZoneProcessor`: Slight (30-60 bytes) increase in flash memory. But saves ~16 bytes of RAM for 8-bit, ~64 bytes of RAM for 32-bit. -* Support multi-character `ZoneRule.letter` field - * Enables `Africa/Windhoek` and `America/Belize` in the `zonedb` database +- Support multi-character `ZoneRule.letter` field + - Enables `Africa/Windhoek` and `America/Belize` in the `zonedb` database used with `BasicZoneProcessor`. - * Increases flash memory for `zonedb` by ~150 bytes on 8-bit, ~200 on 32-bit + - Increases flash memory for `zonedb` by ~150 bytes on 8-bit, ~200 on 32-bit processors. **v2.4.0** -* Support %z format. -* Upgrade to TZDB 2024b. -* Upgrade Arduino CLI to 1.1.1 -* AVR: - * BasicZoneManager increases ~600 bytes - * ExtendedZoneManager increases ~700 bytes - * `zonedb` *decreases* ~400 bytes - * `zonedbx` *decreases* ~350 bytes -* ESP8266 - * BasicZoneManager increases ~500 bytes - * ExtendedZoneManager increases ~400 bytes - * `zonedb` *decreases* ~300 bytes - * `zonedbx` *decreases* ~100 kiB +- Support %z format. +- Upgrade to TZDB 2024b. +- Upgrade Arduino CLI to 1.1.1 +- AVR: + - BasicZoneManager increases ~600 bytes + - ExtendedZoneManager increases ~700 bytes + - `zonedb` *decreases* ~400 bytes + - `zonedbx` *decreases* ~350 bytes +- ESP8266 + - BasicZoneManager increases ~500 bytes + - ExtendedZoneManager increases ~400 bytes + - `zonedb` *decreases* ~300 bytes + - `zonedbx` *decreases* ~100 kiB + +**v4.0.0** +- Upgrade to Arduino CLI 1.3.1. +- Memory consumption increases by 10-100 bytes on various platforms. Probably + happened in v3.0.0 when TZDB upgraded to 2025b. # Legend -* [1] Delta flash and ram consumption for `Basic ZoneSorterByName` and +- [1] Delta flash and ram consumption for `Basic ZoneSorterByName` and `Basic ZoneSorterByOffsetAndName` are calculated by subtracting the `BasicZoneManager (1 zone)` numbers, to isolate the memory consumption of just the sorter classes. -* [2] Delta flash and ram consumption for `Extended ZoneSorterByName` and +- [2] Delta flash and ram consumption for `Extended ZoneSorterByName` and `Extended ZoneSorterByOffsetAndName` are calculated by subtracting the `ExtendedZoneManager (1 zone)` numbers, to isolate the memory consumption of just the sorter classes. -* [3] Delta flash and ram consumption for `Complete ZoneSorterByName` and +- [3] Delta flash and ram consumption for `Complete ZoneSorterByName` and `Complete ZoneSorterByOffsetAndName` are calculated by subtracting the `CompleteZoneManager (1 zone)` numbers, to isolate the memory consumption of just the sorter classes. -* An entry of `-1` indicates that the memory usage exceeded the maximum of the +- An entry of `-1` indicates that the memory usage exceeded the maximum of the microcontroller and the compiler did not generate the desired information. ## Arduino Nano -* 16MHz ATmega328P -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Arduino AVR Boards 1.8.6 +- 16MHz ATmega328P +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Arduino AVR Boards 1.8.6 ``` {nano_results} @@ -340,9 +345,9 @@ ## Sparkfun Pro Micro -* 16 MHz ATmega32U4 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* SparkFun AVR Boards 1.1.13 +- 16 MHz ATmega32U4 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- SparkFun AVR Boards 1.1.13 ``` {micro_results} @@ -350,9 +355,9 @@ ## Seeed Studio XIAO SAMD21 -* SAMD21, 48 MHz ARM Cortex-M0+ -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Seeeduino SAMD Boards 1.8.4 +- SAMD21, 48 MHz ARM Cortex-M0+ +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Seeeduino SAMD Boards 1.8.4 ``` {samd21_results} @@ -360,9 +365,9 @@ ## STM32 Blue Pill -* STM32F103C8, 72 MHz ARM Cortex-M3 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* STM32duino 2.5.0 +- STM32F103C8, 72 MHz ARM Cortex-M3 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- STM32duino 2.5.0 ``` {stm32_results} @@ -370,9 +375,9 @@ ## SAMD51 (Adafruit ItsyBitsy M4) -* SAMD51, 120 MHz ARM Cortex-M4 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* Adafruit SAMD 1.7.11 +- SAMD51, 120 MHz ARM Cortex-M4 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- Adafruit SAMD 1.7.11 ``` {samd51_results} @@ -380,9 +385,9 @@ ## ESP8266 -* NodeMCU 1.0, 80MHz ESP8266 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* ESP8266 Boards 3.0.2 +- NodeMCU 1.0, 80MHz ESP8266 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- ESP8266 Boards 3.0.2 ``` {esp8266_results} @@ -390,9 +395,9 @@ ## ESP32 -* ESP32-01 Dev Board, 240 MHz Tensilica LX6 -* Arduino IDE 1.8.19, Arduino CLI 1.1.1 -* ESP32 Boards 2.0.9 +- ESP32-01 Dev Board, 240 MHz Tensilica LX6 +- Arduino IDE 1.8.19, Arduino CLI 1.3.1 +- ESP32 Boards 2.0.9 ``` {esp32_results} diff --git a/examples/MemoryBenchmark/generate_table.awk b/examples/MemoryBenchmark/generate_table.awk index eb546e763..dd6209d9a 100755 --- a/examples/MemoryBenchmark/generate_table.awk +++ b/examples/MemoryBenchmark/generate_table.awk @@ -8,7 +8,7 @@ BEGIN { NUM_FEATURES = 24 labels[0] = "baseline" - labels[1] = "LocalDateTime" + labels[1] = "PlainDateTime" labels[2] = "ZonedDateTime" labels[3] = "Manual ZoneManager" labels[4] = "Basic TimeZone (1 zone)" @@ -85,7 +85,7 @@ END { for (i = 0; i <= NUM_FEATURES; i++) { name = labels[i] if (name ~ /^baseline/ \ - || name ~ /^LocalDateTime/ \ + || name ~ /^PlainDateTime/ \ || name ~ /^Basic TimeZone \(1 zone\)/ \ || name ~ /^Basic ZoneSorterByName/ \ || name ~ /^Extended TimeZone \(1 zone\)/ \ diff --git a/examples/MemoryBenchmark/micro.txt b/examples/MemoryBenchmark/micro.txt index 945195cfb..ebe1ad9da 100644 --- a/examples/MemoryBenchmark/micro.txt +++ b/examples/MemoryBenchmark/micro.txt @@ -2,20 +2,20 @@ 1 4080 28672 161 2560 2 4416 28672 170 2560 3 4400 28672 153 2560 -4 11210 28672 365 2560 -5 11738 28672 517 2560 -6 11420 28672 376 2560 -7 22480 28672 526 2560 -8 28088 28672 526 2560 -9 12194 28672 378 2560 -10 12316 28672 378 2560 -11 15028 28672 783 2560 -12 15624 28672 1353 2560 -13 15208 28672 789 2560 -14 37712 28672 987 2560 -15 43972 28672 987 2560 -16 15978 28672 791 2560 -17 16072 28672 791 2560 +4 11262 28672 365 2560 +5 11776 28672 517 2560 +6 11472 28672 376 2560 +7 22532 28672 526 2560 +8 28140 28672 526 2560 +9 12224 28672 378 2560 +10 12346 28672 378 2560 +11 15094 28672 783 2560 +12 15670 28672 1353 2560 +13 15274 28672 789 2560 +14 37778 28672 987 2560 +15 44038 28672 987 2560 +16 16022 28672 791 2560 +17 16116 28672 791 2560 18 -1 -1 -1 -1 19 -1 -1 -1 -1 20 -1 -1 -1 -1 diff --git a/examples/MemoryBenchmark/nano.txt b/examples/MemoryBenchmark/nano.txt index 621eb6fa7..9d15377ca 100644 --- a/examples/MemoryBenchmark/nano.txt +++ b/examples/MemoryBenchmark/nano.txt @@ -2,20 +2,20 @@ 1 1108 30720 21 2048 2 1444 30720 30 2048 3 1406 30720 13 2048 -4 8238 30720 225 2048 -5 8784 30720 379 2048 -6 8448 30720 236 2048 -7 19508 30720 386 2048 -8 25116 30720 386 2048 -9 9222 30720 238 2048 -10 9344 30720 238 2048 -11 12072 30720 643 2048 -12 12670 30720 1215 2048 -13 12252 30720 649 2048 -14 34740 30720 847 2048 -15 41000 30720 847 2048 -16 13022 30720 651 2048 -17 13116 30720 651 2048 +4 8290 30720 225 2048 +5 8822 30720 379 2048 +6 8500 30720 236 2048 +7 19560 30720 386 2048 +8 25168 30720 386 2048 +9 9252 30720 238 2048 +10 9374 30720 238 2048 +11 12138 30720 643 2048 +12 12716 30720 1215 2048 +13 12318 30720 649 2048 +14 34806 30720 847 2048 +15 41066 30720 847 2048 +16 13066 30720 651 2048 +17 13160 30720 651 2048 18 -1 -1 -1 -1 19 -1 -1 -1 -1 20 -1 -1 -1 -1 diff --git a/examples/MemoryBenchmark/samd21.txt b/examples/MemoryBenchmark/samd21.txt index ca51e7f9e..3854aea63 100644 --- a/examples/MemoryBenchmark/samd21.txt +++ b/examples/MemoryBenchmark/samd21.txt @@ -1,25 +1,25 @@ 0 34068 262144 1 34372 262144 -2 35116 262144 -3 35100 262144 -4 39212 262144 -5 39572 262144 -6 39316 262144 -7 54436 262144 -8 63052 262144 -9 39804 262144 -10 39868 262144 -11 41236 262144 -12 41596 262144 -13 41340 262144 -14 71636 262144 -15 81236 262144 -16 41836 262144 -17 41892 262144 -18 41596 262144 -19 42828 262144 -20 41700 262144 -21 121172 262144 -22 130772 262144 -23 42196 262144 -24 42252 262144 +2 35140 262144 +3 35132 262144 +4 39252 262144 +5 39564 262144 +6 39356 262144 +7 54476 262144 +8 63092 262144 +9 39844 262144 +10 39908 262144 +11 41268 262144 +12 41580 262144 +13 41372 262144 +14 71668 262144 +15 81268 262144 +16 41868 262144 +17 41924 262144 +18 41628 262144 +19 42812 262144 +20 41732 262144 +21 121204 262144 +22 130804 262144 +23 42228 262144 +24 42284 262144 diff --git a/examples/MemoryBenchmark/samd51.txt b/examples/MemoryBenchmark/samd51.txt index c4aeffda9..48bbc4c29 100644 --- a/examples/MemoryBenchmark/samd51.txt +++ b/examples/MemoryBenchmark/samd51.txt @@ -1,25 +1,25 @@ 0 10580 507904 1 10872 507904 -2 11544 507904 -3 11536 507904 -4 15640 507904 -5 16008 507904 -6 15760 507904 -7 30884 507904 -8 39504 507904 -9 16248 507904 -10 16300 507904 -11 17448 507904 -12 17824 507904 -13 17564 507904 -14 47868 507904 -15 57464 507904 -16 18052 507904 -17 18104 507904 -18 17792 507904 -19 19028 507904 -20 17908 507904 -21 97380 507904 -22 106976 507904 -23 18396 507904 -24 18444 507904 +2 11588 507904 +3 11580 507904 +4 15684 507904 +5 16024 507904 +6 15804 507904 +7 30928 507904 +8 39548 507904 +9 16288 507904 +10 16340 507904 +11 17488 507904 +12 17836 507904 +13 17608 507904 +14 47912 507904 +15 57508 507904 +16 18092 507904 +17 18144 507904 +18 17832 507904 +19 19040 507904 +20 17952 507904 +21 97424 507904 +22 107020 507904 +23 18436 507904 +24 18484 507904 diff --git a/examples/MemoryBenchmark/stm32.txt b/examples/MemoryBenchmark/stm32.txt index 8336f7a78..174c3daf0 100644 --- a/examples/MemoryBenchmark/stm32.txt +++ b/examples/MemoryBenchmark/stm32.txt @@ -1,25 +1,25 @@ 0 21348 131072 4376 20480 1 21704 131072 4392 20480 2 21784 131072 4408 20480 -3 22360 131072 4384 20480 -4 26404 131072 4592 20480 -5 26776 131072 4800 20480 -6 26524 131072 4612 20480 -7 42016 131072 4612 20480 -8 50920 131072 4612 20480 -9 26992 131072 4616 20480 -10 27076 131072 4616 20480 -11 28184 131072 5148 20480 -12 28560 131072 5912 20480 -13 28300 131072 5156 20480 -14 59180 131072 5156 20480 -15 69124 131072 5156 20480 -16 28764 131072 5160 20480 -17 28840 131072 5160 20480 -18 28568 131072 5148 20480 -19 29804 131072 5912 20480 -20 28684 131072 5156 20480 -21 108592 131072 5156 20480 -22 118536 131072 5156 20480 -23 29148 131072 5160 20480 -24 29220 131072 5160 20480 +3 22396 131072 4384 20480 +4 26444 131072 4592 20480 +5 26780 131072 4800 20480 +6 26564 131072 4612 20480 +7 42056 131072 4612 20480 +8 50960 131072 4612 20480 +9 27028 131072 4616 20480 +10 27112 131072 4616 20480 +11 28216 131072 5148 20480 +12 28552 131072 5912 20480 +13 28332 131072 5156 20480 +14 59212 131072 5156 20480 +15 69156 131072 5156 20480 +16 28800 131072 5160 20480 +17 28876 131072 5160 20480 +18 28600 131072 5148 20480 +19 29796 131072 5912 20480 +20 28716 131072 5156 20480 +21 108624 131072 5156 20480 +22 118568 131072 5156 20480 +23 29184 131072 5160 20480 +24 29256 131072 5160 20480 diff --git a/library.properties b/library.properties index 410ec7654..0cd36656a 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=AceTime -version=3.0.0 +version=4.0.0 author=Brian T. Park maintainer=Brian T. Park sentence=Date, time, timezone classes for Arduino supporting the full IANA TZ Database to convert epoch seconds to date and time components in different time zones. diff --git a/src/AceTime.h b/src/AceTime.h index 8a037f4c2..37c2fdfdb 100644 --- a/src/AceTime.h +++ b/src/AceTime.h @@ -27,16 +27,17 @@ #include "zoneinfo/compat.h" #include "zoneinfo/infos.h" // +#include "ace_time/backwards.h" #include "ace_time/common/common.h" #include "ace_time/common/DateStrings.h" #include "ace_time/common/DateConv.h" #include "ace_time/EpochConverterJulian.h" #include "ace_time/EpochConverterHinnant.h" #include "ace_time/Epoch.h" -#include "ace_time/LocalDate.h" -#include "ace_time/local_date_mutation.h" -#include "ace_time/LocalTime.h" -#include "ace_time/LocalDateTime.h" +#include "ace_time/PlainDate.h" +#include "ace_time/plain_date_mutation.h" +#include "ace_time/PlainTime.h" +#include "ace_time/PlainDateTime.h" #include "ace_time/TimeOffset.h" #include "ace_time/time_offset_mutation.h" #include "ace_time/OffsetDateTime.h" @@ -62,15 +63,21 @@ #include "zonedb/zone_policies.h" #include "zonedb/zone_infos.h" #include "zonedb/zone_registry.h" +#include "zonedb2025/zone_policies.h" +#include "zonedb2025/zone_infos.h" +#include "zonedb2025/zone_registry.h" #include "zonedbx/zone_policies.h" #include "zonedbx/zone_infos.h" #include "zonedbx/zone_registry.h" +#include "zonedbx2025/zone_policies.h" +#include "zonedbx2025/zone_infos.h" +#include "zonedbx2025/zone_registry.h" #include "zonedbc/zone_policies.h" #include "zonedbc/zone_infos.h" #include "zonedbc/zone_registry.h" // Version format: xxyyzz == "xx.yy.zz" -#define ACE_TIME_VERSION 30000 -#define ACE_TIME_VERSION_STRING "3.0.0" +#define ACE_TIME_VERSION 40000 +#define ACE_TIME_VERSION_STRING "4.0.0" #endif diff --git a/src/ace_time/BasicZoneProcessor.h b/src/ace_time/BasicZoneProcessor.h index 0802f791c..bb51bc521 100644 --- a/src/ace_time/BasicZoneProcessor.h +++ b/src/ace_time/BasicZoneProcessor.h @@ -12,7 +12,7 @@ #include "common/common.h" // kAbbrevSize #include "common/logging.h" #include "TimeOffset.h" -#include "LocalDate.h" +#include "PlainDate.h" #include "OffsetDateTime.h" #include "ZoneProcessor.h" @@ -25,7 +25,7 @@ class BasicZoneProcessorTest_compareRulesBeforeYear; class BasicZoneProcessorTest_findLatestPriorRule; class BasicZoneProcessorTest_findZoneEra; class BasicZoneProcessorTest_init_primitives; -class BasicZoneProcessorTest_initForLocalDate; +class BasicZoneProcessorTest_initForPlainDate; class BasicZoneProcessorTest_setZoneKey; class BasicZoneProcessorTest_calcRuleOffsetMinutes; @@ -203,7 +203,7 @@ class BasicZoneProcessorTemplate: public ZoneProcessor { } /** - * @copydoc ZoneProcessor::findByLocalDateTime() + * @copydoc ZoneProcessor::findByPlainDateTime() * * The Transitions calculated by BasicZoneProcessor contain only the * epochSeconds when each transition occurs. They do not contain the local @@ -213,14 +213,14 @@ class BasicZoneProcessorTemplate: public ZoneProcessor { * * The implementation is somewhat of a hack: * - * 0) Use the localDateTime to extract the offset, *assuming* that the - * localDatetime is UTC. This will get us within 12-14h of the correct + * 0) Use the plainDateTime to extract the offset, *assuming* that the + * plainDatetime is UTC. This will get us within 12-14h of the correct * UTC offset. - * 1) Use (localDateTime, offset0) to determine offset1. - * 2) Use (localdateTime, offset1) to determine offset2. + * 1) Use (plainDateTime, offset0) to determine offset1. + * 2) Use (plainDateTime, offset1) to determine offset2. * 3) Finally, check if offset1 and offset2 are equal. If they are - * we reached equilibrium so we can just return (localDateTime, offset1). - * If they are not equal, then we have a cycle because the localDateTime + * we reached equilibrium so we can just return (plainDateTime, offset1). + * If they are not equal, then we have a cycle because the plainDateTime * occurred in a DST gap (STD->DST transition) or overlap (DST->STD * transition). We arbitrarily pick the offset of the *later* epochSeconds * since that seems to match closely to what most people would expect to @@ -230,21 +230,26 @@ class BasicZoneProcessorTemplate: public ZoneProcessor { * This algorithm will detect a FindResult::kTypeGap, but it will not be * able to distinguish between a kTypeExact and kTypeOverlap. */ - FindResult findByLocalDateTime( - const LocalDateTime& ldt) const override { + FindResult findByPlainDateTime( + const PlainDateTime& pdt, + Disambiguate disambiguate) const override { + + // BasicZoneProcessor cannot support disambiguate + (void) disambiguate; + FindResult result; - bool success = initForLocalDate(ldt.localDate()); + bool success = initForPlainDate(pdt.plainDate()); if (!success) return result; // 0) Use the UTC epochSeconds to get intial guess of offset. - acetime_t epochSeconds0 = ldt.toEpochSeconds(); + acetime_t epochSeconds0 = pdt.toEpochSeconds(); auto result0 = findByEpochSeconds(epochSeconds0); if (result0.type == FindResult::kTypeNotFound) return result; auto offset0 = TimeOffset::forSeconds( result0.reqStdOffsetSeconds + result0.reqDstOffsetSeconds); // 1) Use offset0 to get the next epochSeconds and offset. - auto odt = OffsetDateTime::forLocalDateTimeAndOffset(ldt, offset0); + auto odt = OffsetDateTime::forPlainDateTimeAndOffset(pdt, offset0); acetime_t epochSeconds1 = odt.toEpochSeconds(); auto result1 = findByEpochSeconds(epochSeconds1); if (result1.type == FindResult::kTypeNotFound) return result; @@ -252,7 +257,7 @@ class BasicZoneProcessorTemplate: public ZoneProcessor { result1.reqStdOffsetSeconds + result1.reqDstOffsetSeconds); // 2) Use offset1 to get the next epochSeconds and offset. - odt = OffsetDateTime::forLocalDateTimeAndOffset(ldt, offset1); + odt = OffsetDateTime::forPlainDateTimeAndOffset(pdt, offset1); acetime_t epochSeconds2 = odt.toEpochSeconds(); auto result2 = findByEpochSeconds(epochSeconds2); if (result2.type == FindResult::kTypeNotFound) return result; @@ -269,7 +274,7 @@ class BasicZoneProcessorTemplate: public ZoneProcessor { } else { // If the offsets don't match, then I think we have a kTypeGap. // Pick the stdOffset and dstOffset that generate the later epochSeconds - // (the earlier transition), but convert into the LocalDateTime of the + // (the earlier transition), but convert into the PlainDateTime of the // earlier epochSeconds (the later transition). if (epochSeconds1 > epochSeconds2) { result = result1; @@ -316,7 +321,7 @@ class BasicZoneProcessorTemplate: public ZoneProcessor { if (mZoneInfoBroker.equals(zoneKey)) return; mZoneInfoBroker = mZoneInfoStore->createZoneInfoBroker(zoneKey); - mYear = LocalDate::kInvalidYear; + mYear = PlainDate::kInvalidYear; mNumTransitions = 0; } @@ -378,7 +383,7 @@ class BasicZoneProcessorTemplate: public ZoneProcessor { friend class ::BasicZoneProcessorTest_findLatestPriorRule; friend class ::BasicZoneProcessorTest_findZoneEra; friend class ::BasicZoneProcessorTest_init_primitives; - friend class ::BasicZoneProcessorTest_initForLocalDate; + friend class ::BasicZoneProcessorTest_initForPlainDate; friend class ::BasicZoneProcessorTest_setZoneKey; friend class ::BasicZoneProcessorTest_calcRuleOffsetMinutes; @@ -445,21 +450,21 @@ class BasicZoneProcessorTemplate: public ZoneProcessor { * Returns success status: true if successful, false if an error occurred * (e.g. out of bounds). */ - bool initForLocalDate(const LocalDate& ld) const { - int16_t year = ld.year(); - if (ld.month() == 1 && ld.day() == 1) { + bool initForPlainDate(const PlainDate& pd) const { + int16_t year = pd.year(); + if (pd.month() == 1 && pd.day() == 1) { year--; } - // Restrict to [1,9999], even though LocalDate should be able to handle + // Restrict to [1,9999], even though PlainDate should be able to handle // [0,10000]. - if (year <= LocalDate::kMinYear || LocalDate::kMaxYear <= year) { + if (year <= PlainDate::kMinYear || PlainDate::kMaxYear <= year) { return false; } if (isFilled(year)) return true; if (ACE_TIME_BASIC_ZONE_PROCESSOR_DEBUG) { - logging::printf("initForLocalDate(): %d (new year %d)\n", - ld.year(), year); + logging::printf("initForPlainDate(): %d (new year %d)\n", + pd.year(), year); } mYear = year; @@ -482,12 +487,12 @@ class BasicZoneProcessorTemplate: public ZoneProcessor { /** * Initialize the transition cache, by converting the epochSeconds to - * year-month-day in UTC, then calling initForLocalDate() with the 'year' + * year-month-day in UTC, then calling initForPlainDate() with the 'year' * component. */ bool initForEpochSeconds(acetime_t epochSeconds) const { - LocalDate ld = LocalDate::forEpochSeconds(epochSeconds); - return initForLocalDate(ld); + PlainDate pd = PlainDate::forEpochSeconds(epochSeconds); + return initForPlainDate(pd); } /** diff --git a/src/ace_time/DateTuple.h b/src/ace_time/DateTuple.h index 2e1f28dd6..86fbe273d 100644 --- a/src/ace_time/DateTuple.h +++ b/src/ace_time/DateTuple.h @@ -8,7 +8,7 @@ #include // uint8_t #include "common/logging.h" -#include "local_date_mutation.h" +#include "plain_date_mutation.h" #ifndef ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG #define ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG 0 @@ -112,18 +112,18 @@ inline bool operator==(const DateTuple& a, const DateTuple& b) { inline void normalizeDateTuple(DateTuple* dt) { const int32_t kOneDayAsSeconds = int32_t(60) * 60 * 24; if (dt->seconds <= -kOneDayAsSeconds) { - LocalDate ld = LocalDate::forComponents(dt->year, dt->month, dt->day); - local_date_mutation::decrementOneDay(ld); - dt->year = ld.year(); - dt->month = ld.month(); - dt->day = ld.day(); + PlainDate pd = PlainDate::forComponents(dt->year, dt->month, dt->day); + plain_date_mutation::decrementOneDay(pd); + dt->year = pd.year(); + dt->month = pd.month(); + dt->day = pd.day(); dt->seconds += kOneDayAsSeconds; } else if (kOneDayAsSeconds <= dt->seconds) { - LocalDate ld = LocalDate::forComponents(dt->year, dt->month, dt->day); - local_date_mutation::incrementOneDay(ld); - dt->year = ld.year(); - dt->month = ld.month(); - dt->day = ld.day(); + PlainDate pd = PlainDate::forComponents(dt->year, dt->month, dt->day); + plain_date_mutation::incrementOneDay(pd); + dt->year = pd.year(); + dt->month = pd.month(); + dt->day = pd.day(); dt->seconds -= kOneDayAsSeconds; } else { // do nothing @@ -183,10 +183,10 @@ inline void expandDateTuple( * `acetime_t`, which is a signed 32-bit integer. */ inline acetime_t subtractDateTuple(const DateTuple& a, const DateTuple& b) { - int32_t epochDaysA = LocalDate::forComponents( + int32_t epochDaysA = PlainDate::forComponents( a.year, a.month, a.day).toEpochDays(); - int32_t epochDaysB = LocalDate::forComponents( + int32_t epochDaysB = PlainDate::forComponents( b.year, b.month, b.day).toEpochDays(); // Perform the subtraction of the days first, before converting to seconds, to diff --git a/src/ace_time/ExtendedZoneProcessor.h b/src/ace_time/ExtendedZoneProcessor.h index f7a2ae669..a0f4b1794 100644 --- a/src/ace_time/ExtendedZoneProcessor.h +++ b/src/ace_time/ExtendedZoneProcessor.h @@ -11,7 +11,7 @@ #include "../zoneinfo/infos.h" #include "common/common.h" // kAbbrevSize #include "common/logging.h" -#include "LocalDate.h" +#include "PlainDate.h" #include "ZoneProcessor.h" #include "Transition.h" @@ -119,19 +119,21 @@ class ExtendedZoneProcessorTemplate: public ZoneProcessor { return mZoneInfoBroker.zoneId(); } - FindResult findByLocalDateTime(const LocalDateTime& ldt) const override { + FindResult findByPlainDateTime( + const PlainDateTime& pdt, + Disambiguate disambiguate) const override { FindResult result; - bool success = initForYear(ldt.year()); + bool success = initForYear(pdt.year()); if (! success) { return result; } // Find the Transition(s) in the gap or overlap. TransitionForDateTime transitionForDateTime = - mTransitionStorage.findTransitionForDateTime(ldt); + mTransitionStorage.findTransitionForDateTime(pdt); - // Extract the target Transition, depending on the requested ldt.fold + // Extract the target Transition, depending on the requested pdt.fold // and the result.num. const Transition* transition; if (transitionForDateTime.num == 1) { @@ -142,41 +144,49 @@ class ExtendedZoneProcessorTemplate: public ZoneProcessor { } else { // num = 0 or 2 if (transitionForDateTime.prev == nullptr || transitionForDateTime.curr == nullptr) { - // ldt was far past or far future + // pdt was far past or far future transition = nullptr; result.type = FindResult::kTypeNotFound; + result.fold = 0; } else { // gap or overlap if (transitionForDateTime.num == 0) { // num==0, Gap result.type = FindResult::kTypeGap; - if (ldt.fold() == 0) { - // ldt wants to use the 'prev' transition to convert to + if (disambiguate == Disambiguate::kCompatible + || disambiguate == Disambiguate::kLater) { + // pdt wants to use the 'prev' transition to convert to // epochSeconds. result.reqStdOffsetSeconds = transitionForDateTime.prev->offsetSeconds; result.reqDstOffsetSeconds = transitionForDateTime.prev->deltaSeconds; + result.fold = 0; // But after normalization, it will be shifted into the curr // transition, so select 'curr' as the target transition. transition = transitionForDateTime.curr; } else { - // ldt wants to use the 'curr' transition to convert to + // pdt wants to use the 'curr' transition to convert to // epochSeconds. result.reqStdOffsetSeconds = transitionForDateTime.curr->offsetSeconds; result.reqDstOffsetSeconds = transitionForDateTime.curr->deltaSeconds; + result.fold = 1; // But after normalization, it will be shifted into the prev // transition, so select 'prev' as the target transition. transition = transitionForDateTime.prev; } } else { // num==2, Overlap - transition = (ldt.fold() == 0) - ? transitionForDateTime.prev - : transitionForDateTime.curr; + if (disambiguate == Disambiguate::kCompatible + || disambiguate == Disambiguate::kEarlier) { + transition = transitionForDateTime.prev; + result.fold = 0; + } else { + transition = transitionForDateTime.curr; + result.fold = 1; + } result.type = FindResult::kTypeOverlap; result.reqStdOffsetSeconds = transition->offsetSeconds; result.reqDstOffsetSeconds = transition->deltaSeconds; - result.fold = ldt.fold(); } } } @@ -269,7 +279,7 @@ class ExtendedZoneProcessorTemplate: public ZoneProcessor { if (mZoneInfoBroker.equals(zoneKey)) return; mZoneInfoBroker = mZoneInfoStore->createZoneInfoBroker(zoneKey); - mYear = LocalDate::kInvalidYear; + mYear = PlainDate::kInvalidYear; mNumMatches = 0; resetTransitionAllocSize(); // clear the alloc size for new zone } @@ -290,12 +300,12 @@ class ExtendedZoneProcessorTemplate: public ZoneProcessor { /** * Initialize using the epochSeconds. The epochSeconds is converted to - * the LocalDate for UTC time, and the year is used to call initForYear(). + * the PlainDate for UTC time, and the year is used to call initForYear(). * Exposed for debugging. */ bool initForEpochSeconds(acetime_t epochSeconds) const { - LocalDate ld = LocalDate::forEpochSeconds(epochSeconds); - return initForYear(ld.year()); + PlainDate pd = PlainDate::forEpochSeconds(epochSeconds); + return initForYear(pd.year()); } /** @@ -304,13 +314,13 @@ class ExtendedZoneProcessorTemplate: public ZoneProcessor { * Exposed for debugging. */ bool initForYear(int16_t year) const { - // Restrict to [1,9999] even though LocalDate should be able to handle + // Restrict to [1,9999] even though PlainDate should be able to handle // [0,10000]. - if (year <= LocalDate::kMinYear || LocalDate::kMaxYear <= year) { + if (year <= PlainDate::kMinYear || PlainDate::kMaxYear <= year) { if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) { logging::printf( "initForYear(): Year %d outside range [%d, %d]\n", - year, LocalDate::kMinYear + 1, LocalDate::kMaxYear - 1); + year, PlainDate::kMinYear + 1, PlainDate::kMaxYear - 1); } return false; } @@ -533,7 +543,7 @@ class ExtendedZoneProcessorTemplate: public ZoneProcessor { // ZoneEra. extended::DateTuple startDate = (prevMatch == nullptr) ? extended::DateTuple{ - LocalDate::kInvalidYear, + PlainDate::kInvalidYear, 1, 1, 0, @@ -727,7 +737,7 @@ class ExtendedZoneProcessorTemplate: public ZoneProcessor { // Add Transition for prior year int16_t priorYear = getMostRecentPriorYear( rule.fromYear(), rule.toYear(), startY, endY); - if (priorYear != LocalDate::kInvalidYear) { + if (priorYear != PlainDate::kInvalidYear) { if (ACE_TIME_EXTENDED_ZONE_PROCESSOR_DEBUG) { logging::printf( "findCandidateTransitions(): priorYear: %d\n", priorYear); @@ -822,7 +832,7 @@ class ExtendedZoneProcessorTemplate: public ZoneProcessor { * Return the most recent year from the Rule[fromYear, toYear] which is * prior to the matching ZoneEra years of [startYear, endYear]. * - * Return LocalDate::kInvalidYear if the rule[fromYear, to_year] has no + * Return PlainDate::kInvalidYear if the rule[fromYear, to_year] has no * prior year to the MatchingEra[startYear, endYear]. * * @param fromYear FROM year field of a Rule entry @@ -841,7 +851,7 @@ class ExtendedZoneProcessorTemplate: public ZoneProcessor { return startYear - 1; } } else { - return LocalDate::kInvalidYear; + return PlainDate::kInvalidYear; } } @@ -1105,8 +1115,8 @@ class ExtendedZoneProcessorTemplate: public ZoneProcessor { const extended::DateTuple& st = t->startDateTime; const acetime_t offsetSeconds = st.seconds - (t->offsetSeconds + t->deltaSeconds); - LocalDate ld = LocalDate::forComponents(st.year, st.month, st.day); - t->startEpochSeconds = ld.toEpochSeconds() + offsetSeconds; + PlainDate pd = PlainDate::forComponents(st.year, st.month, st.day); + t->startEpochSeconds = pd.toEpochSeconds() + offsetSeconds; prev = t; isAfterFirst = true; diff --git a/src/ace_time/OffsetDateTime.cpp b/src/ace_time/OffsetDateTime.cpp index ae1b15c7b..7b62ddefe 100644 --- a/src/ace_time/OffsetDateTime.cpp +++ b/src/ace_time/OffsetDateTime.cpp @@ -5,7 +5,7 @@ #include // strlen() #include // strncpy_P() -#include "LocalDateTime.h" +#include "PlainDateTime.h" #include "OffsetDateTime.h" #include "TimeOffset.h" @@ -17,8 +17,8 @@ void OffsetDateTime::printTo(Print& printer) const { return; } - // LocalDateTime - mLocalDateTime.printTo(printer); + // PlainDateTime + mPlainDateTime.printTo(printer); // TimeOffset "+/-hh:mm mTimeOffset.printTo(printer); @@ -52,11 +52,11 @@ OffsetDateTime OffsetDateTime::forDateString( OffsetDateTime OffsetDateTime::forDateStringChainable(const char*& dateString) { const char* s = dateString; - LocalDateTime ldt = LocalDateTime::forDateStringChainable(s); + PlainDateTime pdt = PlainDateTime::forDateStringChainable(s); TimeOffset offset = TimeOffset::forOffsetStringChainable(s); dateString = s; - return OffsetDateTime(ldt, offset); + return OffsetDateTime(pdt, offset); } } diff --git a/src/ace_time/OffsetDateTime.h b/src/ace_time/OffsetDateTime.h index 116a6e02f..b04eb1a01 100644 --- a/src/ace_time/OffsetDateTime.h +++ b/src/ace_time/OffsetDateTime.h @@ -8,7 +8,7 @@ #include #include "TimeOffset.h" -#include "LocalDateTime.h" +#include "PlainDateTime.h" class Print; @@ -37,10 +37,10 @@ namespace ace_time { class OffsetDateTime { public: - /** Factory method from LocalDateTime and TimeOffset. */ - static OffsetDateTime forLocalDateTimeAndOffset( - const LocalDateTime& localDateTime, TimeOffset timeOffset) { - return OffsetDateTime(localDateTime, timeOffset); + /** Factory method from PlainDateTime and TimeOffset. */ + static OffsetDateTime forPlainDateTimeAndOffset( + const PlainDateTime& plainDateTime, TimeOffset timeOffset) { + return OffsetDateTime(plainDateTime, timeOffset); } /** @@ -56,14 +56,13 @@ class OffsetDateTime { * component (instead of an int8_t or int16_t) allows us to overload an * additional constructor that accepts a millisecond component in the * future. - * @param fold optional disambiguation of multiple occurences [0, 1] */ static OffsetDateTime forComponents(int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, - TimeOffset timeOffset, uint8_t fold = 0) { - auto ldt = LocalDateTime::forComponents( - year, month, day, hour, minute, second, fold); - return OffsetDateTime(ldt, timeOffset); + TimeOffset timeOffset) { + auto pdt = PlainDateTime::forComponents( + year, month, day, hour, minute, second); + return OffsetDateTime(pdt, timeOffset); } /** @@ -72,17 +71,17 @@ class OffsetDateTime { * if epochSeconds or timeOffset is an error. * * @param epochSeconds Number of seconds from AceTime epoch - * (2050-01-01 00:00:00 by default). Use LocalDate::kInvalidEpochSeconds + * (2050-01-01 00:00:00 by default). Use PlainDate::kInvalidEpochSeconds * to define an invalid instance whose isError() returns true. * @param timeOffset time offset from UTC */ static OffsetDateTime forEpochSeconds(acetime_t epochSeconds, - TimeOffset timeOffset, uint8_t fold = 0) { - if (epochSeconds != LocalDate::kInvalidEpochSeconds) { + TimeOffset timeOffset) { + if (epochSeconds != PlainDate::kInvalidEpochSeconds) { epochSeconds += timeOffset.toSeconds(); } - auto ldt = LocalDateTime::forEpochSeconds(epochSeconds, fold); - return OffsetDateTime(ldt, timeOffset); + auto pdt = PlainDateTime::forEpochSeconds(epochSeconds); + return OffsetDateTime(pdt, timeOffset); } /** @@ -96,12 +95,12 @@ class OffsetDateTime { * @param timeOffset time offset from UTC */ static OffsetDateTime forUnixSeconds64( - int64_t unixSeconds, TimeOffset timeOffset, int8_t fold = 0) { - if (unixSeconds != LocalDate::kInvalidUnixSeconds64) { + int64_t unixSeconds, TimeOffset timeOffset) { + if (unixSeconds != PlainDate::kInvalidUnixSeconds64) { unixSeconds += timeOffset.toSeconds(); } - auto ldt = LocalDateTime::forUnixSeconds64(unixSeconds, fold); - return OffsetDateTime(ldt, timeOffset); + auto pdt = PlainDateTime::forUnixSeconds64(unixSeconds); + return OffsetDateTime(pdt, timeOffset); } /** @@ -140,7 +139,7 @@ class OffsetDateTime { /** Factory method that returns an instance whose isError() is true. */ static OffsetDateTime forError() { - return OffsetDateTime(LocalDateTime::forError(), TimeOffset::forError()); + return OffsetDateTime(PlainDateTime::forError(), TimeOffset::forError()); } /** Constructor. All internal fields are left in an undefined state. */ @@ -149,53 +148,53 @@ class OffsetDateTime { /** Return true if any component indicates an error condition. */ bool isError() const { // Check mTimeOffset first because it's expected to be invalid more often. - return mTimeOffset.isError() || mLocalDateTime.isError(); + return mTimeOffset.isError() || mPlainDateTime.isError(); } /** Return the year. */ - int16_t year() const { return mLocalDateTime.year(); } + int16_t year() const { return mPlainDateTime.year(); } /** Set the year. */ - void year(int16_t year) { mLocalDateTime.year(year); } + void year(int16_t year) { mPlainDateTime.year(year); } /** Return the month with January=1, December=12. */ - uint8_t month() const { return mLocalDateTime.month(); } + uint8_t month() const { return mPlainDateTime.month(); } /** Set the month. */ - void month(uint8_t month) { mLocalDateTime.month(month); } + void month(uint8_t month) { mPlainDateTime.month(month); } /** Return the day of the month. */ - uint8_t day() const { return mLocalDateTime.day(); } + uint8_t day() const { return mPlainDateTime.day(); } /** Set the day of the month. */ - void day(uint8_t day) { mLocalDateTime.day(day); } + void day(uint8_t day) { mPlainDateTime.day(day); } /** Return the hour. */ - uint8_t hour() const { return mLocalDateTime.hour(); } + uint8_t hour() const { return mPlainDateTime.hour(); } /** Set the hour. */ - void hour(uint8_t hour) { mLocalDateTime.hour(hour); } + void hour(uint8_t hour) { mPlainDateTime.hour(hour); } /** Return the minute. */ - uint8_t minute() const { return mLocalDateTime.minute(); } + uint8_t minute() const { return mPlainDateTime.minute(); } /** Set the minute. */ - void minute(uint8_t minute) { mLocalDateTime.minute(minute); } + void minute(uint8_t minute) { mPlainDateTime.minute(minute); } /** Return the second. */ - uint8_t second() const { return mLocalDateTime.second(); } + uint8_t second() const { return mPlainDateTime.second(); } /** Set the second. */ - void second(uint8_t second) { mLocalDateTime.second(second); } + void second(uint8_t second) { mPlainDateTime.second(second); } - /** Return the fold. */ - uint8_t fold() const { return mLocalDateTime.fold(); } + /** Return the resolved. */ + Resolved resolved() const { return mPlainDateTime.resolved(); } - /** Set the fold. */ - void fold(uint8_t fold) { mLocalDateTime.fold(fold); } + /** Set the resolved. */ + void resolved(Resolved resolved) { mPlainDateTime.resolved(resolved); } /** Return the day of the week, Monday=1, Sunday=7 (per ISO 8601). */ - uint8_t dayOfWeek() const { return mLocalDateTime.dayOfWeek(); } + uint8_t dayOfWeek() const { return mPlainDateTime.dayOfWeek(); } /** Return the UTC offset of the OffsetDateTime. */ TimeOffset timeOffset() const { return mTimeOffset; } @@ -203,14 +202,26 @@ class OffsetDateTime { /** Set the UTC offset. */ void timeOffset(TimeOffset timeOffset) { mTimeOffset = timeOffset; } - /** Return the LocalDateTime. */ - const LocalDateTime& localDateTime() const { return mLocalDateTime; } + /** Return the PlainDateTime. */ + const PlainDateTime& plainDateTime() const { return mPlainDateTime; } - /** Return the LocalDate. */ - const LocalDate& localDate() const { return mLocalDateTime.localDate(); } + /** Return the PlainDate. */ + const PlainDate& plainDate() const { return mPlainDateTime.plainDate(); } - /** Return the LocalTime. */ - const LocalTime& localTime() const { return mLocalDateTime.localTime(); } + /** Return the PlainTime. */ + const PlainTime& plainTime() const { return mPlainDateTime.plainTime(); } + + /** Return the PlainDateTime. */ + ACE_TIME_DEPRECATED + const PlainDateTime& localDateTime() const { return plainDateTime(); } + + /** Return the PlainDate. */ + ACE_TIME_DEPRECATED + const PlainDate& localDate() const { return plainDate(); } + + /** Return the PlainTime. */ + ACE_TIME_DEPRECATED + const PlainTime& localTime() const { return plainTime(); } /** * Create a OffsetDateTime in a different UTC offset code (with the same @@ -229,12 +240,12 @@ class OffsetDateTime { * changed using `Epoch::currentEpochYear()`. */ int32_t toEpochDays() const { - if (isError()) return LocalDate::kInvalidEpochDays; + if (isError()) return PlainDate::kInvalidEpochDays; - int32_t epochDays = mLocalDateTime.localDate().toEpochDays(); + int32_t epochDays = mPlainDateTime.plainDate().toEpochDays(); // Increment or decrement the day count depending on the time offset. - acetime_t timeOffset = mLocalDateTime.localTime().toSeconds() + acetime_t timeOffset = mPlainDateTime.plainTime().toSeconds() - mTimeOffset.toSeconds(); if (timeOffset >= 86400) { epochDays++; @@ -247,7 +258,7 @@ class OffsetDateTime { /** Return the number of days since Unix epoch (1970-01-01 00:00:00). */ int32_t toUnixDays() const { - if (isError()) return LocalDate::kInvalidEpochDays; + if (isError()) return PlainDate::kInvalidEpochDays; return toEpochDays() + Epoch::daysToCurrentEpochFromUnixEpoch(); } @@ -257,9 +268,9 @@ class OffsetDateTime { * `Epoch::currentEpochYear()`. */ acetime_t toEpochSeconds() const { - if (isError()) return LocalDate::kInvalidEpochSeconds; - acetime_t epochSeconds = mLocalDateTime.toEpochSeconds(); - if (epochSeconds == LocalDate::kInvalidEpochSeconds) { + if (isError()) return PlainDate::kInvalidEpochSeconds; + acetime_t epochSeconds = mPlainDateTime.toEpochSeconds(); + if (epochSeconds == PlainDate::kInvalidEpochSeconds) { return epochSeconds; } return epochSeconds - mTimeOffset.toSeconds(); @@ -267,14 +278,14 @@ class OffsetDateTime { /** * Return the 64-bit number of seconds from Unix epoch 1970-01-01 00:00:00 - * UTC. Returns LocalDate::kInvalidUnixSeconds64 if isError() is true. + * UTC. Returns PlainDate::kInvalidUnixSeconds64 if isError() is true. * * Tip: You can use the command 'date +%s -d {iso8601date}' on a Unix box to * convert an ISO8601 date to the unix seconds. */ int64_t toUnixSeconds64() const { - if (isError()) return LocalDate::kInvalidUnixSeconds64; - return mLocalDateTime.toUnixSeconds64() - mTimeOffset.toSeconds(); + if (isError()) return PlainDate::kInvalidUnixSeconds64; + return mPlainDateTime.toUnixSeconds64() - mTimeOffset.toSeconds(); } /** @@ -286,7 +297,7 @@ class OffsetDateTime { * * If you want to know whether the local representatation of 'this' * OffsetDateTime occurs before or after the local representation of - * 'that', use `this->localDateTime().compareTo(that.localDateTime())` + * 'that', use `this->plainDateTime().compareTo(that.plainDateTime())` * instead. This expression ignores the time offset which is sometimes what * you want. * @@ -318,12 +329,12 @@ class OffsetDateTime { /** Expected length of an ISO 8601 date string, including UTC offset. */ static const uint8_t kDateStringLength = 25; - /** Constructor from LocalDateTime and a TimeOffset. */ - explicit OffsetDateTime(const LocalDateTime& ldt, TimeOffset timeOffset): - mLocalDateTime(ldt), + /** Constructor from PlainDateTime and a TimeOffset. */ + explicit OffsetDateTime(const PlainDateTime& pdt, TimeOffset timeOffset): + mPlainDateTime(pdt), mTimeOffset(timeOffset) {} - LocalDateTime mLocalDateTime; + PlainDateTime mPlainDateTime; TimeOffset mTimeOffset; }; @@ -333,7 +344,7 @@ class OffsetDateTime { * or 'minute'. */ inline bool operator==(const OffsetDateTime& a, const OffsetDateTime& b) { - return a.mLocalDateTime == b.mLocalDateTime + return a.mPlainDateTime == b.mPlainDateTime && a.mTimeOffset == b.mTimeOffset; } diff --git a/src/ace_time/LocalDate.cpp b/src/ace_time/PlainDate.cpp similarity index 89% rename from src/ace_time/LocalDate.cpp rename to src/ace_time/PlainDate.cpp index 95d265246..ba9f47301 100644 --- a/src/ace_time/LocalDate.cpp +++ b/src/ace_time/PlainDate.cpp @@ -6,7 +6,7 @@ #include #include // printPad2To() #include "common/DateStrings.h" // DateStrings -#include "LocalDate.h" +#include "PlainDate.h" namespace ace_time { @@ -24,7 +24,7 @@ namespace ace_time { // days because March has 31 days (28 + 3). // * atc_days_of_week[4] is 5 because May (index=4) 1st is shifted by 2 // additional days from April, because April has 30 days (28 + 2). -const uint8_t LocalDate::sDayOfWeek[12] = { +const uint8_t PlainDate::sDayOfWeek[12] = { 5 /*Jan=31*/, 1 /*Feb=28*/, 0 /*Mar=31, start of "year"*/, @@ -40,7 +40,7 @@ const uint8_t LocalDate::sDayOfWeek[12] = { }; // Using 0=Jan offset. -const uint8_t LocalDate::sDaysInMonth[12] = { +const uint8_t PlainDate::sDaysInMonth[12] = { 31 /*Jan=31*/, 28 /*Feb=28*/, 31 /*Mar=31*/, @@ -55,9 +55,9 @@ const uint8_t LocalDate::sDaysInMonth[12] = { 31 /*Dec=31*/, }; -void LocalDate::printTo(Print& printer) const { +void PlainDate::printTo(Print& printer) const { if (isError()) { - printer.print(F("")); + printer.print(F("")); return; } diff --git a/src/ace_time/LocalDate.h b/src/ace_time/PlainDate.h similarity index 87% rename from src/ace_time/LocalDate.h rename to src/ace_time/PlainDate.h index c5e85748d..226079a5d 100644 --- a/src/ace_time/LocalDate.h +++ b/src/ace_time/PlainDate.h @@ -3,8 +3,8 @@ * Copyright (c) 2018 Brian T. Park */ -#ifndef ACE_TIME_LOCAL_DATE_H -#define ACE_TIME_LOCAL_DATE_H +#ifndef ACE_TIME_PLAIN_DATE_H +#define ACE_TIME_PLAIN_DATE_H #include #include // strlen() @@ -39,11 +39,11 @@ namespace ace_time { * The dayOfWeek (1=Monday, 7=Sunday, per ISO 8601) is calculated from the date * fields. * - * Parts of this class were inspired by the java.time.LocalDate class of Java + * Parts of this class were inspired by the java.time.PlainDate class of Java * 11 - * (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/LocalDate.html). + * (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/PlainDate.html). */ -class LocalDate { +class PlainDate { public: /** * Sentinel year which indicates one or more of the following conditions: @@ -58,7 +58,7 @@ class LocalDate { static const int16_t kInvalidYear = INT16_MIN; /** - * The smallest year that is expected to be handled by LocalDate. + * The smallest year that is expected to be handled by PlainDate. * * The algorithms in the EpochConverterHinnant works for the propletic * Gregorian calendar down to year 1. However, time zone offsets and @@ -69,7 +69,7 @@ class LocalDate { static const int16_t kMinYear = 0; /** - * The largest year that is expected to be handled by LocalDate. + * The largest year that is expected to be handled by PlainDate. * * The ZoneRule instances in the zoneinfo databases (zonedb, zonedbx) have a * maximum `untilYear` value of 32767, so we have to make sure that we stay @@ -88,15 +88,15 @@ class LocalDate { /** * Minimum valid epochSeconds. The smallest int32, `INT32_MIN`, is used to - * indicate an invalid epochSeconds. Use LocalDate::forEpochSeconds() or - * LocalDateTime::forEpochSeconds() to obtain the minimum instance of those + * indicate an invalid epochSeconds. Use PlainDate::forEpochSeconds() or + * PlainDateTime::forEpochSeconds() to obtain the minimum instance of those * classes. */ static const acetime_t kMinEpochSeconds = INT32_MIN + 1; /** - * Maximum valid epochSeconds. Use LocalDate::forEpochSeconds() or - * LocalDateTime::forEpochSeconds() to obtain the maximum instance of those + * Maximum valid epochSeconds. Use PlainDate::forEpochSeconds() or + * PlainDateTime::forEpochSeconds() to obtain the maximum instance of those * classes. */ static const acetime_t kMaxEpochSeconds = INT32_MAX; @@ -144,16 +144,16 @@ class LocalDate { public: /** * Factory method using separated year, month and day fields. Returns - * LocalDate::forError() if the parameters are out of range. + * PlainDate::forError() if the parameters are out of range. * * @param year [0,10000] * @param month month with January=1, December=12 * @param day day of month [1-31] */ - static LocalDate forComponents( + static PlainDate forComponents( int16_t year, uint8_t month, uint8_t day) { year = isYearValid(year) ? year : kInvalidYear; - return LocalDate(year, month, day); + return PlainDate(year, month, day); } /** @@ -163,7 +163,7 @@ class LocalDate { * * @param epochDays number of days since the current epoch */ - static LocalDate forEpochDays(int32_t epochDays) { + static PlainDate forEpochDays(int32_t epochDays) { int16_t year; uint8_t month; uint8_t day; @@ -180,7 +180,7 @@ class LocalDate { } /** Factory method using the number of days since Unix epoch 1970-01-01. */ - static LocalDate forUnixDays(int32_t unixDays) { + static PlainDate forUnixDays(int32_t unixDays) { if (unixDays == kInvalidEpochDays) { return forError(); } @@ -202,7 +202,7 @@ class LocalDate { * * @param epochSeconds number of seconds since the current epoch */ - static LocalDate forEpochSeconds(acetime_t epochSeconds) { + static PlainDate forEpochSeconds(acetime_t epochSeconds) { if (epochSeconds == kInvalidEpochSeconds) { return forError(); } @@ -221,7 +221,7 @@ class LocalDate { * over the entire range of year `[0,10000]` due to the use of `int64_t` * operations. */ - static LocalDate forUnixSeconds64(int64_t unixSeconds) { + static PlainDate forUnixSeconds64(int64_t unixSeconds) { if (unixSeconds == kInvalidUnixSeconds64) { return forError(); } else { @@ -235,7 +235,7 @@ class LocalDate { } /** - * Factory method. Create a LocalDate from the ISO 8601 date string. If the + * Factory method. Create a PlainDate from the ISO 8601 date string. If the * string cannot be parsed, then isError() on the constructed object returns * true, but the data validation is very weak. Year should be between 0001 * and 9999. Created for mostly for debugging purposes not for production @@ -243,7 +243,7 @@ class LocalDate { * * @param dateString the date in ISO 8601 format (yyyy-mm-dd) */ - static LocalDate forDateString(const char* dateString) { + static PlainDate forDateString(const char* dateString) { if (strlen(dateString) < kDateStringLength) { return forError(); } @@ -257,7 +257,7 @@ class LocalDate { * * This method assumes that the dateString is sufficiently long. */ - static LocalDate forDateStringChainable(const char*& dateString) { + static PlainDate forDateStringChainable(const char*& dateString) { const char* s = dateString; // year (assumes 4 digit year) @@ -285,17 +285,17 @@ class LocalDate { } /** - * Factory method that returns a LocalDate which represents an error + * Factory method that returns a PlainDate which represents an error * condition. The isError() method will return true. */ - static LocalDate forError() { - return LocalDate(kInvalidYear, 0, 0); + static PlainDate forError() { + return PlainDate(kInvalidYear, 0, 0); } // Instance methods. public: /** Default constructor does nothing. */ - explicit LocalDate() = default; + explicit PlainDate() = default; /** Return the year. */ int16_t year() const { return mYear; } @@ -382,7 +382,7 @@ class LocalDate { } /** - * Calculate number of days from current LocalDate to the next target (month, + * Calculate number of days from current PlainDate to the next target (month, * day). For example, setting (month, day) of (12, 25) returns number of days * until the next Christmas. This function should always return an integer in * the interval [0, 365]. In a normal year, the maximum is 364. During a leap @@ -390,7 +390,7 @@ class LocalDate { */ int16_t daysUntil(uint8_t month, uint8_t day) const { int16_t y = year(); - LocalDate target = LocalDate::forComponents(y, month, day); + PlainDate target = PlainDate::forComponents(y, month, day); if (this->compareTo(target) > 0) { target.year(y + 1); } @@ -398,12 +398,12 @@ class LocalDate { } /** - * Compare 'this' LocalDate to 'that' LocalDate, returning (<0, 0, >0) + * Compare 'this' PlainDate to 'that' PlainDate, returning (<0, 0, >0) * according to whether 'this' occurs (before, same as, after) 'that'. If * either this->isError() or that.isError() is true, the behavior is * undefined. */ - int8_t compareTo(const LocalDate& that) const { + int8_t compareTo(const PlainDate& that) const { if (mYear < that.mYear) return -1; if (mYear > that.mYear) return 1; if (mMonth < that.mMonth) return -1; @@ -414,7 +414,7 @@ class LocalDate { } /** - * Print LocalDate to 'printer' in ISO 8601 format, along with the + * Print PlainDate to 'printer' in ISO 8601 format, along with the * day of week. * This class does not implement the Printable interface to avoid * increasing the size of the object from the additional virtual function. @@ -422,15 +422,15 @@ class LocalDate { void printTo(Print& printer) const; // Use default copy constructor and assignment operator. - LocalDate(const LocalDate&) = default; - LocalDate& operator=(const LocalDate&) = default; + PlainDate(const PlainDate&) = default; + PlainDate& operator=(const PlainDate&) = default; private: friend bool operator==( - const LocalDate& a, const LocalDate& b); + const PlainDate& a, const PlainDate& b); /** Constructor that sets the components. */ - explicit LocalDate(int16_t year, uint8_t month, uint8_t day): + explicit PlainDate(int16_t year, uint8_t month, uint8_t day): mYear(year), mMonth(month), mDay(day) {} @@ -454,15 +454,15 @@ class LocalDate { uint8_t mDay; // [1, 31], 0 indicates error }; -/** Return true if two LocalDate objects are equal in all components. */ -inline bool operator==(const LocalDate& a, const LocalDate& b) { +/** Return true if two PlainDate objects are equal in all components. */ +inline bool operator==(const PlainDate& a, const PlainDate& b) { return a.mDay == b.mDay && a.mMonth == b.mMonth && a.mYear == b.mYear; } -/** Return true if two LocalDate objects are not equal. */ -inline bool operator!=(const LocalDate& a, const LocalDate& b) { +/** Return true if two PlainDate objects are not equal. */ +inline bool operator!=(const PlainDate& a, const PlainDate& b) { return ! (a == b); } diff --git a/src/ace_time/LocalDateTime.cpp b/src/ace_time/PlainDateTime.cpp similarity index 61% rename from src/ace_time/LocalDateTime.cpp rename to src/ace_time/PlainDateTime.cpp index 5b2311468..cfb4c65a1 100644 --- a/src/ace_time/LocalDateTime.cpp +++ b/src/ace_time/PlainDateTime.cpp @@ -7,44 +7,44 @@ #include // strncpy_P() #include #include "common/DateStrings.h" -#include "LocalDateTime.h" +#include "PlainDateTime.h" using ace_common::printPad2To; namespace ace_time { -void LocalDateTime::printTo(Print& printer) const { +void PlainDateTime::printTo(Print& printer) const { if (isError()) { - printer.print(F("")); + printer.print(F("")); return; } // Date - printer.print(mLocalDate.year()); + printer.print(mPlainDate.year()); printer.print('-'); - printPad2To(printer, mLocalDate.month(), '0'); + printPad2To(printer, mPlainDate.month(), '0'); printer.print('-'); - printPad2To(printer, mLocalDate.day(), '0'); + printPad2To(printer, mPlainDate.day(), '0'); // 'T' separator printer.print('T'); // Time - printPad2To(printer, mLocalTime.hour(), '0'); + printPad2To(printer, mPlainTime.hour(), '0'); printer.print(':'); - printPad2To(printer, mLocalTime.minute(), '0'); + printPad2To(printer, mPlainTime.minute(), '0'); printer.print(':'); - printPad2To(printer, mLocalTime.second(), '0'); + printPad2To(printer, mPlainTime.second(), '0'); } -LocalDateTime LocalDateTime::forDateString(const char* dateString) { +PlainDateTime PlainDateTime::forDateString(const char* dateString) { if (strlen(dateString) < kDateTimeStringLength) { - return LocalDateTime::forError(); + return PlainDateTime::forError(); } return forDateStringChainable(dateString); } -LocalDateTime LocalDateTime::forDateString( +PlainDateTime PlainDateTime::forDateString( const __FlashStringHelper* dateString) { // Copy the F() string into a buffer. Use strncpy_P() because ESP32 and // ESP8266 do not have strlcpy_P(). We need +1 for the '\0' character and @@ -62,20 +62,20 @@ LocalDateTime LocalDateTime::forDateString( return forDateString(buffer); } -LocalDateTime LocalDateTime::forDateStringChainable(const char*& dateString) { +PlainDateTime PlainDateTime::forDateStringChainable(const char*& dateString) { const char* s = dateString; // date - LocalDate ld = LocalDate::forDateStringChainable(s); + PlainDate pd = PlainDate::forDateStringChainable(s); // 'T' s++; // time - LocalTime lt = LocalTime::forTimeStringChainable(s); + PlainTime pt = PlainTime::forTimeStringChainable(s); dateString = s; - return LocalDateTime(ld, lt); + return PlainDateTime(pd, pt); } } diff --git a/src/ace_time/LocalDateTime.h b/src/ace_time/PlainDateTime.h similarity index 54% rename from src/ace_time/LocalDateTime.h rename to src/ace_time/PlainDateTime.h index e4b204bb6..724376790 100644 --- a/src/ace_time/LocalDateTime.h +++ b/src/ace_time/PlainDateTime.h @@ -3,14 +3,14 @@ * Copyright (c) 2018 Brian T. Park */ -#ifndef ACE_TIME_LOCAL_DATE_TIME_H -#define ACE_TIME_LOCAL_DATE_TIME_H +#ifndef ACE_TIME_PLAIN_DATE_TIME_H +#define ACE_TIME_PLAIN_DATE_TIME_H #include // size_t #include // uint8_t, etc #include // strlen() -#include "LocalDate.h" -#include "LocalTime.h" +#include "PlainDate.h" +#include "PlainTime.h" class Print; class __FlashStringHelper; @@ -20,14 +20,13 @@ namespace ace_time { /** * Class that holds the date-time as the components (year, month, day, hour, * minute, second) without regards to the time zone. It is an aggregation of - * the LocalDate and LocalTime classes. + * the PlainDate and PlainTime classes. * - * Parts of this class were inspired by the java.time.LocalDateTime class of + * Parts of this class were inspired by the java.time.PlainDateTime class of * Java 11 - * (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/LocalDateTime.html). - * The 'fold' parameter was inspired by the datetime package in Python 3.6. + * (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/PlainDateTime.html). */ -class LocalDateTime { +class PlainDateTime { public: /** @@ -39,30 +38,27 @@ class LocalDateTime { * @param hour hour [0-23] * @param minute minute [0-59] * @param second second [0-59], does not support leap seconds - * @param fold optional disambiguation of multiple occurences [0, 1] */ - static LocalDateTime forComponents(int16_t year, uint8_t month, - uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, - uint8_t fold = 0) { - LocalDate ld = LocalDate::forComponents(year, month, day); - LocalTime lt = LocalTime::forComponents(hour, minute, second, fold); - return LocalDateTime(ld, lt); + static PlainDateTime forComponents(int16_t year, uint8_t month, + uint8_t day, uint8_t hour, uint8_t minute, uint8_t second) { + PlainDate pd = PlainDate::forComponents(year, month, day); + PlainTime pt = PlainTime::forComponents(hour, minute, second); + return PlainDateTime(pd, pt); } /** - * Factory method. Create the various components of the LocalDateTime from + * Factory method. Create the various components of the PlainDateTime from * the epochSeconds. * - * Returns LocalDateTime::forError() if epochSeconds is equal to - * LocalDate::kInvalidEpochSeconds. + * Returns PlainDateTime::forError() if epochSeconds is equal to + * PlainDate::kInvalidEpochSeconds. * * @param epochSeconds Number of seconds from AceTime epoch - * (2000-01-01 00:00:00). Use LocalDate::kInvalidEpochSeconds to define + * (2000-01-01 00:00:00). Use PlainDate::kInvalidEpochSeconds to define * an invalid instance whose isError() returns true. */ - static LocalDateTime forEpochSeconds( - acetime_t epochSeconds, uint8_t fold = 0) { - if (epochSeconds == LocalDate::kInvalidEpochSeconds) { + static PlainDateTime forEpochSeconds(acetime_t epochSeconds) { + if (epochSeconds == PlainDate::kInvalidEpochSeconds) { return forError(); } @@ -75,9 +71,9 @@ class LocalDateTime { // epochSeconds could be negative. int32_t seconds = epochSeconds - 86400 * days; - LocalDate ld = LocalDate::forEpochDays(days); - LocalTime lt = LocalTime::forSeconds(seconds, fold); - return LocalDateTime(ld, lt); + PlainDate pd = PlainDate::forEpochDays(days); + PlainTime pt = PlainTime::forSeconds(seconds); + return PlainDateTime(pd, pt); } /** @@ -85,11 +81,10 @@ class LocalDateTime { * of 1970-01-01. * Valid until the 64-bit unixSeconds reaches the equivalent of * 2068-01-19T03:14:07 UTC. - * Returns LocalDateTime::forError() if unixSeconds is invalid. + * Returns PlainDateTime::forError() if unixSeconds is invalid. */ - static LocalDateTime forUnixSeconds64( - int64_t unixSeconds, uint8_t fold = 0) { - if (unixSeconds == LocalDate::kInvalidUnixSeconds64) { + static PlainDateTime forUnixSeconds64(int64_t unixSeconds) { + if (unixSeconds == PlainDate::kInvalidUnixSeconds64) { return forError(); } @@ -102,33 +97,33 @@ class LocalDateTime { : epochSeconds64 / 86400; int32_t seconds = epochSeconds64 - (int64_t) 86400 * days; - LocalDate ld = LocalDate::forEpochDays(days); - LocalTime lt = LocalTime::forSeconds(seconds, fold); - return LocalDateTime(ld, lt); + PlainDate pd = PlainDate::forEpochDays(days); + PlainTime pt = PlainTime::forSeconds(seconds); + return PlainDateTime(pd, pt); } /** - * Factory method. Create a LocalDateTime from the ISO 8601 date string. If - * the string cannot be parsed, then returns LocalDateTime::forError(). + * Factory method. Create a PlainDateTime from the ISO 8601 date string. If + * the string cannot be parsed, then returns PlainDateTime::forError(). * * The parsing validation is so weak that the behavior is undefined for most * invalid date/time strings. It cares mostly about the positional placement * of the various components. It does not validate the separation characters * like '-' or ':'. For example, both of the following strings will parse to - * the exactly same LocalDateTime object: "2018-08-31T13:48:01" and + * the exactly same PlainDateTime object: "2018-08-31T13:48:01" and * "2018/08/31 13.48.01" * * @param dateString the date and time in ISO 8601 format * "YYYY-MM-DDThh:mm:ss". The range of valid dates is from * 0001-01-01T00:00:00 to 9999-12-31T23:59:59. */ - static LocalDateTime forDateString(const char* dateString); + static PlainDateTime forDateString(const char* dateString); /** - * Factory method. Create a LocalDateTime from date string in flash memory + * Factory method. Create a PlainDateTime from date string in flash memory * F() strings. Mostly for unit testing. */ - static LocalDateTime forDateString(const __FlashStringHelper* dateString); + static PlainDateTime forDateString(const __FlashStringHelper* dateString); /** * Variant of forDateString() that updates the pointer to the next @@ -137,71 +132,79 @@ class LocalDateTime { * * This method assumes that the dateString is sufficiently long. */ - static LocalDateTime forDateStringChainable(const char*& dateString); + static PlainDateTime forDateStringChainable(const char*& dateString); /** Factory method that returns an instance where isError() returns true. */ - static LocalDateTime forError() { - return LocalDateTime(LocalDate::forError(), LocalTime::forError()); + static PlainDateTime forError() { + return PlainDateTime(PlainDate::forError(), PlainTime::forError()); } /** Constructor. All internal fields are left in an undefined state. */ - explicit LocalDateTime() {} + explicit PlainDateTime() {} /** Return true if any component indicates an error condition. */ bool isError() const { - return mLocalDate.isError() || mLocalTime.isError(); + return mPlainDate.isError() || mPlainTime.isError(); } /** Return the year. */ - int16_t year() const { return mLocalDate.year(); } + int16_t year() const { return mPlainDate.year(); } /** Set the year. */ - void year(int16_t year) { mLocalDate.year(year); } + void year(int16_t year) { mPlainDate.year(year); } /** Return the month with January=1, December=12. */ - uint8_t month() const { return mLocalDate.month(); } + uint8_t month() const { return mPlainDate.month(); } /** Set the month. */ - void month(uint8_t month) { mLocalDate.month(month); } + void month(uint8_t month) { mPlainDate.month(month); } /** Return the day of the month. */ - uint8_t day() const { return mLocalDate.day(); } + uint8_t day() const { return mPlainDate.day(); } /** Set the day of the month. */ - void day(uint8_t day) { mLocalDate.day(day); } + void day(uint8_t day) { mPlainDate.day(day); } /** Return the hour. */ - uint8_t hour() const { return mLocalTime.hour(); } + uint8_t hour() const { return mPlainTime.hour(); } /** Set the hour. */ - void hour(uint8_t hour) { mLocalTime.hour(hour); } + void hour(uint8_t hour) { mPlainTime.hour(hour); } /** Return the minute. */ - uint8_t minute() const { return mLocalTime.minute(); } + uint8_t minute() const { return mPlainTime.minute(); } /** Set the minute. */ - void minute(uint8_t minute) { mLocalTime.minute(minute); } + void minute(uint8_t minute) { mPlainTime.minute(minute); } /** Return the second. */ - uint8_t second() const { return mLocalTime.second(); } + uint8_t second() const { return mPlainTime.second(); } /** Set the second. */ - void second(uint8_t second) { mLocalTime.second(second); } + void second(uint8_t second) { mPlainTime.second(second); } - /** Return the fold. */ - uint8_t fold() const { return mLocalTime.fold(); } + /** Return the resolved. */ + Resolved resolved() const { return mPlainTime.resolved(); } - /** Set the fold. */ - void fold(uint8_t fold) { mLocalTime.fold(fold); } + /** Set the resolved. */ + void resolved(Resolved resolved) { mPlainTime.resolved(resolved); } /** Return the day of the week, Monday=1, Sunday=7 (per ISO 8601). */ - uint8_t dayOfWeek() const { return mLocalDate.dayOfWeek(); } + uint8_t dayOfWeek() const { return mPlainDate.dayOfWeek(); } - /** Return the LocalDate. */ - const LocalDate& localDate() const { return mLocalDate; } + /** Return the PlainDate. */ + const PlainDate& plainDate() const { return mPlainDate; } - /** Return the LocalTime. */ - const LocalTime& localTime() const { return mLocalTime; } + /** Return the PlainTime. */ + const PlainTime& plainTime() const { return mPlainTime; } + + /** Return the PlainDate. */ + ACE_TIME_DEPRECATED + const PlainDate& localDate() const { return plainDate(); } + + /** Return the PlainTime. */ + ACE_TIME_DEPRECATED + const PlainTime& localTime() const { return plainTime(); } /** * Return number of whole days since AceTime epoch. The default epoch is @@ -209,13 +212,13 @@ class LocalDateTime { * `Epoch::currentEpochYear()`. */ int32_t toEpochDays() const { - if (isError()) return LocalDate::kInvalidEpochDays; - return mLocalDate.toEpochDays(); + if (isError()) return PlainDate::kInvalidEpochDays; + return mPlainDate.toEpochDays(); } /** Return the number of days since Unix epoch (1970-01-01 00:00:00). */ int32_t toUnixDays() const { - if (isError()) return LocalDate::kInvalidEpochDays; + if (isError()) return PlainDate::kInvalidEpochDays; return toEpochDays() + Epoch::daysToCurrentEpochFromUnixEpoch(); } @@ -224,83 +227,83 @@ class LocalDateTime { * Epoch::currentEpochYear(). The default epoch is 2000-01-01 00:00:00 * UTC, but can be changed using `Epoch::currentEpochYear()`. * - * Returns LocalDate::kInvalidEpochSeconds if isError() is true, or the + * Returns PlainDate::kInvalidEpochSeconds if isError() is true, or the * epochSeconds is out of range. */ acetime_t toEpochSeconds() const { - if (isError()) return LocalDate::kInvalidEpochSeconds; - int32_t days = mLocalDate.toEpochDays(); - int32_t seconds = mLocalTime.toSeconds(); + if (isError()) return PlainDate::kInvalidEpochSeconds; + int32_t days = mPlainDate.toEpochDays(); + int32_t seconds = mPlainTime.toSeconds(); return (int32_t) 86400 * days + seconds; } /** * Return 64-bit seconds from Unix epoch 1970-01-01 00:00:00 UTC, after * assuming that the date and time components are in UTC timezone. Returns - * LocalDate::kInvalidUnixSeconds64 if isError() is true. + * PlainDate::kInvalidUnixSeconds64 if isError() is true. * * Tip: You can use the command 'date +%s -d {iso8601date}' on a Unix box * to print the unix seconds of a given ISO8601 date. */ int64_t toUnixSeconds64() const { - if (isError()) return LocalDate::kInvalidUnixSeconds64; + if (isError()) return PlainDate::kInvalidUnixSeconds64; int32_t days = toUnixDays(); - int32_t seconds = mLocalTime.toSeconds(); + int32_t seconds = mPlainTime.toSeconds(); return (int64_t) 86400 * days + seconds; } /** - * Compare 'this' LocalDateTime with 'that' LocalDateTime, and return (<0, + * Compare 'this' PlainDateTime with 'that' PlainDateTime, and return (<0, * 0, >0) according to whether 'this' occurs (before, same as, after) * 'that'. If either this->isError() or that.isError() is true, the * behavior is undefined. */ - int8_t compareTo(const LocalDateTime& that) const { - int8_t dateCompare = localDate().compareTo(that.localDate()); + int8_t compareTo(const PlainDateTime& that) const { + int8_t dateCompare = plainDate().compareTo(that.plainDate()); if (dateCompare != 0) return dateCompare; - int8_t timeCompare = localTime().compareTo(that.localTime()); + int8_t timeCompare = plainTime().compareTo(that.plainTime()); if (timeCompare != 0) return timeCompare; return 0; } /** - * Print LocalDateTime to 'printer' in ISO 8601 format. + * Print PlainDateTime to 'printer' in ISO 8601 format. * This class does not implement the Printable interface to avoid * increasing the size of the object from the additional virtual function. */ void printTo(Print& printer) const; // Use default copy constructor and assignment operator. - LocalDateTime(const LocalDateTime&) = default; - LocalDateTime& operator=(const LocalDateTime&) = default; + PlainDateTime(const PlainDateTime&) = default; + PlainDateTime& operator=(const PlainDateTime&) = default; private: - friend bool operator==(const LocalDateTime& a, const LocalDateTime& b); + friend bool operator==(const PlainDateTime& a, const PlainDateTime& b); /** Expected length of an ISO 8601 date string. */ static const uint8_t kDateTimeStringLength = 19; - /** Constructor from a LocalDate and LocalTime. */ - explicit LocalDateTime(const LocalDate& ld, const LocalTime& lt): - mLocalDate(ld), - mLocalTime(lt) {} + /** Constructor from a PlainDate and PlainTime. */ + explicit PlainDateTime(const PlainDate& pd, const PlainTime& pt): + mPlainDate(pd), + mPlainTime(pt) {} - LocalDate mLocalDate; - LocalTime mLocalTime; + PlainDate mPlainDate; + PlainTime mPlainTime; }; /** - * Return true if two LocalDateTime objects are equal in all components. + * Return true if two PlainDateTime objects are equal in all components. * Optimized for small changes in the less signficant fields, such as 'second' * or 'minute'. */ -inline bool operator==(const LocalDateTime& a, const LocalDateTime& b) { - return a.mLocalDate == b.mLocalDate - && a.mLocalTime == b.mLocalTime; +inline bool operator==(const PlainDateTime& a, const PlainDateTime& b) { + return a.mPlainDate == b.mPlainDate + && a.mPlainTime == b.mPlainTime; } -/** Return true if two LocalDateTime objects are not equal. */ -inline bool operator!=(const LocalDateTime& a, const LocalDateTime& b) { +/** Return true if two PlainDateTime objects are not equal. */ +inline bool operator!=(const PlainDateTime& a, const PlainDateTime& b) { return ! (a == b); } diff --git a/src/ace_time/LocalTime.cpp b/src/ace_time/PlainTime.cpp similarity index 76% rename from src/ace_time/LocalTime.cpp rename to src/ace_time/PlainTime.cpp index 0ace61904..69cf0fc53 100644 --- a/src/ace_time/LocalTime.cpp +++ b/src/ace_time/PlainTime.cpp @@ -5,15 +5,15 @@ #include // strlen() #include -#include "LocalTime.h" +#include "PlainTime.h" using ace_common::printPad2To; namespace ace_time { -void LocalTime::printTo(Print& printer) const { +void PlainTime::printTo(Print& printer) const { if (isError()) { - printer.print(F("")); + printer.print(F("")); return; } @@ -25,7 +25,7 @@ void LocalTime::printTo(Print& printer) const { printPad2To(printer, mSecond, '0'); } -LocalTime LocalTime::forTimeString(const char* timeString) { +PlainTime PlainTime::forTimeString(const char* timeString) { if (strlen(timeString) < kTimeStringLength) { return forError(); } @@ -33,7 +33,7 @@ LocalTime LocalTime::forTimeString(const char* timeString) { } // This assumes that the dateString is always long enough. -LocalTime LocalTime::forTimeStringChainable(const char*& timeString) { +PlainTime PlainTime::forTimeStringChainable(const char*& timeString) { const char* s = timeString; // hour @@ -55,7 +55,7 @@ LocalTime LocalTime::forTimeStringChainable(const char*& timeString) { second = 10 * second + (*s++ - '0'); timeString = s; - return LocalTime(hour, minute, second); + return PlainTime(hour, minute, second); } } diff --git a/src/ace_time/LocalTime.h b/src/ace_time/PlainTime.h similarity index 68% rename from src/ace_time/LocalTime.h rename to src/ace_time/PlainTime.h index cefa211c0..ddbfa857f 100644 --- a/src/ace_time/LocalTime.h +++ b/src/ace_time/PlainTime.h @@ -3,8 +3,8 @@ * Copyright (c) 2018 Brian T. Park */ -#ifndef ACE_TIME_LOCAL_TIME_H -#define ACE_TIME_LOCAL_TIME_H +#ifndef ACE_TIME_PLAIN_TIME_H +#define ACE_TIME_PLAIN_TIME_H #include #include "common/common.h" @@ -19,12 +19,18 @@ namespace ace_time { * Trying to create an instance outside of this range causes the isError() * method to return true, and toSeconds() returns kInvalidSeconds. * - * Parts of this class were inspired by the java.time.LocalTime class of Java + * Parts of this class were inspired by the java.time.PlainTime class of Java * 11 - * (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/LocalTime.html). - * The 'fold' parameter was inspired by the datetime package in Python 3.6. + * (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/PlainTime.html). + * + * The 'resolved' parameter was originally called 'fold' as inspired by the + * datetime package in Python 3.6, but renamed to 'resolved' because the Python + * mechanism turned out to be too confusing and not useful enough. This + * parameter is arguably better suited to be in OffsetDateTime or ZonedDateTime, + * but placing this field in this class reduces the memory size of + * OffsetDateTime or ZoneDateTime due to struct alignment. */ -class LocalTime { +class PlainTime { public: /** An invalid seconds marker that indicates isError() true. */ static const int32_t kInvalidSeconds = INT32_MIN; @@ -38,22 +44,21 @@ class LocalTime { * @param hour hour (0-23) * @param minute minute (0-59) * @param second second (0-59), does not support leap seconds - * @param fold optional disambiguation of multiple occurrences [0, 1] */ - static LocalTime forComponents(uint8_t hour, uint8_t minute, - uint8_t second, uint8_t fold = 0) { - return LocalTime(hour, minute, second, fold); + static PlainTime forComponents( + uint8_t hour, uint8_t minute, uint8_t second) { + return PlainTime(hour, minute, second); } /** - * Factory method. Create the various components of the LocalTime from + * Factory method. Create the various components of the PlainTime from * the number of seconds from midnight. If kInvalidSeconds is given, * the isError() condition is set to be true. The behavior is undefined * if seconds is greater than 86399. * * @param seconds number of seconds from midnight, (0-86399) */ - static LocalTime forSeconds(acetime_t seconds, uint8_t fold = 0) { + static PlainTime forSeconds(acetime_t seconds) { uint8_t second, minute, hour; if (seconds == kInvalidSeconds) { @@ -66,18 +71,18 @@ class LocalTime { } // Return a single object to allow return value optimization. - return LocalTime(hour, minute, second, fold); + return PlainTime(hour, minute, second); } /** - * Factory method. Create a LocalTime from the ISO 8601 time string. If - * the string cannot be parsed, then returns LocalTime::forError(). + * Factory method. Create a PlainTime from the ISO 8601 time string. If + * the string cannot be parsed, then returns PlainTime::forError(). * However, the data validation on parsing is very weak and the behavior is * undefined for most invalid time strings. * * @param @timeString time in the form of "hh:mm:ss" (e.g. 12:34:56) */ - static LocalTime forTimeString(const char* timeString); + static PlainTime forTimeString(const char* timeString); /** * Variant of forTimeString() that updates the pointer to the next @@ -86,18 +91,18 @@ class LocalTime { * * This method assumes that the dateString is sufficiently long. */ - static LocalTime forTimeStringChainable(const char*& timeString); + static PlainTime forTimeStringChainable(const char*& timeString); /** * Factory method that returns an instance which indicates an error * condition. The isError() method will return true. */ - static LocalTime forError() { - return LocalTime(kInvalidValue, kInvalidValue, kInvalidValue); + static PlainTime forError() { + return PlainTime(kInvalidValue, kInvalidValue, kInvalidValue); } /** Default constructor does nothing. */ - explicit LocalTime() {} + explicit PlainTime() {} /** * Return true if any component is outside the normal time range of 00:00:00 @@ -132,11 +137,11 @@ class LocalTime { /** Set the second. */ void second(uint8_t second) { mSecond = second; } - /** Return the fold. */ - uint8_t fold() const { return mFold; } + /** Return the resolved. */ + Resolved resolved() const { return mResolved; } - /** Set the fold. */ - void fold(uint8_t fold) { mFold = fold; } + /** Set the resolved. */ + void resolved(Resolved resolved) { mResolved = resolved; } /** * Return the number of seconds since midnight. @@ -152,14 +157,14 @@ class LocalTime { } /** - * Compare 'this' LocalTime with 'that' LocalTime, and return (<0, 0, >0) + * Compare 'this' PlainTime with 'that' PlainTime, and return (<0, 0, >0) * according to whether 'this' occurs (before, same as, after) 'that'. - * The 'fold' parameter is ignored. + * The 'resolved' parameter is ignored. * * If either this->isError() or that.isError() is true, the behavior is * undefined. */ - int8_t compareTo(const LocalTime& that) const { + int8_t compareTo(const PlainTime& that) const { if (mHour < that.mHour) return -1; if (mHour > that.mHour) return 1; if (mMinute < that.mMinute) return -1; @@ -170,18 +175,18 @@ class LocalTime { } /** - * Print LocalTime to 'printer' in ISO 8601 format. + * Print PlainTime to 'printer' in ISO 8601 format. * This class does not implement the Printable interface to avoid * increasing the size of the object from the additional virtual function. */ void printTo(Print& printer) const; // Use default copy constructor and assignment operator. - LocalTime(const LocalTime&) = default; - LocalTime& operator=(const LocalTime&) = default; + PlainTime(const PlainTime&) = default; + PlainTime& operator=(const PlainTime&) = default; private: - friend bool operator==(const LocalTime& a, const LocalTime& b); + friend bool operator==(const PlainTime& a, const PlainTime& b); /** Expected length of an ISO 8601 time string "hh:mm:ss" */ static const uint8_t kTimeStringLength = 8; @@ -190,41 +195,34 @@ class LocalTime { static const uint8_t kInvalidValue = UINT8_MAX; /** Constructor that sets the components. */ - explicit LocalTime( + explicit PlainTime( uint8_t hour, uint8_t minute, uint8_t second, - uint8_t fold = 0 + Resolved resolved = Resolved::kUnique ): mHour(hour), mMinute(minute), mSecond(second), - mFold(fold) + mResolved(resolved) {} private: uint8_t mHour; // [0, 23] uint8_t mMinute; // [0, 59] uint8_t mSecond; // [0, 59] - - // Use a separate byte for fold. If we implemented this using a C++ bit - // field (e.g. the upper bit of 'mHour'), it causes BasicZoneProcessor and - // ExtendedZoneProcessor to consume 200 extra bytes of flash due to the bit - // masking operations on accesses and mutations. Even on AVR processors, I - // think the increase in static memory is better than paying the 200 bytes - // of flash memory. Using a separate byte is also faster. - uint8_t mFold; // [0, 1] + Resolved mResolved; }; -/** Return true if two LocalTime objects are equal. The fold is ignored. */ -inline bool operator==(const LocalTime& a, const LocalTime& b) { +/** Return true if two PlainTime objects are equal. The resolved is ignored. */ +inline bool operator==(const PlainTime& a, const PlainTime& b) { return a.mSecond == b.mSecond && a.mMinute == b.mMinute && a.mHour == b.mHour; } -/** Return true if two LocalTime objects are not equal. The fold is ignored. */ -inline bool operator!=(const LocalTime& a, const LocalTime& b) { +/** Return true if two PlainTime objects are not equal. The resolved is ignored. */ +inline bool operator!=(const PlainTime& a, const PlainTime& b) { return ! (a == b); } diff --git a/src/ace_time/TimeZone.h b/src/ace_time/TimeZone.h index aa360d3e0..9b49b56fc 100644 --- a/src/ace_time/TimeZone.h +++ b/src/ace_time/TimeZone.h @@ -301,7 +301,9 @@ class TimeZone { bool isError() const { return mType == kTypeError; } /** Return the ZonedExtra information at epochSeconds. */ - ZonedExtra getZonedExtra(const LocalDateTime& ldt) const { + ZonedExtra getZonedExtra( + const PlainDateTime& pdt, + Disambiguate disambiguate) const { switch (mType) { case kTypeError: case kTypeReserved: @@ -323,7 +325,8 @@ class TimeZone { abbrev); default: { - FindResult result = getBoundZoneProcessor()->findByLocalDateTime(ldt); + FindResult result = getBoundZoneProcessor()->findByPlainDateTime( + pdt, disambiguate); if (result.type == FindResult::kTypeNotFound) { return ZonedExtra::forError(); } @@ -379,11 +382,13 @@ class TimeZone { /** * Return the best estimate of the OffsetDateTime at the given - * LocalDateTime for the current TimeZone. Used by + * PlainDateTime for the current TimeZone. Used by * ZonedDateTime::forComponents(), so intended to be used mostly for * testing and debugging. */ - OffsetDateTime getOffsetDateTime(const LocalDateTime& ldt) const { + OffsetDateTime getOffsetDateTime( + const PlainDateTime& pdt, + Disambiguate disambiguate) const { OffsetDateTime odt = OffsetDateTime::forError(); switch (mType) { case kTypeError: @@ -391,13 +396,14 @@ class TimeZone { break; case kTypeManual: - odt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, + odt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forMinutes(mStdOffsetMinutes + mDstOffsetMinutes)); break; default: { - FindResult result = getBoundZoneProcessor()->findByLocalDateTime(ldt); + FindResult result = getBoundZoneProcessor()->findByPlainDateTime( + pdt, disambiguate); if (result.type == FindResult::kTypeNotFound) { break; } @@ -405,9 +411,11 @@ class TimeZone { // Convert FindResult into OffsetDateTime using the requested offset. TimeOffset reqOffset = TimeOffset::forSeconds( result.reqStdOffsetSeconds + result.reqDstOffsetSeconds); - odt = OffsetDateTime::forLocalDateTimeAndOffset(ldt, reqOffset); - odt.fold(result.fold); + odt = OffsetDateTime::forPlainDateTimeAndOffset(pdt, reqOffset); + // TODO: I think this can go into the 'else' section of an + // if-statement which combines with the above. + // // Special processing for kTypeGap: Convert to epochSeconds using the // reqStdOffsetMinutes and reqDstOffsetMinutes, then convert back to // OffsetDateTime using the target stdOffsetMinutes and @@ -418,6 +426,8 @@ class TimeZone { result.stdOffsetSeconds + result.dstOffsetSeconds); odt = OffsetDateTime::forEpochSeconds(epochSeconds, targetOffset); } + + odt.resolved(resolveForResultTypeAndFold(result.type, result.fold)); break; } } @@ -451,8 +461,7 @@ class TimeZone { TimeOffset offset = TimeOffset::forSeconds( result.reqStdOffsetSeconds + result.reqDstOffsetSeconds); - odt = OffsetDateTime::forEpochSeconds( - epochSeconds, offset, result.fold); + odt = OffsetDateTime::forEpochSeconds(epochSeconds, offset); break; } } @@ -595,6 +604,25 @@ class TimeZone { return mZoneProcessor; } + // Convert FindResult.type and fold into a Resolved field. + static Resolved resolveForResultTypeAndFold(uint8_t frtype, uint8_t fold) { + if (frtype == FindResult::kTypeOverlap) { + if (fold == 0) { + return Resolved::kOverlapEarlier; + } else { + return Resolved::kOverlapLater; + } + } else if (frtype == FindResult::kTypeGap) { + if (fold == 0) { + return Resolved::kGapLater; + } else { + return Resolved::kGapEarlier; + } + } else { + return Resolved::kUnique; + } + } + private: uint8_t mType; diff --git a/src/ace_time/Transition.h b/src/ace_time/Transition.h index 8ebab9e0d..694dba39c 100644 --- a/src/ace_time/Transition.h +++ b/src/ace_time/Transition.h @@ -8,7 +8,7 @@ #include // uint8_t #include "common/logging.h" -#include "local_date_mutation.h" +#include "plain_date_mutation.h" #include "DateTuple.h" class TransitionStorageTest_getFreeAgent; @@ -272,7 +272,7 @@ struct TransitionTemplate { * Tuple of a matching Transition and its 'fold'. Used by * findTransitionForSeconds() which is guaranteed to return only a single * Transition if found. Usually `fold=0`. But if the epochSeconds maps to a - * LocalDateTime which occurs a second time during a "fall back", then `fold` is + * PlainDateTime which occurs a second time during a "fall back", then `fold` is * set to 1. */ template @@ -284,16 +284,16 @@ struct TransitionForSecondsTemplate { uint8_t fold; /** - * Number of occurrences of the resulting LocalDateTime: 0, 1, or 2. - * This is needed because a fold=0 can mean that the LocalDateTime occurs - * exactly once, or that the first of two occurrences of LocalDateTime was + * Number of occurrences of the resulting PlainDateTime: 0, 1, or 2. + * This is needed because a fold=0 can mean that the PlainDateTime occurs + * exactly once, or that the first of two occurrences of PlainDateTime was * selected by the epochSeconds. */ uint8_t num; }; /** - * The result of the findTransitionForDateTime(const LocalDatetime& ldt) method + * The result of the findTransitionForDateTime(const PlainDatetime& pdt) method * which can return 0, 1, or 2 matching Transitions depending on whether the * DateTime is an exact match, in the gap, or in the overlap. * @@ -339,9 +339,9 @@ struct TransitionForDateTimeTemplate { * 3) Candidate pool: [mIndexCandidates, mIndexFree) * 4) Free agent pool: [mIndexFree, mAllocSize), 0 or 1 element * - * At the completion of the ExtendedZoneProcessor::init(LocalDate& ld) method, + * At the completion of the ExtendedZoneProcessor::init(PlainDate& pd) method, * the Active pool will contain the active Transitions relevant to the - * 'year' defined by the LocalDate. The Prior and Candidate pools will be + * 'year' defined by the PlainDate. The Prior and Candidate pools will be * empty, with the Free pool taking up the remaining space. * * @tparam SIZE size of internal cache @@ -593,7 +593,7 @@ class TransitionStorageTemplate { * cannot be mapped to any transition. It is 1 if the epochSeconds in the * `curr` transition is unique and does not overlap with the `prev` or * `next` transition. It is 2 if the epochSeconds in the `curr` transition - * maps to a LocalDateTime that overlaps with either the `prev` or `next` + * maps to a PlainDateTime that overlaps with either the `prev` or `next` * transition. (In theory, I suppose it could overlap with both, but it is * improbable that any timezone in the TZDB will ever let that happen.) * @@ -602,7 +602,7 @@ class TransitionStorageTemplate { * 2. If `num` is 0 or 1, `fold` will always be 0. If `num` is 2, then * `fold` indicates whether `curr` is the earlier (0) or later (1) * transition of the overlap. This `fold` parameter will be copied into the - * corresponding `fold` parameter in LocalDateTime. + * corresponding `fold` parameter in PlainDateTime. */ static void calcFoldAndOverlap( uint8_t* fold, @@ -676,13 +676,13 @@ class TransitionStorageTemplate { * dateTime falls in a gap or overlap. */ TransitionForDateTime findTransitionForDateTime( - const LocalDateTime& ldt) const { - // Convert LocalDateTime to DateTuple. - DateTuple localDate{ - ldt.year(), - ldt.month(), - ldt.day(), - ((ldt.hour() * int32_t(60) + ldt.minute()) * 60 + ldt.second()), + const PlainDateTime& pdt) const { + // Convert PlainDateTime to DateTuple. + DateTuple plainDate{ + pdt.year(), + pdt.month(), + pdt.day(), + ((pdt.hour() * int32_t(60) + pdt.minute()) * 60 + pdt.second()), extended::Info::ZoneContext::kSuffixW, }; @@ -696,8 +696,8 @@ class TransitionStorageTemplate { const DateTuple& startDateTime = curr->startDateTime; const DateTuple& untilDateTime = curr->untilDateTime; - bool isExactMatch = (startDateTime <= localDate) - && (localDate < untilDateTime); + bool isExactMatch = (startDateTime <= plainDate) + && (plainDate < untilDateTime); if (isExactMatch) { // Check for a previous exact match to detect an overlap. @@ -708,7 +708,7 @@ class TransitionStorageTemplate { // Loop again to detect an overlap. num = 1; - } else if (startDateTime > localDate) { + } else if (startDateTime > plainDate) { // Exit loop since no more candidate transition. break; } diff --git a/src/ace_time/ZoneProcessor.cpp b/src/ace_time/ZoneProcessor.cpp index 90dfdc27a..2316775e0 100644 --- a/src/ace_time/ZoneProcessor.cpp +++ b/src/ace_time/ZoneProcessor.cpp @@ -16,12 +16,12 @@ MonthDay calcStartDayOfMonth(int16_t year, uint8_t month, if (onDayOfMonth >= 0) { // Convert "last{Xxx}" to "last{Xxx}>={daysInMonth-6}". - uint8_t daysInMonth = LocalDate::daysInMonth(year, month); + uint8_t daysInMonth = PlainDate::daysInMonth(year, month); if (onDayOfMonth == 0) { onDayOfMonth = daysInMonth - 6; } - auto limitDate = LocalDate::forComponents(year, month, onDayOfMonth); + auto limitDate = PlainDate::forComponents(year, month, onDayOfMonth); uint8_t dayOfWeekShift = (onDayOfWeek - limitDate.dayOfWeek() + 7) % 7; uint8_t day = (uint8_t) (onDayOfMonth + dayOfWeekShift); if (day > daysInMonth) { @@ -32,13 +32,13 @@ MonthDay calcStartDayOfMonth(int16_t year, uint8_t month, return {month, day}; } else { onDayOfMonth = -onDayOfMonth; - auto limitDate = LocalDate::forComponents(year, month, onDayOfMonth); + auto limitDate = PlainDate::forComponents(year, month, onDayOfMonth); int8_t dayOfWeekShift = (limitDate.dayOfWeek() - onDayOfWeek + 7) % 7; int8_t day = onDayOfMonth - dayOfWeekShift; if (day < 1) { // TODO: Support shifting from Jan to Dec of the previous year. month--; - uint8_t daysInPrevMonth = LocalDate::daysInMonth(year, month); + uint8_t daysInPrevMonth = PlainDate::daysInMonth(year, month); day += daysInPrevMonth; } return {month, (uint8_t) day}; diff --git a/src/ace_time/ZoneProcessor.h b/src/ace_time/ZoneProcessor.h index c8e759db8..db9d26348 100644 --- a/src/ace_time/ZoneProcessor.h +++ b/src/ace_time/ZoneProcessor.h @@ -13,43 +13,51 @@ class Print; namespace ace_time { -class LocalDateTime; +class PlainDateTime; /** * Result of a search for transition at a specific epochSeconds or a specific - * LocalDateTime. More than one transition can match if the LocalDateTime occurs + * PlainDateTime. More than one transition can match if the PlainDateTime occurs * during an overlap (e.g. during a "fall back" from DST to STD). */ class FindResult { public: + /** The epochSeconds or PlainDateTime was not found. */ static const uint8_t kTypeNotFound = 0; + + /** The epochSeconds or PlainDateTime matched a unique ZonedDateTime. */ static const uint8_t kTypeExact = 1; + + /** The PlainDateTime matched a gap. */ static const uint8_t kTypeGap = 2; + + /** The PlainDateTime matched an overlap. */ static const uint8_t kTypeOverlap = 3; /** - * Result of the findByEpochSeconds() or findByLocalDateTime() search + * Result of the findByEpochSeconds() or findByPlainDateTime() search * methods. There are 2 slightly different cases: * - * Case 1: findByLocalDateTime() + * Case findByPlainDateTime(): * * kTypeNotFound: * * No matching Transition found. * * kTypeExact: * * A single Transition found. * * kTypeGap: - * * LocalDateTime occurs in a gap. - * * LocalDateTime::fold=0 returns the earlier transition in - * reqStdOffsetSeconds and reqDstOffsetSeconds, and the later - * transition in stdOffsetSeconds and dstOffsetSeconds. - * * LocalDateTime::fold=1 returns the later transition in + * * PlainDateTime occurs in a gap. + * * ZonedDateTime::resolved is set to either returns the earlier + * transition in reqStdOffsetSeconds and reqDstOffsetSeconds, and the + * later transition in stdOffsetSeconds and dstOffsetSeconds. + * * ZonedDateTime::fold=1 returns the later transition in * reqStdOffsetSeconds and reqDstOffsetSeconds, and the * earlier transition in stdOffsetSeconds and dstOffsetSeconds. * * kTypeOverlap: - * * LocalDateTime matches 2 Transitions. - * * LocalDateTime::fold=0 selects the earlier transition. - * * LocalDateTime::fold=1 selects the later transition. + * * PlainDateTime matches 2 Transitions due to an overlap. + * * ZonedDateTime::resolved is set to Resolved::kOverlapEarlier or + * Resolved::kOverlapLater depending on the + * 'disambiguate' flag. * - * Case 2: findByEpochSeconds() + * Case findByEpochSeconds(): * * kTypeNotFound: * * If no matching Transition found. * * kTypeExact: @@ -57,21 +65,38 @@ class FindResult { * * kTypeGap: * * Cannot occur. * * kTypeOverlap: - * * A single Transition found, but the epochSeconds occurs during an - * overlap where two local times can occur. - * * The `fold` parameter contains 0 or 1 to indicate the earlier or - * later resulting OffsetDateTime. + * * Cannot occur. */ uint8_t type = kTypeNotFound; /** - * For findByLocalDateTime(), when type==kTypeOverlap, this is a copy of the - * requested LocalDateTime::fold parameter. For all other resulting types, - * including kTypeGap, this will be set to 0. + * Characterize the result in the gap or overlap further. The 'fold' + * parameter is used only if type is 'kTypeGap' or 'kTypeOverlap'. + * + * For findByEpochSeconds(), the `fold` parameter is relevant only if + * epochSeconds falls in an overlap (type==kTypeOverlap). + * * fold=0 means that the requested epochSeconds matched a backwards + * shadow of a later transition (e.g. the first time 1:30am was seen + * before a fallback from 2am to 1am). + * * fold=1 means that the requested epochSeconds matched the forward + * shadow of an earlier transition (e.g. the second time 1:30am was seen + * after a fallback from 2am to 1am). * - * For findByEpochSeconds(), when type==kTypeOverlap, this defines whether - * the corresponding LocalDateTime occurs the first time (0) or the second - * time (1). For all other resulting type, this will be set to 0. + * For findByPlainDateTime(), the `fold` parameter is relevant for both + * kTypeGap and kTypeOverlap. + * * If the requested PlainDateTime is in an overlap: + * * `fold=0` means that the "select earlier" + * (Disambiguate::kCompatible or Disambiguate::kEarlier) was + * requested, + * * `fold=1` means that the "select later" (Disambiguate::kReversed + * or Disambiguate::kLater) option was requested. + * * If the requested PlainDateTime is in a gap: + * * `fold=0` means the earlier transition was requested by a "select + * later" was requested (specified by Disambiguate::kCompatible or + * Disambiguate::Earlier); + * * `fold=1` means that the later transition was selected using + * "select earlier" (specified by Disambiguate::kReversed or + * Disambiguate::Later). */ uint8_t fold = 0; @@ -83,26 +108,26 @@ class FindResult { /** * STD offset of the Transition which matched the epochSeconds requested by - * findByEpochSeconds(), or the LocalDateTime requested by - * findByLocalDateTime(). + * findByEpochSeconds(), or the PlainDateTime requested by + * findByPlainDateTime(). * * This may be different than the stdOffsetSeconds when - * findByLocalDateTime() returns kTypeGap. For all other resulting types + * findByPlainDateTime() returns kTypeGap. For all other resulting types * from findByEpochSeconds(), and for all resulting types from - * findByLocalDateTime(), the reqStdOffsetSeconds will be the same as + * findByPlainDateTime(), the reqStdOffsetSeconds will be the same as * stdOffsetSeconds. */ int32_t reqStdOffsetSeconds = 0; /** * DST offset of the Transition which matched the epochSeconds requested by - * findByEpochSeconds(), or the LocalDateTime requested by - * findByLocalDateTime(). + * findByEpochSeconds(), or the PlainDateTime requested by + * findByPlainDateTime(). * * This may be different than the dstOffsetSeconds when - * findByLocalDateTime() returns kTypeGap. For all other resulting types + * findByPlainDateTime() returns kTypeGap. For all other resulting types * from findByEpochSeconds(), and for all resulting types from - * findByLocalDateTime(), the reqStdOffsetSeconds will be the same as + * findByPlainDateTime(), the reqStdOffsetSeconds will be the same as * dstOffsetSeconds. */ int32_t reqDstOffsetSeconds = 0; @@ -125,7 +150,7 @@ class FindResult { * call the correct methods. * * 2) Fully implement a polymorphic class hierarchy, lifting various common - * methods (e.g. findByLocalDateTime(), findByEpochSeconds()) into this + * methods (e.g. findByPlainDateTime(), findByEpochSeconds()) into this * interface as virtual methods, then add a virtual equals() method to implement * the operator==(). * @@ -148,9 +173,10 @@ class ZoneProcessor { /** Return the unique stable zoneId. */ virtual uint32_t getZoneId() const = 0; - /** Return the search results at given LocalDateTime. */ - virtual FindResult findByLocalDateTime( - const LocalDateTime& ldt) const = 0; + /** Return the search results at given PlainDateTime. */ + virtual FindResult findByPlainDateTime( + const PlainDateTime& pdt, + Disambiguate disambiguate) const = 0; /** Return the search results at given epochSeconds. */ virtual FindResult findByEpochSeconds( @@ -244,15 +270,15 @@ class ZoneProcessor { /** * Year that was used to calculate the transitions in the current cache. Set - * to LocalDate::kInvalidYear to indicate invalid cache. + * to PlainDate::kInvalidYear to indicate invalid cache. */ - mutable int16_t mYear = LocalDate::kInvalidYear; + mutable int16_t mYear = PlainDate::kInvalidYear; /** * Epoch year that was used to calculate the transitions in the current - * cache. Set to LocalDate::kInvalidYear to indicate invalid cache. + * cache. Set to PlainDate::kInvalidYear to indicate invalid cache. */ - mutable int16_t mEpochYear = LocalDate::kInvalidYear; + mutable int16_t mEpochYear = PlainDate::kInvalidYear; }; inline bool operator==(const ZoneProcessor& a, const ZoneProcessor& b) { diff --git a/src/ace_time/ZonedDateTime.h b/src/ace_time/ZonedDateTime.h index 6213d0aa4..abebfa64d 100644 --- a/src/ace_time/ZonedDateTime.h +++ b/src/ace_time/ZonedDateTime.h @@ -50,34 +50,47 @@ class ZonedDateTime { * @param minute minute [0-59] * @param second second [0-59], does not support leap seconds * @param timeZone a TimeZone instance (use TimeZone() for UTC) - * @param fold optional disambiguation of multiple occurences [0, 1] + * @param disambiguate disambiguate overlap or gap */ static ZonedDateTime forComponents( int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, - const TimeZone& timeZone, uint8_t fold = 0) { - auto ldt = LocalDateTime::forComponents( - year, month, day, hour, minute, second, fold); - return forLocalDateTime(ldt, timeZone); + const TimeZone& timeZone, + Disambiguate disambiguate = Disambiguate::kCompatible) { + auto pdt = PlainDateTime::forComponents( + year, month, day, hour, minute, second); + return forPlainDateTime(pdt, timeZone, disambiguate); } /** - * Factory method using LocalDateTime and time zone fields. + * Factory method using PlainDateTime and time zone fields. * This is intended mostly for testing purposes. Most production code * will use the forEpochSeconds() method. * * The TimeOffset at the given date/time component is calculated using * TimeZone::getOffsetDateTime(). * - * @param ldt LocalDateTime (including the fold parameter) + * @param pdt PlainDateTime (including the resolved parameter) * @param timeZone a TimeZone instance (use TimeZone() for UTC) + * @param disambiguate disambiguate overlap or gap */ - static ZonedDateTime forLocalDateTime( - const LocalDateTime& ldt, - const TimeZone& timeZone) { - auto odt = timeZone.getOffsetDateTime(ldt); + static ZonedDateTime forPlainDateTime( + const PlainDateTime& pdt, + const TimeZone& timeZone, + Disambiguate disambiguate = Disambiguate::kCompatible) { + auto odt = timeZone.getOffsetDateTime(pdt, disambiguate); return ZonedDateTime(odt, timeZone); } + + /** Backwards compatible version of forPlainDateTime(). */ + ACE_TIME_DEPRECATED + static ZonedDateTime forLocalDateTime( + const PlainDateTime& pdt, + const TimeZone& timeZone, + Disambiguate disambiguate = Disambiguate::kCompatible) { + return forPlainDateTime(pdt, timeZone, disambiguate); + } + /** * Factory method. Create the ZonedDateTime from epochSeconds as seen from * the given time zone. The dayOfWeek will be calculated internally. @@ -86,13 +99,13 @@ class ZonedDateTime { * @param epochSeconds Number of seconds from the current epoch by * `Epoch::currentEpochYear()`. The default is 2050-01-01 00:00:00 UTC * which can be changed by `currentEpochYear(year)`. A value of - * LocalDate::kInvalidEpochSeconds is a sentinel that is considered to be an + * PlainDate::kInvalidEpochSeconds is a sentinel that is considered to be an * error and causes isError() to return true. * @param timeZone a TimeZone instance (use TimeZone() for UTC) */ static ZonedDateTime forEpochSeconds(acetime_t epochSeconds, const TimeZone& timeZone) { - OffsetDateTime odt = (epochSeconds == LocalDate::kInvalidEpochSeconds) + OffsetDateTime odt = (epochSeconds == PlainDate::kInvalidEpochSeconds) ? OffsetDateTime::forError() : timeZone.getOffsetDateTime(epochSeconds); return ZonedDateTime(odt, timeZone); @@ -119,8 +132,8 @@ class ZonedDateTime { static ZonedDateTime forUnixSeconds64( int64_t unixSeconds, const TimeZone& timeZone) { acetime_t epochSeconds; - if (unixSeconds == LocalDate::kInvalidUnixSeconds64) { - epochSeconds = LocalDate::kInvalidEpochSeconds; + if (unixSeconds == PlainDate::kInvalidUnixSeconds64) { + epochSeconds = PlainDate::kInvalidEpochSeconds; } else { epochSeconds = unixSeconds - Epoch::secondsToCurrentEpochFromUnixEpoch64(); @@ -202,11 +215,11 @@ class ZonedDateTime { /** Set the second. */ void second(uint8_t second) { mOffsetDateTime.second(second); } - /** Return the fold. */ - uint8_t fold() const { return mOffsetDateTime.fold(); } + /** Return the resolved. */ + Resolved resolved() const { return mOffsetDateTime.resolved(); } - /** Set the fold. */ - void fold(uint8_t fold) { mOffsetDateTime.fold(fold); } + /** Set the resolved. */ + void resolved(Resolved resolved) { mOffsetDateTime.resolved(resolved); } /** * Return the day of the week using ISO 8601 numbering where Monday=1 and @@ -226,9 +239,15 @@ class ZonedDateTime { /** Return the offset zone of the OffsetDateTime. */ TimeOffset timeOffset() const { return mOffsetDateTime.timeOffset(); } - /** Return the LocalDateTime of the components. */ - const LocalDateTime& localDateTime() const { - return mOffsetDateTime.localDateTime(); + /** Return the PlainDateTime of the components. */ + const PlainDateTime& plainDateTime() const { + return mOffsetDateTime.plainDateTime(); + } + + /** Return the PlainDateTime of the components. */ + ACE_TIME_DEPRECATED + const PlainDateTime& localDateTime() const { + return plainDateTime(); } /** Return the OffsetDateTime of the components. */ @@ -251,9 +270,12 @@ class ZonedDateTime { * additional memory and consume too much CPU resources on 8-bit processors. * So we must provide this normalize() method which must be called * manually by the client code. + * + * @param disambiguate disambiguate overlap or gap */ - void normalize() { - mOffsetDateTime = mTimeZone.getOffsetDateTime(localDateTime()); + void normalize(Disambiguate disambiguate = Disambiguate::kCompatible) { + mOffsetDateTime = mTimeZone.getOffsetDateTime( + plainDateTime(), disambiguate); } /** @@ -290,7 +312,7 @@ class ZonedDateTime { /** * Return the 64-bit number of seconds from Unix epoch 1970-01-01 00:00:00 - * UTC. Returns LocalDAte::kInvalidUnixSeconds64 if isError() is true. + * UTC. Returns PlainDate::kInvalidUnixSeconds64 if isError() is true. * * Tip: You can use the command 'date +%s -d {iso8601date}' on a Unix box to * print the unix seconds. @@ -309,7 +331,7 @@ class ZonedDateTime { * * If you want to know whether the local representatation of 'this' * ZonedDateTime occurs before or after the local representation of 'that', - * use `this->localDateTime().compareTo(that.localDateTime())` instead. + * use `this->plainDateTime().compareTo(that.plainDateTime())` instead. * This expression ignores the time zone which is sometimes what you want. * * If either this->isError() or that.isError() is true, the result is diff --git a/src/ace_time/ZonedExtra.cpp b/src/ace_time/ZonedExtra.cpp index 91d94819c..a069a4461 100644 --- a/src/ace_time/ZonedExtra.cpp +++ b/src/ace_time/ZonedExtra.cpp @@ -6,10 +6,10 @@ namespace ace_time { ZonedExtra ZonedExtra::forComponents( int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, - const TimeZone& tz, uint8_t fold) { - auto ldt = LocalDateTime::forComponents( - year, month, day, hour, minute, second, fold); - return forLocalDateTime(ldt, tz); + const TimeZone& tz, Disambiguate disambiguate) { + auto pdt = PlainDateTime::forComponents( + year, month, day, hour, minute, second); + return forPlainDateTime(pdt, tz, disambiguate); } // These are defined in the .cpp file to break cyclic dependency. @@ -20,10 +20,11 @@ ZonedExtra ZonedExtra::forEpochSeconds( } // These are defined in the .cpp file to break cyclic dependency. -ZonedExtra ZonedExtra::forLocalDateTime( - const LocalDateTime& ldt, - const TimeZone& tz) { - return tz.getZonedExtra(ldt); +ZonedExtra ZonedExtra::forPlainDateTime( + const PlainDateTime& pdt, + const TimeZone& tz, + Disambiguate disambiguate) { + return tz.getZonedExtra(pdt, disambiguate); } } diff --git a/src/ace_time/ZonedExtra.h b/src/ace_time/ZonedExtra.h index 86a2ce52c..224c71176 100644 --- a/src/ace_time/ZonedExtra.h +++ b/src/ace_time/ZonedExtra.h @@ -14,7 +14,7 @@ namespace ace_time { class TimeZone; -class LocalDateTime; +class PlainDateTime; class ZonedExtra { public: @@ -22,32 +22,33 @@ class ZonedExtra { static const uint8_t kAbbrevSize = ace_time::kAbbrevSize; /** - * The epochSeconds or LocalDateTime was not found because it was outside + * The epochSeconds or PlainDateTime was not found because it was outside * the range of the zoneinfo database (too far past, or too far in the * future). */ static const uint8_t kTypeNotFound = 0; /** - * The given LocalDateTime matches a single epochSeconds. - * The given epochSeconds matches a single LocalDateTime. + * The given PlainDateTime matches a single epochSeconds. + * The given epochSeconds matches a single PlainDateTime. */ static const uint8_t kTypeExact = 1; /** - * The given LocalDateTime occurs in a gap and does not match any + * The given PlainDateTime occurs in a gap and does not match any * epochSeconds. + * * A given epochSeconds will never return this because it will always match - * either a single LocalDateTime or match nothing. + * a unique PlainDateTime. */ static const uint8_t kTypeGap = 2; /** - * The given LocalDateTime matches 2 possible epochSeconds, which is - * disambguiated by the LocalDateTime::fold input parameter. - * The given epochSeconds matches a LocalDateTime that can occur twice, and - * is disambiguated by the OffsetDateTime::fold (same as - * ZonedDateTime::fold) output parameter. + * The given PlainDateTime matches 2 possible epochSeconds, which is + * disambiguated by the 'disambiguate' parameter in the lookup function. + * + * A look up using epochSeconds will never return this because it will + * always match a unique PlainDateTime. */ static const uint8_t kTypeOverlap = 3; @@ -57,14 +58,15 @@ class ZonedExtra { } /** - * Return an instance for the given LocalDateTime and TimeZone. - * If you already have a ZonedDateTime, then the LocalDateTime can be - * retrieved using ZonedDateTime::localDateTime(). + * Return an instance for the given PlainDateTime and TimeZone. + * If you already have a ZonedDateTime, then the PlainDateTime can be + * retrieved using ZonedDateTime::plainDateTime(). */ static ZonedExtra forComponents( int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, - const TimeZone& tz, uint8_t fold = 0); + const TimeZone& tz, + Disambiguate disambiguate = Disambiguate::kCompatible); /** Return an instance for the given epochSeconds and TimeZone. */ static ZonedExtra forEpochSeconds( @@ -72,18 +74,28 @@ class ZonedExtra { const TimeZone& tz); /** - * Return an instance for the given LocalDateTime and TimeZone. - * If you already have a ZonedDateTime, then the LocalDateTime can be - * retrieved using ZonedDateTime::localDateTime(). + * Return an instance for the given PlainDateTime and TimeZone. + * If you already have a ZonedDateTime, then the PlainDateTime can be + * retrieved using ZonedDateTime::plainDateTime(). */ + static ZonedExtra forPlainDateTime( + const PlainDateTime& pdt, + const TimeZone& tz, + Disambiguate disambiguate = Disambiguate::kCompatible); + + /** Backwards compatible version of forPlainDateTime(). */ + ACE_TIME_DEPRECATED static ZonedExtra forLocalDateTime( - const LocalDateTime& ldt, - const TimeZone& tz); + const PlainDateTime& pdt, + const TimeZone& tz, + Disambiguate disambiguate = Disambiguate::kCompatible) { + return forPlainDateTime(pdt, tz, disambiguate); + } - /** Consructor */ + /** Constructor */ explicit ZonedExtra() {} - /** Consructor */ + /** Constructor */ explicit ZonedExtra( uint8_t type, int32_t stdOffsetSeconds, @@ -101,7 +113,7 @@ class ZonedExtra { mAbbrev[kAbbrevSize - 1] = '\0'; } - /** Indicates that the LocalDateTime or epochSeconds was not found. */ + /** Indicates that the PlainDateTime or epochSeconds was not found. */ bool isError() const { return mStdOffsetSeconds == kInvalidSeconds; } @@ -129,7 +141,7 @@ class ZonedExtra { } /** - * STD offset of the requested epochSeconds or LocalDateTime. + * STD offset of the requested epochSeconds or PlainDateTime. * This will be different from stdOffset only for kTypeGap. */ TimeOffset reqStdOffset() const { @@ -137,7 +149,7 @@ class ZonedExtra { } /** - * DST offset of the requested epochSeconds or LocalDateTime. + * DST offset of the requested epochSeconds or PlainDateTime. * This will be different from stdOffset only for kTypeGap. */ TimeOffset reqDstOffset() const { @@ -145,10 +157,10 @@ class ZonedExtra { } /** - * The total time offset of the requested epochSeconds of LocalDateTime, + * The total time offset of the requested epochSeconds of PlainDateTime, * (reqStdOffset + reqDstOffset). This value becomes lost when a * ZonedDateTime is created using `ZonedDateTime::forComponents()` during a - * DST gap, because it was used to convert the given LocalDateTime to an + * DST gap, because it was used to convert the given PlainDateTime to an * epochSeconds, before the epochSeconds was renormalized back into a * ZonedDateTime. The ZonedExtra object provided access to this UTC offset. */ @@ -159,7 +171,7 @@ class ZonedExtra { /** * Returns the pointer to the local string buffer containing the timezone - * abbreviation (e.g. "PST", "PDT") used at the given LocalDateTime or + * abbreviation (e.g. "PST", "PDT") used at the given PlainDateTime or * epochSeconds. This pointer is safe to use as long as this object is * alive. */ diff --git a/src/ace_time/backwards.h b/src/ace_time/backwards.h new file mode 100644 index 000000000..8df031b75 --- /dev/null +++ b/src/ace_time/backwards.h @@ -0,0 +1,39 @@ +/* + * MIT License + * Copyright (c) 2025 Brian T. Park + */ + +/** + * @file backwards.h + * + * Provide backwards compatibility macros for the renaming of: + * + * - LocalDate -> PlainDate + * - LocalTime -> PlainTime + * - LocalDateTime -> PlainDateTime + * + * Various methods within classes have backwards compatible shims that forward + * to the new versions: + * + * - ZonedDateTime::localDateTime() + * - ZonedDateTime::forLocalDateTime() + * - ZonedExtra::forLocalDateTime() + * - OffsetDateTime::localDateTime() + * - OffsetDateTime::localDate() + * - OffsetDateTime::localTime() + * - PlainDateTime::localDate() + * - PlainDateTime::localTime() + * + * In theory, the `zonedb` database and namespace should have been renamed to + * `zonedb2000` (for symmetry with `zonedb2025`). But I could not figure out a + * way provide a backwards compatible shim. So we have live with 'zonedb`. + */ + +#ifndef ACE_TIME_BACKWARDS_H +#define ACE_TIME_BACKWARDS_H + +#define LocalDate PlainDate +#define LocalDateTime PlainDateTime +#define LocalTime PlainTime + +#endif diff --git a/src/ace_time/common/common.h b/src/ace_time/common/common.h index 49dda16ce..4ac87f1a9 100644 --- a/src/ace_time/common/common.h +++ b/src/ace_time/common/common.h @@ -8,6 +8,8 @@ #include +#define ACE_TIME_DEPRECATED __attribute__((deprecated)) + /** * @file common.h * @@ -51,6 +53,62 @@ void swap(T& a, T& b) { b = tmp; } -} +/** + * These are options that the calling code can use to control how to + * disambiguate the ZonedDateTime during an overlap or a gap when converting + * from a PlainDateTime. + */ +enum class Disambiguate : uint8_t { + /** Select the earlier ZonedDateTime in an overlap, but the later + * ZonedDateTime in a gap. + */ + kCompatible = 0, + + /** Always select the earlier ZonedDateTime. */ + kEarlier = 1, + + /** Always select the later ZonedDateTime. */ + kLater = 2, + + /** The reverse of kCompatible. In other words, select the later ZonedDateTime + * in an overlap, and the earlier ZonedDateTime in a gap. + */ + kReversed = 3, +}; + +/** + * These are the ways that a given PlainDateTime was resolved to a + * ZonedDateTime, depending on whether the PlainDateTime occurred in an overlap, + * a gap, or was a unique mapping. + */ +enum class Resolved : uint8_t { + /** PlainDateTime was resolved to a unique ZonedDateTime. */ + kUnique = 0, + + /** PlainDateTime was in an overlap, and resolved to the earlier + * ZonedDateTime. + */ + kOverlapEarlier = 1, + + /** PlainDateTime was in an overlap, and resolved to the later ZonedDateTime. + */ + kOverlapLater = 2, + + /** + * PlainDateTime was in a gap, and resolved to the earlier ZonedDateTime that + * would have matched if we had extended the later transition rule backwards + * in time. + */ + kGapEarlier = 3, + + /** + * PlainDateTime was in a gap, and resolved to the later ZonedDateTime + * that would have matched if we had extended the earlier transition rule + * forwards in time. + */ + kGapLater = 4, +}; + +} // ace_time #endif diff --git a/src/ace_time/local_date_mutation.h b/src/ace_time/local_date_mutation.h deleted file mode 100644 index 667687dab..000000000 --- a/src/ace_time/local_date_mutation.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * MIT License - * Copyright (c) 2018 Brian T. Park - */ - -#ifndef ACE_TIME_LOCAL_DATE_MUTATION_H -#define ACE_TIME_LOCAL_DATE_MUTATION_H - -#include -#include "LocalDate.h" - -namespace ace_time { -namespace local_date_mutation { - -/** - * Increment LocalDate by one day. Incrementing 9999-12-31 produces 10000-01-01 - * which is not a normal LocalDate because it represents +Infinity. - */ -inline void incrementOneDay(LocalDate& ld) { - uint8_t day = ld.day() + 1; - uint8_t month = ld.month(); - int16_t year = ld.year(); - - if (day > LocalDate::daysInMonth(ld.year(), month)) { - day = 1; - month++; - if (month > 12) { - month = 1; - year++; - } - } - ld.day(day); - ld.month(month); - ld.year(year); -} - -/** - * Decrement LocalDate by one day. Decrementing past 0001-01-01 will produce - * 0000-12-31, which is not a normal LocalDate because it represents -Infinity. - */ -inline void decrementOneDay(LocalDate& ld) { - uint8_t day = ld.day() - 1; - uint8_t month = ld.month(); - int16_t year = ld.year(); - - if (day == 0) { - if (month == 1) { - day = 31; - month = 12; - year--; - } else { - month--; - day = LocalDate::daysInMonth(ld.year(), month); - } - } - ld.day(day); - ld.month(month); - ld.year(year); -} - -} -} - -#endif diff --git a/src/ace_time/plain_date_mutation.h b/src/ace_time/plain_date_mutation.h new file mode 100644 index 000000000..4263c879e --- /dev/null +++ b/src/ace_time/plain_date_mutation.h @@ -0,0 +1,64 @@ +/* + * MIT License + * Copyright (c) 2018 Brian T. Park + */ + +#ifndef ACE_TIME_PLAIN_DATE_MUTATION_H +#define ACE_TIME_PLAIN_DATE_MUTATION_H + +#include +#include "PlainDate.h" + +namespace ace_time { +namespace plain_date_mutation { + +/** + * Increment PlainDate by one day. Incrementing 9999-12-31 produces 10000-01-01 + * which is not a normal PlainDate because it represents +Infinity. + */ +inline void incrementOneDay(PlainDate& pd) { + uint8_t day = pd.day() + 1; + uint8_t month = pd.month(); + int16_t year = pd.year(); + + if (day > PlainDate::daysInMonth(pd.year(), month)) { + day = 1; + month++; + if (month > 12) { + month = 1; + year++; + } + } + pd.day(day); + pd.month(month); + pd.year(year); +} + +/** + * Decrement PlainDate by one day. Decrementing past 0001-01-01 will produce + * 0000-12-31, which is not a normal PlainDate because it represents -Infinity. + */ +inline void decrementOneDay(PlainDate& pd) { + uint8_t day = pd.day() - 1; + uint8_t month = pd.month(); + int16_t year = pd.year(); + + if (day == 0) { + if (month == 1) { + day = 31; + month = 12; + year--; + } else { + month--; + day = PlainDate::daysInMonth(pd.year(), month); + } + } + pd.day(day); + pd.month(month); + pd.year(year); +} + +} +} + +#endif diff --git a/src/testingzonedb/zone_infos.cpp b/src/testingzonedb/zone_infos.cpp index 191cb7b53..8b194e79f 100644 --- a/src/testingzonedb/zone_infos.cpp +++ b/src/testingzonedb/zone_infos.cpp @@ -48,7 +48,7 @@ // Rules: 32 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 288 // Policies: 24 // Eras: 165 @@ -59,10 +59,10 @@ // Letters: 11 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 913 +// TOTAL: 917 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 384 // Policies: 64 // Eras: 240 @@ -73,7 +73,7 @@ // Letters: 17 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 1294 +// TOTAL: 1298 // // DO NOT EDIT diff --git a/src/testingzonedb/zone_infos.h b/src/testingzonedb/zone_infos.h index 9fe5089c1..7b3dd9251 100644 --- a/src/testingzonedb/zone_infos.h +++ b/src/testingzonedb/zone_infos.h @@ -48,7 +48,7 @@ // Rules: 32 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 288 // Policies: 24 // Eras: 165 @@ -59,10 +59,10 @@ // Letters: 11 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 913 +// TOTAL: 917 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 384 // Policies: 64 // Eras: 240 @@ -73,7 +73,7 @@ // Letters: 17 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 1294 +// TOTAL: 1298 // // DO NOT EDIT diff --git a/src/testingzonedb/zone_policies.cpp b/src/testingzonedb/zone_policies.cpp index 8efcbfc08..35d6294d9 100644 --- a/src/testingzonedb/zone_policies.cpp +++ b/src/testingzonedb/zone_policies.cpp @@ -48,7 +48,7 @@ // Rules: 32 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 288 // Policies: 24 // Eras: 165 @@ -59,10 +59,10 @@ // Letters: 11 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 913 +// TOTAL: 917 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 384 // Policies: 64 // Eras: 240 @@ -73,7 +73,7 @@ // Letters: 17 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 1294 +// TOTAL: 1298 // // DO NOT EDIT diff --git a/src/testingzonedb/zone_policies.h b/src/testingzonedb/zone_policies.h index c7d700473..d5121c540 100644 --- a/src/testingzonedb/zone_policies.h +++ b/src/testingzonedb/zone_policies.h @@ -48,7 +48,7 @@ // Rules: 32 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 288 // Policies: 24 // Eras: 165 @@ -59,10 +59,10 @@ // Letters: 11 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 913 +// TOTAL: 917 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 384 // Policies: 64 // Eras: 240 @@ -73,7 +73,7 @@ // Letters: 17 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 1294 +// TOTAL: 1298 // // DO NOT EDIT diff --git a/src/testingzonedb/zone_registry.cpp b/src/testingzonedb/zone_registry.cpp index 46f50d75a..4b76135eb 100644 --- a/src/testingzonedb/zone_registry.cpp +++ b/src/testingzonedb/zone_registry.cpp @@ -48,7 +48,7 @@ // Rules: 32 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 288 // Policies: 24 // Eras: 165 @@ -59,10 +59,10 @@ // Letters: 11 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 913 +// TOTAL: 917 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 384 // Policies: 64 // Eras: 240 @@ -73,7 +73,7 @@ // Letters: 17 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 1294 +// TOTAL: 1298 // // DO NOT EDIT diff --git a/src/testingzonedb/zone_registry.h b/src/testingzonedb/zone_registry.h index eadadcff6..9be63cab2 100644 --- a/src/testingzonedb/zone_registry.h +++ b/src/testingzonedb/zone_registry.h @@ -48,7 +48,7 @@ // Rules: 32 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 288 // Policies: 24 // Eras: 165 @@ -59,10 +59,10 @@ // Letters: 11 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 913 +// TOTAL: 917 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 384 // Policies: 64 // Eras: 240 @@ -73,7 +73,7 @@ // Letters: 17 // Fragments: 0 // Names: 202 (original: 202) -// TOTAL: 1294 +// TOTAL: 1298 // // DO NOT EDIT diff --git a/src/testingzonedbc/zone_infos.cpp b/src/testingzonedbc/zone_infos.cpp index b438f3a10..7be75a435 100644 --- a/src/testingzonedbc/zone_infos.cpp +++ b/src/testingzonedbc/zone_infos.cpp @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 2640 // Policies: 33 // Eras: 450 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 3709 +// TOTAL: 3713 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 600 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4140 +// TOTAL: 4144 // // DO NOT EDIT diff --git a/src/testingzonedbc/zone_infos.h b/src/testingzonedbc/zone_infos.h index 51fa1edae..2bd882593 100644 --- a/src/testingzonedbc/zone_infos.h +++ b/src/testingzonedbc/zone_infos.h @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 2640 // Policies: 33 // Eras: 450 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 3709 +// TOTAL: 3713 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 600 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4140 +// TOTAL: 4144 // // DO NOT EDIT diff --git a/src/testingzonedbc/zone_policies.cpp b/src/testingzonedbc/zone_policies.cpp index fced342fa..346b9169f 100644 --- a/src/testingzonedbc/zone_policies.cpp +++ b/src/testingzonedbc/zone_policies.cpp @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 2640 // Policies: 33 // Eras: 450 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 3709 +// TOTAL: 3713 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 600 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4140 +// TOTAL: 4144 // // DO NOT EDIT diff --git a/src/testingzonedbc/zone_policies.h b/src/testingzonedbc/zone_policies.h index 50fe1708f..c31ce9f35 100644 --- a/src/testingzonedbc/zone_policies.h +++ b/src/testingzonedbc/zone_policies.h @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 2640 // Policies: 33 // Eras: 450 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 3709 +// TOTAL: 3713 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 600 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4140 +// TOTAL: 4144 // // DO NOT EDIT diff --git a/src/testingzonedbc/zone_registry.cpp b/src/testingzonedbc/zone_registry.cpp index e0e298859..4f61557e2 100644 --- a/src/testingzonedbc/zone_registry.cpp +++ b/src/testingzonedbc/zone_registry.cpp @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 2640 // Policies: 33 // Eras: 450 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 3709 +// TOTAL: 3713 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 600 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4140 +// TOTAL: 4144 // // DO NOT EDIT diff --git a/src/testingzonedbc/zone_registry.h b/src/testingzonedbc/zone_registry.h index 8fa6f818c..1cfcb0e75 100644 --- a/src/testingzonedbc/zone_registry.h +++ b/src/testingzonedbc/zone_registry.h @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 2640 // Policies: 33 // Eras: 450 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 3709 +// TOTAL: 3713 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 600 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4140 +// TOTAL: 4144 // // DO NOT EDIT diff --git a/src/testingzonedbx/zone_infos.cpp b/src/testingzonedbx/zone_infos.cpp index a19629a04..3fda9ca22 100644 --- a/src/testingzonedbx/zone_infos.cpp +++ b/src/testingzonedbx/zone_infos.cpp @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 1980 // Policies: 33 // Eras: 330 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 2929 +// TOTAL: 2933 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 480 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4020 +// TOTAL: 4024 // // DO NOT EDIT diff --git a/src/testingzonedbx/zone_infos.h b/src/testingzonedbx/zone_infos.h index 6ac4fae23..cffe0c2f2 100644 --- a/src/testingzonedbx/zone_infos.h +++ b/src/testingzonedbx/zone_infos.h @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 1980 // Policies: 33 // Eras: 330 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 2929 +// TOTAL: 2933 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 480 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4020 +// TOTAL: 4024 // // DO NOT EDIT diff --git a/src/testingzonedbx/zone_policies.cpp b/src/testingzonedbx/zone_policies.cpp index 683c99ca3..1cef9df42 100644 --- a/src/testingzonedbx/zone_policies.cpp +++ b/src/testingzonedbx/zone_policies.cpp @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 1980 // Policies: 33 // Eras: 330 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 2929 +// TOTAL: 2933 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 480 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4020 +// TOTAL: 4024 // // DO NOT EDIT diff --git a/src/testingzonedbx/zone_policies.h b/src/testingzonedbx/zone_policies.h index d2afbf04f..1d08b2757 100644 --- a/src/testingzonedbx/zone_policies.h +++ b/src/testingzonedbx/zone_policies.h @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 1980 // Policies: 33 // Eras: 330 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 2929 +// TOTAL: 2933 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 480 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4020 +// TOTAL: 4024 // // DO NOT EDIT diff --git a/src/testingzonedbx/zone_registry.cpp b/src/testingzonedbx/zone_registry.cpp index 7b86f147b..4b39f137b 100644 --- a/src/testingzonedbx/zone_registry.cpp +++ b/src/testingzonedbx/zone_registry.cpp @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 1980 // Policies: 33 // Eras: 330 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 2929 +// TOTAL: 2933 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 480 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4020 +// TOTAL: 4024 // // DO NOT EDIT diff --git a/src/testingzonedbx/zone_registry.h b/src/testingzonedbx/zone_registry.h index 56a389eb0..dc05ff4af 100644 --- a/src/testingzonedbx/zone_registry.h +++ b/src/testingzonedbx/zone_registry.h @@ -48,7 +48,7 @@ // Rules: 220 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 1980 // Policies: 33 // Eras: 330 @@ -59,10 +59,10 @@ // Letters: 23 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 2929 +// TOTAL: 2933 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 2640 // Policies: 88 // Eras: 480 @@ -73,7 +73,7 @@ // Letters: 33 // Fragments: 0 // Names: 260 (original: 260) -// TOTAL: 4020 +// TOTAL: 4024 // // DO NOT EDIT diff --git a/src/zonedb/zone_infos.cpp b/src/zonedb/zone_infos.cpp index c55b97f97..3d9e0ce43 100644 --- a/src/zonedb/zone_infos.cpp +++ b/src/zonedb/zone_infos.cpp @@ -46,7 +46,7 @@ // Rules: 352 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 3168 // Policies: 189 // Eras: 2497 @@ -57,10 +57,10 @@ // Letters: 29 // Fragments: 116 // Names: 4142 (original: 6494) -// TOTAL: 17022 +// TOTAL: 17026 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 4224 // Policies: 504 // Eras: 3632 @@ -71,7 +71,7 @@ // Letters: 41 // Fragments: 138 // Names: 4142 (original: 6494) -// TOTAL: 25368 +// TOTAL: 25372 // // DO NOT EDIT diff --git a/src/zonedb/zone_infos.h b/src/zonedb/zone_infos.h index 45e27667b..4cdc596a1 100644 --- a/src/zonedb/zone_infos.h +++ b/src/zonedb/zone_infos.h @@ -46,7 +46,7 @@ // Rules: 352 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 3168 // Policies: 189 // Eras: 2497 @@ -57,10 +57,10 @@ // Letters: 29 // Fragments: 116 // Names: 4142 (original: 6494) -// TOTAL: 17022 +// TOTAL: 17026 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 4224 // Policies: 504 // Eras: 3632 @@ -71,7 +71,7 @@ // Letters: 41 // Fragments: 138 // Names: 4142 (original: 6494) -// TOTAL: 25368 +// TOTAL: 25372 // // DO NOT EDIT diff --git a/src/zonedb/zone_policies.cpp b/src/zonedb/zone_policies.cpp index 9f287a520..2ae45fd5c 100644 --- a/src/zonedb/zone_policies.cpp +++ b/src/zonedb/zone_policies.cpp @@ -46,7 +46,7 @@ // Rules: 352 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 3168 // Policies: 189 // Eras: 2497 @@ -57,10 +57,10 @@ // Letters: 29 // Fragments: 116 // Names: 4142 (original: 6494) -// TOTAL: 17022 +// TOTAL: 17026 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 4224 // Policies: 504 // Eras: 3632 @@ -71,7 +71,7 @@ // Letters: 41 // Fragments: 138 // Names: 4142 (original: 6494) -// TOTAL: 25368 +// TOTAL: 25372 // // DO NOT EDIT diff --git a/src/zonedb/zone_policies.h b/src/zonedb/zone_policies.h index 1bf0fa893..04f22ce0b 100644 --- a/src/zonedb/zone_policies.h +++ b/src/zonedb/zone_policies.h @@ -46,7 +46,7 @@ // Rules: 352 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 3168 // Policies: 189 // Eras: 2497 @@ -57,10 +57,10 @@ // Letters: 29 // Fragments: 116 // Names: 4142 (original: 6494) -// TOTAL: 17022 +// TOTAL: 17026 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 4224 // Policies: 504 // Eras: 3632 @@ -71,7 +71,7 @@ // Letters: 41 // Fragments: 138 // Names: 4142 (original: 6494) -// TOTAL: 25368 +// TOTAL: 25372 // // DO NOT EDIT diff --git a/src/zonedb/zone_registry.cpp b/src/zonedb/zone_registry.cpp index 7f59a5a58..17e6c7175 100644 --- a/src/zonedb/zone_registry.cpp +++ b/src/zonedb/zone_registry.cpp @@ -46,7 +46,7 @@ // Rules: 352 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 3168 // Policies: 189 // Eras: 2497 @@ -57,10 +57,10 @@ // Letters: 29 // Fragments: 116 // Names: 4142 (original: 6494) -// TOTAL: 17022 +// TOTAL: 17026 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 4224 // Policies: 504 // Eras: 3632 @@ -71,7 +71,7 @@ // Letters: 41 // Fragments: 138 // Names: 4142 (original: 6494) -// TOTAL: 25368 +// TOTAL: 25372 // // DO NOT EDIT diff --git a/src/zonedb/zone_registry.h b/src/zonedb/zone_registry.h index 74a616ca9..d6561837d 100644 --- a/src/zonedb/zone_registry.h +++ b/src/zonedb/zone_registry.h @@ -46,7 +46,7 @@ // Rules: 352 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 3168 // Policies: 189 // Eras: 2497 @@ -57,10 +57,10 @@ // Letters: 29 // Fragments: 116 // Names: 4142 (original: 6494) -// TOTAL: 17022 +// TOTAL: 17026 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 4224 // Policies: 504 // Eras: 3632 @@ -71,7 +71,7 @@ // Letters: 41 // Fragments: 138 // Names: 4142 (original: 6494) -// TOTAL: 25368 +// TOTAL: 25372 // // DO NOT EDIT diff --git a/src/zonedb2025/Makefile b/src/zonedb2025/Makefile new file mode 100644 index 000000000..d775e48a0 --- /dev/null +++ b/src/zonedb2025/Makefile @@ -0,0 +1,34 @@ +TARGETS := zone_infos.cpp zone_infos.h zone_policies.cpp zone_policies.h + +COMPILER := $(abspath ../../../../compiler) +TZ_REPO := $(abspath ../../../../../tz) +TZ_VERSION := 2025b +START_YEAR := 2025 +UNTIL_YEAR := 2200 + +all: + $(COMPILER)/tzcompiler.sh \ + --tzrepo $(TZ_REPO) \ + --tag $(TZ_VERSION) \ + --action zonedb \ + --language arduino \ + --scope basic \ + --db_namespace zonedb2025 \ + --zi_namespace basic::Info \ + --start_year $(START_YEAR) \ + --until_year $(UNTIL_YEAR) + +zonedb.json: + $(COMPILER)/tzcompiler.sh \ + --tzrepo $(TZ_REPO) \ + --tag $(TZ_VERSION) \ + --action json \ + --language arduino \ + --scope basic \ + --db_namespace zonedb \ + --zi_namespace basic::Info \ + --start_year $(START_YEAR) \ + --until_year $(UNTIL_YEAR) + +clean: + rm -rf tzfiles zonedb.json *.o diff --git a/src/zonedb2025/zone_infos.cpp b/src/zonedb2025/zone_infos.cpp new file mode 100644 index 000000000..21e5baeb8 --- /dev/null +++ b/src/zonedb2025/zone_infos.cpp @@ -0,0 +1,14684 @@ +// 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/zonedb2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope basic +// --db_namespace zonedb2025 +// --zi_namespace basic::Info +// --start_year 2025 +// --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: 590 (333 zones, 257 links) +// Unsupported Zones: 7 (7 zones, 0 links) +// +// Requested Years: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 6 +// +// Records: +// Infos: 590 +// Eras: 333 +// Policies: 64 +// Rules: 258 +// +// Memory (8-bits): +// Context: 20 +// Rules: 2322 +// Policies: 192 +// Eras: 3663 +// Zones: 4329 +// Links: 3341 +// Registry: 1180 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5593 (original: 8990) +// TOTAL: 21021 +// +// Memory (32-bits): +// Context: 28 +// Rules: 3096 +// Policies: 512 +// Eras: 5328 +// Zones: 7992 +// Links: 6168 +// Registry: 2360 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5593 (original: 8990) +// TOTAL: 31500 +// +// DO NOT EDIT + +#include +#include "zone_policies.h" +#include "zone_infos.h" + +namespace ace_time { +namespace zonedb2025 { + +//--------------------------------------------------------------------------- +// ZoneContext +//--------------------------------------------------------------------------- + +static const char kVersionString[] ACE_TIME_PROGMEM = "2025b"; +const __FlashStringHelper* const kTzDatabaseVersion = + (const __FlashStringHelper*) kVersionString; + +static const char kFragment1[] ACE_TIME_PROGMEM = "Africa/"; +static const char kFragment2[] ACE_TIME_PROGMEM = "America/"; +static const char kFragment3[] ACE_TIME_PROGMEM = "Antarctica/"; +static const char kFragment4[] ACE_TIME_PROGMEM = "Argentina/"; +static const char kFragment5[] ACE_TIME_PROGMEM = "Asia/"; +static const char kFragment6[] ACE_TIME_PROGMEM = "Atlantic/"; +static const char kFragment7[] ACE_TIME_PROGMEM = "Australia/"; +static const char kFragment8[] ACE_TIME_PROGMEM = "Brazil/"; +static const char kFragment9[] ACE_TIME_PROGMEM = "Canada/"; +static const char kFragment10[] ACE_TIME_PROGMEM = "Etc/"; +static const char kFragment11[] ACE_TIME_PROGMEM = "Europe/"; +static const char kFragment12[] ACE_TIME_PROGMEM = "Indian/"; +static const char kFragment13[] ACE_TIME_PROGMEM = "Indiana/"; +static const char kFragment14[] ACE_TIME_PROGMEM = "Pacific/"; + +const char* const kFragments[] ACE_TIME_PROGMEM = { + nullptr, // '\x00' cannot exist + kFragment1, // '\x01' "Africa/" + kFragment2, // '\x02' "America/" + kFragment3, // '\x03' "Antarctica/" + kFragment4, // '\x04' "Argentina/" + kFragment5, // '\x05' "Asia/" + kFragment6, // '\x06' "Atlantic/" + kFragment7, // '\x07' "Australia/" + kFragment8, // '\x08' "Brazil/" + kFragment9, // '\x09' "Canada/" + kFragment10, // '\x0a' "Etc/" + kFragment11, // '\x0b' "Europe/" + kFragment12, // '\x0c' "Indian/" + kFragment13, // '\x0d' "Indiana/" + kFragment14, // '\x0e' "Pacific/" + +}; + +static const char kLetter0[] ACE_TIME_PROGMEM = ""; +static const char kLetter1[] ACE_TIME_PROGMEM = "+00"; +static const char kLetter2[] ACE_TIME_PROGMEM = "+02"; +static const char kLetter3[] ACE_TIME_PROGMEM = "CAT"; +static const char kLetter4[] ACE_TIME_PROGMEM = "CST"; +static const char kLetter5[] ACE_TIME_PROGMEM = "D"; +static const char kLetter6[] ACE_TIME_PROGMEM = "S"; + +const char* const kLetters[] ACE_TIME_PROGMEM = { + kLetter0, // "" + kLetter1, // "+00" + kLetter2, // "+02" + kLetter3, // "CAT" + kLetter4, // "CST" + kLetter5, // "D" + kLetter6, // "S" + +}; + +const basic::Info::ZoneContext kZoneContext ACE_TIME_PROGMEM = { + 2025 /*startYear*/, + 2200 /*untilYear*/, + 2025 /*startYearAccurate*/, + 32767 /*untilYearAccurate*/, + 2100 /*baseYear*/, + 6 /*maxTransitions*/, + kVersionString /*tzVersion*/, + 15 /*numFragments*/, + 7 /*numLetters*/, + kFragments /*fragments*/, + kLetters /*letters*/, +}; + +//--------------------------------------------------------------------------- +// Zones: 333 +// Eras: 333 +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// Zone name: Africa/Abidjan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Abidjan[] ACE_TIME_PROGMEM = { + // 0:00 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Abidjan[] ACE_TIME_PROGMEM = "\x01" "Abidjan"; + +const basic::Info::ZoneInfo kZoneAfrica_Abidjan ACE_TIME_PROGMEM = { + kZoneNameAfrica_Abidjan /*name*/, + 0xc21305a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Algiers +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Algiers[] ACE_TIME_PROGMEM = { + // 1:00 - CET + { + nullptr /*zonePolicy*/, + "CET" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Algiers[] ACE_TIME_PROGMEM = "\x01" "Algiers"; + +const basic::Info::ZoneInfo kZoneAfrica_Algiers ACE_TIME_PROGMEM = { + kZoneNameAfrica_Algiers /*name*/, + 0xd94515c1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Algiers /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Bissau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Bissau[] ACE_TIME_PROGMEM = { + // 0:00 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Bissau[] ACE_TIME_PROGMEM = "\x01" "Bissau"; + +const basic::Info::ZoneInfo kZoneAfrica_Bissau ACE_TIME_PROGMEM = { + kZoneNameAfrica_Bissau /*name*/, + 0x75564141 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Bissau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Cairo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Cairo[] ACE_TIME_PROGMEM = { + // 2:00 Egypt EE%sT + { + &kZonePolicyEgypt /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Cairo[] ACE_TIME_PROGMEM = "\x01" "Cairo"; + +const basic::Info::ZoneInfo kZoneAfrica_Cairo ACE_TIME_PROGMEM = { + kZoneNameAfrica_Cairo /*name*/, + 0x77f8e228 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Cairo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Casablanca +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Casablanca[] ACE_TIME_PROGMEM = { + // 1:00 Morocco %z + { + &kZonePolicyMorocco /*zonePolicy*/, + "" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Casablanca[] ACE_TIME_PROGMEM = "\x01" "Casablanca"; + +const basic::Info::ZoneInfo kZoneAfrica_Casablanca ACE_TIME_PROGMEM = { + kZoneNameAfrica_Casablanca /*name*/, + 0xc59f1b33 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Casablanca /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Ceuta +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Ceuta[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Ceuta[] ACE_TIME_PROGMEM = "\x01" "Ceuta"; + +const basic::Info::ZoneInfo kZoneAfrica_Ceuta ACE_TIME_PROGMEM = { + kZoneNameAfrica_Ceuta /*name*/, + 0x77fb46ec /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Ceuta /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/El_Aaiun +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_El_Aaiun[] ACE_TIME_PROGMEM = { + // 1:00 Morocco %z + { + &kZonePolicyMorocco /*zonePolicy*/, + "" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_El_Aaiun[] ACE_TIME_PROGMEM = "\x01" "El_Aaiun"; + +const basic::Info::ZoneInfo kZoneAfrica_El_Aaiun ACE_TIME_PROGMEM = { + kZoneNameAfrica_El_Aaiun /*name*/, + 0x9d6fb118 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_El_Aaiun /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Johannesburg +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Johannesburg[] ACE_TIME_PROGMEM = { + // 2:00 SA SAST + { + &kZonePolicySA /*zonePolicy*/, + "SAST" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Johannesburg[] ACE_TIME_PROGMEM = "\x01" "Johannesburg"; + +const basic::Info::ZoneInfo kZoneAfrica_Johannesburg ACE_TIME_PROGMEM = { + kZoneNameAfrica_Johannesburg /*name*/, + 0xd5d157a0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Johannesburg /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Juba +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Juba[] ACE_TIME_PROGMEM = { + // 2:00 - CAT + { + nullptr /*zonePolicy*/, + "CAT" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Juba[] ACE_TIME_PROGMEM = "\x01" "Juba"; + +const basic::Info::ZoneInfo kZoneAfrica_Juba ACE_TIME_PROGMEM = { + kZoneNameAfrica_Juba /*name*/, + 0xd51b395c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Juba /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Khartoum +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Khartoum[] ACE_TIME_PROGMEM = { + // 2:00 - CAT + { + nullptr /*zonePolicy*/, + "CAT" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Khartoum[] ACE_TIME_PROGMEM = "\x01" "Khartoum"; + +const basic::Info::ZoneInfo kZoneAfrica_Khartoum ACE_TIME_PROGMEM = { + kZoneNameAfrica_Khartoum /*name*/, + 0xfb3d4205 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Khartoum /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Lagos +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Lagos[] ACE_TIME_PROGMEM = { + // 1:00 - WAT + { + nullptr /*zonePolicy*/, + "WAT" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Lagos[] ACE_TIME_PROGMEM = "\x01" "Lagos"; + +const basic::Info::ZoneInfo kZoneAfrica_Lagos ACE_TIME_PROGMEM = { + kZoneNameAfrica_Lagos /*name*/, + 0x789bb5d0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Maputo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Maputo[] ACE_TIME_PROGMEM = { + // 2:00 - CAT + { + nullptr /*zonePolicy*/, + "CAT" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Maputo[] ACE_TIME_PROGMEM = "\x01" "Maputo"; + +const basic::Info::ZoneInfo kZoneAfrica_Maputo ACE_TIME_PROGMEM = { + kZoneNameAfrica_Maputo /*name*/, + 0x8e6ca1f0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Monrovia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Monrovia[] ACE_TIME_PROGMEM = { + // 0:00 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Monrovia[] ACE_TIME_PROGMEM = "\x01" "Monrovia"; + +const basic::Info::ZoneInfo kZoneAfrica_Monrovia ACE_TIME_PROGMEM = { + kZoneNameAfrica_Monrovia /*name*/, + 0x0ce90385 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Monrovia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Nairobi +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Nairobi[] ACE_TIME_PROGMEM = { + // 3:00 - EAT + { + nullptr /*zonePolicy*/, + "EAT" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Nairobi[] ACE_TIME_PROGMEM = "\x01" "Nairobi"; + +const basic::Info::ZoneInfo kZoneAfrica_Nairobi ACE_TIME_PROGMEM = { + kZoneNameAfrica_Nairobi /*name*/, + 0xa87ab57e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Ndjamena +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Ndjamena[] ACE_TIME_PROGMEM = { + // 1:00 - WAT + { + nullptr /*zonePolicy*/, + "WAT" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Ndjamena[] ACE_TIME_PROGMEM = "\x01" "Ndjamena"; + +const basic::Info::ZoneInfo kZoneAfrica_Ndjamena ACE_TIME_PROGMEM = { + kZoneNameAfrica_Ndjamena /*name*/, + 0x9fe09898 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Ndjamena /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Sao_Tome +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Sao_Tome[] ACE_TIME_PROGMEM = { + // 0:00 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Sao_Tome[] ACE_TIME_PROGMEM = "\x01" "Sao_Tome"; + +const basic::Info::ZoneInfo kZoneAfrica_Sao_Tome ACE_TIME_PROGMEM = { + kZoneNameAfrica_Sao_Tome /*name*/, + 0x61b319d1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Sao_Tome /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Tripoli +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Tripoli[] ACE_TIME_PROGMEM = { + // 2:00 - EET + { + nullptr /*zonePolicy*/, + "EET" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Tripoli[] ACE_TIME_PROGMEM = "\x01" "Tripoli"; + +const basic::Info::ZoneInfo kZoneAfrica_Tripoli ACE_TIME_PROGMEM = { + kZoneNameAfrica_Tripoli /*name*/, + 0x9dfebd3d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Tripoli /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Tunis +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Tunis[] ACE_TIME_PROGMEM = { + // 1:00 Tunisia CE%sT + { + &kZonePolicyTunisia /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Tunis[] ACE_TIME_PROGMEM = "\x01" "Tunis"; + +const basic::Info::ZoneInfo kZoneAfrica_Tunis ACE_TIME_PROGMEM = { + kZoneNameAfrica_Tunis /*name*/, + 0x79378e6d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Tunis /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Windhoek +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAfrica_Windhoek[] ACE_TIME_PROGMEM = { + // 2:00 Namibia %s + { + &kZonePolicyNamibia /*zonePolicy*/, + "%" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Windhoek[] ACE_TIME_PROGMEM = "\x01" "Windhoek"; + +const basic::Info::ZoneInfo kZoneAfrica_Windhoek ACE_TIME_PROGMEM = { + kZoneNameAfrica_Windhoek /*name*/, + 0x789c9bd3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Windhoek /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Adak +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Adak[] ACE_TIME_PROGMEM = { + // -10:00 US H%sT + { + &kZonePolicyUS /*zonePolicy*/, + "H%T" /*format*/, + -40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Adak[] ACE_TIME_PROGMEM = "\x02" "Adak"; + +const basic::Info::ZoneInfo kZoneAmerica_Adak ACE_TIME_PROGMEM = { + kZoneNameAmerica_Adak /*name*/, + 0x97fe49d7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Adak /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Anchorage +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Anchorage[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Anchorage[] ACE_TIME_PROGMEM = "\x02" "Anchorage"; + +const basic::Info::ZoneInfo kZoneAmerica_Anchorage ACE_TIME_PROGMEM = { + kZoneNameAmerica_Anchorage /*name*/, + 0x5a79260e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Anchorage /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Araguaina +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Araguaina[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Araguaina[] ACE_TIME_PROGMEM = "\x02" "Araguaina"; + +const basic::Info::ZoneInfo kZoneAmerica_Araguaina ACE_TIME_PROGMEM = { + kZoneNameAmerica_Araguaina /*name*/, + 0x6f9a3aef /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Araguaina /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Buenos_Aires +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_Buenos_Aires[] ACE_TIME_PROGMEM = { + // -3:00 Arg %z + { + &kZonePolicyArg /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Buenos_Aires[] ACE_TIME_PROGMEM = "\x02" "\x04" "Buenos_Aires"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_Buenos_Aires ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Buenos_Aires /*name*/, + 0xd43b4c0d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Buenos_Aires /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Catamarca +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_Catamarca[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Catamarca[] ACE_TIME_PROGMEM = "\x02" "\x04" "Catamarca"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_Catamarca ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Catamarca /*name*/, + 0x8d40986b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Catamarca /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Cordoba +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_Cordoba[] ACE_TIME_PROGMEM = { + // -3:00 Arg %z + { + &kZonePolicyArg /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Cordoba[] ACE_TIME_PROGMEM = "\x02" "\x04" "Cordoba"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_Cordoba ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Cordoba /*name*/, + 0xbfccc308 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Cordoba /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Jujuy +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_Jujuy[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Jujuy[] ACE_TIME_PROGMEM = "\x02" "\x04" "Jujuy"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_Jujuy ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Jujuy /*name*/, + 0x5f2f46c5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Jujuy /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/La_Rioja +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_La_Rioja[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_La_Rioja[] ACE_TIME_PROGMEM = "\x02" "\x04" "La_Rioja"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_La_Rioja ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_La_Rioja /*name*/, + 0xa46b7eef /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_La_Rioja /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Mendoza +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_Mendoza[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Mendoza[] ACE_TIME_PROGMEM = "\x02" "\x04" "Mendoza"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_Mendoza ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Mendoza /*name*/, + 0xa9f72d5c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Mendoza /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Rio_Gallegos +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_Rio_Gallegos[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Rio_Gallegos[] ACE_TIME_PROGMEM = "\x02" "\x04" "Rio_Gallegos"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_Rio_Gallegos ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Rio_Gallegos /*name*/, + 0xc5b0f565 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Rio_Gallegos /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Salta +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_Salta[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Salta[] ACE_TIME_PROGMEM = "\x02" "\x04" "Salta"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_Salta ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Salta /*name*/, + 0x5fc73403 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Salta /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/San_Juan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_San_Juan[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_San_Juan[] ACE_TIME_PROGMEM = "\x02" "\x04" "San_Juan"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_San_Juan ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_San_Juan /*name*/, + 0x3e1009bd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_San_Juan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/San_Luis +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_San_Luis[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_San_Luis[] ACE_TIME_PROGMEM = "\x02" "\x04" "San_Luis"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_San_Luis ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_San_Luis /*name*/, + 0x3e11238c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_San_Luis /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Tucuman +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_Tucuman[] ACE_TIME_PROGMEM = { + // -3:00 Arg %z + { + &kZonePolicyArg /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Tucuman[] ACE_TIME_PROGMEM = "\x02" "\x04" "Tucuman"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_Tucuman ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Tucuman /*name*/, + 0xe96399eb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Tucuman /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Ushuaia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Argentina_Ushuaia[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Ushuaia[] ACE_TIME_PROGMEM = "\x02" "\x04" "Ushuaia"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_Ushuaia ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Ushuaia /*name*/, + 0x320dcdde /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Ushuaia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Bahia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Bahia[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Bahia[] ACE_TIME_PROGMEM = "\x02" "Bahia"; + +const basic::Info::ZoneInfo kZoneAmerica_Bahia ACE_TIME_PROGMEM = { + kZoneNameAmerica_Bahia /*name*/, + 0x97d815fb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Bahia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Bahia_Banderas +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Bahia_Banderas[] ACE_TIME_PROGMEM = { + // -6:00 Mexico C%sT + { + &kZonePolicyMexico /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Bahia_Banderas[] ACE_TIME_PROGMEM = "\x02" "Bahia_Banderas"; + +const basic::Info::ZoneInfo kZoneAmerica_Bahia_Banderas ACE_TIME_PROGMEM = { + kZoneNameAmerica_Bahia_Banderas /*name*/, + 0x14f6329a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Bahia_Banderas /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Barbados +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Barbados[] ACE_TIME_PROGMEM = { + // -4:00 Barb A%sT + { + &kZonePolicyBarb /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Barbados[] ACE_TIME_PROGMEM = "\x02" "Barbados"; + +const basic::Info::ZoneInfo kZoneAmerica_Barbados ACE_TIME_PROGMEM = { + kZoneNameAmerica_Barbados /*name*/, + 0xcbbc3b04 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Barbados /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Belem +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Belem[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Belem[] ACE_TIME_PROGMEM = "\x02" "Belem"; + +const basic::Info::ZoneInfo kZoneAmerica_Belem ACE_TIME_PROGMEM = { + kZoneNameAmerica_Belem /*name*/, + 0x97da580b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Belem /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Belize +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Belize[] ACE_TIME_PROGMEM = { + // -6:00 Belize %s + { + &kZonePolicyBelize /*zonePolicy*/, + "%" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Belize[] ACE_TIME_PROGMEM = "\x02" "Belize"; + +const basic::Info::ZoneInfo kZoneAmerica_Belize ACE_TIME_PROGMEM = { + kZoneNameAmerica_Belize /*name*/, + 0x93256c81 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Belize /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Boa_Vista +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Boa_Vista[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Boa_Vista[] ACE_TIME_PROGMEM = "\x02" "Boa_Vista"; + +const basic::Info::ZoneInfo kZoneAmerica_Boa_Vista ACE_TIME_PROGMEM = { + kZoneNameAmerica_Boa_Vista /*name*/, + 0x0a7b7efe /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Boa_Vista /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Bogota +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Bogota[] ACE_TIME_PROGMEM = { + // -5:00 CO %z + { + &kZonePolicyCO /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Bogota[] ACE_TIME_PROGMEM = "\x02" "Bogota"; + +const basic::Info::ZoneInfo kZoneAmerica_Bogota ACE_TIME_PROGMEM = { + kZoneNameAmerica_Bogota /*name*/, + 0x93d7bc62 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Bogota /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Boise +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Boise[] ACE_TIME_PROGMEM = { + // -7:00 US M%sT + { + &kZonePolicyUS /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Boise[] ACE_TIME_PROGMEM = "\x02" "Boise"; + +const basic::Info::ZoneInfo kZoneAmerica_Boise ACE_TIME_PROGMEM = { + kZoneNameAmerica_Boise /*name*/, + 0x97dfc8d8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Boise /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Cambridge_Bay +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Cambridge_Bay[] ACE_TIME_PROGMEM = { + // -7:00 Canada M%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Cambridge_Bay[] ACE_TIME_PROGMEM = "\x02" "Cambridge_Bay"; + +const basic::Info::ZoneInfo kZoneAmerica_Cambridge_Bay ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cambridge_Bay /*name*/, + 0xd5a44aff /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Cambridge_Bay /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Campo_Grande +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Campo_Grande[] ACE_TIME_PROGMEM = { + // -4:00 Brazil %z + { + &kZonePolicyBrazil /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Campo_Grande[] ACE_TIME_PROGMEM = "\x02" "Campo_Grande"; + +const basic::Info::ZoneInfo kZoneAmerica_Campo_Grande ACE_TIME_PROGMEM = { + kZoneNameAmerica_Campo_Grande /*name*/, + 0xfec3e7a6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Campo_Grande /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Cancun +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Cancun[] ACE_TIME_PROGMEM = { + // -5:00 - EST + { + nullptr /*zonePolicy*/, + "EST" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Cancun[] ACE_TIME_PROGMEM = "\x02" "Cancun"; + +const basic::Info::ZoneInfo kZoneAmerica_Cancun ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cancun /*name*/, + 0x953331be /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Cancun /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Caracas +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Caracas[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Caracas[] ACE_TIME_PROGMEM = "\x02" "Caracas"; + +const basic::Info::ZoneInfo kZoneAmerica_Caracas ACE_TIME_PROGMEM = { + kZoneNameAmerica_Caracas /*name*/, + 0x3be064f4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Caracas /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Cayenne +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Cayenne[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Cayenne[] ACE_TIME_PROGMEM = "\x02" "Cayenne"; + +const basic::Info::ZoneInfo kZoneAmerica_Cayenne ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cayenne /*name*/, + 0x3c617269 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Cayenne /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Chicago +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "\x02" "Chicago"; + +const basic::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = { + kZoneNameAmerica_Chicago /*name*/, + 0x4b92b5d4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Chicago /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Chihuahua +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Chihuahua[] ACE_TIME_PROGMEM = { + // -6:00 - CST + { + nullptr /*zonePolicy*/, + "CST" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Chihuahua[] ACE_TIME_PROGMEM = "\x02" "Chihuahua"; + +const basic::Info::ZoneInfo kZoneAmerica_Chihuahua ACE_TIME_PROGMEM = { + kZoneNameAmerica_Chihuahua /*name*/, + 0x8827d776 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Chihuahua /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Ciudad_Juarez +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Ciudad_Juarez[] ACE_TIME_PROGMEM = { + // -7:00 US M%sT + { + &kZonePolicyUS /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Ciudad_Juarez[] ACE_TIME_PROGMEM = "\x02" "Ciudad_Juarez"; + +const basic::Info::ZoneInfo kZoneAmerica_Ciudad_Juarez ACE_TIME_PROGMEM = { + kZoneNameAmerica_Ciudad_Juarez /*name*/, + 0x7347fc60 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Ciudad_Juarez /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Costa_Rica +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Costa_Rica[] ACE_TIME_PROGMEM = { + // -6:00 CR C%sT + { + &kZonePolicyCR /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Costa_Rica[] ACE_TIME_PROGMEM = "\x02" "Costa_Rica"; + +const basic::Info::ZoneInfo kZoneAmerica_Costa_Rica ACE_TIME_PROGMEM = { + kZoneNameAmerica_Costa_Rica /*name*/, + 0x63ff66be /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Costa_Rica /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Cuiaba +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Cuiaba[] ACE_TIME_PROGMEM = { + // -4:00 Brazil %z + { + &kZonePolicyBrazil /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Cuiaba[] ACE_TIME_PROGMEM = "\x02" "Cuiaba"; + +const basic::Info::ZoneInfo kZoneAmerica_Cuiaba ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cuiaba /*name*/, + 0x969a52eb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Cuiaba /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Danmarkshavn +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = { + // 0:00 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = "\x02" "Danmarkshavn"; + +const basic::Info::ZoneInfo kZoneAmerica_Danmarkshavn ACE_TIME_PROGMEM = { + kZoneNameAmerica_Danmarkshavn /*name*/, + 0xf554d204 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Danmarkshavn /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Dawson +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Dawson[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Dawson[] ACE_TIME_PROGMEM = "\x02" "Dawson"; + +const basic::Info::ZoneInfo kZoneAmerica_Dawson ACE_TIME_PROGMEM = { + kZoneNameAmerica_Dawson /*name*/, + 0x978d8d12 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Dawson /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Dawson_Creek +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = "\x02" "Dawson_Creek"; + +const basic::Info::ZoneInfo kZoneAmerica_Dawson_Creek ACE_TIME_PROGMEM = { + kZoneNameAmerica_Dawson_Creek /*name*/, + 0x6cf24e5b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Dawson_Creek /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Denver +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = { + // -7:00 US M%sT + { + &kZonePolicyUS /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "\x02" "Denver"; + +const basic::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = { + kZoneNameAmerica_Denver /*name*/, + 0x97d10b2a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Denver /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Detroit +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Detroit[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Detroit[] ACE_TIME_PROGMEM = "\x02" "Detroit"; + +const basic::Info::ZoneInfo kZoneAmerica_Detroit ACE_TIME_PROGMEM = { + kZoneNameAmerica_Detroit /*name*/, + 0x925cfbc1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Detroit /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Edmonton +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = { + // -7:00 Canada M%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "\x02" "Edmonton"; + +const basic::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = { + kZoneNameAmerica_Edmonton /*name*/, + 0x6cb9484a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Edmonton /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Eirunepe +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Eirunepe[] ACE_TIME_PROGMEM = { + // -5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Eirunepe[] ACE_TIME_PROGMEM = "\x02" "Eirunepe"; + +const basic::Info::ZoneInfo kZoneAmerica_Eirunepe ACE_TIME_PROGMEM = { + kZoneNameAmerica_Eirunepe /*name*/, + 0xf9b29683 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Eirunepe /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/El_Salvador +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_El_Salvador[] ACE_TIME_PROGMEM = { + // -6:00 Salv C%sT + { + &kZonePolicySalv /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_El_Salvador[] ACE_TIME_PROGMEM = "\x02" "El_Salvador"; + +const basic::Info::ZoneInfo kZoneAmerica_El_Salvador ACE_TIME_PROGMEM = { + kZoneNameAmerica_El_Salvador /*name*/, + 0x752ad652 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_El_Salvador /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Fort_Nelson +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Fort_Nelson[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Fort_Nelson[] ACE_TIME_PROGMEM = "\x02" "Fort_Nelson"; + +const basic::Info::ZoneInfo kZoneAmerica_Fort_Nelson ACE_TIME_PROGMEM = { + kZoneNameAmerica_Fort_Nelson /*name*/, + 0x3f437e0f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Fort_Nelson /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Fortaleza +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Fortaleza[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Fortaleza[] ACE_TIME_PROGMEM = "\x02" "Fortaleza"; + +const basic::Info::ZoneInfo kZoneAmerica_Fortaleza ACE_TIME_PROGMEM = { + kZoneNameAmerica_Fortaleza /*name*/, + 0x2ad018ee /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Fortaleza /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Glace_Bay +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Glace_Bay[] ACE_TIME_PROGMEM = { + // -4:00 Canada A%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Glace_Bay[] ACE_TIME_PROGMEM = "\x02" "Glace_Bay"; + +const basic::Info::ZoneInfo kZoneAmerica_Glace_Bay ACE_TIME_PROGMEM = { + kZoneNameAmerica_Glace_Bay /*name*/, + 0x9681f8dd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Glace_Bay /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Goose_Bay +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Goose_Bay[] ACE_TIME_PROGMEM = { + // -4:00 Canada A%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Goose_Bay[] ACE_TIME_PROGMEM = "\x02" "Goose_Bay"; + +const basic::Info::ZoneInfo kZoneAmerica_Goose_Bay ACE_TIME_PROGMEM = { + kZoneNameAmerica_Goose_Bay /*name*/, + 0xb649541e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Goose_Bay /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Grand_Turk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Grand_Turk[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Grand_Turk[] ACE_TIME_PROGMEM = "\x02" "Grand_Turk"; + +const basic::Info::ZoneInfo kZoneAmerica_Grand_Turk ACE_TIME_PROGMEM = { + kZoneNameAmerica_Grand_Turk /*name*/, + 0x6e216197 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Grand_Turk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Guatemala +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Guatemala[] ACE_TIME_PROGMEM = { + // -6:00 Guat C%sT + { + &kZonePolicyGuat /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Guatemala[] ACE_TIME_PROGMEM = "\x02" "Guatemala"; + +const basic::Info::ZoneInfo kZoneAmerica_Guatemala ACE_TIME_PROGMEM = { + kZoneNameAmerica_Guatemala /*name*/, + 0x0c8259f7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Guatemala /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Guayaquil +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Guayaquil[] ACE_TIME_PROGMEM = { + // -5:00 Ecuador %z + { + &kZonePolicyEcuador /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Guayaquil[] ACE_TIME_PROGMEM = "\x02" "Guayaquil"; + +const basic::Info::ZoneInfo kZoneAmerica_Guayaquil ACE_TIME_PROGMEM = { + kZoneNameAmerica_Guayaquil /*name*/, + 0x17e64958 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Guayaquil /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Guyana +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Guyana[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Guyana[] ACE_TIME_PROGMEM = "\x02" "Guyana"; + +const basic::Info::ZoneInfo kZoneAmerica_Guyana ACE_TIME_PROGMEM = { + kZoneNameAmerica_Guyana /*name*/, + 0x9ff7bd0b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Guyana /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Halifax +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Halifax[] ACE_TIME_PROGMEM = { + // -4:00 Canada A%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Halifax[] ACE_TIME_PROGMEM = "\x02" "Halifax"; + +const basic::Info::ZoneInfo kZoneAmerica_Halifax ACE_TIME_PROGMEM = { + kZoneNameAmerica_Halifax /*name*/, + 0xbc5b7183 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Halifax /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Havana +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Havana[] ACE_TIME_PROGMEM = { + // -5:00 Cuba C%sT + { + &kZonePolicyCuba /*zonePolicy*/, + "C%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Havana[] ACE_TIME_PROGMEM = "\x02" "Havana"; + +const basic::Info::ZoneInfo kZoneAmerica_Havana ACE_TIME_PROGMEM = { + kZoneNameAmerica_Havana /*name*/, + 0xa0e15675 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Havana /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Hermosillo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Hermosillo[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Hermosillo[] ACE_TIME_PROGMEM = "\x02" "Hermosillo"; + +const basic::Info::ZoneInfo kZoneAmerica_Hermosillo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Hermosillo /*name*/, + 0x065d21c4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Hermosillo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Indianapolis +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Indianapolis"; + +const basic::Info::ZoneInfo kZoneAmerica_Indiana_Indianapolis ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Indianapolis /*name*/, + 0x28a669a4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Indianapolis /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Knox +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Indiana_Knox[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Knox[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Knox"; + +const basic::Info::ZoneInfo kZoneAmerica_Indiana_Knox ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Knox /*name*/, + 0x6554adc9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Knox /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Marengo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Marengo"; + +const basic::Info::ZoneInfo kZoneAmerica_Indiana_Marengo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Marengo /*name*/, + 0x2feeee72 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Marengo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Petersburg +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Indiana_Petersburg[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Petersburg[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Petersburg"; + +const basic::Info::ZoneInfo kZoneAmerica_Indiana_Petersburg ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Petersburg /*name*/, + 0x94ac7acc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Petersburg /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Tell_City +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Indiana_Tell_City[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Tell_City[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Tell_City"; + +const basic::Info::ZoneInfo kZoneAmerica_Indiana_Tell_City ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Tell_City /*name*/, + 0x09263612 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Tell_City /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Vevay +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Vevay"; + +const basic::Info::ZoneInfo kZoneAmerica_Indiana_Vevay ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Vevay /*name*/, + 0x10aca054 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Vevay /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Vincennes +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Indiana_Vincennes[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Vincennes[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Vincennes"; + +const basic::Info::ZoneInfo kZoneAmerica_Indiana_Vincennes ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Vincennes /*name*/, + 0x28a0b212 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Vincennes /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Winamac +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Indiana_Winamac[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Winamac[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Winamac"; + +const basic::Info::ZoneInfo kZoneAmerica_Indiana_Winamac ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Winamac /*name*/, + 0x4413fa69 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Winamac /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Inuvik +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Inuvik[] ACE_TIME_PROGMEM = { + // -7:00 Canada M%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Inuvik[] ACE_TIME_PROGMEM = "\x02" "Inuvik"; + +const basic::Info::ZoneInfo kZoneAmerica_Inuvik ACE_TIME_PROGMEM = { + kZoneNameAmerica_Inuvik /*name*/, + 0xa42189fc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Inuvik /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Iqaluit +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Iqaluit[] ACE_TIME_PROGMEM = { + // -5:00 Canada E%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Iqaluit[] ACE_TIME_PROGMEM = "\x02" "Iqaluit"; + +const basic::Info::ZoneInfo kZoneAmerica_Iqaluit ACE_TIME_PROGMEM = { + kZoneNameAmerica_Iqaluit /*name*/, + 0x2de310bf /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Iqaluit /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Jamaica +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Jamaica[] ACE_TIME_PROGMEM = { + // -5:00 - EST + { + nullptr /*zonePolicy*/, + "EST" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Jamaica[] ACE_TIME_PROGMEM = "\x02" "Jamaica"; + +const basic::Info::ZoneInfo kZoneAmerica_Jamaica ACE_TIME_PROGMEM = { + kZoneNameAmerica_Jamaica /*name*/, + 0x565dad6c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Jamaica /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Juneau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Juneau[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Juneau[] ACE_TIME_PROGMEM = "\x02" "Juneau"; + +const basic::Info::ZoneInfo kZoneAmerica_Juneau ACE_TIME_PROGMEM = { + kZoneNameAmerica_Juneau /*name*/, + 0xa6f13e2e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Juneau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Kentucky/Louisville +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = "\x02" "Kentucky/Louisville"; + +const basic::Info::ZoneInfo kZoneAmerica_Kentucky_Louisville ACE_TIME_PROGMEM = { + kZoneNameAmerica_Kentucky_Louisville /*name*/, + 0x1a21024b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Kentucky_Louisville /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Kentucky/Monticello +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Kentucky_Monticello[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Kentucky_Monticello[] ACE_TIME_PROGMEM = "\x02" "Kentucky/Monticello"; + +const basic::Info::ZoneInfo kZoneAmerica_Kentucky_Monticello ACE_TIME_PROGMEM = { + kZoneNameAmerica_Kentucky_Monticello /*name*/, + 0xde71c439 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Kentucky_Monticello /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/La_Paz +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_La_Paz[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_La_Paz[] ACE_TIME_PROGMEM = "\x02" "La_Paz"; + +const basic::Info::ZoneInfo kZoneAmerica_La_Paz ACE_TIME_PROGMEM = { + kZoneNameAmerica_La_Paz /*name*/, + 0xaa29125d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_La_Paz /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Lima +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Lima[] ACE_TIME_PROGMEM = { + // -5:00 Peru %z + { + &kZonePolicyPeru /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Lima[] ACE_TIME_PROGMEM = "\x02" "Lima"; + +const basic::Info::ZoneInfo kZoneAmerica_Lima ACE_TIME_PROGMEM = { + kZoneNameAmerica_Lima /*name*/, + 0x980468c9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Lima /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Los_Angeles +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = { + // -8:00 US P%sT + { + &kZonePolicyUS /*zonePolicy*/, + "P%T" /*format*/, + -32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "\x02" "Los_Angeles"; + +const basic::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = { + kZoneNameAmerica_Los_Angeles /*name*/, + 0xb7f7e8f2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Los_Angeles /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Maceio +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Maceio[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Maceio[] ACE_TIME_PROGMEM = "\x02" "Maceio"; + +const basic::Info::ZoneInfo kZoneAmerica_Maceio ACE_TIME_PROGMEM = { + kZoneNameAmerica_Maceio /*name*/, + 0xac80c6d4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Maceio /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Managua +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Managua[] ACE_TIME_PROGMEM = { + // -6:00 Nic C%sT + { + &kZonePolicyNic /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Managua[] ACE_TIME_PROGMEM = "\x02" "Managua"; + +const basic::Info::ZoneInfo kZoneAmerica_Managua ACE_TIME_PROGMEM = { + kZoneNameAmerica_Managua /*name*/, + 0x3d5e7600 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Managua /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Manaus +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Manaus[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Manaus[] ACE_TIME_PROGMEM = "\x02" "Manaus"; + +const basic::Info::ZoneInfo kZoneAmerica_Manaus ACE_TIME_PROGMEM = { + kZoneNameAmerica_Manaus /*name*/, + 0xac86bf8b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Manaus /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Martinique +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Martinique[] ACE_TIME_PROGMEM = { + // -4:00 - AST + { + nullptr /*zonePolicy*/, + "AST" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Martinique[] ACE_TIME_PROGMEM = "\x02" "Martinique"; + +const basic::Info::ZoneInfo kZoneAmerica_Martinique ACE_TIME_PROGMEM = { + kZoneNameAmerica_Martinique /*name*/, + 0x551e84c5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Martinique /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Matamoros +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Matamoros[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Matamoros[] ACE_TIME_PROGMEM = "\x02" "Matamoros"; + +const basic::Info::ZoneInfo kZoneAmerica_Matamoros ACE_TIME_PROGMEM = { + kZoneNameAmerica_Matamoros /*name*/, + 0xdd1b0259 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Matamoros /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Mazatlan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Mazatlan[] ACE_TIME_PROGMEM = { + // -7:00 Mexico M%sT + { + &kZonePolicyMexico /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Mazatlan[] ACE_TIME_PROGMEM = "\x02" "Mazatlan"; + +const basic::Info::ZoneInfo kZoneAmerica_Mazatlan ACE_TIME_PROGMEM = { + kZoneNameAmerica_Mazatlan /*name*/, + 0x0532189e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Mazatlan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Menominee +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Menominee[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Menominee[] ACE_TIME_PROGMEM = "\x02" "Menominee"; + +const basic::Info::ZoneInfo kZoneAmerica_Menominee ACE_TIME_PROGMEM = { + kZoneNameAmerica_Menominee /*name*/, + 0xe0e9c583 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Menominee /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Merida +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Merida[] ACE_TIME_PROGMEM = { + // -6:00 Mexico C%sT + { + &kZonePolicyMexico /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Merida[] ACE_TIME_PROGMEM = "\x02" "Merida"; + +const basic::Info::ZoneInfo kZoneAmerica_Merida ACE_TIME_PROGMEM = { + kZoneNameAmerica_Merida /*name*/, + 0xacd172d8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Merida /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Metlakatla +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Metlakatla[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Metlakatla[] ACE_TIME_PROGMEM = "\x02" "Metlakatla"; + +const basic::Info::ZoneInfo kZoneAmerica_Metlakatla ACE_TIME_PROGMEM = { + kZoneNameAmerica_Metlakatla /*name*/, + 0x84de2686 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Metlakatla /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Mexico_City +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Mexico_City[] ACE_TIME_PROGMEM = { + // -6:00 Mexico C%sT + { + &kZonePolicyMexico /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Mexico_City[] ACE_TIME_PROGMEM = "\x02" "Mexico_City"; + +const basic::Info::ZoneInfo kZoneAmerica_Mexico_City ACE_TIME_PROGMEM = { + kZoneNameAmerica_Mexico_City /*name*/, + 0xd0d93f43 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Mexico_City /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Miquelon +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Miquelon[] ACE_TIME_PROGMEM = { + // -3:00 Canada %z + { + &kZonePolicyCanada /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Miquelon[] ACE_TIME_PROGMEM = "\x02" "Miquelon"; + +const basic::Info::ZoneInfo kZoneAmerica_Miquelon ACE_TIME_PROGMEM = { + kZoneNameAmerica_Miquelon /*name*/, + 0x59674330 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Miquelon /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Moncton +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Moncton[] ACE_TIME_PROGMEM = { + // -4:00 Canada A%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Moncton[] ACE_TIME_PROGMEM = "\x02" "Moncton"; + +const basic::Info::ZoneInfo kZoneAmerica_Moncton ACE_TIME_PROGMEM = { + kZoneNameAmerica_Moncton /*name*/, + 0x5e07fe24 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Moncton /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Monterrey +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Monterrey[] ACE_TIME_PROGMEM = { + // -6:00 Mexico C%sT + { + &kZonePolicyMexico /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Monterrey[] ACE_TIME_PROGMEM = "\x02" "Monterrey"; + +const basic::Info::ZoneInfo kZoneAmerica_Monterrey ACE_TIME_PROGMEM = { + kZoneNameAmerica_Monterrey /*name*/, + 0x269a1deb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Monterrey /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Montevideo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Montevideo[] ACE_TIME_PROGMEM = { + // -3:00 Uruguay %z + { + &kZonePolicyUruguay /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Montevideo[] ACE_TIME_PROGMEM = "\x02" "Montevideo"; + +const basic::Info::ZoneInfo kZoneAmerica_Montevideo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Montevideo /*name*/, + 0xfa214780 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Montevideo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/New_York +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "\x02" "New_York"; + +const basic::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = { + kZoneNameAmerica_New_York /*name*/, + 0x1e2a7654 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_New_York /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Nome +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Nome[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Nome[] ACE_TIME_PROGMEM = "\x02" "Nome"; + +const basic::Info::ZoneInfo kZoneAmerica_Nome ACE_TIME_PROGMEM = { + kZoneNameAmerica_Nome /*name*/, + 0x98059b15 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Nome /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Noronha +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Noronha[] ACE_TIME_PROGMEM = { + // -2:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Noronha[] ACE_TIME_PROGMEM = "\x02" "Noronha"; + +const basic::Info::ZoneInfo kZoneAmerica_Noronha ACE_TIME_PROGMEM = { + kZoneNameAmerica_Noronha /*name*/, + 0xab5116fb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Noronha /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/North_Dakota/Beulah +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_North_Dakota_Beulah[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_North_Dakota_Beulah[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/Beulah"; + +const basic::Info::ZoneInfo kZoneAmerica_North_Dakota_Beulah ACE_TIME_PROGMEM = { + kZoneNameAmerica_North_Dakota_Beulah /*name*/, + 0x9b52b384 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_North_Dakota_Beulah /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/North_Dakota/Center +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/Center"; + +const basic::Info::ZoneInfo kZoneAmerica_North_Dakota_Center ACE_TIME_PROGMEM = { + kZoneNameAmerica_North_Dakota_Center /*name*/, + 0x9da42814 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_North_Dakota_Center /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/North_Dakota/New_Salem +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_North_Dakota_New_Salem[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_North_Dakota_New_Salem[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/New_Salem"; + +const basic::Info::ZoneInfo kZoneAmerica_North_Dakota_New_Salem ACE_TIME_PROGMEM = { + kZoneNameAmerica_North_Dakota_New_Salem /*name*/, + 0x04f9958e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_North_Dakota_New_Salem /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Nuuk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Nuuk[] ACE_TIME_PROGMEM = { + // -2:00 EU %z + { + &kZonePolicyEU /*zonePolicy*/, + "" /*format*/, + -8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Nuuk[] ACE_TIME_PROGMEM = "\x02" "Nuuk"; + +const basic::Info::ZoneInfo kZoneAmerica_Nuuk ACE_TIME_PROGMEM = { + kZoneNameAmerica_Nuuk /*name*/, + 0x9805b5a9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Nuuk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Ojinaga +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Ojinaga[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Ojinaga[] ACE_TIME_PROGMEM = "\x02" "Ojinaga"; + +const basic::Info::ZoneInfo kZoneAmerica_Ojinaga ACE_TIME_PROGMEM = { + kZoneNameAmerica_Ojinaga /*name*/, + 0xebfde83f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Ojinaga /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Panama +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Panama[] ACE_TIME_PROGMEM = { + // -5:00 - EST + { + nullptr /*zonePolicy*/, + "EST" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Panama[] ACE_TIME_PROGMEM = "\x02" "Panama"; + +const basic::Info::ZoneInfo kZoneAmerica_Panama ACE_TIME_PROGMEM = { + kZoneNameAmerica_Panama /*name*/, + 0xb3863854 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Panama /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Paramaribo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Paramaribo[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Paramaribo[] ACE_TIME_PROGMEM = "\x02" "Paramaribo"; + +const basic::Info::ZoneInfo kZoneAmerica_Paramaribo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Paramaribo /*name*/, + 0xb319e4c4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Paramaribo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Phoenix +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Phoenix[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Phoenix[] ACE_TIME_PROGMEM = "\x02" "Phoenix"; + +const basic::Info::ZoneInfo kZoneAmerica_Phoenix ACE_TIME_PROGMEM = { + kZoneNameAmerica_Phoenix /*name*/, + 0x34b5af01 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Phoenix /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Port-au-Prince +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = { + // -5:00 Haiti E%sT + { + &kZonePolicyHaiti /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = "\x02" "Port-au-Prince"; + +const basic::Info::ZoneInfo kZoneAmerica_Port_au_Prince ACE_TIME_PROGMEM = { + kZoneNameAmerica_Port_au_Prince /*name*/, + 0x8e4a7bdc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Port_au_Prince /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Porto_Velho +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Porto_Velho[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Porto_Velho[] ACE_TIME_PROGMEM = "\x02" "Porto_Velho"; + +const basic::Info::ZoneInfo kZoneAmerica_Porto_Velho ACE_TIME_PROGMEM = { + kZoneNameAmerica_Porto_Velho /*name*/, + 0x6b1aac77 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Porto_Velho /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Puerto_Rico +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = { + // -4:00 - AST + { + nullptr /*zonePolicy*/, + "AST" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = "\x02" "Puerto_Rico"; + +const basic::Info::ZoneInfo kZoneAmerica_Puerto_Rico ACE_TIME_PROGMEM = { + kZoneNameAmerica_Puerto_Rico /*name*/, + 0x6752ca31 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Punta_Arenas +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Punta_Arenas[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Punta_Arenas[] ACE_TIME_PROGMEM = "\x02" "Punta_Arenas"; + +const basic::Info::ZoneInfo kZoneAmerica_Punta_Arenas ACE_TIME_PROGMEM = { + kZoneNameAmerica_Punta_Arenas /*name*/, + 0xc2c3bce7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Punta_Arenas /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Rankin_Inlet +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Rankin_Inlet[] ACE_TIME_PROGMEM = { + // -6:00 Canada C%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Rankin_Inlet[] ACE_TIME_PROGMEM = "\x02" "Rankin_Inlet"; + +const basic::Info::ZoneInfo kZoneAmerica_Rankin_Inlet ACE_TIME_PROGMEM = { + kZoneNameAmerica_Rankin_Inlet /*name*/, + 0xc8de4984 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Rankin_Inlet /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Recife +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Recife[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Recife[] ACE_TIME_PROGMEM = "\x02" "Recife"; + +const basic::Info::ZoneInfo kZoneAmerica_Recife ACE_TIME_PROGMEM = { + kZoneNameAmerica_Recife /*name*/, + 0xb8730494 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Recife /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Regina +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Regina[] ACE_TIME_PROGMEM = { + // -6:00 - CST + { + nullptr /*zonePolicy*/, + "CST" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Regina[] ACE_TIME_PROGMEM = "\x02" "Regina"; + +const basic::Info::ZoneInfo kZoneAmerica_Regina ACE_TIME_PROGMEM = { + kZoneNameAmerica_Regina /*name*/, + 0xb875371c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Regina /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Resolute +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Resolute[] ACE_TIME_PROGMEM = { + // -6:00 Canada C%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Resolute[] ACE_TIME_PROGMEM = "\x02" "Resolute"; + +const basic::Info::ZoneInfo kZoneAmerica_Resolute ACE_TIME_PROGMEM = { + kZoneNameAmerica_Resolute /*name*/, + 0xc7093459 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Resolute /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Rio_Branco +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Rio_Branco[] ACE_TIME_PROGMEM = { + // -5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Rio_Branco[] ACE_TIME_PROGMEM = "\x02" "Rio_Branco"; + +const basic::Info::ZoneInfo kZoneAmerica_Rio_Branco ACE_TIME_PROGMEM = { + kZoneNameAmerica_Rio_Branco /*name*/, + 0x9d352764 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Rio_Branco /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Santarem +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Santarem[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Santarem[] ACE_TIME_PROGMEM = "\x02" "Santarem"; + +const basic::Info::ZoneInfo kZoneAmerica_Santarem ACE_TIME_PROGMEM = { + kZoneNameAmerica_Santarem /*name*/, + 0x740caec1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Santarem /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Santiago +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Santiago[] ACE_TIME_PROGMEM = { + // -4:00 Chile %z + { + &kZonePolicyChile /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Santiago[] ACE_TIME_PROGMEM = "\x02" "Santiago"; + +const basic::Info::ZoneInfo kZoneAmerica_Santiago ACE_TIME_PROGMEM = { + kZoneNameAmerica_Santiago /*name*/, + 0x7410c9bc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Santiago /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Santo_Domingo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Santo_Domingo[] ACE_TIME_PROGMEM = { + // -4:00 - AST + { + nullptr /*zonePolicy*/, + "AST" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Santo_Domingo[] ACE_TIME_PROGMEM = "\x02" "Santo_Domingo"; + +const basic::Info::ZoneInfo kZoneAmerica_Santo_Domingo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Santo_Domingo /*name*/, + 0x75a0d177 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Santo_Domingo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Sao_Paulo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = { + // -3:00 Brazil %z + { + &kZonePolicyBrazil /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = "\x02" "Sao_Paulo"; + +const basic::Info::ZoneInfo kZoneAmerica_Sao_Paulo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Sao_Paulo /*name*/, + 0x1063bfc9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Sao_Paulo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Sitka +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Sitka[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Sitka[] ACE_TIME_PROGMEM = "\x02" "Sitka"; + +const basic::Info::ZoneInfo kZoneAmerica_Sitka ACE_TIME_PROGMEM = { + kZoneNameAmerica_Sitka /*name*/, + 0x99104ce2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Sitka /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/St_Johns +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_St_Johns[] ACE_TIME_PROGMEM = { + // -3:30 Canada N%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "N%T" /*format*/, + -14 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_St_Johns[] ACE_TIME_PROGMEM = "\x02" "St_Johns"; + +const basic::Info::ZoneInfo kZoneAmerica_St_Johns ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Johns /*name*/, + 0x04b14e6e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_St_Johns /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Swift_Current +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Swift_Current[] ACE_TIME_PROGMEM = { + // -6:00 - CST + { + nullptr /*zonePolicy*/, + "CST" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Swift_Current[] ACE_TIME_PROGMEM = "\x02" "Swift_Current"; + +const basic::Info::ZoneInfo kZoneAmerica_Swift_Current ACE_TIME_PROGMEM = { + kZoneNameAmerica_Swift_Current /*name*/, + 0xdef98e55 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Swift_Current /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Tegucigalpa +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = { + // -6:00 Hond C%sT + { + &kZonePolicyHond /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = "\x02" "Tegucigalpa"; + +const basic::Info::ZoneInfo kZoneAmerica_Tegucigalpa ACE_TIME_PROGMEM = { + kZoneNameAmerica_Tegucigalpa /*name*/, + 0xbfd6fd4c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Tegucigalpa /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Thule +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Thule[] ACE_TIME_PROGMEM = { + // -4:00 Thule A%sT + { + &kZonePolicyThule /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Thule[] ACE_TIME_PROGMEM = "\x02" "Thule"; + +const basic::Info::ZoneInfo kZoneAmerica_Thule ACE_TIME_PROGMEM = { + kZoneNameAmerica_Thule /*name*/, + 0x9921dd68 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Thule /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Tijuana +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Tijuana[] ACE_TIME_PROGMEM = { + // -8:00 US P%sT + { + &kZonePolicyUS /*zonePolicy*/, + "P%T" /*format*/, + -32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Tijuana[] ACE_TIME_PROGMEM = "\x02" "Tijuana"; + +const basic::Info::ZoneInfo kZoneAmerica_Tijuana ACE_TIME_PROGMEM = { + kZoneNameAmerica_Tijuana /*name*/, + 0x6aa1df72 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Tijuana /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Toronto +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = { + // -5:00 Canada E%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "\x02" "Toronto"; + +const basic::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = { + kZoneNameAmerica_Toronto /*name*/, + 0x792e851b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Vancouver +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = { + // -8:00 Canada P%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "P%T" /*format*/, + -32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "\x02" "Vancouver"; + +const basic::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = { + kZoneNameAmerica_Vancouver /*name*/, + 0x2c6f6b1f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Vancouver /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Whitehorse +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Whitehorse[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Whitehorse[] ACE_TIME_PROGMEM = "\x02" "Whitehorse"; + +const basic::Info::ZoneInfo kZoneAmerica_Whitehorse ACE_TIME_PROGMEM = { + kZoneNameAmerica_Whitehorse /*name*/, + 0x54e0e3e8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Whitehorse /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Winnipeg +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = { + // -6:00 Canada C%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "\x02" "Winnipeg"; + +const basic::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = { + kZoneNameAmerica_Winnipeg /*name*/, + 0x8c7dafc7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Winnipeg /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Yakutat +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAmerica_Yakutat[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Yakutat[] ACE_TIME_PROGMEM = "\x02" "Yakutat"; + +const basic::Info::ZoneInfo kZoneAmerica_Yakutat ACE_TIME_PROGMEM = { + kZoneNameAmerica_Yakutat /*name*/, + 0xd8ee31e9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Yakutat /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Casey +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAntarctica_Casey[] ACE_TIME_PROGMEM = { + // 8:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Casey[] ACE_TIME_PROGMEM = "\x03" "Casey"; + +const basic::Info::ZoneInfo kZoneAntarctica_Casey ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Casey /*name*/, + 0xe2022583 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Casey /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Davis +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAntarctica_Davis[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Davis[] ACE_TIME_PROGMEM = "\x03" "Davis"; + +const basic::Info::ZoneInfo kZoneAntarctica_Davis ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Davis /*name*/, + 0xe2144b45 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Davis /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Macquarie +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAntarctica_Macquarie[] ACE_TIME_PROGMEM = { + // 10:00 AT AE%sT + { + &kZonePolicyAT /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Macquarie[] ACE_TIME_PROGMEM = "\x03" "Macquarie"; + +const basic::Info::ZoneInfo kZoneAntarctica_Macquarie ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Macquarie /*name*/, + 0x92f47626 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Macquarie /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Mawson +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAntarctica_Mawson[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Mawson[] ACE_TIME_PROGMEM = "\x03" "Mawson"; + +const basic::Info::ZoneInfo kZoneAntarctica_Mawson ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Mawson /*name*/, + 0x399cd863 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Mawson /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Palmer +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAntarctica_Palmer[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Palmer[] ACE_TIME_PROGMEM = "\x03" "Palmer"; + +const basic::Info::ZoneInfo kZoneAntarctica_Palmer ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Palmer /*name*/, + 0x40962f4f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Palmer /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Rothera +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAntarctica_Rothera[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Rothera[] ACE_TIME_PROGMEM = "\x03" "Rothera"; + +const basic::Info::ZoneInfo kZoneAntarctica_Rothera ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Rothera /*name*/, + 0x0e86d203 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Rothera /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Troll +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAntarctica_Troll[] ACE_TIME_PROGMEM = { + // 0:00 Troll %s + { + &kZonePolicyTroll /*zonePolicy*/, + "%" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Troll[] ACE_TIME_PROGMEM = "\x03" "Troll"; + +const basic::Info::ZoneInfo kZoneAntarctica_Troll ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Troll /*name*/, + 0xe33f085b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Troll /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Vostok +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAntarctica_Vostok[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Vostok[] ACE_TIME_PROGMEM = "\x03" "Vostok"; + +const basic::Info::ZoneInfo kZoneAntarctica_Vostok ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Vostok /*name*/, + 0x4f966fd4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Vostok /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Amman +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Amman[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Amman[] ACE_TIME_PROGMEM = "\x05" "Amman"; + +const basic::Info::ZoneInfo kZoneAsia_Amman ACE_TIME_PROGMEM = { + kZoneNameAsia_Amman /*name*/, + 0x148d21bc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Amman /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Anadyr +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Anadyr[] ACE_TIME_PROGMEM = { + // 12:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Anadyr[] ACE_TIME_PROGMEM = "\x05" "Anadyr"; + +const basic::Info::ZoneInfo kZoneAsia_Anadyr ACE_TIME_PROGMEM = { + kZoneNameAsia_Anadyr /*name*/, + 0xa63cebd1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Anadyr /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Aqtau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Aqtau[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Aqtau[] ACE_TIME_PROGMEM = "\x05" "Aqtau"; + +const basic::Info::ZoneInfo kZoneAsia_Aqtau ACE_TIME_PROGMEM = { + kZoneNameAsia_Aqtau /*name*/, + 0x148f710e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Aqtau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Aqtobe +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Aqtobe[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Aqtobe[] ACE_TIME_PROGMEM = "\x05" "Aqtobe"; + +const basic::Info::ZoneInfo kZoneAsia_Aqtobe ACE_TIME_PROGMEM = { + kZoneNameAsia_Aqtobe /*name*/, + 0xa67dcc4e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Aqtobe /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Ashgabat +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Ashgabat[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Ashgabat[] ACE_TIME_PROGMEM = "\x05" "Ashgabat"; + +const basic::Info::ZoneInfo kZoneAsia_Ashgabat ACE_TIME_PROGMEM = { + kZoneNameAsia_Ashgabat /*name*/, + 0xba87598d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ashgabat /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Atyrau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Atyrau[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Atyrau[] ACE_TIME_PROGMEM = "\x05" "Atyrau"; + +const basic::Info::ZoneInfo kZoneAsia_Atyrau ACE_TIME_PROGMEM = { + kZoneNameAsia_Atyrau /*name*/, + 0xa6b6e068 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Atyrau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Baghdad +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Baghdad[] ACE_TIME_PROGMEM = { + // 3:00 Iraq %z + { + &kZonePolicyIraq /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Baghdad[] ACE_TIME_PROGMEM = "\x05" "Baghdad"; + +const basic::Info::ZoneInfo kZoneAsia_Baghdad ACE_TIME_PROGMEM = { + kZoneNameAsia_Baghdad /*name*/, + 0x9ceffbed /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Baghdad /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Baku +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Baku[] ACE_TIME_PROGMEM = { + // 4:00 Azer %z + { + &kZonePolicyAzer /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Baku[] ACE_TIME_PROGMEM = "\x05" "Baku"; + +const basic::Info::ZoneInfo kZoneAsia_Baku ACE_TIME_PROGMEM = { + kZoneNameAsia_Baku /*name*/, + 0x1fa788b5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Baku /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Bangkok +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Bangkok[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Bangkok[] ACE_TIME_PROGMEM = "\x05" "Bangkok"; + +const basic::Info::ZoneInfo kZoneAsia_Bangkok ACE_TIME_PROGMEM = { + kZoneNameAsia_Bangkok /*name*/, + 0x9d6e3aaf /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Bangkok /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Barnaul +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Barnaul[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Barnaul[] ACE_TIME_PROGMEM = "\x05" "Barnaul"; + +const basic::Info::ZoneInfo kZoneAsia_Barnaul ACE_TIME_PROGMEM = { + kZoneNameAsia_Barnaul /*name*/, + 0x9dba4997 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Barnaul /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Beirut +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Beirut[] ACE_TIME_PROGMEM = { + // 2:00 Lebanon EE%sT + { + &kZonePolicyLebanon /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Beirut[] ACE_TIME_PROGMEM = "\x05" "Beirut"; + +const basic::Info::ZoneInfo kZoneAsia_Beirut ACE_TIME_PROGMEM = { + kZoneNameAsia_Beirut /*name*/, + 0xa7f3d5fd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Beirut /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Bishkek +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Bishkek[] ACE_TIME_PROGMEM = { + // 6:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Bishkek[] ACE_TIME_PROGMEM = "\x05" "Bishkek"; + +const basic::Info::ZoneInfo kZoneAsia_Bishkek ACE_TIME_PROGMEM = { + kZoneNameAsia_Bishkek /*name*/, + 0xb0728553 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Bishkek /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Chita +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Chita[] ACE_TIME_PROGMEM = { + // 9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Chita[] ACE_TIME_PROGMEM = "\x05" "Chita"; + +const basic::Info::ZoneInfo kZoneAsia_Chita ACE_TIME_PROGMEM = { + kZoneNameAsia_Chita /*name*/, + 0x14ae863b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Chita /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Colombo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Colombo[] ACE_TIME_PROGMEM = { + // 5:30 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 22 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Colombo[] ACE_TIME_PROGMEM = "\x05" "Colombo"; + +const basic::Info::ZoneInfo kZoneAsia_Colombo ACE_TIME_PROGMEM = { + kZoneNameAsia_Colombo /*name*/, + 0x0af0e91d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Colombo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Damascus +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Damascus[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Damascus[] ACE_TIME_PROGMEM = "\x05" "Damascus"; + +const basic::Info::ZoneInfo kZoneAsia_Damascus ACE_TIME_PROGMEM = { + kZoneNameAsia_Damascus /*name*/, + 0x20fbb063 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Damascus /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Dhaka +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Dhaka[] ACE_TIME_PROGMEM = { + // 6:00 Dhaka %z + { + &kZonePolicyDhaka /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Dhaka[] ACE_TIME_PROGMEM = "\x05" "Dhaka"; + +const basic::Info::ZoneInfo kZoneAsia_Dhaka ACE_TIME_PROGMEM = { + kZoneNameAsia_Dhaka /*name*/, + 0x14c07b8b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dhaka /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Dili +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Dili[] ACE_TIME_PROGMEM = { + // 9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Dili[] ACE_TIME_PROGMEM = "\x05" "Dili"; + +const basic::Info::ZoneInfo kZoneAsia_Dili ACE_TIME_PROGMEM = { + kZoneNameAsia_Dili /*name*/, + 0x1fa8c394 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dili /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Dubai +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Dubai[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Dubai[] ACE_TIME_PROGMEM = "\x05" "Dubai"; + +const basic::Info::ZoneInfo kZoneAsia_Dubai ACE_TIME_PROGMEM = { + kZoneNameAsia_Dubai /*name*/, + 0x14c79f77 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dubai /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Dushanbe +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Dushanbe[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Dushanbe[] ACE_TIME_PROGMEM = "\x05" "Dushanbe"; + +const basic::Info::ZoneInfo kZoneAsia_Dushanbe ACE_TIME_PROGMEM = { + kZoneNameAsia_Dushanbe /*name*/, + 0x32fc5c3c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dushanbe /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Famagusta +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Famagusta[] ACE_TIME_PROGMEM = { + // 2:00 EUAsia EE%sT + { + &kZonePolicyEUAsia /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Famagusta[] ACE_TIME_PROGMEM = "\x05" "Famagusta"; + +const basic::Info::ZoneInfo kZoneAsia_Famagusta ACE_TIME_PROGMEM = { + kZoneNameAsia_Famagusta /*name*/, + 0x289b4f8b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Famagusta /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Ho_Chi_Minh +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = "\x05" "Ho_Chi_Minh"; + +const basic::Info::ZoneInfo kZoneAsia_Ho_Chi_Minh ACE_TIME_PROGMEM = { + kZoneNameAsia_Ho_Chi_Minh /*name*/, + 0x20f2d127 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ho_Chi_Minh /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Hong_Kong +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Hong_Kong[] ACE_TIME_PROGMEM = { + // 8:00 HK HK%sT + { + &kZonePolicyHK /*zonePolicy*/, + "HK%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Hong_Kong[] ACE_TIME_PROGMEM = "\x05" "Hong_Kong"; + +const basic::Info::ZoneInfo kZoneAsia_Hong_Kong ACE_TIME_PROGMEM = { + kZoneNameAsia_Hong_Kong /*name*/, + 0x577f28ac /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Hong_Kong /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Hovd +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Hovd[] ACE_TIME_PROGMEM = { + // 7:00 Mongol %z + { + &kZonePolicyMongol /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Hovd[] ACE_TIME_PROGMEM = "\x05" "Hovd"; + +const basic::Info::ZoneInfo kZoneAsia_Hovd ACE_TIME_PROGMEM = { + kZoneNameAsia_Hovd /*name*/, + 0x1fab0fe3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Hovd /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Irkutsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Irkutsk[] ACE_TIME_PROGMEM = { + // 8:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Irkutsk[] ACE_TIME_PROGMEM = "\x05" "Irkutsk"; + +const basic::Info::ZoneInfo kZoneAsia_Irkutsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Irkutsk /*name*/, + 0xdfbf213f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Irkutsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Jakarta +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Jakarta[] ACE_TIME_PROGMEM = { + // 7:00 - WIB + { + nullptr /*zonePolicy*/, + "WIB" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Jakarta[] ACE_TIME_PROGMEM = "\x05" "Jakarta"; + +const basic::Info::ZoneInfo kZoneAsia_Jakarta ACE_TIME_PROGMEM = { + kZoneNameAsia_Jakarta /*name*/, + 0x0506ab50 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Jakarta /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Jayapura +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Jayapura[] ACE_TIME_PROGMEM = { + // 9:00 - WIT + { + nullptr /*zonePolicy*/, + "WIT" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Jayapura[] ACE_TIME_PROGMEM = "\x05" "Jayapura"; + +const basic::Info::ZoneInfo kZoneAsia_Jayapura ACE_TIME_PROGMEM = { + kZoneNameAsia_Jayapura /*name*/, + 0xc6833c2f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Jayapura /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Jerusalem +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Jerusalem[] ACE_TIME_PROGMEM = { + // 2:00 Zion I%sT + { + &kZonePolicyZion /*zonePolicy*/, + "I%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Jerusalem[] ACE_TIME_PROGMEM = "\x05" "Jerusalem"; + +const basic::Info::ZoneInfo kZoneAsia_Jerusalem ACE_TIME_PROGMEM = { + kZoneNameAsia_Jerusalem /*name*/, + 0x5becd23a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Jerusalem /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Kabul +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Kabul[] ACE_TIME_PROGMEM = { + // 4:30 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 18 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Kabul[] ACE_TIME_PROGMEM = "\x05" "Kabul"; + +const basic::Info::ZoneInfo kZoneAsia_Kabul ACE_TIME_PROGMEM = { + kZoneNameAsia_Kabul /*name*/, + 0x153b5601 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kabul /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Kamchatka +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Kamchatka[] ACE_TIME_PROGMEM = { + // 12:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Kamchatka[] ACE_TIME_PROGMEM = "\x05" "Kamchatka"; + +const basic::Info::ZoneInfo kZoneAsia_Kamchatka ACE_TIME_PROGMEM = { + kZoneNameAsia_Kamchatka /*name*/, + 0x73baf9d7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kamchatka /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Karachi +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Karachi[] ACE_TIME_PROGMEM = { + // 5:00 Pakistan PK%sT + { + &kZonePolicyPakistan /*zonePolicy*/, + "PK%T" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Karachi[] ACE_TIME_PROGMEM = "\x05" "Karachi"; + +const basic::Info::ZoneInfo kZoneAsia_Karachi ACE_TIME_PROGMEM = { + kZoneNameAsia_Karachi /*name*/, + 0x527f5245 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Karachi /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Kathmandu +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Kathmandu[] ACE_TIME_PROGMEM = { + // 5:45 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 23 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Kathmandu[] ACE_TIME_PROGMEM = "\x05" "Kathmandu"; + +const basic::Info::ZoneInfo kZoneAsia_Kathmandu ACE_TIME_PROGMEM = { + kZoneNameAsia_Kathmandu /*name*/, + 0x9a96ce6f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kathmandu /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Khandyga +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Khandyga[] ACE_TIME_PROGMEM = { + // 9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Khandyga[] ACE_TIME_PROGMEM = "\x05" "Khandyga"; + +const basic::Info::ZoneInfo kZoneAsia_Khandyga ACE_TIME_PROGMEM = { + kZoneNameAsia_Khandyga /*name*/, + 0x9685a4d9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Khandyga /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Kolkata +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Kolkata[] ACE_TIME_PROGMEM = { + // 5:30 - IST + { + nullptr /*zonePolicy*/, + "IST" /*format*/, + 22 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Kolkata[] ACE_TIME_PROGMEM = "\x05" "Kolkata"; + +const basic::Info::ZoneInfo kZoneAsia_Kolkata ACE_TIME_PROGMEM = { + kZoneNameAsia_Kolkata /*name*/, + 0x72c06cd9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kolkata /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Krasnoyarsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Krasnoyarsk[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Krasnoyarsk[] ACE_TIME_PROGMEM = "\x05" "Krasnoyarsk"; + +const basic::Info::ZoneInfo kZoneAsia_Krasnoyarsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Krasnoyarsk /*name*/, + 0xd0376c6a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Krasnoyarsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Kuching +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Kuching[] ACE_TIME_PROGMEM = { + // 8:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Kuching[] ACE_TIME_PROGMEM = "\x05" "Kuching"; + +const basic::Info::ZoneInfo kZoneAsia_Kuching ACE_TIME_PROGMEM = { + kZoneNameAsia_Kuching /*name*/, + 0x801b003b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kuching /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Macau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Macau[] ACE_TIME_PROGMEM = { + // 8:00 Macau C%sT + { + &kZonePolicyMacau /*zonePolicy*/, + "C%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Macau[] ACE_TIME_PROGMEM = "\x05" "Macau"; + +const basic::Info::ZoneInfo kZoneAsia_Macau ACE_TIME_PROGMEM = { + kZoneNameAsia_Macau /*name*/, + 0x155f88b9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Macau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Magadan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Magadan[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Magadan[] ACE_TIME_PROGMEM = "\x05" "Magadan"; + +const basic::Info::ZoneInfo kZoneAsia_Magadan ACE_TIME_PROGMEM = { + kZoneNameAsia_Magadan /*name*/, + 0xebacc19b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Magadan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Makassar +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Makassar[] ACE_TIME_PROGMEM = { + // 8:00 - WITA + { + nullptr /*zonePolicy*/, + "WITA" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Makassar[] ACE_TIME_PROGMEM = "\x05" "Makassar"; + +const basic::Info::ZoneInfo kZoneAsia_Makassar ACE_TIME_PROGMEM = { + kZoneNameAsia_Makassar /*name*/, + 0x6aa21c85 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Makassar /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Manila +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Manila[] ACE_TIME_PROGMEM = { + // 8:00 Phil P%sT + { + &kZonePolicyPhil /*zonePolicy*/, + "P%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Manila[] ACE_TIME_PROGMEM = "\x05" "Manila"; + +const basic::Info::ZoneInfo kZoneAsia_Manila ACE_TIME_PROGMEM = { + kZoneNameAsia_Manila /*name*/, + 0xc156c944 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Manila /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Nicosia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Nicosia[] ACE_TIME_PROGMEM = { + // 2:00 EUAsia EE%sT + { + &kZonePolicyEUAsia /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Nicosia[] ACE_TIME_PROGMEM = "\x05" "Nicosia"; + +const basic::Info::ZoneInfo kZoneAsia_Nicosia ACE_TIME_PROGMEM = { + kZoneNameAsia_Nicosia /*name*/, + 0x4b0fcf78 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Nicosia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Novokuznetsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Novokuznetsk[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Novokuznetsk[] ACE_TIME_PROGMEM = "\x05" "Novokuznetsk"; + +const basic::Info::ZoneInfo kZoneAsia_Novokuznetsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Novokuznetsk /*name*/, + 0x69264f93 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Novokuznetsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Novosibirsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Novosibirsk[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Novosibirsk[] ACE_TIME_PROGMEM = "\x05" "Novosibirsk"; + +const basic::Info::ZoneInfo kZoneAsia_Novosibirsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Novosibirsk /*name*/, + 0xa2a435cb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Novosibirsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Omsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Omsk[] ACE_TIME_PROGMEM = { + // 6:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Omsk[] ACE_TIME_PROGMEM = "\x05" "Omsk"; + +const basic::Info::ZoneInfo kZoneAsia_Omsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Omsk /*name*/, + 0x1faeddac /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Omsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Oral +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Oral[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Oral[] ACE_TIME_PROGMEM = "\x05" "Oral"; + +const basic::Info::ZoneInfo kZoneAsia_Oral ACE_TIME_PROGMEM = { + kZoneNameAsia_Oral /*name*/, + 0x1faef0a0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Oral /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Pontianak +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Pontianak[] ACE_TIME_PROGMEM = { + // 7:00 - WIB + { + nullptr /*zonePolicy*/, + "WIB" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Pontianak[] ACE_TIME_PROGMEM = "\x05" "Pontianak"; + +const basic::Info::ZoneInfo kZoneAsia_Pontianak ACE_TIME_PROGMEM = { + kZoneNameAsia_Pontianak /*name*/, + 0x1a76c057 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Pontianak /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Pyongyang +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Pyongyang[] ACE_TIME_PROGMEM = { + // 9:00 - KST + { + nullptr /*zonePolicy*/, + "KST" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Pyongyang[] ACE_TIME_PROGMEM = "\x05" "Pyongyang"; + +const basic::Info::ZoneInfo kZoneAsia_Pyongyang ACE_TIME_PROGMEM = { + kZoneNameAsia_Pyongyang /*name*/, + 0x93ed1c8e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Pyongyang /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Qatar +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Qatar[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Qatar[] ACE_TIME_PROGMEM = "\x05" "Qatar"; + +const basic::Info::ZoneInfo kZoneAsia_Qatar ACE_TIME_PROGMEM = { + kZoneNameAsia_Qatar /*name*/, + 0x15a8330b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Qatar /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Qyzylorda +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Qyzylorda[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Qyzylorda[] ACE_TIME_PROGMEM = "\x05" "Qyzylorda"; + +const basic::Info::ZoneInfo kZoneAsia_Qyzylorda ACE_TIME_PROGMEM = { + kZoneNameAsia_Qyzylorda /*name*/, + 0x71282e81 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Qyzylorda /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Riyadh +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Riyadh[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Riyadh[] ACE_TIME_PROGMEM = "\x05" "Riyadh"; + +const basic::Info::ZoneInfo kZoneAsia_Riyadh ACE_TIME_PROGMEM = { + kZoneNameAsia_Riyadh /*name*/, + 0xcd973d93 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Riyadh /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Sakhalin +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Sakhalin[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Sakhalin[] ACE_TIME_PROGMEM = "\x05" "Sakhalin"; + +const basic::Info::ZoneInfo kZoneAsia_Sakhalin ACE_TIME_PROGMEM = { + kZoneNameAsia_Sakhalin /*name*/, + 0xf4a1c9bd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Sakhalin /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Samarkand +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Samarkand[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Samarkand[] ACE_TIME_PROGMEM = "\x05" "Samarkand"; + +const basic::Info::ZoneInfo kZoneAsia_Samarkand ACE_TIME_PROGMEM = { + kZoneNameAsia_Samarkand /*name*/, + 0x13ae5104 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Samarkand /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Seoul +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Seoul[] ACE_TIME_PROGMEM = { + // 9:00 ROK K%sT + { + &kZonePolicyROK /*zonePolicy*/, + "K%T" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Seoul[] ACE_TIME_PROGMEM = "\x05" "Seoul"; + +const basic::Info::ZoneInfo kZoneAsia_Seoul ACE_TIME_PROGMEM = { + kZoneNameAsia_Seoul /*name*/, + 0x15ce82da /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Seoul /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Shanghai +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Shanghai[] ACE_TIME_PROGMEM = { + // 8:00 PRC C%sT + { + &kZonePolicyPRC /*zonePolicy*/, + "C%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Shanghai[] ACE_TIME_PROGMEM = "\x05" "Shanghai"; + +const basic::Info::ZoneInfo kZoneAsia_Shanghai ACE_TIME_PROGMEM = { + kZoneNameAsia_Shanghai /*name*/, + 0xf895a7f5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Shanghai /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Singapore +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Singapore[] ACE_TIME_PROGMEM = { + // 8:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Singapore[] ACE_TIME_PROGMEM = "\x05" "Singapore"; + +const basic::Info::ZoneInfo kZoneAsia_Singapore ACE_TIME_PROGMEM = { + kZoneNameAsia_Singapore /*name*/, + 0xcf8581fa /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Singapore /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Srednekolymsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Srednekolymsk[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Srednekolymsk[] ACE_TIME_PROGMEM = "\x05" "Srednekolymsk"; + +const basic::Info::ZoneInfo kZoneAsia_Srednekolymsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Srednekolymsk /*name*/, + 0xbf8e337d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Srednekolymsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Taipei +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Taipei[] ACE_TIME_PROGMEM = { + // 8:00 Taiwan C%sT + { + &kZonePolicyTaiwan /*zonePolicy*/, + "C%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Taipei[] ACE_TIME_PROGMEM = "\x05" "Taipei"; + +const basic::Info::ZoneInfo kZoneAsia_Taipei ACE_TIME_PROGMEM = { + kZoneNameAsia_Taipei /*name*/, + 0xd1a844ae /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Taipei /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Tashkent +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Tashkent[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Tashkent[] ACE_TIME_PROGMEM = "\x05" "Tashkent"; + +const basic::Info::ZoneInfo kZoneAsia_Tashkent ACE_TIME_PROGMEM = { + kZoneNameAsia_Tashkent /*name*/, + 0xf3924254 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tashkent /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Tbilisi +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Tbilisi[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Tbilisi[] ACE_TIME_PROGMEM = "\x05" "Tbilisi"; + +const basic::Info::ZoneInfo kZoneAsia_Tbilisi ACE_TIME_PROGMEM = { + kZoneNameAsia_Tbilisi /*name*/, + 0x0903e442 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tbilisi /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Tehran +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Tehran[] ACE_TIME_PROGMEM = { + // 3:30 Iran %z + { + &kZonePolicyIran /*zonePolicy*/, + "" /*format*/, + 14 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Tehran[] ACE_TIME_PROGMEM = "\x05" "Tehran"; + +const basic::Info::ZoneInfo kZoneAsia_Tehran ACE_TIME_PROGMEM = { + kZoneNameAsia_Tehran /*name*/, + 0xd1f02254 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tehran /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Thimphu +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Thimphu[] ACE_TIME_PROGMEM = { + // 6:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Thimphu[] ACE_TIME_PROGMEM = "\x05" "Thimphu"; + +const basic::Info::ZoneInfo kZoneAsia_Thimphu ACE_TIME_PROGMEM = { + kZoneNameAsia_Thimphu /*name*/, + 0x170380d1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Thimphu /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Tokyo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Tokyo[] ACE_TIME_PROGMEM = { + // 9:00 Japan J%sT + { + &kZonePolicyJapan /*zonePolicy*/, + "J%T" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Tokyo[] ACE_TIME_PROGMEM = "\x05" "Tokyo"; + +const basic::Info::ZoneInfo kZoneAsia_Tokyo ACE_TIME_PROGMEM = { + kZoneNameAsia_Tokyo /*name*/, + 0x15e606a8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tokyo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Tomsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Tomsk[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Tomsk[] ACE_TIME_PROGMEM = "\x05" "Tomsk"; + +const basic::Info::ZoneInfo kZoneAsia_Tomsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Tomsk /*name*/, + 0x15e60e60 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tomsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Ulaanbaatar +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = { + // 8:00 Mongol %z + { + &kZonePolicyMongol /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = "\x05" "Ulaanbaatar"; + +const basic::Info::ZoneInfo kZoneAsia_Ulaanbaatar ACE_TIME_PROGMEM = { + kZoneNameAsia_Ulaanbaatar /*name*/, + 0x30f0cc4e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ulaanbaatar /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Urumqi +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Urumqi[] ACE_TIME_PROGMEM = { + // 6:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Urumqi[] ACE_TIME_PROGMEM = "\x05" "Urumqi"; + +const basic::Info::ZoneInfo kZoneAsia_Urumqi ACE_TIME_PROGMEM = { + kZoneNameAsia_Urumqi /*name*/, + 0xd5379735 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Urumqi /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Ust-Nera +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Ust_Nera[] ACE_TIME_PROGMEM = { + // 10:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Ust_Nera[] ACE_TIME_PROGMEM = "\x05" "Ust-Nera"; + +const basic::Info::ZoneInfo kZoneAsia_Ust_Nera ACE_TIME_PROGMEM = { + kZoneNameAsia_Ust_Nera /*name*/, + 0x4785f921 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ust_Nera /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Vladivostok +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Vladivostok[] ACE_TIME_PROGMEM = { + // 10:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Vladivostok[] ACE_TIME_PROGMEM = "\x05" "Vladivostok"; + +const basic::Info::ZoneInfo kZoneAsia_Vladivostok ACE_TIME_PROGMEM = { + kZoneNameAsia_Vladivostok /*name*/, + 0x29de34a8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Vladivostok /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Yakutsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Yakutsk[] ACE_TIME_PROGMEM = { + // 9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Yakutsk[] ACE_TIME_PROGMEM = "\x05" "Yakutsk"; + +const basic::Info::ZoneInfo kZoneAsia_Yakutsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Yakutsk /*name*/, + 0x87bb3a9e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yakutsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Yangon +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Yangon[] ACE_TIME_PROGMEM = { + // 6:30 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 26 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Yangon[] ACE_TIME_PROGMEM = "\x05" "Yangon"; + +const basic::Info::ZoneInfo kZoneAsia_Yangon ACE_TIME_PROGMEM = { + kZoneNameAsia_Yangon /*name*/, + 0xdd54a8be /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yangon /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Yekaterinburg +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Yekaterinburg[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Yekaterinburg[] ACE_TIME_PROGMEM = "\x05" "Yekaterinburg"; + +const basic::Info::ZoneInfo kZoneAsia_Yekaterinburg ACE_TIME_PROGMEM = { + kZoneNameAsia_Yekaterinburg /*name*/, + 0xfb544c6e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yekaterinburg /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Yerevan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAsia_Yerevan[] ACE_TIME_PROGMEM = { + // 4:00 Armenia %z + { + &kZonePolicyArmenia /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Yerevan[] ACE_TIME_PROGMEM = "\x05" "Yerevan"; + +const basic::Info::ZoneInfo kZoneAsia_Yerevan ACE_TIME_PROGMEM = { + kZoneNameAsia_Yerevan /*name*/, + 0x9185c8cc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yerevan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Azores +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAtlantic_Azores[] ACE_TIME_PROGMEM = { + // -1:00 EU %z + { + &kZonePolicyEU /*zonePolicy*/, + "" /*format*/, + -4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Azores[] ACE_TIME_PROGMEM = "\x06" "Azores"; + +const basic::Info::ZoneInfo kZoneAtlantic_Azores ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Azores /*name*/, + 0xf93ed918 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Azores /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Bermuda +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAtlantic_Bermuda[] ACE_TIME_PROGMEM = { + // -4:00 US A%sT + { + &kZonePolicyUS /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Bermuda[] ACE_TIME_PROGMEM = "\x06" "Bermuda"; + +const basic::Info::ZoneInfo kZoneAtlantic_Bermuda ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Bermuda /*name*/, + 0x3d4bb1c4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Bermuda /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Canary +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAtlantic_Canary[] ACE_TIME_PROGMEM = { + // 0:00 EU WE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "WE%T" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Canary[] ACE_TIME_PROGMEM = "\x06" "Canary"; + +const basic::Info::ZoneInfo kZoneAtlantic_Canary ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Canary /*name*/, + 0xfc23f2c2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Canary /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Cape_Verde +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = { + // -1:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = "\x06" "Cape_Verde"; + +const basic::Info::ZoneInfo kZoneAtlantic_Cape_Verde ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Cape_Verde /*name*/, + 0x5c5e1772 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Cape_Verde /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Faroe +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAtlantic_Faroe[] ACE_TIME_PROGMEM = { + // 0:00 EU WE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "WE%T" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Faroe[] ACE_TIME_PROGMEM = "\x06" "Faroe"; + +const basic::Info::ZoneInfo kZoneAtlantic_Faroe ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Faroe /*name*/, + 0xe110a971 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Faroe /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Madeira +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAtlantic_Madeira[] ACE_TIME_PROGMEM = { + // 0:00 EU WE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "WE%T" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Madeira[] ACE_TIME_PROGMEM = "\x06" "Madeira"; + +const basic::Info::ZoneInfo kZoneAtlantic_Madeira ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Madeira /*name*/, + 0x81b5c037 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Madeira /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/South_Georgia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAtlantic_South_Georgia[] ACE_TIME_PROGMEM = { + // -2:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_South_Georgia[] ACE_TIME_PROGMEM = "\x06" "South_Georgia"; + +const basic::Info::ZoneInfo kZoneAtlantic_South_Georgia ACE_TIME_PROGMEM = { + kZoneNameAtlantic_South_Georgia /*name*/, + 0x33013174 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_South_Georgia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Stanley +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAtlantic_Stanley[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Stanley[] ACE_TIME_PROGMEM = "\x06" "Stanley"; + +const basic::Info::ZoneInfo kZoneAtlantic_Stanley ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Stanley /*name*/, + 0x7bb3e1c4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Stanley /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Adelaide +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAustralia_Adelaide[] ACE_TIME_PROGMEM = { + // 9:30 AS AC%sT + { + &kZonePolicyAS /*zonePolicy*/, + "AC%T" /*format*/, + 38 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Adelaide[] ACE_TIME_PROGMEM = "\x07" "Adelaide"; + +const basic::Info::ZoneInfo kZoneAustralia_Adelaide ACE_TIME_PROGMEM = { + kZoneNameAustralia_Adelaide /*name*/, + 0x2428e8a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Adelaide /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Brisbane +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAustralia_Brisbane[] ACE_TIME_PROGMEM = { + // 10:00 AQ AE%sT + { + &kZonePolicyAQ /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Brisbane[] ACE_TIME_PROGMEM = "\x07" "Brisbane"; + +const basic::Info::ZoneInfo kZoneAustralia_Brisbane ACE_TIME_PROGMEM = { + kZoneNameAustralia_Brisbane /*name*/, + 0x4fedc9c0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Brisbane /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Broken_Hill +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAustralia_Broken_Hill[] ACE_TIME_PROGMEM = { + // 9:30 AS AC%sT + { + &kZonePolicyAS /*zonePolicy*/, + "AC%T" /*format*/, + 38 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Broken_Hill[] ACE_TIME_PROGMEM = "\x07" "Broken_Hill"; + +const basic::Info::ZoneInfo kZoneAustralia_Broken_Hill ACE_TIME_PROGMEM = { + kZoneNameAustralia_Broken_Hill /*name*/, + 0xb06eada3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Broken_Hill /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Darwin +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = { + // 9:30 Aus AC%sT + { + &kZonePolicyAus /*zonePolicy*/, + "AC%T" /*format*/, + 38 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "\x07" "Darwin"; + +const basic::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = { + kZoneNameAustralia_Darwin /*name*/, + 0x2876bdff /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Darwin /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Eucla +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAustralia_Eucla[] ACE_TIME_PROGMEM = { + // 8:45 AW %z + { + &kZonePolicyAW /*zonePolicy*/, + "" /*format*/, + 35 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Eucla[] ACE_TIME_PROGMEM = "\x07" "Eucla"; + +const basic::Info::ZoneInfo kZoneAustralia_Eucla ACE_TIME_PROGMEM = { + kZoneNameAustralia_Eucla /*name*/, + 0x8cf99e44 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Eucla /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Hobart +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAustralia_Hobart[] ACE_TIME_PROGMEM = { + // 10:00 AT AE%sT + { + &kZonePolicyAT /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Hobart[] ACE_TIME_PROGMEM = "\x07" "Hobart"; + +const basic::Info::ZoneInfo kZoneAustralia_Hobart ACE_TIME_PROGMEM = { + kZoneNameAustralia_Hobart /*name*/, + 0x32bf951a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Hobart /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Lindeman +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAustralia_Lindeman[] ACE_TIME_PROGMEM = { + // 10:00 Holiday AE%sT + { + &kZonePolicyHoliday /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Lindeman[] ACE_TIME_PROGMEM = "\x07" "Lindeman"; + +const basic::Info::ZoneInfo kZoneAustralia_Lindeman ACE_TIME_PROGMEM = { + kZoneNameAustralia_Lindeman /*name*/, + 0xe05029e2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Lindeman /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Lord_Howe +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAustralia_Lord_Howe[] ACE_TIME_PROGMEM = { + // 10:30 LH %z + { + &kZonePolicyLH /*zonePolicy*/, + "" /*format*/, + 42 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Lord_Howe[] ACE_TIME_PROGMEM = "\x07" "Lord_Howe"; + +const basic::Info::ZoneInfo kZoneAustralia_Lord_Howe ACE_TIME_PROGMEM = { + kZoneNameAustralia_Lord_Howe /*name*/, + 0xa748b67d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Lord_Howe /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Melbourne +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAustralia_Melbourne[] ACE_TIME_PROGMEM = { + // 10:00 AV AE%sT + { + &kZonePolicyAV /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Melbourne[] ACE_TIME_PROGMEM = "\x07" "Melbourne"; + +const basic::Info::ZoneInfo kZoneAustralia_Melbourne ACE_TIME_PROGMEM = { + kZoneNameAustralia_Melbourne /*name*/, + 0x0fe559a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Melbourne /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Perth +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAustralia_Perth[] ACE_TIME_PROGMEM = { + // 8:00 AW AW%sT + { + &kZonePolicyAW /*zonePolicy*/, + "AW%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Perth[] ACE_TIME_PROGMEM = "\x07" "Perth"; + +const basic::Info::ZoneInfo kZoneAustralia_Perth ACE_TIME_PROGMEM = { + kZoneNameAustralia_Perth /*name*/, + 0x8db8269d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Perth /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Sydney +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraAustralia_Sydney[] ACE_TIME_PROGMEM = { + // 10:00 AN AE%sT + { + &kZonePolicyAN /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Sydney[] ACE_TIME_PROGMEM = "\x07" "Sydney"; + +const basic::Info::ZoneInfo kZoneAustralia_Sydney ACE_TIME_PROGMEM = { + kZoneNameAustralia_Sydney /*name*/, + 0x4d1e9776 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Sydney /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT[] ACE_TIME_PROGMEM = { + // 0 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT[] ACE_TIME_PROGMEM = "\x0a" "GMT"; + +const basic::Info::ZoneInfo kZoneEtc_GMT ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT /*name*/, + 0xd8e2de58 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+1 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = { + // -1 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = "\x0a" "GMT+1"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_1 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_1 /*name*/, + 0x9d13da14 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_1 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+10 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = { + // -10 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = "\x0a" "GMT+10"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_10 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_10 /*name*/, + 0x3f8f1cc4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_10 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+11 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = { + // -11 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = "\x0a" "GMT+11"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_11 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_11 /*name*/, + 0x3f8f1cc5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_11 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+12 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = { + // -12 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = "\x0a" "GMT+12"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_12 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_12 /*name*/, + 0x3f8f1cc6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_12 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+2 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = { + // -2 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = "\x0a" "GMT+2"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_2 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_2 /*name*/, + 0x9d13da15 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_2 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+3 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = { + // -3 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = "\x0a" "GMT+3"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_3 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_3 /*name*/, + 0x9d13da16 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_3 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+4 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = { + // -4 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = "\x0a" "GMT+4"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_4 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_4 /*name*/, + 0x9d13da17 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_4 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+5 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = { + // -5 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = "\x0a" "GMT+5"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_5 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_5 /*name*/, + 0x9d13da18 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_5 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+6 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = { + // -6 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = "\x0a" "GMT+6"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_6 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_6 /*name*/, + 0x9d13da19 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_6 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+7 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = { + // -7 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = "\x0a" "GMT+7"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_7 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_7 /*name*/, + 0x9d13da1a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_7 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+8 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = { + // -8 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = "\x0a" "GMT+8"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_8 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_8 /*name*/, + 0x9d13da1b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_8 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+9 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = { + // -9 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = "\x0a" "GMT+9"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_9 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_9 /*name*/, + 0x9d13da1c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_9 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-1 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_1[] ACE_TIME_PROGMEM = { + // 1 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_1[] ACE_TIME_PROGMEM = "\x0a" "GMT-1"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_1 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_1 /*name*/, + 0x9d13da56 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_1 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-10 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_10[] ACE_TIME_PROGMEM = { + // 10 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_10[] ACE_TIME_PROGMEM = "\x0a" "GMT-10"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_10 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_10 /*name*/, + 0x3f8f2546 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_10 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-11 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_11[] ACE_TIME_PROGMEM = { + // 11 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_11[] ACE_TIME_PROGMEM = "\x0a" "GMT-11"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_11 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_11 /*name*/, + 0x3f8f2547 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_11 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-12 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_12[] ACE_TIME_PROGMEM = { + // 12 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_12[] ACE_TIME_PROGMEM = "\x0a" "GMT-12"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_12 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_12 /*name*/, + 0x3f8f2548 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_12 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-13 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_13[] ACE_TIME_PROGMEM = { + // 13 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 52 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_13[] ACE_TIME_PROGMEM = "\x0a" "GMT-13"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_13 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_13 /*name*/, + 0x3f8f2549 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_13 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-14 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_14[] ACE_TIME_PROGMEM = { + // 14 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 56 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_14[] ACE_TIME_PROGMEM = "\x0a" "GMT-14"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_14 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_14 /*name*/, + 0x3f8f254a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_14 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-2 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_2[] ACE_TIME_PROGMEM = { + // 2 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_2[] ACE_TIME_PROGMEM = "\x0a" "GMT-2"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_2 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_2 /*name*/, + 0x9d13da57 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_2 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-3 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_3[] ACE_TIME_PROGMEM = { + // 3 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_3[] ACE_TIME_PROGMEM = "\x0a" "GMT-3"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_3 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_3 /*name*/, + 0x9d13da58 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_3 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-4 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_4[] ACE_TIME_PROGMEM = { + // 4 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_4[] ACE_TIME_PROGMEM = "\x0a" "GMT-4"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_4 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_4 /*name*/, + 0x9d13da59 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_4 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-5 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_5[] ACE_TIME_PROGMEM = { + // 5 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_5[] ACE_TIME_PROGMEM = "\x0a" "GMT-5"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_5 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_5 /*name*/, + 0x9d13da5a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_5 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-6 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_6[] ACE_TIME_PROGMEM = { + // 6 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_6[] ACE_TIME_PROGMEM = "\x0a" "GMT-6"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_6 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_6 /*name*/, + 0x9d13da5b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_6 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-7 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_7[] ACE_TIME_PROGMEM = { + // 7 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_7[] ACE_TIME_PROGMEM = "\x0a" "GMT-7"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_7 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_7 /*name*/, + 0x9d13da5c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_7 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-8 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_8[] ACE_TIME_PROGMEM = { + // 8 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_8[] ACE_TIME_PROGMEM = "\x0a" "GMT-8"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_8 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_8 /*name*/, + 0x9d13da5d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_8 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-9 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_GMT_9[] ACE_TIME_PROGMEM = { + // 9 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_9[] ACE_TIME_PROGMEM = "\x0a" "GMT-9"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_9 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_9 /*name*/, + 0x9d13da5e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_9 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/UTC +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEtc_UTC[] ACE_TIME_PROGMEM = { + // 0 - UTC + { + nullptr /*zonePolicy*/, + "UTC" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_UTC[] ACE_TIME_PROGMEM = "\x0a" "UTC"; + +const basic::Info::ZoneInfo kZoneEtc_UTC ACE_TIME_PROGMEM = { + kZoneNameEtc_UTC /*name*/, + 0xd8e31abc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Andorra +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Andorra[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Andorra[] ACE_TIME_PROGMEM = "\x0b" "Andorra"; + +const basic::Info::ZoneInfo kZoneEurope_Andorra ACE_TIME_PROGMEM = { + kZoneNameEurope_Andorra /*name*/, + 0x97f6764b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Andorra /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Astrakhan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Astrakhan[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Astrakhan[] ACE_TIME_PROGMEM = "\x0b" "Astrakhan"; + +const basic::Info::ZoneInfo kZoneEurope_Astrakhan ACE_TIME_PROGMEM = { + kZoneNameEurope_Astrakhan /*name*/, + 0xe22256e1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Astrakhan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Athens +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Athens[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Athens[] ACE_TIME_PROGMEM = "\x0b" "Athens"; + +const basic::Info::ZoneInfo kZoneEurope_Athens ACE_TIME_PROGMEM = { + kZoneNameEurope_Athens /*name*/, + 0x4318fa27 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Athens /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Belgrade +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Belgrade[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Belgrade[] ACE_TIME_PROGMEM = "\x0b" "Belgrade"; + +const basic::Info::ZoneInfo kZoneEurope_Belgrade ACE_TIME_PROGMEM = { + kZoneNameEurope_Belgrade /*name*/, + 0xe0532b3a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Berlin +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Berlin[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Berlin[] ACE_TIME_PROGMEM = "\x0b" "Berlin"; + +const basic::Info::ZoneInfo kZoneEurope_Berlin ACE_TIME_PROGMEM = { + kZoneNameEurope_Berlin /*name*/, + 0x44644c20 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Brussels +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Brussels[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Brussels[] ACE_TIME_PROGMEM = "\x0b" "Brussels"; + +const basic::Info::ZoneInfo kZoneEurope_Brussels ACE_TIME_PROGMEM = { + kZoneNameEurope_Brussels /*name*/, + 0xdee07337 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Brussels /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Bucharest +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Bucharest[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Bucharest[] ACE_TIME_PROGMEM = "\x0b" "Bucharest"; + +const basic::Info::ZoneInfo kZoneEurope_Bucharest ACE_TIME_PROGMEM = { + kZoneNameEurope_Bucharest /*name*/, + 0xfb349ec5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Bucharest /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Budapest +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Budapest[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Budapest[] ACE_TIME_PROGMEM = "\x0b" "Budapest"; + +const basic::Info::ZoneInfo kZoneEurope_Budapest ACE_TIME_PROGMEM = { + kZoneNameEurope_Budapest /*name*/, + 0x9ce0197c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Budapest /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Chisinau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Chisinau[] ACE_TIME_PROGMEM = { + // 2:00 Moldova EE%sT + { + &kZonePolicyMoldova /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Chisinau[] ACE_TIME_PROGMEM = "\x0b" "Chisinau"; + +const basic::Info::ZoneInfo kZoneEurope_Chisinau ACE_TIME_PROGMEM = { + kZoneNameEurope_Chisinau /*name*/, + 0xad58aa18 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Chisinau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Dublin +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Dublin[] ACE_TIME_PROGMEM = { + // 1:00 Eire IST/GMT + { + &kZonePolicyEire /*zonePolicy*/, + "IST/GMT" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Dublin[] ACE_TIME_PROGMEM = "\x0b" "Dublin"; + +const basic::Info::ZoneInfo kZoneEurope_Dublin ACE_TIME_PROGMEM = { + kZoneNameEurope_Dublin /*name*/, + 0x4a275f62 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Dublin /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Gibraltar +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Gibraltar[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Gibraltar[] ACE_TIME_PROGMEM = "\x0b" "Gibraltar"; + +const basic::Info::ZoneInfo kZoneEurope_Gibraltar ACE_TIME_PROGMEM = { + kZoneNameEurope_Gibraltar /*name*/, + 0xf8e325fc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Gibraltar /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Helsinki +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Helsinki[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Helsinki[] ACE_TIME_PROGMEM = "\x0b" "Helsinki"; + +const basic::Info::ZoneInfo kZoneEurope_Helsinki ACE_TIME_PROGMEM = { + kZoneNameEurope_Helsinki /*name*/, + 0x6ab2975b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Helsinki /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Istanbul +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Istanbul[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Istanbul[] ACE_TIME_PROGMEM = "\x0b" "Istanbul"; + +const basic::Info::ZoneInfo kZoneEurope_Istanbul ACE_TIME_PROGMEM = { + kZoneNameEurope_Istanbul /*name*/, + 0x9e09d6e6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Istanbul /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Kaliningrad +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Kaliningrad[] ACE_TIME_PROGMEM = { + // 2:00 - EET + { + nullptr /*zonePolicy*/, + "EET" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Kaliningrad[] ACE_TIME_PROGMEM = "\x0b" "Kaliningrad"; + +const basic::Info::ZoneInfo kZoneEurope_Kaliningrad ACE_TIME_PROGMEM = { + kZoneNameEurope_Kaliningrad /*name*/, + 0xd33b2f28 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kaliningrad /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Kirov +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Kirov[] ACE_TIME_PROGMEM = { + // 3:00 - MSK + { + nullptr /*zonePolicy*/, + "MSK" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Kirov[] ACE_TIME_PROGMEM = "\x0b" "Kirov"; + +const basic::Info::ZoneInfo kZoneEurope_Kirov ACE_TIME_PROGMEM = { + kZoneNameEurope_Kirov /*name*/, + 0xfaf5abef /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kirov /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Kyiv +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Kyiv[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Kyiv[] ACE_TIME_PROGMEM = "\x0b" "Kyiv"; + +const basic::Info::ZoneInfo kZoneEurope_Kyiv ACE_TIME_PROGMEM = { + kZoneNameEurope_Kyiv /*name*/, + 0xa2c1e347 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kyiv /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Lisbon +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Lisbon[] ACE_TIME_PROGMEM = { + // 0:00 EU WE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "WE%T" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Lisbon[] ACE_TIME_PROGMEM = "\x0b" "Lisbon"; + +const basic::Info::ZoneInfo kZoneEurope_Lisbon ACE_TIME_PROGMEM = { + kZoneNameEurope_Lisbon /*name*/, + 0x5c00a70b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Lisbon /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/London +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_London[] ACE_TIME_PROGMEM = { + // 0:00 EU GMT/BST + { + &kZonePolicyEU /*zonePolicy*/, + "GMT/BST" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_London[] ACE_TIME_PROGMEM = "\x0b" "London"; + +const basic::Info::ZoneInfo kZoneEurope_London ACE_TIME_PROGMEM = { + kZoneNameEurope_London /*name*/, + 0x5c6a84ae /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Madrid +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Madrid[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Madrid[] ACE_TIME_PROGMEM = "\x0b" "Madrid"; + +const basic::Info::ZoneInfo kZoneEurope_Madrid ACE_TIME_PROGMEM = { + kZoneNameEurope_Madrid /*name*/, + 0x5dbd1535 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Madrid /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Malta +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Malta[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Malta[] ACE_TIME_PROGMEM = "\x0b" "Malta"; + +const basic::Info::ZoneInfo kZoneEurope_Malta ACE_TIME_PROGMEM = { + kZoneNameEurope_Malta /*name*/, + 0xfb1560f3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Malta /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Minsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Minsk[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Minsk[] ACE_TIME_PROGMEM = "\x0b" "Minsk"; + +const basic::Info::ZoneInfo kZoneEurope_Minsk ACE_TIME_PROGMEM = { + kZoneNameEurope_Minsk /*name*/, + 0xfb19cc66 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Minsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Moscow +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Moscow[] ACE_TIME_PROGMEM = { + // 3:00 - MSK + { + nullptr /*zonePolicy*/, + "MSK" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Moscow[] ACE_TIME_PROGMEM = "\x0b" "Moscow"; + +const basic::Info::ZoneInfo kZoneEurope_Moscow ACE_TIME_PROGMEM = { + kZoneNameEurope_Moscow /*name*/, + 0x5ec266fc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Moscow /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Paris +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Paris[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Paris[] ACE_TIME_PROGMEM = "\x0b" "Paris"; + +const basic::Info::ZoneInfo kZoneEurope_Paris ACE_TIME_PROGMEM = { + kZoneNameEurope_Paris /*name*/, + 0xfb4bc2a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Paris /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Prague +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Prague[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Prague[] ACE_TIME_PROGMEM = "\x0b" "Prague"; + +const basic::Info::ZoneInfo kZoneEurope_Prague ACE_TIME_PROGMEM = { + kZoneNameEurope_Prague /*name*/, + 0x65ee5d48 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Prague /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Riga +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Riga[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Riga[] ACE_TIME_PROGMEM = "\x0b" "Riga"; + +const basic::Info::ZoneInfo kZoneEurope_Riga ACE_TIME_PROGMEM = { + kZoneNameEurope_Riga /*name*/, + 0xa2c57587 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Riga /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Rome +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Rome[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Rome[] ACE_TIME_PROGMEM = "\x0b" "Rome"; + +const basic::Info::ZoneInfo kZoneEurope_Rome ACE_TIME_PROGMEM = { + kZoneNameEurope_Rome /*name*/, + 0xa2c58fd7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Rome /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Samara +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Samara[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Samara[] ACE_TIME_PROGMEM = "\x0b" "Samara"; + +const basic::Info::ZoneInfo kZoneEurope_Samara ACE_TIME_PROGMEM = { + kZoneNameEurope_Samara /*name*/, + 0x6bc0b139 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Samara /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Saratov +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Saratov[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Saratov[] ACE_TIME_PROGMEM = "\x0b" "Saratov"; + +const basic::Info::ZoneInfo kZoneEurope_Saratov ACE_TIME_PROGMEM = { + kZoneNameEurope_Saratov /*name*/, + 0xe4315da4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Saratov /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Simferopol +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Simferopol[] ACE_TIME_PROGMEM = { + // 3:00 - MSK + { + nullptr /*zonePolicy*/, + "MSK" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Simferopol[] ACE_TIME_PROGMEM = "\x0b" "Simferopol"; + +const basic::Info::ZoneInfo kZoneEurope_Simferopol ACE_TIME_PROGMEM = { + kZoneNameEurope_Simferopol /*name*/, + 0xda9eb724 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Simferopol /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Sofia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Sofia[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Sofia[] ACE_TIME_PROGMEM = "\x0b" "Sofia"; + +const basic::Info::ZoneInfo kZoneEurope_Sofia ACE_TIME_PROGMEM = { + kZoneNameEurope_Sofia /*name*/, + 0xfb898656 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Sofia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Tallinn +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Tallinn[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Tallinn[] ACE_TIME_PROGMEM = "\x0b" "Tallinn"; + +const basic::Info::ZoneInfo kZoneEurope_Tallinn ACE_TIME_PROGMEM = { + kZoneNameEurope_Tallinn /*name*/, + 0x30c4e096 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Tallinn /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Tirane +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Tirane[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Tirane[] ACE_TIME_PROGMEM = "\x0b" "Tirane"; + +const basic::Info::ZoneInfo kZoneEurope_Tirane ACE_TIME_PROGMEM = { + kZoneNameEurope_Tirane /*name*/, + 0x6ea95b47 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Tirane /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Ulyanovsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Ulyanovsk[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Ulyanovsk[] ACE_TIME_PROGMEM = "\x0b" "Ulyanovsk"; + +const basic::Info::ZoneInfo kZoneEurope_Ulyanovsk ACE_TIME_PROGMEM = { + kZoneNameEurope_Ulyanovsk /*name*/, + 0xe03783d0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Ulyanovsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Vienna +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Vienna[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Vienna[] ACE_TIME_PROGMEM = "\x0b" "Vienna"; + +const basic::Info::ZoneInfo kZoneEurope_Vienna ACE_TIME_PROGMEM = { + kZoneNameEurope_Vienna /*name*/, + 0x734cc2e5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Vienna /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Vilnius +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Vilnius[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Vilnius[] ACE_TIME_PROGMEM = "\x0b" "Vilnius"; + +const basic::Info::ZoneInfo kZoneEurope_Vilnius ACE_TIME_PROGMEM = { + kZoneNameEurope_Vilnius /*name*/, + 0xdd63b8ce /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Vilnius /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Volgograd +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Volgograd[] ACE_TIME_PROGMEM = { + // 3:00 - MSK + { + nullptr /*zonePolicy*/, + "MSK" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Volgograd[] ACE_TIME_PROGMEM = "\x0b" "Volgograd"; + +const basic::Info::ZoneInfo kZoneEurope_Volgograd ACE_TIME_PROGMEM = { + kZoneNameEurope_Volgograd /*name*/, + 0x3ed0f389 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Volgograd /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Warsaw +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Warsaw[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Warsaw[] ACE_TIME_PROGMEM = "\x0b" "Warsaw"; + +const basic::Info::ZoneInfo kZoneEurope_Warsaw ACE_TIME_PROGMEM = { + kZoneNameEurope_Warsaw /*name*/, + 0x75185c19 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Warsaw /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Zurich +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraEurope_Zurich[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Zurich[] ACE_TIME_PROGMEM = "\x0b" "Zurich"; + +const basic::Info::ZoneInfo kZoneEurope_Zurich ACE_TIME_PROGMEM = { + kZoneNameEurope_Zurich /*name*/, + 0x7d8195b9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Zurich /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Indian/Chagos +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraIndian_Chagos[] ACE_TIME_PROGMEM = { + // 6:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameIndian_Chagos[] ACE_TIME_PROGMEM = "\x0c" "Chagos"; + +const basic::Info::ZoneInfo kZoneIndian_Chagos ACE_TIME_PROGMEM = { + kZoneNameIndian_Chagos /*name*/, + 0x456f7c3c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraIndian_Chagos /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Indian/Maldives +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraIndian_Maldives[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameIndian_Maldives[] ACE_TIME_PROGMEM = "\x0c" "Maldives"; + +const basic::Info::ZoneInfo kZoneIndian_Maldives ACE_TIME_PROGMEM = { + kZoneNameIndian_Maldives /*name*/, + 0x9869681c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraIndian_Maldives /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Indian/Mauritius +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraIndian_Mauritius[] ACE_TIME_PROGMEM = { + // 4:00 Mauritius %z + { + &kZonePolicyMauritius /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameIndian_Mauritius[] ACE_TIME_PROGMEM = "\x0c" "Mauritius"; + +const basic::Info::ZoneInfo kZoneIndian_Mauritius ACE_TIME_PROGMEM = { + kZoneNameIndian_Mauritius /*name*/, + 0x7b09c02a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraIndian_Mauritius /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Apia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Apia[] ACE_TIME_PROGMEM = { + // 13:00 WS %z + { + &kZonePolicyWS /*zonePolicy*/, + "" /*format*/, + 52 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Apia[] ACE_TIME_PROGMEM = "\x0e" "Apia"; + +const basic::Info::ZoneInfo kZonePacific_Apia ACE_TIME_PROGMEM = { + kZoneNamePacific_Apia /*name*/, + 0x23359b5e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Apia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Auckland +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Auckland[] ACE_TIME_PROGMEM = { + // 12:00 NZ NZ%sT + { + &kZonePolicyNZ /*zonePolicy*/, + "NZ%T" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Auckland[] ACE_TIME_PROGMEM = "\x0e" "Auckland"; + +const basic::Info::ZoneInfo kZonePacific_Auckland ACE_TIME_PROGMEM = { + kZoneNamePacific_Auckland /*name*/, + 0x25062f86 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Auckland /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Bougainville +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Bougainville[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Bougainville[] ACE_TIME_PROGMEM = "\x0e" "Bougainville"; + +const basic::Info::ZoneInfo kZonePacific_Bougainville ACE_TIME_PROGMEM = { + kZoneNamePacific_Bougainville /*name*/, + 0x5e10f7a4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Bougainville /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Chatham +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Chatham[] ACE_TIME_PROGMEM = { + // 12:45 Chatham %z + { + &kZonePolicyChatham /*zonePolicy*/, + "" /*format*/, + 51 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Chatham[] ACE_TIME_PROGMEM = "\x0e" "Chatham"; + +const basic::Info::ZoneInfo kZonePacific_Chatham ACE_TIME_PROGMEM = { + kZoneNamePacific_Chatham /*name*/, + 0x2f0de999 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Chatham /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Easter +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Easter[] ACE_TIME_PROGMEM = { + // -6:00 Chile %z + { + &kZonePolicyChile /*zonePolicy*/, + "" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Easter[] ACE_TIME_PROGMEM = "\x0e" "Easter"; + +const basic::Info::ZoneInfo kZonePacific_Easter ACE_TIME_PROGMEM = { + kZoneNamePacific_Easter /*name*/, + 0xcf54f7e7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Easter /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Efate +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Efate[] ACE_TIME_PROGMEM = { + // 11:00 Vanuatu %z + { + &kZonePolicyVanuatu /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Efate[] ACE_TIME_PROGMEM = "\x0e" "Efate"; + +const basic::Info::ZoneInfo kZonePacific_Efate ACE_TIME_PROGMEM = { + kZoneNamePacific_Efate /*name*/, + 0x8a2bce28 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Efate /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Fakaofo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Fakaofo[] ACE_TIME_PROGMEM = { + // 13:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 52 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Fakaofo[] ACE_TIME_PROGMEM = "\x0e" "Fakaofo"; + +const basic::Info::ZoneInfo kZonePacific_Fakaofo ACE_TIME_PROGMEM = { + kZoneNamePacific_Fakaofo /*name*/, + 0x06532bba /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Fakaofo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Fiji +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Fiji[] ACE_TIME_PROGMEM = { + // 12:00 Fiji %z + { + &kZonePolicyFiji /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Fiji[] ACE_TIME_PROGMEM = "\x0e" "Fiji"; + +const basic::Info::ZoneInfo kZonePacific_Fiji ACE_TIME_PROGMEM = { + kZoneNamePacific_Fiji /*name*/, + 0x23383ba5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Fiji /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Galapagos +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Galapagos[] ACE_TIME_PROGMEM = { + // -6:00 Ecuador %z + { + &kZonePolicyEcuador /*zonePolicy*/, + "" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Galapagos[] ACE_TIME_PROGMEM = "\x0e" "Galapagos"; + +const basic::Info::ZoneInfo kZonePacific_Galapagos ACE_TIME_PROGMEM = { + kZoneNamePacific_Galapagos /*name*/, + 0xa952f752 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Galapagos /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Gambier +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Gambier[] ACE_TIME_PROGMEM = { + // -9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Gambier[] ACE_TIME_PROGMEM = "\x0e" "Gambier"; + +const basic::Info::ZoneInfo kZonePacific_Gambier ACE_TIME_PROGMEM = { + kZoneNamePacific_Gambier /*name*/, + 0x53720c3a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Gambier /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Guadalcanal +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Guadalcanal[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Guadalcanal[] ACE_TIME_PROGMEM = "\x0e" "Guadalcanal"; + +const basic::Info::ZoneInfo kZonePacific_Guadalcanal ACE_TIME_PROGMEM = { + kZoneNamePacific_Guadalcanal /*name*/, + 0xf4dd25f0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Guadalcanal /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Guam +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Guam[] ACE_TIME_PROGMEM = { + // 10:00 - ChST + { + nullptr /*zonePolicy*/, + "ChST" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Guam[] ACE_TIME_PROGMEM = "\x0e" "Guam"; + +const basic::Info::ZoneInfo kZonePacific_Guam ACE_TIME_PROGMEM = { + kZoneNamePacific_Guam /*name*/, + 0x2338f9ed /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Guam /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Honolulu +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Honolulu[] ACE_TIME_PROGMEM = { + // -10:00 - HST + { + nullptr /*zonePolicy*/, + "HST" /*format*/, + -40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Honolulu[] ACE_TIME_PROGMEM = "\x0e" "Honolulu"; + +const basic::Info::ZoneInfo kZonePacific_Honolulu ACE_TIME_PROGMEM = { + kZoneNamePacific_Honolulu /*name*/, + 0xe6e70af9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Honolulu /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Kanton +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Kanton[] ACE_TIME_PROGMEM = { + // 13:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 52 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Kanton[] ACE_TIME_PROGMEM = "\x0e" "Kanton"; + +const basic::Info::ZoneInfo kZonePacific_Kanton ACE_TIME_PROGMEM = { + kZoneNamePacific_Kanton /*name*/, + 0xdd512f0e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kanton /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Kiritimati +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Kiritimati[] ACE_TIME_PROGMEM = { + // 14:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 56 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Kiritimati[] ACE_TIME_PROGMEM = "\x0e" "Kiritimati"; + +const basic::Info::ZoneInfo kZonePacific_Kiritimati ACE_TIME_PROGMEM = { + kZoneNamePacific_Kiritimati /*name*/, + 0x8305073a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kiritimati /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Kosrae +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Kosrae[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Kosrae[] ACE_TIME_PROGMEM = "\x0e" "Kosrae"; + +const basic::Info::ZoneInfo kZonePacific_Kosrae ACE_TIME_PROGMEM = { + kZoneNamePacific_Kosrae /*name*/, + 0xde5139a8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kosrae /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Kwajalein +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Kwajalein[] ACE_TIME_PROGMEM = { + // 12:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Kwajalein[] ACE_TIME_PROGMEM = "\x0e" "Kwajalein"; + +const basic::Info::ZoneInfo kZonePacific_Kwajalein ACE_TIME_PROGMEM = { + kZoneNamePacific_Kwajalein /*name*/, + 0x8e216759 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kwajalein /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Marquesas +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Marquesas[] ACE_TIME_PROGMEM = { + // -9:30 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -38 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Marquesas[] ACE_TIME_PROGMEM = "\x0e" "Marquesas"; + +const basic::Info::ZoneInfo kZonePacific_Marquesas ACE_TIME_PROGMEM = { + kZoneNamePacific_Marquesas /*name*/, + 0x57ca7135 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Marquesas /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Nauru +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Nauru[] ACE_TIME_PROGMEM = { + // 12:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Nauru[] ACE_TIME_PROGMEM = "\x0e" "Nauru"; + +const basic::Info::ZoneInfo kZonePacific_Nauru ACE_TIME_PROGMEM = { + kZoneNamePacific_Nauru /*name*/, + 0x8acc41ae /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Nauru /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Niue +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Niue[] ACE_TIME_PROGMEM = { + // -11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Niue[] ACE_TIME_PROGMEM = "\x0e" "Niue"; + +const basic::Info::ZoneInfo kZonePacific_Niue ACE_TIME_PROGMEM = { + kZoneNamePacific_Niue /*name*/, + 0x233ca014 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Niue /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Norfolk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Norfolk[] ACE_TIME_PROGMEM = { + // 11:00 AN %z + { + &kZonePolicyAN /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Norfolk[] ACE_TIME_PROGMEM = "\x0e" "Norfolk"; + +const basic::Info::ZoneInfo kZonePacific_Norfolk ACE_TIME_PROGMEM = { + kZoneNamePacific_Norfolk /*name*/, + 0x8f4eb4be /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Norfolk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Noumea +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Noumea[] ACE_TIME_PROGMEM = { + // 11:00 NC %z + { + &kZonePolicyNC /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Noumea[] ACE_TIME_PROGMEM = "\x0e" "Noumea"; + +const basic::Info::ZoneInfo kZonePacific_Noumea ACE_TIME_PROGMEM = { + kZoneNamePacific_Noumea /*name*/, + 0xe551b788 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Noumea /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Pago_Pago +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Pago_Pago[] ACE_TIME_PROGMEM = { + // -11:00 - SST + { + nullptr /*zonePolicy*/, + "SST" /*format*/, + -44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Pago_Pago[] ACE_TIME_PROGMEM = "\x0e" "Pago_Pago"; + +const basic::Info::ZoneInfo kZonePacific_Pago_Pago ACE_TIME_PROGMEM = { + kZoneNamePacific_Pago_Pago /*name*/, + 0x603aebd0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Pago_Pago /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Palau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Palau[] ACE_TIME_PROGMEM = { + // 9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Palau[] ACE_TIME_PROGMEM = "\x0e" "Palau"; + +const basic::Info::ZoneInfo kZonePacific_Palau ACE_TIME_PROGMEM = { + kZoneNamePacific_Palau /*name*/, + 0x8af04a36 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Palau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Pitcairn +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Pitcairn[] ACE_TIME_PROGMEM = { + // -8:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Pitcairn[] ACE_TIME_PROGMEM = "\x0e" "Pitcairn"; + +const basic::Info::ZoneInfo kZonePacific_Pitcairn ACE_TIME_PROGMEM = { + kZoneNamePacific_Pitcairn /*name*/, + 0x8837d8bd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Pitcairn /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Port_Moresby +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Port_Moresby[] ACE_TIME_PROGMEM = { + // 10:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Port_Moresby[] ACE_TIME_PROGMEM = "\x0e" "Port_Moresby"; + +const basic::Info::ZoneInfo kZonePacific_Port_Moresby ACE_TIME_PROGMEM = { + kZoneNamePacific_Port_Moresby /*name*/, + 0xa7ba7f68 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Port_Moresby /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Rarotonga +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Rarotonga[] ACE_TIME_PROGMEM = { + // -10:00 Cook %z + { + &kZonePolicyCook /*zonePolicy*/, + "" /*format*/, + -40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Rarotonga[] ACE_TIME_PROGMEM = "\x0e" "Rarotonga"; + +const basic::Info::ZoneInfo kZonePacific_Rarotonga ACE_TIME_PROGMEM = { + kZoneNamePacific_Rarotonga /*name*/, + 0x9981a3b0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Rarotonga /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Tahiti +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Tahiti[] ACE_TIME_PROGMEM = { + // -10:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Tahiti[] ACE_TIME_PROGMEM = "\x0e" "Tahiti"; + +const basic::Info::ZoneInfo kZonePacific_Tahiti ACE_TIME_PROGMEM = { + kZoneNamePacific_Tahiti /*name*/, + 0xf24c2446 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tahiti /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Tarawa +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Tarawa[] ACE_TIME_PROGMEM = { + // 12:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Tarawa[] ACE_TIME_PROGMEM = "\x0e" "Tarawa"; + +const basic::Info::ZoneInfo kZonePacific_Tarawa ACE_TIME_PROGMEM = { + kZoneNamePacific_Tarawa /*name*/, + 0xf2517e63 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tarawa /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Tongatapu +// Eras: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneEra kZoneEraPacific_Tongatapu[] ACE_TIME_PROGMEM = { + // 13:00 Tonga %z + { + &kZonePolicyTonga /*zonePolicy*/, + "" /*format*/, + 52 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Tongatapu[] ACE_TIME_PROGMEM = "\x0e" "Tongatapu"; + +const basic::Info::ZoneInfo kZonePacific_Tongatapu ACE_TIME_PROGMEM = { + kZoneNamePacific_Tongatapu /*name*/, + 0x262ca836 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tongatapu /*eras*/, + nullptr /*targetInfo*/, +}; + + + +//--------------------------------------------------------------------------- +// Links: 257 +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// Link name: Africa/Accra -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Accra[] ACE_TIME_PROGMEM = "\x01" "Accra"; + +const basic::Info::ZoneInfo kZoneAfrica_Accra ACE_TIME_PROGMEM = { + kZoneNameAfrica_Accra /*name*/, + 0x77d5b054 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Addis_Ababa -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Addis_Ababa[] ACE_TIME_PROGMEM = "\x01" "Addis_Ababa"; + +const basic::Info::ZoneInfo kZoneAfrica_Addis_Ababa ACE_TIME_PROGMEM = { + kZoneNameAfrica_Addis_Ababa /*name*/, + 0x05ae1e65 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Asmara -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Asmara[] ACE_TIME_PROGMEM = "\x01" "Asmara"; + +const basic::Info::ZoneInfo kZoneAfrica_Asmara ACE_TIME_PROGMEM = { + kZoneNameAfrica_Asmara /*name*/, + 0x73b278ef /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Asmera -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Asmera[] ACE_TIME_PROGMEM = "\x01" "Asmera"; + +const basic::Info::ZoneInfo kZoneAfrica_Asmera ACE_TIME_PROGMEM = { + kZoneNameAfrica_Asmera /*name*/, + 0x73b289f3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Bamako -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Bamako[] ACE_TIME_PROGMEM = "\x01" "Bamako"; + +const basic::Info::ZoneInfo kZoneAfrica_Bamako ACE_TIME_PROGMEM = { + kZoneNameAfrica_Bamako /*name*/, + 0x74c1e7a5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Bangui -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Bangui[] ACE_TIME_PROGMEM = "\x01" "Bangui"; + +const basic::Info::ZoneInfo kZoneAfrica_Bangui ACE_TIME_PROGMEM = { + kZoneNameAfrica_Bangui /*name*/, + 0x74c28ed0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Banjul -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Banjul[] ACE_TIME_PROGMEM = "\x01" "Banjul"; + +const basic::Info::ZoneInfo kZoneAfrica_Banjul ACE_TIME_PROGMEM = { + kZoneNameAfrica_Banjul /*name*/, + 0x74c29b96 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Blantyre -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Blantyre[] ACE_TIME_PROGMEM = "\x01" "Blantyre"; + +const basic::Info::ZoneInfo kZoneAfrica_Blantyre ACE_TIME_PROGMEM = { + kZoneNameAfrica_Blantyre /*name*/, + 0xe08d813b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Brazzaville -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Brazzaville[] ACE_TIME_PROGMEM = "\x01" "Brazzaville"; + +const basic::Info::ZoneInfo kZoneAfrica_Brazzaville ACE_TIME_PROGMEM = { + kZoneNameAfrica_Brazzaville /*name*/, + 0x39cda760 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Bujumbura -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Bujumbura[] ACE_TIME_PROGMEM = "\x01" "Bujumbura"; + +const basic::Info::ZoneInfo kZoneAfrica_Bujumbura ACE_TIME_PROGMEM = { + kZoneNameAfrica_Bujumbura /*name*/, + 0x05232a47 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Conakry -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Conakry[] ACE_TIME_PROGMEM = "\x01" "Conakry"; + +const basic::Info::ZoneInfo kZoneAfrica_Conakry ACE_TIME_PROGMEM = { + kZoneNameAfrica_Conakry /*name*/, + 0x7ab36b31 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Dakar -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Dakar[] ACE_TIME_PROGMEM = "\x01" "Dakar"; + +const basic::Info::ZoneInfo kZoneAfrica_Dakar ACE_TIME_PROGMEM = { + kZoneNameAfrica_Dakar /*name*/, + 0x780b00fd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Dar_es_Salaam -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Dar_es_Salaam[] ACE_TIME_PROGMEM = "\x01" "Dar_es_Salaam"; + +const basic::Info::ZoneInfo kZoneAfrica_Dar_es_Salaam ACE_TIME_PROGMEM = { + kZoneNameAfrica_Dar_es_Salaam /*name*/, + 0xa04c47b6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Djibouti -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Djibouti[] ACE_TIME_PROGMEM = "\x01" "Djibouti"; + +const basic::Info::ZoneInfo kZoneAfrica_Djibouti ACE_TIME_PROGMEM = { + kZoneNameAfrica_Djibouti /*name*/, + 0x30ea01d4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Douala -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Douala[] ACE_TIME_PROGMEM = "\x01" "Douala"; + +const basic::Info::ZoneInfo kZoneAfrica_Douala ACE_TIME_PROGMEM = { + kZoneNameAfrica_Douala /*name*/, + 0x7a6df310 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Freetown -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Freetown[] ACE_TIME_PROGMEM = "\x01" "Freetown"; + +const basic::Info::ZoneInfo kZoneAfrica_Freetown ACE_TIME_PROGMEM = { + kZoneNameAfrica_Freetown /*name*/, + 0x6823dd64 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Gaborone -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Gaborone[] ACE_TIME_PROGMEM = "\x01" "Gaborone"; + +const basic::Info::ZoneInfo kZoneAfrica_Gaborone ACE_TIME_PROGMEM = { + kZoneNameAfrica_Gaborone /*name*/, + 0x317c0aa7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Harare -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Harare[] ACE_TIME_PROGMEM = "\x01" "Harare"; + +const basic::Info::ZoneInfo kZoneAfrica_Harare ACE_TIME_PROGMEM = { + kZoneNameAfrica_Harare /*name*/, + 0x82c39a2d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Kampala -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Kampala[] ACE_TIME_PROGMEM = "\x01" "Kampala"; + +const basic::Info::ZoneInfo kZoneAfrica_Kampala ACE_TIME_PROGMEM = { + kZoneNameAfrica_Kampala /*name*/, + 0xc1d30e31 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Kigali -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Kigali[] ACE_TIME_PROGMEM = "\x01" "Kigali"; + +const basic::Info::ZoneInfo kZoneAfrica_Kigali ACE_TIME_PROGMEM = { + kZoneNameAfrica_Kigali /*name*/, + 0x8a4dcf2b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Kinshasa -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Kinshasa[] ACE_TIME_PROGMEM = "\x01" "Kinshasa"; + +const basic::Info::ZoneInfo kZoneAfrica_Kinshasa ACE_TIME_PROGMEM = { + kZoneNameAfrica_Kinshasa /*name*/, + 0x6695d70c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Libreville -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Libreville[] ACE_TIME_PROGMEM = "\x01" "Libreville"; + +const basic::Info::ZoneInfo kZoneAfrica_Libreville ACE_TIME_PROGMEM = { + kZoneNameAfrica_Libreville /*name*/, + 0x01d96de4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Lome -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Lome[] ACE_TIME_PROGMEM = "\x01" "Lome"; + +const basic::Info::ZoneInfo kZoneAfrica_Lome ACE_TIME_PROGMEM = { + kZoneNameAfrica_Lome /*name*/, + 0xd51c3a07 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Luanda -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Luanda[] ACE_TIME_PROGMEM = "\x01" "Luanda"; + +const basic::Info::ZoneInfo kZoneAfrica_Luanda ACE_TIME_PROGMEM = { + kZoneNameAfrica_Luanda /*name*/, + 0x8d7909cf /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Lubumbashi -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Lubumbashi[] ACE_TIME_PROGMEM = "\x01" "Lubumbashi"; + +const basic::Info::ZoneInfo kZoneAfrica_Lubumbashi ACE_TIME_PROGMEM = { + kZoneNameAfrica_Lubumbashi /*name*/, + 0x6fd88566 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Lusaka -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Lusaka[] ACE_TIME_PROGMEM = "\x01" "Lusaka"; + +const basic::Info::ZoneInfo kZoneAfrica_Lusaka ACE_TIME_PROGMEM = { + kZoneNameAfrica_Lusaka /*name*/, + 0x8d82b23b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Malabo -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Malabo[] ACE_TIME_PROGMEM = "\x01" "Malabo"; + +const basic::Info::ZoneInfo kZoneAfrica_Malabo ACE_TIME_PROGMEM = { + kZoneNameAfrica_Malabo /*name*/, + 0x8e6a1906 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Maseru -> Africa/Johannesburg +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Maseru[] ACE_TIME_PROGMEM = "\x01" "Maseru"; + +const basic::Info::ZoneInfo kZoneAfrica_Maseru ACE_TIME_PROGMEM = { + kZoneNameAfrica_Maseru /*name*/, + 0x8e6e02c7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Johannesburg /*eras*/, + &kZoneAfrica_Johannesburg /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Mbabane -> Africa/Johannesburg +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Mbabane[] ACE_TIME_PROGMEM = "\x01" "Mbabane"; + +const basic::Info::ZoneInfo kZoneAfrica_Mbabane ACE_TIME_PROGMEM = { + kZoneNameAfrica_Mbabane /*name*/, + 0x5d3bdd40 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Johannesburg /*eras*/, + &kZoneAfrica_Johannesburg /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Mogadishu -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Mogadishu[] ACE_TIME_PROGMEM = "\x01" "Mogadishu"; + +const basic::Info::ZoneInfo kZoneAfrica_Mogadishu ACE_TIME_PROGMEM = { + kZoneNameAfrica_Mogadishu /*name*/, + 0x66bc159b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Niamey -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Niamey[] ACE_TIME_PROGMEM = "\x01" "Niamey"; + +const basic::Info::ZoneInfo kZoneAfrica_Niamey ACE_TIME_PROGMEM = { + kZoneNameAfrica_Niamey /*name*/, + 0x914a30fd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Nouakchott -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Nouakchott[] ACE_TIME_PROGMEM = "\x01" "Nouakchott"; + +const basic::Info::ZoneInfo kZoneAfrica_Nouakchott ACE_TIME_PROGMEM = { + kZoneNameAfrica_Nouakchott /*name*/, + 0x3dc49dba /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Ouagadougou -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Ouagadougou[] ACE_TIME_PROGMEM = "\x01" "Ouagadougou"; + +const basic::Info::ZoneInfo kZoneAfrica_Ouagadougou ACE_TIME_PROGMEM = { + kZoneNameAfrica_Ouagadougou /*name*/, + 0x04d7219a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Porto-Novo -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Porto_Novo[] ACE_TIME_PROGMEM = "\x01" "Porto-Novo"; + +const basic::Info::ZoneInfo kZoneAfrica_Porto_Novo ACE_TIME_PROGMEM = { + kZoneNameAfrica_Porto_Novo /*name*/, + 0x3d1bf95d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Timbuktu -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Timbuktu[] ACE_TIME_PROGMEM = "\x01" "Timbuktu"; + +const basic::Info::ZoneInfo kZoneAfrica_Timbuktu ACE_TIME_PROGMEM = { + kZoneNameAfrica_Timbuktu /*name*/, + 0xb164d56f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Anguilla -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Anguilla[] ACE_TIME_PROGMEM = "\x02" "Anguilla"; + +const basic::Info::ZoneInfo kZoneAmerica_Anguilla ACE_TIME_PROGMEM = { + kZoneNameAmerica_Anguilla /*name*/, + 0xafe31333 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Antigua -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Antigua[] ACE_TIME_PROGMEM = "\x02" "Antigua"; + +const basic::Info::ZoneInfo kZoneAmerica_Antigua ACE_TIME_PROGMEM = { + kZoneNameAmerica_Antigua /*name*/, + 0xc067a32f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Argentina/ComodRivadavia -> America/Argentina/Catamarca +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Argentina_ComodRivadavia[] ACE_TIME_PROGMEM = "\x02" "\x04" "ComodRivadavia"; + +const basic::Info::ZoneInfo kZoneAmerica_Argentina_ComodRivadavia ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_ComodRivadavia /*name*/, + 0x22758877 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Catamarca /*eras*/, + &kZoneAmerica_Argentina_Catamarca /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Aruba -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Aruba[] ACE_TIME_PROGMEM = "\x02" "Aruba"; + +const basic::Info::ZoneInfo kZoneAmerica_Aruba ACE_TIME_PROGMEM = { + kZoneNameAmerica_Aruba /*name*/, + 0x97cf8651 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Atikokan -> America/Panama +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Atikokan[] ACE_TIME_PROGMEM = "\x02" "Atikokan"; + +const basic::Info::ZoneInfo kZoneAmerica_Atikokan ACE_TIME_PROGMEM = { + kZoneNameAmerica_Atikokan /*name*/, + 0x81b92098 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Panama /*eras*/, + &kZoneAmerica_Panama /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Atka -> America/Adak +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Atka[] ACE_TIME_PROGMEM = "\x02" "Atka"; + +const basic::Info::ZoneInfo kZoneAmerica_Atka ACE_TIME_PROGMEM = { + kZoneNameAmerica_Atka /*name*/, + 0x97fe8f27 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Adak /*eras*/, + &kZoneAmerica_Adak /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Blanc-Sablon -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Blanc_Sablon[] ACE_TIME_PROGMEM = "\x02" "Blanc-Sablon"; + +const basic::Info::ZoneInfo kZoneAmerica_Blanc_Sablon ACE_TIME_PROGMEM = { + kZoneNameAmerica_Blanc_Sablon /*name*/, + 0x6e299892 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Buenos_Aires -> America/Argentina/Buenos_Aires +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Buenos_Aires[] ACE_TIME_PROGMEM = "\x02" "Buenos_Aires"; + +const basic::Info::ZoneInfo kZoneAmerica_Buenos_Aires ACE_TIME_PROGMEM = { + kZoneNameAmerica_Buenos_Aires /*name*/, + 0x67d79a05 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Buenos_Aires /*eras*/, + &kZoneAmerica_Argentina_Buenos_Aires /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Catamarca -> America/Argentina/Catamarca +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Catamarca[] ACE_TIME_PROGMEM = "\x02" "Catamarca"; + +const basic::Info::ZoneInfo kZoneAmerica_Catamarca ACE_TIME_PROGMEM = { + kZoneNameAmerica_Catamarca /*name*/, + 0x5036e963 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Catamarca /*eras*/, + &kZoneAmerica_Argentina_Catamarca /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Cayman -> America/Panama +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Cayman[] ACE_TIME_PROGMEM = "\x02" "Cayman"; + +const basic::Info::ZoneInfo kZoneAmerica_Cayman ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cayman /*name*/, + 0x953961df /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Panama /*eras*/, + &kZoneAmerica_Panama /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Coral_Harbour -> America/Panama +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Coral_Harbour[] ACE_TIME_PROGMEM = "\x02" "Coral_Harbour"; + +const basic::Info::ZoneInfo kZoneAmerica_Coral_Harbour ACE_TIME_PROGMEM = { + kZoneNameAmerica_Coral_Harbour /*name*/, + 0xabcb7569 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Panama /*eras*/, + &kZoneAmerica_Panama /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Cordoba -> America/Argentina/Cordoba +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Cordoba[] ACE_TIME_PROGMEM = "\x02" "Cordoba"; + +const basic::Info::ZoneInfo kZoneAmerica_Cordoba ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cordoba /*name*/, + 0x5c8a7600 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Cordoba /*eras*/, + &kZoneAmerica_Argentina_Cordoba /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Creston -> America/Phoenix +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Creston[] ACE_TIME_PROGMEM = "\x02" "Creston"; + +const basic::Info::ZoneInfo kZoneAmerica_Creston ACE_TIME_PROGMEM = { + kZoneNameAmerica_Creston /*name*/, + 0x62a70204 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Phoenix /*eras*/, + &kZoneAmerica_Phoenix /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Curacao -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Curacao[] ACE_TIME_PROGMEM = "\x02" "Curacao"; + +const basic::Info::ZoneInfo kZoneAmerica_Curacao ACE_TIME_PROGMEM = { + kZoneNameAmerica_Curacao /*name*/, + 0x6a879184 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Dominica -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Dominica[] ACE_TIME_PROGMEM = "\x02" "Dominica"; + +const basic::Info::ZoneInfo kZoneAmerica_Dominica ACE_TIME_PROGMEM = { + kZoneNameAmerica_Dominica /*name*/, + 0xcecb4c4a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Ensenada -> America/Tijuana +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Ensenada[] ACE_TIME_PROGMEM = "\x02" "Ensenada"; + +const basic::Info::ZoneInfo kZoneAmerica_Ensenada ACE_TIME_PROGMEM = { + kZoneNameAmerica_Ensenada /*name*/, + 0x7bc95445 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Tijuana /*eras*/, + &kZoneAmerica_Tijuana /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Fort_Wayne -> America/Indiana/Indianapolis +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Fort_Wayne[] ACE_TIME_PROGMEM = "\x02" "Fort_Wayne"; + +const basic::Info::ZoneInfo kZoneAmerica_Fort_Wayne ACE_TIME_PROGMEM = { + kZoneNameAmerica_Fort_Wayne /*name*/, + 0x7eaaaf24 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Indianapolis /*eras*/, + &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Godthab -> America/Nuuk +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Godthab[] ACE_TIME_PROGMEM = "\x02" "Godthab"; + +const basic::Info::ZoneInfo kZoneAmerica_Godthab ACE_TIME_PROGMEM = { + kZoneNameAmerica_Godthab /*name*/, + 0x8f7eba1f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Nuuk /*eras*/, + &kZoneAmerica_Nuuk /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Grenada -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Grenada[] ACE_TIME_PROGMEM = "\x02" "Grenada"; + +const basic::Info::ZoneInfo kZoneAmerica_Grenada ACE_TIME_PROGMEM = { + kZoneNameAmerica_Grenada /*name*/, + 0x968ce4d8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Guadeloupe -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Guadeloupe[] ACE_TIME_PROGMEM = "\x02" "Guadeloupe"; + +const basic::Info::ZoneInfo kZoneAmerica_Guadeloupe ACE_TIME_PROGMEM = { + kZoneNameAmerica_Guadeloupe /*name*/, + 0xcd1f8a31 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Indianapolis -> America/Indiana/Indianapolis +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "Indianapolis"; + +const basic::Info::ZoneInfo kZoneAmerica_Indianapolis ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indianapolis /*name*/, + 0x6a009ae1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Indianapolis /*eras*/, + &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Jujuy -> America/Argentina/Jujuy +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Jujuy[] ACE_TIME_PROGMEM = "\x02" "Jujuy"; + +const basic::Info::ZoneInfo kZoneAmerica_Jujuy ACE_TIME_PROGMEM = { + kZoneNameAmerica_Jujuy /*name*/, + 0x9873dbbd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Jujuy /*eras*/, + &kZoneAmerica_Argentina_Jujuy /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Knox_IN -> America/Indiana/Knox +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Knox_IN[] ACE_TIME_PROGMEM = "\x02" "Knox_IN"; + +const basic::Info::ZoneInfo kZoneAmerica_Knox_IN ACE_TIME_PROGMEM = { + kZoneNameAmerica_Knox_IN /*name*/, + 0xc1db9a1c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Knox /*eras*/, + &kZoneAmerica_Indiana_Knox /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Kralendijk -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Kralendijk[] ACE_TIME_PROGMEM = "\x02" "Kralendijk"; + +const basic::Info::ZoneInfo kZoneAmerica_Kralendijk ACE_TIME_PROGMEM = { + kZoneNameAmerica_Kralendijk /*name*/, + 0xe7c456c5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Louisville -> America/Kentucky/Louisville +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Louisville[] ACE_TIME_PROGMEM = "\x02" "Louisville"; + +const basic::Info::ZoneInfo kZoneAmerica_Louisville ACE_TIME_PROGMEM = { + kZoneNameAmerica_Louisville /*name*/, + 0x3dcb47ee /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Kentucky_Louisville /*eras*/, + &kZoneAmerica_Kentucky_Louisville /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Lower_Princes -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Lower_Princes[] ACE_TIME_PROGMEM = "\x02" "Lower_Princes"; + +const basic::Info::ZoneInfo kZoneAmerica_Lower_Princes ACE_TIME_PROGMEM = { + kZoneNameAmerica_Lower_Princes /*name*/, + 0x6ae45b62 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Marigot -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Marigot[] ACE_TIME_PROGMEM = "\x02" "Marigot"; + +const basic::Info::ZoneInfo kZoneAmerica_Marigot ACE_TIME_PROGMEM = { + kZoneNameAmerica_Marigot /*name*/, + 0x3dab3a59 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Mendoza -> America/Argentina/Mendoza +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Mendoza[] ACE_TIME_PROGMEM = "\x02" "Mendoza"; + +const basic::Info::ZoneInfo kZoneAmerica_Mendoza ACE_TIME_PROGMEM = { + kZoneNameAmerica_Mendoza /*name*/, + 0x46b4e054 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Mendoza /*eras*/, + &kZoneAmerica_Argentina_Mendoza /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Montreal -> America/Toronto +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Montreal[] ACE_TIME_PROGMEM = "\x02" "Montreal"; + +const basic::Info::ZoneInfo kZoneAmerica_Montreal ACE_TIME_PROGMEM = { + kZoneNameAmerica_Montreal /*name*/, + 0x203a1ea8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + &kZoneAmerica_Toronto /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Montserrat -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Montserrat[] ACE_TIME_PROGMEM = "\x02" "Montserrat"; + +const basic::Info::ZoneInfo kZoneAmerica_Montserrat ACE_TIME_PROGMEM = { + kZoneNameAmerica_Montserrat /*name*/, + 0x199b0a35 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Nassau -> America/Toronto +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Nassau[] ACE_TIME_PROGMEM = "\x02" "Nassau"; + +const basic::Info::ZoneInfo kZoneAmerica_Nassau ACE_TIME_PROGMEM = { + kZoneNameAmerica_Nassau /*name*/, + 0xaedef011 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + &kZoneAmerica_Toronto /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Nipigon -> America/Toronto +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Nipigon[] ACE_TIME_PROGMEM = "\x02" "Nipigon"; + +const basic::Info::ZoneInfo kZoneAmerica_Nipigon ACE_TIME_PROGMEM = { + kZoneNameAmerica_Nipigon /*name*/, + 0x9d2a8b1a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + &kZoneAmerica_Toronto /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Pangnirtung -> America/Iqaluit +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Pangnirtung[] ACE_TIME_PROGMEM = "\x02" "Pangnirtung"; + +const basic::Info::ZoneInfo kZoneAmerica_Pangnirtung ACE_TIME_PROGMEM = { + kZoneNameAmerica_Pangnirtung /*name*/, + 0x2d999193 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Iqaluit /*eras*/, + &kZoneAmerica_Iqaluit /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Port_of_Spain -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Port_of_Spain[] ACE_TIME_PROGMEM = "\x02" "Port_of_Spain"; + +const basic::Info::ZoneInfo kZoneAmerica_Port_of_Spain ACE_TIME_PROGMEM = { + kZoneNameAmerica_Port_of_Spain /*name*/, + 0xd8b28d59 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Porto_Acre -> America/Rio_Branco +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Porto_Acre[] ACE_TIME_PROGMEM = "\x02" "Porto_Acre"; + +const basic::Info::ZoneInfo kZoneAmerica_Porto_Acre ACE_TIME_PROGMEM = { + kZoneNameAmerica_Porto_Acre /*name*/, + 0xcce5bf54 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Rio_Branco /*eras*/, + &kZoneAmerica_Rio_Branco /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Rainy_River -> America/Winnipeg +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Rainy_River[] ACE_TIME_PROGMEM = "\x02" "Rainy_River"; + +const basic::Info::ZoneInfo kZoneAmerica_Rainy_River ACE_TIME_PROGMEM = { + kZoneNameAmerica_Rainy_River /*name*/, + 0x9cd58a10 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Winnipeg /*eras*/, + &kZoneAmerica_Winnipeg /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Rosario -> America/Argentina/Cordoba +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Rosario[] ACE_TIME_PROGMEM = "\x02" "Rosario"; + +const basic::Info::ZoneInfo kZoneAmerica_Rosario ACE_TIME_PROGMEM = { + kZoneNameAmerica_Rosario /*name*/, + 0xdf448665 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Cordoba /*eras*/, + &kZoneAmerica_Argentina_Cordoba /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Santa_Isabel -> America/Tijuana +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Santa_Isabel[] ACE_TIME_PROGMEM = "\x02" "Santa_Isabel"; + +const basic::Info::ZoneInfo kZoneAmerica_Santa_Isabel ACE_TIME_PROGMEM = { + kZoneNameAmerica_Santa_Isabel /*name*/, + 0xfd18a56c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Tijuana /*eras*/, + &kZoneAmerica_Tijuana /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Shiprock -> America/Denver +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Shiprock[] ACE_TIME_PROGMEM = "\x02" "Shiprock"; + +const basic::Info::ZoneInfo kZoneAmerica_Shiprock ACE_TIME_PROGMEM = { + kZoneNameAmerica_Shiprock /*name*/, + 0x82fb7049 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Denver /*eras*/, + &kZoneAmerica_Denver /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/St_Barthelemy -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_St_Barthelemy[] ACE_TIME_PROGMEM = "\x02" "St_Barthelemy"; + +const basic::Info::ZoneInfo kZoneAmerica_St_Barthelemy ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Barthelemy /*name*/, + 0x054e6a79 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/St_Kitts -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_St_Kitts[] ACE_TIME_PROGMEM = "\x02" "St_Kitts"; + +const basic::Info::ZoneInfo kZoneAmerica_St_Kitts ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Kitts /*name*/, + 0x04c0507b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/St_Lucia -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_St_Lucia[] ACE_TIME_PROGMEM = "\x02" "St_Lucia"; + +const basic::Info::ZoneInfo kZoneAmerica_St_Lucia ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Lucia /*name*/, + 0x04d8b3ba /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/St_Thomas -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_St_Thomas[] ACE_TIME_PROGMEM = "\x02" "St_Thomas"; + +const basic::Info::ZoneInfo kZoneAmerica_St_Thomas ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Thomas /*name*/, + 0xb1b3d778 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/St_Vincent -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_St_Vincent[] ACE_TIME_PROGMEM = "\x02" "St_Vincent"; + +const basic::Info::ZoneInfo kZoneAmerica_St_Vincent ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Vincent /*name*/, + 0x8460e523 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Thunder_Bay -> America/Toronto +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Thunder_Bay[] ACE_TIME_PROGMEM = "\x02" "Thunder_Bay"; + +const basic::Info::ZoneInfo kZoneAmerica_Thunder_Bay ACE_TIME_PROGMEM = { + kZoneNameAmerica_Thunder_Bay /*name*/, + 0xf962e71b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + &kZoneAmerica_Toronto /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Tortola -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Tortola[] ACE_TIME_PROGMEM = "\x02" "Tortola"; + +const basic::Info::ZoneInfo kZoneAmerica_Tortola ACE_TIME_PROGMEM = { + kZoneNameAmerica_Tortola /*name*/, + 0x7931462b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Virgin -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Virgin[] ACE_TIME_PROGMEM = "\x02" "Virgin"; + +const basic::Info::ZoneInfo kZoneAmerica_Virgin ACE_TIME_PROGMEM = { + kZoneNameAmerica_Virgin /*name*/, + 0xc2183ab5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Yellowknife -> America/Edmonton +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Yellowknife[] ACE_TIME_PROGMEM = "\x02" "Yellowknife"; + +const basic::Info::ZoneInfo kZoneAmerica_Yellowknife ACE_TIME_PROGMEM = { + kZoneNameAmerica_Yellowknife /*name*/, + 0x0f76c76f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Edmonton /*eras*/, + &kZoneAmerica_Edmonton /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Antarctica/DumontDUrville -> Pacific/Port_Moresby +//--------------------------------------------------------------------------- + +static const char kZoneNameAntarctica_DumontDUrville[] ACE_TIME_PROGMEM = "\x03" "DumontDUrville"; + +const basic::Info::ZoneInfo kZoneAntarctica_DumontDUrville ACE_TIME_PROGMEM = { + kZoneNameAntarctica_DumontDUrville /*name*/, + 0x5a3c656c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Port_Moresby /*eras*/, + &kZonePacific_Port_Moresby /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Antarctica/McMurdo -> Pacific/Auckland +//--------------------------------------------------------------------------- + +static const char kZoneNameAntarctica_McMurdo[] ACE_TIME_PROGMEM = "\x03" "McMurdo"; + +const basic::Info::ZoneInfo kZoneAntarctica_McMurdo ACE_TIME_PROGMEM = { + kZoneNameAntarctica_McMurdo /*name*/, + 0x6eeb5585 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Auckland /*eras*/, + &kZonePacific_Auckland /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Antarctica/South_Pole -> Pacific/Auckland +//--------------------------------------------------------------------------- + +static const char kZoneNameAntarctica_South_Pole[] ACE_TIME_PROGMEM = "\x03" "South_Pole"; + +const basic::Info::ZoneInfo kZoneAntarctica_South_Pole ACE_TIME_PROGMEM = { + kZoneNameAntarctica_South_Pole /*name*/, + 0xcd96b290 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Auckland /*eras*/, + &kZonePacific_Auckland /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Antarctica/Syowa -> Asia/Riyadh +//--------------------------------------------------------------------------- + +static const char kZoneNameAntarctica_Syowa[] ACE_TIME_PROGMEM = "\x03" "Syowa"; + +const basic::Info::ZoneInfo kZoneAntarctica_Syowa ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Syowa /*name*/, + 0xe330c7e1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Riyadh /*eras*/, + &kZoneAsia_Riyadh /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Arctic/Longyearbyen -> Europe/Berlin +//--------------------------------------------------------------------------- + +static const char kZoneNameArctic_Longyearbyen[] ACE_TIME_PROGMEM = "Arctic/Longyearbyen"; + +const basic::Info::ZoneInfo kZoneArctic_Longyearbyen ACE_TIME_PROGMEM = { + kZoneNameArctic_Longyearbyen /*name*/, + 0xd23e7859 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + &kZoneEurope_Berlin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Aden -> Asia/Riyadh +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Aden[] ACE_TIME_PROGMEM = "\x05" "Aden"; + +const basic::Info::ZoneInfo kZoneAsia_Aden ACE_TIME_PROGMEM = { + kZoneNameAsia_Aden /*name*/, + 0x1fa7084a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Riyadh /*eras*/, + &kZoneAsia_Riyadh /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Ashkhabad -> Asia/Ashgabat +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Ashkhabad[] ACE_TIME_PROGMEM = "\x05" "Ashkhabad"; + +const basic::Info::ZoneInfo kZoneAsia_Ashkhabad ACE_TIME_PROGMEM = { + kZoneNameAsia_Ashkhabad /*name*/, + 0x15454f09 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ashgabat /*eras*/, + &kZoneAsia_Ashgabat /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Bahrain -> Asia/Qatar +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Bahrain[] ACE_TIME_PROGMEM = "\x05" "Bahrain"; + +const basic::Info::ZoneInfo kZoneAsia_Bahrain ACE_TIME_PROGMEM = { + kZoneNameAsia_Bahrain /*name*/, + 0x9d078487 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Qatar /*eras*/, + &kZoneAsia_Qatar /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Brunei -> Asia/Kuching +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Brunei[] ACE_TIME_PROGMEM = "\x05" "Brunei"; + +const basic::Info::ZoneInfo kZoneAsia_Brunei ACE_TIME_PROGMEM = { + kZoneNameAsia_Brunei /*name*/, + 0xa8e595f7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kuching /*eras*/, + &kZoneAsia_Kuching /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Calcutta -> Asia/Kolkata +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Calcutta[] ACE_TIME_PROGMEM = "\x05" "Calcutta"; + +const basic::Info::ZoneInfo kZoneAsia_Calcutta ACE_TIME_PROGMEM = { + kZoneNameAsia_Calcutta /*name*/, + 0x328a44c3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kolkata /*eras*/, + &kZoneAsia_Kolkata /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Choibalsan -> Asia/Ulaanbaatar +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Choibalsan[] ACE_TIME_PROGMEM = "\x05" "Choibalsan"; + +const basic::Info::ZoneInfo kZoneAsia_Choibalsan ACE_TIME_PROGMEM = { + kZoneNameAsia_Choibalsan /*name*/, + 0x928aa4a6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ulaanbaatar /*eras*/, + &kZoneAsia_Ulaanbaatar /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Chongqing -> Asia/Shanghai +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Chongqing[] ACE_TIME_PROGMEM = "\x05" "Chongqing"; + +const basic::Info::ZoneInfo kZoneAsia_Chongqing ACE_TIME_PROGMEM = { + kZoneNameAsia_Chongqing /*name*/, + 0xf937fb90 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Shanghai /*eras*/, + &kZoneAsia_Shanghai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Chungking -> Asia/Shanghai +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Chungking[] ACE_TIME_PROGMEM = "\x05" "Chungking"; + +const basic::Info::ZoneInfo kZoneAsia_Chungking ACE_TIME_PROGMEM = { + kZoneNameAsia_Chungking /*name*/, + 0xc7121dd0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Shanghai /*eras*/, + &kZoneAsia_Shanghai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Dacca -> Asia/Dhaka +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Dacca[] ACE_TIME_PROGMEM = "\x05" "Dacca"; + +const basic::Info::ZoneInfo kZoneAsia_Dacca ACE_TIME_PROGMEM = { + kZoneNameAsia_Dacca /*name*/, + 0x14bcac5e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dhaka /*eras*/, + &kZoneAsia_Dhaka /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Harbin -> Asia/Shanghai +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Harbin[] ACE_TIME_PROGMEM = "\x05" "Harbin"; + +const basic::Info::ZoneInfo kZoneAsia_Harbin ACE_TIME_PROGMEM = { + kZoneNameAsia_Harbin /*name*/, + 0xb5af1186 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Shanghai /*eras*/, + &kZoneAsia_Shanghai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Istanbul -> Europe/Istanbul +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Istanbul[] ACE_TIME_PROGMEM = "\x05" "Istanbul"; + +const basic::Info::ZoneInfo kZoneAsia_Istanbul ACE_TIME_PROGMEM = { + kZoneNameAsia_Istanbul /*name*/, + 0x382e7894 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Istanbul /*eras*/, + &kZoneEurope_Istanbul /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Kashgar -> Asia/Urumqi +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Kashgar[] ACE_TIME_PROGMEM = "\x05" "Kashgar"; + +const basic::Info::ZoneInfo kZoneAsia_Kashgar ACE_TIME_PROGMEM = { + kZoneNameAsia_Kashgar /*name*/, + 0x52955193 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Urumqi /*eras*/, + &kZoneAsia_Urumqi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Katmandu -> Asia/Kathmandu +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Katmandu[] ACE_TIME_PROGMEM = "\x05" "Katmandu"; + +const basic::Info::ZoneInfo kZoneAsia_Katmandu ACE_TIME_PROGMEM = { + kZoneNameAsia_Katmandu /*name*/, + 0xa7ec12c7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kathmandu /*eras*/, + &kZoneAsia_Kathmandu /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Kuala_Lumpur -> Asia/Singapore +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Kuala_Lumpur[] ACE_TIME_PROGMEM = "\x05" "Kuala_Lumpur"; + +const basic::Info::ZoneInfo kZoneAsia_Kuala_Lumpur ACE_TIME_PROGMEM = { + kZoneNameAsia_Kuala_Lumpur /*name*/, + 0x014763c4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Singapore /*eras*/, + &kZoneAsia_Singapore /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Kuwait -> Asia/Riyadh +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Kuwait[] ACE_TIME_PROGMEM = "\x05" "Kuwait"; + +const basic::Info::ZoneInfo kZoneAsia_Kuwait ACE_TIME_PROGMEM = { + kZoneNameAsia_Kuwait /*name*/, + 0xbe1b2f27 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Riyadh /*eras*/, + &kZoneAsia_Riyadh /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Macao -> Asia/Macau +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Macao[] ACE_TIME_PROGMEM = "\x05" "Macao"; + +const basic::Info::ZoneInfo kZoneAsia_Macao ACE_TIME_PROGMEM = { + kZoneNameAsia_Macao /*name*/, + 0x155f88b3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Macau /*eras*/, + &kZoneAsia_Macau /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Muscat -> Asia/Dubai +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Muscat[] ACE_TIME_PROGMEM = "\x05" "Muscat"; + +const basic::Info::ZoneInfo kZoneAsia_Muscat ACE_TIME_PROGMEM = { + kZoneNameAsia_Muscat /*name*/, + 0xc2c3565f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dubai /*eras*/, + &kZoneAsia_Dubai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Phnom_Penh -> Asia/Bangkok +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Phnom_Penh[] ACE_TIME_PROGMEM = "\x05" "Phnom_Penh"; + +const basic::Info::ZoneInfo kZoneAsia_Phnom_Penh ACE_TIME_PROGMEM = { + kZoneNameAsia_Phnom_Penh /*name*/, + 0xc224945e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Bangkok /*eras*/, + &kZoneAsia_Bangkok /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Rangoon -> Asia/Yangon +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Rangoon[] ACE_TIME_PROGMEM = "\x05" "Rangoon"; + +const basic::Info::ZoneInfo kZoneAsia_Rangoon ACE_TIME_PROGMEM = { + kZoneNameAsia_Rangoon /*name*/, + 0x6d1217c6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yangon /*eras*/, + &kZoneAsia_Yangon /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Saigon -> Asia/Ho_Chi_Minh +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Saigon[] ACE_TIME_PROGMEM = "\x05" "Saigon"; + +const basic::Info::ZoneInfo kZoneAsia_Saigon ACE_TIME_PROGMEM = { + kZoneNameAsia_Saigon /*name*/, + 0xcf52f713 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ho_Chi_Minh /*eras*/, + &kZoneAsia_Ho_Chi_Minh /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Tel_Aviv -> Asia/Jerusalem +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Tel_Aviv[] ACE_TIME_PROGMEM = "\x05" "Tel_Aviv"; + +const basic::Info::ZoneInfo kZoneAsia_Tel_Aviv ACE_TIME_PROGMEM = { + kZoneNameAsia_Tel_Aviv /*name*/, + 0x166d7c2c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Jerusalem /*eras*/, + &kZoneAsia_Jerusalem /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Thimbu -> Asia/Thimphu +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Thimbu[] ACE_TIME_PROGMEM = "\x05" "Thimbu"; + +const basic::Info::ZoneInfo kZoneAsia_Thimbu ACE_TIME_PROGMEM = { + kZoneNameAsia_Thimbu /*name*/, + 0xd226e31b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Thimphu /*eras*/, + &kZoneAsia_Thimphu /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Ujung_Pandang -> Asia/Makassar +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Ujung_Pandang[] ACE_TIME_PROGMEM = "\x05" "Ujung_Pandang"; + +const basic::Info::ZoneInfo kZoneAsia_Ujung_Pandang ACE_TIME_PROGMEM = { + kZoneNameAsia_Ujung_Pandang /*name*/, + 0x5d001eb3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Makassar /*eras*/, + &kZoneAsia_Makassar /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Ulan_Bator -> Asia/Ulaanbaatar +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Ulan_Bator[] ACE_TIME_PROGMEM = "\x05" "Ulan_Bator"; + +const basic::Info::ZoneInfo kZoneAsia_Ulan_Bator ACE_TIME_PROGMEM = { + kZoneNameAsia_Ulan_Bator /*name*/, + 0x394db4d9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ulaanbaatar /*eras*/, + &kZoneAsia_Ulaanbaatar /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Vientiane -> Asia/Bangkok +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Vientiane[] ACE_TIME_PROGMEM = "\x05" "Vientiane"; + +const basic::Info::ZoneInfo kZoneAsia_Vientiane ACE_TIME_PROGMEM = { + kZoneNameAsia_Vientiane /*name*/, + 0x89d68d75 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Bangkok /*eras*/, + &kZoneAsia_Bangkok /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Atlantic/Faeroe -> Atlantic/Faroe +//--------------------------------------------------------------------------- + +static const char kZoneNameAtlantic_Faeroe[] ACE_TIME_PROGMEM = "\x06" "Faeroe"; + +const basic::Info::ZoneInfo kZoneAtlantic_Faeroe ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Faeroe /*name*/, + 0x031ec516 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Faroe /*eras*/, + &kZoneAtlantic_Faroe /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Atlantic/Jan_Mayen -> Europe/Berlin +//--------------------------------------------------------------------------- + +static const char kZoneNameAtlantic_Jan_Mayen[] ACE_TIME_PROGMEM = "\x06" "Jan_Mayen"; + +const basic::Info::ZoneInfo kZoneAtlantic_Jan_Mayen ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Jan_Mayen /*name*/, + 0x5a7535b6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + &kZoneEurope_Berlin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Atlantic/Reykjavik -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAtlantic_Reykjavik[] ACE_TIME_PROGMEM = "\x06" "Reykjavik"; + +const basic::Info::ZoneInfo kZoneAtlantic_Reykjavik ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Reykjavik /*name*/, + 0x1c2b4f74 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Atlantic/St_Helena -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAtlantic_St_Helena[] ACE_TIME_PROGMEM = "\x06" "St_Helena"; + +const basic::Info::ZoneInfo kZoneAtlantic_St_Helena ACE_TIME_PROGMEM = { + kZoneNameAtlantic_St_Helena /*name*/, + 0x451fc5f7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/ACT -> Australia/Sydney +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_ACT[] ACE_TIME_PROGMEM = "\x07" "ACT"; + +const basic::Info::ZoneInfo kZoneAustralia_ACT ACE_TIME_PROGMEM = { + kZoneNameAustralia_ACT /*name*/, + 0x8a970eb2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Sydney /*eras*/, + &kZoneAustralia_Sydney /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Canberra -> Australia/Sydney +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Canberra[] ACE_TIME_PROGMEM = "\x07" "Canberra"; + +const basic::Info::ZoneInfo kZoneAustralia_Canberra ACE_TIME_PROGMEM = { + kZoneNameAustralia_Canberra /*name*/, + 0x2a09ae58 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Sydney /*eras*/, + &kZoneAustralia_Sydney /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Currie -> Australia/Hobart +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Currie[] ACE_TIME_PROGMEM = "\x07" "Currie"; + +const basic::Info::ZoneInfo kZoneAustralia_Currie ACE_TIME_PROGMEM = { + kZoneNameAustralia_Currie /*name*/, + 0x278b6a24 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Hobart /*eras*/, + &kZoneAustralia_Hobart /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/LHI -> Australia/Lord_Howe +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_LHI[] ACE_TIME_PROGMEM = "\x07" "LHI"; + +const basic::Info::ZoneInfo kZoneAustralia_LHI ACE_TIME_PROGMEM = { + kZoneNameAustralia_LHI /*name*/, + 0x8a973e17 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Lord_Howe /*eras*/, + &kZoneAustralia_Lord_Howe /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/NSW -> Australia/Sydney +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_NSW[] ACE_TIME_PROGMEM = "\x07" "NSW"; + +const basic::Info::ZoneInfo kZoneAustralia_NSW ACE_TIME_PROGMEM = { + kZoneNameAustralia_NSW /*name*/, + 0x8a974812 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Sydney /*eras*/, + &kZoneAustralia_Sydney /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/North -> Australia/Darwin +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_North[] ACE_TIME_PROGMEM = "\x07" "North"; + +const basic::Info::ZoneInfo kZoneAustralia_North ACE_TIME_PROGMEM = { + kZoneNameAustralia_North /*name*/, + 0x8d997165 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Darwin /*eras*/, + &kZoneAustralia_Darwin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Queensland -> Australia/Brisbane +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Queensland[] ACE_TIME_PROGMEM = "\x07" "Queensland"; + +const basic::Info::ZoneInfo kZoneAustralia_Queensland ACE_TIME_PROGMEM = { + kZoneNameAustralia_Queensland /*name*/, + 0xd326ed0a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Brisbane /*eras*/, + &kZoneAustralia_Brisbane /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/South -> Australia/Adelaide +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_South[] ACE_TIME_PROGMEM = "\x07" "South"; + +const basic::Info::ZoneInfo kZoneAustralia_South ACE_TIME_PROGMEM = { + kZoneNameAustralia_South /*name*/, + 0x8df3f8ad /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Adelaide /*eras*/, + &kZoneAustralia_Adelaide /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Tasmania -> Australia/Hobart +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Tasmania[] ACE_TIME_PROGMEM = "\x07" "Tasmania"; + +const basic::Info::ZoneInfo kZoneAustralia_Tasmania ACE_TIME_PROGMEM = { + kZoneNameAustralia_Tasmania /*name*/, + 0xe6d76648 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Hobart /*eras*/, + &kZoneAustralia_Hobart /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Victoria -> Australia/Melbourne +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Victoria[] ACE_TIME_PROGMEM = "\x07" "Victoria"; + +const basic::Info::ZoneInfo kZoneAustralia_Victoria ACE_TIME_PROGMEM = { + kZoneNameAustralia_Victoria /*name*/, + 0x0260d5db /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Melbourne /*eras*/, + &kZoneAustralia_Melbourne /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/West -> Australia/Perth +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_West[] ACE_TIME_PROGMEM = "\x07" "West"; + +const basic::Info::ZoneInfo kZoneAustralia_West ACE_TIME_PROGMEM = { + kZoneNameAustralia_West /*name*/, + 0xdd858a5d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Perth /*eras*/, + &kZoneAustralia_Perth /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Yancowinna -> Australia/Broken_Hill +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Yancowinna[] ACE_TIME_PROGMEM = "\x07" "Yancowinna"; + +const basic::Info::ZoneInfo kZoneAustralia_Yancowinna ACE_TIME_PROGMEM = { + kZoneNameAustralia_Yancowinna /*name*/, + 0x90bac131 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Broken_Hill /*eras*/, + &kZoneAustralia_Broken_Hill /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Brazil/Acre -> America/Rio_Branco +//--------------------------------------------------------------------------- + +static const char kZoneNameBrazil_Acre[] ACE_TIME_PROGMEM = "\x08" "Acre"; + +const basic::Info::ZoneInfo kZoneBrazil_Acre ACE_TIME_PROGMEM = { + kZoneNameBrazil_Acre /*name*/, + 0x66934f93 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Rio_Branco /*eras*/, + &kZoneAmerica_Rio_Branco /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Brazil/DeNoronha -> America/Noronha +//--------------------------------------------------------------------------- + +static const char kZoneNameBrazil_DeNoronha[] ACE_TIME_PROGMEM = "\x08" "DeNoronha"; + +const basic::Info::ZoneInfo kZoneBrazil_DeNoronha ACE_TIME_PROGMEM = { + kZoneNameBrazil_DeNoronha /*name*/, + 0x9b4cb496 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Noronha /*eras*/, + &kZoneAmerica_Noronha /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Brazil/East -> America/Sao_Paulo +//--------------------------------------------------------------------------- + +static const char kZoneNameBrazil_East[] ACE_TIME_PROGMEM = "\x08" "East"; + +const basic::Info::ZoneInfo kZoneBrazil_East ACE_TIME_PROGMEM = { + kZoneNameBrazil_East /*name*/, + 0x669578c5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Sao_Paulo /*eras*/, + &kZoneAmerica_Sao_Paulo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Brazil/West -> America/Manaus +//--------------------------------------------------------------------------- + +static const char kZoneNameBrazil_West[] ACE_TIME_PROGMEM = "\x08" "West"; + +const basic::Info::ZoneInfo kZoneBrazil_West ACE_TIME_PROGMEM = { + kZoneNameBrazil_West /*name*/, + 0x669f689b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Manaus /*eras*/, + &kZoneAmerica_Manaus /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: CET -> Europe/Brussels +//--------------------------------------------------------------------------- + +static const char kZoneNameCET[] ACE_TIME_PROGMEM = "CET"; + +const basic::Info::ZoneInfo kZoneCET ACE_TIME_PROGMEM = { + kZoneNameCET /*name*/, + 0x0b87d921 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Brussels /*eras*/, + &kZoneEurope_Brussels /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: CST6CDT -> America/Chicago +//--------------------------------------------------------------------------- + +static const char kZoneNameCST6CDT[] ACE_TIME_PROGMEM = "CST6CDT"; + +const basic::Info::ZoneInfo kZoneCST6CDT ACE_TIME_PROGMEM = { + kZoneNameCST6CDT /*name*/, + 0xf0e87d00 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Chicago /*eras*/, + &kZoneAmerica_Chicago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Atlantic -> America/Halifax +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Atlantic[] ACE_TIME_PROGMEM = "\x09" "Atlantic"; + +const basic::Info::ZoneInfo kZoneCanada_Atlantic ACE_TIME_PROGMEM = { + kZoneNameCanada_Atlantic /*name*/, + 0x536b119c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Halifax /*eras*/, + &kZoneAmerica_Halifax /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Central -> America/Winnipeg +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Central[] ACE_TIME_PROGMEM = "\x09" "Central"; + +const basic::Info::ZoneInfo kZoneCanada_Central ACE_TIME_PROGMEM = { + kZoneNameCanada_Central /*name*/, + 0x626710f5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Winnipeg /*eras*/, + &kZoneAmerica_Winnipeg /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Eastern -> America/Toronto +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Eastern[] ACE_TIME_PROGMEM = "\x09" "Eastern"; + +const basic::Info::ZoneInfo kZoneCanada_Eastern ACE_TIME_PROGMEM = { + kZoneNameCanada_Eastern /*name*/, + 0xf3612d5e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + &kZoneAmerica_Toronto /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Mountain -> America/Edmonton +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Mountain[] ACE_TIME_PROGMEM = "\x09" "Mountain"; + +const basic::Info::ZoneInfo kZoneCanada_Mountain ACE_TIME_PROGMEM = { + kZoneNameCanada_Mountain /*name*/, + 0xfb8a8217 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Edmonton /*eras*/, + &kZoneAmerica_Edmonton /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Newfoundland -> America/St_Johns +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Newfoundland[] ACE_TIME_PROGMEM = "\x09" "Newfoundland"; + +const basic::Info::ZoneInfo kZoneCanada_Newfoundland ACE_TIME_PROGMEM = { + kZoneNameCanada_Newfoundland /*name*/, + 0xb396e991 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_St_Johns /*eras*/, + &kZoneAmerica_St_Johns /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Pacific -> America/Vancouver +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Pacific[] ACE_TIME_PROGMEM = "\x09" "Pacific"; + +const basic::Info::ZoneInfo kZoneCanada_Pacific ACE_TIME_PROGMEM = { + kZoneNameCanada_Pacific /*name*/, + 0x40fa3c7b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Vancouver /*eras*/, + &kZoneAmerica_Vancouver /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Saskatchewan -> America/Regina +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Saskatchewan[] ACE_TIME_PROGMEM = "\x09" "Saskatchewan"; + +const basic::Info::ZoneInfo kZoneCanada_Saskatchewan ACE_TIME_PROGMEM = { + kZoneNameCanada_Saskatchewan /*name*/, + 0x77311f49 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Regina /*eras*/, + &kZoneAmerica_Regina /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Yukon -> America/Whitehorse +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Yukon[] ACE_TIME_PROGMEM = "\x09" "Yukon"; + +const basic::Info::ZoneInfo kZoneCanada_Yukon ACE_TIME_PROGMEM = { + kZoneNameCanada_Yukon /*name*/, + 0x78dd35c2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Whitehorse /*eras*/, + &kZoneAmerica_Whitehorse /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Chile/Continental -> America/Santiago +//--------------------------------------------------------------------------- + +static const char kZoneNameChile_Continental[] ACE_TIME_PROGMEM = "Chile/Continental"; + +const basic::Info::ZoneInfo kZoneChile_Continental ACE_TIME_PROGMEM = { + kZoneNameChile_Continental /*name*/, + 0x7e2bdb18 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Santiago /*eras*/, + &kZoneAmerica_Santiago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Chile/EasterIsland -> Pacific/Easter +//--------------------------------------------------------------------------- + +static const char kZoneNameChile_EasterIsland[] ACE_TIME_PROGMEM = "Chile/EasterIsland"; + +const basic::Info::ZoneInfo kZoneChile_EasterIsland ACE_TIME_PROGMEM = { + kZoneNameChile_EasterIsland /*name*/, + 0xb0982af8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Easter /*eras*/, + &kZonePacific_Easter /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Cuba -> America/Havana +//--------------------------------------------------------------------------- + +static const char kZoneNameCuba[] ACE_TIME_PROGMEM = "Cuba"; + +const basic::Info::ZoneInfo kZoneCuba ACE_TIME_PROGMEM = { + kZoneNameCuba /*name*/, + 0x7c83cba0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Havana /*eras*/, + &kZoneAmerica_Havana /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: EET -> Europe/Athens +//--------------------------------------------------------------------------- + +static const char kZoneNameEET[] ACE_TIME_PROGMEM = "EET"; + +const basic::Info::ZoneInfo kZoneEET ACE_TIME_PROGMEM = { + kZoneNameEET /*name*/, + 0x0b87e1a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Athens /*eras*/, + &kZoneEurope_Athens /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: EST -> America/Panama +//--------------------------------------------------------------------------- + +static const char kZoneNameEST[] ACE_TIME_PROGMEM = "EST"; + +const basic::Info::ZoneInfo kZoneEST ACE_TIME_PROGMEM = { + kZoneNameEST /*name*/, + 0x0b87e371 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Panama /*eras*/, + &kZoneAmerica_Panama /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: EST5EDT -> America/New_York +//--------------------------------------------------------------------------- + +static const char kZoneNameEST5EDT[] ACE_TIME_PROGMEM = "EST5EDT"; + +const basic::Info::ZoneInfo kZoneEST5EDT ACE_TIME_PROGMEM = { + kZoneNameEST5EDT /*name*/, + 0x8adc72a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_New_York /*eras*/, + &kZoneAmerica_New_York /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Egypt -> Africa/Cairo +//--------------------------------------------------------------------------- + +static const char kZoneNameEgypt[] ACE_TIME_PROGMEM = "Egypt"; + +const basic::Info::ZoneInfo kZoneEgypt ACE_TIME_PROGMEM = { + kZoneNameEgypt /*name*/, + 0x0d1a278e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Cairo /*eras*/, + &kZoneAfrica_Cairo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Eire -> Europe/Dublin +//--------------------------------------------------------------------------- + +static const char kZoneNameEire[] ACE_TIME_PROGMEM = "Eire"; + +const basic::Info::ZoneInfo kZoneEire ACE_TIME_PROGMEM = { + kZoneNameEire /*name*/, + 0x7c84b36a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Dublin /*eras*/, + &kZoneEurope_Dublin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/GMT+0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_GMT_PLUS_0[] ACE_TIME_PROGMEM = "\x0a" "GMT+0"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_0 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_0 /*name*/, + 0x9d13da13 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/GMT-0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_GMT_0[] ACE_TIME_PROGMEM = "\x0a" "GMT-0"; + +const basic::Info::ZoneInfo kZoneEtc_GMT_0 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_0 /*name*/, + 0x9d13da55 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/GMT0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_GMT0[] ACE_TIME_PROGMEM = "\x0a" "GMT0"; + +const basic::Info::ZoneInfo kZoneEtc_GMT0 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT0 /*name*/, + 0xf53ea988 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/Greenwich -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_Greenwich[] ACE_TIME_PROGMEM = "\x0a" "Greenwich"; + +const basic::Info::ZoneInfo kZoneEtc_Greenwich ACE_TIME_PROGMEM = { + kZoneNameEtc_Greenwich /*name*/, + 0x26daa98c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/UCT -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_UCT[] ACE_TIME_PROGMEM = "\x0a" "UCT"; + +const basic::Info::ZoneInfo kZoneEtc_UCT ACE_TIME_PROGMEM = { + kZoneNameEtc_UCT /*name*/, + 0xd8e3189c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/Universal -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_Universal[] ACE_TIME_PROGMEM = "\x0a" "Universal"; + +const basic::Info::ZoneInfo kZoneEtc_Universal ACE_TIME_PROGMEM = { + kZoneNameEtc_Universal /*name*/, + 0x2f8cb9a9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/Zulu -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_Zulu[] ACE_TIME_PROGMEM = "\x0a" "Zulu"; + +const basic::Info::ZoneInfo kZoneEtc_Zulu ACE_TIME_PROGMEM = { + kZoneNameEtc_Zulu /*name*/, + 0xf549c240 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Amsterdam -> Europe/Brussels +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Amsterdam[] ACE_TIME_PROGMEM = "\x0b" "Amsterdam"; + +const basic::Info::ZoneInfo kZoneEurope_Amsterdam ACE_TIME_PROGMEM = { + kZoneNameEurope_Amsterdam /*name*/, + 0x109395c2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Brussels /*eras*/, + &kZoneEurope_Brussels /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Belfast -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Belfast[] ACE_TIME_PROGMEM = "\x0b" "Belfast"; + +const basic::Info::ZoneInfo kZoneEurope_Belfast ACE_TIME_PROGMEM = { + kZoneNameEurope_Belfast /*name*/, + 0xd07dd1e5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Bratislava -> Europe/Prague +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Bratislava[] ACE_TIME_PROGMEM = "\x0b" "Bratislava"; + +const basic::Info::ZoneInfo kZoneEurope_Bratislava ACE_TIME_PROGMEM = { + kZoneNameEurope_Bratislava /*name*/, + 0xda493bed /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Prague /*eras*/, + &kZoneEurope_Prague /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Busingen -> Europe/Zurich +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Busingen[] ACE_TIME_PROGMEM = "\x0b" "Busingen"; + +const basic::Info::ZoneInfo kZoneEurope_Busingen ACE_TIME_PROGMEM = { + kZoneNameEurope_Busingen /*name*/, + 0xc06d2cdf /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Zurich /*eras*/, + &kZoneEurope_Zurich /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Copenhagen -> Europe/Berlin +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Copenhagen[] ACE_TIME_PROGMEM = "\x0b" "Copenhagen"; + +const basic::Info::ZoneInfo kZoneEurope_Copenhagen ACE_TIME_PROGMEM = { + kZoneNameEurope_Copenhagen /*name*/, + 0xe0ed30bc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + &kZoneEurope_Berlin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Guernsey -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Guernsey[] ACE_TIME_PROGMEM = "\x0b" "Guernsey"; + +const basic::Info::ZoneInfo kZoneEurope_Guernsey ACE_TIME_PROGMEM = { + kZoneNameEurope_Guernsey /*name*/, + 0x3db12c16 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Isle_of_Man -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Isle_of_Man[] ACE_TIME_PROGMEM = "\x0b" "Isle_of_Man"; + +const basic::Info::ZoneInfo kZoneEurope_Isle_of_Man ACE_TIME_PROGMEM = { + kZoneNameEurope_Isle_of_Man /*name*/, + 0xeaf84580 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Jersey -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Jersey[] ACE_TIME_PROGMEM = "\x0b" "Jersey"; + +const basic::Info::ZoneInfo kZoneEurope_Jersey ACE_TIME_PROGMEM = { + kZoneNameEurope_Jersey /*name*/, + 0x570dae76 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Kiev -> Europe/Kyiv +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Kiev[] ACE_TIME_PROGMEM = "\x0b" "Kiev"; + +const basic::Info::ZoneInfo kZoneEurope_Kiev ACE_TIME_PROGMEM = { + kZoneNameEurope_Kiev /*name*/, + 0xa2c19eb3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kyiv /*eras*/, + &kZoneEurope_Kyiv /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Ljubljana -> Europe/Belgrade +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Ljubljana[] ACE_TIME_PROGMEM = "\x0b" "Ljubljana"; + +const basic::Info::ZoneInfo kZoneEurope_Ljubljana ACE_TIME_PROGMEM = { + kZoneNameEurope_Ljubljana /*name*/, + 0xbd98cdb7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + &kZoneEurope_Belgrade /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Luxembourg -> Europe/Brussels +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Luxembourg[] ACE_TIME_PROGMEM = "\x0b" "Luxembourg"; + +const basic::Info::ZoneInfo kZoneEurope_Luxembourg ACE_TIME_PROGMEM = { + kZoneNameEurope_Luxembourg /*name*/, + 0x1f8bc6ce /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Brussels /*eras*/, + &kZoneEurope_Brussels /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Mariehamn -> Europe/Helsinki +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Mariehamn[] ACE_TIME_PROGMEM = "\x0b" "Mariehamn"; + +const basic::Info::ZoneInfo kZoneEurope_Mariehamn ACE_TIME_PROGMEM = { + kZoneNameEurope_Mariehamn /*name*/, + 0x0caa6496 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Helsinki /*eras*/, + &kZoneEurope_Helsinki /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Monaco -> Europe/Paris +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Monaco[] ACE_TIME_PROGMEM = "\x0b" "Monaco"; + +const basic::Info::ZoneInfo kZoneEurope_Monaco ACE_TIME_PROGMEM = { + kZoneNameEurope_Monaco /*name*/, + 0x5ebf9f01 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Paris /*eras*/, + &kZoneEurope_Paris /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Nicosia -> Asia/Nicosia +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Nicosia[] ACE_TIME_PROGMEM = "\x0b" "Nicosia"; + +const basic::Info::ZoneInfo kZoneEurope_Nicosia ACE_TIME_PROGMEM = { + kZoneNameEurope_Nicosia /*name*/, + 0x74efab8a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Nicosia /*eras*/, + &kZoneAsia_Nicosia /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Oslo -> Europe/Berlin +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Oslo[] ACE_TIME_PROGMEM = "\x0b" "Oslo"; + +const basic::Info::ZoneInfo kZoneEurope_Oslo ACE_TIME_PROGMEM = { + kZoneNameEurope_Oslo /*name*/, + 0xa2c3fba1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + &kZoneEurope_Berlin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Podgorica -> Europe/Belgrade +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Podgorica[] ACE_TIME_PROGMEM = "\x0b" "Podgorica"; + +const basic::Info::ZoneInfo kZoneEurope_Podgorica ACE_TIME_PROGMEM = { + kZoneNameEurope_Podgorica /*name*/, + 0x1c1a499c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + &kZoneEurope_Belgrade /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/San_Marino -> Europe/Rome +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_San_Marino[] ACE_TIME_PROGMEM = "\x0b" "San_Marino"; + +const basic::Info::ZoneInfo kZoneEurope_San_Marino ACE_TIME_PROGMEM = { + kZoneNameEurope_San_Marino /*name*/, + 0xcef7724b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Rome /*eras*/, + &kZoneEurope_Rome /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Sarajevo -> Europe/Belgrade +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Sarajevo[] ACE_TIME_PROGMEM = "\x0b" "Sarajevo"; + +const basic::Info::ZoneInfo kZoneEurope_Sarajevo ACE_TIME_PROGMEM = { + kZoneNameEurope_Sarajevo /*name*/, + 0x6a576c3f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + &kZoneEurope_Belgrade /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Skopje -> Europe/Belgrade +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Skopje[] ACE_TIME_PROGMEM = "\x0b" "Skopje"; + +const basic::Info::ZoneInfo kZoneEurope_Skopje ACE_TIME_PROGMEM = { + kZoneNameEurope_Skopje /*name*/, + 0x6c76fdd0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + &kZoneEurope_Belgrade /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Stockholm -> Europe/Berlin +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Stockholm[] ACE_TIME_PROGMEM = "\x0b" "Stockholm"; + +const basic::Info::ZoneInfo kZoneEurope_Stockholm ACE_TIME_PROGMEM = { + kZoneNameEurope_Stockholm /*name*/, + 0x5bf6fbb8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + &kZoneEurope_Berlin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Tiraspol -> Europe/Chisinau +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Tiraspol[] ACE_TIME_PROGMEM = "\x0b" "Tiraspol"; + +const basic::Info::ZoneInfo kZoneEurope_Tiraspol ACE_TIME_PROGMEM = { + kZoneNameEurope_Tiraspol /*name*/, + 0xbe704472 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Chisinau /*eras*/, + &kZoneEurope_Chisinau /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Uzhgorod -> Europe/Kyiv +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Uzhgorod[] ACE_TIME_PROGMEM = "\x0b" "Uzhgorod"; + +const basic::Info::ZoneInfo kZoneEurope_Uzhgorod ACE_TIME_PROGMEM = { + kZoneNameEurope_Uzhgorod /*name*/, + 0xb066f5d6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kyiv /*eras*/, + &kZoneEurope_Kyiv /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Vaduz -> Europe/Zurich +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Vaduz[] ACE_TIME_PROGMEM = "\x0b" "Vaduz"; + +const basic::Info::ZoneInfo kZoneEurope_Vaduz ACE_TIME_PROGMEM = { + kZoneNameEurope_Vaduz /*name*/, + 0xfbb81bae /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Zurich /*eras*/, + &kZoneEurope_Zurich /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Vatican -> Europe/Rome +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Vatican[] ACE_TIME_PROGMEM = "\x0b" "Vatican"; + +const basic::Info::ZoneInfo kZoneEurope_Vatican ACE_TIME_PROGMEM = { + kZoneNameEurope_Vatican /*name*/, + 0xcb485dca /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Rome /*eras*/, + &kZoneEurope_Rome /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Zagreb -> Europe/Belgrade +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Zagreb[] ACE_TIME_PROGMEM = "\x0b" "Zagreb"; + +const basic::Info::ZoneInfo kZoneEurope_Zagreb ACE_TIME_PROGMEM = { + kZoneNameEurope_Zagreb /*name*/, + 0x7c11c9ff /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + &kZoneEurope_Belgrade /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Zaporozhye -> Europe/Kyiv +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Zaporozhye[] ACE_TIME_PROGMEM = "\x0b" "Zaporozhye"; + +const basic::Info::ZoneInfo kZoneEurope_Zaporozhye ACE_TIME_PROGMEM = { + kZoneNameEurope_Zaporozhye /*name*/, + 0xeab9767f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kyiv /*eras*/, + &kZoneEurope_Kyiv /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GB -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameGB[] ACE_TIME_PROGMEM = "GB"; + +const basic::Info::ZoneInfo kZoneGB ACE_TIME_PROGMEM = { + kZoneNameGB /*name*/, + 0x005973ae /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GB-Eire -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameGB_Eire[] ACE_TIME_PROGMEM = "GB-Eire"; + +const basic::Info::ZoneInfo kZoneGB_Eire ACE_TIME_PROGMEM = { + kZoneNameGB_Eire /*name*/, + 0xfa70e300 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GMT -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameGMT[] ACE_TIME_PROGMEM = "GMT"; + +const basic::Info::ZoneInfo kZoneGMT ACE_TIME_PROGMEM = { + kZoneNameGMT /*name*/, + 0x0b87eb2d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GMT+0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameGMT_PLUS_0[] ACE_TIME_PROGMEM = "GMT+0"; + +const basic::Info::ZoneInfo kZoneGMT_PLUS_0 ACE_TIME_PROGMEM = { + kZoneNameGMT_PLUS_0 /*name*/, + 0x0d2f7028 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GMT-0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameGMT_0[] ACE_TIME_PROGMEM = "GMT-0"; + +const basic::Info::ZoneInfo kZoneGMT_0 ACE_TIME_PROGMEM = { + kZoneNameGMT_0 /*name*/, + 0x0d2f706a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GMT0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameGMT0[] ACE_TIME_PROGMEM = "GMT0"; + +const basic::Info::ZoneInfo kZoneGMT0 ACE_TIME_PROGMEM = { + kZoneNameGMT0 /*name*/, + 0x7c8550fd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Greenwich -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameGreenwich[] ACE_TIME_PROGMEM = "Greenwich"; + +const basic::Info::ZoneInfo kZoneGreenwich ACE_TIME_PROGMEM = { + kZoneNameGreenwich /*name*/, + 0xc84d4221 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: HST -> Pacific/Honolulu +//--------------------------------------------------------------------------- + +static const char kZoneNameHST[] ACE_TIME_PROGMEM = "HST"; + +const basic::Info::ZoneInfo kZoneHST ACE_TIME_PROGMEM = { + kZoneNameHST /*name*/, + 0x0b87f034 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Honolulu /*eras*/, + &kZonePacific_Honolulu /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Hongkong -> Asia/Hong_Kong +//--------------------------------------------------------------------------- + +static const char kZoneNameHongkong[] ACE_TIME_PROGMEM = "Hongkong"; + +const basic::Info::ZoneInfo kZoneHongkong ACE_TIME_PROGMEM = { + kZoneNameHongkong /*name*/, + 0x56d36560 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Hong_Kong /*eras*/, + &kZoneAsia_Hong_Kong /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Iceland -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameIceland[] ACE_TIME_PROGMEM = "Iceland"; + +const basic::Info::ZoneInfo kZoneIceland ACE_TIME_PROGMEM = { + kZoneNameIceland /*name*/, + 0xe56a35b5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Antananarivo -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Antananarivo[] ACE_TIME_PROGMEM = "\x0c" "Antananarivo"; + +const basic::Info::ZoneInfo kZoneIndian_Antananarivo ACE_TIME_PROGMEM = { + kZoneNameIndian_Antananarivo /*name*/, + 0x9ebf5289 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Christmas -> Asia/Bangkok +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Christmas[] ACE_TIME_PROGMEM = "\x0c" "Christmas"; + +const basic::Info::ZoneInfo kZoneIndian_Christmas ACE_TIME_PROGMEM = { + kZoneNameIndian_Christmas /*name*/, + 0x68c207d5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Bangkok /*eras*/, + &kZoneAsia_Bangkok /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Cocos -> Asia/Yangon +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Cocos[] ACE_TIME_PROGMEM = "\x0c" "Cocos"; + +const basic::Info::ZoneInfo kZoneIndian_Cocos ACE_TIME_PROGMEM = { + kZoneNameIndian_Cocos /*name*/, + 0x021e86de /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yangon /*eras*/, + &kZoneAsia_Yangon /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Comoro -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Comoro[] ACE_TIME_PROGMEM = "\x0c" "Comoro"; + +const basic::Info::ZoneInfo kZoneIndian_Comoro ACE_TIME_PROGMEM = { + kZoneNameIndian_Comoro /*name*/, + 0x45f4deb6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Kerguelen -> Indian/Maldives +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Kerguelen[] ACE_TIME_PROGMEM = "\x0c" "Kerguelen"; + +const basic::Info::ZoneInfo kZoneIndian_Kerguelen ACE_TIME_PROGMEM = { + kZoneNameIndian_Kerguelen /*name*/, + 0x4351b389 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraIndian_Maldives /*eras*/, + &kZoneIndian_Maldives /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Mahe -> Asia/Dubai +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Mahe[] ACE_TIME_PROGMEM = "\x0c" "Mahe"; + +const basic::Info::ZoneInfo kZoneIndian_Mahe ACE_TIME_PROGMEM = { + kZoneNameIndian_Mahe /*name*/, + 0x45e725e2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dubai /*eras*/, + &kZoneAsia_Dubai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Mayotte -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Mayotte[] ACE_TIME_PROGMEM = "\x0c" "Mayotte"; + +const basic::Info::ZoneInfo kZoneIndian_Mayotte ACE_TIME_PROGMEM = { + kZoneNameIndian_Mayotte /*name*/, + 0xe6880bca /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Reunion -> Asia/Dubai +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Reunion[] ACE_TIME_PROGMEM = "\x0c" "Reunion"; + +const basic::Info::ZoneInfo kZoneIndian_Reunion ACE_TIME_PROGMEM = { + kZoneNameIndian_Reunion /*name*/, + 0x7076c047 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dubai /*eras*/, + &kZoneAsia_Dubai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Iran -> Asia/Tehran +//--------------------------------------------------------------------------- + +static const char kZoneNameIran[] ACE_TIME_PROGMEM = "Iran"; + +const basic::Info::ZoneInfo kZoneIran ACE_TIME_PROGMEM = { + kZoneNameIran /*name*/, + 0x7c87090f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tehran /*eras*/, + &kZoneAsia_Tehran /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Israel -> Asia/Jerusalem +//--------------------------------------------------------------------------- + +static const char kZoneNameIsrael[] ACE_TIME_PROGMEM = "Israel"; + +const basic::Info::ZoneInfo kZoneIsrael ACE_TIME_PROGMEM = { + kZoneNameIsrael /*name*/, + 0xba88c9e5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Jerusalem /*eras*/, + &kZoneAsia_Jerusalem /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Jamaica -> America/Jamaica +//--------------------------------------------------------------------------- + +static const char kZoneNameJamaica[] ACE_TIME_PROGMEM = "Jamaica"; + +const basic::Info::ZoneInfo kZoneJamaica ACE_TIME_PROGMEM = { + kZoneNameJamaica /*name*/, + 0x2e44fdab /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Jamaica /*eras*/, + &kZoneAmerica_Jamaica /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Japan -> Asia/Tokyo +//--------------------------------------------------------------------------- + +static const char kZoneNameJapan[] ACE_TIME_PROGMEM = "Japan"; + +const basic::Info::ZoneInfo kZoneJapan ACE_TIME_PROGMEM = { + kZoneNameJapan /*name*/, + 0x0d712f8f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tokyo /*eras*/, + &kZoneAsia_Tokyo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Kwajalein -> Pacific/Kwajalein +//--------------------------------------------------------------------------- + +static const char kZoneNameKwajalein[] ACE_TIME_PROGMEM = "Kwajalein"; + +const basic::Info::ZoneInfo kZoneKwajalein ACE_TIME_PROGMEM = { + kZoneNameKwajalein /*name*/, + 0x0e57afbb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kwajalein /*eras*/, + &kZonePacific_Kwajalein /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Libya -> Africa/Tripoli +//--------------------------------------------------------------------------- + +static const char kZoneNameLibya[] ACE_TIME_PROGMEM = "Libya"; + +const basic::Info::ZoneInfo kZoneLibya ACE_TIME_PROGMEM = { + kZoneNameLibya /*name*/, + 0x0d998b16 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Tripoli /*eras*/, + &kZoneAfrica_Tripoli /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: MET -> Europe/Brussels +//--------------------------------------------------------------------------- + +static const char kZoneNameMET[] ACE_TIME_PROGMEM = "MET"; + +const basic::Info::ZoneInfo kZoneMET ACE_TIME_PROGMEM = { + kZoneNameMET /*name*/, + 0x0b8803ab /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Brussels /*eras*/, + &kZoneEurope_Brussels /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: MST -> America/Phoenix +//--------------------------------------------------------------------------- + +static const char kZoneNameMST[] ACE_TIME_PROGMEM = "MST"; + +const basic::Info::ZoneInfo kZoneMST ACE_TIME_PROGMEM = { + kZoneNameMST /*name*/, + 0x0b880579 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Phoenix /*eras*/, + &kZoneAmerica_Phoenix /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: MST7MDT -> America/Denver +//--------------------------------------------------------------------------- + +static const char kZoneNameMST7MDT[] ACE_TIME_PROGMEM = "MST7MDT"; + +const basic::Info::ZoneInfo kZoneMST7MDT ACE_TIME_PROGMEM = { + kZoneNameMST7MDT /*name*/, + 0xf2af9375 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Denver /*eras*/, + &kZoneAmerica_Denver /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Mexico/BajaNorte -> America/Tijuana +//--------------------------------------------------------------------------- + +static const char kZoneNameMexico_BajaNorte[] ACE_TIME_PROGMEM = "Mexico/BajaNorte"; + +const basic::Info::ZoneInfo kZoneMexico_BajaNorte ACE_TIME_PROGMEM = { + kZoneNameMexico_BajaNorte /*name*/, + 0xfcf7150f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Tijuana /*eras*/, + &kZoneAmerica_Tijuana /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Mexico/BajaSur -> America/Mazatlan +//--------------------------------------------------------------------------- + +static const char kZoneNameMexico_BajaSur[] ACE_TIME_PROGMEM = "Mexico/BajaSur"; + +const basic::Info::ZoneInfo kZoneMexico_BajaSur ACE_TIME_PROGMEM = { + kZoneNameMexico_BajaSur /*name*/, + 0x08ee3641 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Mazatlan /*eras*/, + &kZoneAmerica_Mazatlan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Mexico/General -> America/Mexico_City +//--------------------------------------------------------------------------- + +static const char kZoneNameMexico_General[] ACE_TIME_PROGMEM = "Mexico/General"; + +const basic::Info::ZoneInfo kZoneMexico_General ACE_TIME_PROGMEM = { + kZoneNameMexico_General /*name*/, + 0x93711d57 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Mexico_City /*eras*/, + &kZoneAmerica_Mexico_City /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: NZ -> Pacific/Auckland +//--------------------------------------------------------------------------- + +static const char kZoneNameNZ[] ACE_TIME_PROGMEM = "NZ"; + +const basic::Info::ZoneInfo kZoneNZ ACE_TIME_PROGMEM = { + kZoneNameNZ /*name*/, + 0x005974ad /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Auckland /*eras*/, + &kZonePacific_Auckland /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: NZ-CHAT -> Pacific/Chatham +//--------------------------------------------------------------------------- + +static const char kZoneNameNZ_CHAT[] ACE_TIME_PROGMEM = "NZ-CHAT"; + +const basic::Info::ZoneInfo kZoneNZ_CHAT ACE_TIME_PROGMEM = { + kZoneNameNZ_CHAT /*name*/, + 0x4d42afda /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Chatham /*eras*/, + &kZonePacific_Chatham /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Navajo -> America/Denver +//--------------------------------------------------------------------------- + +static const char kZoneNameNavajo[] ACE_TIME_PROGMEM = "Navajo"; + +const basic::Info::ZoneInfo kZoneNavajo ACE_TIME_PROGMEM = { + kZoneNameNavajo /*name*/, + 0xc4ef0e24 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Denver /*eras*/, + &kZoneAmerica_Denver /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: PRC -> Asia/Shanghai +//--------------------------------------------------------------------------- + +static const char kZoneNamePRC[] ACE_TIME_PROGMEM = "PRC"; + +const basic::Info::ZoneInfo kZonePRC ACE_TIME_PROGMEM = { + kZoneNamePRC /*name*/, + 0x0b88120a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Shanghai /*eras*/, + &kZoneAsia_Shanghai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: PST8PDT -> America/Los_Angeles +//--------------------------------------------------------------------------- + +static const char kZoneNamePST8PDT[] ACE_TIME_PROGMEM = "PST8PDT"; + +const basic::Info::ZoneInfo kZonePST8PDT ACE_TIME_PROGMEM = { + kZoneNamePST8PDT /*name*/, + 0xd99ee2dc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Los_Angeles /*eras*/, + &kZoneAmerica_Los_Angeles /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Chuuk -> Pacific/Port_Moresby +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Chuuk[] ACE_TIME_PROGMEM = "\x0e" "Chuuk"; + +const basic::Info::ZoneInfo kZonePacific_Chuuk ACE_TIME_PROGMEM = { + kZoneNamePacific_Chuuk /*name*/, + 0x8a090b23 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Port_Moresby /*eras*/, + &kZonePacific_Port_Moresby /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Enderbury -> Pacific/Kanton +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Enderbury[] ACE_TIME_PROGMEM = "\x0e" "Enderbury"; + +const basic::Info::ZoneInfo kZonePacific_Enderbury ACE_TIME_PROGMEM = { + kZoneNamePacific_Enderbury /*name*/, + 0x61599a93 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kanton /*eras*/, + &kZonePacific_Kanton /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Funafuti -> Pacific/Tarawa +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Funafuti[] ACE_TIME_PROGMEM = "\x0e" "Funafuti"; + +const basic::Info::ZoneInfo kZonePacific_Funafuti ACE_TIME_PROGMEM = { + kZoneNamePacific_Funafuti /*name*/, + 0xdb402d65 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tarawa /*eras*/, + &kZonePacific_Tarawa /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Johnston -> Pacific/Honolulu +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Johnston[] ACE_TIME_PROGMEM = "\x0e" "Johnston"; + +const basic::Info::ZoneInfo kZonePacific_Johnston ACE_TIME_PROGMEM = { + kZoneNamePacific_Johnston /*name*/, + 0xb15d7b36 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Honolulu /*eras*/, + &kZonePacific_Honolulu /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Majuro -> Pacific/Tarawa +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Majuro[] ACE_TIME_PROGMEM = "\x0e" "Majuro"; + +const basic::Info::ZoneInfo kZonePacific_Majuro ACE_TIME_PROGMEM = { + kZoneNamePacific_Majuro /*name*/, + 0xe1f95371 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tarawa /*eras*/, + &kZonePacific_Tarawa /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Midway -> Pacific/Pago_Pago +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Midway[] ACE_TIME_PROGMEM = "\x0e" "Midway"; + +const basic::Info::ZoneInfo kZonePacific_Midway ACE_TIME_PROGMEM = { + kZoneNamePacific_Midway /*name*/, + 0xe286d38e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Pago_Pago /*eras*/, + &kZonePacific_Pago_Pago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Pohnpei -> Pacific/Guadalcanal +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Pohnpei[] ACE_TIME_PROGMEM = "\x0e" "Pohnpei"; + +const basic::Info::ZoneInfo kZonePacific_Pohnpei ACE_TIME_PROGMEM = { + kZoneNamePacific_Pohnpei /*name*/, + 0x28929f96 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Guadalcanal /*eras*/, + &kZonePacific_Guadalcanal /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Ponape -> Pacific/Guadalcanal +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Ponape[] ACE_TIME_PROGMEM = "\x0e" "Ponape"; + +const basic::Info::ZoneInfo kZonePacific_Ponape ACE_TIME_PROGMEM = { + kZoneNamePacific_Ponape /*name*/, + 0xe9f80086 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Guadalcanal /*eras*/, + &kZonePacific_Guadalcanal /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Saipan -> Pacific/Guam +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Saipan[] ACE_TIME_PROGMEM = "\x0e" "Saipan"; + +const basic::Info::ZoneInfo kZonePacific_Saipan ACE_TIME_PROGMEM = { + kZoneNamePacific_Saipan /*name*/, + 0xeff7a35f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Guam /*eras*/, + &kZonePacific_Guam /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Samoa -> Pacific/Pago_Pago +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Samoa[] ACE_TIME_PROGMEM = "\x0e" "Samoa"; + +const basic::Info::ZoneInfo kZonePacific_Samoa ACE_TIME_PROGMEM = { + kZoneNamePacific_Samoa /*name*/, + 0x8b2699b4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Pago_Pago /*eras*/, + &kZonePacific_Pago_Pago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Truk -> Pacific/Port_Moresby +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Truk[] ACE_TIME_PROGMEM = "\x0e" "Truk"; + +const basic::Info::ZoneInfo kZonePacific_Truk ACE_TIME_PROGMEM = { + kZoneNamePacific_Truk /*name*/, + 0x234010a9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Port_Moresby /*eras*/, + &kZonePacific_Port_Moresby /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Wake -> Pacific/Tarawa +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Wake[] ACE_TIME_PROGMEM = "\x0e" "Wake"; + +const basic::Info::ZoneInfo kZonePacific_Wake ACE_TIME_PROGMEM = { + kZoneNamePacific_Wake /*name*/, + 0x23416c2b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tarawa /*eras*/, + &kZonePacific_Tarawa /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Wallis -> Pacific/Tarawa +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Wallis[] ACE_TIME_PROGMEM = "\x0e" "Wallis"; + +const basic::Info::ZoneInfo kZonePacific_Wallis ACE_TIME_PROGMEM = { + kZoneNamePacific_Wallis /*name*/, + 0xf94ddb0f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tarawa /*eras*/, + &kZonePacific_Tarawa /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Yap -> Pacific/Port_Moresby +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Yap[] ACE_TIME_PROGMEM = "\x0e" "Yap"; + +const basic::Info::ZoneInfo kZonePacific_Yap ACE_TIME_PROGMEM = { + kZoneNamePacific_Yap /*name*/, + 0xbb40138d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Port_Moresby /*eras*/, + &kZonePacific_Port_Moresby /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Poland -> Europe/Warsaw +//--------------------------------------------------------------------------- + +static const char kZoneNamePoland[] ACE_TIME_PROGMEM = "Poland"; + +const basic::Info::ZoneInfo kZonePoland ACE_TIME_PROGMEM = { + kZoneNamePoland /*name*/, + 0xca913b23 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Warsaw /*eras*/, + &kZoneEurope_Warsaw /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Portugal -> Europe/Lisbon +//--------------------------------------------------------------------------- + +static const char kZoneNamePortugal[] ACE_TIME_PROGMEM = "Portugal"; + +const basic::Info::ZoneInfo kZonePortugal ACE_TIME_PROGMEM = { + kZoneNamePortugal /*name*/, + 0xc3274593 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Lisbon /*eras*/, + &kZoneEurope_Lisbon /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: ROC -> Asia/Taipei +//--------------------------------------------------------------------------- + +static const char kZoneNameROC[] ACE_TIME_PROGMEM = "ROC"; + +const basic::Info::ZoneInfo kZoneROC ACE_TIME_PROGMEM = { + kZoneNameROC /*name*/, + 0x0b881a29 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Taipei /*eras*/, + &kZoneAsia_Taipei /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: ROK -> Asia/Seoul +//--------------------------------------------------------------------------- + +static const char kZoneNameROK[] ACE_TIME_PROGMEM = "ROK"; + +const basic::Info::ZoneInfo kZoneROK ACE_TIME_PROGMEM = { + kZoneNameROK /*name*/, + 0x0b881a31 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Seoul /*eras*/, + &kZoneAsia_Seoul /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Singapore -> Asia/Singapore +//--------------------------------------------------------------------------- + +static const char kZoneNameSingapore[] ACE_TIME_PROGMEM = "Singapore"; + +const basic::Info::ZoneInfo kZoneSingapore ACE_TIME_PROGMEM = { + kZoneNameSingapore /*name*/, + 0xa8598c8d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Singapore /*eras*/, + &kZoneAsia_Singapore /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Turkey -> Europe/Istanbul +//--------------------------------------------------------------------------- + +static const char kZoneNameTurkey[] ACE_TIME_PROGMEM = "Turkey"; + +const basic::Info::ZoneInfo kZoneTurkey ACE_TIME_PROGMEM = { + kZoneNameTurkey /*name*/, + 0xd455e469 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Istanbul /*eras*/, + &kZoneEurope_Istanbul /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: UCT -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameUCT[] ACE_TIME_PROGMEM = "UCT"; + +const basic::Info::ZoneInfo kZoneUCT ACE_TIME_PROGMEM = { + kZoneNameUCT /*name*/, + 0x0b882571 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Alaska -> America/Anchorage +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Alaska[] ACE_TIME_PROGMEM = "US/Alaska"; + +const basic::Info::ZoneInfo kZoneUS_Alaska ACE_TIME_PROGMEM = { + kZoneNameUS_Alaska /*name*/, + 0xfa300bc9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Anchorage /*eras*/, + &kZoneAmerica_Anchorage /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Aleutian -> America/Adak +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Aleutian[] ACE_TIME_PROGMEM = "US/Aleutian"; + +const basic::Info::ZoneInfo kZoneUS_Aleutian ACE_TIME_PROGMEM = { + kZoneNameUS_Aleutian /*name*/, + 0x4fe013ef /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Adak /*eras*/, + &kZoneAmerica_Adak /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Arizona -> America/Phoenix +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Arizona[] ACE_TIME_PROGMEM = "US/Arizona"; + +const basic::Info::ZoneInfo kZoneUS_Arizona ACE_TIME_PROGMEM = { + kZoneNameUS_Arizona /*name*/, + 0x4ec52670 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Phoenix /*eras*/, + &kZoneAmerica_Phoenix /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Central -> America/Chicago +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Central[] ACE_TIME_PROGMEM = "US/Central"; + +const basic::Info::ZoneInfo kZoneUS_Central ACE_TIME_PROGMEM = { + kZoneNameUS_Central /*name*/, + 0xcabdcb25 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Chicago /*eras*/, + &kZoneAmerica_Chicago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/East-Indiana -> America/Indiana/Indianapolis +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_East_Indiana[] ACE_TIME_PROGMEM = "US/East-Indiana"; + +const basic::Info::ZoneInfo kZoneUS_East_Indiana ACE_TIME_PROGMEM = { + kZoneNameUS_East_Indiana /*name*/, + 0x6dcf558a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Indianapolis /*eras*/, + &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Eastern -> America/New_York +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Eastern[] ACE_TIME_PROGMEM = "US/Eastern"; + +const basic::Info::ZoneInfo kZoneUS_Eastern ACE_TIME_PROGMEM = { + kZoneNameUS_Eastern /*name*/, + 0x5bb7e78e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_New_York /*eras*/, + &kZoneAmerica_New_York /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Hawaii -> Pacific/Honolulu +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Hawaii[] ACE_TIME_PROGMEM = "US/Hawaii"; + +const basic::Info::ZoneInfo kZoneUS_Hawaii ACE_TIME_PROGMEM = { + kZoneNameUS_Hawaii /*name*/, + 0x09c8de2f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Honolulu /*eras*/, + &kZonePacific_Honolulu /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Indiana-Starke -> America/Indiana/Knox +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Indiana_Starke[] ACE_TIME_PROGMEM = "US/Indiana-Starke"; + +const basic::Info::ZoneInfo kZoneUS_Indiana_Starke ACE_TIME_PROGMEM = { + kZoneNameUS_Indiana_Starke /*name*/, + 0x67977be7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Knox /*eras*/, + &kZoneAmerica_Indiana_Knox /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Michigan -> America/Detroit +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Michigan[] ACE_TIME_PROGMEM = "US/Michigan"; + +const basic::Info::ZoneInfo kZoneUS_Michigan ACE_TIME_PROGMEM = { + kZoneNameUS_Michigan /*name*/, + 0x766bb7bc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Detroit /*eras*/, + &kZoneAmerica_Detroit /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Mountain -> America/Denver +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Mountain[] ACE_TIME_PROGMEM = "US/Mountain"; + +const basic::Info::ZoneInfo kZoneUS_Mountain ACE_TIME_PROGMEM = { + kZoneNameUS_Mountain /*name*/, + 0x6eb88247 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Denver /*eras*/, + &kZoneAmerica_Denver /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Pacific -> America/Los_Angeles +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific"; + +const basic::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = { + kZoneNameUS_Pacific /*name*/, + 0xa950f6ab /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Los_Angeles /*eras*/, + &kZoneAmerica_Los_Angeles /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Samoa -> Pacific/Pago_Pago +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Samoa[] ACE_TIME_PROGMEM = "US/Samoa"; + +const basic::Info::ZoneInfo kZoneUS_Samoa ACE_TIME_PROGMEM = { + kZoneNameUS_Samoa /*name*/, + 0x566821cd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Pago_Pago /*eras*/, + &kZonePacific_Pago_Pago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: UTC -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameUTC[] ACE_TIME_PROGMEM = "UTC"; + +const basic::Info::ZoneInfo kZoneUTC ACE_TIME_PROGMEM = { + kZoneNameUTC /*name*/, + 0x0b882791 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Universal -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameUniversal[] ACE_TIME_PROGMEM = "Universal"; + +const basic::Info::ZoneInfo kZoneUniversal ACE_TIME_PROGMEM = { + kZoneNameUniversal /*name*/, + 0xd0ff523e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: W-SU -> Europe/Moscow +//--------------------------------------------------------------------------- + +static const char kZoneNameW_SU[] ACE_TIME_PROGMEM = "W-SU"; + +const basic::Info::ZoneInfo kZoneW_SU ACE_TIME_PROGMEM = { + kZoneNameW_SU /*name*/, + 0x7c8d8ef1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Moscow /*eras*/, + &kZoneEurope_Moscow /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: WET -> Europe/Lisbon +//--------------------------------------------------------------------------- + +static const char kZoneNameWET[] ACE_TIME_PROGMEM = "WET"; + +const basic::Info::ZoneInfo kZoneWET ACE_TIME_PROGMEM = { + kZoneNameWET /*name*/, + 0x0b882e35 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Lisbon /*eras*/, + &kZoneEurope_Lisbon /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Zulu -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameZulu[] ACE_TIME_PROGMEM = "Zulu"; + +const basic::Info::ZoneInfo kZoneZulu ACE_TIME_PROGMEM = { + kZoneNameZulu /*name*/, + 0x7c9069b5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + + +} +} diff --git a/src/zonedb2025/zone_infos.h b/src/zonedb2025/zone_infos.h new file mode 100644 index 000000000..ce8db8180 --- /dev/null +++ b/src/zonedb2025/zone_infos.h @@ -0,0 +1,1744 @@ +// 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/zonedb2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope basic +// --db_namespace zonedb2025 +// --zi_namespace basic::Info +// --start_year 2025 +// --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: 590 (333 zones, 257 links) +// Unsupported Zones: 7 (7 zones, 0 links) +// +// Requested Years: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 6 +// +// Records: +// Infos: 590 +// Eras: 333 +// Policies: 64 +// Rules: 258 +// +// Memory (8-bits): +// Context: 20 +// Rules: 2322 +// Policies: 192 +// Eras: 3663 +// Zones: 4329 +// Links: 3341 +// Registry: 1180 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5593 (original: 8990) +// TOTAL: 21021 +// +// Memory (32-bits): +// Context: 28 +// Rules: 3096 +// Policies: 512 +// Eras: 5328 +// Zones: 7992 +// Links: 6168 +// Registry: 2360 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5593 (original: 8990) +// TOTAL: 31500 +// +// DO NOT EDIT + +#ifndef ACE_TIME_ZONEDB2025_ZONE_INFOS_H +#define ACE_TIME_ZONEDB2025_ZONE_INFOS_H + +#include + +class __FlashStringHelper; + +namespace ace_time { +namespace zonedb2025 { + +//--------------------------------------------------------------------------- +// ZoneContext (should not be in PROGMEM) +//--------------------------------------------------------------------------- + +// Version of the TZ Database which generated these files. +extern const __FlashStringHelper* const kTzDatabaseVersion; + +// Metadata about the zonedb files. +extern const basic::Info::ZoneContext kZoneContext; + +//--------------------------------------------------------------------------- +// Supported zones: 333 +//--------------------------------------------------------------------------- + +extern const basic::Info::ZoneInfo kZoneAfrica_Abidjan; // Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAfrica_Algiers; // Africa/Algiers +extern const basic::Info::ZoneInfo kZoneAfrica_Bissau; // Africa/Bissau +extern const basic::Info::ZoneInfo kZoneAfrica_Cairo; // Africa/Cairo +extern const basic::Info::ZoneInfo kZoneAfrica_Casablanca; // Africa/Casablanca +extern const basic::Info::ZoneInfo kZoneAfrica_Ceuta; // Africa/Ceuta +extern const basic::Info::ZoneInfo kZoneAfrica_El_Aaiun; // Africa/El_Aaiun +extern const basic::Info::ZoneInfo kZoneAfrica_Johannesburg; // Africa/Johannesburg +extern const basic::Info::ZoneInfo kZoneAfrica_Juba; // Africa/Juba +extern const basic::Info::ZoneInfo kZoneAfrica_Khartoum; // Africa/Khartoum +extern const basic::Info::ZoneInfo kZoneAfrica_Lagos; // Africa/Lagos +extern const basic::Info::ZoneInfo kZoneAfrica_Maputo; // Africa/Maputo +extern const basic::Info::ZoneInfo kZoneAfrica_Monrovia; // Africa/Monrovia +extern const basic::Info::ZoneInfo kZoneAfrica_Nairobi; // Africa/Nairobi +extern const basic::Info::ZoneInfo kZoneAfrica_Ndjamena; // Africa/Ndjamena +extern const basic::Info::ZoneInfo kZoneAfrica_Sao_Tome; // Africa/Sao_Tome +extern const basic::Info::ZoneInfo kZoneAfrica_Tripoli; // Africa/Tripoli +extern const basic::Info::ZoneInfo kZoneAfrica_Tunis; // Africa/Tunis +extern const basic::Info::ZoneInfo kZoneAfrica_Windhoek; // Africa/Windhoek +extern const basic::Info::ZoneInfo kZoneAmerica_Adak; // America/Adak +extern const basic::Info::ZoneInfo kZoneAmerica_Anchorage; // America/Anchorage +extern const basic::Info::ZoneInfo kZoneAmerica_Araguaina; // America/Araguaina +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_Buenos_Aires; // America/Argentina/Buenos_Aires +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_Catamarca; // America/Argentina/Catamarca +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_Cordoba; // America/Argentina/Cordoba +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_Jujuy; // America/Argentina/Jujuy +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_La_Rioja; // America/Argentina/La_Rioja +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_Mendoza; // America/Argentina/Mendoza +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_Rio_Gallegos; // America/Argentina/Rio_Gallegos +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_Salta; // America/Argentina/Salta +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_San_Juan; // America/Argentina/San_Juan +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_San_Luis; // America/Argentina/San_Luis +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_Tucuman; // America/Argentina/Tucuman +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_Ushuaia; // America/Argentina/Ushuaia +extern const basic::Info::ZoneInfo kZoneAmerica_Bahia; // America/Bahia +extern const basic::Info::ZoneInfo kZoneAmerica_Bahia_Banderas; // America/Bahia_Banderas +extern const basic::Info::ZoneInfo kZoneAmerica_Barbados; // America/Barbados +extern const basic::Info::ZoneInfo kZoneAmerica_Belem; // America/Belem +extern const basic::Info::ZoneInfo kZoneAmerica_Belize; // America/Belize +extern const basic::Info::ZoneInfo kZoneAmerica_Boa_Vista; // America/Boa_Vista +extern const basic::Info::ZoneInfo kZoneAmerica_Bogota; // America/Bogota +extern const basic::Info::ZoneInfo kZoneAmerica_Boise; // America/Boise +extern const basic::Info::ZoneInfo kZoneAmerica_Cambridge_Bay; // America/Cambridge_Bay +extern const basic::Info::ZoneInfo kZoneAmerica_Campo_Grande; // America/Campo_Grande +extern const basic::Info::ZoneInfo kZoneAmerica_Cancun; // America/Cancun +extern const basic::Info::ZoneInfo kZoneAmerica_Caracas; // America/Caracas +extern const basic::Info::ZoneInfo kZoneAmerica_Cayenne; // America/Cayenne +extern const basic::Info::ZoneInfo kZoneAmerica_Chicago; // America/Chicago +extern const basic::Info::ZoneInfo kZoneAmerica_Chihuahua; // America/Chihuahua +extern const basic::Info::ZoneInfo kZoneAmerica_Ciudad_Juarez; // America/Ciudad_Juarez +extern const basic::Info::ZoneInfo kZoneAmerica_Costa_Rica; // America/Costa_Rica +extern const basic::Info::ZoneInfo kZoneAmerica_Cuiaba; // America/Cuiaba +extern const basic::Info::ZoneInfo kZoneAmerica_Danmarkshavn; // America/Danmarkshavn +extern const basic::Info::ZoneInfo kZoneAmerica_Dawson; // America/Dawson +extern const basic::Info::ZoneInfo kZoneAmerica_Dawson_Creek; // America/Dawson_Creek +extern const basic::Info::ZoneInfo kZoneAmerica_Denver; // America/Denver +extern const basic::Info::ZoneInfo kZoneAmerica_Detroit; // America/Detroit +extern const basic::Info::ZoneInfo kZoneAmerica_Edmonton; // America/Edmonton +extern const basic::Info::ZoneInfo kZoneAmerica_Eirunepe; // America/Eirunepe +extern const basic::Info::ZoneInfo kZoneAmerica_El_Salvador; // America/El_Salvador +extern const basic::Info::ZoneInfo kZoneAmerica_Fort_Nelson; // America/Fort_Nelson +extern const basic::Info::ZoneInfo kZoneAmerica_Fortaleza; // America/Fortaleza +extern const basic::Info::ZoneInfo kZoneAmerica_Glace_Bay; // America/Glace_Bay +extern const basic::Info::ZoneInfo kZoneAmerica_Goose_Bay; // America/Goose_Bay +extern const basic::Info::ZoneInfo kZoneAmerica_Grand_Turk; // America/Grand_Turk +extern const basic::Info::ZoneInfo kZoneAmerica_Guatemala; // America/Guatemala +extern const basic::Info::ZoneInfo kZoneAmerica_Guayaquil; // America/Guayaquil +extern const basic::Info::ZoneInfo kZoneAmerica_Guyana; // America/Guyana +extern const basic::Info::ZoneInfo kZoneAmerica_Halifax; // America/Halifax +extern const basic::Info::ZoneInfo kZoneAmerica_Havana; // America/Havana +extern const basic::Info::ZoneInfo kZoneAmerica_Hermosillo; // America/Hermosillo +extern const basic::Info::ZoneInfo kZoneAmerica_Indiana_Indianapolis; // America/Indiana/Indianapolis +extern const basic::Info::ZoneInfo kZoneAmerica_Indiana_Knox; // America/Indiana/Knox +extern const basic::Info::ZoneInfo kZoneAmerica_Indiana_Marengo; // America/Indiana/Marengo +extern const basic::Info::ZoneInfo kZoneAmerica_Indiana_Petersburg; // America/Indiana/Petersburg +extern const basic::Info::ZoneInfo kZoneAmerica_Indiana_Tell_City; // America/Indiana/Tell_City +extern const basic::Info::ZoneInfo kZoneAmerica_Indiana_Vevay; // America/Indiana/Vevay +extern const basic::Info::ZoneInfo kZoneAmerica_Indiana_Vincennes; // America/Indiana/Vincennes +extern const basic::Info::ZoneInfo kZoneAmerica_Indiana_Winamac; // America/Indiana/Winamac +extern const basic::Info::ZoneInfo kZoneAmerica_Inuvik; // America/Inuvik +extern const basic::Info::ZoneInfo kZoneAmerica_Iqaluit; // America/Iqaluit +extern const basic::Info::ZoneInfo kZoneAmerica_Jamaica; // America/Jamaica +extern const basic::Info::ZoneInfo kZoneAmerica_Juneau; // America/Juneau +extern const basic::Info::ZoneInfo kZoneAmerica_Kentucky_Louisville; // America/Kentucky/Louisville +extern const basic::Info::ZoneInfo kZoneAmerica_Kentucky_Monticello; // America/Kentucky/Monticello +extern const basic::Info::ZoneInfo kZoneAmerica_La_Paz; // America/La_Paz +extern const basic::Info::ZoneInfo kZoneAmerica_Lima; // America/Lima +extern const basic::Info::ZoneInfo kZoneAmerica_Los_Angeles; // America/Los_Angeles +extern const basic::Info::ZoneInfo kZoneAmerica_Maceio; // America/Maceio +extern const basic::Info::ZoneInfo kZoneAmerica_Managua; // America/Managua +extern const basic::Info::ZoneInfo kZoneAmerica_Manaus; // America/Manaus +extern const basic::Info::ZoneInfo kZoneAmerica_Martinique; // America/Martinique +extern const basic::Info::ZoneInfo kZoneAmerica_Matamoros; // America/Matamoros +extern const basic::Info::ZoneInfo kZoneAmerica_Mazatlan; // America/Mazatlan +extern const basic::Info::ZoneInfo kZoneAmerica_Menominee; // America/Menominee +extern const basic::Info::ZoneInfo kZoneAmerica_Merida; // America/Merida +extern const basic::Info::ZoneInfo kZoneAmerica_Metlakatla; // America/Metlakatla +extern const basic::Info::ZoneInfo kZoneAmerica_Mexico_City; // America/Mexico_City +extern const basic::Info::ZoneInfo kZoneAmerica_Miquelon; // America/Miquelon +extern const basic::Info::ZoneInfo kZoneAmerica_Moncton; // America/Moncton +extern const basic::Info::ZoneInfo kZoneAmerica_Monterrey; // America/Monterrey +extern const basic::Info::ZoneInfo kZoneAmerica_Montevideo; // America/Montevideo +extern const basic::Info::ZoneInfo kZoneAmerica_New_York; // America/New_York +extern const basic::Info::ZoneInfo kZoneAmerica_Nome; // America/Nome +extern const basic::Info::ZoneInfo kZoneAmerica_Noronha; // America/Noronha +extern const basic::Info::ZoneInfo kZoneAmerica_North_Dakota_Beulah; // America/North_Dakota/Beulah +extern const basic::Info::ZoneInfo kZoneAmerica_North_Dakota_Center; // America/North_Dakota/Center +extern const basic::Info::ZoneInfo kZoneAmerica_North_Dakota_New_Salem; // America/North_Dakota/New_Salem +extern const basic::Info::ZoneInfo kZoneAmerica_Nuuk; // America/Nuuk +extern const basic::Info::ZoneInfo kZoneAmerica_Ojinaga; // America/Ojinaga +extern const basic::Info::ZoneInfo kZoneAmerica_Panama; // America/Panama +extern const basic::Info::ZoneInfo kZoneAmerica_Paramaribo; // America/Paramaribo +extern const basic::Info::ZoneInfo kZoneAmerica_Phoenix; // America/Phoenix +extern const basic::Info::ZoneInfo kZoneAmerica_Port_au_Prince; // America/Port-au-Prince +extern const basic::Info::ZoneInfo kZoneAmerica_Porto_Velho; // America/Porto_Velho +extern const basic::Info::ZoneInfo kZoneAmerica_Puerto_Rico; // America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Punta_Arenas; // America/Punta_Arenas +extern const basic::Info::ZoneInfo kZoneAmerica_Rankin_Inlet; // America/Rankin_Inlet +extern const basic::Info::ZoneInfo kZoneAmerica_Recife; // America/Recife +extern const basic::Info::ZoneInfo kZoneAmerica_Regina; // America/Regina +extern const basic::Info::ZoneInfo kZoneAmerica_Resolute; // America/Resolute +extern const basic::Info::ZoneInfo kZoneAmerica_Rio_Branco; // America/Rio_Branco +extern const basic::Info::ZoneInfo kZoneAmerica_Santarem; // America/Santarem +extern const basic::Info::ZoneInfo kZoneAmerica_Santiago; // America/Santiago +extern const basic::Info::ZoneInfo kZoneAmerica_Santo_Domingo; // America/Santo_Domingo +extern const basic::Info::ZoneInfo kZoneAmerica_Sao_Paulo; // America/Sao_Paulo +extern const basic::Info::ZoneInfo kZoneAmerica_Sitka; // America/Sitka +extern const basic::Info::ZoneInfo kZoneAmerica_St_Johns; // America/St_Johns +extern const basic::Info::ZoneInfo kZoneAmerica_Swift_Current; // America/Swift_Current +extern const basic::Info::ZoneInfo kZoneAmerica_Tegucigalpa; // America/Tegucigalpa +extern const basic::Info::ZoneInfo kZoneAmerica_Thule; // America/Thule +extern const basic::Info::ZoneInfo kZoneAmerica_Tijuana; // America/Tijuana +extern const basic::Info::ZoneInfo kZoneAmerica_Toronto; // America/Toronto +extern const basic::Info::ZoneInfo kZoneAmerica_Vancouver; // America/Vancouver +extern const basic::Info::ZoneInfo kZoneAmerica_Whitehorse; // America/Whitehorse +extern const basic::Info::ZoneInfo kZoneAmerica_Winnipeg; // America/Winnipeg +extern const basic::Info::ZoneInfo kZoneAmerica_Yakutat; // America/Yakutat +extern const basic::Info::ZoneInfo kZoneAntarctica_Casey; // Antarctica/Casey +extern const basic::Info::ZoneInfo kZoneAntarctica_Davis; // Antarctica/Davis +extern const basic::Info::ZoneInfo kZoneAntarctica_Macquarie; // Antarctica/Macquarie +extern const basic::Info::ZoneInfo kZoneAntarctica_Mawson; // Antarctica/Mawson +extern const basic::Info::ZoneInfo kZoneAntarctica_Palmer; // Antarctica/Palmer +extern const basic::Info::ZoneInfo kZoneAntarctica_Rothera; // Antarctica/Rothera +extern const basic::Info::ZoneInfo kZoneAntarctica_Troll; // Antarctica/Troll +extern const basic::Info::ZoneInfo kZoneAntarctica_Vostok; // Antarctica/Vostok +extern const basic::Info::ZoneInfo kZoneAsia_Amman; // Asia/Amman +extern const basic::Info::ZoneInfo kZoneAsia_Anadyr; // Asia/Anadyr +extern const basic::Info::ZoneInfo kZoneAsia_Aqtau; // Asia/Aqtau +extern const basic::Info::ZoneInfo kZoneAsia_Aqtobe; // Asia/Aqtobe +extern const basic::Info::ZoneInfo kZoneAsia_Ashgabat; // Asia/Ashgabat +extern const basic::Info::ZoneInfo kZoneAsia_Atyrau; // Asia/Atyrau +extern const basic::Info::ZoneInfo kZoneAsia_Baghdad; // Asia/Baghdad +extern const basic::Info::ZoneInfo kZoneAsia_Baku; // Asia/Baku +extern const basic::Info::ZoneInfo kZoneAsia_Bangkok; // Asia/Bangkok +extern const basic::Info::ZoneInfo kZoneAsia_Barnaul; // Asia/Barnaul +extern const basic::Info::ZoneInfo kZoneAsia_Beirut; // Asia/Beirut +extern const basic::Info::ZoneInfo kZoneAsia_Bishkek; // Asia/Bishkek +extern const basic::Info::ZoneInfo kZoneAsia_Chita; // Asia/Chita +extern const basic::Info::ZoneInfo kZoneAsia_Colombo; // Asia/Colombo +extern const basic::Info::ZoneInfo kZoneAsia_Damascus; // Asia/Damascus +extern const basic::Info::ZoneInfo kZoneAsia_Dhaka; // Asia/Dhaka +extern const basic::Info::ZoneInfo kZoneAsia_Dili; // Asia/Dili +extern const basic::Info::ZoneInfo kZoneAsia_Dubai; // Asia/Dubai +extern const basic::Info::ZoneInfo kZoneAsia_Dushanbe; // Asia/Dushanbe +extern const basic::Info::ZoneInfo kZoneAsia_Famagusta; // Asia/Famagusta +extern const basic::Info::ZoneInfo kZoneAsia_Ho_Chi_Minh; // Asia/Ho_Chi_Minh +extern const basic::Info::ZoneInfo kZoneAsia_Hong_Kong; // Asia/Hong_Kong +extern const basic::Info::ZoneInfo kZoneAsia_Hovd; // Asia/Hovd +extern const basic::Info::ZoneInfo kZoneAsia_Irkutsk; // Asia/Irkutsk +extern const basic::Info::ZoneInfo kZoneAsia_Jakarta; // Asia/Jakarta +extern const basic::Info::ZoneInfo kZoneAsia_Jayapura; // Asia/Jayapura +extern const basic::Info::ZoneInfo kZoneAsia_Jerusalem; // Asia/Jerusalem +extern const basic::Info::ZoneInfo kZoneAsia_Kabul; // Asia/Kabul +extern const basic::Info::ZoneInfo kZoneAsia_Kamchatka; // Asia/Kamchatka +extern const basic::Info::ZoneInfo kZoneAsia_Karachi; // Asia/Karachi +extern const basic::Info::ZoneInfo kZoneAsia_Kathmandu; // Asia/Kathmandu +extern const basic::Info::ZoneInfo kZoneAsia_Khandyga; // Asia/Khandyga +extern const basic::Info::ZoneInfo kZoneAsia_Kolkata; // Asia/Kolkata +extern const basic::Info::ZoneInfo kZoneAsia_Krasnoyarsk; // Asia/Krasnoyarsk +extern const basic::Info::ZoneInfo kZoneAsia_Kuching; // Asia/Kuching +extern const basic::Info::ZoneInfo kZoneAsia_Macau; // Asia/Macau +extern const basic::Info::ZoneInfo kZoneAsia_Magadan; // Asia/Magadan +extern const basic::Info::ZoneInfo kZoneAsia_Makassar; // Asia/Makassar +extern const basic::Info::ZoneInfo kZoneAsia_Manila; // Asia/Manila +extern const basic::Info::ZoneInfo kZoneAsia_Nicosia; // Asia/Nicosia +extern const basic::Info::ZoneInfo kZoneAsia_Novokuznetsk; // Asia/Novokuznetsk +extern const basic::Info::ZoneInfo kZoneAsia_Novosibirsk; // Asia/Novosibirsk +extern const basic::Info::ZoneInfo kZoneAsia_Omsk; // Asia/Omsk +extern const basic::Info::ZoneInfo kZoneAsia_Oral; // Asia/Oral +extern const basic::Info::ZoneInfo kZoneAsia_Pontianak; // Asia/Pontianak +extern const basic::Info::ZoneInfo kZoneAsia_Pyongyang; // Asia/Pyongyang +extern const basic::Info::ZoneInfo kZoneAsia_Qatar; // Asia/Qatar +extern const basic::Info::ZoneInfo kZoneAsia_Qyzylorda; // Asia/Qyzylorda +extern const basic::Info::ZoneInfo kZoneAsia_Riyadh; // Asia/Riyadh +extern const basic::Info::ZoneInfo kZoneAsia_Sakhalin; // Asia/Sakhalin +extern const basic::Info::ZoneInfo kZoneAsia_Samarkand; // Asia/Samarkand +extern const basic::Info::ZoneInfo kZoneAsia_Seoul; // Asia/Seoul +extern const basic::Info::ZoneInfo kZoneAsia_Shanghai; // Asia/Shanghai +extern const basic::Info::ZoneInfo kZoneAsia_Singapore; // Asia/Singapore +extern const basic::Info::ZoneInfo kZoneAsia_Srednekolymsk; // Asia/Srednekolymsk +extern const basic::Info::ZoneInfo kZoneAsia_Taipei; // Asia/Taipei +extern const basic::Info::ZoneInfo kZoneAsia_Tashkent; // Asia/Tashkent +extern const basic::Info::ZoneInfo kZoneAsia_Tbilisi; // Asia/Tbilisi +extern const basic::Info::ZoneInfo kZoneAsia_Tehran; // Asia/Tehran +extern const basic::Info::ZoneInfo kZoneAsia_Thimphu; // Asia/Thimphu +extern const basic::Info::ZoneInfo kZoneAsia_Tokyo; // Asia/Tokyo +extern const basic::Info::ZoneInfo kZoneAsia_Tomsk; // Asia/Tomsk +extern const basic::Info::ZoneInfo kZoneAsia_Ulaanbaatar; // Asia/Ulaanbaatar +extern const basic::Info::ZoneInfo kZoneAsia_Urumqi; // Asia/Urumqi +extern const basic::Info::ZoneInfo kZoneAsia_Ust_Nera; // Asia/Ust-Nera +extern const basic::Info::ZoneInfo kZoneAsia_Vladivostok; // Asia/Vladivostok +extern const basic::Info::ZoneInfo kZoneAsia_Yakutsk; // Asia/Yakutsk +extern const basic::Info::ZoneInfo kZoneAsia_Yangon; // Asia/Yangon +extern const basic::Info::ZoneInfo kZoneAsia_Yekaterinburg; // Asia/Yekaterinburg +extern const basic::Info::ZoneInfo kZoneAsia_Yerevan; // Asia/Yerevan +extern const basic::Info::ZoneInfo kZoneAtlantic_Azores; // Atlantic/Azores +extern const basic::Info::ZoneInfo kZoneAtlantic_Bermuda; // Atlantic/Bermuda +extern const basic::Info::ZoneInfo kZoneAtlantic_Canary; // Atlantic/Canary +extern const basic::Info::ZoneInfo kZoneAtlantic_Cape_Verde; // Atlantic/Cape_Verde +extern const basic::Info::ZoneInfo kZoneAtlantic_Faroe; // Atlantic/Faroe +extern const basic::Info::ZoneInfo kZoneAtlantic_Madeira; // Atlantic/Madeira +extern const basic::Info::ZoneInfo kZoneAtlantic_South_Georgia; // Atlantic/South_Georgia +extern const basic::Info::ZoneInfo kZoneAtlantic_Stanley; // Atlantic/Stanley +extern const basic::Info::ZoneInfo kZoneAustralia_Adelaide; // Australia/Adelaide +extern const basic::Info::ZoneInfo kZoneAustralia_Brisbane; // Australia/Brisbane +extern const basic::Info::ZoneInfo kZoneAustralia_Broken_Hill; // Australia/Broken_Hill +extern const basic::Info::ZoneInfo kZoneAustralia_Darwin; // Australia/Darwin +extern const basic::Info::ZoneInfo kZoneAustralia_Eucla; // Australia/Eucla +extern const basic::Info::ZoneInfo kZoneAustralia_Hobart; // Australia/Hobart +extern const basic::Info::ZoneInfo kZoneAustralia_Lindeman; // Australia/Lindeman +extern const basic::Info::ZoneInfo kZoneAustralia_Lord_Howe; // Australia/Lord_Howe +extern const basic::Info::ZoneInfo kZoneAustralia_Melbourne; // Australia/Melbourne +extern const basic::Info::ZoneInfo kZoneAustralia_Perth; // Australia/Perth +extern const basic::Info::ZoneInfo kZoneAustralia_Sydney; // Australia/Sydney +extern const basic::Info::ZoneInfo kZoneEtc_GMT; // Etc/GMT +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_1; // Etc/GMT+1 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_10; // Etc/GMT+10 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_11; // Etc/GMT+11 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_12; // Etc/GMT+12 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_2; // Etc/GMT+2 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_3; // Etc/GMT+3 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_4; // Etc/GMT+4 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_5; // Etc/GMT+5 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_6; // Etc/GMT+6 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_7; // Etc/GMT+7 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_8; // Etc/GMT+8 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_9; // Etc/GMT+9 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_1; // Etc/GMT-1 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_10; // Etc/GMT-10 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_11; // Etc/GMT-11 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_12; // Etc/GMT-12 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_13; // Etc/GMT-13 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_14; // Etc/GMT-14 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_2; // Etc/GMT-2 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_3; // Etc/GMT-3 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_4; // Etc/GMT-4 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_5; // Etc/GMT-5 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_6; // Etc/GMT-6 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_7; // Etc/GMT-7 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_8; // Etc/GMT-8 +extern const basic::Info::ZoneInfo kZoneEtc_GMT_9; // Etc/GMT-9 +extern const basic::Info::ZoneInfo kZoneEtc_UTC; // Etc/UTC +extern const basic::Info::ZoneInfo kZoneEurope_Andorra; // Europe/Andorra +extern const basic::Info::ZoneInfo kZoneEurope_Astrakhan; // Europe/Astrakhan +extern const basic::Info::ZoneInfo kZoneEurope_Athens; // Europe/Athens +extern const basic::Info::ZoneInfo kZoneEurope_Belgrade; // Europe/Belgrade +extern const basic::Info::ZoneInfo kZoneEurope_Berlin; // Europe/Berlin +extern const basic::Info::ZoneInfo kZoneEurope_Brussels; // Europe/Brussels +extern const basic::Info::ZoneInfo kZoneEurope_Bucharest; // Europe/Bucharest +extern const basic::Info::ZoneInfo kZoneEurope_Budapest; // Europe/Budapest +extern const basic::Info::ZoneInfo kZoneEurope_Chisinau; // Europe/Chisinau +extern const basic::Info::ZoneInfo kZoneEurope_Dublin; // Europe/Dublin +extern const basic::Info::ZoneInfo kZoneEurope_Gibraltar; // Europe/Gibraltar +extern const basic::Info::ZoneInfo kZoneEurope_Helsinki; // Europe/Helsinki +extern const basic::Info::ZoneInfo kZoneEurope_Istanbul; // Europe/Istanbul +extern const basic::Info::ZoneInfo kZoneEurope_Kaliningrad; // Europe/Kaliningrad +extern const basic::Info::ZoneInfo kZoneEurope_Kirov; // Europe/Kirov +extern const basic::Info::ZoneInfo kZoneEurope_Kyiv; // Europe/Kyiv +extern const basic::Info::ZoneInfo kZoneEurope_Lisbon; // Europe/Lisbon +extern const basic::Info::ZoneInfo kZoneEurope_London; // Europe/London +extern const basic::Info::ZoneInfo kZoneEurope_Madrid; // Europe/Madrid +extern const basic::Info::ZoneInfo kZoneEurope_Malta; // Europe/Malta +extern const basic::Info::ZoneInfo kZoneEurope_Minsk; // Europe/Minsk +extern const basic::Info::ZoneInfo kZoneEurope_Moscow; // Europe/Moscow +extern const basic::Info::ZoneInfo kZoneEurope_Paris; // Europe/Paris +extern const basic::Info::ZoneInfo kZoneEurope_Prague; // Europe/Prague +extern const basic::Info::ZoneInfo kZoneEurope_Riga; // Europe/Riga +extern const basic::Info::ZoneInfo kZoneEurope_Rome; // Europe/Rome +extern const basic::Info::ZoneInfo kZoneEurope_Samara; // Europe/Samara +extern const basic::Info::ZoneInfo kZoneEurope_Saratov; // Europe/Saratov +extern const basic::Info::ZoneInfo kZoneEurope_Simferopol; // Europe/Simferopol +extern const basic::Info::ZoneInfo kZoneEurope_Sofia; // Europe/Sofia +extern const basic::Info::ZoneInfo kZoneEurope_Tallinn; // Europe/Tallinn +extern const basic::Info::ZoneInfo kZoneEurope_Tirane; // Europe/Tirane +extern const basic::Info::ZoneInfo kZoneEurope_Ulyanovsk; // Europe/Ulyanovsk +extern const basic::Info::ZoneInfo kZoneEurope_Vienna; // Europe/Vienna +extern const basic::Info::ZoneInfo kZoneEurope_Vilnius; // Europe/Vilnius +extern const basic::Info::ZoneInfo kZoneEurope_Volgograd; // Europe/Volgograd +extern const basic::Info::ZoneInfo kZoneEurope_Warsaw; // Europe/Warsaw +extern const basic::Info::ZoneInfo kZoneEurope_Zurich; // Europe/Zurich +extern const basic::Info::ZoneInfo kZoneIndian_Chagos; // Indian/Chagos +extern const basic::Info::ZoneInfo kZoneIndian_Maldives; // Indian/Maldives +extern const basic::Info::ZoneInfo kZoneIndian_Mauritius; // Indian/Mauritius +extern const basic::Info::ZoneInfo kZonePacific_Apia; // Pacific/Apia +extern const basic::Info::ZoneInfo kZonePacific_Auckland; // Pacific/Auckland +extern const basic::Info::ZoneInfo kZonePacific_Bougainville; // Pacific/Bougainville +extern const basic::Info::ZoneInfo kZonePacific_Chatham; // Pacific/Chatham +extern const basic::Info::ZoneInfo kZonePacific_Easter; // Pacific/Easter +extern const basic::Info::ZoneInfo kZonePacific_Efate; // Pacific/Efate +extern const basic::Info::ZoneInfo kZonePacific_Fakaofo; // Pacific/Fakaofo +extern const basic::Info::ZoneInfo kZonePacific_Fiji; // Pacific/Fiji +extern const basic::Info::ZoneInfo kZonePacific_Galapagos; // Pacific/Galapagos +extern const basic::Info::ZoneInfo kZonePacific_Gambier; // Pacific/Gambier +extern const basic::Info::ZoneInfo kZonePacific_Guadalcanal; // Pacific/Guadalcanal +extern const basic::Info::ZoneInfo kZonePacific_Guam; // Pacific/Guam +extern const basic::Info::ZoneInfo kZonePacific_Honolulu; // Pacific/Honolulu +extern const basic::Info::ZoneInfo kZonePacific_Kanton; // Pacific/Kanton +extern const basic::Info::ZoneInfo kZonePacific_Kiritimati; // Pacific/Kiritimati +extern const basic::Info::ZoneInfo kZonePacific_Kosrae; // Pacific/Kosrae +extern const basic::Info::ZoneInfo kZonePacific_Kwajalein; // Pacific/Kwajalein +extern const basic::Info::ZoneInfo kZonePacific_Marquesas; // Pacific/Marquesas +extern const basic::Info::ZoneInfo kZonePacific_Nauru; // Pacific/Nauru +extern const basic::Info::ZoneInfo kZonePacific_Niue; // Pacific/Niue +extern const basic::Info::ZoneInfo kZonePacific_Norfolk; // Pacific/Norfolk +extern const basic::Info::ZoneInfo kZonePacific_Noumea; // Pacific/Noumea +extern const basic::Info::ZoneInfo kZonePacific_Pago_Pago; // Pacific/Pago_Pago +extern const basic::Info::ZoneInfo kZonePacific_Palau; // Pacific/Palau +extern const basic::Info::ZoneInfo kZonePacific_Pitcairn; // Pacific/Pitcairn +extern const basic::Info::ZoneInfo kZonePacific_Port_Moresby; // Pacific/Port_Moresby +extern const basic::Info::ZoneInfo kZonePacific_Rarotonga; // Pacific/Rarotonga +extern const basic::Info::ZoneInfo kZonePacific_Tahiti; // Pacific/Tahiti +extern const basic::Info::ZoneInfo kZonePacific_Tarawa; // Pacific/Tarawa +extern const basic::Info::ZoneInfo kZonePacific_Tongatapu; // Pacific/Tongatapu + + +// Zone Ids + +const uint32_t kZoneIdAfrica_Abidjan = 0xc21305a3; // Africa/Abidjan +const uint32_t kZoneIdAfrica_Algiers = 0xd94515c1; // Africa/Algiers +const uint32_t kZoneIdAfrica_Bissau = 0x75564141; // Africa/Bissau +const uint32_t kZoneIdAfrica_Cairo = 0x77f8e228; // Africa/Cairo +const uint32_t kZoneIdAfrica_Casablanca = 0xc59f1b33; // Africa/Casablanca +const uint32_t kZoneIdAfrica_Ceuta = 0x77fb46ec; // Africa/Ceuta +const uint32_t kZoneIdAfrica_El_Aaiun = 0x9d6fb118; // Africa/El_Aaiun +const uint32_t kZoneIdAfrica_Johannesburg = 0xd5d157a0; // Africa/Johannesburg +const uint32_t kZoneIdAfrica_Juba = 0xd51b395c; // Africa/Juba +const uint32_t kZoneIdAfrica_Khartoum = 0xfb3d4205; // Africa/Khartoum +const uint32_t kZoneIdAfrica_Lagos = 0x789bb5d0; // Africa/Lagos +const uint32_t kZoneIdAfrica_Maputo = 0x8e6ca1f0; // Africa/Maputo +const uint32_t kZoneIdAfrica_Monrovia = 0x0ce90385; // Africa/Monrovia +const uint32_t kZoneIdAfrica_Nairobi = 0xa87ab57e; // Africa/Nairobi +const uint32_t kZoneIdAfrica_Ndjamena = 0x9fe09898; // Africa/Ndjamena +const uint32_t kZoneIdAfrica_Sao_Tome = 0x61b319d1; // Africa/Sao_Tome +const uint32_t kZoneIdAfrica_Tripoli = 0x9dfebd3d; // Africa/Tripoli +const uint32_t kZoneIdAfrica_Tunis = 0x79378e6d; // Africa/Tunis +const uint32_t kZoneIdAfrica_Windhoek = 0x789c9bd3; // Africa/Windhoek +const uint32_t kZoneIdAmerica_Adak = 0x97fe49d7; // America/Adak +const uint32_t kZoneIdAmerica_Anchorage = 0x5a79260e; // America/Anchorage +const uint32_t kZoneIdAmerica_Araguaina = 0x6f9a3aef; // America/Araguaina +const uint32_t kZoneIdAmerica_Argentina_Buenos_Aires = 0xd43b4c0d; // America/Argentina/Buenos_Aires +const uint32_t kZoneIdAmerica_Argentina_Catamarca = 0x8d40986b; // America/Argentina/Catamarca +const uint32_t kZoneIdAmerica_Argentina_Cordoba = 0xbfccc308; // America/Argentina/Cordoba +const uint32_t kZoneIdAmerica_Argentina_Jujuy = 0x5f2f46c5; // America/Argentina/Jujuy +const uint32_t kZoneIdAmerica_Argentina_La_Rioja = 0xa46b7eef; // America/Argentina/La_Rioja +const uint32_t kZoneIdAmerica_Argentina_Mendoza = 0xa9f72d5c; // America/Argentina/Mendoza +const uint32_t kZoneIdAmerica_Argentina_Rio_Gallegos = 0xc5b0f565; // America/Argentina/Rio_Gallegos +const uint32_t kZoneIdAmerica_Argentina_Salta = 0x5fc73403; // America/Argentina/Salta +const uint32_t kZoneIdAmerica_Argentina_San_Juan = 0x3e1009bd; // America/Argentina/San_Juan +const uint32_t kZoneIdAmerica_Argentina_San_Luis = 0x3e11238c; // America/Argentina/San_Luis +const uint32_t kZoneIdAmerica_Argentina_Tucuman = 0xe96399eb; // America/Argentina/Tucuman +const uint32_t kZoneIdAmerica_Argentina_Ushuaia = 0x320dcdde; // America/Argentina/Ushuaia +const uint32_t kZoneIdAmerica_Bahia = 0x97d815fb; // America/Bahia +const uint32_t kZoneIdAmerica_Bahia_Banderas = 0x14f6329a; // America/Bahia_Banderas +const uint32_t kZoneIdAmerica_Barbados = 0xcbbc3b04; // America/Barbados +const uint32_t kZoneIdAmerica_Belem = 0x97da580b; // America/Belem +const uint32_t kZoneIdAmerica_Belize = 0x93256c81; // America/Belize +const uint32_t kZoneIdAmerica_Boa_Vista = 0x0a7b7efe; // America/Boa_Vista +const uint32_t kZoneIdAmerica_Bogota = 0x93d7bc62; // America/Bogota +const uint32_t kZoneIdAmerica_Boise = 0x97dfc8d8; // America/Boise +const uint32_t kZoneIdAmerica_Cambridge_Bay = 0xd5a44aff; // America/Cambridge_Bay +const uint32_t kZoneIdAmerica_Campo_Grande = 0xfec3e7a6; // America/Campo_Grande +const uint32_t kZoneIdAmerica_Cancun = 0x953331be; // America/Cancun +const uint32_t kZoneIdAmerica_Caracas = 0x3be064f4; // America/Caracas +const uint32_t kZoneIdAmerica_Cayenne = 0x3c617269; // America/Cayenne +const uint32_t kZoneIdAmerica_Chicago = 0x4b92b5d4; // America/Chicago +const uint32_t kZoneIdAmerica_Chihuahua = 0x8827d776; // America/Chihuahua +const uint32_t kZoneIdAmerica_Ciudad_Juarez = 0x7347fc60; // America/Ciudad_Juarez +const uint32_t kZoneIdAmerica_Costa_Rica = 0x63ff66be; // America/Costa_Rica +const uint32_t kZoneIdAmerica_Cuiaba = 0x969a52eb; // America/Cuiaba +const uint32_t kZoneIdAmerica_Danmarkshavn = 0xf554d204; // America/Danmarkshavn +const uint32_t kZoneIdAmerica_Dawson = 0x978d8d12; // America/Dawson +const uint32_t kZoneIdAmerica_Dawson_Creek = 0x6cf24e5b; // America/Dawson_Creek +const uint32_t kZoneIdAmerica_Denver = 0x97d10b2a; // America/Denver +const uint32_t kZoneIdAmerica_Detroit = 0x925cfbc1; // America/Detroit +const uint32_t kZoneIdAmerica_Edmonton = 0x6cb9484a; // America/Edmonton +const uint32_t kZoneIdAmerica_Eirunepe = 0xf9b29683; // America/Eirunepe +const uint32_t kZoneIdAmerica_El_Salvador = 0x752ad652; // America/El_Salvador +const uint32_t kZoneIdAmerica_Fort_Nelson = 0x3f437e0f; // America/Fort_Nelson +const uint32_t kZoneIdAmerica_Fortaleza = 0x2ad018ee; // America/Fortaleza +const uint32_t kZoneIdAmerica_Glace_Bay = 0x9681f8dd; // America/Glace_Bay +const uint32_t kZoneIdAmerica_Goose_Bay = 0xb649541e; // America/Goose_Bay +const uint32_t kZoneIdAmerica_Grand_Turk = 0x6e216197; // America/Grand_Turk +const uint32_t kZoneIdAmerica_Guatemala = 0x0c8259f7; // America/Guatemala +const uint32_t kZoneIdAmerica_Guayaquil = 0x17e64958; // America/Guayaquil +const uint32_t kZoneIdAmerica_Guyana = 0x9ff7bd0b; // America/Guyana +const uint32_t kZoneIdAmerica_Halifax = 0xbc5b7183; // America/Halifax +const uint32_t kZoneIdAmerica_Havana = 0xa0e15675; // America/Havana +const uint32_t kZoneIdAmerica_Hermosillo = 0x065d21c4; // America/Hermosillo +const uint32_t kZoneIdAmerica_Indiana_Indianapolis = 0x28a669a4; // America/Indiana/Indianapolis +const uint32_t kZoneIdAmerica_Indiana_Knox = 0x6554adc9; // America/Indiana/Knox +const uint32_t kZoneIdAmerica_Indiana_Marengo = 0x2feeee72; // America/Indiana/Marengo +const uint32_t kZoneIdAmerica_Indiana_Petersburg = 0x94ac7acc; // America/Indiana/Petersburg +const uint32_t kZoneIdAmerica_Indiana_Tell_City = 0x09263612; // America/Indiana/Tell_City +const uint32_t kZoneIdAmerica_Indiana_Vevay = 0x10aca054; // America/Indiana/Vevay +const uint32_t kZoneIdAmerica_Indiana_Vincennes = 0x28a0b212; // America/Indiana/Vincennes +const uint32_t kZoneIdAmerica_Indiana_Winamac = 0x4413fa69; // America/Indiana/Winamac +const uint32_t kZoneIdAmerica_Inuvik = 0xa42189fc; // America/Inuvik +const uint32_t kZoneIdAmerica_Iqaluit = 0x2de310bf; // America/Iqaluit +const uint32_t kZoneIdAmerica_Jamaica = 0x565dad6c; // America/Jamaica +const uint32_t kZoneIdAmerica_Juneau = 0xa6f13e2e; // America/Juneau +const uint32_t kZoneIdAmerica_Kentucky_Louisville = 0x1a21024b; // America/Kentucky/Louisville +const uint32_t kZoneIdAmerica_Kentucky_Monticello = 0xde71c439; // America/Kentucky/Monticello +const uint32_t kZoneIdAmerica_La_Paz = 0xaa29125d; // America/La_Paz +const uint32_t kZoneIdAmerica_Lima = 0x980468c9; // America/Lima +const uint32_t kZoneIdAmerica_Los_Angeles = 0xb7f7e8f2; // America/Los_Angeles +const uint32_t kZoneIdAmerica_Maceio = 0xac80c6d4; // America/Maceio +const uint32_t kZoneIdAmerica_Managua = 0x3d5e7600; // America/Managua +const uint32_t kZoneIdAmerica_Manaus = 0xac86bf8b; // America/Manaus +const uint32_t kZoneIdAmerica_Martinique = 0x551e84c5; // America/Martinique +const uint32_t kZoneIdAmerica_Matamoros = 0xdd1b0259; // America/Matamoros +const uint32_t kZoneIdAmerica_Mazatlan = 0x0532189e; // America/Mazatlan +const uint32_t kZoneIdAmerica_Menominee = 0xe0e9c583; // America/Menominee +const uint32_t kZoneIdAmerica_Merida = 0xacd172d8; // America/Merida +const uint32_t kZoneIdAmerica_Metlakatla = 0x84de2686; // America/Metlakatla +const uint32_t kZoneIdAmerica_Mexico_City = 0xd0d93f43; // America/Mexico_City +const uint32_t kZoneIdAmerica_Miquelon = 0x59674330; // America/Miquelon +const uint32_t kZoneIdAmerica_Moncton = 0x5e07fe24; // America/Moncton +const uint32_t kZoneIdAmerica_Monterrey = 0x269a1deb; // America/Monterrey +const uint32_t kZoneIdAmerica_Montevideo = 0xfa214780; // America/Montevideo +const uint32_t kZoneIdAmerica_New_York = 0x1e2a7654; // America/New_York +const uint32_t kZoneIdAmerica_Nome = 0x98059b15; // America/Nome +const uint32_t kZoneIdAmerica_Noronha = 0xab5116fb; // America/Noronha +const uint32_t kZoneIdAmerica_North_Dakota_Beulah = 0x9b52b384; // America/North_Dakota/Beulah +const uint32_t kZoneIdAmerica_North_Dakota_Center = 0x9da42814; // America/North_Dakota/Center +const uint32_t kZoneIdAmerica_North_Dakota_New_Salem = 0x04f9958e; // America/North_Dakota/New_Salem +const uint32_t kZoneIdAmerica_Nuuk = 0x9805b5a9; // America/Nuuk +const uint32_t kZoneIdAmerica_Ojinaga = 0xebfde83f; // America/Ojinaga +const uint32_t kZoneIdAmerica_Panama = 0xb3863854; // America/Panama +const uint32_t kZoneIdAmerica_Paramaribo = 0xb319e4c4; // America/Paramaribo +const uint32_t kZoneIdAmerica_Phoenix = 0x34b5af01; // America/Phoenix +const uint32_t kZoneIdAmerica_Port_au_Prince = 0x8e4a7bdc; // America/Port-au-Prince +const uint32_t kZoneIdAmerica_Porto_Velho = 0x6b1aac77; // America/Porto_Velho +const uint32_t kZoneIdAmerica_Puerto_Rico = 0x6752ca31; // America/Puerto_Rico +const uint32_t kZoneIdAmerica_Punta_Arenas = 0xc2c3bce7; // America/Punta_Arenas +const uint32_t kZoneIdAmerica_Rankin_Inlet = 0xc8de4984; // America/Rankin_Inlet +const uint32_t kZoneIdAmerica_Recife = 0xb8730494; // America/Recife +const uint32_t kZoneIdAmerica_Regina = 0xb875371c; // America/Regina +const uint32_t kZoneIdAmerica_Resolute = 0xc7093459; // America/Resolute +const uint32_t kZoneIdAmerica_Rio_Branco = 0x9d352764; // America/Rio_Branco +const uint32_t kZoneIdAmerica_Santarem = 0x740caec1; // America/Santarem +const uint32_t kZoneIdAmerica_Santiago = 0x7410c9bc; // America/Santiago +const uint32_t kZoneIdAmerica_Santo_Domingo = 0x75a0d177; // America/Santo_Domingo +const uint32_t kZoneIdAmerica_Sao_Paulo = 0x1063bfc9; // America/Sao_Paulo +const uint32_t kZoneIdAmerica_Sitka = 0x99104ce2; // America/Sitka +const uint32_t kZoneIdAmerica_St_Johns = 0x04b14e6e; // America/St_Johns +const uint32_t kZoneIdAmerica_Swift_Current = 0xdef98e55; // America/Swift_Current +const uint32_t kZoneIdAmerica_Tegucigalpa = 0xbfd6fd4c; // America/Tegucigalpa +const uint32_t kZoneIdAmerica_Thule = 0x9921dd68; // America/Thule +const uint32_t kZoneIdAmerica_Tijuana = 0x6aa1df72; // America/Tijuana +const uint32_t kZoneIdAmerica_Toronto = 0x792e851b; // America/Toronto +const uint32_t kZoneIdAmerica_Vancouver = 0x2c6f6b1f; // America/Vancouver +const uint32_t kZoneIdAmerica_Whitehorse = 0x54e0e3e8; // America/Whitehorse +const uint32_t kZoneIdAmerica_Winnipeg = 0x8c7dafc7; // America/Winnipeg +const uint32_t kZoneIdAmerica_Yakutat = 0xd8ee31e9; // America/Yakutat +const uint32_t kZoneIdAntarctica_Casey = 0xe2022583; // Antarctica/Casey +const uint32_t kZoneIdAntarctica_Davis = 0xe2144b45; // Antarctica/Davis +const uint32_t kZoneIdAntarctica_Macquarie = 0x92f47626; // Antarctica/Macquarie +const uint32_t kZoneIdAntarctica_Mawson = 0x399cd863; // Antarctica/Mawson +const uint32_t kZoneIdAntarctica_Palmer = 0x40962f4f; // Antarctica/Palmer +const uint32_t kZoneIdAntarctica_Rothera = 0x0e86d203; // Antarctica/Rothera +const uint32_t kZoneIdAntarctica_Troll = 0xe33f085b; // Antarctica/Troll +const uint32_t kZoneIdAntarctica_Vostok = 0x4f966fd4; // Antarctica/Vostok +const uint32_t kZoneIdAsia_Amman = 0x148d21bc; // Asia/Amman +const uint32_t kZoneIdAsia_Anadyr = 0xa63cebd1; // Asia/Anadyr +const uint32_t kZoneIdAsia_Aqtau = 0x148f710e; // Asia/Aqtau +const uint32_t kZoneIdAsia_Aqtobe = 0xa67dcc4e; // Asia/Aqtobe +const uint32_t kZoneIdAsia_Ashgabat = 0xba87598d; // Asia/Ashgabat +const uint32_t kZoneIdAsia_Atyrau = 0xa6b6e068; // Asia/Atyrau +const uint32_t kZoneIdAsia_Baghdad = 0x9ceffbed; // Asia/Baghdad +const uint32_t kZoneIdAsia_Baku = 0x1fa788b5; // Asia/Baku +const uint32_t kZoneIdAsia_Bangkok = 0x9d6e3aaf; // Asia/Bangkok +const uint32_t kZoneIdAsia_Barnaul = 0x9dba4997; // Asia/Barnaul +const uint32_t kZoneIdAsia_Beirut = 0xa7f3d5fd; // Asia/Beirut +const uint32_t kZoneIdAsia_Bishkek = 0xb0728553; // Asia/Bishkek +const uint32_t kZoneIdAsia_Chita = 0x14ae863b; // Asia/Chita +const uint32_t kZoneIdAsia_Colombo = 0x0af0e91d; // Asia/Colombo +const uint32_t kZoneIdAsia_Damascus = 0x20fbb063; // Asia/Damascus +const uint32_t kZoneIdAsia_Dhaka = 0x14c07b8b; // Asia/Dhaka +const uint32_t kZoneIdAsia_Dili = 0x1fa8c394; // Asia/Dili +const uint32_t kZoneIdAsia_Dubai = 0x14c79f77; // Asia/Dubai +const uint32_t kZoneIdAsia_Dushanbe = 0x32fc5c3c; // Asia/Dushanbe +const uint32_t kZoneIdAsia_Famagusta = 0x289b4f8b; // Asia/Famagusta +const uint32_t kZoneIdAsia_Ho_Chi_Minh = 0x20f2d127; // Asia/Ho_Chi_Minh +const uint32_t kZoneIdAsia_Hong_Kong = 0x577f28ac; // Asia/Hong_Kong +const uint32_t kZoneIdAsia_Hovd = 0x1fab0fe3; // Asia/Hovd +const uint32_t kZoneIdAsia_Irkutsk = 0xdfbf213f; // Asia/Irkutsk +const uint32_t kZoneIdAsia_Jakarta = 0x0506ab50; // Asia/Jakarta +const uint32_t kZoneIdAsia_Jayapura = 0xc6833c2f; // Asia/Jayapura +const uint32_t kZoneIdAsia_Jerusalem = 0x5becd23a; // Asia/Jerusalem +const uint32_t kZoneIdAsia_Kabul = 0x153b5601; // Asia/Kabul +const uint32_t kZoneIdAsia_Kamchatka = 0x73baf9d7; // Asia/Kamchatka +const uint32_t kZoneIdAsia_Karachi = 0x527f5245; // Asia/Karachi +const uint32_t kZoneIdAsia_Kathmandu = 0x9a96ce6f; // Asia/Kathmandu +const uint32_t kZoneIdAsia_Khandyga = 0x9685a4d9; // Asia/Khandyga +const uint32_t kZoneIdAsia_Kolkata = 0x72c06cd9; // Asia/Kolkata +const uint32_t kZoneIdAsia_Krasnoyarsk = 0xd0376c6a; // Asia/Krasnoyarsk +const uint32_t kZoneIdAsia_Kuching = 0x801b003b; // Asia/Kuching +const uint32_t kZoneIdAsia_Macau = 0x155f88b9; // Asia/Macau +const uint32_t kZoneIdAsia_Magadan = 0xebacc19b; // Asia/Magadan +const uint32_t kZoneIdAsia_Makassar = 0x6aa21c85; // Asia/Makassar +const uint32_t kZoneIdAsia_Manila = 0xc156c944; // Asia/Manila +const uint32_t kZoneIdAsia_Nicosia = 0x4b0fcf78; // Asia/Nicosia +const uint32_t kZoneIdAsia_Novokuznetsk = 0x69264f93; // Asia/Novokuznetsk +const uint32_t kZoneIdAsia_Novosibirsk = 0xa2a435cb; // Asia/Novosibirsk +const uint32_t kZoneIdAsia_Omsk = 0x1faeddac; // Asia/Omsk +const uint32_t kZoneIdAsia_Oral = 0x1faef0a0; // Asia/Oral +const uint32_t kZoneIdAsia_Pontianak = 0x1a76c057; // Asia/Pontianak +const uint32_t kZoneIdAsia_Pyongyang = 0x93ed1c8e; // Asia/Pyongyang +const uint32_t kZoneIdAsia_Qatar = 0x15a8330b; // Asia/Qatar +const uint32_t kZoneIdAsia_Qyzylorda = 0x71282e81; // Asia/Qyzylorda +const uint32_t kZoneIdAsia_Riyadh = 0xcd973d93; // Asia/Riyadh +const uint32_t kZoneIdAsia_Sakhalin = 0xf4a1c9bd; // Asia/Sakhalin +const uint32_t kZoneIdAsia_Samarkand = 0x13ae5104; // Asia/Samarkand +const uint32_t kZoneIdAsia_Seoul = 0x15ce82da; // Asia/Seoul +const uint32_t kZoneIdAsia_Shanghai = 0xf895a7f5; // Asia/Shanghai +const uint32_t kZoneIdAsia_Singapore = 0xcf8581fa; // Asia/Singapore +const uint32_t kZoneIdAsia_Srednekolymsk = 0xbf8e337d; // Asia/Srednekolymsk +const uint32_t kZoneIdAsia_Taipei = 0xd1a844ae; // Asia/Taipei +const uint32_t kZoneIdAsia_Tashkent = 0xf3924254; // Asia/Tashkent +const uint32_t kZoneIdAsia_Tbilisi = 0x0903e442; // Asia/Tbilisi +const uint32_t kZoneIdAsia_Tehran = 0xd1f02254; // Asia/Tehran +const uint32_t kZoneIdAsia_Thimphu = 0x170380d1; // Asia/Thimphu +const uint32_t kZoneIdAsia_Tokyo = 0x15e606a8; // Asia/Tokyo +const uint32_t kZoneIdAsia_Tomsk = 0x15e60e60; // Asia/Tomsk +const uint32_t kZoneIdAsia_Ulaanbaatar = 0x30f0cc4e; // Asia/Ulaanbaatar +const uint32_t kZoneIdAsia_Urumqi = 0xd5379735; // Asia/Urumqi +const uint32_t kZoneIdAsia_Ust_Nera = 0x4785f921; // Asia/Ust-Nera +const uint32_t kZoneIdAsia_Vladivostok = 0x29de34a8; // Asia/Vladivostok +const uint32_t kZoneIdAsia_Yakutsk = 0x87bb3a9e; // Asia/Yakutsk +const uint32_t kZoneIdAsia_Yangon = 0xdd54a8be; // Asia/Yangon +const uint32_t kZoneIdAsia_Yekaterinburg = 0xfb544c6e; // Asia/Yekaterinburg +const uint32_t kZoneIdAsia_Yerevan = 0x9185c8cc; // Asia/Yerevan +const uint32_t kZoneIdAtlantic_Azores = 0xf93ed918; // Atlantic/Azores +const uint32_t kZoneIdAtlantic_Bermuda = 0x3d4bb1c4; // Atlantic/Bermuda +const uint32_t kZoneIdAtlantic_Canary = 0xfc23f2c2; // Atlantic/Canary +const uint32_t kZoneIdAtlantic_Cape_Verde = 0x5c5e1772; // Atlantic/Cape_Verde +const uint32_t kZoneIdAtlantic_Faroe = 0xe110a971; // Atlantic/Faroe +const uint32_t kZoneIdAtlantic_Madeira = 0x81b5c037; // Atlantic/Madeira +const uint32_t kZoneIdAtlantic_South_Georgia = 0x33013174; // Atlantic/South_Georgia +const uint32_t kZoneIdAtlantic_Stanley = 0x7bb3e1c4; // Atlantic/Stanley +const uint32_t kZoneIdAustralia_Adelaide = 0x2428e8a3; // Australia/Adelaide +const uint32_t kZoneIdAustralia_Brisbane = 0x4fedc9c0; // Australia/Brisbane +const uint32_t kZoneIdAustralia_Broken_Hill = 0xb06eada3; // Australia/Broken_Hill +const uint32_t kZoneIdAustralia_Darwin = 0x2876bdff; // Australia/Darwin +const uint32_t kZoneIdAustralia_Eucla = 0x8cf99e44; // Australia/Eucla +const uint32_t kZoneIdAustralia_Hobart = 0x32bf951a; // Australia/Hobart +const uint32_t kZoneIdAustralia_Lindeman = 0xe05029e2; // Australia/Lindeman +const uint32_t kZoneIdAustralia_Lord_Howe = 0xa748b67d; // Australia/Lord_Howe +const uint32_t kZoneIdAustralia_Melbourne = 0x0fe559a3; // Australia/Melbourne +const uint32_t kZoneIdAustralia_Perth = 0x8db8269d; // Australia/Perth +const uint32_t kZoneIdAustralia_Sydney = 0x4d1e9776; // Australia/Sydney +const uint32_t kZoneIdEtc_GMT = 0xd8e2de58; // Etc/GMT +const uint32_t kZoneIdEtc_GMT_PLUS_1 = 0x9d13da14; // Etc/GMT+1 +const uint32_t kZoneIdEtc_GMT_PLUS_10 = 0x3f8f1cc4; // Etc/GMT+10 +const uint32_t kZoneIdEtc_GMT_PLUS_11 = 0x3f8f1cc5; // Etc/GMT+11 +const uint32_t kZoneIdEtc_GMT_PLUS_12 = 0x3f8f1cc6; // Etc/GMT+12 +const uint32_t kZoneIdEtc_GMT_PLUS_2 = 0x9d13da15; // Etc/GMT+2 +const uint32_t kZoneIdEtc_GMT_PLUS_3 = 0x9d13da16; // Etc/GMT+3 +const uint32_t kZoneIdEtc_GMT_PLUS_4 = 0x9d13da17; // Etc/GMT+4 +const uint32_t kZoneIdEtc_GMT_PLUS_5 = 0x9d13da18; // Etc/GMT+5 +const uint32_t kZoneIdEtc_GMT_PLUS_6 = 0x9d13da19; // Etc/GMT+6 +const uint32_t kZoneIdEtc_GMT_PLUS_7 = 0x9d13da1a; // Etc/GMT+7 +const uint32_t kZoneIdEtc_GMT_PLUS_8 = 0x9d13da1b; // Etc/GMT+8 +const uint32_t kZoneIdEtc_GMT_PLUS_9 = 0x9d13da1c; // Etc/GMT+9 +const uint32_t kZoneIdEtc_GMT_1 = 0x9d13da56; // Etc/GMT-1 +const uint32_t kZoneIdEtc_GMT_10 = 0x3f8f2546; // Etc/GMT-10 +const uint32_t kZoneIdEtc_GMT_11 = 0x3f8f2547; // Etc/GMT-11 +const uint32_t kZoneIdEtc_GMT_12 = 0x3f8f2548; // Etc/GMT-12 +const uint32_t kZoneIdEtc_GMT_13 = 0x3f8f2549; // Etc/GMT-13 +const uint32_t kZoneIdEtc_GMT_14 = 0x3f8f254a; // Etc/GMT-14 +const uint32_t kZoneIdEtc_GMT_2 = 0x9d13da57; // Etc/GMT-2 +const uint32_t kZoneIdEtc_GMT_3 = 0x9d13da58; // Etc/GMT-3 +const uint32_t kZoneIdEtc_GMT_4 = 0x9d13da59; // Etc/GMT-4 +const uint32_t kZoneIdEtc_GMT_5 = 0x9d13da5a; // Etc/GMT-5 +const uint32_t kZoneIdEtc_GMT_6 = 0x9d13da5b; // Etc/GMT-6 +const uint32_t kZoneIdEtc_GMT_7 = 0x9d13da5c; // Etc/GMT-7 +const uint32_t kZoneIdEtc_GMT_8 = 0x9d13da5d; // Etc/GMT-8 +const uint32_t kZoneIdEtc_GMT_9 = 0x9d13da5e; // Etc/GMT-9 +const uint32_t kZoneIdEtc_UTC = 0xd8e31abc; // Etc/UTC +const uint32_t kZoneIdEurope_Andorra = 0x97f6764b; // Europe/Andorra +const uint32_t kZoneIdEurope_Astrakhan = 0xe22256e1; // Europe/Astrakhan +const uint32_t kZoneIdEurope_Athens = 0x4318fa27; // Europe/Athens +const uint32_t kZoneIdEurope_Belgrade = 0xe0532b3a; // Europe/Belgrade +const uint32_t kZoneIdEurope_Berlin = 0x44644c20; // Europe/Berlin +const uint32_t kZoneIdEurope_Brussels = 0xdee07337; // Europe/Brussels +const uint32_t kZoneIdEurope_Bucharest = 0xfb349ec5; // Europe/Bucharest +const uint32_t kZoneIdEurope_Budapest = 0x9ce0197c; // Europe/Budapest +const uint32_t kZoneIdEurope_Chisinau = 0xad58aa18; // Europe/Chisinau +const uint32_t kZoneIdEurope_Dublin = 0x4a275f62; // Europe/Dublin +const uint32_t kZoneIdEurope_Gibraltar = 0xf8e325fc; // Europe/Gibraltar +const uint32_t kZoneIdEurope_Helsinki = 0x6ab2975b; // Europe/Helsinki +const uint32_t kZoneIdEurope_Istanbul = 0x9e09d6e6; // Europe/Istanbul +const uint32_t kZoneIdEurope_Kaliningrad = 0xd33b2f28; // Europe/Kaliningrad +const uint32_t kZoneIdEurope_Kirov = 0xfaf5abef; // Europe/Kirov +const uint32_t kZoneIdEurope_Kyiv = 0xa2c1e347; // Europe/Kyiv +const uint32_t kZoneIdEurope_Lisbon = 0x5c00a70b; // Europe/Lisbon +const uint32_t kZoneIdEurope_London = 0x5c6a84ae; // Europe/London +const uint32_t kZoneIdEurope_Madrid = 0x5dbd1535; // Europe/Madrid +const uint32_t kZoneIdEurope_Malta = 0xfb1560f3; // Europe/Malta +const uint32_t kZoneIdEurope_Minsk = 0xfb19cc66; // Europe/Minsk +const uint32_t kZoneIdEurope_Moscow = 0x5ec266fc; // Europe/Moscow +const uint32_t kZoneIdEurope_Paris = 0xfb4bc2a3; // Europe/Paris +const uint32_t kZoneIdEurope_Prague = 0x65ee5d48; // Europe/Prague +const uint32_t kZoneIdEurope_Riga = 0xa2c57587; // Europe/Riga +const uint32_t kZoneIdEurope_Rome = 0xa2c58fd7; // Europe/Rome +const uint32_t kZoneIdEurope_Samara = 0x6bc0b139; // Europe/Samara +const uint32_t kZoneIdEurope_Saratov = 0xe4315da4; // Europe/Saratov +const uint32_t kZoneIdEurope_Simferopol = 0xda9eb724; // Europe/Simferopol +const uint32_t kZoneIdEurope_Sofia = 0xfb898656; // Europe/Sofia +const uint32_t kZoneIdEurope_Tallinn = 0x30c4e096; // Europe/Tallinn +const uint32_t kZoneIdEurope_Tirane = 0x6ea95b47; // Europe/Tirane +const uint32_t kZoneIdEurope_Ulyanovsk = 0xe03783d0; // Europe/Ulyanovsk +const uint32_t kZoneIdEurope_Vienna = 0x734cc2e5; // Europe/Vienna +const uint32_t kZoneIdEurope_Vilnius = 0xdd63b8ce; // Europe/Vilnius +const uint32_t kZoneIdEurope_Volgograd = 0x3ed0f389; // Europe/Volgograd +const uint32_t kZoneIdEurope_Warsaw = 0x75185c19; // Europe/Warsaw +const uint32_t kZoneIdEurope_Zurich = 0x7d8195b9; // Europe/Zurich +const uint32_t kZoneIdIndian_Chagos = 0x456f7c3c; // Indian/Chagos +const uint32_t kZoneIdIndian_Maldives = 0x9869681c; // Indian/Maldives +const uint32_t kZoneIdIndian_Mauritius = 0x7b09c02a; // Indian/Mauritius +const uint32_t kZoneIdPacific_Apia = 0x23359b5e; // Pacific/Apia +const uint32_t kZoneIdPacific_Auckland = 0x25062f86; // Pacific/Auckland +const uint32_t kZoneIdPacific_Bougainville = 0x5e10f7a4; // Pacific/Bougainville +const uint32_t kZoneIdPacific_Chatham = 0x2f0de999; // Pacific/Chatham +const uint32_t kZoneIdPacific_Easter = 0xcf54f7e7; // Pacific/Easter +const uint32_t kZoneIdPacific_Efate = 0x8a2bce28; // Pacific/Efate +const uint32_t kZoneIdPacific_Fakaofo = 0x06532bba; // Pacific/Fakaofo +const uint32_t kZoneIdPacific_Fiji = 0x23383ba5; // Pacific/Fiji +const uint32_t kZoneIdPacific_Galapagos = 0xa952f752; // Pacific/Galapagos +const uint32_t kZoneIdPacific_Gambier = 0x53720c3a; // Pacific/Gambier +const uint32_t kZoneIdPacific_Guadalcanal = 0xf4dd25f0; // Pacific/Guadalcanal +const uint32_t kZoneIdPacific_Guam = 0x2338f9ed; // Pacific/Guam +const uint32_t kZoneIdPacific_Honolulu = 0xe6e70af9; // Pacific/Honolulu +const uint32_t kZoneIdPacific_Kanton = 0xdd512f0e; // Pacific/Kanton +const uint32_t kZoneIdPacific_Kiritimati = 0x8305073a; // Pacific/Kiritimati +const uint32_t kZoneIdPacific_Kosrae = 0xde5139a8; // Pacific/Kosrae +const uint32_t kZoneIdPacific_Kwajalein = 0x8e216759; // Pacific/Kwajalein +const uint32_t kZoneIdPacific_Marquesas = 0x57ca7135; // Pacific/Marquesas +const uint32_t kZoneIdPacific_Nauru = 0x8acc41ae; // Pacific/Nauru +const uint32_t kZoneIdPacific_Niue = 0x233ca014; // Pacific/Niue +const uint32_t kZoneIdPacific_Norfolk = 0x8f4eb4be; // Pacific/Norfolk +const uint32_t kZoneIdPacific_Noumea = 0xe551b788; // Pacific/Noumea +const uint32_t kZoneIdPacific_Pago_Pago = 0x603aebd0; // Pacific/Pago_Pago +const uint32_t kZoneIdPacific_Palau = 0x8af04a36; // Pacific/Palau +const uint32_t kZoneIdPacific_Pitcairn = 0x8837d8bd; // Pacific/Pitcairn +const uint32_t kZoneIdPacific_Port_Moresby = 0xa7ba7f68; // Pacific/Port_Moresby +const uint32_t kZoneIdPacific_Rarotonga = 0x9981a3b0; // Pacific/Rarotonga +const uint32_t kZoneIdPacific_Tahiti = 0xf24c2446; // Pacific/Tahiti +const uint32_t kZoneIdPacific_Tarawa = 0xf2517e63; // Pacific/Tarawa +const uint32_t kZoneIdPacific_Tongatapu = 0x262ca836; // Pacific/Tongatapu + + +//--------------------------------------------------------------------------- +// Supported links: 257 +//--------------------------------------------------------------------------- + +extern const basic::Info::ZoneInfo kZoneAfrica_Accra; // Africa/Accra -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAfrica_Addis_Ababa; // Africa/Addis_Ababa -> Africa/Nairobi +extern const basic::Info::ZoneInfo kZoneAfrica_Asmara; // Africa/Asmara -> Africa/Nairobi +extern const basic::Info::ZoneInfo kZoneAfrica_Asmera; // Africa/Asmera -> Africa/Nairobi +extern const basic::Info::ZoneInfo kZoneAfrica_Bamako; // Africa/Bamako -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAfrica_Bangui; // Africa/Bangui -> Africa/Lagos +extern const basic::Info::ZoneInfo kZoneAfrica_Banjul; // Africa/Banjul -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAfrica_Blantyre; // Africa/Blantyre -> Africa/Maputo +extern const basic::Info::ZoneInfo kZoneAfrica_Brazzaville; // Africa/Brazzaville -> Africa/Lagos +extern const basic::Info::ZoneInfo kZoneAfrica_Bujumbura; // Africa/Bujumbura -> Africa/Maputo +extern const basic::Info::ZoneInfo kZoneAfrica_Conakry; // Africa/Conakry -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAfrica_Dakar; // Africa/Dakar -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAfrica_Dar_es_Salaam; // Africa/Dar_es_Salaam -> Africa/Nairobi +extern const basic::Info::ZoneInfo kZoneAfrica_Djibouti; // Africa/Djibouti -> Africa/Nairobi +extern const basic::Info::ZoneInfo kZoneAfrica_Douala; // Africa/Douala -> Africa/Lagos +extern const basic::Info::ZoneInfo kZoneAfrica_Freetown; // Africa/Freetown -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAfrica_Gaborone; // Africa/Gaborone -> Africa/Maputo +extern const basic::Info::ZoneInfo kZoneAfrica_Harare; // Africa/Harare -> Africa/Maputo +extern const basic::Info::ZoneInfo kZoneAfrica_Kampala; // Africa/Kampala -> Africa/Nairobi +extern const basic::Info::ZoneInfo kZoneAfrica_Kigali; // Africa/Kigali -> Africa/Maputo +extern const basic::Info::ZoneInfo kZoneAfrica_Kinshasa; // Africa/Kinshasa -> Africa/Lagos +extern const basic::Info::ZoneInfo kZoneAfrica_Libreville; // Africa/Libreville -> Africa/Lagos +extern const basic::Info::ZoneInfo kZoneAfrica_Lome; // Africa/Lome -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAfrica_Luanda; // Africa/Luanda -> Africa/Lagos +extern const basic::Info::ZoneInfo kZoneAfrica_Lubumbashi; // Africa/Lubumbashi -> Africa/Maputo +extern const basic::Info::ZoneInfo kZoneAfrica_Lusaka; // Africa/Lusaka -> Africa/Maputo +extern const basic::Info::ZoneInfo kZoneAfrica_Malabo; // Africa/Malabo -> Africa/Lagos +extern const basic::Info::ZoneInfo kZoneAfrica_Maseru; // Africa/Maseru -> Africa/Johannesburg +extern const basic::Info::ZoneInfo kZoneAfrica_Mbabane; // Africa/Mbabane -> Africa/Johannesburg +extern const basic::Info::ZoneInfo kZoneAfrica_Mogadishu; // Africa/Mogadishu -> Africa/Nairobi +extern const basic::Info::ZoneInfo kZoneAfrica_Niamey; // Africa/Niamey -> Africa/Lagos +extern const basic::Info::ZoneInfo kZoneAfrica_Nouakchott; // Africa/Nouakchott -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAfrica_Ouagadougou; // Africa/Ouagadougou -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAfrica_Porto_Novo; // Africa/Porto-Novo -> Africa/Lagos +extern const basic::Info::ZoneInfo kZoneAfrica_Timbuktu; // Africa/Timbuktu -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAmerica_Anguilla; // America/Anguilla -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Antigua; // America/Antigua -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Argentina_ComodRivadavia; // America/Argentina/ComodRivadavia -> America/Argentina/Catamarca +extern const basic::Info::ZoneInfo kZoneAmerica_Aruba; // America/Aruba -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Atikokan; // America/Atikokan -> America/Panama +extern const basic::Info::ZoneInfo kZoneAmerica_Atka; // America/Atka -> America/Adak +extern const basic::Info::ZoneInfo kZoneAmerica_Blanc_Sablon; // America/Blanc-Sablon -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Buenos_Aires; // America/Buenos_Aires -> America/Argentina/Buenos_Aires +extern const basic::Info::ZoneInfo kZoneAmerica_Catamarca; // America/Catamarca -> America/Argentina/Catamarca +extern const basic::Info::ZoneInfo kZoneAmerica_Cayman; // America/Cayman -> America/Panama +extern const basic::Info::ZoneInfo kZoneAmerica_Coral_Harbour; // America/Coral_Harbour -> America/Panama +extern const basic::Info::ZoneInfo kZoneAmerica_Cordoba; // America/Cordoba -> America/Argentina/Cordoba +extern const basic::Info::ZoneInfo kZoneAmerica_Creston; // America/Creston -> America/Phoenix +extern const basic::Info::ZoneInfo kZoneAmerica_Curacao; // America/Curacao -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Dominica; // America/Dominica -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Ensenada; // America/Ensenada -> America/Tijuana +extern const basic::Info::ZoneInfo kZoneAmerica_Fort_Wayne; // America/Fort_Wayne -> America/Indiana/Indianapolis +extern const basic::Info::ZoneInfo kZoneAmerica_Godthab; // America/Godthab -> America/Nuuk +extern const basic::Info::ZoneInfo kZoneAmerica_Grenada; // America/Grenada -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Guadeloupe; // America/Guadeloupe -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Indianapolis; // America/Indianapolis -> America/Indiana/Indianapolis +extern const basic::Info::ZoneInfo kZoneAmerica_Jujuy; // America/Jujuy -> America/Argentina/Jujuy +extern const basic::Info::ZoneInfo kZoneAmerica_Knox_IN; // America/Knox_IN -> America/Indiana/Knox +extern const basic::Info::ZoneInfo kZoneAmerica_Kralendijk; // America/Kralendijk -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Louisville; // America/Louisville -> America/Kentucky/Louisville +extern const basic::Info::ZoneInfo kZoneAmerica_Lower_Princes; // America/Lower_Princes -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Marigot; // America/Marigot -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Mendoza; // America/Mendoza -> America/Argentina/Mendoza +extern const basic::Info::ZoneInfo kZoneAmerica_Montreal; // America/Montreal -> America/Toronto +extern const basic::Info::ZoneInfo kZoneAmerica_Montserrat; // America/Montserrat -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Nassau; // America/Nassau -> America/Toronto +extern const basic::Info::ZoneInfo kZoneAmerica_Nipigon; // America/Nipigon -> America/Toronto +extern const basic::Info::ZoneInfo kZoneAmerica_Pangnirtung; // America/Pangnirtung -> America/Iqaluit +extern const basic::Info::ZoneInfo kZoneAmerica_Port_of_Spain; // America/Port_of_Spain -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Porto_Acre; // America/Porto_Acre -> America/Rio_Branco +extern const basic::Info::ZoneInfo kZoneAmerica_Rainy_River; // America/Rainy_River -> America/Winnipeg +extern const basic::Info::ZoneInfo kZoneAmerica_Rosario; // America/Rosario -> America/Argentina/Cordoba +extern const basic::Info::ZoneInfo kZoneAmerica_Santa_Isabel; // America/Santa_Isabel -> America/Tijuana +extern const basic::Info::ZoneInfo kZoneAmerica_Shiprock; // America/Shiprock -> America/Denver +extern const basic::Info::ZoneInfo kZoneAmerica_St_Barthelemy; // America/St_Barthelemy -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_St_Kitts; // America/St_Kitts -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_St_Lucia; // America/St_Lucia -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_St_Thomas; // America/St_Thomas -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_St_Vincent; // America/St_Vincent -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Thunder_Bay; // America/Thunder_Bay -> America/Toronto +extern const basic::Info::ZoneInfo kZoneAmerica_Tortola; // America/Tortola -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Virgin; // America/Virgin -> America/Puerto_Rico +extern const basic::Info::ZoneInfo kZoneAmerica_Yellowknife; // America/Yellowknife -> America/Edmonton +extern const basic::Info::ZoneInfo kZoneAntarctica_DumontDUrville; // Antarctica/DumontDUrville -> Pacific/Port_Moresby +extern const basic::Info::ZoneInfo kZoneAntarctica_McMurdo; // Antarctica/McMurdo -> Pacific/Auckland +extern const basic::Info::ZoneInfo kZoneAntarctica_South_Pole; // Antarctica/South_Pole -> Pacific/Auckland +extern const basic::Info::ZoneInfo kZoneAntarctica_Syowa; // Antarctica/Syowa -> Asia/Riyadh +extern const basic::Info::ZoneInfo kZoneArctic_Longyearbyen; // Arctic/Longyearbyen -> Europe/Berlin +extern const basic::Info::ZoneInfo kZoneAsia_Aden; // Asia/Aden -> Asia/Riyadh +extern const basic::Info::ZoneInfo kZoneAsia_Ashkhabad; // Asia/Ashkhabad -> Asia/Ashgabat +extern const basic::Info::ZoneInfo kZoneAsia_Bahrain; // Asia/Bahrain -> Asia/Qatar +extern const basic::Info::ZoneInfo kZoneAsia_Brunei; // Asia/Brunei -> Asia/Kuching +extern const basic::Info::ZoneInfo kZoneAsia_Calcutta; // Asia/Calcutta -> Asia/Kolkata +extern const basic::Info::ZoneInfo kZoneAsia_Choibalsan; // Asia/Choibalsan -> Asia/Ulaanbaatar +extern const basic::Info::ZoneInfo kZoneAsia_Chongqing; // Asia/Chongqing -> Asia/Shanghai +extern const basic::Info::ZoneInfo kZoneAsia_Chungking; // Asia/Chungking -> Asia/Shanghai +extern const basic::Info::ZoneInfo kZoneAsia_Dacca; // Asia/Dacca -> Asia/Dhaka +extern const basic::Info::ZoneInfo kZoneAsia_Harbin; // Asia/Harbin -> Asia/Shanghai +extern const basic::Info::ZoneInfo kZoneAsia_Istanbul; // Asia/Istanbul -> Europe/Istanbul +extern const basic::Info::ZoneInfo kZoneAsia_Kashgar; // Asia/Kashgar -> Asia/Urumqi +extern const basic::Info::ZoneInfo kZoneAsia_Katmandu; // Asia/Katmandu -> Asia/Kathmandu +extern const basic::Info::ZoneInfo kZoneAsia_Kuala_Lumpur; // Asia/Kuala_Lumpur -> Asia/Singapore +extern const basic::Info::ZoneInfo kZoneAsia_Kuwait; // Asia/Kuwait -> Asia/Riyadh +extern const basic::Info::ZoneInfo kZoneAsia_Macao; // Asia/Macao -> Asia/Macau +extern const basic::Info::ZoneInfo kZoneAsia_Muscat; // Asia/Muscat -> Asia/Dubai +extern const basic::Info::ZoneInfo kZoneAsia_Phnom_Penh; // Asia/Phnom_Penh -> Asia/Bangkok +extern const basic::Info::ZoneInfo kZoneAsia_Rangoon; // Asia/Rangoon -> Asia/Yangon +extern const basic::Info::ZoneInfo kZoneAsia_Saigon; // Asia/Saigon -> Asia/Ho_Chi_Minh +extern const basic::Info::ZoneInfo kZoneAsia_Tel_Aviv; // Asia/Tel_Aviv -> Asia/Jerusalem +extern const basic::Info::ZoneInfo kZoneAsia_Thimbu; // Asia/Thimbu -> Asia/Thimphu +extern const basic::Info::ZoneInfo kZoneAsia_Ujung_Pandang; // Asia/Ujung_Pandang -> Asia/Makassar +extern const basic::Info::ZoneInfo kZoneAsia_Ulan_Bator; // Asia/Ulan_Bator -> Asia/Ulaanbaatar +extern const basic::Info::ZoneInfo kZoneAsia_Vientiane; // Asia/Vientiane -> Asia/Bangkok +extern const basic::Info::ZoneInfo kZoneAtlantic_Faeroe; // Atlantic/Faeroe -> Atlantic/Faroe +extern const basic::Info::ZoneInfo kZoneAtlantic_Jan_Mayen; // Atlantic/Jan_Mayen -> Europe/Berlin +extern const basic::Info::ZoneInfo kZoneAtlantic_Reykjavik; // Atlantic/Reykjavik -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAtlantic_St_Helena; // Atlantic/St_Helena -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneAustralia_ACT; // Australia/ACT -> Australia/Sydney +extern const basic::Info::ZoneInfo kZoneAustralia_Canberra; // Australia/Canberra -> Australia/Sydney +extern const basic::Info::ZoneInfo kZoneAustralia_Currie; // Australia/Currie -> Australia/Hobart +extern const basic::Info::ZoneInfo kZoneAustralia_LHI; // Australia/LHI -> Australia/Lord_Howe +extern const basic::Info::ZoneInfo kZoneAustralia_NSW; // Australia/NSW -> Australia/Sydney +extern const basic::Info::ZoneInfo kZoneAustralia_North; // Australia/North -> Australia/Darwin +extern const basic::Info::ZoneInfo kZoneAustralia_Queensland; // Australia/Queensland -> Australia/Brisbane +extern const basic::Info::ZoneInfo kZoneAustralia_South; // Australia/South -> Australia/Adelaide +extern const basic::Info::ZoneInfo kZoneAustralia_Tasmania; // Australia/Tasmania -> Australia/Hobart +extern const basic::Info::ZoneInfo kZoneAustralia_Victoria; // Australia/Victoria -> Australia/Melbourne +extern const basic::Info::ZoneInfo kZoneAustralia_West; // Australia/West -> Australia/Perth +extern const basic::Info::ZoneInfo kZoneAustralia_Yancowinna; // Australia/Yancowinna -> Australia/Broken_Hill +extern const basic::Info::ZoneInfo kZoneBrazil_Acre; // Brazil/Acre -> America/Rio_Branco +extern const basic::Info::ZoneInfo kZoneBrazil_DeNoronha; // Brazil/DeNoronha -> America/Noronha +extern const basic::Info::ZoneInfo kZoneBrazil_East; // Brazil/East -> America/Sao_Paulo +extern const basic::Info::ZoneInfo kZoneBrazil_West; // Brazil/West -> America/Manaus +extern const basic::Info::ZoneInfo kZoneCET; // CET -> Europe/Brussels +extern const basic::Info::ZoneInfo kZoneCST6CDT; // CST6CDT -> America/Chicago +extern const basic::Info::ZoneInfo kZoneCanada_Atlantic; // Canada/Atlantic -> America/Halifax +extern const basic::Info::ZoneInfo kZoneCanada_Central; // Canada/Central -> America/Winnipeg +extern const basic::Info::ZoneInfo kZoneCanada_Eastern; // Canada/Eastern -> America/Toronto +extern const basic::Info::ZoneInfo kZoneCanada_Mountain; // Canada/Mountain -> America/Edmonton +extern const basic::Info::ZoneInfo kZoneCanada_Newfoundland; // Canada/Newfoundland -> America/St_Johns +extern const basic::Info::ZoneInfo kZoneCanada_Pacific; // Canada/Pacific -> America/Vancouver +extern const basic::Info::ZoneInfo kZoneCanada_Saskatchewan; // Canada/Saskatchewan -> America/Regina +extern const basic::Info::ZoneInfo kZoneCanada_Yukon; // Canada/Yukon -> America/Whitehorse +extern const basic::Info::ZoneInfo kZoneChile_Continental; // Chile/Continental -> America/Santiago +extern const basic::Info::ZoneInfo kZoneChile_EasterIsland; // Chile/EasterIsland -> Pacific/Easter +extern const basic::Info::ZoneInfo kZoneCuba; // Cuba -> America/Havana +extern const basic::Info::ZoneInfo kZoneEET; // EET -> Europe/Athens +extern const basic::Info::ZoneInfo kZoneEST; // EST -> America/Panama +extern const basic::Info::ZoneInfo kZoneEST5EDT; // EST5EDT -> America/New_York +extern const basic::Info::ZoneInfo kZoneEgypt; // Egypt -> Africa/Cairo +extern const basic::Info::ZoneInfo kZoneEire; // Eire -> Europe/Dublin +extern const basic::Info::ZoneInfo kZoneEtc_GMT_PLUS_0; // Etc/GMT+0 -> Etc/GMT +extern const basic::Info::ZoneInfo kZoneEtc_GMT_0; // Etc/GMT-0 -> Etc/GMT +extern const basic::Info::ZoneInfo kZoneEtc_GMT0; // Etc/GMT0 -> Etc/GMT +extern const basic::Info::ZoneInfo kZoneEtc_Greenwich; // Etc/Greenwich -> Etc/GMT +extern const basic::Info::ZoneInfo kZoneEtc_UCT; // Etc/UCT -> Etc/UTC +extern const basic::Info::ZoneInfo kZoneEtc_Universal; // Etc/Universal -> Etc/UTC +extern const basic::Info::ZoneInfo kZoneEtc_Zulu; // Etc/Zulu -> Etc/UTC +extern const basic::Info::ZoneInfo kZoneEurope_Amsterdam; // Europe/Amsterdam -> Europe/Brussels +extern const basic::Info::ZoneInfo kZoneEurope_Belfast; // Europe/Belfast -> Europe/London +extern const basic::Info::ZoneInfo kZoneEurope_Bratislava; // Europe/Bratislava -> Europe/Prague +extern const basic::Info::ZoneInfo kZoneEurope_Busingen; // Europe/Busingen -> Europe/Zurich +extern const basic::Info::ZoneInfo kZoneEurope_Copenhagen; // Europe/Copenhagen -> Europe/Berlin +extern const basic::Info::ZoneInfo kZoneEurope_Guernsey; // Europe/Guernsey -> Europe/London +extern const basic::Info::ZoneInfo kZoneEurope_Isle_of_Man; // Europe/Isle_of_Man -> Europe/London +extern const basic::Info::ZoneInfo kZoneEurope_Jersey; // Europe/Jersey -> Europe/London +extern const basic::Info::ZoneInfo kZoneEurope_Kiev; // Europe/Kiev -> Europe/Kyiv +extern const basic::Info::ZoneInfo kZoneEurope_Ljubljana; // Europe/Ljubljana -> Europe/Belgrade +extern const basic::Info::ZoneInfo kZoneEurope_Luxembourg; // Europe/Luxembourg -> Europe/Brussels +extern const basic::Info::ZoneInfo kZoneEurope_Mariehamn; // Europe/Mariehamn -> Europe/Helsinki +extern const basic::Info::ZoneInfo kZoneEurope_Monaco; // Europe/Monaco -> Europe/Paris +extern const basic::Info::ZoneInfo kZoneEurope_Nicosia; // Europe/Nicosia -> Asia/Nicosia +extern const basic::Info::ZoneInfo kZoneEurope_Oslo; // Europe/Oslo -> Europe/Berlin +extern const basic::Info::ZoneInfo kZoneEurope_Podgorica; // Europe/Podgorica -> Europe/Belgrade +extern const basic::Info::ZoneInfo kZoneEurope_San_Marino; // Europe/San_Marino -> Europe/Rome +extern const basic::Info::ZoneInfo kZoneEurope_Sarajevo; // Europe/Sarajevo -> Europe/Belgrade +extern const basic::Info::ZoneInfo kZoneEurope_Skopje; // Europe/Skopje -> Europe/Belgrade +extern const basic::Info::ZoneInfo kZoneEurope_Stockholm; // Europe/Stockholm -> Europe/Berlin +extern const basic::Info::ZoneInfo kZoneEurope_Tiraspol; // Europe/Tiraspol -> Europe/Chisinau +extern const basic::Info::ZoneInfo kZoneEurope_Uzhgorod; // Europe/Uzhgorod -> Europe/Kyiv +extern const basic::Info::ZoneInfo kZoneEurope_Vaduz; // Europe/Vaduz -> Europe/Zurich +extern const basic::Info::ZoneInfo kZoneEurope_Vatican; // Europe/Vatican -> Europe/Rome +extern const basic::Info::ZoneInfo kZoneEurope_Zagreb; // Europe/Zagreb -> Europe/Belgrade +extern const basic::Info::ZoneInfo kZoneEurope_Zaporozhye; // Europe/Zaporozhye -> Europe/Kyiv +extern const basic::Info::ZoneInfo kZoneGB; // GB -> Europe/London +extern const basic::Info::ZoneInfo kZoneGB_Eire; // GB-Eire -> Europe/London +extern const basic::Info::ZoneInfo kZoneGMT; // GMT -> Etc/GMT +extern const basic::Info::ZoneInfo kZoneGMT_PLUS_0; // GMT+0 -> Etc/GMT +extern const basic::Info::ZoneInfo kZoneGMT_0; // GMT-0 -> Etc/GMT +extern const basic::Info::ZoneInfo kZoneGMT0; // GMT0 -> Etc/GMT +extern const basic::Info::ZoneInfo kZoneGreenwich; // Greenwich -> Etc/GMT +extern const basic::Info::ZoneInfo kZoneHST; // HST -> Pacific/Honolulu +extern const basic::Info::ZoneInfo kZoneHongkong; // Hongkong -> Asia/Hong_Kong +extern const basic::Info::ZoneInfo kZoneIceland; // Iceland -> Africa/Abidjan +extern const basic::Info::ZoneInfo kZoneIndian_Antananarivo; // Indian/Antananarivo -> Africa/Nairobi +extern const basic::Info::ZoneInfo kZoneIndian_Christmas; // Indian/Christmas -> Asia/Bangkok +extern const basic::Info::ZoneInfo kZoneIndian_Cocos; // Indian/Cocos -> Asia/Yangon +extern const basic::Info::ZoneInfo kZoneIndian_Comoro; // Indian/Comoro -> Africa/Nairobi +extern const basic::Info::ZoneInfo kZoneIndian_Kerguelen; // Indian/Kerguelen -> Indian/Maldives +extern const basic::Info::ZoneInfo kZoneIndian_Mahe; // Indian/Mahe -> Asia/Dubai +extern const basic::Info::ZoneInfo kZoneIndian_Mayotte; // Indian/Mayotte -> Africa/Nairobi +extern const basic::Info::ZoneInfo kZoneIndian_Reunion; // Indian/Reunion -> Asia/Dubai +extern const basic::Info::ZoneInfo kZoneIran; // Iran -> Asia/Tehran +extern const basic::Info::ZoneInfo kZoneIsrael; // Israel -> Asia/Jerusalem +extern const basic::Info::ZoneInfo kZoneJamaica; // Jamaica -> America/Jamaica +extern const basic::Info::ZoneInfo kZoneJapan; // Japan -> Asia/Tokyo +extern const basic::Info::ZoneInfo kZoneKwajalein; // Kwajalein -> Pacific/Kwajalein +extern const basic::Info::ZoneInfo kZoneLibya; // Libya -> Africa/Tripoli +extern const basic::Info::ZoneInfo kZoneMET; // MET -> Europe/Brussels +extern const basic::Info::ZoneInfo kZoneMST; // MST -> America/Phoenix +extern const basic::Info::ZoneInfo kZoneMST7MDT; // MST7MDT -> America/Denver +extern const basic::Info::ZoneInfo kZoneMexico_BajaNorte; // Mexico/BajaNorte -> America/Tijuana +extern const basic::Info::ZoneInfo kZoneMexico_BajaSur; // Mexico/BajaSur -> America/Mazatlan +extern const basic::Info::ZoneInfo kZoneMexico_General; // Mexico/General -> America/Mexico_City +extern const basic::Info::ZoneInfo kZoneNZ; // NZ -> Pacific/Auckland +extern const basic::Info::ZoneInfo kZoneNZ_CHAT; // NZ-CHAT -> Pacific/Chatham +extern const basic::Info::ZoneInfo kZoneNavajo; // Navajo -> America/Denver +extern const basic::Info::ZoneInfo kZonePRC; // PRC -> Asia/Shanghai +extern const basic::Info::ZoneInfo kZonePST8PDT; // PST8PDT -> America/Los_Angeles +extern const basic::Info::ZoneInfo kZonePacific_Chuuk; // Pacific/Chuuk -> Pacific/Port_Moresby +extern const basic::Info::ZoneInfo kZonePacific_Enderbury; // Pacific/Enderbury -> Pacific/Kanton +extern const basic::Info::ZoneInfo kZonePacific_Funafuti; // Pacific/Funafuti -> Pacific/Tarawa +extern const basic::Info::ZoneInfo kZonePacific_Johnston; // Pacific/Johnston -> Pacific/Honolulu +extern const basic::Info::ZoneInfo kZonePacific_Majuro; // Pacific/Majuro -> Pacific/Tarawa +extern const basic::Info::ZoneInfo kZonePacific_Midway; // Pacific/Midway -> Pacific/Pago_Pago +extern const basic::Info::ZoneInfo kZonePacific_Pohnpei; // Pacific/Pohnpei -> Pacific/Guadalcanal +extern const basic::Info::ZoneInfo kZonePacific_Ponape; // Pacific/Ponape -> Pacific/Guadalcanal +extern const basic::Info::ZoneInfo kZonePacific_Saipan; // Pacific/Saipan -> Pacific/Guam +extern const basic::Info::ZoneInfo kZonePacific_Samoa; // Pacific/Samoa -> Pacific/Pago_Pago +extern const basic::Info::ZoneInfo kZonePacific_Truk; // Pacific/Truk -> Pacific/Port_Moresby +extern const basic::Info::ZoneInfo kZonePacific_Wake; // Pacific/Wake -> Pacific/Tarawa +extern const basic::Info::ZoneInfo kZonePacific_Wallis; // Pacific/Wallis -> Pacific/Tarawa +extern const basic::Info::ZoneInfo kZonePacific_Yap; // Pacific/Yap -> Pacific/Port_Moresby +extern const basic::Info::ZoneInfo kZonePoland; // Poland -> Europe/Warsaw +extern const basic::Info::ZoneInfo kZonePortugal; // Portugal -> Europe/Lisbon +extern const basic::Info::ZoneInfo kZoneROC; // ROC -> Asia/Taipei +extern const basic::Info::ZoneInfo kZoneROK; // ROK -> Asia/Seoul +extern const basic::Info::ZoneInfo kZoneSingapore; // Singapore -> Asia/Singapore +extern const basic::Info::ZoneInfo kZoneTurkey; // Turkey -> Europe/Istanbul +extern const basic::Info::ZoneInfo kZoneUCT; // UCT -> Etc/UTC +extern const basic::Info::ZoneInfo kZoneUS_Alaska; // US/Alaska -> America/Anchorage +extern const basic::Info::ZoneInfo kZoneUS_Aleutian; // US/Aleutian -> America/Adak +extern const basic::Info::ZoneInfo kZoneUS_Arizona; // US/Arizona -> America/Phoenix +extern const basic::Info::ZoneInfo kZoneUS_Central; // US/Central -> America/Chicago +extern const basic::Info::ZoneInfo kZoneUS_East_Indiana; // US/East-Indiana -> America/Indiana/Indianapolis +extern const basic::Info::ZoneInfo kZoneUS_Eastern; // US/Eastern -> America/New_York +extern const basic::Info::ZoneInfo kZoneUS_Hawaii; // US/Hawaii -> Pacific/Honolulu +extern const basic::Info::ZoneInfo kZoneUS_Indiana_Starke; // US/Indiana-Starke -> America/Indiana/Knox +extern const basic::Info::ZoneInfo kZoneUS_Michigan; // US/Michigan -> America/Detroit +extern const basic::Info::ZoneInfo kZoneUS_Mountain; // US/Mountain -> America/Denver +extern const basic::Info::ZoneInfo kZoneUS_Pacific; // US/Pacific -> America/Los_Angeles +extern const basic::Info::ZoneInfo kZoneUS_Samoa; // US/Samoa -> Pacific/Pago_Pago +extern const basic::Info::ZoneInfo kZoneUTC; // UTC -> Etc/UTC +extern const basic::Info::ZoneInfo kZoneUniversal; // Universal -> Etc/UTC +extern const basic::Info::ZoneInfo kZoneW_SU; // W-SU -> Europe/Moscow +extern const basic::Info::ZoneInfo kZoneWET; // WET -> Europe/Lisbon +extern const basic::Info::ZoneInfo kZoneZulu; // Zulu -> Etc/UTC + + +// Zone Ids + +const uint32_t kZoneIdAfrica_Accra = 0x77d5b054; // Africa/Accra +const uint32_t kZoneIdAfrica_Addis_Ababa = 0x05ae1e65; // Africa/Addis_Ababa +const uint32_t kZoneIdAfrica_Asmara = 0x73b278ef; // Africa/Asmara +const uint32_t kZoneIdAfrica_Asmera = 0x73b289f3; // Africa/Asmera +const uint32_t kZoneIdAfrica_Bamako = 0x74c1e7a5; // Africa/Bamako +const uint32_t kZoneIdAfrica_Bangui = 0x74c28ed0; // Africa/Bangui +const uint32_t kZoneIdAfrica_Banjul = 0x74c29b96; // Africa/Banjul +const uint32_t kZoneIdAfrica_Blantyre = 0xe08d813b; // Africa/Blantyre +const uint32_t kZoneIdAfrica_Brazzaville = 0x39cda760; // Africa/Brazzaville +const uint32_t kZoneIdAfrica_Bujumbura = 0x05232a47; // Africa/Bujumbura +const uint32_t kZoneIdAfrica_Conakry = 0x7ab36b31; // Africa/Conakry +const uint32_t kZoneIdAfrica_Dakar = 0x780b00fd; // Africa/Dakar +const uint32_t kZoneIdAfrica_Dar_es_Salaam = 0xa04c47b6; // Africa/Dar_es_Salaam +const uint32_t kZoneIdAfrica_Djibouti = 0x30ea01d4; // Africa/Djibouti +const uint32_t kZoneIdAfrica_Douala = 0x7a6df310; // Africa/Douala +const uint32_t kZoneIdAfrica_Freetown = 0x6823dd64; // Africa/Freetown +const uint32_t kZoneIdAfrica_Gaborone = 0x317c0aa7; // Africa/Gaborone +const uint32_t kZoneIdAfrica_Harare = 0x82c39a2d; // Africa/Harare +const uint32_t kZoneIdAfrica_Kampala = 0xc1d30e31; // Africa/Kampala +const uint32_t kZoneIdAfrica_Kigali = 0x8a4dcf2b; // Africa/Kigali +const uint32_t kZoneIdAfrica_Kinshasa = 0x6695d70c; // Africa/Kinshasa +const uint32_t kZoneIdAfrica_Libreville = 0x01d96de4; // Africa/Libreville +const uint32_t kZoneIdAfrica_Lome = 0xd51c3a07; // Africa/Lome +const uint32_t kZoneIdAfrica_Luanda = 0x8d7909cf; // Africa/Luanda +const uint32_t kZoneIdAfrica_Lubumbashi = 0x6fd88566; // Africa/Lubumbashi +const uint32_t kZoneIdAfrica_Lusaka = 0x8d82b23b; // Africa/Lusaka +const uint32_t kZoneIdAfrica_Malabo = 0x8e6a1906; // Africa/Malabo +const uint32_t kZoneIdAfrica_Maseru = 0x8e6e02c7; // Africa/Maseru +const uint32_t kZoneIdAfrica_Mbabane = 0x5d3bdd40; // Africa/Mbabane +const uint32_t kZoneIdAfrica_Mogadishu = 0x66bc159b; // Africa/Mogadishu +const uint32_t kZoneIdAfrica_Niamey = 0x914a30fd; // Africa/Niamey +const uint32_t kZoneIdAfrica_Nouakchott = 0x3dc49dba; // Africa/Nouakchott +const uint32_t kZoneIdAfrica_Ouagadougou = 0x04d7219a; // Africa/Ouagadougou +const uint32_t kZoneIdAfrica_Porto_Novo = 0x3d1bf95d; // Africa/Porto-Novo +const uint32_t kZoneIdAfrica_Timbuktu = 0xb164d56f; // Africa/Timbuktu +const uint32_t kZoneIdAmerica_Anguilla = 0xafe31333; // America/Anguilla +const uint32_t kZoneIdAmerica_Antigua = 0xc067a32f; // America/Antigua +const uint32_t kZoneIdAmerica_Argentina_ComodRivadavia = 0x22758877; // America/Argentina/ComodRivadavia +const uint32_t kZoneIdAmerica_Aruba = 0x97cf8651; // America/Aruba +const uint32_t kZoneIdAmerica_Atikokan = 0x81b92098; // America/Atikokan +const uint32_t kZoneIdAmerica_Atka = 0x97fe8f27; // America/Atka +const uint32_t kZoneIdAmerica_Blanc_Sablon = 0x6e299892; // America/Blanc-Sablon +const uint32_t kZoneIdAmerica_Buenos_Aires = 0x67d79a05; // America/Buenos_Aires +const uint32_t kZoneIdAmerica_Catamarca = 0x5036e963; // America/Catamarca +const uint32_t kZoneIdAmerica_Cayman = 0x953961df; // America/Cayman +const uint32_t kZoneIdAmerica_Coral_Harbour = 0xabcb7569; // America/Coral_Harbour +const uint32_t kZoneIdAmerica_Cordoba = 0x5c8a7600; // America/Cordoba +const uint32_t kZoneIdAmerica_Creston = 0x62a70204; // America/Creston +const uint32_t kZoneIdAmerica_Curacao = 0x6a879184; // America/Curacao +const uint32_t kZoneIdAmerica_Dominica = 0xcecb4c4a; // America/Dominica +const uint32_t kZoneIdAmerica_Ensenada = 0x7bc95445; // America/Ensenada +const uint32_t kZoneIdAmerica_Fort_Wayne = 0x7eaaaf24; // America/Fort_Wayne +const uint32_t kZoneIdAmerica_Godthab = 0x8f7eba1f; // America/Godthab +const uint32_t kZoneIdAmerica_Grenada = 0x968ce4d8; // America/Grenada +const uint32_t kZoneIdAmerica_Guadeloupe = 0xcd1f8a31; // America/Guadeloupe +const uint32_t kZoneIdAmerica_Indianapolis = 0x6a009ae1; // America/Indianapolis +const uint32_t kZoneIdAmerica_Jujuy = 0x9873dbbd; // America/Jujuy +const uint32_t kZoneIdAmerica_Knox_IN = 0xc1db9a1c; // America/Knox_IN +const uint32_t kZoneIdAmerica_Kralendijk = 0xe7c456c5; // America/Kralendijk +const uint32_t kZoneIdAmerica_Louisville = 0x3dcb47ee; // America/Louisville +const uint32_t kZoneIdAmerica_Lower_Princes = 0x6ae45b62; // America/Lower_Princes +const uint32_t kZoneIdAmerica_Marigot = 0x3dab3a59; // America/Marigot +const uint32_t kZoneIdAmerica_Mendoza = 0x46b4e054; // America/Mendoza +const uint32_t kZoneIdAmerica_Montreal = 0x203a1ea8; // America/Montreal +const uint32_t kZoneIdAmerica_Montserrat = 0x199b0a35; // America/Montserrat +const uint32_t kZoneIdAmerica_Nassau = 0xaedef011; // America/Nassau +const uint32_t kZoneIdAmerica_Nipigon = 0x9d2a8b1a; // America/Nipigon +const uint32_t kZoneIdAmerica_Pangnirtung = 0x2d999193; // America/Pangnirtung +const uint32_t kZoneIdAmerica_Port_of_Spain = 0xd8b28d59; // America/Port_of_Spain +const uint32_t kZoneIdAmerica_Porto_Acre = 0xcce5bf54; // America/Porto_Acre +const uint32_t kZoneIdAmerica_Rainy_River = 0x9cd58a10; // America/Rainy_River +const uint32_t kZoneIdAmerica_Rosario = 0xdf448665; // America/Rosario +const uint32_t kZoneIdAmerica_Santa_Isabel = 0xfd18a56c; // America/Santa_Isabel +const uint32_t kZoneIdAmerica_Shiprock = 0x82fb7049; // America/Shiprock +const uint32_t kZoneIdAmerica_St_Barthelemy = 0x054e6a79; // America/St_Barthelemy +const uint32_t kZoneIdAmerica_St_Kitts = 0x04c0507b; // America/St_Kitts +const uint32_t kZoneIdAmerica_St_Lucia = 0x04d8b3ba; // America/St_Lucia +const uint32_t kZoneIdAmerica_St_Thomas = 0xb1b3d778; // America/St_Thomas +const uint32_t kZoneIdAmerica_St_Vincent = 0x8460e523; // America/St_Vincent +const uint32_t kZoneIdAmerica_Thunder_Bay = 0xf962e71b; // America/Thunder_Bay +const uint32_t kZoneIdAmerica_Tortola = 0x7931462b; // America/Tortola +const uint32_t kZoneIdAmerica_Virgin = 0xc2183ab5; // America/Virgin +const uint32_t kZoneIdAmerica_Yellowknife = 0x0f76c76f; // America/Yellowknife +const uint32_t kZoneIdAntarctica_DumontDUrville = 0x5a3c656c; // Antarctica/DumontDUrville +const uint32_t kZoneIdAntarctica_McMurdo = 0x6eeb5585; // Antarctica/McMurdo +const uint32_t kZoneIdAntarctica_South_Pole = 0xcd96b290; // Antarctica/South_Pole +const uint32_t kZoneIdAntarctica_Syowa = 0xe330c7e1; // Antarctica/Syowa +const uint32_t kZoneIdArctic_Longyearbyen = 0xd23e7859; // Arctic/Longyearbyen +const uint32_t kZoneIdAsia_Aden = 0x1fa7084a; // Asia/Aden +const uint32_t kZoneIdAsia_Ashkhabad = 0x15454f09; // Asia/Ashkhabad +const uint32_t kZoneIdAsia_Bahrain = 0x9d078487; // Asia/Bahrain +const uint32_t kZoneIdAsia_Brunei = 0xa8e595f7; // Asia/Brunei +const uint32_t kZoneIdAsia_Calcutta = 0x328a44c3; // Asia/Calcutta +const uint32_t kZoneIdAsia_Choibalsan = 0x928aa4a6; // Asia/Choibalsan +const uint32_t kZoneIdAsia_Chongqing = 0xf937fb90; // Asia/Chongqing +const uint32_t kZoneIdAsia_Chungking = 0xc7121dd0; // Asia/Chungking +const uint32_t kZoneIdAsia_Dacca = 0x14bcac5e; // Asia/Dacca +const uint32_t kZoneIdAsia_Harbin = 0xb5af1186; // Asia/Harbin +const uint32_t kZoneIdAsia_Istanbul = 0x382e7894; // Asia/Istanbul +const uint32_t kZoneIdAsia_Kashgar = 0x52955193; // Asia/Kashgar +const uint32_t kZoneIdAsia_Katmandu = 0xa7ec12c7; // Asia/Katmandu +const uint32_t kZoneIdAsia_Kuala_Lumpur = 0x014763c4; // Asia/Kuala_Lumpur +const uint32_t kZoneIdAsia_Kuwait = 0xbe1b2f27; // Asia/Kuwait +const uint32_t kZoneIdAsia_Macao = 0x155f88b3; // Asia/Macao +const uint32_t kZoneIdAsia_Muscat = 0xc2c3565f; // Asia/Muscat +const uint32_t kZoneIdAsia_Phnom_Penh = 0xc224945e; // Asia/Phnom_Penh +const uint32_t kZoneIdAsia_Rangoon = 0x6d1217c6; // Asia/Rangoon +const uint32_t kZoneIdAsia_Saigon = 0xcf52f713; // Asia/Saigon +const uint32_t kZoneIdAsia_Tel_Aviv = 0x166d7c2c; // Asia/Tel_Aviv +const uint32_t kZoneIdAsia_Thimbu = 0xd226e31b; // Asia/Thimbu +const uint32_t kZoneIdAsia_Ujung_Pandang = 0x5d001eb3; // Asia/Ujung_Pandang +const uint32_t kZoneIdAsia_Ulan_Bator = 0x394db4d9; // Asia/Ulan_Bator +const uint32_t kZoneIdAsia_Vientiane = 0x89d68d75; // Asia/Vientiane +const uint32_t kZoneIdAtlantic_Faeroe = 0x031ec516; // Atlantic/Faeroe +const uint32_t kZoneIdAtlantic_Jan_Mayen = 0x5a7535b6; // Atlantic/Jan_Mayen +const uint32_t kZoneIdAtlantic_Reykjavik = 0x1c2b4f74; // Atlantic/Reykjavik +const uint32_t kZoneIdAtlantic_St_Helena = 0x451fc5f7; // Atlantic/St_Helena +const uint32_t kZoneIdAustralia_ACT = 0x8a970eb2; // Australia/ACT +const uint32_t kZoneIdAustralia_Canberra = 0x2a09ae58; // Australia/Canberra +const uint32_t kZoneIdAustralia_Currie = 0x278b6a24; // Australia/Currie +const uint32_t kZoneIdAustralia_LHI = 0x8a973e17; // Australia/LHI +const uint32_t kZoneIdAustralia_NSW = 0x8a974812; // Australia/NSW +const uint32_t kZoneIdAustralia_North = 0x8d997165; // Australia/North +const uint32_t kZoneIdAustralia_Queensland = 0xd326ed0a; // Australia/Queensland +const uint32_t kZoneIdAustralia_South = 0x8df3f8ad; // Australia/South +const uint32_t kZoneIdAustralia_Tasmania = 0xe6d76648; // Australia/Tasmania +const uint32_t kZoneIdAustralia_Victoria = 0x0260d5db; // Australia/Victoria +const uint32_t kZoneIdAustralia_West = 0xdd858a5d; // Australia/West +const uint32_t kZoneIdAustralia_Yancowinna = 0x90bac131; // Australia/Yancowinna +const uint32_t kZoneIdBrazil_Acre = 0x66934f93; // Brazil/Acre +const uint32_t kZoneIdBrazil_DeNoronha = 0x9b4cb496; // Brazil/DeNoronha +const uint32_t kZoneIdBrazil_East = 0x669578c5; // Brazil/East +const uint32_t kZoneIdBrazil_West = 0x669f689b; // Brazil/West +const uint32_t kZoneIdCET = 0x0b87d921; // CET +const uint32_t kZoneIdCST6CDT = 0xf0e87d00; // CST6CDT +const uint32_t kZoneIdCanada_Atlantic = 0x536b119c; // Canada/Atlantic +const uint32_t kZoneIdCanada_Central = 0x626710f5; // Canada/Central +const uint32_t kZoneIdCanada_Eastern = 0xf3612d5e; // Canada/Eastern +const uint32_t kZoneIdCanada_Mountain = 0xfb8a8217; // Canada/Mountain +const uint32_t kZoneIdCanada_Newfoundland = 0xb396e991; // Canada/Newfoundland +const uint32_t kZoneIdCanada_Pacific = 0x40fa3c7b; // Canada/Pacific +const uint32_t kZoneIdCanada_Saskatchewan = 0x77311f49; // Canada/Saskatchewan +const uint32_t kZoneIdCanada_Yukon = 0x78dd35c2; // Canada/Yukon +const uint32_t kZoneIdChile_Continental = 0x7e2bdb18; // Chile/Continental +const uint32_t kZoneIdChile_EasterIsland = 0xb0982af8; // Chile/EasterIsland +const uint32_t kZoneIdCuba = 0x7c83cba0; // Cuba +const uint32_t kZoneIdEET = 0x0b87e1a3; // EET +const uint32_t kZoneIdEST = 0x0b87e371; // EST +const uint32_t kZoneIdEST5EDT = 0x8adc72a3; // EST5EDT +const uint32_t kZoneIdEgypt = 0x0d1a278e; // Egypt +const uint32_t kZoneIdEire = 0x7c84b36a; // Eire +const uint32_t kZoneIdEtc_GMT_PLUS_0 = 0x9d13da13; // Etc/GMT+0 +const uint32_t kZoneIdEtc_GMT_0 = 0x9d13da55; // Etc/GMT-0 +const uint32_t kZoneIdEtc_GMT0 = 0xf53ea988; // Etc/GMT0 +const uint32_t kZoneIdEtc_Greenwich = 0x26daa98c; // Etc/Greenwich +const uint32_t kZoneIdEtc_UCT = 0xd8e3189c; // Etc/UCT +const uint32_t kZoneIdEtc_Universal = 0x2f8cb9a9; // Etc/Universal +const uint32_t kZoneIdEtc_Zulu = 0xf549c240; // Etc/Zulu +const uint32_t kZoneIdEurope_Amsterdam = 0x109395c2; // Europe/Amsterdam +const uint32_t kZoneIdEurope_Belfast = 0xd07dd1e5; // Europe/Belfast +const uint32_t kZoneIdEurope_Bratislava = 0xda493bed; // Europe/Bratislava +const uint32_t kZoneIdEurope_Busingen = 0xc06d2cdf; // Europe/Busingen +const uint32_t kZoneIdEurope_Copenhagen = 0xe0ed30bc; // Europe/Copenhagen +const uint32_t kZoneIdEurope_Guernsey = 0x3db12c16; // Europe/Guernsey +const uint32_t kZoneIdEurope_Isle_of_Man = 0xeaf84580; // Europe/Isle_of_Man +const uint32_t kZoneIdEurope_Jersey = 0x570dae76; // Europe/Jersey +const uint32_t kZoneIdEurope_Kiev = 0xa2c19eb3; // Europe/Kiev +const uint32_t kZoneIdEurope_Ljubljana = 0xbd98cdb7; // Europe/Ljubljana +const uint32_t kZoneIdEurope_Luxembourg = 0x1f8bc6ce; // Europe/Luxembourg +const uint32_t kZoneIdEurope_Mariehamn = 0x0caa6496; // Europe/Mariehamn +const uint32_t kZoneIdEurope_Monaco = 0x5ebf9f01; // Europe/Monaco +const uint32_t kZoneIdEurope_Nicosia = 0x74efab8a; // Europe/Nicosia +const uint32_t kZoneIdEurope_Oslo = 0xa2c3fba1; // Europe/Oslo +const uint32_t kZoneIdEurope_Podgorica = 0x1c1a499c; // Europe/Podgorica +const uint32_t kZoneIdEurope_San_Marino = 0xcef7724b; // Europe/San_Marino +const uint32_t kZoneIdEurope_Sarajevo = 0x6a576c3f; // Europe/Sarajevo +const uint32_t kZoneIdEurope_Skopje = 0x6c76fdd0; // Europe/Skopje +const uint32_t kZoneIdEurope_Stockholm = 0x5bf6fbb8; // Europe/Stockholm +const uint32_t kZoneIdEurope_Tiraspol = 0xbe704472; // Europe/Tiraspol +const uint32_t kZoneIdEurope_Uzhgorod = 0xb066f5d6; // Europe/Uzhgorod +const uint32_t kZoneIdEurope_Vaduz = 0xfbb81bae; // Europe/Vaduz +const uint32_t kZoneIdEurope_Vatican = 0xcb485dca; // Europe/Vatican +const uint32_t kZoneIdEurope_Zagreb = 0x7c11c9ff; // Europe/Zagreb +const uint32_t kZoneIdEurope_Zaporozhye = 0xeab9767f; // Europe/Zaporozhye +const uint32_t kZoneIdGB = 0x005973ae; // GB +const uint32_t kZoneIdGB_Eire = 0xfa70e300; // GB-Eire +const uint32_t kZoneIdGMT = 0x0b87eb2d; // GMT +const uint32_t kZoneIdGMT_PLUS_0 = 0x0d2f7028; // GMT+0 +const uint32_t kZoneIdGMT_0 = 0x0d2f706a; // GMT-0 +const uint32_t kZoneIdGMT0 = 0x7c8550fd; // GMT0 +const uint32_t kZoneIdGreenwich = 0xc84d4221; // Greenwich +const uint32_t kZoneIdHST = 0x0b87f034; // HST +const uint32_t kZoneIdHongkong = 0x56d36560; // Hongkong +const uint32_t kZoneIdIceland = 0xe56a35b5; // Iceland +const uint32_t kZoneIdIndian_Antananarivo = 0x9ebf5289; // Indian/Antananarivo +const uint32_t kZoneIdIndian_Christmas = 0x68c207d5; // Indian/Christmas +const uint32_t kZoneIdIndian_Cocos = 0x021e86de; // Indian/Cocos +const uint32_t kZoneIdIndian_Comoro = 0x45f4deb6; // Indian/Comoro +const uint32_t kZoneIdIndian_Kerguelen = 0x4351b389; // Indian/Kerguelen +const uint32_t kZoneIdIndian_Mahe = 0x45e725e2; // Indian/Mahe +const uint32_t kZoneIdIndian_Mayotte = 0xe6880bca; // Indian/Mayotte +const uint32_t kZoneIdIndian_Reunion = 0x7076c047; // Indian/Reunion +const uint32_t kZoneIdIran = 0x7c87090f; // Iran +const uint32_t kZoneIdIsrael = 0xba88c9e5; // Israel +const uint32_t kZoneIdJamaica = 0x2e44fdab; // Jamaica +const uint32_t kZoneIdJapan = 0x0d712f8f; // Japan +const uint32_t kZoneIdKwajalein = 0x0e57afbb; // Kwajalein +const uint32_t kZoneIdLibya = 0x0d998b16; // Libya +const uint32_t kZoneIdMET = 0x0b8803ab; // MET +const uint32_t kZoneIdMST = 0x0b880579; // MST +const uint32_t kZoneIdMST7MDT = 0xf2af9375; // MST7MDT +const uint32_t kZoneIdMexico_BajaNorte = 0xfcf7150f; // Mexico/BajaNorte +const uint32_t kZoneIdMexico_BajaSur = 0x08ee3641; // Mexico/BajaSur +const uint32_t kZoneIdMexico_General = 0x93711d57; // Mexico/General +const uint32_t kZoneIdNZ = 0x005974ad; // NZ +const uint32_t kZoneIdNZ_CHAT = 0x4d42afda; // NZ-CHAT +const uint32_t kZoneIdNavajo = 0xc4ef0e24; // Navajo +const uint32_t kZoneIdPRC = 0x0b88120a; // PRC +const uint32_t kZoneIdPST8PDT = 0xd99ee2dc; // PST8PDT +const uint32_t kZoneIdPacific_Chuuk = 0x8a090b23; // Pacific/Chuuk +const uint32_t kZoneIdPacific_Enderbury = 0x61599a93; // Pacific/Enderbury +const uint32_t kZoneIdPacific_Funafuti = 0xdb402d65; // Pacific/Funafuti +const uint32_t kZoneIdPacific_Johnston = 0xb15d7b36; // Pacific/Johnston +const uint32_t kZoneIdPacific_Majuro = 0xe1f95371; // Pacific/Majuro +const uint32_t kZoneIdPacific_Midway = 0xe286d38e; // Pacific/Midway +const uint32_t kZoneIdPacific_Pohnpei = 0x28929f96; // Pacific/Pohnpei +const uint32_t kZoneIdPacific_Ponape = 0xe9f80086; // Pacific/Ponape +const uint32_t kZoneIdPacific_Saipan = 0xeff7a35f; // Pacific/Saipan +const uint32_t kZoneIdPacific_Samoa = 0x8b2699b4; // Pacific/Samoa +const uint32_t kZoneIdPacific_Truk = 0x234010a9; // Pacific/Truk +const uint32_t kZoneIdPacific_Wake = 0x23416c2b; // Pacific/Wake +const uint32_t kZoneIdPacific_Wallis = 0xf94ddb0f; // Pacific/Wallis +const uint32_t kZoneIdPacific_Yap = 0xbb40138d; // Pacific/Yap +const uint32_t kZoneIdPoland = 0xca913b23; // Poland +const uint32_t kZoneIdPortugal = 0xc3274593; // Portugal +const uint32_t kZoneIdROC = 0x0b881a29; // ROC +const uint32_t kZoneIdROK = 0x0b881a31; // ROK +const uint32_t kZoneIdSingapore = 0xa8598c8d; // Singapore +const uint32_t kZoneIdTurkey = 0xd455e469; // Turkey +const uint32_t kZoneIdUCT = 0x0b882571; // UCT +const uint32_t kZoneIdUS_Alaska = 0xfa300bc9; // US/Alaska +const uint32_t kZoneIdUS_Aleutian = 0x4fe013ef; // US/Aleutian +const uint32_t kZoneIdUS_Arizona = 0x4ec52670; // US/Arizona +const uint32_t kZoneIdUS_Central = 0xcabdcb25; // US/Central +const uint32_t kZoneIdUS_East_Indiana = 0x6dcf558a; // US/East-Indiana +const uint32_t kZoneIdUS_Eastern = 0x5bb7e78e; // US/Eastern +const uint32_t kZoneIdUS_Hawaii = 0x09c8de2f; // US/Hawaii +const uint32_t kZoneIdUS_Indiana_Starke = 0x67977be7; // US/Indiana-Starke +const uint32_t kZoneIdUS_Michigan = 0x766bb7bc; // US/Michigan +const uint32_t kZoneIdUS_Mountain = 0x6eb88247; // US/Mountain +const uint32_t kZoneIdUS_Pacific = 0xa950f6ab; // US/Pacific +const uint32_t kZoneIdUS_Samoa = 0x566821cd; // US/Samoa +const uint32_t kZoneIdUTC = 0x0b882791; // UTC +const uint32_t kZoneIdUniversal = 0xd0ff523e; // Universal +const uint32_t kZoneIdW_SU = 0x7c8d8ef1; // W-SU +const uint32_t kZoneIdWET = 0x0b882e35; // WET +const uint32_t kZoneIdZulu = 0x7c9069b5; // Zulu + + +//--------------------------------------------------------------------------- +// Maximum size of the Transition buffer in ExtendedZoneProcessor for each zone +// over the given years. Used only in the +// AceTimeSuite/validation/tests/*ExtendedTest tests. +// +// MaxBufSize: 6 +//--------------------------------------------------------------------------- + +const uint8_t kZoneBufSizeAfrica_Abidjan = 1; // Africa/Abidjan in 1966 +const uint8_t kZoneBufSizeAfrica_Algiers = 1; // Africa/Algiers in 1966 +const uint8_t kZoneBufSizeAfrica_Bissau = 1; // Africa/Bissau in 1966 +const uint8_t kZoneBufSizeAfrica_Cairo = 4; // Africa/Cairo in 2023 +const uint8_t kZoneBufSizeAfrica_Casablanca = 6; // Africa/Casablanca in 2028 +const uint8_t kZoneBufSizeAfrica_Ceuta = 5; // Africa/Ceuta in 1983 +const uint8_t kZoneBufSizeAfrica_El_Aaiun = 6; // Africa/El_Aaiun in 2028 +const uint8_t kZoneBufSizeAfrica_Johannesburg = 2; // Africa/Johannesburg in 1966 +const uint8_t kZoneBufSizeAfrica_Juba = 1; // Africa/Juba in 1966 +const uint8_t kZoneBufSizeAfrica_Khartoum = 1; // Africa/Khartoum in 1966 +const uint8_t kZoneBufSizeAfrica_Lagos = 1; // Africa/Lagos in 1966 +const uint8_t kZoneBufSizeAfrica_Maputo = 1; // Africa/Maputo in 1966 +const uint8_t kZoneBufSizeAfrica_Monrovia = 1; // Africa/Monrovia in 1966 +const uint8_t kZoneBufSizeAfrica_Nairobi = 1; // Africa/Nairobi in 1966 +const uint8_t kZoneBufSizeAfrica_Ndjamena = 1; // Africa/Ndjamena in 1966 +const uint8_t kZoneBufSizeAfrica_Sao_Tome = 1; // Africa/Sao_Tome in 1966 +const uint8_t kZoneBufSizeAfrica_Tripoli = 1; // Africa/Tripoli in 1966 +const uint8_t kZoneBufSizeAfrica_Tunis = 2; // Africa/Tunis in 1966 +const uint8_t kZoneBufSizeAfrica_Windhoek = 2; // Africa/Windhoek in 1966 +const uint8_t kZoneBufSizeAmerica_Adak = 6; // America/Adak in 2008 +const uint8_t kZoneBufSizeAmerica_Anchorage = 6; // America/Anchorage in 2008 +const uint8_t kZoneBufSizeAmerica_Araguaina = 1; // America/Araguaina in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Buenos_Aires = 2; // America/Argentina/Buenos_Aires in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Catamarca = 1; // America/Argentina/Catamarca in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Cordoba = 2; // America/Argentina/Cordoba in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Jujuy = 1; // America/Argentina/Jujuy in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_La_Rioja = 1; // America/Argentina/La_Rioja in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Mendoza = 1; // America/Argentina/Mendoza in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Rio_Gallegos = 1; // America/Argentina/Rio_Gallegos in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Salta = 1; // America/Argentina/Salta in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_San_Juan = 1; // America/Argentina/San_Juan in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_San_Luis = 1; // America/Argentina/San_Luis in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Tucuman = 2; // America/Argentina/Tucuman in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Ushuaia = 1; // America/Argentina/Ushuaia in 1966 +const uint8_t kZoneBufSizeAmerica_Bahia = 1; // America/Bahia in 1966 +const uint8_t kZoneBufSizeAmerica_Bahia_Banderas = 2; // America/Bahia_Banderas in 1966 +const uint8_t kZoneBufSizeAmerica_Barbados = 2; // America/Barbados in 1966 +const uint8_t kZoneBufSizeAmerica_Belem = 1; // America/Belem in 1966 +const uint8_t kZoneBufSizeAmerica_Belize = 2; // America/Belize in 1966 +const uint8_t kZoneBufSizeAmerica_Boa_Vista = 1; // America/Boa_Vista in 1966 +const uint8_t kZoneBufSizeAmerica_Bogota = 2; // America/Bogota in 1966 +const uint8_t kZoneBufSizeAmerica_Boise = 6; // America/Boise in 2008 +const uint8_t kZoneBufSizeAmerica_Cambridge_Bay = 6; // America/Cambridge_Bay in 2008 +const uint8_t kZoneBufSizeAmerica_Campo_Grande = 2; // America/Campo_Grande in 1966 +const uint8_t kZoneBufSizeAmerica_Cancun = 1; // America/Cancun in 1966 +const uint8_t kZoneBufSizeAmerica_Caracas = 1; // America/Caracas in 1966 +const uint8_t kZoneBufSizeAmerica_Cayenne = 1; // America/Cayenne in 1966 +const uint8_t kZoneBufSizeAmerica_Chicago = 6; // America/Chicago in 2008 +const uint8_t kZoneBufSizeAmerica_Chihuahua = 1; // America/Chihuahua in 1966 +const uint8_t kZoneBufSizeAmerica_Ciudad_Juarez = 6; // America/Ciudad_Juarez in 2008 +const uint8_t kZoneBufSizeAmerica_Costa_Rica = 2; // America/Costa_Rica in 1966 +const uint8_t kZoneBufSizeAmerica_Cuiaba = 2; // America/Cuiaba in 1966 +const uint8_t kZoneBufSizeAmerica_Danmarkshavn = 1; // America/Danmarkshavn in 1966 +const uint8_t kZoneBufSizeAmerica_Dawson = 1; // America/Dawson in 1966 +const uint8_t kZoneBufSizeAmerica_Dawson_Creek = 1; // America/Dawson_Creek in 1966 +const uint8_t kZoneBufSizeAmerica_Denver = 6; // America/Denver in 2008 +const uint8_t kZoneBufSizeAmerica_Detroit = 6; // America/Detroit in 2008 +const uint8_t kZoneBufSizeAmerica_Edmonton = 6; // America/Edmonton in 2008 +const uint8_t kZoneBufSizeAmerica_Eirunepe = 1; // America/Eirunepe in 1966 +const uint8_t kZoneBufSizeAmerica_El_Salvador = 2; // America/El_Salvador in 1966 +const uint8_t kZoneBufSizeAmerica_Fort_Nelson = 1; // America/Fort_Nelson in 1966 +const uint8_t kZoneBufSizeAmerica_Fortaleza = 1; // America/Fortaleza in 1966 +const uint8_t kZoneBufSizeAmerica_Glace_Bay = 6; // America/Glace_Bay in 2008 +const uint8_t kZoneBufSizeAmerica_Goose_Bay = 6; // America/Goose_Bay in 2008 +const uint8_t kZoneBufSizeAmerica_Grand_Turk = 6; // America/Grand_Turk in 2008 +const uint8_t kZoneBufSizeAmerica_Guatemala = 2; // America/Guatemala in 1966 +const uint8_t kZoneBufSizeAmerica_Guayaquil = 2; // America/Guayaquil in 1966 +const uint8_t kZoneBufSizeAmerica_Guyana = 1; // America/Guyana in 1966 +const uint8_t kZoneBufSizeAmerica_Halifax = 6; // America/Halifax in 2008 +const uint8_t kZoneBufSizeAmerica_Havana = 6; // America/Havana in 2015 +const uint8_t kZoneBufSizeAmerica_Hermosillo = 1; // America/Hermosillo in 1966 +const uint8_t kZoneBufSizeAmerica_Indiana_Indianapolis = 6; // America/Indiana/Indianapolis in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Knox = 6; // America/Indiana/Knox in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Marengo = 6; // America/Indiana/Marengo in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Petersburg = 6; // America/Indiana/Petersburg in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Tell_City = 6; // America/Indiana/Tell_City in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Vevay = 6; // America/Indiana/Vevay in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Vincennes = 6; // America/Indiana/Vincennes in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Winamac = 6; // America/Indiana/Winamac in 2008 +const uint8_t kZoneBufSizeAmerica_Inuvik = 6; // America/Inuvik in 2008 +const uint8_t kZoneBufSizeAmerica_Iqaluit = 6; // America/Iqaluit in 2008 +const uint8_t kZoneBufSizeAmerica_Jamaica = 1; // America/Jamaica in 1966 +const uint8_t kZoneBufSizeAmerica_Juneau = 6; // America/Juneau in 2008 +const uint8_t kZoneBufSizeAmerica_Kentucky_Louisville = 6; // America/Kentucky/Louisville in 2008 +const uint8_t kZoneBufSizeAmerica_Kentucky_Monticello = 6; // America/Kentucky/Monticello in 2008 +const uint8_t kZoneBufSizeAmerica_La_Paz = 1; // America/La_Paz in 1966 +const uint8_t kZoneBufSizeAmerica_Lima = 2; // America/Lima in 1966 +const uint8_t kZoneBufSizeAmerica_Los_Angeles = 6; // America/Los_Angeles in 2008 +const uint8_t kZoneBufSizeAmerica_Maceio = 1; // America/Maceio in 1966 +const uint8_t kZoneBufSizeAmerica_Managua = 2; // America/Managua in 1966 +const uint8_t kZoneBufSizeAmerica_Manaus = 1; // America/Manaus in 1966 +const uint8_t kZoneBufSizeAmerica_Martinique = 1; // America/Martinique in 1966 +const uint8_t kZoneBufSizeAmerica_Matamoros = 6; // America/Matamoros in 2008 +const uint8_t kZoneBufSizeAmerica_Mazatlan = 2; // America/Mazatlan in 1966 +const uint8_t kZoneBufSizeAmerica_Menominee = 6; // America/Menominee in 2008 +const uint8_t kZoneBufSizeAmerica_Merida = 2; // America/Merida in 1966 +const uint8_t kZoneBufSizeAmerica_Metlakatla = 6; // America/Metlakatla in 2008 +const uint8_t kZoneBufSizeAmerica_Mexico_City = 2; // America/Mexico_City in 1966 +const uint8_t kZoneBufSizeAmerica_Miquelon = 6; // America/Miquelon in 2008 +const uint8_t kZoneBufSizeAmerica_Moncton = 6; // America/Moncton in 2008 +const uint8_t kZoneBufSizeAmerica_Monterrey = 2; // America/Monterrey in 1966 +const uint8_t kZoneBufSizeAmerica_Montevideo = 2; // America/Montevideo in 1966 +const uint8_t kZoneBufSizeAmerica_New_York = 6; // America/New_York in 2008 +const uint8_t kZoneBufSizeAmerica_Nome = 6; // America/Nome in 2008 +const uint8_t kZoneBufSizeAmerica_Noronha = 1; // America/Noronha in 1966 +const uint8_t kZoneBufSizeAmerica_North_Dakota_Beulah = 6; // America/North_Dakota/Beulah in 2008 +const uint8_t kZoneBufSizeAmerica_North_Dakota_Center = 6; // America/North_Dakota/Center in 2008 +const uint8_t kZoneBufSizeAmerica_North_Dakota_New_Salem = 6; // America/North_Dakota/New_Salem in 2008 +const uint8_t kZoneBufSizeAmerica_Nuuk = 5; // America/Nuuk in 1983 +const uint8_t kZoneBufSizeAmerica_Ojinaga = 6; // America/Ojinaga in 2008 +const uint8_t kZoneBufSizeAmerica_Panama = 1; // America/Panama in 1966 +const uint8_t kZoneBufSizeAmerica_Paramaribo = 1; // America/Paramaribo in 1966 +const uint8_t kZoneBufSizeAmerica_Phoenix = 1; // America/Phoenix in 1966 +const uint8_t kZoneBufSizeAmerica_Port_au_Prince = 6; // America/Port-au-Prince in 2018 +const uint8_t kZoneBufSizeAmerica_Porto_Velho = 1; // America/Porto_Velho in 1966 +const uint8_t kZoneBufSizeAmerica_Puerto_Rico = 1; // America/Puerto_Rico in 1966 +const uint8_t kZoneBufSizeAmerica_Punta_Arenas = 1; // America/Punta_Arenas in 1966 +const uint8_t kZoneBufSizeAmerica_Rankin_Inlet = 6; // America/Rankin_Inlet in 2008 +const uint8_t kZoneBufSizeAmerica_Recife = 1; // America/Recife in 1966 +const uint8_t kZoneBufSizeAmerica_Regina = 1; // America/Regina in 1966 +const uint8_t kZoneBufSizeAmerica_Resolute = 6; // America/Resolute in 2008 +const uint8_t kZoneBufSizeAmerica_Rio_Branco = 1; // America/Rio_Branco in 1966 +const uint8_t kZoneBufSizeAmerica_Santarem = 1; // America/Santarem in 1966 +const uint8_t kZoneBufSizeAmerica_Santiago = 4; // America/Santiago in 2022 +const uint8_t kZoneBufSizeAmerica_Santo_Domingo = 1; // America/Santo_Domingo in 1966 +const uint8_t kZoneBufSizeAmerica_Sao_Paulo = 2; // America/Sao_Paulo in 1966 +const uint8_t kZoneBufSizeAmerica_Sitka = 6; // America/Sitka in 2008 +const uint8_t kZoneBufSizeAmerica_St_Johns = 6; // America/St_Johns in 2008 +const uint8_t kZoneBufSizeAmerica_Swift_Current = 1; // America/Swift_Current in 1966 +const uint8_t kZoneBufSizeAmerica_Tegucigalpa = 2; // America/Tegucigalpa in 1966 +const uint8_t kZoneBufSizeAmerica_Thule = 6; // America/Thule in 2008 +const uint8_t kZoneBufSizeAmerica_Tijuana = 6; // America/Tijuana in 2008 +const uint8_t kZoneBufSizeAmerica_Toronto = 6; // America/Toronto in 2008 +const uint8_t kZoneBufSizeAmerica_Vancouver = 6; // America/Vancouver in 2008 +const uint8_t kZoneBufSizeAmerica_Whitehorse = 1; // America/Whitehorse in 1966 +const uint8_t kZoneBufSizeAmerica_Winnipeg = 6; // America/Winnipeg in 2008 +const uint8_t kZoneBufSizeAmerica_Yakutat = 6; // America/Yakutat in 2008 +const uint8_t kZoneBufSizeAntarctica_Casey = 1; // Antarctica/Casey in 1966 +const uint8_t kZoneBufSizeAntarctica_Davis = 1; // Antarctica/Davis in 1966 +const uint8_t kZoneBufSizeAntarctica_Macquarie = 4; // Antarctica/Macquarie in 2007 +const uint8_t kZoneBufSizeAntarctica_Mawson = 1; // Antarctica/Mawson in 1966 +const uint8_t kZoneBufSizeAntarctica_Palmer = 1; // Antarctica/Palmer in 1966 +const uint8_t kZoneBufSizeAntarctica_Rothera = 1; // Antarctica/Rothera in 1966 +const uint8_t kZoneBufSizeAntarctica_Troll = 5; // Antarctica/Troll in 2005 +const uint8_t kZoneBufSizeAntarctica_Vostok = 1; // Antarctica/Vostok in 1966 +const uint8_t kZoneBufSizeAsia_Amman = 1; // Asia/Amman in 1966 +const uint8_t kZoneBufSizeAsia_Anadyr = 1; // Asia/Anadyr in 1966 +const uint8_t kZoneBufSizeAsia_Aqtau = 1; // Asia/Aqtau in 1966 +const uint8_t kZoneBufSizeAsia_Aqtobe = 1; // Asia/Aqtobe in 1966 +const uint8_t kZoneBufSizeAsia_Ashgabat = 1; // Asia/Ashgabat in 1966 +const uint8_t kZoneBufSizeAsia_Atyrau = 1; // Asia/Atyrau in 1966 +const uint8_t kZoneBufSizeAsia_Baghdad = 2; // Asia/Baghdad in 1966 +const uint8_t kZoneBufSizeAsia_Baku = 2; // Asia/Baku in 1966 +const uint8_t kZoneBufSizeAsia_Bangkok = 1; // Asia/Bangkok in 1966 +const uint8_t kZoneBufSizeAsia_Barnaul = 1; // Asia/Barnaul in 1966 +const uint8_t kZoneBufSizeAsia_Beirut = 5; // Asia/Beirut in 1993 +const uint8_t kZoneBufSizeAsia_Bishkek = 1; // Asia/Bishkek in 1966 +const uint8_t kZoneBufSizeAsia_Chita = 1; // Asia/Chita in 1966 +const uint8_t kZoneBufSizeAsia_Colombo = 1; // Asia/Colombo in 1966 +const uint8_t kZoneBufSizeAsia_Damascus = 1; // Asia/Damascus in 1966 +const uint8_t kZoneBufSizeAsia_Dhaka = 2; // Asia/Dhaka in 1966 +const uint8_t kZoneBufSizeAsia_Dili = 1; // Asia/Dili in 1966 +const uint8_t kZoneBufSizeAsia_Dubai = 1; // Asia/Dubai in 1966 +const uint8_t kZoneBufSizeAsia_Dushanbe = 1; // Asia/Dushanbe in 1966 +const uint8_t kZoneBufSizeAsia_Famagusta = 5; // Asia/Famagusta in 1981 +const uint8_t kZoneBufSizeAsia_Ho_Chi_Minh = 1; // Asia/Ho_Chi_Minh in 1966 +const uint8_t kZoneBufSizeAsia_Hong_Kong = 2; // Asia/Hong_Kong in 1966 +const uint8_t kZoneBufSizeAsia_Hovd = 2; // Asia/Hovd in 1966 +const uint8_t kZoneBufSizeAsia_Irkutsk = 1; // Asia/Irkutsk in 1966 +const uint8_t kZoneBufSizeAsia_Jakarta = 1; // Asia/Jakarta in 1966 +const uint8_t kZoneBufSizeAsia_Jayapura = 1; // Asia/Jayapura in 1966 +const uint8_t kZoneBufSizeAsia_Jerusalem = 5; // Asia/Jerusalem in 2013 +const uint8_t kZoneBufSizeAsia_Kabul = 1; // Asia/Kabul in 1966 +const uint8_t kZoneBufSizeAsia_Kamchatka = 1; // Asia/Kamchatka in 1966 +const uint8_t kZoneBufSizeAsia_Karachi = 2; // Asia/Karachi in 1966 +const uint8_t kZoneBufSizeAsia_Kathmandu = 1; // Asia/Kathmandu in 1966 +const uint8_t kZoneBufSizeAsia_Khandyga = 1; // Asia/Khandyga in 1966 +const uint8_t kZoneBufSizeAsia_Kolkata = 1; // Asia/Kolkata in 1966 +const uint8_t kZoneBufSizeAsia_Krasnoyarsk = 1; // Asia/Krasnoyarsk in 1966 +const uint8_t kZoneBufSizeAsia_Kuching = 1; // Asia/Kuching in 1966 +const uint8_t kZoneBufSizeAsia_Macau = 2; // Asia/Macau in 1966 +const uint8_t kZoneBufSizeAsia_Magadan = 1; // Asia/Magadan in 1966 +const uint8_t kZoneBufSizeAsia_Makassar = 1; // Asia/Makassar in 1966 +const uint8_t kZoneBufSizeAsia_Manila = 2; // Asia/Manila in 1966 +const uint8_t kZoneBufSizeAsia_Nicosia = 5; // Asia/Nicosia in 1981 +const uint8_t kZoneBufSizeAsia_Novokuznetsk = 1; // Asia/Novokuznetsk in 1966 +const uint8_t kZoneBufSizeAsia_Novosibirsk = 1; // Asia/Novosibirsk in 1966 +const uint8_t kZoneBufSizeAsia_Omsk = 1; // Asia/Omsk in 1966 +const uint8_t kZoneBufSizeAsia_Oral = 1; // Asia/Oral in 1966 +const uint8_t kZoneBufSizeAsia_Pontianak = 1; // Asia/Pontianak in 1966 +const uint8_t kZoneBufSizeAsia_Pyongyang = 1; // Asia/Pyongyang in 1966 +const uint8_t kZoneBufSizeAsia_Qatar = 1; // Asia/Qatar in 1966 +const uint8_t kZoneBufSizeAsia_Qyzylorda = 1; // Asia/Qyzylorda in 1966 +const uint8_t kZoneBufSizeAsia_Riyadh = 1; // Asia/Riyadh in 1966 +const uint8_t kZoneBufSizeAsia_Sakhalin = 1; // Asia/Sakhalin in 1966 +const uint8_t kZoneBufSizeAsia_Samarkand = 1; // Asia/Samarkand in 1966 +const uint8_t kZoneBufSizeAsia_Seoul = 2; // Asia/Seoul in 1966 +const uint8_t kZoneBufSizeAsia_Shanghai = 2; // Asia/Shanghai in 1966 +const uint8_t kZoneBufSizeAsia_Singapore = 1; // Asia/Singapore in 1966 +const uint8_t kZoneBufSizeAsia_Srednekolymsk = 1; // Asia/Srednekolymsk in 1966 +const uint8_t kZoneBufSizeAsia_Taipei = 2; // Asia/Taipei in 1966 +const uint8_t kZoneBufSizeAsia_Tashkent = 1; // Asia/Tashkent in 1966 +const uint8_t kZoneBufSizeAsia_Tbilisi = 1; // Asia/Tbilisi in 1966 +const uint8_t kZoneBufSizeAsia_Tehran = 2; // Asia/Tehran in 1966 +const uint8_t kZoneBufSizeAsia_Thimphu = 1; // Asia/Thimphu in 1966 +const uint8_t kZoneBufSizeAsia_Tokyo = 2; // Asia/Tokyo in 1966 +const uint8_t kZoneBufSizeAsia_Tomsk = 1; // Asia/Tomsk in 1966 +const uint8_t kZoneBufSizeAsia_Ulaanbaatar = 2; // Asia/Ulaanbaatar in 1966 +const uint8_t kZoneBufSizeAsia_Urumqi = 1; // Asia/Urumqi in 1966 +const uint8_t kZoneBufSizeAsia_Ust_Nera = 1; // Asia/Ust-Nera in 1966 +const uint8_t kZoneBufSizeAsia_Vladivostok = 1; // Asia/Vladivostok in 1966 +const uint8_t kZoneBufSizeAsia_Yakutsk = 1; // Asia/Yakutsk in 1966 +const uint8_t kZoneBufSizeAsia_Yangon = 1; // Asia/Yangon in 1966 +const uint8_t kZoneBufSizeAsia_Yekaterinburg = 1; // Asia/Yekaterinburg in 1966 +const uint8_t kZoneBufSizeAsia_Yerevan = 2; // Asia/Yerevan in 1966 +const uint8_t kZoneBufSizeAtlantic_Azores = 5; // Atlantic/Azores in 1983 +const uint8_t kZoneBufSizeAtlantic_Bermuda = 6; // Atlantic/Bermuda in 2008 +const uint8_t kZoneBufSizeAtlantic_Canary = 5; // Atlantic/Canary in 1983 +const uint8_t kZoneBufSizeAtlantic_Cape_Verde = 1; // Atlantic/Cape_Verde in 1966 +const uint8_t kZoneBufSizeAtlantic_Faroe = 5; // Atlantic/Faroe in 1983 +const uint8_t kZoneBufSizeAtlantic_Madeira = 5; // Atlantic/Madeira in 1983 +const uint8_t kZoneBufSizeAtlantic_South_Georgia = 1; // Atlantic/South_Georgia in 1966 +const uint8_t kZoneBufSizeAtlantic_Stanley = 1; // Atlantic/Stanley in 1966 +const uint8_t kZoneBufSizeAustralia_Adelaide = 4; // Australia/Adelaide in 2008 +const uint8_t kZoneBufSizeAustralia_Brisbane = 2; // Australia/Brisbane in 1966 +const uint8_t kZoneBufSizeAustralia_Broken_Hill = 4; // Australia/Broken_Hill in 2008 +const uint8_t kZoneBufSizeAustralia_Darwin = 2; // Australia/Darwin in 1966 +const uint8_t kZoneBufSizeAustralia_Eucla = 2; // Australia/Eucla in 1966 +const uint8_t kZoneBufSizeAustralia_Hobart = 4; // Australia/Hobart in 2007 +const uint8_t kZoneBufSizeAustralia_Lindeman = 2; // Australia/Lindeman in 1966 +const uint8_t kZoneBufSizeAustralia_Lord_Howe = 4; // Australia/Lord_Howe in 2008 +const uint8_t kZoneBufSizeAustralia_Melbourne = 4; // Australia/Melbourne in 2008 +const uint8_t kZoneBufSizeAustralia_Perth = 2; // Australia/Perth in 1966 +const uint8_t kZoneBufSizeAustralia_Sydney = 4; // Australia/Sydney in 2008 +const uint8_t kZoneBufSizeEtc_GMT = 1; // Etc/GMT in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_1 = 1; // Etc/GMT+1 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_10 = 1; // Etc/GMT+10 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_11 = 1; // Etc/GMT+11 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_12 = 1; // Etc/GMT+12 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_2 = 1; // Etc/GMT+2 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_3 = 1; // Etc/GMT+3 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_4 = 1; // Etc/GMT+4 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_5 = 1; // Etc/GMT+5 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_6 = 1; // Etc/GMT+6 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_7 = 1; // Etc/GMT+7 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_8 = 1; // Etc/GMT+8 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_9 = 1; // Etc/GMT+9 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_1 = 1; // Etc/GMT-1 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_10 = 1; // Etc/GMT-10 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_11 = 1; // Etc/GMT-11 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_12 = 1; // Etc/GMT-12 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_13 = 1; // Etc/GMT-13 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_14 = 1; // Etc/GMT-14 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_2 = 1; // Etc/GMT-2 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_3 = 1; // Etc/GMT-3 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_4 = 1; // Etc/GMT-4 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_5 = 1; // Etc/GMT-5 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_6 = 1; // Etc/GMT-6 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_7 = 1; // Etc/GMT-7 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_8 = 1; // Etc/GMT-8 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_9 = 1; // Etc/GMT-9 in 1966 +const uint8_t kZoneBufSizeEtc_UTC = 1; // Etc/UTC in 1966 +const uint8_t kZoneBufSizeEurope_Andorra = 5; // Europe/Andorra in 1983 +const uint8_t kZoneBufSizeEurope_Astrakhan = 1; // Europe/Astrakhan in 1966 +const uint8_t kZoneBufSizeEurope_Athens = 5; // Europe/Athens in 1983 +const uint8_t kZoneBufSizeEurope_Belgrade = 5; // Europe/Belgrade in 1983 +const uint8_t kZoneBufSizeEurope_Berlin = 5; // Europe/Berlin in 1983 +const uint8_t kZoneBufSizeEurope_Brussels = 5; // Europe/Brussels in 1983 +const uint8_t kZoneBufSizeEurope_Bucharest = 5; // Europe/Bucharest in 1983 +const uint8_t kZoneBufSizeEurope_Budapest = 5; // Europe/Budapest in 1983 +const uint8_t kZoneBufSizeEurope_Chisinau = 5; // Europe/Chisinau in 1997 +const uint8_t kZoneBufSizeEurope_Dublin = 5; // Europe/Dublin in 1990 +const uint8_t kZoneBufSizeEurope_Gibraltar = 5; // Europe/Gibraltar in 1983 +const uint8_t kZoneBufSizeEurope_Helsinki = 5; // Europe/Helsinki in 1983 +const uint8_t kZoneBufSizeEurope_Istanbul = 1; // Europe/Istanbul in 1966 +const uint8_t kZoneBufSizeEurope_Kaliningrad = 1; // Europe/Kaliningrad in 1966 +const uint8_t kZoneBufSizeEurope_Kirov = 1; // Europe/Kirov in 1966 +const uint8_t kZoneBufSizeEurope_Kyiv = 5; // Europe/Kyiv in 1983 +const uint8_t kZoneBufSizeEurope_Lisbon = 5; // Europe/Lisbon in 1983 +const uint8_t kZoneBufSizeEurope_London = 5; // Europe/London in 1983 +const uint8_t kZoneBufSizeEurope_Madrid = 5; // Europe/Madrid in 1983 +const uint8_t kZoneBufSizeEurope_Malta = 5; // Europe/Malta in 1983 +const uint8_t kZoneBufSizeEurope_Minsk = 1; // Europe/Minsk in 1966 +const uint8_t kZoneBufSizeEurope_Moscow = 1; // Europe/Moscow in 1966 +const uint8_t kZoneBufSizeEurope_Paris = 5; // Europe/Paris in 1983 +const uint8_t kZoneBufSizeEurope_Prague = 5; // Europe/Prague in 1983 +const uint8_t kZoneBufSizeEurope_Riga = 5; // Europe/Riga in 1983 +const uint8_t kZoneBufSizeEurope_Rome = 5; // Europe/Rome in 1983 +const uint8_t kZoneBufSizeEurope_Samara = 1; // Europe/Samara in 1966 +const uint8_t kZoneBufSizeEurope_Saratov = 1; // Europe/Saratov in 1966 +const uint8_t kZoneBufSizeEurope_Simferopol = 1; // Europe/Simferopol in 1966 +const uint8_t kZoneBufSizeEurope_Sofia = 5; // Europe/Sofia in 1983 +const uint8_t kZoneBufSizeEurope_Tallinn = 5; // Europe/Tallinn in 1983 +const uint8_t kZoneBufSizeEurope_Tirane = 5; // Europe/Tirane in 1983 +const uint8_t kZoneBufSizeEurope_Ulyanovsk = 1; // Europe/Ulyanovsk in 1966 +const uint8_t kZoneBufSizeEurope_Vienna = 5; // Europe/Vienna in 1983 +const uint8_t kZoneBufSizeEurope_Vilnius = 5; // Europe/Vilnius in 1983 +const uint8_t kZoneBufSizeEurope_Volgograd = 1; // Europe/Volgograd in 1966 +const uint8_t kZoneBufSizeEurope_Warsaw = 5; // Europe/Warsaw in 1983 +const uint8_t kZoneBufSizeEurope_Zurich = 5; // Europe/Zurich in 1983 +const uint8_t kZoneBufSizeIndian_Chagos = 1; // Indian/Chagos in 1966 +const uint8_t kZoneBufSizeIndian_Maldives = 1; // Indian/Maldives in 1966 +const uint8_t kZoneBufSizeIndian_Mauritius = 2; // Indian/Mauritius in 1966 +const uint8_t kZoneBufSizePacific_Apia = 2; // Pacific/Apia in 1966 +const uint8_t kZoneBufSizePacific_Auckland = 4; // Pacific/Auckland in 1992 +const uint8_t kZoneBufSizePacific_Bougainville = 1; // Pacific/Bougainville in 1966 +const uint8_t kZoneBufSizePacific_Chatham = 4; // Pacific/Chatham in 1992 +const uint8_t kZoneBufSizePacific_Easter = 4; // Pacific/Easter in 2022 +const uint8_t kZoneBufSizePacific_Efate = 2; // Pacific/Efate in 1966 +const uint8_t kZoneBufSizePacific_Fakaofo = 1; // Pacific/Fakaofo in 1966 +const uint8_t kZoneBufSizePacific_Fiji = 2; // Pacific/Fiji in 1966 +const uint8_t kZoneBufSizePacific_Galapagos = 2; // Pacific/Galapagos in 1966 +const uint8_t kZoneBufSizePacific_Gambier = 1; // Pacific/Gambier in 1966 +const uint8_t kZoneBufSizePacific_Guadalcanal = 1; // Pacific/Guadalcanal in 1966 +const uint8_t kZoneBufSizePacific_Guam = 1; // Pacific/Guam in 1966 +const uint8_t kZoneBufSizePacific_Honolulu = 1; // Pacific/Honolulu in 1966 +const uint8_t kZoneBufSizePacific_Kanton = 1; // Pacific/Kanton in 1966 +const uint8_t kZoneBufSizePacific_Kiritimati = 1; // Pacific/Kiritimati in 1966 +const uint8_t kZoneBufSizePacific_Kosrae = 1; // Pacific/Kosrae in 1966 +const uint8_t kZoneBufSizePacific_Kwajalein = 1; // Pacific/Kwajalein in 1966 +const uint8_t kZoneBufSizePacific_Marquesas = 1; // Pacific/Marquesas in 1966 +const uint8_t kZoneBufSizePacific_Nauru = 1; // Pacific/Nauru in 1966 +const uint8_t kZoneBufSizePacific_Niue = 1; // Pacific/Niue in 1966 +const uint8_t kZoneBufSizePacific_Norfolk = 4; // Pacific/Norfolk in 2008 +const uint8_t kZoneBufSizePacific_Noumea = 2; // Pacific/Noumea in 1966 +const uint8_t kZoneBufSizePacific_Pago_Pago = 1; // Pacific/Pago_Pago in 1966 +const uint8_t kZoneBufSizePacific_Palau = 1; // Pacific/Palau in 1966 +const uint8_t kZoneBufSizePacific_Pitcairn = 1; // Pacific/Pitcairn in 1966 +const uint8_t kZoneBufSizePacific_Port_Moresby = 1; // Pacific/Port_Moresby in 1966 +const uint8_t kZoneBufSizePacific_Rarotonga = 2; // Pacific/Rarotonga in 1966 +const uint8_t kZoneBufSizePacific_Tahiti = 1; // Pacific/Tahiti in 1966 +const uint8_t kZoneBufSizePacific_Tarawa = 1; // Pacific/Tarawa in 1966 +const uint8_t kZoneBufSizePacific_Tongatapu = 2; // Pacific/Tongatapu in 1966 + + +//--------------------------------------------------------------------------- +// Unsupported zones: 7 +//--------------------------------------------------------------------------- + +// America/Asuncion {UNTIL contains month/day/time} +// America/Coyhaique {UNTIL contains month/day/time} +// America/Scoresbysund {UNTIL contains month/day/time} +// Asia/Almaty {UNTIL contains month/day/time} +// Asia/Gaza {policy 'Palestine' not found} +// Asia/Hebron {policy 'Palestine' not found} +// Asia/Qostanay {UNTIL contains month/day/time} + + +//--------------------------------------------------------------------------- +// Notable zones: 42 +//--------------------------------------------------------------------------- + +// Africa/Casablanca { +// RULES not fixed but FORMAT is missing '%s' or '/', +// Morocco {SAVE '-1:00' is a negative DST} +// } +// Africa/El_Aaiun { +// RULES not fixed but FORMAT is missing '%s' or '/', +// Morocco {SAVE '-1:00' is a negative DST} +// } +// Africa/Johannesburg {RULES not fixed but FORMAT is missing '%s' or '/'} +// Africa/Windhoek { +// Namibia {LETTER 'CAT' not single character} +// } +// America/Argentina/Buenos_Aires {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Argentina/Cordoba {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Argentina/Tucuman {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Belize { +// Belize {LETTER 'CST' not single character} +// } +// America/Bogota {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Campo_Grande {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Cuiaba {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Guayaquil {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Lima {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Miquelon {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Montevideo {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Nuuk {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Santiago {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Sao_Paulo {RULES not fixed but FORMAT is missing '%s' or '/'} +// Antarctica/Troll { +// Troll { +// LETTER '+00' not single character, +// LETTER '+02' not single character, +// SAVE '2:00' different from 1:00, +// } +// } +// Asia/Baghdad {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Baku {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Dhaka {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Hovd {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Kathmandu {STDOFF '5:45' not multiple of :30 min} +// Asia/Tehran {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Ulaanbaatar {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Yerevan {RULES not fixed but FORMAT is missing '%s' or '/'} +// Atlantic/Azores {RULES not fixed but FORMAT is missing '%s' or '/'} +// Australia/Eucla { +// RULES not fixed but FORMAT is missing '%s' or '/', +// STDOFF '8:45' not multiple of :30 min, +// } +// Australia/Lord_Howe { +// RULES not fixed but FORMAT is missing '%s' or '/', +// LH {SAVE '0:30' different from 1:00} +// } +// Europe/Dublin { +// Eire {SAVE '-1:00' is a negative DST} +// } +// Indian/Mauritius {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Apia {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Chatham { +// RULES not fixed but FORMAT is missing '%s' or '/', +// STDOFF '12:45' not multiple of :30 min, +// } +// Pacific/Easter {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Efate {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Fiji {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Galapagos {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Norfolk {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Noumea {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Rarotonga {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Tongatapu {RULES not fixed but FORMAT is missing '%s' or '/'} + + +//--------------------------------------------------------------------------- +// Unsupported links: 0 +//--------------------------------------------------------------------------- + + + +//--------------------------------------------------------------------------- +// Notable links: 0 +//--------------------------------------------------------------------------- + + + +} +} + +#endif diff --git a/src/zonedb2025/zone_policies.cpp b/src/zonedb2025/zone_policies.cpp new file mode 100644 index 000000000..19a41cdc2 --- /dev/null +++ b/src/zonedb2025/zone_policies.cpp @@ -0,0 +1,4084 @@ +// 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/zonedb2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope basic +// --db_namespace zonedb2025 +// --zi_namespace basic::Info +// --start_year 2025 +// --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: 590 (333 zones, 257 links) +// Unsupported Zones: 7 (7 zones, 0 links) +// +// Requested Years: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 6 +// +// Records: +// Infos: 590 +// Eras: 333 +// Policies: 64 +// Rules: 258 +// +// Memory (8-bits): +// Context: 20 +// Rules: 2322 +// Policies: 192 +// Eras: 3663 +// Zones: 4329 +// Links: 3341 +// Registry: 1180 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5593 (original: 8990) +// TOTAL: 21021 +// +// Memory (32-bits): +// Context: 28 +// Rules: 3096 +// Policies: 512 +// Eras: 5328 +// Zones: 7992 +// Links: 6168 +// Registry: 2360 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5593 (original: 8990) +// TOTAL: 31500 +// +// DO NOT EDIT + +#include +#include "zone_policies.h" + +namespace ace_time { +namespace zonedb2025 { + +//--------------------------------------------------------------------------- +// Policies: 64 +// Rules: 258 +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// Policy name: AN +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesAN[] ACE_TIME_PROGMEM = { + // Anchor: Rule AN 2008 max - Apr 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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 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)*/, + 6 /*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 basic::Info::ZonePolicy kZonePolicyAN ACE_TIME_PROGMEM = { + kZoneRulesAN /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: AQ +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyAQ ACE_TIME_PROGMEM = { + kZoneRulesAQ /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: AS +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesAS[] ACE_TIME_PROGMEM = { + // Anchor: Rule AS 2008 max - Apr 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)*/, + 6 /*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 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)*/, + 6 /*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 basic::Info::ZonePolicy kZonePolicyAS ACE_TIME_PROGMEM = { + kZoneRulesAS /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: AT +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesAT[] ACE_TIME_PROGMEM = { + // Anchor: Rule AT 2007 only - 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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 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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyAT ACE_TIME_PROGMEM = { + kZoneRulesAT /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: AV +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesAV[] ACE_TIME_PROGMEM = { + // Anchor: Rule AV 2008 max - Apr 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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 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)*/, + 6 /*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 basic::Info::ZonePolicy kZonePolicyAV ACE_TIME_PROGMEM = { + kZoneRulesAV /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: AW +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesAW[] ACE_TIME_PROGMEM = { + // Anchor: Rule AW 2007 2009 - 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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyAW ACE_TIME_PROGMEM = { + kZoneRulesAW /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Arg +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesArg[] ACE_TIME_PROGMEM = { + // Anchor: Rule Arg 2008 2009 - Mar Sun>=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 basic::Info::ZonePolicy kZonePolicyArg ACE_TIME_PROGMEM = { + kZoneRulesArg /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Armenia +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 ("")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyArmenia ACE_TIME_PROGMEM = { + kZoneRulesArmenia /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Aus +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyAus ACE_TIME_PROGMEM = { + kZoneRulesAus /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Azer +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 ("")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyAzer ACE_TIME_PROGMEM = { + kZoneRulesAzer /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Barb +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyBarb ACE_TIME_PROGMEM = { + kZoneRulesBarb /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Belize +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 basic::Info::ZonePolicy kZonePolicyBelize ACE_TIME_PROGMEM = { + kZoneRulesBelize /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Brazil +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesBrazil[] ACE_TIME_PROGMEM = { + // Anchor: Rule Brazil 2016 2019 - Feb Sun>=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 basic::Info::ZonePolicy kZonePolicyBrazil ACE_TIME_PROGMEM = { + kZoneRulesBrazil /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: CO +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 basic::Info::ZonePolicy kZonePolicyCO ACE_TIME_PROGMEM = { + kZoneRulesCO /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: CR +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyCR ACE_TIME_PROGMEM = { + kZoneRulesCR /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Canada +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyCanada ACE_TIME_PROGMEM = { + kZoneRulesCanada /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Chatham +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::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 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 basic::Info::ZonePolicy kZonePolicyChatham ACE_TIME_PROGMEM = { + kZoneRulesChatham /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Chile +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesChile[] ACE_TIME_PROGMEM = { + // Anchor: Rule Chile 2019 max - Apr Sun>=2 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 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 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 basic::Info::ZonePolicy kZonePolicyChile ACE_TIME_PROGMEM = { + kZoneRulesChile /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Cook +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 basic::Info::ZonePolicy kZonePolicyCook ACE_TIME_PROGMEM = { + kZoneRulesCook /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Cuba +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesCuba[] ACE_TIME_PROGMEM = { + // Anchor: Rule Cuba 2012 max - Nov Sun>=1 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)*/, + 6 /*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)*/, + 6 /*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 basic::Info::ZonePolicy kZonePolicyCuba ACE_TIME_PROGMEM = { + kZoneRulesCuba /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Dhaka +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 ("")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyDhaka ACE_TIME_PROGMEM = { + kZoneRulesDhaka /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: EU +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*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 basic::Info::ZonePolicy kZonePolicyEU ACE_TIME_PROGMEM = { + kZoneRulesEU /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: EUAsia +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*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 basic::Info::ZonePolicy kZonePolicyEUAsia ACE_TIME_PROGMEM = { + kZoneRulesEUAsia /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Ecuador +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 basic::Info::ZonePolicy kZonePolicyEcuador ACE_TIME_PROGMEM = { + kZoneRulesEcuador /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Egypt +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesEgypt[] ACE_TIME_PROGMEM = { + // Anchor: Rule Egypt 2014 only - Sep lastThu 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 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)*/, + 6 /*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 basic::Info::ZonePolicy kZonePolicyEgypt ACE_TIME_PROGMEM = { + kZoneRulesEgypt /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Eire +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::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 basic::Info::ZonePolicy kZonePolicyEire ACE_TIME_PROGMEM = { + kZoneRulesEire /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Fiji +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesFiji[] ACE_TIME_PROGMEM = { + // Anchor: Rule Fiji 2015 2021 - Jan Sun>=12 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 ("")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyFiji ACE_TIME_PROGMEM = { + kZoneRulesFiji /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Guat +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesGuat[] ACE_TIME_PROGMEM = { + // Anchor: Rule Guat 2006 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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyGuat ACE_TIME_PROGMEM = { + kZoneRulesGuat /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: HK +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 basic::Info::ZonePolicy kZonePolicyHK ACE_TIME_PROGMEM = { + kZoneRulesHK /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Haiti +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesHaiti[] ACE_TIME_PROGMEM = { + // Anchor: Rule Haiti 2012 2015 - Nov Sun>=1 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyHaiti ACE_TIME_PROGMEM = { + kZoneRulesHaiti /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Holiday +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyHoliday ACE_TIME_PROGMEM = { + kZoneRulesHoliday /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Hond +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesHond[] ACE_TIME_PROGMEM = { + // Anchor: Rule Hond 2006 only - Aug Mon>=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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyHond ACE_TIME_PROGMEM = { + kZoneRulesHond /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Iran +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesIran[] ACE_TIME_PROGMEM = { + // Anchor: Rule Iran 2021 2022 - Sep 21 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 basic::Info::ZonePolicy kZonePolicyIran ACE_TIME_PROGMEM = { + kZoneRulesIran /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Iraq +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesIraq[] ACE_TIME_PROGMEM = { + // Anchor: Rule Iraq 1991 2007 - Oct 1 3: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 basic::Info::ZonePolicy kZonePolicyIraq ACE_TIME_PROGMEM = { + kZoneRulesIraq /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Japan +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyJapan ACE_TIME_PROGMEM = { + kZoneRulesJapan /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: LH +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesLH[] ACE_TIME_PROGMEM = { + // Anchor: Rule LH 2008 max - Apr 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 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 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 basic::Info::ZonePolicy kZonePolicyLH ACE_TIME_PROGMEM = { + kZoneRulesLH /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Lebanon +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*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 basic::Info::ZonePolicy kZonePolicyLebanon ACE_TIME_PROGMEM = { + kZoneRulesLebanon /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Macau +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyMacau ACE_TIME_PROGMEM = { + kZoneRulesMacau /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Mauritius +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesMauritius[] ACE_TIME_PROGMEM = { + // Anchor: Rule Mauritius 2009 only - Mar lastSun 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 basic::Info::ZonePolicy kZonePolicyMauritius ACE_TIME_PROGMEM = { + kZoneRulesMauritius /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Mexico +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesMexico[] ACE_TIME_PROGMEM = { + // Anchor: Rule Mexico 2002 2022 - 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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyMexico ACE_TIME_PROGMEM = { + kZoneRulesMexico /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Moldova +// Rules: 3 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*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 basic::Info::ZonePolicy kZonePolicyMoldova ACE_TIME_PROGMEM = { + kZoneRulesMoldova /*rules*/, + 3 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Mongol +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesMongol[] ACE_TIME_PROGMEM = { + // Anchor: Rule Mongol 2015 2016 - Sep lastSat 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 basic::Info::ZonePolicy kZonePolicyMongol ACE_TIME_PROGMEM = { + kZoneRulesMongol /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Morocco +// Rules: 134 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesMorocco[] ACE_TIME_PROGMEM = { + // Anchor: Rule Morocco 2023 only - Apr 23 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 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 basic::Info::ZonePolicy kZonePolicyMorocco ACE_TIME_PROGMEM = { + kZoneRulesMorocco /*rules*/, + 134 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: NC +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 basic::Info::ZonePolicy kZonePolicyNC ACE_TIME_PROGMEM = { + kZoneRulesNC /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: NZ +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyNZ ACE_TIME_PROGMEM = { + kZoneRulesNZ /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Namibia +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyNamibia ACE_TIME_PROGMEM = { + kZoneRulesNamibia /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Nic +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesNic[] ACE_TIME_PROGMEM = { + // Anchor: Rule Nic 2006 only - Oct Sun>=1 1: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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyNic ACE_TIME_PROGMEM = { + kZoneRulesNic /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: PRC +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyPRC ACE_TIME_PROGMEM = { + kZoneRulesPRC /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Pakistan +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesPakistan[] ACE_TIME_PROGMEM = { + // Anchor: Rule Pakistan 2008 2009 - Nov 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 basic::Info::ZonePolicy kZonePolicyPakistan ACE_TIME_PROGMEM = { + kZoneRulesPakistan /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Peru +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 basic::Info::ZonePolicy kZonePolicyPeru ACE_TIME_PROGMEM = { + kZoneRulesPeru /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Phil +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyPhil ACE_TIME_PROGMEM = { + kZoneRulesPhil /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: ROK +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyROK ACE_TIME_PROGMEM = { + kZoneRulesROK /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: SA +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 basic::Info::ZonePolicy kZonePolicySA ACE_TIME_PROGMEM = { + kZoneRulesSA /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Salv +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicySalv ACE_TIME_PROGMEM = { + kZoneRulesSalv /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Taiwan +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyTaiwan ACE_TIME_PROGMEM = { + kZoneRulesTaiwan /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Thule +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesThule[] ACE_TIME_PROGMEM = { + // Anchor: Rule Thule 1993 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyThule ACE_TIME_PROGMEM = { + kZoneRulesThule /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Tonga +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesTonga[] ACE_TIME_PROGMEM = { + // Anchor: Rule Tonga 2017 only - Jan Sun>=15 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 ("")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyTonga ACE_TIME_PROGMEM = { + kZoneRulesTonga /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Troll +// Rules: 3 +//--------------------------------------------------------------------------- + +static const basic::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 basic::Info::ZonePolicy kZonePolicyTroll ACE_TIME_PROGMEM = { + kZoneRulesTroll /*rules*/, + 3 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Tunisia +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesTunisia[] ACE_TIME_PROGMEM = { + // Anchor: Rule Tunisia 2006 2008 - 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 ("")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyTunisia ACE_TIME_PROGMEM = { + kZoneRulesTunisia /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: US +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyUS ACE_TIME_PROGMEM = { + kZoneRulesUS /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Uruguay +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesUruguay[] ACE_TIME_PROGMEM = { + // Anchor: Rule Uruguay 2006 2015 - Mar Sun>=8 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 basic::Info::ZonePolicy kZonePolicyUruguay ACE_TIME_PROGMEM = { + kZoneRulesUruguay /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Vanuatu +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::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 basic::Info::ZonePolicy kZonePolicyVanuatu ACE_TIME_PROGMEM = { + kZoneRulesVanuatu /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: WS +// Rules: 1 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesWS[] ACE_TIME_PROGMEM = { + // Anchor: Rule WS 2012 2021 - Apr Sun>=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 ("")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyWS ACE_TIME_PROGMEM = { + kZoneRulesWS /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Zion +// Rules: 4 +//--------------------------------------------------------------------------- + +static const basic::Info::ZoneRule kZoneRulesZion[] ACE_TIME_PROGMEM = { + // Anchor: Rule Zion 2012 only - Sep 23 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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const basic::Info::ZonePolicy kZonePolicyZion ACE_TIME_PROGMEM = { + kZoneRulesZion /*rules*/, + 4 /*numRules*/, +}; + + + +} +} diff --git a/src/zonedb2025/zone_policies.h b/src/zonedb2025/zone_policies.h new file mode 100644 index 000000000..6047859a1 --- /dev/null +++ b/src/zonedb2025/zone_policies.h @@ -0,0 +1,251 @@ +// 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/zonedb2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope basic +// --db_namespace zonedb2025 +// --zi_namespace basic::Info +// --start_year 2025 +// --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: 590 (333 zones, 257 links) +// Unsupported Zones: 7 (7 zones, 0 links) +// +// Requested Years: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 6 +// +// Records: +// Infos: 590 +// Eras: 333 +// Policies: 64 +// Rules: 258 +// +// Memory (8-bits): +// Context: 20 +// Rules: 2322 +// Policies: 192 +// Eras: 3663 +// Zones: 4329 +// Links: 3341 +// Registry: 1180 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5593 (original: 8990) +// TOTAL: 21021 +// +// Memory (32-bits): +// Context: 28 +// Rules: 3096 +// Policies: 512 +// Eras: 5328 +// Zones: 7992 +// Links: 6168 +// Registry: 2360 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5593 (original: 8990) +// TOTAL: 31500 +// +// DO NOT EDIT + +#ifndef ACE_TIME_ZONEDB2025_ZONE_POLICIES_H +#define ACE_TIME_ZONEDB2025_ZONE_POLICIES_H + +#include + +namespace ace_time { +namespace zonedb2025 { + +//--------------------------------------------------------------------------- +// Supported policies: 64 +//--------------------------------------------------------------------------- + +extern const basic::Info::ZonePolicy kZonePolicyAN; +extern const basic::Info::ZonePolicy kZonePolicyAQ; +extern const basic::Info::ZonePolicy kZonePolicyAS; +extern const basic::Info::ZonePolicy kZonePolicyAT; +extern const basic::Info::ZonePolicy kZonePolicyAV; +extern const basic::Info::ZonePolicy kZonePolicyAW; +extern const basic::Info::ZonePolicy kZonePolicyArg; +extern const basic::Info::ZonePolicy kZonePolicyArmenia; +extern const basic::Info::ZonePolicy kZonePolicyAus; +extern const basic::Info::ZonePolicy kZonePolicyAzer; +extern const basic::Info::ZonePolicy kZonePolicyBarb; +extern const basic::Info::ZonePolicy kZonePolicyBelize; +extern const basic::Info::ZonePolicy kZonePolicyBrazil; +extern const basic::Info::ZonePolicy kZonePolicyCO; +extern const basic::Info::ZonePolicy kZonePolicyCR; +extern const basic::Info::ZonePolicy kZonePolicyCanada; +extern const basic::Info::ZonePolicy kZonePolicyChatham; +extern const basic::Info::ZonePolicy kZonePolicyChile; +extern const basic::Info::ZonePolicy kZonePolicyCook; +extern const basic::Info::ZonePolicy kZonePolicyCuba; +extern const basic::Info::ZonePolicy kZonePolicyDhaka; +extern const basic::Info::ZonePolicy kZonePolicyEU; +extern const basic::Info::ZonePolicy kZonePolicyEUAsia; +extern const basic::Info::ZonePolicy kZonePolicyEcuador; +extern const basic::Info::ZonePolicy kZonePolicyEgypt; +extern const basic::Info::ZonePolicy kZonePolicyEire; +extern const basic::Info::ZonePolicy kZonePolicyFiji; +extern const basic::Info::ZonePolicy kZonePolicyGuat; +extern const basic::Info::ZonePolicy kZonePolicyHK; +extern const basic::Info::ZonePolicy kZonePolicyHaiti; +extern const basic::Info::ZonePolicy kZonePolicyHoliday; +extern const basic::Info::ZonePolicy kZonePolicyHond; +extern const basic::Info::ZonePolicy kZonePolicyIran; +extern const basic::Info::ZonePolicy kZonePolicyIraq; +extern const basic::Info::ZonePolicy kZonePolicyJapan; +extern const basic::Info::ZonePolicy kZonePolicyLH; +extern const basic::Info::ZonePolicy kZonePolicyLebanon; +extern const basic::Info::ZonePolicy kZonePolicyMacau; +extern const basic::Info::ZonePolicy kZonePolicyMauritius; +extern const basic::Info::ZonePolicy kZonePolicyMexico; +extern const basic::Info::ZonePolicy kZonePolicyMoldova; +extern const basic::Info::ZonePolicy kZonePolicyMongol; +extern const basic::Info::ZonePolicy kZonePolicyMorocco; +extern const basic::Info::ZonePolicy kZonePolicyNC; +extern const basic::Info::ZonePolicy kZonePolicyNZ; +extern const basic::Info::ZonePolicy kZonePolicyNamibia; +extern const basic::Info::ZonePolicy kZonePolicyNic; +extern const basic::Info::ZonePolicy kZonePolicyPRC; +extern const basic::Info::ZonePolicy kZonePolicyPakistan; +extern const basic::Info::ZonePolicy kZonePolicyPeru; +extern const basic::Info::ZonePolicy kZonePolicyPhil; +extern const basic::Info::ZonePolicy kZonePolicyROK; +extern const basic::Info::ZonePolicy kZonePolicySA; +extern const basic::Info::ZonePolicy kZonePolicySalv; +extern const basic::Info::ZonePolicy kZonePolicyTaiwan; +extern const basic::Info::ZonePolicy kZonePolicyThule; +extern const basic::Info::ZonePolicy kZonePolicyTonga; +extern const basic::Info::ZonePolicy kZonePolicyTroll; +extern const basic::Info::ZonePolicy kZonePolicyTunisia; +extern const basic::Info::ZonePolicy kZonePolicyUS; +extern const basic::Info::ZonePolicy kZonePolicyUruguay; +extern const basic::Info::ZonePolicy kZonePolicyVanuatu; +extern const basic::Info::ZonePolicy kZonePolicyWS; +extern const basic::Info::ZonePolicy kZonePolicyZion; + + +//--------------------------------------------------------------------------- +// Unsupported policies: 70 +//--------------------------------------------------------------------------- + +// Albania {unused} +// Algeria {unused} +// Austria {unused} +// Belgium {unused} +// Bermuda {unused} +// Bulg {unused} +// C-Eur {unused} +// CA {unused} +// Chicago {unused} +// Cyprus {unused} +// Czech {unused} +// DR {unused} +// Denver {unused} +// Detroit {unused} +// E-Eur {unused} +// E-EurAsia {unused} +// Edm {unused} +// EgyptAsia {unused} +// Falk {unused} +// Finland {unused} +// France {unused} +// GB-Eire {unused} +// Germany {unused} +// Greece {unused} +// Guam {unused} +// Halifax {unused} +// Hungary {unused} +// Indianapolis {unused} +// Italy {unused} +// Jordan {unused} +// Kyrgyz {unused} +// Latvia {unused} +// Libya {unused} +// Louisville {unused} +// Malta {unused} +// Marengo {unused} +// Menominee {unused} +// Moncton {unused} +// NBorneo {unused} +// NT_YK {unused} +// NYC {unused} +// Palestine {Found 2 transitions in year/month '2074-10'} +// Para {unused} +// Perry {unused} +// Pike {unused} +// Poland {unused} +// Port {unused} +// Pulaski {unused} +// Regina {unused} +// Romania {unused} +// Russia {unused} +// RussiaAsia {unused} +// SanLuis {unused} +// Shang {unused} +// SovietZone {unused} +// Spain {unused} +// SpainAfrica {unused} +// StJohns {unused} +// Starke {unused} +// Sudan {unused} +// Swift {unused} +// Swiss {unused} +// Syria {unused} +// Toronto {unused} +// Turkey {unused} +// Vanc {unused} +// Vincennes {unused} +// W-Eur {unused} +// Winn {unused} +// Yukon {unused} + + +//--------------------------------------------------------------------------- +// Notable zone policies: 6 +//--------------------------------------------------------------------------- + +// Belize {LETTER 'CST' not single character} +// Eire {SAVE '-1:00' is a negative DST} +// LH {SAVE '0:30' different from 1:00} +// Morocco {SAVE '-1:00' is a negative DST} +// Namibia {LETTER 'CAT' not single character} +// Troll { +// LETTER '+00' not single character, +// LETTER '+02' not single character, +// SAVE '2:00' different from 1:00, +// } + + +} +} + +#endif diff --git a/src/zonedb2025/zone_registry.cpp b/src/zonedb2025/zone_registry.cpp new file mode 100644 index 000000000..1d716f937 --- /dev/null +++ b/src/zonedb2025/zone_registry.cpp @@ -0,0 +1,1023 @@ +// 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/zonedb2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope basic +// --db_namespace zonedb2025 +// --zi_namespace basic::Info +// --start_year 2025 +// --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: 590 (333 zones, 257 links) +// Unsupported Zones: 7 (7 zones, 0 links) +// +// Requested Years: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 6 +// +// Records: +// Infos: 590 +// Eras: 333 +// Policies: 64 +// Rules: 258 +// +// Memory (8-bits): +// Context: 20 +// Rules: 2322 +// Policies: 192 +// Eras: 3663 +// Zones: 4329 +// Links: 3341 +// Registry: 1180 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5593 (original: 8990) +// TOTAL: 21021 +// +// Memory (32-bits): +// Context: 28 +// Rules: 3096 +// Policies: 512 +// Eras: 5328 +// Zones: 7992 +// Links: 6168 +// Registry: 2360 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5593 (original: 8990) +// TOTAL: 31500 +// +// DO NOT EDIT + +#include +#include "zone_infos.h" +#include "zone_registry.h" + +namespace ace_time { +namespace zonedb2025 { + +//--------------------------------------------------------------------------- +// Zone Info registry. Sorted by zoneId. +//--------------------------------------------------------------------------- +const basic::Info::ZoneInfo* const kZoneRegistry[333] ACE_TIME_PROGMEM = { + &kZoneAmerica_St_Johns, // 0x04b14e6e, America/St_Johns + &kZoneAmerica_North_Dakota_New_Salem, // 0x04f9958e, America/North_Dakota/New_Salem + &kZoneAsia_Jakarta, // 0x0506ab50, Asia/Jakarta + &kZoneAmerica_Mazatlan, // 0x0532189e, America/Mazatlan + &kZonePacific_Fakaofo, // 0x06532bba, Pacific/Fakaofo + &kZoneAmerica_Hermosillo, // 0x065d21c4, America/Hermosillo + &kZoneAsia_Tbilisi, // 0x0903e442, Asia/Tbilisi + &kZoneAmerica_Indiana_Tell_City, // 0x09263612, America/Indiana/Tell_City + &kZoneAmerica_Boa_Vista, // 0x0a7b7efe, America/Boa_Vista + &kZoneAsia_Colombo, // 0x0af0e91d, Asia/Colombo + &kZoneAmerica_Guatemala, // 0x0c8259f7, America/Guatemala + &kZoneAfrica_Monrovia, // 0x0ce90385, Africa/Monrovia + &kZoneAntarctica_Rothera, // 0x0e86d203, Antarctica/Rothera + &kZoneAustralia_Melbourne, // 0x0fe559a3, Australia/Melbourne + &kZoneAmerica_Sao_Paulo, // 0x1063bfc9, America/Sao_Paulo + &kZoneAmerica_Indiana_Vevay, // 0x10aca054, America/Indiana/Vevay + &kZoneAsia_Samarkand, // 0x13ae5104, Asia/Samarkand + &kZoneAsia_Amman, // 0x148d21bc, Asia/Amman + &kZoneAsia_Aqtau, // 0x148f710e, Asia/Aqtau + &kZoneAsia_Chita, // 0x14ae863b, Asia/Chita + &kZoneAsia_Dhaka, // 0x14c07b8b, Asia/Dhaka + &kZoneAsia_Dubai, // 0x14c79f77, Asia/Dubai + &kZoneAmerica_Bahia_Banderas, // 0x14f6329a, America/Bahia_Banderas + &kZoneAsia_Kabul, // 0x153b5601, Asia/Kabul + &kZoneAsia_Macau, // 0x155f88b9, Asia/Macau + &kZoneAsia_Qatar, // 0x15a8330b, Asia/Qatar + &kZoneAsia_Seoul, // 0x15ce82da, Asia/Seoul + &kZoneAsia_Tokyo, // 0x15e606a8, Asia/Tokyo + &kZoneAsia_Tomsk, // 0x15e60e60, Asia/Tomsk + &kZoneAsia_Thimphu, // 0x170380d1, Asia/Thimphu + &kZoneAmerica_Guayaquil, // 0x17e64958, America/Guayaquil + &kZoneAmerica_Kentucky_Louisville, // 0x1a21024b, America/Kentucky/Louisville + &kZoneAsia_Pontianak, // 0x1a76c057, Asia/Pontianak + &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York + &kZoneAsia_Baku, // 0x1fa788b5, Asia/Baku + &kZoneAsia_Dili, // 0x1fa8c394, Asia/Dili + &kZoneAsia_Hovd, // 0x1fab0fe3, Asia/Hovd + &kZoneAsia_Omsk, // 0x1faeddac, Asia/Omsk + &kZoneAsia_Oral, // 0x1faef0a0, Asia/Oral + &kZoneAsia_Ho_Chi_Minh, // 0x20f2d127, Asia/Ho_Chi_Minh + &kZoneAsia_Damascus, // 0x20fbb063, Asia/Damascus + &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia + &kZonePacific_Fiji, // 0x23383ba5, Pacific/Fiji + &kZonePacific_Guam, // 0x2338f9ed, Pacific/Guam + &kZonePacific_Niue, // 0x233ca014, Pacific/Niue + &kZoneAustralia_Adelaide, // 0x2428e8a3, Australia/Adelaide + &kZonePacific_Auckland, // 0x25062f86, Pacific/Auckland + &kZonePacific_Tongatapu, // 0x262ca836, Pacific/Tongatapu + &kZoneAmerica_Monterrey, // 0x269a1deb, America/Monterrey + &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin + &kZoneAsia_Famagusta, // 0x289b4f8b, Asia/Famagusta + &kZoneAmerica_Indiana_Vincennes, // 0x28a0b212, America/Indiana/Vincennes + &kZoneAmerica_Indiana_Indianapolis, // 0x28a669a4, America/Indiana/Indianapolis + &kZoneAsia_Vladivostok, // 0x29de34a8, Asia/Vladivostok + &kZoneAmerica_Fortaleza, // 0x2ad018ee, America/Fortaleza + &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver + &kZoneAmerica_Iqaluit, // 0x2de310bf, America/Iqaluit + &kZonePacific_Chatham, // 0x2f0de999, Pacific/Chatham + &kZoneAmerica_Indiana_Marengo, // 0x2feeee72, America/Indiana/Marengo + &kZoneEurope_Tallinn, // 0x30c4e096, Europe/Tallinn + &kZoneAsia_Ulaanbaatar, // 0x30f0cc4e, Asia/Ulaanbaatar + &kZoneAmerica_Argentina_Ushuaia, // 0x320dcdde, America/Argentina/Ushuaia + &kZoneAustralia_Hobart, // 0x32bf951a, Australia/Hobart + &kZoneAsia_Dushanbe, // 0x32fc5c3c, Asia/Dushanbe + &kZoneAtlantic_South_Georgia, // 0x33013174, Atlantic/South_Georgia + &kZoneAmerica_Phoenix, // 0x34b5af01, America/Phoenix + &kZoneAntarctica_Mawson, // 0x399cd863, Antarctica/Mawson + &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas + &kZoneAmerica_Cayenne, // 0x3c617269, America/Cayenne + &kZoneAtlantic_Bermuda, // 0x3d4bb1c4, Atlantic/Bermuda + &kZoneAmerica_Managua, // 0x3d5e7600, America/Managua + &kZoneAmerica_Argentina_San_Juan, // 0x3e1009bd, America/Argentina/San_Juan + &kZoneAmerica_Argentina_San_Luis, // 0x3e11238c, America/Argentina/San_Luis + &kZoneEurope_Volgograd, // 0x3ed0f389, Europe/Volgograd + &kZoneAmerica_Fort_Nelson, // 0x3f437e0f, America/Fort_Nelson + &kZoneEtc_GMT_PLUS_10, // 0x3f8f1cc4, Etc/GMT+10 + &kZoneEtc_GMT_PLUS_11, // 0x3f8f1cc5, Etc/GMT+11 + &kZoneEtc_GMT_PLUS_12, // 0x3f8f1cc6, Etc/GMT+12 + &kZoneEtc_GMT_10, // 0x3f8f2546, Etc/GMT-10 + &kZoneEtc_GMT_11, // 0x3f8f2547, Etc/GMT-11 + &kZoneEtc_GMT_12, // 0x3f8f2548, Etc/GMT-12 + &kZoneEtc_GMT_13, // 0x3f8f2549, Etc/GMT-13 + &kZoneEtc_GMT_14, // 0x3f8f254a, Etc/GMT-14 + &kZoneAntarctica_Palmer, // 0x40962f4f, Antarctica/Palmer + &kZoneEurope_Athens, // 0x4318fa27, Europe/Athens + &kZoneAmerica_Indiana_Winamac, // 0x4413fa69, America/Indiana/Winamac + &kZoneEurope_Berlin, // 0x44644c20, Europe/Berlin + &kZoneIndian_Chagos, // 0x456f7c3c, Indian/Chagos + &kZoneAsia_Ust_Nera, // 0x4785f921, Asia/Ust-Nera + &kZoneEurope_Dublin, // 0x4a275f62, Europe/Dublin + &kZoneAsia_Nicosia, // 0x4b0fcf78, Asia/Nicosia + &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago + &kZoneAustralia_Sydney, // 0x4d1e9776, Australia/Sydney + &kZoneAntarctica_Vostok, // 0x4f966fd4, Antarctica/Vostok + &kZoneAustralia_Brisbane, // 0x4fedc9c0, Australia/Brisbane + &kZoneAsia_Karachi, // 0x527f5245, Asia/Karachi + &kZonePacific_Gambier, // 0x53720c3a, Pacific/Gambier + &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse + &kZoneAmerica_Martinique, // 0x551e84c5, America/Martinique + &kZoneAmerica_Jamaica, // 0x565dad6c, America/Jamaica + &kZoneAsia_Hong_Kong, // 0x577f28ac, Asia/Hong_Kong + &kZonePacific_Marquesas, // 0x57ca7135, Pacific/Marquesas + &kZoneAmerica_Miquelon, // 0x59674330, America/Miquelon + &kZoneAmerica_Anchorage, // 0x5a79260e, America/Anchorage + &kZoneAsia_Jerusalem, // 0x5becd23a, Asia/Jerusalem + &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon + &kZoneAtlantic_Cape_Verde, // 0x5c5e1772, Atlantic/Cape_Verde + &kZoneEurope_London, // 0x5c6a84ae, Europe/London + &kZoneEurope_Madrid, // 0x5dbd1535, Europe/Madrid + &kZoneAmerica_Moncton, // 0x5e07fe24, America/Moncton + &kZonePacific_Bougainville, // 0x5e10f7a4, Pacific/Bougainville + &kZoneEurope_Moscow, // 0x5ec266fc, Europe/Moscow + &kZoneAmerica_Argentina_Jujuy, // 0x5f2f46c5, America/Argentina/Jujuy + &kZoneAmerica_Argentina_Salta, // 0x5fc73403, America/Argentina/Salta + &kZonePacific_Pago_Pago, // 0x603aebd0, Pacific/Pago_Pago + &kZoneAfrica_Sao_Tome, // 0x61b319d1, Africa/Sao_Tome + &kZoneAmerica_Costa_Rica, // 0x63ff66be, America/Costa_Rica + &kZoneAmerica_Indiana_Knox, // 0x6554adc9, America/Indiana/Knox + &kZoneEurope_Prague, // 0x65ee5d48, Europe/Prague + &kZoneAmerica_Puerto_Rico, // 0x6752ca31, America/Puerto_Rico + &kZoneAsia_Novokuznetsk, // 0x69264f93, Asia/Novokuznetsk + &kZoneAmerica_Tijuana, // 0x6aa1df72, America/Tijuana + &kZoneAsia_Makassar, // 0x6aa21c85, Asia/Makassar + &kZoneEurope_Helsinki, // 0x6ab2975b, Europe/Helsinki + &kZoneAmerica_Porto_Velho, // 0x6b1aac77, America/Porto_Velho + &kZoneEurope_Samara, // 0x6bc0b139, Europe/Samara + &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton + &kZoneAmerica_Dawson_Creek, // 0x6cf24e5b, America/Dawson_Creek + &kZoneAmerica_Grand_Turk, // 0x6e216197, America/Grand_Turk + &kZoneEurope_Tirane, // 0x6ea95b47, Europe/Tirane + &kZoneAmerica_Araguaina, // 0x6f9a3aef, America/Araguaina + &kZoneAsia_Qyzylorda, // 0x71282e81, Asia/Qyzylorda + &kZoneAsia_Kolkata, // 0x72c06cd9, Asia/Kolkata + &kZoneAmerica_Ciudad_Juarez, // 0x7347fc60, America/Ciudad_Juarez + &kZoneEurope_Vienna, // 0x734cc2e5, Europe/Vienna + &kZoneAsia_Kamchatka, // 0x73baf9d7, Asia/Kamchatka + &kZoneAmerica_Santarem, // 0x740caec1, America/Santarem + &kZoneAmerica_Santiago, // 0x7410c9bc, America/Santiago + &kZoneEurope_Warsaw, // 0x75185c19, Europe/Warsaw + &kZoneAmerica_El_Salvador, // 0x752ad652, America/El_Salvador + &kZoneAfrica_Bissau, // 0x75564141, Africa/Bissau + &kZoneAmerica_Santo_Domingo, // 0x75a0d177, America/Santo_Domingo + &kZoneAfrica_Cairo, // 0x77f8e228, Africa/Cairo + &kZoneAfrica_Ceuta, // 0x77fb46ec, Africa/Ceuta + &kZoneAfrica_Lagos, // 0x789bb5d0, Africa/Lagos + &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek + &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto + &kZoneAfrica_Tunis, // 0x79378e6d, Africa/Tunis + &kZoneIndian_Mauritius, // 0x7b09c02a, Indian/Mauritius + &kZoneAtlantic_Stanley, // 0x7bb3e1c4, Atlantic/Stanley + &kZoneEurope_Zurich, // 0x7d8195b9, Europe/Zurich + &kZoneAsia_Kuching, // 0x801b003b, Asia/Kuching + &kZoneAtlantic_Madeira, // 0x81b5c037, Atlantic/Madeira + &kZonePacific_Kiritimati, // 0x8305073a, Pacific/Kiritimati + &kZoneAmerica_Metlakatla, // 0x84de2686, America/Metlakatla + &kZoneAsia_Yakutsk, // 0x87bb3a9e, Asia/Yakutsk + &kZoneAmerica_Chihuahua, // 0x8827d776, America/Chihuahua + &kZonePacific_Pitcairn, // 0x8837d8bd, Pacific/Pitcairn + &kZonePacific_Efate, // 0x8a2bce28, Pacific/Efate + &kZonePacific_Nauru, // 0x8acc41ae, Pacific/Nauru + &kZonePacific_Palau, // 0x8af04a36, Pacific/Palau + &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg + &kZoneAustralia_Eucla, // 0x8cf99e44, Australia/Eucla + &kZoneAmerica_Argentina_Catamarca, // 0x8d40986b, America/Argentina/Catamarca + &kZoneAustralia_Perth, // 0x8db8269d, Australia/Perth + &kZonePacific_Kwajalein, // 0x8e216759, Pacific/Kwajalein + &kZoneAmerica_Port_au_Prince, // 0x8e4a7bdc, America/Port-au-Prince + &kZoneAfrica_Maputo, // 0x8e6ca1f0, Africa/Maputo + &kZonePacific_Norfolk, // 0x8f4eb4be, Pacific/Norfolk + &kZoneAsia_Yerevan, // 0x9185c8cc, Asia/Yerevan + &kZoneAmerica_Detroit, // 0x925cfbc1, America/Detroit + &kZoneAntarctica_Macquarie, // 0x92f47626, Antarctica/Macquarie + &kZoneAmerica_Belize, // 0x93256c81, America/Belize + &kZoneAmerica_Bogota, // 0x93d7bc62, America/Bogota + &kZoneAsia_Pyongyang, // 0x93ed1c8e, Asia/Pyongyang + &kZoneAmerica_Indiana_Petersburg, // 0x94ac7acc, America/Indiana/Petersburg + &kZoneAmerica_Cancun, // 0x953331be, America/Cancun + &kZoneAmerica_Glace_Bay, // 0x9681f8dd, America/Glace_Bay + &kZoneAsia_Khandyga, // 0x9685a4d9, Asia/Khandyga + &kZoneAmerica_Cuiaba, // 0x969a52eb, America/Cuiaba + &kZoneAmerica_Dawson, // 0x978d8d12, America/Dawson + &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver + &kZoneAmerica_Bahia, // 0x97d815fb, America/Bahia + &kZoneAmerica_Belem, // 0x97da580b, America/Belem + &kZoneAmerica_Boise, // 0x97dfc8d8, America/Boise + &kZoneEurope_Andorra, // 0x97f6764b, Europe/Andorra + &kZoneAmerica_Adak, // 0x97fe49d7, America/Adak + &kZoneAmerica_Lima, // 0x980468c9, America/Lima + &kZoneAmerica_Nome, // 0x98059b15, America/Nome + &kZoneAmerica_Nuuk, // 0x9805b5a9, America/Nuuk + &kZoneIndian_Maldives, // 0x9869681c, Indian/Maldives + &kZoneAmerica_Sitka, // 0x99104ce2, America/Sitka + &kZoneAmerica_Thule, // 0x9921dd68, America/Thule + &kZonePacific_Rarotonga, // 0x9981a3b0, Pacific/Rarotonga + &kZoneAsia_Kathmandu, // 0x9a96ce6f, Asia/Kathmandu + &kZoneAmerica_North_Dakota_Beulah, // 0x9b52b384, America/North_Dakota/Beulah + &kZoneEurope_Budapest, // 0x9ce0197c, Europe/Budapest + &kZoneAsia_Baghdad, // 0x9ceffbed, Asia/Baghdad + &kZoneEtc_GMT_PLUS_1, // 0x9d13da14, Etc/GMT+1 + &kZoneEtc_GMT_PLUS_2, // 0x9d13da15, Etc/GMT+2 + &kZoneEtc_GMT_PLUS_3, // 0x9d13da16, Etc/GMT+3 + &kZoneEtc_GMT_PLUS_4, // 0x9d13da17, Etc/GMT+4 + &kZoneEtc_GMT_PLUS_5, // 0x9d13da18, Etc/GMT+5 + &kZoneEtc_GMT_PLUS_6, // 0x9d13da19, Etc/GMT+6 + &kZoneEtc_GMT_PLUS_7, // 0x9d13da1a, Etc/GMT+7 + &kZoneEtc_GMT_PLUS_8, // 0x9d13da1b, Etc/GMT+8 + &kZoneEtc_GMT_PLUS_9, // 0x9d13da1c, Etc/GMT+9 + &kZoneEtc_GMT_1, // 0x9d13da56, Etc/GMT-1 + &kZoneEtc_GMT_2, // 0x9d13da57, Etc/GMT-2 + &kZoneEtc_GMT_3, // 0x9d13da58, Etc/GMT-3 + &kZoneEtc_GMT_4, // 0x9d13da59, Etc/GMT-4 + &kZoneEtc_GMT_5, // 0x9d13da5a, Etc/GMT-5 + &kZoneEtc_GMT_6, // 0x9d13da5b, Etc/GMT-6 + &kZoneEtc_GMT_7, // 0x9d13da5c, Etc/GMT-7 + &kZoneEtc_GMT_8, // 0x9d13da5d, Etc/GMT-8 + &kZoneEtc_GMT_9, // 0x9d13da5e, Etc/GMT-9 + &kZoneAmerica_Rio_Branco, // 0x9d352764, America/Rio_Branco + &kZoneAsia_Bangkok, // 0x9d6e3aaf, Asia/Bangkok + &kZoneAfrica_El_Aaiun, // 0x9d6fb118, Africa/El_Aaiun + &kZoneAmerica_North_Dakota_Center, // 0x9da42814, America/North_Dakota/Center + &kZoneAsia_Barnaul, // 0x9dba4997, Asia/Barnaul + &kZoneAfrica_Tripoli, // 0x9dfebd3d, Africa/Tripoli + &kZoneEurope_Istanbul, // 0x9e09d6e6, Europe/Istanbul + &kZoneAfrica_Ndjamena, // 0x9fe09898, Africa/Ndjamena + &kZoneAmerica_Guyana, // 0x9ff7bd0b, America/Guyana + &kZoneAmerica_Havana, // 0xa0e15675, America/Havana + &kZoneAsia_Novosibirsk, // 0xa2a435cb, Asia/Novosibirsk + &kZoneEurope_Kyiv, // 0xa2c1e347, Europe/Kyiv + &kZoneEurope_Riga, // 0xa2c57587, Europe/Riga + &kZoneEurope_Rome, // 0xa2c58fd7, Europe/Rome + &kZoneAmerica_Inuvik, // 0xa42189fc, America/Inuvik + &kZoneAmerica_Argentina_La_Rioja, // 0xa46b7eef, America/Argentina/La_Rioja + &kZoneAsia_Anadyr, // 0xa63cebd1, Asia/Anadyr + &kZoneAsia_Aqtobe, // 0xa67dcc4e, Asia/Aqtobe + &kZoneAsia_Atyrau, // 0xa6b6e068, Asia/Atyrau + &kZoneAmerica_Juneau, // 0xa6f13e2e, America/Juneau + &kZoneAustralia_Lord_Howe, // 0xa748b67d, Australia/Lord_Howe + &kZonePacific_Port_Moresby, // 0xa7ba7f68, Pacific/Port_Moresby + &kZoneAsia_Beirut, // 0xa7f3d5fd, Asia/Beirut + &kZoneAfrica_Nairobi, // 0xa87ab57e, Africa/Nairobi + &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos + &kZoneAmerica_Argentina_Mendoza, // 0xa9f72d5c, America/Argentina/Mendoza + &kZoneAmerica_La_Paz, // 0xaa29125d, America/La_Paz + &kZoneAmerica_Noronha, // 0xab5116fb, America/Noronha + &kZoneAmerica_Maceio, // 0xac80c6d4, America/Maceio + &kZoneAmerica_Manaus, // 0xac86bf8b, America/Manaus + &kZoneAmerica_Merida, // 0xacd172d8, America/Merida + &kZoneEurope_Chisinau, // 0xad58aa18, Europe/Chisinau + &kZoneAustralia_Broken_Hill, // 0xb06eada3, Australia/Broken_Hill + &kZoneAsia_Bishkek, // 0xb0728553, Asia/Bishkek + &kZoneAmerica_Paramaribo, // 0xb319e4c4, America/Paramaribo + &kZoneAmerica_Panama, // 0xb3863854, America/Panama + &kZoneAmerica_Goose_Bay, // 0xb649541e, America/Goose_Bay + &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles + &kZoneAmerica_Recife, // 0xb8730494, America/Recife + &kZoneAmerica_Regina, // 0xb875371c, America/Regina + &kZoneAsia_Ashgabat, // 0xba87598d, Asia/Ashgabat + &kZoneAmerica_Halifax, // 0xbc5b7183, America/Halifax + &kZoneAsia_Srednekolymsk, // 0xbf8e337d, Asia/Srednekolymsk + &kZoneAmerica_Argentina_Cordoba, // 0xbfccc308, America/Argentina/Cordoba + &kZoneAmerica_Tegucigalpa, // 0xbfd6fd4c, America/Tegucigalpa + &kZoneAsia_Manila, // 0xc156c944, Asia/Manila + &kZoneAfrica_Abidjan, // 0xc21305a3, Africa/Abidjan + &kZoneAmerica_Punta_Arenas, // 0xc2c3bce7, America/Punta_Arenas + &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca + &kZoneAmerica_Argentina_Rio_Gallegos, // 0xc5b0f565, America/Argentina/Rio_Gallegos + &kZoneAsia_Jayapura, // 0xc6833c2f, Asia/Jayapura + &kZoneAmerica_Resolute, // 0xc7093459, America/Resolute + &kZoneAmerica_Rankin_Inlet, // 0xc8de4984, America/Rankin_Inlet + &kZoneAmerica_Barbados, // 0xcbbc3b04, America/Barbados + &kZoneAsia_Riyadh, // 0xcd973d93, Asia/Riyadh + &kZonePacific_Easter, // 0xcf54f7e7, Pacific/Easter + &kZoneAsia_Singapore, // 0xcf8581fa, Asia/Singapore + &kZoneAsia_Krasnoyarsk, // 0xd0376c6a, Asia/Krasnoyarsk + &kZoneAmerica_Mexico_City, // 0xd0d93f43, America/Mexico_City + &kZoneAsia_Taipei, // 0xd1a844ae, Asia/Taipei + &kZoneAsia_Tehran, // 0xd1f02254, Asia/Tehran + &kZoneEurope_Kaliningrad, // 0xd33b2f28, Europe/Kaliningrad + &kZoneAmerica_Argentina_Buenos_Aires, // 0xd43b4c0d, America/Argentina/Buenos_Aires + &kZoneAfrica_Juba, // 0xd51b395c, Africa/Juba + &kZoneAsia_Urumqi, // 0xd5379735, Asia/Urumqi + &kZoneAmerica_Cambridge_Bay, // 0xd5a44aff, America/Cambridge_Bay + &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg + &kZoneEtc_GMT, // 0xd8e2de58, Etc/GMT + &kZoneEtc_UTC, // 0xd8e31abc, Etc/UTC + &kZoneAmerica_Yakutat, // 0xd8ee31e9, America/Yakutat + &kZoneAfrica_Algiers, // 0xd94515c1, Africa/Algiers + &kZoneEurope_Simferopol, // 0xda9eb724, Europe/Simferopol + &kZoneAmerica_Matamoros, // 0xdd1b0259, America/Matamoros + &kZonePacific_Kanton, // 0xdd512f0e, Pacific/Kanton + &kZoneAsia_Yangon, // 0xdd54a8be, Asia/Yangon + &kZoneEurope_Vilnius, // 0xdd63b8ce, Europe/Vilnius + &kZonePacific_Kosrae, // 0xde5139a8, Pacific/Kosrae + &kZoneAmerica_Kentucky_Monticello, // 0xde71c439, America/Kentucky/Monticello + &kZoneEurope_Brussels, // 0xdee07337, Europe/Brussels + &kZoneAmerica_Swift_Current, // 0xdef98e55, America/Swift_Current + &kZoneAsia_Irkutsk, // 0xdfbf213f, Asia/Irkutsk + &kZoneEurope_Ulyanovsk, // 0xe03783d0, Europe/Ulyanovsk + &kZoneAustralia_Lindeman, // 0xe05029e2, Australia/Lindeman + &kZoneEurope_Belgrade, // 0xe0532b3a, Europe/Belgrade + &kZoneAmerica_Menominee, // 0xe0e9c583, America/Menominee + &kZoneAtlantic_Faroe, // 0xe110a971, Atlantic/Faroe + &kZoneAntarctica_Casey, // 0xe2022583, Antarctica/Casey + &kZoneAntarctica_Davis, // 0xe2144b45, Antarctica/Davis + &kZoneEurope_Astrakhan, // 0xe22256e1, Europe/Astrakhan + &kZoneAntarctica_Troll, // 0xe33f085b, Antarctica/Troll + &kZoneEurope_Saratov, // 0xe4315da4, Europe/Saratov + &kZonePacific_Noumea, // 0xe551b788, Pacific/Noumea + &kZonePacific_Honolulu, // 0xe6e70af9, Pacific/Honolulu + &kZoneAmerica_Argentina_Tucuman, // 0xe96399eb, America/Argentina/Tucuman + &kZoneAsia_Magadan, // 0xebacc19b, Asia/Magadan + &kZoneAmerica_Ojinaga, // 0xebfde83f, America/Ojinaga + &kZonePacific_Tahiti, // 0xf24c2446, Pacific/Tahiti + &kZonePacific_Tarawa, // 0xf2517e63, Pacific/Tarawa + &kZoneAsia_Tashkent, // 0xf3924254, Asia/Tashkent + &kZoneAsia_Sakhalin, // 0xf4a1c9bd, Asia/Sakhalin + &kZonePacific_Guadalcanal, // 0xf4dd25f0, Pacific/Guadalcanal + &kZoneAmerica_Danmarkshavn, // 0xf554d204, America/Danmarkshavn + &kZoneAsia_Shanghai, // 0xf895a7f5, Asia/Shanghai + &kZoneEurope_Gibraltar, // 0xf8e325fc, Europe/Gibraltar + &kZoneAtlantic_Azores, // 0xf93ed918, Atlantic/Azores + &kZoneAmerica_Eirunepe, // 0xf9b29683, America/Eirunepe + &kZoneAmerica_Montevideo, // 0xfa214780, America/Montevideo + &kZoneEurope_Kirov, // 0xfaf5abef, Europe/Kirov + &kZoneEurope_Malta, // 0xfb1560f3, Europe/Malta + &kZoneEurope_Minsk, // 0xfb19cc66, Europe/Minsk + &kZoneEurope_Bucharest, // 0xfb349ec5, Europe/Bucharest + &kZoneAfrica_Khartoum, // 0xfb3d4205, Africa/Khartoum + &kZoneEurope_Paris, // 0xfb4bc2a3, Europe/Paris + &kZoneAsia_Yekaterinburg, // 0xfb544c6e, Asia/Yekaterinburg + &kZoneEurope_Sofia, // 0xfb898656, Europe/Sofia + &kZoneAtlantic_Canary, // 0xfc23f2c2, Atlantic/Canary + &kZoneAmerica_Campo_Grande, // 0xfec3e7a6, America/Campo_Grande + +}; + +//--------------------------------------------------------------------------- +// Zone and Link (fat) Info registry. Sorted by zoneId. Links act like Zones. +//--------------------------------------------------------------------------- +const basic::Info::ZoneInfo* const kZoneAndLinkRegistry[590] ACE_TIME_PROGMEM = { + &kZoneGB, // 0x005973ae, GB -> Europe/London + &kZoneNZ, // 0x005974ad, NZ -> Pacific/Auckland + &kZoneAsia_Kuala_Lumpur, // 0x014763c4, Asia/Kuala_Lumpur -> Asia/Singapore + &kZoneAfrica_Libreville, // 0x01d96de4, Africa/Libreville -> Africa/Lagos + &kZoneIndian_Cocos, // 0x021e86de, Indian/Cocos -> Asia/Yangon + &kZoneAustralia_Victoria, // 0x0260d5db, Australia/Victoria -> Australia/Melbourne + &kZoneAtlantic_Faeroe, // 0x031ec516, Atlantic/Faeroe -> Atlantic/Faroe + &kZoneAmerica_St_Johns, // 0x04b14e6e, America/St_Johns + &kZoneAmerica_St_Kitts, // 0x04c0507b, America/St_Kitts -> America/Puerto_Rico + &kZoneAfrica_Ouagadougou, // 0x04d7219a, Africa/Ouagadougou -> Africa/Abidjan + &kZoneAmerica_St_Lucia, // 0x04d8b3ba, America/St_Lucia -> America/Puerto_Rico + &kZoneAmerica_North_Dakota_New_Salem, // 0x04f9958e, America/North_Dakota/New_Salem + &kZoneAsia_Jakarta, // 0x0506ab50, Asia/Jakarta + &kZoneAfrica_Bujumbura, // 0x05232a47, Africa/Bujumbura -> Africa/Maputo + &kZoneAmerica_Mazatlan, // 0x0532189e, America/Mazatlan + &kZoneAmerica_St_Barthelemy, // 0x054e6a79, America/St_Barthelemy -> America/Puerto_Rico + &kZoneAfrica_Addis_Ababa, // 0x05ae1e65, Africa/Addis_Ababa -> Africa/Nairobi + &kZonePacific_Fakaofo, // 0x06532bba, Pacific/Fakaofo + &kZoneAmerica_Hermosillo, // 0x065d21c4, America/Hermosillo + &kZoneMexico_BajaSur, // 0x08ee3641, Mexico/BajaSur -> America/Mazatlan + &kZoneAsia_Tbilisi, // 0x0903e442, Asia/Tbilisi + &kZoneAmerica_Indiana_Tell_City, // 0x09263612, America/Indiana/Tell_City + &kZoneUS_Hawaii, // 0x09c8de2f, US/Hawaii -> Pacific/Honolulu + &kZoneAmerica_Boa_Vista, // 0x0a7b7efe, America/Boa_Vista + &kZoneAsia_Colombo, // 0x0af0e91d, Asia/Colombo + &kZoneCET, // 0x0b87d921, CET -> Europe/Brussels + &kZoneEET, // 0x0b87e1a3, EET -> Europe/Athens + &kZoneEST, // 0x0b87e371, EST -> America/Panama + &kZoneGMT, // 0x0b87eb2d, GMT -> Etc/GMT + &kZoneHST, // 0x0b87f034, HST -> Pacific/Honolulu + &kZoneMET, // 0x0b8803ab, MET -> Europe/Brussels + &kZoneMST, // 0x0b880579, MST -> America/Phoenix + &kZonePRC, // 0x0b88120a, PRC -> Asia/Shanghai + &kZoneROC, // 0x0b881a29, ROC -> Asia/Taipei + &kZoneROK, // 0x0b881a31, ROK -> Asia/Seoul + &kZoneUCT, // 0x0b882571, UCT -> Etc/UTC + &kZoneUTC, // 0x0b882791, UTC -> Etc/UTC + &kZoneWET, // 0x0b882e35, WET -> Europe/Lisbon + &kZoneAmerica_Guatemala, // 0x0c8259f7, America/Guatemala + &kZoneEurope_Mariehamn, // 0x0caa6496, Europe/Mariehamn -> Europe/Helsinki + &kZoneAfrica_Monrovia, // 0x0ce90385, Africa/Monrovia + &kZoneEgypt, // 0x0d1a278e, Egypt -> Africa/Cairo + &kZoneGMT_PLUS_0, // 0x0d2f7028, GMT+0 -> Etc/GMT + &kZoneGMT_0, // 0x0d2f706a, GMT-0 -> Etc/GMT + &kZoneJapan, // 0x0d712f8f, Japan -> Asia/Tokyo + &kZoneLibya, // 0x0d998b16, Libya -> Africa/Tripoli + &kZoneKwajalein, // 0x0e57afbb, Kwajalein -> Pacific/Kwajalein + &kZoneAntarctica_Rothera, // 0x0e86d203, Antarctica/Rothera + &kZoneAmerica_Yellowknife, // 0x0f76c76f, America/Yellowknife -> America/Edmonton + &kZoneAustralia_Melbourne, // 0x0fe559a3, Australia/Melbourne + &kZoneAmerica_Sao_Paulo, // 0x1063bfc9, America/Sao_Paulo + &kZoneEurope_Amsterdam, // 0x109395c2, Europe/Amsterdam -> Europe/Brussels + &kZoneAmerica_Indiana_Vevay, // 0x10aca054, America/Indiana/Vevay + &kZoneAsia_Samarkand, // 0x13ae5104, Asia/Samarkand + &kZoneAsia_Amman, // 0x148d21bc, Asia/Amman + &kZoneAsia_Aqtau, // 0x148f710e, Asia/Aqtau + &kZoneAsia_Chita, // 0x14ae863b, Asia/Chita + &kZoneAsia_Dacca, // 0x14bcac5e, Asia/Dacca -> Asia/Dhaka + &kZoneAsia_Dhaka, // 0x14c07b8b, Asia/Dhaka + &kZoneAsia_Dubai, // 0x14c79f77, Asia/Dubai + &kZoneAmerica_Bahia_Banderas, // 0x14f6329a, America/Bahia_Banderas + &kZoneAsia_Kabul, // 0x153b5601, Asia/Kabul + &kZoneAsia_Ashkhabad, // 0x15454f09, Asia/Ashkhabad -> Asia/Ashgabat + &kZoneAsia_Macao, // 0x155f88b3, Asia/Macao -> Asia/Macau + &kZoneAsia_Macau, // 0x155f88b9, Asia/Macau + &kZoneAsia_Qatar, // 0x15a8330b, Asia/Qatar + &kZoneAsia_Seoul, // 0x15ce82da, Asia/Seoul + &kZoneAsia_Tokyo, // 0x15e606a8, Asia/Tokyo + &kZoneAsia_Tomsk, // 0x15e60e60, Asia/Tomsk + &kZoneAsia_Tel_Aviv, // 0x166d7c2c, Asia/Tel_Aviv -> Asia/Jerusalem + &kZoneAsia_Thimphu, // 0x170380d1, Asia/Thimphu + &kZoneAmerica_Guayaquil, // 0x17e64958, America/Guayaquil + &kZoneAmerica_Montserrat, // 0x199b0a35, America/Montserrat -> America/Puerto_Rico + &kZoneAmerica_Kentucky_Louisville, // 0x1a21024b, America/Kentucky/Louisville + &kZoneAsia_Pontianak, // 0x1a76c057, Asia/Pontianak + &kZoneEurope_Podgorica, // 0x1c1a499c, Europe/Podgorica -> Europe/Belgrade + &kZoneAtlantic_Reykjavik, // 0x1c2b4f74, Atlantic/Reykjavik -> Africa/Abidjan + &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York + &kZoneEurope_Luxembourg, // 0x1f8bc6ce, Europe/Luxembourg -> Europe/Brussels + &kZoneAsia_Aden, // 0x1fa7084a, Asia/Aden -> Asia/Riyadh + &kZoneAsia_Baku, // 0x1fa788b5, Asia/Baku + &kZoneAsia_Dili, // 0x1fa8c394, Asia/Dili + &kZoneAsia_Hovd, // 0x1fab0fe3, Asia/Hovd + &kZoneAsia_Omsk, // 0x1faeddac, Asia/Omsk + &kZoneAsia_Oral, // 0x1faef0a0, Asia/Oral + &kZoneAmerica_Montreal, // 0x203a1ea8, America/Montreal -> America/Toronto + &kZoneAsia_Ho_Chi_Minh, // 0x20f2d127, Asia/Ho_Chi_Minh + &kZoneAsia_Damascus, // 0x20fbb063, Asia/Damascus + &kZoneAmerica_Argentina_ComodRivadavia, // 0x22758877, America/Argentina/ComodRivadavia -> America/Argentina/Catamarca + &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia + &kZonePacific_Fiji, // 0x23383ba5, Pacific/Fiji + &kZonePacific_Guam, // 0x2338f9ed, Pacific/Guam + &kZonePacific_Niue, // 0x233ca014, Pacific/Niue + &kZonePacific_Truk, // 0x234010a9, Pacific/Truk -> Pacific/Port_Moresby + &kZonePacific_Wake, // 0x23416c2b, Pacific/Wake -> Pacific/Tarawa + &kZoneAustralia_Adelaide, // 0x2428e8a3, Australia/Adelaide + &kZonePacific_Auckland, // 0x25062f86, Pacific/Auckland + &kZonePacific_Tongatapu, // 0x262ca836, Pacific/Tongatapu + &kZoneAmerica_Monterrey, // 0x269a1deb, America/Monterrey + &kZoneEtc_Greenwich, // 0x26daa98c, Etc/Greenwich -> Etc/GMT + &kZoneAustralia_Currie, // 0x278b6a24, Australia/Currie -> Australia/Hobart + &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin + &kZonePacific_Pohnpei, // 0x28929f96, Pacific/Pohnpei -> Pacific/Guadalcanal + &kZoneAsia_Famagusta, // 0x289b4f8b, Asia/Famagusta + &kZoneAmerica_Indiana_Vincennes, // 0x28a0b212, America/Indiana/Vincennes + &kZoneAmerica_Indiana_Indianapolis, // 0x28a669a4, America/Indiana/Indianapolis + &kZoneAsia_Vladivostok, // 0x29de34a8, Asia/Vladivostok + &kZoneAustralia_Canberra, // 0x2a09ae58, Australia/Canberra -> Australia/Sydney + &kZoneAmerica_Fortaleza, // 0x2ad018ee, America/Fortaleza + &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver + &kZoneAmerica_Pangnirtung, // 0x2d999193, America/Pangnirtung -> America/Iqaluit + &kZoneAmerica_Iqaluit, // 0x2de310bf, America/Iqaluit + &kZoneJamaica, // 0x2e44fdab, Jamaica -> America/Jamaica + &kZonePacific_Chatham, // 0x2f0de999, Pacific/Chatham + &kZoneEtc_Universal, // 0x2f8cb9a9, Etc/Universal -> Etc/UTC + &kZoneAmerica_Indiana_Marengo, // 0x2feeee72, America/Indiana/Marengo + &kZoneEurope_Tallinn, // 0x30c4e096, Europe/Tallinn + &kZoneAfrica_Djibouti, // 0x30ea01d4, Africa/Djibouti -> Africa/Nairobi + &kZoneAsia_Ulaanbaatar, // 0x30f0cc4e, Asia/Ulaanbaatar + &kZoneAfrica_Gaborone, // 0x317c0aa7, Africa/Gaborone -> Africa/Maputo + &kZoneAmerica_Argentina_Ushuaia, // 0x320dcdde, America/Argentina/Ushuaia + &kZoneAsia_Calcutta, // 0x328a44c3, Asia/Calcutta -> Asia/Kolkata + &kZoneAustralia_Hobart, // 0x32bf951a, Australia/Hobart + &kZoneAsia_Dushanbe, // 0x32fc5c3c, Asia/Dushanbe + &kZoneAtlantic_South_Georgia, // 0x33013174, Atlantic/South_Georgia + &kZoneAmerica_Phoenix, // 0x34b5af01, America/Phoenix + &kZoneAsia_Istanbul, // 0x382e7894, Asia/Istanbul -> Europe/Istanbul + &kZoneAsia_Ulan_Bator, // 0x394db4d9, Asia/Ulan_Bator -> Asia/Ulaanbaatar + &kZoneAntarctica_Mawson, // 0x399cd863, Antarctica/Mawson + &kZoneAfrica_Brazzaville, // 0x39cda760, Africa/Brazzaville -> Africa/Lagos + &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas + &kZoneAmerica_Cayenne, // 0x3c617269, America/Cayenne + &kZoneAfrica_Porto_Novo, // 0x3d1bf95d, Africa/Porto-Novo -> Africa/Lagos + &kZoneAtlantic_Bermuda, // 0x3d4bb1c4, Atlantic/Bermuda + &kZoneAmerica_Managua, // 0x3d5e7600, America/Managua + &kZoneAmerica_Marigot, // 0x3dab3a59, America/Marigot -> America/Puerto_Rico + &kZoneEurope_Guernsey, // 0x3db12c16, Europe/Guernsey -> Europe/London + &kZoneAfrica_Nouakchott, // 0x3dc49dba, Africa/Nouakchott -> Africa/Abidjan + &kZoneAmerica_Louisville, // 0x3dcb47ee, America/Louisville -> America/Kentucky/Louisville + &kZoneAmerica_Argentina_San_Juan, // 0x3e1009bd, America/Argentina/San_Juan + &kZoneAmerica_Argentina_San_Luis, // 0x3e11238c, America/Argentina/San_Luis + &kZoneEurope_Volgograd, // 0x3ed0f389, Europe/Volgograd + &kZoneAmerica_Fort_Nelson, // 0x3f437e0f, America/Fort_Nelson + &kZoneEtc_GMT_PLUS_10, // 0x3f8f1cc4, Etc/GMT+10 + &kZoneEtc_GMT_PLUS_11, // 0x3f8f1cc5, Etc/GMT+11 + &kZoneEtc_GMT_PLUS_12, // 0x3f8f1cc6, Etc/GMT+12 + &kZoneEtc_GMT_10, // 0x3f8f2546, Etc/GMT-10 + &kZoneEtc_GMT_11, // 0x3f8f2547, Etc/GMT-11 + &kZoneEtc_GMT_12, // 0x3f8f2548, Etc/GMT-12 + &kZoneEtc_GMT_13, // 0x3f8f2549, Etc/GMT-13 + &kZoneEtc_GMT_14, // 0x3f8f254a, Etc/GMT-14 + &kZoneAntarctica_Palmer, // 0x40962f4f, Antarctica/Palmer + &kZoneCanada_Pacific, // 0x40fa3c7b, Canada/Pacific -> America/Vancouver + &kZoneEurope_Athens, // 0x4318fa27, Europe/Athens + &kZoneIndian_Kerguelen, // 0x4351b389, Indian/Kerguelen -> Indian/Maldives + &kZoneAmerica_Indiana_Winamac, // 0x4413fa69, America/Indiana/Winamac + &kZoneEurope_Berlin, // 0x44644c20, Europe/Berlin + &kZoneAtlantic_St_Helena, // 0x451fc5f7, Atlantic/St_Helena -> Africa/Abidjan + &kZoneIndian_Chagos, // 0x456f7c3c, Indian/Chagos + &kZoneIndian_Mahe, // 0x45e725e2, Indian/Mahe -> Asia/Dubai + &kZoneIndian_Comoro, // 0x45f4deb6, Indian/Comoro -> Africa/Nairobi + &kZoneAmerica_Mendoza, // 0x46b4e054, America/Mendoza -> America/Argentina/Mendoza + &kZoneAsia_Ust_Nera, // 0x4785f921, Asia/Ust-Nera + &kZoneEurope_Dublin, // 0x4a275f62, Europe/Dublin + &kZoneAsia_Nicosia, // 0x4b0fcf78, Asia/Nicosia + &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago + &kZoneAustralia_Sydney, // 0x4d1e9776, Australia/Sydney + &kZoneNZ_CHAT, // 0x4d42afda, NZ-CHAT -> Pacific/Chatham + &kZoneUS_Arizona, // 0x4ec52670, US/Arizona -> America/Phoenix + &kZoneAntarctica_Vostok, // 0x4f966fd4, Antarctica/Vostok + &kZoneUS_Aleutian, // 0x4fe013ef, US/Aleutian -> America/Adak + &kZoneAustralia_Brisbane, // 0x4fedc9c0, Australia/Brisbane + &kZoneAmerica_Catamarca, // 0x5036e963, America/Catamarca -> America/Argentina/Catamarca + &kZoneAsia_Karachi, // 0x527f5245, Asia/Karachi + &kZoneAsia_Kashgar, // 0x52955193, Asia/Kashgar -> Asia/Urumqi + &kZoneCanada_Atlantic, // 0x536b119c, Canada/Atlantic -> America/Halifax + &kZonePacific_Gambier, // 0x53720c3a, Pacific/Gambier + &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse + &kZoneAmerica_Martinique, // 0x551e84c5, America/Martinique + &kZoneAmerica_Jamaica, // 0x565dad6c, America/Jamaica + &kZoneUS_Samoa, // 0x566821cd, US/Samoa -> Pacific/Pago_Pago + &kZoneHongkong, // 0x56d36560, Hongkong -> Asia/Hong_Kong + &kZoneEurope_Jersey, // 0x570dae76, Europe/Jersey -> Europe/London + &kZoneAsia_Hong_Kong, // 0x577f28ac, Asia/Hong_Kong + &kZonePacific_Marquesas, // 0x57ca7135, Pacific/Marquesas + &kZoneAmerica_Miquelon, // 0x59674330, America/Miquelon + &kZoneAntarctica_DumontDUrville, // 0x5a3c656c, Antarctica/DumontDUrville -> Pacific/Port_Moresby + &kZoneAtlantic_Jan_Mayen, // 0x5a7535b6, Atlantic/Jan_Mayen -> Europe/Berlin + &kZoneAmerica_Anchorage, // 0x5a79260e, America/Anchorage + &kZoneUS_Eastern, // 0x5bb7e78e, US/Eastern -> America/New_York + &kZoneAsia_Jerusalem, // 0x5becd23a, Asia/Jerusalem + &kZoneEurope_Stockholm, // 0x5bf6fbb8, Europe/Stockholm -> Europe/Berlin + &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon + &kZoneAtlantic_Cape_Verde, // 0x5c5e1772, Atlantic/Cape_Verde + &kZoneEurope_London, // 0x5c6a84ae, Europe/London + &kZoneAmerica_Cordoba, // 0x5c8a7600, America/Cordoba -> America/Argentina/Cordoba + &kZoneAsia_Ujung_Pandang, // 0x5d001eb3, Asia/Ujung_Pandang -> Asia/Makassar + &kZoneAfrica_Mbabane, // 0x5d3bdd40, Africa/Mbabane -> Africa/Johannesburg + &kZoneEurope_Madrid, // 0x5dbd1535, Europe/Madrid + &kZoneAmerica_Moncton, // 0x5e07fe24, America/Moncton + &kZonePacific_Bougainville, // 0x5e10f7a4, Pacific/Bougainville + &kZoneEurope_Monaco, // 0x5ebf9f01, Europe/Monaco -> Europe/Paris + &kZoneEurope_Moscow, // 0x5ec266fc, Europe/Moscow + &kZoneAmerica_Argentina_Jujuy, // 0x5f2f46c5, America/Argentina/Jujuy + &kZoneAmerica_Argentina_Salta, // 0x5fc73403, America/Argentina/Salta + &kZonePacific_Pago_Pago, // 0x603aebd0, Pacific/Pago_Pago + &kZonePacific_Enderbury, // 0x61599a93, Pacific/Enderbury -> Pacific/Kanton + &kZoneAfrica_Sao_Tome, // 0x61b319d1, Africa/Sao_Tome + &kZoneCanada_Central, // 0x626710f5, Canada/Central -> America/Winnipeg + &kZoneAmerica_Creston, // 0x62a70204, America/Creston -> America/Phoenix + &kZoneAmerica_Costa_Rica, // 0x63ff66be, America/Costa_Rica + &kZoneAmerica_Indiana_Knox, // 0x6554adc9, America/Indiana/Knox + &kZoneEurope_Prague, // 0x65ee5d48, Europe/Prague + &kZoneBrazil_Acre, // 0x66934f93, Brazil/Acre -> America/Rio_Branco + &kZoneBrazil_East, // 0x669578c5, Brazil/East -> America/Sao_Paulo + &kZoneAfrica_Kinshasa, // 0x6695d70c, Africa/Kinshasa -> Africa/Lagos + &kZoneBrazil_West, // 0x669f689b, Brazil/West -> America/Manaus + &kZoneAfrica_Mogadishu, // 0x66bc159b, Africa/Mogadishu -> Africa/Nairobi + &kZoneAmerica_Puerto_Rico, // 0x6752ca31, America/Puerto_Rico + &kZoneUS_Indiana_Starke, // 0x67977be7, US/Indiana-Starke -> America/Indiana/Knox + &kZoneAmerica_Buenos_Aires, // 0x67d79a05, America/Buenos_Aires -> America/Argentina/Buenos_Aires + &kZoneAfrica_Freetown, // 0x6823dd64, Africa/Freetown -> Africa/Abidjan + &kZoneIndian_Christmas, // 0x68c207d5, Indian/Christmas -> Asia/Bangkok + &kZoneAsia_Novokuznetsk, // 0x69264f93, Asia/Novokuznetsk + &kZoneAmerica_Indianapolis, // 0x6a009ae1, America/Indianapolis -> America/Indiana/Indianapolis + &kZoneEurope_Sarajevo, // 0x6a576c3f, Europe/Sarajevo -> Europe/Belgrade + &kZoneAmerica_Curacao, // 0x6a879184, America/Curacao -> America/Puerto_Rico + &kZoneAmerica_Tijuana, // 0x6aa1df72, America/Tijuana + &kZoneAsia_Makassar, // 0x6aa21c85, Asia/Makassar + &kZoneEurope_Helsinki, // 0x6ab2975b, Europe/Helsinki + &kZoneAmerica_Lower_Princes, // 0x6ae45b62, America/Lower_Princes -> America/Puerto_Rico + &kZoneAmerica_Porto_Velho, // 0x6b1aac77, America/Porto_Velho + &kZoneEurope_Samara, // 0x6bc0b139, Europe/Samara + &kZoneEurope_Skopje, // 0x6c76fdd0, Europe/Skopje -> Europe/Belgrade + &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton + &kZoneAmerica_Dawson_Creek, // 0x6cf24e5b, America/Dawson_Creek + &kZoneAsia_Rangoon, // 0x6d1217c6, Asia/Rangoon -> Asia/Yangon + &kZoneUS_East_Indiana, // 0x6dcf558a, US/East-Indiana -> America/Indiana/Indianapolis + &kZoneAmerica_Grand_Turk, // 0x6e216197, America/Grand_Turk + &kZoneAmerica_Blanc_Sablon, // 0x6e299892, America/Blanc-Sablon -> America/Puerto_Rico + &kZoneEurope_Tirane, // 0x6ea95b47, Europe/Tirane + &kZoneUS_Mountain, // 0x6eb88247, US/Mountain -> America/Denver + &kZoneAntarctica_McMurdo, // 0x6eeb5585, Antarctica/McMurdo -> Pacific/Auckland + &kZoneAmerica_Araguaina, // 0x6f9a3aef, America/Araguaina + &kZoneAfrica_Lubumbashi, // 0x6fd88566, Africa/Lubumbashi -> Africa/Maputo + &kZoneIndian_Reunion, // 0x7076c047, Indian/Reunion -> Asia/Dubai + &kZoneAsia_Qyzylorda, // 0x71282e81, Asia/Qyzylorda + &kZoneAsia_Kolkata, // 0x72c06cd9, Asia/Kolkata + &kZoneAmerica_Ciudad_Juarez, // 0x7347fc60, America/Ciudad_Juarez + &kZoneEurope_Vienna, // 0x734cc2e5, Europe/Vienna + &kZoneAfrica_Asmara, // 0x73b278ef, Africa/Asmara -> Africa/Nairobi + &kZoneAfrica_Asmera, // 0x73b289f3, Africa/Asmera -> Africa/Nairobi + &kZoneAsia_Kamchatka, // 0x73baf9d7, Asia/Kamchatka + &kZoneAmerica_Santarem, // 0x740caec1, America/Santarem + &kZoneAmerica_Santiago, // 0x7410c9bc, America/Santiago + &kZoneAfrica_Bamako, // 0x74c1e7a5, Africa/Bamako -> Africa/Abidjan + &kZoneAfrica_Bangui, // 0x74c28ed0, Africa/Bangui -> Africa/Lagos + &kZoneAfrica_Banjul, // 0x74c29b96, Africa/Banjul -> Africa/Abidjan + &kZoneEurope_Nicosia, // 0x74efab8a, Europe/Nicosia -> Asia/Nicosia + &kZoneEurope_Warsaw, // 0x75185c19, Europe/Warsaw + &kZoneAmerica_El_Salvador, // 0x752ad652, America/El_Salvador + &kZoneAfrica_Bissau, // 0x75564141, Africa/Bissau + &kZoneAmerica_Santo_Domingo, // 0x75a0d177, America/Santo_Domingo + &kZoneUS_Michigan, // 0x766bb7bc, US/Michigan -> America/Detroit + &kZoneCanada_Saskatchewan, // 0x77311f49, Canada/Saskatchewan -> America/Regina + &kZoneAfrica_Accra, // 0x77d5b054, Africa/Accra -> Africa/Abidjan + &kZoneAfrica_Cairo, // 0x77f8e228, Africa/Cairo + &kZoneAfrica_Ceuta, // 0x77fb46ec, Africa/Ceuta + &kZoneAfrica_Dakar, // 0x780b00fd, Africa/Dakar -> Africa/Abidjan + &kZoneAfrica_Lagos, // 0x789bb5d0, Africa/Lagos + &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek + &kZoneCanada_Yukon, // 0x78dd35c2, Canada/Yukon -> America/Whitehorse + &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto + &kZoneAmerica_Tortola, // 0x7931462b, America/Tortola -> America/Puerto_Rico + &kZoneAfrica_Tunis, // 0x79378e6d, Africa/Tunis + &kZoneAfrica_Douala, // 0x7a6df310, Africa/Douala -> Africa/Lagos + &kZoneAfrica_Conakry, // 0x7ab36b31, Africa/Conakry -> Africa/Abidjan + &kZoneIndian_Mauritius, // 0x7b09c02a, Indian/Mauritius + &kZoneAtlantic_Stanley, // 0x7bb3e1c4, Atlantic/Stanley + &kZoneAmerica_Ensenada, // 0x7bc95445, America/Ensenada -> America/Tijuana + &kZoneEurope_Zagreb, // 0x7c11c9ff, Europe/Zagreb -> Europe/Belgrade + &kZoneCuba, // 0x7c83cba0, Cuba -> America/Havana + &kZoneEire, // 0x7c84b36a, Eire -> Europe/Dublin + &kZoneGMT0, // 0x7c8550fd, GMT0 -> Etc/GMT + &kZoneIran, // 0x7c87090f, Iran -> Asia/Tehran + &kZoneW_SU, // 0x7c8d8ef1, W-SU -> Europe/Moscow + &kZoneZulu, // 0x7c9069b5, Zulu -> Etc/UTC + &kZoneEurope_Zurich, // 0x7d8195b9, Europe/Zurich + &kZoneChile_Continental, // 0x7e2bdb18, Chile/Continental -> America/Santiago + &kZoneAmerica_Fort_Wayne, // 0x7eaaaf24, America/Fort_Wayne -> America/Indiana/Indianapolis + &kZoneAsia_Kuching, // 0x801b003b, Asia/Kuching + &kZoneAtlantic_Madeira, // 0x81b5c037, Atlantic/Madeira + &kZoneAmerica_Atikokan, // 0x81b92098, America/Atikokan -> America/Panama + &kZoneAfrica_Harare, // 0x82c39a2d, Africa/Harare -> Africa/Maputo + &kZoneAmerica_Shiprock, // 0x82fb7049, America/Shiprock -> America/Denver + &kZonePacific_Kiritimati, // 0x8305073a, Pacific/Kiritimati + &kZoneAmerica_St_Vincent, // 0x8460e523, America/St_Vincent -> America/Puerto_Rico + &kZoneAmerica_Metlakatla, // 0x84de2686, America/Metlakatla + &kZoneAsia_Yakutsk, // 0x87bb3a9e, Asia/Yakutsk + &kZoneAmerica_Chihuahua, // 0x8827d776, America/Chihuahua + &kZonePacific_Pitcairn, // 0x8837d8bd, Pacific/Pitcairn + &kZoneAsia_Vientiane, // 0x89d68d75, Asia/Vientiane -> Asia/Bangkok + &kZonePacific_Chuuk, // 0x8a090b23, Pacific/Chuuk -> Pacific/Port_Moresby + &kZonePacific_Efate, // 0x8a2bce28, Pacific/Efate + &kZoneAfrica_Kigali, // 0x8a4dcf2b, Africa/Kigali -> Africa/Maputo + &kZoneAustralia_ACT, // 0x8a970eb2, Australia/ACT -> Australia/Sydney + &kZoneAustralia_LHI, // 0x8a973e17, Australia/LHI -> Australia/Lord_Howe + &kZoneAustralia_NSW, // 0x8a974812, Australia/NSW -> Australia/Sydney + &kZonePacific_Nauru, // 0x8acc41ae, Pacific/Nauru + &kZoneEST5EDT, // 0x8adc72a3, EST5EDT -> America/New_York + &kZonePacific_Palau, // 0x8af04a36, Pacific/Palau + &kZonePacific_Samoa, // 0x8b2699b4, Pacific/Samoa -> Pacific/Pago_Pago + &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg + &kZoneAustralia_Eucla, // 0x8cf99e44, Australia/Eucla + &kZoneAmerica_Argentina_Catamarca, // 0x8d40986b, America/Argentina/Catamarca + &kZoneAfrica_Luanda, // 0x8d7909cf, Africa/Luanda -> Africa/Lagos + &kZoneAfrica_Lusaka, // 0x8d82b23b, Africa/Lusaka -> Africa/Maputo + &kZoneAustralia_North, // 0x8d997165, Australia/North -> Australia/Darwin + &kZoneAustralia_Perth, // 0x8db8269d, Australia/Perth + &kZoneAustralia_South, // 0x8df3f8ad, Australia/South -> Australia/Adelaide + &kZonePacific_Kwajalein, // 0x8e216759, Pacific/Kwajalein + &kZoneAmerica_Port_au_Prince, // 0x8e4a7bdc, America/Port-au-Prince + &kZoneAfrica_Malabo, // 0x8e6a1906, Africa/Malabo -> Africa/Lagos + &kZoneAfrica_Maputo, // 0x8e6ca1f0, Africa/Maputo + &kZoneAfrica_Maseru, // 0x8e6e02c7, Africa/Maseru -> Africa/Johannesburg + &kZonePacific_Norfolk, // 0x8f4eb4be, Pacific/Norfolk + &kZoneAmerica_Godthab, // 0x8f7eba1f, America/Godthab -> America/Nuuk + &kZoneAustralia_Yancowinna, // 0x90bac131, Australia/Yancowinna -> Australia/Broken_Hill + &kZoneAfrica_Niamey, // 0x914a30fd, Africa/Niamey -> Africa/Lagos + &kZoneAsia_Yerevan, // 0x9185c8cc, Asia/Yerevan + &kZoneAmerica_Detroit, // 0x925cfbc1, America/Detroit + &kZoneAsia_Choibalsan, // 0x928aa4a6, Asia/Choibalsan -> Asia/Ulaanbaatar + &kZoneAntarctica_Macquarie, // 0x92f47626, Antarctica/Macquarie + &kZoneAmerica_Belize, // 0x93256c81, America/Belize + &kZoneMexico_General, // 0x93711d57, Mexico/General -> America/Mexico_City + &kZoneAmerica_Bogota, // 0x93d7bc62, America/Bogota + &kZoneAsia_Pyongyang, // 0x93ed1c8e, Asia/Pyongyang + &kZoneAmerica_Indiana_Petersburg, // 0x94ac7acc, America/Indiana/Petersburg + &kZoneAmerica_Cancun, // 0x953331be, America/Cancun + &kZoneAmerica_Cayman, // 0x953961df, America/Cayman -> America/Panama + &kZoneAmerica_Glace_Bay, // 0x9681f8dd, America/Glace_Bay + &kZoneAsia_Khandyga, // 0x9685a4d9, Asia/Khandyga + &kZoneAmerica_Grenada, // 0x968ce4d8, America/Grenada -> America/Puerto_Rico + &kZoneAmerica_Cuiaba, // 0x969a52eb, America/Cuiaba + &kZoneAmerica_Dawson, // 0x978d8d12, America/Dawson + &kZoneAmerica_Aruba, // 0x97cf8651, America/Aruba -> America/Puerto_Rico + &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver + &kZoneAmerica_Bahia, // 0x97d815fb, America/Bahia + &kZoneAmerica_Belem, // 0x97da580b, America/Belem + &kZoneAmerica_Boise, // 0x97dfc8d8, America/Boise + &kZoneEurope_Andorra, // 0x97f6764b, Europe/Andorra + &kZoneAmerica_Adak, // 0x97fe49d7, America/Adak + &kZoneAmerica_Atka, // 0x97fe8f27, America/Atka -> America/Adak + &kZoneAmerica_Lima, // 0x980468c9, America/Lima + &kZoneAmerica_Nome, // 0x98059b15, America/Nome + &kZoneAmerica_Nuuk, // 0x9805b5a9, America/Nuuk + &kZoneIndian_Maldives, // 0x9869681c, Indian/Maldives + &kZoneAmerica_Jujuy, // 0x9873dbbd, America/Jujuy -> America/Argentina/Jujuy + &kZoneAmerica_Sitka, // 0x99104ce2, America/Sitka + &kZoneAmerica_Thule, // 0x9921dd68, America/Thule + &kZonePacific_Rarotonga, // 0x9981a3b0, Pacific/Rarotonga + &kZoneAsia_Kathmandu, // 0x9a96ce6f, Asia/Kathmandu + &kZoneBrazil_DeNoronha, // 0x9b4cb496, Brazil/DeNoronha -> America/Noronha + &kZoneAmerica_North_Dakota_Beulah, // 0x9b52b384, America/North_Dakota/Beulah + &kZoneAmerica_Rainy_River, // 0x9cd58a10, America/Rainy_River -> America/Winnipeg + &kZoneEurope_Budapest, // 0x9ce0197c, Europe/Budapest + &kZoneAsia_Baghdad, // 0x9ceffbed, Asia/Baghdad + &kZoneAsia_Bahrain, // 0x9d078487, Asia/Bahrain -> Asia/Qatar + &kZoneEtc_GMT_PLUS_0, // 0x9d13da13, Etc/GMT+0 -> Etc/GMT + &kZoneEtc_GMT_PLUS_1, // 0x9d13da14, Etc/GMT+1 + &kZoneEtc_GMT_PLUS_2, // 0x9d13da15, Etc/GMT+2 + &kZoneEtc_GMT_PLUS_3, // 0x9d13da16, Etc/GMT+3 + &kZoneEtc_GMT_PLUS_4, // 0x9d13da17, Etc/GMT+4 + &kZoneEtc_GMT_PLUS_5, // 0x9d13da18, Etc/GMT+5 + &kZoneEtc_GMT_PLUS_6, // 0x9d13da19, Etc/GMT+6 + &kZoneEtc_GMT_PLUS_7, // 0x9d13da1a, Etc/GMT+7 + &kZoneEtc_GMT_PLUS_8, // 0x9d13da1b, Etc/GMT+8 + &kZoneEtc_GMT_PLUS_9, // 0x9d13da1c, Etc/GMT+9 + &kZoneEtc_GMT_0, // 0x9d13da55, Etc/GMT-0 -> Etc/GMT + &kZoneEtc_GMT_1, // 0x9d13da56, Etc/GMT-1 + &kZoneEtc_GMT_2, // 0x9d13da57, Etc/GMT-2 + &kZoneEtc_GMT_3, // 0x9d13da58, Etc/GMT-3 + &kZoneEtc_GMT_4, // 0x9d13da59, Etc/GMT-4 + &kZoneEtc_GMT_5, // 0x9d13da5a, Etc/GMT-5 + &kZoneEtc_GMT_6, // 0x9d13da5b, Etc/GMT-6 + &kZoneEtc_GMT_7, // 0x9d13da5c, Etc/GMT-7 + &kZoneEtc_GMT_8, // 0x9d13da5d, Etc/GMT-8 + &kZoneEtc_GMT_9, // 0x9d13da5e, Etc/GMT-9 + &kZoneAmerica_Nipigon, // 0x9d2a8b1a, America/Nipigon -> America/Toronto + &kZoneAmerica_Rio_Branco, // 0x9d352764, America/Rio_Branco + &kZoneAsia_Bangkok, // 0x9d6e3aaf, Asia/Bangkok + &kZoneAfrica_El_Aaiun, // 0x9d6fb118, Africa/El_Aaiun + &kZoneAmerica_North_Dakota_Center, // 0x9da42814, America/North_Dakota/Center + &kZoneAsia_Barnaul, // 0x9dba4997, Asia/Barnaul + &kZoneAfrica_Tripoli, // 0x9dfebd3d, Africa/Tripoli + &kZoneEurope_Istanbul, // 0x9e09d6e6, Europe/Istanbul + &kZoneIndian_Antananarivo, // 0x9ebf5289, Indian/Antananarivo -> Africa/Nairobi + &kZoneAfrica_Ndjamena, // 0x9fe09898, Africa/Ndjamena + &kZoneAmerica_Guyana, // 0x9ff7bd0b, America/Guyana + &kZoneAfrica_Dar_es_Salaam, // 0xa04c47b6, Africa/Dar_es_Salaam -> Africa/Nairobi + &kZoneAmerica_Havana, // 0xa0e15675, America/Havana + &kZoneAsia_Novosibirsk, // 0xa2a435cb, Asia/Novosibirsk + &kZoneEurope_Kiev, // 0xa2c19eb3, Europe/Kiev -> Europe/Kyiv + &kZoneEurope_Kyiv, // 0xa2c1e347, Europe/Kyiv + &kZoneEurope_Oslo, // 0xa2c3fba1, Europe/Oslo -> Europe/Berlin + &kZoneEurope_Riga, // 0xa2c57587, Europe/Riga + &kZoneEurope_Rome, // 0xa2c58fd7, Europe/Rome + &kZoneAmerica_Inuvik, // 0xa42189fc, America/Inuvik + &kZoneAmerica_Argentina_La_Rioja, // 0xa46b7eef, America/Argentina/La_Rioja + &kZoneAsia_Anadyr, // 0xa63cebd1, Asia/Anadyr + &kZoneAsia_Aqtobe, // 0xa67dcc4e, Asia/Aqtobe + &kZoneAsia_Atyrau, // 0xa6b6e068, Asia/Atyrau + &kZoneAmerica_Juneau, // 0xa6f13e2e, America/Juneau + &kZoneAustralia_Lord_Howe, // 0xa748b67d, Australia/Lord_Howe + &kZonePacific_Port_Moresby, // 0xa7ba7f68, Pacific/Port_Moresby + &kZoneAsia_Katmandu, // 0xa7ec12c7, Asia/Katmandu -> Asia/Kathmandu + &kZoneAsia_Beirut, // 0xa7f3d5fd, Asia/Beirut + &kZoneSingapore, // 0xa8598c8d, Singapore -> Asia/Singapore + &kZoneAfrica_Nairobi, // 0xa87ab57e, Africa/Nairobi + &kZoneAsia_Brunei, // 0xa8e595f7, Asia/Brunei -> Asia/Kuching + &kZoneUS_Pacific, // 0xa950f6ab, US/Pacific -> America/Los_Angeles + &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos + &kZoneAmerica_Argentina_Mendoza, // 0xa9f72d5c, America/Argentina/Mendoza + &kZoneAmerica_La_Paz, // 0xaa29125d, America/La_Paz + &kZoneAmerica_Noronha, // 0xab5116fb, America/Noronha + &kZoneAmerica_Coral_Harbour, // 0xabcb7569, America/Coral_Harbour -> America/Panama + &kZoneAmerica_Maceio, // 0xac80c6d4, America/Maceio + &kZoneAmerica_Manaus, // 0xac86bf8b, America/Manaus + &kZoneAmerica_Merida, // 0xacd172d8, America/Merida + &kZoneEurope_Chisinau, // 0xad58aa18, Europe/Chisinau + &kZoneAmerica_Nassau, // 0xaedef011, America/Nassau -> America/Toronto + &kZoneAmerica_Anguilla, // 0xafe31333, America/Anguilla -> America/Puerto_Rico + &kZoneEurope_Uzhgorod, // 0xb066f5d6, Europe/Uzhgorod -> Europe/Kyiv + &kZoneAustralia_Broken_Hill, // 0xb06eada3, Australia/Broken_Hill + &kZoneAsia_Bishkek, // 0xb0728553, Asia/Bishkek + &kZoneChile_EasterIsland, // 0xb0982af8, Chile/EasterIsland -> Pacific/Easter + &kZonePacific_Johnston, // 0xb15d7b36, Pacific/Johnston -> Pacific/Honolulu + &kZoneAfrica_Timbuktu, // 0xb164d56f, Africa/Timbuktu -> Africa/Abidjan + &kZoneAmerica_St_Thomas, // 0xb1b3d778, America/St_Thomas -> America/Puerto_Rico + &kZoneAmerica_Paramaribo, // 0xb319e4c4, America/Paramaribo + &kZoneAmerica_Panama, // 0xb3863854, America/Panama + &kZoneCanada_Newfoundland, // 0xb396e991, Canada/Newfoundland -> America/St_Johns + &kZoneAsia_Harbin, // 0xb5af1186, Asia/Harbin -> Asia/Shanghai + &kZoneAmerica_Goose_Bay, // 0xb649541e, America/Goose_Bay + &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles + &kZoneAmerica_Recife, // 0xb8730494, America/Recife + &kZoneAmerica_Regina, // 0xb875371c, America/Regina + &kZoneAsia_Ashgabat, // 0xba87598d, Asia/Ashgabat + &kZoneIsrael, // 0xba88c9e5, Israel -> Asia/Jerusalem + &kZonePacific_Yap, // 0xbb40138d, Pacific/Yap -> Pacific/Port_Moresby + &kZoneAmerica_Halifax, // 0xbc5b7183, America/Halifax + &kZoneEurope_Ljubljana, // 0xbd98cdb7, Europe/Ljubljana -> Europe/Belgrade + &kZoneAsia_Kuwait, // 0xbe1b2f27, Asia/Kuwait -> Asia/Riyadh + &kZoneEurope_Tiraspol, // 0xbe704472, Europe/Tiraspol -> Europe/Chisinau + &kZoneAsia_Srednekolymsk, // 0xbf8e337d, Asia/Srednekolymsk + &kZoneAmerica_Argentina_Cordoba, // 0xbfccc308, America/Argentina/Cordoba + &kZoneAmerica_Tegucigalpa, // 0xbfd6fd4c, America/Tegucigalpa + &kZoneAmerica_Antigua, // 0xc067a32f, America/Antigua -> America/Puerto_Rico + &kZoneEurope_Busingen, // 0xc06d2cdf, Europe/Busingen -> Europe/Zurich + &kZoneAsia_Manila, // 0xc156c944, Asia/Manila + &kZoneAfrica_Kampala, // 0xc1d30e31, Africa/Kampala -> Africa/Nairobi + &kZoneAmerica_Knox_IN, // 0xc1db9a1c, America/Knox_IN -> America/Indiana/Knox + &kZoneAfrica_Abidjan, // 0xc21305a3, Africa/Abidjan + &kZoneAmerica_Virgin, // 0xc2183ab5, America/Virgin -> America/Puerto_Rico + &kZoneAsia_Phnom_Penh, // 0xc224945e, Asia/Phnom_Penh -> Asia/Bangkok + &kZoneAsia_Muscat, // 0xc2c3565f, Asia/Muscat -> Asia/Dubai + &kZoneAmerica_Punta_Arenas, // 0xc2c3bce7, America/Punta_Arenas + &kZonePortugal, // 0xc3274593, Portugal -> Europe/Lisbon + &kZoneNavajo, // 0xc4ef0e24, Navajo -> America/Denver + &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca + &kZoneAmerica_Argentina_Rio_Gallegos, // 0xc5b0f565, America/Argentina/Rio_Gallegos + &kZoneAsia_Jayapura, // 0xc6833c2f, Asia/Jayapura + &kZoneAmerica_Resolute, // 0xc7093459, America/Resolute + &kZoneAsia_Chungking, // 0xc7121dd0, Asia/Chungking -> Asia/Shanghai + &kZoneGreenwich, // 0xc84d4221, Greenwich -> Etc/GMT + &kZoneAmerica_Rankin_Inlet, // 0xc8de4984, America/Rankin_Inlet + &kZonePoland, // 0xca913b23, Poland -> Europe/Warsaw + &kZoneUS_Central, // 0xcabdcb25, US/Central -> America/Chicago + &kZoneEurope_Vatican, // 0xcb485dca, Europe/Vatican -> Europe/Rome + &kZoneAmerica_Barbados, // 0xcbbc3b04, America/Barbados + &kZoneAmerica_Porto_Acre, // 0xcce5bf54, America/Porto_Acre -> America/Rio_Branco + &kZoneAmerica_Guadeloupe, // 0xcd1f8a31, America/Guadeloupe -> America/Puerto_Rico + &kZoneAntarctica_South_Pole, // 0xcd96b290, Antarctica/South_Pole -> Pacific/Auckland + &kZoneAsia_Riyadh, // 0xcd973d93, Asia/Riyadh + &kZoneAmerica_Dominica, // 0xcecb4c4a, America/Dominica -> America/Puerto_Rico + &kZoneEurope_San_Marino, // 0xcef7724b, Europe/San_Marino -> Europe/Rome + &kZoneAsia_Saigon, // 0xcf52f713, Asia/Saigon -> Asia/Ho_Chi_Minh + &kZonePacific_Easter, // 0xcf54f7e7, Pacific/Easter + &kZoneAsia_Singapore, // 0xcf8581fa, Asia/Singapore + &kZoneAsia_Krasnoyarsk, // 0xd0376c6a, Asia/Krasnoyarsk + &kZoneEurope_Belfast, // 0xd07dd1e5, Europe/Belfast -> Europe/London + &kZoneAmerica_Mexico_City, // 0xd0d93f43, America/Mexico_City + &kZoneUniversal, // 0xd0ff523e, Universal -> Etc/UTC + &kZoneAsia_Taipei, // 0xd1a844ae, Asia/Taipei + &kZoneAsia_Tehran, // 0xd1f02254, Asia/Tehran + &kZoneAsia_Thimbu, // 0xd226e31b, Asia/Thimbu -> Asia/Thimphu + &kZoneArctic_Longyearbyen, // 0xd23e7859, Arctic/Longyearbyen -> Europe/Berlin + &kZoneAustralia_Queensland, // 0xd326ed0a, Australia/Queensland -> Australia/Brisbane + &kZoneEurope_Kaliningrad, // 0xd33b2f28, Europe/Kaliningrad + &kZoneAmerica_Argentina_Buenos_Aires, // 0xd43b4c0d, America/Argentina/Buenos_Aires + &kZoneTurkey, // 0xd455e469, Turkey -> Europe/Istanbul + &kZoneAfrica_Juba, // 0xd51b395c, Africa/Juba + &kZoneAfrica_Lome, // 0xd51c3a07, Africa/Lome -> Africa/Abidjan + &kZoneAsia_Urumqi, // 0xd5379735, Asia/Urumqi + &kZoneAmerica_Cambridge_Bay, // 0xd5a44aff, America/Cambridge_Bay + &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg + &kZoneAmerica_Port_of_Spain, // 0xd8b28d59, America/Port_of_Spain -> America/Puerto_Rico + &kZoneEtc_GMT, // 0xd8e2de58, Etc/GMT + &kZoneEtc_UCT, // 0xd8e3189c, Etc/UCT -> Etc/UTC + &kZoneEtc_UTC, // 0xd8e31abc, Etc/UTC + &kZoneAmerica_Yakutat, // 0xd8ee31e9, America/Yakutat + &kZoneAfrica_Algiers, // 0xd94515c1, Africa/Algiers + &kZonePST8PDT, // 0xd99ee2dc, PST8PDT -> America/Los_Angeles + &kZoneEurope_Bratislava, // 0xda493bed, Europe/Bratislava -> Europe/Prague + &kZoneEurope_Simferopol, // 0xda9eb724, Europe/Simferopol + &kZonePacific_Funafuti, // 0xdb402d65, Pacific/Funafuti -> Pacific/Tarawa + &kZoneAmerica_Matamoros, // 0xdd1b0259, America/Matamoros + &kZonePacific_Kanton, // 0xdd512f0e, Pacific/Kanton + &kZoneAsia_Yangon, // 0xdd54a8be, Asia/Yangon + &kZoneEurope_Vilnius, // 0xdd63b8ce, Europe/Vilnius + &kZoneAustralia_West, // 0xdd858a5d, Australia/West -> Australia/Perth + &kZonePacific_Kosrae, // 0xde5139a8, Pacific/Kosrae + &kZoneAmerica_Kentucky_Monticello, // 0xde71c439, America/Kentucky/Monticello + &kZoneEurope_Brussels, // 0xdee07337, Europe/Brussels + &kZoneAmerica_Swift_Current, // 0xdef98e55, America/Swift_Current + &kZoneAmerica_Rosario, // 0xdf448665, America/Rosario -> America/Argentina/Cordoba + &kZoneAsia_Irkutsk, // 0xdfbf213f, Asia/Irkutsk + &kZoneEurope_Ulyanovsk, // 0xe03783d0, Europe/Ulyanovsk + &kZoneAustralia_Lindeman, // 0xe05029e2, Australia/Lindeman + &kZoneEurope_Belgrade, // 0xe0532b3a, Europe/Belgrade + &kZoneAfrica_Blantyre, // 0xe08d813b, Africa/Blantyre -> Africa/Maputo + &kZoneAmerica_Menominee, // 0xe0e9c583, America/Menominee + &kZoneEurope_Copenhagen, // 0xe0ed30bc, Europe/Copenhagen -> Europe/Berlin + &kZoneAtlantic_Faroe, // 0xe110a971, Atlantic/Faroe + &kZonePacific_Majuro, // 0xe1f95371, Pacific/Majuro -> Pacific/Tarawa + &kZoneAntarctica_Casey, // 0xe2022583, Antarctica/Casey + &kZoneAntarctica_Davis, // 0xe2144b45, Antarctica/Davis + &kZoneEurope_Astrakhan, // 0xe22256e1, Europe/Astrakhan + &kZonePacific_Midway, // 0xe286d38e, Pacific/Midway -> Pacific/Pago_Pago + &kZoneAntarctica_Syowa, // 0xe330c7e1, Antarctica/Syowa -> Asia/Riyadh + &kZoneAntarctica_Troll, // 0xe33f085b, Antarctica/Troll + &kZoneEurope_Saratov, // 0xe4315da4, Europe/Saratov + &kZonePacific_Noumea, // 0xe551b788, Pacific/Noumea + &kZoneIceland, // 0xe56a35b5, Iceland -> Africa/Abidjan + &kZoneIndian_Mayotte, // 0xe6880bca, Indian/Mayotte -> Africa/Nairobi + &kZoneAustralia_Tasmania, // 0xe6d76648, Australia/Tasmania -> Australia/Hobart + &kZonePacific_Honolulu, // 0xe6e70af9, Pacific/Honolulu + &kZoneAmerica_Kralendijk, // 0xe7c456c5, America/Kralendijk -> America/Puerto_Rico + &kZoneAmerica_Argentina_Tucuman, // 0xe96399eb, America/Argentina/Tucuman + &kZonePacific_Ponape, // 0xe9f80086, Pacific/Ponape -> Pacific/Guadalcanal + &kZoneEurope_Zaporozhye, // 0xeab9767f, Europe/Zaporozhye -> Europe/Kyiv + &kZoneEurope_Isle_of_Man, // 0xeaf84580, Europe/Isle_of_Man -> Europe/London + &kZoneAsia_Magadan, // 0xebacc19b, Asia/Magadan + &kZoneAmerica_Ojinaga, // 0xebfde83f, America/Ojinaga + &kZonePacific_Saipan, // 0xeff7a35f, Pacific/Saipan -> Pacific/Guam + &kZoneCST6CDT, // 0xf0e87d00, CST6CDT -> America/Chicago + &kZonePacific_Tahiti, // 0xf24c2446, Pacific/Tahiti + &kZonePacific_Tarawa, // 0xf2517e63, Pacific/Tarawa + &kZoneMST7MDT, // 0xf2af9375, MST7MDT -> America/Denver + &kZoneCanada_Eastern, // 0xf3612d5e, Canada/Eastern -> America/Toronto + &kZoneAsia_Tashkent, // 0xf3924254, Asia/Tashkent + &kZoneAsia_Sakhalin, // 0xf4a1c9bd, Asia/Sakhalin + &kZonePacific_Guadalcanal, // 0xf4dd25f0, Pacific/Guadalcanal + &kZoneEtc_GMT0, // 0xf53ea988, Etc/GMT0 -> Etc/GMT + &kZoneEtc_Zulu, // 0xf549c240, Etc/Zulu -> Etc/UTC + &kZoneAmerica_Danmarkshavn, // 0xf554d204, America/Danmarkshavn + &kZoneAsia_Shanghai, // 0xf895a7f5, Asia/Shanghai + &kZoneEurope_Gibraltar, // 0xf8e325fc, Europe/Gibraltar + &kZoneAsia_Chongqing, // 0xf937fb90, Asia/Chongqing -> Asia/Shanghai + &kZoneAtlantic_Azores, // 0xf93ed918, Atlantic/Azores + &kZonePacific_Wallis, // 0xf94ddb0f, Pacific/Wallis -> Pacific/Tarawa + &kZoneAmerica_Thunder_Bay, // 0xf962e71b, America/Thunder_Bay -> America/Toronto + &kZoneAmerica_Eirunepe, // 0xf9b29683, America/Eirunepe + &kZoneAmerica_Montevideo, // 0xfa214780, America/Montevideo + &kZoneUS_Alaska, // 0xfa300bc9, US/Alaska -> America/Anchorage + &kZoneGB_Eire, // 0xfa70e300, GB-Eire -> Europe/London + &kZoneEurope_Kirov, // 0xfaf5abef, Europe/Kirov + &kZoneEurope_Malta, // 0xfb1560f3, Europe/Malta + &kZoneEurope_Minsk, // 0xfb19cc66, Europe/Minsk + &kZoneEurope_Bucharest, // 0xfb349ec5, Europe/Bucharest + &kZoneAfrica_Khartoum, // 0xfb3d4205, Africa/Khartoum + &kZoneEurope_Paris, // 0xfb4bc2a3, Europe/Paris + &kZoneAsia_Yekaterinburg, // 0xfb544c6e, Asia/Yekaterinburg + &kZoneEurope_Sofia, // 0xfb898656, Europe/Sofia + &kZoneCanada_Mountain, // 0xfb8a8217, Canada/Mountain -> America/Edmonton + &kZoneEurope_Vaduz, // 0xfbb81bae, Europe/Vaduz -> Europe/Zurich + &kZoneAtlantic_Canary, // 0xfc23f2c2, Atlantic/Canary + &kZoneMexico_BajaNorte, // 0xfcf7150f, Mexico/BajaNorte -> America/Tijuana + &kZoneAmerica_Santa_Isabel, // 0xfd18a56c, America/Santa_Isabel -> America/Tijuana + &kZoneAmerica_Campo_Grande, // 0xfec3e7a6, America/Campo_Grande + +}; + +} +} diff --git a/src/zonedb2025/zone_registry.h b/src/zonedb2025/zone_registry.h new file mode 100644 index 000000000..4f11d7606 --- /dev/null +++ b/src/zonedb2025/zone_registry.h @@ -0,0 +1,96 @@ +// 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/zonedb2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedb2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope basic +// --db_namespace zonedb2025 +// --zi_namespace basic::Info +// --start_year 2025 +// --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: 590 (333 zones, 257 links) +// Unsupported Zones: 7 (7 zones, 0 links) +// +// Requested Years: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 6 +// +// Records: +// Infos: 590 +// Eras: 333 +// Policies: 64 +// Rules: 258 +// +// Memory (8-bits): +// Context: 20 +// Rules: 2322 +// Policies: 192 +// Eras: 3663 +// Zones: 4329 +// Links: 3341 +// Registry: 1180 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5593 (original: 8990) +// TOTAL: 21021 +// +// Memory (32-bits): +// Context: 28 +// Rules: 3096 +// Policies: 512 +// Eras: 5328 +// Zones: 7992 +// Links: 6168 +// Registry: 2360 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5593 (original: 8990) +// TOTAL: 31500 +// +// DO NOT EDIT + +#ifndef ACE_TIME_ZONEDB2025_ZONE_REGISTRY_H +#define ACE_TIME_ZONEDB2025_ZONE_REGISTRY_H + +#include + +namespace ace_time { +namespace zonedb2025 { + +// Zones +const uint16_t kZoneRegistrySize = 333; +extern const basic::Info::ZoneInfo* const kZoneRegistry[333]; + +// Zones and Links +const uint16_t kZoneAndLinkRegistrySize = 590; +extern const basic::Info::ZoneInfo* const kZoneAndLinkRegistry[590]; + +} +} +#endif diff --git a/src/zonedbc/zone_infos.cpp b/src/zonedbc/zone_infos.cpp index a4e57cdf5..d92b0e693 100644 --- a/src/zonedbc/zone_infos.cpp +++ b/src/zonedbc/zone_infos.cpp @@ -46,7 +46,7 @@ // Rules: 2235 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 26820 // Policies: 402 // Eras: 29340 @@ -57,10 +57,10 @@ // Letters: 160 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 71989 +// TOTAL: 71993 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 26820 // Policies: 1072 // Eras: 39120 @@ -71,7 +71,7 @@ // Letters: 216 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 90292 +// TOTAL: 90296 // // DO NOT EDIT diff --git a/src/zonedbc/zone_infos.h b/src/zonedbc/zone_infos.h index 1b67a0011..7a17d86e1 100644 --- a/src/zonedbc/zone_infos.h +++ b/src/zonedbc/zone_infos.h @@ -46,7 +46,7 @@ // Rules: 2235 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 26820 // Policies: 402 // Eras: 29340 @@ -57,10 +57,10 @@ // Letters: 160 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 71989 +// TOTAL: 71993 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 26820 // Policies: 1072 // Eras: 39120 @@ -71,7 +71,7 @@ // Letters: 216 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 90292 +// TOTAL: 90296 // // DO NOT EDIT diff --git a/src/zonedbc/zone_policies.cpp b/src/zonedbc/zone_policies.cpp index 8f5b3e067..e76a29af9 100644 --- a/src/zonedbc/zone_policies.cpp +++ b/src/zonedbc/zone_policies.cpp @@ -46,7 +46,7 @@ // Rules: 2235 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 26820 // Policies: 402 // Eras: 29340 @@ -57,10 +57,10 @@ // Letters: 160 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 71989 +// TOTAL: 71993 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 26820 // Policies: 1072 // Eras: 39120 @@ -71,7 +71,7 @@ // Letters: 216 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 90292 +// TOTAL: 90296 // // DO NOT EDIT diff --git a/src/zonedbc/zone_policies.h b/src/zonedbc/zone_policies.h index 4366582b1..d26275468 100644 --- a/src/zonedbc/zone_policies.h +++ b/src/zonedbc/zone_policies.h @@ -46,7 +46,7 @@ // Rules: 2235 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 26820 // Policies: 402 // Eras: 29340 @@ -57,10 +57,10 @@ // Letters: 160 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 71989 +// TOTAL: 71993 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 26820 // Policies: 1072 // Eras: 39120 @@ -71,7 +71,7 @@ // Letters: 216 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 90292 +// TOTAL: 90296 // // DO NOT EDIT diff --git a/src/zonedbc/zone_registry.cpp b/src/zonedbc/zone_registry.cpp index 71faa6b14..4faa1de44 100644 --- a/src/zonedbc/zone_registry.cpp +++ b/src/zonedbc/zone_registry.cpp @@ -46,7 +46,7 @@ // Rules: 2235 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 26820 // Policies: 402 // Eras: 29340 @@ -57,10 +57,10 @@ // Letters: 160 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 71989 +// TOTAL: 71993 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 26820 // Policies: 1072 // Eras: 39120 @@ -71,7 +71,7 @@ // Letters: 216 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 90292 +// TOTAL: 90296 // // DO NOT EDIT diff --git a/src/zonedbc/zone_registry.h b/src/zonedbc/zone_registry.h index 61de16021..a8c176721 100644 --- a/src/zonedbc/zone_registry.h +++ b/src/zonedbc/zone_registry.h @@ -46,7 +46,7 @@ // Rules: 2235 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 26820 // Policies: 402 // Eras: 29340 @@ -57,10 +57,10 @@ // Letters: 160 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 71989 +// TOTAL: 71993 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 26820 // Policies: 1072 // Eras: 39120 @@ -71,7 +71,7 @@ // Letters: 216 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 90292 +// TOTAL: 90296 // // DO NOT EDIT diff --git a/src/zonedbx/zone_infos.cpp b/src/zonedbx/zone_infos.cpp index 8edec718c..685e7f3c5 100644 --- a/src/zonedbx/zone_infos.cpp +++ b/src/zonedbx/zone_infos.cpp @@ -46,7 +46,7 @@ // Rules: 731 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 6579 // Policies: 246 // Eras: 7117 @@ -57,10 +57,10 @@ // Letters: 46 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 29000 +// TOTAL: 29004 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 8772 // Policies: 656 // Eras: 10352 @@ -71,7 +71,7 @@ // Letters: 64 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 42653 +// TOTAL: 42657 // // DO NOT EDIT diff --git a/src/zonedbx/zone_infos.h b/src/zonedbx/zone_infos.h index 95865832c..b8dae6e24 100644 --- a/src/zonedbx/zone_infos.h +++ b/src/zonedbx/zone_infos.h @@ -46,7 +46,7 @@ // Rules: 731 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 6579 // Policies: 246 // Eras: 7117 @@ -57,10 +57,10 @@ // Letters: 46 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 29000 +// TOTAL: 29004 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 8772 // Policies: 656 // Eras: 10352 @@ -71,7 +71,7 @@ // Letters: 64 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 42653 +// TOTAL: 42657 // // DO NOT EDIT diff --git a/src/zonedbx/zone_policies.cpp b/src/zonedbx/zone_policies.cpp index b4da331f6..3997d82d7 100644 --- a/src/zonedbx/zone_policies.cpp +++ b/src/zonedbx/zone_policies.cpp @@ -46,7 +46,7 @@ // Rules: 731 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 6579 // Policies: 246 // Eras: 7117 @@ -57,10 +57,10 @@ // Letters: 46 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 29000 +// TOTAL: 29004 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 8772 // Policies: 656 // Eras: 10352 @@ -71,7 +71,7 @@ // Letters: 64 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 42653 +// TOTAL: 42657 // // DO NOT EDIT diff --git a/src/zonedbx/zone_policies.h b/src/zonedbx/zone_policies.h index 6e80b60bb..403f2331a 100644 --- a/src/zonedbx/zone_policies.h +++ b/src/zonedbx/zone_policies.h @@ -46,7 +46,7 @@ // Rules: 731 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 6579 // Policies: 246 // Eras: 7117 @@ -57,10 +57,10 @@ // Letters: 46 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 29000 +// TOTAL: 29004 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 8772 // Policies: 656 // Eras: 10352 @@ -71,7 +71,7 @@ // Letters: 64 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 42653 +// TOTAL: 42657 // // DO NOT EDIT diff --git a/src/zonedbx/zone_registry.cpp b/src/zonedbx/zone_registry.cpp index 677ddc1c4..75eefceda 100644 --- a/src/zonedbx/zone_registry.cpp +++ b/src/zonedbx/zone_registry.cpp @@ -46,7 +46,7 @@ // Rules: 731 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 6579 // Policies: 246 // Eras: 7117 @@ -57,10 +57,10 @@ // Letters: 46 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 29000 +// TOTAL: 29004 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 8772 // Policies: 656 // Eras: 10352 @@ -71,7 +71,7 @@ // Letters: 64 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 42653 +// TOTAL: 42657 // // DO NOT EDIT diff --git a/src/zonedbx/zone_registry.h b/src/zonedbx/zone_registry.h index a46cc7fd4..c57395b2c 100644 --- a/src/zonedbx/zone_registry.h +++ b/src/zonedbx/zone_registry.h @@ -46,7 +46,7 @@ // Rules: 731 // // Memory (8-bits): -// Context: 16 +// Context: 20 // Rules: 6579 // Policies: 246 // Eras: 7117 @@ -57,10 +57,10 @@ // Letters: 46 // Fragments: 150 // Names: 5660 (original: 9094) -// TOTAL: 29000 +// TOTAL: 29004 // // Memory (32-bits): -// Context: 24 +// Context: 28 // Rules: 8772 // Policies: 656 // Eras: 10352 @@ -71,7 +71,7 @@ // Letters: 64 // Fragments: 178 // Names: 5660 (original: 9094) -// TOTAL: 42653 +// TOTAL: 42657 // // DO NOT EDIT diff --git a/src/zonedbx2025/Makefile b/src/zonedbx2025/Makefile new file mode 100644 index 000000000..d26e72362 --- /dev/null +++ b/src/zonedbx2025/Makefile @@ -0,0 +1,34 @@ +TARGETS := zone_infos.cpp zone_infos.h zone_policies.cpp zone_policies.h + +COMPILER := $(abspath ../../../../compiler) +TZ_REPO := $(abspath ../../../../../tz) +TZ_VERSION := 2025b +START_YEAR := 2025 +UNTIL_YEAR := 2200 + +all: + $(COMPILER)/tzcompiler.sh \ + --tzrepo $(TZ_REPO) \ + --tag $(TZ_VERSION) \ + --action zonedb \ + --language arduino \ + --scope extended \ + --db_namespace zonedbx2025 \ + --zi_namespace extended::Info \ + --start_year $(START_YEAR) \ + --until_year $(UNTIL_YEAR) + +zonedb.json: + $(COMPILER)/tzcompiler.sh \ + --tzrepo $(TZ_REPO) \ + --tag $(TZ_VERSION) \ + --action json \ + --language arduino \ + --scope extended \ + --db_namespace zonedbx \ + --zi_namespace extended::Info \ + --start_year $(START_YEAR) \ + --until_year $(UNTIL_YEAR) + +clean: + rm -rf tzfiles zonedb.json diff --git a/src/zonedbx2025/zone_infos.cpp b/src/zonedbx2025/zone_infos.cpp new file mode 100644 index 000000000..0abaec97a --- /dev/null +++ b/src/zonedbx2025/zone_infos.cpp @@ -0,0 +1,14968 @@ +// 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/zonedbx2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope extended +// --db_namespace zonedbx2025 +// --zi_namespace extended::Info +// --start_year 2025 +// --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: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 7 +// +// Records: +// Infos: 597 +// Eras: 345 +// Policies: 66 +// Rules: 343 +// +// Memory (8-bits): +// Context: 20 +// Rules: 3087 +// Policies: 198 +// Eras: 3795 +// Zones: 4420 +// Links: 3341 +// Registry: 1194 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5660 (original: 9094) +// TOTAL: 22096 +// +// Memory (32-bits): +// Context: 28 +// Rules: 4116 +// Policies: 528 +// Eras: 5520 +// Zones: 8160 +// Links: 6168 +// Registry: 2388 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5660 (original: 9094) +// TOTAL: 32991 +// +// DO NOT EDIT + +#include +#include "zone_policies.h" +#include "zone_infos.h" + +namespace ace_time { +namespace zonedbx2025 { + +//--------------------------------------------------------------------------- +// ZoneContext +//--------------------------------------------------------------------------- + +static const char kVersionString[] ACE_TIME_PROGMEM = "2025b"; +const __FlashStringHelper* const kTzDatabaseVersion = + (const __FlashStringHelper*) kVersionString; + +static const char kFragment1[] ACE_TIME_PROGMEM = "Africa/"; +static const char kFragment2[] ACE_TIME_PROGMEM = "America/"; +static const char kFragment3[] ACE_TIME_PROGMEM = "Antarctica/"; +static const char kFragment4[] ACE_TIME_PROGMEM = "Argentina/"; +static const char kFragment5[] ACE_TIME_PROGMEM = "Asia/"; +static const char kFragment6[] ACE_TIME_PROGMEM = "Atlantic/"; +static const char kFragment7[] ACE_TIME_PROGMEM = "Australia/"; +static const char kFragment8[] ACE_TIME_PROGMEM = "Brazil/"; +static const char kFragment9[] ACE_TIME_PROGMEM = "Canada/"; +static const char kFragment10[] ACE_TIME_PROGMEM = "Etc/"; +static const char kFragment11[] ACE_TIME_PROGMEM = "Europe/"; +static const char kFragment12[] ACE_TIME_PROGMEM = "Indian/"; +static const char kFragment13[] ACE_TIME_PROGMEM = "Indiana/"; +static const char kFragment14[] ACE_TIME_PROGMEM = "Pacific/"; + +const char* const kFragments[] ACE_TIME_PROGMEM = { + nullptr, // '\x00' cannot exist + kFragment1, // '\x01' "Africa/" + kFragment2, // '\x02' "America/" + kFragment3, // '\x03' "Antarctica/" + kFragment4, // '\x04' "Argentina/" + kFragment5, // '\x05' "Asia/" + kFragment6, // '\x06' "Atlantic/" + kFragment7, // '\x07' "Australia/" + kFragment8, // '\x08' "Brazil/" + kFragment9, // '\x09' "Canada/" + kFragment10, // '\x0a' "Etc/" + kFragment11, // '\x0b' "Europe/" + kFragment12, // '\x0c' "Indian/" + kFragment13, // '\x0d' "Indiana/" + kFragment14, // '\x0e' "Pacific/" + +}; + +static const char kLetter0[] ACE_TIME_PROGMEM = ""; +static const char kLetter1[] ACE_TIME_PROGMEM = "+00"; +static const char kLetter2[] ACE_TIME_PROGMEM = "+02"; +static const char kLetter3[] ACE_TIME_PROGMEM = "CAT"; +static const char kLetter4[] ACE_TIME_PROGMEM = "CST"; +static const char kLetter5[] ACE_TIME_PROGMEM = "D"; +static const char kLetter6[] ACE_TIME_PROGMEM = "S"; + +const char* const kLetters[] ACE_TIME_PROGMEM = { + kLetter0, // "" + kLetter1, // "+00" + kLetter2, // "+02" + kLetter3, // "CAT" + kLetter4, // "CST" + kLetter5, // "D" + kLetter6, // "S" + +}; + +const extended::Info::ZoneContext kZoneContext ACE_TIME_PROGMEM = { + 2025 /*startYear*/, + 2200 /*untilYear*/, + 2025 /*startYearAccurate*/, + 32767 /*untilYearAccurate*/, + 2100 /*baseYear*/, + 7 /*maxTransitions*/, + kVersionString /*tzVersion*/, + 15 /*numFragments*/, + 7 /*numLetters*/, + kFragments /*fragments*/, + kLetters /*letters*/, +}; + +//--------------------------------------------------------------------------- +// Zones: 340 +// Eras: 345 +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// Zone name: Africa/Abidjan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Abidjan[] ACE_TIME_PROGMEM = { + // 0:00 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Abidjan[] ACE_TIME_PROGMEM = "\x01" "Abidjan"; + +const extended::Info::ZoneInfo kZoneAfrica_Abidjan ACE_TIME_PROGMEM = { + kZoneNameAfrica_Abidjan /*name*/, + 0xc21305a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Algiers +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Algiers[] ACE_TIME_PROGMEM = { + // 1:00 - CET + { + nullptr /*zonePolicy*/, + "CET" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Algiers[] ACE_TIME_PROGMEM = "\x01" "Algiers"; + +const extended::Info::ZoneInfo kZoneAfrica_Algiers ACE_TIME_PROGMEM = { + kZoneNameAfrica_Algiers /*name*/, + 0xd94515c1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Algiers /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Bissau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Bissau[] ACE_TIME_PROGMEM = { + // 0:00 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Bissau[] ACE_TIME_PROGMEM = "\x01" "Bissau"; + +const extended::Info::ZoneInfo kZoneAfrica_Bissau ACE_TIME_PROGMEM = { + kZoneNameAfrica_Bissau /*name*/, + 0x75564141 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Bissau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Cairo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Cairo[] ACE_TIME_PROGMEM = { + // 2:00 Egypt EE%sT + { + &kZonePolicyEgypt /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Cairo[] ACE_TIME_PROGMEM = "\x01" "Cairo"; + +const extended::Info::ZoneInfo kZoneAfrica_Cairo ACE_TIME_PROGMEM = { + kZoneNameAfrica_Cairo /*name*/, + 0x77f8e228 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Cairo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Casablanca +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Casablanca[] ACE_TIME_PROGMEM = { + // 1:00 Morocco %z + { + &kZonePolicyMorocco /*zonePolicy*/, + "" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Casablanca[] ACE_TIME_PROGMEM = "\x01" "Casablanca"; + +const extended::Info::ZoneInfo kZoneAfrica_Casablanca ACE_TIME_PROGMEM = { + kZoneNameAfrica_Casablanca /*name*/, + 0xc59f1b33 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Casablanca /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Ceuta +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Ceuta[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Ceuta[] ACE_TIME_PROGMEM = "\x01" "Ceuta"; + +const extended::Info::ZoneInfo kZoneAfrica_Ceuta ACE_TIME_PROGMEM = { + kZoneNameAfrica_Ceuta /*name*/, + 0x77fb46ec /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Ceuta /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/El_Aaiun +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_El_Aaiun[] ACE_TIME_PROGMEM = { + // 1:00 Morocco %z + { + &kZonePolicyMorocco /*zonePolicy*/, + "" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_El_Aaiun[] ACE_TIME_PROGMEM = "\x01" "El_Aaiun"; + +const extended::Info::ZoneInfo kZoneAfrica_El_Aaiun ACE_TIME_PROGMEM = { + kZoneNameAfrica_El_Aaiun /*name*/, + 0x9d6fb118 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_El_Aaiun /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Johannesburg +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Johannesburg[] ACE_TIME_PROGMEM = { + // 2:00 SA SAST + { + &kZonePolicySA /*zonePolicy*/, + "SAST" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Johannesburg[] ACE_TIME_PROGMEM = "\x01" "Johannesburg"; + +const extended::Info::ZoneInfo kZoneAfrica_Johannesburg ACE_TIME_PROGMEM = { + kZoneNameAfrica_Johannesburg /*name*/, + 0xd5d157a0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Johannesburg /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Juba +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Juba[] ACE_TIME_PROGMEM = { + // 2:00 - CAT + { + nullptr /*zonePolicy*/, + "CAT" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Juba[] ACE_TIME_PROGMEM = "\x01" "Juba"; + +const extended::Info::ZoneInfo kZoneAfrica_Juba ACE_TIME_PROGMEM = { + kZoneNameAfrica_Juba /*name*/, + 0xd51b395c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Juba /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Khartoum +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Khartoum[] ACE_TIME_PROGMEM = { + // 2:00 - CAT + { + nullptr /*zonePolicy*/, + "CAT" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Khartoum[] ACE_TIME_PROGMEM = "\x01" "Khartoum"; + +const extended::Info::ZoneInfo kZoneAfrica_Khartoum ACE_TIME_PROGMEM = { + kZoneNameAfrica_Khartoum /*name*/, + 0xfb3d4205 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Khartoum /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Lagos +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Lagos[] ACE_TIME_PROGMEM = { + // 1:00 - WAT + { + nullptr /*zonePolicy*/, + "WAT" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Lagos[] ACE_TIME_PROGMEM = "\x01" "Lagos"; + +const extended::Info::ZoneInfo kZoneAfrica_Lagos ACE_TIME_PROGMEM = { + kZoneNameAfrica_Lagos /*name*/, + 0x789bb5d0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Maputo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Maputo[] ACE_TIME_PROGMEM = { + // 2:00 - CAT + { + nullptr /*zonePolicy*/, + "CAT" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Maputo[] ACE_TIME_PROGMEM = "\x01" "Maputo"; + +const extended::Info::ZoneInfo kZoneAfrica_Maputo ACE_TIME_PROGMEM = { + kZoneNameAfrica_Maputo /*name*/, + 0x8e6ca1f0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Monrovia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Monrovia[] ACE_TIME_PROGMEM = { + // 0:00 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Monrovia[] ACE_TIME_PROGMEM = "\x01" "Monrovia"; + +const extended::Info::ZoneInfo kZoneAfrica_Monrovia ACE_TIME_PROGMEM = { + kZoneNameAfrica_Monrovia /*name*/, + 0x0ce90385 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Monrovia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Nairobi +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Nairobi[] ACE_TIME_PROGMEM = { + // 3:00 - EAT + { + nullptr /*zonePolicy*/, + "EAT" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Nairobi[] ACE_TIME_PROGMEM = "\x01" "Nairobi"; + +const extended::Info::ZoneInfo kZoneAfrica_Nairobi ACE_TIME_PROGMEM = { + kZoneNameAfrica_Nairobi /*name*/, + 0xa87ab57e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Ndjamena +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Ndjamena[] ACE_TIME_PROGMEM = { + // 1:00 - WAT + { + nullptr /*zonePolicy*/, + "WAT" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Ndjamena[] ACE_TIME_PROGMEM = "\x01" "Ndjamena"; + +const extended::Info::ZoneInfo kZoneAfrica_Ndjamena ACE_TIME_PROGMEM = { + kZoneNameAfrica_Ndjamena /*name*/, + 0x9fe09898 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Ndjamena /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Sao_Tome +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Sao_Tome[] ACE_TIME_PROGMEM = { + // 0:00 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Sao_Tome[] ACE_TIME_PROGMEM = "\x01" "Sao_Tome"; + +const extended::Info::ZoneInfo kZoneAfrica_Sao_Tome ACE_TIME_PROGMEM = { + kZoneNameAfrica_Sao_Tome /*name*/, + 0x61b319d1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Sao_Tome /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Tripoli +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Tripoli[] ACE_TIME_PROGMEM = { + // 2:00 - EET + { + nullptr /*zonePolicy*/, + "EET" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Tripoli[] ACE_TIME_PROGMEM = "\x01" "Tripoli"; + +const extended::Info::ZoneInfo kZoneAfrica_Tripoli ACE_TIME_PROGMEM = { + kZoneNameAfrica_Tripoli /*name*/, + 0x9dfebd3d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Tripoli /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Tunis +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Tunis[] ACE_TIME_PROGMEM = { + // 1:00 Tunisia CE%sT + { + &kZonePolicyTunisia /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Tunis[] ACE_TIME_PROGMEM = "\x01" "Tunis"; + +const extended::Info::ZoneInfo kZoneAfrica_Tunis ACE_TIME_PROGMEM = { + kZoneNameAfrica_Tunis /*name*/, + 0x79378e6d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Tunis /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Africa/Windhoek +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAfrica_Windhoek[] ACE_TIME_PROGMEM = { + // 2:00 Namibia %s + { + &kZonePolicyNamibia /*zonePolicy*/, + "%" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAfrica_Windhoek[] ACE_TIME_PROGMEM = "\x01" "Windhoek"; + +const extended::Info::ZoneInfo kZoneAfrica_Windhoek ACE_TIME_PROGMEM = { + kZoneNameAfrica_Windhoek /*name*/, + 0x789c9bd3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Windhoek /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Adak +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Adak[] ACE_TIME_PROGMEM = { + // -10:00 US H%sT + { + &kZonePolicyUS /*zonePolicy*/, + "H%T" /*format*/, + -40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Adak[] ACE_TIME_PROGMEM = "\x02" "Adak"; + +const extended::Info::ZoneInfo kZoneAmerica_Adak ACE_TIME_PROGMEM = { + kZoneNameAmerica_Adak /*name*/, + 0x97fe49d7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Adak /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Anchorage +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Anchorage[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Anchorage[] ACE_TIME_PROGMEM = "\x02" "Anchorage"; + +const extended::Info::ZoneInfo kZoneAmerica_Anchorage ACE_TIME_PROGMEM = { + kZoneNameAmerica_Anchorage /*name*/, + 0x5a79260e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Anchorage /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Araguaina +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Araguaina[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Araguaina[] ACE_TIME_PROGMEM = "\x02" "Araguaina"; + +const extended::Info::ZoneInfo kZoneAmerica_Araguaina ACE_TIME_PROGMEM = { + kZoneNameAmerica_Araguaina /*name*/, + 0x6f9a3aef /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Araguaina /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Buenos_Aires +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Buenos_Aires[] ACE_TIME_PROGMEM = { + // -3:00 Arg %z + { + &kZonePolicyArg /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Buenos_Aires[] ACE_TIME_PROGMEM = "\x02" "\x04" "Buenos_Aires"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_Buenos_Aires ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Buenos_Aires /*name*/, + 0xd43b4c0d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Buenos_Aires /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Catamarca +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Catamarca[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Catamarca[] ACE_TIME_PROGMEM = "\x02" "\x04" "Catamarca"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_Catamarca ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Catamarca /*name*/, + 0x8d40986b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Catamarca /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Cordoba +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Cordoba[] ACE_TIME_PROGMEM = { + // -3:00 Arg %z + { + &kZonePolicyArg /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Cordoba[] ACE_TIME_PROGMEM = "\x02" "\x04" "Cordoba"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_Cordoba ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Cordoba /*name*/, + 0xbfccc308 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Cordoba /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Jujuy +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Jujuy[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Jujuy[] ACE_TIME_PROGMEM = "\x02" "\x04" "Jujuy"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_Jujuy ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Jujuy /*name*/, + 0x5f2f46c5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Jujuy /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/La_Rioja +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_La_Rioja[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_La_Rioja[] ACE_TIME_PROGMEM = "\x02" "\x04" "La_Rioja"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_La_Rioja ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_La_Rioja /*name*/, + 0xa46b7eef /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_La_Rioja /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Mendoza +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Mendoza[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Mendoza[] ACE_TIME_PROGMEM = "\x02" "\x04" "Mendoza"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_Mendoza ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Mendoza /*name*/, + 0xa9f72d5c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Mendoza /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Rio_Gallegos +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Rio_Gallegos[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Rio_Gallegos[] ACE_TIME_PROGMEM = "\x02" "\x04" "Rio_Gallegos"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_Rio_Gallegos ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Rio_Gallegos /*name*/, + 0xc5b0f565 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Rio_Gallegos /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Salta +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Salta[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Salta[] ACE_TIME_PROGMEM = "\x02" "\x04" "Salta"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_Salta ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Salta /*name*/, + 0x5fc73403 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Salta /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/San_Juan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_San_Juan[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_San_Juan[] ACE_TIME_PROGMEM = "\x02" "\x04" "San_Juan"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_San_Juan ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_San_Juan /*name*/, + 0x3e1009bd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_San_Juan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/San_Luis +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_San_Luis[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_San_Luis[] ACE_TIME_PROGMEM = "\x02" "\x04" "San_Luis"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_San_Luis ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_San_Luis /*name*/, + 0x3e11238c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_San_Luis /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Tucuman +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Tucuman[] ACE_TIME_PROGMEM = { + // -3:00 Arg %z + { + &kZonePolicyArg /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Tucuman[] ACE_TIME_PROGMEM = "\x02" "\x04" "Tucuman"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_Tucuman ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Tucuman /*name*/, + 0xe96399eb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Tucuman /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Argentina/Ushuaia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Argentina_Ushuaia[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Argentina_Ushuaia[] ACE_TIME_PROGMEM = "\x02" "\x04" "Ushuaia"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_Ushuaia ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_Ushuaia /*name*/, + 0x320dcdde /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Ushuaia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Asuncion +// Eras: 2 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Asuncion[] ACE_TIME_PROGMEM = { + // -4:00 Para %z 2024 Oct 15 + { + &kZonePolicyPara /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + -76 /*untilYearTiny*/, + 10 /*untilMonth*/, + 15 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Asuncion[] ACE_TIME_PROGMEM = "\x02" "Asuncion"; + +const extended::Info::ZoneInfo kZoneAmerica_Asuncion ACE_TIME_PROGMEM = { + kZoneNameAmerica_Asuncion /*name*/, + 0x50ec79a6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 2 /*numEras*/, + kZoneEraAmerica_Asuncion /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Bahia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Bahia[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Bahia[] ACE_TIME_PROGMEM = "\x02" "Bahia"; + +const extended::Info::ZoneInfo kZoneAmerica_Bahia ACE_TIME_PROGMEM = { + kZoneNameAmerica_Bahia /*name*/, + 0x97d815fb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Bahia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Bahia_Banderas +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Bahia_Banderas[] ACE_TIME_PROGMEM = { + // -6:00 Mexico C%sT + { + &kZonePolicyMexico /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Bahia_Banderas[] ACE_TIME_PROGMEM = "\x02" "Bahia_Banderas"; + +const extended::Info::ZoneInfo kZoneAmerica_Bahia_Banderas ACE_TIME_PROGMEM = { + kZoneNameAmerica_Bahia_Banderas /*name*/, + 0x14f6329a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Bahia_Banderas /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Barbados +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Barbados[] ACE_TIME_PROGMEM = { + // -4:00 Barb A%sT + { + &kZonePolicyBarb /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Barbados[] ACE_TIME_PROGMEM = "\x02" "Barbados"; + +const extended::Info::ZoneInfo kZoneAmerica_Barbados ACE_TIME_PROGMEM = { + kZoneNameAmerica_Barbados /*name*/, + 0xcbbc3b04 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Barbados /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Belem +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Belem[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Belem[] ACE_TIME_PROGMEM = "\x02" "Belem"; + +const extended::Info::ZoneInfo kZoneAmerica_Belem ACE_TIME_PROGMEM = { + kZoneNameAmerica_Belem /*name*/, + 0x97da580b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Belem /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Belize +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Belize[] ACE_TIME_PROGMEM = { + // -6:00 Belize %s + { + &kZonePolicyBelize /*zonePolicy*/, + "%" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Belize[] ACE_TIME_PROGMEM = "\x02" "Belize"; + +const extended::Info::ZoneInfo kZoneAmerica_Belize ACE_TIME_PROGMEM = { + kZoneNameAmerica_Belize /*name*/, + 0x93256c81 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Belize /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Boa_Vista +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Boa_Vista[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Boa_Vista[] ACE_TIME_PROGMEM = "\x02" "Boa_Vista"; + +const extended::Info::ZoneInfo kZoneAmerica_Boa_Vista ACE_TIME_PROGMEM = { + kZoneNameAmerica_Boa_Vista /*name*/, + 0x0a7b7efe /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Boa_Vista /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Bogota +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Bogota[] ACE_TIME_PROGMEM = { + // -5:00 CO %z + { + &kZonePolicyCO /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Bogota[] ACE_TIME_PROGMEM = "\x02" "Bogota"; + +const extended::Info::ZoneInfo kZoneAmerica_Bogota ACE_TIME_PROGMEM = { + kZoneNameAmerica_Bogota /*name*/, + 0x93d7bc62 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Bogota /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Boise +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Boise[] ACE_TIME_PROGMEM = { + // -7:00 US M%sT + { + &kZonePolicyUS /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Boise[] ACE_TIME_PROGMEM = "\x02" "Boise"; + +const extended::Info::ZoneInfo kZoneAmerica_Boise ACE_TIME_PROGMEM = { + kZoneNameAmerica_Boise /*name*/, + 0x97dfc8d8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Boise /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Cambridge_Bay +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Cambridge_Bay[] ACE_TIME_PROGMEM = { + // -7:00 Canada M%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Cambridge_Bay[] ACE_TIME_PROGMEM = "\x02" "Cambridge_Bay"; + +const extended::Info::ZoneInfo kZoneAmerica_Cambridge_Bay ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cambridge_Bay /*name*/, + 0xd5a44aff /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Cambridge_Bay /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Campo_Grande +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Campo_Grande[] ACE_TIME_PROGMEM = { + // -4:00 Brazil %z + { + &kZonePolicyBrazil /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Campo_Grande[] ACE_TIME_PROGMEM = "\x02" "Campo_Grande"; + +const extended::Info::ZoneInfo kZoneAmerica_Campo_Grande ACE_TIME_PROGMEM = { + kZoneNameAmerica_Campo_Grande /*name*/, + 0xfec3e7a6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Campo_Grande /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Cancun +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Cancun[] ACE_TIME_PROGMEM = { + // -5:00 - EST + { + nullptr /*zonePolicy*/, + "EST" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Cancun[] ACE_TIME_PROGMEM = "\x02" "Cancun"; + +const extended::Info::ZoneInfo kZoneAmerica_Cancun ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cancun /*name*/, + 0x953331be /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Cancun /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Caracas +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Caracas[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Caracas[] ACE_TIME_PROGMEM = "\x02" "Caracas"; + +const extended::Info::ZoneInfo kZoneAmerica_Caracas ACE_TIME_PROGMEM = { + kZoneNameAmerica_Caracas /*name*/, + 0x3be064f4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Caracas /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Cayenne +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Cayenne[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Cayenne[] ACE_TIME_PROGMEM = "\x02" "Cayenne"; + +const extended::Info::ZoneInfo kZoneAmerica_Cayenne ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cayenne /*name*/, + 0x3c617269 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Cayenne /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Chicago +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "\x02" "Chicago"; + +const extended::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = { + kZoneNameAmerica_Chicago /*name*/, + 0x4b92b5d4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Chicago /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Chihuahua +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Chihuahua[] ACE_TIME_PROGMEM = { + // -6:00 - CST + { + nullptr /*zonePolicy*/, + "CST" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Chihuahua[] ACE_TIME_PROGMEM = "\x02" "Chihuahua"; + +const extended::Info::ZoneInfo kZoneAmerica_Chihuahua ACE_TIME_PROGMEM = { + kZoneNameAmerica_Chihuahua /*name*/, + 0x8827d776 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Chihuahua /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Ciudad_Juarez +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Ciudad_Juarez[] ACE_TIME_PROGMEM = { + // -7:00 US M%sT + { + &kZonePolicyUS /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Ciudad_Juarez[] ACE_TIME_PROGMEM = "\x02" "Ciudad_Juarez"; + +const extended::Info::ZoneInfo kZoneAmerica_Ciudad_Juarez ACE_TIME_PROGMEM = { + kZoneNameAmerica_Ciudad_Juarez /*name*/, + 0x7347fc60 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Ciudad_Juarez /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Costa_Rica +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Costa_Rica[] ACE_TIME_PROGMEM = { + // -6:00 CR C%sT + { + &kZonePolicyCR /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Costa_Rica[] ACE_TIME_PROGMEM = "\x02" "Costa_Rica"; + +const extended::Info::ZoneInfo kZoneAmerica_Costa_Rica ACE_TIME_PROGMEM = { + kZoneNameAmerica_Costa_Rica /*name*/, + 0x63ff66be /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Costa_Rica /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Coyhaique +// Eras: 2 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Coyhaique[] ACE_TIME_PROGMEM = { + // -4:00 Chile %z 2025 Mar 20 + { + &kZonePolicyChile /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + -75 /*untilYearTiny*/, + 3 /*untilMonth*/, + 20 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Coyhaique[] ACE_TIME_PROGMEM = "\x02" "Coyhaique"; + +const extended::Info::ZoneInfo kZoneAmerica_Coyhaique ACE_TIME_PROGMEM = { + kZoneNameAmerica_Coyhaique /*name*/, + 0xcc3314ee /*zoneId*/, + &kZoneContext /*zoneContext*/, + 2 /*numEras*/, + kZoneEraAmerica_Coyhaique /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Cuiaba +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Cuiaba[] ACE_TIME_PROGMEM = { + // -4:00 Brazil %z + { + &kZonePolicyBrazil /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Cuiaba[] ACE_TIME_PROGMEM = "\x02" "Cuiaba"; + +const extended::Info::ZoneInfo kZoneAmerica_Cuiaba ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cuiaba /*name*/, + 0x969a52eb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Cuiaba /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Danmarkshavn +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = { + // 0:00 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = "\x02" "Danmarkshavn"; + +const extended::Info::ZoneInfo kZoneAmerica_Danmarkshavn ACE_TIME_PROGMEM = { + kZoneNameAmerica_Danmarkshavn /*name*/, + 0xf554d204 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Danmarkshavn /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Dawson +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Dawson[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Dawson[] ACE_TIME_PROGMEM = "\x02" "Dawson"; + +const extended::Info::ZoneInfo kZoneAmerica_Dawson ACE_TIME_PROGMEM = { + kZoneNameAmerica_Dawson /*name*/, + 0x978d8d12 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Dawson /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Dawson_Creek +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = "\x02" "Dawson_Creek"; + +const extended::Info::ZoneInfo kZoneAmerica_Dawson_Creek ACE_TIME_PROGMEM = { + kZoneNameAmerica_Dawson_Creek /*name*/, + 0x6cf24e5b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Dawson_Creek /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Denver +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = { + // -7:00 US M%sT + { + &kZonePolicyUS /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "\x02" "Denver"; + +const extended::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = { + kZoneNameAmerica_Denver /*name*/, + 0x97d10b2a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Denver /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Detroit +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Detroit[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Detroit[] ACE_TIME_PROGMEM = "\x02" "Detroit"; + +const extended::Info::ZoneInfo kZoneAmerica_Detroit ACE_TIME_PROGMEM = { + kZoneNameAmerica_Detroit /*name*/, + 0x925cfbc1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Detroit /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Edmonton +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = { + // -7:00 Canada M%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "\x02" "Edmonton"; + +const extended::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = { + kZoneNameAmerica_Edmonton /*name*/, + 0x6cb9484a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Edmonton /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Eirunepe +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Eirunepe[] ACE_TIME_PROGMEM = { + // -5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Eirunepe[] ACE_TIME_PROGMEM = "\x02" "Eirunepe"; + +const extended::Info::ZoneInfo kZoneAmerica_Eirunepe ACE_TIME_PROGMEM = { + kZoneNameAmerica_Eirunepe /*name*/, + 0xf9b29683 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Eirunepe /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/El_Salvador +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_El_Salvador[] ACE_TIME_PROGMEM = { + // -6:00 Salv C%sT + { + &kZonePolicySalv /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_El_Salvador[] ACE_TIME_PROGMEM = "\x02" "El_Salvador"; + +const extended::Info::ZoneInfo kZoneAmerica_El_Salvador ACE_TIME_PROGMEM = { + kZoneNameAmerica_El_Salvador /*name*/, + 0x752ad652 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_El_Salvador /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Fort_Nelson +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Fort_Nelson[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Fort_Nelson[] ACE_TIME_PROGMEM = "\x02" "Fort_Nelson"; + +const extended::Info::ZoneInfo kZoneAmerica_Fort_Nelson ACE_TIME_PROGMEM = { + kZoneNameAmerica_Fort_Nelson /*name*/, + 0x3f437e0f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Fort_Nelson /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Fortaleza +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Fortaleza[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Fortaleza[] ACE_TIME_PROGMEM = "\x02" "Fortaleza"; + +const extended::Info::ZoneInfo kZoneAmerica_Fortaleza ACE_TIME_PROGMEM = { + kZoneNameAmerica_Fortaleza /*name*/, + 0x2ad018ee /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Fortaleza /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Glace_Bay +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Glace_Bay[] ACE_TIME_PROGMEM = { + // -4:00 Canada A%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Glace_Bay[] ACE_TIME_PROGMEM = "\x02" "Glace_Bay"; + +const extended::Info::ZoneInfo kZoneAmerica_Glace_Bay ACE_TIME_PROGMEM = { + kZoneNameAmerica_Glace_Bay /*name*/, + 0x9681f8dd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Glace_Bay /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Goose_Bay +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Goose_Bay[] ACE_TIME_PROGMEM = { + // -4:00 Canada A%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Goose_Bay[] ACE_TIME_PROGMEM = "\x02" "Goose_Bay"; + +const extended::Info::ZoneInfo kZoneAmerica_Goose_Bay ACE_TIME_PROGMEM = { + kZoneNameAmerica_Goose_Bay /*name*/, + 0xb649541e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Goose_Bay /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Grand_Turk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Grand_Turk[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Grand_Turk[] ACE_TIME_PROGMEM = "\x02" "Grand_Turk"; + +const extended::Info::ZoneInfo kZoneAmerica_Grand_Turk ACE_TIME_PROGMEM = { + kZoneNameAmerica_Grand_Turk /*name*/, + 0x6e216197 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Grand_Turk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Guatemala +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Guatemala[] ACE_TIME_PROGMEM = { + // -6:00 Guat C%sT + { + &kZonePolicyGuat /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Guatemala[] ACE_TIME_PROGMEM = "\x02" "Guatemala"; + +const extended::Info::ZoneInfo kZoneAmerica_Guatemala ACE_TIME_PROGMEM = { + kZoneNameAmerica_Guatemala /*name*/, + 0x0c8259f7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Guatemala /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Guayaquil +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Guayaquil[] ACE_TIME_PROGMEM = { + // -5:00 Ecuador %z + { + &kZonePolicyEcuador /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Guayaquil[] ACE_TIME_PROGMEM = "\x02" "Guayaquil"; + +const extended::Info::ZoneInfo kZoneAmerica_Guayaquil ACE_TIME_PROGMEM = { + kZoneNameAmerica_Guayaquil /*name*/, + 0x17e64958 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Guayaquil /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Guyana +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Guyana[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Guyana[] ACE_TIME_PROGMEM = "\x02" "Guyana"; + +const extended::Info::ZoneInfo kZoneAmerica_Guyana ACE_TIME_PROGMEM = { + kZoneNameAmerica_Guyana /*name*/, + 0x9ff7bd0b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Guyana /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Halifax +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Halifax[] ACE_TIME_PROGMEM = { + // -4:00 Canada A%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Halifax[] ACE_TIME_PROGMEM = "\x02" "Halifax"; + +const extended::Info::ZoneInfo kZoneAmerica_Halifax ACE_TIME_PROGMEM = { + kZoneNameAmerica_Halifax /*name*/, + 0xbc5b7183 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Halifax /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Havana +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Havana[] ACE_TIME_PROGMEM = { + // -5:00 Cuba C%sT + { + &kZonePolicyCuba /*zonePolicy*/, + "C%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Havana[] ACE_TIME_PROGMEM = "\x02" "Havana"; + +const extended::Info::ZoneInfo kZoneAmerica_Havana ACE_TIME_PROGMEM = { + kZoneNameAmerica_Havana /*name*/, + 0xa0e15675 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Havana /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Hermosillo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Hermosillo[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Hermosillo[] ACE_TIME_PROGMEM = "\x02" "Hermosillo"; + +const extended::Info::ZoneInfo kZoneAmerica_Hermosillo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Hermosillo /*name*/, + 0x065d21c4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Hermosillo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Indianapolis +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Indianapolis"; + +const extended::Info::ZoneInfo kZoneAmerica_Indiana_Indianapolis ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Indianapolis /*name*/, + 0x28a669a4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Indianapolis /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Knox +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Knox[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Knox[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Knox"; + +const extended::Info::ZoneInfo kZoneAmerica_Indiana_Knox ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Knox /*name*/, + 0x6554adc9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Knox /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Marengo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Marengo"; + +const extended::Info::ZoneInfo kZoneAmerica_Indiana_Marengo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Marengo /*name*/, + 0x2feeee72 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Marengo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Petersburg +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Petersburg[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Petersburg[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Petersburg"; + +const extended::Info::ZoneInfo kZoneAmerica_Indiana_Petersburg ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Petersburg /*name*/, + 0x94ac7acc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Petersburg /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Tell_City +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Tell_City[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Tell_City[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Tell_City"; + +const extended::Info::ZoneInfo kZoneAmerica_Indiana_Tell_City ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Tell_City /*name*/, + 0x09263612 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Tell_City /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Vevay +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Vevay"; + +const extended::Info::ZoneInfo kZoneAmerica_Indiana_Vevay ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Vevay /*name*/, + 0x10aca054 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Vevay /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Vincennes +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Vincennes[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Vincennes[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Vincennes"; + +const extended::Info::ZoneInfo kZoneAmerica_Indiana_Vincennes ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Vincennes /*name*/, + 0x28a0b212 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Vincennes /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Indiana/Winamac +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Indiana_Winamac[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Indiana_Winamac[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Winamac"; + +const extended::Info::ZoneInfo kZoneAmerica_Indiana_Winamac ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indiana_Winamac /*name*/, + 0x4413fa69 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Winamac /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Inuvik +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Inuvik[] ACE_TIME_PROGMEM = { + // -7:00 Canada M%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Inuvik[] ACE_TIME_PROGMEM = "\x02" "Inuvik"; + +const extended::Info::ZoneInfo kZoneAmerica_Inuvik ACE_TIME_PROGMEM = { + kZoneNameAmerica_Inuvik /*name*/, + 0xa42189fc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Inuvik /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Iqaluit +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Iqaluit[] ACE_TIME_PROGMEM = { + // -5:00 Canada E%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Iqaluit[] ACE_TIME_PROGMEM = "\x02" "Iqaluit"; + +const extended::Info::ZoneInfo kZoneAmerica_Iqaluit ACE_TIME_PROGMEM = { + kZoneNameAmerica_Iqaluit /*name*/, + 0x2de310bf /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Iqaluit /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Jamaica +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Jamaica[] ACE_TIME_PROGMEM = { + // -5:00 - EST + { + nullptr /*zonePolicy*/, + "EST" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Jamaica[] ACE_TIME_PROGMEM = "\x02" "Jamaica"; + +const extended::Info::ZoneInfo kZoneAmerica_Jamaica ACE_TIME_PROGMEM = { + kZoneNameAmerica_Jamaica /*name*/, + 0x565dad6c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Jamaica /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Juneau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Juneau[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Juneau[] ACE_TIME_PROGMEM = "\x02" "Juneau"; + +const extended::Info::ZoneInfo kZoneAmerica_Juneau ACE_TIME_PROGMEM = { + kZoneNameAmerica_Juneau /*name*/, + 0xa6f13e2e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Juneau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Kentucky/Louisville +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = "\x02" "Kentucky/Louisville"; + +const extended::Info::ZoneInfo kZoneAmerica_Kentucky_Louisville ACE_TIME_PROGMEM = { + kZoneNameAmerica_Kentucky_Louisville /*name*/, + 0x1a21024b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Kentucky_Louisville /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Kentucky/Monticello +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Kentucky_Monticello[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Kentucky_Monticello[] ACE_TIME_PROGMEM = "\x02" "Kentucky/Monticello"; + +const extended::Info::ZoneInfo kZoneAmerica_Kentucky_Monticello ACE_TIME_PROGMEM = { + kZoneNameAmerica_Kentucky_Monticello /*name*/, + 0xde71c439 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Kentucky_Monticello /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/La_Paz +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_La_Paz[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_La_Paz[] ACE_TIME_PROGMEM = "\x02" "La_Paz"; + +const extended::Info::ZoneInfo kZoneAmerica_La_Paz ACE_TIME_PROGMEM = { + kZoneNameAmerica_La_Paz /*name*/, + 0xaa29125d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_La_Paz /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Lima +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Lima[] ACE_TIME_PROGMEM = { + // -5:00 Peru %z + { + &kZonePolicyPeru /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Lima[] ACE_TIME_PROGMEM = "\x02" "Lima"; + +const extended::Info::ZoneInfo kZoneAmerica_Lima ACE_TIME_PROGMEM = { + kZoneNameAmerica_Lima /*name*/, + 0x980468c9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Lima /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Los_Angeles +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = { + // -8:00 US P%sT + { + &kZonePolicyUS /*zonePolicy*/, + "P%T" /*format*/, + -32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "\x02" "Los_Angeles"; + +const extended::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = { + kZoneNameAmerica_Los_Angeles /*name*/, + 0xb7f7e8f2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Los_Angeles /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Maceio +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Maceio[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Maceio[] ACE_TIME_PROGMEM = "\x02" "Maceio"; + +const extended::Info::ZoneInfo kZoneAmerica_Maceio ACE_TIME_PROGMEM = { + kZoneNameAmerica_Maceio /*name*/, + 0xac80c6d4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Maceio /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Managua +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Managua[] ACE_TIME_PROGMEM = { + // -6:00 Nic C%sT + { + &kZonePolicyNic /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Managua[] ACE_TIME_PROGMEM = "\x02" "Managua"; + +const extended::Info::ZoneInfo kZoneAmerica_Managua ACE_TIME_PROGMEM = { + kZoneNameAmerica_Managua /*name*/, + 0x3d5e7600 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Managua /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Manaus +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Manaus[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Manaus[] ACE_TIME_PROGMEM = "\x02" "Manaus"; + +const extended::Info::ZoneInfo kZoneAmerica_Manaus ACE_TIME_PROGMEM = { + kZoneNameAmerica_Manaus /*name*/, + 0xac86bf8b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Manaus /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Martinique +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Martinique[] ACE_TIME_PROGMEM = { + // -4:00 - AST + { + nullptr /*zonePolicy*/, + "AST" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Martinique[] ACE_TIME_PROGMEM = "\x02" "Martinique"; + +const extended::Info::ZoneInfo kZoneAmerica_Martinique ACE_TIME_PROGMEM = { + kZoneNameAmerica_Martinique /*name*/, + 0x551e84c5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Martinique /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Matamoros +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Matamoros[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Matamoros[] ACE_TIME_PROGMEM = "\x02" "Matamoros"; + +const extended::Info::ZoneInfo kZoneAmerica_Matamoros ACE_TIME_PROGMEM = { + kZoneNameAmerica_Matamoros /*name*/, + 0xdd1b0259 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Matamoros /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Mazatlan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Mazatlan[] ACE_TIME_PROGMEM = { + // -7:00 Mexico M%sT + { + &kZonePolicyMexico /*zonePolicy*/, + "M%T" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Mazatlan[] ACE_TIME_PROGMEM = "\x02" "Mazatlan"; + +const extended::Info::ZoneInfo kZoneAmerica_Mazatlan ACE_TIME_PROGMEM = { + kZoneNameAmerica_Mazatlan /*name*/, + 0x0532189e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Mazatlan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Menominee +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Menominee[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Menominee[] ACE_TIME_PROGMEM = "\x02" "Menominee"; + +const extended::Info::ZoneInfo kZoneAmerica_Menominee ACE_TIME_PROGMEM = { + kZoneNameAmerica_Menominee /*name*/, + 0xe0e9c583 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Menominee /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Merida +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Merida[] ACE_TIME_PROGMEM = { + // -6:00 Mexico C%sT + { + &kZonePolicyMexico /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Merida[] ACE_TIME_PROGMEM = "\x02" "Merida"; + +const extended::Info::ZoneInfo kZoneAmerica_Merida ACE_TIME_PROGMEM = { + kZoneNameAmerica_Merida /*name*/, + 0xacd172d8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Merida /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Metlakatla +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Metlakatla[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Metlakatla[] ACE_TIME_PROGMEM = "\x02" "Metlakatla"; + +const extended::Info::ZoneInfo kZoneAmerica_Metlakatla ACE_TIME_PROGMEM = { + kZoneNameAmerica_Metlakatla /*name*/, + 0x84de2686 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Metlakatla /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Mexico_City +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Mexico_City[] ACE_TIME_PROGMEM = { + // -6:00 Mexico C%sT + { + &kZonePolicyMexico /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Mexico_City[] ACE_TIME_PROGMEM = "\x02" "Mexico_City"; + +const extended::Info::ZoneInfo kZoneAmerica_Mexico_City ACE_TIME_PROGMEM = { + kZoneNameAmerica_Mexico_City /*name*/, + 0xd0d93f43 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Mexico_City /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Miquelon +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Miquelon[] ACE_TIME_PROGMEM = { + // -3:00 Canada %z + { + &kZonePolicyCanada /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Miquelon[] ACE_TIME_PROGMEM = "\x02" "Miquelon"; + +const extended::Info::ZoneInfo kZoneAmerica_Miquelon ACE_TIME_PROGMEM = { + kZoneNameAmerica_Miquelon /*name*/, + 0x59674330 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Miquelon /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Moncton +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Moncton[] ACE_TIME_PROGMEM = { + // -4:00 Canada A%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Moncton[] ACE_TIME_PROGMEM = "\x02" "Moncton"; + +const extended::Info::ZoneInfo kZoneAmerica_Moncton ACE_TIME_PROGMEM = { + kZoneNameAmerica_Moncton /*name*/, + 0x5e07fe24 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Moncton /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Monterrey +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Monterrey[] ACE_TIME_PROGMEM = { + // -6:00 Mexico C%sT + { + &kZonePolicyMexico /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Monterrey[] ACE_TIME_PROGMEM = "\x02" "Monterrey"; + +const extended::Info::ZoneInfo kZoneAmerica_Monterrey ACE_TIME_PROGMEM = { + kZoneNameAmerica_Monterrey /*name*/, + 0x269a1deb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Monterrey /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Montevideo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Montevideo[] ACE_TIME_PROGMEM = { + // -3:00 Uruguay %z + { + &kZonePolicyUruguay /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Montevideo[] ACE_TIME_PROGMEM = "\x02" "Montevideo"; + +const extended::Info::ZoneInfo kZoneAmerica_Montevideo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Montevideo /*name*/, + 0xfa214780 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Montevideo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/New_York +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = { + // -5:00 US E%sT + { + &kZonePolicyUS /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "\x02" "New_York"; + +const extended::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = { + kZoneNameAmerica_New_York /*name*/, + 0x1e2a7654 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_New_York /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Nome +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Nome[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Nome[] ACE_TIME_PROGMEM = "\x02" "Nome"; + +const extended::Info::ZoneInfo kZoneAmerica_Nome ACE_TIME_PROGMEM = { + kZoneNameAmerica_Nome /*name*/, + 0x98059b15 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Nome /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Noronha +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Noronha[] ACE_TIME_PROGMEM = { + // -2:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Noronha[] ACE_TIME_PROGMEM = "\x02" "Noronha"; + +const extended::Info::ZoneInfo kZoneAmerica_Noronha ACE_TIME_PROGMEM = { + kZoneNameAmerica_Noronha /*name*/, + 0xab5116fb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Noronha /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/North_Dakota/Beulah +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_North_Dakota_Beulah[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_North_Dakota_Beulah[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/Beulah"; + +const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_Beulah ACE_TIME_PROGMEM = { + kZoneNameAmerica_North_Dakota_Beulah /*name*/, + 0x9b52b384 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_North_Dakota_Beulah /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/North_Dakota/Center +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/Center"; + +const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_Center ACE_TIME_PROGMEM = { + kZoneNameAmerica_North_Dakota_Center /*name*/, + 0x9da42814 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_North_Dakota_Center /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/North_Dakota/New_Salem +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_North_Dakota_New_Salem[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_North_Dakota_New_Salem[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/New_Salem"; + +const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_New_Salem ACE_TIME_PROGMEM = { + kZoneNameAmerica_North_Dakota_New_Salem /*name*/, + 0x04f9958e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_North_Dakota_New_Salem /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Nuuk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Nuuk[] ACE_TIME_PROGMEM = { + // -2:00 EU %z + { + &kZonePolicyEU /*zonePolicy*/, + "" /*format*/, + -8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Nuuk[] ACE_TIME_PROGMEM = "\x02" "Nuuk"; + +const extended::Info::ZoneInfo kZoneAmerica_Nuuk ACE_TIME_PROGMEM = { + kZoneNameAmerica_Nuuk /*name*/, + 0x9805b5a9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Nuuk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Ojinaga +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Ojinaga[] ACE_TIME_PROGMEM = { + // -6:00 US C%sT + { + &kZonePolicyUS /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Ojinaga[] ACE_TIME_PROGMEM = "\x02" "Ojinaga"; + +const extended::Info::ZoneInfo kZoneAmerica_Ojinaga ACE_TIME_PROGMEM = { + kZoneNameAmerica_Ojinaga /*name*/, + 0xebfde83f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Ojinaga /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Panama +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Panama[] ACE_TIME_PROGMEM = { + // -5:00 - EST + { + nullptr /*zonePolicy*/, + "EST" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Panama[] ACE_TIME_PROGMEM = "\x02" "Panama"; + +const extended::Info::ZoneInfo kZoneAmerica_Panama ACE_TIME_PROGMEM = { + kZoneNameAmerica_Panama /*name*/, + 0xb3863854 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Panama /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Paramaribo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Paramaribo[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Paramaribo[] ACE_TIME_PROGMEM = "\x02" "Paramaribo"; + +const extended::Info::ZoneInfo kZoneAmerica_Paramaribo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Paramaribo /*name*/, + 0xb319e4c4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Paramaribo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Phoenix +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Phoenix[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Phoenix[] ACE_TIME_PROGMEM = "\x02" "Phoenix"; + +const extended::Info::ZoneInfo kZoneAmerica_Phoenix ACE_TIME_PROGMEM = { + kZoneNameAmerica_Phoenix /*name*/, + 0x34b5af01 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Phoenix /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Port-au-Prince +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = { + // -5:00 Haiti E%sT + { + &kZonePolicyHaiti /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = "\x02" "Port-au-Prince"; + +const extended::Info::ZoneInfo kZoneAmerica_Port_au_Prince ACE_TIME_PROGMEM = { + kZoneNameAmerica_Port_au_Prince /*name*/, + 0x8e4a7bdc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Port_au_Prince /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Porto_Velho +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Porto_Velho[] ACE_TIME_PROGMEM = { + // -4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Porto_Velho[] ACE_TIME_PROGMEM = "\x02" "Porto_Velho"; + +const extended::Info::ZoneInfo kZoneAmerica_Porto_Velho ACE_TIME_PROGMEM = { + kZoneNameAmerica_Porto_Velho /*name*/, + 0x6b1aac77 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Porto_Velho /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Puerto_Rico +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = { + // -4:00 - AST + { + nullptr /*zonePolicy*/, + "AST" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = "\x02" "Puerto_Rico"; + +const extended::Info::ZoneInfo kZoneAmerica_Puerto_Rico ACE_TIME_PROGMEM = { + kZoneNameAmerica_Puerto_Rico /*name*/, + 0x6752ca31 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Punta_Arenas +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Punta_Arenas[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Punta_Arenas[] ACE_TIME_PROGMEM = "\x02" "Punta_Arenas"; + +const extended::Info::ZoneInfo kZoneAmerica_Punta_Arenas ACE_TIME_PROGMEM = { + kZoneNameAmerica_Punta_Arenas /*name*/, + 0xc2c3bce7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Punta_Arenas /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Rankin_Inlet +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Rankin_Inlet[] ACE_TIME_PROGMEM = { + // -6:00 Canada C%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Rankin_Inlet[] ACE_TIME_PROGMEM = "\x02" "Rankin_Inlet"; + +const extended::Info::ZoneInfo kZoneAmerica_Rankin_Inlet ACE_TIME_PROGMEM = { + kZoneNameAmerica_Rankin_Inlet /*name*/, + 0xc8de4984 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Rankin_Inlet /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Recife +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Recife[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Recife[] ACE_TIME_PROGMEM = "\x02" "Recife"; + +const extended::Info::ZoneInfo kZoneAmerica_Recife ACE_TIME_PROGMEM = { + kZoneNameAmerica_Recife /*name*/, + 0xb8730494 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Recife /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Regina +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Regina[] ACE_TIME_PROGMEM = { + // -6:00 - CST + { + nullptr /*zonePolicy*/, + "CST" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Regina[] ACE_TIME_PROGMEM = "\x02" "Regina"; + +const extended::Info::ZoneInfo kZoneAmerica_Regina ACE_TIME_PROGMEM = { + kZoneNameAmerica_Regina /*name*/, + 0xb875371c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Regina /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Resolute +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Resolute[] ACE_TIME_PROGMEM = { + // -6:00 Canada C%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Resolute[] ACE_TIME_PROGMEM = "\x02" "Resolute"; + +const extended::Info::ZoneInfo kZoneAmerica_Resolute ACE_TIME_PROGMEM = { + kZoneNameAmerica_Resolute /*name*/, + 0xc7093459 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Resolute /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Rio_Branco +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Rio_Branco[] ACE_TIME_PROGMEM = { + // -5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Rio_Branco[] ACE_TIME_PROGMEM = "\x02" "Rio_Branco"; + +const extended::Info::ZoneInfo kZoneAmerica_Rio_Branco ACE_TIME_PROGMEM = { + kZoneNameAmerica_Rio_Branco /*name*/, + 0x9d352764 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Rio_Branco /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Santarem +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Santarem[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Santarem[] ACE_TIME_PROGMEM = "\x02" "Santarem"; + +const extended::Info::ZoneInfo kZoneAmerica_Santarem ACE_TIME_PROGMEM = { + kZoneNameAmerica_Santarem /*name*/, + 0x740caec1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Santarem /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Santiago +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Santiago[] ACE_TIME_PROGMEM = { + // -4:00 Chile %z + { + &kZonePolicyChile /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Santiago[] ACE_TIME_PROGMEM = "\x02" "Santiago"; + +const extended::Info::ZoneInfo kZoneAmerica_Santiago ACE_TIME_PROGMEM = { + kZoneNameAmerica_Santiago /*name*/, + 0x7410c9bc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Santiago /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Santo_Domingo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Santo_Domingo[] ACE_TIME_PROGMEM = { + // -4:00 - AST + { + nullptr /*zonePolicy*/, + "AST" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Santo_Domingo[] ACE_TIME_PROGMEM = "\x02" "Santo_Domingo"; + +const extended::Info::ZoneInfo kZoneAmerica_Santo_Domingo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Santo_Domingo /*name*/, + 0x75a0d177 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Santo_Domingo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Sao_Paulo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = { + // -3:00 Brazil %z + { + &kZonePolicyBrazil /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = "\x02" "Sao_Paulo"; + +const extended::Info::ZoneInfo kZoneAmerica_Sao_Paulo ACE_TIME_PROGMEM = { + kZoneNameAmerica_Sao_Paulo /*name*/, + 0x1063bfc9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Sao_Paulo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Scoresbysund +// Eras: 2 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Scoresbysund[] ACE_TIME_PROGMEM = { + // -1:00 EU %z 2024 Mar 31 + { + &kZonePolicyEU /*zonePolicy*/, + "" /*format*/, + -4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + -76 /*untilYearTiny*/, + 3 /*untilMonth*/, + 31 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + // -2:00 EU %z + { + &kZonePolicyEU /*zonePolicy*/, + "" /*format*/, + -8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Scoresbysund[] ACE_TIME_PROGMEM = "\x02" "Scoresbysund"; + +const extended::Info::ZoneInfo kZoneAmerica_Scoresbysund ACE_TIME_PROGMEM = { + kZoneNameAmerica_Scoresbysund /*name*/, + 0x123f8d2a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 2 /*numEras*/, + kZoneEraAmerica_Scoresbysund /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Sitka +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Sitka[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Sitka[] ACE_TIME_PROGMEM = "\x02" "Sitka"; + +const extended::Info::ZoneInfo kZoneAmerica_Sitka ACE_TIME_PROGMEM = { + kZoneNameAmerica_Sitka /*name*/, + 0x99104ce2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Sitka /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/St_Johns +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_St_Johns[] ACE_TIME_PROGMEM = { + // -3:30 Canada N%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "N%T" /*format*/, + -14 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_St_Johns[] ACE_TIME_PROGMEM = "\x02" "St_Johns"; + +const extended::Info::ZoneInfo kZoneAmerica_St_Johns ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Johns /*name*/, + 0x04b14e6e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_St_Johns /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Swift_Current +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Swift_Current[] ACE_TIME_PROGMEM = { + // -6:00 - CST + { + nullptr /*zonePolicy*/, + "CST" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Swift_Current[] ACE_TIME_PROGMEM = "\x02" "Swift_Current"; + +const extended::Info::ZoneInfo kZoneAmerica_Swift_Current ACE_TIME_PROGMEM = { + kZoneNameAmerica_Swift_Current /*name*/, + 0xdef98e55 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Swift_Current /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Tegucigalpa +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = { + // -6:00 Hond C%sT + { + &kZonePolicyHond /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = "\x02" "Tegucigalpa"; + +const extended::Info::ZoneInfo kZoneAmerica_Tegucigalpa ACE_TIME_PROGMEM = { + kZoneNameAmerica_Tegucigalpa /*name*/, + 0xbfd6fd4c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Tegucigalpa /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Thule +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Thule[] ACE_TIME_PROGMEM = { + // -4:00 Thule A%sT + { + &kZonePolicyThule /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Thule[] ACE_TIME_PROGMEM = "\x02" "Thule"; + +const extended::Info::ZoneInfo kZoneAmerica_Thule ACE_TIME_PROGMEM = { + kZoneNameAmerica_Thule /*name*/, + 0x9921dd68 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Thule /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Tijuana +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Tijuana[] ACE_TIME_PROGMEM = { + // -8:00 US P%sT + { + &kZonePolicyUS /*zonePolicy*/, + "P%T" /*format*/, + -32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Tijuana[] ACE_TIME_PROGMEM = "\x02" "Tijuana"; + +const extended::Info::ZoneInfo kZoneAmerica_Tijuana ACE_TIME_PROGMEM = { + kZoneNameAmerica_Tijuana /*name*/, + 0x6aa1df72 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Tijuana /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Toronto +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = { + // -5:00 Canada E%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "E%T" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "\x02" "Toronto"; + +const extended::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = { + kZoneNameAmerica_Toronto /*name*/, + 0x792e851b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Vancouver +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = { + // -8:00 Canada P%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "P%T" /*format*/, + -32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "\x02" "Vancouver"; + +const extended::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = { + kZoneNameAmerica_Vancouver /*name*/, + 0x2c6f6b1f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Vancouver /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Whitehorse +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Whitehorse[] ACE_TIME_PROGMEM = { + // -7:00 - MST + { + nullptr /*zonePolicy*/, + "MST" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Whitehorse[] ACE_TIME_PROGMEM = "\x02" "Whitehorse"; + +const extended::Info::ZoneInfo kZoneAmerica_Whitehorse ACE_TIME_PROGMEM = { + kZoneNameAmerica_Whitehorse /*name*/, + 0x54e0e3e8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Whitehorse /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Winnipeg +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = { + // -6:00 Canada C%sT + { + &kZonePolicyCanada /*zonePolicy*/, + "C%T" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "\x02" "Winnipeg"; + +const extended::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = { + kZoneNameAmerica_Winnipeg /*name*/, + 0x8c7dafc7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Winnipeg /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: America/Yakutat +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAmerica_Yakutat[] ACE_TIME_PROGMEM = { + // -9:00 US AK%sT + { + &kZonePolicyUS /*zonePolicy*/, + "AK%T" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAmerica_Yakutat[] ACE_TIME_PROGMEM = "\x02" "Yakutat"; + +const extended::Info::ZoneInfo kZoneAmerica_Yakutat ACE_TIME_PROGMEM = { + kZoneNameAmerica_Yakutat /*name*/, + 0xd8ee31e9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Yakutat /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Casey +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAntarctica_Casey[] ACE_TIME_PROGMEM = { + // 8:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Casey[] ACE_TIME_PROGMEM = "\x03" "Casey"; + +const extended::Info::ZoneInfo kZoneAntarctica_Casey ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Casey /*name*/, + 0xe2022583 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Casey /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Davis +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAntarctica_Davis[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Davis[] ACE_TIME_PROGMEM = "\x03" "Davis"; + +const extended::Info::ZoneInfo kZoneAntarctica_Davis ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Davis /*name*/, + 0xe2144b45 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Davis /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Macquarie +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAntarctica_Macquarie[] ACE_TIME_PROGMEM = { + // 10:00 AT AE%sT + { + &kZonePolicyAT /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Macquarie[] ACE_TIME_PROGMEM = "\x03" "Macquarie"; + +const extended::Info::ZoneInfo kZoneAntarctica_Macquarie ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Macquarie /*name*/, + 0x92f47626 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Macquarie /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Mawson +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAntarctica_Mawson[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Mawson[] ACE_TIME_PROGMEM = "\x03" "Mawson"; + +const extended::Info::ZoneInfo kZoneAntarctica_Mawson ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Mawson /*name*/, + 0x399cd863 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Mawson /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Palmer +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAntarctica_Palmer[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Palmer[] ACE_TIME_PROGMEM = "\x03" "Palmer"; + +const extended::Info::ZoneInfo kZoneAntarctica_Palmer ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Palmer /*name*/, + 0x40962f4f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Palmer /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Rothera +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAntarctica_Rothera[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Rothera[] ACE_TIME_PROGMEM = "\x03" "Rothera"; + +const extended::Info::ZoneInfo kZoneAntarctica_Rothera ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Rothera /*name*/, + 0x0e86d203 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Rothera /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Troll +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAntarctica_Troll[] ACE_TIME_PROGMEM = { + // 0:00 Troll %s + { + &kZonePolicyTroll /*zonePolicy*/, + "%" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Troll[] ACE_TIME_PROGMEM = "\x03" "Troll"; + +const extended::Info::ZoneInfo kZoneAntarctica_Troll ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Troll /*name*/, + 0xe33f085b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Troll /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Antarctica/Vostok +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAntarctica_Vostok[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAntarctica_Vostok[] ACE_TIME_PROGMEM = "\x03" "Vostok"; + +const extended::Info::ZoneInfo kZoneAntarctica_Vostok ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Vostok /*name*/, + 0x4f966fd4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAntarctica_Vostok /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Almaty +// Eras: 2 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Almaty[] ACE_TIME_PROGMEM = { + // 6:00 - %z 2024 Mar 1 0:00 + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + -76 /*untilYearTiny*/, + 3 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Almaty[] ACE_TIME_PROGMEM = "\x05" "Almaty"; + +const extended::Info::ZoneInfo kZoneAsia_Almaty ACE_TIME_PROGMEM = { + kZoneNameAsia_Almaty /*name*/, + 0xa61f41fa /*zoneId*/, + &kZoneContext /*zoneContext*/, + 2 /*numEras*/, + kZoneEraAsia_Almaty /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Amman +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Amman[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Amman[] ACE_TIME_PROGMEM = "\x05" "Amman"; + +const extended::Info::ZoneInfo kZoneAsia_Amman ACE_TIME_PROGMEM = { + kZoneNameAsia_Amman /*name*/, + 0x148d21bc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Amman /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Anadyr +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Anadyr[] ACE_TIME_PROGMEM = { + // 12:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Anadyr[] ACE_TIME_PROGMEM = "\x05" "Anadyr"; + +const extended::Info::ZoneInfo kZoneAsia_Anadyr ACE_TIME_PROGMEM = { + kZoneNameAsia_Anadyr /*name*/, + 0xa63cebd1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Anadyr /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Aqtau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Aqtau[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Aqtau[] ACE_TIME_PROGMEM = "\x05" "Aqtau"; + +const extended::Info::ZoneInfo kZoneAsia_Aqtau ACE_TIME_PROGMEM = { + kZoneNameAsia_Aqtau /*name*/, + 0x148f710e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Aqtau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Aqtobe +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Aqtobe[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Aqtobe[] ACE_TIME_PROGMEM = "\x05" "Aqtobe"; + +const extended::Info::ZoneInfo kZoneAsia_Aqtobe ACE_TIME_PROGMEM = { + kZoneNameAsia_Aqtobe /*name*/, + 0xa67dcc4e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Aqtobe /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Ashgabat +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Ashgabat[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Ashgabat[] ACE_TIME_PROGMEM = "\x05" "Ashgabat"; + +const extended::Info::ZoneInfo kZoneAsia_Ashgabat ACE_TIME_PROGMEM = { + kZoneNameAsia_Ashgabat /*name*/, + 0xba87598d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ashgabat /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Atyrau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Atyrau[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Atyrau[] ACE_TIME_PROGMEM = "\x05" "Atyrau"; + +const extended::Info::ZoneInfo kZoneAsia_Atyrau ACE_TIME_PROGMEM = { + kZoneNameAsia_Atyrau /*name*/, + 0xa6b6e068 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Atyrau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Baghdad +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Baghdad[] ACE_TIME_PROGMEM = { + // 3:00 Iraq %z + { + &kZonePolicyIraq /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Baghdad[] ACE_TIME_PROGMEM = "\x05" "Baghdad"; + +const extended::Info::ZoneInfo kZoneAsia_Baghdad ACE_TIME_PROGMEM = { + kZoneNameAsia_Baghdad /*name*/, + 0x9ceffbed /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Baghdad /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Baku +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Baku[] ACE_TIME_PROGMEM = { + // 4:00 Azer %z + { + &kZonePolicyAzer /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Baku[] ACE_TIME_PROGMEM = "\x05" "Baku"; + +const extended::Info::ZoneInfo kZoneAsia_Baku ACE_TIME_PROGMEM = { + kZoneNameAsia_Baku /*name*/, + 0x1fa788b5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Baku /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Bangkok +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Bangkok[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Bangkok[] ACE_TIME_PROGMEM = "\x05" "Bangkok"; + +const extended::Info::ZoneInfo kZoneAsia_Bangkok ACE_TIME_PROGMEM = { + kZoneNameAsia_Bangkok /*name*/, + 0x9d6e3aaf /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Bangkok /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Barnaul +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Barnaul[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Barnaul[] ACE_TIME_PROGMEM = "\x05" "Barnaul"; + +const extended::Info::ZoneInfo kZoneAsia_Barnaul ACE_TIME_PROGMEM = { + kZoneNameAsia_Barnaul /*name*/, + 0x9dba4997 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Barnaul /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Beirut +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Beirut[] ACE_TIME_PROGMEM = { + // 2:00 Lebanon EE%sT + { + &kZonePolicyLebanon /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Beirut[] ACE_TIME_PROGMEM = "\x05" "Beirut"; + +const extended::Info::ZoneInfo kZoneAsia_Beirut ACE_TIME_PROGMEM = { + kZoneNameAsia_Beirut /*name*/, + 0xa7f3d5fd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Beirut /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Bishkek +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Bishkek[] ACE_TIME_PROGMEM = { + // 6:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Bishkek[] ACE_TIME_PROGMEM = "\x05" "Bishkek"; + +const extended::Info::ZoneInfo kZoneAsia_Bishkek ACE_TIME_PROGMEM = { + kZoneNameAsia_Bishkek /*name*/, + 0xb0728553 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Bishkek /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Chita +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Chita[] ACE_TIME_PROGMEM = { + // 9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Chita[] ACE_TIME_PROGMEM = "\x05" "Chita"; + +const extended::Info::ZoneInfo kZoneAsia_Chita ACE_TIME_PROGMEM = { + kZoneNameAsia_Chita /*name*/, + 0x14ae863b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Chita /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Colombo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Colombo[] ACE_TIME_PROGMEM = { + // 5:30 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 22 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Colombo[] ACE_TIME_PROGMEM = "\x05" "Colombo"; + +const extended::Info::ZoneInfo kZoneAsia_Colombo ACE_TIME_PROGMEM = { + kZoneNameAsia_Colombo /*name*/, + 0x0af0e91d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Colombo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Damascus +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Damascus[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Damascus[] ACE_TIME_PROGMEM = "\x05" "Damascus"; + +const extended::Info::ZoneInfo kZoneAsia_Damascus ACE_TIME_PROGMEM = { + kZoneNameAsia_Damascus /*name*/, + 0x20fbb063 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Damascus /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Dhaka +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Dhaka[] ACE_TIME_PROGMEM = { + // 6:00 Dhaka %z + { + &kZonePolicyDhaka /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Dhaka[] ACE_TIME_PROGMEM = "\x05" "Dhaka"; + +const extended::Info::ZoneInfo kZoneAsia_Dhaka ACE_TIME_PROGMEM = { + kZoneNameAsia_Dhaka /*name*/, + 0x14c07b8b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dhaka /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Dili +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Dili[] ACE_TIME_PROGMEM = { + // 9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Dili[] ACE_TIME_PROGMEM = "\x05" "Dili"; + +const extended::Info::ZoneInfo kZoneAsia_Dili ACE_TIME_PROGMEM = { + kZoneNameAsia_Dili /*name*/, + 0x1fa8c394 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dili /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Dubai +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Dubai[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Dubai[] ACE_TIME_PROGMEM = "\x05" "Dubai"; + +const extended::Info::ZoneInfo kZoneAsia_Dubai ACE_TIME_PROGMEM = { + kZoneNameAsia_Dubai /*name*/, + 0x14c79f77 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dubai /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Dushanbe +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Dushanbe[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Dushanbe[] ACE_TIME_PROGMEM = "\x05" "Dushanbe"; + +const extended::Info::ZoneInfo kZoneAsia_Dushanbe ACE_TIME_PROGMEM = { + kZoneNameAsia_Dushanbe /*name*/, + 0x32fc5c3c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dushanbe /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Famagusta +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Famagusta[] ACE_TIME_PROGMEM = { + // 2:00 EUAsia EE%sT + { + &kZonePolicyEUAsia /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Famagusta[] ACE_TIME_PROGMEM = "\x05" "Famagusta"; + +const extended::Info::ZoneInfo kZoneAsia_Famagusta ACE_TIME_PROGMEM = { + kZoneNameAsia_Famagusta /*name*/, + 0x289b4f8b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Famagusta /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Gaza +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Gaza[] ACE_TIME_PROGMEM = { + // 2:00 Palestine EE%sT + { + &kZonePolicyPalestine /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Gaza[] ACE_TIME_PROGMEM = "\x05" "Gaza"; + +const extended::Info::ZoneInfo kZoneAsia_Gaza ACE_TIME_PROGMEM = { + kZoneNameAsia_Gaza /*name*/, + 0x1faa4875 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Gaza /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Hebron +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Hebron[] ACE_TIME_PROGMEM = { + // 2:00 Palestine EE%sT + { + &kZonePolicyPalestine /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Hebron[] ACE_TIME_PROGMEM = "\x05" "Hebron"; + +const extended::Info::ZoneInfo kZoneAsia_Hebron ACE_TIME_PROGMEM = { + kZoneNameAsia_Hebron /*name*/, + 0xb5eef250 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Hebron /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Ho_Chi_Minh +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = "\x05" "Ho_Chi_Minh"; + +const extended::Info::ZoneInfo kZoneAsia_Ho_Chi_Minh ACE_TIME_PROGMEM = { + kZoneNameAsia_Ho_Chi_Minh /*name*/, + 0x20f2d127 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ho_Chi_Minh /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Hong_Kong +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Hong_Kong[] ACE_TIME_PROGMEM = { + // 8:00 HK HK%sT + { + &kZonePolicyHK /*zonePolicy*/, + "HK%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Hong_Kong[] ACE_TIME_PROGMEM = "\x05" "Hong_Kong"; + +const extended::Info::ZoneInfo kZoneAsia_Hong_Kong ACE_TIME_PROGMEM = { + kZoneNameAsia_Hong_Kong /*name*/, + 0x577f28ac /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Hong_Kong /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Hovd +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Hovd[] ACE_TIME_PROGMEM = { + // 7:00 Mongol %z + { + &kZonePolicyMongol /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Hovd[] ACE_TIME_PROGMEM = "\x05" "Hovd"; + +const extended::Info::ZoneInfo kZoneAsia_Hovd ACE_TIME_PROGMEM = { + kZoneNameAsia_Hovd /*name*/, + 0x1fab0fe3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Hovd /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Irkutsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Irkutsk[] ACE_TIME_PROGMEM = { + // 8:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Irkutsk[] ACE_TIME_PROGMEM = "\x05" "Irkutsk"; + +const extended::Info::ZoneInfo kZoneAsia_Irkutsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Irkutsk /*name*/, + 0xdfbf213f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Irkutsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Jakarta +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Jakarta[] ACE_TIME_PROGMEM = { + // 7:00 - WIB + { + nullptr /*zonePolicy*/, + "WIB" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Jakarta[] ACE_TIME_PROGMEM = "\x05" "Jakarta"; + +const extended::Info::ZoneInfo kZoneAsia_Jakarta ACE_TIME_PROGMEM = { + kZoneNameAsia_Jakarta /*name*/, + 0x0506ab50 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Jakarta /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Jayapura +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Jayapura[] ACE_TIME_PROGMEM = { + // 9:00 - WIT + { + nullptr /*zonePolicy*/, + "WIT" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Jayapura[] ACE_TIME_PROGMEM = "\x05" "Jayapura"; + +const extended::Info::ZoneInfo kZoneAsia_Jayapura ACE_TIME_PROGMEM = { + kZoneNameAsia_Jayapura /*name*/, + 0xc6833c2f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Jayapura /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Jerusalem +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Jerusalem[] ACE_TIME_PROGMEM = { + // 2:00 Zion I%sT + { + &kZonePolicyZion /*zonePolicy*/, + "I%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Jerusalem[] ACE_TIME_PROGMEM = "\x05" "Jerusalem"; + +const extended::Info::ZoneInfo kZoneAsia_Jerusalem ACE_TIME_PROGMEM = { + kZoneNameAsia_Jerusalem /*name*/, + 0x5becd23a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Jerusalem /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Kabul +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Kabul[] ACE_TIME_PROGMEM = { + // 4:30 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 18 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Kabul[] ACE_TIME_PROGMEM = "\x05" "Kabul"; + +const extended::Info::ZoneInfo kZoneAsia_Kabul ACE_TIME_PROGMEM = { + kZoneNameAsia_Kabul /*name*/, + 0x153b5601 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kabul /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Kamchatka +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Kamchatka[] ACE_TIME_PROGMEM = { + // 12:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Kamchatka[] ACE_TIME_PROGMEM = "\x05" "Kamchatka"; + +const extended::Info::ZoneInfo kZoneAsia_Kamchatka ACE_TIME_PROGMEM = { + kZoneNameAsia_Kamchatka /*name*/, + 0x73baf9d7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kamchatka /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Karachi +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Karachi[] ACE_TIME_PROGMEM = { + // 5:00 Pakistan PK%sT + { + &kZonePolicyPakistan /*zonePolicy*/, + "PK%T" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Karachi[] ACE_TIME_PROGMEM = "\x05" "Karachi"; + +const extended::Info::ZoneInfo kZoneAsia_Karachi ACE_TIME_PROGMEM = { + kZoneNameAsia_Karachi /*name*/, + 0x527f5245 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Karachi /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Kathmandu +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Kathmandu[] ACE_TIME_PROGMEM = { + // 5:45 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 23 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Kathmandu[] ACE_TIME_PROGMEM = "\x05" "Kathmandu"; + +const extended::Info::ZoneInfo kZoneAsia_Kathmandu ACE_TIME_PROGMEM = { + kZoneNameAsia_Kathmandu /*name*/, + 0x9a96ce6f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kathmandu /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Khandyga +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Khandyga[] ACE_TIME_PROGMEM = { + // 9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Khandyga[] ACE_TIME_PROGMEM = "\x05" "Khandyga"; + +const extended::Info::ZoneInfo kZoneAsia_Khandyga ACE_TIME_PROGMEM = { + kZoneNameAsia_Khandyga /*name*/, + 0x9685a4d9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Khandyga /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Kolkata +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Kolkata[] ACE_TIME_PROGMEM = { + // 5:30 - IST + { + nullptr /*zonePolicy*/, + "IST" /*format*/, + 22 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Kolkata[] ACE_TIME_PROGMEM = "\x05" "Kolkata"; + +const extended::Info::ZoneInfo kZoneAsia_Kolkata ACE_TIME_PROGMEM = { + kZoneNameAsia_Kolkata /*name*/, + 0x72c06cd9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kolkata /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Krasnoyarsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Krasnoyarsk[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Krasnoyarsk[] ACE_TIME_PROGMEM = "\x05" "Krasnoyarsk"; + +const extended::Info::ZoneInfo kZoneAsia_Krasnoyarsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Krasnoyarsk /*name*/, + 0xd0376c6a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Krasnoyarsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Kuching +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Kuching[] ACE_TIME_PROGMEM = { + // 8:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Kuching[] ACE_TIME_PROGMEM = "\x05" "Kuching"; + +const extended::Info::ZoneInfo kZoneAsia_Kuching ACE_TIME_PROGMEM = { + kZoneNameAsia_Kuching /*name*/, + 0x801b003b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kuching /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Macau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Macau[] ACE_TIME_PROGMEM = { + // 8:00 Macau C%sT + { + &kZonePolicyMacau /*zonePolicy*/, + "C%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Macau[] ACE_TIME_PROGMEM = "\x05" "Macau"; + +const extended::Info::ZoneInfo kZoneAsia_Macau ACE_TIME_PROGMEM = { + kZoneNameAsia_Macau /*name*/, + 0x155f88b9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Macau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Magadan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Magadan[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Magadan[] ACE_TIME_PROGMEM = "\x05" "Magadan"; + +const extended::Info::ZoneInfo kZoneAsia_Magadan ACE_TIME_PROGMEM = { + kZoneNameAsia_Magadan /*name*/, + 0xebacc19b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Magadan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Makassar +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Makassar[] ACE_TIME_PROGMEM = { + // 8:00 - WITA + { + nullptr /*zonePolicy*/, + "WITA" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Makassar[] ACE_TIME_PROGMEM = "\x05" "Makassar"; + +const extended::Info::ZoneInfo kZoneAsia_Makassar ACE_TIME_PROGMEM = { + kZoneNameAsia_Makassar /*name*/, + 0x6aa21c85 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Makassar /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Manila +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Manila[] ACE_TIME_PROGMEM = { + // 8:00 Phil P%sT + { + &kZonePolicyPhil /*zonePolicy*/, + "P%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Manila[] ACE_TIME_PROGMEM = "\x05" "Manila"; + +const extended::Info::ZoneInfo kZoneAsia_Manila ACE_TIME_PROGMEM = { + kZoneNameAsia_Manila /*name*/, + 0xc156c944 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Manila /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Nicosia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Nicosia[] ACE_TIME_PROGMEM = { + // 2:00 EUAsia EE%sT + { + &kZonePolicyEUAsia /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Nicosia[] ACE_TIME_PROGMEM = "\x05" "Nicosia"; + +const extended::Info::ZoneInfo kZoneAsia_Nicosia ACE_TIME_PROGMEM = { + kZoneNameAsia_Nicosia /*name*/, + 0x4b0fcf78 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Nicosia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Novokuznetsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Novokuznetsk[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Novokuznetsk[] ACE_TIME_PROGMEM = "\x05" "Novokuznetsk"; + +const extended::Info::ZoneInfo kZoneAsia_Novokuznetsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Novokuznetsk /*name*/, + 0x69264f93 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Novokuznetsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Novosibirsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Novosibirsk[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Novosibirsk[] ACE_TIME_PROGMEM = "\x05" "Novosibirsk"; + +const extended::Info::ZoneInfo kZoneAsia_Novosibirsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Novosibirsk /*name*/, + 0xa2a435cb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Novosibirsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Omsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Omsk[] ACE_TIME_PROGMEM = { + // 6:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Omsk[] ACE_TIME_PROGMEM = "\x05" "Omsk"; + +const extended::Info::ZoneInfo kZoneAsia_Omsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Omsk /*name*/, + 0x1faeddac /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Omsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Oral +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Oral[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Oral[] ACE_TIME_PROGMEM = "\x05" "Oral"; + +const extended::Info::ZoneInfo kZoneAsia_Oral ACE_TIME_PROGMEM = { + kZoneNameAsia_Oral /*name*/, + 0x1faef0a0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Oral /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Pontianak +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Pontianak[] ACE_TIME_PROGMEM = { + // 7:00 - WIB + { + nullptr /*zonePolicy*/, + "WIB" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Pontianak[] ACE_TIME_PROGMEM = "\x05" "Pontianak"; + +const extended::Info::ZoneInfo kZoneAsia_Pontianak ACE_TIME_PROGMEM = { + kZoneNameAsia_Pontianak /*name*/, + 0x1a76c057 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Pontianak /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Pyongyang +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Pyongyang[] ACE_TIME_PROGMEM = { + // 9:00 - KST + { + nullptr /*zonePolicy*/, + "KST" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Pyongyang[] ACE_TIME_PROGMEM = "\x05" "Pyongyang"; + +const extended::Info::ZoneInfo kZoneAsia_Pyongyang ACE_TIME_PROGMEM = { + kZoneNameAsia_Pyongyang /*name*/, + 0x93ed1c8e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Pyongyang /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Qatar +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Qatar[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Qatar[] ACE_TIME_PROGMEM = "\x05" "Qatar"; + +const extended::Info::ZoneInfo kZoneAsia_Qatar ACE_TIME_PROGMEM = { + kZoneNameAsia_Qatar /*name*/, + 0x15a8330b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Qatar /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Qostanay +// Eras: 2 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Qostanay[] ACE_TIME_PROGMEM = { + // 6:00 - %z 2024 Mar 1 0:00 + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + -76 /*untilYearTiny*/, + 3 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Qostanay[] ACE_TIME_PROGMEM = "\x05" "Qostanay"; + +const extended::Info::ZoneInfo kZoneAsia_Qostanay ACE_TIME_PROGMEM = { + kZoneNameAsia_Qostanay /*name*/, + 0x654fe522 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 2 /*numEras*/, + kZoneEraAsia_Qostanay /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Qyzylorda +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Qyzylorda[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Qyzylorda[] ACE_TIME_PROGMEM = "\x05" "Qyzylorda"; + +const extended::Info::ZoneInfo kZoneAsia_Qyzylorda ACE_TIME_PROGMEM = { + kZoneNameAsia_Qyzylorda /*name*/, + 0x71282e81 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Qyzylorda /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Riyadh +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Riyadh[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Riyadh[] ACE_TIME_PROGMEM = "\x05" "Riyadh"; + +const extended::Info::ZoneInfo kZoneAsia_Riyadh ACE_TIME_PROGMEM = { + kZoneNameAsia_Riyadh /*name*/, + 0xcd973d93 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Riyadh /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Sakhalin +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Sakhalin[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Sakhalin[] ACE_TIME_PROGMEM = "\x05" "Sakhalin"; + +const extended::Info::ZoneInfo kZoneAsia_Sakhalin ACE_TIME_PROGMEM = { + kZoneNameAsia_Sakhalin /*name*/, + 0xf4a1c9bd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Sakhalin /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Samarkand +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Samarkand[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Samarkand[] ACE_TIME_PROGMEM = "\x05" "Samarkand"; + +const extended::Info::ZoneInfo kZoneAsia_Samarkand ACE_TIME_PROGMEM = { + kZoneNameAsia_Samarkand /*name*/, + 0x13ae5104 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Samarkand /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Seoul +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Seoul[] ACE_TIME_PROGMEM = { + // 9:00 ROK K%sT + { + &kZonePolicyROK /*zonePolicy*/, + "K%T" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Seoul[] ACE_TIME_PROGMEM = "\x05" "Seoul"; + +const extended::Info::ZoneInfo kZoneAsia_Seoul ACE_TIME_PROGMEM = { + kZoneNameAsia_Seoul /*name*/, + 0x15ce82da /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Seoul /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Shanghai +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Shanghai[] ACE_TIME_PROGMEM = { + // 8:00 PRC C%sT + { + &kZonePolicyPRC /*zonePolicy*/, + "C%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Shanghai[] ACE_TIME_PROGMEM = "\x05" "Shanghai"; + +const extended::Info::ZoneInfo kZoneAsia_Shanghai ACE_TIME_PROGMEM = { + kZoneNameAsia_Shanghai /*name*/, + 0xf895a7f5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Shanghai /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Singapore +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Singapore[] ACE_TIME_PROGMEM = { + // 8:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Singapore[] ACE_TIME_PROGMEM = "\x05" "Singapore"; + +const extended::Info::ZoneInfo kZoneAsia_Singapore ACE_TIME_PROGMEM = { + kZoneNameAsia_Singapore /*name*/, + 0xcf8581fa /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Singapore /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Srednekolymsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Srednekolymsk[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Srednekolymsk[] ACE_TIME_PROGMEM = "\x05" "Srednekolymsk"; + +const extended::Info::ZoneInfo kZoneAsia_Srednekolymsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Srednekolymsk /*name*/, + 0xbf8e337d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Srednekolymsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Taipei +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Taipei[] ACE_TIME_PROGMEM = { + // 8:00 Taiwan C%sT + { + &kZonePolicyTaiwan /*zonePolicy*/, + "C%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Taipei[] ACE_TIME_PROGMEM = "\x05" "Taipei"; + +const extended::Info::ZoneInfo kZoneAsia_Taipei ACE_TIME_PROGMEM = { + kZoneNameAsia_Taipei /*name*/, + 0xd1a844ae /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Taipei /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Tashkent +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Tashkent[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Tashkent[] ACE_TIME_PROGMEM = "\x05" "Tashkent"; + +const extended::Info::ZoneInfo kZoneAsia_Tashkent ACE_TIME_PROGMEM = { + kZoneNameAsia_Tashkent /*name*/, + 0xf3924254 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tashkent /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Tbilisi +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Tbilisi[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Tbilisi[] ACE_TIME_PROGMEM = "\x05" "Tbilisi"; + +const extended::Info::ZoneInfo kZoneAsia_Tbilisi ACE_TIME_PROGMEM = { + kZoneNameAsia_Tbilisi /*name*/, + 0x0903e442 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tbilisi /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Tehran +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Tehran[] ACE_TIME_PROGMEM = { + // 3:30 Iran %z + { + &kZonePolicyIran /*zonePolicy*/, + "" /*format*/, + 14 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Tehran[] ACE_TIME_PROGMEM = "\x05" "Tehran"; + +const extended::Info::ZoneInfo kZoneAsia_Tehran ACE_TIME_PROGMEM = { + kZoneNameAsia_Tehran /*name*/, + 0xd1f02254 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tehran /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Thimphu +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Thimphu[] ACE_TIME_PROGMEM = { + // 6:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Thimphu[] ACE_TIME_PROGMEM = "\x05" "Thimphu"; + +const extended::Info::ZoneInfo kZoneAsia_Thimphu ACE_TIME_PROGMEM = { + kZoneNameAsia_Thimphu /*name*/, + 0x170380d1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Thimphu /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Tokyo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Tokyo[] ACE_TIME_PROGMEM = { + // 9:00 Japan J%sT + { + &kZonePolicyJapan /*zonePolicy*/, + "J%T" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Tokyo[] ACE_TIME_PROGMEM = "\x05" "Tokyo"; + +const extended::Info::ZoneInfo kZoneAsia_Tokyo ACE_TIME_PROGMEM = { + kZoneNameAsia_Tokyo /*name*/, + 0x15e606a8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tokyo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Tomsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Tomsk[] ACE_TIME_PROGMEM = { + // 7:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Tomsk[] ACE_TIME_PROGMEM = "\x05" "Tomsk"; + +const extended::Info::ZoneInfo kZoneAsia_Tomsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Tomsk /*name*/, + 0x15e60e60 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tomsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Ulaanbaatar +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = { + // 8:00 Mongol %z + { + &kZonePolicyMongol /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = "\x05" "Ulaanbaatar"; + +const extended::Info::ZoneInfo kZoneAsia_Ulaanbaatar ACE_TIME_PROGMEM = { + kZoneNameAsia_Ulaanbaatar /*name*/, + 0x30f0cc4e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ulaanbaatar /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Urumqi +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Urumqi[] ACE_TIME_PROGMEM = { + // 6:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Urumqi[] ACE_TIME_PROGMEM = "\x05" "Urumqi"; + +const extended::Info::ZoneInfo kZoneAsia_Urumqi ACE_TIME_PROGMEM = { + kZoneNameAsia_Urumqi /*name*/, + 0xd5379735 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Urumqi /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Ust-Nera +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Ust_Nera[] ACE_TIME_PROGMEM = { + // 10:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Ust_Nera[] ACE_TIME_PROGMEM = "\x05" "Ust-Nera"; + +const extended::Info::ZoneInfo kZoneAsia_Ust_Nera ACE_TIME_PROGMEM = { + kZoneNameAsia_Ust_Nera /*name*/, + 0x4785f921 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ust_Nera /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Vladivostok +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Vladivostok[] ACE_TIME_PROGMEM = { + // 10:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Vladivostok[] ACE_TIME_PROGMEM = "\x05" "Vladivostok"; + +const extended::Info::ZoneInfo kZoneAsia_Vladivostok ACE_TIME_PROGMEM = { + kZoneNameAsia_Vladivostok /*name*/, + 0x29de34a8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Vladivostok /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Yakutsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Yakutsk[] ACE_TIME_PROGMEM = { + // 9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Yakutsk[] ACE_TIME_PROGMEM = "\x05" "Yakutsk"; + +const extended::Info::ZoneInfo kZoneAsia_Yakutsk ACE_TIME_PROGMEM = { + kZoneNameAsia_Yakutsk /*name*/, + 0x87bb3a9e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yakutsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Yangon +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Yangon[] ACE_TIME_PROGMEM = { + // 6:30 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 26 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Yangon[] ACE_TIME_PROGMEM = "\x05" "Yangon"; + +const extended::Info::ZoneInfo kZoneAsia_Yangon ACE_TIME_PROGMEM = { + kZoneNameAsia_Yangon /*name*/, + 0xdd54a8be /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yangon /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Yekaterinburg +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Yekaterinburg[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Yekaterinburg[] ACE_TIME_PROGMEM = "\x05" "Yekaterinburg"; + +const extended::Info::ZoneInfo kZoneAsia_Yekaterinburg ACE_TIME_PROGMEM = { + kZoneNameAsia_Yekaterinburg /*name*/, + 0xfb544c6e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yekaterinburg /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Asia/Yerevan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAsia_Yerevan[] ACE_TIME_PROGMEM = { + // 4:00 Armenia %z + { + &kZonePolicyArmenia /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAsia_Yerevan[] ACE_TIME_PROGMEM = "\x05" "Yerevan"; + +const extended::Info::ZoneInfo kZoneAsia_Yerevan ACE_TIME_PROGMEM = { + kZoneNameAsia_Yerevan /*name*/, + 0x9185c8cc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yerevan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Azores +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAtlantic_Azores[] ACE_TIME_PROGMEM = { + // -1:00 EU %z + { + &kZonePolicyEU /*zonePolicy*/, + "" /*format*/, + -4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Azores[] ACE_TIME_PROGMEM = "\x06" "Azores"; + +const extended::Info::ZoneInfo kZoneAtlantic_Azores ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Azores /*name*/, + 0xf93ed918 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Azores /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Bermuda +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAtlantic_Bermuda[] ACE_TIME_PROGMEM = { + // -4:00 US A%sT + { + &kZonePolicyUS /*zonePolicy*/, + "A%T" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Bermuda[] ACE_TIME_PROGMEM = "\x06" "Bermuda"; + +const extended::Info::ZoneInfo kZoneAtlantic_Bermuda ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Bermuda /*name*/, + 0x3d4bb1c4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Bermuda /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Canary +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAtlantic_Canary[] ACE_TIME_PROGMEM = { + // 0:00 EU WE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "WE%T" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Canary[] ACE_TIME_PROGMEM = "\x06" "Canary"; + +const extended::Info::ZoneInfo kZoneAtlantic_Canary ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Canary /*name*/, + 0xfc23f2c2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Canary /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Cape_Verde +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = { + // -1:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = "\x06" "Cape_Verde"; + +const extended::Info::ZoneInfo kZoneAtlantic_Cape_Verde ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Cape_Verde /*name*/, + 0x5c5e1772 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Cape_Verde /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Faroe +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAtlantic_Faroe[] ACE_TIME_PROGMEM = { + // 0:00 EU WE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "WE%T" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Faroe[] ACE_TIME_PROGMEM = "\x06" "Faroe"; + +const extended::Info::ZoneInfo kZoneAtlantic_Faroe ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Faroe /*name*/, + 0xe110a971 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Faroe /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Madeira +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAtlantic_Madeira[] ACE_TIME_PROGMEM = { + // 0:00 EU WE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "WE%T" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Madeira[] ACE_TIME_PROGMEM = "\x06" "Madeira"; + +const extended::Info::ZoneInfo kZoneAtlantic_Madeira ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Madeira /*name*/, + 0x81b5c037 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Madeira /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/South_Georgia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAtlantic_South_Georgia[] ACE_TIME_PROGMEM = { + // -2:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_South_Georgia[] ACE_TIME_PROGMEM = "\x06" "South_Georgia"; + +const extended::Info::ZoneInfo kZoneAtlantic_South_Georgia ACE_TIME_PROGMEM = { + kZoneNameAtlantic_South_Georgia /*name*/, + 0x33013174 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_South_Georgia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Atlantic/Stanley +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAtlantic_Stanley[] ACE_TIME_PROGMEM = { + // -3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAtlantic_Stanley[] ACE_TIME_PROGMEM = "\x06" "Stanley"; + +const extended::Info::ZoneInfo kZoneAtlantic_Stanley ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Stanley /*name*/, + 0x7bb3e1c4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Stanley /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Adelaide +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAustralia_Adelaide[] ACE_TIME_PROGMEM = { + // 9:30 AS AC%sT + { + &kZonePolicyAS /*zonePolicy*/, + "AC%T" /*format*/, + 38 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Adelaide[] ACE_TIME_PROGMEM = "\x07" "Adelaide"; + +const extended::Info::ZoneInfo kZoneAustralia_Adelaide ACE_TIME_PROGMEM = { + kZoneNameAustralia_Adelaide /*name*/, + 0x2428e8a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Adelaide /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Brisbane +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAustralia_Brisbane[] ACE_TIME_PROGMEM = { + // 10:00 AQ AE%sT + { + &kZonePolicyAQ /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Brisbane[] ACE_TIME_PROGMEM = "\x07" "Brisbane"; + +const extended::Info::ZoneInfo kZoneAustralia_Brisbane ACE_TIME_PROGMEM = { + kZoneNameAustralia_Brisbane /*name*/, + 0x4fedc9c0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Brisbane /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Broken_Hill +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAustralia_Broken_Hill[] ACE_TIME_PROGMEM = { + // 9:30 AS AC%sT + { + &kZonePolicyAS /*zonePolicy*/, + "AC%T" /*format*/, + 38 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Broken_Hill[] ACE_TIME_PROGMEM = "\x07" "Broken_Hill"; + +const extended::Info::ZoneInfo kZoneAustralia_Broken_Hill ACE_TIME_PROGMEM = { + kZoneNameAustralia_Broken_Hill /*name*/, + 0xb06eada3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Broken_Hill /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Darwin +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = { + // 9:30 Aus AC%sT + { + &kZonePolicyAus /*zonePolicy*/, + "AC%T" /*format*/, + 38 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "\x07" "Darwin"; + +const extended::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = { + kZoneNameAustralia_Darwin /*name*/, + 0x2876bdff /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Darwin /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Eucla +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAustralia_Eucla[] ACE_TIME_PROGMEM = { + // 8:45 AW %z + { + &kZonePolicyAW /*zonePolicy*/, + "" /*format*/, + 35 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Eucla[] ACE_TIME_PROGMEM = "\x07" "Eucla"; + +const extended::Info::ZoneInfo kZoneAustralia_Eucla ACE_TIME_PROGMEM = { + kZoneNameAustralia_Eucla /*name*/, + 0x8cf99e44 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Eucla /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Hobart +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAustralia_Hobart[] ACE_TIME_PROGMEM = { + // 10:00 AT AE%sT + { + &kZonePolicyAT /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Hobart[] ACE_TIME_PROGMEM = "\x07" "Hobart"; + +const extended::Info::ZoneInfo kZoneAustralia_Hobart ACE_TIME_PROGMEM = { + kZoneNameAustralia_Hobart /*name*/, + 0x32bf951a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Hobart /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Lindeman +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAustralia_Lindeman[] ACE_TIME_PROGMEM = { + // 10:00 Holiday AE%sT + { + &kZonePolicyHoliday /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Lindeman[] ACE_TIME_PROGMEM = "\x07" "Lindeman"; + +const extended::Info::ZoneInfo kZoneAustralia_Lindeman ACE_TIME_PROGMEM = { + kZoneNameAustralia_Lindeman /*name*/, + 0xe05029e2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Lindeman /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Lord_Howe +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAustralia_Lord_Howe[] ACE_TIME_PROGMEM = { + // 10:30 LH %z + { + &kZonePolicyLH /*zonePolicy*/, + "" /*format*/, + 42 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Lord_Howe[] ACE_TIME_PROGMEM = "\x07" "Lord_Howe"; + +const extended::Info::ZoneInfo kZoneAustralia_Lord_Howe ACE_TIME_PROGMEM = { + kZoneNameAustralia_Lord_Howe /*name*/, + 0xa748b67d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Lord_Howe /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Melbourne +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAustralia_Melbourne[] ACE_TIME_PROGMEM = { + // 10:00 AV AE%sT + { + &kZonePolicyAV /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Melbourne[] ACE_TIME_PROGMEM = "\x07" "Melbourne"; + +const extended::Info::ZoneInfo kZoneAustralia_Melbourne ACE_TIME_PROGMEM = { + kZoneNameAustralia_Melbourne /*name*/, + 0x0fe559a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Melbourne /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Perth +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAustralia_Perth[] ACE_TIME_PROGMEM = { + // 8:00 AW AW%sT + { + &kZonePolicyAW /*zonePolicy*/, + "AW%T" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Perth[] ACE_TIME_PROGMEM = "\x07" "Perth"; + +const extended::Info::ZoneInfo kZoneAustralia_Perth ACE_TIME_PROGMEM = { + kZoneNameAustralia_Perth /*name*/, + 0x8db8269d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Perth /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Australia/Sydney +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraAustralia_Sydney[] ACE_TIME_PROGMEM = { + // 10:00 AN AE%sT + { + &kZonePolicyAN /*zonePolicy*/, + "AE%T" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameAustralia_Sydney[] ACE_TIME_PROGMEM = "\x07" "Sydney"; + +const extended::Info::ZoneInfo kZoneAustralia_Sydney ACE_TIME_PROGMEM = { + kZoneNameAustralia_Sydney /*name*/, + 0x4d1e9776 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Sydney /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT[] ACE_TIME_PROGMEM = { + // 0 - GMT + { + nullptr /*zonePolicy*/, + "GMT" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT[] ACE_TIME_PROGMEM = "\x0a" "GMT"; + +const extended::Info::ZoneInfo kZoneEtc_GMT ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT /*name*/, + 0xd8e2de58 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+1 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = { + // -1 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = "\x0a" "GMT+1"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_1 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_1 /*name*/, + 0x9d13da14 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_1 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+10 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = { + // -10 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = "\x0a" "GMT+10"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_10 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_10 /*name*/, + 0x3f8f1cc4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_10 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+11 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = { + // -11 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = "\x0a" "GMT+11"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_11 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_11 /*name*/, + 0x3f8f1cc5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_11 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+12 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = { + // -12 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = "\x0a" "GMT+12"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_12 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_12 /*name*/, + 0x3f8f1cc6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_12 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+2 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = { + // -2 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = "\x0a" "GMT+2"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_2 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_2 /*name*/, + 0x9d13da15 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_2 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+3 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = { + // -3 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = "\x0a" "GMT+3"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_3 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_3 /*name*/, + 0x9d13da16 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_3 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+4 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = { + // -4 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = "\x0a" "GMT+4"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_4 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_4 /*name*/, + 0x9d13da17 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_4 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+5 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = { + // -5 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = "\x0a" "GMT+5"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_5 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_5 /*name*/, + 0x9d13da18 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_5 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+6 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = { + // -6 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = "\x0a" "GMT+6"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_6 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_6 /*name*/, + 0x9d13da19 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_6 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+7 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = { + // -7 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = "\x0a" "GMT+7"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_7 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_7 /*name*/, + 0x9d13da1a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_7 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+8 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = { + // -8 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = "\x0a" "GMT+8"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_8 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_8 /*name*/, + 0x9d13da1b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_8 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT+9 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = { + // -9 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = "\x0a" "GMT+9"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_9 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_9 /*name*/, + 0x9d13da1c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_PLUS_9 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-1 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_1[] ACE_TIME_PROGMEM = { + // 1 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_1[] ACE_TIME_PROGMEM = "\x0a" "GMT-1"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_1 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_1 /*name*/, + 0x9d13da56 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_1 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-10 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_10[] ACE_TIME_PROGMEM = { + // 10 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_10[] ACE_TIME_PROGMEM = "\x0a" "GMT-10"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_10 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_10 /*name*/, + 0x3f8f2546 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_10 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-11 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_11[] ACE_TIME_PROGMEM = { + // 11 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_11[] ACE_TIME_PROGMEM = "\x0a" "GMT-11"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_11 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_11 /*name*/, + 0x3f8f2547 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_11 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-12 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_12[] ACE_TIME_PROGMEM = { + // 12 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_12[] ACE_TIME_PROGMEM = "\x0a" "GMT-12"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_12 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_12 /*name*/, + 0x3f8f2548 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_12 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-13 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_13[] ACE_TIME_PROGMEM = { + // 13 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 52 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_13[] ACE_TIME_PROGMEM = "\x0a" "GMT-13"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_13 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_13 /*name*/, + 0x3f8f2549 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_13 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-14 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_14[] ACE_TIME_PROGMEM = { + // 14 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 56 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_14[] ACE_TIME_PROGMEM = "\x0a" "GMT-14"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_14 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_14 /*name*/, + 0x3f8f254a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_14 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-2 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_2[] ACE_TIME_PROGMEM = { + // 2 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_2[] ACE_TIME_PROGMEM = "\x0a" "GMT-2"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_2 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_2 /*name*/, + 0x9d13da57 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_2 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-3 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_3[] ACE_TIME_PROGMEM = { + // 3 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_3[] ACE_TIME_PROGMEM = "\x0a" "GMT-3"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_3 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_3 /*name*/, + 0x9d13da58 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_3 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-4 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_4[] ACE_TIME_PROGMEM = { + // 4 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_4[] ACE_TIME_PROGMEM = "\x0a" "GMT-4"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_4 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_4 /*name*/, + 0x9d13da59 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_4 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-5 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_5[] ACE_TIME_PROGMEM = { + // 5 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_5[] ACE_TIME_PROGMEM = "\x0a" "GMT-5"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_5 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_5 /*name*/, + 0x9d13da5a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_5 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-6 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_6[] ACE_TIME_PROGMEM = { + // 6 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_6[] ACE_TIME_PROGMEM = "\x0a" "GMT-6"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_6 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_6 /*name*/, + 0x9d13da5b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_6 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-7 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_7[] ACE_TIME_PROGMEM = { + // 7 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 28 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_7[] ACE_TIME_PROGMEM = "\x0a" "GMT-7"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_7 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_7 /*name*/, + 0x9d13da5c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_7 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-8 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_8[] ACE_TIME_PROGMEM = { + // 8 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_8[] ACE_TIME_PROGMEM = "\x0a" "GMT-8"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_8 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_8 /*name*/, + 0x9d13da5d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_8 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/GMT-9 +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_GMT_9[] ACE_TIME_PROGMEM = { + // 9 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_GMT_9[] ACE_TIME_PROGMEM = "\x0a" "GMT-9"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_9 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_9 /*name*/, + 0x9d13da5e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT_9 /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Etc/UTC +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEtc_UTC[] ACE_TIME_PROGMEM = { + // 0 - UTC + { + nullptr /*zonePolicy*/, + "UTC" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEtc_UTC[] ACE_TIME_PROGMEM = "\x0a" "UTC"; + +const extended::Info::ZoneInfo kZoneEtc_UTC ACE_TIME_PROGMEM = { + kZoneNameEtc_UTC /*name*/, + 0xd8e31abc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Andorra +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Andorra[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Andorra[] ACE_TIME_PROGMEM = "\x0b" "Andorra"; + +const extended::Info::ZoneInfo kZoneEurope_Andorra ACE_TIME_PROGMEM = { + kZoneNameEurope_Andorra /*name*/, + 0x97f6764b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Andorra /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Astrakhan +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Astrakhan[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Astrakhan[] ACE_TIME_PROGMEM = "\x0b" "Astrakhan"; + +const extended::Info::ZoneInfo kZoneEurope_Astrakhan ACE_TIME_PROGMEM = { + kZoneNameEurope_Astrakhan /*name*/, + 0xe22256e1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Astrakhan /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Athens +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Athens[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Athens[] ACE_TIME_PROGMEM = "\x0b" "Athens"; + +const extended::Info::ZoneInfo kZoneEurope_Athens ACE_TIME_PROGMEM = { + kZoneNameEurope_Athens /*name*/, + 0x4318fa27 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Athens /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Belgrade +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Belgrade[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Belgrade[] ACE_TIME_PROGMEM = "\x0b" "Belgrade"; + +const extended::Info::ZoneInfo kZoneEurope_Belgrade ACE_TIME_PROGMEM = { + kZoneNameEurope_Belgrade /*name*/, + 0xe0532b3a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Berlin +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Berlin[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Berlin[] ACE_TIME_PROGMEM = "\x0b" "Berlin"; + +const extended::Info::ZoneInfo kZoneEurope_Berlin ACE_TIME_PROGMEM = { + kZoneNameEurope_Berlin /*name*/, + 0x44644c20 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Brussels +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Brussels[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Brussels[] ACE_TIME_PROGMEM = "\x0b" "Brussels"; + +const extended::Info::ZoneInfo kZoneEurope_Brussels ACE_TIME_PROGMEM = { + kZoneNameEurope_Brussels /*name*/, + 0xdee07337 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Brussels /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Bucharest +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Bucharest[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Bucharest[] ACE_TIME_PROGMEM = "\x0b" "Bucharest"; + +const extended::Info::ZoneInfo kZoneEurope_Bucharest ACE_TIME_PROGMEM = { + kZoneNameEurope_Bucharest /*name*/, + 0xfb349ec5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Bucharest /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Budapest +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Budapest[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Budapest[] ACE_TIME_PROGMEM = "\x0b" "Budapest"; + +const extended::Info::ZoneInfo kZoneEurope_Budapest ACE_TIME_PROGMEM = { + kZoneNameEurope_Budapest /*name*/, + 0x9ce0197c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Budapest /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Chisinau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Chisinau[] ACE_TIME_PROGMEM = { + // 2:00 Moldova EE%sT + { + &kZonePolicyMoldova /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Chisinau[] ACE_TIME_PROGMEM = "\x0b" "Chisinau"; + +const extended::Info::ZoneInfo kZoneEurope_Chisinau ACE_TIME_PROGMEM = { + kZoneNameEurope_Chisinau /*name*/, + 0xad58aa18 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Chisinau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Dublin +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Dublin[] ACE_TIME_PROGMEM = { + // 1:00 Eire IST/GMT + { + &kZonePolicyEire /*zonePolicy*/, + "IST/GMT" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Dublin[] ACE_TIME_PROGMEM = "\x0b" "Dublin"; + +const extended::Info::ZoneInfo kZoneEurope_Dublin ACE_TIME_PROGMEM = { + kZoneNameEurope_Dublin /*name*/, + 0x4a275f62 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Dublin /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Gibraltar +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Gibraltar[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Gibraltar[] ACE_TIME_PROGMEM = "\x0b" "Gibraltar"; + +const extended::Info::ZoneInfo kZoneEurope_Gibraltar ACE_TIME_PROGMEM = { + kZoneNameEurope_Gibraltar /*name*/, + 0xf8e325fc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Gibraltar /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Helsinki +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Helsinki[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Helsinki[] ACE_TIME_PROGMEM = "\x0b" "Helsinki"; + +const extended::Info::ZoneInfo kZoneEurope_Helsinki ACE_TIME_PROGMEM = { + kZoneNameEurope_Helsinki /*name*/, + 0x6ab2975b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Helsinki /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Istanbul +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Istanbul[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Istanbul[] ACE_TIME_PROGMEM = "\x0b" "Istanbul"; + +const extended::Info::ZoneInfo kZoneEurope_Istanbul ACE_TIME_PROGMEM = { + kZoneNameEurope_Istanbul /*name*/, + 0x9e09d6e6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Istanbul /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Kaliningrad +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Kaliningrad[] ACE_TIME_PROGMEM = { + // 2:00 - EET + { + nullptr /*zonePolicy*/, + "EET" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Kaliningrad[] ACE_TIME_PROGMEM = "\x0b" "Kaliningrad"; + +const extended::Info::ZoneInfo kZoneEurope_Kaliningrad ACE_TIME_PROGMEM = { + kZoneNameEurope_Kaliningrad /*name*/, + 0xd33b2f28 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kaliningrad /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Kirov +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Kirov[] ACE_TIME_PROGMEM = { + // 3:00 - MSK + { + nullptr /*zonePolicy*/, + "MSK" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Kirov[] ACE_TIME_PROGMEM = "\x0b" "Kirov"; + +const extended::Info::ZoneInfo kZoneEurope_Kirov ACE_TIME_PROGMEM = { + kZoneNameEurope_Kirov /*name*/, + 0xfaf5abef /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kirov /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Kyiv +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Kyiv[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Kyiv[] ACE_TIME_PROGMEM = "\x0b" "Kyiv"; + +const extended::Info::ZoneInfo kZoneEurope_Kyiv ACE_TIME_PROGMEM = { + kZoneNameEurope_Kyiv /*name*/, + 0xa2c1e347 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kyiv /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Lisbon +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Lisbon[] ACE_TIME_PROGMEM = { + // 0:00 EU WE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "WE%T" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Lisbon[] ACE_TIME_PROGMEM = "\x0b" "Lisbon"; + +const extended::Info::ZoneInfo kZoneEurope_Lisbon ACE_TIME_PROGMEM = { + kZoneNameEurope_Lisbon /*name*/, + 0x5c00a70b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Lisbon /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/London +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_London[] ACE_TIME_PROGMEM = { + // 0:00 EU GMT/BST + { + &kZonePolicyEU /*zonePolicy*/, + "GMT/BST" /*format*/, + 0 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_London[] ACE_TIME_PROGMEM = "\x0b" "London"; + +const extended::Info::ZoneInfo kZoneEurope_London ACE_TIME_PROGMEM = { + kZoneNameEurope_London /*name*/, + 0x5c6a84ae /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Madrid +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Madrid[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Madrid[] ACE_TIME_PROGMEM = "\x0b" "Madrid"; + +const extended::Info::ZoneInfo kZoneEurope_Madrid ACE_TIME_PROGMEM = { + kZoneNameEurope_Madrid /*name*/, + 0x5dbd1535 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Madrid /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Malta +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Malta[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Malta[] ACE_TIME_PROGMEM = "\x0b" "Malta"; + +const extended::Info::ZoneInfo kZoneEurope_Malta ACE_TIME_PROGMEM = { + kZoneNameEurope_Malta /*name*/, + 0xfb1560f3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Malta /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Minsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Minsk[] ACE_TIME_PROGMEM = { + // 3:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Minsk[] ACE_TIME_PROGMEM = "\x0b" "Minsk"; + +const extended::Info::ZoneInfo kZoneEurope_Minsk ACE_TIME_PROGMEM = { + kZoneNameEurope_Minsk /*name*/, + 0xfb19cc66 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Minsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Moscow +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Moscow[] ACE_TIME_PROGMEM = { + // 3:00 - MSK + { + nullptr /*zonePolicy*/, + "MSK" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Moscow[] ACE_TIME_PROGMEM = "\x0b" "Moscow"; + +const extended::Info::ZoneInfo kZoneEurope_Moscow ACE_TIME_PROGMEM = { + kZoneNameEurope_Moscow /*name*/, + 0x5ec266fc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Moscow /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Paris +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Paris[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Paris[] ACE_TIME_PROGMEM = "\x0b" "Paris"; + +const extended::Info::ZoneInfo kZoneEurope_Paris ACE_TIME_PROGMEM = { + kZoneNameEurope_Paris /*name*/, + 0xfb4bc2a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Paris /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Prague +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Prague[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Prague[] ACE_TIME_PROGMEM = "\x0b" "Prague"; + +const extended::Info::ZoneInfo kZoneEurope_Prague ACE_TIME_PROGMEM = { + kZoneNameEurope_Prague /*name*/, + 0x65ee5d48 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Prague /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Riga +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Riga[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Riga[] ACE_TIME_PROGMEM = "\x0b" "Riga"; + +const extended::Info::ZoneInfo kZoneEurope_Riga ACE_TIME_PROGMEM = { + kZoneNameEurope_Riga /*name*/, + 0xa2c57587 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Riga /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Rome +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Rome[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Rome[] ACE_TIME_PROGMEM = "\x0b" "Rome"; + +const extended::Info::ZoneInfo kZoneEurope_Rome ACE_TIME_PROGMEM = { + kZoneNameEurope_Rome /*name*/, + 0xa2c58fd7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Rome /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Samara +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Samara[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Samara[] ACE_TIME_PROGMEM = "\x0b" "Samara"; + +const extended::Info::ZoneInfo kZoneEurope_Samara ACE_TIME_PROGMEM = { + kZoneNameEurope_Samara /*name*/, + 0x6bc0b139 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Samara /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Saratov +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Saratov[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Saratov[] ACE_TIME_PROGMEM = "\x0b" "Saratov"; + +const extended::Info::ZoneInfo kZoneEurope_Saratov ACE_TIME_PROGMEM = { + kZoneNameEurope_Saratov /*name*/, + 0xe4315da4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Saratov /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Simferopol +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Simferopol[] ACE_TIME_PROGMEM = { + // 3:00 - MSK + { + nullptr /*zonePolicy*/, + "MSK" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Simferopol[] ACE_TIME_PROGMEM = "\x0b" "Simferopol"; + +const extended::Info::ZoneInfo kZoneEurope_Simferopol ACE_TIME_PROGMEM = { + kZoneNameEurope_Simferopol /*name*/, + 0xda9eb724 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Simferopol /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Sofia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Sofia[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Sofia[] ACE_TIME_PROGMEM = "\x0b" "Sofia"; + +const extended::Info::ZoneInfo kZoneEurope_Sofia ACE_TIME_PROGMEM = { + kZoneNameEurope_Sofia /*name*/, + 0xfb898656 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Sofia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Tallinn +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Tallinn[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Tallinn[] ACE_TIME_PROGMEM = "\x0b" "Tallinn"; + +const extended::Info::ZoneInfo kZoneEurope_Tallinn ACE_TIME_PROGMEM = { + kZoneNameEurope_Tallinn /*name*/, + 0x30c4e096 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Tallinn /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Tirane +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Tirane[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Tirane[] ACE_TIME_PROGMEM = "\x0b" "Tirane"; + +const extended::Info::ZoneInfo kZoneEurope_Tirane ACE_TIME_PROGMEM = { + kZoneNameEurope_Tirane /*name*/, + 0x6ea95b47 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Tirane /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Ulyanovsk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Ulyanovsk[] ACE_TIME_PROGMEM = { + // 4:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Ulyanovsk[] ACE_TIME_PROGMEM = "\x0b" "Ulyanovsk"; + +const extended::Info::ZoneInfo kZoneEurope_Ulyanovsk ACE_TIME_PROGMEM = { + kZoneNameEurope_Ulyanovsk /*name*/, + 0xe03783d0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Ulyanovsk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Vienna +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Vienna[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Vienna[] ACE_TIME_PROGMEM = "\x0b" "Vienna"; + +const extended::Info::ZoneInfo kZoneEurope_Vienna ACE_TIME_PROGMEM = { + kZoneNameEurope_Vienna /*name*/, + 0x734cc2e5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Vienna /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Vilnius +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Vilnius[] ACE_TIME_PROGMEM = { + // 2:00 EU EE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "EE%T" /*format*/, + 8 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Vilnius[] ACE_TIME_PROGMEM = "\x0b" "Vilnius"; + +const extended::Info::ZoneInfo kZoneEurope_Vilnius ACE_TIME_PROGMEM = { + kZoneNameEurope_Vilnius /*name*/, + 0xdd63b8ce /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Vilnius /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Volgograd +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Volgograd[] ACE_TIME_PROGMEM = { + // 3:00 - MSK + { + nullptr /*zonePolicy*/, + "MSK" /*format*/, + 12 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Volgograd[] ACE_TIME_PROGMEM = "\x0b" "Volgograd"; + +const extended::Info::ZoneInfo kZoneEurope_Volgograd ACE_TIME_PROGMEM = { + kZoneNameEurope_Volgograd /*name*/, + 0x3ed0f389 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Volgograd /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Warsaw +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Warsaw[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Warsaw[] ACE_TIME_PROGMEM = "\x0b" "Warsaw"; + +const extended::Info::ZoneInfo kZoneEurope_Warsaw ACE_TIME_PROGMEM = { + kZoneNameEurope_Warsaw /*name*/, + 0x75185c19 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Warsaw /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Europe/Zurich +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraEurope_Zurich[] ACE_TIME_PROGMEM = { + // 1:00 EU CE%sT + { + &kZonePolicyEU /*zonePolicy*/, + "CE%T" /*format*/, + 4 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameEurope_Zurich[] ACE_TIME_PROGMEM = "\x0b" "Zurich"; + +const extended::Info::ZoneInfo kZoneEurope_Zurich ACE_TIME_PROGMEM = { + kZoneNameEurope_Zurich /*name*/, + 0x7d8195b9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Zurich /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Indian/Chagos +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraIndian_Chagos[] ACE_TIME_PROGMEM = { + // 6:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameIndian_Chagos[] ACE_TIME_PROGMEM = "\x0c" "Chagos"; + +const extended::Info::ZoneInfo kZoneIndian_Chagos ACE_TIME_PROGMEM = { + kZoneNameIndian_Chagos /*name*/, + 0x456f7c3c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraIndian_Chagos /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Indian/Maldives +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraIndian_Maldives[] ACE_TIME_PROGMEM = { + // 5:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 20 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameIndian_Maldives[] ACE_TIME_PROGMEM = "\x0c" "Maldives"; + +const extended::Info::ZoneInfo kZoneIndian_Maldives ACE_TIME_PROGMEM = { + kZoneNameIndian_Maldives /*name*/, + 0x9869681c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraIndian_Maldives /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Indian/Mauritius +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraIndian_Mauritius[] ACE_TIME_PROGMEM = { + // 4:00 Mauritius %z + { + &kZonePolicyMauritius /*zonePolicy*/, + "" /*format*/, + 16 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNameIndian_Mauritius[] ACE_TIME_PROGMEM = "\x0c" "Mauritius"; + +const extended::Info::ZoneInfo kZoneIndian_Mauritius ACE_TIME_PROGMEM = { + kZoneNameIndian_Mauritius /*name*/, + 0x7b09c02a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraIndian_Mauritius /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Apia +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Apia[] ACE_TIME_PROGMEM = { + // 13:00 WS %z + { + &kZonePolicyWS /*zonePolicy*/, + "" /*format*/, + 52 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Apia[] ACE_TIME_PROGMEM = "\x0e" "Apia"; + +const extended::Info::ZoneInfo kZonePacific_Apia ACE_TIME_PROGMEM = { + kZoneNamePacific_Apia /*name*/, + 0x23359b5e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Apia /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Auckland +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Auckland[] ACE_TIME_PROGMEM = { + // 12:00 NZ NZ%sT + { + &kZonePolicyNZ /*zonePolicy*/, + "NZ%T" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Auckland[] ACE_TIME_PROGMEM = "\x0e" "Auckland"; + +const extended::Info::ZoneInfo kZonePacific_Auckland ACE_TIME_PROGMEM = { + kZoneNamePacific_Auckland /*name*/, + 0x25062f86 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Auckland /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Bougainville +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Bougainville[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Bougainville[] ACE_TIME_PROGMEM = "\x0e" "Bougainville"; + +const extended::Info::ZoneInfo kZonePacific_Bougainville ACE_TIME_PROGMEM = { + kZoneNamePacific_Bougainville /*name*/, + 0x5e10f7a4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Bougainville /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Chatham +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Chatham[] ACE_TIME_PROGMEM = { + // 12:45 Chatham %z + { + &kZonePolicyChatham /*zonePolicy*/, + "" /*format*/, + 51 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Chatham[] ACE_TIME_PROGMEM = "\x0e" "Chatham"; + +const extended::Info::ZoneInfo kZonePacific_Chatham ACE_TIME_PROGMEM = { + kZoneNamePacific_Chatham /*name*/, + 0x2f0de999 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Chatham /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Easter +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Easter[] ACE_TIME_PROGMEM = { + // -6:00 Chile %z + { + &kZonePolicyChile /*zonePolicy*/, + "" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Easter[] ACE_TIME_PROGMEM = "\x0e" "Easter"; + +const extended::Info::ZoneInfo kZonePacific_Easter ACE_TIME_PROGMEM = { + kZoneNamePacific_Easter /*name*/, + 0xcf54f7e7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Easter /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Efate +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Efate[] ACE_TIME_PROGMEM = { + // 11:00 Vanuatu %z + { + &kZonePolicyVanuatu /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Efate[] ACE_TIME_PROGMEM = "\x0e" "Efate"; + +const extended::Info::ZoneInfo kZonePacific_Efate ACE_TIME_PROGMEM = { + kZoneNamePacific_Efate /*name*/, + 0x8a2bce28 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Efate /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Fakaofo +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Fakaofo[] ACE_TIME_PROGMEM = { + // 13:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 52 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Fakaofo[] ACE_TIME_PROGMEM = "\x0e" "Fakaofo"; + +const extended::Info::ZoneInfo kZonePacific_Fakaofo ACE_TIME_PROGMEM = { + kZoneNamePacific_Fakaofo /*name*/, + 0x06532bba /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Fakaofo /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Fiji +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Fiji[] ACE_TIME_PROGMEM = { + // 12:00 Fiji %z + { + &kZonePolicyFiji /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Fiji[] ACE_TIME_PROGMEM = "\x0e" "Fiji"; + +const extended::Info::ZoneInfo kZonePacific_Fiji ACE_TIME_PROGMEM = { + kZoneNamePacific_Fiji /*name*/, + 0x23383ba5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Fiji /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Galapagos +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Galapagos[] ACE_TIME_PROGMEM = { + // -6:00 Ecuador %z + { + &kZonePolicyEcuador /*zonePolicy*/, + "" /*format*/, + -24 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Galapagos[] ACE_TIME_PROGMEM = "\x0e" "Galapagos"; + +const extended::Info::ZoneInfo kZonePacific_Galapagos ACE_TIME_PROGMEM = { + kZoneNamePacific_Galapagos /*name*/, + 0xa952f752 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Galapagos /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Gambier +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Gambier[] ACE_TIME_PROGMEM = { + // -9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Gambier[] ACE_TIME_PROGMEM = "\x0e" "Gambier"; + +const extended::Info::ZoneInfo kZonePacific_Gambier ACE_TIME_PROGMEM = { + kZoneNamePacific_Gambier /*name*/, + 0x53720c3a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Gambier /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Guadalcanal +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Guadalcanal[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Guadalcanal[] ACE_TIME_PROGMEM = "\x0e" "Guadalcanal"; + +const extended::Info::ZoneInfo kZonePacific_Guadalcanal ACE_TIME_PROGMEM = { + kZoneNamePacific_Guadalcanal /*name*/, + 0xf4dd25f0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Guadalcanal /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Guam +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Guam[] ACE_TIME_PROGMEM = { + // 10:00 - ChST + { + nullptr /*zonePolicy*/, + "ChST" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Guam[] ACE_TIME_PROGMEM = "\x0e" "Guam"; + +const extended::Info::ZoneInfo kZonePacific_Guam ACE_TIME_PROGMEM = { + kZoneNamePacific_Guam /*name*/, + 0x2338f9ed /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Guam /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Honolulu +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Honolulu[] ACE_TIME_PROGMEM = { + // -10:00 - HST + { + nullptr /*zonePolicy*/, + "HST" /*format*/, + -40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Honolulu[] ACE_TIME_PROGMEM = "\x0e" "Honolulu"; + +const extended::Info::ZoneInfo kZonePacific_Honolulu ACE_TIME_PROGMEM = { + kZoneNamePacific_Honolulu /*name*/, + 0xe6e70af9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Honolulu /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Kanton +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Kanton[] ACE_TIME_PROGMEM = { + // 13:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 52 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Kanton[] ACE_TIME_PROGMEM = "\x0e" "Kanton"; + +const extended::Info::ZoneInfo kZonePacific_Kanton ACE_TIME_PROGMEM = { + kZoneNamePacific_Kanton /*name*/, + 0xdd512f0e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kanton /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Kiritimati +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Kiritimati[] ACE_TIME_PROGMEM = { + // 14:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 56 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Kiritimati[] ACE_TIME_PROGMEM = "\x0e" "Kiritimati"; + +const extended::Info::ZoneInfo kZonePacific_Kiritimati ACE_TIME_PROGMEM = { + kZoneNamePacific_Kiritimati /*name*/, + 0x8305073a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kiritimati /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Kosrae +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Kosrae[] ACE_TIME_PROGMEM = { + // 11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Kosrae[] ACE_TIME_PROGMEM = "\x0e" "Kosrae"; + +const extended::Info::ZoneInfo kZonePacific_Kosrae ACE_TIME_PROGMEM = { + kZoneNamePacific_Kosrae /*name*/, + 0xde5139a8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kosrae /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Kwajalein +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Kwajalein[] ACE_TIME_PROGMEM = { + // 12:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Kwajalein[] ACE_TIME_PROGMEM = "\x0e" "Kwajalein"; + +const extended::Info::ZoneInfo kZonePacific_Kwajalein ACE_TIME_PROGMEM = { + kZoneNamePacific_Kwajalein /*name*/, + 0x8e216759 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kwajalein /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Marquesas +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Marquesas[] ACE_TIME_PROGMEM = { + // -9:30 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -38 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Marquesas[] ACE_TIME_PROGMEM = "\x0e" "Marquesas"; + +const extended::Info::ZoneInfo kZonePacific_Marquesas ACE_TIME_PROGMEM = { + kZoneNamePacific_Marquesas /*name*/, + 0x57ca7135 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Marquesas /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Nauru +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Nauru[] ACE_TIME_PROGMEM = { + // 12:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Nauru[] ACE_TIME_PROGMEM = "\x0e" "Nauru"; + +const extended::Info::ZoneInfo kZonePacific_Nauru ACE_TIME_PROGMEM = { + kZoneNamePacific_Nauru /*name*/, + 0x8acc41ae /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Nauru /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Niue +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Niue[] ACE_TIME_PROGMEM = { + // -11:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Niue[] ACE_TIME_PROGMEM = "\x0e" "Niue"; + +const extended::Info::ZoneInfo kZonePacific_Niue ACE_TIME_PROGMEM = { + kZoneNamePacific_Niue /*name*/, + 0x233ca014 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Niue /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Norfolk +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Norfolk[] ACE_TIME_PROGMEM = { + // 11:00 AN %z + { + &kZonePolicyAN /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Norfolk[] ACE_TIME_PROGMEM = "\x0e" "Norfolk"; + +const extended::Info::ZoneInfo kZonePacific_Norfolk ACE_TIME_PROGMEM = { + kZoneNamePacific_Norfolk /*name*/, + 0x8f4eb4be /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Norfolk /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Noumea +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Noumea[] ACE_TIME_PROGMEM = { + // 11:00 NC %z + { + &kZonePolicyNC /*zonePolicy*/, + "" /*format*/, + 44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Noumea[] ACE_TIME_PROGMEM = "\x0e" "Noumea"; + +const extended::Info::ZoneInfo kZonePacific_Noumea ACE_TIME_PROGMEM = { + kZoneNamePacific_Noumea /*name*/, + 0xe551b788 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Noumea /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Pago_Pago +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Pago_Pago[] ACE_TIME_PROGMEM = { + // -11:00 - SST + { + nullptr /*zonePolicy*/, + "SST" /*format*/, + -44 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Pago_Pago[] ACE_TIME_PROGMEM = "\x0e" "Pago_Pago"; + +const extended::Info::ZoneInfo kZonePacific_Pago_Pago ACE_TIME_PROGMEM = { + kZoneNamePacific_Pago_Pago /*name*/, + 0x603aebd0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Pago_Pago /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Palau +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Palau[] ACE_TIME_PROGMEM = { + // 9:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 36 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Palau[] ACE_TIME_PROGMEM = "\x0e" "Palau"; + +const extended::Info::ZoneInfo kZonePacific_Palau ACE_TIME_PROGMEM = { + kZoneNamePacific_Palau /*name*/, + 0x8af04a36 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Palau /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Pitcairn +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Pitcairn[] ACE_TIME_PROGMEM = { + // -8:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -32 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Pitcairn[] ACE_TIME_PROGMEM = "\x0e" "Pitcairn"; + +const extended::Info::ZoneInfo kZonePacific_Pitcairn ACE_TIME_PROGMEM = { + kZoneNamePacific_Pitcairn /*name*/, + 0x8837d8bd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Pitcairn /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Port_Moresby +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Port_Moresby[] ACE_TIME_PROGMEM = { + // 10:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Port_Moresby[] ACE_TIME_PROGMEM = "\x0e" "Port_Moresby"; + +const extended::Info::ZoneInfo kZonePacific_Port_Moresby ACE_TIME_PROGMEM = { + kZoneNamePacific_Port_Moresby /*name*/, + 0xa7ba7f68 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Port_Moresby /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Rarotonga +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Rarotonga[] ACE_TIME_PROGMEM = { + // -10:00 Cook %z + { + &kZonePolicyCook /*zonePolicy*/, + "" /*format*/, + -40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Rarotonga[] ACE_TIME_PROGMEM = "\x0e" "Rarotonga"; + +const extended::Info::ZoneInfo kZonePacific_Rarotonga ACE_TIME_PROGMEM = { + kZoneNamePacific_Rarotonga /*name*/, + 0x9981a3b0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Rarotonga /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Tahiti +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Tahiti[] ACE_TIME_PROGMEM = { + // -10:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + -40 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Tahiti[] ACE_TIME_PROGMEM = "\x0e" "Tahiti"; + +const extended::Info::ZoneInfo kZonePacific_Tahiti ACE_TIME_PROGMEM = { + kZoneNamePacific_Tahiti /*name*/, + 0xf24c2446 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tahiti /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Tarawa +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Tarawa[] ACE_TIME_PROGMEM = { + // 12:00 - %z + { + nullptr /*zonePolicy*/, + "" /*format*/, + 48 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Tarawa[] ACE_TIME_PROGMEM = "\x0e" "Tarawa"; + +const extended::Info::ZoneInfo kZonePacific_Tarawa ACE_TIME_PROGMEM = { + kZoneNamePacific_Tarawa /*name*/, + 0xf2517e63 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tarawa /*eras*/, + nullptr /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Zone name: Pacific/Tongatapu +// Eras: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneEra kZoneEraPacific_Tongatapu[] ACE_TIME_PROGMEM = { + // 13:00 Tonga %z + { + &kZonePolicyTonga /*zonePolicy*/, + "" /*format*/, + 52 /*offsetCode*/, + 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/, + 127 /*untilYearTiny*/, + 1 /*untilMonth*/, + 1 /*untilDay*/, + 0 /*untilTimeCode*/, + 0 /*untilTimeModifier (kSuffixW + minute=0)*/, + }, + +}; + +static const char kZoneNamePacific_Tongatapu[] ACE_TIME_PROGMEM = "\x0e" "Tongatapu"; + +const extended::Info::ZoneInfo kZonePacific_Tongatapu ACE_TIME_PROGMEM = { + kZoneNamePacific_Tongatapu /*name*/, + 0x262ca836 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tongatapu /*eras*/, + nullptr /*targetInfo*/, +}; + + + +//--------------------------------------------------------------------------- +// Links: 257 +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// Link name: Africa/Accra -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Accra[] ACE_TIME_PROGMEM = "\x01" "Accra"; + +const extended::Info::ZoneInfo kZoneAfrica_Accra ACE_TIME_PROGMEM = { + kZoneNameAfrica_Accra /*name*/, + 0x77d5b054 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Addis_Ababa -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Addis_Ababa[] ACE_TIME_PROGMEM = "\x01" "Addis_Ababa"; + +const extended::Info::ZoneInfo kZoneAfrica_Addis_Ababa ACE_TIME_PROGMEM = { + kZoneNameAfrica_Addis_Ababa /*name*/, + 0x05ae1e65 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Asmara -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Asmara[] ACE_TIME_PROGMEM = "\x01" "Asmara"; + +const extended::Info::ZoneInfo kZoneAfrica_Asmara ACE_TIME_PROGMEM = { + kZoneNameAfrica_Asmara /*name*/, + 0x73b278ef /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Asmera -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Asmera[] ACE_TIME_PROGMEM = "\x01" "Asmera"; + +const extended::Info::ZoneInfo kZoneAfrica_Asmera ACE_TIME_PROGMEM = { + kZoneNameAfrica_Asmera /*name*/, + 0x73b289f3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Bamako -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Bamako[] ACE_TIME_PROGMEM = "\x01" "Bamako"; + +const extended::Info::ZoneInfo kZoneAfrica_Bamako ACE_TIME_PROGMEM = { + kZoneNameAfrica_Bamako /*name*/, + 0x74c1e7a5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Bangui -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Bangui[] ACE_TIME_PROGMEM = "\x01" "Bangui"; + +const extended::Info::ZoneInfo kZoneAfrica_Bangui ACE_TIME_PROGMEM = { + kZoneNameAfrica_Bangui /*name*/, + 0x74c28ed0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Banjul -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Banjul[] ACE_TIME_PROGMEM = "\x01" "Banjul"; + +const extended::Info::ZoneInfo kZoneAfrica_Banjul ACE_TIME_PROGMEM = { + kZoneNameAfrica_Banjul /*name*/, + 0x74c29b96 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Blantyre -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Blantyre[] ACE_TIME_PROGMEM = "\x01" "Blantyre"; + +const extended::Info::ZoneInfo kZoneAfrica_Blantyre ACE_TIME_PROGMEM = { + kZoneNameAfrica_Blantyre /*name*/, + 0xe08d813b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Brazzaville -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Brazzaville[] ACE_TIME_PROGMEM = "\x01" "Brazzaville"; + +const extended::Info::ZoneInfo kZoneAfrica_Brazzaville ACE_TIME_PROGMEM = { + kZoneNameAfrica_Brazzaville /*name*/, + 0x39cda760 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Bujumbura -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Bujumbura[] ACE_TIME_PROGMEM = "\x01" "Bujumbura"; + +const extended::Info::ZoneInfo kZoneAfrica_Bujumbura ACE_TIME_PROGMEM = { + kZoneNameAfrica_Bujumbura /*name*/, + 0x05232a47 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Conakry -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Conakry[] ACE_TIME_PROGMEM = "\x01" "Conakry"; + +const extended::Info::ZoneInfo kZoneAfrica_Conakry ACE_TIME_PROGMEM = { + kZoneNameAfrica_Conakry /*name*/, + 0x7ab36b31 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Dakar -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Dakar[] ACE_TIME_PROGMEM = "\x01" "Dakar"; + +const extended::Info::ZoneInfo kZoneAfrica_Dakar ACE_TIME_PROGMEM = { + kZoneNameAfrica_Dakar /*name*/, + 0x780b00fd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Dar_es_Salaam -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Dar_es_Salaam[] ACE_TIME_PROGMEM = "\x01" "Dar_es_Salaam"; + +const extended::Info::ZoneInfo kZoneAfrica_Dar_es_Salaam ACE_TIME_PROGMEM = { + kZoneNameAfrica_Dar_es_Salaam /*name*/, + 0xa04c47b6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Djibouti -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Djibouti[] ACE_TIME_PROGMEM = "\x01" "Djibouti"; + +const extended::Info::ZoneInfo kZoneAfrica_Djibouti ACE_TIME_PROGMEM = { + kZoneNameAfrica_Djibouti /*name*/, + 0x30ea01d4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Douala -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Douala[] ACE_TIME_PROGMEM = "\x01" "Douala"; + +const extended::Info::ZoneInfo kZoneAfrica_Douala ACE_TIME_PROGMEM = { + kZoneNameAfrica_Douala /*name*/, + 0x7a6df310 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Freetown -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Freetown[] ACE_TIME_PROGMEM = "\x01" "Freetown"; + +const extended::Info::ZoneInfo kZoneAfrica_Freetown ACE_TIME_PROGMEM = { + kZoneNameAfrica_Freetown /*name*/, + 0x6823dd64 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Gaborone -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Gaborone[] ACE_TIME_PROGMEM = "\x01" "Gaborone"; + +const extended::Info::ZoneInfo kZoneAfrica_Gaborone ACE_TIME_PROGMEM = { + kZoneNameAfrica_Gaborone /*name*/, + 0x317c0aa7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Harare -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Harare[] ACE_TIME_PROGMEM = "\x01" "Harare"; + +const extended::Info::ZoneInfo kZoneAfrica_Harare ACE_TIME_PROGMEM = { + kZoneNameAfrica_Harare /*name*/, + 0x82c39a2d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Kampala -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Kampala[] ACE_TIME_PROGMEM = "\x01" "Kampala"; + +const extended::Info::ZoneInfo kZoneAfrica_Kampala ACE_TIME_PROGMEM = { + kZoneNameAfrica_Kampala /*name*/, + 0xc1d30e31 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Kigali -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Kigali[] ACE_TIME_PROGMEM = "\x01" "Kigali"; + +const extended::Info::ZoneInfo kZoneAfrica_Kigali ACE_TIME_PROGMEM = { + kZoneNameAfrica_Kigali /*name*/, + 0x8a4dcf2b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Kinshasa -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Kinshasa[] ACE_TIME_PROGMEM = "\x01" "Kinshasa"; + +const extended::Info::ZoneInfo kZoneAfrica_Kinshasa ACE_TIME_PROGMEM = { + kZoneNameAfrica_Kinshasa /*name*/, + 0x6695d70c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Libreville -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Libreville[] ACE_TIME_PROGMEM = "\x01" "Libreville"; + +const extended::Info::ZoneInfo kZoneAfrica_Libreville ACE_TIME_PROGMEM = { + kZoneNameAfrica_Libreville /*name*/, + 0x01d96de4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Lome -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Lome[] ACE_TIME_PROGMEM = "\x01" "Lome"; + +const extended::Info::ZoneInfo kZoneAfrica_Lome ACE_TIME_PROGMEM = { + kZoneNameAfrica_Lome /*name*/, + 0xd51c3a07 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Luanda -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Luanda[] ACE_TIME_PROGMEM = "\x01" "Luanda"; + +const extended::Info::ZoneInfo kZoneAfrica_Luanda ACE_TIME_PROGMEM = { + kZoneNameAfrica_Luanda /*name*/, + 0x8d7909cf /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Lubumbashi -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Lubumbashi[] ACE_TIME_PROGMEM = "\x01" "Lubumbashi"; + +const extended::Info::ZoneInfo kZoneAfrica_Lubumbashi ACE_TIME_PROGMEM = { + kZoneNameAfrica_Lubumbashi /*name*/, + 0x6fd88566 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Lusaka -> Africa/Maputo +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Lusaka[] ACE_TIME_PROGMEM = "\x01" "Lusaka"; + +const extended::Info::ZoneInfo kZoneAfrica_Lusaka ACE_TIME_PROGMEM = { + kZoneNameAfrica_Lusaka /*name*/, + 0x8d82b23b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Maputo /*eras*/, + &kZoneAfrica_Maputo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Malabo -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Malabo[] ACE_TIME_PROGMEM = "\x01" "Malabo"; + +const extended::Info::ZoneInfo kZoneAfrica_Malabo ACE_TIME_PROGMEM = { + kZoneNameAfrica_Malabo /*name*/, + 0x8e6a1906 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Maseru -> Africa/Johannesburg +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Maseru[] ACE_TIME_PROGMEM = "\x01" "Maseru"; + +const extended::Info::ZoneInfo kZoneAfrica_Maseru ACE_TIME_PROGMEM = { + kZoneNameAfrica_Maseru /*name*/, + 0x8e6e02c7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Johannesburg /*eras*/, + &kZoneAfrica_Johannesburg /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Mbabane -> Africa/Johannesburg +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Mbabane[] ACE_TIME_PROGMEM = "\x01" "Mbabane"; + +const extended::Info::ZoneInfo kZoneAfrica_Mbabane ACE_TIME_PROGMEM = { + kZoneNameAfrica_Mbabane /*name*/, + 0x5d3bdd40 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Johannesburg /*eras*/, + &kZoneAfrica_Johannesburg /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Mogadishu -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Mogadishu[] ACE_TIME_PROGMEM = "\x01" "Mogadishu"; + +const extended::Info::ZoneInfo kZoneAfrica_Mogadishu ACE_TIME_PROGMEM = { + kZoneNameAfrica_Mogadishu /*name*/, + 0x66bc159b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Niamey -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Niamey[] ACE_TIME_PROGMEM = "\x01" "Niamey"; + +const extended::Info::ZoneInfo kZoneAfrica_Niamey ACE_TIME_PROGMEM = { + kZoneNameAfrica_Niamey /*name*/, + 0x914a30fd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Nouakchott -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Nouakchott[] ACE_TIME_PROGMEM = "\x01" "Nouakchott"; + +const extended::Info::ZoneInfo kZoneAfrica_Nouakchott ACE_TIME_PROGMEM = { + kZoneNameAfrica_Nouakchott /*name*/, + 0x3dc49dba /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Ouagadougou -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Ouagadougou[] ACE_TIME_PROGMEM = "\x01" "Ouagadougou"; + +const extended::Info::ZoneInfo kZoneAfrica_Ouagadougou ACE_TIME_PROGMEM = { + kZoneNameAfrica_Ouagadougou /*name*/, + 0x04d7219a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Porto-Novo -> Africa/Lagos +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Porto_Novo[] ACE_TIME_PROGMEM = "\x01" "Porto-Novo"; + +const extended::Info::ZoneInfo kZoneAfrica_Porto_Novo ACE_TIME_PROGMEM = { + kZoneNameAfrica_Porto_Novo /*name*/, + 0x3d1bf95d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Lagos /*eras*/, + &kZoneAfrica_Lagos /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Africa/Timbuktu -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAfrica_Timbuktu[] ACE_TIME_PROGMEM = "\x01" "Timbuktu"; + +const extended::Info::ZoneInfo kZoneAfrica_Timbuktu ACE_TIME_PROGMEM = { + kZoneNameAfrica_Timbuktu /*name*/, + 0xb164d56f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Anguilla -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Anguilla[] ACE_TIME_PROGMEM = "\x02" "Anguilla"; + +const extended::Info::ZoneInfo kZoneAmerica_Anguilla ACE_TIME_PROGMEM = { + kZoneNameAmerica_Anguilla /*name*/, + 0xafe31333 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Antigua -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Antigua[] ACE_TIME_PROGMEM = "\x02" "Antigua"; + +const extended::Info::ZoneInfo kZoneAmerica_Antigua ACE_TIME_PROGMEM = { + kZoneNameAmerica_Antigua /*name*/, + 0xc067a32f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Argentina/ComodRivadavia -> America/Argentina/Catamarca +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Argentina_ComodRivadavia[] ACE_TIME_PROGMEM = "\x02" "\x04" "ComodRivadavia"; + +const extended::Info::ZoneInfo kZoneAmerica_Argentina_ComodRivadavia ACE_TIME_PROGMEM = { + kZoneNameAmerica_Argentina_ComodRivadavia /*name*/, + 0x22758877 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Catamarca /*eras*/, + &kZoneAmerica_Argentina_Catamarca /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Aruba -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Aruba[] ACE_TIME_PROGMEM = "\x02" "Aruba"; + +const extended::Info::ZoneInfo kZoneAmerica_Aruba ACE_TIME_PROGMEM = { + kZoneNameAmerica_Aruba /*name*/, + 0x97cf8651 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Atikokan -> America/Panama +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Atikokan[] ACE_TIME_PROGMEM = "\x02" "Atikokan"; + +const extended::Info::ZoneInfo kZoneAmerica_Atikokan ACE_TIME_PROGMEM = { + kZoneNameAmerica_Atikokan /*name*/, + 0x81b92098 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Panama /*eras*/, + &kZoneAmerica_Panama /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Atka -> America/Adak +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Atka[] ACE_TIME_PROGMEM = "\x02" "Atka"; + +const extended::Info::ZoneInfo kZoneAmerica_Atka ACE_TIME_PROGMEM = { + kZoneNameAmerica_Atka /*name*/, + 0x97fe8f27 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Adak /*eras*/, + &kZoneAmerica_Adak /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Blanc-Sablon -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Blanc_Sablon[] ACE_TIME_PROGMEM = "\x02" "Blanc-Sablon"; + +const extended::Info::ZoneInfo kZoneAmerica_Blanc_Sablon ACE_TIME_PROGMEM = { + kZoneNameAmerica_Blanc_Sablon /*name*/, + 0x6e299892 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Buenos_Aires -> America/Argentina/Buenos_Aires +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Buenos_Aires[] ACE_TIME_PROGMEM = "\x02" "Buenos_Aires"; + +const extended::Info::ZoneInfo kZoneAmerica_Buenos_Aires ACE_TIME_PROGMEM = { + kZoneNameAmerica_Buenos_Aires /*name*/, + 0x67d79a05 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Buenos_Aires /*eras*/, + &kZoneAmerica_Argentina_Buenos_Aires /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Catamarca -> America/Argentina/Catamarca +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Catamarca[] ACE_TIME_PROGMEM = "\x02" "Catamarca"; + +const extended::Info::ZoneInfo kZoneAmerica_Catamarca ACE_TIME_PROGMEM = { + kZoneNameAmerica_Catamarca /*name*/, + 0x5036e963 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Catamarca /*eras*/, + &kZoneAmerica_Argentina_Catamarca /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Cayman -> America/Panama +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Cayman[] ACE_TIME_PROGMEM = "\x02" "Cayman"; + +const extended::Info::ZoneInfo kZoneAmerica_Cayman ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cayman /*name*/, + 0x953961df /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Panama /*eras*/, + &kZoneAmerica_Panama /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Coral_Harbour -> America/Panama +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Coral_Harbour[] ACE_TIME_PROGMEM = "\x02" "Coral_Harbour"; + +const extended::Info::ZoneInfo kZoneAmerica_Coral_Harbour ACE_TIME_PROGMEM = { + kZoneNameAmerica_Coral_Harbour /*name*/, + 0xabcb7569 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Panama /*eras*/, + &kZoneAmerica_Panama /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Cordoba -> America/Argentina/Cordoba +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Cordoba[] ACE_TIME_PROGMEM = "\x02" "Cordoba"; + +const extended::Info::ZoneInfo kZoneAmerica_Cordoba ACE_TIME_PROGMEM = { + kZoneNameAmerica_Cordoba /*name*/, + 0x5c8a7600 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Cordoba /*eras*/, + &kZoneAmerica_Argentina_Cordoba /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Creston -> America/Phoenix +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Creston[] ACE_TIME_PROGMEM = "\x02" "Creston"; + +const extended::Info::ZoneInfo kZoneAmerica_Creston ACE_TIME_PROGMEM = { + kZoneNameAmerica_Creston /*name*/, + 0x62a70204 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Phoenix /*eras*/, + &kZoneAmerica_Phoenix /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Curacao -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Curacao[] ACE_TIME_PROGMEM = "\x02" "Curacao"; + +const extended::Info::ZoneInfo kZoneAmerica_Curacao ACE_TIME_PROGMEM = { + kZoneNameAmerica_Curacao /*name*/, + 0x6a879184 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Dominica -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Dominica[] ACE_TIME_PROGMEM = "\x02" "Dominica"; + +const extended::Info::ZoneInfo kZoneAmerica_Dominica ACE_TIME_PROGMEM = { + kZoneNameAmerica_Dominica /*name*/, + 0xcecb4c4a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Ensenada -> America/Tijuana +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Ensenada[] ACE_TIME_PROGMEM = "\x02" "Ensenada"; + +const extended::Info::ZoneInfo kZoneAmerica_Ensenada ACE_TIME_PROGMEM = { + kZoneNameAmerica_Ensenada /*name*/, + 0x7bc95445 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Tijuana /*eras*/, + &kZoneAmerica_Tijuana /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Fort_Wayne -> America/Indiana/Indianapolis +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Fort_Wayne[] ACE_TIME_PROGMEM = "\x02" "Fort_Wayne"; + +const extended::Info::ZoneInfo kZoneAmerica_Fort_Wayne ACE_TIME_PROGMEM = { + kZoneNameAmerica_Fort_Wayne /*name*/, + 0x7eaaaf24 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Indianapolis /*eras*/, + &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Godthab -> America/Nuuk +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Godthab[] ACE_TIME_PROGMEM = "\x02" "Godthab"; + +const extended::Info::ZoneInfo kZoneAmerica_Godthab ACE_TIME_PROGMEM = { + kZoneNameAmerica_Godthab /*name*/, + 0x8f7eba1f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Nuuk /*eras*/, + &kZoneAmerica_Nuuk /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Grenada -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Grenada[] ACE_TIME_PROGMEM = "\x02" "Grenada"; + +const extended::Info::ZoneInfo kZoneAmerica_Grenada ACE_TIME_PROGMEM = { + kZoneNameAmerica_Grenada /*name*/, + 0x968ce4d8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Guadeloupe -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Guadeloupe[] ACE_TIME_PROGMEM = "\x02" "Guadeloupe"; + +const extended::Info::ZoneInfo kZoneAmerica_Guadeloupe ACE_TIME_PROGMEM = { + kZoneNameAmerica_Guadeloupe /*name*/, + 0xcd1f8a31 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Indianapolis -> America/Indiana/Indianapolis +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "Indianapolis"; + +const extended::Info::ZoneInfo kZoneAmerica_Indianapolis ACE_TIME_PROGMEM = { + kZoneNameAmerica_Indianapolis /*name*/, + 0x6a009ae1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Indianapolis /*eras*/, + &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Jujuy -> America/Argentina/Jujuy +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Jujuy[] ACE_TIME_PROGMEM = "\x02" "Jujuy"; + +const extended::Info::ZoneInfo kZoneAmerica_Jujuy ACE_TIME_PROGMEM = { + kZoneNameAmerica_Jujuy /*name*/, + 0x9873dbbd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Jujuy /*eras*/, + &kZoneAmerica_Argentina_Jujuy /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Knox_IN -> America/Indiana/Knox +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Knox_IN[] ACE_TIME_PROGMEM = "\x02" "Knox_IN"; + +const extended::Info::ZoneInfo kZoneAmerica_Knox_IN ACE_TIME_PROGMEM = { + kZoneNameAmerica_Knox_IN /*name*/, + 0xc1db9a1c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Knox /*eras*/, + &kZoneAmerica_Indiana_Knox /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Kralendijk -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Kralendijk[] ACE_TIME_PROGMEM = "\x02" "Kralendijk"; + +const extended::Info::ZoneInfo kZoneAmerica_Kralendijk ACE_TIME_PROGMEM = { + kZoneNameAmerica_Kralendijk /*name*/, + 0xe7c456c5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Louisville -> America/Kentucky/Louisville +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Louisville[] ACE_TIME_PROGMEM = "\x02" "Louisville"; + +const extended::Info::ZoneInfo kZoneAmerica_Louisville ACE_TIME_PROGMEM = { + kZoneNameAmerica_Louisville /*name*/, + 0x3dcb47ee /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Kentucky_Louisville /*eras*/, + &kZoneAmerica_Kentucky_Louisville /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Lower_Princes -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Lower_Princes[] ACE_TIME_PROGMEM = "\x02" "Lower_Princes"; + +const extended::Info::ZoneInfo kZoneAmerica_Lower_Princes ACE_TIME_PROGMEM = { + kZoneNameAmerica_Lower_Princes /*name*/, + 0x6ae45b62 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Marigot -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Marigot[] ACE_TIME_PROGMEM = "\x02" "Marigot"; + +const extended::Info::ZoneInfo kZoneAmerica_Marigot ACE_TIME_PROGMEM = { + kZoneNameAmerica_Marigot /*name*/, + 0x3dab3a59 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Mendoza -> America/Argentina/Mendoza +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Mendoza[] ACE_TIME_PROGMEM = "\x02" "Mendoza"; + +const extended::Info::ZoneInfo kZoneAmerica_Mendoza ACE_TIME_PROGMEM = { + kZoneNameAmerica_Mendoza /*name*/, + 0x46b4e054 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Mendoza /*eras*/, + &kZoneAmerica_Argentina_Mendoza /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Montreal -> America/Toronto +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Montreal[] ACE_TIME_PROGMEM = "\x02" "Montreal"; + +const extended::Info::ZoneInfo kZoneAmerica_Montreal ACE_TIME_PROGMEM = { + kZoneNameAmerica_Montreal /*name*/, + 0x203a1ea8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + &kZoneAmerica_Toronto /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Montserrat -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Montserrat[] ACE_TIME_PROGMEM = "\x02" "Montserrat"; + +const extended::Info::ZoneInfo kZoneAmerica_Montserrat ACE_TIME_PROGMEM = { + kZoneNameAmerica_Montserrat /*name*/, + 0x199b0a35 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Nassau -> America/Toronto +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Nassau[] ACE_TIME_PROGMEM = "\x02" "Nassau"; + +const extended::Info::ZoneInfo kZoneAmerica_Nassau ACE_TIME_PROGMEM = { + kZoneNameAmerica_Nassau /*name*/, + 0xaedef011 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + &kZoneAmerica_Toronto /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Nipigon -> America/Toronto +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Nipigon[] ACE_TIME_PROGMEM = "\x02" "Nipigon"; + +const extended::Info::ZoneInfo kZoneAmerica_Nipigon ACE_TIME_PROGMEM = { + kZoneNameAmerica_Nipigon /*name*/, + 0x9d2a8b1a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + &kZoneAmerica_Toronto /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Pangnirtung -> America/Iqaluit +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Pangnirtung[] ACE_TIME_PROGMEM = "\x02" "Pangnirtung"; + +const extended::Info::ZoneInfo kZoneAmerica_Pangnirtung ACE_TIME_PROGMEM = { + kZoneNameAmerica_Pangnirtung /*name*/, + 0x2d999193 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Iqaluit /*eras*/, + &kZoneAmerica_Iqaluit /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Port_of_Spain -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Port_of_Spain[] ACE_TIME_PROGMEM = "\x02" "Port_of_Spain"; + +const extended::Info::ZoneInfo kZoneAmerica_Port_of_Spain ACE_TIME_PROGMEM = { + kZoneNameAmerica_Port_of_Spain /*name*/, + 0xd8b28d59 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Porto_Acre -> America/Rio_Branco +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Porto_Acre[] ACE_TIME_PROGMEM = "\x02" "Porto_Acre"; + +const extended::Info::ZoneInfo kZoneAmerica_Porto_Acre ACE_TIME_PROGMEM = { + kZoneNameAmerica_Porto_Acre /*name*/, + 0xcce5bf54 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Rio_Branco /*eras*/, + &kZoneAmerica_Rio_Branco /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Rainy_River -> America/Winnipeg +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Rainy_River[] ACE_TIME_PROGMEM = "\x02" "Rainy_River"; + +const extended::Info::ZoneInfo kZoneAmerica_Rainy_River ACE_TIME_PROGMEM = { + kZoneNameAmerica_Rainy_River /*name*/, + 0x9cd58a10 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Winnipeg /*eras*/, + &kZoneAmerica_Winnipeg /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Rosario -> America/Argentina/Cordoba +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Rosario[] ACE_TIME_PROGMEM = "\x02" "Rosario"; + +const extended::Info::ZoneInfo kZoneAmerica_Rosario ACE_TIME_PROGMEM = { + kZoneNameAmerica_Rosario /*name*/, + 0xdf448665 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Argentina_Cordoba /*eras*/, + &kZoneAmerica_Argentina_Cordoba /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Santa_Isabel -> America/Tijuana +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Santa_Isabel[] ACE_TIME_PROGMEM = "\x02" "Santa_Isabel"; + +const extended::Info::ZoneInfo kZoneAmerica_Santa_Isabel ACE_TIME_PROGMEM = { + kZoneNameAmerica_Santa_Isabel /*name*/, + 0xfd18a56c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Tijuana /*eras*/, + &kZoneAmerica_Tijuana /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Shiprock -> America/Denver +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Shiprock[] ACE_TIME_PROGMEM = "\x02" "Shiprock"; + +const extended::Info::ZoneInfo kZoneAmerica_Shiprock ACE_TIME_PROGMEM = { + kZoneNameAmerica_Shiprock /*name*/, + 0x82fb7049 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Denver /*eras*/, + &kZoneAmerica_Denver /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/St_Barthelemy -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_St_Barthelemy[] ACE_TIME_PROGMEM = "\x02" "St_Barthelemy"; + +const extended::Info::ZoneInfo kZoneAmerica_St_Barthelemy ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Barthelemy /*name*/, + 0x054e6a79 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/St_Kitts -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_St_Kitts[] ACE_TIME_PROGMEM = "\x02" "St_Kitts"; + +const extended::Info::ZoneInfo kZoneAmerica_St_Kitts ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Kitts /*name*/, + 0x04c0507b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/St_Lucia -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_St_Lucia[] ACE_TIME_PROGMEM = "\x02" "St_Lucia"; + +const extended::Info::ZoneInfo kZoneAmerica_St_Lucia ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Lucia /*name*/, + 0x04d8b3ba /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/St_Thomas -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_St_Thomas[] ACE_TIME_PROGMEM = "\x02" "St_Thomas"; + +const extended::Info::ZoneInfo kZoneAmerica_St_Thomas ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Thomas /*name*/, + 0xb1b3d778 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/St_Vincent -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_St_Vincent[] ACE_TIME_PROGMEM = "\x02" "St_Vincent"; + +const extended::Info::ZoneInfo kZoneAmerica_St_Vincent ACE_TIME_PROGMEM = { + kZoneNameAmerica_St_Vincent /*name*/, + 0x8460e523 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Thunder_Bay -> America/Toronto +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Thunder_Bay[] ACE_TIME_PROGMEM = "\x02" "Thunder_Bay"; + +const extended::Info::ZoneInfo kZoneAmerica_Thunder_Bay ACE_TIME_PROGMEM = { + kZoneNameAmerica_Thunder_Bay /*name*/, + 0xf962e71b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + &kZoneAmerica_Toronto /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Tortola -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Tortola[] ACE_TIME_PROGMEM = "\x02" "Tortola"; + +const extended::Info::ZoneInfo kZoneAmerica_Tortola ACE_TIME_PROGMEM = { + kZoneNameAmerica_Tortola /*name*/, + 0x7931462b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Virgin -> America/Puerto_Rico +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Virgin[] ACE_TIME_PROGMEM = "\x02" "Virgin"; + +const extended::Info::ZoneInfo kZoneAmerica_Virgin ACE_TIME_PROGMEM = { + kZoneNameAmerica_Virgin /*name*/, + 0xc2183ab5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Puerto_Rico /*eras*/, + &kZoneAmerica_Puerto_Rico /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: America/Yellowknife -> America/Edmonton +//--------------------------------------------------------------------------- + +static const char kZoneNameAmerica_Yellowknife[] ACE_TIME_PROGMEM = "\x02" "Yellowknife"; + +const extended::Info::ZoneInfo kZoneAmerica_Yellowknife ACE_TIME_PROGMEM = { + kZoneNameAmerica_Yellowknife /*name*/, + 0x0f76c76f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Edmonton /*eras*/, + &kZoneAmerica_Edmonton /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Antarctica/DumontDUrville -> Pacific/Port_Moresby +//--------------------------------------------------------------------------- + +static const char kZoneNameAntarctica_DumontDUrville[] ACE_TIME_PROGMEM = "\x03" "DumontDUrville"; + +const extended::Info::ZoneInfo kZoneAntarctica_DumontDUrville ACE_TIME_PROGMEM = { + kZoneNameAntarctica_DumontDUrville /*name*/, + 0x5a3c656c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Port_Moresby /*eras*/, + &kZonePacific_Port_Moresby /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Antarctica/McMurdo -> Pacific/Auckland +//--------------------------------------------------------------------------- + +static const char kZoneNameAntarctica_McMurdo[] ACE_TIME_PROGMEM = "\x03" "McMurdo"; + +const extended::Info::ZoneInfo kZoneAntarctica_McMurdo ACE_TIME_PROGMEM = { + kZoneNameAntarctica_McMurdo /*name*/, + 0x6eeb5585 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Auckland /*eras*/, + &kZonePacific_Auckland /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Antarctica/South_Pole -> Pacific/Auckland +//--------------------------------------------------------------------------- + +static const char kZoneNameAntarctica_South_Pole[] ACE_TIME_PROGMEM = "\x03" "South_Pole"; + +const extended::Info::ZoneInfo kZoneAntarctica_South_Pole ACE_TIME_PROGMEM = { + kZoneNameAntarctica_South_Pole /*name*/, + 0xcd96b290 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Auckland /*eras*/, + &kZonePacific_Auckland /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Antarctica/Syowa -> Asia/Riyadh +//--------------------------------------------------------------------------- + +static const char kZoneNameAntarctica_Syowa[] ACE_TIME_PROGMEM = "\x03" "Syowa"; + +const extended::Info::ZoneInfo kZoneAntarctica_Syowa ACE_TIME_PROGMEM = { + kZoneNameAntarctica_Syowa /*name*/, + 0xe330c7e1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Riyadh /*eras*/, + &kZoneAsia_Riyadh /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Arctic/Longyearbyen -> Europe/Berlin +//--------------------------------------------------------------------------- + +static const char kZoneNameArctic_Longyearbyen[] ACE_TIME_PROGMEM = "Arctic/Longyearbyen"; + +const extended::Info::ZoneInfo kZoneArctic_Longyearbyen ACE_TIME_PROGMEM = { + kZoneNameArctic_Longyearbyen /*name*/, + 0xd23e7859 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + &kZoneEurope_Berlin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Aden -> Asia/Riyadh +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Aden[] ACE_TIME_PROGMEM = "\x05" "Aden"; + +const extended::Info::ZoneInfo kZoneAsia_Aden ACE_TIME_PROGMEM = { + kZoneNameAsia_Aden /*name*/, + 0x1fa7084a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Riyadh /*eras*/, + &kZoneAsia_Riyadh /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Ashkhabad -> Asia/Ashgabat +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Ashkhabad[] ACE_TIME_PROGMEM = "\x05" "Ashkhabad"; + +const extended::Info::ZoneInfo kZoneAsia_Ashkhabad ACE_TIME_PROGMEM = { + kZoneNameAsia_Ashkhabad /*name*/, + 0x15454f09 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ashgabat /*eras*/, + &kZoneAsia_Ashgabat /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Bahrain -> Asia/Qatar +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Bahrain[] ACE_TIME_PROGMEM = "\x05" "Bahrain"; + +const extended::Info::ZoneInfo kZoneAsia_Bahrain ACE_TIME_PROGMEM = { + kZoneNameAsia_Bahrain /*name*/, + 0x9d078487 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Qatar /*eras*/, + &kZoneAsia_Qatar /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Brunei -> Asia/Kuching +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Brunei[] ACE_TIME_PROGMEM = "\x05" "Brunei"; + +const extended::Info::ZoneInfo kZoneAsia_Brunei ACE_TIME_PROGMEM = { + kZoneNameAsia_Brunei /*name*/, + 0xa8e595f7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kuching /*eras*/, + &kZoneAsia_Kuching /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Calcutta -> Asia/Kolkata +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Calcutta[] ACE_TIME_PROGMEM = "\x05" "Calcutta"; + +const extended::Info::ZoneInfo kZoneAsia_Calcutta ACE_TIME_PROGMEM = { + kZoneNameAsia_Calcutta /*name*/, + 0x328a44c3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kolkata /*eras*/, + &kZoneAsia_Kolkata /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Choibalsan -> Asia/Ulaanbaatar +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Choibalsan[] ACE_TIME_PROGMEM = "\x05" "Choibalsan"; + +const extended::Info::ZoneInfo kZoneAsia_Choibalsan ACE_TIME_PROGMEM = { + kZoneNameAsia_Choibalsan /*name*/, + 0x928aa4a6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ulaanbaatar /*eras*/, + &kZoneAsia_Ulaanbaatar /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Chongqing -> Asia/Shanghai +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Chongqing[] ACE_TIME_PROGMEM = "\x05" "Chongqing"; + +const extended::Info::ZoneInfo kZoneAsia_Chongqing ACE_TIME_PROGMEM = { + kZoneNameAsia_Chongqing /*name*/, + 0xf937fb90 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Shanghai /*eras*/, + &kZoneAsia_Shanghai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Chungking -> Asia/Shanghai +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Chungking[] ACE_TIME_PROGMEM = "\x05" "Chungking"; + +const extended::Info::ZoneInfo kZoneAsia_Chungking ACE_TIME_PROGMEM = { + kZoneNameAsia_Chungking /*name*/, + 0xc7121dd0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Shanghai /*eras*/, + &kZoneAsia_Shanghai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Dacca -> Asia/Dhaka +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Dacca[] ACE_TIME_PROGMEM = "\x05" "Dacca"; + +const extended::Info::ZoneInfo kZoneAsia_Dacca ACE_TIME_PROGMEM = { + kZoneNameAsia_Dacca /*name*/, + 0x14bcac5e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dhaka /*eras*/, + &kZoneAsia_Dhaka /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Harbin -> Asia/Shanghai +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Harbin[] ACE_TIME_PROGMEM = "\x05" "Harbin"; + +const extended::Info::ZoneInfo kZoneAsia_Harbin ACE_TIME_PROGMEM = { + kZoneNameAsia_Harbin /*name*/, + 0xb5af1186 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Shanghai /*eras*/, + &kZoneAsia_Shanghai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Istanbul -> Europe/Istanbul +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Istanbul[] ACE_TIME_PROGMEM = "\x05" "Istanbul"; + +const extended::Info::ZoneInfo kZoneAsia_Istanbul ACE_TIME_PROGMEM = { + kZoneNameAsia_Istanbul /*name*/, + 0x382e7894 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Istanbul /*eras*/, + &kZoneEurope_Istanbul /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Kashgar -> Asia/Urumqi +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Kashgar[] ACE_TIME_PROGMEM = "\x05" "Kashgar"; + +const extended::Info::ZoneInfo kZoneAsia_Kashgar ACE_TIME_PROGMEM = { + kZoneNameAsia_Kashgar /*name*/, + 0x52955193 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Urumqi /*eras*/, + &kZoneAsia_Urumqi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Katmandu -> Asia/Kathmandu +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Katmandu[] ACE_TIME_PROGMEM = "\x05" "Katmandu"; + +const extended::Info::ZoneInfo kZoneAsia_Katmandu ACE_TIME_PROGMEM = { + kZoneNameAsia_Katmandu /*name*/, + 0xa7ec12c7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Kathmandu /*eras*/, + &kZoneAsia_Kathmandu /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Kuala_Lumpur -> Asia/Singapore +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Kuala_Lumpur[] ACE_TIME_PROGMEM = "\x05" "Kuala_Lumpur"; + +const extended::Info::ZoneInfo kZoneAsia_Kuala_Lumpur ACE_TIME_PROGMEM = { + kZoneNameAsia_Kuala_Lumpur /*name*/, + 0x014763c4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Singapore /*eras*/, + &kZoneAsia_Singapore /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Kuwait -> Asia/Riyadh +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Kuwait[] ACE_TIME_PROGMEM = "\x05" "Kuwait"; + +const extended::Info::ZoneInfo kZoneAsia_Kuwait ACE_TIME_PROGMEM = { + kZoneNameAsia_Kuwait /*name*/, + 0xbe1b2f27 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Riyadh /*eras*/, + &kZoneAsia_Riyadh /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Macao -> Asia/Macau +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Macao[] ACE_TIME_PROGMEM = "\x05" "Macao"; + +const extended::Info::ZoneInfo kZoneAsia_Macao ACE_TIME_PROGMEM = { + kZoneNameAsia_Macao /*name*/, + 0x155f88b3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Macau /*eras*/, + &kZoneAsia_Macau /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Muscat -> Asia/Dubai +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Muscat[] ACE_TIME_PROGMEM = "\x05" "Muscat"; + +const extended::Info::ZoneInfo kZoneAsia_Muscat ACE_TIME_PROGMEM = { + kZoneNameAsia_Muscat /*name*/, + 0xc2c3565f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dubai /*eras*/, + &kZoneAsia_Dubai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Phnom_Penh -> Asia/Bangkok +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Phnom_Penh[] ACE_TIME_PROGMEM = "\x05" "Phnom_Penh"; + +const extended::Info::ZoneInfo kZoneAsia_Phnom_Penh ACE_TIME_PROGMEM = { + kZoneNameAsia_Phnom_Penh /*name*/, + 0xc224945e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Bangkok /*eras*/, + &kZoneAsia_Bangkok /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Rangoon -> Asia/Yangon +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Rangoon[] ACE_TIME_PROGMEM = "\x05" "Rangoon"; + +const extended::Info::ZoneInfo kZoneAsia_Rangoon ACE_TIME_PROGMEM = { + kZoneNameAsia_Rangoon /*name*/, + 0x6d1217c6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yangon /*eras*/, + &kZoneAsia_Yangon /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Saigon -> Asia/Ho_Chi_Minh +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Saigon[] ACE_TIME_PROGMEM = "\x05" "Saigon"; + +const extended::Info::ZoneInfo kZoneAsia_Saigon ACE_TIME_PROGMEM = { + kZoneNameAsia_Saigon /*name*/, + 0xcf52f713 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ho_Chi_Minh /*eras*/, + &kZoneAsia_Ho_Chi_Minh /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Tel_Aviv -> Asia/Jerusalem +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Tel_Aviv[] ACE_TIME_PROGMEM = "\x05" "Tel_Aviv"; + +const extended::Info::ZoneInfo kZoneAsia_Tel_Aviv ACE_TIME_PROGMEM = { + kZoneNameAsia_Tel_Aviv /*name*/, + 0x166d7c2c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Jerusalem /*eras*/, + &kZoneAsia_Jerusalem /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Thimbu -> Asia/Thimphu +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Thimbu[] ACE_TIME_PROGMEM = "\x05" "Thimbu"; + +const extended::Info::ZoneInfo kZoneAsia_Thimbu ACE_TIME_PROGMEM = { + kZoneNameAsia_Thimbu /*name*/, + 0xd226e31b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Thimphu /*eras*/, + &kZoneAsia_Thimphu /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Ujung_Pandang -> Asia/Makassar +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Ujung_Pandang[] ACE_TIME_PROGMEM = "\x05" "Ujung_Pandang"; + +const extended::Info::ZoneInfo kZoneAsia_Ujung_Pandang ACE_TIME_PROGMEM = { + kZoneNameAsia_Ujung_Pandang /*name*/, + 0x5d001eb3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Makassar /*eras*/, + &kZoneAsia_Makassar /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Ulan_Bator -> Asia/Ulaanbaatar +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Ulan_Bator[] ACE_TIME_PROGMEM = "\x05" "Ulan_Bator"; + +const extended::Info::ZoneInfo kZoneAsia_Ulan_Bator ACE_TIME_PROGMEM = { + kZoneNameAsia_Ulan_Bator /*name*/, + 0x394db4d9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Ulaanbaatar /*eras*/, + &kZoneAsia_Ulaanbaatar /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Asia/Vientiane -> Asia/Bangkok +//--------------------------------------------------------------------------- + +static const char kZoneNameAsia_Vientiane[] ACE_TIME_PROGMEM = "\x05" "Vientiane"; + +const extended::Info::ZoneInfo kZoneAsia_Vientiane ACE_TIME_PROGMEM = { + kZoneNameAsia_Vientiane /*name*/, + 0x89d68d75 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Bangkok /*eras*/, + &kZoneAsia_Bangkok /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Atlantic/Faeroe -> Atlantic/Faroe +//--------------------------------------------------------------------------- + +static const char kZoneNameAtlantic_Faeroe[] ACE_TIME_PROGMEM = "\x06" "Faeroe"; + +const extended::Info::ZoneInfo kZoneAtlantic_Faeroe ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Faeroe /*name*/, + 0x031ec516 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAtlantic_Faroe /*eras*/, + &kZoneAtlantic_Faroe /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Atlantic/Jan_Mayen -> Europe/Berlin +//--------------------------------------------------------------------------- + +static const char kZoneNameAtlantic_Jan_Mayen[] ACE_TIME_PROGMEM = "\x06" "Jan_Mayen"; + +const extended::Info::ZoneInfo kZoneAtlantic_Jan_Mayen ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Jan_Mayen /*name*/, + 0x5a7535b6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + &kZoneEurope_Berlin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Atlantic/Reykjavik -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAtlantic_Reykjavik[] ACE_TIME_PROGMEM = "\x06" "Reykjavik"; + +const extended::Info::ZoneInfo kZoneAtlantic_Reykjavik ACE_TIME_PROGMEM = { + kZoneNameAtlantic_Reykjavik /*name*/, + 0x1c2b4f74 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Atlantic/St_Helena -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameAtlantic_St_Helena[] ACE_TIME_PROGMEM = "\x06" "St_Helena"; + +const extended::Info::ZoneInfo kZoneAtlantic_St_Helena ACE_TIME_PROGMEM = { + kZoneNameAtlantic_St_Helena /*name*/, + 0x451fc5f7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/ACT -> Australia/Sydney +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_ACT[] ACE_TIME_PROGMEM = "\x07" "ACT"; + +const extended::Info::ZoneInfo kZoneAustralia_ACT ACE_TIME_PROGMEM = { + kZoneNameAustralia_ACT /*name*/, + 0x8a970eb2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Sydney /*eras*/, + &kZoneAustralia_Sydney /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Canberra -> Australia/Sydney +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Canberra[] ACE_TIME_PROGMEM = "\x07" "Canberra"; + +const extended::Info::ZoneInfo kZoneAustralia_Canberra ACE_TIME_PROGMEM = { + kZoneNameAustralia_Canberra /*name*/, + 0x2a09ae58 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Sydney /*eras*/, + &kZoneAustralia_Sydney /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Currie -> Australia/Hobart +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Currie[] ACE_TIME_PROGMEM = "\x07" "Currie"; + +const extended::Info::ZoneInfo kZoneAustralia_Currie ACE_TIME_PROGMEM = { + kZoneNameAustralia_Currie /*name*/, + 0x278b6a24 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Hobart /*eras*/, + &kZoneAustralia_Hobart /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/LHI -> Australia/Lord_Howe +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_LHI[] ACE_TIME_PROGMEM = "\x07" "LHI"; + +const extended::Info::ZoneInfo kZoneAustralia_LHI ACE_TIME_PROGMEM = { + kZoneNameAustralia_LHI /*name*/, + 0x8a973e17 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Lord_Howe /*eras*/, + &kZoneAustralia_Lord_Howe /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/NSW -> Australia/Sydney +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_NSW[] ACE_TIME_PROGMEM = "\x07" "NSW"; + +const extended::Info::ZoneInfo kZoneAustralia_NSW ACE_TIME_PROGMEM = { + kZoneNameAustralia_NSW /*name*/, + 0x8a974812 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Sydney /*eras*/, + &kZoneAustralia_Sydney /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/North -> Australia/Darwin +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_North[] ACE_TIME_PROGMEM = "\x07" "North"; + +const extended::Info::ZoneInfo kZoneAustralia_North ACE_TIME_PROGMEM = { + kZoneNameAustralia_North /*name*/, + 0x8d997165 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Darwin /*eras*/, + &kZoneAustralia_Darwin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Queensland -> Australia/Brisbane +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Queensland[] ACE_TIME_PROGMEM = "\x07" "Queensland"; + +const extended::Info::ZoneInfo kZoneAustralia_Queensland ACE_TIME_PROGMEM = { + kZoneNameAustralia_Queensland /*name*/, + 0xd326ed0a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Brisbane /*eras*/, + &kZoneAustralia_Brisbane /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/South -> Australia/Adelaide +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_South[] ACE_TIME_PROGMEM = "\x07" "South"; + +const extended::Info::ZoneInfo kZoneAustralia_South ACE_TIME_PROGMEM = { + kZoneNameAustralia_South /*name*/, + 0x8df3f8ad /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Adelaide /*eras*/, + &kZoneAustralia_Adelaide /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Tasmania -> Australia/Hobart +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Tasmania[] ACE_TIME_PROGMEM = "\x07" "Tasmania"; + +const extended::Info::ZoneInfo kZoneAustralia_Tasmania ACE_TIME_PROGMEM = { + kZoneNameAustralia_Tasmania /*name*/, + 0xe6d76648 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Hobart /*eras*/, + &kZoneAustralia_Hobart /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Victoria -> Australia/Melbourne +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Victoria[] ACE_TIME_PROGMEM = "\x07" "Victoria"; + +const extended::Info::ZoneInfo kZoneAustralia_Victoria ACE_TIME_PROGMEM = { + kZoneNameAustralia_Victoria /*name*/, + 0x0260d5db /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Melbourne /*eras*/, + &kZoneAustralia_Melbourne /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/West -> Australia/Perth +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_West[] ACE_TIME_PROGMEM = "\x07" "West"; + +const extended::Info::ZoneInfo kZoneAustralia_West ACE_TIME_PROGMEM = { + kZoneNameAustralia_West /*name*/, + 0xdd858a5d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Perth /*eras*/, + &kZoneAustralia_Perth /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Australia/Yancowinna -> Australia/Broken_Hill +//--------------------------------------------------------------------------- + +static const char kZoneNameAustralia_Yancowinna[] ACE_TIME_PROGMEM = "\x07" "Yancowinna"; + +const extended::Info::ZoneInfo kZoneAustralia_Yancowinna ACE_TIME_PROGMEM = { + kZoneNameAustralia_Yancowinna /*name*/, + 0x90bac131 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAustralia_Broken_Hill /*eras*/, + &kZoneAustralia_Broken_Hill /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Brazil/Acre -> America/Rio_Branco +//--------------------------------------------------------------------------- + +static const char kZoneNameBrazil_Acre[] ACE_TIME_PROGMEM = "\x08" "Acre"; + +const extended::Info::ZoneInfo kZoneBrazil_Acre ACE_TIME_PROGMEM = { + kZoneNameBrazil_Acre /*name*/, + 0x66934f93 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Rio_Branco /*eras*/, + &kZoneAmerica_Rio_Branco /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Brazil/DeNoronha -> America/Noronha +//--------------------------------------------------------------------------- + +static const char kZoneNameBrazil_DeNoronha[] ACE_TIME_PROGMEM = "\x08" "DeNoronha"; + +const extended::Info::ZoneInfo kZoneBrazil_DeNoronha ACE_TIME_PROGMEM = { + kZoneNameBrazil_DeNoronha /*name*/, + 0x9b4cb496 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Noronha /*eras*/, + &kZoneAmerica_Noronha /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Brazil/East -> America/Sao_Paulo +//--------------------------------------------------------------------------- + +static const char kZoneNameBrazil_East[] ACE_TIME_PROGMEM = "\x08" "East"; + +const extended::Info::ZoneInfo kZoneBrazil_East ACE_TIME_PROGMEM = { + kZoneNameBrazil_East /*name*/, + 0x669578c5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Sao_Paulo /*eras*/, + &kZoneAmerica_Sao_Paulo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Brazil/West -> America/Manaus +//--------------------------------------------------------------------------- + +static const char kZoneNameBrazil_West[] ACE_TIME_PROGMEM = "\x08" "West"; + +const extended::Info::ZoneInfo kZoneBrazil_West ACE_TIME_PROGMEM = { + kZoneNameBrazil_West /*name*/, + 0x669f689b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Manaus /*eras*/, + &kZoneAmerica_Manaus /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: CET -> Europe/Brussels +//--------------------------------------------------------------------------- + +static const char kZoneNameCET[] ACE_TIME_PROGMEM = "CET"; + +const extended::Info::ZoneInfo kZoneCET ACE_TIME_PROGMEM = { + kZoneNameCET /*name*/, + 0x0b87d921 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Brussels /*eras*/, + &kZoneEurope_Brussels /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: CST6CDT -> America/Chicago +//--------------------------------------------------------------------------- + +static const char kZoneNameCST6CDT[] ACE_TIME_PROGMEM = "CST6CDT"; + +const extended::Info::ZoneInfo kZoneCST6CDT ACE_TIME_PROGMEM = { + kZoneNameCST6CDT /*name*/, + 0xf0e87d00 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Chicago /*eras*/, + &kZoneAmerica_Chicago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Atlantic -> America/Halifax +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Atlantic[] ACE_TIME_PROGMEM = "\x09" "Atlantic"; + +const extended::Info::ZoneInfo kZoneCanada_Atlantic ACE_TIME_PROGMEM = { + kZoneNameCanada_Atlantic /*name*/, + 0x536b119c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Halifax /*eras*/, + &kZoneAmerica_Halifax /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Central -> America/Winnipeg +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Central[] ACE_TIME_PROGMEM = "\x09" "Central"; + +const extended::Info::ZoneInfo kZoneCanada_Central ACE_TIME_PROGMEM = { + kZoneNameCanada_Central /*name*/, + 0x626710f5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Winnipeg /*eras*/, + &kZoneAmerica_Winnipeg /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Eastern -> America/Toronto +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Eastern[] ACE_TIME_PROGMEM = "\x09" "Eastern"; + +const extended::Info::ZoneInfo kZoneCanada_Eastern ACE_TIME_PROGMEM = { + kZoneNameCanada_Eastern /*name*/, + 0xf3612d5e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Toronto /*eras*/, + &kZoneAmerica_Toronto /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Mountain -> America/Edmonton +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Mountain[] ACE_TIME_PROGMEM = "\x09" "Mountain"; + +const extended::Info::ZoneInfo kZoneCanada_Mountain ACE_TIME_PROGMEM = { + kZoneNameCanada_Mountain /*name*/, + 0xfb8a8217 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Edmonton /*eras*/, + &kZoneAmerica_Edmonton /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Newfoundland -> America/St_Johns +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Newfoundland[] ACE_TIME_PROGMEM = "\x09" "Newfoundland"; + +const extended::Info::ZoneInfo kZoneCanada_Newfoundland ACE_TIME_PROGMEM = { + kZoneNameCanada_Newfoundland /*name*/, + 0xb396e991 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_St_Johns /*eras*/, + &kZoneAmerica_St_Johns /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Pacific -> America/Vancouver +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Pacific[] ACE_TIME_PROGMEM = "\x09" "Pacific"; + +const extended::Info::ZoneInfo kZoneCanada_Pacific ACE_TIME_PROGMEM = { + kZoneNameCanada_Pacific /*name*/, + 0x40fa3c7b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Vancouver /*eras*/, + &kZoneAmerica_Vancouver /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Saskatchewan -> America/Regina +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Saskatchewan[] ACE_TIME_PROGMEM = "\x09" "Saskatchewan"; + +const extended::Info::ZoneInfo kZoneCanada_Saskatchewan ACE_TIME_PROGMEM = { + kZoneNameCanada_Saskatchewan /*name*/, + 0x77311f49 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Regina /*eras*/, + &kZoneAmerica_Regina /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Canada/Yukon -> America/Whitehorse +//--------------------------------------------------------------------------- + +static const char kZoneNameCanada_Yukon[] ACE_TIME_PROGMEM = "\x09" "Yukon"; + +const extended::Info::ZoneInfo kZoneCanada_Yukon ACE_TIME_PROGMEM = { + kZoneNameCanada_Yukon /*name*/, + 0x78dd35c2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Whitehorse /*eras*/, + &kZoneAmerica_Whitehorse /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Chile/Continental -> America/Santiago +//--------------------------------------------------------------------------- + +static const char kZoneNameChile_Continental[] ACE_TIME_PROGMEM = "Chile/Continental"; + +const extended::Info::ZoneInfo kZoneChile_Continental ACE_TIME_PROGMEM = { + kZoneNameChile_Continental /*name*/, + 0x7e2bdb18 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Santiago /*eras*/, + &kZoneAmerica_Santiago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Chile/EasterIsland -> Pacific/Easter +//--------------------------------------------------------------------------- + +static const char kZoneNameChile_EasterIsland[] ACE_TIME_PROGMEM = "Chile/EasterIsland"; + +const extended::Info::ZoneInfo kZoneChile_EasterIsland ACE_TIME_PROGMEM = { + kZoneNameChile_EasterIsland /*name*/, + 0xb0982af8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Easter /*eras*/, + &kZonePacific_Easter /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Cuba -> America/Havana +//--------------------------------------------------------------------------- + +static const char kZoneNameCuba[] ACE_TIME_PROGMEM = "Cuba"; + +const extended::Info::ZoneInfo kZoneCuba ACE_TIME_PROGMEM = { + kZoneNameCuba /*name*/, + 0x7c83cba0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Havana /*eras*/, + &kZoneAmerica_Havana /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: EET -> Europe/Athens +//--------------------------------------------------------------------------- + +static const char kZoneNameEET[] ACE_TIME_PROGMEM = "EET"; + +const extended::Info::ZoneInfo kZoneEET ACE_TIME_PROGMEM = { + kZoneNameEET /*name*/, + 0x0b87e1a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Athens /*eras*/, + &kZoneEurope_Athens /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: EST -> America/Panama +//--------------------------------------------------------------------------- + +static const char kZoneNameEST[] ACE_TIME_PROGMEM = "EST"; + +const extended::Info::ZoneInfo kZoneEST ACE_TIME_PROGMEM = { + kZoneNameEST /*name*/, + 0x0b87e371 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Panama /*eras*/, + &kZoneAmerica_Panama /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: EST5EDT -> America/New_York +//--------------------------------------------------------------------------- + +static const char kZoneNameEST5EDT[] ACE_TIME_PROGMEM = "EST5EDT"; + +const extended::Info::ZoneInfo kZoneEST5EDT ACE_TIME_PROGMEM = { + kZoneNameEST5EDT /*name*/, + 0x8adc72a3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_New_York /*eras*/, + &kZoneAmerica_New_York /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Egypt -> Africa/Cairo +//--------------------------------------------------------------------------- + +static const char kZoneNameEgypt[] ACE_TIME_PROGMEM = "Egypt"; + +const extended::Info::ZoneInfo kZoneEgypt ACE_TIME_PROGMEM = { + kZoneNameEgypt /*name*/, + 0x0d1a278e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Cairo /*eras*/, + &kZoneAfrica_Cairo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Eire -> Europe/Dublin +//--------------------------------------------------------------------------- + +static const char kZoneNameEire[] ACE_TIME_PROGMEM = "Eire"; + +const extended::Info::ZoneInfo kZoneEire ACE_TIME_PROGMEM = { + kZoneNameEire /*name*/, + 0x7c84b36a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Dublin /*eras*/, + &kZoneEurope_Dublin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/GMT+0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_GMT_PLUS_0[] ACE_TIME_PROGMEM = "\x0a" "GMT+0"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_0 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_PLUS_0 /*name*/, + 0x9d13da13 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/GMT-0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_GMT_0[] ACE_TIME_PROGMEM = "\x0a" "GMT-0"; + +const extended::Info::ZoneInfo kZoneEtc_GMT_0 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT_0 /*name*/, + 0x9d13da55 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/GMT0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_GMT0[] ACE_TIME_PROGMEM = "\x0a" "GMT0"; + +const extended::Info::ZoneInfo kZoneEtc_GMT0 ACE_TIME_PROGMEM = { + kZoneNameEtc_GMT0 /*name*/, + 0xf53ea988 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/Greenwich -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_Greenwich[] ACE_TIME_PROGMEM = "\x0a" "Greenwich"; + +const extended::Info::ZoneInfo kZoneEtc_Greenwich ACE_TIME_PROGMEM = { + kZoneNameEtc_Greenwich /*name*/, + 0x26daa98c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/UCT -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_UCT[] ACE_TIME_PROGMEM = "\x0a" "UCT"; + +const extended::Info::ZoneInfo kZoneEtc_UCT ACE_TIME_PROGMEM = { + kZoneNameEtc_UCT /*name*/, + 0xd8e3189c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/Universal -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_Universal[] ACE_TIME_PROGMEM = "\x0a" "Universal"; + +const extended::Info::ZoneInfo kZoneEtc_Universal ACE_TIME_PROGMEM = { + kZoneNameEtc_Universal /*name*/, + 0x2f8cb9a9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Etc/Zulu -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameEtc_Zulu[] ACE_TIME_PROGMEM = "\x0a" "Zulu"; + +const extended::Info::ZoneInfo kZoneEtc_Zulu ACE_TIME_PROGMEM = { + kZoneNameEtc_Zulu /*name*/, + 0xf549c240 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Amsterdam -> Europe/Brussels +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Amsterdam[] ACE_TIME_PROGMEM = "\x0b" "Amsterdam"; + +const extended::Info::ZoneInfo kZoneEurope_Amsterdam ACE_TIME_PROGMEM = { + kZoneNameEurope_Amsterdam /*name*/, + 0x109395c2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Brussels /*eras*/, + &kZoneEurope_Brussels /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Belfast -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Belfast[] ACE_TIME_PROGMEM = "\x0b" "Belfast"; + +const extended::Info::ZoneInfo kZoneEurope_Belfast ACE_TIME_PROGMEM = { + kZoneNameEurope_Belfast /*name*/, + 0xd07dd1e5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Bratislava -> Europe/Prague +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Bratislava[] ACE_TIME_PROGMEM = "\x0b" "Bratislava"; + +const extended::Info::ZoneInfo kZoneEurope_Bratislava ACE_TIME_PROGMEM = { + kZoneNameEurope_Bratislava /*name*/, + 0xda493bed /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Prague /*eras*/, + &kZoneEurope_Prague /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Busingen -> Europe/Zurich +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Busingen[] ACE_TIME_PROGMEM = "\x0b" "Busingen"; + +const extended::Info::ZoneInfo kZoneEurope_Busingen ACE_TIME_PROGMEM = { + kZoneNameEurope_Busingen /*name*/, + 0xc06d2cdf /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Zurich /*eras*/, + &kZoneEurope_Zurich /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Copenhagen -> Europe/Berlin +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Copenhagen[] ACE_TIME_PROGMEM = "\x0b" "Copenhagen"; + +const extended::Info::ZoneInfo kZoneEurope_Copenhagen ACE_TIME_PROGMEM = { + kZoneNameEurope_Copenhagen /*name*/, + 0xe0ed30bc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + &kZoneEurope_Berlin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Guernsey -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Guernsey[] ACE_TIME_PROGMEM = "\x0b" "Guernsey"; + +const extended::Info::ZoneInfo kZoneEurope_Guernsey ACE_TIME_PROGMEM = { + kZoneNameEurope_Guernsey /*name*/, + 0x3db12c16 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Isle_of_Man -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Isle_of_Man[] ACE_TIME_PROGMEM = "\x0b" "Isle_of_Man"; + +const extended::Info::ZoneInfo kZoneEurope_Isle_of_Man ACE_TIME_PROGMEM = { + kZoneNameEurope_Isle_of_Man /*name*/, + 0xeaf84580 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Jersey -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Jersey[] ACE_TIME_PROGMEM = "\x0b" "Jersey"; + +const extended::Info::ZoneInfo kZoneEurope_Jersey ACE_TIME_PROGMEM = { + kZoneNameEurope_Jersey /*name*/, + 0x570dae76 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Kiev -> Europe/Kyiv +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Kiev[] ACE_TIME_PROGMEM = "\x0b" "Kiev"; + +const extended::Info::ZoneInfo kZoneEurope_Kiev ACE_TIME_PROGMEM = { + kZoneNameEurope_Kiev /*name*/, + 0xa2c19eb3 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kyiv /*eras*/, + &kZoneEurope_Kyiv /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Ljubljana -> Europe/Belgrade +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Ljubljana[] ACE_TIME_PROGMEM = "\x0b" "Ljubljana"; + +const extended::Info::ZoneInfo kZoneEurope_Ljubljana ACE_TIME_PROGMEM = { + kZoneNameEurope_Ljubljana /*name*/, + 0xbd98cdb7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + &kZoneEurope_Belgrade /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Luxembourg -> Europe/Brussels +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Luxembourg[] ACE_TIME_PROGMEM = "\x0b" "Luxembourg"; + +const extended::Info::ZoneInfo kZoneEurope_Luxembourg ACE_TIME_PROGMEM = { + kZoneNameEurope_Luxembourg /*name*/, + 0x1f8bc6ce /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Brussels /*eras*/, + &kZoneEurope_Brussels /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Mariehamn -> Europe/Helsinki +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Mariehamn[] ACE_TIME_PROGMEM = "\x0b" "Mariehamn"; + +const extended::Info::ZoneInfo kZoneEurope_Mariehamn ACE_TIME_PROGMEM = { + kZoneNameEurope_Mariehamn /*name*/, + 0x0caa6496 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Helsinki /*eras*/, + &kZoneEurope_Helsinki /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Monaco -> Europe/Paris +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Monaco[] ACE_TIME_PROGMEM = "\x0b" "Monaco"; + +const extended::Info::ZoneInfo kZoneEurope_Monaco ACE_TIME_PROGMEM = { + kZoneNameEurope_Monaco /*name*/, + 0x5ebf9f01 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Paris /*eras*/, + &kZoneEurope_Paris /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Nicosia -> Asia/Nicosia +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Nicosia[] ACE_TIME_PROGMEM = "\x0b" "Nicosia"; + +const extended::Info::ZoneInfo kZoneEurope_Nicosia ACE_TIME_PROGMEM = { + kZoneNameEurope_Nicosia /*name*/, + 0x74efab8a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Nicosia /*eras*/, + &kZoneAsia_Nicosia /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Oslo -> Europe/Berlin +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Oslo[] ACE_TIME_PROGMEM = "\x0b" "Oslo"; + +const extended::Info::ZoneInfo kZoneEurope_Oslo ACE_TIME_PROGMEM = { + kZoneNameEurope_Oslo /*name*/, + 0xa2c3fba1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + &kZoneEurope_Berlin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Podgorica -> Europe/Belgrade +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Podgorica[] ACE_TIME_PROGMEM = "\x0b" "Podgorica"; + +const extended::Info::ZoneInfo kZoneEurope_Podgorica ACE_TIME_PROGMEM = { + kZoneNameEurope_Podgorica /*name*/, + 0x1c1a499c /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + &kZoneEurope_Belgrade /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/San_Marino -> Europe/Rome +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_San_Marino[] ACE_TIME_PROGMEM = "\x0b" "San_Marino"; + +const extended::Info::ZoneInfo kZoneEurope_San_Marino ACE_TIME_PROGMEM = { + kZoneNameEurope_San_Marino /*name*/, + 0xcef7724b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Rome /*eras*/, + &kZoneEurope_Rome /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Sarajevo -> Europe/Belgrade +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Sarajevo[] ACE_TIME_PROGMEM = "\x0b" "Sarajevo"; + +const extended::Info::ZoneInfo kZoneEurope_Sarajevo ACE_TIME_PROGMEM = { + kZoneNameEurope_Sarajevo /*name*/, + 0x6a576c3f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + &kZoneEurope_Belgrade /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Skopje -> Europe/Belgrade +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Skopje[] ACE_TIME_PROGMEM = "\x0b" "Skopje"; + +const extended::Info::ZoneInfo kZoneEurope_Skopje ACE_TIME_PROGMEM = { + kZoneNameEurope_Skopje /*name*/, + 0x6c76fdd0 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + &kZoneEurope_Belgrade /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Stockholm -> Europe/Berlin +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Stockholm[] ACE_TIME_PROGMEM = "\x0b" "Stockholm"; + +const extended::Info::ZoneInfo kZoneEurope_Stockholm ACE_TIME_PROGMEM = { + kZoneNameEurope_Stockholm /*name*/, + 0x5bf6fbb8 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Berlin /*eras*/, + &kZoneEurope_Berlin /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Tiraspol -> Europe/Chisinau +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Tiraspol[] ACE_TIME_PROGMEM = "\x0b" "Tiraspol"; + +const extended::Info::ZoneInfo kZoneEurope_Tiraspol ACE_TIME_PROGMEM = { + kZoneNameEurope_Tiraspol /*name*/, + 0xbe704472 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Chisinau /*eras*/, + &kZoneEurope_Chisinau /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Uzhgorod -> Europe/Kyiv +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Uzhgorod[] ACE_TIME_PROGMEM = "\x0b" "Uzhgorod"; + +const extended::Info::ZoneInfo kZoneEurope_Uzhgorod ACE_TIME_PROGMEM = { + kZoneNameEurope_Uzhgorod /*name*/, + 0xb066f5d6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kyiv /*eras*/, + &kZoneEurope_Kyiv /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Vaduz -> Europe/Zurich +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Vaduz[] ACE_TIME_PROGMEM = "\x0b" "Vaduz"; + +const extended::Info::ZoneInfo kZoneEurope_Vaduz ACE_TIME_PROGMEM = { + kZoneNameEurope_Vaduz /*name*/, + 0xfbb81bae /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Zurich /*eras*/, + &kZoneEurope_Zurich /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Vatican -> Europe/Rome +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Vatican[] ACE_TIME_PROGMEM = "\x0b" "Vatican"; + +const extended::Info::ZoneInfo kZoneEurope_Vatican ACE_TIME_PROGMEM = { + kZoneNameEurope_Vatican /*name*/, + 0xcb485dca /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Rome /*eras*/, + &kZoneEurope_Rome /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Zagreb -> Europe/Belgrade +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Zagreb[] ACE_TIME_PROGMEM = "\x0b" "Zagreb"; + +const extended::Info::ZoneInfo kZoneEurope_Zagreb ACE_TIME_PROGMEM = { + kZoneNameEurope_Zagreb /*name*/, + 0x7c11c9ff /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Belgrade /*eras*/, + &kZoneEurope_Belgrade /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Europe/Zaporozhye -> Europe/Kyiv +//--------------------------------------------------------------------------- + +static const char kZoneNameEurope_Zaporozhye[] ACE_TIME_PROGMEM = "\x0b" "Zaporozhye"; + +const extended::Info::ZoneInfo kZoneEurope_Zaporozhye ACE_TIME_PROGMEM = { + kZoneNameEurope_Zaporozhye /*name*/, + 0xeab9767f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Kyiv /*eras*/, + &kZoneEurope_Kyiv /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GB -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameGB[] ACE_TIME_PROGMEM = "GB"; + +const extended::Info::ZoneInfo kZoneGB ACE_TIME_PROGMEM = { + kZoneNameGB /*name*/, + 0x005973ae /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GB-Eire -> Europe/London +//--------------------------------------------------------------------------- + +static const char kZoneNameGB_Eire[] ACE_TIME_PROGMEM = "GB-Eire"; + +const extended::Info::ZoneInfo kZoneGB_Eire ACE_TIME_PROGMEM = { + kZoneNameGB_Eire /*name*/, + 0xfa70e300 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_London /*eras*/, + &kZoneEurope_London /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GMT -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameGMT[] ACE_TIME_PROGMEM = "GMT"; + +const extended::Info::ZoneInfo kZoneGMT ACE_TIME_PROGMEM = { + kZoneNameGMT /*name*/, + 0x0b87eb2d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GMT+0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameGMT_PLUS_0[] ACE_TIME_PROGMEM = "GMT+0"; + +const extended::Info::ZoneInfo kZoneGMT_PLUS_0 ACE_TIME_PROGMEM = { + kZoneNameGMT_PLUS_0 /*name*/, + 0x0d2f7028 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GMT-0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameGMT_0[] ACE_TIME_PROGMEM = "GMT-0"; + +const extended::Info::ZoneInfo kZoneGMT_0 ACE_TIME_PROGMEM = { + kZoneNameGMT_0 /*name*/, + 0x0d2f706a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: GMT0 -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameGMT0[] ACE_TIME_PROGMEM = "GMT0"; + +const extended::Info::ZoneInfo kZoneGMT0 ACE_TIME_PROGMEM = { + kZoneNameGMT0 /*name*/, + 0x7c8550fd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Greenwich -> Etc/GMT +//--------------------------------------------------------------------------- + +static const char kZoneNameGreenwich[] ACE_TIME_PROGMEM = "Greenwich"; + +const extended::Info::ZoneInfo kZoneGreenwich ACE_TIME_PROGMEM = { + kZoneNameGreenwich /*name*/, + 0xc84d4221 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_GMT /*eras*/, + &kZoneEtc_GMT /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: HST -> Pacific/Honolulu +//--------------------------------------------------------------------------- + +static const char kZoneNameHST[] ACE_TIME_PROGMEM = "HST"; + +const extended::Info::ZoneInfo kZoneHST ACE_TIME_PROGMEM = { + kZoneNameHST /*name*/, + 0x0b87f034 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Honolulu /*eras*/, + &kZonePacific_Honolulu /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Hongkong -> Asia/Hong_Kong +//--------------------------------------------------------------------------- + +static const char kZoneNameHongkong[] ACE_TIME_PROGMEM = "Hongkong"; + +const extended::Info::ZoneInfo kZoneHongkong ACE_TIME_PROGMEM = { + kZoneNameHongkong /*name*/, + 0x56d36560 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Hong_Kong /*eras*/, + &kZoneAsia_Hong_Kong /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Iceland -> Africa/Abidjan +//--------------------------------------------------------------------------- + +static const char kZoneNameIceland[] ACE_TIME_PROGMEM = "Iceland"; + +const extended::Info::ZoneInfo kZoneIceland ACE_TIME_PROGMEM = { + kZoneNameIceland /*name*/, + 0xe56a35b5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Abidjan /*eras*/, + &kZoneAfrica_Abidjan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Antananarivo -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Antananarivo[] ACE_TIME_PROGMEM = "\x0c" "Antananarivo"; + +const extended::Info::ZoneInfo kZoneIndian_Antananarivo ACE_TIME_PROGMEM = { + kZoneNameIndian_Antananarivo /*name*/, + 0x9ebf5289 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Christmas -> Asia/Bangkok +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Christmas[] ACE_TIME_PROGMEM = "\x0c" "Christmas"; + +const extended::Info::ZoneInfo kZoneIndian_Christmas ACE_TIME_PROGMEM = { + kZoneNameIndian_Christmas /*name*/, + 0x68c207d5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Bangkok /*eras*/, + &kZoneAsia_Bangkok /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Cocos -> Asia/Yangon +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Cocos[] ACE_TIME_PROGMEM = "\x0c" "Cocos"; + +const extended::Info::ZoneInfo kZoneIndian_Cocos ACE_TIME_PROGMEM = { + kZoneNameIndian_Cocos /*name*/, + 0x021e86de /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Yangon /*eras*/, + &kZoneAsia_Yangon /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Comoro -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Comoro[] ACE_TIME_PROGMEM = "\x0c" "Comoro"; + +const extended::Info::ZoneInfo kZoneIndian_Comoro ACE_TIME_PROGMEM = { + kZoneNameIndian_Comoro /*name*/, + 0x45f4deb6 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Kerguelen -> Indian/Maldives +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Kerguelen[] ACE_TIME_PROGMEM = "\x0c" "Kerguelen"; + +const extended::Info::ZoneInfo kZoneIndian_Kerguelen ACE_TIME_PROGMEM = { + kZoneNameIndian_Kerguelen /*name*/, + 0x4351b389 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraIndian_Maldives /*eras*/, + &kZoneIndian_Maldives /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Mahe -> Asia/Dubai +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Mahe[] ACE_TIME_PROGMEM = "\x0c" "Mahe"; + +const extended::Info::ZoneInfo kZoneIndian_Mahe ACE_TIME_PROGMEM = { + kZoneNameIndian_Mahe /*name*/, + 0x45e725e2 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dubai /*eras*/, + &kZoneAsia_Dubai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Mayotte -> Africa/Nairobi +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Mayotte[] ACE_TIME_PROGMEM = "\x0c" "Mayotte"; + +const extended::Info::ZoneInfo kZoneIndian_Mayotte ACE_TIME_PROGMEM = { + kZoneNameIndian_Mayotte /*name*/, + 0xe6880bca /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Nairobi /*eras*/, + &kZoneAfrica_Nairobi /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Indian/Reunion -> Asia/Dubai +//--------------------------------------------------------------------------- + +static const char kZoneNameIndian_Reunion[] ACE_TIME_PROGMEM = "\x0c" "Reunion"; + +const extended::Info::ZoneInfo kZoneIndian_Reunion ACE_TIME_PROGMEM = { + kZoneNameIndian_Reunion /*name*/, + 0x7076c047 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Dubai /*eras*/, + &kZoneAsia_Dubai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Iran -> Asia/Tehran +//--------------------------------------------------------------------------- + +static const char kZoneNameIran[] ACE_TIME_PROGMEM = "Iran"; + +const extended::Info::ZoneInfo kZoneIran ACE_TIME_PROGMEM = { + kZoneNameIran /*name*/, + 0x7c87090f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tehran /*eras*/, + &kZoneAsia_Tehran /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Israel -> Asia/Jerusalem +//--------------------------------------------------------------------------- + +static const char kZoneNameIsrael[] ACE_TIME_PROGMEM = "Israel"; + +const extended::Info::ZoneInfo kZoneIsrael ACE_TIME_PROGMEM = { + kZoneNameIsrael /*name*/, + 0xba88c9e5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Jerusalem /*eras*/, + &kZoneAsia_Jerusalem /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Jamaica -> America/Jamaica +//--------------------------------------------------------------------------- + +static const char kZoneNameJamaica[] ACE_TIME_PROGMEM = "Jamaica"; + +const extended::Info::ZoneInfo kZoneJamaica ACE_TIME_PROGMEM = { + kZoneNameJamaica /*name*/, + 0x2e44fdab /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Jamaica /*eras*/, + &kZoneAmerica_Jamaica /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Japan -> Asia/Tokyo +//--------------------------------------------------------------------------- + +static const char kZoneNameJapan[] ACE_TIME_PROGMEM = "Japan"; + +const extended::Info::ZoneInfo kZoneJapan ACE_TIME_PROGMEM = { + kZoneNameJapan /*name*/, + 0x0d712f8f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Tokyo /*eras*/, + &kZoneAsia_Tokyo /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Kwajalein -> Pacific/Kwajalein +//--------------------------------------------------------------------------- + +static const char kZoneNameKwajalein[] ACE_TIME_PROGMEM = "Kwajalein"; + +const extended::Info::ZoneInfo kZoneKwajalein ACE_TIME_PROGMEM = { + kZoneNameKwajalein /*name*/, + 0x0e57afbb /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kwajalein /*eras*/, + &kZonePacific_Kwajalein /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Libya -> Africa/Tripoli +//--------------------------------------------------------------------------- + +static const char kZoneNameLibya[] ACE_TIME_PROGMEM = "Libya"; + +const extended::Info::ZoneInfo kZoneLibya ACE_TIME_PROGMEM = { + kZoneNameLibya /*name*/, + 0x0d998b16 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAfrica_Tripoli /*eras*/, + &kZoneAfrica_Tripoli /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: MET -> Europe/Brussels +//--------------------------------------------------------------------------- + +static const char kZoneNameMET[] ACE_TIME_PROGMEM = "MET"; + +const extended::Info::ZoneInfo kZoneMET ACE_TIME_PROGMEM = { + kZoneNameMET /*name*/, + 0x0b8803ab /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Brussels /*eras*/, + &kZoneEurope_Brussels /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: MST -> America/Phoenix +//--------------------------------------------------------------------------- + +static const char kZoneNameMST[] ACE_TIME_PROGMEM = "MST"; + +const extended::Info::ZoneInfo kZoneMST ACE_TIME_PROGMEM = { + kZoneNameMST /*name*/, + 0x0b880579 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Phoenix /*eras*/, + &kZoneAmerica_Phoenix /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: MST7MDT -> America/Denver +//--------------------------------------------------------------------------- + +static const char kZoneNameMST7MDT[] ACE_TIME_PROGMEM = "MST7MDT"; + +const extended::Info::ZoneInfo kZoneMST7MDT ACE_TIME_PROGMEM = { + kZoneNameMST7MDT /*name*/, + 0xf2af9375 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Denver /*eras*/, + &kZoneAmerica_Denver /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Mexico/BajaNorte -> America/Tijuana +//--------------------------------------------------------------------------- + +static const char kZoneNameMexico_BajaNorte[] ACE_TIME_PROGMEM = "Mexico/BajaNorte"; + +const extended::Info::ZoneInfo kZoneMexico_BajaNorte ACE_TIME_PROGMEM = { + kZoneNameMexico_BajaNorte /*name*/, + 0xfcf7150f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Tijuana /*eras*/, + &kZoneAmerica_Tijuana /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Mexico/BajaSur -> America/Mazatlan +//--------------------------------------------------------------------------- + +static const char kZoneNameMexico_BajaSur[] ACE_TIME_PROGMEM = "Mexico/BajaSur"; + +const extended::Info::ZoneInfo kZoneMexico_BajaSur ACE_TIME_PROGMEM = { + kZoneNameMexico_BajaSur /*name*/, + 0x08ee3641 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Mazatlan /*eras*/, + &kZoneAmerica_Mazatlan /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Mexico/General -> America/Mexico_City +//--------------------------------------------------------------------------- + +static const char kZoneNameMexico_General[] ACE_TIME_PROGMEM = "Mexico/General"; + +const extended::Info::ZoneInfo kZoneMexico_General ACE_TIME_PROGMEM = { + kZoneNameMexico_General /*name*/, + 0x93711d57 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Mexico_City /*eras*/, + &kZoneAmerica_Mexico_City /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: NZ -> Pacific/Auckland +//--------------------------------------------------------------------------- + +static const char kZoneNameNZ[] ACE_TIME_PROGMEM = "NZ"; + +const extended::Info::ZoneInfo kZoneNZ ACE_TIME_PROGMEM = { + kZoneNameNZ /*name*/, + 0x005974ad /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Auckland /*eras*/, + &kZonePacific_Auckland /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: NZ-CHAT -> Pacific/Chatham +//--------------------------------------------------------------------------- + +static const char kZoneNameNZ_CHAT[] ACE_TIME_PROGMEM = "NZ-CHAT"; + +const extended::Info::ZoneInfo kZoneNZ_CHAT ACE_TIME_PROGMEM = { + kZoneNameNZ_CHAT /*name*/, + 0x4d42afda /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Chatham /*eras*/, + &kZonePacific_Chatham /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Navajo -> America/Denver +//--------------------------------------------------------------------------- + +static const char kZoneNameNavajo[] ACE_TIME_PROGMEM = "Navajo"; + +const extended::Info::ZoneInfo kZoneNavajo ACE_TIME_PROGMEM = { + kZoneNameNavajo /*name*/, + 0xc4ef0e24 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Denver /*eras*/, + &kZoneAmerica_Denver /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: PRC -> Asia/Shanghai +//--------------------------------------------------------------------------- + +static const char kZoneNamePRC[] ACE_TIME_PROGMEM = "PRC"; + +const extended::Info::ZoneInfo kZonePRC ACE_TIME_PROGMEM = { + kZoneNamePRC /*name*/, + 0x0b88120a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Shanghai /*eras*/, + &kZoneAsia_Shanghai /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: PST8PDT -> America/Los_Angeles +//--------------------------------------------------------------------------- + +static const char kZoneNamePST8PDT[] ACE_TIME_PROGMEM = "PST8PDT"; + +const extended::Info::ZoneInfo kZonePST8PDT ACE_TIME_PROGMEM = { + kZoneNamePST8PDT /*name*/, + 0xd99ee2dc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Los_Angeles /*eras*/, + &kZoneAmerica_Los_Angeles /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Chuuk -> Pacific/Port_Moresby +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Chuuk[] ACE_TIME_PROGMEM = "\x0e" "Chuuk"; + +const extended::Info::ZoneInfo kZonePacific_Chuuk ACE_TIME_PROGMEM = { + kZoneNamePacific_Chuuk /*name*/, + 0x8a090b23 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Port_Moresby /*eras*/, + &kZonePacific_Port_Moresby /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Enderbury -> Pacific/Kanton +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Enderbury[] ACE_TIME_PROGMEM = "\x0e" "Enderbury"; + +const extended::Info::ZoneInfo kZonePacific_Enderbury ACE_TIME_PROGMEM = { + kZoneNamePacific_Enderbury /*name*/, + 0x61599a93 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Kanton /*eras*/, + &kZonePacific_Kanton /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Funafuti -> Pacific/Tarawa +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Funafuti[] ACE_TIME_PROGMEM = "\x0e" "Funafuti"; + +const extended::Info::ZoneInfo kZonePacific_Funafuti ACE_TIME_PROGMEM = { + kZoneNamePacific_Funafuti /*name*/, + 0xdb402d65 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tarawa /*eras*/, + &kZonePacific_Tarawa /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Johnston -> Pacific/Honolulu +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Johnston[] ACE_TIME_PROGMEM = "\x0e" "Johnston"; + +const extended::Info::ZoneInfo kZonePacific_Johnston ACE_TIME_PROGMEM = { + kZoneNamePacific_Johnston /*name*/, + 0xb15d7b36 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Honolulu /*eras*/, + &kZonePacific_Honolulu /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Majuro -> Pacific/Tarawa +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Majuro[] ACE_TIME_PROGMEM = "\x0e" "Majuro"; + +const extended::Info::ZoneInfo kZonePacific_Majuro ACE_TIME_PROGMEM = { + kZoneNamePacific_Majuro /*name*/, + 0xe1f95371 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tarawa /*eras*/, + &kZonePacific_Tarawa /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Midway -> Pacific/Pago_Pago +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Midway[] ACE_TIME_PROGMEM = "\x0e" "Midway"; + +const extended::Info::ZoneInfo kZonePacific_Midway ACE_TIME_PROGMEM = { + kZoneNamePacific_Midway /*name*/, + 0xe286d38e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Pago_Pago /*eras*/, + &kZonePacific_Pago_Pago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Pohnpei -> Pacific/Guadalcanal +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Pohnpei[] ACE_TIME_PROGMEM = "\x0e" "Pohnpei"; + +const extended::Info::ZoneInfo kZonePacific_Pohnpei ACE_TIME_PROGMEM = { + kZoneNamePacific_Pohnpei /*name*/, + 0x28929f96 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Guadalcanal /*eras*/, + &kZonePacific_Guadalcanal /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Ponape -> Pacific/Guadalcanal +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Ponape[] ACE_TIME_PROGMEM = "\x0e" "Ponape"; + +const extended::Info::ZoneInfo kZonePacific_Ponape ACE_TIME_PROGMEM = { + kZoneNamePacific_Ponape /*name*/, + 0xe9f80086 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Guadalcanal /*eras*/, + &kZonePacific_Guadalcanal /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Saipan -> Pacific/Guam +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Saipan[] ACE_TIME_PROGMEM = "\x0e" "Saipan"; + +const extended::Info::ZoneInfo kZonePacific_Saipan ACE_TIME_PROGMEM = { + kZoneNamePacific_Saipan /*name*/, + 0xeff7a35f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Guam /*eras*/, + &kZonePacific_Guam /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Samoa -> Pacific/Pago_Pago +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Samoa[] ACE_TIME_PROGMEM = "\x0e" "Samoa"; + +const extended::Info::ZoneInfo kZonePacific_Samoa ACE_TIME_PROGMEM = { + kZoneNamePacific_Samoa /*name*/, + 0x8b2699b4 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Pago_Pago /*eras*/, + &kZonePacific_Pago_Pago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Truk -> Pacific/Port_Moresby +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Truk[] ACE_TIME_PROGMEM = "\x0e" "Truk"; + +const extended::Info::ZoneInfo kZonePacific_Truk ACE_TIME_PROGMEM = { + kZoneNamePacific_Truk /*name*/, + 0x234010a9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Port_Moresby /*eras*/, + &kZonePacific_Port_Moresby /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Wake -> Pacific/Tarawa +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Wake[] ACE_TIME_PROGMEM = "\x0e" "Wake"; + +const extended::Info::ZoneInfo kZonePacific_Wake ACE_TIME_PROGMEM = { + kZoneNamePacific_Wake /*name*/, + 0x23416c2b /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tarawa /*eras*/, + &kZonePacific_Tarawa /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Wallis -> Pacific/Tarawa +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Wallis[] ACE_TIME_PROGMEM = "\x0e" "Wallis"; + +const extended::Info::ZoneInfo kZonePacific_Wallis ACE_TIME_PROGMEM = { + kZoneNamePacific_Wallis /*name*/, + 0xf94ddb0f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Tarawa /*eras*/, + &kZonePacific_Tarawa /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Pacific/Yap -> Pacific/Port_Moresby +//--------------------------------------------------------------------------- + +static const char kZoneNamePacific_Yap[] ACE_TIME_PROGMEM = "\x0e" "Yap"; + +const extended::Info::ZoneInfo kZonePacific_Yap ACE_TIME_PROGMEM = { + kZoneNamePacific_Yap /*name*/, + 0xbb40138d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Port_Moresby /*eras*/, + &kZonePacific_Port_Moresby /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Poland -> Europe/Warsaw +//--------------------------------------------------------------------------- + +static const char kZoneNamePoland[] ACE_TIME_PROGMEM = "Poland"; + +const extended::Info::ZoneInfo kZonePoland ACE_TIME_PROGMEM = { + kZoneNamePoland /*name*/, + 0xca913b23 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Warsaw /*eras*/, + &kZoneEurope_Warsaw /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Portugal -> Europe/Lisbon +//--------------------------------------------------------------------------- + +static const char kZoneNamePortugal[] ACE_TIME_PROGMEM = "Portugal"; + +const extended::Info::ZoneInfo kZonePortugal ACE_TIME_PROGMEM = { + kZoneNamePortugal /*name*/, + 0xc3274593 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Lisbon /*eras*/, + &kZoneEurope_Lisbon /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: ROC -> Asia/Taipei +//--------------------------------------------------------------------------- + +static const char kZoneNameROC[] ACE_TIME_PROGMEM = "ROC"; + +const extended::Info::ZoneInfo kZoneROC ACE_TIME_PROGMEM = { + kZoneNameROC /*name*/, + 0x0b881a29 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Taipei /*eras*/, + &kZoneAsia_Taipei /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: ROK -> Asia/Seoul +//--------------------------------------------------------------------------- + +static const char kZoneNameROK[] ACE_TIME_PROGMEM = "ROK"; + +const extended::Info::ZoneInfo kZoneROK ACE_TIME_PROGMEM = { + kZoneNameROK /*name*/, + 0x0b881a31 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Seoul /*eras*/, + &kZoneAsia_Seoul /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Singapore -> Asia/Singapore +//--------------------------------------------------------------------------- + +static const char kZoneNameSingapore[] ACE_TIME_PROGMEM = "Singapore"; + +const extended::Info::ZoneInfo kZoneSingapore ACE_TIME_PROGMEM = { + kZoneNameSingapore /*name*/, + 0xa8598c8d /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAsia_Singapore /*eras*/, + &kZoneAsia_Singapore /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Turkey -> Europe/Istanbul +//--------------------------------------------------------------------------- + +static const char kZoneNameTurkey[] ACE_TIME_PROGMEM = "Turkey"; + +const extended::Info::ZoneInfo kZoneTurkey ACE_TIME_PROGMEM = { + kZoneNameTurkey /*name*/, + 0xd455e469 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Istanbul /*eras*/, + &kZoneEurope_Istanbul /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: UCT -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameUCT[] ACE_TIME_PROGMEM = "UCT"; + +const extended::Info::ZoneInfo kZoneUCT ACE_TIME_PROGMEM = { + kZoneNameUCT /*name*/, + 0x0b882571 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Alaska -> America/Anchorage +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Alaska[] ACE_TIME_PROGMEM = "US/Alaska"; + +const extended::Info::ZoneInfo kZoneUS_Alaska ACE_TIME_PROGMEM = { + kZoneNameUS_Alaska /*name*/, + 0xfa300bc9 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Anchorage /*eras*/, + &kZoneAmerica_Anchorage /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Aleutian -> America/Adak +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Aleutian[] ACE_TIME_PROGMEM = "US/Aleutian"; + +const extended::Info::ZoneInfo kZoneUS_Aleutian ACE_TIME_PROGMEM = { + kZoneNameUS_Aleutian /*name*/, + 0x4fe013ef /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Adak /*eras*/, + &kZoneAmerica_Adak /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Arizona -> America/Phoenix +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Arizona[] ACE_TIME_PROGMEM = "US/Arizona"; + +const extended::Info::ZoneInfo kZoneUS_Arizona ACE_TIME_PROGMEM = { + kZoneNameUS_Arizona /*name*/, + 0x4ec52670 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Phoenix /*eras*/, + &kZoneAmerica_Phoenix /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Central -> America/Chicago +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Central[] ACE_TIME_PROGMEM = "US/Central"; + +const extended::Info::ZoneInfo kZoneUS_Central ACE_TIME_PROGMEM = { + kZoneNameUS_Central /*name*/, + 0xcabdcb25 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Chicago /*eras*/, + &kZoneAmerica_Chicago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/East-Indiana -> America/Indiana/Indianapolis +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_East_Indiana[] ACE_TIME_PROGMEM = "US/East-Indiana"; + +const extended::Info::ZoneInfo kZoneUS_East_Indiana ACE_TIME_PROGMEM = { + kZoneNameUS_East_Indiana /*name*/, + 0x6dcf558a /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Indianapolis /*eras*/, + &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Eastern -> America/New_York +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Eastern[] ACE_TIME_PROGMEM = "US/Eastern"; + +const extended::Info::ZoneInfo kZoneUS_Eastern ACE_TIME_PROGMEM = { + kZoneNameUS_Eastern /*name*/, + 0x5bb7e78e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_New_York /*eras*/, + &kZoneAmerica_New_York /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Hawaii -> Pacific/Honolulu +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Hawaii[] ACE_TIME_PROGMEM = "US/Hawaii"; + +const extended::Info::ZoneInfo kZoneUS_Hawaii ACE_TIME_PROGMEM = { + kZoneNameUS_Hawaii /*name*/, + 0x09c8de2f /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Honolulu /*eras*/, + &kZonePacific_Honolulu /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Indiana-Starke -> America/Indiana/Knox +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Indiana_Starke[] ACE_TIME_PROGMEM = "US/Indiana-Starke"; + +const extended::Info::ZoneInfo kZoneUS_Indiana_Starke ACE_TIME_PROGMEM = { + kZoneNameUS_Indiana_Starke /*name*/, + 0x67977be7 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Indiana_Knox /*eras*/, + &kZoneAmerica_Indiana_Knox /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Michigan -> America/Detroit +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Michigan[] ACE_TIME_PROGMEM = "US/Michigan"; + +const extended::Info::ZoneInfo kZoneUS_Michigan ACE_TIME_PROGMEM = { + kZoneNameUS_Michigan /*name*/, + 0x766bb7bc /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Detroit /*eras*/, + &kZoneAmerica_Detroit /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Mountain -> America/Denver +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Mountain[] ACE_TIME_PROGMEM = "US/Mountain"; + +const extended::Info::ZoneInfo kZoneUS_Mountain ACE_TIME_PROGMEM = { + kZoneNameUS_Mountain /*name*/, + 0x6eb88247 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Denver /*eras*/, + &kZoneAmerica_Denver /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Pacific -> America/Los_Angeles +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific"; + +const extended::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = { + kZoneNameUS_Pacific /*name*/, + 0xa950f6ab /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraAmerica_Los_Angeles /*eras*/, + &kZoneAmerica_Los_Angeles /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: US/Samoa -> Pacific/Pago_Pago +//--------------------------------------------------------------------------- + +static const char kZoneNameUS_Samoa[] ACE_TIME_PROGMEM = "US/Samoa"; + +const extended::Info::ZoneInfo kZoneUS_Samoa ACE_TIME_PROGMEM = { + kZoneNameUS_Samoa /*name*/, + 0x566821cd /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraPacific_Pago_Pago /*eras*/, + &kZonePacific_Pago_Pago /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: UTC -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameUTC[] ACE_TIME_PROGMEM = "UTC"; + +const extended::Info::ZoneInfo kZoneUTC ACE_TIME_PROGMEM = { + kZoneNameUTC /*name*/, + 0x0b882791 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Universal -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameUniversal[] ACE_TIME_PROGMEM = "Universal"; + +const extended::Info::ZoneInfo kZoneUniversal ACE_TIME_PROGMEM = { + kZoneNameUniversal /*name*/, + 0xd0ff523e /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: W-SU -> Europe/Moscow +//--------------------------------------------------------------------------- + +static const char kZoneNameW_SU[] ACE_TIME_PROGMEM = "W-SU"; + +const extended::Info::ZoneInfo kZoneW_SU ACE_TIME_PROGMEM = { + kZoneNameW_SU /*name*/, + 0x7c8d8ef1 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Moscow /*eras*/, + &kZoneEurope_Moscow /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: WET -> Europe/Lisbon +//--------------------------------------------------------------------------- + +static const char kZoneNameWET[] ACE_TIME_PROGMEM = "WET"; + +const extended::Info::ZoneInfo kZoneWET ACE_TIME_PROGMEM = { + kZoneNameWET /*name*/, + 0x0b882e35 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEurope_Lisbon /*eras*/, + &kZoneEurope_Lisbon /*targetInfo*/, +}; + +//--------------------------------------------------------------------------- +// Link name: Zulu -> Etc/UTC +//--------------------------------------------------------------------------- + +static const char kZoneNameZulu[] ACE_TIME_PROGMEM = "Zulu"; + +const extended::Info::ZoneInfo kZoneZulu ACE_TIME_PROGMEM = { + kZoneNameZulu /*name*/, + 0x7c9069b5 /*zoneId*/, + &kZoneContext /*zoneContext*/, + 1 /*numEras*/, + kZoneEraEtc_UTC /*eras*/, + &kZoneEtc_UTC /*targetInfo*/, +}; + + +} +} diff --git a/src/zonedbx2025/zone_infos.h b/src/zonedbx2025/zone_infos.h new file mode 100644 index 000000000..c06e458ab --- /dev/null +++ b/src/zonedbx2025/zone_infos.h @@ -0,0 +1,1761 @@ +// 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/zonedbx2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope extended +// --db_namespace zonedbx2025 +// --zi_namespace extended::Info +// --start_year 2025 +// --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: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 7 +// +// Records: +// Infos: 597 +// Eras: 345 +// Policies: 66 +// Rules: 343 +// +// Memory (8-bits): +// Context: 20 +// Rules: 3087 +// Policies: 198 +// Eras: 3795 +// Zones: 4420 +// Links: 3341 +// Registry: 1194 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5660 (original: 9094) +// TOTAL: 22096 +// +// Memory (32-bits): +// Context: 28 +// Rules: 4116 +// Policies: 528 +// Eras: 5520 +// Zones: 8160 +// Links: 6168 +// Registry: 2388 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5660 (original: 9094) +// TOTAL: 32991 +// +// DO NOT EDIT + +#ifndef ACE_TIME_ZONEDBX2025_ZONE_INFOS_H +#define ACE_TIME_ZONEDBX2025_ZONE_INFOS_H + +#include + +class __FlashStringHelper; + +namespace ace_time { +namespace zonedbx2025 { + +//--------------------------------------------------------------------------- +// ZoneContext (should not be in PROGMEM) +//--------------------------------------------------------------------------- + +// Version of the TZ Database which generated these files. +extern const __FlashStringHelper* const kTzDatabaseVersion; + +// Metadata about the zonedb files. +extern const extended::Info::ZoneContext kZoneContext; + +//--------------------------------------------------------------------------- +// Supported zones: 340 +//--------------------------------------------------------------------------- + +extern const extended::Info::ZoneInfo kZoneAfrica_Abidjan; // Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAfrica_Algiers; // Africa/Algiers +extern const extended::Info::ZoneInfo kZoneAfrica_Bissau; // Africa/Bissau +extern const extended::Info::ZoneInfo kZoneAfrica_Cairo; // Africa/Cairo +extern const extended::Info::ZoneInfo kZoneAfrica_Casablanca; // Africa/Casablanca +extern const extended::Info::ZoneInfo kZoneAfrica_Ceuta; // Africa/Ceuta +extern const extended::Info::ZoneInfo kZoneAfrica_El_Aaiun; // Africa/El_Aaiun +extern const extended::Info::ZoneInfo kZoneAfrica_Johannesburg; // Africa/Johannesburg +extern const extended::Info::ZoneInfo kZoneAfrica_Juba; // Africa/Juba +extern const extended::Info::ZoneInfo kZoneAfrica_Khartoum; // Africa/Khartoum +extern const extended::Info::ZoneInfo kZoneAfrica_Lagos; // Africa/Lagos +extern const extended::Info::ZoneInfo kZoneAfrica_Maputo; // Africa/Maputo +extern const extended::Info::ZoneInfo kZoneAfrica_Monrovia; // Africa/Monrovia +extern const extended::Info::ZoneInfo kZoneAfrica_Nairobi; // Africa/Nairobi +extern const extended::Info::ZoneInfo kZoneAfrica_Ndjamena; // Africa/Ndjamena +extern const extended::Info::ZoneInfo kZoneAfrica_Sao_Tome; // Africa/Sao_Tome +extern const extended::Info::ZoneInfo kZoneAfrica_Tripoli; // Africa/Tripoli +extern const extended::Info::ZoneInfo kZoneAfrica_Tunis; // Africa/Tunis +extern const extended::Info::ZoneInfo kZoneAfrica_Windhoek; // Africa/Windhoek +extern const extended::Info::ZoneInfo kZoneAmerica_Adak; // America/Adak +extern const extended::Info::ZoneInfo kZoneAmerica_Anchorage; // America/Anchorage +extern const extended::Info::ZoneInfo kZoneAmerica_Araguaina; // America/Araguaina +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Buenos_Aires; // America/Argentina/Buenos_Aires +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Catamarca; // America/Argentina/Catamarca +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Cordoba; // America/Argentina/Cordoba +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Jujuy; // America/Argentina/Jujuy +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_La_Rioja; // America/Argentina/La_Rioja +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Mendoza; // America/Argentina/Mendoza +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Rio_Gallegos; // America/Argentina/Rio_Gallegos +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Salta; // America/Argentina/Salta +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_San_Juan; // America/Argentina/San_Juan +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_San_Luis; // America/Argentina/San_Luis +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Tucuman; // America/Argentina/Tucuman +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_Ushuaia; // America/Argentina/Ushuaia +extern const extended::Info::ZoneInfo kZoneAmerica_Asuncion; // America/Asuncion +extern const extended::Info::ZoneInfo kZoneAmerica_Bahia; // America/Bahia +extern const extended::Info::ZoneInfo kZoneAmerica_Bahia_Banderas; // America/Bahia_Banderas +extern const extended::Info::ZoneInfo kZoneAmerica_Barbados; // America/Barbados +extern const extended::Info::ZoneInfo kZoneAmerica_Belem; // America/Belem +extern const extended::Info::ZoneInfo kZoneAmerica_Belize; // America/Belize +extern const extended::Info::ZoneInfo kZoneAmerica_Boa_Vista; // America/Boa_Vista +extern const extended::Info::ZoneInfo kZoneAmerica_Bogota; // America/Bogota +extern const extended::Info::ZoneInfo kZoneAmerica_Boise; // America/Boise +extern const extended::Info::ZoneInfo kZoneAmerica_Cambridge_Bay; // America/Cambridge_Bay +extern const extended::Info::ZoneInfo kZoneAmerica_Campo_Grande; // America/Campo_Grande +extern const extended::Info::ZoneInfo kZoneAmerica_Cancun; // America/Cancun +extern const extended::Info::ZoneInfo kZoneAmerica_Caracas; // America/Caracas +extern const extended::Info::ZoneInfo kZoneAmerica_Cayenne; // America/Cayenne +extern const extended::Info::ZoneInfo kZoneAmerica_Chicago; // America/Chicago +extern const extended::Info::ZoneInfo kZoneAmerica_Chihuahua; // America/Chihuahua +extern const extended::Info::ZoneInfo kZoneAmerica_Ciudad_Juarez; // America/Ciudad_Juarez +extern const extended::Info::ZoneInfo kZoneAmerica_Costa_Rica; // America/Costa_Rica +extern const extended::Info::ZoneInfo kZoneAmerica_Coyhaique; // America/Coyhaique +extern const extended::Info::ZoneInfo kZoneAmerica_Cuiaba; // America/Cuiaba +extern const extended::Info::ZoneInfo kZoneAmerica_Danmarkshavn; // America/Danmarkshavn +extern const extended::Info::ZoneInfo kZoneAmerica_Dawson; // America/Dawson +extern const extended::Info::ZoneInfo kZoneAmerica_Dawson_Creek; // America/Dawson_Creek +extern const extended::Info::ZoneInfo kZoneAmerica_Denver; // America/Denver +extern const extended::Info::ZoneInfo kZoneAmerica_Detroit; // America/Detroit +extern const extended::Info::ZoneInfo kZoneAmerica_Edmonton; // America/Edmonton +extern const extended::Info::ZoneInfo kZoneAmerica_Eirunepe; // America/Eirunepe +extern const extended::Info::ZoneInfo kZoneAmerica_El_Salvador; // America/El_Salvador +extern const extended::Info::ZoneInfo kZoneAmerica_Fort_Nelson; // America/Fort_Nelson +extern const extended::Info::ZoneInfo kZoneAmerica_Fortaleza; // America/Fortaleza +extern const extended::Info::ZoneInfo kZoneAmerica_Glace_Bay; // America/Glace_Bay +extern const extended::Info::ZoneInfo kZoneAmerica_Goose_Bay; // America/Goose_Bay +extern const extended::Info::ZoneInfo kZoneAmerica_Grand_Turk; // America/Grand_Turk +extern const extended::Info::ZoneInfo kZoneAmerica_Guatemala; // America/Guatemala +extern const extended::Info::ZoneInfo kZoneAmerica_Guayaquil; // America/Guayaquil +extern const extended::Info::ZoneInfo kZoneAmerica_Guyana; // America/Guyana +extern const extended::Info::ZoneInfo kZoneAmerica_Halifax; // America/Halifax +extern const extended::Info::ZoneInfo kZoneAmerica_Havana; // America/Havana +extern const extended::Info::ZoneInfo kZoneAmerica_Hermosillo; // America/Hermosillo +extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Indianapolis; // America/Indiana/Indianapolis +extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Knox; // America/Indiana/Knox +extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Marengo; // America/Indiana/Marengo +extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Petersburg; // America/Indiana/Petersburg +extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Tell_City; // America/Indiana/Tell_City +extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Vevay; // America/Indiana/Vevay +extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Vincennes; // America/Indiana/Vincennes +extern const extended::Info::ZoneInfo kZoneAmerica_Indiana_Winamac; // America/Indiana/Winamac +extern const extended::Info::ZoneInfo kZoneAmerica_Inuvik; // America/Inuvik +extern const extended::Info::ZoneInfo kZoneAmerica_Iqaluit; // America/Iqaluit +extern const extended::Info::ZoneInfo kZoneAmerica_Jamaica; // America/Jamaica +extern const extended::Info::ZoneInfo kZoneAmerica_Juneau; // America/Juneau +extern const extended::Info::ZoneInfo kZoneAmerica_Kentucky_Louisville; // America/Kentucky/Louisville +extern const extended::Info::ZoneInfo kZoneAmerica_Kentucky_Monticello; // America/Kentucky/Monticello +extern const extended::Info::ZoneInfo kZoneAmerica_La_Paz; // America/La_Paz +extern const extended::Info::ZoneInfo kZoneAmerica_Lima; // America/Lima +extern const extended::Info::ZoneInfo kZoneAmerica_Los_Angeles; // America/Los_Angeles +extern const extended::Info::ZoneInfo kZoneAmerica_Maceio; // America/Maceio +extern const extended::Info::ZoneInfo kZoneAmerica_Managua; // America/Managua +extern const extended::Info::ZoneInfo kZoneAmerica_Manaus; // America/Manaus +extern const extended::Info::ZoneInfo kZoneAmerica_Martinique; // America/Martinique +extern const extended::Info::ZoneInfo kZoneAmerica_Matamoros; // America/Matamoros +extern const extended::Info::ZoneInfo kZoneAmerica_Mazatlan; // America/Mazatlan +extern const extended::Info::ZoneInfo kZoneAmerica_Menominee; // America/Menominee +extern const extended::Info::ZoneInfo kZoneAmerica_Merida; // America/Merida +extern const extended::Info::ZoneInfo kZoneAmerica_Metlakatla; // America/Metlakatla +extern const extended::Info::ZoneInfo kZoneAmerica_Mexico_City; // America/Mexico_City +extern const extended::Info::ZoneInfo kZoneAmerica_Miquelon; // America/Miquelon +extern const extended::Info::ZoneInfo kZoneAmerica_Moncton; // America/Moncton +extern const extended::Info::ZoneInfo kZoneAmerica_Monterrey; // America/Monterrey +extern const extended::Info::ZoneInfo kZoneAmerica_Montevideo; // America/Montevideo +extern const extended::Info::ZoneInfo kZoneAmerica_New_York; // America/New_York +extern const extended::Info::ZoneInfo kZoneAmerica_Nome; // America/Nome +extern const extended::Info::ZoneInfo kZoneAmerica_Noronha; // America/Noronha +extern const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_Beulah; // America/North_Dakota/Beulah +extern const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_Center; // America/North_Dakota/Center +extern const extended::Info::ZoneInfo kZoneAmerica_North_Dakota_New_Salem; // America/North_Dakota/New_Salem +extern const extended::Info::ZoneInfo kZoneAmerica_Nuuk; // America/Nuuk +extern const extended::Info::ZoneInfo kZoneAmerica_Ojinaga; // America/Ojinaga +extern const extended::Info::ZoneInfo kZoneAmerica_Panama; // America/Panama +extern const extended::Info::ZoneInfo kZoneAmerica_Paramaribo; // America/Paramaribo +extern const extended::Info::ZoneInfo kZoneAmerica_Phoenix; // America/Phoenix +extern const extended::Info::ZoneInfo kZoneAmerica_Port_au_Prince; // America/Port-au-Prince +extern const extended::Info::ZoneInfo kZoneAmerica_Porto_Velho; // America/Porto_Velho +extern const extended::Info::ZoneInfo kZoneAmerica_Puerto_Rico; // America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Punta_Arenas; // America/Punta_Arenas +extern const extended::Info::ZoneInfo kZoneAmerica_Rankin_Inlet; // America/Rankin_Inlet +extern const extended::Info::ZoneInfo kZoneAmerica_Recife; // America/Recife +extern const extended::Info::ZoneInfo kZoneAmerica_Regina; // America/Regina +extern const extended::Info::ZoneInfo kZoneAmerica_Resolute; // America/Resolute +extern const extended::Info::ZoneInfo kZoneAmerica_Rio_Branco; // America/Rio_Branco +extern const extended::Info::ZoneInfo kZoneAmerica_Santarem; // America/Santarem +extern const extended::Info::ZoneInfo kZoneAmerica_Santiago; // America/Santiago +extern const extended::Info::ZoneInfo kZoneAmerica_Santo_Domingo; // America/Santo_Domingo +extern const extended::Info::ZoneInfo kZoneAmerica_Sao_Paulo; // America/Sao_Paulo +extern const extended::Info::ZoneInfo kZoneAmerica_Scoresbysund; // America/Scoresbysund +extern const extended::Info::ZoneInfo kZoneAmerica_Sitka; // America/Sitka +extern const extended::Info::ZoneInfo kZoneAmerica_St_Johns; // America/St_Johns +extern const extended::Info::ZoneInfo kZoneAmerica_Swift_Current; // America/Swift_Current +extern const extended::Info::ZoneInfo kZoneAmerica_Tegucigalpa; // America/Tegucigalpa +extern const extended::Info::ZoneInfo kZoneAmerica_Thule; // America/Thule +extern const extended::Info::ZoneInfo kZoneAmerica_Tijuana; // America/Tijuana +extern const extended::Info::ZoneInfo kZoneAmerica_Toronto; // America/Toronto +extern const extended::Info::ZoneInfo kZoneAmerica_Vancouver; // America/Vancouver +extern const extended::Info::ZoneInfo kZoneAmerica_Whitehorse; // America/Whitehorse +extern const extended::Info::ZoneInfo kZoneAmerica_Winnipeg; // America/Winnipeg +extern const extended::Info::ZoneInfo kZoneAmerica_Yakutat; // America/Yakutat +extern const extended::Info::ZoneInfo kZoneAntarctica_Casey; // Antarctica/Casey +extern const extended::Info::ZoneInfo kZoneAntarctica_Davis; // Antarctica/Davis +extern const extended::Info::ZoneInfo kZoneAntarctica_Macquarie; // Antarctica/Macquarie +extern const extended::Info::ZoneInfo kZoneAntarctica_Mawson; // Antarctica/Mawson +extern const extended::Info::ZoneInfo kZoneAntarctica_Palmer; // Antarctica/Palmer +extern const extended::Info::ZoneInfo kZoneAntarctica_Rothera; // Antarctica/Rothera +extern const extended::Info::ZoneInfo kZoneAntarctica_Troll; // Antarctica/Troll +extern const extended::Info::ZoneInfo kZoneAntarctica_Vostok; // Antarctica/Vostok +extern const extended::Info::ZoneInfo kZoneAsia_Almaty; // Asia/Almaty +extern const extended::Info::ZoneInfo kZoneAsia_Amman; // Asia/Amman +extern const extended::Info::ZoneInfo kZoneAsia_Anadyr; // Asia/Anadyr +extern const extended::Info::ZoneInfo kZoneAsia_Aqtau; // Asia/Aqtau +extern const extended::Info::ZoneInfo kZoneAsia_Aqtobe; // Asia/Aqtobe +extern const extended::Info::ZoneInfo kZoneAsia_Ashgabat; // Asia/Ashgabat +extern const extended::Info::ZoneInfo kZoneAsia_Atyrau; // Asia/Atyrau +extern const extended::Info::ZoneInfo kZoneAsia_Baghdad; // Asia/Baghdad +extern const extended::Info::ZoneInfo kZoneAsia_Baku; // Asia/Baku +extern const extended::Info::ZoneInfo kZoneAsia_Bangkok; // Asia/Bangkok +extern const extended::Info::ZoneInfo kZoneAsia_Barnaul; // Asia/Barnaul +extern const extended::Info::ZoneInfo kZoneAsia_Beirut; // Asia/Beirut +extern const extended::Info::ZoneInfo kZoneAsia_Bishkek; // Asia/Bishkek +extern const extended::Info::ZoneInfo kZoneAsia_Chita; // Asia/Chita +extern const extended::Info::ZoneInfo kZoneAsia_Colombo; // Asia/Colombo +extern const extended::Info::ZoneInfo kZoneAsia_Damascus; // Asia/Damascus +extern const extended::Info::ZoneInfo kZoneAsia_Dhaka; // Asia/Dhaka +extern const extended::Info::ZoneInfo kZoneAsia_Dili; // Asia/Dili +extern const extended::Info::ZoneInfo kZoneAsia_Dubai; // Asia/Dubai +extern const extended::Info::ZoneInfo kZoneAsia_Dushanbe; // Asia/Dushanbe +extern const extended::Info::ZoneInfo kZoneAsia_Famagusta; // Asia/Famagusta +extern const extended::Info::ZoneInfo kZoneAsia_Gaza; // Asia/Gaza +extern const extended::Info::ZoneInfo kZoneAsia_Hebron; // Asia/Hebron +extern const extended::Info::ZoneInfo kZoneAsia_Ho_Chi_Minh; // Asia/Ho_Chi_Minh +extern const extended::Info::ZoneInfo kZoneAsia_Hong_Kong; // Asia/Hong_Kong +extern const extended::Info::ZoneInfo kZoneAsia_Hovd; // Asia/Hovd +extern const extended::Info::ZoneInfo kZoneAsia_Irkutsk; // Asia/Irkutsk +extern const extended::Info::ZoneInfo kZoneAsia_Jakarta; // Asia/Jakarta +extern const extended::Info::ZoneInfo kZoneAsia_Jayapura; // Asia/Jayapura +extern const extended::Info::ZoneInfo kZoneAsia_Jerusalem; // Asia/Jerusalem +extern const extended::Info::ZoneInfo kZoneAsia_Kabul; // Asia/Kabul +extern const extended::Info::ZoneInfo kZoneAsia_Kamchatka; // Asia/Kamchatka +extern const extended::Info::ZoneInfo kZoneAsia_Karachi; // Asia/Karachi +extern const extended::Info::ZoneInfo kZoneAsia_Kathmandu; // Asia/Kathmandu +extern const extended::Info::ZoneInfo kZoneAsia_Khandyga; // Asia/Khandyga +extern const extended::Info::ZoneInfo kZoneAsia_Kolkata; // Asia/Kolkata +extern const extended::Info::ZoneInfo kZoneAsia_Krasnoyarsk; // Asia/Krasnoyarsk +extern const extended::Info::ZoneInfo kZoneAsia_Kuching; // Asia/Kuching +extern const extended::Info::ZoneInfo kZoneAsia_Macau; // Asia/Macau +extern const extended::Info::ZoneInfo kZoneAsia_Magadan; // Asia/Magadan +extern const extended::Info::ZoneInfo kZoneAsia_Makassar; // Asia/Makassar +extern const extended::Info::ZoneInfo kZoneAsia_Manila; // Asia/Manila +extern const extended::Info::ZoneInfo kZoneAsia_Nicosia; // Asia/Nicosia +extern const extended::Info::ZoneInfo kZoneAsia_Novokuznetsk; // Asia/Novokuznetsk +extern const extended::Info::ZoneInfo kZoneAsia_Novosibirsk; // Asia/Novosibirsk +extern const extended::Info::ZoneInfo kZoneAsia_Omsk; // Asia/Omsk +extern const extended::Info::ZoneInfo kZoneAsia_Oral; // Asia/Oral +extern const extended::Info::ZoneInfo kZoneAsia_Pontianak; // Asia/Pontianak +extern const extended::Info::ZoneInfo kZoneAsia_Pyongyang; // Asia/Pyongyang +extern const extended::Info::ZoneInfo kZoneAsia_Qatar; // Asia/Qatar +extern const extended::Info::ZoneInfo kZoneAsia_Qostanay; // Asia/Qostanay +extern const extended::Info::ZoneInfo kZoneAsia_Qyzylorda; // Asia/Qyzylorda +extern const extended::Info::ZoneInfo kZoneAsia_Riyadh; // Asia/Riyadh +extern const extended::Info::ZoneInfo kZoneAsia_Sakhalin; // Asia/Sakhalin +extern const extended::Info::ZoneInfo kZoneAsia_Samarkand; // Asia/Samarkand +extern const extended::Info::ZoneInfo kZoneAsia_Seoul; // Asia/Seoul +extern const extended::Info::ZoneInfo kZoneAsia_Shanghai; // Asia/Shanghai +extern const extended::Info::ZoneInfo kZoneAsia_Singapore; // Asia/Singapore +extern const extended::Info::ZoneInfo kZoneAsia_Srednekolymsk; // Asia/Srednekolymsk +extern const extended::Info::ZoneInfo kZoneAsia_Taipei; // Asia/Taipei +extern const extended::Info::ZoneInfo kZoneAsia_Tashkent; // Asia/Tashkent +extern const extended::Info::ZoneInfo kZoneAsia_Tbilisi; // Asia/Tbilisi +extern const extended::Info::ZoneInfo kZoneAsia_Tehran; // Asia/Tehran +extern const extended::Info::ZoneInfo kZoneAsia_Thimphu; // Asia/Thimphu +extern const extended::Info::ZoneInfo kZoneAsia_Tokyo; // Asia/Tokyo +extern const extended::Info::ZoneInfo kZoneAsia_Tomsk; // Asia/Tomsk +extern const extended::Info::ZoneInfo kZoneAsia_Ulaanbaatar; // Asia/Ulaanbaatar +extern const extended::Info::ZoneInfo kZoneAsia_Urumqi; // Asia/Urumqi +extern const extended::Info::ZoneInfo kZoneAsia_Ust_Nera; // Asia/Ust-Nera +extern const extended::Info::ZoneInfo kZoneAsia_Vladivostok; // Asia/Vladivostok +extern const extended::Info::ZoneInfo kZoneAsia_Yakutsk; // Asia/Yakutsk +extern const extended::Info::ZoneInfo kZoneAsia_Yangon; // Asia/Yangon +extern const extended::Info::ZoneInfo kZoneAsia_Yekaterinburg; // Asia/Yekaterinburg +extern const extended::Info::ZoneInfo kZoneAsia_Yerevan; // Asia/Yerevan +extern const extended::Info::ZoneInfo kZoneAtlantic_Azores; // Atlantic/Azores +extern const extended::Info::ZoneInfo kZoneAtlantic_Bermuda; // Atlantic/Bermuda +extern const extended::Info::ZoneInfo kZoneAtlantic_Canary; // Atlantic/Canary +extern const extended::Info::ZoneInfo kZoneAtlantic_Cape_Verde; // Atlantic/Cape_Verde +extern const extended::Info::ZoneInfo kZoneAtlantic_Faroe; // Atlantic/Faroe +extern const extended::Info::ZoneInfo kZoneAtlantic_Madeira; // Atlantic/Madeira +extern const extended::Info::ZoneInfo kZoneAtlantic_South_Georgia; // Atlantic/South_Georgia +extern const extended::Info::ZoneInfo kZoneAtlantic_Stanley; // Atlantic/Stanley +extern const extended::Info::ZoneInfo kZoneAustralia_Adelaide; // Australia/Adelaide +extern const extended::Info::ZoneInfo kZoneAustralia_Brisbane; // Australia/Brisbane +extern const extended::Info::ZoneInfo kZoneAustralia_Broken_Hill; // Australia/Broken_Hill +extern const extended::Info::ZoneInfo kZoneAustralia_Darwin; // Australia/Darwin +extern const extended::Info::ZoneInfo kZoneAustralia_Eucla; // Australia/Eucla +extern const extended::Info::ZoneInfo kZoneAustralia_Hobart; // Australia/Hobart +extern const extended::Info::ZoneInfo kZoneAustralia_Lindeman; // Australia/Lindeman +extern const extended::Info::ZoneInfo kZoneAustralia_Lord_Howe; // Australia/Lord_Howe +extern const extended::Info::ZoneInfo kZoneAustralia_Melbourne; // Australia/Melbourne +extern const extended::Info::ZoneInfo kZoneAustralia_Perth; // Australia/Perth +extern const extended::Info::ZoneInfo kZoneAustralia_Sydney; // Australia/Sydney +extern const extended::Info::ZoneInfo kZoneEtc_GMT; // Etc/GMT +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_1; // Etc/GMT+1 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_10; // Etc/GMT+10 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_11; // Etc/GMT+11 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_12; // Etc/GMT+12 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_2; // Etc/GMT+2 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_3; // Etc/GMT+3 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_4; // Etc/GMT+4 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_5; // Etc/GMT+5 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_6; // Etc/GMT+6 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_7; // Etc/GMT+7 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_8; // Etc/GMT+8 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_9; // Etc/GMT+9 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_1; // Etc/GMT-1 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_10; // Etc/GMT-10 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_11; // Etc/GMT-11 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_12; // Etc/GMT-12 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_13; // Etc/GMT-13 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_14; // Etc/GMT-14 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_2; // Etc/GMT-2 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_3; // Etc/GMT-3 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_4; // Etc/GMT-4 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_5; // Etc/GMT-5 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_6; // Etc/GMT-6 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_7; // Etc/GMT-7 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_8; // Etc/GMT-8 +extern const extended::Info::ZoneInfo kZoneEtc_GMT_9; // Etc/GMT-9 +extern const extended::Info::ZoneInfo kZoneEtc_UTC; // Etc/UTC +extern const extended::Info::ZoneInfo kZoneEurope_Andorra; // Europe/Andorra +extern const extended::Info::ZoneInfo kZoneEurope_Astrakhan; // Europe/Astrakhan +extern const extended::Info::ZoneInfo kZoneEurope_Athens; // Europe/Athens +extern const extended::Info::ZoneInfo kZoneEurope_Belgrade; // Europe/Belgrade +extern const extended::Info::ZoneInfo kZoneEurope_Berlin; // Europe/Berlin +extern const extended::Info::ZoneInfo kZoneEurope_Brussels; // Europe/Brussels +extern const extended::Info::ZoneInfo kZoneEurope_Bucharest; // Europe/Bucharest +extern const extended::Info::ZoneInfo kZoneEurope_Budapest; // Europe/Budapest +extern const extended::Info::ZoneInfo kZoneEurope_Chisinau; // Europe/Chisinau +extern const extended::Info::ZoneInfo kZoneEurope_Dublin; // Europe/Dublin +extern const extended::Info::ZoneInfo kZoneEurope_Gibraltar; // Europe/Gibraltar +extern const extended::Info::ZoneInfo kZoneEurope_Helsinki; // Europe/Helsinki +extern const extended::Info::ZoneInfo kZoneEurope_Istanbul; // Europe/Istanbul +extern const extended::Info::ZoneInfo kZoneEurope_Kaliningrad; // Europe/Kaliningrad +extern const extended::Info::ZoneInfo kZoneEurope_Kirov; // Europe/Kirov +extern const extended::Info::ZoneInfo kZoneEurope_Kyiv; // Europe/Kyiv +extern const extended::Info::ZoneInfo kZoneEurope_Lisbon; // Europe/Lisbon +extern const extended::Info::ZoneInfo kZoneEurope_London; // Europe/London +extern const extended::Info::ZoneInfo kZoneEurope_Madrid; // Europe/Madrid +extern const extended::Info::ZoneInfo kZoneEurope_Malta; // Europe/Malta +extern const extended::Info::ZoneInfo kZoneEurope_Minsk; // Europe/Minsk +extern const extended::Info::ZoneInfo kZoneEurope_Moscow; // Europe/Moscow +extern const extended::Info::ZoneInfo kZoneEurope_Paris; // Europe/Paris +extern const extended::Info::ZoneInfo kZoneEurope_Prague; // Europe/Prague +extern const extended::Info::ZoneInfo kZoneEurope_Riga; // Europe/Riga +extern const extended::Info::ZoneInfo kZoneEurope_Rome; // Europe/Rome +extern const extended::Info::ZoneInfo kZoneEurope_Samara; // Europe/Samara +extern const extended::Info::ZoneInfo kZoneEurope_Saratov; // Europe/Saratov +extern const extended::Info::ZoneInfo kZoneEurope_Simferopol; // Europe/Simferopol +extern const extended::Info::ZoneInfo kZoneEurope_Sofia; // Europe/Sofia +extern const extended::Info::ZoneInfo kZoneEurope_Tallinn; // Europe/Tallinn +extern const extended::Info::ZoneInfo kZoneEurope_Tirane; // Europe/Tirane +extern const extended::Info::ZoneInfo kZoneEurope_Ulyanovsk; // Europe/Ulyanovsk +extern const extended::Info::ZoneInfo kZoneEurope_Vienna; // Europe/Vienna +extern const extended::Info::ZoneInfo kZoneEurope_Vilnius; // Europe/Vilnius +extern const extended::Info::ZoneInfo kZoneEurope_Volgograd; // Europe/Volgograd +extern const extended::Info::ZoneInfo kZoneEurope_Warsaw; // Europe/Warsaw +extern const extended::Info::ZoneInfo kZoneEurope_Zurich; // Europe/Zurich +extern const extended::Info::ZoneInfo kZoneIndian_Chagos; // Indian/Chagos +extern const extended::Info::ZoneInfo kZoneIndian_Maldives; // Indian/Maldives +extern const extended::Info::ZoneInfo kZoneIndian_Mauritius; // Indian/Mauritius +extern const extended::Info::ZoneInfo kZonePacific_Apia; // Pacific/Apia +extern const extended::Info::ZoneInfo kZonePacific_Auckland; // Pacific/Auckland +extern const extended::Info::ZoneInfo kZonePacific_Bougainville; // Pacific/Bougainville +extern const extended::Info::ZoneInfo kZonePacific_Chatham; // Pacific/Chatham +extern const extended::Info::ZoneInfo kZonePacific_Easter; // Pacific/Easter +extern const extended::Info::ZoneInfo kZonePacific_Efate; // Pacific/Efate +extern const extended::Info::ZoneInfo kZonePacific_Fakaofo; // Pacific/Fakaofo +extern const extended::Info::ZoneInfo kZonePacific_Fiji; // Pacific/Fiji +extern const extended::Info::ZoneInfo kZonePacific_Galapagos; // Pacific/Galapagos +extern const extended::Info::ZoneInfo kZonePacific_Gambier; // Pacific/Gambier +extern const extended::Info::ZoneInfo kZonePacific_Guadalcanal; // Pacific/Guadalcanal +extern const extended::Info::ZoneInfo kZonePacific_Guam; // Pacific/Guam +extern const extended::Info::ZoneInfo kZonePacific_Honolulu; // Pacific/Honolulu +extern const extended::Info::ZoneInfo kZonePacific_Kanton; // Pacific/Kanton +extern const extended::Info::ZoneInfo kZonePacific_Kiritimati; // Pacific/Kiritimati +extern const extended::Info::ZoneInfo kZonePacific_Kosrae; // Pacific/Kosrae +extern const extended::Info::ZoneInfo kZonePacific_Kwajalein; // Pacific/Kwajalein +extern const extended::Info::ZoneInfo kZonePacific_Marquesas; // Pacific/Marquesas +extern const extended::Info::ZoneInfo kZonePacific_Nauru; // Pacific/Nauru +extern const extended::Info::ZoneInfo kZonePacific_Niue; // Pacific/Niue +extern const extended::Info::ZoneInfo kZonePacific_Norfolk; // Pacific/Norfolk +extern const extended::Info::ZoneInfo kZonePacific_Noumea; // Pacific/Noumea +extern const extended::Info::ZoneInfo kZonePacific_Pago_Pago; // Pacific/Pago_Pago +extern const extended::Info::ZoneInfo kZonePacific_Palau; // Pacific/Palau +extern const extended::Info::ZoneInfo kZonePacific_Pitcairn; // Pacific/Pitcairn +extern const extended::Info::ZoneInfo kZonePacific_Port_Moresby; // Pacific/Port_Moresby +extern const extended::Info::ZoneInfo kZonePacific_Rarotonga; // Pacific/Rarotonga +extern const extended::Info::ZoneInfo kZonePacific_Tahiti; // Pacific/Tahiti +extern const extended::Info::ZoneInfo kZonePacific_Tarawa; // Pacific/Tarawa +extern const extended::Info::ZoneInfo kZonePacific_Tongatapu; // Pacific/Tongatapu + + +// Zone Ids + +const uint32_t kZoneIdAfrica_Abidjan = 0xc21305a3; // Africa/Abidjan +const uint32_t kZoneIdAfrica_Algiers = 0xd94515c1; // Africa/Algiers +const uint32_t kZoneIdAfrica_Bissau = 0x75564141; // Africa/Bissau +const uint32_t kZoneIdAfrica_Cairo = 0x77f8e228; // Africa/Cairo +const uint32_t kZoneIdAfrica_Casablanca = 0xc59f1b33; // Africa/Casablanca +const uint32_t kZoneIdAfrica_Ceuta = 0x77fb46ec; // Africa/Ceuta +const uint32_t kZoneIdAfrica_El_Aaiun = 0x9d6fb118; // Africa/El_Aaiun +const uint32_t kZoneIdAfrica_Johannesburg = 0xd5d157a0; // Africa/Johannesburg +const uint32_t kZoneIdAfrica_Juba = 0xd51b395c; // Africa/Juba +const uint32_t kZoneIdAfrica_Khartoum = 0xfb3d4205; // Africa/Khartoum +const uint32_t kZoneIdAfrica_Lagos = 0x789bb5d0; // Africa/Lagos +const uint32_t kZoneIdAfrica_Maputo = 0x8e6ca1f0; // Africa/Maputo +const uint32_t kZoneIdAfrica_Monrovia = 0x0ce90385; // Africa/Monrovia +const uint32_t kZoneIdAfrica_Nairobi = 0xa87ab57e; // Africa/Nairobi +const uint32_t kZoneIdAfrica_Ndjamena = 0x9fe09898; // Africa/Ndjamena +const uint32_t kZoneIdAfrica_Sao_Tome = 0x61b319d1; // Africa/Sao_Tome +const uint32_t kZoneIdAfrica_Tripoli = 0x9dfebd3d; // Africa/Tripoli +const uint32_t kZoneIdAfrica_Tunis = 0x79378e6d; // Africa/Tunis +const uint32_t kZoneIdAfrica_Windhoek = 0x789c9bd3; // Africa/Windhoek +const uint32_t kZoneIdAmerica_Adak = 0x97fe49d7; // America/Adak +const uint32_t kZoneIdAmerica_Anchorage = 0x5a79260e; // America/Anchorage +const uint32_t kZoneIdAmerica_Araguaina = 0x6f9a3aef; // America/Araguaina +const uint32_t kZoneIdAmerica_Argentina_Buenos_Aires = 0xd43b4c0d; // America/Argentina/Buenos_Aires +const uint32_t kZoneIdAmerica_Argentina_Catamarca = 0x8d40986b; // America/Argentina/Catamarca +const uint32_t kZoneIdAmerica_Argentina_Cordoba = 0xbfccc308; // America/Argentina/Cordoba +const uint32_t kZoneIdAmerica_Argentina_Jujuy = 0x5f2f46c5; // America/Argentina/Jujuy +const uint32_t kZoneIdAmerica_Argentina_La_Rioja = 0xa46b7eef; // America/Argentina/La_Rioja +const uint32_t kZoneIdAmerica_Argentina_Mendoza = 0xa9f72d5c; // America/Argentina/Mendoza +const uint32_t kZoneIdAmerica_Argentina_Rio_Gallegos = 0xc5b0f565; // America/Argentina/Rio_Gallegos +const uint32_t kZoneIdAmerica_Argentina_Salta = 0x5fc73403; // America/Argentina/Salta +const uint32_t kZoneIdAmerica_Argentina_San_Juan = 0x3e1009bd; // America/Argentina/San_Juan +const uint32_t kZoneIdAmerica_Argentina_San_Luis = 0x3e11238c; // America/Argentina/San_Luis +const uint32_t kZoneIdAmerica_Argentina_Tucuman = 0xe96399eb; // America/Argentina/Tucuman +const uint32_t kZoneIdAmerica_Argentina_Ushuaia = 0x320dcdde; // America/Argentina/Ushuaia +const uint32_t kZoneIdAmerica_Asuncion = 0x50ec79a6; // America/Asuncion +const uint32_t kZoneIdAmerica_Bahia = 0x97d815fb; // America/Bahia +const uint32_t kZoneIdAmerica_Bahia_Banderas = 0x14f6329a; // America/Bahia_Banderas +const uint32_t kZoneIdAmerica_Barbados = 0xcbbc3b04; // America/Barbados +const uint32_t kZoneIdAmerica_Belem = 0x97da580b; // America/Belem +const uint32_t kZoneIdAmerica_Belize = 0x93256c81; // America/Belize +const uint32_t kZoneIdAmerica_Boa_Vista = 0x0a7b7efe; // America/Boa_Vista +const uint32_t kZoneIdAmerica_Bogota = 0x93d7bc62; // America/Bogota +const uint32_t kZoneIdAmerica_Boise = 0x97dfc8d8; // America/Boise +const uint32_t kZoneIdAmerica_Cambridge_Bay = 0xd5a44aff; // America/Cambridge_Bay +const uint32_t kZoneIdAmerica_Campo_Grande = 0xfec3e7a6; // America/Campo_Grande +const uint32_t kZoneIdAmerica_Cancun = 0x953331be; // America/Cancun +const uint32_t kZoneIdAmerica_Caracas = 0x3be064f4; // America/Caracas +const uint32_t kZoneIdAmerica_Cayenne = 0x3c617269; // America/Cayenne +const uint32_t kZoneIdAmerica_Chicago = 0x4b92b5d4; // America/Chicago +const uint32_t kZoneIdAmerica_Chihuahua = 0x8827d776; // America/Chihuahua +const uint32_t kZoneIdAmerica_Ciudad_Juarez = 0x7347fc60; // America/Ciudad_Juarez +const uint32_t kZoneIdAmerica_Costa_Rica = 0x63ff66be; // America/Costa_Rica +const uint32_t kZoneIdAmerica_Coyhaique = 0xcc3314ee; // America/Coyhaique +const uint32_t kZoneIdAmerica_Cuiaba = 0x969a52eb; // America/Cuiaba +const uint32_t kZoneIdAmerica_Danmarkshavn = 0xf554d204; // America/Danmarkshavn +const uint32_t kZoneIdAmerica_Dawson = 0x978d8d12; // America/Dawson +const uint32_t kZoneIdAmerica_Dawson_Creek = 0x6cf24e5b; // America/Dawson_Creek +const uint32_t kZoneIdAmerica_Denver = 0x97d10b2a; // America/Denver +const uint32_t kZoneIdAmerica_Detroit = 0x925cfbc1; // America/Detroit +const uint32_t kZoneIdAmerica_Edmonton = 0x6cb9484a; // America/Edmonton +const uint32_t kZoneIdAmerica_Eirunepe = 0xf9b29683; // America/Eirunepe +const uint32_t kZoneIdAmerica_El_Salvador = 0x752ad652; // America/El_Salvador +const uint32_t kZoneIdAmerica_Fort_Nelson = 0x3f437e0f; // America/Fort_Nelson +const uint32_t kZoneIdAmerica_Fortaleza = 0x2ad018ee; // America/Fortaleza +const uint32_t kZoneIdAmerica_Glace_Bay = 0x9681f8dd; // America/Glace_Bay +const uint32_t kZoneIdAmerica_Goose_Bay = 0xb649541e; // America/Goose_Bay +const uint32_t kZoneIdAmerica_Grand_Turk = 0x6e216197; // America/Grand_Turk +const uint32_t kZoneIdAmerica_Guatemala = 0x0c8259f7; // America/Guatemala +const uint32_t kZoneIdAmerica_Guayaquil = 0x17e64958; // America/Guayaquil +const uint32_t kZoneIdAmerica_Guyana = 0x9ff7bd0b; // America/Guyana +const uint32_t kZoneIdAmerica_Halifax = 0xbc5b7183; // America/Halifax +const uint32_t kZoneIdAmerica_Havana = 0xa0e15675; // America/Havana +const uint32_t kZoneIdAmerica_Hermosillo = 0x065d21c4; // America/Hermosillo +const uint32_t kZoneIdAmerica_Indiana_Indianapolis = 0x28a669a4; // America/Indiana/Indianapolis +const uint32_t kZoneIdAmerica_Indiana_Knox = 0x6554adc9; // America/Indiana/Knox +const uint32_t kZoneIdAmerica_Indiana_Marengo = 0x2feeee72; // America/Indiana/Marengo +const uint32_t kZoneIdAmerica_Indiana_Petersburg = 0x94ac7acc; // America/Indiana/Petersburg +const uint32_t kZoneIdAmerica_Indiana_Tell_City = 0x09263612; // America/Indiana/Tell_City +const uint32_t kZoneIdAmerica_Indiana_Vevay = 0x10aca054; // America/Indiana/Vevay +const uint32_t kZoneIdAmerica_Indiana_Vincennes = 0x28a0b212; // America/Indiana/Vincennes +const uint32_t kZoneIdAmerica_Indiana_Winamac = 0x4413fa69; // America/Indiana/Winamac +const uint32_t kZoneIdAmerica_Inuvik = 0xa42189fc; // America/Inuvik +const uint32_t kZoneIdAmerica_Iqaluit = 0x2de310bf; // America/Iqaluit +const uint32_t kZoneIdAmerica_Jamaica = 0x565dad6c; // America/Jamaica +const uint32_t kZoneIdAmerica_Juneau = 0xa6f13e2e; // America/Juneau +const uint32_t kZoneIdAmerica_Kentucky_Louisville = 0x1a21024b; // America/Kentucky/Louisville +const uint32_t kZoneIdAmerica_Kentucky_Monticello = 0xde71c439; // America/Kentucky/Monticello +const uint32_t kZoneIdAmerica_La_Paz = 0xaa29125d; // America/La_Paz +const uint32_t kZoneIdAmerica_Lima = 0x980468c9; // America/Lima +const uint32_t kZoneIdAmerica_Los_Angeles = 0xb7f7e8f2; // America/Los_Angeles +const uint32_t kZoneIdAmerica_Maceio = 0xac80c6d4; // America/Maceio +const uint32_t kZoneIdAmerica_Managua = 0x3d5e7600; // America/Managua +const uint32_t kZoneIdAmerica_Manaus = 0xac86bf8b; // America/Manaus +const uint32_t kZoneIdAmerica_Martinique = 0x551e84c5; // America/Martinique +const uint32_t kZoneIdAmerica_Matamoros = 0xdd1b0259; // America/Matamoros +const uint32_t kZoneIdAmerica_Mazatlan = 0x0532189e; // America/Mazatlan +const uint32_t kZoneIdAmerica_Menominee = 0xe0e9c583; // America/Menominee +const uint32_t kZoneIdAmerica_Merida = 0xacd172d8; // America/Merida +const uint32_t kZoneIdAmerica_Metlakatla = 0x84de2686; // America/Metlakatla +const uint32_t kZoneIdAmerica_Mexico_City = 0xd0d93f43; // America/Mexico_City +const uint32_t kZoneIdAmerica_Miquelon = 0x59674330; // America/Miquelon +const uint32_t kZoneIdAmerica_Moncton = 0x5e07fe24; // America/Moncton +const uint32_t kZoneIdAmerica_Monterrey = 0x269a1deb; // America/Monterrey +const uint32_t kZoneIdAmerica_Montevideo = 0xfa214780; // America/Montevideo +const uint32_t kZoneIdAmerica_New_York = 0x1e2a7654; // America/New_York +const uint32_t kZoneIdAmerica_Nome = 0x98059b15; // America/Nome +const uint32_t kZoneIdAmerica_Noronha = 0xab5116fb; // America/Noronha +const uint32_t kZoneIdAmerica_North_Dakota_Beulah = 0x9b52b384; // America/North_Dakota/Beulah +const uint32_t kZoneIdAmerica_North_Dakota_Center = 0x9da42814; // America/North_Dakota/Center +const uint32_t kZoneIdAmerica_North_Dakota_New_Salem = 0x04f9958e; // America/North_Dakota/New_Salem +const uint32_t kZoneIdAmerica_Nuuk = 0x9805b5a9; // America/Nuuk +const uint32_t kZoneIdAmerica_Ojinaga = 0xebfde83f; // America/Ojinaga +const uint32_t kZoneIdAmerica_Panama = 0xb3863854; // America/Panama +const uint32_t kZoneIdAmerica_Paramaribo = 0xb319e4c4; // America/Paramaribo +const uint32_t kZoneIdAmerica_Phoenix = 0x34b5af01; // America/Phoenix +const uint32_t kZoneIdAmerica_Port_au_Prince = 0x8e4a7bdc; // America/Port-au-Prince +const uint32_t kZoneIdAmerica_Porto_Velho = 0x6b1aac77; // America/Porto_Velho +const uint32_t kZoneIdAmerica_Puerto_Rico = 0x6752ca31; // America/Puerto_Rico +const uint32_t kZoneIdAmerica_Punta_Arenas = 0xc2c3bce7; // America/Punta_Arenas +const uint32_t kZoneIdAmerica_Rankin_Inlet = 0xc8de4984; // America/Rankin_Inlet +const uint32_t kZoneIdAmerica_Recife = 0xb8730494; // America/Recife +const uint32_t kZoneIdAmerica_Regina = 0xb875371c; // America/Regina +const uint32_t kZoneIdAmerica_Resolute = 0xc7093459; // America/Resolute +const uint32_t kZoneIdAmerica_Rio_Branco = 0x9d352764; // America/Rio_Branco +const uint32_t kZoneIdAmerica_Santarem = 0x740caec1; // America/Santarem +const uint32_t kZoneIdAmerica_Santiago = 0x7410c9bc; // America/Santiago +const uint32_t kZoneIdAmerica_Santo_Domingo = 0x75a0d177; // America/Santo_Domingo +const uint32_t kZoneIdAmerica_Sao_Paulo = 0x1063bfc9; // America/Sao_Paulo +const uint32_t kZoneIdAmerica_Scoresbysund = 0x123f8d2a; // America/Scoresbysund +const uint32_t kZoneIdAmerica_Sitka = 0x99104ce2; // America/Sitka +const uint32_t kZoneIdAmerica_St_Johns = 0x04b14e6e; // America/St_Johns +const uint32_t kZoneIdAmerica_Swift_Current = 0xdef98e55; // America/Swift_Current +const uint32_t kZoneIdAmerica_Tegucigalpa = 0xbfd6fd4c; // America/Tegucigalpa +const uint32_t kZoneIdAmerica_Thule = 0x9921dd68; // America/Thule +const uint32_t kZoneIdAmerica_Tijuana = 0x6aa1df72; // America/Tijuana +const uint32_t kZoneIdAmerica_Toronto = 0x792e851b; // America/Toronto +const uint32_t kZoneIdAmerica_Vancouver = 0x2c6f6b1f; // America/Vancouver +const uint32_t kZoneIdAmerica_Whitehorse = 0x54e0e3e8; // America/Whitehorse +const uint32_t kZoneIdAmerica_Winnipeg = 0x8c7dafc7; // America/Winnipeg +const uint32_t kZoneIdAmerica_Yakutat = 0xd8ee31e9; // America/Yakutat +const uint32_t kZoneIdAntarctica_Casey = 0xe2022583; // Antarctica/Casey +const uint32_t kZoneIdAntarctica_Davis = 0xe2144b45; // Antarctica/Davis +const uint32_t kZoneIdAntarctica_Macquarie = 0x92f47626; // Antarctica/Macquarie +const uint32_t kZoneIdAntarctica_Mawson = 0x399cd863; // Antarctica/Mawson +const uint32_t kZoneIdAntarctica_Palmer = 0x40962f4f; // Antarctica/Palmer +const uint32_t kZoneIdAntarctica_Rothera = 0x0e86d203; // Antarctica/Rothera +const uint32_t kZoneIdAntarctica_Troll = 0xe33f085b; // Antarctica/Troll +const uint32_t kZoneIdAntarctica_Vostok = 0x4f966fd4; // Antarctica/Vostok +const uint32_t kZoneIdAsia_Almaty = 0xa61f41fa; // Asia/Almaty +const uint32_t kZoneIdAsia_Amman = 0x148d21bc; // Asia/Amman +const uint32_t kZoneIdAsia_Anadyr = 0xa63cebd1; // Asia/Anadyr +const uint32_t kZoneIdAsia_Aqtau = 0x148f710e; // Asia/Aqtau +const uint32_t kZoneIdAsia_Aqtobe = 0xa67dcc4e; // Asia/Aqtobe +const uint32_t kZoneIdAsia_Ashgabat = 0xba87598d; // Asia/Ashgabat +const uint32_t kZoneIdAsia_Atyrau = 0xa6b6e068; // Asia/Atyrau +const uint32_t kZoneIdAsia_Baghdad = 0x9ceffbed; // Asia/Baghdad +const uint32_t kZoneIdAsia_Baku = 0x1fa788b5; // Asia/Baku +const uint32_t kZoneIdAsia_Bangkok = 0x9d6e3aaf; // Asia/Bangkok +const uint32_t kZoneIdAsia_Barnaul = 0x9dba4997; // Asia/Barnaul +const uint32_t kZoneIdAsia_Beirut = 0xa7f3d5fd; // Asia/Beirut +const uint32_t kZoneIdAsia_Bishkek = 0xb0728553; // Asia/Bishkek +const uint32_t kZoneIdAsia_Chita = 0x14ae863b; // Asia/Chita +const uint32_t kZoneIdAsia_Colombo = 0x0af0e91d; // Asia/Colombo +const uint32_t kZoneIdAsia_Damascus = 0x20fbb063; // Asia/Damascus +const uint32_t kZoneIdAsia_Dhaka = 0x14c07b8b; // Asia/Dhaka +const uint32_t kZoneIdAsia_Dili = 0x1fa8c394; // Asia/Dili +const uint32_t kZoneIdAsia_Dubai = 0x14c79f77; // Asia/Dubai +const uint32_t kZoneIdAsia_Dushanbe = 0x32fc5c3c; // Asia/Dushanbe +const uint32_t kZoneIdAsia_Famagusta = 0x289b4f8b; // Asia/Famagusta +const uint32_t kZoneIdAsia_Gaza = 0x1faa4875; // Asia/Gaza +const uint32_t kZoneIdAsia_Hebron = 0xb5eef250; // Asia/Hebron +const uint32_t kZoneIdAsia_Ho_Chi_Minh = 0x20f2d127; // Asia/Ho_Chi_Minh +const uint32_t kZoneIdAsia_Hong_Kong = 0x577f28ac; // Asia/Hong_Kong +const uint32_t kZoneIdAsia_Hovd = 0x1fab0fe3; // Asia/Hovd +const uint32_t kZoneIdAsia_Irkutsk = 0xdfbf213f; // Asia/Irkutsk +const uint32_t kZoneIdAsia_Jakarta = 0x0506ab50; // Asia/Jakarta +const uint32_t kZoneIdAsia_Jayapura = 0xc6833c2f; // Asia/Jayapura +const uint32_t kZoneIdAsia_Jerusalem = 0x5becd23a; // Asia/Jerusalem +const uint32_t kZoneIdAsia_Kabul = 0x153b5601; // Asia/Kabul +const uint32_t kZoneIdAsia_Kamchatka = 0x73baf9d7; // Asia/Kamchatka +const uint32_t kZoneIdAsia_Karachi = 0x527f5245; // Asia/Karachi +const uint32_t kZoneIdAsia_Kathmandu = 0x9a96ce6f; // Asia/Kathmandu +const uint32_t kZoneIdAsia_Khandyga = 0x9685a4d9; // Asia/Khandyga +const uint32_t kZoneIdAsia_Kolkata = 0x72c06cd9; // Asia/Kolkata +const uint32_t kZoneIdAsia_Krasnoyarsk = 0xd0376c6a; // Asia/Krasnoyarsk +const uint32_t kZoneIdAsia_Kuching = 0x801b003b; // Asia/Kuching +const uint32_t kZoneIdAsia_Macau = 0x155f88b9; // Asia/Macau +const uint32_t kZoneIdAsia_Magadan = 0xebacc19b; // Asia/Magadan +const uint32_t kZoneIdAsia_Makassar = 0x6aa21c85; // Asia/Makassar +const uint32_t kZoneIdAsia_Manila = 0xc156c944; // Asia/Manila +const uint32_t kZoneIdAsia_Nicosia = 0x4b0fcf78; // Asia/Nicosia +const uint32_t kZoneIdAsia_Novokuznetsk = 0x69264f93; // Asia/Novokuznetsk +const uint32_t kZoneIdAsia_Novosibirsk = 0xa2a435cb; // Asia/Novosibirsk +const uint32_t kZoneIdAsia_Omsk = 0x1faeddac; // Asia/Omsk +const uint32_t kZoneIdAsia_Oral = 0x1faef0a0; // Asia/Oral +const uint32_t kZoneIdAsia_Pontianak = 0x1a76c057; // Asia/Pontianak +const uint32_t kZoneIdAsia_Pyongyang = 0x93ed1c8e; // Asia/Pyongyang +const uint32_t kZoneIdAsia_Qatar = 0x15a8330b; // Asia/Qatar +const uint32_t kZoneIdAsia_Qostanay = 0x654fe522; // Asia/Qostanay +const uint32_t kZoneIdAsia_Qyzylorda = 0x71282e81; // Asia/Qyzylorda +const uint32_t kZoneIdAsia_Riyadh = 0xcd973d93; // Asia/Riyadh +const uint32_t kZoneIdAsia_Sakhalin = 0xf4a1c9bd; // Asia/Sakhalin +const uint32_t kZoneIdAsia_Samarkand = 0x13ae5104; // Asia/Samarkand +const uint32_t kZoneIdAsia_Seoul = 0x15ce82da; // Asia/Seoul +const uint32_t kZoneIdAsia_Shanghai = 0xf895a7f5; // Asia/Shanghai +const uint32_t kZoneIdAsia_Singapore = 0xcf8581fa; // Asia/Singapore +const uint32_t kZoneIdAsia_Srednekolymsk = 0xbf8e337d; // Asia/Srednekolymsk +const uint32_t kZoneIdAsia_Taipei = 0xd1a844ae; // Asia/Taipei +const uint32_t kZoneIdAsia_Tashkent = 0xf3924254; // Asia/Tashkent +const uint32_t kZoneIdAsia_Tbilisi = 0x0903e442; // Asia/Tbilisi +const uint32_t kZoneIdAsia_Tehran = 0xd1f02254; // Asia/Tehran +const uint32_t kZoneIdAsia_Thimphu = 0x170380d1; // Asia/Thimphu +const uint32_t kZoneIdAsia_Tokyo = 0x15e606a8; // Asia/Tokyo +const uint32_t kZoneIdAsia_Tomsk = 0x15e60e60; // Asia/Tomsk +const uint32_t kZoneIdAsia_Ulaanbaatar = 0x30f0cc4e; // Asia/Ulaanbaatar +const uint32_t kZoneIdAsia_Urumqi = 0xd5379735; // Asia/Urumqi +const uint32_t kZoneIdAsia_Ust_Nera = 0x4785f921; // Asia/Ust-Nera +const uint32_t kZoneIdAsia_Vladivostok = 0x29de34a8; // Asia/Vladivostok +const uint32_t kZoneIdAsia_Yakutsk = 0x87bb3a9e; // Asia/Yakutsk +const uint32_t kZoneIdAsia_Yangon = 0xdd54a8be; // Asia/Yangon +const uint32_t kZoneIdAsia_Yekaterinburg = 0xfb544c6e; // Asia/Yekaterinburg +const uint32_t kZoneIdAsia_Yerevan = 0x9185c8cc; // Asia/Yerevan +const uint32_t kZoneIdAtlantic_Azores = 0xf93ed918; // Atlantic/Azores +const uint32_t kZoneIdAtlantic_Bermuda = 0x3d4bb1c4; // Atlantic/Bermuda +const uint32_t kZoneIdAtlantic_Canary = 0xfc23f2c2; // Atlantic/Canary +const uint32_t kZoneIdAtlantic_Cape_Verde = 0x5c5e1772; // Atlantic/Cape_Verde +const uint32_t kZoneIdAtlantic_Faroe = 0xe110a971; // Atlantic/Faroe +const uint32_t kZoneIdAtlantic_Madeira = 0x81b5c037; // Atlantic/Madeira +const uint32_t kZoneIdAtlantic_South_Georgia = 0x33013174; // Atlantic/South_Georgia +const uint32_t kZoneIdAtlantic_Stanley = 0x7bb3e1c4; // Atlantic/Stanley +const uint32_t kZoneIdAustralia_Adelaide = 0x2428e8a3; // Australia/Adelaide +const uint32_t kZoneIdAustralia_Brisbane = 0x4fedc9c0; // Australia/Brisbane +const uint32_t kZoneIdAustralia_Broken_Hill = 0xb06eada3; // Australia/Broken_Hill +const uint32_t kZoneIdAustralia_Darwin = 0x2876bdff; // Australia/Darwin +const uint32_t kZoneIdAustralia_Eucla = 0x8cf99e44; // Australia/Eucla +const uint32_t kZoneIdAustralia_Hobart = 0x32bf951a; // Australia/Hobart +const uint32_t kZoneIdAustralia_Lindeman = 0xe05029e2; // Australia/Lindeman +const uint32_t kZoneIdAustralia_Lord_Howe = 0xa748b67d; // Australia/Lord_Howe +const uint32_t kZoneIdAustralia_Melbourne = 0x0fe559a3; // Australia/Melbourne +const uint32_t kZoneIdAustralia_Perth = 0x8db8269d; // Australia/Perth +const uint32_t kZoneIdAustralia_Sydney = 0x4d1e9776; // Australia/Sydney +const uint32_t kZoneIdEtc_GMT = 0xd8e2de58; // Etc/GMT +const uint32_t kZoneIdEtc_GMT_PLUS_1 = 0x9d13da14; // Etc/GMT+1 +const uint32_t kZoneIdEtc_GMT_PLUS_10 = 0x3f8f1cc4; // Etc/GMT+10 +const uint32_t kZoneIdEtc_GMT_PLUS_11 = 0x3f8f1cc5; // Etc/GMT+11 +const uint32_t kZoneIdEtc_GMT_PLUS_12 = 0x3f8f1cc6; // Etc/GMT+12 +const uint32_t kZoneIdEtc_GMT_PLUS_2 = 0x9d13da15; // Etc/GMT+2 +const uint32_t kZoneIdEtc_GMT_PLUS_3 = 0x9d13da16; // Etc/GMT+3 +const uint32_t kZoneIdEtc_GMT_PLUS_4 = 0x9d13da17; // Etc/GMT+4 +const uint32_t kZoneIdEtc_GMT_PLUS_5 = 0x9d13da18; // Etc/GMT+5 +const uint32_t kZoneIdEtc_GMT_PLUS_6 = 0x9d13da19; // Etc/GMT+6 +const uint32_t kZoneIdEtc_GMT_PLUS_7 = 0x9d13da1a; // Etc/GMT+7 +const uint32_t kZoneIdEtc_GMT_PLUS_8 = 0x9d13da1b; // Etc/GMT+8 +const uint32_t kZoneIdEtc_GMT_PLUS_9 = 0x9d13da1c; // Etc/GMT+9 +const uint32_t kZoneIdEtc_GMT_1 = 0x9d13da56; // Etc/GMT-1 +const uint32_t kZoneIdEtc_GMT_10 = 0x3f8f2546; // Etc/GMT-10 +const uint32_t kZoneIdEtc_GMT_11 = 0x3f8f2547; // Etc/GMT-11 +const uint32_t kZoneIdEtc_GMT_12 = 0x3f8f2548; // Etc/GMT-12 +const uint32_t kZoneIdEtc_GMT_13 = 0x3f8f2549; // Etc/GMT-13 +const uint32_t kZoneIdEtc_GMT_14 = 0x3f8f254a; // Etc/GMT-14 +const uint32_t kZoneIdEtc_GMT_2 = 0x9d13da57; // Etc/GMT-2 +const uint32_t kZoneIdEtc_GMT_3 = 0x9d13da58; // Etc/GMT-3 +const uint32_t kZoneIdEtc_GMT_4 = 0x9d13da59; // Etc/GMT-4 +const uint32_t kZoneIdEtc_GMT_5 = 0x9d13da5a; // Etc/GMT-5 +const uint32_t kZoneIdEtc_GMT_6 = 0x9d13da5b; // Etc/GMT-6 +const uint32_t kZoneIdEtc_GMT_7 = 0x9d13da5c; // Etc/GMT-7 +const uint32_t kZoneIdEtc_GMT_8 = 0x9d13da5d; // Etc/GMT-8 +const uint32_t kZoneIdEtc_GMT_9 = 0x9d13da5e; // Etc/GMT-9 +const uint32_t kZoneIdEtc_UTC = 0xd8e31abc; // Etc/UTC +const uint32_t kZoneIdEurope_Andorra = 0x97f6764b; // Europe/Andorra +const uint32_t kZoneIdEurope_Astrakhan = 0xe22256e1; // Europe/Astrakhan +const uint32_t kZoneIdEurope_Athens = 0x4318fa27; // Europe/Athens +const uint32_t kZoneIdEurope_Belgrade = 0xe0532b3a; // Europe/Belgrade +const uint32_t kZoneIdEurope_Berlin = 0x44644c20; // Europe/Berlin +const uint32_t kZoneIdEurope_Brussels = 0xdee07337; // Europe/Brussels +const uint32_t kZoneIdEurope_Bucharest = 0xfb349ec5; // Europe/Bucharest +const uint32_t kZoneIdEurope_Budapest = 0x9ce0197c; // Europe/Budapest +const uint32_t kZoneIdEurope_Chisinau = 0xad58aa18; // Europe/Chisinau +const uint32_t kZoneIdEurope_Dublin = 0x4a275f62; // Europe/Dublin +const uint32_t kZoneIdEurope_Gibraltar = 0xf8e325fc; // Europe/Gibraltar +const uint32_t kZoneIdEurope_Helsinki = 0x6ab2975b; // Europe/Helsinki +const uint32_t kZoneIdEurope_Istanbul = 0x9e09d6e6; // Europe/Istanbul +const uint32_t kZoneIdEurope_Kaliningrad = 0xd33b2f28; // Europe/Kaliningrad +const uint32_t kZoneIdEurope_Kirov = 0xfaf5abef; // Europe/Kirov +const uint32_t kZoneIdEurope_Kyiv = 0xa2c1e347; // Europe/Kyiv +const uint32_t kZoneIdEurope_Lisbon = 0x5c00a70b; // Europe/Lisbon +const uint32_t kZoneIdEurope_London = 0x5c6a84ae; // Europe/London +const uint32_t kZoneIdEurope_Madrid = 0x5dbd1535; // Europe/Madrid +const uint32_t kZoneIdEurope_Malta = 0xfb1560f3; // Europe/Malta +const uint32_t kZoneIdEurope_Minsk = 0xfb19cc66; // Europe/Minsk +const uint32_t kZoneIdEurope_Moscow = 0x5ec266fc; // Europe/Moscow +const uint32_t kZoneIdEurope_Paris = 0xfb4bc2a3; // Europe/Paris +const uint32_t kZoneIdEurope_Prague = 0x65ee5d48; // Europe/Prague +const uint32_t kZoneIdEurope_Riga = 0xa2c57587; // Europe/Riga +const uint32_t kZoneIdEurope_Rome = 0xa2c58fd7; // Europe/Rome +const uint32_t kZoneIdEurope_Samara = 0x6bc0b139; // Europe/Samara +const uint32_t kZoneIdEurope_Saratov = 0xe4315da4; // Europe/Saratov +const uint32_t kZoneIdEurope_Simferopol = 0xda9eb724; // Europe/Simferopol +const uint32_t kZoneIdEurope_Sofia = 0xfb898656; // Europe/Sofia +const uint32_t kZoneIdEurope_Tallinn = 0x30c4e096; // Europe/Tallinn +const uint32_t kZoneIdEurope_Tirane = 0x6ea95b47; // Europe/Tirane +const uint32_t kZoneIdEurope_Ulyanovsk = 0xe03783d0; // Europe/Ulyanovsk +const uint32_t kZoneIdEurope_Vienna = 0x734cc2e5; // Europe/Vienna +const uint32_t kZoneIdEurope_Vilnius = 0xdd63b8ce; // Europe/Vilnius +const uint32_t kZoneIdEurope_Volgograd = 0x3ed0f389; // Europe/Volgograd +const uint32_t kZoneIdEurope_Warsaw = 0x75185c19; // Europe/Warsaw +const uint32_t kZoneIdEurope_Zurich = 0x7d8195b9; // Europe/Zurich +const uint32_t kZoneIdIndian_Chagos = 0x456f7c3c; // Indian/Chagos +const uint32_t kZoneIdIndian_Maldives = 0x9869681c; // Indian/Maldives +const uint32_t kZoneIdIndian_Mauritius = 0x7b09c02a; // Indian/Mauritius +const uint32_t kZoneIdPacific_Apia = 0x23359b5e; // Pacific/Apia +const uint32_t kZoneIdPacific_Auckland = 0x25062f86; // Pacific/Auckland +const uint32_t kZoneIdPacific_Bougainville = 0x5e10f7a4; // Pacific/Bougainville +const uint32_t kZoneIdPacific_Chatham = 0x2f0de999; // Pacific/Chatham +const uint32_t kZoneIdPacific_Easter = 0xcf54f7e7; // Pacific/Easter +const uint32_t kZoneIdPacific_Efate = 0x8a2bce28; // Pacific/Efate +const uint32_t kZoneIdPacific_Fakaofo = 0x06532bba; // Pacific/Fakaofo +const uint32_t kZoneIdPacific_Fiji = 0x23383ba5; // Pacific/Fiji +const uint32_t kZoneIdPacific_Galapagos = 0xa952f752; // Pacific/Galapagos +const uint32_t kZoneIdPacific_Gambier = 0x53720c3a; // Pacific/Gambier +const uint32_t kZoneIdPacific_Guadalcanal = 0xf4dd25f0; // Pacific/Guadalcanal +const uint32_t kZoneIdPacific_Guam = 0x2338f9ed; // Pacific/Guam +const uint32_t kZoneIdPacific_Honolulu = 0xe6e70af9; // Pacific/Honolulu +const uint32_t kZoneIdPacific_Kanton = 0xdd512f0e; // Pacific/Kanton +const uint32_t kZoneIdPacific_Kiritimati = 0x8305073a; // Pacific/Kiritimati +const uint32_t kZoneIdPacific_Kosrae = 0xde5139a8; // Pacific/Kosrae +const uint32_t kZoneIdPacific_Kwajalein = 0x8e216759; // Pacific/Kwajalein +const uint32_t kZoneIdPacific_Marquesas = 0x57ca7135; // Pacific/Marquesas +const uint32_t kZoneIdPacific_Nauru = 0x8acc41ae; // Pacific/Nauru +const uint32_t kZoneIdPacific_Niue = 0x233ca014; // Pacific/Niue +const uint32_t kZoneIdPacific_Norfolk = 0x8f4eb4be; // Pacific/Norfolk +const uint32_t kZoneIdPacific_Noumea = 0xe551b788; // Pacific/Noumea +const uint32_t kZoneIdPacific_Pago_Pago = 0x603aebd0; // Pacific/Pago_Pago +const uint32_t kZoneIdPacific_Palau = 0x8af04a36; // Pacific/Palau +const uint32_t kZoneIdPacific_Pitcairn = 0x8837d8bd; // Pacific/Pitcairn +const uint32_t kZoneIdPacific_Port_Moresby = 0xa7ba7f68; // Pacific/Port_Moresby +const uint32_t kZoneIdPacific_Rarotonga = 0x9981a3b0; // Pacific/Rarotonga +const uint32_t kZoneIdPacific_Tahiti = 0xf24c2446; // Pacific/Tahiti +const uint32_t kZoneIdPacific_Tarawa = 0xf2517e63; // Pacific/Tarawa +const uint32_t kZoneIdPacific_Tongatapu = 0x262ca836; // Pacific/Tongatapu + + +//--------------------------------------------------------------------------- +// Supported links: 257 +//--------------------------------------------------------------------------- + +extern const extended::Info::ZoneInfo kZoneAfrica_Accra; // Africa/Accra -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAfrica_Addis_Ababa; // Africa/Addis_Ababa -> Africa/Nairobi +extern const extended::Info::ZoneInfo kZoneAfrica_Asmara; // Africa/Asmara -> Africa/Nairobi +extern const extended::Info::ZoneInfo kZoneAfrica_Asmera; // Africa/Asmera -> Africa/Nairobi +extern const extended::Info::ZoneInfo kZoneAfrica_Bamako; // Africa/Bamako -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAfrica_Bangui; // Africa/Bangui -> Africa/Lagos +extern const extended::Info::ZoneInfo kZoneAfrica_Banjul; // Africa/Banjul -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAfrica_Blantyre; // Africa/Blantyre -> Africa/Maputo +extern const extended::Info::ZoneInfo kZoneAfrica_Brazzaville; // Africa/Brazzaville -> Africa/Lagos +extern const extended::Info::ZoneInfo kZoneAfrica_Bujumbura; // Africa/Bujumbura -> Africa/Maputo +extern const extended::Info::ZoneInfo kZoneAfrica_Conakry; // Africa/Conakry -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAfrica_Dakar; // Africa/Dakar -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAfrica_Dar_es_Salaam; // Africa/Dar_es_Salaam -> Africa/Nairobi +extern const extended::Info::ZoneInfo kZoneAfrica_Djibouti; // Africa/Djibouti -> Africa/Nairobi +extern const extended::Info::ZoneInfo kZoneAfrica_Douala; // Africa/Douala -> Africa/Lagos +extern const extended::Info::ZoneInfo kZoneAfrica_Freetown; // Africa/Freetown -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAfrica_Gaborone; // Africa/Gaborone -> Africa/Maputo +extern const extended::Info::ZoneInfo kZoneAfrica_Harare; // Africa/Harare -> Africa/Maputo +extern const extended::Info::ZoneInfo kZoneAfrica_Kampala; // Africa/Kampala -> Africa/Nairobi +extern const extended::Info::ZoneInfo kZoneAfrica_Kigali; // Africa/Kigali -> Africa/Maputo +extern const extended::Info::ZoneInfo kZoneAfrica_Kinshasa; // Africa/Kinshasa -> Africa/Lagos +extern const extended::Info::ZoneInfo kZoneAfrica_Libreville; // Africa/Libreville -> Africa/Lagos +extern const extended::Info::ZoneInfo kZoneAfrica_Lome; // Africa/Lome -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAfrica_Luanda; // Africa/Luanda -> Africa/Lagos +extern const extended::Info::ZoneInfo kZoneAfrica_Lubumbashi; // Africa/Lubumbashi -> Africa/Maputo +extern const extended::Info::ZoneInfo kZoneAfrica_Lusaka; // Africa/Lusaka -> Africa/Maputo +extern const extended::Info::ZoneInfo kZoneAfrica_Malabo; // Africa/Malabo -> Africa/Lagos +extern const extended::Info::ZoneInfo kZoneAfrica_Maseru; // Africa/Maseru -> Africa/Johannesburg +extern const extended::Info::ZoneInfo kZoneAfrica_Mbabane; // Africa/Mbabane -> Africa/Johannesburg +extern const extended::Info::ZoneInfo kZoneAfrica_Mogadishu; // Africa/Mogadishu -> Africa/Nairobi +extern const extended::Info::ZoneInfo kZoneAfrica_Niamey; // Africa/Niamey -> Africa/Lagos +extern const extended::Info::ZoneInfo kZoneAfrica_Nouakchott; // Africa/Nouakchott -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAfrica_Ouagadougou; // Africa/Ouagadougou -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAfrica_Porto_Novo; // Africa/Porto-Novo -> Africa/Lagos +extern const extended::Info::ZoneInfo kZoneAfrica_Timbuktu; // Africa/Timbuktu -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAmerica_Anguilla; // America/Anguilla -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Antigua; // America/Antigua -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Argentina_ComodRivadavia; // America/Argentina/ComodRivadavia -> America/Argentina/Catamarca +extern const extended::Info::ZoneInfo kZoneAmerica_Aruba; // America/Aruba -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Atikokan; // America/Atikokan -> America/Panama +extern const extended::Info::ZoneInfo kZoneAmerica_Atka; // America/Atka -> America/Adak +extern const extended::Info::ZoneInfo kZoneAmerica_Blanc_Sablon; // America/Blanc-Sablon -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Buenos_Aires; // America/Buenos_Aires -> America/Argentina/Buenos_Aires +extern const extended::Info::ZoneInfo kZoneAmerica_Catamarca; // America/Catamarca -> America/Argentina/Catamarca +extern const extended::Info::ZoneInfo kZoneAmerica_Cayman; // America/Cayman -> America/Panama +extern const extended::Info::ZoneInfo kZoneAmerica_Coral_Harbour; // America/Coral_Harbour -> America/Panama +extern const extended::Info::ZoneInfo kZoneAmerica_Cordoba; // America/Cordoba -> America/Argentina/Cordoba +extern const extended::Info::ZoneInfo kZoneAmerica_Creston; // America/Creston -> America/Phoenix +extern const extended::Info::ZoneInfo kZoneAmerica_Curacao; // America/Curacao -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Dominica; // America/Dominica -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Ensenada; // America/Ensenada -> America/Tijuana +extern const extended::Info::ZoneInfo kZoneAmerica_Fort_Wayne; // America/Fort_Wayne -> America/Indiana/Indianapolis +extern const extended::Info::ZoneInfo kZoneAmerica_Godthab; // America/Godthab -> America/Nuuk +extern const extended::Info::ZoneInfo kZoneAmerica_Grenada; // America/Grenada -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Guadeloupe; // America/Guadeloupe -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Indianapolis; // America/Indianapolis -> America/Indiana/Indianapolis +extern const extended::Info::ZoneInfo kZoneAmerica_Jujuy; // America/Jujuy -> America/Argentina/Jujuy +extern const extended::Info::ZoneInfo kZoneAmerica_Knox_IN; // America/Knox_IN -> America/Indiana/Knox +extern const extended::Info::ZoneInfo kZoneAmerica_Kralendijk; // America/Kralendijk -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Louisville; // America/Louisville -> America/Kentucky/Louisville +extern const extended::Info::ZoneInfo kZoneAmerica_Lower_Princes; // America/Lower_Princes -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Marigot; // America/Marigot -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Mendoza; // America/Mendoza -> America/Argentina/Mendoza +extern const extended::Info::ZoneInfo kZoneAmerica_Montreal; // America/Montreal -> America/Toronto +extern const extended::Info::ZoneInfo kZoneAmerica_Montserrat; // America/Montserrat -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Nassau; // America/Nassau -> America/Toronto +extern const extended::Info::ZoneInfo kZoneAmerica_Nipigon; // America/Nipigon -> America/Toronto +extern const extended::Info::ZoneInfo kZoneAmerica_Pangnirtung; // America/Pangnirtung -> America/Iqaluit +extern const extended::Info::ZoneInfo kZoneAmerica_Port_of_Spain; // America/Port_of_Spain -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Porto_Acre; // America/Porto_Acre -> America/Rio_Branco +extern const extended::Info::ZoneInfo kZoneAmerica_Rainy_River; // America/Rainy_River -> America/Winnipeg +extern const extended::Info::ZoneInfo kZoneAmerica_Rosario; // America/Rosario -> America/Argentina/Cordoba +extern const extended::Info::ZoneInfo kZoneAmerica_Santa_Isabel; // America/Santa_Isabel -> America/Tijuana +extern const extended::Info::ZoneInfo kZoneAmerica_Shiprock; // America/Shiprock -> America/Denver +extern const extended::Info::ZoneInfo kZoneAmerica_St_Barthelemy; // America/St_Barthelemy -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_St_Kitts; // America/St_Kitts -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_St_Lucia; // America/St_Lucia -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_St_Thomas; // America/St_Thomas -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_St_Vincent; // America/St_Vincent -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Thunder_Bay; // America/Thunder_Bay -> America/Toronto +extern const extended::Info::ZoneInfo kZoneAmerica_Tortola; // America/Tortola -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Virgin; // America/Virgin -> America/Puerto_Rico +extern const extended::Info::ZoneInfo kZoneAmerica_Yellowknife; // America/Yellowknife -> America/Edmonton +extern const extended::Info::ZoneInfo kZoneAntarctica_DumontDUrville; // Antarctica/DumontDUrville -> Pacific/Port_Moresby +extern const extended::Info::ZoneInfo kZoneAntarctica_McMurdo; // Antarctica/McMurdo -> Pacific/Auckland +extern const extended::Info::ZoneInfo kZoneAntarctica_South_Pole; // Antarctica/South_Pole -> Pacific/Auckland +extern const extended::Info::ZoneInfo kZoneAntarctica_Syowa; // Antarctica/Syowa -> Asia/Riyadh +extern const extended::Info::ZoneInfo kZoneArctic_Longyearbyen; // Arctic/Longyearbyen -> Europe/Berlin +extern const extended::Info::ZoneInfo kZoneAsia_Aden; // Asia/Aden -> Asia/Riyadh +extern const extended::Info::ZoneInfo kZoneAsia_Ashkhabad; // Asia/Ashkhabad -> Asia/Ashgabat +extern const extended::Info::ZoneInfo kZoneAsia_Bahrain; // Asia/Bahrain -> Asia/Qatar +extern const extended::Info::ZoneInfo kZoneAsia_Brunei; // Asia/Brunei -> Asia/Kuching +extern const extended::Info::ZoneInfo kZoneAsia_Calcutta; // Asia/Calcutta -> Asia/Kolkata +extern const extended::Info::ZoneInfo kZoneAsia_Choibalsan; // Asia/Choibalsan -> Asia/Ulaanbaatar +extern const extended::Info::ZoneInfo kZoneAsia_Chongqing; // Asia/Chongqing -> Asia/Shanghai +extern const extended::Info::ZoneInfo kZoneAsia_Chungking; // Asia/Chungking -> Asia/Shanghai +extern const extended::Info::ZoneInfo kZoneAsia_Dacca; // Asia/Dacca -> Asia/Dhaka +extern const extended::Info::ZoneInfo kZoneAsia_Harbin; // Asia/Harbin -> Asia/Shanghai +extern const extended::Info::ZoneInfo kZoneAsia_Istanbul; // Asia/Istanbul -> Europe/Istanbul +extern const extended::Info::ZoneInfo kZoneAsia_Kashgar; // Asia/Kashgar -> Asia/Urumqi +extern const extended::Info::ZoneInfo kZoneAsia_Katmandu; // Asia/Katmandu -> Asia/Kathmandu +extern const extended::Info::ZoneInfo kZoneAsia_Kuala_Lumpur; // Asia/Kuala_Lumpur -> Asia/Singapore +extern const extended::Info::ZoneInfo kZoneAsia_Kuwait; // Asia/Kuwait -> Asia/Riyadh +extern const extended::Info::ZoneInfo kZoneAsia_Macao; // Asia/Macao -> Asia/Macau +extern const extended::Info::ZoneInfo kZoneAsia_Muscat; // Asia/Muscat -> Asia/Dubai +extern const extended::Info::ZoneInfo kZoneAsia_Phnom_Penh; // Asia/Phnom_Penh -> Asia/Bangkok +extern const extended::Info::ZoneInfo kZoneAsia_Rangoon; // Asia/Rangoon -> Asia/Yangon +extern const extended::Info::ZoneInfo kZoneAsia_Saigon; // Asia/Saigon -> Asia/Ho_Chi_Minh +extern const extended::Info::ZoneInfo kZoneAsia_Tel_Aviv; // Asia/Tel_Aviv -> Asia/Jerusalem +extern const extended::Info::ZoneInfo kZoneAsia_Thimbu; // Asia/Thimbu -> Asia/Thimphu +extern const extended::Info::ZoneInfo kZoneAsia_Ujung_Pandang; // Asia/Ujung_Pandang -> Asia/Makassar +extern const extended::Info::ZoneInfo kZoneAsia_Ulan_Bator; // Asia/Ulan_Bator -> Asia/Ulaanbaatar +extern const extended::Info::ZoneInfo kZoneAsia_Vientiane; // Asia/Vientiane -> Asia/Bangkok +extern const extended::Info::ZoneInfo kZoneAtlantic_Faeroe; // Atlantic/Faeroe -> Atlantic/Faroe +extern const extended::Info::ZoneInfo kZoneAtlantic_Jan_Mayen; // Atlantic/Jan_Mayen -> Europe/Berlin +extern const extended::Info::ZoneInfo kZoneAtlantic_Reykjavik; // Atlantic/Reykjavik -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAtlantic_St_Helena; // Atlantic/St_Helena -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneAustralia_ACT; // Australia/ACT -> Australia/Sydney +extern const extended::Info::ZoneInfo kZoneAustralia_Canberra; // Australia/Canberra -> Australia/Sydney +extern const extended::Info::ZoneInfo kZoneAustralia_Currie; // Australia/Currie -> Australia/Hobart +extern const extended::Info::ZoneInfo kZoneAustralia_LHI; // Australia/LHI -> Australia/Lord_Howe +extern const extended::Info::ZoneInfo kZoneAustralia_NSW; // Australia/NSW -> Australia/Sydney +extern const extended::Info::ZoneInfo kZoneAustralia_North; // Australia/North -> Australia/Darwin +extern const extended::Info::ZoneInfo kZoneAustralia_Queensland; // Australia/Queensland -> Australia/Brisbane +extern const extended::Info::ZoneInfo kZoneAustralia_South; // Australia/South -> Australia/Adelaide +extern const extended::Info::ZoneInfo kZoneAustralia_Tasmania; // Australia/Tasmania -> Australia/Hobart +extern const extended::Info::ZoneInfo kZoneAustralia_Victoria; // Australia/Victoria -> Australia/Melbourne +extern const extended::Info::ZoneInfo kZoneAustralia_West; // Australia/West -> Australia/Perth +extern const extended::Info::ZoneInfo kZoneAustralia_Yancowinna; // Australia/Yancowinna -> Australia/Broken_Hill +extern const extended::Info::ZoneInfo kZoneBrazil_Acre; // Brazil/Acre -> America/Rio_Branco +extern const extended::Info::ZoneInfo kZoneBrazil_DeNoronha; // Brazil/DeNoronha -> America/Noronha +extern const extended::Info::ZoneInfo kZoneBrazil_East; // Brazil/East -> America/Sao_Paulo +extern const extended::Info::ZoneInfo kZoneBrazil_West; // Brazil/West -> America/Manaus +extern const extended::Info::ZoneInfo kZoneCET; // CET -> Europe/Brussels +extern const extended::Info::ZoneInfo kZoneCST6CDT; // CST6CDT -> America/Chicago +extern const extended::Info::ZoneInfo kZoneCanada_Atlantic; // Canada/Atlantic -> America/Halifax +extern const extended::Info::ZoneInfo kZoneCanada_Central; // Canada/Central -> America/Winnipeg +extern const extended::Info::ZoneInfo kZoneCanada_Eastern; // Canada/Eastern -> America/Toronto +extern const extended::Info::ZoneInfo kZoneCanada_Mountain; // Canada/Mountain -> America/Edmonton +extern const extended::Info::ZoneInfo kZoneCanada_Newfoundland; // Canada/Newfoundland -> America/St_Johns +extern const extended::Info::ZoneInfo kZoneCanada_Pacific; // Canada/Pacific -> America/Vancouver +extern const extended::Info::ZoneInfo kZoneCanada_Saskatchewan; // Canada/Saskatchewan -> America/Regina +extern const extended::Info::ZoneInfo kZoneCanada_Yukon; // Canada/Yukon -> America/Whitehorse +extern const extended::Info::ZoneInfo kZoneChile_Continental; // Chile/Continental -> America/Santiago +extern const extended::Info::ZoneInfo kZoneChile_EasterIsland; // Chile/EasterIsland -> Pacific/Easter +extern const extended::Info::ZoneInfo kZoneCuba; // Cuba -> America/Havana +extern const extended::Info::ZoneInfo kZoneEET; // EET -> Europe/Athens +extern const extended::Info::ZoneInfo kZoneEST; // EST -> America/Panama +extern const extended::Info::ZoneInfo kZoneEST5EDT; // EST5EDT -> America/New_York +extern const extended::Info::ZoneInfo kZoneEgypt; // Egypt -> Africa/Cairo +extern const extended::Info::ZoneInfo kZoneEire; // Eire -> Europe/Dublin +extern const extended::Info::ZoneInfo kZoneEtc_GMT_PLUS_0; // Etc/GMT+0 -> Etc/GMT +extern const extended::Info::ZoneInfo kZoneEtc_GMT_0; // Etc/GMT-0 -> Etc/GMT +extern const extended::Info::ZoneInfo kZoneEtc_GMT0; // Etc/GMT0 -> Etc/GMT +extern const extended::Info::ZoneInfo kZoneEtc_Greenwich; // Etc/Greenwich -> Etc/GMT +extern const extended::Info::ZoneInfo kZoneEtc_UCT; // Etc/UCT -> Etc/UTC +extern const extended::Info::ZoneInfo kZoneEtc_Universal; // Etc/Universal -> Etc/UTC +extern const extended::Info::ZoneInfo kZoneEtc_Zulu; // Etc/Zulu -> Etc/UTC +extern const extended::Info::ZoneInfo kZoneEurope_Amsterdam; // Europe/Amsterdam -> Europe/Brussels +extern const extended::Info::ZoneInfo kZoneEurope_Belfast; // Europe/Belfast -> Europe/London +extern const extended::Info::ZoneInfo kZoneEurope_Bratislava; // Europe/Bratislava -> Europe/Prague +extern const extended::Info::ZoneInfo kZoneEurope_Busingen; // Europe/Busingen -> Europe/Zurich +extern const extended::Info::ZoneInfo kZoneEurope_Copenhagen; // Europe/Copenhagen -> Europe/Berlin +extern const extended::Info::ZoneInfo kZoneEurope_Guernsey; // Europe/Guernsey -> Europe/London +extern const extended::Info::ZoneInfo kZoneEurope_Isle_of_Man; // Europe/Isle_of_Man -> Europe/London +extern const extended::Info::ZoneInfo kZoneEurope_Jersey; // Europe/Jersey -> Europe/London +extern const extended::Info::ZoneInfo kZoneEurope_Kiev; // Europe/Kiev -> Europe/Kyiv +extern const extended::Info::ZoneInfo kZoneEurope_Ljubljana; // Europe/Ljubljana -> Europe/Belgrade +extern const extended::Info::ZoneInfo kZoneEurope_Luxembourg; // Europe/Luxembourg -> Europe/Brussels +extern const extended::Info::ZoneInfo kZoneEurope_Mariehamn; // Europe/Mariehamn -> Europe/Helsinki +extern const extended::Info::ZoneInfo kZoneEurope_Monaco; // Europe/Monaco -> Europe/Paris +extern const extended::Info::ZoneInfo kZoneEurope_Nicosia; // Europe/Nicosia -> Asia/Nicosia +extern const extended::Info::ZoneInfo kZoneEurope_Oslo; // Europe/Oslo -> Europe/Berlin +extern const extended::Info::ZoneInfo kZoneEurope_Podgorica; // Europe/Podgorica -> Europe/Belgrade +extern const extended::Info::ZoneInfo kZoneEurope_San_Marino; // Europe/San_Marino -> Europe/Rome +extern const extended::Info::ZoneInfo kZoneEurope_Sarajevo; // Europe/Sarajevo -> Europe/Belgrade +extern const extended::Info::ZoneInfo kZoneEurope_Skopje; // Europe/Skopje -> Europe/Belgrade +extern const extended::Info::ZoneInfo kZoneEurope_Stockholm; // Europe/Stockholm -> Europe/Berlin +extern const extended::Info::ZoneInfo kZoneEurope_Tiraspol; // Europe/Tiraspol -> Europe/Chisinau +extern const extended::Info::ZoneInfo kZoneEurope_Uzhgorod; // Europe/Uzhgorod -> Europe/Kyiv +extern const extended::Info::ZoneInfo kZoneEurope_Vaduz; // Europe/Vaduz -> Europe/Zurich +extern const extended::Info::ZoneInfo kZoneEurope_Vatican; // Europe/Vatican -> Europe/Rome +extern const extended::Info::ZoneInfo kZoneEurope_Zagreb; // Europe/Zagreb -> Europe/Belgrade +extern const extended::Info::ZoneInfo kZoneEurope_Zaporozhye; // Europe/Zaporozhye -> Europe/Kyiv +extern const extended::Info::ZoneInfo kZoneGB; // GB -> Europe/London +extern const extended::Info::ZoneInfo kZoneGB_Eire; // GB-Eire -> Europe/London +extern const extended::Info::ZoneInfo kZoneGMT; // GMT -> Etc/GMT +extern const extended::Info::ZoneInfo kZoneGMT_PLUS_0; // GMT+0 -> Etc/GMT +extern const extended::Info::ZoneInfo kZoneGMT_0; // GMT-0 -> Etc/GMT +extern const extended::Info::ZoneInfo kZoneGMT0; // GMT0 -> Etc/GMT +extern const extended::Info::ZoneInfo kZoneGreenwich; // Greenwich -> Etc/GMT +extern const extended::Info::ZoneInfo kZoneHST; // HST -> Pacific/Honolulu +extern const extended::Info::ZoneInfo kZoneHongkong; // Hongkong -> Asia/Hong_Kong +extern const extended::Info::ZoneInfo kZoneIceland; // Iceland -> Africa/Abidjan +extern const extended::Info::ZoneInfo kZoneIndian_Antananarivo; // Indian/Antananarivo -> Africa/Nairobi +extern const extended::Info::ZoneInfo kZoneIndian_Christmas; // Indian/Christmas -> Asia/Bangkok +extern const extended::Info::ZoneInfo kZoneIndian_Cocos; // Indian/Cocos -> Asia/Yangon +extern const extended::Info::ZoneInfo kZoneIndian_Comoro; // Indian/Comoro -> Africa/Nairobi +extern const extended::Info::ZoneInfo kZoneIndian_Kerguelen; // Indian/Kerguelen -> Indian/Maldives +extern const extended::Info::ZoneInfo kZoneIndian_Mahe; // Indian/Mahe -> Asia/Dubai +extern const extended::Info::ZoneInfo kZoneIndian_Mayotte; // Indian/Mayotte -> Africa/Nairobi +extern const extended::Info::ZoneInfo kZoneIndian_Reunion; // Indian/Reunion -> Asia/Dubai +extern const extended::Info::ZoneInfo kZoneIran; // Iran -> Asia/Tehran +extern const extended::Info::ZoneInfo kZoneIsrael; // Israel -> Asia/Jerusalem +extern const extended::Info::ZoneInfo kZoneJamaica; // Jamaica -> America/Jamaica +extern const extended::Info::ZoneInfo kZoneJapan; // Japan -> Asia/Tokyo +extern const extended::Info::ZoneInfo kZoneKwajalein; // Kwajalein -> Pacific/Kwajalein +extern const extended::Info::ZoneInfo kZoneLibya; // Libya -> Africa/Tripoli +extern const extended::Info::ZoneInfo kZoneMET; // MET -> Europe/Brussels +extern const extended::Info::ZoneInfo kZoneMST; // MST -> America/Phoenix +extern const extended::Info::ZoneInfo kZoneMST7MDT; // MST7MDT -> America/Denver +extern const extended::Info::ZoneInfo kZoneMexico_BajaNorte; // Mexico/BajaNorte -> America/Tijuana +extern const extended::Info::ZoneInfo kZoneMexico_BajaSur; // Mexico/BajaSur -> America/Mazatlan +extern const extended::Info::ZoneInfo kZoneMexico_General; // Mexico/General -> America/Mexico_City +extern const extended::Info::ZoneInfo kZoneNZ; // NZ -> Pacific/Auckland +extern const extended::Info::ZoneInfo kZoneNZ_CHAT; // NZ-CHAT -> Pacific/Chatham +extern const extended::Info::ZoneInfo kZoneNavajo; // Navajo -> America/Denver +extern const extended::Info::ZoneInfo kZonePRC; // PRC -> Asia/Shanghai +extern const extended::Info::ZoneInfo kZonePST8PDT; // PST8PDT -> America/Los_Angeles +extern const extended::Info::ZoneInfo kZonePacific_Chuuk; // Pacific/Chuuk -> Pacific/Port_Moresby +extern const extended::Info::ZoneInfo kZonePacific_Enderbury; // Pacific/Enderbury -> Pacific/Kanton +extern const extended::Info::ZoneInfo kZonePacific_Funafuti; // Pacific/Funafuti -> Pacific/Tarawa +extern const extended::Info::ZoneInfo kZonePacific_Johnston; // Pacific/Johnston -> Pacific/Honolulu +extern const extended::Info::ZoneInfo kZonePacific_Majuro; // Pacific/Majuro -> Pacific/Tarawa +extern const extended::Info::ZoneInfo kZonePacific_Midway; // Pacific/Midway -> Pacific/Pago_Pago +extern const extended::Info::ZoneInfo kZonePacific_Pohnpei; // Pacific/Pohnpei -> Pacific/Guadalcanal +extern const extended::Info::ZoneInfo kZonePacific_Ponape; // Pacific/Ponape -> Pacific/Guadalcanal +extern const extended::Info::ZoneInfo kZonePacific_Saipan; // Pacific/Saipan -> Pacific/Guam +extern const extended::Info::ZoneInfo kZonePacific_Samoa; // Pacific/Samoa -> Pacific/Pago_Pago +extern const extended::Info::ZoneInfo kZonePacific_Truk; // Pacific/Truk -> Pacific/Port_Moresby +extern const extended::Info::ZoneInfo kZonePacific_Wake; // Pacific/Wake -> Pacific/Tarawa +extern const extended::Info::ZoneInfo kZonePacific_Wallis; // Pacific/Wallis -> Pacific/Tarawa +extern const extended::Info::ZoneInfo kZonePacific_Yap; // Pacific/Yap -> Pacific/Port_Moresby +extern const extended::Info::ZoneInfo kZonePoland; // Poland -> Europe/Warsaw +extern const extended::Info::ZoneInfo kZonePortugal; // Portugal -> Europe/Lisbon +extern const extended::Info::ZoneInfo kZoneROC; // ROC -> Asia/Taipei +extern const extended::Info::ZoneInfo kZoneROK; // ROK -> Asia/Seoul +extern const extended::Info::ZoneInfo kZoneSingapore; // Singapore -> Asia/Singapore +extern const extended::Info::ZoneInfo kZoneTurkey; // Turkey -> Europe/Istanbul +extern const extended::Info::ZoneInfo kZoneUCT; // UCT -> Etc/UTC +extern const extended::Info::ZoneInfo kZoneUS_Alaska; // US/Alaska -> America/Anchorage +extern const extended::Info::ZoneInfo kZoneUS_Aleutian; // US/Aleutian -> America/Adak +extern const extended::Info::ZoneInfo kZoneUS_Arizona; // US/Arizona -> America/Phoenix +extern const extended::Info::ZoneInfo kZoneUS_Central; // US/Central -> America/Chicago +extern const extended::Info::ZoneInfo kZoneUS_East_Indiana; // US/East-Indiana -> America/Indiana/Indianapolis +extern const extended::Info::ZoneInfo kZoneUS_Eastern; // US/Eastern -> America/New_York +extern const extended::Info::ZoneInfo kZoneUS_Hawaii; // US/Hawaii -> Pacific/Honolulu +extern const extended::Info::ZoneInfo kZoneUS_Indiana_Starke; // US/Indiana-Starke -> America/Indiana/Knox +extern const extended::Info::ZoneInfo kZoneUS_Michigan; // US/Michigan -> America/Detroit +extern const extended::Info::ZoneInfo kZoneUS_Mountain; // US/Mountain -> America/Denver +extern const extended::Info::ZoneInfo kZoneUS_Pacific; // US/Pacific -> America/Los_Angeles +extern const extended::Info::ZoneInfo kZoneUS_Samoa; // US/Samoa -> Pacific/Pago_Pago +extern const extended::Info::ZoneInfo kZoneUTC; // UTC -> Etc/UTC +extern const extended::Info::ZoneInfo kZoneUniversal; // Universal -> Etc/UTC +extern const extended::Info::ZoneInfo kZoneW_SU; // W-SU -> Europe/Moscow +extern const extended::Info::ZoneInfo kZoneWET; // WET -> Europe/Lisbon +extern const extended::Info::ZoneInfo kZoneZulu; // Zulu -> Etc/UTC + + +// Zone Ids + +const uint32_t kZoneIdAfrica_Accra = 0x77d5b054; // Africa/Accra +const uint32_t kZoneIdAfrica_Addis_Ababa = 0x05ae1e65; // Africa/Addis_Ababa +const uint32_t kZoneIdAfrica_Asmara = 0x73b278ef; // Africa/Asmara +const uint32_t kZoneIdAfrica_Asmera = 0x73b289f3; // Africa/Asmera +const uint32_t kZoneIdAfrica_Bamako = 0x74c1e7a5; // Africa/Bamako +const uint32_t kZoneIdAfrica_Bangui = 0x74c28ed0; // Africa/Bangui +const uint32_t kZoneIdAfrica_Banjul = 0x74c29b96; // Africa/Banjul +const uint32_t kZoneIdAfrica_Blantyre = 0xe08d813b; // Africa/Blantyre +const uint32_t kZoneIdAfrica_Brazzaville = 0x39cda760; // Africa/Brazzaville +const uint32_t kZoneIdAfrica_Bujumbura = 0x05232a47; // Africa/Bujumbura +const uint32_t kZoneIdAfrica_Conakry = 0x7ab36b31; // Africa/Conakry +const uint32_t kZoneIdAfrica_Dakar = 0x780b00fd; // Africa/Dakar +const uint32_t kZoneIdAfrica_Dar_es_Salaam = 0xa04c47b6; // Africa/Dar_es_Salaam +const uint32_t kZoneIdAfrica_Djibouti = 0x30ea01d4; // Africa/Djibouti +const uint32_t kZoneIdAfrica_Douala = 0x7a6df310; // Africa/Douala +const uint32_t kZoneIdAfrica_Freetown = 0x6823dd64; // Africa/Freetown +const uint32_t kZoneIdAfrica_Gaborone = 0x317c0aa7; // Africa/Gaborone +const uint32_t kZoneIdAfrica_Harare = 0x82c39a2d; // Africa/Harare +const uint32_t kZoneIdAfrica_Kampala = 0xc1d30e31; // Africa/Kampala +const uint32_t kZoneIdAfrica_Kigali = 0x8a4dcf2b; // Africa/Kigali +const uint32_t kZoneIdAfrica_Kinshasa = 0x6695d70c; // Africa/Kinshasa +const uint32_t kZoneIdAfrica_Libreville = 0x01d96de4; // Africa/Libreville +const uint32_t kZoneIdAfrica_Lome = 0xd51c3a07; // Africa/Lome +const uint32_t kZoneIdAfrica_Luanda = 0x8d7909cf; // Africa/Luanda +const uint32_t kZoneIdAfrica_Lubumbashi = 0x6fd88566; // Africa/Lubumbashi +const uint32_t kZoneIdAfrica_Lusaka = 0x8d82b23b; // Africa/Lusaka +const uint32_t kZoneIdAfrica_Malabo = 0x8e6a1906; // Africa/Malabo +const uint32_t kZoneIdAfrica_Maseru = 0x8e6e02c7; // Africa/Maseru +const uint32_t kZoneIdAfrica_Mbabane = 0x5d3bdd40; // Africa/Mbabane +const uint32_t kZoneIdAfrica_Mogadishu = 0x66bc159b; // Africa/Mogadishu +const uint32_t kZoneIdAfrica_Niamey = 0x914a30fd; // Africa/Niamey +const uint32_t kZoneIdAfrica_Nouakchott = 0x3dc49dba; // Africa/Nouakchott +const uint32_t kZoneIdAfrica_Ouagadougou = 0x04d7219a; // Africa/Ouagadougou +const uint32_t kZoneIdAfrica_Porto_Novo = 0x3d1bf95d; // Africa/Porto-Novo +const uint32_t kZoneIdAfrica_Timbuktu = 0xb164d56f; // Africa/Timbuktu +const uint32_t kZoneIdAmerica_Anguilla = 0xafe31333; // America/Anguilla +const uint32_t kZoneIdAmerica_Antigua = 0xc067a32f; // America/Antigua +const uint32_t kZoneIdAmerica_Argentina_ComodRivadavia = 0x22758877; // America/Argentina/ComodRivadavia +const uint32_t kZoneIdAmerica_Aruba = 0x97cf8651; // America/Aruba +const uint32_t kZoneIdAmerica_Atikokan = 0x81b92098; // America/Atikokan +const uint32_t kZoneIdAmerica_Atka = 0x97fe8f27; // America/Atka +const uint32_t kZoneIdAmerica_Blanc_Sablon = 0x6e299892; // America/Blanc-Sablon +const uint32_t kZoneIdAmerica_Buenos_Aires = 0x67d79a05; // America/Buenos_Aires +const uint32_t kZoneIdAmerica_Catamarca = 0x5036e963; // America/Catamarca +const uint32_t kZoneIdAmerica_Cayman = 0x953961df; // America/Cayman +const uint32_t kZoneIdAmerica_Coral_Harbour = 0xabcb7569; // America/Coral_Harbour +const uint32_t kZoneIdAmerica_Cordoba = 0x5c8a7600; // America/Cordoba +const uint32_t kZoneIdAmerica_Creston = 0x62a70204; // America/Creston +const uint32_t kZoneIdAmerica_Curacao = 0x6a879184; // America/Curacao +const uint32_t kZoneIdAmerica_Dominica = 0xcecb4c4a; // America/Dominica +const uint32_t kZoneIdAmerica_Ensenada = 0x7bc95445; // America/Ensenada +const uint32_t kZoneIdAmerica_Fort_Wayne = 0x7eaaaf24; // America/Fort_Wayne +const uint32_t kZoneIdAmerica_Godthab = 0x8f7eba1f; // America/Godthab +const uint32_t kZoneIdAmerica_Grenada = 0x968ce4d8; // America/Grenada +const uint32_t kZoneIdAmerica_Guadeloupe = 0xcd1f8a31; // America/Guadeloupe +const uint32_t kZoneIdAmerica_Indianapolis = 0x6a009ae1; // America/Indianapolis +const uint32_t kZoneIdAmerica_Jujuy = 0x9873dbbd; // America/Jujuy +const uint32_t kZoneIdAmerica_Knox_IN = 0xc1db9a1c; // America/Knox_IN +const uint32_t kZoneIdAmerica_Kralendijk = 0xe7c456c5; // America/Kralendijk +const uint32_t kZoneIdAmerica_Louisville = 0x3dcb47ee; // America/Louisville +const uint32_t kZoneIdAmerica_Lower_Princes = 0x6ae45b62; // America/Lower_Princes +const uint32_t kZoneIdAmerica_Marigot = 0x3dab3a59; // America/Marigot +const uint32_t kZoneIdAmerica_Mendoza = 0x46b4e054; // America/Mendoza +const uint32_t kZoneIdAmerica_Montreal = 0x203a1ea8; // America/Montreal +const uint32_t kZoneIdAmerica_Montserrat = 0x199b0a35; // America/Montserrat +const uint32_t kZoneIdAmerica_Nassau = 0xaedef011; // America/Nassau +const uint32_t kZoneIdAmerica_Nipigon = 0x9d2a8b1a; // America/Nipigon +const uint32_t kZoneIdAmerica_Pangnirtung = 0x2d999193; // America/Pangnirtung +const uint32_t kZoneIdAmerica_Port_of_Spain = 0xd8b28d59; // America/Port_of_Spain +const uint32_t kZoneIdAmerica_Porto_Acre = 0xcce5bf54; // America/Porto_Acre +const uint32_t kZoneIdAmerica_Rainy_River = 0x9cd58a10; // America/Rainy_River +const uint32_t kZoneIdAmerica_Rosario = 0xdf448665; // America/Rosario +const uint32_t kZoneIdAmerica_Santa_Isabel = 0xfd18a56c; // America/Santa_Isabel +const uint32_t kZoneIdAmerica_Shiprock = 0x82fb7049; // America/Shiprock +const uint32_t kZoneIdAmerica_St_Barthelemy = 0x054e6a79; // America/St_Barthelemy +const uint32_t kZoneIdAmerica_St_Kitts = 0x04c0507b; // America/St_Kitts +const uint32_t kZoneIdAmerica_St_Lucia = 0x04d8b3ba; // America/St_Lucia +const uint32_t kZoneIdAmerica_St_Thomas = 0xb1b3d778; // America/St_Thomas +const uint32_t kZoneIdAmerica_St_Vincent = 0x8460e523; // America/St_Vincent +const uint32_t kZoneIdAmerica_Thunder_Bay = 0xf962e71b; // America/Thunder_Bay +const uint32_t kZoneIdAmerica_Tortola = 0x7931462b; // America/Tortola +const uint32_t kZoneIdAmerica_Virgin = 0xc2183ab5; // America/Virgin +const uint32_t kZoneIdAmerica_Yellowknife = 0x0f76c76f; // America/Yellowknife +const uint32_t kZoneIdAntarctica_DumontDUrville = 0x5a3c656c; // Antarctica/DumontDUrville +const uint32_t kZoneIdAntarctica_McMurdo = 0x6eeb5585; // Antarctica/McMurdo +const uint32_t kZoneIdAntarctica_South_Pole = 0xcd96b290; // Antarctica/South_Pole +const uint32_t kZoneIdAntarctica_Syowa = 0xe330c7e1; // Antarctica/Syowa +const uint32_t kZoneIdArctic_Longyearbyen = 0xd23e7859; // Arctic/Longyearbyen +const uint32_t kZoneIdAsia_Aden = 0x1fa7084a; // Asia/Aden +const uint32_t kZoneIdAsia_Ashkhabad = 0x15454f09; // Asia/Ashkhabad +const uint32_t kZoneIdAsia_Bahrain = 0x9d078487; // Asia/Bahrain +const uint32_t kZoneIdAsia_Brunei = 0xa8e595f7; // Asia/Brunei +const uint32_t kZoneIdAsia_Calcutta = 0x328a44c3; // Asia/Calcutta +const uint32_t kZoneIdAsia_Choibalsan = 0x928aa4a6; // Asia/Choibalsan +const uint32_t kZoneIdAsia_Chongqing = 0xf937fb90; // Asia/Chongqing +const uint32_t kZoneIdAsia_Chungking = 0xc7121dd0; // Asia/Chungking +const uint32_t kZoneIdAsia_Dacca = 0x14bcac5e; // Asia/Dacca +const uint32_t kZoneIdAsia_Harbin = 0xb5af1186; // Asia/Harbin +const uint32_t kZoneIdAsia_Istanbul = 0x382e7894; // Asia/Istanbul +const uint32_t kZoneIdAsia_Kashgar = 0x52955193; // Asia/Kashgar +const uint32_t kZoneIdAsia_Katmandu = 0xa7ec12c7; // Asia/Katmandu +const uint32_t kZoneIdAsia_Kuala_Lumpur = 0x014763c4; // Asia/Kuala_Lumpur +const uint32_t kZoneIdAsia_Kuwait = 0xbe1b2f27; // Asia/Kuwait +const uint32_t kZoneIdAsia_Macao = 0x155f88b3; // Asia/Macao +const uint32_t kZoneIdAsia_Muscat = 0xc2c3565f; // Asia/Muscat +const uint32_t kZoneIdAsia_Phnom_Penh = 0xc224945e; // Asia/Phnom_Penh +const uint32_t kZoneIdAsia_Rangoon = 0x6d1217c6; // Asia/Rangoon +const uint32_t kZoneIdAsia_Saigon = 0xcf52f713; // Asia/Saigon +const uint32_t kZoneIdAsia_Tel_Aviv = 0x166d7c2c; // Asia/Tel_Aviv +const uint32_t kZoneIdAsia_Thimbu = 0xd226e31b; // Asia/Thimbu +const uint32_t kZoneIdAsia_Ujung_Pandang = 0x5d001eb3; // Asia/Ujung_Pandang +const uint32_t kZoneIdAsia_Ulan_Bator = 0x394db4d9; // Asia/Ulan_Bator +const uint32_t kZoneIdAsia_Vientiane = 0x89d68d75; // Asia/Vientiane +const uint32_t kZoneIdAtlantic_Faeroe = 0x031ec516; // Atlantic/Faeroe +const uint32_t kZoneIdAtlantic_Jan_Mayen = 0x5a7535b6; // Atlantic/Jan_Mayen +const uint32_t kZoneIdAtlantic_Reykjavik = 0x1c2b4f74; // Atlantic/Reykjavik +const uint32_t kZoneIdAtlantic_St_Helena = 0x451fc5f7; // Atlantic/St_Helena +const uint32_t kZoneIdAustralia_ACT = 0x8a970eb2; // Australia/ACT +const uint32_t kZoneIdAustralia_Canberra = 0x2a09ae58; // Australia/Canberra +const uint32_t kZoneIdAustralia_Currie = 0x278b6a24; // Australia/Currie +const uint32_t kZoneIdAustralia_LHI = 0x8a973e17; // Australia/LHI +const uint32_t kZoneIdAustralia_NSW = 0x8a974812; // Australia/NSW +const uint32_t kZoneIdAustralia_North = 0x8d997165; // Australia/North +const uint32_t kZoneIdAustralia_Queensland = 0xd326ed0a; // Australia/Queensland +const uint32_t kZoneIdAustralia_South = 0x8df3f8ad; // Australia/South +const uint32_t kZoneIdAustralia_Tasmania = 0xe6d76648; // Australia/Tasmania +const uint32_t kZoneIdAustralia_Victoria = 0x0260d5db; // Australia/Victoria +const uint32_t kZoneIdAustralia_West = 0xdd858a5d; // Australia/West +const uint32_t kZoneIdAustralia_Yancowinna = 0x90bac131; // Australia/Yancowinna +const uint32_t kZoneIdBrazil_Acre = 0x66934f93; // Brazil/Acre +const uint32_t kZoneIdBrazil_DeNoronha = 0x9b4cb496; // Brazil/DeNoronha +const uint32_t kZoneIdBrazil_East = 0x669578c5; // Brazil/East +const uint32_t kZoneIdBrazil_West = 0x669f689b; // Brazil/West +const uint32_t kZoneIdCET = 0x0b87d921; // CET +const uint32_t kZoneIdCST6CDT = 0xf0e87d00; // CST6CDT +const uint32_t kZoneIdCanada_Atlantic = 0x536b119c; // Canada/Atlantic +const uint32_t kZoneIdCanada_Central = 0x626710f5; // Canada/Central +const uint32_t kZoneIdCanada_Eastern = 0xf3612d5e; // Canada/Eastern +const uint32_t kZoneIdCanada_Mountain = 0xfb8a8217; // Canada/Mountain +const uint32_t kZoneIdCanada_Newfoundland = 0xb396e991; // Canada/Newfoundland +const uint32_t kZoneIdCanada_Pacific = 0x40fa3c7b; // Canada/Pacific +const uint32_t kZoneIdCanada_Saskatchewan = 0x77311f49; // Canada/Saskatchewan +const uint32_t kZoneIdCanada_Yukon = 0x78dd35c2; // Canada/Yukon +const uint32_t kZoneIdChile_Continental = 0x7e2bdb18; // Chile/Continental +const uint32_t kZoneIdChile_EasterIsland = 0xb0982af8; // Chile/EasterIsland +const uint32_t kZoneIdCuba = 0x7c83cba0; // Cuba +const uint32_t kZoneIdEET = 0x0b87e1a3; // EET +const uint32_t kZoneIdEST = 0x0b87e371; // EST +const uint32_t kZoneIdEST5EDT = 0x8adc72a3; // EST5EDT +const uint32_t kZoneIdEgypt = 0x0d1a278e; // Egypt +const uint32_t kZoneIdEire = 0x7c84b36a; // Eire +const uint32_t kZoneIdEtc_GMT_PLUS_0 = 0x9d13da13; // Etc/GMT+0 +const uint32_t kZoneIdEtc_GMT_0 = 0x9d13da55; // Etc/GMT-0 +const uint32_t kZoneIdEtc_GMT0 = 0xf53ea988; // Etc/GMT0 +const uint32_t kZoneIdEtc_Greenwich = 0x26daa98c; // Etc/Greenwich +const uint32_t kZoneIdEtc_UCT = 0xd8e3189c; // Etc/UCT +const uint32_t kZoneIdEtc_Universal = 0x2f8cb9a9; // Etc/Universal +const uint32_t kZoneIdEtc_Zulu = 0xf549c240; // Etc/Zulu +const uint32_t kZoneIdEurope_Amsterdam = 0x109395c2; // Europe/Amsterdam +const uint32_t kZoneIdEurope_Belfast = 0xd07dd1e5; // Europe/Belfast +const uint32_t kZoneIdEurope_Bratislava = 0xda493bed; // Europe/Bratislava +const uint32_t kZoneIdEurope_Busingen = 0xc06d2cdf; // Europe/Busingen +const uint32_t kZoneIdEurope_Copenhagen = 0xe0ed30bc; // Europe/Copenhagen +const uint32_t kZoneIdEurope_Guernsey = 0x3db12c16; // Europe/Guernsey +const uint32_t kZoneIdEurope_Isle_of_Man = 0xeaf84580; // Europe/Isle_of_Man +const uint32_t kZoneIdEurope_Jersey = 0x570dae76; // Europe/Jersey +const uint32_t kZoneIdEurope_Kiev = 0xa2c19eb3; // Europe/Kiev +const uint32_t kZoneIdEurope_Ljubljana = 0xbd98cdb7; // Europe/Ljubljana +const uint32_t kZoneIdEurope_Luxembourg = 0x1f8bc6ce; // Europe/Luxembourg +const uint32_t kZoneIdEurope_Mariehamn = 0x0caa6496; // Europe/Mariehamn +const uint32_t kZoneIdEurope_Monaco = 0x5ebf9f01; // Europe/Monaco +const uint32_t kZoneIdEurope_Nicosia = 0x74efab8a; // Europe/Nicosia +const uint32_t kZoneIdEurope_Oslo = 0xa2c3fba1; // Europe/Oslo +const uint32_t kZoneIdEurope_Podgorica = 0x1c1a499c; // Europe/Podgorica +const uint32_t kZoneIdEurope_San_Marino = 0xcef7724b; // Europe/San_Marino +const uint32_t kZoneIdEurope_Sarajevo = 0x6a576c3f; // Europe/Sarajevo +const uint32_t kZoneIdEurope_Skopje = 0x6c76fdd0; // Europe/Skopje +const uint32_t kZoneIdEurope_Stockholm = 0x5bf6fbb8; // Europe/Stockholm +const uint32_t kZoneIdEurope_Tiraspol = 0xbe704472; // Europe/Tiraspol +const uint32_t kZoneIdEurope_Uzhgorod = 0xb066f5d6; // Europe/Uzhgorod +const uint32_t kZoneIdEurope_Vaduz = 0xfbb81bae; // Europe/Vaduz +const uint32_t kZoneIdEurope_Vatican = 0xcb485dca; // Europe/Vatican +const uint32_t kZoneIdEurope_Zagreb = 0x7c11c9ff; // Europe/Zagreb +const uint32_t kZoneIdEurope_Zaporozhye = 0xeab9767f; // Europe/Zaporozhye +const uint32_t kZoneIdGB = 0x005973ae; // GB +const uint32_t kZoneIdGB_Eire = 0xfa70e300; // GB-Eire +const uint32_t kZoneIdGMT = 0x0b87eb2d; // GMT +const uint32_t kZoneIdGMT_PLUS_0 = 0x0d2f7028; // GMT+0 +const uint32_t kZoneIdGMT_0 = 0x0d2f706a; // GMT-0 +const uint32_t kZoneIdGMT0 = 0x7c8550fd; // GMT0 +const uint32_t kZoneIdGreenwich = 0xc84d4221; // Greenwich +const uint32_t kZoneIdHST = 0x0b87f034; // HST +const uint32_t kZoneIdHongkong = 0x56d36560; // Hongkong +const uint32_t kZoneIdIceland = 0xe56a35b5; // Iceland +const uint32_t kZoneIdIndian_Antananarivo = 0x9ebf5289; // Indian/Antananarivo +const uint32_t kZoneIdIndian_Christmas = 0x68c207d5; // Indian/Christmas +const uint32_t kZoneIdIndian_Cocos = 0x021e86de; // Indian/Cocos +const uint32_t kZoneIdIndian_Comoro = 0x45f4deb6; // Indian/Comoro +const uint32_t kZoneIdIndian_Kerguelen = 0x4351b389; // Indian/Kerguelen +const uint32_t kZoneIdIndian_Mahe = 0x45e725e2; // Indian/Mahe +const uint32_t kZoneIdIndian_Mayotte = 0xe6880bca; // Indian/Mayotte +const uint32_t kZoneIdIndian_Reunion = 0x7076c047; // Indian/Reunion +const uint32_t kZoneIdIran = 0x7c87090f; // Iran +const uint32_t kZoneIdIsrael = 0xba88c9e5; // Israel +const uint32_t kZoneIdJamaica = 0x2e44fdab; // Jamaica +const uint32_t kZoneIdJapan = 0x0d712f8f; // Japan +const uint32_t kZoneIdKwajalein = 0x0e57afbb; // Kwajalein +const uint32_t kZoneIdLibya = 0x0d998b16; // Libya +const uint32_t kZoneIdMET = 0x0b8803ab; // MET +const uint32_t kZoneIdMST = 0x0b880579; // MST +const uint32_t kZoneIdMST7MDT = 0xf2af9375; // MST7MDT +const uint32_t kZoneIdMexico_BajaNorte = 0xfcf7150f; // Mexico/BajaNorte +const uint32_t kZoneIdMexico_BajaSur = 0x08ee3641; // Mexico/BajaSur +const uint32_t kZoneIdMexico_General = 0x93711d57; // Mexico/General +const uint32_t kZoneIdNZ = 0x005974ad; // NZ +const uint32_t kZoneIdNZ_CHAT = 0x4d42afda; // NZ-CHAT +const uint32_t kZoneIdNavajo = 0xc4ef0e24; // Navajo +const uint32_t kZoneIdPRC = 0x0b88120a; // PRC +const uint32_t kZoneIdPST8PDT = 0xd99ee2dc; // PST8PDT +const uint32_t kZoneIdPacific_Chuuk = 0x8a090b23; // Pacific/Chuuk +const uint32_t kZoneIdPacific_Enderbury = 0x61599a93; // Pacific/Enderbury +const uint32_t kZoneIdPacific_Funafuti = 0xdb402d65; // Pacific/Funafuti +const uint32_t kZoneIdPacific_Johnston = 0xb15d7b36; // Pacific/Johnston +const uint32_t kZoneIdPacific_Majuro = 0xe1f95371; // Pacific/Majuro +const uint32_t kZoneIdPacific_Midway = 0xe286d38e; // Pacific/Midway +const uint32_t kZoneIdPacific_Pohnpei = 0x28929f96; // Pacific/Pohnpei +const uint32_t kZoneIdPacific_Ponape = 0xe9f80086; // Pacific/Ponape +const uint32_t kZoneIdPacific_Saipan = 0xeff7a35f; // Pacific/Saipan +const uint32_t kZoneIdPacific_Samoa = 0x8b2699b4; // Pacific/Samoa +const uint32_t kZoneIdPacific_Truk = 0x234010a9; // Pacific/Truk +const uint32_t kZoneIdPacific_Wake = 0x23416c2b; // Pacific/Wake +const uint32_t kZoneIdPacific_Wallis = 0xf94ddb0f; // Pacific/Wallis +const uint32_t kZoneIdPacific_Yap = 0xbb40138d; // Pacific/Yap +const uint32_t kZoneIdPoland = 0xca913b23; // Poland +const uint32_t kZoneIdPortugal = 0xc3274593; // Portugal +const uint32_t kZoneIdROC = 0x0b881a29; // ROC +const uint32_t kZoneIdROK = 0x0b881a31; // ROK +const uint32_t kZoneIdSingapore = 0xa8598c8d; // Singapore +const uint32_t kZoneIdTurkey = 0xd455e469; // Turkey +const uint32_t kZoneIdUCT = 0x0b882571; // UCT +const uint32_t kZoneIdUS_Alaska = 0xfa300bc9; // US/Alaska +const uint32_t kZoneIdUS_Aleutian = 0x4fe013ef; // US/Aleutian +const uint32_t kZoneIdUS_Arizona = 0x4ec52670; // US/Arizona +const uint32_t kZoneIdUS_Central = 0xcabdcb25; // US/Central +const uint32_t kZoneIdUS_East_Indiana = 0x6dcf558a; // US/East-Indiana +const uint32_t kZoneIdUS_Eastern = 0x5bb7e78e; // US/Eastern +const uint32_t kZoneIdUS_Hawaii = 0x09c8de2f; // US/Hawaii +const uint32_t kZoneIdUS_Indiana_Starke = 0x67977be7; // US/Indiana-Starke +const uint32_t kZoneIdUS_Michigan = 0x766bb7bc; // US/Michigan +const uint32_t kZoneIdUS_Mountain = 0x6eb88247; // US/Mountain +const uint32_t kZoneIdUS_Pacific = 0xa950f6ab; // US/Pacific +const uint32_t kZoneIdUS_Samoa = 0x566821cd; // US/Samoa +const uint32_t kZoneIdUTC = 0x0b882791; // UTC +const uint32_t kZoneIdUniversal = 0xd0ff523e; // Universal +const uint32_t kZoneIdW_SU = 0x7c8d8ef1; // W-SU +const uint32_t kZoneIdWET = 0x0b882e35; // WET +const uint32_t kZoneIdZulu = 0x7c9069b5; // Zulu + + +//--------------------------------------------------------------------------- +// Maximum size of the Transition buffer in ExtendedZoneProcessor for each zone +// over the given years. Used only in the +// AceTimeSuite/validation/tests/*ExtendedTest tests. +// +// MaxBufSize: 7 +//--------------------------------------------------------------------------- + +const uint8_t kZoneBufSizeAfrica_Abidjan = 1; // Africa/Abidjan in 1966 +const uint8_t kZoneBufSizeAfrica_Algiers = 1; // Africa/Algiers in 1966 +const uint8_t kZoneBufSizeAfrica_Bissau = 1; // Africa/Bissau in 1966 +const uint8_t kZoneBufSizeAfrica_Cairo = 4; // Africa/Cairo in 2023 +const uint8_t kZoneBufSizeAfrica_Casablanca = 6; // Africa/Casablanca in 2028 +const uint8_t kZoneBufSizeAfrica_Ceuta = 5; // Africa/Ceuta in 1983 +const uint8_t kZoneBufSizeAfrica_El_Aaiun = 6; // Africa/El_Aaiun in 2028 +const uint8_t kZoneBufSizeAfrica_Johannesburg = 2; // Africa/Johannesburg in 1966 +const uint8_t kZoneBufSizeAfrica_Juba = 1; // Africa/Juba in 1966 +const uint8_t kZoneBufSizeAfrica_Khartoum = 1; // Africa/Khartoum in 1966 +const uint8_t kZoneBufSizeAfrica_Lagos = 1; // Africa/Lagos in 1966 +const uint8_t kZoneBufSizeAfrica_Maputo = 1; // Africa/Maputo in 1966 +const uint8_t kZoneBufSizeAfrica_Monrovia = 1; // Africa/Monrovia in 1966 +const uint8_t kZoneBufSizeAfrica_Nairobi = 1; // Africa/Nairobi in 1966 +const uint8_t kZoneBufSizeAfrica_Ndjamena = 1; // Africa/Ndjamena in 1966 +const uint8_t kZoneBufSizeAfrica_Sao_Tome = 1; // Africa/Sao_Tome in 1966 +const uint8_t kZoneBufSizeAfrica_Tripoli = 1; // Africa/Tripoli in 1966 +const uint8_t kZoneBufSizeAfrica_Tunis = 2; // Africa/Tunis in 1966 +const uint8_t kZoneBufSizeAfrica_Windhoek = 2; // Africa/Windhoek in 1966 +const uint8_t kZoneBufSizeAmerica_Adak = 6; // America/Adak in 2008 +const uint8_t kZoneBufSizeAmerica_Anchorage = 6; // America/Anchorage in 2008 +const uint8_t kZoneBufSizeAmerica_Araguaina = 1; // America/Araguaina in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Buenos_Aires = 2; // America/Argentina/Buenos_Aires in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Catamarca = 1; // America/Argentina/Catamarca in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Cordoba = 2; // America/Argentina/Cordoba in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Jujuy = 1; // America/Argentina/Jujuy in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_La_Rioja = 1; // America/Argentina/La_Rioja in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Mendoza = 1; // America/Argentina/Mendoza in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Rio_Gallegos = 1; // America/Argentina/Rio_Gallegos in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Salta = 1; // America/Argentina/Salta in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_San_Juan = 1; // America/Argentina/San_Juan in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_San_Luis = 1; // America/Argentina/San_Luis in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Tucuman = 2; // America/Argentina/Tucuman in 1966 +const uint8_t kZoneBufSizeAmerica_Argentina_Ushuaia = 1; // America/Argentina/Ushuaia in 1966 +const uint8_t kZoneBufSizeAmerica_Asuncion = 5; // America/Asuncion in 2015 +const uint8_t kZoneBufSizeAmerica_Bahia = 1; // America/Bahia in 1966 +const uint8_t kZoneBufSizeAmerica_Bahia_Banderas = 2; // America/Bahia_Banderas in 1966 +const uint8_t kZoneBufSizeAmerica_Barbados = 2; // America/Barbados in 1966 +const uint8_t kZoneBufSizeAmerica_Belem = 1; // America/Belem in 1966 +const uint8_t kZoneBufSizeAmerica_Belize = 2; // America/Belize in 1966 +const uint8_t kZoneBufSizeAmerica_Boa_Vista = 1; // America/Boa_Vista in 1966 +const uint8_t kZoneBufSizeAmerica_Bogota = 2; // America/Bogota in 1966 +const uint8_t kZoneBufSizeAmerica_Boise = 6; // America/Boise in 2008 +const uint8_t kZoneBufSizeAmerica_Cambridge_Bay = 6; // America/Cambridge_Bay in 2008 +const uint8_t kZoneBufSizeAmerica_Campo_Grande = 2; // America/Campo_Grande in 1966 +const uint8_t kZoneBufSizeAmerica_Cancun = 1; // America/Cancun in 1966 +const uint8_t kZoneBufSizeAmerica_Caracas = 1; // America/Caracas in 1966 +const uint8_t kZoneBufSizeAmerica_Cayenne = 1; // America/Cayenne in 1966 +const uint8_t kZoneBufSizeAmerica_Chicago = 6; // America/Chicago in 2008 +const uint8_t kZoneBufSizeAmerica_Chihuahua = 1; // America/Chihuahua in 1966 +const uint8_t kZoneBufSizeAmerica_Ciudad_Juarez = 6; // America/Ciudad_Juarez in 2008 +const uint8_t kZoneBufSizeAmerica_Costa_Rica = 2; // America/Costa_Rica in 1966 +const uint8_t kZoneBufSizeAmerica_Coyhaique = 4; // America/Coyhaique in 2022 +const uint8_t kZoneBufSizeAmerica_Cuiaba = 2; // America/Cuiaba in 1966 +const uint8_t kZoneBufSizeAmerica_Danmarkshavn = 1; // America/Danmarkshavn in 1966 +const uint8_t kZoneBufSizeAmerica_Dawson = 1; // America/Dawson in 1966 +const uint8_t kZoneBufSizeAmerica_Dawson_Creek = 1; // America/Dawson_Creek in 1966 +const uint8_t kZoneBufSizeAmerica_Denver = 6; // America/Denver in 2008 +const uint8_t kZoneBufSizeAmerica_Detroit = 6; // America/Detroit in 2008 +const uint8_t kZoneBufSizeAmerica_Edmonton = 6; // America/Edmonton in 2008 +const uint8_t kZoneBufSizeAmerica_Eirunepe = 1; // America/Eirunepe in 1966 +const uint8_t kZoneBufSizeAmerica_El_Salvador = 2; // America/El_Salvador in 1966 +const uint8_t kZoneBufSizeAmerica_Fort_Nelson = 1; // America/Fort_Nelson in 1966 +const uint8_t kZoneBufSizeAmerica_Fortaleza = 1; // America/Fortaleza in 1966 +const uint8_t kZoneBufSizeAmerica_Glace_Bay = 6; // America/Glace_Bay in 2008 +const uint8_t kZoneBufSizeAmerica_Goose_Bay = 6; // America/Goose_Bay in 2008 +const uint8_t kZoneBufSizeAmerica_Grand_Turk = 6; // America/Grand_Turk in 2008 +const uint8_t kZoneBufSizeAmerica_Guatemala = 2; // America/Guatemala in 1966 +const uint8_t kZoneBufSizeAmerica_Guayaquil = 2; // America/Guayaquil in 1966 +const uint8_t kZoneBufSizeAmerica_Guyana = 1; // America/Guyana in 1966 +const uint8_t kZoneBufSizeAmerica_Halifax = 6; // America/Halifax in 2008 +const uint8_t kZoneBufSizeAmerica_Havana = 6; // America/Havana in 2015 +const uint8_t kZoneBufSizeAmerica_Hermosillo = 1; // America/Hermosillo in 1966 +const uint8_t kZoneBufSizeAmerica_Indiana_Indianapolis = 6; // America/Indiana/Indianapolis in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Knox = 6; // America/Indiana/Knox in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Marengo = 6; // America/Indiana/Marengo in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Petersburg = 6; // America/Indiana/Petersburg in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Tell_City = 6; // America/Indiana/Tell_City in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Vevay = 6; // America/Indiana/Vevay in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Vincennes = 6; // America/Indiana/Vincennes in 2008 +const uint8_t kZoneBufSizeAmerica_Indiana_Winamac = 6; // America/Indiana/Winamac in 2008 +const uint8_t kZoneBufSizeAmerica_Inuvik = 6; // America/Inuvik in 2008 +const uint8_t kZoneBufSizeAmerica_Iqaluit = 6; // America/Iqaluit in 2008 +const uint8_t kZoneBufSizeAmerica_Jamaica = 1; // America/Jamaica in 1966 +const uint8_t kZoneBufSizeAmerica_Juneau = 6; // America/Juneau in 2008 +const uint8_t kZoneBufSizeAmerica_Kentucky_Louisville = 6; // America/Kentucky/Louisville in 2008 +const uint8_t kZoneBufSizeAmerica_Kentucky_Monticello = 6; // America/Kentucky/Monticello in 2008 +const uint8_t kZoneBufSizeAmerica_La_Paz = 1; // America/La_Paz in 1966 +const uint8_t kZoneBufSizeAmerica_Lima = 2; // America/Lima in 1966 +const uint8_t kZoneBufSizeAmerica_Los_Angeles = 6; // America/Los_Angeles in 2008 +const uint8_t kZoneBufSizeAmerica_Maceio = 1; // America/Maceio in 1966 +const uint8_t kZoneBufSizeAmerica_Managua = 2; // America/Managua in 1966 +const uint8_t kZoneBufSizeAmerica_Manaus = 1; // America/Manaus in 1966 +const uint8_t kZoneBufSizeAmerica_Martinique = 1; // America/Martinique in 1966 +const uint8_t kZoneBufSizeAmerica_Matamoros = 6; // America/Matamoros in 2008 +const uint8_t kZoneBufSizeAmerica_Mazatlan = 2; // America/Mazatlan in 1966 +const uint8_t kZoneBufSizeAmerica_Menominee = 6; // America/Menominee in 2008 +const uint8_t kZoneBufSizeAmerica_Merida = 2; // America/Merida in 1966 +const uint8_t kZoneBufSizeAmerica_Metlakatla = 6; // America/Metlakatla in 2008 +const uint8_t kZoneBufSizeAmerica_Mexico_City = 2; // America/Mexico_City in 1966 +const uint8_t kZoneBufSizeAmerica_Miquelon = 6; // America/Miquelon in 2008 +const uint8_t kZoneBufSizeAmerica_Moncton = 6; // America/Moncton in 2008 +const uint8_t kZoneBufSizeAmerica_Monterrey = 2; // America/Monterrey in 1966 +const uint8_t kZoneBufSizeAmerica_Montevideo = 2; // America/Montevideo in 1966 +const uint8_t kZoneBufSizeAmerica_New_York = 6; // America/New_York in 2008 +const uint8_t kZoneBufSizeAmerica_Nome = 6; // America/Nome in 2008 +const uint8_t kZoneBufSizeAmerica_Noronha = 1; // America/Noronha in 1966 +const uint8_t kZoneBufSizeAmerica_North_Dakota_Beulah = 6; // America/North_Dakota/Beulah in 2008 +const uint8_t kZoneBufSizeAmerica_North_Dakota_Center = 6; // America/North_Dakota/Center in 2008 +const uint8_t kZoneBufSizeAmerica_North_Dakota_New_Salem = 6; // America/North_Dakota/New_Salem in 2008 +const uint8_t kZoneBufSizeAmerica_Nuuk = 5; // America/Nuuk in 1983 +const uint8_t kZoneBufSizeAmerica_Ojinaga = 6; // America/Ojinaga in 2008 +const uint8_t kZoneBufSizeAmerica_Panama = 1; // America/Panama in 1966 +const uint8_t kZoneBufSizeAmerica_Paramaribo = 1; // America/Paramaribo in 1966 +const uint8_t kZoneBufSizeAmerica_Phoenix = 1; // America/Phoenix in 1966 +const uint8_t kZoneBufSizeAmerica_Port_au_Prince = 6; // America/Port-au-Prince in 2018 +const uint8_t kZoneBufSizeAmerica_Porto_Velho = 1; // America/Porto_Velho in 1966 +const uint8_t kZoneBufSizeAmerica_Puerto_Rico = 1; // America/Puerto_Rico in 1966 +const uint8_t kZoneBufSizeAmerica_Punta_Arenas = 1; // America/Punta_Arenas in 1966 +const uint8_t kZoneBufSizeAmerica_Rankin_Inlet = 6; // America/Rankin_Inlet in 2008 +const uint8_t kZoneBufSizeAmerica_Recife = 1; // America/Recife in 1966 +const uint8_t kZoneBufSizeAmerica_Regina = 1; // America/Regina in 1966 +const uint8_t kZoneBufSizeAmerica_Resolute = 6; // America/Resolute in 2008 +const uint8_t kZoneBufSizeAmerica_Rio_Branco = 1; // America/Rio_Branco in 1966 +const uint8_t kZoneBufSizeAmerica_Santarem = 1; // America/Santarem in 1966 +const uint8_t kZoneBufSizeAmerica_Santiago = 4; // America/Santiago in 2022 +const uint8_t kZoneBufSizeAmerica_Santo_Domingo = 1; // America/Santo_Domingo in 1966 +const uint8_t kZoneBufSizeAmerica_Sao_Paulo = 2; // America/Sao_Paulo in 1966 +const uint8_t kZoneBufSizeAmerica_Scoresbysund = 6; // America/Scoresbysund in 2024 +const uint8_t kZoneBufSizeAmerica_Sitka = 6; // America/Sitka in 2008 +const uint8_t kZoneBufSizeAmerica_St_Johns = 6; // America/St_Johns in 2008 +const uint8_t kZoneBufSizeAmerica_Swift_Current = 1; // America/Swift_Current in 1966 +const uint8_t kZoneBufSizeAmerica_Tegucigalpa = 2; // America/Tegucigalpa in 1966 +const uint8_t kZoneBufSizeAmerica_Thule = 6; // America/Thule in 2008 +const uint8_t kZoneBufSizeAmerica_Tijuana = 6; // America/Tijuana in 2008 +const uint8_t kZoneBufSizeAmerica_Toronto = 6; // America/Toronto in 2008 +const uint8_t kZoneBufSizeAmerica_Vancouver = 6; // America/Vancouver in 2008 +const uint8_t kZoneBufSizeAmerica_Whitehorse = 1; // America/Whitehorse in 1966 +const uint8_t kZoneBufSizeAmerica_Winnipeg = 6; // America/Winnipeg in 2008 +const uint8_t kZoneBufSizeAmerica_Yakutat = 6; // America/Yakutat in 2008 +const uint8_t kZoneBufSizeAntarctica_Casey = 1; // Antarctica/Casey in 1966 +const uint8_t kZoneBufSizeAntarctica_Davis = 1; // Antarctica/Davis in 1966 +const uint8_t kZoneBufSizeAntarctica_Macquarie = 4; // Antarctica/Macquarie in 2007 +const uint8_t kZoneBufSizeAntarctica_Mawson = 1; // Antarctica/Mawson in 1966 +const uint8_t kZoneBufSizeAntarctica_Palmer = 1; // Antarctica/Palmer in 1966 +const uint8_t kZoneBufSizeAntarctica_Rothera = 1; // Antarctica/Rothera in 1966 +const uint8_t kZoneBufSizeAntarctica_Troll = 5; // Antarctica/Troll in 2005 +const uint8_t kZoneBufSizeAntarctica_Vostok = 1; // Antarctica/Vostok in 1966 +const uint8_t kZoneBufSizeAsia_Almaty = 2; // Asia/Almaty in 2024 +const uint8_t kZoneBufSizeAsia_Amman = 1; // Asia/Amman in 1966 +const uint8_t kZoneBufSizeAsia_Anadyr = 1; // Asia/Anadyr in 1966 +const uint8_t kZoneBufSizeAsia_Aqtau = 1; // Asia/Aqtau in 1966 +const uint8_t kZoneBufSizeAsia_Aqtobe = 1; // Asia/Aqtobe in 1966 +const uint8_t kZoneBufSizeAsia_Ashgabat = 1; // Asia/Ashgabat in 1966 +const uint8_t kZoneBufSizeAsia_Atyrau = 1; // Asia/Atyrau in 1966 +const uint8_t kZoneBufSizeAsia_Baghdad = 2; // Asia/Baghdad in 1966 +const uint8_t kZoneBufSizeAsia_Baku = 2; // Asia/Baku in 1966 +const uint8_t kZoneBufSizeAsia_Bangkok = 1; // Asia/Bangkok in 1966 +const uint8_t kZoneBufSizeAsia_Barnaul = 1; // Asia/Barnaul in 1966 +const uint8_t kZoneBufSizeAsia_Beirut = 5; // Asia/Beirut in 1993 +const uint8_t kZoneBufSizeAsia_Bishkek = 1; // Asia/Bishkek in 1966 +const uint8_t kZoneBufSizeAsia_Chita = 1; // Asia/Chita in 1966 +const uint8_t kZoneBufSizeAsia_Colombo = 1; // Asia/Colombo in 1966 +const uint8_t kZoneBufSizeAsia_Damascus = 1; // Asia/Damascus in 1966 +const uint8_t kZoneBufSizeAsia_Dhaka = 2; // Asia/Dhaka in 1966 +const uint8_t kZoneBufSizeAsia_Dili = 1; // Asia/Dili in 1966 +const uint8_t kZoneBufSizeAsia_Dubai = 1; // Asia/Dubai in 1966 +const uint8_t kZoneBufSizeAsia_Dushanbe = 1; // Asia/Dushanbe in 1966 +const uint8_t kZoneBufSizeAsia_Famagusta = 5; // Asia/Famagusta in 1981 +const uint8_t kZoneBufSizeAsia_Gaza = 7; // Asia/Gaza in 2040 +const uint8_t kZoneBufSizeAsia_Hebron = 7; // Asia/Hebron in 2040 +const uint8_t kZoneBufSizeAsia_Ho_Chi_Minh = 1; // Asia/Ho_Chi_Minh in 1966 +const uint8_t kZoneBufSizeAsia_Hong_Kong = 2; // Asia/Hong_Kong in 1966 +const uint8_t kZoneBufSizeAsia_Hovd = 2; // Asia/Hovd in 1966 +const uint8_t kZoneBufSizeAsia_Irkutsk = 1; // Asia/Irkutsk in 1966 +const uint8_t kZoneBufSizeAsia_Jakarta = 1; // Asia/Jakarta in 1966 +const uint8_t kZoneBufSizeAsia_Jayapura = 1; // Asia/Jayapura in 1966 +const uint8_t kZoneBufSizeAsia_Jerusalem = 5; // Asia/Jerusalem in 2013 +const uint8_t kZoneBufSizeAsia_Kabul = 1; // Asia/Kabul in 1966 +const uint8_t kZoneBufSizeAsia_Kamchatka = 1; // Asia/Kamchatka in 1966 +const uint8_t kZoneBufSizeAsia_Karachi = 2; // Asia/Karachi in 1966 +const uint8_t kZoneBufSizeAsia_Kathmandu = 1; // Asia/Kathmandu in 1966 +const uint8_t kZoneBufSizeAsia_Khandyga = 1; // Asia/Khandyga in 1966 +const uint8_t kZoneBufSizeAsia_Kolkata = 1; // Asia/Kolkata in 1966 +const uint8_t kZoneBufSizeAsia_Krasnoyarsk = 1; // Asia/Krasnoyarsk in 1966 +const uint8_t kZoneBufSizeAsia_Kuching = 1; // Asia/Kuching in 1966 +const uint8_t kZoneBufSizeAsia_Macau = 2; // Asia/Macau in 1966 +const uint8_t kZoneBufSizeAsia_Magadan = 1; // Asia/Magadan in 1966 +const uint8_t kZoneBufSizeAsia_Makassar = 1; // Asia/Makassar in 1966 +const uint8_t kZoneBufSizeAsia_Manila = 2; // Asia/Manila in 1966 +const uint8_t kZoneBufSizeAsia_Nicosia = 5; // Asia/Nicosia in 1981 +const uint8_t kZoneBufSizeAsia_Novokuznetsk = 1; // Asia/Novokuznetsk in 1966 +const uint8_t kZoneBufSizeAsia_Novosibirsk = 1; // Asia/Novosibirsk in 1966 +const uint8_t kZoneBufSizeAsia_Omsk = 1; // Asia/Omsk in 1966 +const uint8_t kZoneBufSizeAsia_Oral = 1; // Asia/Oral in 1966 +const uint8_t kZoneBufSizeAsia_Pontianak = 1; // Asia/Pontianak in 1966 +const uint8_t kZoneBufSizeAsia_Pyongyang = 1; // Asia/Pyongyang in 1966 +const uint8_t kZoneBufSizeAsia_Qatar = 1; // Asia/Qatar in 1966 +const uint8_t kZoneBufSizeAsia_Qostanay = 2; // Asia/Qostanay in 2024 +const uint8_t kZoneBufSizeAsia_Qyzylorda = 1; // Asia/Qyzylorda in 1966 +const uint8_t kZoneBufSizeAsia_Riyadh = 1; // Asia/Riyadh in 1966 +const uint8_t kZoneBufSizeAsia_Sakhalin = 1; // Asia/Sakhalin in 1966 +const uint8_t kZoneBufSizeAsia_Samarkand = 1; // Asia/Samarkand in 1966 +const uint8_t kZoneBufSizeAsia_Seoul = 2; // Asia/Seoul in 1966 +const uint8_t kZoneBufSizeAsia_Shanghai = 2; // Asia/Shanghai in 1966 +const uint8_t kZoneBufSizeAsia_Singapore = 1; // Asia/Singapore in 1966 +const uint8_t kZoneBufSizeAsia_Srednekolymsk = 1; // Asia/Srednekolymsk in 1966 +const uint8_t kZoneBufSizeAsia_Taipei = 2; // Asia/Taipei in 1966 +const uint8_t kZoneBufSizeAsia_Tashkent = 1; // Asia/Tashkent in 1966 +const uint8_t kZoneBufSizeAsia_Tbilisi = 1; // Asia/Tbilisi in 1966 +const uint8_t kZoneBufSizeAsia_Tehran = 2; // Asia/Tehran in 1966 +const uint8_t kZoneBufSizeAsia_Thimphu = 1; // Asia/Thimphu in 1966 +const uint8_t kZoneBufSizeAsia_Tokyo = 2; // Asia/Tokyo in 1966 +const uint8_t kZoneBufSizeAsia_Tomsk = 1; // Asia/Tomsk in 1966 +const uint8_t kZoneBufSizeAsia_Ulaanbaatar = 2; // Asia/Ulaanbaatar in 1966 +const uint8_t kZoneBufSizeAsia_Urumqi = 1; // Asia/Urumqi in 1966 +const uint8_t kZoneBufSizeAsia_Ust_Nera = 1; // Asia/Ust-Nera in 1966 +const uint8_t kZoneBufSizeAsia_Vladivostok = 1; // Asia/Vladivostok in 1966 +const uint8_t kZoneBufSizeAsia_Yakutsk = 1; // Asia/Yakutsk in 1966 +const uint8_t kZoneBufSizeAsia_Yangon = 1; // Asia/Yangon in 1966 +const uint8_t kZoneBufSizeAsia_Yekaterinburg = 1; // Asia/Yekaterinburg in 1966 +const uint8_t kZoneBufSizeAsia_Yerevan = 2; // Asia/Yerevan in 1966 +const uint8_t kZoneBufSizeAtlantic_Azores = 5; // Atlantic/Azores in 1983 +const uint8_t kZoneBufSizeAtlantic_Bermuda = 6; // Atlantic/Bermuda in 2008 +const uint8_t kZoneBufSizeAtlantic_Canary = 5; // Atlantic/Canary in 1983 +const uint8_t kZoneBufSizeAtlantic_Cape_Verde = 1; // Atlantic/Cape_Verde in 1966 +const uint8_t kZoneBufSizeAtlantic_Faroe = 5; // Atlantic/Faroe in 1983 +const uint8_t kZoneBufSizeAtlantic_Madeira = 5; // Atlantic/Madeira in 1983 +const uint8_t kZoneBufSizeAtlantic_South_Georgia = 1; // Atlantic/South_Georgia in 1966 +const uint8_t kZoneBufSizeAtlantic_Stanley = 1; // Atlantic/Stanley in 1966 +const uint8_t kZoneBufSizeAustralia_Adelaide = 4; // Australia/Adelaide in 2008 +const uint8_t kZoneBufSizeAustralia_Brisbane = 2; // Australia/Brisbane in 1966 +const uint8_t kZoneBufSizeAustralia_Broken_Hill = 4; // Australia/Broken_Hill in 2008 +const uint8_t kZoneBufSizeAustralia_Darwin = 2; // Australia/Darwin in 1966 +const uint8_t kZoneBufSizeAustralia_Eucla = 2; // Australia/Eucla in 1966 +const uint8_t kZoneBufSizeAustralia_Hobart = 4; // Australia/Hobart in 2007 +const uint8_t kZoneBufSizeAustralia_Lindeman = 2; // Australia/Lindeman in 1966 +const uint8_t kZoneBufSizeAustralia_Lord_Howe = 4; // Australia/Lord_Howe in 2008 +const uint8_t kZoneBufSizeAustralia_Melbourne = 4; // Australia/Melbourne in 2008 +const uint8_t kZoneBufSizeAustralia_Perth = 2; // Australia/Perth in 1966 +const uint8_t kZoneBufSizeAustralia_Sydney = 4; // Australia/Sydney in 2008 +const uint8_t kZoneBufSizeEtc_GMT = 1; // Etc/GMT in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_1 = 1; // Etc/GMT+1 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_10 = 1; // Etc/GMT+10 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_11 = 1; // Etc/GMT+11 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_12 = 1; // Etc/GMT+12 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_2 = 1; // Etc/GMT+2 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_3 = 1; // Etc/GMT+3 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_4 = 1; // Etc/GMT+4 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_5 = 1; // Etc/GMT+5 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_6 = 1; // Etc/GMT+6 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_7 = 1; // Etc/GMT+7 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_8 = 1; // Etc/GMT+8 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_PLUS_9 = 1; // Etc/GMT+9 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_1 = 1; // Etc/GMT-1 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_10 = 1; // Etc/GMT-10 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_11 = 1; // Etc/GMT-11 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_12 = 1; // Etc/GMT-12 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_13 = 1; // Etc/GMT-13 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_14 = 1; // Etc/GMT-14 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_2 = 1; // Etc/GMT-2 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_3 = 1; // Etc/GMT-3 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_4 = 1; // Etc/GMT-4 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_5 = 1; // Etc/GMT-5 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_6 = 1; // Etc/GMT-6 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_7 = 1; // Etc/GMT-7 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_8 = 1; // Etc/GMT-8 in 1966 +const uint8_t kZoneBufSizeEtc_GMT_9 = 1; // Etc/GMT-9 in 1966 +const uint8_t kZoneBufSizeEtc_UTC = 1; // Etc/UTC in 1966 +const uint8_t kZoneBufSizeEurope_Andorra = 5; // Europe/Andorra in 1983 +const uint8_t kZoneBufSizeEurope_Astrakhan = 1; // Europe/Astrakhan in 1966 +const uint8_t kZoneBufSizeEurope_Athens = 5; // Europe/Athens in 1983 +const uint8_t kZoneBufSizeEurope_Belgrade = 5; // Europe/Belgrade in 1983 +const uint8_t kZoneBufSizeEurope_Berlin = 5; // Europe/Berlin in 1983 +const uint8_t kZoneBufSizeEurope_Brussels = 5; // Europe/Brussels in 1983 +const uint8_t kZoneBufSizeEurope_Bucharest = 5; // Europe/Bucharest in 1983 +const uint8_t kZoneBufSizeEurope_Budapest = 5; // Europe/Budapest in 1983 +const uint8_t kZoneBufSizeEurope_Chisinau = 5; // Europe/Chisinau in 1997 +const uint8_t kZoneBufSizeEurope_Dublin = 5; // Europe/Dublin in 1990 +const uint8_t kZoneBufSizeEurope_Gibraltar = 5; // Europe/Gibraltar in 1983 +const uint8_t kZoneBufSizeEurope_Helsinki = 5; // Europe/Helsinki in 1983 +const uint8_t kZoneBufSizeEurope_Istanbul = 1; // Europe/Istanbul in 1966 +const uint8_t kZoneBufSizeEurope_Kaliningrad = 1; // Europe/Kaliningrad in 1966 +const uint8_t kZoneBufSizeEurope_Kirov = 1; // Europe/Kirov in 1966 +const uint8_t kZoneBufSizeEurope_Kyiv = 5; // Europe/Kyiv in 1983 +const uint8_t kZoneBufSizeEurope_Lisbon = 5; // Europe/Lisbon in 1983 +const uint8_t kZoneBufSizeEurope_London = 5; // Europe/London in 1983 +const uint8_t kZoneBufSizeEurope_Madrid = 5; // Europe/Madrid in 1983 +const uint8_t kZoneBufSizeEurope_Malta = 5; // Europe/Malta in 1983 +const uint8_t kZoneBufSizeEurope_Minsk = 1; // Europe/Minsk in 1966 +const uint8_t kZoneBufSizeEurope_Moscow = 1; // Europe/Moscow in 1966 +const uint8_t kZoneBufSizeEurope_Paris = 5; // Europe/Paris in 1983 +const uint8_t kZoneBufSizeEurope_Prague = 5; // Europe/Prague in 1983 +const uint8_t kZoneBufSizeEurope_Riga = 5; // Europe/Riga in 1983 +const uint8_t kZoneBufSizeEurope_Rome = 5; // Europe/Rome in 1983 +const uint8_t kZoneBufSizeEurope_Samara = 1; // Europe/Samara in 1966 +const uint8_t kZoneBufSizeEurope_Saratov = 1; // Europe/Saratov in 1966 +const uint8_t kZoneBufSizeEurope_Simferopol = 1; // Europe/Simferopol in 1966 +const uint8_t kZoneBufSizeEurope_Sofia = 5; // Europe/Sofia in 1983 +const uint8_t kZoneBufSizeEurope_Tallinn = 5; // Europe/Tallinn in 1983 +const uint8_t kZoneBufSizeEurope_Tirane = 5; // Europe/Tirane in 1983 +const uint8_t kZoneBufSizeEurope_Ulyanovsk = 1; // Europe/Ulyanovsk in 1966 +const uint8_t kZoneBufSizeEurope_Vienna = 5; // Europe/Vienna in 1983 +const uint8_t kZoneBufSizeEurope_Vilnius = 5; // Europe/Vilnius in 1983 +const uint8_t kZoneBufSizeEurope_Volgograd = 1; // Europe/Volgograd in 1966 +const uint8_t kZoneBufSizeEurope_Warsaw = 5; // Europe/Warsaw in 1983 +const uint8_t kZoneBufSizeEurope_Zurich = 5; // Europe/Zurich in 1983 +const uint8_t kZoneBufSizeIndian_Chagos = 1; // Indian/Chagos in 1966 +const uint8_t kZoneBufSizeIndian_Maldives = 1; // Indian/Maldives in 1966 +const uint8_t kZoneBufSizeIndian_Mauritius = 2; // Indian/Mauritius in 1966 +const uint8_t kZoneBufSizePacific_Apia = 2; // Pacific/Apia in 1966 +const uint8_t kZoneBufSizePacific_Auckland = 4; // Pacific/Auckland in 1992 +const uint8_t kZoneBufSizePacific_Bougainville = 1; // Pacific/Bougainville in 1966 +const uint8_t kZoneBufSizePacific_Chatham = 4; // Pacific/Chatham in 1992 +const uint8_t kZoneBufSizePacific_Easter = 4; // Pacific/Easter in 2022 +const uint8_t kZoneBufSizePacific_Efate = 2; // Pacific/Efate in 1966 +const uint8_t kZoneBufSizePacific_Fakaofo = 1; // Pacific/Fakaofo in 1966 +const uint8_t kZoneBufSizePacific_Fiji = 2; // Pacific/Fiji in 1966 +const uint8_t kZoneBufSizePacific_Galapagos = 2; // Pacific/Galapagos in 1966 +const uint8_t kZoneBufSizePacific_Gambier = 1; // Pacific/Gambier in 1966 +const uint8_t kZoneBufSizePacific_Guadalcanal = 1; // Pacific/Guadalcanal in 1966 +const uint8_t kZoneBufSizePacific_Guam = 1; // Pacific/Guam in 1966 +const uint8_t kZoneBufSizePacific_Honolulu = 1; // Pacific/Honolulu in 1966 +const uint8_t kZoneBufSizePacific_Kanton = 1; // Pacific/Kanton in 1966 +const uint8_t kZoneBufSizePacific_Kiritimati = 1; // Pacific/Kiritimati in 1966 +const uint8_t kZoneBufSizePacific_Kosrae = 1; // Pacific/Kosrae in 1966 +const uint8_t kZoneBufSizePacific_Kwajalein = 1; // Pacific/Kwajalein in 1966 +const uint8_t kZoneBufSizePacific_Marquesas = 1; // Pacific/Marquesas in 1966 +const uint8_t kZoneBufSizePacific_Nauru = 1; // Pacific/Nauru in 1966 +const uint8_t kZoneBufSizePacific_Niue = 1; // Pacific/Niue in 1966 +const uint8_t kZoneBufSizePacific_Norfolk = 4; // Pacific/Norfolk in 2008 +const uint8_t kZoneBufSizePacific_Noumea = 2; // Pacific/Noumea in 1966 +const uint8_t kZoneBufSizePacific_Pago_Pago = 1; // Pacific/Pago_Pago in 1966 +const uint8_t kZoneBufSizePacific_Palau = 1; // Pacific/Palau in 1966 +const uint8_t kZoneBufSizePacific_Pitcairn = 1; // Pacific/Pitcairn in 1966 +const uint8_t kZoneBufSizePacific_Port_Moresby = 1; // Pacific/Port_Moresby in 1966 +const uint8_t kZoneBufSizePacific_Rarotonga = 2; // Pacific/Rarotonga in 1966 +const uint8_t kZoneBufSizePacific_Tahiti = 1; // Pacific/Tahiti in 1966 +const uint8_t kZoneBufSizePacific_Tarawa = 1; // Pacific/Tarawa in 1966 +const uint8_t kZoneBufSizePacific_Tongatapu = 2; // Pacific/Tongatapu in 1966 + + +//--------------------------------------------------------------------------- +// Unsupported zones: 0 +//--------------------------------------------------------------------------- + + + +//--------------------------------------------------------------------------- +// Notable zones: 45 +//--------------------------------------------------------------------------- + +// Africa/Casablanca { +// RULES not fixed but FORMAT is missing '%s' or '/', +// Morocco {SAVE '-1:00' is a negative DST} +// } +// Africa/El_Aaiun { +// RULES not fixed but FORMAT is missing '%s' or '/', +// Morocco {SAVE '-1:00' is a negative DST} +// } +// Africa/Johannesburg {RULES not fixed but FORMAT is missing '%s' or '/'} +// Africa/Windhoek { +// Namibia {LETTER 'CAT' not single character} +// } +// America/Argentina/Buenos_Aires {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Argentina/Cordoba {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Argentina/Tucuman {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Asuncion {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Belize { +// Belize {LETTER 'CST' not single character} +// } +// America/Bogota {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Campo_Grande {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Coyhaique {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Cuiaba {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Guayaquil {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Lima {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Miquelon {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Montevideo {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Nuuk {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Santiago {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Sao_Paulo {RULES not fixed but FORMAT is missing '%s' or '/'} +// America/Scoresbysund {RULES not fixed but FORMAT is missing '%s' or '/'} +// Antarctica/Troll { +// Troll { +// LETTER '+00' not single character, +// LETTER '+02' not single character, +// SAVE '2:00' different from 1:00, +// } +// } +// Asia/Baghdad {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Baku {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Dhaka {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Hovd {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Kathmandu {STDOFF '5:45' not multiple of :30 min} +// Asia/Tehran {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Ulaanbaatar {RULES not fixed but FORMAT is missing '%s' or '/'} +// Asia/Yerevan {RULES not fixed but FORMAT is missing '%s' or '/'} +// Atlantic/Azores {RULES not fixed but FORMAT is missing '%s' or '/'} +// Australia/Eucla { +// RULES not fixed but FORMAT is missing '%s' or '/', +// STDOFF '8:45' not multiple of :30 min, +// } +// Australia/Lord_Howe { +// RULES not fixed but FORMAT is missing '%s' or '/', +// LH {SAVE '0:30' different from 1:00} +// } +// Europe/Dublin { +// Eire {SAVE '-1:00' is a negative DST} +// } +// Indian/Mauritius {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Apia {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Chatham { +// RULES not fixed but FORMAT is missing '%s' or '/', +// STDOFF '12:45' not multiple of :30 min, +// } +// Pacific/Easter {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Efate {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Fiji {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Galapagos {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Norfolk {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Noumea {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Rarotonga {RULES not fixed but FORMAT is missing '%s' or '/'} +// Pacific/Tongatapu {RULES not fixed but FORMAT is missing '%s' or '/'} + + +//--------------------------------------------------------------------------- +// Unsupported links: 0 +//--------------------------------------------------------------------------- + + + +//--------------------------------------------------------------------------- +// Notable links: 0 +//--------------------------------------------------------------------------- + + + +} +} + +#endif diff --git a/src/zonedbx2025/zone_policies.cpp b/src/zonedbx2025/zone_policies.cpp new file mode 100644 index 000000000..56b109412 --- /dev/null +++ b/src/zonedbx2025/zone_policies.cpp @@ -0,0 +1,5132 @@ +// 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/zonedbx2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope extended +// --db_namespace zonedbx2025 +// --zi_namespace extended::Info +// --start_year 2025 +// --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: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 7 +// +// Records: +// Infos: 597 +// Eras: 345 +// Policies: 66 +// Rules: 343 +// +// Memory (8-bits): +// Context: 20 +// Rules: 3087 +// Policies: 198 +// Eras: 3795 +// Zones: 4420 +// Links: 3341 +// Registry: 1194 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5660 (original: 9094) +// TOTAL: 22096 +// +// Memory (32-bits): +// Context: 28 +// Rules: 4116 +// Policies: 528 +// Eras: 5520 +// Zones: 8160 +// Links: 6168 +// Registry: 2388 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5660 (original: 9094) +// TOTAL: 32991 +// +// DO NOT EDIT + +#include +#include "zone_policies.h" + +namespace ace_time { +namespace zonedbx2025 { + +//--------------------------------------------------------------------------- +// Policies: 66 +// Rules: 343 +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// Policy name: AN +// Rules: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesAN[] ACE_TIME_PROGMEM = { + // Anchor: Rule AN 2008 max - Apr 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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 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)*/, + 6 /*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*/, + 4 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyAQ ACE_TIME_PROGMEM = { + kZoneRulesAQ /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: AS +// Rules: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesAS[] ACE_TIME_PROGMEM = { + // Anchor: Rule AS 2008 max - Apr 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)*/, + 6 /*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 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)*/, + 6 /*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*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: AT +// Rules: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesAT[] ACE_TIME_PROGMEM = { + // Anchor: Rule AT 2007 only - 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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 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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyAT ACE_TIME_PROGMEM = { + kZoneRulesAT /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: AV +// Rules: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesAV[] ACE_TIME_PROGMEM = { + // Anchor: Rule AV 2008 max - Apr 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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 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)*/, + 6 /*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*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: AW +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesAW[] ACE_TIME_PROGMEM = { + // Anchor: Rule AW 2007 2009 - 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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyAW ACE_TIME_PROGMEM = { + kZoneRulesAW /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Arg +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesArg[] ACE_TIME_PROGMEM = { + // Anchor: Rule Arg 2008 2009 - Mar Sun>=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 kZonePolicyArg ACE_TIME_PROGMEM = { + kZoneRulesArg /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Armenia +// Rules: 1 +//--------------------------------------------------------------------------- + +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 ("")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyArmenia ACE_TIME_PROGMEM = { + kZoneRulesArmenia /*rules*/, + 1 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyAus ACE_TIME_PROGMEM = { + kZoneRulesAus /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Azer +// Rules: 1 +//--------------------------------------------------------------------------- + +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 ("")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyAzer ACE_TIME_PROGMEM = { + kZoneRulesAzer /*rules*/, + 1 /*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)*/, + 6 /*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: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesBrazil[] ACE_TIME_PROGMEM = { + // Anchor: Rule Brazil 2016 2019 - Feb Sun>=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 kZonePolicyBrazil ACE_TIME_PROGMEM = { + kZoneRulesBrazil /*rules*/, + 1 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyCR ACE_TIME_PROGMEM = { + kZoneRulesCR /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Canada +// Rules: 4 +//--------------------------------------------------------------------------- + +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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyCanada ACE_TIME_PROGMEM = { + kZoneRulesCanada /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Chatham +// Rules: 4 +//--------------------------------------------------------------------------- + +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 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*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Chile +// Rules: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesChile[] ACE_TIME_PROGMEM = { + // Anchor: Rule Chile 2019 max - Apr Sun>=2 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 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 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*/, + 4 /*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: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesCuba[] ACE_TIME_PROGMEM = { + // Anchor: Rule Cuba 2012 max - Nov Sun>=1 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)*/, + 6 /*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)*/, + 6 /*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*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Dhaka +// Rules: 1 +//--------------------------------------------------------------------------- + +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 ("")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyDhaka ACE_TIME_PROGMEM = { + kZoneRulesDhaka /*rules*/, + 1 /*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)*/, + 6 /*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)*/, + 6 /*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: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesEgypt[] ACE_TIME_PROGMEM = { + // Anchor: Rule Egypt 2014 only - Sep lastThu 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 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)*/, + 6 /*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*/, + 4 /*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: Fiji +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesFiji[] ACE_TIME_PROGMEM = { + // Anchor: Rule Fiji 2015 2021 - Jan Sun>=12 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 ("")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyFiji ACE_TIME_PROGMEM = { + kZoneRulesFiji /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Guat +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesGuat[] ACE_TIME_PROGMEM = { + // Anchor: Rule Guat 2006 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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyGuat ACE_TIME_PROGMEM = { + kZoneRulesGuat /*rules*/, + 1 /*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: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesHaiti[] ACE_TIME_PROGMEM = { + // Anchor: Rule Haiti 2012 2015 - Nov Sun>=1 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyHaiti ACE_TIME_PROGMEM = { + kZoneRulesHaiti /*rules*/, + 4 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyHoliday ACE_TIME_PROGMEM = { + kZoneRulesHoliday /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Hond +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesHond[] ACE_TIME_PROGMEM = { + // Anchor: Rule Hond 2006 only - Aug Mon>=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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyHond ACE_TIME_PROGMEM = { + kZoneRulesHond /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Iran +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesIran[] ACE_TIME_PROGMEM = { + // Anchor: Rule Iran 2021 2022 - Sep 21 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 kZonePolicyIran ACE_TIME_PROGMEM = { + kZoneRulesIran /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Iraq +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesIraq[] ACE_TIME_PROGMEM = { + // Anchor: Rule Iraq 1991 2007 - Oct 1 3: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 kZonePolicyIraq ACE_TIME_PROGMEM = { + kZoneRulesIraq /*rules*/, + 1 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyJapan ACE_TIME_PROGMEM = { + kZoneRulesJapan /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: LH +// Rules: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesLH[] ACE_TIME_PROGMEM = { + // Anchor: Rule LH 2008 max - Apr 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 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 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*/, + 4 /*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)*/, + 6 /*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: 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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyMacau ACE_TIME_PROGMEM = { + kZoneRulesMacau /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Mauritius +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesMauritius[] ACE_TIME_PROGMEM = { + // Anchor: Rule Mauritius 2009 only - Mar lastSun 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 kZonePolicyMauritius ACE_TIME_PROGMEM = { + kZoneRulesMauritius /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Mexico +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesMexico[] ACE_TIME_PROGMEM = { + // Anchor: Rule Mexico 2002 2022 - 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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyMexico ACE_TIME_PROGMEM = { + kZoneRulesMexico /*rules*/, + 1 /*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)*/, + 6 /*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: Mongol +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesMongol[] ACE_TIME_PROGMEM = { + // Anchor: Rule Mongol 2015 2016 - Sep lastSat 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 kZonePolicyMongol ACE_TIME_PROGMEM = { + kZoneRulesMongol /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Morocco +// Rules: 134 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesMorocco[] ACE_TIME_PROGMEM = { + // Anchor: Rule Morocco 2023 only - Apr 23 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 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*/, + 134 /*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: NZ +// Rules: 4 +//--------------------------------------------------------------------------- + +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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyNZ ACE_TIME_PROGMEM = { + kZoneRulesNZ /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Namibia +// Rules: 1 +//--------------------------------------------------------------------------- + +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")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyNamibia ACE_TIME_PROGMEM = { + kZoneRulesNamibia /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Nic +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesNic[] ACE_TIME_PROGMEM = { + // Anchor: Rule Nic 2006 only - Oct Sun>=1 1: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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyNic ACE_TIME_PROGMEM = { + kZoneRulesNic /*rules*/, + 1 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyPRC ACE_TIME_PROGMEM = { + kZoneRulesPRC /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Pakistan +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesPakistan[] ACE_TIME_PROGMEM = { + // Anchor: Rule Pakistan 2008 2009 - Nov 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 kZonePolicyPakistan ACE_TIME_PROGMEM = { + kZoneRulesPakistan /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Palestine +// Rules: 81 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesPalestine[] ACE_TIME_PROGMEM = { + // Anchor: Rule Palestine 2022 2035 - Oct Sat<=30 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 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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyPalestine ACE_TIME_PROGMEM = { + kZoneRulesPalestine /*rules*/, + 81 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Para +// Rules: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesPara[] ACE_TIME_PROGMEM = { + // Anchor: Rule Para 2010 2012 - Apr 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 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*/, + 4 /*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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyROK ACE_TIME_PROGMEM = { + kZoneRulesROK /*rules*/, + 1 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicySalv ACE_TIME_PROGMEM = { + kZoneRulesSalv /*rules*/, + 1 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyTaiwan ACE_TIME_PROGMEM = { + kZoneRulesTaiwan /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Thule +// Rules: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesThule[] ACE_TIME_PROGMEM = { + // Anchor: Rule Thule 1993 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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyThule ACE_TIME_PROGMEM = { + kZoneRulesThule /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Tonga +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesTonga[] ACE_TIME_PROGMEM = { + // Anchor: Rule Tonga 2017 only - Jan Sun>=15 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 ("")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyTonga ACE_TIME_PROGMEM = { + kZoneRulesTonga /*rules*/, + 1 /*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: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesTunisia[] ACE_TIME_PROGMEM = { + // Anchor: Rule Tunisia 2006 2008 - 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 ("")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyTunisia ACE_TIME_PROGMEM = { + kZoneRulesTunisia /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: US +// Rules: 4 +//--------------------------------------------------------------------------- + +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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + // 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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyUS ACE_TIME_PROGMEM = { + kZoneRulesUS /*rules*/, + 4 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Uruguay +// Rules: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesUruguay[] ACE_TIME_PROGMEM = { + // Anchor: Rule Uruguay 2006 2015 - Mar Sun>=8 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 kZonePolicyUruguay ACE_TIME_PROGMEM = { + kZoneRulesUruguay /*rules*/, + 1 /*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: 1 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesWS[] ACE_TIME_PROGMEM = { + // Anchor: Rule WS 2012 2021 - Apr Sun>=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 ("")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyWS ACE_TIME_PROGMEM = { + kZoneRulesWS /*rules*/, + 1 /*numRules*/, +}; + +//--------------------------------------------------------------------------- +// Policy name: Zion +// Rules: 4 +//--------------------------------------------------------------------------- + +static const extended::Info::ZoneRule kZoneRulesZion[] ACE_TIME_PROGMEM = { + // Anchor: Rule Zion 2012 only - Sep 23 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)*/, + 6 /*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)*/, + 6 /*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)*/, + 6 /*letterIndex ("S")*/, + }, + +}; + +const extended::Info::ZonePolicy kZonePolicyZion ACE_TIME_PROGMEM = { + kZoneRulesZion /*rules*/, + 4 /*numRules*/, +}; + + + +} +} diff --git a/src/zonedbx2025/zone_policies.h b/src/zonedbx2025/zone_policies.h new file mode 100644 index 000000000..3d454fa01 --- /dev/null +++ b/src/zonedbx2025/zone_policies.h @@ -0,0 +1,251 @@ +// 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/zonedbx2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope extended +// --db_namespace zonedbx2025 +// --zi_namespace extended::Info +// --start_year 2025 +// --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: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 7 +// +// Records: +// Infos: 597 +// Eras: 345 +// Policies: 66 +// Rules: 343 +// +// Memory (8-bits): +// Context: 20 +// Rules: 3087 +// Policies: 198 +// Eras: 3795 +// Zones: 4420 +// Links: 3341 +// Registry: 1194 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5660 (original: 9094) +// TOTAL: 22096 +// +// Memory (32-bits): +// Context: 28 +// Rules: 4116 +// Policies: 528 +// Eras: 5520 +// Zones: 8160 +// Links: 6168 +// Registry: 2388 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5660 (original: 9094) +// TOTAL: 32991 +// +// DO NOT EDIT + +#ifndef ACE_TIME_ZONEDBX2025_ZONE_POLICIES_H +#define ACE_TIME_ZONEDBX2025_ZONE_POLICIES_H + +#include + +namespace ace_time { +namespace zonedbx2025 { + +//--------------------------------------------------------------------------- +// Supported policies: 66 +//--------------------------------------------------------------------------- + +extern const extended::Info::ZonePolicy kZonePolicyAN; +extern const extended::Info::ZonePolicy kZonePolicyAQ; +extern const extended::Info::ZonePolicy kZonePolicyAS; +extern const extended::Info::ZonePolicy kZonePolicyAT; +extern const extended::Info::ZonePolicy kZonePolicyAV; +extern const extended::Info::ZonePolicy kZonePolicyAW; +extern const extended::Info::ZonePolicy kZonePolicyArg; +extern const extended::Info::ZonePolicy kZonePolicyArmenia; +extern const extended::Info::ZonePolicy kZonePolicyAus; +extern const extended::Info::ZonePolicy kZonePolicyAzer; +extern const extended::Info::ZonePolicy kZonePolicyBarb; +extern const extended::Info::ZonePolicy kZonePolicyBelize; +extern const extended::Info::ZonePolicy kZonePolicyBrazil; +extern const extended::Info::ZonePolicy kZonePolicyCO; +extern const extended::Info::ZonePolicy kZonePolicyCR; +extern const extended::Info::ZonePolicy kZonePolicyCanada; +extern const extended::Info::ZonePolicy kZonePolicyChatham; +extern const extended::Info::ZonePolicy kZonePolicyChile; +extern const extended::Info::ZonePolicy kZonePolicyCook; +extern const extended::Info::ZonePolicy kZonePolicyCuba; +extern const extended::Info::ZonePolicy kZonePolicyDhaka; +extern const extended::Info::ZonePolicy kZonePolicyEU; +extern const extended::Info::ZonePolicy kZonePolicyEUAsia; +extern const extended::Info::ZonePolicy kZonePolicyEcuador; +extern const extended::Info::ZonePolicy kZonePolicyEgypt; +extern const extended::Info::ZonePolicy kZonePolicyEire; +extern const extended::Info::ZonePolicy kZonePolicyFiji; +extern const extended::Info::ZonePolicy kZonePolicyGuat; +extern const extended::Info::ZonePolicy kZonePolicyHK; +extern const extended::Info::ZonePolicy kZonePolicyHaiti; +extern const extended::Info::ZonePolicy kZonePolicyHoliday; +extern const extended::Info::ZonePolicy kZonePolicyHond; +extern const extended::Info::ZonePolicy kZonePolicyIran; +extern const extended::Info::ZonePolicy kZonePolicyIraq; +extern const extended::Info::ZonePolicy kZonePolicyJapan; +extern const extended::Info::ZonePolicy kZonePolicyLH; +extern const extended::Info::ZonePolicy kZonePolicyLebanon; +extern const extended::Info::ZonePolicy kZonePolicyMacau; +extern const extended::Info::ZonePolicy kZonePolicyMauritius; +extern const extended::Info::ZonePolicy kZonePolicyMexico; +extern const extended::Info::ZonePolicy kZonePolicyMoldova; +extern const extended::Info::ZonePolicy kZonePolicyMongol; +extern const extended::Info::ZonePolicy kZonePolicyMorocco; +extern const extended::Info::ZonePolicy kZonePolicyNC; +extern const extended::Info::ZonePolicy kZonePolicyNZ; +extern const extended::Info::ZonePolicy kZonePolicyNamibia; +extern const extended::Info::ZonePolicy kZonePolicyNic; +extern const extended::Info::ZonePolicy kZonePolicyPRC; +extern const extended::Info::ZonePolicy kZonePolicyPakistan; +extern const extended::Info::ZonePolicy kZonePolicyPalestine; +extern const extended::Info::ZonePolicy kZonePolicyPara; +extern const extended::Info::ZonePolicy kZonePolicyPeru; +extern const extended::Info::ZonePolicy kZonePolicyPhil; +extern const extended::Info::ZonePolicy kZonePolicyROK; +extern const extended::Info::ZonePolicy kZonePolicySA; +extern const extended::Info::ZonePolicy kZonePolicySalv; +extern const extended::Info::ZonePolicy kZonePolicyTaiwan; +extern const extended::Info::ZonePolicy kZonePolicyThule; +extern const extended::Info::ZonePolicy kZonePolicyTonga; +extern const extended::Info::ZonePolicy kZonePolicyTroll; +extern const extended::Info::ZonePolicy kZonePolicyTunisia; +extern const extended::Info::ZonePolicy kZonePolicyUS; +extern const extended::Info::ZonePolicy kZonePolicyUruguay; +extern const extended::Info::ZonePolicy kZonePolicyVanuatu; +extern const extended::Info::ZonePolicy kZonePolicyWS; +extern const extended::Info::ZonePolicy kZonePolicyZion; + + +//--------------------------------------------------------------------------- +// Unsupported policies: 68 +//--------------------------------------------------------------------------- + +// Albania {unused} +// Algeria {unused} +// Austria {unused} +// Belgium {unused} +// Bermuda {unused} +// Bulg {unused} +// C-Eur {unused} +// CA {unused} +// Chicago {unused} +// Cyprus {unused} +// Czech {unused} +// DR {unused} +// Denver {unused} +// Detroit {unused} +// E-Eur {unused} +// E-EurAsia {unused} +// Edm {unused} +// EgyptAsia {unused} +// Falk {unused} +// Finland {unused} +// France {unused} +// GB-Eire {unused} +// Germany {unused} +// Greece {unused} +// Guam {unused} +// Halifax {unused} +// Hungary {unused} +// Indianapolis {unused} +// Italy {unused} +// Jordan {unused} +// Kyrgyz {unused} +// Latvia {unused} +// Libya {unused} +// Louisville {unused} +// Malta {unused} +// Marengo {unused} +// Menominee {unused} +// Moncton {unused} +// NBorneo {unused} +// NT_YK {unused} +// NYC {unused} +// Perry {unused} +// Pike {unused} +// Poland {unused} +// Port {unused} +// Pulaski {unused} +// Regina {unused} +// Romania {unused} +// Russia {unused} +// RussiaAsia {unused} +// SanLuis {unused} +// Shang {unused} +// SovietZone {unused} +// Spain {unused} +// SpainAfrica {unused} +// StJohns {unused} +// Starke {unused} +// Sudan {unused} +// Swift {unused} +// Swiss {unused} +// Syria {unused} +// Toronto {unused} +// Turkey {unused} +// Vanc {unused} +// Vincennes {unused} +// W-Eur {unused} +// Winn {unused} +// Yukon {unused} + + +//--------------------------------------------------------------------------- +// Notable zone policies: 6 +//--------------------------------------------------------------------------- + +// Belize {LETTER 'CST' not single character} +// Eire {SAVE '-1:00' is a negative DST} +// LH {SAVE '0:30' different from 1:00} +// Morocco {SAVE '-1:00' is a negative DST} +// Namibia {LETTER 'CAT' not single character} +// Troll { +// LETTER '+00' not single character, +// LETTER '+02' not single character, +// SAVE '2:00' different from 1:00, +// } + + +} +} + +#endif diff --git a/src/zonedbx2025/zone_registry.cpp b/src/zonedbx2025/zone_registry.cpp new file mode 100644 index 000000000..318518ce0 --- /dev/null +++ b/src/zonedbx2025/zone_registry.cpp @@ -0,0 +1,1037 @@ +// 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/zonedbx2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope extended +// --db_namespace zonedbx2025 +// --zi_namespace extended::Info +// --start_year 2025 +// --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: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 7 +// +// Records: +// Infos: 597 +// Eras: 345 +// Policies: 66 +// Rules: 343 +// +// Memory (8-bits): +// Context: 20 +// Rules: 3087 +// Policies: 198 +// Eras: 3795 +// Zones: 4420 +// Links: 3341 +// Registry: 1194 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5660 (original: 9094) +// TOTAL: 22096 +// +// Memory (32-bits): +// Context: 28 +// Rules: 4116 +// Policies: 528 +// Eras: 5520 +// Zones: 8160 +// Links: 6168 +// Registry: 2388 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5660 (original: 9094) +// TOTAL: 32991 +// +// DO NOT EDIT + +#include +#include "zone_infos.h" +#include "zone_registry.h" + +namespace ace_time { +namespace zonedbx2025 { + +//--------------------------------------------------------------------------- +// Zone Info registry. Sorted by zoneId. +//--------------------------------------------------------------------------- +const extended::Info::ZoneInfo* const kZoneRegistry[340] ACE_TIME_PROGMEM = { + &kZoneAmerica_St_Johns, // 0x04b14e6e, America/St_Johns + &kZoneAmerica_North_Dakota_New_Salem, // 0x04f9958e, America/North_Dakota/New_Salem + &kZoneAsia_Jakarta, // 0x0506ab50, Asia/Jakarta + &kZoneAmerica_Mazatlan, // 0x0532189e, America/Mazatlan + &kZonePacific_Fakaofo, // 0x06532bba, Pacific/Fakaofo + &kZoneAmerica_Hermosillo, // 0x065d21c4, America/Hermosillo + &kZoneAsia_Tbilisi, // 0x0903e442, Asia/Tbilisi + &kZoneAmerica_Indiana_Tell_City, // 0x09263612, America/Indiana/Tell_City + &kZoneAmerica_Boa_Vista, // 0x0a7b7efe, America/Boa_Vista + &kZoneAsia_Colombo, // 0x0af0e91d, Asia/Colombo + &kZoneAmerica_Guatemala, // 0x0c8259f7, America/Guatemala + &kZoneAfrica_Monrovia, // 0x0ce90385, Africa/Monrovia + &kZoneAntarctica_Rothera, // 0x0e86d203, Antarctica/Rothera + &kZoneAustralia_Melbourne, // 0x0fe559a3, Australia/Melbourne + &kZoneAmerica_Sao_Paulo, // 0x1063bfc9, America/Sao_Paulo + &kZoneAmerica_Indiana_Vevay, // 0x10aca054, America/Indiana/Vevay + &kZoneAmerica_Scoresbysund, // 0x123f8d2a, America/Scoresbysund + &kZoneAsia_Samarkand, // 0x13ae5104, Asia/Samarkand + &kZoneAsia_Amman, // 0x148d21bc, Asia/Amman + &kZoneAsia_Aqtau, // 0x148f710e, Asia/Aqtau + &kZoneAsia_Chita, // 0x14ae863b, Asia/Chita + &kZoneAsia_Dhaka, // 0x14c07b8b, Asia/Dhaka + &kZoneAsia_Dubai, // 0x14c79f77, Asia/Dubai + &kZoneAmerica_Bahia_Banderas, // 0x14f6329a, America/Bahia_Banderas + &kZoneAsia_Kabul, // 0x153b5601, Asia/Kabul + &kZoneAsia_Macau, // 0x155f88b9, Asia/Macau + &kZoneAsia_Qatar, // 0x15a8330b, Asia/Qatar + &kZoneAsia_Seoul, // 0x15ce82da, Asia/Seoul + &kZoneAsia_Tokyo, // 0x15e606a8, Asia/Tokyo + &kZoneAsia_Tomsk, // 0x15e60e60, Asia/Tomsk + &kZoneAsia_Thimphu, // 0x170380d1, Asia/Thimphu + &kZoneAmerica_Guayaquil, // 0x17e64958, America/Guayaquil + &kZoneAmerica_Kentucky_Louisville, // 0x1a21024b, America/Kentucky/Louisville + &kZoneAsia_Pontianak, // 0x1a76c057, Asia/Pontianak + &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York + &kZoneAsia_Baku, // 0x1fa788b5, Asia/Baku + &kZoneAsia_Dili, // 0x1fa8c394, Asia/Dili + &kZoneAsia_Gaza, // 0x1faa4875, Asia/Gaza + &kZoneAsia_Hovd, // 0x1fab0fe3, Asia/Hovd + &kZoneAsia_Omsk, // 0x1faeddac, Asia/Omsk + &kZoneAsia_Oral, // 0x1faef0a0, Asia/Oral + &kZoneAsia_Ho_Chi_Minh, // 0x20f2d127, Asia/Ho_Chi_Minh + &kZoneAsia_Damascus, // 0x20fbb063, Asia/Damascus + &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia + &kZonePacific_Fiji, // 0x23383ba5, Pacific/Fiji + &kZonePacific_Guam, // 0x2338f9ed, Pacific/Guam + &kZonePacific_Niue, // 0x233ca014, Pacific/Niue + &kZoneAustralia_Adelaide, // 0x2428e8a3, Australia/Adelaide + &kZonePacific_Auckland, // 0x25062f86, Pacific/Auckland + &kZonePacific_Tongatapu, // 0x262ca836, Pacific/Tongatapu + &kZoneAmerica_Monterrey, // 0x269a1deb, America/Monterrey + &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin + &kZoneAsia_Famagusta, // 0x289b4f8b, Asia/Famagusta + &kZoneAmerica_Indiana_Vincennes, // 0x28a0b212, America/Indiana/Vincennes + &kZoneAmerica_Indiana_Indianapolis, // 0x28a669a4, America/Indiana/Indianapolis + &kZoneAsia_Vladivostok, // 0x29de34a8, Asia/Vladivostok + &kZoneAmerica_Fortaleza, // 0x2ad018ee, America/Fortaleza + &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver + &kZoneAmerica_Iqaluit, // 0x2de310bf, America/Iqaluit + &kZonePacific_Chatham, // 0x2f0de999, Pacific/Chatham + &kZoneAmerica_Indiana_Marengo, // 0x2feeee72, America/Indiana/Marengo + &kZoneEurope_Tallinn, // 0x30c4e096, Europe/Tallinn + &kZoneAsia_Ulaanbaatar, // 0x30f0cc4e, Asia/Ulaanbaatar + &kZoneAmerica_Argentina_Ushuaia, // 0x320dcdde, America/Argentina/Ushuaia + &kZoneAustralia_Hobart, // 0x32bf951a, Australia/Hobart + &kZoneAsia_Dushanbe, // 0x32fc5c3c, Asia/Dushanbe + &kZoneAtlantic_South_Georgia, // 0x33013174, Atlantic/South_Georgia + &kZoneAmerica_Phoenix, // 0x34b5af01, America/Phoenix + &kZoneAntarctica_Mawson, // 0x399cd863, Antarctica/Mawson + &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas + &kZoneAmerica_Cayenne, // 0x3c617269, America/Cayenne + &kZoneAtlantic_Bermuda, // 0x3d4bb1c4, Atlantic/Bermuda + &kZoneAmerica_Managua, // 0x3d5e7600, America/Managua + &kZoneAmerica_Argentina_San_Juan, // 0x3e1009bd, America/Argentina/San_Juan + &kZoneAmerica_Argentina_San_Luis, // 0x3e11238c, America/Argentina/San_Luis + &kZoneEurope_Volgograd, // 0x3ed0f389, Europe/Volgograd + &kZoneAmerica_Fort_Nelson, // 0x3f437e0f, America/Fort_Nelson + &kZoneEtc_GMT_PLUS_10, // 0x3f8f1cc4, Etc/GMT+10 + &kZoneEtc_GMT_PLUS_11, // 0x3f8f1cc5, Etc/GMT+11 + &kZoneEtc_GMT_PLUS_12, // 0x3f8f1cc6, Etc/GMT+12 + &kZoneEtc_GMT_10, // 0x3f8f2546, Etc/GMT-10 + &kZoneEtc_GMT_11, // 0x3f8f2547, Etc/GMT-11 + &kZoneEtc_GMT_12, // 0x3f8f2548, Etc/GMT-12 + &kZoneEtc_GMT_13, // 0x3f8f2549, Etc/GMT-13 + &kZoneEtc_GMT_14, // 0x3f8f254a, Etc/GMT-14 + &kZoneAntarctica_Palmer, // 0x40962f4f, Antarctica/Palmer + &kZoneEurope_Athens, // 0x4318fa27, Europe/Athens + &kZoneAmerica_Indiana_Winamac, // 0x4413fa69, America/Indiana/Winamac + &kZoneEurope_Berlin, // 0x44644c20, Europe/Berlin + &kZoneIndian_Chagos, // 0x456f7c3c, Indian/Chagos + &kZoneAsia_Ust_Nera, // 0x4785f921, Asia/Ust-Nera + &kZoneEurope_Dublin, // 0x4a275f62, Europe/Dublin + &kZoneAsia_Nicosia, // 0x4b0fcf78, Asia/Nicosia + &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago + &kZoneAustralia_Sydney, // 0x4d1e9776, Australia/Sydney + &kZoneAntarctica_Vostok, // 0x4f966fd4, Antarctica/Vostok + &kZoneAustralia_Brisbane, // 0x4fedc9c0, Australia/Brisbane + &kZoneAmerica_Asuncion, // 0x50ec79a6, America/Asuncion + &kZoneAsia_Karachi, // 0x527f5245, Asia/Karachi + &kZonePacific_Gambier, // 0x53720c3a, Pacific/Gambier + &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse + &kZoneAmerica_Martinique, // 0x551e84c5, America/Martinique + &kZoneAmerica_Jamaica, // 0x565dad6c, America/Jamaica + &kZoneAsia_Hong_Kong, // 0x577f28ac, Asia/Hong_Kong + &kZonePacific_Marquesas, // 0x57ca7135, Pacific/Marquesas + &kZoneAmerica_Miquelon, // 0x59674330, America/Miquelon + &kZoneAmerica_Anchorage, // 0x5a79260e, America/Anchorage + &kZoneAsia_Jerusalem, // 0x5becd23a, Asia/Jerusalem + &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon + &kZoneAtlantic_Cape_Verde, // 0x5c5e1772, Atlantic/Cape_Verde + &kZoneEurope_London, // 0x5c6a84ae, Europe/London + &kZoneEurope_Madrid, // 0x5dbd1535, Europe/Madrid + &kZoneAmerica_Moncton, // 0x5e07fe24, America/Moncton + &kZonePacific_Bougainville, // 0x5e10f7a4, Pacific/Bougainville + &kZoneEurope_Moscow, // 0x5ec266fc, Europe/Moscow + &kZoneAmerica_Argentina_Jujuy, // 0x5f2f46c5, America/Argentina/Jujuy + &kZoneAmerica_Argentina_Salta, // 0x5fc73403, America/Argentina/Salta + &kZonePacific_Pago_Pago, // 0x603aebd0, Pacific/Pago_Pago + &kZoneAfrica_Sao_Tome, // 0x61b319d1, Africa/Sao_Tome + &kZoneAmerica_Costa_Rica, // 0x63ff66be, America/Costa_Rica + &kZoneAsia_Qostanay, // 0x654fe522, Asia/Qostanay + &kZoneAmerica_Indiana_Knox, // 0x6554adc9, America/Indiana/Knox + &kZoneEurope_Prague, // 0x65ee5d48, Europe/Prague + &kZoneAmerica_Puerto_Rico, // 0x6752ca31, America/Puerto_Rico + &kZoneAsia_Novokuznetsk, // 0x69264f93, Asia/Novokuznetsk + &kZoneAmerica_Tijuana, // 0x6aa1df72, America/Tijuana + &kZoneAsia_Makassar, // 0x6aa21c85, Asia/Makassar + &kZoneEurope_Helsinki, // 0x6ab2975b, Europe/Helsinki + &kZoneAmerica_Porto_Velho, // 0x6b1aac77, America/Porto_Velho + &kZoneEurope_Samara, // 0x6bc0b139, Europe/Samara + &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton + &kZoneAmerica_Dawson_Creek, // 0x6cf24e5b, America/Dawson_Creek + &kZoneAmerica_Grand_Turk, // 0x6e216197, America/Grand_Turk + &kZoneEurope_Tirane, // 0x6ea95b47, Europe/Tirane + &kZoneAmerica_Araguaina, // 0x6f9a3aef, America/Araguaina + &kZoneAsia_Qyzylorda, // 0x71282e81, Asia/Qyzylorda + &kZoneAsia_Kolkata, // 0x72c06cd9, Asia/Kolkata + &kZoneAmerica_Ciudad_Juarez, // 0x7347fc60, America/Ciudad_Juarez + &kZoneEurope_Vienna, // 0x734cc2e5, Europe/Vienna + &kZoneAsia_Kamchatka, // 0x73baf9d7, Asia/Kamchatka + &kZoneAmerica_Santarem, // 0x740caec1, America/Santarem + &kZoneAmerica_Santiago, // 0x7410c9bc, America/Santiago + &kZoneEurope_Warsaw, // 0x75185c19, Europe/Warsaw + &kZoneAmerica_El_Salvador, // 0x752ad652, America/El_Salvador + &kZoneAfrica_Bissau, // 0x75564141, Africa/Bissau + &kZoneAmerica_Santo_Domingo, // 0x75a0d177, America/Santo_Domingo + &kZoneAfrica_Cairo, // 0x77f8e228, Africa/Cairo + &kZoneAfrica_Ceuta, // 0x77fb46ec, Africa/Ceuta + &kZoneAfrica_Lagos, // 0x789bb5d0, Africa/Lagos + &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek + &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto + &kZoneAfrica_Tunis, // 0x79378e6d, Africa/Tunis + &kZoneIndian_Mauritius, // 0x7b09c02a, Indian/Mauritius + &kZoneAtlantic_Stanley, // 0x7bb3e1c4, Atlantic/Stanley + &kZoneEurope_Zurich, // 0x7d8195b9, Europe/Zurich + &kZoneAsia_Kuching, // 0x801b003b, Asia/Kuching + &kZoneAtlantic_Madeira, // 0x81b5c037, Atlantic/Madeira + &kZonePacific_Kiritimati, // 0x8305073a, Pacific/Kiritimati + &kZoneAmerica_Metlakatla, // 0x84de2686, America/Metlakatla + &kZoneAsia_Yakutsk, // 0x87bb3a9e, Asia/Yakutsk + &kZoneAmerica_Chihuahua, // 0x8827d776, America/Chihuahua + &kZonePacific_Pitcairn, // 0x8837d8bd, Pacific/Pitcairn + &kZonePacific_Efate, // 0x8a2bce28, Pacific/Efate + &kZonePacific_Nauru, // 0x8acc41ae, Pacific/Nauru + &kZonePacific_Palau, // 0x8af04a36, Pacific/Palau + &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg + &kZoneAustralia_Eucla, // 0x8cf99e44, Australia/Eucla + &kZoneAmerica_Argentina_Catamarca, // 0x8d40986b, America/Argentina/Catamarca + &kZoneAustralia_Perth, // 0x8db8269d, Australia/Perth + &kZonePacific_Kwajalein, // 0x8e216759, Pacific/Kwajalein + &kZoneAmerica_Port_au_Prince, // 0x8e4a7bdc, America/Port-au-Prince + &kZoneAfrica_Maputo, // 0x8e6ca1f0, Africa/Maputo + &kZonePacific_Norfolk, // 0x8f4eb4be, Pacific/Norfolk + &kZoneAsia_Yerevan, // 0x9185c8cc, Asia/Yerevan + &kZoneAmerica_Detroit, // 0x925cfbc1, America/Detroit + &kZoneAntarctica_Macquarie, // 0x92f47626, Antarctica/Macquarie + &kZoneAmerica_Belize, // 0x93256c81, America/Belize + &kZoneAmerica_Bogota, // 0x93d7bc62, America/Bogota + &kZoneAsia_Pyongyang, // 0x93ed1c8e, Asia/Pyongyang + &kZoneAmerica_Indiana_Petersburg, // 0x94ac7acc, America/Indiana/Petersburg + &kZoneAmerica_Cancun, // 0x953331be, America/Cancun + &kZoneAmerica_Glace_Bay, // 0x9681f8dd, America/Glace_Bay + &kZoneAsia_Khandyga, // 0x9685a4d9, Asia/Khandyga + &kZoneAmerica_Cuiaba, // 0x969a52eb, America/Cuiaba + &kZoneAmerica_Dawson, // 0x978d8d12, America/Dawson + &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver + &kZoneAmerica_Bahia, // 0x97d815fb, America/Bahia + &kZoneAmerica_Belem, // 0x97da580b, America/Belem + &kZoneAmerica_Boise, // 0x97dfc8d8, America/Boise + &kZoneEurope_Andorra, // 0x97f6764b, Europe/Andorra + &kZoneAmerica_Adak, // 0x97fe49d7, America/Adak + &kZoneAmerica_Lima, // 0x980468c9, America/Lima + &kZoneAmerica_Nome, // 0x98059b15, America/Nome + &kZoneAmerica_Nuuk, // 0x9805b5a9, America/Nuuk + &kZoneIndian_Maldives, // 0x9869681c, Indian/Maldives + &kZoneAmerica_Sitka, // 0x99104ce2, America/Sitka + &kZoneAmerica_Thule, // 0x9921dd68, America/Thule + &kZonePacific_Rarotonga, // 0x9981a3b0, Pacific/Rarotonga + &kZoneAsia_Kathmandu, // 0x9a96ce6f, Asia/Kathmandu + &kZoneAmerica_North_Dakota_Beulah, // 0x9b52b384, America/North_Dakota/Beulah + &kZoneEurope_Budapest, // 0x9ce0197c, Europe/Budapest + &kZoneAsia_Baghdad, // 0x9ceffbed, Asia/Baghdad + &kZoneEtc_GMT_PLUS_1, // 0x9d13da14, Etc/GMT+1 + &kZoneEtc_GMT_PLUS_2, // 0x9d13da15, Etc/GMT+2 + &kZoneEtc_GMT_PLUS_3, // 0x9d13da16, Etc/GMT+3 + &kZoneEtc_GMT_PLUS_4, // 0x9d13da17, Etc/GMT+4 + &kZoneEtc_GMT_PLUS_5, // 0x9d13da18, Etc/GMT+5 + &kZoneEtc_GMT_PLUS_6, // 0x9d13da19, Etc/GMT+6 + &kZoneEtc_GMT_PLUS_7, // 0x9d13da1a, Etc/GMT+7 + &kZoneEtc_GMT_PLUS_8, // 0x9d13da1b, Etc/GMT+8 + &kZoneEtc_GMT_PLUS_9, // 0x9d13da1c, Etc/GMT+9 + &kZoneEtc_GMT_1, // 0x9d13da56, Etc/GMT-1 + &kZoneEtc_GMT_2, // 0x9d13da57, Etc/GMT-2 + &kZoneEtc_GMT_3, // 0x9d13da58, Etc/GMT-3 + &kZoneEtc_GMT_4, // 0x9d13da59, Etc/GMT-4 + &kZoneEtc_GMT_5, // 0x9d13da5a, Etc/GMT-5 + &kZoneEtc_GMT_6, // 0x9d13da5b, Etc/GMT-6 + &kZoneEtc_GMT_7, // 0x9d13da5c, Etc/GMT-7 + &kZoneEtc_GMT_8, // 0x9d13da5d, Etc/GMT-8 + &kZoneEtc_GMT_9, // 0x9d13da5e, Etc/GMT-9 + &kZoneAmerica_Rio_Branco, // 0x9d352764, America/Rio_Branco + &kZoneAsia_Bangkok, // 0x9d6e3aaf, Asia/Bangkok + &kZoneAfrica_El_Aaiun, // 0x9d6fb118, Africa/El_Aaiun + &kZoneAmerica_North_Dakota_Center, // 0x9da42814, America/North_Dakota/Center + &kZoneAsia_Barnaul, // 0x9dba4997, Asia/Barnaul + &kZoneAfrica_Tripoli, // 0x9dfebd3d, Africa/Tripoli + &kZoneEurope_Istanbul, // 0x9e09d6e6, Europe/Istanbul + &kZoneAfrica_Ndjamena, // 0x9fe09898, Africa/Ndjamena + &kZoneAmerica_Guyana, // 0x9ff7bd0b, America/Guyana + &kZoneAmerica_Havana, // 0xa0e15675, America/Havana + &kZoneAsia_Novosibirsk, // 0xa2a435cb, Asia/Novosibirsk + &kZoneEurope_Kyiv, // 0xa2c1e347, Europe/Kyiv + &kZoneEurope_Riga, // 0xa2c57587, Europe/Riga + &kZoneEurope_Rome, // 0xa2c58fd7, Europe/Rome + &kZoneAmerica_Inuvik, // 0xa42189fc, America/Inuvik + &kZoneAmerica_Argentina_La_Rioja, // 0xa46b7eef, America/Argentina/La_Rioja + &kZoneAsia_Almaty, // 0xa61f41fa, Asia/Almaty + &kZoneAsia_Anadyr, // 0xa63cebd1, Asia/Anadyr + &kZoneAsia_Aqtobe, // 0xa67dcc4e, Asia/Aqtobe + &kZoneAsia_Atyrau, // 0xa6b6e068, Asia/Atyrau + &kZoneAmerica_Juneau, // 0xa6f13e2e, America/Juneau + &kZoneAustralia_Lord_Howe, // 0xa748b67d, Australia/Lord_Howe + &kZonePacific_Port_Moresby, // 0xa7ba7f68, Pacific/Port_Moresby + &kZoneAsia_Beirut, // 0xa7f3d5fd, Asia/Beirut + &kZoneAfrica_Nairobi, // 0xa87ab57e, Africa/Nairobi + &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos + &kZoneAmerica_Argentina_Mendoza, // 0xa9f72d5c, America/Argentina/Mendoza + &kZoneAmerica_La_Paz, // 0xaa29125d, America/La_Paz + &kZoneAmerica_Noronha, // 0xab5116fb, America/Noronha + &kZoneAmerica_Maceio, // 0xac80c6d4, America/Maceio + &kZoneAmerica_Manaus, // 0xac86bf8b, America/Manaus + &kZoneAmerica_Merida, // 0xacd172d8, America/Merida + &kZoneEurope_Chisinau, // 0xad58aa18, Europe/Chisinau + &kZoneAustralia_Broken_Hill, // 0xb06eada3, Australia/Broken_Hill + &kZoneAsia_Bishkek, // 0xb0728553, Asia/Bishkek + &kZoneAmerica_Paramaribo, // 0xb319e4c4, America/Paramaribo + &kZoneAmerica_Panama, // 0xb3863854, America/Panama + &kZoneAsia_Hebron, // 0xb5eef250, Asia/Hebron + &kZoneAmerica_Goose_Bay, // 0xb649541e, America/Goose_Bay + &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles + &kZoneAmerica_Recife, // 0xb8730494, America/Recife + &kZoneAmerica_Regina, // 0xb875371c, America/Regina + &kZoneAsia_Ashgabat, // 0xba87598d, Asia/Ashgabat + &kZoneAmerica_Halifax, // 0xbc5b7183, America/Halifax + &kZoneAsia_Srednekolymsk, // 0xbf8e337d, Asia/Srednekolymsk + &kZoneAmerica_Argentina_Cordoba, // 0xbfccc308, America/Argentina/Cordoba + &kZoneAmerica_Tegucigalpa, // 0xbfd6fd4c, America/Tegucigalpa + &kZoneAsia_Manila, // 0xc156c944, Asia/Manila + &kZoneAfrica_Abidjan, // 0xc21305a3, Africa/Abidjan + &kZoneAmerica_Punta_Arenas, // 0xc2c3bce7, America/Punta_Arenas + &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca + &kZoneAmerica_Argentina_Rio_Gallegos, // 0xc5b0f565, America/Argentina/Rio_Gallegos + &kZoneAsia_Jayapura, // 0xc6833c2f, Asia/Jayapura + &kZoneAmerica_Resolute, // 0xc7093459, America/Resolute + &kZoneAmerica_Rankin_Inlet, // 0xc8de4984, America/Rankin_Inlet + &kZoneAmerica_Barbados, // 0xcbbc3b04, America/Barbados + &kZoneAmerica_Coyhaique, // 0xcc3314ee, America/Coyhaique + &kZoneAsia_Riyadh, // 0xcd973d93, Asia/Riyadh + &kZonePacific_Easter, // 0xcf54f7e7, Pacific/Easter + &kZoneAsia_Singapore, // 0xcf8581fa, Asia/Singapore + &kZoneAsia_Krasnoyarsk, // 0xd0376c6a, Asia/Krasnoyarsk + &kZoneAmerica_Mexico_City, // 0xd0d93f43, America/Mexico_City + &kZoneAsia_Taipei, // 0xd1a844ae, Asia/Taipei + &kZoneAsia_Tehran, // 0xd1f02254, Asia/Tehran + &kZoneEurope_Kaliningrad, // 0xd33b2f28, Europe/Kaliningrad + &kZoneAmerica_Argentina_Buenos_Aires, // 0xd43b4c0d, America/Argentina/Buenos_Aires + &kZoneAfrica_Juba, // 0xd51b395c, Africa/Juba + &kZoneAsia_Urumqi, // 0xd5379735, Asia/Urumqi + &kZoneAmerica_Cambridge_Bay, // 0xd5a44aff, America/Cambridge_Bay + &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg + &kZoneEtc_GMT, // 0xd8e2de58, Etc/GMT + &kZoneEtc_UTC, // 0xd8e31abc, Etc/UTC + &kZoneAmerica_Yakutat, // 0xd8ee31e9, America/Yakutat + &kZoneAfrica_Algiers, // 0xd94515c1, Africa/Algiers + &kZoneEurope_Simferopol, // 0xda9eb724, Europe/Simferopol + &kZoneAmerica_Matamoros, // 0xdd1b0259, America/Matamoros + &kZonePacific_Kanton, // 0xdd512f0e, Pacific/Kanton + &kZoneAsia_Yangon, // 0xdd54a8be, Asia/Yangon + &kZoneEurope_Vilnius, // 0xdd63b8ce, Europe/Vilnius + &kZonePacific_Kosrae, // 0xde5139a8, Pacific/Kosrae + &kZoneAmerica_Kentucky_Monticello, // 0xde71c439, America/Kentucky/Monticello + &kZoneEurope_Brussels, // 0xdee07337, Europe/Brussels + &kZoneAmerica_Swift_Current, // 0xdef98e55, America/Swift_Current + &kZoneAsia_Irkutsk, // 0xdfbf213f, Asia/Irkutsk + &kZoneEurope_Ulyanovsk, // 0xe03783d0, Europe/Ulyanovsk + &kZoneAustralia_Lindeman, // 0xe05029e2, Australia/Lindeman + &kZoneEurope_Belgrade, // 0xe0532b3a, Europe/Belgrade + &kZoneAmerica_Menominee, // 0xe0e9c583, America/Menominee + &kZoneAtlantic_Faroe, // 0xe110a971, Atlantic/Faroe + &kZoneAntarctica_Casey, // 0xe2022583, Antarctica/Casey + &kZoneAntarctica_Davis, // 0xe2144b45, Antarctica/Davis + &kZoneEurope_Astrakhan, // 0xe22256e1, Europe/Astrakhan + &kZoneAntarctica_Troll, // 0xe33f085b, Antarctica/Troll + &kZoneEurope_Saratov, // 0xe4315da4, Europe/Saratov + &kZonePacific_Noumea, // 0xe551b788, Pacific/Noumea + &kZonePacific_Honolulu, // 0xe6e70af9, Pacific/Honolulu + &kZoneAmerica_Argentina_Tucuman, // 0xe96399eb, America/Argentina/Tucuman + &kZoneAsia_Magadan, // 0xebacc19b, Asia/Magadan + &kZoneAmerica_Ojinaga, // 0xebfde83f, America/Ojinaga + &kZonePacific_Tahiti, // 0xf24c2446, Pacific/Tahiti + &kZonePacific_Tarawa, // 0xf2517e63, Pacific/Tarawa + &kZoneAsia_Tashkent, // 0xf3924254, Asia/Tashkent + &kZoneAsia_Sakhalin, // 0xf4a1c9bd, Asia/Sakhalin + &kZonePacific_Guadalcanal, // 0xf4dd25f0, Pacific/Guadalcanal + &kZoneAmerica_Danmarkshavn, // 0xf554d204, America/Danmarkshavn + &kZoneAsia_Shanghai, // 0xf895a7f5, Asia/Shanghai + &kZoneEurope_Gibraltar, // 0xf8e325fc, Europe/Gibraltar + &kZoneAtlantic_Azores, // 0xf93ed918, Atlantic/Azores + &kZoneAmerica_Eirunepe, // 0xf9b29683, America/Eirunepe + &kZoneAmerica_Montevideo, // 0xfa214780, America/Montevideo + &kZoneEurope_Kirov, // 0xfaf5abef, Europe/Kirov + &kZoneEurope_Malta, // 0xfb1560f3, Europe/Malta + &kZoneEurope_Minsk, // 0xfb19cc66, Europe/Minsk + &kZoneEurope_Bucharest, // 0xfb349ec5, Europe/Bucharest + &kZoneAfrica_Khartoum, // 0xfb3d4205, Africa/Khartoum + &kZoneEurope_Paris, // 0xfb4bc2a3, Europe/Paris + &kZoneAsia_Yekaterinburg, // 0xfb544c6e, Asia/Yekaterinburg + &kZoneEurope_Sofia, // 0xfb898656, Europe/Sofia + &kZoneAtlantic_Canary, // 0xfc23f2c2, Atlantic/Canary + &kZoneAmerica_Campo_Grande, // 0xfec3e7a6, America/Campo_Grande + +}; + +//--------------------------------------------------------------------------- +// Zone and Link (fat) Info registry. Sorted by zoneId. Links act like Zones. +//--------------------------------------------------------------------------- +const extended::Info::ZoneInfo* const kZoneAndLinkRegistry[597] ACE_TIME_PROGMEM = { + &kZoneGB, // 0x005973ae, GB -> Europe/London + &kZoneNZ, // 0x005974ad, NZ -> Pacific/Auckland + &kZoneAsia_Kuala_Lumpur, // 0x014763c4, Asia/Kuala_Lumpur -> Asia/Singapore + &kZoneAfrica_Libreville, // 0x01d96de4, Africa/Libreville -> Africa/Lagos + &kZoneIndian_Cocos, // 0x021e86de, Indian/Cocos -> Asia/Yangon + &kZoneAustralia_Victoria, // 0x0260d5db, Australia/Victoria -> Australia/Melbourne + &kZoneAtlantic_Faeroe, // 0x031ec516, Atlantic/Faeroe -> Atlantic/Faroe + &kZoneAmerica_St_Johns, // 0x04b14e6e, America/St_Johns + &kZoneAmerica_St_Kitts, // 0x04c0507b, America/St_Kitts -> America/Puerto_Rico + &kZoneAfrica_Ouagadougou, // 0x04d7219a, Africa/Ouagadougou -> Africa/Abidjan + &kZoneAmerica_St_Lucia, // 0x04d8b3ba, America/St_Lucia -> America/Puerto_Rico + &kZoneAmerica_North_Dakota_New_Salem, // 0x04f9958e, America/North_Dakota/New_Salem + &kZoneAsia_Jakarta, // 0x0506ab50, Asia/Jakarta + &kZoneAfrica_Bujumbura, // 0x05232a47, Africa/Bujumbura -> Africa/Maputo + &kZoneAmerica_Mazatlan, // 0x0532189e, America/Mazatlan + &kZoneAmerica_St_Barthelemy, // 0x054e6a79, America/St_Barthelemy -> America/Puerto_Rico + &kZoneAfrica_Addis_Ababa, // 0x05ae1e65, Africa/Addis_Ababa -> Africa/Nairobi + &kZonePacific_Fakaofo, // 0x06532bba, Pacific/Fakaofo + &kZoneAmerica_Hermosillo, // 0x065d21c4, America/Hermosillo + &kZoneMexico_BajaSur, // 0x08ee3641, Mexico/BajaSur -> America/Mazatlan + &kZoneAsia_Tbilisi, // 0x0903e442, Asia/Tbilisi + &kZoneAmerica_Indiana_Tell_City, // 0x09263612, America/Indiana/Tell_City + &kZoneUS_Hawaii, // 0x09c8de2f, US/Hawaii -> Pacific/Honolulu + &kZoneAmerica_Boa_Vista, // 0x0a7b7efe, America/Boa_Vista + &kZoneAsia_Colombo, // 0x0af0e91d, Asia/Colombo + &kZoneCET, // 0x0b87d921, CET -> Europe/Brussels + &kZoneEET, // 0x0b87e1a3, EET -> Europe/Athens + &kZoneEST, // 0x0b87e371, EST -> America/Panama + &kZoneGMT, // 0x0b87eb2d, GMT -> Etc/GMT + &kZoneHST, // 0x0b87f034, HST -> Pacific/Honolulu + &kZoneMET, // 0x0b8803ab, MET -> Europe/Brussels + &kZoneMST, // 0x0b880579, MST -> America/Phoenix + &kZonePRC, // 0x0b88120a, PRC -> Asia/Shanghai + &kZoneROC, // 0x0b881a29, ROC -> Asia/Taipei + &kZoneROK, // 0x0b881a31, ROK -> Asia/Seoul + &kZoneUCT, // 0x0b882571, UCT -> Etc/UTC + &kZoneUTC, // 0x0b882791, UTC -> Etc/UTC + &kZoneWET, // 0x0b882e35, WET -> Europe/Lisbon + &kZoneAmerica_Guatemala, // 0x0c8259f7, America/Guatemala + &kZoneEurope_Mariehamn, // 0x0caa6496, Europe/Mariehamn -> Europe/Helsinki + &kZoneAfrica_Monrovia, // 0x0ce90385, Africa/Monrovia + &kZoneEgypt, // 0x0d1a278e, Egypt -> Africa/Cairo + &kZoneGMT_PLUS_0, // 0x0d2f7028, GMT+0 -> Etc/GMT + &kZoneGMT_0, // 0x0d2f706a, GMT-0 -> Etc/GMT + &kZoneJapan, // 0x0d712f8f, Japan -> Asia/Tokyo + &kZoneLibya, // 0x0d998b16, Libya -> Africa/Tripoli + &kZoneKwajalein, // 0x0e57afbb, Kwajalein -> Pacific/Kwajalein + &kZoneAntarctica_Rothera, // 0x0e86d203, Antarctica/Rothera + &kZoneAmerica_Yellowknife, // 0x0f76c76f, America/Yellowknife -> America/Edmonton + &kZoneAustralia_Melbourne, // 0x0fe559a3, Australia/Melbourne + &kZoneAmerica_Sao_Paulo, // 0x1063bfc9, America/Sao_Paulo + &kZoneEurope_Amsterdam, // 0x109395c2, Europe/Amsterdam -> Europe/Brussels + &kZoneAmerica_Indiana_Vevay, // 0x10aca054, America/Indiana/Vevay + &kZoneAmerica_Scoresbysund, // 0x123f8d2a, America/Scoresbysund + &kZoneAsia_Samarkand, // 0x13ae5104, Asia/Samarkand + &kZoneAsia_Amman, // 0x148d21bc, Asia/Amman + &kZoneAsia_Aqtau, // 0x148f710e, Asia/Aqtau + &kZoneAsia_Chita, // 0x14ae863b, Asia/Chita + &kZoneAsia_Dacca, // 0x14bcac5e, Asia/Dacca -> Asia/Dhaka + &kZoneAsia_Dhaka, // 0x14c07b8b, Asia/Dhaka + &kZoneAsia_Dubai, // 0x14c79f77, Asia/Dubai + &kZoneAmerica_Bahia_Banderas, // 0x14f6329a, America/Bahia_Banderas + &kZoneAsia_Kabul, // 0x153b5601, Asia/Kabul + &kZoneAsia_Ashkhabad, // 0x15454f09, Asia/Ashkhabad -> Asia/Ashgabat + &kZoneAsia_Macao, // 0x155f88b3, Asia/Macao -> Asia/Macau + &kZoneAsia_Macau, // 0x155f88b9, Asia/Macau + &kZoneAsia_Qatar, // 0x15a8330b, Asia/Qatar + &kZoneAsia_Seoul, // 0x15ce82da, Asia/Seoul + &kZoneAsia_Tokyo, // 0x15e606a8, Asia/Tokyo + &kZoneAsia_Tomsk, // 0x15e60e60, Asia/Tomsk + &kZoneAsia_Tel_Aviv, // 0x166d7c2c, Asia/Tel_Aviv -> Asia/Jerusalem + &kZoneAsia_Thimphu, // 0x170380d1, Asia/Thimphu + &kZoneAmerica_Guayaquil, // 0x17e64958, America/Guayaquil + &kZoneAmerica_Montserrat, // 0x199b0a35, America/Montserrat -> America/Puerto_Rico + &kZoneAmerica_Kentucky_Louisville, // 0x1a21024b, America/Kentucky/Louisville + &kZoneAsia_Pontianak, // 0x1a76c057, Asia/Pontianak + &kZoneEurope_Podgorica, // 0x1c1a499c, Europe/Podgorica -> Europe/Belgrade + &kZoneAtlantic_Reykjavik, // 0x1c2b4f74, Atlantic/Reykjavik -> Africa/Abidjan + &kZoneAmerica_New_York, // 0x1e2a7654, America/New_York + &kZoneEurope_Luxembourg, // 0x1f8bc6ce, Europe/Luxembourg -> Europe/Brussels + &kZoneAsia_Aden, // 0x1fa7084a, Asia/Aden -> Asia/Riyadh + &kZoneAsia_Baku, // 0x1fa788b5, Asia/Baku + &kZoneAsia_Dili, // 0x1fa8c394, Asia/Dili + &kZoneAsia_Gaza, // 0x1faa4875, Asia/Gaza + &kZoneAsia_Hovd, // 0x1fab0fe3, Asia/Hovd + &kZoneAsia_Omsk, // 0x1faeddac, Asia/Omsk + &kZoneAsia_Oral, // 0x1faef0a0, Asia/Oral + &kZoneAmerica_Montreal, // 0x203a1ea8, America/Montreal -> America/Toronto + &kZoneAsia_Ho_Chi_Minh, // 0x20f2d127, Asia/Ho_Chi_Minh + &kZoneAsia_Damascus, // 0x20fbb063, Asia/Damascus + &kZoneAmerica_Argentina_ComodRivadavia, // 0x22758877, America/Argentina/ComodRivadavia -> America/Argentina/Catamarca + &kZonePacific_Apia, // 0x23359b5e, Pacific/Apia + &kZonePacific_Fiji, // 0x23383ba5, Pacific/Fiji + &kZonePacific_Guam, // 0x2338f9ed, Pacific/Guam + &kZonePacific_Niue, // 0x233ca014, Pacific/Niue + &kZonePacific_Truk, // 0x234010a9, Pacific/Truk -> Pacific/Port_Moresby + &kZonePacific_Wake, // 0x23416c2b, Pacific/Wake -> Pacific/Tarawa + &kZoneAustralia_Adelaide, // 0x2428e8a3, Australia/Adelaide + &kZonePacific_Auckland, // 0x25062f86, Pacific/Auckland + &kZonePacific_Tongatapu, // 0x262ca836, Pacific/Tongatapu + &kZoneAmerica_Monterrey, // 0x269a1deb, America/Monterrey + &kZoneEtc_Greenwich, // 0x26daa98c, Etc/Greenwich -> Etc/GMT + &kZoneAustralia_Currie, // 0x278b6a24, Australia/Currie -> Australia/Hobart + &kZoneAustralia_Darwin, // 0x2876bdff, Australia/Darwin + &kZonePacific_Pohnpei, // 0x28929f96, Pacific/Pohnpei -> Pacific/Guadalcanal + &kZoneAsia_Famagusta, // 0x289b4f8b, Asia/Famagusta + &kZoneAmerica_Indiana_Vincennes, // 0x28a0b212, America/Indiana/Vincennes + &kZoneAmerica_Indiana_Indianapolis, // 0x28a669a4, America/Indiana/Indianapolis + &kZoneAsia_Vladivostok, // 0x29de34a8, Asia/Vladivostok + &kZoneAustralia_Canberra, // 0x2a09ae58, Australia/Canberra -> Australia/Sydney + &kZoneAmerica_Fortaleza, // 0x2ad018ee, America/Fortaleza + &kZoneAmerica_Vancouver, // 0x2c6f6b1f, America/Vancouver + &kZoneAmerica_Pangnirtung, // 0x2d999193, America/Pangnirtung -> America/Iqaluit + &kZoneAmerica_Iqaluit, // 0x2de310bf, America/Iqaluit + &kZoneJamaica, // 0x2e44fdab, Jamaica -> America/Jamaica + &kZonePacific_Chatham, // 0x2f0de999, Pacific/Chatham + &kZoneEtc_Universal, // 0x2f8cb9a9, Etc/Universal -> Etc/UTC + &kZoneAmerica_Indiana_Marengo, // 0x2feeee72, America/Indiana/Marengo + &kZoneEurope_Tallinn, // 0x30c4e096, Europe/Tallinn + &kZoneAfrica_Djibouti, // 0x30ea01d4, Africa/Djibouti -> Africa/Nairobi + &kZoneAsia_Ulaanbaatar, // 0x30f0cc4e, Asia/Ulaanbaatar + &kZoneAfrica_Gaborone, // 0x317c0aa7, Africa/Gaborone -> Africa/Maputo + &kZoneAmerica_Argentina_Ushuaia, // 0x320dcdde, America/Argentina/Ushuaia + &kZoneAsia_Calcutta, // 0x328a44c3, Asia/Calcutta -> Asia/Kolkata + &kZoneAustralia_Hobart, // 0x32bf951a, Australia/Hobart + &kZoneAsia_Dushanbe, // 0x32fc5c3c, Asia/Dushanbe + &kZoneAtlantic_South_Georgia, // 0x33013174, Atlantic/South_Georgia + &kZoneAmerica_Phoenix, // 0x34b5af01, America/Phoenix + &kZoneAsia_Istanbul, // 0x382e7894, Asia/Istanbul -> Europe/Istanbul + &kZoneAsia_Ulan_Bator, // 0x394db4d9, Asia/Ulan_Bator -> Asia/Ulaanbaatar + &kZoneAntarctica_Mawson, // 0x399cd863, Antarctica/Mawson + &kZoneAfrica_Brazzaville, // 0x39cda760, Africa/Brazzaville -> Africa/Lagos + &kZoneAmerica_Caracas, // 0x3be064f4, America/Caracas + &kZoneAmerica_Cayenne, // 0x3c617269, America/Cayenne + &kZoneAfrica_Porto_Novo, // 0x3d1bf95d, Africa/Porto-Novo -> Africa/Lagos + &kZoneAtlantic_Bermuda, // 0x3d4bb1c4, Atlantic/Bermuda + &kZoneAmerica_Managua, // 0x3d5e7600, America/Managua + &kZoneAmerica_Marigot, // 0x3dab3a59, America/Marigot -> America/Puerto_Rico + &kZoneEurope_Guernsey, // 0x3db12c16, Europe/Guernsey -> Europe/London + &kZoneAfrica_Nouakchott, // 0x3dc49dba, Africa/Nouakchott -> Africa/Abidjan + &kZoneAmerica_Louisville, // 0x3dcb47ee, America/Louisville -> America/Kentucky/Louisville + &kZoneAmerica_Argentina_San_Juan, // 0x3e1009bd, America/Argentina/San_Juan + &kZoneAmerica_Argentina_San_Luis, // 0x3e11238c, America/Argentina/San_Luis + &kZoneEurope_Volgograd, // 0x3ed0f389, Europe/Volgograd + &kZoneAmerica_Fort_Nelson, // 0x3f437e0f, America/Fort_Nelson + &kZoneEtc_GMT_PLUS_10, // 0x3f8f1cc4, Etc/GMT+10 + &kZoneEtc_GMT_PLUS_11, // 0x3f8f1cc5, Etc/GMT+11 + &kZoneEtc_GMT_PLUS_12, // 0x3f8f1cc6, Etc/GMT+12 + &kZoneEtc_GMT_10, // 0x3f8f2546, Etc/GMT-10 + &kZoneEtc_GMT_11, // 0x3f8f2547, Etc/GMT-11 + &kZoneEtc_GMT_12, // 0x3f8f2548, Etc/GMT-12 + &kZoneEtc_GMT_13, // 0x3f8f2549, Etc/GMT-13 + &kZoneEtc_GMT_14, // 0x3f8f254a, Etc/GMT-14 + &kZoneAntarctica_Palmer, // 0x40962f4f, Antarctica/Palmer + &kZoneCanada_Pacific, // 0x40fa3c7b, Canada/Pacific -> America/Vancouver + &kZoneEurope_Athens, // 0x4318fa27, Europe/Athens + &kZoneIndian_Kerguelen, // 0x4351b389, Indian/Kerguelen -> Indian/Maldives + &kZoneAmerica_Indiana_Winamac, // 0x4413fa69, America/Indiana/Winamac + &kZoneEurope_Berlin, // 0x44644c20, Europe/Berlin + &kZoneAtlantic_St_Helena, // 0x451fc5f7, Atlantic/St_Helena -> Africa/Abidjan + &kZoneIndian_Chagos, // 0x456f7c3c, Indian/Chagos + &kZoneIndian_Mahe, // 0x45e725e2, Indian/Mahe -> Asia/Dubai + &kZoneIndian_Comoro, // 0x45f4deb6, Indian/Comoro -> Africa/Nairobi + &kZoneAmerica_Mendoza, // 0x46b4e054, America/Mendoza -> America/Argentina/Mendoza + &kZoneAsia_Ust_Nera, // 0x4785f921, Asia/Ust-Nera + &kZoneEurope_Dublin, // 0x4a275f62, Europe/Dublin + &kZoneAsia_Nicosia, // 0x4b0fcf78, Asia/Nicosia + &kZoneAmerica_Chicago, // 0x4b92b5d4, America/Chicago + &kZoneAustralia_Sydney, // 0x4d1e9776, Australia/Sydney + &kZoneNZ_CHAT, // 0x4d42afda, NZ-CHAT -> Pacific/Chatham + &kZoneUS_Arizona, // 0x4ec52670, US/Arizona -> America/Phoenix + &kZoneAntarctica_Vostok, // 0x4f966fd4, Antarctica/Vostok + &kZoneUS_Aleutian, // 0x4fe013ef, US/Aleutian -> America/Adak + &kZoneAustralia_Brisbane, // 0x4fedc9c0, Australia/Brisbane + &kZoneAmerica_Catamarca, // 0x5036e963, America/Catamarca -> America/Argentina/Catamarca + &kZoneAmerica_Asuncion, // 0x50ec79a6, America/Asuncion + &kZoneAsia_Karachi, // 0x527f5245, Asia/Karachi + &kZoneAsia_Kashgar, // 0x52955193, Asia/Kashgar -> Asia/Urumqi + &kZoneCanada_Atlantic, // 0x536b119c, Canada/Atlantic -> America/Halifax + &kZonePacific_Gambier, // 0x53720c3a, Pacific/Gambier + &kZoneAmerica_Whitehorse, // 0x54e0e3e8, America/Whitehorse + &kZoneAmerica_Martinique, // 0x551e84c5, America/Martinique + &kZoneAmerica_Jamaica, // 0x565dad6c, America/Jamaica + &kZoneUS_Samoa, // 0x566821cd, US/Samoa -> Pacific/Pago_Pago + &kZoneHongkong, // 0x56d36560, Hongkong -> Asia/Hong_Kong + &kZoneEurope_Jersey, // 0x570dae76, Europe/Jersey -> Europe/London + &kZoneAsia_Hong_Kong, // 0x577f28ac, Asia/Hong_Kong + &kZonePacific_Marquesas, // 0x57ca7135, Pacific/Marquesas + &kZoneAmerica_Miquelon, // 0x59674330, America/Miquelon + &kZoneAntarctica_DumontDUrville, // 0x5a3c656c, Antarctica/DumontDUrville -> Pacific/Port_Moresby + &kZoneAtlantic_Jan_Mayen, // 0x5a7535b6, Atlantic/Jan_Mayen -> Europe/Berlin + &kZoneAmerica_Anchorage, // 0x5a79260e, America/Anchorage + &kZoneUS_Eastern, // 0x5bb7e78e, US/Eastern -> America/New_York + &kZoneAsia_Jerusalem, // 0x5becd23a, Asia/Jerusalem + &kZoneEurope_Stockholm, // 0x5bf6fbb8, Europe/Stockholm -> Europe/Berlin + &kZoneEurope_Lisbon, // 0x5c00a70b, Europe/Lisbon + &kZoneAtlantic_Cape_Verde, // 0x5c5e1772, Atlantic/Cape_Verde + &kZoneEurope_London, // 0x5c6a84ae, Europe/London + &kZoneAmerica_Cordoba, // 0x5c8a7600, America/Cordoba -> America/Argentina/Cordoba + &kZoneAsia_Ujung_Pandang, // 0x5d001eb3, Asia/Ujung_Pandang -> Asia/Makassar + &kZoneAfrica_Mbabane, // 0x5d3bdd40, Africa/Mbabane -> Africa/Johannesburg + &kZoneEurope_Madrid, // 0x5dbd1535, Europe/Madrid + &kZoneAmerica_Moncton, // 0x5e07fe24, America/Moncton + &kZonePacific_Bougainville, // 0x5e10f7a4, Pacific/Bougainville + &kZoneEurope_Monaco, // 0x5ebf9f01, Europe/Monaco -> Europe/Paris + &kZoneEurope_Moscow, // 0x5ec266fc, Europe/Moscow + &kZoneAmerica_Argentina_Jujuy, // 0x5f2f46c5, America/Argentina/Jujuy + &kZoneAmerica_Argentina_Salta, // 0x5fc73403, America/Argentina/Salta + &kZonePacific_Pago_Pago, // 0x603aebd0, Pacific/Pago_Pago + &kZonePacific_Enderbury, // 0x61599a93, Pacific/Enderbury -> Pacific/Kanton + &kZoneAfrica_Sao_Tome, // 0x61b319d1, Africa/Sao_Tome + &kZoneCanada_Central, // 0x626710f5, Canada/Central -> America/Winnipeg + &kZoneAmerica_Creston, // 0x62a70204, America/Creston -> America/Phoenix + &kZoneAmerica_Costa_Rica, // 0x63ff66be, America/Costa_Rica + &kZoneAsia_Qostanay, // 0x654fe522, Asia/Qostanay + &kZoneAmerica_Indiana_Knox, // 0x6554adc9, America/Indiana/Knox + &kZoneEurope_Prague, // 0x65ee5d48, Europe/Prague + &kZoneBrazil_Acre, // 0x66934f93, Brazil/Acre -> America/Rio_Branco + &kZoneBrazil_East, // 0x669578c5, Brazil/East -> America/Sao_Paulo + &kZoneAfrica_Kinshasa, // 0x6695d70c, Africa/Kinshasa -> Africa/Lagos + &kZoneBrazil_West, // 0x669f689b, Brazil/West -> America/Manaus + &kZoneAfrica_Mogadishu, // 0x66bc159b, Africa/Mogadishu -> Africa/Nairobi + &kZoneAmerica_Puerto_Rico, // 0x6752ca31, America/Puerto_Rico + &kZoneUS_Indiana_Starke, // 0x67977be7, US/Indiana-Starke -> America/Indiana/Knox + &kZoneAmerica_Buenos_Aires, // 0x67d79a05, America/Buenos_Aires -> America/Argentina/Buenos_Aires + &kZoneAfrica_Freetown, // 0x6823dd64, Africa/Freetown -> Africa/Abidjan + &kZoneIndian_Christmas, // 0x68c207d5, Indian/Christmas -> Asia/Bangkok + &kZoneAsia_Novokuznetsk, // 0x69264f93, Asia/Novokuznetsk + &kZoneAmerica_Indianapolis, // 0x6a009ae1, America/Indianapolis -> America/Indiana/Indianapolis + &kZoneEurope_Sarajevo, // 0x6a576c3f, Europe/Sarajevo -> Europe/Belgrade + &kZoneAmerica_Curacao, // 0x6a879184, America/Curacao -> America/Puerto_Rico + &kZoneAmerica_Tijuana, // 0x6aa1df72, America/Tijuana + &kZoneAsia_Makassar, // 0x6aa21c85, Asia/Makassar + &kZoneEurope_Helsinki, // 0x6ab2975b, Europe/Helsinki + &kZoneAmerica_Lower_Princes, // 0x6ae45b62, America/Lower_Princes -> America/Puerto_Rico + &kZoneAmerica_Porto_Velho, // 0x6b1aac77, America/Porto_Velho + &kZoneEurope_Samara, // 0x6bc0b139, Europe/Samara + &kZoneEurope_Skopje, // 0x6c76fdd0, Europe/Skopje -> Europe/Belgrade + &kZoneAmerica_Edmonton, // 0x6cb9484a, America/Edmonton + &kZoneAmerica_Dawson_Creek, // 0x6cf24e5b, America/Dawson_Creek + &kZoneAsia_Rangoon, // 0x6d1217c6, Asia/Rangoon -> Asia/Yangon + &kZoneUS_East_Indiana, // 0x6dcf558a, US/East-Indiana -> America/Indiana/Indianapolis + &kZoneAmerica_Grand_Turk, // 0x6e216197, America/Grand_Turk + &kZoneAmerica_Blanc_Sablon, // 0x6e299892, America/Blanc-Sablon -> America/Puerto_Rico + &kZoneEurope_Tirane, // 0x6ea95b47, Europe/Tirane + &kZoneUS_Mountain, // 0x6eb88247, US/Mountain -> America/Denver + &kZoneAntarctica_McMurdo, // 0x6eeb5585, Antarctica/McMurdo -> Pacific/Auckland + &kZoneAmerica_Araguaina, // 0x6f9a3aef, America/Araguaina + &kZoneAfrica_Lubumbashi, // 0x6fd88566, Africa/Lubumbashi -> Africa/Maputo + &kZoneIndian_Reunion, // 0x7076c047, Indian/Reunion -> Asia/Dubai + &kZoneAsia_Qyzylorda, // 0x71282e81, Asia/Qyzylorda + &kZoneAsia_Kolkata, // 0x72c06cd9, Asia/Kolkata + &kZoneAmerica_Ciudad_Juarez, // 0x7347fc60, America/Ciudad_Juarez + &kZoneEurope_Vienna, // 0x734cc2e5, Europe/Vienna + &kZoneAfrica_Asmara, // 0x73b278ef, Africa/Asmara -> Africa/Nairobi + &kZoneAfrica_Asmera, // 0x73b289f3, Africa/Asmera -> Africa/Nairobi + &kZoneAsia_Kamchatka, // 0x73baf9d7, Asia/Kamchatka + &kZoneAmerica_Santarem, // 0x740caec1, America/Santarem + &kZoneAmerica_Santiago, // 0x7410c9bc, America/Santiago + &kZoneAfrica_Bamako, // 0x74c1e7a5, Africa/Bamako -> Africa/Abidjan + &kZoneAfrica_Bangui, // 0x74c28ed0, Africa/Bangui -> Africa/Lagos + &kZoneAfrica_Banjul, // 0x74c29b96, Africa/Banjul -> Africa/Abidjan + &kZoneEurope_Nicosia, // 0x74efab8a, Europe/Nicosia -> Asia/Nicosia + &kZoneEurope_Warsaw, // 0x75185c19, Europe/Warsaw + &kZoneAmerica_El_Salvador, // 0x752ad652, America/El_Salvador + &kZoneAfrica_Bissau, // 0x75564141, Africa/Bissau + &kZoneAmerica_Santo_Domingo, // 0x75a0d177, America/Santo_Domingo + &kZoneUS_Michigan, // 0x766bb7bc, US/Michigan -> America/Detroit + &kZoneCanada_Saskatchewan, // 0x77311f49, Canada/Saskatchewan -> America/Regina + &kZoneAfrica_Accra, // 0x77d5b054, Africa/Accra -> Africa/Abidjan + &kZoneAfrica_Cairo, // 0x77f8e228, Africa/Cairo + &kZoneAfrica_Ceuta, // 0x77fb46ec, Africa/Ceuta + &kZoneAfrica_Dakar, // 0x780b00fd, Africa/Dakar -> Africa/Abidjan + &kZoneAfrica_Lagos, // 0x789bb5d0, Africa/Lagos + &kZoneAfrica_Windhoek, // 0x789c9bd3, Africa/Windhoek + &kZoneCanada_Yukon, // 0x78dd35c2, Canada/Yukon -> America/Whitehorse + &kZoneAmerica_Toronto, // 0x792e851b, America/Toronto + &kZoneAmerica_Tortola, // 0x7931462b, America/Tortola -> America/Puerto_Rico + &kZoneAfrica_Tunis, // 0x79378e6d, Africa/Tunis + &kZoneAfrica_Douala, // 0x7a6df310, Africa/Douala -> Africa/Lagos + &kZoneAfrica_Conakry, // 0x7ab36b31, Africa/Conakry -> Africa/Abidjan + &kZoneIndian_Mauritius, // 0x7b09c02a, Indian/Mauritius + &kZoneAtlantic_Stanley, // 0x7bb3e1c4, Atlantic/Stanley + &kZoneAmerica_Ensenada, // 0x7bc95445, America/Ensenada -> America/Tijuana + &kZoneEurope_Zagreb, // 0x7c11c9ff, Europe/Zagreb -> Europe/Belgrade + &kZoneCuba, // 0x7c83cba0, Cuba -> America/Havana + &kZoneEire, // 0x7c84b36a, Eire -> Europe/Dublin + &kZoneGMT0, // 0x7c8550fd, GMT0 -> Etc/GMT + &kZoneIran, // 0x7c87090f, Iran -> Asia/Tehran + &kZoneW_SU, // 0x7c8d8ef1, W-SU -> Europe/Moscow + &kZoneZulu, // 0x7c9069b5, Zulu -> Etc/UTC + &kZoneEurope_Zurich, // 0x7d8195b9, Europe/Zurich + &kZoneChile_Continental, // 0x7e2bdb18, Chile/Continental -> America/Santiago + &kZoneAmerica_Fort_Wayne, // 0x7eaaaf24, America/Fort_Wayne -> America/Indiana/Indianapolis + &kZoneAsia_Kuching, // 0x801b003b, Asia/Kuching + &kZoneAtlantic_Madeira, // 0x81b5c037, Atlantic/Madeira + &kZoneAmerica_Atikokan, // 0x81b92098, America/Atikokan -> America/Panama + &kZoneAfrica_Harare, // 0x82c39a2d, Africa/Harare -> Africa/Maputo + &kZoneAmerica_Shiprock, // 0x82fb7049, America/Shiprock -> America/Denver + &kZonePacific_Kiritimati, // 0x8305073a, Pacific/Kiritimati + &kZoneAmerica_St_Vincent, // 0x8460e523, America/St_Vincent -> America/Puerto_Rico + &kZoneAmerica_Metlakatla, // 0x84de2686, America/Metlakatla + &kZoneAsia_Yakutsk, // 0x87bb3a9e, Asia/Yakutsk + &kZoneAmerica_Chihuahua, // 0x8827d776, America/Chihuahua + &kZonePacific_Pitcairn, // 0x8837d8bd, Pacific/Pitcairn + &kZoneAsia_Vientiane, // 0x89d68d75, Asia/Vientiane -> Asia/Bangkok + &kZonePacific_Chuuk, // 0x8a090b23, Pacific/Chuuk -> Pacific/Port_Moresby + &kZonePacific_Efate, // 0x8a2bce28, Pacific/Efate + &kZoneAfrica_Kigali, // 0x8a4dcf2b, Africa/Kigali -> Africa/Maputo + &kZoneAustralia_ACT, // 0x8a970eb2, Australia/ACT -> Australia/Sydney + &kZoneAustralia_LHI, // 0x8a973e17, Australia/LHI -> Australia/Lord_Howe + &kZoneAustralia_NSW, // 0x8a974812, Australia/NSW -> Australia/Sydney + &kZonePacific_Nauru, // 0x8acc41ae, Pacific/Nauru + &kZoneEST5EDT, // 0x8adc72a3, EST5EDT -> America/New_York + &kZonePacific_Palau, // 0x8af04a36, Pacific/Palau + &kZonePacific_Samoa, // 0x8b2699b4, Pacific/Samoa -> Pacific/Pago_Pago + &kZoneAmerica_Winnipeg, // 0x8c7dafc7, America/Winnipeg + &kZoneAustralia_Eucla, // 0x8cf99e44, Australia/Eucla + &kZoneAmerica_Argentina_Catamarca, // 0x8d40986b, America/Argentina/Catamarca + &kZoneAfrica_Luanda, // 0x8d7909cf, Africa/Luanda -> Africa/Lagos + &kZoneAfrica_Lusaka, // 0x8d82b23b, Africa/Lusaka -> Africa/Maputo + &kZoneAustralia_North, // 0x8d997165, Australia/North -> Australia/Darwin + &kZoneAustralia_Perth, // 0x8db8269d, Australia/Perth + &kZoneAustralia_South, // 0x8df3f8ad, Australia/South -> Australia/Adelaide + &kZonePacific_Kwajalein, // 0x8e216759, Pacific/Kwajalein + &kZoneAmerica_Port_au_Prince, // 0x8e4a7bdc, America/Port-au-Prince + &kZoneAfrica_Malabo, // 0x8e6a1906, Africa/Malabo -> Africa/Lagos + &kZoneAfrica_Maputo, // 0x8e6ca1f0, Africa/Maputo + &kZoneAfrica_Maseru, // 0x8e6e02c7, Africa/Maseru -> Africa/Johannesburg + &kZonePacific_Norfolk, // 0x8f4eb4be, Pacific/Norfolk + &kZoneAmerica_Godthab, // 0x8f7eba1f, America/Godthab -> America/Nuuk + &kZoneAustralia_Yancowinna, // 0x90bac131, Australia/Yancowinna -> Australia/Broken_Hill + &kZoneAfrica_Niamey, // 0x914a30fd, Africa/Niamey -> Africa/Lagos + &kZoneAsia_Yerevan, // 0x9185c8cc, Asia/Yerevan + &kZoneAmerica_Detroit, // 0x925cfbc1, America/Detroit + &kZoneAsia_Choibalsan, // 0x928aa4a6, Asia/Choibalsan -> Asia/Ulaanbaatar + &kZoneAntarctica_Macquarie, // 0x92f47626, Antarctica/Macquarie + &kZoneAmerica_Belize, // 0x93256c81, America/Belize + &kZoneMexico_General, // 0x93711d57, Mexico/General -> America/Mexico_City + &kZoneAmerica_Bogota, // 0x93d7bc62, America/Bogota + &kZoneAsia_Pyongyang, // 0x93ed1c8e, Asia/Pyongyang + &kZoneAmerica_Indiana_Petersburg, // 0x94ac7acc, America/Indiana/Petersburg + &kZoneAmerica_Cancun, // 0x953331be, America/Cancun + &kZoneAmerica_Cayman, // 0x953961df, America/Cayman -> America/Panama + &kZoneAmerica_Glace_Bay, // 0x9681f8dd, America/Glace_Bay + &kZoneAsia_Khandyga, // 0x9685a4d9, Asia/Khandyga + &kZoneAmerica_Grenada, // 0x968ce4d8, America/Grenada -> America/Puerto_Rico + &kZoneAmerica_Cuiaba, // 0x969a52eb, America/Cuiaba + &kZoneAmerica_Dawson, // 0x978d8d12, America/Dawson + &kZoneAmerica_Aruba, // 0x97cf8651, America/Aruba -> America/Puerto_Rico + &kZoneAmerica_Denver, // 0x97d10b2a, America/Denver + &kZoneAmerica_Bahia, // 0x97d815fb, America/Bahia + &kZoneAmerica_Belem, // 0x97da580b, America/Belem + &kZoneAmerica_Boise, // 0x97dfc8d8, America/Boise + &kZoneEurope_Andorra, // 0x97f6764b, Europe/Andorra + &kZoneAmerica_Adak, // 0x97fe49d7, America/Adak + &kZoneAmerica_Atka, // 0x97fe8f27, America/Atka -> America/Adak + &kZoneAmerica_Lima, // 0x980468c9, America/Lima + &kZoneAmerica_Nome, // 0x98059b15, America/Nome + &kZoneAmerica_Nuuk, // 0x9805b5a9, America/Nuuk + &kZoneIndian_Maldives, // 0x9869681c, Indian/Maldives + &kZoneAmerica_Jujuy, // 0x9873dbbd, America/Jujuy -> America/Argentina/Jujuy + &kZoneAmerica_Sitka, // 0x99104ce2, America/Sitka + &kZoneAmerica_Thule, // 0x9921dd68, America/Thule + &kZonePacific_Rarotonga, // 0x9981a3b0, Pacific/Rarotonga + &kZoneAsia_Kathmandu, // 0x9a96ce6f, Asia/Kathmandu + &kZoneBrazil_DeNoronha, // 0x9b4cb496, Brazil/DeNoronha -> America/Noronha + &kZoneAmerica_North_Dakota_Beulah, // 0x9b52b384, America/North_Dakota/Beulah + &kZoneAmerica_Rainy_River, // 0x9cd58a10, America/Rainy_River -> America/Winnipeg + &kZoneEurope_Budapest, // 0x9ce0197c, Europe/Budapest + &kZoneAsia_Baghdad, // 0x9ceffbed, Asia/Baghdad + &kZoneAsia_Bahrain, // 0x9d078487, Asia/Bahrain -> Asia/Qatar + &kZoneEtc_GMT_PLUS_0, // 0x9d13da13, Etc/GMT+0 -> Etc/GMT + &kZoneEtc_GMT_PLUS_1, // 0x9d13da14, Etc/GMT+1 + &kZoneEtc_GMT_PLUS_2, // 0x9d13da15, Etc/GMT+2 + &kZoneEtc_GMT_PLUS_3, // 0x9d13da16, Etc/GMT+3 + &kZoneEtc_GMT_PLUS_4, // 0x9d13da17, Etc/GMT+4 + &kZoneEtc_GMT_PLUS_5, // 0x9d13da18, Etc/GMT+5 + &kZoneEtc_GMT_PLUS_6, // 0x9d13da19, Etc/GMT+6 + &kZoneEtc_GMT_PLUS_7, // 0x9d13da1a, Etc/GMT+7 + &kZoneEtc_GMT_PLUS_8, // 0x9d13da1b, Etc/GMT+8 + &kZoneEtc_GMT_PLUS_9, // 0x9d13da1c, Etc/GMT+9 + &kZoneEtc_GMT_0, // 0x9d13da55, Etc/GMT-0 -> Etc/GMT + &kZoneEtc_GMT_1, // 0x9d13da56, Etc/GMT-1 + &kZoneEtc_GMT_2, // 0x9d13da57, Etc/GMT-2 + &kZoneEtc_GMT_3, // 0x9d13da58, Etc/GMT-3 + &kZoneEtc_GMT_4, // 0x9d13da59, Etc/GMT-4 + &kZoneEtc_GMT_5, // 0x9d13da5a, Etc/GMT-5 + &kZoneEtc_GMT_6, // 0x9d13da5b, Etc/GMT-6 + &kZoneEtc_GMT_7, // 0x9d13da5c, Etc/GMT-7 + &kZoneEtc_GMT_8, // 0x9d13da5d, Etc/GMT-8 + &kZoneEtc_GMT_9, // 0x9d13da5e, Etc/GMT-9 + &kZoneAmerica_Nipigon, // 0x9d2a8b1a, America/Nipigon -> America/Toronto + &kZoneAmerica_Rio_Branco, // 0x9d352764, America/Rio_Branco + &kZoneAsia_Bangkok, // 0x9d6e3aaf, Asia/Bangkok + &kZoneAfrica_El_Aaiun, // 0x9d6fb118, Africa/El_Aaiun + &kZoneAmerica_North_Dakota_Center, // 0x9da42814, America/North_Dakota/Center + &kZoneAsia_Barnaul, // 0x9dba4997, Asia/Barnaul + &kZoneAfrica_Tripoli, // 0x9dfebd3d, Africa/Tripoli + &kZoneEurope_Istanbul, // 0x9e09d6e6, Europe/Istanbul + &kZoneIndian_Antananarivo, // 0x9ebf5289, Indian/Antananarivo -> Africa/Nairobi + &kZoneAfrica_Ndjamena, // 0x9fe09898, Africa/Ndjamena + &kZoneAmerica_Guyana, // 0x9ff7bd0b, America/Guyana + &kZoneAfrica_Dar_es_Salaam, // 0xa04c47b6, Africa/Dar_es_Salaam -> Africa/Nairobi + &kZoneAmerica_Havana, // 0xa0e15675, America/Havana + &kZoneAsia_Novosibirsk, // 0xa2a435cb, Asia/Novosibirsk + &kZoneEurope_Kiev, // 0xa2c19eb3, Europe/Kiev -> Europe/Kyiv + &kZoneEurope_Kyiv, // 0xa2c1e347, Europe/Kyiv + &kZoneEurope_Oslo, // 0xa2c3fba1, Europe/Oslo -> Europe/Berlin + &kZoneEurope_Riga, // 0xa2c57587, Europe/Riga + &kZoneEurope_Rome, // 0xa2c58fd7, Europe/Rome + &kZoneAmerica_Inuvik, // 0xa42189fc, America/Inuvik + &kZoneAmerica_Argentina_La_Rioja, // 0xa46b7eef, America/Argentina/La_Rioja + &kZoneAsia_Almaty, // 0xa61f41fa, Asia/Almaty + &kZoneAsia_Anadyr, // 0xa63cebd1, Asia/Anadyr + &kZoneAsia_Aqtobe, // 0xa67dcc4e, Asia/Aqtobe + &kZoneAsia_Atyrau, // 0xa6b6e068, Asia/Atyrau + &kZoneAmerica_Juneau, // 0xa6f13e2e, America/Juneau + &kZoneAustralia_Lord_Howe, // 0xa748b67d, Australia/Lord_Howe + &kZonePacific_Port_Moresby, // 0xa7ba7f68, Pacific/Port_Moresby + &kZoneAsia_Katmandu, // 0xa7ec12c7, Asia/Katmandu -> Asia/Kathmandu + &kZoneAsia_Beirut, // 0xa7f3d5fd, Asia/Beirut + &kZoneSingapore, // 0xa8598c8d, Singapore -> Asia/Singapore + &kZoneAfrica_Nairobi, // 0xa87ab57e, Africa/Nairobi + &kZoneAsia_Brunei, // 0xa8e595f7, Asia/Brunei -> Asia/Kuching + &kZoneUS_Pacific, // 0xa950f6ab, US/Pacific -> America/Los_Angeles + &kZonePacific_Galapagos, // 0xa952f752, Pacific/Galapagos + &kZoneAmerica_Argentina_Mendoza, // 0xa9f72d5c, America/Argentina/Mendoza + &kZoneAmerica_La_Paz, // 0xaa29125d, America/La_Paz + &kZoneAmerica_Noronha, // 0xab5116fb, America/Noronha + &kZoneAmerica_Coral_Harbour, // 0xabcb7569, America/Coral_Harbour -> America/Panama + &kZoneAmerica_Maceio, // 0xac80c6d4, America/Maceio + &kZoneAmerica_Manaus, // 0xac86bf8b, America/Manaus + &kZoneAmerica_Merida, // 0xacd172d8, America/Merida + &kZoneEurope_Chisinau, // 0xad58aa18, Europe/Chisinau + &kZoneAmerica_Nassau, // 0xaedef011, America/Nassau -> America/Toronto + &kZoneAmerica_Anguilla, // 0xafe31333, America/Anguilla -> America/Puerto_Rico + &kZoneEurope_Uzhgorod, // 0xb066f5d6, Europe/Uzhgorod -> Europe/Kyiv + &kZoneAustralia_Broken_Hill, // 0xb06eada3, Australia/Broken_Hill + &kZoneAsia_Bishkek, // 0xb0728553, Asia/Bishkek + &kZoneChile_EasterIsland, // 0xb0982af8, Chile/EasterIsland -> Pacific/Easter + &kZonePacific_Johnston, // 0xb15d7b36, Pacific/Johnston -> Pacific/Honolulu + &kZoneAfrica_Timbuktu, // 0xb164d56f, Africa/Timbuktu -> Africa/Abidjan + &kZoneAmerica_St_Thomas, // 0xb1b3d778, America/St_Thomas -> America/Puerto_Rico + &kZoneAmerica_Paramaribo, // 0xb319e4c4, America/Paramaribo + &kZoneAmerica_Panama, // 0xb3863854, America/Panama + &kZoneCanada_Newfoundland, // 0xb396e991, Canada/Newfoundland -> America/St_Johns + &kZoneAsia_Harbin, // 0xb5af1186, Asia/Harbin -> Asia/Shanghai + &kZoneAsia_Hebron, // 0xb5eef250, Asia/Hebron + &kZoneAmerica_Goose_Bay, // 0xb649541e, America/Goose_Bay + &kZoneAmerica_Los_Angeles, // 0xb7f7e8f2, America/Los_Angeles + &kZoneAmerica_Recife, // 0xb8730494, America/Recife + &kZoneAmerica_Regina, // 0xb875371c, America/Regina + &kZoneAsia_Ashgabat, // 0xba87598d, Asia/Ashgabat + &kZoneIsrael, // 0xba88c9e5, Israel -> Asia/Jerusalem + &kZonePacific_Yap, // 0xbb40138d, Pacific/Yap -> Pacific/Port_Moresby + &kZoneAmerica_Halifax, // 0xbc5b7183, America/Halifax + &kZoneEurope_Ljubljana, // 0xbd98cdb7, Europe/Ljubljana -> Europe/Belgrade + &kZoneAsia_Kuwait, // 0xbe1b2f27, Asia/Kuwait -> Asia/Riyadh + &kZoneEurope_Tiraspol, // 0xbe704472, Europe/Tiraspol -> Europe/Chisinau + &kZoneAsia_Srednekolymsk, // 0xbf8e337d, Asia/Srednekolymsk + &kZoneAmerica_Argentina_Cordoba, // 0xbfccc308, America/Argentina/Cordoba + &kZoneAmerica_Tegucigalpa, // 0xbfd6fd4c, America/Tegucigalpa + &kZoneAmerica_Antigua, // 0xc067a32f, America/Antigua -> America/Puerto_Rico + &kZoneEurope_Busingen, // 0xc06d2cdf, Europe/Busingen -> Europe/Zurich + &kZoneAsia_Manila, // 0xc156c944, Asia/Manila + &kZoneAfrica_Kampala, // 0xc1d30e31, Africa/Kampala -> Africa/Nairobi + &kZoneAmerica_Knox_IN, // 0xc1db9a1c, America/Knox_IN -> America/Indiana/Knox + &kZoneAfrica_Abidjan, // 0xc21305a3, Africa/Abidjan + &kZoneAmerica_Virgin, // 0xc2183ab5, America/Virgin -> America/Puerto_Rico + &kZoneAsia_Phnom_Penh, // 0xc224945e, Asia/Phnom_Penh -> Asia/Bangkok + &kZoneAsia_Muscat, // 0xc2c3565f, Asia/Muscat -> Asia/Dubai + &kZoneAmerica_Punta_Arenas, // 0xc2c3bce7, America/Punta_Arenas + &kZonePortugal, // 0xc3274593, Portugal -> Europe/Lisbon + &kZoneNavajo, // 0xc4ef0e24, Navajo -> America/Denver + &kZoneAfrica_Casablanca, // 0xc59f1b33, Africa/Casablanca + &kZoneAmerica_Argentina_Rio_Gallegos, // 0xc5b0f565, America/Argentina/Rio_Gallegos + &kZoneAsia_Jayapura, // 0xc6833c2f, Asia/Jayapura + &kZoneAmerica_Resolute, // 0xc7093459, America/Resolute + &kZoneAsia_Chungking, // 0xc7121dd0, Asia/Chungking -> Asia/Shanghai + &kZoneGreenwich, // 0xc84d4221, Greenwich -> Etc/GMT + &kZoneAmerica_Rankin_Inlet, // 0xc8de4984, America/Rankin_Inlet + &kZonePoland, // 0xca913b23, Poland -> Europe/Warsaw + &kZoneUS_Central, // 0xcabdcb25, US/Central -> America/Chicago + &kZoneEurope_Vatican, // 0xcb485dca, Europe/Vatican -> Europe/Rome + &kZoneAmerica_Barbados, // 0xcbbc3b04, America/Barbados + &kZoneAmerica_Coyhaique, // 0xcc3314ee, America/Coyhaique + &kZoneAmerica_Porto_Acre, // 0xcce5bf54, America/Porto_Acre -> America/Rio_Branco + &kZoneAmerica_Guadeloupe, // 0xcd1f8a31, America/Guadeloupe -> America/Puerto_Rico + &kZoneAntarctica_South_Pole, // 0xcd96b290, Antarctica/South_Pole -> Pacific/Auckland + &kZoneAsia_Riyadh, // 0xcd973d93, Asia/Riyadh + &kZoneAmerica_Dominica, // 0xcecb4c4a, America/Dominica -> America/Puerto_Rico + &kZoneEurope_San_Marino, // 0xcef7724b, Europe/San_Marino -> Europe/Rome + &kZoneAsia_Saigon, // 0xcf52f713, Asia/Saigon -> Asia/Ho_Chi_Minh + &kZonePacific_Easter, // 0xcf54f7e7, Pacific/Easter + &kZoneAsia_Singapore, // 0xcf8581fa, Asia/Singapore + &kZoneAsia_Krasnoyarsk, // 0xd0376c6a, Asia/Krasnoyarsk + &kZoneEurope_Belfast, // 0xd07dd1e5, Europe/Belfast -> Europe/London + &kZoneAmerica_Mexico_City, // 0xd0d93f43, America/Mexico_City + &kZoneUniversal, // 0xd0ff523e, Universal -> Etc/UTC + &kZoneAsia_Taipei, // 0xd1a844ae, Asia/Taipei + &kZoneAsia_Tehran, // 0xd1f02254, Asia/Tehran + &kZoneAsia_Thimbu, // 0xd226e31b, Asia/Thimbu -> Asia/Thimphu + &kZoneArctic_Longyearbyen, // 0xd23e7859, Arctic/Longyearbyen -> Europe/Berlin + &kZoneAustralia_Queensland, // 0xd326ed0a, Australia/Queensland -> Australia/Brisbane + &kZoneEurope_Kaliningrad, // 0xd33b2f28, Europe/Kaliningrad + &kZoneAmerica_Argentina_Buenos_Aires, // 0xd43b4c0d, America/Argentina/Buenos_Aires + &kZoneTurkey, // 0xd455e469, Turkey -> Europe/Istanbul + &kZoneAfrica_Juba, // 0xd51b395c, Africa/Juba + &kZoneAfrica_Lome, // 0xd51c3a07, Africa/Lome -> Africa/Abidjan + &kZoneAsia_Urumqi, // 0xd5379735, Asia/Urumqi + &kZoneAmerica_Cambridge_Bay, // 0xd5a44aff, America/Cambridge_Bay + &kZoneAfrica_Johannesburg, // 0xd5d157a0, Africa/Johannesburg + &kZoneAmerica_Port_of_Spain, // 0xd8b28d59, America/Port_of_Spain -> America/Puerto_Rico + &kZoneEtc_GMT, // 0xd8e2de58, Etc/GMT + &kZoneEtc_UCT, // 0xd8e3189c, Etc/UCT -> Etc/UTC + &kZoneEtc_UTC, // 0xd8e31abc, Etc/UTC + &kZoneAmerica_Yakutat, // 0xd8ee31e9, America/Yakutat + &kZoneAfrica_Algiers, // 0xd94515c1, Africa/Algiers + &kZonePST8PDT, // 0xd99ee2dc, PST8PDT -> America/Los_Angeles + &kZoneEurope_Bratislava, // 0xda493bed, Europe/Bratislava -> Europe/Prague + &kZoneEurope_Simferopol, // 0xda9eb724, Europe/Simferopol + &kZonePacific_Funafuti, // 0xdb402d65, Pacific/Funafuti -> Pacific/Tarawa + &kZoneAmerica_Matamoros, // 0xdd1b0259, America/Matamoros + &kZonePacific_Kanton, // 0xdd512f0e, Pacific/Kanton + &kZoneAsia_Yangon, // 0xdd54a8be, Asia/Yangon + &kZoneEurope_Vilnius, // 0xdd63b8ce, Europe/Vilnius + &kZoneAustralia_West, // 0xdd858a5d, Australia/West -> Australia/Perth + &kZonePacific_Kosrae, // 0xde5139a8, Pacific/Kosrae + &kZoneAmerica_Kentucky_Monticello, // 0xde71c439, America/Kentucky/Monticello + &kZoneEurope_Brussels, // 0xdee07337, Europe/Brussels + &kZoneAmerica_Swift_Current, // 0xdef98e55, America/Swift_Current + &kZoneAmerica_Rosario, // 0xdf448665, America/Rosario -> America/Argentina/Cordoba + &kZoneAsia_Irkutsk, // 0xdfbf213f, Asia/Irkutsk + &kZoneEurope_Ulyanovsk, // 0xe03783d0, Europe/Ulyanovsk + &kZoneAustralia_Lindeman, // 0xe05029e2, Australia/Lindeman + &kZoneEurope_Belgrade, // 0xe0532b3a, Europe/Belgrade + &kZoneAfrica_Blantyre, // 0xe08d813b, Africa/Blantyre -> Africa/Maputo + &kZoneAmerica_Menominee, // 0xe0e9c583, America/Menominee + &kZoneEurope_Copenhagen, // 0xe0ed30bc, Europe/Copenhagen -> Europe/Berlin + &kZoneAtlantic_Faroe, // 0xe110a971, Atlantic/Faroe + &kZonePacific_Majuro, // 0xe1f95371, Pacific/Majuro -> Pacific/Tarawa + &kZoneAntarctica_Casey, // 0xe2022583, Antarctica/Casey + &kZoneAntarctica_Davis, // 0xe2144b45, Antarctica/Davis + &kZoneEurope_Astrakhan, // 0xe22256e1, Europe/Astrakhan + &kZonePacific_Midway, // 0xe286d38e, Pacific/Midway -> Pacific/Pago_Pago + &kZoneAntarctica_Syowa, // 0xe330c7e1, Antarctica/Syowa -> Asia/Riyadh + &kZoneAntarctica_Troll, // 0xe33f085b, Antarctica/Troll + &kZoneEurope_Saratov, // 0xe4315da4, Europe/Saratov + &kZonePacific_Noumea, // 0xe551b788, Pacific/Noumea + &kZoneIceland, // 0xe56a35b5, Iceland -> Africa/Abidjan + &kZoneIndian_Mayotte, // 0xe6880bca, Indian/Mayotte -> Africa/Nairobi + &kZoneAustralia_Tasmania, // 0xe6d76648, Australia/Tasmania -> Australia/Hobart + &kZonePacific_Honolulu, // 0xe6e70af9, Pacific/Honolulu + &kZoneAmerica_Kralendijk, // 0xe7c456c5, America/Kralendijk -> America/Puerto_Rico + &kZoneAmerica_Argentina_Tucuman, // 0xe96399eb, America/Argentina/Tucuman + &kZonePacific_Ponape, // 0xe9f80086, Pacific/Ponape -> Pacific/Guadalcanal + &kZoneEurope_Zaporozhye, // 0xeab9767f, Europe/Zaporozhye -> Europe/Kyiv + &kZoneEurope_Isle_of_Man, // 0xeaf84580, Europe/Isle_of_Man -> Europe/London + &kZoneAsia_Magadan, // 0xebacc19b, Asia/Magadan + &kZoneAmerica_Ojinaga, // 0xebfde83f, America/Ojinaga + &kZonePacific_Saipan, // 0xeff7a35f, Pacific/Saipan -> Pacific/Guam + &kZoneCST6CDT, // 0xf0e87d00, CST6CDT -> America/Chicago + &kZonePacific_Tahiti, // 0xf24c2446, Pacific/Tahiti + &kZonePacific_Tarawa, // 0xf2517e63, Pacific/Tarawa + &kZoneMST7MDT, // 0xf2af9375, MST7MDT -> America/Denver + &kZoneCanada_Eastern, // 0xf3612d5e, Canada/Eastern -> America/Toronto + &kZoneAsia_Tashkent, // 0xf3924254, Asia/Tashkent + &kZoneAsia_Sakhalin, // 0xf4a1c9bd, Asia/Sakhalin + &kZonePacific_Guadalcanal, // 0xf4dd25f0, Pacific/Guadalcanal + &kZoneEtc_GMT0, // 0xf53ea988, Etc/GMT0 -> Etc/GMT + &kZoneEtc_Zulu, // 0xf549c240, Etc/Zulu -> Etc/UTC + &kZoneAmerica_Danmarkshavn, // 0xf554d204, America/Danmarkshavn + &kZoneAsia_Shanghai, // 0xf895a7f5, Asia/Shanghai + &kZoneEurope_Gibraltar, // 0xf8e325fc, Europe/Gibraltar + &kZoneAsia_Chongqing, // 0xf937fb90, Asia/Chongqing -> Asia/Shanghai + &kZoneAtlantic_Azores, // 0xf93ed918, Atlantic/Azores + &kZonePacific_Wallis, // 0xf94ddb0f, Pacific/Wallis -> Pacific/Tarawa + &kZoneAmerica_Thunder_Bay, // 0xf962e71b, America/Thunder_Bay -> America/Toronto + &kZoneAmerica_Eirunepe, // 0xf9b29683, America/Eirunepe + &kZoneAmerica_Montevideo, // 0xfa214780, America/Montevideo + &kZoneUS_Alaska, // 0xfa300bc9, US/Alaska -> America/Anchorage + &kZoneGB_Eire, // 0xfa70e300, GB-Eire -> Europe/London + &kZoneEurope_Kirov, // 0xfaf5abef, Europe/Kirov + &kZoneEurope_Malta, // 0xfb1560f3, Europe/Malta + &kZoneEurope_Minsk, // 0xfb19cc66, Europe/Minsk + &kZoneEurope_Bucharest, // 0xfb349ec5, Europe/Bucharest + &kZoneAfrica_Khartoum, // 0xfb3d4205, Africa/Khartoum + &kZoneEurope_Paris, // 0xfb4bc2a3, Europe/Paris + &kZoneAsia_Yekaterinburg, // 0xfb544c6e, Asia/Yekaterinburg + &kZoneEurope_Sofia, // 0xfb898656, Europe/Sofia + &kZoneCanada_Mountain, // 0xfb8a8217, Canada/Mountain -> America/Edmonton + &kZoneEurope_Vaduz, // 0xfbb81bae, Europe/Vaduz -> Europe/Zurich + &kZoneAtlantic_Canary, // 0xfc23f2c2, Atlantic/Canary + &kZoneMexico_BajaNorte, // 0xfcf7150f, Mexico/BajaNorte -> America/Tijuana + &kZoneAmerica_Santa_Isabel, // 0xfd18a56c, America/Santa_Isabel -> America/Tijuana + &kZoneAmerica_Campo_Grande, // 0xfec3e7a6, America/Campo_Grande + +}; + +} +} diff --git a/src/zonedbx2025/zone_registry.h b/src/zonedbx2025/zone_registry.h new file mode 100644 index 000000000..700bec689 --- /dev/null +++ b/src/zonedbx2025/zone_registry.h @@ -0,0 +1,96 @@ +// 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/zonedbx2025/tzfiles +// --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx2025 +// --tz_version 2025b +// --action zonedb +// --language arduino +// --scope extended +// --db_namespace zonedbx2025 +// --zi_namespace extended::Info +// --start_year 2025 +// --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: [2025,2200] +// Accurate Years: [2025,32767] +// +// Original Years: [1844,2087] +// Generated Years: [1967,2087] +// Lower/Upper Truncated: [True,False] +// +// Estimator Years: [1967,2090] +// Max Buffer Size: 7 +// +// Records: +// Infos: 597 +// Eras: 345 +// Policies: 66 +// Rules: 343 +// +// Memory (8-bits): +// Context: 20 +// Rules: 3087 +// Policies: 198 +// Eras: 3795 +// Zones: 4420 +// Links: 3341 +// Registry: 1194 +// Formats: 196 +// Letters: 35 +// Fragments: 150 +// Names: 5660 (original: 9094) +// TOTAL: 22096 +// +// Memory (32-bits): +// Context: 28 +// Rules: 4116 +// Policies: 528 +// Eras: 5520 +// Zones: 8160 +// Links: 6168 +// Registry: 2388 +// Formats: 196 +// Letters: 49 +// Fragments: 178 +// Names: 5660 (original: 9094) +// TOTAL: 32991 +// +// DO NOT EDIT + +#ifndef ACE_TIME_ZONEDBX2025_ZONE_REGISTRY_H +#define ACE_TIME_ZONEDBX2025_ZONE_REGISTRY_H + +#include + +namespace ace_time { +namespace zonedbx2025 { + +// Zones +const uint16_t kZoneRegistrySize = 340; +extern const extended::Info::ZoneInfo* const kZoneRegistry[340]; + +// Zones and Links +const uint16_t kZoneAndLinkRegistrySize = 597; +extern const extended::Info::ZoneInfo* const kZoneAndLinkRegistry[597]; + +} +} +#endif diff --git a/src/zoneinfo/ZoneInfoHigh.h b/src/zoneinfo/ZoneInfoHigh.h index 9394f06bf..bd22382e7 100644 --- a/src/zoneinfo/ZoneInfoHigh.h +++ b/src/zoneinfo/ZoneInfoHigh.h @@ -9,17 +9,19 @@ /** * @file ZoneInfoHigh.h * - * Data structures that encodes the high resolution zoneinfo database - * persistence format. It has a 1-second resolution for AT, UNTIL, STDOFF, and - * DST offsets. The year fiels use 2-bytes which supporting years - * `[-32767,32765]`. + * The ZoneInfo, ZoneEra, ZonePolicy, and ZoneRule data structures in this file + * describe the high resolution zoneinfo database persistence format. It has a + * 1-second resolution for AT, UNTIL, STDOFF, and DST offsets. The year fiels + * use 2-bytes which supporting years `[-32767,32765]`. * - * The BrokersHigh.h file provides an abtraction layer which converts these - * low-level fields into a semantically consistent API which can be used by the - * AceTime classes. + * For each data structure (ZoneInfo, ZoneEra, ZonePolicy, ZoneRule), there is a + * corresponding Broker wrapper class (ZoneInfoBroker, ZoneEraBroker, + * ZonePolicyBroker, ZoneRuleBroker). The Broker objects provide a semantically + * consistent API for the higher-level AceTime classes. * - * The various zoneinfo database files (e.g. zonedb, zonedbx, zonedbc) will - * use one of these persistence formats, as defined by infos.h. + * This database format is used by the zonedb files described as "complete" + * (e.g. zonedbc) because the high resolution format is required for some + * timezones before ~1980. * * See also DEVELOPER.md for an overview of the ZoneInfoXXX layer. */ @@ -36,7 +38,7 @@ class Print; namespace ace_time { /** - * Wrapper class so that the entire collection can be referenced as a singel + * Wrapper class so that the entire collection can be referenced as a single * template parameter. */ class ZoneInfoHigh { diff --git a/src/zoneinfo/ZoneInfoLow.h b/src/zoneinfo/ZoneInfoLow.h index 28cd527a7..94febd354 100644 --- a/src/zoneinfo/ZoneInfoLow.h +++ b/src/zoneinfo/ZoneInfoLow.h @@ -9,17 +9,22 @@ /** * @file ZoneInfoLow.h * - * Data structures describe the low resolution zoneinfo persistence format. It - * has a 1-minute resolution for AT, UNTIL, STDOFF; 15-minute resolution for DST - * offsets. The year fields use a 1-byte offset from a `baseYear` which gives a - * [-127,+126] range. + * The ZoneInfo, ZoneEra, ZonePolicy, and ZoneRule data structures in this file + * describe the low resolution zoneinfo persistence format. It has a 1-minute + * resolution for AT, UNTIL, STDOFF; 15-minute resolution for DST offsets. The + * year fields use a 1-byte offset from a `baseYear` which gives a [-127,+126] + * range. * - * The BrokersLow.h file provides an abtraction layer which converts these - * low-level fields into a semantically consistent API which can be used by the - * AceTime classes. + * For each data structure (ZoneInfo, ZoneEra, ZonePolicy, ZoneRule), there is a + * corresponding Broker wrapper class (ZoneInfoBroker, ZoneEraBroker, + * ZonePolicyBroker, ZoneRuleBroker). The Broker objects provide a semantically + * consistent API for the higher-level AceTime classes. * - * The various zoneinfo database files (e.g. zonedb, zonedbx, zonedbc) will - * use one of these persistence formats, as defined by infos.h. + * This database format is used by the zonedb files described as "basic" or + * "extended" (e.g. zonedb, zonedbx) because they encode timezone information + * after ~1980. It turns out that all timezones after 1980 can be encoded with a + * low-res time resolution because the transition rules happened only at certain + * multiples of one-minute or 15-minutes. * * See also DEVELOPER.md for an overview of the ZoneInfoXXX layer. */ @@ -35,6 +40,10 @@ class Print; namespace ace_time{ +/** + * Wrapper class so that the entire collection can be referenced as a single + * template parameter. + */ class ZoneInfoLow { public: diff --git a/src/zoneinfo/ZoneInfoMid.h b/src/zoneinfo/ZoneInfoMid.h index bf46bbffc..66db8b4a3 100644 --- a/src/zoneinfo/ZoneInfoMid.h +++ b/src/zoneinfo/ZoneInfoMid.h @@ -9,20 +9,22 @@ /** * @file ZoneInfoMid.h * - * Data structures that describe the mid resolution zoneinfo persistence format. - * It has a 1-minute resolution for AT, UNTIL, STDOFF; a 15-minute resolution - * for DST offset (similar to ZoneInfoLow). But it also uses 2-byte year fields - * supporting year range of `[-32767,32765]` (similar to ZoneInfoHigh). + * The ZoneInfo, ZoneEra, ZonePolicy, and ZoneRule data structures in this file + * describe the mid resolution zoneinfo persistence format. It has a 1-minute + * resolution for AT, UNTIL, STDOFF; a 15-minute resolution for DST offset + * (similar to ZoneInfoLow). But it also uses 2-byte year fields supporting year + * range of `[-32767,32765]` (similar to ZoneInfoHigh). * - * The BrokersMid.h file provides an abtraction layer which converts these - * low-level fields into a semantically consistent API which can be used by the - * AceTime classes. + * For each data structure (ZoneInfo, ZoneEra, ZonePolicy, ZoneRule), there is a + * corresponding Broker wrapper class (ZoneInfoBroker, ZoneEraBroker, + * ZonePolicyBroker, ZoneRuleBroker). The Broker objects provide a semantically + * consistent API for the higher-level AceTime classes. * - * The various zoneinfo database files (e.g. zonedb, zonedbx, zonedbc) will - * use one of these persistence formats, as defined by infos.h. (The - * ZoneInfoMid.h persistence format was used at some point during the - * development, but it is current *not* used by any of the zone*db database - * files.) + * There are current no zonedb files which uses the ZoneInfoMid classes. It was + * used at some point during development. This persistence format could support + * timezones very far back in the past (I can't remember how far back). But + * since it does not support 1-second resolution, it cannot support all + * timezones in the entire TZDB database. * * See also DEVELOPER.md for an overview of the ZoneInfoXXX layer. */ @@ -39,7 +41,7 @@ class Print; namespace ace_time { /** - * Wrapper class so that the entire collection can be referenced as a singel + * Wrapper class so that the entire collection can be referenced as a single * template parameter. */ class ZoneInfoMid { diff --git a/src/zoneinfo/infos.h b/src/zoneinfo/infos.h index c737981c0..fbec688d7 100644 --- a/src/zoneinfo/infos.h +++ b/src/zoneinfo/infos.h @@ -6,6 +6,21 @@ #ifndef ACE_TIME_INFOS_H #define ACE_TIME_INFOS_H +/** + * @file infos.h + * + * The low-level storage/broker formats are independent of the concrete + * ZoneProcessor classes (implementing a specific algorithm for determining DST + * transitions). There are 3 ZoneProcessors: BasicZoneProcessor, + * ExtendedZoneProcessor, and CompleteZoneProcessor. + * + * This file provides a mapping between those two layers: + * + * - BasicZoneProcessor -> ZoneInfoLow + * - ExtendedZoneProcessor -> ZoneInfoLow + * - CompleteZoneProcessor -> ZoneInfoHigh + */ + #include "ZoneInfoLow.h" #include "ZoneInfoMid.h" #include "ZoneInfoHigh.h" diff --git a/tests/BasicZoneProcessorTest/BasicZoneProcessorTest.ino b/tests/BasicZoneProcessorTest/BasicZoneProcessorTest.ino index 05555afc6..1e6f897c4 100644 --- a/tests/BasicZoneProcessorTest/BasicZoneProcessorTest.ino +++ b/tests/BasicZoneProcessorTest/BasicZoneProcessorTest.ino @@ -199,12 +199,12 @@ test(BasicZoneProcessorTest, init_primitives) { zoneProcessor.mTransitions[2].startEpochSeconds); } -test(BasicZoneProcessorTest, initForLocalDate) { +test(BasicZoneProcessorTest, initForPlainDate) { // Test using 2018-01-02. If we use 2018-01-01, the code will populate the // cache with transitions from 2017. BasicZoneProcessor zoneProcessor(&kZoneAmerica_Los_Angeles); - LocalDate ld = LocalDate::forComponents(2018, 1, 2); - bool ok = zoneProcessor.initForLocalDate(ld); + PlainDate pd = PlainDate::forComponents(2018, 1, 2); + bool ok = zoneProcessor.initForPlainDate(pd); assertTrue(ok); assertEqual(3, zoneProcessor.mNumTransitions); @@ -257,18 +257,18 @@ test(BasicZoneProcessorTest, initForLocalDate) { test(BasicZoneProcessorTest, setZoneKey) { BasicZoneProcessor zoneProcessor(&kZoneAmerica_Los_Angeles); - assertEqual(zoneProcessor.mYear, LocalDate::kInvalidYear); + assertEqual(zoneProcessor.mYear, PlainDate::kInvalidYear); zoneProcessor.initForEpochSeconds(0); - assertNotEqual(zoneProcessor.mYear, LocalDate::kInvalidYear); + assertNotEqual(zoneProcessor.mYear, PlainDate::kInvalidYear); zoneProcessor.setZoneKey((uintptr_t) &kZoneAustralia_Darwin); - assertEqual(zoneProcessor.mYear, LocalDate::kInvalidYear); + assertEqual(zoneProcessor.mYear, PlainDate::kInvalidYear); zoneProcessor.initForEpochSeconds(0); - assertNotEqual(zoneProcessor.mYear, LocalDate::kInvalidYear); + assertNotEqual(zoneProcessor.mYear, PlainDate::kInvalidYear); // Check that the cache remains valid if the zoneInfo does not change zoneProcessor.setZoneKey((uintptr_t) &kZoneAustralia_Darwin); - assertNotEqual(zoneProcessor.mYear, LocalDate::kInvalidYear); + assertNotEqual(zoneProcessor.mYear, PlainDate::kInvalidYear); } // https://www.timeanddate.com/time/zone/usa/los-angeles @@ -419,26 +419,26 @@ test(BasicZoneProcessorTest, findByEpochSeconds_outOfBounds) { assertEqual(Info::ZoneContext::kMaxUntilYear, zoneContextBroker.untilYearAccurate()); - // 1970 > LocalDate::kMinYear so we can create an OffsetDateTime. + // 1970 > PlainDate::kMinYear so we can create an OffsetDateTime. dt = OffsetDateTime::forComponents(1970, 3, 11, 1, 59, 59, TimeOffset::forHours(-8)); assertFalse(dt.isError()); // 1970 is less than 68 years (INT32_MAX seconds) away from // Epoch::currentEpochYear() of 2000 so toEpochSeconds() works. epochSeconds = dt.toEpochSeconds(); - assertNotEqual(epochSeconds, LocalDate::kInvalidEpochSeconds); + assertNotEqual(epochSeconds, PlainDate::kInvalidEpochSeconds); // FindResult still works, but since 1970 < startYearAccurate(), the // DST transitions may not be accurate. FindResult result = zoneProcessor.findByEpochSeconds(epochSeconds); assertEqual((int)result.type, (int)FindResult::kTypeExact); - // 10001 is beyond LocalDate::kMaxYear so should fail. + // 10001 is beyond PlainDate::kMaxYear so should fail. dt = OffsetDateTime::forComponents(10001, 2, 1, 1, 0, 0, TimeOffset::forHours(-8)); assertTrue(dt.isError()); // toEpochSeconds() returns invalid seconds epochSeconds = dt.toEpochSeconds(); - assertEqual(epochSeconds, LocalDate::kInvalidEpochSeconds); + assertEqual(epochSeconds, PlainDate::kInvalidEpochSeconds); // findByEpochSeconds() results NotFound for kInvalidEpochSeconds result = zoneProcessor.findByEpochSeconds(epochSeconds); assertEqual((int)result.type, (int)FindResult::kTypeNotFound); @@ -446,16 +446,16 @@ test(BasicZoneProcessorTest, findByEpochSeconds_outOfBounds) { //--------------------------------------------------------------------------- -// Test findByLocalDateTime(). Result can be kNotFound, kExact, or kGap. +// Test findByPlainDateTime(). Result can be kNotFound, kExact, or kGap. // BasicZoneProcessor cannot detect overlap so will never return kOverlap. -test(BasicZoneProcessorTest, findByLocalDateTime) { +test(BasicZoneProcessorTest, findByPlainDateTime) { BasicZoneProcessor zoneProcessor(&kZoneAmerica_Los_Angeles); OffsetDateTime dt; FindResult result; // way before spring forward - auto ldt = LocalDateTime::forComponents(2018, 3, 10, 1, 0, 0); - result = zoneProcessor.findByLocalDateTime(ldt); + auto pdt = PlainDateTime::forComponents(2018, 3, 10, 1, 0, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual((int)result.type, (int)FindResult::kTypeExact); assertEqual(-8*60*60, result.stdOffsetSeconds); assertEqual(0*60*60, result.dstOffsetSeconds); @@ -464,8 +464,8 @@ test(BasicZoneProcessorTest, findByLocalDateTime) { assertEqual("PST", result.abbrev); // just before spring forward - ldt = LocalDateTime::forComponents(2018, 3, 11, 1, 59, 59); - result = zoneProcessor.findByLocalDateTime(ldt); + pdt = PlainDateTime::forComponents(2018, 3, 11, 1, 59, 59); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual((int)result.type, (int)FindResult::kTypeExact); assertEqual(-8*60*60, result.stdOffsetSeconds); assertEqual(0*60*60, result.dstOffsetSeconds); @@ -474,8 +474,8 @@ test(BasicZoneProcessorTest, findByLocalDateTime) { assertEqual("PST", result.abbrev); // spring forward in the gap - ldt = LocalDateTime::forComponents(2018, 3, 11, 2, 0, 1); - result = zoneProcessor.findByLocalDateTime(ldt); + pdt = PlainDateTime::forComponents(2018, 3, 11, 2, 0, 1); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual((int)result.type, (int)FindResult::kTypeGap); assertEqual(-8*60*60, result.stdOffsetSeconds); assertEqual(1*60*60, result.dstOffsetSeconds); @@ -484,8 +484,8 @@ test(BasicZoneProcessorTest, findByLocalDateTime) { assertEqual("PDT", result.abbrev); // before fall back - ldt = LocalDateTime::forComponents(2018, 11, 4, 1, 0, 0); - result = zoneProcessor.findByLocalDateTime(ldt); + pdt = PlainDateTime::forComponents(2018, 11, 4, 1, 0, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual((int)result.type, (int)FindResult::kTypeExact); assertEqual(-8*60*60, result.stdOffsetSeconds); assertEqual(1*60*60, result.dstOffsetSeconds); @@ -494,8 +494,8 @@ test(BasicZoneProcessorTest, findByLocalDateTime) { assertEqual("PDT", result.abbrev); // just before fall back - ldt = LocalDateTime::forComponents(2018, 11, 4, 1, 59, 59); - result = zoneProcessor.findByLocalDateTime(ldt); + pdt = PlainDateTime::forComponents(2018, 11, 4, 1, 59, 59); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual((int)result.type, (int)FindResult::kTypeExact); assertEqual(-8*60*60, result.stdOffsetSeconds); assertEqual(1*60*60, result.dstOffsetSeconds); @@ -505,8 +505,8 @@ test(BasicZoneProcessorTest, findByLocalDateTime) { // fall back, so there is an overlap, but BasicZoneProcessor cannot detect it // so returns kExact, and selects the later of the 2 possible datetime. - ldt = LocalDateTime::forComponents(2018, 11, 4, 2, 0, 1); - result = zoneProcessor.findByLocalDateTime(ldt); + pdt = PlainDateTime::forComponents(2018, 11, 4, 2, 0, 1); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual((int)result.type, (int)FindResult::kTypeExact); assertEqual(-8*60*60, result.stdOffsetSeconds); assertEqual(0*60*60, result.dstOffsetSeconds); @@ -515,8 +515,8 @@ test(BasicZoneProcessorTest, findByLocalDateTime) { assertEqual("PST", result.abbrev); // two hours after fall back, no overlap - ldt = LocalDateTime::forComponents(2018, 11, 4, 3, 0, 0); - result = zoneProcessor.findByLocalDateTime(ldt); + pdt = PlainDateTime::forComponents(2018, 11, 4, 3, 0, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual((int)result.type, (int)FindResult::kTypeExact); assertEqual(-8*60*60, result.stdOffsetSeconds); assertEqual(0*60*60, result.dstOffsetSeconds); diff --git a/tests/EpochConvertersTest/EpochConvertersTest.ino b/tests/EpochConvertersTest/EpochConvertersTest.ino index 9b1672c95..b1cc942c4 100644 --- a/tests/EpochConvertersTest/EpochConvertersTest.ino +++ b/tests/EpochConvertersTest/EpochConvertersTest.ino @@ -6,7 +6,7 @@ using aunit::TestOnce; using aunit::TestRunner; -using ace_time::LocalDate; +using ace_time::PlainDate; using ace_time::EpochConverterJulian; using ace_time::EpochConverterHinnant; @@ -52,7 +52,7 @@ test(EpochConverterJulianTest, allDays) { yield(); // Prevent watch dog timer on ESP8266. #endif for (uint8_t month = 1; month <= 12; month++) { - uint8_t daysInMonth = LocalDate::daysInMonth(year, month); + uint8_t daysInMonth = PlainDate::daysInMonth(year, month); for (uint8_t day = 1; day <= daysInMonth; day++) { // Test toEpochDays() int32_t obsEpochDays = EpochConverterJulian::toEpochDays( @@ -97,7 +97,7 @@ test(EpochConverterHinnantTest, allDays) { yield(); // Prevent watch dog timer on ESP8266. #endif for (uint8_t month = 1; month <= 12; month++) { - uint8_t daysInMonth = LocalDate::daysInMonth(year, month); + uint8_t daysInMonth = PlainDate::daysInMonth(year, month); for (uint8_t day = 1; day <= daysInMonth; day++) { // Test toEpochDays() int32_t obsEpochDays = EpochConverterHinnant::toEpochDays( diff --git a/tests/ExtendedZoneProcessorTest/ExtendedZoneProcessorTest.ino b/tests/ExtendedZoneProcessorTest/ExtendedZoneProcessorTest.ino index 846304423..3b3f8d958 100644 --- a/tests/ExtendedZoneProcessorTest/ExtendedZoneProcessorTest.ino +++ b/tests/ExtendedZoneProcessorTest/ExtendedZoneProcessorTest.ino @@ -303,16 +303,16 @@ test(ExtendedZoneProcessorTest, getMostRecentPriorYear) { assertEqual(1999, year); year = ExtendedZoneProcessor::getMostRecentPriorYear(2003, 2005, 2000, 2002); - assertEqual(LocalDate::kInvalidYear, year); + assertEqual(PlainDate::kInvalidYear, year); year = ExtendedZoneProcessor::getMostRecentPriorYear(1998, 2000, 2000, 2002); assertEqual(1999, year); year = ExtendedZoneProcessor::getMostRecentPriorYear(2002, 2004, 2000, 2002); - assertEqual(LocalDate::kInvalidYear, year); + assertEqual(PlainDate::kInvalidYear, year); year = ExtendedZoneProcessor::getMostRecentPriorYear(2001, 2002, 2000, 2002); - assertEqual(LocalDate::kInvalidYear, year); + assertEqual(PlainDate::kInvalidYear, year); year = ExtendedZoneProcessor::getMostRecentPriorYear(199, 2003, 2000, 2002); assertEqual(1999, year); @@ -848,18 +848,18 @@ test(ExtendedZoneProcessorTest, fixTransitionTimes_generateStartUntilTimes) { test(ExtendedZoneProcessorTest, setZoneKey) { ExtendedZoneProcessor zoneProcessor(&kZoneAmerica_Los_Angeles); - assertEqual(zoneProcessor.mYear, LocalDate::kInvalidYear); + assertEqual(zoneProcessor.mYear, PlainDate::kInvalidYear); zoneProcessor.initForEpochSeconds(0); - assertNotEqual(zoneProcessor.mYear, LocalDate::kInvalidYear); + assertNotEqual(zoneProcessor.mYear, PlainDate::kInvalidYear); zoneProcessor.setZoneKey((uintptr_t) &kZoneAustralia_Darwin); - assertEqual(zoneProcessor.mYear, LocalDate::kInvalidYear); + assertEqual(zoneProcessor.mYear, PlainDate::kInvalidYear); zoneProcessor.initForEpochSeconds(0); - assertNotEqual(zoneProcessor.mYear, LocalDate::kInvalidYear); + assertNotEqual(zoneProcessor.mYear, PlainDate::kInvalidYear); // Check that the cache remains valid if the zoneInfo does not change zoneProcessor.setZoneKey((uintptr_t) &kZoneAustralia_Darwin); - assertNotEqual(zoneProcessor.mYear, LocalDate::kInvalidYear); + assertNotEqual(zoneProcessor.mYear, PlainDate::kInvalidYear); } test(ExtendedZoneProcessorTest, printNameTo) { @@ -882,7 +882,7 @@ test(ExtendedZoneProcessorTest, findByEpochSeconds) { acetime_t epochSeconds; FindResult result; - // 01:59:59 just before spring forward + // 01:59:59 just before gap dt = OffsetDateTime::forComponents(2018, 3, 11, 1, 59, 59, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); @@ -908,7 +908,7 @@ test(ExtendedZoneProcessorTest, findByEpochSeconds) { assertEqual(1*60*60, result.reqDstOffsetSeconds); assertEqual("PDT", result.abbrev); - // 01:00 before fall back, overlap, first occurrence + // 01:00 before overlap dt = OffsetDateTime::forComponents(2018, 11, 4, 1, 0, 0, TimeOffset::forHours(-7)); epochSeconds = dt.toEpochSeconds(); @@ -921,7 +921,7 @@ test(ExtendedZoneProcessorTest, findByEpochSeconds) { assertEqual(1*60*60, result.reqDstOffsetSeconds); assertEqual("PDT", result.abbrev); - // 01:59 just before fall back, overlap, first occurrence + // 01:59 within overlap, first occurrence dt = OffsetDateTime::forComponents(2018, 11, 4, 1, 59, 0, TimeOffset::forHours(-7)); epochSeconds = dt.toEpochSeconds(); @@ -960,7 +960,7 @@ test(ExtendedZoneProcessorTest, findByEpochSeconds) { assertEqual(0*60*60, result.reqDstOffsetSeconds); assertEqual("PST", result.abbrev); - // 03:00 an hour after fall back, no overlap + // 03:00 an hour after overlap dt = OffsetDateTime::forComponents(2018, 11, 4, 3, 0, 0, TimeOffset::forHours(-7)); epochSeconds = dt.toEpochSeconds(); @@ -987,27 +987,27 @@ test(ExtendedZoneProcessorTest, findByEpochSeconds_outOfBounds) { assertEqual(Info::ZoneContext::kMaxUntilYear, zoneContextBroker.untilYearAccurate()); - // 1970 > LocalDate::kMinYear so we can create an OffsetDateTime. + // 1970 > PlainDate::kMinYear so we can create an OffsetDateTime. dt = OffsetDateTime::forComponents(1970, 3, 11, 1, 59, 59, TimeOffset::forHours(-8)); assertFalse(dt.isError()); // 1970 is less than 68 years (INT32_MAX seconds) away from // Epoch::currentEpochYear() of 2000 so toEpochSeconds() still works. epochSeconds = dt.toEpochSeconds(); - assertNotEqual(epochSeconds, LocalDate::kInvalidEpochSeconds); + assertNotEqual(epochSeconds, PlainDate::kInvalidEpochSeconds); // FindResult still works, but since 1970 < startYearAccurate(), the // DST transitions may not be accurate. FindResult result = zoneProcessor.findByEpochSeconds(epochSeconds); assertEqual(result.type, FindResult::kTypeExact); - // 10001 is beyond LocalDate::kMaxYear so should fail. + // 10001 is beyond PlainDate::kMaxYear so should fail. dt = OffsetDateTime::forComponents(10001, 2, 1, 1, 0, 0, TimeOffset::forHours(-8)); - // 10001 > LocalDate::kMaxYear, so fails + // 10001 > PlainDate::kMaxYear, so fails assertTrue(dt.isError()); // toEpochSeconds() returns invalid seconds epochSeconds = dt.toEpochSeconds(); - assertEqual(epochSeconds, LocalDate::kInvalidEpochSeconds); + assertEqual(epochSeconds, PlainDate::kInvalidEpochSeconds); // findByEpochSeconds() results NotFound for kInvalidEpochSeconds result = zoneProcessor.findByEpochSeconds(epochSeconds); assertEqual(result.type, FindResult::kTypeNotFound); @@ -1015,16 +1015,16 @@ test(ExtendedZoneProcessorTest, findByEpochSeconds_outOfBounds) { //--------------------------------------------------------------------------- -// Test that getOffsetDateTime(const LocalDateTime&) handles fold parameter +// Test that getOffsetDateTime(const PlainDateTime&) handles fold parameter // correctly. -test(ExtendedZoneProcessorTest, findByLocalDateTime) { +test(ExtendedZoneProcessorTest, findByPlainDateTime) { ExtendedZoneProcessor zoneProcessor(&kZoneAmerica_Los_Angeles); FindResult result; - LocalDateTime ldt; + PlainDateTime pdt; // 01:59, before spring forward - ldt = LocalDateTime::forComponents(2022, 3, 13, 1, 59, 0, 0 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); + pdt = PlainDateTime::forComponents(2022, 3, 13, 1, 59, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual(result.type, FindResult::kTypeExact); assertEqual(result.fold, 0); assertEqual(-8*60*60, result.stdOffsetSeconds); @@ -1033,9 +1033,9 @@ test(ExtendedZoneProcessorTest, findByLocalDateTime) { assertEqual(0*60*60, result.reqDstOffsetSeconds); assertEqual("PST", result.abbrev); - // 02:00, in gap, fold=0 transition normalizes to 03:00-07:00 - ldt = LocalDateTime::forComponents(2022, 3, 13, 2, 0, 0, 0 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); + // 02:00, in gap, select later to 03:00-07:00 + pdt = PlainDateTime::forComponents(2022, 3, 13, 2, 0, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual(result.type, FindResult::kTypeGap); assertEqual(result.fold, 0); assertEqual(-8*60*60, result.stdOffsetSeconds); @@ -1044,21 +1044,20 @@ test(ExtendedZoneProcessorTest, findByLocalDateTime) { assertEqual(0*60*60, result.reqDstOffsetSeconds); assertEqual("PDT", result.abbrev); - // 02:00, in gap, fold=1 normalizes to 01:00-08:00 - ldt = LocalDateTime::forComponents(2022, 3, 13, 2, 0, 0, 1 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); + // 02:00, in gap, select earlier 01:00-08:00 + pdt = PlainDateTime::forComponents(2022, 3, 13, 2, 0, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kReversed); assertEqual(result.type, FindResult::kTypeGap); - assertEqual(result.fold, 0); + assertEqual(result.fold, 1); assertEqual(-8*60*60, result.stdOffsetSeconds); assertEqual(0*60*60, result.dstOffsetSeconds); assertEqual(-8*60*60, result.reqStdOffsetSeconds); assertEqual(1*60*60, result.reqDstOffsetSeconds); assertEqual("PST", result.abbrev); - // 02:29 in gap, fold=0 uses -08:00 to convert to epochSeconds, then - // normalizes to -07:00. - ldt = LocalDateTime::forComponents(2022, 3, 13, 2, 29, 0, 0 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); + // 02:29 in gap, select later which normalizes to -07:00. + pdt = PlainDateTime::forComponents(2022, 3, 13, 2, 29, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual(result.type, FindResult::kTypeGap); assertEqual(result.fold, 0); assertEqual(-8*60*60, result.stdOffsetSeconds); @@ -1067,21 +1066,20 @@ test(ExtendedZoneProcessorTest, findByLocalDateTime) { assertEqual(0*60*60, result.reqDstOffsetSeconds); assertEqual("PDT", result.abbrev); - // 02:29 in gap, fold==1 uses -07:00 to convert to epochSeconds, then - // normalizes to -08:00 - ldt = LocalDateTime::forComponents(2022, 3, 13, 2, 29, 0, 1 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); + // 02:29 in gap, select earlier which normalizes to -08:00 + pdt = PlainDateTime::forComponents(2022, 3, 13, 2, 29, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kReversed); assertEqual(result.type, FindResult::kTypeGap); - assertEqual(result.fold, 0); + assertEqual(result.fold, 1); assertEqual(-8*60*60, result.stdOffsetSeconds); assertEqual(0*60*60, result.dstOffsetSeconds); assertEqual(-8*60*60, result.reqStdOffsetSeconds); assertEqual(1*60*60, result.reqDstOffsetSeconds); assertEqual("PST", result.abbrev); - // 00:59, before fall back, before any overlap - ldt = LocalDateTime::forComponents(2022, 11, 6, 0, 59, 0, 0 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); + // 00:59, before any overlap + pdt = PlainDateTime::forComponents(2022, 11, 6, 0, 59, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual(result.type, FindResult::kTypeExact); assertEqual(result.fold, 0); assertEqual(-8*60*60, result.stdOffsetSeconds); @@ -1090,9 +1088,9 @@ test(ExtendedZoneProcessorTest, findByLocalDateTime) { assertEqual(1*60*60, result.reqDstOffsetSeconds); assertEqual("PDT", result.abbrev); - // 01:00, after fall back, overlap, select first - ldt = LocalDateTime::forComponents(2022, 11, 6, 1, 0, 0, 0 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); + // 01:00, in overlap, select earlier + pdt = PlainDateTime::forComponents(2022, 11, 6, 1, 0, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual(result.type, FindResult::kTypeOverlap); assertEqual(result.fold, 0); assertEqual(-8*60*60, result.stdOffsetSeconds); @@ -1101,9 +1099,9 @@ test(ExtendedZoneProcessorTest, findByLocalDateTime) { assertEqual(1*60*60, result.reqDstOffsetSeconds); assertEqual("PDT", result.abbrev); - // 01:00, overlap, select second - ldt = LocalDateTime::forComponents(2022, 11, 6, 1, 0, 0, 1 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); + // 01:00, in overlap, select later + pdt = PlainDateTime::forComponents(2022, 11, 6, 1, 0, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kReversed); assertEqual(result.type, FindResult::kTypeOverlap); assertEqual(result.fold, 1); assertEqual(-8*60*60, result.stdOffsetSeconds); @@ -1112,9 +1110,9 @@ test(ExtendedZoneProcessorTest, findByLocalDateTime) { assertEqual(0*60*60, result.reqDstOffsetSeconds); assertEqual("PST", result.abbrev); - // 01:29, fold=0, before fall back, in overlap, select first - ldt = LocalDateTime::forComponents(2022, 11, 6, 1, 29, 0, 0 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); + // 01:29, in overlap, select earlier + pdt = PlainDateTime::forComponents(2022, 11, 6, 1, 29, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kEarlier); assertEqual(result.type, FindResult::kTypeOverlap); assertEqual(result.fold, 0); assertEqual(-8*60*60, result.stdOffsetSeconds); @@ -1123,20 +1121,20 @@ test(ExtendedZoneProcessorTest, findByLocalDateTime) { assertEqual(1*60*60, result.reqDstOffsetSeconds); assertEqual("PDT", result.abbrev); - // 01:29, fold=1, after fall back, in overlap, select second - ldt = LocalDateTime::forComponents(2022, 11, 6, 1, 29, 0, 1 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); - assertEqual(result.fold, 1); + // 01:29, in overlap, select later + pdt = PlainDateTime::forComponents(2022, 11, 6, 1, 29, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kLater); assertEqual(result.type, FindResult::kTypeOverlap); + assertEqual(result.fold, 1); assertEqual(-8*60*60, result.stdOffsetSeconds); assertEqual(0*60*60, result.dstOffsetSeconds); assertEqual(-8*60*60, result.reqStdOffsetSeconds); assertEqual(0*60*60, result.reqDstOffsetSeconds); assertEqual("PST", result.abbrev); - // 02:00, after fall back, should be no overlap because it occurs only once - ldt = LocalDateTime::forComponents(2022, 11, 6, 2, 0, 0, 0 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); + // 02:00, after overlap + pdt = PlainDateTime::forComponents(2022, 11, 6, 2, 0, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual(result.type, FindResult::kTypeExact); assertEqual(result.fold, 0); assertEqual(-8*60*60, result.stdOffsetSeconds); @@ -1145,9 +1143,9 @@ test(ExtendedZoneProcessorTest, findByLocalDateTime) { assertEqual(0*60*60, result.reqDstOffsetSeconds); assertEqual("PST", result.abbrev); - // 02:30, way after fall back, no overlap - ldt = LocalDateTime::forComponents(2022, 11, 6, 2, 30, 0, 0 /*fold*/); - result = zoneProcessor.findByLocalDateTime(ldt); + // 02:30, after overlap + pdt = PlainDateTime::forComponents(2022, 11, 6, 2, 30, 0); + result = zoneProcessor.findByPlainDateTime(pdt, Disambiguate::kCompatible); assertEqual(result.type, FindResult::kTypeExact); assertEqual(result.fold, 0); assertEqual(-8*60*60, result.stdOffsetSeconds); diff --git a/tests/LocalDateTest/LocalDateTest.ino b/tests/LocalDateTest/LocalDateTest.ino deleted file mode 100644 index b8ce0339f..000000000 --- a/tests/LocalDateTest/LocalDateTest.ino +++ /dev/null @@ -1,610 +0,0 @@ -#line 2 "LocalDateTest.ino" - -#include -#include -#include - -using namespace ace_time; -using ace_time::basic::Info; - -//--------------------------------------------------------------------------- -// LocalDate -//--------------------------------------------------------------------------- - -test(LocalDateTest, year_limits) { - assertLess(LocalDate::kInvalidYear, LocalDate::kMinYear); - assertLess(LocalDate::kInvalidYear, Info::ZoneContext::kMinYear); - assertLess(LocalDate::kInvalidYear, Info::ZoneContext::kMinYear); - - assertLess(LocalDate::kMinYear, LocalDate::kMaxYear); - assertLess(LocalDate::kMinYear, LocalDate::kMaxYear); - - assertLess(Info::ZoneContext::kMinYear, Info::ZoneContext::kMaxYear); - assertLess(Info::ZoneContext::kMinYear, Info::ZoneContext::kMaxYear); - - assertLess(Info::ZoneContext::kMaxYear, Info::ZoneContext::kMaxUntilYear); - assertLess(Info::ZoneContext::kMaxYear, Info::ZoneContext::kMaxUntilYear); - - // LocalDate limits must be within the Info::ZoneContext limits - assertMore(LocalDate::kMinYear, Info::ZoneContext::kMinYear); - assertLess(LocalDate::kMaxYear, Info::ZoneContext::kMaxYear); -} - -test(LocalDateTest, year_range) { - // Not valid - assertTrue(LocalDate::forComponents(INT16_MIN, 1, 1).isError()); - assertTrue(LocalDate::forComponents(-1, 1, 1).isError()); - - // kMinYear allowed - assertFalse(LocalDate::forComponents(0, 1, 1).isError()); - - // first valid year allowed - assertFalse(LocalDate::forComponents(1, 1, 1).isError()); - - // largest valid FROM or TO year ("max"), allowed - assertFalse(LocalDate::forComponents(9999, 1, 1).isError()); - - // largest valid UNTIL year ("-"), allowed, kMaxYear - assertFalse(LocalDate::forComponents(10000, 1, 1).isError()); - - // Not valid - assertTrue(LocalDate::forComponents(LocalDate::kMaxYear + 1, 1, 1).isError()); - assertTrue(LocalDate::forComponents(INT16_MAX, 1, 1).isError()); -} - -test(LocalDateTest, month_range) { - assertTrue(LocalDate::forComponents(2000, 0, 1).isError()); - assertTrue(LocalDate::forComponents(2000, 13, 1).isError()); -} - -test(LocalDateTest, day_range) { - assertTrue(LocalDate::forComponents(2000, 1, 0).isError()); - assertTrue(LocalDate::forComponents(2000, 1, 32).isError()); -} - -test(LocalDateTest, accessors) { - LocalDate ld = LocalDate::forComponents(2001, 2, 3); - assertEqual((int16_t) 2001, ld.year()); - assertEqual(2, ld.month()); - assertEqual(3, ld.day()); -} - -// Verify that toEpochDays()/forEpochDays() and -// toEpochSeconds()/forEpochSeconds() support round trip conversions when when -// isError()==true. -test(LocalDateTest, forError_roundTrip) { - LocalDate ld; - - ld = LocalDate::forError(); - assertTrue(ld.isError()); - assertEqual(LocalDate::kInvalidEpochDays, ld.toEpochDays()); - assertEqual(LocalDate::kInvalidEpochSeconds, ld.toEpochSeconds()); - - ld = LocalDate::forEpochDays(LocalDate::kInvalidEpochDays); - assertTrue(ld.isError()); - - ld = LocalDate::forEpochSeconds(LocalDate::kInvalidEpochSeconds); - assertTrue(ld.isError()); -} - -test(LocalDateTest, dayOfWeek) { - // year 1900 (not leap year due to every 100 rule) - assertEqual(LocalDate::kWednesday, - LocalDate::forComponents(1900, 2, 28).dayOfWeek()); - assertEqual(LocalDate::kThursday, - LocalDate::forComponents(1900, 3, 1).dayOfWeek()); - - // year 1999 was not a leap year - assertEqual(LocalDate::kFriday, - LocalDate::forComponents(1999, 1, 1).dayOfWeek()); - assertEqual(LocalDate::kSunday, - LocalDate::forComponents(1999, 1, 31).dayOfWeek()); - - // year 2000 (leap year due to every 400 rule) - assertEqual(LocalDate::kSaturday, - LocalDate::forComponents(2000, 1, 1).dayOfWeek()); - assertEqual(LocalDate::kMonday, - LocalDate::forComponents(2000, 1, 31).dayOfWeek()); - - assertEqual(LocalDate::kTuesday, - LocalDate::forComponents(2000, 2, 1).dayOfWeek()); - assertEqual(LocalDate::kTuesday, - LocalDate::forComponents(2000, 2, 29).dayOfWeek()); - - assertEqual(LocalDate::kWednesday, - LocalDate::forComponents(2000, 3, 1).dayOfWeek()); - assertEqual(LocalDate::kFriday, - LocalDate::forComponents(2000, 3, 31).dayOfWeek()); - - assertEqual(LocalDate::kSaturday, - LocalDate::forComponents(2000, 4, 1).dayOfWeek()); - assertEqual(LocalDate::kSunday, - LocalDate::forComponents(2000, 4, 30).dayOfWeek()); - - assertEqual(LocalDate::kMonday, - LocalDate::forComponents(2000, 5, 1).dayOfWeek()); - assertEqual(LocalDate::kWednesday, - LocalDate::forComponents(2000, 5, 31).dayOfWeek()); - - assertEqual(LocalDate::kThursday, - LocalDate::forComponents(2000, 6, 1).dayOfWeek()); - assertEqual(LocalDate::kFriday, - LocalDate::forComponents(2000, 6, 30).dayOfWeek()); - - assertEqual(LocalDate::kSaturday, - LocalDate::forComponents(2000, 7, 1).dayOfWeek()); - assertEqual(LocalDate::kMonday, - LocalDate::forComponents(2000, 7, 31).dayOfWeek()); - - assertEqual(LocalDate::kTuesday, - LocalDate::forComponents(2000, 8, 1).dayOfWeek()); - assertEqual(LocalDate::kThursday, - LocalDate::forComponents(2000, 8, 31).dayOfWeek()); - - assertEqual(LocalDate::kFriday, - LocalDate::forComponents(2000, 9, 1).dayOfWeek()); - assertEqual(LocalDate::kSaturday, - LocalDate::forComponents(2000, 9, 30).dayOfWeek()); - - assertEqual(LocalDate::kSunday, - LocalDate::forComponents(2000, 10, 1).dayOfWeek()); - assertEqual(LocalDate::kTuesday, - LocalDate::forComponents(2000, 10, 31).dayOfWeek()); - - assertEqual(LocalDate::kWednesday, - LocalDate::forComponents(2000, 11, 1).dayOfWeek()); - assertEqual(LocalDate::kThursday, - LocalDate::forComponents(2000, 11, 30).dayOfWeek()); - - assertEqual(LocalDate::kFriday, - LocalDate::forComponents(2000, 12, 1).dayOfWeek()); - assertEqual(LocalDate::kSunday, - LocalDate::forComponents(2000, 12, 31).dayOfWeek()); - - // year 2001 - assertEqual(LocalDate::kMonday, - LocalDate::forComponents(2001, 1, 1).dayOfWeek()); - assertEqual(LocalDate::kWednesday, - LocalDate::forComponents(2001, 1, 31).dayOfWeek()); - - // year 2004 (leap year) - assertEqual(LocalDate::kSunday, - LocalDate::forComponents(2004, 2, 1).dayOfWeek()); - assertEqual(LocalDate::kSunday, - LocalDate::forComponents(2004, 2, 29).dayOfWeek()); - assertEqual(LocalDate::kMonday, - LocalDate::forComponents(2004, 3, 1).dayOfWeek()); - - // year 2099 - assertEqual(LocalDate::kThursday, - LocalDate::forComponents(2099, 1, 1).dayOfWeek()); - assertEqual(LocalDate::kThursday, - LocalDate::forComponents(2099, 12, 31).dayOfWeek()); - - // year 2100 (not leap year due to every 100 rule) - assertEqual(LocalDate::kSunday, - LocalDate::forComponents(2100, 2, 28).dayOfWeek()); - assertEqual(LocalDate::kMonday, - LocalDate::forComponents(2100, 3, 1).dayOfWeek()); -} - -test(LocalDateTest, toAndFromEpochDays) { - // Change current epoch year to 2050, making the epoch 2100-01-01T00:00:00. - testing::EpochYearContext context(2000); - - LocalDate ld; - - // Smallest LocalDate in our 16-bit implementation is 0001-01-01 - ld = LocalDate::forComponents(1, 1, 1); - int32_t epoch1 = (int32_t) ((0 - 2000) / 400) * 146097 + 366; - assertEqual(epoch1, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(epoch1)); - - // Smallest LocalDate in an 8-bit implementation - ld = LocalDate::forComponents(1873, 1, 1); - assertEqual((int32_t) -46385, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(-46385)); - - ld = LocalDate::forComponents(1900, 1, 1); - assertEqual((int32_t) -36524, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(-36524)); - - // Smallest date using int32_t seconds from AceTime epoch - ld = LocalDate::forComponents(1931, 12, 14); - assertEqual((int32_t) -24855, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(-24855)); - - // AceTime v1 hardcoded epoch - ld = LocalDate::forComponents(2000, 1, 1); - assertEqual((int32_t) 0, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(0)); - - ld = LocalDate::forComponents(2000, 2, 29); - assertEqual((int32_t) 59, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(59)); - - ld = LocalDate::forComponents(2018, 1, 1); - assertEqual((int32_t) 6575, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(6575)); - - // AceTime v2 default epoch - ld = LocalDate::forComponents(2050, 1, 1); - assertEqual((int32_t) 18263, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(18263)); - - // Largest date using int32_t seconds from AceTime epoch - ld = LocalDate::forComponents(2068, 1, 19); - assertEqual((int32_t) 24855, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(24855)); - - // Largest LocalDate in an 8-bit implementation - ld = LocalDate::forComponents(2127, 12, 31); - assertEqual((int32_t) 46750, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(46750)); - - // Largest LocalDate in our 16-bit implementation is 9999-12-31 - ld = LocalDate::forComponents(9999, 12, 31); - const int32_t epochDays9999 = (int32_t) ((10000 - 2000) / 400) * 146097 - 1; - assertEqual(epochDays9999, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(epochDays9999)); -} - -// Change currentEpochYear to a different value. -test(LocalDateTest, toAndFromEpochDays_epoch2050) { - // Change current epoch year to 2050, making the epoch 2100-01-01T00:00:00. - testing::EpochYearContext context(2050); - - // Verify lower and upper valid year limits. - assertEqual(Epoch::epochValidYearLower(), 2000); - assertEqual(Epoch::epochValidYearUpper(), 2100); - - // Verify that 2050-01-01 returns epoch days of 0 - LocalDate ld = LocalDate::forComponents(2050, 1, 1); - assertEqual((int32_t) 0, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(0)); - - // Verify the smallest LocalDate. The smallest valid epochseconds is - // (INT32_MIN+1) because INT32_MIN is a sentinel for an Error condition. - // The complicated expression below is an integer division of a negative - // number that truncates towards -Infinity. - ld = LocalDate::forComponents(1981, 12, 13); - int32_t smallestEpochDays = (LocalDate::kMinEpochSeconds + 1) / 86400 - 1; - assertEqual(smallestEpochDays, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(smallestEpochDays)); - - // Verify the largest LocalDate. - ld = LocalDate::forComponents(2118, 1, 20); - int32_t largestEpochDays = LocalDate::kMaxEpochSeconds / 86400; - assertEqual(largestEpochDays, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(largestEpochDays)); -} - -// Change currentEpochYear to a different value. -test(LocalDateTest, toAndFromEpochDays_epoch2100) { - // Change current epoch year to 2100, so the epoch becomes - // 2100-01-01T00:00:00. - testing::EpochYearContext context(2100); - - // Verify lower and upper valid year limits. - assertEqual(Epoch::epochValidYearLower(), 2050); - assertEqual(Epoch::epochValidYearUpper(), 2150); - - // Verify that 2100-01-01 returns epoch days of 0 - LocalDate ld = LocalDate::forComponents(2100, 1, 1); - assertEqual((int32_t) 0, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(0)); - - // Verify the smallest LocalDate. The smallest valid epochseconds is - // (INT32_MIN+1) because INT32_MIN is a sentinel for an Error condition. - // The complicated expression below is an integer division of a negative - // number that truncates towards -Infinity. - ld = LocalDate::forComponents(2031, 12, 13); - int32_t smallestEpochDays = (LocalDate::kMinEpochSeconds + 1) / 86400 - 1; - assertEqual(smallestEpochDays, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(smallestEpochDays)); - - // Verify the largest LocalDate. - ld = LocalDate::forComponents(2168, 1, 20); - int32_t largestEpochDays = LocalDate::kMaxEpochSeconds / 86400; - assertEqual(largestEpochDays, ld.toEpochDays()); - assertTrue(ld == LocalDate::forEpochDays(largestEpochDays)); -} - -// Same as toAndFromEpochDays, shifted 30 years -test(LocalDateTest, toAndFromUnixDays) { - LocalDate ld; - - // Smallest LocalDate in an 8-bit implementation - ld = LocalDate::forComponents(1873, 1, 1); - assertEqual((int32_t) -35428, ld.toUnixDays()); - assertTrue(ld == LocalDate::forUnixDays(-35428)); - - // Smallest date using int32_t from Unix epoch - ld = LocalDate::forComponents(1901, 12, 14); - assertEqual((int32_t) -24855, ld.toUnixDays()); - assertTrue(ld == LocalDate::forUnixDays(-24855)); - - // Unix Epoch - ld = LocalDate::forComponents(1970, 1, 1); - assertEqual((int32_t) 0, ld.toUnixDays()); - assertTrue(ld == LocalDate::forUnixDays(0)); - - // 1970 is not a leap year, whereas 2000 is a leap year - ld = LocalDate::forComponents(1970, 2, 28); - assertEqual((int32_t) 58, ld.toUnixDays()); - assertTrue(ld == LocalDate::forUnixDays(58)); - - ld = LocalDate::forComponents(1988, 1, 1); - assertEqual((int32_t) 6574, ld.toUnixDays()); - assertTrue(ld == LocalDate::forUnixDays(6574)); - - // Largest date using int32_t from Unix epoch - ld = LocalDate::forComponents(2038, 1, 19); - assertEqual((int32_t) 24855, ld.toUnixDays()); - assertTrue(ld == LocalDate::forUnixDays(24855)); - - // Largest LocalDate in an 8-bit implementation - ld = LocalDate::forComponents(2127, 12, 31); - assertEqual((int32_t) 57707, ld.toUnixDays()); - assertTrue(ld == LocalDate::forUnixDays(57707)); -} - -test(LocalDateTest, toAndFromEpochSeconds) { - testing::EpochYearContext context(2000); - LocalDate ld; - - // Smallest date with an int32_t seconds from AceTime Epoch is 1931-12-13 - // 20:45:52. The forEpochSeconds() will correctly truncate the partial day - // *down* towards the to the nearest whole day. - ld = LocalDate::forComponents(1931, 12, 13); - assertTrue(ld == LocalDate::forEpochSeconds(INT32_MIN + 1)); - - // The smallest whole day that can be represented with an int32_t seconds from - // AceTime Epoch is 1931-12-14. - ld = LocalDate::forComponents(1931, 12, 14); - assertEqual((acetime_t) -24855 * 86400, ld.toEpochSeconds()); - assertTrue(ld == LocalDate::forEpochSeconds((acetime_t) -24855 * 86400)); - - ld = LocalDate::forComponents(2000, 1, 1); - assertEqual((acetime_t) 0, ld.toEpochSeconds()); - assertTrue(ld == LocalDate::forEpochSeconds(0)); - - ld = LocalDate::forComponents(2000, 2, 29); - assertEqual((acetime_t) 59 * 86400, ld.toEpochSeconds()); - assertTrue(ld == LocalDate::forEpochSeconds((acetime_t) 59 * 86400 + 1)); - - ld = LocalDate::forComponents(2018, 1, 1); - assertEqual((acetime_t) 6575 * 86400, ld.toEpochSeconds()); - assertTrue(ld == LocalDate::forEpochSeconds((acetime_t) 6575 * 86400 + 2)); - - // Largest date possible using AceTime Epoch Seconds is 2068-01-19 03:14:07. - ld = LocalDate::forComponents(2068, 1, 19); - assertEqual((acetime_t) 24855 * 86400, ld.toEpochSeconds()); - assertTrue(ld == LocalDate::forEpochSeconds( - (acetime_t) 24855 * 86400 + 11647)); -} - -test(LocalDateTest, toAndFromUnixSeconds64) { - testing::EpochYearContext context(2000); - LocalDate ld; - - // Verify error sentinel. - ld = LocalDate::forUnixSeconds64(LocalDate::kInvalidUnixSeconds64); - assertTrue(ld.isError()); - - // Verify that 64-bit unixSeconds allows dates beyond 32-bit limit. - // 1770 to 1970 is 200 years == 200 * 365 + (200/4) leap years - 2 (1800, 1900 - // are not leap) == 73048 days - ld = LocalDate::forComponents(1770, 1, 1); - assertEqual((int64_t) -73048 * 86400, ld.toUnixSeconds64()); - assertTrue(ld == LocalDate::forUnixSeconds64((int64_t) -73048 * 86400)); - - // The smallest whole day that can be represented with an int32_t from AceTime - // epoch is 1931-12-14, can't do better with unixSeconds since it uses - // the Acetime seconds internally. - ld = LocalDate::forComponents(1931, 12, 14); - assertEqual((int64_t) -13898 * 86400, ld.toUnixSeconds64()); - assertTrue(ld == LocalDate::forUnixSeconds64((int64_t) -13898 * 86400)); - - ld = LocalDate::forComponents(1970, 1, 1); - assertEqual((int64_t) 0, ld.toUnixSeconds64()); - assertTrue(ld == LocalDate::forUnixSeconds64(0)); - - // one second after should make no difference due to truncation - ld = LocalDate::forComponents(1970, 1, 1); - assertEqual((int64_t) 0, ld.toUnixSeconds64()); - assertTrue(ld == LocalDate::forUnixSeconds64(0)); - - ld = LocalDate::forComponents(1970, 2, 28); - assertEqual((int64_t) 58 * 86400, ld.toUnixSeconds64()); - assertTrue(ld == LocalDate::forUnixSeconds64((int64_t) 58 * 86400)); - - ld = LocalDate::forComponents(1988, 1, 1); - assertEqual((int64_t) 6574 * 86400, ld.toUnixSeconds64()); - assertTrue(ld == LocalDate::forUnixSeconds64((int64_t) 6574 * 86400)); - - // Largest date possible using Unix Seconds is 2038-01-19 03:14:07. - ld = LocalDate::forComponents(2038, 1, 19); - assertEqual((int64_t) 24855 * 86400, ld.toUnixSeconds64()); - assertTrue(ld == LocalDate::forUnixSeconds64((int64_t) INT32_MAX)); - - // One day after the largest 32-bit dates should work in 64-bits. - ld = LocalDate::forComponents(2038, 1, 20); - assertEqual((int64_t) 24856 * 86400, ld.toUnixSeconds64()); - assertTrue(ld == LocalDate::forUnixSeconds64((int64_t) 24856 * 86400)); - - // Verify that year 2068 works just fine with 64-bit unix seconds. - ld = LocalDate::forComponents(2068, 1, 19); - assertEqual((int64_t) 35812 * 86400, ld.toUnixSeconds64()); - assertTrue(ld == LocalDate::forUnixSeconds64((int64_t) 35812 * 86400)); - - // Verify that year 2170 works just fine with 64-bit unix seconds. - // 200 years = 73049 days, instead of 73048 days, because 2000 was a leap - // year. - ld = LocalDate::forComponents(2170, 1, 1); - assertEqual((int64_t) 73049 * 86400, ld.toUnixSeconds64()); - assertTrue(ld == LocalDate::forUnixSeconds64((int64_t) 73049 * 86400 + 2)); -} - -test(LocalDateTest, compareTo) { - LocalDate a, b; - - a = LocalDate::forComponents(2000, 1, 1); - b = LocalDate::forComponents(2000, 1, 1); - assertEqual(a.compareTo(b), 0); - assertTrue(a == b); - assertFalse(a != b); - - a = LocalDate::forComponents(2000, 1, 1); - b = LocalDate::forComponents(2000, 1, 2); - assertLess(a.compareTo(b), 0); - assertMore(b.compareTo(a), 0); - assertTrue(a != b); - - a = LocalDate::forComponents(2000, 1, 1); - b = LocalDate::forComponents(2000, 2, 1); - assertLess(a.compareTo(b), 0); - assertMore(b.compareTo(a), 0); - assertTrue(a != b); - - a = LocalDate::forComponents(2000, 1, 1); - b = LocalDate::forComponents(2001, 1, 1); - assertLess(a.compareTo(b), 0); - assertMore(b.compareTo(a), 0); - assertTrue(a != b); -} - -test(LocalDateTest, forDateString) { - LocalDate ld; - ld = LocalDate::forDateString("2000-01-01"); - assertTrue(ld == LocalDate::forComponents(2000, 1, 1)); - - ld = LocalDate::forDateString("2099-02-28"); - assertTrue(ld == LocalDate::forComponents(2099, 2, 28)); - - ld = LocalDate::forDateString("2127-12-31"); - assertTrue(ld == LocalDate::forComponents(2127, 12, 31)); -} - -test(LocalDateTest, forDateString_invalid) { - LocalDate ld = LocalDate::forDateString("2000-01"); - assertTrue(ld.isError()); -} - -test(LocalDateTest, isLeapYear) { - assertFalse(LocalDate::isLeapYear(1900)); - assertTrue(LocalDate::isLeapYear(2000)); - assertFalse(LocalDate::isLeapYear(2001)); - assertTrue(LocalDate::isLeapYear(2004)); - assertFalse(LocalDate::isLeapYear(2100)); -} - -test(LocalDateTest, daysInMonth) { - assertEqual(31, LocalDate::daysInMonth(2000, 1)); - assertEqual(29, LocalDate::daysInMonth(2000, 2)); - assertEqual(31, LocalDate::daysInMonth(2000, 3)); - assertEqual(30, LocalDate::daysInMonth(2000, 4)); - assertEqual(31, LocalDate::daysInMonth(2000, 5)); - assertEqual(30, LocalDate::daysInMonth(2000, 6)); - assertEqual(31, LocalDate::daysInMonth(2000, 7)); - assertEqual(31, LocalDate::daysInMonth(2000, 8)); - assertEqual(30, LocalDate::daysInMonth(2000, 9)); - assertEqual(31, LocalDate::daysInMonth(2000, 10)); - assertEqual(30, LocalDate::daysInMonth(2000, 11)); - assertEqual(31, LocalDate::daysInMonth(2000, 12)); - - assertEqual(28, LocalDate::daysInMonth(2001, 2)); - assertEqual(29, LocalDate::daysInMonth(2004, 2)); - assertEqual(28, LocalDate::daysInMonth(2100, 2)); -} - -test(LocalDateTest, daysUntil) { - LocalDate today = LocalDate::forComponents(2000, 12, 25); - assertEqual(0, today.daysUntil(12, 25)); - - today = LocalDate::forComponents(2000, 12, 24); - assertEqual(1, today.daysUntil(12, 25)); - - // 2001 is a normal year, so 364 days until next Christmas - today = LocalDate::forComponents(2000, 12, 26); - assertEqual(364, today.daysUntil(12, 25)); - - // 2004 is a leap year so 365 days until next Christmas - today = LocalDate::forComponents(2003, 12, 26); - assertEqual(365, today.daysUntil(12, 25)); -} - -//--------------------------------------------------------------------------- - -test(LocalDateTest, incrementOneDay) { - LocalDate ld; - - ld = LocalDate::forComponents(2000, 2, 28); - local_date_mutation::incrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2000, 2, 29)); - - ld = LocalDate::forComponents(2000, 2, 29); - local_date_mutation::incrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2000, 3, 1)); - - ld = LocalDate::forComponents(2000, 3, 31); - local_date_mutation::incrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2000, 4, 1)); - - ld = LocalDate::forComponents(2000, 12, 31); - local_date_mutation::incrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2001, 1, 1)); - - ld = LocalDate::forComponents(2001, 2, 28); - local_date_mutation::incrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2001, 3, 1)); - - ld = LocalDate::forComponents(2004, 2, 28); - local_date_mutation::incrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2004, 2, 29)); -} - -test(LocalDateTest, decrementOneDay) { - LocalDate ld; - - ld = LocalDate::forComponents(2004, 2, 29); - local_date_mutation::decrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2004, 2, 28)); - - ld = LocalDate::forComponents(2001, 3, 1); - local_date_mutation::decrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2001, 2, 28)); - - ld = LocalDate::forComponents(2001, 1, 1); - local_date_mutation::decrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2000, 12, 31)); - - ld = LocalDate::forComponents(2000, 4, 1); - local_date_mutation::decrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2000, 3, 31)); - - ld = LocalDate::forComponents(2000, 3, 1); - local_date_mutation::decrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2000, 2, 29)); - - ld = LocalDate::forComponents(2000, 2, 29); - local_date_mutation::decrementOneDay(ld); - assertTrue(ld == LocalDate::forComponents(2000, 2, 28)); -} - -//--------------------------------------------------------------------------- - -void setup() { -#if ! defined(EPOXY_DUINO) - delay(1000); // wait to prevent garbage on SERIAL_PORT_MONITOR -#endif - SERIAL_PORT_MONITOR.begin(115200); - while (!SERIAL_PORT_MONITOR); // Leonardo/Micro -#if defined(EPOXY_DUINO) - SERIAL_PORT_MONITOR.setLineModeUnix(); -#endif -} - -void loop() { - aunit::TestRunner::run(); -} diff --git a/tests/LocalTimeTest/LocalTimeTest.ino b/tests/LocalTimeTest/LocalTimeTest.ino deleted file mode 100644 index fe8d7b833..000000000 --- a/tests/LocalTimeTest/LocalTimeTest.ino +++ /dev/null @@ -1,142 +0,0 @@ -#line 2 "LocalTimeTest.ino" - -#include -#include - -using namespace ace_time; - -//--------------------------------------------------------------------------- -// LocalTime -//--------------------------------------------------------------------------- - -test(LocalTimeTest, accessors_mutators) { - // accessors - LocalTime lt = LocalTime::forComponents(1, 2, 3); - assertEqual(1, lt.hour()); - assertEqual(2, lt.minute()); - assertEqual(3, lt.second()); - assertEqual(0, lt.fold()); - - // mutators - lt.hour(11); - lt.minute(12); - lt.second(13); - lt.fold(1); - assertEqual(11, lt.hour()); - assertEqual(12, lt.minute()); - assertEqual(13, lt.second()); - assertEqual(1, lt.fold()); -} - -test(LocalTimeTest, constructor_with_fold) { - LocalTime lt = LocalTime::forComponents(1, 2, 3, 1 /*fold*/); - assertEqual(1, lt.hour()); - assertEqual(2, lt.minute()); - assertEqual(3, lt.second()); - assertEqual(1, lt.fold()); -} - -test(LocalTimeTest, isError) { - assertFalse(LocalTime::forComponents(0, 0, 0).isError()); - assertFalse(LocalTime::forComponents(0, 59, 0).isError()); - assertFalse(LocalTime::forComponents(0, 59, 59).isError()); - assertFalse(LocalTime::forComponents(23, 59, 59).isError()); - assertFalse(LocalTime::forComponents(24, 0, 0).isError()); - - assertTrue(LocalTime::forComponents(24, 0, 1).isError()); - assertTrue(LocalTime::forComponents(25, 0, 0).isError()); - assertTrue(LocalTime::forComponents(0, 60, 0).isError()); - assertTrue(LocalTime::forComponents(0, 0, 60).isError()); -} - -test(LocalTimeTest, forError) { - LocalTime lt = LocalTime::forError(); - assertTrue(lt.isError()); - assertEqual(LocalTime::kInvalidSeconds, lt.toSeconds()); - - lt = LocalTime::forSeconds(LocalTime::kInvalidSeconds); - assertTrue(lt.isError()); -} - -test(LocalTimeTest, toAndFromSeconds) { - LocalTime lt; - - lt = LocalTime::forSeconds(0); - assertTrue(lt == LocalTime::forComponents(0, 0, 0)); - assertEqual((acetime_t) 0, lt.toSeconds()); - assertEqual(0, lt.fold()); - - lt = LocalTime::forSeconds(3662); - assertTrue(lt == LocalTime::forComponents(1, 1, 2)); - assertEqual((acetime_t) 3662, lt.toSeconds()); - - lt = LocalTime::forSeconds(86399); - assertTrue(lt == LocalTime::forComponents(23, 59, 59)); - assertEqual((acetime_t) 86399, lt.toSeconds()); -} - -test(LocalTimeTest, toAndFromSeconds_withFold) { - LocalTime lt = LocalTime::forSeconds(0, 1 /*fold*/); - assertTrue(lt == LocalTime::forComponents(0, 0, 0)); - assertEqual((acetime_t) 0, lt.toSeconds()); - assertEqual(1, lt.fold()); -} - -test(LocalTimeTest, compareTo) { - LocalTime a, b; - - a = LocalTime::forComponents(0, 1, 1); - b = LocalTime::forComponents(0, 1, 1); - assertEqual(a.compareTo(b), 0); - assertTrue(a == b); - assertFalse(a != b); - - a = LocalTime::forComponents(0, 1, 1); - b = LocalTime::forComponents(0, 1, 2); - assertLess(a.compareTo(b), 0); - assertMore(b.compareTo(a), 0); - assertTrue(a != b); - - a = LocalTime::forComponents(0, 1, 1); - b = LocalTime::forComponents(0, 2, 1); - assertLess(a.compareTo(b), 0); - assertMore(b.compareTo(a), 0); - assertTrue(a != b); - - a = LocalTime::forComponents(0, 1, 1); - b = LocalTime::forComponents(1, 1, 1); - assertLess(a.compareTo(b), 0); - assertMore(b.compareTo(a), 0); - assertTrue(a != b); -} - -test(LocalTimeTest, forTimeString) { - LocalTime lt; - lt = LocalTime::forTimeString("00:00:00"); - assertTrue(lt == LocalTime::forComponents(0, 0, 0)); - - lt = LocalTime::forTimeString("01:02:03"); - assertTrue(lt == LocalTime::forComponents(1, 2, 3)); -} - -test(LocalTimeTest, fortimeString_invalid) { - LocalTime lt = LocalTime::forTimeString("01:02"); - assertTrue(lt.isError()); -} - -//--------------------------------------------------------------------------- - -void setup() { -#if ! defined(EPOXY_DUINO) - delay(1000); // wait to prevent garbage SERIAL_PORT_MONITOR -#endif - SERIAL_PORT_MONITOR.begin(115200); - while (!SERIAL_PORT_MONITOR); // Leonardo/Micro -#if defined(EPOXY_DUINO) - SERIAL_PORT_MONITOR.setLineModeUnix(); -#endif -} - -void loop() { - aunit::TestRunner::run(); -} diff --git a/tests/OffsetDateTimeTest/OffsetDateTimeTest.ino b/tests/OffsetDateTimeTest/OffsetDateTimeTest.ino index 0bb4329e9..cd3aeb5c5 100644 --- a/tests/OffsetDateTimeTest/OffsetDateTimeTest.ino +++ b/tests/OffsetDateTimeTest/OffsetDateTimeTest.ino @@ -17,7 +17,6 @@ test(OffsetDateTimeTest, accessors_mutators) { assertEqual(5, dt.minute()); assertEqual(6, dt.second()); assertEqual(0, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); // mutators dt.year(2011); @@ -27,7 +26,6 @@ test(OffsetDateTimeTest, accessors_mutators) { dt.minute(15); dt.second(16); dt.timeOffset(TimeOffset::forMinutes(17)); - dt.fold(1); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(13, dt.day()); @@ -35,36 +33,22 @@ test(OffsetDateTimeTest, accessors_mutators) { assertEqual(15, dt.minute()); assertEqual(16, dt.second()); assertEqual(17, dt.timeOffset().toMinutes()); - assertEqual(1, dt.fold()); -} - -test(OffsetDateTimeTest, constructor_with_fold) { - OffsetDateTime dt = OffsetDateTime::forComponents( - 2001, 2, 3, 4, 5, 6, TimeOffset(), 1 /*fold*/); - assertEqual((int16_t) 2001, dt.year()); - assertEqual(2, dt.month()); - assertEqual(3, dt.day()); - assertEqual(4, dt.hour()); - assertEqual(5, dt.minute()); - assertEqual(6, dt.second()); - assertEqual(0, dt.timeOffset().toMinutes()); - assertEqual(1, dt.fold()); } test(OffsetDateTimeTest, invalidSeconds) { OffsetDateTime dt = OffsetDateTime::forEpochSeconds( - LocalDate::kInvalidEpochSeconds, TimeOffset()); + PlainDate::kInvalidEpochSeconds, TimeOffset()); assertTrue(dt.isError()); - assertEqual(LocalDate::kInvalidEpochSeconds, dt.toEpochSeconds()); - assertEqual(LocalDate::kInvalidEpochDays, dt.toEpochDays()); + assertEqual(PlainDate::kInvalidEpochSeconds, dt.toEpochSeconds()); + assertEqual(PlainDate::kInvalidEpochDays, dt.toEpochDays()); } test(OffsetDateTimeTest, invalidTimeOffset) { OffsetDateTime dt = OffsetDateTime::forEpochSeconds( 0, TimeOffset::forError()); assertTrue(dt.isError()); - assertEqual(LocalDate::kInvalidEpochSeconds, dt.toEpochSeconds()); - assertEqual(LocalDate::kInvalidEpochDays, dt.toEpochDays()); + assertEqual(PlainDate::kInvalidEpochSeconds, dt.toEpochSeconds()); + assertEqual(PlainDate::kInvalidEpochDays, dt.toEpochDays()); } test(OffsetDateTimeTest, forError) { @@ -129,56 +113,56 @@ test(OffsetDateTimeTest, forComponents) { assertEqual((int32_t) -24856, dt.toEpochDays()); assertEqual((int32_t) -13899, dt.toUnixDays()); assertEqual((acetime_t) (INT32_MIN + 1), dt.toEpochSeconds()); - assertEqual(LocalDate::kSunday, dt.dayOfWeek()); + assertEqual(PlainDate::kSunday, dt.dayOfWeek()); // 2000-01-01 00:00:00Z Saturday dt = OffsetDateTime::forComponents(2000, 1, 1, 0, 0, 0, TimeOffset()); assertEqual((int32_t) 0, dt.toEpochDays()); assertEqual((int32_t) 10957, dt.toUnixDays()); assertEqual((acetime_t) 0, dt.toEpochSeconds()); - assertEqual(LocalDate::kSaturday, dt.dayOfWeek()); + assertEqual(PlainDate::kSaturday, dt.dayOfWeek()); // 2000-01-02 00:00:00Z Sunday dt = OffsetDateTime::forComponents(2000, 1, 2, 0, 0, 0, TimeOffset()); assertEqual((int32_t) 1, dt.toEpochDays()); assertEqual((int32_t) 10958, dt.toUnixDays()); assertEqual((acetime_t) 86400, dt.toEpochSeconds()); - assertEqual(LocalDate::kSunday, dt.dayOfWeek()); + assertEqual(PlainDate::kSunday, dt.dayOfWeek()); // 2000-02-29 00:00:00Z Tuesday dt = OffsetDateTime::forComponents(2000, 2, 29, 0, 0, 0, TimeOffset()); assertEqual((int32_t) 59, dt.toEpochDays()); assertEqual((int32_t) 11016, dt.toUnixDays()); assertEqual((acetime_t) 86400 * 59, dt.toEpochSeconds()); - assertEqual(LocalDate::kTuesday, dt.dayOfWeek()); + assertEqual(PlainDate::kTuesday, dt.dayOfWeek()); // 2018-01-01 00:00:00Z Monday dt = OffsetDateTime::forComponents(2018, 1, 1, 0, 0, 0, TimeOffset()); assertEqual((int32_t) 6575, dt.toEpochDays()); assertEqual((int32_t) 17532, dt.toUnixDays()); assertEqual(6575 * (acetime_t) 86400, dt.toEpochSeconds()); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); // 2038-01-19 03:14:07Z (largest value using 32-bit Unix seconds) dt = OffsetDateTime::forComponents(2038, 1, 19, 3, 14, 7, TimeOffset()); assertEqual((int32_t) 13898, dt.toEpochDays()); assertEqual((int32_t) 24855, dt.toUnixDays()); assertEqual((acetime_t) 1200798847, dt.toEpochSeconds()); - assertEqual(LocalDate::kTuesday, dt.dayOfWeek()); + assertEqual(PlainDate::kTuesday, dt.dayOfWeek()); // 2068-01-19 03:14:06Z (one second before largest AceTime Epoch). dt = OffsetDateTime::forComponents(2068, 1, 19, 3, 14, 6, TimeOffset()); assertEqual((int32_t) 24855, dt.toEpochDays()); assertEqual((int32_t) 35812, dt.toUnixDays()); assertEqual((acetime_t) (INT32_MAX - 1), dt.toEpochSeconds()); - assertEqual(LocalDate::kThursday, dt.dayOfWeek()); + assertEqual(PlainDate::kThursday, dt.dayOfWeek()); // 2068-01-19 03:14:07Z (largest AceTime Epoch). dt = OffsetDateTime::forComponents(2068, 1, 19, 3, 14, 7, TimeOffset()); assertEqual((int32_t) 24855, dt.toEpochDays()); assertEqual((int32_t) 35812, dt.toUnixDays()); assertEqual((acetime_t) INT32_MAX, dt.toEpochSeconds()); - assertEqual(LocalDate::kThursday, dt.dayOfWeek()); + assertEqual(PlainDate::kThursday, dt.dayOfWeek()); } test(OffsetDateTimeTest, forComponents_withOffset) { @@ -191,7 +175,7 @@ test(OffsetDateTimeTest, forComponents_withOffset) { assertEqual((int32_t) 6574, dt.toEpochDays()); assertEqual((int32_t) 17531, dt.toUnixDays()); assertEqual(6575 * (acetime_t) 86400 - 15*60, dt.toEpochSeconds()); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); } test(OffsetDateTimeTest, toAndForUnixSeconds64) { @@ -200,7 +184,7 @@ test(OffsetDateTimeTest, toAndForUnixSeconds64) { // Verify error sentinel. dt = OffsetDateTime::forUnixSeconds64( - LocalDate::kInvalidUnixSeconds64, TimeOffset()); + PlainDate::kInvalidUnixSeconds64, TimeOffset()); assertTrue(dt.isError()); // Verify that 64-bit unixSeconds allows dates beyond 32-bit limit. @@ -300,7 +284,7 @@ test(OffsetDateTimeTest, forEpochSeconds_epoch2050) { assertEqual(16, dt.hour()); assertEqual(0, dt.minute()); assertEqual(0, dt.second()); - assertEqual(LocalDate::kFriday, dt.dayOfWeek()); + assertEqual(PlainDate::kFriday, dt.dayOfWeek()); } test(OffsetDateTimeTest, forEpochSeconds) { @@ -315,7 +299,7 @@ test(OffsetDateTimeTest, forEpochSeconds) { assertEqual(16, dt.hour()); assertEqual(0, dt.minute()); assertEqual(0, dt.second()); - assertEqual(LocalDate::kFriday, dt.dayOfWeek()); + assertEqual(PlainDate::kFriday, dt.dayOfWeek()); // 2029-12-31 23:59:59Z Monday dt = OffsetDateTime::forEpochSeconds( @@ -326,7 +310,7 @@ test(OffsetDateTimeTest, forEpochSeconds) { assertEqual(23, dt.hour()); assertEqual(59, dt.minute()); assertEqual(59, dt.second()); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); // 2029-12-31 15:59:59-08:00 Monday TimeOffset offset = TimeOffset::forHours(-8); // UTC-08:00 @@ -337,24 +321,7 @@ test(OffsetDateTimeTest, forEpochSeconds) { assertEqual(15, dt.hour()); assertEqual(59, dt.minute()); assertEqual(59, dt.second()); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); - assertEqual(0, dt.fold()); -} - -test(OffsetDateTimeTest, forEpochSeconds_withFold) { - testing::EpochYearContext context(2000); - // 2029-12-31 23:59:59Z Monday - OffsetDateTime dt = OffsetDateTime::forEpochSeconds( - 10958 * (acetime_t) 86400 - 1, TimeOffset(), 1 /*fold*/); - - assertEqual((int16_t) 2029, dt.year()); - assertEqual(12, dt.month()); - assertEqual(31, dt.day()); - assertEqual(23, dt.hour()); - assertEqual(59, dt.minute()); - assertEqual(59, dt.second()); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); - assertEqual(1, dt.fold()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); } test(OffsetDateTimeTest, convertToTimeOffset) { @@ -433,29 +400,29 @@ test(OffsetDateTimeTest, dayOfWeek) { // 2018-01-01 00:00:00Z Monday OffsetDateTime dt = OffsetDateTime::forComponents(2018, 1, 1, 0, 0, 0, TimeOffset()); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); dt.hour(23); // 2018-01-01 23:00:00Z, no change to dayOfWeek - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); dt.minute(40); // 2018-01-01 23:40:00Z, no change to dayOfWeek - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); dt.second(3); // 2018-01-01 23:40:03Z, no change to dayOfWeek - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); // 2018-01-01 23:40:03+00:45, no change to dayOfWeek dt.timeOffset(TimeOffset::forMinutes(45)); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); dt.day(2); // 2018-01-02 23:40:03+00:45, changes dayOfWeek - assertEqual(LocalDate::kTuesday, dt.dayOfWeek()); + assertEqual(PlainDate::kTuesday, dt.dayOfWeek()); dt.month(2); // 2018-02-02 23:40:03+00:45, changes dayOfWeek - assertEqual(LocalDate::kFriday, dt.dayOfWeek()); + assertEqual(PlainDate::kFriday, dt.dayOfWeek()); dt.year(2020); // 2020-02-02 23:40:03+00:45, changes dayOfWeek - assertEqual(LocalDate::kSunday, dt.dayOfWeek()); + assertEqual(PlainDate::kSunday, dt.dayOfWeek()); } test(OffsetDateTimeTest, forDateString) { @@ -469,7 +436,7 @@ test(OffsetDateTimeTest, forDateString) { assertEqual(48, dt.minute()); assertEqual(1, dt.second()); assertEqual(-7*60, dt.timeOffset().toMinutes()); - assertEqual(LocalDate::kFriday, dt.dayOfWeek()); + assertEqual(PlainDate::kFriday, dt.dayOfWeek()); // parser does not care about most separators, this may change in the future dt = OffsetDateTime::forDateString(F("2018/08/31 13#48#01+07#00")); @@ -481,7 +448,7 @@ test(OffsetDateTimeTest, forDateString) { assertEqual(48, dt.minute()); assertEqual(1, dt.second()); assertEqual(7*60, dt.timeOffset().toMinutes()); - assertEqual(LocalDate::kFriday, dt.dayOfWeek()); + assertEqual(PlainDate::kFriday, dt.dayOfWeek()); } test(OffsetDateTimeTest, forDateString_errors) { @@ -603,13 +570,13 @@ test(OffsetDateTimeTest, spotcheck_epoch2000) { // Change current epoch year to 2000, so the epoch is 2000-01-01T00:00:00. testing::EpochYearContext context(2000); - auto minDt = OffsetDateTime::forEpochSeconds(LocalDate::kMinEpochSeconds, + auto minDt = OffsetDateTime::forEpochSeconds(PlainDate::kMinEpochSeconds, TimeOffset()); auto expected = OffsetDateTime::forComponents(1931, 12, 13, 20, 45, 53, TimeOffset()); assertTrue(expected == minDt); - auto maxDt = OffsetDateTime::forEpochSeconds(LocalDate::kMaxEpochSeconds, + auto maxDt = OffsetDateTime::forEpochSeconds(PlainDate::kMaxEpochSeconds, TimeOffset()); expected = OffsetDateTime::forComponents(2068, 1, 19, 3, 14, 7, TimeOffset()); @@ -632,7 +599,7 @@ test(OffsetDateTimeTest, spotcheck_epoch2050) { testing::EpochYearContext context(2050); // Same min date as epoch 2000, but 50 years later. - auto minDt = OffsetDateTime::forEpochSeconds(LocalDate::kMinEpochSeconds, + auto minDt = OffsetDateTime::forEpochSeconds(PlainDate::kMinEpochSeconds, TimeOffset()); auto expected = OffsetDateTime::forComponents(1981, 12, 13, 20, 45, 53, TimeOffset()); @@ -640,7 +607,7 @@ test(OffsetDateTimeTest, spotcheck_epoch2050) { // Almost the same max date as epoch 2000, but one day later on Jan 20 instead // of the Jan 19, because 2000 was a leap year, but 2100 is not. - auto maxDt = OffsetDateTime::forEpochSeconds(LocalDate::kMaxEpochSeconds, + auto maxDt = OffsetDateTime::forEpochSeconds(PlainDate::kMaxEpochSeconds, TimeOffset()); expected = OffsetDateTime::forComponents(2118, 1, 20, 3, 14, 7, TimeOffset()); @@ -663,7 +630,7 @@ test(OffsetDateTimeTest, spotcheck_epoch2100) { testing::EpochYearContext context(2100); // Same min date as epoch 2000, but 100 years later. - auto minDt = OffsetDateTime::forEpochSeconds(LocalDate::kMinEpochSeconds, + auto minDt = OffsetDateTime::forEpochSeconds(PlainDate::kMinEpochSeconds, TimeOffset()); auto expected = OffsetDateTime::forComponents(2031, 12, 13, 20, 45, 53, TimeOffset()); @@ -671,7 +638,7 @@ test(OffsetDateTimeTest, spotcheck_epoch2100) { // Almost the same max date as epoch 2000, but one day later on Jan 20 instead // of the Jan 19, because 2000 was a leap year, but 2100 is not. - auto maxDt = OffsetDateTime::forEpochSeconds(LocalDate::kMaxEpochSeconds, + auto maxDt = OffsetDateTime::forEpochSeconds(PlainDate::kMaxEpochSeconds, TimeOffset()); expected = OffsetDateTime::forComponents(2168, 1, 20, 3, 14, 7, TimeOffset()); diff --git a/tests/LocalDateTest/Makefile b/tests/PlainDateTest/Makefile similarity index 90% rename from tests/LocalDateTest/Makefile rename to tests/PlainDateTest/Makefile index 368ba8e20..a25a68ebf 100644 --- a/tests/LocalDateTest/Makefile +++ b/tests/PlainDateTest/Makefile @@ -1,6 +1,6 @@ # See https://github.com/bxparks/EpoxyDuino for documentation about this # Makefile to compile and run Arduino programs natively on Linux or MacOS. -APP_NAME := LocalDateTest +APP_NAME := PlainDateTest ARDUINO_LIBS := AUnit AceCommon AceTime AceSorting include ../../../EpoxyDuino/EpoxyDuino.mk diff --git a/tests/PlainDateTest/PlainDateTest.ino b/tests/PlainDateTest/PlainDateTest.ino new file mode 100644 index 000000000..e59a5a6f2 --- /dev/null +++ b/tests/PlainDateTest/PlainDateTest.ino @@ -0,0 +1,610 @@ +#line 2 "PlainDateTest.ino" + +#include +#include +#include + +using namespace ace_time; +using ace_time::basic::Info; + +//--------------------------------------------------------------------------- +// PlainDate +//--------------------------------------------------------------------------- + +test(PlainDateTest, year_limits) { + assertLess(PlainDate::kInvalidYear, PlainDate::kMinYear); + assertLess(PlainDate::kInvalidYear, Info::ZoneContext::kMinYear); + assertLess(PlainDate::kInvalidYear, Info::ZoneContext::kMinYear); + + assertLess(PlainDate::kMinYear, PlainDate::kMaxYear); + assertLess(PlainDate::kMinYear, PlainDate::kMaxYear); + + assertLess(Info::ZoneContext::kMinYear, Info::ZoneContext::kMaxYear); + assertLess(Info::ZoneContext::kMinYear, Info::ZoneContext::kMaxYear); + + assertLess(Info::ZoneContext::kMaxYear, Info::ZoneContext::kMaxUntilYear); + assertLess(Info::ZoneContext::kMaxYear, Info::ZoneContext::kMaxUntilYear); + + // PlainDate limits must be within the Info::ZoneContext limits + assertMore(PlainDate::kMinYear, Info::ZoneContext::kMinYear); + assertLess(PlainDate::kMaxYear, Info::ZoneContext::kMaxYear); +} + +test(PlainDateTest, year_range) { + // Not valid + assertTrue(PlainDate::forComponents(INT16_MIN, 1, 1).isError()); + assertTrue(PlainDate::forComponents(-1, 1, 1).isError()); + + // kMinYear allowed + assertFalse(PlainDate::forComponents(0, 1, 1).isError()); + + // first valid year allowed + assertFalse(PlainDate::forComponents(1, 1, 1).isError()); + + // largest valid FROM or TO year ("max"), allowed + assertFalse(PlainDate::forComponents(9999, 1, 1).isError()); + + // largest valid UNTIL year ("-"), allowed, kMaxYear + assertFalse(PlainDate::forComponents(10000, 1, 1).isError()); + + // Not valid + assertTrue(PlainDate::forComponents(PlainDate::kMaxYear + 1, 1, 1).isError()); + assertTrue(PlainDate::forComponents(INT16_MAX, 1, 1).isError()); +} + +test(PlainDateTest, month_range) { + assertTrue(PlainDate::forComponents(2000, 0, 1).isError()); + assertTrue(PlainDate::forComponents(2000, 13, 1).isError()); +} + +test(PlainDateTest, day_range) { + assertTrue(PlainDate::forComponents(2000, 1, 0).isError()); + assertTrue(PlainDate::forComponents(2000, 1, 32).isError()); +} + +test(PlainDateTest, accessors) { + PlainDate pd = PlainDate::forComponents(2001, 2, 3); + assertEqual((int16_t) 2001, pd.year()); + assertEqual(2, pd.month()); + assertEqual(3, pd.day()); +} + +// Verify that toEpochDays()/forEpochDays() and +// toEpochSeconds()/forEpochSeconds() support round trip conversions when when +// isError()==true. +test(PlainDateTest, forError_roundTrip) { + PlainDate pd; + + pd = PlainDate::forError(); + assertTrue(pd.isError()); + assertEqual(PlainDate::kInvalidEpochDays, pd.toEpochDays()); + assertEqual(PlainDate::kInvalidEpochSeconds, pd.toEpochSeconds()); + + pd = PlainDate::forEpochDays(PlainDate::kInvalidEpochDays); + assertTrue(pd.isError()); + + pd = PlainDate::forEpochSeconds(PlainDate::kInvalidEpochSeconds); + assertTrue(pd.isError()); +} + +test(PlainDateTest, dayOfWeek) { + // year 1900 (not leap year due to every 100 rule) + assertEqual(PlainDate::kWednesday, + PlainDate::forComponents(1900, 2, 28).dayOfWeek()); + assertEqual(PlainDate::kThursday, + PlainDate::forComponents(1900, 3, 1).dayOfWeek()); + + // year 1999 was not a leap year + assertEqual(PlainDate::kFriday, + PlainDate::forComponents(1999, 1, 1).dayOfWeek()); + assertEqual(PlainDate::kSunday, + PlainDate::forComponents(1999, 1, 31).dayOfWeek()); + + // year 2000 (leap year due to every 400 rule) + assertEqual(PlainDate::kSaturday, + PlainDate::forComponents(2000, 1, 1).dayOfWeek()); + assertEqual(PlainDate::kMonday, + PlainDate::forComponents(2000, 1, 31).dayOfWeek()); + + assertEqual(PlainDate::kTuesday, + PlainDate::forComponents(2000, 2, 1).dayOfWeek()); + assertEqual(PlainDate::kTuesday, + PlainDate::forComponents(2000, 2, 29).dayOfWeek()); + + assertEqual(PlainDate::kWednesday, + PlainDate::forComponents(2000, 3, 1).dayOfWeek()); + assertEqual(PlainDate::kFriday, + PlainDate::forComponents(2000, 3, 31).dayOfWeek()); + + assertEqual(PlainDate::kSaturday, + PlainDate::forComponents(2000, 4, 1).dayOfWeek()); + assertEqual(PlainDate::kSunday, + PlainDate::forComponents(2000, 4, 30).dayOfWeek()); + + assertEqual(PlainDate::kMonday, + PlainDate::forComponents(2000, 5, 1).dayOfWeek()); + assertEqual(PlainDate::kWednesday, + PlainDate::forComponents(2000, 5, 31).dayOfWeek()); + + assertEqual(PlainDate::kThursday, + PlainDate::forComponents(2000, 6, 1).dayOfWeek()); + assertEqual(PlainDate::kFriday, + PlainDate::forComponents(2000, 6, 30).dayOfWeek()); + + assertEqual(PlainDate::kSaturday, + PlainDate::forComponents(2000, 7, 1).dayOfWeek()); + assertEqual(PlainDate::kMonday, + PlainDate::forComponents(2000, 7, 31).dayOfWeek()); + + assertEqual(PlainDate::kTuesday, + PlainDate::forComponents(2000, 8, 1).dayOfWeek()); + assertEqual(PlainDate::kThursday, + PlainDate::forComponents(2000, 8, 31).dayOfWeek()); + + assertEqual(PlainDate::kFriday, + PlainDate::forComponents(2000, 9, 1).dayOfWeek()); + assertEqual(PlainDate::kSaturday, + PlainDate::forComponents(2000, 9, 30).dayOfWeek()); + + assertEqual(PlainDate::kSunday, + PlainDate::forComponents(2000, 10, 1).dayOfWeek()); + assertEqual(PlainDate::kTuesday, + PlainDate::forComponents(2000, 10, 31).dayOfWeek()); + + assertEqual(PlainDate::kWednesday, + PlainDate::forComponents(2000, 11, 1).dayOfWeek()); + assertEqual(PlainDate::kThursday, + PlainDate::forComponents(2000, 11, 30).dayOfWeek()); + + assertEqual(PlainDate::kFriday, + PlainDate::forComponents(2000, 12, 1).dayOfWeek()); + assertEqual(PlainDate::kSunday, + PlainDate::forComponents(2000, 12, 31).dayOfWeek()); + + // year 2001 + assertEqual(PlainDate::kMonday, + PlainDate::forComponents(2001, 1, 1).dayOfWeek()); + assertEqual(PlainDate::kWednesday, + PlainDate::forComponents(2001, 1, 31).dayOfWeek()); + + // year 2004 (leap year) + assertEqual(PlainDate::kSunday, + PlainDate::forComponents(2004, 2, 1).dayOfWeek()); + assertEqual(PlainDate::kSunday, + PlainDate::forComponents(2004, 2, 29).dayOfWeek()); + assertEqual(PlainDate::kMonday, + PlainDate::forComponents(2004, 3, 1).dayOfWeek()); + + // year 2099 + assertEqual(PlainDate::kThursday, + PlainDate::forComponents(2099, 1, 1).dayOfWeek()); + assertEqual(PlainDate::kThursday, + PlainDate::forComponents(2099, 12, 31).dayOfWeek()); + + // year 2100 (not leap year due to every 100 rule) + assertEqual(PlainDate::kSunday, + PlainDate::forComponents(2100, 2, 28).dayOfWeek()); + assertEqual(PlainDate::kMonday, + PlainDate::forComponents(2100, 3, 1).dayOfWeek()); +} + +test(PlainDateTest, toAndFromEpochDays) { + // Change current epoch year to 2050, making the epoch 2100-01-01T00:00:00. + testing::EpochYearContext context(2000); + + PlainDate pd; + + // Smallest PlainDate in our 16-bit implementation is 0001-01-01 + pd = PlainDate::forComponents(1, 1, 1); + int32_t epoch1 = (int32_t) ((0 - 2000) / 400) * 146097 + 366; + assertEqual(epoch1, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(epoch1)); + + // Smallest PlainDate in an 8-bit implementation + pd = PlainDate::forComponents(1873, 1, 1); + assertEqual((int32_t) -46385, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(-46385)); + + pd = PlainDate::forComponents(1900, 1, 1); + assertEqual((int32_t) -36524, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(-36524)); + + // Smallest date using int32_t seconds from AceTime epoch + pd = PlainDate::forComponents(1931, 12, 14); + assertEqual((int32_t) -24855, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(-24855)); + + // AceTime v1 hardcoded epoch + pd = PlainDate::forComponents(2000, 1, 1); + assertEqual((int32_t) 0, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(0)); + + pd = PlainDate::forComponents(2000, 2, 29); + assertEqual((int32_t) 59, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(59)); + + pd = PlainDate::forComponents(2018, 1, 1); + assertEqual((int32_t) 6575, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(6575)); + + // AceTime v2 default epoch + pd = PlainDate::forComponents(2050, 1, 1); + assertEqual((int32_t) 18263, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(18263)); + + // Largest date using int32_t seconds from AceTime epoch + pd = PlainDate::forComponents(2068, 1, 19); + assertEqual((int32_t) 24855, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(24855)); + + // Largest PlainDate in an 8-bit implementation + pd = PlainDate::forComponents(2127, 12, 31); + assertEqual((int32_t) 46750, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(46750)); + + // Largest PlainDate in our 16-bit implementation is 9999-12-31 + pd = PlainDate::forComponents(9999, 12, 31); + const int32_t epochDays9999 = (int32_t) ((10000 - 2000) / 400) * 146097 - 1; + assertEqual(epochDays9999, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(epochDays9999)); +} + +// Change currentEpochYear to a different value. +test(PlainDateTest, toAndFromEpochDays_epoch2050) { + // Change current epoch year to 2050, making the epoch 2100-01-01T00:00:00. + testing::EpochYearContext context(2050); + + // Verify lower and upper valid year limits. + assertEqual(Epoch::epochValidYearLower(), 2000); + assertEqual(Epoch::epochValidYearUpper(), 2100); + + // Verify that 2050-01-01 returns epoch days of 0 + PlainDate pd = PlainDate::forComponents(2050, 1, 1); + assertEqual((int32_t) 0, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(0)); + + // Verify the smallest PlainDate. The smallest valid epochseconds is + // (INT32_MIN+1) because INT32_MIN is a sentinel for an Error condition. + // The complicated expression below is an integer division of a negative + // number that truncates towards -Infinity. + pd = PlainDate::forComponents(1981, 12, 13); + int32_t smallestEpochDays = (PlainDate::kMinEpochSeconds + 1) / 86400 - 1; + assertEqual(smallestEpochDays, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(smallestEpochDays)); + + // Verify the largest PlainDate. + pd = PlainDate::forComponents(2118, 1, 20); + int32_t largestEpochDays = PlainDate::kMaxEpochSeconds / 86400; + assertEqual(largestEpochDays, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(largestEpochDays)); +} + +// Change currentEpochYear to a different value. +test(PlainDateTest, toAndFromEpochDays_epoch2100) { + // Change current epoch year to 2100, so the epoch becomes + // 2100-01-01T00:00:00. + testing::EpochYearContext context(2100); + + // Verify lower and upper valid year limits. + assertEqual(Epoch::epochValidYearLower(), 2050); + assertEqual(Epoch::epochValidYearUpper(), 2150); + + // Verify that 2100-01-01 returns epoch days of 0 + PlainDate pd = PlainDate::forComponents(2100, 1, 1); + assertEqual((int32_t) 0, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(0)); + + // Verify the smallest PlainDate. The smallest valid epochseconds is + // (INT32_MIN+1) because INT32_MIN is a sentinel for an Error condition. + // The complicated expression below is an integer division of a negative + // number that truncates towards -Infinity. + pd = PlainDate::forComponents(2031, 12, 13); + int32_t smallestEpochDays = (PlainDate::kMinEpochSeconds + 1) / 86400 - 1; + assertEqual(smallestEpochDays, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(smallestEpochDays)); + + // Verify the largest PlainDate. + pd = PlainDate::forComponents(2168, 1, 20); + int32_t largestEpochDays = PlainDate::kMaxEpochSeconds / 86400; + assertEqual(largestEpochDays, pd.toEpochDays()); + assertTrue(pd == PlainDate::forEpochDays(largestEpochDays)); +} + +// Same as toAndFromEpochDays, shifted 30 years +test(PlainDateTest, toAndFromUnixDays) { + PlainDate pd; + + // Smallest PlainDate in an 8-bit implementation + pd = PlainDate::forComponents(1873, 1, 1); + assertEqual((int32_t) -35428, pd.toUnixDays()); + assertTrue(pd == PlainDate::forUnixDays(-35428)); + + // Smallest date using int32_t from Unix epoch + pd = PlainDate::forComponents(1901, 12, 14); + assertEqual((int32_t) -24855, pd.toUnixDays()); + assertTrue(pd == PlainDate::forUnixDays(-24855)); + + // Unix Epoch + pd = PlainDate::forComponents(1970, 1, 1); + assertEqual((int32_t) 0, pd.toUnixDays()); + assertTrue(pd == PlainDate::forUnixDays(0)); + + // 1970 is not a leap year, whereas 2000 is a leap year + pd = PlainDate::forComponents(1970, 2, 28); + assertEqual((int32_t) 58, pd.toUnixDays()); + assertTrue(pd == PlainDate::forUnixDays(58)); + + pd = PlainDate::forComponents(1988, 1, 1); + assertEqual((int32_t) 6574, pd.toUnixDays()); + assertTrue(pd == PlainDate::forUnixDays(6574)); + + // Largest date using int32_t from Unix epoch + pd = PlainDate::forComponents(2038, 1, 19); + assertEqual((int32_t) 24855, pd.toUnixDays()); + assertTrue(pd == PlainDate::forUnixDays(24855)); + + // Largest PlainDate in an 8-bit implementation + pd = PlainDate::forComponents(2127, 12, 31); + assertEqual((int32_t) 57707, pd.toUnixDays()); + assertTrue(pd == PlainDate::forUnixDays(57707)); +} + +test(PlainDateTest, toAndFromEpochSeconds) { + testing::EpochYearContext context(2000); + PlainDate pd; + + // Smallest date with an int32_t seconds from AceTime Epoch is 1931-12-13 + // 20:45:52. The forEpochSeconds() will correctly truncate the partial day + // *down* towards the to the nearest whole day. + pd = PlainDate::forComponents(1931, 12, 13); + assertTrue(pd == PlainDate::forEpochSeconds(INT32_MIN + 1)); + + // The smallest whole day that can be represented with an int32_t seconds from + // AceTime Epoch is 1931-12-14. + pd = PlainDate::forComponents(1931, 12, 14); + assertEqual((acetime_t) -24855 * 86400, pd.toEpochSeconds()); + assertTrue(pd == PlainDate::forEpochSeconds((acetime_t) -24855 * 86400)); + + pd = PlainDate::forComponents(2000, 1, 1); + assertEqual((acetime_t) 0, pd.toEpochSeconds()); + assertTrue(pd == PlainDate::forEpochSeconds(0)); + + pd = PlainDate::forComponents(2000, 2, 29); + assertEqual((acetime_t) 59 * 86400, pd.toEpochSeconds()); + assertTrue(pd == PlainDate::forEpochSeconds((acetime_t) 59 * 86400 + 1)); + + pd = PlainDate::forComponents(2018, 1, 1); + assertEqual((acetime_t) 6575 * 86400, pd.toEpochSeconds()); + assertTrue(pd == PlainDate::forEpochSeconds((acetime_t) 6575 * 86400 + 2)); + + // Largest date possible using AceTime Epoch Seconds is 2068-01-19 03:14:07. + pd = PlainDate::forComponents(2068, 1, 19); + assertEqual((acetime_t) 24855 * 86400, pd.toEpochSeconds()); + assertTrue(pd == PlainDate::forEpochSeconds( + (acetime_t) 24855 * 86400 + 11647)); +} + +test(PlainDateTest, toAndFromUnixSeconds64) { + testing::EpochYearContext context(2000); + PlainDate pd; + + // Verify error sentinel. + pd = PlainDate::forUnixSeconds64(PlainDate::kInvalidUnixSeconds64); + assertTrue(pd.isError()); + + // Verify that 64-bit unixSeconds allows dates beyond 32-bit limit. + // 1770 to 1970 is 200 years == 200 * 365 + (200/4) leap years - 2 (1800, 1900 + // are not leap) == 73048 days + pd = PlainDate::forComponents(1770, 1, 1); + assertEqual((int64_t) -73048 * 86400, pd.toUnixSeconds64()); + assertTrue(pd == PlainDate::forUnixSeconds64((int64_t) -73048 * 86400)); + + // The smallest whole day that can be represented with an int32_t from AceTime + // epoch is 1931-12-14, can't do better with unixSeconds since it uses + // the Acetime seconds internally. + pd = PlainDate::forComponents(1931, 12, 14); + assertEqual((int64_t) -13898 * 86400, pd.toUnixSeconds64()); + assertTrue(pd == PlainDate::forUnixSeconds64((int64_t) -13898 * 86400)); + + pd = PlainDate::forComponents(1970, 1, 1); + assertEqual((int64_t) 0, pd.toUnixSeconds64()); + assertTrue(pd == PlainDate::forUnixSeconds64(0)); + + // one second after should make no difference due to truncation + pd = PlainDate::forComponents(1970, 1, 1); + assertEqual((int64_t) 0, pd.toUnixSeconds64()); + assertTrue(pd == PlainDate::forUnixSeconds64(0)); + + pd = PlainDate::forComponents(1970, 2, 28); + assertEqual((int64_t) 58 * 86400, pd.toUnixSeconds64()); + assertTrue(pd == PlainDate::forUnixSeconds64((int64_t) 58 * 86400)); + + pd = PlainDate::forComponents(1988, 1, 1); + assertEqual((int64_t) 6574 * 86400, pd.toUnixSeconds64()); + assertTrue(pd == PlainDate::forUnixSeconds64((int64_t) 6574 * 86400)); + + // Largest date possible using Unix Seconds is 2038-01-19 03:14:07. + pd = PlainDate::forComponents(2038, 1, 19); + assertEqual((int64_t) 24855 * 86400, pd.toUnixSeconds64()); + assertTrue(pd == PlainDate::forUnixSeconds64((int64_t) INT32_MAX)); + + // One day after the largest 32-bit dates should work in 64-bits. + pd = PlainDate::forComponents(2038, 1, 20); + assertEqual((int64_t) 24856 * 86400, pd.toUnixSeconds64()); + assertTrue(pd == PlainDate::forUnixSeconds64((int64_t) 24856 * 86400)); + + // Verify that year 2068 works just fine with 64-bit unix seconds. + pd = PlainDate::forComponents(2068, 1, 19); + assertEqual((int64_t) 35812 * 86400, pd.toUnixSeconds64()); + assertTrue(pd == PlainDate::forUnixSeconds64((int64_t) 35812 * 86400)); + + // Verify that year 2170 works just fine with 64-bit unix seconds. + // 200 years = 73049 days, instead of 73048 days, because 2000 was a leap + // year. + pd = PlainDate::forComponents(2170, 1, 1); + assertEqual((int64_t) 73049 * 86400, pd.toUnixSeconds64()); + assertTrue(pd == PlainDate::forUnixSeconds64((int64_t) 73049 * 86400 + 2)); +} + +test(PlainDateTest, compareTo) { + PlainDate a, b; + + a = PlainDate::forComponents(2000, 1, 1); + b = PlainDate::forComponents(2000, 1, 1); + assertEqual(a.compareTo(b), 0); + assertTrue(a == b); + assertFalse(a != b); + + a = PlainDate::forComponents(2000, 1, 1); + b = PlainDate::forComponents(2000, 1, 2); + assertLess(a.compareTo(b), 0); + assertMore(b.compareTo(a), 0); + assertTrue(a != b); + + a = PlainDate::forComponents(2000, 1, 1); + b = PlainDate::forComponents(2000, 2, 1); + assertLess(a.compareTo(b), 0); + assertMore(b.compareTo(a), 0); + assertTrue(a != b); + + a = PlainDate::forComponents(2000, 1, 1); + b = PlainDate::forComponents(2001, 1, 1); + assertLess(a.compareTo(b), 0); + assertMore(b.compareTo(a), 0); + assertTrue(a != b); +} + +test(PlainDateTest, forDateString) { + PlainDate pd; + pd = PlainDate::forDateString("2000-01-01"); + assertTrue(pd == PlainDate::forComponents(2000, 1, 1)); + + pd = PlainDate::forDateString("2099-02-28"); + assertTrue(pd == PlainDate::forComponents(2099, 2, 28)); + + pd = PlainDate::forDateString("2127-12-31"); + assertTrue(pd == PlainDate::forComponents(2127, 12, 31)); +} + +test(PlainDateTest, forDateString_invalid) { + PlainDate pd = PlainDate::forDateString("2000-01"); + assertTrue(pd.isError()); +} + +test(PlainDateTest, isLeapYear) { + assertFalse(PlainDate::isLeapYear(1900)); + assertTrue(PlainDate::isLeapYear(2000)); + assertFalse(PlainDate::isLeapYear(2001)); + assertTrue(PlainDate::isLeapYear(2004)); + assertFalse(PlainDate::isLeapYear(2100)); +} + +test(PlainDateTest, daysInMonth) { + assertEqual(31, PlainDate::daysInMonth(2000, 1)); + assertEqual(29, PlainDate::daysInMonth(2000, 2)); + assertEqual(31, PlainDate::daysInMonth(2000, 3)); + assertEqual(30, PlainDate::daysInMonth(2000, 4)); + assertEqual(31, PlainDate::daysInMonth(2000, 5)); + assertEqual(30, PlainDate::daysInMonth(2000, 6)); + assertEqual(31, PlainDate::daysInMonth(2000, 7)); + assertEqual(31, PlainDate::daysInMonth(2000, 8)); + assertEqual(30, PlainDate::daysInMonth(2000, 9)); + assertEqual(31, PlainDate::daysInMonth(2000, 10)); + assertEqual(30, PlainDate::daysInMonth(2000, 11)); + assertEqual(31, PlainDate::daysInMonth(2000, 12)); + + assertEqual(28, PlainDate::daysInMonth(2001, 2)); + assertEqual(29, PlainDate::daysInMonth(2004, 2)); + assertEqual(28, PlainDate::daysInMonth(2100, 2)); +} + +test(PlainDateTest, daysUntil) { + PlainDate today = PlainDate::forComponents(2000, 12, 25); + assertEqual(0, today.daysUntil(12, 25)); + + today = PlainDate::forComponents(2000, 12, 24); + assertEqual(1, today.daysUntil(12, 25)); + + // 2001 is a normal year, so 364 days until next Christmas + today = PlainDate::forComponents(2000, 12, 26); + assertEqual(364, today.daysUntil(12, 25)); + + // 2004 is a leap year so 365 days until next Christmas + today = PlainDate::forComponents(2003, 12, 26); + assertEqual(365, today.daysUntil(12, 25)); +} + +//--------------------------------------------------------------------------- + +test(PlainDateTest, incrementOneDay) { + PlainDate pd; + + pd = PlainDate::forComponents(2000, 2, 28); + plain_date_mutation::incrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2000, 2, 29)); + + pd = PlainDate::forComponents(2000, 2, 29); + plain_date_mutation::incrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2000, 3, 1)); + + pd = PlainDate::forComponents(2000, 3, 31); + plain_date_mutation::incrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2000, 4, 1)); + + pd = PlainDate::forComponents(2000, 12, 31); + plain_date_mutation::incrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2001, 1, 1)); + + pd = PlainDate::forComponents(2001, 2, 28); + plain_date_mutation::incrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2001, 3, 1)); + + pd = PlainDate::forComponents(2004, 2, 28); + plain_date_mutation::incrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2004, 2, 29)); +} + +test(PlainDateTest, decrementOneDay) { + PlainDate pd; + + pd = PlainDate::forComponents(2004, 2, 29); + plain_date_mutation::decrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2004, 2, 28)); + + pd = PlainDate::forComponents(2001, 3, 1); + plain_date_mutation::decrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2001, 2, 28)); + + pd = PlainDate::forComponents(2001, 1, 1); + plain_date_mutation::decrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2000, 12, 31)); + + pd = PlainDate::forComponents(2000, 4, 1); + plain_date_mutation::decrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2000, 3, 31)); + + pd = PlainDate::forComponents(2000, 3, 1); + plain_date_mutation::decrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2000, 2, 29)); + + pd = PlainDate::forComponents(2000, 2, 29); + plain_date_mutation::decrementOneDay(pd); + assertTrue(pd == PlainDate::forComponents(2000, 2, 28)); +} + +//--------------------------------------------------------------------------- + +void setup() { +#if ! defined(EPOXY_DUINO) + delay(1000); // wait to prevent garbage on SERIAL_PORT_MONITOR +#endif + SERIAL_PORT_MONITOR.begin(115200); + while (!SERIAL_PORT_MONITOR); // Leonardo/Micro +#if defined(EPOXY_DUINO) + SERIAL_PORT_MONITOR.setLineModeUnix(); +#endif +} + +void loop() { + aunit::TestRunner::run(); +} diff --git a/tests/LocalDateTimeTest/Makefile b/tests/PlainDateTimeTest/Makefile similarity index 88% rename from tests/LocalDateTimeTest/Makefile rename to tests/PlainDateTimeTest/Makefile index 6268ae494..04d2ec36f 100644 --- a/tests/LocalDateTimeTest/Makefile +++ b/tests/PlainDateTimeTest/Makefile @@ -1,6 +1,6 @@ # See https://github.com/bxparks/EpoxyDuino for documentation about this # Makefile to compile and run Arduino programs natively on Linux or MacOS. -APP_NAME := LocalDateTimeTest +APP_NAME := PlainDateTimeTest ARDUINO_LIBS := AUnit AceCommon AceTime AceSorting include ../../../EpoxyDuino/EpoxyDuino.mk diff --git a/tests/LocalDateTimeTest/LocalDateTimeTest.ino b/tests/PlainDateTimeTest/PlainDateTimeTest.ino similarity index 54% rename from tests/LocalDateTimeTest/LocalDateTimeTest.ino rename to tests/PlainDateTimeTest/PlainDateTimeTest.ino index f37634355..ff2270f8f 100644 --- a/tests/LocalDateTimeTest/LocalDateTimeTest.ino +++ b/tests/PlainDateTimeTest/PlainDateTimeTest.ino @@ -1,4 +1,4 @@ -#line 2 "LocalDateTimeTest.ino" +#line 2 "PlainDateTimeTest.ino" #include #include @@ -9,19 +9,18 @@ using ace_common::PrintStr; using namespace ace_time; //--------------------------------------------------------------------------- -// LocalDateTime +// PlainDateTime //--------------------------------------------------------------------------- -test(LocalDateTimeTest, accessors_mutators) { +test(PlainDateTimeTest, accessors_mutators) { // accessors - LocalDateTime dt = LocalDateTime::forComponents(2001, 2, 3, 4, 5, 6); + PlainDateTime dt = PlainDateTime::forComponents(2001, 2, 3, 4, 5, 6); assertEqual((int16_t) 2001, dt.year()); assertEqual(2, dt.month()); assertEqual(3, dt.day()); assertEqual(4, dt.hour()); assertEqual(5, dt.minute()); assertEqual(6, dt.second()); - assertEqual(0, dt.fold()); // mutators dt.year(2011); @@ -30,229 +29,215 @@ test(LocalDateTimeTest, accessors_mutators) { dt.hour(14); dt.minute(15); dt.second(16); - dt.fold(1); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(13, dt.day()); assertEqual(14, dt.hour()); assertEqual(15, dt.minute()); assertEqual(16, dt.second()); - assertEqual(1, dt.fold()); } -test(LocalDateTimeTest, constructor_with_fold) { - LocalDateTime dt = LocalDateTime::forComponents( - 2001, 2, 3, 4, 5, 6, 1 /*fold*/); - assertEqual((int16_t) 2001, dt.year()); - assertEqual(2, dt.month()); - assertEqual(3, dt.day()); - assertEqual(4, dt.hour()); - assertEqual(5, dt.minute()); - assertEqual(6, dt.second()); - assertEqual(1, dt.fold()); -} - -test(LocalDateTimeTest, invalidSeconds) { - LocalDateTime dt = LocalDateTime::forEpochSeconds( - LocalDate::kInvalidEpochSeconds); +test(PlainDateTimeTest, invalidSeconds) { + PlainDateTime dt = PlainDateTime::forEpochSeconds( + PlainDate::kInvalidEpochSeconds); assertTrue(dt.isError()); - assertEqual(LocalDate::kInvalidEpochSeconds, dt.toEpochSeconds()); - assertEqual(LocalDate::kInvalidEpochDays, dt.toEpochDays()); + assertEqual(PlainDate::kInvalidEpochSeconds, dt.toEpochSeconds()); + assertEqual(PlainDate::kInvalidEpochDays, dt.toEpochDays()); } -test(LocalDateTimeTest, forError) { - LocalDateTime dt = LocalDateTime::forError(); +test(PlainDateTimeTest, forError) { + PlainDateTime dt = PlainDateTime::forError(); assertTrue(dt.isError()); } -test(LocalDateTimeTest, isError) { - // Good LocalDateTime. +test(PlainDateTimeTest, isError) { + // Good PlainDateTime. // 2018-01-01 00:00:00Z - LocalDateTime dt = LocalDateTime::forComponents(2018, 1, 1, 0, 0, 0); + PlainDateTime dt = PlainDateTime::forComponents(2018, 1, 1, 0, 0, 0); assertFalse(dt.isError()); // bad year - dt = LocalDateTime::forComponents(-1, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(-1, 1, 1, 0, 0, 0); assertTrue(dt.isError()); // allowed, min FROM field - dt = LocalDateTime::forComponents(0, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(0, 1, 1, 0, 0, 0); assertFalse(dt.isError()); // allowed, max TO field - dt = LocalDateTime::forComponents(9999, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(9999, 1, 1, 0, 0, 0); assertFalse(dt.isError()); // allowed, max UNTIL field - dt = LocalDateTime::forComponents(10000, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(10000, 1, 1, 0, 0, 0); assertFalse(dt.isError()); // bad month - dt = LocalDateTime::forComponents(2018, 0, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(2018, 0, 1, 0, 0, 0); assertTrue(dt.isError()); // bad month - dt = LocalDateTime::forComponents(2018, 13, 0, 0, 0, 0); + dt = PlainDateTime::forComponents(2018, 13, 0, 0, 0, 0); assertTrue(dt.isError()); // bad day - dt = LocalDateTime::forComponents(2018, 1, 0, 0, 0, 0); + dt = PlainDateTime::forComponents(2018, 1, 0, 0, 0, 0); assertTrue(dt.isError()); // bad day - dt = LocalDateTime::forComponents(2018, 1, 32, 0, 0, 0); + dt = PlainDateTime::forComponents(2018, 1, 32, 0, 0, 0); assertTrue(dt.isError()); // bad hour - dt = LocalDateTime::forComponents(2018, 1, 1, 25, 0, 0); + dt = PlainDateTime::forComponents(2018, 1, 1, 25, 0, 0); assertTrue(dt.isError()); // bad minute - dt = LocalDateTime::forComponents(2018, 1, 1, 0, 60, 0); + dt = PlainDateTime::forComponents(2018, 1, 1, 0, 60, 0); assertTrue(dt.isError()); // bad second - dt = LocalDateTime::forComponents(2018, 1, 1, 0, 0, 60); + dt = PlainDateTime::forComponents(2018, 1, 1, 0, 0, 60); assertTrue(dt.isError()); } -test(LocalDateTimeTest, forComponents) { +test(PlainDateTimeTest, forComponents) { testing::EpochYearContext context(2000); - LocalDateTime dt; + PlainDateTime dt; // 1931-12-13 20:45:52Z, smalltest datetime using int32_t from AceTime Epoch. // Let's use +1 of that since INT_MIN will be used to indicate an error. - dt = LocalDateTime::forComponents(1931, 12, 13, 20, 45, 53); + dt = PlainDateTime::forComponents(1931, 12, 13, 20, 45, 53); assertEqual((int32_t) -24856, dt.toEpochDays()); assertEqual((int32_t) -13899, dt.toUnixDays()); - assertEqual(LocalDate::kMinEpochSeconds, dt.toEpochSeconds()); - assertEqual(LocalDate::kSunday, dt.dayOfWeek()); + assertEqual(PlainDate::kMinEpochSeconds, dt.toEpochSeconds()); + assertEqual(PlainDate::kSunday, dt.dayOfWeek()); // 2000-01-01 00:00:00Z Saturday - dt = LocalDateTime::forComponents(2000, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(2000, 1, 1, 0, 0, 0); assertEqual((int32_t) 0, dt.toEpochDays()); assertEqual((int32_t) 10957, dt.toUnixDays()); assertEqual((acetime_t) 0, dt.toEpochSeconds()); - assertEqual(LocalDate::kSaturday, dt.dayOfWeek()); + assertEqual(PlainDate::kSaturday, dt.dayOfWeek()); // 2000-01-02 00:00:00Z Sunday - dt = LocalDateTime::forComponents(2000, 1, 2, 0, 0, 0); + dt = PlainDateTime::forComponents(2000, 1, 2, 0, 0, 0); assertEqual((int32_t) 1, dt.toEpochDays()); assertEqual((int32_t) 10958, dt.toUnixDays()); assertEqual((acetime_t) 86400, dt.toEpochSeconds()); - assertEqual(LocalDate::kSunday, dt.dayOfWeek()); + assertEqual(PlainDate::kSunday, dt.dayOfWeek()); // 2000-02-29 00:00:00Z Tuesday - dt = LocalDateTime::forComponents(2000, 2, 29, 0, 0, 0); + dt = PlainDateTime::forComponents(2000, 2, 29, 0, 0, 0); assertEqual((int32_t) 59, dt.toEpochDays()); assertEqual((int32_t) 11016, dt.toUnixDays()); assertEqual((acetime_t) 86400 * 59, dt.toEpochSeconds()); - assertEqual(LocalDate::kTuesday, dt.dayOfWeek()); + assertEqual(PlainDate::kTuesday, dt.dayOfWeek()); // 2018-01-01 00:00:00Z Monday - dt = LocalDateTime::forComponents(2018, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(2018, 1, 1, 0, 0, 0); assertEqual((int32_t) 6575, dt.toEpochDays()); assertEqual((int32_t) 17532, dt.toUnixDays()); assertEqual(6575 * (acetime_t) 86400, dt.toEpochSeconds()); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); // 2038-01-19 03:14:07Z (largest value using Unix Epoch) - dt = LocalDateTime::forComponents(2038, 1, 19, 3, 14, 7); + dt = PlainDateTime::forComponents(2038, 1, 19, 3, 14, 7); assertEqual((int32_t) 13898, dt.toEpochDays()); assertEqual((int32_t) 24855, dt.toUnixDays()); assertEqual((acetime_t) 1200798847, dt.toEpochSeconds()); - assertEqual(LocalDate::kTuesday, dt.dayOfWeek()); + assertEqual(PlainDate::kTuesday, dt.dayOfWeek()); // 2068-01-19 03:14:06Z (one second before largest AceTime Epoch) - dt = LocalDateTime::forComponents(2068, 1, 19, 3, 14, 6); + dt = PlainDateTime::forComponents(2068, 1, 19, 3, 14, 6); assertEqual((int32_t) 24855, dt.toEpochDays()); assertEqual((int32_t) 35812, dt.toUnixDays()); assertEqual((acetime_t) (INT32_MAX - 1), dt.toEpochSeconds()); - assertEqual(LocalDate::kThursday, dt.dayOfWeek()); + assertEqual(PlainDate::kThursday, dt.dayOfWeek()); // 2068-01-19 03:14:07Z (largest value for AceTime Epoch). - dt = LocalDateTime::forComponents(2068, 1, 19, 3, 14, 7); + dt = PlainDateTime::forComponents(2068, 1, 19, 3, 14, 7); assertEqual((int32_t) 24855, dt.toEpochDays()); assertEqual((int32_t) 35812, dt.toUnixDays()); assertEqual((acetime_t) INT32_MAX, dt.toEpochSeconds()); - assertEqual(LocalDate::kThursday, dt.dayOfWeek()); + assertEqual(PlainDate::kThursday, dt.dayOfWeek()); } -test(LocalDateTimeTest, toAndForUnixSeconds64) { - LocalDateTime dt; - LocalDateTime udt; +test(PlainDateTimeTest, toAndForUnixSeconds64) { + PlainDateTime dt; + PlainDateTime udt; // Verify error sentinel. - dt = LocalDateTime::forUnixSeconds64(LocalDate::kInvalidUnixSeconds64); + dt = PlainDateTime::forUnixSeconds64(PlainDate::kInvalidUnixSeconds64); assertTrue(dt.isError()); // Verify that 64-bit unixSeconds allows dates beyond 32-bit limit. // 1970 - 1770 = 200 years // = 200 * 365 + (200/4) leap years - 2 (1800, 1900 are not leap) // = 73048 days - dt = LocalDateTime::forComponents(1770, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(1770, 1, 1, 0, 0, 0); assertEqual((int64_t) -73048 * 86400, dt.toUnixSeconds64()); - udt = LocalDateTime::forUnixSeconds64((int64_t) -73048 * 86400); + udt = PlainDateTime::forUnixSeconds64((int64_t) -73048 * 86400); assertTrue(dt == udt); // 1931-12-13 20:45:52Z, smalltest datetime using int32_t from AceTime Epoch. // Let's use +1 of that since INT_MIN will be used to indicate an error. - dt = LocalDateTime::forComponents(1931, 12, 13, 20, 45, 53); + dt = PlainDateTime::forComponents(1931, 12, 13, 20, 45, 53); assertEqual((int64_t) -1200798847, dt.toUnixSeconds64()); - udt = LocalDateTime::forUnixSeconds64(dt.toUnixSeconds64()); + udt = PlainDateTime::forUnixSeconds64(dt.toUnixSeconds64()); assertTrue(dt == udt); // 1970-01-01 00:00:00Z - dt = LocalDateTime::forComponents(1970, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(1970, 1, 1, 0, 0, 0); assertEqual((int64_t) 0, dt.toUnixSeconds64()); - udt = LocalDateTime::forUnixSeconds64(dt.toUnixSeconds64()); + udt = PlainDateTime::forUnixSeconds64(dt.toUnixSeconds64()); assertTrue(dt == udt); // 2000-01-01 00:00:00Z - dt = LocalDateTime::forComponents(2000, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(2000, 1, 1, 0, 0, 0); assertEqual((int64_t) 946684800, dt.toUnixSeconds64()); - udt = LocalDateTime::forUnixSeconds64(dt.toUnixSeconds64()); + udt = PlainDateTime::forUnixSeconds64(dt.toUnixSeconds64()); assertTrue(dt == udt); // 2018-01-01 00:00:00Z - dt = LocalDateTime::forComponents(2018, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(2018, 1, 1, 0, 0, 0); assertEqual((int64_t) 1514764800, dt.toUnixSeconds64()); - udt = LocalDateTime::forUnixSeconds64(dt.toUnixSeconds64()); + udt = PlainDateTime::forUnixSeconds64(dt.toUnixSeconds64()); assertTrue(dt == udt); // 2038-01-19 03:14:06Z (largest value - 1 using 32-bit Unix Seconds) - dt = LocalDateTime::forComponents(2038, 1, 19, 3, 14, 6); + dt = PlainDateTime::forComponents(2038, 1, 19, 3, 14, 6); assertEqual((int64_t) (INT32_MAX - 1), dt.toUnixSeconds64()); - udt = LocalDateTime::forUnixSeconds64(dt.toUnixSeconds64()); + udt = PlainDateTime::forUnixSeconds64(dt.toUnixSeconds64()); assertTrue(dt == udt); // 2038-01-19 03:14:08Z (largest value + 1 using 32-bit Unix Seconds) - dt = LocalDateTime::forComponents(2038, 1, 19, 3, 14, 8); + dt = PlainDateTime::forComponents(2038, 1, 19, 3, 14, 8); assertEqual((int64_t) INT32_MAX + 1, dt.toUnixSeconds64()); - udt = LocalDateTime::forUnixSeconds64(dt.toUnixSeconds64()); + udt = PlainDateTime::forUnixSeconds64(dt.toUnixSeconds64()); assertTrue(dt == udt); // 2068-01-19 03:14:07Z (largest value for 32-bit AceTime seconds) should work // with 64-bit Unix seconds. - dt = LocalDateTime::forComponents(2068, 1, 19, 3, 14, 7); + dt = PlainDateTime::forComponents(2068, 1, 19, 3, 14, 7); assertEqual((int64_t) 3094168447, dt.toUnixSeconds64()); - udt = LocalDateTime::forUnixSeconds64(dt.toUnixSeconds64()); + udt = PlainDateTime::forUnixSeconds64(dt.toUnixSeconds64()); assertTrue(dt == udt); // Verify that year 2170 works just fine with 64-bit Unix Seconds. // 2170 - 1970 = 200 years // = 73049 days, instead of 73048 days, because 2000 was a leap year. - dt = LocalDateTime::forComponents(2170, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(2170, 1, 1, 0, 0, 0); assertEqual((int64_t) 73049 * 86400, dt.toUnixSeconds64()); - udt = LocalDateTime::forUnixSeconds64((int64_t) 73049 * 86400); + udt = PlainDateTime::forUnixSeconds64((int64_t) 73049 * 86400); assertTrue(dt == udt); } -test(LocalDateTimeTest, forEpochSeconds) { +test(PlainDateTimeTest, forEpochSeconds) { testing::EpochYearContext context(2000); // 2029-12-31 23:59:59Z Monday - LocalDateTime dt = LocalDateTime::forEpochSeconds( + PlainDateTime dt = PlainDateTime::forEpochSeconds( 10958 * (acetime_t) 86400 - 1); assertEqual((int16_t) 2029, dt.year()); @@ -261,92 +246,74 @@ test(LocalDateTimeTest, forEpochSeconds) { assertEqual(23, dt.hour()); assertEqual(59, dt.minute()); assertEqual(59, dt.second()); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); - assertEqual(0, dt.fold()); -} - -test(LocalDateTimeTest, forEpochSeconds_withFold) { - testing::EpochYearContext context(2000); - - // 2029-12-31 23:59:59Z Monday - LocalDateTime dt = LocalDateTime::forEpochSeconds( - 10958 * (acetime_t) 86400 - 1, 1 /*fold*/); - - assertEqual((int16_t) 2029, dt.year()); - assertEqual(12, dt.month()); - assertEqual(31, dt.day()); - assertEqual(23, dt.hour()); - assertEqual(59, dt.minute()); - assertEqual(59, dt.second()); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); - assertEqual(1, dt.fold()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); } -test(LocalDateTimeTest, compareTo) { - LocalDateTime a = LocalDateTime::forComponents(2018, 1, 1, 12, 0, 0); - LocalDateTime b = LocalDateTime::forComponents(2018, 1, 1, 12, 0, 0); +test(PlainDateTimeTest, compareTo) { + PlainDateTime a = PlainDateTime::forComponents(2018, 1, 1, 12, 0, 0); + PlainDateTime b = PlainDateTime::forComponents(2018, 1, 1, 12, 0, 0); assertEqual(a.compareTo(b), 0); assertTrue(a == b); assertFalse(a != b); - a = LocalDateTime::forComponents(2018, 1, 1, 12, 0, 0); - b = LocalDateTime::forComponents(2018, 1, 1, 12, 0, 1); + a = PlainDateTime::forComponents(2018, 1, 1, 12, 0, 0); + b = PlainDateTime::forComponents(2018, 1, 1, 12, 0, 1); assertLess(a.compareTo(b), 0); assertMore(b.compareTo(a), 0); assertTrue(a != b); - a = LocalDateTime::forComponents(2018, 1, 1, 12, 0, 0); - b = LocalDateTime::forComponents(2018, 1, 1, 12, 1, 0); + a = PlainDateTime::forComponents(2018, 1, 1, 12, 0, 0); + b = PlainDateTime::forComponents(2018, 1, 1, 12, 1, 0); assertLess(a.compareTo(b), 0); assertMore(b.compareTo(a), 0); assertTrue(a != b); - a = LocalDateTime::forComponents(2018, 1, 1, 12, 0, 0); - b = LocalDateTime::forComponents(2018, 1, 2, 12, 0, 0); + a = PlainDateTime::forComponents(2018, 1, 1, 12, 0, 0); + b = PlainDateTime::forComponents(2018, 1, 2, 12, 0, 0); assertLess(a.compareTo(b), 0); assertMore(b.compareTo(a), 0); assertTrue(a != b); - a = LocalDateTime::forComponents(2018, 1, 1, 12, 0, 0); - b = LocalDateTime::forComponents(2018, 2, 1, 12, 0, 0); + a = PlainDateTime::forComponents(2018, 1, 1, 12, 0, 0); + b = PlainDateTime::forComponents(2018, 2, 1, 12, 0, 0); assertLess(a.compareTo(b), 0); assertMore(b.compareTo(a), 0); assertTrue(a != b); - a = LocalDateTime::forComponents(2018, 1, 1, 12, 0, 0); - b = LocalDateTime::forComponents(2019, 1, 1, 12, 0, 0); + a = PlainDateTime::forComponents(2018, 1, 1, 12, 0, 0); + b = PlainDateTime::forComponents(2019, 1, 1, 12, 0, 0); assertLess(a.compareTo(b), 0); assertMore(b.compareTo(a), 0); assertTrue(a != b); } -test(LocalDateTimeTest, dayOfWeek) { +test(PlainDateTimeTest, dayOfWeek) { // 2018-01-01 00:00:00Z Monday - LocalDateTime dt = LocalDateTime::forComponents(2018, 1, 1, 0, 0, 0); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + PlainDateTime dt = PlainDateTime::forComponents(2018, 1, 1, 0, 0, 0); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); dt.hour(23); // 2018-01-01 23:00:00Z, no change to dayOfWeek - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); dt.minute(40); // 2018-01-01 23:40:00Z, no change to dayOfWeek - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); dt.second(3); // 2018-01-01 23:40:03Z, no change to dayOfWeek - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); dt.day(2); // 2018-01-02 23:40:03+00:45, changes dayOfWeek - assertEqual(LocalDate::kTuesday, dt.dayOfWeek()); + assertEqual(PlainDate::kTuesday, dt.dayOfWeek()); dt.month(2); // 2018-02-02 23:40:03+00:45, changes dayOfWeek - assertEqual(LocalDate::kFriday, dt.dayOfWeek()); + assertEqual(PlainDate::kFriday, dt.dayOfWeek()); dt.year(2020); // 2020-02-02 23:40:03+00:45, changes dayOfWeek - assertEqual(LocalDate::kSunday, dt.dayOfWeek()); + assertEqual(PlainDate::kSunday, dt.dayOfWeek()); } -test(LocalDateTimeTest, forDateString) { +test(PlainDateTimeTest, forDateString) { // exact ISO8601 format - LocalDateTime dt = LocalDateTime::forDateString(F("2018-08-31T13:48:01")); + PlainDateTime dt = PlainDateTime::forDateString(F("2018-08-31T13:48:01")); assertFalse(dt.isError()); assertEqual((int16_t) 2018, dt.year()); assertEqual(8, dt.month()); @@ -354,10 +321,10 @@ test(LocalDateTimeTest, forDateString) { assertEqual(13, dt.hour()); assertEqual(48, dt.minute()); assertEqual(1, dt.second()); - assertEqual(LocalDate::kFriday, dt.dayOfWeek()); + assertEqual(PlainDate::kFriday, dt.dayOfWeek()); // parser does not care about most separators, this may change in the future - dt = LocalDateTime::forDateString(F("2018/08/31 13#48#01")); + dt = PlainDateTime::forDateString(F("2018/08/31 13#48#01")); assertFalse(dt.isError()); assertEqual((int16_t) 2018, dt.year()); assertEqual(8, dt.month()); @@ -365,29 +332,29 @@ test(LocalDateTimeTest, forDateString) { assertEqual(13, dt.hour()); assertEqual(48, dt.minute()); assertEqual(1, dt.second()); - assertEqual(LocalDate::kFriday, dt.dayOfWeek()); + assertEqual(PlainDate::kFriday, dt.dayOfWeek()); } -test(LocalDateTimeTest, forDateString_errors) { +test(PlainDateTimeTest, forDateString_errors) { // empty string, too short - LocalDateTime dt = LocalDateTime::forDateString(""); + PlainDateTime dt = PlainDateTime::forDateString(""); assertTrue(dt.isError()); // not enough components - dt = LocalDateTime::forDateString(F("2018-08-31")); + dt = PlainDateTime::forDateString(F("2018-08-31")); assertTrue(dt.isError()); // too long - dt = LocalDateTime::forDateString(F("2018-08-31T13:48:01-07:00")); + dt = PlainDateTime::forDateString(F("2018-08-31T13:48:01-07:00")); assertTrue(dt.isError()); // too short - dt = LocalDateTime::forDateString(F("2018-08-31T13:48")); + dt = PlainDateTime::forDateString(F("2018-08-31T13:48")); assertTrue(dt.isError()); } -test(LocalDateTimeTest, printTo) { - LocalDateTime dt = LocalDateTime::forComponents(2020, 10, 30, 1, 2, 3); +test(PlainDateTimeTest, printTo) { + PlainDateTime dt = PlainDateTime::forComponents(2020, 10, 30, 1, 2, 3); PrintStr<30> dateString; dt.printTo(dateString); assertEqual(dateString.cstr(), "2020-10-30T01:02:03"); @@ -395,72 +362,72 @@ test(LocalDateTimeTest, printTo) { //--------------------------------------------------------------------------- -test(LocalDateTimeTest, spotcheck_epoch2000) { +test(PlainDateTimeTest, spotcheck_epoch2000) { // Change current epoch year to 2000, so the epoch is 2000-01-01T00:00:00. testing::EpochYearContext context(2000); - auto minDt = LocalDateTime::forEpochSeconds(LocalDate::kMinEpochSeconds); - auto expected = LocalDateTime::forComponents(1931, 12, 13, 20, 45, 53); + auto minDt = PlainDateTime::forEpochSeconds(PlainDate::kMinEpochSeconds); + auto expected = PlainDateTime::forComponents(1931, 12, 13, 20, 45, 53); assertTrue(expected == minDt); - auto maxDt = LocalDateTime::forEpochSeconds(LocalDate::kMaxEpochSeconds); - expected = LocalDateTime::forComponents(2068, 1, 19, 3, 14, 7); + auto maxDt = PlainDateTime::forEpochSeconds(PlainDate::kMaxEpochSeconds); + expected = PlainDateTime::forComponents(2068, 1, 19, 3, 14, 7); assertTrue(expected == maxDt); // Verify that toUnixDays() does not change if currentEpochYear() is changed. - auto dt = LocalDateTime::forComponents(1931, 12, 13, 20, 45, 53); + auto dt = PlainDateTime::forComponents(1931, 12, 13, 20, 45, 53); assertEqual((int32_t) -13899, dt.toUnixDays()); - dt = LocalDateTime::forComponents(2000, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(2000, 1, 1, 0, 0, 0); assertEqual((int32_t) 10957, dt.toUnixDays()); - dt = LocalDateTime::forComponents(2038, 1, 19, 3, 14, 7); + dt = PlainDateTime::forComponents(2038, 1, 19, 3, 14, 7); assertEqual((int32_t) 24855, dt.toUnixDays()); } -test(LocalDateTimeTest, spotcheck_epoch2050) { +test(PlainDateTimeTest, spotcheck_epoch2050) { // Change current epoch year to 2050, so the epoch is 2050-01-01T00:00:00. testing::EpochYearContext context(2050); // Same min date as epoch 2000, but 50 years later. - auto minDt = LocalDateTime::forEpochSeconds(LocalDate::kMinEpochSeconds); - auto expected = LocalDateTime::forComponents(1981, 12, 13, 20, 45, 53); + auto minDt = PlainDateTime::forEpochSeconds(PlainDate::kMinEpochSeconds); + auto expected = PlainDateTime::forComponents(1981, 12, 13, 20, 45, 53); assertTrue(expected == minDt); // Almost the same max date as epoch 2000, but one day later on Jan 20 instead // of the Jan 19, because 2000 was a leap year, but 2100 is not. - auto maxDt = LocalDateTime::forEpochSeconds(LocalDate::kMaxEpochSeconds); - expected = LocalDateTime::forComponents(2118, 1, 20, 3, 14, 7); + auto maxDt = PlainDateTime::forEpochSeconds(PlainDate::kMaxEpochSeconds); + expected = PlainDateTime::forComponents(2118, 1, 20, 3, 14, 7); assertTrue(expected == maxDt); // Verify that toUnixDays() does not change if currentEpochYear() is changed. - auto dt = LocalDateTime::forComponents(1931, 12, 13, 20, 45, 53); + auto dt = PlainDateTime::forComponents(1931, 12, 13, 20, 45, 53); assertEqual((int32_t) -13899, dt.toUnixDays()); - dt = LocalDateTime::forComponents(2000, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(2000, 1, 1, 0, 0, 0); assertEqual((int32_t) 10957, dt.toUnixDays()); - dt = LocalDateTime::forComponents(2038, 1, 19, 3, 14, 7); + dt = PlainDateTime::forComponents(2038, 1, 19, 3, 14, 7); assertEqual((int32_t) 24855, dt.toUnixDays()); } -test(LocalDateTimeTest, spotcheck_epoch2100) { +test(PlainDateTimeTest, spotcheck_epoch2100) { // Change current epoch year to 2100, so the epoch is 2100-01-01T00:00:00. testing::EpochYearContext context(2100); // Same min date as epoch 2000, but 100 years later. - auto minDt = LocalDateTime::forEpochSeconds(LocalDate::kMinEpochSeconds); - auto expected = LocalDateTime::forComponents(2031, 12, 13, 20, 45, 53); + auto minDt = PlainDateTime::forEpochSeconds(PlainDate::kMinEpochSeconds); + auto expected = PlainDateTime::forComponents(2031, 12, 13, 20, 45, 53); assertTrue(expected == minDt); // Almost the same max date as epoch 2000, but one day later on Jan 20 instead // of the Jan 19, because 2000 was a leap year, but 2100 is not. - auto maxDt = LocalDateTime::forEpochSeconds(LocalDate::kMaxEpochSeconds); - expected = LocalDateTime::forComponents(2168, 1, 20, 3, 14, 7); + auto maxDt = PlainDateTime::forEpochSeconds(PlainDate::kMaxEpochSeconds); + expected = PlainDateTime::forComponents(2168, 1, 20, 3, 14, 7); assertTrue(expected == maxDt); // Verify that toUnixDays() does not change if currentEpochYear() is changed. - auto dt = LocalDateTime::forComponents(1931, 12, 13, 20, 45, 53); + auto dt = PlainDateTime::forComponents(1931, 12, 13, 20, 45, 53); assertEqual((int32_t) -13899, dt.toUnixDays()); - dt = LocalDateTime::forComponents(2000, 1, 1, 0, 0, 0); + dt = PlainDateTime::forComponents(2000, 1, 1, 0, 0, 0); assertEqual((int32_t) 10957, dt.toUnixDays()); - dt = LocalDateTime::forComponents(2038, 1, 19, 3, 14, 7); + dt = PlainDateTime::forComponents(2038, 1, 19, 3, 14, 7); assertEqual((int32_t) 24855, dt.toUnixDays()); } diff --git a/tests/LocalTimeTest/Makefile b/tests/PlainTimeTest/Makefile similarity index 90% rename from tests/LocalTimeTest/Makefile rename to tests/PlainTimeTest/Makefile index 38d27021b..01b4e8d69 100644 --- a/tests/LocalTimeTest/Makefile +++ b/tests/PlainTimeTest/Makefile @@ -1,6 +1,6 @@ # See https://github.com/bxparks/EpoxyDuino for documentation about this # Makefile to compile and run Arduino programs natively on Linux or MacOS. -APP_NAME := LocalTimeTest +APP_NAME := PlainTimeTest ARDUINO_LIBS := AUnit AceCommon AceTime AceSorting include ../../../EpoxyDuino/EpoxyDuino.mk diff --git a/tests/PlainTimeTest/PlainTimeTest.ino b/tests/PlainTimeTest/PlainTimeTest.ino new file mode 100644 index 000000000..f05cc43e9 --- /dev/null +++ b/tests/PlainTimeTest/PlainTimeTest.ino @@ -0,0 +1,123 @@ +#line 2 "PlainTimeTest.ino" + +#include +#include + +using namespace ace_time; + +//--------------------------------------------------------------------------- +// PlainTime +//--------------------------------------------------------------------------- + +test(PlainTimeTest, accessors_mutators) { + // accessors + PlainTime pt = PlainTime::forComponents(1, 2, 3); + assertEqual(1, pt.hour()); + assertEqual(2, pt.minute()); + assertEqual(3, pt.second()); + + // mutators + pt.hour(11); + pt.minute(12); + pt.second(13); + assertEqual(11, pt.hour()); + assertEqual(12, pt.minute()); + assertEqual(13, pt.second()); +} + +test(PlainTimeTest, isError) { + assertFalse(PlainTime::forComponents(0, 0, 0).isError()); + assertFalse(PlainTime::forComponents(0, 59, 0).isError()); + assertFalse(PlainTime::forComponents(0, 59, 59).isError()); + assertFalse(PlainTime::forComponents(23, 59, 59).isError()); + assertFalse(PlainTime::forComponents(24, 0, 0).isError()); + + assertTrue(PlainTime::forComponents(24, 0, 1).isError()); + assertTrue(PlainTime::forComponents(25, 0, 0).isError()); + assertTrue(PlainTime::forComponents(0, 60, 0).isError()); + assertTrue(PlainTime::forComponents(0, 0, 60).isError()); +} + +test(PlainTimeTest, forError) { + PlainTime pt = PlainTime::forError(); + assertTrue(pt.isError()); + assertEqual(PlainTime::kInvalidSeconds, pt.toSeconds()); + + pt = PlainTime::forSeconds(PlainTime::kInvalidSeconds); + assertTrue(pt.isError()); +} + +test(PlainTimeTest, toAndFromSeconds) { + PlainTime pt; + + pt = PlainTime::forSeconds(0); + assertTrue(pt == PlainTime::forComponents(0, 0, 0)); + assertEqual((acetime_t) 0, pt.toSeconds()); + + pt = PlainTime::forSeconds(3662); + assertTrue(pt == PlainTime::forComponents(1, 1, 2)); + assertEqual((acetime_t) 3662, pt.toSeconds()); + + pt = PlainTime::forSeconds(86399); + assertTrue(pt == PlainTime::forComponents(23, 59, 59)); + assertEqual((acetime_t) 86399, pt.toSeconds()); +} + +test(PlainTimeTest, compareTo) { + PlainTime a, b; + + a = PlainTime::forComponents(0, 1, 1); + b = PlainTime::forComponents(0, 1, 1); + assertEqual(a.compareTo(b), 0); + assertTrue(a == b); + assertFalse(a != b); + + a = PlainTime::forComponents(0, 1, 1); + b = PlainTime::forComponents(0, 1, 2); + assertLess(a.compareTo(b), 0); + assertMore(b.compareTo(a), 0); + assertTrue(a != b); + + a = PlainTime::forComponents(0, 1, 1); + b = PlainTime::forComponents(0, 2, 1); + assertLess(a.compareTo(b), 0); + assertMore(b.compareTo(a), 0); + assertTrue(a != b); + + a = PlainTime::forComponents(0, 1, 1); + b = PlainTime::forComponents(1, 1, 1); + assertLess(a.compareTo(b), 0); + assertMore(b.compareTo(a), 0); + assertTrue(a != b); +} + +test(PlainTimeTest, forTimeString) { + PlainTime pt; + pt = PlainTime::forTimeString("00:00:00"); + assertTrue(pt == PlainTime::forComponents(0, 0, 0)); + + pt = PlainTime::forTimeString("01:02:03"); + assertTrue(pt == PlainTime::forComponents(1, 2, 3)); +} + +test(PlainTimeTest, fortimeString_invalid) { + PlainTime pt = PlainTime::forTimeString("01:02"); + assertTrue(pt.isError()); +} + +//--------------------------------------------------------------------------- + +void setup() { +#if ! defined(EPOXY_DUINO) + delay(1000); // wait to prevent garbage SERIAL_PORT_MONITOR +#endif + SERIAL_PORT_MONITOR.begin(115200); + while (!SERIAL_PORT_MONITOR); // Leonardo/Micro +#if defined(EPOXY_DUINO) + SERIAL_PORT_MONITOR.setLineModeUnix(); +#endif +} + +void loop() { + aunit::TestRunner::run(); +} diff --git a/tests/TimeZoneTest/TimeZoneTest.ino b/tests/TimeZoneTest/TimeZoneTest.ino index 927127474..ffb5bd5d7 100644 --- a/tests/TimeZoneTest/TimeZoneTest.ino +++ b/tests/TimeZoneTest/TimeZoneTest.ino @@ -187,14 +187,14 @@ test(TimeZoneBasicTest, getZonedExtra) { &testingzonedb::kZoneAmerica_Los_Angeles, &zoneProcessor); - LocalDateTime ldt; + PlainDateTime pdt; OffsetDateTime dt; acetime_t epochSeconds; ZonedExtra ze; - // before spring forward to DST - ldt = LocalDateTime::forComponents(2018, 3, 11, 1, 59, 59); - ze = tz.getZonedExtra(ldt); + // 01:59:59 is before gap + pdt = PlainDateTime::forComponents(2018, 3, 11, 1, 59, 59); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeExact, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -203,8 +203,8 @@ test(TimeZoneBasicTest, getZonedExtra) { assertEqual(0, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -215,9 +215,9 @@ test(TimeZoneBasicTest, getZonedExtra) { assertEqual(0, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); - // right after spring forward to DST in the gap - ldt = LocalDateTime::forComponents(2018, 3, 11, 2, 0, 0); - ze = tz.getZonedExtra(ldt); + // 02:00:00 is in the gap + pdt = PlainDateTime::forComponents(2018, 3, 11, 2, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeGap, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -226,8 +226,8 @@ test(TimeZoneBasicTest, getZonedExtra) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -259,14 +259,14 @@ test(TimeZoneBasicTest, link) { assertEqual(testingzonedb::kZoneIdUS_Pacific, tz.getZoneId()); - LocalDateTime ldt; + PlainDateTime pdt; OffsetDateTime dt; acetime_t epochSeconds; ZonedExtra ze; - // just before spring forward to DST - ldt = LocalDateTime::forComponents(2018, 3, 11, 1, 59, 59); - ze = tz.getZonedExtra(ldt); + // 01:59:59 is before gap + pdt = PlainDateTime::forComponents(2018, 3, 11, 1, 59, 59); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertEqual(ZonedExtra::kTypeExact, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); assertEqual(0*60, ze.dstOffset().toMinutes()); @@ -274,8 +274,8 @@ test(TimeZoneBasicTest, link) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -286,9 +286,9 @@ test(TimeZoneBasicTest, link) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); - // just after spring forward to DST - ldt = LocalDateTime::forComponents(2018, 3, 11, 2, 0, 0); - ze = tz.getZonedExtra(ldt); + // 02:00:00 is in the gap + pdt = PlainDateTime::forComponents(2018, 3, 11, 2, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeGap, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -297,8 +297,8 @@ test(TimeZoneBasicTest, link) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -395,14 +395,14 @@ test(TimeZoneExtendedTest, getZoneExtra) { &testingzonedbx::kZoneAmerica_Los_Angeles, &zoneProcessor); - LocalDateTime ldt; + PlainDateTime pdt; OffsetDateTime dt; acetime_t epochSeconds; ZonedExtra ze; - // before spring forward to DST - ldt = LocalDateTime::forComponents(2018, 3, 11, 1, 59, 59); - ze = tz.getZonedExtra(ldt); + // before gap + pdt = PlainDateTime::forComponents(2018, 3, 11, 1, 59, 59); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeExact, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -411,8 +411,8 @@ test(TimeZoneExtendedTest, getZoneExtra) { assertEqual(0, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -423,9 +423,9 @@ test(TimeZoneExtendedTest, getZoneExtra) { assertEqual(0, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); - // right after spring forward to DST, this is a gap - ldt = LocalDateTime::forComponents(2018, 3, 11, 2, 0, 0); - ze = tz.getZonedExtra(ldt); + // 02:00 is in gap + pdt = PlainDateTime::forComponents(2018, 3, 11, 2, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeGap, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -434,8 +434,8 @@ test(TimeZoneExtendedTest, getZoneExtra) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -446,9 +446,9 @@ test(TimeZoneExtendedTest, getZoneExtra) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); - // just before fall back overlap - ldt = LocalDateTime::forComponents(2018, 11, 4, 0, 59, 0); - ze = tz.getZonedExtra(ldt); + // before overlap + pdt = PlainDateTime::forComponents(2018, 11, 4, 0, 59, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeExact, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -457,8 +457,8 @@ test(TimeZoneExtendedTest, getZoneExtra) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-7)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-7)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -469,9 +469,9 @@ test(TimeZoneExtendedTest, getZoneExtra) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); - // right at fall back overlap, 01:00 occurs twice, fold=0 picks the earlier - ldt = LocalDateTime::forComponents(2018, 11, 4, 1, 0, 0); - ze = tz.getZonedExtra(ldt); + // in overlap, 01:00 occurs twice, select the earlier + pdt = PlainDateTime::forComponents(2018, 11, 4, 1, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeOverlap, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -480,8 +480,8 @@ test(TimeZoneExtendedTest, getZoneExtra) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-7)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-7)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -492,9 +492,9 @@ test(TimeZoneExtendedTest, getZoneExtra) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); - // fall back overlap, 01:00 occurs twice, fold=1 picks the later - ldt = LocalDateTime::forComponents(2018, 11, 4, 1, 0, 0, 1 /*fold*/); - ze = tz.getZonedExtra(ldt); + // in overlap, 01:00 occurs twice, select the later + pdt = PlainDateTime::forComponents(2018, 11, 4, 1, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kReversed); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeOverlap, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -503,8 +503,8 @@ test(TimeZoneExtendedTest, getZoneExtra) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -515,9 +515,9 @@ test(TimeZoneExtendedTest, getZoneExtra) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); - // 02:00 occurs once, after an hour of overlap - ldt = LocalDateTime::forComponents(2018, 11, 4, 2, 0, 0); - ze = tz.getZonedExtra(ldt); + // 02:00 is after the overlap + pdt = PlainDateTime::forComponents(2018, 11, 4, 2, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeExact, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -526,8 +526,8 @@ test(TimeZoneExtendedTest, getZoneExtra) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -559,14 +559,14 @@ test(TimeZoneExtendedTest, link) { assertEqual(testingzonedb::kZoneIdUS_Pacific, tz.getZoneId()); - LocalDateTime ldt; + PlainDateTime pdt; OffsetDateTime dt; acetime_t epochSeconds; ZonedExtra ze; - // just before spring forward to DST - ldt = LocalDateTime::forComponents(2018, 3, 11, 1, 59, 59); - ze = tz.getZonedExtra(ldt); + // 01:59:59 is before the gap + pdt = PlainDateTime::forComponents(2018, 3, 11, 1, 59, 59); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeExact, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -575,8 +575,8 @@ test(TimeZoneExtendedTest, link) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -587,9 +587,9 @@ test(TimeZoneExtendedTest, link) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); - // just after spring forward to DST - ldt = LocalDateTime::forComponents(2018, 3, 11, 2, 0, 0); - ze = tz.getZonedExtra(ldt); + // 02:00:00 is in the gap + pdt = PlainDateTime::forComponents(2018, 3, 11, 2, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeGap, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -598,8 +598,8 @@ test(TimeZoneExtendedTest, link) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -638,14 +638,14 @@ test(TimeZoneCompleteTest, getZoneExtra) { &testingzonedbc::kZoneAmerica_Los_Angeles, &zoneProcessor); - LocalDateTime ldt; + PlainDateTime pdt; OffsetDateTime dt; acetime_t epochSeconds; ZonedExtra ze; - // before spring forward to DST - ldt = LocalDateTime::forComponents(2018, 3, 11, 1, 59, 59); - ze = tz.getZonedExtra(ldt); + // before gap, 01:59:59-08:00 + pdt = PlainDateTime::forComponents(2018, 3, 11, 1, 59, 59); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeExact, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -654,8 +654,8 @@ test(TimeZoneCompleteTest, getZoneExtra) { assertEqual(0, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -666,9 +666,9 @@ test(TimeZoneCompleteTest, getZoneExtra) { assertEqual(0, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); - // right after spring forward to DST, this is a gap - ldt = LocalDateTime::forComponents(2018, 3, 11, 2, 0, 0); - ze = tz.getZonedExtra(ldt); + // 02:00 is a gap + pdt = PlainDateTime::forComponents(2018, 3, 11, 2, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeGap, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -677,8 +677,8 @@ test(TimeZoneCompleteTest, getZoneExtra) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -689,9 +689,9 @@ test(TimeZoneCompleteTest, getZoneExtra) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); - // just before fall back overlap - ldt = LocalDateTime::forComponents(2018, 11, 4, 0, 59, 0); - ze = tz.getZonedExtra(ldt); + // before overlap + pdt = PlainDateTime::forComponents(2018, 11, 4, 0, 59, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeExact, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -700,8 +700,8 @@ test(TimeZoneCompleteTest, getZoneExtra) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-7)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-7)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -712,9 +712,9 @@ test(TimeZoneCompleteTest, getZoneExtra) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); - // right at fall back overlap, 01:00 occurs twice, fold=0 picks the earlier - ldt = LocalDateTime::forComponents(2018, 11, 4, 1, 0, 0); - ze = tz.getZonedExtra(ldt); + // 01:00 occurs twice, kCompatible selects the earlier + pdt = PlainDateTime::forComponents(2018, 11, 4, 1, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeOverlap, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -723,8 +723,8 @@ test(TimeZoneCompleteTest, getZoneExtra) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-7)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-7)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -735,9 +735,9 @@ test(TimeZoneCompleteTest, getZoneExtra) { assertEqual(1*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); - // fall back overlap, 01:00 occurs twice, fold=1 picks the later - ldt = LocalDateTime::forComponents(2018, 11, 4, 1, 0, 0, 1 /*fold*/); - ze = tz.getZonedExtra(ldt); + // 01:00 occurs twice, kReversed selects the later + pdt = PlainDateTime::forComponents(2018, 11, 4, 1, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kReversed); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeOverlap, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -746,8 +746,8 @@ test(TimeZoneCompleteTest, getZoneExtra) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -758,9 +758,9 @@ test(TimeZoneCompleteTest, getZoneExtra) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); - // 02:00 occurs once, after an hour of overlap - ldt = LocalDateTime::forComponents(2018, 11, 4, 2, 0, 0); - ze = tz.getZonedExtra(ldt); + // 02:00 occurs once, just after the overlap + pdt = PlainDateTime::forComponents(2018, 11, 4, 2, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeExact, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -769,8 +769,8 @@ test(TimeZoneCompleteTest, getZoneExtra) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -802,14 +802,14 @@ test(TimeZoneCompleteTest, link) { assertEqual(testingzonedb::kZoneIdUS_Pacific, tz.getZoneId()); - LocalDateTime ldt; + PlainDateTime pdt; OffsetDateTime dt; acetime_t epochSeconds; ZonedExtra ze; - // just before spring forward to DST - ldt = LocalDateTime::forComponents(2018, 3, 11, 1, 59, 59); - ze = tz.getZonedExtra(ldt); + // 01:59:59 is before the gap + pdt = PlainDateTime::forComponents(2018, 3, 11, 1, 59, 59); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeExact, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -818,8 +818,8 @@ test(TimeZoneCompleteTest, link) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); @@ -830,9 +830,9 @@ test(TimeZoneCompleteTest, link) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PST"), ze.abbrev()); - // just after spring forward to DST - ldt = LocalDateTime::forComponents(2018, 3, 11, 2, 0, 0); - ze = tz.getZonedExtra(ldt); + // 02:00:00 is in the gap + pdt = PlainDateTime::forComponents(2018, 3, 11, 2, 0, 0); + ze = tz.getZonedExtra(pdt, Disambiguate::kCompatible); assertFalse(ze.isError()); assertEqual(ZonedExtra::kTypeGap, ze.type()); assertEqual(-8*60, ze.stdOffset().toMinutes()); @@ -841,8 +841,8 @@ test(TimeZoneCompleteTest, link) { assertEqual(0*60, ze.reqDstOffset().toMinutes()); assertEqual(F("PDT"), ze.abbrev()); // - dt = OffsetDateTime::forLocalDateTimeAndOffset( - ldt, TimeOffset::forHours(-8)); + dt = OffsetDateTime::forPlainDateTimeAndOffset( + pdt, TimeOffset::forHours(-8)); epochSeconds = dt.toEpochSeconds(); ze = tz.getZonedExtra(epochSeconds); assertFalse(ze.isError()); diff --git a/tests/TransitionStorageTest/TransitionStorageTest.ino b/tests/TransitionStorageTest/TransitionStorageTest.ino index a854b9194..66a08cb38 100644 --- a/tests/TransitionStorageTest/TransitionStorageTest.ino +++ b/tests/TransitionStorageTest/TransitionStorageTest.ino @@ -384,15 +384,15 @@ test(TransitionStorageTest, findTransitionForDateTime) { assertEqual(3, storage.mIndexFree); // 2000-01-01 00:00, far past - auto ldt = LocalDateTime::forComponents(2000, 1, 1, 0, 0, 0); - TransitionForDateTime r = storage.findTransitionForDateTime(ldt); + auto pdt = PlainDateTime::forComponents(2000, 1, 1, 0, 0, 0); + TransitionForDateTime r = storage.findTransitionForDateTime(pdt); assertEqual(r.num, 0); assertEqual(r.prev, nullptr); assertNotEqual(r.curr, nullptr); // 2000-01-30 01:00, matches Transition 1 - ldt = LocalDateTime::forComponents(2000, 1, 30, 1, 0, 0); - r = storage.findTransitionForDateTime(ldt); + pdt = PlainDateTime::forComponents(2000, 1, 30, 1, 0, 0); + r = storage.findTransitionForDateTime(pdt); assertEqual(r.num, 1); assertNotEqual(r.prev, nullptr); assertNotEqual(r.curr, nullptr); @@ -400,8 +400,8 @@ test(TransitionStorageTest, findTransitionForDateTime) { assertEqual(2000, r.curr->transitionTime.year); // 2001-04-01 02:30 is in the gap between Transition 1 and 2 - ldt = LocalDateTime::forComponents(2001, 4, 1, 2, 30, 0); - r = storage.findTransitionForDateTime(ldt); + pdt = PlainDateTime::forComponents(2001, 4, 1, 2, 30, 0); + r = storage.findTransitionForDateTime(pdt); assertEqual(r.num, 0); assertNotEqual(r.prev, nullptr); assertNotEqual(r.curr, nullptr); @@ -410,8 +410,8 @@ test(TransitionStorageTest, findTransitionForDateTime) { assertEqual(2001, r.curr->transitionTime.year); // 2002-10-27 01:30 is in the overlap between Transition 2 and 3 - ldt = LocalDateTime::forComponents(2002, 10, 27, 1, 30, 0); - r = storage.findTransitionForDateTime(ldt); + pdt = PlainDateTime::forComponents(2002, 10, 27, 1, 30, 0); + r = storage.findTransitionForDateTime(pdt); assertEqual(r.num, 2); assertNotEqual(r.prev, nullptr); assertNotEqual(r.curr, nullptr); @@ -420,8 +420,8 @@ test(TransitionStorageTest, findTransitionForDateTime) { assertEqual(2002, r.curr->transitionTime.year); // 2003-01-01 01:00 matches only Transition 3 - ldt = LocalDateTime::forComponents(2003, 1, 1, 1, 0, 0); - r = storage.findTransitionForDateTime(ldt); + pdt = PlainDateTime::forComponents(2003, 1, 1, 1, 0, 0); + r = storage.findTransitionForDateTime(pdt); assertEqual(r.num, 1); assertNotEqual(r.prev, nullptr); assertNotEqual(r.curr, nullptr); @@ -429,8 +429,8 @@ test(TransitionStorageTest, findTransitionForDateTime) { assertEqual(2002, r.curr->transitionTime.year); // 2005-01-01 00:00, far future - ldt = LocalDateTime::forComponents(2005, 1, 1, 0, 0, 0); - r = storage.findTransitionForDateTime(ldt); + pdt = PlainDateTime::forComponents(2005, 1, 1, 0, 0, 0); + r = storage.findTransitionForDateTime(pdt); assertEqual(r.num, 0); assertNotEqual(r.prev, nullptr); assertEqual(r.curr, nullptr); diff --git a/tests/TzDbTest/TzDbTest.ino b/tests/TzDbTest/TzDbTest.ino index ec2069f4a..50e61f0b3 100644 --- a/tests/TzDbTest/TzDbTest.ino +++ b/tests/TzDbTest/TzDbTest.ino @@ -75,8 +75,8 @@ test(ZonedDateTimeExtendedTest, Yukon2020) { dt = ZonedDateTime::forComponents(2020, 3, 8, 2, 0, 0, tz); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2020, 3, 8, 3, 0, 0); - assertTrue(expected == dt.localDateTime()); + auto expected = PlainDateTime::forComponents(2020, 3, 8, 3, 0, 0); + assertTrue(expected == dt.plainDateTime()); epochSeconds = dt.toEpochSeconds(); ze = ZonedExtra::forEpochSeconds(epochSeconds, tz); assertEqual("PDT", ze.abbrev()); diff --git a/tests/UnixTimeTest/UnixTimeTest.ino b/tests/UnixTimeTest/UnixTimeTest.ino index 7568e702e..1837b3cb0 100644 --- a/tests/UnixTimeTest/UnixTimeTest.ino +++ b/tests/UnixTimeTest/UnixTimeTest.ino @@ -3,7 +3,7 @@ /** * @file UnixTimeTest.ino * - * Quick and dirty validation of LocalDatEtime::toEpochSeconds() and + * Quick and dirty validation of PlainDateTime::toEpochSeconds() and * forEpochSeconds() against the "standard" library provided by some * Arduino platforms. The standard C/Unix is a big mess. See * http://www.catb.org/esr/time-programming/#_gmtime_3_and_localtime_3 and the @@ -47,7 +47,7 @@ using namespace ace_time; //--------------------------------------------------------------------------- test(UnixTimeTest, toEpochSeconds) { - auto dt = LocalDateTime::forComponents(2018, 1, 1, 0, 0, 0); + auto dt = PlainDateTime::forComponents(2018, 1, 1, 0, 0, 0); acetime_t epochSeconds = dt.toEpochSeconds(); struct tm t; @@ -101,7 +101,7 @@ test(UnixTimeTest, forEpochSeconds) { gmtime_r(&unixSeconds, &t); #endif - auto dt = LocalDateTime::forEpochSeconds(epochSeconds); + auto dt = PlainDateTime::forEpochSeconds(epochSeconds); assertEqual(dt.year(), (int16_t) (t.tm_year + 1900)); assertEqual(dt.month(), t.tm_mon + 1); assertEqual(dt.day(), t.tm_mday); diff --git a/tests/ZoneProcessorTest/ZoneProcessorTest.ino b/tests/ZoneProcessorTest/ZoneProcessorTest.ino index a0018df20..166bdf521 100644 --- a/tests/ZoneProcessorTest/ZoneProcessorTest.ino +++ b/tests/ZoneProcessorTest/ZoneProcessorTest.ino @@ -3,7 +3,7 @@ #include #include -using ace_time::LocalDate; +using ace_time::PlainDate; using ace_time::calcStartDayOfMonth; using ace_time::MonthDay; using ace_time::createAbbreviation; @@ -11,37 +11,37 @@ using ace_time::createAbbreviation; test(ZoneProcessorTest, calcStartDayOfMonth) { // 2018-11, Sun>=1 MonthDay monthDay = calcStartDayOfMonth( - 2018, 11, LocalDate::kSunday, 1); + 2018, 11, PlainDate::kSunday, 1); assertEqual(11, monthDay.month); assertEqual(4, monthDay.day); // 2018-11, lastSun monthDay = calcStartDayOfMonth( - 2018, 11, LocalDate::kSunday, 0); + 2018, 11, PlainDate::kSunday, 0); assertEqual(11, monthDay.month); assertEqual(25, monthDay.day); // 2018-11, Sun>=30, should shift to 2018-12-2 monthDay = calcStartDayOfMonth( - 2018, 11, LocalDate::kSunday, 30); + 2018, 11, PlainDate::kSunday, 30); assertEqual(12, monthDay.month); assertEqual(2, monthDay.day); // 2018-11, Mon<=7 monthDay = calcStartDayOfMonth( - 2018, 11, LocalDate::kMonday, -7); + 2018, 11, PlainDate::kMonday, -7); assertEqual(11, monthDay.month); assertEqual(5, monthDay.day); // 2018-11, Mon<=1, shifts back into October monthDay = calcStartDayOfMonth( - 2018, 11, LocalDate::kMonday, -1); + 2018, 11, PlainDate::kMonday, -1); assertEqual(10, monthDay.month); assertEqual(29, monthDay.day); // 2018-03, Thu>=9 monthDay = calcStartDayOfMonth( - 2018, 3, LocalDate::kThursday, 9); + 2018, 3, PlainDate::kThursday, 9); assertEqual(3, monthDay.month); assertEqual(15, monthDay.day); diff --git a/tests/ZonedDateTimeBasicTest/ZonedDateTimeBasicTest.ino b/tests/ZonedDateTimeBasicTest/ZonedDateTimeBasicTest.ino index 1f850aceb..9b1f58a43 100644 --- a/tests/ZonedDateTimeBasicTest/ZonedDateTimeBasicTest.ino +++ b/tests/ZonedDateTimeBasicTest/ZonedDateTimeBasicTest.ino @@ -67,8 +67,8 @@ test(ZonedDateTimeBasicTest, forComponents_beforeDst) { auto dt = ZonedDateTime::forComponents(2018, 3, 11, 1, 59, 0, tz); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 1, 59, 0); - assertTrue(expected == dt.localDateTime()); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 1, 59, 0); + assertTrue(expected == dt.plainDateTime()); } // TODO: Fix gap @@ -81,10 +81,10 @@ test(ZonedDateTimeBasicTest, forComponents_inDstGap) { auto dt = ZonedDateTime::forComponents(2018, 3, 11, 2, 1, 0, tz); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 3, 1, 0); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 3, 1, 0); dt.printTo(SERIAL_PORT_MONITOR); SERIAL_PORT_MONITOR.println(); - assertTrue(expected == dt.localDateTime()); + assertTrue(expected == dt.plainDateTime()); } */ @@ -95,8 +95,8 @@ test(ZonedDateTimeBasicTest, forComponents_inDst) { auto dt = ZonedDateTime::forComponents(2018, 3, 11, 3, 1, 0, tz); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 3, 1, 0); - assertTrue(expected == dt.localDateTime()); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 3, 1, 0); + assertTrue(expected == dt.plainDateTime()); } test(ZonedDateTimeBasicTest, forComponents_beforeStd) { @@ -107,8 +107,8 @@ test(ZonedDateTimeBasicTest, forComponents_beforeStd) { auto dt = ZonedDateTime::forComponents(2018, 11, 4, 0, 59, 0, tz); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 11, 4, 0, 59, 0); - assertTrue(expected == dt.localDateTime()); + auto expected = PlainDateTime::forComponents(2018, 11, 4, 0, 59, 0); + assertTrue(expected == dt.plainDateTime()); } test(ZonedDateTimeBasicTest, forComponents_inOverlap) { @@ -119,8 +119,8 @@ test(ZonedDateTimeBasicTest, forComponents_inOverlap) { auto dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 1, 0, tz); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 11, 4, 1, 1, 0); - assertTrue(expected == dt.localDateTime()); + auto expected = PlainDateTime::forComponents(2018, 11, 4, 1, 1, 0); + assertTrue(expected == dt.plainDateTime()); } test(ZonedDateTimeBasicTest, forComponents_afterOverlap) { @@ -130,8 +130,8 @@ test(ZonedDateTimeBasicTest, forComponents_afterOverlap) { auto dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 1, 0, tz); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 11, 4, 2, 1, 0); - assertTrue(expected == dt.localDateTime()); + auto expected = PlainDateTime::forComponents(2018, 11, 4, 2, 1, 0); + assertTrue(expected == dt.plainDateTime()); } // -------------------------------------------------------------------------- diff --git a/tests/ZonedDateTimeCompleteTest/ZonedDateTimeCompleteTest.ino b/tests/ZonedDateTimeCompleteTest/ZonedDateTimeCompleteTest.ino index 0a6da40e3..d2953098b 100644 --- a/tests/ZonedDateTimeCompleteTest/ZonedDateTimeCompleteTest.ino +++ b/tests/ZonedDateTimeCompleteTest/ZonedDateTimeCompleteTest.ino @@ -64,8 +64,8 @@ test(ZonedDateTimeCompleteTest, forComponents_isError) { ZonedDateTime dt = ZonedDateTime::forComponents(-200, 3, 11, 1, 59, 59, tz); const OffsetDateTime &odt = dt.offsetDateTime(); assertTrue(odt.isError()); - const LocalDateTime &ldt = dt.localDateTime(); - assertTrue(ldt.isError()); + const PlainDateTime &pdt = dt.plainDateTime(); + assertTrue(pdt.isError()); assertTrue(dt.isError()); // outside [0, 10000) range, should generate error @@ -73,133 +73,109 @@ test(ZonedDateTimeCompleteTest, forComponents_isError) { assertTrue(dt.isError()); } -test(ZonedDateTimeCompleteTest, forComponents_beforeDst) { +test(ZonedDateTimeCompleteTest, forComponents_beforeGap) { TimeZone tz = completeZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // 01:59 before spring forward should resolve to 01:59-08:00 + // 01:59 is before the gap and resolves to 01:59-08:00 auto dt = ZonedDateTime::forComponents(2018, 3, 11, 1, 59, 0, tz); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 1, 59, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); - - // check that fold=1 gives identical results, fold ignored for non-overlapping - dt = ZonedDateTime::forComponents(2018, 3, 11, 1, 59, 0, tz, 1 /*fold*/); - assertEqual(TimeOffset::forHours(-8).toMinutes(), - dt.timeOffset().toMinutes()); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 1, 59, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); } -test(ZonedDateTimeCompleteTest, forComponents_inDstGap) { +test(ZonedDateTimeCompleteTest, forComponents_inGap) { TimeZone tz = completeZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // 02:01 doesn't exist. For input fold=0, the timeOffset of the first - // candidate transition, i.e. the most recent matching Transition, is used, - // so the input is interpreted as 02:01-08:00 which gets normalized to - // 03:01-07:00. The output fold is set to 0 because there is only one matching - // instance. - auto dt = ZonedDateTime::forComponents(2018, 3, 11, 2, 1, 0, tz); + // 02:01 is in the gap, select the later time, normalized to 03:01-07:00. + auto dt = ZonedDateTime::forComponents(2018, 3, 11, 2, 1, 0, tz, + Disambiguate::kCompatible); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 3, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); - - // For 02:01, setting fold=1 causes the second transition to be selected, - // which has a UTC offset of -07:00, so this is interpreted as 02:01-07:00 - // which gets normalized to 01:01-08:00. - dt = ZonedDateTime::forComponents(2018, 3, 11, 2, 1, 0, tz, 1 /*fold*/); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 3, 1, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kGapLater); + + // Same 02:01, select the earlier time, normalized to 01:01-08:00. + dt = ZonedDateTime::forComponents(2018, 3, 11, 2, 1, 0, tz, + Disambiguate::kReversed); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - expected = LocalDateTime::forComponents(2018, 3, 11, 1, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + expected = PlainDateTime::forComponents(2018, 3, 11, 1, 1, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kGapEarlier); } -test(ZonedDateTimeCompleteTest, forComponents_inDst) { +test(ZonedDateTimeCompleteTest, forComponents_afterGap) { TimeZone tz = completeZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // 03:01(fold=0) should resolve to 03:01-07:00. - auto dt = ZonedDateTime::forComponents(2018, 3, 11, 3, 1, 0, tz); + // 03:01 is after the gap, should resolve to 03:01-07:00. + auto dt = ZonedDateTime::forComponents(2018, 3, 11, 3, 1, 0, tz, + Disambiguate::kCompatible); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 3, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); - - // 03:01(fold=1) should produce identical results, since there is no overlap - dt = ZonedDateTime::forComponents(2018, 3, 11, 3, 1, 0, tz, 1 /*fold*/); - assertEqual(TimeOffset::forHours(-7).toMinutes(), - dt.timeOffset().toMinutes()); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 3, 1, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); } -test(ZonedDateTimeCompleteTest, forComponents_beforeStd) { +test(ZonedDateTimeCompleteTest, forComponents_beforeOverlap) { TimeZone tz = completeZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // 00:59 is an hour before the DST->STD transition, so should return - // 00:59-07:00. - auto dt = ZonedDateTime::forComponents(2018, 11, 4, 0, 59, 0, tz); - assertEqual(TimeOffset::forHours(-7).toMinutes(), - dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 11, 4, 0, 59, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); - - // 00:59(fold=1) gives identical results - dt = ZonedDateTime::forComponents(2018, 11, 4, 0, 59, 0, tz, 1 /*fold*/); + // 00:59 is before the overlap, should return 00:59-07:00. + auto dt = ZonedDateTime::forComponents(2018, 11, 4, 0, 59, 0, tz, + Disambiguate::kCompatible); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + auto expected = PlainDateTime::forComponents(2018, 11, 4, 0, 59, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); } test(ZonedDateTimeCompleteTest, forComponents_inOverlap) { TimeZone tz = completeZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // There were two instances of 01:00 during fall back. The algorithm picks the - // earlier Transition for fold=0, so should resolve to 01:00-07:00. - auto dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 0, 0, tz); + // 01:02 occurs twice, select the earlier, should resolve to 01:02-08:00. + auto dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 2, 0, tz, + Disambiguate::kCompatible); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 11, 4, 1, 0, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + auto expected = PlainDateTime::forComponents(2018, 11, 4, 1, 2, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kOverlapEarlier); - // Changing the fold to 01:00(fold=1) selects the second instance, resolves to - // 01:01-08:00. - dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 0, 0, tz, 1 /*fold*/); - assertEqual(TimeOffset::forHours(-8).toMinutes(), + // select earlier explicitly, resolves to 01:02-07:00. + dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 2, 0, tz, + Disambiguate::kEarlier); + assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - expected = LocalDateTime::forComponents(2018, 11, 4, 1, 0, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 1); + expected = PlainDateTime::forComponents(2018, 11, 4, 1, 2, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kOverlapEarlier); - // Similarily 01:01(fold=0) selcts the earlier Transition, so should resolve - // to 01:01-07:00. - dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 1, 0, tz); - assertEqual(TimeOffset::forHours(-7).toMinutes(), + // Select later should resolve to 01:02-08:00. + dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 2, 0, tz, + Disambiguate::kLater); + assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - expected = LocalDateTime::forComponents(2018, 11, 4, 1, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + expected = PlainDateTime::forComponents(2018, 11, 4, 1, 2, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kOverlapLater); - // Changing the fold to 01:01(fold=1) selects the second instance, and - // resolves to 01:01-08:00. - dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 1, 0, tz, 1 /*fold*/); + // Disambiguate::kReversed also selects later, resolves to 01:02-07:00. + dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 2, 0, tz, + Disambiguate::kReversed); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - expected = LocalDateTime::forComponents(2018, 11, 4, 1, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 1); + expected = PlainDateTime::forComponents(2018, 11, 4, 1, 2, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kOverlapLater); } test(ZonedDateTimeCompleteTest, forComponents_afterOverlap) { @@ -207,46 +183,49 @@ test(ZonedDateTimeCompleteTest, forComponents_afterOverlap) { &kZoneAmerica_Los_Angeles); // 02:00 actually occurs only once, so should resolve to 02:00-08:00 - auto dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 0, 0, tz); + auto dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 0, 0, tz, + Disambiguate::kCompatible); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 11, 4, 2, 0, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + auto expected = PlainDateTime::forComponents(2018, 11, 4, 2, 0, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); - // 02:00(fold=1) should give identical results, because no overlap - dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 0, 0, tz, 1 /*fold*/); + // 02:00 with kLater should give same result + dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 0, 0, tz, + Disambiguate::kLater); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); - // 02:01 should resolve to 02:01-08:00 - dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 1, 0, tz); + // 02:00 with kEarlier should give same result + dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 1, 0, tz, + Disambiguate::kEarlier); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - expected = LocalDateTime::forComponents(2018, 11, 4, 2, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + expected = PlainDateTime::forComponents(2018, 11, 4, 2, 1, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); - // 02:01(fold=1) gives identical results because no overlap - dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 1, 0, tz, 1 /*fold*/); + // 02:00 with kReversed should give same result + dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 1, 0, tz, + Disambiguate::kReversed); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); } // -------------------------------------------------------------------------- -// ZonedDateTime::forEpochSeconds() with fold +// ZonedDateTime::forEpochSeconds() // -------------------------------------------------------------------------- -test(ZonedDateTimeCompleteTest, forEpochSecond_fall_back) { +test(ZonedDateTimeCompleteTest, forEpochSecond_around_overlap) { TimeZone tz = completeZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // Start our sampling at 01:29:00-07:00, which is 31 minutes before the DST - // fall-back. + // Start at 01:29:00-07:00, in overlap, 31 minutes before the fall-back. OffsetDateTime odt = OffsetDateTime::forComponents( 2022, 11, 6, 1, 29, 0, TimeOffset::forHours(-7)); acetime_t epochSeconds = odt.toEpochSeconds(); @@ -258,10 +237,10 @@ test(ZonedDateTimeCompleteTest, forEpochSecond_fall_back) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-7*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); // first occurrence + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); - // Go forward an hour. Should return 01:29:00-08:00, the second time this - // was seen, so fold should be 1. + // Go forward an hour. Should return 01:29:00-08:00, the second time this was + // seen. epochSeconds += 3600; dt = ZonedDateTime::forEpochSeconds(epochSeconds, tz); assertEqual(2022, dt.year()); @@ -271,10 +250,9 @@ test(ZonedDateTimeCompleteTest, forEpochSecond_fall_back) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-8*60, dt.timeOffset().toMinutes()); - assertEqual(1, dt.fold()); // second occurrence + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); - // Go forward another hour. Should return 02:29:00-08:00, which occurs only - // once, so fold should be 0. + // Go forward another hour. Should return 02:29:00-08:00, which is unique. epochSeconds += 3600; dt = ZonedDateTime::forEpochSeconds(epochSeconds, tz); assertEqual(2022, dt.year()); @@ -284,15 +262,14 @@ test(ZonedDateTimeCompleteTest, forEpochSecond_fall_back) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-8*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); // only occurrence + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); } -test(ZonedDateTimeCompleteTest, forEpochSecond_spring_forward) { +test(ZonedDateTimeCompleteTest, forEpochSecond_around_gap) { TimeZone tz = completeZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // Start our sampling at 01:29:00-08:00, which is 31 minutes before the DST - // spring forward. + // Start at 01:29:00-08:00, 31 minutes before the gap. OffsetDateTime odt = OffsetDateTime::forComponents( 2022, 3, 13, 1, 29, 0, TimeOffset::forHours(-8)); acetime_t epochSeconds = odt.toEpochSeconds(); @@ -305,7 +282,7 @@ test(ZonedDateTimeCompleteTest, forEpochSecond_spring_forward) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-8*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); // An hour later, we spring forward to 03:29:00-07:00. epochSeconds += 3600; @@ -317,15 +294,20 @@ test(ZonedDateTimeCompleteTest, forEpochSecond_spring_forward) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-7*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); } -test(ZonedDateTimeCompleteTest, forComponents_fall_back) { +// -------------------------------------------------------------------------- +// ZonedDateTime::forComponents() +// -------------------------------------------------------------------------- + +test(ZonedDateTimeCompleteTest, forComponents_overlap) { TimeZone tz = completeZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // First occurrence of 01:29:00, should be in -07:00. - auto dt = ZonedDateTime::forComponents(2022, 11, 6, 1, 29, 0, tz, 0 /*fold*/); + // 01:29:00, kCompatible should select the earlier, -07:00. + auto dt = ZonedDateTime::forComponents(2022, 11, 6, 1, 29, 0, tz, + Disambiguate::kCompatible); assertEqual(2022, dt.year()); assertEqual(11, dt.month()); assertEqual(6, dt.day()); @@ -333,10 +315,11 @@ test(ZonedDateTimeCompleteTest, forComponents_fall_back) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-7*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kOverlapEarlier, (uint8_t) dt.resolved()); - // Second occurrence of 01:29:00, should be in -08:00. - dt = ZonedDateTime::forComponents(2022, 11, 6, 1, 29, 0, tz, 1 /*fold*/); + // 01:29:00, kReversed should select the later, -08:00. + dt = ZonedDateTime::forComponents(2022, 11, 6, 1, 29, 0, tz, + Disambiguate::kReversed); assertEqual(2022, dt.year()); assertEqual(11, dt.month()); assertEqual(6, dt.day()); @@ -344,17 +327,16 @@ test(ZonedDateTimeCompleteTest, forComponents_fall_back) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-8*60, dt.timeOffset().toMinutes()); - assertEqual(1, dt.fold()); + assertEqual((uint8_t) Resolved::kOverlapLater, (uint8_t) dt.resolved()); } -test(ZonedDateTimeCompleteTest, forComponents_spring_forward) { +test(ZonedDateTimeCompleteTest, forComponents_gap) { TimeZone tz = completeZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // 02:29:00(fold=0) is in the gap during "spring forward" and selects the - // earlier Transition, which returns the later UTC, which gets normalized to - // the later Transition. - auto dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, 0 /*fold*/); + // 02:29:00 is in the gap, kCompatible selects the later, -07:00 + auto dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, + Disambiguate::kCompatible); assertEqual(2022, dt.year()); assertEqual(3, dt.month()); assertEqual(13, dt.day()); @@ -362,11 +344,11 @@ test(ZonedDateTimeCompleteTest, forComponents_spring_forward) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-7*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); // no overlap + assertEqual((uint8_t) Resolved::kGapLater, (uint8_t) dt.resolved()); - // 02:29:00(fold=1) is in the gap and selects the later Transition, which - // returns the earlier UTC, which gets normalized to the earlier Transition. - dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, 1 /*fold*/); + // 02:29:00 is in the gap, kReversed selects the earlier, -08:00 + dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, + Disambiguate::kReversed); assertEqual(2022, dt.year()); assertEqual(3, dt.month()); assertEqual(13, dt.day()); @@ -374,7 +356,7 @@ test(ZonedDateTimeCompleteTest, forComponents_spring_forward) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-8*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); // no overlap + assertEqual((uint8_t) Resolved::kGapEarlier, (uint8_t) dt.resolved()); } // -------------------------------------------------------------------------- @@ -415,7 +397,7 @@ test(ZonedDateTimeCompleteTest, normalize) { assertEqual(0, newDt.second()); // We must normalize() after mutation. - dt.normalize(); + dt.normalize(Disambiguate::kCompatible); epochSeconds = dt.toEpochSeconds(); newDt = ZonedDateTime::forEpochSeconds(epochSeconds, tz); assertEqual(2021, newDt.year()); @@ -451,12 +433,13 @@ test(ZonedDateTimeCompleteTest, morocco_2090) { assertEqual(1, dt.hour()); assertEqual(0, dt.minute()); assertEqual(0, dt.second()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); // During Ramadan, Morocco observes negative DST, and falls back to UTC+00:00. // In the year 2050, that happens at 2050-05-15T03:00:00. So 02:59:59 becomes // 02:00:00 one second later. - dt = ZonedDateTime::forComponents(2050, 5, 15, 2, 59, 59, tz, 0 /*fold*/); + dt = ZonedDateTime::forComponents(2050, 5, 15, 2, 59, 59, tz, + Disambiguate::kCompatible); acetime_t epochSeconds = dt.toEpochSeconds(); epochSeconds += 1; dt = ZonedDateTime::forEpochSeconds(epochSeconds, tz); @@ -466,7 +449,7 @@ test(ZonedDateTimeCompleteTest, morocco_2090) { assertEqual(2, dt.hour()); assertEqual(0, dt.minute()); assertEqual(0, dt.second()); - assertEqual(1, dt.fold()); // second occurrence + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); // Validate the epochSeconds of 2090-01-01. That date is exactly 40 years // after the custom epoch of 2050-01-01. So the number of elapsed epoch days @@ -483,8 +466,8 @@ test(ZonedDateTimeCompleteTest, morocco_2090) { // forward". // // Dateline Change skip Friday 30th Dec 2011 -// Thursday 29th December 2011 23:59:59 Hours UTC-10 -// Saturday 31st December 2011 00:00:00 Hours UTC+14 +// Thursday 29th December 2011 23:59:59 Hours UTC-10 +// Saturday 31st December 2011 00:00:00 Hours UTC+14 test(ZonedDateTimeCompleteTest, Pacific_Apia) { // Reconfigure the current epoch year to 2050 to allow calculations in the // year 2090. @@ -492,9 +475,9 @@ test(ZonedDateTimeCompleteTest, Pacific_Apia) { TimeZone tz = completeZoneManager.createForZoneInfo(&kZonePacific_Apia); - // Dec 29 23:59:59 UTC-10:00, one second before "mega spring forward" + // Dec 29 23:59:59 UTC-10:00, one second before the mega gap auto dt = ZonedDateTime::forComponents( - 2011, 12, 29, 23, 59, 59, tz, 0 /*fold*/); + 2011, 12, 29, 23, 59, 59, tz, Disambiguate::kCompatible); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(29, dt.day()); @@ -502,12 +485,12 @@ test(ZonedDateTimeCompleteTest, Pacific_Apia) { assertEqual(59, dt.minute()); assertEqual(59, dt.second()); assertEqual(-10*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); - // Dec 30, 00:00:00 is in the gap. Using fold=0 means using the first - // transition of UTC-10, which then gets normalized to Dec 31, 00:00:00 - // UTC+14:00. - dt = ZonedDateTime::forComponents(2011, 12, 30, 0, 0, 0, tz, 0 /*fold*/); + // Dec 30, 00:00 is in the gap, kCompatible selects the later, Dec 31, + // 00:00+14:00. + dt = ZonedDateTime::forComponents( + 2011, 12, 30, 0, 0, 0, tz, Disambiguate::kCompatible); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(31, dt.day()); @@ -515,12 +498,12 @@ test(ZonedDateTimeCompleteTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(14*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kGapLater, (uint8_t) dt.resolved()); - // Dec 30, 00:00:00 is in the gap. Using fold=1 means using the seconds - // transition of UTC+14, which then gets normalized to Dec 29, 00:00:00 - // UTC-10:00. - dt = ZonedDateTime::forComponents(2011, 12, 30, 0, 0, 0, tz, 1 /*fold*/); + // Dec 30, 00:00:00 is in the gap, kReversed selects the earlier, Dec 29, + // 00:00-10:00. + dt = ZonedDateTime::forComponents( + 2011, 12, 30, 0, 0, 0, tz, Disambiguate::kReversed); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(29, dt.day()); @@ -528,12 +511,12 @@ test(ZonedDateTimeCompleteTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(-10*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kGapEarlier, (uint8_t) dt.resolved()); - // Dec 30, 12:00:00 is still in the gap. Using fold=0 means using the first - // transition of UTC-10, which then gets normalized to Dec 31, 12:00:00 - // UTC+14:00. - dt = ZonedDateTime::forComponents(2011, 12, 30, 12, 0, 0, tz, 0 /*fold*/); + // Dec 30, 12:00:00 is still in the gap, kCompatible selects later, + // Dec 31, 12:00:00+14:00. + dt = ZonedDateTime::forComponents( + 2011, 12, 30, 12, 0, 0, tz, Disambiguate::kCompatible); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(31, dt.day()); @@ -541,12 +524,12 @@ test(ZonedDateTimeCompleteTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(14*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kGapLater, (uint8_t) dt.resolved()); - // Dec 30, 12:00:00 is still in the gap. Using fold=1 means using the second - // transition of UTC-10, which then gets normalized to Dec 29, 12:00:00 - // UTC-10:00. - dt = ZonedDateTime::forComponents(2011, 12, 30, 12, 0, 0, tz, 1 /*fold*/); + // Dec 30, 12:00:00 is still in the gap, kReversed selects earlier, + // Dec 29, 12:00:00-10:00. + dt = ZonedDateTime::forComponents( + 2011, 12, 30, 12, 0, 0, tz, Disambiguate::kReversed); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(29, dt.day()); @@ -554,10 +537,11 @@ test(ZonedDateTimeCompleteTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(-10*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kGapEarlier, (uint8_t) dt.resolved()); - // Dec 31, 00:00:00 is just after the gap. Using fold=0 means UTC+14. - dt = ZonedDateTime::forComponents(2011, 12, 31, 0, 0, 0, tz, 0 /*fold*/); + // Dec 31, 00:00:00 is just after the gap, kCompatible selects unique. + dt = ZonedDateTime::forComponents( + 2011, 12, 31, 0, 0, 0, tz, Disambiguate::kCompatible); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(31, dt.day()); @@ -565,10 +549,11 @@ test(ZonedDateTimeCompleteTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(14*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); - // Dec 31, 00:00:00 is outside the gap. Setting fold=1 is ignored. - dt = ZonedDateTime::forComponents(2011, 12, 31, 0, 0, 0, tz, 1 /*fold*/); + // Dec 31, 00:00:00 is outside the gap, kReversed selects same unique. + dt = ZonedDateTime::forComponents( + 2011, 12, 31, 0, 0, 0, tz, Disambiguate::kReversed); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(31, dt.day()); @@ -576,7 +561,7 @@ test(ZonedDateTimeCompleteTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(14*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); } // -------------------------------------------------------------------------- diff --git a/tests/ZonedDateTimeExtendedTest/ZonedDateTimeExtendedTest.ino b/tests/ZonedDateTimeExtendedTest/ZonedDateTimeExtendedTest.ino index cb81b0210..042679f25 100644 --- a/tests/ZonedDateTimeExtendedTest/ZonedDateTimeExtendedTest.ino +++ b/tests/ZonedDateTimeExtendedTest/ZonedDateTimeExtendedTest.ino @@ -63,8 +63,8 @@ test(ZonedDateTimeExtendedTest, forComponents_isError) { ZonedDateTime dt = ZonedDateTime::forComponents(-200, 3, 11, 1, 59, 59, tz); const OffsetDateTime &odt = dt.offsetDateTime(); assertTrue(odt.isError()); - const LocalDateTime &ldt = dt.localDateTime(); - assertTrue(ldt.isError()); + const PlainDateTime &pdt = dt.plainDateTime(); + assertTrue(pdt.isError()); assertTrue(dt.isError()); // outside [0, 10000) range, should generate error @@ -72,7 +72,7 @@ test(ZonedDateTimeExtendedTest, forComponents_isError) { assertTrue(dt.isError()); } -test(ZonedDateTimeExtendedTest, forComponents_beforeDst) { +test(ZonedDateTimeExtendedTest, forComponents_beforeGap) { TimeZone tz = extendedZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); @@ -80,125 +80,102 @@ test(ZonedDateTimeExtendedTest, forComponents_beforeDst) { auto dt = ZonedDateTime::forComponents(2018, 3, 11, 1, 59, 0, tz); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 1, 59, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); - - // check that fold=1 gives identical results, fold ignored for non-overlapping - dt = ZonedDateTime::forComponents(2018, 3, 11, 1, 59, 0, tz, 1 /*fold*/); - assertEqual(TimeOffset::forHours(-8).toMinutes(), - dt.timeOffset().toMinutes()); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 1, 59, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); } -test(ZonedDateTimeExtendedTest, forComponents_inDstGap) { +test(ZonedDateTimeExtendedTest, forComponents_inGap) { TimeZone tz = extendedZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // 02:01 doesn't exist. For input fold=0, the timeOffset of the first - // candidate transition, i.e. the most recent matching Transition, is used, - // so the input is interpreted as 02:01-08:00 which gets normalized to - // 03:01-07:00. The output fold is set to 0 because there is only one matching - // instance. - auto dt = ZonedDateTime::forComponents(2018, 3, 11, 2, 1, 0, tz); + // 02:01 is in the gap, select the later time, normalized to 03:01-07:00. + auto dt = ZonedDateTime::forComponents(2018, 3, 11, 2, 1, 0, tz, + Disambiguate::kCompatible); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 3, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); - - // For 02:01, setting fold=1 causes the second transition to be selected, - // which has a UTC offset of -07:00, so this is interpreted as 02:01-07:00 - // which gets normalized to 01:01-08:00. - dt = ZonedDateTime::forComponents(2018, 3, 11, 2, 1, 0, tz, 1 /*fold*/); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 3, 1, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kGapLater); + + // Same 02:01, select the earlier time, normalized to 01:01-08:00. + dt = ZonedDateTime::forComponents(2018, 3, 11, 2, 1, 0, tz, + Disambiguate::kReversed); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - expected = LocalDateTime::forComponents(2018, 3, 11, 1, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + expected = PlainDateTime::forComponents(2018, 3, 11, 1, 1, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kGapEarlier); } -test(ZonedDateTimeExtendedTest, forComponents_inDst) { +test(ZonedDateTimeExtendedTest, forComponents_afterGap) { TimeZone tz = extendedZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // 03:01(fold=0) should resolve to 03:01-07:00. - auto dt = ZonedDateTime::forComponents(2018, 3, 11, 3, 1, 0, tz); - assertEqual(TimeOffset::forHours(-7).toMinutes(), - dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 3, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); - - // 03:01(fold=1) should produce identical results, since there is no overlap - dt = ZonedDateTime::forComponents(2018, 3, 11, 3, 1, 0, tz, 1 /*fold*/); + // 03:01 is after the gap, should resolve to 03:01-07:00. + auto dt = ZonedDateTime::forComponents(2018, 3, 11, 3, 1, 0, tz, + Disambiguate::kCompatible); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 3, 1, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); } -test(ZonedDateTimeExtendedTest, forComponents_beforeStd) { +test(ZonedDateTimeExtendedTest, forComponents_beforeOverlap) { TimeZone tz = extendedZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); // 00:59 is an hour before the DST->STD transition, so should return // 00:59-07:00. - auto dt = ZonedDateTime::forComponents(2018, 11, 4, 0, 59, 0, tz); - assertEqual(TimeOffset::forHours(-7).toMinutes(), - dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 11, 4, 0, 59, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); - - // 00:59(fold=1) gives identical results - dt = ZonedDateTime::forComponents(2018, 11, 4, 0, 59, 0, tz, 1 /*fold*/); + auto dt = ZonedDateTime::forComponents(2018, 11, 4, 0, 59, 0, tz, + Disambiguate::kCompatible); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + auto expected = PlainDateTime::forComponents(2018, 11, 4, 0, 59, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); } test(ZonedDateTimeExtendedTest, forComponents_inOverlap) { TimeZone tz = extendedZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // There were two instances of 01:00 during fall back. The algorithm picks the - // earlier Transition for fold=0, so should resolve to 01:00-07:00. - auto dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 0, 0, tz); + // 01:02 occurs twice, select the earlier, should resolve to 01:02-08:00. + auto dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 2, 0, tz, + Disambiguate::kCompatible); assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 11, 4, 1, 0, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + auto expected = PlainDateTime::forComponents(2018, 11, 4, 1, 2, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kOverlapEarlier); - // Changing the fold to 01:00(fold=1) selects the second instance, resolves to - // 01:01-08:00. - dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 0, 0, tz, 1 /*fold*/); - assertEqual(TimeOffset::forHours(-8).toMinutes(), + // select earlier explicitly, resolves to 01:02-07:00. + dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 2, 0, tz, + Disambiguate::kEarlier); + assertEqual(TimeOffset::forHours(-7).toMinutes(), dt.timeOffset().toMinutes()); - expected = LocalDateTime::forComponents(2018, 11, 4, 1, 0, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 1); + expected = PlainDateTime::forComponents(2018, 11, 4, 1, 2, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kOverlapEarlier); - // Similarily 01:01(fold=0) selcts the earlier Transition, so should resolve - // to 01:01-07:00. - dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 1, 0, tz); - assertEqual(TimeOffset::forHours(-7).toMinutes(), + // Select later should resolve to 01:02-08:00. + dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 2, 0, tz, + Disambiguate::kLater); + assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - expected = LocalDateTime::forComponents(2018, 11, 4, 1, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + expected = PlainDateTime::forComponents(2018, 11, 4, 1, 2, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kOverlapLater); - // Changing the fold to 01:01(fold=1) selects the second instance, and - // resolves to 01:01-08:00. - dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 1, 0, tz, 1 /*fold*/); + // Disambiguate::kReversed also selects later, resolves to 01:02-07:00. + dt = ZonedDateTime::forComponents(2018, 11, 4, 1, 2, 0, tz, + Disambiguate::kReversed); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - expected = LocalDateTime::forComponents(2018, 11, 4, 1, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 1); + expected = PlainDateTime::forComponents(2018, 11, 4, 1, 2, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kOverlapLater); } test(ZonedDateTimeExtendedTest, forComponents_afterOverlap) { @@ -206,46 +183,49 @@ test(ZonedDateTimeExtendedTest, forComponents_afterOverlap) { &kZoneAmerica_Los_Angeles); // 02:00 actually occurs only once, so should resolve to 02:00-08:00 - auto dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 0, 0, tz); + auto dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 0, 0, tz, + Disambiguate::kCompatible); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - auto expected = LocalDateTime::forComponents(2018, 11, 4, 2, 0, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + auto expected = PlainDateTime::forComponents(2018, 11, 4, 2, 0, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); - // 02:00(fold=1) should give identical results, because no overlap - dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 0, 0, tz, 1 /*fold*/); + // 02:00 with kLater should give identical results, because no overlap + dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 0, 0, tz, + Disambiguate::kLater); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); - // 02:01 should resolve to 02:01-08:00 - dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 1, 0, tz); + // 02:00 with kEarlier should give same result, no overlap + dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 1, 0, tz, + Disambiguate::kEarlier); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - expected = LocalDateTime::forComponents(2018, 11, 4, 2, 1, 0); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + expected = PlainDateTime::forComponents(2018, 11, 4, 2, 1, 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); - // 02:01(fold=1) gives identical results because no overlap - dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 1, 0, tz, 1 /*fold*/); + // 02:00 with kReversed should give same result, no overlap + dt = ZonedDateTime::forComponents(2018, 11, 4, 2, 1, 0, tz, + Disambiguate::kReversed); assertEqual(TimeOffset::forHours(-8).toMinutes(), dt.timeOffset().toMinutes()); - assertTrue(expected == dt.localDateTime()); - assertEqual(dt.fold(), 0); + assertTrue(expected == dt.plainDateTime()); + assertEqual((uint8_t) dt.resolved(), (uint8_t) Resolved::kUnique); } // -------------------------------------------------------------------------- -// ZonedDateTime::forEpochSeconds() with fold +// ZonedDateTime::forEpochSeconds() // -------------------------------------------------------------------------- -test(ZonedDateTimeExtendedTest, forEpochSecond_fall_back) { +test(ZonedDateTimeExtendedTest, forEpochSecond_around_overlap) { TimeZone tz = extendedZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // Start our sampling at 01:29:00-07:00, which is 31 minutes before the DST - // fall-back. + // Start at 01:29:00-07:00, in overlap, 31 minutes before the fall-back. OffsetDateTime odt = OffsetDateTime::forComponents( 2022, 11, 6, 1, 29, 0, TimeOffset::forHours(-7)); acetime_t epochSeconds = odt.toEpochSeconds(); @@ -257,10 +237,10 @@ test(ZonedDateTimeExtendedTest, forEpochSecond_fall_back) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-7*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); // first occurrence + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); - // Go forward an hour. Should return 01:29:00-08:00, the second time this - // was seen, so fold should be 1. + // Go forward an hour. Should return 01:29:00-08:00, the second time this was + // seen. epochSeconds += 3600; dt = ZonedDateTime::forEpochSeconds(epochSeconds, tz); assertEqual(2022, dt.year()); @@ -270,10 +250,9 @@ test(ZonedDateTimeExtendedTest, forEpochSecond_fall_back) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-8*60, dt.timeOffset().toMinutes()); - assertEqual(1, dt.fold()); // second occurrence + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); - // Go forward another hour. Should return 02:29:00-08:00, which occurs only - // once, so fold should be 0. + // Go forward another hour. Should return 02:29:00-08:00, which is unique. epochSeconds += 3600; dt = ZonedDateTime::forEpochSeconds(epochSeconds, tz); assertEqual(2022, dt.year()); @@ -283,15 +262,14 @@ test(ZonedDateTimeExtendedTest, forEpochSecond_fall_back) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-8*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); // only occurrence + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); } -test(ZonedDateTimeExtendedTest, forEpochSecond_spring_forward) { +test(ZonedDateTimeExtendedTest, forEpochSecond_around_gap) { TimeZone tz = extendedZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // Start our sampling at 01:29:00-08:00, which is 31 minutes before the DST - // spring forward. + // Start at 01:29:00-08:00, 31 minutes before the gap. OffsetDateTime odt = OffsetDateTime::forComponents( 2022, 3, 13, 1, 29, 0, TimeOffset::forHours(-8)); acetime_t epochSeconds = odt.toEpochSeconds(); @@ -304,7 +282,7 @@ test(ZonedDateTimeExtendedTest, forEpochSecond_spring_forward) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-8*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); // An hour later, we spring forward to 03:29:00-07:00. epochSeconds += 3600; @@ -316,15 +294,20 @@ test(ZonedDateTimeExtendedTest, forEpochSecond_spring_forward) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-7*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); } -test(ZonedDateTimeExtendedTest, forComponents_fall_back) { +// -------------------------------------------------------------------------- +// ZonedDateTime::forComponents() +// -------------------------------------------------------------------------- + +test(ZonedDateTimeExtendedTest, forComponents_overlap) { TimeZone tz = extendedZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // First occurrence of 01:29:00, should be in -07:00. - auto dt = ZonedDateTime::forComponents(2022, 11, 6, 1, 29, 0, tz, 0 /*fold*/); + // 01:29:00, kCompatible should select the earlier, -07:00. + auto dt = ZonedDateTime::forComponents(2022, 11, 6, 1, 29, 0, tz, + Disambiguate::kCompatible); assertEqual(2022, dt.year()); assertEqual(11, dt.month()); assertEqual(6, dt.day()); @@ -332,10 +315,11 @@ test(ZonedDateTimeExtendedTest, forComponents_fall_back) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-7*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kOverlapEarlier, (uint8_t) dt.resolved()); - // Second occurrence of 01:29:00, should be in -08:00. - dt = ZonedDateTime::forComponents(2022, 11, 6, 1, 29, 0, tz, 1 /*fold*/); + // 01:29:00, kReversed should select the later, -08:00. + dt = ZonedDateTime::forComponents(2022, 11, 6, 1, 29, 0, tz, + Disambiguate::kReversed); assertEqual(2022, dt.year()); assertEqual(11, dt.month()); assertEqual(6, dt.day()); @@ -343,17 +327,16 @@ test(ZonedDateTimeExtendedTest, forComponents_fall_back) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-8*60, dt.timeOffset().toMinutes()); - assertEqual(1, dt.fold()); + assertEqual((uint8_t) Resolved::kOverlapLater, (uint8_t) dt.resolved()); } -test(ZonedDateTimeExtendedTest, forComponents_spring_forward) { +test(ZonedDateTimeExtendedTest, forComponents_gap) { TimeZone tz = extendedZoneManager.createForZoneInfo( &kZoneAmerica_Los_Angeles); - // 02:29:00(fold=0) is in the gap during "spring forward" and selects the - // earlier Transition, which returns the later UTC, which gets normalized to - // the later Transition. - auto dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, 0 /*fold*/); + // 02:29:00 is in the gap, kCompatible selects the later, -07:00 + auto dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, + Disambiguate::kCompatible); assertEqual(2022, dt.year()); assertEqual(3, dt.month()); assertEqual(13, dt.day()); @@ -361,11 +344,11 @@ test(ZonedDateTimeExtendedTest, forComponents_spring_forward) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-7*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); // no overlap + assertEqual((uint8_t) Resolved::kGapLater, (uint8_t) dt.resolved()); - // 02:29:00(fold=1) is in the gap and selects the later Transition, which - // returns the earlier UTC, which gets normalized to the earlier Transition. - dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, 1 /*fold*/); + // 02:29:00 is in the gap, kReversed selects the earlier, -08:00 + dt = ZonedDateTime::forComponents(2022, 3, 13, 2, 29, 0, tz, + Disambiguate::kReversed); assertEqual(2022, dt.year()); assertEqual(3, dt.month()); assertEqual(13, dt.day()); @@ -373,7 +356,7 @@ test(ZonedDateTimeExtendedTest, forComponents_spring_forward) { assertEqual(29, dt.minute()); assertEqual(0, dt.second()); assertEqual(-8*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); // no overlap + assertEqual((uint8_t) Resolved::kGapEarlier, (uint8_t) dt.resolved()); } // -------------------------------------------------------------------------- @@ -414,7 +397,7 @@ test(ZonedDateTimeExtendedTest, normalize) { assertEqual(0, newDt.second()); // We must normalize() after mutation. - dt.normalize(); + dt.normalize(Disambiguate::kCompatible); epochSeconds = dt.toEpochSeconds(); newDt = ZonedDateTime::forEpochSeconds(epochSeconds, tz); assertEqual(2021, newDt.year()); @@ -450,12 +433,13 @@ test(ZonedDateTimeExtendedTest, morocco_2090) { assertEqual(1, dt.hour()); assertEqual(0, dt.minute()); assertEqual(0, dt.second()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); // During Ramadan, Morocco observes negative DST, and falls back to UTC+00:00. // In the year 2050, that happens at 2050-05-15T03:00:00. So 02:59:59 becomes // 02:00:00 one second later. - dt = ZonedDateTime::forComponents(2050, 5, 15, 2, 59, 59, tz, 0 /*fold*/); + dt = ZonedDateTime::forComponents(2050, 5, 15, 2, 59, 59, tz, + Disambiguate::kCompatible); acetime_t epochSeconds = dt.toEpochSeconds(); epochSeconds += 1; dt = ZonedDateTime::forEpochSeconds(epochSeconds, tz); @@ -465,7 +449,7 @@ test(ZonedDateTimeExtendedTest, morocco_2090) { assertEqual(2, dt.hour()); assertEqual(0, dt.minute()); assertEqual(0, dt.second()); - assertEqual(1, dt.fold()); // second occurrence + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); // Validate the epochSeconds of 2090-01-01. That date is exactly 40 years // after the custom epoch of 2050-01-01. So the number of elapsed epoch days @@ -491,9 +475,9 @@ test(ZonedDateTimeExtendedTest, Pacific_Apia) { TimeZone tz = extendedZoneManager.createForZoneInfo(&kZonePacific_Apia); - // Dec 29 23:59:59 UTC-10:00, one second before "mega spring forward" + // Dec 29 23:59:59 UTC-10:00, one second before the mega gap auto dt = ZonedDateTime::forComponents( - 2011, 12, 29, 23, 59, 59, tz, 0 /*fold*/); + 2011, 12, 29, 23, 59, 59, tz, Disambiguate::kCompatible); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(29, dt.day()); @@ -501,12 +485,12 @@ test(ZonedDateTimeExtendedTest, Pacific_Apia) { assertEqual(59, dt.minute()); assertEqual(59, dt.second()); assertEqual(-10*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); - // Dec 30, 00:00:00 is in the gap. Using fold=0 means using the first - // transition of UTC-10, which then gets normalized to Dec 31, 00:00:00 - // UTC+14:00. - dt = ZonedDateTime::forComponents(2011, 12, 30, 0, 0, 0, tz, 0 /*fold*/); + // Dec 30, 00:00 is in the gap, kCompatible selects the later, Dec 31, + // 00:00+14:00. + dt = ZonedDateTime::forComponents( + 2011, 12, 30, 0, 0, 0, tz, Disambiguate::kCompatible); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(31, dt.day()); @@ -514,12 +498,12 @@ test(ZonedDateTimeExtendedTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(14*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kGapLater, (uint8_t) dt.resolved()); - // Dec 30, 00:00:00 is in the gap. Using fold=1 means using the seconds - // transition of UTC+14, which then gets normalized to Dec 29, 00:00:00 - // UTC-10:00. - dt = ZonedDateTime::forComponents(2011, 12, 30, 0, 0, 0, tz, 1 /*fold*/); + // Dec 30, 00:00:00 is in the gap, kReversed selects the earlier, Dec 29, + // 00:00-10:00. + dt = ZonedDateTime::forComponents( + 2011, 12, 30, 0, 0, 0, tz, Disambiguate::kReversed); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(29, dt.day()); @@ -527,12 +511,13 @@ test(ZonedDateTimeExtendedTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(-10*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kGapEarlier, (uint8_t) dt.resolved()); // Dec 30, 12:00:00 is still in the gap. Using fold=0 means using the first // transition of UTC-10, which then gets normalized to Dec 31, 12:00:00 // UTC+14:00. - dt = ZonedDateTime::forComponents(2011, 12, 30, 12, 0, 0, tz, 0 /*fold*/); + dt = ZonedDateTime::forComponents( + 2011, 12, 30, 12, 0, 0, tz, Disambiguate::kCompatible); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(31, dt.day()); @@ -540,12 +525,12 @@ test(ZonedDateTimeExtendedTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(14*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kGapLater, (uint8_t) dt.resolved()); - // Dec 30, 12:00:00 is still in the gap. Using fold=1 means using the second - // transition of UTC-10, which then gets normalized to Dec 29, 12:00:00 - // UTC-10:00. - dt = ZonedDateTime::forComponents(2011, 12, 30, 12, 0, 0, tz, 1 /*fold*/); + // Dec 30, 12:00:00 is still in the gap, kReversed selects earlier, + // Dec 29, 12:00:00-10:00. + dt = ZonedDateTime::forComponents( + 2011, 12, 30, 12, 0, 0, tz, Disambiguate::kReversed); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(29, dt.day()); @@ -553,10 +538,11 @@ test(ZonedDateTimeExtendedTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(-10*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kGapEarlier, (uint8_t) dt.resolved()); - // Dec 31, 00:00:00 is just after the gap. Using fold=0 means UTC+14. - dt = ZonedDateTime::forComponents(2011, 12, 31, 0, 0, 0, tz, 0 /*fold*/); + // Dec 31, 00:00:00 is just after the gap, kCompatible selects unique. + dt = ZonedDateTime::forComponents( + 2011, 12, 31, 0, 0, 0, tz, Disambiguate::kCompatible); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(31, dt.day()); @@ -564,10 +550,11 @@ test(ZonedDateTimeExtendedTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(14*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); - // Dec 31, 00:00:00 is outside the gap. Setting fold=1 is ignored. - dt = ZonedDateTime::forComponents(2011, 12, 31, 0, 0, 0, tz, 1 /*fold*/); + // Dec 31, 00:00:00 is outside the gap, kReversed selects same unique. + dt = ZonedDateTime::forComponents( + 2011, 12, 31, 0, 0, 0, tz, Disambiguate::kReversed); assertEqual(2011, dt.year()); assertEqual(12, dt.month()); assertEqual(31, dt.day()); @@ -575,7 +562,7 @@ test(ZonedDateTimeExtendedTest, Pacific_Apia) { assertEqual(0, dt.minute()); assertEqual(0, dt.second()); assertEqual(14*60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); } // -------------------------------------------------------------------------- diff --git a/tests/ZonedDateTimeTest/ZonedDateTimeTest.ino b/tests/ZonedDateTimeTest/ZonedDateTimeTest.ino index 66760df9f..47f956dc7 100644 --- a/tests/ZonedDateTimeTest/ZonedDateTimeTest.ino +++ b/tests/ZonedDateTimeTest/ZonedDateTimeTest.ino @@ -22,7 +22,7 @@ test(ZonedDateTimeTest, accessors_mutators) { assertEqual(5, dt.minute()); assertEqual(6, dt.second()); assertEqual(-8 * 60, dt.timeOffset().toMinutes()); - assertEqual(0, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); // mutators tz = TimeZone::forHours(-7); @@ -33,7 +33,6 @@ test(ZonedDateTimeTest, accessors_mutators) { dt.minute(15); dt.second(16); dt.timeZone(tz); - dt.fold(1); dt.normalize(); // must be called after timeZone() mutation assertEqual(2011, dt.year()); assertEqual(12, dt.month()); @@ -42,21 +41,7 @@ test(ZonedDateTimeTest, accessors_mutators) { assertEqual(15, dt.minute()); assertEqual(16, dt.second()); assertEqual(-7 * 60, dt.timeOffset().toMinutes()); - assertEqual(1, dt.fold()); -} - -test(ZonedDateTimeTest, constructor_with_fold) { - TimeZone tz = TimeZone::forHours(-8); - ZonedDateTime dt = ZonedDateTime::forComponents( - 2001, 2, 3, 4, 5, 6, tz, 1 /*fold*/); - assertEqual((int16_t) 2001, dt.year()); - assertEqual(2, dt.month()); - assertEqual(3, dt.day()); - assertEqual(4, dt.hour()); - assertEqual(5, dt.minute()); - assertEqual(6, dt.second()); - assertEqual(-8 * 60, dt.timeOffset().toMinutes()); - assertEqual(1, dt.fold()); + assertEqual((uint8_t) Resolved::kUnique, (uint8_t) dt.resolved()); } // Check that ZonedDateTime with Manual TimeZone agrees with simpler @@ -81,35 +66,35 @@ test(ZonedDateTimeTest_Manual, forComponents) { assertEqual((int32_t) -24856, dt.toEpochDays()); assertEqual((int32_t) -13899, dt.toUnixDays()); assertEqual((acetime_t) (INT32_MIN + 1), dt.toEpochSeconds()); - assertEqual(LocalDate::kSunday, dt.dayOfWeek()); + assertEqual(PlainDate::kSunday, dt.dayOfWeek()); // 2000-01-01 00:00:00Z Saturday dt = ZonedDateTime::forComponents(2000, 1, 1, 0, 0, 0, TimeZone()); assertEqual((int32_t) 0, dt.toEpochDays()); assertEqual((int32_t) 10957, dt.toUnixDays()); assertEqual((acetime_t) 0, dt.toEpochSeconds()); - assertEqual(LocalDate::kSaturday, dt.dayOfWeek()); + assertEqual(PlainDate::kSaturday, dt.dayOfWeek()); // 2000-01-02 00:00:00Z Sunday dt = ZonedDateTime::forComponents(2000, 1, 2, 0, 0, 0, TimeZone()); assertEqual((int32_t) 1, dt.toEpochDays()); assertEqual((int32_t) 10958, dt.toUnixDays()); assertEqual((acetime_t) 86400, dt.toEpochSeconds()); - assertEqual(LocalDate::kSunday, dt.dayOfWeek()); + assertEqual(PlainDate::kSunday, dt.dayOfWeek()); // 2000-02-29 00:00:00Z Tuesday dt = ZonedDateTime::forComponents(2000, 2, 29, 0, 0, 0, TimeZone()); assertEqual((int32_t) 59, dt.toEpochDays()); assertEqual((int32_t) 11016, dt.toUnixDays()); assertEqual((acetime_t) 86400 * 59, dt.toEpochSeconds()); - assertEqual(LocalDate::kTuesday, dt.dayOfWeek()); + assertEqual(PlainDate::kTuesday, dt.dayOfWeek()); // 2018-01-01 00:00:00Z Monday dt = ZonedDateTime::forComponents(2018, 1, 1, 0, 0, 0, TimeZone()); assertEqual((int32_t) 6575, dt.toEpochDays()); assertEqual((int32_t) 17532, dt.toUnixDays()); assertEqual(6575 * (acetime_t) 86400, dt.toEpochSeconds()); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); // 2018-01-01 00:00:00+00:15 Monday dt = ZonedDateTime::forComponents(2018, 1, 1, 0, 0, 0, @@ -117,21 +102,21 @@ test(ZonedDateTimeTest_Manual, forComponents) { assertEqual((int32_t) 6574, dt.toEpochDays()); assertEqual((int32_t) 17531, dt.toUnixDays()); assertEqual(6575 * (acetime_t) 86400 - 15*60, dt.toEpochSeconds()); - assertEqual(LocalDate::kMonday, dt.dayOfWeek()); + assertEqual(PlainDate::kMonday, dt.dayOfWeek()); // 2038-01-19 03:14:07Z (largest value using Unix Epoch) dt = ZonedDateTime::forComponents(2038, 1, 19, 3, 14, 7, TimeZone()); assertEqual((int32_t) 13898, dt.toEpochDays()); assertEqual((int32_t) 24855, dt.toUnixDays()); assertEqual((acetime_t) 1200798847, dt.toEpochSeconds()); - assertEqual(LocalDate::kTuesday, dt.dayOfWeek()); + assertEqual(PlainDate::kTuesday, dt.dayOfWeek()); // 2068-01-19 03:14:06Z (largest value for AceTime Epoch). dt = ZonedDateTime::forComponents(2068, 1, 19, 3, 14, 7, TimeZone()); assertEqual((int32_t) 24855, dt.toEpochDays()); assertEqual((int32_t) 35812, dt.toUnixDays()); assertEqual((acetime_t) (INT32_MAX), dt.toEpochSeconds()); - assertEqual(LocalDate::kThursday, dt.dayOfWeek()); + assertEqual(PlainDate::kThursday, dt.dayOfWeek()); } test(ZonedDateTimeTest_Manual, toAndForUnixSeconds64) { @@ -204,7 +189,7 @@ test(ZonedDateTimeTest_Manual, toAndForUnixSeconds64_extended) { // Verify error sentinel. dt = ZonedDateTime::forUnixSeconds64( - LocalDate::kInvalidUnixSeconds64, TimeZone()); + PlainDate::kInvalidUnixSeconds64, TimeZone()); assertTrue(dt.isError()); } @@ -233,11 +218,11 @@ test(ZonedDateTimeTest_Manual, error) { TimeZone stdTz = TimeZone::forHours(-8); ZonedDateTime zdt = ZonedDateTime::forEpochSeconds( - LocalDate::kInvalidEpochSeconds, stdTz); + PlainDate::kInvalidEpochSeconds, stdTz); assertTrue(zdt.isError()); zdt = ZonedDateTime::forUnixSeconds64( - LocalDate::kInvalidUnixSeconds64, stdTz); + PlainDate::kInvalidUnixSeconds64, stdTz); assertTrue(zdt.isError()); } @@ -247,13 +232,13 @@ test(ZonedDateTimeTest, spotcheck_epoch2000) { // Change current epoch year to 2000, so the epoch is 2000-01-01T00:00:00. testing::EpochYearContext context(2000); - auto minDt = ZonedDateTime::forEpochSeconds(LocalDate::kMinEpochSeconds, + auto minDt = ZonedDateTime::forEpochSeconds(PlainDate::kMinEpochSeconds, TimeZone()); auto expected = ZonedDateTime::forComponents(1931, 12, 13, 20, 45, 53, TimeZone()); assertTrue(expected == minDt); - auto maxDt = ZonedDateTime::forEpochSeconds(LocalDate::kMaxEpochSeconds, + auto maxDt = ZonedDateTime::forEpochSeconds(PlainDate::kMaxEpochSeconds, TimeZone()); expected = ZonedDateTime::forComponents(2068, 1, 19, 3, 14, 7, TimeZone()); assertTrue(expected == maxDt); @@ -273,7 +258,7 @@ test(ZonedDateTimeTest, spotcheck_epoch2050) { testing::EpochYearContext context(2050); // Same min date as epoch 2000, but 50 years later. - auto minDt = ZonedDateTime::forEpochSeconds(LocalDate::kMinEpochSeconds, + auto minDt = ZonedDateTime::forEpochSeconds(PlainDate::kMinEpochSeconds, TimeZone()); auto expected = ZonedDateTime::forComponents(1981, 12, 13, 20, 45, 53, TimeZone()); @@ -281,7 +266,7 @@ test(ZonedDateTimeTest, spotcheck_epoch2050) { // Almost the same max date as epoch 2000, but one day later on Jan 20 instead // of the Jan 19, because 2000 was a leap year, but 2100 is not. - auto maxDt = ZonedDateTime::forEpochSeconds(LocalDate::kMaxEpochSeconds, + auto maxDt = ZonedDateTime::forEpochSeconds(PlainDate::kMaxEpochSeconds, TimeZone()); expected = ZonedDateTime::forComponents(2118, 1, 20, 3, 14, 7, TimeZone()); assertTrue(expected == maxDt); @@ -300,7 +285,7 @@ test(ZonedDateTimeTest, spotcheck_epoch2100) { testing::EpochYearContext context(2100); // Same min date as epoch 2000, but 100 years later. - auto minDt = ZonedDateTime::forEpochSeconds(LocalDate::kMinEpochSeconds, + auto minDt = ZonedDateTime::forEpochSeconds(PlainDate::kMinEpochSeconds, TimeZone()); auto expected = ZonedDateTime::forComponents(2031, 12, 13, 20, 45, 53, TimeZone()); @@ -308,7 +293,7 @@ test(ZonedDateTimeTest, spotcheck_epoch2100) { // Almost the same max date as epoch 2000, but one day later on Jan 20 instead // of the Jan 19, because 2000 was a leap year, but 2100 is not. - auto maxDt = ZonedDateTime::forEpochSeconds(LocalDate::kMaxEpochSeconds, + auto maxDt = ZonedDateTime::forEpochSeconds(PlainDate::kMaxEpochSeconds, TimeZone()); expected = ZonedDateTime::forComponents(2168, 1, 20, 3, 14, 7, TimeZone()); assertTrue(expected == maxDt); @@ -337,7 +322,7 @@ test(ZonedDateTimeTest, forDateString) { assertEqual(48, dt.minute()); assertEqual(1, dt.second()); assertEqual(-7*60, dt.timeOffset().toMinutes()); - assertEqual(LocalDate::kFriday, dt.dayOfWeek()); + assertEqual(PlainDate::kFriday, dt.dayOfWeek()); // parser does not care about most separators, this may change in the future dt = ZonedDateTime::forDateString(F("2018/08/31 13#48#01+07#00")); @@ -349,7 +334,7 @@ test(ZonedDateTimeTest, forDateString) { assertEqual(48, dt.minute()); assertEqual(1, dt.second()); assertEqual(7*60, dt.timeOffset().toMinutes()); - assertEqual(LocalDate::kFriday, dt.dayOfWeek()); + assertEqual(PlainDate::kFriday, dt.dayOfWeek()); } test(ZonedDateTimeTest, forDateString_errors) { diff --git a/tests/ZonedExtraTest/ZonedExtraTest.ino b/tests/ZonedExtraTest/ZonedExtraTest.ino index 1d418ca94..e041c789c 100644 --- a/tests/ZonedExtraTest/ZonedExtraTest.ino +++ b/tests/ZonedExtraTest/ZonedExtraTest.ino @@ -41,8 +41,7 @@ test(ZonedExtra, forEpochSeconds) { &testingzonedbx::kZoneAmerica_Los_Angeles, &zoneProcessor); - // Find epochSeconds for the gap at 02:01, use fold=1 uses the second - // transition, which then normalizes to the first transition, so 01:01-08:00 + // Find epochSeconds for 01:01-8:00. auto odt = OffsetDateTime::forComponents( 2018, 3, 11, 1, 0, 1, TimeOffset::forHours(-8)); acetime_t epochSeconds = odt.toEpochSeconds(); @@ -50,8 +49,8 @@ test(ZonedExtra, forEpochSeconds) { // Validate ZonedDateTime. { auto zdt = ZonedDateTime::forEpochSeconds(epochSeconds, tz); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 1, 0, 1); - assertTrue(expected == zdt.localDateTime()); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 1, 0, 1); + assertTrue(expected == zdt.plainDateTime()); assertEqual(-8*60, zdt.timeOffset().toMinutes()); // Validate ZonedExtra. auto ze = ZonedExtra::forEpochSeconds(epochSeconds, tz); @@ -60,14 +59,14 @@ test(ZonedExtra, forEpochSeconds) { assertEqual("PST", ze.abbrev()); } - // One hour after that, the local time should spring forward to 03:01-07:00 + // One hour after that, 02:01-08:00 should spring forward to 03:01-07:00 epochSeconds += 3600; // Validate ZonedDateTime. { auto zdt = ZonedDateTime::forEpochSeconds(epochSeconds, tz); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 3, 0, 1); - assertTrue(expected == zdt.localDateTime()); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 3, 0, 1); + assertTrue(expected == zdt.plainDateTime()); assertEqual(-7*60, zdt.timeOffset().toMinutes()); // Validate ZonedExtra. auto ze = ZonedExtra::forEpochSeconds(epochSeconds, tz); @@ -77,37 +76,38 @@ test(ZonedExtra, forEpochSeconds) { } } -test(ZonedExtra, forLocalDateTime) { +test(ZonedExtra, forPlainDateTime) { ExtendedZoneProcessor zoneProcessor; TimeZone tz = TimeZone::forZoneInfo( &testingzonedbx::kZoneAmerica_Los_Angeles, &zoneProcessor); - // 02:01 in the gap with fold=0 selects the first transition, then normalizes - // to the second transition, i.e. 03:01-07:00 + // 02:01 is in the gap, kCompatible selects the later time, 03:01-07:00 { - auto ldt = LocalDateTime::forComponents(2018, 3, 11, 2, 0, 1, 0 /*fold*/); - auto zdt = ZonedDateTime::forLocalDateTime(ldt, tz); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 3, 0, 1); - assertTrue(expected == zdt.localDateTime()); + auto pdt = PlainDateTime::forComponents(2018, 3, 11, 2, 0, 1); + auto zdt = ZonedDateTime::forPlainDateTime( + pdt, tz, Disambiguate::kCompatible); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 3, 0, 1); + assertTrue(expected == zdt.plainDateTime()); assertEqual(-7*60, zdt.timeOffset().toMinutes()); // Validate ZonedExtra. - auto ze = ZonedExtra::forLocalDateTime(ldt, tz); + auto ze = ZonedExtra::forPlainDateTime(pdt, tz, Disambiguate::kCompatible); assertEqual(-7*60, ze.timeOffset().toMinutes()); assertEqual(-8*60, ze.reqTimeOffset().toMinutes()); assertEqual("PDT", ze.abbrev()); } - // 02:01 in the gap with fold=1 selects the second transition, then normalizes - // to the first transition, i.e. 01:01-08:00 + // 02:01 is in the gap, kReversed selects the earlier time 01:01-08:00 { - auto ldt = LocalDateTime::forComponents(2018, 3, 11, 2, 0, 1, 1 /*fold*/); - auto zdt = ZonedDateTime::forLocalDateTime(ldt, tz); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 1, 0, 1); - assertTrue(expected == zdt.localDateTime()); + auto pdt = PlainDateTime::forComponents(2018, 3, 11, 2, 0, 1); + auto zdt = ZonedDateTime::forPlainDateTime( + pdt, tz, Disambiguate::kReversed); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 1, 0, 1); + assertTrue(expected == zdt.plainDateTime()); assertEqual(-8*60, zdt.timeOffset().toMinutes()); // Validate ZonedExtra. - auto ze = ZonedExtra::forLocalDateTime(ldt, tz); + auto ze = ZonedExtra::forPlainDateTime( + pdt, tz, Disambiguate::kReversed); assertEqual(-8*60, ze.timeOffset().toMinutes()); assertEqual(-7*60, ze.reqTimeOffset().toMinutes()); assertEqual("PST", ze.abbrev()); @@ -120,31 +120,31 @@ test(ZonedExtra, forComponents) { &testingzonedbx::kZoneAmerica_Los_Angeles, &zoneProcessor); - // 02:01 in the gap with fold=0 selects the first transition, then normalizes - // to the second transition, i.e. 03:01-07:00 + // 02:01 is in the gap, kCompatible selects later time, 03:01-07:00 { auto zdt = ZonedDateTime::forComponents( - 2018, 3, 11, 2, 0, 1, tz, 0 /*fold*/); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 3, 0, 1); - assertTrue(expected == zdt.localDateTime()); + 2018, 3, 11, 2, 0, 1, tz, Disambiguate::kCompatible); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 3, 0, 1); + assertTrue(expected == zdt.plainDateTime()); assertEqual(-7*60, zdt.timeOffset().toMinutes()); // Validate ZonedExtra. - auto ze = ZonedExtra::forComponents(2018, 3, 11, 2, 0, 1, tz, 0 /*fold*/); + auto ze = ZonedExtra::forComponents( + 2018, 3, 11, 2, 0, 1, tz, Disambiguate::kCompatible); assertEqual(-7*60, ze.timeOffset().toMinutes()); assertEqual(-8*60, ze.reqTimeOffset().toMinutes()); assertEqual("PDT", ze.abbrev()); } - // 02:01 in the gap with fold=1 selects the second transition, then normalizes - // to the first transition, i.e. 01:01-08:00 + // 02:01 is in the gap, kReversed selects the earlier time, 01:01-08:00 { auto zdt = ZonedDateTime::forComponents( - 2018, 3, 11, 2, 0, 1, tz, 1 /*fold*/); - auto expected = LocalDateTime::forComponents(2018, 3, 11, 1, 0, 1); - assertTrue(expected == zdt.localDateTime()); + 2018, 3, 11, 2, 0, 1, tz, Disambiguate::kReversed); + auto expected = PlainDateTime::forComponents(2018, 3, 11, 1, 0, 1); + assertTrue(expected == zdt.plainDateTime()); assertEqual(-8*60, zdt.timeOffset().toMinutes()); // Validate ZonedExtra. - auto ze = ZonedExtra::forComponents(2018, 3, 11, 2, 0, 1, tz, 1 /*fold*/); + auto ze = ZonedExtra::forComponents( + 2018, 3, 11, 2, 0, 1, tz, Disambiguate::kReversed); assertEqual(-8*60, ze.timeOffset().toMinutes()); assertEqual(-7*60, ze.reqTimeOffset().toMinutes()); assertEqual("PST", ze.abbrev()); From d17cc5bdb90c79e069dc1dfd230714d9480e96ad Mon Sep 17 00:00:00 2001 From: Brian Park Date: Tue, 21 Oct 2025 14:38:56 -0700 Subject: [PATCH 3/3] .gitignore: ignore *.touch files --- .gitignore | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 5593f2f19..28f0a673c 100644 --- a/.gitignore +++ b/.gitignore @@ -66,17 +66,6 @@ wheels/ MANIFEST *.app -#------------------------------------------------------------------------- -# Generated files and directories under tests/validation/*Test/ -#------------------------------------------------------------------------- - -tests/validation/*Test/validation_*.h -tests/validation/*Test/validation_*.cpp -tests/validation/*Test/validation_*.json -tests/validation/*Test/zonedb* -tests/validation/*Test/tzfiles -tests/validation/*Test/*.nzd - #------------------------------------------------------------------------- # C# and .Net 5.0 # See https://github.com/github/gitignore/blob/master/VisualStudio.gitignore @@ -97,3 +86,9 @@ bld/ [Oo]bj/ [Ll]og/ [Ll]ogs/ + +#------------------------------------------------------------------------- +# Makefile artifacts +#------------------------------------------------------------------------- + +*.touch